CN107533858A - 用于计算矩阵乘法的交叉杆阵列 - Google Patents
用于计算矩阵乘法的交叉杆阵列 Download PDFInfo
- Publication number
- CN107533858A CN107533858A CN201580079077.5A CN201580079077A CN107533858A CN 107533858 A CN107533858 A CN 107533858A CN 201580079077 A CN201580079077 A CN 201580079077A CN 107533858 A CN107533858 A CN 107533858A
- Authority
- CN
- China
- Prior art keywords
- matrix
- control line
- line
- diagonal control
- tie point
- 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/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
- 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
- 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/0023—Address circuits or decoders
-
- 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/003—Cell access
-
- 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
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
- G11C5/05—Supporting of cores in matrix
-
- 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)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Power Engineering (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Semiconductor Memories (AREA)
Abstract
一种交叉杆阵列包括多条行线、在多个交叉点处与多条行线交叉的多条列线、在多个交叉点中的一部分交叉点处联接在多条行线和多条列线之间的多个连接点、以及联接到多个连接点的多条对角控制线。每个连接点包括电阻存储元件和晶体管,该连接点定位为计算第一矩阵和第二矩阵的矩阵乘法。
Description
背景技术
忆阻器为能够通过施加诸如电压之类的编程能量而被编程为不同电阻状态的设备。具有忆阻器的存储设备的大型交叉杆阵列能够用于每个种应用,包括存储器、可编程逻辑、信号处理控制系统、模式识别和其它应用。
卷积为对两个函数进行的数学运算,其生成通常视作初始函数中的一个的修改后的版本的第三函数。卷积具有包括图像处理、概率、统计、计算机信号处理、电工程、和差分方程的应用。
附图说明
以下具体描述参考了附图,其中:
图1为示例性交叉杆阵列的图;
图2为用于计算矩阵乘法的示例性交叉杆阵列的图;
图3为图示第一矩阵及第二矩阵到交叉杆阵列上的示例性矩阵映射的图;
图4为图示编程信号输入和采集的电流输出、具有交叉杆阵列的示例性图像处理器的图;
图5为具有图像处理加速器的示例性计算设备的框图;并且
图6为用于对存储单元进行编程的示例性方法的流程图。
具体实施方式
卷积为对两个函数进行的数学运算,其生成通常视作初始函数中的一个的修改后的版本的第三函数。卷积用于一些图像处理技术,包括图像与内核矩阵的卷积。可以将图像及内核映射到矩阵,可以对矩阵计算矩阵乘法。然而,卷积可能是图像处理技术计算最密集的部分之一。而且,对于硬件实现,等价矩阵可能太大,且映射太稀疏。
忆阻器为可以广泛用于诸如存储器、开关、射频电路、逻辑电路及系统之类的电子电路中组件的设备。在存储结构中,可以使用具有忆阻器的存储设备的交叉杆阵列。当用作存储设备的基础时,忆阻器可以用于存储信息位元,1或0。可以通过忆阻器施加诸如电压或电流之类的电刺激来改变忆阻器的电阻。通常,可以形成至少一条能够在两种状态之间切换的通道——一种为通道形成导电路径(“开”),一种信道形成不太导电的路径(“关”)。在一些其它情况下,导电路径表示“关”,不太导电的路径表示“开”。
在一些应用中,存储器交叉杆阵列能够用于执行矩阵计算。例如,通过每个列中电阻设备的电导对来自交叉杆阵列每个行的输入电压信号进行加权,累计为来自每个列的电流输出。理想地,假如能够忽略线电阻,流出交叉杆阵列的电流I将大约为IT=VTG,V为输入电压,G为电导矩阵,包括来自交叉杆阵列中每个忆阻器的贡献。在交叉杆阵列的连接点或交点使用忆阻器使得能够对处于与G的值相对应的每个此类连接点的电阻(或电导)进行编程。可以将输入电压值映射到矩阵。
本文公开的示例提供了用于计算矩阵乘法的一晶体管一存储器形式的交叉杆阵列。示例性交叉杆阵列可以包括多条行线、在多个交叉点处与多条行线交叉的多条列线、在多个交叉点中的一部分处联接在行线与列线之间的多个连接点、以及联接到多个连接点的多条对角控制线。每个连接点可以具有1个晶体管和1个诸如忆阻器之类的电阻存储元件,且该连接点被定位为计算第一矩阵和第二矩阵的矩阵乘法。例如,可以将第一矩阵改变成向量,能够将矩阵乘法转换为向量-矩阵乘法。连接点可以不必被定位在第二矩阵可能具有0的值的交叉点。而且,一条对角控制线可以联接在交错矩阵内特定对角线中的所有连接点。以这种方式,能够为放置驱动及传感电路而节省控件,以最小化设备尺寸。
现在参考附图,图1图示了示例性交叉杆阵列100。交叉杆阵列100可以是连接点联接在处于交叉点的线之间、平行及垂直的线的配置。交叉杆阵列100可以包括多条行线110、多条列线120和多个连接点130。每个连接点可以联接在一条列线与一条行线的唯一组合之间。换言之,无存储单元共享行线和列线。应该注意到,图1示出了示例性的交叉杆结构。与适当的额外结构一起,交叉杆阵列100可以用于每个种应用,包括用于如本文所述的矩阵乘法。
行线110可以是贯穿交叉杆阵列100的携带电流的电极。在一些示例中,列线110可以互相平行,一般具有相等的间隔。行线110有时可以称作位线。取决于定向,行线110可以或称为字线。类似地,列线120可以是与行线110走向不平行的电极。在一些规范中,列线120可以称作字线。在其它定向方式中,列线120可以称作位线。行线110和列线120可以充当将电压及电流递送给连接点130的电极。用于行线110和列线120的示例性材料可以包括导电材料,诸如铂、钽、铪、锆、铝、钴、镍、铁、铌、钼、钨、铜、钛、氮化钛、氮化钽、氮化二钽、二氮化钨、氮化铌、氮化钼、二硅化钛、硅化钛、三硅化五钛、二硅化钽、二硅化钨、二硅化铌、硅化三钒、电掺杂多晶硅、电掺杂多晶锗、及其组合。
连接点130可以在多个交叉点中的一部分交叉点处联接在行线110和列线120之间。例如,连接点130可被定位为计算第一矩阵和第二矩阵的矩阵乘法。尽管图1未直接图示,但在一些示例中,可以在一些交叉点形成连接点130而不在其它的一些交叉点形成连接点130,在此类连接点留出开放电路(无电流)。换言之,一些交叉点无连接点130。关于图2进一步描述了计算矩阵乘法的连接点130的定位。
每个连接点130可以包括电阻存储元件。电阻存储元件可以具有随施加的电压或电流而改变的电阻。此外,在一些示例中,电阻存储元件可以“记忆”其最后的电阻。以此方式,可以将每个电阻存储元件设为至少两个状态。电阻存储元件可以通过具有忆阻器来实现这些属性,忆阻器可以是提供如本文所述的忆阻属性的双端电子组件。
在一些示例中,忆阻器可以是基于氮化物的,意指忆阻器的至少一部分由包含氮化物的组合物形成。忆阻器还可以是基于氧化物的,意指忆阻器的至少一部分由包含氧化物的材料形成。而且,忆阻器可以是基于氮氧化物的,意指忆阻器的至少一部分由包含氧化物的材料形成,且忆阻器的至少一部分由包含氮化物的材料形成。忆阻器的示例性材料可以包括氧化钽、氧化铪、氧化钛、氧化钇、氧化铌、氧化锆或其它类似的氧化物或非过渡金属氧化物,诸如氧化铝、氧化钙、氧化镁、氧化镝、氧化镧、二氧化硅或其它类似氧化物之类。进一步的示例包括氮化物,诸如氮化铝、氮化镓、氮化钽、氮化硅之类,以及诸如氮氧化硅之类的氮氧化物。另外,可以在实践本文的教导时使用其它的忆阻器。
忆阻器可以展现非线性或线性电流-电压行为。非线性可以描述不同于线性方程而增长方程。在一些实施例中,诸如在本文的示例中之类,忆阻器在感兴趣的电压范围内可能是线性的。例如,感兴趣的电压范围可以是用于交叉杆阵列100的操作的电压范围。
在示例中,忆阻存储元件可以包括其它组件,诸如晶体管和/或选择器。晶体管可以充当具有状态“开”和“关”的开关,开关确定信号是否能够通过连接点。类似地,选择器可以是可以用于忆阻设备以提供想要的电属性的电设备,诸如开关。例如,选择器可以是根据跨端上所施加的电压而允许电流的双端子设备或电路元件。而且在一些示例中,选择器可以在连接点130与忆阻器串联地联接。
在一些示例中,不是行线与列线的所有交叉点都有具连接点130。换言之,交叉点中的一些可以具有具有串联联接的电阻存储元件与晶体管的连接点130。连接点130可被定位为计算两个矩阵的矩阵乘法。可以不用于矩阵乘法的行线110和列线120的交叉点可能没有连接点,如图1中的140所示。
图2图示了用于计算图像和内核的卷积的示例性交叉杆阵列200。交叉杆阵列200可以与图1的交叉杆阵列100相似,并可以例如是图像处理器的一部分。交叉杆阵列200可以包括与行线110类似的多条行线210、与列线120类似的多条列线220、与连接点130类似的连接点230以及多条对角控制线250。
在一些示例中,每个对角控制线250可以联接至交叉杆阵列200的对角线中的所有连接点230。对角控制线250可以是递送电压的导电电极,该电压是诸如用于激活连接点230中晶体管的电压之类的电压。对角控制线250可以与图1A的交叉杆阵列100的行线110和列线120类似,并可以具有不同种类的导电材料。
交叉杆阵列200可以计算二维图像和二维内核的卷积。交叉杆阵列200可以通过计算与图像相对应的第一矩阵和与内核相对应的第二矩阵的矩阵乘法来这样做。在一些示例中,连接点230可被定位,以使得它们以允许交叉杆阵列200计算第一矩阵和第二矩阵的矩阵乘法的方式将行线210和列线220相联接。
例如,连接点230可以定位在表示第一矩阵和第二矩阵的接合的交叉杆阵列200的交叉点处。换言之,可以不在分配给连接点的值总是为0的交叉点处构造连接点。如图2中的240所示,这可以在交叉杆阵列内留出开放空间。开放空间240例如可以用于容纳驱动及传感电路,以最小化交叉杆阵列200的尺寸。关于图4更为具体地描述了驱动及传感电路。
为了计算矩阵乘法,交叉杆阵列200可以在电阻存储元件处接收多个第一编程信号。多个第一编程信号可以限定施加给电阻存储元件的多个值。在一些示例中,第一矩阵与用于处理图像的内核相对应。例如,内核矩阵可以用于模糊、锐化、模压、边缘检测和其它图像处理。多个第一编程信号可以将电阻存储元件写为特定状态以与第一矩阵中的特定值相对应。例如,可以将电阻存储元件设为多个电阻状态。诸如通过施加由第二矩阵限定的电压来驱动交叉杆上的输入电流能够将该输入电流变换为输出电流。类似地,可以通过经由对角控制线250将栅极电压递送给期望的连接点的晶体管来激活期望的连接点230。
另外,交叉杆阵列200可以在连接点230的电阻存储元件处接收多个第二编程信号。多个第二编程信号可以限定第二矩阵内的多个值。在一些示例中,第二矩阵与要处理的图像相对应。编程信号可以是例如电压、电流、能量或其它形式的电刺激。为了将编程信号递送给连接点230的电阻存储元件,可以通过将栅极电压递送给期望的连接点的晶体管来激活期望的连接点。例如,可以经由对应的对角控制线来递送栅极电压,以激活联接到那一对角控制线250的连接点230的晶体管。
在一些示例中,可以将第二矩阵转化为表示部分第二矩阵的多个向量。这样做允许交叉杆阵列200执行向量-矩阵乘法。例如,能够将来自第二矩阵的向量值并行传入交叉杆阵列200的每个行。
结果,交叉杆阵列200可以从电阻存储元件的相应的列线550输出从电阻存储元件采集到的多个电流。采集的电流可以限定第一矩阵和第二矩阵的矩阵乘法。例如,当多个第二编程信号通过交叉杆阵列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行数目的子阵列。此外,在一些示例中,交叉杆阵列200可以具有等于b*c的多条对角控制线250。
图3根据第一矩阵和第二矩阵的维度进一步具体地图示了交叉杆阵列中连接点的矩阵映射300。在图3所示的示例中,第一矩阵可以具有维度(5,6)。第二矩阵可以具有维度(3,4)。映射到矩阵映射300上时,计算第一矩阵和第二矩阵的乘法的交叉杆阵列可以具有30条行线310、63条列线320和18条对角控制线350。交叉杆阵列可以具有总共360个连接点。
交叉杆阵列可以具有6(b)个子阵列,如行310A和列320A所限定的。在每个子阵列内包含为数目为4(d)的连接点群。子阵列的位置可以是交错的,以使子阵列因连接点群的大小而左右切换。每个子阵列可以有5条行线和28条列线。每个连接点群可以进一步划分为三个连接点的5个子集,每个群中总计有15个连接点。5个子集可以通过列线彼此相邻地排列,它们的位置可以是交错的,这样相邻列线中的子集可以左右移动一个。
对角控制线350通过对角线连接连接点。由于交叉杆阵列的交错结构,交叉杆阵列可以具有总计为18(b*c)条的对角控制线350。
图4图示了具有示例性存储器交叉杆阵列402的图形处理器400,图示了编程信号输入410和采集到的电流输出414,存储器交叉杆阵列可以起到图像处理器400的作用。图形处理器400可以包括N个行电极404和M个列电极406。整个交叉杆阵列402中,交叉杆连接点可以包括存储单元408,该存储单元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的输出处的电压读取。数字到模拟电路(Digital to analog circuitry)和模拟到数字电路(analog to digitalcircuitry)可以用在输入410和输出414处。给行电极404和列电极406的输入信号可以是模拟或数字的。能够将半导体处理技术用于与上面示例中的交叉杆阵列402相同的集成结构或半导体晶圆,制造上面描述的外围电路。如下面进一步具体描述的,图形处理器操作期间进行两种主要操作。第一种操作是对交叉杆阵列中的忆阻器进行编程,为的是将NxM矩阵中的数值映射到该阵列。在一个示例中,编程操作期间一次对一个忆阻器进行编程。第二种操作为矩阵乘法操作。在此操作中,施加输入电压并获得输出电压,该输出电压与将NxM矩阵与Nx1向量相乘的结果相对应。将矩阵与向量的相乘进行多次迭代可以产生矩阵乘法的满矩阵。输入电压低于编程电压,因此在矩阵乘法运算期间,阵列402中忆阻器的电阻值不变。
在根据本文描述的原理的图像处理器操作的一个示例中,可以通过沿NxM交叉杆阵列402的行404同时施加一组电压VI410、采集穿过列406的电流、测量输出电压VO414来由图像处理器400执行向量及矩阵乘法。在每个列上,由对应的忆阻值(1/Gij)对每个输出电压410加权,且在输出电压414处反映加权和。使用欧姆定律,输入电压410与输出电压414之间的关联能够由向量矩阵乘法公式表示:{VO}T=-{VI}T[G]RS,其中Gij为由交叉杆阵列402的电导(电阻的逆)所确定的NxM矩阵,RS为传感放大器的电阻值,T表示列向量VO和VI的转置。负号是由在传感放大器中使用负反馈运算放大器产生的。根据前文,可见图像处理器引擎400能够用于将值{bi}T的第一向量与值[aij]的矩阵相乘,以获得值{cj}T的第二向量,i=1,N,j=1,M。如下能够更为详细具体地记载向量运算。
a11b1+a21b2+…+aN1bN=c1
…
a1Mb1+a2Mb2+…+aMNbN=cM
使用本文描述的原理的向量处理或乘法通常始于将值[aij]的矩阵映射到交叉杆阵列402上,或换言之,将导电值Gij编程——例如写——入阵列402的交叉杆连接点。
仍参考图4,在一个示例中,通过顺序地将电压降强加于每个交叉杆连接点(图1,130)上来设置每个电导值Gij。例如,可以通过在交叉杆阵列402的第2行施加等于VRow2的电压和在该阵列的第3列施加等于VCol3的电压来设置电导值G2,3。参考图4,在一个示例中,可以在与j=1列电极相邻的第2行电极的位置430给第2行施加电压输入VRow2。给与i=1或i=N位置相邻的第3列电极施加电压输入VCol3。注意,当在列电极406处施加电压时,可以断开用于那一电极的传感电路416并接入电压驱动。电压差VRow2-VCol3将通常基于位于交叉点的忆阻元件408的特性来确定产生的电导值G2,3。当遵循此方法时,可以根据数个方案中的一个对未选择的列406和行404进行编址,包括例如浮动所有未选择的列406和行404,或使所有未选择的列及行接地。其它方案包括将列406接地或使部分列406接地。使所有未选择的列及行接地是有好处的,因为该方案有助于使未选择的列及行绝缘,以最小化至选择的输出列406的潜行通路电流。编程之后,通过施加输入电压410和读取输出电压414,继续进行图像处理器400的操作。
根据本文公开的原理的一个示例,用于图像处理器400的忆阻器可以具有线性的电流-电压关系。线性的电流-电压关系允许矩阵乘法过程中较高的精度。然而,具有线性忆阻器的交叉杆阵列402在阵列402的编程期间容易有较大潜行通路电流,尤其是当交叉杆阵列402的尺寸大于特定尺寸时,譬如32x32。此类情况下,因为大多数电流穿过潜行路径,所以穿过选择的忆阻器的电流可能不足以对忆阻器进行编程。或者,因潜行路径,可能以不精确的值对忆阻器进行编程。为了减少此类实例中的潜行路径电流,尤其是当想要较大的阵列时,诸如晶体管或非线性选择器之类的访问设备可以并入忆阻器内,或与忆阻器一块使用,以最小化阵列中的潜行通路电流。更具体地,应该将存储单元广义解释为包括忆阻设备,该忆阻设备包括例如电阻存储元件、忆阻器、忆阻器及晶体管,忆阻器及选择器、或忆阻器及其它组件。例如,存储单元可以包括与晶体管串联联接的忆阻器。
图5图示了具有图像处理加速器的示例性计算设备500的框图。计算设备500可以例如为个人计算机、云服务器、局域网服务器、网络服务器、主机、移动计算设备、笔记本或台式计算机、智能电视、销售点设备、可穿戴设备、任意其它适当的电子设备或诸如由云或互联网网络连接、执行本文描述的功能之类的设备组合。在图5所示的示例中,计算设备500包括处理器510、图像处理加速器520和卷积引擎530。计算设备50周围的虚边图示了组件的位置可以分离,或组件可以诸如经网络连接。
处理器510可以是中央处理单元(CPU)、基于半导体的微处理器或适于指令检索及执行的其它硬件设备。处理器510可以运行指令,以执行本文描述的一些或全部过程。
图像处理加速器520可以与图3的图像处理器400类似,并可以执行图像和内核的卷积,快于在更常见的处理设备上运行的软件是可能的。尽管将图像处理加速器520描述为计算设备500内部的设备,但在其它示例中,图像处理加速器520可以是联接到计算设备500的、或包含在联接到计算设备500内的外围设备中的外围设备。
图像处理加速器500可以包括与行线210类似的多条行线、与列线220类似的多条列线、与连接点230类似的多个连接点、和与对角控制线250类似的多条对角控制线。图像处理加速器500可以计算二维图像与二维内核的卷积。图像处理加速器500可以通过计算与图像对应的第一矩阵和与内核对应的第二矩阵的矩阵乘法来这样做。在一些示例中,连接点可被定位为让它们以允许处理加速器500计算第一矩阵和第二矩阵的矩阵乘法的方式来联接行线和列线的交叉点。
卷积引擎530可以表示硬件及编程的任意组合。例如,用于卷积引擎530的编程可以是存储在非暂时性机器可读存储介质上的处理器可执行的指令,用于引擎的硬件可以包括处理器510或另一处理器,以执行那些指令。另外或作为替代的,卷积引擎530可以包括一个或多个包含用于实现下面描述的功能的电子电路的硬件设备。
为了计算矩阵乘法,卷积引擎530可以将栅极电压递送给图像处理加速器520的多条对角控制线中的一条。栅极电压可以激活联接到多条对角控制线中的一条的连接点的晶体管,以允许对那些连接点的电阻存储元件进行编程。在一些示例中,栅极电压相反可以是另一种形式的电刺激,诸如另一电压、电流或能量。
进一步地,卷积引擎530可以在电阻存储元件处递送多个第一编程信号。多个第一编程信号可以限定施加给电阻存储元件的多个值。在一些示例中,第一矩阵与用于处理图像的内核相对应。例如,内核矩阵可以用于模糊、锐化、模压、边缘检测和其它图像处理。多个第一编程信号可以将电阻存储元件写到与内核矩阵中的特定值相对应的特定状态。例如,可以将电阻存储元件设置为多个电阻状态。诸如通过施加由第二矩阵限定的电压来驱动交叉杆上的输入电流能够将该输入电流变换为输出电流。
另外,卷积引擎530可以在图像处理加速器520的连接点的电阻存储元件处递送多个第二编程信号。多个第二编程信号可以限定第二矩阵内的多个值。在一些示例中,第二矩阵与要处理的图像相对应。编程信号可以例如为电压、电流、能量、或其它形式的电刺激。
结果,卷积引擎530可以从多个电阻存储元件的对应的列线采集多个来自电阻存储元件采集到的电流。采集的电流可以限定第一矩阵和第二矩阵的矩阵乘法。例如,当多个第一编程信号通过图像处理加速器520时,编程信号被电阻存储元件的电阻状态修改,该电阻状态可以由多个第一编程信号设置。结果,采集到的电流为第一矩阵和第二矩阵的矩阵乘法的结果。第一矩阵和第二矩阵的矩阵乘法可以限定图像和内核的卷积。
图6为示出用于对交叉杆阵列进行编程的示例性方法600的流程图。方法600可以包括用于提供交叉杆阵列的操作610、用于给交叉杆阵列的对角控制线递送复位电压的操作620、用于给交叉杆阵列的对角控制线递送栅极电压的操作630、和给交叉杆阵列的多条行线的行线子集递送编程信号的操作640。尽管本文参考图2的交叉杆阵列来描述方法600的执行,但方法600的其它适当示例应该是显而易见的,包括图1-5提供的示例。
在操作610中,可以提供交叉杆阵列。该交叉杆阵列可以与交叉杆阵列200类似,并可以包括与行线210类似的多条行线、与列线220类似的多条列线、与连接点230类似的具有电阻存储元件和晶体管的多个存储元件、与对角控制线205类似的多条对角控制线。存储元件可被定位为让该交叉杆阵列可以用于计算第一矩阵和第二矩阵的矩阵乘法。
在操作620中,可以将复位电压递送给交叉杆阵列的多条对角控制线中的一条对角控制线。复位电压可以对电阻存储元件进行复位,这可以意味着将电阻存储元件切换到缺省状态,该缺省状态可以被定义为开或关。例如,电阻存储元件可以具有阈值电压,该阈值电压为用于切换电阻存储元件的最小电压。复位电压可以大于对角中所有存储单元的电阻存储元件的阈值电压。因此,复位电压可以切换(复位)对角中的所有存储元件。复位电压还可以大于存储元件的晶体管的栅极电压。相应地,复位电压可以能够激活晶体管,以访问联接到晶体管的存储元件。在一些示例中,复位电压相反可以是另一形式的电刺激,诸如另一电压、电流或能量。
在操作630中,可以将栅极电压递送给在操作620中被递送复位电压的对角控制线。栅极电压可以激活联接到对角控制线的存储元件的晶体管,以允许对那些连接点的电阻存储元件进行编程。在一些示例中,栅极电压相反可以是另一形式的电刺激,诸如另一电压、电流或能量。
在操作640中,可以将编程信号递送给交叉杆阵列的多条行线的一个行线子集。如参考图3描述的,交叉杆阵列可以具有多个子阵列。子阵列的行线可以是如此处提及的行线子集。当将一个矩阵映射到该子集时,可以将子阵列内同一对角上的每个存储元件映射到同一值。据此,编程信号可以将同一对角上的每个存储元件编程为同一值。因此,一个编程信号值可以用于行线子集的每个行线。
例如,如参考之前附图所图示的,可以将多个第一编程信号递送给交叉杆阵列的行线。多个第一编程信号可以限定要施加给电阻存储元件的多个值。在一些示例中,第一矩阵与用于对图像进行卷积的内核相对应。例如,内核矩阵可以用于模糊、锐化、模压、边缘检测、和其它图像处理。多个第一编程信号可以将存储单元的电阻存储元件编程为与第一矩阵中的特定值相对应的特定状态。例如,可以将电阻存储元件设置到多个电阻状态。诸如通过施加由第二矩阵限定的电压来驱动交叉杆上的输入电流能够将该输入电流变换为输出电流。
一旦交叉杆阵列进行被编程,则可以执行进一步的操作以执行矩阵乘法。例如,多个第二编程信号可以限定第二矩阵内的多个值。在一些示例中,第二矩阵可以与图像相对应,卷积是对该图像执行的。编程信号可以例如为电压、电流、能量或其它形式的电刺激。
结果,可以从电阻存储元件的相应的列线采集来自电阻存储元件的多个采集到的电流。采集的电流可以限定第一矩阵和第二矩阵的矩阵乘法。例如,当多个第二编程信号通过交叉杆阵列时,编程信号由电阻存储元件的电阻状态更改,其可以由多个第一编程信号设置。结果,采集的电流为第一矩阵和第二矩阵的矩阵乘法的结果。第一矩阵和第二矩阵的矩阵乘法可以限定图像和内核的卷积。
前文描述了用于计算矩阵乘法的交叉杆阵列及其应用的多个示例。应该理解本文描述的示例可以包括额外组件,且可以移除或更改本文描述的一些组件,而不背离示例或其应用的范畴。还应该理解图中描述的组件不是按比例绘制的,因而组件可以相对彼此具有不同于图中所示的相对尺寸。
应该注意到,如本申请和所附的权利要求所用的,单数形式“一个”、“某个”和“所述”包括复数个元件,除非上下文另外明确规定。
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.根据权利要求5所述的交叉杆阵列,其中所述多条对角控制线包括b*c条对角控制线。
7.根据权利要求1所述的交叉杆阵列,其中所述交叉点中的一些交叉点不包括连接点。
8.根据权利要求1所述的交叉杆阵列,其中所述电阻存储元件包括忆阻器。
9.一种图像处理器,包括用于计算图像和内核的卷积的交叉杆阵列,所述交叉杆阵列包括:
多条行线;
在多个交叉点处与所述多条行线交叉的多条列线;
在所述多个交叉点中的一部分交叉点处联接在所述多条行线与所述多条列线之间的多个连接点;以及
联接到所述多个连接点的多条对角控制线,其中:
每个连接点包括电阻存储元件和晶体管;并且
所述连接点被定位为计算与所述图像相对应的第一矩阵和与所述内核相对应的第二矩阵的矩阵乘法。
10.根据权利要求9所述的图像处理器,进一步包括电路,以:
将栅极电压递送给所述多条对角控制线中的一条对角控制线,以激活联接到所述多条对角控制线中的所述一条对角控制线的连接点的晶体管;
将多个第一编程信号递送给所述电阻存储元件,其中所述多个第一编程信号限定要施加至所述电阻存储元件的多个值;
将多个第二编程信号递送给所述电阻存储元件,其中所述多个第二编程信号限定所述第一矩阵内的多个值;并且
从所述电阻存储元件的相应列线输出从所述电阻存储元件采集到的多个电流,其中采集到的电流限定所述第一矩阵和所述第二矩阵的所述矩阵乘法。
11.根据权利要求10所述的图像处理器,其中所述第一矩阵和所述第二矩阵的所述矩阵乘法限定所述图像与所述内核的卷积。
12.根据权利要求9所述的图像处理器,其中:
所述第一矩阵具有维度a和b;
所述第二矩阵具有维度c和d;
所述多条行线包括a*b条行线;
所述多条列线包括(a+c-1)*(b+d-1)条列线;
所述多个连接点包括a*b*c*d个连接点;并且
所述多条对角控制线包括b*c条对角控制线。
13.一种用于对存储单元进行编程的方法,包括:
提供交叉杆阵列,其中所述交叉杆阵列包括:
多条行线;
在多个交叉点处与所述多条行线交叉的多条列线;
包括电阻存储元件和晶体管的多个存储单元,所述存储单元在所述多个交叉点中的一部分交叉点处联接在所述多条行线与所述多条列线之间,其中所述存储单元被定位为计算第一矩阵和第二矩阵的矩阵乘法;以及
联接到所述多个连接点的多条对角控制线;
将栅极电压递送给所述多条对角控制线中的一条对角控制线,以激活联接到所述多条对角控制线中的所述一条对角控制线的存储单元的晶体管;并且
将编程信号递送给所述多条行线的行线子集,以对联接到所述行线子集和所述多条对角控制线中的所述一条对角控制线的存储单元进行编程。
14.根据权利要求13所述的方法,进一步包括将复位电压递送给所述多条对角控制线中的所述一条对角控制线,以对联接到所述多条对角控制线中的所述一条对角控制线的所述存储单元的电阻存储元件进行复位,并且其中:
所述栅极电压用于迫使目标电流顺应于联接到所述多条行线的所述行线子集和所述多条对角控制线中的所述一条对角控制线的所述存储单元;并且
所述编程信号用于将联接到所述行线子集和所述多条对角控制线中的所述一条对角控制线的所述存储单元编程为期望的状态。
15.根据权利要求13所述的方法,其中:
所述第一矩阵具有维度a和b;
所述第二矩阵具有维度c和d;
所述多条行线包括a*b条行线;
所述多条列线包括(a+c-1)*(b+d-1)条列线;
所述多个连接点包括a*b*c*d个连接点;并且
所述多条对角控制线包括b*c条对角控制线。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/052262 WO2017052598A1 (en) | 2015-09-25 | 2015-09-25 | Crossbar arrays for calculating matrix multiplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533858A true CN107533858A (zh) | 2018-01-02 |
CN107533858B CN107533858B (zh) | 2021-01-12 |
Family
ID=58386885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079077.5A Active CN107533858B (zh) | 2015-09-25 | 2015-09-25 | 交叉杆阵列、图像处理器及对存储单元进行编程的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10410716B2 (zh) |
EP (1) | EP3284092B1 (zh) |
CN (1) | CN107533858B (zh) |
WO (1) | WO2017052598A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112823327A (zh) * | 2018-10-11 | 2021-05-18 | 国际商业机器公司 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
CN112836810A (zh) * | 2019-11-22 | 2021-05-25 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
CN112955863A (zh) * | 2018-11-13 | 2021-06-11 | 罗伯特·博世有限公司 | 用于实现矩阵运算的方法和设备 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387778B2 (en) | 2015-09-29 | 2019-08-20 | International Business Machines Corporation | Scalable architecture for implementing maximization algorithms with resistive devices |
US10325006B2 (en) | 2015-09-29 | 2019-06-18 | International Business Machines Corporation | Scalable architecture for analog matrix operations with resistive devices |
US10482940B2 (en) * | 2015-12-17 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Computational accuracy in a crossbar array |
WO2017146706A1 (en) * | 2016-02-25 | 2017-08-31 | Hewlett Packard Enterprise Development Lp | Performing complex multiply-accumulate operations |
US10311126B2 (en) | 2016-08-12 | 2019-06-04 | International Business Machines Corporation | Memory device for matrix-vector multiplications |
IT201700108281A1 (it) | 2017-09-27 | 2019-03-27 | Milano Politecnico | "circuito di risoluzione di problemi matematici comprendente elementi resistivi." |
US10290327B2 (en) * | 2017-10-13 | 2019-05-14 | Nantero, Inc. | Devices and methods for accessing resistive change elements in resistive change element arrays |
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 |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
US10930348B1 (en) | 2019-08-13 | 2021-02-23 | Hewlett Packard Enterprise Development Lp | Content addressable memory-encoded crossbar array in dot product engines |
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 |
US11366876B2 (en) | 2020-06-24 | 2022-06-21 | International Business Machines Corporation | Eigenvalue decomposition with stochastic optimization |
WO2022015967A1 (en) * | 2020-07-15 | 2022-01-20 | Spero Devices, Inc. | High endurance memory circuitry |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687147B2 (en) * | 2002-04-02 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Cubic memory array with diagonal select lines |
US20080237886A1 (en) * | 2007-03-28 | 2008-10-02 | Wei Wu | Three-dimensional crossbar array systems and methods for writing information to and reading information stored in three-dimensional crossbar array junctions |
US20100009784A1 (en) * | 2008-07-09 | 2010-01-14 | Lester Elmer Wycoff | Volleyball approach and hit trainer |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7307268B2 (en) * | 2005-01-19 | 2007-12-11 | Sandisk Corporation | Structure and method for biasing phase change memory array for reliable writing |
US7646627B2 (en) * | 2006-05-18 | 2010-01-12 | Renesas Technology Corp. | Magnetic random access memory having improved read disturb suppression and thermal disturbance resistance |
KR100791008B1 (ko) | 2006-12-26 | 2008-01-04 | 삼성전자주식회사 | 서로 인접하는 셀들에 공유된 상변화 물질 패턴을 구비하는상변화 메모리 소자 및 이를 구비하는 전자제품 |
US7817454B2 (en) | 2007-04-03 | 2010-10-19 | Micron Technology, Inc. | Variable resistance memory with lattice array using enclosing transistors |
US8045412B2 (en) * | 2008-10-21 | 2011-10-25 | Seagate Technology Llc | Multi-stage parallel data transfer |
US8351234B2 (en) * | 2010-04-29 | 2013-01-08 | Hewlett-Packard Development Company, L.P. | Extensible three dimensional circuit having parallel array channels |
WO2011136795A1 (en) * | 2010-04-30 | 2011-11-03 | Hewlett-Packard Development Company, L.P. | Connection and addressing of multi-plane crosspoint devices |
US8441836B2 (en) * | 2010-09-17 | 2013-05-14 | Ovonyx, Inc. | Sector array addressing for ECC management |
US8587079B2 (en) | 2011-08-12 | 2013-11-19 | Crocus Technology Inc. | Memory array including magnetic random access memory cells and oblique field lines |
US9152827B2 (en) | 2012-12-19 | 2015-10-06 | The 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 |
US9466362B2 (en) * | 2014-08-12 | 2016-10-11 | Arizona Board Of Regents On Behalf Of Arizona State University | Resistive cross-point architecture for robust data representation with arbitrary precision |
-
2015
- 2015-09-25 US US15/570,980 patent/US10410716B2/en active Active
- 2015-09-25 CN CN201580079077.5A patent/CN107533858B/zh active Active
- 2015-09-25 EP EP15904934.5A patent/EP3284092B1/en active Active
- 2015-09-25 WO PCT/US2015/052262 patent/WO2017052598A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687147B2 (en) * | 2002-04-02 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Cubic memory array with diagonal select lines |
US20080237886A1 (en) * | 2007-03-28 | 2008-10-02 | Wei Wu | Three-dimensional crossbar array systems and methods for writing information to and reading information stored in three-dimensional crossbar array junctions |
US20100009784A1 (en) * | 2008-07-09 | 2010-01-14 | Lester Elmer Wycoff | Volleyball approach and hit trainer |
Non-Patent Citations (1)
Title |
---|
DELIANG FAN 等: "Hierarchical Temporal Memory Based on Spin-Neurons and Resistive Memory for Energy-Efficient Brain-Inspired Computing", 《 IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112823327A (zh) * | 2018-10-11 | 2021-05-18 | 国际商业机器公司 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
CN112955863A (zh) * | 2018-11-13 | 2021-06-11 | 罗伯特·博世有限公司 | 用于实现矩阵运算的方法和设备 |
CN112836810A (zh) * | 2019-11-22 | 2021-05-25 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
CN112836810B (zh) * | 2019-11-22 | 2023-09-29 | 华邦电子股份有限公司 | 使用交叉阵列的电子装置以及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180350433A1 (en) | 2018-12-06 |
EP3284092A4 (en) | 2018-04-25 |
EP3284092B1 (en) | 2019-06-19 |
US10410716B2 (en) | 2019-09-10 |
WO2017052598A1 (en) | 2017-03-30 |
EP3284092A1 (en) | 2018-02-21 |
CN107533858B (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533858A (zh) | 用于计算矩阵乘法的交叉杆阵列 | |
CN107533862B (zh) | 交叉阵列、图像处理器及计算设备 | |
US10529418B2 (en) | Linear transformation accelerators | |
US9910827B2 (en) | Vector-matrix multiplications involving negative values | |
CN107533668B (zh) | 用于计算神经网络的节点值的硬件加速器和方法 | |
US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
US10042819B2 (en) | Convolution accelerators | |
WO2022222498A1 (zh) | 基于忆阻器阵列的数据处理方法、电子装置 | |
US20180108403A1 (en) | Temperature compensation circuits | |
US11226763B2 (en) | Device for high dimensional computing comprising an associative memory module | |
US20210117500A1 (en) | Methods to tolerate programming and retention errors of crossbar memory arrays | |
CN102473448B (zh) | 具有电阻性感测元件块擦除和单向写入的非易失性存储器阵列 | |
US20230122160A1 (en) | Crossbar circuits for performing convolution operations | |
WO2016190838A1 (en) | Hybrid selectors | |
CN114143412B (zh) | 图像处理方法和图像处理装置 | |
US20220293174A1 (en) | Resistive memory device for matrix-vector multiplications | |
WO2021240284A1 (en) | Nvm synaptic element with gradual reset capability |
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 |