本技術(shù)實施例涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及一種處理芯片及相關(guān)方法。
背景技術(shù):
1、隨著人工智能的發(fā)展,卷積神經(jīng)網(wǎng)絡作為前饋神經(jīng)網(wǎng)絡的代表算法之一得到快速演進。卷積神經(jīng)網(wǎng)絡以卷積運算為基礎,而卷積運算則是輸入數(shù)據(jù)與權(quán)重在模擬域做點乘的過程。其中,傳統(tǒng)的ai芯片均采用存算分離的架構(gòu)來進行卷積計算,然而神經(jīng)網(wǎng)絡的數(shù)據(jù)量非常巨大,該種架構(gòu)勢必會因數(shù)據(jù)搬運耗能大的問題嚴重影響其算力。
2、為了應對未來ai海量算力的需求,提高ai芯片算力,現(xiàn)提出了ai芯片的數(shù)字存算一體架構(gòu)。具體的,就是將計算單元和存儲模塊收尾相連構(gòu)成存算網(wǎng)絡,然后將各層的權(quán)重信息存儲在各卷積層的存儲模塊中,而將輸入數(shù)據(jù)直接輸入第一層的計算單元。這樣,第一層的計算單元讀取第一層權(quán)重信息,輸出中間結(jié)果,再將該中間結(jié)果輸入至第二層的計算單元中......最終得到輸入數(shù)據(jù)的權(quán)重累加結(jié)果。由于中間數(shù)據(jù)在內(nèi)部流動而不出存算核,所以大大降低了數(shù)據(jù)搬運耗能,從而大幅提升了ai芯片的算力。
3、但是,在現(xiàn)有的數(shù)字存算一體架構(gòu)下,為了使存儲模塊的數(shù)據(jù)讀取匹配上計算單元的計算過程,數(shù)字存算一體ai芯片都是提前將存儲模塊中的權(quán)重信息讀取至寄存器,然后通過寄存器傳給計算單元。這樣,數(shù)字存算一體ai芯片將多出了與計算單元數(shù)量相同的寄存器。而寄存器的面積和功耗都相當?shù)拇?,會造成整個數(shù)字存算一體ai芯片的面積非常大,并且功耗非常高。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種處理芯片及相關(guān)方法?;谏窠?jīng)網(wǎng)絡的卷積運算過程中權(quán)重信息不變的特點,新的處理芯片不再將存儲單元中的權(quán)重信息讀取至寄存器,而是通過帶驅(qū)動的元器件將權(quán)重信息直接傳給計算單元。這樣,處理芯片節(jié)省了大量的寄存器電路,其面積和功耗將大大降低,從而大大提高處理芯片的算力。
2、第一方面,本技術(shù)實施例提供了一種處理芯片,該處理芯片包括:
3、處理芯片為數(shù)字存算一體結(jié)構(gòu),包括用于存儲權(quán)重信息的靜態(tài)隨機存取存儲器(static?random-access?memory,sram)陣列以及用于進行數(shù)據(jù)運算的計算單元陣列。其中,靜態(tài)隨機存取存儲器陣列中的每個靜態(tài)隨機隨機存取存儲器均由有序排列的存儲單元構(gòu)成,而每個存儲單元都用來存儲1比特的數(shù)據(jù)。靜態(tài)隨機存取存儲器與計算單元相連時,靜態(tài)隨機存取存儲器中的每一個存儲單元對應計算單元的一個輸入比特位,每個存儲單元的輸出端均通過一個有源元器件與一個計算單元的輸入比特位相連。
4、在上述結(jié)構(gòu)中,存儲單元中存儲的數(shù)據(jù)不再讀取至寄存器中進行暫存,而是通過連接的有源元器件增強驅(qū)動后,直接輸入至計算單元的輸入端。這是因為神經(jīng)網(wǎng)絡卷積運算過程中,權(quán)重信息不會發(fā)生變化。因此,將權(quán)重信息存儲至靜態(tài)隨機存取存儲器時,無時間約束問題。這樣,處理芯片就省去了大量的寄存器電路,大大降低了整個芯片的面積以及功耗,從而提高了處理芯片的算力。
5、在一個可選的實施方式中,處理芯片中的每個靜態(tài)隨機存取存儲器的位寬為m,位深為n。那么,每個靜態(tài)隨機存取存儲器就包括有m*n個存儲單元。具體的,在靜態(tài)隨機存取存儲器中,每一行包括有m個存儲單元,每一行的m個存儲單元連接在同一條字線上。而靜態(tài)隨機存取存儲器一共有n條字線,即一共有n行存儲單元。其中,每一列的n個存儲單元連接同一條位線和同一條位線輸出線。這樣,存儲單元的排列呈現(xiàn)矩形結(jié)構(gòu),集成度更高,進一步降低靜態(tài)隨機存取存儲器的面積。
6、在一個可選的實施方式中,有源元器件可以是反相器、緩沖器等帶有驅(qū)動電源的元器件,其作用是為了增強驅(qū)動,將存儲單元中存儲的數(shù)據(jù)直接輸送至計算單元。有源元器件取代寄存器,以減小處理芯片的面積。
7、在一個可選的實施方式中,當計算單元的輸入比特數(shù)t等于靜態(tài)隨機存取存儲器的位寬m時,sram中每一行的m個存儲單元依次連接一個計算單元的輸入端。此時,整個sram將連接n(位深)個計算單元。而當計算單元的輸入比特數(shù)t小于靜態(tài)隨機存取存儲器的位寬m時,sram的每一行存儲單元可以連接多個計算單元。具體的,當m=t*s+d時,每一行存儲單元依次連接s個極端單元的輸入端,整個靜態(tài)隨機存取存儲器則對應連接s*n個計算單元??梢岳斫獾?,為了使得面積功耗最優(yōu),sram通常被定制為固定位深*固定位寬的尺寸,本實施例可以解決計算單元的輸入比特數(shù)與位寬不匹配的情況,當位寬大于計算單元的輸入比特數(shù)時,一行的存儲單元可以連接多個計算單元,這樣可以提高集成度。
8、在一個可選的實施方式中,sram中每一行的存儲單元的個數(shù)并不一定和計算單元的輸入比特數(shù)t是整數(shù)倍關(guān)系,有可能會多余出d個存儲單元,那么,只需要將每行的d個存儲單元懸空即可。
9、在一個可選的實施方式中,計算單元的輸入比特數(shù)t還可以大于sram的位寬m。示例性的,如果計算單元的輸入比特數(shù)t=m*p,那么就需要將sram中每p行的存儲單元連接在同一個計算單元的輸入端。此時,sram則對應連接n(位深)/p個計算單元。
10、同理,在本實施方式中,可以先保證sram面積功耗最優(yōu),設計sram的尺寸。在sram尺寸固定的情況下,可以通過多行存儲單元連接一個計算單元的方式來進行比特拼接,以拓展比特位適應計算單元,這樣可以實現(xiàn)sram的最大利用率。
11、在一個可選的實施方式中,位深n并不一定和p是整數(shù)倍關(guān)系,即可能會多余出幾行存儲單元。此時,如果n=i*p+m,那么,每p行的存儲單元連接一個計算單元的輸入端,整個sram則對應連接i個計算單元,剩余的m行存儲單元設置為懸空狀態(tài)即可。
12、在一個可選的實施方式中,sram中的每一個存儲單元由6個晶體管構(gòu)成。包括第一場效應管、第二場效應管、第一反相器和第二反相器。其中,第一場效應管的柵極和第二場效應管的柵極連接同一條字線,第一場效應管的漏極連接位線,且第二場效應管的漏極連接位線輸出線。而第一反相器的輸入端和第二反相器的輸出端相連,第一反相器的輸出端和第二反相器的輸入端相連,形成鎖結(jié)構(gòu)。鎖結(jié)構(gòu)的一端連接第一場效應管的源極,另一端連接第二場效應管的源極。其中,sram的結(jié)構(gòu)體積小,讀取速度快,這樣使得整個處理芯片的面積進一步減小,且性能更高。
13、第二方面,本技術(shù)實施例提供了一種數(shù)字處理方法,應用于第一方面提供的處理芯片,該方法包括:
14、處理芯片中包括靜態(tài)隨機存取存儲器和與之相連的計算單元。兩種的具體連接方式是,靜態(tài)隨機存取存儲器包括的存儲單元,通過有源元器件與計算單元的一個輸入比特位相連。其中,靜態(tài)隨機存取存儲器中存儲計算過程中不變的輸入數(shù)據(jù),比如卷積運算中的權(quán)重數(shù)據(jù)?;谏鲜鼋Y(jié)構(gòu),在進行計算時,計算單元首先通過一個輸入端來獲取輸入的第一數(shù)據(jù),然后通過另一個輸入端接收經(jīng)有源元器件驅(qū)動后輸入至鏈路上的隨機存取存儲器中的數(shù)據(jù),接著計算單元就可以對第一數(shù)據(jù)和第二數(shù)據(jù)進行運算,得到運算結(jié)果。
15、基于上述結(jié)構(gòu),無需對靜態(tài)隨機存取存儲器中存儲的第二數(shù)據(jù)進行讀取操作,這是因為有源元器件可以增強驅(qū)動,直接將第二數(shù)據(jù)傳輸給計算單元。因此,處理芯片在數(shù)據(jù)運算過程中,不再進行數(shù)據(jù)讀取。這樣可以大大降低計算功耗,提高處理芯片的算力。
16、在一個可選的實施方式中,在利用處理芯片進行數(shù)據(jù)運算前,需要先將運算過程中不變的數(shù)據(jù)寫入至靜態(tài)隨機存取存儲器中。具體的,需要先確定各存儲單元的地址,然后選中相應的存儲單元后進行數(shù)據(jù)寫入即可。
17、在一個可選的實施方式中,處理芯片中的每個靜態(tài)隨機存取存儲器的位寬為m,位深為n。那么,每個靜態(tài)隨機存取存儲器就包括有m*n個存儲單元。具體的,在靜態(tài)隨機存取存儲器中,每一行包括有m個存儲單元,每一行的m個存儲單元連接在同一條字線上。而靜態(tài)隨機存取存儲器一共有n條字線,即一共有n行存儲單元。其中,每一列的n個存儲單元連接同一條位線和同一條位線輸出線。這樣,存儲單元的排列呈現(xiàn)矩形結(jié)構(gòu),集成度更高,進一步降低靜態(tài)隨機存取存儲器的面積。
18、在一個可選的實施方式中,有源元器件可以是反相器、緩沖器等帶有驅(qū)動電源的元器件,其作用是為了增強驅(qū)動,將存儲單元中存儲的數(shù)據(jù)直接輸送至計算單元。有源元器件取代寄存器,以減小處理芯片的面積。
19、第三方面,本技術(shù)實施例提供了一種數(shù)據(jù)存算芯片,該數(shù)據(jù)存算芯片包括調(diào)度控制單元和存算單元。其中,調(diào)度控制單元和存算單元耦合。其中,調(diào)度控制單元用于存儲計算機指令,而存算單元如第一方面提供的任意一種處理芯片。計算機指令由調(diào)度控制單元加載并執(zhí)行以使數(shù)字存算芯片實現(xiàn)如第二方面提供的任意一種數(shù)字處理方法。
20、第四方面,本技術(shù)實施例提供了一種數(shù)據(jù)處理系統(tǒng),包括:處理芯片和處理器。處理器與處理芯片耦合;處理芯片為第一方面提供的任意一種處理芯片,處理器用于執(zhí)行第二方面提供的任一項數(shù)字處理方法。
21、在本技術(shù)實施例中,處理芯片為數(shù)字存算一體結(jié)構(gòu),包括用于存儲權(quán)重信息的靜態(tài)隨機存取存儲器整列以及用于進行數(shù)據(jù)運算的計算單元陣列。其中,靜態(tài)隨機存取存儲器陣列中的每個靜態(tài)隨機隨機存取存儲器均由有序排列的存儲單元構(gòu)成,而每個存儲單元都用來存儲1比特的數(shù)據(jù)。靜態(tài)隨機存取存儲器與計算單元相連時,靜態(tài)隨機存取存儲器中的每一個存儲單元對應計算單元的一個輸入比特位,每個存儲單元的輸出端均通過一個有源元器件與一個計算單元的輸入比特位相連。
22、在上述結(jié)構(gòu)中,存儲單元存儲的數(shù)據(jù)通過連接的有源元器件增強驅(qū)動后,直接輸入至計算單元的輸入端。這是因為神經(jīng)網(wǎng)絡卷積運算過程中,權(quán)重信息不會發(fā)生變化?;谶@一特點,權(quán)重信息存儲至靜態(tài)隨機存取存儲器時,無時間約束問題,因此無需將存儲模塊中的權(quán)重信息讀取至寄存器,只需通過帶驅(qū)動的元器件將權(quán)重信息直接傳給計算單元即可。這樣,處理芯片就省去了大量的寄存器電路,大大降低了整個芯片的面積以及功耗,從而提高了處理芯片的算力。