一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于深度学习人工神经网络中的模拟神经存储器的解码系统和物理布局的制作方法

2021-12-04 02:19:00 来源:中国专利 TAG:

用于深度学习人工神经网络中的模拟神经存储器的解码系统和物理布局
1.优先权声明
2.本技术要求于2019年4月29日提交的标题为“decoding system and physical layout for analog neural memory in deep learning artificial neural network”的美国临时专利申请号62/840,318和于2019年7月3日提交的标题为“decoding system and physical layout for analog neural memory in deep learning artificial neural network”的美国专利申请号16/503,355的优先权。
技术领域
3.本发明公开了用于利用非易失性存储器单元的模拟神经存储器系统的改进的解码系统和物理布局。


背景技术:

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

矩阵乘法(vmm)系统中的一个挑战是选择用于擦除、编程和读取操作的特定单元或单元组,或者在一些情况下,选择单元的整个阵列的能力。相关的挑战是改善半导体管芯内物理空间的使用而不丧失功能。
10.所需要的是用于利用非易失性存储器单元的模拟神经存储器系统的改进的解码系统和物理布局。


技术实现要素:

11.本发明公开了用于利用非易失性存储器单元的模拟神经存储器系统的改进的解码系统和物理布局。
附图说明
12.图1为示出现有技术的人工神经网络的示意图。
13.图2示出现有技术的分裂栅闪存存储器单元。
14.图3示出另一现有技术的分裂栅闪存存储器单元。
15.图4示出另一现有技术的分裂栅闪存存储器单元。
16.图5示出另一现有技术的分裂栅闪存存储器单元。
17.图6示出另一现有技术的分裂栅闪存存储器单元。
18.图7示出现有技术的堆叠栅闪存存储器单元。
19.图8为示出使用一个或多个非易失性存储器阵列的示例性人工神经网络的不同层级的示意图。
20.图9为示出矢量

矩阵乘法系统的框图。
21.图10为示出使用一个或多个矢量

矩阵乘法系统的示例性人工神经网络的框图。
22.图11示出矢量

矩阵乘法系统的另一实施方案。
23.图12示出矢量

矩阵乘法系统的另一实施方案。
24.图13示出矢量

矩阵乘法系统的另一实施方案。
25.图14示出矢量

矩阵乘法系统的另一实施方案。
26.图15示出矢量

矩阵乘法系统的另一实施方案。
27.图16示出现有技术的长短期存储器系统。
28.图17示出在长短期存储器系统中使用的示例性单元。
29.图18示出图17的示例性单元的一个实施方案。
30.图19示出图17的示例性单元的另一实施方案。
31.图20示出现有技术的栅控递归单元系统。
32.图21示出在栅控递归单元系统中使用的示例性单元。
33.图22示出图21的示例性单元的一个实施方案。
34.图23示出图21的示例性单元的另一实施方案。
35.图24示出矢量

矩阵乘法系统的另一实施方案。
36.图25示出矢量

矩阵乘法系统的另一实施方案。
37.图26示出矢量

矩阵乘法系统的另一实施方案。
38.图27示出矢量

矩阵乘法系统的另一实施方案。
39.图28示出矢量

矩阵乘法系统的另一实施方案。
40.图29示出矢量

矩阵乘法系统的另一实施方案。
41.图30示出矢量

矩阵乘法系统的另一实施方案。
42.图31示出矢量

矩阵乘法系统的另一实施方案。
43.图32示出矢量

矩阵乘法系统的另一实施方案。
44.图33示出矢量

矩阵乘法系统的示例性框图。
45.图34示出矢量

矩阵乘法系统的示例性解码实施方案。
46.图35示出矢量

矩阵乘法系统的另一示例性解码实施方案。
47.图36示出示例性行解码器。
48.图37示出矢量

矩阵乘法系统的另一示例性解码实施方案。
49.图38示出矢量

矩阵乘法系统的另一示例性解码实施方案。
50.图39示出矢量

矩阵乘法系统的另一示例性解码实施方案。
51.图40示出低压行解码器的一个实施方案。
52.图41示出组合的低压行解码器和控制栅解码器的一个实施方案。
53.图42示出位线解码器的一个实施方案。
54.图43示出矢量

矩阵乘法系统和输入块。
55.图44示出用于从阵列接收输出并以多路复用方式向一个或多个阵列提供输入的多路复用器。
56.图45a和图45b示出矢量

矩阵乘法系统的示例性布局。
57.图46示出矢量

矩阵乘法系统的示例性布局。
58.图47示出用于与矢量乘法器矩阵一起使用的字线解码器电路、源极线解码器电路和高电压电平移位器。
59.图48示出用于与矢量乘法器矩阵一起使用的擦除栅解码器电路、控制栅解码器电路、源极线解码器电路和高电压电平移位器。
60.图49示出用于与矢量乘法器矩阵一起使用的字线驱动器的另一实施方案。
61.图50示出用于与矢量乘法器矩阵一起使用的字线驱动器的另一实施方案。
62.图51示出矢量

矩阵乘法系统的另一示例性解码实施方案。
具体实施方式
63.本发明的人工神经网络利用cmos技术和非易失性存储器阵列的组合。
64.非易失性存储器单元
65.数字非易失性存储器是众所周知的。例如,美国专利5,029,130(“130专利”),其以引用方式并入本文,公开了分裂栅非易失性存储器单元的阵列,它是一种闪存存储器单元。此类存储器单元210在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝
缘(并控制其电导率),并且形成在源极区14的一部分上方。字线端子22(其通常被耦接到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线端子24耦接到漏极区16。
66.通过将高的正电压置于字线端子22上来对存储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由fowler

nordheim隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。
67.通过将正的电压置于字线端子22上以及将正的电压置于源极区14上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从源极区14(源极线端子)流向漏极区16。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物被注入到浮栅20上。
68.通过将正的读取电压置于漏极区16和字线端子22(其接通沟道区18的在字线端子下方的部分)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除),则沟道区18的在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。
69.表1示出可施加到存储器单元110的端子用于执行读取、擦除和编程操作的典型电压范围:
70.表1:图2的闪存存储器单元210的操作
[0071] wlblsl读取10.5

3v0.1

2v0v读取20.5

3v0

2v2

0.1v擦除约11

13v0v0v编程1v

2v1

3μa9

10v
[0072]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0073]
图3示出了存储器单元310,其与图2的存储器单元210类似,但增加了控制栅(cg)端子28。控制栅端子28在编程中被偏置在高电压处(例如,10v),在擦除中被偏置在低电压或负电压处(例如,0v/

8v),在读取中被偏置在低电压或中等电压处(例如,0v/2.5v)。其他端子类似于图2那样偏置。
[0074]
图4示出了四栅极存储器单元410,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅22(通常耦接到字线wl)、在浮栅20上方的控制栅28、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的将自身注入到浮栅20的加热的电子执行。擦除通过从浮栅20隧穿到擦除栅30的电子来执行。
[0075]
表2示出可施加到存储器单元310的端子用于执行读取、擦除和编程操作的典型电压范围:
[0076]
表2:图4的闪存存储器单元410的操作
[0077][0078][0079]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0080]
图5示出了存储器单元510,除了不含擦除栅eg端子,存储器单元510与图4的存储器单元410类似。通过将衬底18偏置到高电压并将控制栅cg端子28偏置到低电压或负电压来执行擦除。另选地,通过将字线端子22偏置到正电压并将控制栅端子28偏置到负电压来执行擦除。编程和读取类似于图4的那样。
[0081]
图6示出三栅极存储器单元610,其为另一种类型的闪存存储器单元。存储器单元610与图4的存储器单元410相同,除了存储器单元610没有单独的控制栅端子。除了没有施加控制栅偏置,擦除操作(通过使用擦除栅端子进行擦除)和读取操作类似于图4的操作。在没有控制栅偏置的情况下,编程操作也被完成,并且结果,在编程操作期间必须在源极线端子上施加更高的电压,以补偿控制栅偏置的缺乏。
[0082]
表3示出可施加到存储器单元610的端子用于执行读取、擦除和编程操作的典型电压范围:
[0083]
表3:图6的闪存存储器单元610的操作
[0084] 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
[0085]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
[0086]
图7示出堆叠栅存储器单元710,其为另一种类型的闪存存储器单元。存储器单元710与图2的存储器单元210类似,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅端子22(其在这里将耦接到字线)在浮栅20上方延伸,由绝缘层(未示出)分开。擦除、编程和读取操作以与先前针对存储器单元210所述类似的方式操作。
[0087]
表4示出可以施加到存储器单元710和衬底12的端子用于执行读取、擦除和编程操作的典型电压范围:
[0088]
表4:图7的闪存存储器单元710的操作
[0089] cgblsl衬底
读取10

5v0.1

2v0

2v0v读取20.5

2v0

2v2

0.1v0v擦除

8至

10v/0vfltflt8

10v/15

20v编程8

12v3

5v/0v0v/3

5v0v
[0090]“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。任选地,在包括存储器单元210、310、410、510、610或710的行和列的阵列中,源极线可以耦接到一行存储器单元或两个相邻行的存储器单元。即,源极线端子可由相邻行的存储器单元共享。
[0091]
为了在人工神经网络中利用包括上述类型的非易失性存储器单元之一的存储器阵列,进行了两个修改。第一,对线路进行配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,提供存储器单元的连续(模拟)编程。
[0092]
具体地,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态。在另一个实施方案,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全编程状态变为完全擦除状态,反之亦然。这意味着单元存储装置是模拟的,或者至少可存储许多离散值(诸如16或64个不同的值)中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调谐,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调调整是理想的。
[0093]
本文所述的方法和装置可应用于其他非易失性存储器技术,诸如但不限于sonos(硅

氧化物

氮化物

氧化物

硅,电荷捕获在氮化物中)、monos(金属

氧化物

氮化物

氧化物

硅,金属电荷捕获在氮化物中)、reram(电阻式ram)、pcm(相变存储器)、mram(磁性ram)、feram(铁电ram)、otp(双层或多层式一次可编程)和ceram(关联电子ram)等。本文所述的方法和装置可应用于用于神经网络的易失性存储器技术,诸如但不限于sram、dram和易失性突触单元。
[0094]
采用非易失性存储器单元阵列的神经网络
[0095]
图8概念性地示出本实施方案的使用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。
[0096]
对于该示例,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的所有特征映射。
[0097]
在层c1处,在本示例中,存在16个特征映射,每个特征映射具有30x30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,层c1由16层的二维阵列构成(记住本文所引用的层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。在层c1中的16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。c1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。
[0098]
在从层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个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
[0099]
使用非易失性存储器单元的阵列或阵列的一部分来实现每层的突触。
[0100]
图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的输出。
[0101]
vmm阵列33用于两个目的。首先,它存储将由vmm系统32使用的权重。其次,vmm阵列33有效地将输入与存储在vmm阵列33中的权重相乘并且每个输出线(源极线或位线)将它们相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,vmm阵列33消除了对单独的乘法和加法逻辑电路的需要,并且由于其原位存储器计算也是高功效的。
[0102]
将vmm阵列33的输出提供至差分求和器(诸如求和运算放大器或求和电流镜)38,该差分求和器对vmm阵列33的输出进行求和,以为该卷积创建单个值。差分求和器38被布置用于执行正权重输入和负权重输入两者的求和,以输出单个值。
[0103]
然后将差分求和器38的输出值求和后提供至激活函数电路39,该激活函数电路对
输出进行修正。激活函数电路39可提供sigmoid、tanh、relu函数或任何其他非线性函数。激活函数电路39的经修正的输出值成为作为下一层(例如,图8中的层c1)的特征映射的元素,然后被应用于下一个突触以产生下一个特征映射层或最终层。因此,在该示例中,vmm阵列33构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和器38和激活函数电路39构成多个神经元。
[0104]
图9中对vmm系统32的输入(wlx、egx、cgx以及任选的blx和slx)可为模拟电平、二进制电平、数字脉冲(在这种情况下,可能需要脉冲

模拟转换器pac来将脉冲转换至合适的输入模拟电平)或数字位(在这种情况下,提供dac以将数字位转换至合适的输入模拟电平);输出可为模拟电平、二进制电平、数字脉冲或数字位(在这种情况下,提供输出adc以将输出模拟电平转换成数字位)。
[0105]
图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的映射的一个或多个数字脉冲。
[0106]
由输入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)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。
[0107]
vmm阵列
[0108]
图11示出神经元vmm阵列1100,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1100包括非易失性存储器单元的存储器阵列1101和非易失性参考存储器单元的参考阵列1102(在阵列的顶部)。另选地,可将另一个参考阵列置于底部。
[0109]
在vmm阵列1100中,控制栅线(诸如控制栅线1103)在竖直方向上延伸(因此参考阵列1102在行方向上与控制栅线1103正交),并且擦除栅线(诸如擦除栅线1104)在水平方向上延伸。此处,vmm阵列1100的输入设置在控制栅线(cg0、cg1、cg2、cg3)上,并且vmm阵列1100的输出出现在源极线(sl0、sl1)上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于各源极线(分别为sl0、sl1)上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
[0110]
如本文针对神经网络所述,vmm阵列1100的非易失性存储器单元(即vmm阵列1100的闪存存储器)优选地被配置成在亚阈值区域中操作。
[0111]
在弱反转中偏置本文所述的非易失性参考存储器单元和非易失性存储器单元:
[0112]
ids=io*e
(vg

vth)/nvt
=w*io*e
(vg)/nvt
,
[0113]
其中w=e
(

vth)/nvt
[0114]
其中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分别是存储器单元的宽度和长度。
[0115]
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流ids转换为输入电压vg的i到v对数转换器:
[0116]
vg=n*vt*log[ids/wp*io]
[0117]
此处,wp为参考存储器单元或外围存储器单元的w。
[0118]
对于用作矢量矩阵乘法器vmm阵列的存储器阵列,输出电流为:
[0119]
iout=wa*io*e
(vg)/nvt
,即
[0120]
iout=(wa/wp)*iin=w*iin
[0121]
w=e
(vthp

vtha)/nvt
[0122]
iin=wp*io*e
(vg)/nvt
[0123]
此处,wa=存储器阵列中的每个存储器单元的w。
[0124]
字线或控制栅可用作输入电压的存储器单元的输入。
[0125]
另选地,本文所述的vmm阵列的非易失性存储器单元可被配置为在线性区域中操作:
[0126]
ids=β*(vgs

vth)*vds;β=u*cox*wt/l,
[0127]
wα(vgs

vth),
[0128]
意指线性区域中的权重w与(vgs

vth)成比例
[0129]
字线或控制栅或位线或源极线可以用作在线性区域中操作的存储器单元的输入。位线或源极线可用作存储器单元的输出。
[0130]
对于i到v线性转换器,在线性区域工作的存储器单元(例如参考存储器单元或外围存储器单元)或晶体管或电阻器可以用来将输入/输出电流线性转换成输入/输出电压。
[0131]
另选地,本文所述的vmm阵列的闪存存储器单元可被配置成在饱和区域中操作:
[0132]
ids=1/2*β*(vgs

vth)2;β=u*cox*wt/l
[0133]
wα(vgs

vth)2,意指权重w与(vgs

vth)2成比例
[0134]
字线、控制栅或擦除栅可以用作在饱和区域中操作的存储器单元的输入。位线或源极线可用作输出神经元的输出。
[0135]
另选地,本文所述的vmm阵列的存储器单元可用于所有区域或其组合(亚阈值、线性或饱和区域)。
[0136]
美国专利申请15/826,345描述了图9的vmm阵列32的其他实施方案,该申请以引用方式并入本文。如本文所述,源极线或位线可以用作神经元输出(电流求和输出)。
[0137]
图12示出神经元vmm阵列1200,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的突触。vmm阵列1200包括非易失性存储器单元的存
储器阵列1203、第一非易失性参考存储器单元的参考阵列1201和第二非易失性参考存储器单元的参考阵列1202。沿阵列的列方向布置的参考阵列1201和1202用于将流入端子blr0、blr1、blr2和blr3的电流输入转换为电压输入wl0、wl1、wl2和wl3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1214(仅部分示出)二极管式连接,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵(未示出)提供。
[0138]
存储器阵列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中的每个位线上的电流执行来自连接到该特定位线的所有非易失性存储器单元的电流的求和函数。
[0139]
表5示出用于vmm阵列1200的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压,其中flt指示浮动,即无电压被施加。行指示读取、擦除和编程操作。
[0140]
表5:图12的vmm阵列1200的操作
[0141] 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
[0142]
图13示出神经元vmm阵列1300,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1300包括非易失性存储器单元的存储器阵列1303、第一非易失性参考存储器单元的参考阵列1301和第二非易失性参考存储器单元的参考阵列1302。参考阵列1301和1302在vmm阵列1300的行方向上延伸。vmm阵列与vmm1000类似,不同的是在vmm阵列1300中,字线在竖直方向上延伸。这里,输入设置在字线(wla0、wlb0、wla1、wlb2、wla2、wlb2、wla3、wlb3)上,并且输出在读取操作期间出现在源极线(sl0、sl1)上。置于各源极线上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
[0143]
表6示出用于vmm阵列1300的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0144]
表6:图13的vmm阵列1300的操作
[0145][0146]
图14示出神经元vmm阵列1400,该神经元vmm阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。vmm阵列1400包括非易失性存储器单元的存储器阵列1403、第一非易失性参考存储器单元的参考阵列1401和第二非易失性参考存储器单元的参考阵列1402。参考阵列1401和1402用于将流入端子blr0、blr1、blr2和blr3的电流输入转换为电压输入cg0、cg1、cg2和cg3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1412(仅部分示出)二极管式连接,其中电流输入通过blr0、blr1、blr2和blr3流入其中。多路复用器1412各自包括相应的多路复用器1405和共源共栅晶体管1404,以确保在读取操作期间第一非易失性参考存储器单元和第二非易失性参考存储器单元中的每一者的位线(诸如blr0)上的恒定电压。将参考单元调谐至目标参考电平。
[0147]
存储器阵列1403用于两个目的。首先,它存储将由vmm阵列1400使用的权重。第二,存储器阵列1403有效地将输入(提供到端子blr0、blr1、blr2和blr3的电流输入,参考阵列1401和1402将这些电流输入转换成输入电压以提供给控制栅cg0、cg1、cg2和cg3)乘以存储在存储器阵列中的权重,然后将所有结果(单元电流)相加以产生输出,该输出出现在bl0

bln并且将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,输入提供在控制栅线(cg0、cg1、cg2和cg3)上,输出在读取操作期间出现在位线(bl0

bln)上。置于各位线上的电流执行来自连接到该特定位线的存储器单元的所有电流的求和函数。
[0148]
vmm阵列1400为存储器阵列1403中的非易失性存储器单元实现单向调谐。也就是说,每个非易失性存储器单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。这可例如使用下文所述的精确编程技术来执行。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅(诸如eg0或eg1)的两行需要一起擦除(其被称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷。
[0149]
表7示出用于vmm阵列1400的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0150]
表7:图14的vmm阵列1400的操作
[0151][0152]
图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中,其中每个位线对来自连接到该特定位线的非易失性存储器单元的所有电流求和。
[0153]
表8示出用于vmm阵列1500的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
[0154]
表8:图15的vmm阵列1500的操作
[0155][0156]
图24示出神经元vmm阵列2400,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在vmm阵列2400中,输入input0…
,input
n
分别在位线bl0,...bl
n
上被接收,并且输出output1、output2、output3和output4分别在源极线sl0、sl1、sl2和sl3上生成。
[0157]
图25示出神经元vmm阵列2500,该神经元vmm阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入input0、input1、input2和input3分别在源极线sl0、sl1、sl2和sl3上被接收,并且输出output0,...output
n
在位线bl0,

,bl
n
上生成。
和来自单元1602的单元状态c1,并生成输出矢量h2和单元状态矢量c2。单元1604接收输入矢量x3、来自单元1603的输出矢量(隐藏状态)h2和来自单元1603的单元状态c2,并生成输出矢量h3。可使用另外的单元,并且具有四个单元的lstm仅为示例。
[0168]
图17示出可用于图16中的单元1601、1602、1603和1604的lstm单元1700的示例性具体实施。lstm单元1700接收输入矢量x(t)、来自前一单元的单元状态矢量c(t

1)和来自前一单元的输出矢量h(t

1),并生成单元状态矢量c(t)和输出矢量h(t)。
[0169]
lstm单元1700包括sigmoid函数设备1701、1702和1703,每个sigmoid函数设备应用0至1之间的数字来控制允许输入向量中的每个分量通过到输出向量的数量。lstm单元1700还包括用于将双曲线正切函数应用于输入向量的tanh设备1704和1705、用于将两个向量相乘在一起的乘法器设备1706、1707和1708以及用于将两个向量相加在一起的加法设备1709。输出矢量h(t)可被提供给系统中的下一个lstm单元,或者其可被访问用于其他目的。
[0170]
图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可以数字方式或模拟方式实施。
[0171]
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。
[0172]
lstm单元1800包含多组vmm阵列1801和相应的激活函数块1802,而lstm单元1900仅包含一组vmm阵列1901和激活函数块1902,它们用于表示lstm单元1900的实施方案中的多个层。lstm单元1900将需要比lstm1800更少的空间,因为与lstm单元1800相比,lstm单元1900只需要其1/4的空间用于vmm和激活函数块。
[0173]
还可理解,lstm单元通常将包括多个vmm阵列,每个vmm阵列需要由vmm阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个vmm阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。
[0174]
栅控递归单元
[0175]
模拟vmm具体实施可用于栅控递归单元(gru)系统。gru是递归神经网络中的栅控机构。gru类似于lstm,不同的是gru单元一般包含比lstm单元更少的部件。
[0176]
图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仅仅是示例。
[0177]
图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。
[0178]
图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可以数字方式或模拟方式实施。
[0179]
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。
[0180]
gru单元2200包含多组vmm阵列2201和激活函数块2202,而gru单元2300仅包含一组vmm阵列2301和激活函数块2302,它们用于表示gru单元2300的实施方案中的多个层。gru单元2300将需要比gru单元2200更少的空间,因为与gru单元2200相比,gru单元2300只需要其1/3的空间用于vmm和激活函数块。
[0181]
还可以理解的是,gru系统通常将包括多个vmm阵列,每个vmm阵列需要由vmm阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个vmm阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。
[0182]
vmm阵列的输入可为模拟电平、二进制电平或数字位(在这种情况下,需要dac来将数字位转换成适当的输入模拟电平),并且输出可为模拟电平、二进制电平或数字位(在这种情况下,需要输出adc来将输出模拟电平转换成数字位)。
[0183]
对于vmm阵列中的每个存储器单元,每个权重w可由单个存储器单元或由差分单元
或由两个混合存储器单元(2个单元的平均值)来实现。在差分单元的情况下,需要两个存储器单元来实现权重w作为差分权重(w=w

w

)。在两个混合存储器单元中,需要两个存储器单元来实现权重w作为两个单元的平均值。
[0184]
用于vmm阵列的解码系统和物理布局实施方案
[0185]
图33

图51公开了用于vmm阵列的各种解码系统和物理布局,所述vmm阵列可与先前相对于图2

图7所述的任何存储器单元类型或与其他非易失性存储器单元一起使用。
[0186]
图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。
[0187]
输入电路块3309用作从外部输入到存储器阵列3301的输入端子的接口。输入电路块3309可包括但不限于dac(数模转换器)、dpc(数字

脉冲转换器)、apc(模拟

脉冲转换器)、ivc(电流

电压转换器)、aac(模拟

模拟转换器,诸如电压

电压缩放器)或fac(频率

模拟转换器)。神经元输出块3308用作从存储器阵列输出到外部接口(未示出)的接口。神经元输出块3308可包括但不限于adc(模数转换器)、apc(模拟

脉冲转换器)、dpc(数模转换器)、ivc(电流

电压转换器)或ifc(电流

频率转换器)。神经元输出块3308可包括但不限于激活功能、归一化电路和/或重新缩放电路。
[0188]
低电压行解码器3302为读取操作和编程操作提供偏置电压,并且为高电压行解码器3303提供解码信号。高电压行解码器3303为编程操作和擦除操作提供高电压偏置信号。
[0189]
算法控制器3310为处于编程、验证和擦除操作期间的位线提供控制功能。
[0190]
高压发生器块3311包括电荷泵3312、电荷泵调节器3313和高压生成电路3314,该高压生成电路3314提供各种编程、擦除、编程验证和读取操作所需的多个电压。
[0191]
图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。
[0192]
在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阵列,字线在水平方向上布置。
[0193]
图35示出vmm系统3500,其特别适用于与图4中示出为存储器单元410的类型的存储器单元一起使用。vmm系统3500类似于图33的vmm系统3300,不同的是vmm系统3500包含用于读取操作和编程操作的单独字线和低电压行解码器。
[0194]
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阵列共享。
[0195]
在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阵列中的一者或多者中的单元进行编程。
[0196]
图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中的一者或多者内的行的字线端子。
[0197]
图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提供本地擦除栅线。
[0198]
这里,本地高电压行解码器3709由vmm阵列3701和3702共享,并且本地高电压行解码器3710由vmm阵列3703和3704共享。全局高电压解码器3730将高电压和低电压预解码信号路由到本地高电压行解码器,诸如本地高电压行解码器3709和3710。因此,高电压解码功能在全局高电压行解码器3730与本地高电压解码器诸如本地高电压解码器3709和3710之间划分。
[0199]
在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。这在使用常规布局时将非常低效,在常规布局中,对于共享单个高电压解码器的多个阵列,字线在水平方向上布置。
[0200]
图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。
[0201]
如在图37的vmm系统3700中,本地高电压行解码器3809由vmm阵列3801和3802共享,并且本地高电压行解码器3810由vmm阵列3803和3804共享。全局高电压解码器3830将信号路由到本地高电压行解码器,诸如本地高电压行解码器3809和3810。因此,高电压解码功能在全局高电压行解码器3830与本地高电压解码器诸如本地高电压解码器3809和3810(其可提供本地源极线和/或本地擦除栅线)之间划分。
[0202]
在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。使用其中字线在水平方向上布置的常规布局将是不可能的。
[0203]
图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的解码输入。
[0204]
本地高电压行解码器3905由vmm阵列3901和3902共享。全局高电压解码器3904将信号路由到多个vmm系统的本地高电压行解码器,诸如vmm系统3900的本地高电压行解码器3905。因此,高电压解码功能在全局高电压行解码器3904和本地高电压解码器诸如本地高电压解码器3905之间被划分,如上所述。
[0205]
在vmm系统3900中,vmm阵列3901和3902共享字线(未示出)、源极栅线(如果存在的话)(未示出)、擦除栅线(如果存在的话)(未示出)和全局高电压行解码器3904。这里,vmm阵列3901和3902共享低电压行解码器3903。对于该布局有利的是vmm阵列3901和3902不共享控制栅线,这使得每个阵列能够分别使用控制栅线3908和3909被独立地访问。
[0206]
图51示出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。
[0207]
图40示出低电压行解码器4000,其包括nand栅4001、pmos晶体管4002和nmos晶体管4003。nand栅4001接收行地址信号4004。pmos晶体管4002耦合到竖直字线输入4005。输出位于水平字线4006上,该水平字线是耦接到相应vmm阵列的许多字线中的一者。在该示例中,总共有16条字线,并且因此将存在行解码器4000的16个实例化,每个实例化输出16条字线中的一条字线。因此,基于所接收的行地址信号,一个字线(诸如字线4006)将输出相应的信号(诸如电压),并且其他字线将被设置为接地。
[0208]
图41示出组合的共同选择/取消选择的字线和控制栅解码器4100,其包括如图40中的低电压行解码器,这里包括nand栅4101、pmos晶体管4102、nmos晶体管4103、行地址信号4104、竖直输入字线4105和耦接到vmm阵列的字线的水平字输出线4106。组合的字线和控制栅解码器4100还包括逆变器4107、开关4108和4112以及隔离晶体管4109,并且接收控制栅输入4110cgin0并输出控制栅线4111cg0。字线输出4106wl0和控制栅输出cg0 4111通过控制nand栅4101的解码逻辑部件(未示出)同时被选择或取消选择。
[0209]
图42示出位线解码器4200,其在vmm阵列4201和4202上操作。位线解码器4200包括列复用器4203(用于选择一条或多条位线进行编程和验证,其中验证操作用于确认单元电流在调谐操作(编程或擦除操作)期间达到某个目标),以及感测放大器4204(用于在一条或多条位线上执行读取操作)。如图所示,本地位线mux 4201b和4202b将本地阵列位线多路复用到全局位线4220x以耦接到列复用器4203。感测放大器包括adc或其他设备。因此,位线解码器4200跨多个阵列共享。
[0210]
图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被适当地锁存,诸如通过同步时钟装置和方法(诸如通过串行到并行时钟接口)。
[0211]
图44示出神经网络阵列输入

输出总线多路复用器4400,其从vmm阵列(诸如从adc)接收输出并以多路复用方式将那些输出成组地提供给其他vmm阵列(诸如dac或dpc)的输入块。在所示的示例中,对输入

输出总线复用器4400的输入包括2048位(256组,neu0...neu255,每组8位),并且输入

输出总线复用器4400以64个不同组(每组32位)提供那些位,其中其在不同组之间复用,诸如通过使用时分复用(其中其在任何给定时间提供1组32位)。控制逻辑部件4401生成控制信号4402以控制输入

输出总线复用器4400。
[0212]
图45a和图45b示出vmm阵列的示例性布局,其中字线以水平方式(图45a)与以垂直
方式(图45b,诸如在图34或图35中)布局。
[0213]
图46示出vmm阵列的示例性布局,其中字线以垂直方式排列(诸如在图34或图35中)。然而,在该布局中,两个字线(诸如字线4601和4602)可以占据同一列,但是访问阵列中的不同行(由于它们之间的间隙)。
[0214]
图47示出了vmm高电压解码电路,该vmm高电压解码电路包括适于与图2所示的类型的存储器单元一起使用的字线解码器电路4701、源极线解码器电路4704和高电压电平移位器4708。
[0215]
字线解码器电路4701包括如图所示的那样配置的pmos选择晶体管4702(由信号hvo_b控制)和nmos取消选择晶体管4703(由信号hvo_b控制)。
[0216]
源极线解码器电路4704包括如图所示的那样配置的nmos监测晶体管4705(由信号hvo控制)、驱动晶体管4706(由信号hvo控制)和取消选择晶体管4707(由信号hvo_b控制)。
[0217]
高电压电平移位器4708接收启用信号en并且输出高电压信号hv及其互补信号hvo_b。
[0218]
图48示出了vmm高电压解码电路,该vmm高电压解码电路包括适于与图3所示的类型的存储器单元一起使用的擦除栅解码器电路4801、控制栅解码器电路4804、源极线解码器电路4807和高电压电平移位器4811。
[0219]
擦除栅解码器电路4801和控制栅解码器电路4804使用与图47中的字线解码器电路4701相同的设计。
[0220]
源极线解码器电路4807使用与图47中的源极线解码器电路4704相同的设计。
[0221]
高电压电平移位器4811使用与图47中的高电压电平移位器4708相同的设计。
[0222]
图49示出字线驱动器4900。字线驱动器4900选择字线(诸如这里示出的示例性字线wl0、wl1、wl2和wl3)并且向该字线提供偏置电压。每个字线附接到由控制线4902控制的选择隔离晶体管,诸如选择晶体管4901。选择晶体管(诸如选择晶体管4901)将擦除操作期间使用的高电压(例如,8

12v)与字线解码晶体管隔离,其可以用在低电压(例如,1.8v、3.3v)下操作的io晶体管来实现。这里,在任何操作期间,激活控制线4902,并且接通类似于选择晶体管4901的所有选择晶体管。示例性偏置晶体管4903(字线解码电路的一部分)将字线选择性地耦接到第一偏置电压(诸如3v),并且示例性偏置晶体管4904(字线解码电路的一部分)将字线选择性地耦接到第二偏置电压(低于第一偏置电压,包括接地、接地和第一偏置电压之间的偏置、或负电压偏置以减小来自未使用存储器行的泄漏)。在ann(模拟神经网络)读取操作期间,将选择所有已使用字线并将其绑定到第一偏置电压。所有未使用字线被绑定到第二偏置电压。在诸如编程操作的其他操作期间,将仅选择一个字线并且其他字线将被绑定到第二偏置电压,该第二偏置电压可以是负偏置(例如,

0.3v至

0.5v或更大)以减小阵列泄漏。
[0223]
偏置晶体管4903和4904耦接到移位寄存器4905的级4906的输出。移位寄存器4905使得每一行能够根据(在ann操作开始时加载的)输入数据模式被独立地控制。
[0224]
图50示出字线驱动器5000。字线驱动器5000类似于字线驱动器4900,不同的是每个选择晶体管进一步耦接到电容器(诸如电容器5001)。电容器5001可在操作开始时向字线提供预充电或偏置,由晶体管5002启用以对线5003上的电压进行采样。电容器5001用于对每个字线的输入电压进行采样保持(s/h)。晶体管5004和5005在vmm阵列的ann操作(阵列电
流加法器和激活函数)期间断开,这意味着s/h电容器5001上的电压将用作相应字线的(浮动)电压源。另选地,电容器5001可由来自vmm阵列的字线电容(或者如果输入位于控制栅上,则作为控制栅电容)提供。
[0225]
应当指出,如本文所用,术语“在

上方”和“在

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

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

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

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献