周正 黃鵬 康晉鋒
(北京大學(xué)集成電路學(xué)院,北京 100871)
通過在基本單元上集成存儲和計算功能,存內(nèi)計算技術(shù)能夠顯著降低數(shù)據(jù)搬運規(guī)模,被廣泛認(rèn)為是突破傳統(tǒng)馮·諾依曼計算架構(gòu)性能瓶頸的新型計算范式.非揮發(fā)存儲器件兼具非易失特性和存算融合功能,是實現(xiàn)存內(nèi)計算的良好功能器件.本文首先介紹了存內(nèi)計算范式的基本概念,包括技術(shù)背景和技術(shù)特征.然后綜述了用于實現(xiàn)存內(nèi)計算的非揮發(fā)存儲器件及其性能特征,包含傳統(tǒng)閃存器件和新型阻變存儲器;進(jìn)一步介紹了基于非揮發(fā)存儲器件的存內(nèi)計算實現(xiàn)方法,包括存內(nèi)模擬運算和存內(nèi)數(shù)字運算.之后綜述了非揮發(fā)存內(nèi)計算系統(tǒng)在深度學(xué)習(xí)硬件加速、類腦計算等領(lǐng)域的潛在應(yīng)用.最后,對非揮發(fā)型存內(nèi)計算技術(shù)的未來發(fā)展趨勢進(jìn)行了總結(jié)和展望.
隨著集成電路技術(shù)的發(fā)展,電子設(shè)備逐漸推廣到日常生活的各個方面[1].電子設(shè)備互聯(lián)互通,產(chǎn)生的數(shù)模規(guī)模不斷攀升.預(yù)計2025 年,全球的實時數(shù)據(jù)規(guī)模將達(dá)到47 澤字節(jié)(1 澤字節(jié)=270字節(jié))[2].由此催生出眾多數(shù)據(jù)依賴的信息處理任務(wù),如模式識別、數(shù)字孿生等.然而,由于摩爾定律接近物理極限,集成電路等比例縮小趨勢逐步放緩[3],傳統(tǒng)計算平臺性能進(jìn)一步提升面臨嚴(yán)峻挑戰(zhàn).同時,傳統(tǒng)計算平臺受限于馮·諾依曼瓶頸[4]和存儲墻[5]等問題,難以應(yīng)對海量數(shù)據(jù)搬運和處理的實際需求.存內(nèi)計算技術(shù)通過在基本單元上集成計算和存儲功能,打破了傳統(tǒng)馮·諾依曼瓶頸,能夠顯著降低數(shù)據(jù)搬運,被認(rèn)為是未來計算架構(gòu)的重要發(fā)展趨勢之一[6-8].
非揮發(fā)存儲(non-volatile memory,NVM)器件是實現(xiàn)存內(nèi)計算的優(yōu)良器件.首先,NVM 器件具備斷電數(shù)據(jù)保持特性,工作狀態(tài)下無需預(yù)加載數(shù)據(jù),待機(jī)狀態(tài)下無需多余的能耗開銷,從而具備低功耗特性;其次,NVM 器件具備多值/模擬存儲特性[9],能夠?qū)崿F(xiàn)高密度的數(shù)據(jù)存儲和信息處理能力;最后,NVM 器件能夠在器件層次上集成存儲和計算功能[10],實現(xiàn)存內(nèi)計算的基本單元結(jié)構(gòu)簡單、集成度高,具備良好的等比例縮小能力[11].NVM 器件根據(jù)技術(shù)成熟度,可分為傳統(tǒng)NVM 器件和新型NVM 器件[12].閃存(flash)器件是典型的傳統(tǒng)NVM器件,具備工藝成熟、性能穩(wěn)定等優(yōu)勢.研究人員拓展了傳統(tǒng)flash 器件的存內(nèi)計算功能,實現(xiàn)了諸如卷積神經(jīng)網(wǎng)絡(luò)加速[13]和穩(wěn)態(tài)邏輯計算[14]等應(yīng)用.新型NVM 器件類型眾多,具備高集成度、低功耗和響應(yīng)迅速等預(yù)期優(yōu)勢,被認(rèn)為能夠在存儲金字塔中彌補(bǔ)傳統(tǒng)存儲和內(nèi)存之間的存儲級內(nèi)存[15].進(jìn)一步地,新型NVM 器件表現(xiàn)出優(yōu)良模擬雙向調(diào)制特性[16],具備高密度存內(nèi)計算應(yīng)用潛力.
基于NVM 器件,研究人員拓展出多種存內(nèi)計算模式.根據(jù)運算類型,可分為存內(nèi)模擬運算和存內(nèi)數(shù)字運算[17].存內(nèi)模擬運算主要利用NVM 器件及其陣列結(jié)構(gòu)的器件響應(yīng)特性和信號調(diào)制能力進(jìn)行運算,在深度學(xué)習(xí)加速[18]以及線性方程組求解[19]等方面具備顯著優(yōu)勢.存內(nèi)數(shù)字運算則利用多個NVM 器件的存儲狀態(tài),通過激勵信號和器件之間的相互作用進(jìn)行邏輯運算,形成了隨機(jī)計算和布爾邏輯[20]等發(fā)展方向.總體來看,近年來隨著非揮發(fā)型存內(nèi)計算技術(shù)研究工作的不斷深入,逐步形成了非揮發(fā)存內(nèi)計算器件功能開發(fā)、存內(nèi)計算運算模式設(shè)計實現(xiàn)和存內(nèi)計算系統(tǒng)應(yīng)用開發(fā)逐步遞進(jìn)的研究體系.本文將聚焦在非揮發(fā)存內(nèi)計算技術(shù)路線,從NVM 器件、存內(nèi)計算運算模式和存內(nèi)計算應(yīng)用場景三個層面,回顧近年來研究人員在非揮發(fā)型存內(nèi)計算技術(shù)領(lǐng)域所取得的最新研究進(jìn)展,總結(jié)當(dāng)前面臨的關(guān)鍵問題,展望未來發(fā)展趨勢與前景.
根據(jù)存儲模塊與計算模塊的相對關(guān)系,可以將硬件系統(tǒng)的計算范式分為存算分離范式、近存計算范式和存內(nèi)計算范式(又稱為“存算一體”或“存算融合”)[21,22],如圖1 所示.傳統(tǒng)馮·諾依曼架構(gòu)不僅是典型的存算分離的計算范式,還是當(dāng)前主流處理器CPU 和GPU 等計算平臺的架構(gòu)基礎(chǔ).其特征是計算部分與存儲部分相互獨立,并通過總線連接[23],具備“程序存儲、共享數(shù)據(jù)、順序執(zhí)行”的特點;此外以計算單元為中心執(zhí)行任務(wù),嚴(yán)重依賴存儲元件的數(shù)據(jù)交互能力.可把近存計算范式看作是對存算分離范式的優(yōu)化設(shè)計.通過平衡系統(tǒng)中存儲體系各部分速度和容量、引入高帶寬存儲模塊、增加片上存儲容量等手段,降低數(shù)據(jù)搬運延時、提高數(shù)據(jù)帶寬,從而提升系統(tǒng)性能.張量處理器(tensor processing unit,TPU)[24]和網(wǎng)絡(luò)處理器(neural-network process unit,NPU)[25]等新型計算平臺是近存計算的典型代表.存內(nèi)計算范式[26]則從根本上改變了存儲和計算的關(guān)系,其特征是在基本單元內(nèi)同時實現(xiàn)計算和存儲功能,模糊了存儲和計算的界限,從根本上緩解了數(shù)據(jù)搬運的問題.
圖1 傳統(tǒng)計算范式分類 (a) 存算分離計算;(b) 近存計算;(c) 存內(nèi)計算Fig.1.Classification of the traditional computational paradigms:(a) Separated memory and logic computing;(b) near memory computing;(c) in-memory computing.
存內(nèi)計算作為一種新型計算范式,對硬件單元、運算邏輯和系統(tǒng)架構(gòu)都提出了全新的需求和挑戰(zhàn),并需要針對應(yīng)用場景進(jìn)行定制化開發(fā).首先,存內(nèi)計算基本單元是構(gòu)成存算融合的基礎(chǔ),需同時具備存儲和計算兩種功能.存內(nèi)計算將基本單元的存儲狀態(tài)視為邏輯計算的輸入或輸出,在基本單元內(nèi)部或附近實現(xiàn)計算功能,由此減少輸入或輸出的數(shù)據(jù)搬運.構(gòu)成存內(nèi)計算基本單元的可以是復(fù)雜的邏輯電路[27],也可能是器件組合[28]甚至單個器件[29].從集成角度看,單個器件或器件組合能夠顯著降低存內(nèi)計算單元的開銷.其次,在基本單元的基礎(chǔ)上需構(gòu)建恰當(dāng)?shù)倪\算邏輯.與互補(bǔ)金屬氧化物半導(dǎo)體 (complementary metal-oxide-semiconductor,CMOS) 邏輯門不同,存內(nèi)計算不再局限在布爾邏輯范疇內(nèi),而是適當(dāng)?shù)匾胗布嫒莸乃銛?shù)運算作為基本運算功能,如加法、乘法等,從而在有限的硬件資源條件下,提高特定任務(wù)的計算效率.最后,受輸入輸出數(shù)據(jù)的形式和基本運算類型的影響,存內(nèi)計算的系統(tǒng)架構(gòu)面臨諸多挑戰(zhàn).諸如算數(shù)運算的輸入輸出模擬信號處理問題[30]、運算過程的級聯(lián)和中間數(shù)據(jù)的存儲問題[31]以及硬件資源復(fù)用問題[32]等.針對實際任務(wù)進(jìn)行定向開發(fā)是存內(nèi)計算技術(shù)的重要推動力量.因此,存內(nèi)計算的研究工作,往往是根據(jù)任務(wù)的運算需求和數(shù)據(jù)形式,如深度學(xué)習(xí)的多層網(wǎng)絡(luò)結(jié)構(gòu)、狀態(tài)邏輯的級聯(lián)特點等,進(jìn)行定制化的基本單元設(shè)計和優(yōu)化,進(jìn)而研究基本運算的實現(xiàn)方式,提出對應(yīng)的存內(nèi)計算系統(tǒng)架構(gòu).
根據(jù)數(shù)據(jù)是否斷電易失,可以將存內(nèi)計算分為揮發(fā)型和非揮發(fā)型.以靜態(tài)隨機(jī)存取存儲器(static random-access memory,SRAM)為代表的易失器件可以構(gòu)成典型的易失型存內(nèi)計算系統(tǒng)[33,34].該系統(tǒng)具備配置靈活、性能穩(wěn)定和技術(shù)成熟等優(yōu)勢,能夠顯著緩解存儲墻等問題.然而,由于缺乏斷電數(shù)據(jù)保持特性,需要進(jìn)行初始化數(shù)據(jù)搬運,從而無法脫離存儲模塊而獨立工作.同時,基于SRAM 的存算融合基本單元結(jié)構(gòu)復(fù)雜,超大規(guī)模集成存在挑戰(zhàn).非易失型存算融合系統(tǒng)主要依托于非易失型存算一體功能器件,包括以flash 為代表的傳統(tǒng)非易失存儲器和以阻變存儲器(resistive random access memory,RRAM)為代表的新型非易失存儲器件.由于具備非易失特性,系統(tǒng)運行過程不僅無需外部數(shù)據(jù)的預(yù)加載,還具備低待機(jī)功耗、快速響應(yīng)等性能優(yōu)勢.另外,由于非易失存算功能器件在器件層級上就實現(xiàn)了存儲和計算功能的集成,從而具備更好的等比例縮小能力,在集成大規(guī)模系統(tǒng)方面具有天然優(yōu)勢.
Flash 器件具有工藝成熟、性能穩(wěn)定和產(chǎn)業(yè)化程度高等顯著優(yōu)勢,是存算融合系統(tǒng)應(yīng)用實現(xiàn)的優(yōu)良硬件載體[35].如圖2(a)所示,flash 器件的浮柵結(jié)構(gòu)位于柵極氧化層和控制層之間,由具備電子缺陷的絕緣層和兩側(cè)SiO2材料層構(gòu)成[36].電荷存儲在電子缺陷層不連續(xù)的缺陷狀態(tài)中,可以通過熱電子注入和Fowler-Nordheim (F-N)隧穿效應(yīng),改變電荷的存儲狀態(tài),從而實現(xiàn)數(shù)據(jù)的寫入和擦除[36],見圖2(b).由于需要克服界面勢壘,數(shù)據(jù)寫入需要較高電壓(>10 V)和較長時間(>10 μs),循環(huán)擦寫次數(shù)約為105—106次.根據(jù)flash 單元的排列方式,主流flash 陣列結(jié)構(gòu)可分為NOR 型和NAND 型.在NOR 型flash 陣列中,如圖2(c)所示,相同位線(bit line)的flash 呈并聯(lián)結(jié)構(gòu);NAND 結(jié)構(gòu)中,如圖2(d)所示,flash 通過控制管與位線和源線(source line)相互串聯(lián)[36].
圖2 傳統(tǒng)NVM 器件flash[36] (a) 典型器件結(jié)構(gòu);(b) flash 操作模式與物理機(jī)制;(c) NOR 型陣列結(jié)構(gòu);(d) NAND 型陣列結(jié)構(gòu)Fig.2.Flash,a traditional NVM device[36]:(a) Typical flash device structure;(b) the operation scheme and physical mechanism;(c) NOR flash array;(d) NAND flash array.
基于flash 的存內(nèi)計算研究涵蓋了器件、陣列和系統(tǒng)架構(gòu)等方面.2015 年,加州大學(xué)圣塔芭芭拉分校(UCSB)課題組[37]在商用ESF1NOR 型flash的基礎(chǔ)上開發(fā)了高精度的編程算法,實現(xiàn)了高于10 位的精確存儲能力.為了降低功耗,利用Flash亞閾值區(qū)域,限制單元電流在 10-10—10-6A范圍內(nèi).2017 年,UCSB 課題組[38]進(jìn)一步實現(xiàn)了首款基于180 nm NOR 型 flash 工藝的全連接神經(jīng)網(wǎng)絡(luò)加速芯片.2018 年,北京大學(xué)Han 等[39]提出基于NOR型flash 的卷積計算加速方案,并基于65 nm flash工藝節(jié)點進(jìn)行了流片驗證,結(jié)果表明單位功耗下處理器可執(zhí)行運算操作14.5 次,即能效比達(dá)到14.5.在2019 年,明尼蘇達(dá)大學(xué)Kim 等[40]研發(fā)了基于eNAND 型flash 的矩陣向量乘法器,并協(xié)同壓控振蕩器實現(xiàn)了LeNet-5 網(wǎng)絡(luò).2019 年,旺宏公司成功演示了基于64 GB 容量、SLC 存儲密度和3D堆疊結(jié)構(gòu)的NAND 型flash 顆粒,研制出矩陣向量乘積運算加速器[41].
為了進(jìn)一步提升存算融合系統(tǒng)性能,相繼提出了一系列新型非揮發(fā)存算功能器件.如以相變效應(yīng)形式存儲信息的相變存儲器[42],即利用電流產(chǎn)生的焦耳熱促使相變材料在晶態(tài)和非晶態(tài)之間發(fā)生轉(zhuǎn)變,非晶態(tài)為高阻、晶態(tài)為低阻;以自旋轉(zhuǎn)移力矩形式存儲數(shù)據(jù)的磁阻隨機(jī)存儲器[43],由自由磁層、隧穿層和固定磁層組成,當(dāng)自由磁層和固定磁層的磁場方向平行,表現(xiàn)為低阻態(tài),反之為高阻態(tài);以自發(fā)極化鐵電效應(yīng)形式存儲信息的鐵電器件[44],即利用鐵電材料在不同電場作用下,晶體中原子產(chǎn)生位移而導(dǎo)致正負(fù)電荷的中心位置發(fā)生偏移,形成極化向上和向下兩種穩(wěn)定狀態(tài);以細(xì)絲導(dǎo)電通道通斷效應(yīng)存儲信息的RRAM[45].其中,RRAM 具備低功耗、高密度集成等優(yōu)勢,是新型NVM 器的典型代表.RRAM 結(jié)構(gòu)簡單,單元面積可達(dá)4F2(F為光刻工藝所能達(dá)到的最小特征尺寸),具備三維集成能力.同時,RRAM 可實現(xiàn)約85 ps 的電阻轉(zhuǎn)變、擦寫次數(shù)大于1012、擦寫電流小于15 μA、阻變窗口大于100、高溫(150 ℃)數(shù)據(jù)保持時間超過10 年.
典型的RRAM 工作過程可分為3 個階段,如圖3(a)所示:1)導(dǎo)線細(xì)絲初始化過程(forming),一般是利用較大幅度的電壓或電流作用器件,形成軟擊穿,使其從初始阻態(tài)不可逆地轉(zhuǎn)變?yōu)榈妥钁B(tài);2)復(fù)位過程(reset),利用脈沖或直流信號,在阻變器件兩端形成反向電勢差,使其從低阻態(tài)轉(zhuǎn)變?yōu)楦咦钁B(tài);3)置位過程(set),同樣利用脈沖或直流信號,在器件兩端形成正向電勢差,使其從高阻態(tài)轉(zhuǎn)變至低阻態(tài).雙極型RRAM 的典型I-V特性曲線中 (圖3(b)),置位和復(fù)位是非破壞性的可逆過程[46].雙極型阻變器件的電阻轉(zhuǎn)變過程受外加電壓極性的控制,置位操作和復(fù)位操作施加的電壓極性相反且方向固定.RRAM 的物理機(jī)制如圖3(c)所示,在初始化/置位過程外場作用下,處于格點上的氧離子被激發(fā)為游離態(tài),同時在原位上留下氧空位缺陷[46].游離態(tài)氧離子在電場作用下逆著電場跳躍到電極和氧化物的界面處,被電極吸附并存儲在電極中.伴隨著更多的氧空位產(chǎn)生,形成了一條連通上下兩個電極的導(dǎo)電通道.在復(fù)位過程中,電場方向反轉(zhuǎn),存儲在電極附近的游離態(tài)氧離子被釋放,并跳躍到氧空位的俘獲截面內(nèi)與氧空位復(fù)合,導(dǎo)致導(dǎo)電通道發(fā)生斷裂,器件從低阻態(tài)轉(zhuǎn)變?yōu)楦咦钁B(tài).常見的RRAM 單元結(jié)構(gòu)如圖3(d)所示,包括1R,1S1R 和1T1R 結(jié)構(gòu).1R 具備4F2的器件集成密度優(yōu)勢,1T1R 限制了陣列的串?dāng)_能夠?qū)崿F(xiàn)較大陣列規(guī)模.1S1R 兼具二者優(yōu)勢,但面臨選通管器件工藝不成熟,1S1R 協(xié)同設(shè)計難度大等問題.
圖3 新型NVM 器件RRAM (a) 常見阻變行為[46];(b) 雙極型RRAM 的典型I-V 特性曲線;(c) 基于氧空位的阻變物理機(jī)制模型[46];(d) 常見RRAM 單元結(jié)構(gòu)包括1R,1S1R 和 1T1RFig.3.RRAM,a novel NVM device:(a) Typical resistive switch behavior[46];(b) the typical I-V curve of bipolar RRAM device;(c) the physical mechanism of oxide-based RRAM[46];(d) the typical basic unit based on RRAM include 1R,1S1R and 1T1R.
雖然在20 世紀(jì)60 年代已經(jīng)發(fā)現(xiàn)了阻變現(xiàn)象,但RRAM 真正開始得到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,是從2004 年三星公司在國際電子器件大會上發(fā)布基于NiO 的RRAM 器件開始[47].此后,基于不同材料體系的憶阻行為相繼被發(fā)現(xiàn),包括氧化物、電解液、低維材料等無機(jī)材料體系和納米纖維素、聚合物等有機(jī)材料體系[48-50].導(dǎo)電前段移動模型、導(dǎo)電細(xì)絲數(shù)量調(diào)控模型、肖特基勢壘模型等物理機(jī)制模型[9]也相繼被提出用以解釋阻變行為.與此同時,基于阻變器件的存內(nèi)計算應(yīng)用研究相繼展開,逐漸發(fā)展出深度學(xué)習(xí)加速、類腦計算、狀態(tài)邏輯等新興研究方向[51].
根據(jù)運算不同的模式,可以將存內(nèi)計算模式分為存內(nèi)模擬運算和存內(nèi)數(shù)字運算.存內(nèi)模擬運算是利用器件的模擬特性和信號調(diào)制能力,結(jié)合器件陣列的結(jié)構(gòu)特征,實現(xiàn)如乘法、加法等基本算術(shù)運算,從而在存內(nèi)計算單元陣列上完成模擬運算.存內(nèi)數(shù)字運算的主要特點是利用固定的外界激勵信號,通過多個存內(nèi)計算單元之間的相互作用和單元的存儲狀態(tài),以滿足布爾邏輯的方式實現(xiàn)存內(nèi)運算功能.
4.1.1 向量-矩陣運算模式
如圖4(a)所示,存內(nèi)計算單元在二維空間呈陣列分布,并通過交叉結(jié)構(gòu)相互連接.利用存內(nèi)計算單元的存儲特性,可將矩陣元素映射至單元中.在陣列的每行,同時輸入激勵信號來表示輸入向量.同行存算單元同時對激勵信號做出響應(yīng),將同列存算單元的響應(yīng)累積起來構(gòu)成列向量輸出,即向量矩陣乘積結(jié)果.以兩端器件RRAM 為例,利用歐姆定律同列器件可同時實現(xiàn)輸入電壓與電導(dǎo)的乘積操作.同時利用基爾霍夫電壓定律,RRAM 陣列能夠在一個周期內(nèi)完成矢量與矩陣的乘累加運算.對應(yīng)的數(shù)學(xué)表達(dá)式為
其中Vi為第i行的輸入電壓,Gij為存儲器陣列中第i行、j列的電導(dǎo)值,Ij為第j列的輸出電流值.為了完善矩陣向量乘積方法,Pedretti 等[52]探索了適配各類存內(nèi)計算單元存儲能力的均勻編碼、位編碼等矩陣表示方案,如圖4(b)所示,與之對應(yīng)的映射誤差見圖4(c).同時,研究人員也探索了輸入向量的信息編碼方法,提出了幅值、脈寬等時空編碼方案等[52,53],能夠有效地提高數(shù)據(jù)傳輸密度和運算效率.為了實現(xiàn)完備的正負(fù)輸入和正負(fù)權(quán)重的運算,Park 等[54]設(shè)計了如圖4(e)的運算方法;Li 等[55]探索了輸出信息的模數(shù)轉(zhuǎn)化方法.然而,在實際情況下,向量矩陣乘積仍面臨較多挑戰(zhàn).例如,通常存內(nèi)計算器件并非理想的歐姆器件,電壓響應(yīng)呈現(xiàn)非線性特性[56],見圖4(f);交叉陣列的線阻影響激勵信號傳輸,會引起運算偏差[57],見圖4(g);輸出向量的模數(shù)轉(zhuǎn)化方法實現(xiàn)方法仍不完善等.
圖4 向量-矩陣運算模式 (a) 基本原理;(b) 矩陣編碼模式[52];(c) 器件狀態(tài)波動性對編碼的影響[52];(d) 向量編碼模式[53];(e) 正負(fù)輸入和權(quán)重的運算方法[54];(f) 器件I-V 非線性[56];(g) 交叉陣列互聯(lián)電阻[57]Fig.4.Vector-matrix operation mode:(a) The basic principle;(b) matrix encode (mapping) scheme[52];(c) impact of device variation on the matrix encode[52];(d) input vector encode schemes[53];(e) the operation method of positive and negative input and weight[54];(f) the nonlinearity I-V behavior of device[56];(g) the interconnect resistance of cross-bar array[57].
4.1.2 向量-向量運算模式
如圖5(a)所示,基于交叉陣列的互連結(jié)構(gòu),將行和列作為輸入,利用存內(nèi)計算單元對外界施加的組合激勵信號的響應(yīng)作為輸出結(jié)果,直接存儲在存內(nèi)計算單元內(nèi),從而實現(xiàn)了行向量與列向量的運算功能.仍以兩端器件RRAM 為例,利用兩端信號的疊加作用,陣列中每個單元均受其所在行和列的激勵信號的影響.具體數(shù)學(xué)表達(dá)式為
圖5 向量-向量運算模式 (a) 基本原理;(b) 向量形式的矩陣-矩陣乘積運算[58];(c) 尖峰時間依賴可塑性學(xué)習(xí)規(guī)則[59];(d) 一種基于RRAM 的半加器實現(xiàn)方式[60];(e) 典型NVM 器件存儲狀態(tài)飽和限制[61]Fig.5.Vector-vector operation mode:(a) The basic principle;(b) the matrix-matrix multiplication based on vector form[58];(c) the spike time dependent plasticity learning rule[59];(d) the half-adder implementation approach based on RRAM[60];(e) the saturation limited states range of typical NVM device[61].
計算機(jī)硬件基于二進(jìn)制數(shù)據(jù)的表示和處理,布爾邏輯在硬件體系結(jié)構(gòu)中結(jié)構(gòu)的描述、構(gòu)建和優(yōu)化過程方面扮演著十分重要的角色,也是存內(nèi)數(shù)字運算的研究目標(biāo).常見的布爾邏輯如圖6(a)所示,其中NAND,NOR 和蘊(yùn)含邏輯(implication,IMP)是完備的邏輯形式,僅利用任意一種邏輯,通過組合就可實現(xiàn)其他所有邏輯類型,成為存內(nèi)數(shù)字運算硬件實現(xiàn)的首要目標(biāo).如圖6(b),(c)所示,利用傳統(tǒng)揮發(fā)型存儲器SRAM/動態(tài)隨機(jī)存取存儲器(dynamic random access memory,DRAM)均可實現(xiàn)完備的布爾邏輯功能.然而,面向大數(shù)據(jù)應(yīng)用,直接在非易失存儲器內(nèi)實現(xiàn)邏輯運算更具優(yōu)勢.根據(jù)輸入輸出物理量的不同,可以將存內(nèi)數(shù)字運算分成V-R型、R-V型、V-V型和R-R型這4 種邏輯形式.以RRAM 為例,如圖6(d),V-R型邏輯的輸入A 和B 由施加在RRAM 兩端電極的電壓高低表示,邏輯結(jié)果為RRAM 的存儲狀態(tài).2011 年,亞琛工業(yè)大學(xué)[62]通過利用雙極型阻變器件實現(xiàn)了V-R型邏輯.在此基礎(chǔ)上,華中科技大學(xué)[63]利用1T1R 單元的柵、源、漏和RRAM 的阻態(tài)作為邏輯輸入,實現(xiàn)了廣義上的V-R邏輯,能夠在兩步操作內(nèi)實現(xiàn)任意16 種布爾邏輯.由于V-R邏輯的輸出結(jié)果為存內(nèi)計算單元的存儲狀態(tài),具備原位存儲特征,是一種高效的邏輯實現(xiàn)方法.然而,由于輸入輸出變量統(tǒng)一,級聯(lián)需借助額外的信號轉(zhuǎn)換電路.如圖6(e)所示,R-V型邏輯將RRAM 的存儲狀態(tài)作為邏輯輸入[64],通過對A 和B 同時施加讀電壓,比較公共節(jié)點與基準(zhǔn)值,實現(xiàn)組合邏輯.通過設(shè)置不同的基準(zhǔn)值,可以實現(xiàn)NAND,AND,OR,NOR,XOR 和XNOR 這6 種常見邏輯.與V-R型邏輯類似,R-V邏輯的輸入輸出物理量依然不統(tǒng)一,也面臨著無法直接級聯(lián)的問題.V-V型邏輯如圖6(f)所示,輸入輸出物理量均為電壓信號[65].與R-V型邏輯的固定讀電壓不同,V-V型邏輯通過是否施加讀電壓來代表輸入1 和0,在輸出端同樣使用基準(zhǔn)值進(jìn)行比較,得到輸出電壓值[65].可見,V-V型邏輯具備的直接級聯(lián)的優(yōu)勢,但其輸出結(jié)果是易失的.R-R型邏輯是利用RRAM 件與輔助電阻的分壓原理實現(xiàn)邏輯運算,如圖6(g)所示,其輸入輸出物理量均為RRAM 的存儲狀態(tài)[66].R-R型邏輯是最典型的非易失邏輯,具備直接級聯(lián)的優(yōu)勢.同時,R-R型邏輯的輸入輸出均為RRAM 的存儲狀態(tài),因此具備非易失特性.
圖6 存內(nèi)數(shù)字運算模式 (a) 常見邏輯真值表;基于SRAM (b)和DRAM (c)的邏輯實現(xiàn)方案示例[26];基于NVM 器件的邏輯 (d) V-R型,(e) R-V 型,(f) V-V 型,(g) R-R 型Fig.6.In-memory digital computing mode:(a) The true value table of typical logic;SRAM (b) and DRAM (c) based logic implementation[26];logics based on NVM device:(d) V-R type,(e) R-V type,(f) V-V type,(g) R-R type.
盡管存內(nèi)數(shù)字運算研究進(jìn)展顯著,但距離實際應(yīng)用仍存在許多關(guān)鍵科學(xué)問題需要解決.在器件層次,存內(nèi)計算單元的一致性和擦寫次數(shù)有待提高,以滿足邏輯運算的準(zhǔn)確性和頻繁性;在陣列層次,泄漏電流和線阻等問題有待解決,以推動存內(nèi)數(shù)字運算向大規(guī)模電路的方向發(fā)展;在邏輯級聯(lián)層次,單步邏輯的可靠性問題被進(jìn)一步放大,實現(xiàn)復(fù)雜邏輯運算面臨較大的挑戰(zhàn).
表1 對比了上述存內(nèi)計算模式,可以得出以下結(jié)論.第一,存內(nèi)計算的計算模式呈多樣化發(fā)展趨勢,這種多樣化趨勢歸根于應(yīng)用場景中運算的多樣化需求.由于利用存儲器件實現(xiàn)各類運算功能存在典型差異,從而催生出不同類型的存內(nèi)計算模式.各類計算模式均在其特定的應(yīng)用場景下發(fā)揮著重要作用.第二,存內(nèi)模擬運算充分利用了存儲器件的多值和模擬特性,使單位面積的計算密度得到顯著提升.通過利用器件及其互聯(lián)結(jié)構(gòu)的電學(xué)特性,存內(nèi)模擬計算能夠在模擬域進(jìn)行諸如乘法、加法的代數(shù)邏輯運算,從而突破布爾邏輯門的限制.然而,在功能器件的有限動態(tài)范圍、編程精度等客觀條件限制下,存內(nèi)模擬計算更加適合非精確計算的應(yīng)用場景.第三,存內(nèi)數(shù)字運算本質(zhì)上是利用功能器件實現(xiàn)存算一體的完備布爾邏輯.由于具備原位的計算和存儲能力,存內(nèi)數(shù)字運算相較傳統(tǒng)布爾邏輯,具備更短距離的數(shù)據(jù)搬運特點和分布式計算的特征,能夠在數(shù)據(jù)密集型應(yīng)用中承擔(dān)數(shù)據(jù)預(yù)處理能力,補(bǔ)充傳統(tǒng)計算架構(gòu)的不足.然而,受限于器件有限的魯棒性和波動性,在較為嚴(yán)苛的布爾邏輯運算的需求面前,存內(nèi)數(shù)字運算的可靠性有待進(jìn)一步提升.第四,得益于器件的非易失特性、優(yōu)秀的等比縮小能力和高并行度的陣列拓?fù)浣Y(jié)構(gòu),存內(nèi)模擬運算和存內(nèi)數(shù)字運算在各自擅長的領(lǐng)域內(nèi),在能耗開銷、運算效率和系統(tǒng)集成度等方面均具備一定的性能優(yōu)勢和發(fā)展?jié)摿?
表1 存內(nèi)計算模式的特征Table 1.Feature of in-memory computing modes.
深度學(xué)習(xí)是第三代人工智能算法的典型代表,在模式識別和自然語言處理等領(lǐng)域具備顯著的性能優(yōu)勢[67].反向傳播算法是深度學(xué)習(xí)的理論基礎(chǔ)[68],其特點是基于隨機(jī)梯度下降方法,利用大量的樣本和標(biāo)簽信息,通過損失函數(shù)不斷對多層網(wǎng)絡(luò)的權(quán)重矩陣進(jìn)行逐步更新,不斷趨近理想權(quán)值.通過不斷加深網(wǎng)絡(luò)層數(shù)和權(quán)重參數(shù)規(guī)模,深度學(xué)習(xí)在高維特征變換、信息過濾等方面取得了顯著進(jìn)步.由于深度學(xué)習(xí)算法包含海量的網(wǎng)絡(luò)權(quán)重,算法執(zhí)行過程包含大量的特征圖像與權(quán)重矩陣的乘積求和運算,十分契合存內(nèi)計算模擬運算,被認(rèn)為是存內(nèi)計算的典型應(yīng)用場景[69].
如圖7(a)所示,深度學(xué)習(xí)算法種類繁多,囊括了全連接網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等眾多拓?fù)浣Y(jié)構(gòu)[70].其中,全連接結(jié)構(gòu)是深度學(xué)習(xí)的基本結(jié)構(gòu),其前后神經(jīng)元相互連接,等價于交叉陣列結(jié)構(gòu)構(gòu)成的行列互連結(jié)構(gòu)[50],見圖7(b);卷積神經(jīng)網(wǎng)絡(luò)是在全連接結(jié)構(gòu)下,進(jìn)行結(jié)構(gòu)化稀疏,通過選通特定的行列也可在交叉陣列結(jié)構(gòu)中實現(xiàn);循環(huán)神經(jīng)網(wǎng)絡(luò)則是引入時間因素,將輸出結(jié)果作為部分或全部信息,再次輸入到互聯(lián)的網(wǎng)絡(luò)內(nèi)進(jìn)行迭代計算,同樣將交叉結(jié)構(gòu)作為基礎(chǔ).如圖7(c)所示,深度學(xué)習(xí)硬件加速器根據(jù)功能不同,可分為推理功能加速和訓(xùn)練功能加速.實現(xiàn)推理功能時,需將算法權(quán)重映射至存內(nèi)計算單元內(nèi),利用存內(nèi)計算模擬運算的性能優(yōu)勢,加速網(wǎng)絡(luò)的前傳計算能力;實現(xiàn)訓(xùn)練功能時,不僅需要推理功能實現(xiàn)前傳和反傳運算,同時還要求存內(nèi)計算單元能夠?qū)崿F(xiàn)原位的權(quán)重更新.
針對深度學(xué)習(xí)硬件加速研究,研究人員分別在器件層次、運算核層次和系統(tǒng)層次展開了深入研究.在器件層次,深度學(xué)習(xí)硬件加速器面臨著器件性能的有限表現(xiàn)與算法權(quán)重較高需求的不適配問題,主要表現(xiàn)為器件有限的動態(tài)范圍、編程精度、存儲狀態(tài)波動、信號響應(yīng)非線性和非對稱等非理想因素.為克服這一系列問題,研究人員提出了各類算法在不同運算精度下的權(quán)重映射方法.2019 年,Huang等[71]研究了利用非線性非對稱器件進(jìn)行權(quán)重更新的方法 (圖7(d));2021 年,Feng 等[72]研究了器件的權(quán)重調(diào)制方法、優(yōu)化了器件的狀態(tài)保持特性(圖7(e),(f)).同時,深度學(xué)習(xí)算法也朝著輕量化方向發(fā)展,衍生出硬件更加友好的二值化、少值化的算法變體.在運算核層次,面臨著利用存儲陣列實現(xiàn)高效數(shù)據(jù)傳輸和模數(shù)混合運算的挑戰(zhàn),不僅要克服陣列結(jié)構(gòu)本身的串?dāng)_、線阻等問題,也需要解決外圍控制電路的設(shè)計實現(xiàn)問題.相關(guān)的研究工作在數(shù)據(jù)搬運方法、后處理模數(shù)轉(zhuǎn)化實現(xiàn)方案、無需模數(shù)轉(zhuǎn)化的多級直連傳輸方法等方面取得了一定的研究進(jìn)展[73,74].在系統(tǒng)層次,如圖7(g)所示,需在保證運算效率的前提下解決有限硬件資源的分配問題[75].研究人員提出了圖7(h)所示的流水線式網(wǎng)絡(luò)映射方法,研究了運算核的協(xié)同工作模式以及多核存內(nèi)計算架構(gòu)[76,77]等問題.同時,根據(jù)訓(xùn)練和推理的不同功能特點,需進(jìn)行適當(dāng)?shù)募铀倨骷軜?gòu)研究.研究人員基于NVM 器件提出了兼容多種算法的存內(nèi)計算系統(tǒng)框架[78,79],并驗證了存內(nèi)計算技術(shù)的性能優(yōu)勢.面向未來,深度學(xué)習(xí)的存內(nèi)計算硬件加速研究依然面臨著圖7(i)所示的稀疏神經(jīng)網(wǎng)絡(luò)的適配性問題,也需要解決圖7(j)所示的輸入信息的數(shù)據(jù)搬運問題[74].
圖7 存內(nèi)計算加速深度學(xué)習(xí) (a) 常見深度學(xué)習(xí)算法分類[70];(b) 存內(nèi)計算加速深度學(xué)習(xí)的基本原理[50];(c) 深度學(xué)習(xí)各功能的存內(nèi)計算實現(xiàn)方式;(d) 利用二值神經(jīng)網(wǎng)絡(luò)算法克服器件非線性的影響[71];(e) 器件操作優(yōu)化方案[72];(f) 利用激勵信號波形抑制器件波動性[72];(g) 基于存內(nèi)計算的深度學(xué)習(xí)加速器的典型架構(gòu)[73];(h) 流水線硬件實現(xiàn)方法加速網(wǎng)絡(luò)運算效率;(i) 神經(jīng)網(wǎng)絡(luò)稀疏性表現(xiàn)形式,結(jié)構(gòu)化和非結(jié)構(gòu)化;(j) 減少輸入信息搬運的數(shù)據(jù)調(diào)用方案[74]Fig.7.In-memory computing based deep learning accelerator:(a) The classes of deep learning algorithms[70];(b) the basic principle of in-memory computing accelerates deep learning algorithm[50];(c) in-memory computing implementation of deep learning functions;(d) solve the impact of device non-linearity switch behavior by binarized neural network[71];(e) the optimized programming scheme of device[72];(f) improve the device reliability by optimizing the stimulus signal[72];(g) typical architecture of deep learning accelerators based on in-memory computing[73];(h) pipeline weight mapping approach to speed up network computing efficiency;(i) the sparsening of neural network:structured and unstructured;(j) data call scheme to reduce input information handling[74].
當(dāng)前的人工智能技術(shù)仍然存在一定局限性,相比人腦的功能多樣性和復(fù)雜度仍存在明顯差距.為了更接近人腦功能,人們提出了神經(jīng)形態(tài)計算的概念.預(yù)期的神經(jīng)形態(tài)計算系統(tǒng),具備在功能上模擬腦、性能上趨近腦、規(guī)模上超越腦的典型特征,這被認(rèn)為是未來人工智能的發(fā)展方向,也將是存內(nèi)計算技術(shù)的重要應(yīng)用場景.仿腦(brain-like)和類腦(brain-inspired)神經(jīng)網(wǎng)絡(luò)都屬于神經(jīng)形態(tài)硬件系統(tǒng)的研究范疇.前者側(cè)重模仿人腦神經(jīng)網(wǎng)絡(luò)的工作模式,注重模擬生物神經(jīng)元、突觸等基本單元的功能,以期望更接近人腦的工作模式;后者偏向在生物的基礎(chǔ)上抽象數(shù)學(xué)模型,構(gòu)建基本單元的數(shù)學(xué)模型并發(fā)展相應(yīng)的算法理論.仿腦為類腦提供了硬件基礎(chǔ),類腦拓展了仿腦的發(fā)展空間,二者相輔相成,構(gòu)成了當(dāng)前神經(jīng)形態(tài)硬件系統(tǒng)的發(fā)展方向.
如圖8(a)—(g)所示,在仿腦領(lǐng)域研究人員利用存內(nèi)計算功能器件實現(xiàn)生物突觸的長程可塑性(long-time plasticity,LTP)、短程可塑性(shottime plasticity,STP)和長短程可塑性的轉(zhuǎn)變,實現(xiàn)了生物突觸的雙脈沖易化特性[80],實現(xiàn)了尖峰脈沖時間依賴和頻率依賴可靠性[80-82]等一系列突觸基本功能;如圖8(h),(i)所示,Li 等[83]利用存內(nèi)計算功能器件實現(xiàn)了生物神經(jīng)元的閾值特性、非線性信號調(diào)制能力和信號激勵特性等.在類腦領(lǐng)域,Lashkare 等[84]利用存內(nèi)計算功能單元實現(xiàn)了積分觸發(fā)和泄漏積分觸發(fā)神經(jīng)元,實現(xiàn)了基于尖峰時間和頻率依賴可塑性的學(xué)習(xí)法則.Milo 等[85]利用全連接網(wǎng)絡(luò)演示了無監(jiān)督學(xué)習(xí)能力 (圖8(k));圖8(l)實現(xiàn)了霍普菲德網(wǎng)絡(luò)和聯(lián)想學(xué)習(xí)功能[86]等.同時,圖8(m)為Larkum[87]探索得更復(fù)雜的仿生神經(jīng)網(wǎng)絡(luò)模型.基于存內(nèi)計算的脈沖神經(jīng)網(wǎng)絡(luò)也在不斷推進(jìn)[88,89],如圖8(n)所示的可直接級聯(lián)的脈沖神經(jīng)網(wǎng)絡(luò)[75].然而,當(dāng)前的神經(jīng)形態(tài)計算研究仍存在巨大挑戰(zhàn).在仿腦領(lǐng)域,仍面臨著如何完整揭示完備的人腦工作原理、如何在單一元件內(nèi)集成多種仿生功能、如何在系統(tǒng)層次上融合各類生物功能等重要問題.在類腦領(lǐng)域,則面臨著理論模型不完善,網(wǎng)絡(luò)算法功能單一、性能不足等顯著問題,仍然難以在結(jié)構(gòu)和功能上模擬生物神經(jīng)網(wǎng)絡(luò)的完整功能.二值化、少值化的脈沖神經(jīng)網(wǎng)絡(luò)是探索類腦計算系統(tǒng)功能的重要手段,研究工作利用二值突觸實現(xiàn)了低復(fù)雜度的硬件友好的脈沖神經(jīng)網(wǎng)絡(luò)[90].
圖8 基于存內(nèi)計算技術(shù)的類腦計算研究 (a) 生物突觸結(jié)構(gòu);利用NVM 器件實現(xiàn)突觸的(b) LTP,(c) STP 和長短程可塑性轉(zhuǎn)變;(d) 雙脈沖易化響應(yīng)特性[80];(e) 尖峰脈沖頻率依賴可塑性[80];(f) 尖峰脈沖時間依賴可塑性[80];(g) RRAM 中的Bienenstock-Cooper-Munro 權(quán)重更新規(guī)則[82];(h) 生物神經(jīng)元結(jié)構(gòu)[83];(i) 基于RRAM 的神經(jīng)元樹突非線性調(diào)制功能[83];(j) 神經(jīng)元積分觸發(fā)功能[84];(k) 基于尖峰脈沖頻率依賴可塑性的脈沖神經(jīng)網(wǎng)絡(luò)非監(jiān)督學(xué)習(xí)功能[85];(l) 霍普菲德網(wǎng)絡(luò)學(xué)習(xí)規(guī)則[86];(m) 生物神經(jīng)網(wǎng)絡(luò)理論模型[87];(n) 脈沖神經(jīng)網(wǎng)絡(luò)實現(xiàn)方案[75]Fig.8.Neuromorphic computing based on in-memory computing:(a) The biological synapse;(b) LTP,(c) STP and the conversation between STP and LTP of NVM device based artificial synapse;(d) double pulse facilitated response characteristics[80];(e) the spike rate dependent plasticity (SRDP) [80];(f) the spike-time dependent plasticity (STDP) [80];(g) the Bienenstock-Cooper-Munro weight update rules in RRAM[82];(h) the principle of biological neural[83];(i) the signal modulation capability of the RRAM based artificial dendrite[83];(j) neuron integration-fire function[84];(k) unsupervised online training follows the spike rate dependent plasticity based spike neural network learning rule[85];(l) the Hopfield eLearning rules[86];(m) the model of biological neural network[87];(n) implementation of spiking neural network[75].
2010 年,惠普公司利用RRAM 在特定電壓脈沖下發(fā)生阻值變化的特點,實現(xiàn)了一種狀態(tài)邏輯計算功能[91].這種邏輯計算的基礎(chǔ)是實質(zhì)蘊(yùn)含邏輯,數(shù)學(xué)形式是“pIMPq”(圖9(a)).結(jié)合FALSE邏輯,實質(zhì)蘊(yùn)含邏輯可以實現(xiàn)完整的二值數(shù)字邏輯函數(shù),從而形成了一種在存儲器內(nèi)實現(xiàn)完整邏輯計算的技術(shù)路線.2014 年,以色列理工學(xué)院利用RRAM的分壓關(guān)系進(jìn)行邏輯運算,實現(xiàn)了NOR 邏輯,從而提出了一種名為MAGIC 的RRAM 輔助邏輯操作方案[92].2016 年,北京大學(xué)Huang 等[93]通過改變RRAM 上的電壓信號施加方法實現(xiàn)了一種布爾代數(shù)邏輯,即一步操作實現(xiàn)NAND 和AND 邏輯,具備邏輯重構(gòu)功能,并建立了圖9(b)所示的存內(nèi)計算系統(tǒng)架構(gòu).這三種實現(xiàn)方案各有優(yōu)劣.從結(jié)構(gòu)上看,實質(zhì)蘊(yùn)含邏輯和布爾代數(shù)邏輯均需負(fù)載電阻參與邏輯操作,影響存內(nèi)計算的集成密度.從操作步驟看,實質(zhì)蘊(yùn)含邏輯和RRAM 輔助邏輯均只能實現(xiàn)一種基礎(chǔ)邏輯操作,故實現(xiàn)完整邏輯需較多操作步數(shù),復(fù)雜度較高.從輸入輸出狀態(tài)變化看,實質(zhì)蘊(yùn)含邏輯的一個輸入與輸出共享同一個器件,會改變輸入信息.RRAM 輔助邏輯需要在滿足特定條件的阻變器件中才能實現(xiàn),否則輸入器件的存儲狀態(tài)也可能發(fā)生改變.為了提升穩(wěn)態(tài)邏輯的系統(tǒng)可靠性,北京大學(xué)Shen 等[94]在2019 年提出了基于1T1R 的狀態(tài)邏輯實現(xiàn)方式,如圖9(c)所示,用以抑制陣列中的泄漏電流.2020 年,Shen 等[95]提出了一種基于寄生電容的狀態(tài)邏輯實現(xiàn)方案,從而省去了輔助電阻,形成了更易于加工的陣列制備方案,見圖9(e).
內(nèi)容可尋址存儲器(content addressable memory,CAM)是一種面向超高速數(shù)據(jù)搜索應(yīng)用的一種存儲系統(tǒng),如圖10(a)所示.CAM 的工作原理與隨機(jī)存取存儲器相反,輸入為存儲信息,輸出為存儲地址.其工作過程為將輸入信息依次或并行與CAM 內(nèi)部信息比較,輸出匹配的存儲地址.根據(jù)CAM 的單元存儲狀態(tài),分為二態(tài)內(nèi)容可尋址存儲器(BCAM)和三態(tài)內(nèi)容可尋址存儲器(TCAM).TCAM 除了0/1 外,還包含“don’t care”狀態(tài),即該狀態(tài)是否匹配不影響比較結(jié)果.傳統(tǒng)CAM 通常使用SRAM 作為基本存儲單元,見圖10(b).然而,盡管器件尺寸仍在不斷縮小,SRAM 的面積開銷和泄漏電流問題仍限制著CAM 的進(jìn)一步發(fā)展.存內(nèi)計算單元由于具備高密度存儲能力、低讀取功耗和NVM 等特點,是發(fā)展CAM 技術(shù)的一種潛在方向.2011 年,IBM 利用PCM 器件演示了CAM 和TCAM 的基本功能[96].相較傳統(tǒng)基于SRAM 的實現(xiàn)方式,基于PCM 的CAM 在存儲密度和能耗開銷方面展現(xiàn)出超過5 倍的性能優(yōu)勢.匹茲堡大學(xué)Yan 等[97]提出了基于STT-MRAM 的TCAM 模塊,并設(shè)計演示了Dual-N 型和P-N 型方案,改善了搜索延時性能 (見圖10(c)).2018 年,Grossi 等[98]研制出基于RRAM 的128 bit TCAM 宏,搜索速度與傳統(tǒng)TCAM 齊平,并取得了良好的系統(tǒng)可靠性表現(xiàn) (圖10(d)).圖10(e)為北京大學(xué)Yang 等[99]基于3D NAND 型flash 提出了一款超低功耗、高存儲密度的TCAM 實現(xiàn)方案.結(jié)果如圖10(f)所示,通過比較讀出電流與閾值電壓,可以分辨出搜索信息與存儲信息的匹配與否.預(yù)期每次搜索每比特能耗能夠達(dá)到0.298 fJ (64 bit word)和大于582 倍的存儲密度 (96 layer).
線性方程組是科學(xué)計算領(lǐng)域極其重要的運算需求,廣泛應(yīng)用于天氣預(yù)報、半導(dǎo)體器件仿真等實際場景.在絕大多數(shù)情況下,解析求解線性方程組都是不現(xiàn)實的.通常利用數(shù)字求解的方法,將解空間近似為離散網(wǎng)格,通過高精度運算不斷迭代,得到滿足實際精度需求的近似解.矩陣-向量乘積是迭代計算的關(guān)鍵步驟,涉及大量的數(shù)據(jù)搬運和乘加運算.存內(nèi)模擬計算技術(shù)恰好在矩陣運算方面具備天然優(yōu)勢,因此研究人員提出了基于存內(nèi)計算技術(shù)的偏微分方程求解器.2018 年,如圖11(a)所示,密西根大學(xué)Zidan 等[100]提出了利用位切片技術(shù)的16 bit 全RRAM 偏微分方程求解器.為了提升求解器性能,IBM 整合了高速低功耗的存內(nèi)計算求解器和高精度的數(shù)字求解器的優(yōu)勢,提出了混合精度架構(gòu),齊平了CPU、GPU 的處理能力[101],見圖11(b).2019 年,米蘭理工大學(xué)Sun 等[19]利用RRAM 和負(fù)反饋陣列接連結(jié)構(gòu),演示了一步求解線性方程,如圖11(c)—(e)所示.之后,這種技術(shù)方案又被擴(kuò)展到求解薛定諤方程和其他代數(shù)問題[102].2021 年,山東大學(xué)Feng 等[103]提出了存內(nèi)計算技術(shù)加速浮點數(shù)尾數(shù)乘法的方法,設(shè)計實現(xiàn)了32 bit 浮點數(shù)求解器.綜上所述,器件穩(wěn)定性、一致性以及陣列的非理想因素等問題仍不可忽略,依然影響著求解器的性能表現(xiàn),相應(yīng)的算法和架構(gòu)仍有較大改進(jìn)空間.
隨機(jī)計算(stochastic computing,SC)是一種低成本的計算形式[104],如圖12(a).其工作原理是將信息量化為隨機(jī)分布的0/1 數(shù)據(jù)流,利用數(shù)據(jù)流中的0/1 比例表示實際信息,由此可將乘法等運算簡化為AND 等基本邏輯操作,相較傳統(tǒng)計算具備較高的誤差容忍度、運算邏輯簡答等優(yōu)勢[104].存內(nèi)計算功能器件是實現(xiàn)SC 的重要技術(shù)路線[104,105].一方面,存內(nèi)計算功能器件是良好的隨機(jī)信號發(fā)生器,具備不同尺度下的噪聲來源,如圖12(b),(c);另一方面,存內(nèi)計算功能在實現(xiàn)簡單邏輯計算方面具備顯著優(yōu)勢,且具備高集成程度、高存儲密度的特點.
物理不可克隆函數(shù)(physically unclonable functions,PUF)是一種利用某種物理內(nèi)在機(jī)制構(gòu)建的唯一性標(biāo)識,如圖12(d)所示,輸入任意激勵都會輸出唯一且不可預(yù)測的響應(yīng),常用作信息密鑰、防偽等應(yīng)用場景[106].存內(nèi)計算功能器件,特別是RRAM 等新型NVM 器件,由于具備本質(zhì)的不可預(yù)測的隨機(jī)信號源,是實現(xiàn)PUF 的良好硬件基礎(chǔ)[107,108].相關(guān)的系統(tǒng)架構(gòu)設(shè)計如圖12(e)所示,其工作原理是利用NVM 器件本征的不可預(yù)測、不可復(fù)制的器件波動性,對給定外界激勵信號形成不可克隆的、可重復(fù)觸發(fā)的唯一響應(yīng)[107].
此外,超維計算(hyperdimensional computing,HDC)是一種新興的計算方法,如圖12(f)所示,通過在超維空間計算超維向量化的特征圖像的相對距離,實現(xiàn)分類識別功能[109].為方便理解,可以將HDC 的工作原理歸納為編碼、搜索兩個階段.在編碼階段,利用算法將訓(xùn)練庫數(shù)據(jù)的特征圖像提取出來,并編碼為特征向量.在搜索階段,將新產(chǎn)生的特征向量與存儲器內(nèi)部的特征向量進(jìn)行對比,剔除重復(fù)的冗余信息,記憶具備顯著區(qū)別的特征向量.HDC 可以使人工智能系統(tǒng)對過去感知的事情形成記憶,以便更好地完成未來類似的任務(wù).存內(nèi)計算由于具備高密度存儲和運算功能,能夠同時實現(xiàn)HDC 編碼器和關(guān)聯(lián)存儲器,在實現(xiàn)超維計算方面具有顯著優(yōu)勢[110,111].利用存內(nèi)計算功能器件和交叉陣列結(jié)構(gòu)的矩陣結(jié)構(gòu),如圖12(g)所示,研究人員開發(fā)出新型的圖像壓縮功能[112]、稀疏編碼[113]等非易型存內(nèi)計算技術(shù)的多種新型應(yīng)用場景.
存內(nèi)計算技術(shù)通過在基本單元上集成存儲和運算功能,能夠顯著減少數(shù)據(jù)搬運,是突破傳統(tǒng)馮·諾依曼瓶頸和存儲墻的一種新型計算范式.NVM 器件是實現(xiàn)存內(nèi)計算的理想硬件載體,不僅具備非揮發(fā)、低功耗等性能優(yōu)勢,而且可以在器件層級實現(xiàn)存算功能融合,從而構(gòu)建高集成度、低功耗的存內(nèi)計算硬件系統(tǒng).從工藝成熟的flash 器件到潛力巨大的RRAM 器件,一脈相承的非揮發(fā)型存內(nèi)計算技術(shù)體系,在短期內(nèi)具備成熟硬件開發(fā)能力,在長期將擁有廣闊的應(yīng)用拓展空間,是未來計算技術(shù)的重要發(fā)展方向.基于NVM 器件的存內(nèi)計算各類實現(xiàn)方式均擁有各自的性能優(yōu)勢與適用場景,為未來計算形態(tài)的發(fā)展提供了多種可能性.總體來看,存內(nèi)模擬計算充分開發(fā)了NVM器件的性能潛力,在非精準(zhǔn)運算場景下具備顯著的低功耗、高集成度的性能優(yōu)勢.其中向量-矩陣模式適用于以深度學(xué)習(xí)為典型代表的數(shù)據(jù)流驅(qū)動的運算任務(wù);向量-向量模式則更加契合類腦計算中前饋、反饋等多激勵耦合的應(yīng)用場景.相對而言,存內(nèi)數(shù)字計算的高可靠性和存算融合能力,更加兼容當(dāng)前主流的計算平臺,能夠作為協(xié)處理器來增強(qiáng)傳統(tǒng)計算平臺處理數(shù)據(jù)密集型任務(wù)的能力.當(dāng)然,當(dāng)前的非揮發(fā)型存內(nèi)計算技術(shù)仍然面臨諸多挑戰(zhàn).
1)存內(nèi)計算運算宏.隨著非揮發(fā)存內(nèi)計算功能器件的性能逐步穩(wěn)定、運算模式的設(shè)計日趨完善,構(gòu)建存內(nèi)計算運算宏成為當(dāng)前重要的研究課題.存內(nèi)計算運算宏涉及功能定義、電路設(shè)計等方面,既需克服模數(shù)轉(zhuǎn)化問題、工藝兼容性問題等硬件相關(guān)科學(xué)問題,也需進(jìn)行運算任務(wù)分解方法、數(shù)據(jù)分配機(jī)制等配套算法研究.
2)系統(tǒng)架構(gòu)設(shè)計.存內(nèi)計算系統(tǒng)在硬件上擁有存算融合的典型特征,在處理任務(wù)的過程中,需在大量存儲數(shù)據(jù)中進(jìn)行特定的運算操作,其數(shù)據(jù)存儲格式、中間數(shù)據(jù)搬運過程等與傳統(tǒng)計算系統(tǒng)存在顯著差異.因此,該系統(tǒng)架構(gòu)的研發(fā)面臨多方面的創(chuàng)新需求,包括算法映射方法、多核協(xié)作機(jī)制等關(guān)鍵技術(shù),以及與傳統(tǒng)計算體系互動互通的實現(xiàn)方法.
3)硬件規(guī)模擴(kuò)展與應(yīng)用落地.盡管非揮發(fā)型存內(nèi)計算技術(shù)在深度學(xué)習(xí)、線性方程求解等諸多應(yīng)用上展現(xiàn)出顯著的性能優(yōu)勢.然而,受限當(dāng)前存內(nèi)計算系統(tǒng)有限的硬件規(guī)模,其計算能力、系統(tǒng)功能仍十分有限,難以承接實際的應(yīng)用任務(wù),也就無法與主流計算平臺進(jìn)行技術(shù)競爭.擴(kuò)大非揮發(fā)型存內(nèi)計算系統(tǒng)硬件規(guī)模、推動應(yīng)用落地,將是促進(jìn)存內(nèi)計算技術(shù)良性發(fā)展的重要途徑.