本發(fā)明涉及半導(dǎo)體集成電路及其制造技術(shù)領(lǐng)域,具體涉及一種實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)(NOR Flash)及工作方法。
背景技術(shù):
卷積運(yùn)算作為一種線性運(yùn)算,在信號和系統(tǒng)方面占據(jù)非常重要的地位,在圖像濾波以及特征提取中更是得到了廣泛的應(yīng)用。卷積運(yùn)算實(shí)際上是一種加權(quán)求和的過程,為了在硬件上更快地進(jìn)行卷積運(yùn)算,人們提出了垂直交叉陣列結(jié)構(gòu)。垂直交叉陣列結(jié)構(gòu)不僅具有制作簡單,成本低,集成密度大,易于三維集成等優(yōu)點(diǎn),同時(shí)其獨(dú)特的結(jié)構(gòu)還適用于進(jìn)行并行計(jì)算。但是垂直交叉陣列結(jié)構(gòu)目前主要是基于存儲器(如阻變存儲器,相變存儲器等)來構(gòu)建的,而這些存儲器如阻變存儲器中還高低阻電壓漲落過大等問題,距離實(shí)際生產(chǎn)應(yīng)用尚存在一定的距離。
技術(shù)實(shí)現(xiàn)要素:
(一)要解決的技術(shù)問題
本發(fā)明的目的在于提供一種實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)及工作方法,以解決上述的至少一項(xiàng)技術(shù)問題。
(二)技術(shù)方案
本發(fā)明提供了一種實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng),用于對輸入圖像進(jìn)行卷積處理,包括:
輸入模塊、編碼型閃存陣列、控制器、字線控制單元、位線控制單元和輸出模塊;其中,
所述輸入模塊,用于將輸入圖像輸出至所述編碼型閃存陣列;
所述編碼型閃存陣列,用于對輸入圖像的m×m輸入圖像矩陣和K個(gè)n×n卷積核進(jìn)行卷積的計(jì)算,所述K為正整數(shù),m、n為整數(shù),且m大于n:
所述字線控制單元與控制器和字線相連,用于控制字線;
所述位線控制單元與控制器和位線相連,用于控制位線;
所述輸出模塊,用于處理卷積處理后的結(jié)果,并輸出卷積處理后的圖像;
所述控制器,用于控制字線控制單元、位線控制單元和輸出模塊,將卷積核輸出至編碼型閃存陣列。
優(yōu)選地,所述編碼型閃存陣列包含:
陣列放置的2Km2(m-n+1)2個(gè)編碼型閃存;
m2條沿第一方向延伸的位線,用于連接各編碼型閃存的漏端,以及施加輸入電壓;
2K(m-n+1)2條沿與第一方向垂直的第二方向延伸的字線,用于連接各編碼型閃存的柵端,以及連接輸出模塊;
2K(m-n+1)2條沿第一方向延伸的引線,用于連接各編碼型閃存的源端,以及輸入驅(qū)動(dòng)電壓。
優(yōu)選地,所述編碼型閃存為半浮柵晶體管或者電荷捕獲閃存。
優(yōu)選地,所述卷積核為一階梯度算子,所述一階梯度算子可以為羅伯特(Roberts)算子和普利威特(Prewitt)算子。
優(yōu)選地,所述輸出模塊包含K(m-n+1)2個(gè)運(yùn)算放大器,每個(gè)運(yùn)算放大器的正輸入端和負(fù)輸入端分別與每兩條相鄰字線相連,其中與正輸入端相連的字線上的編碼型閃存存儲卷積核中的正位置點(diǎn);與負(fù)輸入端相連的字線上的編碼型閃存存儲卷積核中的負(fù)位置點(diǎn)的絕對值;且每條字線只與一個(gè)運(yùn)算放大器相連接。
優(yōu)選地,所述編碼型閃存處于擦除狀態(tài)時(shí),閾值電壓為Vth_low;
所述編碼型閃存處于編程狀態(tài)時(shí),閾值電壓為Vth_high,其中Vth_low小于Vth_high,且字線上的電壓為(Vth_high+Vth_low)/2。
基于同一發(fā)明構(gòu)思,本發(fā)明還提供了一種實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)的工作方法,包含以下步驟:
S1、將存儲在編碼型閃存陣列中的K個(gè)n×n卷積核旋轉(zhuǎn)180°,,所述K為正整數(shù),n為整數(shù);
S2、將輸入圖像的m×m輸入圖像矩陣的像素點(diǎn)轉(zhuǎn)化成輸入電壓,與旋轉(zhuǎn)后的卷積核進(jìn)行卷積處理,得到各編碼型閃存的電流值并整合,其中m為整數(shù),且m大于n;
S3、將整合后的電流值轉(zhuǎn)化成(m-n+1)×(m-n+1)輸出圖像矩陣,并將所述圖像矩陣轉(zhuǎn)化成輸出圖像。
優(yōu)選地,所述步驟S2中,當(dāng)編碼型閃存處于編程狀態(tài)時(shí),編碼型閃存的閾值電壓為Vth_high,該編碼型閃存無輸出電流;當(dāng)編碼型閃存處于擦除狀態(tài)時(shí),編碼型閃存的閾值電壓為Vth_low,當(dāng)該編碼型閃存的源端加驅(qū)動(dòng)電壓時(shí),該編碼型閃存有輸出電流;當(dāng)源端不加驅(qū)動(dòng)電壓時(shí),該編碼型閃存無輸出電流。
優(yōu)選地,所述輸入電壓為所述輸入圖像矩陣的像素點(diǎn)與預(yù)設(shè)電壓V的乘積。
優(yōu)選地,所述整合后的電流值為所述輸入圖像矩陣的像素點(diǎn)與所述卷積核的對應(yīng)位置點(diǎn)卷積的結(jié)果。
(三)有益效果
本發(fā)明基于編碼型閃存(NOR Flash),采用垂直交叉陣列結(jié)構(gòu),實(shí)現(xiàn)圖像的卷積運(yùn)算,實(shí)現(xiàn)了圖像卷積在硬件中的并行高效運(yùn)算。同時(shí)本發(fā)明的系統(tǒng)具有存儲卷積核、計(jì)算輸入卷積的功能,實(shí)現(xiàn)了存儲計(jì)算一體化。此外本發(fā)明避免了現(xiàn)有的存儲器高低阻電壓漲落過大等問題,具有實(shí)際生產(chǎn)應(yīng)用的可行性。
附圖說明
圖1為本發(fā)明實(shí)施例的實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例的工作方法步驟示意圖;
圖3為本發(fā)明實(shí)施例輸出多個(gè)特征圖像的NOR Flash陣列的電路示意圖;
圖4為本發(fā)明實(shí)施例的矩陣卷積原理示意圖;
圖5為實(shí)現(xiàn)圖4卷積運(yùn)算的NOR Flash陣列的具體電路示意圖。
具體實(shí)施方式
為了能夠讓卷積運(yùn)算在硬件上得到高效實(shí)現(xiàn),本發(fā)明提供一種實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)及工作方法,NOR Flash單元可以通過編程(PROGRAM)/擦除(ERASE)操作來分別得到高/低閾值電壓,并借此來區(qū)分不同的邏輯值。當(dāng)進(jìn)行PROGRAM操作時(shí),在隧穿的過程中會(huì)在浮柵層中引入可動(dòng)電荷,此時(shí)會(huì)造成閾值電壓上升,而當(dāng)進(jìn)行ERASE操作時(shí),會(huì)擦除在隧穿過程中引入的可動(dòng)電荷,此閾值電壓下降。在所提出的卷積運(yùn)算方法體系中,高低不同的閾值電壓作為信息的輸入以及計(jì)算和存儲的變量,每一行的電流作為輸出,脈沖電壓信號觸發(fā)卷積運(yùn)算。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明作進(jìn)一步的詳細(xì)說明。
圖1為本發(fā)明實(shí)施例的實(shí)現(xiàn)圖像卷積的編碼型閃存系統(tǒng)結(jié)構(gòu)示意圖,如圖1所示,該系統(tǒng)包含輸入模塊、編碼型閃存陣列、控制器、字線控制單元、位線控制單元和輸出模塊。
其中,所述輸入模塊,用于將輸入圖像輸出至所述編碼型閃存陣列。
所述編碼型閃存陣列,用于對輸入圖像的m×m輸入圖像矩陣和K個(gè)存儲在編碼型閃存陣列的n×n卷積核進(jìn)行卷積的計(jì)算,其中所述K為正整數(shù),m、n為整數(shù),且m大于n。所述卷積核為一階梯度算子,所述一階梯度算子可以為羅伯特算子和普利威特算子。
且所述編碼型閃存陣列包含:陣列放置的2Km2(m-n+1)2個(gè)編碼型閃存;m2條沿第一方向延伸的位線,用于連接各編碼型閃存的漏端,以及施加輸入電壓信號;2K(m-n+1)2條沿與第一方向垂直的第二方向延伸的字線,用于連接各編碼型閃存的柵端,以及連接輸出模塊;和2K(m-n+1)2條沿第一方向延伸的引線,用于連接各編碼型閃存的源端,以及輸入驅(qū)動(dòng)電壓Vg。
所述編碼型閃存可以為半浮柵晶體管或者電荷捕獲閃存。所述編碼型閃存處于擦除狀態(tài)時(shí),閾值電壓為Vth_low;所述編碼型閃存處于編程狀態(tài)時(shí),閾值電壓為Vth_high,其中Vth_low小于Vth_high,且字線上的電壓為(Vth_high+Vth_low)/2。
所述字線控制單元與控制器和字線相連,用于控制字線;所述位線控制單元與控制器和位線相連,用于控制位線;所述輸出模塊,用于處理卷積處理后的結(jié)果,并輸出卷積處理后的圖像。且所述輸出模塊包含K(m-n+1)2個(gè)運(yùn)算放大器,每個(gè)運(yùn)算放大器的正輸入端和負(fù)輸入端分別與每兩條相鄰字線相連,其中與正輸入端相連的字線上的編碼型閃存存儲卷積核中的正位置點(diǎn);與負(fù)輸入端相連的字線上的編碼型閃存存儲卷積核中的負(fù)位置點(diǎn)的絕對值;且每條字線只與一個(gè)運(yùn)算放大器相連接。
所述控制器,用于控制字線控制單元、位線控制單元和輸出模塊,將卷積核輸出至編碼型閃存陣列。
具體的實(shí)現(xiàn)方式為:在開始確定卷積核之后,首先通過控制器控制字線控制單元、位線控制單元以及輸出模塊來對NOR Flash陣列進(jìn)行擦除以及編程操作將卷積核映射到NOR Flash結(jié)構(gòu)中。在NOR Flash結(jié)構(gòu)中存儲上了卷積核的信息后,通過控制器控制字線控制單元和位線控制單元將輸入圖像對應(yīng)的輸入電壓通過位線輸入到NOR Flash結(jié)構(gòu)中,NOR Flash結(jié)構(gòu)中字線輸出的電流經(jīng)過輸出模塊中運(yùn)算放大器的處理得到輸出圖像。
圖2為本發(fā)明實(shí)施例的工作方法步驟示意圖,如圖2所示,所述方法包括:
S1、將存儲在編碼型閃存陣列中的K個(gè)n×n卷積核旋轉(zhuǎn)180°,其中n為整數(shù),所述K為正整數(shù)。
S2、將輸入圖像的m×m輸入圖像矩陣的像素點(diǎn)轉(zhuǎn)化成輸入電壓,與旋轉(zhuǎn)后的卷積核進(jìn)行卷積處理,得到各編碼型閃存的電流值并整合。其中,m為整數(shù),且m大于n。
其中,當(dāng)編碼型閃存處于編程狀態(tài)時(shí),編碼型閃存的閾值電壓為Vth_high,該編碼型閃存無輸出電流;當(dāng)編碼型閃存處于擦除狀態(tài)時(shí),編碼型閃存的閾值電壓為Vth_low,當(dāng)該編碼型閃存的源端加驅(qū)動(dòng)電壓Vg時(shí),該編碼型閃存有輸出電流;當(dāng)源端不加驅(qū)動(dòng)電壓Vg時(shí),該編碼型閃存無輸出電流。所述輸入電壓為所述輸入圖像矩陣的像素點(diǎn)與預(yù)設(shè)電壓V的乘積。
S3、將整合后的電流值轉(zhuǎn)化成(m-n+1)×(m-n+1)輸出圖像矩陣,并將所述圖像矩陣轉(zhuǎn)化成輸出圖像,其中,所述整合后的電流值為所述輸入圖像矩陣的像素點(diǎn)與所述卷積核的對應(yīng)位置點(diǎn)卷積的結(jié)果。
在實(shí)際應(yīng)用中,往往需要得到一個(gè)圖像對應(yīng)的不同特征輸出圖像,通過選取不同的卷積核可以實(shí)現(xiàn)一個(gè)圖像對應(yīng)的不同特征輸出圖像。圖3為本發(fā)明實(shí)施例輸出多個(gè)特征圖像的NOR Flash陣列的電路示意圖,如圖3所示,NOR Flash中有三種相互平行的線,其中包含:互相平行的多條位線,這些位線與NOR Flash單元的漏端相連;互相平行的多條字線,這些字線連接著NOR Flash單元的柵端,而由同一條字線連接的NOR Flash單元的源端互相連接到一起并通過一條引線引出,這些引線也是互相平行的。由于卷積核中通常具有負(fù)數(shù),因此對于一次卷積操作,我們需要兩排互相平行的NOR Flash單元,這兩排單元中每一排的源端接入驅(qū)動(dòng)電壓Vg,每一排的字線分別連接到運(yùn)算放大器的兩個(gè)輸入端,通過電流差分來實(shí)現(xiàn)負(fù)值的運(yùn)算。此時(shí),對應(yīng)于一個(gè)m×m的輸入圖像以及n×n卷積核(m>n),如果需要一次輸出K個(gè)特征圖像,則需要K個(gè)卷積核,K為正整數(shù)。在本實(shí)施例中,編碼型閃存陣列包括:陣列放置的2Km2(m-n+1)2個(gè)編碼型閃存,m2列連接NOR Flash漏端的位線,2K(m-n+1)2行連接NOR Flash柵端的字線和2K(m-n+1)2行連接NOR Flash源端的引線,同時(shí)還需要K(m-n+1)2個(gè)運(yùn)算放大器來實(shí)現(xiàn)。此時(shí),輸入圖像的m×m輸入圖像矩陣中的像素點(diǎn)用xi,j表示,其中i,j均為大于等于1且小于等于m的整數(shù),有K個(gè)n×n卷積核,卷積核中各位置點(diǎn)用fa,b表示,其中,a,b均為大于等于1且小于等于m的整數(shù),輸出圖像矩陣的像素點(diǎn)用yu,v表示,其中u,v均為大于等于1且小于等于K(m-n+1)的整數(shù)。
圖4為本發(fā)明實(shí)施例的矩陣卷積原理示意圖,如圖4所示,一個(gè)3×3大小的圖像經(jīng)過一個(gè)2×2大小的卷積核處理之后得到的2×2大小的輸出圖像。首先要對卷積核進(jìn)行旋轉(zhuǎn)180度操作,再與輸入圖像矩陣中2×2大小的部分進(jìn)行對位相乘并累加之后得到運(yùn)算結(jié)果,此時(shí)會(huì)得到四個(gè)輸出結(jié)果,因此輸出矩陣的大小為2×2。對于一個(gè)m×m大小規(guī)模的圖像,經(jīng)由一個(gè)n×n(m>n)大小規(guī)模的卷積核進(jìn)行卷積操作之后得到的輸出圖像大小為(m-n+1)×(m-n+1)規(guī)模。經(jīng)過卷積核進(jìn)行卷積操作之后,可以對原圖像的特征進(jìn)行提取,從而將原來大量的不同圖像通過某些具體的特征進(jìn)行分類,進(jìn)而降低后續(xù)圖像處理信息的計(jì)算量。
圖5為實(shí)現(xiàn)圖4卷積運(yùn)算的NOR Flash陣列的具體電路示意圖,如圖5所示,在本發(fā)明實(shí)施例中,選擇Roberts算子作為卷積核,此時(shí)f1,1=-1,f1,2=0,f2,1=0,f2,2=1。輸出圖像矩陣中的像素點(diǎn)yu,v可由公式y(tǒng)u,v=xi,j·f2,2+xi,j+1·f2,1+xi+1,j·f1,2+xi+1,j+1·f1,1計(jì)算得到。定義NOR Flash單元處于邏輯“0”時(shí)其閾值電壓為高電壓Vth_high,處于邏輯“1”時(shí),其閾值電壓為低電壓Vth_low(Vth_low<Vth_high),且在各字線上所加電壓均為(Vth_high+Vth_low)/2。此時(shí)閾值電壓為Vth_high的NOR Flash單元無論源端是否加驅(qū)動(dòng)電壓Vg,該NOR Flash單元始終無法開啟,,而閾值電壓為Vth_low的NOR Flash單元當(dāng)源端加驅(qū)動(dòng)電壓Vg時(shí),由于該NOR Flash單元已經(jīng)開啟,因此會(huì)有相應(yīng)的電流流過。
通過對每條位線施加輸入電壓,對每一列位線上的NOR Flash結(jié)構(gòu)的漏斷施加輸入電壓,當(dāng)輸入圖像矩陣的像素點(diǎn)xi,j≠0時(shí),輸入電壓為xi,j·V,當(dāng)xi,j=0時(shí),輸入零電平電壓信號,其中V為預(yù)設(shè)電壓。對應(yīng)于負(fù)數(shù)運(yùn)算,本發(fā)明提出的NOR Flash結(jié)構(gòu)中利用兩行電流相減的方式來實(shí)現(xiàn)。因此對應(yīng)于實(shí)現(xiàn)一個(gè)對應(yīng)于本實(shí)施例的卷積運(yùn)算,需要一個(gè)8行9列的NOR Flash結(jié)構(gòu)來存儲卷積核數(shù)據(jù),以及四個(gè)運(yùn)算放大器。其中9列位線上從左到右依次加上輸入圖像矩陣的像素點(diǎn)對應(yīng)的輸入電壓,4行字線上均施加(Vth_high+Vth_low)/2電壓信號,4行引線上均施加驅(qū)動(dòng)電壓Vg。對應(yīng)于輸出圖像中y1,1像素點(diǎn),y1,1=x1,1·1+x1,2·0+x3,1·0+x2,2·(-1),對應(yīng)到電路實(shí)現(xiàn)中是將NOR Flash結(jié)構(gòu)中第一行第一列的NOR Flash單元閾值電壓變?yōu)閂th_low,第二行第五列閾值電壓變?yōu)閂th_low,這兩行其他單元的閾值電壓均為高閾值電壓。這樣第一行源端流過的電流對應(yīng)為x1,1·1+x1,2·0+x3,1·0+x2,2·0,第二行流過的電流對應(yīng)為x1,1·0+x1,2·0+x3,1·0+x2,2·1,兩行相減并經(jīng)過運(yùn)算放大器放大所得到的結(jié)果對應(yīng)為y1,1=x1,1·1+x1,2·0+x3,1·0+x2,2·(-1)。依此類推,則其余各相鄰兩行電流相減可依次得到y(tǒng)1,2,y2,1,y2,2。因此對于本發(fā)明例中,對應(yīng)于像素點(diǎn)yu,v,可由公式y(tǒng)u,v=xi,j-xi+1,j+1計(jì)算得到。
以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。