WO2020099080A1 - Verfahren und vorrichtung zur umsetzung einer matrix-operation - Google Patents

Verfahren und vorrichtung zur umsetzung einer matrix-operation Download PDF

Info

Publication number
WO2020099080A1
WO2020099080A1 PCT/EP2019/078869 EP2019078869W WO2020099080A1 WO 2020099080 A1 WO2020099080 A1 WO 2020099080A1 EP 2019078869 W EP2019078869 W EP 2019078869W WO 2020099080 A1 WO2020099080 A1 WO 2020099080A1
Authority
WO
WIPO (PCT)
Prior art keywords
memristor
arrangement
matrix
analog
voltage
Prior art date
Application number
PCT/EP2019/078869
Other languages
English (en)
French (fr)
Inventor
Tobias Kirchner
Original Assignee
Robert Bosch Gmbh
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 Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Priority to CN201980074413.5A priority Critical patent/CN112955863A/zh
Priority to US17/289,151 priority patent/US20210382961A1/en
Publication of WO2020099080A1 publication Critical patent/WO2020099080A1/de

Links

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • G06JHYBRID COMPUTING ARRANGEMENTS
    • G06J1/00Hybrid computing arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Definitions

  • Dedicated hardware for example a dot product engine, is used for such applications.
  • a related method for implementing a matrix operation provides that a first digital result is determined for the matrix operation depending on a first analog addition by means of a first memristor arrangement, a second digital result depending on a second analog addition using a second memristor arrangement is determined and the first result and the second result are added digitally.
  • the analog additions in different memristor arrangements enable fast Calculation of the analog results.
  • the matrix operation is completed with the digital addition of the analog results and made available digitally for further processing.
  • the first digital result is determined as a function of a first analog result
  • the second digital result being determined as a function of a second analog result
  • the analog results being determined at least partially overlapping in time. This parallelization speeds up the calculation.
  • a first voltage is applied to a first memristor of the first memristor arrangement, a second voltage being applied to a second memristor of the first memristor arrangement, at least partially overlapping in time, with a first output of the first memristor arrangement Arrangement a first total current is detected, which characterizes the current flow through the first memristor and the second memristor, the first voltage being applied to a third memristor of the second memristor arrangement, at least partially overlapping in time, with a fourth memristor of the second memristor Arrangement, at least partially overlapping in time, the second voltage or a third voltage is applied, a second summation current being detected at a second output of the second memristor arrangement, which characterizes the current flow through the third memristor and the fourth memristor, depending on the first sum current and the result of the second total current is determined.
  • High parallelization speeds up the calculation of a matrix multiplication.
  • the first voltage is defined as a function of a first element of a first matrix
  • the second voltage is defined as a function of a second element of the first matrix
  • a first resistance value of the first memristor being defined as a function of a first element of a second matrix is
  • a second resistance value of the second memristor is defined depending on a second element of the second matrix
  • the result is a scalar product of the matrices
  • At least one resistance value of a memristor is programmed as a function of an element of the second matrix. This simply initializes the arrangement for new calculations.
  • the resistance value of at least two memristors is defined or programmed as a function of an element of the second matrix.
  • the same matrix is used several times in the arrangement for parallelization. This further speeds up the calculation.
  • a plurality of memristors is arranged in a matrix arrangement, the second matrix or a plurality of second matrices being an arrangement of resistance values for the plurality of
  • memristors and wherein a memristor in the matrix arrangement has the resistance value, or is programmed with the resistance value which corresponds in the arrangement of the resistance values to its position in the matrix arrangement, in particular with regard to its indices. This assignment is particularly clear.
  • At least two groups of memristors have resistance values or are programmed with resistance values that are defined according to the elements of the same second matrix.
  • the at least some of the memristors from the at least two groups of memristors in the matrix arrangement are used to determine the same total current.
  • the matrices are displayed one below the other in the same row. As a result, analog-digital converters with low resolution can be used.
  • the first voltage is an analog signal that is generated by a digital-to-analog converter as a function of a digital signal that is defined by the first element of the first matrix and / or that the second voltage is an analog signal generated by a digital-to-analog converter depending on a digital signal defined by the second element of the first matrix.
  • the first voltage and the second voltage differ by a factor, in particular by a power of 2, which depends in particular on a resolution of the analog-digital converter or on a bit factor on which the matrix operation is based - decomposition is defined.
  • a resolution of the signal can thus be influenced, in particular, depending on a resolution of the analog-digital converter.
  • the factor can also differ depending on whether there is a 1-bit or a 2-bit decomposition of the underlying matrix operation.
  • the first total current comprises at least a first current and a second current, the first current being applied by the first when the first voltage is applied to the first memristor
  • Memristor flows, and being the second current when the second
  • the first voltage is applied to the first memristor and a third memristor at the same time or that the second voltage is applied to at least the second memristor and a fourth memristor at the same time, with a first total current for the current through the first memristor and the second memristor is detected, a second total current for the current through the third memristor and / or the fourth memristor being detected, and the result being determined as a function of the first total current and the second total current.
  • This enables several invoices to be evaluated in parallel.
  • a digital signal which defines a value of at least one bit, is dependent on an analog-digital converter is determined by the total current.
  • the values for the registers of a memory are thus determined with particular skill.
  • a large number of total currents is determined, a large number of bits being determined depending on the large number of total currents, at least one bit being dependent on one of the
  • Sum currents is defined, is added to at least one bit which is defined as a function of another of the sum currents.
  • the resolution can be varied by adding one bit to another bit or by adding several bits to several bits at the same time.
  • At least one of the bits in one register is shifted in relation to a least significant bit of the result in the direction of the most significant bit of the result before the addition with the other bit from another register. This makes it possible to control individual memristors with an increased voltage, which allows the resolution of the analog-digital converter to be reduced.
  • At least one of the bits in one register is arranged adjacent to the other bit with respect to a least significant bit of the result before the addition with the other bit from another register. This means that the space in the register is used particularly efficiently.
  • a plurality of memristors is arranged in a matrix arrangement, the second matrix or a plurality of second matrices being an arrangement of resistance values for the plurality of
  • memristors and wherein a memristor in the matrix arrangement has the resistance value, or is programmed with the resistance value which corresponds in the arrangement of the resistance values to its position in the matrix arrangement, in particular with regard to its indices. This assignment is particularly easy to display.
  • a device for implementing a matrix operation comprises a first memristor arrangement and a second memristor arrangement, the
  • Device comprises a first analog-digital converter and a second analog-digital converter, and wherein the device is designed for Matrix operation to determine a first digital result dependent on a first analog addition using the first memristor arrangement and the first analog-digital converter, and a second digital result dependent on a second analog addition using the second memristor arrangement and the second Determine analog-digital converter.
  • This device enables a quick calculation of the matrix operation.
  • a first voltage can be applied to a first memristor of the memristor arrangement, wherein a second voltage can be applied to a second memristor of the memristor arrangement at least partially overlapping in time, with a first voltage being applied to a first output of the memristor arrangement
  • Total current can be detected, which characterizes the current flow through the first memristor and the second memristor, the first voltage being able to be applied to a third memristor of the memristor arrangement, at least partially overlapping in time, with a fourth memristor of the memristor arrangement being at least partially overlapping in time
  • the second voltage can be applied, a second total current being able to be detected at a second output of the memristor arrangement
  • the digital-to-analog converters are designed to acquire information about the at least one total current.
  • the device comprises a first analog-digital converter for generating the first voltage and a second analog-digital converter for generating the second voltage. This device is therefore more controllable.
  • the device provides a memristor arrangement in which two memristors are arranged at a node of a row and a column of the matrix arrangement
  • a device which has a microprocessor, a switching device and in particular a memory with registers which are designed.
  • memristor denotes an electronic component whose resistance can be changed by a current flow when a voltage applied to the memristor exceeds a threshold value.
  • the memristor is programmed to a specific resistance value, for example, by an iterative algorithm, which applies voltage pulses of a defined height, duration and shape to the memristor.
  • the voltage pulse is preferably checked by a calculation as to whether the memristor has reached its target value for the resistance value.
  • memristors can only be programmed with sufficient accuracy to a few discrete resistance values.
  • digitally coded resistance values by a Digital-to-analog converter converted into a corresponding voltage pulse.
  • an analog current signal is recorded as an analog result and digitized by an analog-digital converter.
  • the accuracy of the digitized result depends on the quality of the analog-digital converter with which the analog result is converted back into the digital range after the calculation has been carried out. Due to the conversion of the values from digital to analog and back, it can be assumed that the calculations are subject to a certain degree of uncertainty. This is due to conversion errors such as digital residual errors or non-linearities of the converters. Noise can also be the result
  • Memristors can be used for a variety of effects.
  • a physical system in which the effect is used has a variable resistance which is influenced by a current flow to the memristor or the memristors in the past.
  • the memristors can be arranged in a matrix in the physical system
  • n x m can be arranged and used as coefficients or weights of a mathematical matrix of the same dimension n x m.
  • the memristors form a memory for coefficients or weights.
  • a matrix arrangement 100 is shown schematically in FIG. 1 for an apparatus for implementing a matrix operation, for example a matrix multiplication.
  • the matrix arrangement 100 comprises a large number of memristor arrangements 102, the structure of which is shown in detail in FIG. 2 using the example of a memristor arrangement 102.
  • Memristors which are arranged with their first on a common row line, form a memristor array.
  • a memristor arrangement 102 comprises nine memristors a, ..., i.
  • a first memristor a is arranged between a first row line ji and a first column line mz.
  • a second memristor b is between a second row line ki and the first
  • a third memristor c is arranged between a third row line li and the first column line mz.
  • Memristor d is between the first row line ji and a second
  • a fifth memristor e is arranged between the second row line ki and the second column line nz.
  • a sixth memristor f is between the third row line li and the second
  • a seventh memristor g is arranged between the first row line ji and a third column line oz.
  • An eighth memristor h is between the second row line ki and the third
  • a ninth memristor i is arranged between the third row line li and the third column line oz.
  • the memristor arrangement 102 forms a symmetrical memristor matrix of dimension 3 ⁇ 3.
  • the dimension can be larger or smaller.
  • the memristor matrix can be asymmetrical.
  • the matrix arrangement 100 comprises fifteen memristor arrangements 102 which are arranged in three rows and five columns. Memristors of the memristor arrangements 102 of the first line of the matrix arrangement 100 arranged in the same row of the memristor matrix use the same first row line and are connected to a first input jO. In the same line of
  • Memristor matrix arranged memristors of the memristor arrangements 102 of the second row of the matrix arrangement 100 use the same second row line and are connected to a first input kO. In the same line of
  • Memristor matrix arranged memristors of the memristor arrangements 102 of the third row of the matrix arrangement 100 use the same third row line and are connected to a first input IO.
  • Memristors of the memristor arrangements 102 of the first column of the matrix arrangement 100 arranged in the same column of the memristor matrix use the same first
  • Memristors of the memristor arrangements 102 of the second column of the matrix arrangement 100 arranged in the same column of the memristor matrix use the same second column line and are connected to a second output n5.
  • Memristors of the memristor arrangements 102 of the third column of the matrix arrangement 100 arranged in the same column of the memristor matrix use the same third column line and are connected to a second output o5.
  • the remaining memristor arrangements 102 of the matrix arrangement 100 are in accordance with this circuit diagram with the inputs j1, k1, 11, j2, k2, 12 and the outputs m4, n4, o4, m3, n3, o3, m2, n2, o2, m1, n1, o1 connected.
  • the index i shown in FIG. 2 for a memristor arrangement 102 indicates the line in the matrix arrangement 100 in which this memristor arrangement 102 is arranged.
  • the index z shown in FIG. 2 characterizes for a memristor arrangement 102 the column in the matrix arrangement 100 in which this memristor arrangement 102 is arranged.
  • the first column of the matrix arrangement 100 is assigned to the most significant bit, MSB, of a result of the calculation.
  • the last column of the matrix arrangement 100 is assigned to the least significant bit, LSB, of the result of the calculation.
  • Each three adjacent outputs shown in FIG. 1, which are designated by the same index, are combined as columns.
  • the factors 16, 8, 4, 2, 1 are assigned to the columns from the first column on the left to the last column on the right. These indicate the power of 2, with which the result of the analog sum formation of a column in the digital sum formation is taken into account for the result.
  • the factors are defined depending on the bit factor decomposition on which the matrix operation is based.
  • a digital-to-analog converter 104 is arranged on each of the row lines and supplies a memristor array with an input voltage. If the calculations are carried out in binary form, the digital-to-analog converters are omitted 104.
  • the digital-to-analog converter 104 must be able to map the column current.
  • the column stream represents the sum of the maximum weights in a column. It is taken into account that in some designs the
  • Row voltage for the column is already provided with a factor.
  • a digital-to-analog converter 106 is arranged on each of the column lines.
  • the analog-to-digital converters 106 which read out the analog results require a resolution which is adapted in accordance with the size of the memristor matrix and in accordance with the bit width of the input variables in order to ensure that at their outputs the
  • Output digital output values with sufficient resolution With a 4x4 matrix e.g. four values added per column, so that in this case the digital-to-analog converter 106 must cover a range of values that is at least 4 times as large. If the line voltage is already assigned a factor, the value range must be made correspondingly larger. This corresponds to a range of values 2 times as large.
  • the factors assigned to the columns can also be defined depending on the resolution of the digital-to-analog converter. This may require an adjustment of the input voltages described below.
  • the inputs of the digital-to-analog converter 104 and the outputs of the analog-to-digital converter 106 are grouped together in rows or columns in the example described as follows, and are designed to carry out the following calculation.
  • a matrix operation with 3-bit wide input values and 3-bit weights can be broken down into 81 matrix operations with 1 bit each, with all matrix operations being carried out simultaneously. This requires 81 memristors at the same time.
  • the digital-analog converters and analog-digital converters used only have to resolve a few stages.
  • the matrix can be designed flexibly with regard to the resolution of the components. That means:
  • the resolution of the digital-to-analog converter and the analog-to-digital converter are scalable.
  • the matrix can, for example, be dimensioned in such a way that many analog-digital converters are used which work with a lower resolution or vice versa.
  • Comparison with a rate of response of the matrix i.e. Its components or elements are chosen faster, or the analog-digital converter and the matrix used allow it, in one aspect it is provided to multiplex the analog-digital converter.
  • the multiplexing can take place within the matrix or to other matrices in the memory.
  • the memristors can be operated stably and independently of the temperature because the number of states can be reduced.
  • the digital-to-analog converters are not required for binary operation.
  • the analog-to-digital converters only require n-level resolution with a matrix of dimension n x n.
  • the memristors In binary operation, the memristors only need 2 states each, i.e. 1 bit. With binary operation, the memristors can be programmed very quickly, especially without a repetitive algorithm.
  • the matrix arrangement 100 can be scaled as desired.
  • the number of matrices depends linearly on the resolution of the weights. In the example, a matrix is used for each bit. For a matrix of the dimension 3 x 3 with 3 bit input values and 3 bit output values, for example, a circuit arrangement with three matrices is suitable, each of which is used three times for a calculation. The number of additional iterations depends on the resolution
  • memristors with a higher resolution is also possible. If memristors can be programmed with more than one bit resolution, the number of matrices is reduced accordingly.
  • a matrix operation is broken down into binary components. This is described below using a 3 x 3 matrix and a 3 x 1 vector.
  • the desired matrix operation is broken down into individual bits
  • FIG. 1 shows a control of the matrix arrangement 100 for the calculation of this product. More precisely, the memristors are first assigned the values from the matrices E0, E1, E2 at the nodes shown in FIG. 1, ie the memristors are programmed accordingly.
  • the values from lines of the respective matrices E0, E1, E2 are in the example as
  • Resistance values or conductance values are programmed in columns of the memristor arrangements 102, as shown in FIG. 2.
  • Figure 1 the assignment of the respective matrices E0, E1, E2 to the arrangement in the hardware of the matrix arrangement 100 is denoted by the same index. Then they will
  • Input values of the inputs designated by jO, j1, j2, kO, k1, k2, I0, 11, I2 in FIG. 1 are assigned the values of the vectors A0, A1, A2 of the same index. This means that the digital-to-analog converter 104 of these inputs set one
  • Bit storage for logic 0 no voltage applied. For logic 1, however, a higher voltage is applied.
  • Such a matrix arrangement 100 is a memory made of memristors. Are arithmetic operations, i.e. in-memory computing, the storage locations, i.e. the memristors, described accordingly. A voltage is then applied to a row of the matrix. At least partially overlapping in time, a column is connected to ground. The current that flows through the memristor at the node from this row and column to the ground point depends on one
  • Resistance value R node of the memristor from: I U / R node.
  • the analog-to-digital converter 106 preferably has a virtual zero point. That means the columns are not actually connected to ground. The mass potential is provided via the virtual zero point.
  • the analog-to-digital converter 106 is, for example, a transimpedance amplifier.
  • the digital result of this calculation is a sum S in the example of length 8 bits is determined for each of the scalars j, k, I according to a calculation scheme 300 shown as an example in FIG. 3 for the scalar j.
  • the digitized results of the column lines which are assigned to the scalar j, are designated in the example from the first column of the matrix arrangement 100 on the left beginning with m5, m4, m3, m2 and m1.
  • the digitized results are arranged in rows in FIG.
  • corresponding registers are provided in a memory into which the respective digitized Result is written.
  • a first digitized result m1 of the last column of the matrix arrangement 100 is arranged in the first line.
  • the first digitized result m1 delivers two bits and is arranged at the LSB of the sum S.
  • a second digitized result m2 of the penultimate column provides three bits, the LSB of which is shifted four bits with respect to the LSB of the sum S to the MSB of the sum S.
  • a third The digitized result m3 of the third column provides four bits, the LSB of which is shifted by two bits with respect to the LSB of the sum S to the MSB of the sum S.
  • a fourth digitized result m4 of the second column provides three bits, the LSB of which is shifted by three bits with respect to the LSB of the sum S to the MSB of the sum S.
  • a fifth digitized result m1 m5 of the first column provides two bits, the LSB of which is shifted by four bits with respect to the LSB of the sum S to the MSB of the sum S.
  • the result of the calculation is determined as an 8-bit sum S.
  • FIG. 4 shows an electrical circuit 400 for driving the digital-to-analog converter 104 for supplying voltage to the row lines, and for driving the analog-to-digital converter 106 for detecting the current which arises on the column lines.
  • at least one is shown electrical switching device 402 realized, which can be switched by a microprocessor 404 via at least one signal line 406.
  • junction field effect transistors are used as electrical switches in the
  • Switching device 402 used.
  • the matrix arrangement 100 is connected to the switching device 402 via at least one corresponding power supply 408.
  • a memory 410 with registers for the calculation is connected to the microprocessor 404 via a data bus 412.
  • the microprocessor 404 is designed to control the matrix arrangement 100 according to the described method in order to carry out the calculation.
  • a step 502 the equation of a matrix operation to be solved is decomposed.
  • the matrices E0, E1, E2 are determined more precisely.
  • Step 504 is then carried out.
  • the memristor arrangements 102 of the matrix arrangement 100 are programmed for the calculation.
  • the memristors are programmed according to the values from the matrices E0, E1, E2.
  • the circuit arrangement with three matrices is suitable, each three times for a calculation can be used.
  • a possible implementation is shown in FIG. 1, in which the assignment of memristor arrangement 102 to matrices E0, E1, E2 is designated E0, E1, E2.
  • all matrix multiplications that are multiplied by the same factor are arranged one below the other, ie the memristors are selected and programmed by appropriate control.
  • a high resistance value means
  • logic 1 and a resistance value that is low in comparison means, for example, logic 0.
  • Step 506 is then performed.
  • step 506 the input values of the inputs labeled jO, j1, j2, kO, k1, k2, 10, 11, 12 are voltage-controlled in accordance with the input values of the inputs jO, j1, j2, kO, k1, k2, 10, 11, 12 occupied. This means that the digital-to-analog converters 104 of these inputs apply a corresponding voltage.
  • the resulting total current is determined as an analog result of the calculation on the corresponding column lines.
  • column line is detected by the respective analog-digital converter 106.
  • the digital result is written according to the first calculation scheme 300 at a corresponding point in the register for determining the sum S.
  • Step 508 is then performed.
  • step 508 the 8-bit sum S is determined as the result of the calculation for each of the scalars j, k, I.
  • a matrix operation with 3-bit wide input values can be done and split 3-bit weights into 81 matrix operations with 1 bit each, with all matrix operations being performed simultaneously.
  • FIG. 6 shows a second calculation scheme 600.
  • the implementation of the calculation according to the second calculation scheme 600 further optimizes the procedure described above by reducing the number of registers required.
  • the first digitized result m1 and the third digitized result m3 are arranged in the same line.
  • the second digitized result m2 and the fifth digitized result m1 m5 are arranged on the same line. The rest of the procedure is as described for the first calculation scheme 300.
  • the digital-to-analog converter 106 for determining the output value m3 is designed to resolve four bits, and the digital-to-analog converter 106 for determining the output value m4 and m2 are designed to resolve three bits in the example. In the example, the other digital-to-analog converters 106 are designed to resolve only two bits.
  • Shift to the right by a memristor arrangement 102 is increased by a factor of 2. Instead of multiplying by a factor by one
  • a division can be carried out simply using a voltage divider, starting from a supply voltage.
  • Input values i.e. 1 bit per line, the number of states that the analog-digital converter must resolve is 21.
  • FIG. 8 shows a third calculation scheme 800.
  • the implementation of the calculation according to the third calculation scheme 800 further optimizes the procedure described above.
  • the first calculation scheme 300 only the first digitized result m1, the second digitized result m2 and the third digitized result m3 are arranged.
  • the digitized results have the same bit lengths. The rest of the procedure is as described for the first calculation scheme 300.
  • One aspect provides for subtotals to be derived. If the number range required for a matrix operation is larger than the resolution of the available analog-digital converter allows, subtotals can be derived, for example. The total number of analog-digital converters required increases, the resolution decreases.
  • An exemplary implementation can be seen in FIG. 9.
  • a tap for an analog-digital converter 106 is arranged on each of the column lines between the second row and the third row of the matrix arrangement 100.
  • a sequence of switching the column lines to ground and the application of voltage to the row lines can be selected such that current flows through each column line only through one of the taps which are arranged on this column line.
  • This column line can then be designed continuously without impairing the calculation of the total current.
  • the column line may preferably be permanently interrupted electrically at the point of rejection between the memristor arrangements of the third line and the second line for analog determination of the total current. Analog subtotals generated in this way are recorded by the taps and then added digitally.
  • Groups with the initial values that give the analog subtotals of the third line are with [m5, n5, o5], [m4, n4, o4], [m3, n3, o3], [m2, n2, o2], [m1 , n1, o1].
  • Groups with the initial values that indicate the analog subtotals of the first and second lines are [r5, s5, t5], [r4, s4, t4], [r3, s3, t3], [r2, s2, t2], [r1, s1, t1].
  • Output values r1, r2 and r3 assigned to scalar j are arranged row by row in this order, starting with the output value r1 for the LSB of the sum S.
  • the output value r1 is arranged with its LSB on the LSB of the sum S.
  • the following output values are arranged with their LSB in the following lines shifted one more place towards the MSB.
  • Starting values m1, m2 and m3 assigned to scalar j are shifted starting from the starting value m1 with respect to the LSB of the sum S by two bits to the MSB of the sum S.
  • the following Initial values are arranged with their LSB in the following lines shifted one more place towards the MSB. The total calculation of the result is carried out column by column as described above.
  • analog-to-digital converters need the third line
  • each subtotal is diverted. If necessary, the factor of the voltages on the rows can be adjusted or omitted if this is taken into account in the further digital calculation of the subtotal.
  • Groups with the starting values, which indicate the subtotals of the third line, are designated with [m3, n3, o3], [m2, n2, o2], [m1, n1, o1].
  • Groups with the initial values, which take the second line but not the first and the third line into account, are designated with [r3, s3, t3], [r2, s2, t2], [r1, s1, t1].
  • Groups with the initial values that only take into account the first line are designated with [u3, u3, u3], [u2, v2, w2], [u1, v1, w1].
  • the same column line is assigned outputs labeled j, r and u with k, s and v with I, r and w.
  • the application of voltage to the row lines can be selected such that current flows through only one tap per column line.
  • the column line at the tap can then be designed continuously without impairing the calculation of the total current.
  • the column line can be at the point of rejection between the third row and the memristor arrangements second line to determine the total current or permanently electrically interrupted.
  • the line voltages are always the same when the line lines are applied.
  • the previously necessary factor, in example 2 or 4 is realized by showing the results of the analog-digital converter at a different bit position in the register.
  • the output values between the first line and the second line are arranged starting with the LSB of the output value u1 at the LSB of the sum S.
  • the output values u2 and u3 are each shifted in the following lines by one more position to the MSB of the summ S.
  • the output values between the second line and the third line are already arranged starting with the LSB of the output value r1 with respect to the LSB of the sum S shifted by one position towards the MSB of the sum S.
  • the output values r2 and r3 are each shifted in the following lines by one more position towards the MSB of the summ S.
  • Output value m1 with respect to the LSB of the sum S is already arranged shifted two positions towards the MSB of the sum S.
  • the totals for the result are column by column as described.
  • analog-digital converters with a resolution of 2 bits are required.
  • analog-to-digital converters can only consist of two Comparators exist. These analog-to-digital converters can work up to the GHz range.
  • Another aspect concerns increasing the resolution of the memristors to 2 bits. This means that several states are programmed in one memristor. This is taken into account when disassembling the matrix analogously to the described matrix operation with 1-bit disassembly.
  • FIG. 13 This implementation is illustrated in FIG. 13 on the basis of the description of the matrix arrangement 100 that was described with reference to FIG. 7.
  • the arrangement, in particular of the matrices E0, E1, E2 and the factor 2 for the input values j1, k1, 11 and the factor 4 for the input values j2, k2, 12 are as previously described.
  • the calculation scheme 1400 shown in FIG. 14 takes these changes into account, for example, for all scalars j, k, I by means of a 12-bit sum S, which is determined as a function of a first output variable m1, a second output variable m3 and a third output variable m5. This will be the first
  • Output variable m1 arranged with its LSB starting with the LSB of the sum S.
  • the second output variable m3 is shifted with its LSB by two places to the MSB of the sum S starting in a further line.
  • the third output variable m5 is increased by four digits with its LSB to the MSB of the sum S shifted starting in another line.
  • the sum S is determined in columns.
  • the previously used decomposition is carried out by a vector decomposition with the factors 2 °, 2 2 , 2 4 and with the substitution
  • the resulting matrix arrangement 100 is shown in FIG. 15.
  • the voltage at the inputs j1, k1, 11 is now subjected to a factor of 4.
  • the voltage at the inputs j2, k2, I2 is now subjected to a factor 16.
  • the required resolution of analog-digital converter 1 16 is calculated with 2 bits
  • Input values that are 2 bits per line are the number of states that the analog-digital converter 1 16 must resolve 1008.
  • the calculation scheme 1600 shown in FIG. 16 takes these changes into account, for example, for all scalars j, k, I by means of a 12-bit sum S, which is determined as a function of a first output variable m1, a second output variable m3 and a third output variable m5. This will be the first
  • Output variable m1 arranged with its LSB starting with the LSB of the sum S.
  • the second output variable m3 is shifted with its LSB by two places to the MSB of the sum S starting in a further line.
  • the third output variable m5 is shifted with its LSB by four places to the MSB of the sum S starting in a further line.
  • the sum S is determined in columns.
  • n * n matrix requires n 2 multiplications and n 2 - n additions. In the case of an 8x8 matrix, this would be 64 multiplications and 56 additions with 8-bit input values, i.e. with 16-bit width. About 1 18 cycles are required.
  • the proposed method requires 3 * 8 shift operations of the
  • the procedure is based on matrices of other sizes and resolutions
  • a memristor arrangement in which two of a row and a column of the matrix arrangement 100 are located at a node Memristors are arranged with respect to their charge-dependent
  • Resistance values are changeable in opposite directions. These can be programmed with the same voltage simultaneously with inverted weights. Two current value calculations can thus be carried out simultaneously. However, one of the two calculations uses inverted weights. As a result, the analog-digital converter counts zeros, which is either when interpreting the results or in
  • Algorithm can be taken into account. This redundancy can be used, for example, to check the plausibility of the results.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Power Engineering (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

Verfahren zur Umsetzung einer Matrix-Operation wobei für die Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels einer ersten Memristor-Anordnung (102) bestimmt wird, wobei ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels einer zweiten Memristor-Anordnung (102) bestimmt wird und wobei das erste Ergebnis und das zweite Ergebnis digital addiert werden. Vorrichtung (100) zur Umsetzung einer Matrix-Operation, wobei die Vorrichtung (100) wenigstens eine erste Memristor-Anordnung (102) und eine zweite Memristor-Anordnung (102) umfasst, wobei die Vorrichtung (100) eine ersten Analog-Digital-Wandler (106, 116) und einen zweiten Analog-Digital-Wandler (106, 116) umfasst, und wobei die Vorrichtung (100) ausgebildet ist, für die Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels der ersten Memristor-Anordnung (102) und des ersten Analog-Digital-Wandlers (106, 116) zu bestimmen, und ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels der zweiten Memristor-Anordnung (102) und des zweiten Analog-Digital-Wandlers (106, 116) zu bestimmen.

Description

Beschreibung
Titel
Verfahren und Vorrichtung zur Umsetzung einer Matrix-Operation
Stand der Technik
Die mathematische Bestimmung eines Skalarprodukts aus einem Vektor und einer passend dimensionierten Matrix durch einen Rechner erfordert sehr viele Additionen und Multiplikationen und damit sehr viel Speicherplatz im Rechner.
Die Berechnung von Skalarprodukten mittels einer entsprechend dimensionierten Matrix durch in-memory computing benötigt demgegenüber weniger
Speicherplatz. Dasselbe trifft auf das Lösen von Differenzialgleichungssystemen zu.
Für derartige Anwendungen wird eine dedizierte Hardware, beispielsweise eine dot product engine verwendet.
Wünschenswert ist es eine demgegenüber effizientere Möglichkeit zum
Durchführen derartiger Berechnungen zu schaffen.
Offenbarung der Erfindung
Dies wird durch den Gegenstand der unabhängigen Ansprüche erreicht.
Ein diesbezügliches Verfahren zur Umsetzung einer Matrix-Operation sieht vor, dass für die Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels einer ersten Memristor-Anordnung bestimmt wird, wobei ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels einer zweiten Memristor-Anordnung bestimmt wird und wobei das erste Ergebnis und das zweite Ergebnis digital addiert werden. Die analogen Additionen in verschiedenen Memristor-Anordnungen ermöglichen eine schnelle Berechnung der analogen Ergebnisse. Die Matrix-Operation wird mit der digitalen Addition der analogen Ergebnisse abgeschlossen und zur weiteren Verarbeitung digital bereitgestellt.
Vorzugsweise ist vorgesehen, dass das erste digitale Ergebnis abhängig von einem ersten analogen Ergebnis bestimmt wird, wobei das zweite digitale Ergebnis abhängig von einem zweiten analogen Ergebnis bestimmt wird, wobei die analogen Ergebnisse zumindest teilweise zeitlich überlappend bestimmt werden. Diese Parallelisierung beschleunigt die Berechnung.
Vorzugsweise ist vorgesehen, dass an einen ersten Memristor der ersten Memristor-Anordnung eine erste Spannung angelegt wird, wobei an einen zweiten Memristor der ersten Memristor-Anordnung zumindest teilweise zeitlich überlappend dazu eine zweite Spannung angelegt wird, wobei an einem ersten Ausgang der ersten Memristor-Anordnung ein erster Summenstrom erfasst wird, der den Stromfluss durch den ersten Memristor und den zweiten Memristor charakterisiert, wobei an einen dritten Memristor der zweiten Memristor- Anordnung zumindest teilweise zeitlich überlappend dazu die erste Spannung angelegt wird, wobei an einen vierten Memristor der zweiten Memristor- Anordnung zumindest teilweise zeitlich überlappend dazu die zweite Spannung oder eine dritte Spannung angelegt wird, wobei an einem zweiten Ausgang der zweiten Memristor-Anordnung ein zweiter Summenstrom erfasst wird, der den Stromfluss durch den dritten Memristor und den vierten Memristor charakterisiert, wobei abhängig vom ersten Summenstrom und vom zweiten Summenstrom das Ergebnis bestimmt wird. Durch hohe Parallelisierung wird die Berechnung einer Matrix-Multiplikation beschleunigt.
Vorzugseise ist vorgesehen, dass die erste Spannung abhängig von einem ersten Element einer ersten Matrix definiert ist, wobei die zweite Spannung abhängig von einem zweiten Element der ersten Matrix definiert ist, wobei ein erster Widerstandswert des ersten Memristors abhängig von einem ersten Element einer zweiten Matrix definiert ist, wobei ein zweiter Widerstandwert des zweiten Memristors abhängig von einem zweiten Element der zweiten Matrix definiert ist, und wobei das Ergebnis ein Skalarprodukt der Matrizen
charakterisiert. Durch hohe Parallelisierung wird die Berechnung eines
Skalarprodukts sehr schnell ausführbar. Vorzugsweise ist vorgesehen, dass wenigstens ein Widerstandswert eines Memristors abhängig von einem Element der zweiten Matrix programmiert wird. Damit wird die Anordnung für neue Berechnungen einfach initialisiert.
Vorzugsweise ist vorgesehen, dass der Widerstandswert von wenigstens zwei Memristoren abhängig von einem Element der zweiten Matrix definiert ist oder programmiert wird. Dieselbe Matrix wird zur Parallelisierung mehrfach in der Anordnung verwendet. Damit wird die Berechnung weiter beschleunigt.
Vorzugsweise ist vorgesehen, dass eine Vielzahl Memristoren in einer Matrix- Anordnung angeordnet ist, wobei die zweite Matrix oder eine Vielzahl zweiter Matrizen eine Anordnung von Widerstandswerten für die Vielzahl der
Memristoren definieren, und wobei ein Memristor in der Matrix-Anordnung den Widerstandswert aufweist, oder mit dem Widerstandswert programmiert wird, der in der Anordnung der Widerstandswerte seiner Position in der Matrix-Anordnung insbesondere bezüglich seiner Indizes entspricht. Diese Zuordnung ist besonders übersichtlich.
Vorzugsweise ist vorgesehen, dass wenigstens zwei Gruppen von Memristoren Widerstandswerte aufweisen oder mit Widerstandswerten programmiert werden, die gemäß den Elementen derselben zweiten Matrix definiert sind. Die
Gruppierung erleichtert die Zuordnung signifikant.
Vorzugsweise ist vorgesehen, dass die wenigstens ein Teil der Memristoren aus den wenigstens zwei Gruppen von Memristoren in der Matrix-Anordnung zur Bestimmung desselben Summenstroms verwendet werden. Die Matrizen werden in derselben Reihe untereinander abgebildet. Dadurch sind Analog-Digital- Wandler mit geringer Auflösung verwendbar.
Vorzugsweise ist vorgesehen, dass wenigstens einer der Memristoren aus einer der wenigstens zwei Gruppen von Memristoren in der Matrix-Anordnung bei der Bestimmung des Summenstroms von Memristoren der anderen der wenigstens zwei Gruppen unberücksichtigt bleibt. Dadurch können Analog-Digital-Wandler mit hoher Auflösung ausgelastet werden. Vorzugsweise ist vorgesehen, dass die erste Spannung ein analoges Signal ist, das von einem Digital-Analog-Wandler abhängig von einem digitalen Signal erzeugt wird, das durch das erste Element der ersten Matrix definiert ist und/oder dass die zweite Spannung ein analoges Signal ist, das von einem Digital-Analog- Wandler abhängig von einem digitalen Signal erzeugt wird, das durch das zweite Element der ersten Matrix definiert ist. Damit werden die Eingangsgrößen für die Berechnung besonders geschickt erzeugt.
Vorzugsweise ist vorgesehen, dass sich die erste Spannung und die zweite Spannung um einen Faktor unterscheiden, insbesondere um eine Potenz von 2, der insbesondere abhängig von einer Auflösung des Analog-Digital-Wandlers oder abhängig von einer der Matrix-Operation zugrunde liegenden Bit-Faktoren- Zerlegung definiert ist. Damit kann eine Auflösung des Signals insbesondere abhängig von einer Auflösung des Analog-Digital-Wandlers beeinflusst werden. Der Faktor kann sich auch abhängig davon unterscheiden, ob eine 1 Bit oder eine 2 Bit Zerlegung der zugrunde liegenden Matrix-Operation vorliegt.
Vorzugsweise ist vorgesehen, dass der erste Summenstrom wenigstens einen ersten Strom und einen zweiten Strom umfasst, wobei der erste Strom beim Anlegen der ersten Spannung an den ersten Memristor durch den ersten
Memristor fließt, und wobei der zweite Strom beim Anlegen der zweiten
Spannung an den zweiten Memristor durch den zweiten Memristor fließt. Dies ist eine besonders günstige Berücksichtigung der einzelnen Ströme.
Vorzugsweise ist vorgesehen, dass die erste Spannung zur selben Zeit an den ersten Memristor und einen dritten Memristor angelegt wird oder wobei die zweite Spannung zur selben Zeit an wenigstens den zweiten Memristor und einen vierten Memristor angelegt wird, wobei ein erster Summenstrom für den Strom durch den ersten Memristor und den zweiten Memristor erfasst wird, wobei ein zweiter Summenstrom für den Strom durch den dritten Memristor und/oder den vierten Memristor erfasst wird, und wobei das Ergebnis abhängig vom ersten Summenstrom und vom zweiten Summenstrom bestimmt wird. Das ermöglicht es mehrere Rechnungen parallel auszuwerten.
Vorzugsweise ist vorgesehen, dass ein digitales Signal, das einen Wert wenigstens eines Bits definiert, durch einen Analog-Digital-Wandler abhängig vom Summenstrom bestimmt wird. Damit werden die Werte für die Register eines Speichers besonders geschickt bestimmt.
Vorzugsweise ist vorgesehen, dass eine Vielzahl Summenströmen bestimmt wird, wobei abhängig von der Vielzahl der Summenströme eine Vielzahl Bits bestimmt wird, wobei wenigstens ein Bit, das abhängig von einem der
Summenströme definiert ist, zu wenigstens einem Bit addiert wird, das abhängig von einem anderen der Summenströme definiert ist. Die Auflösung ist variierbar indem je ein Bit zu einem anderen Bit oder indem mehrere Bits gleichzeitig zu mehreren Bits addiert werden.
Vorzugsweise ist vorgesehen, dass wenigstes eines der Bits in einem Register vor der Addition mit dem anderen Bit aus einem anderen Register bezüglich eines least significant bits des Ergebnisses in Richtung des most significant bits des Ergebnisses verschoben angeordnet wird. Damit ist eine Ansteuerung einzelner Memristoren mit einer erhöhten Spannung möglich, die es erlaubt die Auflösung der Analog-Digital-Wandler zu reduzieren.
Vorzugsweise ist vorgesehen, dass wenigstes eines der Bits in einem Register vor der Addition mit dem anderen Bit aus einem anderen Register bezüglich eines least significant bits des Ergebnisses benachbart zu dem anderen Bit angeordnet wird. Damit wird der Raum im Register besonders effizient genutzt.
Vorzugsweise ist vorgesehen, dass eine Vielzahl Memristoren in einer Matrix- Anordnung angeordnet ist, wobei die zweite Matrix oder eine Vielzahl zweiter Matrizen eine Anordnung von Widerstandswerten für die Vielzahl der
Memristoren definieren, und wobei ein Memristor in der Matrix-Anordnung den Widerstandswert aufweist, oder mit dem Widerstandswert programmiert wird, der in der Anordnung der Widerstandswerte seiner Position in der Matrix-Anordnung insbesondere bezüglich seiner Indizes entspricht. Diese Zuordnung ist besonders einfach darstellbar.
Eine Vorrichtung zur Umsetzung einer Matrix-Operation umfasst eine erste Memristor-Anordnung und eine zweite Memristor-Anordnung, wobei die
Vorrichtung eine ersten Analog-Digital-Wandler und einen zweiten Analog- Digital-Wandler umfasst, und wobei die Vorrichtung ausgebildet ist, für die Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels der ersten Memristor-Anordnung und des ersten Analog-Digital-Wandlers zu bestimmen, und ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels der zweiten Memristor- Anordnung und des zweiten Analog-Digital-Wandlers zu bestimmen. Diese Vorrichtung ermöglicht eine schnelle Berechnung der Matrix-Operation.
Vorzugsweise ist vorgesehen, dass an einen ersten Memristor der Memristor- Anordnung eine erste Spannung anlegbar ist, wobei an einen zweiten Memristor der Memristor-Anordnung zumindest teilweise zeitlich überlappend dazu eine zweite Spannung anlegbar ist, wobei an einem ersten Ausgang der Memristor- Anordnung ein erster Summenstrom erfassbar ist, der den Stromfluss durch den ersten Memristor und den zweiten Memristor charakterisiert, wobei an einen dritten Memristor der Memristor-Anordnung zumindest teilweise zeitlich überlappend dazu die erste Spannung anlegbar ist, wobei an einen vierten Memristor der Memristor-Anordnung zumindest teilweise zeitlich überlappend dazu die zweite Spannung anlegbar ist, wobei an einem zweiten Ausgang der Memristor-Anordnung ein zweiter Summenstrom erfassbar ist, der den
Stromfluss durch den dritten Memristor und den vierten Memristor charakterisiert.
Vorzugsweise ist vorgesehen, dass eine Vielzahl Memristoren-Anordnungen eine Matrix-Anordnung bildet. Dies ist besonders effizient darstellbar.
Vorzugsweise ist vorgesehen, dass die Digital-Analog-Wandler zur Erfassung von Information über den wenigstens einen Summenstrom ausgebildet sind.
Vorzugsweise ist vorgesehen, dass die Vorrichtung einen ersten Analog-Digital- Wandler zur Erzeugung der ersten Spannung und einen zweiten Analog- Digitalwandler zur Erzeugung der zweiten Spannung umfasst. Damit ist diese Vorrichtung besser ansteuerbar.
Vorzugsweise ist vorgesehen, dass die Vorrichtung eine Memristor-Anordnung vorsieht, in der an einem Knoten von einer Zeile und einer Spalte der Matrix- Anordnung zwei Memristoren angeordnet sind, die hinsichtlich ihrer
ladungsabhängigen Widerstandswerte in einander entgegengesetzter Richtung veränderlich sind. Zur Ansteuerung ist eine Vorrichtung vorgesehen, die einen Mikroprozessor, eine Schalteinrichtung und insbesondere einen Speicher mit Registern aufweist, die ausgebildet sind.
Weitere vorteilhafte Ausführungsformen ergeben sich aus der folgenden
Beschreibung und der Zeichnung. In der Zeichnung zeigt:
Fig. 1 schematisch eine Matrix-Anordnung,
Fig. 2 schematisch eine Memristor-Anordnung,
Fig. 3 ein erstes Berechnungs-Schema,
Fig. 4 schematisch eine elektrische Beschaltung,
Fig. 5 Schritte in einem Verfahren zur Berechnung,
Fig. 6 ein zweites Berechnungs-Schema,
Fig. 7 eine Zuordnung von Matrizen in der Memristor-Anordnung,
Fig. 8 ein drittes Berechnungs-Schema,
Fig. 9 schematisch eine Memristor-Anordnung mit Ausleitungen,
Fig. 10 ein viertes Berechnungs-Schema,
Fig. 1 1 schematisch eine Memristor-Anordnung mit weiteren Ausleitungen,
Fig. 12 ein fünftes Berechnungs-Schema,
Fig. 13 schematisch eine weitere Memristor-Anordnung,
Fig. 14 ein sechstes Berechnungs-Schema,
Fig. 15 schematisch eine weitere Memristor-Anordnung,
Fig. 16 ein siebtes Berechnungs-Schema.
In der folgenden Beschreibung bezeichnet Memristor ein elektronisches Bauteil, dessen Widerstand durch einen Stromfluss veränderlich ist, wenn eine an den Memristor angelegte Spannung einen Schwellwert überschreitet. Die
Programmierung des Memristors auf einen bestimmten Widerstandswert erfolgt beispielsweise durch einen iterativen Algorithmus, welcher Spannungspulse mit definierter Höhe, Dauer und Form an den Memristor anlegt. Nach jedem
Spannungspuls wird vorzugsweise durch eine Berechnung kontrolliert, ob der Memristor seinen Zielwert für den Widerstandswert erreicht hat.
Mit einem solchem Algorithmus können Memristoren nur auf wenige diskrete Widerstandswerte mit einer hinreichenden Genauigkeit programmiert werden. Dazu werden beispielsweise digital codierte Widerstandswerte durch einen Digital-Analog-Wandler in einen entsprechenden Spannungspuls umgewandelt. Zur Berechnung des Widerstandswertes nach jedem Spannungspuls wird ein analoges Stromsignal als analoges Ergebnis erfasst und von einem Analog- Digital-Wandler digitalisiert. Die Genauigkeit des digitalisierten Ergebnisses ist abhängig von der Qualität des Analog-Digital-Wandlers mit dem das analoge Ergebnis nach erfolgter Berechnung wieder in den digitalen Bereich zurück gewandelt wird. Aufgrund der Wandlung der Werte von digital nach analog und zurück ist davon auszugehen, dass die Berechnungen einer gewissen Unschärfe unterliegen. Ursächlich hierfür sind Wandlungsfehler wie digitale Restfehler oder Nichtlinearitäten der Wandler. Auch Rauschen kann das Ergebnis
beeinträchtigen, insbesondere dann, wenn die Auflösung der Wandler groß ist.
Memristoren können für eine Vielzahl von Effekten verwendet werden. Ein physikalisches System in dem der Effekt zur Anwendung kommt, weist einen veränderlichen Widerstand auf, der von einem Stromfluss zu dem Memristor oder den Memristoren in der Vergangenheit beeinflusst wird.
Die Memristoren können im physikalischen System in einer Matrix einer
Dimension n x m angeordnet sein und als Koeffizienten oder Gewichte einer mathematischen Matrix derselben Dimension n x m verwendet werden. In einem derartigen physikalischen System bilden die Memristoren einen Speicher für Koeffizienten oder Gewichte.
Mit Memristoren sind aufgrund ihres sehr geringen Platzbedarfs preiswerte physikalische Systeme darstellbar. Analog-Digital-Wandler und Digital-Analog- Wandler weisen diese Vorteile nicht auf. Die Genauigkeit des physikalischen Systems hängt insofern wesentlich von der erreichbaren Auflösung der
Memristorwerte und der Qualität und damit dem Preis der Analog-Digital-Wandler und der Digital-Analog-Wandler ab.
In Figur 1 ist beispielhafte für eine Vorrichtung zur Umsetzung einer Matrix- Operation beispielsweise einer Matrix-Multiplikation eine Matrix-Anordnung 100 schematisch dargestellt. Die Matrix-Anordnung 100 umfasst eine Vielzahl Memristor-Anordnungen 102, deren Aufbau in Figur 2 am Beispiel einer Memristor-Anordnung 102 detailliert dargestellt ist.
Memristoren, die mit ihrem ersten an einer gemeinsamen Zeilenleitung angeordnet sind, bilden ein Memristor-Array.
Eine Memristor-Anordnung 102 umfasst im Beispiel, wie auch in Figur 2 dargestellt, neun Memristoren a, ..., i. Ein erster Memristor a ist zwischen einer ersten Zeilenleitung ji und einer ersten Spaltenleitung mz angeordnet. Ein zweiter Memristor b ist zwischen einer zweiten Zeilenleitung ki und der ersten
Spaltenleitung mz angeordnet. Ein dritter Memristor c ist zwischen einer dritten Zeilenleitung li und der ersten Spaltenleitung mz angeordnet. Ein vierter
Memristor d ist zwischen der ersten Zeilenleitung ji und einer zweiten
Spaltenleitung nz angeordnet. Ein fünfter Memristor e ist zwischen der zweiten Zeilenleitung ki und der zweiten Spaltenleitung nz angeordnet. Ein sechster Memristor f ist zwischen der dritten Zeilenleitung li und der zweiten
Spaltenleitung nz angeordnet. Ein siebter Memristor g ist zwischen der ersten Zeilenleitung ji und einer dritten Spaltenleitung oz angeordnet. Ein achter Memristor h ist zwischen der zweiten Zeilenleitung ki und der dritten
Spaltenleitung oz angeordnet. Ein neunter Memristor i ist zwischen der dritten Zeilenleitung li und der dritten Spaltenleitung oz angeordnet.
Die Memristor-Anordnung 102 bildet im Beispiel eine symmetrische Memristor- Matrix der Dimension 3 x 3. Die Dimension kann größer oder kleiner sein. Die Memristor-Matrix kann unsymmetrisch sein.
Die Matrix-Anordnung 100 umfasst im Beispiel fünfzehn Memristor-Anordnungen 102, die in drei Zeilen und fünf Spalten angeordnet sind. In derselben Zeile der Memristor-Matrix angeordnete Memristoren der Memristor-Anordnungen 102 der ersten Zeile der Matrix-Anordnung 100 verwenden dieselbe erste Zeilenleitung und sind mit einem ersten Eingang jO verbunden. In derselben Zeile der
Memristor-Matrix angeordnete Memristoren der Memristor-Anordnungen 102 der zweiten Zeile der Matrix-Anordnung 100 verwenden dieselbe zweite Zeilenleitung und sind mit einem ersten Eingang kO verbunden. In derselben Zeile der
Memristor-Matrix angeordnete Memristoren der Memristor-Anordnungen 102 der dritten Zeile der Matrix-Anordnung 100 verwenden dieselbe dritte Zeilenleitung und sind mit einem ersten Eingang IO verbunden. In derselben Spalte der Memristor-Matrix angeordnete Memristoren der Memristor-Anordnungen 102 der ersten Spalte der Matrix-Anordnung 100 verwenden dieselbe erste
Spaltenleitung und sind mit einem ersten Ausgang m5 verbunden. In derselben Spalte der Memristor-Matrix angeordnete Memristoren der Memristor- Anordnungen 102 der zweiten Spalte der Matrix-Anordnung 100 verwenden dieselbe zweite Spaltenleitung und sind mit einem zweiten Ausgang n5 verbunden. In derselben Spalte der Memristor-Matrix angeordnete Memristoren der Memristor-Anordnungen 102 der dritten Spalte der Matrix-Anordnung 100 verwenden dieselbe dritte Spaltenleitung und sind mit einem zweiten Ausgang o5 verbunden.
Die übrigen Memristor-Anordnungen 102 der Matrix-Anordnung 100 sind entsprechend dieses Schaltungsschemas mit den Eingängen j1 , k1 , 11 , j2, k2, 12 und den Ausgängen m4, n4, o4, m3, n3, o3, m2, n2, o2, m1 , n1 , o1 verbunden.
Allgemein gibt der in Figur 2 dargestellt Index i für eine Memristor-Anordnung 102 die Zeile in der Matrix-Anordnung 100 an, in der diese Memristor-Anordnung 102 angeordnet ist. Der in Figur 2 dargestellt Index z charakterisiert für eine Memristor-Anordnung 102 die Spalte in der Matrix-Anordnung 100, in der diese Memristor-Anordnung 102 angeordnet ist. Im Beispiel ist die erste Spalte der Matrix-Anordnung 100 dem most significant Bit, MSB, eines Ergebnisses der Berechnung zugeordnet. Im Beispiel ist die letzte Spalte der Matrix-Anordnung 100 dem least significant Bit, LSB, des Ergebnisses der Berechnung zugeordnet. Je drei benachbarte der in Figur 1 dargestellten Ausgänge, die mit demselben Index bezeichnet sind, sind als Spalten zusammengefasst. Den Spalten sind von der ersten Spalte links zur letzten Spalte rechts die Faktoren 16, 8, 4, 2, 1 zugeordnet. Diese geben die Potenz von 2 an, mit der das Ergebnis der analogen Summenbildung einer Spalte in der digitalen Summenbildung für das Ergebnis berücksichtigt wird. Beispielsweise sind die Faktoren abhängig von der Bit-Faktoren-Zerlegung definiert, die der Matrix-Operation zugrunde gelegt ist.
An jeder der Zeilenleitungen ist im Beispiel ein Digital-Analog-Wandler 104 angeordnet, welcher ein Memristor-Array mit einer Eingangsspannung versorgt. Werden die Berechnungen binär ausgeführt, entfallen die Digital-Analog-Wandler 104. Der Digital-Analog-Wandler 104 muss in der Lage sein, den Spaltenstrom abzubilden. Der Spaltenstrom stellt die Summe der maximalen Gewichte in einer Spalte dar. Dabei wird berücksichtigt, dass in manchen Auslegungen die
Zeilenspannung für die Spalte bereits mit einem Faktor versehen ist. An jeder der Spaltenleitungen ist ein Digital-Analog-Wandler 106 angeordnet. Die Analog- Digital-Wandler 106 welche die analogen Ergebnisse auslesen benötigen eine entsprechend der Größe der Memristor-Matrix und entsprechend der Bitbreite der Eingangsgrößen angepasste Auflösung, um an ihren Ausgängen die
Ausgangswerte mit ausreichender Auflösung digital auszugeben. Bei einer 4x4 Matrix werden z.B. pro Spalte vier Werte addiert, so dass der Digital-Analog- Wandler 106 in diesem Fall einen mindestens 4mal so großen Wertebereich abdecken muss. Wenn die Zeilenspannung bereits mit einem Faktor belegt ist, muss der Wertebereich entsprechend größer ausgebildet sein. Dies entspricht einem 2bit mal so großen Wertebereich. Die Faktoren, die den Spalten zugeordnet sind, können auch abhängig von der Auflösung der Digital-Analog- Wandler definiert sein. Dies kann eine im Folgenden beschriebene Anpassung der Eingangsspannungen bedingen.
Die Eingänge der Digital-Analog-Wandler 104 und die Ausgänge der Analog- Digital-Wandler 106 sind im Beispiel wie folgt beschrieben in Zeilen oder Spalten zusammengefasst gruppiert, und so ausgebildet, die folgende Berechnung durchzuführen.
Durch diese Vorgehensweise können Berechnungen, die eine Matrix betreffen, mit beliebigen Genauigkeiten gerechnet werden. Wie im Folgenden beschrieben, werden sowohl Eingangswerte als auch Gewichte der Matrix in einzelne Bits zerlegt. Im Beispiel wird ein Eingangswert von 0x03 in 1 Bit-Faktoren zerlegt und entspricht
dann 0*2L2 + 1*2L1 + 1 *2L0.
Gemäß diesem Ansatz wird die gesamte Matrix-Operation ausformuliert.
Beispielsweise lässt sich eine Matrix-Operation mit 3 Bit breiten Eingangswerten und 3 Bit Gewichten in 81 Matrix-Operationen mit je 1 Bit zerlegen, wobei alle Matrix-Operationen gleichzeitig durchgeführt werden. Dazu werden 81 Memristoren gleichzeitig benötigt. Die verwendeten Digital- Analog-Wandler und Analog-Digital-Wandler müssen nur wenige Stufen auflösen.
Die Matrix kann bezüglich der Auflösung der Komponenten flexibel ausgelegt werden. Das bedeutet:
Die Auflösung von Digital-Analog-Wandler und Analog-Digital-Wandler sind skalierbar. Die Matrix kann beispielsweise so dimensioniert werden, dass viele Analog-Digital-Wandler verwendet werden, die mit geringerer Auflösung arbeiten oder umgekehrt.
Wenn eine Geschwindigkeit der verwendeten Analog-Digital-Wandler im
Vergleich mit einer Geschwindigkeit einer Reaktion der Matrix, d.h. ihrer Bauteile oder Elemente, schneller gewählt wird, oder die eingesetzten Analog-Digital- Wandler und die verwendete Matrix es zulassen, ist in einem Aspekt vorgesehen, die Analog-Digital-Wandler zu multiplexen. Das multiplexen kann innerhalb der Matrix oder auch zu anderen Matrizen im Speicher erfolgen.
Die Memristoren können stabil und unabhängig von der Temperatur betrieben werden, weil die Anzahl der Zustände reduziert werden kann.
Bei binärem Betrieb entfallen die Digital-Analog-Wandler. Im binären Betrieb benötigten die Analog-Digital-Wandler nur n-Stufen Auflösung bei einer Matrix der Dimension n x n. Bei binärem Betrieb benötigen die Memristoren je nur 2 Zustände, d.h. 1 Bit. Bei binärem Betrieb können die Memristoren sehr schnell insbesondere ohne repetitiven Algorithmus programmiert werden.
Die Matrix-Anordnung 100 ist beliebig skalierbar. Die Anzahl der Matrizen hängt linear von der Auflösung der Gewichte ab. Je Bit wird im Beispiel eine Matrix verwendet. Für eine Matrix der Dimension 3 x 3 mit 3 Bit Eingangswerten und 3 Bit Ausgangswerten ist beispielsweise eine Schaltungsanordnung mit drei Matrizen geeignet, die jeweils dreimal für eine Berechnung verwendet werden. Die Anzahl der zusätzlichen Iterationen hängt von der Auflösung
der Eingangswerte ab. Pro Bit ist im Beispiel ein Iterations-Schritt vorgesehen. Die Verwendung von Memristoren mit höherer Auflösung ist ebenfalls möglich. Werden Memristor mit mehr als einem Bit Auflösung programmierbar, so reduziert sich die Anzahl der Matrizen entsprechend.
Zur Ansteuerung der Matrix-Anordnung wird eine Matrix Operation in binäre Bestandteile zerlegt. Dies wird im Folgenden anhand einer Matrix der Dimension 3 x 3 und einem Vektor der Dimension 3 x 1 beschrieben.
Zunächst wird die gewünschte Matrix Operation in einzelne Bits zerlegt
Figure imgf000015_0001
Dann werden die 2er Faktoren ausgeklammert werden, so dass sich beispielhaft für 3 Bit aufgelöste Werte ergibt:
Figure imgf000015_0004
Durch substituieren der Matrizen
Figure imgf000015_0003
ergibt sich
Figure imgf000015_0002
In Figur 1 ist eine Ansteuerung der Matrix-Anordnung 100 für die Berechnung dieses Produkts dargestellt. Genauer werden zunächst die Memristoren mit den Werten aus den Matrizen E0, E1 , E2 an den in der Figur 1 dargestellten Knoten belegt, d.h. die Memristoren werden entsprechend programmiert. Die Werte aus Zeilen der jeweiligen Matrizen E0, E1 , E2 werden im Beispiel als
Widerstandswerte oder Leitwerte in Spalten der Memristor-Anordnungen 102, wie in Figur 2 dargestellt, programmiert. In Figur 1 ist die Zuordnung der jeweiligen Matrizen E0, E1 , E2 zur Anordnung in der Hardware der Matrix- Anordnung 100 mit demselben Index bezeichnet. Dann werden die
Eingangswerte der in Figur 1 mit jO, j1 , j2, kO, k1 , k2, I0, 11 , I2 bezeichneten Eingänge mit den Werten der Vektoren A0, A1 , A2 desselben Index belegt. Das bedeutet, die Digital-Analog-Wandler 104 dieser Eingänge legen eine
entsprechende Spannung an. Genauer wird im Beispiel aufgrund der
Bitzerlegung für logisch 0 keine Spannung angelegt. Für logisch 1 wird eine demgegenüber höhere Spannung angelegt.
Eine derartige Matrix-Anordnung 100 ist ein Speicher aus Memristoren. Werden mit diesem Speicher Rechenoperationen, d.h. in-memory computing, ausgeführt, so werden zunächst die Speicherstellen, d.h. die Memristoren, entsprechend beschrieben. Anschließend wird an eine Zeile der Matrix, eine Spannung angelegt. Zeitlich zumindest teilweise überlappend damit wird eine Spalte mit Masse verbunden. Der Strom, der durch den Memristor an dem Knotenpunkt von dieser Zeile und dieser Spalte zum Massepunkt fließt, hängt von einem
Widerstandswert RKnoten des Memristors ab: I = U/RKnoten.
Legt man an mehrere Zeilen gleichzeitig Spannungen an und verbindet wieder nur eine Zeile mit Masse, so fließt durch jeden Memristor dieser Spalte ein Strom UZeile * 1/RKnoten. Im Beispiel werden mehrere Zeilen in Gruppen [jO, kO, I0],
01 , k1 , 11] und 02, k2, I2] zusammengefasst angesteuert.
Im Massepunkt, d.h. im Beispiel auf der Spaltenleitung nahe des Analog-Digital- Wandlers 106 der Spalte, die mit Masse verbunden ist, addieren sich diese Ströme dann so dass für die Memristoren mit den Widerstandswerten Ra, Rb, ..., die an Knotenpunkten der Zeilen mit dieser Spalte angeordnet sind, beim Anlegen einer Spannung UZeile an jeder dieser Zeilen der folgende
Summenstrom entsteht:
Figure imgf000017_0001
Bei den Termen handelt es sich um eine Summe aus Divisionen. Verwendet man statt dieser Darstellung die entsprechenden Leitwerte wird eine Summe aus Produkten ausgewertet. Wird zudem angenommen, dass die an eine Zeile angelegte Spannung UZeile über die gesamte Zeile gleich ist, und werden mehrere Spalten gleichzeitig mit Masse verbunden, können so mehrere dieser Operationen gleichzeitig ausgeführt werden.
Der sich einstellende Summenstrom stellt das analoge Ergebnis dieser
Berechnung für die betrachtete Spaltenleitung dar und wird im Beispiel durch die jeweiligen Analog-Digital-Wandler 106 erfasst. Der Analog-Digital-Wandler 106 hat vorzugsweise einen virtuellen Nullpunkt. Das bedeutet, die Spalten sind nicht tatsächlich mit Masse verbunden. Das Masse Potential wird über den virtuellen Nullpunkt bereitgestellt. Der Analog-Digital-Wandler 106 ist beispielsweise ein Transimpedanzverstärker. Das digitale Ergebnis dieser Berechnung ist eine Summe S im Beispiel der Länge 8 Bit wird für jeden der Skalare j, k, I nach einem in Figur 3 für den Skalar j beispielhaft dargestellten Berechnungs-Schema 300 bestimmt.
Die digitalisierten Ergebnisse der Spaltenleitungen, die den Skalar j zugeordnet sind, sind im Beispiel von der ersten Spalte der Matrix-Anordnung 100 links beginnend mit m5, m4, m3, m2 und m1 bezeichnet. Die digitalisierten Ergebnisse werden in Figur 3 in Zeilen angeordnet. In einer Zeile ist im Beispiel Raum für 8 Bit zwischen einem in der Figur 3 links dargestellten MSB der Summe S, und einem in der Figur 3 rechts dargestellten LSB der Summe S. Beispielsweise sind entsprechende Register in einem Speicher vorgesehen, in die das jeweilige digitalisierte Ergebnis geschrieben wird. In der ersten Zeile ist ein erstes digitalisiertes Ergebnis m1 der letzten Spalte der Matrix-Anordnung 100 angeordnet. Das erste digitalisierte Ergebnis m1 liefert zwei Bit und wird am LSB der Summe S angeordnet. Ein zweites digitalisiertes Ergebnis m2 der vorletzten Spalte liefert drei Bit, deren LSB bezüglich des LSB der Summe S um vier Bit zum MSB der Summe S hin verschoben angeordnet wird. Ein drittes digitalisiertes Ergebnis m3 der dritten Spalte liefert vier Bit, deren LSB bezüglich des LSB der Summe S um zwei Bit zum MSB der Summe S hin verschoben angeordnet wird. Ein viertes digitalisiertes Ergebnis m4 der zweiten Spalte liefert drei Bit, deren LSB bezüglich des LSB der Summe S um drei Bit zum MSB der Summe S hin verschoben angeordnet wird. Ein fünftes digitalisiertes Ergebnis m1 m5 der ersten Spalte liefert zwei Bit, deren LSB bezüglich des LSB der Summe S um vier Bit zum MSB der Summe S hin verschoben angeordnet wird. Durch Summenbildung über die Spalten des ersten Berechnungs-Schema 300 wird das Ergebnis der Berechnung als 8 Bit Summe S bestimmt.
Figur 4 stellt eine elektrische Beschaltung 400 zum Ansteuern der Digital-Analog- Wandler 104 zum Beaufschlagen der Zeilenleitungen mit Spannung, und zum Ansteuern der Analog-Digital-Wandler 106 zum Erfassen des sich einstellenden Stroms an den Spaltenleitungen schematisch dar. Im Beispiel ist wenigstens eine elektrische Schalteinrichtung 402 realisiert, der von einem Mikroprozessor 404 über wenigstens eine Signalleitung 406 schaltbar ist. Beispielsweise werden Sperrschicht-Feldeffekttransistoren als elektrische Schalter in der
Schalteinrichtung 402 eingesetzt. Die Matrix-Anordnung 100 ist über wenigstens eine entsprechende Stromversorgung 408 mit der Schalteinrichtung 402 verbunden. Ein Speicher 410 mit Registern für die Berechnung ist über einen Datenbus 412 mit dem Mikroprozessor 404 verbunden.
Der Mikroprozessor 404 ist ausgebildet, die Matrix-Anordnung 100 nach dem beschriebenen Verfahren anzusteuern, um die Berechnung auszuführen.
Schematisch ist der Ablauf des Verfahrens in Figur 5 dargestellt.
In einem Schritt 502 wird die zu lösende Gleichung einer Matrix-Operation zerlegt. Genauer werden die Matrizen E0, E1 , E2 bestimmt.
Anschließend wird ein Schritt 504 ausgeführt.
Im Schritt 504 werden die Memristor-Anordnungen 102 der Matrix-Anordnung 100 für die Berechnung programmiert. Im Beispiel werden die Memristoren gemäß den Werten aus den Matrizen E0, E1 , E2 programmiert. Für die Matrix der Dimension 3 x 3 mit 3 Bit Eingangswerten und 3 Bit Ausgangswerten ist eignet sich die Schaltungsanordnung mit drei Matrizen, die jeweils dreimal für eine Berechnung verwendet werden. Eine mögliche Umsetzung ist in Figur 1 dargestellt, in der die Zuordnung von Memristor-Anordnung 102 zu Matrizen E0, E1 , E2 mit E0, E1 , E2 bezeichnet ist. Alle Matrix Multiplikationen, die mit demselben Faktor multipliziert werden, werden im Beispiel untereinander angeordnet, d.h. die Memristoren werden durch entsprechende Ansteuerung ausgewählt und programmiert. Ein hoher Widerstandswert bedeutet
beispielsweise logisch 1 und ein demgegenüber niederer Widerstandswert bedeutet beispielsweise logisch 0.
Anschließend wird ein Schritt 506 ausgeführt.
Im Schritt 506 werden die Eingangswerte der mit jO, j1 , j2, kO, k1 , k2, 10, 11 , 12 bezeichneten Eingänge mit Spannung gemäß der Eingangswerte der mit jO, j1 , j2, kO, k1 , k2, 10, 11 , 12 belegt. Das bedeutet, die Digital-Analog-Wandler 104 dieser Eingänge legen eine entsprechende Spannung an.
Zumindest teilweise zeitlich überlappend damit wird der sich einstellende Summenstrom als analoges Ergebnis der Berechnung an den entsprechenden Spaltenleitungen bestimmt. Der Summenstrom der jeweils betrachteten
Spaltenleitung wird im Beispiel durch den jeweiligen Analog-Digital-Wandler 106 erfasst. Das digitale Ergebnis wird im Beispiel nach dem ersten Berechnungs- Schema 300 an entsprechender Stelle in das Register für die Bestimmung der Summe S geschrieben.
Im Beispiel werden die Gruppen [jO, kO, I0], [j1 , k1 , 11] und [j2, k2, I2]
zusammengefasst angesteuert und das digitale Ergebnis für die entsprechenden Spaltenleitungen bestimmt.
Anschließend wird ein Schritt 508 ausgeführt.
Im Schritt 508 wird für jeden der Skalare j, k, I die 8 Bit Summe S als Ergebnis der Berechnung bestimmt.
Gemäß diesem Ansatz wird die gesamte Matrix-Operation ausformuliert.
Beispielsweise lässt sich eine Matrix-Operation mit 3 Bit breiten Eingangswerten und 3 Bit Gewichten in 81 Matrix-Operationen mit je 1 Bit zerlegen, wobei alle Matrix Operationen gleichzeitig durchgeführt werden.
Figur 6 stellt ein zweites Berechnungs-Schema 600 dar. Die Umsetzung der Berechnung nach dem zweiten Berechnungs-Schema 600 optimiert die zuvor beschriebene Vorgehensweise weiter, indem eine Anzahl benötigter Register reduziert wird. Im Unterschied zum ersten Berechnungs-Schema 300 werden das erste digitalisierte Ergebnis m1 und das dritte digitalisierte Ergebnis m3 in derselben Zeile angeordnet. Im Unterschied zum ersten Berechnungs-Schema 300 werden das zweite digitalisierte Ergebnis m2 und das fünfte digitalisierte Ergebnis m1 m5 in derselben Zeile angeordnet. Die übrige Vorgehensweise ist wie für das erste Berechnungs-Schema 300 beschrieben.
In diesen Berechnungen werden einige Memristoren in einer ansonsten regelmäßigen Matrix-Anordnung 100 nicht genutzt. Diese Berechnungen stellt ungleichmäßigen Anforderungen an die verwendeten Digital-Analog-Wandler 106. Der Digital-Analog-Wandler 106 für die Bestimmung des Ausgangswerts m3 ist ausgebildet, vier Bit aufzulösen, die Digital-Analog-Wandler 106 für die Bestimmung der Ausgangswerts m4 und m2 sind im Beispiel ausgebildet drei Bit aufzulösen. Die anderen Digital-Analog-Wandler 106 sind im Beispiel ausgebildet nur zwei Bit aufzulösen.
Dies kann vermieden werden, wenn in der Zuordnung der Matrizen E0, E1 , E2 für die Programmierung der Memristoren-Anordnungen 102 in den Zeilen der Matrix-Anordnung 100 so verschoben, dass die Matrizen E0, E1 , E2 wie in Figur 7 dargestellt untereinander liegen.
In diesem Fall wird die Änderung der Zuordnung durch eine angepasste
Spannung korrigiert. Das Verschieben der Zuordnung in einer Zeile nach rechts erzeugt bei allen beteiligten Matrizen einen Fehler mit dem Faktor 2. Dies wird ausgeglichen indem die Eingangsspannungen an den Zeilen für jede
Verschiebung um eine Memristoren-Anordnungen 102 nach rechts um den Faktor 2 erhöht wird. Statt einer Multiplikation mit einem Faktor durch ein
Vervielfachen, kann einfacherweise ausgehend von einer Versorgungsspannung eine Division mittels eines Spannungsteilers durchgeführt werden. Ein
Verschieben um eine Position wird einmal korrigiert, eine Verschiebung um zwei Positionen wird zweimal korrigiert. Daraus resultiert die Ansteuerung der Gruppen mit den Eingangswerten [jO, kO, 10], 2 * [j1 , k1 , 11] und 4 * [j2, k2, I2]
Die nötige Auflösung der Analog-Digital-Wandler berechnet sich für Werte X des Faktors am Eingang wie folgt:
Figure imgf000021_0001
wobei Y und Z Maximalwerte für Zustände der Memristoren sind, d.h. für eine Auflösung von n Bit: Y, Z = 2n - 1
Im Beispiel mit 1 -Bit Memristoren ist Z=1. Die Eingangswerte an den Zeilen haben ebenfalls 1 Bit, daher ist Y=1.
Für die Matrix der Dimension 3 x 3 mit 1 Bit Memristoren und 3 Bit
Eingangswerten, d.h. 1 Bit pro Zeile, beträgt die Anzahl der Zustände die der Analog-Digital-Wandler auflösen muss 21.
Figur 8 stellt ein drittes Berechnungs-Schema 800 dar. Die Umsetzung der Berechnung nach dem dritten Berechnungs-Schema 800 optimiert die zuvor beschriebene Vorgehensweise weiter. Im Unterschied zum ersten Berechnungs- Schema 300 werden nur das erste digitalisierte Ergebnis m1 das zweite digitalisierte Ergebnis m2 und das dritte digitalisierte Ergebnis m3 angeordnet. Im Unterschied zum ersten Berechnungs-Schema 300 weisen die digitalisierten Ergebnisse dieselbe Bitlängen auf. Die übrige Vorgehensweise ist wie für das erste Berechnungs-Schema 300 beschrieben.
Die erforderliche Auflösung der Analog-Digital-Wandler ergibt sich im
Wesentlichen aus dem erreichbaren Zahlenbereich während der Matrix- Operationen.
In einem Aspekt ist vorgesehen, dass Zwischensummen ausgeleitet werden. Sollte der für eine Matrix-Operationen erforderliche Zahlenbereich größer sein, als die Auflösung der zur Verfügung stehenden Analog-Digital-Wandler es zulässt, so können beispielsweise Zwischensummen ausgeleitet werden. Die Anzahl der insgesamt erforderlichen Analog-Digital-Wandler erhöht sich dabei, die Auflösung reduziert sich. Eine Beispielhafte Umsetzung ist in Figur 9 zu sehen.
Im Unterschied zu der zuvor anhand der Figur 7 beschriebenen Umsetzung ist zwischen der zweiten Zeile und der dritten Zeile der Matrix-Anordnung 100 an jeder der Spaltenleitungen je ein Abgriff für je einen Analog-Digital-Wandler 106 angeordnet. Eine Reihenfolge der Schaltung Spaltenleitungen auf Masse und der Beaufschlagung der Zeilenleitungen mit Spannung kann so gewählt werden, dass je Spaltenleitung nur durch einen der Abgriffe Strom fließt, die an dieser Spaltenleitung angeordnet sind. Dann kann diese Spaltenleitung durchgängig ausgebildet sein, ohne die Berechnung des Summenstroms zu beeinträchtigen. Die Spaltenleitung kann an der Stelle der Ausleitung zwischen den Memristoren- Anordnungen der dritten Zeile und der zweiten Zeile zum analogen bestimmen des Summenstroms vorzugsweise permanent elektrisch unterbrochen sein. So entstehende analoge Zwischensummen werden durch die Abgriffe erfasst und anschließend digital addiert.
Gruppen mit den Ausgangswerten, die die analogen Zwischensummen der dritten Zeile angeben, sind mit [m5, n5, o5], [m4, n4, o4], [m3, n3, o3], [m2, n2, o2], [m1 , n1 , o1] bezeichnet. Gruppen mit den Ausgangswerten, die die analogen Zwischensummen der ersten und der zweiten Zeile angeben sind mit [r5, s5, t5], [r4, s4, t4], [r3, s3, t3], [r2, s2, t2], [r1 , s1 , t1] bezeichnet.
Die übrige Vorgehensweise entspricht der zuvor beschriebenen, wobei für die Berechnung der Skalare j, k, I das in Figur 10 beispielhaft für den Skalar j dargestellte Berechnungs-Schema 1000 eingesetzt wird.
Dem Skalar j zugeordnete Ausgangswerte r1 , r2 und r3, werden beginnend mit dem Ausgangswert r1 beim LSB der Summe S zeilenweise in dieser Reihenfolge angeordnet. Der Ausgangswert r1 wird mit seinem LSB am LSB der Summe S angeordnet. Die nachfolgenden Ausgangswerte werden mit ihrem LSB in den folgenden Zeilen um je eine weitere Stelle zum MSB hin verschoben angeordnet. Dem Skalar j zugeordnete Ausgangswerte m1 , m2 und m3 werden beginnend mit dem Ausgangswert m1 bezüglich des LSB der Summe S um zwei Bit zum MSB der Summe S hin verschoben angeordnet. Die nachfolgenden Ausgangswerte werden mit ihrem LSB in den folgenden Zeilen um je eine weitere Stelle zum MSB hin verschoben angeordnet. Die Summenberechnung des Ergebnisses erfolgt wie zuvor beschrieben spaltenweise.
Im Beispiel benötigen die Analog-Digital-Wandler, die die dritte Zeile
berücksichtigen eine Auflösung von 2 Bit. Die die Analog-Digital-Wandler, die die dritte Zeile nicht berücksichtigen benötigen eine Auflösung von 4 Bit.
Das Ausleiten von derartigen analogen Zwischensummen kann an
verschiedenen Stellen erfolgen. In Figur 11 ist eine andere Aufteilung dargestellt, bei der jede Zwischensumme ausgeleitet wird. Gegebenenfalls kann der Faktor der Spannungen an den Zeilen angepasst werden oder entfallen, wenn dieser bei der weiteren digitalen Verrechnung der Zwischensumme berücksichtigt wird.
Im Unterschied zu der zuvor anhand der Figur 9 beschriebenen Anordnung sind nur neun Memristor-Anordnungen 102 in einer Matrix der Dimension 3 x 3 angeordnet. Zusätzlich sind Analog-Digital-Wandler 106 in Ausleitungen zwischen der ersten Spalte und der zweiten Spalte der Matrix-Anordnung 100 angeordnet.
Gruppen mit den Ausgangswerten, die die Zwischensummen der dritten Zeile angeben, sind mit [m3, n3, o3], [m2, n2, o2], [m1 , n1 , o1] bezeichnet. Gruppen mit den Ausgangswerten, die die zweite Zeile aber nicht die erste und die dritte Zeile mitberücksichtigen sind mit [r3, s3, t3], [r2, s2, t2], [r1 , s1 , t1] bezeichnet. Gruppen mit den Ausgangswerten, die nur die erste Zeile berücksichtigen sind mit [u3, u3, u3], [u2, v2, w2], [u1 , v1 , w1] bezeichnet. Derselben Spaltenleitung sind mit j, r und u mit k, s und v mit I, r und w gekennzeichnete Ausgänge zugeordnet.
Eine Reihenfolge der Schaltung Spaltenleitungen auf Masse und der
Beaufschlagung der Zeilenleitungen mit Spannung kann so gewählt werden, dass je Spaltenleitung nur durch einen Abgriff Strom fließt. Dann kann die Spaltenleitung am Abgriff durchgängig ausgebildet sein, ohne die Berechnung des Summenstroms zu beeinträchtigen. Die Spaltenleitung kann an der Stelle der Ausleitung zwischen den Memristoren-Anordnungen der dritten Zeile und der zweiten Zeile zum bestimmen des Summenstroms oder permanent elektrisch unterbrochen sein.
Die übrige Vorgehensweise entspricht der zuvor beschriebenen, wobei für die Berechnung der Skalare j, k, I das in Figur 12 beispielhaft für den Skalar j dargestellte Berechnungs-Schema 1200 eingesetzt wird.
Die Zeilenspannungen sind bei der Beaufschlagung der Zeilenlinien immer die gleichen. Der zuvor nötige Faktor, im Beispiel 2 oder 4, wird dadurch realisiert, dass die Ergebnisse der Analog-Digital-Wandler an eine andere Bit Position im Register eingeblendet werden.
Die Ausgangswerte zwischen der ersten Zeile und der zweiten Zeile werden mit dem LSB des Ausgangswerts u1 am LSB der Summe S beginnend angeordnet. Die Ausgangswerte u2 und u3 werden in folgenden Zeilen je um eine weitere Stelle zum MSB der Summ S hin verschoben angeordnet.
Die Ausgangswerte zwischen der zweiten Zeile und der dritten Zeile werden mit dem LSB des Ausgangswerts r1 bezüglich des LSB der Summe S bereits um eine Stelle zum MSB der Summe S hin verschoben beginnend angeordnet. Die Ausgangswerte r2 und r3 werden in folgenden Zeilen je um eine weitere Stelle zum MSB der Summ S hin verschoben angeordnet.
Die Ausgangswerte nach der dritten Zeile werden mit dem LSB des
Ausgangswerts m1 bezüglich des LSB der Summe S bereits um zwei Stellen zum MSB der Summe S hin verschoben beginnend angeordnet. Die
Ausgangswerte m2 und m3 werden in folgenden Zeilen je um eine weitere Stelle zum MSB der Summ S hin verschoben angeordnet.
Im Fall der ersten und dritten Zeile ist es sogar möglich, dass beide Analog- Digital-Wandler ihr Ergebnis in dieselbe Zwischensumme einblenden.
Die Summenbildung für das Ergebnis erfolgt wie beschrieben spaltenweise.
In dieser Anordnung sind nur noch Analog-Digital-Wandler mit einer Auflösung von 2 Bit nötig. Diese Analog-Digital-Wandler können lediglich aus zwei Komparatoren bestehen. Diese Analog-Digital-Wandler können bis in den GHz Bereich arbeiten.
Ein weiterer Aspekt betrifft eine Erhöhung der Auflösung der Memristoren auf 2 Bit. Dies bedeutet, dass mehrere Zustände in einen Memristor programmiert werden. Dies wird bei der Zerlegung der Matrix analog zur beschriebenen Matrix- Operation mit 1 Bit Zerlegung berücksichtigt.
Das bedeutet, 2 Bit Werten werden so dargestellt, dass jeweils zwei bits, im Beispiel die bits 0 und 1 , die bits 2 und 3, ... zusammengefasst werden. Durch die Ersetzung der Größen in der Matrix-Operation mit folgenden
Figure imgf000025_0001
sind
Figure imgf000025_0002
Analog zur Vorgehensweise bei eine 1 Bit Zerlegung ergibt sich für die 2 Bit Matrix
Figure imgf000025_0003
2° (E0A02° + EQAX2X + E0A222) + Die Umsetzung dieser Gleichungsterme in eine Memristor Matrix geschieht ebenfalls analog zur Matrix-Anordnung 100 für die 1 Bit Matrix-Operation.
Diese Umsetzung wird ausgehend von der Beschreibung der Matrix-Anordnung 100, die anhand der Figur 7 beschrieben wurde in Figur 13 dargestellt. Die Anordnung insbesondere der Matrizen E0, E1 , E2 und der Faktor 2 bei den Eingangswerten j1 , k1 , 11 und der Faktor 4 bei den Eingangswerten j2, k2, 12 sind wie zuvor beschrieben.
Im Unterschied zu der für Figur 7 dargestellten Anordnung sind die geänderten Faktoren vor den Termen berücksichtigt. Die im Beispiel verwendeten
Ausgangswerte m1 , ... o5 der drei rechten Spalten der Matrix, sind entsprechend gekennzeichnet. Diese Anordnung bedingt eine erhöhte Anforderung an die Auflösung, die im Analog-Digital-Wandler 116 umgesetzt ist.
Die nötige Auflösung der Analog-Digital-Wandler 116 berechnet sich für Werte X wie im Beispiel mit 2-Bit Memristoren mit Z=4 und Y=1 aus
Figure imgf000026_0001
Für die Matrix der Dimension 3 x 3 beträgt mit 2 Bit Memristoren und 3 Bit Eingangswerten, d.h. nur 1 Bit pro Zeile der Matrix-Anordnung 100, die
Anzahl der Zustände die der Analog-Digital-Wandler 116 auflösen muss 84.
Das in Figur 14 dargestellte Berechnungs-Schema 1400 berücksichtigt diese Änderungen beispielhaft für alle Skalare j, k, I durch eine 12 Bit Summe S, die abhängig von einer ersten Ausgangsgröße m1 , einer zweiten Ausgangsgröße m3 und einer dritten Ausgangsgröße m5 bestimmt wird. Dazu wird die erste
Ausgangsgröße m1 mit ihrem LSB beginnend beim LSB der Summe S angeordnet. Die zweite Ausgangsgröße m3 wird mit ihrem LSB um zwei Stellen zum MSB der Summe S hin verschoben beginnend in einer weiteren Zeile angeordnet. Die dritte Ausgangsgröße m5 wird mit ihrem LSB um vier Stellen zum MSB der Summe S hin verschoben beginnend in einer weiteren Zeile angeordnet. Die Bestimmung der Summe S erfolgt spaltenweise.
Entsprechend wird für eine Erhöhung der Auflösung der Memristoren und der Eingangswerte verfahren.
Dazu wird die zuvor verwendete Zerlegung durch eine Vektorzerlegung mit den Faktoren 2°, 22, 24 und mit der Substitution
Figure imgf000027_0001
wie folgt geändert:
Figure imgf000027_0002
Die Umsetzung dieser Gleichungsterme in eine Memristor Matrix erfolgt analog zur der anhand der Figur 13 beschriebenen Umsetzung.
Die resultierende Matrix-Anordnung 100 ist in Figur 15 dargestellt. Die Spannung an den Eingängen j1 , k1 , 11 ist im Unterschied zur vorherigen Umsetzung nun mit einem Faktor 4 beaufschlagt. Die Spannung an den Eingängen j2, k2, I2 ist im Unterschied zur vorherigen Umsetzung nun mit einem Faktor 16 beaufschlagt. Die geänderten Faktoren vor den Termen führen zu Anforderungen an die Analog-Digital-Wandler 1 16 hinsichtlich der Auflösung. Bei der 1 Bit Matrix mit 1 Bit Memristoren und 3 Bit Eingangswerten ist Z=1 und Y=1. Die nötige Auflösung Analog-Digital-Wandler 1 16 berechnet sich in diesem Beispiel mit 2-Bit
Memristoren und 6Bit Eingangswerten, d.h. mit Z=2 und Y= 2. Für die im Beispiel dargestellte Matrix der Dimension 3 x 3 mit 2 Bit Memristoren und 6 Bit
Eingangswerten, die 2 Bit pro Zeile betragen, beträgt Anzahl der Zustände die der Analog-Digital-Wandler 1 16 auflösen muss 1008.
Das in Figur 16 dargestellte Berechnungs-Schema 1600 berücksichtigt diese Änderungen beispielhaft für alle Skalare j, k, I durch eine 12 Bit Summe S, die abhängig von einer ersten Ausgangsgröße m1 , einer zweiten Ausgangsgröße m3 und einer dritten Ausgangsgröße m5 bestimmt wird. Dazu wird die erste
Ausgangsgröße m1 mit ihrem LSB beginnend beim LSB der Summe S angeordnet. Die zweite Ausgangsgröße m3 wird mit ihrem LSB um zwei Stellen zum MSB der Summe S hin verschoben beginnend in einer weiteren Zeile angeordnet. Die dritte Ausgangsgröße m5 wird mit ihrem LSB um vier Stellen zum MSB der Summe S hin verschoben beginnend in einer weiteren Zeile angeordnet. Die Bestimmung der Summe S erfolgt spaltenweise.
Die Klassische Berechnung einer n*n Matrix benötigt n2 Multiplikationen sowie n2- n Additionen. Im Fall einer 8x8 Matrix wären dies 64 Multiplikationen und 56 Additionen mit 8 Bit Eingangswerten, also mit 16 Bit Breite. Es werden ca. 1 18 Takte benötigt.
Das vorgeschlagene Verfahren benötigt 3*8 Shift Operationen der
Eingangswerte und 8*8 Additionen der Ausgangswerte sowie 64 AD Wandlungen mit 3 Bit Auflösung. Durch die hohe Parallelisierung werden jedoch nur etwa 10 Takte benötigt.
Das Verfahren ist auf Matrizen anderer Größen und Auflösungen
anwendbar.
In einem Aspekt ist eine Memristor-Anordnung vorgesehen, in der an einem Knoten von einer Zeile und einer Spalte der Matrix-Anordnung 100 zwei Memristoren angeordnet sind, die hinsichtlich ihrer ladungsabhängigen
Widerstandswerte in einander entgegengesetzter Richtung veränderlich sind. Diese können mit derselben Spannung gleichzeitig mit invertierten Gewichten programmiert werden. Zwei Stromwerte-Berechnungen können somit gleichzeitig ausgeführt werden. Eine der beiden Berechnungen verwendet dabei jedoch invertierte Gewichte. Dadurch werden vom Analog-Digital-Konverter Nullen gezählt, was entweder bei der Interpretation der Ergebnisse oder im
Algorithmus berücksichtigt werden kann. Diese Redundanz kann beispielsweise zur Plausibilisierung der Ergebnisse herangezogen werden.

Claims

Ansprüche
1. Verfahren zur Umsetzung einer Matrix-Operation, dadurch gekennzeichnet, dass für die Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels einer ersten Memristor-Anordnung (102) bestimmt wird, wobei ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels einer zweiten Memristor-Anordnung (102) bestimmt wird und wobei das erste Ergebnis und das zweite Ergebnis digital addiert werden.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass das erste
digitale Ergebnis abhängig von einem ersten analogen Ergebnis bestimmt wird, wobei das zweite digitale Ergebnis abhängig von einem zweiten analogen Ergebnis bestimmt wird, wobei die analogen Ergebnisse zumindest teilweise zeitlich überlappend bestimmt werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass an einen ersten Memristor der ersten Memristor-Anordnung (102) eine erste
Spannung angelegt wird (506), wobei an einen zweiten Memristor der Memristor-Anordnung (102) zumindest teilweise zeitlich überlappend dazu eine zweite Spannung angelegt wird (506), wobei an einem ersten Ausgang der Memristor-Anordnung ein erster Summenstrom erfasst wird, der den Stromfluss durch den ersten Memristor und den zweiten Memristor charakterisiert, wobei an einen dritten Memristor der zweiten Memristor- Anordnung (102) zumindest teilweise zeitlich überlappend dazu die erste Spannung angelegt wird (506), wobei an einen vierten Memristor der zweiten Memristor-Anordnung (102) zumindest teilweise zeitlich überlappend dazu die zweite Spannung oder eine dritte Spannung angelegt wird (506), wobei an einem zweiten Ausgang der Memristor-Anordnung ein zweiter
Summenstrom erfasst wird (506), der den Stromfluss durch den dritten Memristor und den vierten Memristor charakterisiert, wobei abhängig vom ersten Summenstrom und vom zweiten Summenstrom das Ergebnis bestimmt wird (508).
4. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die erste Spannung abhängig von einem ersten Element einer ersten Matrix (AO, A1 , A2) definiert ist, wobei die zweite Spannung abhängig von einem zweiten Element der ersten Matrix (AO, A1 , A2) definiert ist, wobei ein erster
Widerstandswert des ersten Memristors abhängig von einem ersten Element einer zweiten Matrix (EO, E1 , E2) definiert ist, wobei ein zweiter
Widerstandwert des zweiten Memristors abhängig von einem zweiten Element der zweiten Matrix (EO, E1 , E2) definiert ist, und wobei das
Ergebnis ein Skalarprodukt der Matrizen charakterisiert.
5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass wenigstens ein Widerstandswert eines Memristors abhängig von einem Element der zweiten Matrix (EO, E1 , E2) programmiert wird (504).
6. Verfahren nach einem der Ansprüche 3 oder 4, dadurch gekennzeichnet, dass der Widerstandswert von wenigstens zwei Memristoren abhängig von einem Element der zweiten Matrix (EO, E1 , E2) definiert ist oder
programmiert wird (504).
7. Verfahren nach einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, dass eine Vielzahl Memristoren in einer Matrix-Anordnung (100) angeordnet ist, wobei die zweite Matrix oder eine Vielzahl zweiter Matrizen (E0, E1 , E2) eine Anordnung von Widerstandswerten für die Vielzahl der Memristoren definieren, und wobei ein Memristor in der Matrix-Anordnung (100) den Widerstandswert aufweist, oder mit dem Widerstandswert programmiert wird (504), der in der Anordnung der Widerstandswerte seiner Position in der Matrix-Anordnung (100) insbesondere bezüglich seiner Indizes entspricht.
8. Verfahren nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass wenigstens zwei Gruppen von Memristoren Widerstandswerte aufweisen oder mit Widerstandswerten programmiert werden (504), die gemäß den Elementen derselben zweiten Matrix definiert sind.
9. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die wenigstens ein Teil der Memristoren aus den wenigstens zwei Gruppen von Memristoren in der Matrix-Anordnung (100) zur Bestimmung desselben Summenstroms verwendet werden.
10. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass wenigstens einer der Memristoren aus einer der wenigstens zwei Gruppen von Memristoren in der Matrix-Anordnung (100) bei der Bestimmung des Summenstroms von Memristoren der anderen der wenigstens zwei Gruppen unberücksichtigt bleibt.
1 1. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die erste Spannung ein analoges Signal ist, das von einem Digital- Analog-Wandler (104) abhängig von einem digitalen Signal erzeugt wird, das durch das erste Element der ersten Matrix definiert ist, und/oder dass die zweite Spannung ein analoges Signal ist, das von einem Digital-Analog- Wandler (104) abhängig von einem digitalen Signal erzeugt wird, das durch das zweite Element der ersten Matrix definiert ist.
12. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass sich die erste Spannung und die zweite Spannung um einen Faktor unterscheiden, insbesondere um eine Potenz von 2, der insbesondere abhängig von einer Auflösung des Analog-Digital-Wandlers (106, 1 16) oder abhängig von einer der Matrix-Operation zugrunde liegenden Bit-Faktoren- Zerlegung definiert ist.
13. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass der erste Summenstrom wenigstens einen ersten Strom und einen zweiten Strom umfasst, wobei der erste Strom beim Anlegen der ersten Spannung an den ersten Memristor durch den ersten Memristor fließt, und wobei der zweite Strom beim Anlegen der zweiten Spannung an den zweiten Memristor durch den zweiten Memristor fließt.
14. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die erste Spannung zur selben Zeit an den ersten Memristor und einen dritten Memristor angelegt wird oder wobei die zweite Spannung zur selben Zeit an wenigstens den zweiten Memristor und einen vierten Memristor angelegt wird, wobei ein erster Summenstrom für den Strom durch den ersten Memristor und den zweiten Memristor erfasst wird, wobei ein zweiter Summenstrom für den Strom durch den dritten Memristor und/oder den vierten Memristor erfasst wird, und wobei das Ergebnis abhängig vom ersten Summenstrom und vom zweiten Summenstrom bestimmt wird.
15. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass ein digitales Signal, das einen Wert wenigstens eines Bits definiert, durch einen Analog-Digital-Wandler (106, 116) abhängig vom Summenstrom bestimmt wird.
16. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Vielzahl Summenströmen bestimmt wird, wobei abhängig von der Vielzahl der Summenströme eine Vielzahl Bits bestimmt wird, wobei wenigstens ein Bit, das abhängig von einem der Summenströme definiert ist, zu wenigstens einem Bit addiert wird, das abhängig von einem anderen der Summenströme definiert ist.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass wenigstes
eines der Bits in einem Register vor der Addition mit dem anderen Bit aus einem anderen Register bezüglich eines least significant bits des
Ergebnisses in Richtung des most significant bits des Ergebnisses verschoben angeordnet wird.
18. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass
wenigstes eines der Bits in einem Register vor der Addition mit dem anderen Bit aus einem anderen Register bezüglich eines least significant bits des Ergebnisses benachbart zu dem anderen Bit angeordnet wird.
19. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Vielzahl Memristoren in einer Matrix-Anordnung (100) angeordnet ist, wobei die zweite Matrix oder eine Vielzahl zweiter Matrizen (E0, E1 , E2) eine Anordnung von Widerstandswerten für die Vielzahl der Memristoren definieren, und wobei ein Memristor in der Matrix-Anordnung (100) den Widerstandswert aufweist, oder mit dem Widerstandswert programmiert wird, der in der Anordnung der Widerstandswerte seiner Position in der Matrix- Anordnung (100) insbesondere bezüglich seiner Indizes entspricht. 20. Vorrichtung (100) zur Umsetzung einer Matrix-Operation, dadurch gekennzeichnet, dass die Vorrichtung (100) eine erste Memristor-Anordnung (102) und eine zweite Memristor-Anordnung (102) umfasst, wobei die Vorrichtung (100) eine ersten Analog-Digital-Wandler (106, 1 16) und einen zweiten Analog-Digital-Wandler (106, 1 16) umfasst, und wobei die
Vorrichtung (100) ausgebildet ist, für eine Matrix-Operation ein erstes digitales Ergebnis abhängig von einer ersten analogen Addition mittels der ersten Memristor-Anordnung (102) und des ersten Analog-Digital-Wandlers (106, 116) zu bestimmen, und ein zweites digitales Ergebnis abhängig von einer zweiten analogen Addition mittels der zweiten Memristor-Anordnung
(102) und des zweiten Analog-Digital-Wandlers (106, 1 16) zu bestimmen.
21. Vorrichtung (100) nach Anspruch 20, dadurch gekennzeichnet, dass an einen ersten Memristor der Memristor-Anordnung (102) eine erste Spannung anlegbar ist, wobei an einen zweiten Memristor der Memristor-Anordnung (102) zumindest teilweise zeitlich überlappend dazu eine zweite Spannung anlegbar ist, wobei an einem ersten Ausgang der Memristor-Anordnung (102) ein erster Summenstrom erfassbar ist, der den Stromfluss durch den ersten Memristor und den zweiten Memristor charakterisiert, wobei an einen dritten Memristor der Memristor-Anordnung (102) zumindest teilweise zeitlich überlappend dazu die erste Spannung anlegbar ist, wobei an einen vierten Memristor der Memristor-Anordnung (102) zumindest teilweise zeitlich überlappend dazu die zweite Spannung anlegbar ist, wobei an einem zweiten Ausgang der Memristor-Anordnung ein zweiter Summenstrom erfassbar ist, der den Stromfluss durch den dritten Memristor und den vierten Memristor charakterisiert.
22. Vorrichtung (100) nach einem der Ansprüche 20 oder 21 , dadurch
gekennzeichnet, dass eine Vielzahl Memristoren-Anordnungen (102) eine Matrix-Anordnung bildet.
23. Vorrichtung (100) nach einem der Ansprüche 20 bis 22, dadurch
gekennzeichnet, dass die Digital-Analog-Wandler (106, 1 16) zur Erfassung von Information über wenigstens einen Summenstrom ausgebildet sind.
24. Vorrichtung nach einem der Ansprüche 21 bis 23, dadurch gekennzeichnet, dass die Vorrichtung (100) einen ersten Analog-Digital-Wandler (104) insbesondere zur Erzeugung der ersten Spannung und einen zweiten
Analog-Digitalwandler (104) zur Erzeugung der zweiten Spannung umfasst.
25. Vorrichtung (100) nach einem der Ansprüche 20 bis 24, dadurch
gekennzeichnet, dass die Vorrichtung (100) eine Memristor-Anordnung vorsieht, in der an einem Knoten von einer Zeile und einer Spalte der Matrix- Anordnung (100) zwei Memristoren angeordnet sind, die hinsichtlich ihrer ladungsabhängigen Widerstandswerte in einander entgegengesetzter
Richtung veränderlich sind.
26. Vorrichtung (400), dadurch gekennzeichnet, dass die Vorrichtung (400) einen Mikroprozessor (404), eine Schalteinrichtung (402) und insbesondere einen Speicher (410) mit Registern aufweist, die ausgebildet sind, eine Vorrichtung gemäß einem der Ansprüche 20 bis 25 in einem Verfahren nach einem der Ansprüche 1 bis 19 anzusteuern.
27. Computerprogramm, welches Befehle umfasst, die beim Ausführen dieser mittels eines Computers, den Computer veranlassen das Verfahren nach einem der Ansprüche 1 bis 19 auszuführen.
28. Maschinenlesbares Speichermedium, auf welchem das Computerprogramm nach Anspruch 27 hinterlegt ist.
PCT/EP2019/078869 2018-11-13 2019-10-23 Verfahren und vorrichtung zur umsetzung einer matrix-operation WO2020099080A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980074413.5A CN112955863A (zh) 2018-11-13 2019-10-23 用于实现矩阵运算的方法和设备
US17/289,151 US20210382961A1 (en) 2018-11-13 2019-10-23 Method and device for implementing a matrix operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018219313.4A DE102018219313A1 (de) 2018-11-13 2018-11-13 Verfahren und Vorrichtung zur Umsetzung einer Matrix-Operation
DE102018219313.4 2018-11-13

Publications (1)

Publication Number Publication Date
WO2020099080A1 true WO2020099080A1 (de) 2020-05-22

Family

ID=68426418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/078869 WO2020099080A1 (de) 2018-11-13 2019-10-23 Verfahren und vorrichtung zur umsetzung einer matrix-operation

Country Status (4)

Country Link
US (1) US20210382961A1 (de)
CN (1) CN112955863A (de)
DE (1) DE102018219313A1 (de)
WO (1) WO2020099080A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861429B2 (en) * 2018-04-30 2024-01-02 Hewlett Packard Enterprise Development Lp Resistive and digital processing cores
CN113805843B (zh) * 2021-09-24 2024-03-19 上海集成电路装备材料产业创新中心有限公司 最大值求解电路及最大值求解方法
CN116450998A (zh) * 2022-01-07 2023-07-18 清华大学 基于忆阻器阵列的数据处理方法、电子装置
CN115454507B (zh) * 2022-11-10 2023-03-24 统信软件技术有限公司 多任务并行执行的方法、装置、计算设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533858B (zh) * 2015-09-25 2021-01-12 慧与发展有限责任合伙企业 交叉杆阵列、图像处理器及对存储单元进行编程的方法
CN105390520B (zh) * 2015-10-21 2018-06-22 清华大学 忆阻器交叉阵列的参数配置方法
US10496855B2 (en) * 2016-01-21 2019-12-03 Hewlett Packard Enterprise Development Lp Analog sub-matrix computing from input matrixes
US10216703B2 (en) * 2016-02-08 2019-02-26 Spero Devices, Inc. Analog co-processor
US10241971B2 (en) * 2016-12-15 2019-03-26 Hewlett Packard Enterprise Development Lp Hierarchical computations on sparse matrix rows via a memristor array
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators
US11816563B2 (en) * 2019-01-17 2023-11-14 Samsung Electronics Co., Ltd. Method of enabling sparse neural networks on memresistive accelerators

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ATHREYAS NIHAR ET AL: "Memristor-CMOS Analog Co-Processor for Acceleration of High Performance Computing Applications", 2018 INTERNATIONAL CONFERENCE ON CURRENT TRENDS TOWARDS CONVERGING TECHNOLOGIES (ICCTCT), IEEE, 1 March 2018 (2018-03-01), pages 1 - 7, XP033458142, DOI: 10.1109/ICCTCT.2018.8551115 *
HASAN RAQIBUL ET AL: "On-chip training of memristor based deep neural networks", 2017 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), IEEE, 14 May 2017 (2017-05-14), pages 3527 - 3534, XP033112488, DOI: 10.1109/IJCNN.2017.7966300 *
JUNYI LI ET AL: "A Memristor Crossbar-Based Computation Scheme with High Precision", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 10 November 2016 (2016-11-10), XP080730764 *

Also Published As

Publication number Publication date
US20210382961A1 (en) 2021-12-09
DE102018219313A1 (de) 2020-05-14
CN112955863A (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
WO2020099080A1 (de) Verfahren und vorrichtung zur umsetzung einer matrix-operation
DE2321112C2 (de) Signalverarbeitungsanlage
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE102013106881A1 (de) Analog-Digital-Wandlung mit Abtast-Halte-Schaltungen
DE2618823B2 (de) Generator zur Erzeugung periodischer Folgen
DE2922550A1 (de) Verfahren und geraet zur umsetzung von analog- in digitaldaten und umgekehrt
DE2146982A1 (de) Programmierbare digitale Filtereinrichtung
DE3530637A1 (de) Schaltungsanordnung mit einer an den ausgang eines verstaerkers angeschlossenen last
DE4010735C2 (de)
DE19742064A1 (de) Analog-Digital-Umsetzverfahren und Vorrichtung zu seiner Ausführung
DE3507605A1 (de) Schleifensteuersystem fuer digitale verarbeitungseinrichtungen
DE2111838B2 (de) Sich automatisch selbst einstellender daempfungsentzerrer
DE3046772C2 (de) Taktgenerator
DE2324692C2 (de) Digital-Analog-Wandler
DE60022370T2 (de) D/a wandlungsmethode und d/a wandler
EP1645035B1 (de) Digital-analog-wandler und verfahren zur digital-analog-wandlung
EP0629943A2 (de) Multiplizierer für reelle und komplexe Zahlen
DE2500434C3 (de) Schaltungsanordnung zur Auswertung von Winkelabweichungen eines bewegten Körpers relativ zu einem Zielpunkt kennzeichnenden Signalen
DE2146633C3 (de) Einrichtung zur Steuerung der Schiebezeit von Informationen durch ein oder mehrere Schieberegister
DE3307568A1 (de) Anordnung und verfahren zur schnellen analog-digital-umwandlung
DE1910493B2 (de) Schaltungsanordnung zur Umwandlung von aus digitalen Signalen bestehenden Codeworten in positive und negative Strom- bzw. Spannungswerte
DE2210037B2 (de) Speicher-Prozessor-Element
DE1524177C (de) Multiplikationseinrichtung zur teilweise parallelen Multiplikation binärer Faktoren
DE102021105181A1 (de) Vorrichtung und verfahren zum lesen von daten in einem speicher

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19797596

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19797596

Country of ref document: EP

Kind code of ref document: A1