CN115910136B - 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 - Google Patents
一种基于电阻式存储器的卷积加速运算阵列及其控制方法Info
- Publication number
- CN115910136B CN115910136B CN202211398594.7A CN202211398594A CN115910136B CN 115910136 B CN115910136 B CN 115910136B CN 202211398594 A CN202211398594 A CN 202211398594A CN 115910136 B CN115910136 B CN 115910136B
- Authority
- CN
- China
- Prior art keywords
- convolved
- convolution
- data
- array
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
- Surface Acoustic Wave Elements And Circuit Networks Thereof (AREA)
Abstract
本发明公开了一种基于电阻式存储器的卷积加速运算阵列及其控制方法,属于存储器技术领域,其行数为卷积核的大小,列数为将卷积核在待卷积数据D上进行滑动来遍历待卷积数据D时所需的总滑动次数S,字线的总条数为待卷积数据D中元素的总量,位线的总条数为S;每一列上的电阻式存储器单元均连接在同一位线上;通过在每一列上存储卷积核中的所有权重值,并按照每一位线输出一次滑动下的点乘运算结果、且阵列的位线能够同步输出所有点乘运算结果的原则进行计算,确定阵列中各电阻式存储器单元的输入,并将每一行上输入相同的电阻式存储器单元连接在同一条字线上,以确定位线分布;在该位线分布下,卷积加速阵列有更多的输入端口,运算效率较高。
Description
技术领域
本发明属于存储器技术领域,更具体地,涉及一种基于电阻式存储器的卷积加速运算阵列及其控制方法。
背景技术
随着脑学科和认知科学近年来的发展,为了能够更加接近人脑,生物启发式的计算方式即人工神及网络成为了人工智能领域的研究热点。然而在整个人工神经网络研究的发展过程当中,硬件设备的计算能力一直是一个限制其发展的问题之一。正因如此,随着近年来图像处理单元(Graphics Processing Unit,GPU)并行计算能力的显著提升,深度学习算法的训练瓶颈被进一步降低,人工智能的研究也是一片繁荣。然而,基于冯诺依曼的CPU(Central Processing Unit,CPU)和GPU,它们不光在计算上消耗千瓦级别的能量,而且计算效率还因为数据在计算单元和存储单元之间的传输而降低不少。
为了解决上述问题,研究者们提出了很多种神经形态器件,其中包括CMOS以及非冯诺依曼的PCM(Phase Change Memory)、RRAM(Resistive Random Access Memory)、CBRAM(Conductive Bridging Random Access Memory)等等。这些技术中基于电阻原理的存储器件,由于能够通过使用存储的电导值来表示权重值,在位线上输出的电流能表示多个单元的电导和各自输入电压的乘积之和,从而成为了矩阵乘法操作加速的典型器件;由于矩阵乘法操作正是卷积神经网络中卷积操作的基础,因此,基于电阻式存储器的阵列可被用于卷积操作的加速。
而传统的基于Crossbar方式连接的阵列,虽然由于能够通过字线和位线来选中阵列中的单元,且字线位线排布最为简洁,所需的字线和位线的输入数目最少,是阵列作为存储器时的最佳布线方式。但在进行卷积加速操作时,由于其单个字线连接了大量的器件,该字线下的所有器件共享同一个输入,虽然其可以进行不同通道卷积核的卷积操作的加速,但在一个神经网络中,卷积核的通道通常数目有限,除少数代表不同通道卷积核权重的器件之外,大量器件会因无法利用该输入而产生冗余。因此,大型Crossbar阵列在进行卷积操作时,会由于大量单元的同输入产生的大量冗余而极大降低阵列的运算效率,无法完全实现并行运算,从而无法在面向存储器设计的阵列结构中发挥出电阻式存储器卷积加速的优点。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于电阻式存储器的卷积加速运算阵列及其控制方法,用以解决现有的面向存储器的电阻Crossbar阵列由于大量单元的同输入产生的大量冗余所导致的运算效率较低的技术问题。
为了实现上述目的,第一方面,本发明提供了一种基于电阻式存储器的卷积加速运算阵列,用于对维度相同的待卷积数据D与卷积核进行卷积运算;其中,卷积核的大小为K×K×n;将卷积核在待卷积数据D上进行滑动来遍历待卷积数据D时所需的总滑动次数为S;每一次滑动下,卷积核覆盖待卷积数据D中的一组元素,卷积核中的权重值与被其覆盖的元素存在一一对应关系;
上述卷积加速运算阵列包括:呈阵列分布的电阻式存储器单元,其行数为K×K×n、列数为S;
每一列上的电阻式存储器单元均连接在同一位线上,用于存储卷积核中的所有权重值;
阵列的K×K×n组行输入从待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入;行输入中的各元素的数量为在遍历待卷积数据D的过程中其被卷积核覆盖的总次数;其中,m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应;
阵列的每一行上均设置有字线;阵列中字线的总条数与待卷积数据D中元素的总量相等;每一行上输入相同的电阻式存储器单元连接在同一条字线上。
进一步优选地,上述卷积运算为一维卷积运算、二维卷积运算或者三维卷积运算。
进一步优选地,当卷积运算为一维卷积运算时,待卷积数据D为一维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,沿着其所在行方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
进一步优选地,当卷积运算为二维卷积运算时,待卷积数据D为二维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
进一步优选地,当卷积运算为三维卷积运算时,待卷积数据D为三维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向、通道方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
进一步优选地,上述电阻式存储器为基于器件电阻来存储信息的器件,包括:基于材料晶态与非晶态转变导致的器件电阻变化来存储信息的相变存储器、或基于材料导电丝生成与断裂导致的器件电阻变化来存储信息的忆阻器。
第二方面,本发明提供了上述卷积加速运算阵列的控制方法,包括:
分别在每一列上存储卷积核中的所有权重值;
分别在每一行上通过字线将相应的待卷积数据D中的元素以电压的形式输入到各电阻式存储器单元中,并行得到S次滑动下卷积核与其所覆盖的待卷积数据D中的一组元素的点乘运算结果,并经由对应的字线进行输出,从而得到待卷积数据D与卷积核的卷积运算结果;
其中,电阻式存储器单元输入的确定方法包括:
阵列的K×K×n组行输入从所述待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与所述元素d映射为对应的电压值后构成一组行输入;所述行输入中的各元素的数量为在遍历所述待卷积数据D的过程中其被所述卷积核覆盖的总次数;m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
1、本发明提供了一种基于电阻式存储器的卷积加速运算阵列,其行数为卷积核的大小,列数为将卷积核在待卷积数据D上进行滑动来遍历待卷积数据D时所需的总滑动次数S,字线的总条数为待卷积数据D中元素的总量,位线的总条数为S;每一列上的电阻式存储器单元均连接在同一位线上;通过在每一列上存储卷积核中的所有权重值,并按照每一位线输出一次滑动下的点乘运算结果、及阵列的位线能够同步输出所有点乘运算结果的原则进行计算,确定阵列中各电阻式存储器单元的输入,并将每一行上输入相同的电阻式存储器单元连接在同一条字线上,从而确定了字线的分布;在该字线分布下,卷积加速阵列有更多的输入端口进行待卷积数据的输入,能够并行得到S次滑动下卷积核与其所覆盖的待卷积数据D中的一组元素的点乘运算结果,一次性得到待卷积数据D与卷积核的卷积运算结果,从而有效地解决了传统Crossbar阵列在加速卷积操作时的器件冗余问题,大大提升了阵列卷积运算算力,运算效率较高。
2、本发明所提供的基于电阻式存储器的卷积加速运算阵列,通过针对卷积运算的字位线连接设计,控制了字线上所连接单元的数目,解决了大规模Crossbar阵列当中字线上单元数目太多而导致字线太长从而字线电极有较高电阻并在阵列当中分担大量电压影响单元操作的问题。
附图说明
图1是实施例1中二维卷积操作的待卷积数据和卷积操作的示意图;
图2是实施例1中卷积加速运算阵列的示意图;
图3是实施例1中每一条位线所连接的电阻式存储器单元的数目示意图;
图4是实施例1中字线连接的电阻式存储器单元的数目示意图;
图5是实施例1中卷积操作字线分布确定方法的示意图;
图6是实施例1中电阻式存储器阵列的布线分布示意图;
图7是实施例1中电阻式存储器在一种工艺中字线和位线掩膜版的示意图;其中,(a)为实施例1中的字线掩膜版;(b)为实施例1中的位线掩膜版;
图8是实施例1中传统cross-bar结构阵列的示意图;
图9是实施例2中三维卷积操作的待卷积数据和卷积操作的示意图;
图10是实施例2中卷积加速运算阵列的示意图;
图11是实施例2中每一条位线所连接的电阻式存储器单元的数目示意图;
图12是实施例2中字线连接的电阻式存储器单元的数目示意图;
图13是实施例2中卷积操作字线分布确定方法的示意图;
图14是实施例2中电阻式存储器阵列的布线分布示意图;
图15是实施例2中电阻式存储器在一种工艺中字线和位线掩膜版的示意图;其中,(a)为实施例2中的字线掩膜版;(b)为实施例2中的位线掩膜版。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了解决面向存储器的电阻Crossbar阵列在卷积加速时产生大量冗余,无法实现完全并行的问题,本发明提供了一种基于电阻式存储器的卷积加速运算阵列,用于对维度相同的待卷积数据D与卷积核(大小为K×K×n)进行卷积运算;其中,电阻式存储器单元的总数、位线与字线的数目及其连接电阻式存储器单元的数目以及阵列中电阻式存储器单元的分布根据特定卷积操作的情况按下述方法来确定。电阻式存储器可以为基于材料晶态与非晶态转变导致的器件电阻变化来存储信息的相变存储器、基于材料导电丝生成与断裂导致的器件电阻变化来存储信息的忆阻器等一系列基于器件电阻来存储信息的器件。
具体地,基于卷积运算的定义,进行卷积运算的过程为将卷积核在待卷积数据D上进行滑动,并遍历整个待卷积数据D,此时所需要的总滑动次数为S。其中,每滑动一次,卷积核会覆盖待卷积数据D中的一组元素(卷积核中的权重值与被其覆盖的元素存在一一对应关系),并进行卷积核与其该组元素的点乘运算,每一次滑动下的点乘运算共同构成了待卷积数据D与卷积核的卷积运算结果。
为了并行的实现每一次滑动下的点乘运算,本发明按照如下方式设计卷积加速运算阵列,具体地,卷积加速运算阵列包括:呈阵列分布的电阻式存储器单元,其行数为K×K×n、列数为S,以使每个位线代表一次滑动下的点乘运算结果的输出。
具体地,每一列上的电阻式存储器单元均连接在同一位线上,用于存储卷积核中的所有权重值;
阵列的K×K×n组行输入从待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入;行输入中的各元素的数量为在遍历待卷积数据D的过程中其被卷积核覆盖的总次数;其中,m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应;
阵列的每一行上均设置有字线;阵列中字线的总条数与待卷积数据D中元素的总量相等;每一行上输入相同的电阻式存储器单元连接在同一条字线上。
需要说明的是,上述上述卷积运算为一维卷积运算、二维卷积运算或者三维卷积运算。
当卷积运算为一维卷积运算时,待卷积数据D为一维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,沿着其所在行方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
当卷积运算为二维卷积运算时,待卷积数据D为二维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
当卷积运算为三维卷积运算时,待卷积数据D为三维矩阵;每一组行输入的获取方式为:从待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向、通道方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
对应地,上述卷积加速运算阵列的控制方法,包括:
分别在每一列上存储卷积核中的所有权重值;
分别在每一行上通过字线将相应的待卷积数据D中的元素以电压的形式输入到各电阻式存储器单元中,并行得到S次滑动下卷积核与其所覆盖的待卷积数据D中的一组元素的点乘运算结果,并经由对应的字线进行输出,从而得到待卷积数据D与卷积核的卷积运算结果;
其中,电阻式存储器单元输入的确定方法包括:
阵列的K×K×n组行输入从所述待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与所述元素d映射为对应的电压值后构成一组行输入;所述行输入中的各元素的数量为在遍历所述待卷积数据D的过程中其被所述卷积核覆盖的总次数;m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应。
对应地,上述卷积加速运算阵列的制备方法,包括:
在衬底上沉积阵列结构时,其图形化所使用的各层图形按照上述电阻式存储器单元、字线、位线的数量及分布方式来确定,之后配合沉积材料、以及刻蚀工艺,最终得到上述卷积加速运算阵列。
需要说明的是,阵列中器件的结构和材料可以是任意的。
综上,本发明中的基于电阻式存储器的卷积加速运算阵列,通过结合卷积操作和待卷积数据本身的情况优化了字线、位线以及电阻式存储器单元的分布情况,能够有效解决传统Crossbar阵列在加速卷积操作时的器件冗余问题并且提升阵列卷积运算算力。
为了进一步说明本发明所提供的卷积加速运算阵列,下面结合实施例进行详述:
实施例1、
本实施例中是针对二维卷积操作的卷积加速运算阵列。其待卷积数据和卷积操作的情况如图1所示。
二维的卷积操作如图1所示,W代表卷积操作卷积核的权重值,D代表待卷积数据。图中的卷积核的大小和待卷积数据的大小如图所示,分别为3×3和5×5,其中卷积的横向和纵向的滑动步长均为1,可知横向和纵向的滑动次数均为3,因此总的滑动次数为9次,该数据共会进行9次点乘运算。
本发明实现该卷积操作加速的电阻式存储器单元阵列的器件总数的确定方法如图2所示。图2中的W对应上述图1中的卷积核的权重值,而S代表卷积的滑动次数,S1-S9代表了上述的9次卷积运算。如图2,阵列所需的器件总数为卷积核中权重值的数目与卷积所需总的滑动次数的乘积。
对应该卷积操作的电阻式存储器单元阵列的位线数目及其连接器件数目的确定方法如图3所示。图3中的W对应上述的卷积核中的权重值。如图3,阵列中单个位线上连接器件的数目与卷积核中权重值的数目相同,依据图2中确定的器件总数可知,位线的数目与卷积的滑动次数相同。
上述电阻式存储器单元阵列的字线数目及其连接器件的数目的确定方法如图4所示。图4中的待卷积数据D对应上述卷积操作的输入值,WL代表字线,图中每个WL上的方块数目代表该输入在整个卷积操作的过程中参与运算的总次数C。如图4所示,待卷积数据中的每个元素对应一个字线,字线的总数与待卷积数据D中元素的总数相同。依据卷积操作输入的数据在S1-S9对应的9次卷积操作中参与运算的总次数C,从而确定每个字线上连接的器件数目。
电阻式存储器阵列的分布的确定方法如图5所示,其中,最右侧矩阵中的元素取值为在遍历待卷积数据D的过程中对应待卷积元素被卷积核覆盖的总次数。在依上述方法确定了器件总数、字线和位线及其连接器件数目之后,按每一位线输出一步卷积操作,阵列的位线能够同步输出所有9次卷积操作的原则进行计算。每个字线上单元的连接方式由图5所示的方式确定,从输入图像的其中一个位置开始,在间隔卷积核边长减一的图像点后取下一个值,取值方向为以如输入值为中心的横向、纵向以及与横纵方向间隔45°的米字型方向。在不重复的前提下,每个取值组合代表字线上的一个排布方式。在此之上,再依据单元所在的位线位置及其输入图像值参与卷积运算的总次数C确定字线的连接方式,其中位线位置代表了卷积核的滑动位置即特定卷积的作用范围,C代表了该图像值在字线中的重复次数即连接的单元数目。最终得到的字线排布以及输入方式如图6所示。
该存储器阵列在制备过程当中所使用的字线和位线掩膜版如图7所示。在依上述方法确定了存储器阵列的布线情况之后,对于使用通孔结构的器件阵列,可通过光刻位线电极图形,沉积位线电极材料,沉积绝缘层,光刻刻蚀孔阵列,光刻字线电极图形,沉积功能层和电极材料的步骤来制备。在该制备流程的所有光刻过程中,除了孔的光刻刻蚀之外,字线与位线的光刻过程所使用的掩膜版均符合上述加速设计的要求。使用图7所示的掩膜版可以制备出符合图6布线方式的阵列,能够实现图6所述的对于5×5输入,3×3卷积核的卷积加速操作;其中,图7中的(a)图为字线掩膜版,(b)图为位线掩膜版。
需要说明的是,传统cross-bar阵列的示意图如图8所示。字线与位线分别连接了同一行与同一列的所有单元,相较于本发明中设计的阵列,其在相同器件数目的情况下,其仅有9个字线用于输入;而本发明中设计的阵列有25个字线用于输入,并且本发明中设计的阵列综合考虑了数据在卷积过程中进行的操作次数,对卷积操作进行了优化。对于上述传统cross-bar阵列与本发明设计的卷积加速阵列的性能对比表如表1所示。
表1
| 阵列类别 | 单元数目 | 输入端口 | 输出端口 | 每时钟周期卷积算力 |
| 传统cross-bar | 81 | 9 | 9 | 9×1MACC |
| 卷积加速阵列 | 81 | 25 | 9 | 9×9MACC |
从表1可以看出,在相同器件数目的情况下,传统的cross-bar阵列由于只有9个输入端口,每行所有单元均有相同的输入,无法匹配卷积过程对于待卷积数据滑动的要求,因此在一个时钟周期内仅能完成输入9个数据的卷积操作,即9个乘法和8个加法的有效操作,所以其算力为9MACC。而由于本发明所提供的卷积加速阵列有更多的输入端口,在执行对于数据的卷积操作时可以匹配卷积操作时对于待卷积数据的滑动,因此能够完成3×3卷积核在5×5输入上共9次滑动的所有卷积的值,所以其算力为9×9MACC。可见在相同器件数目下,对于上述的卷积操作,本发明所设计的阵列能够实现相较于传统cross-bar结构的9倍算力。
实施例2、
本实施例中是针对三维卷积操作的卷积加速运算阵列。其待卷积数据和卷积操作的情况如图9所示。
三维的卷积操作如图9所示,W代表卷积操作卷积核的权重值,D代表待卷积数据。图中的卷积核的大小和待卷积数据的大小如图所示,分别为2×2×2和3×3×3,其中卷积的横向、纵向以及通道方向的滑动步长均为1,可知横向、纵向以及通道方向的滑动次数均为2,因此总的滑动次数为8次,该数据共会进行8次卷积运算。
本发明实现该卷积操作加速的电阻式存储器单元阵列的器件总数的确定方法如图10所示。图9中的W对应上述图9中的卷积核的权重值,而S代表卷积的滑动次数,S1-S8代表了上述的8次卷积运算。如图10所示,阵列所需的器件总数为卷积核中权重值的数目与卷积所需总的滑动次数的乘积。
对应该卷积操作的电阻式存储器单元阵列的位线数目及其连接器件数目的确定方法如图11所示。图11中的W对应上述的卷积核中的权重值。如图11所示,阵列中单个位线上连接器件的数目与卷积核中权重值的数目相同,依据图10中确定的器件总数可知,位线的数目与卷积的滑动次数相同。
上述电阻式存储器单元阵列的字线数目及其连接器件的数目的确定方法如图12所示。图12中的D对应上述卷积操作的输入值,WL代表字线,图中每个WL上的方块数目代表该输入在整个卷积操作的过程中参与运算的总次数C。如图12所示,待卷积数据中的每一个元素对应一个字线,字线的总数与待卷积数据中元素的总数相同。依据卷积操作输入的数据在S1-S8对应的8次卷积操作中参与运算的总次数C,从而确定每个字线上连接的器件数目。
进一步地,电阻式存储器阵列的字线分布确定方法如图13所示。在依上述方法确定了器件总数、字线和位线及其连接器件数目之后,按每一位线输出一步卷积操作,阵列的位线能够同步输出所有8次卷积操作的原则得到图示的阵列排布方式为原则。每个字线上单元的连接方式由图13所示的方式确定,从输入图像的其中一个位置开始,在间隔卷积核边长减一的图像点后取下一个值,取值方向为以如输入值为中心的横向、纵向以及垂直于纸面的方向,以及三者之间间隔45°的立体米字型。在不重复的前提下,每个取值组合代表字线上的一个排布方式。在此之上,再依据单元所在的位线位置及其输入图像值参与卷积运算的总次数C确定字线的连接方式,其中位线位置代表了卷积核的滑动位置即特定卷积的作用范围,C代表了该图像值在字线中的重复次数即连接的单元数目,最终得到的字线排布以及输入方式如图14所示。
该存储器阵列在制备过程中所使用的字线和位线掩膜版如图15所示。在依上述方法确定了存储器阵列的布线情况之后,对于使用通孔结构的器件阵列,可通过光刻位线电极图形,沉积位线电极材料,沉积绝缘层,光刻刻蚀孔阵列,光刻字线电极图形,沉积功能层和电极材料的步骤来制备。在该制备流程的所有光刻过程中,除了孔的光刻刻蚀之外,字线与位线的光刻过程所使用的掩膜版均符合上述卷积加速运算阵列的要求。使用图15所示的掩膜版可以制备出符合图14所示的布线方式的阵列,能够实现图9所述的对于3×3×3输入,2×2×2卷积核的卷积加速操作;其中,图15中的(a)图为字线掩膜版,(b)图为位线掩膜版。
需要说明的是,传统cross-bar阵列与本实施例中的卷积加速阵列的性能对比表如表2所示。
表2
| 阵列类别 | 单元数目 | 输入端口 | 输出端口 | 每时钟周期卷积算力 |
| 传统cross-bar | 64 | 8 | 8 | 8×1MACC |
| 卷积加速阵列 | 64 | 27 | 8 | 8×8MACC |
从表2可以看出,在相同器件数目的情况下,传统的cross-bar阵列由于只有8个输入端口,每行所有单元均有相同的输入,无法匹配卷积过程对于待卷积数据滑动的要求,因此在一个时钟周期内仅能完成输入8个数据的卷积操作,即8个乘法和7个加法的有效操作,所以其算力为8MACC。而由于本发明所提供的卷积加速阵列有更多的输入端口,在执行对于数据的卷积操作时可以匹配卷积操作时对于待卷积数据的滑动,因此能够完成2×2×2卷积核在3×3×3输入上共8次滑动的所有卷积的值,所以其算力为8×8MACC。可见在相同器件数目下,对于上述的卷积操作,本发明所设计的阵列能够实现相较于传统cross-bar结构的8倍算力。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于电阻式存储器的卷积加速运算阵列,其特征在于,用于对维度相同的待卷积数据D与卷积核进行卷积运算;所述卷积核的大小为K×K×n;将所述卷积核在所述待卷积数据D上进行滑动来遍历所述待卷积数据D时所需的总滑动次数为S;每一次滑动下,所述卷积核覆盖所述待卷积数据D中的一组元素;
所述卷积加速运算阵列包括:呈阵列分布的电阻式存储器单元,其行数为K×K×n、列数为S;
每一列上的电阻式存储器单元均连接在同一位线上,用于存储所述卷积核中的所有权重值;
所述阵列中字线的总条数与所述待卷积数据D中元素的总量相等;所述阵列的每一行上均设置有1条或多条字线;每一行上输入相同的电阻式存储器单元连接在同一条字线上;
所述阵列的K×K×n组行输入从所述待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与所述元素d映射为对应的电压值后构成一组行输入;所述行输入中的各元素的数量为在遍历所述待卷积数据D的过程中其被所述卷积核覆盖的总次数;m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应。
2.根据权利要求1所述的卷积加速运算阵列,其特征在于,所述卷积运算为一维卷积运算、二维卷积运算或者三维卷积运算。
3.根据权利要求2所述的卷积加速运算阵列,其特征在于,当所述卷积运算为一维卷积运算时,所述待卷积数据D为一维矩阵;所述每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,沿着其所在行方向搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
4.根据权利要求2所述的卷积加速运算阵列,其特征在于,当所述卷积运算为二维卷积运算时,所述待卷积数据D为二维矩阵;所述每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
5.根据权利要求2所述的卷积加速运算阵列,其特征在于,当所述卷积运算为三维卷积运算时,所述待卷积数据D为三维矩阵;所述每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,分别沿着其所在行方向、列方向、通道方向以及斜线方向搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与元素d映射为对应的电压值后构成一组行输入。
6.根据权利要求1-5任意一项所述的卷积加速运算阵列,其特征在于,所述电阻式存储器为基于器件电阻来存储信息的器件,包括:基于材料晶态与非晶态转变导致的器件电阻变化来存储信息的相变存储器、或基于材料导电丝生成与断裂导致的器件电阻变化来存储信息的忆阻器。
7.权利要求1-6任意一项所述的卷积加速运算阵列的控制方法,其特征在于,包括:
分别在每一列上存储卷积核中的所有权重值;
分别在每一行上通过字线将相应的待卷积数据D中的元素以电压的形式输入到各电阻式存储器单元中,并行得到S次滑动下卷积核与其所覆盖的待卷积数据D中的一组元素的点乘运算结果,并经由对应的字线进行输出,从而得到待卷积数据D与卷积核的卷积运算结果;
其中,所述电阻式存储器单元输入的确定方法包括:
阵列的K×K×n组行输入从所述待卷积数据D中搜索得到;其中,每一组行输入的获取方式为:从所述待卷积数据D中的任一未搜索过的元素d开始,搜索与其间隔m(K-1)个元素的元素,并将所有搜索到的元素与所述元素d映射为对应的电压值后构成一组行输入;所述行输入中的各元素的数量为在遍历所述待卷积数据D的过程中其被所述卷积核覆盖的总次数;m为任意正整数;
每一列上的各电阻式存储器单元的输入从其所在的行的行输入中获取,且保证S列上的电阻式存储器单元所存储的权重值与其输入的对应关系与S次滑动下卷积核与其覆盖的元素之间的对应关系一一对应。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211398594.7A CN115910136B (zh) | 2022-11-09 | 2022-11-09 | 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211398594.7A CN115910136B (zh) | 2022-11-09 | 2022-11-09 | 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115910136A CN115910136A (zh) | 2023-04-04 |
| CN115910136B true CN115910136B (zh) | 2025-07-25 |
Family
ID=86485515
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211398594.7A Active CN115910136B (zh) | 2022-11-09 | 2022-11-09 | 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115910136B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
| CN114365078A (zh) * | 2019-08-29 | 2022-04-15 | Arm有限公司 | 重构mac运算 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11309026B2 (en) * | 2017-01-25 | 2022-04-19 | Peking University | Convolution operation method based on NOR flash array |
| CN115221463A (zh) * | 2021-04-19 | 2022-10-21 | 寒武纪行歌(南京)科技有限公司 | 进行Winograd卷积的方法、可读存储介质及装置 |
-
2022
- 2022-11-09 CN CN202211398594.7A patent/CN115910136B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
| CN114365078A (zh) * | 2019-08-29 | 2022-04-15 | Arm有限公司 | 重构mac运算 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115910136A (zh) | 2023-04-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11409438B2 (en) | Peripheral circuit and system supporting RRAM-based neural network training | |
| Sun et al. | Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons | |
| CN114298296B (zh) | 基于存算一体阵列的卷积神经网络处理方法和装置 | |
| CN110334799A (zh) | 基于存算一体的神经网络推理与训练加速器及其运行方法 | |
| JP6921961B2 (ja) | メモリスティブ・デバイスおよびその形成方法 | |
| Ankit et al. | Circuits and architectures for in-memory computing-based machine learning accelerators | |
| CN115148234A (zh) | 存储器中计算(cim)存储阵列 | |
| Mikhaylov et al. | Neuromorphic computing based on CMOS-integrated memristive arrays: current state and perspectives | |
| Agrawal et al. | X-CHANGR: Changing memristive crossbar mapping for mitigating line-resistance induced accuracy degradation in deep neural networks | |
| Chen et al. | Partition SRAM and RRAM based synaptic arrays for neuro-inspired computing | |
| Hong et al. | In-memory annealing unit (imau): Energy-efficient (2000 tops/w) combinatorial optimizer for solving travelling salesman problem | |
| CN107368889A (zh) | 基于阻变存储器三维交叉阵列的卷积、池化和激活电路 | |
| CN115206376A (zh) | 存内计算装置及用于执行mac操作的方法 | |
| CN117558320B (zh) | 一种基于忆阻交叉阵列的读写电路 | |
| Xu et al. | Fault tolerance in memristive crossbar-based neuromorphic computing systems | |
| Yang et al. | Essence: Exploiting structured stochastic gradient pruning for endurance-aware reram-based in-memory training systems | |
| Pan et al. | Blockamc: Scalable in-memory analog matrix computing for solving linear systems | |
| CN115910136B (zh) | 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 | |
| KR20220078312A (ko) | 멤리스터 소자, 멤리스터 소자 제작 방법 및 이를 이용한 적층형 신경망 모사 소자 | |
| CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
| An et al. | Implementation of monolithic 3D integrated TiOx memristor-based neural network for high-performance in-memory computing | |
| CN109447257A (zh) | 一种通道自组织的深度神经网络加速芯片的运算装置 | |
| Wang et al. | RRAM-enabled AI accelerator architecture | |
| US12293804B2 (en) | Convolution operation accelerator and convolution operation method | |
| TWI844108B (zh) | 積體電路及操作方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |