一种基于RRAM的乘法器及其操作方法转让专利

申请号 : CN201910436604.3

文献号 : CN110175017B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱晓雷周旋陈冰赵毅

申请人 : 浙江大学

摘要 :

本发明公开了一种基于RRAM的乘法器及其操作方法。基于RRAM的乘法器包括:RRAM阵列、放大器、RS触发器阵列和加法器模块。1)将所有BL线置‑1V,所有WL线置1V,持续1ns,将被乘数和乘数分别加在BL[7:0]、WL[7:0]线上,某一位乘数和某一位被乘数的积为中间结果,被写入RRAM阵列中;分别置读电压于RRAM阵列中的每列RRAM上,读出的RRAM内存储的中间结果经过放大器放大后被存入RS触发器阵列中;RS触发器阵列的输出作为加法器的输入,经过N个读周期后,加法器计算出乘法的最终结果;其中N为RRAM阵列的列数。本发明所提出的乘法器,基于阻性非易失新型存储器RRAM,具有功耗、时间表现较好的特点,并扩展了新型存储器件RRAM在基础电路中的应用范围。

权利要求 :

1.一种基于RRAM的乘法器的操作方法,所述的乘法器包括:RRAM阵列;所述的RRAM阵列是crossbar结构,包括了8×8个RRAM,每个RRAM均位于BL[7:0]、WL[7:0]中任意两条线的交点处;BL[7:0]是输入乘数的端口,每根BL线都连接了一列RRAM的正极,而WL[7:0]是输入被乘数的端口,每根BL线都连接了一列RRAM的负极;每根WL线的最左侧串有一个电阻,用于在读步骤读出RRAM内存储的信息;

与RRAM阵列输出端相连的放大器;

与放大器输出端相连的RS触发器阵列;所述的RS触发器阵列含有8×8个RS触发器,用于存储从RRAM阵列读出的中间结果;每8 个RRAM共享一根WL线用于读出,所以需要8个读周期完成8×8RRAM阵列的读出工作;由于RRAM阵列内的信息只能一次读出一列,所以需要RS触发器存储RRAM的数据,便于将中间结果输入到加法器;

与RS触发器阵列的输出端相连的加法器模块;

其特征在于,所述的操作方法包括如下步骤:

1)将所有BL线置‑1V,所有WL线置1V,持续1ns,

2)将被乘数和乘数分别加在BL[7:0]、WL[7:0]线上,某一位乘数和某一位被乘数的积为中间结果,被写入RRAM阵列中;具体为:在8x8的 RRAM阵列里,BL[7:0]是输入乘数的端口,每根BL线都连接了一列RRAM的正极,而WL[7:0]是输入被乘数的端口,每根BL线都连接了一列RRAM的负极;被乘数为a[7:0],乘数为b[7:0];当a[i]=0或者b[j]=0,对应的WL[i]或者BL[j]加上0V的电压;当a[i]=1,WL[i]加上‑1V电压;当b[j]=1,BL[j]加上1V电压; RRAM的状态由正极和负极的电压差,即BL[j]和WL[i]之间的电压差决定;当a[i]=1且b[j]=0或a[i]=0且b[j]=1,RRAM两端的电压差为1V,RRAM状态不改变;同理,当a[i]=0且b[j]=0,RRAM两端的电压差为0V;只有当a[i]=1且b[j]=1时,RRAM两端的电压差为2V,达到置位阈值电压;

通过输入被乘数a[7:0]和乘数b[7:0],能够让8x8 RRAM阵列直接计算并且存储a[7:0]×b[7:0]的所有中间结果,即所有a[i]×b[j]的积;

3)分别置读电压于RRAM阵列中的每列RRAM上,读出的RRAM内存储的中间结果经过放大器放大后被存入RS触发器阵列中;

4)RS触发器阵列的输出作为加法器的输入,经过N个读周期后,加法器计算出乘法的最终结果;其中N为RRAM阵列的列数。

2.如权利要求1所述的基于RRAM的乘法器的操作方法,其特征在于,代表被乘数和乘数的a[7:0]、b[7:0]信号均需持续1ns以保证中间结果被顺利写入RRAM中。

说明书 :

一种基于RRAM的乘法器及其操作方法

技术领域

[0001] 本发明属于模拟集成电路设计领域,涉及一种基于RRAM的乘法器及其操作方法。

背景技术

[0002] 近年来各种新型存储器件逐渐完善,进入公众视野,具有未来进入主流存储器市场的可能。如果例如RRAM的新型存储器进入市场,为了进行近内存计算,则需要很多基于这
些新型存储器器件的基础电路。所以,本发明提出了基于RRAM的乘法器。基于RRAM的乘法器
的第一部分计算在RRAM阵列中完成,第二部分的近内存计算在基于CMOS的加法器中完成,
功耗性能较好,一次计算消耗能量约2.116nJ,速度也比较快,最差情况一次计算需要
1.6us。

发明内容

[0003] 本发明的目的在于克服现有技术的不足,提出了一种基于RRAM的乘法器及其操作方法。为实现上述目的,本发明的技术方案如下:
[0004] 本发明首先公开了一种基于RRAM的乘法器,包括:RRAM阵列;与RRAM阵列输出端相连的放大器;与放大器输出端相连的RS触发器阵列;与RS触发器阵列的输出端相连的加法
器模块。
[0005] 优选的,所述的RRAM阵列是crossbar结构,包括了8×8个RRAM,每个RRAM均位于BL[7:0]、WL[7:0]中任意两条线的交点处;BL[7:0]是输入乘数的端口,每根BL线都连接了一
列RRAM的正极,而WL[7:0]是输入被乘数的端口,每根BL线都连接了一列RRAM的负极;每根
WL线的最左侧串有一个电阻,用于在读步骤读出RRAM内存储的信息。
[0006] 优选的,所述的RS触发器阵列含有8×8个RS触发器,用于存储从RRAM阵列读出的中间结果;每8个RRAM共享一根WL线用于读出,所以需要8个读周期完成8×8RRAM阵列的读
出工作;由于RRAM阵列内的信息只能一次读出一列,所以需要RS触发器存储RRAM的数据,便
于将中间结果输入到加法器。
[0007] 本发明还公开了一种所述的基于RRAM的乘法器的操作方法,包括如下步骤:
[0008] 1)将所有BL线置‑1V,所有WL线置1V,持续1ns,
[0009] 2)将被乘数和乘数分别加在BL[7:0]、WL[7:0]线上,某一位乘数和某一位被乘数的积为中间结果,被写入RRAM阵列中;
[0010] 3)分别置读电压于RRAM阵列中的每列RRAM上,读出的RRAM内存储的中间结果经过放大器放大后被存入RS触发器阵列中;
[0011] 4)RS触发器阵列的输出作为加法器的输入,经过N个读周期后,加法器计算出乘法的最终结果;其中N为RRAM阵列的列数,此8×8乘法器中N=8。
[0012] 优选的,所述的步骤2)具体为:在8×8的RRAM阵列里,BL[7:0]是输入乘数的端口,每根BL线都连接了一列RRAM的正极,而WL[7:0]是输入被乘数的端口,每根BL线都连接了一
列RRAM的负极;被乘数为a[7:0],乘数为b[7:0];当a[i]=0或者b[j]=0,对应的WL[i]或者
BL[j]加上0V的电压;当a[i]=1,WL[i]加上‑1V电压;当b[j]=1,BL[j]加上1V电压;RRAM的
状态由正极和负极的电压差,即BL[j]和WL[i]之间的电压差决定;当a[i]=1且b[j]=0或a
[i]=0且b[j]=1,RRAM两端的电压差为1V,RRAM状态不改变;同理,当a[i]=0且b[j]=0,
RRAM两端的电压差为0V;只有当a[i]=1且b[j]=1时,RRAM两端的电压差为2V,达到置位阈
值电压;也即,通过输入被乘数a[7:0]和乘数b[7:0],可以让8x8 RRAM阵列直接计算并且存
储a[7:0]×b[7:0]的所有中间结果,即所有a[i]×b[j]的积。
[0013] 优选的,代表被乘数和乘数的a[7:0]、b[7:0]信号均需持续1ns以保证中间结果被顺利写入RRAM中。
[0014] 与现有技术相比,本发明所具有的有益效果是:扩宽了新型存储器件RRAM的应用范围,使得RRAM可以用于乘法器电路。基于RRAM的乘法器一次计算消耗能量约2.116nJ,最
差情况一次乘法计算需要1.6us。虽然比起传统的基于CMOS的乘法器,基于RRAM的乘法器一
次计算的能耗、时间都更高,但是考虑到RRAM今后将会在存储器市场占有一定的份额,基于
CMOS的乘法器需要将RRAM内的数据读出到CMOS才可进行乘法计算,这需要很大的时间成本
和功耗成本;而基于RRAM的乘法器可以直接在RRAM阵列内进行乘法的一部分计算,也就是
说,在存储器为RRAM的基础上,基于RRAM的乘法器反而在时间、功耗上更有优势。

附图说明

[0015] 图1是基于RRAM的乘法器电路图;
[0016] 图2是RS触发器电路图;
[0017] 图3是放大器电路图。

具体实施方式

[0018] 下面结合具体实施方式对本发明作进一步详细的描述。
[0019] 本发明提出了一种基于RAAM的乘法器,以下将对本发明提出的基于RRAM的乘法器进行详细说明。
[0020] 基于RRAM的乘法器电路图见图1,电路可以分为以下几部分:RRAM阵列、RS触发器阵列、加法器模块。乘法的计算流程是,被乘数乘数输入到RRAM阵列,在存储器RRAM中完成
计算后的结果经过放大器放大然后存入RS触发器阵列,RS触发器阵列的输出端连接了加法
器模块,最后加法器模块计算出乘法的最终结果。
[0021] RRAM的读操作有置位(SET)和复位(RESET)两种。其中SET可以使得RRAM从高阻态(0)变成低阻态(1),而RESET可以让RRAM从低阻态(1)变成高阻态(0)。本发明所采用的
RRAM,SET操作要求RRAM正负两端口的电压差大于2V,而RESET操作正负两端口的电压差小
于‑2V,读操作电压1V为佳。
[0022] 本发明所述的基于RRAM的乘法器的操作方法具体流程如下:
[0023] 首先,将被乘数、乘数输入乘法器前,需要将所有BL线置‑1V,所有WL线置1V,持续1ns,目的是让所有RRAM被重置为高阻状态,以便不影响后续的写入。
[0024] 将所有RRAM置位后,需要把被乘数、乘数输入到RRAM阵列中。在8x8 RRAM阵列里,BL[7:0]是输入乘数的端口,每根BL线都连接了一列RRAM的正极,而WL[7:0]是输入被乘数
的端口,每根BL线都连接了一列RRAM的负极。假设被乘数为a[7:0],乘数为b[7:0]。当a[i]
=0或者b[j]=0,对应的WL[i]或者BL[j]加上0V的电压。当a[i]=1,WL[i]加上‑1V电压;当
b[j]=1,BL[j]加上1V电压。对于阵列中BL[j]和WL[i]连接着RRAM来说,RRAM的状态由正极
和负极即BL[j]和WL[i]之间的电压差决定。当a[i]=1b[j]=0或a[i]=0b[j]=1,RRAM两
端的电压差为1V,RRAM状态不改变;同理,当a[i]=0b[j]=0,RRAM两端的电压差为0V。只有
当a[i]=1且b[j]=1时,RRAM两端的电压差为2V,达到置位阈值电压。也就是说,通过正确
地输入被乘数a[7:0]和乘数b[7:0],可以让8x8 RRAM直接计算出并且存储a[7:0]×b[7:0]
的所有中间结果,即所有a[i]×b[j]的积。注意,代表被乘数和乘数的a[7:0]、b[7:0]信号
均需持续1ns以保证中间结果被顺利写入RRAM中。
[0025] 当所有中间结果都已经计算完成,需要将RRAM阵列的数据读出到触发器阵列中。8x8触发器阵列的作用是存储中间结果,以便把所有中间结果输入CMOS加法器从而得到最
终乘法结果。触发器为有使能端的RS触发器,如图2所示,CP是使能端。当CP=0,RS触发器被
锁住,处于保持状态,输出不随输入的改变而改变;当CP=1,RS触发器处于写入状态。由于
每一行RRAM阵列只有1根WL可以用于读出结果,所以为了避免混乱,每次读取只能读1列共8
个RRAM的数据。在这一列对应的BL线加上1V读电压,RRAM数据就反映成为WL上的电流,每个
WL线的最左侧都连接了一个1kΩ的电阻,所以与WL上的电流成正比的WL右侧电压,可以代
表RRAM内部存储的数据。在读的时候,所有WL被置为0V。在这8个读周期内,从BL[7]到BL[0]
这8个端口被分别置1V,并且每次只有一个BL端口置1V,其他BL端口置0V。在第一个读周期,
所有的RS触发器被置为工作状态,所有WL线的电阻右端读出的RRAM状态信息经过放大器的
放大被存储到最右边一列RS触发器的右端输出端。差分放大器原理图如图3所示,其中Vin+
连接前级RRAM阵列的WL线右端,Vin‑接低电压Vss,放大器输出为Vo端。也就是说,包括最右
一列RS触发器的所有RS触发器存储了BL[7]连接的所有RRAM的信息。为了让最右一列RS触
发器的输出一直维持BL[7]连接的所有RRAM的信息,这一列触发器不再工作,置为保持状
态。在第二个周期,除了最右一列触发器,所有触发器处于工作状态,于是BL[6]连接的所有
RRAM状态信息被存储到从右数第二列RS触发器。同理,8个周期后8×8触发器存储了8×
8RRAM内的所有信息。RRAM的读速度同样是纳秒(ns)级别,但因为触发器的储存需要时间,
所以每个读周期持续200ns。通过对触发器开关的控制,8个读周期以后,中间结果全部存入
触发器。与此同时,CMOS加法器计算出最后的乘法结果。