本發(fā)明主要涉及到數據存儲的,確切的說,涉及到了在數據存儲領域的適用于存算一體化的方法、存儲裝置及存儲系統(tǒng)。
背景技術:
1、傳統(tǒng)計算設備中計算和存儲是分開的,計算部分譬如處理器和存儲部分譬如硬盤或內存等存儲器各自分別專注于自身領域,計算和存儲兩者基本互不干涉。部分廠商為了提高計算速度和計算能力而將處理器和存儲器在布局位置上集成得比較近,例如在電路板版圖設計上它們之間縮短線路、彼此接近;或封裝階段直接合并封裝處理。
2、近年來卷積神經網絡cnn在圖像處理領域有著廣泛的應用,隨著網絡規(guī)模的不斷擴大及模型參數也不斷增長,卷積神經網絡cnn的一個計算周期當中可能存在數百萬個參數的讀取和計算操作,該些參數需要在處理器和存儲器之間搬運。存算分離的硬件會面臨存儲墻的問題,不適合成為邊緣計算如設備端附近的計算的載體。而存算一體架構的硬件主張將計算單元和存儲單元合并,可以較大的突破存儲墻的限制。業(yè)界又以半導體制造工藝相對成熟的浮柵閃存(flash)非常適宜于作為實現存算一體的介質,配合完成卷積神經網絡cnn在邊緣設備上的部署和計算、或作為計算加速器。
3、存算一體將存儲與計算有機融合,基于其巨大能效比提升潛力并有望成為算力時代的先進計算架構方案。但也存在著疑慮:如何將存儲器映射到神經網絡以及如何給神經網絡配置可動態(tài)調節(jié)的權重矩陣和偏置值,這是存內計算必須處理的關鍵問題。例如偏置值的不合理配置通常會導致基于神經網絡的感知器無法產生分離平面,這是神經網絡分類處理中亟待解決的問題,對存儲器而言如何配合網絡去配置偏置值是一大難題。
技術實現思路
1、本技術涉及一種適用于存算一體化的方法,其特征在于,包括:
2、在閃存存儲器中利用存儲晶體管陣列作為神經網絡的權重矩陣之載體及利用一個單列存儲晶體管作為神經網絡的偏置值之載體,存儲晶體管陣列中任一晶體管的權重之大小利用其閾值電壓進行調節(jié),從而為神經網絡配置其權重矩陣;
3、設定神經網絡的輸入數據輸送至存儲晶體管陣列的一系列位線以及設定神經網絡的偏置數據輸送至所述單列存儲晶體管所在的偏置位線;
4、設定從存儲晶體管陣列的一系列源線處擷取到該神經網絡的輸出數據,所述單列存儲晶體管在存儲晶體管陣列的任一行皆配置有與該任一行共源線的一個偏置晶體管;
5、通過將所述單列存儲晶體管各自的閾值電壓均調整到趨于相同的狀態(tài),以避免神經網絡內的一個相同網絡層次使用不同的偏置值。
6、上述的方法,神經網絡的原始的輸入數據轉換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線;以及神經網絡的原始的偏置數據轉換成電壓值形式的輸入量,輸送至偏置位線。
7、上述的方法,神經網絡的輸出數據以存儲晶體管陣列的輸出電流表征,存儲晶體管陣列的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量;以及任一源線上配置的偏置晶體管的電流值合并至該任一源線的輸出電流中,藉此作為該任一源線之輸出量當中的一項偏置值。
8、上述的方法,調節(jié)所述的存儲晶體管陣列中的任一晶體管的權重的方式包括改變其浮柵注入電荷;藉由晶體管的浮柵注入電荷的改變而調節(jié)存儲晶體管陣列中任一晶體管所處位置處的權重大小。
9、上述的方法,在為所述神經網絡的網絡層次設置偏置值時,調節(jié)所述單列存儲晶體管中任一偏置晶體管的偏置值的方式至少包括了改變其浮柵注入的電荷;藉由偏置晶體管的浮柵電荷的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個偏置值大小。
10、上述的方法,在為所述的神經網絡的網絡層次設置偏置值時,調節(jié)所述的單列存儲晶體管中的任一偏置晶體管的偏置值的方式至少包括了改變輸送至所述單列存儲晶體管的偏置數據;藉由偏置數據的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個的偏置值大小。
11、上述的方法,其中將所述的單列存儲晶體管各自的閾值電壓調整到趨于相同的模式至少包括了:在神經網絡的權重矩陣完成配置之后,再同步重置所述單列存儲晶體管各自的浮柵電荷(如權重矩陣編程在先、單列存儲晶體管的浮柵電荷編程在后)。
12、本技術涉及一種適用于存算一體化的存儲裝置,其特征在于,包括:
13、閃存存儲器,其具有存儲晶體管陣列和以列呈現的單列存儲晶體管;
14、存儲晶體管陣列視為神經網絡的權重矩陣之載體,存儲晶體管陣列中任一晶體管的權重之大小利用其閾值電壓進行調節(jié),從而為神經網絡配置其權重矩陣;
15、單列存儲晶體管視為神經網絡的偏置值之載體;
16、設定神經網絡的輸入數據輸送至存儲晶體管陣列的一系列位線以及設定神經網絡的偏置數據輸送至所述單列存儲晶體管所在的偏置位線;
17、設定從存儲晶體管陣列的一系列源線處擷取到該神經網絡的輸出數據,所述單列存儲晶體管在存儲晶體管陣列的任一行皆配置有與該任一行共源線的一個偏置晶體管;
18、其中,針對單列存儲晶體管,通過將所述單列存儲晶體管各自的閾值電壓均調整到趨于相同的狀態(tài),以降低所述單列存儲晶體管各自的偏置值之間的差異。
19、上述適用于存算一體化的存儲裝置,神經網絡的原始的輸入數據轉換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線,其中,神經網絡的原始的偏置數據轉換成電壓值形式的輸入量,輸送至偏置位線;以及
20、神經網絡的輸出數據以存儲晶體管陣列的輸出電流表征,存儲晶體管陣列的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量,其中,任一源線上所配置的偏置晶體管的電流值被合并至該任一源線的輸出電流中,藉此作為該任一源線之輸出量當中的一項偏置值。
21、上述適用于存算一體化的存儲裝置,調節(jié)存儲晶體管陣列中任一晶體管的權重的方式包括改變其浮柵注入電荷;藉由晶體管的浮柵注入電荷的改變而調節(jié)存儲晶體管陣列中任一晶體管所處位置處的權重大小。
22、上述適用于存算一體化的存儲裝置,為神經網絡的網絡層次設置偏置值時,調節(jié)所述的單列存儲晶體管當中的任一偏置晶體管的偏置值的方式至少包括了改變其浮柵注入的電荷;藉由偏置晶體管的浮柵電荷的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個偏置值大小。
23、上述適用于存算一體化的存儲裝置,為神經網絡的網絡層次設置偏置值時,調節(jié)所述單列存儲晶體管中任一偏置晶體管的偏置值的方式至少包括了改變輸送至所述單列存儲晶體管的偏置數據;藉由偏置數據的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個的偏置值大小。
24、上述適用于存算一體化的存儲裝置,將所述單列存儲晶體管各自的閾值電壓調整到趨于相同的模式包括:在神經網絡的權重矩陣完成配置之后,再同步重置所述單列存儲晶體管各自的浮柵電荷。
25、本技術涉及一種適用于存算一體化的存儲系統(tǒng),其特征在于,包括:
26、閃存存儲器,其具有存儲晶體管陣列和以列呈現的單列存儲晶體管;
27、神經網絡,其依附于閃存存儲器,利用存儲晶體管陣列作為神經網絡的權重矩陣之載體及利用單列存儲晶體管作為神經網絡的偏置值之載體,存儲晶體管陣列中任一晶體管的權重之大小利用其閾值電壓進行調節(jié),從而為神經網絡配置其權重矩陣;
28、設定神經網絡的輸入數據輸送至存儲晶體管陣列的一系列位線以及設定神經網絡的偏置數據輸送至所述單列存儲晶體管所在的偏置位線;
29、設定從存儲晶體管陣列的一系列源線處擷取到該神經網絡的輸出數據,所述單列存儲晶體管在存儲晶體管陣列的任一行皆配置有與該任一行共源線的一個偏置晶體管;
30、通過將所述單列存儲晶體管各自的閾值電壓均調整到趨于相同的狀態(tài),以避免神經網絡內的一個相同網絡層次使用不同的偏置值。
31、上述適用于存算一體化的存儲系統(tǒng),調節(jié)存儲晶體管陣列中任一晶體管的權重的方式至少包括了改變其浮柵注入電荷;藉由晶體管的浮柵注入電荷的改變而調節(jié)存儲晶體管陣列中任一晶體管所處位置處的權重大小。
32、上述適用于存算一體化的存儲系統(tǒng),為神經網絡的網絡層次設置偏置值時,調節(jié)所述的單列存儲晶體管當中的任一偏置晶體管的偏置值的方式至少包括了改變其浮柵注入的電荷;藉由偏置晶體管的浮柵電荷的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個偏置值大小。
33、上述適用于存算一體化的存儲系統(tǒng),為神經網絡的網絡層次設置偏置值時,調節(jié)所述單列存儲晶體管中任一偏置晶體管的偏置值的方式至少包括了改變輸送至所述單列存儲晶體管的偏置數據;藉由偏置數據的改變而調節(jié)所述單列存儲晶體管中任一偏置晶體管所處位置處所對應的一個的偏置值大小。
34、上述適用于存算一體化的存儲系統(tǒng),將所述單列存儲晶體管各自的閾值電壓調整到趨于相同的模式包括:在神經網絡的權重矩陣完成配置之后,再同步重置所述單列存儲晶體管各自的浮柵電荷。
35、基于前文所述,本技術最大優(yōu)勢之一是將神經網絡的核心參數如權重和偏置等參數賦能到存儲管從而將神經網絡依附至存儲器。神經網絡的權重矩陣直接映射到存儲晶體管陣列且可以通過對晶體管閾值電壓進行調節(jié),以此動態(tài)配置神經網絡的權重矩陣以便適應于神經網絡的權重矩陣(weight?matrix)更新例如匹配反向傳播。以及同步將神經網絡的其他極其重要的偏置值(bias?unit)或截距項(intercept?term)直接映射到一項單列存儲晶體管或存儲晶體管陣列中的一列存儲晶體管,以此為基于存儲器的神經網絡適配偏置值而防止神經網絡如感知器等無法尋找到用于分類的合適判別平面。
36、基于前文所述,本技術最大優(yōu)勢之二是采用基于非馮諾依曼架構、以便解決傳統(tǒng)馮諾依曼架構之下的編譯墻、存儲墻、功耗墻問題。在編譯方面的一個便捷之處是經由調整晶體管閾值電壓而實現權重及偏置值的編程,該解決方案僅僅只需要在晶體管處配置晶體管三端的電壓或電流,即可實現權重和偏置編譯,因考慮到傳統(tǒng)存儲器上進行兼容于電壓電流等信息量的編譯,那么在實施該部分相關編譯方面不存在任何障礙。再者不像傳統(tǒng)方案那樣須要求存儲器與處理器之間執(zhí)行數據交換以及隨之而來的存儲墻,數據存儲和數據計算尤其是乘積的累加和偏置發(fā)生在存儲器內部,解決了存儲墻的問題。由于神經網絡的具體實現是基于無需在存儲器與處理器之間實施大量數據搬運的前提下,鑒于功耗墻的大部分能耗在數據搬運過程中產生如數據搬運功耗是計算功耗的千倍以上,所以也還解決了神經網絡及其人工智能應用場景下的高能耗難題。
37、基于前文所述,本技術最大優(yōu)勢之三是推進算力大幅度倍增。通過采用存算一體技術可將ai計算中涉及的大量乘加計算的權重部分存在存儲單元中,及ai計算函數關系式中涉及的偏置或截距運算同樣也存在存儲單元之中,它們可在存儲單元的已有晶體管電路部分上做修改,從而方便運行數據計算處理的同時進行參數更新,在存儲內完成如卷積運算等神經網絡。大量乘加的卷積運算是深度學習的核心組成部分,因此存內計算和存內邏輯非常適合人工智能方向的深度神經網絡應用和基于ai的大數據技術。