一种基于忆阻器RRAM的逻辑运算系统的制作方法

文档序号:16847361发布日期:2019-02-12 22:26阅读:207来源:国知局
一种基于忆阻器RRAM的逻辑运算系统的制作方法

本发明涉及非挥发性存储器计算领域,特别涉及一种基于电阻转变随机存储器(rram,resistiverandomaccessmemory,简称阻变存储器)的逻辑运算系统。



背景技术:

算术逻辑运算单元(alu)一直是cpu系统里面重要的硬件组成部分,随着不断的发展,alu的速度被大幅度的提高,运算与存储之间的速度矛盾越来越大,因而也出现了所谓的存储瓶颈。



技术实现要素:

为了能够很好的解决上述技术问题,本发明提出了一种基于忆阻器rram的逻辑运算系统,实现存储与计算的融合,构造一种新型的alu系统,数据的存储和运算都可以在本地完成,这样,alu系统的速度将不会被限制,同时省去了数据的搬移,节省了功耗。

根据本发明的一个方面,提供了一种基于忆阻器rram的逻辑运算系统,包括:

忆阻器rram阵列,被第一开关阵列、第二开关阵列、第三开关阵列包围,用于存储和计算操作;

运算控制单元,用于控制忆阻器rram阵列有效实现逻辑运算操作;

外围辅助电路,用于控制在所选定的位置向忆阻器rram施加恰当的电压进行运算和读出忆阻器中运算的结果数据;

反馈控制电路,用于将忆阻器rram的输出信号反馈到控制端,进而决定下一节拍的输出电压;以及用于控制运算控制单元和外围辅助电路的运行。

在本发明的某些实施例中,所述忆阻器rram阵列采用半交叉阵列结构,在行信号各自独立,但是列信号被连在一起,每次对一行的单元同时施加电压而进行逻辑运算。

在本发明的某些实施例中,所述忆阻器rram阵列所实现的全加操作和乘法器操作均是基于采用表决器逻辑的一位全加器操作来实现的,其表达式为:

其中,s表示为本位和信号、c0表示为进位信号,ci、b、a表示为三个输入信号,m代表的是一次表决器逻辑,其对应的结果为三个参数两两相与后再相或的结果。

在本发明的某些实施例中,所述一位全加器需要三个忆阻器单元,其操作步骤如下:

第一步、初始化忆阻器单元的阻值到高阻态;

第二步、改变忆阻器中存储的值进行第一次写操作,分别在三个忆阻器单元中依次写入b、b和a;

第三步、继续进行写操作从而得到向高位的进位信号值c0;

第四步、通过写操作得到本位和信号s。

在本发明的某些实施例中,通过全局初始化来省略第一步操作。

在本发明的某些实施例中,所述一位全加器的数字控制模块在每次写操作完成之后随之进行一次读操作,将读出的数据与要写入的数据进行比对,如果相同,证明本次写操作成功,可以按序进行下一次写操作,如果不同,会继续进行上次写操作,同时,脉冲宽度将增加一个时钟周期,并依次进行下去,当脉冲宽度已经大到一个设定的值并且写操作仍没有正确写入数据,所述数字控制模块向外提示该单元已经被损坏。

在本发明的某些实施例中,所述运算控制单元采用有限状态机结构模式,其操作步骤受控于反馈控制电路。

在本发明的某些实施例中,所述反馈控制电路为存储控制器。

在本发明的某些实施例中,所述外围辅助电路包括:

ldo电路,其输入端与运算控制单元连接、输出端与第一开关阵列、第二开关阵列连接;ldo电路用于产生set、reset以及forming电压;

行列译码器电路,包括行译码器电路、列译码器电路以及控制信号译码电路,行译码器电路的输入端与反馈控制电路连接,输出端与第一开关阵列连接;列译码器电路的输入端与反馈控制电路连接,输出端与第二开关阵列连接;控制信号译码电路的输入端与反馈控制电路连接,输出端与运算控制单元2连接,行列译码器电路用于接收反馈控制电路产生的行、列地址信号、运算控制信号并进行译码,从而控制第一、第二阵列开关对应的行列控制信号被打开,以完成运算;

灵敏放大器电路,其输入端与第三开关阵列连接,输出端与反馈控制电路连接,灵敏放大器电路用于将rram忆阻器输出的电流信号转换为对应的电压信号再反馈到反馈控制电路。

(三)有益效果

从上述技术方案可以看出,本发明基于忆阻器rram的逻辑运算系统至少具有以下有益效果其中之一:

(1)本发明实现了本地计算本地存储,不仅提高了运算速度,而且节省了能量损耗,同时释放了总线负担,有利于进一步提高当前计算机系统的速度;

(2)对现有的逻辑运算系统进行了优化,提高了逻辑运算速度,降低了器件的面积。

附图说明

图1为本发明实施例逻辑运算系统的结构框图。

图2为本发明实施例基于rram的逻辑运算采用的半交叉阵列结构图。

图3为本发明实施例一位全加器的实现逻辑框图。

图4为本发明实施例一位全加器的实现微操作示意图。

图5为本发明实施例写验证操作脉冲图。

图6为基于忆阻器的不同逻辑实现一位全加器的参数对比示意图。

图7为本发明实施例有限状态机(logicfsm)结构模式的流程示意图。

图8为本发明实施例ldo电路图。

图9为本发明实施例灵敏放大器电路图。

【主要元件】

1-rram阵列;

2-运算控制单元;

3-反馈控制电路;

4-外围辅助电路;

41-ldo电路;

43-灵敏放大器电路。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

在本发明的示例性实施例中,提供了一种基于忆阻器rram的逻辑运算系统。图1为本发明实施例逻辑运算系统的结构框图。如图1所示,本发明基于忆阻器rram的逻辑运算系统包括:忆阻器rram阵列1、运算控制单元2、反馈控制电路3、外围辅助电路4。

忆阻器rram阵列1用于存储和计算操作,忆阻器rram阵列1采用半交叉阵列结构。现有的交叉阵列结构在进行并行计算时灵活性很差,而本发明采用的半交叉阵列结构有效实现了并行性。

图2为本发明实施例基于rram的逻辑运算采用的半交叉阵列结构图。如图2所示,半交叉阵列结构采用的方法是在行信号各自独立,但是列信号被连在一起,每次可以对一行的单元同时施加电压而进行逻辑运算,而不再是一个单元一个单元的串行进行,大大提高了运算的灵活性。正如图2中所表示的,每一列都有一个灵敏放大器,用于读出操作。

在某些实施例中,忆阻器rram所实现的全加器操作和乘法器操作均是基于采用表决器逻辑的一位全加器操作来实现的。

将基于与或非的逻辑转换为表决器逻辑,

此外,由式1.1和式1.2中给出了全加器的本位和信号和进位信号与三个输入信号之间的关系,通过将表决器逻辑与加法器关系式相融合,便可以得到利用表决器逻辑来实现加法器逻辑的表达式关系,并对其进行了化简,其具体的实现关系如式1.3和式1.4所示。

其中,ci、b、a分别为输入信号,s为本位和信号,c0为进位信号,m代表的是一次表决器逻辑,其对应的结果为三个参数两两相与后再相或的结果,r为其对应的忆阻器单元,其中括号内的三个变量依次对应的是上电极信号、原始存储的数据、下电极信号。上式中括号内的变量顺序对运算结果是没有影响的,通过上式可以清晰的发现,三个输入信号相互与或得到的本位和信号s可以通过两步的表决器逻辑来实现,而进位信号co可以通过一步表决器逻辑来实现,并且这一步操作的结果也正是在求解本位和信号s所需要的一步,因此也能节省在具体实现操作上的步骤。基于该公式,可以得到利用表决器逻辑去实现加法操作的具体框图,如图3所示,其对应的微操作如图4所示。图3左图表示的是利用表决器逻辑所实现的本位和和高位进位值,而右图则是利用忆阻器单元所实现的本位和和高位进位值。其中,r圆圈下面的三条斜线从左至右分别代表的是上电极信号、忆阻器原来存储的值和下电极信号,r圆圈上方的斜线代表的是忆阻器施加电压后的值也即为每次运算操作后的结果值。在第一层,得到的输出信号从左至右依次为其中右侧单元输出的信号为进位信号co,在第二层都得到本位和信号s,该操作与上面的公式1.3和式1.4相对应。在图3中,利用表决器的思想实现一个一位全加器总共需要3个忆阻器单元,在图4中,4个操作步骤即可完成一次一位全加操作。其中第一步是初始化忆阻器单元的阻值到高阻态,为了方便后续的操作,第二步是通过改变忆阻器中存储的值进行第一次写操作,分别在三个忆阻器单元中依次写入b、b和a,第三步是继续进行写操作从而得到向高位的进位信号值co,第四步是通过写操作得到本位和信号s,其中第四步施加的电压值由第三步操作后r1和r2的阻态决定。此外,可以通过全局初始化来省略第一步操作,从而总共只需要三步操作就可以实现该全加器。

关于一位全加器的数字控制模块,前端设计的代码是利用verilog语言来实现的,由于rram本身经常会发生一次写操作并没有写成功的过程,即一次上下电极施加电压的过程很难保证能正确地完成运算,因此,在设计的时候增加了一个写验证过程,其具体含义为:在每次写操作完成之后都会随之进行一次读操作,这种设计的另一个原因是忆阻器的读速度非常之快,基本不占用仿真和测试周期,将读出的数据与要写入的数据进行比对,如果相同,证明本次写操作成功,可以按序进行下一次写操作,如果不同,会继续进行上次写操作,同时,脉冲宽度将增加一个时钟周期,并依次进行下去,当脉冲宽度已经大到一个设定的值并且写操作仍没有正确写入数据,那么会向外提示该单元已经被损坏。通过这种写验证的手段,我们可以确保数据可以正确的写入到单元中,其写验证过程具体表现为如图5所示。

图6为基于忆阻器的不同逻辑实现一位全加器的参数对比表,如图6所示,利用本发明的表决器逻辑来实现一位全加器,执行步骤最少,所需忆阻器数目最少,没有产生结构变化,一致性要求低。

再如图1所示,运算控制单元2用于控制忆阻器rram阵列有效实现逻辑运算操作。优选地,运算控制单元采用有限状态机(logicfsm)结构模式,如图7所示,将整个全加器和乘法器的微操作封装成为一个整体,从逻辑运算系统外部来看而仅仅只是通过输入信号以及相对应的操作命令而得到运算结果,对于中间的细节过程,全部都是由运算控制单元自动完成,这主要是因为基于忆阻器所实现的全加器和乘法器中间的微操作步骤非常繁琐,即使表决器逻辑已经大大的简化了实现的微操作,但是对于实现逻辑运算单元而言,关注的只是输入与运算的结果,对于中间的细节过程由运算控制单元自动完成。由于忆阻器中的信号是通过电阻的形式存储而非cmos中的电信号,因此每次操作完成后需要施加的信号并不能简单由上一级传递到下一级,而是需要通过控制单元进行相应的信号控制,其控制信号仍然为电信号。

根据图7可知,实现一个乘法器总共需要6步全加操作,那么根据此,代码在进行设计时也是将这6步全加操作全部包含其中,并且在每次全加完成之后都进行一次读,并把读出的结果保存在寄存器中,部分读出的值按顺序排列后即为最终乘法器操作的结果。需要说明的是,前三步全加操作每次都是3个全加单元同时进行全加操作,后三步全加操作每次只有一个全加单元,每次全加操作后都有对应的输出结果项产生。图7给出了实现一个4-bit乘法器的状态流程图,其中增加了forming状态,主要是因为forming操作对于忆阻器而言也是非常重要的,只有当forming状态操作完成或者并没有收到任何要forming的信号后才能进行正常的读写操作。一般而言,对一个忆阻器阵列只会进行一次forming操作。对于该4-bit乘法器而言,首先要进行的是写入被乘数b到合适的单元中,以方便后面去计算中间值,因为前面构造的阵列每行只有9个单元,不够完全存放中间值,因此,写入被乘数b和之后写入乘数a都需要两行共产生了16个部分积,在写入b时,第一行的前4个单元写入b[3]的值,后4个单元写入b[2]的值,同理,在第二行的前四个单元写入b[1]的值,后4个单元写入b[0]的值,当该写入操作完成之后,开始写入乘数a,但这并不是简单的写入操作,而是在其上进行相与,从而得到16个中间项。具体操作如下,对应b[3]、b[2]、b[1]、b[0]的四个忆阻器单元依次在上电极施加的电压为a[3]、a[2]、a[1]、a[0],在他们的下电极全部接入低电平gnd,根据之前分析的表决器逻辑的逻辑关系式,z`=p`q+pz+`qz,在这里,p就是所施加的电压a[3]、a[2]、a[1]、a[0],q为0,z为其对应的b[3]、b[2]、b[1]、b[0],那么在这16个单元中依次得到的值为a[3]&b[3]、a[2]&b[3]、a[1]&b[3]、a[0]&b[3]、a[3]&b[2]、a[2]&b[2]、a[1]&b[2]、a[0]&b[2]、a[3]&b[1]、a[2]&b[1]、a[1]&b[1]、a[0]&b[1]、a[3]&b[0]、a[2]&b[0]、a[1]&b[0]、a[0]&b[0],该16个部分积,一方面是为了方便后续可以对乘法操作进行检查所备份的数据,另一方面也是后续进行计算的数据来源,其中a[0]&b[0]也即为最终的out_data[0]。当所有的中间值都准确无误的计算完成后,开始进入全加阶段,其全加的步骤也正如图7中显示的那样,前后分为6个步骤,前三个步骤每次都是同时运行三个全加器,最后三个步骤每次运行1个全加器即可完成运算,只有当每一步的全加操作完成之后才能进行第二步的全加操作,当所有的全加操作完成之后,flag_add6被置高,中间保存的值被写入到out_data中,整个乘法操作运行结束进入空闲模式。

再如图1所示,反馈控制电路3用于将忆阻器rram的输出信号反馈到控制端,进而决定下一节拍的输出电压。优选地,反馈控制电路3采用存储控制(memorycontrol)器。

外围辅助电路4用于控制在所选定的位置向忆阻器施加恰当的电压进行运算和读出忆阻器中运算的结果数据。包括ldo(低压差线性稳压器)电路41、行列译码器电路、灵敏放大器电路43。外围辅助电路4将正常的对忆阻器所进行的set、reset、forming操作,也即所谓的写操作,变成对上下电极的电刺激,其中高电平为1,低电平为0,其具体电平值由ldo电路41产生,如图8所示。在ldo的电路中双极型晶体管的面积之比为1:n,运放处于深度负反馈状态,使两端的电压vx和vy相等,均为vbe1。电阻r1和电阻r3阻值相等。流过r3的电流为vbe1/r3,具有负温度系数;流过r2的电流为(vbe1-vbe2)/r2=vtlnn/r2,具有负的温度系数。pmos管m1、m2、m3尺寸相等,流过m2的电流之和为:

该电流通过电流镜复制到m晶体管中,然后流经电阻尽转变成输出电压vref:

由上式可知,通过调整三个电阻的阻值和双极型晶体管的面积之比,使输出电压vref具备零温漂且可调的特性。pmos管从m4的作用是产生基准电流,通过改变m4的尺寸可以得到特定的零温漂的基准电流。

忆阻器所进行的读操作过程主要是通过灵敏放大器电路43将电流信号转化为对应的电压信号以便反馈或者读出,如图9所示。其中灵敏放大器的输入端口bl是通过开关阵列连到忆阻器的上电极(bl),在连通灵敏放大器后,忆阻器的下电极被连接到0电平上,通过运放将bl端口上nmos管的漏端点的电压钳位在一个固定电平上,选定的固定电平为0.3v,然后通过镜像电流源的作用将流过忆阻器的电流镜像到另一条通路上,被镜像的电流流经电阻后得到电压,后续是对该电压的阈值进行判断和相应的放大,从而得到忆阻器的状态值,为0或者为1。行列译码器电路通过对地址信号以及运算控制信号的译码从而控制阵列开关对应的行列控制信号被打开,从而完成运算,包括行译码器电路、列译码器电路以及控制信号译码电路。

基于忆阻器表决器逻辑所设计的alu系统框图,其中灵敏放大器的目的是将电流信号转换为数字电压信号,然后再将灵敏放大器的输出反馈到存储控制器以便于下一次操作。操作步骤被封装在一个本地的存储器中,其设计思想采用的有限状态机的概念自动化的完成整体设计功能,其操作步骤受控于存储控制器,并且行、列地址信号也是由存储控制器产生的。其中的ldo电路被用来产生set、reset以及forming电压,稳定性高并且功耗低。

至此,已经结合附图对本实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明基于rram忆阻器的逻辑运算系统有了清楚的认识。

需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1