本發(fā)明涉及一種近存計(jì)算與存內(nèi)計(jì)算混合架構(gòu)及計(jì)算方法,特別是一種基于edram的高密度近存計(jì)算與存內(nèi)計(jì)算混合架構(gòu)及計(jì)算方法。
背景技術(shù):
1、本部分提供的僅僅是與本公開相關(guān)的背景信息,其并不必然是現(xiàn)有技術(shù)。
2、近年來隨著深度學(xué)習(xí)算法的快速發(fā)展,其計(jì)算量與參數(shù)量每年以指數(shù)級增長;許多內(nèi)存密集型應(yīng)用,如自然語言模型、圖論分析等,都已然在現(xiàn)代數(shù)據(jù)分析中占據(jù)主導(dǎo)地位。然而傳統(tǒng)的“馮·諾依曼”架構(gòu)將計(jì)算單元與存儲單元分離,導(dǎo)致在計(jì)算過程中大量的能耗與延時(shí)來自于訪存與數(shù)據(jù)傳輸過程;相比較于人工智能應(yīng)用計(jì)算量的增長速度,存儲器件的發(fā)展十分緩慢,依靠傳統(tǒng)的存儲技術(shù)難以滿足現(xiàn)代人工智能應(yīng)用的帶寬與存儲容量需求。“存儲墻”問題一直成為了人工智能等應(yīng)用在硬件端快速部署的限制與瓶頸。
3、為了解決以上問題,現(xiàn)已提出的方法包括利用多級片上緩存(cache)、近存計(jì)算技術(shù)與存內(nèi)計(jì)算技術(shù)等。片上緩存雖然在延時(shí)和功耗上優(yōu)于片外內(nèi)存(dram),但由于片上面積與資源有限,存儲容量難以支撐現(xiàn)代ai的計(jì)算量。
4、如今正在發(fā)展的存算一體技術(shù)緩解了這個(gè)問題。廣義的存算一體技術(shù)可以分為近存計(jì)算與存內(nèi)計(jì)算兩種架構(gòu)。近存計(jì)算架構(gòu)是將計(jì)算單元集成在鄰近主存的位置,以降低數(shù)據(jù)傳輸?shù)墓呐c延時(shí)。存內(nèi)計(jì)算架構(gòu)是在存儲器內(nèi)部完成計(jì)算過程,存儲器同時(shí)具有存儲與計(jì)算功能,基本消除訪存與數(shù)據(jù)傳輸?shù)某杀?;同時(shí),相比較于基于sram等數(shù)字存內(nèi)計(jì)算架構(gòu),采用基于edram結(jié)構(gòu)和基于電荷的模擬電路進(jìn)行計(jì)算將進(jìn)一步降低計(jì)算過程的功耗與時(shí)間,大大提升計(jì)算并行度、能效比與面效比。
5、然而隨著快速發(fā)展的深度學(xué)習(xí)算法,計(jì)算量與參數(shù)量與日俱增,雖然存算架構(gòu)中權(quán)重參數(shù)與乘加運(yùn)算的集成緩解了讀寫權(quán)重值的問題,但輸入特征值的讀寫與更新仍然面臨著較大的訪存代價(jià);同時(shí)近存架構(gòu)中也面臨著帶寬限制導(dǎo)致的計(jì)算效率與能耗問題。僅僅使用近存或存內(nèi)計(jì)算架構(gòu)已無法滿足當(dāng)前算法部署到硬件上的帶寬和性能需求。同時(shí)面向隨身設(shè)備、無線設(shè)備等邊緣端應(yīng)用,對硬件電路集成度與尺寸也提出了進(jìn)一步要求。深溝槽電容通過深度反應(yīng)離子刻蝕技術(shù)形成高深寬比的深溝槽結(jié)構(gòu),具有高容量密度、小尺寸、高性能、高可靠性等優(yōu)點(diǎn),適用于現(xiàn)代需要高集成度的電子設(shè)備。
6、需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對本公開的背景的理解,因此可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)思路
1、發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種基于edram的高密度近存計(jì)算與存內(nèi)計(jì)算混合架構(gòu)及計(jì)算方法。
2、為了解決上述技術(shù)問題,本發(fā)明公開了一種基于edram的高密度近存計(jì)算與存內(nèi)計(jì)算混合架構(gòu)及計(jì)算方法,其中,所述架構(gòu)包括:
3、edram近存與存算混合陣列、靈敏放大器、adc電路、存算結(jié)果寄存器、特征值更新驅(qū)動電路、控制器、行譯碼器和列譯碼器;其中,
4、所述edram近存與存算混合陣列按功能劃分為edram存儲陣列和edram存算陣列,所述靈敏放大器與所述edram存儲陣列連接,所述adc電路與所述edram存算陣列連接,所述存算結(jié)果寄存器與所述adc電路連接及所述特征值更新驅(qū)動電路連接,所述行譯碼器和列譯碼器與所述edram近存與存算混合陣列連接,所述特征值更新驅(qū)動電路與靈敏放大器連接,所述控制器分別與edram近存與存算混合陣列、靈敏放大器、adc電路、存算結(jié)果寄存器、特征值更新驅(qū)動電路、行譯碼器和列譯碼器連接。
5、進(jìn)一步的,所述edram近存與存算混合陣列,用于對當(dāng)前輪次計(jì)算的輸入的特征值進(jìn)行計(jì)算;
6、所述靈敏放大器,用于將edram存儲陣列寫入和讀出時(shí)的位線電壓放大,以及所述edram存儲陣列的刷新;
7、所述adc電路,用于將edram存算陣列計(jì)算得到的模擬值轉(zhuǎn)換為數(shù)字值;
8、所述存算結(jié)果寄存器,用于存儲所述edram存算陣列進(jìn)行運(yùn)算后經(jīng)所述adc電路轉(zhuǎn)換得到的數(shù)字計(jì)算結(jié)果;所述存算結(jié)果寄存器還,將其存儲的所述數(shù)字計(jì)算結(jié)果轉(zhuǎn)移到所述特征值更新驅(qū)動電路;
9、所述行譯碼器和列譯碼器,用于根據(jù)所述控制器發(fā)出的地址信號選擇所述edram近存與存算混陣列中對應(yīng)的行和列;
10、所述特征值更新驅(qū)動電路,用于更新所述edram近存與存算混陣列中下一輪次計(jì)算的輸入的特征值;
11、所述控制器,用于控制并選擇所述edram近存與存算混合陣列的工作模式、行地址和列地址。
12、進(jìn)一步的,所述的edram近存與存算混合陣列由若干相同的4t2c基本單元排列而成,所述edram近存與存算混合陣列每次并地讀取若干行特征值。
13、進(jìn)一步的,所述4t2c基本單元,具體包括:
14、由4個(gè)場效應(yīng)管和2個(gè)深溝槽電容組成;其中,第一場效應(yīng)管m1的柵極接所述edram存儲陣列的字線wl_x,控制所述4t2c基本單元是否讀寫輸入特征值;所述第一場效應(yīng)管m1的源極連接所述edram存儲陣列的位線bl_x,用于寫入輸入信號的值;所述第一場效應(yīng)管m1的漏極與第一電容c1相連,將寫入的輸入特征值以電荷的形式存儲到第一電容c1上;
15、第二場效應(yīng)管m2是寫入管,其柵極連接所述edram存算陣列的字線wl_w,控制權(quán)重是否寫入,源極連接所述edram存算陣列的位線bl_w寫入權(quán)重的值,漏極與第四場效應(yīng)管m4的柵極相連,通過所述第二場效應(yīng)管m2與所述第四場效應(yīng)管m4間的寄生電容存儲權(quán)重電壓v1;
16、第三場效應(yīng)管m3是復(fù)位管,其源極連接電源vdd,柵極連接復(fù)位控制信號rst,控制對第二電容c2左端電壓的復(fù)位,復(fù)位電壓為電源電壓;
17、第四場效應(yīng)管m4是計(jì)算管,從所述第四場效應(yīng)管m4的源極輸入激活值,通過柵極的權(quán)重電壓v1實(shí)現(xiàn)權(quán)重值與激活值的與運(yùn)算,所述第四場效應(yīng)管m4的漏極與所述第三場效應(yīng)管m3的漏極共同連到第二電容c2左端,該處電壓代表所述4t2c基本單元的計(jì)算結(jié)果值;所述第二電容c2的右端電壓代表一次計(jì)算的輸出值。
18、進(jìn)一步的,所述4t2c基本單元,包括三種工作模式:數(shù)據(jù)寫入模式、計(jì)算模式和特征值更新模式;其中,
19、所述的數(shù)據(jù)寫入模式,將輸入特征值與權(quán)重分別寫入所述edram近存與存算混合陣列中;
20、所述的計(jì)算模式,所述edram近存與存算陣列基于電荷方法逐位完成特征值與權(quán)重的乘累加計(jì)算,該計(jì)算完成后將結(jié)果傳入adc電路中量化得到最終8bit數(shù)字計(jì)算值并寫入存算結(jié)果寄存器中;
21、所述的在特征值更新模式,根據(jù)所述8bit數(shù)字計(jì)算值,通過特征值更新驅(qū)動電路刷新edram陣列中的特征值電壓。
22、進(jìn)一步的,所述的計(jì)算模式,包括4個(gè)階段:復(fù)位階段、單比特計(jì)算階段、列求和計(jì)算階段和adc量化階段;
23、在所述edram存算陣列的列上設(shè)置第一開關(guān)s1,?用于復(fù)位階段的切換,在所述edram存算陣列的位線bl_x上設(shè)置第二開關(guān)s2連接到vdd,第三開關(guān)s3用于讀取輸入特征值;上述開關(guān)用于計(jì)算模式下4個(gè)階段間的切換。
24、進(jìn)一步的,所述的計(jì)算模式,具體包括:
25、復(fù)位階段,閉合所述第一開關(guān)s1,第二電容c2負(fù)極板電壓被強(qiáng)行復(fù)位到gnd;
26、單比特計(jì)算階段,通過3-8譯碼器控制所述edram存儲陣列的字線wl_x的開斷,選通一列所述edram存儲陣列的字線wl_x后,該列4t2c基本單元中的第一場效應(yīng)管m1被開啟,該4t2c基本單元中的第一電容c1存儲的電壓值即特征值對所述edram存儲陣列的位線bl_x電壓進(jìn)行擾動,靈敏放大器sa根據(jù)擾動方向?qū)⒃撾妷豪呋蚶偷礁唠娖交虻碗娖?,閉合第三開關(guān)s3斷開第二開關(guān)s2,穩(wěn)定后的特征值電壓通過緩沖器傳遞到第四場效應(yīng)管m4的源極進(jìn)行單比特計(jì)算;所述第四場效應(yīng)管m4的柵極存儲權(quán)重電壓值即權(quán)重值,權(quán)重值與特征值在所述第四場效應(yīng)管m4上完成單比特與運(yùn)算,運(yùn)算結(jié)果以電荷的方式存儲在第二電容c2的正極板上;
27、列求和運(yùn)算階段,第一開關(guān)s1斷開,rst低電平導(dǎo)通第三場效應(yīng)管m3,第二電容c2正極板電壓被置vdd,該列上的電容電荷進(jìn)行了電荷重分配,并在一列上得到一列4t2c基本單元的計(jì)算電壓值,通過列間電容的電荷重分配實(shí)現(xiàn)列間按比特位賦權(quán)的加權(quán)計(jì)算電壓值;
28、對上述過程迭代8次,每次計(jì)算結(jié)果在設(shè)置在所述adc電路與所述edram存算陣列之間的adc采樣電容上進(jìn)行按位賦權(quán);最終乘累加的通過所述adc電路量化為數(shù)字計(jì)算結(jié)果存儲到存算結(jié)果寄存器中。
29、進(jìn)一步的,所述的4t2c基本單元中,第一電容c1和第二電容c2為深溝槽電容。
30、進(jìn)一步的,所述adc電路,采用逐次逼近型adc結(jié)構(gòu),具體包括:
31、cmos采樣開關(guān)、電容器、控制邏輯及轉(zhuǎn)換開關(guān)電路、時(shí)鐘生成模塊和比較器;所述cmos采樣開關(guān)與電容器上極板、比較器輸入端連接,用于控制是否傳入正負(fù)采樣電壓到比較器的正負(fù)兩級和電容上極板;
32、所述比較器與電容上極板、控制邏輯及轉(zhuǎn)換開關(guān)電路連接,用于根據(jù)正負(fù)輸入級電壓產(chǎn)生一次比較結(jié)果,并將比較結(jié)果傳遞給控制邏輯及轉(zhuǎn)換開關(guān)電路;
33、所述控制邏輯及轉(zhuǎn)換開關(guān)與電容器下極板、比較器連接,用于根據(jù)比較器的一次比較結(jié)果產(chǎn)生相應(yīng)的控制信號,控制信號控制轉(zhuǎn)換開關(guān)的轉(zhuǎn)換方向是電源端vdd或參考電壓vref,轉(zhuǎn)換開關(guān)的輸出連接到電容器下極板從而改變下極板電壓;
34、所述時(shí)鐘生成模塊與控制邏輯與轉(zhuǎn)換開關(guān)電路連接,用于生成8個(gè)時(shí)鐘信號clk0~clk7依次控制從右到左共八個(gè)控制邏輯及轉(zhuǎn)換開關(guān)電路的時(shí)鐘觸發(fā);
35、通過設(shè)置參考電壓vref,控制adc的量程與分辨率;在邏輯電路中,根據(jù)比較器的比較結(jié)果選擇轉(zhuǎn)換開關(guān)的轉(zhuǎn)換方向是參考電壓vref或電源端vdd,從而改變對應(yīng)電容的下極板電壓,使得比較器所連的正負(fù)電壓值逐漸逼近;在邏輯電路中包含d觸發(fā)器以保存模數(shù)轉(zhuǎn)換后的數(shù)字結(jié)果。
36、本發(fā)明還提出了一種基于edram的高密度近存計(jì)算與存內(nèi)計(jì)算混合計(jì)算方法,采用前述架構(gòu)進(jìn)行計(jì)算,所述計(jì)算方法包括:
37、步驟1,完成數(shù)據(jù)準(zhǔn)備,具體完成利用行譯碼器和列譯碼器控制字線wl,通過位線bl將輸入特征值與權(quán)重分別寫入edram近存與存算混合陣列中;
38、步驟2,完成復(fù)位,具體實(shí)施閉合第一開關(guān)s1、第二開關(guān)s2,斷開第三開關(guān)s3,將第二電容c2的負(fù)極板電壓復(fù)位到接地端gnd,同時(shí)第四場效應(yīng)管m4的源級接電源端vdd;
39、步驟3,完成讀取特征值、單比特計(jì)算,具體實(shí)施閉合第一開關(guān)s1、第三開關(guān)s3,斷開第二開關(guān)s2,位線bl_x上的特征電壓值通過緩沖器傳輸?shù)矫總€(gè)存算單元,與權(quán)重電壓在第四場效應(yīng)管m4上進(jìn)行單比特計(jì)算,在第二電容c2的正極板側(cè)電壓存儲單比特計(jì)算結(jié)果;
40、步驟4,完成列求和計(jì)算,具體實(shí)施斷開第一開關(guān)s1、第二開關(guān)s2、第三開關(guān)s3,第二電容c2上存儲的計(jì)算結(jié)果通過電荷重分配的模擬計(jì)算方式完成列內(nèi)和列間的求和計(jì)算過程,乘累加后的模擬計(jì)算結(jié)果傳入adc電路;
41、步驟5,完成adc量化過程并將結(jié)果寫入存算結(jié)果寄存器,具體完成在adc電路中通過逐次逼近方法實(shí)現(xiàn)將存內(nèi)計(jì)算陣列的模擬計(jì)算結(jié)果量化為數(shù)字計(jì)算結(jié)果,并存儲到結(jié)果寄存器中;
42、步驟6,完成特征值更新,根據(jù)存算計(jì)算結(jié)果,通過特征值更新驅(qū)動電路更新edram存儲陣列中的輸入特征電壓,等待下一層計(jì)算。
43、有益效果
44、(1)本發(fā)明提出的混合架構(gòu)相比較于傳統(tǒng)的存儲與計(jì)算分離的馮·諾依曼架構(gòu),可以減少數(shù)據(jù)傳輸所需要的功耗與延時(shí),解決“內(nèi)存墻”問題。
45、(2)本發(fā)明相比較于現(xiàn)有的存內(nèi)計(jì)算技術(shù),該發(fā)明采用了近存和存內(nèi)計(jì)算結(jié)合的方式,同時(shí)減少了輸入特征值與權(quán)重值的訪存和傳輸消耗。
46、(3)本發(fā)明中的存算陣列采取改進(jìn)設(shè)計(jì)的edram基本單元結(jié)構(gòu)和基于電荷的模擬電路的卷積計(jì)算方法,進(jìn)一步提高了計(jì)算效率與并行度,提高了面積利用率。
47、(4)本發(fā)明的edram近存與存算結(jié)合的基本單元采用了先進(jìn)的深溝槽電容技術(shù),具有大容量、高穩(wěn)定性、高密度的優(yōu)點(diǎn),能夠?qū)崿F(xiàn)高集成度的edram存算一體陣列。