姓名:李沈軒????學(xué)號(hào):20181214373????學(xué)院:廣研院
【原文鏈接】計(jì)算型存儲(chǔ)/存算一體如何實(shí)現(xiàn)? - 知乎 (zhihu.com)
【嵌牛導(dǎo)讀】本文介紹了什么是存算一體?
【嵌牛鼻子】存算一體
【嵌牛提問(wèn)】什么是存算一體,如何實(shí)現(xiàn)?
【嵌牛正文】
1 引言
隨著處理器和存儲(chǔ)器的工藝提升差的變大,馮 諾依曼體系結(jié)構(gòu)下存儲(chǔ)墻剪刀叉不斷增大,訪存功耗墻問(wèn)題也日益突出,工業(yè)界和學(xué)術(shù)界開(kāi)始從聚焦計(jì)算轉(zhuǎn)到聚焦存儲(chǔ)。與此同時(shí),高訪存、高并行、低精度的人工智能和類(lèi)腦計(jì)算等應(yīng)用的快速也驅(qū)動(dòng)了計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算的發(fā)展。 隨著處理器和存儲(chǔ)器的工藝提升差的變大,馮 諾依曼體系結(jié)構(gòu)下存儲(chǔ)墻剪刀叉不斷增大,訪存功耗墻問(wèn)題也日益突出,工業(yè)界和學(xué)術(shù)界開(kāi)始從聚焦計(jì)算轉(zhuǎn)到聚焦存儲(chǔ)。與此同時(shí),高訪存、高并行、低精度的人工智能和類(lèi)腦計(jì)算等應(yīng)用的快速也驅(qū)動(dòng)了計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算的發(fā)展。?
1.1 馮諾依曼架構(gòu)下的存儲(chǔ)墻
傳統(tǒng)的計(jì)算機(jī)采用馮諾依曼體系結(jié)構(gòu),在這種體系結(jié)構(gòu)中計(jì)算和存儲(chǔ)功能是分離的,分別由中央處理器CPU和存儲(chǔ)器完成[30]。CPU和存儲(chǔ)器通過(guò)總線互連通信,CPU從存儲(chǔ)器讀出數(shù)據(jù),完成計(jì)算,然后將結(jié)果寫(xiě)回存儲(chǔ)器。馮諾依曼架構(gòu)以CPU為核心,其他部件都是為CPU服務(wù)。
在馮 諾依曼體系結(jié)構(gòu)中對(duì)處理器聚焦的牽引下,設(shè)計(jì)者和廠商對(duì)處理器性能的關(guān)注遠(yuǎn)遠(yuǎn)超過(guò)對(duì)存儲(chǔ)器性能的關(guān)注。隨著半導(dǎo)體產(chǎn)業(yè)的發(fā)展和需求的差異,處理器和存儲(chǔ)器二者之間走向了不同的工藝路線。面向用戶對(duì)處理器的高性能需求,半導(dǎo)體廠商通過(guò)提高內(nèi)部晶體管的開(kāi)關(guān)速度來(lái)制造更快的邏輯,使用更多的金屬布線層來(lái)降低互連線延遲,從而不斷提高處理器的性能。而對(duì)于存儲(chǔ)器,用戶追求的是大容量和保持時(shí)間。半導(dǎo)體廠商針對(duì)存儲(chǔ)器的工藝生成線則強(qiáng)調(diào)用更多的晶體管層來(lái)獲得更小的存儲(chǔ)單元面積,增大存儲(chǔ)容量。此外,處理器和存儲(chǔ)器不同的工藝芯片也意味著不同的封裝工藝。處理器要求昂貴的封裝來(lái)增加散熱,還需要上千的引腳來(lái)增加與外存的連接帶寬。但是對(duì)于存儲(chǔ)器封裝而言,由于其功耗不高,引腳較少,因此對(duì)封裝要求不高。
處理器和存儲(chǔ)器二者的需求不同,工藝不同,封裝不同,導(dǎo)致二者之間的性能差距越來(lái)越大。從1980年開(kāi)始至今,處理器和存儲(chǔ)器的性能差距不斷拉大,存儲(chǔ)器數(shù)據(jù)訪問(wèn)速度跟不上CPU的數(shù)據(jù)處理速度,導(dǎo)致了存儲(chǔ)墻問(wèn)題越來(lái)越嚴(yán)重[31,32]。
造成“存儲(chǔ)墻”的根本原因是存儲(chǔ)與計(jì)算部件在物理空間上的分離。從圖2中可以看出,從 1980年到 2000年,兩者的速度失配以每年 50%的速率增加。為此,工業(yè)界和學(xué)術(shù)界開(kāi)始尋找弱化或消除“存儲(chǔ)墻”問(wèn)題的方法,開(kāi)始考慮從聚焦計(jì)算的馮諾依曼體系結(jié)構(gòu)轉(zhuǎn)向聚焦存儲(chǔ)的“計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算”。
1.2 通信和訪存功耗開(kāi)銷(xiāo)
處理器和存儲(chǔ)器由于工藝和封裝不同,二者之間的性能差距越來(lái)越大。存儲(chǔ)器的性能提升遠(yuǎn)遠(yuǎn)落后于CPU的性能,與此同時(shí),數(shù)據(jù)移動(dòng)的能耗比也隨之不斷增加,數(shù)據(jù)搬移需要的能量在整個(gè)計(jì)算中占非常的比重,而且數(shù)據(jù)搬運(yùn)的效率不會(huì)因?yàn)槟柖傻陌l(fā)展而提高。
根據(jù)研究顯示,數(shù)據(jù)搬運(yùn)消耗的能耗是浮點(diǎn)計(jì)算的4到1000倍,如圖所示[1]。而且隨著半導(dǎo)體工藝的進(jìn)步,雖然總體功耗下降,但是數(shù)據(jù)搬運(yùn)的功耗占比越來(lái)越大。根據(jù)intel的研究顯示,工藝到了7nm時(shí)代,訪存功耗達(dá)到25pJ/bit(45.5%),通信功耗達(dá)到10pJ/bit(18.2%)數(shù)據(jù)傳輸和訪問(wèn)功耗占比達(dá)到了63.7%。
訪存功耗的問(wèn)題日益嚴(yán)重,研究者和廠商開(kāi)始從工藝、體系結(jié)構(gòu)等方面嘗試緩解這個(gè)問(wèn)題。計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算將計(jì)算和訪存融合,在存儲(chǔ)單元內(nèi)實(shí)現(xiàn)計(jì)算,從體系結(jié)構(gòu)上消除了訪存操作,從而避免了訪存延遲和訪存功耗,是一種極具前景的解決方式。
1.3 人工智能應(yīng)用的驅(qū)動(dòng)
應(yīng)用發(fā)展至今,人工智能的出現(xiàn)驅(qū)動(dòng)了計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算的發(fā)展。人工智能算法的訪存密集(大數(shù)據(jù)需求)和計(jì)算密集(低精度規(guī)整運(yùn)算)的特征和為計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算的實(shí)現(xiàn)提供了有力的條件:
1)人工智能算法是一個(gè)很龐大和復(fù)雜的網(wǎng)絡(luò),包含大量的圖像數(shù)據(jù)和權(quán)重參數(shù),計(jì)算的過(guò)程中又會(huì)產(chǎn)生大量的數(shù)據(jù)。以VGG-16[33]網(wǎng)絡(luò)為例,其權(quán)重?cái)?shù)量約為 1.4*108,處理一張大小為 224*224的3通道圖片需要進(jìn)行約 1.5*1010次乘加操作,數(shù)據(jù)需要在計(jì)算單元和存儲(chǔ)單元之間進(jìn)行頻繁的移動(dòng)。訪存帶寬成為了卷積神經(jīng)網(wǎng)絡(luò)的重要瓶頸之一。同時(shí),將數(shù)據(jù)從 DRAM 存儲(chǔ)中移動(dòng)到計(jì)算單元所需的能耗是計(jì)算本身耗能的200倍[34],嚴(yán)重影響了卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算能效。因此,對(duì)于卷積神經(jīng)網(wǎng)絡(luò),迫切需要合適的手段來(lái)減少數(shù)據(jù)移動(dòng)及其帶來(lái)的性能和功耗開(kāi)銷(xiāo)。
2)人工智能算法的訓(xùn)練和推理過(guò)程存在大量的規(guī)整運(yùn)算,例如乘加運(yùn)算。為了完成大量的計(jì)算,一般芯片的設(shè)計(jì)思路是增加大量的并行計(jì)算單元,比如上千個(gè)卷積單元。但是隨著運(yùn)算單元的增加,每個(gè)運(yùn)算單元能夠使用的存儲(chǔ)器帶寬和容量都在逐漸減小,訪存成為了人工智能的性能瓶頸。人工智能算法在芯片實(shí)現(xiàn)時(shí)遇到的核心問(wèn)題從原來(lái)的對(duì)算力的強(qiáng)大需求轉(zhuǎn)到了對(duì)訪存帶寬和功耗的約束上。例如可以提供眾多計(jì)算資源的GPU,在運(yùn)行時(shí),其實(shí)際計(jì)算能力與計(jì)算資源大為降低,計(jì)算效率受到了訪存的極大限制。同時(shí),人工智能算法中的運(yùn)算對(duì)精度要求不高。
因此,針對(duì)人功智能算法的訪存密集型特性,以及密集計(jì)算中的規(guī)則運(yùn)算和低精度的需求為,眾多研究者開(kāi)始關(guān)注計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算。并且低精度的運(yùn)算需求也為其實(shí)現(xiàn)提供了更多的可能性。
2 現(xiàn)有的解決存儲(chǔ)墻和降低訪存功耗方法
早在存儲(chǔ)墻和訪存功耗問(wèn)題暴露之初(1990s),研究者就開(kāi)始尋找解決或者弱化的方法,從最初的多級(jí)存儲(chǔ)架構(gòu),到近存儲(chǔ)計(jì)算,直到計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算,研究者做了大量的工作。這些方法大體上可以分為三類(lèi):
1)高速帶寬數(shù)據(jù)通信:光互連、2.5D/3D堆疊。
2)緩解訪存延遲和功耗的近數(shù)據(jù)存儲(chǔ):增加緩存級(jí)數(shù)、高密度片上存儲(chǔ)
3)緩解/消除訪存延遲和功耗的計(jì)算型存儲(chǔ)/存算一體:DRAM上的邏輯層和存儲(chǔ)層的堆疊(類(lèi)似近數(shù)據(jù)存儲(chǔ))、真正的存算一體(存儲(chǔ)器顆粒本身的算法嵌入)。
2.1 高速帶寬數(shù)據(jù)通信
高速帶寬數(shù)據(jù)通信主要包括光互連技術(shù)和2.5D/3D堆疊等技術(shù),這些技術(shù)可用于緩解訪存墻問(wèn)題。光互連技術(shù)可實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,減少功耗。2.5D/3D堆疊技術(shù)見(jiàn)多個(gè)芯片堆疊在一起,提高存儲(chǔ)密度,擴(kuò)大存儲(chǔ)容量,通過(guò)增大并行寬度或者利用串行傳輸提升存儲(chǔ)帶寬。這兩種技術(shù)通過(guò)降低訪存延遲的方式緩解訪存墻問(wèn)題,同時(shí),由于延遲的降低也使得訪存功耗降低。
2.1.1 光互連技術(shù)
計(jì)算機(jī)信號(hào)傳輸技術(shù)在不斷向高速高密度化發(fā)展,傳統(tǒng)的銅導(dǎo)線由于其電子傳輸?shù)奈锢硖匦裕瑐鬏斪鳂I(yè)時(shí)功耗巨大。這種傳統(tǒng)的電互連網(wǎng)絡(luò),受限于集成電路發(fā)展限制,已經(jīng)在帶寬、延時(shí)、功耗方面均遇到了瓶頸。
與傳統(tǒng)電氣布線方式相比,光互連技術(shù)可實(shí)現(xiàn)與距離無(wú)關(guān)的高速傳輸,采用光互連替代銅導(dǎo)線電子互連,可以解決信號(hào)傳輸?shù)墓膯?wèn)題,大幅度降低作業(yè)成本。全光網(wǎng)絡(luò)不但擁有10TB以上級(jí)的帶寬,也能通過(guò)減少頻繁光電轉(zhuǎn)換以改善延時(shí)和功耗,是大幅提升網(wǎng)絡(luò)綜合性能的理想解決方案。并且,光網(wǎng)絡(luò)技術(shù)已被廣泛用于數(shù)據(jù)中心和骨干網(wǎng)建設(shè)當(dāng)中。與電互連相比,光互連具有高帶寬、長(zhǎng)距離、低損耗、無(wú)串?dāng)_和電磁兼容等優(yōu)勢(shì),隨著傳輸速率的不斷提高,光傳輸具有明顯的應(yīng)用優(yōu)勢(shì)。
雖然目前市場(chǎng)已有基礎(chǔ)的光器件和光交換方案,但是光互連技術(shù)的發(fā)展還有一些問(wèn)題亟需解決:
1)光互連的實(shí)現(xiàn)還以來(lái)于板間、板面、板內(nèi)、芯片-板級(jí)、芯片-芯片級(jí)的光電轉(zhuǎn)換器、調(diào)制器、連接器等輔助器件的發(fā)展。其功能和性能距離應(yīng)用需求還有一定的差距;
2)傳統(tǒng)光網(wǎng)絡(luò)技術(shù)無(wú)法解決光存儲(chǔ)問(wèn)題,因此只能通過(guò)建立連接的方式來(lái)實(shí)現(xiàn)光交換,導(dǎo)致光交換需要高達(dá)10ms的建立連接開(kāi)銷(xiāo),無(wú)法適應(yīng)于高性能計(jì)算等頻繁切換通信目標(biāo)的應(yīng)用場(chǎng)景;
3)其次,當(dāng)前光交換商用產(chǎn)品出貨量太小,采購(gòu)成本較高。而且,一些光交換技術(shù)目前只在國(guó)外公司的產(chǎn)品中實(shí)現(xiàn)就,國(guó)內(nèi)并未有替代提供商。能否通過(guò)尋找國(guó)內(nèi)替代提供商甚至聯(lián)合研發(fā)來(lái)保證網(wǎng)絡(luò)核心部分全國(guó)產(chǎn)化也是神州Ⅷ網(wǎng)絡(luò)方案的一大挑戰(zhàn)。
2.1.2? 2.5D/3D堆疊
在封裝領(lǐng)域,許多半導(dǎo)體廠商開(kāi)始采用2.5D/3D堆疊技術(shù)。隨著硅通孔TSV等技術(shù)的發(fā)展,2.5D/3D堆疊技術(shù)可以在處理器周?chē)询B更多的存儲(chǔ)器件,逐漸成為人工智能應(yīng)用和數(shù)據(jù)中心應(yīng)用等性能需求的解決方案。
2.5D堆疊技術(shù)是將多塊芯片在硅interposer上使用互連線連接在一起。由于硅interposer的互連線密度可以遠(yuǎn)遠(yuǎn)高于傳統(tǒng)PCB上的互連線密度,因此可以實(shí)現(xiàn)高性能互連。2.5D堆疊技術(shù)仍然是一種二維平面的疊加。
3D堆疊技術(shù)是將多個(gè)芯片堆疊在一起,并使用TSV技術(shù)將不同的芯片之間互連。3D堆疊技術(shù)是一種三維的多層堆疊,通過(guò)TSV實(shí)現(xiàn)多個(gè)晶片在垂直方向的通信。
近年來(lái)業(yè)界誕生了2種基于TSV(Through Silicon Via)技術(shù)的堆疊DRAM架構(gòu)新型存儲(chǔ)技術(shù),分別為HMC(Hybrid Memory Cube混合存儲(chǔ)立方體)和HBM(High Bandwidth Memory高帶寬存儲(chǔ)器)。與傳統(tǒng)存儲(chǔ)技術(shù)不同,HBM與HMC利用2.5D/3D架構(gòu)堆疊DRAMs提高存儲(chǔ)密度、擴(kuò)大存儲(chǔ)容量,通過(guò)增大并行寬度或者利用串行傳輸提升存儲(chǔ)帶寬,不同程度簡(jiǎn)化系統(tǒng)存儲(chǔ)控制設(shè)計(jì)難度,具有高集成度、高帶寬、高能效等性能優(yōu)勢(shì)。HBM與HMC技術(shù)的推廣及應(yīng)用很大程度上取決于TSV與3D封裝工藝的進(jìn)展,同時(shí)也需要考慮冷卻散熱、生產(chǎn)制造、成本價(jià)格等因素。
具體就技術(shù)規(guī)范而言,HBM仍屬于并行存儲(chǔ)范疇,而HMC則屬于串行存儲(chǔ)產(chǎn)品。HMC采用基于SerDes的串行傳輸方式,傳輸速率可達(dá)15~30Gbps,可以獲得很高的存儲(chǔ)帶寬,如果使用15Gbps SerDes,則單顆4-Links HMC存儲(chǔ)帶寬可達(dá)160GB/s。HBM采用高位寬并行方式,單個(gè)stack可支持高達(dá)8個(gè)通道,每個(gè)通道128bit總計(jì)1024-bit位寬,帶寬可達(dá)128~256GB/s。從封裝形式來(lái)看,HBM必須采用2.5D/3D封裝結(jié)構(gòu),SOC必須采用SiP封裝設(shè)計(jì)技術(shù),完成2.5D硅基板與封裝基板設(shè)計(jì)開(kāi)發(fā),系統(tǒng)設(shè)計(jì)難點(diǎn)主要集中在封裝級(jí)。HMC則區(qū)分裸芯片與封裝產(chǎn)品(封裝產(chǎn)品為主流應(yīng)用),HMC產(chǎn)品主要在印制板安裝使用,并不是必須采用2.5D/3D封裝技術(shù),系統(tǒng)設(shè)計(jì)難點(diǎn)主要集中在印制板級(jí)。
2015年6月,AMD推出了第一款使用3D堆疊的GPU,F(xiàn)ury X GPU,這款GPU在內(nèi)部集成了4GB的3D堆疊HBM,大大減少了數(shù)據(jù)移動(dòng)的功耗。此后,AMD又發(fā)布了Vega,NVIDIA也發(fā)布了Volta GPU,二者均集成了16GB的HMB2。Intel公司推出的Nervana也使用了3D HBM,Wave Computing使用了美光的HMC。
2.2 近存儲(chǔ)計(jì)算
近存儲(chǔ)計(jì)算的基本思想是將數(shù)據(jù)靠近計(jì)算單元,從而減小數(shù)據(jù)移動(dòng)的延遲和功耗。近存儲(chǔ)計(jì)算的實(shí)現(xiàn)方式目前主要包括多級(jí)存儲(chǔ)架構(gòu)和高密度片上存儲(chǔ)。
2.2.1 多級(jí)存儲(chǔ)架構(gòu)
多級(jí)存儲(chǔ)架構(gòu)是在CPU和主存之間插入一系列的高速緩沖存儲(chǔ)器Cache。Cache由容量小、價(jià)格昂貴的靜態(tài)存儲(chǔ)器SRAM構(gòu)成,其速度高于普通的動(dòng)態(tài)存儲(chǔ)DRAM。越靠近CPU的存儲(chǔ)容量越小,速度越快,價(jià)格越高。
在多級(jí)存儲(chǔ)架構(gòu)下,程序員利用程序的時(shí)間局部性和空間局部性,將數(shù)據(jù)從主存搬運(yùn)到最靠近CPU的Cache中,從而減小訪存延遲。多級(jí)存儲(chǔ)雖然在一定程度上緩解了存儲(chǔ)墻問(wèn)題,但是也并未從根本上消除存儲(chǔ)墻。
2.2.2 高密度片上存儲(chǔ)
高密度片上存儲(chǔ)
2.3 計(jì)算型存儲(chǔ)/存算一體/存內(nèi)計(jì)算
高速帶寬數(shù)據(jù)通信和近存儲(chǔ)計(jì)算仍然都是一種以馮諾依曼架構(gòu)架構(gòu)為核心的實(shí)現(xiàn)方式,本質(zhì)上仍是一種以計(jì)算為中心的實(shí)現(xiàn)方式。一些研究人員提出了一種以存儲(chǔ)器為中心的體系結(jié)構(gòu),稱(chēng)為“智能存儲(chǔ)”。其核心思想是將部分或全部的計(jì)算移到存儲(chǔ)中,計(jì)算單元和存儲(chǔ)單元集成在同一個(gè)芯片,在存儲(chǔ)單元內(nèi)完成運(yùn)算,讓存儲(chǔ)單元具有計(jì)算能力。這種極度近鄰的方式完全消除了數(shù)據(jù)移動(dòng)的延遲和功耗,徹底解決了存儲(chǔ)墻問(wèn)題。
目前研究領(lǐng)域或市場(chǎng)領(lǐng)域內(nèi)的存內(nèi)計(jì)算主要從兩個(gè)方面展開(kāi):
混合計(jì)算存儲(chǔ):類(lèi)似近數(shù)據(jù)存儲(chǔ)的方式,即基于堆疊技術(shù)將邏輯層和存儲(chǔ)層的堆疊在一起,邏輯層實(shí)現(xiàn)存儲(chǔ)層中數(shù)據(jù)的計(jì)算。
存算一體:真正的存儲(chǔ)和計(jì)算的融合,即在存儲(chǔ)器顆粒本身進(jìn)行算法嵌入,在存儲(chǔ)顆粒內(nèi)實(shí)現(xiàn)計(jì)算。
2.3.1 混合計(jì)算存儲(chǔ)
在訪存墻問(wèn)題出現(xiàn)之初,研究者想嘗試將存儲(chǔ)和邏輯用同一工藝實(shí)現(xiàn),從而構(gòu)建芯片內(nèi)的存儲(chǔ)計(jì)算。但是,存儲(chǔ)器制造工藝和邏輯制造工藝不同,而且二者不兼容。用存儲(chǔ)器工藝構(gòu)建邏輯單元或者用邏輯工藝構(gòu)建存儲(chǔ)器都比較困難。DRAM工藝中的晶體管面向面積和漏電流進(jìn)行了優(yōu)化,但是性能較差。而且,DRAM工藝通常只有3層金屬層,而邏輯工藝一般有12層金屬層,這就意味著DRAM工藝中的邏輯電路可能會(huì)產(chǎn)生高的互連開(kāi)銷(xiāo)。根據(jù)研究顯示,DRAM工藝的邏輯電路會(huì)有22%的性能損失和80%的面積開(kāi)銷(xiāo)[2]。反之,使用邏輯工藝構(gòu)建DRAM將會(huì)產(chǎn)生10倍的面積開(kāi)銷(xiāo),4倍的功耗以及100倍的恢復(fù)時(shí)間[3,4]。
因此,借助于3D堆疊技術(shù)的發(fā)展,研究者開(kāi)始考慮將不同工藝制造的邏輯層和存儲(chǔ)層堆疊在一起來(lái)構(gòu)建混合計(jì)算存儲(chǔ)?;旌嫌?jì)算存儲(chǔ)目前主要基于DRAM構(gòu)件實(shí)現(xiàn)。混合計(jì)算存儲(chǔ)將給予處理器工藝的邏輯層和基于存儲(chǔ)器工藝的多個(gè)DRAM芯片層垂直堆疊在一起,各層之間通過(guò)硅通孔TSV連接。垂直對(duì)齊的多個(gè)內(nèi)存分區(qū)對(duì)應(yīng)一個(gè)控制器集成在邏輯層,負(fù)責(zé)對(duì)應(yīng)的數(shù)據(jù)讀寫(xiě)?;旌嫌?jì)算存儲(chǔ)由于將邏輯層和存儲(chǔ)層封裝在一起,減小了數(shù)據(jù)訪問(wèn)延遲和功耗。
但是混合計(jì)算存儲(chǔ)中真正的計(jì)算操作還是在邏輯層實(shí)現(xiàn),數(shù)據(jù)仍然需要從存儲(chǔ)層搬運(yùn)到邏輯層,完成計(jì)算后再返回到存儲(chǔ)層,雖然延遲會(huì)因?yàn)榇鎯?chǔ)層和邏輯層的距離減少和帶寬提高而較少,但是仍然存在數(shù)據(jù)搬運(yùn),并未完全消除訪存延遲和功耗,功耗的降低也不一定可觀,所以仍然不是一種真正意義上的存算一體。
而且,受限于目前集成電路的工藝水平,這種片上集成的方式無(wú)法在性能和容量之間取得一個(gè)很好的折衷。
2.3.2 計(jì)算型存儲(chǔ)/存算一體
隨著工藝的發(fā)展,訪存墻剪刀叉日益擴(kuò)大,同時(shí),人工智能應(yīng)用對(duì)大數(shù)據(jù)訪存的需求,計(jì)算型存儲(chǔ)/存算一體被工業(yè)界和學(xué)術(shù)界一致認(rèn)為是未來(lái)的發(fā)展趨勢(shì)。
計(jì)算型存儲(chǔ)/存算一體是一種數(shù)?;旌系拇鎯?chǔ),這種存儲(chǔ)在存儲(chǔ)器顆粒上嵌入算法,使得存儲(chǔ)單元具備計(jì)算功能。在這種方式下,數(shù)據(jù)不需要單獨(dú)的運(yùn)算部件來(lái)完成計(jì)算,而是在存儲(chǔ)單元中完成存儲(chǔ)和計(jì)算,消除了數(shù)據(jù)訪存延遲和功耗,是一種真正意義上的存儲(chǔ)計(jì)算融合。同時(shí),由于計(jì)算完全耦合于存儲(chǔ),因此可以開(kāi)發(fā)更細(xì)粒度的并行性,獲得更高的性能和能效。
計(jì)算型存儲(chǔ)/存算一體在存儲(chǔ)顆粒上實(shí)現(xiàn)計(jì)算,這種數(shù)字和模擬混合的方式會(huì)帶來(lái)一定的計(jì)算精度誤差。但是,人工智能算法對(duì)精度的誤差容忍度較高,因此計(jì)算型存儲(chǔ)/存算一體對(duì)于符合的應(yīng)用會(huì)帶來(lái)較高的性能收益和能效收益,這種方式尤其適用于人工智能應(yīng)用。
計(jì)算型存儲(chǔ)/存算一體目前主要的實(shí)現(xiàn)方式有兩種,一種是基于易失性、現(xiàn)有工藝較成熟的SRAM或DRAM構(gòu)建,另一種是基于非易失性、新型存儲(chǔ)器件或新材料構(gòu)建。
受限于存儲(chǔ)廠商對(duì)工藝和制程的限制,目前的計(jì)算型存儲(chǔ)/存算一體還屬于研究和試驗(yàn)階段。但是,隨著技術(shù)的進(jìn)步和應(yīng)用的驅(qū)動(dòng),未來(lái)的計(jì)算型存儲(chǔ)/存算一體一定會(huì)成為主流。
3 計(jì)算型存儲(chǔ)/存算一體研究現(xiàn)狀
隨著3D堆疊技術(shù)的發(fā)展,以及新型非易失性存儲(chǔ)器器件的日益成熟,面向人工智能算法的大數(shù)據(jù)應(yīng)用需求,計(jì)算型存儲(chǔ)/存算一體逐漸受到了工業(yè)界和學(xué)術(shù)界的關(guān)注。目前,已經(jīng)有很多廠商和研究機(jī)構(gòu)開(kāi)始進(jìn)入計(jì)算型存儲(chǔ)/存算一體領(lǐng)域,例如,INTEL、IMB和三星等廠商紛紛推出實(shí)驗(yàn)型架構(gòu),一些研究機(jī)構(gòu)也開(kāi)始基于新器件新材料提前展開(kāi)研究工作。
根據(jù)存儲(chǔ)器件的存儲(chǔ)易失性分類(lèi),計(jì)算型存儲(chǔ)/存算一體的實(shí)現(xiàn)主要聚焦在兩類(lèi)存儲(chǔ)上:1)基于易失性的SRAM或DRAM構(gòu)建;2)基于非易失性的相變存儲(chǔ)器PCM、阻變存儲(chǔ)器/憶阻器ReRAM、浮柵器件和閃存FLASH構(gòu)建。
3.1 基于易失性存儲(chǔ)SRAM和DRAM的計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算
易失性存儲(chǔ)器SRAM和DRAM工藝成熟,是目前商業(yè)化的主要存儲(chǔ)器產(chǎn)品。因此,很多的廠商和研究機(jī)構(gòu)開(kāi)始基于SRAM和DRAM展開(kāi)存內(nèi)計(jì)算的研究。但是,目前這種計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算存在一定的問(wèn)題:
1)由于目前的存內(nèi)計(jì)算還處于實(shí)驗(yàn)階段,存儲(chǔ)器廠商對(duì)工藝和制程的約束,大多數(shù)的研究都是在SRAM和DRAM的靈敏放大器端做工作,無(wú)法深入到存儲(chǔ)單元實(shí)現(xiàn)存儲(chǔ)和計(jì)算的完全耦合;
2)目前的計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算基本上智能支持邏輯操作和無(wú)進(jìn)位的計(jì)算,對(duì)于存儲(chǔ)單元間的信息交互還額外需要計(jì)算邏輯和控制邏輯的支持。
基于SRAM的計(jì)算型存儲(chǔ)/存算一體
Intel聯(lián)合Michigan大學(xué)從2016年開(kāi)始展開(kāi)基于SRAM的計(jì)算型存儲(chǔ)/存算一體研究。2016年,基于SRAM實(shí)現(xiàn)了支持邏輯操作的可配置的存儲(chǔ)器[5],并在此基礎(chǔ)上實(shí)現(xiàn)了支持無(wú)進(jìn)位乘法運(yùn)算的計(jì)算型cache[6]。2018年在ISCA上發(fā)布了面向深度學(xué)習(xí)算法的神經(jīng)Cache[7],在文獻(xiàn)[6]的邏輯操作基礎(chǔ)上實(shí)現(xiàn)算術(shù)計(jì)算可以實(shí)現(xiàn)加法、乘法和減法操作。
在文獻(xiàn)[5]中,基于6T的SRAM構(gòu)建了一個(gè)可配置(TCAM/BCAM/SRAM可動(dòng)態(tài)切換)的存儲(chǔ)器。為了支持邏輯操作,作者在SRAM的存儲(chǔ)單元上將字線拆分為左字線和右字線,同時(shí),將傳統(tǒng)的差分靈敏放大器變?yōu)閮蓚€(gè)單端的交叉耦合靈敏放大器,這兩個(gè)單端靈敏放大器分別對(duì)應(yīng)存儲(chǔ)的bit-line和bit-line-bar。通過(guò)對(duì)兩個(gè)字線和兩個(gè)靈敏放大器的控制,在靈敏放大器出增加邏輯門(mén),從而可以實(shí)現(xiàn)數(shù)據(jù)的邏輯與、或、非操作。同時(shí),為了支持寫(xiě)操作,在位線方向增加一個(gè)列解碼器用來(lái)選取要寫(xiě)入的列,在兩個(gè)時(shí)鐘周期內(nèi)完成整個(gè)寫(xiě)操作?;谶@個(gè)工作,文獻(xiàn)[6]和[7]在靈敏放大器增加邏輯門(mén),從而實(shí)現(xiàn)對(duì)運(yùn)算操作的支持。
基于DRAM的計(jì)算型存儲(chǔ)/存算一體
2017年,三星存儲(chǔ)研究部門(mén)聯(lián)合圣芭芭拉大學(xué)一起合作,基于成熟的DRAM存儲(chǔ)器件在MICRO 大會(huì)上推出了DRISA架構(gòu)[8],DRISA架構(gòu)基于DRAM工藝實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算功能,提供大規(guī)模片上存儲(chǔ)的同時(shí)也提供較高的計(jì)算性能。作者采用高密度的DRAM工藝,通過(guò)對(duì)DRAM存儲(chǔ)陣列中存儲(chǔ)位線的重新設(shè)計(jì)來(lái)實(shí)現(xiàn)簡(jiǎn)單的布爾邏輯和移位電路,并串行迭代使用這些電路來(lái)支持加法和乘法等復(fù)雜運(yùn)算。其基本思想有兩種實(shí)現(xiàn)方式。一種是將字線WL拆分為讀字線rWL和寫(xiě)字線Wwl,位線BL拆分為讀位線rBL和寫(xiě)位線wBL,分別支持讀操作和寫(xiě)操作。增加了一個(gè)晶體管將電容從讀位線rBL中解耦合出來(lái),這個(gè)晶體管是NOR的形式,從而可以天然的實(shí)現(xiàn)NOR邏輯操作。另一種實(shí)現(xiàn)方式是保持DRAM的cell單元不變,在靈敏放大器端增加額外的邏輯門(mén)和latch來(lái)實(shí)現(xiàn)AND和OR操作。通過(guò)實(shí)驗(yàn)表明,在這種設(shè)計(jì)下,針對(duì)整數(shù)運(yùn)算,與GPU相比,DRISA可以獲得7.7倍的性能提升和15倍的能效提升。
3.2 基于非易失性存儲(chǔ)器的新型計(jì)算型存儲(chǔ)/存算一體
非易失性存儲(chǔ)器在最近十幾年得到了飛速的發(fā)展[9],包括自旋矩磁存儲(chǔ)器STTRAM[10],相變存儲(chǔ)器PCM[11]、阻變存儲(chǔ)器RRAM等[12]。工業(yè)界和商業(yè)界已經(jīng)發(fā)布了眾多容量達(dá)到Gb量級(jí)的產(chǎn)品,Micon在2010年發(fā)布了45nm工藝的1Gb的PCM[13],三星2012年推出了20nm工藝的8Gb PCM[14],隨后在2015年Micron聯(lián)合三星一起推出了27nm的16Gb conductive bridge (CBRAM, 一種特殊的RRAM)[15]。 同年, Micron和Intel共同發(fā)布了128Gb 3D XPoint 技術(shù)[16]。2013年,Toshiba聯(lián)合Sandisk發(fā)布了24nm工藝的32Gb RRAM[17]。
隨著非易失性存儲(chǔ)器產(chǎn)品的不斷成熟,容量不斷增大,研究者開(kāi)始考慮基于非易失性存儲(chǔ)器構(gòu)建存儲(chǔ)系統(tǒng)的可能性。同時(shí),由于非易失性存儲(chǔ)器對(duì)計(jì)算和存儲(chǔ)的天然融合性,很多的研究和產(chǎn)品開(kāi)始朝著基于非異失性存儲(chǔ)器的計(jì)算型存儲(chǔ)/存算一體發(fā)展。
相變存儲(chǔ)器
相變存儲(chǔ)(PCM)是基于硫?qū)倩锊AР牧希茉谑┘雍线m電流時(shí)將介質(zhì)從晶態(tài)變?yōu)榉蔷B(tài)并再變回晶態(tài),基于材料所表現(xiàn)出來(lái)的導(dǎo)電性差異來(lái)存儲(chǔ)數(shù)據(jù)。
2016年6月,IBM蘇黎世研究院在《Nature》發(fā)文,宣稱(chēng)創(chuàng)造出了世界上首個(gè)人工納米級(jí)的隨機(jī)相變神經(jīng)元,可用于創(chuàng)造人工神經(jīng)元,該人工神經(jīng)元的膜電位可由該納米相變器件的相結(jié)構(gòu)表示。
2018年6月8日IBM 在Nature 期刊發(fā)表的論文提出了全新芯片設(shè)計(jì)的方案,通過(guò)PCM存儲(chǔ)技術(shù)實(shí)現(xiàn)在數(shù)據(jù)存儲(chǔ)的位置執(zhí)行計(jì)算來(lái)加速全連接神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,且該芯片可以達(dá)到 GPU 280 倍的能源效率,并在同樣面積上實(shí)現(xiàn) 100 倍的算力。這篇文章基于2016年研究出的相變器件構(gòu)建了“突觸單元”。每個(gè)單元由一對(duì)相變存儲(chǔ)器 ( PCM ) 單元和三個(gè)晶體管和一個(gè)電容器的組合構(gòu)成,相變存儲(chǔ)器單元將重量數(shù)據(jù)存儲(chǔ)在其電阻中,電容器將重量數(shù)據(jù)存儲(chǔ)為電荷。PCM 是一種「非易失性存儲(chǔ)器」,意味著即使沒(méi)有外部電源,它也保留存儲(chǔ)的信息,而電容器是「易失性的」,因此只能保持其電荷幾毫秒。但電容器沒(méi)有 PCM 器件的可變性,因此可以快速準(zhǔn)確地編程。當(dāng)神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)圖片訓(xùn)練后可以進(jìn)行分類(lèi)任務(wù)時(shí),只有電容器權(quán)重被更新了。在觀察了數(shù)千張圖片之后,權(quán)重會(huì)被傳輸?shù)?PCM 單元以長(zhǎng)期存儲(chǔ)。
基于阻變存儲(chǔ)器ReRAM/憶阻器的計(jì)算型存儲(chǔ)/存算一體
憶阻器最早由美國(guó)柏克萊大學(xué)的蔡少棠于1971年提出[18]。2008 年,美國(guó)惠普實(shí)驗(yàn)室在《Nature》上發(fā)文[16],首次將材料研究中發(fā)現(xiàn)的電致阻變現(xiàn)象和憶阻器理論聯(lián)系起來(lái),使“憶阻器”有了真實(shí)的器件原型。憶阻器是一種有記憶功能的非線性電阻,其電阻會(huì)隨著流過(guò)的電路而改變。在斷電之后,即使電流停止了,電阻值仍然會(huì)保持下去,直到反向電流通過(guò),它才會(huì)返回原狀。所以,通過(guò)控制電流變化可以改變其阻值,例如將高阻值定義為1,低阻值定義為0,從而實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)功能。
2010年惠普實(shí)驗(yàn)室再次宣布憶阻器具有布爾邏輯運(yùn)算功能,這意味著計(jì)算和存儲(chǔ)兩大功能可以再憶阻器上合為一體,可能從根本上顛覆傳統(tǒng)馮諾依曼架構(gòu)奠定了器件基礎(chǔ)。首個(gè)使用憶阻器實(shí)現(xiàn)邏輯存儲(chǔ)融合的實(shí)例是由2010年Borghetti等在《nature》上報(bào)道的“材料蘊(yùn)含邏輯(IMP 邏輯)”[19]。這是一個(gè)具有里程碑意義的工作,因?yàn)樗故镜摹盃顟B(tài)邏輯”概念突破了傳統(tǒng) CMOS 電路中的邏輯映射方法[20,21]:在CMOS 邏輯中, 輸入和輸出信號(hào)由電路中的節(jié)點(diǎn)電壓(電平信號(hào)) 代表, 通過(guò)MOS管的互連結(jié)構(gòu)的使得節(jié)點(diǎn)電壓之間滿足某種邏輯函數(shù)關(guān)系;而在“IMP 邏輯”中,邏輯的輸入輸出由憶阻器的電阻狀態(tài)表示,通過(guò)外加操作電壓而有“條件地”完成置位(SET)功能,從而在輸出(操作后的電阻)和輸入(操作前的電阻)之間建立邏輯函數(shù)關(guān)系。
自從 Borghetti 等報(bào)道“IMP 邏輯”的實(shí)驗(yàn)結(jié)果后[19],這種新的邏輯存儲(chǔ)融合技術(shù)引起了多個(gè)研究領(lǐng)域的關(guān)注,展開(kāi)了一場(chǎng)基于憶阻器實(shí)現(xiàn)新型計(jì)算模式的研究熱潮。2010 年至今,基于憶阻器邏輯計(jì)算展開(kāi)了眾多研究工作:
第一類(lèi)為“憶阻器類(lèi)CMOS 邏輯”,例如“憶阻器比邏輯”[22]、“憶阻器閾值邏輯”[23,24]等。這類(lèi)邏輯實(shí)現(xiàn)技術(shù)是利用憶阻器的分壓特性和閾值轉(zhuǎn)變特性影響電路中某一節(jié)點(diǎn)電壓,使節(jié)點(diǎn)電壓之間滿足某種邏輯函數(shù)關(guān)系。 其邏輯映射方式與CMOS 邏輯電路極其類(lèi)似。憶阻器的相互連接決定了邏輯功能。在完成邏輯功能的過(guò)程中,并沒(méi)有非易失性的物理量參與邏輯信息的保存和傳遞,因此,它不屬于邏輯存儲(chǔ)融合的范疇,在構(gòu)建存儲(chǔ)計(jì)算融合計(jì)算系統(tǒng)上并無(wú)優(yōu)勢(shì)。
第二類(lèi)為“邏輯存儲(chǔ)融合技術(shù)”[25,26]。與 CMOS 邏輯不同,邏輯存儲(chǔ)融合電路中不以電壓信號(hào)作為邏輯輸出的載體,而是非易失性的電阻狀態(tài)。邏輯操作跨越器件狀態(tài)的一個(gè)前后變化過(guò)程,電阻狀態(tài)的邏輯輸出自發(fā)的存儲(chǔ)于器件中,實(shí)現(xiàn)邏輯和存儲(chǔ)功能的融合,為構(gòu)建存儲(chǔ)計(jì)算融合的硬件體系結(jié)構(gòu)提供了細(xì)粒度的支持。
第三類(lèi)為“運(yùn)算存儲(chǔ)融合技術(shù)”,例如“乘加運(yùn)算存儲(chǔ)融合”[27]、“憶阻器多值邏輯”[28]等。這類(lèi)電路策略也可用于實(shí)現(xiàn)存儲(chǔ)計(jì)算融合計(jì)算系統(tǒng),但其與“邏輯存儲(chǔ)融合技術(shù)”略有區(qū)別:它的基本單元功能為一個(gè)復(fù)雜運(yùn)算 (邏輯) 功能表達(dá)式,而不是某個(gè)具體的邏輯操作。
圣芭芭拉大學(xué)的謝源的研究團(tuán)隊(duì)在2018年的ISCA會(huì)議和2017年的VLSI Symposium上發(fā)表了PRIME架構(gòu)。PRIME基于憶阻器實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)計(jì)算。2019年謝源和新竹清華大學(xué)張孟凡團(tuán)隊(duì)以及北京清華大學(xué)的劉勇攀教授團(tuán)隊(duì)、汪玉教授團(tuán)隊(duì)合作,將PRIME架構(gòu)在150nm工藝下流片,在ReRAM中實(shí)現(xiàn)了神經(jīng)網(wǎng)絡(luò)計(jì)算,功耗可以降低20倍,速度提高50倍。計(jì)算的功耗和性能大大的提高。
憶阻器與生物大腦的神經(jīng)網(wǎng)絡(luò)相似,可以同時(shí)處理許多任務(wù)。最重要的是,它無(wú)需移動(dòng)數(shù)據(jù),可以并行地處理大量信號(hào),特別適合于機(jī)器學(xué)習(xí)系統(tǒng)。編程實(shí)踐大概10-1000ns,可編程次數(shù)10^6-10^12次。
基于浮柵器件/Flash的計(jì)算型存儲(chǔ)/存算一體
浮柵器件工藝成熟,編程時(shí)間10-1000ns,可編程次數(shù)10^5,存儲(chǔ)陣列大,實(shí)現(xiàn)量產(chǎn)運(yùn)算精度高,密度大,效率高,成本低。適合深度學(xué)習(xí)和人工智能應(yīng)用。
目前基于閃存的計(jì)算型存儲(chǔ)/存算一體的是一家存算一體芯片設(shè)計(jì)公司,知存科技。閃存的存儲(chǔ)單元為三端器件,知存科技利用這一特點(diǎn),基于NOR Flash構(gòu)建了存算一體芯片。把乘數(shù)直接存入存儲(chǔ)單元內(nèi),再把數(shù)值輸入到閃存的陣列之中。每個(gè)單元都進(jìn)行乘法,最后通過(guò)一條路徑求和,就可以達(dá)到存算一體的效果。乘法計(jì)算的方式是通過(guò)類(lèi)似模擬電路的電流鏡方式。輸入電流轉(zhuǎn)換成電壓耦合到Flash晶體管的控制柵上,F(xiàn)lash晶體管的輸出電流等于輸入電流和存儲(chǔ)的權(quán)重相乘。加法的計(jì)算方式類(lèi)似于并聯(lián)電路電流求和。具體的實(shí)現(xiàn)細(xì)節(jié)并未被披露出來(lái),目前還未知其內(nèi)部的設(shè)計(jì)。根據(jù)宣稱(chēng),2016 和 2017年知存科技的 CTO 曾做出了多個(gè)樣品,最高峰值運(yùn)算效率為40TOPS/W,平均值為 10TOPS/W。
4? 挑戰(zhàn)
面對(duì)日益嚴(yán)重的存儲(chǔ)墻問(wèn)題、訪存功耗問(wèn)題以及人工智能應(yīng)用帶來(lái)的驅(qū)動(dòng),計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算/存算一體提供了一種有前途的方法。從目前的實(shí)現(xiàn)方式看,計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算/存算一體分成了兩個(gè)路線:基于成熟的易失性存儲(chǔ)和不成熟的非易失性存儲(chǔ)。無(wú)論是哪種路線,都存在一定的挑戰(zhàn):
1)基于成熟的易失性存儲(chǔ):這種方式下的計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算/存算一體需要融合處理器工藝和存儲(chǔ)器工藝。但由于目前處理器與存儲(chǔ)器的制造工藝不同,若要在處理器上實(shí)現(xiàn)存儲(chǔ)器的功能,則可能會(huì)降低存儲(chǔ)器的存儲(chǔ)密度;若要在存儲(chǔ)器上實(shí)現(xiàn)處理器的功能,則可能會(huì)影響處理器的運(yùn)行速度。很難在性能和容量上有一個(gè)很好的折衷。
2)基于不成熟的非易失性存儲(chǔ):非易失性存儲(chǔ)對(duì)存儲(chǔ)和計(jì)算的天然融合特定是構(gòu)建計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算/存算一體的最佳器件。但是,由于目前廠商和工藝均未成熟。經(jīng)濟(jì)上,除了對(duì)用于生產(chǎn)這些新技術(shù)的現(xiàn)有存儲(chǔ)器制造設(shè)施的更多投資之外,只要他們?nèi)匀豢梢允褂肈RAM或Flash就很難讓用戶轉(zhuǎn)到新技術(shù)上。
然而,我們?nèi)匀粓?jiān)信新興的NVM將成為計(jì)算型存儲(chǔ)/存內(nèi)計(jì)算/存算一體的支持技術(shù)。