采用nvm矩阵电路以执行矩阵计算的非易失性(nv)存储器(nvm)矩阵电路

文档序号:1432260 发布日期:2020-03-17 浏览:26次 >En<

阅读说明:本技术 采用nvm矩阵电路以执行矩阵计算的非易失性(nv)存储器(nvm)矩阵电路 (Non-volatile (NV) memory (NVM) matrix circuit employing NVM matrix circuit to perform matrix computations ) 是由 李夏 杨斌 陶耿名 于 2018-06-22 设计创作,主要内容包括:公开了非易失性(NV)存储器(NVM)矩阵电路,其采用NVM电路以用于执行矩阵计算。在本文公开的示例性方面中,提供了一种NVM矩阵电路,其具有多个NVM存储串电路,多个NVM存储串电路各自包括多个NVM位单元电路,多个NVM位单元电路各自被配置为存储存储器状态。每个NVM位单元电路具有由电阻表示的所存储的存储器状态并且包括晶体管,该晶体管的栅极节点耦合到多个字线中的字线,多个字线被配置为例如接收1×m大小的输入矢量。给定NVM位单元电路的栅极的激活控制其电阻是否对相应的源极线起作用。这使得基于每个NVM位单元电路的电阻对其相应的源极线的加权的和贡献,来在每个源极线上生成和电流。(Non-volatile (NV) memory (NVM) matrix circuits are disclosed that employ NVM circuits for performing matrix computations. In an exemplary aspect disclosed herein, an NVM matrix circuit is provided having a plurality of NVM memory string circuits each including a plurality of NVM bit cell circuits each configured to store a memory state. Each NVM bit cell circuit has a stored memory state represented by a resistance and includes a transistor having a gate node coupled to a word line of a plurality of word lines configured to receive, for example, an input vector of 1 × m size. Activation of the gate of a given NVM bitcell circuit controls whether its resistance is active for the corresponding source line. This causes a sum current to be generated on each source line based on the weighted sum contribution of the resistance of each NVM bit cell circuit to its respective source line.)

采用NVM矩阵电路以执行矩阵计算的非易失性(NV)存储器 (NVM)矩阵电路

优先权申请

本申请要求于2017年11月20日提交的题目为“NON-VOLATILE(NV)MEMORY(NVM)MATRIX CIRCUITS EMPLOYING NVM MATRIX CIRCUITS FOR PERFORMING MATRIXCOMPUTATIONS”的美国专利申请序列号15/817,441的优先权,其要求于2017年07月13日提交的题目为“MATRIX CIRCUITS EMPLOYING NON-VOLATILE(NV)MEMORY CIRCUITS FORPERFORMING MATRIX COMPUTATIONS”的美国临时专利申请序列号62/531,921的优先权,其内容通过引用以其整体并入本文。

相关申请

本申请涉及于2017年07月13日提交的题目为“MULTI-LEVEL CELL(MLC)MATRIXCIRCUITS EMPLOYING NON-VOLATILE (NV)MLC MEMORY CIRCUITS FOR PERFORMING MATRIXCOMPUTATIONS”的美国临时专利申请序列号62/531,924,通过引用以其整体并入本文。

本申请还涉及于2017年11月20日提交的题目为“MULTIPLE(MULTI-)LEVEL CELL(MLC)NON-VOLATILE(NV)MEMORY(NVM)MATRIX CIRCUITS FOR PERFORMING MATRIXCOMPUTATIONS WITH MULTI-BIT INPUT VECTORS”的美国专利申请序列号15/817,474,通过引用以其整体并入本文。

背景技术

I.公开的技术领域

本公开的技术总体上涉及生物网络的计算机化,并且更具体地涉及突触网络的电路网络实现,以利用人工智能(AI)学习提供矩阵乘法。

II.背景技术

生物网络是适用于生物系统的网络。例如,人类的生物循环系统涉及通过血管将血液泵送和引导至身体、肺和心脏的功能。细胞内生物网络的网络表示通常将细胞内的分子成分视为节点,并且将其直接或间接相互作用视为链接。对生物网络的认识已激发了各种神经形态计算系统的发展,神经形态计算系统的架构反映了神经系统的一般组织原理,力图部分地再现生物计算在一些问题中表现出的巨大效率优势。这些神经形态系统被组织为具有可配置突触连接的兴奋性和抑制性突触神经元(即,作为传送神经冲动的专用细胞的神经细胞)的群体。突触可塑性在允许神经网络学习和适应各种输入环境中起着至关重要的作用。因此,在计算机网络中实现的神经形态系统需要在电路中实现可塑性突触,以获得诸如学习的基本“认知”能力。

在生物神经网络中,突触超出神经元数目几个数目级。在神经形态电子电路中再现这些生物学特征存在缩放问题,因为每个神经元集成数千个专用突触电路对于需要大量神经元的电路系统可能很快变得不可行。常规地,计算机网络中的缩放问题是通过将突触视为简单的线性元件并且将来自许多突触前来源的尖峰时分复用到相同的线性电路上,或者将它们视为没有学习能力的基本二进制元件,可以在外部将其设置为开启或关断。然而,真实突触表现出非线性现象,如依赖于尖峰时序的可塑性(STDP),其基于突触前和突触后神经元的活动来调制单个突触的权重。通过可塑性的突触权重的调制已经显示出极大地增加了神经网络可以执行的计算范围。

捕获模拟神经形态硬件中的真实突触的可塑性性质需要针对每个突触使用独特的物理电路/元件。在常规的互补金属氧化物半导体(CMOS)电路技术中,这可能导致可扩展性受到限制。对于纯CMOS技术中的可扩展性问题,一些可能的解决方案涉及超大型集成结构的使用或深亚微米技术的采用。例如,STDP规则的微芯片CMOS电路实施方式可能导致每个可塑性突触有大约三十(30)个晶体管,并且因此可能导致其硬件实现成本高昂。总的来说,人们普遍认为STDP在常规CMOS微芯片中实施非常昂贵。但是,如果人们采用可以再现真实突触的可塑性的紧凑型纳米级电路元件,则可扩展性限制可以被大大放松。这些元件的一个可能候选是忆阻器。忆阻器是一种行为有点像带有记忆的非线性电阻器的元件。在神经形态团体中,忆阻器被视为用于突触实现的理想器件,因为它们在一个器件中组合了三(3)个关键功能。忆阻器是与电荷和磁通链相关的非线性、无源、双端子电子器件。忆阻器的电阻不是恒定的,而是取决于之前流过该器件的电流的历史。即,它的当前电阻取决于过去有多少电荷以什么方向流过它。因此,忆阻器器件会记住其历史,这被称为其非易失性性质。当到忆阻器的电源被关断时,忆阻器记忆其最近的电阻,直到再次开启为止。忆阻器可以实现生物学上逼真的突触权重更新(即学习),可以进行长期的多值权重存储,还可以将加权的突触前活动通信给突触后侧,这大大放松了可扩展性限制。

如果在混合CMOS/忆阻器实现中使用适当的***信号调节神经元,则可以利用每个突触仅一(1)个忆阻器来实现STDP。通常,通过将特定波形施加到忆阻器的两(2)个端子来诱发这些忆阻器突触的可塑性,其中该波形分别与突触前、突触后脉冲对齐。跨忆阻器的波形的相关性又实现了类STDP的可塑性,具有由所施加的波的形状定义的STDP曲线的形式。通常选择基于基本STDP机制的可塑性的硬件和软件模型,主要是因为它们的简单性。

在这方面,图1A图示了作为交叉开关(cross-bar)网络的矩阵网络电路100,该交叉开关网络包括将忆阻器和CMOS电路神经元互连的方式,以用于STDP学***坦侧是其输入节点110(即树突),而CMOS电路神经元108的尖锐侧是其输出节点112(即轴突)。CMOS电路神经元108控制在其输入节点110处的电压Vpost,并且控制其输出节点112处的电压Vpre。当CMOS电路神经元108未产生尖峰时,它在输入节点110和输出节点112处强制恒定电压,而通过其输入节点110收集来自忆阻器104A、104B的输入突触尖峰电流I1、I2之和,这有助于改变神经元内部状态。当CMOS电路神经元108发出尖峰时,它会在输入节点110和输出节点112两者处设置一个尖峰波形。以这种方式,CMOS电路神经元108将其输出尖峰向前发送作为用于目标突触忆阻器的突触前尖峰,但也反向发送到之前的突触忆阻器作为突触后尖峰。

采用忆阻器网络来提供突触的神经网络也可以用于需要加权矩阵乘法计算(例如,诸如卷积)的其他应用中。例如,图2A图示了具有前神经元电路204(1)-204(m)的前神经元层202和后神经元电路208(1)-208(n)的后神经元层206的忆阻器交叉开关突触矩阵200。可以在前神经元电路204(1)-204(m)和后神经元电路208(1)-208(m)之间提供突触。可能需要将每个前神经元电路204(1)-204(m)的状态与每个后神经元电路208(1)-208(n)的状态的乘积相加,以提供经加速的加权的和以及权重更新。例如,图2B图示了图2A中的忆阻器交叉开关突触矩阵200的忆阻器交叉开关矩阵电路212。忆阻器交叉开关矩阵电路212包括RRAM交叉开关阵列电路214,RRAM交叉开关阵列电路214具有可以形成相应的突触216(1)(1)-216(m)(n)的忆阻器216(1)(1)-216(m)(n)的行R1-Rm和列C1-Cn。忆阻器216(1)(1)-216(m)(n)被配置为存储m×n矩阵的存储器状态。输入电压V1-Vm可以是1×m的输入矢量。可能需要将输入矢量乘以由忆阻器216(1)(1)-216(m)(n)提供的m×n矩阵。每列C1-Cn中的忆阻器216(1)(1)-216(m)(n)彼此并联耦合。因此,RRAM交叉开关阵列电路214的电导表示忆阻器交叉开关矩阵电路212的权重。电流I1-In的各自的和表示:忆阻器216()(1)-216()(n)的所选择的列C1-Cn的权重(即,电导)乘以由输入电压V1-Vm表示的前神经元电路204(1)-204(m)的状态。例如,当C1列被选择时,根据以下公式,电流I1是所选择的行R1-Rm中的来自前神经元电路204(1)-204(m)的每个输入电压V1-Vm乘以相应的忆阻器216(1)(1)-216(m)(1)的电导之和:

Figure BDA0002361535860000051

其中:

i=行R1-Rm;并且

j=列C1-Cn

因此,电流I1是忆阻器216(1)(1)的电导乘以输入电压V1,加上忆阻器216(1)(2)的电导乘以输入电压V2,…,加上忆阻器216(1)(m)乘以输入电压Vm的总和。忆阻器交叉开关矩阵电路212的权重(即每个忆阻器216(1)(1)-216(m)(n)的电导)被更新,以基于后神经元电路208(1)-208(n)中的每个后神经元电路的输出电压来提供训练,该输出电压被反向施加到前神经元电路204(1)-204(m)的之前的输入电压V1-Vm

图2B中的忆阻器交叉开关矩阵电路212具有潜路径电流问题。潜路径电流是从被寻址的行R1-Rm流向相邻的行R1-Rm的电流。例如,假设交叉开关突触加权矩阵电路214中的列C1被选择。C1列中的电流不仅流经C1列中被选择的忆阻器216(1)(1)-216(m)(1)到后神经元电路208(1),而且潜电流也流回到前神经元电路204(1)中。可能无法区分潜行电流,导致忆阻器交叉开关矩阵电路212的权重的错误更新。另外,RRAM技术(诸如忆阻器)可能不具有高度可重复的电阻,从而导致可能引起不正确的计算的保持问题。RRAM技术的耐用性也可能受到限制。

发明内容

在详细描述中公开的方面包括采用NVM矩阵电路以用于执行矩阵计算的非易失性(NV)存储器(NVM)矩阵电路。在本文公开的示例性方面中,提供了一种NVM矩阵电路,该NVM矩阵电路具有多个NVM存储串电路,每个NVM存储串电路包括组织在相应的存储器行中并且被配置为存储存储器状态的多个NVM位单元电路。例如,NVM矩阵电路可以形成m×n NVM矩阵电路,其中‘m’表示所提供的NVM存储串电路的存储器行的数目,并且‘n’表示在相应的存储器列中提供的每个NVM存储串电路内的NVM位单元电路的数目。多个位线被提供,并且各自被配置为耦合到相应的NVM存储串电路。多个源极线被提供,并且各自被配置为耦合到相应的NVM存储串电路。每个NVM位单元电路具有由电阻表示的所存储的存储器状态,并且包括晶体管,该晶体管的栅极节点耦合到被配置为例如接收1×m大小的输入矢量的多个字线中的字线。给定NVM位单元电路的栅极的激活控制其电阻是否对相应的源极线起作用。例如,输入矢量可以是例如突触前加权矢量。每个源极线耦合到相应的输出节点,其中用于所有NVM存储串电路的源极线可以共同提供输出矢量。例如,输出矢量可以是突触后矢量。为了将1×m大小的输入矢量乘以由多个NVM存储串电路形成的m×n存储器矩阵电路,线电压被施加到NVM存储串电路的位线,同时表示输入矢量的输入电压被施加到NVM存储串电路的NVM位单元电路的栅极节点。这使得基于每个NVM位单元电路的电阻对其相应的源极线的加权的和贡献,在每个源极线上生成和电流。每个输出线形成输出矢量,该输出矢量是1×m输入矢量乘以m×n NVM矩阵电路的一(1)列n的结果。通过使NVM存储串电路的NVM位单元电路包括耦合到字线的晶体管,该字线控制在其相应的源极线上呈现的电阻,不必在字线和位线之间提供交叉开关连接,这避免了在NVM矩阵电路中产生潜路径电流。字线和位线通过NVM位单元电路彼此隔离。

在这一点上,在一方面,提供了一种NVM矩阵电路。NVM矩阵电路包括多个字线,多个字线被配置为接收由多个字线中的每个字线上的由输入电压表示的输入矢量。NVM矩阵电路还包括多个位线和多个源极线。多个位线中的每个位线被配置为接收对应的线电压。NVM矩阵电路还包括多个NVM存储串电路,每个NVM存储串电路被配置为电耦合在多个位线中的对应位线与多个源极线中的对应源极线之间。多个NVM位单元电路中的每个NVM存储串电路具有表示NVM位单元电路中的所存储的存储器状态的电阻,以形成用于对应的NVM存储串电路的数据矢量。NVM存储串电路中的多个NVM位单元电路中的每个NVM位单元电路包括耦合到多个字线中的对应字线的栅极节点。每个NVM位单元电路被配置为:响应于输入电压被施加到耦合到栅极节点的对应字线,来将其电阻耦合到源极线。NVM矩阵电路还包括多个存取晶体管。每个存取晶体管耦合到多个位线中的对应位线并且耦合到多个NVM存储串电路中的对应的NVM存储串电路,该对应的NVM存储串电路耦合到与该位线相对应的源极线。每个存取晶体管包括耦合到存取线的存取栅极节点,并且被配置为:响应于存取电压被施加到该存取栅极节点,来将对应的位线电耦合到对应的NVM存储串电路。

在另一方面,提供了一种NVM矩阵电路。NVM矩阵电路包括用于施加表示输入矢量的多个输入电压的多个装置、用于施加多个线电压的多个装置,以及用于提供表示输出矢量的多个输出电流的多个装置。NVM矩阵电路还包括多个NVM存储串装置,多个NVM存储串装置各自电耦合到用于施加多个输入电压的多个装置中的用于施加输入电压的对应装置,并且耦合到用于提供多个输出电流的多个装置中的用于提供输出电流的对应装置。多个NVM存储串装置中的每个NVM存储串装置包括:用于存储存储器状态的多个NV装置,多个NV装置各自具有表示所存储的存储器状态的电阻,以形成用于多个NVM存储串装置中的对应的NVM存储串装置的数据矢量。用于存储存储器状态的多个NV装置中的每个NV装置包括:用于将用于存储存储器状态的多个NV装置的电阻电耦合到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的装置。每个NV装置还包括用于控制用于存储存储器状态的多个NV装置的电阻到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的耦合的装置。NVM矩阵电路还包括多个存取装置,该多个存取装置用于在用于存储存储器状态的多个NV装置的电阻到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的耦合中,控制用于将用于施加多个输入电压的多个装置中的用于施加输入电压的对应装置电耦合到对应的NVM存储串装置的装置。

在另一方面,提供了一种在NVM矩阵电路中执行矩阵乘法的方法。方法包括:在耦合到多个NVM存储串电路中的对应的NVM存储串电路的多个位线中的至少一个位线上施加线电压,以将该线电压电耦合到与多个位线中的对应位线耦合的对应的NVM存储串电路。每个NVM存储串电路包括多个NVM位单元电路,每个NVM位单元电路具有表示NVM位单元电路中的所存储的存储器状态的电阻,以形成用于对应的NVM存储串电路的数据矢量。方法还包括在耦合到多个NVM存储串电路中的对应的NVM存储串电路的多个源极线中的至少一个源极线上施加第二线电压,以将该第二线电压电耦合到与多个源极线中的对应的源极线耦合的对应的NVM存储器串电路。方法还包括在多个字线上施加表示输入矢量的多个输入电压,其中每个字线耦合到多个NVM存储串电路中的每个NVM存储串电路中的NVM位单元电路的对应栅极节点,以将NVM位单元电路电耦合到源极线,以将NVM位单元电路的电阻耦合到源极线。方法还包括将存取电压施加到多个存取晶体管,其中每个存取晶体管耦合到多个位线中的对应位线,并且耦合到多个NVM存储串电路中的对应的NVM存储串电路,该对应的NVM存储串电路耦合到与该位线相对应的源极线,以将对应位线电耦合到对应的NVM存储串电路。

在另一方面,提供了一种NVM矩阵系统,其包括第一NVM矩阵电路和第二NVM矩阵电路。第一NVM矩阵电路包括多个第一字线,多个第一字线被配置为在多个第一字线中的每个第一字线上接收由第一输入电压表示的第一输入矢量。第一NVM矩阵电路还包括多个第一位线和多个第一源极线。多个第一位线中的每个第一位线被配置为接收对应的第一线电压。每个第一源极线耦合到多个第一输出节点中的第一输出节点。第一NVM矩阵电路还包括多个第一NVM存储串电路,每个第一NVM存储串电路被配置为电耦合在多个第一位线中的对应的第一位线与多个第一源极线中的对应的第一源极线之间。每个第一NVM存储串电路包括多个第一NVM位单元电路。多个第一NVM位单元电路中的每个第一NVM位单元电路具有表示第一NVM位单元电路中的所存储的存储器状态的电阻,以形成用于对应的第一NVM存储串电路的第一数据矢量。每个第一NVM位单元电路包括第一栅极节点,该第一栅极节点耦合到多个第一字线中的对应的第一字线,并且被配置为:响应于第一输入电压被施加到耦合到第一栅极节点的对应的第一字线,来将其电阻耦合到第一源极线。第二NVM矩阵电路包括多个第二字线,每个第二字线均耦合到多个第一输出节点中的输出节点。第二NVM矩阵电路还包括多个第二位线和多个第二源极线。多个第二位线中的每个第二位线被配置为接收对应的第二线电压。每个第二源极线耦合到多个第二输出节点中的第二输出节点。第二NVM矩阵电路还包括多个第二NVM存储串电路,每个第二NVM存储串电路被配置为电耦合在多个第二位线中的对应的第二位线与多个第二源极线中的对应的第二源极线之间。每个第二NVM存储串电路包括多个第二NVM位单元电路。多个第二NVM位单元电路中的每个第二NVM位单元电路具有表示第二NVM位单元电路中的所存储的存储器状态的电阻,以形成用于对应的第二NVM存储串电路的第二数据矢量。每个第二NVM位单元电路包括第二栅极节点,该第二栅极节点耦合到多个第二字线中的对应的第二字线;并且被配置为:响应于第二输入电压被施加到耦合到第二栅极节点的对应的第二字线,来将其电阻耦合到第二源极线。

附图说明

图1A是采用忆阻器网络以提供针对互补金属氧化物半导体(CMOS)电路神经元的突触的示例性矩阵网络电路;

图1B图示了用于图1A的矩阵网络电路中的突触后CMOS电路神经元的示例性突触连接;

图2A图示了示例性忆阻器交叉开关矩阵电路;

图2B图示了采用RRAM交叉开关阵列电路的示例性忆阻器交叉开关矩阵电路;

图3A是不需要采用NVM存储串电路的交叉开关连接的示例性非易失性(NV)存储器(NVM)矩阵电路的示意图,非易失性(NV)存储器(NVM)矩阵电路形式为NAND NVM闪存电路,并且非易失性(NV)存储器(NVM)矩阵电路各自被包括用于执行矩阵计算的多个NVM闪存位单元电路;

图3B是示例性二维(2D)NAND NVM闪存电路的示意图,该示例性二维(2D)NAND NVM闪存电路可以是图3A中的NVM矩阵电路中的NVM位单元电路;

图4A图示了图3A的NVM矩阵电路中的示例性逻辑‘0’写入操作;

图4B图示了图3A中的NVM矩阵电路中的示例性逻辑‘1’写入操作;

图5图示了图3A中的NVM矩阵电路中的示例性读取操作;

图6A图示了图3A中的NVM矩阵电路中的另一示例性逻辑‘0’写入操作;

图6B图示了图3A中的NVM矩阵电路中的另一示例性逻辑‘1’写入操作;

图7A图示了图3A中的NVM矩阵电路中的另一示例性逻辑‘0’写入操作;

图7B图示了图3A中的NVM矩阵电路中的另一示例性逻辑‘1’写入操作;

图8A是图示在图3A中的NVM矩阵电路中执行写入操作的示例性过程的流程图;

图8B是图示在图3A的NVM矩阵电路中执行读取操作的示例性过程的流程图;

图9是NVM矩阵系统的示例,该NVM矩阵系统包括图3A中的NVM矩阵电路和类似图3A中的NVM矩阵电路的另一个NVM矩阵电路,该另一个NVM矩阵电路被配置和/或重新配置,并且耦合到第一NVM矩阵电路以为神经元NVM矩阵电路提供神经元层;

图10是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为NAND NVM铁电(Fe)场效应晶体管(FET)(FeFET)电路,NVM矩阵电路各自包括用于执行矩阵计算的多个NVM FeFET位单元电路;

图11是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为AND NVM闪存电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVM闪存位单元电路;

图12是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为AND NVM FeFET电路,NVM矩阵电路各自包括用于执行矩阵计算的多个NVM FeFET位单元电路;

图13是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为AND NVM磁阻随机存取存储器(MRAM)电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVM MRAM位单元电路;

图14是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为AND NVM电阻性随机存取存储器(RRAM)电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVM RRAM位单元电路;

图15是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为NVM存储串电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVM闪存位单元电路;

图16是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为NOR NVM FeFET电路,NVM矩阵电路各自包括用于执行矩阵计算的多个NVM FeFET位单元电路;

图17是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为NOR NVM MRAM电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVMMRAM位单元电路;

图18是不需要采用NVM存储串电路的交叉开关连接的示例性NVM矩阵电路的示意图,NVM矩阵电路形式为NOR NVM RRAM电路,NVM矩阵电路各自被包括用于执行矩阵计算的多个NVMRRAM位单元电路;

图19是示例性芯片封装的框图,该示例性芯片封装包括片上系统(SoC)、专用存储器芯片和专用NVM矩阵电路芯片,该专用NVM矩阵电路芯片可以包括本文公开的NVM矩阵电路,包括但不限于图3A-图18中的NVM矩阵电路;以及

图20是包括存储器系统的示例性的基于处理器的系统的框图,该存储器系统可以包括本文所公开的NVM矩阵电路,包括但不限于图3A-图18中的NVM矩阵电路。

具体实施方式

现在参考附图,描述了本公开的几个示例性方面。词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不必被解释为比其他方面优选或有利。

在详细描述中公开的方面包括采用NVM矩阵电路来执行矩阵计算的非易失性(NV)存储器(NVM)矩阵电路。在本文公开的示例性方面中,提供了一种NVM矩阵电路,该NVM矩阵电路具有多个NVM存储串电路,每个NVM存储串电路包括组织在相应的存储器行中并且被配置为存储存储器状态的多个NVM位单元电路。例如,NVM矩阵电路可以形成m×n NVM矩阵电路,其中‘m’表示所提供的NVM存储串电路的存储器行的数目,并且‘n’表示在相应的存储器列中提供的每个NVM存储串电路内的NVM位单元电路的数目。多个位线被提供,并且每个位线被配置为耦合到相应的NVM存储串电路。多个源极线被提供,并且每个源极线被配置为耦合到相应的NVM存储串电路。每个NVM位单元电路具有由电阻表示的所存储的存储器状态,并且包括晶体管,该晶体管的栅极节点耦合到被配置为例如接收1×m大小的输入矢量的多个字线中的字线。给定NVM位单元电路的栅极的激活控制其电阻是否对相应的源极线起作用。例如,输入矢量可以是例如突触前加权矢量。每个源极线耦合到相应的输出节点,其中用于所有NVM存储串电路的源极线可以共同提供输出矢量。例如,输出矢量可以是突触后矢量。为了将1×m大小的输入矢量乘以由多个NVM存储串电路形成的m×n存储器矩阵电路,线电压被施加到NVM存储串电路的位线,同时表示输入矢量的输入电压被施加到NVM存储串电路的NVM位单元电路的栅极节点。这使得基于每个NVM位单元电路的电阻对其相应的源极线的加权的和贡献,在每个源极线上生成和电流。每个输出线形成输出矢量,该输出矢量是1×m输入矢量乘以m×n NVM矩阵电路的一(1)列n的结果。通过使NVM存储串电路的NVM位单元电路包括耦合到字线的晶体管,该字线控制在其相应的源极线上呈现的电阻,不必在字线和位线之间提供交叉开关连接,这避免了在NVM矩阵电路中产生潜路径电流。字线和位线通过NVM位单元电路彼此隔离。

在这方面,图3A是示例性NVM矩阵电路300的示意图,其可以执行矩阵乘法而无需使用交叉开关连接。NVM矩阵电路300采用‘m+1’个存储器行R0-Rm的NVM存储串电路302(0)-302(m),每个存储器行均包括图3A中的多个NVM位单元电路R00-Rmn。在该示例中,NVM存储串电路302(0)-302(m)是NAND NVM闪存电路,其中NVM位单元电路R00-Rmn是NVM闪存电路。然而,NVM存储串电路302(0)-302(m)可以被提供为其他类型的NVM矩阵电路,如下面在其他方面更详细地讨论的。每个相应的NVM存储串电路302(0)-302(m)中的NVM位单元电路R00-Rmn以存储器行R0-Rm和存储器列C0-Cn布置。NVM矩阵电路300包括用于每个存储器行R0-Rm的相应的位线BL0-BLm。提供位线驱动器电路302(0)-302(m),每个位线驱动器电路均被配置为驱动相应的位线BL0-BLm上的相应的线电压V0-Vm。还提供了源极线SL0-SLm,它们均耦合到相应的输出节点308(0)-308(m)。NVM存储串电路302(0)-302(m)耦合在每个相应的存储器行R0-Rm中的对应位线BL0-BLm与对应源极线SL0-SLm之间。源极线SL0-SLm被配置为:当它们相应的NVM位单元电路R00-Rmn被激活时,将相应的电流I0-Im携带到相应的输出节点308(0)-308(m)作为输出矢量S0-Sm。例如,输出矢量S0-Sm可以是二进制突触后矢量。

继续参考图3A,NVM矩阵电路300还包括用于每个存储器列C0-Cn的相应的字线WL0-WLn。提供字线驱动器电路310(0)-310(n),每个字线驱动器电路均被配置为驱动包括相应字线WL0-WLn上的多个输入电压的相应的输入矢量X0-Xn。如将在下面更详细地讨论的,字线WL0-WLn耦合到给定存储器列C0-Cn中的NVM位单元电路R00-Rmn的相应的栅极节点G00-Gmn,以控制被施加到相应的源极线SL0-SLm的NVM位单元电路R00-Rmn的电阻。例如,输入矢量X0-Xn可以是二进制突触前数据矢量。NVM矩阵电路300还包括耦合在相应的位线BL0-BLm与NVM存储串电路302(0)-302(m)之间的第一存取晶体管312(0)-312(m)。第一存取晶体管312(0)-312(m)均包括耦合到相应的第一存取线314的第一存取栅极节点G,该第一存取线314被配置为由第一存取线驱动器电路316以第一存取电压来驱动。第一晶体管312(0)-312(m)各自被配置为控制是否将施加在相应位线BL0-BLm上的对应的线电压V0-Vm施加到对应的存储器行R0-Rm中的相应的NVM存储串电路312(0)-312(m)。第一存取晶体管312(0)-312(m)被配置为:响应于由第一存取线驱动器电路316驱动到第二存取线320上、到达到第一存取晶体管312(0)-312(m)的第一存取栅极节点G的第一存取信号(电压)足以使第一存取晶体管312(0)-312(m)导通,而传递相应的位线BL0-BLm上的线电压V0-Vm。NVM矩阵电路300还包括第二存取晶体管318(0)-318(m),第二存取晶体管318(0)-318(m)耦合在相应的NVM存储串电路302(0)-302(m)与耦合到输出节点308(0)-308(m)的源极线SL0-SLm之间。第二存取晶体管318(0)-318(m)各自被配置为:响应于由第二存取线驱动器电路322驱动到第二存取线320上、到达第二存取晶体管318(0)-318(m)的第二存取栅极节点G的第二存取信号(电压)足以使第二存取晶体管318(0)-318(m)导通,而将相应的NVM存储串电路302(0)-302(m)耦合到相应的源极线SL0-SLm和相应的输出节点308(0)-308(m)。如图3A中所示,字线WL0-WLn和位线BL0-BLm之间没有交叉开关耦合。NVM存储串电路302(0)-302(m)的存取晶体管312(0)-312(m)、318(0)-318(m)可以在字线WL0-WLn与位线BL0-BLm之间提供进一步的隔离。

继续参考图3A,在该示例中,NVM矩阵电路300中的每个NVM位单元电路R00-Rmn是不需要功率来保持数据的NVM闪存电路。图3B是示例性二维(2D)NAND闪存电路的示意图,其可以被提供为图3A中的NVM矩阵电路300中的NVM存储串电路302(0)-302(m)。图3B图示了示例性NVM存储串电路302(0),其可以被提供在图3A中的NVM矩阵电路300中的存储器行R0中作为电路和布局图中的示例。如图3B中所示,NVM位单元电路R00-Rmn均以串联耦合的串的方式彼此耦合,NVM位单元电路R00-Rn-1的源极节点S00-S0n-1耦合到相邻的NVM位单元电路R01-R0n的漏极节点D01-D0n。NVM存储串电路302(0)中的端NVM位单元电路R00、Rn耦合到相应的存取晶体管312(0)、318(0)。每个NVM位单元电路R00-R0n具有表示所存储的存储器状态的电阻。每个NVM位单元电路R00-Rmn具有晶体管,该晶体管包括栅极G00-G0n,其基于NVM位单元电路R00-Rmn位于哪个存储器列C0-Cn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rmn被配置为被激活以激活半导体沟道以将其电阻耦合到其存储器行R0-Rm中的相应的源极线SL0-SLm上。NVM位单元电路R00-R0n中的集体存储器状态形成存储在NVM存储串电路302(0)中的数据矢量。如图3B中所示,在字线WL0和位线BL0之间没有交叉开关耦合,在所有字线WL0-WLn和相应的位线BL0-BLm之间也是如此。

继续参考图3B,如将在下面更详细地讨论的,当施加到位线BL0的线电压和施加到存取晶体管312(0)-312(m)的存取栅极节点G的存取电压足以激活存取晶体管312(0)-312(m)的半导体沟道C时,NVM存储串电路302(0)耦合到位线BL0和源极线SL0。作为输入矢量X0-Xn被施加到字线WL0-WLn和作为输入矢量X0-Xn被施加到NVM位单元电路R00-R0n的栅极节点G00-G0n的输入电压控制相应的NVM位单元电路R00-R0n的激活。当被激活时,NVM位单元电路R00-R0n将其电阻耦合到源极线SL0。NVM位单元电路R00-R0n的电阻是其存储的存储器状态的函数。因此,NVM位单元电路R00-R0n的电阻可以表示权重矢量。在相应的源极线SL0上流到输出节点308(0)的电流I0是相应的输入矢量X0-Xn乘以NVM存储串电路302(0)的NVM位单元电路R00-R0n中的对应的存储器状态的点积乘积之和的函数。因此,参考图3A,用于图3A中的NVM矩阵电路300中的NVM存储串电路302(0)-302(m)的所有NVM位单元电路R00-R0n可以表示权重矩阵。从相应的NVM存储串电路302(0)-302(m)的相应的源极线SL0-SLM流向输出节点308(0)-308(m)的电流I0-Im是由相应的源极线SL0-SLm上的位线驱动器电路306(0)-306(m)驱动的相应的线电压V0-Vm除以NVM存储串电路302(0)-302(m)的NVM位单元电路R00-Rmn的相加的沟道电阻的函数。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,图3A中的NVM矩阵电路300被配置为根据以下公式在输入层上产生电流I0-Im

Figure BDA0002361535860000171

其中:

i=存储器行0至m;

j=存储器列0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的电阻。

因此,继续参考图3A,NVM矩阵电路300被配置为同时执行1×n个权重矢量中的每个权重矢量(被存储为NVM存储串电路302(0)-302(m)中的每个NVM存储串电路中的相应的存储器状态)与n×1个输入矢量X0-Xn的矩阵乘法。根据上面提供的电流公式,根据在输出节点308(0)-308(m)处生成的电流I0-Im的相应幅度来提供这些矢量乘法的点积。

另外,如果字线WL0-WLm耦合到前神经元层并且输出节点308(0)-308(m)耦合到后神经元层,则NVM矩阵电路300还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的电阻;并且

S=在NVM位单元电路的源极线处的值。

在写入操作中,可以将作为在NVM位单元电路R00-Rmn中的所存储的存储器状态提供的NVM矩阵电路300的权重矩阵设置成期望的存储器状态,以提供期望的权重矩阵。例如,图4A图示了在写入操作中向图3A中的NVM矩阵电路300中的NVM位单元电路R25写入逻辑‘0’。如其中所示,在该示例中,为了向NVM位单元电路R25写入逻辑‘0’,分别根据NVM位单元电路R25存储具有电荷陷阱存储器状态或还是存储没有电荷陷阱的存储器状态,由位线驱动器电路306(2)将0V或5V的线电压施加在用于存储器行R2的位线BL2上。5V的线电压被施加在耦合到输出节点308(2)的源极线SL2上。将10V的输入电压施加到字线WL2,以将其施加到NVM位单元电路R25的栅极节点G25,以将NVM位单元电路R25的存储器状态编程为逻辑‘0’存储器状态。类似地,图4B图示了在写入操作中向图3A中的NVM矩阵电路300中的NVM位单元电路R25写入逻辑‘1’。如其中所示,在该示例中,为了向NVM位单元电路R25写入逻辑‘1’,分别根据NVM位单元电路R25存储没有电荷陷阱的存储器状态还是存储具有电荷陷阱的存储器状态,由位线驱动器电路306(2)将0V或5V的线电压施加在用于存储器行R2的位线BL2上。0V的线电压被施加在耦合到输出节点308(2)的源极线SL2上。将-10V的电压施加到字线WL2,以将其施加到NVM位单元电路R25的栅极节点G25,以将NVM位单元电路R25的存储器状态编程为逻辑‘1’存储器状态。

图5图示了图3A中的NVM矩阵电路300中的示例性读取操作。执行读取操作以使NVM矩阵电路300执行矩阵计算。为了将输入矢量X0-Xn乘以NVM存储串电路302(0)-302(m)中的每个NVM存储串电路的存储器状态,以在耦合到输出节点308(0)-308(m)的源极线SL0-SLm上生成相应的电流I0-Im,在该示例中,所有的NVM位单元电路R00-Rmn被激活。在该方面,在该示例中,4.5V的输入电压被施加至相应的字线WL0-WLn中的每个字线作为输入矢量X0-Xn,以使NVM位单元电路R00-Rmn中的每个NVM位单元电路的沟道电阻串联相加,以有助于相应的源极线SL0-SLm的整体串联电阻。它们的沟道电阻有助于相应的源极线SL0-SLm的整体串联电阻,并且是存储在NVM位单元电路R00-Rmn中的存储器状态的函数。在输出节点308(0)-308(m)处的电流I0-Im是输入矢量X0-Xn乘以NVM位单元电路R00-Rmn的相应的存储器状态(每个存储器状态在相应的NVM存储串电路302(0)-302(m)中作为权重矢量)的点积乘积之和的函数。

作为写入操作的一部分,可以一次写入在图3A中的NVM矩阵电路300中的给定存储器行R0-Rm中的一个以上NVM位单元电路R00-Rmn。在这方面,图6A图示了在写入操作中向图3A中的NVM矩阵电路300中的NVM位单元电路R22和R25写入逻辑‘0’。如图6A中所示,在该示例中,为了向NVM位单元电路R22和R25写入逻辑‘0’,分别根据NVM位单元电路R22和R25存储具有电荷陷阱的存储器状态还是存储没有电荷陷阱的存储器状态,由位线驱动器电路306(2)将0V或5V的线电压施加在用于存储器行R2的位线BL2上。在源极线SL2上施加5V的线电压。将10V的输入(即,编程)电压施加到字线WL2和字线WL5,以将其施加到NVM位单元电路R22和R25的栅极节点G22和G25两者,以将NVM位单元电路R22和R25编程为逻辑‘0’存储器状态。对于该写入操作,不足以编程存储器列C0、C1、C3、C4和C6-Cn中的NVM位单元电路R00-Rm0、R01-Rm1、R03-Rm3、R04-Rm4、R06-Rmn的不同的输入电压可以被施加到写入线WL0、WL1、WL3、WL4和WL6-WLn。类似地,图6B图示了在写入操作中向图3A中的NVM矩阵电路300中的NVM位单元电路R22和R25写入逻辑‘1’。如图6B中所示,在该示例中,为了向NVM位单元电路R22和R25写入逻辑‘1’,分别根据NVM位单元电路R22和R25存储没有电荷陷阱的存储器状态还是存储具有电荷陷阱的存储器状态,由位线驱动器电路306(2)将0V或5V的线电压施加在用于存储器行R2的位线BL2上。在源极线SL2上施加0V的电压。将-10V的输入(即,编程)电压施加到字线WL2和WL5,以将其施加到NVM位单元电路R22和R25的栅极节点G22和G25两者,以将NVM位单元电路R22和R25编程为逻辑‘1’存储器状态。

作为写入操作的一部分,可以一次写入在图3A中的NVM矩阵电路300中给定存储器列C0-Cn中的一个以上的NVM位单元电路R00-Rmn。在这方面,图7A图示了在写入操作中向图3A的NVM矩阵电路300中的存储器列C5中的NVM位单元电路R25和Rm-15两者写入逻辑‘0’。如图7A中所示,在该示例中,为了向NVM位单元电路R25和Rm-15写入逻辑‘0’,分别根据NVM位单元电路R25和Rm-15存储具有电荷陷阱的存储器状态还是存储没有电荷陷阱的存储器状态,由位线驱动器电路306(2)、306(m-1)将0V或5V的线电压施加在用于存储器行R2和Rm-1的位线BL2和BLm-1上。在源极线SL2和SLm-1上施加5V的线电压。将10V的输入(即,编程)电压施加到字线WL2,以将其施加到NVM位单元电路R25和Rm-15的栅极节点G25和Gm-15,以将NVM位单元电路R25和Rm-15编程为逻辑‘0’存储器状态。类似地,图7B图示了在写入操作中向图3A中的NVM矩阵电路300中的存储器列C5中的NVM位单元电路R25和Rm-15两者写入逻辑‘1’。如图7B中所示,在该示例中,为了将逻辑‘1’写入NVM位单元电路R25和Rm-15,分别根据NVM位单元电路R25和Rm-15存储没有电荷陷阱的存储器状态还是存储具有电荷陷阱的存储器状态,由位线驱动器电路306(2)、306(m-1)将0V或5V的线电压施加在用于存储器行R2和Rm-1的位线BL2和BLm-1上。在源极线SL2和SLm-1上施加0V的线电压。将-10V的输入(即,编程)电压施加到字线WL2,以将其施加到NVM位单元电路R25和Rm-15的栅极G25和Gm-15,以将NVM位单元电路R25和Rm-15编程为逻辑‘1’存储器状态。

图8A是图示了在图3A中的NVM矩阵电路300中执行读取操作的示例性过程800的流程图。上面关于图6A-图7B讨论了对图3A中的NVM矩阵电路300的读取操作的示例。在这方面,参考图3A和图8A,过程800包括在多个位线BL0-BLm中的至少一个位线BL0-BLm上施加线电压,该至少一个位线BL0-BLm耦合到多个NVM存储串电路302(0)-302(m)中的对应的NVM存储串电路302(0)-302(m),以将线电压电耦合到与多个位线BL0-BLm中的对应位线BL0-BLm耦合的对应的NVM存储串电路302(0)-302(m)(图8A中的框802)。多个NVM存储串电路302(0)-302(m)中的每个NVM存储串电路包括在多个位线BL0-BLm之间的多个NVM位单元电路RX0-RXn,每个NVM位单元电路均具有表示在NVM位单元电路RX0-RXn中的所存储的存储器状态的沟道电阻,以形成用于对应的NVM存储串电路302(0)-302(m)的数据矢量。过程800还涉及在多个源极线SL0-SLm中的至少一个源极线SL0-SLm上施加第二线电压,该至少一个源极线SL0-SLm耦合到多个NVM存储串电路302(0)-302(m)中的对应的NVM存储串电路302(0)-302(m),以将第二线电压电耦合到与多个源极线SL0-SLm中的对应的源极线SL0-SLm耦合的对应的NVM存储串电路302(0)-302(m)(图8A中的框804)。过程800还涉及在多个字线WL0-WLn上施加表示输入矢量X0-Xn的多个输入电压,多个字线WL0-WLn中的每个字线WL0-WLn耦合到多个NVM存储串电路302(0)-302(m)中的每个NVM存储串电路中的NVM位单元电路R00-Rmn的对应的栅极节点G00-Gmn,以将NVM位单元电路R00-Rmn电耦合到源极线SL0-SLm,以将NVM位单元电路R00-Rmn的沟道电阻耦合到源极线SL0-SLm(图8A中的框806)。过程800还涉及将存取电压施加到多个存取晶体管312(0)-312(m),多个存取晶体管312(0)-312(m)中的每个存取晶体管312(0)-312(m)耦合到多个位线BL0-BLm中的对应位线BL0-BLm,并且耦合到多个NVM存储串电路302(0)-302(m)中的对应的NVM存储串电路302(0)-302(m)。多个NVM存储串电路302(0)-302(m)耦合到与位线BL0-BLm相对应的相应的源极线SL0-SLm,以将对应的位线BL0-BLm电耦合到对应的NVM存储串电路302(0)-302(m)(图8A中的框808)。图8B是图示在图3A中的NVM矩阵电路300中执行读取操作的示例性过程810的流程图。上面关于图5A和图5B讨论了对图3A中的NVM矩阵电路300的写入操作的示例。在这点上,参考图3A和图8B,过程810包括将线电压施加到多个位线BL0-BLm中的位线BL0-BLm,该位线BL0-BLm耦合到多个NVM存储串电路302(0)-302(m)中的对应的NVM存储串电路302(0)-302(m)(图8B中的框812)。过程810还涉及将第二线电压施加到耦合到对应的NVM存储串电路302(0)-302(m)的多个源极线SL0-SLm中的源极线SL0-SLm(图8B中的框814)。过程810还涉及将写入激活电压施加到对应的NVM存储串电路302(0)-302(m)中的NVM位单元电路R00-Rmn的栅极节点G00-Gmn,以基于施加到NVM位单元电路R00-Rmn的栅极节点G00-Gmn的写入激活电压来写入存储器状态(图8B中的框816)。

图3A中的NVM矩阵电路300还可以被采用并且被重新配置以提供经重新配置的神经元路径,以支持针对不同神经元层和神经元的通用深度学习或人工智能(AI)任务。在这方面,图9是NVM矩阵系统的示例,该NVM矩阵系统包括被配置为如图3A中所示的n×mNVM矩阵电路300的图3A中的NVM矩阵电路300。提供了另一个NVM矩阵电路300A,其类似于NVM矩阵电路300,但是被配置为m×k NVM矩阵电路。NVM矩阵电路300、300A可以耦合在一起,以形成具有提供中间神经元902的输出矢量S0-Sm的第一和第二相应的神经元层900(1)、900(2)。这允许作为n×m的NVM矩阵电路300的矩阵计算的结果的点积输出矢量S0-Sm被用作NVM矩阵电路300A的输入矢量X0-Xm,以产生点积输出矢量S0-Sk。因此,耦合到另一个NVM矩阵电路300A的NVM矩阵电路300被配置为根据以下公式在隐藏层上产生电流I0-Ik

Figure BDA0002361535860000221

其中:

h=存储器行0至m;

l=存储器列0至k;

VBL=位线BL0’-BLm’的电压;并且

Rhl=NVM矩阵电路300A中的NVM位单元电路的沟道电阻。

可以在图9中的NVM矩阵电路300、300A中执行的矩阵计算的操作和写入操作可以如之前针对NVM矩阵电路300所描述的那样。

除了如图3A中的NVM矩阵电路300中所示的NAND NVM闪存电路之外,还可以采用其他类型的NVM位单元电路。例如,图10是不需要在位线和字线之间的交叉开关连接的另一示例性NVM矩阵电路1000的示意图,如图3A中的NVM矩阵电路300不包括位线和字线之间的交叉开关连接那样。然而,在该示例中,NVM矩阵电路1000包括NAND NVM铁电(Fe)场效应晶体管(FET)(FeFET)电路形式的NVM存储串电路1002(0)-1002(m)。每个相应的NVM存储串电路1002(0)-1002(m)中的NVM位单元电路R00-Rmn是以存储器行R0-Rm和存储器列C0-Cn布置的NVMFeFET电路。NVM矩阵电路1000包括用于每个存储器行R0-Rm的相应的位线BL0-BLm。提供位线驱动器电路1006(0)-1006(m),每个位线驱动器电路均被配置为驱动相应的位线BL0-BLm上的相应的线电压V0-Vm。还提供了源极线SL0-SLm,每个源极线均耦合到相应的输出节点1008(0)-1008(m)。NVM存储串电路1002(0)-1002(m)耦合在每个相应的存储器行R0-Rm中的对应的位线BL0-BLm与对应的源极线SL0-SLm之间。源极线SL0-SLm被配置为:当它们相应的NVM位单元电路R00-Rmn被激活时,将相应的电流I0-Im携带到相应的输出节点1008(0)-1008(m)作为输出矢量。例如,输出矢量可以是二进制突触后矢量。

继续参考图10,NVM矩阵电路1000还包括用于每个存储器列C0-Cn的相应的字线WL0-WLn。提供字线驱动器电路1010(0)-1010(n),每个字线驱动器电路均被配置为驱动相应的输入矢量X0-Xn,相应的输入矢量X0-Xn包括在相应的字线WL0-WLn上的多个输入电压。例如,输入矢量X0-Xn可以是二进制突触前数据矢量。NVM矩阵电路1000还包括耦合在相应的位线BL0-BLm与NVM存储串电路1002(0)-1002(m)之间的第一存取晶体管1012(0)-1012(m)。第一存取晶体管1012(0)-1012(m)均包括耦合到相应的第一存取线1014的第一存取栅极节点G,第一存取线1014被配置为由第一存取线驱动器电路1016以第一存取电压来驱动。第一存取晶体管1012(0)-1012(m)均被配置为:控制是否将施加在相应的位线BL0-BLm上的对应的线电压V0-Vm施加到在对应的存储器行R0-Rm中的相应的NVM存储串电路1002(0)-1002(m)。第一存取晶体管1012(0)-1012(m)被配置为:响应于由第一存取线驱动器电路1016驱动到第二存取线1020上、到达到第一存取晶体管1012(0)-1012(m)的第一存取栅极节点G的第一存取信号(电压)足以使第一存取晶体管1012(0)-1012(m)导通,而传递相应的位线BL0-BLm上的线电压V0-Vm。NVM矩阵电路1000还包括第二存取晶体管1018(0)-1018(m),第二存取晶体管1018(0)-1018(m)耦合在相应的NVM存储串电路1002(0)-1002(m)与耦合到输出节点1008(0)-1008(m)的源极线SL0-SLm之间。第二存取晶体管1018(0)-1018(m)均被配置为:响应于由第二存取线驱动器电路1022驱动到第二存取线1020上、到达第二存取晶体管1018(0)-1018(m)的第二存取栅极节点G的第二存取信号(电压)足以使第二存取晶体管1018(0)-1018(m)导通,而将相应的NVM存储串电路1002(0)-1002(m)耦合到相应的源极线SL0-SLm和相应的输出节点1008(0)-1008(m)。如图10中所示,字线WL0-WLn和位线BL0-BLm之间没有交叉开关耦合。NVM存储串电路1002(0)-1002(m)的存取晶体管1012(0)-1012(m)、1018(0)-1018(m)可以在字线WL0-WLn与位线BL0-BLm之间提供进一步的隔离。

继续参考图10,在该示例中,NVM矩阵电路1000中的每个NVM位单元电路R00-Rmn是不需要功率来保持数据的NVM FeFET电路。NVM位单元电路R00-Rmn均以串联耦合的串的方式彼此耦合。使用存储器行R0中的NVM存储串电路1002(0)作为示例,NVM位单元电路R00-Rn-1的源极节点耦合到相邻的NVM位单元电路R01-R0n的漏极节点。NVM存储串电路1002(0)中的端NVM位单元电路R00、R0n耦合到相应的存取晶体管1012(0)、1018(0)。每个NVM位单元电路R00-R0n具有表示所存储的存储器状态的电阻。每个NVM位单元电路R00-Rmn具有晶体管,该晶体管包括栅极G00-G0n,其基于NVM位单元电路R00-Rmn位于哪个存储器列C0-Cn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rmn被配置为被激活以激活半导体沟道以将其电阻耦合到其存储器行R0-Rm中的相应的源极线SL0-SLm上。NVM位单元电路R00-R0n中的集体存储器状态形成存储在NVM存储串电路1002(0)中的数据矢量。如图10中所示,在字线WL0和位线BL0之间没有交叉开关耦合,在所有字线WL0-WLn和相应的位线BL0-BLm之间也是如此。

继续参考图10,当施加到位线BL0的线电压和施加到存取晶体管1012(0)-1012(m)的存取栅极节点G的存取电压足以激活存取晶体管1012(0)-1012(m)的半导体沟道C时,NVM存储串电路1002(0)耦合到位线BL0和源极线SL0。作为输入矢量X0-Xn被施加到字线WL0-WLn和作为输入矢量X0-Xn被施加到栅极节点G00-G0n的输入电压控制相应的NVM位单元电路R00-R0n的激活。当被激活时,NVM位单元电路R00-R0n将其电阻耦合到源极线SL0。NVM位单元电路R00-R0n的电阻是其存储的存储器状态的函数。因此,NVM位单元电路R00-R0n的电阻可以表示权重矢量。在相应的源极线SL0上流到输出节点1008(0)的电流I0是相应的输入矢量X0-Xn乘以NVM存储串电路1002(0)的NVM位单元电路R00-R0n中的对应的存储器状态的点积乘积之和的函数。因此,参考图10,用于图10中的NVM矩阵电路1000中的NVM存储串电路1002(0)-1002(m)的所有NVM位单元电路R00-R0n可以表示权重矩阵。从相应的NVM存储串电路1002(0)-1002(m)的相应的源极线SL0-SLm流向输出节点1008(0)-1008(m)的电流I0-Im是由相应的源极线SL0-SLm上的位线驱动器电路1006(0)-1006(m)驱动的相应的线电压V0-Vm除以NVM存储串电路1002(0)-1002(m)的NVM位单元电路R00-Rmn的相加的沟道电阻的函数。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,图10中的NVM矩阵电路1000被配置为根据以下公式在输入层上产生电流I0-Im

其中:

i=存储器行0至m;

j=存储器列0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的沟道电阻。

因此,继续参考图10,NVM矩阵电路1000被配置为同时执行1×n个权重矢量中的每个权重矢量(被存储为NVM存储串电路1002(0)-1002(m)中的每个NVM存储串电路中的相应的存储器状态)与n×1个输入矢量X0-Xn的矩阵乘法。根据上面提供的电流公式,根据在输出节点1008(0)-1008(m)处生成的电流I0-Im的相应幅度来提供这些矢量乘法的点积。

另外,如果字线WL0-WLm耦合到前神经元层并且输出节点1008(0)-1008(m)耦合到后神经元层,则NVM矩阵电路1000还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的沟道电阻;并且

S=在NVM位单元电路的源极线处的值。

在写入操作中,可以将作为在NVM位单元电路R00-Rmn中的所存储的存储器状态提供的NVM矩阵电路1000的权重矩阵设置成期望的存储器状态,以提供期望的权重矩阵。之前针对图3A中的NVM矩阵电路300描述的写入和读取操作可以应用于图10中的NVM矩阵电路1000。

图11图示了NVM矩阵电路1100,其是通过将存储器行和存储器列切换为具有存储器行R0-Rn和存储器列C0-Cm来将图3A中的NVM矩阵电路300转换成n×m矩阵的重新配置。在该示例中,NVM矩阵电路1100包括AND NVM闪存电路形式的NVM存储串电路1102(0)-1102(m),其被提供在相应的存储器列C0-Cm中以提供NVM位单元电路R00-Rnm。因此,每个NVM位单元电路R00-Rnm是NVM闪存电路。字线WL0-WLn和位线BL0-BLm在来自图3A中的NVM矩阵电路300的存储器行R0-Rn和列C0-Cm之间反转,但是仍以与图3A中的NVM矩阵电路300相同的方式耦合到NVM位单元电路R00-Rnm。在这点上,如图11中所示,为每个存储器行R0-Rn提供字线WL0-WLn,字线WL0-WLn接收输入电压形式的输入矢量X0-Xn。为每个存储器列C0-Cm提供位线BL0-BLm。图3A中的NVM矩阵电路300与图11中的NVM矩阵电路1100之间的共同的组件以共同的元件附图标记示出,并且因此将不再描述。可以在图11中的NVM矩阵电路1100中执行与上面关于NVM矩阵电路300描述的读取和写入操作类似的读取和写入操作。

每个NVM位单元电路R00-Rnm具有表示所存储的存储器状态的沟道电阻。NVM位单元电路R00-Rnm的沟道电阻表示权重矩阵。每个NVM位单元电路R00-Rnm具有包括栅极节点G00-Gnm的晶体管,栅极节点G00-Gnm基于NVM位单元电路R00-Rnm位于哪个存储器行R0-Rn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rnm被配置为激活其半导体沟道,以与在相同的存储器列C0-Cm中的其他激活的NVM位单元电路R00-Rnm并联地将其沟道电阻(即,电导)耦合在相应的位线BL0-BLm和相应的源极线SL0-SLm之间。电流I0-Im根据相应的线电压V0-Vm(由位线驱动器电路1006(0)-1006(m)驱动到其相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm)除以相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm的并联沟道电阻,从相应的源极线SL0-SLM流向输出节点1108(0)-1108(m)。如图11中所示,NVM存储串电路1102(0)-1102(m)中的每个NVM位单元电路R00-Rnm包括耦合到对应的位线BL0-BLm的源极节点(或漏极节点)和耦合到对应的源极线SL0-SLm的漏极节点(或源极节点),以被配置为与相应的存储器列C0-Cm中的其他NVM位单元电路R00-Rnm并联耦合。因此,例如,在相应的源极线SL0上流到输出节点1008(0)的电流I0是点积之和的函数,意指相应的输入矢量X0-Xn乘以其相应的对应存储器列C0-Cm中的NVM位单元电路R00-R0n中的对应存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1100被配置为根据以下公式在输入层上产生电流I0-Im

Figure BDA0002361535860000271

其中:

i=存储器列0至m;

j=存储器行0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的沟道电阻。

如果字线WL0-WLm耦合到前神经元层并且输出节点1108(0)-1108(m)耦合到后神经元层,则NVM矩阵电路1100还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的沟道电阻;并且

S=在NVM存储串电路的源极线处的值。

图12图示了NVM矩阵电路1200,其是通过将存储器行和存储器列切换为具有存储器行R0-Rn和存储器列C0-Cm来将图3A中的NVM矩阵电路300转换成n×m矩阵的重新配置。在该示例中,NVM矩阵电路1200包括AND NVM FeFET电路形式的NVM存储串电路1202(0)-1202(m),其被提供在相应的存储器列C0-Cm中以提供NVM位单元电路R00-Rnm。因此,每个NVM位单元电路R00-Rnm是NVM FeFET电路。字线WL0-WLn和位线BL0-BLm在来自图3A中的NVM矩阵电路300的存储器行R0-Rn和列C0-Cm之间反转,但是仍以与图3A中的NVM矩阵电路300相同的方式耦合到NVM位单元电路R00-Rnm。在这点上,如图12中所示,为每个存储器行R0-Rn提供字线WL0-WLn,字线WL0-WLn接收输入电压形式的输入矢量X0-Xn。为每个存储器列C0-Cm提供位线BL0-BLm。图3A中的NVM矩阵电路300与图12中的NVM矩阵电路1200之间的共同的组件以共同的元件附图标记示出,并且因此将不再描述。可以在图12中的NVM矩阵电路1200中执行与上面关于NVM矩阵电路300描述的读取和写入操作类似的读取和写入操作。

每个NVM位单元电路R00-Rnm具有表示所存储的存储器状态的沟道电阻。NVM位单元电路R00-Rnm的沟道电阻表示权重矩阵。每个NVM位单元电路R00-Rnm具有包括栅极节点G00-Gnm的晶体管,栅极节点G00-Gnm基于NVM位单元电路R00-Rnm位于哪个存储器行R0-Rn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rnm被配置为激活其半导体沟道,以与在相同的存储器列C0-Cm中的其他激活的NVM位单元电路R00-Rnm并联地将其沟道电阻(即,电导)耦合在相应的位线BL0-BLm和相应的源极线SL0-SLm之间。电流I0-Im根据相应的线电压V0-Vm(被驱动到其相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm)除以相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm的并联沟道电阻,从相应的源极线SL0-SLm流向输出节点1208(0)-1208(m)。如图12中所示,NVM存储串电路1202(0)-1202(m)中的每个NVM位单元电路R00-Rnm包括耦合到对应的位线BL0-BLm的源极节点(或漏极节点)和耦合到对应的源极线SL0-SLm的漏极节点(或源极节点),以被配置为与相应的存储器列C0-Cm中的其他NVM位单元电路R00-Rnm并联耦合。因此,例如,在相应的源极线SL0上流到输出节点1208(0)的电流I0是点积乘积之和的函数,意指相应的输入矢量X0-Xn乘以其相应的对应存储器列C0-Cm中的NVM位单元电路R00-R0n中的对应存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1200被配置为根据以下公式在输入层上产生电流I0-Im

Figure BDA0002361535860000291

其中:

i=存储器列0至m;

j=存储器行0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的沟道电阻。

如果字线WL0-WLm耦合到前神经元层并且输出节点1208(0)-1208(m)耦合到后神经元层,则NVM矩阵电路1200还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的沟道电阻;并且

S=在NVM存储串电路的源极线处的值。

图13图示了NVM矩阵电路1300,其是通过将存储器行和存储器列切换为具有存储器行R0-Rn和存储器列C0-Cm来将图3A中的NVM矩阵电路300转换成n×m矩阵的重新配置。在该示例中,NVM矩阵电路1300包括AND NVM磁阻随机存取存储器(MRAM)电路形式的NVM存储串电路1302(0)-1302(m),其被提供在相应的存储器列C0-Cm中以提供NVM位单元电路R00-Rnm。因此,每个NVM位单元电路R00-Rnm是NVM MRAM电路。字线WL0-WLn和位线BL0-BLm在来自图3A中的NVM矩阵电路300的存储器行R0-Rn和列C0-Cm之间反转,但是仍以与图3A中的NVM矩阵电路300相同的方式耦合到NVM位单元电路R00-Rnm。在这点上,如图13中所示,为每个存储器行R0-Rn提供字线WL0-WLn,字线WL0-WLn接收输入电压形式的输入矢量X0-Xn。为每个存储器列C0-Cm提供位线BL0-BLm。图3A中的NVM矩阵电路300与图13中的NVM矩阵电路1300之间的共同的组件以共同的元件附图标记示出,并且因此将不再描述。可以在图13中的NVM矩阵电路1300中执行与上面关于NVM矩阵电路300描述的读取和写入操作类似的读取和写入操作。

每个NVM位单元电路R00-Rnm具有表示所存储的存储器状态的电阻。在该示例中,NVM位单元电路R00-Rnm的电阻是NVM位单元电路R00-Rnm中的磁隧道结(MTJ)处于并联(P)磁化状态还是反并联(AP)磁化状态的函数,并联(P)磁化状态还是反并联(AP)磁化状态表示存储器状态。NVM位单元电路R00-Rnm的电阻表示权重矩阵。每个NVM位单元电路R00-Rnm具有包括栅极节点G00-Gnm的晶体管,栅极节点G00-Gnm基于NVM位单元电路R00-Rnm位于哪个存储器行R0-Rn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rnm被配置为激活其半导体沟道,以与在相同的存储器列C0-Cm中的其他激活的NVM位单元电路R00-Rnm并联地将该MTJ电阻(即,电导)耦合在相应的位线BL0-BLm和相应的源极线SL0-SLm之间。电流I0-Im根据相应的线电压V0-Vm(被驱动到其相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm)除以相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm的并联沟道电阻,从相应的源极线SL0-SLM流向输出节点1308(0)-1308(m)。如图13中所示,NVM存储串电路1302(0)-1302(m)中的每个NVM位单元电路R00-Rnm包括耦合到对应的位线BL0-BLm的源极节点(或漏极节点)和耦合到对应的源极线SL0-SLm的漏极节点(或源极节点),以被配置为与相应的存储器列C0-Cm中的其他NVM位单元电路R00-Rnm并联耦合。因此,例如,在相应的源极线SL0上流到输出节点1308(0)的电流I0是点积乘积之和的函数,意指相应的输入矢量X0-Xn乘以其相应的对应存储器列C0-Cm中的NVM位单元电路R00-R0n中的对应存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1300被配置为根据以下公式在输入层上产生电流I0-Im

Figure BDA0002361535860000311

其中:

i=存储器列0至m;

j=存储器行0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的沟道电阻。

如果字线WL0-WLm耦合到前神经元层并且输出节点1308(0)-1308(m)耦合到后神经元层,则NVM矩阵电路1300还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rnm的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的沟道电阻;并且

S=在NVM存储串电路的源极线处的值。

图14图示了NVM矩阵电路1400,其也是通过将存储器行和存储器列切换为具有存储器行R0-Rn和存储器列C0-Cm来将图3A中的NVM矩阵电路300转换成n×m矩阵的重新配置。在该示例中,NVM矩阵电路1400包括AND NVM电阻性随机存取存储器(RRAM)电路形式的NVM存储串电路1402(0)-1402(m),其被提供在相应的存储器列C0-Cm中以提供NVM位单元电路R00-Rnm。因此,每个NVM位单元电路R00-Rnm是NVM RRAM电路。字线WL0-WLn和位线BL0-BLm在来自图3A中的NVM矩阵电路300的存储器行R0-Rn和列C0-Cm之间反转,但是仍以与图3A中的NVM矩阵电路300相同的方式耦合到NVM位单元电路R00-Rnm。在这点上,如图14中所示,为每个存储器行R0-Rn提供字线WL0-WLn,字线WL0-WLn接收输入电压形式的输入矢量X0-Xn。为每个存储器列C0-Cm提供位线BL0-BLm。图3A中的NVM矩阵电路300与图14中的NVM矩阵电路1400之间的共同的组件以共同的元件附图标记示出,并且因此将不再描述。可以在图14中的NVM矩阵电路1400中执行与上面关于NVM矩阵电路300描述的读取和写入操作类似的读取和写入操作。

每个NVM位单元电路R00-Rnm具有表示所存储的存储器状态的电阻。在该示例中,NVM位单元电路R00-Rnm的电阻是NVM位单元电路R00-Rnm的电阻的函数,NVM位单元电路R00-Rnm的电阻是基于它们的存储器状态。NVM位单元电路R00-Rnm的电阻表示权重矩阵。每个NVM位单元电路R00-Rnm具有包括栅极节点G00-Gnm的晶体管,栅极节点G00-Gnm基于NVM位单元电路R00-Rnm位于哪个存储器行R0-Rn中,而耦合到相应的字线WL0-WLn。每个NVM位单元电路R00-Rnm被配置为激活其半导体沟道,以与在相同的存储器列C0-Cm中的其他激活的NVM位单元电路R00-Rnm并联地将MTJ电阻(即,电导)耦合在相应的位线BL0-BLm和相应的源极线SL0-SLm之间。电流I0-Im根据相应的线电压V0-Vm(被驱动到其相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm)除以相应的存储器列C0-Cm中的NVM位单元电路R00-Rnm的并联沟道电阻,从相应的源极线SL0-SLm流向输出节点1408(0)-1408(m)。如图14中所示,NVM存储串电路1402(0)-1402(m)中的每个NVM位单元电路R00-Rnm包括耦合到对应的位线BL0-BLm的源极节点(或漏极节点)和耦合到对应的源极线SL0-SLm的漏极节点(或源极节点),以被配置为与相应的存储器列C0-Cm中的其他NVM位单元电路R00-Rnm并联耦合。因此,例如,在相应的源极线SL0上流到输出节点1408(0)的电流I0是点积乘积之和的函数,意指相应的输入矢量X0-Xn乘以其相应的对应存储器列C0-Cm中的NVM位单元电路R00-R0n中的对应存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1400被配置为根据以下公式在输入层上产生电流I0-Im

Figure BDA0002361535860000331

其中:

i=存储器列0至m;

j=存储器行0至n;

VBL=电压Vi;并且

Rij=NVM位单元电路的沟道电阻。

如果字线WL0-WLm耦合到前神经元层并且输出节点1408(0)-1408(m)耦合到后神经元层,则NVM矩阵电路1400还被配置为:通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Rij=NVM位单元电路的沟道电阻;并且

S=在NVM存储串电路的源极线处的值。

图15是另一示例性NVM矩阵电路1500的示意图,其可以在不使用交叉开关连接的情况下执行矩阵乘法,在该示例中,NVM矩阵电路1500采用被提供为NOR NVM闪存电路的基于OR的NVM存储串电路1502(0)-1502(m)。以这种方式,如下所述,相加的沟道电导影响流向输出节点1508(0)-1508(m)的表示点积矩阵乘法计算的电流I0-Im。在该方面,NVM矩阵电路1500采用在‘m+1’个存储器行R0-Rm中的NVM存储串电路1502(0)-1502(m),每个存储器行均包括多个NVM位单元电路R00-Rmn。因此,NVM位单元电路R00-Rmn以存储器行R0-Rm和存储器列C0-Cn布置。NVM矩阵电路1500包括用于每个存储器行R0-Rm的相应的字线WL0-WLm。提供字线驱动器电路1506(0)-1506(m),每个字线驱动器电路均被配置为驱动相应字线WL0-WLm上的相应的电压V0-Vm。用于每个NVM存储串电路1502(0)-1502(m)的源极线SL0-SLm包括相应的输出节点1508(0)-1508(m)。源极线SL0-SLm被配置为向相应的输出节点1508(0)-1508(m)提供相应的电流I0-Im,以将其作为输出矢量S0-Sm提供。例如,输出矢量S0-Sm可以是二进制突触后矢量。在该示例中,NVM矩阵电路1500还包括用于每个存储器列C0-Cn的相应的位线BL0-BLn。例如,输入矢量X0-Xn可以是二进制突触前矢量。在该示例中,提供了位线驱动器电路1510(0)-1510(n),每个位线驱动器电路均被配置为在相应的位线BL0-BLn上以输入电压的形式驱动相应的输入矢量X0-Xn。然而,注意,备选地,在相应的存储器行R0-Rm中提供的字线WL0-WLm可以被配置为接收输入矢量X,并且在施加相应的电压V0-Vm的情况下,将相应的固定电压施加到相应的存储器列C0-Cn中的位线BL0-BLn

继续参考图15,每个NVM位单元电路R00-Rmn具有表示所存储的存储器状态的电导。图15中的NVM位单元电路R00-Rmn的串联电导表示权重矩阵。在该示例中,每个NVM位单元电路R00-Rmn具有包括栅极节点G00-Gmn的晶体管,该栅极节点G00-Gmn基于NVM位单元电路R00-Rmn在哪个存储器行R0-Rm中,而耦合到相应的字线WL0-WLm。每个NVM位单元电路R00-Rmn被配置为激活其在相应的源极线SL0-SLm上的相应的半导体沟道,以将其电导耦合到相应源极线SL0-SLm上。从相应的源极线SL0-SLm上的相应的NVM存储串电路1502(0)-1502(m)流到输出节点1508(0)-1508(m)的电流I0-Im是相应的字线WL0-WLm上的由字线驱动器电路1506(0)-1506(m)驱动的相应的电压V0-Vm除以NVM位单元电路R00-Rmn的相加的电导的函数。因此,例如,在相应的源极线SL0上流到输出节点1508(0)的电流I0是点积乘积之和的函数,意指输入矢量X0-Xn乘以NVM位单元电路R00-R0n中的对应的存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1500被配置为根据以下公式产生电流I0-Im

Figure BDA0002361535860000351

其中:

i=存储器行0至m;

j=存储器列0至n;

VBL=电压Vi;并且

Gij=NVM位单元电路的电导。

相应的NVM位单元电路R00-Rmn的电导Gij与施加到字线WL0-WLm的电压V0-Vm相关。如果位线BL0-BLn耦合到前神经元层并且输出节点1508(0)-1508(m)耦合到后神经元层,则NVM矩阵电路1500还被配置为通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔRij=η·Spost,i·Spost+1,j

其中:

Gij=NVM位单元电路的电导;并且

S=NVM存储串电路的源极线。

可以在图15的NVM矩阵电路1500中执行与上面关于图3A中的NVM矩阵电路300描述的类似的读取和写入操作。

除了如图15的NVM矩阵电路1500中所示的NOR闪存电路之外,还可以采用其他类型的NVM位单元电路。例如,图16是如图15中的NVM矩阵电路1500那样,不需要交叉开关连接的另一示例性矩阵电路1600的示意图。然而,图16中的NVM矩阵电路1600包括NOR NVM FeFET电路形式的NVM存储串电路1602(0)-1602(m)。在该示例中,每个NVM存储串电路1602(0)-1602(m)包括NVM Fe-FET电路形式的NVM矩阵电路R00-Rmn。图15中的NVM矩阵电路1500和图16中的NVM矩阵电路1600之间的共同的组件以共同的元件附图标记示出,并且因此将不再描述。可以在图16的NVM矩阵电路1600中执行与上面关于图3A中的NVM矩阵电路300描述的类似的读取和写入操作。

图17是另一示例性NVM矩阵电路1700的示意图,其可以在不使用交叉开关连接的情况下执行矩阵乘法,在该示例中,NVM矩阵电路1700采用被提供为NOR NVM MRAM电路的基于OR的NVM存储串电路1702(0)-1702(m)。以这种方式,如下所述,NVM存储串电路1702(0)-1702(m)中的MTJ的相加的电导影响流向输出节点1708(0)-1708(m)的表示点积矩阵乘法计算的电流I0-Im。在该方面,NVM矩阵电路1700采用在‘m+1’个存储器行R0-Rm中的NVM存储串电路1702(0)-1702(m),每个存储器行均包括多个NVM位单元电路R00-Rmn。因此,NVM位单元电路R00-Rmn以存储器行R0-Rm和存储器列C0-Cn布置。NVM矩阵电路1700包括用于每个存储器行R0-Rm的相应的字线WL0-WLm。提供字线驱动器电路1706(0)-1706(m),每个字线驱动器电路均被配置为驱动相应字线WL0-WLm上的相应的电压V0-Vm。用于每个NVM存储串电路1702(0)-1702(m)的源极线SL0-SLm包括相应的输出节点1708(0)-1708(m)。源极线SL0-SLm被配置为向相应的输出节点1708(0)-1708(m)提供相应的电流I0-Im,以将其作为输出矢量S0-Sm提供。例如,输出矢量S0-Sm可以是二进制突触后矢量。在该示例中,NVM矩阵电路1700还包括用于每个存储器列C0-Cn的相应的位线BL0-BLn。在该示例中,提供了位线驱动器电路1710(0)-1710(n),每个位线驱动器电路均被配置为在相应的位线BL0-BLn上以输入电压的形式驱动相应的输入矢量X0-Xn。然而,注意,备选地,在相应的存储器行R0-Rm中提供的字线WL0-WLm可以被配置为接收输入矢量X,并且在施加相应的电压V0-Vm的情况下,将相应的固定电压施加到相应的存储器列C0-Cn中的位线BL0-BLn。例如,输入矢量X0-Xn可以是二进制突触前矢量。

继续参考图17,每个NVM位单元电路R00-Rmn具有表示所存储的存储器状态的电导。图17中的NVM位单元电路R00-Rmn的串联电导表示权重矩阵。在该示例中,每个NVM位单元电路R00-Rmn具有包括栅极节点G00-Gmn的晶体管,该栅极节点G00-Gmn基于NVM位单元电路R00-Rmn在哪个存储器行R0-Rm中,而耦合到相应的字线WL0-WLm。每个NVM位单元电路R00-Rmn被配置为激活其在相应的源极线SL0-SLm上的相应的半导体沟道,以将其相应的MTJ的电导耦合到相应源极线SL0-SLm上。从相应的源极线SL0-SLm上的相应的NVM存储串电路1702(0)-1702(m)流到输出节点1708(0)-1708(m)的电流I0-Im是相应的字线WL0-WLm上的由字线驱动器电路1706(0)-1706(m)驱动的相应的电压V0-Vm除以NVM位单元电路R00-Rmn的相加的电导的函数。因此,例如,在相应的源极线SL0上流到输出节点1708(0)的电流I0是点积乘积之和的函数,意指输入矢量X0-Xn乘以NVM位单元电路R00-R0n中的对应的存储器状态。电流I0-Im可以是点积乘积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1700被配置为根据以下公式产生电流I0-Im

Figure BDA0002361535860000371

其中:

i=存储器行0至m;

j=存储器列0至n;

VBL=电压Vi;并且

Gij=NVM位单元电路的电导。

相应的NVM位单元电路R00-Rmn的电导Gij与施加到字线WL0-WLm的电压V0-Vm相关。如果位线BL0-BLn耦合到前神经元层并且输出节点1708(0)-1708(m)耦合到后神经元层,则NVM矩阵电路1700还被配置为通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔGij=η·Spost,i·Spost+1,j

其中:

Gij=NVM位单元电路的电导;并且

S=NVM存储串电路的源极线。

图18是另一示例性NVM矩阵电路1800的示意图,其可以在不使用交叉开关连接的情况下执行矩阵乘法,在该示例中,NVM矩阵电路1800采用被提供为NOR NVM RRAM电路的基于OR的NVM存储串电路1802(0)-1802(m)。以这种方式,如下所述,NVM存储串电路1802(0)-1802(m)的相加的电导影响流向输出节点1808(0)-1808(m)的表示点积矩阵乘法计算的电流I0-Im。在该方面,NVM矩阵电路1800采用在‘m+1’个存储器行R0-Rm中的NVM存储串电路1802(0)-1802(m),每个存储器行均包括多个NVM位单元电路R00-Rmn。因此,NVM位单元电路R00-Rmn以存储器行R0-Rm和存储器列C0-Cn布置。NVM矩阵电路1800包括用于每个存储器行R0-Rm的相应的字线WL0-WLm。提供字线驱动器电路1806(0)-1806(m),每个字线驱动器电路均被配置为驱动相应字线WL0-WLm上的相应的电压V0-Vm。用于每个NVM存储串电路1802(0)-1802(m)的源极线SL0-SLm包括相应的输出节点1808(0)-1808(m)。源极线SL0-SLm被配置为向相应的输出节点1808(0)-1808(m)提供相应的电流I0-Im,以将其作为输出矢量S0-Sm提供。例如,输出矢量S0-Sm可以是二进制突触后矢量。在该示例中,NVM矩阵电路1800还包括用于每个存储器列C0-Cn的相应的位线BL0-BLn。在该示例中,提供了位线驱动器电路1810(0)-1810(n),每个位线驱动器电路均被配置为在相应的位线BL0-BLn上以输入电压的形式驱动相应的输入矢量X0-Xn。然而,注意,备选地,在相应的存储器行R0-Rm中提供的字线WL0-WLm可以被配置为接收输入矢量X,并且在施加相应的电压V0-Vm的情况下,将相应的固定电压施加到相应的存储器列C0-Cn中的位线BL0-BLn。例如,输入矢量X0-Xn可以是二进制突触前矢量。

继续参考图18,每个NVM位单元电路R00-Rmn具有表示所存储的存储器状态的电导。图18中的NVM位单元电路R00-Rmn的串联电导表示权重矩阵。在该示例中,每个NVM位单元电路R00-Rmn具有包括栅极节点G00-Gmn的晶体管,该栅极节点G00-Gmn基于NVM位单元电路R00-Rmn在哪个存储器行R0-Rm中,而耦合到相应的字线WL0-WLm。每个NVM位单元电路R00-Rmn被配置为激活其在相应的源极线SL0-SLm上的相应的半导体沟道,以将其相应的MTJ的电导耦合到相应源极线SL0-SLm上。从相应的源极线SL0-SLm上的相应的NVM存储串电路1802(0)-1802(m)流到输出节点1808(0)-1808(m)的电流I0-Im是相应的字线WL0-WLm上的由字线驱动器电路1806(0)-1806(m)驱动的相应的电压V0-Vm除以NVM位单元电路R00-Rmn的相加的电导的函数。因此,例如,在相应的源极线SL0上流到输出节点1808(0)的电流I0是点积乘积之和的函数,意指输入矢量X0-Xn乘以NVM位单元电路R00-R0n中的对应的存储器状态。电流I0-Im可以是点积之和的模拟表示,其可以被转换为二进制值。换句话说,NVM矩阵电路1800被配置为根据以下公式产生电流I0-Im

其中:

i=存储器行0至m;

j=存储器列0至n;

VBL=电压Vi;并且

Gij=NVM位单元电路的电导。

相应的NVM位单元电路R00-Rmn的电导Gij与施加到字线WL0-WLm的电压V0-Vm相关。如果位线BL0-BLn耦合到前神经元层并且输出节点1808(0)-1808(m)耦合到后神经元层,则NVM矩阵电路1800还被配置为通过根据以下公式支持权重更新的反向传播来训练NVM位单元电路R00-Rmn的沟道电阻:

ΔGij=η·Spost,i·Spost+1,j

其中:

Gij=NVM位单元电路的电导;并且

S=NVM存储串电路的源极线。

图19是示例性芯片封装1900的框图,芯片封装1900可以包括专用矩阵电路芯片1902,专用矩阵电路芯片1902具有NVM矩阵电路1904,NVM矩阵电路1904用于执行矩阵计算而无需交叉开关连接,并且根据本文公开的方面,包括但不限于图3A-图18中的NVM矩阵电路。在这方面,可以包括片上系统(SoC)1906,片上系统(SoC)1906可以包含微处理器和其他支持电路装置以提供计算机系统。诸如动态RAM(DRAM)存储器芯片的外部系统存储器芯片1908可以被提供在芯片封装1900中,并且通过硅通孔(TSV)1910耦合到SoC1906。专用矩阵电路芯片1902也可以通过TSV 1910耦合到SoC 1906。焊料凸起1912可以被提供在SoC 1906上以能够将芯片封装1900焊接到电路板上。系统存储器芯片1908可以通过专用本地总线连接到专用矩阵电路芯片1902,以改善性能。专用矩阵电路芯片1902还可以被嵌入到SoC1906中以节省功率并改善性能。

在另一方面,可以提供一种NVM矩阵电路,其包括用于施加表示输入矢量的多个输入电压的多个装置。作为非限制性示例,用于施加表示输入矢量的多个输入电压的装置可以是图3A-图7B中的NVM矩阵电路300中的字线WL0-WLn、图11中的NVM矩阵电路1100中的字线WL0-WLn、图12中的NVM矩阵电路1200中的字线WL0-WLn、图13中的NVM矩阵电路1300中的字线WL0-WLn、图14中的NVM矩阵电路1400中的字线WL0-WLn、图15中的NVM矩阵电路1500中的字线WL0-WLm、图16中的NVM矩阵电路1600中的字线WL0-WLm、图17中的NVM矩阵电路1700中的字线WL0-WLm或图18中的NVM矩阵电路1800中的字线WL0-WLm

NVM矩阵电路还可以包括用于施加多个线电压的多个装置。作为非限制性示例,用于施加多个线电压的装置可以是图3A-图7B中的NVM矩阵电路300中的位线BL0-BLm、图11中的NVM矩阵电路1100中的位线BL0-BLm、图12中的NVM矩阵电路1200中的位线BL0-BLm、图13中的NVM矩阵电路1300中的位线BL0-BLm、图14中的NVM矩阵电路1400中的位线BL0-BLm、图15中的NVM矩阵电路1500中的位线BL0-BLn、图16中的NVM矩阵电路1600中的位线BL0-BLn、图17中的NVM矩阵电路1700中的位线BL0-BLn或图18中的NVM矩阵电路1800中的位线BL0-BLn中。作为其他非限制性示例,用于施加多个线电压的装置可以是在图3A-图7B中的NVM矩阵电路300中的源极线SL0-SLm、图11中的NVM矩阵电路1100中的源极线SL0-SLm、图12中的NVM矩阵电路1200中的源极线SL0-SLm,图13中的NVM矩阵电路1300中的源极线SL0-SLm、图14中的NVM矩阵电路1400中的源极线SL0-SLm、图15中的NVM矩阵电路1500中的源极线SL0-SLn、图16中的NVM矩阵电路1600中的源极线SL0-SLn、图17中的NVM矩阵电路1700中的源极线SL0-SLn或图18中的NVM矩阵电路1800中的源极线SL0-SLn

NVM矩阵电路还可以包括用于提供表示输出矢量的多个输出电流的多个装置。作为非限制性示例,用于提供多个输出电流的装置可以是图3A-图7B中的NVM矩阵电路300中的源极线SL0-SLm、图11中的NVM矩阵电路1100中的源极线SL0-SLm、图12中的NVM矩阵电路1200中的源极线SL0-SLm、图13中的NVM矩阵电路1300中的源极线SL0-SLm、图14中的NVM矩阵电路1400中的源极线SL0-SLm、图15中的NVM矩阵电路1500中的源极线SL0-SLn、图16中的NVM矩阵电路1600中的源极线SL0-SLn、图17中的NVM矩阵电路1700中的源极线SL0-SLn或图18中的NVM矩阵电路1800中的源极线SL0-SLn。作为其他非限制性示例,用于提供多个输出电流的装置可以是在图3A-图7B中的NVM矩阵电路300中的位线BL0-BLm、图11中的NVM矩阵电路1100中的位线BL0-BLm、图12中的NVM矩阵电路1200中的位线BL0-BLm、图13中的NVM矩阵电路1300中的位线BL0-BLm、图14中的NVM矩阵电路1400中的位线BL0-BLm、图15中的NVM矩阵电路1500中的位线BL0-BLn、图16中的NVM矩阵电路1600中的位线BL0-BLn、图17中的NVM矩阵电路1700中的位线BL0-BLn或图18中的NVM矩阵电路1800中的位线BL0-BLn

NVM矩阵电路还可以包括多个NVM存储串装置,每个NVM存储串装置均电耦合到用于施加多个输入电压的多个装置中的用于施加输入电压的对应装置,并且电耦合到用于提供多个输出电流的多个装置中的用于提供输出电流的对应装置。作为非限制性示例,多个NVM存储串电路可以包括图3A-图7B中的NVM存储串电路302(0)-302(m)、图10中的NVM存储串电路1002(0)-1002(m)、图11中的NVM存储串电路1102(0)-1102(m)、图12中的NVM存储串电路1202(0)-1202(m)、图13中的NVM存储串电路1302(0)-1302(m)、图14中的NVM存储串电路1402(0)-1402(m)、图15中的NVM存储串电路1502(0)-1502(n)、图16中的NVM存储串电路1602(0)-1602(n)、图17中的NVM存储串电路1702(0)-1702(n)或图18中的NVM存储串电路1802(0)-1802(n)。

多个NVM存储串装置中的每个NVM存储串装置可以包括:用于存储存储器状态的多个NV装置,每个NV装置均具有表示所存储的存储器状态的电阻,以形成用于对应的NVM存储串装置的数据矢量,用于存储存储器状态的多个NV装置中的每个NV装置包括:用于将用于存储存储器状态的NV装置的电阻电耦合到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的装置;以及用于控制用于存储存储器状态的多个NV装置的电阻到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的耦合的装置。作为非限制性示例,用于存储存储器状态的多个NV装置可以包括图3A-图7B中的NVM位单元电路R00-Rmn、图10中的NVM位单元电路R00-Rmn、图11中的NVM位单元电路R00-Rmn、图12中的NVM位单元电路R00-Rnm、图13中的NVM位单元电路R00-Rnm、图14中的NVM位单元电路R00-Rnm、图15中NVM位单元电路R00-Rmn、图16中的NVM位单元电路R00-Rmn、图17中的NVM位单元电路R00-Rmn或图18中的NVM位单元电路R00-Rmn

NVM矩阵电路还可以包括多个存取装置,该多个存取装置用于在用于存储存储器状态的多个NV装置的电阻到用于提供多个输出电流的多个装置中的用于提供输出电流的装置的耦合中,控制用于将用于施加多个输入电压的多个装置中的用于施加输入电压的对应装置电耦合到对应的NVM存储串装置的装置。多个存取装置的非限制性示例包括图3A和图4A-图7B中的NVM矩阵电路300中的(多个)存取晶体管312(0)-312(m)、318(0)-318(m)或图10中的NVM矩阵电路1000中的(多个)存取晶体管312(0)-312(m)、1018(0)-1018(m)。

采用NVM矩阵电路以用于执行矩阵计算而无需交叉开关连接并且根据本文公开的方面的NVM矩阵电路可以被提供在任何基于处理器的设备中或被集成到任何基于处理器的设备中。示例包括但不限于:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)设备、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板计算机、平板手机、服务器、计算机、便携式计算机、移动计算设备、可穿戴计算设备(例如,智能手表、健康或健身***、眼镜等)、台式计算机、个人数字助理(PDA)、监测器、计算机显示器、电视、调谐器、收音机、卫星广播、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、交通工具组件、航空电子系统、无人机和多轴飞行器。

在这方面,图20图示了可以被包括在IC 2002中的基于处理器的系统2000的示例。基于处理器的系统2000可以包括NVM矩阵电路2004,NVM矩阵电路2004采用NVM位单元电路来执行矩阵计算而无需交叉开关连接并且是根据本公开的任何方面。IC 2002可以被包括在SoC 2006中或作为SoC 2006被提供。基于处理器的系统2000包括CPU 2008,CPU 2008包括一个或多个处理器2010。CPU 2008可以具有耦合到(多个)处理器2010的高速缓存存储器2012,以用于快速存取临时存储的数据。高速缓存存储器2012可以包括根据本文公开的任何示例的NVM矩阵电路2004。CPU 2008耦合到系统总线2014,并且可以使被包括在基于处理器的系统2000中的主设备和从设备相互耦合。众所周知,CPU 2008通过在系统总线2014上交换地址信息、控制信息和数据信息与这些其他的设备通信。尽管未在图20中图示,但是可以提供多个系统总线2014,其中每个系统总线2014构成不同的结构。例如,CPU 2008可以将总线事务请求通信到作为从设备的示例的存储器系统2016。存储器系统2016可以包括具有存储器位单元2020的存储器阵列2018。存储器位单元2020可以是例如MRAM位单元。存储器阵列2018可以包括NVM矩阵电路2004。

其他的主设备和从设备可以连接到系统总线2014。如图20中图示的,这些设备可以包括存储器系统2016和一个或多个输入设备2022。(多个)输入设备2022可以包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。其他设备也可以包括一个或多个输出设备2024,以及一个或多个网络接口设备2026。(多个)输出设备2024可以包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。作为示例,其他设备还可以包括一个或多个显示控制器2030。(多个)网络接口设备2026可以是被配置为允许将数据交换到网络2028并且从网络2028交换数据的任何设备。网络2028可以是任何类型的网络,包括但不限于有线或无线网络、私有网络或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和因特网。(多个)网络接口设备2026可以被配置为支持期望的任何类型的通信协议。

CPU 2008还可被配置为通过系统总线2014访问(多个)显示控制器2030,以控制发送到一个或多个显示器2032的信息。(多个)显示控制器2030可以包括NVM矩阵电路2004。显示控制器2030经由一个或多个视频处理器2034将信息发送到(多个)显示器2032以进行显示,视频处理器将要显示的信息处理成适于(多个)显示器2032的格式。(多个)显示器2032可以包括任何类型的显示器,包括但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。

本领域技术人员将进一步理解,结合本文公开的方面描述的各种说明性的逻辑块、模块、电路和算法可以实现为电子硬件、存储在存储器或另一计算机可读介质中并且由处理器或其他处理设备执行的指令或两者的组合。作为示例,本文描述的主设备和从设备可以在任何电路、硬件组件、集成电路(IC)或IC芯片中被采用。本文公开的存储器可以是任何类型和大小的存储器,并且可以被配置为存储期望的任何类型的信息。为了清楚地说明这种可互换性,上面已经大体上根据其功能描述了各种说明性的组件、框、模块、电路和步骤。如何实现这种功能取决于特定的应用、设计选择和/或强加于整个系统的设计约束。本领域技术人员可以针对每个特定应用以变化的方式来实现所描述的功能,但是这种实现决定不应当被解释为导致脱离本公开的范围。

结合本文公开的方面描述的各种说明性逻辑块、模块和电路可利用被设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件或其任何组合来实施或执行。处理器可以是微处理器,但在备选方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以被实施成计算设备的组合(例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或更多个微处理器或任何其他这种配置)。

本文公开的方面可以以硬件和被存储在硬件中的指令来体现,并且可以驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质耦合到处理器,使得处理器能够从该存储介质读取信息并且能够向该存储介质写入信息。在备选方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可以驻留在远程站中。在备选的方案中,处理器和存储介质可以作为分立组件驻留在远程站、基站或服务器中。

还应当注意,描述了本文的任何示例性方面中描述的操作性步骤以提供示例和讨论。所描述的操作可以以除了图示的顺序之外的许多不同的顺序执行。另外,在单个操作步骤中描述的操作实际上可以在许多不同的步骤中执行。附加地,可以组合示例性方面中讨论的一个或多个操作步骤。应当理解,流程图中图示的操作步骤可以进行许多不同的修改,这对于本领域技术人员来说是显而易见的。本领域技术人员还将理解,可以使用多种不同科技和技术中的任何一种来表示信息和信号。例如,在以上整个说明书中可能引用的数据、指令、命令、信息、信号、位、符号和码片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合表示。

提供对本公开的之前描述以使本领域技术人员能够制造或使用本公开。对本公开的各种修改对于本领域技术人员而言将是显而易见的,并且在不脱离本公开的精神或范围的情况下,本文中定义的一般原理可以应用于其他变型。因此,本公开内容不旨在限于本文描述的示例和设计,而是与符合本文公开的原理和新颖特征的最宽范围一致。

59页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于向表示数据的多电平信号提供另外的驱动的设备和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类