CN110825345B - 使用非易失性存储器单元的乘法 - Google Patents
使用非易失性存储器单元的乘法 Download PDFInfo
- Publication number
- CN110825345B CN110825345B CN201910539761.7A CN201910539761A CN110825345B CN 110825345 B CN110825345 B CN 110825345B CN 201910539761 A CN201910539761 A CN 201910539761A CN 110825345 B CN110825345 B CN 110825345B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- multiplication
- node
- current
- memory cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 706
- 239000013598 vector Substances 0.000 claims abstract description 149
- 238000000034 method Methods 0.000 claims abstract description 21
- 239000004020 conductor Substances 0.000 claims description 123
- 230000004044 response Effects 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 11
- 230000005669 field effect Effects 0.000 claims description 9
- 238000009825 accumulation Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 210000004027 cell Anatomy 0.000 description 498
- 238000010586 diagram Methods 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 13
- 210000002364 input neuron Anatomy 0.000 description 12
- 238000003491 array Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 10
- 230000002441 reversible effect Effects 0.000 description 9
- 210000004205 output neuron Anatomy 0.000 description 7
- 210000000225 synapse Anatomy 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 229910000449 hafnium oxide Inorganic materials 0.000 description 2
- WIHZLLGSGQNAGK-UHFFFAOYSA-N hafnium(4+);oxygen(2-) Chemical compound [O-2].[O-2].[Hf+4] WIHZLLGSGQNAGK-UHFFFAOYSA-N 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000012782 phase change material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000007784 solid electrolyte Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 229910052720 vanadium Inorganic materials 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910017629 Sb2Te3 Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical group [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/223—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using MOS with ferroelectric gate insulating film
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2259—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2273—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2275—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0045—Read using current through the cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/76—Array using an access device for each cell which being not a transistor and not a diode
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Crystallography & Structural Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- Computer Hardware Design (AREA)
- Semiconductor Memories (AREA)
- Mram Or Spin Memory Techniques (AREA)
Abstract
本发明题为“使用非易失性存储器单元的乘法。”本文描述了用于使用非易失性存储器单元执行乘法的技术。被乘数可以存储在包括多个非易失性存储器单元的节点中。被乘数被存储在包括多个非易失性存储器单元的节点中。在一个方面,所述节点中的每个存储器单元连接到相同的位线。可以将乘法电压施加到所述节点中的每个存储器单元。所述节点中的每个存储器单元通过将存储器单元电流传递到位线来响应所述乘法电压。所述一个或多个乘法电压同时施加到所述节点中的每个存储器单元,使得每个存储器单元的所述存储器单元电流在所述位线中流动。所述位线电流的量值表示所述乘数和所述被乘数的乘积。可以使用连接到相同位线的存储器单元的“n”个节点来执行矢量/矢量乘法。
Description
背景技术
半导体存储器广泛用于各种电子设备,诸如移动计算设备、移动电话、固态驱动器、数字相机、个人数字助理、医疗电子设备、服务器和非移动计算设备。半导体存储器可包括非易失性存储器或易失性存储器。即使当非易失性存储器器件未连接到电源(例如,电池)时,非易失性存储器设器件也允许存储或保留信息。
非易失性存储器的示例包括但不限于磁阻存储器(例如,MRAM)、相变存储器(例如,PCM)、铁电场效应晶体管(FeFET)存储器、铁电存储器(例如,FeRAM)和闪存存储器(例如,NAND型和NOR型闪存存储器)。
附图说明
图1A示出了存储器系统和主机的实施方案。
图1B示出了存储器核心控制电路的实施方案。
图1C示出了电压发生器的一个实施方案的进一步细节。
图2A示出了N到M人工神经网络的示例。
图2B示出了交叉点存储器阵列的一部分的示例。
图3A是可用于执行乘法的装置的一个实施方案的图。
图3B是用于使用节点中的不同大小的非易失性存储器单元执行乘法的装置的一个实施方案的图。
图3C是用于执行将不同电压施加到节点中的非易失性存储器单元的乘法的装置的一个实施方案的图。
图3D是节点的存储器单元是三端器件的装置的图。
图4A示出了可用于执行乘法的示例性双端存储器单元。
图4B和图4C示出了可用于执行乘法的两个示例性三端存储器单元。
图5A是可用于使用双端存储器单元执行乘法与累加(MAC)的交叉点阵列的一个实施方案的图。
图5B示出了具有交叉点阵列的装置的一个实施方案,该交叉点阵列可用于使用三端存储器单元执行矢量/矢量乘法。
图6A是可用于通过将不同电压施加到节点中的双端存储器单元来执行MAC的存储器阵列的一个实施方案的图。
图6B是可用于通过将不同电压施加到节点中的三端存储器单元来执行MAC的存储器阵列的一个实施方案的图。
图7是使用非易失性存储器单元将两个矢量相乘的过程的一个实施方案的流程图。
图8是可用于在使用非易失性存储器单元的乘法运算期间提供电压的电路的一个实施方案的图。
图9示出了存储器单元各自存储被乘数的两个位的阵列的一个实施方案。
具体实施方式
本文描述了用于使用非易失性存储器单元执行乘法的技术。在一个实施方案中,矢量/矢量乘法(例如,矢量点积)在非易失性存储器系统中执行。矢量点积是两个相等长度(其中相等长度指的是相等数量的元素)矢量的对应元素的乘积的总和。因此,矢量点积也可以称为“乘法与累加”(MAC)。在一个实施方案中,矢量/矩阵乘法在非易失性存储器系统中执行。在一个实施方案中,非易失性存储器单元用于在神经形态计算系统中执行乘法。神经形态计算系统可用于实现人工神经网络。
在一个实施方案中,被乘数被存储在包括多个非易失性存储器单元的节点中。在一个实施方案中,节点中的每个存储器单元连接到相同的位线。在一个实施方案中,被乘数由二进制计数系统中的位表示。在一个实施方案中,节点中的每个存储器单元存储被乘数的不同位。例如,一个存储器单元存储“1s”位置,另一个存储器单元可以存储“2s”位置,又另一个存储器单元可以存储“4s”位置。
节点中的每个存储器单元具有至少两个端子,使得可以通过在这两个端子上施加乘法电压来将乘法电压施加到每个存储器单元。在一个实施方案中,乘法电压的量值对于节点中的每个存储器单元是相同的。在节点中的每个存储器单元的乘法电压相同的一个实施方案中,节点中的每个存储器单元具有不同量值的导通电流。在一个实施方案中,乘法电压的量值对于节点中的每个存储器单元是不同的。在一个实施方案中,其中乘法电压的量值对于节点中的每个存储器单元是不同的,导通电流对于节点中的每个存储器单元是相同的。在任一种情况下,乘法电压代表乘数。
在一个实施方案中,节点中的每个存储器单元通过将存储器单元电流传递到位线来响应施加到该存储器单元的乘法电压。术语“存储器单元电流”指的是通过存储器单元到达位线(在一个实施方案中)或源极线(在另一个实施方案中)的电流。一个或多个乘法电压被同时施加到节点中的每个存储器单元,使得每个存储器单元的存储器单元电流传递到位线。总位线电流的量值表示乘数和被乘数的乘积。
在一个实施方案中,使用连接到相同位线的存储器单元的“n”个节点来执行矢量/矢量乘法。每个节点存储具有“n”个元素的第一矢量的一个元素。在一个实施方案中,节点中的每个存储器单元存储存储在该节点中的元素的一个不同位。第二矢量由“n”组一个或多个乘法电压表示。每组乘法电压代表表示第二矢量的一个元素。在一个实施方案中,“n”个节点中的每个存储器单元具有同时施加到该存储器单元的乘法电压之一,使得每个存储器单元的存储器单元电流被提供给位线。位线电流的量值表示第一矢量和第二矢量的矢量点积。矢量点积也可以称为“乘法与累加”(MAC)。
在一个实施方案中,使用存储器单元的“n×m”个节点执行矢量/矩阵乘法。矢量/矩阵乘法可以通过实际上执行“m”矢量乘法来执行。
在一些实施方案中,节点中的每个存储器单元被编程为两个物理状态中的一个。在本文中,“物理状态”可以更简单地称为“状态”。为了便于讨论,一个状态可以被称为“导通状态”,另一个状态可以被称为“关断状态”。在一个实施方案中,导通状态可以是“高电流状态”,而关断状态是“低电流状态”。一个状态可用于存储“1”,另一个状态可用于存储“0”。因此,可以说每个存储器单元存储一位信息。
在一个实施方案中,节点中的存储器单元是“二进制非易失性存储器单元”。本文所定义的术语“二进制非易失性存储器单元”是可以仅在两个物理状态之间重复切换的非易失性存储器单元。这与“多状态非易失性存储器单元”形成对比,如所定义的术语“多状态非易失性存储器单元”在可以在多于两个物理状态之间重复切换。一些类型的非易失性存储器单元非常适合用作二进制非易失性存储器单元,尽管它们可能不是很适合用作多状态非易失性存储器单元。例如,具有铁电场效应晶体管(FeFET)的一些存储器单元非常适合用作二进制非易失性存储器单元。而且,一些磁阻存储器(例如,MRAM)非常适合用作二进制非易失性存储器单元。然而,一些FeFET和MRAM不是很适合用作多状态非易失性存储器单元。
因此,“二进制存储器单元”可用于执行乘法。但是,需注意,不是必须使用二进制存储器单元。在一些实施方案中,多状态存储器单元用于执行乘法。在一些实施方案中,多状态存储器单元各自被编程为两个物理状态中的一个。
为了实现精确的乘法,乘数和被乘数应能够表示多个不同的值。精确地生成具有多个可能量值中的一个的电压并不一定具有挑战性。因此,如果乘法器由电压的量值表示,则可以精确地实现宽范围的乘法器。需注意,在本文中,术语“乘数”用于乘法电压,术语“被乘数”用于存储在存储器单元节点中的值。这是为了方便讨论。如本文所用,术语“乘数”和“被乘数”是可互换的。
然而,以精确表示被乘数的方式来编程非易失性存储器单元可能是具有挑战性的。例如,一些存储器单元具有可调电阻器,这些电阻器可被编程为不同的电阻。因此,可以将此类存储器单元编程为例如八种不同的电阻状态中的一种,以便表示被乘数。然而,电阻状态之间应存在线性关系,以使乘法精确。对于许多类型的非易失性存储器单元,电阻状态之间的关系是非线性的。
一个实施方案通过将被乘数存储在多个非易失性存储器单元的一个所选节点中来克服此类限制,其中该所选节点中的每个存储器单元存储被乘数的不同位。另外,在一个实施方案中,该节点中的每个存储器单元连接到相同的位线。在一个实施方案中,将乘法电压同时施加到所选节点中的每个非易失性存储器单元,以使每个存储器单元传递存储器单元电流。存储器单元电流可以传递到位线。对于节点中的每个存储器单元,乘法电压的量值可以相同或不同。在任一种情况下,乘法电压的量值可以表示乘数。在位线中流动的总电流(来自节点中的所有存储器单元)的量值表示乘数和被乘数的乘积。
在一个实施方案中,节点中的每个存储器单元具有不同的物理大小,以便表示具有相同量值乘法电压的被乘数的不同位。为了举例说明,节点中的每个存储器单元可以被编程为两个物理状态中的一个。这两种状态可以被称为导通状态(或高电流状态)和关断状态(或低电流状态)。在一个实施方案中,当施加相同量值的乘法电压时,节点中处于导通状态的每个存储器单元传递不同量值的电流。例如,如果节点中存在三个存储器单元,则第一存储器单元可以传递“x微安”的电流,第二存储器单元可以传递“2x微安”的电流,第三存储器单元可以传递“4x微安”的电流。在一个实施方案中,这允许节点表示被乘数的不同位。
在一个实施方案中,节点中的每个存储器单元具有可调电阻器,该电阻器可被编程为不同的电阻。例如,具有可调电阻器的存储器单元可被编程为高电阻状态或低电阻状态以便存储一位。在一个实施方案中,节点中的每个存储器单元的可调电阻器具有不同的横截面积。导通电流的量值可以与横截面积成比例。因此,在一个实施方案中,当施加相同量值的乘法电压时,处于导通状态的具有可调电阻器的存储器单元传递不同量值的电流。关断电流的量值也可以与横截面积成比例。然而,在一个实施方案中,关断电流基本上低于导通电流,使得关断电流相对于导通电流不会产生实质性贡献。
在一个实施方案中,节点中的每个存储器单元具有可调阈值电压(Vt)晶体管,该晶体管可被编程为不同的阈值电压。例如,具有可调节Vt晶体管的存储器单元可被编程为高Vt状态或低Vt状态以便存储一位。在一个实施方案中,高Vt状态是低电流状态,低Vt状态是高电流状态。在一个实施方案中,节点中的每个存储器单元的可调Vt晶体管具有不同的宽长比(W/L)。导通电流的量值可以与W/L成比例。因此,在一个实施方案中,当施加相同量值的乘法电压时,处于导通状态的具有可调Vt电阻器的存储器单元传递不同量值的电流。在一个实施方案中,节点中的存储器单元的可调Vt晶体管导通电流彼此相差二的幂。
在一个实施方案中,节点中的每个存储器单元接收不同量值的乘法电压。然而,在一个实施方案中,在乘法电压的量值之间存在精确的关系,使得节点中的每个存储器单元存储被乘数的不同位。例如,如果节点中存在三个存储器单元,则第一存储器单元可以接收“y伏特”的乘法电压并且传递“x微安”的存储器单元电流,第二存储器单元可以接收“2y伏特”的乘法电压并且传递“2x微安”的存储器单元电流,第三存储器单元可以接收“4y伏特”的乘法电压并且传递“4x微安”的存储器单元电流。在一个实施方案中,这允许节点表示被乘数的不同位。
在进一步讨论使用非易失性存储器单元的乘法之前,将讨论可以实践实施方案的示例性存储器系统100。图1A示出了存储器系统100和主机102的一个实施方案。存储器系统100可以包括与主机102(例如,移动计算设备)交互的非易失性存储系统。在一些情况下,存储器系统100可以嵌入主机102内。在其他情况下,存储器系统100可以包括存储卡。如图所示,存储器系统100包括存储器芯片控制器104和存储器芯片106。尽管示出了单个存储器芯片106,但是存储器系统100可以包括多于一个的存储器芯片(例如,四个、八个或一些其他数量的存储器芯片)。存储器芯片控制器104可以从主机102接收数据和命令,并将存储器芯片数据提供给主机102。在一个实施方案中,存储器系统100用作神经形态计算系统。
存储器芯片控制器104可以包括用于控制存储器芯片106的操作的一个或多个状态机、页面寄存器、SRAM和控制电路。所述用于控制存储器芯片106的操作的一个或多个状态机、页面寄存器、SRAM和控制电路可以称为管理或控制电路。管理或控制电路可以促进一种或多种存储器阵列操作,诸如形成、擦除、编程或读取(或感测)操作。在一个实施方案中,管理或控制电路用于使用非易失性存储器单元执行乘法。在本文中,乘法将被称为一种存储器阵列操作。
在一些实施方案中,用于促进一种或多种存储器阵列操作(包括乘法)的管理或控制电路(或管理或控制电路的一部分)可以集成在存储器芯片106内。存储器芯片控制器104和存储器芯片106可以布置在单个集成电路上。在其他实施方案中,存储器芯片控制器104和存储器芯片106可以布置在不同的集成电路上。在一些情况下,存储器芯片控制器104和存储器芯片106可以集成在系统板、逻辑板或PCB上。
存储器芯片106包括存储器核心控制电路108和存储器核心110。存储器核心控制电路108可以包括用于控制存储器核心110内的存储块(或阵列)的选择,控制用于将特定存储器阵列偏置到读取或写入状态的电压参考的生成,或者生成行和列地址的逻辑。存储器核心控制电路108可以包括用于控制用于偏置特定存储器阵列的电压参考的生成,以便使用非易失性存储器单元执行乘法的逻辑。
存储器芯片控制器104控制存储器芯片106的操作。一旦存储器芯片控制器104启动读取、写入或乘法操作,存储器核心控制电路108就可以为存储器核心110内的位线、源极线和/或字线生成适当的偏置电压,并生成适当的存储块、行和列地址。
在一些实施方案中,一个或多个管理或控制电路可用于控制存储器阵列的操作。一个或多个管理或控制电路可以向存储器阵列提供控制信号,以对存储器阵列执行读取操作、写入操作和/或乘法操作。在一个示例中,一个或多个管理或控制电路可以包括控制电路、状态机、解码器、感测放大器、读取/写入/乘法电路和/或控制器中的任何一个或它们的组合。一个或多个管理电路可以执行或促进一种或多种存储器阵列操作,包括擦除、编程、读取操作或乘法操作。在一个示例中,一个或多个管理电路可以包括片上存储器控制器,其用于确定行和列地址、位线、源极线和字线地址、存储器阵列使能信号和数据锁存信号。
存储器核心110可以包括一个或多个存储器单元二维阵列,或一个或多个存储器单元三维阵列。在一个实施方案中,存储器核心控制电路108和存储器核心110布置在单个集成电路上。在其他实施方案中,存储器核心控制电路108(或存储器核心控制电路108的一部分)和存储器核心110可以布置在不同的集成电路上。
在一个实施方案中,存储器核心110包括非易失性存储器单元的三维存储器阵列,其中在单个衬底(诸如晶片)上方形成多个存储器层。存储器结构可以包括在存储器单元阵列的一个或多个物理层中单片地形成的任何类型的非易失性存储器,其具有设置在硅(或其他类型)衬底上方的有源区域。
存储器阵列架构或包括在存储器核心110中的存储器单元的确切类型不限于上述示例。可以使用许多不同类型的存储器阵列架构或存储器技术来形成存储器核心110。出于本文提出的新的要求保护的实施方案的目的,不需要特定的非易失性存储器技术。用于存储器核心110的存储器单元的合适技术的其他示例包括ReRAM存储器、铁电场效应晶体管(FeFET)存储器、磁阻存储器(例如,MRAM、自旋转移矩MRAM、自旋轨道矩MRAM)、相变存储器(例如,PCM)等。用于存储器核心110的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、垂直位线阵列等。
ReRAM或PCMRAM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)存取的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
磁阻存储器(MRAM)通过磁存储元件存储数据。元件由两个铁磁板形成,每个铁磁板可保持磁化,由薄的绝缘层隔开。两个板中的一个板是设置为特定极性的永磁体;可以改变另一个板的磁化以匹配外磁场的磁化以存储内存。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。
相变存储器(PCM)利用硫属化合物玻璃的独特行为。一个实施方案使用GeTe-Sb2Te3超晶格通过简单地用激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。应当注意,在该文件中使用“脉冲”不需要正方形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。
铁电场效应晶体管(FeFET)存储器具有可调阈值电压(Vt)晶体管,该晶体管具有可调阈值电压。在一个实施方案中,可调Vt晶体管具有低阈值电压状态和高阈值电压状态。可调Vt晶体管可以在低阈值电压状态和高阈值电压状态之间重复切换。
本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构,但涵盖了在本文所述和如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。
图1B示出了存储器核心控制电路108的实施方案。如图所示,存储器核心控制电路108包括地址解码器120、电压发生器132、传输数据锁存器148、读取/写入/乘法电路146和感测电路150。电压发生器(或稳压器)132可以生成用于控制线的电压。
读取/写入/乘法电路146包括用于读取和写入存储器核心110中的存储器单元的电路。在一个实施方案中,传输数据锁存器148用于存储器芯片控制器104(图1A)和存储器单元之间的中间存储。在一个实施方案中,当主机102指示存储器芯片控制器104将数据写入存储器芯片106时,存储器芯片控制器104将主机数据写入传输数据锁存器148。然后,读取/写入电路146将数据从传输数据锁存器148写入指定的存储器单元页面。在一个实施方案中,传输数据锁存器148的大小等于页面的大小。在一个实施方案中,当主机102指示存储器芯片控制器104从存储器芯片106读取数据时,读取/写入电路146从指定页面读取到传输数据锁存器148中,并且存储器芯片控制器104将读取数据从传输数据锁存器148传输到主机102。地址解码器120可以生成存储块地址,以及用于特定存储块的行地址和列地址。
读取/写入/乘法电路146还包括用于使用存储器单元执行乘法运算的电路。在一个实施方案中,写入电路用于将被乘数存储在存储器单元中。在一个实施方案中,写入电路将被乘数存储到“r”个存储器单元组成的节点中。在一个实施方案中,被乘数具有“r”个位。在一个实施方案中,节点中的每个存储器单元存储被乘数的“r”个位中的一个位。
在一个实施方案中,乘法电路用于将乘法电压施加到存储被乘数的存储器单元。在一个实施方案中,每个乘法电压具有表示乘数的量值。节点中的每个存储器单元响应于乘法电压而传递存储器单元电流。在一个实施方案中,存储器单元电流的量值取决于存储器单元的物理状态和乘法电压的量值。例如,在一个实施方案中,存储器单元电流的量值取决于存储器单元的电阻和施加到存储器单元的电压。在一个实施方案中,存储器单元电流的量值取决于存储器单元是处于第一物理状态还是第二物理状态。每个物理状态可以由物理参数表示,该物理参数包括但不限于存储器单元电阻或存储器单元晶体管阈值电压。
乘法电压的量值可以与读取电压相似,因为乘法电压可以使存储器单元传递存储器单元电流而不改变存储器单元的物理状态。然而,尽管读取电压可以具有被选择以在物理状态之间进行区分的量值,但是乘法电压的量值不一定被选择用来区分物理状态。将使用被编程为两种状态中的一种的存储器单元的以下示例来说明。在施加读取电压之后,可以感测存储器单元电流并将其与参考电流进行比较,以确定存储器单元处于哪种状态。在这种情况下,读取电压和参考电流的量值可以被选择为能够在两个状态之间进行区分。然而,乘法电压可以具有许多不同量值中的一个,具体取决于期望的乘数。此外,由施加乘法电压产生的存储器单元电流不一定与参考电流相比较。
感测电路150被配置为感测存储器单元电流。在一个实施方案中,感测电路150包括多个感测放大器。在一个实施方案中,感测放大器可用于感测位线中的电流。在一些实施方案中,多个存储器单元连接到相同的位线。根据读取或乘法电路如何将电压施加到存储器单元,来自一个或多个存储器单元的电流可以在位线中流动。因此,感测放大器可用于感测来自单个存储器单元的存储器单元电流,或来自连接到相同位线的多个存储器单元的组合存储器单元电流。感测放大器还可以被配置为将位线电流的量值与参考电流的量值进行比较。
图1C示出了电压发生器132的一个实施方案的进一步细节。电压发生器包括用于选定控制线132a的电压发生器,用于未选定控制线132b的电压发生器,以及用于参考信号132c的信号发生器。控制线可以包括位线、源极线和字线,或者位线、源极线和字线的组合。用于选定控制线132a的电压发生器可用于生成编程、读取和/或乘法电压。在一个实施方案中,用于选定控制线132a的电压发生器生成的电压的量值基于数学乘法运算的乘数。在一个实施方案中,两个选定控制线的电压之间的电压差是乘法电压。
用于未选定控制线132b的电压发生器可以用于产生用于控制线的电压,该控制线连接到未被选择用于编程、读取或乘法操作的存储器单元。用于参考信号132c的信号发生器可用于产生将用作比较信号以确定存储器单元的物理状态的参考信号(例如,电流、电压)。
在一个实施方案中,非易失性存储器单元用于在神经形态计算系统中执行乘法。神经形态计算系统可用于实现人工神经网络。图2A示出了N到M人工神经网络200的示例。人工神经网络200具有“N”个输入神经元202和“M”个输出神经元206。多个突触204将输入神经元202连接到输出神经元206。每个输入神经元202可以与一个数学数量相关联。同样,每个突触204可以与一个数学数量相关联,该数学数量通常被称为“权重”。公式1表示可以针对“M”个输出神经元206中的每一个执行的计算。
在公式1中,YM表示当前正在应用公式1的输出神经元206;XN表示输入神经元202;并且WNM表示将一个输入神经元202连接到当前正在应用公式1的输出神经元206(YM)的突触204的权重。如上所述,每个突触具有一个“权重”。因此,公式1可以通过将N个输入神经元202的值乘以将每个相应输入神经元202连接到YM的突触204的权重的乘积的乘法与累加来实现。乘法与累加也可以称为矢量/矢量乘法(例如,两个矢量的点积)。第一矢量是由用于N个输入神经元202的值定义的“n”元素矢量,第二矢量是由将N个输入神经元202连接到YM的N个突触204的权重定义的“n”元素矢量。
用于执行乘法与累加(或矢量/矢量乘法)的一种技术是使用交叉点存储器阵列。图2B示出了交叉点存储器阵列250的一部分的示例。交叉点存储器阵列250可用于执行乘法与累加操作。阵列250的所示部分具有四条字线(WL1、WL2、WL3、WL4)和三条位线(BL1、BL2、BL3)。阵列250的所示部分可用于执行N=4且M=3情况下的公式1。
示出了许多非易失性存储器单元252。例如,每个非易失性存储器单元252可以包括可调电阻器。每个存储器单元252标有权重(例如,W11、W21等)。这些权重(WNM)对应于表示将一个输入神经元202连接到输出神经元206的突触204的权重。对于某些类型的存储器单元,可调电阻器可被编程为一系列电阻。因此,权重可与该可调电阻器的电阻有关。
电压VWL1、VWL2、VWL3和VWL4被示为施加到相应的字线WL1、WL2、WL3、WL4。这些电压的量值对应于输入神经元202。因此,该组电压VWL1、VWL2、VWL3和VWL4对应于公式1中的XN。将位线选择电压(BL_Select)施加到每个位线以选择该位线。为便于解释,假设BL_Select是零伏特,使得每个存储器单元252两端的电压是字线电压。每个存储器单元252可以传递基于其电阻和施加到存储器单元的电压的电流。该“存储器单元电流”流到连接到存储器单元252的位线。存储器单元电流可以被视为将由字线电压表示的数学值乘以由存储器单元的电阻表示的数学值的乘积。换句话说,存储器单元电流可以被视为将输入矢量的一个元素乘以存储在存储器单元中的权重的乘积的表示。
示出了多个位线电流(IBL1、IBL2、IBL3)。每个位线电流是连接到该位线的存储器单元的电流的总和。因此,每个位线电流可被视为表示上一段中讨论的乘积的累加。因此,位线电流的量值可以被视为表示矢量/矢量乘法(例如,两个矢量的点积)。此外,参考公式1,位线电流的量值可以表示输出神经元中的一个(例如,YM)。
对于图2B中的架构,为了使乘法与累加精确,权重应能够具有各种值。然而,一些存储器单元只能可靠地编程为两种状态。因此,此类存储器单元可能不适合于在图2B中的架构进行乘法与累加。一些存储器单元可以被编程为两种以上的状态。例如,一些可调电阻存储器单元可被编程为多于两个电阻。然而,要使此类多状态存储器单元在图2B的架构中产生精确的MAC,电阻状态之间应存在线性关系。遗憾的是,许多多状态存储器单元在电阻状态之间表现出非线性关系。因此,当在图2B中的架构中使用此类存储器单元时,MAC的准确度可能是不精确的。
图3A是可用于执行乘法的装置300的一个实施方案的图。装置300可包括在非易失性存储设备中。在一个实施方案中,该装置包含在存储器系统100中。在一个实施方案中,该装置驻留在存储器芯片106上。图3示出了交叉点存储器阵列中的一个节点310。交叉点存储器阵列通常具有附加节点310。例如,可以存在节点310组成的行和列。在图3A的实施方案中,节点310中有三个存储器单元352(1)、352(2)、352(3)。附图标号352可用于指代存储器单元而不参考具体存储器单元。通常,节点310中可以存在两个或更多个存储器单元352。节点310是两个或更多个存储器单元352组成的单位,其可以用于将两个数学值相乘。一个数学值存储在节点310中,另一个数学值由施加到节点中的每个存储器单元352的一个或多个电压表示。
每个存储器单元352电连接到第一导线308(1)、308(2)、308(3)中的一个。附图标号308将用于指代第一导线而不参考具体的第一导线。在一个实施方案中,第一导线308被称为字线。存在电连接到每个存储器单元352的第二导线306。在一个实施方案中,第二导线306被称为位线。在一个实施方案中,节点310中的每个存储器单元352是交叉点阵列的不同物理行。然而,在一个实施方案中,节点310是一个数据行的一部分。
在一个实施方案中,每个存储器单元352被编程为两个不同状态中的一个。在一个实施方案中,这两个状态可以被称为高电流状态和低电流状态。为了便于讨论,处于高电流状态的存储器单元存储“1”,处于低电流状态的存储器单元可存储“0”。因此,可以说每个存储器单元352存储一位。在一个实施方案中,每个存储器单元352具有可调电阻器,并且两个不同的状态是两个不同的电阻(或者可选地,两个不同的电导)。在一个实施方案中,每个存储器单元352具有可调Vt晶体管,并且两个不同的状态是两个不同的晶体管阈值电压。
在一个实施方案中,节点310中的存储器单元352可用于共同存储一个数学值。在一个实施方案中,节点310中的存储器单元352共同存储被乘数。被乘数可以是神经网络中的权重。在一个实施方案中,节点310中的每个存储器单元352存储被乘数的不同位。在存储器单元352内部,将不同的位标记为“b1”、“b2”和“b3”。每一位可以表示二进制计数系统中的不同位置,因此具有不同的权重。例如,存储器单元352(1)可以表示“1s”位置,存储器单元352(2)可以表示“2s”位置,存储器单元352(3)可以表示“4s”位置。因此,在一个实施方案中,节点310中的存储器单元可以共同存储三位信息。
在一个实施方案中,每个存储器单元352存储被乘数的一组两个或更多个位。例如,如果每个存储器单元352存储两个位,则存储器单元352(1)可以表示“1s”和“2s”位置,存储器单元352(2)可以表示“4s”和“8s”位置,存储器单元352(3)可以表示“16s”和“32s”位置。因此,在一个实施方案中,节点310中的这三个存储器单元可以共同存储六位信息。参考图9进一步讨论了每个存储器单元352存储两个位的示例。
在一个实施方案中,节点310中的存储器单元352的数量涉及被乘数的分辨率。例如,被乘数可以是0和1之间的值,使得具有三个位的节点310可以表示以下值(0、0.125、0.25、0.375、0.5、0.625、0.75、0.825)。向节点310添加更多存储器单元352可以在相同范围内实现被乘数的更高分辨率。0到1之间的范围只是一个示例,该范围内的示例性值也是如此。
乘法电路146被配置为将乘法电压施加到每个存储器单元。短语“将乘法电压施加到存储器单元”等是指在存储器单元的两个端子上施加乘法电压。此外,将乘法电压施加到存储器单元导致存储器单元电流具有取决于存储器单元的物理状态(例如,电阻、Vt)和乘法电压的量值的量值。在一个实施方案中,存储器单元电流的量值是存储器单元中的可调电阻器的电阻和乘法电压的量值的函数。在一个实施方案中,存储器单元电流的量值是存储器单元中晶体管的Vt和乘法电压的量值的函数。短语“将乘法电压施加到节点”是指将相同量值的乘法电压施加到节点中的每个存储器单元。短语“将一个或多个乘法电压施加到节点”是指将相同量值的乘法电压或不同量值的乘法电压施加到节点中的每个存储器单元,其中一个或多个乘法电压表示相同的乘数。
在图3A的实施方案中,可以在第一导线308中的一个和第二导线306之间施加乘法电压,以便将乘法电压施加到存储器单元。在一个实施方案中,每个第一导线308具有第一端子318(1)、318(2)或318(3),乘法电路146向该第一端子施加电压。在图3A的实施方案中,V1被施加到第一导线308(1),而V4被施加到第二导线306,导致在一个实施方案中第一乘法电压由V1-V4给出。在一个实施方案中,V2被施加到第一导线308(2),而V4被施加到第二导线306,导致第二乘法电压由V2-V4给出。在一个实施方案中,V3被施加到第一导线308(3),而V4被施加到第二导线306,导致第三乘法电压由V3-V4给出。在一个实施方案中,V1、V2和V3的量值彼此相同。在一个实施方案中,V1、V2和V3的量值彼此不同。
在一个实施方案中,施加到存储器单元352的乘法电压的量值表示乘数。在一个实施方案中,相同的乘数用于节点310中的每个存储器单元。然而,这并不一定意味着对于节点310中的每个存储器单元352,乘法电压具有相同的量值。例如,比率为4:2:1的乘法电压可以用于表示相同的乘数。在该示例中,可以将最高量值乘法电压施加到存储被乘数的最高有效位的存储器单元352,将最低量值乘法电压施加到存储被乘数的最低有效位的存储器单元352。
在一个实施方案中,选择每个乘法电压的量值,使得每个存储器单元电流表示乘数和存储在该存储器单元中的被乘数的一位的乘积。例如,考虑其中所有存储器单元352(1)、352(2)、352(3)处于高电流状态的示例。在该示例中,每个存储器单元在其被乘数的位置存储“1”。在这种情况下,存储器单元352(1)可以响应于施加到存储器单元352(1)的乘法电压而传递“x微安”的电流;存储器单元352(2)可响应于施加到存储器单元352(2)的乘法电压而传递“2x微安”的电流;并且存储器单元352(3)可响应于施加到存储器单元352(3)的乘法电压而传递“4x微安”的电流。效果是每个存储器单元电流表示相同乘数和存储在该存储器单元中的被乘数的一位的乘积。通常,增大乘法电压的量值会增大存储器单元电流。在一个实施方案中,存储器单元导通电流与乘法电压具有线性关系。因此,可以调节乘法电压的量值以便表示不同的乘数。在低电流状态下,存储器单元电流也可以具有类似的关系(例如,4:2:1的关系),但是电流可以低得多。在一个实施方案中,前述内容允许节点310表示被乘数的不同位。
在一个实施方案中,每个存储器单元352响应于施加到该存储器单元的乘法电压而在第二导线306中产生电流(称为存储器单元电流)。例如,存储器单元352(1)可以向第二导线306提供电流I1,存储器单元352(2)可以向第二导线306提供电流I2,存储器单元352(3)可以向第二导线306提供电流I3。由于乘法电压同时施加,存储器单元电流(I1、I2、I3)中的每一者在第二导线306中组合。I1+I2+I3的总和标记为Itotal,其由感测电路150感测。Itotal的量值表示由乘法电压表示的乘数和存储在节点310中的被乘数的乘积。
分析和使用电流Itotal的方式可能取决于应用。电流Itotal是模拟信号。在一个实施方案中,Itotal被输入到模拟-数字转换器(A/D),该模拟-数字转换器可以生成多位信号,其值反映Itotal的量值。因此,在一个实施方案中,该多位信号是乘数和被乘数的乘积。然而,不需要将Itotal转换为数字信号。在一个实施方案中,感测电路150将Itotal的量值与参考电流进行比较。感测电路150可以输出结果信号(例如,一位信息),其指示Itotal是小于还是大于参考电流。前述内容是可以由感测电路150输出的结果信号的两个示例。在一个实施方案中,Itotal的量值被输入到人工神经网络中的激活函数。在一些应用中,激活函数基于Itotal的量值输出“激发”(fire)或“不激发”(don’t fire)信号。
装置300提供非常精确的乘法。对于许多存储器单元,存储器单元可以可靠地被编程到两个物理状态中的一个,其中物理状态具有精确的物理值。例如,具有可调电阻器的存储器单元可被编程为高电阻状态或低电阻状态,其中高电阻状态的电阻的单元到单元变化相对较小,并且低电阻状态的电阻的单元到单元变化相对较小。当一起使用时,术语“高电阻状态”和“低电阻状态”意味着高电阻状态具有比低电阻状态更高的电阻。在一个实施方案中,低电阻状态被称为“置位”状态,高电阻状态被称为“复位”状态。又如,具有可调晶体管阈值电压的存储器单元可被编程为高阈值电压状态或低阈值电压状态,其中高阈值电压状态的阈值电压的单元到单元变化相对较小,并且低阈值电压状态的阈值电压的单元到单元变化相对较小。当一起使用时,术语“高阈值电压状态”和“低阈值电压状态”意味着高阈值电压状态具有比低阈值电压状态更高的阈值电压。因此,每个存储器单元352在处于低物理状态(例如,低电阻或低阈值电压)时应表现出相似的存储器单元电流。同样,每个存储器单元352在处于高物理状态(例如,高电阻或高阈值电压)时应表现出相似的存储器单元电流。
每个节点310的存储器单元352的数量可以根据应用而变化。在一个实施方案中,节点310在人工神经网络中的学习操作期间使用。在学习操作中,可希望每个节点310具有更多存储器单元352以获得高精度。例如,对于学习操作,每个节点310可能有六个存储器单元352(在一个实施方案中,其在权重中提供六位分辨率)。在一个实施方案中,节点310在人工神经网络中的推理操作期间使用。在推理操作中,每个节点310具有较少的存储器单元352就足够了。例如,对于学习操作,每个节点310可能有两个存储器单元352。在一个实施方案中,节点310用于学习操作和推理操作两者。在这种情况下,在一个实施方案中,截断在学习操作期间学习的权重是可以接受的,其中在推理操作期间不使用节点中的一些存储器单元。但是,节点中的所有存储器单元可用于学习权重且在推理操作中使用这些权重。
图3B是用于使用非易失性存储器单元执行乘法的装置320的一个实施方案的图。在一个实施方案中,节点310中的每个存储器单元352具有不同的大小,以便响应于相同量值的乘法电压来表示被乘数的不同位。如图3B所示,电压V被施加到所有三条第一导线308(1)、308(2)和308(3)。选定电压V_select被施加到第二导线306。因此,每个乘法电压由V-V_Select给出。
在一个实施方案中,当施加相同量值的乘法电压时,节点310中处于相同物理状态的每个存储器单元352传递不同量值的电流。例如,假设所有存储器单元处于高电流状态,则响应于相同量值的乘法电压,存储器单元352(1)可以传递“x微安”的电流,存储器单元352(2)可以传递“2x微安”的电流,存储器单元352(3)可以传递“4x微安”的电流。在低电流状态下,存储器单元电流也可以具有类似的关系,但是电流可以低得多。在一个实施方案中,前述内容允许节点310表示被乘数的不同位。
在一个实施方案中,节点310中的每个存储器单元352具有可调电阻器,该电阻器可被编程为不同的电阻。例如,具有可调电阻器的存储器单元可被编程为高电阻状态或低电阻状态以便存储一位。在一个实施方案中,低电阻状态是高电流状态,高电阻状态是低电流状态。在一个实施方案中,每个存储器单元352的可调电阻器具有不同的横截面积。存储器单元电流的量值可以与横截面积成比例。因此,在一个实施方案中,当施加相同量值的乘法电压时,处于相同物理状态的具有可调电阻器的存储器单元传递不同量值的电流。例如,假设相同量值的乘法电压被施加到每个存储器单元,当处于低电阻状态时,存储器单元352(1)可以传递“x微安”的电流,存储器单元352(2)可以传递“2x微安”的电流,存储器单元352(3)可以传递“4x微安”的电流。
在一个实施方案中,节点310中的每个存储器单元352具有可调阈值电压(Vt)晶体管,该晶体管可被编程为不同的阈值电压。例如,具有可调节Vt晶体管的存储器单元可被编程为高Vt状态或低Vt状态以便存储一位。在一个实施方案中,低Vt状态是高电流状态,高Vt状态是低电流状态。在一个实施方案中,节点中的每个存储器单元的可调Vt晶体管具有不同的宽长比(W/L)。电流的量值可以与W/L成比例。因此,在一个实施方案中,当施加相同量值的乘法电压时,处于相同物理状态的具有可调Vt电阻器的存储器单元传递不同量值的电流。例如,假设相同量值的乘法电压被施加到每个存储器单元,当处于低Vt状态时,存储器单元352(1)可以传递“x微安”的电流,存储器单元352(2)可以传递“2x微安”的电流,存储器单元352(3)可以传递“4x微安”的电流。
图3C是用于使用非易失性存储器单元执行乘法的装置340的一个实施方案的图。与图3B的示例中的存储器单元352不同,图3C中的存储器单元352全部具有大致相同的大小。由于制造存储器单元352的技术的限制,可能存在一些大小变化。在一个实施方案中,节点310中的每个存储器单元352接收不同量值的乘法电压,以便表示被乘数的不同位。如图3C所示,电压V被施加到第一导线308(3)。电压V/2被施加到第一导线308(2)。电压V/4被施加到第一导线308(1)。在该示例中,0V被施加到第二导线306。第二导线上的电压不需要是0V,但是为了便于讨论,将使用0V。
因此,存储器单元352(3)接收由V-0给出的乘法电压;存储器单元352(2)接收由V/2-0给出的乘法电压;存储器单元352(1)接收由V/4-0给出的乘法电压。在一个实施方案中,当施加相同量值的乘法电压时,节点310中处于导通状态的每个存储器单元352传递不同量值的电流。例如,假设所有存储器单元352处于高电流状态,则响应于其相应的乘法电压,存储器单元352(1)可以传递“x微安”的电流,存储器单元352(2)可以传递“2x微安”的电流,存储器单元352(3)可以传递“4x微安”的电流。在低电流状态下,存储器单元电流也可以具有类似的关系,但是电流可以低得多。然而,对于节点310中的每个存储器单元352,不需要存储器单元关断电流不同。在一个实施方案中,前述内容允许节点310表示被乘数的不同位。
第一导线308上的电压不需要具有4:2:1的比率,如图3C所示。在另一个实施方案中,第二导线306上的电压不为零,但存储器单元两端的电压比率(例如,乘法电压)为4:2:1。
在一些实施方案中,节点310中的每个存储器单元352是三端器件。图3D是节点的存储器单元是三端器件的装置360的图。除了第一导线308和第二导线306之外,该三端架构还增加了第三导线312。在一个实施方案中,第三导线312被称为源极线。电压V1’被施加到第三导线312(1)的源极端子362(1)。电压V2’被施加到第三导线312(2)的源极端子362(2)。电压V3’被施加到第三导线312(3)的源极端子362(3)。在一个实施方案中,每个第一导线318接收电压Vg。
一些三端存储器单元具有晶体管。在一些实施方案中,晶体管的栅极端子连接到第一导线308。在乘法操作的一个实施方案期间,晶体管的栅极端子具有固定电压。“固定电压”是指当阵列中存在更多节点时,所选择的每个第一导线308接收相同量值的电压。另外,在一个实施方案中,第二导线306上的电压是选择电压(用以选择连接到第二导线306的存储器单元),这也是固定电压。这意味着所选择的所有第二导线306具有施加于其上的相同量值的电压。因此,在一个实施方案中,改变第三导线312上的电压以便将乘法电压施加到存储器单元352。
三端存储器单元可以通过传递具有取决于存储器单元的物理状态(例如,电阻、Vt)的量值的存储器单元电流来响应乘法电压。存储器单元电流还可以取决于三个端子中的两个端子上的电压。对于一种类型的三端子存储器单元,存储器单元电流可以取决于第一导线308和第三导线312之间的电压。因此,在一个实施方案中,在第一导线308和第三导线312之间施加乘法电压。对于另一种类型的三端子存储器单元,存储器单元电流可以取决于第二导线308和第三导线312之间的电压。因此,在一个实施方案中,在第二导线308和第三导线308之间施加乘法电压。
可以在存储器节点310中使用各种各样的非易失性存储器单元。图4A示出了可在图3A、图3B或图3C的实施方案中使用的示例性双端存储器单元。在该示例中,双端器件具有选择器402和可调电阻器404。可调电阻器404可以是任何可逆电阻切换材料。可逆电阻切换材料可以在至少第一状态和第二状态之间重复切换。第一状态可以是高电阻状态,第二状态可以是低电阻状态。在一个实施方案中,高电阻状态是低电流(或关断)状态。在一个实施方案中,低电阻状态是高电流(或导通)状态。示例性可逆电阻切换材料包括相变材料、铁电材料、金属氧化物(例如,二氧化铪)、磁障调制开关结构或其他类似的可逆电阻切换材料。选择器402可以是二极管,其可以用于减少泄漏电流。选择器402有时被称为转向元件或隔离元件。
双端器件的一个端子连接到第一导线308。另一个端子连接到第二导线306。在所示配置中,选择器402直接连接到第一导线308,可调电阻器404直接连接到第二导线306。然而,在另一种配置中,选择器402直接连接到第二导线306,可调电阻器404直接连接到第一导线308。在一个实施方案中,在乘法操作期间,在第一导线308和第二导线306之间施加乘法电压。在一个实施方案中,第二导线306中的电流取决于乘法电压的量值和可调电阻器404的电阻。在一个实施方案中,在乘法电压的量值与存储器单元352的导通电流之间存在线性关系。在乘法电压的量值和存储器单元352的关断电流之间也可以存在线性关系,但这不是必需的。
在一些实施方案中,节点310中的存储器单元352是三端存储器单元。图4B和图4C示出了两个示例性三端存储器单元352。图4B示出了具有可调阈值电压(Vt)晶体管412的三端器件,其中该晶体管具有可调节的阈值电压。在一个实施方案中,可调Vt晶体管412具有低Vt状态和高Vt状态。在一个实施方案中,高Vt状态是低电流(或关断)状态。在一个实施方案中,低Vt状态是高电流(或导通)状态。可调Vt晶体管412可以在低阈值电压状态和高阈值电压状态之间重复切换。可调Vt晶体管412可以是铁电场效应晶体管(FeFET)。
可调Vt晶体管412的第一端子(晶体管栅极)连接到第一导线308。可调Vt晶体管412的第二端子连接到第二导线306。可调Vt晶体管412的第三端子连接到第三导线312。在一个实施方案中,第一导线308在乘法操作期间将固定电压传递到晶体管412的栅极。在一个实施方案中,调谐Vt晶体管412的栅极的电压被调谐,使得可调Vt晶体管412在线性状态下工作。在一个实施方案中,如果栅极电压大于第三导线312上的最大电压和可调Vt晶体管412的最大Vt之和,则可调Vt晶体管412以线性状态工作。
在一个实施方案中,在乘法操作期间,在第一导线308和第三导线312之间施加乘法电压。在一个实施方案中,第二导线306中的电流取决于乘法电压的量值和可调Vt晶体管412的Vt。在一个实施方案中,在乘法电压的量值与Vt晶体管412的导通电流之间存在线性关系。在乘法电压的量值和Vt晶体管412的关断电流之间也可以存在线性关系,但这不是必需的。
图4C示出了可用作存储器单元352的示例性三端器件。在该示例中,三端器件具有存取晶体管420和可调电阻器422。可调电阻器422可以是任何可逆电阻切换材料。可逆电阻切换材料可以在至少第一状态和第二状态之间重复切换。第一状态可以是高电阻状态,第二状态可以是低电阻状态。在一个实施方案中,高电阻状态是低电流(或关断)状态。在一个实施方案中,低电阻状态是高电流(或导通)状态。示例性可逆电阻切换材料包括相变材料、铁电材料、金属氧化物(例如,二氧化铪)、磁障调制开关结构或其他类似的可逆电阻切换材料。在一个实施方案中,存取晶体管420是场效应晶体管(FET)。在一个实施方案中,存取晶体管420是双极结型晶体管(BJT)。
图4C中的存储器单元352的第一(晶体管栅极)端子连接到第一导线308。第二端子连接到第二导线306。存储器单元352的第三端子连接到第三导线312。在一个实施方案中,第一导线308在乘法操作期间将固定电压提供到存取晶体管420的栅极。在一个实施方案中,在乘法操作期间,在第二导线306和第三导线312之间施加乘法电压。在一个实施方案中,第二导线306中的电流取决于乘法电压的量值和可调电阻器422的电阻。在一个实施方案中,在乘法电压的量值与存储器单元352的导通电流之间存在线性关系。在乘法电压的量值和存储器单元352的关断电流之间也可以存在线性关系,但这不是必需的。
图5A是可用于执行MAC的交叉点阵列500的一个实施方案的图。图5中存在存储器单元352的八个节点310。每个节点310与图3B中的节点310一致。图5A示出了两个数据行和六个物理行的存储器单元。四个节点310(1,1)、310(1,2)、310(1,3)和310(1,4)驻留在一个数据行中。四个节点310(2,1)、310(2,2)、310(2,3)和310(2,4)驻留在另一个数据行中。在一个实施方案中,数据行中的每个节点在乘法操作期间接收相同的乘数。然而,该数据行被分成多个物理行的存储器单元。在该示例中,每个数据行有三个物理行的存储器单元。
在该示例中,存储器单元352是双端器件并且与图4A的示例一致。在一个实施方案中,节点310中的每个存储器单元352具有不同的大小,以便每个存储器单元能够表示被乘数的不同位。例如,节点中的每个存储器单元中的可调电阻器404具有不同的大小。在一个实施方案中,可调电阻器404具有基本上圆形的横截面。在这种情况下,在一个实施方案中,节点中的每个存储器单元中的可调电阻器404的直径是不同的。
在一个实施方案中,可调电阻器404的横截面积的关系是“A”、“2A”和“4A”。这指的是垂直于可调电阻器404中的电流方向的横截面。此类关系导致“I”、“2I”和“4I”的导通电流关系(对于每个单元的相同乘法电压)。在一个实施方案中,该关系允许存储器单元表示二进制计数系统的“1s”位置、“2s”位置和“4s”位置。需注意,存储器单元的导电性(当处于导通状态时)可以表现出相同的关系。如果每个节点310存在多于三个存储器单元,则每增加一个存储器单元,横截面积可以以因数二增大。
在一些实施方案中,节点310中的存储器单元的可调电阻器404之间的大小关系可以用直径表示。例如,节点310中的非易失性存储器单元352可以从最低有效位到最高有效位排序。在一个实施方案中,存储器单元352中的可调电阻器404的直径相对于从最低有效位到最高有效位的前一存储器单元中的可调电阻器404大二的平方根倍。在一个实施方案中,当以横截面面积表示时,存储器单元352中的可调电阻器404的横截面面积相对于从最低有效位到最高有效位的前一存储器单元中的可调电阻器404大两倍。
节点310被布置为行和列。每列节点310连接到相同的第二导线306。节点310(1,1)和310(2,1)连接到第二导线306(1)。这允许节点310(1,1)和310(2,1)用在MAC(或矢量乘法运算)中。在该示例中,每个矢量具有两个元素。矢量的一个元素可以存储在节点310(1,1)中,矢量的另一个元素存储在节点310(2,1)中。存储在节点310(1,1)和310(2,1)中的矢量可以表示神经网络中的权重。为了便于讨论,该矢量将被称为第一权重矢量。然而,矢量不需要是神经网络中的权重。
另一个矢量由电压V1、V2表示(假设第二导线306(1)上的电压为零)。为了便于讨论,该矢量将被称为“输入矢量”。在一个实施方案中,输入矢量表示神经网络的输入神经元202。在乘法操作的一个实施方案期间,第二导线306接收选择电压。在一个实施方案中,每条第二导线306接收相同的电压。更一般地,在一个实施方案中,矢量的第一元素由V1与第二导线306上的电压之间的差值表示。更一般地,在一个实施方案中,矢量的第二元素由V2与第二导线306上的电压之间的差值表示。
在一个实施方案中,电压V1和V2被同时施加到第一导线308(如图5A所示),而选择电压被施加到第二导线306(1)。这导致节点310(1,1)和310(1,2)中的存储器单元中的存储器单元电流,如已关于图3B所讨论的。因此,来自节点310(1,1)中的存储器单元的电流表示施加到节点310(1,1)中的存储器单元的乘法电压与存储在节点310(1,1)中的被乘数相乘。来自节点310(2,1)中的存储器单元的电流表示施加到节点310(2,1)中的单元的乘法电压与存储在节点310(2,1)中的被乘数相乘。来自节点310(1,1)和节点310(1,2)的电流组合形成MAC操作。换句话说,第二导线306(1)中的电流(Iv1)表示第一权重矢量与输入矢量的矢量点积。
可以使用其他节点同时执行三个其他MAC操作(或矢量/矢量乘法)。节点310(1,2)和310(2,2)连接到第二导线306(2)。这允许节点310(1,2)和310(2,2)用在MAC(或矢量乘法运算)中。第二权重矢量的一个元素可以存储在节点310(1,2)中,第二权重矢量的另一个元素存储在节点310(2,2)中。第二导线306(2)中的电流Iv2表示输入矢量与第二权重矢量的矢量点积。
节点310(1,3)和310(2,3)连接到第二导线306(3)。这允许节点310(1,3)和310(2,3)用在MAC(或矢量乘法运算)中。第三权重矢量的一个元素可以存储在节点310(1,3)中,第三权重矢量的另一个元素存储在节点310(2,3)中。第二导线306(3)中的电流Iv3表示输入矢量与第三权重矢量的矢量点积。
节点310(1,4)和310(2,4)连接到第二导线306(4)。这允许节点310(1,4)和310(2,4)用在MAC(或矢量乘法运算)中。第四权重矢量的一个元素可以存储在节点310(1,4)中,第四权重矢量的另一个元素存储在节点310(2,4)中。第二导线306(4)中的电流Iv4表示输入矢量与第四权重矢量的矢量点积。
电流Iv1、Iv2、Iv3和Iv4可以称为矢量电流。尽管图5A中未示出感测电路150,但感测电路150可以用于感测电流Iv1、Iv2、Iv3和Iv4。在一个实施方案中,感测电路150执行电流Iv1、Iv2、Iv3和Iv4的模拟到数字转换,以便产生表示矢量/矩阵乘法的矢量。“矢量/矩阵”乘法中的矢量是元素为乘数的矢量。矩阵是存储在节点中的被乘数。然而,不需要将模拟电流转换为数字值。另一种可能性是将电流Iv1、Iv2、Iv3和Iv4中的每一个与参考电流进行比较,并为每次比较生成结果。
图5B示出了具有交叉点阵列550的装置的一个实施方案,该交叉点阵列可用于执行矢量/矢量乘法,类似于图5A的阵列500。然而,图5B中的存储器单元352是三端存储器单元。每个存储器单元具有可调Vt晶体管412。图4B示出了可用于图5B的阵列550中的具有可调Vt晶体管412的三端存储器单元。
在一个实施方案中,节点310中的每个存储器单元352具有不同的大小,以便每个存储器单元能够表示被乘数的不同位。例如,节点中的每个存储器单元中的可调Vt晶体管412具有不同的大小(例如,W/L)。在一个实施方案中,可调Vt晶体管412的W/L的关系是“W/L”、“2W/L”和“4W/L”。此类关系导致“I”、“2I”和“4I”的导通电流关系(对于每个单元的相同乘法电压)。在一个实施方案中,该关系允许存储器单元表示二进制计数系统的“1s”位置、“2s”位置和“4s”位置。如果每个节点310存在多于三个存储器单元,则每增加一个存储器单元,W/L可以以因数二增大。
例如,节点310中的非易失性存储器单元352可以从最低有效位到最高有效位排序。在一个实施方案中,存储器单元352中的可调Vt晶体管412的W/L相对于从最低有效位到最高有效位的前一存储器单元中的可调Vt晶体管412大两倍。
图5B的架构相对于图5B的架构增添了第三导线312。第三导线312可以称为源极线。图5B中有六行存储器单元,第三导线312(1,3)连接到顶行,第三导线312(1,2)连接到下一行,第三导线312(1,1)连接到再下一行。在一个实施方案中,这三行中的每一行中的每个存储器单元用于存储被乘数的不同位。例如,连接到第三导线312(1,3)的行中的存储器单元可用于存储“4s”位置,连接到第三导线312(1,2)的行中的存储器单元可用于存储“2s”位置,连接到第三导线312(1,1)的行中的存储器单元可用于存储“1s”位置。
电压V1’被施加到三条第三导线312(1,3)、312(1,2)、312(1,1)。电压V2’被施加到三条第三导线312(2,3)、312(2,2)、312(2,1)。此外,这些电压可以被同时施加到第三导线312。电压Vg被施加到每个第一导线308。在一个实施方案中,乘法电压被定义为连接到存储器单元的第一导线308和第三导线312上的电压之间的差。位线选择电压可以被施加到每个第二导线306。这些施加的电压导致第二导线306(1)中的电流Iv1,第二导线306(2)中的电流Iv2,第二导线306(3)中的电流Iv3和第二导线306(4)中的电流Iv4。在一个实施方案中,这些电流中的每一个表示存储在一列节点中的权重矢量和一个输入矢量的矢量点积。
图6A是可用于执行MAC的存储器阵列600的一个实施方案的图。阵列600中的节点310与图3C中的节点一致。图6A中的存储器单元352与图4A的存储器单元一致,但是也可以使用其他类型的双端存储器单元。
电压V1被施加到第一导线308(1,3)。电压0.5*V1被施加到第一导线308(1,2)。电压0.25*V1被施加到第一导线308(1,1)。电压V2被施加到第一导线308(2,3)。电压0.5*V2被施加到第一导线308(2,2)。电压0.25*V2被施加到第一导线308(2,1)。在该示例中,每个第二导电306线上的电压是0V。如上面关于图3C所讨论的那样,第二导线306上的电压不需要是0V。然而,如果在第二导线306上使用非零电压,则在一个实施方案中,节点310中的三个存储器单元上的电压具有4:2:1的比率。
每个节点310可以用于执行存储在节点310中的被乘数与由乘法电压表示的乘数的乘法,如关于图3C的节点所讨论的。然而,类似于图5A的讨论,可以使用一列节点310来执行MAC操作。另外,可以使用节点310的阵列来执行矢量/矩阵乘法。
图6B是可用于执行MAC的存储器阵列650的一个实施方案的图。阵列650中的节点310与图3C中的节点一致。图6B中的存储器单元352与图4B的存储器单元一致,但是也可以使用其他类型的三端存储器单元。
电压V1’被施加到第一导线308(1,3)。电压V1”被施加到第一导线308(1,2)。电压V1”’被施加到第一导线308(1,1)。电压V2’被施加到第一导线308(2,3)。电压V2’被施加到第一导线308(2,2)。电压V2”被施加到第一导线308(2,1)。电压Vg被施加到每个第三导线312。
每个存储器单元352可以传递基于可调Vt晶体管的栅极和源极之间的电压的电流。因此,每个存储器单元352可以传递基于连接到存储器单元的第一导线308和第三导线312之间的电压的电流。该电压在本文中可被称为“乘法电压”。在一个实施方案中,每个节点310中的乘法电压的比率是4:2:1。因此,根据Vg的量值,可以容易地确定V1’、V1”和V1”’的量值以实现此类比率。同样,可以容易地确定V2’、V2”和V2”’的量值以实现此类比率。
每个节点310可以用于执行存储在节点310中的被乘数与由乘法电压表示的乘数的乘法,如关于图3C的节点所讨论的。然而,类似于图5B的讨论,可以使用一列节点310来执行MAC操作。另外,可以使用节点310的阵列来执行矢量/矩阵乘法。
如结合图5A所讨论的那样,感测电路150可以用于感测图5B、图6A和/或图6B中的电流Iv1、Iv2、Iv3和Iv4。因此,对于图5B、图6A和/或
图6B,感测电路150可以执行电流Iv1、Iv2、Iv3和Iv4的模拟到数字转换,以便产生表示矢量/矩阵乘法的矢量。然而,不需要将模拟电流转换为数字值。另一种可能性是将电流Iv1、Iv2、Iv3和Iv4中的每一个与参考电流进行比较,并为生成每次比较结果。
图7是使用非易失性存储器单元将两个矢量相乘的过程700的一个实施方案的流程图。过程700可以在图5A、图5B、图6A或图6B中的任何阵列中执行,但不限于那些阵列。过程700描述了使用一列“n”个节点310,使得矢量/矢量乘法执行。该过程可以在节点310的“m”列上并行执行,以执行矢量/矩阵乘法(对于“n×m”矩阵)。过程700可以使用图4A、图4B或图4C中的任何存储器单元,但不限于那些存储器单元。
步骤702包括将具有“n”个元素的第一矢量的每个元素数字化为“r”个位。在一个实施方案中,该第一矢量表示人工神经网络200中的权重。第一矢量最初可以由任何类型的信息表示,诸如“n”个模拟信号或“n”个数字信号。如果第一矢量最初由模拟信号表示,则步骤702可以包括将该模拟信号转换为数字信号。
步骤704包括将第一矢量编程到非易失性存储器单元352的对应“n”个节点310中。在一个实施方案中,每个节点310电连接到相同的第二导线306。节点310电连接到第二导线306意味着该节点中的每个存储器单元具有连接到相同的第二导线的端子。在一个实施方案中,每个节点310电连接到“r”个不同的第一导线308。这意味着该节点中的每个存储器单元具有连接到不同的第一导线308的端子。在一个实施方案中,每个节点310电连接到“r”个不同的第一导线308并且还连接到“r”个不同的第三导线312。这意味着该节点中的每个存储器单元具有连接到不同的第一导线308的端子,并且还具有连接到不同的第三导线312的另一个端子。
在一个实施方案中,每个存储器单元352被编程为两个状态中的一个。在一个实施方案中,这两个状态是低电阻(或高电导)状态和高电阻(或低电导)状态。在一个实施方案中,这两个状态是低Vt状态和高Vt状态。在一个实施方案中,这两个状态是高电流(或导通)状态和低电流(或关断)状态。
步骤706包括同时将“n”组一个或多个乘法电压施加到存储器单元的对应“n”个节点310。步骤706可以包括在每个存储器单元352的两个端子之间施加乘法电压。相对于图5A中的存储器单元352,每个乘法电压可以被施加在第一导线308中的一个和第二导线308中的一个之间。相对于图5B中的存储器单元352,每个乘法电压可以被施加在第一导线308中的一个和第三导线312中的一个之间。对于图5A和图5B两者,在这“n”个组中的每一组中可以存在单个乘法电压。这是因为节点310中的每个存储器单元352在图5A和图5B中的阵列中接收相同量值的乘法电压。
相对于图6A中的存储器单元352,每个乘法电压可以被施加在第一导线308中的一个和第二导线306中的一个之间。相对于图6B中的存储器单元352,每个乘法电压可以被施加在第一导线308中的一个和第三导线312中的一个之间。对于图6A和图6B两者,在这“n”组中的每一组中存在多于一个的乘法电压。这是因为节点310中的每个存储器单元352在图6A和图6B中的阵列中接收不同量值的乘法电压。然而,在一个实施方案中,施加到节点310的每个乘法电压表示相同的乘数。
步骤708包括感测第二导线中由于施加乘法电压所引起的总电流。该电流的量值表示第一矢量和第二矢量的矢量点积。在一个实施方案中,将第二导线中的总电流的量值与参考电流的量值进行比较。该比较可由感测放大器执行。感测放大器可以输出该总电流的量值是大于还是小于参考电流的量值的结果。在一个实施方案中,总电流的量值从模拟电流转换为数字值(例如,多个位)。
图8是可用于在乘法操作期间提供电压的电路800的一个实施方案的图。电路800可用于提供图3C中的电压V、V/2和V/4。电路800可用于提供图6A中的电压V1、0.5*V1和0.25*V1。电路800可用于提供图6A中的电压V2、0.5*V2和0.25*V2。电路800具有数模转换器(DAC)802。三个源极跟随器804a、804和804c连接到DAC 802。
DAC 802具有三个参考电流源820a、820b和820c。参考电流源820a向晶体管T1提供参考电流Iref。参考电流源820b向晶体管T2提供参考电流Iref/2。参考电流源820c向晶体管T3提供参考电流Iref/4。这三个晶体管T1、T2、T3中的每一个的栅极由输入信号822的一“位”驱动。在该示例中,输入信号822是具有三位[0至2]的数字信号。在一个实施方案中,输入信号822表示输入矢量的一个元素。
三个晶体管T1、T2、T3中的每一者连接到分压器814,该分压器具有电阻器808、电阻器810和电阻器812。电阻器808具有“R欧姆”的电阻。电阻器810具有“R/2欧姆”的电阻。电阻器812具有“R/2欧姆”的电阻。根据提供给晶体管T1、T2、T3的栅极的位的值,晶体管将其参考电流传递到分压器814或不将其参考电流传递到分压器814。例如,如果该位具有值“1”,则晶体管将其参考电流传递到分压器814。
电阻器808的顶部端子826处的电压量值是输入数字信号822的模拟版本。该电压的量值为“Vin”。电阻器810的顶部端子828处的电压的量值是电阻器808的顶部端子826处的电压的端子的量值的一半。电阻器812的顶部端子830处的电压的量值是电阻器810的顶部端子828处的电压的端子的量值的一半。
源极跟随器804a中的晶体管T4的栅极连接到电阻器808的顶部端子826,其中电压Vin出现在晶体管T4的源极。因此,电压Vin可以被提供给阵列中的一行806a。
源极跟随器804b中的晶体管T5的栅极连接到电阻器810的顶部端子828,其中电压Vin/2出现在晶体管T5的源极处。因此,电压Vin/2可以被提供给阵列中的一行806b。
源极跟随器804c中的晶体管T6的栅极连接到电阻器812的顶部端子830,其中电压Vin/4出现在晶体管T6的源极处。因此,电压Vin/4可以被提供给阵列中的一行806c。
本文提供了许多示例,其中节点310中的存储器单元352被编程为两个物理状态中的一个。在一些实施方案中,节点310中的存储器单元352被编程为四个或更多个物理状态中的一个。因此,在一些实施方案中,每个存储器单元352可以存储被乘数的两个或更多位。图9示出了存储器单元352各自存储被乘数的两个位的阵列900的一个实施方案。在该示例中,被乘数具有6位分辨率。位1和位2存储在存储器单元352(1)中,位3和位4存储在存储器单元352(2)中,位5和位6存储在存储器单元352(3)中。
图9中的每个存储器单元352可以被编程为四个不同物理状态中的一个(例如,电阻、Vt)。在一个实施方案中,每个存储器单元352具有可调电阻器,并且四个不同的状态是四个不同的电阻(或者可选地,电导)。在一个实施方案中,每个存储器单元352具有带有可调阈值电压的晶体管,并且四个不同的状态是四个不同的晶体管阈值电压。为了便于讨论,这四个状态将被称为“00”、“01”、“10”和“11”。每个物理状态与存储器单元电流相关联。为了便于讨论,这些电流将被称为I00、I01、I10和I11。在一个实施方案中,这些电流的量值以序列I00、I01、I10和I11增加。在一个实施方案中,这四个电流的量值之间存在线性关系。
图9的阵列900的操作可类似于图3A的阵列。在图9的阵列900的一个实施方案中,选择每个乘法电压的量值,使得每个存储器单元电流表示乘数和存储在该存储器单元中的被乘数的位的乘积。例如,考虑其中所有存储器单元352(1)、352(2)、352(3)都处于“11”状态(其对应于I11电流)的示例。在该示例中,每个存储器单元在其被乘数的位置存储“11”。在这种情况下,存储器单元352(1)可以响应于施加到存储器单元352(1)的乘法电压而传递“x微安”的电流;存储器单元352(2)可响应于施加到存储器单元352(2)的乘法电压而传递“4x微安”的电流;并且存储器单元352(3)可响应于施加到存储器单元352(3)的乘法电压而传递“16x微安”的电流。效果是每个存储器单元电流表示相同乘数和存储在该存储器单元中的被乘数的两个位的乘积。通常,增大乘法电压的量值会增大存储器单元电流。在一个实施方案中,存储器单元电流(对于至少01、10和11状态)与乘法电压具有线性关系。因此,可以调节乘法电压的量值以便表示不同的乘数。在I00电流状态下,存储器单元电流也可以具有类似的关系(例如,16:4:1的关系),但是电流可以低得多。在一个实施方案中,前述内容允许具有三个存储器单元的节点310表示被乘数的六个不同位。
可以通过向节点310添加更多存储器单元352来提高分辨率。此外,每个存储器单元可以存储三个或更多位。图3B、图3C、图3D、图5A、图5B、图6A和图6B中所示的各种阵列也可用于存储每个存储器单元352的两个或更多个位。
本文公开的第一实施方案包括一种装置,该装置包括存储器单元的节点、与存储器单元的节点相关联的位线、写入电路、乘法电路和感测电路。写入电路被配置为在存储器单元的节点中存储被乘数。写入电路被配置为在该节点的每个存储器单元中存储被乘数的不同的一组一个或多个位。乘法电路被配置为将乘法电压同时施加到该节点中的每个存储器单元。每个存储器单元被配置为将存储器单元电流传递到位线,该电流表示乘数和存储在该存储器单元中的被乘数的这组一个或多个位的乘积。乘数由施加到每个相应存储器单元的乘法电压的量值表示。感测电路被配置为感测位线中的总电流的量值,该总电流是由乘法电路同时向节点中的每个存储器单元施加乘法电压而产生的。总位线电流的量值表示乘数和被乘数的乘积。
在第二实施方案中,为促进第一实施方案,该装置中的存储器单元位于具有存储器单元行和存储器单元列的交叉点阵列中。节点中的每个存储器单元位于交叉点阵列的不同行中。
在第三实施方案中,为促进第一或第二实施方案,存储器单元的节点包括“r”个存储器单元。写入电路还被配置为将被乘数数字化为“r”个位。写入电路被进一步配置为将这“r”个位中的一个存储到节点中的“r”个存储器单元中的每一者中。
在第四实施方案中,为促进第一至第三实施方案中的任何一个,节点中的每个非易失性存储器单元具有导通电流和关断电流,其中导通电流具有量值。节点中的存储器单元的导通电流的量值彼此相差二的幂。
在第五实施方案中,为促进第一至第四实施方案中的任何一个,节点中的每个非易失性存储器单元具有可调电阻器,该电阻器具有横截面积。节点中的每个非易失性存储器单元的可调电阻器的横截面积是不同的,以便存储被乘数的不同位。
在第六实施方案中,为促进第一至第五实施方案中的任何一个,节点中的非易失性存储器单元从最低有效位到最高有效位排序。节点中的非易失性存储器单元各自包括具有直径的可调电阻器。存储器单元中的可调电阻器的直径相对于从最低有效位到最高有效位的前一存储器单元中的可调电阻器大约二的平方根倍。
在第七实施方案中,为促进第一至第六实施方案中的任何一个,节点中的非易失性存储器单元从最低有效位到最高有效位排序。非易失性存储器单元各自包括铁电场效应晶体管(FeFET),每个FeFET具有宽长比(W/L)。随着每个存储器单元从最低有效位到最高有效位,FeFET的W/L加倍。
在第八实施方案中,为促进第一至第七实施方案中的任何一个,乘法电路被配置为向节点中的每个非易失性存储器单元同时施加不同量值的乘法电压。不同量值的乘法电压具有为二的不同幂的量值。
在第九实施方案中,为促进第一至第八实施方案中的任何一个,该装置还包括非易失性存储器单元组成的“n-1”个附加节点。“n-1”个附加节点中的每个存储器单元与位线相关联,其中存储器单元的“n”个节点与位线相关联。写入电路被进一步配置为在“n-1”个附加节点中的对应节点中存储被乘数,其中“n-1”个节点中的每个存储器单元存储其被乘数的不同位,其中存储器单元的“n”个节点存储第一矢量。乘法电路被进一步配置为将“n”组一个或多个乘法电压同时施加到存储器单元的“n”个节点中的对应节点中的存储器单元。每个节点中的每个存储器单元被配置为传递存储器单元电流,该存储器单元电流表示存储在该存储器单元中的被乘数的一组一个或多个位与第二矢量的一个元素的乘积。第二矢量由“n”组一个或多个乘法电压表示。感测电路被进一步配置为感测位线中的矢量电流的量值,该总电流是由乘法电路同时向这“n”个节点中的每个存储器单元施加乘法电压而产生的。位线矢量电流的量值表示第一矢量和第二矢量的乘积。
一个实施方案包括非易失性存储设备,其包括导线、“r”个二进制非易失性存储器单元的“n”个节点,以及与该导线和“r”个二进制非易失性存储器单元的“n”个节点通信的一个或多个控制电路。这“n”个节点中的每个存储器单元电连接到该导线。每个存储器单元具有导通电流和关断电流。一个节点中的存储器单元具有“r”个不同的导通电流。用于节点的“r”个不同导通电流包括这样的序列,其中电流量值是序列中前一电流的电流量值的两倍。一个或多个控制电路被配置为在非易失性存储器单元的“n”个节点中存储具有“n”个元素的第一矢量,包括将这“n”个元素中的一个元素存储到“n”个存储器单元的节点中的每一个中。一个或多个控制电路被配置为将“n”个乘法电压同时施加到非易失性存储器单元组成的对应的“n”个节点,其中每个非易失性存储器单元响应于施加到该存储器单元的乘法电压而向导线提供导通电流或关断电流。“n”个乘法电压中的每一个乘法电压基于第二矢量的“n”个元素中的一个元素。一个或多个控制电路被配置为确定来自“n”个节点中的所有非易失性存储器单元的存储器单元电流的总量值。该总量值表示第一矢量和第二矢量的乘积。
一个实施方案包括非易失性存储设备,其包括多个第一导线,包括一组“r”个第一导线,其中“r”是大于“1”的整数。该非易失性存储设备还包括多个非易失性存储器单元,包括“r”个非易失性存储器单元的节点,该节点中的每个存储器单元连接到这组“r”个第一导线中的一个第一导线。该非易失性存储设备还包括连接到“r”个存储器单元的节点的第二导线。该非易失性存储设备还包括与多条第一导线和第二导线连通的一个或多个控制电路。这一个或多个控制电路被配置为在“r”个存储器单元的节点中存储被乘数。这一个或多个控制电路被配置为将“r”个乘法电压中的不同的一个同时施加到节点中的“r”个存储器单元中的每一个。节点中的每个非易失性存储器单元响应于施加到该存储器单元的乘法电压而在第二导线中产生电流。“r”个乘法电压各自代表相同的乘数。“r”个乘法电压包括这样的序列,其中电压量值是序列中前一电压的电压量值的一半。这一个或多个控制电路被配置为确定第二导线中来自该节点中的每个存储器单元的总电流。该总电流表示乘数和被乘数的乘积。
一个实施方案包括操作非易失性存储装置的方法。该方法包括将具有“n”个元素的第一矢量的每个元素数字化为“r”个位。该方法还包括将第一矢量编程到非易失性存储器单元的“n”个节点中,包括将“n”个元素中的一个元素的不同位编程到节点中的每个非易失性存储器单元中。这“n”个节点中的每个存储器单元与相同的位线相关联。这“n”个节点中的每个存储器单元被编程为高电流状态或低电流状态。该方法还包括将“n”组一个或多个乘法电压同时施加到非易失性存储器单元的“n”个节点中的对应节点。每个存储器单元被施加一个乘法电压,并且被配置为响应于所施加的乘法电压向位线提供电流。这“n”组一个或多个乘法电压表示具有“n”个元素的第二矢量。该方法还包括感测位线中由于将这“n”组一个或多个乘法电压同时施加到非易失性存储器单元的“n”个节点而产生的总电流。感测的总电流的量值表示第一矢量和第二矢量的点积。
一个实施方案包括非易失性存储器系统,其包括:多个非易失性存储器单元,包括“n×m”个节点的“r”个存储器单元;“m”个位线,每个位线与存储器单元节的点中的“n”个相关联;和编程装置,其用于在“n×m”个节点的“r”个存储器单元的每一个中存储被乘数。该编程装置用于在节点的每个存储器单元中以二进制计数系统存储被乘数的不同位。“n×m”个节点中的被乘数表示“n×m”矩阵。该非易失性存储器系统还包括乘法装置,其用于将“n”组一个或多个乘法电压中的一组同时施加到存储器单元的“n×m”个节点。每一组表示具有“n”个元素的第一矢量的一个元素。“n×m”个节点中的每个存储器单元被配置为响应于施加到该存储器单元的乘法电压而将电流传递到“m”个位线中的一个,该电流表示存储在该存储器单元中的位与第一矢量的一个元素的乘积。该非易失性存储器系统还包括用于生成具有“m”个元素的第二矢量的结果装置。第二矢量的每个元素基于“m”个位线中的一个位线中的电流。第二矢量表示“n×m”矩阵与第一矢量相乘。
在一个实施方案中,编程装置包括存储器核心控制电路108、地址解码器120、电压发生器132、用于选定控制线132a的电压发生器、用于未选定控制线132b的电压发生器、用于参考信号132c的信号发生器,传输数据锁存器148、写入电路146、状态机、页面寄存器、控制电路和/或感测放大器中的一个或多个。该编程装置可包括其他硬件和/或软件。
在一个实施方案中,乘法装置包括存储器核心控制电路108、地址解码器120、电压发生器132、用于选定控制线132a的电压发生器、用于未选定控制线132b的电压发生器、用于参考信号132c的信号发生器,传输数据锁存器148、乘法电路146、状态机、页面寄存器、控制电路和/或感测放大器中的一个或多个。该乘法装置可包括其他硬件和/或软件。
在一个实施方案中,结果装置包括存储器核心控制电路108、用于参考信号132c的信号发生器、状态机、控制电路、感测放大器和/或数模转换器中的一个或多个。该结果装置可包括其他硬件和/或软件。
出于说明和描述的目的已提供了上述详细描述。其并非旨在详尽的或旨在限制于本发明所公开的精确形式。根据以上描述,很多修改形式和变型形式都是可能的。选择所述实施方案是为了最佳地阐明本发明的原理以及其实际应用,以由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种实施方案的技术。本技术的范围由所附权利要求书限定。
Claims (19)
1.一种装置,包括:
存储器单元的节点,所述存储器单元驻留在具有存储器单元行和存储器单元列的交叉点阵列中;
位线,所述位线与所述存储器单元的节点相关联;
写入电路,所述写入电路被配置为在所述存储器单元的节点中存储被乘数,所述写入电路被配置为在所述节点的每个存储器单元中存储所述被乘数的不同的一组一个或多个位;
乘法电路,所述乘法电路被配置为向所述节点中的每个存储器单元同时施加乘法电压,每个存储器单元被配置为将存储器单元电流传递到所述位线,所述存储器单元电流表示乘数和存储在所述存储器单元中的所述被乘数的所述一组一个或多个位的乘积,所述乘数由施加到每个相应存储器单元的所述乘法电压的量值表示;和
感测电路,所述感测电路被配置为感测所述位线中的总电流的量值,所述总电流是由所述乘法电路向所述节点中的每个存储器单元同时施加乘法电压而产生的,所述总电流的所述量值表示所述乘数和所述被乘数的乘积;
其中所述装置还包括存储器单元的“n-1”个附加节点,所述“n-1”个附加节点中的每个存储器单元与所述位线相关联,其中存储器单元的“n”个节点与所述位线相关联,其中存储器单元的所述“n”个节点中的每个存储器单元被编程为高电流状态或低电流状态,并且其中:
所述写入电路被进一步配置为在所述“n-1”个附加节点中的对应节点中存储被乘数,其中所述“n-1”个节点中的每个存储器单元存储其被乘数的不同位,其中所述“n”个存储器单元节点存储第一矢量;
所述乘法电路被进一步配置为将“n”组一个或多个乘法电压同时施加到存储器单元的所述“n”个节点中的对应节点中的存储器单元,每个节点中的每个存储器单元被配置为传递存储器单元电流,所述存储器单元电流表示存储在所述存储器单元中的所述被乘数的一组一个或多个位与第二矢量的一个元素的乘积,所述第二矢量由所述“n”组一个或多个乘法电压表示;并且
所述感测电路被进一步配置为感测所述位线中的矢量电流的量值,所述矢量电流是由所述乘法电路向存储器单元的所述“n”个节点中的每个存储器单元同时施加乘法电压而产生的,所述位线矢量电流的所述量值表示所述第一矢量和所述第二矢量的点积。
2.根据权利要求1所述的装置,其中:
所述节点中的每个存储器单元位于所述交叉点阵列的不同行中。
3.根据权利要求1所述的装置,其中:
所述存储器单元节点包括“r”个存储器单元;
所述写入电路被进一步配置为将所述被乘数数字化为“r”个位;并且
所述写入电路被进一步配置为将所述“r”个位中的一位存储到所述节点中的所述“r”个存储器单元中的每一个中。
4.根据权利要求1所述的装置,其中:
所述节点中的每个存储器单元具有导通电流和关断电流,所述导通电流具有量值;并且
所述节点中的所述存储器单元的所述导通电流的所述量值彼此相异二的幂。
5.根据权利要求1所述的装置,其中:
所述节点中的每个存储器单元具有可调电阻器,所述可调电阻器具有横截面积,所述节点中的每个存储器单元的所述可调电阻器的所述横截面积是不同的,以便存储所述被乘数的不同位。
6.根据权利要求1所述的装置,其中:
所述节点中的所述存储器单元从最低有效位到最高有效位排序;
所述节点中的所述存储器单元各自包括具有直径的可调电阻器;并且
存储器单元中的所述可调电阻器的所述直径相对于从所述最低有效位到所述最高有效位的前一存储器单元中的所述可调电阻器为其大约二的平方根倍。
7.根据权利要求1所述的装置,其中:
所述节点中的所述存储器单元从最低有效位到最高有效位排序;
所述存储器单元各自包括铁电场效应晶体管FeFET,每个FeFET具有宽长比W/L;并且
随着每个存储器单元从所述最低有效位到所述最高有效位,所述FeFET的所述W/L加倍。
8.根据权利要求1所述的装置,其中:
所述乘法电路被配置为向所述节点中的每个存储器单元同时施加不同量值的乘法电压,所述不同量值的乘法电压具有为二的不同幂的量值。
9.一种非易失性存储设备,包括:
导线;
二进制非易失性存储器单元的“n”个节点,二进制非易失性存储器单元的所述“n”个节点中的每个存储器单元电连接到所述导线,每个存储器单元具有导通电流和关断电流,节点中的所述存储器单元具有“r”个不同的导通电流,用于节点的所述“r”个不同的导通电流包括一个序列,其中导通电流量值是所述序列中的前一导通电流的导通电流量值的两倍;
与所述导线和二进制非易失性存储器单元的所述“n”个节点通信的一个或多个控制电路,所述一个或多个控制电路被配置为:
在二进制非易失性存储器单元的所述“n”个节点中存储具有“n”个元素的第一矢量,包括将所述“n”个元素中的一个元素存储到二进制非易失性存储器单元的所述“n”个节点中的每一个中;
将“n”个乘法电压同时施加到二进制非易失性存储器单元的对应的“n”个节点,其中每个非易失性存储器单元响应于施加到所述存储器单元的所述乘法电压而向所述导线提供所述导通电流或所述关断电流,其中所述“n”个乘法电压中的每一个基于第二矢量的“n”个元素中的一个元素;以及
确定来自二进制非易失性存储器单元的所述“n”个节点中的所有非易失性存储器单元的所述存储器单元电流的总量值,所述总量值表示所述第一矢量和所述第二矢量的乘积。
10.根据权利要求9所述的非易失性存储设备,其中:
所述一个或多个控制电路被进一步配置为,对于所述第一矢量的每个元素:
将所述元素数字化为“r”个位;并且
将所述“r”个位中的一位存储到二进制非易失性存储器单元的所述“n”
个节点中的一个节点的每个存储器单元中。
11.根据权利要求9所述的非易失性存储设备,其中:
所述二进制非易失性存储器单元各自包括具有横截面积的可调电阻器;并且
对于一个存储器单元节点,每个可调电阻器的横截面积是二的不同幂乘以所述节点中的最小可调电阻器的所述横截面积。
12.根据权利要求9所述的非易失性存储设备,其中:
所述二进制非易失性存储器单元各自包括铁电场效应晶体管FeFET,所述铁电场效应晶体管FeFET具有宽长比W/L;并且
对于一个存储器单元节点,每个FeFET的W/L是二的不同幂乘以所述节点中的最小FeFET的所述W/L。
13.一种非易失性存储设备,包括:
多个第一导线,包括一组“r”个第一导线,其中“r”是大于“1”的整数;
多个非易失性存储器单元,包括“r”个非易失性存储器单元的节点,所述节点中的每个存储器单元连接到所述一组“r”个第一导线中的所述第一导线中的一个第一导线;
第二导线,所述第二导线连接到“r”个非易失性存储器单元的所述节点;
一个或多个控制电路,所述一个或多个控制电路与所述多个第一导线和所述第二导线通信,所述一个或多个控制电路被配置为:
将被乘数存储在“r”个非易失性存储器单元的所述节点中;
向所述节点中的所述“r”个存储器单元中的每一个存储器单元同时施加“r”个乘法电压中的不同一者,其中所述节点中的每个非易失性存储器单元响应于施加到所述存储器单元的所述乘法电压而在所述第二导线中产生电流,所述“r”个乘法电压各自表示相同的乘数,所述“r”个乘法电压包括一个序列,其中每个电压量值是所述序列中前一电压的电压量值的一半;并且
确定所述第二导线中来自所述节点中的每个存储器单元的总电流,所述总电流表示所述乘数和所述被乘数的乘积。
14.根据权利要求13所述的非易失性存储设备,其中所述一个或多个控制电路被进一步配置为:
将每个存储器单元编程为导通状态或关断状态,以便将所述被乘数的一位存储到每个存储器单元中。
15.根据权利要求14所述的非易失性存储设备,其中所述一个或多个控制电路被进一步配置为:
将表示所述被乘数的信息数字化为“r”个位。
16.根据权利要求13所述的非易失性存储设备,其中:
所述多个第一导线包括“n”组“r”个第一导线;
所述多个非易失性存储器单元包括“r”个非易失性存储器单元的“n”个节点,“r”个非易失性存储器单元的每个节点与一组“r”个第一导线相关联,所述“n”个节点中的每个节点中的每个存储器单元连接到所述第一导线中的一个;
所述第二导线连接到“r”个非易失性存储器单元的所述“n”个节点中的每个存储器单元;
所述一个或多个控制电路被进一步配置为:
在“r”个非易失性存储器单元的所述“n”个节点中的每一个节点中存储不同的被乘数;
将“n”组“r”个乘法电压同时施加到“r”个非易失性存储器单元的所述“n”个节点,用于所述“n”组中的每一组的所述“r”个乘法电压包括一个序列,其中所述电压量值是所述序列中前一电压的所述电压量值的一半,其中所述“n”个节点中的每个非易失性存储器单元响应于所施加的乘法电压中的一个而在所述第二导线中产生电流,所述“n”组“r”个乘法电压表示具有元素的一个矢量;并且
感测所述第二导线中由于将所述“n”组“r”个乘法电压同时施加到“r”个非易失性存储器单元的所述“n”个节点而产生的总电流,所述总电流的量值表示所述矢量的所述元素乘以“r”个非易失性存储器单元的所述“n”个节点中的所述被乘数的乘法与累加。
17.一种操作非易失性存储装置的方法,所述方法包括:
将具有“n”个元素的第一矢量的每个元素数字化为“r”个位;
将所述第一矢量编程到非易失性存储器单元的“n”个节点中,包括将所述“n”个元素中的一个元素的不同位编程到节点中的每个非易失性存储器单元中,非易失性存储器单元的所述“n”个节点中的每个存储器单元与相同的位线相关联,其中非易失性存储器单元的所述“n”个节点中的每个存储器单元被编程为高电流状态或低电流状态;
将“n”组一个或多个乘法电压同时施加到非易失性存储器单元的所述“n”个节点中的对应的节点,每个存储器单元被施加一个乘法电压并配置为响应于施加的乘法电压向所述位线提供电流,所述“n”组一个或多个乘法电压表示具有“n”个元素的第二矢量;以及
感测所述位线中由于将所述“n”组一个或多个乘法电压同时施加到非易失性存储器单元的所述“n”个节点而产生的总电流,所感测的总电流的量值表示所述第一矢量和所述第二矢量的点积。
18.根据权利要求17所述的方法,其中:
所述“n”组中的每一组中的所述一个或多个乘法电压具有为二的不同幂的量值。
19.一种非易失性存储器系统,包括:
多个非易失性存储器单元,包括“r”个存储器单元的“n×m”个节点;
“m”个位线,每个位线与存储器单元的所述节点中的“n”个相关联;
用于在“r”个存储器单元的所述“n×m”个节点中的每个节点中存储被乘数的编程装置,所述编程装置用于在一个节点的每个存储器单元中以二进制计数系统存储所述被乘数的一个不同位,所述“n×m”个节点中的所述被乘数表示“n×m”矩阵;
用于同时将“n”组一个或多个乘法电压施加到存储器单元的所述“n×m”个节点的乘法装置,每个组表示具有“n”个元素的第一矢量的一个元素,所述“n×m”个节点中的每个存储器单元被配置为响应于施加到所述存储器单元的所述乘法电压而将电流传递到所述“m”个位线中的一个位线,所述电流表示存储在所述存储器单元中的所述位与所述第一矢量中的一个元素的乘积;以及
用于生成具有“m”个元素的第二矢量的结果装置,所述第二矢量的每个元素基于所述“m”个位线中的一个位线中的所述电流,所述第二矢量表示所述“n×m”矩阵与所述第一矢量相乘。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/058,146 | 2018-08-08 | ||
US16/058,146 US10534840B1 (en) | 2018-08-08 | 2018-08-08 | Multiplication using non-volatile memory cells |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825345A CN110825345A (zh) | 2020-02-21 |
CN110825345B true CN110825345B (zh) | 2024-04-19 |
Family
ID=69141064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910539761.7A Active CN110825345B (zh) | 2018-08-08 | 2019-06-21 | 使用非易失性存储器单元的乘法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10534840B1 (zh) |
CN (1) | CN110825345B (zh) |
DE (1) | DE102019116095A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909449B2 (en) * | 2017-04-14 | 2021-02-02 | Samsung Electronics Co., Ltd. | Monolithic multi-bit weight cell for neuromorphic computing |
US10957392B2 (en) | 2018-01-17 | 2021-03-23 | Macronix International Co., Ltd. | 2D and 3D sum-of-products array for neuromorphic computing system |
US11138497B2 (en) | 2018-07-17 | 2021-10-05 | Macronix International Co., Ltd | In-memory computing devices for neural networks |
US10991411B2 (en) | 2018-08-17 | 2021-04-27 | Micron Technology, Inc. | Method and apparatuses for performing a voltage adjustment operation on a section of memory cells based on a quantity of access operations |
US10431281B1 (en) * | 2018-08-17 | 2019-10-01 | Micron Technology, Inc. | Access schemes for section-based data protection in a memory device |
US11056185B2 (en) * | 2018-10-12 | 2021-07-06 | International Business Machines Corporation | Apparatus for deep learning operations on resistive crossbar array |
US11636325B2 (en) | 2018-10-24 | 2023-04-25 | Macronix International Co., Ltd. | In-memory data pooling for machine learning |
US11562229B2 (en) | 2018-11-30 | 2023-01-24 | Macronix International Co., Ltd. | Convolution accelerator using in-memory computation |
US20200194501A1 (en) * | 2018-12-13 | 2020-06-18 | Tetramem Inc. | Implementing phase change material-based selectors in a crossbar array |
US11934480B2 (en) | 2018-12-18 | 2024-03-19 | Macronix International Co., Ltd. | NAND block architecture for in-memory multiply-and-accumulate operations |
EP3671750A1 (en) * | 2018-12-21 | 2020-06-24 | IMEC vzw | Synapse circuit with memory |
KR20200082617A (ko) * | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치 |
US11270771B2 (en) * | 2019-01-29 | 2022-03-08 | Silicon Storage Technology, Inc. | Neural network classifier using array of stacked gate non-volatile memory cells |
US11119674B2 (en) | 2019-02-19 | 2021-09-14 | Macronix International Co., Ltd. | Memory devices and methods for operating the same |
US10896242B2 (en) * | 2019-03-01 | 2021-01-19 | International Business Machines Corporation | Resistive memory device for matrix-vector multiplications |
US11132176B2 (en) * | 2019-03-20 | 2021-09-28 | Macronix International Co., Ltd. | Non-volatile computing method in flash memory |
US11521658B2 (en) * | 2019-06-25 | 2022-12-06 | Sandisk Technologies Llc | Binary weighted voltage encoding scheme for supporting multi-bit input precision |
US11556311B2 (en) | 2020-04-16 | 2023-01-17 | Sandisk Technologies Llc | Reconfigurable input precision in-memory computing |
US11487507B2 (en) * | 2020-05-06 | 2022-11-01 | Qualcomm Incorporated | Multi-bit compute-in-memory (CIM) arrays employing bit cell circuits optimized for accuracy and power efficiency |
US11244715B1 (en) * | 2020-12-01 | 2022-02-08 | Micron Technology, Inc. | Systems and methods for 1.5 bits per cell charge distribution |
DE102021205318A1 (de) | 2021-05-26 | 2022-12-01 | Robert Bosch Gesellschaft mit beschränkter Haftung | Speichervorrichtung und Verfahren zur Durchführung aufeinanderfolgender Speicherzugriffe |
DE102021205327A1 (de) | 2021-05-26 | 2022-12-01 | Robert Bosch Gesellschaft mit beschränkter Haftung | Speichervorrichtung und Verfahren zum Verschieben von Speicherwerten |
CN115083462B (zh) * | 2022-07-14 | 2022-11-11 | 中科南京智能技术研究院 | 一种基于Sram的数字型存内计算装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2672283A (en) * | 1948-09-03 | 1954-03-16 | Ibm | Electronic multiplier |
US3033456A (en) * | 1956-05-12 | 1962-05-08 | Emi Ltd | Apparatus for multiplying binary numbers |
GB1523889A (en) * | 1974-11-04 | 1978-09-06 | Gen Electric | Logical apparatus for multiplying serial binary operands with sign |
US4238833A (en) * | 1979-03-28 | 1980-12-09 | Monolithic Memories, Inc. | High-speed digital bus-organized multiplier/divider system |
CN104238993A (zh) * | 2013-06-11 | 2014-12-24 | 亚德诺半导体技术公司 | 微处理器集成电路的向量矩阵乘积加速器 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014235A (en) * | 1987-12-15 | 1991-05-07 | Steven G. Morton | Convolution memory |
JP2006127460A (ja) * | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
US20130082232A1 (en) * | 2011-09-30 | 2013-04-04 | Unity Semiconductor Corporation | Multi Layered Conductive Metal Oxide Structures And Methods For Facilitating Enhanced Performance Characteristics Of Two Terminal Memory Cells |
JP5194302B2 (ja) * | 2008-02-20 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
US8275727B2 (en) | 2009-11-13 | 2012-09-25 | International Business Machines Corporation | Hardware analog-digital neural networks |
US9813232B2 (en) * | 2015-03-17 | 2017-11-07 | Cypress Semiconductor Corporation | Device and method for resisting non-invasive attacks |
US10002219B2 (en) * | 2015-03-25 | 2018-06-19 | Samsung Electronics Co., Ltd. | Method for placing parallel multiplier |
US9627052B1 (en) * | 2015-11-24 | 2017-04-18 | Micron Technology, Inc. | Apparatuses and methods for current limitation in threshold switching memories |
CN116842306A (zh) * | 2016-03-23 | 2023-10-03 | Gsi 科技公司 | 存储器内矩阵乘法及其在神经网络中的使用 |
US9990300B2 (en) * | 2016-04-28 | 2018-06-05 | Everspin Technologies, Inc. | Delayed write-back in memory |
GB2552014B (en) | 2016-07-07 | 2020-05-13 | Advanced Risc Mach Ltd | Reconfigurable artificial neural networks comprising programmable non-volatile memory elements |
WO2018057014A1 (en) * | 2016-09-24 | 2018-03-29 | Intel Corporation | Asymmetric selectors for memory cells |
US10727405B2 (en) * | 2017-03-22 | 2020-07-28 | Micron Technology, Inc. | Chalcogenide memory device components and composition |
US10263039B2 (en) * | 2017-06-26 | 2019-04-16 | Micron Technology, Inc. | Memory cells having resistors and formation of the same |
US10510393B2 (en) * | 2017-09-15 | 2019-12-17 | Samsung Electronics Co., Ltd | Resistive memory device including reference cell and operating method thereof |
US10622066B2 (en) * | 2017-09-21 | 2020-04-14 | Samsung Electronics Co., Ltd. | Resistive memory device including reference cell and operating method thereof |
WO2019075171A1 (en) * | 2017-10-13 | 2019-04-18 | Everspin Technologies, Inc. | PERPENDICULAR MAGNETIC MEMORY USING A SPIN-ORBIT TORQUE |
US10395697B1 (en) * | 2018-02-08 | 2019-08-27 | Micron Technology, Inc. | Self-referencing sensing schemes with coupling capacitance |
-
2018
- 2018-08-08 US US16/058,146 patent/US10534840B1/en not_active Expired - Fee Related
-
2019
- 2019-06-13 DE DE102019116095.2A patent/DE102019116095A1/de active Pending
- 2019-06-21 CN CN201910539761.7A patent/CN110825345B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2672283A (en) * | 1948-09-03 | 1954-03-16 | Ibm | Electronic multiplier |
US3033456A (en) * | 1956-05-12 | 1962-05-08 | Emi Ltd | Apparatus for multiplying binary numbers |
GB1523889A (en) * | 1974-11-04 | 1978-09-06 | Gen Electric | Logical apparatus for multiplying serial binary operands with sign |
US4238833A (en) * | 1979-03-28 | 1980-12-09 | Monolithic Memories, Inc. | High-speed digital bus-organized multiplier/divider system |
CN104238993A (zh) * | 2013-06-11 | 2014-12-24 | 亚德诺半导体技术公司 | 微处理器集成电路的向量矩阵乘积加速器 |
Also Published As
Publication number | Publication date |
---|---|
DE102019116095A1 (de) | 2020-02-13 |
US10534840B1 (en) | 2020-01-14 |
CN110825345A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825345B (zh) | 使用非易失性存储器单元的乘法 | |
US10528643B1 (en) | Vector-matrix multiplication using non-volatile memory cells | |
US20200167408A1 (en) | Vector-by-matrix multiplier modules based on non-volatile 2d and 3d memory arrays | |
US10643705B2 (en) | Configurable precision neural network with differential binary non-volatile memory cell structure | |
CN110782027B (zh) | 用于人工神经网络的差分非易失性存储器单元 | |
CN109214510B (zh) | 神经形态多位式数字权重单元 | |
US11055603B2 (en) | Neuromorphic system and memory device having stacked synapse elements connected in parallel | |
KR101622817B1 (ko) | 저항 메모리 센싱 방법 및 디바이스 | |
US11081148B2 (en) | Binary weighted voltage encoding scheme for supporting multi-bit input precision | |
US11727977B2 (en) | Non-volatile analog resistive memory cells implementing ferroelectric select transistors | |
US20210117500A1 (en) | Methods to tolerate programming and retention errors of crossbar memory arrays | |
US20220044103A1 (en) | Matrix-vector multiplication using sot-based non-volatile memory cells | |
JP2023508514A (ja) | メモリセルの三状態プログラミング | |
US11289171B1 (en) | Multi-level ultra-low power inference engine accelerator | |
KR20220044643A (ko) | 외부 자기장 프로그래밍 보조가 있는 초저전력 추론 엔진 | |
US20200410334A1 (en) | Binary weighted voltage encoding scheme for supporting multi-bit input precision | |
US20210050045A1 (en) | Memory element for weight update in a neural network | |
TWI778674B (zh) | 在讀取期間之mram中的信號保留 | |
US11170852B1 (en) | Cross-bar arrays having steering element with diode | |
US20220293156A1 (en) | Signal amplification in mram during reading | |
CN114207724A (zh) | 控制突触元件中电阻逐渐变化的装置和方法 | |
Design et al. | Check for | |
CN116935929A (zh) | 互补式存储电路及存储器 | |
KR20230085849A (ko) | 메모리 감지를 위한 평균 기준 전압 | |
JP2022014991A (ja) | 抵抗変化型クロスバーアレイ装置 |
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 |