WO2020095407A1 - 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス - Google Patents

積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス Download PDF

Info

Publication number
WO2020095407A1
WO2020095407A1 PCT/JP2018/041478 JP2018041478W WO2020095407A1 WO 2020095407 A1 WO2020095407 A1 WO 2020095407A1 JP 2018041478 W JP2018041478 W JP 2018041478W WO 2020095407 A1 WO2020095407 A1 WO 2020095407A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
sum
product
data
result
Prior art date
Application number
PCT/JP2018/041478
Other languages
English (en)
French (fr)
Inventor
幸夫 寺▲崎▼
Original Assignee
Tdk株式会社
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 Tdk株式会社 filed Critical Tdk株式会社
Priority to PCT/JP2018/041478 priority Critical patent/WO2020095407A1/ja
Priority to CN201880098174.2A priority patent/CN112771533B/zh
Priority to JP2019510980A priority patent/JP6521207B1/ja
Priority to US16/675,423 priority patent/US11340869B2/en
Publication of WO2020095407A1 publication Critical patent/WO2020095407A1/ja

Links

Images

Classifications

    • 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
    • G06G7/163Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division using a variable impedance controlled by one of the input signals, variable amplification or transfer function
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means

Definitions

  • the present invention relates to a sum-of-products arithmetic unit, a sum-of-products arithmetic method, a logical operation device, and a neuromorphic device.
  • the sum of products operation is performed in a circuit such as a neural network.
  • Research on techniques for analogically executing such sum-of-products arithmetic is underway.
  • a configuration using an element whose resistance changes also referred to as a “variable resistance element” for convenience of description
  • use of a variable resistance element whose resistance changes linearly is being studied as an element having good characteristics.
  • variable resistance element As such a variable resistance element, in recent years, a neuromorphic element whose conductance (reciprocal of resistance) changes in an analog manner has attracted attention. A new arithmetic mechanism that can perform the product-sum operation at low power and high speed by using a neuromorphic element has been studied.
  • an array using signal lines and variable resistance elements realizes a circuit that represents the coupling between layers of a neural network. For example, the input signal modulated according to the pulse length or the voltage is applied to the array. Then, the amount of current flowing through a predetermined signal line is used as the result of the product-sum calculation. In such a configuration, the array functions as a circuit that constitutes an analog multiply-add calculator. It should be noted that it is possible to configure an array that functions as a circuit that configures the digital multiply-add calculator.
  • connection weight may have a negative value.
  • the product-sum calculator has been devised to express a weight having a negative value.
  • Patent Document 1 does not disclose a configuration for expressing a product-sum operation in which a weight having a positive value and a weight having a negative value are mixed, and a weight having a positive value and a negative value are It was not clear how to implement an integrated circuit that expresses the product-sum operation when the weights it possesses are mixed.
  • the present invention has been made in consideration of such circumstances, and is capable of easily realizing a product-sum operation in which weights having a positive value and weights having a negative value are mixed.
  • An object of the present invention is to provide a product-sum operation method, a logical operation device, and a neuromorphic device.
  • One aspect of the present invention includes a first circuit that generates a signal corresponding to each of a plurality of data, and a plurality of the signals that are generated by the first circuit by a plurality of variable resistance elements having variable resistance values.
  • a second circuit having a first arithmetic circuit for calculating a sum of the plurality of multiplication results, and an addition result of the values according to each of the plurality of data or the addition result is adjusted.
  • the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit are analog signals
  • the fourth circuit The difference circuit of is an analog circuit.
  • the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit are digital data
  • the fourth circuit The difference circuit of is a digital circuit.
  • a variable range of common conductance is set in the plurality of variable resistance elements
  • the first arithmetic circuit of the second circuit includes the plurality of multiplication units.
  • the result obtained by the third circuit having a capacity for obtaining the sum of the results is (the addition result of the values corresponding to each of the plurality of data) and (the change of the conductance of the variable resistance element). It is a result of multiplying ⁇ 1 / (the above capacity) ⁇ by the central value of the range.
  • a common variable range of conductance is set in the plurality of variable resistance elements, and the first arithmetic circuit of the second circuit sets the plurality of multiplication results.
  • a result calculated by the third circuit is (the addition result of the values corresponding to each of the plurality of data) and (the conductance of the variable resistance element is variable). It corresponds to the sum of the product of the range center value) and ⁇ 1 / (capacity) ⁇ multiplied by the first coefficient and the second coefficient.
  • the first circuit in the product-sum calculator, the first circuit generates the signal according to each of the plurality of data, and the first circuit responds to each of the plurality of data. Pulse-width modulated signal.
  • the first circuit in the product-sum calculator, the first circuit generates the signal according to each of the plurality of data, and the first circuit responds to each of the plurality of data. To generate an amplitude modulated signal.
  • the second circuit in the product-sum calculator, includes a plurality of the first calculation circuits, and the fourth circuit includes the difference for each of the plurality of the first calculation circuits. It has a circuit.
  • the plurality of data are input to the third circuit in a time series order, and the third circuit outputs the plurality of the data in the time series order.
  • the value according to each is added.
  • the variable resistance element is a magnetoresistive effect element that exhibits a magnetoresistive effect.
  • One embodiment of the present invention includes a first circuit, a second circuit, a third circuit, and a fourth circuit, the second circuit has a first arithmetic circuit, and the fourth circuit has a difference circuit.
  • a sum of products operation method performed in a container wherein the first circuit generates a signal corresponding to each of a plurality of data, and the first calculation circuit of the second circuit has a variable resistance value.
  • Each of the variable resistance elements of the plurality of the signals generated by the first circuit is multiplied by a weight to calculate a sum of the plurality of multiplication results, and the third circuit calculates the sum of the plurality of the data.
  • the addition result of the values corresponding to each of them or the adjustment result of the addition result is calculated, and the difference circuit of the fourth circuit is calculated by the first calculation circuit of the second circuit and the third result. Difference from the result calculated by the circuit To output.
  • One embodiment of the present invention is a logic operation device including any of the above product-sum operation units and performing a logic operation.
  • One aspect of the present invention is a neuromorphic device that includes any of the product-sum calculators described above, and the variable resistance element of the product-sum calculator is a neuromorphic device.
  • FIG. 1 is a diagram showing a schematic configuration of a product-sum calculator 1 according to an embodiment (first embodiment) of the present invention.
  • the sum-of-products calculator 1 includes an input unit 11, an array unit 12, a conversion unit 13, and an output unit 14.
  • FIG. 1 shows a control unit 15 that controls the product-sum calculator 1.
  • the control unit 15 is configured as a functional unit different from the product-sum calculator 1.
  • the product-sum calculator 1 and the control unit 15 may be considered to be included in, for example, a predetermined device (for example, a product-sum calculation device) or a predetermined system (for example, a product-sum calculation system).
  • the control unit 15 may be configured integrally with the product-sum calculator 1.
  • the product-sum calculation unit 1 may be regarded as including the control unit 15.
  • the array unit 12 is composed of an array of N rows and M columns.
  • N is an integer of 2 or more and M is an integer of 2 or more.
  • M is an integer of 2 or more.
  • N is an integer of 3 or more, but N may be 2.
  • M may be 1, that is, an array of a plurality of rows and one column may be used.
  • a plurality of circuit elements are connected by a signal line.
  • some signal lines will be described with reference numerals, and other signal lines will not be described with reference numerals and detailed description. It should be noted that instead of the signal line for transmitting the signal by wire, a configuration for transmitting the signal by wireless may be used.
  • the input unit 11 includes N input registers 31-1 to 31-N corresponding to N rows, N input signal generation circuits 32-1 to 32-N corresponding to N rows, and a signal line 33. Equipped with.
  • the input signal generation circuits 32-1 to 32-N may include, for example, a combination of a driver circuit such as an output buffer or an input / output buffer and a modulation circuit in the preceding stage.
  • the role of the modulation circuit of the input signal generation circuits 32-1 to 32-N is to drive the signal modulated from the source signal for the input signal (not shown) by the values of the input registers 31-1 to 31-N. It will be output to the circuit.
  • the array unit 12 includes (N ⁇ M) variable resistance elements 41-11 to 41-NM corresponding to (N ⁇ M) rows and M signal lines 42-1 to 42-42 corresponding to M columns. -With M.
  • the variable resistance element 41-ij represents the variable resistance element in the i-th row and the j-th column.
  • i is an integer of 1 or more and N or less
  • j is an integer of 1 or more and M or less.
  • M variable resistance element systems arranged in the row direction (vertical direction in FIG. 1) are arranged in the column direction (horizontal direction in the example of FIG. 1).
  • the description may be made using i and j.
  • each variable resistance element 41-ij is a neuromorphic element.
  • Each variable resistance element 41-ij may be, for example, a non-volatile element.
  • Each variable resistance element 41-ij may be, for example, a magnetoresistive effect element that exhibits a magnetoresistive effect.
  • the magnetoresistive effect element may be an element that changes the resistance by utilizing spin.
  • a magnetoresistive effect element having linearity in the change of conductance is known.
  • the conductance changes linearly according to a change in the physical quantity that changes the conductance (relationship between the magnetizations of the two ferromagnetic layers of the magnetoresistive effect element).
  • one having symmetry in the change of conductance is known.
  • the symmetry is the symmetry between how the conductance increases and how the conductance decreases. That is, the absolute value of the change rate of the conductance when the conductance increases from one value to another value and the absolute value of the change rate of the conductance when the conductance decreases from the other value to the one value.
  • the values match, except for the difference due to error.
  • any element may be used as the neuromorphic element.
  • the neuromorphic element for example, one kind of neuromorphic element may be used in combination, or two or more kinds of neuromorphic element may be used in combination.
  • an element using PCM Phase Change Memory
  • an element using CBRAM Conductive Bridge Random Access Memory
  • CBRAM Conductive Bridge Random Access Memory
  • an element using Spintronics may be used as the neuromorphic element, for example, a domain wall type element that generates a linear resistance change by controlling a domain wall, or a spin orbit torque.
  • An SOT (Spin Orbit Torque) type element using magnetization reversal by action may be used.
  • an element using ReRAM (Resistive Random Access Memory) that uses a resistance change by forming a filament by metal deposition in a medium such as TaO 2 may be used as the neuromorphic element.
  • the converting unit 13 includes an adding circuit 111, an adjusting circuit 112, and a digital-analog converter (DAC: Digital Analog Converter) 113.
  • the output unit 14 includes M detection circuits 61-1 to 61-M corresponding to M columns, M difference circuits 131-1 to 131-M corresponding to M rows, and M difference circuits.
  • the M output terminals 151-1 to 151-M are provided.
  • Each of the M difference circuits 131-1 to 131-M may be, for example, a differential circuit, and may be an operational amplifier, for example.
  • each circuit in the product-sum calculator 1 is divided into some functional units (for example, an input unit 11, an array unit 12, a conversion unit 13, and an output unit 14) for description.
  • a division is an example, and any other division may be used.
  • such a division does not necessarily have to be used.
  • the external device may be an arbitrary device.
  • the external device may be, for example, a storage device that stores data, or an element such as a computer or a sensor that outputs data.
  • the external device inputs data to be operated by the product-sum operation unit 1 to each of the N input registers 31-1 to 31-N.
  • the data input to the product-sum calculator 1 is a combination of N pieces of data corresponding to N rows.
  • an external device may take the initiative to input the data to the product-sum calculation unit 1, or the product-sum calculation unit 1 may take the initiative.
  • the data may be input from an external device.
  • the i-th row input register 31-i outputs the stored data to the i-th row input signal generation circuit 32-i.
  • each of the N input registers 31-1 to 31-N stores the N pieces of data input to the N input registers 31-1 to 31-N in chronological order. Each is output in chronological order.
  • a combination of N pieces of data for N rows input to the product-sum calculator 1 is processed as it is. If such processing is realized, the timing at which data is input to each of the N input registers 31-1 to 31-N, or each of the N input registers 31-1 to 31-N. Any timing may be used as the timing at which the data is output from the.
  • the data output from each of the N input registers 31-1 to 31-N is also transmitted to the adder circuit 111.
  • the data output from each of the N input registers 31-1 to 31-N is input to the same signal line 33 and transmitted to the adder circuit 111 via the signal line 33. ..
  • each of the input registers 31-1 to 31-N has a function of storing a value in a predetermined range as a count value, for example.
  • the predetermined range may be any range, for example, a range of 256 values from 0 to 255.
  • the input data is, for example, a value in the same range as the predetermined range or a value in a range narrower than the predetermined range.
  • the pulse waveform length (pulse length) of the pulse width modulation (PWM) signal generated according to the count value corresponds to the count value.
  • the count value may be regarded as a value of the input data or a value obtained by converting the value of the input data.
  • the input signal generation circuit 32-i on the i-th row is a signal to be input to the array unit 12 based on the data input from the input register 31-i on the i-th row (also referred to as “input signal” for convenience of description). ) Is generated. Specifically, the i-th row input signal generation circuit 32-i generates, as an input signal, a signal (pulse width modulation signal) having a width (pulse length) corresponding to the value of the input data. Then, the i-th row input signal generation circuit 32-i outputs the generated input signal to each of the M variable resistance elements 41-i1 to 41-iM in the i-th row in the array unit 12.
  • FIG. 1 shows an example of the input signals 1011-1 to 1011-N generated by each of the N input signal generation circuits 32-1 to 32-N.
  • the shapes and timings of the input signals 1011-1 to 1011-N in FIG. 1 are schematic and not necessarily accurate.
  • Each of the input signals 1011-1 to 1011-N is a voltage pulse signal.
  • the pulse height (voltage value) is the same (constant).
  • Each of the input signal generation circuits 32-1 to 32-N performs processing in a predetermined time unit, for example.
  • the predetermined time unit may be, for example, 10 [ns] or 10 [ ⁇ s].
  • the input signal output from the input signal generation circuit 32-i on the i-th row is input to each of the M variable resistance elements 41-i1 to 41-iM on the i-th row. Further, each of the M variable resistance elements 41-i1 to 41-iM in the i-th row outputs a current determined by the voltage of the input signal and the resistance value of the variable resistance elements 41-i1 to 41-iM. Output.
  • Each of the N variable resistance elements 41-1j to 41-Nj in the j-th column outputs a current to the same signal line 42-j that is common to each column.
  • the current output from each of the N variable resistance elements 41-1j to 41-Nj in the j-th column is input to the same signal line 42-j, and the signal line 42-j is connected.
  • the detection circuit 61-j in the j-th column Through the detection circuit 61-j in the j-th column.
  • each of the variable resistance elements 41-11 to 41-NM outputs a current corresponding to the multiplication result of the voltage pulse as the input signal and the weight.
  • the current is regarded as the result of calculating the product of the input signal and the weight (conductance value in this embodiment) according to Ohm's law.
  • each of the variable resistance elements 41-11 to 41-NM is regarded as a product calculation unit. Since the conductance represents the reciprocal of resistance, each variable resistance element 41-11 to 41-NM can have two or more different resistance values, and thus can have two or more different conductance values.
  • N variable resistance elements N variable resistance elements 41-1j to 41-Nj in the j-th column
  • the output current is transmitted.
  • the adder circuit 111 adds the data input from the signal line 33. That is, the adder circuit 111 adds the data output from each of the N input registers 31-1 to 31-N by digital operation.
  • the addition circuit 111 outputs the addition result data to the adjustment circuit 112.
  • the adder circuit 111 sequentially adds the data output in time series from each of the N input registers 31-1 to 31-N, and thereby the N input signal generation circuits 32-1. Calculate the sum of the count values of up to 32-N.
  • the addition circuit 111 shows the case where all the data output from each of the N input registers 31-1 to 31-N are added.
  • 0 is added.
  • the data having the value of may be excluded from the addition target by the addition circuit 111. That is, in the addition circuit 111, the addition result is the same even if the data having the value of 0 is excluded from the addition target.
  • the adjustment circuit 112 performs a predetermined adjustment by performing a predetermined calculation on the data input from the addition circuit 111, and outputs the adjusted data (data after the calculation) to the digital-analog converter 113.
  • the predetermined adjustment is, for example, a calculation of multiplying the input data by a predetermined coefficient, a calculation of adding a predetermined coefficient to the input data, or a predetermined result of calculating a predetermined coefficient of the input data.
  • the calculation may be performed by adding the coefficients of.
  • the digital-analog converter 113 converts the data input from the adjustment circuit 112 from digital data into an analog signal, and outputs the converted analog signal to each of the M difference circuits 131-1 to 131-M.
  • the value of the digital data is reflected in the voltage value of the analog signal. That is, the digital-analog converter 113 converts the input digital data into an analog signal in a predetermined range.
  • the range may be called, for example, a dynamic range.
  • the value of input digital data and the output analog signal correspond linearly in one-to-one correspondence.
  • the analog signal output from the digital-analog converter 113 is represented by, for example, Expression (1).
  • the formula (1) can be considered to indirectly represent the adjusted data output from the adjusting circuit 112.
  • Vc represents the voltage of the analog signal output from the digital-analog converter 113.
  • Pr represents the value of the data output from the r-th row input register 31-r. The value corresponds to the pulse width of the pulse width modulation signal output from the r-th row input signal generation circuit 32-r.
  • r is an integer of 1 or more and N or less.
  • Vr represents the voltage of the pulse width modulation signal output from the r-th row input signal generation circuit 32-r. In this embodiment, the voltage of the pulse width modulation signals output from all the input signal generation circuits 32-1 to 32-N is the same.
  • ⁇ (Pr ⁇ Vr) represents the sum of (Pr ⁇ Vr) when r takes a value from 1 to N.
  • ⁇ (Pr ⁇ Vr) becomes equal to ⁇ ( ⁇ Pr) ⁇ Vr ⁇ .
  • the total sum of Pr is calculated by the adder circuit 111. Then, the calculation other than the summation is performed by the adjustment circuit 112 and the digital-analog converter 113.
  • Gm represents the central value of the variable range of the conductance of the variable resistance elements 41-11 to 41-NM.
  • an ideal case is assumed, and it is assumed that the variable range of conductance is the same for all variable resistance elements 41-11 to 41-NM.
  • Cd represents the capacitance of the capacitors forming the detection circuits 61-1 to 61-M.
  • the capacitances of the capacitors are the same for all the detection circuits 61-1 to 61-M.
  • K1 and K2 each represent a coefficient. These coefficients K1 and K2 are, for example, coefficients for correcting an error due to variations due to individual differences occurring in actual circuit elements or an error due to temperature fluctuations.
  • the coefficient K1 is a coefficient for correcting the gain
  • the coefficient K2 is a coefficient for correcting the offset.
  • a configuration in which one or both of the coefficient K1 and the coefficient K2 are not used may be used.
  • the coefficient K1 and the coefficient K2 are adjusted by the adjustment circuit 112 or a digital-analog converter based on the result of actual measurement of the operation result of the product-sum operation unit 1 or other reference information, for example. It may be reflected in one or both of the properties of 113.
  • a method of calculating data after adjustment from data before adjustment is set in advance. The method may be specified, for example, by using information of an equation that calculates data after adjustment from data before adjustment.
  • the analog signal output from the digital-analog converter 113 is represented by, for example, Expression (2).
  • the equation (2) is equivalent to the case where the coefficient K1 is set to 1 and the coefficient K2 is set to 0 in the equation (1).
  • both the adder circuit 111 and the adjustment circuit 112 generally perform a predetermined calculation.
  • the configuration in which the calculation is performed separately for the adder circuit 111 and the adjustment circuit 112 is shown.
  • a configuration in which the same calculation is performed by one circuit, or two or more arbitrary A configuration may be used in which the same calculation is performed by combining the circuits of.
  • the j-th column detection circuit 61-j sums the currents output to the same signal line 42-j from each of the N variable resistance elements 41-1j to 41-Nj in the j-th column.
  • the detection circuit 61-j on the j-th column outputs an analog signal having a voltage according to the summation result of the summed currents to the difference circuit 131-j on the j-th column.
  • each of the M detection circuits 61-1 to 61-M is configured by using a capacitor.
  • the electric charge is applied to the capacitor by the current output to the same signal line 42-j from each of the N variable resistance elements 41-1j to 41-Nj on the j-th column. Is stored. The charge is proportional to the sum of the currents.
  • the detection circuit 61-j in the j-th column detects the difference in the j-th column as an analog signal having a voltage according to the electric charge accumulated in the capacitor, as an analog signal having a voltage according to the summation result of the summed currents. Output to the circuit 131-j.
  • the capacitances of the capacitors of the detection circuits 61-1 to 61-M are the same for the M detection circuits 61-1 to 61-M.
  • Each of the M detection circuits 61-1 to 61-M converts the total sum of the amounts of current flowing through the respective signal lines (in the case of the j-th detection circuit 61-j, the signal line 42-j) into a voltage. It may be regarded as a QV conversion circuit that operates.
  • the difference circuit 131-j in the j-th column has a positive terminal (+ terminal) that is one input terminal, a negative terminal ( ⁇ terminal) that is another input terminal, and an output terminal.
  • the difference circuit 131-j in the j-th column inputs the analog signal output from the detection circuit 61-j in the j-th column from the positive terminal and inputs the analog signal output from the digital-analog converter 113 from the negative terminal. ..
  • the difference circuit 131-j in the j-th column outputs the signal resulting from the subtraction of the input signal at the negative terminal from the input signal at the positive terminal from the output end.
  • the signal is output to the output end 151-j of the j-th column.
  • the signal is an analog signal.
  • the j-th column difference circuit 131-j outputs a signal having a voltage corresponding to the difference between the voltages of the two input signals.
  • the difference is the result of subtracting the input signal of the negative terminal from the input signal of the positive terminal.
  • the output terminal 151-j of the j-th column outputs the signal input from the difference circuit 131-j of the j-th column.
  • the signal may be used for any purpose.
  • the signal may be input to and used by a circuit (not shown) that uses the product-sum operation result in the neural network.
  • the detection circuits 61-1 to 61-M and the difference circuits 131-1 to 131-M have been described by allocating one set of circuits to each of the M columns. It is not necessary that as many sets of circuits be provided. For example, it is also possible to time-divisionally allocate one detection circuit and one difference circuit to each of the M columns for multiplexing.
  • the control unit 15 controls the weight of each of the (N ⁇ M) variable resistance elements 41-11 to 41-NM.
  • the control unit 15 controls, for example, the value of the voltage applied to the control terminals of the variable resistance elements 41-11 to 41-NM or the magnetic field (magnetic field) applied to the variable resistance elements 41-11 to 41-NM. By doing so, the weight of each variable resistance element 41-11 to 41-NM is controlled.
  • the weight is a value according to conductance (or may be regarded as a value according to resistance), and may change according to control by the control unit 15.
  • the control unit 15 can change the weights of the variable resistance elements 41-11 to 41-NM to desired values within a changeable range.
  • the control unit 15 may set an arbitrary set value in the product-sum calculator 1. Such a setting may be, for example, an initial setting, or a setting for changing an already set value.
  • the set value may include one or more parameters included in Expression (1) and Expression (2).
  • each of the (N ⁇ M) variable resistance elements 41-11 to 41-NM can have a positive conductance (positive resistance value), but cannot have a negative conductance (negative resistance value). .. Therefore, the negative weight cannot be expressed only by the configuration of the array unit 12 according to the present embodiment.
  • the weight that can be expressed by the positive conductance is the positive weight (weight having a positive value). Then, a weight having a sign opposite to that of the positive weight is set as a negative weight (a weight having a negative value).
  • FIG. 2 is a diagram showing a specific example of theoretical values according to the embodiment of the present invention.
  • FIG. 2 shows a table 2011 in which specific examples of theoretical values are described.
  • the table 2011 shows two cases, a case 1 (“Case 1” in the table 2011) and a case 2 (“Case 2” in the table 2011).
  • weights having positive values and weights having negative values are used, and examples of numerical values when the correction of the product-sum calculation in the present embodiment is not performed are shown in “calculation weights”. ing.
  • the “weight” indicates the weight value of each of the five variable resistance elements 41-1j to 41-5j.
  • the weight of each of the five variable resistance elements 41-1j to 41-5j takes a value in the range of ⁇ 0.5 to +0.5.
  • the “product sum operation” includes the result of the product of each of the five variable resistance elements 41-1j to 41-5j and the result of the product sum (“sum” Columns) are shown.
  • a weight having a positive value is used in the array unit 12, but a weight having a negative value is not used, and an example of a numerical value when correction of the product-sum calculation in the present embodiment is performed.
  • “Shift weight to positive value” indicates the weight value of each of the five variable resistance elements 41-1j to 41-5j after shifting.
  • the result of adding +0.5 to the “weight” in the “calculation weight” is the “weight” in the “shift the weight to a positive value”. That is, in this example, the weight of each of the five variable resistance elements 41-1j to 41-5j is shifted by +0.5 to take a value in the range of 0.0 or more and +1.0 or less.
  • the “product-sum operation” includes the result of the product of each of the five variable resistance elements 41-1j to 41-5j and the result of the product sum (“sum”). "Column) is shown. Note that such weight shift information may be set in the control unit 15 in advance, for example. That is, the control unit 15 controls the weights of the variable resistance elements 41-11 to 41-NM (variable resistance elements 41-1j to 41-5j in this example) so that the weights are shifted. Good.
  • such a reverse shift is performed by the conversion unit 13 and the difference circuits 131-1 to 131-M.
  • Information for performing such reverse shift may be set in advance in the adjustment circuit 112 and the digital-analog converter 113 of the conversion unit 13, for example.
  • weights having negative values and weights having positive values when weights having negative values and weights having positive values are mixed, all weights have a predetermined value A1 (A1 is a predetermined positive value) so that all of these weights have positive values.
  • the value can be calculated by adding only the weight having a positive value (there may be 0). Further, by subtracting a predetermined value B1 (B1 is a predetermined positive value) from the result of such an operation, the operation in the original case, that is, when the weight having a negative value and the weight having a positive value are mixed The same calculation result as the result can be obtained.
  • the product-sum calculator 1 uses such a principle. That is, the array unit 12 performs a product-sum operation corresponding to "shift weight to positive value". Further, the conversion unit 13 and the difference circuits 131-1 to 131-M perform a correction to obtain a calculation result in the original case, that is, in the case where a weight having a negative value and a weight having a positive value are mixed.
  • the variable resistance elements 41-11 to 41-NM are used to perform the product-sum calculation on the converted weights (shifted weights) in an analog manner, and the result is obtained. It is possible to obtain a calculation result in the case where a weight having a negative value and a weight having a positive value are mixed by performing the correction on.
  • Case 2 in Table 2011 is similar to that for Case 1.
  • Case 2 an example of numerical values different from Case 1 is shown.
  • Case 1 and Case 2 in the table 2011 represent, for example, sum-of-products calculation in a one-layer neural network having five-dimensional (“1” to “5” in the table 2011) inputs.
  • the information of "calculation weight” represents the information of the result of the simulation calculated by the computer when the weight having a negative value and the weight having a positive value are mixed.
  • the information of "shift weight to positive value” represents information on the result of simulation calculated by the computer when the weight is shifted so that only the weight having a positive value (0 may be present) exists.
  • FIG. 3 is a diagram showing a specific example (correction for voltage) of the actual measurement simulation according to the embodiment of the present invention.
  • FIG. 3 shows a table 2021 in which a specific example (correction for voltage) of the result of the simulation of the actual measurement value is described.
  • the example of FIG. 2 is a theoretical example
  • the example of FIG. 3 is an example of a measured value. Therefore, in the example of FIG. 3, a numerical value deviated from the theoretical value can be taken. Further, some calculation error may occur due to the number of significant digits in calculation.
  • the contents of the table 2021 will be described.
  • the table 2021 shows two cases, that is, a case 1 (“Case 1” in the table 2021) and a case 2 (“Case 2” in the table 2021).
  • the summation result for “1” to “5” is shown in “sum”.
  • the value of input data is shown as “input”. In this example, the range of input data is 0 to 1.
  • the weight of the five variable resistance elements 41-1j to 41-5j indicates the value of each weight of the five variable resistance elements 41-1j to 41-5j.
  • the weight range is -1 to +1.
  • the “product sum operation” includes the result of the product by each of the five variable resistance elements 41-1j to 41-5j and the result of the product sum (“sum” Columns) are shown.
  • the range of the result of the product-sum operation is in the range of -5 to +5.
  • a weight having a positive value is used in the array unit 12, but a weight having a negative value is not used, and an example of a numerical value when correction of the product-sum calculation in the present embodiment is performed.
  • “Input characteristics”, “element”, “array output”, “capacitance”, “voltage output”, “voltage correction”, and “normalization” are shown in "Calculation using neuromorphic array”.
  • the “input characteristic” represents information regarding input data.
  • the “input characteristic” represents information regarding input data.
  • the “count value” represents the value of input data. In this example, this value corresponds to a value that determines the length (pulse width) of a pulse wave.
  • Pulse width represents the pulse width of the input signal which is the pulse width modulation signal. In this example, the “pulse width” is 10 times the “counter value” when the unit pulse width is set to 10 (ns), for example.
  • “E (V)” represents the voltage of the input signal which is the pulse width modulation signal. In this example, the voltage is constant.
  • “Element” represents information regarding the variable resistance elements 41-1j to 41-5j.
  • “G ( ⁇ S)” is shown.
  • “G ( ⁇ S)” represents the value of the conductance of each of the five variable resistance elements 41-1j to 41-5j. In this example, the conductance range is 1 ( ⁇ S) to 2 ( ⁇ S).
  • Array output represents the output from the array unit 12 and information regarding the detection circuit 61-j.
  • I ( ⁇ A) represents the current output from each of the five variable resistance elements 41-1j to 41-5j.
  • the range of each current is 0.2 ( ⁇ A) to 0.4 ( ⁇ A).
  • the range of the total value of the current is in the range of 1 ( ⁇ A) to 2 ( ⁇ A).
  • Q (C) represents the amount of charge accumulated in the detection circuit 61-j.
  • Capacity represents information regarding the detection circuit 61-j.
  • C (F) is shown.
  • C (F) represents the capacitance of the capacitor that constitutes the detection circuit 61-j.
  • the capacity is described in the column of “sum” for convenience.
  • Voltage output represents information about the detection circuit 61-j.
  • voltage output output voltage ( ⁇ V)” is shown. In this example, the voltage output range is 1275 ( ⁇ V) to 2550 ( ⁇ V).
  • Output voltage ( ⁇ V)” represents the voltage output from the detection circuit 61-j. In the table 2021, the voltage is described in the column of “sum” for convenience.
  • Voltage correction represents information regarding the digital-analog converter 113 and the difference circuit 131-j.
  • voltage correction In “voltage correction”, “ ⁇ ” and “output voltage ( ⁇ V)” are shown.
  • represents the voltage of the analog signal output from the digital-analog converter 113 to the difference circuit 131-j.
  • Output voltage ( ⁇ V)” represents the voltage output from the difference circuit 131-j.
  • the ⁇ and the voltage are described in the “sum” column for convenience.
  • Normalization represents information on standardization. In “normalization”, “value range: ⁇ 5" is shown. “Value range: ⁇ 5” represents the value obtained by normalizing the voltage and the value of ⁇ 5. In the table 2021, for convenience, the value is described in the “sum” column.
  • ⁇ sum of pulse lengths of input signal (s) ⁇ ⁇ (average current amount) / (detection capacity), Alternatively, it is expressed by an equation including a coefficient of 1 or more.
  • the coefficient for example, one or both of a gain coefficient and a shift coefficient may be used.
  • case 2 in the table 2021 has the same description method as the case 1.
  • Case 2 an example of numerical values different from Case 1 is shown.
  • the table The operation as shown in case 1 in 2021 is realized.
  • the numerical values shown in the case 1 in the table 2021 are examples, and it is possible for the product-sum calculation unit 1 to realize operations that match various other numerical values.
  • FIG. 4 is a diagram showing a specific example (correction for the charge amount) of the actual measurement simulation according to the embodiment of the present invention.
  • FIG. 4 shows a table 2031 in which a specific example (correction for the charge amount) of the result of the simulation of the actual measurement value is described.
  • the correction for the voltage has been described in the example of FIG. 3, but the correction for the charge amount will be described in the example of FIG.
  • the amount of charge accumulated in the j-th column detection circuit 61-j is corrected.
  • the detection and correction of the total current (charge amount) of the j-th column is performed.
  • the circuit accumulates the current flowing through the signal line 42-j in the j-th column, and the charge amount corresponding to the voltage output from the conversion unit 13 is added to the accumulated current (charge The correction of the charge amount may be realized by subtracting the signal from the charge amount) and outputting a signal having a voltage corresponding to the result of the subtraction to the output end 151-j of the j-th column.
  • the contents of the table 2031 will be described. Note that detailed description of portions similar to those of the table 2021 shown in FIG. 3 will be omitted.
  • the table 2031 shows two cases, a case 1 (“Case 1” in the table 2031) and a case 2 (“Case 2” in the table 2031).
  • the sum result of “1” to “5” is shown in “sum”.
  • “Input” in the table 2031 represents the same information as in the case of the table 2021 shown in FIG.
  • an example of numerical values when the weight having a positive value and the weight having a negative value are used and the correction of the product-sum operation is not performed is shown in "Calculation by computer”.
  • the “weight” and “product sum operation” of “calculation by computer” in the table 2031 represent the same information as in the case of the table 2021 shown in FIG.
  • a weight having a positive value is used in the array unit 12, but a weight having a negative value is not used, and an example of numerical values when correction of the product-sum calculation in the present embodiment is performed.
  • “Calculation using neuromorphic array” shows "input characteristics”, “element”, “array output”, “charge amount correction”, “capacitance”, “voltage output”, and “normalization”. ..
  • charge amount correction represents information regarding correction for the charge amount.
  • charge amount correction “ ⁇ ” and “Q after correction” are shown.
  • represents the total sum (charge amount) of the current of the analog signal output from the digital-analog converter 113.
  • corrected Q represents the corrected charge amount.
  • “voltage output” represents information regarding the voltage output from the output end 151-j.
  • “output voltage ( ⁇ V)” is shown.
  • “Output voltage ( ⁇ V)” represents the value of the voltage output from the output end 151-j.
  • each of the N input signal generation circuits 32-1 to 32-N generates, as an input signal, an amplitude modulation signal having an amplitude corresponding to the value of the input data.
  • the height of the waveform of the amplitude modulation signal corresponds to the count value of the input registers 31-1 to 31-N.
  • the result of integrating the amplitude with respect to time (width) has a correlation between the case where a pulse width modulation signal is generated as an input signal and the case where an amplitude modulation signal is generated as an input signal.
  • a pulse width modulation signal is generated as an input signal and an amplitude modulation signal is generated as an input signal by adjusting the coefficient when generating the input signal by each of the input signal generation circuits 32-1 to 32-N. It is possible to have the same result of integrating the amplitude over time (width) as when a signal is generated.
  • the conversion unit 13 includes the addition circuit 111, the adjustment circuit 112, and the digital-analog converter 113, but as another example, the adjustment circuit 112 may not be included.
  • the adjustment circuit 112 may not be provided in the case where accuracy that does not hinder practical use can be obtained without adjustment by the adjustment circuit 112. That is, the conversion unit 13 may include the addition circuit 111 and the digital-analog converter 113, and the output from the addition circuit 111 may be input to the digital-analog converter 113.
  • the configuration including the adjustment circuit 112 is preferable.
  • the adjustment circuit 112 may be provided with a mechanism for dynamically correcting variations in actual device manufacturing and temperature drift of the circuit.
  • the product-sum calculation unit 1 according to the present embodiment can easily realize a product-sum calculation in which weights having positive values and weights having negative values are mixed.
  • the product-sum calculation unit 1 according to the present embodiment performs the product-sum calculation by an analog method.
  • the product-sum calculator 1 according to the present embodiment can express a negative weight by correcting the result of the product-sum calculation by the array unit 12 and the detection circuits 61-1 to 61-M.
  • the product-sum calculator 1 can express one weight having a positive or negative value for each one variable resistance element 41-11 to 41-NM.
  • variable resistance elements 41-11 to 41-NM elements whose conductance value change characteristics have symmetry.
  • the element may be, for example, an element that utilizes spin symmetry.
  • the conventional neuromorphic element was an element whose conductance value change characteristic did not have symmetry. Therefore, in the past, it was essentially assumed that two such elements were used. Alternatively, if it is attempted to configure such an arithmetic mechanism with an element having poor symmetry, there is a problem that control for appropriately setting the positive and negative weight values to the asymmetric conductance of the element becomes complicated. On the other hand, in recent years, an element having a symmetry in the change characteristic of the conductance value has been realized. Accordingly, in the present application, it is considered that such an element is used to express a product-sum operation in which weights having a positive value and weights having a negative value are mixed. That is, conventionally, there is no problem that triggers the development of the product-sum calculator 1 according to the present embodiment, and the problem is newly recognized in the present application.
  • a configuration example of the product-sum calculator 1 and the like is shown.
  • the present invention is not limited to the configuration examples below.
  • the first circuit input signal generation circuits 32-1 to 32-N in the example of FIG. 1
  • the second circuit array unit 12 in the example of FIG. 1
  • Circuit and detection circuits 61-1 to 61-M are connected.
  • a third circuit a circuit of the conversion unit 13 in the example of FIG. 1
  • a fourth circuit a differential circuit 131-1 to 131-in the example of FIG. 1).
  • M which may include the output terminals 151-1 to 151-M).
  • the second circuit is the first arithmetic circuit (in the example of FIG.
  • the fourth circuit includes a difference circuit (in the example of FIG. 1, a difference circuit 131-j in the j-th column for any j of one row or more).
  • the first circuit generates a signal (input signal in the example of FIG. 1) corresponding to each of a plurality of data (input data in the example of FIG. 1).
  • the first arithmetic circuit of the second circuit includes a plurality of variable resistance elements whose resistance values are variable (in the example of FIG.
  • each of the plurality of signals generated by the first circuit is multiplied by a weight, and the sum of the plurality of multiplication results (in the example of FIG. 1, for any j of one row or more, j
  • the output from the detection circuit 61-j in the column) is calculated.
  • the third circuit adds the result of addition of the value (count value corresponding to the input data in the example of FIG. 1) corresponding to each of the plurality of data (in the example of FIG. 1, the output from the adder circuit 111 is directly digital-analog converted.
  • the difference circuit of the fourth circuit outputs the difference between the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit. Therefore, in the product-sum calculator 1 according to the present embodiment, the correction values (the output from the digital-analog converter 113 in the example of FIG. 1) calculated based on the total sum of the input data are detected by the detection circuits 61-1 to 61. By subtracting from the output from ⁇ M, for example, it is possible to eliminate the need to separate the elements (variable resistance elements 41-11 to 41-NM in the example of FIG. 1) for each positive and negative of the weight of the neural network.
  • the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit are analog signals.
  • the difference circuit of the fourth circuit is an analog circuit. Therefore, the product-sum calculation unit 1 according to the present embodiment can correct the product-sum calculation by analog calculation.
  • a common variable range of conductance is set for a plurality of variable resistance elements.
  • the first arithmetic circuit of the second circuit is a capacitor for acquiring the sum of a plurality of multiplication results (in the example of FIG. 1, for any j of one row or more, a capacitor forming the j-th column detection circuit 61-j). Capacity).
  • the result calculated by the third circuit is obtained by multiplying (the addition result of the values corresponding to each of the plurality of data), (the central value of the variable range of the conductance of the variable resistance element) and ⁇ 1 / (capacity) ⁇ . This is the result. Therefore, in the product-sum calculation unit 1 according to the present embodiment, the correction of the product-sum calculation can be performed by the theoretical calculation represented by the equation (1) using the analytical correction value.
  • a common variable range of conductance is set for a plurality of variable resistance elements.
  • the first arithmetic circuit of the second circuit has a capacity for acquiring the sum of a plurality of multiplication results.
  • the result calculated by the third circuit is the product of (result of addition of values corresponding to each of a plurality of data), (center value of variable range of conductance of variable resistance element) and ⁇ 1 / (capacity) ⁇ .
  • K1 in the example of the formula (2) the second coefficient
  • the correction of the product-sum calculation can be performed by the theoretical calculation represented by the equation (2) using the analytical correction value.
  • an element that corrects a variation in circuit mounting or a temperature change can be included in the analytical correction value using a predetermined coefficient.
  • the product-sum calculator 1 can suppress variation variation due to, for example, analog mounting, temperature- or process-dependent characteristics, and the like.
  • the first circuit generates a signal corresponding to each of a plurality of data, that the first circuit generates a pulse width modulation signal corresponding to each of a plurality of data. That is. Therefore, in the product-sum calculator 1 according to the present embodiment, when the pulse width modulation signals are generated by the input signal generation circuits 32-1 to 32-N, the correction based on the total value of the pulse widths of the N input signals is performed. The value can correct the product-sum calculation.
  • the first circuit generates a signal corresponding to each of the plurality of data, and the first circuit generates the amplitude modulation signal corresponding to each of the plurality of data. Is. Therefore, in the product-sum calculator 1 according to the present embodiment, when the amplitude modulation signal is generated by the input signal generation circuits 32-1 to 32-N, the correction value based on the total value of the amplitudes of the N input signals is used. , The sum of products calculation can be corrected.
  • the second circuit has a plurality of (M in the example of FIG. 1 in total) first calculation circuits.
  • the fourth circuit has a differential circuit (in the example of FIG. 1, a total of M differential circuits 131-1 to 131-M) for each of the plurality of first arithmetic circuits. Therefore, in the product-sum calculator 1 according to the present embodiment, the output from one conversion unit 13 is input to each of the M difference circuits 131-1 to 131-M. That is, the output from one converter 13 is reflected on the outputs of the plurality of signal lines 42-1 to 42-M forming the array unit 12.
  • a conversion unit (a functional unit corresponding to the conversion unit 13) is provided for each of the plurality of signal lines 42-1 to 42-M forming the array unit 12. It is possible to reduce the circuit scale as compared with the case where it is used.
  • a plurality of data are input to the third circuit in chronological order.
  • the third circuit adds the values according to each of the plurality of data in order of time series. Therefore, in the product-sum calculator 1 according to the present embodiment, when the data output from the plurality of input registers 31-1 to 31-N are input to the adder circuit 111 via the signal line 33 in chronological order, These data can be sequentially added in the adder circuit 111.
  • the configuration of the adder circuit 111 can be simplified as compared with the case where timing control is performed when adding a plurality of data.
  • the variable resistance element is a magnetoresistive effect element that exhibits a magnetoresistive effect. Therefore, in the product-sum calculator 1 according to the present embodiment, as a preferable mode, magnetoresistive effect elements may be used as the variable resistance elements 41-11 to 41-NM. As a result, the product-sum calculator 1 can easily express a weight having a positive value and a weight having a negative value.
  • the product-sum calculation method according to the present embodiment can obtain the same effects as those described for the product-sum calculation unit 1 according to the present embodiment.
  • a logical operation device that includes the product-sum operation unit 1 according to the present embodiment and executes a logical operation.
  • the performance of the logical operation unit can be improved by, for example, the product-sum operation with a small error. Any operation may be performed as the logical operation.
  • the neuromorphic device including the product-sum calculator 1 according to the present embodiment and using neuromorphic elements as the variable resistance elements 41-11 to 41-NM.
  • the performance of the neuromorphic device can be improved by, for example, a product-sum operation with a small error.
  • the neuromorphic device may perform any calculation.
  • the neuromorphic device is a device for performing a neuromorphic operation, for example, performing an operation that imitates the movement of the brain.
  • the neuromorphic device may be, for example, a device that combines circuits such as an array, or may be a device that constitutes a neural network.
  • neural network By using the technology of neural network, it is possible to identify or classify advanced information.
  • Such neural network technology is put to practical use in a wide range of fields such as deep learning, medical care, healthcare, finance, marketing, authentication, and security.
  • FIG. 5 is a diagram showing a schematic configuration of the product-sum calculator 201 according to the embodiment (second embodiment) of the present invention.
  • the same components as those of the product-sum calculator 1 shown in FIG. 1 according to the first embodiment will be denoted by the same reference numerals and will not be described in detail.
  • description will be made using i and j used in the description of the first embodiment.
  • the sum-of-products calculator 201 includes an input unit 11, an array unit 12, a conversion unit 221, and an output unit 222. Further, FIG. 5 shows a control unit 15 that controls the product-sum calculator 201.
  • the control unit 15 is configured as a functional unit different from the product-sum calculator 201.
  • the product-sum calculator 201 and the control unit 15 may be considered to be included in, for example, a predetermined device (for example, a product-sum calculation device) or a predetermined system (for example, a product-sum calculation system).
  • the control unit 15 may be configured integrally with the product-sum calculator 201.
  • the product-sum calculator 201 may be regarded as including the control unit 15.
  • the input unit 11, the array unit 12, and the control unit 15 are the same components as the product-sum calculator 1 shown in FIG. 1 according to the first embodiment.
  • the control method performed by the control unit 15 may be different, for example, between the product-sum calculator 1 shown in FIG. 1 according to the first embodiment and the product-sum calculator 201 according to the present embodiment. ..
  • the conversion unit 221 and the output unit 222 will be described in detail.
  • the conversion unit 221 includes an adder circuit 111 similar to that shown in FIG. 1 according to the first embodiment, and an adjusting circuit 112 similar to that shown in FIG. 1 according to the first embodiment.
  • the output section 222 includes M detection circuits 61-1 to 61-M similar to those shown in FIG. 1 according to the first embodiment, and M analog-digital converters (ADCs) 261-. 1 to 261-M, M difference circuits 281-1 to 281-M, and M output terminals 311-1 to 311-M.
  • Each of the M difference circuits 281-1 to 281-M may be, for example, a logic circuit that calculates a difference.
  • the detection circuits 61-1 to 61-M As the detection circuits 61-1 to 61-M, the difference circuits 281-1 to 281-M, and the analog-digital converters 261-1 to 261-M, one set of circuits is provided for each column of M columns. However, it is not always necessary to provide the same number of circuit sets as columns. For example, it is possible to allocate one detection circuit, one difference circuit and one analog-digital converter to each column of the M columns in a time division manner and multiplex them.
  • the conversion unit 221 outputs the digital data of the adjustment result output from the adjustment circuit 112 to each of the M difference circuits 281-1 to 281-M.
  • the digital data corresponds to digital data output from the adjustment circuit 112 to the digital-analog converter 113 in the conversion unit 13 shown in FIG. 1 according to the first embodiment.
  • the analog-digital converter 261-j in the j-th column inputs the analog signal output from the detection circuit 61-j in the j-th column. Then, the j-th column analog-digital converter 261-j converts the input analog signal into digital data, and outputs the converted digital data to the j-th column difference circuit 281-j.
  • the difference circuit 281-j on the j-th column has a positive terminal (+ terminal) that is one input terminal, a negative terminal ( ⁇ terminal) that is another input terminal, and an output terminal.
  • the difference circuit 281-j in the j-th column inputs the digital data output from the analog-digital converter 261-j in the j-th column from the positive terminal and inputs the digital data output from the adjusting circuit 112 from the negative terminal. ..
  • the difference circuit 281-j on the j-th column outputs the data resulting from the subtraction of the input data at the negative terminal from the input data at the positive terminal from the output end. The data is output to the output end 311-j of the jth column.
  • the j-th column difference circuit 281-j outputs data representing the difference between two pieces of input data.
  • the difference may be represented by a voltage value, for example.
  • the difference is the result of subtracting the input data of the negative terminal from the input data of the positive terminal.
  • the output terminal 311-j of the j-th column outputs the data input from the difference circuit 281-j of the j-th column.
  • the data may be used for any purpose.
  • the data may be input to and used by a circuit (not shown) that uses the product-sum operation result in the neural network.
  • a digital-analog converter in the j-th column may be provided between the difference circuit 281-j in the j-th column and the output terminal 311-j in the j-th column.
  • the j-th column digital-analog converter inputs the digital data output from the j-th column difference circuit 281-j, converts the input digital data into an analog signal, and converts the converted analog signal. Is output to the output end 311-j of the j-th column.
  • the output terminal 311 -j of the j-th column outputs the analog signal output from the digital-analog converter of the j-th column.
  • the product-sum calculation unit 201 according to the present embodiment can perform the same calculation as the product-sum calculation unit 1 according to the first embodiment. The same effect can be obtained except the difference in the effect due to the difference. Therefore, the product-sum calculation unit 201 according to the present embodiment can easily realize a product-sum calculation in which weights having positive values and weights having negative values are mixed.
  • the first circuit input signal generation circuits 32-1 to 32-N in the example of FIG. 5) and the second circuit (array unit 12 in the example of FIG. 5) are used.
  • the difference circuits 281-1 to 281-M are provided, and the output terminals 311-1 to 311-M may be included).
  • the second circuit is the first arithmetic circuit (in the example of FIG.
  • the fourth circuit includes a difference circuit (in the example of FIG. 5, a difference circuit 281-j in the j-th column for any j of one row or more).
  • the first circuit generates a signal (input signal in the example of FIG. 5) corresponding to each of the plurality of data (input data in the example of FIG. 5).
  • the first arithmetic circuit of the second circuit includes a plurality of variable resistance elements having variable resistance values (in the example of FIG.
  • each of the plurality of signals generated by the first circuit is multiplied by a weight, and the sum of the plurality of multiplication results (in the example of FIG. 5, for any j of one row or more, j
  • the output from the detection circuit 61-j in the column) is calculated.
  • the third circuit adds the result of addition of the value (count value corresponding to the input data in the example of FIG. 5) corresponding to each of the plurality of data (in the example of FIG. 5, the output from the adder circuit 111 is the same as it is. Output), or an adjusted result of the addition result (in the example of FIG. 5, an output from the adjustment circuit 112).
  • the difference circuit of the fourth circuit outputs the difference between the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit. Therefore, in the product-sum calculator 201 according to the present embodiment, the value calculated based on the total sum of the input data (the output from the adjustment circuit 112 in the example of FIG. 5) is output from the detection circuits 61-1 to 61-M. 5 (in the example of FIG. 5, the output is converted by the analog-to-digital converters 261-1 to 261-M) by subtracting the output of the element of FIG. In the example, it is possible to eliminate the need to divide the variable resistance elements 41-11 to 41-NM).
  • the third circuit includes the analog-digital converters 261-1 to 261-M. It may be considered that it is done. That is, even if the analog-digital converters 261-1 to 261-M are regarded as circuits for adjusting the correction value, like the digital-analog converter 113 shown in FIG. 1 according to the first embodiment. Good.
  • the result calculated by the first calculation circuit of the second circuit and the result calculated by the third circuit are digital data.
  • the difference circuit of the fourth circuit is a digital circuit. Therefore, in the product-sum calculation unit 201 according to this embodiment, by converting the output of the array unit 12 into digital data, the product-sum calculation can be corrected by digital calculation.
  • the product-sum calculators 1 and 201 as described above or the neuromorphic device using the same can function as various sensors and the brain of a robot.
  • a signal output from the sensor is input to the control device using this neuromorphic device, it can function as an edge element.
  • a sensor signal generally has a lot of noise, and a general sensor module cannot extract a desired sensor signal from the noise. Therefore, a method of removing noise from the time-series signal of the sensor signal by using, for example, a signal processing technique and extracting a desired signal is used. In this case, the only thing other than the obtained signal is the consumption of energy and no information is produced.
  • High-accuracy recognition can be performed by inputting a sensor signal to a control device using this neuromorphic device.
  • it is extracted as meaningful information for the first time by separating an observation signal in which noise is superimposed on a source signal into a source signal and noise, but with this controller, the source signal desired to be obtained from a time-series signal containing noise Can be predicted, and can be extracted as a meaningful signal even if the output intensity or statistical value of the source signal is small.
  • This is a module in which a sensor and a control device are integrated, and can be an AI Edge sensor module.
  • the signals of a plurality of sensors By inputting the signals of a plurality of sensors at the same time, it is possible to gain an awareness of the relationship between the sensors. For example, when sensors are installed on the hands, feet, and torso of a robot and signals from the sensors are simultaneously input to the control device, the signals compositely provide information such as whether the robot is walking or falling. You can judge. Furthermore, in robots, vehicles, etc., where multiple AI Edge sensor modules are installed, it is possible to expect more power saving and higher functionality by simultaneously inputting signals to this control device. When the plurality of sensors are different types of sensors, it is necessary to install a control device corresponding to the voltage or current that can correspond to each sensor.
  • a transformer, an analog-digital converter (ADC) or the like is required for the interface of the control device, and energy is consumed by energy conversion.
  • Energy is similarly consumed in the AI Edge sensor module, but the signal output from the AI Edge sensor module to the central control unit has been recognized and identified by the AI Edge sensor module to a certain degree, and only the necessary information is required. Can be sent.
  • a program for realizing the function of each unit is recorded in a computer-readable recording medium (storage medium), and is recorded in this recording medium.
  • the processing may be performed by reading the program into a computer system and executing the program.
  • the “computer system” may include an operating system (OS) or hardware such as peripheral devices.
  • the "computer-readable recording medium” means a writable nonvolatile memory such as a flexible disk, a magneto-optical disk, a ROM (Read Only Memory), a flash memory, a portable medium such as a DVD (Digital Versatile Disc), and the like.
  • a storage device such as a hard disk built in a computer system.
  • the recording medium may be, for example, a recording medium that temporarily records data.
  • the "computer-readable recording medium” means a volatile memory (for example, DRAM (DRAM (DRAM) inside the computer system which becomes a server or a client when the program is transmitted through a network such as the Internet or a communication line such as a telephone line). Dynamic Random Access Memory)) which holds the program for a certain period of time.
  • the above program may be transmitted from a computer system that stores the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium.
  • the "transmission medium” for transmitting the program means a medium having a function of transmitting information such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
  • the above program may be a program for realizing a part of the functions described above. Further, the above program may be a so-called difference file (difference program) that can realize the above-described functions in combination with a program already recorded in the computer system.
  • difference file difference program
  • the sum-of-products arithmetic unit According to the sum-of-products arithmetic unit, the sum-of-products arithmetic method, the logical operation device, and the neuromorphic device of the present invention, the sum-of-products arithmetic in which weights having a positive value and weights having a negative value are mixed is easily realized. be able to.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Amplifiers (AREA)

Abstract

複数のデータのそれぞれに応じた信号を生成する第1回路と、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、を備える積和演算器。

Description

積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
 本発明は、積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスに関する。
 例えば、ニューラルネットワークなどの回路において、積和演算が行われている。このような積和演算をアナログ的に実行する技術の研究が進められている。当該技術では、抵抗が変化する素子(説明の便宜上、「可変抵抗素子」ともいう。)を使用する構成が検討されている。特に、良好な特性を有する素子として、抵抗が線形に変化する可変抵抗素子の使用が検討されている。
 このような可変抵抗素子として、近年、アナログ的にコンダクタンス(抵抗の逆数)が変化するニューロモーフィック(Neuromorphic)素子が注目されている。ニューロモーフィック素子を利用して、積和演算を低電力で高速に実行することが可能な新たな演算機構が研究されている。
 より具体的には、信号線および可変抵抗素子を用いたアレイによって、ニューラルネットワークの層間の結合を表す回路が実現される。例えば、パルス長あるいは電圧に応じて変調させられた入力信号がアレイに印加される構成とされる。そして、所定の信号線に流れる電流量を積和演算の結果として使用する構成とされる。このような構成では、アレイは、アナログ積和演算器を構成する回路として機能する。なお、デジタル積和演算器を構成する回路として機能するアレイを構成することも可能である。
 例えば、ニューラルネットワークでは、結合の重みが負の値を持つことがある。このようなニューラルネットワークにおけるアレイによる積和演算を実現するためには、正の値を持つ重みと負の値を持つ重みを表現することが必要である。
 ここで、可変抵抗素子は負のコンダクタンスを持つことができないため、積和演算器において、負の値を持つ重みを表現する工夫が為されている。
 一例として、特許文献1に記載された積和演算装置では、正の値を持つ重みと負の値を持つ重みとで素子列を分離し、これらの重みとして絶対値を割り当て、重みの乗算後に、正の素子列の結果と負の素子列の結果との差分を計算する構成が用いられている(特許文献1参照。)。
国際公開第2018/034163号
 しかしながら、特許文献1に記載された技術では、例えば、重みの正負の符号によって別の素子列を割り当てる機構が必要になり、当該機構および割り当ての制御が煩雑となる場合があった。
 また、特許文献1では、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を表現する構成について明らかにされておらず、正の値を持つ重みと負の値を持つ重みとが混在する場合に積和演算を表現する集積回路を実装する構成が明らかでなかった。
 なお、他の構成例として、それぞれの重みに対して2個の素子を割り当てて、それぞれの重みに対して2個の素子によって正の値と負の値を記憶する構成が考えられる。しかしながら、このような構成では、それぞれの重みに対して2個の素子が必要になることから、アレイの物理的なサイズが大きくなること、正負の符号に応じた割り当ての回路が必要になること、あるいは、どちらかの素子が故障するだけで重みとして機能しなくなるため、大規模アレイ化した場合にはアレイの歩留まり低下やそれに対する冗長領域を設けるなどの策が必要になる、などの課題が発生する。
 本発明は、このような事情を考慮してなされたもので、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスを提供することを課題とする。
 本発明の一態様は、複数のデータのそれぞれに応じた信号を生成する第1回路と、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、を備える積和演算器である。
 本発明の一態様は、積和演算器において、前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、アナログ信号であり、前記第4回路の前記差分回路は、アナログ回路である。
 本発明の一態様は、積和演算器において、前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、デジタルデータであり、前記第4回路の前記差分回路は、デジタル回路である。
 本発明の一態様は、積和演算器において、前記複数の前記可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}とを乗算した結果である。
 本発明の一態様は、積和演算器において、前記複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}との積に第1係数を乗算した結果と第2係数との和に相当する。
 本発明の一態様は、積和演算器において、前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じたパルス幅変調信号を生成することである。
 本発明の一態様は、積和演算器において、前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じた振幅変調信号を生成することである。
 本発明の一態様は、積和演算器において、前記第2回路は、複数の前記第1演算回路を有し、前記第4回路は、前記複数の前記第1演算回路のそれぞれごとに前記差分回路を有する。
 本発明の一態様は、積和演算器において、前記複数の前記データは、時系列の順に前記第3回路に入力され、前記第3回路は、前記時系列の順に、前記複数の前記データのそれぞれに応じた値を加算する。
 本発明の一態様は、積和演算器において、前記可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である。
 本発明の一態様は、第1回路と第2回路と第3回路と第4回路を備え、前記第2回路は第1演算回路を有し、前記第4回路は差分回路を有する積和演算器において行われる積和演算方法であって、前記第1回路が、複数のデータのそれぞれに応じた信号を生成し、前記第2回路の前記第1演算回路が、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算し、前記第3回路が、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算し、前記第4回路の前記差分回路が、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する。
 本発明の一態様は、以上のようないずれかの積和演算器を含み、論理演算を実行する、論理演算デバイスである。
 本発明の一態様は、以上のようないずれかの積和演算器を含み、積和演算器の可変抵抗素子は、ニューロモーフィック素子である、ニューロモーフィックデバイスである。
 本発明の一態様によれば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
本発明の実施形態(第1実施形態)に係る積和演算器の概略的な構成を示す図である。 本発明の実施形態に係る理論値の具体例を示す図である。 本発明の実施形態に係る実測値シミュレーションの具体例(電圧に対する補正)を示す図である。 本発明の実施形態に係る実測値シミュレーションの具体例(電荷量に対する補正)を示す図である。 本発明の実施形態(第2実施形態)に係る積和演算器の概略的な構成を示す図である。
 以下、図面を参照し、本発明の実施形態について説明する。
 (第1実施形態)
 [積和演算器の構成]
 図1は、本発明の実施形態(第1実施形態)に係る積和演算器1の概略的な構成を示す図である。
 積和演算器1は、入力部11と、アレイ部12と、変換部13と、出力部14を備える。
 また、図1には、積和演算器1の制御を行う制御部15を示してある。本実施形態では、制御部15は、積和演算器1とは別の機能部として構成されている。この場合、積和演算器1および制御部15は、例えば、所定の装置(例えば、積和演算装置)あるいは所定のシステム(例えば、積和演算システム)に含まれると捉えられてもよい。他の例として、制御部15は、積和演算器1と一体として構成されてもよい。この場合、積和演算器1は制御部15を備えると捉えられてもよい。
 本実施形態では、アレイ部12は、N行M列のアレイから構成されている。本実施形態では、Nは2以上の整数であり、Mは2以上の整数である。なお、図1の例では、図示の便宜上、Nが3以上の整数である場合を示すが、Nは2であってもよい。また、本実施形態では、複数行複数列のアレイを示すが、他の例として、Mは1であってもよく、つまり、複数行1列のアレイが用いられてもよい。
 ここで、積和演算器1では、複数の回路素子が信号線で接続されている。本実施形態では、説明の便宜上、一部の信号線について符号を付して説明し、他の信号線については符号および詳しい説明を省略する。
 なお、有線で信号を伝送する信号線の代わりに、無線で信号を伝送する構成が用いられてもよい。
 入力部11は、N行分に相当するN個の入力レジスタ31-1~31-Nと、N行分に相当するN個の入力信号生成回路32-1~32-Nと、信号線33を備える。ここで、入力信号生成回路32-1~32-Nは、例えば、出力バッファ、もしくは、入出力バッファの様なドライバ回路とその前段の変調回路との組み合わせを有してもよい。その場合、入力信号生成回路32-1~32-Nの変調回路の役割は、入力信号用の源信号(図示せず)から入力レジスタ31-1~31-Nの値によって変調した信号をドライバ回路に出力することになる。
 アレイ部12は、(N×M)行分に相当する(N×M)個の可変抵抗素子41-11~41-NMと、M列分に相当するM個の信号線42-1~42-Mを備える。
図1の例では、可変抵抗素子41-ijが、i行j列の可変抵抗素子を表している。iは1以上N以下の整数であり、jは1以上M以下の整数である。図1の例では、アレイ部12において、行方向(図1では縦方向)にN個並んだ可変抵抗素子の系統が、列方向(図1の例では横方向)にM個並んでいる。本実施形態では、説明の便宜上、i、jを用いて説明する場合ある。
 本実施形態では、それぞれの可変抵抗素子41-ijは、ニューロモーフィック素子である。
 それぞれの可変抵抗素子41-ijは、例えば、不揮発性素子であってもよい。
 それぞれの可変抵抗素子41-ijは、例えば、磁気抵抗効果を示す磁気抵抗効果素子であってもよい。磁気抵抗効果素子は、スピンを利用して抵抗を変化させる素子であってもよい。
 例えば、コンダクタンスの変化において線形性を有する磁気抵抗効果素子が知られている。このような磁気抵抗効果素子では、例えば、コンダクタンスを変化させる物理量(当該磁気抵抗効果素子が有する2つの強磁性層の磁化の関係)の変化に応じて、コンダクタンスが線形に変化する。また、このような磁気抵抗効果素子では、コンダクタンスの変化において対称性を有するものが知られている。当該対称性は、コンダクタンスの増大の仕方と当該コンダクタンスの減少の仕方との間の対称性である。すなわち、コンダクタンスが一の値から他の値へ増大する場合における当該コンダクタンスの変化率の絶対値と、当該コンダクタンスが当該他の値から当該一の値へ減少する場合における当該コンダクタンスの変化率の絶対値とは、誤差による違いを除いて、一致する。このように、それぞれの可変抵抗素子41-ijとしては、コンダクタンスの変化において線形性および対称性を有する磁気抵抗効果素子が用いられることが好ましい。
 なお、ニューロモーフィック素子としては、任意の素子が用いられてもよい。また、ニューロモーフィック素子としては、例えば、1種類のニューロモーフィック素子が複数組み合わされて用いられてもよく、あるいは、2種類以上のニューロモーフィック素子が組み合わされて用いられてもよい。一例として、ニューロモーフィック素子として、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子が用いられてもよい。他の例として、ニューロモーフィック素子として、電気化学的反応により金属析出とイオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge Random Access Memory)を使用する素子が用いられてもよい。他の例として、ニューロモーフィック素子として、スピントロニクス(Spintronics)を使用する素子が用いられてもよく、例えば、磁壁の制御による線形的抵抗変化を発生させるドメインウォール型の素子、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子が用いられてもよい。他の例として、ニューロモーフィック素子として、TaO等の媒体に金属析出によるフィラメントを形成して抵抗変化を利用するReRAM(Resistive Random Access Memory)を使用する素子が用いられてもよい。
 変換部13は、加算回路111と、調整回路112と、デジタルアナログ変換器(DAC:Digital Analog Converter)113を備える。出力部14は、M列分に相当するM個の検出回路61-1~61-Mと、M行分に相当するM個の差分回路131-1~131-Mと、M列分に相当するM個の出力端151-1~151-Mを備える。M個の差分回路131-1~131-Mのそれぞれは、例えば、差動回路であってもよく、一例として、オペアンプであってもよい。
 ここで、本実施形態では、説明の便宜上、積和演算器1における各回路を幾つかの機能部(例えば、入力部11、アレイ部12、変換部13、出力部14)に区分して説明するが、このような区分は一例であって、他の任意の区分が用いられてもよい。また、このような区分は、必ずしも用いられなくてもよい。
 [積和演算器における各回路の機能および動作]
 積和演算器1における各回路の機能および動作の例を説明する。
 N個の入力レジスタ31-1~31-Nのそれぞれに、外部の装置から入力されるデータ(説明の便宜上、「入力データ」ともいう。)が記憶される。当該データは、デジタルデータ(「デジタル信号」と呼ばれてもよい。)である。
 ここで、当該外部の装置は、任意の装置であってもよい。当該外部の装置は、例えば、データを記憶する記憶装置であってもよく、あるいは、データを出力するコンピュータやセンサなどの素子であってもよい。当該外部の装置は、積和演算器1により演算を行う対象となるデータを、N個の入力レジスタ31-1~31-Nのそれぞれに入力する。本実施形態では、積和演算器1へ入力されるデータは、N行分に相当するN個のデータの組み合わせである。なお、積和演算器1へのデータの入力としては、例えば、外部の装置が主導して当該データを積和演算器1に入力してもよく、あるいは、積和演算器1が主導して外部の装置から当該データを入力してもよい。
 i行目の入力レジスタ31-iは、記憶されたデータを、i行目の入力信号生成回路32-iに出力する。ここで、本実施形態では、N個の入力レジスタ31-1~31-Nのそれぞれは、これらN個の入力レジスタ31-1~31-Nについて時系列の順に入力されたN個のデータのそれぞれを、時系列の順に出力する。これにより、本実施形態では、積和演算器1へ入力されるN行分のN個のデータの組み合わせは、その組み合わせのまま処理されていく。なお、このような処理が実現されれば、N個の入力レジスタ31-1~31-Nのそれぞれにデータが入力されるタイミング、あるいは、N個の入力レジスタ31-1~31-Nのそれぞれからデータが出力されるタイミングとしては、任意のタイミングが用いられてもよい。
 N個の入力レジスタ31-1~31-Nのそれぞれから出力されるデータは、加算回路111にも伝送される。本実施形態では、N個の入力レジスタ31-1~31-Nのそれぞれから出力されるデータが同一の信号線33に入力されて、当該信号線33を介して、加算回路111に伝送される。
 ここで、それぞれの入力レジスタ31-1~31-Nは、例えば、所定の範囲の値をカウント値として記憶する機能を有する。当該所定の範囲は、任意の範囲であってもよく、例えば、0~255の256個の値の範囲であってもよい。この場合、入力データは、例えば、当該所定の範囲と同じ範囲の値、あるいは、当該所定の範囲よりも狭い範囲の値とされる。本実施形態では、当該カウント値に応じて生成されるパルス幅変調(PWM:Pulse Width Modulation)の信号のパルスの波形の長さ(パルス長)が当該カウント値に相当する。当該カウント値は、入力データの値、あるいは、入力データの値が換算された値であると捉えられてもよい。
 i行目の入力信号生成回路32-iは、i行目の入力レジスタ31-iから入力されたデータに基づいて、アレイ部12に入力させる信号(説明の便宜上、「入力信号」ともいう。)を生成する。具体的には、i行目の入力信号生成回路32-iは、入力されたデータの値に相当する幅(パルス長)を有する信号(パルス幅変調信号)を、入力信号として、生成する。そして、i行目の入力信号生成回路32-iは、生成された入力信号を、アレイ部12におけるi行目にあるM個の可変抵抗素子41-i1~41-iMのそれぞれに出力する。
 ここで、図1には、N個の入力信号生成回路32-1~32-Nのそれぞれによって生成される入力信号1011-1~1011-Nの例を示してある。図1における入力信号1011-1~1011-Nの形状およびタイミングは概略であって、必ずしも正確ではない。それぞれの入力信号1011-1~1011-Nは、電圧のパルスの信号である。本実施形態では、当該パルスの高さ(電圧の値)は、同じ(一定)である。それぞれの入力信号生成回路32-1~32-Nは、例えば、所定の時間単位で処理を行う。当該所定の時間単位は、例えば、10[ns]、あるいは、10[μs]などであってもよい。
 i行目にあるM個の可変抵抗素子41-i1~41-iMのそれぞれには、i行目の入力信号生成回路32-iから出力される入力信号が入力される。また、i行目にあるM個の可変抵抗素子41-i1~41-iMのそれぞれは、入力された入力信号の電圧と当該可変抵抗素子41-i1~41-iMの抵抗値によって決まる電流を出力する。
 j列目にあるN個の可変抵抗素子41-1j~41-Njのそれぞれは、列ごとに共通となっている同一の信号線42-jに電流を出力する。本実施形態では、j列目にあるN個の可変抵抗素子41-1j~41-Njのそれぞれから出力される電流が同一の信号線42-jに入力されて、当該信号線42-jを介して、j列目の検出回路61-jに流れる。
 ここで、それぞれの可変抵抗素子41-11~41-NMのコンダクタンスの値によって重みが実現される。つまり、それぞれの可変抵抗素子41-11~41-NMでは、入力信号である電圧のパルスと重みとの乗算結果に相当する電流が出力される。当該電流は、オームの法則によって、入力信号と重み(本実施形態では、コンダクタンスの値)との積が演算された結果であると捉えられる。この場合、それぞれの可変抵抗素子41-11~41-NMは、積演算部であると捉えられる。コンダクタンスは抵抗の逆数を表すことから、それぞれの可変抵抗素子41-11~41-NMは、2以上の異なる抵抗値を取り得ることから、2以上の異なるコンダクタンスの値を取り得る。
 また、列ごとに共通な信号線(j列目では、信号線42-j)では、N個の可変抵抗素子(j列目では、N個の可変抵抗素子41-1j~41-Nj)から出力される電流が伝送される。これにより、列ごとの検出回路(j列目では、検出回路61-j)において、これらの電流の和を演算することが可能になる。つまり、j列目における積和演算が実現される。
 このような積和演算の動作が、M列のすべてについて行われることで、M列の積和演算が実現される。
 加算回路111は、信号線33から入力されたデータを加算する。すなわち、加算回路111は、N個の入力レジスタ31-1~31-Nのそれぞれから出力されたデータをデジタル演算により加算する。加算回路111は、加算結果のデータを調整回路112に出力する。本実施形態では、加算回路111は、N個の入力レジスタ31-1~31-Nのそれぞれから時系列順で出力されたデータを順に加算することで、N個の入力信号生成回路32-1~32-Nのカウント値の総和を演算する。
 なお、本実施形態では、加算回路111は、N個の入力レジスタ31-1~31-Nのそれぞれから出力されたデータのすべてを加算する場合を示したが、他の例として、例えば、0の値を有するデータについては加算回路111による加算対象から除外する構成が用いられてもよい。つまり、加算回路111では、0の値を有するデータが加算対象から除外されても、加算結果は同じになる。
 調整回路112は、加算回路111から入力されたデータに対して所定の演算を行うことで所定の調整を行い、調整後のデータ(演算後のデータ)をデジタルアナログ変換器113に出力する。当該所定の調整は、例えば、入力されたデータに所定の係数を乗算する演算、入力されたデータに所定の係数を加算する演算、あるいは、入力されたデータに所定の係数を演算した結果に所定の係数を加算する演算などであってもよい。
 デジタルアナログ変換器113は、調整回路112から入力されたデータをデジタルデータからアナログ信号へ変換し、変換されたアナログ信号を、M個の差分回路131-1~131-Mのそれぞれに出力する。当該アナログ信号では、当該デジタルデータの値が当該アナログ信号の電圧の値に反映されている。つまり、デジタルアナログ変換器113は、入力されたデジタルデータを、あらかじめ定められた範囲のアナログ信号へ変換する。当該範囲は、例えば、ダイナミックレンジと呼ばれてもよい。デジタルアナログ変換器113では、例えば、入力されるデジタルデータの値と、出力されるアナログ信号とが、線形に、1対1で、対応する。
 デジタルアナログ変換器113から出力されるアナログ信号は、例えば、式(1)により表される。なお、デジタルアナログ変換器113によるデジタルアナログ変換が1対1の変換である場合、式(1)は、調整回路112から出力される調整後のデータを間接的に表すと考えることもできる。
 式(1)におけるパラメータであるVc、Pr、Vr、Gm、Cdを説明する。Vcは、デジタルアナログ変換器113から出力されるアナログ信号の電圧を表す。Prは、r行目の入力レジスタ31-rから出力されるデータの値を表す。当該値は、r行目の入力信号生成回路32-rから出力されるパルス幅変調信号のパルスの幅に相当する。rは1以上N以下の整数である。Vrは、r行目の入力信号生成回路32-rから出力されるパルス幅変調信号の電圧を表す。本実施形態では、すべての入力信号生成回路32-1~32-Nから出力されるパルス幅変調信号の電圧は同じである。
 Σ(Pr×Vr)は、rが1からNまでの値をとるときにおける(Pr×Vr)の総和を表す。なお、本実施形態では、Vrが一定であるため、Σ(Pr×Vr)は、{(ΣPr)×Vr}と等しくなる。本実施形態では、Prの総和は、加算回路111によって演算される。そして、当該総和以外の演算が調整回路112およびデジタルアナログ変換器113によって行われる。
 Gmは、可変抵抗素子41-11~41-NMのコンダクタンスの可変な範囲の中心値を表す。本実施形態では、理想的な場合を想定しており、すべての可変抵抗素子41-11~41-NMについて、コンダクタンスの可変な範囲は同じであるとする。なお、実際には、可変なコンダクタンスの範囲がまったく同じすべての素子を製造することは困難であるため、例えば、現実的な手法として、ビット線を共有するすべての素子に共通に適用することが可能なコンダクタンスの範囲を設定する。
 Cdは、検出回路61-1~61-Mを構成するコンデンサの容量を表す。本実施形態では、すべての検出回路61-1~61-Mについて、コンデンサの容量は同じである。K1およびK2は、それぞれ、係数を表す。これらの係数K1、K2は、例えば、実際の回路素子に発生する個体差などによるばらつきの誤差、あるいは、温度変動などによる誤差を補正するための係数である。係数K1はゲインの補正を行う係数であり、係数K2はオフセットの補正を行う係数である。なお、係数K1と係数K2とのうちの一方または両方が使用されない構成が用いられてもよい。
Figure JPOXMLDOC01-appb-M000001
 ここで、係数K1および係数K2は、例えば、あらかじめ積和演算器1における演算結果を実測した結果あるいは他の参考となる情報に基づいて、調整回路112による調整の仕方、あるいは、デジタルアナログ変換器113の特性のうちの一方または両方に反映されてもよい。調整回路112には、例えば、あらかじめ、調整前のデータから調整後のデータを演算する手法が設定される。当該手法は、例えば、調整前のデータから調整後のデータを演算する式の情報を用いて特定されてもよい。
 また、係数K1および係数K2が使用されない構成が用いられてもよい。この場合、デジタルアナログ変換器113から出力されるアナログ信号は、例えば、式(2)により表される。式(2)は、式(1)において係数K1を1に、係数K2を0に設定した場合と同等である。
Figure JPOXMLDOC01-appb-M000002
 ここで、本実施形態では、加算回路111と調整回路112との両方によって、総じて、あらかじめ定められた演算を行う。本実施形態では、加算回路111と調整回路112とに分けて当該演算を行う構成を示したが、他の例として、1個の回路によって同様な演算を行う構成、あるいは、2個以上の任意の回路の組み合わせによって同様な演算を行う構成が用いられてもよい。
 j列目の検出回路61-jは、j列目にあるN個の可変抵抗素子41-1j~41-Njのそれぞれから同一の信号線42-jに出力された電流を総和する。j列目の検出回路61-jは、総和された電流の総和結果に応じた電圧を有するアナログ信号を、j列目の差分回路131-jに出力する。
 ここで、本実施形態では、M個の検出回路61-1~61-Mのそれぞれは、コンデンサを用いて構成されている。j列目の検出回路61-jでは、j列目にあるN個の可変抵抗素子41-1j~41-Njのそれぞれから同一の信号線42-jに出力された電流によって、当該コンデンサに電荷が蓄えられる。当該電荷は、当該電流の総和に比例する。j列目の検出回路61-jは、総和された電流の総和結果に応じた電圧を有するアナログ信号として、当該コンデンサに蓄えらえた電荷に応じた電圧を有するアナログ信号を、j列目の差分回路131-jに出力する。なお、本実施形態では、M個の検出回路61-1~61-Mについて、それぞれの検出回路61-1~61-Mのコンデンサの容量は同じである。
 M個の検出回路61-1~61-Mのそれぞれは、それぞれの信号線(j列目の検出回路61-jの場合は、信号線42-j)に流れる電流量の総和を電圧へ変換するQV変換回路であると捉えられてもよい。
 j列目の差分回路131-jは、一の入力端であるプラス端子(+端子)と、他の入力端であるマイナス端子(-端子)と、出力端を有する。 j列目の差分回路131-jは、j列目の検出回路61-jから出力されたアナログ信号をプラス端子から入力し、デジタルアナログ変換器113から出力されたアナログ信号をマイナス端子から入力する。j列目の差分回路131-jは、プラス端子の入力信号からマイナス端子の入力信号を減算した結果の信号を出力端から出力する。当該信号は、j列目の出力端151-jに出力される。当該信号は、アナログ信号である。本実施形態では、j列目の差分回路131-jは、入力された2個の信号の電圧の差分に相当する電圧を有する信号を出力する。本実施形態では、当該差分は、プラス端子の入力信号からマイナス端子の入力信号を減算した結果である。
 j列目の出力端151-jは、j列目の差分回路131-jから入力された信号を出力する。
 ここで、当該信号は、任意の用途で使用されてもよい。一例として、当該信号は、ニューラルネットワークにおける積和演算結果を使用する回路(図示せず)に入力されて使用されてもよい。
 なお、本実施形態では、検出回路61-1~61-Mおよび差分回路131-1~131-Mとしては、M列の各列に対して1組の回路を割り当てて説明したが、必ずしも列と同じ数の回路の組が備えられる必要はない。例えば、M列の各列に対して、1個の検出回路および1個の差分回路を時分割で割り当てて、多重化することも可能である。
 制御部15は、(N×M)個の可変抵抗素子41-11~41-NMのそれぞれの重みを制御する。制御部15は、例えば、それぞれの可変抵抗素子41-11~41-NMの制御端子に印加される電圧の値あるいはそれぞれの可変抵抗素子41-11~41-NMに与える磁場(磁界)を制御することで、それぞれの可変抵抗素子41-11~41-NMの重みを制御する。当該重みは、コンダクタンスに応じた値(あるいは、抵抗に応じた値と捉えられてもよい。)であり、制御部15による制御に応じて変化し得る。制御部15は、それぞれの可変抵抗素子41-11~41-NMの重みを、変化可能な範囲で、所望の値に変化させることができる。また、制御部15は、積和演算器1における任意の設定値を設定してもよい。このような設定としては、例えば、初期設定であってもよく、あるいは、既に設定されている値を変更する設定であってもよい。当該設定値に、式(1)および式(2)に含まれる1以上のパラメータが含まれてもよい。
 [アレイ部における負の重み]
 本実施形態に係る積和演算器1では、それぞれの検出回路61-1~61-Mによる検出結果を補正することで、積和演算のアレイにおいて負の重みが用いられる場合と同じ演算結果(または、同じではないが相関のある演算結果でもよく、以下も同様。)を演算することが可能である。つまり、(N×M)個の可変抵抗素子41-11~41-NMのそれぞれでは正のコンダクタンス(正の抵抗値)を取り得るが、負のコンダクタンス(負の抵抗値)を取ることができない。このため、本実施形態に係るアレイ部12の構成だけでは、負の重みを表現することができない。そこで、本実施形態では、それぞれの検出回路61-1~61-Mによる検出結果を補正することで、負の重みが用いられる場合を表現することを可能にしている。なお、本実施形態では、正のコンダクタンス(正の抵抗値)によって表現され得る重みを、正の重み(正の値を持つ重み)としている。そして、このような正の重みに対して正負の符号が逆になった重みを、負の重み(負の値を持つ重み)としている。
 [理論値の具体例]
 図2は、本発明の実施形態に係る理論値の具体例を示す図である。
 図2には、理論値の具体例が記述されたテーブル2011を示してある。
 テーブル2011の内容について説明する。テーブル2011には、2つのケースとして、ケース1(テーブル2011における“Case1”)と、ケース2(テーブル2011における“Case2”)が示されている。
 ケース1について説明する。本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41-1j~41-5jが備えられている場合を例として示す。テーブル2011において、5個の可変抵抗素子41-1j~41-5jが、行数を表す“1”~“5”(i=1~5)で示されている。テーブル2011において、“1”~“5”についての総和結果が“sum”に示されている。テーブル2011において、入力データの値が“入力”で示されている。
 テーブル2011において、正の値を持つ重みと負の値を持つ重みが用いられて、本実施形態における積和演算の補正が行われないときの数値の例が“計算上の重み”に示されている。“計算上の重み”において、“重み”には、5個の可変抵抗素子41-1j~41-5jのそれぞれの重みの値が示されている。本例では、5個の可変抵抗素子41-1j~41-5jのそれぞれの重みは、-0.5以上+0.5以下の範囲の値を取る。また、“計算上の重み”において、“積和演算”には、5個の可変抵抗素子41-1j~41-5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。
 テーブル2011において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“重みを正値にシフト”に示されている。“重みを正値にシフト”において、“重み”には、5個の可変抵抗素子41-1j~41-5jのそれぞれのシフト後の重みの値が示されている。本例では、“計算上の重み”における“重み”に+0.5を加算した結果が、“重みを正値にシフト”における“重み”となっている。つまり、本例では、5個の可変抵抗素子41-1j~41-5jのそれぞれの重みは、+0.5シフトされることで、0.0以上+1.0以下の範囲の値を取る。また、“重みを正値にシフト”において、“積和演算”には、5個の可変抵抗素子41-1j~41-5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。なお、このような重みのシフトの情報は、例えば、あらかじめ、制御部15に設定されてもよい。つまり、制御部15は、シフトされた重みとなるように、それぞれの可変抵抗素子41-11~41-NM(本例では、可変抵抗素子41-1j~41-5j)の重みを制御してもよい。
 “重みを正値にシフト”における“積和演算”の積和演算結果(“sum”の欄)である“1.55”は、“計算上の重み”における“積和演算”の積和演算結果(“sum”の欄)である“0.3”に対して、“入力”の総和である“2.5”を1/2倍した結果である“1.25”シフトしている。つまり、“重みを正値にシフト”における“積和演算”の積和演算結果である“1.55”に対して、このようなシフトと逆のシフト(つまり、“-1.25”のシフト)を与えると、“計算上の重み”における“積和演算”の積和演算結果である“0.3”が得られる。本実施形態では、変換部13および差分回路131-1~131-Mによって、このような逆のシフトを行う。このような逆のシフトを行うための情報が、例えば、あらかじめ、変換部13の調整回路112およびデジタルアナログ変換器113に設定されてもよい。
 このように、負の値を持つ重みと正の値を持つ重みが混在する場合に、これらの重みのすべてが正の値を持つように、すべての重みに所定値A1(A1は所定の正の値)を加算すると、正の値(0があってもよい)を持つ重みだけが存在する場合の演算とすることができる。また、このような演算の結果から所定値B1(B1は所定の正の値)を減算することで、元の場合つまり負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果と同じ演算結果を得ることができる。
 本実施形態に係る積和演算器1では、このような原理を利用している。つまり、アレイ部12によって、“重みを正値にシフト”に相当する積和演算を行う。また、変換部13および差分回路131-1~131-Mによって、元の場合つまり負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果を得るための補正を行う。本実施形態に係る積和演算器1では、可変抵抗素子41-11~41-NMを使用して、変換後の重み(シフト後の重み)に対する積和演算をアナログ的に実行し、その結果に対して補正を行うことで、負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果を得ることが可能である。
 なお、テーブル2011におけるケース2についても、ケース1と同様な記述の仕方となっている。ケース2では、ケース1とは異なる数値の例が示されている。
 ここで、テーブル2011におけるケース1およびケース2は、例えば、5次元(テーブル2011における“1”~“5”)の入力を持つ1層のニューラルネットにおける積和演算を表す。“計算上の重み”の情報は、負の値を持つ重みと正の値を持つ重みが混在する場合に計算機で計算したシミュレーションの結果の情報を表す。“重みを正値にシフト”の情報は、正の値(0があってもよい)を持つ重みだけが存在するようにシフトされた場合に計算機で計算したシミュレーションの結果の情報を表す。
 [実測値シミュレーションの具体例:電圧に対する補正]
 図3は、本発明の実施形態に係る実測値シミュレーションの具体例(電圧に対する補正)を示す図である。図3には、実測値のシミュレーションが行われた結果の具体例(電圧に対する補正)が記述されたテーブル2021が示されている。ここで、図2の例は理論的な例であり、図3の例は実測値の例である。このため、図3の例では、理論的な値からずれた数値を取り得る。また、計算上の有効桁数の関係で、多少の計算誤差が発生し得る。
 テーブル2021の内容について説明する。テーブル2021には、2つのケースとして、ケース1(テーブル2021における“Case1”)と、ケース2(テーブル2021における“Case2”)が示されている。
 ケース1について説明する。
 本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41-1j~41-5jが備えられている場合を例として示す。テーブル2021において、5個の可変抵抗素子41-1j~41-5jが、行数を表す“1”~“5”(i=1~5)で示されている。テーブル2021において、“1”~“5”についての総和結果が“sum”に示されている。テーブル2021において、入力データの値が“入力”で示されている。本例では、入力データのレンジが0~1の範囲となっている。
 テーブル2021において、正の値を持つ重みと負の値を持つ重みが用いられて、本実施形態における積和演算の補正が行われないときの数値の例が“計算機での計算”に示されている。“計算機での計算”において、“重み”には、5個の可変抵抗素子41-1j~41-5jのそれぞれの重みの値が示されている。本例では、重みのレンジが-1~+1の範囲となっている。また、“計算機での計算”において、“積和演算”には、5個の可変抵抗素子41-1j~41-5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。本例では、積和演算の結果のレンジが-5~+5の範囲となっている。
 テーブル2021において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“ニューロモーフィックアレイを使用した計算”に示されている。 “ニューロモーフィックアレイを使用した計算”において、“入力特性”、“素子”、“アレイ出力”、“容量”、“電圧出力”、“電圧補正”、“規格化”が示されている。
 “入力特性”は、入力データに関する情報を表す。“入力特性”において、“カウント値”、“パルス幅(ns)”、“E(V)”が示されている。“カウント値”は、入力データの値を表す。本例では、当該値は、パルス状の波の長さ(パルス幅)を決める値に相当する。“パルス幅”は、パルス幅変調信号である入力信号のパルス幅を表す。本例では、“パルス幅”は、例えば、単位パルス幅を10(ns)に設定している場合、“カウンタ値”の10倍の値となる。
 “E(V)”は、パルス幅変調信号である入力信号の電圧を表す。本例では、当該電圧は一定である。
 “素子”は、可変抵抗素子41-1j~41-5jに関する情報を表す。“素子”において、“G(μS)”が示されている。“G(μS)”は、5個の可変抵抗素子41-1j~41-5jのそれぞれのコンダクタンスの値を表す。本例では、コンダクタンスのレンジが1(μS)~2(μS)の範囲となっている。
 “アレイ出力”は、アレイ部12からの出力および検出回路61-jに関する情報を表す。“アレイ出力”において、“I(μA)”、“Q(C)”が示されている。
 “I(μA)”は、5個の可変抵抗素子41-1j~41-5jのそれぞれから出力される電流を表す。本例では、各電流のレンジが0.2(μA)~0.4(μA)の範囲となっている。本例では、電流の合計値のレンジが1(μA)~2(μA)の範囲となっている。
 “Q(C)”は、検出回路61-jに蓄積される電荷量を表す。
 “容量”は、検出回路61-jに関する情報を表す。
 “容量”において、“C(F)”が示されている。
 “C(F)”は、検出回路61-jを構成するコンデンサの容量を表す。
 なお、テーブル2021では、便宜上、当該容量が“sum”の欄に記述されている。
 “電圧出力”は、検出回路61-jに関する情報を表す。
 “電圧出力”において、“出力電圧(μV)”が示されている。本例では、電圧出力のレンジが1275(μV)~2550(μV)の範囲となっている。
 “出力電圧(μV)”は、検出回路61-jから出力される電圧を表す。
 なお、テーブル2021では、便宜上、当該電圧が“sum”の欄に記述されている。
 “電圧補正”は、デジタルアナログ変換器113および差分回路131-jに関する情報を表す。
 “電圧補正”において、“Δ”、“出力電圧(μV)”が示されている。
 “Δ”は、デジタルアナログ変換器113から差分回路131-jに出力されるアナログ信号の電圧を表す。
 “出力電圧(μV)”は、差分回路131-jから出力される電圧を表す。
 なお、テーブル2021では、便宜上、当該Δおよび当該電圧が“sum”の欄に記述されている。
 “規格化”は、規格化に関する情報を表す。
 “規格化”において、“値レンジ:±5”が示されている。
 “値レンジ:±5”は、電圧と±5の値とを規格化した結果の値を表す。
 なお、テーブル2021では、便宜上、当該値が“sum”の欄に記述されている。
 ここで、“電圧補正”の電圧補正量である“Δ”の計算は、例えば、Δ={入力信号のパルスの長さの総和(s)}×(平均電流量)/(検出容量)、または、これに1以上の係数を含めた式で表される。当該係数としては、例えば、ゲインの係数とシフトの係数との一方または両方が用いられてもよい。
 また、規格化では、積和演算の結果に合わせることが行われる。
 本例では、補正後の電圧のレンジである-1275(μV)~+1275(μV)の範囲が、積和演算の結果のレンジである-5~+5に対応する。このため、“規格化”の演算は、規格化の結果の値=(補正後の電圧)/{2550(μV)/2}×5で表される。
 なお、テーブル2021におけるケース2についても、ケース1と同様な記述の仕方となっている。ケース2では、ケース1とは異なる数値の例が示されている。
 例えば、テーブル2021におけるケース1に示されるような数値に合った演算が行われるように、本実施形態に係る積和演算器1および制御部15に所定の設定値が設定されることで、テーブル2021におけるケース1に示されるような演算が実現される。
 また、テーブル2021におけるケース1に示される数値は一例であり、他の様々な数値に合った演算を積和演算器1により実現することが可能である。
 [実測値シミュレーションの具体例:電荷量に対する補正]
 図4は、本発明の実施形態に係る実測値シミュレーションの具体例(電荷量に対する補正)を示す図である。
 図4には、実測値のシミュレーションが行われた結果の具体例(電荷量に対する補正)が記述されたテーブル2031が示されている。
 ここで、図3の例では電圧に対する補正について説明したが、図4の例では電荷量に対する補正を説明する。
 図4の例では、j列目の検出回路61-jに蓄積される電荷量を補正することを想定する。
 一例として、積和演算器1において、j列目の検出回路61-jとj列目の差分回路131-jの組み合わせの代わりに、j列目の電流の総和(電荷量)の検出および補正を行う回路を備え、当該回路が、j列目の信号線42-jを流れてくる電流を蓄積し、変換部13から出力される電圧に応じた電荷量を蓄積された電流の総和(電荷量)から減算し、当該減算の結果に応じた電圧を有する信号をj列目の出力端151-jに出力することで、電荷量に対する補正が実現されてもよい。
 テーブル2031の内容について説明する。
 なお、図3に示されるテーブル2021と同様な部分については、詳しい説明を省略する。
 テーブル2031には、2つのケースとして、ケース1(テーブル2031における“Case1”)と、ケース2(テーブル2031における“Case2”)が示されている。
 ケース1について説明する。
 本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41-1j~41-5jが備えられている場合を例として示す。テーブル2031において、5個の可変抵抗素子41-1j~41-5jが、行数を表す“1”~“5”(i=1~5)で示されている。テーブル2031において、“1”~“5”についての総和結果が“sum”に示されている。
 テーブル2031における“入力”は、図3に示されるテーブル2021の場合と同様な情報を表す。テーブル2031において、正の値を持つ重みと負の値を持つ重みが用いられて、積和演算の補正が行われないときの数値の例が“計算機での計算”に示されている。テーブル2031における“計算機での計算”の“重み”および“積和演算” は、図3に示されるテーブル2021の場合と同様な情報を表す。
 テーブル2031において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“ニューロモーフィックアレイを使用した計算”に示されている。
 “ニューロモーフィックアレイを使用した計算”において、“入力特性”、“素子”、“アレイ出力”、“電荷量補正”、“容量”、“電圧出力”、“規格化”が示されている。
 テーブル2031において、“入力特性”の“カウント値”と“パルス幅(ns)”と“E(V)”、“素子”の“G(μS)”、“アレイ出力”の“I(μA)”と“Q(C)”、“容量”の“C(F)”、“規格化”については、図3に示されるテーブル2021の場合と同様な情報を表す。
 テーブル2031において、“電荷量補正”は、電荷量に対する補正に関する情報を表す。“電荷量補正”において、“Δ”、“補正後Q”が示されている。“Δ”は、デジタルアナログ変換器113から出力されるアナログ信号の電流の総和(電荷量)を表す。“補正後Q”は、補正後の電荷量を表す。
 テーブル2031において、“電圧出力”は、出力端151-jから出力される電圧に関する情報を表す。“電圧出力”において、“出力電圧(μV)”が示されている。“出力電圧(μV)”は、出力端151-jから出力される電圧の値を表す。
 テーブル2031に示されるように電荷量に対する補正が行われる場合においても、テーブル2021に示されるように電圧に対する補正が行われる場合と同様に、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を実現することができる。
 [入力信号の他の例]
 本実施形態では、入力信号生成回路32-1~32-Nによって、パルス幅変調の信号を生成する場合を示したが、他の例として、振幅変調の信号を生成してもよい。この場合、N個の入力信号生成回路32-1~32-Nのそれぞれは、入力されたデータの値に相当する振幅を有する振幅変調信号を、入力信号として、生成する。この場合、振幅変調信号の波形の高さが入力レジスタ31-1~31-Nのカウント値に相当する。
 ここで、入力信号としてパルス幅変調信号が生成される場合と、入力信号として振幅変調信号が生成される場合とで、時間(幅)について振幅を積分した結果は相関を持つ。例えば、それぞれの入力信号生成回路32-1~32-Nによって入力信号を生成する際の係数などを調整することで、入力信号としてパルス幅変調信号が生成される場合と、入力信号として振幅変調信号が生成される場合とで、時間(幅)について振幅を積分した結果を同じにすることが可能である。
 [変換部における調整回路の他の例]
 本実施形態では、変換部13に加算回路111と調整回路112とデジタルアナログ変換器113が備えられたが、他の例として、調整回路112が備えられなくてもよい。例えば、調整回路112による調整が行われなくても実用上で支障がない程度の精度が得られる場合には、調整回路112が備えられなくてもよい。つまり、変換部13は加算回路111とデジタルアナログ変換器113を備え、加算回路111からの出力がデジタルアナログ変換器113に入力されてもよい。なお、例えば、調整回路112による調整が行われないと十分な精度が得られないような場合には、調整回路112が備えられる構成が好ましい。例えば、実際の素子製造ばらつきや、回路の温度ドリフトなどを動的に補正する様な機構を調整回路112に設けてもよい。
 [第1実施形態のまとめ]
 以上のように、本実施形態に係る積和演算器1では、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。本実施形態に係る積和演算器1では、アナログ方式により、当該積和演算を行う。
 本実施形態に係る積和演算器1では、アレイ部12および検出回路61-1~61-Mによる積和演算の結果を補正することで負の重みを表現することが可能である。これにより、積和演算器1では、例えば、1個の可変抵抗素子41-11~41-NMごとに、正または負の値を持つ1個の重みを表現することができる。
 本実施形態では、好ましくは、可変抵抗素子41-11~41-NMとして、コンダクタンスの値の変化特性が対称性を有する素子が用いられる。当該素子は、例えば、スピンの対称性を利用する素子であってもよい。
 なお、従来のニューロモーフィック素子は、コンダクタンスの値の変化特性が対称性を有しない素子であった。このため、従来では、本質的には、このような素子を2個使用することが前提であった。あるいは、対称性が悪い素子でこの様な演算機構を構成しようとすると、正負各々の重みの値を素子の非対称性コンダクタンスに適切に設定するための制御が複雑になる問題があった。これに対して、近年、コンダクタンスの値の変化特性が対称性を有する素子が実現された。これに応じて、本願では、このような素子を使用して、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を表現することが考えられている。つまり、従来では、本実施形態に係る積和演算器1を開発するきっかけとなる課題は存在しておらず、本願にあたって、当該課題が新規に認識された。
 [構成例]
 積和演算器1などの構成例を示す。なお、本発明は、以下の構成例に限定されない。
 本実施形態に係る積和演算器1では、第1回路(図1の例では、入力信号生成回路32-1~32-N)と、第2回路(図1の例では、アレイ部12の回路および検出回路61-1~61-M)と、第3回路(図1の例では、変換部13の回路)と、第4回路(図1の例では、差分回路131-1~131-Mであり、出力端151-1~151-Mを含んでもよい。)を備える。第2回路は、第1演算回路(図1の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41-1j~41-Njと信号線42-jと検出回路61-j)を備える。第4回路は、差分回路(図1の例では、1行分以上の任意のjについて、j列目の差分回路131-j)を備える。第1回路は、複数のデータ(図1の例では、入力データ)のそれぞれに応じた信号(図1の例では、入力信号)を生成する。第2回路の第1演算回路は、抵抗値が可変である複数の可変抵抗素子(図1の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41-1j~41-Nj)のそれぞれによって第1回路によって生成された複数の信号のそれぞれに重みを乗算して、これら複数の乗算結果の総和(図1の例では、1行分以上の任意のjについて、j列目の検出回路61-jからの出力)を演算する。第3回路は、複数のデータのそれぞれに応じた値(図1の例では、入力データに応じたカウント値)の加算結果(図1の例では、加算回路111からの出力そのままがデジタルアナログ変換器113によって変換されることを想定した場合の変換結果)、または、当該加算結果が調整された結果(図1の例では、調整回路112からの出力がデジタルアナログ変換器113によって変換された結果)を演算する。第4回路の差分回路は、第2回路の第1演算回路によって演算された結果と第3回路によって演算された結果との差分を出力する。したがって、本実施形態に係る積和演算器1では、入力データの総和に基づいて演算される補正値(図1の例では、デジタルアナログ変換器113からの出力)を検出回路61-1~61-Mからの出力から減算することで、例えば、ニューラルネットワークの重みの正負ごとに素子(図1の例では、可変抵抗素子41-11~41-NM)を分ける必要をなくすことができる。
 本実施形態に係る積和演算器1では、第2回路の第1演算回路によって演算される結果と、第3回路によって演算される結果は、アナログ信号である。また、第4回路の差分回路は、アナログ回路である。したがって、本実施形態に係る積和演算器1では、アナログ演算によって積和演算の補正を行うことができる。
 本実施形態に係る積和演算器1では、複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定される。第2回路の第1演算回路は、複数の乗算結果の総和を取得する容量(図1の例では、1行分以上の任意のjについて、j列目の検出回路61-jを構成するコンデンサの容量)を有する。第3回路によって演算される結果は、(複数のデータのそれぞれに応じた値の加算結果)と(可変抵抗素子のコンダクタンスの可変な範囲の中心値)と{1/(容量)}とを乗算した結果である。したがって、本実施形態に係る積和演算器1では、積和演算の補正を、式(1)に示されるような理論上の演算によって、解析的な補正値を用いて行うことができる。
 本実施形態に係る積和演算器1では、複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定される。第2回路の第1演算回路は、複数の乗算結果の総和を取得する容量を有する。第3回路によって演算される結果は、(複数のデータのそれぞれに応じた値の加算結果)と(可変抵抗素子のコンダクタンスの可変な範囲の中心値)と{1/(容量)}との積に第1係数(式(2)の例では、K1)を乗算した結果と第2係数(式(2)の例では、K2)との和に相当する。したがって、本実施形態に係る積和演算器1では、積和演算の補正を、式(2)に示されるような理論上の演算によって、解析的な補正値を用いて行うことができる。この場合、例えば、回路実装上のばらつき、あるいは、温度変動などを補正する要素を、所定の係数を用いて解析的な補正値に含めることができる。これにより、積和演算器1では、例えば、アナログ的な実装、温度またはプロセスに依存する特性などによる変動ばらつきを抑制することが可能である。
 本実施形態に係る積和演算器1では、第1回路が複数のデータのそれぞれに応じた信号を生成することは、第1回路が複数のデータのそれぞれに応じたパルス幅変調信号を生成することである。したがって、本実施形態に係る積和演算器1では、入力信号生成回路32-1~32-Nによってパルス幅変調信号が生成される場合、N個の入力信号のパルス幅の合計値に基づく補正値によって、積和演算の補正を行うことができる。
 本実施形態に係る積和演算器1では、第1回路が複数のデータのそれぞれに応じた信号を生成することは、第1回路が複数のデータのそれぞれに応じた振幅変調信号を生成することである。したがって、本実施形態に係る積和演算器1では、入力信号生成回路32-1~32-Nによって振幅変調信号が生成される場合、N個の入力信号の振幅の合計値に基づく補正値によって、積和演算の補正を行うことができる。
 本実施形態に係る積和演算器1では、第2回路は、複数(図1の例では、総じてM個)の第1演算回路を有する。
 第4回路は、複数の第1演算回路のそれぞれごとに差分回路(図1の例では、総じてM個の差分回路131-1~131-M)を有する。したがって、本実施形態に係る積和演算器1では、1個の変換部13からの出力が、M個の差分回路131-1~131-Mのそれぞれに入力される。つまり、1個の変換部13からの出力が、アレイ部12を構成する複数の信号線42-1~42-Mの出力に反映されている。このような構成により、積和演算器1では、例えば、アレイ部12を構成する複数の信号線42-1~42-Mのそれぞれごとに変換部(変換部13に相当する機能部)が備えられる場合と比べて、回路規模を小さくすることが可能になる。
 本実施形態に係る積和演算器1では、複数のデータは、時系列の順に第3回路に入力される。第3回路は、時系列の順に、複数のデータのそれぞれに応じた値を加算する。したがって、本実施形態に係る積和演算器1では、複数の入力レジスタ31-1~31-Nから出力されるデータが時系列順に信号線33を介して加算回路111に入力される場合に、加算回路111においてこれらのデータを順に加算することができる。この場合、例えば、複数のデータの加算を行う際にタイミング制御などを行う場合と比べて、加算回路111の構成を簡易化することが可能である。
 本実施形態に係る積和演算器1では、可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である。したがって、本実施形態に係る積和演算器1では、好ましい態様として、可変抵抗素子41-11~41-NMとして、磁気抵抗効果素子が用いられてもよい。これにより、積和演算器1では、正の値を持つ重みと負の値を持つ重みを表現することが容易になる。
 本実施形態では、本実施形態に係る積和演算器1によって行われる処理と同様な積和演算方法を実施することが可能である。これにより、本実施形態に係る積和演算方法では、本実施形態に係る積和演算器1について説明したのと同様な効果を得ることができる。
 本実施形態では、本実施形態に係る積和演算器1を含み論理演算を実行する論理演算デバイスを実施することが可能である。これにより、本実施形態に係る論理演算デバイスでは、例えば、誤差の少ない積和演算によって、論理演算器の性能を改善することができる。なお、論理演算としては、任意の演算が行われてもよい。
 本実施形態では、本実施形態に係る積和演算器1を含み可変抵抗素子41-11~41-NMとしてニューロモーフィック素子を使用したニューロモーフィックデバイスを実施することが可能である。これにより、本実施形態に係るニューロモーフィックデバイスでは、例えば、誤差の少ない積和演算によって、ニューロモーフィックデバイスの性能を改善することができる。
 なお、ニューロモーフィックデバイスでは、任意の演算が行われてもよい。
 ここで、ニューロモーフィックデバイスは、ニューロモーフィック演算を行うためのデバイスであり、例えば、脳の動きを模倣した演算を行う。ニューロモーフィックデバイスは、例えば、アレイなどの回路を組み合わせたデバイスであってもよく、ニューラルネットワークを構成するデバイスであってもよい。ニューラルネットワークの技術を用いることで、高度な情報の識別あるいは分類を行うことが可能である。このようなニューラルネットワークの技術は、例えば、深層学習、医療、ヘルスケア、金融、マーケティング、認証、セキュリティなどの広い分野で実用化されている。
 (第2実施形態)
 [積和演算器の構成]
 図5は、本発明の実施形態(第2実施形態)に係る積和演算器201の概略的な構成を示す図である。本実施形態では、第1実施形態に係る図1に示される積和演算器1と同様な構成部分については、同じ符号を付して説明し、詳しい説明を省略する。また、本実施形態では、説明の便宜上、第1実施形態の説明で使用されたi、jを使用して説明する。
 積和演算器201は、入力部11と、アレイ部12と、変換部221と、出力部222を備える。
 また、図5には、積和演算器201の制御を行う制御部15を示してある。本実施形態では、制御部15は、積和演算器201とは別の機能部として構成されている。この場合、積和演算器201および制御部15は、例えば、所定の装置(例えば、積和演算装置)あるいは所定のシステム(例えば、積和演算システム)に含まれると捉えられてもよい。他の例として、制御部15は、積和演算器201と一体として構成されてもよい。この場合、積和演算器201は制御部15を備えると捉えられてもよい。
 ここで、入力部11と、アレイ部12と、制御部15については、第1実施形態に係る図1に示される積和演算器1と同様な構成部分である。なお、制御部15により行われる制御の仕方は、例えば、第1実施形態に係る図1に示される積和演算器1と、本実施形態に係る積和演算器201とで、異なってもよい。
 本実施形態では、変換部221と、出力部222について、詳しく説明する。
 変換部221は、第1実施形態に係る図1に示されるものと同様な加算回路111と、第1実施形態に係る図1に示されるものと同様な調整回路112を備える。
 出力部222は、第1実施形態に係る図1に示されるものと同様なM個の検出回路61-1~61-Mと、M個のアナログデジタル変換器(ADC:Analog Digital Converter)261-1~261-Mと、M個の差分回路281-1~281-Mと、M個の出力端311-1~311-Mを備える。
 M個の差分回路281-1~281-Mのそれぞれは、一例として、差分を演算する論理回路であってもよい。なお、検出回路61-1~61-M、差分回路281-1~281-M、および、アナログデジタル変換器261-1~261-Mとしては、M列の各列に対して1組の回路を割り当てて説明したが、必ずしも列と同じ数の回路の組が備えられる必要はない。例えば、M列の各列に対して、1個の検出回路、1個の差分回路および1個のアナログデジタル変換器を時分割で割り当てて、多重化することも可能である。
 [積和演算器における各回路の機能および動作]
 積和演算器201における各回路の機能および動作の例を説明する。変換部221の構成および動作は、第1実施形態に係る図1に示される変換部13の構成および動作と比べて、当該変換部13のデジタルアナログ変換器113が備えられていない点で異なる。
 変換部221は、調整回路112から出力される調整結果のデジタルデータを、M個の差分回路281-1~281-Mのそれぞれに出力する。当該デジタルデータは、第1実施形態に係る図1に示される変換部13において調整回路112からデジタルアナログ変換器113に出力されるデジタルデータに相当する。
 j列目のアナログデジタル変換器261-jは、j列目の検出回路61-jから出力されたアナログ信号を入力する。そして、j列目のアナログデジタル変換器261-jは、入力されたアナログ信号をデジタルデータへ変換して、変換されたデジタルデータを、j列目の差分回路281-jに出力する。
 j列目の差分回路281-jは、一の入力端であるプラス端子(+端子)と、他の入力端であるマイナス端子(-端子)と、出力端を有する。j列目の差分回路281-jは、j列目のアナログデジタル変換器261-jから出力されたデジタルデータをプラス端子から入力し、調整回路112から出力されたデジタルデータをマイナス端子から入力する。j列目の差分回路281-jは、プラス端子の入力データからマイナス端子の入力データを減算した結果のデータを出力端から出力する。当該データは、j列目の出力端311-jに出力される。本実施形態では、j列目の差分回路281-jは、入力された2個のデータの差分を表すデータを出力する。当該差分は、例えば、電圧の値によって表されてもよい。本実施形態では、当該差分は、プラス端子の入力データからマイナス端子の入力データを減算した結果である。
 j列目の出力端311-jは、j列目の差分回路281-jから入力されたデータを出力する。ここで、当該データは、任意の用途で使用されてもよい。一例として、当該データは、ニューラルネットワークにおける積和演算結果を使用する回路(図示せず)に入力されて使用されてもよい。
 また、例えば、j列目の差分回路281-jとj列目の出力端311-jとの間に、j列目のデジタルアナログ変換器(図示せず)が備えられてもよい。この場合、j列目のデジタルアナログ変換器は、j列目の差分回路281-jから出力されたデジタルデータを入力し、入力されたデジタルデータをアナログ信号へ変換して、変換されたアナログ信号を、j列目の出力端311-jに出力する。この場合、j列目の出力端311-jは、j列目のデジタルアナログ変換器から出力されたアナログ信号を出力する。
 [第2実施形態のまとめ]
 以上のように、本実施形態に係る積和演算器201では、第1実施形態に係る積和演算器1と同様な演算を行うことができ、第1実施形態に係る積和演算器1とは相違する点による効果の違いを除いて、同様な効果を得ることができる。したがって、本実施形態に係る積和演算器201では、例えば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
 [構成例]
 本実施形態に係る積和演算器201では、第1回路(図5の例では、入力信号生成回路32-1~32-N)と、第2回路(図5の例では、アレイ部12の回路、検出回路61-1~61-M、およびアナログデジタル変換器261-1~261-M)と、第3回路(図5の例では、変換部221の回路)と、第4回路(図5の例では、差分回路281-1~281-Mであり、出力端311-1~311-Mを含んでもよい。)を備える。第2回路は、第1演算回路(図5の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41-1j~41-Njと信号線42-jと検出回路61-jとアナログデジタル変換器261-j)を備える。第4回路は、差分回路(図5の例では、1行分以上の任意のjについて、j列目の差分回路281-j)を備える。第1回路は、複数のデータ(図5の例では、入力データ)のそれぞれに応じた信号(図5の例では、入力信号)を生成する。第2回路の第1演算回路は、抵抗値が可変である複数の可変抵抗素子(図5の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41-1j~41-Nj)のそれぞれによって第1回路によって生成された複数の信号のそれぞれに重みを乗算して、これら複数の乗算結果の総和(図5の例では、1行分以上の任意のjについて、j列目の検出回路61-jからの出力)を演算する。第3回路は、複数のデータのそれぞれに応じた値(図5の例では、入力データに応じたカウント値)の加算結果(図5の例では、加算回路111からの出力そのままが調整回路112から出力されることを想定した場合の出力)、または、当該加算結果が調整された結果(図5の例では、調整回路112からの出力)を演算する。第4回路の差分回路は、第2回路の第1演算回路によって演算された結果と第3回路によって演算された結果との差分を出力する。したがって、本実施形態に係る積和演算器201では、入力データの総和に基づいて演算される値(図5の例では、調整回路112からの出力)を検出回路61-1~61-Mからの出力(図5の例では、当該出力がアナログデジタル変換器261-1~261-Mによって変換された結果)から減算することで、例えば、ニューラルネットワークの重みの正負ごとに素子(図5の例では、可変抵抗素子41-11~41-NM)を分ける必要をなくすことができる。
 なお、ここでは、第2回路にアナログデジタル変換器261-1~261-Mが含まれるとして説明したが、他の例として、第3回路にアナログデジタル変換器261-1~261-Mが含まれると捉えられてもよい。つまり、アナログデジタル変換器261-1~261-Mは、第1実施形態に係る図1に示されるデジタルアナログ変換器113と同様に、補正値を調整するための回路であると捉えられてもよい。
 本実施形態に係る積和演算器201では、第2回路の第1演算回路によって演算される結果と、第3回路によって演算される結果は、デジタルデータである。第4回路の差分回路は、デジタル回路である。したがって、本実施形態に係る積和演算器201では、アレイ部12の出力をデジタルデータへ変換することで、デジタル演算によって積和演算の補正を行うことができる。
 (以上の実施形態のまとめ)
 以上のような積和演算器1、201、あるいはそれを用いたニューロモーフィックデバイスは、各種センサやロボットの脳として機能させることができる。このニューロモーフィックデバイスを用いた制御装置にセンサから出力された信号を入力すると、Edge素子として機能させることができる。センサ信号は一般的に多くのノイズが存在し、一般的なセンサモジュールでは得たいセンサ信号をノイズから取り出すことができない。したがって、センサ信号の時系列信号から、例えば信号処理技術を用いてノイズを除去し、得たい信号を取り出すなどの方法が取られる。この場合、得た信号以外はエネルギーの消費だけであり、情報を生まない。このニューロモーフィックデバイスを用いた制御装置にセンサ信号を入力することにより、高精度の認識を行うことができる。従来は源信号にノイズが重畳した観測信号を源信号とノイズに分離することで、初めて意味のある情報として抽出されるが、本制御装置を用いるとノイズを含む時系列信号から得たい源信号を予測することができ、源信号の出力強度や統計値が小さくても意味のある信号として取り出すことができる。これはセンサと制御装置が一体となったモジュールであり、AI Edgeセンサモジュールとすることができる。本制御装置を用いると、認識精度が高くなるために従来よりも小さな演算機能で情報を取り出すことができ、低コスト・省電力・省体積化を行うことができる。
 本制御装置に複数のセンサの信号を同時に入力することも好ましい。複数のセンサの信号が同時に入力することによって、互いのセンサの関連性に関する認識を得ることができる。例えば、ロボットにおいて手、足、胴体にセンサが設置され、そのセンサからの信号が同時に本制御装置に入力されると、その信号によってロボットが歩いているか、転んだのかなどの情報を複合的に判断することができる。さらに、AI Edgeセンサモジュールが複数設置されたロボットや車などにおいて、本制御装置に同時に信号が入力されることによってより省電力化と高機能化が期待できる。複数のセンサが異なる種類のセンサであった場合には、それぞれのセンサに対応できる電圧や電流に対応した制御装置を設置する必要がある。この場合、制御装置のインタフェースに変圧器やアナログデジタル変換器(ADC)などが必要となり、エネルギー変換によってエネルギーが消費される。AI Edgeセンサモジュールでも同様にエネルギーが消費されるが、AI Edgeセンサモジュールから中央の制御装置に出力された信号はAI Edgeセンサモジュールで一定の認識と識別がされたものであり、必要な情報のみを送ることができる。これらの機能によりAI Edgeセンサモジュールと中央の制御装置の間の通信を削減することができるため、システム全体としてのエネルギー消費を減少できる。
 なお、以上に示した実施形態に係る各部(例えば、制御部15など)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
 さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
 また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよ
 以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
 本発明の積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスによれば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
1、201…積和演算器、11…入力部、12…アレイ部、13、221…変換部、14、222…出力部、15…制御部、31-1~31-N…入力レジスタ、32-1~32-N…入力信号生成回路、33、42-1~42-M…信号線、41-11~41-NM…可変抵抗素子、61-1~61-M…検出回路、111…加算回路、112…調整回路、113…デジタルアナログ変換器、131-1~131-M、281-1~281-M…差分回路、151-1~151-M、311-1~311-M…出力端、261-1~261-M…アナログデジタル変換器、1011-1~1011-N…入力信号、2011、2021、2031…テーブル

Claims (13)

  1.  複数のデータのそれぞれに応じた信号を生成する第1回路と、
     抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、
     前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、
     前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、
     を備える積和演算器。
  2.  前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、アナログ信号であり、
     前記第4回路の前記差分回路は、アナログ回路である、
     請求項1に記載の積和演算器。
  3.  前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、デジタルデータであり、
     前記第4回路の前記差分回路は、デジタル回路である、
     請求項1に記載の積和演算器。
  4.  前記複数の前記可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、
     前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、
     前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}とを乗算した結果である、
     請求項1から請求項3のいずれか1項に記載の積和演算器。
  5.  前記複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、
     前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、
     前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}との積に第1係数を乗算した結果と第2係数との和に相当する、
     請求項1から請求項3のいずれか1項に記載の積和演算器。
  6.  前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じたパルス幅変調信号を生成することである、
     請求項1から請求項5のいずれか1項に記載の積和演算器。
  7.  前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じた振幅変調信号を生成することである、
     請求項1から請求項5のいずれか1項に記載の積和演算器。
  8.  前記第2回路は、複数の前記第1演算回路を有し、
     前記第4回路は、前記複数の前記第1演算回路のそれぞれごとに前記差分回路を有する、
     請求項1から請求項7のいずれか1項に記載の積和演算器。
  9.  前記複数の前記データは、時系列の順に前記第3回路に入力され、
     前記第3回路は、前記時系列の順に、前記複数の前記データのそれぞれに応じた値を加算する、
     請求項1から請求項8のいずれか1項に記載の積和演算器。
  10.  前記可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である、
     請求項1から請求項9のいずれか1項に記載の積和演算器。
  11.  第1回路と第2回路と第3回路と第4回路を備え、前記第2回路は第1演算回路を有し、前記第4回路は差分回路を有する積和演算器において行われる積和演算方法であって、
     前記第1回路が、複数のデータのそれぞれに応じた信号を生成し、
     前記第2回路の前記第1演算回路が、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算し、
     前記第3回路が、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算し、
     前記第4回路の前記差分回路が、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する、
     積和演算方法。
  12.  請求項1から請求項10のいずれか1項に記載の積和演算器を含み、
     論理演算を実行する、
     論理演算デバイス。
  13.  請求項1から請求項10のいずれか1項に記載の積和演算器を含み、
     前記積和演算器の前記可変抵抗素子は、ニューロモーフィック素子である、
     ニューロモーフィックデバイス。
PCT/JP2018/041478 2018-11-08 2018-11-08 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス WO2020095407A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2018/041478 WO2020095407A1 (ja) 2018-11-08 2018-11-08 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
CN201880098174.2A CN112771533B (zh) 2018-11-08 2018-11-08 积和运算器、积和运算方法、逻辑运算装置和神经形态器件
JP2019510980A JP6521207B1 (ja) 2018-11-08 2018-11-08 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
US16/675,423 US11340869B2 (en) 2018-11-08 2019-11-06 Sum-of-products operator, sum-of-products operation method, logical operation device, and neuromorphic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/041478 WO2020095407A1 (ja) 2018-11-08 2018-11-08 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス

Publications (1)

Publication Number Publication Date
WO2020095407A1 true WO2020095407A1 (ja) 2020-05-14

Family

ID=66655766

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/041478 WO2020095407A1 (ja) 2018-11-08 2018-11-08 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス

Country Status (4)

Country Link
US (1) US11340869B2 (ja)
JP (1) JP6521207B1 (ja)
CN (1) CN112771533B (ja)
WO (1) WO2020095407A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586896B2 (en) 2020-03-02 2023-02-21 Infineon Technologies LLC In-memory computing architecture and methods for performing MAC operations
TWI783854B (zh) * 2021-03-17 2022-11-11 神盾股份有限公司 乘積和運算裝置
US11657864B1 (en) 2021-12-17 2023-05-23 Winbond Electronics Corp. In-memory computing apparatus and computing method having a memory array includes a shifted weight storage, shift information storage and shift restoration circuit to restore a weigh shifted amount of shifted sum-of-products to generate multiple restored sum-of-products
GB2621887A (en) * 2022-08-26 2024-02-28 Secqai Ltd Improvements in neuromorphic computing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202017A (ja) * 2000-01-18 2001-07-27 Natl Agriculture Research Center Maff 単純な演算要素による任意関数発生回路並びにそれを用いた暗号化方法
JP2017511948A (ja) * 2014-03-06 2017-04-27 プログレス インコーポレイテッドProgress,Inc. ニューラルネットワーク及びニューラルネットワークのトレーニング方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07113942B2 (ja) * 1989-01-31 1995-12-06 富士通株式会社 ニューロチップによる結合器
JP3765337B2 (ja) * 1996-10-25 2006-04-12 株式会社東芝 Macのバンクレジスタ回路
CN1284300C (zh) * 2002-07-22 2006-11-08 松下电器产业株式会社 概率运算元件、其驱动方法和使用它的识别处理装置
JP4620944B2 (ja) * 2003-10-16 2011-01-26 キヤノン株式会社 積和演算回路及びその方法
JP4272967B2 (ja) * 2003-10-16 2009-06-03 キヤノン株式会社 演算回路およびその動作制御方法
JP5262248B2 (ja) * 2008-03-31 2013-08-14 富士通株式会社 積和演算回路
US9396362B2 (en) * 2011-04-25 2016-07-19 Citizen Holdings Co., Ltd. Analog multiplier circuit, variable gain amplifier, detector circuit, and physical quantity sensor
JP2014081701A (ja) * 2012-10-15 2014-05-08 Hitachi Ltd アナログ乗算器並びにそれを用いた計算機並びにa/d変換装置
US10621267B2 (en) * 2016-01-28 2020-04-14 Hewlett Packard Enterprise Development Lp Memristor crossbar array for performing a fourier transformation
WO2017142542A1 (en) * 2016-02-19 2017-08-24 Hewlett Packard Enterprise Development Lp Linear transformation accelerators
EP3825925B1 (en) 2016-08-19 2023-11-08 Sony Group Corporation Multiply-accumulate operation device
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202017A (ja) * 2000-01-18 2001-07-27 Natl Agriculture Research Center Maff 単純な演算要素による任意関数発生回路並びにそれを用いた暗号化方法
JP2017511948A (ja) * 2014-03-06 2017-04-27 プログレス インコーポレイテッドProgress,Inc. ニューラルネットワーク及びニューラルネットワークのトレーニング方法

Also Published As

Publication number Publication date
CN112771533A (zh) 2021-05-07
US11340869B2 (en) 2022-05-24
JPWO2020095407A1 (ja) 2021-02-15
US20200150927A1 (en) 2020-05-14
JP6521207B1 (ja) 2019-05-29
CN112771533B (zh) 2024-10-01

Similar Documents

Publication Publication Date Title
WO2020095407A1 (ja) 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
US10977339B2 (en) Systems and methods for mapping matrix calculations to a matrix multiply accelerator
TWI793277B (zh) 用於混合訊號運算的系統與方法
US11640196B2 (en) Unit element for performing multiply-accumulate operations
US11604977B2 (en) Computing circuitry
Patra et al. Modeling of an intelligent pressure sensor using functional link artificial neural networks
US20200272893A1 (en) Analog to digital converter using memristors in a neural network
US20210143834A1 (en) Reconfigurable dac implemented by memristor based neural network
CN111052152B (zh) 包含仿神经元件的阵列的控制装置、离散化步长的运算方法及程序
WO2005038645A2 (en) Operation circuit and operation control method thereof
CN113990371A (zh) 用于模拟混合信号存储器内计算交叉开关网络的时域比率式读出接口
Georgakopoulou et al. A capacitive-to-digital converter with automatic range adaptation for readout instrumentation
JP4620944B2 (ja) 積和演算回路及びその方法
Patra et al. Modeling and development of an ANN-based smart pressure sensor in a dynamic environment
US20220188628A1 (en) Dynamic configuration of readout circuitry for different operations in analog resistive crossbar array
US20240137035A1 (en) Scaling-friendly, analog correlators using charge-based margin propagation
US20190294957A1 (en) Arithmetic device and arithmetic method
Yoon et al. A FerroFET-based in-memory processor for solving distributed and iterative optimizations via least-squares method
KR20200068560A (ko) 뉴로모픽 연산 장치 및 그것의 동작 방법
Choi et al. An SRAM-based hybrid computation-in-memory macro using current-reused differential CCO
JP2022008142A (ja) 回路を利用して所定の演算を遂行する装置及び方法
US20180300612A1 (en) Neuromorphic device and a synapse network including a post-synaptic neuron having a subtracting circuit
JPH10222598A (ja) パルス変調演算回路
Kavishwar Dissertation Approval
Jurasz et al. A New Successive Time Balancing Time-to-Digital Conversion Method

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019510980

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 18939168

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: 18939168

Country of ref document: EP

Kind code of ref document: A1