• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于帶符號位的浮點(diǎn)數(shù)運(yùn)算的多位寬3D RRAM 設(shè)計(jì)

      2022-12-20 12:08:00王興華王天王乾李瀟然
      關(guān)鍵詞:存儲器權(quán)值運(yùn)算

      王興華,王天,王乾,李瀟然

      (北京理工大學(xué) 集成電路與電子學(xué)院,北京 100081)

      近年隨著數(shù)據(jù)化時(shí)代的到來,人工智能產(chǎn)品逐漸優(yōu)化,基于神經(jīng)網(wǎng)絡(luò)的算法日趨復(fù)雜,網(wǎng)絡(luò)內(nèi)部權(quán)重增多,與之對應(yīng)的數(shù)據(jù)集更加龐大,造成總線上過高的能耗和較慢的速度,導(dǎo)致計(jì)算單元和存儲單元分離的傳統(tǒng)結(jié)構(gòu)(馮·諾依曼體系)不符合高能效、低能耗的目標(biāo),變得不適用于現(xiàn)在的大規(guī)模神經(jīng)網(wǎng)絡(luò).因此,存算一體(computing in memory,CIM)結(jié)構(gòu)的提出為實(shí)現(xiàn)這種復(fù)雜的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)提供新的可能,隨之出現(xiàn)了大量基于存算一體的新型存儲器,例如FLASH、MRAM 等,其中,基于阻變存儲器的存算一體結(jié)構(gòu)因?yàn)樽陨淼奶匦?,在存算一體的領(lǐng)域使用較為廣泛[1].

      目前,在神經(jīng)網(wǎng)絡(luò)的計(jì)算中,由于參數(shù)位寬度的增加和數(shù)據(jù)形式的變化,帶符號位的浮點(diǎn)運(yùn)算逐漸成為神經(jīng)網(wǎng)絡(luò)的主流計(jì)算模式,對內(nèi)存的要求也越來越高. 同時(shí),3D RRAM 的出現(xiàn)為此類問題提供有效的解決方案[2]. 根據(jù)存算一體結(jié)構(gòu)對于存儲器的高位寬權(quán)重存儲、內(nèi)部獨(dú)立進(jìn)行運(yùn)算的要求,3D RRAM可以完成CNN 卷積層中的帶符號位的浮點(diǎn)運(yùn)算,并且具有很高的集成度.

      本文基于現(xiàn)有的3D RRAM 模型,與目前2D 平面阻變憶阻器陣列[3?5]進(jìn)行了對比,介紹了3D RRAM的結(jié)構(gòu)和阻態(tài). 圖1 為3D RRAM 模型的結(jié)構(gòu),包括寫電路和讀電路. 3D RRAM 陣列中的每一層中還存儲有一個(gè)帶符號位的浮點(diǎn)數(shù)據(jù)表. 可以發(fā)現(xiàn),在寫過程中存在著一定的特點(diǎn):當(dāng)在模型中寫入某個(gè)RRAM時(shí),周圍RRAM 單元的電阻將受到影響,因此有必要添加自適應(yīng)電路以保持陣列中的權(quán)重不變. 在此基礎(chǔ)上,本文提出一種3D RRAM 模型的外圍讀寫電路,以達(dá)到存算一體的目的,為完成高位寬的帶符號位的浮點(diǎn)數(shù)運(yùn)算提供了新方法. 測試結(jié)果表明,3D RRAM可以達(dá)到0.529 MHz 的讀取速度,并且在完成帶符號位的浮點(diǎn)數(shù)運(yùn)算時(shí),系統(tǒng)可以達(dá)到99.8%的精確度.

      圖1 3D RRAM 模型及外圍電路的整體結(jié)構(gòu)Fig.1 The whole structure of 3D RRAM model and peripheral circuits

      1 CNNs 中3D RRAM 的特點(diǎn)及應(yīng)用

      1.1 3D 阻變存儲器模型的結(jié)構(gòu)

      目前,3D RRAM 模型分為8 層,每一層陣列中含有8×32 個(gè)阻變存儲器,用來存儲神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)權(quán)值. 其中,在模型的每一層分別用字線和位線來控制行和列;而對于整體模型來說,需要層選總線來控制模型層數(shù)的選擇,即當(dāng)反饋到模型端口時(shí),需要8-bit 字線、32-bit 位線和8-bit 層選總線來控制整個(gè)模型中的某一個(gè)存儲單元進(jìn)行讀寫.

      1.2 3D RRAM 與2D RRAM 的區(qū)別

      在阻態(tài)和阻值方面,傳統(tǒng)的2D 阻變存儲器主要分為高阻態(tài)和低阻態(tài),其中高阻態(tài)的電阻約為100 kΩ,低阻態(tài)的電阻約為10 kΩ[6]. 而3D 阻變存儲器模型中的單元可以有多個(gè)阻態(tài),并且穩(wěn)定可測,其中最高阻值為10 GΩ,最低阻值為10 MΩ,電阻處于連續(xù)變化、持續(xù)可調(diào)的狀態(tài),可用于存儲多位寬的權(quán)值,對復(fù)雜的CNN 網(wǎng)絡(luò)更加友好. 目前在使用上來說,常用的是將存儲單元分為4 個(gè)阻態(tài),阻值分別為10 MΩ、100 MΩ、1 GΩ、10 GΩ. 由此可知,3D RRAM 模型的阻值要比平面存儲器陣列的阻值大,這保證了在使用過程中節(jié)約能耗的目標(biāo),同時(shí)可以減弱阻態(tài)中阻值漂移對于區(qū)分不同阻態(tài)的影響,使得陣列在實(shí)際使用過程中更容易分辨.

      如圖2 所示,在外圍電路的使用方面,3D 阻變式存儲器基于兩坐標(biāo)來定位單層存儲陣列中的某個(gè)存儲單元. 其中,字線(WLs)和位線(BLs)用來確定平面上的某個(gè)存儲單元. 除此之外,還需要一位層數(shù)總線來確定需要使用的層數(shù). 在圖2(b)中,平面陣列中的單元主要由晶體管和RRAM(1T1R)[7?8]組成. 而2D 阻變式存儲器是基于三坐標(biāo)來定位單層存儲陣列中的某個(gè)存儲單元的,其中用字線來控制平面上的行坐標(biāo),而字線和源線來控制平面上的列坐標(biāo)[9?11].

      圖2 3D RRAM 陣列和2D RRAM 陣列結(jié)構(gòu)圖Fig.2 3D RRAM array and 2D RRAM array diagram

      3D RRAM 和2D RRAM 的比較如表1 所示. 在阻變存儲器的寫入過程中,平面式阻變存儲器模型的正向?qū)懭腚妷捍笥? V,反向?qū)懭腚妷捍笥?.5 V,而3D 阻變式存儲器的寫入電壓更高,一般在4 ~5 V左右. 因此,由于特殊的高寫入電壓,3D 阻變式存儲器的外圍寫電路中需要加入ESD 保護(hù)電路和高耐壓保護(hù)電路來保護(hù)特殊的高電壓輸入.

      表1 3D RRAM 和2D RRAM 的對比Tab.1 Comparison between 3D and 2D RRAM

      1.3 在CNN 應(yīng)用中的重要作用

      由于3D RRAM 是一種根據(jù)阻值變化存儲權(quán)重的存儲器,因此可通過改寫多阻態(tài)的3D RRAM 的阻值來選擇存儲在內(nèi)部的多位寬權(quán)重大小,以此達(dá)到3D RRAM 存儲的特性. 同時(shí),當(dāng)在3D RRAM 的一端施加一定的電壓信號時(shí),通過完成電壓和導(dǎo)納的乘法運(yùn)算,在另一端得到一定量的電流信號,該電流信號大小可被認(rèn)定為是乘法運(yùn)算的結(jié)果,從而實(shí)現(xiàn)3D RRAM 運(yùn)算的目的. 這樣既存儲權(quán)重又進(jìn)行乘法運(yùn)算的存儲器,可作為存算一體結(jié)構(gòu)的重要組成部分.在卷積神經(jīng)網(wǎng)絡(luò)中,阻變式存儲器成為重要的存儲陣列單元器件,用來保證存儲網(wǎng)絡(luò)權(quán)值的同時(shí),對于輸入數(shù)據(jù)集進(jìn)行一定量的計(jì)算,達(dá)到手勢識別、圖片分類等目的.

      在圖3 中,CNN 主要包括卷積層、池化層和全連接層. 在卷積層部分,主要由多個(gè)卷積核參與運(yùn)算.通過將輸入進(jìn)網(wǎng)絡(luò)的數(shù)據(jù)集根據(jù)卷積核大小進(jìn)行切割后,不斷與存儲不同權(quán)值的卷積核進(jìn)行運(yùn)算,得到多張?zhí)卣鲌D,特征圖再與同等大小的下一層卷積層進(jìn)行運(yùn)算. 卷積層的最終輸出結(jié)果經(jīng)過數(shù)據(jù)整合,再與全鏈接層中的權(quán)值進(jìn)行卷積,得到輸出結(jié)果[12?13].

      圖3 CNN 的架構(gòu)以及卷積層中傳統(tǒng)結(jié)構(gòu)和現(xiàn)代結(jié)構(gòu)的區(qū)別Fig.3 The architecture of the CNNs and difference between the traditional and modern structures in the convolutional layer

      在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,可以使用3D RRAM 來完成卷積核中的運(yùn)算. 其中,在運(yùn)算前,通過外圍寫電路將多位寬的權(quán)重寫入3D 模型中,每個(gè)存儲單元都可以存儲大于等于1 bit 的數(shù)據(jù). 寫入完成后需要對于陣列中的權(quán)重進(jìn)行驗(yàn)證,保證權(quán)值的準(zhǔn)確性和穩(wěn)定性. 一般來說,具有該特性的存儲器適用于存儲帶符號位的浮點(diǎn)數(shù)的權(quán)重并完成相應(yīng)的運(yùn)算. 這對于CNN 網(wǎng)絡(luò)的卷積層操作具有通用性,因此能夠?qū)崿F(xiàn)更復(fù)雜的神經(jīng)網(wǎng)絡(luò)系統(tǒng).

      2 3D RRAM 外圍電路的設(shè)計(jì)

      2.1 3D RRAM 外圍寫入電路

      針對現(xiàn)有3D 阻變存儲器模型來說,在單個(gè)寫周期內(nèi),只需要針對一個(gè)阻變式存儲器進(jìn)行電阻態(tài)權(quán)值的寫入. 層選信號模塊、WLs 模塊和BLs 模塊如圖4 所示. 由于3D 阻變式存儲器的特殊優(yōu)勢,可以一次性寫入多位寬的權(quán)值. 當(dāng)單個(gè)寫周期開始時(shí),所有模塊中的寫入信號處于開啟狀態(tài). 在層數(shù)選擇上面,通過3 位地址信號對于模型中的8 層陣列中選擇一層進(jìn)行控制,打開被選中層的通道,并同時(shí)關(guān)閉其他層的通道選擇信號;在單層阻變式存儲器陣列中,通過地址<0:2>選擇字線的同時(shí),通過地址<3:7>選擇位線,便可確定需要寫入的阻變存儲器位置. 此時(shí),在字線和位線兩端分別加入寫入電壓,根據(jù)需要寫入的權(quán)值大小確定阻態(tài)和開關(guān)的狀態(tài).

      圖4 3D RRAM 陣列周圍的模塊和電壓輸出單元中的電源電壓轉(zhuǎn)換器(PSVC)的架構(gòu)Fig.4 The modules around 3D RRAM array and the architecture of the power supply voltage converter (PSVC) in voltage-output unit

      由于3D RRAM 過高的寫電壓,需要單獨(dú)設(shè)置,因此在寫電路中利用電源電壓轉(zhuǎn)換器(PSVC)結(jié)構(gòu)將低電壓轉(zhuǎn)換成高電壓,滿足3D 阻變式存儲器阻態(tài)改寫的條件,最終在輸出電壓出輸出足夠高的寫電壓. 圖4 還顯示出了電壓輸出單元的部分和PSVC 的架構(gòu). 在單個(gè)寫入周期中,只有一層中的某個(gè)單元可以被寫入. 在單個(gè)寫周期內(nèi),只能對單層中的某個(gè)電阻進(jìn)行阻態(tài)的改寫,因此,完成整個(gè)模型寫電阻的任務(wù)至少需要8×8×32=2 048 個(gè)周期.

      2.2 3D RRAM 外圍讀取電路

      3D RRAM 模型的外圍讀電路主要針對的是3D RRAM 的讀功能,利用電壓作為輸入信號,將在陣列中存儲的權(quán)值以電流的形式表達(dá)出來,并通過陣列外部的模數(shù)轉(zhuǎn)換器將電流轉(zhuǎn)化成電壓的形式讀出,表示為存儲在陣列內(nèi)部的信息. 寫入和讀取 3D RRAM 陣列的過程的時(shí)間線如圖5 所示.

      圖5 關(guān)于寫入和讀取 3D RRAM 陣列的過程的時(shí)間線Fig.5 The timelines about the process of writing and reading the 3D RRAM array

      在3D 陣列的阻變存儲器模型中,外圍讀電路一次性只能選擇陣列中的一個(gè)阻變存儲器進(jìn)行讀取.首先,通過陣列中的三位層地址選擇讀出存儲器的層數(shù),再通過地址<0:7>選擇當(dāng)前層中的存儲器坐標(biāo),確定讀出存儲器的位置和權(quán)值. 此時(shí),利用一個(gè)比寫入電壓要低的讀出電壓作為輸入信號,與阻變存儲器上的阻值進(jìn)行運(yùn)算,得到的電流作為外圍讀電路的輸出信號,輸出到模數(shù)轉(zhuǎn)換模塊,并最終轉(zhuǎn)化為與權(quán)值相對應(yīng)的可測電壓值,將陣列內(nèi)寫入的信息準(zhǔn)確無誤的讀出來.

      3 3D RRAM 的實(shí)驗(yàn)結(jié)果及討論

      在測試過程中,存儲器陣列和外圍電路連接到印刷電路板(printed circuit board,PCB),龍芯C300B測試芯片用于提供輸入信號和時(shí)鐘,整體連接結(jié)構(gòu)圖如圖6 所示.

      圖6 演示系統(tǒng)Fig.6 The demo system

      3.1 3D RRAM 的多級電阻

      不同RRAM 在不同讀取電壓下的電阻變化范圍和趨勢的測試結(jié)果如圖7 所示. 在圖7(a)中,不同曲線表示不同讀取電壓下相同類型的電阻,圖7(b)描述了通過散點(diǎn)圖擬合獲得的電阻值曲線,表明當(dāng)讀取電壓增加時(shí)電阻值逐漸增加.

      圖7 不同讀數(shù)電壓下的多級電阻值Fig.7 The multi-level resistance values under different reading voltages

      由坐標(biāo)點(diǎn)擬合的曲線可知,當(dāng)讀取電壓在0.25~2.5 V 之間變化時(shí),3D RRAM 顯示多級電阻值. 其中,當(dāng)讀取的電壓為0.25 V 時(shí),RRAM 的最小電阻大約為2 MΩ;當(dāng)讀取電壓為2.5 V 時(shí),RRAM 的最大電阻約為20 MΩ. 在測試過程中,由于噪聲對測試環(huán)境的影響無法控制,可以發(fā)現(xiàn),當(dāng)在相同的測試條件下讀取不同的RRAM 時(shí),在2.5 V 電壓下不同3D RRAM最大電阻差可達(dá)10 MΩ. 然而,由于3D RRAM 的范圍為10 MΩ~10 GΩ,此類誤差不會影響實(shí)際使用.

      利用不同讀取電壓下形成的多級電阻狀態(tài),可以分割3D RRAM 單元的電阻值以存儲多位權(quán)重. 與只能存儲1 bit 數(shù)據(jù)的2D RRAM 相比,3D RRAM 可以在同一區(qū)域放置更多的單元,并增加陣列中的數(shù)據(jù)量.

      3.2 3D RRAM 模型的峰值讀取速度

      利用3D RRAM 中的非易失性、CMOS 兼容性和高集成度,RRAM 的主要應(yīng)用方向?yàn)榇嫠阋惑w. 限制RRAM 使用的條件主要有兩個(gè)指標(biāo),即為能效比和速度. 當(dāng)外圍電路中ADC 的速度被釋放時(shí),RRAM的讀取速度成為整個(gè)電路實(shí)現(xiàn)的關(guān)鍵指標(biāo). 在不考慮外圍電路讀取速度的情況下,3D RRAM 的最低讀取頻率為0.529 MHz,即峰值讀取速度為1.89×10?6字符/s. 表2 比較了幾種內(nèi)存的性能,與其他存儲器相比,3D RRAM 在讀取速率方面具有一定的優(yōu)勢.

      表2 幾種儲存器的性能比較Tab.2 Comparison of performance about several kinds of memory

      3.3 3D RRAM 陣列中帶符號位的浮點(diǎn)數(shù)運(yùn)算

      由于每個(gè)單元中都有多位數(shù)據(jù)存儲,因此在神經(jīng)網(wǎng)絡(luò)中使用3D RRAM 陣列來存儲復(fù)雜的權(quán)值,權(quán)值通常是帶符號位的浮點(diǎn)數(shù). 此時(shí),通過外圍讀取電路向陣列輸入相同數(shù)據(jù)形式的信號,可以在整個(gè)電路中完成卷積操作. 如圖8 所示,在寫入和驗(yàn)證權(quán)重后,可以通過將圖像數(shù)據(jù)輸入到3D RRAM 陣列來得到相應(yīng)的輸出結(jié)果. 通過比較輸入和輸出圖像,可以得知,在卷積神經(jīng)網(wǎng)絡(luò)中使用3D RRAM 作為存算一體基本單元完成運(yùn)算的方案是可行的. 經(jīng)驗(yàn)證可以得知,這種帶符號位的浮點(diǎn)數(shù)運(yùn)算卷積系統(tǒng)的精度在99%以上.

      圖8 3D RRAM 陣列中的帶符號位的浮點(diǎn)數(shù)卷積運(yùn)算Fig.8 Signed floating-point numbers convolution operations in 3D RRAM array

      4 結(jié) 論

      本文主要介紹3D RRAM 的結(jié)構(gòu)、外圍電路以及多階阻態(tài)特性,3D RRAM 既可以存儲多位寬數(shù)據(jù)又可以進(jìn)行乘法運(yùn)算的特性,使其成為存算一體結(jié)構(gòu)的重要組成部分,可完成卷積神經(jīng)網(wǎng)絡(luò)中的帶符號位的浮點(diǎn)數(shù)運(yùn)算. 通過與其他存儲器的比較,該存儲器可以在每個(gè)單元中存儲多比特?cái)?shù)據(jù),因此適用于復(fù)雜的神經(jīng)網(wǎng)絡(luò),提高了存儲效率和集成度. 由測試可知,3D RRAM 可以達(dá)到0.529 MHz 的讀取速度,并且在完成帶符號位的浮點(diǎn)數(shù)運(yùn)算時(shí),系統(tǒng)可以達(dá)到99.8%的精確度.

      猜你喜歡
      存儲器權(quán)值運(yùn)算
      一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
      重視運(yùn)算與推理,解決數(shù)列求和題
      靜態(tài)隨機(jī)存儲器在軌自檢算法
      CONTENTS
      有趣的運(yùn)算
      基于權(quán)值動量的RBM加速學(xué)習(xí)算法研究
      “整式的乘法與因式分解”知識歸納
      撥云去“誤”學(xué)乘除運(yùn)算
      存儲器——安格爾(墨西哥)▲
      基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計(jì)
      鹤庆县| 齐河县| 庆元县| 临清市| 台中县| 万盛区| 肥城市| 电白县| 江达县| 南陵县| 鲁山县| 兰考县| 久治县| 张家港市| 林芝县| 盐山县| 赣州市| 丹江口市| 滨州市| 延吉市| 融水| 花莲市| 千阳县| 六枝特区| 礼泉县| 五华县| 奇台县| 盐城市| 尤溪县| 永福县| 中西区| 明光市| 婺源县| 平江县| 永平县| 东辽县| 保定市| 定日县| 建昌县| 鄯善县| 苗栗县|