CN116964675A - 具有三元激活的存储器内计算 - Google Patents

具有三元激活的存储器内计算 Download PDF

Info

Publication number
CN116964675A
CN116964675A CN202280019411.8A CN202280019411A CN116964675A CN 116964675 A CN116964675 A CN 116964675A CN 202280019411 A CN202280019411 A CN 202280019411A CN 116964675 A CN116964675 A CN 116964675A
Authority
CN
China
Prior art keywords
switch
bit
phase
memory
during
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
CN202280019411.8A
Other languages
English (en)
Inventor
S·A·米雷杰
A·斯里瓦斯塔瓦
S·瓦德瓦
R·李
S·莫汉
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN116964675A publication Critical patent/CN116964675A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/412Digital 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 field-effect 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/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • 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/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Analogue/Digital Conversion (AREA)
  • Logic Circuits (AREA)

Abstract

提供了一种存储器内计算位单元,该位单元包括用于对存储位进行存储的交叉耦合的反相器对。存储器内计算位单元包括由开关对形成的逻辑门,用于将存储位与输入向量位相乘。控制器在操作的计算阶段期间响应于符号位来控制该开关对,并且在操作的执行阶段期间响应于幅度位来控制该开关对。

Description

具有三元激活的存储器内计算
相关申请的交叉引用
本申请要求美国申请号17/204649的优先权。上述申请通过引用以其整体并入于此。
技术领域
本申请涉及存储器内计算,并且更具体地,涉及具有三元激活的存储器内计算。
背景技术
与常规的位单元不同,存储器内计算(compute-in-memory;CiM)位单元不仅存储位,而且还包括用于将存储位与输入位相乘的逻辑门。CiM极大地加快了诸如人工智能的应用的计算时间,因为所产生的乘法不需要从存储器中取回位以传输到算术逻辑单元用于进行后续乘法,而这在经典的冯·诺依曼计算机架构中将被执行。相反,乘法发生在存储器本身。
尽管对于诸如人工智能的计算密集型应用,存储器内计算位单元与常规位单元相比是有利的,但是关于容纳(accommodate)与存储器内计算位单元的存储位相乘的输入位的符号(正或负),出现了问题。为了容纳符号,输入位的二进制0值可以被认为表示-1。在这种容纳中,输入位的集合形成输入向量。由于二进制0被映射到-1,因此每个输入向量表示奇数。例如,-7可以由输入向量[-1,-1,-1]表示,而7可以由输入向量[1,1,1]表示。在有符号实现中对输入向量的奇数的这种限制降低了计算精度。此外,利用这种常规的有符号实现,存储器内计算位单元中的电容器的充电和放电可能消耗大量能量。
发明内容
提供了一种存储器,该存储器包括:位单元,具有连接到输出节点的开关对;电容器,耦合到输出节点;第一存储元件和多个附加存储元件;以及控制器,控制器被配置为:在存储器的操作的第一阶段期间,从第一存储元件选择第一位,以响应于第一位来控制开关对,并且被配置为:在存储器的操作的第二阶段期间,从多个附加存储元件选择第二位,以响应于第二位来控制开关对。
此外,提供了一种控制位单元以将存储位与有符号输入位相乘的方法,方法包括:在操作的第一阶段期间并且响应于有符号输入位的符号具有第一二进制值,闭合耦合在用于存储位的节点与输出节点之间的第一开关,并且断开耦合在用于存储位的补码的节点与输出节点之间的第二开关;在操作的第一阶段期间并且响应于有符号位的符号具有第二二进制值,断开第一开关并且闭合第二开关;在操作的第二阶段期间并且响应于有符号输入位的幅度具有第一二进制值,反转在操作的第一阶段期间建立的第一开关和第二开关的开关状态;以及在操作的第二阶段期间并且响应于有符号输入位的幅度具有第二二进制值,维持在操作的第一阶段期间建立的第一开关和第二开关的开关状态。
此外,提供了一种存储器,存储器包括:位单元,被配置为对存储位进行存储,位单元包括耦合在用于存储位的节点与输出节点之间的第一开关以及耦合在用于存储位的补码的节点与输出节点之间的第二开关;电容器,具有连接到输出节点的第一极板;以及控制器,控制器被配置为:在操作的第一阶段中,响应于输入字的符号具有第一二进制值,而断开第二开关并且闭合第一开关,以及响应于输入字的符号位具有第二二进制值,而断开第一开关并且闭合第二开关,以控制第一开关和第二开关的开关状态,其中第二二进制值是第一二进制值的补码。
最后,提供了一种用于存储器内计算的操作的方法,方法包括:在操作的第一阶段期间,响应于符号位来控制耦合在位单元与电容器的极板之间的开关对;以及在操作的第二阶段期间,响应于幅度位来控制开关对。
通过以下详细描述可以更好地理解这些和其他有利特征。
附图说明
图1是根据本公开的一个方面的包括开关对的存储器内计算位单元的电路图。
图2图示了根据本公开的一个方面的、图1的存储器内计算位单元的实现,其中开关对包括传输门对。
图3图示了根据本公开的一个方面的、图1的存储器内计算位单元的实现,其中开关对包括PMOS晶体管对。
图4图示了根据本公开的一个方面的、用于在存储器内计算位单元的三元计算期间从输入缓冲器进行选择的控制器的方面。
图5图示了根据本公开的一个方面的、存储器内计算位单元执行三元计算的一些操作波形。
图6图示了根据本公开的一个方面的存储器内计算位单元的列,该存储器内计算位单元的列被配置成用于三元计算并且被组织成形成乘法和累加(MAC)电路。
图7图示了根据本公开的一个方面的包括阵列的存储器,阵列具有多个列,每个列包括被配置成用于三元计算的乘法和累加电路。
图8是根据本公开的一个方面的用于存储器内计算位单元的示例三元计算的流程图。
图9图示了一些示例电子系统,示例电子系统各自包含根据本公开的一个方面的被配置成用于三元计算的存储器内计算位单元的阵列。
通过参考下面的详细描述,可以最好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于标识图中的一个或多个图中图示的相同元件。
具体实施方式
在深度学习和其他机器学习应用中,卷积层是基本构建块。卷积层包括节点的集合,用于滤波器权重位与来自先前层(或来自输入数据(诸如正被分析的图像))的输入向量的乘法。节点也可以被指定为神经元。为了增加处理速度,神经元或节点使用存储器内计算位单元来进行实现。为了提供增加的计算精度并且减少功耗,提供了三元(ternary)计算技术,其中输入向量可以具有奇数符号值或偶数符号值。该技术被表示为“三元”计算技术,因为在存储器内计算位单元处的所得计算可以使读取位线的电压增加、保持不变或减小。
本文公开的三元计算也被称为三元激活(ternary activation)。三元计算可以利用包括开关对和电容器的任何适当的存储器内计算位单元来进行实践。图1中示出了示例存储器内计算(CiM)位单元100。成对的交叉耦合的反相器120和125在输出节点wt上存储位。该存储位也被称为滤波器权重位。因此,输出节点wt也将被表示为滤波器权重位节点wt。该对交叉耦合的反相器120和125还将补码滤波器权重位(滤波器权重位的补码)存储在补码滤波器权重位节点wtb上。滤波器权重位节点wt是反相器120的输出节点,而补码滤波器权重位节点wtb是反相器125的输出节点。存储器内计算位单元100中的逻辑门由左(L)开关和(R)开关形成。L开关耦合在滤波器权重位节点wt与输出节点105之间。类似地,R开关耦合在补码滤波器权重位节点wtb与输出节点105之间。电容器C耦合在输出节点105与读取位线(RBL)之间。如本文中使用的,用于CiM应用的术语“位单元”将被理解为指代反相器120和125以及L开关和R开关,因为这些器件由在半导体裸片上实现的晶体管形成。相比之下,电容器C是无源器件,无源器件在备选实现中可以由其他CiM位单元共享。
存储器内计算位单元100计算滤波器权重位与有符号(signed)输入位的乘法。有符号输入位是有符号输入向量内的位。有符号输入向量还可以被表示为有符号输入字。为了更好地理解本文公开的用于有符号输入位与滤波器权重位的乘法的有利三元激活,首先将讨论与具有仅奇数幅度(magnitude)的输入向量的有符号乘法。如前所述,输入向量的有符号实现通常限制有符号输入向量的输入位被视为表示-1或1。例如,输入位的二进制0可以被映射到-1,而二进制1被映射到1。在这种映射中,有符号的输入向量继而只能表示奇数。例如,输入向量[-1,-1,-1]表示有符号值-7。类似地,输入向量[1,1,1]表示有符号值7。以该方式,仅奇数有符号表示中的3位宽输入向量可以表示奇数值-7、-5、-3、-1、1、3、5和7,具体取决于各个输入位的二进制值。
在一种实现中,L开关和R开关中的每个开关使用传输门来进行实现。传输门可以传递强0(通过传输门传递接地)和强1(通过传输门传递供电电压VDD),但需要p型金属氧化物半导体(PMOS)晶体管和n型金属氧化物半导体(NMOS)晶体管两者。单个晶体管(诸如PMOS晶体管)也可以用于实现每个L开关和R开关,但PMOS晶体管不能传递强0,而只能传递强1和弱0(正电压而不是接地,这是由于晶体管阈值电压要求)。
存储器内计算位单元100用于执行输入位与滤波器权重位的乘法的操作阶段的数目,取决于强0和强1两者是否可以被开关实现传递。在乘法中,最终结果将是输出节点105接地(传递强0),或输出节点105充电至供电电压VDD(传递强1)。由于L开关和R开关的PMOS实现不能传递强0,所以输出节点105首先在预充电阶段中被接地。但L开关和R开关的传输门实现可以传递强0,因此传输门实现中不需要预充电阶段。下面对仅奇数有符号乘法的讨论将假设L开关和R开关是传输门,以使乘法通过操作的计算阶段和操作的累加阶段进行。相反,如果使用PMOS晶体管来实现L开关和R开关,则操作的预充电阶段是必要的,以使输出节点105可以初始被放电(例如,接地)为二进制0。接下来的计算阶段继而可以使输出节点105放电以表示二进制0,或者可以将输出节点105充电至供电电压VDD以表示二进制1。
在计算阶段之前,通过接通预充电PMOS晶体管P1来对读取位线进行预充电。预充电晶体管P1的源极连接到用于共模电压VCM的节点。该共模电压VCM在一些实现中可以等于供电电压VDD,或者在备选实现中可以是供电电压VDD的一部分。在不失一般性的情况下,以下讨论将假设共模电压VCM等于供电电压VDD的二分之一。无论是否存在预充电阶段,预充电晶体管P1在计算阶段期间都保持导通,以保持读取位线充电至共模电压VCM。
在计算阶段中,如果输入位是二进制0(其映射到-1,如上所述),则R开关闭合,并且L开关断开。如果滤波器权重位是二进制1,则R开关继而将0传递到接地输出节点105,以使电容器C被充电至参考电压VCM。相反,如果滤波器权重位是二进制0,则输出节点105在计算阶段期间被充电至供电电压VDD,使得电容器C在参考电压VCM等于供电电压VDD的实现中被放电。
如果输入位是二进制1,则以互补的方式控制开关。在该情况下,在计算阶段期间,L开关闭合,并且R开关断开。如果滤波器权重位是二进制1,则输出节点105被充电至供电电压VDD,使得电容器C被充电至-VCM。如果滤波器权重位是0,则输出节点105保持放电,使得电容器C保持充电至VCM。
输入位还可以被表示为作为激活向量的一部分的激活位。对于输入向量具有仅奇数幅度的实现,在计算阶段中激活(Act)位、滤波器权重位(Wt)和输出节点(Out)的二进制状态之间的所得关系可以被总结在下面的表1中:
表1
因此可以看出,输出节点电压的二进制状态(0表示接地,并且1表示供电电压VDD)是激活位和滤波器权重位的异非或(XNOR),使得所得CiM计算可以被指定为基于XNOR的计算。
累加阶段跟随计算阶段。在累加阶段中,预充电晶体管P1被关断,以使读取位线浮置。输出节点105继而被接地。如果电容器C在计算阶段中被充电至-VCM,则读取位线电压继而被拉至低于共模电压VCM。相反,如果电容器C在计算阶段中保持充电,则读取位线电压在累加阶段中不受影响。注意,读取位线跨包括位单元100的CiM位单元的列(图1中未图示)延伸。因此,在累加阶段中,用于该列的电容器C通过相应输出节点105的接地而全部使其下极板接地。电容器C全部具有耦合到读取位线的上极板或端子。因此,读取位线在累加阶段中累加来自所有电容器C的共享电荷。
由于激活位是二进制0或二进制1,因此对应的仅奇数幅度激活向量(从其导出激活位)的负号和正号的表示可能需要将0映射到-1(1仍然是1)。尽管所得的基于XNOR的计算比使用常规的冯·诺依曼计算机架构更有效,但有符号激活向量的仅奇数的限制降低了计算精度。此外,在从计算阶段转换到累加阶段时,电容器C的充电和放电可能消耗大量能量。
为了降低功耗并且增加精度,为电容性CiM位单元提供了三元计算方案。电容性CiM位单元可以如先前针对基于XNOR的计算方案中的CiM位单元100所讨论的那样来进行布置。因此存在L开关和R开关,L开关和R开关在三元计算中被控制。如果这些L开关和R开关是传输门,则仅需要计算阶段和执行阶段。如果改为使用PMOS晶体管来形成L开关和R开关,则可以包括预充电阶段,如下面将进一步讨论的。
图2中示出了示例CiM位单元200的传输门实现。反相器120和125、读取位线RBL和预充电晶体管P1如针对位单元100所讨论的那样进行布置。滤波器权重位节点wt(反相器120的输出)通过形成L开关的传输门T1耦合到输出节点105。电容器C耦合在输出节点105与读取位线RBL之间,如针对位单元100讨论的。与NMOS晶体管M1并联布置的PMOS晶体管P2形成传输门T1。激活位信号(Act)控制晶体管M1的栅极,而激活位信号的补码(ActB)控制晶体管P2的栅极。因此,当激活位信号为真(高有效实现中的二进制1)时,传输门T1闭合,并且当激活位信号为假(高有效实现中的二进制0)时,传输门T1断开。应当理解,在备选实现中可以使用低有效激活位信号。
形成R开关的传输门T2是类似的,因为它也由PMOS晶体管P3和NMOS晶体管M2的并联组合形成。补码激活位信号(ActB)控制晶体管M2的栅极,而激活位信号(Act)控制晶体管P3的栅极。因此,当激活位信号为假(高有效实现中的二进制0)时,传输门T2闭合,并且当激活位信号为真(高有效实现中的二进制1)时,传输门T2断开。由于传输门T1和T2可以传递强1和强0两者,因此在通过晶体管P1的接通对读取位线进行预充电时,不需要位单元200将输出节点105接地的预充电操作阶段。
现在参考图3,示出了备选的存储器内计算位单元300,其中L开关和R开关不能传递强0。反相器120和125、读取位线RBL和预充电晶体管P1如针对位单元100讨论的那样进行布置。PMOS晶体管P2形成L开关,该L开关耦合在滤波器权重位节点wt与输出节点105之间。PMOS晶体管P3形成R开关,R开关耦合在补码滤波器权重位节点wtb与输出节点105之间。电容器C耦合在输出节点105与读取位线之间,如针对位单元100和200讨论的。补码激活位信号ActB控制晶体管P2的栅极。因此,当激活位信号Act为真时,左开关被接通。类似地,激活位信号Act控制晶体管P3的栅极,使得当激活位信号为假时,晶体管P3被接通。
由于晶体管P2和P3都不能传递强0,因此输出节点105在操作的预充电阶段中由NMOS复位晶体管M3初始地放电。晶体管M3的源极连接到接地,而其漏极连接到输出节点105。读取字线(RWL)控制晶体管M3的栅极。读取字线RWL在初始预充电阶段期间被断言,在该初始预充电阶段期间,预充电晶体管P1也导通。因此,晶体管M3在预充电阶段操作期间被接通,以使电容器C可以被充电至共模电压VCM。对于诸如针对位单元200讨论的传输门实现,操作的预充电阶段是不必要的。
无论是否使用操作的预充电阶段,有符号激活向量的符号都可以由符号位来表示。用于有符号激活向量的激活位(其也可以被表示为幅度位)可以如在常规的二进制字中那样从最低有效位(LSB)到最高有效位(MSB)布置。例如,在三位宽的有符号激活向量中,激活位的范围可以从[000]到[111]。在这种三位宽的实现中,例如,有符号激活向量值5或-5的激活位部分因此可以都由[011]表示。符号位是0或1,以分别表示有符号激活向量的负号或正号。如果符号位与激活位相乘,则结果可以具有以下四个可能值中的一者:-1、-0、0和1。
给定符号位与激活位相乘的这四个可能值,三元计算中的计算阶段与之前讨论的常规的基于XNOR的计算完全不同。在基于XNOR的计算中,L开关和R开关的控制取决于激活位的二进制状态。但在三元计算阶段中,L开关和R开关的控制仅取决于符号位,如下表2中所示。
表2
在计算阶段中,如果符号位为正(在高有效实现中,等于1),则无论激活位的值如何,L开关闭合并且R开关断开。预充电晶体管P1在计算阶段期间保持导通。相反,如果符号位为负(在高有效实现中,等于0),则在计算阶段期间,R开关闭合,并且L开关断开。同样,通过负符号位对R开关和L开关的控制与对应激活位的值无关。
在计算阶段之后的操作的执行阶段期间,预充电晶体管P1被关断,以使读取位线相对于用于共模电压VCM的节点浮置。如果激活位是二进制1,则L开关和R开关在执行阶段中的闭合/断开开关状态,与L开关和R开关在计算阶段期间所处的任何开关状态相反。换句话说,如果L开关或R开关在计算阶段期间闭合,则如果激活位是二进制1,则相同的开关在执行阶段期间将断开。类似地,如果L开关或R开关在计算阶段期间断开,则如果激活位是二进制1,则相同的开关在执行阶段期间将闭合。如果激活位是二进制0,则计算阶段的L开关和R开关的闭合/断开开关状态在执行阶段期间保持不变。
注意电容性CiM位单元的三元操作与基于XNOR的操作之间的差异。在基于XNOR的操作中,累加阶段总是将输出节点105接地。但是在三元执行阶段中,输出节点105的二进制状态可以是1(充电至供电电压VDD)或0(放电至接地)。在执行阶段期间,输出节点105因此可以从接地提升到供电电压(VDD)、保持放电到接地、保持充电至供电电压VDD,或者从供电电压VDD放电到接地。给定输出节点电压的这四种可能结果,因此可以理解,所产生的操作实际上是三元的,因为如果在执行阶段中输出节点电压从接地转换到VDD,则读取位线电压可以被提升到共模电压VCM以上。相反,如果输出节点在计算和执行阶段两者中都保持接地,则读取位线电压保持不变(等于共模电压)。类似地,如果输出节点在计算和执行阶段两者中都保持充电至供电电压VDD,则读取位线电压不变。最后,如果输出节点电压在执行阶段中从计算阶段中的供电电压VDD转换为接地,则读取位线电压在执行阶段中从共模电压减小。
在基于XNOR的计算中,累加阶段只能将读取位线电压从共模电压放电,而不存在读取位线电压从共模电压的增加。因此,在基于三元的计算中,读取位线的输出电压摆幅是根据基于XNOR的计算产生的输出电压摆幅的两倍。基于三元的计算的该增加的输出电压摆幅对于减少计算中的模数转换噪声是有利的,如本文将进一步说明的。
因此,三元计算将与基于XNOR的计算不同地运行。在基于XNOR的计算中,没有符号位,因此L开关和R开关两者在预充电阶段(如果存在)期间都断开,然后控制器在计算阶段期间基于激活位来控制这些开关。但在三元计算中,L开关和R开关的控制器400在计算阶段期间将查看符号位以控制左开关和右开关,然后在执行阶段期间查看激活位,如图4中所示。例如,有符号激活向量可以被存储在缓冲器410中,缓冲器410包括第一存储元件和多个附加存储元件。用于控制器400的计算/执行控制信号415根据是计算阶段还是执行阶段是活动的,来控制多路复用器405从缓冲器410选择。在计算阶段中,控制信号415控制多路复用器405从缓冲器410中的第一存储元件选择符号位。该符号位然后在计算阶段期间被逻辑电路425使用,以形成激活位信号(Act)和补码激活位信号ActB,激活位信号(Act)和补码激活位信号ActB控制L开关(在传输门实现中)的断开/闭合状态。反相器420在概念上表示R开关的开关状态与L开关的开关状态互补。如关于位单元200讨论的,Act和ActB激活位信号除了控制L开关的开关状态之外,还控制R开关的开关状态。
在计算阶段之后的执行阶段中,控制信号415根据当前计算的幅度(位有效值(bitsignificance)),来控制从缓冲器410中的多个附加存储元件选择激活位。例如,第一执行周期可以从LSB激活位M0开始。在连续的执行周期中,选择下一个最有效的激活位。在缓冲器410中,激活位的范围是从LSB激活位M0到MSB激活位M6。然而,应当理解,可以使用位的备选排列,诸如在其他实现中从MSB到LSB进行选择。因此,这种有符号的七位宽激活向量的乘法涉及七个连续的计算和执行阶段,每个执行阶段针对相应的激活位,并且每个计算阶段响应于相同的符号位。取决于所选择激活位的二进制值,逻辑电路425或者将L开关和R开关在执行阶段的断开/闭合开关状态从其在计算阶段中的状态反转,或者使它们保持不变,如关于表2讨论的。在执行阶段之后,诸如通过模数转换器,从读取位线电压感测有符号激活位与存储的滤波器权重位的基于三元的乘法,如本文将进一步讨论的。
关于图5的四个示例性计算和执行周期的示例切换波形,可以更好地理解基于三元的计算的有利功耗减少。在第一波形集合500中,滤波器权重位是二进制1。在第二波形集合505中,滤波器权重位是二进制0。对于连续的计算和执行阶段,预充电晶体管P1的导通和关断状态对于波形500和505两者是共用的。在这些波形中,电容器C的下极板的二进制状态(充电至供电电压VDD或接地)被表示为Cbot。该下极板是电容器C的连接到输出节点105的极板。相反,电容器C的连接到读取位线的极板可以被表示为上极板。
如前所述,符号位与激活位相乘以形成有符号激活位,导致四个可能值中的一种可能值:+1、+0、-0和-1。波形500开始于针对-1值的计算阶段。在该计算阶段中,由于-1激活的负号,R开关导通,并且L开关关断。由于滤波器权重位是二进制1,因此补码滤波器权重位是二进制0。该二进制0通过接通的R开关传导,以将Cbot极板接地。在执行阶段中,激活位的二进制1幅度强制L和R的开关状态反转。因此,针对-1执行阶段,L开关导通,并且R开关关断。L开关的接通允许滤波器权重位的二进制1值将电容器C的Cbot极板充电至供电电压VDD。
在-1激活之后是500波形的+0激活值。因此,针对+0激活,L开关在计算阶段中保持导通,而R开关保持关断。因此,在该计算阶段期间,Cbot电压保持被充电至供电电压VDD。在针对+0激活的后续执行阶段中,因为+0激活的幅度是0,所以开关状态不变。因此,Cbot电压保持充电至供电电压VDD。与Cbot电压在累加阶段期间始终被接地的常规的基于XNOR的方法相比,这意味着功耗减少。
+1激活跟随+0激活。因此,在波形500中,L开关在针对+1激活的计算阶段期间导通,而R开关关断。L开关的接通允许滤波器权重位的二进制1值继续将Cbot电压充电至供电电压VDD。在后续的执行阶段中,L开关和R开关的开关状态被反转,以便Cbot电压由于R开关的接通而被接地。
-0激活跟随+1激活(注意,激活的顺序取决于正被处理的激活向量,波形500和505使用特定的激活顺序,以便示出所有可能的激活值)。由于激活具有负号,因此在波形500中的针对-0激活的计算阶段期间,R开关闭合并且L开关断开,以继续Cbot电压的接地。在后续的执行阶段中,由于激活幅度的二进制0,R开关保持闭合,并且L开关保持断开。因此,Cbot电压在针对-0激活的计算和执行周期期间保持不变,与执行常规的基于XNOR的计算时可能出现的改变Cbot电压相比,这也减少了功耗。
现在将讨论波形505。如前所述,对于波形505,滤波器权重位是二进制0。R和L开关状态(导通或关断)将如针对波形500讨论的那样,这是因为这些开关状态仅取决于激活。对于+0激活,因为Cbot电压保持被接地,所以波形505表示相对于常规的基于XNOR的方法的功率节省。特别地,因为L开关将导通,所以Cbot电压在针对+0激活的计算阶段期间被接地,这允许接地的滤波器权重位流过L开关,以将电容器C的下极板接地。Cbot电压的该接地状态在针对+0激活的执行阶段期间保持不变,这是因为二进制0幅度使L开关和R开关的开关状态与计算阶段值保持不变。此外,用于505波形的-0激活也表示相对于常规的基于XNOR的方法的功率节省。特别地,在针对-0激活的计算阶段期间,-0激活的负值使得R开关导通,并且使得L开关关断,这允许补码滤波器权重位的二进制高值流过闭合的R开关,并且将Cbot电压充电至供电电压VDD。然后,由于-0激活的二进制0幅度,开关状态在波形505中的针对-0激活的后续执行阶段期间保持不变。因此,在针对-0激活的执行阶段期间,Cbot电压保持被充电至供电电压。相比之下,Cbot电压在基于XNOR的计算中会被接地。
一些示例CiM位单元阵列
如本文公开的被配置用于基于三元的计算的CiM位单元可以被组织成形成乘法和累加(MAC)电路。现在将讨论图6中所示的示例MAC电路600。MAC电路600包括多个CiM位单元,每个CiM位单元被实现为诸如针对CiM位单元100、200或300讨论的那样。一般而言,被包括在MAC电路600中的位单元的数目将取决于滤波器大小。为了说明清楚,MAC电路600被示为包括仅七个CiM位单元的列,范围从存储第零滤波器权重位W0的第零位单元到存储第六滤波器权重位W6的第六位单元。读取位线RBL跨列延伸。在基于三元的计算期间,每个位单元如关于位单元100、200或300讨论的那样操作,如关于图4、图5和表2讨论的。
可以布置多个MAC电路,以形成包括存储器阵列700的存储器,如图7中所示的。位单元100、200或300的每个列形成对应的MAC电路。例如,阵列700中的滤波器大小是128,使得阵列700中的每个列具有128个位单元100、200或300。因此激活向量720将具有128个输入样本。在存储器阵列700中,每个输入样本是多位输入样本。对于任何给定的计算和执行阶段,从每个多位样本选择激活位,以产生范围从第一激活位din1到第128激活位din128的多个激活位。每个激活向量720的符号位未被图示,但将如关于缓冲器410讨论的那样被包括。在将滤波器权重位写入到存储器阵列700的写入操作之后,每个激活向量720被顺序采样,以便每个MAC电路执行计算阶段,在计算阶段中,相应的激活位乘以对应的滤波器权重位。计算阶段跟随有执行阶段。注意,在基于XNOR的方法中,执行阶段被表示为累加阶段,因为MAC电路中的每个位单元的输出节点105被接地。来自MAC电路中的各个电容器C的电荷因此被累加到对应的读取位线上。但在基于三元的计算中,因为各个输出节点105可以被接地或保持被充电,所以电容器C上的电荷在执行阶段期间不以相同的方式进行累加,如先前讨论的。然而,执行阶段实现了相同的目标,因为读取位线电压将表示MAC电路内的所有CiM位单元的计算结果的总和(累加)。但与基于XNOR的计算不同,注意激活向量720可以具有奇数符号值和偶数符号值两者,因此计算精度增加。此外,电容器C的下极板的充电和放电减少,如关于图5指出的。注意,每个输入样本(诸如din1)可以是多位输入样本。例如,din1可以是三位宽的样本din1。由于每个CiM位单元执行二进制乘法,因此多位输入样本中的各个位由阵列700中的每个MAC电路顺序地处理。因此,每个MAC电路的顺序积分器705用于根据多位输入样本的权重(位有效值),来对累加结果进行加权。例如,假设输入向量720的每个样本是三位宽样本,范围从最低有效位(LSB)样本到最高有效位(MSB)样本。因此,每个顺序积分器705根据累加结果的位有效值,将累加结果求和。此外,滤波器权重本身可以是多位滤波器权重。由于每个CiM位单元存储二进制滤波器权重,因此一个MAC电路可以用于一个滤波器权重位(例如,LSB权重),相邻MAC电路可以用于下一个最高有效滤波器权重位,等等。在这种实施例中,三个相邻的MAC电路将被用于三位宽滤波器权重的实施例。多位权重求和电路710将对应的MAC累加值(在多位输入样本的情况下,根据需要,通过对应的顺序积分器705处理)累加,并且根据滤波器权重位的二进制权重对MAC累加值进行求和。最后,模数转换器(ADC)715将最终累加结果数字化。然而,由于如前所述三元激活提供的读取位线上的输出电压摆幅加倍,该数字化被显著改进。
现在将参考图8的流程图讨论控制CiM位单元将存储位与有符号输入位相乘的方法。方法包括动作800,动作800在操作的第一阶段期间并且响应于有符号输入位的符号具有第一二进制值而发生,并且包括:闭合耦合在用于存储位的节点与输出节点之间的第一开关,并且断开耦合在用于存储位的补码的节点与输出节点之间的第二开关。响应于激活为正而闭合L开关并且断开R开关是动作800的一个示例。方法还包括动作805,动作805在操作的第一阶段期间并且响应于有符号位的符号具有第二二进制值而发生,并且包括断开第一开关并闭合第二开关。响应于激活为负而断开L开关并且闭合R开关是动作805的一个示例。方法还包括动作810,动作810在操作的第二阶段期间并且响应于有符号输入位的幅度具有第一二进制值而发生,并且包括反转在操作的第一阶段期间建立的第一开关和第二开关的开关状态。响应于激活的幅度是二进制1而切换L开关和R开关的开关状态是动作810的一个示例。最后,方法包括动作815,动作815在操作的第二阶段期间并且响应于有符号输入位的幅度具有第二二进制值而发生,并且包括将在操作的第一阶段期间建立的第一开关和第二开关的开关状态保持不变。在执行阶段期间,响应于激活的幅度是二进制0来控制L开关和R开关以具有与在计算阶段中建立的开关状态相同的开关状态是动作815的一个示例。
如本文公开的具有三元激活的存储器内计算位单元可以有利地被合并在任何适当的移动设备或电子系统中。例如,如图9中所示,根据本公开,蜂窝电话900、膝上型计算机905和平板PC 910都可以包括存储器内计算,该存储器内计算具有诸如用于机器学习应用的存储器内计算位单元。其他示例性电子系统(诸如音乐播放器、视频播放器、通信设备和个人计算机)也可以被配置有根据本公开构建的存储器内计算。
现在将在以下一系列示例条项中总结本公开:
条项1.一种存储器,包括:
位单元,具有连接到输出节点的开关对;
电容器,耦合到所述输出节点;
第一存储元件和多个附加存储元件;以及
控制器,被配置为在所述存储器的操作的第一阶段期间,从所述第一存储元件选择第一位,以响应于所述第一位来控制所述开关对,并且被配置为在所述存储器的操作的第二阶段期间,从所述多个附加存储元件选择第二位,以响应于所述第二位来控制所述开关对。
条项2.根据条项1所述的存储器,还包括:
位线,其中所述电容器包括耦合到所述输出节点的第一端子以及耦合到所述位线的第二端子。
条项3.根据条项1-2中任一项所述的存储器,其中所述第一存储元件被配置为存储符号位,并且所述多个附加存储元件被配置为存储多个幅度位。
条项4.根据条项3所述的存储器,其中所述控制器包括多路复用器,所述多路复用器被配置为在操作的所述第一阶段期间选择所述符号位,并且在操作的所述第二阶段期间从所述多个幅度位选择第二位。
条项5.根据条项4所述的存储器,其中所述控制器还被配置为:在操作的所述第一阶段期间,响应于所述第一位具有第一二进制值,闭合所述开关对中的第一开关并且断开所述开关对中的第二开关,以及响应于所述第二位具有第二二进制值,断开所述第一开关并且闭合所述第二开关,所述第二二进制值是所述第一二进制值的补码。
条项6.根据条项5所述的存储器,其中所述控制器还被配置为:在操作的所述第二阶段期间,响应于所述第二位具有所述第一二进制值,反转所述第一开关和所述第二开关的开关状态,以及响应于所述第二位具有所述第二二进制值,维持所述第一开关和所述第二开关的开关状态。
条项7.根据条项2-6中任一项所述的存储器,其中所述位单元包括第一反相器,所述第一反相器与第二反相器交叉耦合,并且其中所述开关对包括耦合在所述第一反相器的输出节点与所述输出节点之间的第一开关,并且包括耦合在所述第二反相器的输出节点与所述输出节点之间的第二开关。
条项8.根据条项7所述的存储器,其中所述第一开关包括第一传输门,并且其中所述第二开关包括第二传输门。
条项9.根据条项7-8中任一项所述的存储器,其中所述第一开关和所述第二开关是耦合到所述输出节点的仅有开关。
条项10.根据条项7所述的存储器,还包括耦合在所述输出节点与接地之间的第三开关。
条项11.根据条项10所述的存储器,其中所述控制器还被配置为:在操作的所述第一阶段之前的操作的预充电阶段期间,接通所述第三开关,以及在操作的所述第一阶段期间和在操作的所述第二阶段期间关断所述第三开关。
条项12.根据条项10-11中任一项所述的存储器,其中所述第一开关是第一p型金属氧化物半导体(PMOS)晶体管,所述第二开关是第二PMOS晶体管,并且所述第三开关是n型金属氧化物半导体(NMOS)晶体管。
条项13.根据条项7所述的存储器,还包括:耦合在用于共模电压的节点与所述位线之间的第三开关,其中所述控制器还被配置为:在操作的所述第一阶段期间闭合所述第三开关,以及在操作的所述第二阶段期间断开所述第三开关。
条项14.根据条项13所述的存储器,其中所述第三开关是第一PMOS晶体管。
条项15.根据条项1-14中任一项所述的存储器,其中所述存储器被合并在蜂窝电话中。
条项16.一种控制位单元以将存储位与有符号输入位相乘的方法,包括:
在操作的第一阶段期间并且响应于所述有符号输入位的符号具有第一二进制值,闭合耦合在用于所述存储位的节点与输出节点之间的第一开关,并且断开耦合在用于所述存储位的补码的节点与所述输出节点之间的第二开关;
在操作的所述第一阶段期间并且响应于所述有符号位的所述符号具有第二二进制值,断开所述第一开关并且闭合所述第二开关;
在操作的第二阶段期间并且响应于所述有符号输入位的幅度具有所述第一二进制值,反转在操作的所述第一阶段期间建立的所述第一开关和所述第二开关的开关状态;以及
在操作的所述第二阶段期间并且响应于所述有符号输入位的所述幅度具有所述第二二进制值,保持在操作的所述第一阶段期间建立的所述第一开关和所述第二开关的所述开关状态不变。
条项17.根据条项16所述的方法,其中所述第一二进制值是二进制1值,并且其中所述第二二进制值是二进制0值。
条项18.根据条项16-17中任一项所述的方法,还包括:
在操作的所述第一阶段期间,将位线连接到用于共模电压的节点,其中所述位线通过电容器耦合到所述输出节点。
条项19.根据条项18所述的方法,还包括:
在操作的所述第二阶段期间,将所述位线从用于所述共模电压的所述节点断开连接。
条项20.一种存储器,包括:
位单元,被配置为对存储位进行存储,所述位单元包括耦合在用于所述存储位的节点与输出节点之间的第一开关以及耦合在用于所述存储位的补码的节点与所述输出节点之间的第二开关;
电容器,具有连接到所述输出节点的第一极板;以及
控制器,被配置为:在操作的第一阶段中,响应于输入字的符号位具有第一二进制值,而断开所述第二开关并且闭合所述第一开关,以及响应于所述符号位具有第二二进制值,而断开所述第一开关并且闭合所述第二开关,以控制所述第一开关和所述第二开关的开关状态,其中所述第二二进制值是所述第一二进制值的补码。
条项21.根据条项20所述的存储器,还包括:
位线,耦合到所述电容器的第二极板。
条项22.根据条项20-21中任一项所述的存储器,还包括:
输入缓冲器,用于存储所述输入字,其中所述控制器还被配置为:在操作的第二阶段期间,响应于所述输入缓冲器中的被选择的幅度位具有所述第一二进制值,反转所述第一开关和所述第二开关的所述开关状态。
条项23.根据条项22所述的存储器,其中所述控制器还被配置为:在操作的所述第二阶段期间,响应于所述输入缓冲器中的所述被选择的幅度位具有所述第二二进制值,维持所述第一开关和所述第二开关的所述开关状态。
条项24.根据条项20-23中任一项所述的存储器,其中所述存储器被包括在乘法和累加电路中,所述乘法和累加电路包括多个附加位单元,每个附加位单元包括对应的电容器。
条项25.根据条项24所述的存储器,还包括存储器阵列,所述存储器阵列包括多个列,并且其中所述乘法和累加电路被配置为形成所述多个列中的列。
条项26.根据条项25所述的存储器,还包括:
多个模数转换器,所述多个模数转换器与所述多个列一对一地对应。
条项27.根据条项26所述的存储器,其中每个模数转换器是多位模数转换器。
条项28.一种用于存储器内计算的操作的方法,包括:
在操作的第一阶段期间,响应于符号位来控制耦合在位单元中的反相器对与电容器的极板之间的开关对;以及
在操作的第二阶段期间,响应于幅度位来控制所述开关对。
条项29.根据条项28所述的方法,其中在操作的所述第一阶段期间控制所述开关对包括:响应于所述符号位具有第一二进制值,闭合所述开关对中的第一开关并且断开所述开关对中的第二开关。
条项30.根据条项29所述的方法,其中在操作的所述第一阶段期间控制所述开关对还包括:响应于所述符号位具有第二二进制值,而断开所述第一开关并且闭合所述第二开关,所述第二二进制值是所述第一二进制值的补码。
应当理解,在不脱离本公开的范围的情况下,可以对本公开的材料、装置、配置和设备的使用方法进行许多修改、替换和变化。鉴于此,本公开的范围不应当限于本文图示和描述的特定实施例的范围(因为它们仅是作为其一些示例),而是应当与此后所附权利要求及其功能等同物的范围完全相称。

Claims (30)

1.一种存储器,包括:
位单元,具有连接到输出节点的开关对;
电容器,耦合到所述输出节点;
第一存储元件和多个附加存储元件;以及
控制器,所述控制器被配置为:在所述存储器的操作的第一阶段期间,从所述第一存储元件选择第一位,以响应于所述第一位来控制所述开关对,并且被配置为:在所述存储器的操作的第二阶段期间,从所述多个附加存储元件选择第二位,以响应于所述第二位来控制所述开关对。
2.根据权利要求1所述的存储器,还包括:
位线,其中所述电容器包括耦合到所述输出节点的第一端子以及耦合到所述位线的第二端子。
3.根据权利要求1所述的存储器,其中所述第一存储元件被配置为存储符号位,并且所述多个附加存储元件被配置为存储多个幅度位。
4.根据权利要求3所述的存储器,其中所述控制器包括多路复用器,所述多路复用器被配置为:在操作的所述第一阶段期间选择所述第一位,并且在操作的所述第二阶段期间选择所述第二位。
5.根据权利要求1所述的存储器,其中所述控制器还被配置为:在操作的所述第一阶段期间,响应于所述第一位具有第一二进制值,闭合所述开关对中的第一开关并且断开所述开关对中的第二开关,以及响应于所述第一位具有第二二进制值,断开所述第一开关并且闭合所述第二开关,所述第二二进制值是所述第一二进制值的补码。
6.根据权利要求5所述的存储器,其中所述控制器还被配置为:在操作的所述第二阶段期间,响应于所述第二位具有所述第一二进制值,反转所述第一开关和所述第二开关的开关状态,以及响应于所述第二位具有所述第二二进制值,维持所述第一开关和所述第二开关的开关状态。
7.根据权利要求1所述的存储器,其中所述位单元包括第一反相器,所述第一反相器与第二反相器交叉耦合,并且其中所述开关对包括耦合在所述第一反相器的输出节点与所述输出节点之间的第一开关,并且包括耦合在所述第二反相器的输出节点与所述输出节点之间的第二开关。
8.根据权利要求7所述的存储器,其中所述第一开关包括第一传输门,并且其中所述第二开关包括第二传输门。
9.根据权利要求7所述的存储器,其中所述第一开关和所述第二开关是耦合到所述输出节点的仅有开关。
10.根据权利要求7所述的存储器,还包括耦合在所述输出节点与接地之间的第三开关。
11.根据权利要求10所述的存储器,其中所述控制器还被配置为:在操作的所述第一阶段之前的操作的预充电阶段期间,接通所述第三开关,以及在操作的所述第一阶段期间和在操作的所述第二阶段期间关断所述第三开关。
12.根据权利要求10所述的存储器,其中所述第一开关是第一p型金属氧化物半导体(PMOS)晶体管,所述第二开关是第二PMOS晶体管,并且所述第三开关是n型金属氧化物半导体(NMOS)晶体管。
13.根据权利要求7所述的存储器,还包括:耦合在用于共模电压的节点与所述位线之间的第三开关,其中所述控制器还被配置为:在操作的所述第一阶段期间闭合所述第三开关,以及在操作的所述第二阶段期间断开所述第三开关。
14.根据权利要求13所述的存储器,其中所述第三开关是第一PMOS晶体管。
15.根据权利要求1所述的存储器,其中所述存储器被合并在蜂窝电话中。
16.一种控制位单元以将存储位与有符号输入位相乘的方法,包括:
在操作的第一阶段期间并且响应于所述有符号输入位的符号具有第一二进制值,闭合耦合在用于所述存储位的节点与输出节点之间的第一开关,并且断开耦合在用于所述存储位的补码的节点与所述输出节点之间的第二开关;
在操作的所述第一阶段期间并且响应于所述有符号位的所述符号具有第二二进制值,断开所述第一开关并且闭合所述第二开关;
在操作的第二阶段期间并且响应于所述有符号输入位的幅度具有所述第一二进制值,反转在操作的所述第一阶段期间建立的所述第一开关和所述第二开关的开关状态;以及
在操作的所述第二阶段期间并且响应于所述有符号输入位的所述幅度具有所述第二二进制值,维持在操作的所述第一阶段期间建立的所述第一开关和所述第二开关的所述开关状态。
17.根据权利要求16所述的方法,其中所述第一二进制值是二进制1值,并且其中所述第二二进制值是二进制0值。
18.根据权利要求16所述的方法,还包括:
在操作的所述第一阶段期间,将位线连接到用于共模电压的节点,其中所述位线通过电容器耦合到所述输出节点。
19.根据权利要求18所述的方法,还包括:
在操作的所述第二阶段期间,将所述位线从用于所述共模电压的所述节点断开连接。
20.一种存储器,包括:
位单元,被配置为对存储位进行存储,所述位单元包括耦合在用于所述存储位的节点与输出节点之间的第一开关以及耦合在用于所述存储位的补码的节点与所述输出节点之间的第二开关;
电容器,具有连接到所述输出节点的第一极板;以及
控制器,被配置为:在操作的第一阶段期间,响应于输入字的符号具有第一二进制值,而断开所述第二开关并且闭合所述第一开关,以及响应于所述输入字的所述符号具有第二二进制值,而断开所述第一开关并且闭合所述第二开关,以控制所述第一开关和所述第二开关的开关状态,其中所述第二二进制值是所述第一二进制值的补码。
21.根据权利要求20所述的存储器,还包括:
位线,耦合到所述电容器的第二极板。
22.根据权利要求20所述的存储器,还包括:
输入缓冲器,用于存储所述输入字,其中所述控制器还被配置为:在操作的第二阶段期间,响应于所述输入缓冲器中的被选择的幅度位具有所述第一二进制值,反转所述第一开关和所述第二开关的所述开关状态。
23.根据权利要求22所述的存储器,其中所述控制器还被配置为:在操作的所述第二阶段期间,响应于所述输入缓冲器中的所述被选择的幅度位具有所述第二二进制值,维持所述第一开关和所述第二开关的所述开关状态。
24.根据权利要求23所述的存储器,其中所述存储器被包括在乘法和累加电路中,所述乘法和累加电路包括多个附加位单元,每个附加位单元包括对应的电容器。
25.根据权利要求24所述的存储器,还包括存储器阵列,所述存储器阵列包括多个列,并且其中所述乘法和累加电路被配置为形成所述多个列中的列。
26.根据权利要求25所述的存储器,还包括:
多个模数转换器,所述多个模数转换器与所述多个列一对一地对应。
27.根据权利要求26所述的存储器,其中每个模数转换器是多位模数转换器。
28.一种用于存储器内计算的操作的方法,包括:
在操作的第一阶段期间,响应于符号位来控制耦合在位单元与电容器的极板之间的开关对;以及
在操作的第二阶段期间,响应于幅度位来控制所述开关对。
29.根据权利要求28所述的方法,其中在操作的所述第一阶段期间控制所述开关对包括:响应于所述符号位具有第一二进制值,闭合所述开关对中的第一开关并且断开所述开关对中的第二开关。
30.根据权利要求29所述的方法,其中在操作的所述第一阶段期间控制所述开关对还包括:响应于所述符号位具有第二二进制值,断开所述第一开关并且闭合所述第二开关,所述第二二进制值是所述第一二进制值的补码。
CN202280019411.8A 2021-03-17 2022-03-10 具有三元激活的存储器内计算 Pending CN116964675A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/204,649 2021-03-17
US17/204,649 US11538509B2 (en) 2021-03-17 2021-03-17 Compute-in-memory with ternary activation
PCT/US2022/019856 WO2022197534A1 (en) 2021-03-17 2022-03-10 Compute-in-memory with ternary activation

Publications (1)

Publication Number Publication Date
CN116964675A true CN116964675A (zh) 2023-10-27

Family

ID=80952166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280019411.8A Pending CN116964675A (zh) 2021-03-17 2022-03-10 具有三元激活的存储器内计算

Country Status (8)

Country Link
US (1) US11538509B2 (zh)
EP (1) EP4309176A1 (zh)
JP (1) JP2024510970A (zh)
KR (1) KR20230136225A (zh)
CN (1) CN116964675A (zh)
BR (1) BR112023018130A2 (zh)
TW (1) TW202238593A (zh)
WO (1) WO2022197534A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11631455B2 (en) 2021-01-19 2023-04-18 Qualcomm Incorporated Compute-in-memory bitcell with capacitively-coupled write operation
US20230102492A1 (en) * 2021-09-30 2023-03-30 Stmicroelectronics International N.V. Bit-cell architecture based in-memory compute

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102359A1 (en) * 2018-09-28 2019-04-04 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
WO2019246064A1 (en) * 2018-06-18 2019-12-26 The Trustees Of Princeton University Configurable in-memory computing engine, platform, bit cells and layouts therefore
CN110751276A (zh) * 2018-07-24 2020-02-04 闪迪技术有限公司 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
CN111816234A (zh) * 2020-07-30 2020-10-23 中科院微电子研究所南京智能技术研究院 一种基于sram位线同或的电压累加存内计算电路
WO2021002990A1 (en) * 2019-07-03 2021-01-07 Qualcomm Incorporated Compute-in-memory bit cell

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195631A1 (en) * 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US9153314B2 (en) * 2013-03-15 2015-10-06 Nvidia Corporation Ground-referenced single-ended memory interconnect
US9722828B2 (en) 2015-09-23 2017-08-01 Qualcomm Incorporated Switch capacitor decision feedback equalizer with internal charge summation
US11263522B2 (en) 2017-09-08 2022-03-01 Analog Devices, Inc. Analog switched-capacitor neural network
US11061646B2 (en) 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
FR3086788B1 (fr) 2018-10-01 2020-11-20 Commissariat Energie Atomique Circuit memoire imc a cellules 6t
WO2020139895A1 (en) 2018-12-24 2020-07-02 The Trustees Of Columbia University In The City Of New York Circuits and methods for in-memory computing
US10825510B2 (en) 2019-02-09 2020-11-03 Purdue Research Foundation Multi-bit dot product engine
US11755894B2 (en) 2019-04-09 2023-09-12 Cirrus Logic Inc. Computing circuitry for configuration and operation of cells and arrays comprising memristor elements
GB2583121B (en) 2019-04-17 2021-09-08 Surecore Ltd In memory computation
US11758707B2 (en) 2019-12-19 2023-09-12 Stmicroelectronics International N.V. SRAM cell layout including arrangement of multiple active regions and multiple gate regions
US11631455B2 (en) 2021-01-19 2023-04-18 Qualcomm Incorporated Compute-in-memory bitcell with capacitively-coupled write operation
CN113255904B (zh) 2021-06-22 2021-09-24 中科院微电子研究所南京智能技术研究院 电压裕度增强型电容耦合存算一体单元、子阵列及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019246064A1 (en) * 2018-06-18 2019-12-26 The Trustees Of Princeton University Configurable in-memory computing engine, platform, bit cells and layouts therefore
CN110751276A (zh) * 2018-07-24 2020-02-04 闪迪技术有限公司 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
US20190102359A1 (en) * 2018-09-28 2019-04-04 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
WO2021002990A1 (en) * 2019-07-03 2021-01-07 Qualcomm Incorporated Compute-in-memory bit cell
CN111816234A (zh) * 2020-07-30 2020-10-23 中科院微电子研究所南京智能技术研究院 一种基于sram位线同或的电压累加存内计算电路

Also Published As

Publication number Publication date
TW202238593A (zh) 2022-10-01
BR112023018130A2 (pt) 2023-10-31
EP4309176A1 (en) 2024-01-24
KR20230136225A (ko) 2023-09-26
JP2024510970A (ja) 2024-03-12
US11538509B2 (en) 2022-12-27
WO2022197534A1 (en) 2022-09-22
US20220301605A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US20160232951A1 (en) Compute memory
US11024358B1 (en) Differential compute-in-memory bitcell
CN116964675A (zh) 具有三元激活的存储器内计算
US11574173B2 (en) Power efficient near memory analog multiply-and-accumulate (MAC)
CN115039177A (zh) 低功耗存储器内计算位单元
US11372622B2 (en) Time-shared compute-in-memory bitcell
US20220244916A1 (en) Compute in memory
US11018687B1 (en) Power-efficient compute-in-memory analog-to-digital converters
EP4133487B1 (en) Charge-pump-based current-mode neuron for machine learning
US11823035B2 (en) Power-efficient compute-in-memory pooling
TW202201396A (zh) 記憶體內計算動態隨機存取記憶體
CN114093394B (zh) 一种可转置存内计算电路及其实现方法
CN116670763A (zh) 具有电容性耦合写入操作的存储器内计算位单元
CN116204490A (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
Saragada et al. An in-memory architecture for machine learning classifier using logistic regression
CN118312468A (zh) 一种带符号乘法的存内运算电路及cim芯片
TW202340932A (zh) 混合存算一體記憶體
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路
CN115701637A (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