CN112602095B - 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 - Google Patents
用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 Download PDFInfo
- Publication number
- CN112602095B CN112602095B CN201980055114.7A CN201980055114A CN112602095B CN 112602095 B CN112602095 B CN 112602095B CN 201980055114 A CN201980055114 A CN 201980055114A CN 112602095 B CN112602095 B CN 112602095B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- array
- flash memory
- memory cells
- voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 345
- 238000013528 artificial neural network Methods 0.000 title abstract description 34
- 238000013135 deep learning Methods 0.000 title abstract description 6
- 230000001537 neural effect Effects 0.000 title description 7
- 239000011159 matrix material Substances 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 30
- 238000003491 array Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 abstract description 4
- 230000008878 coupling Effects 0.000 abstract description 2
- 238000010168 coupling process Methods 0.000 abstract description 2
- 238000005859 coupling reaction Methods 0.000 abstract description 2
- 210000004027 cell Anatomy 0.000 description 271
- 239000013598 vector Substances 0.000 description 59
- 230000006870 function Effects 0.000 description 41
- 238000007667 floating Methods 0.000 description 36
- 210000002569 neuron Anatomy 0.000 description 27
- 210000000225 synapse Anatomy 0.000 description 27
- 230000004913 activation Effects 0.000 description 18
- 239000000463 material Substances 0.000 description 10
- 239000000758 substrate Substances 0.000 description 10
- 102100036301 C-C chemokine receptor type 7 Human genes 0.000 description 6
- 102100031658 C-X-C chemokine receptor type 5 Human genes 0.000 description 6
- 101000716065 Homo sapiens C-C chemokine receptor type 7 Proteins 0.000 description 6
- 101000922405 Homo sapiens C-X-C chemokine receptor type 5 Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 230000006403 short-term memory Effects 0.000 description 6
- 230000007787 long-term memory Effects 0.000 description 5
- 238000011176 pooling Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 238000010396 two-hybrid screening Methods 0.000 description 2
- 101100165540 Arabidopsis thaliana BLH9 gene Proteins 0.000 description 1
- 102100023226 Early growth response protein 1 Human genes 0.000 description 1
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 1
- 241000288105 Grus Species 0.000 description 1
- 101001049697 Homo sapiens Early growth response protein 1 Proteins 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002493 microarray Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/02—Structural aspects of erasable programmable read-only memories
- G11C2216/04—Nonvolatile memory cell provided with a separate control gate for erasing the cells, i.e. erase gate, independent of the normal read control gate
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Non-Volatile Memory (AREA)
- Read Only Memory (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了用于为深度学习神经网络中使用的模拟神经形态存储器系统提供温度补偿和泄漏补偿的多个实施方案。用于提供温度补偿的实施方案实现了对存储器系统中的设备、参考存储器单元或选择的存储器单元的离散的或连续的自适应斜率补偿和重新归一化。用于在存储器系统中的存储器单元内提供泄漏补偿的实施方案实现自适应擦除栅耦合或在控制栅端子上施加负偏置、在字线端子上施加负偏置或在源极线端子上施加偏置。
Description
优先权声明
本申请要求于2018年8月27日提交的名称为“Temperature And LeakageCompensation For Memory Cells in an Analog Neural Memory System Used in aDeep Learning Neural Network”的美国临时专利申请第62/723,398号和于2018年11月7日提交的名称为“Temperature And Leakage Compensation For Memory Cells In AnAnalog Neural Memory System Used In A Deep Learning Neural Network”的美国专利申请第16/183,250号的优先权。
技术领域
公开了用于为深度学习神经网络中使用的模拟神经形态存储器系统中的存储器单元提供温度补偿和泄漏补偿的多个实施方案。
背景技术
人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),并且用于估计或近似可取决于大量输入并且通常未知的函数。人工神经网络通常包括互相交换消息的互连“神经元”层。
图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得神经网络适应于输入并且能够学习。通常,神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。CMOS模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数CMOS实现的突触都过于庞大。
申请人先前在美国专利申请第15/594,439号中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经形态存储器操作。神经网络装置包括被配置成接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置成接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与所述第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与所述第二部分绝缘的非浮栅。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置成将第一多个输入乘以所存储的权重值以生成第一多个输出。
必须擦除和编程在模拟神经形态存储器系统中使用的每个非易失性存储器单元,以在浮栅中保持非常特定且精确的电荷量(即电子数量)。例如,每个浮栅必须保持N个不同值中的一个,其中N是可由每个单元指示的不同权重的数量。N的示例包括16、32、64、128和256。
实现模拟神经存储器系统的一个挑战是每个单元的擦除、编程和读取操作需要极高精度,因为每个单元中的每个浮栅可能需要保持N个值中的一个值,其中N大于常规闪存存储器系统中使用的常规值2。然而,每个设备的特性,诸如其电流-电压响应特性曲线,将随着其操作温度变化而变化。此外,设备中的渗漏将进一步影响其特性。
需要的是一种用于为深度学习神经网络中使用的模拟神经存储器系统中的存储器单元提供温度补偿和泄漏补偿的系统,以确保在单元的操作温度变化时在每个存储器单元的操作中保持精度和准确性。
发明内容
本发明公开了用于为深度学习神经网络中使用的模拟神经存储器系统提供温度补偿和泄漏补偿的多个实施方案。用于提供温度补偿的实施方案包括离散的或连续的自适应斜率补偿和重新归一化。用于提供泄漏补偿的实施方案包括自适应擦除栅耦合、控制栅端子上的负偏置、字线端子上的负偏置和源极线端子上的偏置。
附图说明
图1为示出现有技术的人工神经网络的示意图。
图2为常规的2栅极非易失性存储器单元的横截面侧视图。
图3为常规的4栅极非易失性存储器单元的横截面侧视图。
图4为常规的3栅极非易失性存储器单元的侧面横截面侧视图。
图5为另一个常规的2栅极非易失性存储器单元的横截面侧视图。
图6为示出利用非易失性存储器阵列的示例性人工神经网络的不同级的示意图。
图7为示出矢量乘法器矩阵的框图。
图8为示出矢量乘法器矩阵的各种级的框图。
图9示出了矢量乘法器矩阵的另一个实施方案。
图10示出了矢量乘法器矩阵的另一个实施方案。
图11示出了矢量乘法器矩阵的另一个实施方案。
图12示出了矢量乘法器矩阵的另一个实施方案。
图13示出了矢量乘法器矩阵的另一个实施方案。
图14示出了现有技术的长短期存储器系统。
图15示出了现有技术的长短期存储器系统中的示例性单元。
图16示出了图15的长短期存储器系统中的示例性单元的具体实施。
图17示出了图15的长短期存储器系统中的示例性单元的另一个具体实施。
图18示出了现有技术的栅控递归单元系统。
图19示出了现有技术的栅控递归单元系统中的示例性单元。
图20示出了图19的栅控递归单元系统中的示例性单元的具体实施。
图21示出了图19的栅控递归单元系统中的示例性单元的另一个实施方案。
图22描绘了示出设备的电流-电压特性曲线如何随着设备的操作温度变化而变化的示例的曲线图。
图23描绘了示出用于调节设备的电流-电压特性曲线的斜率的温度补偿的示例的曲线图。
图24A、图24B和图24C示出了离散温度补偿系统的实施方案。
图25示出了离散温度补偿系统的实施方案。
图26A和图26B示出了使用一个或多个可调节电流源进行温度补偿的示例。
图27A和图27B示出了向闪存存储器设备的控制栅施加偏置电压的连续温度补偿系统的另一个实施方案。
图28A和图28B示出了向闪存存储器设备的擦除栅施加偏置电压的连续温度补偿系统的另一个实施方案。
图29A和图29B示出了向闪存存储器设备的源极线端子施加偏置电压的连续温度补偿系统的实施方案。
图30示出了处于特定配置的晶体管。
图31示出了处于特定配置的存储器单元。
图32示出了处于特定配置的存储器单元。
图33示出了补偿系统中的两个设备(诸如参考存储器单元和选择的存储器单元)的电流-电压特性曲线的斜率差的系统。
图34示出了斜率补偿系统的实施方案。
图35示出了斜率补偿系统的另一个实施方案。
图36示出了向闪存存储器设备的控制栅施加偏置电压的泄漏减少系统的实施方案。
图37示出了适用于在线性区域中操作的存储器单元的阵列架构。
图38示出了存储在查找表中以用于补偿斜率差的数据。
具体实施方式
本发明的人工神经网络利用CMOS技术和非易失性存储器阵列的组合。
非易失性存储器单元
数字非易失性存储器是众所周知的。例如,美国专利5,029,130(“’130专利”),其以引用方式并入本文,公开了分裂栅非易失性存储器单元的阵列,它是一种闪存存储器单元。此类存储器单元210在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝缘(并控制其电导率),并且形成在源极区14的一部分上方。字线端子22(其通常被耦接到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线24耦接到漏极区16。
通过将高的正电压置于字线端子22上来对存储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由Fowler-Nordheim隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。
通过将正的电压置于字线端子22上以及将正的电压置于源极区14上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从源极区14流向漏极区16。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物被注入到浮栅20上。
通过将正的读取电压置于漏极区16和字线端子22(其接通沟道区18的在字线端子下方的部分)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除),则沟道区18的在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。
表1示出了可以施加到存储器单元110的端子用于执行读取、擦除和编程操作的典型电压范围:
表1:图3的闪存存储器单元210的操作
WL | BL | SL | |
读取 | 2-3V | 0.6-2V | 0V |
擦除 | 约11-13V | 0V | 0V |
编程 | 1-2V | 1-3μA | 9-10V |
作为其他类型的闪存存储器单元的其他分裂栅存储器单元配置是已知的。例如,图3示出了四栅极存储器单元310,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅22(通常耦接到字线WL)、在浮栅20上方的控制栅28、以及在源极区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和衬底12的端子用于执行读取、擦除和编程操作的典型电压范围:
表4:图5的闪存存储器单元510的操作
CG | BL | SL | 衬底 | |
读取 | 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位精度的32×32像素RGB图像(即,三个32×32像素阵列,分别用于每个颜色R、G和B,每个像素为5位精度)。从输入层S0到层C1的突触CB1在一些情况下应用不同的权重集,在其他情况下应用共享权重,并且用3×3像素重叠滤波器(内核)扫描输入图像,将滤波器移位1个像素(或根据模型所指示的多于1个像素)。具体地,将图像的3×3部分中的9个像素的值(即,称为滤波器或内核)提供给突触CB1,其中将这9个输入值乘以适当的权重,并且在对该乘法的输出求和之后,由CB1的第一突触确定并提供单个输出值以用于生成特征映射的其中一层C1的像素。然后将3×3滤波器在输入层S0内向右移位一个像素(即,添加右侧的三个像素的列,并释放左侧的三个像素的列),由此将该新定位的滤波器中的9个像素值提供给突触CB1,其中将它们乘以相同的权重并且由相关联的突触确定第二单个输出值。继续该过程,直到3×3滤波器在输入层S0的整个32×32像素图像上扫描所有三种颜色和所有位(精度值)。然后使用不同组的权重重复该过程以生成C1的不同特征映射,直到计算出层C1的所有特征映射。
在层C1处,在本示例中,存在16个特征映射,每个特征映射具有30×30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,层C1由16层的二维阵列构成(记住本文所引用的层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。在层C1中的16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。C1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。
在从层C1转到层S1之前,应用激活函数P1(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。池化函数的目的是对邻近位置求均值(或者也可使用max函数),以例如减少边缘位置的依赖性,并在进入下一阶段之前减小数据大小。在层S1处,存在16个15×15特征映射(即,十六个每个特征映射15×15像素的不同阵列)。从层S1到层C2的突触CB2利用4×4滤波器扫描S1中的映射,其中滤波器移位1个像素。在层C2处,存在22个12×12特征映射。在从层C2转到层S2之前,应用激活函数P2(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。在层S2处,存在22个6×6特征映射。将激活函数(池化)应用于从层S2到层C3的突触CB3,其中层C3中的每个神经元经由CB3的相应突触连接至层S2中的每个映射。在层C3处,存在64个神经元。从层C3到输出层S3的突触CB4完全将C3连接至S3,即层C3中的每个神经元都连接到层S3中的每个神经元。S3处的输出包括10个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
使用非易失性存储器单元的阵列或阵列的一部分来实现每层的突触。
图7为可用于该目的的阵列的框图。矢量-矩阵乘法(VMM)阵列32包括非易失性存储器单元,并且用作一层与下一层之间的突触(诸如图6中的CB1、CB2、CB3和CB4)。具体地,VMM阵列32包括非易失性存储器单元阵列33、擦除栅和字线栅解码器34、控制栅解码器35、位线解码器36和源极线解码器37,这些解码器对非易失性存储器单元阵列33的相应输入进行解码。对VMM阵列32的输入可来自擦除栅和字线栅解码器34或来自控制栅解码器35。在该示例中,源极线解码器37还对非易失性存储器单元阵列33的输出进行解码。另选地,位线解码器36可以解码非易失性存储器单元阵列33的输出。
非易失性存储器单元阵列33用于两个目的。首先,它存储将由VMM阵列32使用的权重。其次,非易失性存储器单元阵列33有效地将输入与存储在非易失性存储器单元阵列33中的权重相乘并且每个输出线(源极线或位线)将它们相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,非易失性存储器单元阵列33消除了对单独的乘法和加法逻辑电路的需要,并且由于其原位存储器计算其也是高功效的。
将非易失性存储器单元阵列33的输出提供至差分求和器(诸如求和运算放大器或求和电流镜)38,该差分求和器对非易失性存储器单元阵列33的输出进行求和,以为该卷积创建单个值。差分求和器38被布置用于执行正权重和负权重的求和。
然后将差分求和器38的输出值求和后提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数电路39可提供sigmoid、tanh或ReLU函数。激活函数电路39的经修正的输出值成为作为下一层(例如,图6中的层C1)的特征映射的元素,然后被应用于下一个突触以产生下一个特征映射层或最终层。因此,在该示例中,非易失性存储器单元阵列33构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和运算放大器38和激活函数电路39构成多个神经元。
图7中对VMM阵列32的输入(WLx、EGx、CGx以及任选的BLx和SLx)可为模拟电平、二进制电平或数字位(在这种情况下,提供DAC以将数字位转换成适当的输入模拟电平),并且输出可为模拟电平、二进制电平或数字位(在这种情况下,提供输出ADC以将输出模拟电平转换成数字位)。
图8为示出多层VMM阵列32(此处标记为VMM阵列32a、32b、32c、32d和32e)的使用的框图。如图8所示,通过数模转换器31将输入(表示为Inputx)从数字转换为模拟,并将其提供至输入VMM阵列32a。转换的模拟输入可以是电压或电流。第一层的输入D/A转换可通过使用将输入Inputx映射到输入VMM阵列32a的矩阵乘法器的适当模拟电平的函数或LUT(查找表)来完成。输入转换也可以由模拟至模拟(A/A)转换器完成,以将外部模拟输入转换成到输入VMM阵列32a的映射模拟输入。
由输入VMM阵列32a产生的输出被作为到下一个VMM阵列(隐藏级别1)32b的输入提供,该输入继而生成作为下一VMM阵列(隐藏级别2)32c的输入而提供的输出,以此类推。VMM阵列32的各层用作卷积神经网络(CNN)的突触和神经元的不同层。每个VMM阵列32a、32b、32c、32d和32e可以是独立的物理非易失性存储器阵列、或者多个VMM阵列可以利用相同非易失性存储器阵列的不同部分、或者多个VMM阵列可以利用相同物理非易失性存储器阵列的重叠部分。图8所示的示例包含五个层(32a、32b、32c、32d、32e):一个输入层(32a)、两个隐藏层(32b、32c)和两个完全连接的层(32d、32e)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。
矢量-矩阵乘法(VMM)阵列
图9示出了神经元VMM阵列900,其特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列900包括非易失性存储器单元的存储器阵列901和非易失性参考存储器单元的参考阵列902(在阵列的顶部)。另选地,可将另一个参考阵列置于底部。
在VMM阵列900中,控制栅线(诸如控制栅线903)在竖直方向上延伸(因此参考阵列902在行方向上与控制栅线903正交),并且擦除栅线(诸如擦除栅线904)在水平方向上延伸。此处,VMM阵列900的输入设置在控制栅线(CG0、CG1、CG2、CG3)上,并且VMM阵列900的输出出现在源极线(SL0、SL1)上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于各源极线(分别为SL0、SL1)上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
如本文针对神经网络所述,VMM阵列900的非易失性存储器单元(即VMM阵列900的闪存存储器)优选地被配置成在亚阈值区域中操作。
在弱反转中偏置本文所述的非易失性参考存储器单元和非易失性存储器单元:
Ids=Io*e(Vg-Vth)/kVt=w*Io*e(Vg)/kVt,
其中w=e(-Vth)/kVt
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流转换为输入电压的I到V对数转换器:
Vg=k*Vt*log[Ids/wp*Io]
此处,wp为参考存储器单元或外围存储器单元的w。
对于用作矢量矩阵乘法器VMM阵列的存储器阵列,输出电流为:
Iout=wa*Io*e(Vg)/kVt,即
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
此处,wa=存储器阵列中的每个存储器单元的w。
字线或控制栅可用作输入电压的存储器单元的输入。
另选地,本文所述的VMM阵列的闪存存储器单元可被配置成在线性区域中操作:
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
W=α(Vgs-Vth)
字线或控制栅极或位线或源极线可以用作在输入电压的线性区域中操作的存储器单元的输入。
对于I到V线性转换器,在线性区域工作的存储器单元(例如参考存储器单元或外围存储器单元)或晶体管可以用来将输入/输出电流线性转换成输入/输出电压。
美国专利申请第15/826,345号描述了图7的VMM阵列32的其他实施方案,该申请以引用方式并入本文。如本文所述,源极线或位线可以用作神经元输出(电流求和输出)。
图10示出了神经元VMM阵列1000,其特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的突触。VMM阵列1000包括非易失性存储器单元的存储器阵列1003、第一非易失性参考存储器单元的参考阵列1001和第二非易失性参考存储器单元的参考阵列1002。沿阵列的列方向布置的参考阵列1001和1002用于将流入端子BLR0、BLR1、BLR2和BLR3的电流输入转换为电压输入WL0、WL1、WL2和WL3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1014(仅部分示出)二极管式连接,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵(未示出)提供。
存储器阵列1003用于两个目的。首先,它将VMM阵列1000将使用的权重存储在其相应的存储器单元上。第二,存储器阵列1003有效地将输入(即,在端子BLR0、BLR1、BLR2和BLR3中提供的电流输入,参考阵列1001和1002将它们转换成输入电压以提供给字线WL0、WL1、WL2和WL3)乘以存储在存储器阵列1003中的权重,然后将所有结果(存储器单元电流)相加以在相应的位线(BL0-BLN)上产生输出,该输出将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列1003消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线(WL0、WL1、WL2和WL3)上提供,并且输出在读取(推断)操作期间出现在相应位线(BL0-BLN)上。置于位线BL0-BLN中的每个位线上的电流执行来自连接到该特定位线的所有非易失性存储器单元的电流的求和函数。
表5示出了用于VMM阵列1000的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表5:图10的VMM阵列1000的操作
WL | WL-未选 | BL | BL-未选 | SL | SL-未选 | |
读取 | 1-3.5V | -0.5V/0V | 0.6-2V(Ineuron) | 0.6V-2V/0V | 0V | 0V |
擦除 | 约5-13V | 0V | 0V | 0V | 0V | 0V |
编程 | 1-2V | -0.5V/0V | 0.1-3uA | Vinh约2.5V | 4-10V | 0-1V/FLT |
图11示出了神经元VMM阵列1100,其特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列1100包括非易失性存储器单元的存储器阵列1103、第一非易失性参考存储器单元的参考阵列1101和第二非易失性参考存储器单元的参考阵列1102。参考阵列1101和1102在VMM阵列1100的行方向上延伸。VMM阵列类似于VMM1000,不同的是在VMM阵列1100中,字线在竖直方向上延伸。这里,输入设置在字线(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,并且输出在读取操作期间出现在源极线(SL0、SL1)上。置于各源极线上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
表6示出了用于VMM阵列1100的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表6:图11的VMM阵列1100的操作
图12示出了神经元VMM阵列1200,其特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列1200包括非易失性存储器单元的存储器阵列1203、第一非易失性参考存储器单元的参考阵列1201和第二非易失性参考存储器单元的参考阵列1202。参考阵列1201和1202用于将流入端子BLR0、BLR1、BLR2和BLR3的电流输入转换为电压输入CG0、CG1、CG2和CG3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1212(仅部分示出)二极管式连接,其中电流输入通过BLR0、BLR1、BLR2和BLR3流入其中。多路复用器1212各自包括相应的多路复用器1205和级联晶体管1204,以确保在读取操作期间第一非易失性参考存储器单元和第二非易失性参考存储器单元中的每一者的位线(诸如BLR0)上的恒定电压。将参考单元调谐至目标参考电平。
存储器阵列1203用于两个目的。首先,它存储将由VMM阵列1200使用的权重。第二,存储器阵列1203有效地将输入(提供到端子BLR0、BLR1、BLR2和BLR3的电流输入,参考阵列1201和1202将这些电流输入转换成输入电压以提供给控制栅CG0、CG1、CG2和CG3)乘以存储在存储器阵列中的权重,然后将所有结果(单元电流)相加以产生输出,该输出出现在BL0-BLN并且将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,输入提供在控制栅极线(CG0、CG1、CG2和CG3)上,输出在读取操作期间出现在位线(BL0–BLN)上。置于各位线上的电流执行来自连接到该特定位线的存储器单元的所有电流的求和函数。
VMM阵列1200为存储器阵列1203中的非易失性存储器单元实现单向调谐。也就是说,每个非易失性存储器单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。这可例如使用下文所述的新型精确编程技术来执行。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅(诸如EG0或EG1)的两行需要一起擦除(其被称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷。
表7示出了用于VMM阵列1200的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表7:图12的VMM阵列1200的操作
图13示出了神经元VMM阵列1300,其特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列1300包括非易失性存储器单元的存储器阵列1303、第一非易失性参考存储器单元的参考阵列1301和第二非易失性参考存储器单元的参考阵列1302。EG线EGR0、EG0、EG1和EGR1竖直延伸,而CG线CG0、CG1、CG2和CG3以及SL线WL0、WL1、WL2和WL3水平延伸。VMM阵列1300类似于VMM阵列1400,不同的是VMM阵列1300实现双向调谐,其中每个单独的单元可以根据需要被完全擦除、部分编程和部分擦除,以由于使用单独的EG线而在浮栅上达到期望的电荷量。如图所示,参考阵列1301和1302将端子BLR0、BLR1、BLR2和BLR3中的输入电流转换成要在行方向上施加到存储器单元的控制栅电压CG0、CG1、CG2和CG3(通过经由复用器1314的二极管连接的参考单元的动作)。电流输出(神经元)在位线BL0-BLN中,其中每个位线对来自连接到该特定位线的非易失性存储器单元的所有电流求和。
表8示出了用于VMM阵列1300的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表8:图13的VMM阵列1300的操作
长短期存储器
现有技术包括被称为长短期存储器(LSTM)的概念。LSTM单元通常用于神经网络中。LSTM允许神经网络在预定的任意时间间隔内记住信息并在后续操作中使用该信息。常规的LSTM单元包括单元、输入栅、输出栅和忘记栅。三个栅调控进出单元的信息流以及信息在LSTM中被记住的时间间隔。VMM尤其可用于LSTM单元中。
图14示出了示例性LSTM1400。在该示例中,LSTM1400包括单元1401、1402、1403和1404。单元1401接收输入矢量x0并生成输出矢量h0和单元状态矢量c0。单元1402接收输入矢量x1、来自单元1401的输出矢量(隐藏状态)h0和来自单元1401的单元状态c0,并生成输出矢量h1和单元状态矢量c1。单元1403接收输入矢量x2、来自单元1402的输出矢量(隐藏状态)h1和来自单元1402的单元状态c1,并生成输出矢量h2和单元状态矢量c2。单元1404接收输入矢量x3、来自单元1403的输出矢量(隐藏状态)h2和来自单元1403的单元状态c2,并生成输出矢量h3。可使用另外的单元,并且具有四个单元的LSTM仅为示例。
图15示出了可用于图14中的单元1401、1402、1403和1404的LSTM单元1500的示例性具体实施。LSTM单元1500接收输入矢量x(t)、来自前一单元的单元状态矢量c(t-1)和来自前一单元的输出矢量h(t-1),并生成单元状态矢量c(t)和输出矢量h(t)。
LSTM单元1500包括sigmoid函数设备1501、1502和1503,每个sigmoid函数设备应用0和1之间的数字来控制允许输入矢量中的每个分量的多少通过到输出矢量。LSTM单元1500还包括用于将双曲线正切函数应用于输入矢量的tanh设备1504和1505、用于将两个矢量相乘在一起的乘法器设备1506、1507和1508、以及用于将两个矢量相加在一起的加法设备1509。输出矢量h(t)可被提供给系统中的下一个LSTM单元,或者其可被访问用于其他目的。
图16示出了LSTM单元1600,其为LSTM单元1500的具体实施的示例。为了方便读者,在LSTM单元1600中使用与LSTM单元1500相同的编号。Sigmoid函数设备1501、1502和1503以及tanh设备1504各自包括多个VMM阵列1601和激活电路块区1602。因此,可以看出,VMM阵列在某些神经网络系统中使用的LSTM单元中特别有用。
LSTM单元1600的替代形式(以及LSTM单元1500的具体实施的另一个示例)在图17中示出。在图17中,sigmoid函数设备1501、1502和1503以及tanh设备1504以时分复用方式共享相同的物理硬件(VMM阵列1701和激活函数区块1702)。LSTM单元1700还包括将两个矢量相乘在一起的乘法器设备1703,将两个矢量相加在一起的加法设备1708,tanh设备1505(其包括激活电路区块1702),当从sigmoid函数区块1702输出值i(t)时存储值i(t)的寄存器1707,当值f(t)*c(t-1)通过多路复用器1710从乘法器设备1703输出时存储值f(t)*c(t-1)的寄存器1704,当值i(t)*u(t)通过多路复用器1710从乘法器设备1703输出时存储值i(t)*u(t)的寄存器1705,当值o(t)*c~(t)通过多路复用器1710从乘法器设备1703输出时存储值o(t)*c~(t)的寄存器1706,和多路复用器1709。
LSTM单元1600包含多组VMM阵列1601和相应的激活函数区块1602,而LSTM单元1700仅包含一组VMM阵列1701和激活函数区块1702,它们用于表示LSTM单元1700的实施方案中的多个层。LSTM单元1700将需要的空间比LSTM1600更小,因为与LSTM单元1600相比,LSTM单元1700只需要其1/4的空间用于VMM和激活函数区块。
还可理解,LSTM单元通常将包括多个VMM阵列,每个VMM阵列需要由VMM阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个VMM阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。因此,下文所述的实施方案试图最小化VMM阵列本身之外所需的电路。
栅控递归单元
模拟VMM具体实施可用于栅控递归单元(GRU)系统。GRU是递归神经网络中的栅控机构。GRU类似于LSTM,不同的是GRU单元一般包含比LSTM单元更少的部件。
图18示出了示例性GRU1800。该示例中的GRU1800包括单元1801、1802、1803和1804。单元1801接收输入矢量x0并生成输出矢量h0。单元1802接收输入矢量x1、来自单元1801的输出矢量h0并生成输出矢量h1。单元1803接收输入矢量x2和来自单元1802的输出矢量(隐藏状态)h1,并生成输出矢量h2。单元1804接收输入矢量x3和来自单元1803的输出矢量(隐藏状态)h2,并生成输出矢量h3。可以使用另外的单元,并且具有四个单元的GRU仅仅是示例。
图19示出了可用于图18的单元1801、1802、1803和1804的GRU单元1900的示例性具体实施。GRU单元1900接收输入矢量x(t)和来自前一个GRU单元的输出矢量h(t-1),并生成输出矢量h(t)。GRU单元1900包括sigmoid函数设备1901和1902,每个设备将介于0和1之间的数应用于来自输出矢量h(t-1)和输入矢量x(t)的分量。GRU单元1900还包括用于将双曲线正切函数应用于输入矢量的tanh设备1903、用于将两个矢量相乘在一起的多个乘法器设备1904、1905和1906、用于将两个矢量相加在一起的加法设备1907,以及用于从1中减去输入以生成输出的互补设备1908。
图20示出了GRU单元2000,其为GRU单元1900的具体实施的示例。为了方便读者,GRU单元2000中使用与GRU单元1900相同的编号。如在图20中可见,sigmoid函数设备1901和1902以及tanh设备1903各自包括多个VMM阵列2001和激活函数区块2002。因此,可以看出,VMM阵列在某些神经网络系统中使用的GRU单元中特别有用。
GRU单元2000的替代形式(以及GRU单元1900的具体实施的另一个示例)在图21中示出。在图21中,GRU单元2100利用VMM阵列2101和激活函数块2102,激活函数块2102在被配置成sigmoid函数时,应用0至1之间的数字来控制允许输入矢量中的每个分量有多少通过到输出矢量。在图21中,sigmoid函数设备1901和1902以及tanh设备1903以时分复用方式共享相同的物理硬件(VMM阵列2101和激活函数区块2102)。GRU单元2100还包括将两个矢量相乘在一起的乘法器设备2103,将两个矢量相加在一起的加法设备2105,从1减去输入以生成输出的互补设备2109,复用器2104,当值h(t-1)*r(t)通过多路复用器2104从乘法器设备2103输出时保持值h(t-1)*r(t)的寄存器2106,当值h(t-1)*z(t)通过多路复用器2104从乘法器设备2103输出时保持值h(t-1)*z(t)的寄存器2107,和当值h^(t)*(1-z(t))通过多路复用器2104从乘法器设备2103输出时保持值h^(t)*(1-z(t))的寄存器2108。
GRU单元2000包含多组VMM阵列2001和激活函数块2002,而GRU单元2100仅包含一组VMM阵列2101和激活函数块2102,它们用于表示GRU单元2100的实施方案中的多个层。GRU单元2100将需要的空间比GRU单元2000更小,因为与GRU单元2000相比,GRU单元2100只需要其1/3的空间用于VMM和激活函数区块。
还可以理解的是,GRU系统通常将包括多个VMM阵列,每个VMM阵列需要由VMM阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个VMM阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。因此,下文所述的实施方案试图最小化VMM阵列本身之外所需的电路。
VMM阵列的输入可为模拟电平、二进制电平或数字位(在这种情况下,需要DAC来将数字位转换成适当的输入模拟电平),并且输出可为模拟电平、二进制电平或数字位(在这种情况下,需要输出ADC来将输出模拟电平转换成数字位)。
对于VMM阵列中的每个存储器单元,每个权重w可由单个存储器单元或由差分单元或由两个混合存储器单元(2个单元的平均值)来实现。在差分单元的情况下,需要两个存储器单元来实现权重w作为差分权重(w=w+–w-)。在两个混合存储器单元中,需要两个存储器单元来实现权重w作为两个单元的平均值。
设备的操作温度和电流-电压特性
图22描绘了示出示例性晶体管或存储器单元的三条示例性电流-电压特性曲线的曲线图。应当理解,图22所示的现象示出了闪存存储器系统中的典型参考晶体管、参考存储器单元和选择的存储器单元的行为。每条曲线示出了通过设备的电流Ids如何随着栅极与源极之间的电压Vgs变化而变化。每条曲线代表某一操作温度处设备的电流-电压特性。因此,可以看出,随着设备的操作温度变化,相同Vgs值的对应Ids值变化。随着温度变化的设备特性的这种变化是有问题的,因为与正常闪存存储器系统相比,模拟神经形态存储器系统需要增加的精度和准确性。
本文所述的实施方案通过为设备的电流-电压特性曲线、绝对缩放(归一化)和泄漏减少提供(离散的或连续的)斜率补偿来补偿设备的操作温度变化时设备的行为变化。
图23示出了施加到设备的电流-电压特性以补偿温度变化的斜率补偿的示例。应当理解,同一设备在不同温度处将具有不同的亚阈值电流-电压特性曲线。
更一般地讲,应当理解,通过引入随温度变化的变量a,可基于以下公式将斜率补偿应用于设备:
Ids=Ids0*exp(a*Vgs1–Vt)/(k*Vt),其中Vt为热电压。
图24A和图24B示出了离散温度补偿。图24A示出了随温度变化的a的示例性值。可以看出,随着温度升高,a会以离散步长增加。另选地,诸如对于在线性或饱和区域中工作的存储器单元,等效缩放常数将相对于温度以离散步长减小。图24B示出了示例性温度补偿块2400。温度传感器2401测量设备的温度。然后将温度传感器2401的输出提供给控制器2402(其可以是离散逻辑或运行软件的微控制器),该控制器生成控制位2403a、...、2403i,其中范围a至i表示k的离散位准的示例性数量。应当理解,可使用较大范围或较小范围。控制位2403中的每一者在分配给该控制位的某个温度范围期间生效。因此,随着温度升高,不同控制位2403将在达到每个温度离散位准时生效。然后将控制位2403施加到开关2405(其也编号为从2405a至2405i)。每个开关2405在闭合时将电流源2404(编号也为从2404a至2404i)施加到电阻器2406的一端。此处,每个电流源2404生成与由开关在先前温度范围内激活的电流源2404不同量的电流。因此,该节点处的电压Vtc随着温度升高而变化。Vtc是温度补偿偏置电压,其可施加到晶体管的栅极、图2所示类型的存储器单元(存储器单元210)的字线、图3所示类型的存储器单元(存储器单元310)的控制栅、图4所示类型的存储器单元(存储器单元410)的源极栅、或图5所示类型的存储器单元(存储器单元510)的控制栅。通过以这种方式添加Vtc,设备的电压特性曲线将被修改,因为每个栅极电压值基本上将移位量Vtc。
图25示出了温度补偿块2500。温度补偿块2500包括:运算放大器2501和2505;可调节电阻器块2506;温度传感器2401和控制器2502。可调节电阻器块2506包括各自耦接到开关2508a至2508n中的一者的电阻器2507a至2507n。
如图24所示,温度传感器2401测量设备的温度。然后将温度传感器2401的输出提供给控制器2502(其可以是离散逻辑或运行软件的微控制器),该控制器生成控制位2509a至2509n,其中范围a至n表示a的离散位准的示例性数量。应当理解,可以使用更大范围或更小范围。根据由温度传感器2301感测的温度来使控制位2509a至2509n中的不同控制位生效。然后将控制位2509施加到开关2508(其也编号为从2508a至2508n)。每个开关2508在闭合时将相应电阻器2507(其也编号为从2507a至2507n)作为反馈电阻器施加到运算放大器2505。因此,运算放大器2505的输出电压Vgs_tc随着温度升高而增加。
Vgs_tc是温度补偿偏置电压,其可施加到晶体管的栅极、图2/3/4所示类型的存储器单元(存储器单元210/310/410)的字线、图3/5所示类型的存储器单元(存储器单元310/510)的控制栅、图2/3/4/5所示类型的存储器单元(存储器单元210/310/410/510)的源极栅、或图3/5所示类型的存储器单元(存储器单元310/510)的控制栅。通过以这种方式修改Vgs_tc,设备的电压特性曲线将被修改,因为每个Vgs值基本上将移位量Vgs_tc。
图26A和图26B示出了用于通过添加补偿电流itcpn(正温度补偿电流的itcp、负温度补偿电流的itcn)来调节设备的电流-电压特性曲线的实施方案。图26A示出了在每种类型的设备的温度变化时互补设备的三条(可超过三条)示例性曲线。通过注入补偿电流itcpn,可以修改设备的电流-电压特性曲线的斜率。
图26B示出了温度补偿块2600的实施方案。温度补偿块2600包括控制器2605(其可以是逻辑或运行软件的微控制器)和测量设备的温度的温度传感器2401。控制器2605生成一个或多个控制信号2606。
温度补偿块2600还包括可调节电流源2601Itcp和2602Itcn,它们一起生成由电流源2603表示的电流,该电流源提供补偿电流itcpn。可调节电流源2601和2602由控制信号2606调节。随着设备的温度变化,可调节电流源2601和2602中的一者或两者可由控制信号2606调节,以改变所提供的补偿电流itcpn的量。将电流itcpn施加到电阻器2604,从而在电流源2603和电阻器2604之间的节点处产生电压Vtc。
Vtc是温度补偿偏置电压,其可施加到晶体管的栅极、图2/3/4/5所示类型的存储器单元(存储器单元210/310/410/510)的字线、图3/5所示类型的存储器单元(存储器单元310/510)的控制栅、图2/3/4/5所示类型的存储器单元(存储器单元210/310/410/510)的源极栅、或图3/4所示类型的存储器单元(存储器单元310/410)的擦除栅。通过以这种方式添加Vtc,设备的电压特性曲线将被修改,因为每个Vgs值基本上将移位量Vtc。
图27A和图27B示出了用于通过在设备的控制栅上添加由电流itcpn生成的偏置电压来调节设备的电流-电压特性曲线的实施方案。图27A示出了必要的控制栅电压Vcg的三条示例性曲线,该控制栅电压需要随着设备的操作温度升高而施加到控制栅以执行特定操作。
图27B示出了温度补偿块2700的实施方案。温度补偿块2700包括控制器2705(其可以是逻辑或运行软件的微控制器)和测量设备的温度的温度传感器2401。控制器2705生成一个或多个控制信号2706。
温度补偿块2700还包括可调节电阻器2702和生成补偿电流ipcn的可调节电流源2701。可调节电流源2701和可调节电阻器2702由控制信号2706调节。在可调节电流源2701和可调节电阻器2702之间的节点处生成电压Vtc。
Vtc是温度补偿偏置电压,其可以施加到图3所示类型的存储器单元(存储器单元310)的控制栅或图5所示类型的存储器单元(存储器单元510)的控制栅。通过以这种方式添加Vtc,设备的电压特性曲线将被修改,因为每个Vgs值基本上将移位量Vtc。
图28A和图28B示出了用于通过在设备的擦除栅上添加由电流itcpn生成的偏置电压来调节该设备的电流-电压特性曲线的实施方案。图28A示出了必要的控制栅电压Veg的三条示例性曲线,该控制栅电压需要随着设备的操作温度升高而施加到擦除栅以执行特定操作。
图28B示出了多个特性曲线,其中每个曲线示出了每个Veg值执行阵列读取(矢量矩阵乘法器)操作所需的Veg,并且每个曲线表示设备在某个温度或温度范围内的特性。
图28C示出了温度补偿块2800的实施方案。温度补偿块2800包括控制器2805(其可以是逻辑或运行软件的微控制器)和测量设备的温度的温度传感器2401。控制器2805生成一个或多个控制信号2806。
温度补偿块2800包括可调节电阻器2802和生成补偿电流itcpn的可调节电流源2801。随着设备的温度变化,可调节电流源2801和可调节电流电阻器2802由控制信号2806调节。在电流源2803与电阻器2804之间的节点处生成电压Vtc。
Vtc是温度补偿偏置电压,其可以施加到图3所示类型的存储器单元(存储器单元310)的擦除栅或图4所示类型的存储器单元(存储器单元410)的擦除栅。通过以这种方式添加Vtc,设备的电压特性曲线将被修改,因为每个Vgs值基本上将移位量Vtc。
图29A和图29B示出了用于通过在设备的源极线端子上添加由电流itcpn生成的偏置电压来调节该设备的电流-电压特性曲线的实施方案。图29A示出了执行特定操作所需的随着温度升高的必要源极线端子电压的三条示例性曲线。
图29B示出了温度补偿块2900的实施方案。温度补偿块2900包括控制器2905(其可以是逻辑或运行软件的微控制器)和测量设备的温度的温度传感器2401。控制器2905生成一个或多个控制信号2906。
温度补偿块2900还包括可调节电阻器2902和生成补偿电流itcpn的可调节电流源2901。随着设备的温度变化,可调节电流源2901和可调节电阻器2902可由控制信号2906调节,以改变施加到设备的控制栅的负偏置的量。在电流源2901和电阻器2902之间的节点处生成电压Vtc。
Vtc是温度补偿偏置电压,其可施加到图2所示类型的存储器单元(存储器单元210)的源极线端子、图3所示类型的存储器单元(存储器单元310)的源极线端子、图4所示类型的存储器单元(存储器单元410)的源极线端子、或图4所示类型的存储器单元(存储器单元410)的擦除栅、或图5所示类型的存储器单元(存储器单元510)的源极线端子。通过以这种方式添加Vtc,设备的电压特性曲线将被修改,因为每个Vgs值基本上将移位量Vtc。
还可以理解,对于不同设备和处于不同配置的类似设备,电流-电压特性曲线的差异将存在。
图30示出了具有特定配置的示例性参考晶体管3000。
图31示出了具有另一种配置(字线耦接到位线)的示例性参考存储器单元3100。
图32示出了具有另一种配置(浮栅FG耦接到位线)的另一个示例性参考存储器单元3200。应当理解,这些装置中的每个装置可具有不同的电流-电压特性曲线。
本文所述的实施方案补偿参考晶体管、参考存储器单元和/或选择的存储器单元的电流-电压特性曲线的斜率差异。
在具有不同亚阈值电流-电压特性曲线的两个装置的系统中,通过第一装置的漏极-源极电流将是:
Ids1=Ids0*exp(Vgs1–Vt)/k1*Ut
通过第二装置的漏极-源极电流将是:
Ids2=Ids0*exp(Vgs2–Vt)/k2*Ut
可以看出,在每种情况下,斜率将与~1/k成比例。
在下述实施方案中的一些实施方案中,通过使用第一装置上的以下条件的栅极-源极电压来实施斜率归一化:
Vgs1=a*Vgs2
这将意味着Ids1和Ids在斜率归一化之后将具有相同的斜率。
这在图33中以图形方式示出,将Vgs1=a*Vgs2的电压施加到设备1,这使得第一设备的电流-电压特性曲线的斜率近似于第二设备的电流-电压特性曲线的斜率。
现在将描述用于在不同设备之间执行斜率归一化的实施方案。
图34示出了斜率归一化系统3400,其包括参考晶体管3401、选择的存储器单元3402、栅极驱动器3403和绝对归一化器电路3404。栅极驱动器3403接收输入电压Vgs,并且将该输入电压乘以a以生成输出电压Vgsint,该输出电压被施加到参考晶体管3401的栅极。绝对归一化器电路3404可为可修剪的电流镜(用于调节来自参考晶体管3401的电流与来自存储器单元3402的输出电流之间的比率的电流镜电路),其中修剪过程可调节由参考晶体管或阵列晶体管或者由I-V斜率失配引起的差异。选择的存储器单元3402是存储器单元阵列中的存储器单元中的一个存储器单元。
图35示出了斜率归一化系统3500,其包括参考晶体管3501、选择的存储器单元3502以及驱动器3503。驱动器3503接收电压Vgs并将其乘以a,从而得到输出电压Vgs’。因此,参考晶体管3501和选择的存储器单元3502将接收不同的电压,其中该差异导致斜率的差异。
图38示出了利用查找表3801来补偿由于操作温度的变化引起的设备的电流-电压特性曲线3800的变化的实施方案。这些设备可包括晶体管、参考存储器单元和选择的存储器单元。在该实施方案中,曲线3800的数据存储在查找表3801中,并且在操作期间,由查找表3801而不是通过数学公式来确定k。查找表3801可针对各种操作温度处的每个输入电压包含不同的所需输出电流。该数据可在制造或测试过程期间填充在查找表3801中。
实施方案还可提供渗漏减少。具体地讲,可以通过向控制栅端子施加负电压(诸如-0.1V至-0.4V之间的电压),向字线端子施加负电压(诸如-0.1V和-0.4V之间的电压),向擦除栅端子施加负电压(诸如在-0.1V和-0.4V之间的电压),在较高温度处在位线上施加减小电压,在较高温度处在体端子(衬底)上施加减小电压,或者通过在源极线端子上施加偏置电压来减少晶体管或存储器单元的泄漏。
图36提供了通过向设备的控制栅端子施加电压来减少泄漏电流的例证。在该实施方案中,控制栅偏置电压被选择为使得I-lk=n*I-min/行数。如果是阵列包括256行×512列的示例,则情况将是256*I-lkg<I-min。例如,I-min可为约500pA,并且Ilkg可为约2pA。这意味着控制栅偏置电压将为约大于2V。
在用于温度补偿的另一个实施方案中,通过升高浮栅阈值电压VtFG来施加反向衬底电压(例如,负电压)或偏置源极线电压以扩展亚阈值工作电压范围。
图37示出了适用于在线性区域中操作的存储器单元的阵列架构。系统3700包括输入块3701、输出块3702和存储器单元的阵列3703。输入块3701耦接到阵列3703中的存储器单元的漏极(源极线),并且输出块3702耦接到阵列3703中的存储器单元的位线。另选地,输入块3701耦接到阵列3703中的存储器单元的字线,并且输出块3702耦接到阵列3703中的存储器单元的位线。
在系统3700用于实现LSTM或GRU的情况下,输出块3702和/或输入块3701可根据需要包括用于LSTM/GRU架构的乘法器块、加法块、减法(输出=1-输入)块,并且任选地可根据需要包括模拟采样保持电路或数字采样保持电路(例如,寄存器或SRAM)。
应当指出,如本文所用,术语“在…上方”和“在…上”两者包容地包含“直接在…上”(之间未设置中间材料、元件或空间)和“间接在…上”(之间设置有中间材料、元件或空间)。类似地,术语“相邻”包括“直接相邻”(之间没有设置中间材料、元件或空间)和“间接相邻”(之间设置有中间材料、元件或空间),“安装到”包括“直接安装到”(之间没有设置中间材料、元件或空间)和“间接安装到”(之间设置有中间材料、元件或空间),并且“电耦接至”包括“直接电耦接至”(之间没有将元件电连接在一起的中间材料或元件)和“间接电耦接至”(之间有将元件电连接在一起的中间材料或元件)。例如,“在衬底上方”形成元件可包括在两者间没有中间材料/元件的情况下在衬底上直接形成元件,以及在两者间有一个或多个中间材料/元件的情况下在衬底上间接形成元件。
Claims (42)
1.一种模拟神经形态存储器系统,包括:
矢量-矩阵乘法阵列,所述矢量-矩阵乘法阵列包括存储器单元阵列;和
温度补偿块,所述温度补偿块用于随着所述存储器单元阵列中的存储器单元的操作温度变化以连续方式修改所述存储器单元的电流-电压特性曲线的斜率,所述温度补偿块包括:
温度传感器,所述温度传感器用于生成指示所述操作温度的输出;
控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制信号;
一个或多个可调节设备,所述一个或多个可调节设备用于响应于所述一个或多个控制信号而生成温度补偿电压。
2.根据权利要求1所述的系统,其中通过所述存储器单元实现所述矢量-矩阵乘法阵列中的权重。
3.根据权利要求1所述的系统,其中通过差分单元实现所述矢量-矩阵乘法阵列中的权重。
4.根据权利要求1所述的系统,其中通过一对混合存储器单元实现所述矢量-矩阵乘法阵列中的权重。
5.根据权利要求1所述的系统,其中所述存储器单元阵列中的所述存储器单元中的每个存储器单元是闪存存储器单元,并且所述一个或多个可调节设备包括一个或多个可调节电流源,所述一个或多个可调节电流源中的每个可调节电流源由所述一个或多个控制信号中的一个控制信号调节并且耦接到电阻器,并且其中所述温度补偿电压在所述一个或多个可调节电流源与所述电阻器之间的节点处生成,并且被施加到所述闪存存储器单元以修改所述闪存存储器单元的所述电流-电压特性曲线的斜率。
6.根据权利要求5所述的系统,其中将所述温度补偿电压施加到所述闪存存储器单元的控制栅端子。
7.根据权利要求5所述的系统,其中将所述温度补偿电压施加到所述闪存存储器单元的擦除栅端子。
8.根据权利要求5所述的系统,其中将所述温度补偿电压施加到所述闪存存储器单元的源极线端子。
9.根据权利要求5所述的系统,其中将所述温度补偿电压施加到所述闪存存储器单元的位线端子。
10.根据权利要求5所述的系统,其中所述闪存存储器单元是分裂栅闪存存储器单元。
11.根据权利要求5所述的系统,其中所述闪存存储器单元是叠栅闪存存储器单元。
12.根据权利要求1所述的系统,还包括:
泄漏减少块,所述泄漏减少块用于随着所述存储器单元阵列中的所述存储器单元的操作温度变化而修改施加到所述存储器单元的端子的偏置电压,以减少泄漏。
13.一种模拟神经形态存储器系统,包括:
矢量-矩阵乘法系统,所述矢量-矩阵乘法系统包括存储器单元阵列;和
温度补偿块,所述温度补偿块用于随着所述存储器单元阵列中的存储器单元的操作温度水平变化以离散方式修改所述存储器单元的电流-电压特性曲线,其中所述存储器单元阵列中的所述存储器单元中的每个存储器单元是闪存存储器单元,并且其中所述温度补偿块包括:
温度传感器,所述温度传感器用于生成指示所述操作温度的输出;
控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制位;和
多个电流源,每个电流源通过开关选择性地耦接到电阻器,每个开关由所述控制位中的一个控制位控制;
其中将在所述电阻器的一端处生成的电压施加到所述闪存存储器单元,以修改所述闪存存储器单元的所述电流-电压特性曲线的斜率。
14.一种模拟神经形态存储器系统,包括:
矢量-矩阵乘法系统,所述矢量-矩阵乘法系统包括存储器单元阵列;和
温度补偿块,所述温度补偿块用于随着所述存储器单元阵列中的存储器单元的操作温度水平变化以离散方式修改所述存储器单元的电流-电压特性曲线,其中所述温度补偿块包括:
温度传感器,所述温度传感器用于生成指示所述操作温度的输出;
控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制位;和
放大器电路,所述放大器电路包括多个电阻器,每个电阻器通过开关选择性地耦接到所述放大器,每个开关由所述控制位中的一个控制位控制;
其中将在所述放大器的输出处生成的电压施加到所述存储器单元,以修改所述存储器单元的所述电流-电压特性曲线的斜率。
15.根据权利要求13或14所述的系统,其中通过所述存储器单元实现所述矢量-矩阵乘法系统中的权重。
16.根据权利要求13或14所述的系统,其中通过差分单元实现所述矢量-矩阵乘法系统中的权重。
17.根据权利要求13或14所述的系统,其中通过混合存储器单元实现所述矢量-矩阵乘法系统中的权重。
18.根据权利要求13或14所述的系统,其中所述修改包括修改闪存存储器单元的电流-电压特性曲线的斜率。
19.根据权利要求13或14所述的系统,其中所述存储器单元是分裂栅闪存存储器单元。
20.根据权利要求13或14所述的系统,其中所述存储器单元是叠栅闪存存储器单元。
21.根据权利要求13或14所述的系统,还包括:
泄漏减少块,所述泄漏减少块用于随着所述存储器单元阵列中的所述存储器单元的所述操作温度变化而修改施加到所述存储器单元的端子的偏置电压,以减少泄漏。
22.一种在模拟神经形态存储器系统中执行温度补偿的方法,所述模拟神经形态存储器系统包括多个矢量-矩阵乘法阵列,每个矢量-矩阵乘法阵列包括存储器单元阵列,所述方法包括:
随着所述存储器单元阵列中的存储器单元的操作温度变化,由温度补偿块以连续方式修改所述存储器单元的电流-电压特性曲线的斜率,所述温度补偿块包括:温度传感器,所述温度传感器用于生成指示所述操作温度的输出;控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制信号;和一个或多个可调节设备,所述一个或多个可调节设备用于响应于所述一个或多个控制信号而生成温度补偿电压。
23.根据权利要求22所述的方法,其中通过所述存储器单元实现所述矢量-矩阵乘法阵列中的权重。
24.根据权利要求22所述的方法,其中通过差分单元实现所述矢量-矩阵乘法阵列中的权重。
25.根据权利要求22所述的方法,其中通过一对混合存储器单元实现所述矢量-矩阵乘法阵列中的权重。
26.根据权利要求22所述的方法,其中所述存储器单元阵列中的所述存储器单元中的每个存储器单元是闪存存储器单元,并且所述一个或多个可调节设备包括一个或多个可调节电流源,所述一个或多个可调节电流源中的每个可调节电流源由所述一个或多个控制信号中的一个控制信号调节并且耦接到电阻器,并且其中所述温度补偿电压在所述一个或多个可调节电流源与所述电阻器之间的节点处生成,并且被施加到所述闪存存储器单元以修改所述闪存存储器单元的所述电流-电压特性曲线的斜率。
27.根据权利要求26所述的方法,其中将所述温度补偿电压施加到所述闪存存储器单元的控制栅端子。
28.根据权利要求26所述的方法,其中将所述温度补偿电压施加到所述闪存存储器单元的擦除栅端子。
29.根据权利要求26所述的方法,其中将所述温度补偿电压施加到所述闪存存储器单元的源极线端子。
30.根据权利要求26所述的方法,其中将所述温度补偿电压施加到所述闪存存储器单元的位线端子。
31.根据权利要求26所述的方法,其中所述闪存存储器单元是分裂栅闪存存储器单元。
32.根据权利要求26所述的方法,其中所述闪存存储器单元是叠栅闪存存储器单元。
33.根据权利要求22所述的方法,还包括:
随着所述存储器单元阵列中的所述存储器单元的所述操作温度变化而修改施加到所述存储器单元的端子的偏置电压,以减少泄漏。
34.一种在模拟神经形态存储器系统中执行温度补偿的方法,所述模拟神经形态存储器系统包括多个矢量-矩阵乘法系统,每个矢量-矩阵乘法系统包括存储器单元阵列,所述方法包括:
随着所述存储器单元阵列中的存储器单元的操作温度水平变化,由温度补偿块以离散方式修改所述存储器单元的电流-电压特性曲线,
其中所述存储器单元阵列中的所述存储器单元中的每个存储器单元是闪存存储器单元,并且其中所述温度补偿块包括:温度传感器,所述温度传感器用于生成指示所述操作温度的输出;控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制位;和多个电流源,每个电流源通过开关选择性地耦接到电阻器,每个开关由所述控制位中的一个控制位控制,其中将在所述电阻器的一端处生成的电压施加到所述闪存存储器单元以修改所述闪存存储器单元的所述电流-电压特性曲线的斜率。
35.一种在模拟神经形态存储器系统中执行温度补偿的方法,所述模拟神经形态存储器系统包括多个矢量-矩阵乘法系统,每个矢量-矩阵乘法系统包括存储器单元阵列,所述方法包括:
随着所述存储器单元阵列中的存储器单元的操作温度水平变化,由温度补偿块以离散方式修改所述存储器单元的电流-电压特性曲线,
其中所述温度补偿块包括:温度传感器,所述温度传感器用于生成指示所述操作温度的输出;控制器,所述控制器用于响应于所述温度传感器的所述输出而生成一个或多个控制位;和放大器电路,所述放大器电路包括多个电阻器,每个电阻器通过开关选择性地耦接到所述放大器,每个开关由所述控制位中的一个控制位控制,其中将在所述放大器的输出处生成的电压施加到所述存储器单元,以修改所述存储器单元的所述电流-电压特性曲线的斜率。
36.根据权利要求34或35所述的方法,其中通过所述存储器单元实现所述矢量-矩阵乘法系统中的权重。
37.根据权利要求34或35所述的方法,其中通过差分单元实现所述矢量-矩阵乘法系统中的权重。
38.根据权利要求34或35所述的方法,其中通过混合存储器单元实现所述矢量-矩阵乘法系统中的权重。
39.根据权利要求34或35所述的方法,其中所述修改包括修改闪存存储器单元的电流-电压特性曲线的斜率。
40.根据权利要求34或35所述的方法,其中所述存储器单元是分裂栅闪存存储器单元。
41.根据权利要求34或35所述的方法,其中所述存储器单元是叠栅闪存存储器单元。
42.根据权利要求34或35所述的方法,还包括:
泄漏减少块,所述泄漏减少块用于随着所述存储器单元阵列中的所述存储器单元的所述操作温度变化而修改施加到所述存储器单元的端子的偏置电压,以减少泄漏。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862723398P | 2018-08-27 | 2018-08-27 | |
US62/723,398 | 2018-08-27 | ||
US16/183,250 | 2018-11-07 | ||
US16/183,250 US10755783B2 (en) | 2018-08-27 | 2018-11-07 | Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network |
PCT/US2019/043101 WO2020046495A1 (en) | 2018-08-27 | 2019-07-23 | Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112602095A CN112602095A (zh) | 2021-04-02 |
CN112602095B true CN112602095B (zh) | 2022-05-27 |
Family
ID=69586480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980055114.7A Active CN112602095B (zh) | 2018-08-27 | 2019-07-23 | 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10755783B2 (zh) |
EP (2) | EP4138079A1 (zh) |
JP (1) | JP7281535B2 (zh) |
KR (1) | KR102457394B1 (zh) |
CN (1) | CN112602095B (zh) |
TW (1) | TWI754162B (zh) |
WO (1) | WO2020046495A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10755783B2 (en) * | 2018-08-27 | 2020-08-25 | Silicon Storage Technology | Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network |
US11513797B2 (en) * | 2018-09-12 | 2022-11-29 | Mentium Technologies Inc. | Systems and methods for analog vector by matrix multiplier |
JP7196803B2 (ja) * | 2018-10-18 | 2022-12-27 | 株式会社デンソー | 人工ニューラルネットワーク回路及び人工ニューラルネットワーク回路における学習値切替方法 |
US11507641B2 (en) * | 2019-05-31 | 2022-11-22 | Advanced Micro Devices, Inc. | Temperature-based adjustments for in-memory matrix multiplication |
US11074976B2 (en) * | 2019-08-26 | 2021-07-27 | Sandisk Technologies Llc | Temperature dependent impedance mitigation in non-volatile memory |
US11875852B2 (en) * | 2020-07-06 | 2024-01-16 | Silicon Storage Technology, Inc. | Adaptive bias decoder to provide a voltage to a control gate line in an analog neural memory array in artificial neural network |
US11809838B2 (en) | 2020-09-08 | 2023-11-07 | Macronix International Co., Ltd. | Memory device and operation method thereof |
US20220075600A1 (en) * | 2020-09-08 | 2022-03-10 | Macronix International Co., Ltd. | Memory device and operation method thereof |
US11630002B2 (en) * | 2021-02-08 | 2023-04-18 | Macronix International Co., Ltd. | Method for sensing temperature in memory die, memory die and memory with temperature sensing function |
KR102553403B1 (ko) * | 2021-02-23 | 2023-07-11 | 한국과학기술원 | 우수한 선형성 특성을 갖는 뉴로모픽 시냅스 소자 및 그 동작 방법 |
US11380373B1 (en) * | 2021-05-12 | 2022-07-05 | Globalfoundries U.S. Inc. | Memory with read circuit for current-to-voltage slope characteristic-based sensing and method |
US11716089B1 (en) * | 2022-03-16 | 2023-08-01 | Xilinx, Inc. | Delay-tracking biasing for voltage-to-time conversion |
US11955193B1 (en) * | 2023-12-05 | 2024-04-09 | Aspinity, Inc. | Compute-in-memory array multi-range temperature compensation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359499B1 (en) * | 2000-06-23 | 2002-03-19 | Marvell International Ltd. | Temperature and process independent CMOS circuit |
CN102684683A (zh) * | 2012-05-14 | 2012-09-19 | 常熟银海集成电路有限公司 | 任意项全系数高精度温度补偿晶体振荡器 |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3668440A (en) | 1970-10-16 | 1972-06-06 | Motorola Inc | Temperature stable monolithic multiplier circuit |
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
US6560152B1 (en) * | 2001-11-02 | 2003-05-06 | Sandisk Corporation | Non-volatile memory with temperature-compensated data read |
US6747310B2 (en) | 2002-10-07 | 2004-06-08 | Actrans System Inc. | Flash memory cells with separated self-aligned select and erase gates, and process of fabrication |
JP2007059024A (ja) | 2005-08-26 | 2007-03-08 | Micron Technol Inc | 温度補償された読み出し・検証動作をフラッシュ・メモリにおいて生成するための方法及び装置 |
JP2007164960A (ja) * | 2005-11-15 | 2007-06-28 | Nec Electronics Corp | 半導体集積回路装置 |
US8102201B2 (en) * | 2006-09-25 | 2012-01-24 | Analog Devices, Inc. | Reference circuit and method for providing a reference |
ITRM20060652A1 (it) * | 2006-12-06 | 2008-06-07 | Micron Technology Inc | Compensazione di temperatura di segnali di memoria impiegando segnali digitali |
US7889575B2 (en) * | 2008-09-22 | 2011-02-15 | Sandisk Corporation | On-chip bias voltage temperature coefficient self-calibration mechanism |
KR101868332B1 (ko) * | 2010-11-25 | 2018-06-20 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것을 포함한 데이터 저장 장치 |
US8873316B2 (en) * | 2012-07-25 | 2014-10-28 | Freescale Semiconductor, Inc. | Methods and systems for adjusting NVM cell bias conditions based upon operating temperature to reduce performance degradation |
KR102215204B1 (ko) * | 2013-11-29 | 2021-02-16 | 삼성디스플레이 주식회사 | 표시 장치, 그 보상 데이터 산출 방법 및 그 구동 방법 |
US9330790B2 (en) * | 2014-04-25 | 2016-05-03 | Seagate Technology Llc | Temperature tracking to manage threshold voltages in a memory |
DE102015112276B3 (de) * | 2015-07-28 | 2016-06-30 | Océ Printing Systems GmbH & Co. KG | Verfahren und Vorrichtung zur Verbesserung des Tonertransfers in einem elektrographischen Digitaldrucker |
US9899450B2 (en) * | 2015-09-15 | 2018-02-20 | The Regents Of The University Of California | Memristors and method for fabricating memristors |
US10564900B2 (en) * | 2016-03-04 | 2020-02-18 | Western Digital Technologies, Inc. | Temperature variation compensation |
US10269440B2 (en) * | 2016-05-17 | 2019-04-23 | Silicon Storage Technology, Inc. | Flash memory array with individual memory cell read, program and erase |
WO2017200883A1 (en) * | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Deep learning neural network classifier using non-volatile memory array |
JPWO2018150295A1 (ja) | 2017-02-15 | 2019-12-12 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US10748630B2 (en) | 2017-11-29 | 2020-08-18 | Silicon Storage Technology, Inc. | High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks |
US11443175B2 (en) | 2018-07-11 | 2022-09-13 | Silicon Storage Technology, Inc. | Compensation for reference transistors and memory cells in analog neuro memory in deep learning artificial neural network |
US10528643B1 (en) * | 2018-08-01 | 2020-01-07 | Sandisk Technologies Llc | Vector-matrix multiplication using non-volatile memory cells |
US10755783B2 (en) * | 2018-08-27 | 2020-08-25 | Silicon Storage Technology | Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network |
-
2018
- 2018-11-07 US US16/183,250 patent/US10755783B2/en active Active
-
2019
- 2019-07-23 CN CN201980055114.7A patent/CN112602095B/zh active Active
- 2019-07-23 KR KR1020217007006A patent/KR102457394B1/ko active IP Right Grant
- 2019-07-23 EP EP22201333.6A patent/EP4138079A1/en active Pending
- 2019-07-23 JP JP2021510952A patent/JP7281535B2/ja active Active
- 2019-07-23 EP EP19790890.8A patent/EP3844680B1/en active Active
- 2019-07-23 WO PCT/US2019/043101 patent/WO2020046495A1/en unknown
- 2019-08-20 TW TW108129667A patent/TWI754162B/zh active
-
2020
- 2020-07-16 US US16/930,777 patent/US11158374B2/en active Active
- 2020-11-11 US US17/095,661 patent/US11521682B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359499B1 (en) * | 2000-06-23 | 2002-03-19 | Marvell International Ltd. | Temperature and process independent CMOS circuit |
CN102684683A (zh) * | 2012-05-14 | 2012-09-19 | 常熟银海集成电路有限公司 | 任意项全系数高精度温度补偿晶体振荡器 |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
Also Published As
Publication number | Publication date |
---|---|
KR20210032538A (ko) | 2021-03-24 |
TW202026955A (zh) | 2020-07-16 |
KR102457394B1 (ko) | 2022-10-21 |
EP4138079A1 (en) | 2023-02-22 |
JP2021536623A (ja) | 2021-12-27 |
EP3844680B1 (en) | 2022-11-23 |
US10755783B2 (en) | 2020-08-25 |
US20210090654A1 (en) | 2021-03-25 |
CN112602095A (zh) | 2021-04-02 |
US11521682B2 (en) | 2022-12-06 |
EP3844680A1 (en) | 2021-07-07 |
WO2020046495A1 (en) | 2020-03-05 |
US20200350015A1 (en) | 2020-11-05 |
TWI754162B (zh) | 2022-02-01 |
US20200066345A1 (en) | 2020-02-27 |
JP7281535B2 (ja) | 2023-05-25 |
US11158374B2 (en) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112602095B (zh) | 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 | |
CN111542840B (zh) | 用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元 | |
CN112567391A (zh) | 包括多个矢量-矩阵乘法阵列和共享部件的用于深度学习神经网络的模拟神经存储器系统 | |
KR102616977B1 (ko) | 딥 러닝 인공 신경망에서의 아날로그 신경 메모리 내의 기준 트랜지스터들 및 메모리 셀들에 대한 보상 | |
CN112585623B (zh) | 用于深度学习神经网络的可配置模拟神经存储器系统 | |
CN114902339A (zh) | 用于补偿人工神经网络中的模拟神经存储器中的数据漂移的电路 | |
CN111886804A (zh) | 用于深度学习人工神经网络中的模拟神经存储器的解码器 | |
CN111837190A (zh) | 用于在深度学习人工神经网络中对模拟神经存储器进行编程的方法和设备 | |
CN115485774A (zh) | 人工神经网络中包括逻辑单元和改进的编程机制的模拟神经存储器阵列 | |
CN115968495A (zh) | 用于人工神经网络中的模拟神经存储器阵列的自适应偏置解码器 | |
CN115516565A (zh) | 人工神经网络中的具有源极线拉低机构的模拟神经存储器阵列 | |
CN115668378B (zh) | 用于深度学习人工神经网络中的模拟神经存储器的字线和控制栅极线串联解码器 | |
CN117813653A (zh) | 用于深度学习人工神经网络中的模拟神经存储器的输出电路 | |
CN117751406A (zh) | 可配置为以模拟形式或数字形式存储神经存储器权重数据的混合存储器系统 | |
CN117178324A (zh) | 用于深度学习人工神经网络中模拟神经存储器的分裂阵列架构 | |
CN117716427A (zh) | 用于深度学习人工神经网络中的模拟神经存储器的输入电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |