CN115565579A - 存内计算电路、多逻辑存内运算电路及其芯片 - Google Patents

存内计算电路、多逻辑存内运算电路及其芯片 Download PDF

Info

Publication number
CN115565579A
CN115565579A CN202211301473.6A CN202211301473A CN115565579A CN 115565579 A CN115565579 A CN 115565579A CN 202211301473 A CN202211301473 A CN 202211301473A CN 115565579 A CN115565579 A CN 115565579A
Authority
CN
China
Prior art keywords
memory
circuit
rram0
rram2
rram3
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.)
Pending
Application number
CN202211301473.6A
Other languages
English (en)
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.)
Anhui University
Original Assignee
Anhui University
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 Anhui University filed Critical Anhui University
Priority to CN202211301473.6A priority Critical patent/CN115565579A/zh
Publication of CN115565579A publication Critical patent/CN115565579A/zh
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Static Random-Access Memory (AREA)

Abstract

本发明涉及存内计算技术领域,特别是涉及存内计算电路、多逻辑存内运算电路及其芯片。该存内计算电路由多个存储单元构成的存储阵列;存储阵列中相邻的两个存储单元RRAM结构反向放置;每列存储单元连接在四条位线SL、BL、BLBIN、BLBOUT上,NMOS管K1的源极和漏极分别接BLBIN和BLBOUT,NMOS管M8的源极与BL相连,NMOS管M9的漏极与BLBIN相连,M8的漏极、M9的源极接地;每列中相邻的四个存储单元RRAM0~RRAM3构成一个基础的存算单元;存算单元还包括8个NMOS管M0~M7;每个NMOS管的栅极接一个字线。本发明解决了现有RRAM在存内运算操作出现的电阻交叉问题。

Description

存内计算电路、多逻辑存内运算电路及其芯片
技术领域
本发明涉及存内计算技术领域,特别是涉及存内计算电路、多逻辑存内运算电路及其芯片。
背景技术
近年来,摩尔定律一直在推动CMOS技术在逻辑和内存应用中的扩展,但越来越多的非理想效应限制了CMOS的扩展,例如其中的亚阈值泄漏电流会增加静态和待机功耗。同时,由于处理单元和内存存储分离,传统的冯·诺依曼体系结构在数据通信方面存在瓶颈。
为了提高能效并突破现有限制,研究人员提出了存内计算的概念,其中部分计算在内存中执行,通过在存储器内部执行部分计算从而有效降低与数据迁移相关的功耗和延迟。RRAM是一种基于依赖于温度和电压来存储数据的存储器,具有堆叠能力高、结构简单、功耗低、读写速度快等优点。此外,RRAM与传统CMOS工艺兼容,因此在存内计算方面具有极好的潜力。
但是现有RRAM在进行存内逻辑运算时,需要较多的RRAM和时钟周期实现“或”和“异或”等逻辑操作,提高了部分功耗和延迟,且不同逻辑操作的放电路径的重叠,会出现电阻交叉问题,影响运算的准确性。
发明内容
基于此,有必要针对现有RRAM存内计算电路难以克服存内运算出现的电阻交叉问题,提供一种存内计算电路、多逻辑存内运算电路及其芯片。
为实现上述目的,本发明采用了以下技术方案:
一种存内计算电路,该存内计算电路包括由多个存储单元构成的存储阵列。存储阵列中相邻的两个存储单元RRAM结构反向放置。每列存储单元连接在四条位线SL、BL、BLBIN、BLBOUT上,NMOS管K1的源极和漏极分别接BLBIN和BLBOUT,NMOS管M8的源极与BL相连,NMOS管M9的漏极与BLBIN相连,M8的漏极、M9的源极接地。
每列中相邻的四个存储单元RRAM0~RRAM3构成一个基础的存算单元。存算单元还包括8个NMOS管M0~M7。每个NMOS管的栅极接一个字线。M0、M2、M4、M6的源极接SL,M1、M3、M5、M7的源极接BL,M0、M1的漏极接RRAM0的底部电极,M2、M3的漏极接RRAM1的顶部电极,M4、M5的漏极接RRAM2的底部电极,M6、M7的漏极接RRAM3的顶部电极,RRAM0、RRAM2的顶部电极接BLBIN,RRAM1、RRAM3的底部电极接BLBOUT。
进一步的,存算单元执行“与”逻辑运算的操作为:通过打开M0、M5、M8和K1令RRAM0和RRAM2串联。当RRAM0和RRAM2处于低阻态时,SL放电。当RRAM0和RRAM2处于高阻态时,SL不放电。SL的放电路径为M0,RRAM0,K1,RRAM2,M5,M8。
进一步的,存算单元执行“或”逻辑运算的操作为:通过打开M0、M4、M9和K1令RRAM0和RRAM2并联连接。当RRAM0和/或RRAM2处于低阻态时,SL放电。当RRAM0和RRAM2处于高阻态时,SL不放电。SL的放电路径为M0,RRAM0,K1,M9。或M4,RRAM2,M9。
进一步的,存算单元执行“异或”逻辑运算的操作为:通过打开M0、M3、M8令RRAM0和RRAM1串联连接,打开M4和M7令RRAM2和RRAM3串联连接,且RRAM0、RRAM1与RRAM2、RRAM3并联。当RRAM0、RRAM1和/或RRAM2、RRAM3处于低阻态时,SL放电。SL的放电路径为M0,RRAM0,RRAM1,M3,M8。或M4,RRAM2,RRAM3,M7,M8。
进一步的,存算单元内的存储单元之间的连接方式包括顶部-底部连接、底部-底部连接和顶部-顶部连接。存储单元的电阻状态来表示不同逻辑运算结果。
进一步的,存算单元内的存储单元的顶部-底部连接操作为:通过打开K1、M0和M7连接RRAM0和RRAM3,BL接地。SL连接到RRAM0的底部电极,RRAM3的顶部电极通过M7接地。RRAM0和RRAM3的电阻状态表示不同逻辑运算结果。或通过打开K1、M2和M5连接RRAM1和RRAM2,BL接地。SL连接到RRAM1的顶部电极,RRAM2的底部电极通过M5接地。RRAM1和RRAM2的电阻状态表示不同逻辑运算结果。
进一步的,存算单元内的存储单元的底部-底部连接操作为:通过打开K1、M2、M7连接RRAM1和RRAM3,BL接地。SL连接到RRAM1的顶部电极,RRAM3的顶部电极通过M7接地。RRAM1和RRAM3的电阻状态表示不同逻辑运算结果。
进一步的,存算单元内的存储单元的顶部-顶部连接操作为:通过打开K1、M0和M5连接RRAM0和RRAM2,BL接地。SL连接到RRAM0的底部电极,RRAM2的底部电极通过M5接地。RRAM0和RRAM2的电阻状态表示不同逻辑运算结果。
本发明还涉及一种多逻辑存内运算电路,该多逻辑存内运算电路包括存储阵列、位线组、NMOS管K1、晶体管组、字线WL、字线CTRLR、字线CTRLR、字线驱动模块、译码器、功能切换电路、预充电电路、时序控制电路、开关电路、灵敏放大器、输出电路。
其中,存储阵列由4NM个存算单元构成4N×M的阵列形式。其中,N表示存储阵列的行数,M表示存储阵列的列数。
位线组包括M组SL、BL、BLBIN、BLBOUT。每列中的各个存算单元均连接在同一组位线SL、BL、BLBIN、BLBOUT上。
NMOS管K1数量为M个,每列的K1的源极和漏极连接在同一组BLBIN、BLBOUT上。
晶体管组包括M个NMOS晶体管M8、M9。每列的位线BL、BLBIN均连接在同一组M8、M9上。
字线WL数量为8N个,用于控制存储阵列中各存算单元内的NMOS管的开启与关断。
字线CTRLR用于控制晶体管组中各晶体管M9的开启与关断。
字线CTRLL用于控制晶体管组中个晶体管M8的开启与关断。
字线驱动模块用于控制存储阵列中各存算单元的字线的高低电平。
译码器用于根据输入地址选择相应字线的开启。
功能切换电路用于控制存储阵列中各存算单元在读写操作、改写操作、存内运算中的切换,以调整电路不同的工作模式。
预充电电路用于对存储阵列中的每列存算单元连接的位线SL、BL、BLBIN、BLBOUT进行预充电操作。
时序控制电路用于产生各个功能模块所需的时钟信号。
开关电路用于控制存储阵列中各存算单元连接的位线的开启或关断。
灵敏放大器数量为M个,用于比较位线SL上的电压与一个预设的参考电压Vref,进而得到任意列中存算单元的存储数据或逻辑计算结果。
输出电路用于输出任意列中存算单元的存储数据或逻辑计算结果。
特别地,存储阵列中的任一存算单元、K1、晶体管组构成如前述的存内计算电路,并可实现该基础电路的完整功能。
本发明还涉及一种多逻辑存内运算芯片,其由前述的多逻辑存内运算电路封装而成。多逻辑存内运算芯片的接口至少包括电源接口VDD、地线接口VSS、行选通接口A、输入信号接口IN、控制信号接口CEN、读写使能信号WEN、切换信号KN、时钟信号接口CLK、输出信号接口OUT。
电源接口VDD用于接电源。
地线接口VSS用于接地。
行选通接口A用于向电路输入行选通信号,行选通信号用于调整各存算单元在各条字线上的接入状态。
输入信号接口IN用于向各存算单元输入相应的输入信号。
控制信号接口CEN用于输入调整各个存算单元运行状态的控制信号。
读写使能信号WEN用于输入调整各存算单元读写操作的使能信号。
切换信号KN用于向电路输入一个切换信号,切换信号用于调整存储阵列中各存算单元在读写操作、改写操作、存内运算操作的切换,以调整电路不同的工作模式。
时钟信号接口CLK用于向电路输入一个外部时钟信号,时钟信号用于提供存储阵列中各存算单元运行所需的时钟频率。
输出信号接口OUT用于读取各存算单元的存储的数据或逻辑运算结果。
本发明提供的技术方案,具有如下有益效果:
本发明通过反向设置RRAM在实现存内运算操作的同时降低对RRAM数量以及时钟周期的需求,从而可以有效降低功耗以及延迟,且可以通过控制接入NMOS晶体管,为不同的逻辑操作形成不同的放电路径,从而解决电阻交叉问题,通过调节输入电压脉冲和将结果存储在RRAM中就可以轻松地进行逻辑操作,使用更少的RRAM和时钟周期,使整体电路具有更好的空间性和时间复杂性。
附图说明
图1为本发明实施例1的一种存内计算电路的电路原理图;
图2为基于图1的RRAM0执行设置、复位和读取操作的读/写操作波形图;
图3为基于图1的AND、OR、XOR运算操作的波形图;
图4为基于图1的RRAM顶部与底部连接的结构示意图;
图5为基于图1的RRAM底部与底部连接的结构示意图;
图6为基于图1的RRAM顶部与顶部连接的结构示意图;
图7为基于图1的RRAM两周期实现异或和同或的连接结构示意图;
图8为基于图7的两周期实现异或和同或的波形图;
图9为实施例2的一种多逻辑存内运算电路的电路原理图;
图10为现有侦查逻辑电路图;
图11为现有侦查逻辑电路与本发明存内计算电路的运算精准度对比仿真图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参与图1,本实施介绍了一种存内计算电路,该存内计算电路包括由多个存储单元构成的存储阵列。存储阵列中相邻的两个存储单元RRAM结构反向放置。每列存储单元连接在四条位线SL、BL、BLBIN、BLBOUT上,NMOS管K1的源极和漏极分别接BLBIN和BLBOUT,NMOS管M8的源极与BL相连,NMOS管M9的漏极与BLBIN相连,M8的漏极、M9的源极接地。
每列中相邻的四个存储单元RRAM0~RRAM3构成一个基础的存算单元。存算单元还包括8个NMOS管M0~M7。每个NMOS管的栅极接一个字线。M0、M2、M4、M6的源极接SL,M1、M3、M5、M7的源极接BL,M0、M1的漏极接RRAM0的底部电极,M2、M3的漏极接RRAM1的顶部电极,M4、M5的漏极接RRAM2的底部电极,M6、M7的漏极接RRAM3的顶部电极,RRAM0、RRAM2的顶部电极接BLBIN,RRAM1、RRAM3的底部电极接BLBOUT。
将SL与SA连接,通过SA读取SL线上的电压并将其与一个参考电压Vref进行比较获得该电路的逻辑运算结果。参考电压Vref通过SA输入。一个基础的存算单元具有四个存储单元RRAM和八个NMOS管,且四个存储单元相邻反向放置,因此可以将基础的存算单元分为上下两部分,由于分别具有两个RRAM和四个NMOS管,可以简称为4T2R,进而一个基础的存算单元由两个4T2R交叉耦合构成。
基于上述存内计算电路结构,下面是详细的抗电阻交叉逻辑操作。
以任意一列的存算单元构成的存内计算电路为例,如图1所示,以RRAM0为例来说明如何读写RRAM,图1中所示的三条线表示三个逻辑运算AND、OR和XOR的放电路径。RRAM0和RRAM2以相同的方式放置,底部电极在左侧,顶部电极在右侧,用高阻态(HRS)编码为“0”,低阻态(LRS)编码为“1”,这将被称为正向编码。RRAM1和RRAM3的放置方式相同,顶部电极在左侧,底部电极在右侧,LRS编码为“0”,HRS编码为“1”,称为反向编码。图2显示了RRAM0执行设置、复位和读取操作的读/写操作波形。对于正向编码的RRAM0读取,从SA的正端读取。对于反向编码RRAM1读取,从SA的负端读取。
1)AND操作(“与”操作):通过打开M0、M5、M8和K1,RRAM0和RRAM2可以串联。只有当两个RRAM都是LRS时,放电路径才会快速放电SL,如图1所示。一旦电路中出现HRS,SL几乎不会放电,从而克服了LRS中的一个单元和HRS(1L1H)中的一个单元以及LRS(2L)中的两个单元可能产生的电阻交叉问题,并实现了无错误逻辑和操作功能。
如图1所示,AND操作时SL的放电路径为M0,RRAM0,K1,RRAM2,M5,M8。
2)OR操作(“或”操作):与AND操作不同,RRAM0和RRAM2通过打开M0、M4、M9和K1并联连接。只要两个RRAM中有LRS,SL就会放电。如果HRS(2H)中的两个电池都出现在电路中,SL几乎不会放电。如图1所示,OR操作时SL的放电路径为M0,RRAM0,K1,M9。或M4,RRAM2,M9。
也可以通过反向编码实现IMP操作。如果为OR操作选择RRAM0和RRAM1,并且RRAM0写入数据P,RRAM1写入数据Q,则在OR操作后从SA正端读取的结果为
Figure BDA0003904267820000061
这实现了Q→P。
3)XOR操作(“异或”操作):RRAM0和RRAM1通过打开M0和M3串联连接。RRAM2和RRAM3通过打开M4和M7串联连接。同时,两条串联线路并联连接。RRAM0和RRAM3写入相同的数据P,RRAM1和RRAM2写入相同的数据Q。由于RRAM1和RRAM3采用反向编码,因此相应的逻辑为
Figure BDA0003904267820000062
从SA的正端读取。只要有两个RRAM是串联的LRS,SL就会放电。如图1所示,XOR操作时SL的放电路径为M0,RRAM0,RRAM1,M3,M8。或M4,RRAM2,RRAM3,M7,M8。
图3显示了三种逻辑操作的波形。第一个周期是对SL线路预充电,第二个周期是通过控制晶体管对SL放电,最后一个周期是比较SL上的电压与SA上的Vref。由于放电路径上存在以HRS的RRAM,AND操作通过SA读取“0”。或由于放电路径上存在LRS,SA将操作读取为“1”。最后,对于异或运算,由于存在一组均在LRS中的RRAM,因此最终可以在SA上获得运算结果“1”。在该方法中,数据被输入到存储单元,然后可以执行逻辑操作,并且上述所有逻辑操作都是抗电阻交叉的,这保证了逻辑操作的正确性。
除了支持上述形式,结果以电压的形式表示并由SA读取外,结果还可以以RRAM电阻状态的形式表示。我们可以控制接入晶体管来实现RRAM的顶部-底部连接、底部-底部连接和顶部-顶部连接。下面具体说明以RRAM电阻状态的形式表示的逻辑运算:
1、P’=P*Q,Q’=P+Q:通过打开K1、M0和M7连接RRAM0和RRAM3。然后让BL接地。RRAM0存P,RRAM3存Q,SL连接到P的底部电极,Q的顶部电极通过M7接地。等效电路如图4所示。P是正向编码,Q是反向编码。让SL上的电压大于两倍|VRESET|,VRESET为RRAM的重置电压,操作后的结果表1所示。
表1:P’=P*Q,Q’=P+Q的真值表
Figure BDA0003904267820000071
当两个RRAM的电阻状态相同(P=1,Q=0或P=0,Q=1)时,SL上的电压将均匀分布到P和Q。由于电阻相同,两个RRAM将重置为HRS,即P=0,Q=1,因为P是正向编码,Q是反向编码。如果P是LRS,Q是HRS,则大部分电压施加在Q上。由于Q是HRS,RRAM中不会有电阻变化。
在P=0和Q=0时也是如此,没有电阻变化。P和Q的电阻状态表示不同逻辑运算的结果。
2、P’=Q IMP P,Q’=Q NIMP P:如图4所示。如果P是正向编码,Q是反向编码,当SL的电压介于(VSET,2VSET)之间时,VSET为RRAM的置位电压,运算后的结果如表2所示。
表2:P’=Q IMP P,Q’=Q NIMP P的真值表
Figure BDA0003904267820000081
当两个RRAM的电阻状态相同时,即P=1,Q=0或P=0,Q=1。SL上的电压将均匀分布到P和Q,点M处的电压介于(VSET/2,VSET)之间,这意味着RRAM上的电压降不足以设置RRAM,因此RRAM中不会有电阻变化。如果P为HRS,Q为LRS,则大部分电压施加在P上。P将设置为LRS,Q将保持不变。类似地,当P为LRS,Q为HRS时,Q将设置为LRS,P将保持不变。运算后,P和Q的电阻状态表示不同逻辑运算的结果。
3、P’=0,Q’=P IMP Q:等效电路如图5所示,通过打开K1、M2、M7连接RRAM1和RRAM3,BL接地。SL连接到RRAM1的顶部电极,RRAM3的顶部电极通过M7接地,RRAM1存P,RRAM3存Q。假设SL上的电压大于VSET的两倍。当两个RRAM的电阻状态相同(P=0,Q=0或P=1,Q=1)时,SL上的电压将均匀分布到P和Q,这足以使P执行设定操作,而Q执行复位操作。运算后,P’=0,Q’=1。如果P为HRS,Q为LRS,则大部分电压施加在P上,因此P将设置为LRS,Q将保持不变。如果P是LRS,Q是HRS,则大部分电压施加在Q上,因为Q是HRS,所以RRAM中不会有电阻变化。结果如表3所示。
表3:P’=0,Q’=P IMP Q的真值表
Figure BDA0003904267820000082
4、P’=P*Q,Q’=P IMP Q:设SL上的电压范围为(VSET,2VSET)。当两个RRAM的电阻状态相同(P=0,Q=0或P=1,Q=1)时,SL上的电压将均匀分布到P和Q,点M处的电压为(VSET/2,VSET),RRAM上的电压降不足以启动RRAM的设置操作,但可以执行重置操作。如果P=Q=0,则在操作P’=0,Q’=1之后。如果P=Q=1,RRAM中不会有电阻变化。如果P是LRS,Q是HRS,则大部分电压施加在Q上,因为Q是HRS,所以RRAM中不会有电阻变化。如果P为HRS,Q为LRS,则大部分电压施加在P上,P将设置为LRS,Q将保持不变。结果如表4所示。
表4:P’=P*Q,Q’=P IMP Q的真值表
Figure BDA0003904267820000091
5、P’=P,Q’=P IMP Q:设SL上的电压范围为(2VRESET,VSET)。当两个RRAM的电阻状态相同(P=0,Q=0或P=1,Q=1)时,SL上的电压将均匀分布到上下RRAM,点M处的电压为(VRESET,VSET/2),RRAM上的电压降不足以设置RRAM,但可以执行重置操作。因此,分析方法和结果与之前的电压情况相同。如果P是LRS,Q是HRS,则大部分电压施加在Q上,因为Q是HRS,所以RRAM中不会有电阻变化。在P为HRS和Q为LRS时也是如此,没有电阻变化。结果如表5所示。
表5:P’=P,Q’=P IMP Q的真值表
Figure BDA0003904267820000092
通过打开K1、M0和M5连接RRAM0和RRAM2,BL接地。SL连接到RRAM0的底部电极,RRAM2的底部电极通过M5接地,可以如图6所示连接RRAM,RRAM0存P,RRAM2存Q。实现的操作还包括置0、置1、保持、“IMP”、“NIMP”和“OR”,其结果如下表6~8所示。
表6:P’=Q IMP P,Q’=0的真值表
Figure BDA0003904267820000101
表7:P’=Q IMP P,Q’=P*Q的真值表
Figure BDA0003904267820000102
表8:P’=Q IMP P,Q’=Q的真值表
Figure BDA0003904267820000103
6、该结构还可以存储XOR和XNOR的结果,只需要两个RRAM和两个循环。首先,让RRAM以如图7所示的形式连接,其中P用正向编码和Q反向编码进行编码。如果P0=A和Q0=B,则在操作P1=AB和Q1=A+B之后。接下来,通过控制晶体管,可以如图7所示配置两个RRAM,其中上部RRAM是先前反向编码的Q,下部RRAM是正向编码的P。当设置如表9所示的适当电压时,下部RRAM的状态为
Figure BDA0003904267820000104
而上层RRAM表示异或结果。
表9:两周期实现XOR和XNOR的真值表
Figure BDA0003904267820000111
具体为:首先令RRAM0存P,RRAM3存Q,通过打开M0、M7和K1,令两个RRAM的连接方式为顶部与底部相连接,且SL的电压为大于两倍的VRESET,此时运算后的RRAM1存储的运算结果为A*B,RRAM3存储的运算结果为A+B,在第二个周期时,打开M1、M6、K1,且令SL上的电压范围为大于VSET小于2VSET,经过运算后则RRAM0存储的数据为P⊙Q,RRAM3存储的数据为
Figure BDA0003904267820000112
实现了两个周期使用两个RRAM完成了XOR和XNOR的操作。图8示出了两个周期使用两个RRAM完成了XOR和XNOR的操作的结果的波形图。
实施例2
请参阅图9,本实施例在实施例1的基础上。提供了一种包含阵列分布的如实施例1介绍的存内计算电路。
具体的,本实施例介绍了及一种多逻辑存内运算电路,该多逻辑存内运算电路包括存储阵列、位线组、NMOS管K1、晶体管组、字线WL、字线CTRLR、字线CTRLR、字线驱动模块、译码器、功能切换电路、预充电电路、时序控制电路、开关电路、灵敏放大器、输出电路。
其中,存储阵列由4NM个存算单元构成4N×M的阵列形式。其中,N表示存储阵列的行数,M表示存储阵列的列数。
位线组包括M组SL、BL、BLBIN、BLBOUT。每列中的各个存算单元均连接在同一组位线SL、BL、BLBIN、BLBOUT上。
NMOS管K1数量为M个,每列的K1的源极和漏极连接在同一组BLBIN、BLBOUT上。
晶体管组包括M个NMOS晶体管M8、M9。每列的位线BL、BLBIN均连接在同一组M8、M9上。
字线WL数量为8N个,用于控制存储阵列中各存算单元内的NMOS管的开启与关断。字线CTRLR用于控制晶体管组中各晶体管M9的开启与关断。字线CTRLL用于控制晶体管组中个晶体管M8的开启与关断。字线驱动模块用于控制存储阵列中各存算单元的字线的高低电平。
译码器用于根据输入地址选择相应字线的开启。
功能切换电路用于控制存储阵列中各存算单元在读写操作、改写操作、存内运算中的切换,以调整电路不同的工作模式。
预充电电路用于对存储阵列中的每列存算单元连接的位线SL、BL、BLBIN、BLBOUT进行预充电操作。
时序控制电路用于产生各个功能模块所需的时钟信号。
开关电路用于控制存储阵列中各存算单元连接的位线的开启或关断。
灵敏放大器数量为M个,用于比较位线SL上的电压与一个预设的参考电压Vref,进而得到任意列中存算单元的存储数据或逻辑计算结果。
输出电路用于输出任意列中存算单元的存储数据或逻辑计算结果。
特别地,存储阵列中的任一存算单元、K1、晶体管组构成如前述的存内计算电路,并可实现该基础电路的完整功能。
本实施例与实施例1的区别在于:本实施例将实施例1中的存算单元通过阵列分布的形成构成一个大规模的存内运算电路,并与其他电路相配合,构成了完整的多逻辑存内运算电路。因此本实施例能够实现实施例1中的逻辑运算等操作。
下面以图9为例对本实施例的方案进行详细说明。
图9中的存算单元的阵列分布是64×64,由于本实施例是以同一列相邻的存算单元构成一个基础的存算单元,因此最终的存储阵列实际上是以64×32分布的,通过原有的同一列相邻的存算单元交叉耦合构成的一个基础存算单元,能够完整抗阻交叉逻辑运算。在最终的存储阵列中,任意行和列均包括基础单元均包括两个原有的存算单元构成的基础的存算单元。
参考图9,原有的存算单元每行共用四条字线,每列共用四条位线,且每列共用一个晶体管M8和M9,且同一列中的位线BILIN和BLBOUT之间连接一个开关晶体管K1,K1为NOMS管,对于本实施例中采用的晶体管,均为NOMS管,每一列中奇数行连接位线BILIN,偶数行连接BLBOUT。
特别的,在实施例1中提及的4T2R即为图9中原有的存算单元,根据图9中表示的原有的存算单元的阵列进行说明,以第一行和第二行为例,第一行的4T2R中的晶体管M0~M3分别接字线WL<0>~WL<3>,第二行的4T2R中的晶体管M4~M7分别接字线WL<4>~WL<7>,每行字线连接同一行的晶体管,并能够控制晶体管的开启与关断。
基于此,存储功能的实现和原始RRAM一致,但是通过RRAM之间的相互配合,实现“与”、“或”、“异或”等逻辑操作,且能够降低对时间周期的需求。
需要说明的是,4T2R、64×64的存储阵列等均是本实施例为了说明该方案而列举出的示例,并非对本案的限定,在其它实施例中,基于相同的技术思路,完全可以采用其它类型的存储单元构成更大规模的其它存储阵列进而得到所需的“存储阵列”。
实施例3
本实施例介绍了多逻辑存内运算芯片,其由前述的多逻辑存内运算电路封装而成。多逻辑存内运算芯片的接口至少包括电源接口VDD、地线接口VSS、行选通接口A、输入信号接口IN、控制信号接口CEN、读写使能信号WEN、切换信号KN、时钟信号接口CLK、输出信号接口OUT。
电源接口VDD用于接电源。地线接口VSS用于接地。行选通接口A用于向电路输入行选通信号,行选通信号用于调整各存算单元在各条字线上的接入状态。输入信号接口IN用于向各存算单元输入相应的输入信号。控制信号接口CEN用于输入调整各个存算单元运行状态的控制信号。读写使能信号WEN用于输入调整各存算单元读写操作的使能信号。切换信号KN用于向电路输入一个切换信号,切换信号用于调整存储阵列中各存算单元在读写操作、改写操作、存内运算操作的切换,以调整电路不同的工作模式。时钟信号接口CLK用于向电路输入一个外部时钟信号,时钟信号用于提供存储阵列中各存算单元运行所需的时钟频率。输出信号接口OUT用于读取各存算单元的存储的数据或逻辑运算结果。
性能测试
为了验证本发明中所设计的存算单元的运算准确率,将本发明实施例中的存算电路和如图10所示的现有侦查逻辑电路进行比较,以测试操作的准确性。如图11所示,以“与操作”为例,进行仿真试验,具体如下:
1、仿真条件:采用工艺角TT,温度为27℃。需要说明的是,提供给设计师的性能范围通常只适用于数字电路并以“工艺角”(Process Corner)的形式给出。其思想是把NMOS和PMOS晶体管的速度波动范围限制在由四个角所确定的矩形内。这四个角分别是:快NFET和快PFET,慢NFET和慢PFET,快NFET和慢PFET,慢NFET和快PFET。从晶片中提取与每一个角相对应的器件模型时,片上NMOS和PMOS的测试结构显示出不同的门延时,而这些角的实际选取是为了得到可接受的成品率。各种工艺角和极限温度条件下对电路进行仿真是决定成品率的基础。所以所说的SS、TT、FF分别指的是左下角的corner,中心、右上角的corner。从测量角度来说,T指晶体管驱动电流是一个平均值,F指驱动电流是其最大值,而S指驱动电流是其最小值。单一器件所测的结果是呈正态分布的,均值在TT,最小最大限制值为SS与FF。
2、仿真次数:设置5000次蒙特卡洛仿真实验。多次实验以获得稳定的实验结果。因此实验5000次对本电路的运算准确率的评估更具有参考价值。
3、仿真结果:分析图11可知,当电阻变化小于2σ时,本发明的电路和现有侦查逻辑电路的运算精度均为100%,当电阻变化位于2σ和3σ之间时,现有侦查逻辑电路的运算精准开始下降,当电阻变化大于3σ时,现有侦查逻辑电路的运算精准显著下降,但本发明的电路的精度没有明显降低。
综上,本发明使用4T2R可以执行不同的逻辑运算。底层方案的鲁棒性是根据操作使用不同的放电路径,以防止电阻交叉问题。此外,通过控制晶体管可以配置RRAM的多个连接,然后通过调节输入电压脉冲和将结果存储在RRAM中可以轻松地进行逻辑操作。反向编码允许执行OR、XOR和XNOR操作,这些操作在其他设备中需要更多的周期,使用更少的RRAM和时钟周期。因此,设计的电路设计显示出有更好的空间性和时间复杂性。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种存内计算电路,其特征在于,其包括由多个存储单元构成的存储阵列;所述存储阵列中相邻的两个存储单元RRAM结构反向放置;每列存储单元连接在四条位线SL、BL、BLBIN、BLBOUT上,NMOS管K1的源极和漏极分别接BLBIN和BLBOUT,NMOS管M8的源极与BL相连,NMOS管M9的漏极与BLBIN相连,M8的漏极、M9的源极接地;
每列中相邻的四个存储单元RRAM0~RRAM3构成一个基础的存算单元;所述存算单元还包括8个NMOS管M0~M7;每个NMOS管的栅极接一个字线;M0、M2、M4、M6的源极接SL,M1、M3、M5、M7的源极接BL,M0、M1的漏极接RRAM0的底部电极,M2、M3的漏极接RRAM1的顶部电极,M4、M5的漏极接RRAM2的底部电极,M6、M7的漏极接RRAM3的顶部电极,RRAM0、RRAM2的顶部电极接BLBIN,RRAM1、RRAM3的底部电极接BLBOUT。
2.根据权利要求1所述的存内计算电路,其特征在于,所述存算单元执行“与”逻辑运算的操作如下:
通过打开M0、M5、M8和K1令RRAM0和RRAM2串联;当RRAM0和RRAM2处于低阻态时,SL放电;当RRAM0和RRAM2处于高阻态时,SL不放电;SL的放电路径为M0,RRAM0,K1,RRAM2,M5,M8。
3.根据权利要求1所述的存内计算电路,其特征在于,所述存算单元执行“或”逻辑运算的操作如下:
通过打开M0、M4、M9和K1令RRAM0和RRAM2并联连接;当RRAM0和/或RRAM2处于低阻态时,SL放电;当RRAM0和RRAM2处于高阻态时,SL不放电;
SL的放电路径为M0,RRAM0,K1,M9;
或M4,RRAM2,M9。
4.根据权利要求1所述的存内计算电路,其特征在于,所述存算单元执行“异或”逻辑运算的操作如下:
通过打开M0、M3、M8令RRAM0和RRAM1串联连接,打开M4和M7令RRAM2和RRAM3串联连接,且RRAM0、RRAM1与RRAM2、RRAM3并联;当RRAM0、RRAM1和/或RRAM2、RRAM3处于低阻态时,SL放电;
SL的放电路径为M0,RRAM0,RRAM1,M3,M8;
或M4,RRAM2,RRAM3,M7,M8。
5.根据权利要求1所述的存内计算电路,其特征在于,所述存算单元内的存储单元之间的连接方式包括顶部-底部连接、底部-底部连接和顶部-顶部连接;存储单元的电阻状态来表示不同逻辑运算结果。
6.根据权利要求5所述的存内计算电路,其特征在于,所述存算单元内的存储单元的顶部-底部连接操作如下:
通过打开K1、M0和M7连接RRAM0和RRAM3,BL接地;SL连接到RRAM0的底部电极,RRAM3的顶部电极通过M7接地;RRAM0和RRAM3的电阻状态表示不同逻辑运算结果;
通过打开K1、M2和M5连接RRAM1和RRAM2,BL接地;SL连接到RRAM1的顶部电极,RRAM2的底部电极通过M5接地;RRAM1和RRAM2的电阻状态表示不同逻辑运算结果。
7.根据权利要求5所述的存内计算电路,其特征在于,所述存算单元内的存储单元的底部-底部连接操作如下:
通过打开K1、M2、M7连接RRAM1和RRAM3,BL接地;SL连接到RRAM1的顶部电极,RRAM3的顶部电极通过M7接地;RRAM1和RRAM3的电阻状态表示不同逻辑运算结果。
8.根据权利要求5所述的存内计算电路,其特征在于,所述存算单元内的存储单元的顶部-顶部连接操作如下:
通过打开K1、M0和M5连接RRAM0和RRAM2,BL接地;SL连接到RRAM0的底部电极,RRAM2的底部电极通过M5接地;RRAM0和RRAM2的电阻状态表示不同逻辑运算结果。
9.一种多逻辑存内运算电路,其特征在于,其包括:
存储阵列,其由4NM个存算单元构成4N×M的阵列形式;其中,N表示存储阵列的行数,M表示存储阵列的列数;
位线组,其包括M组SL、BL、BLBIN、BLBOUT;每列中的各个存算单元均连接在同一组位线SL、BL、BLBIN、BLBOUT上;
NMOS管K1,其数量为M个,每列的K1的源极和漏极连接在同一组BLBIN、BLBOUT上;
晶体管组,其包括M个晶体管M8、M9;每列的位线BL、BLBIN均连接在同一组M8、M9上;
字线WL,其数量为8N个,用于控制存储阵列中各存算单元内的NMOS管的开启与关断;
字线CTRLR,其用于控制晶体管组中各晶体管M9的开启与关断;
字线CTRLL,其用于控制晶体管组中个晶体管M8的开启与关断;
字线驱动模块,其用于控制存储阵列中各存算单元的字线的高低电平;
译码器,其用于根据输入地址选择相应字线的开启;
功能切换电路,其用于控制存储阵列中各存算单元在读写操作、改写操作、存内运算中的切换,以调整电路不同的工作模式;
预充电电路,其用于对存储阵列中的每列存算单元连接的位线SL、BL、BLBIN、BLBOUT进行预充电操作;
时序控制电路,其用于产生各个功能模块所需的时钟信号;
开关电路,其用于控制存储阵列中各存算单元连接的位线的开启或关断;
灵敏放大器,其数量为M个,用于比较位线SL上的电压与一个参考电压Vref,进而得到任意列中存算单元的存储数据或逻辑计算结果;
输出电路,其用于输出任意列中存算单元的存储数据或逻辑计算结果;
其中,存储阵列中的任一存算单元、K1、晶体管组构成如权利要求1-8中任意一项所述的存内计算电路,并可实现该基础电路的完整功能。
10.一种多逻辑存内运算芯片,其特征在于,其由权利要求8所述的多逻辑存内运算电路封装而成;所述多逻辑存内运算芯片的接口至少包括:
电源接口VDD,其用于接电源;
地线接口VSS,其用于接地;
行选通接口A,其用于向电路输入行选通信号,所述行选通信号用于调整各存算单元在各条字线上的接入状态;
输入信号接口IN,其用于向各存算单元输入相应的输入信号;
控制信号接口CEN,其用于输入调整各个存算单元运行状态的控制信号;
读写使能信号WEN,其用于输入调整各存算单元读写操作的使能信号;
切换信号KN,其用于向电路输入一个切换信号,所述切换信号用于调整存储阵列中各存算单元在读写操作、改写操作、存内运算操作的切换,以调整电路不同的工作模式;
时钟信号接口CLK,其用于向电路输入一个外部时钟信号,所述时钟信号用于提供存储阵列中各存算单元运行所需的时钟频率;
输出信号接口OUT,其用于读取各存算单元的存储的数据或逻辑运算结果。
CN202211301473.6A 2022-10-24 2022-10-24 存内计算电路、多逻辑存内运算电路及其芯片 Pending CN115565579A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211301473.6A CN115565579A (zh) 2022-10-24 2022-10-24 存内计算电路、多逻辑存内运算电路及其芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211301473.6A CN115565579A (zh) 2022-10-24 2022-10-24 存内计算电路、多逻辑存内运算电路及其芯片

Publications (1)

Publication Number Publication Date
CN115565579A true CN115565579A (zh) 2023-01-03

Family

ID=84746926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211301473.6A Pending CN115565579A (zh) 2022-10-24 2022-10-24 存内计算电路、多逻辑存内运算电路及其芯片

Country Status (1)

Country Link
CN (1) CN115565579A (zh)

Similar Documents

Publication Publication Date Title
US10482972B2 (en) Memory as a programmable logic device
KR101472766B1 (ko) 타이밍 제어를 위한 더미 비트라인을 갖는 메모리
US11056161B2 (en) Data processing system and method for generating a digital code with a physically unclonable function
US9401207B2 (en) Pseudo SRAM using resistive elements for non-volatile storage
KR102212814B1 (ko) 가변 지연 워드 라인 인에이블
CN115588446A (zh) 一种存储运算电路、存内计算电路及其芯片
US20220165331A1 (en) Variable delay word line enable
CN112994681B (zh) 一种用于存内计算的逻辑运算电路
CN117316237A (zh) 时域8t1c-sram存算单元及时序跟踪量化的存算电路
CN116204490A (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
US3997883A (en) LSI random access memory system
CN115565579A (zh) 存内计算电路、多逻辑存内运算电路及其芯片
CN112951290B (zh) 一种基于非易失性随机存储器的内存计算电路及装置
Monga et al. A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM
CN114097037A (zh) 可移位存储器和操作可移位存储器的方法
TW201727640A (zh) 工作於多重低電壓且不降低效能的靜態隨機存取記憶體
US4890261A (en) Variable word length circuit of semiconductor memory
US8787075B2 (en) Low-voltage semiconductor memory
US6519177B1 (en) Circuits and methods for initializing memory cells
CN116913342B (zh) 具有存内布尔逻辑运算功能的存储电路及其模块、芯片
US20240170050A1 (en) 6t-sram-based digital computing-in-memory circuits supporting flexible input dimension
Lin et al. Cross-coupled 4T2R multi-logic in-memory computing circuit design
CN117649866A (zh) 存储单元及其写入、读取、计算方法、存储器
CN112967741A (zh) 一种面向存算阵列的高速高压字线驱动电路
CN113658623A (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