在人工神经网络中的差分单元对中存储突触权重的模拟神经存储器阵列的制作方法

专利2024-04-18  14


在人工神经网络中的差分单元对中存储突触权重的模拟神经存储器阵列
1.优先权声明
2.本技术要求于2020年3月5日提交的并且名称为“人工神经网络中具有准确的阵列源阻抗、具有适应性权重映射和分布式功率的模拟神经存储器阵列(analog neural memory array in artificial neural network with accurate array source impedance with adaptive weight mapping and distributed power)”的第62/985,826号美国临时申请以及于2020年8月6日提交的并且名称为“在人工神经网络中的差分单元对中存储突触权重的模拟神经存储器阵列(analog neural memory array storing synapsis weights in differential cell pairs in artificial neural network)”的第16/987,101号美国专利申请的优先权。
技术领域
3.公开了模拟神经存储器阵列的许多实施方案。在某些实施方案中,突触权重存储在阵列中的差分单元对中。在某些实施方案中,当读取单元时,阵列内的从位线到位线的功率消耗基本上恒定。在某些实施方案中,自适应地执行权重映射以获得功率和噪声方面的最佳性能。


背景技术:

4.人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),并且用于估计或近似可取决于大量输入并且通常未知的函数。人工神经网络通常包括互相交换消息的互连“神经元”层。
5.图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得人工神经网络适应于输入并且能够学习。通常,人工神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
6.在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际人工神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。cmos模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数cmos实现的突触都过于庞大。
7.申请人先前在美国专利申请号15/594,439(公开为美国专利公布2017/0337466)中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经形态存储器操作。如本文所用的术语“神经形态”是指实现神经系统模型的电路。模拟神经形态存储器包括被配置成
接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置成接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与第二部分绝缘的非浮栅。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置成将第一多个输入乘以所存储的权重值以生成第一多个输出。以这种方式布置的存储器单元阵列可被称为矢量矩阵乘法(vmm)阵列。
8.现在将讨论可以在vmm中使用的不同非易失性存储器单元的示例。
9.非易失性存储器单元
10.在vmm阵列中可以使用各种类型的已知非易失性存储器单元。例如,美国专利5,029,130(“130专利”),其以引用方式并入本文,公开了分裂栅非易失性存储器单元的阵列,它是一种闪存存储器单元。此类存储器单元210在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝缘(并控制其电导率),并且形成在源极区14的一部分上方。字线端子22(其通常被耦接到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线端子24耦接到漏极区16。
11.通过将高的正电压置于字线端子22上来对存储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由福勒-诺德海姆隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。
12.通过将正的电压置于字线端子22上以及将正的电压置于源极区14上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从漏极区16流向源极区14(源极线端子)。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变为被激发的(加热的)。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物被注入到浮栅20上。
13.通过将正的读取电压置于漏极区16和字线端子22(其接通沟道区18的在字线端子下方的部分)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除),则沟道区18的在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。
14.表1示出可施加到存储器单元110的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
15.表1:图2的闪存存储器单元210的操作
[0016] wlblsl读取10.5-3v0.1-2v0v读取20.5-3v0-2v2-0.1v擦除约11-13v0v0v编程1v-2v1-3μa9-10v
[0017]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0018]
图3示出了存储器单元310,其与图2的存储器单元210类似,但增加了控制栅(cg)端子28。控制栅端子28在编程中被偏置在高电压处(例如,10v),在擦除中被偏置在低电压或负电压处(例如,0v/-8v),在读取中被偏置在低电压或中等电压处(例如,0v/2.5v)。其他端子类似于图2那样偏置。
[0019]
图4示出了四栅极存储器单元410,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅22(通常耦接到字线wl)、在浮栅20上方的控制栅28、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的将自身注入到浮栅20的加热的电子执行。擦除通过从浮栅20隧穿到擦除栅30的电子来执行。
[0020]
表2示出可施加到存储器单元410的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
[0021]
表2:图4的闪存存储器单元410的操作
[0022] wl/sgblcgegsl读取10.5-2v0.1-2v0-2.6v0-2.6v0v读取20.5-2v0-2v0-2.6v0-2.6v2-0.1v擦除-0.5v/0v0v0v/-8v8-12v0v编程1v1μa8-11v4.5-9v4.5-5v
[0023]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0024]
图5示出了存储器单元510,除了不含擦除栅eg端子,存储器单元510与图4的存储器单元410类似。通过将衬底18偏置到高电压并将控制栅cg端子28偏置到低电压或负电压来执行擦除。另选地,通过将字线端子22偏置到正电压并将控制栅端子28偏置到负电压来执行擦除。编程和读取类似于图4的那样。
[0025]
图6示出三栅极存储器单元610,其为另一种类型的闪存存储器单元。存储器单元610与图4的存储器单元410相同,除了存储器单元610没有单独的控制栅端子。除了没有施加控制栅偏置,擦除操作(通过使用擦除栅端子进行擦除)和读取操作类似于图4的操作。在没有控制栅偏置的情况下,编程操作也被完成,并且结果,在编程操作期间必须在源极线端子上施加更高的电压,以补偿控制栅偏置的缺乏。
[0026]
表3示出可施加到存储器单元610的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
[0027]
表3:图6的闪存存储器单元610的操作
[0028] wl/sgblegsl读取10.5-2.2v0.1-2v0-2.6v0v读取20.5-2.2v0-2v0-2.6v2-0.1v擦除-0.5v/0v0v11.5v0v编程1v2-3μa4.5v7-9v
[0029]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0030]
图7示出堆叠栅存储器单元710,其为另一种类型的闪存存储器单元。存储器单元710与图2的存储器单元210类似,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅端子22(其在这里将耦接到字线)在浮栅20上方延伸,由绝缘层(未示出)分开。使用从沟道18到靠近漏极区16的沟道区中的浮栅20的热电子注入来执行编程,并且使用从浮栅20到衬底12的福勒-诺德海姆(fowler-nordheim)电子隧穿来执行擦除。读取操作以与先前针对存储器单元210所述类似的方式操作。
[0031]
表4示出可以施加到存储器单元710和衬底12的端子用于执行读取、擦除和编程操作的典型电压范围:
[0032]
表4:图7的闪存存储器单元710的操作
[0033] cgblsl衬底读取10-5v0.1

2v0-2v0v读取20.5-2v0-2v2-0.1v0v擦除-8至-10v/0vfltflt8-10v/15-20v编程8-12v3-5v/0v0v/3-5v0v
[0034]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。任选地,在包括存储器单元210、310、410、510、610或710的行和列的阵列中,源极线可耦接到一行存储器单元或相邻的两行存储器单元。即,源极线端子可由相邻行的存储器单元共享。
[0035]
图8示出双分裂栅存储器单元810。双分裂栅存储器单元810包括一对存储器单元(左侧的a和右侧的b),其中每个存储器单元包括:浮栅(fga、fgb)20,其设置在衬底12上方并与该衬底绝缘;控制栅28(cga、cgb),其设置在浮栅20上并与该浮栅绝缘;擦除栅30(eg),其设置成与浮栅20和控制栅28相邻并与该浮栅和控制栅绝缘并且设置在衬底12上并与该衬底绝缘,其中擦除栅以t形创建,使得每个控制栅cga、cgb的顶角面向t形擦除栅的相应内角以提高擦除效率;以及在衬底中与浮栅20相邻的漏极区16(dra、drb)(具有连接到相应漏极扩散区16(dra、drb)的位线接触件24(bla、blb))。存储器单元形成为共享共同擦除栅30的存储器单元对。此单元设计与上文参考图2-图7讨论的存储器单元的不同之处至少在于,该单元缺少擦除栅eg下方的源极区,缺少选择栅(也称为字线),并且缺少用于每个存储器单元的沟道区。相反,单个连续沟道区18在两个存储器单元下方延伸(即,从一个存储器单元的漏极区16延伸到另一个存储器单元的漏极区16)。为了读取或编程一个存储器单元,将另一个存储器单元的控制栅28升高到足够的电压,以经由电压耦合到其间的浮栅20接通底层沟道区部分(例如,为了读取或编程单元a,经由来自cgb的电压耦接升高fgb上的电压以接通fgb下方的沟道区部分)。使用从浮栅20a和/或浮栅20b到擦除栅30的福勒-诺德海姆电子隧穿来执行擦除。使用从沟道18到浮栅20的热电子注射来执行编程。
[0036]
表5示出可施加到存储器单元810的端子用于执行读取操作、擦除操作和编程操作的典型电压范围。选择单元a(fg、cga、bla)进行读取操作、编程操作和擦除操作。
[0037]
表5:图8的闪存存储器单元810的操作
[0038][0039]
为了在人工神经网络中利用包括上述类型的非易失性存储器单元之一的存储器阵列,在一些实施方案中进行了两个修改。第一,对线路进行配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,提供存储器单元的连续(模拟)编程。
[0040]
具体地,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态。在另一个实施方案,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全编程状态变为完全擦除状态,或从完全擦除状态变为完全编程状态。这意味着单元存储装置是模拟的,或者至少可存储许多离散值(诸如16或256个不同的值)中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调谐,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调是理想的。
[0041]
本文所述的方法和装置可应用于其他非易失性存储器技术,诸如但不限于finfet分裂栅闪存或堆叠栅闪存、sonos(硅-氧化物-氮化物-氧化物-硅,电荷捕获在氮化物中)、monos(金属-氧化物-氮化物-氧化物-硅,金属电荷捕获在氮化物中)、reram(电阻式ram)、pcm(相变存储器)、mram(磁性ram)、feram(铁电ram)、otp(双层或多层式一次可编程)和ceram(关联电子ram)等。本文所述的方法和装置可应用于用于神经网络的易失性存储器技术,诸如但不限于sram、dram和/或易失性突触单元。
[0042]
采用非易失性存储器单元阵列的神经网络
[0043]
图9概念性地示出本实施方案的使用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。
[0044]
对于该示例,s0为输入层,其为具有5位精度的32
×
32像素rgb图像(即,三个32
×
32像素阵列,分别用于每个颜色r、g和b,每个像素为5位精度)。从输入层s0到层c1的突触cb1在一些情况下应用不同的权重集,在其他情况下应用共享权重,并且用3
×
3像素重叠滤波器(内核)扫描输入图像,将滤波器移位1个像素(或根据模型所指示的多于1个像素)。具体地,将图像的3
×
3部分中的9个像素的值(即,称为滤波器或内核)提供给突触cb1,其中将这9个输入值乘以适当的权重,并且在对该乘法的输出求和之后,由cb1的第一突触确定并提供单个输出值以用于生成层c1的特征映射中的一者的像素。然后将3
×
3滤波器在输入层s0内向右移位一个像素(即,添加右侧的三个像素的列,并释放左侧的三个像素的列),由此将该新定位的滤波器中的9个像素值提供给突触cb1,其中将它们乘以相同的权重并且由相
关联的突触确定第二单个输出值。继续该过程,直到3
×
3滤波器在输入层s0的整个32
×
32像素图像上扫描所有三种颜色和所有位(精度值)。然后使用不同组的权重重复该过程以生成c1的不同特征映射,直到计算出层c1的所有特征映射。
[0045]
在层c1处,在本示例中,存在16个特征映射,每个特征映射具有30
×
30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,层c1由16层的二维阵列构成(记住本文所引用的层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。在层c1中的16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。c1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。
[0046]
在从层c1转到层s1之前,应用激活函数p1(池化),该激活函数将来自每个特征映射中连续的非重叠2
×
2区域的值进行池化。池化函数p1的目的是对邻近位置求均值(或者也可使用max函数),以例如减少边缘位置的依赖性,并在进入下一阶段之前减小数据大小。在层s1处,存在16个15
×
15特征映射(即,十六个每个特征映射15
×
15像素的不同阵列)。从层s1到层c2的突触cb2利用4
×
4滤波器扫描层s1中的映射,其中滤波器移位1个像素。在层c2处,存在22个12
×
12特征映射。在从层c2转到层s2之前,应用激活函数p2(池化),该激活函数将来自每个特征映射中连续的非重叠2
×
2区域的值进行池化。在层s2处,存在22个6
×
6特征映射。将激活函数(池化)应用于从层s2到层c3的突触cb3,其中层c3中的每个神经元经由cb3的相应突触连接至层s2中的每个映射。在层c3处,存在64个神经元。从层c3到输出层s3的突触cb4完全将c3连接至s3,即层c3中的每个神经元都连接到层s3中的每个神经元。s3处的输出包括10个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
[0047]
使用非易失性存储器单元的阵列或阵列的一部分来实现每层的突触。
[0048]
图10为可用于该目的的系统的框图。vmm系统32包括非易失性存储器单元,并且用作一层与下一层之间的突触(诸如图6中的cb1、cb2、cb3和cb4)。具体地,vmm系统32包括vmm阵列33(包括以行和列布置的非易失性存储器单元)、擦除栅和字线栅解码器34、控制栅解码器35、位线解码器36和源极线解码器37,这些解码器对非易失性存储器单元阵列33的相应输入进行解码。对vmm阵列33的输入可来自擦除栅和字线栅解码器34或来自控制栅解码器35。在该示例中,源极线解码器37还对vmm阵列33的输出进行解码。另选地,位线解码器36可对vmm阵列33的输出进行解码。
[0049]
vmm阵列33用于两个目的。首先,它存储将由vmm系统32使用的权重。其次,vmm阵列33有效地将输入与存储在vmm阵列33中的权重相乘并且每个输出线(源极线或位线)将它们相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,vmm阵列33消除了对单独的乘法和加法逻辑电路的需要,并且由于其原位存储器计算也是高功效的。
[0050]
将vmm阵列33的输出提供至差分求和器(诸如求和运算放大器或求和电流镜)38,该差分求和器对非易失性存储器单元阵列33的输出进行求和,以为该卷积创建单个值。差分求和器38被布置用于执行正权重输入和负权重输入两者的求和,以输出单个值。
[0051]
然后将差分求和器38的输出值求和后提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数电路39可提供sigmoid、tanh、relu函数或任何其他非线性函数。激活函数电路39的经修正的输出值成为作为下一层(例如,图8中的层c1)的特征映射的元素,然后被应用于下一个突触以产生下一个特征映射层或最终层。因此,在该示例中,vmm阵列33构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和器38和激活函数电路39构成多个神经元。
[0052]
图10中对vmm系统32的输入(wlx、egx、cgx以及任选的blx和slx)可为模拟电平(例如,电流、电压或电荷)、二进制电平、数字脉冲(在这种情况下,可能需要脉冲-模拟转换器pac来将脉冲转换至合适的输入模拟电平)或数字位(在这种情况下,提供dac以将数字位转换至合适的输入模拟电平);输出可为模拟电平、二进制电平、数字脉冲或数字位(在这种情况下,提供输出adc以将输出模拟电平转换成数字位)。
[0053]
图11为示出多层vmm系统32(此处标记为vmm系统32a、32b、32c、32d和32e)的使用的框图。如图11所示,通过数模转换器31将输入(表示为inputx)从数字转换为模拟,并将其提供至输入vmm系统32a。转换的模拟输入可以是电压或电流。第一层的输入d/a转换可通过使用将输入inputx映射到输入vmm系统32a的矩阵乘法器的适当模拟电平的函数或lut(查找表)来完成。输入转换也可由模拟至模拟(a/a)转换器完成,以将外部模拟输入转换成到输入vmm系统32a的映射模拟输入。输入转换也可由数字至数字脉冲(d/p)转换器完成,以将外部数字输入转换成到输入vmm系统32a的映射的一个或多个数字脉冲。
[0054]
由输入vmm系统32a产生的输出被作为到下一个vmm系统(隐藏级别1)32b的输入提供,该输入继而生成作为下一vmm系统(隐藏级别2)32c的输入而提供的输出,以此类推。vmm系统32的各层用作卷积神经网络(cnn)的突触和神经元的不同层。每个vmm系统32a、32b、32c、32d和32e可以是包括相应非易失性存储器阵列的独立物理系统、或者多个vmm系统可利用相同物理非易失性存储器阵列的不同部分、或者多个vmm系统可利用相同物理非易失性存储器阵列的重叠部分。每个vmm系统32a、32b、32c、32d和32e也可针对其阵列或神经元的不同部分进行时分复用。图11所示的示例包含五个层(32a,32b,32c,32d,32e):一个输入层(32a)、两个隐藏层(32b,32c)和两个完全连接的层(32d,32e)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。
[0055]
vmm阵列
[0056]
图12示出神经元vmm阵列1200,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1200包括非易失性存储器单元的存储器阵列1201和非易失性参考存储器单元的参考阵列1202(在阵列的顶部)。另选地,可将另一个参考阵列置于底部。
[0057]
在vmm阵列1200中,控制栅线(诸如控制栅线1203)在竖直方向上延伸(因此参考阵列1202在行方向上与控制栅线1203正交),并且擦除栅线(诸如擦除栅线1204)在水平方向上延伸。此处,vmm阵列1200的输入设置在控制栅线(cg0,cg1,cg2,cg3)上,并且vmm阵列1200的输出出现在源极线(sl0,sl1)上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于各源极线(分别为sl0、sl1)上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
[0058]
如本文针对神经网络所述,vmm阵列1200的非易失性存储器单元优选地被配置成在亚阈值区中操作。
[0059]
在亚阈值区中偏置本文所述的非易失性参考存储器单元和非易失性存储器单元:
[0060]
ids=io*e
(vg-vth)/nvt
=w*io*e
(vg)/nvt

[0061]
其中w=e
(-vth)/nvt
[0062]
其中ids为漏极到源极电流;vg为存储器单元上的栅极电压;vth是存储器单元的阈值电压;vt是热电压=k*t/q,其中k是玻尔兹曼常数,t是以开尔文为单位的温度,并且q是电子电荷;n是斜率因子=1+(cdep/cox),其中cdep=耗尽层的电容,并且cox是栅极氧化物层的电容;io是等于阈值电压的栅极电压下的存储器单元电流,io与(wt/l)*u*cox*(n-1)*vt2成比例,其中u是载流子迁移率,并且wt和l分别是存储器单元的宽度和长度。
[0063]
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流ids转换为输入电压vg的i到v对数转换器:
[0064]
vg=n*vt*log[ids/wp*io]
[0065]
此处,wp为参考存储器单元或外围存储器单元的w。
[0066]
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流ids转换为输入电压vg的i到v对数转换器:
[0067]
vg=n*vt*log[ids/wp*io]
[0068]
此处,wp为参考存储器单元或外围存储器单元的w。
[0069]
对于用作矢量矩阵乘法器vmm阵列的存储器阵列,输出电流为:
[0070]
iout=wa*io*e
(vg)/nvt
,即
[0071]
iout=(wa/wp)*iin=w*iin
[0072]
w=e
(vthp-vtha)/nvt
[0073]
iin=wp*io*e
(vg)/nvt
[0074]
在此,wa=存储器阵列中每个存储器单元的w,并且wp为参考或外围存储器单元的w。
[0075]
字线或控制栅可用作输入电压的存储器单元的输入。
[0076]
另选地,本文所述的vmm阵列的非易失性存储器单元可被配置成在线性区域中操作:
[0077]
ids=β*(vgs-vth)*vds;β=u*cox*wt/l,
[0078]
wα(vgs-vth),
[0079]
即线性区域中的权重w与(vgs-vth)成比例
[0080]
字线或控制栅或位线或源极线可以用作在线性区域中操作的存储器单元的输入。位线或源极线可用作存储器单元的输出。
[0081]
对于i到v线性转换器,在线性区域工作的存储器单元(例如参考存储器单元或外围存储器单元)或晶体管或电阻器可以用来将输入/输出电流线性转换成输入/输出电压。
[0082]
另选地,本文所述的vmm阵列的存储器单元可被配置成在饱和区域中操作:
[0083]
ids=1/2*β*(vgs-vth)2;β=u*cox*wt/l
[0084]
wα(vgs-vth)2,即权重w与(vgs-vth)2成比例
[0085]
字线、控制栅或擦除栅可以用作在饱和区域中操作的存储器单元的输入。位线或
源极线可用作输出神经元的输出。
[0086]
另选地,本文所述的vmm阵列的存储器单元可用于神经网络的每个层或多个层的所有区域或其组合(亚阈值、线性或饱和区域)。
[0087]
图13示出神经元vmm阵列1300,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的突触。vmm阵列1300包括非易失性存储器单元的存储器阵列1303、第一非易失性参考存储器单元的参考阵列1301和第二非易失性参考存储器单元的参考阵列1302。沿阵列的列方向布置的参考阵列1301和1302用于将流入端子blr0、blr1、blr2和blr3的电流输入转换为电压输入wl0、wl1、wl2和wl3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1314(仅部分示出)二极管式连接,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵(未示出)提供。
[0088]
存储器阵列1303用于两个目的。首先,它将vmm阵列1300将使用的权重存储在其相应的存储器单元上。第二,存储器阵列1303有效地将输入(即,在端子blr0、blr1、blr2和blr3中提供的电流输入,参考阵列1301和1302将它们转换成输入电压以提供给字线wl0、wl1、wl2和wl3)乘以存储在存储器阵列1303中的权重,然后将所有结果(存储器单元电流)相加以在相应的位线(bl0-bln)上产生输出,该输出将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列1303消除了对单独的乘法逻辑电路和加法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线(wl0、wl1、wl2和wl3)上提供,并且输出在读取(推断)操作期间出现在相应位线(bl0-bln)上。置于位线bl0-bln中的每个位线上的电流执行来自连接到该特定位线的所有非易失性存储器单元的电流的求和函数。
[0089]
表6示出用于vmm阵列1300的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压,其中flt指示浮动,即未施加电压。行指示读取、擦除和编程操作。
[0090]
表6:图13的vmm阵列1300的操作
[0091] wlwl-未选blbl-未选slsl-未选读取0.5-3.5v-0.5v/0v0.1-2v(ineuron)0.6v-2v/flt0v0v擦除约5-13v0v0v0v0v0v编程1v-2v-0.5v/0v0.1-3uavinh约2.5v4-10v0-1v/flt
[0092]
图14示出神经元vmm阵列1400,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1400包括非易失性存储器单元的存储器阵列1403、第一非易失性参考存储器单元的参考阵列1401和第二非易失性参考存储器单元的参考阵列1402。参考阵列1401和1402在vmm阵列1400的行方向上延伸。vmm阵列与vmm 1300类似,不同的是在vmm阵列1400中,字线在竖直方向上延伸。这里,输入设置在字线(wla0、wlb0、wla1、wlb2、wla2、wlb2、wla3、wlb3)上,并且输出在读取操作期间出现在源极线(sl0、sl1)上。置于各源极线上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
[0093]
表7示出用于vmm阵列1400的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线
和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0094]
表7:图14的vmm阵列1400的操作
[0095][0096]
图15示出神经元vmm阵列1500,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1500包括非易失性存储器单元的存储器阵列1503、第一非易失性参考存储器单元的参考阵列1501和第二非易失性参考存储器单元的参考阵列1502。参考阵列1501和1502用于将流入端子blr0、blr1、blr2和blr3的中的电流输入转换为电压输入cg0、cg1、cg2和cg3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1512(仅部分示出)二极管式连接,其中电流输入通过blr0、blr1、blr2和blr3流入其中。多路复用器1512各自包括相应的多路复用器1505和共源共栅晶体管1504,以确保在读取操作期间第一非易失性参考存储器单元和第二非易失性参考存储器单元中的每一者的位线(诸如blr0)上的恒定电压。将参考单元调谐至目标参考电平。
[0097]
存储器阵列1503用于两个目的。首先,它存储将由vmm阵列1500使用的权重。第二,存储器阵列1503有效地将输入(提供到端子blr0、blr1、blr2和blr3的电流输入,参考阵列1501和1502将这些电流输入转换成输入电压以提供给控制栅cg0、cg1、cg2和cg3)乘以存储在存储器阵列中的权重,然后将所有结果(单元电流)相加以产生输出,该输出出现在bl0-bln并且将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,输入提供在控制栅线(cg0、cg1、cg2和cg3)上,输出在读取操作期间出现在位线(bl0

bln)上。置于各位线上的电流执行来自连接到该特定位线的存储器单元的所有电流的求和函数。
[0098]
vmm阵列1500为存储器阵列1503中的非易失性存储器单元实现单向调谐。也就是说,每个非易失性存储器单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅(诸如eg0或eg1)的两行需要一起擦除(其被称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷。
[0099]
表8示出用于vmm阵列1500的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0100]
表8:图15的vmm阵列1500的操作
[0101][0102]
图16示出神经元vmm阵列1600,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1600包括非易失性存储器单元的存储器阵列1603、第一非易失性参考存储器单元的参考阵列1601和第二非易失性参考存储器单元的参考阵列1602。eg线egr0、eg0、eg1和egr1竖直延伸,而cg线cg0、cg1、cg2和cg3以及sl线wl0、wl1、wl2和wl3水平延伸。vmm阵列1600与vmm阵列1600类似,不同的是vmm阵列1600实现双向调谐,其中每个单独的单元可以根据需要被完全擦除、部分编程和部分擦除,以由于使用单独的eg线而在浮栅上达到期望的电荷量。如图所示,参考阵列1601和1602将端子blr0、blr1、blr2和blr3中的输入电流转换成要在行方向上施加到存储器单元的控制栅电压cg0、cg1、cg2和cg3(通过经由多路复用器1614的二极管连接的参考单元的动作)。电流输出(神经元)在位线bl0-bln中,其中每个位线对来自连接到该特定位线的非易失性存储器单元的所有电流求和。
[0103]
表9示出用于vmm阵列1600的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0104]
表9:图16的vmm阵列1600的操作
[0105][0106]
vmm阵列的输入可为模拟电平、二进制电平、定时脉冲、或数字位,并且输出可为模拟电平、二进制电平、定时脉冲或数字位(在这种情况下,需要输出adc来将输出模拟电平电流或电压转换成数字位)。
[0107]
对于vmm阵列中的每个存储器单元,每个权重w可由单个存储器单元或由差分单元或由两个混合存储器单元(2个或更多个单元的平均值)来实现。在差分单元的情况下,需要两个存储器单元来实现权重w作为差分权重(w=w+

w-)。在两个混合存储器单元中,需要两
个存储器单元来实现权重w作为两个单元的平均值。
[0108]
现有技术的非易失性存储器单元阵列的一个缺点是,阵列的源阻抗和沿着阵列输出线(诸如位线)的源阻抗存在较大差异,并且由此导致精度和功率消耗的差异,这取决于为读取操作、编程操作或擦除操作选择的单元及其状态。另一缺点是它可能易受噪声影响。
[0109]
需要一种具有较低噪声敏感性的改进的vmm系统。
[0110]
进一步需要一种改进的vmm系统,该vmm系统在操作(读取、编程或擦除)期间具有阵列的基本上恒定的源阻抗,而不管选择了哪个单元或哪些单元。
[0111]
进一步需要一种改进的vmm系统,该vmm系统在操作(读取、编程或擦除)期间具有基本上恒定的功率消耗,而不管选择了哪个单元或哪些单元。


技术实现要素:

[0112]
公开了模拟神经存储器阵列的许多实施方案。在某些实施方案中,当阵列中的每个存储器单元在操作时,这些单元具有大致恒定的源阻抗。在某些实施方案中,当读取单元时,阵列内的从位线到位线的功率消耗基本上恒定。在某些实施方案中,自适应地执行权重映射以获得功率和噪声方面的最佳性能。
[0113]
在一个实施方案中,模拟神经存储器系统包括非易失性存储器单元阵列,其中该单元按行和列布置,该列按物理上相邻的列对布置;其中在每个相邻对内,该相邻对中的一个列包括存储w+值的单元,并且该相邻对中的一个列包括存储w-值的单元,其中该相邻对中的相邻单元存储根据公式w=(w+)

(w-)所得的差分权重w。
[0114]
在另一实施方案中,模拟神经存储器系统包括:非易失性存储器单元的第一阵列,其中该单元按行和列布置,并且该列中的一个或多个列中的该非易失性存储器单元存储w+值;以及非易失性存储器单元的第二阵列,其中该单元按行和列布置,并且该列中的一个或多个列中的该非易失性存储器单元存储w-值;其中来自该第一阵列和该第二阵列的单元对存储根据公式w=(w+)

(w-)所得的差分权重w。
附图说明
[0115]
图1示出现有技术的人工神经网络。
[0116]
图2示出现有技术的分裂栅闪存存储器单元。
[0117]
图3示出另一现有技术的分裂栅闪存存储器单元。
[0118]
图4示出另一现有技术的分裂栅闪存存储器单元。
[0119]
图5示出另一现有技术的分裂栅闪存存储器单元。
[0120]
图6示出另一现有技术的分裂栅闪存存储器单元。
[0121]
图7示出现有技术的堆叠栅闪存存储器单元。
[0122]
图8示出双分裂栅存储器单元。
[0123]
图9示出使用一个或多个vmm阵列的示例性人工神经网络的不同层级。
[0124]
图10示出包括vmm阵列和其他电路的vmm系统。
[0125]
图11示出使用一个或多个vmm系统的示例性人工神经网络。
[0126]
图12示出vmm阵列的实施方案。
[0127]
图13示出vmm阵列的另一实施方案。
[0128]
图14示出vmm阵列的另一实施方案。
[0129]
图15示出vmm阵列的另一实施方案。
[0130]
图16示出vmm阵列的另一实施方案。
[0131]
图17示出vmm系统。
[0132]
图18a、图18b和图18c示出现有技术的vmm阵列。
[0133]
图19a、图19b和图19c示出改进的vmm阵列。
[0134]
图20示出另一改进的vmm阵列。
[0135]
图21a和图21b示出另一改进的vmm阵列。
[0136]
图22示出包括冗余阵列的另一改进的vmm阵列。
[0137]
图23示出包括两个vmm阵列和共享虚拟位线切换电路的另一改进的vmm系统。
[0138]
图24示出另一改进的vmm系统。
[0139]
图25示出求和器电路的实施方案。
[0140]
图26示出求和器电路的另一实施方案。
[0141]
图27a示出求和器电路的另一实施方案。
[0142]
图27b示出求和器电路的另一实施方案。
[0143]
图28a示出输出电路的实施方案。
[0144]
图28b示出输出电路的另一实施方案。
[0145]
图28c示出输出电路的另一实施方案。
[0146]
图29示出神经元输出电路。
[0147]
图30示出模数转换器的实施方案。
[0148]
图31示出模数转换器的另一实施方案。
[0149]
图32示出模数转换器的另一实施方案。
[0150]
图33示出模数转换器的另一实施方案。
具体实施方式
[0151]
本发明的人工神经网络利用cmos技术和非易失性存储器阵列的组合。
[0152]
改进的vmm系统的实施方案
[0153]
图17示出vmm系统1700的框图。vmm系统1700包括vmm阵列1701、行解码器1702、高电压解码器1703、列解码器1704、位线驱动器1705、输入电路1706、输出电路1707、控制逻辑部件1708和偏置发生器1709。vmm系统1700还包括高电压生成块1710,该高电压生成块包括电荷泵1711、电荷泵调节器1712和高电压电平发生器1713。vmm系统1700还包括算法控制器1714、模拟电路1715、控制逻辑部件1716和测试控制逻辑部件1717。下文描述的系统和方法可以在vmm系统1700中实现。
[0154]
输入电路1706可以包括电路,诸如dac(数模转换器)、dpc(数字到脉冲转换器)、dtc(数字到时间转换器)、aac(模拟到模拟转换器,诸如电流到电压转换器)、pac(脉冲到模拟电平转换器)或任何其他类型的转换器。输入电路1706可以实现归一化、尺度函数或算术函数。输入电路1706可以在输入上实现温度补偿函数,诸如根据温度调制输出电压/电流/时间/脉冲。输入电路1706可以实现激活函数,诸如relu或sigmoid函数。
[0155]
输出电路1707可以包括电路,诸如adc(模数转换器,用于将神经元模拟输出转换
为数字位)、aac(模拟到模拟转换器,诸如电流到电压转换器)、atc(模拟到时间转换器)、apc(模拟到脉冲转换器)或任何其他类型的转换器。输出电路1707可以实现激活函数,诸如relu或sigmoid。输出电路1707可以在神经元输出上实现统计归一化、正则化、上/向下缩放函数、统计舍入或算术函数(例如,加法、减法、除法、乘法、移位、对数),该输出为vmm阵列1701的输出。输出电路1707可以在神经元输出(诸如电压/电流/时间/脉冲)或阵列输出(诸如位线输出)上实现温度补偿函数,以便保持vmm阵列1701的功率消耗大致恒定或诸如通过使v-i斜率保持大致相同来提高vmm阵列1701(神经元)输出的精度。
[0156]
图18a示出现有技术的vmm系统1800。vmm系统1800包括示例性单元1801和1802、示例性位线开关1803a、1803b、1803c、1803d(其将位线连接到感测电路)、示例性虚拟位线开关1804a、1804b、1804c、1004d(其耦接到低偏置电平,诸如读取中的接地(或接近接地)电平)以及示例性虚拟单元1805和1806(源极线下拉单元)。位线开关1803a耦接到单元列,包括用于在vmm系统1800中存储数据的单元1801和1802。虚拟位线开关1804a、1804b、1804c、1804各自耦接到作为虚拟单元的单元的列(位线),这些虚拟单元不用于在vmm系统1800中存储数据。此虚拟位线(其也可以被称为源极线下拉位线)在读取操作期间用作源极线下拉,这意味着它用于通过虚拟位线中的虚拟单元将源极线拉至低偏置电平,诸如接地(或接近接地)。应注意,虚拟位线开关1804a、1804b、1804c、1804和位线开关1803a、1803b、1803c、1803d均出现在阵列的同一端上,即它们全部出现在它们耦接的单元列的共同端处,并且因此被排列在单个行中。
[0157]
vmm系统1800的一个缺点是,由于通过相关位线开关、单元本身和相关虚拟位线开关的电路径的长度,每个单元的输入阻抗变化很大。例如,图18b示出了通过位线开关1803、单元1801、虚拟单元1805和虚拟位线开关1804的电路径。类似地,图18c示出了通过位线开关1803、竖直金属位线1807、单元1802、虚拟单元1806、竖直金属位线1808和虚拟位线开关1804的电路径。可以看出,通过单元1802的路径穿过的位线和虚拟位线的长度要大得多,这与更高的电容和更高的电阻相关联。这使得单元1802在位线或源极线中的寄生阻抗大于图18b中的单元1801的寄生阻抗。例如,这种可变性是缺点,因为它会导致应用于读取或验证(对于编程/擦除调谐周期)单元的单元输出精度取决于这些单元在阵列中的位置而变化。
[0158]
图19a示出vmm系统1900,该vmm系统改进了现有技术的vmm系统1800。vmm系统1900包括:示例性单元1901和1902;示例性位线开关1903a、1903b、1903c和1903d,这些位线开关将位线连接到感测电路;示例性虚拟单元1905和1906,这些虚拟单元可以用作源极线下拉单元;以及示例性虚拟位线开关1904a、1904b、1904c和1904d。作为示例,虚拟位线开关1904a的一端在读取操作期间连接到低电压电平,诸如接地,并且另一端连接到被用作源极线下拉的虚拟单元1905和1906。可以看出,示例性虚拟位线开关1904a和其他虚拟位线开关位于阵列的与位线开关1903a和其他位线开关相对的端上。
[0159]
在图19b和19c中可以看到这种设计的益处。在图19b中,选择单元1901进行读取,并且在图19c中,选择单元1902进行读取。
[0160]
图19b示出通过位线开关1903、单元1901、虚拟单元1905(源极线下拉单元)、竖直金属位线1908和虚拟位线开关1904(其在读取操作期间耦接到诸如接地之类的低电平)的电路径。图19c示出通过位线开关1903、竖直金属线1907、单元1902、虚拟单元1906(源极线下拉单元)和虚拟位线开关1904的电路径。这些路径在互连长度方面基本上相同,这适用于
vmm系统1900中的所有单元。因此,每个单元的位线阻抗加上源极线阻抗的阻抗基本上相同,这意味着在阵列中每个单元的读取操作或验证操作期间被汲取的寄生电压降的量的变化基本上相同。
[0161]
图20示出具有全局源极线下拉位线的vmm系统2000。vmm系统2000类似于vmm系统1900,不同的是:虚拟位线2005a-2005n或2007a-2007n连接在一起(以充当全局源极线下拉线以在读取或验证期间将存储器单元源极线拉至接地电平);虚拟位线交换机,诸如虚拟位线开关2001和2002,连接或耦接到标记为arygnd的共同接地(阵列接地);并且源极线一起耦接到源极线开关2004,该源极线开关选择性地将源极线拉至接地。这些变化进一步减小在读取或验证操作期间阵列中的每个单元的寄生阻抗的变化。
[0162]
在替代实施方案中,可以使用一个或多个虚拟位线和一个或多个虚拟位线开关代替源极线开关2004以将源极线拉至接地。
[0163]
在另一实施方案中,虚拟行可用作行之间的物理屏障,以避免行之间的(两个相邻单元的)fg-fg耦接。
[0164]
图21a示出vmm系统2100。在一些实施方案中,存储在vmm中的权重w被存储为差分对w+(正权重)和w-(负权重),其中w=(w+)-(w-)。在vmm系统2100中,位线的一半被指定为w+线,即连接到将存储正权重w+的存储器单元的位线,并且位线的另一半被指定为w-线,即连接到实现负权重w-的存储器单元的位线。w-线以交替方式散布在w+线之间。减法操作由求和电路(诸如求和电路2101和2102)执行,该求和电路从w+线和w-线接收电流。w+线的输出和w-的输出组合在一起,以对于所有(w+、w-)线对的每个(w+、w-)单元对有效地给出w=w+-w-。任选地,诸如图19和图20所示的那些虚拟位线和源极线下拉位线可以在vmm系统2100中使用以避免(两个相邻单元的)fg-fg耦接和/或在读取或验证操作期间减少源极线中的ir电压降。
[0165]
图21b示出另一实施方案。在vmm系统2110中,在第一阵列2111中实现正权重w+,并且在与第一阵列分开的第二阵列2112中实现负权重w-,并且所得权重通过求和电路2113适当地组合在一起。任选地,虚拟位线和源极线下拉位线,诸如图19和20所示的那些,可以在vmm系统2110中使用以避免fg-fg耦接和/或减少在读取或验证操作期间源极线中的ir电压降。
[0166]
vmm系统可以被设计成使得w+和w-对以减少fg到fg耦接的方式放置在阵列内,或者以更均匀方式跨阵列和输出电路分配功率消耗。下面参考表10和表11描述这一点。关于fg到fg耦接现象的更多详细信息,请参阅同一受让人于2020年2月26日提交的并且名称为“深度学习人工神经网络中模拟神经存储器单元的超精密调谐(ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network)”第62/981,757号美国临时专利申请,该美国临时专利申请通过引用并入本文中。
[0167]
表10a示出了两对(w+、w-)位线的布置的示例性物理布局。一对为bl0和bl1,并且第二对为bl2和bl3。在此示例中,4个行耦接到源极线下拉位线blpwdn。blpwdn放置在每对(w+、w-)位线之间,以防止一对(w+、w-)位线与另一对(w+、w-)位线之间耦接(例如,fg到fg耦接)。因此,blpwdn用作成对(w+、w-)位线之间的物理屏障。
[0168]
表10a:用于w+、w-对的示例性布局
[0169] blpwdnbl0bl1blpwdnbl2bl3blpwdn
row0 w01+w01
‑ꢀ
w02+w02
‑ꢀ
row1 w11+w11
‑ꢀ
w12+w12
‑ꢀ
row2 w21+w21
‑ꢀ
w22+w22
‑ꢀ
row3 w31+w31
‑ꢀ
w32+w32
‑ꢀ
[0170]
表10b示出了不同的示例性权重组合。
‘1’
意味着使用单元并且具有真实输出值,并且
‘0’
意味着不使用单元并且没有值或没有显著的输出值。
[0171]
表10b:用于w+、w-对的示例性权重组合
[0172] blpwdnbl0bl1blpwdnbl2bl3blpwdnrow0 10 10 row1 01 01 row2 01 10 row3 11 11 [0173]
表11a示出了(w+、w-)对线bl0/1和bl2/3的物理布置的另一阵列实施方案。阵列包括冗余线bl01和bl23以及源极线下拉位线blpwdn。冗余位线bl01用于重新映射来自对bl0/1的值,并且冗余位线bl23用于重新映射来自对bl2/3的值,这将在后面的表中示出。
[0174]
表11a:用于w+、w-对的示例性布局
[0175] blpwdnbl01bl0bl1bl2bl3bl23blpwdnrow0
ꢀꢀ
w01+w01-w02+w02
‑ꢀꢀ
row1
ꢀꢀ
w11+w11-w12+w12
‑ꢀꢀ
row2
ꢀꢀ
w21+w21-w22+w22
‑ꢀꢀ
row3
ꢀꢀ
w31+w31-w32+w32
‑ꢀꢀ
[0176]
表11b示出了在相邻位线之间不需要重新映射的分布式权重值,相邻位线之间基本上没有相邻的
‘1’
的示例。
[0177]
表11b:w+、w-对的示例性权重组合
[0178] blpwdnbl01bl0bl1bl2bl3bl23blpwdnrow0
ꢀꢀ
1010
ꢀꢀ
row1
ꢀꢀ
0101
ꢀꢀ
row2
ꢀꢀ
1010
ꢀꢀ
row3
ꢀꢀ
0101
ꢀꢀ
[0179]
表11c示出了需要重新映射分布式权重的示例。此处,bl1和bl3中存在相邻的
‘1’
,这会使得相邻的位线耦接。因此,这些值被重新映射,如表11d所示,使得任何相邻位线之间没有相邻的
‘1’
值。此外,通过重新映射,现在沿位线的总电流减少,这使得该位线中的值更精确,这也导致沿位线的分布式功率消耗更多。任选地,附加的位线(bl01、bl23)可以任选地用于充当冗余列。
[0180]
表11c:w+、w-对的示例性权重组合
[0181] blpwdnbl01bl0bl1bl2bl3bl23blpwdnrow0
ꢀꢀ
0110
ꢀꢀ
row1
ꢀꢀ
0110
ꢀꢀ
row2
ꢀꢀ
0110
ꢀꢀ
row3
ꢀꢀ
0110
ꢀꢀ
[0182]
表11d:用于w+、w-对的重新映射的权重组合
[0183] blpwdnbl01bl0bl1bl2bl3bl23blpwdnrow0 001001 row1 100100 row2 001001 row3 100100 [0184]
表11e和11f示出将噪声单元(或缺陷单元)重新映射到冗余列(诸如表11e中的bl01、bl23或表11f中的bl0b和bl1b)的另一实施方案。
[0185]
表11e:用于w+、w-对的重新映射的权重组合
[0186][0187]
表11f:用于w+、w-对的重新映射的权重组合
[0188][0189]
表11g示出了适用于图21b的阵列的物理布置的实施方案。由于每个位线具有正权重或负权重,因此虚拟位线充当源极线下拉位线或真正的虚拟位线(未使用,例如深入或部分被编程或部分被擦除)和物理屏障以避免每个位线的fg-fg耦接。
[0190]
表11g:用于w+、w-对的示例性布局
[0191] blpwdnbl0blpwdnbl1blpwdnrow0 w01+/
‑ꢀ
w02+/
‑ꢀ
row1 w11+/
‑ꢀ
w12+/
‑ꢀ
row2 w21+/
‑ꢀ
w22+/
‑ꢀ
row3 w31+/
‑ꢀ
w32+/
‑ꢀ
[0192]
在图10x至图11x中,源极线下拉位线blpwdn可以实现为真正的虚拟位线bldum或
隔离位线bliso,这意味着这些位线用于将数据位线彼此隔离,从而避免了相邻单元的fg-fg耦接。不使用这些位线,因此它们被调谐(编程或擦除)至不会引起fg-fg耦接或使它们易受在同一行或同一扇区中被调谐(被编程或被擦除)的其他单元(例如,深入或部分被编程的单元或部分被擦除的单元)的干扰的状态,使得fg电压处于低水平状态。
[0193]
在另一实施方案中,耦接到单元列的调谐位线与耦接到单元列的目标位线相邻,并且调谐位线单元用于在使用相邻单元之间的fg-fg耦接的编程操作期间将目标位线单元调谐至期望的目标值。任选地,源极线下拉位线可以在与调谐位线相邻的一侧相对的目标位线的一侧上使用。
[0194]
可以在将这类单元指定为非使用单元的情况下实现用于映射噪声单元或缺陷单元的替代实施方案,这意味着它们将被(深入地)编程以不对神经元输出贡献任何值。
[0195]
可以实现用于识别快速单元(其为可以比典型的单元更快地达到某个值的单元)的替代实施方案,其中快速单元被识别并且经历更精确的调谐算法以在编程操作期间不超过目标。
[0196]
图22示出vmm系统2200。vmm系统2200包括冗余阵列2201,该冗余阵列可以包含在迄今为止讨论的vmm阵列中的任一vmm阵列中。如果附接到位线开关的任何列被认为是有缺陷的,则冗余阵列2201可以用作冗余来替换缺陷列。冗余阵列可以具有其自身的冗余阵列(神经元)输出(例如,位线)和/或冗余写入和验证电路,和/或用于冗余目的的adc电路。例如,当需要冗余时,冗余adc的输出将替换坏位线的adc的输出。冗余阵列2201还可以用于如表10a和10b中所述的权重映射,以在位线之间实现相对均匀的功率分布。
[0197]
图23示出vmm系统2300,该vmm系统包括阵列2301、阵列2302、列多路复用器2303、本地位线lbl 2305a-d、全局位线gbl 2308和2309以及虚拟位线开关2305a-2305d。列多路复用器2303用于将阵列2301的相应顶部局部位线2305或阵列2302的底部局部位线2305选择至全局位线2308中。在一个实施方案中,(金属)全局位线2308具有与局部位线的数量相同的线数量,例如8或16。在另一实施方案中,全局位线2308每n个局部位线仅具有一个(金属)线,例如每8或16个局部位线具有一个全局位线。列多路复用器2303可以将相邻的全局位线(诸如gbl 2309)多路复用成感兴趣的全局位线(诸如gbl 2308),以有效地增加当前全局位线的宽度。这减少了感兴趣的全局位线(gbl 2308)两端的电压降。
[0198]
现在将描述可以与本文所述的任何vmm系统一起使用的各种输出电路。
[0199]
图24示出vmm系统2400。vmm系统2400包括:阵列2410;移位寄存器(sr)2401;数模转换器(dac)2402,其从sr 2401接收输入并且输出等效(模拟或伪模拟)电平或信息(例如,电压/定时);求和器电路2403;模数转换器(adc)2404;以及位线开关(未示出)。存在虚拟位线和虚拟位线开关,但未示出。如图所示,adc电路可以组合在一起以产生具有更大精度(即,更大的位数)的单个adc。
[0200]
求和器电路2403可以包括图25-图27中所示的电路。它可以包括用于归一化、缩放、算术运算(例如,加法、减法)、激活或统计舍入的电路,但不限于此。
[0201]
图25示出可由可变电阻器调节的电流到电压求和器电路2500,该求和器电路包括电流源2501-1、...、2501-n汲取电流ineu(1)、...、ineu(n)(这些分别为从vmm阵列的位线接收到的电流)、运算放大器2502、可变保持电容器2504和可变电阻器2503。运算放大器2502输出电压,即vneuout=r2503*(ineu(1)+...+ineu(n)),该电压与电流ineu(1)、...、
ineu(n)的总和成比例。当开关2506断开时,保持电容器2504用于保持输出电压。这种保持输出电压例如用于通过adc电路转换为数字位。
[0202]
图26示出可由可变电容器(基本上为积分器)调节的电流到电压求和器电路2600,该求和器电路包括电流源2601-1、...、2601-n汲取电流ineu(1)、...、ineu(n)(其分别为从vmm阵列的位线接收到的电流)、运算放大器2602、可变电容器2603和开关2604。运算放大器2602输出电压,即vneuout 2605=(ineu(1)+,...,+ineu(n))*integration time/c2603,该电压与电流ineu(1)、...、ineu(n)的总和成比例。
[0203]
图27a示出可由可变电容器(即,开关电容器sc电路)调节的电压求和器2700,该电压求和器包括开关2701和2702、可变电容器2703和2704、运算放大器2705、可变电容器2706和开关s1 2707。当开关2701闭合时,输入vin0被提供至运算放大器2705。当开关2702闭合时,输入vin1被提供至运算放大器2705。任选地,开关2701和2702不同时闭合。运算放大器2705生成输出vout,该输出vout为输入的放大版本(vin0和/或vin1,这取决于闭合开关2701与2702之间的哪个开关)。即vout=cin/cout*(vin),cin为c2703或c2704,cout为c2706。例如,vout=cin/cout*∑(vinx)、cin=c2703=c2704,其中vinx可为vin0或vin1。在一个实施方案中,vin0为w+电压,并且vin1为w-电压,并且电压求和器2700将它们添加在一起(即w+-w-,通过适当启用开关的极性)以产生输出电压vout。
[0204]
图27b示出电压求和器2750,该电压求和器包括开关2751(s1)、2752(s3)、2753(s2)和2754(s4)、可变输入电容器2758、运算放大器2755、可变反馈电容器2756和开关2757(s5)。在一个实施方案中,vin0为w+电压,vin1为w-电压,电压求和器2750将它们添加在一起(即w+-w-,通过适当启用开关的极性)以产生输出电压vout。
[0205]
对于输入=vin0,当开关2754和2751闭合并且开关2753、2752和2757断开时,将输入vin0提供至电容器2758的顶部端子,其底部端子连接到vref。然后,断开开关2751并且闭合开关2753,以将电荷从电容器2758转移至反馈电容器2756。基本上,接着输出vout=(c2758/c2756)*vin0(对于具有例如vref=0的情况)。
[0206]
对于输入=vin1:当开关2753、2754和2757闭合,并且开关2751、2752和2757断开时,电容器2758的两个端子都放电至vref。然后,断开开关2754并且闭合开关2752,将电容器2758的底部端子充电至vin1,这又将反馈电容器2756充电至vout=-(c2758/c2756)*vin1(对于vref=0的情况)。
[0207]
因此,如果在实现上述用于vin0的序列之后实现上述用于vin1输入的序列,则例如在vref=0的情况下,vout=(c2758/c2756)*(vin 0-vin1)。这用于例如实现w=w+-w-。
[0208]
如图27所示的每个adc可以被配置成与下一个adc组合,用于具有适当adc设计的更高位的具体实施。
[0209]
再次参考图17,vmm阵列1701的输入和输出可以呈数字或模拟形式。例如:
[0210]
·
in[0:q]至dac的顺序输入:
[0211]
·
在一个实施方案中,输入电路1706按顺序接收数字输入,从in0开始,然后是in1,

,然后是inq。所有输入位具有相同的vcgin。将输入位提供到dac,该dac随后将模拟信号作为输入应用于vmm阵列1701。在adc之前或adc之后,所有位线(神经元)输出使用调节二进制索引乘法器进行求和。
[0212]
·
在另一实施方案中,使用调节神经元(位线)二进制索引乘法器方法。如图20所
示,示例性求和器具有两个位线bl0和bln。权重分布在多个位线bl0到bln之间。例如,存在4个位线bl0、bl1、bl2、bl3。位线bl0的输出乘以2^0=1。位线bln的代表第n个二进制位位置的输出乘以2^n,例如,对于n=3,2^3=8。然后将适当乘以二进制位位置2^n后的所有位线的输出进行求和。然后由adc进行数字化。此方法意味着所有单元仅具有二进制范围,多级范围(n位)由外围电路(即求和器电路)完成。因此,对于存储器单元的最高偏置电平,所有位线的电压降大致相同。
[0213]
·
在另一实施方案中,以顺序方式应用数字输入in0、in1、...、然后是inq。每个输入位具有对应的模拟值vcgin。在adc之前或adc之后,所有神经元输出均被求和为所有输入位评估。
[0214]
·
dac的并行输入:
[0215]
·
在另一个实施方案中,以并行方式将输入in0、...inq提供至dac。[0:q]中的每个输入均具有对应的模拟值vcgin。在adc之前或在adc之后,使用调整二进制索引乘法器方法对所有神经元输出进行求和。
[0216]
在涉及阵列的顺序操作的实施方案中,功率分布更均匀。
[0217]
在利用神经元(位线)二进制索引方法的实施方案中,阵列中的功率消耗降低,因为耦接到位线的每个单元仅包含二进制电平,2^n电平由求和器电路实现。
[0218]
图28a、图28b和图28c示出可用于图24中的求和器电路2403和模数转换器2404的输出电路。
[0219]
图28a示出输出电路2800,该输出电路包括接收神经元输出2801并输出输出数字位2803的模数转换器2802。
[0220]
图28b示出输出电路2810,该输出电路包括一起接收神经元输出2801并产生输出2813的神经元输出电路2811和模数转换器2812。
[0221]
图28c示出输出电路2820,该输出电路包括一起接收神经元输出2801并产生输出2823的神经元输出电路2821和转换器2822。
[0222]
神经元输出电路2811或2821可以例如执行求和、缩放、归一化或算术运算,但不限于此。例如,转换器2822可以执行adc、pdc、aac或apc操作,但不限于此。
[0223]
图29示出神经元输出电路2900,该神经元输出电路包括可调节(缩放)电流源2901和可调节(缩放)电流源2902,这两个电流源一起产生输出iout,即神经元输出。该电路可以同时执行正权重w+和负权重w-的求和,即w=w+-w-,和输出神经元电流的上下缩放(通过调节可调节电流源2901和2902)。也就是说,i
w+
为w+的缩放版本,并且i
w-为w-的缩放版本。
[0224]
图30示出可配置的串行模数转换器3000。它包括积分器3070,该积分器将神经元输出电流集成到积分电容器3002(cint)中。
[0225]
在一个实施方案中,将vramp 3050提供至比较器3004的反相输入。数字输出(计数值)3021通过使vramp 3050斜变产生,直到比较器3004切换极性,其中计数器3020从斜变开始对时钟脉冲进行计数。
[0226]
在另一实施方案中,将vref 3055提供至比较器3004的反相输入。vc 3010通过斜变电流3051(iref)斜降,直到vout 3003达到vref 3055,此时ec 3005信号禁用计数器3020的计数。(n位)adc 3000可被配置成具有较低精度(小于n位)或较高精度(大于n位),这取决于目标应用。精度的可配置性通过配置电容器3002的电容、电流3051(iref)、vramp 3050的
斜变速率或时钟3041的时钟频率来实现,但不限于此。
[0227]
在另一实施方案中,vmm阵列的adc电路被配置成具有低于n位的精度,而另一vmm阵列的adc电路被配置成具有高于这些位的高精度。
[0228]
在另一实施方案中,一个神经元电路的串行adc电路3000的一个实例被配置成与下一神经元电路的串行adc电路3000的另一实例组合,以例如通过组合串行adc电路3000的两个实例的积分电容器3002来产生具有高于n位精度的adc电路。
[0229]
图31示出可配置神经元sar(逐次逼近寄存器)模数转换器3100。该电路是基于使用二进制电容器进行电荷再分配的逐次逼近转换器。该电路包括二进制cdac(基于电容器的dac)3101、运算放大器/比较器3102、sar逻辑和寄存器3103。如图所示,gndv 3104是低电压参考电平,例如接地电平。sar逻辑和寄存器3103提供数字输出3106。
[0230]
图32示出可配置的神经元组合sar模数转换器电路3200。该电路将来自两个神经元电路的两个n位adc组合为一个,以实现比n位更高的精度,例如,对于一个神经元电路的4位adc,该电路可以通过组合两个4位adc来实现》4位精度,诸如8位adc精度。组合电路拓扑相当于分割电容器(桥接电容器(cap)或关注cap)sar adc电路,例如通过组合两个相邻的4位4c sar adc电路而产生的8位4c-4c sar adc。使用桥接电路3204(csplit)来实现这一点,该电路的电容为=(cdac电容器单元的总数/cdac电容器单元的总数-1)。
[0231]
图33示出流水线sar adc电路3300,该电路可用于与下一个sar adc组合,以按流水线方式增加位数。sar adc电路3300包括二进制cdac(基于电容器的dac)3301、运算放大器/比较器3302、运算放大器/比较器3303、sar逻辑和寄存器3304。如图所示,gndv 3104是低电压参考电平,例如接地电平。sar逻辑和寄存器3103提供数字输出3106。vin为输入电压,vref为参考电压,并且gndv为接地电压。vresidue由电容器3305产生,并作为输入提供至sar adc的下一级。
[0232]
关于可配置输出神经元(诸如可配置神经元adc)电路的附加具体实施细节,请参见同一受让人于2019年6月21日提交的并且名称为“深度学习人工神经网络中模拟神经存储器的可配置输入块和输出块以及物理布局(configurable input blocks and output blocks and physical layout for analog neural memory in a deep learning artificial neural network)”的第16/449,201号美国专利,该美国专利通过引用的方式并入本文。
[0233]
应当指出,如本文所用,术语“在

上方”和“在

上”两者包容地包括“直接在

上”(之间未设置中间材料、元件或空间)和“间接在

上”(之间设置有中间材料、元件或空间)。类似地,术语“相邻”包括“直接相邻”(之间没有设置中间材料、元件或空间)和“间接相邻”(之间设置有中间材料、元件或空间),“安装到”包括“直接安装到”(之间没有设置中间材料、元件或空间)和“间接安装到”(之间设置有中间材料、元件或空间),并且“电耦接至”包括“直接电耦接至”(之间没有将元件电连接在一起的中间材料或元件)和“间接电耦接至”(之间有将元件电连接在一起的中间材料或元件)。例如,“在衬底上方”形成元件可包括在两者间没有中间材料/元件的情况下在衬底上直接形成元件,以及在两者间有一个或多个中间材料/元件的情况下在衬底上间接形成元件。

技术特征:
1.一种模拟神经存储器系统,包括:非易失性存储器单元阵列,其中所述单元按行和列布置,所述列按物理上相邻的列对布置;其中在每个相邻对内,所述相邻对中的一个列包括存储w+值的单元,并且所述相邻对中的一个列包括存储w-值的单元,其中所述相邻对中的相邻单元存储根据公式w=(w+)

(w-)所得的差分权重w。2.根据权利要求1所述的系统,还包括靠近所述相邻的列对中的至少一对的虚拟列。3.根据权利要求2所述的系统,其中所述虚拟列用作源极线下拉位线。4.根据权利要求1所述的系统,其中所述阵列包括用作冗余阵列的一组非易失性存储器单元列。5.根据权利要求1所述的系统,其中所述阵列中的所述非易失性存储器单元为分裂栅闪存存储器单元。6.根据权利要求1所述的系统,其中所述阵列中的所述非易失性存储器单元为堆叠栅闪存存储器单元。7.根据权利要求1所述的系统,还包括用于对来自一个或多个位线的输出进行求和的求和器。8.根据权利要求7所述的系统,其中所述求和器能够基于可变电阻器进行调节。9.根据权利要求7所述的系统,其中所述求和器能够基于可变电容器进行调节。10.根据权利要求7所述的系统,其中所述求和器包括开关式电容器电路和运算放大器。11.根据权利要求7所述的系统,还包括用于将所述求和器的输出转换为数字信号的模数转换器。12.根据权利要求11所述的系统,其中所述模数转换器包括逐次逼近寄存器。13.根据权利要求12所述的系统,其中所述模数转换器包括流水线模数转换器。14.根据权利要求1所述的系统,还包括:冗余列,其中存储在w+列或w-列中的值被重新映射到所述冗余列。15.根据权利要求14所述的系统,其中所述重新映射去除相邻的列对中的两个相邻单元之间的耦接。16.根据权利要求14所述的系统,其中所述重新映射在位线之间重新分配电力或电压降中的一者或多者。17.根据权利要求14所述的系统,其中所述重新映射将噪声单元重新映射到所述冗余列中。18.一种模拟神经存储器系统,包括:非易失性存储器单元的第一阵列,其中所述单元按行和列布置,并且所述列中的一个或多个列中的所述非易失性存储器单元存储w+值;以及非易失性存储器单元的第二阵列,其中所述单元按行和列布置,并且所述列中的一个或多个列中的所述非易失性存储器单元存储w-值;其中来自所述第一阵列和所述第二阵列的单元对存储根据公式w=(w+)

(w-)所得的差分权重w。
19.根据权利要求18所述的系统,还包括源极线下拉位线。20.根据权利要求18所述的系统,还包括冗余列。21.根据权利要求20所述的系统,其中所述冗余列用于从w+列或w-列重新映射权重。22.根据权利要求21所述的系统,其中所述冗余列用于重新映射权重以避免浮栅到浮栅的耦接。23.根据权利要求21所述的系统,其中所述冗余列用于重新映射权重以在所述列之间更均匀地分配电力。24.根据权利要求21所述的系统,其中所述冗余列用于从噪声单元或缺陷单元重新映射权重。25.根据权利要求18所述的系统,其中所述第一阵列和所述第二阵列中的所述非易失性存储器单元为分裂栅闪存存储器单元。26.根据权利要求18所述的系统,其中所述第一阵列和所述第二阵列中的所述非易失性存储器单元为堆叠栅闪存存储器单元。27.根据权利要求18所述的系统,还包括用于对来自一个或多个位线的输出进行求和的求和器。28.根据权利要求27所述的系统,其中所述求和器能够基于可变电阻器进行调节。29.根据权利要求27所述的系统,其中所述求和器能够基于可变电容器进行调节。30.根据权利要求27所述的系统,其中所述求和器包括开关式电容器电路和运算放大器。31.根据权利要求27所述的系统,还包括用于将所述求和器的输出转换为数字信号的模数转换器。32.根据权利要求31所述的系统,其中所述模数转换器包括逐次逼近寄存器。33.根据权利要求31所述的系统,其中所述模数转换器为流水线模数转换器。

技术总结
公开了模拟神经存储器阵列的许多实施方案。在一个实施方案中,一种模拟神经存储器系统包括非易失性存储器单元阵列,其中这些单元按行和列布置,这些列按物理上相邻的列对布置,其中在每个相邻对内,该相邻对中的一个列包括存储W+值的单元,并且该相邻对中的一个列包括存储W-值的单元,其中该相邻对中的相邻单元存储根据公式W=(W+)


技术研发人员:H
受保护的技术使用者:硅存储技术股份有限公司
技术研发日:2020.09.04
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7855.html

最新回复(0)