掌桥专利:专业的专利平台
掌桥专利
首页

存储器器件、计算器件以及计算方法

文献发布时间:2023-06-19 12:21:13


存储器器件、计算器件以及计算方法

技术领域

本发明的实施例涉及存储器器件、计算器件以及计算方法。

背景技术

本发明总体上涉及在诸如乘法累加运算等数据处理中使用的存储器阵列。内存中计算或内存中计算系统将信息存储在计算机的主随机存取存储器(RAM)中并在存储器单元级别执行计算,而不是每个计算步骤都在主RAM与数据存储区之间移动大量数据。由于将所存储的数据在存储在RAM中后可更快地存取,因此内存中计算可实时分析数据,从而在业务和机器学习应用程序中实现更快的报告和决策速度。正在努力改善内存中计算系统的性能。

发明内容

根据本发明实施例的一个方面,提供了一种存储器器件,包括:存储元件,具有写入控制输入、权重输入和权重输出,并适于响应于来自写入控制输入的写入控制信号而在权重输入处接收权重值并存储权重值;电容器;第一开关器件,具有数据输入,并适于响应于数据输入处的数据输入控制信号而将存储元件的权重输出互连至电容器的第一端;以及第二开关器件,具有读取控制输入,并适于响应于读取控制输入处的读取控制信号而将电容器的第一端互连至读取位线(“RBL”)。

根据本发明实施例的另一个方面,提供了一种计算器件,包括:多个读取位线(“RBL”);多个写入位线(“WBL”);多个写入字线(“WWL”);多个输入线(“IN”);多个评估线(“EVAL”);多个存储器单元,逻辑上以行和列布置,存储器单元的列中的每个与RBL中的相应一个和WBL中的相应一个相关联,存储器单元的行中的每个与WWL中的相应一个、IN中的一个和EVAL中的一个相关联。存储器器件中的每个包括:存储元件,具有写入控制输入、权重输入以及权重输出,写入控制输入连接至与存储元件所属的行相关联的WWL,权重输入连接至与存储器单元所属的列相关联的WBL,并且存储元件适于响应于来自WWL的写入控制信号而从WBL接收权重值并存储权重值;电容器;第一开关器件,具有连接至与存储器单元所属的行相关联的IN的数据输入,并适于响应于来自IN的数据输入控制信号而将存储元件的权重输出互连至电容器的第一端;和第二开关器件,具有连接至与存储器单元所属的行相关联的EVAL的读取控制输入,并适于响应于来自EVAL的读取控制信号而将电容器的第一端互连至与存储器单元所属的行相关联的RBL。

根据本发明实施例的又一个方面,提供了一种计算方法,包括:生成乘积信号集,乘积信号集各自指示对应于输入信号集中的一个的值与存储在一组数据存储元件中的相应一个中的值的乘积;将跨一组电容器的电压设置成预定电平,组电容器各自对应于组数据存储元件中的一个;在跨组电容器的电压已设置成预定电平之后,将乘积信号集施加至组电容器中的相应电容器;在已将乘积信号施加至电容器之后将电容器放电至输出线;以及在输出线上生成表示乘积信号之和的信号。

附图说明

当与附图一起阅读时,根据以下详细描述可最好地理解本发明的各方面。应注意,根据行业中的标准实践,各种部件未按比例绘制。实际上,为论述清楚,各种部件的尺寸可任意增加或减少。

图1是根据一些实施例的内存中计算(“CIM”)器件的一部分的示意图。

图2示意性地示出根据一些实施例的向图1中的CIM器件写入权重。

图3示意性地示出根据一些实施例的重置图1中的CIM器件的单元电容器电压。

图4示意性地示出根据一些实施例的将输入与存储在图1中的CIM器件中的权重进行相乘。

图5示意性地示出根据一些实施例的输入与存储在图1中的CIM器件的权重的乘积进行求和。

图6是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图7是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图8是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图9是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图10是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图11是根据一些实施例的内存中计算(“CIM”)器件的一部分的详细示意图。

图12概述了根据一些实施例的用于执行乘法累加(“MAC”)运算的过程。

图13是根据一些实施例的用于执行2位乘法的CIM器件的示意图。

具体实施方式

以下公开内容提供用于实施提供的主题的不同特征的许多不同实施例或示例。以下将描述元件和布置的特定实例以简化本发明。当然,这些仅仅是实例,并非旨在限制本发明。例如,在以下描述中,在第二部件上方或上形成第一部件可包括第一部件与第二部件直接接触的实施例,也可包括形成在第一部件与第二部件之间的附加部件使得第一部件与第二部件不直接接触的实施例。此外,本发明可在各个实例中重复参考数字和/或字符。这种重复是为了简化和清楚的目的,并且其本身不指示所论述的各个实施例和/或配置之间的关系。

本发明总体上涉及内存中计算(“CIM”)。CIM的应用的一个实例是乘法累加(“MAC”)运算,其中,将输入的数字数组与另一个数字(权重)的数组(例如,列)中的相应元素相乘(加权),然后将乘积相加(累加)在一起以生成输出和。这在数学上类似于两个向量的点积(或标量积),在此过程中,两个向量的分量彼此成对相乘,并且对分量对的乘积进行求和。在诸如人工神经网络等某些人工智能(AI)系统中,可通过多列权重对数字数组进行加权。每列的加权生成相应输出总和。因此,通过多个列的矩阵中的权重,从数字的输入数组得出总和的输出数组。在其他应用中采用了类似的操作,诸如多位卷积神经网络(“CNN”)操作。

CIM可用多种存储器器件来实现,包括静态随机存取存储器(“SRAM”)。在典型的SRAM器件中,在通过来自一个或多个字线(“WL”)的使能信号激活SRAM单元中的一个或多个存取晶体管后,通过一个或多个位线(BL)将数据写入SRAM单元或从SRAM单元读取数据。基于常规SRAM的CIM设计接通一列SRAM单元中的多个WL,以释放公共BL(诸如读取BL(“RBL”))以实现1位MAC。然而,由于单元电流的变化,RBL放电电平会随单元电流的不同组合而变化,从而导致MAC运算不准确。

根据本发明中公开的一些实施例,电荷共享方案用于减轻单元电流的变化,以便为CIM计算获得更高的精度。在一些实施例中,电容器与每个SRAM单元相关联,并且与列中的所有SRAM单元相关联的电容器包括来平均化RBL电流。在一些实施例中,与CIM器件中的RBL相关联的存储器单元包括:存储元件,适于存储权重;第一开关器件,连接至存储元件并适于受输入信号控制,并生成具有指示输入信号与所存储权重的乘积的幅度。存储器单元还包括电容器,电容器适于接收乘积信号并存储与对应于乘积信号的幅度的电荷量。存储器单元还包括第二开关器件,第二开关器件适于将电容器上的电荷转移至RBL。

根据一些实施例,一种计算方法包括:生成乘积信号集,所述乘积信号集各自指示对应于输入信号集中的一个的值与存储在一组数据存储元件中的相应一个中的值的乘积;将跨一组电容器的电压设置成预定电平(诸如地),所述组电容器各自对应于所述组数据存储元件中的一个;在跨所述组电容器的所述电压已设置成所述预定电平之后,将所述乘积信号集施加至所述组电容器中的所述相应电容器;在已将所述乘积信号施加至所述电容器之后通过输出线对所述电容器放电;以及在所述输出线上生成表示所述乘积信号之和的信号。

在某些更特定的实施例中,如图1至图5所示,内存中计算器件100包括以行112(第i行标记为112

第一开关器件124输出至节点P的值由第一开关器件124的状态和存储在存储元件122中的权重W决定,第一开关器件124的状态又由IN上的信号决定。当IN上的信号为“1”时,第一开关器件124将存储在存储元件122中的权重传递给节点P。当IN上的信号为“0”时,第一开关器件124都向节点P输出“0”,不论存储在存储元件122中的权重如何。因此,第一开关器件124的输出由下表给出:

从表中明显看出,输出是IN上的信号与存储在存储元件122中的权重的乘积,即,输出=IN×W。

在操作中,在一些实施例中,在第一步骤中,如图2所示,通过依次接通相应WWL并根据接通的WWL而设置WBL上的值来将权重写入至列114中的存储元件122中。例如,当第n行的WWL接通时,可将WBL设置为“0”以将“0”写入至第n行的存储元件;当第n-1行的WWL开启时,可将WBL设置为“1”以将“0”写入至第n-1行的存储元件。

接下来,如图3所示,每个存储器单元120的节点P处的电压V

接下来,如图4所示,通过在每个存储器单元中的第二开关器件128关断(EVAL=0)的情况下将IN设置为适当的值来执行上述乘法运算IN×W。因此,每个存储器单元120的节点P处的电压V

接下来,如图5所示,在V

其中,n是同一RBL上存储器单元120的数量,m是在电荷共享之前存储IN×W=1的节点P的数量,并且V

因此,V

更一般地,根据一些实施例,如图12中概述的计算方法1200包括生成1210(例如,通过将输入信号施加至IN线上,如图4所示)乘积信号集,所述乘积信号各自指示对应于输入信号集中的一个的值与存储在一组数据存储元件的相应一个中的值的乘积。方法1200还包括将跨一组电容器的电压设置1220为预定电平(诸如地),该组电容器上的每个电容器对应于一组数据存储元件中的一个(例如,通过在保持第一开关124关断的同时接通第二开关128,从而使电容器126预放电,如图3所示)。方法1200还包括:在跨电容器的电压已被设置为预定电平之后,将乘积信号集施加1230至该组电容器中的相应电容器(例如,通过在保持第二开关128关断的同时接通第一开关124,从而为电容器126充电,如图4所示);在将乘积信号施加至电容器之后,通过输出线对电容器放电1240(例如,通过在保持第二开关128关断的同时接通第一开关124,如图5所示)。最终,方法1200包括在输出线上生成1250指示乘积信号之和的信号(例如,通过基于电容C

上面以一般术语讨论的CIM器件可以多种配置实现。图6至图11中示出若干实例。实例CIM器件600是图1所示的CIM器件100的特定实现方式。存储元件122由SRAM单元622实现,该SRAM单元包括各自由一对互补金属氧化物半导体(“CMOS”)晶体管制成的两个反向耦合的反相器。第一反相器由在高参考电压(例如,V

在图7所示的另一个实例例中,CIM器件700与图6所示的CIM器件600基本相同,不同之处在于CIM器件600中的CMOS传输门624被替换成PMOS 724。

在图8所示的另一实例注例中,CIM器件800与图7所示的CIM器件700基本相同,不同之处在于复位晶体管650跨电容器626连接并受复位线(“RST”)控制以对电容器626放电,而不是使用RSL和第二开关器件628以进行放电。在此特定实例中,随着RST上的信号变高,复位晶体管650导通并导电,从而对电容器626放电。

在图9所示的另一个实例注例中,CIM器件900与图7所示的CIM器件700基本相同,不同之处在于PMOS 662和NMOS 664与CMOS对636、638串联地添加(参见图8),并且将CIM器件700中的NMOS 640替换为CMOS传输门940。添加PMOS 662和NMOS 664引入与CMOS对636、638串联的漏极/源极电压降,从而增加用于写入至SRAM单元的阈值电压,并因此增强写入裕度。

在图10所示的另一实例注例中,CIM器件1000与图9所示的CIM器件900基本相同,不同之处在复位晶体管1050跨在电容器626连接并受复位线(“RST”)控制,以与图8所示的实例相同的方式而不是使用RSL和第二开关器件628对电容器626放电。

在图11所示的另一个实例注入中,CIM器件1100与图9所示的CIM器件900基本相同,不同之处在于CIM器件900中的CMOS传输门624被替换成PMOS 1124。

上面描述的CIM器件可用于多种应用。例如,如图13所示,具有存储器单元622的2×4阵列110的器件1300可用于执行两个2位数字的乘法。在一些实施例中,因为乘积n×w是n w的总和,所以将“1”应用于n个WL或可接通n个WL,w存储在每一行中。例如,对于00

作为特定实例,为了计算n=11

通过在每列中的第二开关128、628接通时在电容器126(图1至图5)或626(图6至图11)之间共享电荷,上述示例性实施例在所有存储器单元之间使用电荷共享,以减轻归因于器件变化的单元电流变化。因此,与常规CIM器件相比,CIM计算精度得以提高。

根据一些实施例,提供了一种存储器器件,包括:存储元件,具有写入控制输入、权重输入和权重输出,并适于响应于来自写入控制输入的写入控制信号而在权重输入处接收权重值并存储权重值;电容器;第一开关器件,具有数据输入,并适于响应于数据输入处的数据输入控制信号而将存储元件的权重输出互连至电容器的第一端;以及第二开关器件,具有读取控制输入,并适于响应于读取控制输入处的读取控制信号而将电容器的第一端互连至读取位线(“RBL”)。

在上述存储器器件中,存储元件包括静态随机存取存储器(“SRAM”)单元。

在上述存储器器件中,第二开关器件与第一开关器件适于协作以使电容器的第一端与存储元件断开,并在一个开关状态下通过RBL对电容器放电,并使电容的第一端RBL断开并在另一开关状态下将电容器的第一端与存储元件的权重输出互连。

在上述存储器器件中,还包括开关器件,开关器件跨电容器连接并适于通过开关器件对电容器放电。

在上述存储器器件中,存储元件包括在第一节点和第二节点处彼此交叉耦合的一对CMOS反相器,并且其中,第一开关器件适于响应于数据输入处的数据输入控制信号而将第一节点互连至电容器的第一端。

在上述存储器器件中,第一开关器件包括具有一对互补数据输入的CMOS传输门。

在上述存储器器件中,还包括存取开关器件,存取开关器件具有写入控制输入并适于响应于写入控制输入处的写入控制信号而将第二节点互连至写入位线(“WBL”)。

在上述存储器器件中,还包括:第二存储元件,具有写入控制输入、权重输入和权重输出,并适于响应于来自写入控制输入的第二写入控制信号而在权重输入处接收权重值并存储权重值;第二电容器;第三开关器件,具有数据输入,并适于响应于第三开关器件的数据输入处的数据输入控制信号而将第二存储元件的权重输出互连至第二电容器的第一端;以及第四开关器件,其具有读取控制输入,并适于响应于第四开关的读取控制输入处的读取控制信号而将第二电容器的第一端互连至RBL。

在一些实施例中,提供了一种计算器件,包括:多个读取位线(“RBL”);多个写入位线(“WBL”);多个写入字线(“WWL”);多个输入线(“IN”);多个评估线(“EVAL”);多个存储器单元,逻辑上以行和列布置,存储器单元的列中的每个与RBL中的相应一个和WBL中的相应一个相关联,存储器单元的行中的每个与WWL中的相应一个、IN中的一个和EVAL中的一个相关联。存储器器件中的每个包括:存储元件,具有写入控制输入、权重输入以及权重输出,写入控制输入连接至与存储元件所属的行相关联的WWL,权重输入连接至与存储器单元所属的列相关联的WBL,并且存储元件适于响应于来自WWL的写入控制信号而从WBL接收权重值并存储权重值;电容器;第一开关器件,具有连接至与存储器单元所属的行相关联的IN的数据输入,并适于响应于来自IN的数据输入控制信号而将存储元件的权重输出互连至电容器的第一端;和第二开关器件,具有连接至与存储器单元所属的行相关联的EVAL的读取控制输入,并适于响应于来自EVAL的读取控制信号而将电容器的第一端互连至与存储器单元所属的行相关联的RBL。

在上述计算器件中,每列中的存储器单元的第一开关器件和第二开关器件适于将电容器的第一端与相应存储元件断开,并将列中的电容器并联连接在参考电压之间。

在上述计算器件中,还包括多个ADC,多个ADC各自连接至RBL中的相应一个,并适于从RBL接收模拟信号并生成指示模拟信号的值的数字输出。

在上述计算器件中,还包括多个数字移位器,多个数字移位器各自适于从ADC中的相应一个接收数字输出并将数字输出移位预定位数,预定数量的数字对于每个列不同。

在一些实施例中,提供了一种计算方法,包括:生成乘积信号集,乘积信号集各自指示对应于输入信号集中的一个的值与存储在一组数据存储元件中的相应一个中的值的乘积;将跨一组电容器的电压设置成预定电平,组电容器各自对应于组数据存储元件中的一个;在跨组电容器的电压已设置成预定电平之后,将乘积信号集施加至组电容器中的相应电容器;在已将乘积信号施加至电容器之后将电容器放电至输出线;以及在输出线上生成表示乘积信号之和的信号。

在上述计算方法中,将跨电容器的电压设置成预定电平包括对电容器完全放电。

在上述计算方法中,对电容器完全放电包括:将输出线设置为0伏,并通过相应第二开关器件将电容器放电至输出线。

在上述计算方法中,对电容器完全放电包括:通过接通跨每个电容器连接的相应的关器件来使电容器中的每个的两端互连。

在上述计算方法中,将乘积信号集施加至相应电容器包括:在电容器与输出线断开时将乘积信号集施加至相应电容器。

在上述计算方法中,对电容器完全放电包括:在输出线与电压参考点之间将电容器彼此并联连接。

在上述计算方法中,还包括:将在输出线上生成的信号转换为数字信号,并将数字信号移位预定位数。

在上述计算方法中,将乘积信号施加至相应电容器包括:在相应信号为“1”的情况下将存储元件中的一个连接至相应电容器,并在相应信号为“0”的情况下将存储元件中的一个与相应电容器断开。

前述内容概述了若干实施例的特征,以使得本领域技术人员可更好地理解本发明的各方面。本领域技术人员应该理解,他们可以容易地使用本发明作为基础来设计或修改用于实施与本文所介绍的实施例相同目的和/或实现相同优势的其他工艺和结构。本领域技术人员还应该认识到,这样的等同构造不脱离本发明的精神和范围,并且在不脱离本发明的精神和范围的情况下,它们可在这里进行各种改变、替换和变更。

相关技术
  • 存储器器件、计算器件以及计算方法
  • 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法
技术分类

06120113268438