[go: up one dir, main page]

CN116720555A - Systems and methods for storage bits in artificial neural networks - Google Patents

Systems and methods for storage bits in artificial neural networks Download PDF

Info

Publication number
CN116720555A
CN116720555A CN202310128574.6A CN202310128574A CN116720555A CN 116720555 A CN116720555 A CN 116720555A CN 202310128574 A CN202310128574 A CN 202310128574A CN 116720555 A CN116720555 A CN 116720555A
Authority
CN
China
Prior art keywords
circuit
electrically connected
operation circuit
resistive elements
weight
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
CN202310128574.6A
Other languages
Chinese (zh)
Inventor
S·M·阿拉姆
D·豪萨梅丁
S·阿加瓦尔
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.)
Everspin Technologies Inc
Original Assignee
Everspin Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/893,462 external-priority patent/US20230281434A1/en
Application filed by Everspin Technologies Inc filed Critical Everspin Technologies Inc
Publication of CN116720555A publication Critical patent/CN116720555A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

Landscapes

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

Abstract

本公开涉及用于人工神经网络中的存储位的系统和方法。本公开尤其针对一种装置,所述装置包括:输入电路;权重运算电路,所述权重运算电路电连接到所述输入电路;偏差运算电路,所述偏差运算电路电连接到所述权重运算电路;存储电路,所述存储电路电连接到所述权重运算电路和所述偏差运算电路;以及激活函数电路,所述激活函数电路电连接到所述偏差运算电路,其中至少所述权重运算电路、所述偏差运算电路和所述存储电路位于同一个芯片上。

The present disclosure relates to systems and methods for memory bits in artificial neural networks. The present disclosure is particularly directed to a device, which includes: an input circuit; a weight operation circuit electrically connected to the input circuit; and a deviation operation circuit electrically connected to the weight operation circuit. ; a storage circuit, the storage circuit is electrically connected to the weight operation circuit and the deviation operation circuit; and an activation function circuit, the activation function circuit is electrically connected to the deviation operation circuit, wherein at least the weight operation circuit, The deviation operation circuit and the storage circuit are located on the same chip.

Description

用于人工神经网络中的存储位的系统和方法Systems and methods for storage bits in artificial neural networks

相关申请的交叉引用Cross-references to related applications

本申请要求2022年3月7日提交的美国临时专利申请No.63/268,953的利益,所述临时专利申请的全部内容以引用的方式并入本文。This application claims the benefit of U.S. Provisional Patent Application No. 63/268,953, filed on March 7, 2022, the entire contents of which are incorporated herein by reference.

技术领域Technical field

本公开的实施方案尤其涉及存储位。更具体地,本公开的某些实施方案涉及人工神经网络中的存储位。Embodiments of the present disclosure relate particularly to storage bits. More specifically, certain embodiments of the present disclosure relate to memory bits in artificial neural networks.

引言introduction

人工神经网络可能有一个输入层和一个具有多个隐藏层的输出层。输入层之后的每一层都可能有多个执行各种操作的硬件神经元。例如,每个硬件神经元可执行关于输入和权重值的乘法和累加(MAC)运算、MAC运算的乘积与任何偏差值的求和,和/或执行激活函数,例如用于产生到输出层的输出值的整流线性单元(ReLU)激活函数或sigmoid函数。An artificial neural network may have an input layer and an output layer with multiple hidden layers. Each layer after the input layer may have multiple hardware neurons that perform various operations. For example, each hardware neuron may perform a multiply and accumulate (MAC) operation on the input and weight values, sum the product of the MAC operation and any bias values, and/or perform an activation function, such as to generate the output layer. Rectified linear unit (ReLU) activation function or sigmoid function of the output value.

对于一些常规的硬件神经元,在这些人工神经网络上下文中,权重值和偏差值可能需要存储操作、检索操作和/或修改操作。例如,在推理应用中,每个硬件神经元的权重值和偏差值可能需要存储在芯片外的非易失性存储器中。在硬件神经元的使用期间,权重值和偏差值可从片外非易失性存储器加载到可实现人工神经网络的片上随机存取存储器(RAM)寄存器中。对权重值和偏差值的片外存储器存取可能会显著增加芯片的功耗和/或增加硬件神经元操作的延迟。因此,可能需要对硬件神经元进行配置,以减少通常与将这些值从非易失性存储器加载到硬件神经元相关联的功耗和延迟。For some conventional hardware neurons, weight and bias values may require storage operations, retrieval operations, and/or modification operations in the context of these artificial neural networks. For example, in inference applications, the weight values and bias values of each hardware neuron may need to be stored in non-volatile memory off-chip. During the use of hardware neurons, weight and bias values can be loaded from off-chip non-volatile memory into on-chip random access memory (RAM) registers that implement artificial neural networks. Off-chip memory access to weight and bias values may significantly increase the chip's power consumption and/or increase the latency of hardware neuron operations. Therefore, the hardware neuron may need to be configured to reduce the power consumption and latency typically associated with loading these values from non-volatile memory to the hardware neuron.

附图说明Description of the drawings

在下面的详细描述过程中,将参考附图。附图示出了本公开的不同方面,并且在适当的情况下,在不同附图中示出相同结构、部件、材料和/或元件的附图标记被类似地标记。应当理解,结构、部件和/或元件的各种组合,除了具体示出的那些之外,都被设想到并且在本公开的范围内。During the following detailed description, reference will be made to the accompanying drawings. The drawings illustrate different aspects of the disclosure, and where appropriate, reference numbers showing the same structures, components, materials and/or elements in the different drawings are labeled similarly. It is understood that various combinations of structures, components and/or elements in addition to those specifically shown are contemplated and are within the scope of the present disclosure.

此外,本文描述和说明了本公开的许多实施方案。本公开既不限于任何单个方面或其实施方案,也不限于这些方面和/或实施方案的任何组合和/或排列。此外,本公开的每个方面和/或其实施方案可以单独使用或与本公开的一个或多个其他方面和/或其实施方案组合使用。为了简洁起见,某些排列和组合在本文中未单独讨论和/或示出;然而,所有的排列和组合都被认为落在本发明的范围内。Additionally, numerous embodiments of the present disclosure are described and illustrated herein. The disclosure is neither limited to any single aspect or embodiment thereof, nor to any combination and/or permutation of these aspects and/or embodiments. Furthermore, each aspect of the disclosure and/or embodiments thereof may be used alone or in combination with one or more other aspects of the disclosure and/or embodiments thereof. For the sake of brevity, certain permutations and combinations are not individually discussed and/or shown herein; however, all permutations and combinations are considered to be within the scope of the invention.

图1描绘了根据本公开的示例性实施方案的示例性人工神经网络的功能图。Figure 1 depicts a functional diagram of an exemplary artificial neural network according to an exemplary embodiment of the present disclosure.

图2描绘了根据本公开的示例性实施方案的图1的人工神经网络的第一硬件神经元的示例。2 depicts an example of a first hardware neuron of the artificial neural network of FIG. 1 according to an exemplary embodiment of the present disclosure.

图3描绘了根据本公开的示例性实施方案的图1的人工神经网络的第二硬件神经元的示例。3 depicts an example of a second hardware neuron of the artificial neural network of FIG. 1 according to an exemplary embodiment of the present disclosure.

图4描绘了根据本公开的示例性实施方案的硬件神经元的示例性存储电路的配置。4 depicts an exemplary memory circuit configuration of a hardware neuron according to an exemplary embodiment of the present disclosure.

图5描绘了根据本公开的示例性实施方案的硬件神经元的存储电路的各种桥元件配置。Figure 5 depicts various bridge element configurations of a hardware neuron's memory circuit in accordance with an exemplary embodiment of the present disclosure.

图6A描绘了根据本公开的示例性实施方案的被配置用于写入第一值的硬件神经元的多次可编程存储电路的电路的示例。6A depicts an example of a circuit of a multiple-times programmable storage circuit of a hardware neuron configured for writing a first value in accordance with an exemplary embodiment of the present disclosure.

图6B描绘了根据本公开的示例性实施方案的被配置用于写入第二值的硬件神经元的多次可编程存储电路的电路的示例。6B depicts an example of a circuit of a multiple-times programmable storage circuit of a hardware neuron configured for writing a second value in accordance with an exemplary embodiment of the present disclosure.

图7A描绘了根据本公开的示例性实施方案的被配置用于读出第一值的硬件神经元的一次性可编程存储电路的电路的示例。7A depicts an example of a circuit of a one-time programmable memory circuit of a hardware neuron configured to read out a first value in accordance with an exemplary embodiment of the present disclosure.

图7B描绘了根据本公开的示例性实施方案的被配置用于读出第二值的硬件神经元的一次性可编程存储电路的电路的示例。7B depicts an example of a circuit of a one-time programmable memory circuit of a hardware neuron configured to read out a second value in accordance with an exemplary embodiment of the present disclosure.

图8A描绘了根据本公开的示例性实施方案使用第一值对存储位的存储电路进行的示例性一次性编程。8A depicts an exemplary one-time programming of a memory circuit of a storage bit using a first value in accordance with an exemplary embodiment of the present disclosure.

图8B描绘了根据本公开的示例性实施方案使用第二值对存储位的存储电路进行的示例性一次性编程。8B depicts an exemplary one-time programming of a memory circuit of a storage bit using a second value in accordance with an exemplary embodiment of the present disclosure.

图9描绘了根据本公开的示例性实施方案的硬件神经元的存储电路的示例性配置。Figure 9 depicts an exemplary configuration of a memory circuit of a hardware neuron according to an exemplary embodiment of the present disclosure.

图10描绘了根据本公开的一个方面的用于操作硬件神经元的示例性方法的流程图。Figure 10 depicts a flowchart of an exemplary method for operating hardware neurons in accordance with one aspect of the present disclosure.

同样,本文中描述和说明了许多实施方案。本公开既不限于任何单个方面或其实施方案,也不限于这些方面和/或实施方案的任何组合和/或排列。本公开的每个方面和/或其实施方案可以单独使用或与本公开的一个或多个其他方面和/或其实施方案组合使用。为了简洁起见,这些组合和排列中的许多未在本文中单独讨论。Likewise, numerous embodiments are described and illustrated herein. The disclosure is neither limited to any single aspect or embodiment thereof, nor to any combination and/or permutation of these aspects and/or embodiments. Each aspect of the disclosure and/or embodiments thereof may be used alone or in combination with one or more other aspects of the disclosure and/or embodiments thereof. For the sake of brevity, many of these combinations and permutations are not discussed individually in this article.

如本文所用,术语“包括(comprises)”、“包括了(comprising)”或其任何其他变体意图涵盖非排他性的包括,使得包括一系列要素的过程、方法、物品或设备不仅包括那些要素,而且可以包括没有明确列出或这种过程、方法、物品、或设备所固有的其他要素。术语“示例性”是以“示例”而非“理想”的含义使用。As used herein, the terms “comprises,” “comprising,” or any other variation thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that includes a list of elements includes not only those elements, but and may include other elements not expressly listed or inherent to such process, method, article, or equipment. The term "exemplary" is used in the sense of "example" rather than "ideal."

具体实施方式Detailed ways

详细的说明性方面在本文中公开。然而,为了描述本公开的示例实施方案的目的,本文公开的具体结构和功能细节仅是代表性的。本公开可以体现为许多替代形式且不应该被理解为仅局限于文中所阐述的实施方案。另外,本文中所使用的术语仅仅是为了描述具体实施方案,并且并不意图限制本文描述的示例性实施方案。Detailed illustrative aspects are disclosed herein. However, specific structural and functional details disclosed herein are representative only for the purpose of describing example embodiments of the present disclosure. The disclosure may be embodied in many alternative forms and should not be construed as limited to the embodiments set forth herein. Additionally, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the exemplary embodiments described herein.

当本说明书参考“一个实施方案”或“一实施方案”时,意欲表示结合正讨论的实施方案描述的特定特征、结构、特性或功能包括在本公开的至少一个设想到的实施方案中。因此,在说明书中不同地方出现的短语“在一个实施方案中”或“在一个实施方案中”不构成对本公开的单个实施方案的多次引用。When this specification refers to "one embodiment" or "an embodiment," it is intended that a particular feature, structure, characteristic, or function described in connection with the embodiment at issue is included in at least one contemplated embodiment of the present disclosure. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places in the specification do not constitute multiple references to a single embodiment of the disclosure.

如本文使用,单数形式“一个(种)”和“所述”意欲也包括复数形式,除非上下文明确另外指示。还应当注意,在一些替代实现方式中,所描述的特征和/或步骤可以不按图中描绘的或本文讨论的顺序发生。举例来说,连续展示的两个步骤或图可以改为大体上同时执行,或者有时可以按相反的顺序执行,这取决于所涉及的功能/动作。在一些方面中,取决于所涉及的功能/动作,一个或多个描述的特征或步骤可以被完全省略,或者在其间具有中间步骤的情况下执行,而不脱离本文描述的实施方案的范围。As used herein, the singular forms "a", "an", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be noted that, in some alternative implementations, the features and/or steps described may occur out of the order depicted in the figures or discussed herein. For example, two steps or diagrams shown in succession may instead be performed substantially simultaneously, or sometimes in reverse order, depending on the functionality/actions involved. In some aspects, one or more of the described features or steps may be omitted entirely, or performed with intervening steps, depending on the function/action involved, without departing from the scope of the embodiments described herein.

此外,本文中的术语“第一”、“第二”等不表示任何顺序、数量或重要性,而是用于将一个元素与另一个元素区分开来。类似地,相关取向的术语,例如“顶部”、“底部”等,是参考所描述的附图中所示的结构的取向来使用。还应注意,本文公开的所有数值可能与公开的数值有±10%的变化(除非指定不同的变化)。此外,所有相关术语,诸如“约”、“基本上”、“大约”等,用于表示±10%的可能变化(除非另有说明或指定另一个变化)。Furthermore, the terms "first," "second," etc. used herein do not imply any order, quantity or importance, but are instead used to distinguish one element from another. Similarly, orientation-related terms, such as "top," "bottom," etc., are used with reference to the orientation of the structures illustrated in the figures being described. It should also be noted that all values disclosed herein may vary by ±10% from the disclosed value (unless a different variation is specified). In addition, all relative terms, such as "about," "substantially," "approximately," etc., are used to represent possible variations of ±10% (unless otherwise stated or designated another variation).

在一个方面中,本公开涉及对存储装置进行编程的技术和实现方式,所述存储装置包括例如能够在电源被停用时保存数据的非易失性或“永久”存储器(例如,闪存、MRAM或ReRAM)。尽管下面的描述参考了MRAM或ReRAM存储装置单元,但本发明可以在其他存储装置中实现,包括但不限于电可擦除可编程只读存储器(EEPROM)和/或铁电随机存取存储器(FRAM)。In one aspect, the present disclosure relates to techniques and implementations for programming storage devices, including, for example, non-volatile or "persistent" memory (e.g., Flash memory, MRAM) capable of retaining data when power is disabled. or ReRAM). Although the following description refers to MRAM or ReRAM memory device cells, the invention may be implemented in other memory devices, including but not limited to electrically erasable programmable read-only memory (EEPROM) and/or ferroelectric random access memory ( FRAM).

本公开涉及用于人工神经网络中的存储位的系统和方法,所述系统和方法可以解决上述一个或多个问题。例如,根据某些实施方案,人工神经网络组件(例如,与权重值、偏差值、处理层等相关)可以使用分布式磁阻随机存取存储器(MRAM)位来存储。在这种边缘分布式存储器网络中,一个或多个MRAM位可以在物理上接近一个或多个硬件神经元或人工神经网络的硬件(例如,在每个硬件神经元的500微米(um)以内或在硬件神经元内的功能硬件块的500um以内),并且可用于存储该硬件神经元的人工神经网络组件。一个或多个不同的MRAM位可以在物理上接近同一个人工神经网络的一个或多个其他硬件神经元,并且不同的MRAM位可以用于存储该其他硬件神经元的人工神经网络组件。The present disclosure relates to systems and methods for storage bits in artificial neural networks that may address one or more of the above-mentioned problems. For example, according to certain embodiments, artificial neural network components (eg, associated with weight values, bias values, processing layers, etc.) may be stored using distributed magnetoresistive random access memory (MRAM) bits. In such edge distributed memory networks, one or more MRAM bits may be physically close to one or more hardware neurons or the hardware of an artificial neural network (e.g., within 500 micrometers (um) of each hardware neuron or within 500um of a functional hardware block within a hardware neuron) and can be used to store the artificial neural network components of that hardware neuron. One or more different MRAM bits may be physically proximate to one or more other hardware neurons of the same artificial neural network, and different MRAM bits may be used to store the artificial neural network component of that other hardware neuron.

如本文别处所述,人工神经网络可包括输入层和输出层。输入层可以接收传入人工神经网络的一个或多个输入。经由输入层提供的输入可以应用于包含硬件神经元的一个或多个隐藏层。可以基于监督、半监督或无监督机器学习来训练一个或多个隐藏层。每个神经元可以具有存储在存储器中的多个组件(例如,权重、偏差、层等)。在训练人工神经网络的训练过程中,一个或多个硬件神经元的组件可以被存取、修改、删除、重写、添加等。因此,在人工神经网络训练过程中可能需要大量的存储器存取。另外,在经过训练的人工神经网络的生产使用期间,可以经由相应的存储器存取来存取和/或应用硬件神经元的组件。另外,人工神经网络可以在生产过程中继续训练(例如,基于反馈)。因此,硬件神经元的组件可以在生产过程中被修改、删除和/或添加。在人工神经网络的推理应用中,每个神经元的多个组件(例如,权重或偏差)可能必须存储在非易失性存储器中。照惯例,这通过将权重或偏差存储在闪存存储器中来完成。来自外部闪存存储器的数据可以在推理应用之前加载到人工神经网络处理器中,并存储在本地可用的易失性存储元件中,例如SRAM、扫描链或寄存器。在这种常规方法中,移动数据和存储元件可能需要额外的功耗。As described elsewhere herein, an artificial neural network may include an input layer and an output layer. The input layer can receive one or more inputs into the artificial neural network. Input provided via the input layer may be applied to one or more hidden layers containing hardware neurons. One or more hidden layers can be trained based on supervised, semi-supervised or unsupervised machine learning. Each neuron can have multiple components (eg, weights, biases, layers, etc.) stored in memory. During the training process of training an artificial neural network, components of one or more hardware neurons can be accessed, modified, deleted, rewritten, added, etc. Therefore, a large amount of memory access may be required during the training of artificial neural networks. Additionally, during production use of the trained artificial neural network, components of the hardware neuron may be accessed and/or applied via corresponding memory accesses. Additionally, artificial neural networks can continue to be trained during the production process (e.g., based on feedback). Therefore, components of the Hardware Neuron may be modified, deleted, and/or added during the production process. In inference applications of artificial neural networks, multiple components of each neuron (e.g., weights or biases) may have to be stored in non-volatile memory. Conventionally, this is done by storing the weights or biases in flash memory. Data from external flash memory can be loaded into the ANN processor prior to inference applications and stored in locally available volatile storage elements such as SRAM, scan chains, or registers. In this conventional approach, moving data and storage elements may require additional power consumption.

这样,上述的一个或多个问题可以通过本文描述的某些实施方案来解决。例如,可以基于本文公开的分布式存储(例如,MRAM)架构来减少功耗、计算资源和/或时间。继续前面的示例,本文公开的某些实施方案可以通过提供对人工神经网络组件(例如,权重值、偏差值、处理层等)的片上存取(例如,代替片外存取)来减少功耗、计算资源和/或延迟。另外,通过具有片上存取,某些实施方案可以减少将值从存储器提供到处理电路所需的路由量,这可以节省芯片空间、减少或消除人工神经网络中的电路,等等。As such, one or more of the above issues may be addressed by certain implementations described herein. For example, power consumption, computing resources, and/or time may be reduced based on the distributed storage (eg, MRAM) architecture disclosed herein. Continuing with the previous example, certain embodiments disclosed herein may reduce power consumption by providing on-chip access (e.g., instead of off-chip access) to artificial neural network components (e.g., weight values, bias values, processing layers, etc.) , computing resources and/or latency. Additionally, by having on-chip access, some implementations can reduce the amount of routing required to provide values from memory to processing circuitry, which can save chip space, reduce or eliminate circuitry in artificial neural networks, and so on.

现在参看图1,描绘了根据本公开的示例性实施方案的示例性人工神经网络100的功能图。如图所示,人工神经网络100可以包括输入层102、隐藏层104和输出层106。输入层102可以向隐藏层104提供输入值108,所述隐藏层可以处理输入值108。隐藏层104可包括用于执行处理的一个或多个硬件神经元110(本文也称为神经元装置),并且隐藏层104可将处理结果提供给输出层106(例如,输出层106的硬件神经元112),用于输出给用户、用于进一步处理等。Referring now to FIG. 1 , depicted is a functional diagram of an exemplary artificial neural network 100 in accordance with an exemplary embodiment of the present disclosure. As shown, artificial neural network 100 may include an input layer 102, a hidden layer 104, and an output layer 106. Input layer 102 can provide input values 108 to hidden layer 104, which can process input values 108. Hidden layer 104 may include one or more hardware neurons 110 (also referred to herein as neuron devices) for performing processing, and hidden layer 104 may provide processing results to output layer 106 (e.g., hardware neurons of output layer 106 112), used for output to the user, for further processing, etc.

如本文更详细描述的,权重值和偏差值可以存储在非易失性存储器中并且可以在人工神经网络100的操作期间使用。例如,权重值可以与输入层102与隐藏层104之间以及隐藏层104与输出层106之间的每条弧(或突触)相关联。弧在图1中示出为这些层之间的箭头。另外地或替代地,偏差值可以与人工神经网络100中的每个硬件神经元110、112相关联。As described in greater detail herein, the weight values and bias values may be stored in non-volatile memory and may be used during operation of the artificial neural network 100 . For example, a weight value may be associated with each arc (or synapse) between the input layer 102 and the hidden layer 104 and between the hidden layer 104 and the output layer 106 . Arcs are shown in Figure 1 as arrows between these layers. Additionally or alternatively, a bias value may be associated with each hardware neuron 110, 112 in the artificial neural network 100.

尽管本文可能在人工神经网络100的上下文中描述某些实施方案,但某些实施方案可适用于前馈神经网络、径向基函数神经网络、Kohonen自组织神经网络、递归神经网络(RNN)、卷积神经网络(CNN)、模块化神经网络(MNN)等。Although certain embodiments may be described herein in the context of artificial neural network 100, certain embodiments may be applicable to feedforward neural networks, radial basis function neural networks, Kohonen self-organizing neural networks, recurrent neural networks (RNN), Convolutional neural network (CNN), modular neural network (MNN), etc.

图2描绘了根据本公开的示例性实施方案的图1的人工神经网络100的第一硬件神经元110的示例200。例如,图2描绘了图1的人工神经网络100的硬件神经元110的功能图;然而,某些实施方案可同样适用于硬件神经元112。FIG. 2 depicts an example 200 of a first hardware neuron 110 of the artificial neural network 100 of FIG. 1 according to an exemplary embodiment of the present disclosure. For example, FIG. 2 depicts a functional diagram of hardware neuron 110 of artificial neural network 100 of FIG. 1; however, certain implementations may be equally applicable to hardware neuron 112.

如图所示,硬件神经元110可以包括权重运算电路114,所述权重运算电路可以被配置为对输入值108执行运算,例如乘法运算。例如,乘法运算可包括将在硬件神经元110处接收的输入值108乘以与硬件神经元110相关联的一个或多个权重值122。权重值122可以存储在靠近硬件神经元110和/或权重运算电路114的存储电路118中。权重运算电路114可以从存储电路118读取权重值122并且可以将一个或多个输入值108乘以权重值122。权重运算电路114可以使用乘法器电路将输入值108乘以权重值。作为具体示例,权重运算电路114可以将输入值108a乘以权重值122a(例如,a1*W1)。在某些实施方案中,权重值122可以例如在人工神经网络100的训练期间基于反馈回路来更新。As shown, the hardware neuron 110 may include a weighting circuit 114 that may be configured to perform an operation, such as a multiplication operation, on the input value 108 . For example, the multiplication operation may include multiplying the input value 108 received at the hardware neuron 110 by one or more weight values 122 associated with the hardware neuron 110 . Weight values 122 may be stored in storage circuitry 118 proximate hardware neurons 110 and/or weight operation circuitry 114 . Weight operation circuit 114 may read weight value 122 from storage circuit 118 and may multiply one or more input values 108 by weight value 122 . The weight operation circuit 114 may use a multiplier circuit to multiply the input value 108 by the weight value. As a specific example, the weight operation circuit 114 may multiply the input value 108a by the weight value 122a (eg, a 1 *W 1 ). In certain embodiments, weight values 122 may be updated based on a feedback loop, such as during training of artificial neural network 100 .

硬件神经元110还可以包括偏差运算电路116,所述偏差运算电路可以被配置为对权重运算电路114的输出执行运算,例如加法器或求和运算。例如,偏差运算电路116可以将一个或多个偏差值124加到从权重运算电路114输出的加权值上。偏差值124可以存储在靠近硬件神经元110和/或偏差运算电路116的存储电路118中。偏差运算电路116可以从存储电路118读取偏差值124并且可以将偏差值124加到从权重运算电路114输出的加权值上。在一些实施方案中,偏差运算电路116可以使用求和电路来加上偏差值124。作为具体示例,可以将从权重运算电路114输出的加权值(例如,输入值108a的加权值[a1*W1])加到偏差值124上(例如,偏差运算电路116可能会产生和(a1*W1+b1)的有偏加权值)。Hardware neuron 110 may also include bias operation circuitry 116 , which may be configured to perform an operation, such as an adder or summation operation, on the output of weight operation circuit 114 . For example, the bias operation circuit 116 may add one or more bias values 124 to the weighted value output from the weight operation circuit 114 . Bias values 124 may be stored in storage circuitry 118 proximate hardware neurons 110 and/or bias operation circuitry 116 . The deviation operation circuit 116 may read the deviation value 124 from the storage circuit 118 and may add the deviation value 124 to the weight value output from the weight operation circuit 114 . In some implementations, the deviation operation circuit 116 may add the deviation value 124 using a summation circuit. As a specific example, the weighting value output from the weighting operation circuit 114 (eg, the weighting value [a 1 *W 1 ] of the input value 108 a ) may be added to the deviation value 124 (e.g., the deviation operation circuit 116 may generate and ( a 1 *W 1 +b 1 ) biased weighted value).

存储电路118(例如,被配置为存储位或配置位)可以另外包括在硬件神经元110中。存储电路118可以包括存储一个或多个权重值或偏差值的非易失性存储器,例如MRAM位。例如,存储电路118a、118b可以存储权重值122a、122b,权重运算电路114a、114b可以分别读取所述权重值。作为另一个示例,存储电路118c可以存储偏差值124,偏差运算电路116可以读取所述偏差值。Storage circuitry 118 (eg, configured to store bits or configuration bits) may additionally be included in hardware neuron 110 . Storage circuitry 118 may include non-volatile memory, such as MRAM bits, that stores one or more weight values or bias values. For example, the storage circuits 118a and 118b can store the weight values 122a and 122b, and the weight operation circuits 114a and 114b can respectively read the weight values. As another example, storage circuit 118c may store offset value 124, which offset operation circuit 116 may read.

存储电路118可以存储单个位或者可以存储用于不同的操作配置的多个位。例如,存储电路118a可以存储第一操作条件的第一权重值、第二操作条件的第二权重值等等。如本文更详细描述的,存储电路118可以包括用于每个位的桥元件(例如,MTJ桥)和电压放大器电路。Storage circuitry 118 may store a single bit or may store multiple bits for different operating configurations. For example, storage circuit 118a may store a first weight value for a first operating condition, a second weight value for a second operating condition, and so on. As described in greater detail herein, memory circuitry 118 may include bridge elements (eg, MTJ bridges) and voltage amplifier circuits for each bit.

这样,硬件神经元110可以与多组存储电路118相关联,每组对应于不同的运算电路114、116。另外,这样,存储电路118可以靠近对应的运算电路114、116,这可以减少从存储电路118读取值的功耗和/或延迟。取决于硬件神经元110的电路布局,某些实施方案可以包括用于权重运算电路114a、114b的组合存储电路118(例如,存储电路118a、118b可以组合成一组存储电路118,其中存储电路118c是单独的一组存储电路118);或者存储电路118a、118c可以组合成一组存储电路118,但存储不同类型的值。In this manner, hardware neurons 110 may be associated with multiple sets of memory circuits 118, each set corresponding to a different arithmetic circuit 114, 116. In addition, in this way, the storage circuit 118 can be located close to the corresponding arithmetic circuit 114, 116, which can reduce power consumption and/or delay in reading values from the storage circuit 118. Depending on the circuit layout of hardware neuron 110, certain implementations may include combined memory circuits 118 for weighting circuits 114a, 114b (e.g., memory circuits 118a, 118b may be combined into a set of memory circuits 118, where memory circuit 118c is A separate set of memory circuits 118); or the memory circuits 118a, 118c may be combined into a set of memory circuits 118 but store different types of values.

存储电路118(例如,MRAM存储位或配置位)可以包括一个或多个MTJ或其他类型的电阻元件。例如,并且如本文更详细描述的,存储电路118可以包括多个MTJ的桥元件。MTJ可能具有使用产品电压漏极电源(VDD)(例如0.8V、1V、1.2V或1.5V)的写入和读取能力。Memory circuitry 118 (eg, MRAM memory bits or configuration bits) may include one or more MTJs or other types of resistive elements. For example, and as described in greater detail herein, memory circuit 118 may include multiple MTJ bridge elements. The MTJ may have write and read capabilities using the product voltage drain supply (VDD) such as 0.8V, 1V, 1.2V, or 1.5V.

如图2中进一步示出,偏差运算电路116可以将执行某些运算的结果输出到激活函数电路120,所述激活函数电路可以实现ReLU激活函数或sigmoid激活函数。激活函数电路120可以将值输出到输出层106的硬件神经元112。硬件神经元112可以包括针对硬件神经元110所描述的类似的电路配置。例如,硬件神经元112的不同的多组运算电路可以各自与一组存储电路118相关联,用于存储在硬件神经元112的输出层106的操作中使用的值。硬件神经元112的存储电路可以不同于硬件神经元110的存储电路118,例如,以有助于硬件神经元112的存储电路118靠近硬件神经元112的组件定位。As further shown in FIG. 2 , the deviation operation circuit 116 may output the results of performing certain operations to the activation function circuit 120 , which may implement a ReLU activation function or a sigmoid activation function. Activation function circuit 120 may output values to hardware neurons 112 of output layer 106 . Hardware neuron 112 may include similar circuit configurations described for hardware neuron 110 . For example, different sets of arithmetic circuits of hardware neuron 112 may each be associated with a set of storage circuits 118 for storing values used in the operation of output layer 106 of hardware neuron 112 . The storage circuitry of hardware neuron 112 may be different from the storage circuitry 118 of hardware neuron 110 , for example, to facilitate positioning of storage circuitry 118 of hardware neuron 112 close to components of hardware neuron 112 .

图3描绘了根据本公开的示例性实施方案的图1的人工神经网络100的第二硬件神经元110的示例300。例如,图3描绘了图1的人工神经网络100的硬件神经元110的功能图(例如,图3描绘了图2中描绘的硬件神经元配置的硬件神经元110的替代配置)。FIG. 3 depicts an example 300 of the second hardware neuron 110 of the artificial neural network 100 of FIG. 1 according to an exemplary embodiment of the present disclosure. For example, FIG. 3 depicts a functional diagram of hardware neuron 110 of artificial neural network 100 of FIG. 1 (eg, FIG. 3 depicts an alternative configuration of hardware neuron 110 to the hardware neuron configuration depicted in FIG. 2).

如图所示,图3的硬件神经元110可以包括与图2中示出的示例200类似的权重运算电路114a、114b、偏差运算电路116和激活函数电路120。硬件神经元110还可以包括存储电路118。然而,不是包括用于不同运算电路114、116的多组存储电路118,示例300可以包括用于存储权重值122a、122b和偏差值124的一组存储电路118。在示例300中,存储电路118可以包括迷你阵列,并且人工神经网络100的不同硬件神经元110可以包括不同的迷你阵列。在一些实施方案中,人工神经网络100可以包括分布在人工神经网络100上的多个存储电路阵列118(而不是图3中所示的单个阵列)。例如,隐藏层104的每个硬件神经元110和/或输出层106的每个硬件神经元112可以包括类似于图3中示出为存储电路118的阵列。As shown, the hardware neuron 110 of FIG. 3 may include weight operation circuits 114a, 114b, bias operation circuit 116, and activation function circuit 120 similar to the example 200 shown in FIG. 2. Hardware neuron 110 may also include memory circuitry 118 . However, rather than including multiple sets of memory circuits 118 for different arithmetic circuits 114, 116, example 300 may include one set of memory circuits 118 for storing weight values 122a, 122b and bias values 124. In example 300, storage circuitry 118 may include mini-arrays, and different hardware neurons 110 of artificial neural network 100 may include different mini-arrays. In some embodiments, artificial neural network 100 may include multiple memory circuit arrays 118 distributed over artificial neural network 100 (rather than the single array shown in Figure 3). For example, each hardware neuron 110 of the hidden layer 104 and/or each hardware neuron 112 of the output layer 106 may include an array similar to that shown as storage circuitry 118 in FIG. 3 .

图4描绘了根据本公开的示例性实施方案的硬件神经元的示例性存储电路118的配置400。例如,图4描绘了根据本公开的示例性实施方案的被配置用于读出第一值或第二值的多次可编程存储电路118(例如,存储或配置位)的电路。例如,存储电路118可以是MRAM(例如,切换MRAM或自旋转移矩(STT)MRAM)或可以被重新编程多次以表示不同值的ReRAM。图4中所示的存储电路118的电路可以读出第一值(例如,二进制0和1系统的0值)或第二值(例如,二进制0和1系统的1值)。4 depicts a configuration 400 of an exemplary storage circuit 118 of a hardware neuron in accordance with an exemplary embodiment of the present disclosure. For example, FIG. 4 depicts circuitry of a multiple-times programmable memory circuit 118 (eg, a storage or configuration bit) configured for sensing a first value or a second value, in accordance with an exemplary embodiment of the present disclosure. For example, memory circuit 118 may be a MRAM (eg, switching MRAM or spin transfer torque (STT) MRAM) or ReRAM that may be reprogrammed multiple times to represent different values. The circuitry of memory circuit 118 shown in FIG. 4 can read out a first value (eg, a 0 value in a binary system of 0s and 1s) or a second value (eg, a 1 value in a binary system of 0s and 1s).

如图所示,存储电路118可以包括MTJ桥402、电压放大器404和反相器(图4中未示出)。MTJ桥402可以包括一个或多个电阻元件408(例如,电阻元件408a、408b、408c和408d)。尽管图4将MTJ桥402示出为包括四个电阻元件408,但某些实施方案可以包括大于四个的任何数量的多个电阻元件408(例如,5个、6个、7个、8个等电阻元件)。电阻元件408可以包括MTJ或能够对电流的流动提供阻力的另一种类型的电气部件。例如,电阻元件408可以具有多个电阻状态(例如,低电阻状态(平行)Rp和高电阻状态(反平行)Rap)。As shown, memory circuit 118 may include an MTJ bridge 402, a voltage amplifier 404, and an inverter (not shown in Figure 4). MTJ bridge 402 may include one or more resistive elements 408 (eg, resistive elements 408a, 408b, 408c, and 408d). Although FIG. 4 illustrates the MTJ bridge 402 as including four resistive elements 408, certain embodiments may include any number of multiple resistive elements 408 greater than four (eg, 5, 6, 7, 8 resistive elements). Resistive element 408 may include an MTJ or another type of electrical component capable of providing resistance to the flow of electrical current. For example, resistive element 408 may have multiple resistance states (eg, a low resistance state (parallel) Rp and a high resistance state (antiparallel) Rap).

MTJ桥402还可以包括一个或多个电极412(例如,电极412a、412b、412c和412d)以将不同的电阻元件408串联或并联电连接。例如,MTJ桥402可以包括四个电阻元件,其中两个第一电阻元件串联电连接并且两个第二电阻元件串联电连接并且其中第一电阻元件与第二电阻元件并联电连接。作为具体示例,电阻元件408a、408b(形成第一组电阻元件408)可以经由电极412a串联电连接,电阻元件408c、408d(形成第二组电阻元件408)可以经由电极412b串联电连接,并且第一组和第二组电阻元件可以经由电极412c、412d并联电连接。MTJ bridge 402 may also include one or more electrodes 412 (eg, electrodes 412a, 412b, 412c, and 412d) to electrically connect different resistive elements 408 in series or parallel. For example, the MTJ bridge 402 may include four resistive elements, wherein two first resistive elements are electrically connected in series and two second resistive elements are electrically connected in series and wherein the first resistive element and the second resistive element are electrically connected in parallel. As a specific example, resistive elements 408a, 408b (forming the first set of resistive elements 408) may be electrically connected in series via electrode 412a, resistive elements 408c, 408d (forming the second set of resistive elements 408) may be electrically connected in series via electrode 412b, and One set and a second set of resistive elements may be electrically connected in parallel via electrodes 412c, 412d.

如图2中进一步示出,存储电路118可以包括一个或多个电连接410(例如,电连接410a、410b、410c、410d和410e)。电连接410a可以将电极412a电连接到电压源(图4中未示出)并且电连接410b可以将电极412b电连接到电压源。电连接410c可以将电极412c电连接到电压放大器404的输入端并且电连接410d可以将电极412d电连接到电压放大器404的输入端。电连接410e可以将电压放大器的输出端电连接到反相器(图4中未示出)。取决于反相器的栅极是打开还是闭合,反相器可能处于不同的状态。基于施加到MTJ桥402的电压,反相器可以处于指示第一值(例如,1值)的第一状态(例如,1状态)。As further shown in Figure 2, storage circuitry 118 may include one or more electrical connections 410 (eg, electrical connections 410a, 410b, 410c, 410d, and 410e). Electrical connection 410a may electrically connect electrode 412a to a voltage source (not shown in Figure 4) and electrical connection 410b may electrically connect electrode 412b to the voltage source. Electrical connection 410c may electrically connect electrode 412c to the input of voltage amplifier 404 and electrical connection 410d may electrically connect electrode 412d to the input of voltage amplifier 404. Electrical connection 410e may electrically connect the output of the voltage amplifier to the inverter (not shown in Figure 4). Depending on whether the inverter's gate is open or closed, the inverter may be in different states. Based on the voltage applied to the MTJ bridge 402, the inverter may be in a first state (eg, a 1 state) indicating a first value (eg, a 1 value).

如上所述,电阻元件408可以具有两种电阻状态(例如,高电阻状态Rap和低电阻状态Rp)。对于反相器的第一状态,电阻元件408a、408d可以处于高电阻状态并且电阻元件408b、408c可以处于低电阻状态。对于反相器的第二状态,电阻元件408a、408d可以处于低电阻状态并且电阻元件408b、408c可以处于高电阻状态。As mentioned above, the resistive element 408 may have two resistance states (eg, a high resistance state Rap and a low resistance state Rp). For the first state of the inverter, resistive elements 408a, 408d may be in a high resistance state and resistive elements 408b, 408c may be in a low resistance state. For the second state of the inverter, resistive elements 408a, 408d may be in a low resistance state and resistive elements 408b, 408c may be in a high resistance state.

在一些实施方案中,图4中所示的存储电路118的MTJ桥402可以存储一个位,并且存储电路118可以被配置有针对多个位的图4中所示的MTJ桥402的多个实例。如本文别处所述,MTJ桥402可以被读取、多次编程(MTP)和/或一次性编程(OTP)。In some embodiments, the MTJ bridge 402 of the memory circuit 118 shown in Figure 4 can store one bit, and the memory circuit 118 can be configured with multiple instances of the MTJ bridge 402 shown in Figure 4 for multiple bits. . As described elsewhere herein, the MTJ bridge 402 may be read, multiple times programmed (MTP), and/or one time programmed (OTP).

图5描绘了根据本公开的示例性实施方案的硬件神经元110的存储电路118的各种桥元件配置500。例如,不同的桥元件配置402a、402b、402c、402d和402e可以提供对不同值的存储。在存储电路118包括多个位的配置中(例如,MTJ桥402的多个实例),存储电路118可以包括多个桥元件配置500,所述桥元件配置可以各自基于配置500而被配置为相同或不同的值。在存储电路118包括单个位的其他配置中(例如,MTJ桥402的单个实例),存储位可以被多次编程到配置500中以用于存储不同的值。FIG. 5 depicts various bridge element configurations 500 for memory circuitry 118 of hardware neuron 110 in accordance with an exemplary embodiment of the present disclosure. For example, different bridge element configurations 402a, 402b, 402c, 402d, and 402e may provide storage of different values. In configurations in which memory circuit 118 includes multiple bits (eg, multiple instances of MTJ bridge 402 ), memory circuit 118 may include multiple bridge element configurations 500 that may each be configured identically based on configuration 500 or different values. In other configurations in which memory circuit 118 includes a single bit (eg, a single instance of MTJ bridge 402), the memory bit may be programmed multiple times into configuration 500 for storing different values.

桥元件配置500可以基于电阻元件408的不同电阻(Rp和Rap)配置而存储不同的值。例如,一个或多个电阻器和/或有效电阻器(例如,四个MTJ作为电阻元件408)的电阻值可以被配置为输出位值的各种组合。单个MTJ桥402可以基于其配置的(例如,存储的)电阻值而输出两个或更多个状态。具有多个阈值电平的电压放大器可以用于从相同的MTJ桥元件402输出多个状态(例如,多于两个输出)。Bridge element configuration 500 may store different values based on different resistance (Rp and Rap) configurations of resistive element 408 . For example, the resistance values of one or more resistors and/or active resistors (eg, four MTJs as resistive elements 408) may be configured to output various combinations of bit values. A single MTJ bridge 402 may output two or more states based on its configured (eg, stored) resistance value. Voltage amplifiers with multiple threshold levels can be used to output multiple states (eg, more than two outputs) from the same MTJ bridge element 402 .

因此,一个或多个配置位可以使用MTJ桥402来使用各种电阻配置位存储更大量或更复杂的数据。例如,人工神经网络100可能必须使用多个位来存储权重值和/或偏差值。可以使用电阻元件408的一种或多种配置(例如,通过修改电阻值)来使用多个位存储权重值和/或偏差值。这样,桥元件402可用于基于不同配置500而存储一位或多位数据。在一些实施方案中,配置500可以包括一个或多个感测电路。Therefore, one or more configuration bits may use the MTJ bridge 402 to store larger amounts or more complex data using various resistor configuration bits. For example, artificial neural network 100 may have to use multiple bits to store weight values and/or bias values. One or more configurations of resistive element 408 may be used (eg, by modifying the resistance value) to store weight values and/or bias values using multiple bits. In this manner, bridge element 402 may be used to store one or more bits of data based on different configurations 500 . In some implementations, configuration 500 may include one or more sensing circuits.

这样,虽然人工神经网络100可能必须在整个人工神经网络100上使用大量存储空间(例如,千兆位或更多),但本文描述的某些实施方案可以用于靠近硬件神经元110、112(或硬件神经元110、112的运算电路)的小存储空间(例如,1至8个MRAM位)。这可以有助于基于硬件神经元110、112的操作而不是基于整个人工神经网络100的操作来确定存储电路(例如,存储电路118)的大小。这可以节省芯片空间,允许硬件神经元110、112更快和以更低功率存取所存储的信息,等等。As such, while artificial neural network 100 may have to use large amounts of storage space (eg, gigabit or more) across artificial neural network 100, certain embodiments described herein may be used in close proximity to hardware neurons 110, 112 ( or arithmetic circuitry of hardware neurons 110, 112) with a small storage space (eg, 1 to 8 MRAM bits). This may facilitate sizing a memory circuit (eg, memory circuit 118) based on the operation of hardware neurons 110, 112 rather than on the operation of the entire artificial neural network 100. This can save chip space, allow hardware neurons 110, 112 to access stored information faster and at lower power, etc.

图6A描绘了根据本公开的示例性实施方案的被配置用于写入第一值的硬件神经元(例如,硬件神经元110或硬件神经元112)的多次可编程存储电路118的示例600。示例600可以包括以与图4中所示的配置400类似的方式配置的MTJ桥402、电压放大器404、反相器、电阻元件408、电连接410和电极412(为阐释目的,其中一些未在图6中示出)。FIG. 6A depicts an example 600 of a multiple-time programmable storage circuit 118 configured to write a first value to a hardware neuron (eg, hardware neuron 110 or hardware neuron 112 ) in accordance with an exemplary embodiment of the present disclosure. . Example 600 may include an MTJ bridge 402, voltage amplifier 404, inverter, resistive element 408, electrical connections 410, and electrodes 412 configured in a manner similar to the configuration 400 shown in FIG. 4 (some of which are not shown for illustration purposes). shown in Figure 6).

基于对电极412c(例如,第一底部电极)施加的正Vdd和对电极412d(例如,第二底部电极)施加的接地电压(GND),反相器(图6A中未示出)可以处于指示第一值(例如,0值)的第一状态(例如,0状态)。在这种状态下,基于施加Vdd和GND,电流可以从电极412c向上流过电阻元件408a并向下流过电阻元件408c,通过电极412a、412b(例如,顶部电极),然后向下通过电阻元件408b并向上通过电阻元件408d到达电极412d。对电极412c施加的正Vdd可以高于电阻元件的开关电压,并且低于电阻元件的击穿电压。Based on positive Vdd applied to electrode 412c (eg, first bottom electrode) and ground voltage (GND) applied to electrode 412d (eg, second bottom electrode), the inverter (not shown in FIG. 6A ) may be in the indicated A first state (eg, 0 state) of a first value (eg, 0 value). In this state, upon application of Vdd and GND, current can flow from electrode 412c up through resistive element 408a and down through resistive element 408c, through electrodes 412a, 412b (eg, top electrode), and then down through resistive element 408b and upward through resistive element 408d to electrode 412d. The positive Vdd applied to electrode 412c may be higher than the switching voltage of the resistive element and lower than the breakdown voltage of the resistive element.

转向图6B,描绘了根据本公开的示例性实施方案的被配置为写入第二值的多次可编程存储电路118的电路的示例600。示例600可以包括以与图6B中所示的示例600类似的方式配置的MTJ桥402、电压放大器404、反相器、电阻元件408、电连接410和电极412(为阐释目的,其中一些未在图6B中示出)。Turning to FIG. 6B , depicted is an example 600 of a circuit of the multi-times programmable memory circuit 118 configured to write a second value in accordance with an exemplary embodiment of the present disclosure. Example 600 may include an MTJ bridge 402, voltage amplifier 404, inverter, resistive element 408, electrical connections 410, and electrodes 412 configured in a manner similar to example 600 shown in FIG. 6B (some of which are not shown for illustration purposes). shown in Figure 6B).

基于对电极412d(例如,第二底部电极)施加的正Vdd和对电极412c(例如,第一底部电极)施加的GND电压,反相器(图6B中未示出)可以处于指示第二值(例如,1值)的第二状态(例如,1状态)。在这种状态下,基于施加Vdd和GND,电流可以从电极412d向上流过电阻元件408b并向下流过电阻元件408d,通过电极412a、412b(例如,顶部电极),然后向下通过电阻元件408a并向上通过电阻元件408c到达电极412c。Based on the positive Vdd applied to electrode 412d (eg, the second bottom electrode) and the GND voltage applied to electrode 412c (eg, the first bottom electrode), the inverter (not shown in FIG. 6B ) may be in a state indicating a second value (e.g., 1 value). In this state, upon application of Vdd and GND, current can flow from electrode 412d up through resistive element 408b and down through resistive element 408d, through electrodes 412a, 412b (eg, top electrode), and then down through resistive element 408a and upward through resistive element 408c to electrode 412c.

图7A描绘了根据本公开的示例性实施方案的被配置用于读出第一值的硬件神经元的一次性可编程存储电路118的电路的示例700。例如,存储电路118可能不能重新编程为另一个值。示例700可以包括以与图4所示的配置400类似的方式配置的MTJ桥402、电压放大器404、反相器406、电阻元件408、电连接410和电极412。然而,不是使电阻元件408b、408c处于低或高电阻状态,电阻元件408b、408c可以被短路(在图7A中由“短路”标识)。这些电阻元件的短路可以使反相器406永久处于指示第一值(例如,1值)的第一状态(例如,1状态)。7A depicts an example 700 of circuitry for a one-time programmable memory circuit 118 of a hardware neuron configured to sense a first value in accordance with an exemplary embodiment of the present disclosure. For example, memory circuit 118 may not be reprogrammable to another value. Example 700 may include an MTJ bridge 402, voltage amplifier 404, inverter 406, resistive element 408, electrical connection 410, and electrode 412 configured in a manner similar to configuration 400 shown in FIG. 4 . However, instead of having the resistive elements 408b, 408c in a low or high resistance state, the resistive elements 408b, 408c can be short-circuited (identified by "Short Circuit" in Figure 7A). Shorting these resistive elements may permanently place inverter 406 in a first state (eg, 1 state) indicating a first value (eg, 1 value).

转向图7B,描绘了根据本公开的示例性实施方案的被配置用于读出第二值的硬件神经元(例如,硬件神经元110或硬件神经元112)的一次性可编程存储电路118的电路的示例700。例如,存储电路118可能不能重新编程为另一个值。示例700可以包括以与图4所示的示例400类似的方式配置的MTJ桥402、电压放大器404、反相器406、电阻元件408、电连接410和电极412。然而,不是使电阻元件408a和408d处于低或高电阻状态,电阻元件408a和408d可以被短路。这些电阻元件408的短路可以使反相器406永久处于指示第二值(例如,0值)的第二状态(例如,0状态)。Turning to FIG. 7B , depicted is a one-time programmable memory circuit 118 of a hardware neuron (eg, hardware neuron 110 or hardware neuron 112 ) configured to sense a second value in accordance with an exemplary embodiment of the present disclosure. Example of circuit 700. For example, memory circuit 118 may not be reprogrammable to another value. Example 700 may include an MTJ bridge 402, voltage amplifier 404, inverter 406, resistive element 408, electrical connection 410, and electrode 412 configured in a similar manner to example 400 shown in FIG. 4 . However, rather than leaving resistive elements 408a and 408d in a low or high resistance state, resistive elements 408a and 408d can be shorted. Shorting these resistive elements 408 may permanently leave the inverter 406 in a second state (eg, a 0 state) indicating a second value (eg, a 0 value).

图8A描绘了根据本公开的示例性实施方案的使用第一值对存储位的存储电路118进行的示例性一次性编程800。所述电路可以包括类似于本文别处所描述的MTJ桥402、电压放大器404、反相器、电阻元件408、电连接410和电极412(出于阐释目的,其中一些未在图8A中示出)。电阻元件408a、408b可以形成第一组电阻元件408并且电阻元件408c、408d可以形成第二组电阻元件408。8A depicts an exemplary one-time programming 800 of a storage circuit 118 using a first value in accordance with an exemplary embodiment of the present disclosure. The circuit may include an MTJ bridge 402, voltage amplifier 404, inverter, resistive element 408, electrical connections 410, and electrodes 412 similar to those described elsewhere herein (some of which are not shown in Figure 8A for illustration purposes) . Resistive elements 408a, 408b may form a first set of resistive elements 408 and resistive elements 408c, 408d may form a second set of resistive elements 408.

所述编程可以包括用于以与上文结合图7的示例700所描述的方式类似的方式来配置电路的两个步骤802、804。第一步骤802可以包括在电阻元件408两端施加各种电压(例如,同时或不同时间)。例如,可以在电阻元件408b(第一组电阻元件408中的一个)两端施加相对较高(与Vdd相比)的编程电压(Vprog)806以使电阻元件408b短路。这样,正电压可以从电极412d跨电阻元件408b施加到电极412a以使用第一值对存储电路118进行编程。The programming may include two steps 802, 804 for configuring the circuit in a manner similar to that described above in conjunction with example 700 of Figure 7. The first step 802 may include applying various voltages across the resistive element 408 (eg, simultaneously or at different times). For example, a relatively high (compared to Vdd) programming voltage (Vprog) 806 may be applied across resistive element 408b (one of the first set of resistive elements 408) to short-circuit resistive element 408b. In this manner, a positive voltage may be applied from electrode 412d across resistive element 408b to electrode 412a to program memory circuit 118 with the first value.

第二步骤804可以包括在电阻元件408两端施加各种电压(例如,同时或不同时间)。例如,可以在电阻元件408c(第二组电阻元件408中的一个)两端施加相对较高(与Vdd相比)的编程电压(Vprog)814以使电阻元件408c短路。这样,正电压可以从电极412b跨电阻元件408c施加到电极412c以使用第一值对存储电路118进行编程。The second step 804 may include applying various voltages across the resistive element 408 (eg, simultaneously or at different times). For example, a relatively high (compared to Vdd) programming voltage (Vprog) 814 may be applied across resistive element 408c (one of the second set of resistive elements 408) to short circuit resistive element 408c. In this manner, a positive voltage may be applied from electrode 412b across resistive element 408c to electrode 412c to program memory circuit 118 with the first value.

转向图8B,描绘了根据本公开的示例性实施方案的使用第二值对存储位的存储电路118进行的示例性一次性编程800。所述电路可以包括类似于本文别处所描述的MTJ桥402、电压放大器404、反相器、电阻元件408、电连接410和电极412(出于阐释目的,其中一些未在图8B中示出)。电阻元件408a、408b可以形成第一组电阻元件408并且电阻元件408c、408d可以形成第二组电阻元件408。Turning to FIG. 8B , an exemplary one-time programming 800 of a storage circuit 118 using a second value is depicted in accordance with an exemplary embodiment of the present disclosure. The circuit may include an MTJ bridge 402, voltage amplifier 404, inverter, resistive element 408, electrical connections 410, and electrodes 412 similar to those described elsewhere herein (some of which are not shown in Figure 8B for illustration purposes) . Resistive elements 408a, 408b may form a first set of resistive elements 408 and resistive elements 408c, 408d may form a second set of resistive elements 408.

所述编程可以包括用于以与上文结合图7B的示例700所描述的方式类似的方式来配置电路的两个步骤816、818。第一步骤816可以包括在电阻元件408两端施加各种电压(例如,同时或不同时间)。例如,可以在电阻元件408a(第一组电阻元件408中的一个)两端施加相对较高的Vprog 820以使电阻元件408a短路。这样,正电压可以从电极412c跨电阻元件408a施加到电极412a以使用第二值对存储电路118进行编程。The programming may include two steps 816, 818 for configuring the circuit in a manner similar to that described above in conjunction with example 700 of Figure 7B. The first step 816 may include applying various voltages across the resistive element 408 (eg, simultaneously or at different times). For example, a relatively high Vprog 820 may be applied across resistive element 408a (one of the first set of resistive elements 408) to short circuit resistive element 408a. In this manner, a positive voltage may be applied from electrode 412c across resistive element 408a to electrode 412a to program memory circuit 118 with the second value.

第二步骤818可以包括在电阻元件408两端施加各种电压(例如,同时或不同时间)。例如,可以在电阻元件408d(第二组电阻元件408中的一个)两端施加相对较高的Vprog826以使电阻元件408d短路。这样,正电压可以从电极412b跨电阻元件408d施加到电极412d以使用第二值对存储电路118进行编程。The second step 818 may include applying various voltages across the resistive element 408 (eg, simultaneously or at different times). For example, a relatively high Vprog 826 may be applied across resistive element 408d (one of the second set of resistive elements 408) to short circuit resistive element 408d. In this manner, a positive voltage may be applied from electrode 412b across resistive element 408d to electrode 412d to program memory circuit 118 with the second value.

图9描绘了根据本公开的示例性实施方案的硬件神经元(例如,硬件神经元110或硬件神经元112)的存储电路118的示例性配置900。例如,图9示出了图4至图8b中所示的存储电路118的配置的替代方案。示例配置900可以包括各种读取电路组902。例如,存储电路118可以包括包含两个晶体管的读取电路902a、包含一个晶体管的读取电路902b和包含一个晶体管的读取电路902c。读取电路902a可以经由电压源(Vsup)连接电连接到交叉耦合反相器电路904。交叉耦合反相器电路904可以包括四个晶体管并且可以包括输出电路906a(在图9中标记为“out”)和906b(在图9中标记为“out_b”)。读取电路902b可以与存储位电路908a相关联并且可以读取存储在存储位电路908a中的值。读取电路902c可以与存储位电路908b相关联并且可以读取存储在存储位电路908b中的值。9 depicts an exemplary configuration 900 of storage circuitry 118 of a hardware neuron (eg, hardware neuron 110 or hardware neuron 112) according to an exemplary embodiment of the present disclosure. For example, Figure 9 shows an alternative configuration to the memory circuit 118 shown in Figures 4-8b. Example configuration 900 may include various read circuit sets 902 . For example, memory circuit 118 may include read circuit 902a including two transistors, read circuit 902b including one transistor, and read circuit 902c including one transistor. Read circuit 902a may be electrically connected to cross-coupled inverter circuit 904 via a voltage source (Vsup) connection. Cross-coupled inverter circuit 904 may include four transistors and may include output circuits 906a (labeled "out" in Figure 9) and 906b (labeled "out_b" in Figure 9). Read circuit 902b may be associated with storage bit circuit 908a and may read the value stored in storage bit circuit 908a. Read circuit 902c may be associated with storage bit circuit 908b and may read the value stored in storage bit circuit 908b.

交叉耦合反相器电路904可以产生指示MRAM存储位状态的输出out和out_b(out_b可以是out输出的相反极性信号)。在读取操作期间,读取电路902a可以从VDD转变为接地(Gnd),导致Vsup从Gnd转变为VDD并且导致out/out_b不再被下拉到Gnd。存储位电路908a和908b之间的电流差异可能导致out和out_b电路提供全摆幅(Gnd或VDD)输出。存储位电路908a和908b中的MTJ状态可以产生电流差。存储位电路908a或908b可用单个MTJ或一系列两个或更多个MTJ来实施以减少MTJ变化。图9中所示的实施方案的替代配置是可能的。例如,MTJ桥可以以任何其他配置连接到交叉耦合反相器电路904以对电压或电流差做出响应。Cross-coupled inverter circuit 904 may generate outputs out and out_b (out_b may be the opposite polarity signal of the out output) indicating the state of the MRAM storage bits. During a read operation, read circuit 902a may transition from VDD to ground (Gnd), causing Vsup to transition from Gnd to VDD and causing out/out_b to no longer be pulled down to Gnd. The current difference between memory bit circuits 908a and 908b may cause the out and out_b circuits to provide full swing (Gnd or VDD) outputs. The MTJ state in memory bit circuits 908a and 908b can create a current difference. Memory bit circuit 908a or 908b may be implemented with a single MTJ or a series of two or more MTJs to reduce MTJ variation. Alternative configurations to the embodiment shown in Figure 9 are possible. For example, the MTJ bridge may be connected to the cross-coupled inverter circuit 904 in any other configuration to respond to voltage or current differences.

存储位电路908a和908b中的MTJ的串联连接可以帮助确保通过任何MTJ的读取电流被最小化以避免存储的MTJ状态的任何读取中断。在写入操作期间,其他p型金属氧化物半导体(PMOS)和n型金属氧化物半导体(NMOS)晶体管(图9中未示出)可连接到MTJ桥以一次写入一个或多个MTJ(例如,一次写入两个或两个的倍数的MTJ)。因此,写电流可以以类似于图6a至图7b所示的方式通过至少两个串联的MTJ。这样,某些实施方案可以在读取存储位之后提供无静态电流消耗。替代实施方案(此处未示出)可以用于执行如上所述的相同功能,其中交叉耦合反相器电路类似于图9所示的交叉耦合反相器电路。例如,MTJ桥908a、908b可以位于Vsup节点与交叉耦合反相器电路904之间。充当跟随器电路的额外NMOS晶体管可以控制在MTJ桥908a、908b两端施加的电压。The series connection of the MTJs in the storage bit circuits 908a and 908b can help ensure that the read current through any MTJ is minimized to avoid any read interruption of the stored MTJ state. During write operations, other p-type metal oxide semiconductor (PMOS) and n-type metal oxide semiconductor (NMOS) transistors (not shown in Figure 9) can be connected to the MTJ bridge to write to one or more MTJs at a time ( For example, writing two or multiples of two MTJs at a time). Therefore, the write current can pass through at least two MTJs in series in a manner similar to that shown in Figures 6a-7b. In this way, certain implementations may provide no quiescent current consumption after reading a memory bit. An alternative implementation (not shown here) may be used to perform the same functionality as described above, with a cross-coupled inverter circuit similar to the cross-coupled inverter circuit shown in FIG. 9 . For example, MTJ bridges 908a, 908b may be located between the Vsup node and the cross-coupled inverter circuit 904. Additional NMOS transistors acting as follower circuits can control the voltage applied across the MTJ bridges 908a, 908b.

图10描绘了根据本公开的一个方面的用于操作硬件神经元110的示例性方法1000的流程图。例如,方法1000可以结合人工神经网络100的操作来使用硬件神经元110。Figure 10 depicts a flowchart of an exemplary method 1000 for operating hardware neurons 110 in accordance with one aspect of the present disclosure. For example, method 1000 may use hardware neurons 110 in conjunction with the operation of artificial neural network 100 .

在步骤1002中,方法1000可以包括在装置的权重运算电路处经由所述装置的输入电路接收值。例如,硬件神经元110可以在硬件神经元110的权重运算电路114处经由输入层102的输入电路接收值108。在上述图2和图3的背景中,硬件神经元110可以在权重运算电路114处分别接收值108a和108b。作为人工神经网络100的训练过程的一部分,硬件神经元110可以接收所述值,并且在整个训练过程中可以接收各种输入值108。In step 1002, method 1000 may include receiving a value at a weighting circuit of a device via an input circuit of the device. For example, hardware neuron 110 may receive value 108 via an input circuit of input layer 102 at weight operation circuit 114 of hardware neuron 110 . In the context of Figures 2 and 3 above, hardware neuron 110 may receive values 108a and 108b, respectively, at weight operation circuit 114. Hardware neurons 110 may receive the values as part of the training process of artificial neural network 100 and may receive various input values 108 throughout the training process.

在步骤1004中,方法1000可以包括在权重运算电路处将来自所述装置的存储电路的权重值应用于所述值以形成加权值。例如,硬件神经元110可以在权重运算电路114处应用来自硬件神经元110的存储电路118的权重值122以形成加权值。所述应用可以包括硬件神经元110使用权重运算电路114将值108乘以权重值122。例如,并且如本文别处所述,硬件神经元110可以将值a1乘以权重值W1以形成乘积a1W1。在上述图2的背景中,硬件神经元110可以在权重运算电路114a处将来自存储电路118a的权重值122a应用于输入值108a并且可以在权重运算电路114b处将来自存储电路118b的权重值122b应用于输入值108b。在上述图3的背景中,硬件神经元110可以在权重运算电路114a处将来自存储电路118的权重值122a应用于输入值108a并且可以在权重运算电路114b处将来自存储电路118的权重值122b应用于输入值108b。In step 1004, method 1000 may include applying, at a weighting circuit, a weight value from a memory circuit of the device to the value to form a weighted value. For example, hardware neuron 110 may apply weight values 122 from storage circuit 118 of hardware neuron 110 at weight operation circuit 114 to form weighted values. The application may include hardware neuron 110 multiplying value 108 by weight value 122 using weighting circuit 114 . For example, and as described elsewhere herein, hardware neuron 110 may multiply value a 1 by weight value W 1 to form product a 1 W 1 . In the context of FIG. 2 above, hardware neuron 110 may apply weight value 122a from storage circuit 118a to input value 108a at weight operation circuit 114a and may apply weight value 122b from storage circuit 118b at weight operation circuit 114b. Applies to input value 108b. In the context of FIG. 3 above, hardware neuron 110 may apply weight value 122a from storage circuit 118 to input value 108a at weight operation circuit 114a and may apply weight value 122b from storage circuit 118 at weight operation circuit 114b. Applies to input value 108b.

在一些实施方案中,结合将权重值122应用于输入值108,权重运算电路114可以从存储电路118读取权重值122,可以从存储电路118接收权重值122的传输,等等。In some embodiments, in conjunction with applying the weight value 122 to the input value 108, the weight operation circuit 114 may read the weight value 122 from the storage circuit 118, may receive a transmission of the weight value 122 from the storage circuit 118, and so on.

方法1000可以包括在步骤1006将加权值提供到所述装置的偏差运算电路。例如,硬件神经元110可以将加权值提供到硬件神经元110的偏差运算电路116。作为具体示例,硬件神经元110可以在将权重值122应用于输入值108之后将来自权重运算电路114的加权值a1W1提供到偏差运算电路116。在图2和图3的背景中,硬件神经元110可以将在权重运算电路114a、114b处计算出的加权值提供到偏差运算电路116。Method 1000 may include providing, at step 1006, a weighted value to a bias operation circuit of the device. For example, hardware neuron 110 may provide weighted values to bias operation circuitry 116 of hardware neuron 110 . As a specific example, hardware neuron 110 may provide weight value a 1 W 1 from weight operation circuit 114 to bias operation circuit 116 after applying weight value 122 to input value 108 . In the context of Figures 2 and 3, the hardware neuron 110 may provide the weighting values calculated at the weighting circuits 114a, 114b to the biasing circuit 116.

在步骤1008,方法1000可以包括在偏差运算电路处将来自存储电路的偏差值应用于加权值以形成有偏加权值。例如,硬件神经元110可以在偏差运算电路116处将来自存储电路118的偏差值124应用于加权值以形成有偏加权值。在图2的背景中,硬件神经元110可以在偏差运算电路116处将来自存储电路118c的偏差值124应用于从权重运算电路114a、114b接收到的加权值。作为具体示例,偏差运算电路116可以将偏差值124加到来自权重运算电路114的加权值上(例如,偏差运算电路116可以产生和(a1*W1+b1)的有偏加权值)。在图3的背景中,硬件神经元110可以在偏差运算电路116处将来自存储电路118的偏差值124应用于从权重运算电路114a、114b接收到的加权值。At step 1008, method 1000 may include applying the bias value from the storage circuit to the weighted value at the bias operation circuit to form the biased weighted value. For example, hardware neuron 110 may apply bias value 124 from storage circuit 118 to a weighted value at bias operation circuit 116 to form a biased weighted value. In the context of Figure 2, the hardware neuron 110 may apply the bias value 124 from the storage circuit 118c at the bias operation circuit 116 to the weighted values received from the weight operation circuits 114a, 114b. As a specific example, bias operation circuit 116 may add bias value 124 to the weighted value from weight operation circuit 114 (e.g., bias operation circuit 116 may generate a biased weighted value sum (a 1 *W 1 +b 1 )) . In the context of Figure 3, the hardware neuron 110 may apply the bias value 124 from the storage circuit 118 at the bias operation circuit 116 to the weighted values received from the weight operation circuits 114a, 114b.

方法1000可以包括在1010将有偏加权值提供到所述装置的激活函数电路。例如,硬件神经元110可以在将偏差值124应用于来自权重运算电路114的加权值之后将来自偏差运算电路116的有偏加权值提供到激活函数电路120。在图2和图3的背景中,硬件神经元110可以从偏差运算电路116向激活函数电路120提供和(a1*W1+b1)与和(a2*W2+b2)。Method 1000 may include providing, at 1010, a biased weight value to an activation function circuit of the device. For example, hardware neuron 110 may provide the biased weighted value from bias operation circuit 116 to activation function circuit 120 after applying bias value 124 to the weighted value from weight operation circuit 114 . In the context of FIGS. 2 and 3 , hardware neuron 110 may provide sum (a 1 *W 1 +b 1 ) and sum (a 2 *W 2 +b 2 ) from bias operation circuit 116 to activation function circuit 120 .

方法1000可以包括在1012将来自激活函数电路的输出提供到所述装置的输出电路。例如,硬件神经元110可以将来自激活函数电路120的输出提供到硬件神经元110的输出电路,然后提供到输出层106的硬件神经元112。Method 1000 may include providing, at 1012, an output from an activation function circuit to an output circuit of the device. For example, hardware neuron 110 may provide the output from activation function circuit 120 to an output circuit of hardware neuron 110 and then to hardware neuron 112 of output layer 106 .

此处描述的某些实施方案可以包括额外的或替代的方面。作为一个示例方面,存储电路118可以用更新的权重值122或偏差值124重新编程,并且可以基于更新的值重新执行方法1000的某些操作。Certain embodiments described herein may include additional or alternative aspects. As an example aspect, storage circuit 118 may be reprogrammed with updated weight values 122 or bias values 124 and certain operations of method 1000 may be re-performed based on the updated values.

本文描述的某些实施方案能够容忍人工神经网络100应用中的高错误率。这样,可以基于容错度来识别可接受的和不可接受的错误率,并且在一些实施方案中,可以基于高容错度来省略纠错码(ECC),或者可实施纠错码(ECC),使得如果满足高容错度,则激活ECC。因此,存储位可以根据所需的误码率实现ECC位和ECC校正。这可以节省与实施ECC或以较低错误率阈值实施ECC相关联的资源和/或芯片空间。Certain implementations described herein are capable of tolerating high error rates in artificial neural network 100 applications. In this way, acceptable and unacceptable error rates can be identified based on error tolerance, and in some embodiments, error correcting code (ECC) can be omitted based on high error tolerance, or error correcting code (ECC) can be implemented such that If high fault tolerance is met, ECC is activated. Therefore, the memory bits can implement ECC bits and ECC correction according to the required bit error rate. This can save resources and/or chip space associated with implementing ECC or implementing ECC with a lower error rate threshold.

这样,本文描述的某些实施方案可以使用接近于要使用某些值的电路的电路来提供对所述值的片上存储。使用此类片上存储,可以减少检索、存储和/或更新此类值的时间和计算资源成本(例如,功耗)。本文公开的某些实施方案,例如基于MTJ的电路配置,可以使得每个MTJ桥实现多位存储。另外地或替代地,对存储器的片上存取可以减少或消除原本会与外部存储器存取相关联的连接丢失的风险。另外地或替代地,某些实施方案可以增强受训网络的权重值和/或偏差值的安全性,例如在推理应用中。另外地或替代地,某些实施方案可以实现在MTP模式下对存储位进行写入,诸如在训练应用中,与使用片外非易失性存储器相比,这样可以节省功率和/或减少延迟。例如,在学习应用中,权重值122和偏差值124可能需要不断调整,因此导致频繁的存储器存取;并且使多次可编程存储电路118位于操作电路114、116附近可以减少训练时间和与训练相关的功耗。As such, certain embodiments described herein may provide on-chip storage of certain values using circuitry proximate to the circuitry in which the values are to be used. Using such on-chip storage, the time and computational resource costs (e.g., power consumption) of retrieving, storing, and/or updating such values can be reduced. Certain implementations disclosed herein, such as MTJ-based circuit configurations, may enable multiple bits of storage per MTJ bridge. Additionally or alternatively, on-chip access to memory may reduce or eliminate the risk of connection loss that would otherwise be associated with external memory access. Additionally or alternatively, certain embodiments may enhance the security of weight values and/or bias values of a trained network, such as in inference applications. Additionally or alternatively, certain embodiments may enable writing of memory bits in MTP mode, such as in training applications, which may save power and/or reduce latency compared to using off-chip non-volatile memory . For example, in learning applications, the weight values 122 and bias values 124 may need to be continuously adjusted, thus resulting in frequent memory accesses; and locating the multi-time programmable memory circuit 118 near the operating circuits 114, 116 can reduce training time and training. associated power consumption.

在一个实施方案中,一种装置可包括:输入电路;权重运算电路,所述权重运算电路电连接到所述输入电路;偏差运算电路,所述偏差运算电路电连接到所述权重运算电路;存储电路,所述存储电路电连接到所述权重运算电路和所述偏差运算电路;以及激活函数电路,所述激活函数电路电连接到所述偏差运算电路,其中至少所述权重运算电路、所述偏差运算电路和所述存储电路位于同一个芯片上。In one embodiment, an apparatus may include: an input circuit; a weight operation circuit electrically connected to the input circuit; a deviation operation circuit electrically connected to the weight operation circuit; a storage circuit, the storage circuit is electrically connected to the weight operation circuit and the deviation operation circuit; and an activation function circuit, the activation function circuit is electrically connected to the deviation operation circuit, wherein at least the weight operation circuit, the deviation operation circuit The deviation operation circuit and the storage circuit are located on the same chip.

所述装置的各种实施方案可包括:其中所述权重运算电路包括第一权重运算电路和第二权重运算电路,并且其中所述存储电路包括电连接到所述第一权重运算电路的第一存储电路、电连接到所述第二权重运算电路的第二存储电路以及电连接到所述偏差运算电路的第三存储电路;其中所述权重运算电路包括第一权重运算电路和第二权重运算电路,并且其中所述存储电路电连接到所述第一权重运算电路、所述第二权重运算电路和所述偏差运算电路;其中所述存储电路包括一个或多个存储位;其中所述一个或多个存储位各自包括一个或多个电阻元件和电压放大器;其中所述一个或多个电阻元件包括至少四个电阻元件,其中至少两个第一电阻元件串联电连接并且至少两个第二电阻元件串联电连接,其中所述至少两个第一电阻元件与所述至少两个第二电阻元件并联电连接,并且其中所述电压放大器的输入端电连接到所述至少两个第一电阻元件之间的第一电极并且连接到所述至少两个第二电阻元件之间的第二电极;其中所述一个或多个电阻元件中的每一者包括磁隧道结(MTJ);其中所述一个或多个存储位包括在单个位阵列中;其中所述装置包括在人工神经网络中的硬件神经元;所述装置还包括电连接到所述激活函数电路的输出电路;其中所述一个或多个存储位中的每一者包括:第一组电阻元件和第二组电阻元件,电连接到所述第一组电阻元件的第一读取电路和电连接到所述第二组电阻元件的第二读取电路,交叉耦合反相器电路,所述交叉耦合反相器电路电连接到所述第一读取电路和所述第二读取电路,以及第三读取电路,所述第三读取电路电连接到所述交叉耦合反相器电路。Various implementations of the apparatus may include: wherein the weighting circuit includes a first weighting circuit and a second weighting circuit, and wherein the storage circuit includes a first weighting circuit electrically connected to the first weighting circuit. a storage circuit, a second storage circuit electrically connected to the second weight operation circuit, and a third storage circuit electrically connected to the deviation operation circuit; wherein the weight operation circuit includes a first weight operation circuit and a second weight operation circuit circuit, and wherein the storage circuit is electrically connected to the first weight operation circuit, the second weight operation circuit and the deviation operation circuit; wherein the storage circuit includes one or more storage bits; wherein the one or a plurality of storage bits each including one or more resistive elements and a voltage amplifier; wherein the one or more resistive elements include at least four resistive elements, wherein at least two first resistive elements are electrically connected in series and at least two second resistive elements The resistive elements are electrically connected in series, wherein the at least two first resistive elements are electrically connected in parallel with the at least two second resistive elements, and wherein the input terminal of the voltage amplifier is electrically connected to the at least two first resistors. a first electrode between the elements and connected to a second electrode between the at least two second resistive elements; wherein each of the one or more resistive elements includes a magnetic tunnel junction (MTJ); wherein the The one or more storage bits are included in a single bit array; wherein the device includes hardware neurons in an artificial neural network; the device further includes an output circuit electrically connected to the activation function circuit; wherein the one Each of the or plurality of storage bits includes a first set of resistive elements and a second set of resistive elements, a first read circuit electrically connected to the first set of resistive elements and a first read circuit electrically connected to the second set of resistive elements. a second read circuit of the element, a cross-coupled inverter circuit electrically connected to the first read circuit and the second read circuit, and a third read circuit, the The third read circuit is electrically connected to the cross-coupled inverter circuit.

在另一个实施方案中,一种用于人工神经网络的神经元装置可包括:输入电路;权重运算电路,所述权重运算电路电连接到所述输入电路;偏差运算电路,所述偏差运算电路电连接到所述权重运算电路;存储电路,所述存储电路电连接到所述权重运算电路和所述偏差运算电路;以及激活函数电路,所述激活函数电路电连接到所述偏差运算电路,其中至少所述权重运算电路、所述偏差运算电路和所述存储电路位于同一个芯片上。In another embodiment, a neuron device for an artificial neural network may include: an input circuit; a weight operation circuit electrically connected to the input circuit; and a deviation operation circuit, the deviation operation circuit Electrically connected to the weight operation circuit; a storage circuit, the storage circuit is electrically connected to the weight operation circuit and the deviation operation circuit; and an activation function circuit, the activation function circuit is electrically connected to the deviation operation circuit, Wherein at least the weight calculation circuit, the deviation calculation circuit and the storage circuit are located on the same chip.

所述神经元装置的各种实施方案可包括:其中所述权重运算电路包括第一权重运算电路和第二权重运算电路,并且其中所述存储电路包括电连接到所述第一权重运算电路的第一存储电路、电连接到所述第二权重运算电路的第二存储电路以及电连接到所述偏差运算电路的第三存储电路;其中所述权重运算电路包括第一权重运算电路和第二权重运算电路,并且其中所述存储电路电连接到所述第一权重运算电路、所述第二权重运算电路和所述偏差运算电路;其中所述存储电路包括一个或多个存储位,其中所述一个或多个存储位中的每一者包括一个或多个电阻元件和电压放大器;其中所述一个或多个电阻元件包括至少四个电阻元件,其中至少两个第一电阻元件串联电连接并且至少两个第二电阻元件串联电连接,其中所述至少两个第一电阻元件与所述至少两个第二电阻元件并联电连接,并且其中所述电压放大器的输入端电连接到所述至少两个第一电阻元件之间的第一电极并且连接到所述至少两个第二电阻元件之间的第二电极;其中所述一个或多个存储位包括在单个位阵列中;所述神经元装置还包括电连接到所述激活函数电路的输出电路;其中所述一个或多个存储位中的每一者包括:第一组电阻元件和第二组电阻元件,电连接到所述第一组电阻元件的第一读取电路和电连接到所述第二组电阻元件的第二读取电路,交叉耦合反相器电路,所述交叉耦合反相器电路电连接到所述第一读取电路和所述第二读取电路,第三读取电路,所述第三读取电路电连接到所述交叉耦合反相器电路。Various embodiments of the neuron device may include: wherein the weighting circuit includes a first weighting circuit and a second weighting circuit, and wherein the storage circuit includes a memory circuit electrically connected to the first weighting circuit. A first storage circuit, a second storage circuit electrically connected to the second weight operation circuit, and a third storage circuit electrically connected to the deviation operation circuit; wherein the weight operation circuit includes a first weight operation circuit and a second a weight operation circuit, and wherein the storage circuit is electrically connected to the first weight operation circuit, the second weight operation circuit and the deviation operation circuit; wherein the storage circuit includes one or more storage bits, wherein the Each of the one or more storage bits includes one or more resistive elements and a voltage amplifier; wherein the one or more resistive elements include at least four resistive elements, wherein at least two first resistive elements are electrically connected in series and at least two second resistive elements are electrically connected in series, wherein the at least two first resistive elements are electrically connected in parallel with the at least two second resistive elements, and wherein the input terminal of the voltage amplifier is electrically connected to the a first electrode between at least two first resistive elements and connected to a second electrode between said at least two second resistive elements; wherein said one or more storage bits are included in a single bit array; said The neuron device further includes an output circuit electrically connected to the activation function circuit; wherein each of the one or more storage bits includes: a first set of resistive elements and a second set of resistive elements electrically connected to the a first reading circuit of the first set of resistive elements and a second reading circuit electrically connected to the second set of resistive elements, a cross-coupled inverter circuit electrically connected to the A reading circuit and the second reading circuit and a third reading circuit are electrically connected to the cross-coupled inverter circuit.

在又一个实施方案中,一种操作人工神经网络的装置的方法可包括:在所述装置的权重运算电路处经由所述装置的输入电路接收值;在所述权重运算电路处将来自所述装置的存储电路的权重值应用于所述值以形成加权值;将所述加权值提供到所述装置的偏差运算电路;在所述偏差运算电路处将来自所述存储电路的偏差值应用于所述加权值以形成有偏加权值;以及将所述有偏加权值提供到所述装置的激活函数电路,其中至少所述权重运算电路、所述偏差运算电路和所述存储电路位于同一个芯片上。In yet another embodiment, a method of operating a device of an artificial neural network may include: receiving a value at a weight operation circuit of the device via an input circuit of the device; a weighted value of a storage circuit of the device is applied to the value to form a weighted value; the weighted value is provided to a deviation operation circuit of the device; and the deviation value from the storage circuit is applied to the deviation operation circuit at the deviation operation circuit the weighting value to form a biased weighting value; and providing the biased weighting value to an activation function circuit of the device, wherein at least the weight operation circuit, the bias operation circuit and the storage circuit are located in the same on the chip.

虽然本文参考特定应用的说明性示例描述了本公开的原理,但是应当理解本公开不限于此。例如,代替基于MTJ的位单元,诸如电阻RAM或铁电RAM位技术的另一种存储位可以用于设计本公开的反熔丝电路。另一存储位可以具有编程状态和至少一个未编程状态。至少一个未编程状态还可以包括多个未编程状态,例如,低未编程状态、高未编程状态和一个或多个中间未编程状态。本领域的普通技术人员和获得本文提供的教导的人员将认识到额外的修改、应用、实施方案和等同物的替代均落入本文描述的特征的范围内。因此,要求保护的特征不应被视为受前述描述的限制。Although the principles of the disclosure are described herein with reference to illustrative examples of specific applications, it is to be understood that the disclosure is not limited thereto. For example, instead of MTJ-based bit cells, another memory bit such as resistive RAM or ferroelectric RAM bit technology may be used to design the antifuse circuit of the present disclosure. Another memory bit may have a programmed state and at least one unprogrammed state. The at least one unprogrammed state may also include a plurality of unprogrammed states, such as a low unprogrammed state, a high unprogrammed state, and one or more intermediate unprogrammed states. Those of ordinary skill in the art and having access to the teachings provided herein will recognize additional modifications, applications, implementations, and substitutions of equivalents that fall within the scope of the features described herein. Accordingly, the claimed features should not be regarded as limited by the foregoing description.

为了清楚和理解的目的,已经描述了本发明的前述描述。并不旨在将本发明限制为所公开的精确形式。在本申请的范围和等同范围内可以进行各种修改。The foregoing description of the present invention has been presented for the purposes of clarity and understanding. It is not intended to limit the invention to the precise form disclosed. Various modifications may be made within the scope and equivalent scope of the present application.

Claims (20)

1. An apparatus, the apparatus comprising:
an input circuit;
a weight operation circuit electrically connected to the input circuit;
a bias operation circuit electrically connected to the weight operation circuit;
a storage circuit electrically connected to the weight operation circuit and the deviation operation circuit; and
an activation function circuit electrically connected to the bias operation circuit,
wherein at least the weight operation circuit, the deviation operation circuit and the storage circuit are located on the same chip.
2. The apparatus of claim 1, wherein the weight operation circuit comprises a first weight operation circuit and a second weight operation circuit, and
wherein the memory circuit includes a first memory circuit electrically connected to the first weight operation circuit, a second memory circuit electrically connected to the second weight operation circuit, and a third memory circuit electrically connected to the deviation operation circuit.
3. The apparatus of claim 1, wherein the weight operation circuit comprises a first weight operation circuit and a second weight operation circuit, and
wherein the storage circuit is electrically connected to the first weight operation circuit, the second weight operation circuit, and the deviation operation circuit.
4. The apparatus of claim 1, wherein the memory circuit comprises one or more memory bits.
5. The apparatus of claim 4, wherein the one or more memory bits each comprise one or more resistive elements and a voltage amplifier.
6. The apparatus of claim 5, wherein the one or more resistive elements comprise at least four resistive elements, wherein at least two first resistive elements are electrically connected in series and at least two second resistive elements are electrically connected in series, wherein the at least two first resistive elements are electrically connected in parallel with the at least two second resistive elements, and
wherein the input of the voltage amplifier is electrically connected to a first electrode between the at least two first resistive elements and to a second electrode between the at least two second resistive elements.
7. The device of claim 5, wherein each of the one or more resistive elements comprises a Magnetic Tunnel Junction (MTJ).
8. The apparatus of claim 4, wherein the one or more storage bits are included in a single bit array.
9. The apparatus of claim 1, wherein the apparatus comprises a hardware neuron in an artificial neural network.
10. The apparatus of claim 1, further comprising an output circuit electrically connected to the activation function circuit.
11. The device of claim 4, wherein each of the one or more storage bits comprises:
a first set of resistive elements and a second set of resistive elements,
a first read circuit electrically connected to the first set of resistive elements and a second read circuit electrically connected to the second set of resistive elements,
a cross-coupled inverter circuit electrically connected to the first and second read circuits, and
a third read circuit electrically connected to the cross-coupled inverter circuit.
12. A neuron device for an artificial neural network, the neuron device comprising:
an input circuit;
a weight operation circuit electrically connected to the input circuit;
a bias operation circuit electrically connected to the weight operation circuit;
A storage circuit electrically connected to the weight operation circuit and the deviation operation circuit; and
an activation function circuit electrically connected to the bias operation circuit,
wherein at least the weight operation circuit, the deviation operation circuit and the storage circuit are located on the same chip.
13. The neuron device according to claim 12, wherein the weight operation circuit includes a first weight operation circuit and a second weight operation circuit, and
wherein the memory circuit includes a first memory circuit electrically connected to the first weight operation circuit, a second memory circuit electrically connected to the second weight operation circuit, and a third memory circuit electrically connected to the deviation operation circuit.
14. The neuron device according to claim 12, wherein the weight operation circuit includes a first weight operation circuit and a second weight operation circuit, and
wherein the storage circuit is electrically connected to the first weight operation circuit, the second weight operation circuit, and the deviation operation circuit.
15. The neuron device of claim 12, wherein the storage circuit comprises one or more storage bits, wherein each of the one or more storage bits comprises one or more resistive elements and a voltage amplifier.
16. The neuron device according to claim 15, wherein the one or more resistive elements comprise at least four resistive elements, wherein at least two first resistive elements are electrically connected in series and at least two second resistive elements are electrically connected in series, wherein the at least two first resistive elements are electrically connected in parallel with the at least two second resistive elements, and
wherein the input of the voltage amplifier is electrically connected to a first electrode between the at least two first resistive elements and to a second electrode between the at least two second resistive elements.
17. The neuron device of claim 15, wherein the one or more storage bits are included in a single bit array.
18. The neuron device of claim 12 further comprising an output circuit electrically connected to the activation function circuit.
19. The neuron device of claim 15, wherein each of the one or more storage bits comprises:
a first set of resistive elements and a second set of resistive elements,
a first read circuit electrically connected to the first set of resistive elements and a second read circuit electrically connected to the second set of resistive elements,
A cross-coupled inverter circuit electrically connected to the first and second read circuits, and
a third read circuit electrically connected to the cross-coupled inverter circuit.
20. A method of operating a device of an artificial neural network, the method comprising:
receiving a value at a weight operation circuit of the device via an input circuit of the device;
applying weight values from a storage circuit of the device to the values at the weight operation circuit to form weighted values;
providing the weighted value to a bias operation circuit of the device;
applying, at the bias operation circuit, bias values from the storage circuit to the weighting values to form biased weighting values; and
providing the biased weighting value to an activation function circuit of the device,
wherein at least the weight operation circuit, the deviation operation circuit and the storage circuit are located on the same chip.
CN202310128574.6A 2022-03-07 2023-02-17 Systems and methods for storage bits in artificial neural networks Pending CN116720555A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US63/268,953 2022-03-07
US17/893,462 2022-08-23
US17/893,462 US20230281434A1 (en) 2022-03-07 2022-08-23 Systems and methods for a storage bit in an artificial neural network

Publications (1)

Publication Number Publication Date
CN116720555A true CN116720555A (en) 2023-09-08

Family

ID=87866631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310128574.6A Pending CN116720555A (en) 2022-03-07 2023-02-17 Systems and methods for storage bits in artificial neural networks

Country Status (1)

Country Link
CN (1) CN116720555A (en)

Similar Documents

Publication Publication Date Title
US20240086697A1 (en) Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
TWI773076B (en) Multiply accumulate circuit applied to binary neural network system
TWI715048B (en) Random code generator and associated random code generating method
US11393528B2 (en) RRAM circuit and method
US9502114B1 (en) Non-volatile ternary content-addressable memory with bi-directional voltage divider control and multi-step search
CN109584932B (en) Memory device and operation method thereof
US20100165710A1 (en) Random access memory architecture including midpoint reference
US9099179B2 (en) Thermodynamic bit formed of two memristors
CN111194467A (en) Differential memristive circuit
US8446754B2 (en) Semiconductor memory apparatus and method of driving the same
US8995167B1 (en) Reverse program and erase cycling algorithms
EP4242927A1 (en) Systems and methods for a storage bit in an artificial neural network
Chabi et al. On-chip universal supervised learning methods for neuro-inspired block of memristive nanodevices
CN116720555A (en) Systems and methods for storage bits in artificial neural networks
US10147492B1 (en) MOSFET threshold voltage sensing scheme for non-volatile memory
US12315562B2 (en) RRAM circuit and method
KR20250142636A (en) Binarized neural network circuitry using quasi-nonvolatile memory device
Pedretti et al. Computing with nonvolatile memories for artificial intelligence
KR102612011B1 (en) Artificial Neuromorphic Device and Methode of operating the same
US12437792B2 (en) Data logic processing circuit integrated in a data storage circuit
KR102511526B1 (en) Hardware-based artificial neural network device
US20250190127A1 (en) Memory for artificial intelligence application and methods thereof
EP4517589A1 (en) Systems and methods for using distributed memory configuration bits in artificial neural networks
CN120048310B (en) Drive circuits, memory devices and their operation methods
US20220383083A1 (en) Method for training a binarized neural network and related electronic circuit

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