本發(fā)明主要涉及到數(shù)據(jù)存儲的,確切的說,涉及到了在數(shù)據(jù)存儲領(lǐng)域的可執(zhí)行存內(nèi)計算的方法和可執(zhí)行存內(nèi)計算裝置以及相應(yīng)的存儲系統(tǒng)。
背景技術(shù):
1、以往的電子設(shè)備中計算和存儲是分開的,計算部分例如處理器和存儲部分例如硬盤或內(nèi)存等存儲器各自分別專注于本職任務(wù),計算和存儲基本互不干涉對方。亦有廠商為了提高計算速度和計算能力而將處理器和存儲器在物理位置上集成得比較近,例如在電路板的版圖設(shè)計上它們之間相互靠攏、短線路、在封裝階段直接相互層疊布置。
2、業(yè)界的算力提升一直主要是按照摩爾定律的節(jié)奏逐步推進,但主流的計算范式始終遵循著馮諾依曼架構(gòu)。存算一體作為一種新型的算力,業(yè)界主要關(guān)注狹義的存算一體也即利用存儲介質(zhì)進行計算但計算媒介方法尚未完全統(tǒng)一。存算一體作為新型算力,有望解決傳統(tǒng)馮諾依曼架構(gòu)下的編譯墻、存儲墻、功耗墻問題。存算一體在業(yè)界的共識,其基本已被確定為解決算力問題的關(guān)鍵技術(shù)之一。
3、存算一體將存儲與計算有機融合,基于其巨大能效比提升潛力并有望成為算力時代的先進計算架構(gòu)方案。但是存在著疑慮:如何將存儲器映射到神經(jīng)網(wǎng)絡(luò)以及如何給神經(jīng)網(wǎng)絡(luò)配置可動態(tài)調(diào)節(jié)的權(quán)重矩陣,以適配于神經(jīng)網(wǎng)絡(luò)的實際應(yīng)用例如反向傳播等,這是采用存內(nèi)計算必須處理的關(guān)鍵問題。尤其是:如何應(yīng)對存儲器內(nèi)部神經(jīng)網(wǎng)絡(luò)權(quán)重更新時所面臨的權(quán)重偏移等亟待解決的疑慮,對存儲器而言這屬于一種隱匿的難題。
技術(shù)實現(xiàn)思路
1、本技術(shù)涉及一種執(zhí)行存內(nèi)計算的方法,其特征在于,包括:
2、在閃存存儲器中利用存儲晶體管陣列作為神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣之載體,設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)輸送至存儲晶體管陣列的一系列位線、以及設(shè)定從存儲晶體管陣列的一系列源線處擷取到該神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù);其中,存儲晶體管陣列中任一晶體管的權(quán)重之大小利用其閾值電壓進行調(diào)節(jié),藉此來動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣。
3、上述的方法,其中用于神經(jīng)網(wǎng)絡(luò)的所述存儲晶體管陣列位于閃存存儲器的同一個物理塊上;以及神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)、輸出數(shù)據(jù)各自所在的存儲空間與所述存儲晶體管陣列所在的存儲空間分別屬于閃存存儲器的不同物理塊。
4、上述的方法,神經(jīng)網(wǎng)絡(luò)的原始的輸入數(shù)據(jù)轉(zhuǎn)換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線。
5、上述的方法,神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)以存儲晶體管陣列的輸出電流表征,存儲晶體管陣列的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量。
6、上述的方法,調(diào)節(jié)任一晶體管的權(quán)重的方式包括改變其浮柵注入電荷,藉由晶體管的浮柵注入電荷的改變而調(diào)節(jié)任一晶體管在存儲晶體管陣列中所處位置處(也即權(quán)重矩陣中該任一晶體管對應(yīng)的一個元素位置處)的權(quán)重大小。
7、上述的方法,在神經(jīng)網(wǎng)絡(luò)的反向傳播(back?propagation)階段,通過重新設(shè)置存儲晶體管陣列中各個位置處的權(quán)重大小而動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣。
8、上述的方法,在存儲晶體管陣列的每個位線處皆配置有數(shù)模轉(zhuǎn)換器,其用于將神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)轉(zhuǎn)換成與位線的輸入信號模式相匹配的電壓值。
9、上述的方法,在存儲晶體管陣列的每個源線處皆配置有模數(shù)轉(zhuǎn)換器,其用于將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù)。
10、本技術(shù)涉及一種執(zhí)行存內(nèi)計算的裝置,其特征在于,包括:
11、閃存存儲器,由其存儲晶體管陣列作為神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣之載體,設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)輸送至存儲晶體管陣列的一系列位線、以及設(shè)定從存儲晶體管陣列的一系列源線處擷取到該神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù);
12、輸入單元,其將神經(jīng)網(wǎng)絡(luò)的原始的輸入數(shù)據(jù)轉(zhuǎn)換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線;
13、輸出單元,其用于將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù),存儲晶體管陣列的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量。
14、上述的執(zhí)行存內(nèi)計算的裝置,其中用于神經(jīng)網(wǎng)絡(luò)的所述存儲晶體管陣列位于閃存存儲器的同一個物理塊上;以及神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)、輸出數(shù)據(jù)各自所在的存儲空間與所述存儲晶體管陣列所在的存儲空間分別屬于閃存存儲器的不同物理塊。
15、上述的執(zhí)行存內(nèi)計算的裝置,其中神經(jīng)網(wǎng)絡(luò)的原始的輸入數(shù)據(jù)轉(zhuǎn)換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線。
16、上述的執(zhí)行存內(nèi)計算的裝置,其中神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)以存儲晶體管陣列的輸出電流表征,存儲晶體管陣列(transistor?arrays)的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量。
17、上述的執(zhí)行存內(nèi)計算的裝置,其中調(diào)節(jié)任一晶體管的權(quán)重的方式包括改變其浮柵注入電荷,藉由晶體管的浮柵注入電荷的改變而調(diào)節(jié)該任一晶體管在存儲晶體管陣列中所處位置處(也即權(quán)重矩陣中該任一晶體管對應(yīng)的一個元素位置處)的權(quán)重大小。
18、上述的執(zhí)行存內(nèi)計算的裝置,神經(jīng)網(wǎng)絡(luò)的反向傳播(back?propagation)階段可通過重新設(shè)置存儲晶體管陣列中各個位置處的權(quán)重大小而動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣。
19、上述的執(zhí)行存內(nèi)計算的裝置,輸入單元至少包括了數(shù)模轉(zhuǎn)換器,在存儲晶體管陣列的每個位線處皆配置有數(shù)模轉(zhuǎn)換器,其用于將神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)轉(zhuǎn)換成與位線的輸入信號模式相匹配的電壓值。
20、上述的執(zhí)行存內(nèi)計算的裝置,輸出單元至少包括了模數(shù)轉(zhuǎn)換器,在存儲晶體管陣列的每個源線處皆配置有模數(shù)轉(zhuǎn)換器,其用于將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù)。
21、本技術(shù)涉及一種執(zhí)行存內(nèi)計算的存儲系統(tǒng),其特征在于,包括:
22、基于閃存存儲器的存儲芯片,在閃存存儲器中利用存儲晶體管陣列作為神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣之載體,其中任一晶體管的權(quán)重之大小利用其閾值電壓進行調(diào)節(jié),藉此來動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣;設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)輸送至存儲晶體管陣列的一系列位線以及還設(shè)定從存儲晶體管陣列的一系列源線處擷取到該神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù);
23、內(nèi)置在存儲芯片中的數(shù)模轉(zhuǎn)換器,其中在存儲晶體管陣列的每個位線處皆配置有數(shù)模轉(zhuǎn)換器,以將神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)轉(zhuǎn)換成與位線的輸入信號模式相匹配的電壓值;
24、內(nèi)置在存儲芯片中的模數(shù)轉(zhuǎn)換器,其中在存儲晶體管陣列的每個源線處皆配置有模數(shù)轉(zhuǎn)換器,以將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù)。
25、上述的存儲系統(tǒng),其中用于神經(jīng)網(wǎng)絡(luò)的所述存儲晶體管陣列位于閃存存儲器的同一個物理塊上;以及神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)、輸出數(shù)據(jù)各自所在的存儲空間與所述存儲晶體管陣列所在的存儲空間分別屬于閃存存儲器的不同物理塊。
26、上述的存儲系統(tǒng),神經(jīng)網(wǎng)絡(luò)的原始的輸入數(shù)據(jù)轉(zhuǎn)換成電壓值形式的輸入量,以基于排序成向量的輸入量輸送至存儲晶體管陣列的一系列位線。
27、上述的存儲系統(tǒng),神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)以存儲晶體管陣列的輸出電流表征,存儲晶體管陣列的一系列源線的輸出電流被視為存儲晶體管陣列的排序成向量的輸出量。
28、上述的存儲系統(tǒng),調(diào)節(jié)任一晶體管的權(quán)重的方式包括改變其浮柵注入電荷,藉由晶體管的浮柵注入電荷的改變而調(diào)節(jié)任一晶體管在存儲晶體管陣列中所處位置處(也即權(quán)重矩陣中該任一晶體管對應(yīng)的一個元素位置處)的權(quán)重大小。
29、上述的存儲系統(tǒng),在神經(jīng)網(wǎng)絡(luò)的反向傳播(back?propagation)階段,通過重新設(shè)置存儲晶體管陣列中各個位置處的權(quán)重大小而動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣。
30、上述的存儲系統(tǒng),存儲晶體管陣列的每個位線處皆配置有數(shù)模轉(zhuǎn)換器,其用于將神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)轉(zhuǎn)換成與位線的輸入信號模式相匹配的電壓值。
31、上述的存儲系統(tǒng),存儲晶體管陣列的每個源線處皆配置有模數(shù)轉(zhuǎn)換器,其用于將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù)。
32、本技術(shù)涉及一種執(zhí)行存內(nèi)計算的芯片,其特征在于,包括:
33、存儲晶體管陣列,由存儲晶體管陣列作為神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣之載體,任一晶體管的權(quán)重之大小利用其閾值電壓進行調(diào)節(jié),藉此來動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣;設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)輸送至存儲晶體管陣列的一系列位線,以及設(shè)定從存儲晶體管陣列的一系列源線處擷取到該神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù);
34、集成在所述芯片中的數(shù)模轉(zhuǎn)換器,其中在存儲晶體管陣列的每個位線處皆配置有數(shù)模轉(zhuǎn)換器,以將神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)轉(zhuǎn)換成與位線的輸入信號模式相匹配的電壓值;
35、集成在所述芯片中的模數(shù)轉(zhuǎn)換器,其中在存儲晶體管陣列的每個源線處皆配置有模數(shù)轉(zhuǎn)換器,以將源線處的輸出電流格式的輸出信號轉(zhuǎn)換成與神經(jīng)網(wǎng)絡(luò)的數(shù)字輸出量相適配的輸出數(shù)據(jù)。
36、基于前文所述,本技術(shù)最大優(yōu)勢之一是將神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣直接映射到存儲晶體管陣列并且可以通過對晶體管閾值電壓進行調(diào)節(jié),藉此來動態(tài)配置神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣以便適應(yīng)于神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣(weight?matrix)更新例如匹配反向傳播。并藉此還可以應(yīng)對存儲器內(nèi)部神經(jīng)網(wǎng)絡(luò)權(quán)重更新時所面臨的權(quán)重偏移等較為棘手的難題,防止存儲器所映射出的權(quán)重矩陣中的一個或多個元素發(fā)生非期望的隱藏偏移。
37、基于前文所述,本技術(shù)最大優(yōu)勢之二是采用基于非馮諾依曼架構(gòu),可以解決傳統(tǒng)馮諾依曼架構(gòu)之下的編譯墻、存儲墻、功耗墻問題。在編譯方面的一個便捷之處是通過調(diào)整晶體管的閾值電壓而實現(xiàn)核心權(quán)重的編程,這種解決方案僅僅只需要在晶體管處配置晶體管三端的電壓或電流,即可實現(xiàn)核心權(quán)重類編譯,因為是在傳統(tǒng)存儲器上進行兼容于電壓電流等信息量的編譯,所以在設(shè)計一部分編譯行為方面不存在任何障礙。再者不像傳統(tǒng)方案那樣須要求存儲器與處理器之間執(zhí)行數(shù)據(jù)交換以及隨之而來的存儲墻,本技術(shù)數(shù)據(jù)存儲和數(shù)據(jù)計算尤其是矩陣運算都發(fā)生在存儲器內(nèi)部,解決了存儲墻的問題。由于神經(jīng)網(wǎng)絡(luò)的具體實現(xiàn)是基于無需在存儲器與處理器之間實施大量數(shù)據(jù)搬運的前提下,而鑒于功耗墻的大部分能耗在數(shù)據(jù)搬運過程中產(chǎn)生例如數(shù)據(jù)搬運功耗是計算功耗的千倍以上,所以也還解決了神經(jīng)網(wǎng)絡(luò)及其人工智能應(yīng)用場景下的高能耗難題。另外ai運算需1pb/s而數(shù)據(jù)搬運速度方面例如dram?40gb-1tb/s遠遠不足以滿足ai運算的需求,如果使用本技術(shù)那樣的存儲器內(nèi)部計算則可以較好解決數(shù)據(jù)搬運速度無法跟隨ai運算速度的疑慮。
38、基于前文所述,本技術(shù)最大優(yōu)勢之三是推進算力大幅度提升。通過使用存算一體技術(shù)則可將具ai計算的中大量乘加計算的權(quán)重部分存在存儲單元中,在存儲單元的已有存儲電路部分上做修改,從而在讀取的同時進行數(shù)據(jù)輸入和計算處理,在存儲陣列完成諸如卷積運算等神經(jīng)網(wǎng)絡(luò)。由于大量乘加的卷積運算是深度學(xué)習(xí)的核心組成部分,因此存內(nèi)計算和存內(nèi)邏輯非常適合人工智能的深度神經(jīng)網(wǎng)絡(luò)應(yīng)用和基于ai的大數(shù)據(jù)技術(shù)。