基于阻变存储器件阵列实现并行卷积计算的设备和方法与流程

文档序号:12126095阅读:541来源:国知局
基于阻变存储器件阵列实现并行卷积计算的设备和方法与流程

本公开一般地涉及半导体集成电路及其制造技术领域,更具体地,涉及一种可以在阻变器件交叉阵列中通过在阵列中同一行(同一列)的电流求和功能实现对输入进行卷积计算的设备和方法。



背景技术:

卷积操作在图像处理中有着广泛的应用,例如图像去噪、特征提取、平滑、滤波、边缘检测、图像增强等。特别地,卷积操作在卷积神经网络(CNN)中具有关键作用,对输入图像的卷积操作是实现卷积神经网络特定功能的基础。作为目前应用十分广泛的人工神经网络算法,由于卷积神经网络具有并行性、分布式计算、自学习及自适应能力以及很强的鲁棒性和容错性等特点,在近些年来得到了科学家们广泛的研究关注。传统的实现卷积的方法主要是基于CMOS数字电路,利用图像处理芯片(GPU)、可编程门阵列(FPGA)等进行软件实现。这种实现方法需要巨大的硬件开销以及功耗。在硬件消耗以及功耗的限制下,传统的卷积实现方法难以完成大规模的并行卷积运算并且难以计算较大的卷积核的卷积结果;另外,传统的软件实现卷积方法基于冯诺依曼体系架构,其中运算部分和存储部分是分离的,所以需要大量的存储器件进行输入信息以及大量不同卷积核信息的存储。

在当前大数据和神经网络算法的快速发展的背景下,传统的基于软件的卷积实现方法在运算速度、能耗以及芯片面积等方面已经难以满足人们日渐增长的需要,急需发展出一个基于硬件的卷积实现方法。为了突破现有的技术限制,提出了一种基于阻变存储器的硬件实现卷积操作的架构及方法。利用阻变存储器件的阻值可调特性,该架构将电压信号作为输入信号、将阻变存储器的阻值作为卷积核信号,实现了计算/存储一体,大幅降低功耗,并且利用阻变存储器阵列可大规模集成的特点进行了并行扩展,实现了器件面积的大幅减小以及运算速度的大幅提升。



技术实现要素:

(一)要解决的技术问题

针对上述技术问题,本发明提供了一种基于阻变器件阵列的对输入矩阵进行卷积运算的架构,以及基于这种架构的卷积级联和具体操作方法。

(二)技术方案

本发明的目的是提供一种利用阻变器件(包括基于氧化物的阻变存储器RRAM、基于金属离子氧化还原的阻变存储器CBRAM、相变存储器PCM、磁阻存储器MRAM等依靠电阻变化进行信息存储的元器件)通过在阻变器件上的电压、电导关系硬件实现卷积运算、利用阻变器件阵列实现卷积并行运算的方法以及相应的体系结构。阻变器件的电阻值可以在两个不同的电阻值之间通过外加电压进行切换,称之为编程(program)/擦除(erase)(或者SET/RESET)。编程电压和擦除电压极性相反,存储的两个电阻值的高低阻态有明显的区别。并且低阻态在较大范围内具有可连续取值的特性,可以利用多个短脉冲电压来调节其具体阻值直到达到理想设定值。在本发明的体系架构中,高低不同的电平代表输入,即待卷积运算的矩阵;阻变存储器的阻值代表卷积核;输出电流和或与之成正比的输出电压代表矩阵点乘结果,即输入矩阵中相应元素的卷积结果;利用阻变存储器阵列实现卷积的并行运算。

根据本发明的一个方面,提出了一种基于阻变存储器件阵列实现并行卷积计算的设备,包括:阻变存储器件阵列、训练模块、输入模块、位线控制单元、字线控制单元、输出模块以及控制器;

所述阻变存储器件阵列,包括沿第一方向延伸的多条字线,沿与第一方向交叉的第二方向延伸的多条位线,以及设置于各位线和各字线的交叉点处的多个阻变运算存储子单元;

所述位线控制单元,其一端连接到位线,另一端连接到输入模块以及训练模块;

所述字线控制单元,其一端连接到字线,另一端连接输出模块或接地;

所述控制器,控制位线一端选通训练模块及字线一端选通地线,或控制位线一端选通输入模块及字线一端选通输出模块,用于控制输出模块中得到的不同卷积结果组合,并输出传递到下一级存储器或运算装置。

其中,所述的阻变运算存储子单元包括基于氧化物的阻变存储器RRAM、基于金属离子氧化还原的阻变存储器CBRAM、相变存储器PCM、磁阻存储器MRAM中的至少一个,所述阻变运算存储子单元依赖于电阻变化进行信息存储和运算。

其中,所述阻变运算存储子单元是单独的阻变器件或者是阻变器件和双向选择器件串联的结构。

其中,训练模块是信号发生器,用于生成一个连续的正脉冲或负脉冲。

其中,输入模块是信号发生器,用于发生一系列连续正电平。

其中,当控制器的触发信号为训练模式时,位线控制单元选通训练模块,字线控制单元选通地线,利用训练模块产生的脉冲信号对阻变存储子单元的电阻态进行训练,利用不同脉冲个数调整阻变存储子单元的电阻态,即电导值,使其正比于待计算的卷积核的值,即实现卷积核中元素的存储;卷积核中的正元素存储在阻变存储阵列的同一字线上,负元素存储在相邻的下一字线上,相邻两条字线共同实现一个卷积核的存储。

其中,当控制器的触发信号为运算模式时,位线控制单元选通输入模块,字线控制单元选通输出模块,输入模块产生与待进行卷积运算的输入矩阵成正比的电平信号,相邻两字线分别连接到同一输出模块的正输入端和负输入端,输出端的电压或电流信号即代表卷积计算的结果,实现对单个卷积的计算。

其中,在位线及字线方向进行扩展可进行多个卷积的并行计算,扩展方式如下:将待进行卷积运算的矩阵的所有元素均作为输入通过输入模块进行输入,位线的数目即等于输入矩阵所有元素的个数;在训练模式中,对于同一字线,对与输入矩阵的一个待卷积计算的区域相对应的位线交叉点上的阻变存储设备进行阻值调整,按位对应存储一个卷积核;对该字线上的其他阻变存储设备进行置高阻态操作;每两条字线输出一个卷积结果,字线的数目等于对整个输入矩阵做卷积计算后输出矩阵的元素个数的二倍。

其中,所述的基于阻变存储器件阵列实现并行卷积计算的设备,还包括对上述卷积运算进行级联或重构。

一种基于阻变存储器件阵列实现并行卷积计算的方法,其特征在于,包括如下步骤:

S101:对阻变存储器件阵列中阻变存储子单元的电阻态进行训练,利用不同脉冲个数调整阻变存储子单元的电阻态,使其正比于待计算的卷积核的值,产生卷积核矩阵;以及产生与待进行卷积运算的输入矩阵成正比的电平信号,产生输入矩阵,输入矩阵面积大于卷积核矩阵;

S102:实现卷积核矩阵的旋转180°,将旋转180°后的卷积核首先与输入矩阵的左上角部分重叠;

S103:计算该重叠部分的对应元素乘积并求和,作为第一个输出结果;

S104:旋转后的卷积核向x方向平移一位,继续计算重叠部分的乘积和作为下一个输出结果,直到x方向全部重叠过,则卷积核向y方向平移一位并平移到x方向的起始点进行计算,重复以上过程直至输入矩阵中的元素全被卷积核覆盖过。

(三)有益效果

在这种体系结构中,高低不同的电平作为输入信号,代表待计算卷积的输入矩阵;电阻值高低不同的电阻态作为卷积核,利用欧姆定律及阵列的电路结构直接实现矩阵对应位相乘并求和的操作。本发明中卷积核的存储与卷积的计算在同一阵列中,实现了计算与存储的一体化,大幅节省了硬件开销;并利用非挥发存储器的电压/电流/电阻关系硬件直接实现了卷积计算,利用阵列结构实现了卷积的并行,相比于传统的软件上计算卷积,一方面不需要复杂且重复的CMOS逻辑电路进行数学运算,大幅减小了功耗;另一方面大幅提高了运算速度,尤其是针对较大的卷积核情况;同时由于阻变存储器件在阵列结构中的高集成性以及可编程性,该结构非常适合做扩展以及卷积核的擦除及重写,提高了硬件的利用率。

附图说明

图1示出了本发明适用于的卷积计算的种类,即二维矩阵卷积计算,以及相应的计算流程示意图;

图2示出了本发明各个模块的组成以及模块间的相互关系示意图;

图3示出了由阻变器件组成的交叉阵列运算存储模块示意图;

图4示出了本发明在训练模式下调用的电路连接示意图;

图5示出了本发明在运算模式下调用的电路连接示意图,以及优选的输出模块具体电路;

图6示出了本发明具体地利用阻变器件阵列存储卷积核以完成并行计算的方法;

图7示出了本发明基于阻变存储器件阵列实现并行卷积计算方法的流程图。

具体实施方式

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

在附图中示出了根据本公开实例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种元件的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的元件。

本发明的目的是提供一种利用阻变器件(包括基于氧化物的阻变存储器RRAM,基于金属离子氧化还原的阻变存储器CBRAM、相变存储器PCM、磁阻存储器MRAM等依靠电阻变化进行信息存储的元器件)通过电压/电流/电阻关系实现二维矩阵的卷积计算操作、利用阻变器件阵列实现卷积的并行运算的方法以及相应的体系结构。阻变器件的电阻值可以在两个不同的电阻值之间通过外加电压进行切换,称之为编程(program)/擦除(erase)(或者置位(SET)/复位(RESET))编程电压和擦除的电压极性相反,低于编程电压和擦除电压的电压信号不会改变阻变器件的电阻值。存储的两个电阻值的高低阻态有明显的区别,高阻态与低阻态的比值可达到104~105,且低阻态在一定范围内可以连续取值。在这种体系结构中,输入电压作为待卷积计算的输入矩阵、电阻值高低不同的电阻态作为计算和存储的卷积核,输出电压(电流)作为计算结果。

附图1给出了本发明适用于的卷积计算种类以及计算方法。众所周知,卷积是一个广义的积分概念,在数字信号处理、概率论、图像处理等领域都有广泛的应用。本发明只适用于二维离散卷积的计算,主要应用于二维图像的处理以及卷积神经网络(CNN)。图1以一个5x5的输入矩阵、3x3的卷积核为例进行二维离散卷积计算的步骤说明,本实例只作为举例,实际应用中输入及卷积核矩阵可扩展成任意的m×n矩阵,前提是输入矩阵面积大于卷积核矩阵。在图1中,输入矩阵中的元素为x1~x25,卷积核元素为w1~w9,首先将卷积核矩阵旋转180°,然后将翻转后的卷积核首先与输入矩阵的左上角部分重叠,之后计算该重叠部分的对应元素乘积并求和,作为第一个输出结果,即输出矩阵中的元素Y1;之后翻转后的卷积核向x方向平移一位,继续计算重叠部分的乘积和作为下一个输出结果,直到x方向全部重叠过,则卷积核向y方向平移一位并平移到x方向的起始点进行计算,重复以上过程直至输入矩阵中的元素全被卷积核覆盖过。在本例中,为防止卷积核溢出,不计算输入矩阵最右列及最下行的元素的卷积结果,输入矩阵为5x5,卷积核为3x3,即输出矩阵为一4x4的矩阵。

附图2给出了本发明中各个模块的组成以及各模块间的相互关系。本发明的体系结构中包括:阻变存储器件阵列、训练模块、输入模块、控制器、输入控制单元、输出控制单元以及输出模块。其相互连接、控制关系如下:阻变存储器件阵列包含沿第一方向延伸的多条字线、沿与第一方向交叉的第二方向延伸的多条位线以及分别设置于各位线和各字线的交叉点处的多个基于阻变存储器件阵列实现并行卷积计算的子单元。每一条位线连接一个位线控制单元,位线控制单元的第一端连接到位线,而位线控制单元的另一端连接到输入模块以及训练模块,通过控制器给出的触发信号进行输入模块或训练模块的选通;每一条字线连接一个字线控制单元,字线控制单元的第一端连接到字线,而字线控制单元的另一端连接输出模块或地线,通过控制器给出的触发信号来选通接地或者接输出模块,分别对应着位线控制单元控制的输入模块及训练模块的连接。控制器同时与输入模块连接,通过触发信号控制输入模块在运算模式下给出输入信号。

基于电阻运算和传递的原理,阻变器件可以制备如附图3所示的交叉阵列。在交叉阵列中包含多条互相平行的多条位线、相互平行的多条字线以及位于字线和位线之间的基于阻变存储器件阵列实现并行卷积计算的子单元;基于阻变存储器件阵列实现并行卷积计算的子单元可以是单个阻变器件也可以是一个阻变器件和双向选择器件串联的结构。字线和位线相互垂直,在交叉阵列同一行和同一列的基于阻变存储器件阵列实现并行卷积计算的子单元可以直接构成运算单元,不同行不同列的子单元可以间接构成运算单元。

在具体应用本发明时,首先控制器给出信号,控制位线控制单元选通训练模块、控制字线控制单元选通接地,如附图4所示。对每个阻变存储单元的电阻值进行调整。训练模块为一个信号发生器,产生足够大的直流电压或多个电压脉冲,具体视应用的阻变存储单元的材料而定。通过不断的擦除、编程过程对阻变存储单元的电阻值进行调整直至符合理论设定值。如何得到理论设定值将在后文具体给出。将每个阻变存储单元的电阻值调整之后,即将卷积核存入阻变存储阵列后,即可进行运算,即控制器给出信号控制位线控制单元选通输入模块、控制字线控制单元选通输出模块,如附图5所示,并且控制器控制输入模块产生输入信号。输入模块为电压信号发生器,输入电压信号的大小与输入矩阵中元素的大小成正比关系。需要注意的是最大的输入电压不能大于阻变存储单元的编程/擦写电压,以防止运算过程改变已存入的卷积核大小。附图5同时给出了一个优选的输出模块具体电路结构图,输出模块可由一个输入端接固定电阻负载的差分放大器组成,该固定电阻的大小要求远小于阻变存储器的低阻态电阻,可取阻变存储器低阻态电阻的1/10。差分放大器的输出可以是电流信号也可以是电压信号,视级联的运算要求而定,差分放大器的放大倍数视具体应用而定。

附图6给出利用本发明进行并行卷积计算的方法以及具体的阻变存储单元的阻值设定。受篇幅所制,以3x3的输入矩阵、2x2的卷积核矩阵为例说明,如附图6a所示,输入为x1~x9,卷积核为w1~w4,输入与输入电压成正比,即Vi=xi卷积核则与阻变存储单元电阻成反比,即与其电导成正比,即Rj=1/w4-j(这里Ri对应w4-i是根据卷积定义,卷积核旋转所导致的)。根据欧姆定律有:Ii=Vi/Rj=xiw4-j,即阻变存储单元上的电流正比于输入矩阵中元素与旋转后的卷积核中对应的元素的乘积;利用电流的基尔霍夫定律,同一字线上流过的电流即为乘积和,即卷积和。在计算电阻设定值时,应首先测得阻变器件电阻的变化范围,尤其是其最低电阻值。令该最小电阻值与卷积核中的最大元素相对应,求出比值,再进行其他元素与电阻值的反比对应。这样本发明利用硬件的物理特性直接实现了乘积和的计算,即卷积计算,并且实现了在卷积核的存储位置直接计算,即存储计算一体化,相比于基于CMOS电路的软件计算,极大地减小了功耗及器件消耗。

更普遍地,对于卷积中存在负数的情况,例如w1,w2<0,可将两条字线接入一个差分放大器来实现实数域卷积核的计算,如图6b所示。具体规则如下:两条字线中的一条作为正输出线,将卷积核中的正元素按位对应写入该字线的阻变器件中,该字线连入差分放大器的正输入端;另一条字线作为负输出线,将卷积核中的负元素按位对应写入该字线的阻变器件中,该字线连入差分放大器的负输入端;这样差分放大器的输出与正负电流和的差成正比,完成了实数域的卷积核的计算。需要指出的是如果卷积核中元素均为正或均为负,一条字线即可输出一个卷积结果,根据需要的输出是电压或电流信号,输出模块可以是小电阻负载或电流放大器。

卷积的并行计算方式同时由附图6b给出示意。由于输入矩阵一般较卷积核矩阵大,计算一个卷积时输入矩阵只有一部分与卷积核进行对应位相乘并求和的运算。传统方法是利用时序信号,将输入矩阵分若干次输入,每次输入输入矩阵的一部分,是一种串行计算的方法。在本发明中,所有输入矩阵的元素同时正比地转化为电压信号施加在不同位线上,将参与运算的输入元素所对应位线与代表该卷积运算的字线的交叉点上的阻变存储单元进行阻值调整,而不参与这个卷积运算的输入对应的位线与该卷积运算对应字线的交叉点上的阻变存储单元则设定为高阻态。由于阻变存储器件的高阻态电阻远大于低阻态电阻,即高阻态单元中流过的电流可忽略不计,不影响电流输出,即不影响计算结果。具体举例来说,在附图6b中,第1,2字线共同协作得到第一个卷积输出Y1,从附图6a可知,Y1=x1w4+x2w3+x4w2+x5w1,即输入信号中只有x1,x2,x4,x5在此卷积计算中起作用,并且w1,w2<0,则正输入字线与x1,x2位线交叉点上的阻变存储单元在训练模式中被调整到相应阻值R1=1/w4,R2=1/w3;负输入字线与x4,x5位线交叉点上的阻变存储单元在训练中被调整到相应阻值R3=-1/w2,R4=-1/w1;其余不参与此次卷积运算且在此正负字线上的阻变存储单元均被调整到高阻态,则Y1=(V1/R1+V2/R2)-(V4/R3+V5/R4)=x1w4+x2w3+x4w2+x5w1,得到第一个卷积输出。Y2,Y3,Y4同理,可分别由位线(3,4),(5,6),(7,8)给出。本实例只作为举例,实际应用中输入及卷积核矩阵可扩展成任意的m×n矩阵,前提是输入矩阵面积大于卷积核矩阵。利用这种方式,同时实现了所有卷积结果的输出,即实现了卷积的并行计算,极大地加快了运算速度。这种方式对阵列大小的要求是:位线数目等于输入矩阵元素个数,字线数目等于输出矩阵元素个数的二倍。

这种体系结构对于输入矩阵的大小及阻变存储器件的特性具有一定要求。由于阻变存储器件的高阻态实际上是具有一定电阻而非无穷大,所以其上会流过一定的小电流。当输入矩阵足够大时,这些小电流汇聚起来不再能忽略,将影响计算的逻辑正确性。一般性考虑,输入矩阵的元素个数应不大于所使用的阻变器件的高阻态与低阻态电阻比值(高低阻窗口)。这也引出了本发明的一个局限性:在阵列中取高阻态的阻变存储单元实际并不存储卷积核的信息,属于冗余器件;当输入矩阵越大,卷积核越小时,该冗余器件数目越多;同时考虑到冗余器件上的小电流对计算结果的影响,对阻变存储器件的特性要求也就越高。

在根据本发明的上述基于阻变存储器件阵列实现并行卷积计算的设备中,利用阻变存储器存储卷积核并进行卷积计算,由于阻变存储器的可擦写性及非挥发性,不需要电平维持,并且支持卷积核的重写,降低了功耗,提高了器件利用率。输出端可以输出电压信号,与输入端的输入信号类型相同,即该体系结构可轻易拓展到多层卷积计算,为硬件实现卷积神经网络奠定了基础。

尽管已经参考本发明的典型实施例,具体示出和描述了本发明,但本领域普通技术人员应当理解,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以对这些实施例进行形式和细节上的多种改变。

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

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