CN112558917B - 存算一体电路和基于存算一体电路的数据运算方法 - Google Patents
存算一体电路和基于存算一体电路的数据运算方法 Download PDFInfo
- Publication number
- CN112558917B CN112558917B CN201910854667.0A CN201910854667A CN112558917B CN 112558917 B CN112558917 B CN 112558917B CN 201910854667 A CN201910854667 A CN 201910854667A CN 112558917 B CN112558917 B CN 112558917B
- Authority
- CN
- China
- Prior art keywords
- sub
- storage
- block
- data
- operation result
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Abstract
本发明实施例公开了一种存算一体电路和基于存算一体电路的数据运算方法,涉及存储器技术领域。所述存算一体电路,包括:配置单元,用于在预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;选通单元,用于根据所述最大值提供选通信号;存算单元,根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,所述存算单元用于根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;模数转换单元,用于将每一个所述子块的模拟运算结果模数转换为数字运算结果;累加求和单元,对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
Description
技术领域
本发明涉及存储器技术领域,具体涉及一种存算一体电路和基于存算一体电路的数据运算方法。
背景技术
在传统冯诺依曼计算体系结构中,存储器与处理器是分离的,两者之间通过数据总线进行连接,数据处理需要在存储器与处理器之间来回传输。但是,随着大数据应用的兴起,海量数据的传输与处理使得传统冯诺依曼计算体系结构面临带宽与功耗的双重挑战,分别称为存储墙与功耗墙问题。为了解决这两个难题,近年来,受到人脑中突触能同时进行记忆和计算的启发,计算机架构中的存算一体(Processing-In-Memory,PIM)技术开始得到人们的广泛研究。
相关技术中,通过在由非易失性存储器组成的存储单元阵列中直接进行数据运算来实现数据的存储和运算一体化。然而,在实际工作中存储单元的输出电流往往存在电流偏差,这降低了存算一体电路的数据运算精度。
发明内容
为了克服相关技术中存在的存储单元的输出电流存在电流偏差致使存算一体电路的运算精度低的问题,本发明实施例提供了一种存算一体电路和基于存算一体电路的数据运算方法。
根据本发明的一方面,提供一种存算一体电路,包括:
配置单元,用于基于存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
选通单元,与所述配置单元相连,用于根据所述最大值提供选通信号;
存算单元,包括由多个所述存储单元组成的存储阵列,根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值,
所述存算单元用于根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
模数转换单元,与所述存算单元相连,用于将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及
累加求和单元,对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
可选地,所述存储单元包括非易失性存储器,所述非易失性存储器包括:浮栅场效应管和SONOS场效应管。
可选地,所述累加求和单元,包括:
加法器,用于对所述至少一个子块的所述数字运算结果做加法运算;
计数器,用于计数所述至少一个子块的所述数字运算结果的当前累加次数;
判断电路,用于根据所述当前累加次数,为所述加法器提供反馈信号,
根据所述反馈信号,如果所述当前累加次数小于所述子块的个数减一,则所述加法器对当前累加结果和下一个所述子块的所述数字运算结果做加法运算,
如果所述当前累加次数大于等于所述子块的个数减一,则所述加法器将所述当前累加结果作为所述存算一体电路的乘加运算结果。
可选地,所述存算单元包括:
所述存储阵列,其中,每一行的所述存储单元的控制端均连接至同一字线,多行所述存储单元对应连接至多个字线;
每一列的所述存储单元的第一通路端均连接至同一位线,多列所述存储单元对应连接至多个位线;
每一列的所述存储单元的第二通路端均连接至同一源极线,多列所述存储单元对应连接至多个源极线。
可选地,所述存算单元还包括:
字线信号产生电路,用于根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
位线信号产生电路,用于根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态并在所述存储单元的所述第一通路端产生输出电流,
当前未选通的所述子块的所述存储单元处于关断状态。
可选地,所述存算单元还包括:
输出信号测量电路,与所述多个位线的一端相连,用于测量所述存储阵列中每一列所述存储单元的所述第一通路端的输出电流和以得到每一个所述子块的所述模拟运算结果。
可选地,在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
根据本发明的另一方面,提供一种基于存算一体电路的数据运算方法,所述存算一体电路包括由多个存储单元组成的存储阵列,所述数据运算方法包括:
基于所述存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
根据所述最大值提供选通信号,并根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值;
根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及
对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
可选地,所述对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果,包括:
对所述至少一个子块的所述数字运算结果做加法运算;
计数所述至少一个子块的所述数字运算结果的当前累加次数;
如果所述当前累加次数小于所述子块的个数减一,则对当前累加结果和下一个所述子块的所述数字运算结果做加法运算;
如果所述当前累加次数大于等于所述子块的个数减一,则将所述当前累加结果作为所述存算一体电路的乘加运算结果。
可选地,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,包括:
根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态,并在所述存储单元的所述第一通路端产生输出电流,
当前未选通的所述子块的所述存储单元处于关断状态。
可选地,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,还包括:
在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
本发明的一个实施例至少包括以下优点或有益效果:
根据在一次加法运算中存储单元的个数的最大值,将存储阵列按行和列分块以得到至少一个子块,使得每一个子块中存储单元的行数小于等于最大值。分块对待运算数据和存储阵列的存储数据做乘加运算,得到至少一个子块的模拟运算结果。具体地,在每一个子块中,当存储单元处于导通状态时,通过存储单元的工作模型,对存储单元的存储数据和待运算数据做乘法运算,得到每一个存储单元的输出电流;在每一个子块中,分列对存储单元的第一通路端的输出电流做加法运算,得到至少一个子块的模拟运算结果。控制每个子块中存储单元的行数,以避免本发明实施例中数据运算的运算精度超出算法允许的预设精度误差范围,提高了存算一体电路的数据运算精度。
另外,存算一体电路中的存储阵列可以对数据进行存储和计算,无需耗费数据的存取时间,提高了基于存算一体电路的数据运算速度和效率。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出本发明的一个实施例的存算一体电路的结构示意图。
图2示出本发明的一个实施例的存储单元的基准输出电流的分布示意图。
图3示出本发明的一个实施例的存算一体电路的结构示意图。
图4示出本发明的一个实施例的存算单元的结构示意图。
图5a示出本发明的一个实施例的存储单元的转移特性曲线。
图5b示出本发明的一个实施例的存储单元的输出特性曲线。
图6示出本发明的一个实施例的基于存算一体电路的数据运算方法的流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
图1是本发明的一个实施例的存算一体电路的结构示意图。如图1所示,存算一体电路包括:存算单元100、配置单元200、选通单元300、模数转换单元400和累加求和单元500。存算单元100包括由多个存储单元组成的存储阵列。
配置单元200,用于基于存储单元的输出电流偏差,在对存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中存储单元的个数的最大值N。图2是本发明的一个实施例的存储单元的基准输出电流的分布示意图。如图2所示的存储单元中存储2位二进制数据。可以根据存储单元的输出电流来确定存储单元的存储数据。例如,所述存储单元的基准输出电流是存储单元的漏极电流的基准输出电流。当给不同阈值电压的存储单元施加相同的栅源电压和漏源电压时,存储单元的漏极电流不同。规定漏极电流iD1、漏极电流iD2、漏极电流iD3和漏极电流iD4分别作为存储单元存储有存储数据“00”、“01”、“10”和“11”时的基准输出电流。然而在实际工作中,存储单元的漏极电流往往存在电流偏差,如图2所示,L是存储单元可用于描述存储数据的电流宽度,l是基准输出电流的理想电流值间距,l=L/2k,k为存储单元存储的二进制数据的位数。实际输出电流偏离基准输出电流的输出电流偏差值为r,r<l。当某一个存储单元的漏极电流iD在iD1-r/2<iD<iD1+r/2之间时,认为该存储单元存储二进制数据“00”,当某一个存储单元的漏极电流iD在iD2-r/2<iD<iD2+r/2之间时,认为该存储单元存储二进制数据“01”,当某一个存储单元的漏极电流是iD在iD3-r/2<iD<iD3+r/2之间时,认为该存储单元存储二进制数据“10”,当某一个存储单元的漏极电流是iD在iD4-r/2<iD<iD4+r/2之间时,认为该存储单元存储二进制数据“11”。
例如,在对存储单元的输出电流进行加法运算的预设精度误差范围内,在一次加法运算中存储单元的个数的最大值N的计算公式为:
N=2P/r (1)
其中,P为对存储单元的输出电流,例如漏极电流,进行加法运算的预设精度误差,r为每个存储单元的输出电流偏差,输出电流偏差r是实际输出电流偏离(包括正偏离和负偏离)基准输出电流的电流范围值,r/2是实际输出电流正偏离或负偏离基准输出电流的电流偏差值。
选通单元300,与配置单元200相连,用于根据最大值N提供选通信号Vs。在存算单元100中,根据选通信号Vs将存储阵列按行和列分块以得到至少一个子块110,每一个子块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中存储单元的行数小于等于最大值,将存储阵列按行分块的分块方式还可以为其他方式。
存算单元100,用于根据选通信号Vs每次选通一个子块110,以分块对待运算数据X和存储阵列的存储数据W做乘加运算。模数转换单元400,与存算单元100相连,用于将每一个子块110的模拟运算结果Y1模数转换为数字运算结果Y2。累加求和单元500,对至少一个子块110的数字运算结果Y2做加法运算,得到存算单元100的乘加运算结果Y。
可选地,存储单元包括非易失性存储器。非易失性存储器具有掉电仍保留数据的特点,运用此特性设计存储阵列来进行数据运算,非易失性存储器例如为忆阻器、相变存储器、铁电存储器、自旋磁矩耦合存储器、浮栅场效应管或SONOS(硅-氧化硅-氮化硅-氧化硅-硅)场效应管等。
图3是本发明的一个实施例的存算一体电路的结构示意图。如图3所示,存算一体电路包括:存算单元100、配置单元200、选通单元300、模数转换单元400和累加求和单元500。其中,累加求和单元500包括:加法器510、计数器520和判断电路530。
加法器510,用于对至少一个子块110的数字运算结果Y2做加法运算。计数器520,用于计数至少一个子块110的数字运算结果Y2的当前累加次数T。判断电路530,用于根据当前累加次数T,为加法器510提供反馈信号FB,根据反馈信号FB,如果当前累加次数T小于存储阵列的子块110的个数减一,则加法器510对当前累加结果和下一个子110的数字运算结果Y2做加法运算,如果当前累加次数T大于等于存储阵列的子块110的个数减一,则加法器510将当前累加结果作为存算一体电路的乘加运算结果Y。
图4示出本发明的一个实施例的存算单元的结构示意图。如图4所示,存算单元100中包括n×m阵列布置的n×m个存储单元111,n和m是大于0的正整数、字线信号产生电路120、位线信号产生电路130和输出信号测量电路140。为了描述方便,假设基于存储单元111的输出电流偏差,在对存储单元111的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中存储单元111的个数的最大值N为2,则每一个子块110中存储单元111的行数小于等于最大值2。
其中,第i行的存储单元111的控制端(例如,控制栅)均连接至同一字线WLi(0<i≤n),多行存储单元111对应连接至多个字线WL。第j列的存储单元111的第一通路端(例如,漏极)均连接至同一位线BLj(0<j≤m),多列存储单元111对应连接至多个位线BL。第j列的存储单元111的第二通路端(例如,源极)均连接至同一源极线SLj(0<j≤m),多列存储单元111对应连接至多个源极线SL。可以理解的是,可以将第i行的存储单元111的第二通路端(例如,源极)均连接至同一源极线SLi(0<i≤n),多行存储单元111对应连接至多个源极线SL。这里可以将多个源极线SL接参考地电位。可选地,通过提前为存储阵列中的存储单元111编程,使得存储阵列的存储单元111中存储有存储数据W,第i行第j列的存储单元111中存储有存储数据wij,其中,0<i≤n,0<j≤m。可以根据预设权值设置存储阵列中每一个存储单元111的阈值电压。例如,通过热载流子注入和Fowler-Nordheim隧穿等方法设置存储阵列中每一个存储单元111的阈值电压,以使每一个存储单元111中存储有与预设权值相对应的存储数据W。通过非易失性存储器的擦写特性实现存储数据W的修改,速度快且可实现数值的连续调节。
字线信号产生电路120,用于根据待运算数据X产生多个字线驱动信号,并且根据选通信号Vs为当前选通的子块110的相应行的存储单元111的控制端提供字线驱动信号。具体地,字线信号产生电路120,根据待运算数据X的大小,生成相同脉宽、不同幅值的多个字线驱动信号,其幅值大小与相应的待运算数据X大小成比例。
位线信号产生电路130,用于根据选通信号Vs为当前选通的子块110的相应列的存储单元111的第一通路端提供位线驱动信号。根据字线驱动信号和位线驱动信号,当前选通的子块110的存储单元111处于导通状态并在存储单元111的第一通路端产生输出电流。当前未选通的子块110的存储单元111处于关断状态。
输出信号测量电路140,与多个位线BL的一端相连,用于测量存储阵列中每一列存储单元111的第一通路端的输出电流和以得到每一个子块110的模拟运算结果Y1。可以理解的是,这里的输出信号测量电路140可以与多个源极线SL的一端相连,用于测量存储阵列中每一列存储单元111的第二通路端的输出电流和以得到每一个子块110的模拟运算结果Y1。
具体地,在每一个子块110中,当存储单元111处于导通状态时,通过存储单元111的工作模型,对存储单元111的存储数据W和待运算数据X做乘法运算,得到每一个存储单元111的第一通路端的输出电流。当处于导通状态时,存储单元111在感知到的控制端施加的字线驱动信号和第一通路端施加的位线驱动信号时,会在存储单元111的第一通路端产生一定大小的电流,该电流与自身存储状态和控制端施加的字线驱动信号有关,可以表征对应两个数值的乘积。可以理解的是,当存储单元111处于关断状态时,存储单元111的第一通路端的输出电流为零。在每一个子块110中,分列对存储单元111的第一通路端的输出电流做加法运算,得到至少一个子块110的模拟运算结果Y1。
例如,待运算数据X为xij,其中,0<i≤n,0<j≤m,如图中所示的子块110的模拟运算结果Y1为[Y11 Y12],Y11=∑xijwij,其中,j=1,0<i≤2,Y12=∑xijwij,其中,j=2,0<i≤2。
图5a是本发明的一个实施例的存储单元的转移特性曲线。图5b是本发明的一个实施例的存储单元的输出特性曲线。图5a和图5b所示的存储单元例如是浮栅场效应管或SONOS场效应管,存储单元的源极接参考地电位。如图5a所示的转移特性曲线中,当漏源电压uDS为常量时,漏极电流iD和栅源电压uGS存在函数关系。跨导gm数值的大小表示栅源电压uGS对漏极电流iD的控制作用的强弱。跨导gm是存储单元的转移特性曲线上某一点的切线的斜率。跨导gm与切点的位置密切相关,由于转移特性曲线的非线性,因而漏极电流iD愈大,跨导gm愈大。通常,存储单元例如浮栅场效应管或SONOS场效应管有三个工作区域:可变电阻区、恒流区和夹断区。如图5b所示的输出特性曲线中示出存储单元的可变电阻区,具体示出存储单元施加三种栅源电压uGS时漏源电压uDS和漏极电流iD的关系曲线。当存储单元施加不同的栅源电压uGS和漏源电压uDS时,输出不同的漏极电流iD。
可选地,当漏源电压uDS为常量时,存储单元的工作模型的计算公式包括:
iD=gm×uGS (2)
其中,iD为存储单元的漏极电流,uGS为存储单元的栅源电压,gm为存储单元的跨导。
可以理解的是,通过公式(2)得到每一个存储单元的第一通路端的输出电流iD。进而,利用基尔霍夫定律,在每一个子块中,分列对存储单元的输出电流iD做加法运算,得到至少一个子块的模拟运算结果Y1。
根据本发明实施例,根据在一次加法运算中存储单元的个数的最大值,将存储阵列按行和列分块以得到至少一个子块,使得每一个子块中存储单元的行数小于等于最大值。分块对待运算数据和存储阵列的存储数据做乘加运算,得到至少一个子块的模拟运算结果。具体地,在每一个子块中,当存储单元处于导通状态时,通过存储单元的工作模型,对存储单元的存储数据和待运算数据做乘法运算,得到每一个存储单元的输出电流;在每一个子块中,分列对存储单元的第一通路端的输出电流做加法运算,得到至少一个子块的模拟运算结果。控制每个子块中存储单元的行数,以避免本发明实施例中数据运算的运算精度超出算法允许的预设精度误差范围,提高了存算一体电路的数据运算精度。
另外,存算一体电路中的存储阵列可以对数据进行存储和计算,无需耗费数据的存取时间,提高了基于存算一体电路的数据运算速度和效率。
图6是本发明的一个实施例的基于存算一体电路的数据运算方法的流程图。本实施例中的存算一体电路是如上述实施例中所示的存算一体电路,包括由多个存储单元组成的存储阵列。具体包括:
步骤S610,基于所述存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值。
步骤S620,根据所述最大值提供选通信号,并根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值。
步骤S630,根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算。
具体地,根据待运算数据产生多个字线驱动信号,并且根据选通信号为当前选通的子块的相应行的存储单元提供字线驱动信号;根据选通信号为当前选通的子块的相应列的存储单元提供位线驱动信号;根据字线驱动信号和位线驱动信号,当前选通的子块的存储单元处于导通状态并在第一通路端产生输出电流,当前未选通的子块的存储单元处于关断状态。
在每一个子块中,当存储单元处于导通状态时,通过存储单元的工作模型,对存储单元的存储数据和待运算数据做乘法运算,得到每一个存储单元的第一通路端的输出电流;在每一个子块中,分列对存储单元的第一通路端的输出电流做加法运算,得到至少一个子块的模拟运算结果。
步骤S640,将每一个所述子块的模拟运算结果模数转换为数字运算结果。
步骤S650,对所述至少一个子块的所述数字运算结果做加法运算,并计数所述至少一个子块的所述数字运算结果的当前累加次数。
步骤S660,判断所述当前累加次数是否小于所述子块的个数减一。如果所述当前累加次数小于所述子块的个数减一,则返回执行步骤S630;
如果所述当前累加次数大于等于所述子块的个数减一,则将所述当前累加结果作为所述存算一体电路的乘加运算结果。
根据本发明实施例,根据选通信号每次选通一个子块,以分块对待运算数据和存储阵列的存储数据做乘加运算,将每一个子块的模拟运算结果模数转换为数字运算结果,对至少一个子块的数字运算结果做加法运算,并计数至少一个子块的数字运算结果的当前累加次数,判断当前累加次数是否小于子块的个数减一,如果当前累加次数小于子块的个数减一,则返回对下一个子块的待运算数据和存储数据做乘加运算,如果当前累加次数大于等于子块的个数减一,则将当前累加结果作为存算一体电路的乘加运算结果。逐块累加至少一个子块的数字运算结果以得到存算一体电路的乘加运算结果,减少了每个子块的数据运算量,进而降低了对执行数据运算的硬件系统的需求。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。以上所述仅为本发明的较佳实施例而已,并不用已限制本发明,任何熟悉本专业的技术人员,再不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许变更或修饰等,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。
Claims (11)
1.一种存算一体电路,其特征在于,包括:
配置单元,用于基于存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
选通单元,与所述配置单元相连,用于根据所述最大值提供选通信号;
存算单元,包括由多个所述存储单元组成的存储阵列,根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值,
所述存算单元用于根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
模数转换单元,与所述存算单元相连,用于将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及
累加求和单元,对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
2.根据权利要求1所述的存算一体电路,其特征在于,所述存储单元包括非易失性存储器,所述非易失性存储器包括:浮栅场效应管和SONOS场效应管。
3.根据权利要求2所述的存算一体电路,其特征在于,所述累加求和单元,包括:
加法器,用于对所述至少一个子块的所述数字运算结果做加法运算;
计数器,用于计数所述至少一个子块的所述数字运算结果的当前累加次数;
判断电路,用于根据所述当前累加次数,为所述加法器提供反馈信号,
根据所述反馈信号,如果所述当前累加次数小于所述子块的个数减一,则所述加法器对当前累加结果和下一个所述子块的所述数字运算结果做加法运算,
如果所述当前累加次数大于等于所述子块的个数减一,则所述加法器将所述当前累加结果作为所述存算一体电路的乘加运算结果。
4.根据权利要求2所述的存算一体电路,其特征在于,所述存算单元包括:
所述存储阵列,其中,每一行的所述存储单元的控制端均连接至同一字线,多行所述存储单元对应连接至多个字线;
每一列的所述存储单元的第一通路端均连接至同一位线,多列所述存储单元对应连接至多个位线;
每一列的所述存储单元的第二通路端均连接至同一源极线,多列所述存储单元对应连接至多个源极线。
5.根据权利要求4所述的存算一体电路,其特征在于,所述存算单元还包括:
字线信号产生电路,用于根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
位线信号产生电路,用于根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态并在所述存储单元的所述第一通路端产生输出电流,
当前未选通的所述子块的所述存储单元处于关断状态。
6.根据权利要求5所述的存算一体电路,其特征在于,所述存算单元还包括:
输出信号测量电路,与所述多个位线的一端相连,用于测量所述存储阵列中每一列所述存储单元的所述第一通路端的输出电流和以得到每一个所述子块的所述模拟运算结果。
7.根据权利要求6所述的存算一体电路,其特征在于,
在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
8.一种基于存算一体电路的数据运算方法,其特征在于,所述存算一体电路包括由多个存储单元组成的存储阵列,所述数据运算方法包括:
基于所述存储单元的输出电流偏差,在对所述存储单元的输出电流进行加法运算的预设精度误差范围内,计算在一次加法运算中所述存储单元的个数的最大值;
根据所述最大值提供选通信号,并根据所述选通信号将所述存储阵列按行和列分块以得到至少一个子块,每一个所述子块中所述存储单元的行数小于等于所述最大值;
根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算;
将每一个所述子块的模拟运算结果模数转换为数字运算结果;以及
对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果。
9.根据权利要求8所述的数据运算方法,其特征在于,所述对所述至少一个子块的所述数字运算结果做加法运算,得到所述存算一体电路的乘加运算结果,包括:
对所述至少一个子块的所述数字运算结果做加法运算;
计数所述至少一个子块的所述数字运算结果的当前累加次数;
如果所述当前累加次数小于所述子块的个数减一,则对当前累加结果和下一个所述子块的所述数字运算结果做加法运算;
如果所述当前累加次数大于等于所述子块的个数减一,则将所述当前累加结果作为所述存算一体电路的乘加运算结果。
10.根据权利要求9所述的数据运算方法,其特征在于,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,包括:
根据所述待运算数据产生多个字线驱动信号,并且根据所述选通信号为当前选通的所述子块的相应行的所述存储单元提供所述字线驱动信号;
根据所述选通信号为所述当前选通的所述子块的相应列的所述存储单元提供位线驱动信号;
根据所述字线驱动信号和所述位线驱动信号,所述当前选通的所述子块的所述存储单元处于导通状态,并在所述存储单元的第一通路端产生输出电流,
当前未选通的所述子块的所述存储单元处于关断状态。
11.根据权利要求10所述的数据运算方法,其特征在于,所述根据所述选通信号每次选通一个所述子块,以分块对待运算数据和所述存储阵列的存储数据做乘加运算,还包括:
在每一个所述子块中,当所述存储单元处于导通状态时,通过所述存储单元的工作模型,对所述存储单元的所述存储数据和所述待运算数据做乘法运算,得到每一个所述存储单元的所述第一通路端的所述输出电流;
在每一个所述子块中,分列对所述存储单元的所述第一通路端的所述输出电流做加法运算,得到所述至少一个子块的所述模拟运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854667.0A CN112558917B (zh) | 2019-09-10 | 2019-09-10 | 存算一体电路和基于存算一体电路的数据运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854667.0A CN112558917B (zh) | 2019-09-10 | 2019-09-10 | 存算一体电路和基于存算一体电路的数据运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112558917A CN112558917A (zh) | 2021-03-26 |
CN112558917B true CN112558917B (zh) | 2021-07-27 |
Family
ID=75029011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910854667.0A Active CN112558917B (zh) | 2019-09-10 | 2019-09-10 | 存算一体电路和基于存算一体电路的数据运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112558917B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113316751A (zh) * | 2021-04-16 | 2021-08-27 | 尼奥耐克索斯有限私人贸易公司 | 一种低损耗运算电路及其运行方法 |
CN113095496B (zh) * | 2021-04-25 | 2022-07-15 | 山东大学 | 一种提高存算一体阵列计算精度的电路和方法 |
CN113190208B (zh) * | 2021-05-07 | 2022-12-27 | 电子科技大学 | 能存算一体化单元及状态控制方法、集成模组、处理器及设备 |
CN113257306B (zh) * | 2021-06-10 | 2021-11-26 | 中科院微电子研究所南京智能技术研究院 | 一种基于静态随机存取存储器的存算一体阵列及加速装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484404A (zh) * | 2014-12-15 | 2015-04-01 | 中国科学院东北地理与农业生态研究所 | 一种改善分布式文件系统中地理栅格数据文件处理方法 |
CN109859786A (zh) * | 2019-01-28 | 2019-06-07 | 北京航空航天大学 | 一种基于自旋磁存储器的数据运算方法 |
CN110137173A (zh) * | 2019-04-15 | 2019-08-16 | 上海华虹宏力半导体制造有限公司 | 存储器及其操作方法 |
CN110209375A (zh) * | 2019-05-30 | 2019-09-06 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG47139A1 (en) * | 1995-09-22 | 1998-03-20 | Ibm | Disk drive of portable computer with adaptive demand-driven power management |
US8971124B1 (en) * | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9847110B2 (en) * | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
CN109634557B (zh) * | 2018-11-19 | 2021-04-06 | 华中科技大学 | 一种基于1t1r存储器的乘法器及运算方法 |
CN110109646B (zh) * | 2019-03-28 | 2021-08-27 | 北京迈格威科技有限公司 | 数据处理方法、装置和乘加器及存储介质 |
-
2019
- 2019-09-10 CN CN201910854667.0A patent/CN112558917B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484404A (zh) * | 2014-12-15 | 2015-04-01 | 中国科学院东北地理与农业生态研究所 | 一种改善分布式文件系统中地理栅格数据文件处理方法 |
CN109859786A (zh) * | 2019-01-28 | 2019-06-07 | 北京航空航天大学 | 一种基于自旋磁存储器的数据运算方法 |
CN110137173A (zh) * | 2019-04-15 | 2019-08-16 | 上海华虹宏力半导体制造有限公司 | 存储器及其操作方法 |
CN110209375A (zh) * | 2019-05-30 | 2019-09-06 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
Non-Patent Citations (1)
Title |
---|
RRAM存算一体化乘法器的集成电路设计;尹志强;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190715;I135-114 * |
Also Published As
Publication number | Publication date |
---|---|
CN112558917A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112558917B (zh) | 存算一体电路和基于存算一体电路的数据运算方法 | |
CN112183739B (zh) | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 | |
Le Gallo et al. | Mixed-precision in-memory computing | |
US20200311512A1 (en) | Realization of binary neural networks in nand memory arrays | |
TWI720524B (zh) | 用於執行記憶體內乘法與累加函數的方法及電路 | |
US11657259B2 (en) | Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine | |
US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
WO2019108458A1 (en) | Neural network circuits having non-volatile synapse arrays | |
WO2021076183A1 (en) | Realization of neural networks with ternary inputs and ternary weights in nand memory arrays | |
CN110007895B (zh) | 一种模拟乘法电路、模拟乘法方法及其应用 | |
US11610105B2 (en) | Systems and methods for harnessing analog noise in efficient optimization problem accelerators | |
CN110543937B (zh) | 神经网络及操作方法、神经网络信息处理系统 | |
KR20210038290A (ko) | 신경망을 사용하여 메모리 장치 상에서 노이즈 제거를 수행하는 방법 | |
CN110751276A (zh) | 在nand存储器阵列中实现具有三值输入和二值权重的神经网络 | |
CN110751279B (zh) | 一种铁电电容耦合神经网络电路结构及神经网络中向量与矩阵的乘法运算方法 | |
CN111859261B (zh) | 计算电路及其操作方法 | |
CN115691613B (zh) | 一种基于忆阻器的电荷型存内计算实现方法及其单元结构 | |
CN116384246A (zh) | 用于矩阵运算的存算一体装置及其操作方法 | |
CN112017701B (zh) | 阈值电压调整装置和阈值电压调整方法 | |
CN115458005A (zh) | 数据处理方法和存算一体装置、电子设备 | |
CN113935488A (zh) | 用于神经网络的推理引擎及其操作方法 | |
US20240161792A1 (en) | Compensation for conductance drift in analog memory | |
CN115995256B (zh) | 一种自校准电流编程及电流计算型存内计算电路及其应用 | |
US20230027768A1 (en) | Neural network computing device and computing method thereof |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 519080 unit a1106-1107, block a, pioneering building, Tsinghua Science and Technology Park, 101 University Road, high tech Zone, Zhuhai City, Guangdong Province Patentee after: Zhuhai Boya Technology Co.,Ltd. Address before: 519080 unit a1106-1107, block a, pioneering building, Tsinghua Science and Technology Park, 101 University Road, high tech Zone, Zhuhai City, Guangdong Province Patentee before: ZHUHAI BOYA TECHNOLOGY Co.,Ltd. |