CN112951294A - 计算设备以及计算方法 - Google Patents

计算设备以及计算方法 Download PDF

Info

Publication number
CN112951294A
CN112951294A CN202011352312.0A CN202011352312A CN112951294A CN 112951294 A CN112951294 A CN 112951294A CN 202011352312 A CN202011352312 A CN 202011352312A CN 112951294 A CN112951294 A CN 112951294A
Authority
CN
China
Prior art keywords
output
input
read
memory
capacitors
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.)
Granted
Application number
CN202011352312.0A
Other languages
English (en)
Other versions
CN112951294B (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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC 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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of CN112951294A publication Critical patent/CN112951294A/zh
Application granted granted Critical
Publication of CN112951294B publication Critical patent/CN112951294B/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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • H03M1/36Analogue value compared with reference values simultaneously only, i.e. parallel type
    • H03M1/361Analogue value compared with reference values simultaneously only, i.e. parallel type having a separate comparator and reference value for each quantisation level, i.e. full flash converter type
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • H03M1/80Simultaneous conversion using weighted impedances
    • H03M1/802Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Dram (AREA)
  • Semiconductor Memories (AREA)
  • Static Random-Access Memory (AREA)

Abstract

在一些示例中,计算设备包括诸如八晶体管SRAM单元的存储器单元阵列,其中读取位线与存储存储器状态的节点隔离,使得共享相应读取位线的存储器单元的同时读取激活不会使任何存储器单元的存储状态失调。该计算设备还包括输出接口,该输出接口具有连接至相应读取位线的电容器,并且具有彼此不同的电容,诸如彼此相差作为2的幂的倍数。输出接口被配置为从相应的读取位线对电容器进行充电或使其放电,并允许电容器彼此共享电荷以生成模拟输出信号,其中来自每条读取位线的信号通过连接至读取位线的电容器的电容加权。该计算设备可以用于计算例如由多位权重加权的输入之和。本发明的实施例还涉及计算方法。

Description

计算设备以及计算方法
技术领域
本发明的实施例涉及计算设备以及计算方法。
背景技术
本公开总体上涉及在数据处理(诸如乘法累加操作)中使用的存储器阵列。存储器中的计算或存储器中的计算***将信息存储在计算机的主随机存取存储器(RAM)中,并在存储器单元级别执行计算,而不是每次计算步骤都在主RAM和数据存储之间移动大量数据。由于将存储的数据存储在RAM中后可以更快地访问存储的数据,因此存储器中的计算可以实时分析数据,从而在业务和机器学习应用中实现更快的报告和决策速度。正在努力改善存储器中的计算***的性能。
发明内容
根据本发明的一个方面,提供了一种计算设备,包括:存储器阵列,包括按存储器单元的行和列成组的多个存储器单元,每个存储器单元包括适于存储数据的存储器元件以及具有读取使能输入和输出的读取端口;多条读取使能线,每条读取使能线连接至存储器单元的相应行的读取端口的读取使能输入,并适于将输入信号传输到该读取使能输入;多条数据输出线,每条数据输出线连接至存储器单元的相应列的读取端口的输出;输出接口,包括计算模块,计算模块包括多个电容器,每个电容器可连接至相应一条数据输出线并具有电容,多个电容器中的至少两个具有彼此不同的电容,输出接口被配置为允许多个电容器共享存储在多个电容器上的电荷。
根据本发明的另一个方面,提供了一种计算方法,包括:将多个多位权重存储在存储器阵列中,存储器阵列具有以行和列布置的多个存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,读取端口适于在读取使能输入上有激活信号时,在输出处生成指示存储在存储器元件中的节点处的信号的信号,并且使输出与节点隔离,存储器阵列还具有多条读取使能线,每条读取使能线连接至一行存储器单元的读取使能输入,其中,存储多个多位权重的每一个包括将多位权重存储在共享多条读取使能线中的相应一条的一行存储器单元中,存储器阵列还具有多条数据输出线,每条数据输出线连接至一列存储器单元的读取端口的输出;将多个脉冲信号序列施加于多条读取使能线中的相应读取使能线,以在相应行存储器单元的读取端口的多个输出中的每一个上生成输出信号;组合多列存储器单元中每一列的读取端口的多个输出上的输出信号,并通过重要性因子对组合输出信号进行加权,至少两个重要性因子彼此不同;组合加权的输出信号以生成模拟输出;以及将模拟输出转换为数字输出。
根据本发明的又一个方面,提供了一种计算方法,包括:将多个多位权重存储在存储器阵列中,存储器阵列具有以行和列布置的多个存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,读取端口适于当在读取使能输入处有激活信号时,在输出处生成指示存储在存储器元件中的节点上的信号的信号,并将输出与节点隔离;同时将输入信号乘以多个多位权重中每一个的每个位,以在读取端口的输出处生成多个输出信号;将每一列中的存储器单元的读取端口的输出处的多个输出信号相加;通过重要性因子对每一列中的存储器单元的读取端口的输出处的多个输出信号的总和中的每一个进行加权,以生成相应加权和,重要性因子彼此不同;以及组合加权和以生成模拟输出信号。
附图说明
当结合附图进行阅读时,根据下面详细的描述可以最佳地理解本发明的各个方面。应该注意,根据工业中的标准实践,各个部件未按比率绘制。实际上,为了清楚的讨论,各种部件的尺寸可以被任意增加或减少。
图1是根据一些实施例的示出在存储器中的计算***的一部分中具有与写入位线(WBL)隔离的读取位线(RBL)的存储器单元的示例的示意图。
图2A是根据一些实施例的存储器中的计算***的框图并且是示出四位精度的权重计算子***的存储器中的计算***的一部分的更详细框图。
图2B是根据一些实施例的在图2A所示的***中标记为“B”的八晶体管(8T)RAM单元的示意图。
图2C是根据一些实施例的图2B的且在图2A所示的***中标记为“C”的八晶体管(8T)RAM单元的示意性布局。
图3A示出根据一些实施例的处于RBL采样状态的存储器中的计算***的一部分。
图3B示出根据一些实施例的处于电荷共享状态的图3A所示的存储器中的计算***的一部分。
图3C示出根据一些实施例的图3A和图3B所示的存储器中的计算***的部分中各种信号的电平的时间演化。
图4示出根据一些实施例的用于处理RBL线上的电压的模数转换方案。
图5是概述根据一些实施例的计算方法的流程图。
具体实施方式
以下公开内容提供了许多不同的实施例或实例,以用于实现所提供主题的不同特征。在下面描述元件和布置的特定实例以简化本发明。当然,这些仅是实例并且不意欲限制本发明。例如,在以下描述中,在第二部件上方或上形成第一部件可以包括第一部件和第二部件直接接触的实施例,也可以包括在第一部件和第二部件之间形成额外的部件使得第一部件和第二部件可以不直接接触的实施例。另外,本发明可以在各个示例中重复附图标记和字母。这种重复是为了简明和清楚,但是其本身没有指明所讨论的各个实施例和/或配置之间的关系。
在本公开中示出的特定示例涉及存储器中的计算。存储器中的计算的应用的示例是乘法累加操作,其中输入数字阵列与另一数字(权重)阵列(例如,列)中的相应元素相乘(加权),并且乘积相加(累加)以产生输出和。这在数学上类似于两个向量的点积(或标量积),在此过程中,两个向量的分量彼此成对相乘,并且将分量对的乘积相加。在某些人工智能(AI)***中,诸如人工神经网络中,可以通过多列权重对数字阵列进行加权。每列的加权产生相应的输出和。因此,通过多列的矩阵中的权重,从输入数字阵列产生和的输出阵列。
集成电路存储器的常见类型是静态随机存取存储器(SRAM)器件。典型的SRAM存储器件具有存储器单元阵列。在一些示例中,每个存储器单元使用连接在上参考电位和下参考电位(例如,地)之间的六个晶体管(6T),使得两个存储节点之一可以被要存储的信息占用,并且互补信息存储在另一存储节点上。SRAM单元中的每个位都存储在四个晶体管中,这些晶体管形成两个交叉耦合的反相器。其他两个晶体管连接至存储器单元字线(WL),以通过将存储器单元选择性地连接至其位线(BL)来控制在读写操作期间对存储器单元的访问。当字线被使能时,连接到位线的感测放大器感测并输出存储的信息。处理存储器单元数据时,经常使用连接到位线的输入/输出(I/O)电路。当多个WL被激活并且位单元最初存储相反的值时,两条位线可以为低/高。
在诸如存储器中的计算的多位应用中,当同时激活多条字线时,可能会降低6T位单元的稳定性。当多条字线同时被激活时,两条位线电压都将被拉低。这可能会导致位单元稳定性的问题,并导致其状态翻转。附加地,使用基于逻辑规则的SRAM位单元具有显著的面积开销,这尤其是由于中间计算需要存储。更进一步,使用已知存储器布置的二进制输入/权重/输出对于存储器中的计算的一般使用来说可能过于简单,因为存储器中的计算中使用的算法要解决的许多问题都需要多位计算步骤。本公开中公开的某些实施例提供了存储器中的多位计算,具有直接结果,而无需中间存储空间,并且不会破坏每个单元的稳定性。
根据本公开的一些方面,存储器中的计算(CIM)***包括存储器阵列,其中每个存储器单元具有相互隔离的读取位线(RBL)和写入位线(WBL),其中通过读取位线可以读取存储信息并且通过写入位线可以将信息写入单元。例如,向6T SRAM添加2T读取端口的8TSRAM单元连接到读取字线(RWL)和RBL。由于8T位单元的RBL与6T存储器单元解耦,因此同时导通的多个RWL不会使存储节点电压失调。一些公开的实施例提供一种CIM***,其具有包括多个RWL和RBL的8T SRAM单元的阵列。
根据本公开的某些方面,可以利用多个RWL脉冲来实现具有多位输入的CIM***。例如,在一些实施例中,乘法累加操作中的输入信号可以通过多个RWL脉冲来实现,该数目与输入成比例。在一些示例中,可以使用4位输入,但是其他位宽度在本公开的范围内。例如,输入0由0(00002)个RWL脉冲表示,输入310(00112)由3个RWL脉冲表示,输入1510(11112)由15个RWL脉冲表示,依此类推。
在一些实施例中,可以将输入信号乘以布置在列中的多位(例如,四位)权重(即,权重值)。多位加权输入的累加可以通过从与多位权重的每一位对应的列中的所有单元中对公共RBL充电来实现;因此,每个RBL上的电压指示来自连接到RBL的每个单元的电流之和,并因此指示输入之和,每个均由与列关联的二进制权重加权。因此,在RBL上执行乘法累加功能,并且RBL电压和权重位与多位输入的按位相乘成比例。然后,使用二进制加权电容器,即根据多位权重中相应有效位置确定大小的电容器,对多位权重的每一列执行RBL之间的电荷共享。因此,权重的最高有效位(MSB)比权重的最低有效位(LSB)对最终输出贡献更多。因此,电荷共享会产生反映每个RBL的正确重要性模拟电压。例如,对于一列四位权重,最高MSB对最终电压的贡献将是LSB的贡献的八(23)倍;第二MSB的贡献将是LSB的贡献的四(22)倍;而第三MSB(或第二LSB)的贡献将是LSB贡献的二(21)倍。
在某些其他实施例中,在一些示例中,使用诸如闪存ADC的模数转换器(ADC)来将RBL上的电压(在如上所述的二进制加权电荷共享之后)转换为多位数字输出。在一些实施例中,对于n位输出,将2n-1个比较器用于ADC实现。例如,对于4位输出示例,将15个比较器用于闪存ADC实现。在一些实施例中,每个比较器具有其自己的输入电容器。这些输入电容器可以用作用于电荷共享的上述二进制加权电容器。在某些实施例中,每个RBL连接到的输入电容器的数量与和RBL关联的输出位的位置值有关(例如,成比例)。例如,对于4位输出,MSB的RBL连接到8(23)个输入电容器;LSB的RBL连接到1(20)个输入电容器。因此,连接到每个RBL的总电容与对应于RBL的位置值成比例。其他位宽输出在本公开的范围内。
参考图1-图4,在下面进一步解释这些实施例的详细方面之前,提供一些示例实施例的概述。在某些应用中,诸如人工智能中,提出了一种模型***。一组输入(例如,数字)被提供给模型***,该模型***处理输入并生成输出。将输出与所需输出进行比较,如果输出与所需输出不够接近,则调整模型***,并重复该过程,直到模型***的输出足够接近所需输出。例如,为了具有可以读取的机器,可以向模型***提供一组字母片段。***获取片段(输入)并根据算法处理片段,然后输出字母,由***确定接收到的字母。如果输出字母与输入字母不同,则可以调整***并再次进行测试,直到输出以足够高的百分比与输入匹配。
对于某些应用,模型***可以是乘法累加***,该***通过将每个输入与值(有时称为“权重”)相乘来处理一组输入并将乘积相加(累加)。该***可以包括布置成行和列的元件的二维阵列,每个元件存储权重,并且能够接收输入并生成输出,该输出是输入和存储的权重的算术乘积。模型***可以将每个输入提供给整行元件,并将每列元件的输出相加。
例如,图1所示的***(100)具有一列多个8晶体管(8T)静态随机存取存储器(SRAM)单元(110)(图1中仅示出两个单元)。每个单元(110)连接到输入线RWL(156),并且两个单元都连接到相同的输出线RBL(190)。每个单元还具有节点Q,其由SRAM单元维持在指示存储在单元中的值(权重)的电压下。从图1的示意图中可以容易地理解,对于每个单元,对于输入RWL处的二进制“1”,如果Q为“1”,则单元(110)将从RBL汲取电流,而如果Q为“0”,则没有电流;对于RWL处的二进制“0”,单元(110)不汲取电流,这与Q处的值无关。如果在给定时间段内汲取的电流量(即汲取一定量的电荷)高于阈值被视为输出“1”,则下表给出了单个单元(110)的输出:
输入(RWL) 权重Q 输出(RBL)
0 0 0
0 1 0
1 0 0
1 1 1
从该表可以明显看出,输出是输入和权重的乘积。
此外,由于同一列中的单元(110)共享同一RBL,所以RBL上的电流是流向与其连接的单元(110)的电流之和。因此,每个RBL上的信号表示输入(RWL)和相应存储的权重的二进制乘积之和。
参照图2A,在使用多位(在该示例中为四位)权重进行乘法累加操作的***中,每个输入(RWL)被提供给多个(例如四个)单元(110),每个存储一位多位权重。每个RBL连接到具有相同位置值的一列单元(110)(即,20、21、22、23等)。进一步参考图3A,每个RBL连接到一对电容器的组合--用于RBL[j]的计算电容器Cm[j]和补偿电容器Cn[j],每对并联连接,并且在获取每个RBL上的信号时连接到相应的RBL。对于所有RBL,并联组合的总电容是相同的,在该示例中为9*Cu,其中Cu为单位电容。由于下面说明的原因,计算电容器的电容针对RBL[0]、RBL[1]、RBL[2]和RBL[3]分别为1、2、4和8倍Cu,补偿电容器的电容针对RBL[0]、RBL[1]、RBL[2]和RBL[3]分别为8、7、5和1倍Cu,因此并联组合的总电容为9*Cu
给定每个RBL上的电容(在该示例中为9*Cu),由于流向对应列中的单元(110)的电流而引起的每个节点N0、N1、N2或N3(图3A)处的压降(假设电容器被预充电)与针对该列的输入(RWL)和相应存储的二进制权重的二进制乘积之和成比例。由于针对每个RBL的总电容相同,因此每个RBL的比例常数相同。同时,由于每个计算电容器Cm的电容与相应RBL的位置值成比例,因此来自每个计算电容器Cm的电荷损耗也与RBL的位置值成比例。
接下来,进一步参考图3B,计算电容器Cm与补偿电容器Cn断开连接并且彼此并联连接,即,节点N0、N1、N2和N3连接在一起。因此,存储在计算电容器上的电荷被共享,并且N0、N1、N2和N3处的电压稳定在电平V=Qtotal/Ctotal,其中Qtotal是所有计算电容器上电荷的总和,而Ctotal是并联组合的电容的总和,在该示例中为15*Cu。由于计算电容器的电容与相应RBL的位置值成比例,因此Qtotal和V以及由于放电引起的压降ΔV与每个RBL的位置值成比例地具有来自每个RBL的贡献。即,
Figure BDA0002801648910000081
其中Ij是电流,并且与针对第j个RBL的输入(RWL)和相应存储的权重的二进制乘积之和成比例。因此,ΔV与输入与存储在单元[110]中的相应多位权重之间的乘积之和成比例。
最后,另外参考图4,通过模数转换器(ADC)将节点N0、N1、N2和N3处的电压转换为数字输出,以获得与输入和存储在单元[110]中的相应多位权重之间的乘积之和对应的数字输出。
为了更详细地说明上述***及其操作,如下所述,在一些实施例中的存储器中的计算***包括存储器阵列(100),其包括存储器单元(110)的行和列(可以是物理的或逻辑的行和列)以及其他组件,诸如用于将数字输入转换为计数器脉冲序列(例如,使用二进制计数器)的数字输入接口(图1中未示出)和用于累加加权的输入并输出累加的加权输入的数字表示的输出接口(图1中未示出)。
在该示例中,每个存储器单元(110)包括6T存储器单元(120)和读取端口(150)。6T存储器单元(120)包括:第一反相器(126),其由p型金属氧化物半导体(MOS)场效应晶体管(PMOS)(122)和n型MOS场效应晶体管(NMOS)在高参考电压(诸如VDD)和低参考电压(诸如地)之间串联连接(即,源漏电流路径串联)而成;第二反相器(136),其由PMOS(132)和NMOS(134)在高参考电压(诸如VDD)和低参考电压(诸如地)之间串联连接而成;以及两个写入访问晶体管(142、144),其在该示例中为NMOS。反相器(126、136)反向耦合,即一个的输出(Q、QB)(即,源极/漏极电流路径之间的结)耦合至另一个的输入(即,栅极)(QB、Q);每个写入访问晶体管(142、144)具有连接在反向耦合的反相器(126、136)的相应结与相应写入位线(WBL(170)、WBLB(180))之间的源极/漏极电流路径,其栅极连接至写入字线(WWL)(160)。
在该示例中,每个读取端口(150)包括彼此串联连接并且连接在低参考电压和数据输出线(有时称为读取位线(RBL))之间的读取晶体管(152)和读取访问晶体管(154)。在该示例中,读取晶体管(152)是NMOS,并且其栅极连接至6T存储器单元(120)的反相输出(QB);在该示例中,读取访问晶体管(154)是NMOS,并且其栅极连接至读取字线(RWL)。可以使用其他类型的晶体管和连接。例如,PMOS可以用于读取晶体管(152)和读取访问晶体管(154)中的两者或之一;读取晶体管(152)的栅极可以连接至6T存储器单元(120)的同相输出(Q)。
在操作中,为了向存储器单元(110)写入位,将数据位(1或0)(例如,对应于1或0的电压)施加于WBL,并将反转的数据位施加于WBLB。将写信号(例如,1)施加到于写入访问晶体管(142、144)以使晶体管导通,从而将数据位存储在6T存储器单元(120)的输出(Q)处,并将反转的数据位存储在(QB)处。此后可以关断写入访问晶体管(142、144),并且维持Q处的值和QB处的反转值。为了读取所存储的数据位,写入访问晶体管(142、144)被关断(WL=0),并且读取访问晶体管(154)被施加到RWL的读取信号开启(导通)。因此,在RBL中生成与QB(或Q)处的电压对应的单元电流Icell(其又表示6T存储器单元(120)中的存储值(1或0))并由输出接口(图1中未显示)中的电路感测。
由于RBL通过每个读取端口(150)中的读取晶体管(152)与反相器(126、136)的输出Q或QB隔离(即,RBL上或中的电压和电流对Q或QB基本上没有影响),和/或因为写入访问晶体管(142、144)被关断(WL=0),所以多个RWL可以被同时激活(即,多个读取访问晶体管(154)导通),而无需使Q或QB处的电压失调。
根据一些实施例,如图2A所示,CIM***(200)包括存储器阵列,诸如上述存储器阵列(100),其包括8T存储器单元(110)。在该示例中,存储器阵列(100)是64×64个8T存储器单元(110)的阵列,即,以64行(行i,i=0至63)×64列(行j,j=0至63)布置的存储器单元(110),但是可以使用任何其他阵列,包括各种大小的二维和三维阵列。每个8T存储器单元(110)可以具有以上参考图1描述并且在图2B中进一步示出的结构。每个8T存储器单元(110)可以具有任何合适的物理结构。例如,每个8T存储器单元(110)的晶体管可以是场效应晶体管(FET)。在一个示例中,如图2C所示,可以以所谓的FinFET结构形成FET,其中掺杂的半导体形成脊或“鳍”,其用作FET的有源区域,并可以沿其形成源极和漏极区域。诸如掺杂的多晶硅(“poly”)的导电材料围绕鳍的顶部并用作栅极。例如,如图2C所示,可以沿P掺杂的鳍(252)(对于PMOS)和n掺杂的鳍(254)(对于NMOS)在FinFET结构(250)中形成存储器单元(110)的晶体管,其中在鳍(253、256)上形成多晶硅栅极(256)。
在一些实施例中,阵列(100)中的存储器单元(110)具有相同的构造。在其他实施例中,阵列(100)中的存储器单元(110)可以彼此不同。例如,相应读取端口(150)中的晶体管(152、154)之间的尺寸比可以在存储器单元之间不同,从而由同一RWL信号生成的电流是不同的。
该示例中的CIM***(200)还包括输入接口(210),其在该示例中包括数字计数器阵列(212)和对应的驱动器阵列(214)。在该示例中,存在64个4位计数器(212),64×64存储器单元阵列(100)的每一行有一个;每个计数器(212)在每个计数周期输出与计数器输入处的数量(在这种情况下为4位二进制数)对应的脉冲数量。例如,输入0(00002)生成0个脉冲,输入310(00112)生成3个RWL脉冲,输入1510(11112)生成15个RWL脉冲,依此类推。与每个计数器(212)对应的驱动器(214)根据来自计数器的输出脉冲来驱动对应的RWL(190[j](j=0至63))。因此,RWL脉冲序列施加于对应的RWL(156[i](i=0至63)),该RWL脉冲的每个计数周期的数量指示相应计数器(212)的输入处的数字数量。
在一些实施例中,CIM***(200)还包括连接到存储器阵列(100)的读取/写入(RW)接口(216),用于与存储器阵列相关联的常规读取和写入操作。
在一些实施例中,CIM***(200)还包括输出接口(220),其在一些示例中包括连接至存储器阵列(100)的补偿模块(222)以及连接至补偿模块(222)的计算模块(224)。如下面更详细地描述的,补偿模块用于与计算模块(224)一起形成统一的环境,即,相同的总电容,以用于RBL的预充电和采样;计算模块(224)用于计算指示RBL或其某些组合上的信号值的量。例如,如下面更详细地描述的,在一些实施例中,计算模块(224)适于计算若干RBL的加权和或加权平均值。在一些实施例中,这是通过电容器之间的电荷共享来完成的,该电容器根据二进制数的相应RBL的相对有效位置(最高有效位(MSB)至最低有效位(LSB))确定大小。例如,在一些实施例中,电容器的相对尺寸从MSB到LSB为23:22:21:20。结果,结果信号的幅度对应于由多位权重加权的多位输入信号之和。
在一些实施例中,如图2A中的CIM***(200)的四位宽段(230)所示,并且在图3A和图3B中更详细地示出,补偿模块(222)包括一组补偿电容器Cn[j](对于每个四位宽段(230),j=0至3),每个与相应的RBL(190[j](j=0至3))相关联。如下面更详细地描述的,在一些实施例中,补偿电容器在计算过程的某些阶段与计算电容器(以下描述)成对并联连接。补偿电容器的大小应确保提供给RBL的总电容相同,使得任何给定RBL中的相同电流将导致RBL上的电压相同。一对开关器件S0A和S0B(诸如任何开关晶体管)与每个补偿电容器Cn[j]相关联,其中S0A将补偿电容器Cn[j]连接到相应的RBL(190[j]),S0B将RBL(190[j])连接到计算模块(224)。每个补偿电容器Cn[j]的一端通过SOA连接到相应的RBL(190[j]),另一端连接到参考电压,诸如地。
计算模块(224)包括一组积分器,用于对每个RBL上的电流进行积分。在一些实施例中,积分器包括计算电容器Cm[j](对于每个四位宽段(230),j=0至3),每个与相应的RBL(190[j](j=0至3)和对应的补偿电容器Cn[j])相关联。在一些实施例中,计算电容器与补偿电容器组合使用,以向相应的RBL提供电容,以建立指示RBL的加权输入之和的电压。如上所述,在一些实施例中,计算电容器与相应的补偿电容器配对,以在计算过程的某些步骤期间向每个RBL呈现相同的电容。如下面进一步解释的,在一些实施例中,计算电容器相对于彼此确定大小,以将重要性分配给相应RBL。一对开关器件SH和S1(诸如任何开关晶体管)与每个计算电容器Cm[j]相关联,其中SH通过S0B将计算电容器Cm[j]连接到相应的RBL(190[j]),并且S1通过SH将计算电容器Cm[j]连接到模拟输出(228)。每个计算电容器Cm[j]的一端分别通过SH和S1连接到模拟输出(228),另一端连接到参考电压,诸如地。
在一些实施例中,如图3A和图3B所示,与每一行i中的存储器单元(110)的RWL[i]分别对应的子集(例如,行[62]的240或行[i]的260[i](i=0至63)可以存储(例如,通过从WWL写入存储器单元(110))多位权重。例如,在使用四位权重的实施例中,四个存储器单元[110]的每个子集(260[i])可以存储四位权重Wi=(Wi[3]Wi[2]Wi[1]Wi[0])2,其中Wi[j]表示第i个RWL(156[i])存储器单元[110]的被第j个RBL(190[j])读取的二进制位。例如,对于行[0](260[0])中的权重W0=01012(=510),子集(260[0])中存储的位为W0[3]=0,W0[2]=1,W0[1]=0,并且W0[0]=1。类似地,对于行[1](260[1])中的权重W1=10112(=1110),子集(260[1])中存储的位为W1[3]=1,W1[2]=0,W1[1]=1,并且W1[0]=1。
因此,图2所示的示例CIM***(200)中的存储器单元(110)的阵列(100)可以存储以64行和16列布置的1024(64×16)个四位权重。
在一些实施例中,根据计算电容器Cm[j]在计算模块中的相应的相对位置(即,索引j)来选择该电容器的电容。例如,在图3A和图3B所示的实施例中,与RBL[j]对应的第j个计算电容器Cm[j]的电容是2jCu,其中Cu是单位电容,其可以是适合于特定应用的任何值。因此,计算电容器的电容对于Cm[0]为1*Cu,对于Cm[1]为2*Cu,对于Cm[2]为4*Cu,对于Cm[3]为8*Cu
在一些实施例中,根据补偿电容器Cn[j]在补偿模块中的相应的相对位置(即,索引j)来选择该电容器的电容。在一些实施例中,选择补偿电容器Cn[j]的电容,使得Cn[j]+Cm[j]=常数,即,当每对补偿和计算电容器并联连接时,RBL呈现相同的(恒定电容),并且Cn[j]是固定的总电容和相应的计算电容Cm[j]之差。例如,在图3A和图3B所示的实施例中,其中呈现给每个RBL的总电容被选择为9*Cu,与于RBL[j]对应的第j个补偿电容器Cn[j]的电容为9*Cu-Cm[j]。因此,补偿电容器的电容对于Cn[0]为8*Cu,对于Cn[1]为7*Cu,对于Cn[2]为5*Cu,对于Cn[3]为1*Cu
在一些实施例中,输出接口(220)还包括用于每个RBL(190)的感测放大器(226),用于增强来自RBL(190)的模拟信号。在一些实施例中,输出接口(220)还包括用于与存储在存储器单元(110)的相应子集(260)中的一列多位权重相关联的RBL的每个子集的模数转换器(ADC)(270)。在一些实施例中,如图4所示,可以使用每个都具有多个电压比较器(272[l],l=0至2n-1,其中n是多位权重中的二进制位的数量)的闪存ADC,其中2j个比较器用于第j个RBL(190[j])。例如,在具有四位权重的应用中,如图4所示,可以使用15个比较器的闪存ADC(272[l],l=0至14)。来自RBL[0]的信号连接到一个比较器SA7(在该示例中为270[7]);来自RBL[1]的信号连接到两个比较器SA6和SA8(在该示例中为270[6]和[8]);来自RBL[2]的信号连接到四个比较器SA5、SA9、SA4和SA10(在该示例中为270[5]、[9]、[4]和[10]);以及来自RBL[3]的信号连接到八个比较器SA3、SA11、SA2、SA12、SA1、SA13、SA0和SA14(在该示例中为270[3]、[11]、[2]、[12]、[1]、[13]、[0]和[14])。
在一些实施例中,比较器(272)均包括输入电容器,并且那些输入电容器可以用作计算电容器Cm。例如,在图4所示的实施例中,假设每个比较器(272)的输入电容器具有单位电容Cu,则比较器SA7的输入电容器可以用作计算电容器Cm[0];可以将SA6和SA8的那些用作Cm[1](例如,并联连接);可以将SA5、SA9、SA4和SA10的那些用作Cm[2](例如,并联连接);以及可以将SA3、SA11、SA2、SA12、SA1、SA13、SA0和SA14的那些用作Cm[3](例如,并联连接)。如上所述,因此连接到每个RBL的总电容与对应于RBL的位置值成比例。分布式模式(即,其中每个RBL 190[j]的连接的子集彼此远离定位),如图4所示的模式(其中每个RBL(190)连接到比较器(272))最小化用作单位电容器(Cu)的输入电容器的电压依赖性。
在一些实施例中,可以使用本公开中公开的CIM***来执行诸如加权和的存储器中的计算。更具体地,输入(例如,64个输入)之和Xi可以分别由多位(例如,四位)权重(Wi)k加权,并且加权的输入Xi(Wi)k可以是求和以生成输出Sk,它是多位权重的第k列的加权和。即,
Figure BDA0002801648910000141
如上所述,在一些实施例中,CIM***(200)的数字输入可以由脉冲序列表示或转换为脉冲序列,其中每个RWL处每个计数周期的脉冲数量指示输入的幅度。此外,可以同时激活RWL,因为RBL与6T存储器单元(120)解耦,因此可以同时激活RWL。此外,如上所述,根据一些实施例,可以将诸如四位权重的多位权重Wi=(Wi[3]Wi[2]Wi[1]Wi[0])2存储在存储器单元(110)的行(190[i])的子集(260[i])中,如图3A和图3B中所示。在一些实施例中,如图5所示,涉及将多位权重施加于相应输入的计算(500)可以以下面的方式执行:
首先(510),一组多位权重(例如,Wi=(Wi[3]Wi[2]Wi[1]Wi[0])2存储在存储器单元的阵列中,每个具有适于在节点处存储信号的存储器元件(诸如6T SRAM单元)和具有读取使能输入线(诸如RWL)和输出线(诸如RBL)的读取端口,该读取端口适于当在读取使能输入处有激活信号时,在输出处生成表示存储在存储器元件中的节点上的信号的信号,并将输出线与节点隔离。
接下来(520),每个均指示相应输入数字的一组脉冲信号分别施加于存储相应多位权重的一组存储器单元的读取使能输入,以在相应存储器单元的输出线处生成一组信号,该组输出信号通过存储的多位权重来指示对脉冲信号的操作(例如,相乘)。
接下来(530),测量(例如,通过RBL采样,下面将详细描述)来自共享每条输出线的存储器单元的读取输出线的组合读取端口输出(例如,组合电流),并且给出与和输出线相关联的权重位的重要性(即,位置值)(例如,Wi[j]的j)对应的重要性因子。例如,四位权重的MSB具有位置值8(即,23);重要性因子可以是位置值本身,也可以是位置值的某些倍。如上所述,可以通过使用对应的计算电容器的相对大小来给每个RBL指定重要性因子。
接下来(540),将来自相应读取输出线的组合读取端口输出与相应的重要性因子成比例地组合(例如,通过电荷共享,如下文详细描述),以生成计算输出信号。
接下来(550),将计算输出信号转换为数字输出(例如,通过15个比较器的模数转换器(ADC))。
如图3A、图3B和图3C所示,在一些实施例中,可以测量RBL上的模拟信号,并将其用于计算输入的加权和,如下所示:
首先,在预充电时段(310)中,将预充电信号PCH施加于每个RBL[j]以及计算电容器Cm[j]和补偿电容器Cn[j]的并联组合,其中S0A、S0B和SH导通(ON)并且S1不导通(OFF)。由于每个组合具有相同的电容,即9×Cu,所以所有组合都充电到相同的总电荷,并且所有四个节点N3、N2、N1和N0处的电压都上升到相同的电平VPCH。接下来,在RBL采样时段(320)中,(参见图3A和图3C),PCH关闭,并且输入脉冲序列被施加于相应RWL,并且对于其中存储有“1”的每个存储器单元(110),相应RWL上的每个脉冲都会产生单元电流Icell,该电流使RBL以由Icell的幅度和每个输入脉冲的持续时间确定的固定量放电。共享相同RBL的所有存储器单元在存储“1”的范围内贡献单元电流,因此产生总放电。因此,每个节点N0、N1、N2和N3处的电压下降的量由相应RBL的总放电确定,并且与权重位和多位输入的按位相乘成比例。
接下来,在电荷共享时段(330)中,(参见图3B和图3C),S0A和S0B被关断,SH保持导通并且S1接通。结果,补偿电容器Cn[j](j=0至3)被切断,并且计算电容器Cm[j](j=0至3)并联在地和输出(228)之间。节点N0、N1、N2和N3也连接在一起并连接到输出(228)。因此,输出(228)上的电压Vout(即,计算电容器Cm[j]上的电压)是存储在补偿电容器Cm[j]中的总电荷除以补偿电容器Cm[j]的电容之和:
Figure BDA0002801648910000151
其中,Q[j]是存储在第j个计算电容器Cm[j]中的电荷。
因为Cm[j]的电容为2jCu/9Cu=第j个RBL上总电容(9Cu)的2j/9,所以每个计算电容器Cm[j]占预充电步骤的存储在每个RBL上的总电荷的2j/9。因此,Cm[3]的电荷是预充电时段结束时Cm[0]的电荷的八倍,是Cm[2]的四倍,并且是Cm[1]的两倍。出于相同的原因,在RBL采样时段中,对于相同的输入和相同的权重位值,Cm[3]损失的电荷是电荷Cm[0]的八倍,是Cm[2]的四倍,并且是Cm[1]的两倍。因此,在电荷共享时段结束时,Cm[3]对总电荷∑jQ[j]的贡献是Cm[0]的八倍、Cm[2]的四倍、Cm[1]的两倍。因此,电压Vout或压降ΔV=VPCH-Vout表示二进制加权和,其中为每个RBL分配与RBL在二进制权重中的重要位置成比例的权重,Wi=(Wi[3]Wi[2]Wi[1]Wi[0])2,或更一般而言,Wi=(…Wi[j]…Wi[2]Wi[1]Wi[0])2。例如,在图3A和图3B所示的实施例中,模拟输出(228)处以及因此电荷共享之后在节点N3、N2、N1和N0处的电压是RCL[3](最高有效位(MSB))的8/15、RCL[2]的4/15、RCL[1]的2/15、RCL[0](最低有效位(LSB)的1/15。
接下来,在ADC评估时段中,SAE信号“ON”以使ADC(226)能够在上述电荷共享之后将RBL(190)上(即,N3、N2、N1和N0处)的电压转换为数字输出信号,在该示例中是与电压对应的四位二进制数(00002至11112)。因此,完成涉及多位输入和多位权重的乘法累加的存储器中的计算。
因为RBL与相应的6T存储器单元解耦,所以可以同时激活多个RWL以施加存储在存储器单元(110)中的权重,而不会破坏任何存储器单元的存储状态。因此,与必须一次一个地应用RWL的情况相比,计算速度得到了改善。
因此,根据一些公开的实施例,一种计算设备包括:存储器阵列,其具有以存储器单元的行和列成组的一组存储器单元,每个存储器单元具有适于存储数据的存储器元件,以及具有读取使能输入和输出的读取端口;读取使能线,每个均连接至并适于将输入信号传输到存储器单元的相应行的读取端口的读取使能输入;数据输出线,每个均连接至存储器单元的相应列的读取端口的输出;输出接口,其具有计算模块,该计算模块包括一组电容器,每个均可连接至数据输出线中的相应一条并具有电容,其中至少两个电容器具有彼此不同的电容,该输出接口被配置为允许电容器共享存储在电容器上的电荷。
在上述计算设备中,还包括:输入接口,输入接口连接至多条读取使能线,并且被配置为在多条读取使能线的至少子集的每一者上生成多个脉冲。
在上述计算设备中,输入接口包括多个计数器,每个计数器具有适于接收数字输入数据的二进制数据输入,并且具有连接至多条读取使能线中的相应一条的输出,计数器被配置为生成多个脉冲,数量指示数字输入的值。
在上述计算设备中,输出接口还包括补偿模块,补偿模块包括多个电容器,每个电容器可连接至相应一条数据输出线并且具有电容,输出接口被配置为针对多条数据输出线中的每一条将计算模块中的相应电容器连接至补偿模块中的相应电容器,以形成具有总电容的电容组合,用于数据输出线的至少子集的组合的总电容基本相同。
在上述计算设备中,还包括:数字读取/写入(RW)接口,数字读取/写入接口连接至存储器阵列并且适于从存储器单元读取数据和向存储器单元写入数据。
在上述计算设备中,每个存储器单元是八晶体管静态随机存取存储器(SRAM)单元,其具有六晶体管SRAM存储器元件,六晶体管SRAM存储器元件具有彼此反向耦合的两个反相器和两个访问晶体管,每个访问晶体管将两个反相器之间的相应结可切换地连接至相应的数据线,通过数据线传输要被写入六晶体管SRAM存储器元件的数据,读取端口具有第一晶体光和第二晶体管,每个晶体管均具有控制电极和主电流路径,控制电极适于控制流经电流路径的电流,主路径串联连接在数据输出线和电压参考点之间,第一晶体管之一的控制电极连接至存储器单元的读取使能线,并且第一晶体管之一的控制电极连接至两个反相器之间的结。
在上述计算设备中,输出接口还包括具有多个模拟输入和用于每个模拟输入的输入电容器的模数转换器(ADC),其中,计算模块中的每个电容器包括输入电容器中的相应一个的至少一部分或输入电容器的相应子集,输入电容器中的相应一个或输入电容器的相应子集中的每一个可连接至相应的数据输出线。
在上述计算设备中,ADC的多个输入电容器被布置成线性阵列,其中,多个输入电容器中可连接至一条数据输出线的至少一个子集至少包括输入电容器的第一子集和输入电容器的第二子集,每个子集可连接至相应一条数据输出线,输入电容器的第一子集中的至少两个输入电容器被第二子集中的至少一个输入电容器分离。
在上述计算设备中,输出接口被配置为:在第一时段中,将每条数据输出线连接至补偿电容器之一和计算电容器中的对应一个的并联组合;并且在第一时段之后的第二时段中,将计算模块中的每个电容器与补偿模块中的相应电容器以及相应的数据输出线断开,并且将计算模块中的多个电容器并联连接。
在上述计算设备中,还包括:输入接口,输入接口连接至多条读取使能线,并且被配置为在第一时段中,在多条读取使能线的至少子集的每一者上生成多个脉冲。
在上述计算设备中,多个存储器单元彼此基本相同,并且计算模块中的多个电容器中的至少两个具有彼此相差大约2n倍的电容,其中n是整数。
根据一些公开的实施例,一种计算方法包括:将多个多位权重存储在存储器阵列中,该存储器阵列具有以行和列布置的存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,该读取端口适于在读取使能输入上有激活信号时,在输出处生成指示存储在存储器元件中的节点处的信号的信号,并且使输出与节点隔离,存储器阵列还具有多条读取使能线,每条读取使能线连接至一行存储器单元的读取使能输入,其中存储多个多位权重的每一个包括将多位权重存储在共享相应的一条读取使能线的一行存储器单元中,存储器阵列还具有数据输出线,每条数据输出线连接至一列存储器单元的读取端口的输出;将脉冲信号序列施加于相应的读取使能线,以在每条数据输出线上生成输出信号;通过重要性因子对组合输出信号进行加权,其中至少两个重要性因子彼此不同;组合加权的输出信号以生成模拟输出;以及将模拟输出转换为数字输出。
在上述计算方法中,将多个多位权重存储在存储器阵列中包括:将多个权重中具有相同重要性的所有位存储在一列存储器单元中;并且通过重要性因子对组合输出信号进行加权包括:根据存储在连接至相应数据输出线的该列存储器单元中的位的重要性,对每一个组合输出信号进行加权。
在上述计算方法中,通过重要性因子对组合输出信号进行加权包括:通过因子2j对组合输出信号进行加权,其中,j表示存储在相应列中的权重位的有效位置,其中j=0表示最低有效位。
在上述计算方法中,通过重要性因子对组合输出信号进行加权包括:从相应一条数据输出线对电容器进行充电或使电容器放电,电容器具有根据连接至相应数据输出线的一列存储器单元中存储的位的重要性的电容。
在上述计算方法中,通过重要性因子对组合输出信号进行加权包括:对具有2jCu的电容的电容器进行充电或使其放电,其中,j表示存储在相应列中的权重位的有效位置,其中j=0表示最低有效位,Cu为单位电容。
在上述计算方法中,组合加权的输出信号以生成模拟输出包括:在电容器之间共享电荷。
在上述计算方法中,从相应一条数据输出线对电容器进行充电或使电容器放电包括:对电容器进行充电或使电容器放电,同时从数据输出线对附加电容器进行充电或使附加电容器放电,通过每一条数据输出线充电或放电的电容器具有总电容,对于所有数据输出线,总电容基本相同。
根据一些公开的实施例,一种计算方法包括:将多位权重存储在存储器阵列中,该存储器阵列具有以行和列布置的多个存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,该读取端口适于在读取使能输入处有激活信号时,在输出处生成指示存储在存储器单元中的节点处的信号的信号,并且使输出与节点隔离;同时将输入信号乘以多位权重中每一个的每一位,以在每个读取端口的输出处生成输出信号;将每一列中的存储器单元的读取端口的输出处的输出信号相加;通过不同的重要性因子对每一列中的存储器单元的读取端口的输出处的输出信号的和中的每一个进行加权,以生成相应的加权和;以及组合加权和以生成模拟输出信号。
在上述计算方法中,通过将输入信号乘以多个多位权重中每一个的每个位包括:通过连接至一行存储器单元的读取使能输入的读取使能线,同时向每一行存储器单元施加输入信号;将每一列中的存储器单元的读取端口的输出处的多个输出信号相加包括:组合相应数据输出线中的存储器单元的读取端口的输出处的电流;通过重要性因子对每一列中的存储器单元的读取端口的输出处的多个输出信号的总和中的每一个进行加权包括:从相应数据输出线对具有电容的电容器进行充电或使该电容器放电,电容器的电容彼此不同;并且组合加权和包括:在电容器之间共享电荷。
以上论述了若干实施例的部件,使得本领域的技术人员可以更好地理解本发明的各个实施例。本领域技术人员应该理解,可以很容易地使用本发明作为基础来设计或更改其他的处理和结构以用于达到与本发明所介绍实施例相同的目的和/或实现相同优点。本领域技术人员也应该意识到,这些等效结构并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下,可以进行多种变化、替换以及改变。

Claims (10)

1.一种计算设备,包括:
存储器阵列,包括按存储器单元的行和列成组的多个存储器单元,每个存储器单元包括适于存储数据的存储器元件以及具有读取使能输入和输出的读取端口;
多条读取使能线,每条读取使能线连接至存储器单元的相应行的读取端口的读取使能输入,并适于将输入信号传输到该读取使能输入;
多条数据输出线,每条数据输出线连接至存储器单元的相应列的读取端口的输出;
输出接口,包括计算模块,所述计算模块包括多个电容器,每个电容器可连接至相应一条数据输出线并具有电容,所述多个电容器中的至少两个具有彼此不同的电容,所述输出接口被配置为允许所述多个电容器共享存储在所述多个电容器上的电荷。
2.根据权利要求1所述的计算设备,还包括:输入接口,所述输入接口连接至所述多条读取使能线,并且被配置为在所述多条读取使能线的至少子集的每一者上生成多个脉冲。
3.根据权利要求2所述的计算设备,其中,所述输入接口包括多个计数器,每个计数器具有适于接收数字输入数据的二进制数据输入,并且具有连接至所述多条读取使能线中的相应一条的输出,所述计数器被配置为生成多个脉冲,数量指示所述数字输入的值。
4.根据权利要求1所述的计算设备,其中,所述输出接口还包括补偿模块,所述补偿模块包括多个电容器,每个电容器可连接至相应一条数据输出线并且具有电容,所述输出接口被配置为针对所述多条数据输出线中的每一条将所述计算模块中的相应电容器连接至所述补偿模块中的相应电容器,以形成具有总电容的电容组合,用于数据输出线的至少子集的所述组合的总电容基本相同。
5.根据权利要求1所述的计算设备,还包括:数字读取/写入(RW)接口,所述数字读取/写入接口连接至所述存储器阵列并且适于从所述存储器单元读取数据和向所述存储器单元写入数据。
6.根据权利要求1所述的计算设备,其中,每个存储器单元是八晶体管静态随机存取存储器(SRAM)单元,其具有六晶体管SRAM存储器元件,所述六晶体管SRAM存储器元件具有彼此反向耦合的两个反相器和两个访问晶体管,每个访问晶体管将所述两个反相器之间的相应结可切换地连接至相应的数据线,通过所述数据线传输要被写入六晶体管SRAM存储器元件的数据,所述读取端口具有第一晶体光和第二晶体管,每个晶体管均具有控制电极和主电流路径,所述控制电极适于控制流经所述电流路径的电流,所述主路径串联连接在所述数据输出线和电压参考点之间,所述第一晶体管之一的控制电极连接至存储器单元的读取使能线,并且所述第一晶体管之一的控制电极连接至所述两个反相器之间的结。
7.根据权利要求1所述的计算设备,其中,所述输出接口还包括具有多个模拟输入和用于每个模拟输入的输入电容器的模数转换器(ADC),其中,所述计算模块中的每个电容器包括所述输入电容器中的相应一个的至少一部分或所述输入电容器的相应子集,所述输入电容器中的相应一个或所述输入电容器的相应子集中的每一个可连接至相应的数据输出线。
8.根据权利要求7所述的计算设备,其中,所述ADC的多个输入电容器被布置成线性阵列,其中,所述多个输入电容器中可连接至一条数据输出线的至少一个子集至少包括输入电容器的第一子集和输入电容器的第二子集,每个子集可连接至相应一条数据输出线,输入电容器的第一子集中的至少两个输入电容器被所述第二子集中的至少一个输入电容器分离。
9.一种计算方法,包括:
将多个多位权重存储在存储器阵列中,所述存储器阵列具有以行和列布置的多个存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,所述读取端口适于在所述读取使能输入上有激活信号时,在所述输出处生成指示存储在所述存储器元件中的节点处的信号的信号,并且使所述输出与所述节点隔离,所述存储器阵列还具有多条读取使能线,每条读取使能线连接至一行存储器单元的读取使能输入,其中,存储所述多个多位权重的每一个包括将多位权重存储在共享所述多条读取使能线中的相应一条的一行存储器单元中,所述存储器阵列还具有多条数据输出线,每条数据输出线连接至一列存储器单元的读取端口的输出;
将多个脉冲信号序列施加于所述多条读取使能线中的相应读取使能线,以在相应行存储器单元的读取端口的多个输出中的每一个上生成输出信号;
组合多列存储器单元中每一列的读取端口的多个输出上的输出信号,并通过重要性因子对组合输出信号进行加权,至少两个重要性因子彼此不同;
组合加权的输出信号以生成模拟输出;以及
将所述模拟输出转换为数字输出。
10.一种计算方法,包括:
将多个多位权重存储在存储器阵列中,所述存储器阵列具有以行和列布置的多个存储器单元,每个存储器单元具有适于在节点处存储信号的存储器元件以及具有读取使能输入和输出的读取端口,所述读取端口适于当在所述读取使能输入处有激活信号时,在所述输出处生成指示存储在所述存储器元件中的节点上的信号的信号,并将所述输出与所述节点隔离;
同时将输入信号乘以所述多个多位权重中每一个的每个位,以在所述读取端口的输出处生成多个输出信号;
将每一列中的存储器单元的读取端口的输出处的多个输出信号相加;
通过重要性因子对每一列中的存储器单元的读取端口的输出处的多个输出信号的总和中的每一个进行加权,以生成相应加权和,所述重要性因子彼此不同;以及
组合所述加权和以生成模拟输出信号。
CN202011352312.0A 2019-11-27 2020-11-26 计算设备以及计算方法 Active CN112951294B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962941330P 2019-11-27 2019-11-27
US62/941,330 2019-11-27
US17/034,701 US11322195B2 (en) 2019-11-27 2020-09-28 Compute in memory system
US17/034,701 2020-09-28

Publications (2)

Publication Number Publication Date
CN112951294A true CN112951294A (zh) 2021-06-11
CN112951294B CN112951294B (zh) 2024-05-14

Family

ID=75974417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011352312.0A Active CN112951294B (zh) 2019-11-27 2020-11-26 计算设备以及计算方法

Country Status (3)

Country Link
US (2) US11322195B2 (zh)
CN (1) CN112951294B (zh)
TW (1) TWI750913B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115935878A (zh) * 2023-01-06 2023-04-07 上海后摩智能科技有限公司 基于模拟信号的多比特数据计算电路、芯片及计算装置
CN117316237A (zh) * 2023-12-01 2023-12-29 安徽大学 时域8t1c-sram存算单元及时序跟踪量化的存算电路
CN117608519A (zh) * 2024-01-24 2024-02-27 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US11694745B1 (en) * 2019-10-18 2023-07-04 Gigajot Technology, Inc. SRAM with small-footprint low bit-error-rate readout
US11322195B2 (en) * 2019-11-27 2022-05-03 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory system
US11714570B2 (en) * 2020-02-26 2023-08-01 Taiwan Semiconductor Manufacturing Company, Ltd. Computing-in-memory device and method
US11372622B2 (en) * 2020-03-06 2022-06-28 Qualcomm Incorporated Time-shared compute-in-memory bitcell
US11693560B2 (en) * 2021-01-22 2023-07-04 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture
TWI752823B (zh) * 2021-02-17 2022-01-11 國立成功大學 記憶體系統
CN113488092A (zh) * 2021-07-02 2021-10-08 上海新氦类脑智能科技有限公司 基于sram实现多比特权重存储与计算的电路及存储与模拟计算***
TWI788964B (zh) * 2021-08-20 2023-01-01 大陸商深圳市九天睿芯科技有限公司 子單元、mac陣列、位寬可重構的模數混合存內計算模組
WO2023224596A1 (en) * 2022-05-16 2023-11-23 The Trustees Of Princeton University Shared column adcs for in-memory-computing macros
CN115458010B (zh) * 2022-08-19 2023-12-01 南方科技大学 一种适用于非易失性存储器存算一体阵列的运算单元

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398209A (en) * 1992-06-23 1995-03-14 Oki Electric Industry Co., Ltd. Serial access memory with column address counter and pointers
US20110116296A1 (en) * 2009-11-16 2011-05-19 Sony Corporation Non-volatile semiconductor memory device
US20140198560A1 (en) * 2013-01-16 2014-07-17 Choong-Jae Lee Memory cell and memory device having the same
US20160232951A1 (en) * 2015-02-05 2016-08-11 The Board Of Trustees Of The University Of Illinois Compute memory
US20180158517A1 (en) * 2016-12-06 2018-06-07 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
US20190228825A1 (en) * 2018-01-24 2019-07-25 Microsemi Soc Corp. Vertical resistor based sram cells
CN110364203A (zh) * 2019-06-20 2019-10-22 中山大学 一种支撑存储内计算的存储***及计算方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4498374B2 (ja) * 2007-03-22 2010-07-07 株式会社東芝 半導体記憶装置
US20190311749A1 (en) * 2018-04-09 2019-10-10 Anaflash Inc. Logic Compatible Embedded Flash Memory
US10748603B2 (en) 2018-09-28 2020-08-18 Intel Corporation In-memory multiply and accumulate with global charge-sharing
US11048434B2 (en) * 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
US20200410334A1 (en) * 2019-06-25 2020-12-31 Sandisk Technologies Llc Binary weighted voltage encoding scheme for supporting multi-bit input precision
US11322195B2 (en) * 2019-11-27 2022-05-03 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398209A (en) * 1992-06-23 1995-03-14 Oki Electric Industry Co., Ltd. Serial access memory with column address counter and pointers
US20110116296A1 (en) * 2009-11-16 2011-05-19 Sony Corporation Non-volatile semiconductor memory device
US20140198560A1 (en) * 2013-01-16 2014-07-17 Choong-Jae Lee Memory cell and memory device having the same
US20160232951A1 (en) * 2015-02-05 2016-08-11 The Board Of Trustees Of The University Of Illinois Compute memory
US20180158517A1 (en) * 2016-12-06 2018-06-07 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
US20190228825A1 (en) * 2018-01-24 2019-07-25 Microsemi Soc Corp. Vertical resistor based sram cells
CN110364203A (zh) * 2019-06-20 2019-10-22 中山大学 一种支撑存储内计算的存储***及计算方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115935878A (zh) * 2023-01-06 2023-04-07 上海后摩智能科技有限公司 基于模拟信号的多比特数据计算电路、芯片及计算装置
CN115935878B (zh) * 2023-01-06 2023-05-05 上海后摩智能科技有限公司 基于模拟信号的多比特数据计算电路、芯片及计算装置
CN117316237A (zh) * 2023-12-01 2023-12-29 安徽大学 时域8t1c-sram存算单元及时序跟踪量化的存算电路
CN117316237B (zh) * 2023-12-01 2024-02-06 安徽大学 时域8t1c-sram存算单元及时序跟踪量化的存算电路
CN117608519A (zh) * 2024-01-24 2024-02-27 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路
CN117608519B (zh) * 2024-01-24 2024-04-05 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路

Also Published As

Publication number Publication date
US20220262424A1 (en) 2022-08-18
TW202127325A (zh) 2021-07-16
CN112951294B (zh) 2024-05-14
TWI750913B (zh) 2021-12-21
US20210158854A1 (en) 2021-05-27
US11322195B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
CN112951294B (zh) 计算设备以及计算方法
CN112992223B (zh) 一种存内计算单元、阵列及装置
CN109979503B (zh) 一种在内存中实现汉明距离计算的静态随机存储器电路结构
US11693560B2 (en) SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture
CN113467751B (zh) 一种基于磁性随机存储器的模拟域存内计算阵列结构
TWI750038B (zh) 記憶體裝置、計算裝置及計算方法
CN112036562B (zh) 一种应用于存内计算的位单元及存算阵列装置
CN113257306B (zh) 一种基于静态随机存取存储器的存算一体阵列及加速装置
CN115039177A (zh) 低功耗存储器内计算位单元
CN113255904A (zh) 电压裕度增强型电容耦合存算一体单元、子阵列及装置
CN111816232A (zh) 一种基于4管存储结构的存内计算阵列装置
CN112151092A (zh) 一种基于4管存储的存储单元、存储阵列及存内计算装置
CN114038492B (zh) 一种多相采样存内计算电路
Lee et al. A charge-sharing based 8t sram in-memory computing for edge dnn acceleration
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
Sehgal et al. Trends in analog and digital intensive compute-in-SRAM designs
Zang et al. 282-to-607 TOPS/W, 7T-SRAM based CiM with reconfigurable column SAR ADC for neural network processing
CN115424645A (zh) 计算器件、存储器控制器和执行存储器中计算的方法
CN114974351B (zh) 一种多比特存内计算单元及存内计算装置
US11809838B2 (en) Memory device and operation method thereof
US20240127873A1 (en) Computing-in-memory device including digital-to-analog converter based on memory structure
Zhang et al. An 8T SRAM Array with Configurable Word Lines for In-Memory Computing Operation. Electronics 2021, 10, 300
Li An energy efficient compute-in-memory SRAM for low power CNN based machine learning application
Jiang et al. A 16nm 128kB high-density fully digital In Memory Compute macro with reverse SRAM pre-charge achieving 0.36 TOPs/mm 2, 256kB/mm 2 and 23. 8TOPs/W
Ananthanarayanan et al. Design and Analysis of Multibit Multiply and Accumulate (MAC) unit: An Analog In-Memory Computing Approach

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