CN107533862A - Crossed array for calculating matrix multiplication - Google Patents

Crossed array for calculating matrix multiplication Download PDF

Info

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
Application number
CN201580079184.8A
Other languages
Chinese (zh)
Other versions
CN107533862B (en
Inventor
胡苗
约翰·保罗·斯特罗恩
李智勇
斯坦利·威廉姆斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107533862A publication Critical patent/CN107533862A/en
Application granted granted Critical
Publication of CN107533862B publication Critical patent/CN107533862B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0007Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B63/00Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
    • H10B63/80Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/30Resistive cell, memory material aspects
    • G11C2213/32Material having simple binary metal oxide structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/30Resistive cell, memory material aspects
    • G11C2213/34Material includes an oxide or a nitride
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/72Array wherein the access device being a diode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array 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

Crossed array, including:Multiple lines;The multiple alignments intersected in multiple cross part offices with multiple lines;And it is coupled in multiple abutments between multiple lines and multiple alignments at a part of place of multiple cross sections.Each abutment includes resistive memory element, and abutment is positioned to calculate the matrix multiplication of the first matrix and the second matrix.

Description

Crossed array for calculating matrix multiplication
Background technology
Memristor is can be programmed to the device of different resistance states by applying programming energy such as voltage.Can be The big crossed array of the storage component part with memristor is used in various applications, including at memory, FPGA, signal Manage control system, pattern-recognition and other application.
Convolution is the mathematical operation to two functions, and it produces the of the revision that generally to be regarded as one of original function Three functions.The application of convolution includes image procossing, probability, statistics, Computer signal processing, electrical engineering and the differential equation.
Brief description of the drawings
Following detailed description refer to the attached drawing, wherein:
Fig. 1 is the figure of the example crossed array for calculating matrix multiplication;
Fig. 2 is the figure for calculating the example crossed array of the convolution of image and core;
Fig. 3 is example image processor electric current output, with crossed array for showing programming signal input and collecting Figure;And
Fig. 4 is the block diagram of the Example Computing Device with image procossing accelerator.
Embodiment
Convolution is the mathematical operation to two functions, and it produces the of the revision that generally to be regarded as one of original function Three functions.Convolution, including the convolution of image and nuclear matrix are used in some image processing techniques.Image and core are mapped to Matrix, matrix multiplication can be calculated matrix.However, convolution can be image processing techniques most computation-intensive part it One.In addition, being realized for hardware, equivalent matrice may be too big and is sparsely mapped very much.
Memristor can be used as the device of the part in various electronic circuits, such as memory, switch, radio frequency electrical Road and logic circuit and system.In memory construction, the crossed array of the storage component part with memristor can be used.When with When making the basis of storage component part, position of the memristor available for storage information, 1 or 0.It can be pierced by being applied through the electricity of memristor Such as voltage or electric current are swashed to change the resistance of memristor.Generally, can be formed can be in two states --- and passage forms conduction A state and passage during path (" on ") form state during more nonconducting path ("off") --- between At least one passage of switching.In some other cases, conductive path represents "off", and more nonconducting path represents " on ".
In some applications, memory crossover array can be used for performing matrix computations.For example, from the defeated of often row in length and breadth Enter voltage signal to be weighted by the electrical conductivity of the resistance device in each column, and be accumulated as the electric current output from each column.It is desirable that If wire resistance can be ignored, the electric current I from crossed array outflow will be approximately IT=VTG, wherein V are input voltages, and And G is conductivity matrix, include the contribution of each memristor in crossed array.Memristor is at the abutment of crossed array (junction) or the use of intersection makes it possible to a pair resistance corresponding with G value, in each such junction point (or electrical conductivity) is programmed.Input voltage value maps to matrix.
Example disclosed herein provides the crossed array for calculating matrix multiplication.Example crossed array may include multiple rows Line, the multiple alignments intersected in multiple cross part offices with multiple lines and is coupled at a part of place of multiple cross sections Multiple abutments between line and row.Each abutment can have resistive memory element, such as memristor, and abutment is determined Position is into the matrix multiplication for calculating the first matrix and the second matrix.For example, the first matrix can be configured to vector, and matrix multiplication again It is convertible into vector-matrix multiplication.In addition, abutment may not be needed to be located at cross part office, the second square in cross section Battle array can have zero value.By this way, can save for placing the space of driving and sensing circuit to minimize equipment size.
With reference now to accompanying drawing, Fig. 1 shows example crossed array 100.Crossed array 100 can be matching somebody with somebody for parallel and vertical line Put, abutment is coupled in cross part office between line.Crossed array 100 may include multiple lines 110, the and of multiple alignments 120 Multiple abutments 130.Each abutment can be coupled between a line and the unique combinations of an alignment.In other words, do not have There is memory cell to share line and alignment.It should be noted that Fig. 1 shows example chi structure., can be various using appropriate structure Crossed array 100 is used in, including such as in matrix multiplication as described herein.
Line 110 can be the electrode for the electric current for being carried across crossed array 100.In some instances, but line 110 that This is parallel, generally with equal interval.Line 110 is referred to alternatively as bit line sometimes.According to orientation, line 110 can be alternatively It is referred to as wordline.Similarly, alignment 120 can be the electrode for being not parallel to the extension of line 110.Alignment 120 is in some agreements It is referred to alternatively as wordline.In other orientations, alignment 120 is referred to alternatively as bit line.Line 110 and alignment 120 can be used as voltage and Electric current is sent to the electrode at abutment 130.The examples material of line 110 and alignment 120 may include conductive material, such as 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, electrically doped polycrystalline Si, electrically doped polycrystalline Ge and combinations thereof.
Abutment 130 can be coupled between line 110 and row 120 at a part of place of multiple cross sections.For example, engagement Point 130 may be positioned to calculate the matrix multiplication of the first matrix and the second matrix.Although directly figure 1 illustrates abutment 130 can form in some cross part offices rather than in some other cross part offices in some instances, leave such The open circuit (not having electric current flowing) of junction point.In other words, some cross sections are not engaged a little 130.It is further on Fig. 2 The positioning at abutment 130 is described with calculating matrix multiplication.
Each abutment 130 may include resistive memory element.Resistive memory element can have with the voltage of application Or the resistance that electric current changes.In addition, in some instances, resistive memory element " can remember " its last resistance.With this Mode, each resistive memory element can be set at least two states.Resistive memory element can be by with memristor To realize these characteristics, memristor can be to provide such as in the two-terminal electric component of memristor characteristic as described herein.
In some instances, memristor can be based on nitride, it is meant that at least a portion of memristor by comprising The component of nitride is formed.Memristor can also be based on oxide, it is meant that at least a portion of memristor is by including oxygen The material of compound is formed.In addition, memristor can be based on nitrogen oxides, it is meant that at least a portion of memristor by comprising The material of oxide is formed and at least a portion of memristor is formed by the material comprising nitride.The examples material of memristor It may include tantalum oxide, hafnium oxide, titanium oxide, yittrium oxide, niobium oxide, zirconium oxide or other similar oxides, or non-transition gold Belong to oxide, such as aluminum oxide, calcium oxide, manganese oxide, dysprosia, lanthana, silica or other similar oxides.In addition Example include the nitrogen oxides of such as aluminium nitride, gallium nitride, tantalum nitride, the nitride of silicon nitride and such as silicon oxynitride. In addition, the memristor that can be worked in the practice of teaching herein using other.
Non-linear or linear current-voltage characteristic can be presented in memristor.It is non-linear to describe differently to increase with linear function Long function.In some realization such as the examples hereins, memristor 140 can be linear in voltage range interested 's.Voltage range interested can be the scope of the voltage for example used in the computing of crossed array 100.
In the example shown, memristor memory component may include miscellaneous part, such as transistor or selector.Selector can be Can be in memristor device using providing the electric device of desired electrical characteristic.For example, selector can allow to depend on In 2 terminal devices or circuit element of the electric current for the voltage being applied on terminal.In addition, in some instances, selector can be At abutment 130 with memristor coupled in series.
In some instances, the cross section of not all line and alignment will have abutment 130.In other words, one A little cross sections can have abutment.Abutment 130 may be positioned to calculate the matrix multiplication of two matrixes.Matrix can be not used in The line 110 of multiplication and the cross section of alignment 120 can have abutment, as in Fig. 1 as shown in 140.
Fig. 2 shows the example crossed array 200 of the convolution for calculating image and core.Crossed array 200 can be similar to Fig. 1 Crossed array 100, and can be a part for such as image processor.Crossed array 200 may include similar to line 110 Multiple lines 210, multiple alignments 220 similar to alignment 120 and multiple abutments 230 similar to abutment 130.
Crossed array 200 can calculate the convolution of two dimensional image and two-dimensional nucleus.Crossed array 200 can be by calculating and image pair The first matrix and the matrix multiplication of the second matrix corresponding with core answered is done so.In some instances, abutment 230 can determine Position couples line into them are caused in a manner of allowing the matrix multiplication of the first matrix of calculating of crossed array 200 and the second matrix 210 and the cross section of alignment 220.
For example, abutment 230 can be located at the cross part of the crossed array 200 for the engagement for representing the first matrix and the second matrix Office.In other words, abutment can not build the value for being assigned to abutment in crossed array by be always zero intersection At part.This can leave the open space in crossed array, as in fig. 2 as shown in 240.Open space 240 can be such as Driven for accommodating with sensing circuit to minimize the size of crossed array 200.Driving and sensing is more fully described on Fig. 4 Circuit.
For calculating matrix multiplication, crossed array 200 can receive more than first at the resistive memory element at abutment 230 Individual programming signal.Multiple values more than first in the individual matrix of programming signal definable first.In some instances, the first matrix is with treating The image of processing is corresponding.Programming signal is the electro photoluminescence of such as voltage, electric current, energy or other forms.
In some instances, the first matrix is convertible into the multiple vectors for the part for representing the first matrix.Do so permission Crossed array 200 performs vector-matrix multiplication.For example, the vector value from the first matrix can concurrently be delivered to crossed array 200 often go in.
In addition, crossed array 200 can receive more than second individual programming signals at resistive memory element.More than second programming Signal definable to be applied to resistive memory element multiple values.In some instances, the second matrix handles image with being used for Verification should.For example, nuclear matrix is to being blurred, sharpening, embossed, rim detection and other image procossings are probably useful. Individual programming signal more than second can be write as resistive memory element some state with corresponding with some values in the second matrix.Example Such as, resistive memory element can be configured to multiple resistance states.Such as by the way that the voltage defined by the first matrix is applied to Drive input current input current can be converted into output current on crossed array.
As a result, crossed array 200 can be exported from the respective alignment 220 of resistive memory element from Memister member Multiple electric currents that part is collected.The matrix of electric current definable first of collection and the matrix multiplication of the second matrix.For example, when more than first When programming signal passes through crossed array 200, programming signal is changed by the resistance states of resistive memory element, and resistance states can be by Individual programming signal is set more than second.As a result, the electric current collected is the result of the matrix multiplication of the first matrix and the second matrix.
In some instances, the first matrix can have the dimension of (a, b), and the second matrix can have the dimension of (c, d). In such example, crossed array 200 may include multiple lines 210 equal to a*b to (a+c-1) * (b+d-1).Crossed array 200 can have multiple alignments 220 equal to (a+c-1) * (b+d-1).In addition, in such example, crossed array 200 can have There are multiple abutments 230 equal to a*b*c*d.In the case of such dimension, crossed array 200 can calculate in size Any first matrix equal to or less than (a, b) and the in size Matrix Multiplication of any second matrix equal to or less than (c, d) Method.
In an example of some examples for example shown in Fig. 2, cross matrix 200 can have the more height being diagonally arranged Array.Each subarray can be defined by the subset 210A of line 210 and the subset 220A of alignment 220.In some instances, intersect Array 200 can have the subarray of b*d quantity.
In some instances, the subset 210A of line may include (a) line, and the subset 220A of alignment may include a+c-1 The alignment of quantity.Each subarray can have the abutment 230 of a*c quantity.In some instances, subarray can be arranged so that (d) subarray of quantity arranges in a row, and crossed array can have the subarray of the row of (b) quantity.
Fig. 3 illustrates in greater detail the square at the abutment in crossed array according to the dimension of the first matrix and the second matrix Battle array mapping 300.In the example shown in Fig. 3, the first matrix can represent image and can have the dimension of (5,6).Second matrix can Represent convolution kernel and there can be the dimension of (3,4).When being mapped in matrix mapping 300, the first matrix and the second matrix are calculated The crossed array of multiplication can have 30 lines 310 and 63 alignments 320.Crossed array can have 360 abutments altogether.
Crossed array can have 24 subarrays for being arranged in 6 row 310A.Each column 310A can have 4 subarrays, such as by It is grouped shown in 320A.The position of subarray can interlock so that the subarray in adjacent column moves up or down subarray Size.Each subarray can have 5 lines and 7 alignments.For 15 abutments altogether in each subarray, often Individual subarray can be further separated into 5 subsets at three abutments.5 subsets can be arranged in adjacent to each other by line, and they Position can interlock so that subset in adjacent alignment is mobile one to the left or to the right.
Fig. 4 shows the example memory crossed array with the electric current output 414 for showing programming signal input 410 and collecting 402 image processor 400, wherein memory crossover array can play image processor 400.Image processor 400 It may include N number of row electrode 404 and M row electrode 406.It may include memory cell throughout the intersection abutment of crossed array 402 408, it can be similar to abutment 130 or abutment 230.Memory crossover array 402 may include to be used for programming signal for example Voltage is applied to the programming signal input 410 of row electrode 404, and memory crossover array 402 may include to be used to receive from row electricity The electric current output 414 of the collection of output voltage caused by electric current flowing in pole 406.Image processor 400, which may also comprise, to be used for Electric current in row electrode 406 is converted into the sensing circuit 416 of voltage.In the example of the principles described herein, sensing circuit 416 may include operational amplifier 418 and resistor 420, and it may be disposed to represent to be used for read operation virtually.
Image processor 400 may also comprise other peripheral circuits related to the crossed array 402 as memory device.Example Such as, input 410 may include the driver for being connected to row electrode 404.Address decoder can be used for selection row electrode 404 and activate with Driver corresponding to select row electrode 404.The driver of select row electrode 404 can be with different from handing over matrix multiplication or setting Pitch row electrode 404 corresponding to the voltage driving of voltage corresponding to the processing of the resistance value in the memristor element 408 of array 402.It is right In row electrode 406, it may include similar driver and decoder circuit.Control circuit can also be used for voltage of the control in input Application and the voltage at the output of image processor 400 reading.Numeral can be used at input 410 and at output 414 To analog circuit and analog to digital circuit.The input signal of row electrode 404 and row electrode 406 can be simulation or digital 's.Can be with being used in the identical integrated morphology of crossed array 402 in the above example or semiconductor chip at semiconductor Reason technology manufactures peripheral circuit recited above.As described in more detail below, occur during the operation of image processor Two primary operationals.First operation is the memristor in crossed array to be programmed so as to which the mathematical value in N × Metzler matrix is reflected It is mapped to array.In the example shown, time of the memristor during programming operation is programmed.Second operation is matrix multiplication behaviour Make.In this operation, input voltage is applied in and output voltage is obtained, and the vector of N × 1 is multiplied by corresponding to by N × Metzler matrix As a result.Matrix Multiplication can be caused into full matrix with the successive ignition of vector by matrix multiplication.Input voltage is less than program voltage, institute Do not changed during matrix multiplication operation with the resistance value of the memristor in array 402.
In the example operated according to the image processor of the principles described herein, image processor 400 can be passed through One group of voltage V is applied by the row 404 along N × M crossed arrays 402 simultaneouslyI410 and collect electric current through row 406 and survey Measure output voltage VO414 perform vector matrix multiplication.In each column, each input voltage 410 is by corresponding memristor (1/ Gij) weighting, and weighted sum is reflected at output voltage 414.Using Ohm's law, between input voltage 410 and output voltage 414 Relation can be by { VO}T=-{ VI}TThe vector-matrix multiplications expression of [G] Rs forms, wherein GijIt is by the conductance of crossed array 402 N × Metzler matrix that rate (inverse of resistance) determines, Rs is the resistance value of sense amplifier, and T represents column vector VOAnd VITurn Put matrix.Negative sign is produced by the use of the negative feedback operational amplifier in sense amplifier.From foregoing teachings, it can be seen that, Image processor engine 400 can be used for that { b will be worthi}TThe first vector be multiplied by value [aij] matrix to be worth { cj}TSecond Vector, wherein i=1, N and j=1, M.Vector calculus can be illustrated in further detail below.
a11b1+a21b2+…+aN1bN=c1
a1Mb1+a2Mb2…+aNMbN=cM.
Using the vector processing of the principles described herein or multiplication generally by the way that [a will be worthij] matrix be mapped to intersecting maneuver On row 402 or in other words, by conductivity value GijProgramming (for example, write-in) starts to the intersection abutment of array 402.
Referring still to Fig. 4, in one example, by sequentially forcing electricity on each intersection abutment (Fig. 1,130) Pressure drop sets each conductivity value Gij.For example, can be by applying the V at the 2nd row equal to crossed array 402Row2Voltage With the V at the 3rd row equal to the arrayCol3Voltage electrical conductivity G is set2,3.With reference to figure 4, in one example, voltage is defeated Enter VRow2The 2nd row that can be applied at the position 430 occurred at the 2nd row electrode adjacent to j=1 row electrodes.Voltage is defeated Enter VCol3It will be applied to that the 3rd row electrode adjacent to i=1 or i=N positions.Pay attention to, when applying the voltage to row electrode 406 During place, the reading circuit 416 of that electrode can be cut off and voltage driver is switched on.Voltage difference VRow2-VCol3It will generally be based on Conductivity value G caused by being determined positioned at the characteristic of the memristor element 408 of cross part office2,3.When following this method, not The row 406 and row 404 of selection can be addressed according to one of several schemes, including for example make all non-selected row 406 and row 404 Vacantly or it is grounded all non-selected columns and rows.Other schemes, which are related to, to be grounded row 406 or is grounded part row 406.Make institute Have non-selected columns and rows ground connection be it is beneficial because the program help to isolate non-selected columns and rows it is selected to minimize Export the passage current that moves under water of row 406.After programming, the operation of image processor 400 is by applying input voltage 410 and reading Output voltage 414 is taken to continue.
According to principle disclosed herein example, the memristor for image processor 400 can have linear current- Voltage relationship.Linear current-voltage relation allows the more high accuracy in matrix multiplication processing.However, there is linear memristor Crossed array 402 tend to that there is the big passage current that moves under water during the programming of array 402, particularly work as crossed array When 402 size is more than some size such as 32 × 32.In this case, the electric current flowed by selecting memristor may It is not enough to program memristor, because most of electric current passes through the flow channels that move under water.Alternatively, memristor can be due to the path that moves under water And it is programmed with the value of inaccuracy.In order to mitigate the passage current that moves under water in such example, and particularly work as larger battle array When row are required, for example non-linear selector of access device can merge in memristor or is utilized together with memristor with most The passage current that moves under water in smallization array.More specifically, memory cell should be broadly construed as including memory resistor, including Such as resistive memory element, memristor, memristor and selector, or memristor and miscellaneous part.
Fig. 5 shows the block diagram of the Example Computing Device 500 with image procossing accelerator.Computing device 500 can example The personal computer of function as described herein, Cloud Server, LAN server, web server, mass computing are performed in this way Machine, mobile computing device, notebook or desktop PC, intelligent TV, point of sale device, Wearable, any other is suitable When electronic equipment or equipment combination, such as the equipment connected by cloud or Internet.In the example as shown in fig. 5, count Calculating equipment 50 includes processor 510, image procossing accelerator 520 and convolution engine 530.Dotted line around computing device 500 Border shows that part can individually be positioned and for example can be connected via network.
Processor 510 can be CPU (CPU), the microprocessor based on semiconductor or be suitable for taking for instruction Other hardware devices for returning and performing.The executable instruction of processor 510 is to perform some or all of processes as described herein.
Image procossing accelerator 520 can be similar to Fig. 3 image processor 400, and can be than being set in more general processing The possible convolution for quickly performing image and core in the software of standby upper operation.Although image procossing accelerator 520 is depicted as Equipment inside computing device 500, in other examples, image procossing accelerator 520 can be coupled to computing device 500 Ancillary equipment or be included in be couple in the ancillary equipment of computing device 500.
Image procossing accelerator 500 may include multiple lines, the multiple row similar to alignment 120 similar to line 110 Line and multiple abutments similar to abutment 130.Image procossing accelerator 500 can calculate two dimensional image and the volume of two-dimensional nucleus Product.Image procossing accelerator 500 can pass through calculating the first matrix corresponding with image and the matrix of the second matrix corresponding with core Multiplication is done so.In some instances, abutment can be positioned such that them to allow image processor accelerator 500 to calculate The mode of the matrix multiplication of first matrix and the second matrix couples the cross section of line and alignment.
Convolution engine 530 can represent any combinations of hardware and programming.For example, the programming of convolution engine 530 can be deposited The processor-executable instruction in non-transitory machinable medium is stored up, and the hardware of engine may include processor 510 Or another processor, to perform those instructions.In addition or as alternative, convolution engine 530 may include one or more hard Part equipment, including for realizing the electronic circuit of function described below.
For calculating matrix multiplication, convolution engine 530 can be in the Memister at the abutment of image procossing accelerator 520 More than first individual programming signals are transmitted at element.Multiple values more than first in the individual matrix of programming signal definable first.In some examples In son, the first matrix is corresponding with pending image.Programming signal can be such as voltage, electric current, energy or other forms Electro photoluminescence.
In addition, convolution engine 530 can transmit more than second individual programming signals at resistive memory element.More than second programming Signal definable to be applied to resistive memory element multiple values.In some instances, the second matrix handles image with being used for Verification should.For example, nuclear matrix is to being blurred, sharpening, embossed, rim detection and other image procossings are probably useful. Individual programming signal more than second can be write as resistive memory element some state with corresponding with some values in the second matrix.Example Such as, resistive memory element can be configured to multiple resistance states.Such as by the way that the voltage defined by the first matrix is applied to Drive input current input current can be converted into output current on crossed array.
As a result, convolution engine 530 can be collected from the respective alignment 220 of resistive memory element comes from Memister Multiple electric currents of the collection of element.The matrix of electric current definable first of collection and the matrix multiplication of the second matrix.For example, when first When multiple programming signals pass through image procossing accelerator 520, programming signal is changed by the resistance states of resistive memory element, electricity Resistance state can be set by more than second individual programming signals.As a result, the electric current collected is the matrix of the first matrix and the second matrix The result of multiplication.First matrix and the matrix multiplication definable image of the second matrix and the convolution of core.
Foregoing teachings describe the crossed array for calculating matrix multiplication and its multiple examples of application.It should be understood that this Example described in text may include additional part, and some parts as described herein can be removed or altered without departing from example Or the scope of its application.It should also be understood that what the part described in the accompanying drawings was not necessarily drawn to scale, and therefore part can have From different relative sizes relative to each other shown in the accompanying drawings.
It should be noted that as used in the application and appended claims, singulative " one " and "the" include plural number member Part, unless the context clearly dictates otherwise.

Claims (15)

1. a kind of crossed array, including:
Multiple lines;
Multiple alignments, intersect in multiple cross part offices with the multiple line;And
Multiple abutments, be coupled at a part of place of the multiple cross section the multiple line and the multiple alignment it Between, wherein:
Each abutment includes resistive memory element;And
The abutment is positioned to calculate the matrix multiplication of the first matrix and the second matrix.
2. crossed array as claimed in claim 1, wherein the crossed array is used for:
More than first individual programming signals are received at the resistive memory element, wherein individual programming signal defines institute more than described first State multiple values in the first matrix;
More than second individual programming signals are received at the resistive memory element, wherein individual programming signal definition is treated more than described second It is applied to multiple values of the resistive memory element;And
The multiple electric currents collected from the respective alignment output of the resistive memory element from the resistive memory element, wherein The matrix multiplication of first matrix described in collected current definition and second matrix.
3. crossed array as claimed in claim 1, wherein first matrix is corresponding with two dimensional image, and second square Battle array is corresponding with two-dimensional nucleus.
4. crossed array as claimed in claim 3, wherein the crossed array is used to calculate the two dimensional image and described two Tie up the convolution of core.
5. crossed array as claimed in claim 1, wherein:
First matrix has a and b dimension;
Second matrix has c and d dimension;
The multiple line includes a*b line;
The multiple alignment includes (a+c-1) * (b+d-1) individual alignment;And
The multiple abutment includes a*b*c*d abutment.
6. crossed array as claimed in claim 1, wherein some in the cross section do not include abutment.
7. crossed array as claimed in claim 1, wherein the resistive memory element includes memristor.
8. crossed array as claimed in claim 3, wherein the resistive memory element includes coupling of being connected with the memristor The selector connect.
9. a kind of image processor, includes the crossed array of the convolution for calculating image and core, the crossed array includes:
Multiple lines;
Multiple alignments, intersect in multiple cross part offices with the multiple line;And
Multiple abutments, be coupled at a part of place of the multiple cross section the multiple line and the multiple alignment it Between, wherein:
Each abutment includes resistive memory element;And
The abutment is positioned to calculate the square of the first matrix corresponding with described image and the second matrix corresponding with the core Battle array multiplication.
10. image processor as claimed in claim 9, further comprising a circuit, the circuit is used for:
More than first individual programming signals are sent to the resistive memory element, wherein individual programming signal defines institute more than described first State multiple values in the first matrix;
More than second individual programming signals are sent to the resistive memory element, wherein individual programming signal definition is treated more than described second It is applied to multiple values of the resistive memory element;And
The multiple electric currents collected from the respective alignment output of the resistive memory element from the resistive memory element, wherein The matrix multiplication of first matrix described in collected current definition and second matrix.
11. image processor as claimed in claim 10, wherein the matrix of first matrix and second matrix Multiplication defines described image and the convolution of the core.
12. image processor as claimed in claim 9, wherein:
First matrix has a and b dimension;
Second matrix has c and d dimension;
The multiple line includes a*b line;
The multiple alignment includes (a+c-1) * (b+d-1) individual alignment;And
The multiple abutment includes a*b*c*d abutment.
13. a kind of computing device, including:
Processor;
Image procossing accelerator, including:
Multiple lines;
Multiple alignments, intersect in multiple cross part offices with the multiple line;And
Multiple abutments, be coupled at a part of place of the multiple cross section the multiple line and the multiple alignment it Between, wherein:
Each abutment includes resistive memory element;And
The abutment is positioned to the Matrix Multiplication by calculating the first matrix corresponding with image and the second matrix corresponding with core Method calculates the convolution of described image and the core;And
Convolution engine, it is used for:
More than first individual programming signals are sent to the resistive memory element, wherein individual programming signal defines institute more than described first State multiple values in the first matrix;
More than second individual programming signals are sent to the resistive memory element, wherein individual programming signal definition is treated more than described second It is applied to multiple values of the resistive memory element;And
It is fixed according to electric current from the respective alignment of the resistive memory element, being collected from the resistive memory element The matrix multiplication of adopted first matrix and second matrix.
14. computing device as claimed in claim 13, wherein:
First matrix has a and b dimension;
Second matrix has c and d dimension;
The multiple line includes a*b line;
The multiple alignment includes (a+c-1) * (b+d-1) individual alignment;And
The multiple abutment includes a*b*c*d abutment.
15. computing device as claimed in claim 13, wherein the resistive memory element includes memristor.
CN201580079184.8A 2015-08-07 2015-08-07 Cross array, image processor and computing device Active CN107533862B (en)

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 (en) 2018-01-02
CN107533862B CN107533862B (en) 2021-04-13

Family

ID=57983430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580079184.8A Active CN107533862B (en) 2015-08-07 2015-08-07 Cross array, image processor and computing device

Country Status (4)

Country Link
US (1) US10497440B2 (en)
EP (1) EP3262651B1 (en)
CN (1) CN107533862B (en)
WO (1) WO2017026989A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110288078A (en) * 2019-05-19 2019-09-27 南京惟心光电系统有限公司 A kind of accelerator and its method for GoogLeNet model
CN110597487A (en) * 2019-08-26 2019-12-20 华中科技大学 Matrix vector multiplication circuit and calculation method
CN112836810A (en) * 2019-11-22 2021-05-25 华邦电子股份有限公司 Electronic device using crossbar array and data processing method

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017105460A1 (en) * 2015-12-17 2017-06-22 Hewlett Packard Enterprise Development Lp Improved 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 (en) * 2017-09-27 2019-03-27 Milano Politecnico "RESOLUTION CIRCUIT FOR MATHEMATICAL PROBLEMS INCLUDING RESISTIVE ELEMENTS."
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
WO2021262730A1 (en) 2020-06-25 2021-12-30 Rain Neuromorphics Inc. Lithographic memristive array

Citations (10)

* Cited by examiner, † Cited by third party
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 (en) * 2012-06-08 2012-10-10 西南大学 Q learning system based on memristor intersection array
CN102959636A (en) * 2011-06-27 2013-03-06 松下电器产业株式会社 Nonvolatile semiconductor memory device and readout method for same
CN103390425A (en) * 2012-05-08 2013-11-13 阿尔特拉公司 Routing and programming for resistive switch array
CN103460296A (en) * 2011-02-25 2013-12-18 美光科技公司 Resistive memory sensing methods and devices
CN103515533A (en) * 2012-06-25 2014-01-15 三星电子株式会社 Switching elements and devices, memory devices and methods of manufacturing the same
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62119682A (en) 1985-11-20 1987-05-30 Fanuc Ltd Image processor
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 (en) * 2011-04-04 2013-04-12 Commissariat Energie Atomique "SELECTOR-TYPE ELECTRONIC DEVICE"
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 (en) * 2014-01-17 2017-06-21 ソニーセミコンダクタソリューションズ株式会社 Storage device
US9952796B2 (en) * 2014-01-31 2018-04-24 Hewlett Packard Enterprise Development Lp Data storing in memory arrays
EP3102585B1 (en) 2014-02-03 2021-05-19 Ohio State Innovation Foundation Boronic acid esters and pharmaceutical formulations thereof

Patent Citations (11)

* Cited by examiner, † Cited by third party
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 (en) * 2006-10-16 2009-09-09 惠普发展公司,有限责任合伙企业 Crossbar-memory systems with nanowire crossbar junctions
CN103460296A (en) * 2011-02-25 2013-12-18 美光科技公司 Resistive memory sensing methods and devices
CN102959636A (en) * 2011-06-27 2013-03-06 松下电器产业株式会社 Nonvolatile semiconductor memory device and readout method for same
CN103390425A (en) * 2012-05-08 2013-11-13 阿尔特拉公司 Routing and programming for resistive switch array
CN102723112A (en) * 2012-06-08 2012-10-10 西南大学 Q learning system based on memristor intersection array
CN103515533A (en) * 2012-06-25 2014-01-15 三星电子株式会社 Switching elements and devices, memory devices and methods of manufacturing the same
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110288078A (en) * 2019-05-19 2019-09-27 南京惟心光电系统有限公司 A kind of accelerator and its method for GoogLeNet model
CN110597487A (en) * 2019-08-26 2019-12-20 华中科技大学 Matrix vector multiplication circuit and calculation method
CN112836810A (en) * 2019-11-22 2021-05-25 华邦电子股份有限公司 Electronic device using crossbar array and data processing method
CN112836810B (en) * 2019-11-22 2023-09-29 华邦电子股份有限公司 Electronic device using cross array and data processing method

Also Published As

Publication number Publication date
EP3262651B1 (en) 2021-07-21
EP3262651A1 (en) 2018-01-03
CN107533862B (en) 2021-04-13
WO2017026989A1 (en) 2017-02-16
US20180301189A1 (en) 2018-10-18
EP3262651A4 (en) 2018-03-21
US10497440B2 (en) 2019-12-03

Similar Documents

Publication Publication Date Title
CN107533862A (en) Crossed array for calculating matrix multiplication
CN107533858A (en) Crossbar array for calculating matrix multiplication
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 (en) The device and method that parallel-convolution calculates are realized based on resistive memory array
TWI696126B (en) Memory device structure for neuromorphic computing system and manufacturing method thereof
US10042819B2 (en) Convolution accelerators
WO2022222498A1 (en) Memristor array-based data processing method, and electronic device
KR20170078633A (en) Double bias memristive dot product engine for vector processing
CN110383282A (en) The system and method calculated for mixed signal
US20200218967A1 (en) Complex-Valued Neural Networks
CN111062463A (en) Implementing a multi-layer neural network using a crossbar
US20210117499A1 (en) Methods to tolerate programming and retention errors of crossbar memory arrays
Lalchhandama et al. CoMIC: Complementary Memristor based in-memory computing in 3D architecture
CN102473448B (en) Non-volatile memory array with resistive sense element block erase and uni-directional write
Amer et al. A multi-driver write scheme for reliable and energy efficient 1S1R ReRAM crossbar arrays
CN112885963A (en) Memristor cross array
US12040016B2 (en) Crossbar circuits for performing convolution operations
WO2016190838A1 (en) Hybrid selectors
Alammari et al. Memristive-Based Full Adder
CN110390391A (en) A kind of mapping device and method based on Three dimensional convolution neural network

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