陳長(zhǎng)林,駱暢航,劉 森,劉海軍
(國(guó)防科技大學(xué) 電子科學(xué)學(xué)院, 湖南 長(zhǎng)沙 410073)
隨著以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)、遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)等為代表的神經(jīng)網(wǎng)絡(luò)算法[1]的不斷成熟,人工智能(artificial intelligence,AI)在自動(dòng)駕駛、語音與圖像識(shí)別、知識(shí)搜索、語義理解等眾多應(yīng)用領(lǐng)域獲得了廣泛應(yīng)用[2]。為了提高神經(jīng)網(wǎng)絡(luò)推理計(jì)算的效率和能效,涌現(xiàn)了TPU[3]、DaDianNao[4]、Tianjic[5]、Thinker[6]等多款采用定制架構(gòu)的AI加速芯片。然而,上述AI芯片本質(zhì)上仍然采用了存算分離的馮·諾伊曼架構(gòu),在計(jì)算時(shí)需要將數(shù)據(jù)在存儲(chǔ)單元與運(yùn)算單元之間進(jìn)行頻繁搬移,因而仍然具有較高的延遲和能耗[7]。相較而言,人腦中由于神經(jīng)突觸具有網(wǎng)絡(luò)權(quán)值存儲(chǔ)和計(jì)算功能(見圖1(a))而具有極高的能效。因此,借鑒人腦結(jié)構(gòu)和信息處理機(jī)制,開發(fā)類腦芯片,突破馮· 諾伊曼架構(gòu)瓶頸實(shí)現(xiàn)高能效智能計(jì)算[8]成為當(dāng)前研究的熱點(diǎn)。
神經(jīng)網(wǎng)絡(luò)由多層神經(jīng)元以及神經(jīng)元之間的突觸連接組成,其中神經(jīng)突觸數(shù)量遠(yuǎn)遠(yuǎn)超過神經(jīng)元數(shù)量。例如在人腦中,神經(jīng)突觸數(shù)量(1014~1015)約為神經(jīng)元數(shù)量的103倍。同時(shí),神經(jīng)網(wǎng)絡(luò)推理計(jì)算過程主要由神經(jīng)元輸入向量與突觸權(quán)重矩陣的卷積(卷積層)或相乘(全連接層)組成,占所有計(jì)算的90%以上[4], 因此開發(fā)高性能的人工神經(jīng)突觸是類腦芯片設(shè)計(jì)的關(guān)鍵所在。而憶阻器是實(shí)現(xiàn)人工神經(jīng)突觸的最佳基礎(chǔ)器件選擇之一:①憶阻器阻值可以在外部信號(hào)作用下進(jìn)行調(diào)整,因此能夠模擬神經(jīng)突觸的可塑性;②憶阻器是非易失器件,可以用于儲(chǔ)存突觸連接權(quán)重;③流經(jīng)憶阻器的電流大小由其電導(dǎo)值與電壓值相乘得到,對(duì)應(yīng)突觸權(quán)重與神經(jīng)元激勵(lì)的加權(quán)相乘運(yùn)算。同時(shí)憶阻器具有結(jié)構(gòu)簡(jiǎn)單、功耗低、尺寸小、可三維集成、與CMOS工藝兼容等優(yōu)點(diǎn),因此成為大規(guī)模類腦計(jì)算基礎(chǔ)器件的最佳選擇,獲得了大量關(guān)注與研究[9]。
在多層神經(jīng)網(wǎng)絡(luò)中,相鄰兩層神經(jīng)元的突觸連接可采用如圖1(b)所示憶阻器交叉陣列實(shí)現(xiàn),陣列中每一個(gè)交叉點(diǎn)處的憶阻器存儲(chǔ)了兩個(gè)神經(jīng)元之間的突觸連接強(qiáng)度,多個(gè)陣列組合可以實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)。輸入信號(hào)以電壓的形式加載到憶阻器陣列每一行,與憶阻器作用產(chǎn)生的電流在列線上相累加并被感知電路讀取,在單個(gè)周期內(nèi)得到乘累加計(jì)算結(jié)果,即Ij=∑ViGij。憶阻器交叉陣列同時(shí)實(shí)現(xiàn)了權(quán)值存儲(chǔ)和乘累加運(yùn)算的功能,其中乘法運(yùn)算的并行度與憶阻器數(shù)量相同,累加運(yùn)算的并行度與陣列的行或列數(shù)(取決于陣列計(jì)算單元結(jié)構(gòu))相同。在外圍反饋電路配合下,還可通過訓(xùn)練實(shí)現(xiàn)憶阻器阻值亦即突觸連接強(qiáng)度的在線調(diào)整,實(shí)現(xiàn)在線學(xué)習(xí)能力。
(a) 神經(jīng)元與神經(jīng)突觸(a) Neurons and synapses
(b) 憶阻器交叉陣列(b) Memristor crossbar array圖1 生物神經(jīng)元連接與憶阻器交叉陣列Fig.1 Neuron connections and memristor crossbar array
近年來,將憶阻器陣列與CMOS電路混合集成實(shí)現(xiàn)類腦芯片已成為研究的熱點(diǎn)并取得了諸多研究成果。為把握相關(guān)研究進(jìn)展并總結(jié)發(fā)展趨勢(shì),本文對(duì)現(xiàn)有設(shè)計(jì)進(jìn)行調(diào)研分析。對(duì)比分析憶阻類腦芯片中各基礎(chǔ)功能模塊的實(shí)現(xiàn)方案,總結(jié)當(dāng)前研究仍需解決的問題,并指出該類芯片走向?qū)嶋H應(yīng)用所面臨的挑戰(zhàn)。
基于憶阻器的類腦芯片研究大致可以分為憶阻器陣列研究、憶阻類腦芯片架構(gòu)研究以及全功能憶阻類腦芯片研究三個(gè)方面。其中,憶阻器陣列研究的目的在于優(yōu)化陣列生產(chǎn)工藝、提取陣列性能參數(shù)并搭建板級(jí)系統(tǒng)展示其類腦計(jì)算應(yīng)用可行性,憶阻類腦芯片架構(gòu)研究根據(jù)應(yīng)用需求及陣列性能設(shè)計(jì)新型體系結(jié)構(gòu)并進(jìn)行仿真驗(yàn)證,全功能憶阻類腦芯片研究開發(fā)完整功能芯片并推廣應(yīng)用。三個(gè)方面的研究相互檢驗(yàn)、相互促進(jìn)。
大量憶阻類腦芯片研究以憶阻器陣列芯片+板級(jí)電路形式展開,主要進(jìn)行陣列中器件性能測(cè)試并展示基于憶阻器實(shí)現(xiàn)多種類腦計(jì)算應(yīng)用的可能性。
利用憶阻器的權(quán)值存儲(chǔ)和模擬計(jì)算能力,憶阻器陣列可用于實(shí)現(xiàn)非脈沖型神經(jīng)網(wǎng)絡(luò)。如Alibart等[10]于2013年基于2×10規(guī)模憶阻器陣列采用離線和在線訓(xùn)練兩種方式實(shí)現(xiàn)了字母“X”和“T”的分辨,隨后該團(tuán)隊(duì)Prezioso等[11]于2015年在更大規(guī)模(12×12)1R憶阻器陣列上(見圖2(a)),通過在線學(xué)習(xí)方式實(shí)現(xiàn)了對(duì)3種3×3黑白字母圖像的分類,首次通過實(shí)驗(yàn)驗(yàn)證了基于憶阻器陣列運(yùn)行單層感知機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)模式識(shí)別的可行性。
(a) 12×12陣列芯片[11](a) 12×12 sized crossbar[11]
(b) 32×32陣列芯片[15](b) 32×32 sized crossbar[15]
(c) 128×64陣列芯片[16](c) 128×64 sized crossbar[16]圖2 部分純憶阻器陣列芯片F(xiàn)ig.2 Some pure memristor crossbar chip
充分利用憶阻器的阻值可調(diào)性能,憶阻器陣列還可用于實(shí)現(xiàn)脈沖型神經(jīng)網(wǎng)絡(luò)[12]。如Covi等[13]利用脈沖時(shí)間依賴可塑性(spike-timing dependent plasticity, STDP)機(jī)制,設(shè)計(jì)實(shí)現(xiàn)了包含25個(gè)前神經(jīng)元、5個(gè)后神經(jīng)元和125個(gè)神經(jīng)突觸的脈沖神經(jīng)網(wǎng)絡(luò),經(jīng)過無監(jiān)督學(xué)習(xí)訓(xùn)練后的網(wǎng)絡(luò)可以識(shí)別5×5黑白像素的5個(gè)字母。Choi等[14]利用赫布學(xué)習(xí)法則基于9×2憶阻器陣列通過無監(jiān)督學(xué)習(xí)實(shí)現(xiàn)了主成分分析能力。
隨著憶阻器陣列生產(chǎn)工藝的不斷優(yōu)化,陣列規(guī)模逐漸增大,所能實(shí)現(xiàn)的計(jì)算也日益復(fù)雜。如Sheridan等[15]基于32×32憶阻器陣列實(shí)現(xiàn)了灰度圖像稀疏編碼功能(見圖2(b))。Li等[16]基于128×64規(guī)模的可重構(gòu)憶阻器交叉陣列(見圖2(c))實(shí)現(xiàn)了信號(hào)處理、圖像壓縮、卷積濾波與增強(qiáng)學(xué)習(xí)[17]等處理。Yao等[18]基于1T1R結(jié)構(gòu)的128×8規(guī)模陣列實(shí)現(xiàn)了320像素灰白人臉圖像識(shí)別功能,其功耗與在英特爾Xeon Phi處理器上實(shí)現(xiàn)相比降低為原來的1/1 000。
上述工作中,憶阻器陣列芯片只實(shí)現(xiàn)了突觸陣列的功能,權(quán)值讀寫、待處理信號(hào)加載與計(jì)算結(jié)果讀取等功能單元電路仍需在板卡上實(shí)現(xiàn)。但相關(guān)工作已完整驗(yàn)證了憶阻器類腦計(jì)算架構(gòu)和處理流程,展現(xiàn)了憶阻器類腦計(jì)算在圖像處理、稀疏編碼、信號(hào)處理等復(fù)雜的非結(jié)構(gòu)化數(shù)據(jù)處理中,相比傳統(tǒng)處理器件具有巨大的能效和面積(集成度)優(yōu)勢(shì),為全功能類腦芯片的設(shè)計(jì)提供了架構(gòu)、電路設(shè)計(jì)依據(jù)。
在憶阻器陣列研究成果基礎(chǔ)上,根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算需求,多個(gè)研究團(tuán)隊(duì)提出了新型憶阻類腦計(jì)算芯片體系架構(gòu)并進(jìn)行了仿真驗(yàn)證。
美國(guó)匹茲堡大學(xué)研究團(tuán)隊(duì)在2015年提出一款名為“RENO”[19]的憶阻類腦計(jì)算架構(gòu)。如圖3所示,各憶阻器陣列之間采用星型拓?fù)浣Y(jié)構(gòu)進(jìn)行互聯(lián),并采用混合信號(hào)進(jìn)行傳輸,其中數(shù)字信號(hào)用于路由路徑的選擇,模擬信號(hào)用于傳輸陣列計(jì)算結(jié)果,以降低CPU與各計(jì)算單元之間的通信延遲。該結(jié)構(gòu)第一次探討了陣列間片上互聯(lián)策略以及神經(jīng)網(wǎng)絡(luò)加速單元與控制處理器之間的協(xié)作方式。然而陣列之間的模擬通信方式?jīng)Q定了神經(jīng)網(wǎng)絡(luò)必須以全展開的方式運(yùn)行,無法通過權(quán)重和中間結(jié)果復(fù)用等[2]方式降低硬件實(shí)現(xiàn)代價(jià)。
(a) RENO系統(tǒng)架構(gòu)(a) RENO system architecture
(b) 混合信號(hào)路由結(jié)構(gòu)(b) Mix signal router structure圖3 RENO系統(tǒng)體系結(jié)構(gòu)[19]Fig.3 RENO system architecture[19]
謝源團(tuán)隊(duì)聯(lián)合清華大學(xué)和惠普實(shí)驗(yàn)室于2016年提出一種名為“PRIME”[20]的處理架構(gòu),如圖4所示,以期打破未來計(jì)算系統(tǒng)的“存儲(chǔ)墻”限制。其中的憶阻器陣列分為存儲(chǔ)單元和全功能單元。全功能單元包含了解碼與驅(qū)動(dòng)電路、讀出電路、緩存單元等,使得其既可用于數(shù)據(jù)存儲(chǔ),又可配置為神經(jīng)網(wǎng)絡(luò)計(jì)算加速模塊。與多款基于數(shù)字邏輯電路的神經(jīng)網(wǎng)絡(luò)加速系統(tǒng)相比,具有巨大的能效提升。
圖4 PRIME結(jié)構(gòu)框圖[20]Fig.4 PRIME system architecture diagram[20]
Shafiee等[21]在2016年提出了“ISAAC”類腦芯片架構(gòu),如圖5所示。該系統(tǒng)具有多個(gè)Tile,每個(gè)Tile集成多個(gè)原位乘累加單元(in-situ multiply-accumulate,IMA),每個(gè)IMA中包含多個(gè)憶阻器陣列,用于存儲(chǔ)突觸權(quán)重并執(zhí)行點(diǎn)積計(jì)算。ISAAC的多核結(jié)構(gòu)使得神經(jīng)網(wǎng)絡(luò)各卷積層可分配到不同的憶阻器陣列上采用并行流水方式工作,降低了對(duì)數(shù)據(jù)緩沖空間的要求,增加了吞吐量。然而該結(jié)構(gòu)并未充分挖掘神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)和權(quán)重的復(fù)用特性以進(jìn)一步提高計(jì)算效率。
圖5 ISAAC類腦芯片架構(gòu)[21]Fig.5 ISAAC neuromorphic chip architecture[21]
在采用與ISAAC類似的層次化多陣列架構(gòu)基礎(chǔ)上,MAX2[22]采用了脈動(dòng)陣列架構(gòu)以及網(wǎng)絡(luò)權(quán)重復(fù)制和輸入特征圖像復(fù)用等策略(見圖6),提高了數(shù)據(jù)復(fù)用率,大大減少了處理單元之間的數(shù)據(jù)移動(dòng)需求,提高了時(shí)間、能量和面積利用效率。通過在NeuroSim平臺(tái)上運(yùn)行VGGNet、ResNet和AlexNet網(wǎng)絡(luò)評(píng)估顯示,MAX2的計(jì)算能效相比ISAAC提高了5.2倍。
圖6 MAX2權(quán)重映射策略Fig.6 MAX2 weight mapping strategy
南洋理工大學(xué)研究團(tuán)隊(duì)在2018年提出了一種基于3D CMOS-ReRAM的張量神經(jīng)網(wǎng)絡(luò)加速芯片[23]。如圖7所示,它們的設(shè)計(jì)有三層:第一層為憶阻器交叉陣列層,陣列之間采用H-樹拓?fù)浣Y(jié)構(gòu)進(jìn)行互聯(lián),用于存儲(chǔ)網(wǎng)絡(luò)權(quán)重或待處理數(shù)據(jù);第二層同為憶阻器交叉陣列層,通過硅通孔(through silicon via,TSV)從第一層接收張量核的數(shù)據(jù)實(shí)現(xiàn)乘累加運(yùn)算;第三層為CMOS電路層,用于協(xié)調(diào)整個(gè)神經(jīng)網(wǎng)絡(luò)的工作和執(zhí)行非線性映射。由于3D CMOS-ReRAM的這種方法沒有進(jìn)行權(quán)值復(fù)用,且結(jié)構(gòu)相對(duì)固定,只能實(shí)現(xiàn)一些簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖7 3D CMOS-ReRAM加速芯片主體架構(gòu)[23]Fig.7 3D CMOS-ReRAM accelerator architecture[23]
上述研究對(duì)基于多個(gè)憶阻器陣列實(shí)現(xiàn)復(fù)雜類腦計(jì)算所應(yīng)采用的系統(tǒng)體系結(jié)構(gòu)進(jìn)行了有益的探索,其仿真結(jié)果證明了憶阻類腦計(jì)算相比于傳統(tǒng)數(shù)字AI芯片在能效上的優(yōu)勢(shì),為憶阻類腦芯片的發(fā)展提供了理論指導(dǎo)。然而,上述架構(gòu)均采用了理想化的陣列模型,并假設(shè)憶阻器陣列與CMOS外圍電路的混合集成工藝以及陣列間的互聯(lián)通信結(jié)構(gòu)均已具有了完善解決方案。而實(shí)際上,這些基礎(chǔ)模塊實(shí)現(xiàn)方案仍需通過流片進(jìn)行驗(yàn)證。
隨著憶阻器陣列生產(chǎn)工藝和計(jì)算架構(gòu)的逐漸完善,大量研究開始嘗試將憶阻器陣列與CMOS外圍電路在單個(gè)芯片上進(jìn)行集成以實(shí)現(xiàn)完整計(jì)算功能,并通過增加陣列數(shù)量來實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)。
清華大學(xué)吳華強(qiáng)團(tuán)隊(duì)基于130 nm工藝設(shè)計(jì)實(shí)現(xiàn)了如圖8所示芯片[24]。該芯片可實(shí)現(xiàn)三層感知網(wǎng)絡(luò)并具備在線學(xué)習(xí)能力。芯片中集成2個(gè)784×100規(guī)模和2個(gè)100×10規(guī)模1T1R憶阻陣列,分別用于實(shí)現(xiàn)輸入神經(jīng)元和隱藏神經(jīng)元、隱藏神經(jīng)元和輸出神經(jīng)元之間的突觸連接。感知網(wǎng)絡(luò)中的每個(gè)權(quán)重均由一對(duì)差分單元實(shí)現(xiàn),隱藏神經(jīng)元由可配置比較器實(shí)現(xiàn)。基于該芯片運(yùn)行手寫體識(shí)別網(wǎng)絡(luò)與全精度網(wǎng)絡(luò)相比僅有不到5%的精度損失。然而也可以看到,該芯片所采用結(jié)構(gòu)主要針對(duì)手寫體識(shí)別網(wǎng)絡(luò),無法用于其他類型網(wǎng)絡(luò)。同時(shí),除隱藏層外,原始待處理信號(hào)的加載與最終處理結(jié)果的讀出仍需片外電路實(shí)現(xiàn)。2020年,該團(tuán)隊(duì)將2個(gè)1T1R陣列優(yōu)化為1個(gè)2T2R陣列,并改進(jìn)了讀出電路設(shè)計(jì),將手寫體識(shí)別網(wǎng)絡(luò)精度損失降到了2%[25]。
圖8 清華大學(xué)設(shè)計(jì)的兩款憶阻類腦芯片[24-25]Fig.8 Neuromorphic chip designed by THU[24-25]
為通過實(shí)驗(yàn)驗(yàn)證多個(gè)憶阻器陣列實(shí)現(xiàn)多層卷積神經(jīng)網(wǎng)絡(luò)的能力,清華大學(xué)和馬薩諸塞大學(xué)聯(lián)合開發(fā)了如圖9所示多陣列板級(jí)系統(tǒng)[26]。該系統(tǒng)搭載了8個(gè)基于憶阻器的處理單元(processing element,PE)芯片、ARM核、DRAM以及其他功能單元。每個(gè)PE芯片中集成1個(gè)128×16規(guī)模1T1R憶阻器陣列以及輸入寄存器、輸出寄存器、ADC采樣與移位相加等邏輯單元。每個(gè)憶阻器均可實(shí)現(xiàn)32種阻態(tài)?;谠撓到y(tǒng)運(yùn)行5層CNN網(wǎng)絡(luò)進(jìn)行MNIST手寫體識(shí)別可達(dá)到97%以上識(shí)別率,與Tesla V100型號(hào)GPU相比實(shí)現(xiàn)了110倍能效提升和30倍性能密度提升。
(a) 板級(jí)系統(tǒng)與芯片版圖(a) Board level system and chip layout
(b) 系統(tǒng)結(jié)構(gòu)框圖(b) System architecture圖9 清華大學(xué)與馬薩諸塞大學(xué)聯(lián)合設(shè)計(jì)多陣列板級(jí)系統(tǒng)[26]Fig.9 Multi-crossbar system designed by THU and UMass[26]
與上述工作不同,國(guó)防科技大學(xué)研究團(tuán)隊(duì)通過將多個(gè)陣列集成到單個(gè)芯片中進(jìn)行多陣列協(xié)同工作驗(yàn)證。如圖10所示,芯片基于180 nm工藝設(shè)計(jì),集成了4個(gè)計(jì)算單元(PE)。其中每個(gè)PE由256×64規(guī)模憶阻器陣列、輸入數(shù)據(jù)寄存器、1-bit DAC、多路選擇器、控制邏輯、積分或電流電壓轉(zhuǎn)換等模塊組成。待處理數(shù)據(jù)采用數(shù)字形式輸入,在芯片內(nèi)通過1-bit DAC轉(zhuǎn)換為模擬脈沖后加載到憶阻器陣列上完成乘累加運(yùn)算。陣列列線累積電流可在片內(nèi)進(jìn)行積分或者直接轉(zhuǎn)換為電壓。各PE計(jì)算結(jié)果在輸出多路選擇器(output multiplexer,OMUX)控制下輪流輸出片外并通過高精度ADC進(jìn)行采樣。芯片模擬部分電路設(shè)計(jì)時(shí)鐘為2 MHz,整個(gè)芯片具備16.384 GOPS計(jì)算能力?;谠撔酒蓪?shí)現(xiàn)多層神經(jīng)網(wǎng)絡(luò)手寫體識(shí)別、灰度圖像目標(biāo)檢測(cè)等應(yīng)用。
(a) 芯片架構(gòu)(a) Chip architecture
(b) 芯片版圖(b) Chip layout圖10 國(guó)防科技大學(xué)開發(fā)的多陣列集成芯片F(xiàn)ig.10 Multi memristor crossbar based neuromorphic chip designed by NUDT
密歇根大學(xué)Cai等[27]設(shè)計(jì)實(shí)現(xiàn)了如圖11所示全功能芯片。該芯片集成了54×108規(guī)模1R憶阻器陣列、必要接口電路、數(shù)字總線與OpenRISC處理器等單元。從圖中可以看到,芯片CMOS電路部分和憶阻器陣列部分通過一層鈍化層相隔離,CMOS電路管腳與憶阻器陣列行列線之間通過外部引線互聯(lián)。因此,實(shí)際上是通過特殊工藝將2個(gè)芯片堆疊到了同一襯底上。陣列的每個(gè)行線和列線上均配備了ADC和DAC模塊,使得每個(gè)行線或列線均可配置為輸入或輸出接口,增大了陣列使用的靈活度。OpenRISC處理器用于控制實(shí)現(xiàn)憶阻器權(quán)重的讀寫以及待處理信號(hào)的加載和處理結(jié)果的讀出。該芯片最高運(yùn)行速率為148 MHz,具有57.5 GOPS的峰值計(jì)算能力,可實(shí)現(xiàn)感知網(wǎng)絡(luò)、稀疏編碼、基于多層網(wǎng)絡(luò)的主成分分析等應(yīng)用。然而,由于芯片中使用了大量的ADC和DAC,由此帶來的較大面積代價(jià)降低了該結(jié)構(gòu)的可擴(kuò)展性。
圖11 密歇根大學(xué)所設(shè)計(jì)的全功能憶阻器芯片[27]Fig.11 Full function memristor based neuromorphic chip designed by UMich[27]
上述研究通過具體的電路設(shè)計(jì)和流片工作對(duì)憶阻器陣列和CMOS外圍電路的混合集成工藝進(jìn)行了驗(yàn)證,對(duì)用于待處理數(shù)據(jù)加載的前神經(jīng)元電路和用于計(jì)算結(jié)果讀出的后神經(jīng)元電路,以及其他控制電路的實(shí)際性能進(jìn)行了測(cè)試,具備了基本的類腦計(jì)算功能,為實(shí)現(xiàn)集成更多憶阻器陣列和更復(fù)雜系統(tǒng)體系結(jié)構(gòu)的類腦芯片奠定了基礎(chǔ)。
通過上述工作可以看到,憶阻類腦計(jì)算單元至少需包含圖12所示各功能模塊。
圖12 基于憶阻器的類腦芯片基本組成結(jié)構(gòu)Fig.12 Basic structure of a memristor based neuromorphic chip
其中憶阻器陣列實(shí)現(xiàn)模擬乘累加計(jì)算,前神經(jīng)元電路實(shí)現(xiàn)待處理數(shù)據(jù)的加載,后神經(jīng)元電路實(shí)現(xiàn)陣列計(jì)算結(jié)果的讀取和激活運(yùn)算,緩存模塊實(shí)現(xiàn)輸入輸出數(shù)據(jù)的暫存,輸入或輸出接口電路完成與主處理器的數(shù)據(jù)和指令通信,控制電路將主處理器指令轉(zhuǎn)換為各功能模塊的具體動(dòng)作。實(shí)際上,為實(shí)現(xiàn)多層神經(jīng)網(wǎng)絡(luò),還需多個(gè)類腦計(jì)算單元以一定的架構(gòu)互聯(lián)并協(xié)同工作。本節(jié)對(duì)各模塊典型實(shí)現(xiàn)方案進(jìn)行總結(jié)歸納。
目前常用的憶阻器陣列有1R(見圖13(a))和1T1R(見圖13(b))2種結(jié)構(gòu)[28]。其中1R陣列中只有憶阻器,因此可以實(shí)現(xiàn)極高的集成密度。例如在密歇根大學(xué)所設(shè)計(jì)的憶阻類腦芯片[27]總面積為61.64 mm2,而54×108規(guī)模憶阻器陣列面積僅為0.14 mm2。然而對(duì)1R陣列中某個(gè)憶阻器進(jìn)行阻值調(diào)整時(shí)所需的電壓配置方案比較復(fù)雜,進(jìn)行計(jì)算時(shí)各行之間存在旁路電流[29],因此使用較為不便。在1T1R陣列中,每個(gè)憶阻器與1個(gè)選通CMOS晶體管(T)進(jìn)行串聯(lián),通過控制T的柵壓實(shí)現(xiàn)對(duì)憶阻器偏壓和電流的控制,可有效抑制旁路電流,并能夠簡(jiǎn)化憶阻器阻值調(diào)整時(shí)所用的電壓偏置方案,因此使用靈活,獲得了廣泛應(yīng)用。其缺點(diǎn)在于進(jìn)行憶阻器阻值調(diào)整時(shí)往往需要通過較大的電流,因此需要T具有較大的尺寸,導(dǎo)致陣列尺寸變大。
(a) 1R陣列(a) 1R crossbar array
(b) 1T1R陣列(b) 1T1R crossbar array圖13 1R陣列與1T1R陣列結(jié)構(gòu)Fig.13 1R and 1T1R memristor crossbar array structure
憶阻器為三層結(jié)構(gòu),由底電極、阻變層和頂電極組成。其中頂電極與底電極相重疊部分為憶阻器件。在1T1R憶阻器陣列芯片中,通常將憶阻器夾在兩層金屬層中間,憶阻器的兩端分別通過垂直過孔與選通CMOS晶體管的源、漏極和陣列列、行線相連[28]。根據(jù)憶阻器與連接底電極的過孔的位置關(guān)系不同,可以采用圖14所示2種生產(chǎn)工藝。在圖14 (a)中[30],憶阻器與連接底電極的過孔相重疊,且三層結(jié)構(gòu)尺寸相同,在制作工藝中,使用1套光刻掩模版即可完成憶阻器三層結(jié)構(gòu)的制作。然而,連接底電極的鎢栓塞過孔通常會(huì)由于不完全填充在中間形成孔洞(見圖15),進(jìn)而導(dǎo)致憶阻器三明治結(jié)構(gòu)損傷,器件生產(chǎn)良率下降[31-32]。為解決這一問題,國(guó)防科技大學(xué)采用了圖14(b)所示工藝,即將憶阻器底電極向側(cè)方引出一部分,然后在平整位置生長(zhǎng)阻變層和頂電極以保證憶阻器底部的平整,進(jìn)而提高器件良率。
(a) 憶阻器與連接底電極過孔位置重疊[30](a) Memristors overlay with the BE via[30]
(b) 憶阻器與連接底電極過孔位置偏移(b) Memristor position shifts away from the BE via圖14 1T1R陣列2種制作工藝Fig.14 Two types of memristor crossbar fabricate process
圖15 鎢栓塞過孔缺陷Fig.15 Defects in the via
憶阻器陣列采用模擬方式完成乘累加計(jì)算,而待處理數(shù)據(jù)通常為數(shù)字形式,因此前神經(jīng)元電路需要將數(shù)字信息轉(zhuǎn)換為模擬脈沖后加載到憶阻器陣列行線上。常用的轉(zhuǎn)換方式如下。
多位精度DAC直接轉(zhuǎn)換:如圖16(a)所示,通過多位精度的DAC將數(shù)字信息轉(zhuǎn)換成具有一定幅度的模擬電平,是應(yīng)用最廣泛的轉(zhuǎn)換方式[19-20,27,33]之一。其優(yōu)點(diǎn)在于轉(zhuǎn)換速度快,且與板級(jí)驗(yàn)證系統(tǒng)實(shí)現(xiàn)方式(DAC芯片轉(zhuǎn)換)一致;缺點(diǎn)在于該方案對(duì)DAC精度要求高,且在芯片中集成大量DAC模塊會(huì)引入較大的面積和功耗代價(jià)。
(a) N-bit DAC直接轉(zhuǎn)換(a) N-bit DAC direct converting
(b) 數(shù)值-時(shí)間轉(zhuǎn)換(b) Data-time converting
(c) 1-bit DAC逐位轉(zhuǎn)換(c) 1-bit DAC converting by bit
(d) 數(shù)值轉(zhuǎn)換為脈沖數(shù)量(d) Convert data value to spike number圖16 前神經(jīng)元電路的實(shí)現(xiàn)方式Fig.16 Pre-synapse neuron circuits
數(shù)值-時(shí)間轉(zhuǎn)換:如圖16(b)所示,通過數(shù)值-時(shí)間轉(zhuǎn)換器將待處理數(shù)據(jù)轉(zhuǎn)換成具有固定幅度和對(duì)應(yīng)寬度的模擬脈沖。其優(yōu)點(diǎn)是轉(zhuǎn)換電路簡(jiǎn)單,僅需一個(gè)模擬傳輸門和一個(gè)計(jì)數(shù)器即可實(shí)現(xiàn);缺點(diǎn)是隨著待處理數(shù)據(jù)精度的提高,所轉(zhuǎn)換成的模擬脈沖寬度呈指數(shù)增長(zhǎng)。
1-bit DAC逐位轉(zhuǎn)換:如圖16(c)所示,此方案[21]模擬了二進(jìn)制乘法實(shí)現(xiàn)方式,即從待處理數(shù)據(jù)最低或高位開始逐位讀取,根據(jù)該位數(shù)據(jù)為“1”或“0”來確定是否輸出具有固定幅度和固定脈寬的模擬脈沖,將計(jì)算結(jié)果緩存,并與下一位數(shù)據(jù)的計(jì)算結(jié)果進(jìn)行移位相加。通過多次迭代完成對(duì)一組輸入數(shù)據(jù)的處理。此方案的優(yōu)點(diǎn)在于所采用的電壓幅度單一,電路實(shí)現(xiàn)簡(jiǎn)單且精度高;缺點(diǎn)在于計(jì)算時(shí)間與待處理數(shù)據(jù)位數(shù)成正比,與多位精度DAC直接轉(zhuǎn)換方案相比處理延時(shí)較長(zhǎng)。
脈沖數(shù)量編碼:如圖16(d)所示,此方案將待處理數(shù)據(jù)轉(zhuǎn)換為一定數(shù)量的脈沖作為陣列的輸入[24,36],每個(gè)脈沖的幅度和寬度固定,適宜于脈沖神經(jīng)網(wǎng)絡(luò)應(yīng)用。由于所需脈沖數(shù)量隨待處理數(shù)據(jù)位數(shù)呈指數(shù)增長(zhǎng),因此計(jì)算延遲較高。
位片式編碼:將待處理數(shù)據(jù)的所有比特位分為多組,然后將每組數(shù)值轉(zhuǎn)換成對(duì)應(yīng)的脈沖數(shù)量或脈沖寬度[37]。實(shí)際上是將1-bit DAC逐位轉(zhuǎn)換與脈沖數(shù)量編碼結(jié)合的一種方式。
上述轉(zhuǎn)換方式中,以1-bit DAC逐位轉(zhuǎn)換實(shí)現(xiàn)方式最為簡(jiǎn)單,僅需一個(gè)參考電平和一個(gè)傳輸門即可實(shí)現(xiàn),所需的面積和功耗代價(jià)均較小,有望在后續(xù)憶阻類腦芯片設(shè)計(jì)中獲得廣泛應(yīng)用。需要說明的是,前神經(jīng)元電路具體實(shí)現(xiàn)方式通常根據(jù)后神經(jīng)元電路實(shí)現(xiàn)方式確定,以便實(shí)現(xiàn)所需的計(jì)算結(jié)果讀取精度和讀取速度。
后神經(jīng)元電路用于將憶阻器陣列列線上的累加電流讀出并轉(zhuǎn)為數(shù)字結(jié)果,經(jīng)緩存、激活等處理后傳輸至其他陣列進(jìn)行后續(xù)處理,也可以模擬形式直接傳輸至其他陣列。常用后神經(jīng)元電路實(shí)現(xiàn)方案如下。
ADC轉(zhuǎn)換:即通過ADC模塊將憶阻器陣列輸出的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),存儲(chǔ)在輸出緩存中作為下一級(jí)的輸入[19-21,27,33]。與DAC轉(zhuǎn)換模塊類似,ADC轉(zhuǎn)換方案具有讀取速度快,與板級(jí)驗(yàn)證系統(tǒng)實(shí)現(xiàn)方案一致的優(yōu)點(diǎn)。然而由于ADC所需的面積與功耗均較大,因此實(shí)際應(yīng)用中通常會(huì)采用多列共用一個(gè)ADC模塊的解決方案。此時(shí)需要在每列上增加采樣保持或積分模塊,以便于采用時(shí)分復(fù)用的方式將各列計(jì)算結(jié)果讀出,導(dǎo)致計(jì)算延遲增加。當(dāng)交叉點(diǎn)陣行數(shù)較多時(shí),為保證各列計(jì)算結(jié)果均能準(zhǔn)確保持,還需要在積分保持電路中采用容值大和線性度好的電容,導(dǎo)致芯片面積進(jìn)一步增加。
電流比較轉(zhuǎn)換:即通過電流鏡將乘累加運(yùn)算所獲得的列電流與多個(gè)參考電流相比較,以獲得列電流分布區(qū)間,并對(duì)其進(jìn)行數(shù)字編碼[34-36]。這一方法由于需要多個(gè)參考電流,難以實(shí)現(xiàn)高分辨率的電流讀出。因此,通常用于小規(guī)模卷積運(yùn)算,且需要與位片式編碼前神經(jīng)元電路相配合使用。
直接傳輸:即前級(jí)陣列的模擬輸出信號(hào)直接作為下一級(jí)陣列信號(hào)的輸入,陣列與陣列之間無數(shù)據(jù)緩存器,這種設(shè)計(jì)極大地增加了數(shù)據(jù)的吞吐量,提高了計(jì)算的效率。然而同時(shí)由于中間結(jié)果無法緩存,整個(gè)神經(jīng)網(wǎng)絡(luò)必須全部展開,因此直接傳輸方案僅能應(yīng)用于小規(guī)模神經(jīng)網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),由于每一神經(jīng)元輸出均需傳輸至大量下層神經(jīng)元,會(huì)導(dǎo)致所需連線數(shù)量呈指數(shù)增長(zhǎng),傳輸協(xié)議復(fù)雜度增高。
積分點(diǎn)火:為減少ADC模塊引入的面積和功耗代價(jià),Liu等[37]提出了積分點(diǎn)火實(shí)現(xiàn)方案,其電路實(shí)現(xiàn)方案如圖16(c)所示。其原理為,將列線上的電流送入一個(gè)小電容中進(jìn)行積分,當(dāng)電容上的電壓超過參考閾值時(shí)比較器輸出高電平,同時(shí)將電容放電,當(dāng)電容電壓降到閾值以下時(shí)比較器輸出低電平。該過程周而復(fù)始,在計(jì)算時(shí)間內(nèi)根據(jù)列線上的電流大小轉(zhuǎn)換成相應(yīng)數(shù)量的脈沖,再通過計(jì)數(shù)器獲得脈沖數(shù)量。由于在電容放電期間無法進(jìn)行積分,導(dǎo)致讀取精度和速度下降,Jiang等[38]提出一種循環(huán)感知電路,采用2套積分點(diǎn)火電路對(duì)同一列線電流進(jìn)行讀取,當(dāng)其中一個(gè)電容在放電時(shí),另一電容進(jìn)行積分,提高了讀取精度和速度。由于積分電路僅用于產(chǎn)生脈沖,因此所需要的電容較小。與ADC轉(zhuǎn)換模塊相比,積分點(diǎn)火電路結(jié)構(gòu)簡(jiǎn)單,實(shí)現(xiàn)更為容易,可擴(kuò)展性較好。
通過上述分析可以看到,與直接傳輸方式相比,積分點(diǎn)火方式便于實(shí)現(xiàn)數(shù)據(jù)的緩存和轉(zhuǎn)發(fā),靈活度高;與ADC轉(zhuǎn)換方式相比,積分點(diǎn)火電路結(jié)構(gòu)簡(jiǎn)單,所需電容較小,且便于與數(shù)字電路結(jié)合。需要說明的是,不管采用上述何種列電流讀取方案,均需將列線電壓進(jìn)行穩(wěn)定鉗位以保證該列各憶阻器上的電流盡可能相互獨(dú)立。同時(shí)讀取電路還需考慮陣列中線電阻對(duì)計(jì)算精度的影響[39]。
現(xiàn)有基于憶阻器的類腦芯片中大多僅集成了單個(gè)憶阻器陣列,然而單個(gè)陣列僅能實(shí)現(xiàn)兩層神經(jīng)元之間的連接,多層神經(jīng)網(wǎng)絡(luò)須由多個(gè)憶阻器陣列協(xié)同工作才能實(shí)現(xiàn)。
在清華大學(xué)所設(shè)計(jì)芯片中[24]集成了4個(gè)憶阻器陣列(如圖8所示),其中每2個(gè)陣列為1組實(shí)現(xiàn)一層神經(jīng)網(wǎng)絡(luò),2組陣列之間采用了直接互聯(lián)的實(shí)現(xiàn)方案,第一個(gè)陣列的計(jì)算結(jié)果經(jīng)處理后直接輸入第二個(gè)陣列進(jìn)行后續(xù)處理。當(dāng)陣列數(shù)量繼續(xù)增加時(shí),國(guó)防科技大學(xué) Sun等[39]提供了一種“M-N-P”的直接互聯(lián)方法,可以將多個(gè)基于單個(gè)陣列的卷積神經(jīng)網(wǎng)絡(luò)互聯(lián)成高性能的卷積神經(jīng)網(wǎng)絡(luò),以提高神經(jīng)網(wǎng)絡(luò)的性能。然而多個(gè)陣列之間采用直接互聯(lián)通常可擴(kuò)展性較差,使得布線難度提高。
為提高可擴(kuò)展性,RENO[19]采用了圖3所示的多層星型拓?fù)浣Y(jié)構(gòu),其中包含4組憶阻器陣列,通過1個(gè)模擬路由實(shí)現(xiàn)各組之間以及RENO與CPU之間的數(shù)據(jù)交換。每組包含4個(gè)陣列,通過1個(gè)模擬路由實(shí)現(xiàn)組內(nèi)陣列之間以及組內(nèi)陣列與頂層路由之間的數(shù)據(jù)交換。數(shù)據(jù)傳輸過程中,數(shù)字信號(hào)用于實(shí)現(xiàn)路由路徑的選擇與控制,各陣列計(jì)算結(jié)果仍采用模擬方式進(jìn)行傳輸。星型拓?fù)淠軌蜉^好地滿足神經(jīng)網(wǎng)絡(luò)中組播和廣播傳輸需求,然而由于在RENO中各陣列計(jì)算結(jié)果無法進(jìn)行緩存,因此在實(shí)現(xiàn)較大規(guī)模神經(jīng)網(wǎng)絡(luò)時(shí)無法通過權(quán)重復(fù)用等策略減少對(duì)憶阻器數(shù)量的需求,應(yīng)用范圍仍然受到較大限制。
在PRIME[20]中,全功能模塊既可用于數(shù)據(jù)存儲(chǔ)又可用于計(jì)算,各模塊之間通過總線進(jìn)行互聯(lián)。各模塊計(jì)算結(jié)果通過可重構(gòu)讀取電路轉(zhuǎn)換成數(shù)字形式后在輸出寄存器中緩存,然后根據(jù)需要通過總線傳輸至其他模塊進(jìn)行后續(xù)處理。由于數(shù)字結(jié)果便于緩存和轉(zhuǎn)發(fā),因此該結(jié)構(gòu)相對(duì)RENO具有更高的靈活度。
然而當(dāng)陣列數(shù)量較多時(shí),星型拓?fù)浠ヂ?lián)結(jié)構(gòu)會(huì)導(dǎo)致頂層路由數(shù)據(jù)傳輸壓力增大,總線互聯(lián)方式也會(huì)由于總線仲裁代價(jià)導(dǎo)致傳輸效率下降,因此其可擴(kuò)展性仍然較差。相比之下,ISAAC[21]所采用的層次化混合拓?fù)浣Y(jié)構(gòu)(見圖5)具有更好的可擴(kuò)展性和靈活性。ISAAC由一定數(shù)量的Tile組成,采用集中式網(wǎng)狀(concentrated-mesh, c-mesh)片上網(wǎng)絡(luò)進(jìn)行互聯(lián)。在Tile內(nèi)部采用總線互聯(lián)結(jié)構(gòu)便于在相鄰陣列之間進(jìn)行高效數(shù)據(jù)廣播通信,在Tile之間采用片上網(wǎng)絡(luò)互聯(lián)可以實(shí)現(xiàn)較高的數(shù)據(jù)傳輸并行度和可靠性,當(dāng)所需Tile增加時(shí)可方便地進(jìn)行橫向或縱向擴(kuò)展。
PipeLayer[40]、MAX2[22]等工作,采用了與圖17類似架構(gòu),不同之處在于每個(gè)Tile內(nèi)部陣列組織和使用方式以及數(shù)據(jù)流控制方式?;谝陨涎芯砍晒墨I(xiàn)[39]指出集成多個(gè)憶阻器陣列的類腦芯片典型結(jié)構(gòu)應(yīng)當(dāng)如圖18所示。
(a) 共享ADC轉(zhuǎn)換[21](a) Shared ADC sampling[21]
(b) 電流比較轉(zhuǎn)換(b) AD Converting with current comparison
(c) 積分點(diǎn)火轉(zhuǎn)換[38](c) Integrate and fire sampling[38]圖17 后神經(jīng)元電路實(shí)現(xiàn)方式Fig.17 Post synapse neuron circuits
圖18 典型憶阻類腦芯片架構(gòu)Fig.18 Typical memristor based neuromorphic chip architecture
當(dāng)陣列互聯(lián)架構(gòu)確定之后,需對(duì)網(wǎng)絡(luò)權(quán)重向憶阻陣列的映射方式以及數(shù)據(jù)加載方式進(jìn)行優(yōu)化,以提高權(quán)重和輸入數(shù)據(jù)的復(fù)用率,進(jìn)而提高計(jì)算效率。相關(guān)策略可參考數(shù)字AI芯片并根據(jù)憶阻器陣列特點(diǎn)進(jìn)行優(yōu)化,本文不深入展開討論。需要說明的是,由于在當(dāng)前生產(chǎn)工藝下,憶阻器耐久性仍然較差,因此在使用中應(yīng)當(dāng)避免頻繁修改憶阻器阻態(tài)。當(dāng)基于憶阻類腦芯片進(jìn)行神經(jīng)網(wǎng)絡(luò)加速時(shí),需要將所有網(wǎng)絡(luò)權(quán)重在憶阻器陣列中進(jìn)行一一映射,甚至多次映射,以提高計(jì)算并行度。因此,憶阻類腦芯片采用何種陣列互聯(lián)結(jié)構(gòu)以及數(shù)據(jù)傳輸方式應(yīng)當(dāng)根據(jù)神經(jīng)網(wǎng)絡(luò)自身特點(diǎn)來確定。
在類腦芯片設(shè)計(jì)過程中,需要進(jìn)行系統(tǒng)仿真對(duì)芯片電路設(shè)計(jì)的正確性、計(jì)算性能、面積、功耗等進(jìn)行評(píng)估。
由于憶阻器為新原理器件,在常用EDA設(shè)計(jì)工具中尚未得到有效的支持,因此與憶阻器相關(guān)的參數(shù),如面積、阻值、延遲等參數(shù)需要通過對(duì)實(shí)際生產(chǎn)的純憶阻器陣列芯片進(jìn)行實(shí)際測(cè)量獲得,進(jìn)而可用于全功能類腦芯片的評(píng)估。需要說明的是,在1T1R陣列中,由于選通管尺寸遠(yuǎn)大于憶阻器,因此其面積主要由選通管決定。
對(duì)CMOS電路部分的性能仿真和評(píng)估可采用傳統(tǒng)工具實(shí)現(xiàn)。例如ISAAC[21]使用CACTI 6.5的32 nm工藝來評(píng)估芯片中緩存器與片上互聯(lián)架構(gòu)的面積與功耗。移位累加(shift-and-add)電路、最大池化(max-pool)電路和sigmoid激活函數(shù)電路的功耗及面積評(píng)估參數(shù)參考DaDianNao[4]。ADC與DAC模塊的面積和功耗參數(shù)均來自相關(guān)成熟設(shè)計(jì)。PRIME使用Synopsys公司的Design Compiler和PrimeTime以及TSMC的65 nm CMOS 工藝庫對(duì)系統(tǒng)進(jìn)行建模評(píng)估。RENO則使用了Cadence公司的Virtuoso開發(fā)環(huán)境提取系統(tǒng)的面積和功耗參數(shù)。
在系統(tǒng)整體處理能力評(píng)估方面,現(xiàn)有設(shè)計(jì)通常選用典型神經(jīng)網(wǎng)絡(luò),如VGG、MSRA、MLP等,以及MNIST和ImageNet等數(shù)據(jù)集作為仿真測(cè)試基準(zhǔn),并與通用CPU和DaDianNao等基于數(shù)字邏輯的計(jì)算平臺(tái)性能進(jìn)行對(duì)比[19-21]。
為在早期即獲得所設(shè)計(jì)系統(tǒng)的面積、延遲、功耗等參數(shù),亞利桑那州立大學(xué)Yu團(tuán)隊(duì)于2018年提出一種電路級(jí)的宏模型“NeuroSim”[41],用于對(duì)基于主流器件或新型器件的類腦計(jì)算架構(gòu)進(jìn)行評(píng)估。如圖19所示,NeuroSim在電路級(jí)和器件級(jí)均提供了靈活的接口和多種設(shè)計(jì)選擇,因此,可以作為芯片設(shè)計(jì)電路級(jí)性能仿真的支持工具?;贜euroSim,可以實(shí)現(xiàn)包含了器件級(jí)、電路級(jí)以及算法級(jí)的層次化集成仿真框架,對(duì)類腦計(jì)算系統(tǒng)的識(shí)別精度進(jìn)行指令精度的評(píng)估,并可對(duì)系統(tǒng)在線學(xué)習(xí)能力進(jìn)行衡量。由于NeuroSim僅支持少量的器件模型和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該研究團(tuán)隊(duì)又在其基礎(chǔ)上進(jìn)行功能完善得到了NeuroSim+[42]仿真框架。然而NeuroSim所提供的仿真均針對(duì)較高描述層次,對(duì)電路實(shí)現(xiàn)細(xì)節(jié)關(guān)注較少,無法真正反映基于憶阻器實(shí)現(xiàn)類腦芯片時(shí)所遇到的電路設(shè)計(jì)困難。
圖19 NeuroSim仿真平臺(tái)結(jié)構(gòu)Fig.19 NeuroSim simulating platform structure
通過以上分析可以看到,憶阻類腦芯片相比傳統(tǒng)基于CMOS數(shù)字邏輯的AI芯片有著諸多優(yōu)勢(shì),然而現(xiàn)有憶阻類腦芯片仍存在如下問題需要通過架構(gòu)和電路設(shè)計(jì)優(yōu)化加以解決:
1) 量產(chǎn)陣列中憶阻器可用阻態(tài)較少。受限于器件制備工藝,目前連續(xù)可調(diào)的憶阻器件阻值狀態(tài)還不穩(wěn)定,只有二值器件基本可用,導(dǎo)致陣列計(jì)算能力大大下降。
2) 憶阻器陣列的合理規(guī)模尚未確定?,F(xiàn)有設(shè)計(jì)中所采用的憶阻器陣列規(guī)模各有不同。增大憶阻器陣列規(guī)模有利于提高計(jì)算并行度,但也會(huì)帶來計(jì)算精度下降、憶阻器利用率下降、外圍電路設(shè)計(jì)復(fù)雜度增高等問題。在現(xiàn)有工藝下,如何在計(jì)算并行度、計(jì)算精度以及實(shí)現(xiàn)代價(jià)等因素約束下,確定憶阻器陣列的合理規(guī)模是仍需解決的問題之一。
3) 陣列外圍電路復(fù)雜。類腦芯片與仿真架構(gòu)中憶阻器陣列外圍較多地采用ADC和DAC模塊,導(dǎo)致憶阻器阻值調(diào)整、待處理數(shù)據(jù)加載以及處理結(jié)果的讀出方式復(fù)雜,芯片面積和功耗增加,部分抵消了憶阻器陣列本身高集成度和低功耗的優(yōu)勢(shì)。
4) 現(xiàn)有電路設(shè)計(jì)對(duì)憶阻器非理想特性的考慮不足。在芯片設(shè)計(jì)中,為保證基本功能能夠?qū)崿F(xiàn),通常增大電路的適應(yīng)范圍以應(yīng)對(duì)器件參數(shù)的波動(dòng)。而在架構(gòu)仿真過程中,仿真平臺(tái)所使用的器件模型則偏于理想化,對(duì)器件的不均一性、耐久性等問題考慮不足。如何更加充分地利用憶阻器優(yōu)良特性,同時(shí)針對(duì)憶阻器非理想特性在電路層面進(jìn)行折中設(shè)計(jì)是提高憶阻類腦芯片性能和可靠性的關(guān)鍵。
5) 多陣列類腦計(jì)算架構(gòu)中陣列之間的數(shù)據(jù)傳輸、任務(wù)分配與協(xié)同等詳細(xì)電路級(jí)解決方案仍不成熟?;诙鄳涀杵麝嚵械念惸X計(jì)算系統(tǒng)研究仍處于起步階段,對(duì)陣列之間的數(shù)據(jù)傳輸需求、神經(jīng)網(wǎng)絡(luò)算法與陣列互聯(lián)拓?fù)浣Y(jié)構(gòu)的映射關(guān)系研究較少,因此現(xiàn)有設(shè)計(jì)仍需手工確定靜態(tài)數(shù)據(jù)路由傳輸和任務(wù)分配方案。
6) 現(xiàn)有類腦芯片中所集成的憶阻器陣列數(shù)量仍然較少。單個(gè)憶阻器陣列僅能實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò),深度神經(jīng)網(wǎng)絡(luò)仍需多個(gè)憶阻陣列協(xié)同工作實(shí)現(xiàn)。然而受流片成本與芯片設(shè)計(jì)難度限制,集成多憶阻器陣列的類腦計(jì)算架構(gòu)仍處于理論研究與高層次仿真階段,缺乏實(shí)際驗(yàn)證。在完善單陣列芯片電路實(shí)現(xiàn)方案和計(jì)算系統(tǒng)性能的基礎(chǔ)上,設(shè)計(jì)多陣列集成芯片并進(jìn)行流片驗(yàn)證是憶阻類腦芯片走向?qū)嶋H應(yīng)用的必經(jīng)之路。
上述問題的解決將大大提升憶阻類腦芯片的處理能力和可靠性,使其能夠用于神經(jīng)網(wǎng)絡(luò)加速并獲得更高計(jì)算能效。然而,在電路設(shè)計(jì)之外,憶阻類腦芯片真正走向?qū)嶋H應(yīng)用仍然面臨著以下挑戰(zhàn):
1) 改進(jìn)憶阻器生產(chǎn)工藝,提升陣列良率、均一性和耐久性。高質(zhì)量的憶阻器陣列是發(fā)揮憶阻器優(yōu)良特性,實(shí)現(xiàn)高性能類腦芯片的基礎(chǔ)。憶阻器生產(chǎn)工藝的提升需要多方合作進(jìn)行,且投入成本較高,因此實(shí)現(xiàn)難度較大。目前已有多項(xiàng)研究對(duì)憶阻器應(yīng)具備的特性參數(shù)進(jìn)行了分析研究,發(fā)明能夠滿足相應(yīng)質(zhì)量要求的憶阻器陣列的生產(chǎn)工藝并實(shí)現(xiàn)量產(chǎn)是憶阻類腦芯片研發(fā)首要面臨的挑戰(zhàn)。
2) 憶阻器模型完善與開發(fā)工具支持。當(dāng)前階段存在眾多類型的憶阻器與相對(duì)應(yīng)的物理或電氣模型,然而相關(guān)模型尚未得到主流芯片開發(fā)工具的支持,導(dǎo)致芯片開發(fā)過程中仿真驗(yàn)證困難。完善憶阻器模型并加入主流芯片開發(fā)工具的模型庫中,對(duì)提高芯片開發(fā)效率、降低出錯(cuò)概率和流片成本具有重要意義。
3) 開發(fā)面向憶阻類腦計(jì)算的指令集?;趹涀杵麝嚵羞M(jìn)行計(jì)算加速過程中,憶阻器阻值調(diào)整、待處理信號(hào)的加載、計(jì)算結(jié)果的讀出等電路動(dòng)作均需在程序控制下進(jìn)行,基于通用處理器指令實(shí)現(xiàn)需要大量代碼,導(dǎo)致計(jì)算延遲增加,效率降低。根據(jù)電路工作需求,開發(fā)面向憶阻類腦計(jì)算的指令集,將大大降低陣列使用難度,提高處理性能。
4) 確定適合憶阻類腦計(jì)算的典型應(yīng)用類型。受憶阻器阻變機(jī)理限制,憶阻器的耐久性與成熟的CMOS器件相比有較大的差距,且阻值調(diào)整速度較慢,因此憶阻類腦芯片在計(jì)算過程中無法對(duì)網(wǎng)絡(luò)權(quán)重進(jìn)行實(shí)時(shí)加載,而必須將所有網(wǎng)絡(luò)權(quán)重分配到憶阻器陣列中。當(dāng)權(quán)重?cái)?shù)量較大時(shí)會(huì)導(dǎo)致較高的面積和功耗代價(jià)。這一因素導(dǎo)致憶阻類腦芯片不宜用于大規(guī)模神經(jīng)網(wǎng)絡(luò)的推理加速,而更適于網(wǎng)絡(luò)規(guī)模較小的邊緣計(jì)算應(yīng)用[43]。確定憶阻類腦計(jì)算系統(tǒng)具有明顯優(yōu)勢(shì)的典型應(yīng)用類型,對(duì)明確系統(tǒng)架構(gòu)、電路設(shè)計(jì)、器件參數(shù)與生產(chǎn)工藝等研究具有重要指導(dǎo)意義。在解決上述問題和挑戰(zhàn)的基礎(chǔ)上,根據(jù)應(yīng)用需求合理設(shè)計(jì)系統(tǒng)體系架構(gòu),優(yōu)化外圍驅(qū)動(dòng)電路,充分利用憶阻器優(yōu)良特性并加入對(duì)器件非理想因素的容錯(cuò)機(jī)制,將使得憶阻類腦芯片各項(xiàng)優(yōu)勢(shì)得到切實(shí)發(fā)揮,并最終走向?qū)嶋H應(yīng)用。
憶阻器的阻變特性、非易失特性,以及高集成度、低功耗、高計(jì)算并行度等特點(diǎn)使得其非常適用于進(jìn)行類腦計(jì)算加速。當(dāng)前憶阻類腦芯片的研究熱點(diǎn)已經(jīng)由基于憶阻器陣列芯片進(jìn)行板級(jí)電路驗(yàn)證轉(zhuǎn)向了集成外圍驅(qū)動(dòng)電路的全功能憶阻類腦芯片設(shè)計(jì)研究,芯片中集成的陣列數(shù)量也在逐步增多以實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)加速功能。本文對(duì)基于憶阻器的類腦芯片研究現(xiàn)狀進(jìn)行了調(diào)研和分析,對(duì)比分析了芯片中各基礎(chǔ)功能模塊的實(shí)現(xiàn)方案,總結(jié)了當(dāng)前研究仍需解決的問題,并指出了憶阻類腦芯片走向?qū)嶋H應(yīng)用所面臨的挑戰(zhàn)。