CN117916802A - 混合存储器内计算架构 - Google Patents

混合存储器内计算架构 Download PDF

Info

Publication number
CN117916802A
CN117916802A CN202280059164.4A CN202280059164A CN117916802A CN 117916802 A CN117916802 A CN 117916802A CN 202280059164 A CN202280059164 A CN 202280059164A CN 117916802 A CN117916802 A CN 117916802A
Authority
CN
China
Prior art keywords
computing architecture
bit
switch
capacitor
memory computing
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
CN202280059164.4A
Other languages
English (en)
Inventor
F·I·阿塔拉
H·H·阮
C·B·韦里利
N·瓦伊德亚纳坦
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 CN117916802A publication Critical patent/CN117916802A/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/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
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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
    • 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
    • G06N3/065Analogue 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/227Timing of memory operations based on dummy memory elements or replica circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Analogue/Digital Conversion (AREA)
  • Networks Using Active Elements (AREA)

Abstract

提供了一种实现用于神经网络中的层的滤波器的存储器内计算阵列。该滤波器通过来自多个电容器的电荷累加,将多个激活位乘以多个通道中的每个通道的多个滤波器权重位。所累加的电荷被数字化以提供该滤波器的输出。

Description

混合存储器内计算架构
技术领域
本申请涉及存储器内计算架构(compute-in-memory),并且更具体地涉及一种混合存储器内计算架构。
背景技术
数据的数字处理通常使用冯·诺依曼(Von Neumann)架构,其中从存储器检索数据以在算术和逻辑单元(ALU)中处理。在诸如机器学习的计算密集型应用中,来自和去往存储器的数据流可能成为处理速度的瓶颈。已经开发了存储器内计算架构,其中数据处理硬件分布在位单元上。与传统的数字计算机相比,存储器内计算架构可以降低功耗,因为不需要将数据传输到处理单元。此外,存储器内计算架构降低了功耗,因为存储器内计算架构在模拟域中执行乘法和求和运算,例如通过累加来自多个电容器的电荷。
尽管节省了功率,但存储器内计算架构通常需要模数转换器(ADC)来将由累加的电荷产生的电压转换成数字值。为了最小化ADC功耗,通常利用逐次逼近或斜率ADC,但是这降低了运行速度。为了具有与传统数字计算相同的精度,需要高分辨率ADC,但是运行速度可能再次降低并且功耗增加。因此,对于每秒需要数万亿次运算的边缘和服务器机器学习应用,通常的是,与存储器内计算架构计算相比,使用传统的数字架构以增加功耗为代价。
发明内容
根据本公开的一个方面,提供了一种存储器内计算架构,该存储器内计算架构包括:多个第一开关对,该多个第一开关对对应于多个第一位,每个第一开关对包括由该多个第一位中的对应第一位控制的第一开关,并且包括由第二位控制的第二开关;多个第一电容器,该多个第一电容器对应于该多个第一开关对,每个第一电容器与该多个第一开关对中的对应第一开关对串联耦合;耦合到该多个第一电容器的第一计算线;和第一模数转换器,该第一模数转换器具有耦合到该第一计算线的输入端子。
根据本公开的另一方面,提供了一种存储器内计算架构的操作方法,该方法包括:响应于第一滤波器权重位与第一多个通道的第一多个激活位之间的第一乘法-累加运算而对第一计算线充电;使该第一计算线的电压数字化以提供第一数字数;响应于第二滤波器权重位与第二多个通道的第二多个激活位之间的第二乘法-累加运算而对第二计算线充电;使该第二计算线的电压数字化以提供第二数字数;以及将该第一数字数和该第二数字数相加以提供和。
根据本公开的又一方面,提供了一种存储器内计算架构,该存储器内计算架构包括:第一多个算术单元,该第一多个算术单元中的每个算术单元包括第一电容器;第一多个开关;第一计算线,该第一计算线通过该第一多个开关耦合到该第一多个算术单元中的每个第一电容器;和第一模数转换器,该第一模数转换器具有耦合到该第一计算线的输入端子。
通过下面的具体实施方式,可更好地理解这些和其他有利特征。
附图说明
图1例示了根据本公开的一方面的包括算术单元阵列、模数转换器以及数字加法器的混合存储器内计算架构。
图2A例示了根据本公开的一方面的用于混合存储器内计算架构的示例算术单元。
图2B例示了图2A的算术单元的一些示例操作波形。
图3A例示了根据本公开的一方面的示例自定时复制电路。
图3B例示了图3A的自定时复制电路的一些示例操作波形。
图4例示了根据本公开的一方面的被配置为在多个滤波器权重与单个通道的多个激活位之间执行乘法-累加运算的混合存储器内计算架构的一部分。
图5例示了根据本公开的一方面的包括被配置为在多个滤波器权重位与多个通道的多个激活位之间执行乘法-累加运算的多个位单元阵列和算术单元阵列的混合存储器内计算架构。
图6例示了根据本公开的一方面的用于计算多个通道的至少一个滤波器抽头的混合存储器内计算架构,其中该混合存储器内计算架构被划分成子阵列,每个子阵列被配置为针对该多个通道的对应子集执行该至少一个滤波器抽头的计算。
图7是根据本公开的一方面的混合存储器内计算架构的示例操作方法的流程图。
通过参考下面的具体实施方式,可最好地理解本公开的各方面及其优点。应当理解,相同的附图标记用于标识在图中的一个或多个图中例示的相同元件。
具体实施方式
提供了一种混合存储器内计算架构,该混合存储器内计算架构将传统数字计算的速度与存储器内计算架构计算的功率节省相结合。为了提供对这些有利特征的更好理解,将首先讨论神经网络中的一些背景概念。卷积神经网络(CNN)或深度神经网络(DNN)中的数据处理从输入数据开始。例如,输入数据可以是彩色图像的像素或数字语音样本等。下面的讨论将在不失一般性的情况下假设输入数据是彩色图像数据并且神经网络是卷积神经网络。为了支持彩色图像,每个像素可以具有红色分量、绿色分量和蓝色分量。可以认为给定图像的每个色彩分量形成用于CNN计算的通道。图像中的其他颜色(诸如品红色)也可以形成通道。注意,诸如图像强度的非彩色分量也可以形成它们自己的通道。
可以将CNN计算中的每个阶段指定为层。因此,在输入层中处理输入数据。然后由后续层处理给定层的输出,直到到达最终输出层。如果在输入数据中仅存在红色、绿色和蓝色分量,则CNN的初始层因此可以仅具有三个通道。但随着CNN处理从一层进行到另一层,通道的数目可以相对于初始值显著增加(或者保持相同或甚至减小值)。
CNN计算中的另一个基本概念是滤波器的概念。关于输入层中的滤波器,像素可被视为以行和列布置。例如,假设输入层的滤波器是3×3滤波器。这种滤波器大小将涉及九个像素的正方形滤波器窗口。该滤波器窗口可以被认为是由每行三个像素的3个连续行形成的。另选地,该窗口可以被认为是由每列三个像素的3个连续列形成的。将滤波器窗口中的每个像素乘以对应的滤波器权重并且求和以形成滤波器权重输出。然后跨图像对滤波器窗口进行卷积,以产生传播到下一层的滤波器权重输出的矩阵。由于存在多个通道,因此可将每个通道上的滤波器的输出求和以形成传播到下一层的滤波器权重输出。如果滤波器大小仅为1×1,则通过将一个像素与对应的滤波器权重相乘来确定任何给定层中的滤波器计算。这种滤波器可以表示为单抽头滤波器。如果滤波器大小为2×2,则所得滤波器可被视为四抽头滤波器。类似地,4×4的滤波器可被视为16抽头滤波器,等等。
给定层的输入数据可以表示为激活数据。在神经网络的初始层中,激活因此等于输入像素,而对后续层的激活由前一层的滤波器的输出形成。表达每个激活和滤波器权重的精度(位数)取决于具体实施。在下面的讨论中,将假设每个滤波器权重是4位宽(半字节)并且每个激活是一字节宽,但是应当理解,在另选的具体实施中可以使用其他位宽度。假设一层具有六十四个通道,其具有八个激活和六十四个滤波器权重。由于八个激活,每个4位滤波器权重乘以每个8位激活的乘法次数是八。因此,对于每个滤波器权重,每个通道有八次乘法运算。在64个通道上重复该乘法导致在所有通道上对每个滤波器权重进行512次乘法运算。由于存在六十四个滤波器权重,因此每个滤波器抽头存在512×64=16,384次乘法。然后必须将这16,384次乘法的结果相加,这导致大约另外16,383次加法。每个滤波器抽头的运算次数因此大约为65,500。如果以550MHz速率重复这些计算,则所得的CNN处理需要每秒约32.8万亿次运算(TOP)。
如前所述,在传统的存储器内计算(CiM)架构中实现这种相对快的计算速度是有问题的。存储器内计算位单元是有利的,因为滤波器权重位相对接近于存储滤波器权重位与对应激活位的乘法的结果的逻辑门和电容器而存储。然后可以累加多个电容器上的所得的电荷。与数字乘积和累加运算相比,电荷的这种模拟累加非常有效。但是然后在ADC中将累加的电荷转换为数字值。在ADC中实现具有足够分辨率的相对高速率的计算速度通常是昂贵且有问题的,使得传统的数字计算机用于高速神经网络计算(例如,超过10个TOP)。如本文中将进一步解释的,本文所公开的混合CiM架构有利地实现了具有CiM的功率节省的传统数字计算机架构的速度。
混合CiM架构与传统CiM架构之间存在若干显著差异。在传统CiM位单元中,滤波器权重位由一对交叉耦合的反相器存储。从交叉耦合的反相器,滤波器权重位通过由激活位控制的第一开关耦合。根据激活位的二元值,该激活位控制的第一开关要么断开以防止滤波器权重位通过,要么闭合以允许滤波器权重位传递到电容器的极板。传统的CiM位单元可包括由激活位的补码控制的第二激活位控制开关,以选择性地将滤波器权重位的补码传递到电容器极板。不管激活位控制开关是如何实现的,传统的CiM位单元不遵循静态随机存取存储器(SRAM)六晶体管位单元的铸造基本规则。SRAM六晶体管位单元在本文中表示为铸造位单元,因为铸造建立了其布局的基本规则。传统CiM位单元的阵列因此不如可比较的铸造位单元阵列那样密集。
为了有利地增加密度,混合CiM中的滤波器权重位存储在铸造位单元中。由于铸造位单元仅具有四个晶体管来形成一对交叉耦合的反相器并且具有对应的一对存取晶体管来形成总共六个晶体管,所以在铸造位单元中不存在用于将滤波器权重位与激活位相乘的任何附加开关的空间。混合CiM中的滤波器权重位与激活位的相乘因此发生在与滤波器权重位的铸造位单元相邻或接近的算术单元中。
在混合CiM的算术单元中,滤波器权重位不通过由激活位控制的开关。相反,滤波器权重位单元控制与由激活位控制的第二开关串联的第一开关。第一开关和第二开关的串联组合耦合到电容器的极板。注意,开关对中的哪个开关表示为第一开关和第二开关是任意的。因此,将混合CiM描述为包括由激活位控制的第一开关和由滤波器权重位控制的第二开关是等效的。每个开关可以由单个开关晶体管实现。开关晶体管的极性既可以均是p型金属氧化物半导体(PMOS),也可以均是n型金属氧化物半导体(NMOS)。在PMOS具体实施中,两个开关晶体管串联在电容器的极板与电源电压的电源节点之间。在此具体实施中,电容器的另一极板接地。如果两个PMOS开关晶体管都导通,则将电容器充电到电源电压。在NMOS具体实施中,如果两个NMOS开关晶体管都导通,则电容器被预充电然后放电。由于PMOS开关晶体管的使用简化了ADC具体实施,因此以下讨论将在不失一般性的情况下针对开关晶体管的PMOS开关晶体管具体实施。
混合CiM中的滤波器权重位单元可以根据与用于传统SRAM位单元相同的铸造规则来构造。这对于增加密度和易于实施是非常有利的。第一开关晶体管和第二开关晶体管不集成到滤波器权重位单元占用面积中,而是位于算术单元的管芯占用面积内。以其最简单的形式,算术单元因此由第一开关晶体管、第二开关晶体管和电容器形成。图1中示出了N个算术单元的示例阵列100。为了例示清楚,图1中仅示出来自阵列100的初始第零个算术单元105和第(N-1)个算术单元110,其中N为正的复数整数。N的值小于所计算的滤波器抽头的通道数目M。例如,如果存在64个通道(M=64),则N的示例值可以是八。每个算术单元包括由激活位(Act)控制的第一开关S1,其与由滤波器权重位控制的第二开关S2串联。如前所述,此类开关对中的哪个开关表示为第一开关和第二开关是任意的。开关对S1和S2(其也可以指定为开关对)的串联组合耦合在电源节点与算术单元的电容器C的极板之间。如前所述,开关S1和S2可由一对NMOS开关晶体管或一对PMOS开关晶体管形成。
在计算之前,每个算术单元中的电容器C接地。如果两个开关都闭合,则电容器C被充电。如果开关S1和/或开关S2保持断开,则电容器C保持放电。因此,如果开关S1被配置为仅在激活位为真时闭合并且开关S2被配置为仅在滤波器权重位为真时闭合,则电容器电荷表示激活位与滤波器权重位的二元乘法。可以看出,通过算术单元中的开关S1和S2的动作对电容器C的充电(或不充电)等效于滤波器权重位和激活位的NOR运算。每个算术单元在计算阶段期间执行其自己的关于其对应的电容器是否被充电的计算。在随后的累加阶段期间,开关S1和S2断开,并且每个算术单元中的第三开关S3响应于求和信号的断言而闭合。每个第三开关S3耦合在算术单元的电容器C的极板和ADC 115的输入端子之间。提供给ADC115的所得的电荷因此是滤波器抽头的逐位乘法和累加的部分乘积,因为N小于通道数目M。
在下面的描述中,每对开关S1和S2也可以表示为开关对。如果开关对中的两个开关都接通,则每个开关对具有用于存储电荷的对应电容器。阵列100的激活位可表示为多个第一位。对于每个开关对,存在来自该多个第一位的对应第一位。类似地,滤波器权重位可表示为第二位。
在M(通道总数)为64并且N(部分乘积的通道子集)为八的示例具体实施中,因此将存在八个阵列100和八个ADC 115来完成滤波器抽头的逐位乘法和求和。取决于滤波器权重位和激活位的二元有效性,所得的部分乘积由耦合到ADC 115的输出端子的移位并求和电路120移位并求和以提供滤波器抽头输出。例如,假设滤波器权重和激活各自仅以一位精度表达。在这种情况下,移位并求和电路120仅需要对部分乘积求和,因为不需要移位。如果滤波器权重和激活各自以两个位表达,则根据所乘的激活位和滤波器权重位的二元有效性,用适当的移位来对四个单独的部分乘积求和。移位并求和电路120还可以表示为数字加法器。
不管激活和滤波器权重的精度如何,所得的部分乘积是相当有利的,即使相对于在所有通道上累加的传统CiM累加需要附加的ADC。通过如在传统CiM计算中执行的那样在所有通道上进行累加,仅单个ADC就足够了。但是要在64个通道上进行累加,需要具有七位的动态范围的ADC。这种相对高动态范围的ADC消耗功率并增加成本。通过仅在通道的子集上累加,阵列100中的ADC 115可具有减小的动态范围,并且因此需要更少的功率并降低成本。例如,ADC 115可仅具有四位的动态范围以适应阵列100中的八个通道上的累加(注意,八通道累加不对应于三位的动态范围,因为所得的部分和可在零到八的范围内,这就给出了九个可能的值)。混合CiM中的部分累加导致移位并求和电路120中的数字域中的部分乘积的相加。由于这些数字加法不会在所有通道上的传统CiM累加中执行,因此可以理解混合CiM架构的“混合”性质,因为累加部分在模拟域中执行,部分在数字域中执行。混合CiM架构因此享有由电容器C之间的电荷共享所执行的模拟乘法和累加的功率节省,但不会遭受ADC115中的过度功率消耗,因为部分累加减小了其所需的动态范围。
算术单元
在图2A中更详细地示出了示例算术单元200。算术单元200在本文中指定为阶段1的第一处理阶段中处理两个激活位与滤波器权重位的乘法。类似地,算术单元200在本文中指定为阶段2的第二处理阶段中处理另外两个激活位与滤波器权重位的乘法。阶段信号控制在时钟信号(clk)的周期期间发生的两个阶段的定时。为了使乘法对于时钟信号的任何占空比失真均是鲁棒的,自定时复制电路240控制阶段信号,如本文中将进一步解释的。
在阶段1期间,阶段信号处于第一二元状态。相反,阶段信号在阶段2期间是第二互补二元状态。在下面的讨论中,将假设阶段信号在阶段1期间被放电到地并且在阶段2期间被充电到电源电压VDD,但是在另选的具体实施中可以颠倒这种惯例。阶段信号控制多路复用器225中激活位的选择和多路复用器230中激活位的选择。
由算术单元200处理的四个激活位被指定为act[0]、act[1]、act[2]和act[3]。在由计算使能(ce)信号使能并且由时钟信号计时时,寄存器205寄存act[3]。类似地,寄存器210寄存act[1],寄存器215寄存act[2],并且寄存器220寄存act[0]。寄存器205和210在本文中可表示为寄存器对。类似地,寄存器215和220形成另一寄存器对。根据阶段信号的二元状态,多路复用器225从寄存器205选择act[3]或从寄存器210选择act[1]。类似地,多路复用器230根据阶段信号的二元状态从寄存器215选择act[2]或从寄存器220选择act[0]。
多路复用器225和230两者均为反相多路复用器,其将它们的所选的激活位反相。来自多路复用器225的所选的激活位驱动PMOS开关晶体管T3的栅极。开关晶体管T3因此相当于图1的阵列100中的算术单元中的每一者中的开关S1。开关晶体管T3的源极通过PMOS开关晶体管T1耦合到电源电压VDD的电源节点。滤波器权重位的补码驱动开关晶体管T1的栅极。开关晶体管T1因此相当于阵列100中的算术单元中的每一者中的开关S2。开关晶体管T3的漏极通过PMOS开关晶体管T5耦合到电容器C1的极板A。开关晶体管T5与由开关晶体管T1和T3形成的第一开关和第二开关串联。高电平有效乘法关闭(mult_off)信号驱动开关晶体管T5的栅极。自定时复制电路240控制mult_off信号,使得其在阶段1和阶段2两者的初始乘法部分期间放电。在阶段1,多路复用器225选择激活位act[1]的补码。如果act[1]和滤波器权重位都为真,则开关晶体管T1和T3将把充电电流传导到电容器C1的极板A中。电容器C1是阵列100中的算术单元中的电容器C的示例。然后充电电流将对电容器C1充电,使得极板A的电压上升到电源电压VDD。如本文中将进一步解释的,自定时复制电路240还模拟或复制电容器C1的充电。当自定时复制电路240已确定阶段1的乘法部分已具有足够的时间来对电容器C1充电时,自定时复制电路240将断言mult_off信号以将电容器C1从电源电压VDD电断开。mult_off信号的该断言关断开关晶体管T5以停止电容器C1的充电。同时,mult_off信号的断言接通耦合在极板A与计算线0(cl0)之间的NMOS传输晶体管T9。类似地,反相器241使mult_off信号反相以驱动也耦合在极板A与计算线0之间的PMOS传输晶体管T7的栅极。
传输晶体管T9和T7因此形成传输门,当mult_off信号被断言时,该传输门闭合以将极板A耦合到计算线0。由传输晶体管T9和T7形成的传输门是阵列100中的每个算术单元中的第三开关S3的示例。计算线电容器C3加载计算线0。注意,计算线0将耦合到M个算术单元,类似于针对阵列100关于由ADC 115进行的处理所讨论的(M是来自滤波器的通道总数的通道子集)。由于下面的讨论将在不失一般性的情况下假设M是八,电容计算线电容器C3因此可以是电容器C1的电容的大约八倍。以此方式,计算线0的电压将在零伏至大约VDD/2的范围内,这取决于其八个算术单元中有多少将其电容器C1充电到VDD。
来自多路复用器230的所选的激活位驱动PMOS开关晶体管T4的栅极。开关晶体管T4因此相当于图1的阵列100中的算术单元中的每一者中的开关S1。开关晶体管T4的源极通过PMOS开关晶体管T2耦合到电源节点。滤波器权重位的补码驱动开关晶体管T2的栅极。开关晶体管T2因此相当于阵列100中的算术单元中的每一者中的开关S2。开关晶体管T4的漏极通过PMOS开关晶体管T6耦合到电容器C2的极板B。mult_off信号驱动开关晶体管T6的栅极。在阶段1,多路复用器230选择激活位act[0]的补码。如果act[0]和滤波器权重位都为真,则开关晶体管T4和T6将把充电电流传导到电容器C2的极板B中。电容器C2是阵列100中的算术单元中的电容器C的示例。然后充电电流将对电容器C2充电,使得极板B电压上升到电源电压VDD。当自定时复制电路240已确定阶段1的乘法部分已具有足够的时间来对电容器C2充电时,自定时复制电路240断言mult_off信号以将电容器C2从电源电压VDD断开以开始阶段1的累加部分。mult_off信号的该断言关断开关晶体管T6以停止电容器C2的充电。同时,mult_off信号的断言闭合由PMOS传输晶体管T8和NMOS传输晶体管T10形成的传输门,类似于关于传输晶体管T9和T7所讨论的。由传输晶体管T8和T10形成的传输门是阵列100的算术单元中的每一者中的第三开关S3的示例。
当mult_off信号被断言时,由传输晶体管T8和T10形成的传输门闭合以将极板B耦合到计算线1。计算线电容器C4类似于针对计算线电容器C3所讨论的那样加载计算线1。例如,计算线电容器C4的电容可为每个电容器C2的电容的大约八倍。以此方式,计算线1的电压将在零伏至大约VDD/2的范围内,这取决于其八个算术单元中有多少将其电容器C2充电到VDD。自定时复制电路240控制每个ADC 115以使其相应控制线上的电压数字化,如本文中将进一步解释的。
在阶段2,多路复用器225选择激活位act[3]。类似地,多路复用器230在阶段2选择激活位act[2]。四个激活位act[0]至act[3]因此将在时钟信号clk的一个周期中乘以滤波器权重位。在每个阶段1和阶段2周期终止时,自定时复制电路240通过放电信号的断言来使电容器C1和C2复位。放电信号驱动耦合在电容器C1的极板A和地之间的NMOS开关晶体管T11的栅极。电容器C1因此在放电信号的断言时被放电到地。类似地,放电信号驱动耦合在电容器C2的极板B与地之间的NMOS开关晶体管T12的栅极。电容器C2因此在放电信号的断言时被放电到地。
在图2B中示出了算术单元200的一些操作波形。时钟信号clk的周期在时间t0处开始,时钟信号的上升沿开始阶段1。在图2B中,时钟信号具有50/50占空比,因此时钟信号在时间t1处的下降沿触发阶段2,但应当理解,由于自定时复制电路240的操作,阶段1和阶段2的定时不需要与时钟边沿同步。时钟信号的上升沿导致mult_off信号被放电,使得对应的算术单元电容器C1或C2可以被充电,这取决于相应的激活和滤波器权重位的二元值。在该示例中,假设滤波器权重和激活位二元值使得电容器C1在阶段1被充电,同时mult_off被放电,而电容器C2保持放电。极板A因此在阶段1期间由于mult_off信号的放电而被充电到VDD。当mult_off信号随后在阶段1期间被断言以开始阶段1的累加部分时,电容器C1上的电荷与计算线0共享,使得计算线0被提升到VDD/16(假设没有其他通道向计算线0提供任何电荷)。在阶段1的电荷共享之后,断言放电信号以使电容器C1和C2复位以完成阶段1。在阶段2,mult_off信号再次被放电。假设滤波器权重和激活位二元值在阶段2中使得电容器C2被充电到电源电压VDD,而电容器C1保持放电。极板B因此在阶段2期间由于mult_off信号的放电而被充电到VDD。在阶段2断言mult_off信号以开始阶段2的累加部分之后,与计算线1共享电容器C2上的电荷。计算线1的电压因此被提升到VDD/16(假设没有其他通道向计算线1提供电荷)。最后,再次断言放电信号以使电容器C1和C2复位以完成阶段2,于是在时间t2处开始新的时钟周期。
自定时复制电路
在图3A中更详细地示出了示例自定时复制电路240。自定时复制电路240包括范围从第一复制算术单元300到第八复制算术单元303的八个复制算术单元,以复制关于阵列100和算术单元200所讨论的累加。为了例示清楚,图3A中仅示出了第一复制算术单元300、第二复制算术单元301、第七复制算术单元302和第八复制算术单元303。第一复制算术单元300中的开关晶体管T1'复制算术单元200中的开关晶体管T5。开关晶体管T1'在本文中也可表示为第四开关晶体管。开关晶体管T1'的源极耦合到电源节点,而其漏极耦合到复制算术单元200中的电容器C1(或电容器C2)的复制电容器C1的极板。mult_off信号驱动开关晶体管T1'的栅极。开关晶体管T1'的栅极因此耦合到开关晶体管T5和T6的栅极,因为这些晶体管也由mult_off信号控制。mult_off信号的放电因此将接通开关晶体管T1',使得复制电容器C1开始充电到VDD以模拟电容器C1(或电容器C2)的充电。比较器350通过将复制电容器C1两端的电压与合适的阈值电压(例如,7/8VDD)进行比较来确定复制电容器C1何时已以VDD为目标充分充电。因此,当复制电容器C1已充电到7/8VDD时,比较器350的输出信号将被断言。OR门355接收比较器350的输出信号,使得OR门355的输出信号也将通过复制电容器C1的充电而被断言。NOR门360接收OR门355的输出。NOR门360的输出信号因此将通过复制电容器C1的充电而被放电。NOR门360的输出信号由反相器351反相以形成mult_off信号。mult_off信号因此将响应于比较器350确定复制电容器C1已被充电到阈值电压(例如,7/8VDD)而被断言。
传输门S1从复制电容器C1的极板耦合到复制计算线rcl0。来自NOR门360的输出信号驱动传输门S1中的PMOS晶体管的栅极,而mult_off信号驱动传输门S1中的NMOS晶体管的栅极。传输门S1因此将在mult_off信号被断言时闭合,使得来自复制电容器C1的电荷与复制计算线rcl0共享。每个附加复制算术单元包括类似于针对第一复制算术单元300所讨论的那样布置的类似复制开关晶体管、复制电容器和传输门。例如,第二复制算术单元301包括复制开关晶体管T2'、复制电容器C2和传输门S2。类似地,第七复制算术单元302包括复制开关晶体管T7'、复制电容器C7和传输门S7。最后,第八复制算术303包括复制开关晶体管T8'、复制电容器C8和传输门S8。这些附加算术单元因此将在mult_off信号被放电时对其复制电容器充电,并且然后与复制计算线rcl0共享来自其复制电容器的所得的电荷。
电容器Csum以大约等于复制算术单元中的复制电容器的电容的总和的电容来加载复制计算线rcl0。在mult_off信号被断言时来自复制电容器的电荷的共享或累加将因此将复制计算线rcl0充电到大约VDD/2,以模拟关于图2A所讨论的计算线1或2的充电。为了确定电荷共享何时已将复制计算线rcl0充分充电到VDD/2,比较器304将复制计算线rcl0的电压与等于大约VDD/2(诸如3/8VDD)的合适阈值电压进行比较。当复制计算线rcl0的电压接近VDD/2时,比较器304的输出信号因此将被断言。此输出信号用作ADC使能(adc_on),其触发每个ADC 115(图1和图2A)以使其相应计算线上的电压数字化。
来自比较器304的输出信号对寄存器310计时。在计算周期开始时,计算使能信号ce的断言驱动AND门305。在断言计算使能信号(ce)之前,计算使能信号的延迟和反相版本将被断言为高。计算使能信号的该延迟和反相版本也由AND门305接收。AND门305的输出信号因此将在计算使能信号的断言时针对由计算使能信号的延迟和反相版本的延迟而确定的脉冲宽度被脉冲为高。来自AND门305的输出信号的脉冲使寄存器310复位。寄存器310的输出信号形成控制由多路复用器225和230(图2A)进行的选择的阶段信号。在计算周期开始时,阶段信号因此将从寄存器310的复位被放电以开始在阶段1的操作。阶段信号被反相并将数据输入驱动到寄存器310。该数据输入因此将在计算周期开始时被充电到电源电压VDD。当响应于复制计算线rcl0的充电而通过来自比较器304的输出信号的断言来对寄存器310计时时,阶段信号因此将被断言为电源电压VDD以开始阶段2操作。
阶段信号控制由反相多路复用器320进行的选择。当计算使能信号和时钟信号都被断言时,AND门315断言其输出信号。AND门的输出信号被延迟并将输入驱动到反相多路复用器320,在阶段信号在阶段1期间被放电时选择该反相多路复用器。反相多路复用器320的输出信号因此将在计算周期开始时为零。此输出信号由先前所述的NOR门360接收。
虚设ADC 325复制每个ADC 115执行其数字化所需要的时间量。来自虚设ADC 325的输出信号adc_off因此将在ADC数字化时间之后被断言。adc_off信号由产生放电信号的OR门330接收。放电信号因此将在每个ADC数字化完成之后被断言。adc_off信号被反相并由反相多路复用器320接收。阶段2期间的阶段信号的断言使反相多路复用器320选择经反相的adc_off信号,使得当ADC数字化完成时断言来自反相多路复用器320的输出信号。mult_off信号因此在ADC数字化完成后被复位(放电)。
放电信号的断言使每个复制算术单元对其复制电容器进行放电。例如,第一复制算术单元300包括耦合在复制电容器C1的极板与地之间的NMOS开关晶体管T1P。放电信号驱动开关晶体管T1P的栅极。开关晶体管T1P因此将响应于放电信号的断言而接通,使得复制电容器C1放电。第二复制算术单元301包括类似的NMOS开关晶体管T2P。类似地,第七复制算术单元302包括NMOS开关晶体管T7P,而第八复制算术单元303包括NMOS开关晶体管T8P。
为了测试复制电容器的放电是否足够,比较器340将复制电容器C1两端的电压与诸如VDD/8的适当阈值电压进行比较。当复制电容器C1两端的电压大于此阈值电压时,比较器340的输出信号被断言。比较器340的输出信号驱动由计算使能信号使能的寄存器335的数据输入。时钟信号对寄存器335进行计时,使得寄存器335在时钟信号的上升沿对比较器340的输出信号进行寄存。如果比较器340的输出信号在时钟上升沿为高,则寄存器335的数据输出信号也将被断言。此数据输出信号由产生放电信号的OR门330接收。放电信号因此将响应于此错误条件而被断言。比较器345确定复制电容器C1两端的电压何时小于阈值电压(例如,VDD/8)以在正常操作期间使寄存器335复位。
在图3B中示出了自定时复制电路240的一些操作波形。计算使能信号(ce)和时钟信号(clk)都在时间t0处被断言以开始阶段1。如前所述,阶段信号在阶段1期间被放电。mult_off信号的放电使复制电容器C1到C8被充电到电源电压VDD。当mult_off信号再次被断言时,与复制计算线rcl0发生电荷共享,使得复制电容器和复制计算线rcl0全部被充电到VDD/2。最后,放电信号被断言以完成阶段1。除了阶段信号被充电到电源电压VDD之外,阶段2期间的操作是类似的。
示例混合CiM架构
必须与神经网络中的给定层处的对应滤波器权重位相乘的激活位的数目将取决于具体实施而变化。以下示例混合CiM架构容纳8个激活字节乘以32个滤波器权重字节(或等效地,乘以64个滤波器权重半字节)。然而,应当理解,激活字节和滤波器权重字节的数目在另选的具体实施中可变化。由于每个算术单元200容纳四个激活位的乘法,所以八个激活字节可由十六个算术单元200处理。为了容纳多达16×16个滤波器,每个滤波器权重位可存储在16×16位单元阵列中。标准铸造位单元设计可用于每个16×16位单元阵列以实现高密度和低成本。在图4中示出了用于处理一个通道的示例混合CiM阵列400。每行对应于滤波器权重位。由于在该示例中存在32个字节的滤波器权重,因此存在范围从行0到行255的32×8=256行。每行包括从第零算术单元(A单元0)到第十六算术单元(A单元15)的十六个算术单元。
每行包括用于存储相应滤波器抽头的滤波器权重位的16×16位单元阵列。如果所实现的滤波器仅具有一个抽头,则16×16位单元阵列中的仅一个位单元需要存储滤波器权重位。但如果滤波器为16×16滤波器,则16×16阵列中的每个位单元存储滤波器权重位。例如,考虑行0中的16×16位单元阵列405。位单元阵列405的行方向在图4中在垂直方向上,而列在垂直方向上。每行由对应的字线(未例示)遍历。在计算周期期间,地址解码器(未例示)通过断言对应的字线来选择阵列405中的16行中的一行。所断言行中的位单元将然后将其滤波器权重位加载到位线上。由于存在十六列,因此对于每个位单元阵列存在十六条位线。16:1多路复用器410通过从十六条位线中进行选择来选择阵列405中的十六列中的一列,以提供所选的滤波器权重位作为输出信号,该输出信号跨行0中的十六个算术单元投射。由于每个算术单元200的乘法可以由两个ADC 115数字化,如关于图3A所讨论的,所以行0包括32个ADC 415。相应地布置每个附加的行。例如,行255包括16×16位单元阵列420、16:1多路复用器425、十六个算术单元和32个ADC 430。每个16:1多路复用器(诸如16:1多路复用器410及425)在本文中也可表示为第一多路复用器。再次参见图2A的算术单元200,每个多路复用器225和230在本文中还可表示为第二多路复用器。
假设层的滤波器每个仅具有一个抽头,并且每个滤波器权重是一个字节。在这种情况下,阵列400可以处理32个这样的1×1滤波器。每个16×16位单元阵列将仅存储一个滤波器权重位。如果层的滤波器是2×2,则阵列可以处理32个这样的2×2滤波器(假设每个滤波器权重是一个字节)。每个16×16位单元阵列然后将存储相应2×2滤波器的四个抽头的四个滤波器权重位。更一般地,混合CiM(HCiM)阵列可处理多个滤波器,每个滤波器具有一个或多个抽头。
阵列400例示了跨滤波器权重的整个深度的一个通道的位单元阵列和算术单元。一般来说,滤波器权重的深度或宽度确定行的数目。激活的深度或宽度确定每行的算术单元的数目。如前所述,HCiM阵列被认为是“混合的”,因为滤波器的累加不是跨所有通道而是跨通道的子集在模拟域中相乘并求和。
在一个具体实施中,可以存在64个通道,其中通道的每个子集是8个通道。更一般地,每个通道子集中的通道数目是能够配置的。在图5中示出了示例阵列500。如针对阵列400所述,对于32字节的滤波器权重,存在对应于256个滤波器权重位的256行。每行包括每个通道的位单元阵列和对应的算术单元阵列。一般来说,位单元阵列是M×M阵列,其中M是复数整数以容纳具有M×M个抽头的滤波器。每个算术单元阵列的大小取决于可以相乘的激活的大小(宽度)和深度(数目)。如关于阵列400所述,针对阵列500假设每个位单元阵列为16×16位单元阵列并且每个算术单元阵列足以将滤波器权重位与至少一个激活位相乘。在其中每个算术单元容纳如针对算术单元200所述的4个激活位的乘法的具体实施中,阵列500中的每个位单元阵列的算术单元阵列将包括十六个算术单元。例如,阵列500中的行0包括每个通道(范围从通道0到通道7)的16×16位单元阵列以及十六个算术单元的阵列。为了例示清楚,在阵列500中示出了仅用于通道0和通道7的位单元和算术单元阵列。每行包括范围从行0到行255的类似位单元和算术单元阵列。为了例示清楚,在阵列500中仅示出了行0和行255。
每行包括32个ADC(未例示)的阵列,用于对八个字节的激活进行求和。回想一下,如关于算术单元200所述的每个ADC 115可以在单个时钟周期中顺序地使滤波器权重位与两个激活位的乘法数字化。对于八个字节的激活,存在64个激活位,因此需要32个ADC。更一般地,在Y是2的幂并且每个ADC每个时钟周期使两个乘法累加数字化的具体实施中,多个Y激活位的处理需要Y/2个ADC。
给定256行的八个16×16位单元,位单元逻辑上形成4096位单元行乘128位单元列(524,288个位单元)的集合阵列大小。此类阵列可能由于其在半导体管芯上的相对长且窄的占用面积而难以集成到半导体管芯上。因此可以重新布置16×16位单元阵列以形成仍容纳524,288个位单元的更合适的占用面积,例如512行乘1024列。由于所得的HCiM阵列仅容纳8个通道上的滤波器乘法,因此具有64个通道的具体实施可能包括八个这样的HCiM子阵列。在图6中示出了用于处理所有64个通道的示例服务器600。为了处理各种滤波器的8个通道上的累加,服务器600包括八个滤波器权重位单元子阵列,每个子阵列包括512行和1024列。每个滤波器权重位单元子阵列包括用于每个滤波器权重位的16个算术单元,这导致总共4,096个算术单元,其中每个算术单元能够处理如针对算术单元200所述的四个激活位的乘法。在8字节激活(64位)乘以每个滤波器权重位并且如针对ADC 115所述的每2位激活有一个ADC的情况下,每个滤波器权重位对应于32个ADC。假设存在32字节的滤波器权重(总共256位),则服务器600中的每个子阵列包括32×256=8,192个ADC。服务器600中的子阵列的数目是能够配置的,这取决于具体实施。数字加法器对每个子阵列中累加的部分乘积求和。现在将讨论混合存储器内计算架构的示例操作方法。
图7例示了混合存储器内计算架构的示例操作方法的流程图。该方法包括响应于第一滤波器权重位与第一多个通道的第一多个激活位之间的乘法-累加运算而对第一计算线充电的动作700。对阵列100的计算线的充电是动作700的示例。该方法还包括使第一计算线的电压数字化以提供第一数字数的动作705。阵列100中的ADC 115的操作是动作705的示例。由于如关于阵列500和服务器600所述的那样针对通道的每个子集重复阵列100,因此阵列100中的计算线的充电也是响应于第二滤波器权重位与多个第二通道的多个激活位之间的乘法-累加运算而对第二计算线充电的动作710的示例。类似地,阵列100中的ADC 115的操作是使第二计算线的电压数字化以提供第二数字数的动作715的示例。最后,阵列100中的数字加法器120的操作以及服务器600中的数字加法器的操作是将第一数字数和第二数字数相加以提供和的动作720的示例。
现在将在以下示例条款中概述本公开的一些方面。
条款1.一种存储器内计算架构,包括:
多个第一开关对,所述多个第一开关对对应于多个第一位,每个第一开关对包括由所述多个第一位中的对应第一位控制的第一开关,并且包括由第二位控制的第二开关;
多个第一电容器,所述多个第一电容器对应于所述多个第一开关对,每个第一电容器与所述多个第一开关对中的对应第一开关对串联耦合;
耦合到所述多个第一电容器的第一计算线;和
第一模数转换器,所述第一模数转换器具有耦合到所述第一计算线的输入端子。
条款2.根据条款1所述的存储器内计算架构,还包括:
多个第二开关对,所述多个第二开关对对应于多个第三位,每个第二开关对包括由所述多个第三位中的对应第三位控制的第一开关,并且包括由所述第二位控制的第二开关;
多个第二电容器,所述多个第二电容器对应于所述多个第二开关对,每个第二电容器与所述多个第二开关对中的对应第二开关对串联耦合;
耦合到所述多个第二电容器的第二计算线;和
第二模数转换器,所述第二模数转换器具有耦合到所述第二计算线的输入端子。
条款3.根据条款2所述的存储器内计算架构,其中所述多个第一位包括多个第一激活位,所述第二位包括滤波器权重位,并且所述多个第三位包括多个第二激活位。
条款4.根据条款1至3中任一项所述的存储器内计算架构,还包括:
多个第三开关,所述多个第三开关对应于所述多个第一开关对,每个第一开关对通过所述第三开关中的相应一个第三开关耦合到所述多个第一电容器中的对应第一电容器。
条款5.根据条款4所述的存储器内计算架构,还包括:
自定时复制电路,所述自定时复制电路包括与复制第一电容器串联的第四开关晶体管,其中所述多个第三开关中的每个第三开关是第三开关晶体管,并且所述第四开关晶体管的栅极耦合到每个第三开关晶体管的栅极。
条款6.根据条款5所述的存储器内计算架构,其中所述复制第一电容器的电容基本上等于所述多个第一电容器中的每个第一电容器的电容。
条款7.根据条款5至6中任一项所述的存储器内计算架构,其中每个第一开关包括第一p型金属氧化物半导体(PMOS)开关晶体管,每个第二开关包括第二PMOS开关晶体管,并且每个第三开关晶体管包括第三PMOS开关晶体管。
条款8.根据条款5至7中任一项所述的存储器内计算架构,其中所述自定时复制电路包括比较器,所述比较器被配置为将所述第一计算线的电压与阈值电压进行比较。
条款9.根据条款5至8中任一项所述的存储器内计算架构,还包括:
耦合到所述第一计算线的计算线电容器,其中所述计算线电容器的电容近似等于所述多个第一电容器中的每个第一电容器的电容的总和。
条款10.根据条款5至9中任一项所述的存储器内计算架构,其中所述阈值电压近似为电源电压的一半。
条款11.根据条款8所述的存储器内计算架构,其中所述自定时复制电路还被配置为响应于所述比较器检测到所述第一计算线的电压大于或等于所述阈值电压来控制所述多个第一电容器中的每个第一电容器的放电。
条款12.根据条款1至11中任一项所述的存储器内计算架构,还包括:
多个位单元;和
第一多路复用器,所述第一多路复用器被配置为从所述多个位单元进行选择以将所述第二位提供给所述多个第一开关对中的每个第二开关。
条款13.根据条款12所述的存储器内计算架构,还包括:
对应于所述多个第一开关对的多个第二多路复用器;和
对应于所述多个第二多路复用器的多个寄存器对;其中所述多个
第二多路复用器中的每个第二多路复用器被配置为从所述多个寄存器对中的对应寄存器对选择所述对应第一位。
条款14.根据条款13所述的存储器内计算架构,其中每个第一开关是PMOS开关晶体管,并且其中每个第二多路复用器是反相多路复用器。
条款15.根据条款5所述的存储器内计算架构,还包括:
多个传输门,所述多个传输门对应于所述多个第一电容器,其中
所述第一计算线通过所述多个传输门耦合到所述多个第一电容器。
条款16.根据条款15所述的存储器内计算架构,还包括耦合到所述比较器的输出信号的虚设模数转换器。
条款17.一种存储器内计算架构的操作方法,包括:
响应于第一滤波器权重位与第一多个通道的第一多个激活位之间的第一乘法-累加运算而对第一计算线充电;
使所述第一计算线的电压数字化以提供第一数字数;
响应于第二滤波器权重位与第二多个通道的第二多个激活位之间的第二乘法-累加运算而对第二计算线充电;
使所述第二计算线的电压数字化以提供第二数字数;以及
将所述第一数字数和所述第二数字数相加以提供和。
条款18.根据条款17所述的方法,还包括:
为所述第一多个通道提供对应于所述第一多个激活位的经放电的多个第一电容器;
对于所述经放电的多个第一电容器中的每个第一电容器,响应于所述第一多个激活位中的对应激活位和所述第一滤波器权重位均为真而对所述第一电容器充电以提供经充电的多个第一电容器;以及
在所述第一计算线的所述电压的数字化之前,将所充电的多个第一电容器耦合到所述第一计算线。
条款19.根据条款17至18中任一项所述的方法,还包括:
通过多个多路复用器为所述第一多个通道选择所述第一多个激活位。
条款20.根据条款19所述的方法,还包括:
响应于来自自定时复制电路的阶段信号而控制所述多个多路复用器以选择所述第一多个激活位。
条款21.一种存储器内计算架构,包括:
第一多个算术单元,所述第一多个算术单元中的每个算术单元包括第一电容器;
第一多个开关;
第一计算线,所述第一计算线通过所述第一多个开关耦合到所述
第一多个算术单元中的每个第一电容器;和
第一模数转换器,所述第一模数转换器具有耦合到所述第一计算线的输入端子。
条款22.根据条款21所述的存储器内计算架构,还包括:
第二多个算术单元,所述第二多个算术单元中的每个算术单元包括第二电容器;
第二多个开关;
第二计算线,所述第二计算线通过所述第二多个开关耦合到所述第二多个算术单元中的每个第二电容器;和
第二模数转换器,所述第二模数转换器具有耦合到所述第二计算线的输入端子。
条款23.根据条款22所述的存储器内计算架构,还包括:
数字加法器,所述数字加法器耦合到所述第一模数转换器的输出端子和所述第二模数转换器的输出端子。
条款24.根据条款21至23中任一项所述的存储器内计算架构,其中所述存储器内计算架构被集成到服务器中。
条款25.根据条款21至24中任一项所述的存储器内计算架构,还包括:
第一位单元阵列;和
第一多路复用器,所述第一多路复用器被配置为从所述第一位单元阵列选择第一滤波器权重位以将所选的第一滤波器权重位提供给所述第一多个算术单元中的每个算术单元。
条款26.根据条款25所述的存储器内计算架构,其中所述第一多个算术单元被配置为将所选的第一滤波器权重位与来自第一多个通道的第一多个激活位相乘。
条款27.根据条款26所述的存储器内计算架构,还包括:
第二位单元阵列;和
第二多路复用器,所述第二多路复用器被配置为从所述第二位单元阵列选择第二滤波器权重位以将所选的第二滤波器权重位提供给所述第二多个算术单元中的每个算术单元。
条款28.根据条款27所述的存储器内计算架构,其中所述第二多个算术单元被配置为将所选的第二滤波器权重位与来自第二多个通道的第二多个激活位相乘。
条款29.根据条款26所述的存储器内计算架构,其中所述第一多个通道被配置为形成卷积神经网络或深度神经网络的滤波器。
条款30.根据条款26所述的存储器内计算架构,其中所述第一多个通道被配置为卷积神经网络或深度神经网络的层。
条款31.根据条款27所述的存储器内计算架构,其中所述第一多个通道和所述第二多个通道被配置为卷积神经网络或深度神经网络的滤波器或层的多个子阵列的一部分。
条款32.根据条款27所述的存储器内计算架构,其中所述第一多个通道中和所述第二多个通道中的通道数目都是能够配置的。
条款33.根据条款31所述的存储器内计算架构,其中所述多个子阵列中的子阵列数目是能够配置的。
应当理解,在不脱离本公开的范围的情况下,可以对本公开的设备的材料、装置、配置和使用方法进行许多修改、替换和变化。有鉴于此,本公开的范围不应当被限定于本文所例示和描述的特定具体实施(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。

Claims (33)

1.一种存储器内计算架构,包括:
多个第一开关对,所述多个第一开关对对应于多个第一位,每个第一开关对包括由所述多个第一位中的对应第一位控制的第一开关,并且包括由第二位控制的第二开关;
多个第一电容器,所述多个第一电容器对应于所述多个第一开关对,每个第一电容器与所述多个第一开关对中的对应第一开关对串联耦合;
耦合到所述多个第一电容器的第一计算线;和
第一模数转换器,所述第一模数转换器具有耦合到所述第一计算线的输入端子。
2.根据权利要求1所述的存储器内计算架构,还包括:
多个第二开关对,所述多个第二开关对对应于多个第三位,每个第二开关对包括由所述多个第三位中的对应第三位控制的第一开关,并且包括由所述第二位控制的第二开关;
多个第二电容器,所述多个第二电容器对应于所述多个第二开关对,每个第二电容器与所述多个第二开关对中的对应第二开关对串联耦合;
耦合到所述多个第二电容器的第二计算线;和
第二模数转换器,所述第二模数转换器具有耦合到所述第二计算线的输入端子。
3.根据权利要求2所述的存储器内计算架构,其中所述多个第一位包括多个第一激活位,所述第二位包括滤波器权重位,并且所述多个第三位包括多个第二激活位。
4.根据权利要求1所述的存储器内计算架构,还包括:
多个第三开关,所述多个第三开关对应于所述多个第一开关对,每个第一开关对通过所述第三开关中的相应一个第三开关耦合到所述多个第一电容器中的对应第一电容器。
5.根据权利要求4所述的存储器内计算架构,还包括:
自定时复制电路,所述自定时复制电路包括与复制第一电容器串联的第四开关晶体管,其中所述多个第三开关中的每个第三开关是第三开关晶体管,并且所述第四开关晶体管的栅极耦合到每个第三开关晶体管的栅极。
6.根据权利要求5所述的存储器内计算架构,其中所述复制第一电容器的电容基本上等于所述多个第一电容器中的每个第一电容器的电容。
7.根据权利要求5所述的存储器内计算架构,其中每个第一开关包括第一p型金属氧化物半导体(PMOS)开关晶体管,每个第二开关包括第二PMOS开关晶体管,并且每个第三开关晶体管包括第三PMOS开关晶体管。
8.根据权利要求5所述的存储器内计算架构,其中所述自定时复制电路包括比较器,所述比较器被配置为将所述第一计算线的电压与阈值电压进行比较。
9.根据权利要求8所述的存储器内计算架构,还包括:
耦合到所述第一计算线的计算线电容器,其中所述计算线电容器的电容近似等于所述多个第一电容器中的每个第一电容器的电容的总和。
10.根据权利要求9所述的存储器内计算架构,其中所述阈值电压近似为电源电压的一半。
11.根据权利要求8所述的存储器内计算架构,其中所述自定时复制电路还被配置为响应于所述比较器检测到所述第一计算线的所述电压大于或等于所述阈值电压来控制所述多个第一电容器中的每个第一电容器的放电。
12.根据权利要求1所述的存储器内计算架构,还包括:
多个位单元;和
第一多路复用器,所述第一多路复用器被配置为从所述多个位单元进行选择以将所述第二位提供给所述多个第一开关对中的每个第二开关。
13.根据权利要求12所述的存储器内计算架构,还包括:
对应于所述多个第一开关对的多个第二多路复用器;和
对应于所述多个第二多路复用器的多个寄存器对;其中所述多个第二多路复用器中的每个第二多路复用器被配置为从所述多个寄存器对中的对应寄存器对选择所述对应第一位。
14.根据权利要求13所述的存储器内计算架构,其中每个第一开关是PMOS开关晶体管,并且其中每个第二多路复用器是反相多路复用器。
15.根据权利要求5所述的存储器内计算架构,还包括:
多个传输门,所述多个传输门对应于所述多个第一电容器,其中所述第一计算线通过所述多个传输门耦合到所述多个第一电容器。
16.根据权利要求8所述的存储器内计算架构,还包括耦合到所述比较器的输出信号的虚设模数转换器。
17.一种存储器内计算架构的操作方法,包括:
响应于第一滤波器权重位与第一多个通道的第一多个激活位之间的第一乘法-累加运算而对第一计算线充电;
使所述第一计算线的电压数字化以提供第一数字数;
响应于第二滤波器权重位与第二多个通道的第二多个激活位之间的第二乘法-累加运算而对第二计算线充电;
使所述第二计算线的电压数字化以提供第二数字数;以及
将所述第一数字数和所述第二数字数相加以提供和。
18.根据权利要求17所述的方法,还包括:
为所述第一多个通道提供对应于所述第一多个激活位的经放电的多个第一电容器;
对于所述经放电的多个第一电容器中的每个第一电容器,响应于所述第一多个激活位中的对应激活位和所述第一滤波器权重位均为真而对所述第一电容器充电以提供经充电的多个第一电容器;以及
在所述第一计算线的所述电压的数字化之前,将所充电的多个第一电容器耦合到所述第一计算线。
19.根据权利要求17所述的方法,还包括:
通过多个多路复用器为所述第一多个通道选择所述第一多个激活位。
20.根据权利要求19所述的方法,还包括:
响应于来自自定时复制电路的阶段信号而控制所述多个多路复用器以选择所述第一多个激活位。
21.一种存储器内计算架构,包括:
第一多个算术单元,所述第一多个算术单元中的每个算术单元包括第一电容器;
第一多个开关;
第一计算线,所述第一计算线通过所述第一多个开关耦合到所述第一多个算术单元中的每个第一电容器;和
第一模数转换器,所述第一模数转换器具有耦合到所述第一计算线的输入端子。
22.根据权利要求21所述的存储器内计算架构,还包括:
第二多个算术单元,所述第二多个算术单元中的每个算术单元包括第二电容器;
第二多个开关;
第二计算线,所述第二计算线通过所述第二多个开关耦合到所述第二多个算术单元中的每个第二电容器;和
第二模数转换器,所述第二模数转换器具有耦合到所述第二计算线的输入端子。
23.根据权利要求22所述的存储器内计算架构,还包括:
数字加法器,所述数字加法器耦合到所述第一模数转换器的输出端子和所述第二模数转换器的输出端子。
24.根据权利要求21所述的存储器内计算架构,其中所述存储器内计算架构被集成到服务器中。
25.根据权利要求22所述的存储器内计算架构,还包括:
第一位单元阵列;和
第一多路复用器,所述第一多路复用器被配置为从所述第一位单元阵列选择第一滤波器权重位以将所选的第一滤波器权重位提供给所述第一多个算术单元中的每个算术单元。
26.根据权利要求25所述的存储器内计算架构,其中所述第一多个算术单元被配置为将所选的第一滤波器权重位与来自第一多个通道的第一多个激活位相乘。
27.根据权利要求26所述的存储器内计算架构,还包括:
第二位单元阵列;和
第二多路复用器,所述第二多路复用器被配置为从所述第二位单元阵列选择第二滤波器权重位以将所选的第二滤波器权重位提供给所述第二多个算术单元中的每个算术单元。
28.根据权利要求27所述的存储器内计算架构,其中所述第二多个算术单元被配置为将所选的第二滤波器权重位与来自第二多个通道的第二多个激活位相乘。
29.根据权利要求26所述的存储器内计算架构,其中所述第一多个通道被配置为形成卷积神经网络或深度神经网络的滤波器。
30.根据权利要求26所述的存储器内计算架构,其中所述第一多个通道被配置为卷积神经网络或深度神经网络的层。
31.根据权利要求27所述的存储器内计算架构,其中所述第一多个通道和所述第二多个通道被配置为卷积神经网络或深度神经网络的滤波器或层的多个子阵列的一部分。
32.根据权利要求27所述的存储器内计算架构,其中所述第一多个通道和所述第二多个通道中的通道数目是能够配置的。
33.根据权利要求31所述的存储器内计算架构,其中所述多个子阵列中的子阵列数目是能够配置的。
CN202280059164.4A 2021-09-10 2022-08-08 混合存储器内计算架构 Pending CN117916802A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/472,412 US20230078079A1 (en) 2021-09-10 2021-09-10 Hybrid compute-in-memory
US17/472,412 2021-09-10
PCT/US2022/039731 WO2023038745A1 (en) 2021-09-10 2022-08-08 Hybrid compute-in-memory

Publications (1)

Publication Number Publication Date
CN117916802A true CN117916802A (zh) 2024-04-19

Family

ID=83283580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280059164.4A Pending CN117916802A (zh) 2021-09-10 2022-08-08 混合存储器内计算架构

Country Status (5)

Country Link
US (1) US20230078079A1 (zh)
KR (1) KR20240058856A (zh)
CN (1) CN117916802A (zh)
TW (1) TW202318266A (zh)
WO (1) WO2023038745A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10796729B2 (en) * 2019-02-05 2020-10-06 Micron Technology, Inc. Dynamic allocation of a capacitive component in a memory device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10964380B1 (en) * 2020-02-06 2021-03-30 Qualcomm Incorporated Integrated device comprising memory bitcells comprising shared preload line and shared activation line

Also Published As

Publication number Publication date
KR20240058856A (ko) 2024-05-07
US20230078079A1 (en) 2023-03-16
TW202318266A (zh) 2023-05-01
WO2023038745A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
US11714749B2 (en) Efficient reset and evaluation operation of multiplying bit-cells for in-memory computing
US20210365241A1 (en) Multiplication and accumulation circuit based on radix-4 booth code and differential weight
TWI744728B (zh) 以sram為基礎的記憶體系統中處理
US11024358B1 (en) Differential compute-in-memory bitcell
JP2023513129A (ja) インメモリ計算のためのスケーラブルなアレイアーキテクチャ
TW202147320A (zh) 低功率記憶體內計算位元格
CN113314163B (zh) 存储器器件、计算器件以及计算方法
US11018687B1 (en) Power-efficient compute-in-memory analog-to-digital converters
CN117916802A (zh) 混合存储器内计算架构
Sayal et al. COMPAC: Compressed time-domain, pooling-aware convolution CNN engine with reduced data movement for energy-efficient AI computing
KR20220150895A (ko) 시간-공유 컴퓨트-인-메모리 비트셀
WO2022197534A1 (en) Compute-in-memory with ternary activation
CN115699184A (zh) 用于机器学习的基于电荷泵的电流模式神经元
US11823035B2 (en) Power-efficient compute-in-memory pooling
Sehgal et al. A bit-serial, compute-in-SRAM design featuring hybrid-integrating ADCs and input dependent binary scaled precharge eliminating DACs for energy-efficient DNN inference
JPS5949021A (ja) 多相mos集積回路
US20230297335A1 (en) Hybrid Compute-in-Memory
JP3177637B2 (ja) パルス幅変調演算回路
US6215840B1 (en) Method and apparatus for sequential memory addressing
US4314348A (en) Signal processing with random address data array and charge injection output
JP3852205B2 (ja) 並列プロセッサ装置
EP4086910A1 (en) Multiply-accumulate (mac) unit for in-memory computing
RU2752485C1 (ru) Делитель частоты с переменным коэффициентом деления
CN114974337B (zh) 一种基于自旋磁随机存储器的时间域存内计算电路
US20240134319A1 (en) Time-to-digital converter-based device

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