CN113924581A - 用于存储器内计算的无晶体管全忆阻器神经形态电路 - Google Patents
用于存储器内计算的无晶体管全忆阻器神经形态电路 Download PDFInfo
- Publication number
- CN113924581A CN113924581A CN202080032914.XA CN202080032914A CN113924581A CN 113924581 A CN113924581 A CN 113924581A CN 202080032914 A CN202080032914 A CN 202080032914A CN 113924581 A CN113924581 A CN 113924581A
- Authority
- CN
- China
- Prior art keywords
- circuit
- output
- input
- operand
- spike
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B63/00—Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
- H10B63/80—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Logic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
一种电路,用于将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且用于将乘法运算的乘积相加,其中,N≥2;所述电路包括:N个输入导体;N个可编程电导电路,每个可编程电导电路连接在所述输入导体中的一个和至少一个输出导体之间;每个可编程电导电路被布置成能够在以已知方式取决于一个所述第一操作数的值处进行编程;每个输入导体被布置成从输入电路接收电压尖峰的输入串,所述电压尖峰的输入串具有以已知方式从一个所述第二操作数导出的尖峰速率;以及至少一个输出电路,其被布置为生成电压尖峰的输出串,该电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率。
Description
相关申请的交叉引用
本申请涉及并要求2019年5月7日提交的美国临时申请No.62/844,611、2019年6月13日提交的美国临时申请No.62/860,915和2020年3月3日提交的美国非临时申请No.16/808,222的优先权,这些申请以引用的方式并入本文中,如同全文阐述一样。本申请还涉及于2020年3月3日提交的美国非临时申请No.16/808,227和PCT申请(参考号No.632560-2),这两项申请同时提交。
关于联邦资金的声明
本发明是根据美国政府合同FA8650-18-C-7869作出的。美国政府在本发明中具有某些权利。
技术领域
本技术的实施例总体上涉及用于以并行方式进行快速且能量高效的乘法累加(MAC)算术运算、特别是向量矩阵乘法(VMM)运算的装置和方法。
背景技术
在硬件中实现VMM运算的一种方式是被称为交叉阵列加速器的体系结构。在使用模拟输入和输出的已知交叉阵列加速器中,每个交叉点处的存储器单元的电导被用作MAC操作数之一,并且欧姆定律被用于实现乘法。迄今为止,使用互补金属氧化物半导体(CMOS)电路至少部分地(如果不是全部的话)构造这种交叉阵列加速器。
混合CMOS-无源忆阻器交叉电路最近已被开发。无源忆阻器(passive memristor,又名电阻随机存取存储器、ReRAM或RRAM)是一类具有电可重编程器件电阻的两端电路元件;因此,它们原则上可用作非易失性存储单元。在模拟域工作的无源忆阻器非常适合于实现卷积神经网络(CNN)和其他存储器内计算(IMC)应用场景中所需的大量MAC算术运算。在N×M忆阻器交叉阵列中,其中,N是行(字线)的数目,M是列(位线)的数目,无源忆阻器器件连接字线(行)和位线(列)之间的每个交叉点。在第i字线和第j位线之间的任意交叉点(i,j)处,可以通过电压和电流之间的欧姆定律关系Iij=Vi×Gij来实现乘法运算,其中,Iij是流过忆阻器的输出电流,Vi是施加在第i字线上的输入电压(位线设置在地电平),Gij是忆阻器器件的电导。通过基尔霍夫电流定律可以通过沿着共享位线的瞬时电流求和来实现累积,其中Ij是第j位线处的总求和电流。因此,可以实现MAC计算(又名点积或内积运算),((这里是N维输入电压矢量,是第j位线的N维器件电导矢量)。在许多位线并行的情况下,可以同时执行对每条位线的MAC计算,从而可以通过模拟且并行的方式来实现VMM运算i=v·G(这里i=[I1 I2 … IM]是M维输出电流矢量,G=[g1 g2 … gM]是N×M器件电导矩阵)。如果需要,可以将计算输出保存在单独的无源忆阻器交叉阵列中。无源忆阻器模拟点积电路的优点是高面积密度、高速度和功率效率。重要的是,如果应用允许重复使用两个操作数中的一个(例如,器件电导)用于MAC运算,则在数据位置并行执行MAC工作负载,即原位计算,而不像在数字处理器的情况下那样浪费在处理核心和远程存储器之间重复混洗操作数值的时间和能量。这对于基于CNN的深度学习推理应用尤其如此。
图1A示出了形成VMM运算器的一部分的电路10的现有技术的混合信号实现,包括将电路10的两个输入行141和142耦合到单个输出列161的两个模拟非易失性存储器元件(忆阻器)121,1和122,1。忆阻器121,1和122,1中的每一个可编程为分别具有电导G1,1和G2,1。G1,1和G2,1的值分别与第一输入操作数的值成比例,并且可以是不同的。提供输入行141、142以接收输入电压V1、V2。V1和V2的值分别与第二输入操作数成比例,并且可以是不同的。流过输出列161的总求和后的输出电流I将等于V1·G1,1+V2·G2,1,并且因此等于第一输入操作数与第二输入操作数的相应乘法运算的和。
图1B示出了电路10的更完整的实现,电路10包括N个输入行14i(i=1至N)和M列16j(j=1至M)、将每个输入行14i连接到每个输出列16j的忆阻器12i,j。如图1B所示,每个输入行14i连接到数模转换器(DAC)电路18i的输出;每个DAC电路18i被布置为在其输入中接收数字格式的第二操作数中的一个,并且将其转换为与所接收的数字操作数成比例的模拟电压。还如图1B所示,每个输出列通过采样和保持电路20j连接到模数转换器(ADC)电路22的输入,ADC电路22本身具有连接到移位和加法电路24的输出。
在电路10中,数据表示在交叉阵列内部是模拟的(电压和电流),而在阵列外部是数字的(通常是二进制的)。
图1A和图1B中所示的已知电路的代表性工作是由Shafiee,A.,Nag,A.,Muralimanohar,N.,Balasubramonian,R.,Strachan,J.P.,Hu,M.,Williams,R.S.,和Srikumar,V.在2016年6月18-22日韩国首尔国际计算机体系结构研讨会(Proceedings ofthe International Symposium on Computer Architecture)上发表的出版物:“ISAAC:具有交叉模拟算法的卷积神经网络加速器(ISAAC:A convolutional neural networkaccelerator with in-situ analog arithmetic in crossbars)”;第14-26页,并通过引用并入本文。
虽然如图1B所示的混合CMOS-忆阻器点积加速器可以以并行方式实现模拟域计算,但它们面临几个挑战。一个挑战是,与外部数字电路的接口连接/通信需要使用ADC和DAC,如图所示,这导致了面积和能量开销。在一些设计中,ADC/DAC可以消耗总面积和功率的85%至98%。为了减少面积/能量开销,在上面引用的出版物的设计中,每个ADC由多个忆阻器交叉阵列共享。此外,大多数演示仍然需要访问晶体管(1T1M/1T1R,或单晶体管单忆阻器/电阻器单元)来阻挡潜行路径,因此排除了多层可堆叠性。
VMM电路的不同已知示例(未示出)包括模仿尖峰域数据表示的尖峰神经形态电路的全CMOS实现。该电路使用CMOS构建的神经元,布置成将尖峰编码数据输入到突触中,突触包括为处理尖峰编码数据而提供的可变增益放大器。该电路进一步使用CMOS构建的神经元来收集可变增益放大器突触的输出。
尽管存在上面概述的现有技术电路,但是仍然需要用于计算乘法-累加运算的甚至更小、更节能和更快的电路。
发明内容
本说明书的实施例包括用于计算乘法-累加运算的方法,该方法包括向由可编程电导电路组成的交叉阵列提供输入尖峰串(input spike-train)编码的第二操作数,所述可编程电导电路是根据第一操作数而编程的。本说明书的实施例还包括用于实现这种方法的电路。
本说明书的实施例涉及以下概念:
概念1、一种交叉阵列,其包括:多条行线和多条列线;每条行线通过至少一个无源忆阻器突触连接到每条列线;向每条行线提供输入的输入有源忆阻器神经元;以及接收来自每条列线的输出的输出有源忆阻器神经元。
概念2、根据概念1所述的交叉阵列,其中,向每条行线提供输入的每个所述有源忆阻器神经元提供尖峰串或脉冲串。
概念3、根据概念1或2所述的交叉阵列,其中,每个输入有源忆阻器神经元是至少具有两个VO2莫特(Mott)忆阻器和多个电阻器和电容器的电路。
概念4、根据概念1至3所述的交叉阵列,其中,小偏置电流被提供到每个输出有源忆阻器神经元,以微调输出有源忆阻器神经元的静止电位。
概念5、一种执行乘法-累加算术运算的方法,该方法包括:将数据编码成多个尖峰脉冲串;将每个尖峰脉冲串提供给输入有源忆阻器神经元;将每个输入有源忆阻器神经元的输出提供给相应行的无源忆阻器突触;在相同列线上形成所有相应的无源忆阻器突触的输出电流的总和;将电流和提供给连接到所述相同列线的输出有源忆阻器神经元;其中,所述输出有源忆阻器神经元将所述电流和转换为对所述乘法-累加运算进行编码的尖峰脉冲串;以及可选地解码来自所述输出有源忆阻器神经元的尖峰脉冲串的数据。
概念6、一种神经形态交叉阵列电路,包括:多个行线导体和至少一个列线导体;多个可编程电导电路,每个可编程电导电路连接在不同的行线导体和至少一个列线导体之间;多个输入兴奋性(excitatory)紧张性(tonic)神经元电路,每个输入兴奋性紧张性神经元电路具有连接到不同行线导体的输出;以及至少一个输出兴奋性紧张性神经元电路,其具有连接到至少一个列线导体的输入。
概念7、根据概念6所述的神经形态交叉阵列电路,其中,所述至少一个列导体包括多个列线导体;所述多个可编程电导电路分别连接在不同行线导体和不同列线导体之间;所述至少一个输出兴奋性紧张性神经元电路包括多个输出兴奋性紧张性神经元电路,每个输出兴奋性紧张性神经元电路具有连接到不同列线导体的输入。根据实施例,每个可编程电导电路是存储器单元,并且沿着行和列布置的多个可编程电导电路形成存储器阵列。
概念8、根据概念6或7所述的神经形态交叉阵列电路,其中,每个兴奋性紧张性神经元电路包括以相反极性偏置的第一负差分电阻器件和第二负差分电阻器件,所述第一负差分电阻器件和第二负差分电阻器件耦合到第一接地电容器和第二接地电容器。
概念9、根据概念8所述的神经形态交叉阵列电路,其中,所述第一负差分电阻器件具有通过第一负载电阻器连接到神经元电路的输入节点的第一节点和连接到第一电压源的第二节点;所述第一负差分电阻器件的所述第一节点耦合到所述第一接地电容器;所述第二负差分电阻器件具有通过第二负载电阻器连接到所述第一负差分电阻器件的所述第一节点的第一节点和连接到第二电压源的第二节点;所述第二负差分电阻器件的所述第一节点耦合到所述第二接地电容器;所述第二负差分电阻器件的所述第一节点形成神经元电路的输出节点。
概念10、根据概念6至10所述的神经形态交叉阵列电路,所述神经形态交叉阵列电路包括偏置电路,用于向所述至少一个输出兴奋性紧张性神经元电路提供偏置电流,所述偏置电流用于微调所述至少一个输出兴奋性紧张性神经元电路的静息电位。
概念11、根据概念7所述的神经形态交叉阵列电路,所述神经形态交叉阵列电路包括多个偏置电路,用于向所述多个输出兴奋性紧张性神经元电路中的每一个提供偏置电流,所述偏置电流用于微调所述多个输出兴奋性紧张性神经元电路中的每一个的静息电位。
概念12、根据概念6至11所述的神经形态交叉阵列电路,其中,每个兴奋性紧张性神经元电路被布置为输出电压尖峰串,该电压尖峰串具有取决于输入电流的速率。
概念13、一种神经形态交叉阵列电路,包括:多个行线导体和至少一个列线导体;多个可编程电导电路,每个可编程电导电路连接在不同的行线导体和至少一个列线导体之间;多个输入神经元电路,每个输入神经元电路具有连接到不同行线导体的输出;以及至少一个输出神经元电路,其具有连接到至少一个列线导体的输入;其中,每个神经元电路包括以相反极性偏置的第一负差分电阻器件和第二负差分电阻器件,所述第一负差分电阻器件和第二负差分电阻器件耦合到第一接地电容器和第二接地电容器。
概念14、根据概念13所述的神经形态交叉阵列电路,其中,所述至少一个列导体包括多个列线导体;所述多个可编程电导电路分别连接在不同行线导体和不同列线导体之间;所述至少一个输出神经元电路包括多个输出神经元电路,每个输出神经元电路具有连接到不同列线导体的输入。
概念15、根据概念14所述的神经形态交叉阵列电路,其中,每个可编程电导电路是存储器单元,并且沿着行和列布置的多个可编程电导电路形成存储器阵列。
概念16、根据概念15所述的神经形态交叉阵列电路,其中,所述第一负差分电阻器件具有通过第一负载电阻器连接到神经元电路的输入节点的第一节点和连接到第一电压源的第二节点;所述第一负差分电阻器件的所述第一节点耦合到所述第一接地电容器;所述第二负差分电阻器件具有通过第二负载电阻器连接到所述第一负差分电阻器件的所述第一节点的第一节点和连接到第二电压源的第二节点;所述第二负差分电阻器件的所述第一节点耦合到所述第二接地电容器;所述第二负差分电阻器件的所述第一节点形成神经元电路的输出节点。
概念17、根据概念16所述的神经形态交叉阵列电路,所述神经形态交叉阵列电路包括偏置电路,用于向所述至少一个输出神经元电路提供偏置电流,所述偏置电流用于微调所述至少一个输出兴奋性紧张性神经元电路的静息电位。
概念18、根据概念13至17所述的神经形态交叉阵列电路,其中,每个神经元电路是被布置为输出具有取决于输入电流的速率的电压尖峰串的兴奋性紧张性神经元电路。
概念19、根据概念18所述的神经形态交叉阵列电路,其中,输入电流必须大于神经元电路要考虑的预定阈值(或“超阈值(supra threshold)”)。
概念20、一种尖峰域乘法器累加器电路,用于将多个数据中的每一个与多个系数中的每一个相乘并将相乘乘积相加,该电路包括:多个输入兴奋性紧张性神经元电路,每个输入兴奋性紧张性神经元电路被布置用于:
接收与所述多个数据之一成比例的电压;并且
输出具有与接收电压成比例的频率的一系列尖峰;
多个可编程电导电路,每个可编程电导电路具有连接在所述多个输入电路中的一个输入电路的输出中的第一端;每个可编程电导电路被布置成具有与所述多个系数中的一个系数成比例的电导;以及连接到每个可编程电导电路的第二端的至少一个输出兴奋性紧张性神经元电路。根据实施例,每个可编程电导电路是存储器单元,并且多个可编程电导电路形成存储器阵列。
概念21、根据概念20所述的尖峰域乘法器累加器电路,其中,所述多个可编程电导电路是一组多个可编程电导电路中的多个可编程电导电路,并且其中,所述输出兴奋性紧张性神经元电路是一组输出兴奋性紧张性神经元电路中的一个,每个输出兴奋性紧张性神经元电路连接到该组多个可编程电导电路中的多个可编程电导电路的每个可编程电导电路的第二端。
概念22、一种电路,用于将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且用于将乘法运算的乘积相加,其中,N≥2;所述电路包括:N个输入导体;N个可编程电导电路,每个可编程电导电路连接在所述输入导体中的一个和至少一个输出导体之间;每个可编程电导电路被布置成能够在以已知方式取决于一个所述第一操作数的值处进行编程;每个输入导体被布置成从输入电路接收电压尖峰的输入串,所述电压尖峰的输入串具有以已知方式从一个所述第二操作数导出的尖峰速率;至少一个输出电路,其被布置为生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率。
概念23、根据概念22所述的电路,其中,所述至少一个输出电路被布置为通过以下操作生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率:生成以已知方式从在所述至少一个输出导体上接收的电流随时间的积分中导出的第一电位,并且当所述第一电位超过第一预定阈值时,输出具有第一预定值和持续时间的电压尖峰,并且重新初始化所述第一电位。
概念24、根据概念22或概念23所述的电路,其中,每个输入电路包括兴奋性紧张性神经元电路,所述兴奋性紧张性神经元电路被布置为输出电压尖峰串,所述电压尖峰串具有以已知方式从输入电流导出的尖峰速率,其中的输入电流以已知方式从第二操作数导出。
概念25、根据概念24所述的电路,其中,每个兴奋性紧张性神经元电路被提供用于根据所述输入电流随时间的积分以已知方式生成第二电位,并且当所述第二电位超过第二预定阈值时,输出具有第二预定值和持续时间的电压尖峰并重新初始化所述第二电位。
概念26、根据概念24所述的电路,其中,所述N个输入导体包括N个行线导体;所述至少一个输出导体包括多个列线导体,所述多个可编程电导电路分别连接在不同行线导体和不同列线导体之间;并且所述至少一个输出兴奋性紧张性神经元电路包括多个输出兴奋性紧张性神经元电路,每个输出兴奋性紧张性神经元电路具有连接到不同列线导体的输入。
概念27、根据概念22或概念26所述的电路,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
概念28、根据概念27所述的神经形态交叉阵列电路,其中,每个存储器单元包括忆阻器。
概念29、根据概念24所述的神经形态交叉阵列电路,其中,每个兴奋性紧张性神经元电路包括以相反极性偏置的第一负差分电阻器件和第二负差分电阻器件,所述第一负差分电阻器件和第二负差分电阻器件耦合到第一接地电容器和第二接地电容器。
概念30、根据概念29所述的神经形态交叉阵列电路,其中,所述第一负差分电阻器件具有通过第一负载电阻器连接到兴奋性紧张性神经元电路的输入节点的第一节点和连接到第一电压源的第二节点;所述第一负差分电阻器件的所述第一节点耦合到所述第一接地电容器;所述第二负差分电阻器件具有通过第二负载电阻器连接到所述第一负差分电阻器件的所述第一节点的第一节点和连接到第二电压源的第二节点;所述第二负差分电阻器件的所述第一节点耦合到所述第二接地电容器;所述第二负差分电阻器件的所述第一节点形成神经元电路的输出节点。
概念31、根据概念30所述的神经形态交叉阵列电路,所述神经形态交叉阵列电路包括偏置电路,用于向所述至少一个输出兴奋性紧张性神经元电路提供偏置电流,所述偏置电流用于微调所述至少一个输出兴奋性紧张性神经元电路的静息电位。
概念32、一种用于计算乘法-累加运算的方法,该方法包括:将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且将乘法运算的乘积相加,其中,N≥2;所述方法包括:提供N个输入导体;连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体和唯一的输出导体之间;用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;在连接到用第一操作数编程的每个电导电路的输入导体上,输入具有与对应于所述第一操作数的第二操作数成比例的尖峰速率的电压尖峰串;生成与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串。
概念33、根据概念32所述的方法,其中,所述生成与在所述输出导体上接收的尖峰的随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的随时间的电流积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
概念34、根据概念32或33所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
概念35、根据概念34所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
概念36、根据概念34或35所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
概念37、一种计算方法,用于计算N个第一操作数中的每一个乘以N个对应的第二操作数并且将乘法运算的乘积相加的数目M的乘法-累加运算,其中,N≥2并且M≥=2;所述方法包括:提供N个输入导体;连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体和M个输出导体中的一个输出导体之间;用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;在连接到用第一操作数编程的每个电导电路的输入导体上,输入具有与对应于所述第一操作数的第二操作数成比例的尖峰速率的电压尖峰串;生成各自与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的M个输出串。
概念38、根据概念37所述的方法,其中,所述生成与在每个输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
概念39、根据概念37或38所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
概念40、根据概念3918所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
概念41、根据概念39所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
概念42、根据概念37至41所述的方法,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
附图说明
在附图中,通过示例而非限制的方式示出了本发明的各方面。
图1A和图1B是已知MAC和VMM运算电路的示意图。
图2A和图2B是根据本说明书的实施例的MAC和VMM运算电路的示意图。
图3是图2A和图2B的神经元电路的示意图。
图4A和图4B示出了根据本说明书的实施例的电路中的两个基于速率的卷积计算。
图5A至图5D相对于图4A和图4B的计算示出了根据本说明书的实施例的电路的操作。
图6A和图6B示出了根据本说明书的实施例的电路的操作。
图7A和图7B示出了示例性输入和输出图像数据。
图8A、图8B和图8C示出了具有示例仿真的定制MATLAB图像分类前馈CNN模型的示例性网络体系结构。
图9A示出了根据本说明书的实施例的电路。
图9B和图9C示出了图9A的电路的实施例的操作。
图10是根据本说明书的实施例的对电路的模拟性能度量进行总结的表。
图11示出了根据本说明书的实施例的方法。
图12示出了根据本说明书的实施例的方法。
在本说明书中提及的附图应当理解为不必按比例绘制。
具体实施方式
下面结合附图阐述的详细描述旨在作为对本发明的各种实施例的描述,而不旨在表示将实践本发明的仅有的实施例。在本公开中描述的每个实施例仅作为本发明的示例或说明而提供,并且不应当必然被解释为相对于其他实施例是优选的或有利的。在一些实例中,没有详细描述公知的方法、过程、对象和电路,以便不会不必要地模糊本公开的方面。
与上述现有技术电路相比,本说明书的实施例涉及全忆阻器神经形态MAC加速器,其可以是完全模拟的,其可以采用非易失性无源忆阻器突触来进行行到列耦合,以及使用尖峰有源忆阻器神经元来生成输入和输出信号。本说明书的实施例自然利用类似于哺乳动物脑的尖峰域数据表示。本说明书的实施例采用完全模拟的神经形态架构和用于存储器内MAC加速的尖峰域数据表示。
图2A示出了根据本说明书的实施例的电路30,用于第一操作数的N个乘法运算(图2A中N≥2并且N=25),每个第一操作数与对应的第二操作数进行乘法运算,并且用于将乘法的乘积相加。根据本说明书的实施例,电路30包括N个输入导体32i(i=1至N);N个可编程电导电路Wi,1,每个可编程电导电路Wi,1连接在输入导体32i中的一个与至少一个输出导体341之间。根据本说明书的实施例,每个可编程电导电路Wi,1被布置为在以第一已知方式从第一操作数之一导出的值处可编程。根据本说明书的实施例,语言“X以已知方式取决于Y”可以表示“X以已知线性方式取决于Y”(例如“X与Y成比例”,具有已知的比率)或“X以已知的非线性方式取决于Y”,这样已知X允许求解Y的值并是相互地。根据该说明书的实施例,每个输入导体32i被布置为从输入电路36i接收电压尖峰的输入串ini,每个电压尖峰的输入串ini具有尖峰速率,该尖峰速率以第二已知方式从所述第二操作数之一导出。图2A示出了电压尖峰的两个输入串in1和in2,每个电压尖峰的输入串具有以第三已知方式从一个相应的第二操作数中导出(例如,与相应的第二操作数成比例)的尖峰速率。如图2A所示,每个第二操作数本身可以以第四已知方式从例如要在卷积中处理的图像块(image patch)的像素的灰度强度导出。根据该说明书的实施例,至少一个输出导体341可以连接到输出电路381,该输出电路381被布置为生成具有尖峰速率的电压尖峰的输出串out1,该尖峰速率以第五已知方式从在所述至少一个输出导体上接收的尖峰的面积随时间的和中导出。
图2A中示出的电路具有总共M(=25)个输入神经元,所述输入神经元例如可以一次性(in one shot)用预训练的(5x5)卷积核(或CNN术语中的卷积滤波器)对(5x5)输入图像块进行卷积。M个输入神经元36i中的每一个通过忆阻器“突触”W1,i连接到相同的输出神经元381,所述忆阻器“突触”W1,i用作存储卷积权重的可编程电阻器。对于CNN推理应用,仅实现前馈连接,即数据仅从输入电路流到输出电路,而没有反馈(循环)连接。换句话说,out1处的输出数据不被反馈到任何输入。除了(以尖峰的形式)传输数据外,每个输入-输出神经元对之间的电阻连接还执行缩放操作(根据欧姆定律)。缩放值由表示5x5卷积核(滤波器)的权重元素的器件电导确定。
图2B示出了电路30的更完整的视图,示出了电路30可以包括多于一列,其中:所述N个输入导体包括N个行线导体(图2B中N=25),其中关于图2A描述的“至少一个输出导体”341实际上包括多个M个(图2B中M=10)列线导体34j,其中j=1至M;并且其中,关于图2A描述的多个可编程电导电路实际上包括N x M个可编程电导电路Wi,j,每个可编程电导电路Wi,j连接在不同行线导体32i和不同列线导体34j之间。如图2B所示,关于图2A描述的“至少一个输出兴奋性紧张性神经元电路”381实际上可以包括多个M个输出兴奋性紧张性神经元电路38j,每个输出兴奋性紧张性神经元电路38j具有连接到不同列线导体34j的输入。
如上所述,图2B的全忆阻器(即,无晶体管)VMM电路可用于(5x5)输入图像与十个(5x5)卷积核(滤波器)的同时卷积。这是由一个(25x10)无源忆阻器交叉阵列实现的,该阵列由图2A中MAC电路的10个不同副本组成。每个副本接收相同的输入数据,但是对来自不同卷积核(滤波器)的权重进行编码。在该实现中,25个输入神经元在10个卷积核之间共享。有10个输出神经元和250个(25x10)突触来存储250个权重值。在最简单的实现方法中,每个权重可以存储为非易失性无源忆阻器的模拟电导值。应当注意的是,由于在本说明书的实施例中,权重是从正电阻导出的,因此权重也是正值。更复杂的实现方式可堆叠多个忆阻器单元以增加权重的位精度。
根据本说明书的实施例,所述多个可编程电导电路Wi,j中的每一个可以包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列,并且包括用于在每个存储器单元中存储期望值的编程电路(未示出),例如作为以已知方式从要存储的值导出的电导。这样的实施例有利地允许在计算第一操作数之后立即将第一操作数存储在存储器单元中,从而允许在计算第一操作数之后立即在VMM中使用第一操作数,而不必将第一操作数从存储器传送到不同的VMM电路。
根据本说明书的实施例,每个存储器单元Wi,j可以包括无源忆阻器。根据本说明书的实施例,无源忆阻器可以包括Pt/(Ta2O5:Ag)/Ru(由铂和钌金属电极夹置的掺银五氧化二钽开关层)无源忆阻器,例如在出版物“Yoon,Jung Ho等所著“具有预先调节的导电隧道路径的真正无电铸和低能忆阻器(Truly electroforming-free and low-energymemristors with preconditioned conductive tunneling paths)”,先进功能材料(Advanced Functional Materials),27(2017):1702010”中所描述的,该出版物通过引用合并于此。
根据本说明书的实施例,至少一个输出电路381被布置为生成具有速率的电压尖峰的输出串out1,所述速率通过以下操作以第五已知方式从在所述至少一个输出导体341上接收的尖峰的面积随时间的和中导出:生成以第六已知方式从在所述至少一个输出导体341上接收的电流随时间的积分中导出的第一电位,并且当所述第一电位超过第一预定阈值时,输出具有第一预定值和持续时间的电压尖峰,并且重新初始化所述第一电位。根据一个实施例,为了降低噪声,输入电流必须大于输出神经元电路要考虑的预定阈值(或“超阈值”)。
根据本发明的实施例,输出电路381可以是兴奋性紧张性神经元电路,例如图3中所示的神经元电路40,其包括第一负差分电阻器件42和第二负差分电阻器件44,每个负差分电阻器件以相反的极性偏置,所述第一负差分电阻器件42和第二负差分电阻器件44耦合到第一接地电容器46和第二接地电容器48。更详细地,根据本说明书的实施例,第一负差分电阻器件42具有通过第一负载电阻器56连接到兴奋性紧张性神经元电路40的输入节点52的第一节点50和连接到第一电压源60的第二节点58,所述第一负差分电阻器件42的所述第一节点50耦合到所述第一接地电容器46。此外,在所述实施例中,第二负差分电阻器件44具有通过第二负载电阻器64连接到第一负差分电阻器件42的第一节点50的第一节点62和连接到第二电压源68的第二节点66,所述第二负差分电阻器件44的所述第一节点62耦合到所述第二接地电容器48;所述第二负差分电阻器件44的所述第一节点62形成神经元电路40的输出节点。
根据本说明书的实施例,输入电路36i可以各自包括兴奋性紧张性神经元电路,其被布置为输出具有尖峰速率的电压尖峰串,该尖峰速率以第七已知方式取决于输入电流,该输入电流本身以八种已知方式取决于第二操作数。根据本说明书的实施例,每个兴奋性紧张性神经元电路被提供用于根据所述输入电流随时间的积分以第九已知方式产生电位,并且当所述电位超过第二预定阈值时,输出具有第二预定值和持续时间的电压尖峰并重新初始化所述第二电位。
根据该说明书的实施例,每个输入电路36i可以是兴奋性紧张性神经元电路,诸如图3的神经元电路40。
忆阻器神经元电路40的操作细节例如可以在美国专利申请No.15/976,687中找到。应注意,图3中的有源忆阻器神经元电路40是兴奋性紧张性神经元,其响应于超阈值直流电流刺激(即高于预定阈值的直流电流刺激)而激发连续尖峰串。
例如,图3所示的电阻器、电容器和电压源可以具有以下值:RL1(56)=RL2(64)=14kΩ、C1(46)=0.2pF、C2(48)=0.1pF、-V1(60)=-0.95V、+V2(68)=+0.95V。可以使用与每个VO2器件(X1(42)和X2(44))串联的150Ω的小电阻(未示出)来模拟电极线电阻。对于X1(42)和X2(44)两者,圆柱形VO2传导通道可以具有36nm的半径和50nm的长度(膜厚度)。实际的VO2器件可以具有100x100nm的有效面积和100nm的膜厚度。对于上述电路参数,模拟的动态尖峰能量使用可以是大约0.4pJ/尖峰。
该说明书的实施例使用基于尖峰速率的数据表示/编码方案,其中输入图像像素数据(例如灰度强度)首先被转换成连续激发尖峰串作为输入神经元的输出。这种数据转换可以通过不同的方法来实现。
第一种方法可以包括将像素数据转换为直流电流电平,然后将电流提供到输入神经元。神经元可以被视为一个非线性处理节点,其执行“泄漏积分和激发”(leakyintegrate-and-fire,LIF)操作,即在膜电容器(在存在通过该膜电容的泄漏的情况下)上对输入电荷(在特征时间窗口上)进行积分,从而增加膜电位。一旦膜电位超过预定阈值,神经元就会发出输出尖峰,重置膜电位,然后重新开始。因此,直流输入电流被转换成具有取决于输入电流电平的特征频率的重复尖峰串。
第二种方法可以包括使用单独的(例如CMOS)电路来将像素数据转换成数字脉冲串,该数字脉冲串被馈送到输入神经元(这是图2A中所示的情况)。然后,每个数字脉冲都是超阈值的,并且被布置成引起输出尖峰。
第三种方法可以包括使用诸如基于事件的视觉传感器(例如,动态视觉传感器、DVS)的硬件,其中输出数据(用于基于事件的视觉传感器的图像数据)已经是尖峰串的形式,这节省了用于数据转换的大小/功率开销。
如上所述,本说明书的实施例利用了在HRL开发的有源和无源忆阻器器件和电路,并且例如在如下文献中有所描述:美国专利申请No.16/005,529;美国专利申请No.15/976,687;以及美国专利申请No.15/879,363,通过引用结合于此。
根据本说明书的实施例的交叉架构减少了执行MAC运算所需的能量和时间。具体地,用第一操作数编程的多个可编程电导电路实际上每个都可以是用于存储第一操作数的存储器单元。这样,可以在本地保存和再次使用第一操作数,从而极大地减少了在处理器和存储器之间移动数据时使用的能量。此外,无源忆阻器突触可以以模拟(连续)方式编程和寻址,而不需要系统时钟(如在数字系统的情况下)。在深度学习应用中和在不需要高精度数据表示的应用中,不需要高耗电量、高精度32位或64位数据表示,正如它们已经在CMOS电子器件中实现的现有技术实施方式那样。
根据本说明书的实施例,尖峰域数据表示实现了具有最小电流消耗的能量高效MAC运算,因为神经元尖峰串可以被认为是具有超低占空比的数字脉冲串。
此外,与在CMOS电子器件中实现的现有技术实施方式不同,其中所有器件和电路都限于Si基板的2D拓扑,本发明能够修改用于3D堆叠拓扑,例如在上述引用的HRL专利申请中详述的拓扑。
在根据本说明书的实施例的全忆阻器设计中,通过忆阻器尖峰神经元来有效地实现替代ADC和DAC功能的功能。除了节省尺寸和能量开销之外,由于可扩展和节能的忆阻器构建块,本说明书的实施例与一些已知技术之间的主要区别在于发送到可编程电导以应用欧姆定律作为数据乘法器的数据表示。根据本说明书的实施例,尖峰忆阻器神经元以“积分和激发(integrate and fire)”原理操作,其中神经元膜电位通过随时间对输入电流进行积分而漂移得更高。一旦膜电位超过阈值,就输出尖峰(又名动作电位,或窄电脉冲)(关于细节,参见HRL专利申请No.15/976,687)。
由于简单的电路拓扑(通常仅由两个有源忆阻器和4至5个无源R、C元件组成)和能量高效的忆阻器开关操作,有源忆阻器神经元与CMOS现有技术相比具有优越的能量效率。对于可用于本说明书的实施例中的有源忆阻器神经元的大小/能量缩放的更详细的分析,参见例如出版物:“可扩展VO2有源忆阻器神经元的生物学似然性和随机性(Biologicalplausibility and stochasticity in scalable VO2 active memristor neurons)”由Yi,W.,Tsang,K.K.,Lam,S.K.,Bai,X.,Crowell,J.A.,和Flores,E.A.所著,自然通讯(Nature Communications),第9期,第4661页(2018),通过引用并入本文。
在这种忆阻器神经元电路中,VO2莫特忆阻器的动态开关能量非常低,在VO2通道半径为7至20nm、厚度为20nm的情况下仅为~1至10fJ/器件(参见上述Yi出版物中的补充图9a,因此在神经元尖峰能量中只占一小部分)。神经元电路动态尖峰能量由存储在两个膜电容器(C1和C2;图3中的46和48)中的能量占主导,因此可以利用用户可选择的电容值线性缩放。模拟的VO2神经元动态尖峰能量可以缩小到30fJ/尖峰甚至更低(参见上述Yi出版物中的补充图36a)。在IC设计中,神经元尖峰能量缩放最终将受到来自互连的寄生电容的限制。上述出版物中的补充图2比较了模拟VO2神经元与CMOS现有技术的能量效率与神经元面积的缩放,这表明VO2神经元(在1fF/μm-2比膜电容下)在神经元尺寸小于3μm2时可能超过1.8x1014尖峰/J(或5.6fJ/尖峰能量使用)的估计人脑能量效率。上述Yi出版物还模拟了由膜泄漏引起的VO2神经元的静态功耗。“膜泄漏”是指在静止状态下(由于绝缘VO2相的有限电阻率)流过两个有源忆阻器(“离子通道”)的直流泄漏电流。通过VO2器件的直流泄漏电流是由于绝缘相中的有限器件电阻造成的。详见上述Yi文献中的补充图37。在足够高的尖峰频率(100MHz到400MHz)下,静态功率对总功耗的贡献很小(小于10%),预计不会对整体能效产生重大影响(参见上述Yi出版物中的补充图37)。
如上所述,根据本说明书的实施例的电路的另一个优点是,与仅CMOS或CMOS忆阻器混合方法不同,全忆阻器架构可以垂直堆叠,以在哺乳动物的大脑中复制多层大脑皮层,以获得前所未有的神经网络密度和连接性。
根据本说明书的实施例,模拟无源忆阻器交叉阵列执行与混合CMOS-忆阻器电路(诸如图1B所示)的情况类似的VMM计算。主要区别在于取代ADC和DAC(以及支持的采样和保持电路等)的作用的有源忆阻器神经元,以及节能的尖峰域数据表示。
根据本说明书的实施例,需要仔细考虑忆阻器交叉阵列的大小。对于不完美的纳米级忆阻器,阵列可扩展性受到包括器件特性可变性、器件开/关电阻比和寄生互连线电阻在内的因素的限制,所有这些因素都会影响读出裕度。发明人使用25x10忆阻器的交叉作为原型示例,用于模拟和分析目的,但相同的原理适用于任意阵列尺寸。根据本说明书的实施例,可以使用以下参考文献中描述的忆阻器交叉阵列:“用于数据存储和神经形态应用的功能性混合忆阻器交叉阵列/CMOS系统(A Functional Hybrid Memristor Crossbar-Array/CMOS System for Data Storage and Neuromorphic Applications)”,作者是Kuk-HwanKim,Siddharth Gaba,Dana Wheeler,Jose M.Cruz-Albrecht,Tahir Hussain,Narayan Srinivasa,和Wei Lu*,.,dx.doi.org/10.1021/nl203687n|纳米快报(NanoLett.)2012,12,389-395,通过引用并入本文。
图4A和图4B示出了图2A的全忆阻器MAC电路30的基于速率的卷积的示例,其用VO2有源忆阻器模型神经元和电阻器突触模拟。根据本说明书的实施例,为了简单起见,使用电阻器代替无源忆阻器。对于图像像素数据,规则是“1”对200MHz的最大峰值速率进行编码,而“0”对100MHz的最小峰值速率进行编码。对于卷积权重(忆阻器的电导),“1”表示(570kΩ)-1的最大电导,“0”表示(2MΩ)-1的最小电导。
图4A示出了输入尖峰速率向量平行于权重向量的情况。输入向量对于前10个输入神经元具有“1”的高尖峰速率,而对于后15个输入神经元具有“0”的低尖峰速率。类似地,突触权重向量对于前10个突触具有高值“1”,而对于后15个突触具有低值“0”。在这种情况下,由输入向量和突触权重向量的(归一化的)点积给出的理想卷积输出是在基于线性速率的编码中,其对应于140MHz的中间输出尖峰速率。
图4B示出了输入尖峰速率向量垂直于权重向量的情况。输入向量对于前15个输入神经元具有“0”的低尖峰速率,而对于后10个输入神经元具有“1”的高尖峰速率。突触权重向量与前一种情况保持相同。在这种情况下,理想的卷积输出是
图5A、图5B、图5C和图5D分别显示了图4A和图4B所示情况的SPICE模拟结果,使用如图2A所示的全忆阻器MAC电路30,25个VO2输入神经元36i(i=1至25)通过25个电阻突触Wi,1与1个VO2输出神经元381连接。在所示实施例中,如图4A和图4B所示,将编码具有100MHz频率的“0”(图5B)和具有200MHz频率的“1”(图5A)的数字脉冲串馈送到输入神经元,以产生相同频率(速率)的尖峰串。对于图4A中的情况,如图5C所示,模拟的输出尖峰串显示135MHz的尖峰速率。该峰值速率对应于编码值["0"+("1"-"0")·(135-100)/(200-100)]="0.35",这非常接近理想的点积值“0.4”(140MHz)。对于图4B中的情况,如图5D所示,模拟的输出尖峰串显示了100MHz(“0”)的尖峰速率,与理想输出速率精确匹配。
有了这一令人鼓舞的初步全忆阻器卷积运算结果,发明人使用MNIST手写数字图像(作为MATLAB神经网络工具箱的一部分)对全忆阻器基于峰值速率的卷积进行了进一步验证。发明人还用Ta2O5:Ag无源忆阻器SPICE模型取代了电阻器突触,该模型由以下参考论文的作者提供:“具有预调节导电隧穿路径的真正无电铸和低能忆阻器(Trulyelectroforming-free and low-energy memristors with preconditioned conductivetunneling paths)”,作者是Yoon,J.H.,Zhang,J.,Ren,X.,Wang,Z.,Wu,H.,Li,Z.,Barnell,M.,Wu,Q.,Lauhon,L.J.,Xia,Q.,和Yang,J.J.,先进功能材料(AdvancedFunctional Materials),第27期,第1702010页(2017)。
根据该说明书的实施例,预训练的卷积核权重可以具有正值和负值,但是转换的突触电导值可以仅具有正值。然而,具有正和负突触权重对于某些应用是有用的。
为了模拟尖峰域中的MATLAB MNIST图像的卷积,可以使用线性变换来将定制的MATLAB CNN模型的卷积层中的卷积核(滤波器)的预训练权重转换为突触电导(电阻)值。CNN模型训练可以在MATLAB中使用随机梯度下降(SGD)方法进行,并且可以通过统计的MNIST图像分类精度在250张测试图像上达到93.7%来验证。
图6A和图6B示出发明人已经研究的示例MATLAB预训练卷积核,以及使用线性变换将其转换为突触电导(电阻)值。图6A示出了被可视化为(5x5)色标图的10个预训练的MATLAB卷积核的示例;图6B示出了MATLAB卷积核权重和忆阻器突触电导(电阻)值之间的线性变换关系。
图7A示出了来自MATLAB MNIST图像集的28x28(=576)像素输入图像。为了清楚起见,对图像像素的灰度(255级)值进行颜色编码,如图中所示。在该示例性图像中,沿着对角线方向提取五个示例性块(patch),这些块中的每一个具有5x5像素。然后将这五个块用作LTSpice中的输入示例,以使用由25个输入有源忆阻器神经元、25个无源忆阻器突触和一个输出有源忆阻器神经元组成的交叉电路来模拟全忆阻器卷积(参见图4A和图4B)。
图5B示出了由预训练的MATLAB CNN 5x5卷积核(滤波器)使用通过图6B中的线性变换从图6A中的原始核权重转换的突触电导值卷积的“理想情况”输出图像。在图7B中,通过MATLAB中的数值卷积计算像素,然后将输出灰度数据最终转换为尖峰速率,以便与所有忆阻器卷积电路的LTSpice模拟进行比较。在去除边缘像素(每侧两行)之后,卷积图像的大小是24x24像素。像素元素的值是如图所示的颜色编码的。根据本说明书的实施例,使用基于线性速率的数据编码方案,其中像素的最低值(值0)对应于100MHz的尖峰速率,像素的最高值(值255)对应于200MHz的尖峰速率。根据本说明书的实施例,诸如图4A或图4B中所示的全忆阻器电路可用于一次性对5x5输入图像块进行卷积。
图8A、图8B和图8C示出了具有示例仿真的定制MATLAB图像分类前馈CNN模型的示例性网络体系结构。
图8A示出了示例性基准测试(benchmarking)MNIST数据库图像集,并且图8B是示意性地示出诸如在图8C中详细描述的标杆管理方法的直方图。图8C以示例仿真详细示出定制的MATLAB图像分类前馈CNN模型的网络体系架构。在图8C的左侧示出的是表示由28x28(=784)灰度像素组成的输入图像(来自MNIST图像集的手写数字图像)的框。层1(具有10个5x5卷积核/滤波器)的卷积运算将输入图像转换为24x24像素的10个激活图像(在卷积之后去除两行边缘像素)。通过全忆阻器卷积电路的SPICE模拟来执行这些卷积计算,其中预训练的MATLAB卷积核权重线性变换成突触电导(参见图6B为转换关系)。然后将SPICE模拟的基于忆阻器的卷积输出反馈到MATLAB CNN模型管道,用于其余的数值处理。在这个示例中,CNN模型产生输入图像的适当分类为数字“0”,因为类“0”的分类器输出值是10个类中最大的。
图9A、图9B和图9C示出了根据本说明书的实施例的模拟全忆阻器卷积的示例情况。图7A示出了全忆阻器VMM电路的一部分的示意图,特别是图2A的电路30中的卷积核,其中25个电阻器突触Wi,1被25个模型Ta2O5:Ag无源忆阻器代替。这些无源忆阻器中的每一个的电导由其内部状态变量确定,该内部状态变量可以在卷积运算之前由单独的脉冲模式写入电路(未示出)训练。注意,为了避免在卷积运算期间Ta2O5:Ag无源忆阻器的意外切换,可将其切换阈值电压设计为显著高于1V量级的典型神经元尖峰振幅。在实际实现中,需要考虑这样的电压匹配,并且可以通过适当设计的有源忆阻器工艺参数(例如VO2导电沟道几何形状)来实现。为了清楚起见,图9A中未示出25个VO2输入神经元。
与CNN的情况类似,发明人发现,为了优化卷积精度,可能需要输出神经元的小直流偏置电流形式的小卷积滤波器偏置。这是基于在没有偏置的情况下观察到模拟输出神经元尖峰速率中的系统红移,可以通过偏置电流(本例中为2μA,通过500kΩ电阻器和1V电源提供)微调神经元静息电位来消除这种红移。因此,根据本说明书的实施例的神经形态交叉阵列电路可以包括偏置电路70,该偏置电路70用于向至少一个输出兴奋性紧张性神经元电路381提供偏置电流,该偏置电流用于微调至少一个输出兴奋性紧张性神经元电路的静息电位。
图9B和图9C示出了来自MATLAB MNIST图像集中的样本图像的(5x5)图像块的示例模拟卷积。具体地,图6B中概述的数字“0”图像中的块2。图9C比较了在引入或不引入2μA的小偏置电流的情况下,10个卷积核的SPICE模拟卷积输出尖峰速率中的相对误差。发明人注意到,在引入偏置电流之后,平均相对卷积误差小于0.8%。这个结果甚至比使用电阻器突触的模拟情况(-1.8%)更好。在两个不同的SPICE模拟软件(LTSpice和Cadence VerilogAMS)中获得了类似的结果。
图10中的表格总结了根据本说明书的实施例的全忆阻器VMM电路的模拟性能度量,其中35个VO2有源忆阻器神经元和250(25x10)个无源忆阻器突触(参见图2B),运行灰度MNIST手写数字图像的卷积处理。在所选择的电路参数(神经元尖峰能量0.4pJ/尖峰、突触电阻588kΩ至2MΩ、100MHz量级的尖峰速率、每个MAC运算40尖峰)下,模拟的能量效率和吞吐量与CMOS现有技术相比已经非常有竞争力。每输入比特的模拟卷积能量使用是0.3nJ/比特(每图像像素10次卷积和3比特/像素)。对于这种紧凑的交叉电路,卷积吞吐量是7.5Mbit/s(或2.5M像素/s)。必须记住,VO2神经元尖峰能量和每个MAC运算的尖峰数量都可以进一步减少,这转化为甚至更好的能量效率。无源忆阻器交叉阵列的大小和神经突触核的数量可以进一步扩大以获得更高的卷积吞吐量。发明人预测,8Gbit/s量级的高清晰度(HD)视频速率卷积吞吐量和30pJ/bit量级的能量使用对于全忆阻器神经形态技术是可行的,这将中断或实现超高体积数据分析和感官制作应用。
许多计算密集的应用可以使用根据本说明书的电路或方法。例如:空间域数据处理:图像分类、基于快速傅立叶变换(FFT)和离散余弦变换(DCT)的图像处理(如压缩);基于FFT计算的时域信号处理;需要高吞吐量和节能卷积的安全相关应用。
图11示出了根据本说明书的实施例的用于计算乘法-累加运算的方法90,包括:将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且将乘法运算的乘积相加,其中N≥2;所述方法包括:
提供(92)N个输入导体;
连接(94)N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与唯一的输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程(96);
在连接到用第一操作数编程的每个电导电路的输入导体上,输入(98)电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成(100)与在所述输出导体上接收的尖峰的随时间的和成比例的电压尖峰的输出串。
根据所述说明书的实施例,所述生成(100)与在所述输出导体上接收的尖峰的时间和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的随时间的电流积分(102)为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
根据所述说明书的实施例,所述方法还包括在兴奋性紧张性神经元电路(例如,如图3所示)的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
根据所述说明书的实施例,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
根据所述说明书的实施例,所述方法还包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
图12示出了根据本说明书的实施例的方法110,用于计算N个第一操作数中的每一个乘以N个对应的第二操作数并且将乘法运算的乘积相加的M个乘法-累加运算,其中,N≥2并且M≥=2;所述方法包括:
提供(112)N个输入导体;
连接(114)N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与M个输出导体中的一个输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程(116);
在连接到用第一操作数编程的每个电导电路的输入导体上,输入(118)电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成(120)各自与在所述输出导体上接收的尖峰的随时间的和成比例的电压尖峰的M个输出串。
根据本说明书的实施例,所述生成(120)与在每个输出导体上接收的尖峰的时间和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的随时间的电流积分(122)为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
根据本说明书的实施例,所述方法还包括在兴奋性紧张性神经元电路(例如,如图3所示)的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
根据本说明书的实施例,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
根据本说明书的实施例,所述方法还包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
根据本说明书的实施例,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
在不脱离发明概念范围的前提下,可以对本发明所述的系统、装置和方法进行修改、添加或省略。系统和装置的组件可以被集成或分离。此外,系统和装置的操作可由更多、更少或其他组件来执行。所述方法可包括更多、更少或其他步骤。另外,可以以任何合适的顺序执行步骤。如在本文中所使用的,“每个”指的是集合的每个成员或集合的子集的每一个成员。
为了帮助专利局以及本申请发布的任何专利的任何读者解释本申请所附权利要求,申请人希望注意,它们并不旨在任何所附权利要求或权利要求要素援引本申请提交之日存在的《美国法典》第35条第112节第6款,除非在特定权利要求中明确使用“用于……的装置(means for)”或“用于……的步骤(step for)”。
权利要求书(按照条约第19条的修改)
1.一种电路,用于将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且用于将乘法运算的乘积相加,其中,N≥2;所述电路包括:
N个输入导体;
N个可编程电导电路,每个可编程电导电路连接在一个所述输入导体与至少一个输出导体之间;每个可编程电导电路被布置成能够在以已知方式取决于一个所述第一操作数的值处进行编程;
每个输入导体被布置为从输入电路接收电压尖峰的输入串,所述电压尖峰的输入串具有以已知方式从一个所述第二操作数导出的尖峰速率;
至少一个输出电路被布置为生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率。
2.根据权利要求1所述的电路,其中,所述至少一个输出电路被布置为通过以下操作生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率:生成以已知方式从在所述至少一个输出导体上接收的电流随时间的积分中导出的第一电位,并且当所述第一电位超过第一预定阈值时,输出具有第一预定值和持续时间的电压尖峰,并且重新初始化所述第一电位。
3.根据权利要求1所述的电路,其中,每个输入电路包括兴奋性紧张性神经元电路,所述兴奋性紧张性神经元电路被布置为输出电压尖峰串,所述电压尖峰串具有以已知方式从输入电流导出的尖峰速率,所述输入电流以已知方式从第二操作数导出。
4.根据权利要求3所述的电路,其中,每个兴奋性紧张性神经元电路被提供用于根据所述输入电流随时间的积分以已知方式生成第二电位,并且当所述第二电位超过第二预定阈值时,输出具有第二预定值和持续时间的电压尖峰并重新初始化所述第二电位。
5.根据权利要求3所述的系统,其中:
所述N个输入导体包括N个行线导体;
所述至少一个输出导体包括多个列线导体,所述多个可编程电导电路各自连接在不同行线导体和不同列线导体之间;并且
所述至少一个输出兴奋性紧张性神经元电路包括多个输出兴奋性紧张性神经元电路,每个输出兴奋性紧张性神经元电路具有连接到不同列线导体的输入。
6.根据权利要求1所述的电路,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
7.根据权利要求6所述的电路,其中,每个存储器单元包括忆阻器。
8.根据权利要求3所述的电路,其中,每个兴奋性紧张性神经元电路包括以相反极性偏置的第一负差分电阻器件和第二负差分电阻器件,所述第一负差分电阻器件和所述第二负差分电阻器件耦合到第一接地电容器和第二接地电容器。
9.根据权利要求8所述的电路,其中,
所述第一负差分电阻器件具有通过第一负载电阻器连接到所述兴奋性紧张性神经元电路的输入节点的第一节点和连接到第一电压源的第二节点;所述第一负差分电阻器件的所述第一节点耦合到所述第一接地电容器;并且所述第二负差分电阻器件具有通过第二负载电阻器连接到所述第一负差分电阻器件的所述第一节点的第一节点和连接到第二电压源的第二节点;所述第二负差分电阻器件的所述第一节点耦合到所述第二接地电容器;所述第二负差分电阻器件的所述第一节点形成神经元电路的输出节点。
10.根据权利要求9所述的电路,所述电路包括偏置电路,用于向至少一个输出兴奋性紧张性神经元电路提供偏置电流,所述偏置电流用于微调所述至少一个输出兴奋性紧张性神经元电路的静息电位。
11.一种用于计算乘法-累加运算的方法,该方法包括:
将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且将乘法运算的乘积相加,其中,N≥2;所述方法包括:
提供N个输入导体;
连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与唯一的输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;
在连接到用第一操作数编程的每个电导电路的输入导体上,输入电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串。
12.根据权利要求11所述的方法,其中,所述生成与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
13.根据权利要求11所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰的输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
14.根据权利要求13所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
15.根据权利要求13所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
16.一种计算方法,用于计算N个第一操作数中的每一个乘以N个对应的第二操作数并且将乘法运算的乘积相加的M个乘法-累加运算,其中,N≥2并且M≥=2;所述方法包括:
提供N个输入导体;
连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与M个输出导体中的一个输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;
在连接到用第一操作数编程的每个电导电路的输入导体上,输入电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成各自与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的M个输出串。
17.根据权利要求16所述的方法,其中,生成与在每个输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
18.根据权利要求16所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰的输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
19.根据权利要求18所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
20.根据权利要求18所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
21.根据权利要求16所述的方法,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
Claims (21)
1.一种电路,用于将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且用于将乘法运算的乘积相加,其中,N≥2;所述电路包括:
N个输入导体;
N个可编程电导电路,每个可编程电导电路连接在一个所述输入导体与至少一个输出导体之间;每个可编程电导电路被布置成能够在以已知方式取决于一个所述第一操作数的值处进行编程;
每个输入导体被布置为从输入电路接收电压尖峰的输入串,所述电压尖峰的输入串具有以已知方式从一个所述第二操作数导出的尖峰速率;
至少一个输出电路被布置为生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率。
2.根据权利要求1所述的电路,其中,所述至少一个输出电路被布置为通过以下操作生成电压尖峰的输出串,所述电压尖峰的输出串具有以已知方式从在所述至少一个输出导体上接收的尖峰随时间的和中导出的尖峰速率:生成以已知方式从在所述至少一个输出导体上接收的电流随时间的积分中导出的第一电位,并且当所述第一电位超过第一预定阈值时,输出具有第一预定值和持续时间的电压尖峰,并且重新初始化所述第一电位。
3.根据权利要求1所述的电路,其中,每个输入电路包括兴奋性紧张性神经元电路,所述兴奋性紧张性神经元电路被布置为输出电压尖峰串,所述电压尖峰串具有以已知方式从输入电流导出的尖峰速率,所述输入电流以已知方式从第二操作数导出。
4.根据权利要求3所述的电路,其中,每个兴奋性紧张性神经元电路被提供用于根据所述输入电流随时间的积分以已知方式生成第二电位,并且当所述第二电位超过第二预定阈值时,输出具有第二预定值和持续时间的电压尖峰并重新初始化所述第二电位。
5.根据权利要求3所述的系统,其中:
所述N个输入导体包括N个行线导体;
所述至少一个输出导体包括多个列线导体,所述多个可编程电导电路各自连接在不同行线导体和不同列线导体之间;并且
所述至少一个输出兴奋性紧张性神经元电路包括多个输出兴奋性紧张性神经元电路,每个输出兴奋性紧张性神经元电路具有连接到不同列线导体的输入。
6.根据权利要求1所述的电路,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
7.根据权利要求6所述的神经形态交叉阵列电路,其中,每个存储器单元包括忆阻器。
8.根据权利要求3所述的神经形态交叉阵列电路,其中,每个兴奋性紧张性神经元电路包括以相反极性偏置的第一负差分电阻器件和第二负差分电阻器件,所述第一负差分电阻器件和所述第二负差分电阻器件耦合到第一接地电容器和第二接地电容器。
9.根据权利要求8所述的神经形态交叉阵列电路,其中,
所述第一负差分电阻器件具有通过第一负载电阻器连接到所述兴奋性紧张性神经元电路的输入节点的第一节点和连接到第一电压源的第二节点;所述第一负差分电阻器件的所述第一节点耦合到所述第一接地电容器;并且所述第二负差分电阻器件具有通过第二负载电阻器连接到所述第一负差分电阻器件的所述第一节点的第一节点和连接到第二电压源的第二节点;所述第二负差分电阻器件的所述第一节点耦合到所述第二接地电容器;所述第二负差分电阻器件的所述第一节点形成神经元电路的输出节点。
10.根据权利要求9所述的神经形态交叉阵列电路,所述神经形态交叉阵列电路包括偏置电路,用于向至少一个输出兴奋性紧张性神经元电路提供偏置电流,所述偏置电流用于微调所述至少一个输出兴奋性紧张性神经元电路的静息电位。
11.一种用于计算乘法-累加运算的方法,该方法包括:
将N个第一操作数中的每个第一操作数乘以对应的第二操作数,并且将乘法运算的乘积相加,其中,N≥2;所述方法包括:
提供N个输入导体;
连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与唯一的输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;
在连接到用第一操作数编程的每个电导电路的输入导体上,输入电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串。
12.根据权利要求11所述的方法,其中,所述生成与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
13.根据权利要求11所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰的输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
14.根据权利要求13所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
15.根据权利要求13所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
16.一种计算方法,用于计算N个第一操作数中的每一个乘以N个对应的第二操作数并且将乘法运算的乘积相加的M个乘法-累加运算,其中,N≥2并且M≥=2;所述方法包括:
提供N个输入导体;
连接N个可编程电导电路,每个可编程电导电路位于一个所述输入导体与M个输出导体中的一个输出导体之间;
用与一个所述第一操作数成比例的电导对每个可编程电导电路进行编程;
在连接到用第一操作数编程的每个电导电路的输入导体上,输入电压尖峰的输入串,该电压尖峰的输入串具有与对应于所述第一操作数的第二操作数成比例的尖峰速率;
生成各自与在所述输出导体上接收的尖峰随时间的和成比例的电压尖峰的M个输出串。
17.根据权利要求16所述的方法,其中,生成与在每个输出导体上接收的尖峰随时间的和成比例的电压尖峰的输出串包括:将在所述输出导体上接收的电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的电压尖峰,并重新初始化所述电位。
18.根据权利要求16所述的方法,所述方法包括在兴奋性紧张性神经元电路的输出中提供具有与第二操作数成比例的尖峰速率的每个所述电压尖峰的输入串,所述兴奋性紧张性神经元电路被布置为输出具有与输入电流成比例的尖峰速率的电压尖峰串,所述输入电流本身与所述第二操作数成比例。
19.根据权利要求18所述的方法,其中,每个兴奋性紧张性神经元电路被提供用于将所述输入电流随时间积分为电位,并且当所述电位超过预定阈值时,输出具有预定值和持续时间的所述电压尖峰,并重新初始化所述电位。
20.根据权利要求18所述的方法,所述方法包括将与所述第二操作数成比例的输入电压转换成与所述第二操作数成比例的所述电流。
21.根据权利要求16所述的方法,其中,所述多个可编程电导电路中的每一个包括存储器单元;所述多个可编程电导电路形成沿着行和列布置的存储器阵列。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962844611P | 2019-05-07 | 2019-05-07 | |
US62/844,611 | 2019-05-07 | ||
US201962860915P | 2019-06-13 | 2019-06-13 | |
US62/860,915 | 2019-06-13 | ||
US16/808,222 US20200356847A1 (en) | 2019-05-07 | 2020-03-03 | Transistorless all-memristor neuromorphic circuits for in-memory computing |
US16/808,227 US11694070B2 (en) | 2019-05-07 | 2020-03-03 | Bipolar all-memristor circuit for in-memory computing |
US16/808,222 | 2020-03-03 | ||
US16/808,227 | 2020-03-03 | ||
PCT/US2020/021561 WO2020226740A1 (en) | 2019-05-07 | 2020-03-06 | Transistorless all-memristor neuromorphic circuits for in-memory computing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113924581A true CN113924581A (zh) | 2022-01-11 |
Family
ID=73046773
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080032752.XA Active CN113811896B (zh) | 2019-05-07 | 2020-03-06 | 用于存储器内计算的双极全忆阻器电路 |
CN202080032914.XA Pending CN113924581A (zh) | 2019-05-07 | 2020-03-06 | 用于存储器内计算的无晶体管全忆阻器神经形态电路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080032752.XA Active CN113811896B (zh) | 2019-05-07 | 2020-03-06 | 用于存储器内计算的双极全忆阻器电路 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11694070B2 (zh) |
EP (2) | EP3966745A4 (zh) |
CN (2) | CN113811896B (zh) |
WO (2) | WO2020226737A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11694070B2 (en) | 2019-05-07 | 2023-07-04 | Hrl Laboratories, Llc | Bipolar all-memristor circuit for in-memory computing |
US11404106B2 (en) * | 2020-07-27 | 2022-08-02 | Robert Bosch Gmbh | Read only memory architecture for analog matrix operations |
US20220138540A1 (en) * | 2020-10-30 | 2022-05-05 | International Business Machines Corporation | Integrated circuit with a configurable neuromorphic neuron apparatus for artificial neural networks |
CN112346704B (zh) * | 2020-11-23 | 2021-09-17 | 华中科技大学 | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 |
CN113077829B (zh) * | 2021-04-20 | 2023-04-28 | 清华大学 | 基于忆阻器阵列的数据处理方法、电子装置 |
CN112992232B (zh) * | 2021-04-28 | 2021-08-17 | 中科院微电子研究所南京智能技术研究院 | 一种多位正负单比特存内计算单元、阵列及装置 |
KR102595529B1 (ko) * | 2021-11-04 | 2023-10-27 | 서울대학교산학협력단 | 시간 커널 소자, 시간 커널 컴퓨팅 시스템 및 그들의 동작 방법 |
WO2024003374A1 (en) | 2022-06-30 | 2024-01-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Fourier transformation technique |
CN115456157B (zh) * | 2022-11-11 | 2023-02-07 | 华中科技大学 | 一种基于忆阻器的多感觉互联想记忆网络电路 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004579A1 (en) * | 2008-03-14 | 2011-01-06 | Greg Snider | Neuromorphic Circuit |
US9053428B2 (en) | 2011-07-21 | 2015-06-09 | Qualcomm Incorporated | Method and apparatus of robust neural temporal coding, learning and cell recruitments for memory using oscillation |
US8918351B2 (en) | 2012-07-30 | 2014-12-23 | International Business Machines Corporation | Providing transposable access to a synapse array using column aggregation |
US8669785B2 (en) | 2012-07-31 | 2014-03-11 | Hewlett-Packard Development Company, L.P. | Logic circuits using neuristors |
US9165246B2 (en) * | 2013-01-29 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Neuristor-based reservoir computing devices |
US10176425B2 (en) * | 2016-07-14 | 2019-01-08 | University Of Dayton | Analog neuromorphic circuits for dot-product operation implementing resistive memories |
US11501130B2 (en) | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
CN106815636B (zh) | 2016-12-30 | 2019-03-05 | 华中科技大学 | 一种基于忆阻器的神经元电路 |
US10297751B2 (en) | 2017-01-26 | 2019-05-21 | Hrl Laboratories, Llc | Low-voltage threshold switch devices with current-controlled negative differential resistance based on electroformed vanadium oxide layer |
US10541274B2 (en) | 2017-01-26 | 2020-01-21 | Hrl Laboratories, Llc | Scalable, stackable, and BEOL-process compatible integrated neuron circuit |
US11315009B2 (en) | 2017-03-03 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Analog multiplier-accumulators |
US10600961B2 (en) | 2017-07-27 | 2020-03-24 | Hrl Laboratories, Llc | Scalable and low-voltage electroforming-free nanoscale vanadium dioxide threshold switch devices and relaxation oscillators with current controlled negative differential resistance |
US20190095787A1 (en) | 2017-09-27 | 2019-03-28 | Hsiang Tsung Kung | Sparse coding based classification |
CN109460817B (zh) * | 2018-09-11 | 2021-08-03 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
CN109460818A (zh) | 2018-09-25 | 2019-03-12 | 电子科技大学 | 一种基于忆阻桥和阵列的多层神经网络设计方法 |
US11694070B2 (en) | 2019-05-07 | 2023-07-04 | Hrl Laboratories, Llc | Bipolar all-memristor circuit for in-memory computing |
-
2020
- 2020-03-03 US US16/808,227 patent/US11694070B2/en active Active
- 2020-03-03 US US16/808,222 patent/US20200356847A1/en not_active Abandoned
- 2020-03-06 CN CN202080032752.XA patent/CN113811896B/zh active Active
- 2020-03-06 WO PCT/US2020/021530 patent/WO2020226737A1/en unknown
- 2020-03-06 WO PCT/US2020/021561 patent/WO2020226740A1/en unknown
- 2020-03-06 EP EP20801139.5A patent/EP3966745A4/en active Pending
- 2020-03-06 EP EP20801140.3A patent/EP3966746A4/en active Pending
- 2020-03-06 CN CN202080032914.XA patent/CN113924581A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3966745A1 (en) | 2022-03-16 |
CN113811896B (zh) | 2022-12-09 |
US11694070B2 (en) | 2023-07-04 |
WO2020226737A1 (en) | 2020-11-12 |
WO2020226740A9 (en) | 2021-12-30 |
EP3966746A1 (en) | 2022-03-16 |
CN113811896A (zh) | 2021-12-17 |
EP3966746A4 (en) | 2023-08-02 |
US20200356847A1 (en) | 2020-11-12 |
EP3966745A4 (en) | 2022-12-14 |
US20200356344A1 (en) | 2020-11-12 |
WO2020226740A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113924581A (zh) | 用于存储器内计算的无晶体管全忆阻器神经形态电路 | |
US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
Yakopcic et al. | Memristor based neuromorphic circuit for ex-situ training of multi-layer neural network algorithms | |
Chen et al. | Mitigating effects of non-ideal synaptic device characteristics for on-chip learning | |
CN113469334B (zh) | 一种忆阻递归神经网络电路 | |
US11531898B2 (en) | Training of artificial neural networks | |
US20200117986A1 (en) | Efficient processing of convolutional neural network layers using analog-memory-based hardware | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
Yan et al. | Training memristor-based multilayer neuromorphic networks with SGD, momentum and adaptive learning rates | |
Ravichandran et al. | Artificial neural networks based on memristive devices | |
Ananthakrishnan et al. | All-passive hardware implementation of multilayer perceptron classifiers | |
US11868893B2 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
Zhou et al. | Spiceprop: Backpropagating errors through memristive spiking neural networks | |
Li et al. | Design of Analog CMOS-Memristive Neural Network Circuits for Pattern Recognition | |
Wang et al. | An adaptive neural network A/D converter based on CMOS/memristor hybrid design | |
Zidan et al. | Vector multiplications using memristive devices and applications thereof | |
Kendall et al. | Deep learning in memristive nanowire networks | |
Nowshin | Spiking neural network with memristive based computing-in-memory circuits and architecture | |
Khanday et al. | An energy‐efficient tunable threshold spiking neuron with excitatory and inhibitory function | |
CN115857871B (zh) | 一种模糊逻辑全硬件计算电路及其设计方法 | |
Lee et al. | Power and Area-Efficient XNOR-AND Hybrid Binary Neural Networks Using TFT-Type Synaptic Device | |
Vo | Multilayer Neural Network with Synapse Based on Two Successive Memristors | |
Poikonen et al. | A mixed-mode array computing architecture for online dictionary learning | |
Li et al. | Binary‐Stochasticity‐Enabled Highly Efficient Neuromorphic Deep Learning Achieves Better‐than‐Software Accuracy | |
Zhou et al. | Backpropagating Errors Through Memristive Spiking Neural Networks |
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 |