亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于NORFLASH陣列的卷積運(yùn)算方法與流程

文檔序號(hào):12664227閱讀:499來(lái)源:國(guó)知局
一種基于NOR FLASH陣列的卷積運(yùn)算方法與流程

本發(fā)明屬于半導(dǎo)體集成電路及其制造技術(shù)領(lǐng)域,更具體地,涉及一種基于NOR FLASH陣列的卷積運(yùn)算方法。



背景技術(shù):

卷積運(yùn)算作為一種線性運(yùn)算,在信號(hào)和系統(tǒng)方面占據(jù)非常重要的地位,包括圖像識(shí)別、地震勘測(cè)、超聲診斷、人工智能等系統(tǒng)中廣泛存在著卷積運(yùn)算。這些系統(tǒng)中的卷積運(yùn)算具有計(jì)算量大、數(shù)據(jù)通量大和計(jì)算方式固定等特點(diǎn)。利用傳統(tǒng)的通用處理器CPU做卷積計(jì)算,存在計(jì)算效率低、速度慢,無(wú)法滿足數(shù)據(jù)實(shí)時(shí)處理的需求。利用GPU做卷積方案也存在硬件開(kāi)銷(xiāo)資源大的問(wèn)題。近年來(lái),人工智能迅速發(fā)展,對(duì)卷積運(yùn)算的需求呈海量增加,因此必須發(fā)展一種高效卷積運(yùn)算方式。



技術(shù)實(shí)現(xiàn)要素:

(一)要解決的技術(shù)問(wèn)題

鑒于上述問(wèn)題,本發(fā)明基于NOR flash結(jié)構(gòu)提出一種能夠高效卷積運(yùn)算的方法,可以實(shí)現(xiàn)NOR flash乘法計(jì)算,NOR flash陣列卷積運(yùn)算以及NOR flash卷積運(yùn)算的并行執(zhí)行。

(二)技術(shù)方案

一種基于NOR FLASH陣列的卷積運(yùn)算方法,所述NOR FLASH陣列包括多個(gè)NOR flash單元組成的二維陣列,包括以下步驟:

S1:將卷積核矩陣的元素存儲(chǔ)到NOR flash單元中;

S2:輸入矩陣的元素轉(zhuǎn)換成電壓施加在NOR flash單元的柵端,同時(shí)在NOR flash單元的源端施加一個(gè)驅(qū)動(dòng)電壓,NOR flash單元的漏端輸出電流;

S3:由NOR flash單元漏端的輸出電流得到卷積運(yùn)算結(jié)果。

上述方案中,在所述S1中,分別經(jīng)字線、公共源線和位線向NOR flash單元的柵端、源端和漏端施加電壓,將卷積核矩陣元素寫(xiě)入到NOR flash單元中。

上述方案中,當(dāng)卷積核矩陣元素為1或者-1時(shí),NOR flash單元的閾值電壓被調(diào)整為低閾值電壓;當(dāng)卷積核矩陣元素為0時(shí),NOR flash單元閾值電壓被調(diào)整為高閾值電壓。

上述方案中,在所述S2中,

將輸入矩陣元素轉(zhuǎn)換為電壓,電壓通過(guò)字線輸入到NOR flash單元的柵端,同時(shí)通過(guò)公共源線向NOR flash單元的源端施加驅(qū)動(dòng)電壓。

上述方案中,

當(dāng)輸入矩陣元素為1時(shí),所述電壓為NOR flash單元的高閾值電壓與低閾值電壓之和的二分之一;當(dāng)輸入矩陣元素為0時(shí),所述電壓為0。

上述方案中,在所述S3中,NOR flash單元漏端的輸出電流經(jīng)位線匯集至運(yùn)算放大器,運(yùn)算放大器輸出端的值構(gòu)成輸出矩陣,得到卷積運(yùn)算結(jié)果。

上述方案中,與正位線連接的NOR flash單元漏端的輸出電流輸入到運(yùn)算放大器的正輸入端,與負(fù)位線連接的NOR flash單元漏端的輸出電流輸入到運(yùn)算放大器的負(fù)輸入端,運(yùn)算放大器輸出端的值為輸出矩陣元素。

上述方案中,所述NOR FLASH陣列還包括多條字線、多條位線和公共源線;

每一行的NOR flash單元的柵端通過(guò)字線相連,每一列的NOR flash單元的漏端通過(guò)位線相連,NOR flash單元的源端由一條公共源線相連

上述方案中,還包括多條源線,每一行的NOR flash單元的源端通過(guò)源線相連,每條源線連接到公共源線。

上述方案中,輸入矩陣大小為m×m,卷積核矩陣大小為n×n,得到的輸出矩陣大小為(m-n+1)×(m-n+1)。

(三)有益效果

本發(fā)明基于NOR flash陣列提出一種能夠高效卷積運(yùn)算的方法,利用NOR flash結(jié)構(gòu)實(shí)現(xiàn)乘法計(jì)算,利用NOR flash陣列實(shí)現(xiàn)卷積運(yùn)算以及卷積運(yùn)算的并行高效執(zhí)行,本發(fā)明計(jì)算效率高、可滿足數(shù)據(jù)實(shí)時(shí)處理的需求。

附圖說(shuō)明

圖1是矩陣卷積原理示意圖;

圖2是本發(fā)明實(shí)施例的NOR flash單元示意圖;

圖3是本發(fā)明實(shí)施例的NOR flash陣列作卷積計(jì)算的示意圖;

圖4是本發(fā)明實(shí)施例的基于NOR FLASH陣列的卷積運(yùn)算設(shè)備示意圖;

圖5為本發(fā)明實(shí)施例的基于NOR flash陣列的卷積運(yùn)算方法流程圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。

卷積是一個(gè)廣義的積分概念,在數(shù)字信號(hào)處理、概率論、圖像處理等領(lǐng)域都有廣泛的應(yīng)用。圖1的是一個(gè)5×5大小的輸入矩陣經(jīng)過(guò)一個(gè)2×2大小的卷積核矩陣處理之后得到的4×4大小的輸出矩陣的計(jì)算過(guò)程示意圖。輸入矩陣中的元素用xi,j表示,元素為x1,1~x5,5,卷積核矩陣中各元素用fi,j表示,元素為f1,1~f2,2,輸出矩陣中元素用yi,j表示,元素為y1,1~y4,4。首先要對(duì)卷積核矩陣進(jìn)行翻轉(zhuǎn),即旋轉(zhuǎn)180度操作,然后將翻轉(zhuǎn)后的卷積核矩陣首先與輸入矩陣的左上角部分重疊,之后計(jì)算該重疊部分的對(duì)應(yīng)元素乘積并求和,作為第一個(gè)輸出結(jié)果,即輸出矩陣中的元素y1,1=x1,1·f2,2+x1,2·f2,1+x1,1·f1,2+x2,2·f1,1;之后翻轉(zhuǎn)后的卷積核矩陣向x方向(行方向)右移一位,繼續(xù)計(jì)算重疊部分的乘積和作為下一個(gè)輸出結(jié)果,直到x方向全部重疊過(guò),則卷積核矩陣向y方向(列方向)平移一位并平移到x方向的起始點(diǎn)進(jìn)行計(jì)算,重復(fù)以上過(guò)程直至輸入矩陣中的元素全被卷積核矩陣覆蓋過(guò),輸出矩陣中元素yi,j可由公式y(tǒng)i,j=xi,j·f2,2+xi,j+1·f2,1+xi+1,j·f1,2+xi+1,j+1·f1,1表示,可得到16個(gè)輸出結(jié)果,因此輸出矩陣的大小為4×4。對(duì)于一個(gè)m×m大小規(guī)模的輸入矩陣,經(jīng)由一個(gè)n×n(m>n)大小規(guī)模的卷積核矩陣進(jìn)行卷積操作之后得到的輸出矩陣大小為(m-n+1)×(m-n+1)規(guī)模。

本發(fā)明的目的是提供一種利用NOR Flash陣列來(lái)進(jìn)行卷積運(yùn)算的方法。NOR FLASH陣列包括多個(gè)NOR FLASH單元,NOR Flash單元可以通過(guò)PROGRAM/ERASE(編程/擦除)操作來(lái)改其閾值電壓,從而存儲(chǔ)不同的邏輯值。當(dāng)進(jìn)行PROGRAM操作時(shí),NOR Flash襯底的電子在柵壓的控制下會(huì)通過(guò)隧穿層到浮柵層中,從而造成NOR flash單元的閾值電壓上升;而當(dāng)進(jìn)行ERASE操作時(shí),在柵壓的控制下電子會(huì)從浮柵層出去或有空穴進(jìn)入到浮柵層中,此時(shí)閾值電壓下降。

卷積運(yùn)算當(dāng)中存在大量乘法運(yùn)算,圖2所示是一個(gè)三端的NOR flash單元,包括一個(gè)柵端、一個(gè)漏端和一個(gè)源端。首先通過(guò)圖2來(lái)說(shuō)明如何用NOR flash單元進(jìn)行乘法運(yùn)算。通過(guò)ERASE或PROGRAM操作可以將NORflash單元的閾值電壓調(diào)整為高閾值電壓(Vth_high)或低閾值電壓(Vth_low)。對(duì)于A×B(A為卷積核矩陣元素,為乘數(shù),B為輸入矩陣元素,為被乘數(shù))的二進(jìn)制運(yùn)算來(lái)說(shuō),A值可以通過(guò)編程或擦除寫(xiě)入到NOR flash單元中,B值在運(yùn)算過(guò)程轉(zhuǎn)化為電壓加載在柵端上,A,B兩個(gè)的值共同決定了NOR flash單元的開(kāi)啟狀態(tài),在NOR flash的源端加載一個(gè)電壓,根據(jù)每個(gè)NOR flash單元不同的開(kāi)啟狀態(tài),可以得到不同大小的電流,收集每列NOR flash單元對(duì)應(yīng)的漏端電流即可得到乘法運(yùn)算的結(jié)果。這里的flash單元可以是傳統(tǒng)的閃存,也可以是新型電荷捕獲閃存。

NOR flash陣列結(jié)構(gòu)如圖3所示,對(duì)于5×5大小的輸入矩陣、2×2大小的卷積核矩陣、4×4大小的輸出矩陣的卷積運(yùn)算,NOR flash陣列結(jié)構(gòu)為NOR flash單元組成的25行32列的二維陣列,其中包含沿第一方向延伸的互相平行的16組位線,每組位線包括兩條位線,每條位線與一列25個(gè)NOR Flash單元的漏端相連;沿與第一方向交叉的第二方向延伸的25條相互平行的字線,每條字線與一行32個(gè)NOR Flash單元的柵端相連;每個(gè)NOR Flash單元的源端由源線連接至一條公共源線,16個(gè)運(yùn)算放大器,每個(gè)運(yùn)算放大器連接一組位線,每組位線的一條位線作為正位線連接運(yùn)算放大器的正輸入端,另一條位線作為負(fù)位線連接運(yùn)算放大器的負(fù)輸入端。

卷積核矩陣的元素存儲(chǔ)在NOR flash單元中,輸入矩陣的元素轉(zhuǎn)換成電壓通過(guò)字線輸入柵端,在NOR flash陣列的公共源端施加一個(gè)驅(qū)動(dòng)電壓通過(guò)漏端收集電流進(jìn)行卷積運(yùn)算。卷積運(yùn)算中的乘法運(yùn)算由每一個(gè)NORFlash單元完成,同一位線上的電流匯集到一起實(shí)現(xiàn)卷積運(yùn)算中加法運(yùn)算。位線的一端接運(yùn)算放大器,對(duì)匯集的電流轉(zhuǎn)換成輸出結(jié)果。由于卷積核矩陣中通常具有負(fù)數(shù)元素,因此對(duì)于每一個(gè)輸出矩陣的元素,我們需要兩列互相平行的NOR Flash單元,兩條位線中的一條作為正輸出線,將卷積核矩陣正元素對(duì)應(yīng)寫(xiě)入該位線連接的NOR flash單元中,該位線連入運(yùn)算放大器的正輸入端,另一條位線作為負(fù)輸出線,將卷積核矩陣中的負(fù)元素對(duì)應(yīng)寫(xiě)入該位線連接的NOR flash單元中,該位線連入運(yùn)算放大器的負(fù)輸入端,這兩列NOR flash單元中每一列的漏端通過(guò)位線分別連接到運(yùn)算放大器的兩個(gè)輸入端,這樣運(yùn)算放大器的輸出與正負(fù)電流的加和成正比,通過(guò)電流差分來(lái)實(shí)現(xiàn)具有負(fù)值卷積核矩陣元素的卷積的運(yùn)算。上述只是作為舉例,實(shí)際應(yīng)用中輸入矩陣及卷積核矩陣可擴(kuò)展成任意規(guī)模的矩陣,相應(yīng)地,NOR flash陣列應(yīng)擴(kuò)展為與輸入矩陣及卷積核矩陣適應(yīng)的規(guī)模。

圖4是基于NOR FLASH陣列的卷積運(yùn)算設(shè)備,包括NOR flash陣列、控制器、字/源線控制單元、位線控制單元、輸入模塊和輸出模塊,其中字/源線控制單元的第一端連接NOR flash陣列的字線和源線,另一端連接輸入模塊,字/源線控制單元包含多個(gè)脈沖發(fā)生器和選通器,多個(gè)脈沖發(fā)生器與字線和源線連接,由選通器選通不同的字線或源線施加電壓,位線控制單元的第一端連接NOR flash陣列的位線,另一端連接到輸出模塊,位線控制單元包含多個(gè)脈沖發(fā)生器和選通器,脈沖發(fā)生器與位線連接,由選通器選通不同的位線施加電壓,輸入模塊包括多個(gè)信號(hào)發(fā)生器,輸出模塊包括多個(gè)運(yùn)算放大器。

控制器接收控制信號(hào)對(duì)字/源線和位線控制單元進(jìn)行控制,分別對(duì)字線、源線和位線實(shí)現(xiàn)不同的輸入和輸出,從而實(shí)現(xiàn)卷積核矩陣元素的寫(xiě)入和卷積運(yùn)算以及在這兩種操作之間的切換。首先控制器控制字/源線控制單元和位線控制單元對(duì)NOR Flash陣列施加電壓進(jìn)行擦除以及編程操作,將卷積核矩陣元素寫(xiě)入到NOR Flash陣列中;在NOR Flash陣列中存儲(chǔ)卷積核矩陣后,通過(guò)控制器控制輸入模塊將輸入矩陣元素轉(zhuǎn)換成電壓信號(hào),將電壓信號(hào)傳輸至字/源線控制單元,由字/源線控制單元中的脈沖發(fā)生器產(chǎn)生電壓通過(guò)字線施加到NOR Flash陣列中,同時(shí)在公共源線上施加驅(qū)動(dòng)電壓,在NOR Flash陣列中漏端相連的位線輸出的電流經(jīng)過(guò)運(yùn)算放大器的處理得到卷積結(jié)果。

如圖5所示,本發(fā)明實(shí)施例的基于NOR flash陣列的卷積運(yùn)算方法為:

S1:將卷積核矩陣的元素存儲(chǔ)到NOR flash單元中;

在控制器的控制下,分別經(jīng)字線、公共源線和位線向柵端、源端和漏端施加電壓,把乘數(shù)(卷積核矩陣元素)的值,寫(xiě)入到NOR flash單元中。如果乘數(shù)為1或者-1,則將NOR flash單元的閾值電壓調(diào)整為低閾值電壓Vth_low,如果乘數(shù)為0,則將NOR flash單元閾值電壓調(diào)整為高閾值電壓(Vth_high)。

在本發(fā)明實(shí)施例中,我們選擇Roberts算子作為卷積核,此時(shí)f1,1=-1,f1,2=0,f2,1=0,f2,2=1,我們把Roberts算子的值寫(xiě)入到如圖3所示的NOR flash陣列中。

對(duì)于卷積核矩陣中存在負(fù)數(shù)元素的情況,可將每組兩條位線接入一個(gè)運(yùn)算放大器來(lái)實(shí)現(xiàn)實(shí)數(shù)域卷積核的計(jì)算,具體規(guī)則如下:兩條位線中的一條作為正輸出線,將卷積核矩陣正元素按位對(duì)應(yīng)寫(xiě)入該位線連接的NORflash單元中,該位線連入運(yùn)算放大器的正輸入端,如圖3所示,將f2,2寫(xiě)入到與y1,1對(duì)應(yīng)的運(yùn)算放大器“+”端相連的位線和V11對(duì)應(yīng)的字線交叉點(diǎn)處的NOR flash單元;另一條位線作為負(fù)輸出線,將卷積核矩陣中的負(fù)元素按位對(duì)應(yīng)寫(xiě)入該位線的NOR flash單元中,該位線連入運(yùn)算放大器的負(fù)輸入端,如圖3所示,將f1,1寫(xiě)入到與y1,1對(duì)應(yīng)的運(yùn)算放大器“-”端相連的位線和V22對(duì)應(yīng)的字線交叉點(diǎn)處的NOR flash單元,這樣運(yùn)算放大器的輸出與正負(fù)電流的加和成正比,可以實(shí)現(xiàn)實(shí)數(shù)域的卷積核的計(jì)算。

對(duì)于本發(fā)明實(shí)施例中,采用Roberts算子作為卷積核矩陣進(jìn)行計(jì)算時(shí)輸出矩陣中元素yi,j可由公式y(tǒng)i,j=xi,j-xi+1,j+1計(jì)算得到。

S2:輸入矩陣的元素轉(zhuǎn)換成電壓施加在NOR flash單元的柵端,同時(shí)在源端施加一個(gè)驅(qū)動(dòng)電壓,NOR flash單元的漏端輸出電流;

本發(fā)明實(shí)施例中,輸入矩陣采用5×5大小的矩陣,各元素用xi,j表示,將輸入矩陣轉(zhuǎn)換成為電壓值并通過(guò)字線輸入到如圖3所示的NOR flash單元的柵端,元素xi,j對(duì)應(yīng)輸入電壓的大小用Vij表示。

作乘法運(yùn)算時(shí),將輸入矩陣一維展開(kāi),分別將大小為V11到V55的25個(gè)代表輸入矩陣元素的電壓輸入到25條互相平行的字線上,如果輸入矩陣元素為1,Vij則取為(Vth_high+Vth_low)/2;如果輸入矩陣元素為0,Vij則為0。

同時(shí)在公共源端處施加驅(qū)動(dòng)電壓VS,通過(guò)NOR flash單元輸出電流的大小判斷運(yùn)算結(jié)果,如果乘數(shù)為1或者-1,即NOR flash單元的閾值電壓為低閾值電壓Vth_low,同時(shí)被乘數(shù)為1,即Vij為(Vth_high+Vth_low)/2,則NOR flash單元處于開(kāi)啟狀態(tài),漏端的輸出電流較大,表示輸出結(jié)果為1或者-1;對(duì)于乘數(shù)為0或被乘數(shù)為0的情況,NOR flash單元處于關(guān)斷狀態(tài),漏端的輸出電流較小,表示輸出結(jié)果為0。

S3:由NOR flash單元漏端的輸出電流得到卷積運(yùn)算結(jié)果。

NOR flash單元漏端的輸出電流經(jīng)位線匯集至運(yùn)算放大器,運(yùn)算放大器輸出端的值構(gòu)成輸出矩陣,得到卷積運(yùn)算結(jié)果。

利用運(yùn)算放大器搜集來(lái)自輸出矩陣元素y1,1對(duì)應(yīng)的正負(fù)兩列位線的電流值,正的卷積核元素所在列上的NOR flash單元輸出的電流輸入到運(yùn)算放大器的“+”端,負(fù)的卷積核元素所在列上的NOR flash單元輸出的電流輸入到運(yùn)算放大器的“-”端,放大器輸出端的值構(gòu)成輸出矩陣。對(duì)于輸出矩陣的y1,1,其值為:x1,1·f2,2+x1,2·f2,1+x2,1·f1,2+x2,2·f1,1,其中f1,1=-1,f1,2=0,f2,1=0,f2,2=1,因此輸出端y11對(duì)應(yīng)的運(yùn)算放大器“+”端相連的位線和V11對(duì)應(yīng)的字線交叉點(diǎn)處的NOR flash單元寫(xiě)入到Vth_low狀態(tài),為敘述簡(jiǎn)單,此單元定義為1單元;與輸出y1,1的放大器“-”端相連的位線和V22輸入的字線交叉點(diǎn)處設(shè)置的NOR flash單元寫(xiě)入到Vth_low狀態(tài),此單元定義為2單元;其他與輸出y1,1的放大器相連的NORflash單元寫(xiě)入到Vth_high狀態(tài)。在卷積運(yùn)算過(guò)程,由于代表輸入矩陣的輸入電壓要不為0,要不為(Vth_high+Vth_low)/2,因此除1,2單元外,其他與輸出y1,1的放大器相連的單元始終處于關(guān)閉狀態(tài),單元1,2根據(jù)輸入矩陣中x11,x22的值決定是否開(kāi)啟。如果x1,1或x2,2的值為1,則對(duì)應(yīng)單元1/2開(kāi)啟;如果x1,1或x2,2的值為0,則對(duì)應(yīng)單元1/2關(guān)閉。根據(jù)電流差分電流放大器的原理,則其輸出y1,1可以表示為x1,1·f2,2+x1,2·f2,1+x2,1·f1,2+x2,2·f1,1,其中f1,1=-1,f1,2=0,f2,1=0,f2,2=1,實(shí)現(xiàn)了卷積運(yùn)算。對(duì)于輸出矩陣中的其他元素原理是一樣的,可得到y(tǒng)1,1到y(tǒng)4,4,將輸出矩陣元素編碼排列即可得到如圖1所示的輸出矩陣。

在實(shí)際場(chǎng)景應(yīng)用中,需要做同樣卷積運(yùn)算的矩陣很多,此時(shí)在一次矩陣卷積運(yùn)算完成了,只需要不斷地將需要作卷積計(jì)算的矩陣輸入即可,無(wú)須再輸入卷積核。當(dāng)需要對(duì)矩陣做不同類(lèi)型卷積運(yùn)算再改寫(xiě)卷積核。如果在實(shí)際場(chǎng)景應(yīng)用中,需要對(duì)同一個(gè)矩陣作不同的卷積運(yùn)算,可以采用多個(gè)NOR flash陣列寫(xiě)入對(duì)應(yīng)的卷積核,然后同時(shí)輸入運(yùn)算矩陣和輸出運(yùn)算結(jié)果,實(shí)現(xiàn)并行計(jì)算,進(jìn)一步提高運(yùn)算效率。

以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1