CN114902339A - 用于补偿人工神经网络中的模拟神经存储器中的数据漂移的电路 - Google Patents

用于补偿人工神经网络中的模拟神经存储器中的数据漂移的电路 Download PDF

Info

Publication number
CN114902339A
CN114902339A CN202080091624.2A CN202080091624A CN114902339A CN 114902339 A CN114902339 A CN 114902339A CN 202080091624 A CN202080091624 A CN 202080091624A CN 114902339 A CN114902339 A CN 114902339A
Authority
CN
China
Prior art keywords
circuit
array
output
current
bit line
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.)
Pending
Application number
CN202080091624.2A
Other languages
English (en)
Inventor
H·V·特兰
S·莱姆克
V·蒂瓦里
N·多
M·雷顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Storage Technology Inc
Original Assignee
Silicon Storage Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Storage Technology Inc filed Critical Silicon Storage Technology Inc
Publication of CN114902339A publication Critical patent/CN114902339A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0425Erasable 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3463Circuits or methods to detect overprogrammed nonvolatile memory cells, usually during program verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3486Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Complex Calculations (AREA)
  • Networks Using Active Elements (AREA)
  • Feedback Control In General (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)

Abstract

提供了用于补偿模拟神经形态存储器系统中的VMM阵列内的非易失性存储器单元中的漂移误差的许多实施方案。例如,在一个实施方案中,提供了一种用于补偿在读取操作期间的漂移误差的电路,该电路包括数据漂移监测电路,该数据漂移监测电路耦接到该阵列以生成指示数据漂移的输出;以及位线补偿电路,该位线补偿电路用于响应于来自该数据漂移监测电路的输出而生成补偿电流,并且将该补偿电流注入该阵列的一个或多个位线中。

Description

用于补偿人工神经网络中的模拟神经存储器中的数据漂移的 电路
优先权声明
本申请要求于2020年1月3日提交的标题为“Precise Data Tuning Method andApparatus for Analog Neuromorphic Memory in an Artificial Neural Network”的美国临时专利申请号62/957,013和于2020年3月26日提交的标题为“Circuitry toCompensate for Data Drift in Analog Neural Memory in an Artificial NeuralNetwork”的美国专利申请号16/830,733的优先权。
技术领域
提供了用于补偿模拟神经形态存储器系统中的VMM阵列内的非易失性存储器单元中的漂移误差的许多实施方案。
背景技术
人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),并且用于估计或近似可取决于大量输入并且通常未知的函数。人工神经网络通常包括互相交换消息的互连“神经元”层。
图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得人工神经网络适应于输入并且能够学习。通常,人工神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际人工神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。CMOS模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数CMOS实现的突触都过于庞大。
申请人先前在美国专利申请号15/594,439(公开为美国专利公布2017/0337466)中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经形态存储器操作。如本文所用的术语“神经形态”是指实现神经系统模型的电路。模拟神经形态存储器包括被配置成接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置成接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与第二部分绝缘的非浮栅。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置成将第一多个输入乘以所存储的权重值以生成第一多个输出。以这种方式布置的存储器单元阵列可被称为矢量矩阵乘法(VMM)阵列。
必须擦除和编程用于VMM中的每个非易失性存储器单元,以在浮栅中保持非常特定且精确的电荷量(即电子数量)。例如,每个浮栅必须保持N个不同值中的一个,其中N是可由每个单元指示的不同权重的数量。N的示例包括16、32、64、128和256。一个挑战在于能够以不同N值所需的精度和粒度对所选单元进行编程。例如,如果所选单元可包括64个不同值中的一个值,则在编程操作中需要极高精度。
由于这些系统需要如此高的精度,因此诸如数据漂移等现象所产生的任何误差都可能很显著。
需要用于补偿模拟神经形态存储器中的VMM阵列中的数据漂移的经改进的补偿电路和方法。
发明内容
提供了用于补偿模拟神经形态存储器系统中的VMM阵列内的非易失性存储器单元中的漂移误差的许多实施方案。
在一个实施方案中,提供了一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,该电路包括数据漂移监测电路,该数据漂移监测电路耦接到该阵列以生成指示数据漂移的输出;以及位线补偿电路,该位线补偿电路用于响应于来自该数据漂移监测电路的输出而生成补偿电流,并且将该补偿电流注入该阵列的一个或多个位线中。
在另一个实施方案中,提供了一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,该电路包括位线补偿电路,该位线补偿电路用于生成补偿电流并且将该补偿电流注入该阵列的一个或多个位线中以补偿漂移误差。
在另一个实施方案中,提供了一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,该电路包括位线补偿电路,该位线补偿电路用于缩放该阵列的输出以补偿漂移误差。
在另一个实施方案中,提供了一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,该电路包括位线补偿电路,该位线补偿电路用于使该阵列的输出移位以补偿漂移误差。
在另一个实施方案中,提供了一种补偿在矢量矩阵乘法阵列中的读取操作期间的漂移误差的方法,该方法包括监测该矢量矩阵乘法阵列中的数据漂移。
附图说明
图1为示出现有技术的人工神经网络的示意图。
图2示出现有技术分裂栅闪存存储器单元。
图3示出另一现有技术的分裂栅闪存存储器单元。
图4示出另一现有技术的分裂栅闪存存储器单元。
图5示出另一现有技术的分裂栅闪存存储器单元。
图6示出另一现有技术的分裂栅闪存存储器单元。
图7示出现有技术的堆叠栅闪存存储器单元。
图8为示出使用一个或多个VMM阵列的示例性人工神经网络的不同层级的示意图。
图9为示出包括VMM阵列和其他电路的VMM系统的框图。
图10为示出使用一个或多个VMM系统的示例性人工神经网络的框图。
图11示出VMM阵列的另一实施方案。
图12示出VMM阵列的另一实施方案。
图13示出VMM阵列的另一实施方案。
图14示出VMM阵列的另一实施方案。
图15示出VMM阵列的另一实施方案。
图16示出VMM阵列的另一实施方案。
图17示出VMM阵列的另一实施方案。
图18示出VMM阵列的另一实施方案。
图19示出VMM阵列的另一实施方案。
图20示出VMM阵列的另一实施方案。
图21示出VMM阵列的另一实施方案。
图22示出VMM阵列的另一实施方案。
图23示出VMM阵列的另一实施方案。
图24示出VMM阵列的另一实施方案。
图25示出现有技术的长短期存储器系统。
图26示出在长短期存储器系统中使用的示例性单元。
图27示出图26的示例性单元的一个实施方案。
图28示出图26的示例性单元的另一实施方案。
图29示出现有技术的栅控递归单元系统。
图30示出在栅控递归单元系统中使用的示例性单元。
图31示出图30的示例性单元的一个实施方案。
图32示出图30的示例性单元的另一实施方案。
图33示出VMM系统。
图34示出调谐校正方法。
图35A示出调谐校正方法。
图35B示出扇区调谐校正方法。
图36A示出温度对存储在单元中的值的影响。
图36B示出在VMM系统的操作期间由数据漂移造成的问题。
图36C示出用于补偿数据漂移的块。
图36D示出数据漂移监测器。
图37示出位线补偿电路。
图38示出另一位线补偿电路。
图39示出另一位线补偿电路。
图40示出另一位线补偿电路。
图41示出另一位线补偿电路。
图42示出另一位线补偿电路。
图43示出神经元电路。
图44示出另一神经元电路。
图45示出另一神经元电路。
图46示出另一神经元电路。
图47示出另一神经元电路。
图48示出另一个神经元电路。
图49A示出输出电路的框图。
图49B示出另一输出电路的框图。
图49C示出另一输出电路的框图。
具体实施方式
本发明的人工神经网络利用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上的电子经由福勒-诺德海姆隧穿从浮栅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:图2的闪存存储器单元210的操作
WL BL SL
读取1 0.5-3V 0.1-2V 0V
读取2 0.5-3V 0-2V 2-0.1V
擦除 约11-13V 0V 0V
编程 1V-2V 1-3μA 9-10V
“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
图3示出了存储器单元310,其与图2的存储器单元210类似,但增加了控制栅(CG)端子28。控制栅端子28在编程中被偏置在高电压处(例如,10V),在擦除中被偏置在低电压或负电压处(例如,0v/-8V),在读取中被偏置在低电压或中等电压处(例如,0v/2.5V)。其他端子类似于图2那样偏置。
图4示出了四栅极存储器单元410,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅22(通常耦接到字线WL)、在浮栅20上方的控制栅28、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的将自身注入到浮栅20的加热的电子执行。擦除通过从浮栅20隧穿到擦除栅30的电子来执行。
表2示出可施加到存储器单元410的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
表2:图4的闪存存储器单元410的操作
WL/SG BL CG EG SL
读取1 0.5-2V 0.1-2V 0-2.6V 0-2.6V 0V
读取2 0.5-2V 0-2V 0-2.6V 0-2.6V 2-0.1V
擦除 -0.5V/0V 0V 0V/-8V 8-12V 0V
编程 1V 1μA 8-11V 4.5-9V 4.5-5V
“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
图5示出了存储器单元510,除了不含擦除栅EG端子,存储器单元510与图4的存储器单元410类似。通过将衬底18偏置到高电压并将控制栅CG端子28偏置到低电压或负电压来执行擦除。另选地,通过将字线端子22偏置到正电压并将控制栅端子28偏置到负电压来执行擦除。编程和读取类似于图4的那样。
图6示出三栅极存储器单元610,其为另一种类型的闪存存储器单元。存储器单元610与图4的存储器单元410相同,除了存储器单元610没有单独的控制栅端子。除了没有施加控制栅偏置,擦除操作(通过使用擦除栅端子进行擦除)和读取操作类似于图4的操作。在没有控制栅偏置的情况下,编程操作也被完成,并且结果,在编程操作期间必须在源极线端子上施加更高的电压,以补偿控制栅偏置的缺乏。
表3示出可施加到存储器单元610的端子用于执行读取操作、擦除操作和编程操作的典型电压范围:
表3:图6的闪存存储器单元610的操作
WL/SG BL EG SL
读取1 0.5-2.2V 0.1-2V 0-2.6V 0V
读取2 0.5-2.2V 0-2V 0-2.6V 2-0.1V
擦除 -0.5V/0V 0V 11.5V 0V
编程 1V 2-3μA 4.5V 7-9V
“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。
图7示出堆叠栅存储器单元710,其为另一种类型的闪存存储器单元。存储器单元710与图2的存储器单元210类似,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅端子22(其在这里将耦接到字线)在浮栅20上方延伸,由绝缘层(未示出)分开。擦除、编程和读取操作以与先前针对存储器单元210所述类似的方式操作。
表4示出可以施加到存储器单元710和衬底12的端子用于执行读取、擦除和编程操作的典型电压范围:
表4:图7的闪存存储器单元710的操作
CG BL SL 衬底
读取1 0-5V 0.1–2V 0-2V 0V
读取2 0.5-2V 0-2V 2-0.1V 0V
擦除 -8至-10V/0V FLT FLT 8-10V/15-20V
编程 8-12V 3-5V/0V 0V/3-5V 0V
“读取1”是其中单元电流在位线上输出的读取模式。“读取2”是其中单元电流在源极线端子上输出的读取模式。任选地,在包括存储器单元210、310、410、510、610或710的行和列的阵列中,源极线可耦接到一行存储器单元或相邻的两行存储器单元。即,源极线端子可由相邻行的存储器单元共享。
为了在人工神经网络中利用包括上述类型的非易失性存储器单元之一的存储器阵列,进行了两个修改。第一,对线路进行配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,提供存储器单元的连续(模拟)编程。
具体地,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态。在另一个实施方案,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全编程状态变为完全擦除状态,反之亦然。这意味着单元存储装置是模拟的,或者至少可存储许多离散值(诸如16或64个不同的值)中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调谐,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调调整是理想的。
本文所述的方法和装置可应用于其他非易失性存储器技术,诸如但不限于SONOS(硅-氧化物-氮化物-氧化物-硅,电荷捕获在氮化物中)、MONOS(金属-氧化物-氮化物-氧化物-硅,金属电荷捕获在氮化物中)、ReRAM(电阻式ram)、PCM(相变存储器)、MRAM(磁性ram)、FeRAM(铁电ram)、OTP(双层或多层式一次可编程)和CeRAM(关联电子ram)等。本文所述的方法和装置可应用于用于神经网络的易失性存储器技术,诸如但不限于SRAM、DRAM和/或易失性突触单元。
采用非易失性存储器单元阵列的神经网络
图8概念性地示出本实施方案的使用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。
对于该示例,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个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
使用非易失性存储器单元的阵列或阵列的一部分来实现每层的突触。
图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的输出进行解码。
VMM阵列33用于两个目的。首先,它存储将由VMM系统32使用的权重。其次,VMM阵列33有效地将输入与存储在VMM阵列33中的权重相乘并且每个输出线(源极线或位线)将它们相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,VMM阵列33消除了对单独的乘法和加法逻辑电路的需要,并且由于其原位存储器计算也是高功效的。
将VMM阵列33的输出提供至差分求和器(诸如求和运算放大器或求和电流镜)38,该差分求和器对VMM阵列33的输出进行求和,以为该卷积创建单个值。差分求和器38被布置用于执行正权重输入和负权重输入两者的求和,以输出单个值。
然后将差分求和器38的输出值求和后提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数电路39可提供sigmoid、tanh、ReLU函数或任何其他非线性函数。激活函数电路39的经修正的输出值成为作为下一层(例如,图8中的层C1)的特征映射的元素,然后被应用于下一个突触以产生下一个特征映射层或最终层。因此,在该示例中,VMM阵列33构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和器38和激活函数电路39构成多个神经元。
图9中对VMM系统32的输入(WLx、EGx、CGx以及任选的BLx和SLx)可为模拟电平、二进制电平、数字脉冲(在这种情况下,可能需要脉冲-模拟转换器PAC来将脉冲转换至合适的输入模拟电平)或数字位(在这种情况下,提供DAC以将数字位转换至合适的输入模拟电平);输出可为模拟电平、二进制电平、数字脉冲或数字位(在这种情况下,提供输出ADC以将输出模拟电平转换成数字位)。
图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的映射的一个或多个数字脉冲。
由输入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)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。
VMM阵列
图11示出神经元VMM阵列1100,该神经元VMM阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列1100包括非易失性存储器单元的存储器阵列1101和非易失性参考存储器单元的参考阵列1102(在阵列的顶部)。另选地,可将另一个参考阵列置于底部。
在VMM阵列1100中,控制栅线(诸如控制栅线1103)在竖直方向上延伸(因此参考阵列1102在行方向上与控制栅线1103正交),并且擦除栅线(诸如擦除栅线1104)在水平方向上延伸。此处,VMM阵列1100的输入设置在控制栅线(CG0,CG1,CG2,CG3)上,并且VMM阵列1100的输出出现在源极线(SL0,SL1)上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于各源极线(分别为SL0、SL1)上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
如本文针对神经网络所述,VMM阵列1100的非易失性存储器单元(即VMM阵列1100的闪存存储器)优选地被配置成在亚阈值区域中操作。
在弱反转中偏置本文所述的非易失性参考存储器单元和非易失性存储器单元:
Ids=Io*e(Vg-Vth)/nVt=w*Io*e(Vg)/nVt
其中w=e(-Vth)/nVt
其中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分别是存储器单元的宽度和长度。
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流Ids转换为输入电压Vg的I到V对数转换器:
Vg=n*Vt*log[Ids/wp*Io]
此处,wp为参考存储器单元或外围存储器单元的w。
对于使用存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管将输入电流Ids转换为输入电压Vg的I到V对数转换器:
Vg=n*Vt*log[Ids/wp*Io]
此处,wp为参考存储器单元或外围存储器单元的w。
对于用作矢量矩阵乘法器VMM阵列的存储器阵列,输出电流为:
Iout=wa*Io*e(Vg)/nVt,即
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/nVt
Iin=wp*Io*e(Vg)/nVt
此处,wa=存储器阵列中的每个存储器单元的w。
字线或控制栅可用作输入电压的存储器单元的输入。
另选地,本文所述的VMM阵列的非易失性存储器单元可被配置成在线性区域中操作:
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*Wt/L,
Wα(Vgs-Vth),
意指线性区域中的权重W与(Vgs-Vth)成比例
字线或控制栅或位线或源极线可以用作在线性区域中操作的存储器单元的输入。位线或源极线可用作存储器单元的输出。
对于I到V线性转换器,在线性区域工作的存储器单元(例如参考存储器单元或外围存储器单元)或晶体管或电阻器可以用来将输入/输出电流线性转换成输入/输出电压。
另选地,本文所述的VMM阵列的存储器单元可被配置成在饱和区域中操作:
Ids=1/2*β*(Vgs-Vth)2;β=u*Cox*Wt/L
Wα(Vgs-Vth)2,意指权重W与(Vgs-Vth)2成比例
字线、控制栅或擦除栅可以用作在饱和区域中操作的存储器单元的输入。位线或源极线可用作输出神经元的输出。
另选地,本文所述的VMM阵列的存储器单元可用于所有区域或其组合(亚阈值、线性或饱和区域)。
美国专利申请第15/826,345号中描述了图9的VMM阵列33的其他实施方案,该申请以引用方式并入本文。如本文所述,源极线或位线可以用作神经元输出(电流求和输出)。
图12示出神经元VMM阵列1200,该神经元VMM阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的突触。VMM阵列1200包括非易失性存储器单元的存储器阵列1203、第一非易失性参考存储器单元的参考阵列1201和第二非易失性参考存储器单元的参考阵列1202。沿阵列的列方向布置的参考阵列1201和1202用于将流入端子BLR0、BLR1、BLR2和BLR3的电流输入转换为电压输入WL0、WL1、WL2和WL3。实际上,第一非易失性参考存储器单元和第二非易失性参考存储器单元通过多路复用器1214(仅部分示出)二极管式连接,其中电流输入流入其中。参考单元被调谐(例如,编程)为目标参考电平。目标参考电平由参考微阵列矩阵(未示出)提供。
存储器阵列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中的每个位线上的电流执行来自连接到该特定位线的所有非易失性存储器单元的电流的求和函数。
表5示出用于VMM阵列1200的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压,其中FLT指示浮动,即未施加电压。行指示读取、擦除和编程操作。
表5:图12的VMM阵列1200的操作
WL WL-未选 BL BL-未选 SL SL-未选
读取 0.5-3.5V -0.5V/0V 0.1-2V(Ineuron) 0.6V-2V/FLT 0V 0V
擦除 约5-13V 0V 0V 0V 0V 0V
编程 1V-2V -0.5V/0V 0.1-3uA Vinh约2.5V 4-10V 0-1V/FLT
图13示出神经元VMM阵列1300,该神经元VMM阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。VMM阵列1300包括非易失性存储器单元的存储器阵列1303、第一非易失性参考存储器单元的参考阵列1301和第二非易失性参考存储器单元的参考阵列1302。参考阵列1301和1302在VMM阵列1300的行方向上延伸。VMM阵列与VMM 1000类似,不同的是在VMM阵列1300中,字线在竖直方向上延伸。这里,输入设置在字线(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,并且输出在读取操作期间出现在源极线(SL0、SL1)上。置于各源极线上的电流执行来自连接到该特定源极线的存储器单元的所有电流的求和函数。
表6示出用于VMM阵列1300的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表6:图13的VMM阵列1300的操作
WL WL-未选 BL BL-未选 SL SL-未选
读取 0.5-3.5V -0.5V/0V 0.1-2V 0.1V-2V/FLT 约0.3-1V(Ineuron) 0V
擦除 约5-13V 0V 0V 0V 0V SL-禁止(约4-8V)
编程 1V-2V -0.5V/0V 0.1-3uA Vinh约2.5V 4-10V 0-1V/FLT
图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)上的恒定电压。将参考单元调谐至目标参考电平。
存储器阵列1403用于两个目的。首先,它存储将由VMM阵列1400使用的权重。第二,存储器阵列1403有效地将输入(提供到端子BLR0、BLR1、BLR2和BLR3的电流输入,参考阵列1401和1402将这些电流输入转换成输入电压以提供给控制栅CG0、CG1、CG2和CG3)乘以存储在存储器阵列中的权重,然后将所有结果(单元电流)相加以产生输出,该输出出现在BL0-BLN并且将是下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且也是高功效的。这里,输入提供在控制栅线(CG0、CG1、CG2和CG3)上,输出在读取操作期间出现在位线(BL0–BLN)上。置于各位线上的电流执行来自连接到该特定位线的存储器单元的所有电流的求和函数。
VMM阵列1400为存储器阵列1403中的非易失性存储器单元实现单向调谐。也就是说,每个非易失性存储器单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。这可例如使用下文所述的精确编程技术来执行。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅(诸如EG0或EG1)的两行需要一起擦除(其被称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷。
表7示出用于VMM阵列1400的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表7:图14的VMM阵列1400的操作
Figure BDA0003725634110000181
图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中,其中每个位线对来自连接到该特定位线的非易失性存储器单元的所有电流求和。
表8示出用于VMM阵列1500的工作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
表8:图15的VMM阵列1500的操作
Figure BDA0003725634110000191
图16示出神经元VMM阵列1600,该神经元VMM阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在VMM阵列1600中,输入INPUT0....,INPUTN分别在位线BL0,…BLN上被接收,并且输出OUTPUT1、OUTPUT2、OUTPUT3和OUTPUT4分别在源极线SL0、SL1、SL2和SL3上生成。
图17示出神经元VMM阵列1700,该神经元VMM阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0、INPUT1、INPUT2和INPUT3分别在源极线SL0、SL1、SL2和SL3上被接收,并且输出OUTPUT0,…OUTPUTN在位线BL0,…,BLN上生成。
图18示出神经元VMM阵列1800,该神经元VMM阵列特别适用于图2所示的存储器单元210,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0,…,INPUTM分别在字线WL0,…,WLM上被接收,并且输出OUTPUT0,…OUTPUTN在位线BL0,…,BLN上生成。
图19示出神经元VMM阵列1900,该神经元VMM阵列特别适用于图3所示的存储器单元310,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0,…,INPUTM分别在字线WL0,…,WLM上被接收,并且输出OUTPUT0,…OUTPUTN在位线BL0,…,BLN上生成。
图20示出神经元VMM阵列2000,该神经元VMM阵列特别适用于图4所示的存储器单元410,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0,…,INPUTn分别在竖直控制栅线CG0,…,CGN上被接收,并且输出OUTPUT1和OUTPUT2在源极线SL0和SL1上生成。
图21示出神经元VMM阵列2100,该神经元VMM阵列特别适用于图4所示的存储器单元410,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0至INPUTN分别在位线控制栅极2901-1、2901-2至2901-(N-1)和2901-N的栅极上被接收,这些栅极分别耦接到位线BL0至BLN。示例性输出OUTPUT1和OUTPUT2在源极线SL0和SL1上生成。
图22示出神经元VMM阵列2200,该神经元VMM阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0,…,INPUTM在字线WL0,…,WLM上被接收,并且输出OUTPUT0,…,OUTPUTN分别在位线BL0,…,BLN上生成。
图23示出神经元VMM阵列2300,该神经元VMM阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0至INPUTM在控制栅线CG0至CGM上被接收。输出OUTPUT0,…,OUTPUTN分别在竖直源极线SL0,…,SLN上生成,其中每个源极线SLi耦接到列i中的所有存储器单元的源极线。
图24示出神经元VMM阵列2400,该神经元VMM阵列特别适用于图3所示的存储器单元310、图5所示的存储器单元510和图7所示的存储器单元710,并且用作输入层与下一层之间的神经元的突触和部件。在该示例中,输入INPUT0至INPUTM在控制栅线CG0至CGM上被接收。输出OUTPUT0,…,OUTPUTN分别在竖直位线BL0,…,BLN上生成,其中每个位线BLi耦接到列i中的所有存储器单元的位线。
长短期存储器
现有技术包括被称为长短期存储器(LSTM)的概念。LSTM通常用于人工神经网络。LSTM允许人工神经网络在预定的任意时间间隔内记住信息并在后续操作中使用该信息。常规的LSTM包括单元、输入栅、输出栅和忘记栅。三个栅调控进出单元的信息流以及信息在LSTM中被记住的时间间隔。VMM在LSTM中特别有用。
图25示出了示例性LSTM 2500。该示例中的LSTM 2500包括单元2501、2502、2503和2504。单元2501接收输入矢量x0并生成输出矢量h0和单元状态矢量c0。单元2502接收输入矢量x1、来自单元2501的输出矢量(隐藏状态)h0和来自单元2501的单元状态c0,并生成输出矢量h1和单元状态矢量c1。单元2503接收输入矢量x2、来自单元2502的输出矢量(隐藏状态)h1和来自单元2502的单元状态c1,并生成输出矢量h2和单元状态矢量c2。单元2504接收输入矢量x3、来自单元2503的输出矢量(隐藏状态)h2和来自单元2503的单元状态c2,并生成输出矢量h3。可以使用另外的单元,并且具有四个单元的LSTM仅仅是示例。
图26示出可用于图25中的单元2501、2502、2503和2504的LSTM单元2600的示例性具体实施。LSTM单元2600接收输入矢量x(t)、来自前一单元的单元状态矢量c(t-1)和来自前一单元的输出矢量h(t-1),并生成单元状态矢量c(t)和输出矢量h(t)。
LSTM单元2600包括sigmoid函数设备2601、2602和2603,每个sigmoid函数设备应用0至1之间的数字来控制允许输入矢量中的每个分量通过到输出矢量的数量。LSTM单元2600还包括用于将双曲线正切函数应用于输入矢量的tanh设备2604和2605、用于将两个矢量相乘在一起的乘法器设备2606、2607和2608以及用于将两个矢量相加在一起的加法设备2609。输出矢量h(t)可被提供给系统中的下一个LSTM单元,或者其可被访问用于其他目的。
图27示出LSTM单元2700,该LSTM单元为LSTM单元2600的具体实施的示例。为了方便读者,LSTM单元2700中使用与LSTM单元2600相同的编号。sigmoid函数设备2601、2602和2603以及tanh设备2604各自包括多个VMM阵列2701和激活电路区块2702。因此,可以看出,VMM阵列在某些神经网络系统中使用的LSTM单元中特别有用。
LSTM单元2700的另选形式(以及LSTM单元2600的具体实施的另一示例)在图28中示出。在图28中,sigmoid函数设备2601、2602和2603以及tanh设备2604以时分复用方式共享相同的物理硬件(VMM阵列2801和激活函数块2802)。LSTM单元2800还包括将两个矢量相乘在一起的乘法器设备2803,将两个矢量相加在一起的加法设备2808,tanh设备2605(其包括激活电路区块2802),当从sigmoid函数块2802输出值i(t)时存储值i(t)的寄存器2807,当值f(t)*c(t-1)通过多路复用器2810从乘法器设备2803输出时存储该值的寄存器2804,当值i(t)*u(t)通过多路复用器2810从乘法器设备2803输出时存储该值的寄存器2805,当值o(t)*c~(t)通过多路复用器2810从乘法器设备2803输出时存储该值的寄存器2806,和多路复用器2809。
LSTM单元2700包含多组VMM阵列2701和相应的激活函数块2702,而LSTM单元2800仅包含一组VMM阵列2801和激活函数块2802,它们用于表示LSTM单元2800的实施方案中的多个层。LSTM单元2800将需要比LSTM 2700更少的空间,因为与LSTM单元2700相比,LSTM单元2800只需要其1/4的空间用于VMM和激活函数块。
还可理解,LSTM单元通常将包括多个VMM阵列,每个VMM阵列需要由VMM阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个VMM阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。因此,下文所述的实施方案试图最小化VMM阵列本身之外所需的电路。
栅控递归单元
模拟VMM具体实施可用于GRU(栅控递归单元)。GRU是递归人工神经网络中的栅控机构。GRU类似于LSTM,不同的是GRU单元一般包含比LSTM单元更少的部件。
图29示出了示例性GRU 2900。该示例中的GRU 2900包括单元2901、2902、2903和2904。单元2901接收输入矢量x0并生成输出矢量h0。单元2902接收输入矢量x1、来自单元2901的输出矢量h0并生成输出矢量h1。单元2903接收输入矢量x2和来自单元2902的输出矢量(隐藏状态)h1并生成输出矢量h2。单元2904接收输入矢量x3和来自单元2903的输出矢量(隐藏状态)h2并生成输出矢量h3。可以使用另外的单元,并且具有四个单元的GRU仅仅是示例。
图30示出可用于图29的单元2901、2902、2903和2904的GRU单元3000的示例性具体实施。GRU单元3000接收输入矢量x(t)和来自前一个GRU单元的输出矢量h(t-1),并生成输出矢量h(t)。GRU单元3000包括sigmoid函数设备3001和3002,这些设备中的每个设备将介于0和1之间的数应用于来自输出矢量h(t-1)和输入矢量x(t)的分量。GRU单元3000还包括用于将双曲线正切函数应用于输入矢量的tanh设备3003、用于将两个矢量相乘在一起的多个乘法器设备3004、3005和3006、用于将两个矢量相加在一起的加法设备3007,以及用于从1中减去输入以生成输出的互补设备3008。
图31示出GRU单元3100,该GRU单元为GRU单元3000的具体实施的示例。为了方便读者,GRU单元3100中使用与GRU单元3000相同的编号。如图31所示,sigmoid函数设备3001和3002以及tanh设备3003各自包括多个VMM阵列3101和激活函数块3102。因此,可以看出,VMM阵列在某些神经网络系统中使用的GRU单元中特别有用。
GRU单元3100的另选形式(以及GRU单元3000的具体实施的另一示例)在图32中示出。在图32中,GRU单元3200利用VMM阵列3201和激活函数块3202,该激活函数块在被配置成sigmoid函数时,应用0与1之间的数字来控制允许输入矢量中的每个分量有多少通过到输出矢量。在图32中,sigmoid函数设备3001和3002以及tanh设备3003以时分复用方式共享相同的物理硬件(VMM阵列3201和激活函数块3202)。GRU单元3200还包括将两个矢量相乘在一起的乘法器设备3203,将两个矢量相加在一起的加法设备3205,从1减去输入以生成输出的互补设备3209,多路复用器3204,当值h(t-1)*r(t)通过多路复用器3204从乘法器设备3203输出时保持该值的寄存器3206,当值h(t-1)*z(t)通过多路复用器3204从乘法器设备3203输出时保持该值的寄存器3207,和当值h^(t)*(1-z(t))通过多路复用器3204从乘法器设备3203输出时保持该值的寄存器3208。
GRU单元3100包含多组VMM阵列3101和激活函数块3102,而GRU单元3200仅包含一组VMM阵列3201和激活函数块3202,它们用于表示GRU单元3200的实施方案中的多个层。GRU单元3200将需要比GRU单元3100更少的空间,因为与GRU单元3100相比,GRU单元3200只需要其1/3的空间用于VMM和激活函数块。
还可以理解的是,利用GRU的系统通常将包括多个VMM阵列,每个VMM阵列需要由VMM阵列之外的某些电路区块(诸如求和器和激活电路区块以及高电压生成区块)提供的功能。为每个VMM阵列提供单独的电路区块将需要半导体设备内的大量空间,并且将在一定程度上是低效的。因此,下文所述的实施方案试图最小化VMM阵列本身之外所需的电路。
VMM阵列的输入可为模拟电平、二进制电平、定时脉冲、或数字位,并且输出可为模拟电平、二进制电平、定时脉冲或数字位(在这种情况下,需要输出ADC来将输出模拟电平电流或电压转换成数字位)。
对于VMM阵列中的每个存储器单元,每个权重w可由单个存储器单元或由差分单元或由两个混合存储器单元(2个或更多个单元的平均值)来实现。在差分单元的情况下,需要两个存储器单元来实现权重w作为差分权重(w=w+–w-)。在两个混合存储器单元中,需要两个存储器单元来实现权重w作为两个单元的平均值。
用于对VMM中的单元进行精确调谐的实施方案
图33示出VMM系统3300的框图。VMM系统3300包括VMM阵列3301、行解码器3302、高电压解码器3303、列解码器3304、位线驱动器3305、输入电路3306、输出电路3307、控制逻辑部件3308和偏置发生器3309。VMM系统3300还包括高电压生成块3310,该高电压生成块包括电荷泵3311、电荷泵调节器3312和高电压电平发生器3313。VMM系统3300还包括算法控制器3314、模拟电路3315、控制逻辑部件3316和测试控制逻辑部件3317。下文描述的系统和方法可以在VMM系统3300中实现。
输入电路3306可以包括电路,诸如DAC(数模转换器)、DPC(数字到脉冲转换器)、AAC(模拟到模拟转换器,诸如电流到电压转换器)、PAC(脉冲到模拟电平转换器)或任何其他类型的转换器。输入电路3306可以实现归一化、尺度函数或算术函数。输入电路3306可以实现对输入的温度补偿函数。输入电路3306可以实现激活函数,诸如ReLU或sigmoid函数。
输出电路3307可以包括电路,诸如ADC(模数转换器,用于将神经元模拟输出转换为数字位)、AAC(模拟到模拟转换器,诸如电流到电压转换器)、APC(模拟到脉冲转换器)或任何其他类型的转换器。输出电路3307可以实现激活函数,诸如ReLU或sigmoid函数。输出电路3307可以实现用于神经元输出的归一化、尺度函数或算术函数。输出电路3307可以实现用于神经元输出或阵列输出(诸如位线输出)的温度补偿函数,如下所述。
图34示出调谐校正方法3400,其可以由VMM系统3300中的算法控制器3314执行。调谐校正方法3400基于由单元输出和单元初始目标产生的最终误差生成自适应目标。该方法通常响应于接收到调谐命令而开始(步骤3401)。使用预测目标模型(诸如通过使用函数或查找表)确定所选单元或所选单元组Itargetv(i)的初始电流目标(用于编程/验证算法),并且将可变DeltaError设置为0(步骤3402)。目标函数(如果使用的话)将基于所选存储器单元或单元组的I-V编程曲线。目标函数还取决于由阵列特性引起的各种变化,这些阵列特性诸如单元表现出的编程干扰程度(其取决于扇区内的单元地址和单元层级,其中如果单元表现出相对较大的干扰,则该单元在抑制条件下经受更多编程时间,其中具有较高电流的单元通常具有更多干扰)、单元间的耦合和各种类型的阵列噪声。可以在PVT(工艺、电压、温度)方面表征针对硅的这些变化。查找表(如果使用的话)可以以相同的方式表征以模拟I-V曲线和各种变化。
然后,对VMM中的所有单元执行软擦除,该软擦除将所有单元擦除到中间弱擦除电平,使得每个单元在读取操作期间将消耗例如约3μA-5μA的电流(步骤3403)。例如,通过向单元施加增量擦除脉冲电压直至达到中间单元电流来执行软擦除。接下来,对所有未使用的单元执行深度编程操作(步骤3404),以便达到<pA电流水平。然后执行基于误差结果的目标调整(校正)。如果DeltaError>0,意味着该单元已在编程中经历过冲,则将Itargetv(i+1)设置为Itarget+θ*DeltaError,其中θ例如为1或接近1的数字(步骤3405A)。
也可以基于先前Itarget(i)以适当的误差目标调整/校正来调整Itarget(i+1)。如果DeltaError<0,意味着该单元已在编程中经历下冲,这意味着单元电流尚未达到目标,则将Itargetv(i+1)设置为先前目标Itargetv(i)(步骤3405B)。
接下来,执行粗略和/或精细编程和验证操作(步骤3406)。可使用多个自适应粗略编程方法来加速编程,诸如通过在执行精确(精细)编程步骤之前瞄准多个逐渐变小的粗略目标。自适应精确编程例如以精细(精确)增量编程电压脉冲或恒定编程定时脉冲来完成。用于执行粗略编程和精细编程的系统和方法的实施例在由与本申请相同的受让人提交于2019年11月11日并且标题为“Precise Programming Method and Apparatus for AnalogNeural Memory in a Deep Learning Artificial Neural Network”的美国临时专利申请第62/933,809号中有所描述,该申请以引用的方式并入本文。
测量所选单元中的Icell(步骤3407)。例如,可以通过电流计电路测量单元电流。例如,可以通过ADC(模拟-数字转换器)电路测量单元电流,其中在这种情况下,输出由数字位表示。例如,可以通过I-V(电流-电压转换器)电路测量单元电流,其中在这种情况下,输出由模拟电压表示。计算DeltaError,即Icell-Itarget,其表示所测量单元中的实际电流(Icell)与目标电流(Itarget)之间的差值。如果|DeltaError|<DeltaMargin,则单元已在某个容差(DeltaMargin)内达到目标电流,并且该方法结束(步骤3410)。|DeltaError|=abs(DeltaError)=DeltaError的绝对值。如果不是,则该方法返回到步骤3403并且再次按顺序执行步骤(步骤3410)。
图35A和图35B示出调谐校正方法3500,其可以由VMM系统3300中的算法控制器3314执行。参考图35A,该方法的开始(步骤3501)通常响应于接收到调谐命令而进行。诸如通过软擦除方法擦除整个VMM阵列(步骤3502)。对所有未使用的单元执行深度编程操作(步骤3503)以便达到单元电流<pA水平。使用粗略和/或精细编程循环将VMM阵列中的所有单元编程为中间值,诸如0.5μA-1.0μA(步骤3504)。用于执行粗略编程和精细编程的系统和方法的实施例在由与本申请相同的受让人提交于2019年11月11日并且标题为“PreciseProgramming Method and Apparatus for Analog Neural Memory in a Deep LearningArtificial Neural Network”的美国临时专利申请第62/933,809号中有所描述,该申请以引用的方式并入本文。使用如上所述的函数或查找表来设置用于已使用单元的预测目标(步骤3505)。然后,对VMM中的每个扇区执行扇区调谐方法3507(步骤3506)。扇区通常由阵列中的两个或更多个相邻行组成。
图35B示出自适应目标扇区调谐方法3507。使用单独或组合编程/验证(P/V)方法将扇区中的所有单元编程为最终期望值(例如,1nA-50nA),这些方法诸如:(1)粗略/精细/恒定P/V循环;(2)CG+(仅CG增量)或EG+(仅EG增量)或互补的CG+/EG-(CG增量和EG减量);和(3)首先进行最深编程单元(诸如渐进式分组,意味着将单元分为不同组,具有最低电流的单元的组首先被编程)(步骤3508A)。接下来,确定Icell是否<Itarget。如果是,则该方法前进到步骤3509。如果否,则该方法重复步骤3508A。在步骤3509中,测量DeltaError,其等于所测量的Icell-Itarget(i+1)(步骤3509)。确定|DeltaError|是否<DeltaMargin(步骤3510)。如果是,则该方法完成(步骤3511)。如果不是,则执行目标调整。如果DeltaError>0,意味着该单元已在编程中经历过冲,则通过将新目标设置为Itarget+θ*DeltaError来调整目标,其中θ通常=1(步骤3512A)。也可以基于先前Itarget(i)以适当的误差目标调整/校正来调整Itarget(i+1)。如果DeltaError<0,意味着该单元已在编程中经历下冲,这意味着单元尚未达到目标,则通过保持先前目标来调整目标,即Itargetv(i+1)=Itargetv(i)(步骤3512B)。对扇区进行软擦除(步骤3513)。将扇区中的所有单元编程为中间值(步骤3514),并返回到步骤3509。
典型的神经网络可以具有正权重w+和负权重w-以及组合权重=w+-w-。w+和w-由存储器单元(分别为Iw+和Iw-)来实现,并且组合权重(Iw=Iw+-Iw-,电流相减)可以在外围电路电平处(诸如在阵列位线输出电路处)执行。因此,用于组合权重的权重调谐实施方案可以包括例如同时调谐w+单元和w-单元,仅调谐w+单元,或仅调谐w-单元,如表8所示。使用先前参考图34/图35A/图35B描述的编程/验证和误差目标调整方法来执行调谐。可以仅针对组合权重(例如,测量/读取组合的权重电流而不是单独的正w+单元电流或w-单元电流)、仅针对w+单元电流或仅针对w-单元电流来执行验证。
例如,对于3na的组合Iw,Iw+可以是3na并且Iw-可以是0na;或者,Iw+可以是13na并且Iw-可以是10na,意味着正权重Iw+和负权重Iw-均不为零(例如,其中零将表示深度编程单元)。在某些操作条件下,这可能是优选的,因为其将使得Iw+和Iw-均不那么容易受噪声影响。
表8:权重调谐方法
Iw Iw+ Iw- 说明
初始目标 3na 3na 0na 调谐Iw+和Iw-
初始目标 -2na 0na 2na 调谐Iw+和Iw-
初始目标 3na 13na 10na 调谐Iw+和Iw-
新目标 2na 12na 10na 仅调谐Iw+
新目标 2na 11na 9na 调谐Iw+和Iw-
新目标 4na 13na 9na 仅调谐Iw-
新目标 4na 12na 8na 调谐Iw+和Iw-
新目标 -2na 8na 10na 调谐Iw+和Iw-
新目标 -2na 7na 9na 调谐Iw+和Iw-
图36A示出随温度变化的数据行为(I-V曲线)(例如,在亚阈值区域中),图36B示出在VMM系统的操作期间由数据漂移产生的问题,并且图36C和图36D示出用于补偿数据漂移的块并且关于图36C,示出用于补偿温度变化的块。
图36A示出随工作温度增加的VMM系统的已知特性,VMM阵列中的任何给定所选非易失性存储器单元中的感测电流在亚阈值区域中增加,在饱和区域中减小或者通常在线性区域中减小。
图36B示出随时间使用的阵列电流分布(数据漂移),并且其示出来自VMM阵列的合计输出(其为来自VMM阵列中的所有位线的电流的总和)随着工作时间使用向右(或向左,这取决于所使用的技术)偏移,这意味着总的合计输出将随着VMM系统的寿命使用而漂移。这种现象被称为数据漂移,因为数据由于使用条件而漂移并且由于环境因素而劣化。
图36C示出位线补偿电路3600,该位线补偿电路可以包括将补偿电流iCOMP注入位线输出电路3610的输出以补偿数据漂移。位线补偿电路3600可以包括基于电阻器或电容器网络由缩放器电路对输出进行放大或缩小。位线补偿电路3600可以包括基于其电阻器或电容器网络由移位器电路对输出进行移位或偏移。
图36D示出检测数据漂移量的数据漂移监测器3620。该信息继而用作位线补偿电路3600的输入,以便可以选择适当水平的iCOMP
图37示出位线补偿电路3700,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路3700包括可调电流源3701和可调电流源3702,该两者共同生成iCOMP,其中iCOMP等于由可调电流源3701生成的电流减去由可调电流源3701生成的电流。
图38示出位线补偿电路3700,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路3800包括运算放大器3801、可调电阻器3802和可调电阻器3803。运算放大器3801在其同相端子上接收参考电压VREF,并且在其反相端子上接收VINPUT,其中VINPUT是从图36C中的位线输出电路3610接收的电压,并且生成输出VOUTPUT,其中VOUTPUT是VINPUT的缩放版本,以基于电阻器3803和3802的比率补偿数据漂移。通过配置电阻器3803和/或3802的值,可以放大或缩小VOUTPUT
图39示出位线补偿电路3900,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路3900包括运算放大器3901、电流源3902、开关3904和可调积分输出电容器3903。这里,电流源3902实际上是VMM阵列中的单条位线上或多条位线(诸如一条用于求和正权重w+,一条用于求和负权重w-)的集合上的输出电流。运算放大器3901在其同相端子上接收参考电压VREF,并且在其反相端子上接收VINPUT,其中VINPUT是从图36C中的位线输出电路3610接收的电压。位线补偿电路3900充当积分器,其对在可调积分时间内通过电容器3903的电流Ineu进行积分,以生成输出电压VOUTPUT,其中VOUTPUT=Ineu*积分时间/C3903,其中C3903是电容器3903的值。因此,输出电压VOUTPUT与(位线)输出电流Ineu成正比,与积分时间成正比,并且与电容器3903的电容成反比。位线补偿电路3900生成输出VOUTPUT,其中VOUTPUT的值基于电容器3903的配置值和/或积分时间来缩放以补偿数据漂移。
图40示出位线补偿电路4000,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路4000包括具有M:N比率的电流镜4010,这意味着ICOMP=(M/N)*iinput。电流镜4010接收电流iINPUT,并且对该电流进行镜像,并且任选地缩放该电流以生成iCOMP。因此,通过配置M参数和/或N参数,可以放大或缩小iCOMP
图41示出位线补偿电路4100,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路4100包括运算放大器4101、可调缩放电阻器4102、可调移位电阻器4103和可调电阻器4104。运算放大器4101在其同相端子上接收参考电压VREF,并且在其反相端子上接收VIN。VIN响应于VINPUT和Vshft而生成,其中VINPUT是从图36C中的位线输出电路3610接收的电压,并且Vshft是旨在实现VINPUT与VOUTPUT之间移位的电压。
因此,VOUTPUT是VINPUT的经缩放和移位版本,以补偿数据漂移。
图42示出位线补偿电路4200,其为图36中的位线补偿电路3600的一个实施方案。位线补偿电路4200包括运算放大器4201、输入电流源Ineu4202、电流移位器4203、开关4205和4206以及可调积分输出电容器4204。这里,电流源4202实际上是VMM阵列中的单条位线或多条位线上的输出电流Ineu。运算放大器4201在其同相端子上接收参考电压VREF,并且在其反相端子上接收IIN,其中IIN是Ineu与电流移位器4203输出的电流的总和,并且生成输出VOUTPUT,其中VOUTPUT被缩放(基于电容器4204)和移位(基于Ishifter 4203)以补偿数据漂移。
图43至图48示出可以用于在编程或读取操作期间提供待编程或读取到每个所选单元中的W值的各种电路。
图43示出神经元输出电路4300,其包括可调电流源4301和可调电流源4302,该两者共同生成IOUT,其中IOUT等于由可调电流源4301生成的电流IW+减去由可调电流源4302生成的电流IW-。可调电流Iw+4301是单元电流或神经元电流(诸如位线电流)用于实现正权重的缩放电流。可调电流Iw-4302是单元电流或神经元电流(诸如位线电流)用于实现负权重的缩放电流。电流缩放诸如通过M:N比率电流镜电路来完成,其中Iout=(M/N)*Iin。
图44示出神经元输出电路4400,其包括可调电容器4401、控制晶体管4405、开关4402、开关4403和可调电流源4404Iw+,该电流是诸如M:N电流镜电路的单元电流或(位线)神经元电流的缩放输出电流。晶体管4405用于例如对电流4404施加固定偏置电压。电路4404生成VOUT,其中VOUT与电容器4401成反比,与可调积分时间(开关4403闭合和开关4402断开的时间)成正比,并且与由可调电流源4404IW+生成的电流成正比。VOUT等于V+-((Iw+*积分时间)/C4401),其中C4401是电容器4401的值。电容器4401的正端子V+连接到正电源电压,并且电容器4401的负端子V-连接到输出电压VOUT
图45示出神经元电路4500,其包括电容器4401和可调电流源4502,该电流是诸如M:N电流镜的单元电流或(位线)神经元电流的缩放电流。电路4500生成VOUT,其中VOUT与电容器4401成反比,与可调积分时间(开关4501断开的时间)成正比,并且与由可调电流源4502IWi生成的电流成正比。电容器4401在完成其对电流Iw+积分的操作之后从神经元输出电路44重新使用。然后,正端子和负端子(V+和V-)在神经元输出电路45中交换,其中正端子连接到输出电压VOUT,该输出电压由电流Iw-去积分。负端子通过钳位电路(未示出)保持在先前的电压值。实际上,输出电路44用于正权重具体实施,并且电路45用于负权重具体实施,其中电容器4401上的最终电荷有效地表示组合权重(Qw=Qw+-Qw-)。
图46示出神经元电路4600,其包括可调电容器4601、开关4602、控制晶体管4604和可调电流源4603。电路4600生成VOUT,其中VOUT与电容器4601成反比,与可调积分时间(开关4602断开的时间)成正比,并且与由可调电流源4603IW-生成的电流成正比。电容器4601的负端子V-例如等于接地。电容器4601的正端子V+例如在对电流Iw-进行积分之前初始地被预充电到正电压。神经元电路4600可用于取代神经元电路4500与神经元电路4400以实现组合权重(Qw=Qw+-Qw-)。
图47示出神经元电路4700,其包括运算放大器4703和4706;可调电流源Iw+4701和Iw-4702;和可调电阻器4704、4705和4707。神经元电路4700生成VOUT,该电压等于R4707*(Iw+-Iw-)。可调电阻器4707实现对输出的缩放。可调电流源Iw+4701和Iw-4702也实现对输出的缩放,例如通过M:N比率电流镜电路(Iout=(M/N)*Iin)。
图48示出神经元电路4800,其包括运算放大器4803和4806;开关4808和4809;可调电流源Iw-4802和Iw+4801;可调电容器4804、4805和4807。神经元电路4800生成VOUT,该电压与(Iw+-Iw-)成正比,与积分时间(开关4808和4809断开的时间)成正比,并且与电容器4807的电容成反比。可调电容器4807实现对输出的缩放。可调电流源Iw+4801和Iw-4802也实现对输出的缩放,例如通过M:N比率电流镜电路(Iout=(M/N)*Iin)。积分时间也可以调整输出缩放。
图49A、图49B和图49C示出输出电路诸如图33中的输出电路3307的框图。
在图49A中,输出电路4901包括ADC电路4911,其用于直接将模拟神经元输出4910数字化以提供数字输出位4912。
在图49B中,输出电路4902包括神经元输出电路4921和ADC 4911。神经元输出电路4921接收神经元输出4920并对其进行整形,然后由ADC电路4911数字化以生成输出4912。神经元输出电路4921可用于归一化、缩放、移位、映射、算术运算、激活和/或温度补偿,诸如先前所描述。ADC电路可以是串行(斜坡式或跃升式或计数式)ADC、SAR ADC、流水线型ADC、Σ-Δ型ADC或任何类型的ADC。
在图49C中,输出电路包括神经元输出电路4921和转换器电路4931,该神经元输出电路接收神经元输出4930,并且该转换器电路用于将来自神经元输出电路4921的输出转换为输出4932。转换器4931可以包括ADC、AAC(类似于模拟到模拟转换器,诸如电流到电压转换器)、APC(模拟到脉冲转换器)或任何其他类型的转换器。ADC 4911或转换器4931可以用于通过例如位映射(例如,量化)或削波(例如,经削波ReLU)来实现激活函数。ADC 4911和转换器4931可以是可配置的,诸如用于更低或更高精度(例如,更低或更高位数)、更低或更高性能(例如,更慢或更快速度)等。
用于缩放和移位的另一实施方案是通过配置用于将阵列(位线)输出转换为诸如具有更低或更高位精度的数字位的ADC(模拟-数字)转换电路(诸如串行ADC、SAR ADC、流水线型ADC、斜坡式ADC等),然后根据某种函数(例如,线性或非线性、压缩、非线性激活等)操纵数字输出位,诸如通过归一化(例如,12位到8位)、移位或重新映射。ADC转换电路的实施例在由与本申请相同的受让人提交于2019年11月11日并且标题为“Precise ProgrammingMethod and Apparatus for Analog Neural Memory in a Deep Learning ArtificialNeural Network”的美国临时专利申请第62/933,809号中有所描述,该申请以引用的方式并入本文。
表9示出执行读取、擦除和编程操作的另选方法:
表9:闪存存储器单元的操作
<u>SL</u> <u>BL</u> <u>WL</u> <u>CG</u> <u>EG</u> <u>P-Sub</u>
<u>读取</u> 0 0.5 1 0 0 0
<u>擦除</u> 0 0 0 0/-8V 10-12V/+8V 0
<u>Program1</u> 0-5V 0 0 8V -10到-12V 0
<u>Program2</u> 0 0 0 8V 0-5V -10V
读取和擦除操作类似于先前的表。然而,用于编程的两种方法由福勒-诺德海姆(FN)隧穿机制来实现。
用于对输入进行缩放的实施方案可以诸如通过一次启用VMM的一定数量的行然后将结果完全结合在一起来完成。
另一个实施方案是对输入电压进行缩放,并且适当地重新缩放输出以实现归一化。
用于对脉宽调制输入进行缩放的另一实施方案是通过调制脉宽的时序。该技术的实施例在由与本申请相同的受让人提交于2019年6月21日并且标题为“ConfigurableInput Blocks and Output Blocks and Physical Layout for Analog Neural Memoryin Deep Learning Artificial Neural Network”的美国专利申请第16/449,201号中有所描述,该申请以引用的方式并入本文。
用于对输入进行缩放的另一实施方案是通过一次启用一个输入二进制位,例如,对于8位输入IN7:0,按顺序分别评估IN0,IN1,…,IN7,然后将输出结果与适当的二进制位加权结合在一起。该技术的实施例在由与本申请相同的受让人提交于2019年6月21日并且标题为“Configurable Input Blocks and Output Blocks and Physical Layout forAnalog Neural Memory in Deep Learning Artificial Neural Network”的美国专利申请第16/449,201号中有所描述,该申请以引用的方式并入本文。
任选地,在上述实施方案中,为了验证或读取电流的目的而测量单元电流可以进行平均或多次测量,例如进行8次到32次测量,以减少噪声(诸如RTN或任何随机噪声)的影响和/或检测有缺陷并且需要由冗余位替换的任何异常值位。
应当指出,如本文所用,术语“在…上方”和“在…上”两者包容地包含“直接在…上”(之间未设置中间材料、元件或空间)和“间接在…上”(之间设置有中间材料、元件或空间)。类似地,术语“相邻”包括“直接相邻”(之间没有设置中间材料、元件或空间)和“间接相邻”(之间设置有中间材料、元件或空间),“安装到”包括“直接安装到”(之间没有设置中间材料、元件或空间)和“间接安装到”(之间设置有中间材料、元件或空间),并且“电耦接至”包括“直接电耦接至”(之间没有将元件电连接在一起的中间材料或元件)和“间接电耦接至”(之间有将元件电连接在一起的中间材料或元件)。例如,“在衬底上方”形成元件可包括在两者间没有中间材料/元件的情况下在衬底上直接形成元件,以及在两者间有一个或多个中间材料/元件的情况下在衬底上间接形成元件。

Claims (24)

1.一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,所述电路包括:
数据漂移监测电路,所述数据漂移监测电路耦接到所述阵列以生成指示数据漂移的输出;以及
位线补偿电路,所述位线补偿电路用于响应于来自所述数据漂移监测电路的所述输出而生成补偿电流,并且将所述补偿电流注入所述阵列的一个或多个位线中。
2.根据权利要求1所述的电路,其中所述位线补偿电路包括第一可调电流源和第二可调电流源,并且所述补偿电流是由所述第一可调电流源生成的电流与由所述第二可调电流源生成的电流之间的差值。
3.根据权利要求1所述的电路,其中所述位线补偿电路包括运算放大器、第一可调电阻器和第二可调电阻器。
4.根据权利要求1所述的电路,其中所述位线补偿电路包括运算放大器、电流源和可调电容器。
5.根据权利要求1所述的电路,其中所述位线补偿电路包括M:N电流镜。
6.根据权利要求1所述的电路,其中所述位线补偿电路包括运算放大器、第一可调电阻器、第二可调电阻器和第三可调电阻器。
7.根据权利要求1所述的电路,其中所述位线补偿电路包括运算放大器、电流源、电流移位器和可调电容器。
8.一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,所述电路包括:
位线补偿电路,所述位线补偿电路用于生成补偿电流并将所述补偿电流注入所述阵列的一个或多个位线中以补偿漂移误差。
9.根据权利要求8所述的电路,其中所述位线补偿电路包括相加式补偿电流。
10.根据权利要求8所述的电路,其中所述位线补偿电路包括相减式补偿电流。
11.根据权利要求8所述的电路,其中所述矢量矩阵乘法阵列由分裂栅非易失性存储器单元形成。
12.一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,所述电路包括:
位线补偿电路,所述位线补偿电路用于缩放所述阵列的输出以补偿漂移误差。
13.根据权利要求12所述的电路,其中所述位线补偿电路使所述输出移位。
14.根据权利要求12所述的电路,其中所述缩放包括放大。
15.根据权利要求12所述的电路,其中所述缩放包括缩小。
16.根据权利要求12所述的电路,其中所述缩放由两个电阻器的比率确定。
17.根据权利要求12所述的电路,其中所述缩放由两个电容器的所述比率确定。
18.根据权利要求12所述的电路,其中所述矢量矩阵乘法阵列由分裂栅非易失性存储器单元形成。
19.一种用于补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的电路,所述电路包括:
位线补偿电路,所述位线补偿电路用于对所述阵列的输出进行移位以补偿漂移误差。
20.根据权利要求19所述的电路,其中所述矢量矩阵乘法阵列由分裂栅非易失性存储器单元形成。
21.根据权利要求19所述的电路,其中所述矢量矩阵乘法阵列中的一个或多个单元使用福勒-诺德海姆隧穿来编程。
22.根据权利要求20所述的电路,其中所述矢量矩阵乘法阵列中的一个或多个单元使用福勒-诺德海姆隧穿来编程。
23.一种补偿矢量矩阵乘法阵列中的读取操作期间的漂移误差的方法,所述方法包括:
监测所述矢量矩阵乘法阵列中的数据漂移;
响应于所述数据漂移,生成位线补偿电流;以及
在读取操作期间将所述位线补偿电流注入所述矢量矩阵乘法阵列的一个或多个位线中以补偿漂移误差。
24.根据权利要求23所述的方法,其中所述矢量矩阵乘法阵列由分裂栅非易失性存储器单元形成。
CN202080091624.2A 2020-01-03 2020-09-03 用于补偿人工神经网络中的模拟神经存储器中的数据漂移的电路 Pending CN114902339A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062957013P 2020-01-03 2020-01-03
US62/957,013 2020-01-03
US16/830,733 US20210209457A1 (en) 2020-01-03 2020-03-26 Circuitry to compensate for data drift in analog neural memory in an artificial neural network
US16/830,733 2020-03-26
PCT/US2020/049235 WO2021137900A1 (en) 2020-01-03 2020-09-03 Circuitry to compensate for data drift in analog neural memory in an artificial neural network

Publications (1)

Publication Number Publication Date
CN114902339A true CN114902339A (zh) 2022-08-12

Family

ID=76654025

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080091622.3A Pending CN114930458A (zh) 2020-01-03 2020-07-02 用于人工神经网络中的模拟神经存储器的精确数据调谐方法和装置
CN202080091624.2A Pending CN114902339A (zh) 2020-01-03 2020-09-03 用于补偿人工神经网络中的模拟神经存储器中的数据漂移的电路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080091622.3A Pending CN114930458A (zh) 2020-01-03 2020-07-02 用于人工神经网络中的模拟神经存储器的精确数据调谐方法和装置

Country Status (7)

Country Link
US (3) US11636322B2 (zh)
EP (2) EP4085461B1 (zh)
JP (3) JP7404542B2 (zh)
KR (2) KR20220104004A (zh)
CN (2) CN114930458A (zh)
TW (3) TWI785435B (zh)
WO (2) WO2021137894A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475946B2 (en) * 2020-01-16 2022-10-18 International Business Machines Corporation Synapse weight update compensation
US11532354B2 (en) * 2020-03-22 2022-12-20 Silicon Storage Technology, Inc. Precision tuning of a page or word of non-volatile memory cells and associated high voltage circuits for an analog neural memory array in an artificial neural network
US11514326B2 (en) * 2020-06-18 2022-11-29 International Business Machines Corporation Drift regularization to counteract variation in drift coefficients for analog accelerators
US11335401B1 (en) * 2021-01-28 2022-05-17 National Tsing Hua University Memory unit with multiple word lines for nonvolatile computing-in-memory applications and current calibrating method thereof
CN113392591B (zh) * 2021-07-12 2022-04-19 哈尔滨工程大学 一种基于硅微结构分析的mems加速度计温漂误差估计方法
US11935603B2 (en) * 2021-11-04 2024-03-19 Infineon Technologies LLC Erase power loss indicator (EPLI) implementation in flash memory device
US11942144B2 (en) 2022-01-24 2024-03-26 Stmicroelectronics S.R.L. In-memory computation system with drift compensation circuit
TWI833192B (zh) * 2022-03-31 2024-02-21 國立陽明交通大學 電漿放電電流分類系統及方法
WO2023196000A1 (en) * 2022-04-07 2023-10-12 Silicon Storage Technology, Inc. Vector-by-matrix-multiplication array utilizing analog inputs
US11894052B2 (en) 2022-04-12 2024-02-06 Stmicroelectronics S.R.L. Compensated analog computation for an in-memory computation system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128567A1 (en) * 2002-01-07 2003-07-10 Chih-Kang Chiu Sensing apparatus for a ROM memory device
US20080151652A1 (en) * 2006-12-20 2008-06-26 Samsung Electronics Co., Ltd. Nonvolatile Memory Devices that Utilize Read/Write Merge Circuits
CN101263560A (zh) * 2005-06-20 2008-09-10 桑迪士克股份有限公司 非易失性存储器读取操作中的补偿电流
KR20100074667A (ko) * 2008-12-24 2010-07-02 주식회사 하이닉스반도체 플래시 메모리 장치의 동작 방법
US20150270007A1 (en) * 2014-03-19 2015-09-24 Apple Inc. Mitigation of retention drift in charge-trap non-volatile memory
US20190043565A1 (en) * 2017-12-20 2019-02-07 Intel Corporation Method and system for compensating for floating gate-to-floating gate (fg-fg) interference in flash memory cell read operations
CN109509497A (zh) * 2017-09-15 2019-03-22 三星电子株式会社 电阻式存储器装置
CN109949837A (zh) * 2017-12-21 2019-06-28 旺宏电子股份有限公司 存储装置的漏电流补偿读取方法
CN110610734A (zh) * 2018-06-15 2019-12-24 三星电子株式会社 包括补偿电路的电阻式存储设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
JPH08249893A (ja) * 1995-03-07 1996-09-27 Toshiba Corp 半導体記憶装置
AU2002240163A1 (en) * 2001-01-26 2002-08-06 John George Maneatis Phase-locked loop with conditioned charge pump output
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
JP2006114078A (ja) 2004-10-12 2006-04-27 Toshiba Corp 不揮発性半導体記憶装置及びその動作方法
EP1865398A1 (en) * 2006-06-07 2007-12-12 Patent-Treuhand-Gesellschaft für elektrische Glühlampen mbH A temperature-compensated current generator, for instance for 1-10V interfaces
US7551028B1 (en) * 2006-12-11 2009-06-23 Marvell International Ltd. Signal generators for current-mode three-level digital amplifiers
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US7928784B2 (en) * 2009-06-26 2011-04-19 Texas Instruments Incorporated Method and apparatus to improve and control the propagation delay in a current slewing circuit
TWI375224B (en) * 2009-11-20 2012-10-21 Ind Tech Res Inst Voltage compensation circuit, multi-level memory device with the same, and voltage compensation method for reading the multi-level memory device
US8779777B2 (en) * 2010-06-04 2014-07-15 Linear Technology Corporation Dynamic compensation of aging drift in current sense resistor
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
US10346740B2 (en) 2016-06-01 2019-07-09 Kla-Tencor Corp. Systems and methods incorporating a neural network and a forward physical model for semiconductor applications
US10340010B2 (en) * 2016-08-16 2019-07-02 Silicon Storage Technology, Inc. Method and apparatus for configuring array columns and rows for accessing flash memory cells
CN110268523A (zh) * 2017-02-04 2019-09-20 三维单晶公司 3d半导体装置及结构
KR102532204B1 (ko) * 2017-09-15 2023-05-16 삼성전자 주식회사 레퍼런스 셀을 포함하는 저항성 메모리 장치 및 그것의 동작 방법
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
EP3743857A4 (en) * 2018-01-23 2021-12-29 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
US10910061B2 (en) 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US10446246B2 (en) * 2018-03-14 2019-10-15 Silicon Storage Technology, Inc. Method and apparatus for data refresh for analog non-volatile memory in deep learning neural network
US10522226B2 (en) * 2018-05-01 2019-12-31 Silicon Storage Technology, Inc. Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network
US10643119B2 (en) 2018-07-24 2020-05-05 Sandisk Technologies Llc Differential non-volatile memory cell for artificial neural network
CN110189788A (zh) * 2019-04-24 2019-08-30 深圳市金泰克半导体有限公司 闪存的读电压确定方法、装置、计算机设备和存储介质
US20200364583A1 (en) 2019-05-14 2020-11-19 Robert D. Pedersen Iot sensor network artificial intelligence warning, control and monitoring systems and methods
CN209657299U (zh) 2019-05-16 2019-11-19 北京知存科技有限公司 模拟向量-矩阵乘法运算电路以及芯片
US11507816B2 (en) * 2019-09-19 2022-11-22 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128567A1 (en) * 2002-01-07 2003-07-10 Chih-Kang Chiu Sensing apparatus for a ROM memory device
CN101263560A (zh) * 2005-06-20 2008-09-10 桑迪士克股份有限公司 非易失性存储器读取操作中的补偿电流
US20080151652A1 (en) * 2006-12-20 2008-06-26 Samsung Electronics Co., Ltd. Nonvolatile Memory Devices that Utilize Read/Write Merge Circuits
KR20100074667A (ko) * 2008-12-24 2010-07-02 주식회사 하이닉스반도체 플래시 메모리 장치의 동작 방법
US20150270007A1 (en) * 2014-03-19 2015-09-24 Apple Inc. Mitigation of retention drift in charge-trap non-volatile memory
CN109509497A (zh) * 2017-09-15 2019-03-22 三星电子株式会社 电阻式存储器装置
US20190043565A1 (en) * 2017-12-20 2019-02-07 Intel Corporation Method and system for compensating for floating gate-to-floating gate (fg-fg) interference in flash memory cell read operations
CN109949837A (zh) * 2017-12-21 2019-06-28 旺宏电子股份有限公司 存储装置的漏电流补偿读取方法
CN110610734A (zh) * 2018-06-15 2019-12-24 三星电子株式会社 包括补偿电路的电阻式存储设备

Also Published As

Publication number Publication date
TWI785435B (zh) 2022-12-01
WO2021137894A1 (en) 2021-07-08
US20220374699A1 (en) 2022-11-24
JP7404542B2 (ja) 2023-12-25
TW202129552A (zh) 2021-08-01
JP7329151B2 (ja) 2023-08-17
JP2024028955A (ja) 2024-03-05
US11636322B2 (en) 2023-04-25
KR20220104004A (ko) 2022-07-25
TW202134910A (zh) 2021-09-16
CN114930458A (zh) 2022-08-19
KR20220104005A (ko) 2022-07-25
EP4085461A1 (en) 2022-11-09
JP2023509635A (ja) 2023-03-09
US20210209457A1 (en) 2021-07-08
TW202309789A (zh) 2023-03-01
US11847556B2 (en) 2023-12-19
EP4085464A1 (en) 2022-11-09
US20210209456A1 (en) 2021-07-08
EP4085461B1 (en) 2024-04-10
TWI815065B (zh) 2023-09-11
TWI799355B (zh) 2023-04-11
JP2023509636A (ja) 2023-03-09
WO2021137900A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
JP7329151B2 (ja) 人工ニューラルネットワーク内のアナログニューラルメモリにおけるデータドリフトを補償するための回路
CN113785360A (zh) 用于深度学习人工神经网络中的模拟神经存储器的输出阵列神经元转换和校准
CN113366572B (zh) 用于验证在深度学习人工神经网络中的模拟神经存储器中的非易失性存储器单元的编程操作期间存储的值的算法和电路
CN115191016A (zh) 深度学习人工神经网络中的模拟神经存储器单元的超精确调谐
TWI809663B (zh) 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
CN115968495A (zh) 用于人工神经网络中的模拟神经存储器阵列的自适应偏置解码器
CN115516565A (zh) 人工神经网络中的具有源极线拉低机构的模拟神经存储器阵列
JP2023525771A (ja) 論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ
US20210209458A1 (en) Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US20230154528A1 (en) Determination of a bias voltage to apply to one or more memory cells in a neural network
TW202336748A (zh) 決定施加至神經網路中的一或多個記憶體胞元的偏壓
CN118043889A (zh) 要施加到神经网络中的一个或多个存储器单元的偏置电压的确定
CN117813653A (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