用于深度学习人工神经网络中的模拟神经存储器的解码器

文档序号:976583 发布日期:2020-11-03 浏览:4次 >En<

阅读说明:本技术 用于深度学习人工神经网络中的模拟神经存储器的解码器 (Decoder for analog neural memory in deep learning artificial neural network ) 是由 H·V·特兰 S·洪 A·李 T·乌 H·帕姆 K·恩古耶 H·特兰 于 2019-01-24 设计创作,主要内容包括:本发明公开了用于与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的解码器的多个实施方案。该解码器包括位线解码器、字线解码器、控制栅解码器、源极线解码器和擦除栅解码器。在某些实施方案中,使用解码器的高电压型式和低电压型式。(Various embodiments of a decoder for use with a vector-matrix multiplication (VMM) array in an artificial neural network are disclosed. The decoder includes a bit line decoder, a word line decoder, a control gate decoder, a source line decoder, and an erase gate decoder. In some implementations, a high voltage version and a low voltage version of the decoder are used.)

用于深度学习人工神经网络中的模拟神经存储器的解码器

优先权声明

本申请要求2018年3月14日提交并且名称为“用于人工神经网络中的模拟神经形态存储器的解码器(Decoders for Analog Neuromorphic Memory in Artificial NeuralNetwork)”的美国临时专利申请号62/642,884以及2018年5月29日提交并且名称为“用于深度学习人工神经网络中的模拟神经存储器的解码器(Decoders For Analog NeuralMemory In Deep Learning Artificial Neural Network)”的美国专利申请号15/991,890的优先权。

技术领域

本发明公开了用于与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的解码器的多个实施方案。

背景技术

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

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

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

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

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

常规闪存存储器阵列中使用的现有技术解码电路(诸如位线解码器、字线解码器、控制栅解码器、源极线解码器和擦除栅解码器)不适合与模拟神经形态存储器系统中的VMM一起使用。其一个原因是,在VMM系统中,编程和验证操作的验证部分(其为读取操作)在单个所选存储器单元上操作,而读取操作在阵列中的所有存储器单元上操作。

所需要的是适合与模拟神经形态存储器系统中的VMM一起使用的改进的解码电路。

发明内容

本发明公开了用于与人工神经网络中的矢量-矩阵乘法(VMM)阵列一起使用的解码器的多个实施方案。

附图说明

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

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

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

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

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

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

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

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

图9描绘了矢量乘法器矩阵的实施方案。

图10描绘了矢量乘法器矩阵的另一个实施方案。

图11描绘了矢量乘法器矩阵的另一个实施方案。

图12描绘了矢量乘法器矩阵的另一个实施方案。

图13描绘了矢量乘法器矩阵的另一个实施方案。

图14描绘了用于矢量乘法器矩阵的位线解码器的实施方案。

图15描绘了用于矢量乘法器矩阵的位线解码器的另一个实施方案。

图16描绘了用于矢量乘法器矩阵的位线解码器的另一个实施方案。

图17描绘了用于操作矢量乘法器矩阵的系统。

图18描绘了用于操作矢量乘法器矩阵的另一个系统。

图19描绘了用于操作矢量乘法器矩阵的另一个系统。

图20描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的实施方案。

图21描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图22描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图23描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图24描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图25描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图26描绘了用于与矢量乘法器矩阵一起使用的字线驱动器的另一个实施方案。

图27描绘了用于与矢量乘法器矩阵一起使用的源极线解码器电路。

图28描绘了用于与矢量乘法器矩阵一起使用的字线解码器电路、源极线解码器电路和高电压电平移位器。

图29描绘了用于与矢量乘法器矩阵一起使用的擦除栅解码器电路、控制栅解码器电路、源极线解码器电路和高电压电平移位器。

图30描绘了用于与矢量乘法器矩阵一起使用的字线解码器电路。

图31描绘了用于与矢量乘法器矩阵一起使用的控制栅解码器电路。

图32描绘了用于与矢量乘法器矩阵一起使用的另一个控制栅解码器电路。

图33描绘了用于与矢量乘法器矩阵一起使用的另一个控制栅解码器电路。

图34描绘了用于控制矢量乘法器矩阵中的字线的电流到电压电路。

图35描绘了用于控制矢量乘法器矩阵中的字线的另一个电流到电压电路。

图36描绘了用于控制矢量乘法器矩阵中的控制栅线的电流到电压电路。

图37描绘了用于控制矢量乘法器矩阵中的控制栅线的另一个电流到电压电路。

图38描绘了用于控制矢量乘法器矩阵中的控制栅线的另一个电流到电压电路。

图39描绘了用于控制矢量乘法器矩阵中的字线的另一个电流到电压电路。

图40描绘了用于控制矢量乘法器矩阵中的字线的另一个电流到电压电路。

图41描绘了用于控制矢量乘法器矩阵中的字线的另一个电流到电压电路。

图42描绘了图9的矢量乘法器矩阵的操作电压。

图43描绘了图10的矢量乘法器矩阵的操作电压。

图44描绘了图11的矢量乘法器矩阵的操作电压。

图45描绘了图12的矢量乘法器矩阵的操作电压。

具体实施方式

本发明的人工神经网络利用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的操作

WL BL SL
读取 2V-3V 0.6V-2V 0V
擦除 约11V-13V 0V 0V
编程 1V-2V 1μA-3μA 9V-10V

其他***栅存储器单元配置是已知的。例如,图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的操作

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

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

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

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

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

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

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

CG BL SL P-sub
读取 2V-5V 0.6–2V 0V 0V
擦除 -8V至-10V/0V FLT FLT 8V-10V/15-20V
编程 8V-12V 3V-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个特征映射,每个特征映射具有30x30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,突触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的各个级的框图。如图14所示,通过数模转换器31将输入从数字转换为模拟,并将其提供至输入VMM 32a。输入VMM 32a生成的输出作为下一VMM(隐藏的级别1)32b的输入而提供,该输入继而生成作为下一VMM(隐藏的级别2)32b的输入而提供的输出,以此类推。VMM 32的各层用作卷积神经网络(CNN)的突触和神经元的不同层。每个VMM可以是独立的非易失性存储器阵列、或者多个VMM可以利用相同非易失性存储器阵列的不同部分、或者多个VMM可以利用相同非易失性存储器阵列的重叠部分。图8所示的示例包含五个层(32a,32b,32c,32d,32e):一个输入层(32a)、两个隐藏层(32b,32c)和两个完全连接层(32d,32e)。本领域的普通技术人员将会知道,这仅是示例性的,并且系统可以替代地包括多于两个的隐藏层和多于两个的完全连接层。

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

图9描绘了神经元VMM 900,其特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 900包括非易失性存储器单元的存储器阵列903、参考阵列901和参考阵列902。参考阵列901和902用于将流入端子BLR0-3的电流输入转换为电压输入WL0-3。如图所示,参考阵列901和902在列方向上。一般来讲,参考阵列方向与输入线正交。实际上,参考存储器单元是通过多路复用器(多路复用器914,其包括多路复用器和用于偏置参考位线的级联晶体管VBLR)与流入其中的电流输入连接的二极管。将参考单元调谐至目标参考电平。

存储器阵列903用于两个目的。首先,它存储将由VMM 900使用的权重。其次,存储器阵列903有效地将输入(端子BLR0-3中提供的电流输入;参考阵列901和902将这些电流输入转换成输入电压以提供给字线WL0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线上提供,并且输出在读取(推断)操作期间出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。

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

图10描绘了神经元VMM 1000,该VMM 1000特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1000包括非易失性存储器单元的存储器阵列1003、参考阵列1001和参考阵列1002。VMM 1000类似于VMM 900,不同的是在VMM 1000中,字线在竖直方向上延伸。存在两个参考阵列1001(在顶部,其提供将输入电流转换成用于偶数行的电压的参考)和1002(在底部,其提供将输入电流转换成用于奇数行的电压的参考)。这里,输入在字线上提供,并且输出在读取操作期间出现在源极线上。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。

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

图11描绘了神经元VMM 1100,该VMM 1100特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1100包括非易失性存储器单元的存储器阵列1101、参考阵列1102(其提供将输入电流转换成用于偶数行的输入电压的参考)和参考阵列1103(其提供将输入电流转换成用于奇数行的输入电压的参考)。VMM 1100类似于VMM 900,不同的是VMM 1100还包括耦接到一行存储器单元的控制栅的控制线1106和耦接到邻接行存储器单元的擦除栅的控制线1107。这里,字线、控制栅线和擦除栅线具有相同的方向。VMM还包括参考位线选择晶体管1104(mux 1114的一部分)和开关1105(mux1114的一部分),该参考位线选择晶体管将参考位线选择性地耦接到所选参考存储器单元的位线触点,并且该开关将参考位线选择性地耦接到用于特定所选参考存储器单元的控制线1106。这里,输入在(存储器阵列1101的)字线上提供,并且输出在读取操作期间出现在位线(诸如位线1109)上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。

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

图12描绘了神经元VMM 1200,该VMM 1200特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1200类似于VMM 1100,不同的是在VMM 1200中,擦除栅线(诸如擦除栅线1201)在竖直方向上延伸。这里,输入在字线上提供,并且输出出现在源极线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。

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

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

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

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

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中所述,该专利申请以引用方式并入本文。源极线或位线可用作神经元输出(电流求和输出)。

图14描绘了位线解码器电路1400的实施方案。位线解码器电路1400包括列解码器1402和模拟神经形态神经元(“ANN”)列解码器1403,其中的每一者耦接到VMM阵列1401。VMM阵列可基于先前所讨论的VMM设计(诸如VMM 900、1000、1100、1200和1300)中的任一者或其他VMM设计。

有关模拟神经形态系统的一个挑战是,系统必须能够对单独所选单元进行编程和验证(其涉及读取操作),并且其还必须能够执行ANN读取,其中阵列中的所有单元都被选择和读取。换句话讲,位线解码器有时必须仅选择一个位线,并且在其他情况下必须选择所有位线。

位线解码器电路1400实现此目的。列解码器1402是常规的列解码器(编程和擦除或PE解码路径)并且可用于选择单个位线,诸如用于编程和编程验证(感测操作)。列解码器1402的输出耦接到编程/擦除(PE)列驱动器电路以用于控制编程、PE验证和擦除(未在图14中示出)。ANN列解码器1403是被特别设计成同时在每个位线上启用读取操作的列解码器。ANN列解码器1403包括耦接到位线(这里为BL0)的示例性选择晶体管1405和输出电路(例如,电流加法器和函数电路,诸如tanh、sigmoid、ReLU)1406。一组相同的装置附接到其他位线中的每个位线。所有的选择晶体管(诸如选择晶体管1405)耦接到选择线1404。在ANN读取操作期间,启用选择线1404,这继而接通选择晶体管中的每个选择晶体管(诸如选择晶体管1405),从而然后致使来自每个位线的电流由输出电路(诸如电路1406)接收并输出。

图15描绘了位线解码器电路1500的实施方案。位线解码器电路1500耦接到VMM阵列1501。VMM阵列可基于先前所讨论的VMM设计(诸如VMM 900、1000、1100、1200和1300)中的任一者或其他VMM设计。

选择晶体管1502和1503由一对互补控制信号(V0和VB_0)控制并且耦接到位线(BL0)。选择晶体管1504和1505由另一对互补控制信号(V1和VB_1)控制并且耦接到另一个位线(BL1)。选择晶体管1502和1504耦接到诸如用于启用编程的相同输出,并且选择晶体管1503和1505耦接到诸如用于禁止编程的相同输出。晶体管1502/1503/1504/1505的输出线(编程和擦除PE解码路径)诸如耦接到PE列驱动器电路以用于控制编程、PE验证和擦除(未示出)。

选择晶体管1506耦接到位线(BL0)并且耦接到输出和激活函数电路1507(例如,电流加法器和激活函数,诸如tanh、sigmoid、ReLU)。选择晶体管1506由控制线1508控制。

当仅激活BL0时,使控制线1508解除断言并且断言信号V0,从而仅读取BL0。在ANN读取操作期间,断言控制线1508,接通选择晶体管1506和类似晶体管,并且读取所有位线,诸如用于所有神经元处理。

图16描绘了位线解码器电路1600的实施方案。位线解码器电路1600耦接到VMM阵列1601。VMM阵列可基于先前所讨论的VMM设计(诸如VMM 900、1000、1100、1200和1300)中的任一者或其他VMM设计。

选择晶体管1601耦接到位线(BL0)并耦接到输出和激活函数电路1603。选择晶体管1602耦接到位线(BL0)并耦接到公共输出(PE解码路径)。

当仅激活BL0时,激活选择晶体管1602,并且将BL0附接到公共输出。在ANN读取操作期间,接通选择晶体管1601和类似晶体管,并且读取所有位线。

对于图14、图15和图16中的解码,针对未选择的晶体管,可以施加负偏置以减小晶体管泄漏从而不影响存储器单元性能。或者可在阵列处于ANN操作时向PE解码路径施加负偏置。负偏置可以是从-0.1V至-0.5V或更大。

图17描绘了VMM系统1700。VMM系统1700包括VMM阵列1701和参考阵列1720(其可基于先前讨论的VMM设计(诸如VMM 900、1000、1100、1200和1300)中的任一者,或其他VMM设计)、低电压行解码器1702、高电压行解码器1703、参考单元低电压列解码器1704(针对列方向上的参考阵列示出,这意味着提供行方向上的输入到输出转换)、位线PE驱动器1712、位线多路复用器1706、激活函数电路和加法器1707、控制逻辑器1705和模拟偏置电路1708。

如图所示,参考单元低电压列解码器1704用于列方向上的参考阵列1720,这意味着提供行方向上的输入到输出转换。如果参考阵列在行方向上,则需要在阵列的顶部和/或底部上完成参考解码器以提供列方向上的输入到输出转换。

低电压行解码器1702为读取操作和编程操作提供偏置电压,并且为高电压行解码器1703提供解码信号。高电压行解码器1703为编程操作和擦除操作提供高电压偏置信号。参考单元低电压列解码器1704为参考单元提供解码功能。位线PE驱动器1712为处于编程、验证和擦除的位线提供控制功能。偏置电路1705是提供各种编程、擦除、编程验证和读取操作所需的多个电压的共享偏置块。

图18描绘了VMM系统1800。VMM系统1800类似于VMM系统1700,不同的是VMM系统1800还包括红色阵列1801、位线PE驱动器BLDRV1802、高电压列解码器1803、NVR扇区1804和参考阵列1820。高电压列解码器1803为竖直解码线提供高电压偏置。红色阵列1802提供用于替换有缺陷的阵列部分的阵列冗余。NVR(非易失性寄存器也称为信息扇区)扇区1804是作为用于存储用户信息、装置ID、密码、安全密钥、修正位、配置位、制造信息等的阵列扇区的扇区。

图19描绘了VMM系统1900。VMM系统1900类似于VMM系统1800,不同的是VMM系统1900还包括参考系统1999。参考系统1999包括参考阵列1901、参考阵列低电压行解码器1902、参考阵列高电压行解码器1903和参考阵列低电压列解码器1904。参考系统可以跨多个VMM系统共享。VMM系统还包括NVR扇区1905。

参考阵列低电压行解码器1902为涉及参考阵列1901的读取操作和编程操作提供偏置电压,并且还为参考阵列高电压行解码器1903提供解码信号。参考阵列高电压行解码器1903为涉及参考阵列1901的编程和操作提供高电压偏置。参考阵列低电压列解码器1904为参考阵列1901提供解码功能。参考阵列1901是诸如用于为编程验证或单元边际微调(搜索边际单元)提供参考目标。

图20描绘了字线驱动器2000。字线驱动器2000选择字线(诸如这里示出的示例性字线WL0、WL1、WL2和WL3)并且向该字线提供偏置电压。每个字线附接到由控制线2001控制的选择晶体管,诸如选择iso(隔离)晶体管2002。Iso晶体管2002用于将诸如来自擦除的高电压(例如,8V-12V)与字线解码晶体管隔离,该字线解码晶体管可用IO晶体管(例如,1.8V、3.3V)来实现。这里,在任何操作期间,激活控制线2001,并且接通类似于选择iso晶体管2002的所有选择晶体管。示例性偏置晶体管2003(字线解码电路的一部分)将字线选择性地耦接到第一偏置电压(诸如3V),并且示例性偏置晶体管2004(字线解码电路的一部分)将字线选择性地耦接到第二偏置电压(低于第一偏置电压,包括接地、其间的偏置、用于减小来自未使用存储器行的泄漏的负电压偏置)。在ANN读取操作期间,将选择所有已使用字线并将其绑定到第一偏置电压。所有未使用字线被绑定到第二偏置电压。在诸如用于编程操作的其他操作期间,将仅选择一个字线并且其他字线将被绑定到第二偏置电压,该第二偏置电压可以是负偏置(例如,-0.3V至-0.5V或更大)以减小阵列泄漏。

图21描绘了字线驱动器2100。字线驱动器2100类似于字线驱动器2000,不同的是顶部晶体管(诸如偏置晶体管2103)可以单独地耦接到偏置电压,并且所有此类晶体管不像字线驱动器2000中那样绑定在一起。这允许所有字线同时具有并联的不同独立电压。

图22描绘了字线驱动器2200。字线驱动器2200类似于字线驱动器2100,不同的是偏置晶体管2103和2104耦接到解码器电路2201和反相器2202。因此,图22描绘了字线驱动器2200内的解码子电路2203。

图23描绘了字线驱动器2300。字线驱动器2300类似于字线驱动器2100,不同的是偏置晶体管2103和2104耦接到移位寄存器2301的级2302的输出。移位寄存器1301允许通过数据中的串行移位(串行地为寄存器提供时钟)来独立地控制每行,诸如取决于数据模式中的移位来使得一个或多个行能够被同时启用。

图24描绘了字线驱动器2400。字线驱动器2400类似于字线驱动器2000,不同的是每个选择晶体管进一步耦接到电容器(诸如电容器2403)。电容器2403可在操作开始时向字线提供预充电或偏置,由晶体管2401启用以对线2440上的电压进行采样。电容器2403用于对每个字线的输入电压进行采样保持(S/H)。晶体管2401在VMM阵列的ANN操作(阵列电流加法器和激活函数)期间断开,这意味着S/H电容器上的电压将用作字线的(浮动)电压源。另选地,电容器2403可由来自存储器阵列的字线电容提供。

图25描绘了字线驱动器2500。字线驱动器2500类似于先前描述的字线驱动器,不同的是偏置晶体管2501和2502分别连接到开关2503和2504。开关2503接收opa(运算放大器)2505的输出,并且开关2504向opa 2505的负输入提供参考输入,从而通过由opa 2505、晶体管2501、开关2503和开关2504提供的闭环的动作来基本上提供由电容器2403存储的电压。以这种方式,当开关2503和2504闭合时,输入2506上的电压通过晶体管2501叠加在电容器2403上。另选地,电容器2403可由来自存储器阵列的字线电容提供。

图26描绘了字线驱动器。字线驱动器2600类似于先前描述的字线驱动器,不同的是添加了放大器2601,该放大器将用作电容器2604上的电压的电压缓冲器以将电压驱动到字线WL0中,这意味着S/H电容器上的电压将用作字线的(浮动)电压源。这例如是为了避免字线与字线耦接影响电容器上的电压。

图27描绘了高电压源极线解码器电路2700。高电压源极线解码器电路包括如图所示的那样配置的晶体管2701、2702和2703。晶体管2703用于将源极线取消选择至低电压。晶体管2702用于将高电压驱动到阵列的源极线中,并且晶体管2701用于监测源极线上的电压。晶体管2702、2701和驱动器电路(诸如opa)以闭环方式(力/感测)配置为维持PVT上的电压(过程、电压、温度)和变化的电流负载状况。SLE(被驱动的源极线节点)和SLB(被监测的源极线节点)可位于源极线的一端处。另选地,SLE可位于源极线的一端处,并且SLN可位于源极线的另一端处。

图28描绘了VMM高电压解码电路,该VMM高电压解码电路包括适于与图2所示的类型的存储器单元一起使用的字线解码器电路2801、源极线解码器电路2804和高电压电平移位器2808。

字线解码器电路2801包括如图所示的那样配置的PMOS选择晶体管2802(由信号HVO_B控制)和NMOS取消选择晶体管2803(由信号HVO_B控制)。

源极线解码器电路2804包括如图所示的那样配置的NMOS监测晶体管2805(由信号HVO控制)、驱动晶体管2806(由信号HVO控制)和取消选择晶体管2807(由信号HVO_B控制)。

高电压电平移位器2808接收启用信号EN并且输出高电压信号HV及其互补信号HVO_B。

图29描绘了VMM高电压解码电路,该VMM高电压解码电路包括适于与图3所示的类型的存储器单元一起使用的擦除栅解码器电路2901、控制栅解码器电路2904、源极线解码器电路2907和高电压电平移位器2911。

擦除栅解码器电路2901和控制栅解码器电路2904使用与图28中的字线解码器电路2801相同的设计。

源极线解码器电路2907使用与图28中的源极线解码器电路2804相同的设计。

高电压电平移位器2911使用与图28中的高电压电平移位器2808相同的设计。

图30描绘了用于示例性字线WL0、WL1、WL2和WL3的字线解码器300。示例性字线WL0耦接到上拉晶体管3001和下拉晶体管3002。当激活上拉晶体管3001时,启用WL0。当激活下拉晶体管3002时,禁用WL0。图30的功能类似于没有隔离晶体管的图21的功能。

图31描绘了用于示例性控制栅线CG0、CG1、CG2和CG3的控制栅解码器3100。示例性控制栅线CG0耦接到上拉晶体管3101和下拉晶体管3102。当激活上拉晶体管3101时,启用CG0。当激活下拉晶体管3102时,禁用CG0。图31的选择和取消选择功能类似于图30的用于控制栅的选择和取消选择功能。

图32描绘了用于示例性控制栅线CG0、CG1、CG2和CG3的控制栅解码器3200。控制栅解码器3200类似于控制栅解码器3100,不同的是控制栅解码器3200包含耦接到每个控制栅线的电容器(诸如电容器3203)。这些采样保持(S/H)电容器可在操作之前在每个控制栅线上提供预充电偏置,这意味着S/H电容器上的电压将用作用于控制栅线的(浮动)电压源。S/H电容器可由来自存储器单元的控制栅电容提供。

图33描绘了用于示例性控制栅线CG0、CG1、CG2和CG3的控制栅解码器3300。控制栅解码器3300类似于控制栅解码器3200,不同的是控制栅解码器3300还包括缓冲器3301(诸如opa)。

图34描绘了电流到电压电路3400。电路包括已配置的二极管连接参考单元电路3450和采样保持电路3460。电路3450包括输入电流源3401、NMOS晶体管3402、共源共栅偏置晶体管3403和参考存储器单元3404。采样保持电路由开关3405和S/H电容器3406组成。存储器3404在二极管连接配置中被偏置,其位线上的偏置用于将输入电流转换成电压,诸如用于供应字线。

图35描绘了电流到电压电路3500,该电流到电压电路3500类似于电流到电压电路3400,其中在S/H电容器之后添加放大器3501。电流到电压电路3500包括已配置的二极管连接参考单元电路3550、采样保持电路3470和放大器级3562。

图36描绘了电流到电压电路3600,该电流到电压电路3600设计与以二极管连接配置的控制栅的电流到电压电路3400相同。电流到电压电路3600包括已配置的二极管连接参考单元电路3650和采样保持电路3660。

图37示出了电流到电压电路3700,其中缓冲器3790被放置在参考电路3750和S/H电路3760之间。

图38描绘了电流到电压电路3800,该电流到电压电路3800类似于图35,其中控制栅以二极管连接配置进行连接。电流到电压电路3800包括已配置的二极管连接参考单元电路3550、采样保持电路3870和放大器级3862。

图39描绘了电流到电压电路3900,该电流到电压电路3900类似于应用于图2中的存储器单元的图34。电流到电压电路3900包括已配置的二极管连接参考单元电路3950和采样保持电路3960。

图40描绘了电流到电压电路4000,该电流到电压电路4000类似于应用于图2中的存储器单元的图37,其中缓冲器4090被放置在参考电路4050和S/H电路4060之间。

图41描绘了电流到电压电路4100,该电流到电压电路4100类似于应用于图2中的存储器单元的图38。电流到电压电路4100包括已配置的二极管连接参考单元电路4150、采样保持电路4170和放大器级4162。

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

64页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用扩展码的传输

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类