本申請是有關(guān)于一種一種用于浮點數(shù)數(shù)據(jù)存儲器內(nèi)運算的存內(nèi)運算裝置及其指數(shù)存儲運算模塊與尾數(shù)存儲運算模塊。
背景技術(shù):
1、存儲器內(nèi)運算技術(shù)(computing-in-memory,cim)被視為解決存儲器墻(memorywall)的有效技術(shù)之一,其利用在存儲器內(nèi)的運算來減少數(shù)據(jù)搬移的次數(shù),可以大幅提升運算速度至傳統(tǒng)架構(gòu)的幾百甚至幾千倍以上?,F(xiàn)今大型ai網(wǎng)絡(luò)(例如dnn)有很大一部分的能量被消耗在數(shù)據(jù)的搬移中。透過存儲器內(nèi)運算技術(shù)(cim)可以大幅降低因此而虛耗掉的能量,可說是兼具增加運算能力及降低功耗的未來ai潛力技術(shù)。
2、存儲器內(nèi)運算技術(shù)(cim)的潛力使得許多廠商及研究單位均投入并發(fā)表許多新穎的技術(shù),但只能進行整數(shù)運算,且采用的類比感測可能會造成噪聲或制程變異等問題。目前所提出的存儲器內(nèi)運算(cim)并無法支援浮點數(shù)運算。因此研究人員正致力于開發(fā)支援浮點數(shù)的存儲器內(nèi)運算架構(gòu)。
技術(shù)實現(xiàn)思路
1、本申請有關(guān)于一種用于浮點數(shù)數(shù)據(jù)存儲器內(nèi)運算的存內(nèi)運算裝置及其指數(shù)存儲運算模塊與尾數(shù)存儲運算模塊,其將浮點運算電路集成到存儲器內(nèi)部,避免了數(shù)據(jù)的輸入和輸出,因此具有快速運算的優(yōu)勢,并可減少功耗消耗,提高了能源效率。
2、根據(jù)本申請的一方面,提出一種用于浮點數(shù)數(shù)據(jù)存儲器內(nèi)運算的存內(nèi)運算裝置。該存內(nèi)運算裝置包括指數(shù)存儲運算模塊及尾數(shù)存儲運算模塊。指數(shù)存儲運算模塊包括多個權(quán)重指數(shù)存儲電路、多個指數(shù)運算電路及比較電路。這些權(quán)重指數(shù)存儲電路用以存儲多個權(quán)重數(shù)據(jù)的指數(shù)部分。這些指數(shù)運算電路用以對多個輸入數(shù)據(jù)的指數(shù)部分與這些權(quán)重數(shù)據(jù)的指數(shù)部分進行加法運算,以獲得多個指數(shù)乘積數(shù)據(jù)。比較電路用以比較這些指數(shù)乘積數(shù)據(jù),以獲得最大指數(shù)乘積數(shù)據(jù)。尾數(shù)存儲運算模塊包括位數(shù)位移電路、多個權(quán)重尾數(shù)存儲電路、多個尾數(shù)運算電路、位移與加法電路、多個權(quán)重正負號存儲電路、多個正負號運算電路及加總電路。位數(shù)位移電路用以依據(jù)最大指數(shù)乘積數(shù)據(jù),位移這些輸入數(shù)據(jù)的尾數(shù)部分。這些權(quán)重尾數(shù)存儲電路用以存儲這些權(quán)重數(shù)據(jù)的尾數(shù)部分。這些尾數(shù)運算電路用以對這些輸入數(shù)據(jù)的尾數(shù)部分與這些權(quán)重數(shù)據(jù)的尾數(shù)部分進行乘法運算,以獲得多個尾數(shù)乘積中間數(shù)據(jù)。位移與加法電路用以對這些尾數(shù)乘積中間數(shù)據(jù)進行位移后再進行加總,以獲得多個尾數(shù)乘積數(shù)據(jù)。多個權(quán)重正負號存儲電路用以存儲這些權(quán)重數(shù)據(jù)的正負號部分。多個正負號運算電路用以對這些輸入數(shù)據(jù)的正負號部分與這些權(quán)重數(shù)據(jù)的正負號部分進行互斥或運算,以獲得多個正負號乘積數(shù)據(jù)。加總電路用以整合這些正負號乘積數(shù)據(jù)、這些最大指數(shù)乘積數(shù)據(jù)及這些尾數(shù)乘積數(shù)據(jù),以獲得輸入與權(quán)重乘積和數(shù)據(jù)。
3、根據(jù)本申請的另一方面,提出一種指數(shù)存儲運算模塊。指數(shù)存儲運算模塊包括多個權(quán)重指數(shù)存儲電路、多個指數(shù)運算電路及比較電路。這些權(quán)重指數(shù)存儲電路用以存儲多個權(quán)重數(shù)據(jù)的指數(shù)部分。這些指數(shù)運算電路用以對多個輸入數(shù)據(jù)的指數(shù)部分與這些權(quán)重數(shù)據(jù)的指數(shù)部分進行加法運算,以獲得多個指數(shù)乘積數(shù)據(jù)。比較電路用以比較這些指數(shù)乘積數(shù)據(jù),以獲得最大指數(shù)乘積數(shù)據(jù)。
4、根據(jù)本申請的再一方面,提出一種尾數(shù)存儲運算模塊。尾數(shù)存儲運算模塊包括多個權(quán)重尾數(shù)存儲電路、多個尾數(shù)運算電路及位移與加法電路。這些權(quán)重尾數(shù)存儲電路用以存儲多個權(quán)重數(shù)據(jù)的尾數(shù)部分。這些尾數(shù)運算電路用以對多個輸入數(shù)據(jù)的尾數(shù)部分與這些權(quán)重數(shù)據(jù)的尾數(shù)部分進行乘法運算,以獲得多個尾數(shù)乘積中間數(shù)據(jù)。位移與加法電路用以對這些尾數(shù)乘積中間數(shù)據(jù)進行位移后再進行加總,以獲得多個尾數(shù)乘積數(shù)據(jù)。
5、為了對本發(fā)明的上述及其他方面有更佳的了解,下文特舉實施例,并配合所附圖式詳細說明如下。
1.一種存內(nèi)運算裝置,用于浮點數(shù)數(shù)據(jù)的存儲器內(nèi)運算,其特征在于,包括:
2.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該權(quán)重指數(shù)存儲電路包括多個靜態(tài)隨機存取存儲器。
3.如權(quán)利要求2所述的存內(nèi)運算裝置,其特征在于,各該靜態(tài)存隨機取存儲器包括六個晶體管。
4.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該指數(shù)運算電路包括:
5.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,該比較
6.如權(quán)利要求5所述的存內(nèi)運算裝置,其特征在于,各該比較器包括:
7.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,該位數(shù)位移電路包括:
8.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該權(quán)重尾數(shù)存儲電路包括多個靜態(tài)隨機存取存儲器。
9.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該尾數(shù)運算電路包括:
10.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該權(quán)重正負號存儲電路包括多個靜態(tài)隨機存取存儲器。
11.如權(quán)利要求10所述的存內(nèi)運算裝置,其特征在于,各該靜態(tài)隨機存取存儲器包括六個晶體管。
12.如權(quán)利要求1所述的存內(nèi)運算裝置,其特征在于,各該正負號運算電路包括:
13.一種指數(shù)存儲運算模塊,其特征在于,包括:
14.如權(quán)利要求13所述的指數(shù)存儲運算模塊,其特征在于,各該權(quán)重指數(shù)存儲電路包括多個靜態(tài)隨機存取存儲器。
15.如權(quán)利要求13所述的指數(shù)存儲運算模塊,其特征在于,各該指數(shù)運算電路包括:
16.如權(quán)利要求13所述的指數(shù)存儲運算模塊,其特征在于,該比較電路連接于該多個指數(shù)運算電路,該比較電路包括:
17.如權(quán)利要求16所述的指數(shù)存儲運算模塊,其特征在于,各該比較器包括:
18.一種尾數(shù)存儲運算模塊,其特征在于,包括:
19.如權(quán)利要求18所述的尾數(shù)存儲運算模塊,其特征在于,各該權(quán)重尾數(shù)存儲電路包括多個靜態(tài)隨機存取存儲器。
20.如權(quán)利要求19所述的尾數(shù)存儲運算模塊,其特征在于,各該尾數(shù)運算電路包括: