用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器的制作方法

文档序号:33081671发布日期:2023-01-31 19:42阅读:128来源:国知局
用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器的制作方法
用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器
1.优先权声明
2.本技术要求于2020年6月3日提交的标题为

用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器(word line and control gate line tandem decoder for analog neural memory in deep learning artificial neural network)

的美国临时专利申请第63/033953号和于2020年11月25日提交的标题为

用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器(word line and control gate line tandem decoder for analog neural memory in deep learning artificial neural network)

的美国专利申请第17/104385号的优先权。
技术领域
3.本文公开了串联行解码器的各种实施方案。串联行解码器的每个实施方案包括字线解码器和交叉耦合到字线解码器的控制栅极解码器。当未启用串联行解码器时,串联行解码器在字线或控制栅极线上表现出不显著的泄漏电流或没有泄漏电流。


背景技术:

4.人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),并且用于估计或近似可取决于大量输入并且通常未知的函数。人工神经网络通常包括互相交换消息的互连

神经元

层。
5.图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得神经网络适应于输入并且能够学习。通常,神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
6.在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。cmos模拟电路已被用于人工神经网络,但由于需要大量神经元和突触,大多数cmos实现的突触都过于庞大。
7.申请人先前在美国专利申请第15/594,439号(公开为美国专利公布第2017/0337466号)中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经存储器操作。神经网络设备包括被配置成接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置成接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极
区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与第二部分绝缘的非浮栅。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置成将第一多个输入乘以所存储的权重值以生成第一多个输出。
8.非易失性存储器单元
9.数字非易失性存储器是众所周知的。例如,美国专利5,029,130(

130专利

),其以引用方式并入本文,公开了分裂栅非易失性存储器单元的阵列,它是一种闪存存储器单元。此类存储器单元210在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝缘(并控制其电导率),并且形成在源极区14的一部分上方。字线端子22(其通常被耦合到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线端子24耦合到漏极区16。
10.通过将高的正电压置于字线端子22上来对存储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由福勒-诺德海姆隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。
11.通过将正的电压置于字线端子22上以及将正的电压置于源极区14上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从源极区14(源极线端子)流向漏极区16。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物被注入到浮栅20上。
12.通过将正的读取电压置于漏极区16和字线端子22(其接通沟道区18的在字线端子下方的部分)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除),则沟道区18的在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或
″1″
状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或
″0″
状态。
13.表1示出可施加到存储器单元110的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
14.表1:图2的闪存存储器单元210的操作
[0015] wlblsl读取10.5v-3v0.1v-2v0v读取20.5v-3v0v-2v2v-0.1v擦除约11v-13v0v0v编程1v-2v1μa-3μa9v-10v
[0016]

读取1

是其中单元电流在位线上输出的读取模式。

读取2

是其中单元电流在源极线端子上输出的读取模式。
[0017]
图3示出了存储器单元310,其与图2的存储器单元210类似,但增加了控制栅(cg)端子28。控制栅端子28在编程中被偏置在高电压处(例如,10v),在擦除中被偏置在低电压或负电压处(例如,0v/-8v),在读取中被偏置在低电压或中等电压处(例如,0v/2.5v)。其他
端子类似于图2那样偏置。
[0018]
图4示出了四栅极存储器单元410,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅22(通常耦合到字线wl)、在浮栅20上方的控制栅28、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的将自身注入到浮栅20的加热的电子执行。擦除通过从浮栅20隧穿到擦除栅30的电子来执行。
[0019]
表2示出可施加到存储器单元310的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
[0020]
表2:图4的闪存存储器单元410的操作
[0021] wl/sgblcgegsl读取10.5v-2v0.1v-2v0v-2.6v0v-2.6v0v读取20.5v-2v0v-2v0v-2.6v0v-2.6v2v-0.1v擦除-0.5v/0v0v0v/-8v8v-12v0v编程1v1μa8v-11v4.5v-9v4.5v-5v
[0022]

读取1

是其中单元电流在位线上输出的读取模式。

读取2

是其中单元电流在源极线端子上输出的读取模式。
[0023]
图5示出了存储器单元510,除了不含擦除栅eg端子,存储器单元510与图4的存储器单元410类似。通过将衬底18偏置到高电压并将控制栅cg端子28偏置到低电压或负电压来执行擦除。另选地,通过将字线端子22偏置到正电压并将控制栅端子28偏置到负电压来执行擦除。编程和读取类似于图4的那样。
[0024]
图6示出三栅极存储器单元610,其为另一种类型的闪存存储器单元。存储器单元610与图4的存储器单元410相同,除了存储器单元610没有单独的控制栅端子。除了没有施加控制栅偏置,擦除操作(通过使用擦除栅端子进行擦除)和读取操作类似于图4的操作。在没有控制栅偏置的情况下,编程操作也被完成,并且结果,在编程操作期间必须在源极线端子上施加更高的电压,以补偿控制栅偏置的缺乏。
[0025]
表3示出可施加到存储器单元610的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
[0026]
表3:图6的闪存存储器单元610的操作
[0027] wl/sgblegsl读取10.5v-2.2v0.1v-2v0v-2.6v0v读取20.5v-2.2v0v-2v0v-2.6v2v-0.1v擦除-0.5v/0v0v11.5v0v编程1v2μa-3μa4.5v7v-9v
[0028]

读取1

是其中单元电流在位线上输出的读取模式。

读取2

是其中单元电流在源极线端子上输出的读取模式。
[0029]
图7示出堆叠栅存储器单元710,其为另一种类型的闪存存储器单元。存储器单元710与图2的存储器单元210类似,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅端子22(其在这里将耦合到字线)在浮栅20上方延伸,由绝缘层(未示出)分开。擦除、编程和读
取操作以与先前针对存储器单元210所述类似的方式操作。
[0030]
表4示出可以施加到存储器单元710和衬底12的端子用于执行读取、擦除和编程操作的典型电压范围:
[0031]
表4:图7的闪存存储器单元710的操作
[0032][0033]

读取1

是其中单元电流在位线上输出的读取模式。

读取2

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

[0056]
其中w=e
(-vth)/nvt
[0057]
其中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分别是存储器单元的宽度和长度。
[0058]
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流ids转换为输入电压vg的i到v对数转换器:
[0059]
vg=n*vt*log[ids/wp*io]
[0060]
此处,wp为参考存储器单元或外围存储器单元的w。
[0061]
对于用作矢量矩阵乘法器vmm阵列的存储器阵列,输出电流为:
[0062]
iout=wa*io*e
(vg)/nvt
,即
[0063]
iout=(wa/wp)*iin=w*iin
[0064]
w=e
(vthp-vtha)/nvt
[0065]
iin=wp*io*e
(vg)/nvt
[0066]
此处,wa=存储器阵列中的每个存储器单元的w。vthp是外围存储器单元的有效阈值电压,并且vtha是主要(数据)存储器单元的有效阈值电压。注意,晶体管的阈值电压是衬底主体偏置电压的函数,并且可以对表示为vsb的衬底主体偏置电压进行调制以补偿在此类温度下的各种条件。阈值电压vth可以表示为:
[0067][0068]
其中vth0是具有零衬底偏置的阈值电压,是表面电位,并且γ是主体效应参数。
[0069]
字线或控制栅可用作输入电压的存储器单元的输入。
[0070]
另选地,本文所述的vmm阵列的非易失性存储器单元可被配置成在线性区域中操作:
[0071]
ids=β*(vgs-vth)*vds;β=u*cox*wt/l,
[0072]
因此,wα(vgs-vth),即线性区域中的重量w与(vgs-vth)成正比
[0073]
字线或控制栅或位线或源极线可以用作在线性区域中操作的存储器单元的输入。
位线或源极线可用作存储器单元的输出。
[0074]
对于i到v线性转换器,在线性区域工作的存储器单元(例如参考存储器单元或外围存储器单元)或晶体管或电阻器可以用来将输入/输出电流线性转换成输入/输出电压。
[0075]
另选地,本文所述的vmm阵列的闪存存储器单元可被配置成在饱和区域中操作:
[0076]
ids=1/2*β*(vgs-vth)2;β=u*cox*wt/l
[0077]
因此,wα(vgs-vth)2,意指即饱和区域中的重量w与(vgs-vth)2成正比
[0078]
字线、控制栅或擦除栅可以用作在饱和区域中操作的存储器单元的输入。位线或源极线可用作输出神经元的输出。
[0079]
另选地,本文所述的vmm阵列的存储器单元可用于所有区域或其组合(亚阈值、线性或饱和区域)。
[0080]
美国专利申请第15/826,345号中描述了图9的vmm阵列32的其他实施方案,该申请以引用方式并入本文。如本文所述,源极线或位线可以用作神经元输出(电流求和输出)。
[0081]
图12示出了神经元vmm阵列1200,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的突触。vmm阵列1200包括非易失性存储器单元的存储器阵列1203、第一非易失性参考存储器单元的参考阵列1201和第二非易失性参考存储器单元的参考阵列1202。沿阵列的列方向布置的参考阵列1201和1202用于将流入端子blr0、blr1、blr2和blr3的电流输入转换为电压输入wl0、wl1、wl2和wl3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1214(仅部分示出)二极管式连接,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵(未示出)提供。
[0082]
存储器阵列1203用于两个目的。首先,它将vmm阵列1200将使用的权重存储在其相应的存储器单元上。第二,存储器阵列1203有效地将输入(即,在端子blr0、blr1、blr2和blr3中提供的电流输入,参考阵列1201和1202将它们转换成输入电压以提供给字线wl0、wl1、wl2和wl3)乘以存储在存储器阵列1203中的权重,然后将所有结果(存储器单元电流)相加以在相应的位线(bl0-bln)上产生输出,该输出将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列1203消除了对单独的乘法逻辑电路和加法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线(wl0、wl1、wl2和wl3)上提供,并且输出在读取(推断)操作期间出现在相应位线(bl0-bln)上。置于位线bl0-bln中的每个位线上的电流执行来自连接到该特定位线的所有非易失性存储器单元的电流的求和函数。
[0083]
表5示出用于vmm阵列1200的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压,其中flt指示浮动,即未施加电压。行指示读取、擦除和编程操作。
[0084]
表5:图12的vmm阵列1200的操作
bln并且将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,输入提供在控制栅线(cg0、cg1、cg2和cg3)上,输出在读取操作期间出现在位线(bl0-bln)上。置于各位线上的电流执行来自连接到该特定位线的存储器单元的所有电流的求和函数。
[0092]
vmm阵列1400为存储器阵列1403中的非易失性存储器单元实现单向调谐。也就是说,每个非易失性存储器单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。这可例如使用下文所述的精确编程技术来执行。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅(诸如eg0或eg1)的两行需要一起擦除(其被称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷。
[0093]
表7示出用于vmm阵列1400的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0094]
表7:图14的vmm阵列1400的操作
[0095][0096][0097]
图15示出神经元vmm阵列1500,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1500包括非易失性存储器单元的存储器阵列1503、第一非易失性参考存储器单元的参考阵列1501和第二非易失性参考存储器单元的参考阵列1502。eg线egr0、eg0、eg1和egr1竖直延伸,而cg线cg0、cg1、cg2和cg3以及sl线wl0、wl1、wl2和wl3水平延伸。vmm阵列1500与vmm阵列1400类似,不同的是vmm阵列1500实现双向调谐,其中每个单独的单元可以根据需要被完全擦除、部分编程和部分擦除,以由于使用单独的eg线而在浮栅上达到期望的电荷量。如图所示,参考阵列1501和1502将端子blr0、blr1、blr2和blr3中的输入电流转换成要在行方向上施加到存储器单元的控制栅电压cg0、cg1、cg2和cg3(通过经由多路复用器1514的二极管连接的参考单元的动作)。电流输出(神经元)在位线bl0-bln中,其中每个位线对来自连接到该特定位线的非易失性存储器单元的所有电流求和。
[0098]
表8示出用于vmm阵列1500的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选
单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0099]
表8:图15的vmm阵列1500的操作
[0100][0101][0102]
图24示出神经元vmm阵列2400,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在vmm阵列2400中,输入input0....,inputn分别在位线bl0,...bln上被接收,并且输出output1、output2、output3和output4分别在源极线sl0、sl1、sl2和sl3上生成。
[0103]
图25示出神经元vmm阵列2500,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0、input1、input2和input3分别在源极线sl0、sl1、sl2和sl3上被接收,并且输出output0,...outputn在位线bl0,...,bln上生成。
[0104]
图26示出神经元vmm阵列2600,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0,...,inputm分别在字线wl0,...,wlm上被接收,并且输出output0,...outputn在位线bl0,...,bln上生成。
[0105]
图27示出神经元vmm阵列2700,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0,...,inputm分别在字线wl0,...,wlm上被接收,并且输出output0,...outputn在位线bl0,...,bln上生成。
[0106]
图28示出神经元vmm阵列2800,该神经元vmm阵列特别适用于图4所示的存储器单元410,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0,...,inputn分别在竖直控制栅线cg0,...,cgn上被接收,并且输出output1和output2在源极线sl0和sl1上生成。
[0107]
图29示出神经元vmm阵列2900,该神经元vmm阵列特别适用于图4所示的存储器单元410,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0至inputn分别在位线控制栅极2901-1、2901-2至2901-(n-1)和2901-n的栅极上被接收,这些栅极分别耦接到位线bl0至bln。示例性输出output1和output2在源极线sl0和sl1上生成。
[0108]
图30示出神经元vmm阵列3000,该神经元vmm阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0,...,inputm在字线wl0,...,wlm上被接
收,并且输出output0,...,outputn分别在位线bl0,...,bln上生成。
[0109]
图31示出神经元vmm阵列3100,该神经元vmm阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0至inputm在控制栅线cg0至cgm上被接收。输出output0,

,outputn分别在竖直源极线sl0,

,sln上生成,其中每个源极线sli耦接到列i中的所有存储器单元的源极线。
[0110]
图32示出神经元vmm阵列3200,该神经元vmm阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0至inputm在控制栅线cg0至cgm上被接收。输出output0,

,outputn分别在竖直位线bl0,

,bln上生成,其中每个位线bli耦接到列i中的所有存储器单元的位线。
[0111]
长短期存储器
[0112]
现有技术包括被称为长短期存储器(lstm)的概念。lstm单元通常用于神经网络中。lstm允许神经网络在预定的任意时间间隔内记住信息并在后续操作中使用该信息。常规的lstm单元包括单元、输入栅、输出栅和忘记栅。三个栅调控进出单元的信息流以及信息在lstm中被记住的时间间隔。vmm尤其可用于lstm单元中。
[0113]
图16示出了示例性lstm 1600。该示例中的lstm 1600包括单元1601、1602、1603和1604。单元1601接收输入矢量x0并生成输出矢量h0和单元状态矢量c0。单元1602接收输入矢量x1、来自单元1601的输出矢量(隐藏状态)h0和来自单元1601的单元状态c0,并生成输出矢量h1和单元状态矢量c1。单元1603接收输入矢量x2、来自单元1602的输出矢量(隐藏状态)h1和来自单元1602的单元状态c1,并生成输出矢量h2和单元状态矢量c2。单元1604接收输入矢量x3、来自单元1603的输出矢量(隐藏状态)h2和来自单元1603的单元状态c2,并生成输出矢量h3。可以使用另外的单元,并且具有四个单元的lstm仅仅是示例。
[0114]
图17示出可用于图16中的单元1601、1602、1603和1604的lstm单元1700的示例性具体实施。lstm单元1700接收输入矢量x(t)、来自前一单元的单元状态矢量c(t-1)和来自前一单元的输出矢量h(t-1),并生成单元状态矢量c(t)和输出矢量h(t)。
[0115]
lstm单元1700包括sigmoid函数设备1701、1702和1703,每个sigmoid函数设备应用0至1之间的数字来控制允许输入矢量中的每个分量通过到输出矢量的数量。lstm单元1700还包括用于将双曲线正切函数应用于输入矢量的tanh设备1704和1705、用于将两个矢量相乘在一起的乘法器设备1706、1707和1708以及用于将两个矢量相加在一起的加法设备1709。输出矢量h(t)可被提供给系统中的下一个lstm单元,或者其可被访问用于其他目的。
[0116]
图18示出lstm单元1800,该lstm单元为lstm单元1700的具体实施的示例。为了方便读者,lstm单元1800中使用与lstm单元1700相同的编号。sigmoid函数设备1701、1702和1703以及tanh设备1704各自包括多个vmm阵列1801和激活电路区块1802。因此,可以看出,vmm阵列在某些神经网络系统中使用的lstm单元中特别有用。乘法器设备1706、1707和1708以及加法设备1709以数字方式或模拟方式实施。激活函数块1802可以数字方式或模拟方式实施。
[0117]
lstm单元1800的另选形式(以及lstm单元1700的具体实施的另一示例)在图19中示出。在图19中,sigmoid函数设备1701、1702和1703以及tanh设备1704以时分复用方式共
享相同的物理硬件(vmm阵列1901和激活函数块1902)。lstm单元1900还包括将两个矢量相乘在一起的乘法器设备1903,将两个矢量相加在一起的加法设备1908,tanh设备1705(其包括激活电路区块1902),当从sigmoid函数块1902输出值i(t)时存储值i(t)的寄存器1907,当值f(t)*c(t-1)通过多路复用器1910从乘法器设备1903输出时存储该值的寄存器1904,当值i(t)*u(t)通过多路复用器1910从乘法器设备1903输出时存储该值的寄存器1905,当值o(t)*c~(t)通过多路复用器1910从乘法器设备1903输出时存储该值的寄存器1906,和多路复用器1909。
[0118]
lstm单元1800包含多组vmm阵列1801和相应的激活函数块1802,而lstm单元1900仅包含一组vmm阵列1901和激活函数块1902,它们用于表示lstm单元1900的实施方案中的多个层。lstm单元1900将需要比lstm 1800更少的空间,因为与lstm单元1800相比,lstm单元1900只需要其1/4的空间用于vmm和激活函数块。
[0119]
还可理解,lstm单元通常将包括多个vmm阵列,每个vmm阵列需要由vmm阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个vmm阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。
[0120]
栅控递归单元
[0121]
模拟vmm具体实施可用于栅控递归单元(gru)系统。gru是递归神经网络中的栅控机构。gru类似于lstm,不同的是gru单元一般包含比lstm单元更少的部件。
[0122]
图20示出了示例性gru 2000。该示例中的gru 2000包括单元2001、2002、2003和2004。单元2001接收输入矢量x0并生成输出矢量h0。单元2002接收输入矢量x1、来自单元2001的输出矢量h0并生成输出矢量h1。单元2003接收输入矢量x2和来自单元2002的输出矢量(隐藏状态)h1并生成输出矢量h2。单元2004接收输入矢量x3和来自单元2003的输出矢量(隐藏状态)h2并生成输出矢量h3。可以使用另外的单元,并且具有四个单元的gru仅仅是示例。
[0123]
图21示出可用于图20的单元2001、2002、2003和2004的gru单元2100的示例性具体实施。gru单元2100接收输入矢量x(t)和来自前一个gru单元的输出矢量h(t-1),并生成输出矢量h(t)。gru单元2100包括sigmoid函数设备2101和2102,这些设备中的每个设备将介于0和1之间的数应用于来自输出矢量h(t-1)和输入矢量x(t)的分量。gru单元2100还包括用于将双曲线正切函数应用于输入矢量的tanh设备2103、用于将两个矢量相乘在一起的多个乘法器设备2104、2105和2106、用于将两个矢量相加在一起的加法设备2107,以及用于从1中减去输入以生成输出的互补设备2108。
[0124]
图22示出gru单元2200,该gru单元为gru单元2100的具体实施的示例。为了方便读者,gru单元2200中使用与gru单元2100相同的编号。如图22所示,sigmoid函数设备2101和2102以及tanh设备2103各自包括多个vmm阵列2201和激活函数块2202。因此,可以看出,vmm阵列在某些神经网络系统中使用的gru单元中特别有用。乘法器设备2104、2105和2106、加法设备2107和互补设备2108以数字方式或模拟方式实施。激活函数块2202可以数字方式或模拟方式实施。
[0125]
gru单元2200的另选形式(以及gru单元2300的具体实施的另一示例)在图23中示出。在图23中,gru单元2300利用vmm阵列2301和激活函数块2302,该激活函数块在被配置成
sigmoid函数时,应用0与1之间的数字来控制允许输入矢量中的每个分量有多少通过到输出矢量。在图23中,sigmoid函数设备2101和2102以及tanh设备2103以时分复用方式共享相同的物理硬件(vmm阵列2301和激活函数块2302)。gru单元2300还包括将两个矢量相乘在一起的乘法器设备2303,将两个矢量相加在一起的加法设备2305,从1减去输入以生成输出的互补设备2309,多路复用器2304,当值h(t-1)*r(t)通过多路复用器2304从乘法器设备2303输出时保持该值的寄存器2306,当值h(t-1)*z(t)通过多路复用器2304从乘法器设备2303输出时保持该值的寄存器2307,和当值h^(t)*(1-z(t))通过多路复用器2304从乘法器设备2303输出时保持该值的寄存器2308。
[0126]
gru单元2200包含多组vmm阵列2201和激活函数块2202,而gru单元2300仅包含一组vmm阵列2301和激活函数块2302,它们用于表示gru单元2300的实施方案中的多个层。gru单元2300将需要比gru单元2200更少的空间,因为与gru单元2200相比,gru单元2300只需要其1/3的空间用于vmm和激活函数块。
[0127]
还可以理解的是,gru系统通常将包括多个vmm阵列,每个vmm阵列需要由vmm阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个vmm阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。
[0128]
vmm阵列的输入可为模拟电平、二进制电平或数字位(在这种情况下,需要dac来将数字位转换成适当的输入模拟电平),并且输出可为模拟电平、二进制电平或数字位(在这种情况下,需要输出adc来将输出模拟电平转换成数字位)。
[0129]
一般来讲,对于vmm阵列中的每个存储器单元,每个权重w可由单个存储器单元或由差分单元或由两个混合存储器单元(2个单元的平均值)来实现。在差分单元的情况下,需要两个存储器单元来实现权重w作为差分权重(w=w+-w-)。在两个混合存储器单元中,需要两个存储器单元来实现权重w作为两个单元的平均值。
[0130]
必须擦除和编程在模拟神经存储器系统中使用的每个非易失性存储器单元,以在浮栅中保持非常特定且精确的电荷量(即电子数量)。例如,每个浮栅必须保持n个不同值中的一个,其中n是可由每个单元指示的不同权重的数量。n的示例包括16、32、64、128和256。
[0131]
矢量-矩阵乘法(vmm)系统中的一个挑战是选择用于擦除、编程和读取操作的特定单元或单元组,或者在一些情况下,选择单元的整个阵列的能力。相关挑战是减少并且优选地最小化每个单元中的泄漏,因为泄漏可能负面影响系统的准确性。
[0132]
需要改进的解码系统,该解码系统减少并且优选地最小化模拟神经存储器系统中的非易失性存储器单元的读取操作期间的泄漏。


技术实现要素:

[0133]
本发明公开了用于利用非易失性存储器单元的模拟神经存储器系统的并且在读取操作期间减少泄露的改进的解码系统。
附图说明
[0134]
图1为示出现有技术的人工神经网络的示意图。
[0135]
图2示出现有技术的分裂栅闪存存储器单元。
[0136]
图3示出另一现有技术的分裂栅闪存存储器单元
[0137]
图4示出另一现有技术的分裂栅闪存存储器单元。
[0138]
图5示出另一现有技术的分裂栅闪存存储器单元
[0139]
图6示出另一现有技术的分裂栅闪存存储器单元。
[0140]
图7示出现有技术的堆叠栅闪存存储器单元。
[0141]
图8为示出使用一个或多个非易失性存储器阵列的示例性人工神经网络的不同层级的示意图。
[0142]
图9为示出矢量-矩阵乘法系统的框图。
[0143]
图10为示出使用一个或多个矢量-矩阵乘法系统的示例性人工神经网络的框图。
[0144]
图11示出矢量-矩阵乘法系统的另一实施方案。
[0145]
图12示出矢量-矩阵乘法系统的另一实施方案。
[0146]
图13示出矢量-矩阵乘法系统的另一实施方案。
[0147]
图14示出矢量-矩阵乘法系统的另一实施方案。
[0148]
图15示出矢量-矩阵乘法系统的另一实施方案。
[0149]
图16示出现有技术的长短期存储器系统。
[0150]
图17示出在长短期存储器系统中使用的示例性单元。
[0151]
图18示出图17的示例性单元的一个实施方案。
[0152]
图19示出图17的示例性单元的另一实施方案。
[0153]
图20示出现有技术的栅控递归单元系统。
[0154]
图21示出在栅控递归单元系统中使用的示例性单元。
[0155]
图22示出图21的示例性单元的一个实施方案。
[0156]
图23示出图21的示例性单元的另一实施方案。
[0157]
图24示出矢量-矩阵乘法系统的另一实施方案。
[0158]
图25示出矢量-矩阵乘法系统的另一实施方案。
[0159]
图26示出矢量-矩阵乘法系统的另一实施方案。
[0160]
图27示出矢量-矩阵乘法系统的另一实施方案。
[0161]
图28示出矢量-矩阵乘法系统的另一实施方案。
[0162]
图29示出矢量-矩阵乘法系统的另一实施方案。
[0163]
图30示出矢量-矩阵乘法系统的另一实施方案。
[0164]
图31示出矢量-矩阵乘法系统的另一实施方案。
[0165]
图32示出矢量-矩阵乘法系统的另一实施方案。
[0166]
图33示出矢量-矩阵乘法系统的示例性框图。
[0167]
图34示出矢量-矩阵乘法系统的示例性解码实施方案。
[0168]
图35示出矢量-矩阵乘法系统的另一示例性解码实施方案。
[0169]
图36示出示例性行解码器。
[0170]
图37示出矢量-矩阵乘法系统的另一示例性解码实施方案。
[0171]
图38示出矢量-矩阵乘法系统的另一示例性解码实施方案。
[0172]
图39示出矢量-矩阵乘法系统的另一示例性解码实施方案。
[0173]
图40示出低电压行解码器的一个实施方案。
[0174]
图41示出组合的低电压行解码器和控制栅极解码器的一个实施方案。
[0175]
图42示出位线解码器的一个实施方案。
[0176]
图43示出矢量-矩阵乘法系统和输入块。
[0177]
图44示出用于从阵列接收输出并以多路复用方式向一个或多个阵列提供输入的多路复用器。
[0178]
图45a和图45b示出矢量-矩阵乘法系统的示例性布局。
[0179]
图46示出矢量-矩阵乘法系统的示例性布局。
[0180]
图47示出用于与矢量乘法器矩阵一起使用的字线解码器电路、源极线解码器电路和高电压电平移位器。
[0181]
图48示出用于与矢量乘法器矩阵一起使用的擦除栅解码器电路、控制栅极解码器电路、源极线解码器电路和高电压电平移位器。
[0182]
图49示出用于与矢量乘法器矩阵一起使用的字线驱动器的另一实施方案。
[0183]
图50示出用于与矢量乘法器矩阵一起使用的字线驱动器的另一实施方案。
[0184]
图51a示出矢量-矩阵乘法系统的另一示例性解码实施方案。
[0185]
图51b示出矢量-矩阵乘法系统的又一示例性解码实施方案。
[0186]
图52示出串联解码器的一个实施方案。
[0187]
图53示出串联解码器的另一实施方案。
[0188]
图54示出串联解码器的另一实施方案。
[0189]
图55示出串联解码器的另一实施方案。
具体实施方式
[0190]
本发明的人工神经网络利用cmos技术和非易失性存储器阵列的组合。
[0191]
用于vmm阵列的解码系统和物理布局实施方案
[0192]
图33-图51公开了用于vmm阵列的各种解码系统和物理布局,所述vmm阵列可与先前相对于图2-图7所述的任何存储器单元类型或与其他非易失性存储器单元一起使用。
[0193]
图33示出vmm系统3300。vmm系统3300包括vmm阵列3301(其可基于先前所讨论的vmm阵列设计中的任一种,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100和3200或其他vmm设计)、低电压行解码器3302、高电压行解码器3303、列解码器3304、列驱动器3305、控制逻辑部件3306、偏置电路3307、神经元输出电路块3308、输入vmm电路块3309、算法控制器3310、高电压发生器块3311、模拟电路块3315和控制逻辑部件3316。
[0194]
输入电路块3309用作从外部输入到存储器阵列3301的输入端子的接口。输入电路块3309可包括但不限于dac(数模转换器)、dpc(数字-脉冲转换器)、apc(模拟-脉冲转换器)、ivc(电流-电压转换器)、aac(模拟-模拟转换器,诸如电压-电压缩放器)或fac(频率-模拟转换器)。神经元输出块3308用作从存储器阵列输出到外部接口的接口(未示出)。神经元输出块3308可包括但不限于adc(模数转换器)、apc(模拟-脉冲转换器)、dpc(数字-脉冲转换器)、ivc(电流-电压转换器)或ifc(电流-频率转换器)。神经元输出块3308可包括但不限于激活功能、归一化电路和/或重新缩放电路。
[0195]
低电压行解码器3302为读取操作和编程操作提供偏置电压,并且为高电压行解码
器3303提供解码信号。高电压行解码器3303为编程操作和擦除操作提供高电压偏置信号。
[0196]
算法控制器3310为处于编程、验证和擦除操作期间的位线提供控制功能。
[0197]
高压发生器块3311包括电荷泵3312、电荷泵调节器3313和高压生成电路3314,该高压生成电路提供各种编程、擦除、编程验证和读取操作所需的多个电压。
[0198]
图34示出vmm系统3400,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统3400包括vmm阵列3401、3402、3402和3404(每一者均可基于前述vmm阵列设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000和31000或其他vmm阵列设计);低电压行解码器3405、3406、3407和3408;共享高电压行解码器3409;字线或字输入线3411、3412、3413和3414;位线3421、3422、3423和3424;控制栅极线3432、源极线3434和擦除栅线3434。共享高电压行解码器3409提供控制栅线3432、源极线3434和擦除栅线3434。在该布置中,字线3411、3412、3413和3414以及位线3421、3422、3423和3424彼此平行。在一个实施方案中,字线和位线在竖直方向上布置。控制栅线3432、源极线3434和擦除栅线3436彼此平行并且在水平方向上布置,因此垂直于字线或字输入线3411、3412、3413和3414以及位线3421、3422、3423和3424。
[0199]
在vmm系统3400中,vmm阵列3401、3402、3403和3404共享控制栅线3432、源极线3434、擦除栅线3436和高电压行解码器3409。然而,阵列中的每一个具有其自身的低电压行解码器,使得低电压行解码器3405与vmm阵列3401一起使用;低电压行解码器3406与vmm阵列3402一起使用;低电压行解码器3407与vmm阵列3403一起使用;并且低电压行解码器3408与vmm阵列3404一起使用。对该布置方式有利的是字线3411、3412、3413和3414在竖直方向上布置,使得字线3411可仅路由到vmm阵列3401,字线3412可仅路由到vmm阵列3402,字线3413可仅路由到vmm阵列3403,并且字线3414可仅路由到vmm阵列3404。这在使用常规布局时将非常低效,在常规布局中,对于共享相同高电压解码器和相同高电压解码线的多个vmm阵列,字线在水平方向上布置。
[0200]
图35示出vmm系统3500,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统3500类似于图33的vmm系统3300,不同的是vmm系统3500包含用于读取操作和编程操作的单独字线和低电压行解码器。
[0201]
vmm系统3500包括vmm阵列3501、3502、3503和3504(每一者均可基于前述vmm设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100和3200或其他vmm阵列设计);低电压读取行解码器3505、3506、3507和3508;共享低电压编程行解码器3530;共享高电压行解码器3509;读取字线或字输入线3511、3512、3513和3514;编程预解码行线3515;位线3521、3522、3523和3524;控制栅极线3532、源极线3533和擦除栅线3535。共享高电压行解码器3509提供控制栅线3532、源极线3533和擦除栅线3535。在该布局中,读取字线或字输入线3511、3512、3513和3514、编程预解码行线3515和位线3521、3522、3523和3524彼此平行并且布置在竖直方向上。控制栅线3532、源极线3533和擦除栅线3535彼此平行并且在水平方向上布置,并且因此垂直于读取字线或字输入线3511、3512、3513和3514、编程预解码行线3515以及位线3521、3522、3523和3524。在该vmm系统3500中,低电压编程行解码器3530跨多个vmm阵列共享。
[0202]
在vmm系统3500中,vmm阵列3501、3502、3503和3504共享控制栅线3532、源极线3533、擦除栅线3535和高电压行解码器3509。然而,vmm阵列中的每一个具有其自身的低电
压读取行解码器,使得低电压读取行解码器3505与vmm阵列3501一起使用;低电压读取行解码器3506与vmm阵列3502一起使用;低电压读取行解码器3507与vmm阵列3503一起使用;并且低电压读取行解码器3508与vmm阵列3504一起使用。这种布局的有利之处在于读取字线或字输入线3511、3512、3513和3514被布置在竖直方向上,使得字线3511可仅路由到vmm阵列3501,字线3512可仅路由到vmm阵列3502,字线3513可仅路由到vmm阵列3503,并且字线3514可仅路由到vmm阵列3504。这在使用常规布局时将非常低效,在常规布局中,对于共享相同高电压解码器和相同高电压解码线的多个阵列,字线在水平方向上布置。值得注意的是,编程预解码行线3515可通过低电压编程行解码器3530连接至vmm阵列3501、3502、3503和3504中的任一者,使得可一次对那些vmm阵列中的一者或多者中的单元进行编程。
[0203]
图36示出关于vmm系统3500的某些方面的附加细节,具体地讲,示出了关于低电压行解码器3505、3506、3507和3508的细节,所述低电压行解码器被例示为低电压行解码器3600。低电压读取行解码器3600包括多个开关,诸如所示的示例性开关,以选择性地将字线分别与vmm阵列3601、3602、3603和3604中的单元行耦接。低电压编程解码器3630包括如图所示配置的示例性nand栅极3631和3632、pmos晶体管3633和3635以及nmos晶体管3636和3636。nand栅极3631和3632接收编程预解码行线xp 3615作为输入。在编程操作期间,低电压读取行解码器3605、3605、3606和3608中的开关sp(其可以是cmos复用器或另一种类型的开关)闭合,因此编程字线wlp0-n耦接到阵列中的字线以施加用于编程的电压。在读取操作期间,读取字线或字输入线3611、3612、3613和3614选择性地耦接以使用低电压读取行解码器3605、3606、3607和3608内的sr开关(闭合)(其可以是cmos复用器或另一种类型的开关)将电压施加到阵列3601、3602、3603和3604中的一者或多者内的行的字线端子。
[0204]
图37示出vmm系统3700,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统3700包括vmm阵列3701、3702、3702和3704(每一者均可基于前述vmm设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000和3100或其他vmm阵列设计);低电压行解码器3705、3706、3707和3708;本地高电压行解码器3709和3710;全局高电压行解码器3730;字线3711、3712、3713和3714;位线3721、3722、3723和3724;高电压和/或低电压(hv/lv)预解码线3732、源极线3733和擦除栅线3734。共享全局高电压行解码器3730提供hv/lv预解码线3732、源极线3733和擦除栅线3734。在该布局中,字线3711、3712、3713和3714以及位线3721、3722、3723和3724彼此平行并且在竖直方向上布置。hv/lv预解码线3732、源极线3733和擦除栅线3734彼此平行并且在水平方向上布置,并且因此垂直于字线3711、3712、3713和3714以及位线3721、3722、3723和3724。hv/lv预解码线3732被输入到本地高电压解码器3709和3710。本地高电压解码器3709输出用于vmm阵列3701和3702的本地控制栅线。本地高电压解码器3710输出用于vmm阵列3703和3704的本地控制栅线。在另一个实施方案中,本地高电压解码器3709和3710可分别为vmm阵列3701/3702和vmm阵列3703/3704提供本地源极线。在另一个实施方案中,本地高电压解码器3709和3710可分别为vmm阵列3701/3702和vmm阵列3703/3704提供本地擦除栅线。
[0205]
这里,本地高电压行解码器3709由vmm阵列3701和3702共享,并且本地高电压行解码器3710由vmm阵列3703和3704共享。全局高电压解码器3730将高电压和低电压预解码信号路由到本地高电压行解码器,诸如本地高电压行解码器3709和3710。因此,高电压解码功
能在全局高电压行解码器3730与本地高电压解码器诸如本地高电压解码器3709和3710之间划分。
[0206]
在vmm系统3700中,vmm阵列3701、3702、3703和3704共享hv/lv预解码线3732、源极线3733、擦除栅线3734以及全局高电压行解码器3730。然而,vmm阵列中的每一个具有其自身的低电压行解码器,使得低电压行解码器3705与vmm阵列3701一起使用;低电压行解码器3706与vmm阵列3702一起使用;低电压行解码器3707与vmm阵列3703一起使用;并且低电压行解码器3708与vmm阵列3704一起使用。对该布局有利的是字线3711、3712、3713和3714在竖直方向上布置,使得字线3711可仅路由到vmm阵列3701,字线3712可仅路由到vmm阵列3702,字线3713可仅路由到vmm阵列3703,并且字线3714可仅路由到vmm阵列3704。这在使用常规布局时将非常低效,在常规布局中,对于共享单个高电压解码器的多个阵列,字线在水平方向上布置。
[0207]
图38示出vmm系统3800,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统3800包括vmm阵列3801、3802、3802和3804(每一者均可基于前述vmm设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100和3200或其他vmm阵列设计);低电压行解码器3805、3806、3807和3808;本地高电压行解码器3809和3810;全局高电压行解码器3830;位线3821、3822、3823和3824;控制栅极线或控制栅极输入线3811和3812;hv/lv预解码线3833、源极线3834和擦除栅线3835。共享全局高电压行解码器3830提供hv/lv预解码线3833、源极线3834和擦除栅线3835。本地高电压解码器3809和3810将控制栅输入cg 3811和3812分别耦接到vmm阵列3801、3802和3803、3804的本地控制栅。低电压行解码器3805、3806、3807和3808分别向阵列3801、3802、3803、3804提供本地(水平)字线。在该布局中,控制栅线3811和3812以及位线3821、3822、3823和3824彼此平行并且在竖直方向上布置。源极线3834和擦除栅线3835彼此平行并且在水平方向上布置,因此垂直于控制栅线3811和3812以及位线3821、3822、3823和3824。
[0208]
如在图37的vmm系统3700中,本地高电压行解码器3809由vmm阵列3801和3802共享,并且本地高电压行解码器3810由vmm阵列3803和3804共享。全局高电压解码器3830将信号路由到本地高电压行解码器,诸如本地高电压行解码器3809和3810。因此,高电压解码功能在全局高电压行解码器3830与本地高电压解码器诸如本地高电压解码器3809和3810(其可提供本地源极线和/或本地擦除栅线)之间划分。
[0209]
在vmm系统3800中,vmm阵列3801、3802、3803和3804共享hv/lv预解码线3833、源极线3834、擦除栅线3835和全局高电压行解码器3830。然而,vmm阵列中的每一个具有其自身的低电压行解码器,使得低电压行解码器3805与vmm阵列3801一起使用;低电压行解码器3806与vmm阵列3802一起使用;低电压行解码器3807与vmm阵列3803一起使用;并且低电压行解码器3808与vmm阵列3804一起使用。该布局的有利之处在于控制栅线3811和3812(其可为读取线或输入线)在竖直方向上布置,使得控制栅线3811可仅路由到vmm阵列3801和3802,并且控制栅线3812可仅路由到vmm阵列3803和3804。使用其中字线在水平方向上布置的常规布局将是不可能的。
[0210]
图39示出vmm系统3900,其特别适用于与图3中示出为存储器单元310、图4中示出为存储器单元410、图5中示出为存储器单元510或图7中示出为存储器单元710的类型的存
储器单元一起使用。vmm系统3900包括vmm阵列3901和3902(每一者均可基于前述vmm设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100和3200或其他vmm阵列设计);低电压行解码器3903(与阵列3901和3902一起使用);本地高电压行解码器3905、全局高电压行解码器3904;控制栅极线3908和3909;以及位线3906和3907。在该布局中,控制栅线3908仅由vmm阵列3901使用,并且控制栅线3909仅由vmm阵列3902使用。低电压行解码线3910用作对全局高电压行解码器3904的解码输入。全局高电压行解码线3911用作到本地高电压解码器3905的解码输入。
[0211]
本地高电压行解码器3905由vmm阵列3901和3902共享。全局高电压解码器3904将信号路由到多个vmm系统的本地高电压行解码器,诸如vmm系统3900的本地高电压行解码器3905。因此,高电压解码功能在全局高电压行解码器3904和本地高电压解码器诸如本地高电压解码器3905之间被划分,如上所述。
[0212]
在vmm系统3900中,vmm阵列3901和3902共享字线(未示出)、源极栅线(如果存在的话)(未示出)、擦除栅线(如果存在的话)(未示出)和全局高电压行解码器3904。这里,vmm阵列3901和3902共享低电压行解码器3903。对于该布局有利的是vmm阵列3901和3902不共享控制栅线,这使得每个阵列能够分别使用控制栅线3908和3909被独立地访问。
[0213]
图51a示出vmm系统5100,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统5100包括vmm阵列5101、5102、5103和5104(每一者均可基于前述vmm阵列设计中的任一者,诸如vmm阵列1000、1100、1200、1300、1400、1510、2400、2510、2600、2700、2800、2900、3000、3100和3200或其他vmm阵列设计);高电压解码器5130;路由块5151和5152;输入字线5111和5112、位线5121、5122、5123和5124;控制栅极线5132、源极线5133和擦除栅线5134。高电压解码器5130为控制栅线5132、源极线5133和擦除栅线5134提供信号。路由块5151、5152分别是垂直接收的输入字线5111和5112被路由到vmm阵列5101-5104的水平运行字线的地方。另选地,路由块5151、5152可将垂直接收的控制栅输入线5132路由到vmm阵列的水平运行控制栅线5132。
[0214]
图51b示出vmm系统5150,其在所有方面都与vmm系统5100相同,不同之处在于位线可以从阵列的顶部以及从阵列的底部路由,并且控制栅极(cg)可以从阵列的右侧以及从阵列的左侧路由。这意味着阵列的两侧都可以用于位线路由或控制栅极(或字线)路由。在端子(bl、cg、wl)被路由出的阵列的每一侧处可能需要本地解码器或多路复用。例如,神经读取模式(神经网络推断模式)需要该路由方法。
[0215]
图40示出低电压行解码器4000,其包括nand栅4001、pmos晶体管4002和nmos晶体管4003。nand栅4001接收行地址信号4004。pmos晶体管4002耦合到竖直字线输入4005。输出位于水平字线4006上,该水平字线是耦接到相应vmm阵列的许多字线中的一者。在该示例中,总共有16条字线,并且因此将存在行解码器4000的16个实例化,每个实例化输出16条字线中的一条字线。因此,基于所接收的行地址信号,一个字线(诸如字线4006)将输出相应的信号(诸如电压),并且其他字线将被设置为接地。
[0216]
图41示出组合的共同选择/取消选择的字线和控制栅极解码器4100,其包括如图40中的低电压行解码器,这里包括nand栅4101、pmos晶体管4102、nmos晶体管4103、行地址信号4104、竖直输入字线4105和耦接到vmm阵列的字线的水平字输出线4106。组合的字线和控制栅极解码器4100还包括逆变器4107、开关4108和4112以及隔离晶体管4109,并且接收
控制栅输入4110 cgin0并输出控制栅线4111 cg0。字线输出4106wl0和控制栅输出cg04111通过控制nand栅4101的解码逻辑部件(未示出)同时被选择或取消选择。
[0217]
图42示出位线解码器4200,其在vmm阵列4201和4202上操作。位线解码器4200包括列复用器4203(用于选择一条或多条位线进行编程和验证,其中验证操作用于确认单元电流在调谐操作(编程或擦除操作)期间达到某个目标),以及感测放大器4204(用于在一条或多条位线上执行读取操作)。如图所示,本地位线mux 4201b和4202b将本地阵列位线多路复用到全局位线4220x以耦接到列复用器4203。感测放大器包括adc或其他设备。因此,位线解码器4200跨多个阵列共享。
[0218]
图43示出vmm系统4300,其包括vmm阵列4301、4302、4303和4304;低电压行解码器4305和4307;本地高电压行解码器4306和4308、全局高电压行解码器4309、数字总线输入qin[7:0]4311和4312(其在此是到vmm阵列的输入)以及位线4321、4322、4323和4324。每个低电压行解码器,诸如低电压行解码器4305,包括用于每个字线的电路块行解码器4335,诸如示例性数据输入块4331(其可由8个锁存器或寄存器组成)和块4332(其可包括数据-电压转换器电路或数据-脉冲转换器电路),其在字线上输出信号4333。因此,该低电压行解码器的输入是具有适当控制逻辑部件的数字总线qin[7:0]。对于每个电路块行解码器4335,数字输入qin[7:0]4311和4312被适当地锁存,诸如通过同步时钟装置和方法(诸如通过串行到并行时钟接口)。
[0219]
图44示出神经网络阵列输入-输出总线多路复用器4400,其从vmm阵列(诸如从adc)接收输出并以多路复用方式将那些输出成组地提供给其他vmm阵列(诸如dac或dpc)的输入块。在所示的示例中,对输入-输出总线复用器4400的输入包括2048位(256组,neu0...neu255,每组8位),并且输入-输出总线复用器4400以64个不同组(每组32位)提供那些位,其中其在不同组之间复用,诸如通过使用时分复用(其中其在任何给定时间提供1组32位)。控制逻辑部件4401生成控制信号4402以控制输入-输出总线复用器4400。
[0220]
图45a和图45b示出vmm阵列的示例性布局,其中字线以水平方式(图45a)与以垂直方式(图45b,诸如在图34或图35中)布局。
[0221]
图46示出vmm阵列的示例性布局,其中字线以垂直方式排列(诸如在图34或图35中)。然而,在该布局中,两个字线(诸如字线4601和4602)可以占据同一列,但是访问阵列中的不同行(由于它们之间的间隙)。
[0222]
图47示出了vmm高电压解码电路,该vmm高电压解码电路包括适于与图2所示的类型的存储器单元一起使用的字线解码器电路4701、源极线解码器电路4704和高电压电平移位器4708。
[0223]
字线解码器电路4701包括如图所示的那样配置的pmos选择晶体管4702(由信号hvo_b控制)和nmos取消选择晶体管4703(由信号hvo_b控制)。
[0224]
源极线解码器电路4704包括如图所示的那样配置的nmos监测晶体管4705(由信号hvo控制)、驱动晶体管4706(由信号hvo控制)和取消选择晶体管4707(由信号hvo_b控制)。
[0225]
高电压电平移位器4708接收启用信号en并且输出高电压信号hv及其互补信号hvo_b。
[0226]
图48示出了vmm高电压解码电路,该vmm高电压解码电路包括适于与图3所示的类型的存储器单元一起使用的擦除栅解码器电路4801、控制栅极解码器电路4804、源极线解
码器电路4807和高电压电平移位器4811。
[0227]
擦除栅解码器电路4801和控制栅极解码器电路4804使用与图47中的字线解码器电路4701相同的设计。
[0228]
源极线解码器电路4807使用与图47中的源极线解码器电路4704相同的设计。
[0229]
高电压电平移位器4811使用与图47中的高电压电平移位器4708相同的设计。
[0230]
图49示出字线驱动器4900。字线驱动器4900选择字线(诸如这里示出的示例性字线wl0、wl1、wl2和wl3)并且向该字线提供偏置电压。每个字线附接到由控制线4902控制的选择隔离晶体管,诸如选择晶体管4901。选择晶体管(诸如选择晶体管4901)将擦除操作期间使用的高电压(例如,8v-12v)与字线解码晶体管隔离,其可以用在低电压(例如,1.8v、3.3v)下操作的io晶体管来实现。这里,在任何操作期间,激活控制线4902,并且接通类似于选择晶体管4901的所有选择晶体管。示例性偏置晶体管4903(字线解码电路的一部分)将字线选择性地耦接到第一偏置电压(诸如3v),并且示例性偏置晶体管4904(字线解码电路的一部分)将字线选择性地耦接到第二偏置电压(低于第一偏置电压,包括接地、接地和第一偏置电压之间的偏置、或负电压偏置以减小来自未使用存储器行的泄漏)。在ann(模拟神经网络)读取操作期间,将选择所有已使用字线并将其绑定到第一偏置电压。所有未使用字线被绑定到第二偏置电压。在诸如编程操作的其他操作期间,将仅选择一个字线并且其他字线将被绑定到第二偏置电压,该第二偏置电压可以是负偏置(例如,-0.3v至-0.5v或更大)以减小阵列泄漏。
[0231]
偏置晶体管4903和4904耦接到移位寄存器4905的级4906的输出。移位寄存器4905使得每一行能够根据(在ann操作开始时加载的)输入数据模式被独立地控制。
[0232]
图50示出字线驱动器5000。字线驱动器5000类似于字线驱动器4900,不同的是每个选择晶体管进一步耦接到电容器(诸如电容器5001)。电容器5001可在操作开始时向字线提供预充电或偏置,由晶体管5002启用以对线5003上的电压进行采样。电容器5001用于对每个字线的输入电压进行采样保持(s/h)。晶体管5004和5005在vmm阵列的ann操作(阵列电流加法器和激活函数)期间断开,这意味着s/h电容器5001上的电压将用作相应字线的(浮动)电压源。另选地,电容器5001可由来自vmm阵列的字线电容(或者如果输入位于控制栅上,则作为控制栅电容)提供。
[0233]
串联行解码器
[0234]
图52-图55示出串联解码器的实施方案。串联解码器减少并且优选地最小化阵列泄漏。在神经读取期间,优选地关闭未使用的行以减少阵列泄漏。在现有技术中,字线解码器通常用于驱动控制栅极解码器,并且控制栅极切换用于关闭未使用的单元。由于电流十进制的数量/vcg i-v(例如,2个电流十进制/1v)曲线特性,这对于高电流电平来说不是最佳的;也就是说,当控制栅极cg电压减小1v时,控制栅极线上的电流将从约100na变为1na。串联解码器克服了现有技术的这种限制。
[0235]
在以下示例中,在验证操作期间,期望字线解码器过驱动控制栅极解码器,这意味着控制栅极状态不会改变,直到字线状态改变为止。在读取神经操作期间,控制栅极解码器过驱动字线解码器,这意味着字线状态不会改变,直到控制栅极线状态改变为止。
[0236]
图52示出串联行解码器5200,其包括耦合到控制栅极解码器5202的字线解码器5201。在此示例中,串联行解码器5200用于阵列中的行0。阵列中的所有其他行将具有分配
给其的类似串联行解码器。
[0237]
字线解码器5201包括pmos晶体管5203和布置为逆变器的nmos晶体管5204、nand栅极5205、nand栅极5206和逆变器5207,如图所示配置。控制栅极解码器5202包括nand栅极5208、逆变器5209、nand栅极5210、逆变器5211、开关5212、开关5213,以及充当通道栅极(passgate)的隔离nmos晶体管5214(其用作隔离晶体管,其中其栅极连接到中间电压诸如vdd,以在非易失性操作中隔离cg上的高电压电平,高电压电平由高电压电路供应)来自来自逆变器5211和开关5212和5213的逻辑信号),如图所示配置。
[0238]
当进入期望字线wl0过驱动(以禁用或启用)控制栅极cg0(诸如在验证操作期间)的模式时,馈送到nand栅极5208的一个输入的控制信号cfg_enwl将被设置为
″1″
,并且馈送到nand栅极5206的一个输入的cfg_encg将被设置为
″0″
。当进入期望控制栅极线cg0过驱动(以禁用或启用)字线wl0(诸如在读取神经操作期间)的模式时,控制信号cfg_encg将被设置为
″1″
,并且cfg_enwl将被设置为
″0″
。当进入完全不使用行0的模式时,则cfg_enwl和cfg_encg均被设置为
″0″
,这意味着串联解码器5200未被启用。在完全不使用行0的模式中,每个字线wl解码器和每个控制栅极cg解码器需要被分别地(单独地)启用/禁用。
[0239]
首先,将讨论串联解码器5200未被启用的模式(即,cfg_enwl和cfg_encg=
″0″
)。当cfg_encg和cfg_enwl是
″0″
时,nand栅极5206和5208的输出各自将为
″1″
,而不管每个nand栅极的其它输入的值如何。nand栅极5205的输出将为
″1″
,因为由于行0不被寻址,所以预解码地址线enx0...enxn将不生效。因此,将关闭pmos晶体管5203,并且将打开nmos晶体管,使得wl0将为
″0″
。nand栅极5208的输出将为
″1″
,因为输入cfg_enwl是
″0″
,并且nand栅极5210的输出将为
″1″
,因为由于行0不被寻址,所以预解码线eng0

engn将不会生效。开关5213因此将会闭合。逆变器5211的输出将是
″0″
,其将打开开关5212。处于闭合状态的开关5213将把输入拉到通道栅极5214低,并且输出cg0将是
″0″
。因此,在该模式中,预解码线未生效,wl0和cg0将被拉到
″0″
,这是期望状态,因为串联解码器5200未被使用。值得注意的是,存储器单元将不表现出任何明显的泄漏电流,因为端子wl0和cg0均分别通过下拉晶体管5204和开关5213(通常也是nmos晶体管)被拉到接地。
[0240]
其次,将讨论串联解码器5200被启用并且字线wl0过驱动(以启用或禁用)控制栅极cg0的模式。cfg_encg将被设置为
″0″
,并且cfg_enwl将被设置为
″1″
。nand栅极5206的输出将为
″1″
,无论在另一输入上接收到的值如何。在这种情况下,假设接收到对应于行0的地址,因此到nand 5205的输入enx0...enxn各自将为
″1″
,这意味着nand 5205的输出将为
″0″
。pmos晶体管5203将被打开,nmos晶体管5204将被关闭,并且wl0将被拉到
″1″
,具体地朝向e字线偏置电压wlbias拉动。到逆变器5209的输入将为
″1″
,逆变器5209的输出将为
″0″
,并且nand栅极5208的输出将为
″1″
。在这种情况下,假设接收到对应于行0的地址,因此到nand 5210的输入eng0...engn各自将为
″1″
,这意味着nand栅极5210的输出将为
″0″
,打开开关5213。逆变器5211的输出将为
″1″
,开关5212将被关闭(启用),如上所述开关5213将被打开(禁用),通道栅极5214已经打开,并且控制栅极cg0将被拉到输入cgin0。cg0将不会从
″0″
切换到控制栅极偏置电压cgin0,直到wl0从
″0″
切换到
″1″
,因为直到这发生之前,nand栅极5208将输出
″0″

[0241]
再次,将讨论串联解码器5200被启用并且控制栅极启用encgin或控制栅极cg0过驱动(以启用或禁用)字线wl0的模式。cfg_encg将被设置为
″1″
,并且cfg_enwl将被设置为
″0″
。nand栅极5208的输出将为
″1″
,无论在另一输入上接收到的值如何。在这种情况下,假设接收到对应于行0的地址,因此到nand 5210的输入eng0...engn各自将为
″1″
,这意味着nand 5210的输出将为
″0″
。逆变器5211的输出将为
″1″
,开关5212将被关闭,开关5213将被打开,并且cg0将被驱动到输入cgin0。到逆变器5207的输入将为
″1″
,逆变器5207的输出将为
″0″
,nand栅极5206的输出将切换到
″1″
。在这种情况下,假设接收到对应于行0的地址,因此到nand 5205的输入enx0...enxn各自将为
″1″
,这意味着nand 5205的输出将为
″0″
,假设nand栅极5206的输出被生效(即=
″1″
)。pmos晶体管5203将打开,并且nmos晶体管5204将关闭,从而导致输出wl0为
″1″
。在该第三模式中(cg解码过驱动wl解码),wl0将不会从
″0″
切换到
″1″
,直到cg0从
″0″
切换到
″1″
,因为直到这发生之前,nand栅极5206将输出
″0″
。如根据模式所示,wl0(wl解码)用于以交叉线方式(wl0互连线和cg0互连线)启用/禁用cg0(cg解码),反之亦然。
[0242]
图53示出串联行解码器5300,其包括耦合到控制栅极解码器5302的字线解码器5301。在此示例中,串联行解码器5300用于阵列中的行0。阵列中的所有其他行将具有分配给其的类似串联行解码器。字线解码器5301与图52中的字线决策器5201相同。控制栅极解码器5302与图52中的控制栅极解码器5202相同,除了从控制栅极解码器5302到逆变器5207的耦合已从开关5212的上游(如图52中)移动到输出节点cg0,从而确保wl0将不从
″0″
切换到
″1″
,直到cg0从
″0″
切换到控制栅极偏置电压

cgin0

,其中

cgin0

处于足够高的电压电平,诸如》=参考电平,例如0.5v。除此之外,串联行解码器5300以与串联行解码器5200相同的方式操作。逆变器5207用作具有跳闸点的比较器,该跳闸点约为电源的一半,这意味着如果cg0<约0.5vdd,则其输出=
″1″
。具有比较器5207b的插图中示出了另一实施方案,如果输入电压电平in(即,cg0)<参考电压电平vref(例如,0.5v),则其输出out=
″1″
。类似地,逆变器5209可以被实现为类似于比较器5207b的比较器。
[0243]
图54示出串联行解码器5400,其包括字线解码器5401和控制栅极解码器5402。在此示例中,串联行解码器5400用于阵列中的行0。阵列中的所有其他行将具有分配给其的类似串联行解码器。行解码器5400使用相应的本地锁存器来启用或禁用每个字线或每个控制栅极线。另选地,可以使用一个锁存器来一前一后一起启用/禁用每个字线和控制栅极线。
[0244]
字线解码器5401包括pmos晶体管5403、nmos晶体管5404、nand栅极5405和锁存器5406,如图所示配置。控制栅极解码器5402包括nand栅极5408、锁存器5409、逆变器5410、开关5411、开关5412和通道栅极5413,如图所示配置。
[0245]
通过将en_latwl/en_latcg和dinlat设置为
″1″
来启用串联行解码器5400,这将启用字线解码器5401和控制栅极解码器5402。在这种情况下,选择行0,因此解码地址信号enx0...enxn和eng0...engn将全部为
″1″
。当这种情况发生时,锁存器5406的输出将被设置为
″1″
,nand栅极5405的输出将为
″0″
,并且pmos晶体管5403将被打开并且nmos晶体管5404将被关闭。wl0将被高驱动至为
″1″
的wlbias。当en_latcg和dinlat被设置为
″1″
时,锁存器5409的输出将被设置为
″1″
,nand栅极5408的输出将为
″0″
,逆变器5410的输出将为
″1″
,开关5411将被关闭,并且开关5412将被打开。cgo将被驱动到输入cgin0电平。
[0246]
当串联行解码器5400未被启用时,en_latwl/en_latcg将被设置为
″1″
,并且dinlat将被设置为
″0″
,从而导致字线解码器5401和控制栅极解码器未被启用。无论接收到的地址信号和en0的状态如何,锁存器5406的输出将为
″0″
,nand栅极5405的输出将为
″1″

pmos晶体管5403将被关闭,并且nmos晶体管5404将被打开,从而将wl0下拉到接地,也就是为
″0″
。锁存器5409的输出也将为
″0″
,nand栅极5408的输出将为
″1″
,逆变器5410的输出将为
″0″
,开关5411将被打开,开关5412将被关闭,并且通过开关5412,cg0将被下拉到接地,也就是为
″0″
。值得注意的是,由于wl0或cg0,存储器单元中将不存在可测量的泄漏电流,因为端子wl0和cg0均通过下拉晶体管5404和开关5412(通常也是nmos晶体管)被拉到接地。
[0247]
图55示出串联行解码器5500,其包括字线解码器5501和控制栅极解码器5502。在此示例中,串联行解码器5500用于阵列中的行0。阵列中的所有其他行将具有分配给其的类似串联行解码器。此解码器针对输出使用电平移位器,例如,以扩大输出的电压范围,诸如大于高电源vdd(wlbiash》vdd)或小于接地电平(wlbiasl<0v,负电平诸如-0.4v至-1v,以更进一步减少存储器单元泄漏)。
[0248]
字线解码器5501包括电平移位器5503、nand栅极5504、nand栅极5505、逆变器5506和逆变器5507,如图所示配置。控制栅极解码器5502包括nand栅极5508、逆变器5509、nand栅极5510、电平移位器5511、开关5512、开关5513、通道栅极5514和逆变器5515。
[0249]
当进入期望字线wl0过驱动控制栅极cg0的模式时,控制信号cfg_enwl将被设置为
″1″
,并且cfg_encg将被设置为
″0″
。当进入期望控制栅极线cg0过驱动字线wl0的模式时,控制信号cfg_encg将被设置为
″1″
,并且cfg_enwl将被设置为
″0″
。如果在行解码串联模式中未使用行0,则cfg_enwl和cfg_encg均被设置为
″0″
,这意味着解码器5500根据其自身的输入被启用分别用于wl和cg。
[0250]
应当指出,如本文所用,术语

在...上方



在...上

两者包容地包括

直接在...上

(之间未设置中间材料、元件或空间)和

间接在...上

(之间设置有中间材料、元件或空间)。类似地,术语

相邻

包括

直接相邻

(之间没有设置中间材料、元件或空间)和

间接相邻

(之间设置有中间材料、元件或空间),

安装到

包括

直接安装到

(之间没有设置中间材料、元件或空间)和

间接安装到

(之间设置有中间材料、元件或空间),并且

电耦合至

包括

直接电耦合至

(之间没有将元件电连接在一起的中间材料或元件)和

间接电耦合至

(之间有将元件电连接在一起的中间材料或元件)。例如,

在衬底上方

形成元件可包括在两者间没有中间材料/元件的情况下在衬底上直接形成元件,以及在两者间有一个或多个中间材料/元件的情况下在衬底上间接形成元件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1