用于在深度学习人工神经网络中对模拟神经存储器进行编程的方法和设备

文档序号:1026969 发布日期:2020-10-27 浏览:7次 >En<

阅读说明:本技术 用于在深度学习人工神经网络中对模拟神经存储器进行编程的方法和设备 (Method and apparatus for programming analog neural memory in deep learning artificial neural network ) 是由 H·V·特兰 V·蒂瓦里 N·多 M·雷顿 于 2019-01-18 设计创作,主要内容包括:本发明公开了与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的编程系统和方法的许多实施方案。因此,可极精确地对所选单元进行编程,以保持N个不同值中的一个值。(The present invention discloses many embodiments of programming systems and methods for use with a vector-matrix multiplication (VMM) array in an artificial neural network. Thus, the selected cell can be programmed very accurately to hold one of the N different values.)

用于在深度学习人工神经网络中对模拟神经存储器进行编程 的方法和设备

优先权声明

本申请要求于2018年3月14日提交的标题为“Method and Apparatus forProgramming Analog Neuromorphic Memory in an Artificial Neural Network”的美国临时专利申请62/642,878和于2018年5月25日提交的标题为“Method And Apparatus ForProgramming Analog Neural Memory In A Deep Learning Artificial NeuralNetwork”的美国专利申请15/990,395的优先权。

技术领域

本发明公开了与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的编程设备和方法的许多实施方案。

背景技术

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

图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得神经网络适应于输入并且能够学习。通常,神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。

在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,***经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。CMOS模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数CMOS实现的突触都过于庞大。

申请人先前在美国专利申请15/594,439中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经形态存储器操作。神经网络装置包括被配置为接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置为接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与所述第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与所述第二部分绝缘的非浮栅。多个存储器单元中的每一个被配置为存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置为将第一多个输入乘以所存储的权重值以生成第一多个输出。

必须擦除和编程在模拟神经形态存储器系统中使用的每个非易失性存储器单元,以在浮栅中保持非常特定且精确的电荷量。例如,每个浮栅必须保持N个不同值中的一个,其中N是可由每个单元指示的不同权重的数量。N的示例包括16、32和64。

VMM系统中的一个挑战是能够以不同N值所需的精度和粒度对所选单元进行编程。例如,如果所选单元可包括64个不同值中的一个值,则在编程操作中需要极端精度。

所需要的是适于与模拟神经形态存储器系统中的VMM一起使用的改进的编程系统和方法。

发明内容

本发明公开了与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的编程系统和方法的许多实施方案。因此,可极精确地对所选单元进行编程,以保持N个不同值中的一个值。

附图说明

图1为示出人工神经网络的示意图。

图2为常规的2栅极非易失性存储器单元的横截面侧视图。

图3为常规的4栅极非易失性存储器单元的横截面侧视图。

图4为常规的3栅极非易失性存储器单元的侧面横截面侧视图。

图5为另一个常规的2栅极非易失性存储器单元的横截面侧视图。

图6为示出利用非易失性存储器阵列的示例性人工神经网络的不同级的示意图。

图7为示出矢量乘法器矩阵的框图。

图8为示出矢量乘法器矩阵的各种级的框图。

图9示出了矢量乘法器矩阵的另一实施方案。

图10示出了矢量乘法器矩阵的另一实施方案。

图11示出了对图10的矢量乘法器矩阵执行运算的工作电压。

图12示出了矢量乘法器矩阵的另一实施方案。

图13示出了对图12的矢量乘法器矩阵执行运算的工作电压。

图14示出了矢量乘法器矩阵的另一实施方案。

图15示出了对图14的矢量乘法器矩阵执行运算的工作电压。

图16示出了矢量乘法器矩阵的另一实施方案。

图17示出了对图216的矢量乘法器矩阵执行运算的工作电压。

图18A和18B示出了用于矢量乘法器矩阵的编程方法。

图19示出了用于图18A和18B的编程的波形。

图20示出了用于图18A和18B的编程的波形。

图21示出了用于图18A和18B的编程的波形。

图22示出了矢量乘法器矩阵系统。

图23示出了列驱动器。

图24示出了多个参考矩阵。

图25示出了单个参考矩阵。

图26示出了参考矩阵。

图27示出了另一个参考矩阵。

图28示出了比较电路。

图29示出了另一个比较电路。

图30示出了另一个比较电路。

图31示出了电流-数字位电路。

图32示出了图31的电路的波形。

图33示出了电流到斜率电路。

图34示出了图33的电路的波形。

图35示出了电流到斜率电路。

图36示出了图35的电路的波形。

具体实施方式

本发明的人工神经网络利用CMOS技术和非易失性存储器阵列的组合。

非易失性存储器单元

数字非易失性存储器是众所周知的。例如,美国专利5,029,130(“所述’130专利”)公开了一种***栅非易失性存储器单元阵列,并且出于所有目的将该专利以引用方式并入本文。此类存储器单元在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝缘(并控制其电导率),并且形成在源极区16的一部分上方。字线端子22(其通常被耦接到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线24耦接到漏极区16。

通过将高的正电压置于字线端子22上来对储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由Fowler-Nordheim隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。

通过将正电压置于字线端子22上以及将正电压置于源极16上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从源极16流向漏极14。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物26被注入到浮栅20上。

通过将正读取电压置于漏极14和字线端子22(其接通在字线端子下方的沟道区)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除以及正极耦接到漏极16),则沟道区在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。

表1示出了可以施加到存储器单元210的端子用于执行读取、擦除和编程操作的典型电压范围:

表1:图2的闪存存储器单元210的操作

Figure BDA0002675372930000051

其他***栅存储器单元配置是已知的。例如,图3描绘了四栅极存储器单元310,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅28(通常耦接到字线)、在浮栅20上方的控制栅22、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的受热电子示出,电子将自身注入浮栅20上。擦除通过从浮栅20隧穿到擦除栅30的电子来显示。

表2示出了可以施加到存储器单元310的端子用于执行读取、擦除和编程操作的典型电压范围:

表2:图3的闪存存储器单元310的操作

WL/SG BL CG EG SL
读取 1.0-2V 0.6-2V 0-2.6V 0-2.6V 0V
擦除 -0.5V/0V 0V 0V/-8V 8-12V 0V
编程 1V 1μA 8-11V 4.5-9V 4.5-5V

图4描绘了***栅三栅极存储器单元410。存储器单元410与图3的存储器单元310相同,除了存储器单元410没有单独的控制栅。擦除操作(通过擦除栅进行擦除)和读取操作与图3的操作类似,不同的是不存在控制栅偏置。编程操作也在无控制栅偏置的情况下完成,因此源极线上的编程电压更高以对缺少控制栅偏置进行补偿。

表3示出了可以施加到存储器单元410的端子用于执行读取、擦除和编程操作的典型电压范围:

表3:图4的闪存存储器单元410的操作

WL/SG BL EG SL
读取 0.7-2.2V 0.6-2V 0-2.6V 0V
擦除 -0.5V/0V 0V 11.5V 0V
编程 1V 2-3μA 4.5V 7-9V

图5描绘了叠栅存储器单元510。存储器单元510类似于图2的存储器单元210,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅22在浮栅20上方延伸,由绝缘层分开。擦除、编程和读取操作以与先前针对存储器单元210所述类似的方式操作。

表4示出了可以施加到存储器单元510的端子用于执行读取、擦除和编程操作的典型电压范围:

表4:图5的闪存存储器单元510的操作

CG BL SL P-sub
读取 2-5V 0.6–2V 0V 0V
擦除 -8至-10V/0V FLT FLT 8-10V/15-20V
编程 8-12V 3-5V 0V 0V

为了在人工神经网络中利用包括上述类型的非易失性存储器单元之一的存储器阵列,进行了两个修改。第一,对线路进行配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,提供存储器单元的连续(模拟)编程。

具体地,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态。在另一个实施方案,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全编程状态变为完全擦除状态,反之亦然。这意味着单元存储装置是模拟的,或者至少可存储许多离散值(诸如16或64个不同的值)中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调谐,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调调整是理想的。

采用非易失性存储器单元阵列的神经网络

图6概念性地示出了利用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。

对于该示例,S0为输入,其为具有5位精度的32x32像素RGB图像(即,三个32x32像素阵列,分别用于每个颜色R、G和B,每个像素为5位精度)。从S0到C1的突触CB1同时具有不同组的权重和共享权重,并且用3x3像素重叠滤波器(内核)扫描输入图像,将滤波器移位1个像素(或根据模型所指示的多于1个像素)。具体地,将图像的3x3部分中的9个像素的值(即,称为滤波器或内核)提供给突触CB1,由此将这9个输入值乘以适当的权重,并且在对该乘法的输出求和之后,由CB1的第一神经元确定并提供单个输出值以用于生成特征映射的其中一层C1的像素。然后将3x3滤波器向右移位一个像素(即,添加右侧的三个像素的列,并释放左侧的三个像素的列),由此将该新定位的滤波器中的9个像素值提供给突触CB1,由此将它们乘以相同的权重并且由相关联的神经元确定第二单个输出值。继续该过程,直到3x3滤波器在整个32x32像素图像上扫描所有三种颜色和所有位(精度值)。然后使用不同组的权重重复该过程以生成C1的不同特征映射,直到计算出层C1的所有特征映射。

在C1处,在本示例中,存在16个特征映射,每个特征映射具有30×30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,突触CB1由16层的二维阵列构成(记住本文所引用的神经元层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。C1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。

在从C1转到S1之前,应用激活函数P1(池化),该激活函数将来自每个特征映射中连续的非重叠2x2区域的值进行池化。池化阶段的目的是对邻近位置求均值(或者也可使用max函数),以例如减少边缘位置的依赖性,并在进入下一阶段之前减小数据大小。在S1处,存在16个15x15特征映射(即,16个每个15x15像素的不同阵列)。CB2中从S1到C2的突触和相关联神经元利用4x4滤波器扫描S1中的映射,其中滤波器移位1个像素。在C2处,存在22个12x12特征映射。在从C2转到S2之前,应用激活函数P2(池化),该激活函数将来自每个特征映射中连续的非重叠2x2区域的值进行池化。在S2处,存在22个6x6特征映射。将激活函数应用于从S2到C3的突触CB3,其中C3中的每个神经元连接至S2中的每个映射。在C3处,存在64个神经元。从C3到输出S3的突触CB4将S3完全连接至C3。S3处的输出包括10个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。

使用非易失性存储器单元的阵列或阵列的一部分来实现每个级别的突触。图7为包括非易失性存储器单元并且被用作输入层和下一层之间的突触的矢量-矩阵乘法(VMM)阵列的框图。具体地,VMM 32包括非易失性存储器单元阵列33、擦除栅和字线栅解码器34、控制栅解码器35、位线解码器36和源极线解码器37,这些解码器对存储器阵列33的输入进行解码。在该示例中,源极线解码器37还对存储器单元阵列的输出进行解码。另选地,位线解码器36可以解码存储器阵列的输出。存储器阵列有两个用途。首先,它存储将由VMM使用的权重。其次,存储器阵列有效地将输入与存储在存储器阵列中的权重相乘并且每个输出线(源极线或位线)将它们相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且由于原位存储器计算也是高功效的。

将存储器阵列的输出提供至差动加法器(诸如加法运算放大器)38,该差动加法器对存储器单元阵列的输出进行求和,以为该卷积创建单个值。差动加法器是为了实现正权重和负权重与正输入的总和。然后将求和后的输出值提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数可包括sigmoid、tanh或ReLU函数。经修正的输出值成为下一层的特征映射的元素(例如,上述描述中的C1),然后被应用于下一突触以产生下一特征映射层或最终层。因此,在该示例中,存储器阵列构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和运算放大器38和激活函数电路39构成多个神经元。

图8是VMM的各个级的框图。如图8所示,通过数模转换器31将输入从数字转换为模拟,并将其提供至输入VMM 32a。输入VMM 32a生成的输出作为下一VMM(隐藏的级别1)32b的输入而提供,该输入继而生成作为下一VMM(隐藏的级别2)32b的输入而提供的输出,以此类推。VMM32的各层用作卷积神经网络(CNN)的突触和神经元的不同层。每个VMM可以是独立的非易失性存储器阵列、或者多个VMM可以利用相同非易失性存储器阵列的不同部分、或者多个VMM可以利用相同非易失性存储器阵列的重叠部分。图8所示的示例包含五个层(32a,32b,32c,32d,32e):一个输入层(32a)、两个隐藏层(32b,32c)和两个完全连接的层(32d,32e)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。

矢量-矩阵乘法(VMM)阵列

图9示出了神经元VMM 900,其特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 900包括非易失性存储器单元的存储器阵列901和参考阵列902(在阵列的顶部)。另选地,可将另一个参考阵列置于底部。在VMM 900中,控制栅线(诸如控制栅线903)在竖直方向上延伸(因此参考阵列902在与输入控制栅线正交的行方向上),并且擦除栅线(诸如擦除栅线904)在水平方向上延伸。这里,输入在控制栅线上提供,并且输出出现在源极线上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。

如本文针对神经网络所述,闪存单元优选地被配置为在亚阈值区域中操作。

本文所述的存储器单元以弱反偏置:

Ids=Io*e(Vg-Vth)/kVt=w*Io*e(Vg)/kVt

w=e(-Vth)/kVt

对于使用存储器单元将输入电流转换为输入电压的I到V对数转换器:

Vg=k*Vt*log[Ids/wp*Io]

对于用作矢量矩阵乘法器VMM的存储器阵列,输出电流为:

Iout=wa*Io*e(Vg)/kVt,即

Iout=(wa/wp)*Iin=W*Iin

W=e(Vthp-Vtha)/kVt

字线或控制栅可用作输入电压的存储器单元的输入。

另选地,闪存存储器单元可被配置为在线性区域中操作:

Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*W/L

Wα(Vgs-Vth)

对于I至V线性转换器,在线性区域中操作的存储器单元可用于将输入/输出电流线性地转换为输入/输出电压。

ESF矢量矩阵乘法器的其他实施方案如美国专利申请15/826,345中所述,该专利申请以引用方式并入本文。源极线或位线可用作神经元输出(电流求和输出)。

图10示出了神经元VMM 1000,其特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的突触。VMM 1000包括非易失性存储器单元的存储器阵列1003、参考阵列1001和参考阵列1002。在阵列的列方向上的参考阵列1001和1002用于将流入端子BLR0-3的电流输入转换为电压输入WL0-3。实际上,参考存储器单元是通过多路复用器连接的二极管,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵提供。存储器阵列1003用于两个目的。首先,它存储将由VMM 1000使用的权重。其次,存储器阵列1003有效地将输入(端子BLR0-3中提供的电流输入;参考阵列1001和1002将这些电流输入转换成输入电压以提供给字线WL0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线上提供,并且输出在读取(推断)操作期间出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。

图11示出了用于VMM 1000的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。

图12示出了神经元VMM 1200,其特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1200包括非易失性存储器单元的存储器阵列1203、参考阵列1201和参考阵列1202。在阵列VMM 1200的行方向上延伸的参考阵列1201和1202与VMM 1000相似,除了在VMM 1200中,字线在垂直方向上延伸。这里,输入在字线上提供,并且输出在读取操作期间出现在源极线上。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。

图13示出了用于VMM 1200的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。

图14示出了神经元VMM 1400,其特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1400包括非易失性存储器单元的存储器阵列1403、参考阵列1401和参考阵列1402。参考阵列1401和1402用于将流入端子BLR0-3的电流输入转换为电压输入CG0-3。实际上,参考存储器单元是通过共源共栅多路复用器1414连接的二极管,其中电流输入流入其中。多路复用器1414包括多路复用器1405和共源共栅晶体管1404,以确保读取中的参考单元的位线上的电压恒定。将参考单元调谐至目标参考电平。存储器阵列1403用于两个目的。首先,它存储将由VMM 1400使用的权重。其次,存储器阵列1403有效地将输入(提供到端子BLR0-3的电流输入;参考阵列1401和1402将这些电流输入转换成输入电压以提供给控制栅CG0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,输入在字线上提供,并且输出在读取操作期间出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。

VMM 1400为存储器阵列1403中的存储器单元实现单向调谐。也就是说,每个单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅的两行需要一起擦除(称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷,

图15示出了用于VMM 1400的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。

图16示出了神经元VMM 1600,其特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1600包括非易失性存储器单元的存储器阵列1603、参考阵列1601和参考阵列1602。EG线垂直延伸,而CG和SL线水平延伸。VMM 1600类似于VMM1400,不同的是VMM 1600实现双向调谐,其中每个单独的单元可根据需要被完全擦除、部分编程和部分擦除,以达到浮栅上的所需电荷量。如图所示,参考阵列1601和1602将端子BLR0-3中的输入电流转换为要沿行方向施加到存储器单元的控制栅电压CG0-3(通过经由复用器的二极管连接的参考单元的动作)。电流输出(神经元)在位线中,该位线对来自连接到位线的存储器单元的所有电流求和。

图17示出了用于VMM 1600的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。

图18A和18B示出了编程方法1800。首先,该方法开始(步骤1801),这通常响应于接收到编程命令而发生。接下来,批量编程操作将所有单元编程到“0”状态(步骤1802)。然后,软擦除擦除所有单元至大约3-5μA的中间弱擦除电平(步骤1803)。这与深擦除将使所有单元成为数字应用的完全擦除状态(例如,约20-30uA的单元电流)形成对比。然后,对所有未选择的单元执行硬编程,以从单元移除电荷(步骤1804),使未使用的单元达到非常深的编程状态,以确保单元真正关闭,这意味着这些存储器单元贡献不显著的电流。然后使用粗略算法在选择单元上执行软编程以从单元中移除一些电荷至大约0.7-1.5μA的n个中间弱编程电平(步骤1805、1806、1807)。进行粗略步骤编程循环,然后进行验证操作,其中以粗略迭代方式将选择单元上的电荷与各种阈值进行比较(步骤1806和1807)。粗略步骤编程循环包括粗略电压增量、和/或粗略编程时间、和/或导致从一个编程步骤到下一个编程步骤的粗略单元电流变化的粗略编程电流。接下来,进行精确编程(步骤1808-1813),其中通过精细步骤编程算法将所有单元编程至100pA–20nA范围内的目标电平,取决于所需电平。进行精细步骤编程循环,然后进行验证操作(步骤1809和1810)。精细步骤编程循环可包括电压增量、和/或编程时间、和/或导致从一个编程步骤到下一个编程步骤的精细单元电流变化的编程电流的粗略分辨率和精细分辨率的组合。如果所选单元达到期望的目标,则编程操作完成(步骤1811)。如果不是,则重复精确编程操作,直到达到所需电平。然而,如果尝试次数超过阈值次数(步骤1812),则编程操作停止并且所选单元被认为是坏单元(步骤1813)。

图19示出了用于使用脉冲调制执行编程操作的示例性波形1900。信号1901是编程循环使能信号,其由多个编程和验证循环组成。信号1902是单独的脉冲编程周期使能信号(信号1902=逻辑“1”以使能编程)。验证周期遵循单独的脉冲编程周期(信号1902=逻辑“0”以使能验证)。信号1903是用于特定位线的单独脉冲编程循环使能信号。信号1903是用于另一特定位线的单独脉冲编程循环使能信号。如图所示,信号1903的宽度窄于信号1904的宽度。这意味着信号1903允许改变存储器单元的浮栅上的较小电荷,从而导致编程中的较小电流精度。在编程循环1901内,可使用不同的编程脉冲宽度1903来实现特定存储器单元的所需编程精度。

图20示出了用于使用高电压电平调制执行编程操作的示例性波形2000。信号2003是用于特定位线的单独脉冲编程循环使能信号。信号2004是用于另一特定位线的单独脉冲编程循环使能信号。信号2003和2004的编程脉冲宽度在该波形中是相同的。信号2005为诸如用于编程的源极线或控制栅的高电压增量。它从一个编程脉冲递增到下一个编程脉冲。

图21示出了用于使用高电压电平调制执行编程操作的示例性波形2100。信号2103是用于特定位线的单独脉冲编程循环使能信号。信号2104是用于另一特定位线的单独脉冲编程循环使能信号。信号2105是编程高电压增量,诸如对于用于编程的源极线或控制栅。从一个编程脉冲到下一个编程脉冲,其可以相同或递增。信号2103的编程脉冲宽度在具有递增高电压的多个脉冲上是相同的。对于相同的高电压增量,信号2104的编程脉冲宽度跨多个脉冲是不同的,例如,对于第一脉冲更窄。

图22示出了包括VMM矩阵2201、列解码器2202和列驱动器2203的VMM系统2200。

图23示出了可在图22中用作列驱动器2203的示例性列驱动器2300。列驱动器2300包括锁存器2301、反相器2302、或非门2303、PMOS晶体管2304以及NMOS晶体管2305和2306,如图所示配置。锁存器2301接收数据信号DIN和使能信号EN。PMOS晶体管2304与NMOS晶体管2305之间的节点BLIO包含位线输入或输出信号,该位线输入或输出信号通过列解码器(诸如图22中的列解码器2202)选择性地连接到位线。感测放大器SA 2310通过节点BLIO耦接到位线以读取所选存储器单元的单元电流。感测放大器SA 2310用于验证所选存储器单元的所需电流电平,诸如在擦除或编程操作之后。PMOS晶体管2304用于抑制编程中的位线,取决于抑制控制电路2301/2302/2303。NMOS晶体管2306向位线提供偏置编程电流。NMOS晶体管2305使能到位线的偏置编程电流,从而使能所选存储器单元的编程。因此,通往NMOS晶体管2305的栅极的编程控制信号(诸如图19中的信号1902/1903、图20中的信号2003/2004、图21中的信号2103/2104)将使能对所选单元的编程。

图24示出了示例性VMM系统2400,其包括参考阵列矩阵2401a、2401b、2401c和2401d以及VMM矩阵2402a、2402b、2402c和2402d。每个VMM矩阵具有其自身的参考阵列矩阵。

图25示出了示例性VMM系统2500,其包括单个参考阵列矩阵2501和VMM矩阵2502a、2502b、2502c和2502d。单个参考阵列矩阵2501跨多个VMM矩阵共享。

图26示出了示例性参考矩阵2600,其可用作图24中的参考矩阵2401a-d、图25中的矩阵2501、或图28和29中的参考矩阵2801或2901。参考矩阵2600包括耦接到公共控制栅信号2603和源极线参考信号2604的参考存储器单元2602a、2602b、2602c和2602x,以及位线参考解码器2601,该位线参考解码器提供用于读取或验证操作的多个位线参考信号。例如,参考存储器单元2602a-x可提供100pA/200pA/300pA/.../30nA的增量电流电平。或者,参考存储器单元2602a-x可以为每个参考存储器单元提供100pA的恒定电流电平。对于这种情况,参考存储器单元2602a-x的组合用于生成不同的参考电流电平,诸如以温度计代码方式生成100pA/200pA/300pA/等。参考电流电平、常数和/或增量的其他组合可用于生成所需的参考电流电平。此外,两个参考单元之间的差动电流可用于生成参考存储器单元电流,诸如100pA参考电流=250pA参考电流–150pA参考电流。这用于例如生成随温度补偿的参考电流。

图27示出了示例性参考矩阵2700,其可用作图24中的参考矩阵2401a-d、图25中的矩阵2501、或图28和29中的参考矩阵2801或2901。参考矩阵2700包括参考存储器单元2702a、2702b、2702c和2702x,这些参考存储器单元耦接到公共控制栅参考信号2703、擦除栅参考信号2704和源极线参考信号2705,以及位线参考解码器2701,该位线参考解码器提供用于读取或验证操作的多个位线参考信号。参考电流电平、常数和/或增量的组合可如图26中那样用于生成所需的参考电流电平。

图28示出了Icell PMOS比较电路2800,其包括PMOS晶体管2801和2804、NMOS共源共栅晶体管2802和2805、从VMM存储器阵列2820选择的存储器单元2803以及如图所示布置的参考矩阵2806(诸如参考矩阵2500或2600)。NMOS晶体管2802和2805用于将参考位线偏置到所需电压电平。输出电流Iout是指示存储在所选存储器单元2803中的值的电流值。输出节点2810的电压电平指示所选存储器单元2803中的电流与来自参考矩阵28006的参考电流之间的比较结果。如果所选存储器单元2803中的电流大于(或小于)来自参考矩阵2806的参考电流,则节点2801上的电压上升到Vdd(或下降到接地)。

图29示出了Icell PMOS比较电路2900,其包括PMOS晶体管2901、开关2902、2903和2904、NMOS共源共栅晶体管2905和2907、来自VMM存储器阵列2920的所选存储器单元2908、参考矩阵2906(诸如参考矩阵2600或2700)以及比较器2909,如图所示布置。输出COMP_OUT是指示存储在所选存储器单元2908中的值与参考电流的关系的电压值。Icell比较电路通过用作具有时间多路复用的单个PMOS电流镜来工作,以消除两个镜PMOS晶体管之间的失配。对于第一时间段,S0和S1闭合并且S2断开。来自参考存储器矩阵2906的电流存储(保持)在PMOS晶体管2901中。对于下一个时间段,S0和S1断开并且S2闭合。将所存储的参考电流与来自存储器单元2908的电流进行比较,并且在输出节点2910上指示比较结果。任选地,比较器可将节点2901上的电压与参考电压VREF进行比较以指示比较的结果。此处,对参考电流进行采样和保持,并且对来自所选存储器单元2902的电流进行采样并保持在PMOS晶体管2901中以与参考电流进行比较。

在另一个实施方案中,如图30所示的阵列泄漏补偿电路3051可与单个PMOS镜电路一起使用,以对VMM阵列3020上的泄漏进行采样(S3闭合)(所有字线均断开,位线上的泄漏电流被采样到保持PMOS中)并在(S3断开)保持晶体管中保持该泄漏。然后在比较周期中从所选存储器单元中的电流中减去该泄漏,以从VMM阵列3020获得实际的存储器单元电流以用于比较。这可用于本文所述的所有比较电路。这可用于参考阵列泄漏补偿。

图31示出了Icell到数字数据电路3100,其包括电流源3101、开关3102、电容器3103、比较器3104和计数器3105。在比较周期开始时,信号3110被拉至接地。信号3110然后根据单元电流3101(从具有如上所述的阵列泄漏补偿的VMM存储器阵列中提取)而开始上升。斜坡率与单元电流3101和电容器3103成比例。比较器3104的输出3112然后使计数器3105能够以数字方式开始计数。一旦节点3110上的电压达到电压电平VREF 3111,比较器3104就切换极性并停止计数器3105。数字输出Q<N:0>3113值指示单元电流3101的值。

图32示出了用于Icell到数字数据电路3100的操作的波形3200。信号3201是斜坡变化电压(对应于图31中的信号3110)。针对不同的单元电流电平示出了信号3201的不同斜坡率。信号3205和3207是两个不同单元电流的比较器的输出(对应于图31中的信号3121)。信号3206和3208是以上两个不同的单元电流的数字输出Q<N:0>。

图33示出了Icell到斜率电路3300,其包括存储器单元电流源3301、开关3302、电容器3303和比较器3304。如上所述,从具有阵列泄漏补偿的VMM存储器阵列中提取存储器单元电流。在比较周期开始时,信号3310被拉至接地。然后,信号3310根据单元电流3301(从VMM存储器阵列中提取)开始上升。斜坡率与单元电流3301和电容器3303成比例。在固定比较周期之后,比较器3304将节点3310上的电压与参考电压VREFx 3311进行比较。对于16个参考电平,VREFx 3311为例如0.1V、0.2V、0.3V、...、1.5V、1.6V。因此,每个电平对应于16个不同电流电平的电流电平。比较器3304的输出指示单元电流3301的值。为了将节点3310(其可通过在固定比较周期之后关闭S1而保持在电容器3303上)上的电压与16个参考电平进行比较,要么使用具有16个参考电平的16个比较器,要么使用具有针对16个参考电平复用16次的参考电平的一个比较器。

图34示出了用于Icell到斜率电路3300的操作的波形3400。信号3401示出了在使能信号3402的上升沿处具有不同电压电平(Vcellx)的不同斜坡率。将电压Vcellx与参考电压进行比较以指示单元电流的值(图33中的参考电压VREFx 3311)。

图35示出了Icell到斜率转换电路3500,其包括存储器单元电流源3504、开关3502、电容器3501、NMOS共源共栅晶体管3503和比较器3505。如上所述,从具有阵列泄漏补偿的VMM存储器阵列中提取存储器单元电流3501。NMOS 3503用于偏置所选存储器单元(示出为Icell3504)的位线上的电压。该操作类似于图31的操作,不同的是斜坡方向斜降而不是斜升。

图36示出了用于Icell到斜率电路3500的操作的波形3600。

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

53页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:原子序重排方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!