CN114974351B - 一种多比特存内计算单元及存内计算装置 - Google Patents

一种多比特存内计算单元及存内计算装置 Download PDF

Info

Publication number
CN114974351B
CN114974351B CN202210608355.3A CN202210608355A CN114974351B CN 114974351 B CN114974351 B CN 114974351B CN 202210608355 A CN202210608355 A CN 202210608355A CN 114974351 B CN114974351 B CN 114974351B
Authority
CN
China
Prior art keywords
bit
transistor
voltage
sense
bit line
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
CN202210608355.3A
Other languages
English (en)
Other versions
CN114974351A (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.)
Suzhou Kuanwen Electronic Science & Technology Co ltd
Original Assignee
Suzhou Kuanwen Electronic Science & Technology Co ltd
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 Suzhou Kuanwen Electronic Science & Technology Co ltd filed Critical Suzhou Kuanwen Electronic Science & Technology Co ltd
Priority to CN202210608355.3A priority Critical patent/CN114974351B/zh
Publication of CN114974351A publication Critical patent/CN114974351A/zh
Application granted granted Critical
Publication of CN114974351B publication Critical patent/CN114974351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/411Digital 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 using bipolar transistors only
    • 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/414Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the bipolar type
    • G11C11/416Read-write [R-W] circuits 
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明提供一种多比特存内计算单元和存内计算装置。多比特存内计算单元执行输入数据和存储单元中的存储数据之间的乘法。根据多比特输入数据或多比特存储数据产生不同大小的电流,读出位线通过该电流充电或者放电,读出电路根据读出位线的电压变化获得输入数据和存储数据的乘积。在一个计算周期中能够实现多比特乘法,提高了计算效率。存内计算装置包括多个该多比特存内计算单元。

Description

一种多比特存内计算单元及存内计算装置
技术领域
本发明实施例涉及存内计算领域,具体涉及一种多比特存内计算单元及存内计算装置。
背景技术
现有的计算装置通常为冯诺依曼架构,数据在处理器与内存之间的传输产生很大的功耗和时延。处理器的算力与数据传输间的不匹配,导致了所谓的“内存墙”问题。为了解决这一问题,新型计算方式被提出,其中包括近存计算、存内计算等。存内计算可以降低数据传输带来的计算时延和功耗。目前出现了基于各种存储器的存内计算,包括基于阻变式存储器RRAM的存内计算、基于静态随机存储器SRAM的存内计算、基于动态随机存取存储器DRAM的存内计算。现有的存内计算单元通常只能进行1比特乘法,计算效率有待提高。
发明内容
本发明提供了一种多比特存内计算单元及存内计算装置。
根据本发明的一个方面,多比特存内计算单元包括:存储单元、晶体管、选择器和读出电路。存储单元设置为存储1比特数据。晶体管的第一端连接所述存储单元,晶体管的第二端连接读出位线。选择器接收2n个输入电压,选择器根据n比特输入数据选择将所述2n个输入电压中的一个输出到晶体管的栅极,n大于或等于2。读出电路设置为感测所述读出位线的电压变化。其中,2n个输入电压使所述晶体管产生不同大小的电流,所述晶体管的电流为所述读出位线充电或放电。
在本发明的另一实现方式中,所述2n个输入电压使所述读出位线的电压增加或减小0,ΔV,2ΔV,…(2n-1)ΔV。
在本发明的另一实现方式中,所述2n个输入电压的大小逐渐增大。
在本发明的另一实现方式中,所述存储单元为静态随机存储器。
在本发明的另一实现方式中,在预充阶段,所述读出位线预充到预定电压,在计算阶段,所述选择器输出与n比特输入数据对应的输入电压。
根据本发明的另一个方面,多比特存内计算单元包括:n个存储单元、第一晶体管、第二晶体管、选择器和读出电路。n个存储单元中的每个设置为存储1比特数据。第一晶体管的第一端连接读出位线。第二晶体管的第一端连接所述第一晶体管的第二端,所述第二晶体管的第二端接地或电源端。第二晶体管的栅极接收1比特输入数据,所述1比特的输入数据为1时,第二晶体管导通,所述1比特输入数据为0时,所述第二晶体管断开。选择器接收2n个输入电压,并根据所述n个存储单元存储的n比特数据选择将所述2n个输入电压中的一个输出到所述第一晶体管的栅极,n大于或等于2。读出电路设置为感测所述读出位线的电压变化,其中,所述2n个输入电压使所述第一晶体管产生不同大小的电流,所述第一晶体管的电流为所述读出位线充电或放电。
在本发明的另一实现方式中,所述2n个输入电压使所述读出位线的电压增加或减小0,ΔV,2ΔV,…(2n-1)ΔV。
在本发明的另一实现方式中,所述2n个输入电压的大小逐渐增大。
在本发明的另一实现方式中,所述存储单元为静态随机存储器。
在本发明的另一实现方式中,在预充阶段,所述读出位线预充到预定电压,在计算阶段,所述选择器输出与n比特存储数据对应的输入电压。
根据本发明的另一个方面,多比特存内计算单元包括:n个存储单元、第一晶体管和第二晶体管、第一选择器和第二选择器,以及读出电路。n个存储单元中的每个设置为存储1比特数据。第一晶体管和所述第二晶体管串联在读出位线和地或读出位线和电源端之间。第一选择器接收2n个第一输入电压,所述第一选择器根据所述n个存储单元存储的n比特数据选择将所述2n个第一输入电压中的一个输出到所述第一晶体管的栅极,n大于或等于2。第二选择器接收2m个第二输入电压,所述第二选择器根据m比特输入数据选择将所述2m个第二输入电压中的一个输出到所述第二晶体管的栅极,m大于或等于2。读出电路设置为感测所述读出位线的电压变化,其中,流过所述第一晶体管和第二晶体管的电流为所述读出位线充电或放电。
在本发明的另一实现方式中,所述存储单元为静态随机存储器。
根据本发明的另一个方面,存内计算装置包括上述的多比特存内计算单元。
在本发明的另一实现方式中,多个所述多比特存内计算单元连接同一读出位线。
多比特存内计算单元执行输入数据和存储单元中的存储数据之间的乘法。输入数据或存储数据包括多个比特。根据多比特输入数据或多比特存储数据产生不同大小的电流,读出位线通过该电流充电或者放电,读出电路根据读出位线的电压变化获得输入数据和存储数据的乘积。在一个计算周期中能够实现多比特乘法,提高了计算效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。下文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比值绘制的。
图1示出了一种乘累加运算单元。
图2示出了本发明的实施例提供的一种多比特存内计算单元。
图3示出了示例性的存储单元。
图4示出了本发明的实施例提供的实现乘累加运算的计算装置;
图5示出了本发明的实施例提供的另一种多比特存内计算单元。
图6示出了本发明的实施例提供的又一种多比特存内计算单元。
图7示出了本发明的实施例提供的存内计算装置的结构框图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。本发明阐述了各种细节,因为这些细节涉及某些实施例。然而,本发明也可以以与本文描述的方式不同的方式实现。在不脱离本发明的情况下,本领域技术人员可以对所讨论的实施例进行修改。因此,本发明不限于本文公开的特定实施例。
存内计算装置通常包括用于执行乘累加(Multiply Accumulate,MAC)运算的单元。图1示出了相关技术的乘累加运算单元的电路图。图1所示的乘累加运算单元能够进行1比特(bit)输入数据和1比特存储数据的乘法并将多个乘积累加。乘累加运算单元包括存储单元Cell0-Cell3,每个存储单元存储1比特的存储数据。存储数据例如是卷积运算的权重数据。每个存储单元通过晶体管T连接读出位线RBL。具体地,晶体管T的漏端连接读出位线RBL,源端连接对应的存储单元。晶体管T的栅极接收对应的1比特输入数据AI。乘累加运算单元进行乘累加运算时,读出位线RBL先被预充到高电平。输入数据AI0-AI3分别被提供到对应的晶体管T的栅极。如果1比特输入数据AI为0,提供到晶体管T的栅极为低电平,晶体管T不导通,无论存储单元Cell中存储的数据W是1还是0,都不对读出位线RBL的电压产生影响。如果1比特输入数据AI为1,电压V提供到晶体管T的栅极。如果存储单元Cell中存储的数据是0,栅极电压为V的晶体管T的源端和漏端都是高电平,读出位线RBL的电压不变。如果存储单元Cell中存储的数据是1,栅极电压为V的晶体管T的源端为低电平,读出位线RBL通过晶体管T放电。经过预定时间的放电,读出位线RBL的电压降低ΔV。即,在输入数据AI和存储单元Cell中存储的数据W都是1时,读出位线RBL的电压降低ΔV。图1所示的乘累加运算单元能够执行4个1比特输入数据和1比特存储数据的乘法以及4个乘积的累加。例如,4个输入数据AI0-AI3分别为0,0,1,1,对应的存储数据W0-W3分别为0,1,0,1,其乘累加运算的结果为1,只有输入数据AI3和对应的存储数据W3使得读出位线RBL的电压降低ΔV。如果4个输入数据AI0-AI3分别为0,0,1,1,对应的存储数据W0-W3分别为0,1,1,1,读出位线RBL的电压会降低2个ΔV。通过模数转换器(analog to digital converter,ADC)将读出位线RBL的电压转化为数字信号,进一步得到乘累加运算的结果,即图1所示的乘累加运算单元可以计算AI0*W0+AI1*W1+AI2*W2+AI3*W3。
本申请提出一种多比特存内计算单元,能够执行多比特数据的乘法,例如,n比特输入数据和1比特存储数据的乘法,1比特输入数据和n比特存储数据的乘法,n比特输入数据和m比特存储数据的乘法,n大于或等于2,m大于或等于2。多比特存内计算单元包括存储单元,用来存储该存储数据。多比特存内计算单元还包括晶体管,根据输入数据或存储数据选择输入电压提供到晶体管使晶体管产生电流,不同的输入数据或存储数据使晶体管产生不同大小的电流。读出位线通过晶体管放电或者充电,通过量化读出位线的电压变化来获得多比特乘法的乘积。下面通过多个实施例介绍本申请的多比特存内计算单元。
在一些实施例中,多比特存内计算单元包括:存储单元、晶体管、选择器和读出电路。存储单元设置为存储1比特数据。在本文中,存储单元中存储的数据称为存储数据。存储数据例如为卷积运算中的权重数据。晶体管的第一端连接存储单元,晶体管的第二端连接读出位线。选择器具有2n个输入端,用于接收2n个输入电压,n大于或等于2。选择器根据n比特输入数据选择将所述2n个输入电压中的一个输出到晶体管的栅极。2n个输入电压能够使晶体管产生2n种不同大小的电流,晶体管的电流为所述读出位线充电或放电。读出电路设置为感测所述读出位线的电压变化。
图2示出了示例性的多比特存内计算单元。图2所示的多比特存内计算单元能够执行2比特的输入数据和1比特的存储数据的乘法,即n=2。多比特存内计算单元包括存储单元111、晶体管T、选择器112和读出电路113。晶体管T的源端(即第一端)连接存储单元111,晶体管T的漏端(即第二端)连接读出位线RBL。晶体管T例如为NMOS。存储单元111存储1比特数据,例如卷积运算中的权重数据W中的1比特。选择器112具有第一输入端、第二输入端、第三输入端、第四输入端、输出端和控制端。第一输入端至第四输入端分别接收第一电压V1至第四电压V4(即输入电压)。选择器112的输出端连接晶体管T的栅极。选择器112的控制端接收2比特的输入数据AI[1:0]。选择器112根据2比特的输入数据AI[1:0]选择将第一电压V1至第四电压V4中的一个输出到晶体管T的栅极。例如,输入数据AI[1:0]为00时,选择器112输出第一电压V1;输入数据AI[1:0]为01时,选择器112输出第二电压V2;输入数据AI[1:0]为10时,选择器112输出第三电压V3;输入数据AI[1:0]为11时,选择器112输出第四电压V4。第一电压V1至第四电压V4的大小不同。晶体管T的栅极电压为第一电压V1时,晶体管T的电流为I1;晶体管T的栅极电压为第二电压V2时,晶体管T的电流为I2;晶体管T的栅极电压为第三电压V3时,晶体管T的电流为I3;晶体管T的栅极电压为第四电压V4时,晶体管T的电流为I4,电流I1-I4的大小不同。不同大小的电流I1-I4可以通过对读出位线RBL进行充电或放电来改变读出位线RBL的电压。
在一些实施例中,2n个输入电压使晶体管产生的电流带来的读出位线RBL的电压变化量为等差数列。
例如,电流I1-I4例如满足:I2=2*I1,I3=3*I1,I4=4*I1。在预定时间内,电流I1-I4可以使读出位线RBL的电压改变ΔV,2ΔV,3ΔV和4ΔV。
再例如,第一电压V1例如为低电平VSS。当晶体管T的栅极电压为第一电压V1时,晶体管T不导通,I1=0。第二电压V2至第四电压V4使得I3=2*I2,I4=3*I2。电流I1-I4可以使读出位线RBL的电压改变0,ΔV,2ΔV和3ΔV。
读出电路113设置为感测所述读出位线的电压变化。读出电路113例如为模数转换器,模数转换器设置为将读出位线RBL的电压转为数字信号,进而获得电压变化。根据读出位线RBL的电压变化,确定多比特输入数据和存储数据的乘积。读出电路113也可以是比较器,比较器通过比较读出位线RBL的电压和一个或多个参考电压来确定读出位线RBL的电压变化。优选地,读出位线RBL和地之间设置有电容C。
图3是示例性的存储单元的电路图。存储单元例如是静态随机存储器(StaticRandom Access Memory,SRAM)。存储单元111可以是包括6个晶体管的6T-SRAM,也可以是包括8个晶体管的8T-SRAM,也可以是包括10个晶体管的10T-SRAM,本申请不做限定。图3以6T-SRAM为例进行说明。存储单元111包括NMOS晶体管N1-N4和PMOS晶体管P1-P2。NMOS晶体管N1和PMOS晶体管P1构成第一反相器INV1。NMOS晶体管N2和PMOS晶体管P2构成第二反相器INV2。节点Q是第一反相器INV1的输入端,也是第二反相器INV2的输出端,节点QB是第二反相器INV2的输入端,也是第一反相器INV1的输出端。节点Q通过NMOS晶体管N3连接位线BL,节点QB通过NMOS晶体管N4连接位线BLB,位线BL和位线BLB为互补位线。在本文中,位线BL称为第一位线,位线BLB称为第二位线,读出位线RBL称为第三位线。NMOS晶体管N3和NMOS晶体管N4的栅极连接字线WL。节点Q和QB作为存储单元111的存储节点,存储1比特的数据。存储单元111存储1,节点Q为高电平,节点QB为低电平;存储单元111存储0,节点Q为低电平,节点QB为高电平。晶体管T的源极连接节点QB。在一些实施例中,晶体管T的源极也可以通过反相器连接节点Q。
下面以第一电压V1为低电平VSS,I1=0,I3=2*I2,I4=3*I2为例描述多比特存内计算单元的计算过程。一个计算周期包括预充阶段和计算阶段。在预充阶段,读出位线RBL充电到高电平。在计算阶段,输入数据AI[1:0]提供到选择器112的控制端,选择器112根据输入数据AI[1:0]选择将第一电压V1至第四电压V4中的一个输出到晶体管T的栅极。节点Q通过反相器(图2和图3未示出)连接晶体管T的源端。如果存储单元111存储的数据为“0”,节点Q为低电平,节点QB为高电平,高电平提供到晶体管T的源端,无论输入数据AI[1:0]取值00、01、10和11中任一个,读出位线RBL的电压都不会降低。如果存储单元111存储的数据为“1”,节点Q为高电平,节点QB为低电平,低电平提供到晶体管T的源端。输入数据AI[1:0]为00时,读出位线RBL的电压不变;输入数据AI[1:0]为01时,读出位线RBL的电压降低ΔV;输入数据AI[1:0]为10时,读出位线RBL的电压降低2ΔV;输入数据AI[1:0]为11时,读出位线RBL的电压降低3ΔV。因此,通过获得读出位线RBL的电压减小量就可以确定输入数据AI[1:0]和存储数据W的乘积。读出电路113确定读出位线RBL的电压的变化量。
在可选实施例中,在预充阶段,读出位线RBL设置为低电平。在计算阶段,输入数据AI[1:0]提供到选择器112的控制端,选择器112根据输入数据AI[1:0]选择将第一电压V1至第四电压V4中的一个输出到晶体管T的栅极。节点Q连接晶体管T的源端。如果存储单元111存储的数据为“0”,节点Q为低电平,低电平提供到晶体管T的源端,无论输入数据AI[1:0]取值00、01、10和11中任一个,读出位线RBL都不会升高。如果存储单元111存储的数据为“1”,节点Q为高电平,高电平被提供到晶体管T的源端。输入数据AI[1:0]为00时,读出位线RBL的电压不变;输入数据AI[1:0]为01时,读出位线RBL的电压增大ΔV;输入数据AI[1:0]为10时,读出位线RBL的电压增大2ΔV;输入数据AI[1:0]为11时,读出位线RBL的电压增大3ΔV。因此,通过获得读出位线RBL的电压增加量就可以确定输入数据AI[1:0]和存储数据W的乘积。
输入数据AI[n-1:0]为n比特数据的情况与上述类似,选择器112根据输入数据AI[n-1:0]选择将2n个输入电压中的对应输入电压提供到晶体管T的栅极。本申请的多比特存内计算单元实现了n比特输入数据与1比特存储数据的乘法。传统存内计算需要2个计算周期才能实现2比特输入数据和1存储数据的乘法,因此本申请的多比特存内计算单元提高了计算效率。
图4示出了基于图2的多比特存内计算单元的乘积累加运算单元。乘积累加运算单元包括j个多比特存内计算单元,j个多比特存内计算单元连接同一条读出位线RBL。j个多比特存内计算单元同时进行乘法运算,j个多比特存内计算单元对读出位线RBL产生的电压变化之和通过读出电路113感测。因此,乘积累加运算单元能够进行如下运算:A1[1:0]*W1+A2[1:0]*W2+…+Aj[1:0]*Wj。
本申请实施例还提供另一种多比特存内计算单元,包括:n个存储单元、第一晶体管、第二晶体管、选择器和读出电路。n个存储单元存储n比特数据。第一晶体管的第一端连接读出位线。第二晶体管的第一端连接第一晶体管的第二端,第二晶体管的第二端接地或电源端。第二晶体管的栅极接收1比特输入数据,该1比特输入数据为1时,第二晶体管导通,该1比特的数据为0时,第二晶体管断开。选择器接收2n个输入电压,选择器根据该n个存储单元存储的n比特数据选择将所述2n个输入电压中的对应之一输出到第一晶体管的栅极,n大于或等于2。读出电路设置为感测读出位线的电压变化。2n个输入电压使第一晶体管产生不同大小的电流,第一晶体管的电流为读出位线充电或放电。
图5示出了示例性的多比特存内计算单元。图5所示的多比特存内计算单元能够执行1比特输入数据和2比特存储数据的乘法,即n=2。多比特存内计算单元包括2个存储单元111-0和111-1、第一晶体管T1、第二晶体管T2、选择器112和读出电路113。第一晶体管T1和第二晶体管T2串联在读出位线RBL和地之间。第一晶体管T的漏端(即第二端)连接读出位线RBL。第二晶体管T的漏端(即第二端)连接第一晶体管T的源端(即第一端),第二晶体管T的源端(即第一端)接地。在一些实施例中,第二晶体管T2设置在第一晶体管T1和读出位线RBL之间。第一晶体管T1和第二晶体管T2例如为NMOS。存储单元111-0和111-1例如为图3所示的SRAM存储单元,每个存储单元存储1比特数据,存储单元111-0和111-1例如存储卷积运算中的权重数据W中的2个比特。选择器112具有第一输入端、第二输入端、第三输入端、第四输入端、输出端和控制端。第一输入端至第四输入端分别接收第一电压V1至第四电压V4。选择器112的输出端连接第一晶体管T1的栅极。选择器112的控制端接收2比特的存储数据W[1:0]。选择器112根据2比特存储数据W[1:0]选择将第一电压V1至第四电压V4中的一个输出到第一晶体管T1的栅极。例如,存储数据W[1:0]为00时,选择器112输出第一电压V1;存储数据W[1:0]为01时,选择器112输出第二电压V2;存储数据W[1:0]为10时,选择器112输出第三电压V3;存储数据W[1:0]为11时,选择器112输出第四电压V4。第一电压V1至第四电压V4的大小不同。第一晶体管T1的源端和漏端的电压差为VDD,栅极电压为第一电压V1时,第一晶体管T1的电流为I1;第一晶体管T1的栅极电压为第二电压V2时,第一晶体管T1的电流为I2;第一晶体管T1的栅极电压为第三电压V3时,第一晶体管T1的电流为I3;第一晶体管T1的栅极电压为第四电压V4时,第一晶体管T1的电流为I4,电流I1-I4的大小不同。不同大小的电流I1-I4可以通过对读出位线RBL进行充电或放电来改变读出位线RBL的电压。
第四电压V4大于第三电压V3,第三电压V3大于第二电压V2,第二电压V2大于第一电压V1。在一些实施例中,第一电压V1例如为低电平VSS。当第一晶体管T1的栅极电压为第一电压V1时,第一晶体管T1不导通,I1=0。第二电压V2、第三电压V3和第四电压V4满足:I3=2*I2,I4=3*I2。电流I1-I4可以使读出位线RBL的电压对应改变0,ΔV,2ΔV和3ΔV。
读出电路113设置为感测所述读出位线RBL的电压变化。根据读出位线RBL的电压变化,确定多比特输入数据和存储数据的乘积。优选地,读出位线RBL和地之间设置有电容C。
下面以第一电压V1为低电平VSS,I1=0,I3=2*I2,I4=3*I2为例描述多比特存内计算单元的计算过程。一个计算周期包括预充阶段和计算阶段。在预充阶段,读出位线RBL充电到高电平。在计算阶段,2比特存储数据W[1:0]提供到选择器112的控制端,1比特输入数据提供到第二晶体管T2的栅极。选择器112根据存储数据W[1:0]选择将第一电压V1至第四电压V4中的一个输出到第一晶体管T1的栅极。如果存储数据W[1:0]为00,选择器112将第一电压V1提供到第一晶体管T1的栅极;如果存储数据W[1:0]为01,选择器112将第二电压V2提供到第一晶体管T1的栅极;如果存储数据W[1:0]为10,选择器112将第三电压V3提供到第一晶体管T1的栅极;如果存储数据W[1:0]为11,选择器112将第四电压V4提供到第一晶体管T1的栅极。如果1比特输入数据AI为0,第二晶体管T2断开,无论存储数据W[1:0]为00,01,10,11中任一个,读出位线RBL的电压都不会降低。如果1比特输入数据AI为1,第二晶体管T2导通,存储数据W[1:0]为00时,读出位线RBL的电压不变;存储数据W[1:0]为01时,读出位线RBL的电压降低ΔV;存储数据W[1:0]为10时,读出位线RBL的电压降低2ΔV;存储数据W[1:0]为11时,读出位线RBL的电压降低3ΔV。因此,通过获得读出位线RBL的电压减小量就可以确定存储数据W[1:0]和输入数据AI的乘积。读出电路113确定读出位线RBL的电压的变化量。
在一些实施例中,第一晶体管T1和第二晶体管T2串联在电源端VDD和读出位线RBL之间。在预充阶段,读出位线RBL设置到低电平。在计算阶段,如果1比特输入数据AI为0,读出位线RBL的电压依然为低电平。如果1比特输入数据AI为1,存储数据W[1:0]为00时,读出位线RBL的电压不变;存储数据W[1:0]为01时,读出位线RBL的电压增大ΔV;存储数据W[1:0]为10时,读出位线RBL的电压增大2ΔV;存储数据W[1:0]为11时,读出位线RBL的电压增大3ΔV。读出电路113确定读出位线RBL的电压的变化量。
存储数据W[n-1:0]为n比特数据的情况与上述类似,选择器112根据存储数据W[n-1:0]选择将2n个输入电压中的对应输入电压提供到第一晶体管T1的栅极。本申请的多比特存内计算单元实现了n比特存储数据与1比特输入数据的乘法。传统存内计算需要2个计算周期才能实现2比特存储数据和1输入数据的乘法,因此本申请的多比特存内计算单元提高了计算效率。
在一些实施例中,多比特存内计算单元包括:n个存储单元、第一晶体管和第二晶体管、第一选择器和第二选择器、以及读出电路。
每个存储单元设置为存储1比特数据,n个存储单元存储n比特数据。第一晶体管和所述第二晶体管串联在读出位线和地或读出位线和电源端之间。第一选择器接收2n个第一输入电压,第一选择器根据所述n个存储单元存储的n比特数据选择将所述2n个第一输入电压中的一个输出到所述第一晶体管的栅极,n大于或等于2。第二选择器接收2m个第二输入电压,第二选择器根据m比特输入数据选择将所述2m个第二输入电压中的一个输出到所述第二晶体管的栅极,m大于或等于2。读出电路设置为感测所述读出位线的电压变化。流过所述第一晶体管和第二晶体管的电流为所述读出位线充电或放电。
图6示出了示例性的多比特存内计算单元。图6所示的多比特存内计算单元能够执行2比特输入数据和2比特存储数据的乘法,即n=m=2。如图6所示,多比特存内计算单元包括:存储单元111-0和存储单元111-1、第一晶体管T1和第二晶体管T2、第一选择器1121和第二选择器1122、以及读出电路113。
存储单元111-0和存储单元111-1例如为图3所示的SRAM存储单元。存储单元111-0和存储单元111-1存储2比特的存储数据W[1:0]。第一晶体管T1和第二晶体管T2串联在读出位线RBL之间。例如,第一晶体管T1的漏端连接读出位线RBL,第二晶体管T2的漏端连接第一晶体管T1的源端,第二晶体管T2的源端接地。
第一选择器1121具有第一输入端至第四输入端,输出端和控制端。第一输入端至第四输入端用于接收一组第一输入电压V11-V14。控制端连接位线BL0和BL1,用于接收存储数据W[1:0]。输出端连接第一晶体管T1的栅极。当存储数据W[1:0]为00时,第一选择器1121将第一输入电压V11提供到第一晶体管T1的栅极;当存储数据W[1:0]为01时,第一选择器1121将第一输入电压V12提供到第一晶体管T1的栅极;当存储数据W[1:0]为10时,第一选择器1121将第一输入电压V13提供到第一晶体管T1的栅极;当存储数据W[1:0]为11时,第一选择器1121将第一输入电压V14提供到第一晶体管T1的栅极。
第二选择器1122具有第一输入端至第四输入端,输出端和控制端。第一输入端至第四输入端用于接收一组第二输入电压V21-V24。控制端用于接收输入数据AI[1:0]。输出端连接第二晶体管T2的栅极。当输入数据AI[1:0]为00时,第二选择器1122将第二输入电压V21提供到第二晶体管T2的栅极;当输入数据AI[1:0]为01时,第二选择器1122将第二输入电压V22提供到第二晶体管T2的栅极;当输入数据AI[1:0]为10时,第二选择器1122将第二输入电压V23提供到第二晶体管T2的栅极;当输入数据AI[1:0]为11时,第二选择器1122将第二输入电压V24提供到第二晶体管T2的栅极。
第一晶体管T1和第二晶体管T2例如为NMOS。在一些实施例中,第一输入电压V11和第二输入电压V21为低电平VSS。当第一晶体管T1的栅极为第一输入电压V11,第一晶体管T1断开。当第二晶体管T2的栅极为第二输入电压V21,第二晶体管T2断开。第一输入电压V11-V14逐渐增大,第二输入电压V21-V24逐渐增大。存储数据W[1:0]和输入数据AI[1:0]对应的第一输入电压V11-V14和第二输入电压V21-V24使得流过串联的第一晶体管T1和第二晶体管T2的电流满足以下表1。
表1
表1是图6所示的多比特存内计算单元的真值表。第一输入电压V12和第二输入电压V22使得串联的第一晶体管T1和第二晶体管T2的电流为Iref;第一输入电压V12和第二输入电压V23使得串联的第一晶体管T1和第二晶体管T2的电流为2*Iref;第一输入电压V12和第二输入电压V24使得串联的第一晶体管T1和第二晶体管T2的电流为3*Iref;第一输入电压V13和第二输入电压V22使得串联的第一晶体管T1和第二晶体管T2的电流为2*Iref;第一输入电压V13和第二输入电压V23使得串联的第一晶体管T1和第二晶体管T2的电流为4*Iref;第一输入电压V13和第二输入电压V24使得串联的第一晶体管T1和第二晶体管T2的电流为6*Iref;第一输入电压V14和第二输入电压V22使得串联的第一晶体管T1和第二晶体管T2的电流为3*Iref;第一输入电压V14和第二输入电压V23使得串联的第一晶体管T1和第二晶体管T2的电流为6*Iref;第一输入电压V14和第二输入电压V24使得串联的第一晶体管T1和第二晶体管T2的电流为9*Iref。如上设置第一输入电压V11-V14和第二输入电压V21-V24可产生表1中的读出位线RBL的电压变化。
多比特存内计算单元的计算过程包括预充阶段和计算阶段。在预充阶段,读出位线RBL被预充到高电平。在计算阶段,根据存储数据W[1:0]和输入数据AI[1:0]的取值选择第一输入电压和第二输入电压,读出位线RBL通过第一晶体管T1和第二晶体管T2的电流放电,读出位线RBL放电预定时间后读出电路113确定读出位线RBL的电压变化,进而确定存储数据W[1:0]和输入数据AI[1:0]的乘积。这样,在一个计算周期实现了2比特输入数据和2比特存储数据的乘法,提高了计算效率。输入数据AI[m-1:0]为m比特数据,存储数据W[n-1:0]为n比特数据的情况与上述类似,不再赘述。
本申请还提供一种存内计算装置。图7示出了本发明的实施例提供的存内计算装置的结构框图。存内计算装置包括:存内计算模块10、行译码器20、列译码器30、读写电路40、输入电路50和读出模块60。存内计算装置能够执行输入数据和存储数据的乘法。存内计算模块10例如基于SRAM单元阵列,包括多行多列的SRAM单元,SRAM单元通过字线WL和位线BL和BLB寻址。行译码器20用于根据行地址选择对应的字线WL。列译码器30用于根据列地址选择对应的位线对BL和BLB。读写电路40用于将数据写入SRAM单元或者将数据从SRAM单元读出。存内计算模块10包括多个多比特存内计算单元100,多比特存内计算单元100可以是上述实施例中的多比特存内计算单元。多个多比特存内计算单元100连接同一读出位线RBL,从而可以进行MAC计算。例如,一列多比特存内计算单元100连接同一读出位线RBL,构成一个多比特MAC计算单元。输入电路50用于将输入数据提供到多比特存内计算单元100。读出模块60连接读出位线RBL。读出模块60包括多个读出电路113,每个读出电路113连接对应的读出位线RBL。读出电路113是上述实施例中的读出电路,即连接同一读出位线RBL的多比特存内计算单元100公用一个读出电路113。读出电路113能够确定一列多比特存内计算单元100带来的读出位线RBL的电压变化,根据读出位线RBL的电压变化确定MAC计算的结果。
存内计算装置例如执行卷积运算,计算输入矩阵和权重矩阵的卷积。权重矩阵中的权重数据通过读写电路40存储到存内计算模块10中的存储单元。输入矩阵的输入数据通过输入电路50提供到对应的多比特存内计算单元100。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种多比特存内计算单元,其特征在于,包括:
存储单元,所述存储单元设置为存储1比特数据;
晶体管,所述晶体管的第一端连接所述存储单元,所述晶体管的第二端连接读出位线;
选择器,所述选择器接收2n个输入电压,所述选择器根据n比特输入数据选择将所述2n个输入电压中的一个输出到所述晶体管的栅极,n大于或等于2;以及
读出电路,所述读出电路设置为感测所述读出位线的电压变化,
其中,所述2n个输入电压使所述晶体管产生不同大小的电流,所述晶体管的电流为所述读出位线充电或放电。
2.一种多比特存内计算单元,其特征在于,包括:
n个存储单元,每个所述存储单元设置为存储1比特数据;
第一晶体管,所述第一晶体管的第一端连接读出位线;
第二晶体管,所述第二晶体管的第一端连接所述第一晶体管的第二端,所述第二晶体管的第二端接地或电源端,所述第二晶体管的栅极接收1比特输入数据,所述1比特输入数据为1时,所述第二晶体管导通,所述1比特输入数据为0时,所述第二晶体管断开;
选择器,所述选择器接收2n个输入电压,所述选择器根据所述n个存储单元存储的n比特数据选择将所述2n个输入电压中的一个输出到所述第一晶体管的栅极,n大于或等于2;以及
读出电路,所述读出电路设置为感测所述读出位线的电压变化,
其中,所述2n个输入电压使所述第一晶体管产生不同大小的电流,所述第一晶体管的电流为所述读出位线充电或放电。
3.根据权利要求1或2所述的多比特存内计算单元,其特征在于,所述2n个输入电压使所述读出位线的电压增加或减小0,ΔV,2ΔV,…(2n-1)ΔV。
4.根据权利要求1或2所述的多比特存内计算单元,其特征在于,所述2n个输入电压的大小逐渐增大。
5.根据权利要求1或2所述的多比特存内计算单元,其特征在于,在预充阶段,所述读出位线预充到预定电压,在计算阶段,所述选择器输出与所述n比特输入数据或所述n个存储单元存储的n比特数据对应的输入电压。
6.根据权利要求1或2所述的多比特存内计算单元,其特征在于,所述存储单元为静态随机存储器。
7.一种多比特存内计算单元,其特征在于,包括:
n个存储单元,每个所述存储单元设置为存储1比特数据;
第一晶体管和第二晶体管,所述第一晶体管和所述第二晶体管串联在读出位线和地或读出位线和电源端之间;
第一选择器,所述第一选择器接收2n个第一输入电压,所述第一选择器根据所述n个存储单元存储的n比特数据选择将所述2n个第一输入电压中的一个输出到所述第一晶体管的栅极,n大于或等于2;
第二选择器,所述第二选择器接收2m个第二输入电压,所述第二选择器根据m比特输入数据选择将所述2m个第二输入电压中的一个输出到所述第二晶体管的栅极,m大于或等于2;以及
读出电路,所述读出电路设置为感测所述读出位线的电压变化,
其中,流过所述第一晶体管和第二晶体管的电流为所述读出位线充电或放电。
8.根据权利要求7所述的多比特存内计算单元,其特征在于,所述存储单元为静态随机存储器。
9.一种存内计算装置,其特征在于,所述存内计算装置包括根据权利要求1-8任一项所述的多比特存内计算单元。
10.根据权利要求9所述的存内计算装置,其特征在于,多个所述多比特存内计算单元连接同一读出位线。
CN202210608355.3A 2022-05-31 2022-05-31 一种多比特存内计算单元及存内计算装置 Active CN114974351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210608355.3A CN114974351B (zh) 2022-05-31 2022-05-31 一种多比特存内计算单元及存内计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210608355.3A CN114974351B (zh) 2022-05-31 2022-05-31 一种多比特存内计算单元及存内计算装置

Publications (2)

Publication Number Publication Date
CN114974351A CN114974351A (zh) 2022-08-30
CN114974351B true CN114974351B (zh) 2023-10-17

Family

ID=82957317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210608355.3A Active CN114974351B (zh) 2022-05-31 2022-05-31 一种多比特存内计算单元及存内计算装置

Country Status (1)

Country Link
CN (1) CN114974351B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112558919A (zh) * 2021-02-22 2021-03-26 中科院微电子研究所南京智能技术研究院 一种存内计算位单元及存内计算装置
CN112567350A (zh) * 2018-06-18 2021-03-26 普林斯顿大学 可配置的存储器内计算引擎、平台、位单元及其布局
CN112599165A (zh) * 2021-03-04 2021-04-02 中科院微电子研究所南京智能技术研究院 一种多bit输入与多bit权重乘累加的存内计算单元
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN113255904A (zh) * 2021-06-22 2021-08-13 中科院微电子研究所南京智能技术研究院 电压裕度增强型电容耦合存算一体单元、子阵列及装置
CN113257306A (zh) * 2021-06-10 2021-08-13 中科院微电子研究所南京智能技术研究院 一种基于静态随机存取存储器的存算一体阵列及加速装置
CN113419705A (zh) * 2021-07-05 2021-09-21 南京后摩智能科技有限公司 存内乘加计算电路、芯片、计算装置
CN114499538A (zh) * 2021-12-16 2022-05-13 清华大学 多比特输入数据编码方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI266338B (en) * 2005-12-01 2006-11-11 Via Tech Inc Output circuit of SRAM
US11662980B2 (en) * 2019-11-06 2023-05-30 Flashsilicon Incorporation In-memory arithmetic processors

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112567350A (zh) * 2018-06-18 2021-03-26 普林斯顿大学 可配置的存储器内计算引擎、平台、位单元及其布局
CN112558919A (zh) * 2021-02-22 2021-03-26 中科院微电子研究所南京智能技术研究院 一种存内计算位单元及存内计算装置
CN112599165A (zh) * 2021-03-04 2021-04-02 中科院微电子研究所南京智能技术研究院 一种多bit输入与多bit权重乘累加的存内计算单元
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN113257306A (zh) * 2021-06-10 2021-08-13 中科院微电子研究所南京智能技术研究院 一种基于静态随机存取存储器的存算一体阵列及加速装置
CN113255904A (zh) * 2021-06-22 2021-08-13 中科院微电子研究所南京智能技术研究院 电压裕度增强型电容耦合存算一体单元、子阵列及装置
CN113419705A (zh) * 2021-07-05 2021-09-21 南京后摩智能科技有限公司 存内乘加计算电路、芯片、计算装置
CN114499538A (zh) * 2021-12-16 2022-05-13 清华大学 多比特输入数据编码方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114974351A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN112951294B (zh) 计算设备以及计算方法
US10642922B2 (en) Binary, ternary and bit serial compute-in-memory circuits
CN113255904B (zh) 电压裕度增强型电容耦合存算一体单元、子阵列及装置
CN112581996A (zh) 基于磁性随机存储器的时域存内计算阵列结构
CN111816232B (zh) 一种基于4管存储结构的存内计算阵列装置
CN113257306B (zh) 一种基于静态随机存取存储器的存算一体阵列及加速装置
TWI750038B (zh) 記憶體裝置、計算裝置及計算方法
US10770132B1 (en) SRAM with burst mode address comparator
CN115039177A (zh) 低功耗存储器内计算位单元
CN113467751B (zh) 一种基于磁性随机存储器的模拟域存内计算阵列结构
CN114743580B (zh) 一种电荷共享存内计算装置
CN114038492B (zh) 一种多相采样存内计算电路
CN114300012B (zh) 一种解耦合sram存内计算装置
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
US20230297235A1 (en) Sram-based cell for in-memory computing and hybrid computations/storage memory architecture
CN114974351B (zh) 一种多比特存内计算单元及存内计算装置
CN115210810A (zh) 存储器内计算动态随机存取存储器
TW202307853A (zh) 用於實行記憶體內計算的計算裝置、記憶體控制器及方法
CN217933180U (zh) 一种存内计算电路
US11881243B2 (en) Semiconductor device including a memory array performing a multiplication and accumulation (MAC) operation using capacitors
CN219716477U (zh) 存储器装置
CN117807021B (zh) 2t-2mtj存算单元和mram存内计算电路
Ananthanarayanan et al. Design and Analysis of Multibit Multiply and Accumulate (MAC) unit: An Analog In-Memory Computing Approach
CN116798464A (zh) 存算一体设备以及减少存储器中预充电电流浪涌的方法
Zhang et al. An 8T SRAM Array with Configurable Word Lines for In-Memory Computing Operation. Electronics 2021, 10, 300

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
CB03 Change of inventor or designer information

Inventor after: Zhu Jiaguo

Inventor before: Zhang Lijun

Inventor before: Yan Yuling

Inventor before: Zhu Jiaguo

Inventor before: Weng Yufei

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20230105

Address after: 215024 Room 606-4, Building 1, Suzhou Nanotown, No. 99, Jinjihu Avenue, Suzhou Industrial Park, Suzhou Pilot Free Trade Zone, Jiangsu Province

Applicant after: SUZHOU KUANWEN ELECTRONIC SCIENCE & TECHNOLOGY Co.,Ltd.

Address before: 515d, floor 5, No. 15, information road, Haidian District, Beijing 100089

Applicant before: Beijing Kuanwen Microelectronics Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant