CN111542840B - 用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元 - Google Patents

用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元 Download PDF

Info

Publication number
CN111542840B
CN111542840B CN201880085396.0A CN201880085396A CN111542840B CN 111542840 B CN111542840 B CN 111542840B CN 201880085396 A CN201880085396 A CN 201880085396A CN 111542840 B CN111542840 B CN 111542840B
Authority
CN
China
Prior art keywords
artificial neural
neural network
current
vector
input
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
Application number
CN201880085396.0A
Other languages
English (en)
Other versions
CN111542840A (zh
Inventor
H·V·特兰
S·洪
A·李
T·乌
H·帕姆
K·恩古耶
H·特兰
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 CN111542840A publication Critical patent/CN111542840A/zh
Application granted granted Critical
Publication of CN111542840B publication Critical patent/CN111542840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03FAMPLIFIERS
    • H03F3/00Amplifiers with only discharge tubes or only semiconductor devices as amplifying elements
    • H03F3/45Differential amplifiers
    • H03F3/45071Differential amplifiers with semiconductor devices only
    • H03F3/45076Differential amplifiers with semiconductor devices only characterised by the way of implementation of the active amplifying circuit in the differential amplifier
    • H03F3/45475Differential amplifiers with semiconductor devices only characterised by the way of implementation of the active amplifying circuit in the differential amplifier using IC blocks as the active amplifying circuit
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03FAMPLIFIERS
    • H03F3/00Amplifiers with only discharge tubes or only semiconductor devices as amplifying elements
    • H03F3/45Differential amplifiers
    • H03F3/45071Differential amplifiers with semiconductor devices only
    • H03F3/45076Differential amplifiers with semiconductor devices only characterised by the way of implementation of the active amplifying circuit in the differential amplifier
    • H03F3/45179Differential amplifiers with semiconductor devices only characterised by the way of implementation of the active amplifying circuit in the differential amplifier using MOSFET transistors as the active amplifying circuit
    • H03F3/45269Complementary non-cross coupled types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/14Arrangements for performing computing operations, e.g. operational amplifiers for addition or subtraction 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/18Arrangements for performing computing operations, e.g. operational amplifiers for integration or differentiation; for forming integrals
    • G06G7/184Arrangements for performing computing operations, e.g. operational amplifiers for integration or differentiation; for forming integrals using capacitive elements
    • G06G7/186Arrangements for performing computing operations, e.g. operational amplifiers for integration or differentiation; for forming integrals using capacitive elements using an operational amplifier comprising a capacitor or a resistor in the feedback loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/24Arrangements for performing computing operations, e.g. operational amplifiers for evaluating logarithmic or exponential functions, e.g. hyperbolic functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03FAMPLIFIERS
    • H03F2203/00Indexing scheme relating to amplifiers with only discharge tubes or only semiconductor devices as amplifying elements covered by H03F3/00
    • H03F2203/45Indexing scheme relating to differential amplifiers
    • H03F2203/45524Indexing scheme relating to differential amplifiers the FBC comprising one or more active resistors and being coupled between the LC and the IC

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Feedback Control In General (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了用于处理人工神经网络中的矢量‑矩阵乘法(VMM)阵列的电流输出的多个实施方案。实施方案包括加法器电路和激活函数电路。加法器电路和/或激活函数电路包括电路元件,该电路元件可响应于从VMM接收的总可能电流而被调节以优化功率消耗。

Description

用于深度学习人工神经网络中的模拟非易失性存储器的可编 程神经元
优先权声明
本申请要求于2018年1月3日提交的美国临时申请号62/613,373和2018年3月27日提交的美国专利申请号15/936,983的权益。
技术领域
本发明公开了用于处理人工神经网络中的矢量-矩阵乘法(VMM)阵列的电流输出的多个实施方案。实施方案包括加法器电路和激活函数电路。加法器电路和/或激活函数电路包括电路元件,该电路元件可响应于从VMM接收的总可能电流而被调节以优化功率消耗。
背景技术
人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),这些人工神经网络用于估计或近似可取决于大量输入并且通常未知的功能。人工神经网络通常包括互相交换消息的互连“神经元”层。
图1示出了人工神经网络,其中圆圈表示神经元的输入或层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得神经网络适应于输入并且能够学习。通常,神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。CMOS模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数CMOS实现的突触都过于庞大。
申请人先前在美国专利申请15/594,439中公开了一种利用一个或多个非易失性存储器阵列作为突触的人工(模拟)神经网络,该专利申请以引用方式并入本文。非易失性存储器阵列作为模拟神经形态存储器操作。神经网络装置包括被配置为接收第一多个输入并从其生成第一多个输出的第一多个突触,以及被配置为接收第一多个输出的第一多个神经元。第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并且与所述第一部分绝缘的浮栅;以及设置在沟道区的第二部分上方并且与所述第二部分绝缘的非浮栅。多个存储器单元中的每一个被配置为存储与浮栅上的多个电子相对应的权重值。多个存储器单元被配置为将第一多个输入乘以所存储的权重值以生成第一多个输出。
必须擦除和编程在模拟神经形态中使用的每个非易失性存储器单元,以在浮栅中保持非常特定且精确的电荷量。例如,每个浮栅必须保持N个不同值中的一个,其中N是可由每个单元指示的不同权重的数量。N的示例包括16、32和64。
申请人还在美国专利申请15/826,345中公开了用于调谐人工神经网络中使用的模拟神经形态存储器的改进的机制和算法,该专利申请以引用方式并入本文。
利用模拟神经形态存储器的人工神经网络通常包括在每个VMM级之后的加法器和激活函数电路。加法器将来自VMM的电流信号转换为电压信号,然后激活函数电路将电压信号规格化并生成规格化电流信号,然后可将该规格化电流信号提供给下一个VMM级。现有技术的加法器和激活电路通常不是灵活的,并且不能针对每个特定VMM阵列进行配置。这是有问题的,因为VMM可能在其可输出的最大电流电平上变化。
所需要的是用于人工神经网络中的改进的加法器和激活电路,其中加法器和激活电路可考虑特定VMM的特性而调节或修整。
发明内容
本发明公开了用于处理人工神经网络中的矢量-矩阵乘法(VMM)阵列的电流输出的多个实施方案。实施方案包括加法器电路和激活函数电路。加法器电路和/或激活函数电路包括电路元件,该电路元件可响应于从VMM接收的总可能电流而被调节以优化功率消耗。
附图说明
图1为示出人工神经网络的示意图。
图2为常规的2栅极非易失性存储器单元的横截面侧视图。
图3为常规的4栅极非易失性存储器单元的横截面侧视图。
图4为常规的3栅极非易失性存储器单元的侧面剖视图。
图5为另一个常规的2栅极非易失性存储器单元的横截面侧视图。
图6为示出利用非易失性存储器阵列的示例性人工神经网络的不同级的示意图。
图7为示出矢量乘法器矩阵的框图。
图8为示出矢量乘法器矩阵的各种级的框图。
图9描绘了用于人工神经网络的非易失性存储器单元的阵列。
图10描绘了对图9的非易失性存储器单元执行操作的操作电压。
图11描绘了用于人工神经网络的非易失性存储器单元的阵列。
图12描绘了对图11的非易失性存储器单元执行操作的操作电压。
图13描绘了用于人工神经网络的非易失性存储器单元的阵列。
图14描绘了对图13的非易失性存储器单元执行操作的操作电压。
图15描绘了用于人工神经网络的非易失性存储器单元的阵列。
图16描绘了用于对图15的非易失性存储器单元执行操作的操作电压。
图17描绘了耦接到加法器电路和激活函数电路的VMM阵列。
图18描绘了图17的激活函数电路的输入-输出特性的图表。
图19描绘了现有技术的加法器电路。
图20描绘了可调节加法器电路的实施方案。
图21描绘了可变电阻器的实施方案。
图22描绘了控制电路的实施方案。
图23描绘了可调节加法器电路的实施方案。
图24描绘了差动可调节加法器电路的实施方案。
图25描绘了人工神经网络级的实施方案,该人工神经网络级包括VMM阵列、加法器电路、激活函数电路和控制电路。
图26描绘了参考控制电路。
图27描绘了可调节加法器电路的实施方案。
图28描绘了可调节加法器电路的实施方案。
图29描绘了差动可调节加法器电路的实施方案。
图30描绘了激活函数电路的实施方案。
图31描绘了运算放大器的实施方案。
图32描绘了高压运算放大器的实施方案。
具体实施方式
本发明的人工神经网络利用CMOS技术和非易失性存储器阵列的组合。
非易失性存储器单元
数字非易失性存储器是众所周知的。例如,美国专利5,029,130(“’130专利”)公开了一种分裂栅非易失性存储器单元阵列,并且出于所有目的将该专利以引用方式并入本文。此类存储器单元在图2中示出。每个存储器单元210包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并且与其绝缘(并控制其电导率),并且形成在源极区16的一部分上方。字线端子22(其通常被耦接到字线)具有设置在沟道区18的第二部分上方并且与该沟道区的第二部分绝缘(并且控制其电导率)的第一部分,以及向上延伸并且位于浮栅20上方的第二部分。浮栅20和字线端子22通过栅极氧化物与衬底12绝缘。位线24耦接到漏极区16。
通过将高的正电压置于字线端子22上来对储器单元210进行擦除(其中电子从浮栅去除),这导致浮栅20上的电子经由Fowler-Nordheim隧穿从浮栅20到字线端子22隧穿通过中间绝缘体。
通过将正电压置于字线端子22上以及将正电压置于源极16上来编程存储器单元210(其中电子被置于浮栅上)。电子电流将从源极16流向漏极14。当电子到达字线端子22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物26被注入到浮栅20上。
通过将正读取电压置于漏极14和字线端子22(其接通在字线端子下方的沟道区)上来读取存储器单元210。如果浮栅20带正电(即,电子被擦除以及正极耦合到漏极16),则沟道区在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。
表1描绘了可以施加到存储器单元210的端子用于执行读取、擦除和编程操作的典型电压范围:
表1:图2的闪存存储器单元210的操作
WL BL SL
读取 2-3V 0.6V-2V 0V
擦除 约11-13V 0V 0V
编程 1-2V 1-3μA 9-10V
其他分裂栅存储器单元配置是已知的。例如,图3描绘了四栅极存储器单元310,其包括源极区14、漏极区16、在沟道区18的第一部分上方的浮栅20、在沟道区18的第二部分上方的选择栅28(通常耦接到字线)、在浮栅20上方的控制栅22、以及在源极区14上方的擦除栅30。这种配置在美国专利6,747,310中有所描述,该专利以引用方式并入本文以用于所有目的。这里,除了浮栅20之外,所有的栅极均为非浮栅,这意味着它们电连接到或能够电连接到电压源。编程由来自沟道区18的受热电子示出,电子将自身注入浮栅20上。擦除通过从浮栅20隧穿到擦除栅30的电子来显示。
表2描绘了可以施加到存储器单元310的端子用于执行读取、擦除和编程操作的典型电压范围:
表2:图3的闪存存储器单元310的操作
WL/SG BL CG EG SL
读取 1.0V-2V 0.6V-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.7V-2.2V 0.6V-2V 0-2.6V 0V
擦除 -0.5V/0V 0V 11.5V 0V
编程 1V 2-3μA 4.5V 7-9V
图5描绘了叠栅存储器单元510。存储器单元510类似于图2的存储器单元210,不同的是浮栅20在整个沟道区18上方延伸,并且控制栅22在浮栅20上方延伸,由绝缘层分开。擦除、编程和读取操作以与先前针对存储器单元210所述类似的方式操作。
表4描绘了可以施加到存储器单元510的端子用于执行读取、擦除和编程操作的典型电压范围:
表4:图5的闪存存储器单元510的操作
CG BL SL P-sub
读取 2-5V 0.6–2V 0V 0V
擦除 -8至-10V/0V FLT FLT 8-10V/15-20V
编程 8-12V 3V-5V 0V 0V
为了在人工神经网络中利用包括上述类型的非易失性存储器单元之一的存储器阵列,进行了两个修改。第一,对线路进行重新配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,提供存储器单元的连续(模拟)编程。
具体地,阵列中的每个存储器单元的存储器状态(即,浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态,反之亦然。这意味着单元存储装置是模拟的,或者至少可存储许多离散值(诸如16或32个不同的值)中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调谐,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调调整是理想的。
采用非易失性存储器单元阵列的神经网络
图6概念性地示出了利用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。
对于该示例,S0为输入,其为具有5位精度的32x32像素RGB图像(即,三个32x32像素阵列,分别用于每个颜色R、G和B,每个像素为5位精度)。从S0到C1的突触CB1同时具有不同组的权重和共享权重,并且用3x3像素重叠滤波器(内核)扫描输入图像,将滤波器移位1个像素(或根据模型所指示的多于1个像素)。具体地,将图像的3x3部分中的9个像素的值(即,称为滤波器或内核)提供给突触CB1,由此将这9个输入值乘以适当的权重,并且在对该乘法的输出求和之后,由CB1的第一神经元确定并提供单个输出值以用于生成特征映射的其中一层C1的像素。然后将3x3滤波器向右移位一个像素(即,添加右侧的三个像素的列,并释放左侧的三个像素的列),由此将该新定位的滤波器中的9个像素值提供给突触CB1,由此将它们乘以相同的权重并且由相关联的神经元确定第二单个输出值。继续该过程,直到3×3滤波器在整个32×32像素图像上扫描所有三种颜色和所有位(精度值)。然后使用不同组的权重重复该过程以生成C1的不同特征映射,直到计算出层C1的所有特征映射。
在C1处,在本示例中,存在16个特征映射,每个特征映射具有30x30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,突触CB1由16层的二维阵列构成(记住本文所引用的神经元层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。C1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。
在从C1转到S1之前,应用激活函数P1(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。池化阶段的目的是对邻近位置求均值(或者也可使用max函数),以例如减少边缘位置的依赖性,并在进入下一阶段之前减小数据大小。在S1处,存在16个15×15特征映射(即,16个每个15×15像素的不同阵列)。CB2中从S1到C2的突触和相关联神经元利用4×4滤波器扫描S1中的映射,其中滤波器移位1个像素。在C2处,存在22个12×12特征映射。在从C2转到S2之前,应用激活函数P2(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。在S2处,存在22个6×6特征映射。将激活函数应用于从S2到C3的突触CB3,其中C3中的每个神经元连接至S2中的每个映射。在C3处,存在64个神经元。从C3到输出S3的突触CB4将S3完全连接至C3。S3处的输出包括10个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
使用非易失性存储器单元的阵列或阵列的一部分来实现每个级别的突触。图7为包括非易失性存储器单元并且被用作输入层和下一层之间的突触的矢量-矩阵乘法(VMM)阵列的框图。具体地,VMM 32包括非易失性存储器单元阵列33、擦除栅和字线栅解码器34、控制栅解码器35、位线解码器36和源极线解码器37,这些解码器对存储器阵列33的输入进行解码。在该示例中,源极线解码器37还对存储器单元阵列的输出进行解码。存储器阵列有两个用途。首先,它存储将由VMM使用的权重。其次,存储器阵列有效地将输入与存储在存储器阵列中的权重相乘以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且由于原位存储器计算也是高功效的。
将存储器阵列的输出提供至差动加法器(诸如加法运算放大器)38,该差动加法器对存储器单元阵列的输出进行求和,以为该卷积创建单个值。差动加法器是为了实现正权重和负权重与正输入的总和。然后将求和后的输出值提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数可包括sigmoid、tanh或ReLU函数。经修正的输出值成为下一层的特征映射的元素(例如,上述描述中的C1),然后被应用于下一突触以产生下一特征映射层或最终层。电路39还可包括池化功能。因此,在该示例中,存储器阵列构成多个突触(其从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和运算放大器38和激活函数电路39构成多个神经元。
图8是VMM的各个级的框图。如图7所示,通过数模转换器31将输入从数字转换为模拟,并将其提供至输入VMM 32a。输入VMM 32a生成的输出作为下一VMM(隐藏的级别1)32b的输入而提供,该输入继而生成作为下一VMM(隐藏的级别2)32b的输入而提供的输出,以此类推。VMM32的各层用作卷积神经网络(CNN)的突触和神经元的不同层。每个VMM可以是独立的非易失性存储器阵列、或者多个VMM可以利用相同非易失性存储器阵列的不同部分、或者多个VMM可以利用相同非易失性存储器阵列的重叠部分。如图8所示,存在5个层,可能有多于5个层的隐藏层和完全连接层的其他组合。
矢量-矩阵乘法(VMM)阵列
图9描绘了神经元VMM 900,其特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 900包括非易失性存储器单元的存储器阵列903、参考阵列901和参考阵列902。参考阵列901和902用于将流入端子BLR0-3的电流输入转换为电压输入WL0-3。如图所示,参考阵列901和902在列方向上。一般来讲,参考阵列方向与输入线正交。实际上,参考存储器单元是通过多路复用器(多路复用器914,其包括多路复用器和用于偏置参考位线的级联晶体管VBLR)与流入其中的电流输入连接的二极管。将参考单元调谐至目标参考电平。
存储器阵列903用于两个目的。首先,它存储将由VMM 900使用的权重。其次,存储器阵列903有效地将输入(端子BLR0-3中提供的电流输入;参考阵列901和902将这些电流输入转换成输入电压以提供给字线WL0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,电压输入在字线上提供,并且输出在读取(推断)操作期间出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。
表10描绘了可以施加到VMM 900内的存储器单元的端子用于执行读取、擦除和编程操作的典型电压范围。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
图11描绘了神经元VMM 1100,其特别适用于图2所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1100包括非易失性存储器单元的存储器阵列1103、参考阵列1101和参考阵列1102。VMM 1100类似于VMM 1100,不同的是在VMM 1100中,字线在竖直方向上延伸。存在两个参考阵列1101(在顶部,其提供将输入电流转换成用于偶数行的电压的参考)和1102(在底部,其提供将输入电流转换成用于奇数行的电压的参考)。这里,输入在字线上提供,并且输出在读取操作期间出现在源极线上。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。
存储器阵列1103用于两个目的。首先,它存储将由VMM 1100使用的权重。其次,存储器阵列1103有效地将输入(提供到端子BLR0-3的电流输入;参考阵列1101和1102将这些电流输入转换成输入电压以提供给控制栅CG0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,输入在字线上提供,并且输出在读取操作期间出现在源极线上。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。
表12描绘了可以施加到VMM 1100内的存储器单元的端子用于执行读取、擦除和编程操作的典型电压范围。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的源极线和用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
图13描绘了神经元VMM 1300,其特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1300类似于VMM 900,不同的是在VMM1300中,擦除栅线(诸如擦除栅线1301)在竖直方向上延伸。这里,输入在控制栅线上提供,并且输出出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。
存储器阵列1301用于两个目的。首先,它存储将由VMM 1300使用的权重。其次,存储器阵列1301有效地将输入(提供到端子BLR0-3的电流输入;参考阵列1301和1302将这些电流输入转换成输入电压以提供给控制栅CG0-3)乘以存储在存储器阵列中的权重以产生输出,该输出将是到下一层的输入或到最终层的输入。通过执行乘法函数,存储器阵列消除了对单独的乘法逻辑电路的需要,并且也是高功效的。这里,输入在控制栅线上提供,并且输出在读取操作期间出现在位线上。置于位线上的电流执行来自连接到位线的存储器单元的所有电流的求和功能。另选地,可以将输入提供到字线。
VMM 1300为存储器阵列1303中的存储器单元实现单向调谐。也就是说,每个单元被擦除,然后被部分编程,直到达到浮栅上的所需电荷。如果在浮栅上放置过多电荷(使得错误的值存储在单元中),则必须擦除单元,并且部分编程操作的序列必须重新开始。如图所示,共享同一擦除栅的两行需要一起擦除(称为页面擦除),并且此后,每个单元被部分编程,直到达到浮栅上的所需电荷,
图14描绘了用于VMM 1300的操作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
图15描绘了神经元VMM 1500,其特别适用于图3所示类型的存储器单元,并且用作输入层与下一层之间的神经元的突触和部件。VMM 1500包括非易失性存储器单元的存储器阵列1501和参考阵列1502(在阵列的顶部)。另选地,可将另一个参考阵列设置在底部,类似于图10的参考阵列。在其他方面,VMM 1500类似于VMM 1500,不同的是在VMM 1500中,控制栅线(诸如控制栅线1503)在竖直方向上延伸(因此参考阵列1502在与输入控制栅线正交的行方向上),并且擦除栅线(诸如擦除栅线1504)在水平方向上延伸。这里,输入在控制栅线上提供,并且输出出现在源极线上。在一个实施方案中,仅使用偶数行,并且在另一个实施方案中,仅使用奇数行。置于源极线上的电流执行来自连接到源极线的存储器单元的所有电流的求和功能。
ESF矢量矩阵乘法器的其他实施方案如美国专利申请15/826,345中所述,该专利申请以引用方式并入本文。源极线或位线可用作神经元输出(电流求和输出)。
图16描绘了用于VMM 1500的操作电压。表中的列指示置于用于所选单元的字线、用于未选单元的字线、用于所选单元的位线、用于未选单元的位线、用于所选单元的控制栅、用于与所选单元相同扇区中的未选单元的控制栅、用于与所选单元不同扇区中的未选单元的控制栅、用于所选单元的擦除栅、用于未选单元的擦除栅、用于所选单元的源极线、用于未选单元的源极线上的电压。行指示读取、擦除和编程操作。
如本文针对神经网络所述,闪存单元优选地被配置为在亚阈值区域中操作。
本文所述的存储器单元以弱反偏置:
Ids=Io*e(Vg-Vth)/kVt=w*Io*e(Vg)/kVt
w=e(-Vth)/kVt
对于使用存储器单元将输入电流转换为输入电压的I到V对数转换器:
Vg=k*Vt*log[Ids/wp*Io]
对于用作矢量矩阵乘法器VMM的存储器阵列,输出电流为:
Iout=wa*Io*e(Vg)/kVt,即
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
另选地,闪存存储器单元可被配置为在线性区域中操作:
Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*W/L
Wα(Vgs-Vth)
对于I至V线性转换器,在线性区域中操作的存储器单元可用于将输入/输出电流线性地转换为输入/输出电压。
ESF矢量矩阵乘法器的其他实施方案如美国专利申请15/826,345中所述,该专利申请以引用方式并入本文。源极线或位线可用作神经元输出。
加法器和激活函数电路
图17描绘了神经元VMM的两级,之后是加法器和激活函数电路。系统1700包括VMM阵列1701、1702、1704和1705。VMM阵列1701和1702共享神经元输出电路1703(包括加法器电路和激活函数电路),并且VMM阵列1704和1705共享神经元输出电路1706(包括加法器电路和激活函数电路)。VMM阵列1701的输出和VMM 1702的输出在不同时间(例如,在时分复用激活方案中)提供给神经元输出电路1703。神经元输出电路1703首先对VMM 1701或1702的输出电流求和以创建该卷积的单个值,从而实现正权重和负权重与正输入的求和。然后将求和后的输出值提供至激活函数电路,该激活函数电路对输出进行修正。激活函数可包括sigmoid、tanh或ReLU函数。经修正的输出值成为下一层的特征映射的元素,并且然后被应用于下一突触(此处为VMM阵列1704或VMM阵列1705),以产生下一特征映射层或最终层。每个VMM可遵循先前参考图9、图11、图13和图15所述的VMM设计之一。
VMM阵列1704的输出和VMM 1705的输出在不同时间(例如,以时分复用方式)提供给神经元输出电路1706。神经元输出电路1706首先对VMM 1704或1705的输出电流求和以创建该卷积的单个值,从而实现正权重和负权重与正输入的求和。然后将求和后的输出值提供至激活函数电路,该激活函数电路对输出进行修正。激活函数可包括sigmoid、tanh或ReLU函数。经修正的输出值成为下一层的特征映射的元素或代表最终结果,然后被应用于下一突触(若存在)以产生下一特征映射层或最终层。
上述附图中所示的各种VMM阵列的大小取决于架构和卷积操作因素,诸如层深度(输入、隐藏、输出)、滤波器大小、池化大小、特征映射大小和深度等。该大小还取决于是使用输入时分复用还是输出时分复用。
图18描绘了由神经元输出电路1703或1706执行的激活函数的图表1800。在该示例中,激活函数是tanh函数(双曲正切函数)。
图19描绘了现有技术的神经元电路1900,该神经元电路是电流加法器并且将电流信号转换为电压信号。这里,神经元电路1900从VMM诸如VMM1701、1702、1704或1705接收电流(标记为I_NEU),该电流在此表示为电流源1902,该电流源耦接到运算放大器1901的反相输入。运算放大器1901的非反相输入耦接到电压源(标记为VREF)。运算放大器1901的输出(标记为VO)耦接到电阻器1903(标记为R_NEU),然后电阻器1903耦接到电流源1902和运算放大器1901的反相输入。输出电压VO等于电流I_NEU*R_NEU。I_NEU的最大值取决于突触数和包含在VMM中的权重值。值得注意的是,R_NEU为固定电阻,并且随着I_NEU增大,VO和总体功率消耗也将增大。
图20描绘了用于对电流求和并将经求和的电流信号转换为电压信号的神经元电路2000。神经元电路2000从VMM诸如VMM1701、1702、1704或1705接收电流(标记为I_NEU),该电流在此表示为电流源2002,该电流源被提供给运算放大器2001的反相输入。运算放大器2001的非反相输入耦接到电压源(标记为VREF)。运算放大器2001的输出(标记为VO)耦接到可变电阻器2003(标记为R_NEU),然后该可变电阻器耦接到电流源2002和运算放大器2001的反相输入。输出电压Vo等于电流I_NEU*R_NEU-VREF。I_NEU的最大值取决于突触数和包含在VMM中的权重值。与图19的设计不同,R_NEU为可变电阻并且可适用于提供电流I_NEU的VMM。例如,可基于I_NEU中的平均或峰值电流来配置或修整电阻R_NEU以使功率最小化。
图21描绘了可变电阻器2103的实施方案。可变电阻器2103包括第一端子2102和第二端子2103。可变电阻器2103可被配置为将分立电阻器2101a、2101b、...2101p中的一者或多者耦接在第一端子2102与第二端子2103之间,从而配置可变电阻器2103的总电阻(R_NEU)。可选的,这可在配置或修整阶段期间执行。
图22描绘了用于生成控制信号VCONTROL的神经元控制电路2200,以控制用于替换图21的可变电阻器2103的连续可变电阻MOS晶体管。神经元控制电路2200包括运算放大器2201。运算放大器2201的反相输入耦接到电流偏置源2202(生成IBIAS)并且耦接到在线性区域中操作的NMOS R-replica(复制电阻)晶体管2203的源极。NMOS R-replica晶体管2203的漏极耦接到电压源VDREF 2211。运算放大器2201的非反相输入耦接到电压源(标记为VREF 2210)。运算放大器2201的输出2220(标记为VCONTROL)耦接到NMOS晶体管2203的栅极并且耦接到NMOS晶体管2204的栅极。NMOS晶体管2204的漏极耦接到操作电压VD,并且NMOS晶体管2204的源极耦接到大约VREF的电压源。然后,VCONTROL可用作本文图中所描绘的电路中的控制信号。
电路的运作如下。通过运算放大器2201的动作,电压VREF叠加在NMOS R-replica晶体管2203的源极的源极上。因此,NMOS R-replica晶体管2203的等效电阻是Req_NEU=(VDREF–VREF)/Ibias,与PVT(制程/电压/温度)变化无关。由于NMOS R-replica晶体管2203在线性区域中操作,因此其电阻在其Vds(源极-漏极电压)变化期间保持非常恒定。因此,通过使用大小与NMOS R-replica晶体管2203相同或相似并且其栅极由VCONTROL 2220信号控制的MOS,其用作图17中的电阻器1703的等效电阻器。此外,通过调节Ibias(和/或连同VDREF和VREF),电阻可根据需要被配置用于不同的值,诸如用于矩阵矢量乘法器配置的不同阵列大小。
图23描绘了用于对电流进行转换求和并将电流信号转换为电压信号的神经元电路2300。神经元输出电路2300从VMM诸如VMM1701、1702、1704或1705接收电流(标记为I_NEU),该电流在此表示为电流源2302,该电流源被提供给运算放大器2301的反相输入。运算放大器2301的非反相输入耦接到电压源(标记为VREF)。运算放大器2301的输出(标记为VO)耦接到NMOS R_NEU晶体管2303,该NMOS R_NEU晶体管响应于施加到NMOS晶体管2303的栅极的信号VCONTROL而充当有效电阻R_NEU的可变电阻器。NMOS晶体管2303的大小与图22的NMOS R_replica晶体管2203的大小相同或相似。输出电压Vo等于电流I_NEU*R_NEU-VREF。I_NEU的最大值取决于突触数和包含在VMM中的权重值。与图19的设计不同,R_NEU为可变电阻并且可例如适于其所耦接的VMM大小。可通过改变图23中的IBIAS和/或VDREF和/或VREF来改变R_NEU。此外,求和运算放大器2301的功率相对于R_NEU晶体管2303的值进行调整,以使功率消耗最小化。随着R_NEU晶体管2303的值增大,运算放大器2301的偏置(即,功率)经由电流偏置IBIAS_OPA 2304而减小,且反之亦然。
图24描绘了用于对差动电流求和并将差动电流和转换成电压信号的差动神经元电路2400。差动神经元输出电路2400从诸如VMM1701、1702、1704或1705的第一VMM接收第一电流(标记为I_NEU0),并且从诸如VMM1701、1702、1704或1705的第二VMM接收第二电流(标记为I_NEU1),这些电流在此处分别表示为电流源2402和2407。
电流源2402耦接到运算放大器2401的反相输入。运算放大器2401的非反相输入耦接到电压源(标记为VREF)。运算放大器2401的输出(标记为VO_0)耦接到NMOS晶体管2403,该NMOS晶体管响应于施加到NMOS晶体管2403的栅极的信号VCONTROL而充当有效电阻R_NEU的可变电阻器。输出电压VO_0等于电流I_NEU0*R_NEU-VREF。I_NEU的最大值取决于突触数和包含在VMM中的权重值。可通过改变图19和图24中的IBIAS和/或VREF和/或VDREF来改变R_NEU。
电流源2407耦接到运算放大器2406的反相输入并耦接到NMOS晶体管2404和2405。运算放大器2406的非反相输入耦接到电压源(标记为VREF)。运算放大器2406的输出(标记为VO)耦接到NMOS晶体管2405,该NMOS晶体管响应于施加到NMOS晶体管2405的栅极的信号VCONTROL而充当有效电阻R_NEU的可变电阻器。NMOS晶体管2405通过NMOS晶体管2404耦接到VO_0。NMOS晶体管2404响应于施加到NMOS晶体管2404的栅极的信号VCONTROL而充当有效电阻R_NEU的可变电阻器。输出电压VO等于(I+-I-)*R_NEU-VREF。I+=I_NEU0,并且I-=I_NEU1。
图25描绘了系统2500。系统2500包括VMM阵列2501、神经元电路2504(诸如神经元电路2000、2300、2400、2500、2700、2800和2900)、激活函数电路2503(诸如激活函数电路3000)以及用于控制R_NEU(可变电阻)、IBIAS和VCONTROL的控制电路2500(诸如控制系统2200或2300)。控制电路2500为加法器电路2504(诸如经配置的可变电阻和运算放大器电路偏置)和激活电路2503(诸如偏置)提供控制、偏置和可配置性。
图26描绘了控制系统2600。控制系统2600包括参考电路2601或电路2603,参考电路2601提供修整位或配置位、参考电流和参考电压以配置提供VCONTROL(以控制加法器电路的可变电阻)的电路2602,电路2603在配置过程期间和/或在修整过程期间生成用于运算放大器电路的偏置。
图27描绘了可适应神经元2700。可适应神经元2700包括以电流镜构型布置的PMOS晶体管2701和2702。PMOS晶体管2701耦接到I_NEURON 2703,I_NEURON 2703是表示来自VMM(诸如VMM 1701、1702、1704或1705)的电流的电流源。该电流镜射在PMOS晶体管2702的漏极中,其被提供给可变电阻器2704。因此,可适应神经元2700将电流信号(I_NEURON)转换为电压信号(VO)。
图28描绘了可适应神经元2800。图27中的可适应神经元2700的一个缺点是PMOS晶体管2701和2702之间的失配可以影响性能。图28通过仅使用一个PMOS晶体管2801并基本上将其配置为使用开关2802、2803和2804镜射其自身(即,采样保持反射镜)来消除该问题。最初,开关2802和开关2803闭合并且开关2804打开,此时PMOS晶体管2801耦接到I_NEURON,I_NEURON是表示来自VMM(诸如VMM 1701、1702、1704或1705)的电流的电流源。然后,开关2802和2803打开并且开关2804闭合,这使得PMOS晶体管2801将电流I_NEURON从其漏极发送到可变电阻器2806。因此,可适应神经元2800将电流信号(I_NEURON)转换为电压信号(VO)。基本上,晶体管2801对电流I_NEURON进行采样,并且通过将采样的栅极-源极电压存储在其栅极上来保持该电流。
图29描绘了差动可适应神经元2900。差动可适应神经元2900包括I_NEURON+和I_NEURON-,I_NEURON+是表示来自第一VMM(诸如VMM 1701、1702、1704或1705)的电流的电流源,I_NEURON-是表示来自第二VMM(诸如VMM 1701、1702、1704或1705)的电流的电流源。最初,开关2902和2903闭合并且开关2904打开。然后,开关2902和2903打开并且开关2904闭合,这使得PMOS晶体管2901从其漏极发送电流I_NEURON+。然后,节点2909接收电流IO,其等于I_NEURON+减去I_NEURON-。节点2909耦接到运算放大器2907的反相输入并耦接到NMOS晶体管2908的端子。运算放大器2907的非反相输入耦接到电压源VREF。NMOS晶体管2908的另一个端子耦接到运算放大器2907的输出,其为VO。NMOS晶体管2908响应于其栅极上的信号VCONTROL而充当可变电阻器。因此,差动可适应神经元2900将差动电流信号(I_NEURON+-I_NEURON-)转换为电压信号(VO=(I_NEURON+-I_NEURON-)*R_NEU-VREF)。
因此,图20、图23、图24、图25、图27、图28和图29所示的可编程神经元可被配置为适应每个VMM的要求,以实现具有优化功率的所需操作。
可变电阻器的另选的实施方案可包括开关电容电路,其中等效电阻与电容值和开关频率成反比。
图30示出了激活函数电路3000,其使用tanh函数将输入电压对(Vin+和Vin-)转换为电流(Iout_neu)。激活函数电路3000包括如图所示配置的PMOS晶体管3001、3002、3003、3004、3005和3006以及NMOS晶体管3007、3008、3009和3010。晶体管3003、3004和3006用作级联晶体管。输入NMOS对3007和3008在亚阈值区域中操作以实现tanh函数。电流I_neu_max是可从附接的VMM(未示出)接收的最大神经元电流。
图31描绘了加法器电路中用于将电流转换成电压的运算放大器3100。运算放大器3100包括在所示配置中充当可变偏置的PMOS晶体管3101、3102和3105,NMOS晶体管3103、3104、3106和3107,以及NMOS晶体管3108。运算放大器3100的输入端子被标记为Vin+(施加到NMOS晶体管3104的栅极)和Vin-(施加到NMOS晶体管3103的栅极),并且输出为VO。
图32描绘了在控制电路中用于提供电压控制信号VCONTROL的高压运算放大器3200。高压运算放大器3200利用级联结构以避免高压崩溃。高压运算放大器3200包括以级联构型布置的PMOS晶体管3215和3216、以级联构型布置的PMOS晶体管3205和3206、以级联构型布置的PMOS晶体管3201和3203、以级联构型布置的PMOS晶体管3202和3204。高压运算放大器3200还包括以级联构型布置的NMOS晶体管3207和3209,以级联构型布置的NMOS晶体管3208和3210,以级联构型布置的NMOS晶体管3217和3218、以级联构型布置的NMOS晶体管3211和3212、以及以级联构型布置的NMOS晶体管3212和32014。将输入电压Vin+和Vin-分别施加到NMOS晶体管3210和3209的栅极,并且输出为Vo。高压运算放大器3200中的所有晶体管均为高压晶体管。
应当指出,如本文所用,术语“在…上方”和“在…上”两者包容地包含“直接在…上”(之间未设置中间材料、元件或空间)和“间接在…上”(之间设置有中间材料、元件或空间)。类似地,术语“相邻”包括“直接相邻”(之间没有设置中间材料、元件或空间)和“间接相邻”(之间设置有中间材料、元件或空间),“安装到”包括“直接安装到”(之间没有设置中间材料、元件或空间)和“间接安装到”(之间设置有中间材料、元件或空间),并且“电耦合至”包括“直接电耦合至”(之间没有将元件电连接在一起的中间材料或元件)和“间接电耦合至”(之间有将元件电连接在一起的中间材料或元件)。例如,“在衬底上方”形成元件可包括在两者间没有中间材料/元件的情况下在衬底上直接形成元件,以及在两者间有一个或多个中间材料/元件的情况下在衬底上间接形成元件。

Claims (39)

1.一种人工神经网络,包括:
矢量-矩阵乘法阵列,所述矢量-矩阵乘法阵列包括闪存存储器单元的行和列;
加法器电路,所述加法器电路用于从所述矢量-矩阵乘法阵列接收电流并且用于响应于所接收的电流生成输出电压,所述加法器电路包括可变电阻器;和
控制系统,所述控制系统用于响应于位集合而调节所述可变电阻器,所述位集合包括配置位和修整位中的一者或多者。
2.根据权利要求1所述的人工神经网络,还包括:
激活函数电路,所述激活函数电路用于从所述加法器电路接收所述输出电压作为输入,并响应于所述输出电压生成输出电流。
3.根据权利要求2所述的人工神经网络,其中所述激活函数电路对所述输入执行双曲正切函数以生成所述输出电流。
4.根据权利要求2所述的人工神经网络,其中所述激活函数电路对所述输入执行ReLU函数以生成所述输出电流。
5.根据权利要求2所述的人工神经网络,其中所述激活函数电路对所述输入执行Sigmoid函数以生成所述输出电流。
6.根据权利要求1所述的人工神经网络,其中所述可变电阻器包括分立电阻器元件。
7.根据权利要求1所述的人工神经网络,其中所述可变电阻器包括MOS晶体管。
8.根据权利要求1所述的人工神经网络,其中所述加法器电路包括运算放大器。
9.根据权利要求8所述的人工神经网络,其中根据矢量矩阵乘法器阵列大小来调整所述运算放大器的偏置。
10.根据权利要求9所述的人工神经网络,其中所述运算放大器的所述偏置基于所述可变电阻器的值。
11.根据权利要求1所述的人工神经网络,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的位线上提供。
12.根据权利要求1所述的人工神经网络,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的源极线上提供。
13.根据权利要求1所述的人工神经网络,其中所述闪存存储器单元为分裂栅存储器单元。
14.一种人工神经网络,包括:
矢量-矩阵乘法阵列,所述矢量-矩阵乘法阵列包括闪存存储器单元的行和列;
加法器电路,所述加法器电路用于从所述矢量-矩阵乘法阵列接收差动输入电流信号并且用于响应于所述差动输入电流信号生成输出电压,所述加法器电路包括可变电阻器;和
控制系统,所述控制系统用于响应于位集合而调节所述可变电阻器,其中所述位集合包括配置位和修整位中的一者或多者。
15.根据权利要求14所述的人工神经网络,还包括:
激活函数电路,所述激活函数电路用于从所述加法器电路接收所述输出电压,并响应于所述输出电压生成输出电流。
16.根据权利要求15所述的人工神经网络,其中所述激活函数电路对所述输入执行双曲正切函数以生成所述输出电流。
17.根据权利要求15所述的人工神经网络,其中所述激活函数电路对所述输入执行ReLU函数以生成所述输出电流。
18.根据权利要求15所述的人工神经网络,其中所述激活函数电路对所述输入执行Sigmoid函数以生成所述输出电流。
19.根据权利要求14所述的人工神经网络,其中所述加法器电路包括运算放大器。
20.根据权利要求19所述的人工神经网络,其中根据矢量矩阵乘法器阵列大小来调整所述运算放大器的偏置。
21.根据权利要求20所述的人工神经网络,其中所述运算放大器的所述偏置与所述可变电阻器的值相关。
22.根据权利要求14所述的人工神经网络,其中所述可变电阻器包括分立电阻器元件。
23.根据权利要求14所述的人工神经网络,其中所述可变电阻器包括MOS晶体管。
24.根据权利要求14所述的人工神经网络,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的位线上提供。
25.根据权利要求14所述的人工神经网络,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的源极线上提供。
26.根据权利要求14所述的人工神经网络,其中所述闪存存储器单元为分裂栅存储器单元。
27.一种用于人工神经网络的可编程神经元,包括:
矢量-矩阵乘法阵列,所述矢量-矩阵乘法阵列包括闪存存储器单元的行和列;
神经元输出电路,所述神经元输出电路用于从所述矢量-矩阵乘法阵列接收电流并且用于响应于所接收的电流生成输出,所述神经元输出电路包括可变电阻器;和
控制系统,所述控制系统用于响应于位集合而调节所述可变电阻器,其中所述可变电阻器是由所述位集合配置的并且所述位集合包括配置位和修整位中的一者或多者。
28.根据权利要求27所述的可编程神经元,其中所述神经元输出电路包括
激活函数电路,所述激活函数电路用于从加法器电路接收输出电压作为输入,并响应于所述输出电压生成输出电流。
29.根据权利要求28所述的可编程神经元,其中所述激活函数电路对所述输入执行双曲正切函数以生成所述输出电流。
30.根据权利要求28所述的可编程神经元,其中所述激活函数电路对所述输入执行ReLU函数以生成所述输出电流。
31.根据权利要求28所述的可编程神经元,其中所述激活函数电路对所述输入执行Sigmoid函数以生成所述输出电流。
32.根据权利要求27所述的可编程神经元,其中所述可变电阻器包括分立电阻器元件。
33.根据权利要求27所述的可编程神经元,其中所述可变电阻器包括MOS晶体管。
34.根据权利要求28所述的可编程神经元,其中所述加法器电路包括运算放大器。
35.根据权利要求34所述的可编程神经元,其中根据矢量矩阵乘法器阵列大小来调整所述运算放大器的偏置。
36.根据权利要求35所述的可编程神经元,其中所述运算放大器的所述偏置基于所述可变电阻器的值。
37.根据权利要求27所述的可编程神经元,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的位线上提供。
38.根据权利要求27所述的可编程神经元,其中来自所述矢量-矩阵乘法阵列的所述电流在所述矢量-矩阵乘法阵列的源极线上提供。
39.根据权利要求27所述的可编程神经元,其中所述闪存存储器单元为分裂栅存储器单元。
CN201880085396.0A 2018-01-03 2018-11-29 用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元 Active CN111542840B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862613373P 2018-01-03 2018-01-03
US62/613,373 2018-01-03
US15/936,983 US11354562B2 (en) 2018-01-03 2018-03-27 Programmable neuron for analog non-volatile memory in deep learning artificial neural network
US15/936,983 2018-03-27
PCT/US2018/063147 WO2019135839A1 (en) 2018-01-03 2018-11-29 Programmable neuron for analog non-volatile memory in deep learning artificial neural network

Publications (2)

Publication Number Publication Date
CN111542840A CN111542840A (zh) 2020-08-14
CN111542840B true CN111542840B (zh) 2023-08-18

Family

ID=67058374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880085396.0A Active CN111542840B (zh) 2018-01-03 2018-11-29 用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元

Country Status (7)

Country Link
US (1) US11354562B2 (zh)
EP (1) EP3735656B1 (zh)
JP (1) JP7244525B2 (zh)
KR (1) KR102616978B1 (zh)
CN (1) CN111542840B (zh)
TW (1) TWI785174B (zh)
WO (1) WO2019135839A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6833873B2 (ja) 2016-05-17 2021-02-24 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器
US10699779B2 (en) 2017-11-29 2020-06-30 Silicon Storage Technology, Inc. Neural network classifier using array of two-gate non-volatile memory cells
US11687766B2 (en) * 2018-06-19 2023-06-27 Qualcomm Incorporated Artificial neural networks with precision weight for artificial intelligence
US10528643B1 (en) * 2018-08-01 2020-01-07 Sandisk Technologies Llc Vector-matrix multiplication using non-volatile memory cells
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
US10489483B1 (en) * 2018-09-21 2019-11-26 National Technology & Engineering Solutions Of Sandia, Llc Circuit arrangement and technique for setting matrix values in three-terminal memory cells
US10877752B2 (en) * 2018-09-28 2020-12-29 Intel Corporation Techniques for current-sensing circuit design for compute-in-memory
US11500442B2 (en) 2019-01-18 2022-11-15 Silicon Storage Technology, Inc. System for converting neuron current into neuron current-based time pulses in an analog neural memory in a deep learning artificial neural network
US11023559B2 (en) 2019-01-25 2021-06-01 Microsemi Soc Corp. Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit
US10720217B1 (en) 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
US11423979B2 (en) * 2019-04-29 2022-08-23 Silicon Storage Technology, Inc. Decoding system and physical layout for analog neural memory in deep learning artificial neural network
US11449741B2 (en) 2019-07-19 2022-09-20 Silicon Storage Technology, Inc. Testing circuitry and methods for analog neural memory in artificial neural network
US11393546B2 (en) * 2019-07-19 2022-07-19 Silicon Storage Technology, Inc. Testing circuitry and methods for analog neural memory in artificial neural network
CN110533160A (zh) * 2019-07-22 2019-12-03 北京大学 基于nor flash模拟量计算阵列的深度神经网络
US11562212B2 (en) * 2019-09-09 2023-01-24 Qualcomm Incorporated Performing XNOR equivalent operations by adjusting column thresholds of a compute-in-memory array
KR102225558B1 (ko) * 2019-10-14 2021-03-08 연세대학교 산학협력단 온칩 활성화 함수가 구현된 아날로그 신호 전달 기반의 멀티 레이어 연산 회로
CN110991623B (zh) * 2019-12-20 2024-05-28 中国科学院自动化研究所 基于数模混合神经元的神经网络运算系统
US11568021B2 (en) 2020-02-21 2023-01-31 Alibaba Group Holding Limited Vector-vector multiplication techniques for processing systems
US11355184B2 (en) 2020-03-05 2022-06-07 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network with substantially constant array source impedance with adaptive weight mapping and distributed power
US11038520B1 (en) * 2020-04-15 2021-06-15 International Business Machines Corporation Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration
KR20210143614A (ko) * 2020-05-20 2021-11-29 삼성전자주식회사 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법
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
US11289171B1 (en) * 2020-10-02 2022-03-29 Sandisk Technologies Llc Multi-level ultra-low power inference engine accelerator
WO2022181999A1 (ko) * 2021-02-23 2022-09-01 한국과학기술원 우수한 선형성 특성을 갖는 뉴로모픽 시냅스 소자 및 그 동작 방법
US11605426B2 (en) * 2021-04-23 2023-03-14 Applied Materials, Inc. Retention drift correction in non-volatile memory arrays
US20230049032A1 (en) * 2021-08-02 2023-02-16 Silicon Storage Technology, Inc. Output circuitry for analog neural memory in a deep learning artificial neural network
US11989440B2 (en) 2021-08-11 2024-05-21 Silicon Storage Technology, Inc. Hybrid memory system configurable to store neural memory weight data in analog form or digital form
US11489534B1 (en) * 2021-10-11 2022-11-01 Cirrus Logic, Inc. Digital-to-analog conversion architecture and method
US11687252B2 (en) 2021-10-18 2023-06-27 Western Digital Technologies, Inc. Non-volatile memory with pre-trained model and inference circuit
CN114139692B (zh) * 2021-11-30 2024-03-08 河南科技大学 一种基于模拟态架构的cmos人工神经元功能电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237210A (en) * 1992-03-12 1993-08-17 Intel Corporation Neural network accomodating parallel synaptic weight adjustments for correlation learning algorithms
US5353382A (en) * 1990-10-15 1994-10-04 California Institute Of Technology Programmable synapse for neural network applications
JP2016197484A (ja) * 2015-04-03 2016-11-24 株式会社半導体エネルギー研究所 放送システム
CN106815636A (zh) * 2016-12-30 2017-06-09 华中科技大学 一种基于忆阻器的神经元电路

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2677656B2 (ja) * 1989-02-28 1997-11-17 富士通株式会社 ニューロコンピュータの集中制御方式
JP2679738B2 (ja) 1989-03-01 1997-11-19 富士通株式会社 ニューロコンピュータにおける学習処理方式
US5305250A (en) 1989-05-05 1994-04-19 Board Of Trustees Operating Michigan State University Analog continuous-time MOS vector multiplier circuit and a programmable MOS realization for feedback neural networks
US5148514A (en) * 1989-05-15 1992-09-15 Mitsubishi Denki Kabushiki Kaisha Neural network integrated circuit device having self-organizing function
JP2517410B2 (ja) * 1989-05-15 1996-07-24 三菱電機株式会社 学習機能付集積回路装置
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
JPH0451382A (ja) * 1990-06-20 1992-02-19 Hitachi Ltd 情報処理装置
US5264734A (en) 1992-05-19 1993-11-23 Intel Corporation Difference calculating neural network utilizing switched capacitors
US5256911A (en) 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
US6041322A (en) * 1997-04-18 2000-03-21 Industrial Technology Research Institute Method and apparatus for processing data in a neural network
US6829598B2 (en) 2000-10-02 2004-12-07 Texas Instruments Incorporated Method and apparatus for modeling a neural synapse function by utilizing a single conventional MOSFET
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
US6781186B1 (en) * 2003-01-30 2004-08-24 Silicon-Based Technology Corp. Stack-gate flash cell structure having a high coupling ratio and its contactless flash memory arrays
US8464123B2 (en) * 2009-05-07 2013-06-11 Ramot At Tel Aviv University Ltd. Matrix structure for block encoding
US8532602B2 (en) 2009-06-30 2013-09-10 Skyworks Solutions, Inc. Switching system with linearizing circuit
JP5300773B2 (ja) * 2010-03-29 2013-09-25 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
CN102456157B (zh) 2010-10-20 2015-08-26 北京大学 神经元器件和神经网络
US9418333B2 (en) * 2013-06-10 2016-08-16 Samsung Electronics Co., Ltd. Synapse array, pulse shaper circuit and neuromorphic system
US9715655B2 (en) * 2013-12-18 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
JP6501146B2 (ja) * 2014-03-18 2019-04-17 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法
US9922715B2 (en) * 2014-10-03 2018-03-20 Silicon Storage Technology, Inc. Non-volatile split gate memory device and a method of operating same
EP3035249B1 (en) 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
US10169701B2 (en) * 2015-05-26 2019-01-01 International Business Machines Corporation Neuron peripheral circuits for neuromorphic synaptic memory array based on neuron models
US10325006B2 (en) 2015-09-29 2019-06-18 International Business Machines Corporation Scalable architecture for analog matrix operations with resistive devices
US10014318B2 (en) * 2015-10-24 2018-07-03 Monocithic 3D Inc Semiconductor memory device, structure and methods
EP3208750A1 (en) 2016-02-22 2017-08-23 Universität Zürich An analogue electronic deep neural network
JP6833873B2 (ja) 2016-05-17 2021-02-24 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器
US10664745B2 (en) * 2016-06-29 2020-05-26 International Business Machines Corporation Resistive processing units and neural network training methods
US10776684B1 (en) * 2016-11-02 2020-09-15 National Technology & Engineering Solutions Of Sandia, Llc Mixed core processor unit
JP6183980B1 (ja) * 2016-12-02 2017-08-23 国立大学法人東京工業大学 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
US10909449B2 (en) * 2017-04-14 2021-02-02 Samsung Electronics Co., Ltd. Monolithic multi-bit weight cell for neuromorphic computing
WO2018201060A1 (en) * 2017-04-27 2018-11-01 The Regents Of The University Of California Mixed signal neuromorphic computing with nonvolatile memory devices
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
US11545214B2 (en) * 2020-07-08 2023-01-03 Samsung Electronics Co., Ltd. Resistive memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353382A (en) * 1990-10-15 1994-10-04 California Institute Of Technology Programmable synapse for neural network applications
US5237210A (en) * 1992-03-12 1993-08-17 Intel Corporation Neural network accomodating parallel synaptic weight adjustments for correlation learning algorithms
JP2016197484A (ja) * 2015-04-03 2016-11-24 株式会社半導体エネルギー研究所 放送システム
CN106815636A (zh) * 2016-12-30 2017-06-09 华中科技大学 一种基于忆阻器的神经元电路

Also Published As

Publication number Publication date
US11354562B2 (en) 2022-06-07
TW201931214A (zh) 2019-08-01
EP3735656B1 (en) 2023-12-27
KR102616978B1 (ko) 2023-12-21
CN111542840A (zh) 2020-08-14
EP3735656A4 (en) 2021-10-13
TWI785174B (zh) 2022-12-01
US20190205729A1 (en) 2019-07-04
WO2019135839A8 (en) 2020-07-09
KR20200096808A (ko) 2020-08-13
JP7244525B2 (ja) 2023-03-22
JP2021509514A (ja) 2021-03-25
EP3735656A1 (en) 2020-11-11
WO2019135839A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
CN111542840B (zh) 用于深度学习人工神经网络中的模拟非易失性存储器的可编程神经元
JP7399153B2 (ja) 複数のベクトルマトリックス乗算アレイ及び共有構成要素を備える、深層学習ニューラルネットワーク用のアナログニューラルメモリシステム
EP3844680B1 (en) Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network
CN112585623B (zh) 用于深度学习神经网络的可配置模拟神经存储器系统
CN111386572A (zh) 用于人工神经网络中的模拟神经形态存储器的高精度和高效调谐机制和算法
KR102616977B1 (ko) 딥 러닝 인공 신경망에서의 아날로그 신경 메모리 내의 기준 트랜지스터들 및 메모리 셀들에 대한 보상
CN111886804A (zh) 用于深度学习人工神经网络中的模拟神经存储器的解码器
CN111837189A (zh) 用于深度学习神经网络中的模拟非易失性存储器的数据刷新的方法和设备
CN111837190A (zh) 用于在深度学习人工神经网络中对模拟神经存储器进行编程的方法和设备
CN113366504B (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