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