CN107533862A - 用于计算矩阵乘法的交叉阵列 - Google Patents
用于计算矩阵乘法的交叉阵列 Download PDFInfo
- Publication number
- CN107533862A CN107533862A CN201580079184.8A CN201580079184A CN107533862A CN 107533862 A CN107533862 A CN 107533862A CN 201580079184 A CN201580079184 A CN 201580079184A CN 107533862 A CN107533862 A CN 107533862A
- Authority
- CN
- China
- Prior art keywords
- matrix
- memory element
- resistive memory
- abutment
- crossed array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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/0007—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 metal oxide memory material, e.g. perovskites
-
- 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B63/00—Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
- H10B63/80—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
-
- 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
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/30—Resistive cell, memory material aspects
- G11C2213/32—Material having simple binary metal oxide structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/30—Resistive cell, memory material aspects
- G11C2213/34—Material includes an oxide or a nitride
-
- 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/72—Array wherein the access device being 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/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Semiconductor Memories (AREA)
Abstract
交叉阵列,包括:多个行线;在多个交叉部分处与多个行线交叉的多个列线;以及在多个交叉部分的一部分处耦接在多个行线和多个列线之间的多个接合点。每个接合点包括电阻存储器元件,并且接合点定位成计算第一矩阵和第二矩阵的矩阵乘法。
Description
背景技术
忆阻器是可通过施加编程能量例如电压而被编程为不同的电阻状态的器件。可在各种应用中使用具有忆阻器的存储器器件的大交叉阵列,包括存储器、可编程逻辑、信号处理控制系统、模式识别和其他应用。
卷积是对两个函数的数学运算,其产生一般被视为原始函数之一的修改版本的第三函数。卷积的应用包括图像处理、概率、统计、计算机信号处理、电气工程和微分方程。
附图说明
下面的详细描述参考附图,其中:
图1是用于计算矩阵乘法的示例交叉阵列的图;
图2是用于计算图像和核的卷积的示例交叉阵列的图;
图3是示出编程信号输入和收集的电流输出的、具有交叉阵列的示例图像处理器的图;以及
图4是具有图像处理加速器的示例计算设备的方框图。
具体实施方式
卷积是对两个函数的数学运算,其产生一般被视为原始函数之一的修改版本的第三函数。在一些图像处理技术中使用卷积,包括图像和核矩阵的卷积。图像和核可被映射到矩阵,矩阵乘法可对矩阵进行计算。然而,卷积可以是图像处理技术的最计算密集的部分之一。此外,对于硬件实现,等价矩阵可能太大和太稀疏地被映射。
忆阻器是可用作各种各样的电子电路中的部件的器件,例如存储器、开关、射频电路和逻辑电路和系统。在存储器结构中,可使用具有忆阻器的存储器器件的交叉阵列。当用作存储器器件的基础时,忆阻器可用于存储信息的位,1或0。可通过施加通过忆阻器的电刺激例如电压或电流来改变忆阻器的电阻。通常,可形成能够在两个状态——通道形成导电路径(“接通”)时的一个状态和通道形成较不导电的路径(“断开”)时的一个状态——之间切换的至少一个通道。在一些其他情况下,导电路径代表“断开”,而较不导电的路径代表“接通”。
在一些应用中,存储器交叉阵列可用于执行矩阵计算。例如,来自纵横的每行的输入电压信号由每列中的电阻器件的电导率加权,并被累积为来自每列的电流输出。理想地,如果电线电阻可被忽略,则从交叉阵列流出的电流I将近似是IT=VTG,其中V是输入电压,并且G是电导率矩阵,包括来自交叉阵列中的每个忆阻器的贡献。忆阻器在交叉阵列的接合点(junction)或交叉点处的使用使得能够对与G的值对应的、在每个这样的接合点处的电阻(或电导率)进行编程。输入电压值可映射到矩阵。
本文公开的例子提供用于计算矩阵乘法的交叉阵列。示例交叉阵列可包括多个行线,在多个交叉部分处与多个行线交叉的多个列线以及在多个交叉部分的一部分处耦接在行线和列之间的多个接合点。每个接合点可具有电阻存储器元件,例如忆阻器,且接合点定位成计算第一矩阵和第二矩阵的矩阵乘法。例如,第一矩阵可重新成形为矢量,且矩阵乘法可转换成矢量-矩阵乘法。此外,接合点可能不需要位于交叉部分处,在交叉部分中第二矩阵可具有零的值。以这种方式,可节省用于放置驱动和感测电路的空间以最小化设备尺寸。
现在参考附图,图1示出示例交叉阵列100。交叉阵列100可以是平行和垂直线的配置,接合点在交叉部分处耦接在线之间。交叉阵列100可包括多个行线110、多个列线120和多个接合点130。每个接合点可耦接在一个行线和一个列线的唯一组合之间。换句话说,没有存储器单元共享行线和列线。应注意,图1示出示例交叉结构。使用适当的结构,可在各种应用中使用交叉阵列100,包括如在本文所述的矩阵乘法。
行线110可以是携带穿过交叉阵列100的电流的电极。在一些例子中,行线110可彼此平行,通常具有相等的间隔。行线110有时可被称为位线。根据定向,行线110可以可选地被称为字线。类似地,列线120可以是不平行于行线110延伸的电极。列线120在一些约定中可被称为字线。在其他定向中,列线120可被称为位线。行线110和列线120可用作将电压和电流传送到接合点130的电极。行线110和列线120的示例材料可包括导电材料,例如Pt、Ta、Hf、Zr、Al、Co、Ni、Fe、Nb、Mo、W、Cu、Ti、TiN、TaN、Ta2N、WN2、NbN、MoN、TiSi2、TiSi、Ti5Si3、TaSi2、WSi2、NbSi2、V3Si、电掺杂多晶Si、电掺杂多晶Ge及其组合。
接合点130可在多个交叉部分的一部分处耦接在行线110和列120之间。例如,接合点130可定位成计算第一矩阵和第二矩阵的矩阵乘法。虽然没有直接在图1中示出,接合点130可在一些例子中在一些交叉部分处而不是在一些其他交叉部分处形成,留下在这样的接合点处的开路(没有电流流动)。换句话说,一些交叉部分没有接合点130。关于图2进一步描述接合点130的定位以计算矩阵乘法。
每个接合点130可包括电阻存储器元件。电阻存储器元件可具有随着施加的电压或电流改变的电阻。此外,在一些例子中,电阻存储器元件可“记住”它的最后电阻。以这种方式,每个电阻存储器元件可被设置到至少两个状态。电阻存储器元件可通过具有忆阻器来实现这些特性,忆阻器可以是提供如在本文所述的忆阻特性的两端子电气部件。
在一些例子中,忆阻器可以是基于氮化物的,意味着忆阻器的至少一部分由包含氮化物的组分形成。忆阻器也可以是基于氧化物的,意味着忆阻器的至少一部分由包含氧化物的材料形成。此外,忆阻器可以是基于氮氧化物的,意味着忆阻器的至少一部分由包含氧化物的材料形成以及忆阻器的至少一部分由包含氮化物的材料形成。忆阻器的示例材料可包括氧化钽、氧化铪、氧化钛、氧化钇、氧化铌、氧化锆或其他类似的氧化物,或非过渡金属氧化物,例如氧化铝、氧化钙、氧化锰、氧化镝、氧化镧、氧化硅或其他类似的氧化物。另外的例子包括诸如氮化铝、氮化镓、氮化钽、氮化硅的氮化物以及诸如氮氧化硅的氮氧化物。此外,可在本文的教导的实践中使用其他起作用的忆阻器。
忆阻器可呈现非线性或线性电流-电压特性。非线性可描述与线性函数不同地增长的函数。在一些实现例如本文的例子中,忆阻器140在感兴趣的电压范围内可以是线性的。感兴趣的电压范围可以是例如在交叉阵列100的运算中使用的电压的范围。
在例子中,忆阻存储器元件可包括其他部件,例如晶体管或选择器。选择器可以是可在忆阻器器件中使用来提供期望的电气特性的电气器件。例如,选择器可以是允许取决于施加在端子上的电压的电流的2端子器件或电路元件。此外,在一些例子中,选择器可在接合点130处与忆阻器串联耦接。
在一些例子中,不是所有行线和列线的交叉部分将具有接合点130。换句话说,一些交叉部分可具有接合点。接合点130可定位成计算两个矩阵的矩阵乘法。可以不用于矩阵乘法的行线110和列线120的交叉部分可具有接合点,如在图1中由140所示的。
图2示出用于计算图像和核的卷积的示例交叉阵列200。交叉阵列200可类似于图1的交叉阵列100,且可以是例如图像处理器的一部分。交叉阵列200可包括类似于行线110的多个行线210、类似于列线120的多个列线220和类似于接合点130的多个接合点230。
交叉阵列200可计算二维图像和二维核的卷积。交叉阵列200可通过计算与图像对应的第一矩阵和与核对应的第二矩阵的矩阵乘法来这么做。在一些例子中,接合点230可定位成使得它们以允许交叉阵列200计算第一矩阵和第二矩阵的矩阵乘法的方式来耦接行线210和列线220的交叉部分。
例如,接合点230可位于表示第一矩阵和第二矩阵的接合的交叉阵列200的交叉部分处。换句话说,接合点可以不构建在交叉阵列的被分配到接合点的值将总是为零的交叉部分处。这可留下在交叉阵列内的开放空间,如在图2中由240所示的。开放空间240可例如用于容纳驱动和感测电路以最小化交叉阵列200的尺寸。关于图4更详细地描述驱动和感测电路。
为了计算矩阵乘法,交叉阵列200可在接合点230的电阻存储器元件处接收第一多个编程信号。第一多个编程信号可定义第一矩阵内的多个值。在一些例子中,第一矩阵与待处理的图像对应。编程信号是例如电压、电流、能量或其他形式的电刺激。
在一些例子中,第一矩阵可转换成表示第一矩阵的部分的多个矢量。这么做允许交叉阵列200执行矢量-矩阵乘法。例如,来自第一矩阵的矢量值可并行地传递到交叉阵列200的每行内。
此外,交叉阵列200可在电阻存储器元件处接收第二多个编程信号。第二多个编程信号可定义待施加到电阻存储器元件的多个值。在一些例子中,第二矩阵与用于处理图像的核对应。例如,核矩阵对模糊化、锐化、浮雕化、边缘检测和其他图像处理可能是有用的。第二多个编程信号可将电阻存储器元件写成某个状态以与在第二矩阵中的某些值对应。例如,电阻存储器元件可被设置成多个电阻状态。例如通过将由第一矩阵定义的电压施加在交叉阵列上来驱动输入电流可将输入电流转换成输出电流。
作为结果,交叉阵列200可从电阻存储器元件各自的列线220输出从电阻存储器元件收集的多个电流。收集的电流可定义第一矩阵和第二矩阵的矩阵乘法。例如,当第一多个编程信号穿过交叉阵列200时,编程信号由电阻存储器元件的电阻状态修改,电阻状态可由第二多个编程信号设置。作为结果,收集的电流是第一矩阵和第二矩阵的矩阵乘法的结果。
在一些例子中,第一矩阵可具有(a,b)的维度,而第二矩阵可具有(c,d)的维度。在这样的实例中,交叉阵列200可包括等于a*b到(a+c-1)*(b+d-1)的多个行线210。交叉阵列200可具有等于(a+c-1)*(b+d-1)的多个列线220。此外,在这样的例子中,交叉阵列200可具有等于a*b*c*d的多个接合点230。在这样的维度的情况下,交叉阵列200能够计算在大小上等于或小于(a,b)的任何第一矩阵和在大小上等于或小于(c,d)的任何第二矩阵的矩阵乘法。
在一些例子例如图2所示的一个例子中,交叉矩阵200可具有对角地布置的多个子阵列。每个子阵列可由行线210的子集210A和列线220的子集220A定义。在一些例子中,交叉阵列200可具有b*d数量的子阵列。
在一些例子中,行线的子集210A可包括(a)行线,而列线的子集220A可包括a+c-1数量的列线。每个子阵列可具有a*c数量的接合点230。在一些例子中,子阵列可布置成使得(d)数量的子阵列排列在一行中,且交叉阵列可具有(b)数量的行的子阵列。
图3更详细地示出根据第一矩阵和第二矩阵的维度的在交叉阵列中的接合点的矩阵映射300。在图3所示的例子中,第一矩阵可表示图像并可具有(5,6)的维度。第二矩阵可表示卷积核并可具有(3,4)的维度。当映射到矩阵映射300上时,计算第一矩阵和第二矩阵的乘法的交叉阵列可具有30个行线310和63个列线320。交叉阵列可具有总共360个接合点。
交叉阵列可具有排列成6行310A的24个子阵列。每列310A可具有4个子阵列,如由分组320A所示的。子阵列的位置可交错,使得在相邻列中的子阵列向上或向下移动子阵列的大小。每个子阵列可具有5个行线和7个列线。对于在每个子阵列中的总共15个接合点,每个子阵列可进一步分成三个接合点的5个子集。5个子集可按行线排列成彼此相邻,且它们的位置可交错,使得相邻列线中的子集向左或向右移动一位。
图4示出具有示出编程信号输入410和收集的电流输出414的示例存储器交叉阵列402的图像处理器400,其中存储器交叉阵列可以起图像处理器400的作用。图像处理器400可包括N个行电极404和M个列电极406。遍及交叉阵列402的交叉接合点可包括存储器单元408,其可类似于接合点130或接合点230。存储器交叉阵列402可包括用于将编程信号例如电压施加到行电极404的编程信号输入410,且存储器交叉阵列402可包括用于接收从列电极406中的电流流动产生的输出电压的收集的电流输出414。图像处理器400也可包括用于将列电极406中的电流转换成电压的感测电路416。在本文所述的原理的例子中,感测电路416可包括运算放大器418和电阻器420,其可布置成表示用于读操作的虚拟地。
图像处理器400也可包括与用作存储器件的交叉阵列402相关的其他外围电路。例如,输入410可包括连接到行电极404的驱动器。地址解码器可用于选择行电极404并激活与选定行电极404对应的驱动器。选定行电极404的驱动器可以以不同于与矩阵乘法或设置交叉阵列402的忆阻元件408内的电阻值的处理对应的电压的电压驱动对应的行电极404。对于列电极406,可包括类似的驱动器和解码器电路。控制电路也可用于控制在输入处的电压的施加和在图像处理器400的输出处的电压的读取。可在输入410处和输出414处使用数字到模拟电路和模拟到数字电路。行电极404和列电极406的输入信号可以是模拟的或数字的。可在与在上面的例子中的交叉阵列402相同的集成结构或半导体芯片中使用半导体处理技术来制造上面所述的外围电路。如下面更详细描述的,在图像处理器的操作期间出现两个主要操作。第一操作是对交叉阵列中的忆阻器进行编程以便将N×M矩阵中的数学值映射到阵列。在例子中,一个忆阻器在编程操作期间的时间被编程。第二操作是矩阵乘法操作。在这个操作中,输入电压被施加且输出电压被得到,对应于将N×M矩阵乘以N×1矢量的结果。将矩阵乘以矢量的多次迭代可通过矩阵乘法导致满矩阵。输入电压低于编程电压,所以阵列402中的忆阻器的电阻值在矩阵乘法操作期间不改变。
在根据本文所述的原理的图像处理器操作的一个例子中,可通过图像处理器400通过沿着N×M交叉阵列402的行404同时施加一组电压VI 410并收集穿过列406的电流并测量输出电压VO 414来执行矢量和矩阵乘法。在每列上,每个输入电压410由对应的忆阻(1/Gij)加权,且加权和反映在输出电压414处。使用欧姆定律,输入电压410和输出电压414之间的关系可由{VO}T=-{VI}T[G]Rs形式的矢量矩阵乘法表示,其中Gij是由交叉阵列402的电导率(电阻的倒数)确定的N×M矩阵,Rs是读出放大器的电阻值,并且T表示列矢量VO和VI的转置矩阵。负号由读出放大器中的负反馈运算放大器的使用产生。从前述内容中,由此可见,图像处理器引擎400可用于将值{bi}T的第一矢量乘以值[aij]的矩阵以得到值{cj}T的第二矢量,其中i=1,N并且j=1,M。可如下更详细地阐述矢量运算。
a11b1+a21b2+…+aN1bN=c1
…
a1Mb1+a2Mb2…+aNMbN=cM.
使用本文所述的原理的矢量处理或乘法通常通过将值[aij]的矩阵映射到交叉阵列402上或换句话说,将电导率值Gij编程(例如,写入)到阵列402的交叉接合点来开始。
仍然参考图4,在一个例子中,通过在每个交叉接合点(图1,130)上顺序地强加电压降来设置每个电导率值Gij。例如,可通过施加等于交叉阵列402的第2行处的VRow2的电压和等于该阵列的第3列处的VCol3的电压来设置电导率G2,3。参考图4,在一个例子中,电压输入VRow2可被施加到在相邻于j=1列电极的第2行电极处出现的位置430处的第2行。电压输入VCol3将被施加到相邻于i=1或i=N位置的第3列电极。注意,当将电压施加在列电极406处时,那个电极的读出电路416可被切断且电压驱动器被接通。电压差VRow2-VCol3通常将基于位于交叉部分处的忆阻元件408的特性来确定产生的电导率值G2,3。当遵循这个方法时,未选择的列406和行404可根据几个方案之一被寻址,包括例如使所有未选择的列406和行404悬空或使所有未选择的列和行接地。其他方案涉及使列406接地或使部分列406接地。使所有未选择的列和行接地是有益的,因为该方案有助于隔离未选择的列和行以最小化到选定输出列406的潜行通路电流。在编程之后,图像处理器400的操作通过施加输入电压410并读取输出电压414来继续进行。
根据本文公开的原理的一个例子,用于图像处理器400的忆阻器可具有线性电流-电压关系。线性电流-电压关系允许矩阵乘法处理中的更高准确度。然而,具有线性忆阻器的交叉阵列402倾向于在阵列402的编程期间具有大的潜行通路电流,特别是当交叉阵列402的尺寸大于某个尺寸例如32×32时。在这样的情况下,通过选定忆阻器流动的电流可能不足以对忆阻器编程,因为大部分电流穿过潜行通路流动。可选地,忆阻器可由于潜行通路而以不准确的值被编程。为了减轻在这样的实例中的潜行通路电流,且特别是当较大的阵列被需要时,接入设备例如非线性选择器可合并在忆阻器内或连同忆阻器一起被利用以最小化阵列中的潜行通路电流。更具体地,存储器单元应广泛地被解释为包括忆阻器件,包括例如电阻存储器元件,忆阻器,忆阻器和选择器,或忆阻器和其他部件。
图5示出具有图像处理加速器的示例计算设备500的方框图。计算设备500可以例如是执行本文所述的功能的个人计算机、云服务器、局域网服务器、web服务器、大型计算机、移动计算设备、笔记本或桌上型计算机、智能TV、销售点设备、穿戴式设备、任何其他适当的电子设备或设备的组合,例如由云或互联网网络连接的设备。在图5所示的例子中,计算设备50包括处理器510、图像处理加速器520和卷积引擎530。在计算设备500周围的虚线边界示出部件可单独地被定位并可例如经由网络被连接。
处理器510可以是中央处理单元(CPU)、基于半导体的微处理器或适合于指令的取回和执行的其他硬件设备。处理器510可执行指令以执行本文所述的一些或所有过程。
图像处理加速器520可类似于图3的图像处理器400,且可以比在更通用的处理设备上运行的软件中可能的更快地执行图像和核的卷积。虽然图像处理加速器520被描绘为在计算设备500内部的设备,在其他例子中,图像处理加速器520可以是耦接到计算设备500的外围设备或被包括在耦接到计算设备500的外围设备内。
图像处理加速器500可包括类似于行线110的多个行线、类似于列线120的多个列线和类似于接合点130的多个接合点。图像处理加速器500可计算二维图像和二维核的卷积。图像处理加速器500可通过计算与图像对应的第一矩阵和与核对应的第二矩阵的矩阵乘法来这么做。在一些例子中,接合点可定位成使得它们以允许图像处理器加速器500计算第一矩阵和第二矩阵的矩阵乘法的方式来耦接行线和列线的交叉部分。
卷积引擎530可表示硬件和编程的任何组合。例如,卷积引擎530的编程可以是存储在非暂时性机器可读存储介质上的处理器可执行指令,且引擎的硬件可包括处理器510或另一处理器,以执行那些指令。此外或作为可选方案,卷积引擎530可包括一个或多个硬件设备,包括用于实现下面所述的功能的电子电路。
为了计算矩阵乘法,卷积引擎530可在图像处理加速器520的接合点的电阻存储器元件处传送第一多个编程信号。第一多个编程信号可定义第一矩阵内的多个值。在一些例子中,第一矩阵与待处理的图像对应。编程信号可以是例如电压、电流、能量或其他形式的电刺激。
此外,卷积引擎530可在电阻存储器元件处传送第二多个编程信号。第二多个编程信号可定义待施加到电阻存储器元件的多个值。在一些例子中,第二矩阵与用于处理图像的核对应。例如,核矩阵对模糊化、锐化、浮雕化、边缘检测和其他图像处理可能是有用的。第二多个编程信号可将电阻存储器元件写成某个状态以与第二矩阵中的某些值对应。例如,电阻存储器元件可被设置成多个电阻状态。例如通过将由第一矩阵定义的电压施加在交叉阵列上来驱动输入电流可将输入电流转换成输出电流。
作为结果,卷积引擎530可从电阻存储器元件各自的列线220收集来自电阻存储器元件的收集的多个电流。收集的电流可定义第一矩阵和第二矩阵的矩阵乘法。例如,当第一多个编程信号穿过图像处理加速器520时,编程信号由电阻存储器元件的电阻状态修改,电阻状态可由第二多个编程信号设置。作为结果,收集的电流是第一矩阵和第二矩阵的矩阵乘法的结果。第一矩阵和第二矩阵的矩阵乘法可定义图像和核的卷积。
前述内容描述了用于计算矩阵乘法的交叉阵列及其应用的多个例子。应理解,本文所述的例子可包括附加的部件,并且本文所述的一些部件可被移除或修改而不偏离例子或其应用的范围。还应理解,在附图中描绘的部件并不是按比例绘制的,且因此部件可具有与在附图中所示的相对于彼此的不同的相对尺寸。
应注意,如在本申请和所附权利要求中使用的,单数形式“一”和“该”包括复数元件,除非上下文另外清楚地指示。
Claims (15)
1.一种交叉阵列,包括:
多个行线;
多个列线,在多个交叉部分处与所述多个行线交叉;以及
多个接合点,在所述多个交叉部分的一部分处耦接在所述多个行线和所述多个列线之间,其中:
每个接合点包括电阻存储器元件;并且
所述接合点定位成计算第一矩阵和第二矩阵的矩阵乘法。
2.如权利要求1所述的交叉阵列,其中所述交叉阵列用于:
在所述电阻存储器元件处接收第一多个编程信号,其中所述第一多个编程信号定义所述第一矩阵内的多个值;
在所述电阻存储器元件处接收第二多个编程信号,其中所述第二多个编程信号定义待施加到所述电阻存储器元件的多个值;并且
从所述电阻存储器元件各自的列线输出从所述电阻存储器元件收集的多个电流,其中所收集的电流定义所述第一矩阵和所述第二矩阵的所述矩阵乘法。
3.如权利要求1所述的交叉阵列,其中所述第一矩阵与二维图像对应,并且所述第二矩阵与二维核对应。
4.如权利要求3所述的交叉阵列,其中所述交叉阵列用于计算所述二维图像和所述二维核的卷积。
5.如权利要求1所述的交叉阵列,其中:
所述第一矩阵具有a和b的维度;
所述第二矩阵具有c和d的维度;
所述多个行线包括a*b个行线;
所述多个列线包括(a+c-1)*(b+d-1)个列线;并且
所述多个接合点包括a*b*c*d个接合点。
6.如权利要求1所述的交叉阵列,其中所述交叉部分中的一些不包括接合点。
7.如权利要求1所述的交叉阵列,其中所述电阻存储器元件包括忆阻器。
8.如权利要求3所述的交叉阵列,其中所述电阻存储器元件包括与所述忆阻器串联耦接的选择器。
9.一种图像处理器,包括用于计算图像和核的卷积的交叉阵列,所述交叉阵列包括:
多个行线;
多个列线,在多个交叉部分处与所述多个行线交叉;以及
多个接合点,在所述多个交叉部分的一部分处耦接在所述多个行线和所述多个列线之间,其中:
每个接合点包括电阻存储器元件;并且
所述接合点定位成计算与所述图像对应的第一矩阵和与所述核对应的第二矩阵的矩阵乘法。
10.如权利要求9所述的图像处理器,进一步包括一电路,该电路用于:
将第一多个编程信号传送到所述电阻存储器元件,其中所述第一多个编程信号定义所述第一矩阵内的多个值;
将第二多个编程信号传送到所述电阻存储器元件,其中所述第二多个编程信号定义待施加到所述电阻存储器元件的多个值;并且
从所述电阻存储器元件各自的列线输出从所述电阻存储器元件收集的多个电流,其中所收集的电流定义所述第一矩阵和所述第二矩阵的所述矩阵乘法。
11.如权利要求10所述的图像处理器,其中所述第一矩阵和所述第二矩阵的所述矩阵乘法定义所述图像和所述核的所述卷积。
12.如权利要求9所述的图像处理器,其中:
所述第一矩阵具有a和b的维度;
所述第二矩阵具有c和d的维度;
所述多个行线包括a*b个行线;
所述多个列线包括(a+c-1)*(b+d-1)个列线;并且
所述多个接合点包括a*b*c*d个接合点。
13.一种计算设备,包括:
处理器;
图像处理加速器,包括:
多个行线;
多个列线,在多个交叉部分处与所述多个行线交叉;以及
多个接合点,在所述多个交叉部分的一部分处耦接在所述多个行线和所述多个列线之间,其中:
每个接合点包括电阻存储器元件;并且
所述接合点定位成通过计算与图像对应的第一矩阵和与核对应的第二矩阵的矩阵乘法来计算所述图像和所述核的卷积;以及
卷积引擎,用于:
将第一多个编程信号传送到所述电阻存储器元件,其中所述第一多个编程信号定义所述第一矩阵内的多个值;
将第二多个编程信号传送到所述电阻存储器元件,其中所述第二多个编程信号定义待施加到所述电阻存储器元件的多个值;并且
根据来自所述电阻存储器元件各自的列线的、从所述电阻存储器元件收集的电流,定义所述第一矩阵和所述第二矩阵的所述矩阵乘法。
14.如权利要求13所述的计算设备,其中:
所述第一矩阵具有a和b的维度;
所述第二矩阵具有c和d的维度;
所述多个行线包括a*b个行线;
所述多个列线包括(a+c-1)*(b+d-1)个列线;并且
所述多个接合点包括a*b*c*d个接合点。
15.如权利要求13所述的计算设备,其中所述电阻存储器元件包括忆阻器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/044246 WO2017026989A1 (en) | 2015-08-07 | 2015-08-07 | Crossbar arrays for calculating matrix multiplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533862A true CN107533862A (zh) | 2018-01-02 |
CN107533862B CN107533862B (zh) | 2021-04-13 |
Family
ID=57983430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079184.8A Active CN107533862B (zh) | 2015-08-07 | 2015-08-07 | 交叉阵列、图像处理器及计算设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10497440B2 (zh) |
EP (1) | EP3262651B1 (zh) |
CN (1) | CN107533862B (zh) |
WO (1) | WO2017026989A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110288078A (zh) * | 2019-05-19 | 2019-09-27 | 南京惟心光电系统有限公司 | 一种针对GoogLeNet模型的加速器及其方法 |
CN110597487A (zh) * | 2019-08-26 | 2019-12-20 | 华中科技大学 | 一种矩阵向量乘法电路及计算方法 |
CN112836810A (zh) * | 2019-11-22 | 2021-05-25 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10482940B2 (en) * | 2015-12-17 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Computational accuracy in a crossbar array |
US10496855B2 (en) * | 2016-01-21 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Analog sub-matrix computing from input matrixes |
US10776684B1 (en) * | 2016-11-02 | 2020-09-15 | National Technology & Engineering Solutions Of Sandia, Llc | Mixed core processor unit |
US10510663B2 (en) | 2017-03-30 | 2019-12-17 | Globalfoundries Inc. | Transistor structures having electrically floating metal layer between active metal lines |
IT201700108281A1 (it) * | 2017-09-27 | 2019-03-27 | Milano Politecnico | "circuito di risoluzione di problemi matematici comprendente elementi resistivi." |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
US11256778B2 (en) | 2019-02-14 | 2022-02-22 | Micron Technology, Inc. | Methods and apparatus for checking the results of characterized memory searches |
US11327551B2 (en) | 2019-02-14 | 2022-05-10 | Micron Technology, Inc. | Methods and apparatus for characterizing memory devices |
US12118056B2 (en) * | 2019-05-03 | 2024-10-15 | Micron Technology, Inc. | Methods and apparatus for performing matrix transformations within a memory array |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
US11762658B2 (en) * | 2019-09-24 | 2023-09-19 | Advanced Micro Devices, Inc. | Matrix multiplication unit with flexible precision operations |
US11010862B1 (en) | 2019-11-14 | 2021-05-18 | Advanced Micro Devices, Inc. | Reduced bandwidth tessellation factors |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
JP7525656B2 (ja) | 2020-06-25 | 2024-07-30 | レイン・ニューロモーフィックス・インコーポレーテッド | リソグラフィックメモリスティブアレイ |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080089110A1 (en) * | 2006-10-16 | 2008-04-17 | Warren Robinett | Crossbar-memory systems and methods for writing to and reading from crossbar memory junctions of crossbar-memory systems |
US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
CN102723112A (zh) * | 2012-06-08 | 2012-10-10 | 西南大学 | 一种基于忆阻交叉阵列的q学习系统 |
CN102959636A (zh) * | 2011-06-27 | 2013-03-06 | 松下电器产业株式会社 | 非易失性半导体存储装置及其读出方法 |
CN103390425A (zh) * | 2012-05-08 | 2013-11-13 | 阿尔特拉公司 | 电阻开关阵列的路由和编程 |
CN103460296A (zh) * | 2011-02-25 | 2013-12-18 | 美光科技公司 | 电阻性存储器感测方法及装置 |
CN103515533A (zh) * | 2012-06-25 | 2014-01-15 | 三星电子株式会社 | 开关元件和器件、存储器件、及其制造方法 |
US20140172937A1 (en) * | 2012-12-19 | 2014-06-19 | United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
US20140215121A1 (en) * | 2013-01-30 | 2014-07-31 | Hewlett-Packard Development Company, L.P. | Memory controller using crisscross error-correcting codes |
US20150213884A1 (en) * | 2014-01-30 | 2015-07-30 | University Of Dayton | Partitioned resistive memory array |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62119682A (ja) | 1985-11-20 | 1987-05-30 | Fanuc Ltd | 画像処理装置 |
WO2011071547A1 (en) | 2009-12-11 | 2011-06-16 | Ess Technology, Inc. | Analog processing elements in a sum of products |
US9025365B2 (en) * | 2010-05-24 | 2015-05-05 | Hewlett-Packard Development Company, L.P. | Reading memory elements within a crossbar array |
US8570785B2 (en) * | 2010-05-26 | 2013-10-29 | Hewlett-Packard Development Company | Reading a memory element within a crossbar array |
US8472262B2 (en) * | 2010-06-10 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Sense amplifier for reading a crossbar memory array |
US8451644B2 (en) * | 2010-06-29 | 2013-05-28 | Hewlett-Packard Development Company, L.P. | Non-volatile sampler |
US9588888B2 (en) * | 2010-07-30 | 2017-03-07 | Hewlett Packard Enterprise Development Lp | Memory device and method for altering performance characteristic based on bandwidth demand |
US20120104346A1 (en) * | 2010-10-29 | 2012-05-03 | Wei Yi | Semiconductor device for providing heat management |
FR2973554B1 (fr) * | 2011-04-04 | 2013-04-12 | Commissariat Energie Atomique | "dispositif electronique de type selecteur" |
US8861256B2 (en) | 2012-09-28 | 2014-10-14 | Hewlett-Packard Development Company, L.P. | Data storage in memory array with less than half of cells in any row and column in low-resistance states |
US8982647B2 (en) * | 2012-11-14 | 2015-03-17 | Crossbar, Inc. | Resistive random access memory equalization and sensing |
US8976569B2 (en) * | 2013-01-30 | 2015-03-10 | Hewlett-Packard Development Company, L.P. | Mitigation of inoperable low resistance elements in programable crossbar arrays |
US8917537B2 (en) * | 2013-01-30 | 2014-12-23 | Hewlett-Packard Development Company, L.P. | Inline fuses in programmable crossbar arrays |
US9754203B2 (en) | 2013-03-24 | 2017-09-05 | Technion Research And Development Foundation Ltd. | Analog multiplier using a memristive device and method for implemening Hebbian learning rules using memrisor arrays |
JP6151650B2 (ja) * | 2014-01-17 | 2017-06-21 | ソニーセミコンダクタソリューションズ株式会社 | 記憶装置 |
US9952796B2 (en) * | 2014-01-31 | 2018-04-24 | Hewlett Packard Enterprise Development Lp | Data storing in memory arrays |
CN111116622A (zh) | 2014-02-03 | 2020-05-08 | 俄亥俄州创新基金会 | 硼酸酯和其药物制剂 |
-
2015
- 2015-08-07 CN CN201580079184.8A patent/CN107533862B/zh active Active
- 2015-08-07 US US15/570,932 patent/US10497440B2/en active Active
- 2015-08-07 EP EP15901108.9A patent/EP3262651B1/en active Active
- 2015-08-07 WO PCT/US2015/044246 patent/WO2017026989A1/en active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US20080089110A1 (en) * | 2006-10-16 | 2008-04-17 | Warren Robinett | Crossbar-memory systems and methods for writing to and reading from crossbar memory junctions of crossbar-memory systems |
CN101529523A (zh) * | 2006-10-16 | 2009-09-09 | 惠普发展公司,有限责任合伙企业 | 具有纳米线交叉型结的交叉型存储系统 |
CN103460296A (zh) * | 2011-02-25 | 2013-12-18 | 美光科技公司 | 电阻性存储器感测方法及装置 |
CN102959636A (zh) * | 2011-06-27 | 2013-03-06 | 松下电器产业株式会社 | 非易失性半导体存储装置及其读出方法 |
CN103390425A (zh) * | 2012-05-08 | 2013-11-13 | 阿尔特拉公司 | 电阻开关阵列的路由和编程 |
CN102723112A (zh) * | 2012-06-08 | 2012-10-10 | 西南大学 | 一种基于忆阻交叉阵列的q学习系统 |
CN103515533A (zh) * | 2012-06-25 | 2014-01-15 | 三星电子株式会社 | 开关元件和器件、存储器件、及其制造方法 |
US20140172937A1 (en) * | 2012-12-19 | 2014-06-19 | United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
US20140215121A1 (en) * | 2013-01-30 | 2014-07-31 | Hewlett-Packard Development Company, L.P. | Memory controller using crisscross error-correcting codes |
US20150213884A1 (en) * | 2014-01-30 | 2015-07-30 | University Of Dayton | Partitioned resistive memory array |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110288078A (zh) * | 2019-05-19 | 2019-09-27 | 南京惟心光电系统有限公司 | 一种针对GoogLeNet模型的加速器及其方法 |
CN110597487A (zh) * | 2019-08-26 | 2019-12-20 | 华中科技大学 | 一种矩阵向量乘法电路及计算方法 |
CN112836810A (zh) * | 2019-11-22 | 2021-05-25 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
CN112836810B (zh) * | 2019-11-22 | 2023-09-29 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180301189A1 (en) | 2018-10-18 |
WO2017026989A1 (en) | 2017-02-16 |
CN107533862B (zh) | 2021-04-13 |
EP3262651A4 (en) | 2018-03-21 |
EP3262651B1 (en) | 2021-07-21 |
US10497440B2 (en) | 2019-12-03 |
EP3262651A1 (en) | 2018-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533862A (zh) | 用于计算矩阵乘法的交叉阵列 | |
CN107533858A (zh) | 用于计算矩阵乘法的交叉杆阵列 | |
US9910827B2 (en) | Vector-matrix multiplications involving negative values | |
US10529418B2 (en) | Linear transformation accelerators | |
EP3262571B1 (en) | Hardware accelerators for calculating node values of neural networks | |
CN106530210B (zh) | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 | |
TWI696126B (zh) | 用於類神經計算機系統的記憶體裝置結構及其製造方法 | |
US10042819B2 (en) | Convolution accelerators | |
WO2022222498A1 (zh) | 基于忆阻器阵列的数据处理方法、电子装置 | |
JP6281024B2 (ja) | ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン | |
CN110383282A (zh) | 用于混合信号计算的系统和方法 | |
US11410025B2 (en) | Implementing a multi-layer neural network using crossbar array | |
US20200218967A1 (en) | Complex-Valued Neural Networks | |
Lalchhandama et al. | CoMIC: Complementary Memristor based in-memory computing in 3D architecture | |
CN102473448B (zh) | 具有电阻性感测元件块擦除和单向写入的非易失性存储器阵列 | |
CN112885963A (zh) | 一种忆阻器交叉阵列 | |
US12040016B2 (en) | Crossbar circuits for performing convolution operations | |
WO2016190838A1 (en) | Hybrid selectors | |
CN114143412A (zh) | 图像处理方法和图像处理装置 | |
CN110390391A (zh) | 一种基于三维卷积神经网络的映射装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |