一种基于RRAM的乘法器及其操作方法转让专利
申请号 : CN201910436604.3
文献号 : CN110175017B
文献日 : 2021-07-02
发明人 : 朱晓雷 , 周旋 , 陈冰 , 赵毅
申请人 : 浙江大学
摘要 :
权利要求 :
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的乘法器及其操作方法
技术领域
背景技术
些新型存储器器件的基础电路。所以,本发明提出了基于RRAM的乘法器。基于RRAM的乘法器
的第一部分计算在RRAM阵列中完成,第二部分的近内存计算在基于CMOS的加法器中完成,
功耗性能较好,一次计算消耗能量约2.116nJ,速度也比较快,最差情况一次计算需要
1.6us。
发明内容
器模块。
列RRAM的正极,而WL[7:0]是输入被乘数的端口,每根BL线都连接了一列RRAM的负极;每根
WL线的最左侧串有一个电阻,用于在读步骤读出RRAM内存储的信息。
出工作;由于RRAM阵列内的信息只能一次读出一列,所以需要RS触发器存储RRAM的数据,便
于将中间结果输入到加法器。
列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]的积。
差情况一次乘法计算需要1.6us。虽然比起传统的基于CMOS的乘法器,基于RRAM的乘法器一
次计算的能耗、时间都更高,但是考虑到RRAM今后将会在存储器市场占有一定的份额,基于
CMOS的乘法器需要将RRAM内的数据读出到CMOS才可进行乘法计算,这需要很大的时间成本
和功耗成本;而基于RRAM的乘法器可以直接在RRAM阵列内进行乘法的一部分计算,也就是
说,在存储器为RRAM的基础上,基于RRAM的乘法器反而在时间、功耗上更有优势。
附图说明
具体实施方式
计算后的结果经过放大器放大然后存入RS触发器阵列,RS触发器阵列的输出端连接了加法
器模块,最后加法器模块计算出乘法的最终结果。
RRAM,SET操作要求RRAM正负两端口的电压差大于2V,而RESET操作正负两端口的电压差小
于‑2V,读操作电压1V为佳。
的端口,每根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中。
终乘法结果。触发器为有使能端的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加法器计算出最后的乘法结果。