实现图像卷积的编码型闪存系统及工作方法与流程

文档序号:12674765阅读:585来源:国知局
实现图像卷积的编码型闪存系统及工作方法与流程

本发明涉及半导体集成电路及其制造技术领域,具体涉及一种实现图像卷积的编码型闪存系统(NOR Flash)及工作方法。



背景技术:

卷积运算作为一种线性运算,在信号和系统方面占据非常重要的地位,在图像滤波以及特征提取中更是得到了广泛的应用。卷积运算实际上是一种加权求和的过程,为了在硬件上更快地进行卷积运算,人们提出了垂直交叉阵列结构。垂直交叉阵列结构不仅具有制作简单,成本低,集成密度大,易于三维集成等优点,同时其独特的结构还适用于进行并行计算。但是垂直交叉阵列结构目前主要是基于存储器(如阻变存储器,相变存储器等)来构建的,而这些存储器如阻变存储器中还高低阻电压涨落过大等问题,距离实际生产应用尚存在一定的距离。



技术实现要素:

(一)要解决的技术问题

本发明的目的在于提供一种实现图像卷积的编码型闪存系统及工作方法,以解决上述的至少一项技术问题。

(二)技术方案

本发明提供了一种实现图像卷积的编码型闪存系统,用于对输入图像进行卷积处理,包括:

输入模块、编码型闪存阵列、控制器、字线控制单元、位线控制单元和输出模块;其中,

所述输入模块,用于将输入图像输出至所述编码型闪存阵列;

所述编码型闪存阵列,用于对输入图像的m×m输入图像矩阵和K个n×n卷积核进行卷积的计算,所述K为正整数,m、n为整数,且m大于n:

所述字线控制单元与控制器和字线相连,用于控制字线;

所述位线控制单元与控制器和位线相连,用于控制位线;

所述输出模块,用于处理卷积处理后的结果,并输出卷积处理后的图像;

所述控制器,用于控制字线控制单元、位线控制单元和输出模块,将卷积核输出至编码型闪存阵列。

优选地,所述编码型闪存阵列包含:

阵列放置的2Km2(m-n+1)2个编码型闪存;

m2条沿第一方向延伸的位线,用于连接各编码型闪存的漏端,以及施加输入电压;

2K(m-n+1)2条沿与第一方向垂直的第二方向延伸的字线,用于连接各编码型闪存的栅端,以及连接输出模块;

2K(m-n+1)2条沿第一方向延伸的引线,用于连接各编码型闪存的源端,以及输入驱动电压。

优选地,所述编码型闪存为半浮栅晶体管或者电荷捕获闪存。

优选地,所述卷积核为一阶梯度算子,所述一阶梯度算子可以为罗伯特(Roberts)算子和普利威特(Prewitt)算子。

优选地,所述输出模块包含K(m-n+1)2个运算放大器,每个运算放大器的正输入端和负输入端分别与每两条相邻字线相连,其中与正输入端相连的字线上的编码型闪存存储卷积核中的正位置点;与负输入端相连的字线上的编码型闪存存储卷积核中的负位置点的绝对值;且每条字线只与一个运算放大器相连接。

优选地,所述编码型闪存处于擦除状态时,阈值电压为Vth_low

所述编码型闪存处于编程状态时,阈值电压为Vth_high,其中Vth_low小于Vth_high,且字线上的电压为(Vth_high+Vth_low)/2。

基于同一发明构思,本发明还提供了一种实现图像卷积的编码型闪存系统的工作方法,包含以下步骤:

S1、将存储在编码型闪存阵列中的K个n×n卷积核旋转180°,,所述K为正整数,n为整数;

S2、将输入图像的m×m输入图像矩阵的像素点转化成输入电压,与旋转后的卷积核进行卷积处理,得到各编码型闪存的电流值并整合,其中m为整数,且m大于n;

S3、将整合后的电流值转化成(m-n+1)×(m-n+1)输出图像矩阵,并将所述图像矩阵转化成输出图像。

优选地,所述步骤S2中,当编码型闪存处于编程状态时,编码型闪存的阈值电压为Vth_high,该编码型闪存无输出电流;当编码型闪存处于擦除状态时,编码型闪存的阈值电压为Vth_low,当该编码型闪存的源端加驱动电压时,该编码型闪存有输出电流;当源端不加驱动电压时,该编码型闪存无输出电流。

优选地,所述输入电压为所述输入图像矩阵的像素点与预设电压V的乘积。

优选地,所述整合后的电流值为所述输入图像矩阵的像素点与所述卷积核的对应位置点卷积的结果。

(三)有益效果

本发明基于编码型闪存(NOR Flash),采用垂直交叉阵列结构,实现图像的卷积运算,实现了图像卷积在硬件中的并行高效运算。同时本发明的系统具有存储卷积核、计算输入卷积的功能,实现了存储计算一体化。此外本发明避免了现有的存储器高低阻电压涨落过大等问题,具有实际生产应用的可行性。

附图说明

图1为本发明实施例的实现图像卷积的编码型闪存系统结构示意图;

图2为本发明实施例的工作方法步骤示意图;

图3为本发明实施例输出多个特征图像的NOR Flash阵列的电路示意图;

图4为本发明实施例的矩阵卷积原理示意图;

图5为实现图4卷积运算的NOR Flash阵列的具体电路示意图。

具体实施方式

为了能够让卷积运算在硬件上得到高效实现,本发明提供一种实现图像卷积的编码型闪存系统及工作方法,NOR Flash单元可以通过编程(PROGRAM)/擦除(ERASE)操作来分别得到高/低阈值电压,并借此来区分不同的逻辑值。当进行PROGRAM操作时,在隧穿的过程中会在浮栅层中引入可动电荷,此时会造成阈值电压上升,而当进行ERASE操作时,会擦除在隧穿过程中引入的可动电荷,此阈值电压下降。在所提出的卷积运算方法体系中,高低不同的阈值电压作为信息的输入以及计算和存储的变量,每一行的电流作为输出,脉冲电压信号触发卷积运算。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

图1为本发明实施例的实现图像卷积的编码型闪存系统结构示意图,如图1所示,该系统包含输入模块、编码型闪存阵列、控制器、字线控制单元、位线控制单元和输出模块。

其中,所述输入模块,用于将输入图像输出至所述编码型闪存阵列。

所述编码型闪存阵列,用于对输入图像的m×m输入图像矩阵和K个存储在编码型闪存阵列的n×n卷积核进行卷积的计算,其中所述K为正整数,m、n为整数,且m大于n。所述卷积核为一阶梯度算子,所述一阶梯度算子可以为罗伯特算子和普利威特算子。

且所述编码型闪存阵列包含:阵列放置的2Km2(m-n+1)2个编码型闪存;m2条沿第一方向延伸的位线,用于连接各编码型闪存的漏端,以及施加输入电压信号;2K(m-n+1)2条沿与第一方向垂直的第二方向延伸的字线,用于连接各编码型闪存的栅端,以及连接输出模块;和2K(m-n+1)2条沿第一方向延伸的引线,用于连接各编码型闪存的源端,以及输入驱动电压Vg

所述编码型闪存可以为半浮栅晶体管或者电荷捕获闪存。所述编码型闪存处于擦除状态时,阈值电压为Vth_low;所述编码型闪存处于编程状态时,阈值电压为Vth_high,其中Vth_low小于Vth_high,且字线上的电压为(Vth_high+Vth_low)/2。

所述字线控制单元与控制器和字线相连,用于控制字线;所述位线控制单元与控制器和位线相连,用于控制位线;所述输出模块,用于处理卷积处理后的结果,并输出卷积处理后的图像。且所述输出模块包含K(m-n+1)2个运算放大器,每个运算放大器的正输入端和负输入端分别与每两条相邻字线相连,其中与正输入端相连的字线上的编码型闪存存储卷积核中的正位置点;与负输入端相连的字线上的编码型闪存存储卷积核中的负位置点的绝对值;且每条字线只与一个运算放大器相连接。

所述控制器,用于控制字线控制单元、位线控制单元和输出模块,将卷积核输出至编码型闪存阵列。

具体的实现方式为:在开始确定卷积核之后,首先通过控制器控制字线控制单元、位线控制单元以及输出模块来对NOR Flash阵列进行擦除以及编程操作将卷积核映射到NOR Flash结构中。在NOR Flash结构中存储上了卷积核的信息后,通过控制器控制字线控制单元和位线控制单元将输入图像对应的输入电压通过位线输入到NOR Flash结构中,NOR Flash结构中字线输出的电流经过输出模块中运算放大器的处理得到输出图像。

图2为本发明实施例的工作方法步骤示意图,如图2所示,所述方法包括:

S1、将存储在编码型闪存阵列中的K个n×n卷积核旋转180°,其中n为整数,所述K为正整数。

S2、将输入图像的m×m输入图像矩阵的像素点转化成输入电压,与旋转后的卷积核进行卷积处理,得到各编码型闪存的电流值并整合。其中,m为整数,且m大于n。

其中,当编码型闪存处于编程状态时,编码型闪存的阈值电压为Vth_high,该编码型闪存无输出电流;当编码型闪存处于擦除状态时,编码型闪存的阈值电压为Vth_low,当该编码型闪存的源端加驱动电压Vg时,该编码型闪存有输出电流;当源端不加驱动电压Vg时,该编码型闪存无输出电流。所述输入电压为所述输入图像矩阵的像素点与预设电压V的乘积。

S3、将整合后的电流值转化成(m-n+1)×(m-n+1)输出图像矩阵,并将所述图像矩阵转化成输出图像,其中,所述整合后的电流值为所述输入图像矩阵的像素点与所述卷积核的对应位置点卷积的结果。

在实际应用中,往往需要得到一个图像对应的不同特征输出图像,通过选取不同的卷积核可以实现一个图像对应的不同特征输出图像。图3为本发明实施例输出多个特征图像的NOR Flash阵列的电路示意图,如图3所示,NOR Flash中有三种相互平行的线,其中包含:互相平行的多条位线,这些位线与NOR Flash单元的漏端相连;互相平行的多条字线,这些字线连接着NOR Flash单元的栅端,而由同一条字线连接的NOR Flash单元的源端互相连接到一起并通过一条引线引出,这些引线也是互相平行的。由于卷积核中通常具有负数,因此对于一次卷积操作,我们需要两排互相平行的NOR Flash单元,这两排单元中每一排的源端接入驱动电压Vg,每一排的字线分别连接到运算放大器的两个输入端,通过电流差分来实现负值的运算。此时,对应于一个m×m的输入图像以及n×n卷积核(m>n),如果需要一次输出K个特征图像,则需要K个卷积核,K为正整数。在本实施例中,编码型闪存阵列包括:阵列放置的2Km2(m-n+1)2个编码型闪存,m2列连接NOR Flash漏端的位线,2K(m-n+1)2行连接NOR Flash栅端的字线和2K(m-n+1)2行连接NOR Flash源端的引线,同时还需要K(m-n+1)2个运算放大器来实现。此时,输入图像的m×m输入图像矩阵中的像素点用xi,j表示,其中i,j均为大于等于1且小于等于m的整数,有K个n×n卷积核,卷积核中各位置点用fa,b表示,其中,a,b均为大于等于1且小于等于m的整数,输出图像矩阵的像素点用yu,v表示,其中u,v均为大于等于1且小于等于K(m-n+1)的整数。

图4为本发明实施例的矩阵卷积原理示意图,如图4所示,一个3×3大小的图像经过一个2×2大小的卷积核处理之后得到的2×2大小的输出图像。首先要对卷积核进行旋转180度操作,再与输入图像矩阵中2×2大小的部分进行对位相乘并累加之后得到运算结果,此时会得到四个输出结果,因此输出矩阵的大小为2×2。对于一个m×m大小规模的图像,经由一个n×n(m>n)大小规模的卷积核进行卷积操作之后得到的输出图像大小为(m-n+1)×(m-n+1)规模。经过卷积核进行卷积操作之后,可以对原图像的特征进行提取,从而将原来大量的不同图像通过某些具体的特征进行分类,进而降低后续图像处理信息的计算量。

图5为实现图4卷积运算的NOR Flash阵列的具体电路示意图,如图5所示,在本发明实施例中,选择Roberts算子作为卷积核,此时f1,1=-1,f1,2=0,f2,1=0,f2,2=1。输出图像矩阵中的像素点yu,v可由公式yu,v=xi,j·f2,2+xi,j+1·f2,1+xi+1,j·f1,2+xi+1,j+1·f1,1计算得到。定义NOR Flash单元处于逻辑“0”时其阈值电压为高电压Vth_high,处于逻辑“1”时,其阈值电压为低电压Vth_low(Vth_low<Vth_high),且在各字线上所加电压均为(Vth_high+Vth_low)/2。此时阈值电压为Vth_high的NOR Flash单元无论源端是否加驱动电压Vg,该NOR Flash单元始终无法开启,,而阈值电压为Vth_low的NOR Flash单元当源端加驱动电压Vg时,由于该NOR Flash单元已经开启,因此会有相应的电流流过。

通过对每条位线施加输入电压,对每一列位线上的NOR Flash结构的漏断施加输入电压,当输入图像矩阵的像素点xi,j≠0时,输入电压为xi,j·V,当xi,j=0时,输入零电平电压信号,其中V为预设电压。对应于负数运算,本发明提出的NOR Flash结构中利用两行电流相减的方式来实现。因此对应于实现一个对应于本实施例的卷积运算,需要一个8行9列的NOR Flash结构来存储卷积核数据,以及四个运算放大器。其中9列位线上从左到右依次加上输入图像矩阵的像素点对应的输入电压,4行字线上均施加(Vth_high+Vth_low)/2电压信号,4行引线上均施加驱动电压Vg。对应于输出图像中y1,1像素点,y1,1=x1,1·1+x1,2·0+x3,1·0+x2,2·(-1),对应到电路实现中是将NOR Flash结构中第一行第一列的NOR Flash单元阈值电压变为Vth_low,第二行第五列阈值电压变为Vth_low,这两行其他单元的阈值电压均为高阈值电压。这样第一行源端流过的电流对应为x1,1·1+x1,2·0+x3,1·0+x2,2·0,第二行流过的电流对应为x1,1·0+x1,2·0+x3,1·0+x2,2·1,两行相减并经过运算放大器放大所得到的结果对应为y1,1=x1,1·1+x1,2·0+x3,1·0+x2,2·(-1)。依此类推,则其余各相邻两行电流相减可依次得到y1,2,y2,1,y2,2。因此对于本发明例中,对应于像素点yu,v,可由公式yu,v=xi,j-xi+1,j+1计算得到。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1