CN112071343B - 一种在存储器中结合电容实现乘法的sram电路结构 - Google Patents

一种在存储器中结合电容实现乘法的sram电路结构 Download PDF

Info

Publication number
CN112071343B
CN112071343B CN202010831388.5A CN202010831388A CN112071343B CN 112071343 B CN112071343 B CN 112071343B CN 202010831388 A CN202010831388 A CN 202010831388A CN 112071343 B CN112071343 B CN 112071343B
Authority
CN
China
Prior art keywords
sram
capacitor
multiplication
capacitors
vdd
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
CN202010831388.5A
Other languages
English (en)
Other versions
CN112071343A (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 CN202010831388.5A priority Critical patent/CN112071343B/zh
Publication of CN112071343A publication Critical patent/CN112071343A/zh
Application granted granted Critical
Publication of CN112071343B publication Critical patent/CN112071343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种在存储器中结合电容实现乘法的SRAM电路结构,通过将被乘数与乘数分别存储在6T SRAM单元与WL内,被乘数的十进制数值由单元的6T SRAM WL开启时间决定,乘数数值的正负由左字线(WL Left,缩写为WLL)开启还是右字线(WL Right,缩写为WLR)开启决定。被乘数的正负由冗余列输出的参考电压决定,乘数的十进制数值分解为二进制按照高位到低位的顺序从左至右存储在同一行的相邻单元中,并通过与复用电容相结合实现高低位权值设置。上述结构能够提升运算速度和效率,并减少数据搬移过程产生的功耗。

Description

一种在存储器中结合电容实现乘法的SRAM电路结构
技术领域
本发明涉及集成电路设计技术领域,尤其涉及一种在存储器中结合电容实现乘法的SRAM电路结构。
背景技术
当前随着卷积神经网络(Convolutional Neural Networks,缩写为CNN)、支持向量机(Support Vector Machine,缩写为SVM)等人工智能(Artificial Intelligence,缩写为AI)技术的广泛运用,对计算效率及能耗有着很高的要求。当前计算机采用的冯诺依曼架构采取存储与计算相分离的模式。当处理器进行运算时,需要将数据从存储器中搬移数据。数据的搬移造成了大幅的功耗及延时的增长。作为克服冯诺依曼架构这一弊端的有效策略,存内计算(computing in memory,缩写为CIM)受到广泛关注。存内计算不需要将数据读取至处理器,将运算集成至存储器内完成。这极大程度的减少了数据存取过程中的能耗以及延时,同时也提高了计算效率和能效。
现有的技术主要注重1/0/-1的3元点乘,但是暂未发现可以实现利用电容进行权值设置及阵列内横向高低位排列的正负整数乘法功能。
发明内容
本发明的目的是提供一种在存储器中结合电容实现乘法的SRAM电路结构。
本发明的目的是通过以下技术方案实现的:
一种在存储器中结合电容实现乘法的SRAM电路结构,包括:6T SRAM阵列、6T SRAM冗余列、列选择器、时序电路、左右字线选择器、以及减法器;其中:
所述6T SRAM冗余列包含由6T SRAM阵列镜像而来的若干6T SRAM单元,行数与6TSRAM阵列相同,列数为K,K小于6T SRAM阵列的总列数,6T SRAM冗余列还包含与各6T SRAM单元连接的电容除法单元;6T SRAM冗余列与6T SRAM阵列中每一个6T SRAM单元左、右两端的控制开关各自连接左、右字线;
列选择器用于从6T SRAM阵列中选出参与乘法运算的列6T SRAM单元;时序电路用于产生乘法运算时的工作信号时序;左右字线选择器用于从6T SRAM阵列及6T SRAM冗余列中选出参与乘法运算的行6T SRAM单元,以及设置所选择行6T SRAM单元的左右字线开启与关断;
将被乘数存储在6T SRAM阵列相应6T SRAM单元中,6T SRAM冗余列及6T SRAM阵列均根据乘数的正负相应开启左字线或者右字线,并结合乘数的数值大小控制开启时间,6TSRAM冗余列及6T SRAM阵列各自通过电容除法单元输出相应电压,再通过减法器将6T SRAM阵列与6T SRAM冗余列的输出电压相减,得到乘法结果。
由上述本发明提供的技术方案可以看出,该结构利用阵列、冗余列、除法电容共同完成了乘法功能。使用冗余列和阵列的输出电位差体现计算值。该结构能够提升运算速度和效率,并减少数据搬移过程产生的功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种在存储器中结合电容实现乘法的SRAM电路结构的示意图;
图2为本发明实施例提供的6T SRAM单元的结构示意图;
图3为本发明实施例提供的6T SRAM冗余列以及除法单元结构示意图;
图4为本发明实施例提供的6T SRAM阵列以及除法单元结构示意图;
图5为本发明实施例提供的乘数与被乘数的体现形式示意图;
图6为本发明实施例提供的6T SRAM阵列、6T SRAM冗余列及除法单元的时序图
图7为本发明实施例提供的工作波形曲线图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供一种在存储器中结合电容实现乘法的SRAM电路结构,如图1所示,其主要包括:6T SRAM阵列(6T SRAM ARRAY)、6T SRAM冗余列(ADD ARRAY)、行译码器(ROW DECODER)、列选择器(COLUMN DECODER)、时序电路、左右字线选择器(WLL/WLRSELECTOR)、以及减法器(SUNTRACTION);其中:
所述6T SRAM冗余列包含由6T SRAM阵列镜像而来的若干6T SRAM单元,行数与6TSRAM阵列相同,列数为K,K小于6T SRAM阵列的总列数,6T SRAM冗余列还包含与各6T SRAM单元连接的电容除法单元;6T SRAM阵列中每一个6T SRAM单元左、右两端的控制开关各自连接左字线WLL、右字线WLR;6T SRAM冗余列中每一个6T SRAM单元左、右两端的控制开关各自连接VSS、右字线WLR_NEG或者右字线WLR_ADD;
行译码器用于普通读写模式的行选择;列选择器,用于从6T SRAM阵列中选出参与乘法运算的列6T SRAM单元;时序电路用于产生普通读写模式与乘法运算时的工作信号时序;左右字线选择器用于从6T SRAM阵列及6T SRAM冗余列中选出参与乘法运算的行6TSRAM单元,以及设置所选择的行6T SRAM单元的左右字线开启与关断;
具体来说,左右字线选择器既作用于6T SRAM阵列也作用于6T SRAM冗余列。6TSRAM阵列方面,一方面,左右字线选择器选择了6T SRAM阵列的哪一行参与运算;另一方面,通过控制字线的左右开启体现乘数的正负,原理在后文有详细的介绍。6T SRAM冗余列方面,一方面字线选择器使6T SRAM冗余列里与6T SRAM阵列相对应的行启用;另一方面,配合乘数为正负数时,最左边的6T SRAM单元是否开启,具体原理也在后文进行了详细介绍。
将被乘数存储在6T SRAM阵列的相应6T SRAM单元中,6T SRAM冗余列及6T SRAM阵列均根据乘数的正负相应开启左字线或者右字线,并结合乘数的数值大小控制开启时间,6T SRAM冗余列及6T SRAM阵列各自通过电容除法单元输出相应电压,再通过减法器将6TSRAM阵列与6T SRAM冗余列的输出电压相减,得到乘法结果。
如图2所示,给出了6T SRAM阵列中6T SRAM单元的主要结构,其包括:四个NMOS管与两个PMOS管;
第一PMOS管与第一NMOS管、以及第二PMOS管与第二NMOS管形成两个交叉耦合的反相器;第一PMOS管的源端与第一PMOS管的源端连接VDD;第二NMOS管的源端与第二NMOS管的源端连接GND;第一PMOS管的漏端和第一NMOS管的漏端连接,连接的节点记为节点Q,第二PMOS管P2的漏端和第二NMOS管的漏端连接,连接的节点记为节点QB;第三NMOS管的漏端连接节点Q,栅端连接左字线WLL,源端连接左侧位线BL;第四NMOS管的漏端连接节点QB,栅端连接右字线WLR,源端连接右侧位线BLB。
6T SRAM冗余列内每一6T SRAM单元也是采用图2所示结构,为了便于后续的说明,将6T SRAM冗余列内每一6T SRAM单元连接的左侧位线、右侧位线各自记为ABL、ABLB,第一个6T SRAM单元的右字线WLR_NEG,之后的6T SRAM单元的右字线WLR_ADD,此外这K个6TSRAM单元的第三NMOS管的栅端(也即前文提到的左侧控制开关)连接VSS(接地)。
本发明实施例中,由6T SRAM阵列一行内K个相邻6T SRAM单元构成的数据模块,与6T SRAM冗余列内一行中的K个6T SRAM单元配合完成乘法运算。
如图3~图4所示,当K=4时,将6T SRAM阵列一行内4个相邻6T SRAM单元记为CELL1~CELL 4,同样的,6T SRAM冗余列内一行中的4个6T SRAM单元也记为CELL1~CELL 4。将6T SRAM冗余列的预充控制信号开关记为PRE 1、PRE 2与PRE 3,左右侧位线ABL与ABLB的汇集开关记为GATE 1,七个乘法运算开关记为SW 1~SW 7;6T SRAM阵列中预充控制信号开关记为PRE 4、PRE 5与PRE 6,左右侧BL与BLB的汇集开关记为GATE 2,六个乘法运算开关记为SW 8~13;6T SRAM冗余列的电容除法单元包括12个电容,记为电容C1~C12,其中的电容C5、C6、C7与C8,电容C9、C10、C11与C12各自并联构成一个除法器,依次记为第一除法器与第二除法器(也即电容除法单元);6T SRAM阵列中还设有4个电容,记为电容C13~C16,SRAM电路结构中还单独设置了由电容C17、C18、C19与C20并联构成的第三除法器,第三除法器与6TSRAM阵列配合完成6T SRAM阵列内的乘法运算。如图3所示,为6T SRAM冗余列以及除法单元结构示意图。
四个电容C1~C4的上端均通过汇集开关GATE 1独自与6T SRAM冗余列中一个6TSRAM单元的左右侧位线ABL与ABLB连接,且四个电容C1~C4的上端,还通过预充控制信号开关PRE 2连接VDD,以及通过乘法运算开关SW 7连接参考电压信号输出端Ref;四个电容C1~C4的下端均与VDD相连;
6T SRAM冗余列中每一6T SRAM单元的左右侧位线ABL与ABLB均连接预充控制信号开关PRE 1;
第一除法器中的四个电容C5~C8的上端通过乘法运算开关SW 1、SW 5与SW 6与电容C1的上端相连,第一除法器中的四个电容的下端与VDD相连;电容C8的上端还通过预充控制信号开关PRE 3连接VDD;
第二除法器中的四个电容C9~C12的上端通过乘法运算开关SW 2与电容C2的上端相连,通过乘法运算开关SW 3与电容C3的上端相连,通过乘法运算开关SW 4、SW 5及SW 6与电容C4的上端相连;第二除法器中的四个电容C9~C12的上端还通过预充控制信号开关PRE3与VDD相连,下端均连接VDD。
如图4所示,为6T SRAM阵列以及除法单元结构示意图。
四个电容C13~C16的上端均通过汇集开关GATE 2独自与6T SRAM阵列中一个6TSRAM单元的左右侧位线BL与BLB连接,且四个电容C13~C16的上端,还通过预充控制信号开关PRE 5连接VDD,以及通过乘法运算开关SW 13连接电压信号输出端OUT;四个电容C13~C16的下端均与VDD相连;
6T SRAM阵列中每一6T SRAM单元的左右侧位线BL与BLB均连接预充控制信号开关PRE 4;
第三除法器中的四个电容C17~C20的上端通过乘法运算开关SW 8与电容C14的上端相连,通过乘法运算开关SW 9与电容C15的上端相连,通过乘法运算开关SW 10、SW 11及SW 12与电容C16的上端相连;第三除法器中的四个电容C17~C20的上端还通过预充控制信号开关PRE 6与VDD相连,下端均连接VDD。
以上是内部结构做的相关介绍,下面介绍基于上述结构实现乘法运算的过程。
计算开始前,被乘数存储6T SRAM阵列的数据模块中,乘数量化为字线的开启时间,设开启的单位时间为△t,字线的最长开启时间为△t+2△t+4△t,也即,后文中n的范围是0至7的整数,正负体现在左右字线的开启与关闭设置上;被乘数的编码(被乘数的编码与乘数一样从-7至7)最高位是符号位,其余位是数据位,正数时正常编码,负数时取补码,写入数据模块时最高位取反,即正数时最高位写入1,负数时最高位写入0,从高位至低位依次写入四个6T SRAM单元;由第三除法器与四个电容C13~电容C16结合形成高位至低位的权值分配。所有电容C1~C20上端的、以及左右侧位线ABL、ABLB、BL及BLB都预充至VDD。
如图3所示,在6T SRAM冗余列中,放电阶段,预充控制信号开关PRE 1与PRE 2断开,GATE 1开启;若乘数为正数WLR_ADD开启,若乘数为负数,WLR_NEG与WLR_ADD都开启,开启时间为n△t,n为乘数数值,开启时间上WLR_NEG与WLR_ADD相同;也即,WLR_NEG的开启与关闭分别是为乘数为负数和正数时用的,WLR_NEG是类似于在乘数为负数时给予一个补偿电压差,6T SRAM冗余列中四个6T SRAM单元都是Q点为VDD,QB为0。在6T SRAM冗余列中,每列开启△t时间会引发右侧位线ABLB放电电压△V,对应的电压VDD-△V存储在相应的电容上,再经过第一与第二除法器进行处理,其中除法器采用复用策略,即:乘数为负数时,第一轮除法阶段,预充控制信号开关PRE 3与汇集开关GATE 1断开,乘法运算开关SW1、SW2、SW4以及SW5开启,对电容C1与电容C4上存储的电压差做除4处理,对电容C2上存储的电压差做除2处理,之后开启预充控制信号开关PRE 3,其余开关关闭,对第一与第二除法器中的C5~电容C12上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 3断开,乘法运算开关SW1、SW3、SW4以及SW6开启,对电容C1与电容C4上存储的电压差做除2处理,对电容C3上存储的电压差做除4处理,最终电容C1存储电压VDD-1/8△V,电容C2存储电压VDD-1/2△V,电容C3存储电压VDD-1/4△V,电容C4存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C1~电容C4上端并联,输出参考电压VDD-8/32△V;乘数为正数时,该列未产生放电,因为该列这一行的单元字线未开,第一轮除法阶段,预充控制信号开关PRE 3与汇集开关GATE 1断开,乘法运算开关SW1、SW2、SW4以及SW5开启,对电容C1与电容C4上存储的电压差做除4处理,对电容C2上存储的电压差做除2处理,之后开启预充控制信号开关PRE 3,其余开关关闭,对第一与第二除法器中的C5~电容C12上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 3断开,乘法运算开关SW1、SW3、SW4以及SW6开启,对电容C1与电容C4上存储的电压差做除2处理,对电容C3上存储的电压差做除4处理,最终电容C1存储电压VDD,电容C2存储电压VDD-1/2△V,电容C3存储电压VDD-1/4△V,电容C4存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C1~C4上端并联,输出参考电压VDD-7/32△V;其中,文中的△V都位于分子部分。
如图4所示,在6T SRAM阵列中,6T SRAM阵列内,正负数的开关操作都一致,只有单元编码(即被乘数的编码)和左右字线的左开和右开设置是按照正负的,6T SRAM阵列里4列的组合,一行内,所有4组字线的左开和右开是一致的,都是左开或者都是右开,开启时间也一致。放电阶段,预充控制信号开关PRE 4与PRE 5断开,汇集开关GATE 2开启;若乘数为正数,则左字线WLL开启,若乘数为负数,WLR开启,开启时间为n△t;在6T SRAM阵列中,每列开启△t时间会引发左侧位线BL或右侧位线BLB放电电压△V,对应的电压VDD-△V存储在相应的电容上,再经过第三除法器进行处理,其中除法器也采用复用策略,即:设每列上都存在电压△V,第一轮除法阶段,预充控制信号开关PRE 6与汇集开关GATE 2断开,乘法运算开关SW8、SW10以及SW11开启,对电容C16上存储的电压差做除4处理,对电容C14上存储的电压差做除2处理,之后预充控制信号开关PRE 6再次打开,其余开关关闭,对第三除法器中的电容C17~C20上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 6断开,乘法运算开关SW9、SW10以及SW12开启,对电容C16上存储的电压差做除2处理,对电容C15上存储的电压差做除4处理,最终电容C13存储电压VDD-△V,电容C14存储电压VDD-1/2△V,电容C15存储电压VDD-1/4△V,电容C16存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C13~C16上端并联,输出电压VDD-15/32△V;
最后将6T SRAM阵列的输出电压与6T SRAM冗余列的输出电压通过减法器相减即可得出最终乘法的结果。
本发明实施例提供的上述电路结构,通过将被乘数与乘数分别存储在6T SRAM单元与WL内,被乘数的十进制数值由单元的6T SRAM WL开启时间决定,乘数数值的正负由左字线(WL Left,缩写为WLL)开启还是右字线(WL Right,缩写为WLR)开启决定。被乘数的正负由冗余列输出的参考电压决定,乘数的十进制数值分解为二进制按照高位到低位的顺序从左至右存储在同一行的相邻单元中,并通过与复用电容相结合实现高低位权值设置。上述结构能够提升运算速度和效率,并减少数据搬移过程产生的功耗。
为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,选取两组乘法进行过程的详细说明。
以6×-5和-5×2两个乘法运算为例。开始运算前,如图5和图6所示,A表示被乘数,X表示乘数;6T SRAM冗余列中,节点Q存储1,QB存储0,这是乘法运算需要;6T SRAM阵列中四个6T SRAM单元的节点Q分别存入1110及0011代表6和-5。PRE 1~3打开,其余开关关闭,电容C1~C20上端、ABL、ABLB、BL、BLB都预充至VDD,预充结束后开始计算。
6T SRAM冗余列方面,放电阶段,PRE 1~PRE 2断开,GATE 1开启,乘法运算1(即,6×-5)中的乘数为-5,WLR_ADD与WLR_NEG开启5△t,乘法运算2(即,-5×2)中的乘数为2,WLR_ADD开启2△t,WLR_NEG不开启。放电结束后乘法运算1中电容C1~C4上端存储电位VDD-5△V,乘法运算2中电容C1上端存储电位VDD,电容C2~C4上端存储电位VDD-2△V。第一轮除法阶段,PRE 3、GATE 1断开,SW1、SW2、SW4、SW5开启,电容C1与电容C5~C6分享电荷,电容C2与电容C12分享电荷,电容C4与电容C9~C11分享电荷,如图7所示,这样操作乘法运算1中电容C1存储的电位为VDD-5/4△V,电容C2存储的电位为VDD-5/2△V,电容C3不变,电容C4存储的电位为VDD-5/4△V。接着PRE 3打开,其余开关关闭,对除法电容C5~电容C12上端的电位复位。第二轮除法阶段,PRE 3断开,SW1、SW3、SW4、SW6开启,电容C1与电容C8分享电荷,电容C3与电容C9~C11分享电荷,电容C4与电容C12享电荷,此时乘法运算1中电容C1存储的电位为VDD-5/8△V,电容C2存储的电位为VDD-5/2△V,电容C3不变VDD-5/4△V,电容C4存储的电位为VDD-5/8△V。乘法运算2冗余列端操作类似,电容C1存储的电位为VDD,电容C2存储的电位为VDD-2/2△V,电容C3不变VDD-2/4△V,电容C4存储的电位为VDD-2/8△V。冗余列最后阶段除SW7开启,其余开关关闭,乘法运算1输出参考电压Ref为VDD-40/32△V,乘法运算2输出参考电压Ref为VDD-14/32△V。
6T SRAM阵列方面,放电阶段,PRE 4~PRE 5断开,GATE 2开启,乘法运算1中的乘数为-5,WLR开启5△t,乘法运算2中的乘数为2,WLL开启2△t。放电结束后乘法运算1中电容C13~C15上端存储电位VDD-5△V,电容C16上端存储电位VDD。乘法运算2中电容C13~C14上端存储电位VDD-2△V,电容C15~C16上端存储电位VDD。第一轮除法阶段,PRE 6、GATE 2断开,SW8、SW10、SW11开启,电容C14与电容C20分享电荷,电容C16与电容C17~C19分享电荷,如图7所示,这样操作乘法运算1中电容C13存储的电位为VDD,电容C14存储的电位为VDD-5/2△V,电容C15不变,电容C16存储的电位为VDD。接着PRE 6再次打开,其余开关关闭,对除法电容电容C17~C20上端的电位复位。第二轮除法阶段,PRE 6断开,SW9、SW10、SW12开启,电容C15与电容C17~C19分享电荷,电容C16与电容C20分享电荷,此时乘法运算1中电容C13存储的电位为VDD-5△V,电容C14存储的电位为VDD-5/2△V,电容C15存储的电位为VDD-5/4△V,电容C16存储的电位为VDD。乘法运算2阵列端操作类似,电容C13存储的电位为VDD-2△V,电容C14存储的电位为VDD-2/2△V,电容C15、电容C16存储的电位为VDD-2△V。阵列最后阶段除SW13开启,其余开关关闭,乘法运算1输出电压OUT为VDD-70/32△V,乘法运算2输出电压OUT为VDD-24/32△V。
将冗余列的输出REF与阵列的输出OUT按照对应关系输入减法器,乘法运算1的结果为-(VDD-40/32△V-(VDD-70/32△V))=-30/32△V,乘法运算2的结果为-(VDD-14/32△V-(VDD-24/32△V))=-10/32△V,结果乘以32分别得到-30和-10,与运算结果一致。对于此处的32做相关说明:以6T SRAM冗余列为例,假设每列的都有放电,4列中最后最小的放电为△V/8,由于4列对应的4个存储电容最后连起来要电荷分享,4个存储电容存储的放电值需要先相加再除4,如果分母与分子不化简的话,相加后,分母统一为8,再除4,就是32,所以运算结果要乘以32。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (3)

1.一种在存储器中结合电容实现乘法的SRAM电路结构,其特征在于,包括:6T SRAM阵列、6T SRAM冗余列、列选择器、时序电路、左右字线选择器、以及减法器;其中:
所述6T SRAM冗余列包含由6T SRAM阵列镜像而来的若干6T SRAM单元,行数与6T SRAM阵列相同,列数为K,K小于6T SRAM阵列的总列数,6T SRAM冗余列还包含与各6T SRAM单元连接的电容除法单元;6T SRAM冗余列与6T SRAM阵列中每一个6T SRAM单元左、右两端的控制开关各自连接左、右字线;
列选择器用于从6T SRAM阵列中选出参与乘法运算的列6T SRAM单元;时序电路用于产生乘法运算时的工作信号时序;左右字线选择器用于从6T SRAM阵列及6T SRAM冗余列中选出参与乘法运算的行6T SRAM单元,以及设置所选择行6T SRAM单元的左右字线开启与关断;
将被乘数存储在6T SRAM阵列相应6T SRAM单元中,6T SRAM冗余列及6T SRAM阵列均根据乘数的正负相应开启左字线或者右字线,并结合乘数的数值大小控制开启时间,6T SRAM冗余列及6T SRAM阵列各自通过电容除法单元输出相应电压,再通过减法器将6T SRAM阵列与6T SRAM冗余列的输出电压相减,得到乘法结果;
每一个6T SRAM单元包括:四个NMOS管与两个PMOS管;
第一PMOS管与第一NMOS管、以及第二PMOS管与第二NMOS管形成两个交叉耦合的反相器;第一PMOS管的源端与第一PMOS管的源端连接VDD;第二NMOS管的源端与第二NMOS管的源端连接GND;第一PMOS管的漏端和第一NMOS管的漏端连接,连接的节点记为节点Q,第二PMOS管P2的漏端和第二NMOS管的漏端连接,连接的节点记为节点QB;
第三NMOS管的漏端连接节点Q,栅端连接左字线WLL,源端连接左侧位线BL;第四NMOS管的漏端连接节点QB,栅端连接右字线WLR,源端连接右侧位线BLB;
其中,乘法运算,由6T SRAM阵列一行内K个相邻6T SRAM单元构成的数据模块,与6TSRAM冗余列内一行中的K个6T SRAM单元配合完成;
6T SRAM冗余列内每一6T SRAM单元连接的左侧位线、右侧位线各自记为ABL、ABLB,第一个6T SRAM单元的右字线WLR_NEG,之后的6T SRAM单元的右字线WLR_ADD,这K个6T SRAM单元的第三NMOS管的栅端连接VSS;
当K=4时:将6T SRAM冗余列的预充控制信号开关记为PRE 1、PRE 2与PRE 3,左右侧位线ABL与ABLB的汇集开关记为GATE 1,七个乘法运算开关记为SW 1~SW 7;6T SRAM阵列中预充控制信号开关记为PRE 4、PRE 5与PRE 6,左右侧BL与BLB的汇集开关记为GATE 2,六个乘法运算开关记为SW 8~13;6T SRAM冗余列中的电容除法单元包括12个电容,记为电容C1~C12,其中的电容C5、C6、C7与C8,电容C9、C10、C11与C12各自并联构成一个除法器,依次记为第一除法器与第二除法器;6T SRAM阵列中还设有4个电容,记为电容C13~C16,SRAM电路结构中还单独设置了由电容C17、C18、C19与C20并联构成的第三除法器,第三除法器与6TSRAM阵列配合完成6T SRAM阵列内的乘法运算;其中:
四个电容C1~C4的上端均通过汇集开关GATE 1独自与6T SRAM冗余列中一个6T SRAM单元的左右侧位线ABL与ABLB连接,且四个电容C1~C4的上端,还通过预充控制信号开关PRE 2连接VDD,以及通过乘法运算开关SW 7连接参考电压信号输出端Ref;四个电容C1~C4的下端均与VDD相连;
6T SRAM冗余列中每一6T SRAM单元的左右侧位线ABL与ABLB均连接预充控制信号开关PRE 1;
第一除法器中的四个电容C5~C8的上端通过乘法运算开关SW 1、SW 5与SW 6与电容C1的上端相连,第一除法器中的四个电容的下端与VDD相连;电容C8的上端还通过预充控制信号开关PRE 3连接VDD;
第二除法器中的四个电容C9~C12的上端通过乘法运算开关SW 2与电容C2的上端相连,通过乘法运算开关SW 3与电容C3的上端相连,通过乘法运算开关SW 4、SW 5及SW 6与电容C4的上端相连;第二除法器中的四个电容C9~C12的上端还通过预充控制信号开关PRE 3与VDD相连,下端均连接VDD;
四个电容C13~C16的上端均通过汇集开关GATE 2独自与6T SRAM阵列中一个6T SRAM单元的左右侧位线BL与BLB连接,且四个电容C13~C16的上端,还通过预充控制信号开关PRE 5连接VDD,以及通过乘法运算开关SW 13连接电压信号输出端OUT;四个电容C13~C16的下端均与VDD相连;
6T SRAM阵列中每一6T SRAM单元的左右侧位线BL与BLB均连接预充控制信号开关PRE4;
第三除法器中的四个电容C17~C20的上端通过乘法运算开关SW 8与电容C14的上端相连,通过乘法运算开关SW 9与电容C15的上端相连,通过乘法运算开关SW 10、SW 11及SW 12与电容C16的上端相连;第三除法器中的四个电容C17~C20的上端还通过预充控制信号开关PRE 6与VDD相连,下端均连接VDD。
2.根据权利要求1所述的一种在存储器中结合电容实现乘法的SRAM电路结构,其特征在于,乘法运算的过程如下:
计算开始前,被乘数存储6T SRAM阵列的数据模块中,乘数量化为字线的开启时间,设开启的单位时间为△t,字线的最长开启时间为△t+2△t+4△t;被乘数的编码最高位是符号位,其余位是数据位,正数时正常编码,负数时取补码,写入数据模块时最高位取反,即正数时最高位写入1,负数时最高位写入0,从高位至低位依次写入四个6T SRAM单元;由第三除法器与四个电容C13~电容C16结合形成高位至低位的权值分配; 所有电容C1~C20上端的、以及左右侧位线ABL、ABLB、BL及BLB都预充至VDD;
在6T SRAM冗余列中,放电阶段,预充控制信号开关PRE 1与PRE 2断开,GATE 1开启;若乘数为正数WLR_ADD开启,若乘数为负数,WLR_NEG与WLR_ADD都开启,开启时间为n△t,n为乘数数值,开启时间上WLR_NEG与WLR_ADD相同;在6T SRAM冗余列中,每列开启△t时间会引发右侧位线ABLB放电电压△V,对应的电压VDD-△V存储在相应的电容上,再经过第一与第二除法器进行处理,即:乘数为负数时,未产生放电,第一轮除法阶段,预充控制信号开关PRE 3与汇集开关GATE 1断开,乘法运算开关SW1、SW2、SW4以及SW5开启,对电容C1与电容C4上存储的电压差做除4处理,对电容C2上存储的电压差做除2处理,之后开启预充控制信号开关PRE 3,其余开关关闭,对第一与第二除法器中的C5~电容C12上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 3断开,乘法运算开关SW1、SW3、SW4以及SW6开启,对电容C1与电容C4上存储的电压差做除2处理,对电容C3上存储的电压差做除4处理,最终电容C1存储电压VDD-1/8△V,电容C2存储电压VDD-1/2△V,电容C3存储电压VDD-1/4△V,电容C4存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C1~电容C4上端并联,输出参考电压VDD-8/32△V;乘数为正数时,第一轮除法阶段,预充控制信号开关PRE 3与汇集开关GATE 1断开,乘法运算开关SW1、SW2、SW4以及SW5开启,对电容C1与电容C4上存储的电压差做除4处理,对电容C2上存储的电压差做除2处理,之后开启预充控制信号开关PRE 3,其余开关关闭,对第一与第二除法器中的C5~电容C12上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 3断开,乘法运算开关SW1、SW3、SW4以及SW6开启,对电容C1与电容C4上存储的电压差做除2处理,对电容C3上存储的电压差做除4处理,最终电容C1存储电压VDD,电容C2存储电压VDD-1/2△V,电容C3存储电压VDD-1/4△V,电容C4存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C1~C4上端并联,输出参考电压VDD-7/32△V;其中,△V都位于分子部分;
在6T SRAM阵列中,放电阶段,预充控制信号开关PRE 4与PRE 5断开,汇集开关GATE 2开启;若乘数为正数,则左字线WLL开启,若乘数为负数,WLR开启,开启时间为n△t;在6TSRAM阵列中,每列开启△t时间会引发左侧位线BL或右侧位线BLB放电电压△V,对应的电压VDD-△V存储在相应的电容上,再经过第三除法器进行处理,即:设每列上都存在电压△V,第一轮除法阶段,预充控制信号开关PRE 6与汇集开关GATE 2断开,乘法运算开关SW8、SW10以及SW11开启,对电容C16上存储的电压差做除4处理,对电容C14上存储的电压差做除2处理,之后预充控制信号开关PRE 6再次打开,其余开关关闭,对第三除法器中的电容C17~C20上端的电位复位;第二轮除法阶段,预充控制信号开关PRE 6断开,乘法运算开关SW9、SW10以及SW12开启,对电容C16上存储的电压差做除2处理,对电容C15上存储的电压差做除4处理,最终电容C13存储电压VDD-△V,电容C14存储电压VDD-1/2△V,电容C15存储电压VDD-1/4△V,电容C16存储电压VDD-1/8△V;最后阶段,乘法运算开关SW7开启,其余开关关闭,使电容C13~C16上端并联,输出电压VDD-15/32△V;
最后将6T SRAM阵列的输出电压与6T SRAM冗余列的输出电压通过减法器相减即可得出最终乘法的结果。
3.根据权利要求1所述的一种在存储器中结合电容实现乘法的SRAM电路结构,其特征在于,还包括:
行译码器,用于普通读写模式的行选择;
以及,时序电路,还用于产生普通读写模式时的工作信号时序。
CN202010831388.5A 2020-08-18 2020-08-18 一种在存储器中结合电容实现乘法的sram电路结构 Active CN112071343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010831388.5A CN112071343B (zh) 2020-08-18 2020-08-18 一种在存储器中结合电容实现乘法的sram电路结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010831388.5A CN112071343B (zh) 2020-08-18 2020-08-18 一种在存储器中结合电容实现乘法的sram电路结构

Publications (2)

Publication Number Publication Date
CN112071343A CN112071343A (zh) 2020-12-11
CN112071343B true CN112071343B (zh) 2022-09-13

Family

ID=73662064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010831388.5A Active CN112071343B (zh) 2020-08-18 2020-08-18 一种在存储器中结合电容实现乘法的sram电路结构

Country Status (1)

Country Link
CN (1) CN112071343B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113314174B (zh) * 2021-05-06 2023-02-03 安徽大学 一种用于sram阵列的列移位多位乘法二进制分解运算的电路结构
CN113724764B (zh) * 2021-09-01 2023-11-10 北京航空航天大学 基于非易失存储器的乘法装置
CN114300012B (zh) * 2022-03-10 2022-09-16 中科南京智能技术研究院 一种解耦合sram存内计算装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110085270A (zh) * 2019-04-25 2019-08-02 珠海普林芯驰科技有限公司 存储运算电路模块及处理器
CN110209375A (zh) * 2019-05-30 2019-09-06 浙江大学 一种基于radix-4编码和差分权重存储的乘累加电路
CN110750232A (zh) * 2019-10-17 2020-02-04 电子科技大学 一种基于sram的并行乘加装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014805A (ja) * 2010-07-01 2012-01-19 Toshiba Corp 半導体記憶装置
US9697877B2 (en) * 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory
US10642922B2 (en) * 2018-09-28 2020-05-05 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
US11061646B2 (en) * 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
KR20200082617A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110085270A (zh) * 2019-04-25 2019-08-02 珠海普林芯驰科技有限公司 存储运算电路模块及处理器
CN110209375A (zh) * 2019-05-30 2019-09-06 浙江大学 一种基于radix-4编码和差分权重存储的乘累加电路
CN110750232A (zh) * 2019-10-17 2020-02-04 电子科技大学 一种基于sram的并行乘加装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C3SRAM: In-Memory-Computing SRAM Macro Based on Capacitive-Coupling Computing;Zhewei Jiang;《IEEE SOLID-STATE CIRCUITS LETTERS》;20190915;全文 *

Also Published As

Publication number Publication date
CN112071343A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN112071343B (zh) 一种在存储器中结合电容实现乘法的sram电路结构
US11948659B2 (en) Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
US9697877B2 (en) Compute memory
CN111880763B (zh) 一种在内存中实现带有正负数乘加的sram电路
CN111816232B (zh) 一种基于4管存储结构的存内计算阵列装置
CN112116937B (zh) 一种在存储器中实现乘法和或逻辑运算的sram电路结构
CN112558919B (zh) 一种存内计算位单元及存内计算装置
CN113257306B (zh) 一种基于静态随机存取存储器的存算一体阵列及加速装置
CN114546335B (zh) 一种多比特输入与多比特权重乘累加的存内计算装置
US20220276835A1 (en) Sub-cell, Mac array and Bit-width Reconfigurable Mixed-signal In-memory Computing Module
CN110941185B (zh) 一种用于二值神经网络的双字线6tsram单元电路
CN111816231A (zh) 一种双-6t sram结构的存内计算装置
CN112151092A (zh) 一种基于4管存储的存储单元、存储阵列及存内计算装置
CN115039177A (zh) 低功耗存储器内计算位单元
CN115244621A (zh) 分时共享的存储器内计算位单元
Madhavan et al. Temporal state machines: using temporal memory to stitch time-based graph computations
CN115691613B (zh) 一种基于忆阻器的电荷型存内计算实现方法及其单元结构
US20230297235A1 (en) Sram-based cell for in-memory computing and hybrid computations/storage memory architecture
CN115210810A (zh) 存储器内计算动态随机存取存储器
CN114944180B (zh) 一种基于复制列的可配权重脉冲发生装置
CN116204490A (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
CN115424645A (zh) 计算器件、存储器控制器和执行存储器中计算的方法
CN113314174B (zh) 一种用于sram阵列的列移位多位乘法二进制分解运算的电路结构
CN115910152A (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