基于阻变存储器的MAC阵列及MAC阵列操作方法与流程


基于阻变存储器的mac阵列及mac阵列操作方法
技术领域
1.本发明涉及存储器技术领域,更为具体地,涉及一种基于阻变存储器的mac阵列及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.然而由于阻变存储器阵列实际尺寸通常超过1mb,其中较长的wl/bl布线导致了大量的寄生电阻/电容,导致了在计算时,阵列中不同位置的存储单元和wl输入信号在乘积相同时电流也会有很大的漂移,并进一步缩小了不同乘积的和对应的总电流的区分度,在严重情况下甚至会导致不同乘积和对应的电流范围交叠,产生读取错误。在28nm工艺的1mb的rram mac阵列中,传统方法在wl/bl寄生最优/最坏位置的电流读取差异在最优/最坏情况下,mac求和电流的范围发生严重交叠,导致读取错误。为了解决该问题,需要对每个adc进行单独的调制,但这在大算力大阵列的需求下,极大的增加了电路设计的难度和测试成本,严重降低了mac运算的精度。
4.因此,亟需一种显著地减小由于阻变存储器件阻值差异和大阵列寄生参数带来的计算结果误差,最大程度地减少精度损失的基于阻变存储器的mac阵列及操作方法。


技术实现要素:



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

通过同一权重不同位分散分布,有效地提高高位运算的精度。在ai运算中,低位的运算误差通常可以忽略,因此,该方法可以有效提高总体运算精度。
38.在图1所示的实施例中,每个1t1r阻变式存储单元包括晶体管-阻变存储器;阻变存储器包括电阻,电阻与所述晶体管相连接,且电阻可高可低;字线与晶体管的栅端相连接,字线被译码器控制,字线用于传输输入信号;源线与1t1r阻变式存储单元,且源线用于为所述电阻施加电压,以在位线上形成偏置电流;adc模块与位线相连接,adc模块用于对位线中的偏置电流进行转换以形成数字乘积运算结果;该移位加法器用于对所述数字乘积运算结果进行求和以获取mac运算结果;在本实施例中,所有位线连接到同一adc上,多根bl连接到同一adc,实现多个权重和多个输入信号的多位乘积和的模数转换和,并在外围通过加法树进行更大规模的求和,如此能够减小占位空间,提高空间利用率,提高运算速度。
39.在实际运算操作时,每次只打开一行wl,多根bl连接到同一adc,实现模数转换和求和运算,并在外围通过加法树进行更大规模的求和。该方法具备模拟求和高并行度的优势,且可以有效地将误差限制在允许范围内。
40.具体的,每个晶体管-阻变存储器(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,这些表示乘积的电流可以被形成一个总电流,从而实现了对乘积的求和。
41.在本实施例中,还包括控制单元,该控制单元用于同时打开一行字线和预设间隔的多条位线,以进行后续mac运算,完成所述输入信号与所述电阻的乘积的求和运算;该控制单元还用于在同时打开一行字线之前,对一行字线进行置位操作和复位操作;其中,置位操作为:位线、字线施加高电压,源线接地;复位操作为:字线、源线施加高电压,位线接地;其中,字线在置位操作中的电压值为在复位操作中的电压值的一半以下。
42.在一个具体实施例,在运算操作时,每次同时打开一行wl,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上,其余权重以此类推,每次计算时,打开某一条wl(譬如wl0),同时bl0-bl7依次输入a0-a7的第0-7位,再将多个bl的输出电流通过adc转化为乘积和。如图1所示,由于adc是对多个bl的结果进行电流和的转化,因此需要使用电流模式的adc,但adc密度相对图1有了明显减少,有利于版图布线的设计,同时,对于同一wl的所有1t1r单元,bl寄生参数是基本一致的,因此在计算他们的电流和时,寄生参数带来的影响大大减小。
43.并且,由于adc模块为多条bl共用,因此adc模块在横向长度上的空间得以大大扩充,相对于图1所示设计一条bl对应一个adc,本发明的空间利用上具备更大优势。因此可以配置精度更高、面积更大的adc模块来实现更多bl的求和,有效地提高了并行度,即整体运
算速度。
44.如上所述,本发明提供的基于阻变存储器的mac阵列,包括1t1r阻变式存储单元、字线、源线、位线、adc模块和移位加法器,存储有不同权重的相同位的1t1r阻变式存储单元分布在相邻连续的多条位线上;其中,所述位线的间隔小于或等于8;存储有相同权重的不同位的1t1r阻变式存储单元分布在同一条位线上,且以2n条字线为间隔;每个1t1r阻变式存储单元包括晶体管-阻变存储器;阻变存储器包括电阻,所述电阻与所述晶体管相连接,且所述电阻可高可低;字线与所述晶体管的栅端相连接,所述字线被译码器控制,所述字线用于传输输入信号;源线与1t1r阻变式存储单元,且源线用于为电阻施加电压,以在位线上形成偏置电流,adc模块与位线相连接,且所有位线共用一个adc模块,adc模块用于对位线中的偏置电流进行转换以形成数字乘积运算结果,移位加法器用于对所述数字乘积运算结果进行求和以获取mac运算结果,如此,有足够的空间配置更高精度的adc模块的同时,使用高精度adc模块可以实现对面积和功耗更好的优化,并且,在实际运算操作时,每次只打开一行wl(字线),多根bl(位线)连接到同一adc,实现模数转换和求和运算,并在外围通过加法树进行更大规模的求和,进而具备模拟求和高并行度的优势,且可以有效地将误差限制在允许范围内;同时,对于同一wl的所有1t1r单元,它们的bl寄生参数是基本一致的,因此在计算他们的电流和时,寄生参数带来的影响大大减小。
45.如图2所示,本发明还提供一种基于阻变存储器的mac阵列操作方法,基于如前所述的基于阻变存储器的mac阵列实现,包括:
46.s1:同时打开基于阻变存储器的mac阵列中的一行字线、预设间隔的位线和源线;
47.s2:基于所述字线传输输入信号,基于所述源线为所述基于阻变存储器的mac阵列中的电阻施加电压,以在所述位线上形成偏置电流;
48.s3:通过所述基于阻变存储器的mac阵列中的adc模块用于对所述位线中的偏置电流进行转换以形成数字乘积运算结果;
49.s4:通过所述基于阻变存储器的mac阵列中的移位加法器对所述数字乘积运算结果进行求和以获取mac运算结果。
50.在同时打开一行字线之前,对所述一行字线进行置位操作和复位操作;
51.所述置位操作为:所述位线、所述字线施加高电压,所述源线接地;
52.所述复位操作为:所述字线、所述源线施加高电压,所述位线接地。
53.具体在操作时,所有位线连接到同一adc上,多根bl连接到同一adc,实现多个权重和多个输入信号的多位乘积和的模数转换和,并在外围通过加法树进行更大规模的求和,如此能够减小占位空间,提高空间利用率,提高运算速度。
54.在实际运算操作时,每次只打开一行wl,多根bl连接到同一adc,实现模数转换和求和运算,并在外围通过加法树进行更大规模的求和。该方法具备模拟求和高并行度的优势,且可以有效地将误差限制在允许范围内。
55.在一个具体实施例,在运算操作时,每次同时打开一行wl,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上,其余权重以此类推,每次计算时,打开某一条wl(譬如wl0),同时bl0-bl7依次输入a0-a7的第0-7位,再将多个bl的输出电流通过adc转化为乘积和。如图1所
示,由于adc是对多个bl的结果进行电流和的转化,因此需要使用电流模式的adc,但adc密度相对图1有了明显减少,有利于版图布线的设计,同时,对于同一wl的所有1t1r单元,bl寄生参数是基本一致的,因此在计算他们的电流和时,寄生参数带来的影响大大减小。
56.并且,由于adc模块为多条bl共用,因此adc模块在横向长度上的空间得以大大扩充,相对于图1所示设计一条bl对应一个adc,本发明的空间利用上具备更大优势。因此可以配置精度更高、面积更大的adc模块来实现更多bl的求和,有效地提高了并行度,即整体运算速度。
57.通过上述实施方式可以看出,本发明提供的基于阻变存储器的mac阵列操作方法,基于如前所述的基于阻变存储器的mac阵列实现,首先同时打开基于阻变存储器的mac阵列中的一行字线、预设间隔的位线和源线;再基于所述字线传输输入信号,基于所述源线为所述基于阻变存储器的mac阵列中的电阻施加电压,以在所述位线上形成偏置电流;而后通过所述基于阻变存储器的mac阵列中的adc模块对所述位线中的偏置电流进行转换以形成数字乘积运算结果;最后通过所述基于阻变存储器的mac阵列中的移位加法器对所述数字乘积运算结果进行求和以获取mac运算结果,如此,在实际运算操作时,每次只打开一行wl(字线),多根bl(位线)连接到同一adc,实现模数转换和求和运算,并在外围通过加法树进行更大规模的求和,进而具备模拟求和高并行度的优势,且可以有效地将误差限制在允许范围内;同时,对于同一wl的所有1t1r单元,它们的bl寄生参数是基本一致的,因此在计算他们的电流和时,寄生参数带来的影响大大减小。
58.如上参照附图以示例的方式描述了根据本发明提出的基于阻变存储器的mac阵列及操作方法。但是,本领域技术人员应当理解,对于上述本发明所提出的基于阻变存储器的mac阵列及操作方法,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

技术特征:


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

技术总结


本发明提供一种基于阻变存储器的MAC阵列,存储有不同权重的相同位的1T1R阻变式存储单元分布在相邻连续的多条位线上;存储有相同权重的不同位的1T1R阻变式存储单元分布在同一条位线上,且以2


技术研发人员:

刘业帆 周煜梁

受保护的技术使用者:

昕原半导体(上海)有限公司

技术研发日:

2022.06.21

技术公布日:

2022/11/1

本文发布于:2024-09-20 20:29:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/8326.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   存储器   阵列   乘积
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议