基于阻变存储器的高速低精度损失MAC阵列及操作方法与流程

专利2024-10-16  52


基于阻变存储器的高速低精度损失mac阵列及操作方法
技术领域
1.本发明涉及存储器技术领域,更为具体地,涉及一种基于阻变存储器的高速低精度损失mac阵列及操作方法。


背景技术:

2.乘加运算(mac)是神经网络(neural network)最主要的计算方式,代表两组数(a0,a1,a2…
)(b0,b1,b2…
)分别的乘积的和(a0·
b0+a1·
b1+a2·
b2+

)。阻变存储器作为一种非易失性存储器,利用器件的电阻状态来存储信息。当在器件两端施加电压时,输入电压和器件电阻分别代表1bit的信号,以输出电流的形式实现乘法运算。多个输出电流的和则代表了多个1bit输入信号与1bit存储信息的乘积和,即mac运算。基于阻变存储器(rram)的mac阵列具有高密度、低成本、高能效的特点。本发明提出了一种基于阻变存储器的mac运算阵列架构,在保证较高的运算精度的基础上,利用输入信号时域上的区分,显著提高了计算速度。
3.在实际使用中,阻变存储器mac阵列存在以下问题:1.实际尺寸通常大于1mb,wl/bl引入大量的寄生电阻/电容,导致了在计算时,乘积和对应的电流范围交叠,产生读取错误;为了解决该问题,需要对每个adc进行单独的调制,这在大算力大阵列的需求下,极大的增加了电路设计的难度和测试成本,严重降低了mac运算的精度。2.由于较大的阵列导致代开bl和wl所需的充电时间很长,甚至出现超过实际运算所需脉冲时间的情况;逐行打开会导致运算过程中每根bl和wl的充放电,大大降低了操作速度。3.由于精度损失的问题,只能进行并行度受限的乘加运算,因此mac运算速度有限,而由于每条bl均配有adc,导致了adc面积受限,adc的性能也受到制约。
4.因此,亟需一种能够降低大阵列情况下寄生因素带来的运算误差和相应的难度,提高面积利用率和计算速度的基于阻变存储器的高速低精度损失mac阵列及操作方法。


技术实现要素:

5.鉴于上述问题,本发明的目的是提供一种基于阻变存储器的高速低精度损失mac阵列,以解决阻变存储器mac阵列实际尺寸通常大于1mb,wl/bl引入大量的寄生电阻/电容,导致了在计算时,乘积和对应的电流范围交叠,产生读取错误,严重降低了mac运算的精度;代开bl和wl所需的充电时间很长,甚至出现超过实际运算所需脉冲时间的情况;逐行打开会导致运算过程中每根bl和wl的充放电,大大降低操作速度,mac运算速度有限的问题。
6.本发明提供的一种基于阻变存储器的高速低精度损失mac阵列,包括1t1r阻变式存储单元、字线、源线、位线、adc模块,其特征在于,
7.存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻的多条字线上;
8.存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2n条字线为间隔;
9.每个1t1r阻变式存储单元包括晶体管-阻变存储器;
10.所述阻变存储器包括电阻,所述电阻与所述晶体管相连接,且所述电阻可高可低;
11.所述字线与所述晶体管的栅端相连接,所述字线被译码器控制,所述字线用于传输输入信号;
12.所述源线与所述1t1r阻变式存储单元,且所述源线用于为所述电阻施加电压,以在所述位线上形成偏置电流;
13.所述adc模块与所述位线相连接,所述adc模块用于对所述位线中的偏置电流进行转换以形成数字mac运算结果。
14.优选地,所述偏置电流基于所述输入信号与所述电压生成,反映所述输入信号与所述电阻的乘积。
15.优选地,还包括控制单元,
16.所述控制单元用于同时打开间隔为2n的多条字线和预设间隔的多条位线,以形成多个1t1r阻变式存储单元的总计数字mac运算结果,完成所述输入信号与所述电阻的乘积的求和运算。
17.优选地,所述位线的预设间隔为8m;m小于等于16。
18.优选地,所述控制单元还用于在同时打开间隔为2n的多条字线之前,对所述间隔为2n的多条字线进行置位操作和复位操作;
19.n小于或等于5。
20.优选地,所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;
21.所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。
22.优选地,所述字线在所述置位操作中的电压值为在所述复位操作中的电压值的一半以下。
23.优选地,所有位线连接到同一adc模块上。
24.本发明还提供一种基于阻变存储器的高速低精度损失mac阵列操作方法,基于如前所述的基于阻变存储器的高速低精度损失mac阵列实现,包括:
25.同时打开基于阻变存储器的高速低精度损失mac阵列中间隔为2n的多条字线、预设间隔的位线和源线;
26.基于所述字线传输输入信号,基于所述源线为所述基于阻变存储器的高速低精度损失mac阵列中的电阻施加电压,以在所述位线上形成偏置电流;
27.通过所述基于阻变存储器的高速低精度损失mac阵列中的adc模块用于对所述位线中的偏置电流进行转换以形成数字mac运算结果。
28.优选地,在同时打开间隔为2n的多条字线之前,对所述间隔为2n的多条字线进行置位操作和复位操作;n小于或等于5;
29.所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;
30.所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。
31.从上面的技术方案可知,本发明提供的基于阻变存储器的高速低精度损失mac阵列,存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻的多条字线上;存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2n条字线为间隔;每个1t1r阻变式存储单元包括晶体管-阻变存储器;阻变存储器包括电阻,所述电阻与所述晶体管相连接,且所述电阻可高可低;字线与所述晶体管的栅端相连接,所述字线被译码器控
制,所述字线用于传输输入信号;源线与1t1r阻变式存储单元,且源线用于为电阻施加电压,以在位线上形成偏置电流,adc模块与位线相连接,adc模块用于对位线中的偏置电流进行转换以形成数字mac运算结果,如此,有足够的空间配置更高精度的adc模块的同时,使用高精度adc模块可以实现对面积和功耗更好的优化。
附图说明
32.通过参考以下结合附图的说明书内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
33.图1为根据本发明实施例的基于阻变存储器的高速低精度损失mac阵列的示意图;
34.图2为根据本发明实施例的基于阻变存储器的高速低精度损失mac阵列操作示意图;
35.图3为根据本发明实施例的基于阻变存储器的高速低精度损失mac阵列操作方法的流程图;
具体实施方式
36.阻变存储器mac阵列实际尺寸通常大于1mb,wl/bl引入大量的寄生电阻/电容,导致了在计算时,乘积和对应的电流范围交叠,产生读取错误,严重降低了mac运算的精度;代开bl和wl所需的充电时间很长,甚至出现超过实际运算所需脉冲时间的情况;逐行打开会导致运算过程中每根bl和wl的充放电,大大降低操作速度,mac运算速度有限。
37.针对上述问题,本发明提供一种基于阻变存储器的高速低精度损失mac阵列,以下将结合附图对本发明的具体实施例进行详细描述。
38.为了说明本发明提供的基于阻变存储器的高速低精度损失mac阵列及操作方法,图1、图2对本发明实施例的基于阻变存储器的高速低精度损失mac阵列进行了示例性标示;图3对本发明实施例的基于阻变存储器的高速低精度损失mac阵列操作方法进行了示例性标示。
39.以下示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术和设备可能不作详细讨论,但在适当情况下,所述技术和设备应当被视为说明书的一部分。
40.如图1所示,本发明实施例的基于阻变存储器的高速低精度损失mac阵列,包括1t1r阻变式存储单元、字线、源线、位线、adc模块,其中,存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻的多条字线上;存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2n条字线为间隔;在本实施例中,存储不同权重的相同位的1t1r单元分布在同一区域(相邻的多条wl)的bl上。在进行同一位的mac运算时,1t1r单元之间的寄生参数非常接近,减少同一位乘积和的误差;同一权重的不同位分布在同一bl上,且并非连续分布,而是以4/8/16/32根wl为间隔。以4根wl为间隔举例,wl0连接权重b00对应单元,wl4连接权重b01对应,wl8连接权重b02对应单元

通过同一权重不同位分散分布,有效地提高高位运算的精度。在ai运算中,低位的运算误差通常可以忽略,因此,该方法可以有效提高总体运算精度。
41.在图1、图2共同所示的实施例中,每个1t1r阻变式存储单元包括晶体管-阻变存储
器;阻变存储器包括电阻,电阻与所述晶体管相连接,且电阻可高可低;字线与晶体管的栅端相连接,字线被译码器控制,字线用于传输输入信号;源线与1t1r阻变式存储单元,且源线用于为所述电阻施加电压,以在位线上形成偏置电流;adc模块与位线相连接,adc模块用于对位线中的偏置电流进行转换以形成数字mac运算结果;在本实施例中,所有位线连接到同一adc上,多根bl连接到同一adc,实现多个权重和多个输入信号的多位乘积和的模数转换和,并在外围通过加法树进行更大规模的求和,如此能够减小占位空间,提高空间利用率,提高运算速度。
42.具体的,每个晶体管-阻变存储器(1t1r)单元用于保存权重的一位,当r电阻为高时表示0,当r电阻为低时表示1;wl(字线)受decoder控制,用于传输输入信号;sl(源线)用于施加固定的读取电压,并在bl(位线)上形成偏置电流,随后被adc处理产生mac运算结果;当1t1r单元的wl被置于高电平时,表示输入信号为1;由于1t1r单元存储1时,该电流较大,表示了输入信号和1t1r单元的乘积为1;当1t1r单元存储0时或者wl未被选通时,该单元所在bl电流很低,表示了输入信号和1t1r单元乘积为0;在本实施例中,偏置电流基于所述输入信号与所述电压生成,反映所述输入信号与所述电阻的乘积,通过同时打开多个wl,这些表示乘积的电流可以被形成一个总电流,从而实现了对乘积的求和。
43.在本实施例中,还包括控制单元,该控制单元用于同时打开间隔为2n的多条字线和预设间隔的多条位线,以形成多个1t1r阻变式存储单元的总计数字mac运算结果,完成所述输入信号与所述电阻的乘积的求和运算;位线的预设间隔为8m;m小于等于16;该控制单元还用于在同时打开间隔为2n的多条字线之前,对所述间隔为2n的多条字线进行置位操作和复位操作;n小于或等于5;其中,置位操作为:位线、字线施加高电压,源线接地;复位操作为:字线、源线施加高电压,位线接地;其中,字线在置位操作中的电压值为在复位操作中的电压值的一半以下。
44.在一个具体实施例,在运算操作时,每次同时打开多条wl(下文中以4为例),例如上述wl0,wl4,wl8

表示对同一权重的不同位(b00,b01,b02…
)与输入信号求乘积和,此时需要对bl和wl均进行控制,bl为输入信号的某一位(an
x
),打开,而wl则根据对应权重的位数(第m位、第m+1位、第m+2位、第m+3位)分别打开1,2,4,8个脉冲周期,因此在时域上,bl上流经的电流所积累的总电荷为pulse width*(b00*an
x
+2*b01*an
x
+4b02*an
x
+8*b03*an
x
),即b0
4-0
*an
x
的结果。经过adc采样电容进行转换即可实现多位mac运算结果的求和。
45.如图1所示,wl间隔为4,bl间隔为8,实际情况可根据需要进行调整为4,8,16,32等值,计算为int8(可根据实际应用调整)。可以看到wl0上分布有b0-b7的第0位,而b0的第0-7位则分布在bl0上,分在位于wl0,wl4,wl8,wl12,wl16,wl20,wl24,wl28上,其余权重以此类推。
46.图2为本实施例中mac阵列的操作方法,每次计算时,打开多条wl,此处以同时打开4条wl的int8型运算为例,图2中(a)部分和图2中(b)部分分别代表b0的低4位和高4位。在进行运算时bl给定输入an的第x位(an
x
)。在第一个操作周期内打开wl0,wl4,wl8,wl12,并且给定的脉冲如图2中的(c)部分所示。明显可见,多条wl同时打开成倍地见笑了wl预充电所耗费的时间,通过控制wl上pw时间的宽度,可以对bl和adc连接处的电容进行充电,电荷量表达式为pw*(b00*an
x
+2*b01*an
x
+4b02*an
x
+8*b03*an
x
),即代表了b0
3-0
和anx的乘积和。以此类推,可以如图2(b)部分所示,计算b0
7-4
和anx的乘积和。同时计算4条wl所需时间显著小于
逐行打开4条wl所需时间的总和。
47.并且,由于adc(adc模块)为多条bl共用,因此adc模块有更大的空间。例如在上文所述的4条wl同时打开的int8型mac运算中,对于3*3kernal,adc每次运算所处理的电荷信息代表一个10位乘加和的结果。由于常用adc设计12位以下精度所耗费的功耗是非线性增长,因此在本发明的mac阵列架构和操作模式下,有足够的空间配置更高精度的adc的同时,使用高精度adc可以实现对面积和功耗更好的优化。
48.如上所述,本发明提供的基于阻变存储器的高速低精度损失mac阵列,存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻的多条字线上;存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2n条字线为间隔;每个1t1r阻变式存储单元包括晶体管-阻变存储器;阻变存储器包括电阻,所述电阻与所述晶体管相连接,且所述电阻可高可低;字线与所述晶体管的栅端相连接,所述字线被译码器控制,所述字线用于传输输入信号;源线与1t1r阻变式存储单元,且源线用于为电阻施加电压,以在位线上形成偏置电流,adc模块与位线相连接,adc模块用于对位线中的偏置电流进行转换以形成数字mac运算结果,如此,有足够的空间配置更高精度的adc模块的同时,使用高精度adc模块可以实现对面积和功耗更好的优化。
49.如图2、图3共同所示,本发明还提供一种基于阻变存储器的高速低精度损失mac阵列操作方法,基于如前所述的基于阻变存储器的高速低精度损失mac阵列实现,包括:
50.s1:同时打开基于阻变存储器的高速低精度损失mac阵列中间隔为2n的多条字线、预设间隔的位线和源线;
51.s2:基于所述字线传输输入信号,基于所述源线为所述基于阻变存储器的高速低精度损失mac阵列中的电阻施加电压,以在所述位线上形成偏置电流;
52.s3:通过所述基于阻变存储器的高速低精度损失mac阵列中的adc模块用于对所述位线中的偏置电流进行转换以形成数字mac运算结果。
53.在同时打开间隔为2n的多条字线之前,对所述间隔为2n的多条字线进行置位操作和复位操作;n小于或等于5;
54.所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;
55.所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。
56.具体在操作时,每次同时打开多条wl(下文中以4为例),例wl0,wl4,wl8

表示对同一权重的不同位(b00,b01,b02…
)与输入信号求乘积和,此时需要对bl和wl均进行控制,bl为输入信号的某一位(an
x
),打开,而wl则根据对应权重的位数(第m位、第m+1位、第m+2位、第m+3位)分别打开1,2,4,8个脉冲周期,因此在时域上,bl上流经的电流所积累的总电荷为pulse width*(b00*an
x
+2*b01*an
x
+4b02*an
x
+8*b03*an
x
),即b0
4-0
*an
x
的结果。经过adc采样电容进行转换即可实现多位mac运算结果的求和。
57.每次计算时,打开多条wl,此处以同时打开4条wl的int8型运算为例,图2中(a)部分和图2中(b)部分分别代表b0的低4位和高4位。在进行运算时bl给定输入an的第x位(an
x
)。在第一个操作周期内打开wl0,wl4,wl8,wl12,并且给定的脉冲如图2中的(c)部分所示。明显可见,多条wl同时打开成倍地见笑了wl预充电所耗费的时间,通过控制wl上pw时间的宽度,可以对bl和adc连接处的电容进行充电,电荷量表达式为pw*(b00*an
x
+2*b01*an
x
+4b02*an
x
+8*b03*an
x
),即代表了b0
3-0
和anx的乘积和。以此类推,可以如图2(b)部分所示,计
算b0
7-4
和anx的乘积和。同时计算4条wl所需时间显著小于逐行打开4条wl所需时间的总和。
58.由于adc(adc模块)为多条bl共用,因此adc模块有更大的空间。例如在上文所述的4条wl同时打开的int8型mac运算中,对于3*3kernal,adc每次运算所处理的电荷信息代表一个10位乘加和的结果。由于常用adc设计12位以下精度所耗费的功耗是非线性增长,因此在本发明的mac阵列架构和操作模式下,有足够的空间配置更高精度的adc的同时,使用高精度adc可以实现对面积和功耗更好的优化。
59.通过上述实施方式可以看出,本发明提供的基于阻变存储器的高速低精度损失mac阵列操作方法,基于如前所述的基于阻变存储器的高速低精度损失mac阵列实现,首先同时打开基于阻变存储器的高速低精度损失mac阵列中间隔为2n的多条字线、预设间隔的位线和源线;再基于字线传输输入信号,基于源线为基于阻变存储器的高速低精度损失mac阵列中的电阻施加电压,以在位线上形成偏置电流;通过基于阻变存储器的高速低精度损失mac阵列中的adc模块用于对位线中的偏置电流进行转换以形成数字mac运算结果,如此,有足够的空间配置更高精度的adc的同时,使用高精度adc可以实现对面积和功耗更好的优化。
60.如上参照附图以示例的方式描述了根据本发明提出的基于阻变存储器的高速低精度损失mac阵列及操作方法。但是,本领域技术人员应当理解,对于上述本发明所提出的基于阻变存储器的高速低精度损失mac阵列及操作方法,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

技术特征:
1.一种基于阻变存储器的高速低精度损失mac阵列,包括1t1r阻变式存储单元、字线、源线、位线、adc模块,其特征在于,存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻的多条字线上;存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2
n
条字线为间隔;每个1t1r阻变式存储单元包括晶体管-阻变存储器;所述阻变存储器包括电阻,所述电阻与所述晶体管相连接,且所述电阻可高可低;所述字线与所述晶体管的栅端相连接,所述字线被译码器控制,所述字线用于传输输入信号;所述源线与所述1t1r阻变式存储单元,且所述源线用于为所述电阻施加电压,以在所述位线上形成偏置电流;所述adc模块与所述位线相连接,所述adc模块用于对所述位线中的偏置电流进行转换以形成数字mac运算结果。2.如权利要求1所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所述偏置电流基于所述输入信号与所述电压生成,反映所述输入信号与所述电阻的乘积。3.如权利要求2所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,还包括控制单元,所述控制单元用于同时打开间隔为2
n
的多条字线和预设间隔的多条位线,以形成多个1t1r阻变式存储单元的总计数字mac运算结果,完成所述输入信号与所述电阻的乘积的求和运算。4.如权利要求3所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所述位线的预设间隔为8m;m小于等于16。5.如权利要求3所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所述控制单元还用于在同时打开间隔为2
n
的多条字线之前,对所述间隔为2
n
的多条字线进行置位操作和复位操作;n小于或等于5。6.如权利要求5所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。7.如权利要求6所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所述字线在所述置位操作中的电压值为在所述复位操作中的电压值的一半以下。8.如权利要求1所述的基于阻变存储器的高速低精度损失mac阵列,其特征在于,所有位线连接到同一adc模块上。9.一种基于阻变存储器的高速低精度损失mac阵列操作方法,基于如权利要求1-8任一所述的基于阻变存储器的高速低精度损失mac阵列实现,包括:同时打开基于阻变存储器的高速低精度损失mac阵列中间隔为2
n
的多条字线、预设间隔的位线和源线;基于所述字线传输输入信号,基于所述源线为所述基于阻变存储器的高速低精度损失
mac阵列中的电阻施加电压,以在所述位线上形成偏置电流;通过所述基于阻变存储器的高速低精度损失mac阵列中的adc模块用于对所述位线中的偏置电流进行转换以形成数字mac运算结果。10.如权利要求9所述的基于阻变存储器的高速低精度损失mac阵列操作方法,其特征在于,在同时打开间隔为2
n
的多条字线之前,对所述间隔为2
n
的多条字线进行置位操作和复位操作;n小于或等于5;所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。

技术总结
本发明提供一种基于阻变存储器的高速低精度损失MAC阵列,存储有不同权重的相同位的1T1R阻变式存储单元分布在相邻的多条字线上;存储有相同权重的不同位的1T1R阻变式存储单元分布在同一条位线上,且以2


技术研发人员:刘业帆 周煜梁
受保护的技术使用者:昕原半导体(上海)有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-10018.html

最新回复(0)