CN108109655A - 基于mig逻辑的rram迭代乘法器电路及实现方法 - Google Patents

基于mig逻辑的rram迭代乘法器电路及实现方法 Download PDF

Info

Publication number
CN108109655A
CN108109655A CN201711468243.8A CN201711468243A CN108109655A CN 108109655 A CN108109655 A CN 108109655A CN 201711468243 A CN201711468243 A CN 201711468243A CN 108109655 A CN108109655 A CN 108109655A
Authority
CN
China
Prior art keywords
rram
units
rram units
voltage
logical value
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.)
Granted
Application number
CN201711468243.8A
Other languages
English (en)
Other versions
CN108109655B (zh
Inventor
张锋
范冬宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN201711468243.8A priority Critical patent/CN108109655B/zh
Publication of CN108109655A publication Critical patent/CN108109655A/zh
Application granted granted Critical
Publication of CN108109655B publication Critical patent/CN108109655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/0813Threshold logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本公开提供了一种基于MIG逻辑的RRAM迭代乘法器电路,包括:I/O模块,第二级数据选择器,控制模块,第一级数据选择器,列译码器,RRAM单元阵列,响应模块以及读出模块。本公开采用阻变存储器和MAJ逻辑之间的关系,运用在计算方面,可以大幅度的减少运算的步骤,从而减少了步骤过多而在组边存储器内部产生的误差,提高了计算的准确性;同时本公开完成相同规模的乘法运算所需要的RRAM单元数量较少,从而可以有效的降低因为RRAM自身波动性,即阻值的不稳定性引起的计算误差。

Description

基于MIG逻辑的RRAM迭代乘法器电路及实现方法
技术领域
本发明涉及非挥发性存储器计算领域,特别涉及一种基于MIG逻辑的电阻转变随机存储器(RRAM,Resistive Random Access Memory,简称阻变存储器)的计算电路及实现方法。
背景技术
随着大数据时代的到来,越来越多的数据需要进行存储和计算,传统的冯诺依曼计算机在大数据,海量的信息冲击下,其不足之处愈发明显,传统冯诺依曼计算机在处理数据时,会受到数据通路(即CPU与存储器相连的数据总线)的容量的限制,使得计算机处理数据的速度无法提高。而阻变存储器RRAM作为一个新型的存储器,近来受到广泛关注。阻变存储器具有非易失性,这个特性使存储器可以在断电的情况下依然能够保留所存储的数据信息。
阻变存储器通过外界施加电场的作用来使器件在两个或者多个不同的电阻阻值之间转变来实现对信息的存储,电阻的转变发生后,阻值可以得到保留,所以阻变存储器被视为有前景的非易失存储器。图1为电阻转变随机存储器RRAM的I-V特性示意图。因为阻变存储器具有非易失的特性,所以可以将这一特性运用到数据计算方面,这样一来可以将存储与计算相结合到同一个器件上,打破了传统存储与计算分开的架构,可能会对未来的计算机带来革命性的改变。
利用阻变存储器来进行逻辑运算已经有很多科研人员进行研究,最具有代表性的是惠普实验室设计了基于阻变存储器的”蕴含”操作,”蕴含”逻辑操作是惠普实验室于2008年利用阻变存储器完成了基本逻辑运算的以一种方法,其特点是利用阻变存储的阻态变化和电阻分压原理,将输入电压代表输入信号,最后将输出结果以电阻的形式存入到阻变存储器中,并且证明了蕴含操作和清零操作下可以实现任意的布尔逻辑的运算。但是该方法的运算过程复杂,而且需要很多忆阻器进行中间操作,会放大阻值误差。
公开内容
(一)要解决的技术问题
本公开提供了一种基于MIG逻辑的RRAM迭代乘法器电路及实现方法,以至少部分解决以上所提出的技术问题。
(二)技术方案
根据本公开的一个方面,提供了一种基于MIG逻辑的RRAM迭代乘法器电路,包括:I/O模块,所述I/O模块为I/O输入,用于输入RRAM阵列信号,以及将计算完成后的结果信号输出到外围电路;第二级数据选择器,与I/O模块相连,用于获取I/O模块写入的数据,接收控制信号从而开启相应的工作模式;控制模块,连接到第二级数据选择器,用于向第二级数据选择器提供控制信号;所述控制信号包括:写使能信号和读使能信号,用于选择RRAM的工作模式;第一级数据选择器,连接到第二级数据选择器,第一级数据选择器用于接收列译码电路中的信号从而选择需要开启的RRAM单元;列译码器,连接到第一级数据选择器,用于接收列选通地址信号,进行地址译码,并发送给第一数据选择器,选择指定的RRAM单元;RRAM单元阵列,连接到第一级数据选择器,包括多个RRAM单元,其中,输入RRAM单元分别存储乘数和被乘数,输出RRAM用于输出乘法结果,工作RRAM用于存储计算所需的中间值;读出模块,与RRAM单元阵列及I/O模块相连,用于读出计算过程中的数据及乘法结果,并将乘法结果输出到外围处理电路;响应模块,连接到读出模块,用于给读出模块发送读出信号,控制数据读出。
在本公开一些实施例中,所述RRAM迭代乘法器电路为RRAM阵列结构无符号位2×2迭代乘法器电路,其中,RRAM单元阵列包括一行由平行和垂直纳米线相连的15个RRAM单元,所述15个RRAM单元中,其中RRAM单元X2,X1,Y2,Y1为输入RRAM单元,RRAM单元Z1至Z4的RRAM组为输出RRAM单元,RRAM单元M1至M7的RRAM组为工作RRAM。
在本公开一些实施例中,所述第二级数据选择器包括:多路选择器MUX,所述MUX的输出端与所述的第一级数据选择器的输出端相连;所述MUX的输入端与I/O模块相连;所述MUX的控制信号端连接所述控制信号模块。
在本公开一些实施例中,第一级数据选择器包括:多个数据选择开关;所述数据选择开关数量与所述RRAM单元的个数相同,所述数据选择开关的输出端与所述RRAM存储阵列的行线相连;所述数据选择开关的输入端与所述第二级数据选择器的输出端相连;所述数据选择开关的控制端与所述列译码器的输出相连。
在本公开一些实施例中,所述数据选择开关包括,传输门和反相器,所述传输门的控制信号以及所述反相器的输入端相连,作为数据选择开关的控制信号接入端;所述传输门输入端作为所述数据选择开关的输入端;所述传输门输出端与第二级数据选择器相连;反相器的输出端与传输门的反相时钟相连。
在本公开一些实施例中,所述读出模块包括:灵敏放大器,所述灵敏放大器的输入一端与输出RRAM单元相连,另一端连接一个参考电压和参考电阻,输出端连接I/O模块;所述参考电阻的阻值远远大于RRAM单元的低阻态的阻值,同时远远小于其高阻态的阻值。
根据本公开的另一个方面,提供了一种基于MIG逻辑的RRAM迭代乘法器电路的实现方法,包括:步骤S0,定义RRAM单元各逻辑值,输入信号X1,X2,Y1,Y2并且其他单元置为高阻;步骤S1,依次将Y1,Y2与X1和X2相与,并将得到的结果存入RRAM中;步骤S2,将计算结果错位相加求出最后的乘法结果。
在本公开一些实施例中,所述步骤S0包括:定义RRAM单元高低组态逻辑值及电压VSET电压VCLEAR、电压VCNOD的逻辑值,其中,每个RRAM单元的上电极逻辑值标记为P,下电极逻辑值标记为Q。
在本公开一些实施例中,所述步骤S1中,将乘数y1、y2求反,并得到x2y2、x1y2、x2y1、x1y1,并存入相应的RRAM单元中,包括:子步骤S11,在RRAM单元M1上分别加逻辑值为PM1=1,QM1=y2的电压,将与y2相反的逻辑值存入RRAM单元M1中;子步骤S12,在RRAM单元M2上分别加逻辑值为PM2=1,QM2=y1的电压,将与y1相反的逻辑值存入RRAM单元M2中;子步骤S13,在RRAM单元Z1上分别施加逻辑值为PZ1=x2的电压,计算出X2Y2存入RRAM单元Z1中,作为乘法结果输出的最低位;子步骤S14,在RRAM单元M3上分别施加逻辑值为PM3=x1的电压,计算出X1Y2存入RRAM单元M3中;子步骤S15,在RRAM单元M4上分别施加逻辑值为PM4=x2的电压,计算出X2Y1存入RRAM单元M4中;子步骤S16,在RRAM单元Z3上分别施加逻辑值为PZ3=x1的电压,计算出X1Y1存入RRAM单元Z3中。
在本公开一些实施例中,所述步骤S2将计算结果错位相加求出最后的乘法结果包括:子步骤S21,通过MAJ门逻辑计算得出输出的次低位z2及次低位到次高位的进位c1;包括:次子步骤S211,在RRAM单元M5上分别施加逻辑值为PM5=x2y1,QM5=x1y2的电压,计算出存入RRAM单元M5中;次子步骤S212,在RRAM单元Z2上分别施加逻辑值为PZ2=x1y2,QZ2=x2y1的电压,计算出存入RRAM单元Z2中;次子步骤S213,在RRAM单元Z2上分别施加逻辑值为 QZ2=0的电压,计算出逻辑乘法结果即z2的值,存入RRAM单元Z2中;次子步骤S214,在RRAM单元M3上分别施加逻辑值为PM3=X2Y1,QM3=1的电压,计算出向乘法结果z3的进位c1存在M3中;次子步骤S215,在RRAM单元M7上分别加逻辑值为PM7=1,QM7=c1的电压,将与c1相反的逻辑值存入了RRAM单元M7中;子步骤S22,通过次低位到次高位的进位c1计算得出输出的最高位z4及次高位z3;包括:次子步骤S221,在RRAM单元Z4上分别施加逻辑值为PZ4=X1Y1的电压,计算出z4的值,存入RRAM单元Z4中;次子步骤S222,在RRAM单元M6上分别施加逻辑值为PM6=c1,QM6=X1Y1的电压,计算存入RRAM单元M6中;次子步骤S223,在RRAM单元Z3上分别施加逻辑值为PZ3=0,QZ3c1的电压,计算存入RRAM单元Z3中;次子步骤S224,在RRAM单元Z3上分别施加逻辑值为 QZ3=0的电压,计算出乘法结果z3,存入RRAM单元Z3中。
(三)有益效果
从上述技术方案可以看出,本公开基于MIG逻辑的RRAM迭代乘法器电路及实现方法,至少具有以下有益效果其中之一:
(1)由于与传统的基于“蕴含”操作的RRAM乘法电路相比,完成相同规模的乘法运算所需要的RRAM单元数量较少,从而较少的RRAM单元数量可以有效的降低因为RRAM自身波动性,即阻值的不稳定性引起的计算误差;
(2)由于与传统的基于“蕴含”操作的RRAM乘法电路相比,完成相同规模的乘法运算所需要的RRAM操作步骤更少,而较少的步骤同样可以降低因为多次在RRAM间的操作引起的误差,从而提高计算的准确性。
(3)由于几个RRAM可以同时完成操作,即实现并行运算,因此提高了RRAM的计算速度。
附图说明
图1是电阻转变随机存储器RRAM的I-V特性示意图。
图2是传统“与或非”与MIG逻辑完成g=x(y+uv)的流程示意图。
图3是利用阻变存储器快速完成MAJ逻辑门的真值表和公式示意图。
图4是本公开实施例基于MIG逻辑的RRAM无符号位2×2乘法器迭代乘法器电路。
图5是本公开实施例迭代乘法器的计算原理图;
图6是本公开实施例用电阻转变随机存储器RRAM的基于MIG逻辑实现一个2×2乘法器的方法流程图。
具体实施方式
本公开提供了一种基于多数反相器图示法(Majority-Inverter Graph,简称MIG)逻辑的RRAM迭代乘法器电路及实现方法。多数反相器图示法是一种可以高效地优化布尔逻辑功能的表示结构。MIG是一种由许多同类的三个输入端的多数函数逻辑功能组成的逻辑网络。在一个MIG中,边缘通过正反两种互补的脉冲表示。简单的说MIG是由很多个多数函数逻辑操作(the majority function,简称MAJ)组成的,而MAJ则是一种有三个输入的逻辑结构,可以通过改变其中一个输入的逻辑值(“0”或“1”)来控制另外两个输入是进行“与”操作还是“或”操作,如果用逻辑表达式来表示的话,可以表示成:
M(x,y,z)=x·y+y·z+x·z
下面举一个简单的例子来说明MIG逻辑与传统的“与或非”表示的区别,例如:g=x(y+uv)。
图2是传统“与或非”与MIG逻辑完成g=x(y+uv)的流程示意图。阻变存储器因为有根据外界电场改变自己电阻的特性,如果将阻变存储器的上电极标记为P,下电极标记为Q,阻变存储器的原阻值为R,而阻变存储器的下一个阻值设为R’,同样将正向的VSET电压,反向的VCLEAR电压,和不会引起阻变存储器阻值变化的VCNOD电压分别对应逻辑值为(P=1,Q=0),(P=0,Q=1)和(P=Q)。图3是利用阻变存储器快速完成MAJ逻辑门的真值表,其完成的MAJ逻辑门公式为:
由图3可以看出阻变存储器的下一时刻的阻值与原阻值,P,Q三个逻辑输入值存在一个MAJ的逻辑,所以可以利用阻变存储器构成一个天然的MAJ逻辑门。本公开采用阻变存储器和MAJ逻辑之间的关系,运用在计算方面,可以大幅度的减少运算的步骤,从而减少了步骤过多而在组边存储器内部产生的误差,提高了计算的准确性。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
本公开某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本公开的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本公开满足适用的法律要求。
在本公开的第一个示例性实施例中,提供了一种基于MIG逻辑的电阻转变随机存储器RRAM阵列结构无符号位2×2迭代乘法器电路。图4为本公开第一实施例基于MIG逻辑的RRAM无符号位2×2乘法器迭代乘法器电路的结构示意图。如图4所示,本公开基于MIG逻辑的RRAM无符号位2×2乘法器迭代乘法器电路,包括:I/O模块,第二级数据选择器,控制模块,第一级数据选择器,列译码器,RRAM单元阵列,响应模块以及读出模块。
以下分别对本实施例基于MIG逻辑的电阻转变随机存储器RRAM阵列结构无符号位2×2迭代乘法器电路的各个组成部分进行详细描述。
I/O模块用于将外部的信号输入到RRAM阵列用于计算和操作控制;以及将计算结果输出到外部电路。
第二级数据选择器与I/O模块相连,用于获取I/O模块写入的数据,接收控制电路的信号,负责打开相应的操作模式,例如写入,读出等。优选地,所述第二级数据选择器包括:多路选择器MUX;所述MUX的输出端与所述的第一级数据选择器的输出端相连;所述MUX的输入端与I/O模块相连;所述MUX的控制信号端连接所述控制信号模块。
控制模块连接第二级数据选择器,用于向第二级数据选择器提供控制信号;所述控制信号包括:写使能信号和读使能信号,用于选择存储器的工作模式,即写入或者读入;
第一级数据选择器连接到第二级数据选择器,第一级数据选择器用于接收列译码电路的传出信号并打开相应的RRAM单元;优选地,第一级数据选择器包括:多个数据选择开关;所述数据选择开关数量与所述RRAM单元的个数相同,所述数据选择开关的输出端与所述RRAM存储阵列的行线相连;所述数据选择开关的输入端与所述第二级数据选择器的输入端相连;所述数据选择开关的控制端与所述列译码器的输出相连。所述数据选择开关包括,传输门和反相器;所述传输门的控制信号以及所述反相器的输入端相连,作为数据选择开关的控制信号接入端;所述传输门输入端作为所述数据选择开关的输入端;所述传输门输出端与第二级数据选择器相连;反相器的输出端与传输门的反相时钟相连。
列译码器连接到第一级数据选择器,用于接收外部列选通地址信号,进行地址译码,并发送给第一数据选择器,选择指定的RRAM单元。
RRAM单元阵列连接到第一级数据选择器,包括一行由平行和垂直纳米线相连的15个电阻转变随机存储器RRAM单元,其中,所述RRAM单元X2,X1,Y2,Y1为输入RRAM单元,分别存储乘数和被乘数,Z编号的RRAM组Z1至Z4为输出RRAM,输出乘法结果,M编号的RRAM组M1至M7为工作RRAM,用于存储计算所需的中间值。
读出模块与RRAM单元阵列及输出I/O相连,用于读出计算过程中的数据及乘法结果,并将乘法结果输出到外围处理电路;优选地,所述读出模块包括:灵敏放大器;所述灵敏放大器的输入一端与输出RRAM单元相连,另一端连接一个参考电压和参考电阻,输出端连接I/O模块;所述参考电阻的阻值要远远大于RRAM单元的低阻态阻值,同时又要远远小于其高阻态的阻值。
响应模块连接到读出模块,用于给读出模块发送读出信号,控制数据读出。
图5是本公开实施例迭代乘法器的计算原理图,如图5所示,输入信号X1,X2表示被乘数,其中X2为低位,X1为高位;输入信号Y1,Y2表示乘数,其中Y2为低位,Y1为高位;而c1,c2为运算中的向高位的进位信号,在运算的过程中产生存储在对应的RRAM单元中用于后续的计算;输出信号Z1,Z2,Z3,Z4则表示最后2乘2由低位到高的位输出结果。首先乘数Y1,Y2与被乘数的各个位相乘,然后将结果错位相加即可以得到最后的输出结果。相加时按照一位全加器的原理进行相加,一位全加器的MIG逻辑表达式如下:
Cout=XY+YC+XC=M(X,Y,C)
本公开基于MIG逻辑的2×2乘法器的RRAM阵列结构,运用了MIG逻辑来简化计算步骤。传统的基于蕴含逻辑RRAM乘法器因为运算步骤复杂且繁多,使得所用的电阻转变随机存储单元RRAM的数量比较多,使得中间的误差会增大,而通过实验发现RRAM的变化特性与MIG逻辑的契合度比较高,所以在RRAM上基于MIG逻辑的操作会简化乘法器的操作步骤,从而减少误差。
至此,本公开第一实施例基于MIG逻辑的2×2乘法器的RRAM阵列结构无符号位2×2迭代乘法器电路介绍完毕。
在本公开的第二个示例性实施例中,提供了一种基于MIG逻辑的2×2乘法器的RRAM阵列结构无符号位2×2迭代乘法器电路的实现方法,图6是本公开实施例用电阻转变随机存储器RRAM的基于MIG逻辑实现一个2×2乘法器的方法流程图,如图6所示,该方法包括:
步骤S0,定义电阻转变随机存储器RRAM各逻辑值,信号输入(X1,X2,Y1,Y2)并且其他单元置为高阻;
步骤S1,依次将Y1,Y2与X1和X2相与,并将得到的结果存入RRAM中;
步骤S2,将计算结果错位相加求出最后的乘法结果。
以下分别对本实施例基于MIG逻辑的电阻转变随机存储器RRAM阵列结构无符号位2×2迭代乘法器电路实现方法的各个步骤进行详细描述。
所述步骤S0定义RRAM各逻辑值,输入X1,X2,Y1,Y2,并置其他单元为高阻,包括:
子步骤S01,定义电阻转变随机存储器RRAM高低组态逻辑值及电压VSET电压VCLEAR、电压VCNOD的逻辑值;在本实施例中,定义电阻转变随机存储器RRAM低阻态为逻辑“1”,高阻态为逻辑“0”。VSET电压的逻辑值为P=1,Q=0;VCLEAR电压的逻辑值为P=0,Q=1;VCNOD电压的逻辑值为任意满足P=Q的逻辑值,这里的P代表电阻转变随机存储器的上电极,Q代表电阻转变随机存储器的下电极。
子步骤S02,确认输入及其他输出和工作电阻转变存储器组的状态,在本实施例中,在输入单元X2,X1,Y2,Y1中分别输入对应的被乘数x1,x2和乘数y1,y2(例如x1=1,x2=0,y1=1,y2=0,分别对应相应的阻值编程入输入电阻转变存储器RRAM中,下面的步骤中也都采用这个逻辑作为实例)。而其他输出和工作电阻转变存储器组先全部置为高阻态,即预存储逻辑“0”。该步骤的逻辑表达式如下:
S02:X2=x2,X1=x1,Y2=y2,Y1=y1,其它置为高阻态
所述步骤S1中,将乘数y1、y2求反,并得到x2y2、x1y2、x2y1、x1y1,并存入相应的RRAM中,包括:
子步骤S11,将乘数的y2的反存入电阻转变随机存储器RRAM单元M1中。具体操作如下,在M1上加逻辑值为PM1=1,QM1=y2的电压,便将与y2相反的逻辑值存入了RRAM单元M1中(如本实施例中所述例子的情况下则QM1=0,相当于加VSET电压,RRAM单元M1的下一时刻阻值变为低阻态即逻辑“1”,也就是y2的反存入了M1中)。该步骤的逻辑表达式如下:
子步骤S12,将乘数的y1的反存入电阻转变随机存储器RRAM单元M2中。具体操作如下,在M2上加逻辑值为PM2=1,QM2=y1的电压,便将与y1相反的逻辑值存入了RRAM单元M2中。本实施例中子步骤S101所述定义的情况下则QM2=1,相当于加VCNOD电压,RRAM单元M2的下一时刻阻值保持高阻态即逻辑“0”,也就是y1的反存入了M2中。该步骤的逻辑表达式如下:
子步骤S13,用MAJ门逻辑计算出X2Y2存入电阻转变随机存储器Z1中,作为乘法结果输出的最低位。具体操作步骤如下,在Z1上施加逻辑值为PZ1=x2的电压,原RRAM单元Z1中的电阻会变为与逻辑X2Y2所对应的阻态。本实施例中所述情况,在Z1上施加VCLEAR电压,则Z1被无条件置为高阻态,即逻辑“0”也正是“X2Y2”的逻辑值。该步骤的逻辑表达式如下:
子步骤S14,用MAJ门逻辑计算出X1Y2存入电阻转变随机存储器M3中,为后续计算乘法结果z2做准备。具体操作步骤如下,在M3上施加逻辑值为PM3=x1的电压,原RRAM单元M3中的电阻会变为与X1Y2逻辑所对应的阻态。本实施例中所述情况,在M3上施加VCNOD电压,则M3保持原来的高阻态,即逻辑“0”也正是“X1Y2”的逻辑值。该步骤的逻辑表达式如下:
子步骤S15,用MAJ门逻辑计算出X2Y1存入电阻转变随机存储器M4中,为后续计算乘法结果z2做准备。具体操作步骤如下,在M4上施加逻辑值为PM4=x2的电压,原RRAM单元M4中的电阻会变为与X2Y1逻辑所对应的阻态。本实施例中所述情况,在M4上施加VCNOD电压,则M4保持原来的高阻态,即逻辑“0”也正是“X2Y1”的逻辑值。该步骤的逻辑表达式如下:
子步骤S16,用MAJ门逻辑计算出X1Y1存入电阻转变随机存储器Z3中,为后续计算乘法结果z3做准备。具体操作步骤如下,在Z3上施加逻辑值为PZ3=x1的电压,原RRAM单元Z3中的电阻会变为与X1Y1逻辑所对应的阻态。本实施例中所述情况,在Z3上施加VSET电压,则Z3会被置为低阻态,即逻辑“1”也正是“X1Y1”的逻辑值。该步骤的逻辑表达式如下:
所述步骤S2将计算结果错位相加求出最后的乘法结果包括:
子步骤S21,通过MAJ门逻辑计算得出输出的次低位z2及次低位到次高位的进位c1,并为得到次高位z3、最高位z4做准备。包括:
次子步骤S211,用MAJ门逻辑计算出存入电阻转变随机存储器M5中,为后续计算乘法结果z2做准备。具体操作步骤如下,在M5上施加逻辑值为PM5=x2y1(M4中的阻值逻辑),QM5=x1y2(M3中的阻值逻辑)的电压,原RRAM单元M5中的电阻会变为与逻辑所对应的阻态。本实施例中所述情况,在M5上施加VCNOD电压,则M5会保持前一时刻的阻态高阻态,即逻辑“0”也正是的逻辑值。该步骤的逻辑表达式如下:
次子步骤S212,用MAJ门逻辑计算出存入电阻转变随机存储器Z2中,为后续计算乘法结果z2做准备。具体操作步骤如下,在Z2上施加逻辑值为PZ2=x1y2(M3中的阻值逻辑),QZ2=x2y1(M4中的阻值逻辑)的电压,原RRAM单元Z2中的电阻会变为与逻辑所对应的阻态。本实施例中所述情况,在Z2上施加VCNOD电压,则Z2会保持前一时刻的阻态高阻态,即逻辑“0”也正是的逻辑值。该步骤的逻辑表达式如下:
次子步骤S213,用MAJ门逻辑计算出z2的值存入RRAM单元Z2中。具体操作步骤如下,在Z2上施加逻辑值为(M5中的阻值逻辑),QZ2=0的电压,原RRAM单元Z2中的电阻会变为与逻辑乘法结果即z2所对应的阻态。本实施例中所述情况,在Z2上施加VCNOD电压,则Z2会保持前一时刻的阻态高阻态,即逻辑“0”也正是的逻辑值,就是乘法结果z2。该步骤的逻辑表达式如下:
次子步骤S214,用MAJ门逻辑计算出向乘法结果z3的进位c1存在M3中,为计算乘法结果z3做准备。具体操作步骤如下,在M3上施加逻辑值为PM3=X2Y1(M4中的阻值逻辑),QM3=1的电压,原RRAM单元M3中的阻值会变为与进位c1所对应的阻态。本实施例中所述情况,在M3上施加VCLEAR电压,则M3会无条件置为高阻态,即逻辑“0”也正是进位c1的逻辑值。该步骤的逻辑表达式如下:
次子步骤S215,将进位c1的反存入RRAM单元M7中,为计算乘法结果z4做准备。具体操作如下,在M7上加逻辑值为PM7=1,QM7=c1(M3中的阻值逻辑)的电压,便将与c1相反的逻辑值存入了RRAM单元M7中。本实施例中所述例子的情况下则QM7=0,相当于加VSET电压,RRAM单元M7的下一时刻阻值变为低阻态即逻辑“1”,也就是c1的反存入了M7中。该步骤的逻辑表达式如下:
子步骤S22,通过次低位到次高位的进位c1计算得出输出的最高位z4及次高位z3。包括:
次子步骤S221,用MAJ门逻辑计算出z4的值存入RRAM单元Z4中。具体操作步骤如下,在Z4上施加逻辑值为PZ4=X1Y1(Z3中的阻值逻辑),的电压,原RRAM单元Z4中的电阻会变为与逻辑乘法结果z4所对应的阻态(例:本实施例中所述情况,在Z4上施加VCNOD电压,则Z4会保持前一时刻的阻态高阻态,即逻辑“0”也正是乘法结果z4)。该步骤的逻辑表达式如下:
次子步骤S222,用MAJ门逻辑计算存入RRAM单元M6中,为计算乘法结果z3做准备。具体操作步骤如下,在M6上施加逻辑值为PM6=c1(M3中的阻值逻辑),QM6=X1Y1的电压,原RRAM单元M6中的阻值会变为与进位所对应的阻态(例:本实施例中所述情况,在M6上施加VCLEAR电压,则M3会无条件置为高阻态,即逻辑“0”也正是进位的逻辑值)。该步骤的逻辑表达式如下:
次子步骤S223,用MAJ门逻辑计算存入RRAM单元Z3中,为计算乘法结果z3做准备。具体操作步骤如下,在Z3上施加逻辑值为PZ3=0,QZ3=c1(M3中的阻值逻辑)的电压,原RRAM单元Z3中的阻值会变为与所对应的阻态(例:本实施例中所述情况,在Z3上施加VCNOD电压,则Z3会保持前一时刻的阻值,即逻辑“1”也正是的逻辑值)。该步骤的逻辑表达式如下:
次子步骤S224,用MAJ门逻辑计算出乘法结果z3存入RRAM单元Z3中。具体操作步骤如下,在Z3上施加逻辑值为(M6中的阻值逻辑),QZ3=0的电压,原RRAM单元Z3中的阻值会变为与乘法结果z3所对应的阻态(例:本实施例中所述情况,在Z3上施加VCNOD电压,则Z3会保持前一时刻的阻值,即逻辑“1”也正是乘法结果z3的逻辑值)。该步骤的逻辑表达式如下:
本发明通过利用最新的MIG逻辑,在RRAM上实现了一个2×2的乘法器的计算,与传统的冯诺依曼计算机相比优点在于将存储与计算相结合,省去了数据通路,与传统基于蕴含逻辑的RRAM乘法器相比运算步骤更少,提高了运算的准确性。
为了达到简要说明的目的,上述实施例1中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。
至此,本公开第二实施例基于MIG逻辑的电阻转变随机存储器RRAM阵列结构无符号位2×2迭代乘法器电路实现方法介绍完毕。
至此,已经结合附图对本公开实施例进行了详细描述。需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的相关设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种基于MIG逻辑的RRAM迭代乘法器电路,包括:
I/O模块,所述I/O模块为I/O输入,用于输入RRAM阵列信号,以及将计算完成后的结果信号输出到外围电路;
第二级数据选择器,与I/O模块相连,用于获取I/O模块写入的数据,接收控制信号从而开启相应的工作模式;
控制模块,连接到第二级数据选择器,用于向第二级数据选择器提供控制信号;所述控制信号包括:写使能信号和读使能信号,用于选择RRAM的工作模式;
第一级数据选择器,连接到第二级数据选择器,第一级数据选择器用于接收列译码电路中的信号从而选择需要开启的RRAM单元;
列译码器,连接到第一级数据选择器,用于接收列选通地址信号,进行地址译码,并发送给第一数据选择器,选择指定的RRAM单元;
RRAM单元阵列,连接到第一级数据选择器,包括多个RRAM单元,其中,输入RRAM单元分别存储乘数和被乘数,输出RRAM用于输出乘法结果,工作RRAM用于存储计算所需的中间值;
读出模块,与RRAM单元阵列及I/O模块相连,用于读出计算过程中的数据及乘法结果,并将乘法结果输出到外围处理电路;
响应模块,连接到读出模块,用于给读出模块发送读出信号,控制数据读出。
2.根据权利要求1所述的RRAM迭代乘法器电路,所述RRAM迭代乘法器电路为RRAM阵列结构无符号位2×2迭代乘法器电路,其中,
RRAM单元阵列包括一行由平行和垂直纳米线相连的15个RRAM单元,所述15个RRAM单元中,其中RRAM单元X2,X1,Y2,Y1为输入RRAM单元,RRAM单元Z1至Z4的RRAM组为输出RRAM单元,RRAM单元M1至M7的RRAM组为工作RRAM。
3.根据权利要求1或2所述的RRAM迭代乘法器电路,所述第二级数据选择器包括:
多路选择器MUX,所述MUX的输出端与所述的第一级数据选择器的输出端相连;所述MUX的输入端与I/O模块相连;所述MUX的控制信号端连接所述控制信号模块。
4.根据权利要求1或2所述的RRAM迭代乘法器电路,第一级数据选择器包括:
多个数据选择开关;所述数据选择开关数量与所述RRAM单元的个数相同,所述数据选择开关的输出端与所述RRAM存储阵列的行线相连;所述数据选择开关的输入端与所述第二级数据选择器的输出端相连;所述数据选择开关的控制端与所述列译码器的输出相连。
5.根据权利要求4所述的RRAM迭代乘法器电路,所述数据选择开关包括,
传输门和反相器,所述传输门的控制信号以及所述反相器的输入端相连,作为数据选择开关的控制信号接入端;所述传输门输入端作为所述数据选择开关的输入端;所述传输门输出端与第二级数据选择器相连;反相器的输出端与传输门的反相时钟相连。
6.根据权利要求1或2所述的RRAM迭代乘法器电路,所述读出模块包括:
灵敏放大器,所述灵敏放大器的输入一端与输出RRAM单元相连,另一端连接一个参考电压和参考电阻,输出端连接I/O模块;所述参考电阻的阻值远远大于RRAM单元的低阻态的阻值,同时远远小于其高阻态的阻值。
7.一种基于MIG逻辑的RRAM迭代乘法器电路的实现方法,采用如权利要求2-6中任一项所述的MIG逻辑的RRAM迭代乘法器电路,包括:
步骤S0,定义RRAM单元各逻辑值,输入信号X1,X2,Y1,Y2并且其他单元置为高阻;
步骤S1,依次将Y1,Y2与X1和X2相与,并将得到的结果存入RRAM中;
步骤S2,将计算结果错位相加求出最后的乘法结果。
8.根据权利要求7所述的实现方法,所述步骤S0包括:
定义RRAM单元高低组态逻辑值及电压VSET电压VCLEAR、电压VCNOD的逻辑值,其中,每个RRAM单元的上电极逻辑值标记为P,下电极逻辑值标记为Q。
9.根据权利要求7所述的实现方法,所述步骤S1中,将乘数y1、y2求反,并得到x2y2、x1y2、x2y1、x1y1,并存入相应的RRAM单元中,包括:
子步骤S11,在RRAM单元M1上分别加逻辑值为PM1=1,QM1=y2的电压,将与y2相反的逻辑值存入RRAM单元M1中;
子步骤S12,在RRAM单元M2上分别加逻辑值为PM2=1,QM2=y1的电压,将与y1相反的逻辑值存入RRAM单元M2中;
子步骤S13,在RRAM单元Z1上分别施加逻辑值为PZ1=x2的电压,计算出X2Y2存入RRAM单元Z1中,作为乘法结果输出的最低位;
子步骤S14,在RRAM单元M3上分别施加逻辑值为PM3=x1 的电压,计算出X1Y2存入RRAM单元M3中;
子步骤S15,在RRAM单元M4上分别施加逻辑值为PM4=x2 的电压,计算出X2Y1存入RRAM单元M4中;
子步骤S16,在RRAM单元Z3上分别施加逻辑值为PZ3=x1的电压,计算出X1Y1存入RRAM单元Z3中。
10.根据权利要求7所述的实现方法,所述步骤S2将计算结果错位相加求出最后的乘法结果包括:
子步骤S21,通过MAJ门逻辑计算得出输出的次低位z2及次低位到次高位的进位c1;包括:
次子步骤S211,在RRAM单元M5上分别施加逻辑值为PM5=x2y1,QM5=x1y2的电压,计算出存入RRAM单元M5中;
次子步骤S212,在RRAM单元Z2上分别施加逻辑值为PZ2=x1y2,QZ2=x2y1的电压,计算出存入RRAM单元Z2中;
次子步骤S213,在RRAM单元Z2上分别施加逻辑值为 QZ2=0的电压,计算出逻辑乘法结果即z2的值,存入RRAM单元Z2中;
次子步骤S214,在RRAM单元M3上分别施加逻辑值为PM3=X2Y1,QM3=1的电压,计算出向乘法结果z3的进位c1存在M3中;
次子步骤S215,在RRAM单元M7上分别加逻辑值为PM7=1,QM7=c1的电压,将与c1相反的逻辑值存入了RRAM单元M7中;
子步骤S22,通过次低位到次高位的进位c1计算得出输出的最高位z4及次高位z3;包括:
次子步骤S221,在RRAM单元Z4上分别施加逻辑值为PZ4=X1Y1的电压,计算出z4的值,存入RRAM单元Z4中;
次子步骤S222,在RRAM单元M6上分别施加逻辑值为PM6=c1,QM6=X1Y1的电压,计算存入RRAM单元M6中;
次子步骤S223,在RRAM单元Z3上分别施加逻辑值为PZ3=0,QZ3=c1的电压,计算存入RRAM单元Z3中;
次子步骤S224,在RRAM单元Z3上分别施加逻辑值为QZ3=0的电压,计算出乘法结果z3,存入RRAM单元Z3中。
CN201711468243.8A 2017-12-28 2017-12-28 基于mig逻辑的rram迭代乘法器电路及实现方法 Active CN108109655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711468243.8A CN108109655B (zh) 2017-12-28 2017-12-28 基于mig逻辑的rram迭代乘法器电路及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711468243.8A CN108109655B (zh) 2017-12-28 2017-12-28 基于mig逻辑的rram迭代乘法器电路及实现方法

Publications (2)

Publication Number Publication Date
CN108109655A true CN108109655A (zh) 2018-06-01
CN108109655B CN108109655B (zh) 2020-11-13

Family

ID=62214522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711468243.8A Active CN108109655B (zh) 2017-12-28 2017-12-28 基于mig逻辑的rram迭代乘法器电路及实现方法

Country Status (1)

Country Link
CN (1) CN108109655B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109327219A (zh) * 2018-10-18 2019-02-12 中国科学院微电子研究所 一种基于忆阻器rram的逻辑运算系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104051009A (zh) * 2014-06-20 2014-09-17 中国科学院微电子研究所 一种电阻转变随机存储器rram的选通电路及选通方法
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
WO2016167778A1 (en) * 2015-04-16 2016-10-20 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations
CN106128503A (zh) * 2016-06-20 2016-11-16 北京大学 基于忆阻器的运算存储阵列设备及其操作方法
CN106251895A (zh) * 2016-08-15 2016-12-21 中国科学院微电子研究所 阻变存储器的阻态读取电路及阻变存储器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104051009A (zh) * 2014-06-20 2014-09-17 中国科学院微电子研究所 一种电阻转变随机存储器rram的选通电路及选通方法
WO2016167778A1 (en) * 2015-04-16 2016-10-20 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN106128503A (zh) * 2016-06-20 2016-11-16 北京大学 基于忆阻器的运算存储阵列设备及其操作方法
CN106251895A (zh) * 2016-08-15 2016-12-21 中国科学院微电子研究所 阻变存储器的阻态读取电路及阻变存储器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张娜: "基于忆阻器的加法器和乘法器高效设计与模拟", 《中国优秀硕士学位论文全文数据库》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109327219A (zh) * 2018-10-18 2019-02-12 中国科学院微电子研究所 一种基于忆阻器rram的逻辑运算系统

Also Published As

Publication number Publication date
CN108109655B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US9558444B2 (en) Neural processing unit
Bhattacharjee et al. ReVAMP: ReRAM based VLIW architecture for in-memory computing
CN108153512A (zh) 四步关联全加器
CN110826719A (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
Chakraborti et al. BDD based synthesis of Boolean functions using memristors
JPH01201764A (ja) 神経回路網およびその回路網に用いる回路
Lehtonen et al. Implication logic synthesis methods for memristors
CN110300957A (zh) 数据处理装置中的加宽算数
JPH02170263A (ja) ニユーラルネツト信号処理プロセツサ
CN107423816A (zh) 一种多计算精度神经网络处理方法和系统
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN109002894B (zh) 一种基于量子叠加态的量子加法器设计方法
JP2004005645A (ja) 確率に基づく推諭システム
Marchal¹ et al. Embryological development on silicon
US20220188604A1 (en) Method and Apparatus for Performing a Neural Network Operation
CN107615389A (zh) 执行复数乘法累加运算
Lebdeh et al. Memristive device based circuits for computation-in-memory architectures
Fey et al. Using memristor technology for multi-value registers in signed-digit arithmetic circuits
CN107957975A (zh) 一种计算方法及相关产品
CN108109655A (zh) 基于mig逻辑的rram迭代乘法器电路及实现方法
WO2022012920A1 (en) Sparse modifiable bit length determinstic pulse generation for updating analog crossbar arrays
WO2020230374A1 (ja) 演算装置および演算システム
Ahn Computation of deep belief networks using special-purpose hardware architecture
EP1125205B1 (fr) Memoire a acces vectoriel
CN108037908A (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