存算一体电路和基于存算一体电路的数据运算方法转让专利
申请号 : CN201910854667.0
文献号 : CN112558917B
文献日 : 2021-07-27
发明人 : 安友伟 , 刘大海 , 闫江 , 李迪 , 陈刚 , 张登军 , 李建球 , 余作欢 , 逯钊琦
申请人 : 珠海博雅科技有限公司
摘要 :
权利要求 :
1.一种存算一体电路,其特征在于,包括:配置单元,用于基于存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
选通单元,与所述配置单元相连,用于根据所述最大值提供选通信号;
存算单元,包括由多个所述存储单元组成的存储阵列,根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值,
所述存算单元用于根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
模数转换单元,与所述存算单元相连,用于将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及
累加求和单元,对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
2.根据权利要求1所述的存算一体电路,其特征在于,所述存储单元包括非易失性存储器,所述非易失性存储器包括:浮栅场效应管和SONOS场效应管。
3.根据权利要求2所述的存算一体电路,其特征在于,所述累加求和单元,包括:加法器,用于对所述至少一个子块的所述数字运算结果做加法运算;
计数器,用于计数所述至少一个子块的所述数字运算结果的当前累加次数;
判断电路,用于根据所述当前累加次数,为所述加法器提供反馈信号,根据所述反馈信号,如果所述当前累加次数小于所述子块的个数减一,则所述加法器对当前累加结果和下一个所述子块的所述数字运算结果做加法运算,如果所述当前累加次数大于等于所述子块的个数减一,则所述加法器将所述当前累加结果作为所述存算一体电路的乘加运算结果。
4.根据权利要求2所述的存算一体电路,其特征在于,所述存算单元包括:所述存储阵列,其中,每一行的所述存储单元的控制端均连接至同一字线,多行所述存储单元对应连接至多个字线;
每一列的所述存储单元的第一通路端均连接至同一位线,多列所述存储单元对应连接至多个位线;
每一列的所述存储单元的第二通路端均连接至同一源极线,多列所述存储单元对应连接至多个源极线。
5.根据权利要求4所述的存算一体电路,其特征在于,所述存算单元还包括:字线信号产生电路,用于根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
位线信号产生电路,用于根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态并在所述存储单元的所述第一通路端产生输出电流,当前未选通的所述子块的所述存储单元处于关断状态。
6.根据权利要求5所述的存算一体电路,其特征在于,所述存算单元还包括:输出信号测量电路,与所述多个位线的一端相连,用于测量所述存储阵列中每一列所述存储单元的所述第一通路端的输出电流和以得到每一个所述子块的所述模拟运算结果。
7.根据权利要求6所述的存算一体电路,其特征在于,在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
8.一种基于存算一体电路的数据运算方法,其特征在于,所述存算一体电路包括由多个存储单元组成的存储阵列,所述数据运算方法包括:基于所述存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
根据所述最大值提供选通信号,并根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值;
根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
9.根据权利要求8所述的数据运算方法,其特征在于,所述对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果,包括:对所述至少一个子块的所述数字运算结果做加法运算;
计数所述至少一个子块的所述数字运算结果的当前累加次数;
如果所述当前累加次数小于所述子块的个数减一,则对当前累加结果和下一个所述子块的所述数字运算结果做加法运算;
如果所述当前累加次数大于等于所述子块的个数减一,则将所述当前累加结果作为所述存算一体电路的乘加运算结果。
10.根据权利要求9所述的数据运算方法,其特征在于,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,包括:根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态,并在所述存储单元的第一通路端产生输出电流,当前未选通的所述子块的所述存储单元处于关断状态。
11.根据权利要求10所述的数据运算方法,其特征在于,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,还包括:在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
说明书 :
存算一体电路和基于存算一体电路的数据运算方法
技术领域
背景技术
起,海量数据的传输与处理使得传统冯诺依曼计算体系结构面临带宽与功耗的双重挑战,
分别称为存储墙与功耗墙问题。为了解决这两个难题,近年来,受到人脑中突触能同时进行
记忆和计算的启发,计算机架构中的存算一体(Processing‑In‑Memory,PIM)技术开始得到
人们的广泛研究。
偏差,这降低了存算一体电路的数据运算精度。
发明内容
据运算方法。
值;
等于所述最大值,
结果。
个所述存储单元的所述第一通路端的所述输出电流;
存储单元的所述第一通路端的所述输出电流;
和存储阵列的存储数据做乘加运算,得到至少一个子块的模拟运算结果。具体地,在每一个
子块中,当存储单元处于导通状态时,通过存储单元的工作模型,对存储单元的存储数据和
待运算数据做乘法运算,得到每一个存储单元的输出电流;在每一个子块中,分列对存储单
元的第一通路端的输出电流做加法运算,得到至少一个子块的模拟运算结果。控制每个子
块中存储单元的行数,以避免本发明实施例中数据运算的运算精度超出算法允许的预设精
度误差范围,提高了存算一体电路的数据运算精度。
附图说明
具体实施方式
这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过
程、流程没有详细叙述。另外附图不一定是按比例绘制的。
500。存算单元100包括由多个存储单元组成的存储阵列。
是本发明的一个实施例的存储单元的基准输出电流的分布示意图。如图2所示的存储单元
中存储2位二进制数据。可以根据存储单元的输出电流来确定存储单元的存储数据。例如,
所述存储单元的基准输出电流是存储单元的漏极电流的基准输出电流。当给不同阈值电压
的存储单元施加相同的栅源电压和漏源电压时,存储单元的漏极电流不同。规定漏极电流
iD1、漏极电流iD2、漏极电流iD3和漏极电流iD4分别作为存储单元存储有存储数据“00”、“01”、
“10”和“11”时的基准输出电流。然而在实际工作中,存储单元的漏极电流往往存在电流偏
差,如图2所示,L是存储单元可用于描述存储数据的电流宽度,l是基准输出电流的理想电
k
流值间距,l=L/2 ,k为存储单元存储的二进制数据的位数。实际输出电流偏离基准输出电
流的输出电流偏差值为r,r
在iD3‑r/2
偏离)基准输出电流的电流范围值,r/2是实际输出电流正偏离或负偏离基准输出电流的电
流偏差值。
110中存储单元的行数小于等于最大值N。例如,存算单元100中存储阵列的行数为Q,而在一
次加法运算中存储单元的个数的最大值为N,则如果Q可以整除N,则将存储阵列按行分为
[Q/N]个子块110,每个子块110中存储单元的行数等于最大值N;如果Q不可以整除N,则将存
储阵列按行分为[Q/N]+1个子块110,前[Q/N]个子块110的存储单元的行数等于最大值N,第
[Q/N]+1个子块110的存储单元的行数小于最大值N。可以理解的是,只要每一个子块110中
存储单元的行数小于等于最大值,将存储阵列按行分块的分块方式还可以为其他方式。
个子块110的模拟运算结果Y1模数转换为数字运算结果Y2。累加求和单元500,对至少一个
子块110的数字运算结果Y2做加法运算,得到存算单元100的乘加运算结果Y。
器、铁电存储器、自旋磁矩耦合存储器、浮栅场效应管或SONOS(硅‑氧化硅‑氮化硅‑氧化硅‑
硅)场效应管等。
500。其中,累加求和单元500包括:加法器510、计数器520和判断电路530。
前累加次数T,为加法器510提供反馈信号FB,根据反馈信号FB,如果当前累加次数T小于存
储阵列的子块110的个数减一,则加法器510对当前累加结果和下一个子110的数字运算结
果Y2做加法运算,如果当前累加次数T大于等于存储阵列的子块110的个数减一,则加法器
510将当前累加结果作为存算一体电路的乘加运算结果Y。
120、位线信号产生电路130和输出信号测量电路140。为了描述方便,假设基于存储单元111
的输出电流偏差,在对存储单元111的输出电流进行加法运算的预设精度误差范围内,计算
在一次加法运算中存储单元111的个数的最大值N为2,则每一个子块110中存储单元111的
行数小于等于最大值2。
如,源极)均连接至同一源极线SLi(0这里可以将多个源极线SL接参考地电位。可选地,通过提前为存储阵列中的存储单元111编
程,使得存储阵列的存储单元111中存储有存储数据W,第i行第j列的存储单元111中存储有
存储数据wij,其中,0的阈值电压。例如,通过热载流子注入和Fowler‑Nordheim隧穿等方法设置存储阵列中每一
个存储单元111的阈值电压,以使每一个存储单元111中存储有与预设权值相对应的存储数
据W。通过非易失性存储器的擦写特性实现存储数据W的修改,速度快且可实现数值的连续
调节。
体地,字线信号产生电路120,根据待运算数据X的大小,生成相同脉宽、不同幅值的多个字
线驱动信号,其幅值大小与相应的待运算数据X大小成比例。
的子块110的存储单元111处于导通状态并在存储单元111的第一通路端产生输出电流。当
前未选通的子块110的存储单元111处于关断状态。
的是,这里的输出信号测量电路140可以与多个源极线SL的一端相连,用于测量存储阵列中
每一列存储单元111的第二通路端的输出电流和以得到每一个子块110的模拟运算结果Y1。
111的第一通路端的输出电流。当处于导通状态时,存储单元111在感知到的控制端施加的
字线驱动信号和第一通路端施加的位线驱动信号时,会在存储单元111的第一通路端产生
一定大小的电流,该电流与自身存储状态和控制端施加的字线驱动信号有关,可以表征对
应两个数值的乘积。可以理解的是,当存储单元111处于关断状态时,存储单元111的第一通
路端的输出电流为零。在每一个子块110中,分列对存储单元111的第一通路端的输出电流
做加法运算,得到至少一个子块110的模拟运算结果Y1。
SONOS场效应管,存储单元的源极接参考地电位。如图5a所示的转移特性曲线中,当漏源电
压uDS为常量时,漏极电流iD和栅源电压uGS存在函数关系。跨导gm数值的大小表示栅源电压
uGS对漏极电流iD的控制作用的强弱。跨导gm是存储单元的转移特性曲线上某一点的切线的
斜率。跨导gm与切点的位置密切相关,由于转移特性曲线的非线性,因而漏极电流iD愈大,跨
导gm愈大。通常,存储单元例如浮栅场效应管或SONOS场效应管有三个工作区域:可变电阻
区、恒流区和夹断区。如图5b所示的输出特性曲线中示出存储单元的可变电阻区,具体示出
存储单元施加三种栅源电压uGS时漏源电压uDS和漏极电流iD的关系曲线。当存储单元施加不
同的栅源电压uGS和漏源电压uDS时,输出不同的漏极电流iD。
至少一个子块的模拟运算结果Y1。
值。分块对待运算数据和存储阵列的存储数据做乘加运算,得到至少一个子块的模拟运算
结果。具体地,在每一个子块中,当存储单元处于导通状态时,通过存储单元的工作模型,对
存储单元的存储数据和待运算数据做乘法运算,得到每一个存储单元的输出电流;在每一
个子块中,分列对存储单元的第一通路端的输出电流做加法运算,得到至少一个子块的模
拟运算结果。控制每个子块中存储单元的行数,以避免本发明实施例中数据运算的运算精
度超出算法允许的预设精度误差范围,提高了存算一体电路的数据运算精度。
的存储阵列。具体包括:
值。
最大值。
的存储单元提供位线驱动信号;根据字线驱动信号和位线驱动信号,当前选通的子块的存
储单元处于导通状态并在第一通路端产生输出电流,当前未选通的子块的存储单元处于关
断状态。
流;在每一个子块中,分列对存储单元的第一通路端的输出电流做加法运算,得到至少一个
子块的模拟运算结果。
对至少一个子块的数字运算结果做加法运算,并计数至少一个子块的数字运算结果的当前
累加次数,判断当前累加次数是否小于子块的个数减一,如果当前累加次数小于子块的个
数减一,则返回对下一个子块的待运算数据和存储数据做乘加运算,如果当前累加次数大
于等于子块的个数减一,则将当前累加结果作为存算一体电路的乘加运算结果。逐块累加
至少一个子块的数字运算结果以得到存算一体电路的乘加运算结果,减少了每个子块的数
据运算量,进而降低了对执行数据运算的硬件系统的需求。
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
制本发明,任何熟悉本专业的技术人员,再不脱离本发明技术方案范围内,当可利用上述揭
示的技术内容作出些许变更或修饰等,凡在本发明的精神和原则之内所作的任何修改、等
同替换或改进等,均应包含在本发明的保护范围之内。本说明书选取并具体描述这些实施
例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地
利用本发明以及在本发明基础上的修改使用。