《基於阻變存儲器陣列的低功耗神經網絡存算一體結構研究進展綜述》
1. 摘要
憶阻器件組成的阻變存儲器陣列具備存算一體能力,將神經網絡的權重映射到憶阻器的電導值后,阻變存儲器陣列可以用於高能效的神經網絡推理和訓練運算,但器件的脈沖編程非理想性和非理想的保持特性與耐擦寫特性會造成計算上的精度損失。通過合理的電路設計方法可以減少非理想性帶來的影響,這些方法包括了權重表示和編程的優化,輸出讀取結構的優化,以及系統穩定性的優化。通過與感知計算以及傳統數字計算方案的結合,基於阻變存儲器陣列的存算一體技術可以應用於同時有嚴格的算力要求和功耗要求的物聯網系統中。
2. 介紹
人工神經網絡算法(Artificial Neuron Networks, ANNs)的快速發展使得人工智能(Artificial Intelligence, AI)方面的研究引發了新的浪潮,並在如圖像識別、自然語言處理、自動駕駛等領域中取得了大量的優秀成果。
為了加快神經網絡的推理與訓練速度,使得神經網絡算法可以在更多的終端設備上部署,需要在硬件層面上提升算力並降低功耗。
但隨着神經網絡算法的參數規模和運算量急速提升,神經網絡運算硬件平台面臨着海量數據吞吐引發的存儲器帶寬與計算單元運算速度不匹配所帶來的“存儲牆”問題,CMOS工藝難以進一步提升所帶來的提高集成度從而提高性能的方法失效問題等。
神經網絡算法的基本原理是通過輸入向量與抽象的“神經元”存儲的權重進行進行乘加后再經過非線性激活后輸出,通過多層的“神經元”相互連接去擬合復雜的函數關系。
阻變存儲器陣列基於可以外部施加偏壓來改變阻值的憶阻器件,將“神經元”的權重值編程至陣列中的憶阻器件中,向量以電壓的形式輸入陣列,便可以通過電流的形式獲得乘加運算結果。
由於其存儲與運算一體化的特性,基於阻變存儲器陣列的神經網絡運算平台可以徹底規避“存儲牆”問題;同時憶阻器可以通過3D集成工藝擺脫平面工藝的發展瓶頸,進一步提升集成度,實現更高的存儲密度。
但使用阻變存儲器陣列實現高性能且穩定的神經網絡運算也存在大量需要克服的問題,如憶阻器件在脈沖編程下的的非線性、非對稱性,各個器件之間的波動性,高阻態漏電流,阻值漂移等。針對這些問題,大量的研究從器件級到電路系統和算法級,提出了各種解決方案。
本文將介紹憶阻器件的原理及其非理想性所帶來的影響、阻變存儲器陣列實現神經網絡算法的方法以及提升運算性能的電路級優化方法,並總結該技術未來的研究方向及可能的應用場景。
3. 憶阻器件原理及其特性對神經網絡運算的影響
研究基於阻變存儲器陣列的存算一體(Compute In Memory,CIM)的系統實現需要首先需要了解基本的憶阻器件的工作原理以及其與運算之間的關聯性,同時需要關注器件非理想性對系統工作會產生的影響。這些非理想性帶來的問題,有些可以通過工藝和器件結構/材料的改進解決,有些則需要在系統和算法層面上進行優化。本章節將在簡單介紹憶阻器件工作原理與計算的實現方式的基礎上,對器件的非理想性及其帶來的問題進行深入的討論。
3.1 憶阻器件工作原理
憶阻器件由上下的電極以及電極間的阻變金屬氧化物構成,通過在上下電極間施加不同的電壓,憑借電場的調控作用,可以對應的控制阻變層中氧空位的分布。不同的氧空位的分布可以調節阻變層中導電細絲的形狀、通斷,最終改變阻變器件的電阻大小。憶阻器件可分為單極性和雙極性,單極性器件的開關方向取決於施加電壓的幅度,而不取決於施加電壓的極性,雙極性器件的開關方向則與施加電壓的極性有關[1]。
(a)阻變器件結構 (b)單極性阻變器件IV特性 (c)雙極性阻變器件IV特性
憶阻器件的操作可以分為讀操作和寫操作,寫操作包括(1)Forming:通過施加一次性的高壓,在阻變層內從無到有的形成導電細絲,器件由初始的超高阻絕緣狀態變為低阻狀態(Low Resistance State,LRS)(2)SET:該電壓可以使促進導電細絲的生長,形
成更強的導電通路,使器件從高阻狀態(High Resistance State, HRS)轉變為 LRS(3)RESET:打斷形成的導電通路,使得器件再次由LRS轉變為HRS。在上述三個操作中,一般Forming電壓最高,RESET次之,SET最小。Forming和SET極性相同,與RESET極性相反。
讀操作(Read):為了從單元讀取數據,施加不影響存儲單元狀態的微小讀取電壓以檢測單元是處於HRS還是LRS。
憶阻器件的操作
憶阻器件可以與材料與 CMOS 工藝兼容,可以實現與晶體管異質集成;結構簡單,最小單元尺寸是 4F^2,同時尺寸縮小能力(Scalability)強(< 2nm),能夠三維制備 ,實現高密度集成。目前工藝方面的先進成果包括:中國科學院微電子研究所研發的8層的三維集成阻變存儲器陣列[2],以及與14nm的FinFET工藝兼容的阻變存儲器陣列[3]。
(a)憶阻器件與晶體管集成結構圖 (b) TiN/Ti/HfOx /TiN疊層的HR-TEM照片
憶阻器件和MOS管組成1T1R基本單元,由於憶阻器上流過電流時會導致其阻值改變,故經常需要對每個憶阻器搭配一個MOS開關管,MOS關斷時,RRAM上沒有電流,因此可以長時間保持數據,MOS打開后可以進行讀或寫操作,1T1R單元是三端口結構,分別連接字線(Word Line,WL),源線(Source Line,SL)和位線(Bit Line,BL)。也可以將每個憶阻器件連接一個選擇器構成1S1R單元,選擇器類似兩個背向串聯的穩壓二極管,在正負電壓很小的時候幾乎沒有電流,在電壓大於選擇器的導通電壓之后,選擇器導通。本文將主要討論1T1R單元構成的陣列。
對於1T1R單元構成的陣列,WL連接各行晶體管的柵極,SL連接每行晶體管的源極,BL連接各列憶阻器的上電極。大型陣列的外圍電路一般包括WL、SL和BL的驅動,選擇器,編碼和解碼器以及讀出電路,對於特大容量的陣列,采用BL 和 SL 驅動分別位於陣列的頂部和底部的結構,有助於平衡遠單元和近單元的 IR 壓降變化[4]。
1T1R構成的阻變陣列結構
將向量編碼成不同的讀電壓或者不同的讀脈沖個數並施加在不同列上,將矩陣中的元素值對應編碼為憶阻器器件電導值,則根據歐姆定律,當電壓作用在電導上時,輸出的電流值就表征了乘法計算的結果;根據基爾霍夫電流定律,各行的輸出電流值就天然的匯總了流過各個器件的電流,完成了累加的計算。最終,各行輸出的電流值就表示了矩陣向量乘的結果向量[5]。
阻變陣列進行矩陣乘加運算原理示意圖
3.2 憶阻器件的非理想性及其影響
理想的憶阻器件應該在等幅脈沖操作下具有線性、對稱的“電導-脈沖”調制曲線,有 ≥ 6bit (64) 的中間狀態,有足夠大的窗口 (> 10)和盡可能小的器件操作功耗,同時,不同器件之間、不同操作循環之間有良好的一致性,沒有波動、噪聲等。
理想器件的"電導-脈沖"調制曲線
但實際的憶阻器件在有限的阻變窗口內,SET 和 RESET方向的連續電導調制通常是非線性、非對稱的,並且存在嚴重的器件間、操作循環間的波動等,這些將嚴重影響CIM的計算性能[6]。
實際器件的"電導-脈沖"調制曲線
此外,理想的憶阻器件的阻值不會隨着外界環境條件和時間產生變化,並有無限的擦寫次數。但實際的器件的保持能力和擦寫次數都是有限的。
現將器件非理想性概括為以下兩類:
(1)脈沖編程下的連續阻變的非理想性。這類特性將嚴重影響系統表現,決定了系統的表現,主要有:電導-脈沖特性的非線性度,SET和 RESET 過程的非對稱性、器件和循環的不一致性、電導調制過程中的抖動等。
(2)模擬型阻變器件的可靠的非理想性,主要反應連續阻變過程的器件可靠性和系統功能的可靠性,包括:保持特性和耐擦寫特性等。
第一類問題導致的主要問題是阻變陣列的電導值編程困難,由於脈沖編程下的連續阻變的非理想性,通過簡單的控制外加脈沖數量的方式難以准確的將電導控制到需要的值,進而導致計算時的矩陣中的元素值存在大量的誤差,影響到最終計算結果。
第二類問題則會使得阻變陣列的計算結果准確度隨着整個陣列的狀態發生變化,如果電導發生了漂移,則矩陣中的元素值也隨之漂移,進而影響最終的計算結果。而有限的擦寫次數則會導致多次重編程后,部分電導值無法被寫入陣列,造成計算時矩陣中的元素缺失。
此外,由於系統的運算結果依賴於模擬量,電壓在導線上的損失(IR壓降)也會導致計算精度的降低。
4. 神經網絡算法在阻變存儲器陣列上的實現
神經網絡的計算任務可以大致分為前向運算的推理過程和反向運算的訓練過程,在阻變陣列上實現前向推理運算的方法已經較為成熟,而對於訓練運算則尚有許多可研究的空間,本章節首先將介紹前向推理的實現方式,不同輸入和權重的編碼方式及其帶來的影響,以及算法對應的電路拓撲,接着將對有監督情形下的訓練算法進行討論。
4.1 前向推理在阻變存儲器陣列上的實現
神經網絡的前向推理過程的運算主要包括矩陣乘加運算和激活運算,矩陣乘加的運算量遠大於激活。因此在部署神經網絡時,將乘加運算在阻變陣列上實現,激活運算則通過外圍電路進行實現。
為了進行矩陣乘加運算,需要對輸入、矩陣元素(權重)進行數字到模擬的編碼,在阻變陣列上完成全模擬的運算后,將結果再量化為數字量,送入后續系統。
輸入編碼時,可以用不同的讀電壓來編碼不同的輸入值,也可以用讀脈沖個數(寬度)編碼不同輸入,還可以按輸入不同比特位的值來編碼,還可以采用采用組合編碼實現。不同編碼有各自的特點,電壓編碼計算速度更快,然而實現復雜度高,一個 8 bit 的輸入值需要編碼為 256 個不同的讀電壓值,同時引入器件讀電壓的非線性影響,對電路信噪比要求高;脈沖個數編碼實現最簡單,幅值固定,但是延時最大,一個 8 bit 的輸入值可能要編碼為 255 個脈沖。按比特位編碼是對脈沖個數編碼方案的優化,一個 8 bit 的輸入值只需編碼為 8 個脈沖,速度更快,但是每個脈沖計算的權重系數不同。組合編碼中,可以將比特位編碼和幅值編碼相結合,如每兩比特編碼為四種不同的讀電壓值,這樣一個 8 bit 的輸入值只需編碼為 4 個讀脈沖,同時注意每次讀的權重系數不同,需要對應的在輸入或輸出進行處理。
矩陣元素編碼時可以利用憶阻器件電導連續的特點,將權重直接映射到器件的電導值上,但是由於器件的連續阻變的非理想性,這種直接映射的方法很難將電導值准確的控制到與權重一致,降低了運算精度,並且非常容易收到電導漂移的影響。也可以將二進制表示的權重映射到與位數相同個數的器件上,以高阻態表示邏輯"0",以低阻態表示邏輯"1",這樣的好處是編程容易,也不容易收到器件不穩定性的影響,但會大大降低陣列的存儲密度。還可以采用折中的方法,在單個器件上實現有限的阻態數量,用來表示多位的二進制數,如16個阻態可以實現 4 bit的編碼,這樣只需要兩個器件就可以表示 8 bit 的權重,相對而言提升了存儲密度,同時受到非理想性的影響相比模擬編碼方式較小,穩定性較高。如果矩陣中同時存在正值和負值,可以采用兩個器件組成差分對,利用差分電導表示單個元素值。
輸出結果也有不同的量化方法。可以利用模數轉化器(Analog to Digital Converter,ADC)將電流或電流轉化的電壓值(跨導運算放大器)直接量化,也可以利用積分器將電流信號轉化為電壓進行處理。
全連接網絡的一種映射方式如圖所示,將網絡輸入層的每個神經元值映射為對應的陣列位線的讀輸入;將網絡輸出層的每個神經元值映射為陣列源線上對應的累積輸出電流;將網絡中連接輸入輸出的權重映射為陣列中相應交叉點的電導值,根據3.1小節的介紹,可以利用歐姆定律和基爾霍夫電流定律,以CIM的形式完成神經網絡需要的計算和處理[7]。
全連接神經網絡的實現
卷積神經網絡的映射方式與全連接神經網絡相近,需要將卷積層和全連接的權重映射為陣列中相應交叉點的電導值。與全連接不同的是,卷積神經網絡的輸入需要將滑動窗內的3x3矩陣展開為1x9的一維向量,再進行輸入,滑動窗需要滾動覆蓋整張輸入圖片,因此需要多個周期才能完成整個卷積運算過程。
盡管陣列進行卷積運算時可以在共享輸入下並行實現卷積層的不同卷積核,但由於上述的多周期的滑動輸入,卷積運算仍然很耗時。 考慮到基於憶阻器的乘加計算在用作全連接層時更加高效和直接,憶阻器全連接層計算與憶阻器卷積計算之間的嚴重速度失配會導致相當大的效率損失。 在多個並行的憶阻器陣列中復制同一組權重是在卷積神經網絡中有效加速識別輸入圖像的一種很有前途的方法, 憶阻器卷積的空間平行性可以極大地加速卷積滑動[8]。
a.卷積神經網絡的結構 b.卷積層在阻變陣列上的實現
4.2 有監督訓練在阻變存儲器陣列上的實現
由於器件脈沖編程下的連續阻變的非理想性,采用片外訓練權重,再將權重編程到片上的神經網絡計算實現方法必然會帶來一定的精度損失,而進行片上訓練是一種有效的克服這一問題的方式。
一種有監督的訓練方法是首先對陣列進行前向推理,通過推理結果與標准標簽的誤差值,計算出每行電導權重的更新方向,分兩步實現更新:(1)對該行中電導需要增加的單元並行的施加 SET 脈沖;(2)對該行中電導需要減小的單元並行的施加 RESET 脈沖。選中特定行通過在對應行的柵極施加適當的電壓實現,非選中行接地或浮空。
由於在陣列中實現深層次的反向傳播非常困難,可以只訓練特定層的權重,如最后的全連接層權重,可以最高效的實現對整個網絡所有權重的波動、漂移等非理想器件特性的兼容,以及系統其他噪聲(如陣列寄生效應等)的補償,也不會帶來過大的系統開銷[8]。
a.權重訓練實現流程 b.卷積層參數直接使用外部訓練得到的權重值編程,全連接層采用訓練方法更新權重
5. 提升阻變存儲器陣列上神經網絡運算性能的電路級優化方法
本文第三章節對憶阻器件的非理想性及其帶來的問題進行了討論,本章節將詳細討論到目前為止阻變存儲器研究領域中,針對器件非理想性問題的一些優秀的電路級解決方案,以及一些從系統的角度上對整體運算能效比進行提升的方法。
5.1 權重表示和編程的優化
5.1.1 2T2R單元
在 SW-2T2R 單元中,兩個憶阻器件通過在推理階段使用相反的電壓極性來表示正負權重。 如果 \(V_{SL} = V_{CLP}\)、\(V_{BLP} = V_{CLP} – V_{READ}\)、\(V_{BLN} = V_{CLP} + V_{READ}\),\(G_{POS}\) 和 \(G_{NEG}\) 將分別代表正負權重。 最終,這個 2T2R 單元的等效權重是 \(W_{CELL}=G_{POS}-G_{NEG}\),它可以是正數、負數或零。 該權重對的 SL 電流分別等於流過正極和負極的差分電流。 根據 \(I_{CELL} = V_{READ} * W_{CELL}\),該電流與 \(W_{CELL}\) 成正比。 2T2R結構旨在通過從兩個方面降低IR壓降來提高精度:(a)如果\(G_{POS} = G_{NEG}\),\(I_{CELL}\)可以降為零; (b) 通過同一列上的正權重和負權重的電流可以局部抵消,減少了SL上的總電流[9]。
2T2R單元結構及陣列結構
5.1.2 寫校驗編程方法
開環單周期的寫操作會產生憶阻器件的電阻值偏離目標,此外,憶阻器沒有完全的高阻或低阻狀態,因為導電絲不能完全斷裂或形成。 因此,寫操作中憶阻器件的電阻受初始電阻影響的記憶效應加劇了電阻的偏離。進而導致 計算出錯。
可以采用寫校驗編程方法來克服這一問題,在寫操作中,憶阻器件的電阻會隨着寫脈沖而變化。 在每個寫脈沖之后,基於 ADC 的讀出電路可以估計憶阻器件的電阻,即讀出的電壓(\(V.RBL\))可以間接表示訪問的憶阻器件的電阻。 閉環寫校驗設置一對標准閾值(\(V_{th+},{V_{th-}}\)),該閾值與讀出電路的輸出進行比較。 在寫操作中,對LRS 單元施加 RESET 脈沖,讀出電路估計憶阻器件的電阻。 如果已編程憶阻器件的\(V.RBL\)低於下限閾值\(V_{th-}\),則編程脈沖的脈寬會增加。 如果\(V.RBL\)高於上限閾值\(V_{th+}\),則 編程脈寬會降低[10]。
控制編程脈寬的寫校驗編程方法
這種寫校驗方式的調控對象不僅可以是脈寬,也可以是脈沖的幅度或脈沖的個數。
5.2 輸出讀取的優化
5.2.1 輸出采樣
阻變陣列的乘加計算結果可以通過電流采樣,電壓采樣或電荷采樣的方式讀出,電流采樣方式電路拓撲更簡單和常見。
電流采樣方式下的輸出結果由 BL 線上的總電流與 LRS 電流的比率決定。 在 RRAM 陣列具有足夠高的 ON/OFF 比(即HRS阻值與LRS阻值之比)的前提下,HRS 的電流可被忽略。 但在低ON/OFF比的情況下,來自訪問憶阻器單元的HRS的總電流容易超過LRS電流的量,從而導致邏輯模糊[9]。
一種解決方案是不直接使用總電流與LRS電流之比計算結果,而是將選中的單元數量(\(N_{WL}\))饋入讀取電路,從而動態的生成參考電流(\(I_{REF}\))。因為對於具有選中的單元數量相同的乘加計算,相鄰結果之間的\(I_{BL}\)分布中沒有重疊區域,在給定 \(N_{WL}\)的情況下,對應每種HRS和LRS單元的個數組合,只有一種 \(I_{HRS}-I_{LRS}\) 組合模式。因此通過基於 \(N_{WL}\) 的值自適應地生成適當的\(I_{REF}\) 可以更好的減少誤讀[11] 。
a.將選中的單元數量饋入讀取電路的電流采樣電路 b.固定參考與自適應參考的對比
電壓采樣的方式存在采樣電壓隨着單元數量增加而非線性變化的問題。使用固定大小的電流源加在憶阻器件上產生HRS電壓和LRS電壓的情況下,由於並聯電阻,讀取單元數量增加時,讀出電壓會隨着更多的 LRS 單元被訪問而急劇下降,從而使讀出電壓表現出極窄的采樣余量, 即使使用具有非線性參考的 ADC,最終也會限制計算結果的准確性。 可以通過使 BL 電流與讀取單元個數成比例來解決這一問題。通過采用讀出電壓變換控制BL電流源的方式,使得采樣電壓在單元數量增加的情況下依然能夠保持線性變化。
電壓采樣的讀出結構
上述結構輸出的讀出電壓實際上是HRS電壓和LRS電壓的線性組合,通過將選中的單元個數饋入讀出電路,以HRS電壓和LRS電壓之差作為輸入參考,利用線性關系便可以得到計算結果[10]。
將選中的單元數量饋入讀取電路的電壓采樣方式
5.2.2 ADC結構
在基於阻變陣列的CIM系統中,陣列本身的面積、延時和能耗的開銷都非常低,主要是外圍接口電路的開銷影響了系統效率。在外圍電路的功耗中,ADC工作產生的功耗又占了極大的比例,因此有大量的工作圍繞存算系統中的ADC的優化展開。
一種具有典型性的優化思路是控制ADC的量化精度和轉換頻率,以滿足系統要求的最低限度進行工作,從而減小系統的整體功耗。例如由積分器、比較器和分段電容DAC組成的ADC結構,其功耗由積分器和比較器的參考電流源控制,ADC分辨率通過設置采樣時鍾的頻率進行配置[9]。
可配置參考電流源和采樣時鍾的ADC結構
另一種思路則是將ADC直接簡化為更節省功耗和面積的電壓讀出放大器(Voltage Sense Amplifier,VSA)或電流讀出放大器 (Current Sense Amplifier,CSA),將輸出值與多個參考值並行比較,直接輸出數字的結果[12]。
將模擬輸出與參考值比較的VSA結構
5.3 系統穩定性的優化
由於實際憶阻器件的非理想保持特性和耐擦寫特性,阻值會隨着外界環境變化和時間而產生漂移,反復的讀操作也可能會導致阻態的轉變,因此需要通過定期的單元狀態檢測和更新的方式改善這一問題。在讀操作訪問HRS單元時,通過檢測閾值的方式判斷是否發生了阻態轉變,若超過閾值閾值,則為訪問的HRS單元執行RESET操作。單個寫脈沖足以重置遭受干擾的HRS單元,因為憶阻器件的電阻仍然接近HRS電阻[10]。
狀態檢測和更新邏輯
6. 未來研究方向與展望
基於阻變陣列的CIM系統所具備的高能效比優勢使得其成為后摩爾時代的算力提升方案的有力候選,但器件的脈沖編程非理想性和可靠性問題,以及工藝方面的限制,使得大容量的CIM系統的實現仍然存在困難。此外,相比傳統的CMOS數字解決方案,阻變陣列受到拓撲結構的限制,靈活性低,可實現的算法少。因此CIM系統需要找到一個適合自己的使用場景。
隨着物聯網(Internet of Things, IoT)技術的發展,各類應用對終端節點的計算能力的要求不斷提升,同時節點的功耗又有嚴格的限制。將節點的工作內容根據算力要求和功耗要求的差別划分為不同的階段,通過不同的硬件方案實現不同階段的功能,是一種非常有效的方案。
以物聯網應用中的監控攝像頭系統為例,其工作可以分多個階段實現節能。首先,系統僅檢測運動,因此僅需要來自攝像機的數據,以及一些簡單的邏輯電路。 其次,在檢測到運動后,系統需要識別運動目標是人,寵物還是其他物體(例如掃地機器人)。 在此階段,需要低至中等分辨率的圖像和計算能力。最后,如果將該運動識別為人,則執行更高分辨率的圖像和面部識別以識別該運動是否由入侵者引起。 在此例中,硬件需要是可配置的,以便系統在最佳條件下運行。
物聯網應用中的監控攝像頭系統的三個工作階段
在上述的例子中,最前端的檢測運動功能對算力的要求極低,通過像素值間的差分就可以實現,通過感知計算(Process In Sensor,PIS)技術以極低的功耗便可以實現其功能。而系統分辨目標類別的功能,對算力要求更高了,通過CIM技術部署卷積神經網絡分類檢測算法可以實現其功能,其功耗則可以做到遠低於傳統的數字方案。最后的高精度面部識別,需要輸入高分辨率的圖象,對算力的要求更高,因此通過傳統的數字方案進行實現功能。由於后端的功能由前端的功能進行喚醒,功耗大的工作階段的工作時長大大減少,從而降低了整個系統的功耗[13]。
PIS,CIM和傳統數字計算在應用中的層次化關系
在未來的研究中,需要發揮CIM技術在存儲容量,高能效比以及CMOS工藝兼容性等優勢,通過從器件到算法的優化技術減小非理想性帶來的性能損失,將CIM技術與傳統的CMOS數字技術,PIS技術等良好融合,在實際IoT應用的部署中靈活配置軟硬件方案,提升整個系統的性能。
7.引用文獻
特別感謝清華大學姚鵬博士,本文主體結構借鑒了其畢業論文。
[1]Metal–Oxide RRAM
[2]8-Layers 3D vertical RRAM with excellent scalability towards storage class memory applications
[3]First Demonstration of OxRRAM Integration on 14nm FinFet Platform and Scaling Potential Analysis towards Sub-10nm Node
[4]A 14nm-FinFET 1Mb Embedded 1T1R RRAM with a 0.022μm2 Cell Size Using Self-Adaptive Delayed Termination and Multi- Cell Reference
[5]In-memory computing with resistive switching devices
[6]Resistive memory-based analog synapse: The pursuit for linear and symmetric weight update
[7]基於阻變陣列的多層神經網絡存算一體實現研究,清華,姚鵬
[8]Fully hardware-implemented memristor convolutional neural network
[9]A Fully Integrated Analog ReRAM Based 78.4TOPS/W Compute-In-Memory Chip with Fully Parallel MAC Computing
[10]A 40-nm, 64-Kb, 56.67 TOPS/W Voltage-Sensing Computing-In-Memory/Digital RRAM Macro Supporting Iterative Write With Verification and Online Read-Disturb Detection
[11]CMOS-integrated memristive non-volatile computing-in-memory for AI edge processors
[12]2-Bit-Per-Cell RRAM-Based In-Memory Computing for Area-/Energy-Efficient Deep Learning
[13]AI Edge Devices Using Computing-In-Memory and Processing-In-Sensor: From System to Device