CN117271436B - 基于sram的电流镜互补存内计算宏电路、及芯片 - Google Patents

基于sram的电流镜互补存内计算宏电路、及芯片 Download PDF

Info

Publication number
CN117271436B
CN117271436B CN202311551254.8A CN202311551254A CN117271436B CN 117271436 B CN117271436 B CN 117271436B CN 202311551254 A CN202311551254 A CN 202311551254A CN 117271436 B CN117271436 B CN 117271436B
Authority
CN
China
Prior art keywords
module
current mirror
charge
electrode
sram
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.)
Active
Application number
CN202311551254.8A
Other languages
English (en)
Other versions
CN117271436A (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.)
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 CN202311551254.8A priority Critical patent/CN117271436B/zh
Publication of CN117271436A publication Critical patent/CN117271436A/zh
Application granted granted Critical
Publication of CN117271436B publication Critical patent/CN117271436B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • 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

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明涉及集成电路技术领域,更具体的,涉及基于SRAM的电流镜互补存内计算宏电路、及芯片。本发明公开了基于SRAM的电流镜互补存内计算宏电路,包括阵列运算模块、读写选择模块、互补充放电模块、电流镜模块、输入模块、输出模块。本发明可以实现32组5bit带符号数乘以1bit权重结果的同或累加计算。本发明通过电流镜模块为互补充放电模块提供互补的栅极控制电压,使充放电单元的充放电能力完全相同,从而保证BL单位时间的充电或放电量是相同的,以保证计算结果的精度。本发明的电流镜模块采用双层结构,可以有效降低驱动电流,使得功耗较小。本发明解决了现有存内计算结构进行同或累加运算时精度较低、功耗较大的问题。

Description

基于SRAM的电流镜互补存内计算宏电路、及芯片
技术领域
本发明涉及集成电路技术领域,更具体的,涉及:1、基于SRAM的电流镜互补存内计算宏电路;2、基于该存内计算宏电路构建的SRAM 存算一体芯片。
背景技术
卷积神经网络作为人工神经网络中最广泛的一种网络,大量应用于生物医疗、自动控制和模式识别等方面。二值权重网络(Binary Neural Networks)是一种只针对神经网络系数二值化的二值网络算法,它能够降低神经网络模型在运算时所需的乘法运算量,在速度、功耗、内存占用方面具有显著优势。BWN只关心系数二值化,构建Binary Connect网络将全精度浮点权重强置二值化为一个1bit数,即-1或+1,同时不改变网络的中间值。实现轻量级按位乘法XNOR操作和Bitcount操作取代繁琐的矩阵乘法。
神经网络算法中数据密集型应用程序(如机器学习、人工智能等)的广泛使用促使其硬件实现的高效性不断提高,而传统冯·诺依曼架构不仅需要从独立的存储器读取数据后传输给运算器再进行运算,产生巨大的能量消耗;而且内存传输数据耗时远高于运算时间,限制整体的运算吞吐量,无法满足AI芯片对并行运算、低延迟、低功耗等高要求。存内计算通过对存储计算进行重新设计将存储和计算整合在一个内存宏中,使计算能效达到数量级提升。
现有存内计算结构较传统冯·诺依曼架构运算量和能效虽然有了极大的提升,但是由于是基于电压的变化,会导致二值权重网络在电压域形势下的计算(例如同或累加运算)精度较低、功耗较大。
发明内容
基于此,有必要针对现有存内计算结构进行同或累加运算时精度较低、功耗较大的问题,提供基于SRAM的电流镜互补存内计算宏电路、及芯片。
本发明采用以下技术方案实现:
第一方面,本发明公开了一种基于SRAM的电流镜互补存内计算宏电路,用于进行32组乘计算的同或累加计算;每组乘计算为5bit带符号数乘以1bit权重。
基于SRAM的电流镜互补存内计算宏电路包括:阵列运算模块、读写选择模块、互补充放电模块、电流镜模块、输入模块、输出模块。
阵列运算模块包括呈256×64规格阵列排布的8T运算单元。其中,8T运算单元用于存储1bit权重数据、并在运算时将存储的1bit权重数据与输入的1bit符号位进行同或运算。
同一行的8T运算单元共用同一个FP、同一个FN、同一根字线WL。同一列的8T运算单元共用同一根读位线RBL、同一根读位线RBLB、同一条写位线WBL、同一条写位线WBLB。同一列的8T运算单元中,每8行构成一组8T运算组,共32组8T运算组。
读写选择模块用于通过WL、WBL、WBLB对8T运算单元进行读写1bit权重数据。
互补充放电模块包括呈32×64规格阵列排布的充放电单元。其中,同一列中每组8T运算组共用同一个充放电单元。同一列的充放电单元共用同一根计算位线BL。同一行的充放电单元共用同一个IN、同一个INV。
电流镜模块包括两层电流镜;其中,第一层电流镜将参考电流I复制并供给第二层电流镜;第二层电流镜将参考电流I进行复制64遍,用于给64列互充放电单元提供互补的栅极控制电压,以使充放电单元的充放电能力完全相同。
输入模块用于输入每次运算所需的128bit无符号数、32bit符号位。其中,输入模块包括:TDC子模块、1bit符号位输入子模块、4bit无符号数输入子模块。TDC子模块用于将128bit无符号数转换成32个脉宽信号。1bit符号位输入子模块用于将32bit符号位和32个脉宽信号进行与运算、再通过三八译码器生成256个控制信号FP、256个控制信号FN,并对应输入到256行8T运算单元。4bit无符号数输入子模块用于将32个脉宽信号通过32个控制信号IN、32个控制信号INV对应输入到32行充放电单元。
输出模块包括8个读输出子模块、8个运算输出子模块。其中,每8列8T运算单元共用1个读输出子模块,用于输出1bit权重数据;每8列充放电单元共用1个运算输出子模块,用于输出4bit运算结果。
该种基于SRAM的电流镜互补存内计算宏电路的实现根据本公开的实施例的方法或过程。
第二方面,本发明公开了一种SRAM 存算一体芯片,其包括存内模块、SRAM外部模块。
存内模块采用如第一方面公开的基于SRAM的电流镜互补存内计算宏电路的布局。SRAM外部模块包括时钟驱动模块、地址解码模块。时钟驱动模块用于控制阵列运算模块、输入模块、输出模块的信号时序。地址解码模块用于在存储操作模式下找到要读写1bit权重的8T运算单元、在运算操作模式下找到要开启的列、要开启的行。
与现有技术相比,本发明具备如下有益效果:
1,本发明旨在完成32组5bit带符号数乘以1bit权重结果的同或累加计算,利用阵列运算模块存储1bit权重,并通过输入模块向阵列运算模块输入32bit符号位、向互补充放电模块输入128bit无符号数转换的32个脉宽信号,利用阵列运算模块完成符号位和权重的同或运算、再通过互补充放电模块根据同或运算的结果按照脉宽信号进行充电或者放电,从而在计算位线BL完成结果累加,并由运算输出子模块完成结果输出;整个计算宏电路设计精巧,运算时间短、运算效率高。
2,本发明的计算宏电路可以通过读写选择模块对阵列运算模块内的1bit权重进行读写,可以提供不同的权要值;并且,本发明通过电流镜模块为互补充放电模块提供互补的栅极控制电压,使充放电单元的充放电能力完全相同,从而保证BL单位时间的充电或放电量是相同的,以保证计算结果的精度。
3,本发明的电流镜模块采用双层结构,可以有效降低驱动电流,使得功耗较小;本发明的读输出子模块采用灵敏放大器SA、运算输出子模块采用逐次逼近型ADC,可降低输出模块的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例1所提供的基于SRAM的电流镜互补存内计算宏电路的整体结构图;
图2为图1中阵列运算模块的一列8T运算单元的电路连接图;
图3为图1中一组8T运算组与对应的一个充放电单元的电路连接图;
图4为图1中电流镜模块的电路连接图;
图5为图1中输入模块的结构图;
图6为图5中一个多路复用器的结构图;
图7为图5的多路复用器生成的TD5、TD10、TD12、TD15的时序图;
图8为图5的输入模块与阵列运算模块、互补充放电模块、运算输出子模块的电路连接图;
图9为本发明实施例2所提供的SRAM 存算一体芯片的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当组件被称为“安装于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。当一个组件被认为是“固定于”另一个组件,它可以是直接固定在另一个组件上或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/及”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
参看图1,为本实施例1所提供的基于SRAM的电流镜互补存内计算宏电路的整体结构图。
总的来说,本计算宏电路用于进行32组乘计算的同或累加计算;每组乘计算为5bit带符号数乘以1bit权重。需要说明的是,5bit带符号数采用1bit符号位和4bit无符号数的组合形式。
从功能上划分,本存内计算宏电路可分成:阵列运算模块、读写选择模块、互补充放电模块、电流镜模块、输入模块、输出模块。
下面逐一进行介绍:
①阵列运算模块包括呈256×64规格阵列排布的8T运算单元。
其中,8T运算单元用于存储1bit权重数据、并在运算时将存储的1bit权重数据与输入的1bit符号位进行同或运算。相比于现有技术的6T、10T SRAM单元,本8T运算单元平衡了晶体管数目与动态范围,提高了芯片性能。
具体的,参看图2,8T运算单元包括:6个MMOS管N1~N6、2个PMOS管P1~P2。N1的源极接VSS。N2的源极接VSS。N3的源极连接WBL,N3的漏极连接N1的漏极并设置有存储节点Q,N3的栅极连接WL。N4的源极连接WBLB,N4的漏极连接N2的漏极并设置有存储节点QB,N4的栅极连接WL。N5的源极连接RBL,N5的漏极连接N1的漏极,N5的栅极连接FP。N6的源极连接RBLB,N6的漏极连接N2的漏极,N6的栅极连接FN。P1的源极连接VDD,P1的漏极连接N1的漏极,P1的栅极连接N1的栅极。P2的源极连接VDD,P2的漏极连接N2的漏极,P2的栅极连接N2的栅极。
其中,N1~N4、P1~P2组成了一个6T-SRAM,用来存储1bit权重。1bit权重可通过对WL、RBL、RBLB进行控制来进行读写(具体参看读写选择模块)。而N5~N6则用于将存储的1bit权重与输入的1bit符号位(通过FP、FN进行输入)进行同或运算。同或运算的结果反映到RBL或RBLB上、进而决定后续BL充电或放电。
如图2所示,同一行的8T运算单元共用同一个FP、同一个FN、同一根字线WL。同一列的8T运算单元共用同一根读位线RBL、同一根读位线RBLB、同一条写位线WBL、同一条写位线WBLB。同一列的8T运算单元中,每8行构成一组8T运算组,共32组8T运算组:具体的,即第1行到第8行的8T运算单元构成第1组8T运算组;第9行到第16行的8T运算单元构成第2组8T运算组;…;第249行到第256行的8T运算单元构成第32组8T运算组。
需要说明的是,每次运算时,阵列运算模块会开启1列、开启32组8T运算组中第n行(即32行)。
②读写选择模块用于通过WL、WBL、WBLB对选定的8T运算单元进行读写1bit权重数据。
读写选择模块先选定要进行读写1bit权重的8T运算单元。待选定后,读写选择模块将该8T运算单元的WL拉高到高电平,N5、N6关断,N3、N4导通,Q通过N3、WBL完成数据写入或读出,QB通过N4、WBLB完成数据写入或读出。
③互补充放电模块包括呈32×64规格阵列排布的充放电单元。
参看图3,同一列中每组8T运算组共用同一个充放电单元:具体的,同一列中,第j组8T运算组共用第j个充放电单元;j∈[1,8]。同一列的充放电单元共用同一根计算位线BL。同一行的充放电单元共用同一个IN、同一个INV。
具体的,参看图3,充放电单元包括:1个传输门TG、2个反相器H1~H2、3个PMOS管P3~P5、3个NMOS管为N7~N9。
TG的输入端连接RBL,TG的输出端连接RBLB,TG的控制端分别连接IN、INV。H1的输入端连接RBL。H2的输入端连接RBLB。P3的栅极连接IN,P3的漏极连接VDD,P3的源极连接RBL。P4的栅极连接H2的输出端,P4的源极连接BL。P5的栅极连接电流镜模块,P5的漏极连接VDD,P5的源极连接P4的漏极。N7的栅极连接INV,N7的漏极连接VSS,N7的源极连接RBLB。N8的栅极连接H1的输出端,N8的漏极连接BL。N9的栅极连接电流镜模块,N9的源极连接VSS,N9的漏极连接N8的源极。
总的来说,传输门TG用于在进行计算时将RBL、RBLB连通,在不计算时将RBL、RBLB断开。反相器H1~H2用于对RBL或RBLB的电平进行反相输出;N8、N9、P4、P5用于对BL进行充电或放电,反映出4bit无符号数乘以同或运算结果的计算;P3、N7用于在不计算时关断BL的充放电路径。
④电流镜模块包括两层电流镜。其中,第一层电流镜将参考电流I复制并供给第二层电流镜;第二层电流镜将参考电流I进行复制64遍,用于给64列互充放电单元提供互补的栅极控制电压,以使充放电单元的充放电能力完全相同。
具体的,参看图4,第一层电流镜包括:1个PMOS管P6、2个NMOS管N10~N11。P6的源极连接VDD。N10的漏极连接参考电流I,N10的源极连接VSS,N10的栅极连接参考电流I。 N11的漏极连接P6的漏极,N11的源极连接VSS,N11的栅极连接N10的栅极。
第二层电流镜包括64个相同结构的共栅电流镜,并与64列的充放电单元对应连接;其中,共栅电流镜包括:2个PMOS管P7~P8、2个NMOS管N12~N13。P7的源极连接VDD,P7的栅极连接P6的栅极。P8的源极连接VDD,P8的栅极连接P5的栅极。N12的源极连接VSS,N12的栅极连接N9的栅极,N12的漏极连接P7的漏极。N13的源极连接VSS,N13的栅极连接N12的栅极,N13的漏极连接P8的漏极。
换句话说就是,第一层电流镜根据参考电流I产生栅极控制电压IO2,再将IO2连接第二层64个共栅电流镜中PMOS管的栅极,在P7、N12产生与I相同的电流,并将I复制为P6、N11的电流。此时,P8的栅极产生INR、N13的栅极产生INL,INR与INL互补,这样P5、N9的栅极电压互补,使N9、P5始终导通、并且流过N9、N5的电流相等。
⑤输入模块用于输入每次运算所需的128bit无符号数、32bit符号位。
这是因为每次运算时要开启32行,每行需要输入4bit无符号数、1bit符号位,那么32行就需要输入128bit无符号数、32bit符号位。
其中,输入模块包括:TDC子模块、1bit符号位输入子模块、4bit无符号数输入子模块。
TDC子模块用于将128bit无符号数转换成32个脉宽信号。参看图5,对于TDC子模块来说,其包括时分复用器、32个多路复用器。
时分复用器用于生成时间先后不同的电平信号TD5、TD10、TD12、TD15:如图6所示,TD5保持高电平的时长为5t;TD10保持高电平的时长为10t、TD12保持高电平的时长为12t、TD15保持高电平的时长为15t;t=200Ps。
以TD12为基准,TD15高电平起点与TD12相同、高电平终点比TD12早3t;TD10高电平起点比TD12晚4t、高电平终点比TD12早2t;TD5高电平起点比TD12晚8t、高电平终点比TD12早1t。
32个多路复用器用于将128bit无符号数依据TD5、TD10、TD12、TD15转换成32个脉宽信号。参看图7,多路复用器包括1个四选一数据选择器、2个二选一数据选择器。
首先,128bit无符号数按照4bit位数高低分配成32个4bit无符号数。其中,第128个到第97个128bit无符号数分配给最高位IN<3>;第96个到第65个128bit无符号数分配给次高位IN<2>;第64个到第33个128bit无符号数分配给次低位IN<1>;第32个到第1个128bit无符号数分配给最低位IN<0>。
第i个多路复用器用于将第i个4bit无符号数转换成第i个脉宽信号。
具体的,对于第i个多路复用器,其第1个二选一数据选择器依据TD12选择输出第i个4bit无符号数的最低位或次高位作为第1路中继信号:TD12为低时,输出IN<0>作为第1路中继信号SEL<0>;TD12为高时,输出IN<2>作为第1路中继信号SEL<0>。第2个二选一数据选择器依据TD12选择输出第i个4bit无符号数的次低位或最高位作为第2路中继信号:TD12为低时,输出IN<1>作为第2路中继信号SEL<1>;TD12为高时,输出IN<3>作为第2路中继信号SEL<1>。四选一数据选择器依据第1路中继信号、第2路中继信号,对应将VSS(即图6、7中的TD0,其保持高电平的时长为0)、TD5、TD10或TD15作为第i个脉宽信号进行输出。
下面对TDC子模块的工作方式进行举例说明:
输入的128bit无符号数中,<127:16>为0、<15:0>为1。那么,32个4bit无符号数中,最高位都是0,次高位都是0,次低位都是0,前16个最低位都是0、后16个最低位都是1;即:前16个4bit无符号数都是“0000”,后16个4bit无符号数都是“0001”。
32个4bit无符号数对应通过32个多路复用器处理:
前16个多路复用器,在TD12为高时,输出IN<3>、IN<2>作为SEL<1>、SEL<0>,即输出“00”;在TD12为低时,输出IN<1>、IN<0>作为SEL<1>、SEL<0>,即输出“00”;选择TD0输出,即前16个4bit无符号数转换成一直为VSS的信号。
后16个多路复用器,在TD12为高时,输出IN<3>、IN<2>作为SEL<1>、SEL<0>,即输出“00”;在TD12为低时,输出IN<1>、IN<0>作为SEL<1>、SEL<0>,即输出“01”;TD12为高时,选择TD0输出;TD12为低时,选择TD5输出(即TD12为低时,TD5为高的部分输出),共输出1t的高电平;即后16个4bit数据转换成高电平持续时间为200Ps的脉冲信号。
其他情况与上面类似,不再赘述,可参看表1:
表1 4bit无符号数对应的转换表
总的来说,若输入的4bit无符号数为“abcd”,a=0或1,b=0或1,c=0或1,d=0或1,例如‘0001’、‘1010’等,则产生的脉宽信号持续高电平的时长为M*t,M=8a+4b+2c+d。
参看图8,1bit符号位输入子模块用于将32bit符号位和32个脉宽信号进行与运算、再通过三八译码器生成256个控制信号FP、256个控制信号FN,并对应输入到256行8T运算单元。其中,第i个符号位对应于FP<8(i-1) >~FP<i*8-1>、FN<8(i-1) >~FN<i*8-1>;i∈[1,32]。
4bit无符号数输入子模块用于将32个脉宽信号通过32个控制信号IN、32个控制信号INV对应输入到32行充放电单元。其中,第i个脉宽信号对应于IN<i-1>、INV<i-1>。参看上面,传输门TG受IN、INV的控制:在计算时,脉宽信号使IN为高电平、INV为低电平,即将TG导通、使RBL、RBLB连接;在不计算时由于IN为低电平、INV为高电平,即将TG关闭、使RBL、RBLB断开。
⑥输出模块包括8个读输出子模块、8个运算输出子模块。
其中,每8列8T运算单元共用1个读输出子模块,用于输出1bit权重数据;每8列充放电单元共用1个运算输出子模块,用于输出4bit运算结果。
换句话说就是,第j个读输出子模块用于输出第8(j-1)列到第j*8-1列中的1bit权重数据。第j个运算输出子模块用于依据第8(j-1)列到第j*8-1列的BL电压输出4bit运算结果;j∈[1,8]。
具体的,读输出子模块为灵敏放大器SA;第8(j-1)列到第j*8-1列的RBL、RBLB连接第j个灵敏放大器SA。运算输出子模块为逐次逼近型ADC;第8(j-1)列到第j*8-1列的BL连接第j个逐次逼近型ADC。
总的来说,上述计算宏电路的工作模式包括:存储操作模式、运算操作模式。
在存储操作模式下,输入模块不工作,读写选择模块工作,阵列运算模块工作,读输出子模块工作,运算输出子模块不工作,这样在该模式下可以进行正常的权重读写,适应与神经网络权重计算的需要。
在运算操作模式下,输入模块工作,读写选择模块不工作,8T运算电路模块工作,读输出子模块不工作,运算输出子模块工作,这样在该模式下可以实现32组5bit带符号数乘以1bit权重结果的同或累加计算。由于本计算宏电路计算是以互补充放电的方式进行的,没有传统电荷共享结构的额外的开关,避免了复杂的控制和长的共享时间,可以大大提高多比特权重数据计算系统的计算吞吐。
具体的,每次运算时开启第m列、开启32组8T运算组中第n行(共32行);m∈[1,64],n∈[1,8]。
其中,第n行的8T运算单元将其存储的1bit权重数据与输入的1bit符号位进行同或运算;第n行的充放电单元依据第n行的8T运算单元的运算结果,使第m列的BL按照输入的脉宽信号的时长进行充电或者放电。
对于第n行的8T运算单元来说,若其存储的1bit权重为“1”、输入的1bit符号位为“1”,即Q为“1”、QB为“0”;FP为“1”、FN为“0”;N5导通、N6关闭;Q与RBL连接,由于TG导通,RBLB经TG与RBLB连接;RBL、RBLB为高电平,H1、H2输出低电平,N8关断、P4导通,N9、P5保持导通,BL通过P4、P5连通VDD进行充电。其他情况对应的充放电原理与上述情况类似,不再赘述,结果参看表2:
表2 8T运算单元的操作真值表
参看上面,第n行的8T运算单元会进行1bit权重数据、1bit符号位的同或运算,来确定第m列BL是充电还是放电;而充电、放电时长由4bit无符号数对应的脉冲信号确定——若输入的4bit无符号数为“abcd”,那么第m列BL电荷变化量为M*t*I。
第m列的BL累加32行充放电单元的充放电结果,并通过运算输出子模块输出4bit运算结果。也就是说,第m列的BL对应累积了32轮电荷变化,这样通过对应的逐次逼近型ADC对第m列的BL电压进行读取,即可反映出同或累加计算结果。
实施例2
本实施例2基于实施例1公开的计算宏电路,设计了一种SRAM 存算一体芯片。
参看图9,该种SRAM 存算一体芯片包括存内模块、SRAM外部模块。
存内模块采用如实施例1公开的基于SRAM的电流镜互补存内计算宏电路的布局。SRAM外部模块包括时钟驱动模块、地址解码模块。时钟驱动模块用于控制阵列运算模块、输入模块、输出模块的信号时序。地址解码模块用于在存储操作模式下找到要读写1bit权重的8T运算单元、在运算操作模式下找到要开启的列、要开启的行。
这样通过时钟驱动模块和地址解码模块的配合使用,实现对芯片功能的全局控制。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于SRAM的电流镜互补存内计算宏电路,其特征在于,其用于进行32组乘计算的同或累加计算;每组乘计算为5bit带符号数乘以1bit权重;
所述基于SRAM的电流镜互补存内计算宏电路包括:
阵列运算模块,其包括呈256×64规格阵列排布的8T运算单元;其中,所述8T运算单元用于存储1bit权重数据、并在运算时将存储的1bit权重数据与输入的1bit符号位进行同或运算;同一行的8T运算单元共用同一个控制信号FP、同一个控制信号FN、同一根字线WL;同一列的8T运算单元共用同一根读位线RBL、同一根读位线RBLB、同一条写位线WBL、同一条写位线WBLB;同一列的8T运算单元中,每8行构成一组8T运算组,共32组8T运算组;
读写选择模块,其用于通过WL、WBL、WBLB对选定的8T运算单元进行读写1bit权重数据;
互补充放电模块,其包括呈32×64规格阵列排布的充放电单元;其中,同一列中每组8T运算组共用同一个充放电单元;同一列的充放电单元共用同一根计算位线BL;同一行的充放电单元共用同一个控制信号IN、同一个控制信号INV;
电流镜模块包括两层电流镜;其中,第一层电流镜将参考电流I复制并供给第二层电流镜;第二层电流镜将参考电流I进行复制64遍,用于给64列互充放电单元提供互补的栅极控制电压,以使充放电单元的充放电能力完全相同;
输入模块,其用于输入每次运算所需的128bit无符号数、32bit符号位;其中,所述输入模块包括:TDC子模块、1bit符号位输入子模块、4bit无符号数输入子模块;所述TDC子模块用于将128bit无符号数转换成32个脉宽信号;所述1bit符号位输入子模块用于将32bit符号位和32个脉宽信号进行与运算、再通过三八译码器生成256个控制信号FP、256个控制信号FN,并对应输入到256行8T运算单元;所述4bit无符号数输入子模块用于将32个脉宽信号通过32个控制信号IN、32个控制信号INV对应输入到32行充放电单元;
以及
输出模块,其包括8个读输出子模块、8个运算输出子模块;其中,每8列8T运算单元共用1个读输出子模块,用于输出1bit权重数据;每8列充放电单元共用1个运算输出子模块,用于输出4bit运算结果。
2.根据权利要求1所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述基于SRAM的电流镜互补存内计算宏电路的工作模式包括:存储操作模式、运算操作模式;
在存储操作模式下,所述输入模块不工作,读写选择模块工作,阵列运算模块工作,读输出子模块工作,运算输出子模块不工作;
在运算操作模式下,所述输入模块工作,读写选择模块不工作,8T运算电路模块工作,读输出子模块不工作,运算输出子模块工作。
3.根据权利要求1或2所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,每次运算时开启第m列、开启32组8T运算组中第n行;m∈[1,64],n∈[1,8];
其中,第n行的8T运算单元将其存储的1bit权重数据与输入的1bit符号位进行同或运算;第n行的充放电单元依据第n行的8T运算单元的运算结果,使第m列的BL按照输入的脉宽信号的时长进行充电或者放电;第m列的BL累加32行充放电单元的充放电结果,并通过运算输出子模块输出4bit运算结果。
4.根据权利要求1所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述TDC子模块包括:
时分复用器,用于生成时间先后不同的电平信号TD5、TD10、TD12、TD15;其中,TD5保持高电平的时长为5t;TD10保持高电平的时长为10t、TD12保持高电平的时长为12t、TD15保持高电平的时长为15t;t=200Ps;
以及
32个多路复用器,其用于将128bit无符号数依据TD5、TD10、TD12、TD15转换成32个脉宽信号;其中,128bit无符号数按照4bit位数高低分配成32个4bit无符号数;所述多路复用器包括1个四选一数据选择器、2个二选一数据选择器;第i个多路复用器用于将第i个4bit无符号数转换成第i个脉宽信号;对于第i个多路复用器,第1个二选一数据选择器依据TD12选择输出第i个4bit无符号数的最低位或次高位作为第1路中继信号,第2个二选一数据选择器依据TD12选择输出第i个4bit无符号数的次低位或最高位作为第2路中继信号,四选一数据选择器依据第1路中继信号、第2路中继信号,对应将VSS、TD5、TD10或TD15作为第i个脉宽信号进行输出。
5.根据权利要求1所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述8T运算单元包括:6个MMOS管N1~N6、2个PMOS管P1~P2;
N1的源极接VSS;
N2的源极接VSS;
N3的源极连接WBL,N3的漏极连接N1的漏极并设置有存储节点Q,N3的栅极连接WL;
N4的源极连接WBLB,N4的漏极连接N2的漏极并设置有存储节点QB,N4的栅极连接WL;
N5的源极连接RBL,N5的漏极连接N1的漏极,N5的栅极连接FP;
N6的源极连接RBLB,N6的漏极连接N2的漏极,N6的栅极连接FN;
P1的源极连接VDD,P1的漏极连接N1的漏极,P1的栅极连接N1的栅极;
P2的源极连接VDD,P2的漏极连接N2的漏极,P2的栅极连接N2的栅极。
6.根据权利要求2所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述充放电单元包括:1个传输门TG、2个反相器H1~H2、3个PMOS管P3~P5、3个NMOS管为N7~N9;
TG的输入端连接RBL,TG的输出端连接RBLB,TG的控制端分别连接IN、INV;
H1的输入端连接RBL;
H2的输入端连接RBLB;
P3的栅极连接IN,P3的漏极连接VDD,P3的源极连接RBL;
P4的栅极连接H2的输出端,P4的源极连接BL;
P5的栅极连接电流镜模块,P5的漏极连接VDD,P5的源极连接P4的漏极;
N7的栅极连接INV,N7的漏极连接VSS,N7的源极连接RBLB;
N8的栅极连接H1的输出端,N8的漏极连接BL;
N9的栅极连接电流镜模块,N9的源极连接VSS,N9的漏极连接N8的源极。
7.根据权利要求2所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,第一层电流镜包括:1个PMOS管P6、2个NMOS管N10~N11;
P6的源极连接VDD;
N10的漏极连接参考电流I,N10的源极连接VSS,N10的栅极连接参考电流I;
N11的漏极连接P6的漏极,N11的源极连接VSS,N11的栅极连接N10的栅极;
第二层电流镜包括64个相同结构的共栅电流镜,并与64列的充放电单元对应连接;其中,所述共栅电流镜包括:2个PMOS管P7~P8、2个NMOS管N12~N13;
P7的源极连接VDD,P7的栅极连接P6的栅极;
P8的源极连接VDD,P8的栅极连接P5的栅极;
N12的源极连接VSS,N12的栅极连接N9的栅极,N12的漏极连接P7的漏极;
N13的源极连接VSS,N13的栅极连接N12的栅极,N13的漏极连接P8的漏极。
8.根据权利要求1所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述读输出子模块为灵敏放大器SA;第8(j-1)列到第j*8-1列的RBL、RBLB连接第j个灵敏放大器SA。
9.根据权利要求1所述的基于SRAM的电流镜互补存内计算宏电路,其特征在于,所述运算输出子模块为逐次逼近型ADC;第8(j-1)列到第j*8-1列的BL连接第j个逐次逼近型ADC。
10.一种SRAM 存算一体芯片,其包括:
存内模块,其采用如权利要求1-9任一所述的基于SRAM的电流镜互补存内计算宏电路的布局;
以及
SRAM外部模块,其包括时钟驱动模块、地址解码模块;所述时钟驱动模块用于控制阵列运算模块、输入模块、输出模块的信号时序;所述地址解码模块用于在存储操作模式下找到要读写1bit权重的8T运算单元、在运算操作模式下找到要开启的列、要开启的行。
CN202311551254.8A 2023-11-21 2023-11-21 基于sram的电流镜互补存内计算宏电路、及芯片 Active CN117271436B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311551254.8A CN117271436B (zh) 2023-11-21 2023-11-21 基于sram的电流镜互补存内计算宏电路、及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311551254.8A CN117271436B (zh) 2023-11-21 2023-11-21 基于sram的电流镜互补存内计算宏电路、及芯片

Publications (2)

Publication Number Publication Date
CN117271436A CN117271436A (zh) 2023-12-22
CN117271436B true CN117271436B (zh) 2024-02-02

Family

ID=89218044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311551254.8A Active CN117271436B (zh) 2023-11-21 2023-11-21 基于sram的电流镜互补存内计算宏电路、及芯片

Country Status (1)

Country Link
CN (1) CN117271436B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117608519B (zh) * 2024-01-24 2024-04-05 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路
CN117636945B (zh) * 2024-01-26 2024-04-09 安徽大学 5bit带符号位的同或与同或累加运算电路、CIM电路

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273776A (ja) * 1991-12-19 2001-10-05 Toshiba Corp キャッシュメモリシステム、半導体記憶装置、不揮発性半導体記憶装置、半導体記憶システムおよびメモリベリファイ回路
CN112151091A (zh) * 2020-09-29 2020-12-29 中科院微电子研究所南京智能技术研究院 一种8t sram单元及存内计算装置
CN112581996A (zh) * 2020-12-21 2021-03-30 东南大学 基于磁性随机存储器的时域存内计算阵列结构
CN113467751A (zh) * 2021-07-16 2021-10-01 东南大学 一种基于磁性随机存储器的模拟域存内计算阵列结构
WO2022199684A1 (zh) * 2021-03-26 2022-09-29 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN115938430A (zh) * 2022-12-13 2023-04-07 安徽大学 一种基于分支电流的存内累乘计算电路
CN116129966A (zh) * 2022-12-30 2023-05-16 安徽大学 一种10t-sram单元、基于该种10t-sram单元的运算电路结构及芯片
CN116206650A (zh) * 2023-01-17 2023-06-02 安徽大学 一种8t-sram单元及基于该种8t-sram单元的运算电路、芯片

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI830054B (zh) * 2021-08-26 2024-01-21 國立陽明交通大學 記憶體內運算裝置
CN114298297A (zh) * 2021-11-04 2022-04-08 清华大学 存内计算装置、芯片及电子设备
US20230326499A1 (en) * 2022-04-12 2023-10-12 Stmicroelectronics S.R.L. Signed and binary weighted computation for an in-memory computation system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273776A (ja) * 1991-12-19 2001-10-05 Toshiba Corp キャッシュメモリシステム、半導体記憶装置、不揮発性半導体記憶装置、半導体記憶システムおよびメモリベリファイ回路
CN112151091A (zh) * 2020-09-29 2020-12-29 中科院微电子研究所南京智能技术研究院 一种8t sram单元及存内计算装置
CN112581996A (zh) * 2020-12-21 2021-03-30 东南大学 基于磁性随机存储器的时域存内计算阵列结构
WO2022199684A1 (zh) * 2021-03-26 2022-09-29 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN113467751A (zh) * 2021-07-16 2021-10-01 东南大学 一种基于磁性随机存储器的模拟域存内计算阵列结构
CN115938430A (zh) * 2022-12-13 2023-04-07 安徽大学 一种基于分支电流的存内累乘计算电路
CN116129966A (zh) * 2022-12-30 2023-05-16 安徽大学 一种10t-sram单元、基于该种10t-sram单元的运算电路结构及芯片
CN116206650A (zh) * 2023-01-17 2023-06-02 安徽大学 一种8t-sram单元及基于该种8t-sram单元的运算电路、芯片

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
In Situ Storing 8T SRAM-CIM Macro for Full-Array Boolean Logic and Copy Operations;Zhiting Lin;IEEE Journal of Solid-State Circuits;1472-1486 *
Zhiting Lin ; Chunyu Peng.Cascade Current Mirror to Improve Linearity and Consistency in SRAM In-Memory Computing.IEEE Journal of Solid-State Circuits.2021,2550-2562. *
基于RRAM的存内乘累加电路及逻辑运算电路设计;朱陈宇;中国优秀硕士论文电子期刊;全文 *
蔺智挺,吴秀龙,彭春雨,卢文娟.基于静态随机存取存储器的存内计算研究进展.电子与信息学报.2021,4041-4057. *
蔺智挺,钮建超,吴秀龙,彭春雨.以双字线双阈值4T SRAM为基础的存内计算设计.计算机科学与探索.2021,2116-2126. *

Also Published As

Publication number Publication date
CN117271436A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
CN117271436B (zh) 基于sram的电流镜互补存内计算宏电路、及芯片
Yan et al. A 1.041-mb/mm 2 27.38-tops/w signed-int8 dynamic-logic-based adc-less sram compute-in-memory macro in 28nm with reconfigurable bitwise operation for ai and embedded applications
US11727261B2 (en) Static random-access memory for deep neural networks
CN112951294B (zh) 计算设备以及计算方法
CN111816231B (zh) 一种双-6t sram结构的存内计算装置
CN111816234B (zh) 一种基于sram位线同或的电压累加存内计算电路
CN109979503B (zh) 一种在内存中实现汉明距离计算的静态随机存储器电路结构
CN114937470B (zh) 基于多比特sram单元的定点全精度存内计算电路
CN112558919A (zh) 一种存内计算位单元及存内计算装置
KR102470924B1 (ko) 인메모리 컴퓨팅 및 하이브리드 계산/저장 메모리 아키텍처를 위한 sram 기반 셀
CN112509620A (zh) 基于平衡预充与组译码的数据读取电路
CN117219140B (zh) 基于8t-sram和电流镜的存内计算电路
Ha et al. A 36.2 dB high SNR and PVT/leakage-robust eDRAM computing-in-memory macro with segmented BL and reference cell array
CN114974337B (zh) 一种基于自旋磁随机存储器的时间域存内计算电路
CN116364137A (zh) 一种同侧双位线的8t单元、逻辑运算电路及cim芯片
CN117079688A (zh) 一种电流域8tsram单元及动态自适应量化的存算电路
US20230386565A1 (en) In-memory computation circuit using static random access memory (sram) array segmentation and local compute tile read based on weighted current
JP3731046B2 (ja) 半導体連想メモリ
Zhang et al. In-memory multibit multiplication based on bitline shifting
CN114895869B (zh) 一种带符号的多比特存内计算装置
Wang et al. An 8T SRAM based digital compute-in-memory macro for multiply-and-accumulate accelerating
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
Zang et al. 282-to-607 TOPS/W, 7T-SRAM based CiM with reconfigurable column SAR ADC for neural network processing
CN118298872B (zh) 输入权重比特位可配置的存内计算电路及其芯片
CN114647398B (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