本申請屬于存算一體,更具體地,涉及一種三維存算一體系統(tǒng)及其運算方法。
背景技術(shù):
1、矩陣乘法和精確匹配都是機器學習中非常重要的計算形式,矩陣乘法主要用于實現(xiàn)機器學習神經(jīng)網(wǎng)絡中卷積層、全連接層,而精確匹配則用于實現(xiàn)機器學習決策樹、隨機森林算法。而在機器學習算法中,往往會將兩種機器學習算法進行融合實現(xiàn)更高的預測性能。
2、然而目前,現(xiàn)有實現(xiàn)上述兩種機器學習算法的系統(tǒng)所采用的計算架構(gòu)是傳統(tǒng)的馮·諾依曼架構(gòu),在其進行數(shù)據(jù)運算的過程中,由于計算模塊和存儲模塊是分開的,數(shù)據(jù)會不斷地在計算模塊和存儲模塊之間傳輸,數(shù)據(jù)計算量巨大,導致系統(tǒng)存儲面積和功耗開銷大,同時,也導致了系統(tǒng)運算速度緩慢,運算效率低下。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)的缺陷,本申請旨在解決傳統(tǒng)融合矩陣乘法和精確匹配算法的系統(tǒng)存儲面積和資源開銷大,系統(tǒng)運算速度緩慢,運算效率低下的問題。
2、為實現(xiàn)上述目的,本申請?zhí)峁┝艘环N三維存算一體系統(tǒng),包括:
3、輸入模塊,其輸入端連接至主處理器的輸出端,用于將待處理數(shù)據(jù)轉(zhuǎn)換為模擬電壓信號;
4、憶阻器陣列,其輸入端連接至輸入模塊的輸出端,用于將其預先存儲的運算數(shù)據(jù)與所述模擬電壓信號進行矩陣向量乘法運算或匹配運算,輸出所述待處理數(shù)據(jù)的第一運算結(jié)果;
5、感知模塊,其輸入端連接至憶阻器陣列的輸出端,用于基于所述第一運算結(jié)果的信號形式,將所述第一運算結(jié)果轉(zhuǎn)換為對應的數(shù)字信號;
6、以及主處理器,其第一輸入端用于接收所述待處理數(shù)據(jù),其第二輸入端連接至感知模塊的輸出端,用于對所述數(shù)字信號進行分析,確定所述待處理數(shù)據(jù)的第二運算結(jié)果。
7、可選地,所述憶阻器陣列包括多層憶阻器子陣列,每層所述憶阻器子陣列中的每列憶阻器由位線進行連接,每層所述憶阻器子陣列中的每行憶阻器由字線進行連接;
8、各層所述憶阻器子陣列之間通過所述字線連接;所述位線和所述字線的數(shù)量均根據(jù)所述憶阻器子陣列的尺寸確定;
9、所述位線用于輸入所述模擬電壓信號;所述字線用于輸出所述待處理數(shù)據(jù)的第一運算結(jié)果。
10、可選地,每條所述字線上均連接有一個放電晶體管;所述放電晶體管用于在所述憶阻器陣列進行矩陣向量乘法運算或匹配運算前執(zhí)行數(shù)據(jù)初始化操作。
11、可選地,所述多層憶阻器子陣列包括第一憶阻器子陣列和第二憶阻器子陣列;
12、所述第一憶阻器子陣列用于存儲被乘數(shù)據(jù)矩陣,以使所述被乘數(shù)據(jù)矩陣與所述模擬電壓信號進行矩陣向量乘法運算;
13、所述第二憶阻器子陣列用于存儲待搜索數(shù)據(jù)矩陣,以使所述待搜索數(shù)據(jù)矩陣與所述模擬電壓信號進行匹配運算;所述運算數(shù)據(jù)包括所述被乘數(shù)據(jù)矩陣和所述待搜索數(shù)據(jù)矩陣。
14、可選地,所述待處理數(shù)據(jù)包括用于進行矩陣向量乘法運算的第一數(shù)據(jù)或用于進行匹配運算的第二數(shù)據(jù);對應地,所述模擬電壓信號包括所述第一數(shù)據(jù)對應的第一模擬電壓信號或所述第二數(shù)據(jù)對應的第二模擬電壓信號;
15、所述位線包括設(shè)置于所述第一憶阻器子陣列中的第一位線和設(shè)置于所述第二憶阻器子陣列中的第二位線;所述第一位線用于輸入所述第一模擬電壓信號,所述第二位線用于輸入所述第二模擬電壓信號;
16、所述第一憶阻器子陣列用于對所述第一模擬電壓信號與所述被乘數(shù)據(jù)矩陣進行矩陣向量乘法運算;所述第二憶阻器子陣列用于對所述第二模擬電壓信號與所述待搜索數(shù)據(jù)矩陣進行匹配運算;
17、所述字線用于輸出所述第一數(shù)據(jù)對應的運算結(jié)果或所述第二數(shù)據(jù)對應的運算結(jié)果;所述第一運算結(jié)果包括所述第一數(shù)據(jù)對應的運算結(jié)果或所述第二數(shù)據(jù)對應的運算結(jié)果。
18、可選地,所述被乘數(shù)據(jù)矩陣中的每列存儲數(shù)據(jù)由所述第一憶阻器子陣列中的一列憶阻器存儲表示,其中,憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“0”,憶阻器的低阻態(tài)表示存儲數(shù)據(jù)為“1”;
19、所述第一憶阻器子陣列的一列憶阻器輸入的數(shù)據(jù)為“0”時,對應輸入的模擬電壓信號定義為信號gnd;所述一列憶阻器輸入的數(shù)據(jù)為“1”時,對應輸入的模擬電壓信號定義為信號vs;
20、其中,信號vs用于指示讀取憶阻器的電壓信號,信號gnd用于指示憶阻器接地。
21、可選地,所述待搜索數(shù)據(jù)矩陣中的每列存儲數(shù)據(jù)由所述第二憶阻器子陣列中的兩列憶阻器存儲表示,其中,所述兩列憶阻器中,任一憶阻器的高阻態(tài)和其對應的憶阻器的低阻態(tài)表示存儲數(shù)據(jù)為“0”,所述任一憶阻器的低阻態(tài)和其對應的憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“1”,所述任一憶阻器的高阻態(tài)和其對應的憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“x”,所述存儲數(shù)據(jù)為“x”用于表征不關(guān)心狀態(tài);
22、所述第二憶阻器子陣列中的兩列憶阻器輸入的數(shù)據(jù)為“0”時,對應輸入的兩個模擬電壓信號定義為信號gnd和信號vs的順序組合;所述兩列憶阻器輸入的數(shù)據(jù)為“1”時,對應輸入的兩個模擬電壓信號定義為信號vs和信號gnd的順序組合;所述兩列憶阻器輸入的數(shù)據(jù)為“x”時,對應輸入的兩個模擬電壓信號定義為信號gnd和信號gnd的組合。
23、可選地,所述憶阻器陣列包括阻變存儲器陣列、鐵電存儲器陣列、相變存儲器陣列、磁隨機存儲器陣列或非易失閃存器件陣列。
24、可選地,所述憶阻器陣列的空間排布結(jié)構(gòu)包括三維水平堆疊結(jié)構(gòu)或三維垂直堆疊結(jié)構(gòu)。
25、本申請還提供了一種應用于如上述任一種所述的三維存算一體系統(tǒng)的運算方法,包括:
26、將待處理數(shù)據(jù)轉(zhuǎn)換為模擬電壓信號;
27、將預先存儲的運算數(shù)據(jù)與所述模擬電壓信號進行矩陣向量乘法運算或匹配運算,輸出所述待處理數(shù)據(jù)的第一運算結(jié)果;
28、基于所述第一運算結(jié)果的信號形式,將所述第一運算結(jié)果轉(zhuǎn)換為對應的數(shù)字信號;
29、對所述數(shù)字信號進行分析,確定所述待處理數(shù)據(jù)的第二運算結(jié)果。
30、總體而言,通過本申請所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,至少具有以下有益效果:
31、本申請?zhí)峁┑囊环N三維存算一體系統(tǒng)及其運算方法,該系統(tǒng)利用輸入模塊將輸入的待處理數(shù)據(jù)轉(zhuǎn)換為模擬電壓信號,憶阻器陣列將其存儲的運算數(shù)據(jù)與該模擬電壓信號進行矩陣向量乘法運算或匹配運算,結(jié)合感知模塊和主處理器對運算結(jié)果的處理和分析,可在同一個憶阻器陣列中實現(xiàn)精確查找和矩陣乘法兩種運算功能,可以有效降低系統(tǒng)的存儲面積及功耗開銷,提升系統(tǒng)運算速度及效率,同時,還可以實現(xiàn)系統(tǒng)的可重構(gòu)性,無需引入額外的陣列和電路,適應精確匹配運算或矩陣乘法運算的功能需求,并且有利于提升系統(tǒng)電路的集成密度和陣列大小。
1.一種三維存算一體系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的三維存算一體系統(tǒng),其特征在于,所述憶阻器陣列包括多層憶阻器子陣列,每層所述憶阻器子陣列中的每列憶阻器由位線進行連接,每層所述憶阻器子陣列中的每行憶阻器由字線進行連接;
3.根據(jù)權(quán)利要求2所述的三維存算一體系統(tǒng),其特征在于,每條所述字線上均連接有一個放電晶體管;所述放電晶體管用于在所述憶阻器陣列進行矩陣向量乘法運算或匹配運算前執(zhí)行數(shù)據(jù)初始化操作。
4.根據(jù)權(quán)利要求2所述的三維存算一體系統(tǒng),其特征在于,所述多層憶阻器子陣列包括第一憶阻器子陣列和第二憶阻器子陣列;
5.根據(jù)權(quán)利要求4所述的三維存算一體系統(tǒng),其特征在于,所述待處理數(shù)據(jù)包括用于進行矩陣向量乘法運算的第一數(shù)據(jù)或用于進行匹配運算的第二數(shù)據(jù);對應地,所述模擬電壓信號包括所述第一數(shù)據(jù)對應的第一模擬電壓信號或所述第二數(shù)據(jù)對應的第二模擬電壓信號;
6.根據(jù)權(quán)利要求4所述的三維存算一體系統(tǒng),其特征在于,所述被乘數(shù)據(jù)矩陣中的每列存儲數(shù)據(jù)由所述第一憶阻器子陣列中的一列憶阻器存儲表示,其中,憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“0”,憶阻器的低阻態(tài)表示存儲數(shù)據(jù)為“1”;
7.根據(jù)權(quán)利要求6所述的三維存算一體系統(tǒng),其特征在于,所述待搜索數(shù)據(jù)矩陣中的每列存儲數(shù)據(jù)由所述第二憶阻器子陣列中的兩列憶阻器存儲表示,其中,所述兩列憶阻器中,任一憶阻器的高阻態(tài)和其對應的憶阻器的低阻態(tài)表示存儲數(shù)據(jù)為“0”,所述任一憶阻器的低阻態(tài)和其對應的憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“1”,所述任一憶阻器的高阻態(tài)和其對應的憶阻器的高阻態(tài)表示存儲數(shù)據(jù)為“x”,所述存儲數(shù)據(jù)為“x”用于表征不關(guān)心狀態(tài);
8.根據(jù)權(quán)利要求1-7任一項所述的三維存算一體系統(tǒng),其特征在于,所述憶阻器陣列包括阻變存儲器陣列、鐵電存儲器陣列、相變存儲器陣列、磁隨機存儲器陣列或非易失閃存器件陣列。
9.根據(jù)權(quán)利要求1-7任一項所述的三維存算一體系統(tǒng),其特征在于,所述憶阻器陣列的空間排布結(jié)構(gòu)包括三維水平堆疊結(jié)構(gòu)或三維垂直堆疊結(jié)構(gòu)。
10.一種應用于如上述權(quán)利要求1-9任一項所述的三維存算一體系統(tǒng)的運算方法,其特征在于,包括: