CN117616427A - 用于基于晶体管的神经网络的系统、方法和计算机设备 - Google Patents

用于基于晶体管的神经网络的系统、方法和计算机设备 Download PDF

Info

Publication number
CN117616427A
CN117616427A CN202280048133.9A CN202280048133A CN117616427A CN 117616427 A CN117616427 A CN 117616427A CN 202280048133 A CN202280048133 A CN 202280048133A CN 117616427 A CN117616427 A CN 117616427A
Authority
CN
China
Prior art keywords
comparator
output
voltage
tiq
pulse
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
CN202280048133.9A
Other languages
English (en)
Inventor
J·L·戈森
R·莱文森
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.)
Brumaiende Co
Original Assignee
Brumaiende Co
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 Brumaiende Co filed Critical Brumaiende Co
Publication of CN117616427A publication Critical patent/CN117616427A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/22Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral
    • H03K5/24Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude
    • H03K5/2472Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude using field effect transistors
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Nonlinear Science (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Semiconductor Memories (AREA)
  • Measurement Of Current Or Voltage (AREA)

Abstract

提供了用于操作人工神经网络的计算机系统、方法和设备。所述系统包括神经元。所述神经元包括:多个突触,其包括用于处理输入信号的电荷捕获晶体管;累加块,其用于接收来自所述多个突触的漏极电流,所述漏极电流作为来自所述多个突触的乘法运算的输出而产生,所述漏极电流计算乘以时间的电压量;电容器,其用于累积来自所述漏极电流的电荷以用作累加信号的短期存储器;放电脉冲发生器,其用于通过在放电周期期间对累积的电荷进行放电来产生输出信号;以及比较器,所述比较器用于将输入电压与参考电压进行比较。如果所述输入电压高于参考电压,则所述比较器产生第一输出,以及,如果所述输入电压低于所述参考电压,则所述比较器产生第二输出。

Description

用于基于晶体管的神经网络的系统、方法和计算机设备
技术领域
下文总体涉及神经网络和数值计算,更具体地,涉及用于基于模拟的神经网络和计算的系统、方法和计算机设备。
背景技术
广义人工神经网络(ANN)可以被描述为一种机器学习架构,它借鉴了生物神经结构,其中神经元的激活从第一个输入级联到后续层,这可以引起后续层中的神经元的兴奋或抑制行为。神经网络形成了人工智能系统的基础,人工智能系统几乎在技术解决方案的各个方面都有越来越多的应用。将神经网络和人工智能应用于计算机问题的最重大挑战之一是解决方案的总拥有成本,尤其是解决方案的功耗。在传统的数据中心中,功率不是制约因素,诸如CPU和GPU的耗电处理器用于对各种数据类型运行神经网络算法。然而,迫切需要将人工智能应用于现实世界。例如,在各种类型的传感器产生数据的特定情况下,功率预算成为主要制约因素。这种制约因素推动了对处理神经网络算法的低功耗方法的需求,这些方法比通用CPU和GPU效率高得多。
在图1A中,示出了一个通用的传统ANN 100。图1A描绘了基本的推理系统架构。ANN100包括用于接收输入的输入层102、用于执行计算的隐藏层104、和用于提供输出的输出层106。输入层102、隐藏层104和输出层106中的每一者都包括一个或多个神经元108。
ANN 100是一种机器学习架构,其形式松散地借用了生物神经结构。在生物神经结构中,来自第一输入信号(未示出)的神经元108的激活(例如,在输入层102处)级联到后续层(例如,隐藏层104)。这种级联可以引起后续层神经元的兴奋或抑制行为。
各个神经元108可以单独或组合执行各种动作中的任何一种。接收级联的ANN 100的层的神经元108可以将先前层的神经元108的值与相关联的突触权重(未示出)组合。神经元108可以应用非线性缩放,下文称为“激活函数”。上述值的组合是通过乘法运算,然后与其他乘积相加实现的。根据神经元108的激活乘以突触权重来执行乘法运算。
激活函数的结果可能有利地是,前进层(例如,隐藏层104)的输出不能线性映射到先前层(例如输入层102)。非线性缩放可以有利地允许在训练阶段期间的梯度下降。神经元108可以将该值传播到随后的神经元层(例如输出层106)。
上述过程在传统的神经网络(如ANN 100)中实现。因此,可以在ANN 100中实现重要的计算任务,例如向量矩阵乘法,其中,利用乘累加(MAC)函数(Σwij*xi)将输入或神经元激活的向量xi乘以突触权重的矩阵wij来产生激活。
在实现方式中,乘积和求和基于绝对值,其在数字情况下是数值的,在模拟方法中是电压或电流。例如,在数字实现方式中,输入信号和突触权重可以由二进制数表示,乘法运算可以由数字乘法器执行,并且结果可以被累加或求和为数字。这种方法在能量和硅面积方面效率相对较低。
在图1B中,示出了传统ANN 100可以执行的不同功能的框图。各个神经元108可以单独地或组合地执行各种动作。ANN 100的特定层(例如隐藏层104)的神经元108可以执行图1A中所述的任何功能。
在110处,ANN 100在输入层102处接收输入信号(未示出)。输入层102进一步将输入信号乘以神经元108的突触权重(未示出)。在112处,ANN 100将所执行的所有乘法运算的结果累加或相加到一起。在114处,ANN将偏置添加到累加的乘法运算的输出,并将和应用于激活函数116。在激活函数116处,ANN执行激活函数并将激活函数的输出级联到随后的神经元层。
图2示出了传统的数字乘累加阵列200。图2描绘了乘累加阵列200的数字实现方式,该乘累加阵列200能够计算传统ANN(如图1的ANN 100)的诸如乘和累加的函数。
阵列200包括用于接收来自先前层102、104中的先前神经元108的输出信号的激活存储器202、用于提供突触权重的权重存储器204、用于对输入信号进行乘法运算并对乘法运算的输出求和的乘累加器(MAC)205、以及用于对相加在一起的MAC 205的输出信号进行累加的累加器206。
阵列200还包括例示乘法累加器205的一个可能实施方式的MAC单元208。
图11示出了传统的基于模拟传导的推理系统1100,该系统100使用电阻来存储突触权重,以实现图1A的ANN 100。
在系统1100中,存储器元件用于产生与所需突触重量成比例的电阻。在半导体制造中,存储器元件可能需要特殊的处理层。在电阻器(未示出)两端施加电压,根据欧姆定律,所得电流是输入信号和权重的乘积,其中I=V/R。权重存储为1/R。
该系统取决于工艺、绝对电压和温度。这些参数随时间的任何漂移或感应噪声都可能在电流中引入误差,这可能直接影响使用系统1100实现的神经元的计算精确性和性能。可以使用谨慎而复杂的技术来补偿这些非理想性,这会产生成本并限制可实现的性能。这种困难使得模拟存储器内计算变得非常困难,并且在商业上不切实际。用于实现这些存储器内解决方案的一些示例技术是相变存储器(PCM)、电阻RAM(RRAM)、闪存、电容存储器等。本发明的系统、方法和设备可以有利地克服这些困难中的至少一些。
输入层102和输出层106之间的计算可以根据突触权重105进行。
系统1100还包括用于实现ANN 100的硬件1110。硬件1110包括晶体管1112。晶体管1112可以一起形成电导对1114。硬件1110还包括非易失性存储器1116。
发明内容
本发明呈现了一种高效且优雅的模拟处理系统,该系统可以以最低成本用于多种目的,包括神经网络处理的目的。本发明呈现一种用途,以及在计算机系统、方法和设备中实现的情况下,呈现包括模拟存储和计算机制的实施方式,例如利用电荷捕获晶体管(CTT)技术来调整N型金属氧化物半导体(NMOS)晶体管的阈值,以便在校准机制中使阈值偏移。在神经网络中执行诸如乘法运算、累加、和非线性激活的函数的神经元可以通过使用现有的标准硅处理技术(如互补金属氧化物半导体(CMOS))进行校准。
需要用于使用模拟/混合信号设计技术实现的硅神经网络架构来克服智能系统中固有的功率和成本障碍。这些模拟解决方案可以通过稳定性机制来改进,以确保稳定性和可靠性。有利地,在前述实施方式中实现的神经网络可在长时间的日常使用中使用。
在本发明中,已经利用了一种新颖的架构方法来实现各种存储器类型的使用,包括电荷捕获晶体管(CTT),其中绝对电压、电流和器件特性不会影响精确性。代替依靠绝对电压(或电流)来适当地缩放值,时间被用作参考。所有计算都是按时间比率进行的。由于获得稳定的时间参考(例如,晶体振荡器)通常是简单且低成本的,因此通过进行相对于稳定的时间参考的所有计算,可以校准掉所有其他依赖性。
在一个实施方式中,信号处理(包括神经网络处理)所需的基本计算元素是利用时间或相位作为基本信息元素来实现的。该实施方式与传统方法显著不同,因为性能不直接取决于任何绝对物理参考,例如通常在模拟信号处理解决方案中使用的电压、电流、电导或电感。通过相应地利用时间或相位,与其他模拟计算方法相比,可以有利地获得显著的性能增益。这种有利的性能增益包括对环境和制造非理想性的显著敏感性。
在一个实施方式中,信息被编码为周期信号的时间周期或相位变化。其他物理现象可能仅在比率意义上与物理现象的瞬时值有关时才是重要的。
在一个实施方式中,将输入转换为时间脉冲,然后通过其电导可以定期编程和更新的元件(如CTT存储结构)的电导对时间脉冲进行加权,从而产生缩放的电流脉冲。来自电流脉冲的所得电荷累积在存储电容器上,用作比较器(例如TIQ比较器)的控制信号,并随后传播到下一级联层或临时存储器(例如短暂存储器存储设备)。
在一个实施方式中,提供了比较器,例如阈值反相器量化(TIQ)比较器。在一个实施方式中,TIQ比较器执行比较和量化。在一个实施方式中,TIQ比较器包括至少一个反相器,其中一些晶体管用作电荷捕获器件。每个反相器包括两对CTT,每对CTT包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管。根据反相器1001的PMOS CTT的强度除以反相器1001的NMOS CTT的强度所得到的比率来针对每个反相器1001设置TIQ比较器的阈值。每个晶体管的强度被理解为与每个晶体管的宽度、每个晶体管的长度、每个晶体管的迁移率、和/或每个晶体管的任何其他相关参数或因子有关。TIQ比较器器件可以是经CTT校准的TIQ比较器。
在一个实施方式中,提供了短暂存储器,用于在短时间延迟后临时保留要使用的信息。短暂存储器可以包括形成异步可控延迟的内环的多个亚阈值通道晶体管逻辑(PTL)延迟线块。内环可以由形成异步计数器的D触发器的外环来支持。这种组合可以协同工作,以实现延迟状态的有效短期精确存储。
在一个实施方式,提供了一种校准方法。在一个实施方式中,可以根据一个指定的参考结构来校准所有器件行为,该参考结构包括:权重块->电流镜->电容器->比较器链。一旦参考链已经被校准到单位标度时间,例如1us中的1pF电容器的满标度电荷,则可以使用相同的参考信号链来校准所有电流镜/电容器比较器链。
提供了一种用于操作人工神经网络(ANN)的系统。该系统包括神经元。每个神经元包括:多个突触,所述多个突触包括用于处理输入信号的电荷捕获晶体管(CTT),所述CTT提供突触权重;累加块,用于接收来自所述多个突触的漏极电流,所述漏极电流作为来自所述多个突触的乘法运算的输出而产生;电容器,用于累积来自漏极电流的电荷以用作累加信号的短期存储器;放电脉冲发生器,用于通过在放电周期期间对累积的电荷进行放电来产生输出信号;以及比较器,用于将作为输入电压的输出信号与参考电压进行比较,如果输入电压高于参考电压,则比较器产生第一输出,如果输入电压低于参考电压,则比较器产生第二输出。
在一个实施方式中,累加块包括:用于从多个突触接收漏极电流的存储设备、用于存储突触权重并执行突触权重与输入信号的乘法运算的多个乘法器、以及用于对来自多个乘法器的乘法运算的输出求和以产生累加信号的累加器。
在一个实施方式中,比较器是阈值反相器量化(TIQ)比较器,其包括至少一个互补金属氧化物半导体(CMOS)反相器的级联。每个CMOS反相器包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管。参考电压对应于由TIQ比较器自身产生的TIQ比较器的阈值。TIQ比较器的阈值可通过PMOS晶体管或NMOS晶体管调整。TIQ比较器的阈值对应于PMOS晶体管的强度除以NMOS晶体管的强度所得到的比率。
漏极电流可以作为来自多个突触的乘法运算的输出而产生,并且可以产生等于输入信号和突触权重的乘积的电荷量。
漏极电流可以在连接到累加块之前连接在一起,累加块可以对漏极电流求和,并且漏极电流之和可以作为累加信号传输到电容器以用于存储。
每个CTT可以执行表示突触权重的漏极电流与时间的乘法运算作为输入,并且所有的乘法运算可以在电容器上累加。
累加块可以对漏极电流求和作为有线OR函数。
可以通过编程来调整每个CTT的阈值电压,以存储相应突触的权重值。每个CTT可以包括可以被施加电压脉冲的栅极,电压脉冲的源极可以为接地端,栅极-源极电压可以是恒定的,并且电压脉冲可以使用时间承载信息。
电阻可用于存储突触权重。
电阻可由CTT提供。
多个突触可以将突触权重存储在CTT的阈值电压偏移中。
来自第一缩放电流脉冲的电荷可以累积在电容器上以用作控制信号。
每个神经元中的积分电荷可以与输入信号和突触权重的乘积成比例,并且积分电荷的值可以保持恒定直到放电。
流经CTT的电流可以由电流镜镜像,以实现电荷在电容器上的积累,从而产生与加权输入之和成比例的电压。
放电脉冲发生器可以是放电周期级联电流源。
放电脉冲发生器还可以在累加期间传输累加信号,以实现ANN中的减法函数。
除了TIQ比较器的参考电压之外,还可以提供第二参考电压。
还可以提供第二参考电压来代替TIQ比较器的参考电压。
还可以产生激活脉冲作为输出信号。
多个突触可以接收输入信号,将输入信号的电压转换为电流,并产生第二缩放电流脉冲作为输出信号。
该系统还可以包括用于提供短暂存储器结构的装置,以用于在ANN的层之间临时保留信息。该装置包括:内环,所述内环包括用于提供异步可控延迟的模拟亚阈值延迟块;以及外环,所述外环包括用于支持内环的多个异步计数器。内环和外环协同操作,以实现延迟状态的有效短期精确存储。
ANN可以包括:输入层,用于在神经元处接收输入;至少一个隐藏层,用于将输入乘以突触权重以产生乘积,向乘积添加偏置以产生和,将和应用于激活函数,执行激活函数以产生输出信号,以及将输出信号级联到神经元的随后层;以及输出层,用于提供输出信号。输入层、至少一个隐藏层、和输出层中的每一者都包括至少一个神经元。
CTT的子集可以是NMOS CTT。
CTT的子集可以是PMOS CTT。
每个CTT可以包括高k金属栅极。可以在电荷捕获过程期间施加漏极偏置。
每个CTT可以包括栅极电介质,该栅极电介质包括SiO2的界面层。
每个栅极电介质可以包括SiO2的界面层和级联的HfSiON层。
每个CTT可以在电荷捕获过程期间施加漏极偏置,以使其他载流子稳定地在栅极电介质中被捕获。
每个CTT的阈值电压可以通过在每个栅极电介质中捕获的电荷量来调制,每个漏极偏置可以由于增强的局部加热效应而增强和稳定电荷捕获过程,并且每个CTT的每个阈值电压可偏移受控量并编码参数值。
通过在设定编程电压偏置下施加可变长度的栅极脉冲来对权重值编程。在正编程期间,可以施加正栅极电压脉冲,并且阈值电压可以在第一方向上偏移。在负编程期间,可以施加负脉冲,并且阈值电压可以在与第一方向相反的第二方向上偏移。
恒幅脉冲可以施加到栅极的源电压。
恒幅脉冲可以直接传播到ANN的后续层。
恒幅脉冲可以通过非线性函数并传播到ANN的后续层。
非线性函数可以是线性整流函数(ReLU)。
第一输出可以高于第二输出。在一个实施方式中,第一输出可以是高输出,第二输出可以是低输出。
第一输出可以低于第二输出。在一个实施方式中,第一输出可以是低输出,第二输出可以是高输出。
提供了一种用于包括神经元的人工神经网络(ANN)的方法。该方法包括:通过多个电荷捕获晶体管(CTT)来处理输入信号,所述CTT提供突触权重;产生漏极电流作为来自所述多个CTT的乘法运算的输出;从所述多个CTT接收漏极电流;累积来自所述漏极电流的电荷以用作累加信号的短期存储;通过在放电周期期间对累积的电荷进行放电来产生输出信号;以及在比较器处将输入电压与参考电压进行比较,如果输入电压高于参考电压,则比较器产生第一输出,如果输入电压低于参考电压,则比较器产生第二输出。
在一个实施方式中,从所述多个CTT接收漏极电流包括:从多个突触接收漏极电流,存储突触权重,并执行突触权重与输入信号的乘法运算,以及对乘法运算的输出求和以产生累加信号。
在一个实施方式中,比较器是阈值反相器量化(TIQ)比较器。TIQ比较器包括至少一个互补金属氧化物半导体(CMOS)反相器的级联,每个级联的CMOS反相器包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管。参考电压对应于由TIQ比较器自身产生的TIQ比较器的阈值。TIQ比较器的阈值可通过PMOS晶体管或NMOS晶体管调整,并且TIQ比较器的阈值对应于PMOS晶体管的强度除以NMOS晶体管的强度所得到的比率。
可以在CTT处接收输入信号,可以将输入信号的电压转换为电流,并且可以产生第二缩放电流脉冲作为输出信号。
可以由以下来实现ANN:接收输入的输入层;将输入乘以突触权重以产生乘积的隐藏层;向乘积添加偏置以产生和的隐藏层;将和应用于激活函数的隐藏层;执行激活函数以产生输出信号的隐藏层;以及将输出信号级联到神经元的随后层的隐藏层。
该方法还可包括校准ANN,校准ANN可包括:确定指定的参考权重块,根据指定的参考权重块校准电流镜,根据指定的参考权重块校准电容器,根据指定的参考权重块校准TIQ比较器,以及在指定的参考权重块中校准存储在CTT上的每个突触权重。
校准后,电流镜、电容器和比较器可以各自与指定的参考权重块同步。一旦电流镜、电容器和比较器的校准完成,则每个神经元信号路径可以相对于指定的参考权重块进行匹配,并且所有神经元可以按比率相互匹配。
第一输出可以高于第二输出。在一个实施方式中,第一输出可以是高输出,第二输出可以是低输出。
第一输出可以低于第二输出。在一个实施方式中,第一输出可以是低输出,第二输出可以是高输出。
提供了一种阈值反相器量化(TIQ)比较器器件,用于将输入电压与参考电压进行比较。TIQ比较器器件包括:用于接收输入信号的输入连接端、至少一个互补金属氧化物半导体(CMOS)反相器的级联,每个CMOS反相器包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管。TIQ比较器器件还包括用于传输输出信号的输出连接端、用于接收功率的功率连接端和接地端。参考电压对应于由TIQ比较器自身产生的TIQ比较器的阈值。如果输入电压超过阈值,则第二输出翻转到第一输出,并且如果输入电压下降到阈值以下,则第一输出翻转到第二输出。TIQ比较器的阈值可通过PMOS晶体管或NMOS晶体管调整。TIQ比较器的阈值对应于PMOS晶体管的强度除以NMOS晶体管的强度所得到的比率。
PMOS晶体管可以是PMOS CTT,NMOS晶体管可以是NMOS CTT,并且TIQ比较器器件可以是可配置的以通过CTT进行校准。
CTT可以是可配置的以为TIQ比较器提供可调整的阈值,以校准包括另外的CTT的人工神经网络(ANN)上的参考值。
另外的CTT的子集可以是PMOS器件。
另外的CTT的子集可以是NMOS器件。
TIQ比较器器件的阈值电压可以通过对权重矩阵中记录的阈值电压进行重新编程来保持和重新校准。
可使用相关双采样来实现TIQ比较器器件的阈值偏移的改进消除。
相关双采样可以初始化电容器上的电压。
TIQ比较器器件可以是双斜率TIQ比较器器件。
第一输出可以高于第二输出。在一个实施方式中,第一输出可以是高输出,第二输出可以是低输出。
第一输出可以低于第二输出。在一个实施方式中,第一输出可以是低输出,第二输出可以是高输出。
提供了一种提供用于在人工神经网络(ANN)的层之间临时保留信息的短暂存储器的装置。该装置包括:内环,所述内环包括用于提供异步可控延迟的模拟亚阈值延迟块;以及外环,所述外环包括多个异步计数器,以支持所述内环。内环和外环协同操作,以实现延迟状态的有效短期精确存储。
模拟亚阈值延迟块可以包括多个亚阈值通道晶体管逻辑(PTL)延迟线元件。
异步计数器可以包括第一异步计数器。第一异步计数器可以是1位异步亚阈值计数器。异步计数器可以包括D触发器。
该装置还可以包括多异步计数器。
所述多异步计数器可以是1位级联的亚阈值计数器。
短暂存储器可以异步运行。
时间可以临时存储在纳瓦或皮瓦的功耗空间中。
该装置可以接收第一激活脉冲,并且该装置可以通过第一异步计数器存储第一激活脉冲的宽度。该装置可以通过在第一异步计数器上向下计数来将第一激活脉冲传输到ANN的后续层。
模拟亚阈值延迟块和第一异步计数器可以一起创建具有内部延迟的正反馈环,从而产生振荡器。
振荡器可以是基于延迟线元件的频率振荡的自定时振荡器,并且该装置还可以包括由自定时振荡器计时并由延迟线元件和第一异步计数器创建的第二计数器。
当电容器放电时,可以启用振荡器。当振荡器被启用时,振荡器可以触发第一异步计数器向上计数,并且当电容器放电时,可被停用振荡器,并且第一异步计数器可以保持值。振荡器随后可以再次被启用,并且第一异步计数器可以在第一时间期间向下计数到零。在第一时间期间,可以产生脉冲作为后续神经元的输入。
在放电时段期间,神经元可以产生第一激活脉冲。当第一激活脉冲为高时,第一激活脉冲启用振荡器,并且当第一激活脉冲为低时,第一激活脉冲停用振荡器并且第一异步计数器停止,第一异步计数器已经存储了表示第一激活脉冲的脉冲宽度的数,所述第一异步计数器还将所存储的数保持一时间段。
该时间段可以是数秒。
第一异步计数器可在第一激活脉冲期间向上计数,并可以在装置将第一激活脉冲施加到后续神经元以启用延迟线元件时向下计数,并且可以产生等于第一激活脉冲的第二激活脉冲。
第一异步计数器可以与相反配置的第二计数器配对,使得当第一异步计数器向下计数时,第二计数器向上计数以进一步存储第一激活脉冲的宽度。
向上计数的第二计数器可以通过累加器电容器放电周期来启用,并且可以在比较器根据阈值电压翻转状态时停用。向下计数的第一异步计数器可以通过用于ANN的后续层的开始推理信号来启用。
该装置可以使用动态逻辑来节省空间和功率。
短暂存储器可以包括时间短暂存储器。
时间可以被计算为绝对时间、经过时间、时间延迟和时间变化率中的一者或多者。
时间可以被计算为绝对时间,并且所有信息可以关于时间按比率处理。
对于本领域普通技术人员来说,在审查以下对一些示例性实施方式的描述后,其他方面和特征将变得显而易见。
附图说明
此处包括的附图用于示出本说明书的物品、方法和装置的各种示例。在附图中:
图1A是通用的传统人工神经网络(ANN);
图1B是图1A的ANN传统上可以执行的不同功能的框图;
图2是传统的数字乘法累加阵列;
图3是根据一个实施方式的包括阈值反相器量化(TIQ)比较器器件的神经元;
图4是根据一个实施方式的利用电荷捕获晶体管(CTT)进行权重存储和乘法运算的神经元的简化结构;
图5是根据一个实施方式的神经元;
图6示出了每个神经元中双斜率脉冲产生过程的附加细节;
图7是根据一个实施方式的适用于图3、图4和图5的神经元的电荷捕获晶体管(CTT);
图8是根据一个实施方式的包括图7的多个CTT的ANN的示例层;
图9A是根据一个实施方式的级联电流镜;
图9B是根据一个实施方式的级联电流镜;
图10是根据一个实施方式的图3和图5的TIQ比较器器件;
图11是使用电阻来存储突触权重的传统的基于模拟传导的推理系统;
图12是根据一个实施方式的卷积神经网络(CNN);
图13描绘了要处理的两个3乘3矩阵;
图14是根据一个实施方式的3乘3卷积神经元通过图12的CNN中的简化突触的实现方式;
图15是根据一个实施方式的参考块校准方法的流程图;
图16是根据一个实施方式的短暂存储器方案;
图17是根据一个实施方式的实现图16的短暂存储器方案的短暂存储器装置;
图18是根据一个实施方式的图17的短暂存储器装置的进一步细节;
图19是根据一个实施方式的图17和图18的短暂存储器结构的进一步细节;和
图20是根据一个实施方式的使用ANN的方法的流程图。
具体实施方式
以下将描述各种装置或过程,以提供每个要求保护的实施方式的示例。以下描述的实施方式不限制任何要求保护的实施方式,并且任何要求保护的实施方式可以覆盖与以下描述的实施方式不同的过程或装置。所要求保护的实施方式不限于具有下面描述的任何一个装置或过程的所有特征的装置或过程,或者不限于下面描述的多个或所有装置所共有的特征。
本文所述的一个或多个系统可以在可编程计算机上执行的计算机程序中实现,每个可编程计算机包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、和至少一个输出设备。例如,而非限制,可编程计算机可以是可编程逻辑单元、大型计算机、服务器和个人计算机、基于云的程序或系统、膝上型计算机、个人数据助理、蜂窝电话、智能手机、或平板设备。
每个程序优选以高级程序化或面向对象的编程、和/或脚本语言实现,以与计算机系统通信。然而,如果需要,这些程序可以用汇编语言或机器语言实现。在任何情况下,语言都可以是编译语言或解释语言。每个这样的计算机程序优选地存储在通用或专用可编程计算机可读的存储介质或设备上,用于在计算机读取存储介质或设备以执行本文所述的程序时配置和操作计算机。
对具有多个相互通信的组件的实施方式的描述并不意味着需要所有这样的组件。相反,描述了各种可选组件以说明本发明的各种可能的实施方式。
此外,尽管过程步骤、方法步骤、算法等可以按顺序描述(在公开内容和/或权利要求中),但这些过程、方法和算法可以配置为按替选顺序工作。换言之,可以描述的步骤的任何序列或顺序不一定指示以该顺序执行步骤的要求。本文描述的过程的步骤可以以任何实用的顺序来执行。此外,一些步骤可以同时执行。
当本文描述单个设备或物品时,很明显,可以使用多于一个的设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在本文中描述了多于一个的设备或物品(无论它们是否协作)的情况下,很明显,可以使用单个设备/物品来代替该多于一个的设备或物品。
本发明描述了一种在硅神经网络架构中实现神经网络的方法,更一般地,描述了使用模拟/混合信号设计技术和稳定性机制实现的算法计算功能。有利地,本文公开的神经网络可以用于日常使用和长时间使用。
传统计算引擎分为几个类别,包括传统计算(如冯·诺伊曼架构)、基于GPU的计算(类似于冯·诺依曼架构,且适合繁重的数学运算)、数据流架构、以及上述的组合。传统的解决方案已经使用传统的数字设计方法在数字CMOS工艺技术中实现。传统的解决方案需要存储器和计算能力的结合。实现方式之间的差异主要集中在内存和计算是如何实现的,以及信息是如何在这些元件之间传输的。
本发明涉及将计算元件与存储元件统一为单个设备。在一个实施方式中,可以利用修改的数据流架构来有利地处理诸如神经网络的大型计算工作负载,尽管该实施方式完全保持在模拟和时域中。有利地,相对于现有方法,本发明可以导致功耗和面积使用的降低。
与人脑如何处理数据类似,本发明的概念是信息与时间相关的原理。时间可以以多种方式测量和利用,包括绝对时间、经过时间、时间延迟(称为相位)和时间变化率(频率)。在本发明中,时间可以被用作绝对参考。在时间被用作绝对参考的情况下,信息是关于时间按比率处理的。在利用模拟信号处理的实施方式中,系统可以对诸如电压、电流、电阻、电容和电感的绝对物理特性或参数敏感并依赖于它们。由于物理参数可能随着时间、温度和制造过程而变化,如果依赖物理参数绝对值作为参考,则计算精确性可能会受到影响。至少出于上述原因,本发明关注于将时间作为绝对参考。有利地,即使随着时间的缓慢漂移也可以不影响精确性,因为计算是按比率进行的。
在结果的背景下,多个神经网络,包括全连接神经网络(FCNN)、多个卷积神经网络(CNN)、和递归神经网络(RNN),已经使用本发明中描述的架构进行了建模。已经使用详细的SPICE器件模型和晶体管的MOSRA可靠性模型,基于28nm、22nm和14nm工艺节点铸造厂的物理设计套件,对每个器件和块进行了模拟。结果可以有利地适用于具有晶体管的任何技术节点。该结果可以进一步有利地适用于具有执行类似功能的器件的其他技术节点。下面的表1示出了多个行业标准网络和相关应用的结果。
表1:性能基准
在存储器内和模拟计算领域,有许多基础技术在过去十年中得到了关注和研究。表2示出了应用于Edge(边缘)AI计算的多种技术以及利用这些技术的示例性公司名称。
表2:针对边缘AI应用的存储器内或模拟计算所使用的不同技术
本发明可以在任何一个或多个通用人工智能中具有应用,例如机器人的自然语言处理、图像处理和自然运动处理以及神经形态计算的应用,以实现家庭、工厂或医院的无监督学习和自主机器人辅助。
在整个具体实施方式中,术语“ANN”被理解为是指人工神经网络,术语“CNN”被理解为是指卷积神经网络,术语“CTT”和“CTTs”被理解为是指电荷捕获晶体管,术语“NMOS”被理解为是指“n沟道金属氧化物半导体”,术语“PMOS”被理解为是指“p沟道金属氧化物半导体”,以及术语“CMOS”被理解为是指“互补金属氧化物半导体”。
在整个本发明中,CTT可以被理解为满足本文所表达的技术要求并执行本文进一步描述的电荷捕获功能的普通晶体管。CTT是满足本技术要求(例如,如图7的讨论中所表达的)并执行电荷捕获功能的任何晶体管。因此,除非另有明确规定,否则对晶体管的任何引用都被理解为包括如此引用的晶体管是CTT的实施方式。
现在参考图3,其中示出了根据一个实施方式的神经元300。神经元300包括用于接收和处理输入信号的多个突触302、用于累加输入信号的累加块304、用于临时存储累加信号的存储电容器306、用于产生输出信号的放电脉冲发生器308、以及用于比较电压的比较器314。
神经元300可以形成ANN(未示出)的一部分。神经元300还包括激活脉冲312,该激活脉冲312被生成用于传播到ANN的后续层。
多个突触302包括用于提供突触权重的CTT(未示出)。
累加块304包括用于接收来自多个突触302的漏极电流(未示出)的存储设备(未显示)。存储设备可以是能够接收和存储电流的任何存储设备。存储设备可以是存储器。漏极电流是作为来自多个突触302的乘法运算的输出而产生的。漏极电流产生与施加固定电压作为输入的时间段成比例的电荷量。
累加块304还包括多个乘法器(未示出),用于存储突触权重并将突触权重乘以由CTT处理的输入信号。累加块304还包括累加器(未示出),用于对来自多个乘法器的乘法运算的输出求和。
存储电容器306累积来自漏极电流的电荷,以用作累加信号的短期存储器。
放电脉冲发生器308通过在放电周期期间对累积的电荷进行放电来产生输出信号。
如果接收到的输入信号高于参考电压,则比较器314产生第一输出。如果接收到的输入信号低于参考电压,则比较器314产生第二输出。在一个实施方式中,第一输出高于第二输出,并且第一输出被称为“高”输出,第二输出被称为“低”输出。在另一个实施方式中,第一输出低于第二输出,并且第一输出被称为“低”输出,第二输出被称为“高”输出。
在一个实施方式中,比较器314是阈值反相器量化(TIQ)比较器314,用于将输入电压与参考电压进行比较。有利地,在比较器314是TIQ比较器的实施方式中,参考电压VREF由比较器314自生成的,作为TIQ比较器314的固有阈值电压。
TIQ比较器314包括至少一个CMOS反相器(未示出)的级联。每个CMOS反相器包括PMOS晶体管(未示出)和NMOS晶体管(未示出)。根据每个CMOS反相器的传递曲线,当输入信号从0伏变为更高电压时,达到每个CMOS反相器的阈值,并且输出从第二输出翻转到第一输出。例如,在一个实施方式中,这可以包括从低输出到高输出的输出翻转。因此,该阈值用作隐含的参考电压。此外,如果输入电压下降到阈值以下,则高输出将状态从第一输出翻转到第二输出。例如,在一个实施方式中,这可以包括从高输出到低输出的输出翻转。
在使用奇数个反相器的情况下,每次达到CMOS反相器级联的阈值时,输出将处于翻转状态。在使用偶数(大于零)反相器的情况下,每次达到CMOS反相器级联的阈值时,输出将不处于翻转状态(即,输出将翻转回来)。
在一个实施方式中,PMOS晶体管和NMOS晶体管是CTT,并且TIQ比较器314的阈值可根据电荷捕获技术通过PMOS CTT和NMOS CTT中的至少一者来调整。
TIQ比较器314的阈值对应于PMOS晶体管的强度除以NMOS晶体管的强度所得到的比率。
TIQ比较器314的阈值是固有的,并且可以有利地根据CTT技术进行调整。CTT器件(例如关于图7所描述的器件)可以用于控制、修改或以其他方式改变阈值或参考电压,以实现神经网络300的操作。
普通比较器可能无法实现上述功能,因为普通比较器的VREF或阈值是单独生成的。有利地,通过最小化用于执行比较功能的晶体管的数量,消除参考电压或阈值电压的源,并提供校准TIQ比较器314的阈值的机制,上述TIQ功能代表相比于普通比较器的新颖和创造性的改进。
在本发明中,TIQ比较器314的前述功能还包括使用阈值校准来校准神经元300。
多个突触302传播作为输入而接收的输入信号。累加块304在充电周期期间累积电荷。在一个实施方式中,累加块304是充电周期级联电流镜。存储电容器306累积来自电流脉冲的所得电荷,并且用作累加的输入信号的短期存储器的形式。
放电脉冲发生器308在放电周期期间放电。在一个实施方式中,放电脉冲发生器308是放电周期级联电流源。在一个实施方式中,放电脉冲发生器308还在充电周期期间传输输入信号以实现减法函数。
在神经元300中可能没有明确的Vref。Vref可以被内置为TIQ比较器314本身的阈值。神经元300可以基于改变TIQ比较器314的内置阈值来调整。
在一个实施方式中,CTT可用于为TIQ比较器314提供可调整的阈值,即校准神经元300的阈值的一种方式。
在一个实施方式中,可以有利地采用相关双采样来实现TIQ 314的阈值偏移的改进消除。相关双采样还有利地初始化存储电容器306上的电压。
现在参考图4,示出了根据一个实施方式的本发明的神经元400的简化结构,该神经元400利用CTT进行权重存储和乘法运算。
神经元400包括突触402a、402b和402c,用于执行基于模拟传导的推理。在一个实施方式中,突触402a、402b和402c是CTT 402a、CTT 402b和CTT 402c。突触权重存储在CTT402a、CTT 402b和/或CTT 402c的阈值电压偏移中。
CTT 402a、CTT 402b和CTT 402c分别接收输入信号408a、408b和408c。输入信号408a、408b和408c分别被施加到CTT 402a、CTT 402b和CTT 402c。
CTT 402a、CTT 402b和CTT 402c分别产生漏极电流403a、403b和403c。漏极电流403a、403b和403c各自产生的电荷量分别等于输入信号408a、408b和408c与存储在CTT402a、CTT 402b和CTT 402c各自处的突触权重的乘积。
神经元400还包括存储电容器404,用于累积来自漏极电流403a、403b和403c的所得电荷。
神经元400还包括比较器406。比较器406可以是图3中的TIQ比较器314。在比较器406是TIQ比较器314的实施方式中,在存储电容器404的操作的放电阶段期间,当接收到的输入电压下降到比较器406的参考电压以下时,比较器406的输出从第一输出翻转到第二输出,当接收到的输入电压超过参考电压时,输出从第二输出翻转到第一输出。
比较器406可以是双斜率TIQ比较器406,并且可以产生激活输出。在混合信号实现中,将输入转换为时间脉冲,然后通过神经元400的电导对时间脉冲进行加权,以产生缩放电流脉冲(未示出)。来自缩放电流脉冲的所得电荷被累积在存储电容器404上,并且随后以恒定速率放电,以便产生时序脉冲408d。
在一个实施方式中,神经元400形成ANN(未示出)的一部分。时序脉冲408d可以直接传播到ANN的后续层。时序脉冲408d可以通过非线性函数,如线性整流函数(ReLU),然后传播到ANN的后续层。时序脉冲408d可以存储在短暂存储器存储元件(未示出)中,以备将来使用。短暂存储器存储元件可以是时间短暂存储器。短暂存储器存储元件和/或时间短暂存储器可以是存储电容器404。
神经元400还包括用作电接地端的接地端416。
参考图5,其中示出了根据一个实施方式的神经元500。
神经元500包括突触502a、502b、502c和502d,用于接收用于存储和提供突触权重的输入信号(统称为突触502,一般称为突触502)。突触502可以包括任意数量的突触。
神经元500还包括用于累加输入信号的累加块504、用于临时存储累加信号的存储电容器506、用于产生输出信号的放电脉冲发生器508、用于比较电压的比较器514、以及对应于每个突触502的用于将电流从突触502传输到累加块504的漏极520a,520b、520c和520d(统称为漏极520,一般称为漏极520)。
神经元500可以形成ANN(未示出)的一部分。神经元500还包括激活脉冲512,该激活脉冲512被生成用于传播到ANN的后续层。
突触502基于接收到的输入信号执行乘法函数,并且每个突触502在一定时间段内产生电流。所接收的输入信号可以是所接收的激活脉冲512。产生每个电流的时间段等于在每个突触502处接收到的所接收的激活脉冲512的宽度。每个这样的所接收的激活脉冲512可以包括不同的宽度。
漏极520在连接到累加块504之前连接在一起。累加块504对传输通过漏极520的电流求和。在一个实施方式中,求和运算等效于有线OR函数。累加块504处的求和运算的结果被进一步作为信号传输到电容器506。
在一个实施方式中,累加块504用作电流镜,用于镜像流过突触502的电流。有利地,当电力供应低并且电路操作净空有限时,可以使用电流镜。
累加块504包括用于从多个突触502的漏极520接收传输电流的存储设备(未示出)、用于存储突触权重并将突触权重乘以传输电流的多个乘法器(未示出来)。累加块504还包括累加器(未示出),用于对来自多个乘法器的乘法运算的输出求和。
电容器506包括用于使神经元500接地的底板516。电容器506还包括用于累积来自突触502的电荷的顶板518。在一个实施方式中,有利地,不存在有源积分器电路实现方式,并且单个开环电容器506可以临时存储累积的电荷。
施加到每个突触502的电压脉冲可以同时作为信号开始传输。每个这样的信号根据从ANN的前一层接收的输入信号,而停止传输或“关闭”。
图5还描绘了曲线图510,曲线图510示出了在参考电压变化的情况下的激活脉冲512。激活脉冲512的宽度是从一个神经元(如神经元500)跨ANN的多个层传递到后续神经元的信息。所述的双斜率乘法累加函数使用时间来承载激活信息。
曲线图510的第一斜率522表示累加的时间,即接收到的输入信号在漏极520上相加的时间。这表示“乘法累加”运算的“累加”阶段。
曲线图510的第二斜率524表示激活脉冲512的产生,在此期间,恒定的参考电流使电容器506上累积的电荷放电。下降电流与电荷通过恒定电流从电容器506放电有关。所产生的激活脉冲512在放电阶段开始时开始,并且当电容器506的顶板518上的电压下降到比较器514的阈值电压以下时停止。
现在参考图6,其中示出了曲线图600,曲线图600描绘了用于在神经元500中产生激活脉冲512的双斜率乘法累加函数的附加细节。在曲线图600中,积分电荷与乘积成比例,但乘积的绝对值并不重要。在一个实施方式中,当乘积的值保持恒定直到恒定电流放电事件时,激活脉冲被成功地生成,例如如关于图5所描述的激活脉冲512的生成。
曲线图600描绘了用于组合乘法累加函数以生成激活脉冲512的双斜率过程。曲线图600包括表示电荷的竖直轴614。曲线图600还包括表示时间的水平轴606。
曲线图600包括发生MAC积分的第一区域602。在第一区域602中,累积在电容器506上的电荷与乘积成比例。这种乘积可以是∑(Wij*Xi),如图13所示的矩阵。第一区域602包括对应于充电周期的第一斜坡608。
曲线图600包括第二区域604,其中电容器506的放电以单位标准发生。电容器506的放电速率提供与在突触502处接收的所接收输入信号和存储在突触502处的突触权重的归一化点积成比例的时间比分数,并且用于生成用于ANN的后续层的激活脉冲512。第二区域604包括与电容器506的放电周期相对应的第二斜率610。
第一斜率608和第二斜率610分别表示神经元500的充电周期和放电周期。曲线图600描绘了充电周期,其中先前生成的激活脉冲512被施加到神经元500。信号从突触502通过漏极电流520传输到累加块504,并且所得到的电流被求和,即,“相乘并累加”的累加阶段。
曲线图600还描绘了放电周期。为了产生进入ANN的后续层的激活脉冲512的脉冲宽度(未示出),使用已知的恒定电流使电容器506放电。电容器506放电所花费的时间决定了进入后续层的脉冲宽度。
现在参考图7,其中示出了根据一个实施方式的适用于图3、图4和图5的神经元300、400和500的突触302、402和502的CTT 700。
CTT 700包括用于接收输入信号的栅极702。CTT 700包括用于接收输入电压(或激活)的负参考的层源极704。CTT 700包括用于促进可能的阈值调整以补偿诸如温度的参数的层体偏置706。CTT 700包括用于传输输出信号的层漏极708。CTT 700包括栅极电介质(未示出),用于插入栅极702和施加CTT 700的基板之间。栅极电介质用于存储捕获的电荷并调整CTT 700的阈值电压。
在一个实施方式中,CTT 700是电荷捕获权重存储晶体管。在一个实施方式中,CTT700是NMOS CTT。在一个实施方式中,CTT700是PMOS CTT。
CTT器件700已被用作多级非易失性存储器。在具有高k金属栅极702的晶体管700中利用电荷捕获现象并在电荷捕获过程期间施加漏极偏置可增强CTT 700中的电荷捕获过程。
具有SiO2的界面层(未示出),然后是级联的HfSiON层(未示出)作为栅极电介质的N型CTT 700是小于32nm的CMOS技术工艺节点中的常见器件类型。N型CTT可以包括SiO2的界面层,然后是类似于氮化物HfSiON层的高K材料作为栅极电介质。
通过在晶体管700的栅极电介质中捕获的电荷量来调制CTT 700的阈值电压Vt(未示出)。漏极偏置由于增强的局部加热效应而增强并稳定了电荷捕获过程。
使用CTT 700进行突触乘法运算是通过将先前层振幅作为恒定电压脉冲宽度进行传输来完成的,所述恒定电压脉冲宽度对神经元300、400、500的强度进行编码并施加到CTT700的栅极702;输入越大,脉冲越长。突触乘法运算可以是权重乘法运算。所得到的漏极电流(诸如漏极电流403、520)是Vgs(施加的输入电压)和与CTT 700相关联的阈值电压的函数,因为Id=f(Vgs-Vt)。由于所有CTT 700以硅制造工艺中固有的标称Vt开始,因此在CTT700的编程期间,标称Vt偏移与由CTT 700存储的权重成比例的量。Vt的这种变化或ΔVt表示与特定器件700或突触302、402、502相关联的权重值。在亚阈值区域中使用MOSFET允许Id和(Vgs-Vt)之间的对数关系。在使用亚阈值MOSFET的电路中,Vt是常数,Vgs变化。当Vgs是受控信号时,这表现良好。然而,在一个实施方式中,CTT 700的Vt偏移,从而引起Id的结果变化,Vgs被施加为时间上的脉冲,并且绝对电压是恒定的。
在一个实施方式中,由于输入信息是由脉冲宽度承载的,因此上述操作以一个电压振幅进行。流经CTT 700的电流由神经元300、400或500积分,导致存储在电容器306、404或506上的电荷等于加权输入的总和:
Q=∑(I*t)
突触权重(未示出)的编程是通过在设定编程电压偏置(例如,Vgs=1.2V至2.0V,Vgs=1.0V至1.8V)下施加不同长度(例如,50us至10ms)的栅极脉冲来实现的,这取决于技术。
在CTT 700实现神经元(如图5的神经元500)的实施方式中,输入,如神经网络输入,被转换为时间脉冲(如激活脉冲512),其中时间脉冲的持续时间与接收的输入信号的幅度成比例(脉冲宽度调制)。时间脉冲是施加到栅极702的恒幅脉冲。电荷捕获晶体管700的电导先前已经与突触权重(未示出)成比例地调整。因此,来自CTT 700的漏极电流520中的漏极电流脉冲(未示出)产生的电荷量等于在栅极702处接收的时间脉冲与先前存储的突触权重的乘积。如图6所示,在双斜率操作的第一斜率608期间,由来自CTT 700的漏极电流脉冲传输的时间电流脉冲产生的所得电荷累积在存储电容器506上。随后,将固定电流施加到电容器506,从而在第二斜率610期间使电容器506放电。
当电压超过阈值电平时,比较器翻转状态。比较器可以是图3的阈值反相器量化(TIQ)比较器314或图5的TIQ比较器514,在一个实施方式中,其可以是CTT校准的。在第二斜率610的持续时间内产生时间脉冲,并且时间脉冲的宽度表示神经元500的输出。
在前一实施方式的架构中,漏极电流I表示突触权重,而时间t是激活输入。因此,每个CTT 700执行突触权重和激活脉冲512的乘法运算,并且所有突触乘法运算被累加在单个电容器上,例如电容器306或电容器506。
现在参考图8,其中示出了根据一个实施方式的示例性层800,其包括多个CTT700,即CTT 700a、CTT 700b、CTT 700c、CTT 700d、CTT 700e和CTT 700f(统称为CTTs 700,并一般地称为CTT 700)。层800可以包括任意数量的CTT 700。在一个实施方式中,层800是图3的神经元300、图4的神经元400、或图5的神经元500。在一个实施方式中,层800是突触权重的示例层。
在图8中,存在漏极电流(未示出)作为突触乘法运算的输出。每个CTT 700在一段时间内产生一定量的电流。加法表示为电容器(未示出)中的漏极电流合在一起。
现在参考图9A和图9B,其中分别示出了根据一个实施方式的电流镜900和902。
电流镜900包括晶体管903a、903b、903c和903d。在一个实施方式中,晶体管903a、903b、903c和903d不是CTT 700,因为晶体管903a、903b、903c和903d不执行电荷捕获功能。
电流镜902包括晶体管903e、903f、903g、903h、903i、903j、903k、903l、903m。在一个实施方式中,晶体管903e、903f、903g、903h、903i、903j、903k、903l和903m不是CTT 700,因为晶体管903e、903f、903g、903h、903i、903j、903k、903l和903m不执行电荷捕获功能。
电流镜900和902的设计具有几个设计制约因素:良好匹配、高输出阻抗和快速瞬态响应。为了实现良好的匹配,晶体管903a、903b有利地具有匹配的端子电压,特别是Vg和Vd。这种匹配电压有利地通过使用级联电流镜结构来实现。级联电流镜结构实现了Vg和Vd的良好匹配。此外,级联电流镜结构在这种情况下在节点914和908处表现出高输出阻抗。利用具有在亚阈值操作区域中偏置的晶体管903a、903b、903c、903d、903e、903f、903g、903h、903i、903j、903k、903l和903m的级联电流镜结构进一步增强了级联电流镜900、902的性能。
在一个实施方式中,图9A的级联电流镜900可以是图3的神经元300的累加块304。在一个实施方式中,图9B的级联电流镜902可以是图3的神经元300的放电脉冲发生器308。
流经CTT 700的电流可由级联电流镜902镜像,导致电荷在电容器306上的累积,从而产生与加权输入之和成比例的电压:V=1/C∑(I*t)。
现在参考图10,其中示出了根据一个实施方式的用于阈值反相器量化比较的阈值反相器量化(TIQ)比较器器件1000。TIQ比较器器件1000可以是图3中的TIQ比较器器件314。
TIQ比较器器件1000包括两个CMOS反相器1001a、1001b(统称为反相器1001,一般地称为反相器1001)的级联,用于在接收的输入信号高于TIQ比较器器件的参考电压时产生第一输出,在接收的输入信号低于参考电压时产生第二输出。TIQ比较器器件1000还包括用于接收输入信号的输入连接端1006。TIQ比较器器件1000还包括用于传输输出信号的输出连接端1008。TIQ比较器器件1000还包括用于接收功率的功率连接端1004。TIQ比较器器件1000还包括用于将TIQ比较器器件1000接地的接地端1010。
在一个实施方式中,第一输出高于第二输出。在这样的实施方式中,第一输出被称为“高”输出,第二输出被称为“低”输出。
在一个实施方式中,第一输出低于第二输出。在这样的实施方式中,第一输出被称为“低”输出,第二输出被称为“高”输出。
每个反相器1001a、1001b分别包括PMOS晶体管1002a、1002c和NMOS晶体管1002b、1002d(晶体管1002a、1002b、1002c、1002d统称为晶体管1002,一般地称为晶体管1002)。每个晶体管1002可以是CTT 700。对于每个反相器1001,根据PMOS晶体管1002的强度除以NMOS晶体管1002的强度所得到的比率来设置TIQ比较器1000的阈值。每个晶体管1002的强度被理解为与每个晶体1002的宽度、每个晶体管1002的长度、每个晶体管1002迁移率、和/或每个晶体管1002的任何其它相关参数或因子有关。此外,可以使用与图13所示的权重矩阵1302中相同的方法,通过对阈值电压重新编程来保持精细调整和校准。TIQ比较器器件1000可以是经CTT校准的TIQ比较器器件1000。
在图10中,可以调整晶体管1002的阈值电压以校准TIQ偏移。
有利地,可以通过调整TIQ比较器器件1000中的晶体管1002中的任何一个来校准TIQ比较器器件1000的偏移。
TIQ比较器器件1000的阈值电压是由TIQ比较器器件1000自身产生的。如果通过输入连接端1006接收的输入电压超过阈值电压,则TIQ比较器器件1000的第一输出翻转到第二输出并且通过输出连接端1008传输。如果通过输入连接端1006接收的输入电压下降到阈值电压以下,则第二输出翻转到第一输出并且通过输出连接端1008传输。
现在参考图12,其中示出了根据一个实施方式的CNN 1200,其作为示例提供以示出如何使用本发明的架构来构建神经网络。图12是用于图像分类的CNN 1200的简化图。CNN1200可以由排列成层的神经元(例如,图5的神经元500)来实现。
CNN 1200包括卷积层1204、池化层1206、全连接层1208、隐藏层(未示出)和输出层1210。
卷积层1204和池化层1206一起可以被认为是用于提取输入图像1202的特征的特征提取器1201。
全连接层1208和输出层1210一起可以被认为是用于对输入图像1202进行分类的分类器1209。在一个实施方式中,分类器1209还可以发送与输入图像1202的分类相对应的输出信号(未示出)。
在图12中,每个层1204、1206、1208包括神经元(未示出),例如神经元500。图12的每个神经元包括突触(未示出),例如图5的突触502。图12的突触包括CTT,例如图7的CTT700。通过编程来调整CTT 700的阈值电压,以存储突触502的突触权重的值。电压脉冲(未示出)被施加到每个CTT 700的栅极702。有利地,源极可以在接地端。栅极-源极的电压可以是恒定的,但是电压脉冲使用时间承载用于激活输入的信息。
在图14中,检查了卷积层1204中的示例性计算。输入图像1202是表示图像的像素值的二维阵列。每个卷积层1204对接收到的像素值执行二维“点”积。输入图像1202被分解成更小的计算单元,例如3乘3或5乘5的矩阵。如图13所示,提供了3乘3矩阵作为示例。
在图13中,输入图像1202的一部分由像素值(X1、X2…X9)的3乘3矩阵1302表示,该像素值被接收作为卷积层1204中的神经元(例如神经元500)的输入。与特征过滤器相关联的特征权重参数(W1、W2…W9)由3乘3矩阵1304表示。根据以下等式,两个矩阵1302、1304的点积等于两个矩阵1302、1304中每个单元的乘积之和:
返回参考图14,其中示出了CNN 1200的卷积层1204中的卷积神经元1220的实现方式。卷积神经元1220包括突触矩阵1214,其利用CTT 1215来计算点积的乘法运算部分。卷积神经元1220还包括用于累加突触矩阵1214的输出的电容器1216和用于比较电压的比较器1218。比较器1218可以是TIQ比较器314。在比较器1218的输出端处产生激活脉冲(未示出)。
卷积神经元1220接收输入数据1212。输入数据1212可以是矩阵的形式。
在一个实施方式中,输入数据1212是输入信号。
在一个实施方式中,输入信号从CNN 1200的前一层传播。
在一个实施方式中,卷积神经元1220在CNN 1200的第一层中,并且输入数据1212是从CNN 1200外部到CNN 1200的输入。
在一个实施方式中,输入数据1212包括图13的矩阵1302、1304。
卷积神经元1220可以是图3的神经元300或图5的神经元500。
在图14中,输入数据1212的乘积被传递到CNN 1200的后续层,例如池化层1206(未示出),或者作为信号存储在短暂存储器(未示出)中。
对于完全连接的前馈神经网络,单个神经元(如图5的神经元500)可能无法保持多个激活脉冲(如图5的激活脉冲512)。然而,对于多次重复使用激活脉冲的ANN,如CNN,在使用ANN的后续层进行处理之前,可以临时存储在1218的输出端处产生的激活脉冲。对于这些ANN,使用短暂存储器来存储激活脉冲的宽度一段临时时间。
在一个实施方式中,卷积神经元1220由图7的CTT 700实现。在正编程期间,可以将正栅极电压脉冲施加到CTT的栅极702,并且每个CTT 700的阈值电压可以在正方向上偏移。在负编程期间,可以向栅极702施加负栅极电压脉冲,并且每个CTT 700的阈值电压可以在相反方向上偏移。
在突触的乘法运算期间,由于应用于ANN的校准,实现ANN的硬件的物理参数的绝对值并不重要。
应该注意,乘法函数的乘积是电荷(即I*t),并且突触输出(即电荷)的总和可以存储在电容器(如电容器306或电容器506)上。在本文描述的存储器架构中,激活脉冲(未示出)可以不被转换成数字以存储在存储器中,因为激活脉冲可以有利地由ANN的后续层直接使用。如果卷积神经元1220被用来产生多于一个的激活脉冲,则每个激活脉冲可以由短暂存储器存储。
在一个实施方式中,在校准的情况下,实现ANN的整体神经网络算法有利地仅取决于神经元激活脉冲宽度(未示出)之间的相对关系。不依赖于绝对电压、电流或电荷。为了确保ANN的所有神经元都相对精确,可以相对于单个“黄金”神经元(未示出)校准每个神经元(如图3的神经元300)的整个路径,包括其每个突触(如突触302)。这样的校准可以有利地确保所有神经元与黄金神经元保持恒定的关系,从而保持比率精确性。在一个实施方式中,解决方案中涉及多个校准,包括初始编程校准、连续温度校准、和周期性CTT漂移校准。
现在参考图15,其中示出了根据一个实施方式的用于参考块校准的方法1500。可以实现方法1500以校准图3中的神经元300。在1502处,神经元300确定指定的参考权重块(未示出)。指定的参考权重块可以是根据信号校准的参考权重模块。指定的参考权重块,或“黄金块”或“黄金延迟块”是所有其他延迟块都要相对于其校准的块。
在1504处,根据指定的参考权重块校准神经元300中的电流镜(例如,图9a和图9b所示的电流镜900和/或902)。在校准之后,电流镜900或902与黄金延迟块同步。在1506处,根据指定的参考权重块来校准电容器306。在校准之后,电容器306与黄金延迟块同步。在1508处,根据指定的参考权重块来校准比较器314。在校准之后,比较器314与黄金延迟块同步。一旦这个过程完成,则每个神经元信号路径相对于单个黄金延迟块匹配。有利地,所有神经元300可以有效地相互匹配。在1510处,在指定的参考权重块中校准存储在CTT 700上的每个突触权重。
在根据单个参考权重块(例如黄金延迟块)校准组件的情况下,每个组件可以保持相同的相对时间,以有利地提高系统功能和效率。
本发明的另一个优点可以是易于在神经元水平上进行校准,并在完整的神经网络(未示出)中的所有神经元300之间产生比率匹配。有利地,为了在ANN中实现良好的精确性,所有激活/权重乘积的相对比率可以通过参考块校准而精确。
在一个实施方式中,根据一个指定的参考权重块->电流镜->电容器->比较器链来校准所有器件行为和所有神经元信号路径。
一旦参考链被校准到单位标度时间,例如1us中1pF电容器的满标度电荷,则所有电流镜->电容器->比较器链都可以使用相同的参考权重(Iref)进行校准。可以定期校准所有链,以确保补偿器件特性中的任何少量漂移。该校准过程可以有利地有效地校准出所有神经元信号路径之间的所有差异。有利地,即使只有时间是稳定的,以上述方式的校准也可以成功。
可以以两种方式中的至少一种应用温度补偿。在一个实施方式中,应用反向偏置电压调制。在一个实施方式中,可以调整Vgs脉冲电压。通过前述任一实施方式,参考链被保持在单位标度时间。温度补偿可以是全局的。温度补偿可以是连续的。有利地,温度补偿可以确保仅由于温度而发生少量的全局漂移,从而保持信号路径之间的所有相对误差可忽略不计。
现在参考图16,其中示出了根据一个实施方式的用于临时保留信息的短暂存储器方案1600。短暂存储器方案1600是图17的短暂存储器装置1700的实现方式的简化说明。
短暂存储器方案1600包括用于产生激活脉冲(未示出)的激活1602、用于存储激活脉冲的短暂存储器混合信号计数器1604、以及用于再生激活脉冲的重放激活1606。
现在参考图17,其中示出了根据一个实施方式的用于临时保留信息的短暂存储器装置1700。短暂存储器装置1700表示图16的短暂存储器方案1600的通用实现方式。在一个方面中,所保留的信息可以是在神经元300或500处接收的输入信号。在一个实施方式中,短暂存储器装置1700可以是短暂存储器存储设备。
短暂存储器装置1700包括用于提供异步可控延迟的内环1704。内环1704由包括异步计数器1708的外环1706支持。这种组合协同工作以实现延迟状态的有效短期精确存储。
在短暂存储器装置1700中,与现有装置、设备、方法和系统相比,一个显著的优点是该装置可以异步运行。装置1700提供了一种解决方案,以在物理上较小的空间中使用纳瓦/皮瓦级的功耗来临时存储时间,这使得能够以较低的功率和较小的硅面积实现功能。
现在参考图18,其中示出了根据一个实施方式的用于临时保留信息的短暂存储器装置1800。短暂存储器装置1800是更详细地示出的图17中的短暂存储器装置1700的实现方式。
装置1800包括内环1804,内环1804包括用于提供异步可控延迟的多个亚阈值通道晶体管逻辑(PTL)延迟线块1802。外环1806包括形成异步计数器1808的D触发器(未示出)。
在短暂的、混合信号的、时间记忆结构的情况下,在许多人工神经网络中,在一层内多次使用一组特定的过滤器权重来处理多个激活输入。可以存储中间激活,直到所有值都可用于下一层进行处理。在一个实施方式中,由于与连接到电容器的晶体管相关联的漏电流,简单的电容器可能是不足的。因此,短暂存储器装置1800可以有利地用于存储每次激活的脉冲宽度(或时间)。短暂存储器装置1800将脉冲宽度或时间存储在异步计数器1808中,该异步计数器随后可用于驱动下一神经元的时间输入。
内环1804在启用时用作振荡器(未示出),并在神经元电容器(如图3的电容器306)放电时启用。振荡器在启用时触发计数器1808进行向上计数。一旦神经元电容器放电,振荡器就被停用,并且计数器1808保持值。在随后的时间,振荡器再次被启用,计数器1808向下计数到零,在此期间,异步计数器(未示出)产生脉冲作为下一神经元的输入。产生脉冲的异步计数器的绝对频率不重要。在一个实施方式中,只有振荡频率的暂时稳定性对于精确性是重要的。
现在参考图19,其中示出了根据一个实施方式的用于临时保留信息的短暂存储器装置1900。短暂存储器装置1900是更详细地示出的图17中的装置1700和图18中所示的装置1800的实现方式。在一个实施方式中,所保留的信息是在神经元300或500处接收的输入信号。
在一个实施方式中,短暂存储器装置1900是短暂存储器存储设备。
短暂存储器装置1900包括用于提供异步可控延迟的内环1904。装置1900还包括用于支持内环1904的外环1906。外环1906包括异步计数器1908。异步计数器1908包括第一异步计数器1909。内环1904和外环1906协同运行,以实现延迟状态的有效短期精确存储。
内环1904包括用于提供异步可控延迟的模拟亚阈值延迟块1902。
异步计数器1908可以是多个D触发器。
使用具有正反馈的模拟亚阈值延迟块1902和第一异步计数器1909,可以创建基于延迟元件的频率振荡的自定时振荡器(未示出)。在短暂存储器装置1900中,第一异步计数器1909由自定时振荡器计时。
放电时段从神经元(例如神经元300)产生激活脉冲(未示出)。当激活脉冲为高时,激活脉冲启用自定时振荡器。当激活脉冲为低时,激活脉冲停用自定时振荡器,并且异步计数器1908停止,已经存储了表示激活脉冲的脉冲宽度的数字。异步计数器1908可以有利地将存储的数字保持一段时间。在一个实施方式中,异步计数器1908优选地将存储的数字保持几秒钟。
装置1900可以有利地使用动态逻辑来节省空间和功率。
在激活脉冲期间,异步计数器1908在向上计数时段期间向上计数。当短暂存储器装置1900将激活脉冲施加到后续神经元(例如神经元300)时,异步计数器1908向下计数,启用模拟亚阈值延迟块1902,以便重放该过程并在向上计数时段期间产生等于前一激活脉冲的后续激活脉冲(未示出)。以图形所示的结果是图6的双斜率过程。
当异步计数器1908向下计数时,存储的数字可能会丢失。在一个实施方式中,异步计数器1908可以与以相反方向运行的另一版本的计数器(未示出)(即,当异步计数器1908向下计数时向上计数的计数器,反之亦然)配对。
在一个实施方式中,异步计数器1908是1位异步亚阈值计数器。
图19中还提供了单位时间及其变化的示例。在装置1900中,通过存储电容器放电周期来启用向上计数。通过诸如神经元300的神经元的阈值来停用向上计数。在装置1900中,通过用于ANN的后续层的开始推理信号来启用向下计数。
异步计数器1908在放电阶段开始时启用(对应于图6的斜率610)。当TIQ比较器314翻转状态时(即,当电容器306上的当前电压变得等于参考电压Vref时),计数器1908被停用。
在一个实施方式中,由模拟亚阈值延迟块1902提供的绝对延迟中的缺陷并不妨碍装置1900的成功操作,只要装置1900在短时间段(以毫秒为单位测量)内是稳定的,并且只要异步计数器1908具有足够的额外状态来对此进行补偿即可。
在装置1900中,与现有装置、设备、方法和系统相比,一个显著的优点是装置1900可以异步运行。提供了一种将时间临时存储在纳瓦/皮瓦功耗空间中的解决方案。本发明的一个优点是在较低功率下运行。
现在参考图20,其中示出了根据一个实施方式的使用包括神经元(如神经元300)的ANN的方法2000的流程图。
在2002处,通过多个CTT 700对输入信号进行处理。
在2004处,产生漏极电流作为CTT 700的乘法运算的输出。漏极电流产生与施加固定电压作为输入的时间段成比例的电荷量。
在2006处,从多个CTT 700接收漏极电流。
在2008处,累积来自漏极电流的电荷以用作累加信号的短期存储。
在2010处,通过在放电周期期间对累积的电荷进行放电来产生输出信号。
在2012处,在比较器314处将输入电压与参考电压进行比较。比较器314可以是TIQ比较器314。
在2014处,如果输入电压高于比较器314的参考电压,则产生第一输出。
在2016处,如果输入电压低于比较器314的参考电压,则产生第二输出。
在一个实施方式中,第一输出高于第二输出。在这样的实施方式中,第一输出被称为“高”输出,第二输出被称为“低”输出。
在一个实施方式中,第一输出低于第二输出。在这样的实施方式中,第一输出被称为“低”输出,第二输出被称为“高”输出。
虽然上述描述提供了一个或多个装置、设备、方法或系统的示例,但应理解的是,其他装置、设备、方法或系统也可在本领域技术人员所解释的权利要求的范围内。

Claims (76)

1.一种用于操作人工神经网络(ANN)的系统,所述系统包括神经元,其中,每个神经元包括:
多个突触,所述多个突触包括用于处理输入信号的电荷捕获晶体管(CTT),所述CTT提供突触权重;
累加块,所述累加块用于接收来自所述多个突触的漏极电流,其中,所述漏极电流作为来自所述多个突触的乘法运算的输出而产生;
电容器,所述电容器用于累积来自所述漏极电流的电荷以用作累加信号的短期存储器;
放电脉冲发生器,所述放电脉冲发生器用于通过在放电周期期间对累积的电荷进行放电来产生输出信号;以及
比较器,所述比较器用于将作为输入电压的所述输出信号与参考电压进行比较,其中,如果所述输入电压高于参考电压,则所述比较器产生第一输出,以及其中,如果所述输入电压低于所述参考电压,则所述比较器产生第二输出。
2.根据权利要求1至2中任一项所述的系统,其中,所述累加块包括:
用于从多个突触接收所述漏极电流的存储设备;
用于存储所述突触权重并执行所述突触权重与所述输入信号的乘法运算的多个乘法器;以及
用于对来自所述多个乘法器的乘法运算的输出求和以产生累加信号的累加器。
3.根据权利要求2所述的系统,其中,所述比较器是阈值反相器量化(TIQ)比较器,所述TIQ比较器包括至少一个互补金属氧化物半导体(CMOS)反相器的级联,每个CMOS反相器包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管,其中,所述参考电压对应于由所述TIQ比较器自身产生的所述TIQ比较器的阈值,其中,所述TIQ比较器的阈值是通过所述PMOS晶体管或所述NMOS晶体管可调整的,以及其中,所述TIQ比较器的阈值对应于所述PMOS晶体管的强度除以所述NMOS晶体管的强度所得到的比率。
4.根据权利要求2所述的系统,其中,所述漏极电流作为来自所述多个突触的乘法运算的输出而产生,并且所述漏极电流产生等于所述输入信号和所述突触权重的乘积的电荷量。
5.根据权利要求2至4中任一项所述的系统,其中,所述漏极电流在连接到所述累加块之前连接在一起,其中,所述累加块对所述漏极电流求和,以及其中,所述漏极电流之和作为所述累加信号传输到所述电容器以用于存储。
6.根据权利要求2至5中任一项所述的系统,其中,每个CTT执行表示突触权重的所述漏极电流与时间的乘法运算作为输入,以及其中,所有的乘法运算在所述电容器上累加。
7.根据权利要求2至6中任一项所述的系统,其中,所述累加块对所述漏极电流求和作为有线OR函数。
8.根据权利要求2至7中任一项所述的系统,其中,通过编程来调整每个CTT的阈值电压,以存储相应突触的权重值,其中,每个CTT包括被施加电压脉冲的栅极,其中,所述电压脉冲的源极为接地端,其中,栅极-源极电压是恒定的,以及其中,所述电压脉冲使用时间承载的信息。
9.根据权利要求2至8中任一项所述的系统,其中,电阻用于存储突触权重。
10.根据权利要求9所述的系统,其中,所述电阻由所述CTT提供。
11.根据权利要求2至10中任一项所述的系统,其中,所述多个突触将所述突触权重存储在所述CTT的阈值电压偏移中。
12.根据权利要求2至12中任一项所述的系统,其中,来自第一缩放电流脉冲的电荷累积在所述电容器上以用作控制信号。
13.根据权利要求2至12中任一项所述的系统,其中,每个神经元中的积分电荷与所述输入信号和所述突触权重的乘积成比例,以及其中,所述积分电荷的值保持恒定直到放电。
14.根据权利要求2至13中任一项所述的系统,其中,流经所述CTT的电流由电流镜镜像,以实现电荷在所述电容器上的积累,从而产生与加权输入之和成比例的电压。
15.根据权利要求2至14中任一项所述的系统,其中,所述放电脉冲发生器是放电周期级联电流源。
16.根据权利要求2至15中任一项所述的系统,其中,所述放电脉冲发生器还在累加期间传输所述累加信号,以实现所述ANN中的减法函数。
17.根据权利要求3所述的系统,其中,所述系统除了包括所述TIQ比较器的所述参考电压之外,还包括第二参考电压。
18.根据权利要求3所述的系统,其中,所述系统包括第二参考电压来代替所述TIQ比较器的所述参考电压。
19.根据权利要求2至18中任一项所述的系统,其中,所述系统产生激活脉冲作为所述输出信号。
20.根据权利要求2至19中任一项所述的系统,其中,所述多个突触接收所述输入信号,将所述输入信号的电压转换为电流,并产生第二缩放电流脉冲作为所述输出信号。
21.根据权利要求1至20中任一项所述的系统,还包括用于提供短暂存储器结构的装置,以用于在所述ANN的层之间临时保留信息,所述装置包括:
内环,所述内环包括用于提供异步可控延迟的模拟亚阈值延迟块;以及
外环,所述外环包括用于支持所述内环的多个异步计数器;
其中,所述内环和所述外环协同操作,以实现延迟状态的有效短期精确存储。
22.根据权利要求2所述的系统,其中,所述ANN包括:
输入层,所述输入层用于在神经元处接收输入;
至少一个隐藏层,所述至少一个隐藏层用于将所述输入乘以所述突触权重以产生乘积,向所述乘积添加偏置以产生和,将所述和应用于激活函数,执行所述激活函数以产生所述输出信号,以及将所述输出信号级联到神经元的随后层;以及
输出层,所述输出层用于提供所述输出信号;
其中,所述输入层、所述至少一个隐藏层、和所述输出层中的每一者都包括至少一个神经元。
23.根据权利要求1至22中任一项所述的系统,其中,所述CTT的子集是NMOS CTT。
24.根据权利要求1至22中任一项所述的系统,其中,所述CTT的子集是PMOS CTT。
25.根据权利要求1至24中任一项所述的系统,其中,每个CTT包括高k金属栅极,以及其中,在电荷捕获过程期间施加漏极偏置。
26.根据权利要求1至25中任一项所述的系统,其中,每个CTT包括栅极电介质,所述栅极电介质包括SiO2的界面层。
27.根据权利要求26所述的系统,其中,每个栅极电介质包括SiO2的界面层和级联的HfSiON层。
28.根据权利要求26至27中任一项所述的系统,其中,每个CTT在电荷捕获过程期间施加漏极偏置,以使其他载流子稳定地在所述栅极电介质中被捕获。
29.根据权利要求28所述的系统,其中,每个CTT的阈值电压通过在每个栅极电介质中捕获的电荷量来调制,其中,每个漏极偏置由于增强的局部加热效应而增强和稳定所述电荷捕获过程,以及其中,每个CTT的每个阈值电压能够偏移受控量并编码参数值。
30.根据权利要求29所述的系统,其中,通过在设定编程电压偏置下施加可变长度的栅极脉冲来对权重值编程,其中,在正编程期间,施加正栅极电压脉冲,并且所述阈值电压在第一方向上偏移,以及其中,在负编程期间,施加负脉冲,并且所述阈值电压在与所述第一方向相反的第二方向上偏移。
31.根据权利要求25至30中任一项所述的系统,其中,恒幅脉冲被施加到所述栅极的源电压。
32.根据权利要求31所述的系统,其中,所述恒幅脉冲直接传播到所述ANN的后续层。
33.根据权利要求31所述的系统,其中,所述恒幅脉冲通过非线性函数并传播到所述ANN的后续层。
34.根据权利要求33所述的系统,其中,所述非线性函数是线性整流函数(ReLU)。
35.根据权利要求1至34中任一项所述的系统,其中,所述第一输出高于所述第二输出。
36.根据权利要求1至34中任一项所述的系统,其中,所述第一输出低于所述第二输出。
37.一种用于包括神经元的人工神经网络(ANN)的方法,所述方法包括:
通过多个电荷捕获晶体管(CTT)来处理输入信号,所述CTT提供突触权重;
产生漏极电流作为来自所述多个CTT的乘法运算的输出;
从所述多个CTT接收所述漏极电流;
累积来自所述漏极电流的电荷以用作累加信号的短期存储;
通过在放电周期期间对累积的电荷进行放电来产生输出信号;以及
在比较器处将输入电压与参考电压进行比较,如果所述输入电压高于所述参考电压,则所述比较器产生第一输出,如果所述输入电压低于所述参考电压,则所述比较器产生第二输出。
38.根据权利要求37所述的方法,其中,从所述多个CTT接收所述漏极电流包括:
从多个突触接收所述漏极电流;
存储所述突触权重,并执行所述突触权重与所述输入信号的乘法运算;以及
对所述乘法运算的输出求和以产生累加信号。
39.根据权利要求37至38中任一项所述的方法,其中,所述比较器是阈值反相器量化(TIQ)比较器,其中,所述TIQ比较器包括至少一个互补金属氧化物半导体(CMOS)反相器的级联,每个CMOS反相器包括p沟道金属氧化物半导体(PMOS)晶体管和n沟道金属氧化物半导体(NMOS)晶体管,其中,所述参考电压对应于由所述TIQ比较器自身产生的所述TIQ比较器的阈值,其中,所述TIQ比较器的阈值是通过所述PMOS晶体管或所述NMOS晶体管可调整的,以及其中,所述TIQ比较器的阈值对应于所述PMOS晶体管的强度除以所述NMOS晶体管的强度所得到的比率。
40.根据权利要求39所述的方法,其中,在所述CTT处接收所述输入信号,其中,将所述输入信号的电压转换为电流,以及其中,产生第二缩放电流脉冲作为所述输出信号。
41.根据权利要求39至40中任一项所述的方法,其中,由以下来实现所述ANN:
接收输入的输入层;
将所述输入乘以所述突触权重以产生乘积的隐藏层;
向所述乘积添加偏置以产生和的隐藏层;
将所述和应用于激活函数的隐藏层;
执行所述激活函数以产生所述输出信号的隐藏层;以及
将所述输出信号级联到神经元的随后层的隐藏层。
42.根据权利要求41所述的方法,其中,所述方法还包括校准所述ANN,其中,校准所述ANN包括:
确定指定的参考权重块;
根据所述指定的参考权重块校准电流镜;
根据所述指定的参考权重块校准电容器;
根据所述指定的参考权重块校准所述TIQ比较器;以及
在所述指定的参考权重块中校准存储在所述CTT上的每个突触权重。
43.根据权利要求42所述的方法,其中,校准后,所述电流镜、所述电容器和所述比较器各自与所述指定的参考权重块同步,其中,一旦所述电流镜、所述电容器和所述比较器的校准完成,则每个神经元信号路径相对于所述指定的参考权重块进行匹配,以及其中,所有神经元按比率相互匹配。
44.根据权利要求37至43中任一项所述的方法,其中,所述第一输出高于所述第二输出。
45.根据权利要求37至43中任一项所述的方法,其中,所述第一输出低于所述第二输出。
46.一种阈值反相器量化(TIQ)比较器器件,用于将输入电压与参考电压进行比较,所述器件包括:
用于接收输入信号的输入连接端;
至少一个互补金属氧化物半导体(CMOS)反相器的级联,每个CMOS反相器包括:
p沟道金属氧化物半导体(PMOS)晶体管;以及
n沟道金属氧化物半导体(NMOS)晶体管;
用于传输输出信号的输出连接端;
用于接收功率的功率连接端;以及
接地端;
其中,所述参考电压对应于由所述TIQ比较器自身产生的所述TIQ比较器的阈值;
其中,如果所述输入电压超过所述阈值,则第二输出翻转到第一输出,其中,如果所述输入电压下降到所述阈值以下,则所述第一输出翻转到所述第二输出;
其中,所述TIQ比较器的阈值是通过所述PMOS晶体管或所述NMOS晶体管可调整的;
其中,所述TIQ比较器的阈值对应于所述PMOS晶体管的强度除以所述NMOS晶体管的强度所得到的比率。
47.根据权利要求46所述的器件,其中,所述PMOS晶体管是PMOS CTT,其中,所述NMOS晶体管是NMOS CTT,以及其中,所述TIQ比较器器件能够配置为通过所述CTT进行校准。
48.根据权利要求47所述的器件,其中,所述CTT能够配置成为所述TIQ比较器提供可调整的阈值,以校准包括另外的CTT的人工神经网络(ANN)上的参考值。
49.根据权利要求48所述的器件,其中,所述另外的CTT的子集是PMOS器件。
50.根据权利要求48所述的器件,其中,所述另外的CTT的子集是NMOS器件。
51.根据权利要求46至50中任一项所述的器件,其中,所述TIQ比较器器件的阈值电压通过对权重矩阵中记录的阈值电压进行重新编程来保持和重新校准。
52.根据权利要求46至51中任一项所述的器件,其中,使用相关双采样来实现所述TIQ比较器器件的阈值偏移的改进消除。
53.根据权利要求52所述的器件,其中,所述相关双采样初始化电容器上的电压。
54.根据权利要求46至53中任一项所述的器件,其中,所述TIQ比较器器件是双斜率TIQ比较器器件。
55.根据权利要求46至54中任一项所述的器件,其中,所述第一输出高于所述第二输出。
56.根据权利要求46至54中任一项所述的器件,其中,所述第一输出低于所述第二输出。
57.一种提供用于在人工神经网络(ANN)的层之间临时保留信息的短暂存储器的装置,所述装置包括:
内环,所述内环包括用于提供异步可控延迟的模拟亚阈值延迟块;以及
外环,所述外环包括多个异步计数器,以支持所述内环;
其中,所述内环和所述外环协同操作,以实现延迟状态的有效短期精确存储。
58.根据权利要求57所述的装置,其中,所述模拟亚阈值延迟块包括多个亚阈值通道晶体管逻辑(PTL)延迟线元件。
59.根据权利要求57至58中任一项所述的装置,其中,所述异步计数器包括第一异步计数器,其中,所述第一异步计数器是1位异步亚阈值计数器,以及其中,所述异步计数器包括D触发器。
60.根据权利要求59所述的装置,还可以包括多异步计数器。
61.根据权利要求60所述的装置,其中,所述多异步计数器是1位级联的亚阈值计数器。
62.根据权利要求59至61中任一项所述的装置,其中,所述短暂存储器异步运行。
63.根据权利要求59至62中任一项所述的装置,其中,时间临时存储在纳瓦或皮瓦的功耗空间中。
64.根据权利要求59至63中任一项所述的装置,其中,所述装置接收第一激活脉冲,其中,所述装置通过所述第一异步计数器存储所述第一激活脉冲的宽度,以及其中,所述装置通过在所述第一异步计数器上向下计数来将所述第一激活脉冲传输到所述ANN的后续层。
65.根据权利要求59至64中任一项所述的装置,其中,所述模拟亚阈值延迟块和所述第一异步计数器一起创建具有内部延迟的正反馈环,从而产生振荡器。
66.根据权利要求65所述的装置,其中,所述振荡器是基于所述延迟线元件的频率振荡的自定时振荡器,以及其中,所述装置还包括由所述自定时振荡器计时并由所述延迟线元件和所述第一异步计数器创建的第二计数器。
67.根据权利要求66所述的装置,其中,当电容器放电时,启用所述振荡器,其中,当所述振荡器被启用时,所述振荡器触发所述第一异步计数器向上计数,其中,当所述电容器放电时,停用所述振荡器,并且所述第一异步计数器保持值,其中,所述振荡器随后再次被启用,并且所述第一异步计数器在第一时间期间向下计数到零,以及其中,在所述第一时间期间,产生脉冲作为后续神经元的输入。
68.根据权利要求67所述的装置,其中,在放电时段期间,神经元产生所述第一激活脉冲,其中,当所述第一激活脉冲为高时,所述第一激活脉冲启用所述振荡器,以及其中,当所述第一激活脉冲为低时,所述第一激活脉冲停用所述振荡器并且所述第一异步计数器停止,所述第一异步计数器已经存储了表示所述第一激活脉冲的脉冲宽度的数字,所述第一异步计数器还将所存储的数字保持一时间段。
69.根据权利要求68所述的装置,其中,所述时间段是数秒。
70.根据权利要求67至69中任一项所述的装置,其中,所述第一异步计数器在所述第一激活脉冲期间向上计数,并在所述装置将所述第一激活脉冲施加到后续神经元以启用所述延迟线元件时向下计数,并且产生等于所述第一激活脉冲的第二激活脉冲。
71.根据权利要求66至70中任一项所述的装置,其中,所述第一异步计数器与相反配置的第二计数器配对,使得当所述第一异步计数器向下计数时,所述第二计数器向上计数以进一步存储所述第一激活脉冲的宽度。
72.根据权利要求66至71中任一项所述的装置,其中,向上计数的所述第二计数器通过累加器电容器放电周期来启用,并且在比较器根据阈值电压翻转状态时停用,以及其中,向下计数的所述第一异步计数器通过用于所述ANN的后续层的开始推理信号来启用。
73.根据权利要求57至72中任一项所述的装置,其中,所述装置使用动态逻辑来节省空间和功率。
74.根据权利要求57至72中任一项所述的装置,其中,所述短暂存储器包括时间短暂存储器。
75.根据权利要求74所述的装置,其中,时间被计算为绝对时间、经过时间、时间延迟和时间变化率中的一者或多者。
76.根据权利要求74所述的装置,其中,时间被计算为绝对时间,以及其中,所有信息关于时间按比率处理。
CN202280048133.9A 2021-05-07 2022-05-06 用于基于晶体管的神经网络的系统、方法和计算机设备 Pending CN117616427A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163185793P 2021-05-07 2021-05-07
US63/185,793 2021-05-07
PCT/CA2022/050717 WO2022232947A1 (en) 2021-05-07 2022-05-06 System, method, and computer device for transistor-based neural networks

Publications (1)

Publication Number Publication Date
CN117616427A true CN117616427A (zh) 2024-02-27

Family

ID=83931936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280048133.9A Pending CN117616427A (zh) 2021-05-07 2022-05-06 用于基于晶体管的神经网络的系统、方法和计算机设备

Country Status (7)

Country Link
US (1) US11636326B2 (zh)
EP (1) EP4334849A1 (zh)
KR (1) KR20240006614A (zh)
CN (1) CN117616427A (zh)
CA (1) CA3218300A1 (zh)
IL (1) IL308387A (zh)
WO (1) WO2022232947A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117829224A (zh) * 2024-03-05 2024-04-05 南京大学 一种基于复合介质栅结构的仿生神经网络电路系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11756565B2 (en) * 2022-01-25 2023-09-12 Blumind Inc. Analog systems and methods for audio feature extraction and natural language processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0655839B1 (en) * 1993-11-29 2007-01-03 Fujitsu Limited Electronic system for terminating bus lines
US10585643B2 (en) * 2016-05-13 2020-03-10 The Regents Of The University Of California Fine-grained analog memory device based on charge-trapping in high-K gate dielectrics of transistors
WO2019100036A1 (en) * 2017-11-20 2019-05-23 The Regents Of The University Of California Memristive neural network computing engine using cmos-compatible charge-trap-transistor (ctt)
US11443175B2 (en) * 2018-07-11 2022-09-13 Silicon Storage Technology, Inc. Compensation for reference transistors and memory cells in analog neuro memory in deep learning artificial neural network
US10861551B2 (en) 2018-12-28 2020-12-08 Micron Technology, Inc. Memory cells configured to generate weighted inputs for neural networks
US11507642B2 (en) 2019-05-02 2022-11-22 Silicon Storage Technology, Inc. Configurable input blocks and output blocks and physical layout for analog neural memory in deep learning artificial neural network
US11328757B2 (en) * 2019-10-24 2022-05-10 Regents Of The University Of Minnesota Topological material for trapping charge and switching a ferromagnet

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117829224A (zh) * 2024-03-05 2024-04-05 南京大学 一种基于复合介质栅结构的仿生神经网络电路系统
CN117829224B (zh) * 2024-03-05 2024-05-28 南京大学 一种基于复合介质栅结构的仿生神经网络电路系统

Also Published As

Publication number Publication date
KR20240006614A (ko) 2024-01-15
US11636326B2 (en) 2023-04-25
WO2022232947A1 (en) 2022-11-10
EP4334849A1 (en) 2024-03-13
US20220374698A1 (en) 2022-11-24
CA3218300A1 (en) 2022-11-10
IL308387A (en) 2024-01-01

Similar Documents

Publication Publication Date Title
Joshi et al. Accurate deep neural network inference using computational phase-change memory
JP7336819B2 (ja) 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法
Wang et al. Integration and co-design of memristive devices and algorithms for artificial intelligence
Wang et al. Memristor-based neural networks with weight simultaneous perturbation training
CN117616427A (zh) 用于基于晶体管的神经网络的系统、方法和计算机设备
Misra et al. Artificial neural networks in hardware: A survey of two decades of progress
Kang et al. An on-chip-trainable Gaussian-kernel analog support vector machine
US11404106B2 (en) Read only memory architecture for analog matrix operations
US10381074B1 (en) Differential weight reading of an analog memory element in crosspoint array utilizing current subtraction transistors
US10340002B1 (en) In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture
Kucic et al. Programmable and adaptive analog filters using arrays of floating-gate circuits
Foo et al. Analog components for the VLSI of neural networks
US11847560B2 (en) Hardware compute fabrics for deep equilibrium models
KR20190114212A (ko) 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로
Zhou et al. Ml-hw co-design of noise-robust tinyml models and always-on analog compute-in-memory edge accelerator
Merkel et al. Neuromemristive extreme learning machines for pattern classification
JP2024522244A (ja) トランジスタベースのニューラルネットワークのためのシステム、方法、およびコンピュータ装置
Murray et al. Pulse stream VLSI neural networks
Kakkar Comparative study on analog and digital neural networks
Moreno et al. An analog systolic neural processing architecture
Massengill A dynamic CMOS multiplier for analog VLSI based on exponential pulse-decay modulation
Cauwenberghs Adaptation, learning and storage in analog VLSI
Agarwal et al. An Investigation into Neuromorphic ICs using Memristor-CMOS Hybrid Circuits
Sharda et al. Reduction of the Weight-Decay Rate of Volatile Memory Synapses in an Analog Hardware Neural Network for Accurate and Scalable On-Chip Learning
Spoon et al. Accelerating Deep Neural Networks with Phase-Change Memory Devices

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