CN111433792A - 可编程可重置人工神经网络的基于计数器的电阻处理单元 - Google Patents

可编程可重置人工神经网络的基于计数器的电阻处理单元 Download PDF

Info

Publication number
CN111433792A
CN111433792A CN201880077961.9A CN201880077961A CN111433792A CN 111433792 A CN111433792 A CN 111433792A CN 201880077961 A CN201880077961 A CN 201880077961A CN 111433792 A CN111433792 A CN 111433792A
Authority
CN
China
Prior art keywords
cross
resistance
point device
array
counter
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.)
Granted
Application number
CN201880077961.9A
Other languages
English (en)
Other versions
CN111433792B (zh
Inventor
S·考斯瓦塔
李宇龙
P·M·瑟隆蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111433792A publication Critical patent/CN111433792A/zh
Application granted granted Critical
Publication of CN111433792B publication Critical patent/CN111433792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Semiconductor Memories (AREA)
  • Electronic Switches (AREA)
  • Image Analysis (AREA)

Abstract

描述了用于在电阻处理单元(RPU)阵列的交叉点器件中存储权重的技术方案。示例方法包括设置交叉点器件中的一组单比特计数器中的每个单比特计数器的状态,单比特计数器的状态表示要在交叉点器件处存储的权重。该方法还包括调整交叉点器件的电阻器器件的电导。电阻器器件包括一组电阻电路,每个电阻电路与该组单比特计数器中的相应单比特计数器相关联,通过根据相关联的单比特计数器的状态激活或去激活每个电阻电路来调节电导。

Description

可编程可重置人工神经网络的基于计数器的电阻处理单元
背景技术
本发明一般涉及可训练的电阻性交叉点器件—在此被称为电阻处理单元(RPU)—的配置,更具体地说,本发明涉及由电阻处理单元(RPU)的交叉杆阵列形成的人工神经网络(ANN),其无需RPU之外的附加处理元件就能提供本地数据存储和本地数据处理,从而提高ANN实现诸如矩阵求逆、矩阵分解等算法的能力。
已知诸如计算机字符识别和图像识别之类的技术问题通过机器学习技术被很好地处理。“机器学习”被用于宽泛地描述从数据学习的电子系统的主要功能。在机器学习和认知科学中,ANN是由动物的生物神经网络—特别是大脑—所启发的一族统计学习模型。ANN可以用于估计或近似依赖于大量输入并且通常未知的系统和函数。交叉杆阵列是用于形成各种电子电路和器件高密度、低成本的电路结构,包括ANN结构、神经形态微芯片和超高密度非易失性存储器。一种基本的交叉杆阵列配置包括一组导电行线和与该组导电行线形成交叉的一组导电列线。这两组导线之间的交叉点由所谓的交叉点器件隔离。
发明内容
根据本发明的实施例,描述了一种用于在电阻处理单元(RPU)阵列的交叉点器件中存储权重的方法。该方法包括设置交叉点器件中的一组单比特计数器中的每个单比特计数器的状态,单比特计数器的状态表示要存储在交叉点器件处的权重。该方法还包括调整交叉点器件的电阻器器件的电导。电阻器器件包括一组电阻电路,并且每个电阻电路与该组单比特计数器中的相应单比特计数器相关联。通过根据相关联的单比特计数器的状态激活或去激活每个电阻电路来调节电阻器器件的电导。
根据本发明的实施例,描述了一种用于在RPU阵列中的交叉点处存储权重值的交叉点器件。交叉点器件包括具有一组单比特计数器的计数器,单比特计数器的状态表示要存储在交叉点器件处的权重。电阻器器件包括一组电阻电路,并且每个电阻电路与该组单比特计数器中的相应单比特计数器相关联。根据相关联的单比特计数器的状态来激活或去激活电阻电路,并且至少部分地基于被激活的电阻电路来调整电阻器器件的电导。
根据本发明的实施例,描述了一种用于实现神经网络的系统。该系统包括交叉点阵列,该交叉点阵列包括多个节点,其中,每个节点表示神经网络的神经元之间的连接,并且其中,每个节点存储分配给该节点的权重。该交叉点阵列包括在每个节点处的交叉点器件。交叉点器件包括具有多个单比特计数器的计数器,单比特计数器的状态代表要存储在交叉点器件处的权重。此外,交叉点器件包括具有多个电阻电路的电阻器器件,并且每个电阻电路与这些单比特计数器中的相应单比特计数器相关联。根据相关联的单比特计数器的状态来激活或去激活电阻电路,并且至少部分地基于被激活的电阻电路来调节电阻器器件的电导。此外,全局控制器调整存储在交叉点阵列中的每个交叉点器件处的值。
根据本发明的实施例,描述了一种用于实现神经网络的交叉点阵列。示例性交叉点阵列包括一组交叉点器件,交叉点器件位于交叉点阵列的相应节点处,每个节点表示神经网络的神经元之间的连接,并且每个节点存储分配给该节点的权重。交叉点器件包括具有单比特计数器的计数器,单比特计数器的状态代表要存储在交叉点器件处的权重。电阻器器件包括一组电阻电路,每个电阻电路与该组单比特计数器中的相应单比特计数器相关联。根据相关联的单比特计数器的状态来激活或去激活电阻电路,并且至少部分地基于被激活的电阻电路来调节电阻器器件的电导。
根据本发明的实施例,一种用于实现神经网络的方法包括由全局控制器选择要被加载到交叉点阵列中的矩阵,其中,所述矩阵对应于两层神经网络之间的连接。该方法还包括由交叉点数阵列中的交叉点处的本地控制器在与该交叉点相关联的交叉点器件中加载权重值,该权重值被分配给所选矩阵的该交叉点。此外,该方法包括由该交叉点器件调整与该交叉点相关联的电阻器器件的电导,其中该电导对应于加载到所述交叉点器件中的权重值。
通过本发明的技术实现了额外的技术特征和益处。本文详细描述了本发明的实施例,其被视为权利要求请求保护的主题的一部分。为了更好地理解,参考详细描述和附图。
附图说明
参考以下附图将更好地理解本文所述的实施例。图中的部件不一定是按比例的。此外,在附图中,相同的附图标记在不同的视图中表示相应的部件。
图1示出了生物神经元的输入和输出连接的简化图;
图2示出了图1中所示的生物神经元的简化模型;
图3示出了并入图2所示生物神经元模型的ANN的简化模型;
图4示出了权重更新方法的简化框图;
图5是根据本发明的实施例的包括权重阵列的ANN的示图;
图6示出了根据本发明的实施例的RPU器件的交叉杆阵列,以及示出RPU的操作的电压序列;
图7示出了根据本发明的实施例的可以用作RPU阵列中的交叉点器件的基于计数器的RPU;
图8示出了至少部分基于计数器的状态的电阻器器件的可调整电阻;
图9示出了至少部分基于宽度改变FET的电阻/电导;
图10示出了至少部分基于栅极长度改变FET的电阻/电导;
图11示出了使用垂直几何结构的具有可变电阻/电导的电阻器器件的示例;
图12示出了根据本发明的实施例的可以用作RPU阵列中的交叉点器件的基于计数器的RPU;
图13示出了具有电阻器阶梯(resistor ladder)的RPU如何被连接作为RPU阵列中的交叉点器件;
图14示出了使用RPU和连接电路执行的前向传播通路;
图15示出了使用RPU和连接电路执行的反向传播通路;
图16示出了使用RPU器件的RPU阵列;以及
图17示出了使用RPU器件的RPU阵列中的数据流。
这里示出的示图是说明性的。在不脱离本发明的精神的情况下,可以对其中描述的示图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且不暗示元件之间的直接连接而没有在它们之间居间的元件/连接。所有这些变化都被认为是说明书的一部分。
具体实施方式
在此参考相关附图描述本发明的各种实施例。在不偏离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,陈述了元件之间各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的偶联可以指直接或间接偶联,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所述的各种任务和过程步骤可并入具有本文未详细描述的额外步骤或功能的更综合的程序或过程中。
以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包含”、“包括”、“具有”、“含有”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列要素的组合物、混合物、工艺、方法、制品或装置不一定仅限于那些要素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其他要素。
另外,术语“示例性”在本文中用于表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”可以理解为包括大于或等于一的任何整数,即一、二、三、四等。术语“多个”可以理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”包括间接“连接”和直接“连接”两者。
术语“约”、“基本上”、“大约”及其变体旨在包括与基于提交本申请时可用的设备的特定量的测量相关联的误差度。例如,“约”可以包括给定值的±8%或5%或2%的范围。
为了简洁起见,与制造和使用本发明的方面相关的常规技术可以或可以不在本文中详细描述。特别地,用于实现本文描述的各种技术特征的计算系统和特定计算机程序的各个方面是公知的。因此,为了简洁起见,许多常规实现细节在本文中仅简要提及或完全省略,而不提供众所周知的系统和/或过程细节。
预先理解,尽管在生物神经网络的上下文中描述了本发明的一个或多个实施例,其中特别强调对大脑结构和功能建模,但是本文所述的教导的实现不限于对特定环境建模。相反,本发明的实施例能够对任何类型的环境建模,包括例如天气模式、从因特网收集的任意数据等,只要对环境的各种输入可被转换成向量。
人工神经网络(ANNs)可以用于估计或近似依赖于大量输入并且通常未知的系统和函数。神经网络使用基于互连“神经元”概念的一类算法。在典型的神经网络中,神经元具有对输入进行操作的给定激活函数。通过确定适当的连接权重(也称为“训练”的过程),神经网络实现了对诸如图像和字符之类的期望模式的有效识别。通常,这些神经元被分组为"层",以便使组之间的连接更明显,并且对值的每次计算更明显。训练神经网络是计算密集的过程。
ANN常常体现为所谓互连的处理器元件的"神经形态”系统,所述互连的处理器元件充当模拟“神经元”并且以电子信号的形式在彼此之间交换“消息”。类似于在生物神经元之间传递信息的突触神经递质连接(synaptic neurotransmitter)的所谓“可塑性”(plasticity),ANN中在模拟的神经元之间传递电子信息的连接具有对应于给定连接的强或弱的数字权重。可以基于经验来调整和调节权重,使得ANN适应于输入并且能够学习。例如,用于手写识别的ANN由一组输入神经元定义,该组输入神经元可以由输入图像的像素激活。在由网络设计者所确定的函数加权和变换之后,这些输入神经元的激活然后被传递到其它下游神经元,后者通常被称为“隐匿”神经元。重复该过程直到激活输出神经元。激活的输出神经元确定哪个字符被读取。
交叉杆阵列,也称为交叉点阵列或交叉线阵列,是用于形成各种电子电路和器件的高密度、低成本电路结构,包括ANN结构、神经形态微芯片和超高密度非易失性存储器。一种基本的交叉杆阵列配置包括一组导电行线和与该组导电行线形成交叉的一组导电列线。这两组导线之间的交叉部分由所谓的交叉点器件隔离,交叉点器件可以由薄膜材料形成。
交叉点设备实际上起着ANN的神经元之间的加权连接的作用。通常将纳米级器件,例如具有“理想”导通状态切换特性的忆阻器,用作交叉点器件,以便以高能效模拟突触可塑性。理想忆阻器材料的导通状态(例如,电阻),可以通过控制在行线和列线的各个线之间施加的电压来改变。可以通过改变忆阻器材料在交叉处的导通状态以实现高导通状态或低导通状态来存储数字数据。还可以对忆阻器材料进行编程,通过选择性地设置材料的导通状态来保持两个或更多个不同的导通状态。忆阻器材料的导通状态可以通过跨材料施加电压并测量通过目标交叉点器件的电流来读取。然而,迄今为止,在忆阻器和其它基于电阻随机存取存储器(RRAM)的交叉点器件中存在一些对ANN应用有害的实际缺点;显著的器件到器件可变性和“置位(即,以增大电阻)”和“复位(即,以减小电阻)”操作之间的不对称性,是两个这样的限制。
为了限制功耗,ANN芯片架构的交叉点器件通常被设计用来利用离线学习技术,其中一旦已经解析了初始训练阶段,目标函数的近似就不改变。离线学习允许交叉杆型ANN架构的交叉点器件被简化,使得它们消耗非常少的功率。
尽管存在较低功耗的可能性,但执行离线训练可能是困难的且资源密集的,这是因为,在训练期间通常需要修改ANN模型中大量的可调整参数(例如,权重)以匹配训练数据的输入-输出对。因此,简化ANN架构的交叉点设备以使节能、离线学习技术优先,通常意味着训练速度和训练效率未被优化。
提供将功耗保持在可接受范围内以及提高训练ANN架构的速度和效率的简单交叉点器件,将会改进总体ANN性能并且允许更广泛的ANN应用。因此,本文描述了使用能提供代表要存储在阵列中的对应权重的可调电导(电阻)的基于计数器的交叉点器件的便于使用和训练交叉点阵列的技术方案。此外,与用于权重存储的典型的基于电容器的实现相比,本文描述的技术方案解决了诸如电荷损失的技术挑战以及对更新电流的严格要求。而且,与忆阻器或基于RRAM的交叉点器件不同的是,基于计数器的交叉点器件具有较小的器件到器件可变性(由良好建立的半导体技术工艺提供)和权重值的向上计数与向下计数之间的理想对称性。
本文描述的技术方案还便于至少部分基于特定时钟事件来更新由基于计数器的交叉点器件存储的值。时钟事件便利表示神经网络的交叉点阵列在前向和/或后向传播之后更新所存储的权重。所存储的权重然后在随后的前向和/或后向传播期间被使用。
使用基于计数器的交叉点器件作为RPU阵列中的RPU,有助于RPU阵列具有传统CMOS技术的鲁棒性。此外,数字计数器的使用有助于向上与向下加权增量之间的对称性。此外,基于计数器的交叉点器件还便于RPU阵列与随机并行更新算法协同工作以用于反向传播。
在一个或多个示例中,权重元素被存储在交叉点器件的数字计数器(例如,基于J-K触发器的计数器)中。计数器中的每个比特(bit)与交叉点器件的电阻电路的堆叠中的一个或多个电阻电路相关联。计数器比特控制串联连接的FET的栅极端子,使得FET堆叠的总电阻将被用作转导(transduction)元件(即,每个RPU单元的电阻器元件)。因此,计数器比特有助于控制电阻电路的堆叠的总电阻,如进一步详细描述的那样。
尽管本发明的实施例针对电子系统,但为了便于参考和解释,使用诸如神经元、可塑性和突触等神经学术语来描述电子系统的各方面。应当理解,对于本文对电子系统的任何讨论或说明,神经学术语或神经学简写符号的使用是为了便于参考,并且旨在涵盖所描述的神经学功能或神经学组件的神经形态、ANN等效物。
ANN不是利用操纵零和一的传统数字模型,而是创建基本上是正在被估计或近似的核心系统功能的功能等效物的处理元件之间的连接。例如,IBMTM的SyNapseTM计算机芯片是试图提供与哺乳动物大脑类似的形式、功能和结构的电子神经形态机器的中心组件。尽管IBMSyNapse计算机芯片使用与传统计算机芯片的相同的基本晶体管组件,但是其晶体管被配置用于模仿神经元及其突触连接的行为。IBMSyNapse计算机芯片使用仅超过一百万个模拟“神经元”的网络来处理信息,所述模拟“神经元”使用类似于生物神经元之间的突触通信的电尖峰(spikes)来彼此通信。IBM SyNapse架构包括读取存储器(即,模拟“突触”)并执行简单操作的处理器(即,模拟“神经元”)的配置。这些处理器之间的通信通常位于不同的核心中,并且由片上网络路由器来执行。
现在将参考图1、2和3提供对典型的ANN如何操作的一般描述。如本文先前所述,典型的ANN对人脑建模,人脑包括约十亿个相互连接的称为神经元的细胞。图1示出了一个具有通路104、106、108、110的生物神经元102的简化图,如图所示配置和布置的那样,通路104、106、108、110将生物神经元102连接至上游输入112、114、下游输出116和下游“其他”神经元118的。每个生物神经元102通过通路104、106、108、110发送和接收电脉冲。这些电脉冲的性质以及它们在生物神经元102中被处理的方式主要决定了整个大脑功能。生物神经元之间的通路连接可以是强的或弱的。当给定神经元接收输入脉冲时,该神经元根据该神经元的功能来处理输入,并将功能的结果发送到下游输出和/或下游“其他”神经元。
生物神经元102在图2中被建模为节点202,节点202具有数学函数f(x),该函数由图2中的等式f(x)所示。节点202从输入212、214获得电信号,将每个输入(INPUT)212、214分别乘以其各自的连接(CONNECTION)通路204、206的强度(STRENGTH)后相加得到的和传递通过函数f(x),生成结果216,该结果可以是最终输出,也可以是另一节点的输入,或者两者都是。这里的星号(*)表示乘法。弱输入信号被乘以很小的连接强度数,因此弱输入信号对该函数的影响很小。类似地,强输入信号乘以较高的连接强度数,因此强输入信号对该函数的影响较大。函数f(x)是一种设计选择,并且可以使用各种函数。f(x)的示例性选择是双曲正切函数,其取先前和的函数并输出一个负1和正1之间的数。
图3示出了被组织为加权有向图的简化ANN模型300,其中人工神经元是节点(例如302、308、316),并且其中加权有向边(例如M1到M20)连接节点。ANN模型300被组织为使得节点302、304、306是输入层节点,节点308、310、312、314是隐匿层节点,而节点316、318是输出层节点。每个节点通过连接通路连接到相邻层中的每一个节点,连接通路在图3中被描绘为具有连接强度m1到m20的方向箭头。虽然仅示出了一个输入层、一个隐匿层和一个输出层,但是实际上,可以提供多个输入层、隐匿层和输出层。
类似于人脑的功能,ANN300的每个输入层节点302、304、306直接从源(未示出)接收输入x1、x2、x3,此时没有连接强度调整和节点求和。因此,y1=f(x1)、y2=f(x2)、y3=f(x3),如图3底部列出的等式所示。每个隐匿层节点308、310、312、314根据与相关连接通路相关联的连接强度从所有输入层节点302、304、306接收其输入。因此,在隐蔽层节点308中,y4=f(m1*y1+m5*y2+m9*y3),其中*表示乘法。针对隐匿层节点310、312、314和输出层节点316、318执行类似的连接强度乘法和节点求和,如图3的底部处示出的定义函数y5到y9的等式所示。
ANN模型300一次处理一个数据记录,并且它通过将记录的初始任意分类与记录的已知实际分类进行比较来“学习”。使用被称为“反向传播”(即,“误差的反向传播”)的训练方法,来自第一记录的初始分类的误差被反馈到网络中,被用于在第二个时间修改网络的加权连接,这个反馈过程在多次迭代中继续进行。在ANN的训练阶段,每个记录的正确分类是已知的,并且因此可以向输出节点分配“正确”值。例如,对于对应于正确分类的节点来说,节点值为“1”(或0.9),而其它节点的节点值为“0”(或0.1)。因此,可以将网络的输出节点的计算值与这些“正确”值进行比较,并计算每个节点的误差项(即,“增量”规则)。然后,这些误差项被用于调整隐匿层中的权重,使得在下一次迭代中,输出值将更接近“正确”值。
存在许多类型的神经网络,但是最广泛的两个类别是前馈和反馈/递归网络。ANN模型300是具有输入层、输出层和隐匿层的非递归前馈网络。信号只能在一个方向上传播。输入数据被传递到执行计算的处理元件层上。每个处理元件基于其输入的加权和进行其计算。新的计算值然后变成馈送下一层的新输入值。这个过程一直继续,直到其已经通过所有层并确定了输出。有时使用阈值传递函数来量化输出层中神经元的输出。
反馈/递归网络包括反馈路径,这意味着信号可以使用环路在两个方向上传播。允许节点之间的所有可能连接。因为在这种类型的网络中存在环路,所以在某些操作下,这类网络可能变成连续改变直到达到平衡状态的非线性动态系统。反馈网络经常用于关联存储器和优化问题,其中网络寻找互连因素的最佳布置。
前馈和递归ANN架构中的机器学习的速度和效率,取决于ANN交叉杆阵列的交叉点器件如何有效地执行典型机器学习算法的核心操作。尽管机器学习的精确定义难以公式化,但是可将ANN上下文中的学习过程视为更新交叉点器件连接权重、使得网络可有效地执行特定任务的问题。交叉点器件通常从可用的训练模式中学习必要的连接权重。通过迭代地更新网络中的权重,性能随时间推移而得到提高。ANN不遵循由人类专家规定的一组规则,而是从给定的代表性例子的集合中“学习”底层规则(如输入-输出关系)。因此,通常可以将学习算法通常定义为由其可以将学习规则用于更新和/或调整相关权重的过程。
这三种主要的学习算法范例是监督式、非监督式和混合式学习。在监督式学习或”具有“教师”的学习中,为网络提供每个输入模式的正确答案(输出)。确定权重是为了让网络产生尽可能接近已知正确答案的答案。强化学习是监督式学习的变型,其中网络仅提供有关于网络输出的正确性的评判,而不是提供正确答案本身。相反,非监督式学习或没有教师的学习则不需要与训练数据集中的每个输入模式相关联的正确答案。非监督式学习探索数据中的底层结构或数据中的模式之间的相关性,并从这些相关性将模式组织成各种类别。混合式学习组合了监督式学习和非监督式学习。部分权重通常通过监督式学习来确定,而其它部分权重通过非监督式学习来获得。
如本文先前所述,为了限制功耗,ANN芯片架构的交叉点器件通常被设计得用于利用离线学习技术,其中一旦初始训练阶段已经被解析,目标函数的近似就不改变。离线学习允许交叉开关型ANN架构的交叉点器件被简化,使得它们消耗非常少的功率。
尽管存在较低功耗的可能性,但执行离线训练可能是困难的且资源密集的,因为在训练期间通常需要修改ANN模型中大量的可调整参数(例如,权重)以匹配训练数据的输入-输出对。图4示出了典型的读取-处理-写入权重更新的操作的简化图示,其中CPU/GPU核(即,模拟“神经元”)读取存储器(即,模拟“突触”),执行权重更新处理操作,然后将更新的权重写回存储器。因此,简化ANN架构的交叉点设备以使节能、离线学习技术优先,这通常意味着训练速度和训练效率未被优化。
图5示出了人工神经网络(ANN)架构500。在前馈操作期间,一组输入神经元502各自并行地向权重504的相应行提供输入电压。权重504是交叉点器件,例如RPU器件,它是这里描述的基于计数器的权重元件。权重504各自具有可设置的电阻值,使得从权重504流向相应的隐匿神经元506的电流输出表示加权输入。给定权重的电流输出被确定为
Figure BDA0002519730700000111
其中v是来自输入神经元502的输入电压,r是权重504的设置电阻。来自每个权重的电流按列相加,并且流向隐匿神经元506。
隐匿神经元506使用来自权重504的阵列的电流来执行一些计算。隐匿神经元506然后将其自身的电压输出到另一权重504'的阵列。该阵列以相同的方式执行,其中一列权重504'从它们各自的隐匿神经元506接收电压以产生加权电流输出,该加权电流输出按行相加并且被提供给输出神经元508。
应当理解,通过插入阵列的附加层和隐匿神经元506,可以实现任何数量的这些级。
在反向传播期间,输出神经元508反向提供权重504'的阵列上的电压。输出层将所生成的网络响应与训练数据进行比较并计算误差。该误差以电压脉冲的形式被施加到阵列,其中与误差值成比例地调制脉冲的高度和/或持续时间。在该示例中,权重504'的行从相应的输出神经元508并行地接收电压,并且将该电压转换成电流,该电流逐列相加以向隐匿神经元506提供输入。隐匿神经元506将加权反馈信号与其前馈计算的导数组合,并且在将反馈信号电压输出到其相应的权重504的列之前存储误差值。应当注意,加权504'以与加权504相同的方式操作;提供标记以指示权重504在神经元502的层和神经元506的层之间,并且权重504'在神经元506的层和神经元508的层之间。这种反向传播通过整个网络500,直到所有隐匿神经元506和输入神经元502都存储了误差值。
在权重更新期间,输入神经元502和隐匿神经元506通过网络500将第一权重更新电压施加到权重504的交叉点阵列,并且输出神经元508和隐匿神经元506将第二权重更新电压施加到权重504’的交叉点阵列。此外,在权重504的更新阶段期间,输入层502施加与输入值成比例的电压脉冲(按行),并且层506施加与隐匿层506的误差值成比例的电压脉冲(按列)。此外,在神经元504'的更新阶段,隐匿层506施加与其前馈输出值成比例的电压脉冲(按列),并且输出层508施加与输出层508的误差成比例的电压脉冲(按行)。这些电压的组合在每个权重504、504'内产生状态变化,使得权重504、504'具有新计数器值,其进而改变电阻值。以这种方式,可以训练权重504、504'以使神经网络500适应其处理中的误差。应当注意,前馈、后向传播和权重更新这三种操作模式彼此不重叠。
现在转向本发明的概述,本发明的实施例涉及本文中称为交叉点器件的可编程电阻交叉点部件或电阻处理单元(RPU),其提供本地数据存储功能和本地数据处理功能。换句话说,在执行数据处理时,并行地和本地地更新存储在每个RPU中的值,这消除了对将相关数据移入和移出处理器和单独的存储元件的需要。另外,由所述RPU提供的本地数据存储和本地数据处理提高了ANN实现诸如矩阵求逆、矩阵分解等算法的能力。因此,实现具有所描述的RPU的机器学习ANN架构使得能够实现优化ANN的速度、效率和功耗。所描述的RPU和所得到的ANN架构改进了整体ANN性能,并且使得能够实现更大范围的实际ANN应用。
所描述的RPU可以被实现为电阻性交叉点器件,包括计数器和包括电阻电路的堆叠的电阻器器件。计数器包括用于存储和输出计数器中的每个位(bit)的数字电路。每个位与电阻电路的堆叠中的相应电阻电路相关联。每个电阻电路提供相应的预定电导(或电阻)。在一个或多个示例中,电阻器器件中的堆叠中的电阻电路的电导值具有预定关系,诸如二次方关系。至少部分地基于该位的状态(开=1,关=0),相应的电阻电路将其相应的电导加到电阻器器件的总电导上。因此,至少部分地基于存储在计数器中的值,可以控制电阻器器件的电导/电阻。
图6示出体现本发明的双端子、非线性RPU器件的交叉杆阵列,以及说明RPU的操作的电压序列。图6是执行前向矩阵乘法、后向矩阵乘法和权重更新的二维(2D)交叉杆阵列800的示图。交叉杆阵列800由一组导电行线802、804、806和与该组导电行线802、804和806交叉的一组导电列线808、810、812和814形成。行导线组和列导线组之间的交叉点由RPU分隔,RPU在图6中被示为每个具有其自己的可调节/可更新的电阻权重的电阻元件,所述电阻权重分别被示为σ11、σ21、σ31、σ41、σ12、σ22、σ32、σ42、σ13、σ23、σ33和σ43。为了便于说明,在图6中仅一个RPU820是用附图标记来标记的。在正向矩阵乘法中,RPU的导通状态(即,存储的权重)可以通过在RPU两端施加电压并测量通过RPU的电流来读取。在一个或多个示例中,交叉杆阵列800包括两组导线,即两组行和两组列。换句话说,802、804、806、808、810、812和814中的每一个都包括两条导线。前向/后向传播通过第一组导线发生,更新则通过第二组导线发生。
输入电压V1、V2、V3分别被施加到行线802、804、806。每个列线808、810、812、814对由每个RPU沿该特定列线产生的电流I1、I2、I3、I4求和。例如,如图6所示,由列线814产生的电流I4符合等式I4=V1σ41+V2σ42+V3σ43。因此,阵列800通过将存储在RPU中的值乘以由电压V1、V2、V3定义的行线输入并累加每列的电流值来计算正向矩阵乘法,行线输入。后向矩阵乘法(未示出)非常类似。在反向矩阵乘法中,将电压施加在列导线808、810、812、814上,然后读取并累加行线802、804、806中的电流。对于以下更详细描述的权重更新来说,将电压同时施加到列线和行线,并且存储在相关RPU器件中的电导值全部并行地更新。因此,RPU器件RPU 820权重更新所需的乘法和加法操作,是在阵列800的每个RPU820本地用阵列800的RPU器件本身加上相关行或列线执行的。
继续图6的示意图,根据一个或多个实施例,现在将提供对RPU820导电行线806和导电列线812的交叉点处的RPU 820及其相应权重σ33的进行正权重更新的方法的操作。在交叉开关阵列800的外围处提供更新生成器电路(未示出),用作外围“转换器”,以便生成向2D交叉点阵列800的所有RPU施加的随机比特流形式的必要电压脉冲。
因此,就如本文所述的使用包括RPU的交叉点阵列实现的ANN来说,阵列中的每个节点的电阻(或电导)的值确定了节点之间的耦合,其中节点由阵列中的RPU器件表示。此外,在根据ANN训练交叉点阵列时,取决于期望的耦合,器件与器件的电阻(或电导)将有所不同。为了训练神经网络,必须主动地调整电阻值。一旦训练完成,电阻值在交叉点阵列电路的操作期间就保持固定,直到开始新任务的训练。
图7示出了根据一个或多个实施例的可以用作RPU阵列中的交叉点器件的基于计数器的RPU。RPU器件820包括一对端子901、902,其将RPU820连接到交叉点阵列800。
此外,基于计数器的RPU 820包括计数器920和电阻器器件930,计数器920是一组单比特计数器,电阻器器件930是电阻电路的堆叠。在所示基于计数器的RPU中,电阻器件包括作为电阻电路的晶体管T1、T2、T3和T4。所述晶体管可以是场效应晶体管(FET)或任何其它类型的晶体管。然而,在其它实施例中,电阻器件930包括其它类型的电阻电路,诸如电阻梯(图12)或能够堆叠在一起以提供如由本文描述的技术方案提供的可调节/可控制电阻/电导的任何其它类型的电路。
RPU阵列800中的第一组导线与交叉点器件820的读1901和读2902端子耦合,用于读取存储在交叉点器件820中的权重值(与更新权重值相反)。RPU阵列800中的第二组导线与RPU器件820的逻辑门940和向上/向下计数器920耦合。特别地,第二组导线(a)连接到该器件的逻辑门输入,继而在共同发生的情况下产生时钟脉冲,以及(b)连接到计数器的UP/DOWN输入端以根据要存储的权重值来调整计数器。选择第二组导线的电压以用于逻辑门940(例如“与”门)和计数器920的正确逻辑操作(通常为0和VDD)。此外,第二组中的每个列线包括两个导线:一个传递与后续层神经元的误差值(δ)成比例的电压脉冲,而第二个则传递误差值的对应符号(例如,0V=-符号,VDD=+符号),用于引起时钟脉冲处的递增/递减。
如前文所述,正向和反向传播通过使用第一组列线和行线而发生,权重更新则通过第二组不同的导线(行线和列线)而发生。在正向和反向传播期间,电压脉冲被施加到第一组导线中的为电流累加操作而优化了的导线(即,电压值被选择为使得如果交叉点器件基于FET电阻器堆叠,则那些FET在线性状态中操作(与饱和状态相反))。另一方面,在更新阶段期间,使用交叉阵列800中的第二组导线。
计数器920中的每个单比特计数器对应于电阻器器件930中的一个相应电阻电路。应注意,在图7中所描绘的实例中,计数器920包含分别与电阻器器件930的四个电阻电路的堆叠映射的四个位。然而,在其他示例中,RPU可包括与这里所示的不同数量的单个计数器位和电阻电路。
由电阻器器件930提供的电阻/电导至少部分地基于施加到交叉点的电压而影响RPU 820的电流输出。在一个或多个示例中,所述电阻电路堆叠包括串联连接的电阻电路。因此,电阻器器件930的电阻式每个被激活的电阻电路的电阻和和。至少部分地基于计数器920中的相应的单比特计数器的状态,来激活电阻器器件930中的电阻电路。例如,如果某单比特计数器被置位(=1/开),则激活对应的电阻电路,而如果该单比特计数器没有被置位(=0/关)单比特计数器,则不激活对应的电阻电路;反之亦然。
此外,为了生成一系列电阻状态,电阻器器件930中的电阻电路具有特定约束。例如,如表1所示,电阻电路具有二次方增加的电阻,其中,堆叠中每个相继的电阻电路具有前一电阻电路的电阻/电导两倍的电阻/电导。应注意,在其它实例中,电阻电路可具有与这里的实例的不同的预定关系。
表1
FET 电阻
T1 1x
T2 2x
T3 4x
T4 8x
图8示出了根据本发明实施例的至少部分基于计数器状态的电阻器器件的可调电阻。假设R1hi=T1的关断状态电阻(例如100KΩ)并且R1low=T1的开通状态电阻(例如10KΩ),可以至少部分地基于电阻电路之间的关系,例如二次方关系(表1),来确定其它电阻电路T2、T3和T4的电阻,因此,R2hi=2R1hi;R3hi=4R1hi;且R4hi=8R1hi.。因此,如果计数器920被设置为1,即,仅T1被设置为开通,则电阻器器件930的总电阻是R1low+R2hi+R3hi+R4hi=14R1hi+R1low。图8中示出了根据存储在计数器920中的值来改变电阻器器件930的电阻的其它配置。电阻器器件930的电阻因此按照(Rhi–Rlow)的步长线性地变化。
应注意,可改变电阻器器件930的电阻电路之间的关系以改变根据计数器值920调节电阻器器件930时所用的线性步长。举例来说,如果电阻器器件中所用的电阻电路为FET,那么所述关系可通过FET的宽度、长度、阈值电压(Vt)和/或偏压的各种组合来实现。
图9示出了根据本发明实施例的至少部分地基于宽度而改变FET的电阻/电导。FETT1、T2、T3和T4分别具有不同宽度w1、w2、w3和w4的源极962和漏极968,其中栅极965具有基本上相同的栅极长度L,宽度w1、w2、w3和w4按照用来改变电阻器器件930的电阻/电导的关系而变化。例如,宽度w1是w2的两倍,w2是w3的两倍,w3是w4的两倍,其中w4是分配给T4的预定晶体管宽度。在一个或多个示例中,在用作电阻电路的FET是FinFET的情况下,通过改变FinFET的数量来改变宽度。例如,表2示出了通过改变用作电阻电路的FinFET的鳍的数量来改变电阻器器件930中的电阻电路的电阻/电导的4位示例。
表2
Figure BDA0002519730700000171
图10示出根据本发明实施例至少部分基于栅极长度而改变基于FETs的电阻/电导。在这种情况下,FET T1、T2、T3和T4具有相同宽度w的源极962和漏极968,以及分别具有不同栅极长度L1、L2、L3和L4的栅极965。长度L1、L2、L3和L4按照该关系变化以改变电阻器器件930的电阻/电导。例如,长度L4是L3的两倍,L3是L2的两倍,L2是L1的两倍,其中L1是分配给L1的预定晶体管栅极长度。
图11示出了根据本发明实施例的使用垂直几何结构的具有可变电阻/电导的电阻器器件930的示例。这里,堆叠场效应晶体管是以垂直几何形状制造的。在衬底层上进行制造。衬底可以是绝缘体上硅晶片,其包括在绝缘层(例如包括二氧化硅的BOX(掩埋氧化物)层)顶部上的顶层或硅层。衬底层可以是N+硅衬底层或任何其它这样的材料。
在用于各种FET的栅极填充层1020之间沉积间隔层1010,间隔层1010用于分隔堆叠中的各种FET。例如,间隔物1010可以是SiNx层并且
栅极填充物1020可以由任何类型的导电材料组成,例如由从由铝、钴、铜、金、铪、镍、钯、铂、钼、铌、多晶硅、铑、银、钽、氮化钽、锡、氮化钛、钛钨、钒、锆、导电聚合物及其混合物组成的组中选择的那些导电材料组成。
此外,栅极电介质1030用于将栅极填充层1020与间隔物以及与晶体管沟道1040分离。栅极电介质1030可以由任何已知的电介质材料组成,例如由从由砷化铝、砷化铝镓、氮化铝、氧化铝、氟化钡、钡锶钛氧化物、钡钛氧化物、氟化钙、氟化铈、氧化铈、砷化镓、铝酸铪、氧化铪、氧氮化铪、铪硅氧化物、铪硅氮氧化物、氧化铟、氮化铟镓、磷化铟、氧化镧、镧铝氧化物、镧硅氧化物、铅钪钽氧化物、铅锌铌酸盐、氟化镁、氟化铌、氧化铌、氮化硅、氧化硅、钽酸锶铋、氧化锶钛、氧化锆、锆硅氧化物、氧化钛、二氧化钛、二氧化钽、五氧化钽、氧化锡、铝酸锆、氧化锆、氧氮化锆硅、氧化钇、氧化钇硅及其混合物构成的组中选择的那些电介质材料组成。在至少一个示例中,栅极电介质90表现出大于氧化硅的介电常数的介电常数。
栅极沟道1040可以被掺杂以提供特定的电学和性能特性。在一个或多个示例中,沟道1040可以是被栅极电极1020围绕的多晶硅材料。此外,垂直FET堆叠包括为电阻器器件930提供读1901和读2902端子的端子1050。
栅极电介质1020的沉积根据FET T1、T2、T3和T4的栅极的变化的长度而间隔开,以产生栅极长度之间的二次方(或任何其它预定)关系,且因此产生电阻/电导。因此,电阻器器件930可以是具有不同栅极长度的垂直FET堆叠。
返回参考图7,在x和δ共同发生时生成的时钟边沿处计数器920被更新以在RPU阵列800的交叉点处存储权重,从而使得能够随机更新计数器920。x和δ是施加到RPU阵列800的行和列的电压,并且包括随机的电压序列。x对应于由交叉点器件的输入产生的随机脉冲信号。在一个或多个示例中,x是一个基于给定层的前馈输出的随机序列,δ是基于由RPU器件820的交叉点阵列820的后续层计算的误差而生成的随机序列。
因此,当随机序列x和δ二者具有共同波形时,产生时钟边沿并由逻辑门940提供给计数器。在一个或多个示例中,逻辑门940是“与”(AND)门,其接收x和δ序列作为输入,并提供时钟(CLK)作为输出。在其它实例中可使用其它逻辑门。
除了作为输入的CLK之外,计数器920还接收指示δ的符号的第二输入。基于该符号,计数器920递增(符号=+)或递减(符号=-)计数器920中存储的计数值。基于该递增/递减,计数器920的单比特计数器中的位改变,进而激活/去激活电阻器器件930的电阻电路,以调整电阻器器件930的电阻/电导。
图12示出了根据本发明的实施例的可以用作RPU阵列中的交叉点器件的基于计数器的RPU。与具有在电阻器器件930中使用的FET的堆叠的RPU 820(图7)相比,这里的RPU820B使用包括电阻器阶梯作为转导元件的电阻器器件930。在所示实例中,展示了一个4位电阻器阶梯,然而,应注意,在其它实例中,在电阻器阶梯中可以使用不同数目的电阻电路来支持计数器920中的不同数目的位。所示的电阻器阶梯包括分别与计数器920的相应的单比特计数器相关联的四个电阻电路。
这里,当输入Ki为高电平脉冲时,从梯形电路Ci流出的电流与计数器920(由单比特计数器<Q1:Q4>表示)的值(即,权重)成比例。随后,在正向传播期间,输出电流由RPU阵列800逐列累加。此外,在反向传播期间,输出电流由RPU阵列800逐行累加。
对于所示的4位的实例,设“与”(AND)门1210的输出节点处的电压为<V1:V4>(例如,VL=0V或VH=1V)。从电路Ci流出到RPU阵列800的列中的电流为:
Figure BDA0002519730700000201
更一般地,对于r个位的情形来说,流出的电流是:
Figure BDA0002519730700000202
因此,如表3中针对4位的情形所例示的那样,电流与计数器的数字值成比例,其中电流以1/16R的步长线性变化,其中R是预定电阻值。
表3
V4、V3、V2、V1的位状态 流出的电流C<sub>i</sub>
0,0,0,0 0
0,0,0,1 1/16R
0,0,1,0 2/16R
0,0,1,1 3/16R
.. ..
1,1,1,0 14/16R
1,1,1,1 15/16R
图13示出了根据本发明的实施例的具有电阻器阶梯的基于计数器的RPU 820B如何被连接为RPU阵列800中的交叉点器件。在RPU阵列800中连接RPU 820B使用了连接电路1310。连接电路1310包括四个晶体管Tr11312、Tr21314、Tr31316及Tr41318,后者将进一步描述和说明。晶体管Tr2和Tr4具有<<R/2r的电阻,其中r=计数器920中使用的位数。
图14示出了根据本发明实施例的使用RPU 820B和连接电路1310执行的正向传播通路。在正向传播期间,每个交叉点处的两个FWD晶体管(Tr11312和Tr21314)被导通,而两个BWD晶体管(Tr31316和Tr41318)被截止。
图15示出了根据本发明实施例的使用RPU 820B和连接电路1310执行的反向传播通路。在反向传播期间,每个交叉点处的两个FWD晶体管(Tr11312和Tr21314)被截止,而两个BWD晶体管(Tr31316和Tr41318)被导通。
在前向和后向传播中,都使用RPU 820B,连续进行如前文所述的RPU阵列800的操作,对于前向传播来说,电流被逐列累加,对于后向传播来说,电流被逐行累加。
图16示出了根据本发明实施例的使用基于计数器的RPU器件的RPU阵列。RPU阵列800包括每个交叉点处的基于计数器的RPU 820。RPU器件820可以使用本文中所述的基于FET的或基于电阻器阶梯的电阻器器件930。RPU阵列800在每个交叉点还包括本地存储器1610和本地控制器1620。
特定交叉点处的本地存储器1610存储由一个或多个ANN矩阵中的每个分配给该特定交叉点的多个权重,每个矩阵对应于ANN的两个相邻层间的连接(例如,矩阵1连接层A到层B,矩阵2连接层B到层C,等等)。本地控制器1620从全局控制器1640接收指令,以基于正在处理的ANN的层将相应的权重加载到RPU设备820中。相应地,本地控制器1620从本地存储器1610访问相应的权重值,并将该权重值加载到RPU器件820的该特定交叉点处的计数器920中。
此外,全局控制器1640还在权重更新操作之后指令本地控制器1620改变计数器值。在一个或多个示例中,作为响应,本地控制器1620从计数器920读取更新的权重值,并且将更新的值存储到本地存储器1610中以供后续使用。
在一个或多个示例中,外围存储器1650存储全局控制器1640所使用的信息,例如,指示ANN进行的处理的参数值,诸如正在处理哪一层,等等。
图17示出了根据本发明的实施例的使用基于计数器的RPU器件的RPU阵列中的数据流。RPU阵列800包括在每个交叉点处的基于计数器的RPU 820。RPU器件820可以使用如本文中所述的基于FET的或基于电阻器阶梯的电阻器器件930。RPU阵列800的各个单元的权重元件以单元级本地存储在本地存储器1610中,以便进行有效的数据传送。所有能被分配给每个ANN权重矩阵(例如A-B层之间的矩阵1、B-C层之间的矩阵2等)的特定单元(例如交叉点(m,n))的不同权重,都被存储在本地存储器1610中。在各个层操作(即前向传播、后向传播和权重更新)期间,将权重加载到该单元中。此外,在权重更新步骤之后,将该单元的值存储回本地存储器1610中。
如图所示,本地控制器1620从全局控制器1640接收特定层(例如,A-B)正被处理的指示/指令。因此,特定交叉点(m,n)的本地控制器1620读取存储在本地存储器1610中的单元(m,n)的权重值,并更新RPU器件820在RPU阵列800的交叉点(m,n)处的计数器920。如本文所述,该计数器值调整交叉点(m,n)处的RPU器件820的电阻器器件930的电阻/电导。因此,当将电压序列(an)施加到行n处的RPU阵列800时,RPU器件820至少部分地基于按照该计数器值调整的电阻/电导传递电流Im作为输出。在正向传播中,累积该列中的多个RPU器件820上的电流,以向后继的层提供输入值。或者,在反向传播中,累计各行上的电流。
因此,RPU阵列800便于使用RPU器件820的可调节电阻/电导来实现ANN的多个层,其中所述电阻/电导是可用激活/去激活RPU器件820的电阻器器件930中的对应电阻电路的计数器920来调节的。
本文所述的本发明的实施例通过消除在使用基于电容器的权重存储元件时通常观察到电荷损失和对更新电流的严格要求,来改进RPU阵列中使用的典型权重存储元件。本文描述的本发明的实施例便于使用基于计数器的RPU器件作为权重存储元件,其中计数器位控制串联连接的FET的栅极端子,由此将FET堆叠的总电阻用作转导元件(即,每个RPU单元的电阻器元件)。或者,本文描述的本发明的实施例便于使用基于计数器的RPU器件,其中至少部分基于计数器位将电阻器阶梯用作转换元件。
本发明的各种实施例的描述是为了说明的目的而提出的,而不是要穷举或限制于所描述的本发明的实施例。在不背离本发明的精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。选择这里使用的术语是为了最好地解释本发明的实施例的原理、实际应用、或对市场中发现的技术改进,或者使本领域的其他普通技术人员能够理解这里描述的本发明的实施例。

Claims (20)

1.一种用于在电阻处理单元(RPU)阵列的交叉点器件中存储权重的方法,所述方法包括:
设置交叉点器件中的多个单比特计数器中的每个单比特计数器的状态,所述单比特计数器的状态表示要存储在交叉点器件处的权重;以及
调整交叉点器件的电阻器器件的电导,其中电阻器器件包括多个电阻电路,其中每个电阻电路与所述多个单比特计数器中的相应单比特计数器相关联,其中通过根据相关联的单比特计数器的状态激活或去激活每个电阻电路来调整电导。
2.根据权利要求1所述的方法,其中所述电阻电路通信地串联耦合。
3.根据权利要求1所述的方法,其中所述电阻电路包括二次方增加的电阻,第一电阻电路具有预定电阻,并且每个另外的相继电阻电路包括值为前一电阻电路的两倍的电阻。
4.根据权利要求3所述的方法,其中,所述电阻电路包括场效应晶体管(FET)。
5.根据权利要求4所述的方法,其中,所述场效应晶体管包括至少部分地基于二次方地减少晶体管宽度而二次方地增加电阻。
6.根据权利要求4所述的方法,其中,所述场效应晶体管包括至少部分地基于二次方地增加栅极长度而二次方地增加电阻。
7.根据权利要求6所述的方法,其中所述场效应晶体管是场效应晶体管的垂直堆叠的部分。
8.根据权利要求3所述的方法,其中,所述电阻电路包括电阻器阶梯,所述电阻电路中的每一个包括:
逻辑门;以及
一系列电阻器;以及
其中,至少部分地基于对应的单比特计数器的状态来激活所述逻辑门。
9.一种用于在电阻处理单元(RPU)阵列中的交叉点处存储权重值的交叉点器件,所述交叉点器件包括:
计数器,其包括多个单比特计数器,所述单比特计数器的状态表示要存储在所述交叉点器件处的权重;以及
电阻器器件,包括多个电阻电路,每个电阻电路与所述多个单比特计数器中的相应单比特计数器相关联,所述电阻电路根据相关联的单比特计数器的状态被激活或去激活,并且所述电阻器器件的电导至少部分地基于被激活的电阻电路被调节。
10.根据权利要求9所述的交叉点器件,其中所述电阻电路串联连接。
11.根据权利要求9所述的交叉点器件,其中所述电阻电路包括二次方地增加的电阻,第一电阻电路具有预定电阻,每个另外的相继电阻电路具有是前一电阻电路的两倍的电阻。
12.根据权利要求11所述的交叉点器件,其中所述电阻电路为场效应晶体管(FET)。
13.根据权利要求12所述的交叉点器件,其中所述FET包括至少部分地基于二次方地减少晶体管宽度来二次方地增加电阻。
14.根据权利要求12所述的交叉点器件,其中所述场效应晶体管包括至少部分地基于二次方地增加栅极长度而二次方地增加电阻。
15.根据权利要求11所述的交叉点器件,其中所述电阻电路是电阻器阶梯,所述电阻电路中的每个电阻电路包括:
逻辑门;以及
一系列电阻器;以及
其中,至少部分地基于对应的单比特计数器的状态来激活逻辑门。
16.一种用于实现神经网络的交叉点阵列,所述交叉点阵列包括:
多个交叉点器件,每个交叉点器件位于交叉点阵列的一个相应节点处,每个节点表示神经网络的神经元之间的连接,并且每个节点存储分配给该节点的权重,每个交叉点器件是如权利要求9至15中任一项所述的交叉点器件。
17.一种用于实现神经网络的系统,所述系统包括:如权利要求16所述的交叉点阵列;以及
全局控制器,其被配置用于调整在所述交叉点阵列中的每个交叉点器件处存储的值。
18.根据权利要求17所述的系统,其中,所述交叉点阵列还包括:
每个交叉点处的本地存储器,所述本地存储器被配置用于存储分配给所述交叉点处的所述交叉点器件的多个权重,所述多个权重中的每个权重对应于所述神经网络中相应的层与层连接;
在每个交叉点处的本地控制器,所述本地控制器与所述本地存储器耦合,所述本地控制器被配置用于:
从所述本地存储器读取权重;以及
将所述权重设置为所述交叉点处的交叉点器件的计数器的值。
19.根据权利要求18所述的系统,其中,所述本地控制器还被配置用于将所述交叉点器件的计数器的值存储到所述本地存储器。
20.一种用于实现神经网络的方法,所述方法包括:
由全局控制器选择要在交叉点阵列中加载的矩阵,所述矩阵对应于所述神经网络的两个层之间的连接;
作为响应,由交叉点阵列中的交叉点上的本地控制器在与该交叉点相关联的交叉点器件中加载权重值,该权重值被分配给所选择的矩阵的交叉点,所述加载包括如权利要求1至8中任一项所述的方法的步骤;以及
作为响应,由所述交叉点器件调整与所述交叉点相关联的电阻器器件的电导,所述电导对应于加载到所述交叉点器件中的所述权重值。
CN201880077961.9A 2017-12-13 2018-11-22 可编程可重置人工神经网络的基于计数器的电阻处理单元 Active CN111433792B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/840,322 US11222259B2 (en) 2017-12-13 2017-12-13 Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
US15/840,322 2017-12-13
PCT/IB2018/059228 WO2019116128A1 (en) 2017-12-13 2018-11-22 Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks

Publications (2)

Publication Number Publication Date
CN111433792A true CN111433792A (zh) 2020-07-17
CN111433792B CN111433792B (zh) 2023-11-21

Family

ID=66696262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880077961.9A Active CN111433792B (zh) 2017-12-13 2018-11-22 可编程可重置人工神经网络的基于计数器的电阻处理单元

Country Status (6)

Country Link
US (3) US11222259B2 (zh)
JP (1) JP7336819B2 (zh)
CN (1) CN111433792B (zh)
DE (1) DE112018005726B4 (zh)
GB (1) GB2582088B (zh)
WO (1) WO2019116128A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113052306A (zh) * 2021-03-04 2021-06-29 华南理工大学 一种基于堆叠式宽度学习模型的在线学习芯片

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136202A (ko) * 2017-06-14 2018-12-24 에스케이하이닉스 주식회사 컨볼루션 신경망 및 컨볼루션 신경망을 가진 신경망 시스템
US10303998B2 (en) 2017-09-28 2019-05-28 International Business Machines Corporation Floating gate for neural network inference
US11222259B2 (en) 2017-12-13 2022-01-11 International Business Machines Corporation Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
CA3020884A1 (en) * 2018-01-24 2019-07-24 Wai Kit Ricky Fok Parallel residual neural network architechture and system and method for trainning a residual neural network
US20190251430A1 (en) * 2018-02-13 2019-08-15 International Business Machines Corporation Mixed signal cmos rpu with digital weight storage
US11403529B2 (en) * 2018-04-05 2022-08-02 Western Digital Technologies, Inc. Noise injection training for memory-based learning
US10601471B1 (en) 2018-08-29 2020-03-24 Micron Technology, Inc. Neuron calculator for artificial neural networks
US11449730B2 (en) * 2018-12-24 2022-09-20 Wipro Limited Method and system for verifying classification performed by an artificial neural network
US20210034953A1 (en) * 2019-08-02 2021-02-04 Applied Materials, Inc. Reconfigurable finfet-based artificial neuron and synapse devices
US11676031B2 (en) * 2020-02-25 2023-06-13 Ventech Solutions, Inc. Anatomical position monitoring for bodily pressure ulcers
WO2021183135A1 (en) * 2020-03-13 2021-09-16 Hewlett-Packard Development Company, L.P. Transmitting node instructions
US11651107B2 (en) 2020-03-17 2023-05-16 Ventech Solutions, Inc. Securing personally identifiable and private information in conversational AI-based communication
US11568262B2 (en) 2020-03-25 2023-01-31 Ventech Solutions, Inc. Neural network based radiowave monitoring of fall characteristics in injury diagnosis
US11133063B1 (en) * 2020-06-22 2021-09-28 International Business Machines Corporation Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory
CN113437964B (zh) * 2021-06-10 2022-09-16 安徽大学 一种由rram构成的可阻态区分且可重构的运算电路
US11900979B2 (en) * 2021-10-22 2024-02-13 Intel Corporation Probabilistic in-memory computing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050083748A1 (en) * 2003-10-21 2005-04-21 Connie Lemus Magnetic memory having a calibration system
US20150255157A1 (en) * 2014-03-07 2015-09-10 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
US20160049195A1 (en) * 2014-08-12 2016-02-18 Arizona Board Of Regents On Behalf Of Arizona State University Resistive cross-point architecture for robust data representation with arbitrary precision
CN106158017A (zh) * 2016-06-20 2016-11-23 北京大学 基于电阻运算实现逻辑和算术运算的方法和设备
US9659249B1 (en) * 2016-09-27 2017-05-23 International Business Machines Corporation Pre-programmed resistive cross-point array for neural network
WO2017155544A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Hardware accelerators for calculating node values of neural networks

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2715656A (en) 1952-08-02 1955-08-16 Bell Telephone Labor Inc Electrical information system
US4874963A (en) * 1988-02-11 1989-10-17 Bell Communications Research, Inc. Neuromorphic learning networks
JPH02236659A (ja) * 1989-03-09 1990-09-19 Fujitsu Ltd 半導体情報処理装置
JP2517410B2 (ja) * 1989-05-15 1996-07-24 三菱電機株式会社 学習機能付集積回路装置
JPH0634248B2 (ja) 1989-12-16 1994-05-02 三菱電機株式会社 半導体神経回路網
JPH06215163A (ja) * 1993-01-18 1994-08-05 Hitachi Ltd ニューラルネット構築支援方法及び装置、ニューラルネットテスト装置、薬注制御システム
JPH0884078A (ja) * 1994-09-09 1996-03-26 Fujitsu Ltd D/a変換器
US6185143B1 (en) 2000-02-04 2001-02-06 Hewlett-Packard Company Magnetic random access memory (MRAM) device including differential sense amplifiers
US6876989B2 (en) 2002-02-13 2005-04-05 Winbond Electronics Corporation Back-propagation neural network with enhanced neuron characteristics
US7079436B2 (en) * 2003-09-30 2006-07-18 Hewlett-Packard Development Company, L.P. Resistive cross point memory
US7913130B2 (en) * 2003-10-31 2011-03-22 Hewlett-Packard Development Company, L.P. Multi-sample read circuit having test mode of operation
US7826248B2 (en) 2008-05-20 2010-11-02 Seagate Technology Llc Write verify method for resistive random access memory
US8009455B2 (en) 2009-01-20 2011-08-30 Ovonyx, Inc. Programmable resistance memory
US8275727B2 (en) * 2009-11-13 2012-09-25 International Business Machines Corporation Hardware analog-digital neural networks
US8655813B2 (en) * 2010-12-30 2014-02-18 International Business Machines Corporation Synaptic weight normalized spiking neuronal networks
US8856055B2 (en) 2011-04-08 2014-10-07 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US8812414B2 (en) * 2011-05-31 2014-08-19 International Business Machines Corporation Low-power event-driven neural computing architecture in neural networks
US8542521B2 (en) 2011-09-12 2013-09-24 Kabushiki Kaisha Toshiba Semiconductor storage device including memory cells capable of holding data
US9015092B2 (en) 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US9412446B1 (en) 2013-08-16 2016-08-09 Sandia Corporation Multilevel resistive information storage and retrieval
WO2015065316A1 (en) 2013-10-28 2015-05-07 Hewlett-Packard Development Company, L.P. Geometry dependent voltage biases for asymmetric resistive memories
US20150278681A1 (en) * 2014-04-01 2015-10-01 Boise State University Memory controlled circuit system and apparatus
US9934463B2 (en) * 2015-05-15 2018-04-03 Arizona Board Of Regents On Behalf Of Arizona State University Neuromorphic computational system(s) using resistive synaptic devices
US9847125B2 (en) 2015-08-05 2017-12-19 University Of Rochester Resistive memory accelerator
US10387778B2 (en) * 2015-09-29 2019-08-20 International Business Machines Corporation Scalable architecture for implementing maximization algorithms with resistive devices
US10248907B2 (en) 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
US10901939B2 (en) 2015-10-30 2021-01-26 International Business Machines Corporation Computer architecture with resistive processing units
US10043796B2 (en) * 2016-02-01 2018-08-07 Qualcomm Incorporated Vertically stacked nanowire field effect transistors
US10671911B2 (en) * 2016-02-19 2020-06-02 International Business Machines Corporation Current mirror scheme for an integrating neuron circuit
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US9715656B1 (en) 2016-09-12 2017-07-25 International Business Machines Corporation Killing asymmetric resistive processing units for neural network training
US9779355B1 (en) 2016-09-15 2017-10-03 International Business Machines Corporation Back propagation gates and storage capacitor for neural networks
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack
US11222259B2 (en) 2017-12-13 2022-01-11 International Business Machines Corporation Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050083748A1 (en) * 2003-10-21 2005-04-21 Connie Lemus Magnetic memory having a calibration system
US20150255157A1 (en) * 2014-03-07 2015-09-10 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
US20160049195A1 (en) * 2014-08-12 2016-02-18 Arizona Board Of Regents On Behalf Of Arizona State University Resistive cross-point architecture for robust data representation with arbitrary precision
WO2017155544A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Hardware accelerators for calculating node values of neural networks
CN106158017A (zh) * 2016-06-20 2016-11-23 北京大学 基于电阻运算实现逻辑和算术运算的方法和设备
US9659249B1 (en) * 2016-09-27 2017-05-23 International Business Machines Corporation Pre-programmed resistive cross-point array for neural network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113052306A (zh) * 2021-03-04 2021-06-29 华南理工大学 一种基于堆叠式宽度学习模型的在线学习芯片
CN113052306B (zh) * 2021-03-04 2022-04-22 华南理工大学 一种基于堆叠式宽度学习模型的在线学习芯片

Also Published As

Publication number Publication date
GB202007432D0 (en) 2020-07-01
US11875249B2 (en) 2024-01-16
US20240086697A1 (en) 2024-03-14
GB2582088B (en) 2022-07-27
WO2019116128A1 (en) 2019-06-20
CN111433792B (zh) 2023-11-21
DE112018005726B4 (de) 2022-04-21
JP7336819B2 (ja) 2023-09-01
US20190180174A1 (en) 2019-06-13
GB2582088A (en) 2020-09-09
DE112018005726T5 (de) 2020-07-16
JP2021507349A (ja) 2021-02-22
US20220058474A1 (en) 2022-02-24
US11222259B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
CN111433792B (zh) 可编程可重置人工神经网络的基于计数器的电阻处理单元
US10755170B2 (en) Resistive processing unit with hysteretic updates for neural network training
US9779355B1 (en) Back propagation gates and storage capacitor for neural networks
CN107924227B (zh) 电阻处理单元
US9646243B1 (en) Convolutional neural networks using resistive processing unit array
US11087204B2 (en) Resistive processing unit with multiple weight readers
KR20200124705A (ko) 효율적인 행렬 곱셈을 위한 시스템 및 방법
US20200117986A1 (en) Efficient processing of convolutional neural network layers using analog-memory-based hardware
EP3262571A1 (en) Hardware accelerators for calculating node values of neural networks
CN112005252B (zh) 具有单独权重更新和干扰电路的电阻式处理单元架构
US20210342678A1 (en) Compute-in-memory architecture for neural networks
US20210374546A1 (en) Row-by-row convolutional neural network mapping for analog artificial intelligence network training
US11488001B2 (en) Neuromorphic devices using layers of ion reservoirs and ion conductivity electrolyte
US11133058B1 (en) Analog computing architecture for four terminal memory devices
CN111194467A (zh) 差分忆阻电路
US11586899B2 (en) Neuromorphic device with oxygen scavenging gate
US10832773B1 (en) Architecture for enabling zero value shifting
US11195089B2 (en) Multi-terminal cross-point synaptic device using nanocrystal dot structures
US11121259B2 (en) Metal-oxide-based neuromorphic device
US20190251430A1 (en) Mixed signal cmos rpu with digital weight storage
CN115699028A (zh) 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射
AU2021296187B2 (en) Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory
CN111105022A (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