WO2019131141A1 - 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 - Google Patents

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

Info

Publication number
WO2019131141A1
WO2019131141A1 PCT/JP2018/045725 JP2018045725W WO2019131141A1 WO 2019131141 A1 WO2019131141 A1 WO 2019131141A1 JP 2018045725 W JP2018045725 W JP 2018045725W WO 2019131141 A1 WO2019131141 A1 WO 2019131141A1
Authority
WO
WIPO (PCT)
Prior art keywords
product
elements
alternative
unit
sum
Prior art date
Application number
PCT/JP2018/045725
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 US16/759,080 priority Critical patent/US11797829B2/en
Priority to JP2019562957A priority patent/JP6819799B2/ja
Publication of WO2019131141A1 publication Critical patent/WO2019131141A1/ja

Links

Images

Classifications

    • 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
    • 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/383Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using magnetic or similar elements
    • 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/50Adding; Subtracting
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • H01L27/105Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration including field-effect components
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Definitions

  • the present invention relates to a product-sum calculator, a neuromorphic device, and a method of using the product-sum calculator.
  • Priority is claimed on Japanese Patent Application No. 2017-254702, filed Dec. 28, 2017, the content of which is incorporated herein by reference.
  • Non-Patent Document 1 an optimized learning scheme for grayscale image recognition in RRAM-based analog neuromorphic systems is known (see, for example, Non-Patent Document 1).
  • This document states that an analog neuromorphic system is developed on the basis of an assembled resistive switching memory array.
  • a novel training scheme is proposed to optimize the performance of analog systems by exploiting segmented synapse behavior.
  • this scheme is applied to grayscale image recognition.
  • research is underway to realize a neural network that mimics the nervous system using an array of resistance change elements.
  • the neuromorphic device performs a product-sum operation of adding weights from the previous stage to the next stage.
  • Non-Patent Document 1 does not study how to cope with a failure of an element that constitutes a system. Therefore, there is a possibility that the performance of the neural network may be greatly reduced when the elements constituting the system fail. In addition, it is very difficult to manufacture the device without causing 100% failure in manufacturing. Therefore, it is economically necessary to replace the failed element with a normal element to function as a whole device, but such a compensating element in the neural network has not been discussed up to now.
  • the present invention when applied to a neural network, is a product-sum calculator capable of suppressing deterioration in performance of the neural network at the time of failure of an element constituting the product-sum calculator. It is an object of the present invention to provide a method of using a fix device and a product-sum operation unit.
  • the product-sum operation unit includes a product operation unit and a sum operation unit, and the product operation unit is configured to operate when a plurality of product operation elements and any of the plurality of product operation elements fail. And at least one alternative element used instead of the failed product operation element, each of the plurality of product operation elements and the alternative element being a resistance change element, and the sum operation unit being an output detector The output detector detects a total value of outputs from the plurality of product operation elements when the alternative element is not used.
  • One embodiment of the present invention is a method of using the product-sum operation unit, the product-sum operation unit further comprising a test unit for testing whether each of the plurality of product operation elements has a failure.
  • a product including an inspection step in which the inspection unit determines whether or not each of the plurality of product operation elements has failed based on the outputs from the plurality of product operation elements detected by the output detector. It is a usage method of the summing operator.
  • the product-sum operation unit further includes a function replacement unit, and the inspection unit detects that any one of the plurality of product operation elements is broken.
  • the function replacement unit may further include a function replacement step of causing the alternative element to perform a product operation that the failed product operation element performed before the failure.
  • the resistance value of the alternative element that performs the product operation performed by the failed product operation element before the failure is the resistance value fluctuation range of the alternative element. It may be preset to an intermediate value which is larger than the minimum value of and smaller than the maximum value of the resistance value variation range.
  • the at least one alternative element is a plurality of product operation alternative elements
  • the sum operation unit is a sum value of outputs from the plurality of product operation alternative elements.
  • One embodiment of the present invention is a method of using the product-sum operation unit, wherein the product-sum operation unit further includes a test unit and a function replacement unit, and any one of the plurality of product operation elements fail.
  • a resistance value setting step of setting the resistance value of the plurality of alternative elements for product calculation to a value equal to the resistance value of the plurality of product calculation elements before failure It is a usage method.
  • the alternative element may be disposed on the opposite side of the output detector across the plurality of product operation elements.
  • the output detector may be disposed on the opposite side of the plurality of product operation elements with the alternative element interposed therebetween.
  • the plurality of product operation elements include a first product operation element and a second product operation element, and the alternative element is the first product operation element and the first product operation element. It may be disposed between the second product operation element.
  • One embodiment of the present invention is a method of using the product-sum operation unit, wherein the plurality of product operation elements include a plurality of variable input product operation elements and at least one fixed input product operation element.
  • the alternative element is an alternative element for fixed input
  • the product-sum operation unit is a variable input unit for inputting variable signals to the plurality of variable input product operation elements; and the product operation for fixed input
  • a fixed input section for inputting a signal determined for the element and the alternative element for fixed input in synchronization with the variable signal, and an inspection section for inspecting whether or not the fixed input product arithmetic element is broken
  • the function replacement unit wherein the inspection unit determines whether the fixed input product operation element is broken based on the output from the fixed input product operation element detected by the output detector. Inspection process to determine When the inspection unit detects that the product computing element for load is broken, the function replacing unit performs the product operation performed before the product computing element for fixed input is broken, the alternative element for fixed input And a function replacement step to be performed by the unit.
  • the fixed input alternative element may be disposed adjacent to the fixed input product operation element.
  • variable resistance element may have a write terminal, a common terminal, and a read terminal.
  • variable resistance element is a magnetoresistive element exhibiting a magnetoresistive effect
  • the magnetoresistive element has a magnetization free layer having a domain wall and a fixed magnetization direction. And the nonmagnetic layer sandwiched between the magnetization free layer and the magnetization fixed layer.
  • One aspect of the present invention is a neuromorphic device comprising the product-sum operation unit.
  • a product-sum calculator when applied to a neural network, a product-sum calculator, a neuromorphic device, and a product-sum that can suppress the performance degradation of the neural network at the time of failure of the element constituting the product-sum calculator. It is possible to provide a method of using a computing unit.
  • FIG. 1 is a diagram showing a first configuration of a part of the product-sum operation unit 1 of the first embodiment.
  • FIG. 2 is a diagram showing an example of the entire configuration of the product-sum operation unit 1 according to the first embodiment.
  • the product-sum operation unit 1 according to the first embodiment includes the product operation unit 10, the sum operation unit 11, the input units 12A, 12B, 12C, and 12X, and the inspection unit 13. And a function replacing unit 14.
  • the product calculation unit 10 includes a column 10A and a column 10B. In the example shown in FIG. 1, the product calculation unit 10 includes two columns 10A and 10B, but in another example, the product calculation unit 10 includes three or more arbitrary number of columns 10A, 10B,. You may have.
  • the column 10A includes a product calculation element 10AA, a product calculation element 10AB, a product calculation element 10AC, and an alternative element 10AX.
  • the product calculation elements 10AA, 10AB, and 10AC perform product calculation.
  • the alternative element 10AX is used in place of the failed product operation element if any one of the product operation elements 10AA, 10AB, and 10AC fails.
  • the column 10B includes a product calculation element 10BA, a product calculation element 10BB, a product calculation element 10BC, and an alternative element 10BX.
  • the product calculation elements 10BA, 10BB, 10BC perform the product calculation in the same manner as the product calculation elements 10AA, 10AB, 10AC.
  • the alternative element 10BX is used in place of the failed product operation element when any one of the product operation elements 10BA, 10BB, and 10BC fails.
  • the column 10A includes three product operation elements 10AA, 10AB, and 10AC, and the column 10B includes three product operation elements 10BA, 10BB, and 10BC.
  • the column 10A includes , And 3 may be provided with an arbitrary number (more specifically, plural) of product operation elements, and the column 10B may be provided with an arbitrary number (more than plural, in detail) product operation elements other than three.
  • the column 10A comprises one alternative element 10AX and the column 10B comprises one alternative element 10BX, while in another example the column 10A comprises two or more alternative elements; 10B may comprise more than one alternative element.
  • each of the plurality of product calculation elements 10AA to 10AC, 10BA to 10BC, and the alternative elements 10AX and 10BX is a variable resistance element including a read terminal, a write terminal, and a common terminal.
  • the read terminals of the product calculation elements 10AA and 10BA are connected to the line L11.
  • the line L11 is connected to an input unit 12A which inputs signals to the product calculation elements 10AA and 10BA.
  • the write terminals of the product calculation elements 10AA and 10BA are connected to the line L12.
  • the read terminals of the product calculation elements 10AB and 10BB are connected to the line L21.
  • the line L21 is connected to the input unit 12B which inputs signals to the product calculation elements 10AB and 10BB.
  • the write terminals of the product calculation elements 10AB and 10BB are connected to the line L22.
  • the read terminals of the product calculation elements 10AC and 10BC are connected to the line L31.
  • the line L31 is connected to an input unit 12C that inputs signals to the product calculation elements 10AC and 10BC.
  • the write terminals of the product calculation elements 10AC and 10BC are connected to the line L32.
  • the read terminals of the alternative elements 10AX, 10BX are connected to the line LX1.
  • the line LX1 is connected to the input unit 12X that inputs signals to the alternative elements 10AX and 10BX.
  • the write terminals of the alternative elements 10AX, 10BX are connected to the line LX2.
  • the common terminals of the product calculation elements 10AA, 10AB, 10AC and the alternative element 10AX are connected to the line M1.
  • the common terminals of the product calculation elements 10BA, 10BB, 10BC and the alternative element 10BX are connected to the line M2.
  • the sum operation unit 11 includes an output detector 11A and an output detector 11B.
  • the output detector 11A detects the total value of the outputs from the plurality of product calculation elements 10AA, 10AB, 10AC.
  • output detector 11A performs product operation elements 10AB and 10AC (that is, a plurality of product operations). The total value of the output from the non-failed product calculation element 10AB, 10AC) of the elements 10AA, 10AB, 10AC and the output from the alternative element 10AX is detected.
  • the output detector 11B detects the total value of the outputs from the plurality of product calculation elements 10BA, 10BB, and 10BC.
  • output detector 11B performs product operation elements 10BA and 10BC (that is, a plurality of product operations).
  • the total value of the output from the non-failed product calculation element 10BA, 10BC) of the elements 10BA, 10BB, 10BC and the output from the alternative element 10BX is detected.
  • the output detector 11A is disposed on the line M1.
  • the output detector 11B is disposed on the line M2. In the example shown in FIG.
  • the output detector 11A detects the output current value from the product operation elements 10AA, 10AB, 10AC or, for example, the output current value from the product operation elements 10AB, 10AC and the alternative element 10AX, and outputs
  • the detector 11B detects output current values from the product calculation elements 10BA, 10BB, 10BC, or output current values from, for example, the product calculation elements 10BA, 10BC and the alternative element 10BX.
  • the output detector 11A detects the outputs of the product operation elements 10AA, 10AB, 10AC as charges, or, for example, detects the outputs of the product operation elements 10AB, 10AC and the alternative element 10AX as charges, and outputs the output detector 11B.
  • the outputs of the product calculation elements 10BA, 10BB, 10BC may be detected as charges, or the outputs of the product calculation elements 10BA, 10BC and the alternative element 10BX may be detected as charges.
  • the inspection unit 13 detects the plurality of product operation elements 10AA to 10AC included in the column 10A when the total value of the outputs from the plurality of product operation elements 10AA, 10AB, and 10AC detected by the output detector 11A exceeds a specified value. It is determined that a fault in which the output current becomes large has occurred in at least one of the above. Further, the inspection unit 13 detects the plurality of product operation elements 10BA included in the column 10B when the total value of the outputs from the plurality of product operation elements 10BA, 10BB, and 10BC detected by the output detector 11B exceeds the specified value. It is determined that a failure in which the output current is large has occurred in at least one of 10 BC.
  • FIG. 3 is a diagram for explaining the total value and the specified value detected by the output detector 11A.
  • the vertical axis indicates the total value, the specified value, and the like of the output currents of the plurality of product calculation elements 10AA to 10AC detected by the output detector 11A.
  • the horizontal axis indicates the state (the magnitude of the resistance value) of the product calculation elements 10AA to 10AC.
  • the total value of the output currents of the plurality of product calculation elements 10AA to 10AC detected by the output detector 11A decreases as the resistance value of the product calculation elements 10AA to 10AC decreases. growing.
  • the output currents of the plurality of product calculation elements 10AA to 10AC detected by the output detector 11A The total value is the maximum value Max.
  • the prescribed value is set to a value greater than or equal to the maximum value Max. That is, the prescribed value is a value equal to or larger than the maximum value Max of the total value that can be detected by the output detector 11A when all of the plurality of product calculation elements 10AA to 10AC operate normally.
  • the inspection unit 13 determines that there is a high possibility that a failure in which the output current is large has not occurred in any of the plurality of product calculation elements 10AA to 10AC included in the column 10A.
  • the inspection unit 13 determines that a failure in which the output current is large has occurred in at least one of the plurality of product calculation elements 10AA to 10AC included in the column 10A.
  • the inspection unit 13 inspects whether or not each of the plurality of product calculation elements 10AA, 10AB, and 10AC has a failure. For example, in a state where input unit 12B does not input a signal to product operation element 10AB in order to check whether product operation element 10AA is defective or not, input unit 12C outputs a signal to product operation element 10AC. And the input unit 12X does not input a signal to the alternative element 10AX, and the input detector 12A inputs a signal to the product calculation element 10AA, the output detector 11A outputs the product The output from the arithmetic element 10AA is detected.
  • the inspection unit 13 determines whether or not the product calculation element 10AA is broken based on the detection value of the output detector 11A. Similarly, the inspection unit 13 inspects whether the product calculation element 10AB is broken or not and whether the product calculation element 10AC is broken.
  • the inspection unit 13 inspects whether or not each of the plurality of product calculation elements 10BA, 10BB, and 10BC is out of order. For example, in a state where input unit 12A does not input a signal to product operation element 10BA in order to check whether product operation element 10BB is defective or not, input unit 12C outputs a signal to product operation element 10BC. And the input unit 12X does not input a signal to the alternative element 10BX, and the input detector 12B inputs a signal to the product calculation element 10BB, the output detector 11B outputs the product An output from computing element 10BB is detected.
  • the inspection unit 13 determines whether or not the product calculation element 10BB is broken based on the detection value of the output detector 11B. Similarly, the inspection unit 13 checks whether the product calculation element 10BA is broken or not and whether the product calculation element 10BC is broken.
  • the function replacement unit 14 determines that the product calculation element (for example, the product calculation element 10AA) is broken.
  • the substitute element 10 AX performs the product operation performed before the failure.
  • the resistance value of the alternative element 10AX for performing the product operation performed before the breakdown by the product computing element (for example, the product computing element 10AA) which has failed is larger in resistance value variation than the minimum value of the resistance value variation range of the alternative element 10AX. It is preset to an intermediate value smaller than the maximum value of the range.
  • the function replacement unit 14 has a product calculation element (for example, the product calculation element 10BB) that is broken. ) causes the alternative element 10BX to perform the product operation performed before the failure.
  • the resistance value of the alternative element 10BX which performs the product operation performed before the breakdown, is larger than the minimum value of the resistance value fluctuation range of the alternative element 10BX. It is preset to an intermediate value smaller than the maximum value of the range.
  • the alternative element 10AX is disposed on the opposite side (upper side of FIG. 1) of the output detector 11A with the plurality of product calculation elements 10AA, 10AB, 10AC separated.
  • the alternative element 10BX is disposed on the opposite side (upper side in FIG. 1) of the output detector 11B with the plurality of product calculation elements 10BA, 10BB, 10BC separated. That is, FIG. 1 shows that when the alternative elements 10AX and 10BX are disposed at the upper side of FIG. 1, the wiring resistance of the product-sum operation unit 1 is higher than when the alternative elements 10AX and 10BX are disposed at the lower side of FIG.
  • An example preferable from the viewpoint of for example, the power consumption of the product-sum operation unit 1 is suppressed) is shown.
  • the variable resistance element used as the product calculation element in the present invention is an element that changes its electrical resistance reversibly with respect to external stimuli (current, voltage, magnetic field, etc.).
  • a resistance change element for example, a resistance change memory (RRAM) element, a phase change memory (PCRAM) element, an anisotropic magnetoresistance effect (AMR) element, a tunnel magnetoresistance effect (TMR) element, a giant magnetoresistance effect ( GMR) elements and the like.
  • each of the product calculation elements 10AA to 10AC and 10BA to 10BC and the alternative elements 10AX and 10BX is a magnetoresistance effect element exhibiting a magnetoresistance effect.
  • the resistance value of V.sub.2 can differ by three or more digits.
  • FIG. 4 is a perspective view showing an example of the magnetoresistance effect element A constituting each of the product calculation elements 10AA to 10AC and 10BA to 10BC and the alternative elements 10AX and 10BX of the product-sum calculation unit 1 of the first embodiment.
  • the magnetoresistance effect element A has a magnetization free layer A1 having a domain wall DW, a magnetization fixed layer A2 in which the magnetization direction is fixed, and a nonmagnetic layer A3.
  • the nonmagnetic layer A3 is sandwiched between the magnetization free layer A1 and the magnetization fixed layer A2.
  • the magnetization free layer A1 has a first region A11 on one side of the domain wall DW and a second region A12 on the other side of the domain wall DW.
  • a write terminal AA is provided in the first area A11.
  • a common terminal AB is provided in the second area A12.
  • the magnetization fixed layer A2 is provided with a read terminal AC.
  • the moving amount (moving distance) of the domain wall DW can be variably controlled by adjusting the magnitude and time of the write current flowing between the write terminal AA and the common terminal AB.
  • the magnitude and time of the write current can also be set, for example, by the number of pulses or the pulse width to determine the amount of movement (moving distance) of the domain wall DW.
  • the magnetization fixed layer A2 is a layer in which the magnetization is oriented and fixed in a first direction (for example, leftward in FIG. 4).
  • that the magnetization is fixed means that the magnetization direction does not change (the magnetization is fixed) before and after the writing using the write current.
  • the magnetization fixed layer A2 is an in-plane magnetization film whose magnetization has in-plane magnetic anisotropy (in-plane magnetization easy axis).
  • the magnetization fixed layer A2 is not limited to the in-plane magnetization film, and may be a perpendicular magnetization film having perpendicular magnetic anisotropy (perpendicular magnetization easy axis).
  • the magnetization fixed layer A2 When the magnetization fixed layer A2 is an in-plane magnetization film, the magnetization fixed layer A2 has a high MR ratio (the rate of change in magnetoresistance), is less susceptible to spin transfer torque (STT) at the time of reading, and can increase the reading voltage.
  • STT spin transfer torque
  • a known material can be used for the magnetization fixed layer A2.
  • a metal selected from the group consisting of Cr, Mn, Co, Fe and Ni, and an alloy exhibiting one or more of these metals and exhibiting ferromagnetism can be used.
  • an alloy containing these metals and one or more elements of B, C, and N can also be used.
  • Co-Fe and Co-Fe-B can be mentioned.
  • a Heusler alloy such as Co 2 FeSi can also be used for the magnetization fixed layer A2.
  • the Heusler alloy contains an intermetallic compound having a chemical composition of X 2 YZ, X is a transition metal element or noble metal element of Co, Fe, Ni, or Cu group on the periodic table, and Y is Mn, V , A transition metal of Cr or Ti group and can also take an element species of X, and Z is a typical element of Group III to V.
  • Co 2 FeSi, Co 2 MnSi, Co 2 Mn 1-a Fe a Al b Si 1-b and the like can be mentioned.
  • the magnetization fixed layer A2 may be a synthetic structure comprising a ferromagnetic layer or a nonmagnetic layer, or a synthetic structure comprising an antiferromagnetic layer, a ferromagnetic layer or a nonmagnetic layer. In the latter, the magnetization direction of the magnetization fixed layer A2 is strongly held by the antiferromagnetic layer in the synthetic structure. Therefore, the magnetization of the magnetization fixed layer A2 is less likely to be affected by the outside.
  • the magnetization fixed layer A2 In order to orient the magnetization of the magnetization fixed layer A2 in the XY plane (make the magnetization fixed layer A2 an in-plane magnetization film), it is preferable to use, for example, NiFe. On the other hand, in the case of orienting the magnetization of the magnetization fixed layer A2 in the Z direction (making the magnetization fixed layer A2 a perpendicular magnetization film), it is preferable to use, for example, a Co / Ni laminated film, a Co / Pt laminated film or the like.
  • the magnetization fixed layer A2 may be [Co (0.24 nm) / Pt (0.16 nm)] 6 / Ru (0.9 nm) / [Pt (0.16 nm) / Co (0.16 nm)] 4 / Ta If 0.2 nm) / FeB (1.0 nm), then it becomes a perpendicular magnetization film.
  • the nonmagnetic layer A3 is provided on the lower surface of the magnetization fixed layer A2.
  • the magnetoresistive element A reads out a change in the magnetization state of the magnetization free layer A1 with respect to the magnetization fixed layer A2 as a change in resistance value via the nonmagnetic layer A3. That is, the magnetization fixed layer A2, the nonmagnetic layer A3 and the magnetization free layer A1 function as the magnetoresistance effect element A, and when the nonmagnetic layer A3 is made of an insulator, it has a configuration similar to a tunnel magnetoresistance (TMR) element. When the nonmagnetic layer 2 is made of metal, the structure is similar to a giant magnetoresistive (GMR) element.
  • GMR giant magnetoresistive
  • the nonmagnetic layer A3 As a material of the nonmagnetic layer A3, a known material that can be used for the nonmagnetic layer of the magnetoresistive element A can be used.
  • the nonmagnetic layer A3 is made of an insulator (in the case of a tunnel barrier layer)
  • the material is Al 2 O 3 , SiO 2 , MgO, MgAl 2 O 4 , ZnAl 2 O 4 , MgGa 2 O 4 , ZnGa 2 O 4 , MgIn 2 O 4 , ZnIn 2 O 4 , and multilayer films or mixed composition films of these materials can be used.
  • materials in which a part of Al, Si and Mg is substituted by Zn, Be and the like can also be used.
  • MgO and MgAl 2 O 4 are materials that can realize coherent tunneling, and therefore, the magnetoresistance ratio (MR ratio) can be made large.
  • the nonmagnetic layer 2 is made of metal, Cu, Al, Ag or the like can be used as the material.
  • the nonmagnetic layer A3 is an insulator (in the case of a tunnel barrier layer)
  • its thickness is, for example, 2.5 nm or more.
  • the magnetization free layer A1 corresponds to the domain wall drive layer of the domain wall drive (moving) MRAM.
  • the magnetization free layer A1 is made of a ferromagnetic material, and the direction of magnetization in the inside is reversible.
  • the magnetization free layer A1 has a first region A11 in which the magnetization is oriented in a second direction opposite to the magnetization fixed layer A2, a second region A12 in which the magnetization is oriented in the same direction as the first direction, and these regions And a domain wall DW forming an interface of The magnetization directions of the first area A11 and the second area A12 are opposite to each other across the domain wall DW.
  • the domain wall DW moves by changing the composition ratio of the first area A11 and the second area A12 in the magnetization free layer A1.
  • a known material can be used as the material of the magnetization free layer A1, and in particular, a soft magnetic material can be applied.
  • a metal selected from the group consisting of Cr, Mn, Co, Fe and Ni, an alloy containing one or more of these metals, these metals and one or more elements of B, C, and N An alloy etc. contained can be used.
  • Co--Fe, Co--Fe--B, and Ni--Fe are listed as the material of the magnetization free layer A1.
  • a material having a small saturation magnetization can also be used as the material of the magnetization free layer A1.
  • a material with small saturation magnetization such as (MnGa) As, (InFe) As, or a Co / Tb multilayer film or GdFeCo is used
  • the domain wall DW of the magnetization free layer A1 can be driven with a small current density.
  • these materials are used, the driving speed of the domain wall DW is reduced.
  • the driving speed of the domain wall DW is high, and the domain wall DW operates at a speed of 100 m / sec or more. That is, the domain wall DW moves a distance of 1 ⁇ m with a pulse of 10 nsec. Therefore, when moving the magnetization free layer A1 in the device in an analog manner, measures such as applying a minute pulse using an expensive semiconductor circuit or making the magnetization free layer sufficiently long at the expense of integration are necessary. It will be necessary. On the other hand, in the case of a material having a slow driving speed of the domain wall DW, an analog memory can be formed even when a sufficiently long pulse current is applied or the length of the magnetization free layer A1 is short.
  • the magnetization free layer A1 is a perpendicular magnetization film
  • a perpendicular magnetization film selected from the group consisting of a Co / Pt multilayer film, a Co / Pd multilayer film, and a CoCrPt alloy film is preferable.
  • the length of the magnetization free layer A1 extending in the longitudinal direction is preferably 60 nm or more. If it is less than 60 nm, it is likely to be a single magnetic domain, and the domain wall DW is not easily formed in the magnetization free layer A1.
  • the thickness of the magnetization free layer A1 is not particularly limited as long as it functions as a domain wall driving layer, but can be, for example, 2 nm to 60 nm.
  • the thickness of the magnetization free layer A1 is 60 nm or more, the possibility of forming a domain wall in the stacking direction increases. However, whether or not the domain wall is formed in the stacking direction depends on the balance with the shape anisotropy of the magnetization free layer A1. If the thickness of the magnetization free layer A1 is less than 60 nm, it is unlikely that the domain wall DW can be produced.
  • the magnetization free layer A1 may have a domain wall pinning portion for stopping the movement of the domain wall DW on the side surface of the layer. For example, when the unevenness, groove, swelling, constriction, notch or the like is provided at the position where the movement of the domain wall DW of the magnetization free layer A1 is to be stopped, the movement of the domain wall can be stopped (pinned). If the domain wall pinning portion is provided, the domain wall can not be moved further if a current equal to or higher than the threshold is supplied, and the output signal is not analog but is easily converted into multiple values.
  • the domain wall DW can be held more stably by forming the domain wall pinning portions at predetermined distances, enabling stable multi-level recording, and more stable multi-leveled output Allows to read out the signal.
  • the first direction same as the magnetization of the first region A11
  • a second magnetization supply layer A5 having a magnetization in the second direction that is the same as the magnetization of the second region A12.
  • materials of the first magnetization supply layer A4 and the second magnetization supply layer A5 the same materials as the ferromagnetic materials usable for the magnetization fixed layer A2 can be used.
  • the first magnetization supply layer A4 and the second magnetization supply layer A5 are used as layers in which the magnetization is fixed to both ends of the magnetization free layer A1.
  • a spin-orbit torque (SOT) wire may be used which contacts the magnetization free layer A1 and extends in a direction intersecting with the longitudinal direction of the magnetization free layer A1 for one or both of them.
  • the spin orbit torque wiring is made of a material in which a pure spin current is generated by the spin Hall effect when current flows.
  • the first magnetization supply layer A4 and the second magnetization supply layer A5 are used as layers in which the magnetization is fixed to both ends of the magnetization free layer A1.
  • a magnetic field application wire which is electrically insulated from the magnetization free layer A1 and extends in a direction intersecting with the magnetization free layer A1 in one or both of them.
  • the end portions of the magnetization free layer A1 are opposite to each other in the in-plane magnetization direction according to the direction of the current supplied to the magnetic field application wiring.
  • the magnetization of one of the in-plane magnetization directions can be supplied.
  • one of the perpendicular magnetization directions opposite to each other is applied to the end portion of the magnetization free layer A1 according to the direction of the current supplied to the magnetic field application wiring.
  • the magnetization in one perpendicular magnetization direction can be supplied.
  • the first magnetization supply layer A4 and the second magnetization supply layer A5 are used as layers in which the magnetization is fixed to both ends of the magnetization free layer A1.
  • a voltage application terminal connected to the magnetization free layer A1 via the insulating layer may be used for either or both.
  • part of the magnetization is oriented in a direction perpendicular to the magnetization direction of the magnetization free layer A1 when the voltage is applied, and when the voltage application stops, the magnetization free layer A1 Magnetization is oriented in a first direction or in a second direction opposite thereto. Whether magnetization oriented in this orthogonal direction falls in the first direction or in the second direction opposite to it is equal probability, and the timing, frequency, and period of applying the pulse voltage are adjusted to adjust the magnetization. A portion can be oriented from the first direction to the second direction.
  • a magnetic coupling layer may be provided between the magnetization free layer A1 and the nonmagnetic layer A3.
  • the magnetic coupling layer is a layer to which the magnetization state of the magnetization free layer A1 is transferred.
  • the main function of the magnetization free layer A1 is to drive the domain wall, and it is not always possible to select a material suitable for the magnetoresistive effect generated through the magnetization fixed layer A1 and the nonmagnetic layer A2.
  • a ferromagnetic material having a BCC structure is preferable for the magnetization fixed layer A1 and the magnetic coupling layer in order to cause a coherent tunneling effect using the nonmagnetic layer A2.
  • a large output can be obtained when a material having a composition of Co—Fe—B is prepared by sputtering as the material of the magnetization fixed layer A1 and the magnetic coupling layer.
  • FIG. 5 is a flowchart showing an example of processing executed by the product-sum operation unit 1 of the first embodiment.
  • the product-sum operation unit 1 operates in the normal mode in which the normal product-sum operation is performed by the product operation unit 10 and the sum operation unit 11, and the product operation elements 10 AA to 10 AC and 10 BA to 10 BC by the inspection unit 13.
  • an inspection mode in which the inspection of
  • step S10 it is determined whether the product-sum operation unit 1 is in the normal mode or in the inspection mode. If the product-sum operation unit 1 is in the normal mode, the process proceeds to step S11. If the product-sum operation unit 1 is in the inspection mode, the process proceeds to step S12. In step S11, the product calculation unit 10 and the sum calculation unit 11 perform normal product-sum calculation.
  • step S12 the inspection unit 13 inspects the product calculation elements 10AA to 10AC and 10BA to 10BC.
  • the inspection unit 13 checks whether the product calculation element 10AA is broken, whether the product calculation element 10AB is broken, and the product calculation element 10AC is broken.
  • the function replacement unit 14 determines whether any one of the product calculation elements 10AA to 10AC and 10BA to 10BC is broken based on the inspection result of the inspection unit 13. If any one of the product operation elements 10AA to 10AC and 10BA to 10BC is broken, the process proceeds to step S14, and if all the product operation elements 10AA to 10AC and 10BA to 10BC are normal, the process shown in FIG. End the routine
  • step S14 the function replacement unit 14 performs function replacement from the failed product calculation element to the alternative elements 10AX and 10BX. That is, the function replacing unit 14 causes the alternative elements 10 ⁇ / b> AX and 10 ⁇ / b> BX to perform the product operation performed before the failed product operation element fails. For example, when the inspection unit 13 determines that the product calculation element 10AA is broken, the function replacing unit 14 performs the product calculation performed by the broken product calculation element 10AA before the failure to the alternative element 10AX. Let Specifically, for example, the function replacement unit 14 changes the resistance value of the alternative element 10AX from the above-described intermediate value to the resistance value of the product calculation element 10AA before failure.
  • the resistance value of the product calculation element 10AA before failure is stored in a storage unit (not shown).
  • the function replacing unit 14 reads the resistance value from the storage unit and changes the resistance value of the alternative element 10AX to the resistance value.
  • the inspection unit 13 determines that the product operation element 10AB is faulty
  • the function replacement unit 14 performs the product operation performed by the failed product operation element 10AB before the failure to the alternative element 10AX. Let it go.
  • the function replacing unit 14 performs the product calculation performed by the broken product calculation element 10AC before the failure to the alternative element 10AX.
  • the function replacement unit 14 performs the product calculation performed by the broken product calculation element 10BA before the failure to the alternative element 10BX. Let Specifically, for example, the function replacement unit 14 changes the resistance value of the alternative element 10BX from the above-described intermediate value to the resistance value of the product calculation element 10BA before failure. Similarly, when the inspection unit 13 determines that the product calculation element 10BB is broken, the function replacement unit 14 performs the product calculation performed by the broken product calculation element 10BB before the failure into the alternative element 10BX. Let it go. In addition, when the inspection unit 13 determines that the product calculation element 10BC is broken, the function replacement unit 14 performs the product calculation performed by the broken product calculation element 10BC before the failure to the alternative element 10BX. Let
  • FIG. 6 is a diagram showing a second example of the configuration of part of the product-sum operation unit 1 of the first embodiment.
  • the alternative element 10AX is disposed on the opposite side (upper side of FIG. 1) of the output detector 11A across the plurality of product calculation elements 10AA, 10AB and 10AC.
  • the output detector 11A is disposed on the opposite side (the lower side of FIG.
  • the plurality of product calculation elements 10BA, 10BB, and 10BC are disposed on the opposite side (the lower side in FIG. 6) with the alternative element 10BX interposed therebetween. That is, in FIG. 6, when the alternative elements 10AX and 10BX are disposed at the lower side of FIG. 6, the wiring resistance of the product-sum operation unit 1 is higher than when the alternative elements 10AX and 10BX are disposed at the upper side of FIG. An example preferable from the viewpoint of (for example, the power consumption of the product-sum operation unit 1 is suppressed) is shown.
  • FIG. 7 is a diagram showing a third example of the configuration of a part of the product-sum operation unit 1 of the first embodiment.
  • the alternative element 10AX is disposed between the product operation element 10AA and the product operation element 10AC among the plurality of product operation elements 10AA, 10AB, and 10AC
  • the alternative element 10BX is a plurality of product operations. It is disposed between the product operation element 10BA and the product operation element 10BC among the elements 10BA, 10BB and 10BC. That is, FIG. 7 shows the alternative elements 10AX and 10BX when the alternative element 10AX is disposed between the plurality of product calculation elements 10AA-10AC and the alternative element 10BX is disposed between the plurality of product calculation elements 10BA-10BC.
  • FIG. 8 is a view showing an application example of the product-sum operation unit 1 of the first embodiment.
  • the product-sum operation unit 1 of the first embodiment is applied to the neuromorphic device 100.
  • the neuromorphic device 100 includes an input layer 101, a hidden layer 102, an output layer 103, the product-sum calculator 1 of the first embodiment, and the product-sum calculator 2.
  • the product-sum operation unit 2 has a plurality of product operation elements as in the product-sum operation unit 1 of the first embodiment shown in FIG. 1, FIG. 6 or FIG.
  • the input layer 101 includes, for example, four nodes 101A, 101B, 101C, and 101D.
  • the hidden layer 102 comprises, for example, three nodes 102A, 102B, 102C.
  • the output layer 103 includes, for example, three nodes 103A, 103B, and 103C.
  • the product-sum operation unit 1 is disposed between the input layer 101 and the hidden layer 102, and includes four nodes 101A, 101B, 101C, and 101D of the input layer 101, and three nodes 102A, 102B, and 102C of the hidden layer 102, and Connect
  • the product-sum operation unit 1 changes the weight by changing the resistance values of the product operation elements 10AA to 10AC and 10BA to 10BC shown in FIG. 1, FIG. 6 or FIG.
  • the product-sum operation unit 2 is disposed between the hidden layer 102 and the output layer 103.
  • the product-sum operation unit 2 connects the three nodes 102 A, 102 B and 102 C of the hidden layer 102 and the three nodes 103 A, 103 B and 103 C of the output layer 103.
  • the product-sum operation unit 2 changes the weight by changing the resistance values of the plurality of product operation elements.
  • the hidden layer 102 uses an activation function (eg, a sigmoid function).
  • the inventor of the present invention has found that the characteristics of the product operation elements 10AA to 10AC and 10BA to 10BC constituting the product-sum operation unit 1 change due to some factor (in detail, product operation elements 10AA to 10AC, 10BA to 10BC) ) Has been found to reduce the functionality of the neuromorphic device 100.
  • an alternative is used instead of the failed product operation element when any one of the plurality of product operation elements 10AA to 10AC and 10BA to 10BC fails.
  • Elements 10AX, 10BX are provided. Therefore, in the product-sum operation unit 1 of the first embodiment, when any one of the plurality of product operation elements 10AA to 10AC and 10BA to 10BC fails, the product operation element that has failed is performed before the failure. By causing the alternative elements 10AX and 10BX to perform the calculation, the functional deterioration of the neuromorphic device 100 can be suppressed more than when the alternative elements 10AX and 10BX are not provided.
  • the inspection unit 13 performs the product operation based on the outputs from the product operation elements 10AA to 10AC detected by the output detector 11A. It is determined whether or not each of arithmetic elements 10AA-10AC is broken, and each of product arithmetic elements 10BA-10BC is broken based on the outputs from product arithmetic elements 10BA-10BC detected by output detector 11B. It is determined whether the Therefore, according to the product-sum operation unit 1 of the first embodiment, the product operation elements 10AA to 10AC and 10BA to 10BC are used not only at the manufacturing stage of the product-sum operation unit 1 but also when the product-sum operation unit 1 is used. Failure can be detected.
  • the function replacement The unit 14 causes the alternative elements 10 ⁇ / b> AX and 10 ⁇ / b> BX to perform the product operation performed by the failed product operation element before the failure. Therefore, according to the product-sum operation unit 1 of the first embodiment, the product-sum operation unit 1 is kept operating normally even when any one of the product operation elements 10AA to 10AC and 10BA to 10BC fails.
  • the product-sum calculator 1 of the first embodiment is applied to a neural network, the performance of the neural network can be maintained.
  • the resistance values of the alternative elements 10AX and 10BX for performing the product operation performed by the failed product operation element before the failure are the alternative elements 10AX.
  • 10BX is preset to an intermediate value smaller than the minimum value of the resistance value variation range and smaller than the maximum value of the resistance value variation range. Therefore, according to the product-sum operation unit 1 of the first embodiment, the resistance value is changed when the resistance values of the alternative elements 10AX and 10BX are changed from the above-described intermediate value to the resistance value of the product operation element before failure. The required time can be shortened on average.
  • each of the product operation elements 10AA to 10AC, 10BA to 10BC and the alternative elements 10AX, 10BX reads the write terminal AA, the common terminal AB, and A magnetoresistive effect element A having a terminal AC and exhibiting a magnetoresistive effect.
  • the magnetoresistive element A includes a magnetization free layer A1 having a domain wall DW, a magnetization fixed layer A2 in which the magnetization direction is fixed, and a nonmagnetic layer A3 sandwiched between the magnetization free layer A1 and the magnetization fixed layer A2.
  • the product operation elements 10AA to 10AC and 10BA to 10BC are resistance values during normal operation and failure (in detail, failure at which the output current increases). An element having a large difference from the resistance value is used. Therefore, according to the product-sum operation unit 1 of the first embodiment, an element having a small difference between the resistance value at the time of normal operation and the resistance value at the time of failure (specifically, failure at which the output current becomes large) is used. It is possible to more accurately detect failures that may significantly reduce the performance of the neural network than in the case of
  • the alternative element 10AX is used instead of the broken product calculation element.
  • the substitute element 10BX is used instead of the broken product calculation element.
  • a defective (failed) product operation element instead of using the alternative element 10AX, if one of the product operation elements 10BA, 10BB, and 10BC is found to be defective (defective) at the time of manufacture of the product-sum operation unit 1, the defective (failed) product operation element is substituted.
  • the alternative element 10BX may be used.
  • Second Embodiment (Variable resistance element is a general variable resistance)
  • a second embodiment of the product-sum operation unit of the present invention will be described.
  • the product-sum operation unit 1 of the second embodiment is configured in the same manner as the product-sum operation unit 1 of the first embodiment described above except for the points described later. Therefore, according to the product-sum calculator 1 of the second embodiment, the same effects as those of the product-sum calculator 1 of the first embodiment described above can be obtained except for the points described later.
  • FIG. 9 is a diagram showing an example of a part of the product-sum operation unit 1 of the second embodiment.
  • the product operation elements 10AA to 10AC and 10BA to 10BC and the alternative elements 10AX and 10BX are constituted by magnetoresistance effect elements, but the product-sum operation unit 1 of the second embodiment
  • the product calculation elements 10AA to 10AC and 10BA to 10BC and the alternative elements 10AX and 10BX are configured by general resistance change elements (variable resistances).
  • each of the product calculation elements 10AA to 10AC, 10BA to 10BC and the alternative elements 10AX and 10BX has a read terminal, a write terminal, and a common terminal.
  • each of the product calculation elements 10AA to 10AC, 10BA to 10BC and the alternative elements 10AX, 10BX has a first terminal and a second terminal.
  • the first terminals of the product calculation elements 10AA and 10BA are connected to the line L11.
  • the first terminals of the product calculation elements 10AB and 10BB are connected to the line L21.
  • the first terminals of the product calculation elements 10AC and 10BC are connected to the line L31.
  • the first terminals of the alternative elements 10AX, 10BX are connected to the line LX1.
  • the second terminals of the product calculation elements 10AA to 10AC and the alternative element 10AX are connected to the line M1.
  • the second terminals of the product calculation elements 10BA to 10BC and the alternative element 10BX are connected to the line M2.
  • the sum operation unit 11 outputs a product when the alternative element 10BX is not used and an output detector 11A that detects the total value of the outputs from the second terminals of the product arithmetic elements 10AA to 10AC when the alternative element 10AX is not used.
  • an output detector 11B for detecting the total value of the outputs from the second terminals of the computing elements 10BA to 10BC.
  • the product-sum calculator 1 of the third embodiment is configured in the same manner as the product-sum calculator 1 of the first embodiment described above, except for the points described later. Therefore, according to the product-sum calculator 1 of the third embodiment, the same effects as those of the product-sum calculator 1 of the first embodiment can be obtained except for the points described later.
  • FIG. 10 is a diagram showing an example of a part of the product-sum operation unit 1 of the third embodiment.
  • the product operation unit 10 does not have a spare column, but in the example shown in FIG. 10, the product operation unit 10 has a spare column 10X.
  • the spare column 10X is provided with a product calculation alternative element 10XA, a product calculation alternative element 10XB, and a product calculation alternative element 10XC.
  • the spare column 10X is used instead of the column 10A when any one of the product operation elements 10AA to 10AC of the column 10A fails.
  • the spare column 10X is used instead of the column 10B when one of the product operation elements 10BA to 10BC in the column 10B fails.
  • each of the plurality of product operation alternative elements 10XA to 10XC has a resistance change including a read terminal, a write terminal, and a common terminal, similarly to the product operation elements 10AA to 10AC and 10BA to 10BC. It is an element.
  • the read terminal of the product calculation alternative element 10XA is connected to the line L11.
  • the line L11 is connected to an input unit 12A which inputs signals to the product calculation elements 10AA and 10BA and the product calculation alternative element 10XA.
  • the write terminal of the product calculation alternative element 10XA is connected to the line L12.
  • the read terminal of the product calculation alternative element 10XB is connected to the line L21.
  • the line L21 is connected to the input unit 12B which inputs signals to the product calculation elements 10AB and 10BB and the product calculation alternative element 10XB.
  • the write terminal of the product calculation alternative element 10XB is connected to the line L22.
  • the read terminal of the product calculation alternative element 10XC is connected to the line L31.
  • the line L31 is connected to an input unit 12C that inputs signals to the product calculation elements 10AC and 10BC and the product calculation alternative element 10XC.
  • the write terminal of the product calculation alternative element 10XC is connected to the line L32.
  • the common terminals of the product calculation alternative elements 10XA, 10XB, 10XC are connected to the line MX. That is, although the input unit 12X and the lines LX1 and LX2 are provided in the example illustrated in FIG. 1, the input unit 12X and the lines LX1 and LX2 are not provided in the example illustrated in FIG.
  • the sum calculation unit 11 includes an output detector 11A, an output detector 11B, and an alternative output detector 11X.
  • the alternative output detector 11X is disposed on the line MX.
  • the alternative output detector 11X detects the sum of outputs from the product calculation alternative elements 10XA, 10XB, 10XC.
  • the product calculation alternative elements 10XA to 10XC of the spare column 10X are used. Absent. For example, when one of the product calculation elements 10AA to 10AC of the column 10A fails, the spare column 10X is used instead of the column 10A.
  • the function replacement unit 14 causes the plurality of product operation alternative elements 10XA, 10XB, 10XC to perform the product operation performed by the plurality of product operation elements 10AA, 10AB, 10AC before the failure.
  • the function replacement unit 14 sets the resistance values of the plurality of product operation alternative elements 10XA, 10XB, 10XC to values equal to the resistance values of the plurality of product operation elements 10AA, 10AB, 10AC before the failure.
  • the function replacement unit 14 detects the plurality of product calculation elements 10BA, 10BB, and 10BC before the failure.
  • the plurality of product operation alternative elements 10XA, 10XB, and 10XC perform the product operation performed in the above.
  • the function replacement unit 14 sets resistance values of the plurality of product operation alternative elements 10XA, 10XB, 10XC to values equal to the resistance values of the plurality of product operation elements 10BA, 10BB, 10BC before the failure.
  • the product operation unit 10 includes one spare column 10X in the example illustrated in FIG. 10, the product operation unit 10 may include an arbitrary number of two or more spare columns in another example. .
  • FIG. 11 is a flow chart showing an example of processing executed by the product-sum operation unit 1 of the third embodiment.
  • the product-sum operation unit 1 operates in the normal mode in which normal product-sum operations are performed by the product operation unit 10 and the sum operation unit 11, and product operation elements 10 AA to 10 AC and 10 BA to 10 BC by the inspection unit 13 And an inspection mode in which the inspection of
  • the product-sum operation unit 1 executes the same process as step S10 in FIG.
  • the product calculation unit 10 and the sum calculation unit 11 execute the same processing as step S11 in FIG.
  • step S12 the inspection unit 13 executes the same process as step S12 in FIG.
  • step S13 for example, the function replacement unit 14 executes the same process as step S13 in FIG. If any one of the product calculation elements 10AA to 10AC and 10BA to 10BC is broken, the process proceeds to step S20, and if all the product calculation elements 10AA to 10AC and 10BA to 10BC are normal, FIG. End the routine
  • step S20 if any one of the product operation elements 10AA to 10AC is broken, the function replacement unit 14 performs a plurality of product operations performed by the plurality of product operation elements 10AA, 10AB, and 10AC before the failure.
  • the operation substitute elements 10XA, 10XB and 10XC are operated.
  • the function replacement unit 14 is for a plurality of product operations for the product operation performed by the plurality of product operation elements 10BA, 10BB, and 10BC before the failure.
  • the alternative elements 10XA, 10XB and 10XC are operated.
  • the function replacement unit 14 causes the plurality of product operation alternative elements 10XA, 10XB, and 10XC to perform the product operations performed by the plurality of product operation elements 10AA, 10AB, and 10AC before the failure.
  • the resistance values of the plurality of product operation alternative elements 10XA, 10XB, 10XC are set to values equal to the resistance values of the plurality of product operation elements 10AA, 10AB, 10AC before the failure.
  • the resistance values of the product calculation elements 10AA, 10AB, and 10AC before the failure are stored in a storage unit (not shown).
  • the function replacing unit 14 reads the resistance values from the storage unit and changes the resistance values of the plurality of product operation alternative elements 10XA, 10XB, and 10XC into their resistance values.
  • the function replacing unit 14 performs a plurality of product operations when the plurality of product operation substitutes 10XA, 10XB, 10XC perform the product operations performed by the plurality of product operation elements 10BA, 10BB, 10BC before the failure.
  • the resistance values of the substitute elements 10XA, 10XB, and 10XC are set to values equal to the resistance values of the plurality of product calculation elements 10BA, 10BB, and 10BC before the failure.
  • the product-sum operation unit 1 of the fourth embodiment is configured in the same manner as the product-sum operation unit 1 of the third embodiment described above, except for the points described later. Therefore, according to the product-sum calculator 1 of the fourth embodiment, the same effects as those of the product-sum calculator 1 of the third embodiment described above can be obtained except for the points described later.
  • FIG. 12 is a diagram showing an example of a part of the product-sum operation unit 1 of the fourth embodiment.
  • the product operation elements 10AA to 10AC and 10BA to 10BC and the alternative elements for product operation 10XA to 10XC are constituted by magnetoresistance effect elements, but the product-sum according to the fourth embodiment
  • product computing elements 10AA to 10AC, 10BA to 10BC and alternative elements for product computing 10XA to 10XC are configured by general resistance change elements (variable resistors).
  • each of the product operation elements 10AA to 10AC, 10BA to 10BC and the alternative elements for product operation 10XA to 10XC has a read terminal, a write terminal, and a common terminal.
  • each of the product calculation elements 10AA to 10AC, 10BA to 10BC and the product calculation alternative elements 10XA to 10XC has a first terminal and a second terminal.
  • the first terminals of the product calculation elements 10AA and 10BA and the product calculation alternative element 10XA are connected to the line L11.
  • the first terminal of the product operation element 10AB and the 10BB product operation alternative element 10XB is connected to the line L21.
  • the first terminal of the product operation element 10AC, the 10BC product operation alternative element 10XC is connected to the line L31.
  • the second terminals of the product calculation elements 10AA to 10AC are connected to the line M1.
  • the second terminals of the product calculation elements 10BA to 10BC are connected to the line M2.
  • Second terminals of the product calculation alternative elements 10XA to 10XC are connected to the line MX.
  • the sum operation unit 11 detects the total value of the outputs from the second terminals of the product operation elements 10BA to 10BC and the output detector 11A that detects the total value of the outputs from the second terminals of the product operation elements 10AA to 10AC.
  • An output detector 11B and an alternative output detector 11X for detecting the sum of outputs from the second terminals of the product calculation alternative elements 10XA to 10XC.
  • the product-sum operation unit 1 of the fifth embodiment is configured in the same manner as the product-sum operation unit 1 of the first embodiment described above, except for the points described later. Therefore, according to the product-sum calculator 1 of the fifth embodiment, the same effects as those of the product-sum calculator 1 of the first embodiment can be obtained except for the points described later.
  • FIG. 13 is a diagram showing an example of a part of the product-sum operation unit 1 of the fifth embodiment.
  • FIG. 14 is a diagram showing an example of the entire configuration of the product-sum operation unit 1 of the fifth embodiment.
  • the product-sum operation unit 1 of the fifth embodiment includes the product operation unit 10, the sum operation unit 11, the input unit 12, the inspection unit 13, and the function replacement unit 14.
  • the product calculation unit 10 includes a column 10A and a column 10B.
  • the input unit 12 includes variable input units 121A and 121B and fixed input units 122A and 122X.
  • the column 10A includes variable input product operation elements 10A1A and 10A1B, fixed input product operation elements 10A2A, and fixed input alternative elements 10A2X.
  • the fixed input alternative element 10A2X is used instead of the fixed input product operation element 10A2A when the fixed input product operation element 10A2A fails.
  • the column 10B includes variable input product operation elements 10B1A and 10B1B, a fixed input product operation element 10B2A, and a fixed input alternative element 10B2X.
  • the fixed input alternative element 10B2X is used instead of the fixed input product operation element 10B2A when the fixed input product operation element 10B2A fails.
  • FIG. 13 the example shown in FIG.
  • the column 10A includes two variable input product operation elements 10A1A and 10A1B, one fixed input product operation element 10A2A, one fixed input alternative element 10A2X, and two columns 10B.
  • variable input product operation elements 10B1A and 10B1B, one fixed input product operation element 10B2A, and one fixed input alternative element 10B2X are provided, in another example, column 10A is any other than 2
  • the column 10B includes a number (specifically, a plurality of) variable input product operation elements, an arbitrary number of fixed input product operation elements other than 1 and an arbitrary number of fixed input alternative elements other than 1 , And any number (specifically, a plurality) of variable input product operation elements other than 2 and any number of fixed input product operation elements other than 1 and any number of fixed input alternative elements other than 1 and May be provided
  • each of a plurality of variable input product operation elements 10A1A, 10A1B, 10B1A, 10B1B, a plurality of fixed input product operation elements 10A2A, 10B2A and a plurality of fixed input alternative elements 10A2X, 10B2X are read out.
  • This is a variable resistance element including a terminal, a write terminal, and a common terminal.
  • the read terminals of the variable input product arithmetic elements 10A1A and 10B1A are connected to the line L11.
  • the line L11 is connected to a variable input unit 121A that inputs variable signals to the variable input product operation elements 10A1A and 10B1A.
  • the write terminals of the variable input product arithmetic elements 10A1A and 10B1A are connected to the line L12.
  • the read terminals of the variable input product arithmetic elements 10A1B and 10B1B are connected to the line L21.
  • the line L21 is connected to a variable input unit 121B that inputs variable signals to the variable input product arithmetic elements 10A1B and 10B1B.
  • the write terminals of the variable input product arithmetic elements 10A1B and 10B1B are connected to the line L22.
  • the read terminals of the fixed input product arithmetic elements 10A2A and 10B2A are connected to the line L31.
  • the line L31 is connected to a fixed input unit 122A which inputs a fixed signal which is a signal determined for the fixed input product arithmetic elements 10A2A and 10B2A.
  • the write terminals of the fixed input product arithmetic elements 10A2A and 10B2A are connected to the line L32.
  • the read terminals of the fixed input alternative elements 10A2X and 10B2X are connected to the line L41.
  • the line L41 is connected to a fixed input unit 122X which inputs a fixed signal which is a signal determined for the fixed input alternative elements 10A2X and 10B2X.
  • the write terminals of the fixed input alternative elements 10A2X and 10B2X are connected to the line L42.
  • Fixed signals input to the fixed input product operation elements 10A2A and 10B2A and fixed input alternative elements 10A2X and 10B2X are variable signals input to the variable input product operation elements 10A1A, 10A1B, 10B1A and 10B1B. Synchronized.
  • the common terminals of the variable input product operation elements 10A1A and 10A1B, the fixed input product operation elements 10A2A, and the fixed input alternative element 10A2X are connected to the line M1.
  • the common terminals of variable input product operation elements 10B1A and 10B1B, fixed input product operation element 10B2A, and fixed input alternative element 10B2X are connected to line M2.
  • the sum calculation unit 11 includes output detectors 11A and 11B. When the fixed input alternative element 10A2X is not used, the output detector 11A detects the total value of the outputs from the variable input product operation elements 10A1A and 10A1B and the fixed input product operation element 10A2A.
  • the output detector 11A outputs the variable input product A total value of outputs from the arithmetic elements 10A1A, 10A1B and the fixed input alternative element 10A2X is detected.
  • the output detector 11B detects the total value of the outputs from the variable input product operation elements 10B1A and 10B1B and the fixed input product operation element 10B2A.
  • the output detector 11B generates the variable input product The total value of the outputs from the arithmetic elements 10B1A and 10B1B and the fixed input alternative element 10B2X is detected.
  • the output detector 11A is disposed on the line M1.
  • the output detector 11B is disposed on the line M2.
  • the inspection unit 13 inspects whether or not the fixed input product arithmetic operation element 10A2A is out of order.
  • the variable input portion 121A does not input a signal to the variable input product operation element 10A1A
  • the variable input portion 121B is A state in which no signal is input to variable input product operation element 10A1B, a state in which fixed input portion 122X does not input a signal to fixed input alternative element 10A2X
  • fixed input portion 122A is a product operation for fixed input
  • the output detector 11A detects the output from the fixed input product arithmetic element 10A2A.
  • the inspection unit 13 determines, based on the detection value of the output detector 11A, whether or not the fixed input product arithmetic element 10A2A is broken.
  • the inspection unit 13 inspects whether or not the fixed input product arithmetic element 10B2A is broken.
  • the variable input portion 121A does not input a signal to the variable input product operation element 10B1A
  • the variable input portion 121B is A state in which no signal is input to variable input product operation element 10B1B, a state in which fixed input portion 122X does not input a signal to fixed input alternative element 10B2X
  • fixed input portion 122A is a product operation for fixed input
  • the output detector 11B detects the output from the fixed input product arithmetic element 10B2A.
  • the inspection unit 13 determines, based on the detection value of the output detector 11B, whether or not the fixed input product arithmetic element 10B2A is broken.
  • the function replacement unit 14 performs the product calculation performed before the failure of the fixed input product element 10A2A.
  • the fixed input alternative element 10A2X is caused to perform.
  • the resistance value of the fixed input alternative element 10A2X that performs the product calculation performed before the failure of the fixed input product operation element 10A2A that is out of order is larger than the minimum value of the resistance value fluctuation range of the fixed input alternative element 10A2X It is preset to an intermediate value smaller than the maximum value of the resistance value variation range.
  • the function replacement unit 14 performs the product performed before the failure of the fixed input product operation element 10B2A.
  • the operation is performed by the fixed input alternative element 10B2X.
  • the resistance value of the fixed input alternative element 10B2X that performs the product calculation performed before the failure of the fixed input product operation element 10B2A that is out of order is larger than the minimum value of the resistance value fluctuation range of the fixed input alternative element 10B2X. It is preset to an intermediate value smaller than the maximum value of the resistance value variation range.
  • the fixed input alternative element 10A2X is disposed adjacent to the fixed input product operation element 10A2A.
  • the fixed input alternative element 10B2X is disposed adjacent to the fixed input product operation element 10B2A.
  • the product-sum operation unit 1 of the fifth embodiment executes the same process as the example shown in FIG.
  • the inspection unit 13 inspects the fixed input product operation elements 10A2A and 10B2A in step S12 of FIG. Specifically, as described above, the inspection unit 13 checks whether the fixed input product arithmetic element 10A2A is broken or not and whether the fixed input product arithmetic element 10B2A is broken or not. Do.
  • the function replacement unit 14 fails one of the fixed input product operation elements 10A2A and 10B2A based on the inspection result of the inspection unit 13.
  • step S14 It is determined whether the If one of the fixed input product operation elements 10A2A and 10B2A is broken, the process proceeds to step S14, and if all of the fixed input product operation elements 10A2A and 10B2A are normal, the routine shown in FIG. finish.
  • the function replacing unit 14 functions from the faulty fixed input product computing elements 10A2A and 10B2A to the alternate elements for fixed input 10A2X and 10B2X. Make a substitution. That is, the function replacing unit 14 causes the fixed input alternative elements 10A2X and 10B2X to perform the product operation performed before the failure of the fixed input alternative elements 10A2X and 10B2X. For example, when the inspection unit 13 determines that the fixed input product operation element 10A2A is broken, the function replacement unit 14 performs the product operation performed before the failure of the fixed input product operation element 10A2A is broken To the fixed input alternative element 10A2X.
  • the function replacement unit 14 changes the resistance value of the fixed input alternative element 10A2X from the above-described intermediate value to the resistance value of the fixed input product arithmetic element 10A2A before failure.
  • the resistance value of the product processor 10A2A for fixed input before failure is stored in the storage unit.
  • the function replacing unit 14 reads the resistance value from the storage unit and changes the resistance value of the fixed input alternative element 10A2X to the resistance value.
  • the inspection unit 13 determines that the fixed input product operation element 10B2A is broken
  • the function replacement unit 14 performs the product that the fixed input product operation element 10B2A is broken before failure.
  • the operation is performed by the fixed input alternative element 10B2X.
  • the function replacement unit 14 changes the resistance value of the fixed input alternative element 10B2X from the above-described intermediate value to the resistance value of the fixed input product arithmetic element 10B2A before failure.
  • the product-sum calculator 1 of the sixth embodiment is configured in the same manner as the product-sum calculator 1 of the fifth embodiment described above, except for the points described later. Therefore, according to the product-sum calculator 1 of the sixth embodiment, the same effects as those of the product-sum calculator 1 of the fifth embodiment described above can be obtained except for the points described later.
  • FIG. 15 is a diagram showing an example of a part of the product-sum calculator 1 of the sixth embodiment.
  • variable input product operation elements 10A1A, 10A1B, 10B1A, 10B1B, fixed input product operation elements 10A2A, 10B2A and fixed input alternative elements 10A2X, 10B2X are based on magnetoresistive effect elements.
  • variable input product operation elements 10A1A, 10A1B, 10B1A, 10B1B, fixed input product operation elements 10A2A, 10B2A and fixed input alternative elements 10A2X, 10B2X Is constituted by a general resistance change element (variable resistance).
  • each of variable input product operation elements 10A1A, 10A1B, 10B1A, 10B1B, fixed input product operation elements 10A2A, 10B2A and fixed input alternative elements 10A2X, 10B2X are read terminals and
  • Each of 10A2X and 10B2X includes a first terminal and a second terminal.
  • the first terminals of the variable input product arithmetic elements 10A1A and 10B1A are connected to the line L11.
  • First terminals of variable input product arithmetic elements 10A1B and 10B1B are connected to line L21.
  • the first terminals of the fixed input product arithmetic elements 10A2A and 10B2A are connected to the line L31.
  • the first terminals of the fixed input alternative elements 10A2X and 10B2X are connected to the line LX1.
  • Second terminals of variable input product operation elements 10A1A and 10A1B, fixed input product operation element 10A2A, and fixed input alternative element 10A2X are connected to line M1.
  • Second terminals of variable input product operation elements 10B1A and 10B1B, fixed input product operation element 10B2A, and fixed input alternative element 10B2X are connected to line M2.
  • the sum operation unit 11 detects the sum of outputs from the second terminals of the variable input product operation elements 10A1A and 10A1B and the fixed input product operation element 10A2A when the fixed input alternative element 10A2X is not used.
  • Detector 11B for detecting the total value of outputs from the variable input product operation elements 10B1A and 10B1B and the fixed input product operation element 10B2A when the fixed input alternative element 10A2X is not used And have.
  • a program for realizing the function of each device (for example, the product-sum operation unit 1) according to the embodiment described above is recorded in a computer-readable recording medium (storage medium) and recorded in the recording medium.
  • the processing may be performed by loading the executed program into a computer system and executing it.
  • the “computer system” may include hardware such as an operating system (OS: Operating System) or a peripheral device.
  • the “computer readable recording medium” is a flexible disk, a magneto-optical disk, a ROM (Read Only Memory), a writable nonvolatile memory such as a flash memory, a portable medium such as a DVD (Digital Versatile Disc), A storage device such as a hard disk built into a computer system.
  • the recording medium may be, for example, a recording medium for temporarily recording data.
  • the “computer-readable recording medium” is a volatile memory (for example, DRAM (for example, DRAM (for example) (DRAM) in a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line).
  • Dynamic Random Access Memory includes those that hold a program for a certain period of time.
  • the above program may be transmitted from a computer system in which the program is stored in a storage device or the like to another computer system via a transmission medium or by transmission waves in the transmission medium.
  • the "transmission medium” for transmitting the program is 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 for realizing a part of the functions described above.
  • 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.
  • a processor such as a CPU (Central Processing Unit) reads and executes a program stored in a memory.
  • CPU Central Processing Unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Hall/Mr Elements (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Measuring Magnetic Variables (AREA)

Abstract

ニューラルネットワークに適用される場合に、積和演算器を構成する素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器を提供する。 積和演算器(1)は、積演算部(10)と、和演算部(11)とを備える。積演算部(10)は、複数の積演算素子(10AA)~(10AC)と、複数の積演算素子(10AA)~(10AC)のいずれかが故障した場合に故障した積演算素子の代わりに用いられる代替素子(10AX)とを備える。複数の積演算素子(10AA)~(10AC)のそれぞれと、代替素子(10AX)とは、抵抗変化素子である。和演算部(11)は出力検出器(11A)を備え、出力検出器(11)は、代替素子(10AX)が用いられない場合に、複数の積演算素子(10AA)~(10AC)からの出力の合計値を検出する。

Description

積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
 本発明は、積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法に関する。本願は、2017年12月28日に、日本に出願された特願2017-254702号に基づき優先権を主張し、その内容をここに援用する。
 従来から、RRAM(登録商標)ベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキームが知られている(例えば非特許文献1参照)。この文献には、アナログニューロモーフィックシステムが、組み立てられた抵抗スイッチングメモリアレイを基礎として開発される旨が記載されている。この文献では、新規なトレーニングスキームが、セグメント化されたシナプスの挙動を利用することによって、アナログシステムの性能を最適化するために提案される。また、この文献では、このスキームが、グレースケール画像認識に対して適用される。
 また、神経系を模倣したニューラルネットワークを抵抗変化素子のアレイを用いて実現する研究が進められている。ニューロモーフィックデバイス(NMD)では、前段から次の段へとウエイトをかけて足し合わせる積和演算を行う。そこで、連続的に抵抗が変化する抵抗変化素子を複数組み合わせ、それぞれの抵抗値を重みとして入力信号に対する積演算を行い、そこから出力される電流の総和をとることで和演算を行う様々なタイプの積和演算器、およびそれを利用したNMDの開発がすすめられている。
国際公開第2017/183573号
Zhe Chen他著、「RRAMベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキーム(OptimizedLearning Scheme for Grayscale Image Recognition in a RRAM Based Analog Neuromorphic System)」、2015年、IEEE、p.17.7.1-p.17.7.4
 ところで、非特許文献1では、システムを構成する素子の故障時の対応について検討されていない。そのため、システムを構成する素子の故障時に、ニューラルネットワークの性能が大きく低下してしまうおそれがある。また、製造上素子を100%故障することなく作製することは非常に困難である。したがって、故障した素子を正常素子で置き換えて、デバイス全体として機能させることが経済上必要となるが、これまでニューラルネットワークにおけるこのような補償素子の議論はされていなかった。
 上述した問題点に鑑み、本発明は、ニューラルネットワークに適用される場合に、積和演算器を構成する素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することを目的とする。
 本発明の一態様の積和演算器は、積演算部と、和演算部とを備え、前記積演算部は、複数の積演算素子と、前記複数の積演算素子のいずれかが故障した場合に故障した積演算素子の代わりに用いられる少なくとも1つの代替素子とを備え、前記複数の積演算素子のそれぞれと、前記代替素子とは、抵抗変化素子であり、前記和演算部は出力検出器を備え、前記出力検出器は、前記代替素子が用いられない場合に、前記複数の積演算素子からの出力の合計値を検出する。
 本発明の一態様は、前記積和演算器の使用方法であって、前記積和演算器は、前記複数の積演算素子のそれぞれが故障しているか否かを検査する検査部をさらに備え、前記検査部が、前記出力検出器によって検出される前記複数の積演算素子からの出力に基づいて、前記複数の積演算素子のそれぞれが故障しているか否かを判定する検査工程を含む、積和演算器の使用方法である。
 本発明の一態様の積和演算器の使用方法では、前記積和演算器は、機能置換部をさらに備え、前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、故障している積演算素子が故障前に行っていた積演算を前記代替素子に行わせる機能置換工程をさらに含んでもよい。
 本発明の一態様の積和演算器の使用方法では、前記故障している積演算素子が故障前に行っていた積演算を行う前記代替素子の抵抗値は、前記代替素子の抵抗値変動範囲の最小値よりも大きく前記抵抗値変動範囲の最大値よりも小さい中間値に予め設定されていてもよい。
 本発明の一態様の積和演算器では、前記少なくとも1つの代替素子は、複数の積演算用代替素子であり、前記和演算部は、前記複数の積演算用代替素子からの出力の合計値を検出する代替用出力検出器をさらに備えてもよい。
 本発明の一態様は、前記積和演算器の使用方法であって、前記積和演算器は、検査部と機能置換部とをさらに備え、前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、前記複数の積演算素子が故障前に行っていた積演算を前記複数の積演算用代替素子に行わせる機能置換工程と、前記機能置換部が、前記複数の積演算用代替素子の抵抗値を、故障前の前記複数の積演算素子の抵抗値と等しい値に設定する抵抗値設定工程とを含む、積和演算器の使用方法である。
 本発明の一態様の積和演算器では、前記代替素子は、前記複数の積演算素子を隔てて前記出力検出器の反対側に配置されていてもよい。
 本発明の一態様の積和演算器では、前記出力検出器は、前記代替素子を隔てて前記複数の積演算素子の反対側に配置されていてもよい。
 本発明の一態様の積和演算器では、前記複数の積演算素子には、第1積演算素子と第2積演算素子とが含まれ、前記代替素子は、前記第1積演算素子と前記第2積演算素子との間に配置されていてもよい。
 本発明の一態様は、前記積和演算器の使用方法であって、前記複数の積演算素子には、複数の可変入力用積演算素子と、少なくとも1つの固定入力用積演算素子とが含まれ、前記代替素子は、固定入力用代替素子であり、前記積和演算器は、前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、前記固定入力用積演算素子および前記固定入力用代替素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部と、前記固定入力用積演算素子が故障しているか否かを検査する検査部と、機能置換部とをさらに備え、前記検査部が、前記出力検出器によって検出される前記固定入力用積演算素子からの出力に基づいて、前記固定入力用積演算素子が故障しているか否かを判定する検査工程と、前記固定入力用積演算素子が故障していることを前記検査部が検知した場合に、前記機能置換部が、前記固定入力用積演算素子が故障前に行っていた積演算を前記固定入力用代替素子に行わせる機能置換工程とを含む、積和演算器の使用方法である。
 本発明の一態様の積和演算器の使用方法では、前記固定入力用代替素子は、前記固定入力用積演算素子に隣接して配置されていてもよい。
 本発明の一態様の積和演算器では、前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有してもよい。
 本発明の一態様の積和演算器では、前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、前記磁気抵抗効果素子は、磁壁を有する磁化自由層と、磁化方向が固定された磁化固定層と、前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有してもよい。
 本発明の一態様は、前記積和演算器を備えるニューロモーフィックデバイスである。
 本発明によれば、ニューラルネットワークに適用される場合に、積和演算器を構成する素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することができる。
第1実施形態の積和演算器の一部の構成の第1例を示す図である。 第1実施形態の積和演算器の全体構成の一例を示す図である。 出力検出器が検出した合計値および規定値を説明するための図である。 第1実施形態の積和演算器の積演算素子および代替素子のそれぞれを構成する磁気抵抗効果素子の一例を示す斜視図である。 第1実施形態の積和演算器によって実行される処理の一例を示すフローチャートである。 第1実施形態の積和演算器の一部の構成の第2例を示す図である。 第1実施形態の積和演算器の一部の構成の第3例を示す図である。 第1実施形態の積和演算器の適用例を示す図である。 第2実施形態の積和演算器の一部の構成の一例を示す図である。 第3実施形態の積和演算器の一部の構成の一例を示す図である。 第3実施形態の積和演算器によって実行される処理の一例を示すフローチャートである。 第4実施形態の積和演算器の一部の構成の一例を示す図である。 第5実施形態の積和演算器の一部の構成の一例を示す図である。 第5実施形態の積和演算器の全体構成の一例を示す図である。 第6実施形態の積和演算器の一部の構成の一例を示す図である。
 以下、図面を参照し、本発明の積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法の実施形態について説明する。
<第1実施形態>(抵抗変化素子が磁気抵抗効果素子)
 図1は第1実施形態の積和演算器1の一部の構成の第1を示す図である。図2は第1実施形態の積和演算器1の全体構成の一例を示す図である。
 図1および図2に示す例では、第1実施形態の積和演算器1が、積演算部10と、和演算部11と、入力部12A、12B、12C、12Xと、検査部13と、機能置換部14とを備えている。積演算部10は、カラム10Aと、カラム10Bとを備えている。
 図1に示す例では、積演算部10が、2つのカラム10A、10Bを備えているが、他の例では、積演算部10が、3以上の任意の数のカラム10A、10B、…を備えていてもよい。
 図1に示す例では、カラム10Aが、積演算素子10AAと、積演算素子10ABと、積演算素子10ACと、代替素子10AXとを備えている。積演算素子10AA、10AB、10ACは、積演算を行う。代替素子10AXは、積演算素子10AA、10AB、10ACのいずれかが故障した場合に故障した積演算素子の代わりに用いられる。
 カラム10Bは、積演算素子10BAと、積演算素子10BBと、積演算素子10BCと、代替素子10BXとを備えている。積演算素子10BA、10BB、10BCは、積演算素子10AA、10AB、10ACと同様に積演算を行う。代替素子10BXは、積演算素子10BA、10BB、10BCのいずれかが故障した場合に故障した積演算素子の代わりに用いられる。
 図1に示す例では、カラム10Aが3つの積演算素子10AA、10AB、10ACを備え、カラム10Bが3つの積演算素子10BA、10BB、10BCを備えているが、他の例では、カラム10Aが、3以外の任意の数(詳細には、複数)の積演算素子を備え、カラム10Bが、3以外の任意の数(詳細には、複数)の積演算素子を備えてもよい。
 図1に示す例では、カラム10Aが1つの代替素子10AXを備え、カラム10Bが1つの代替素子10BXを備えているが、他の例では、カラム10Aが、2以上の代替素子を備え、カラム10Bが、2以上の代替素子を備えてもよい。
 図1に示す例では、複数の積演算素子10AA~10AC、10BA~10BC、代替素子10AX、10BXのそれぞれは、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
 積演算素子10AA、10BAの読み出し端子は、ラインL11に接続されている。ラインL11は、積演算素子10AA、10BAに対して信号を入力する入力部12Aに接続されている。積演算素子10AA、10BAの書き込み端子は、ラインL12に接続されている。
 積演算素子10AB、10BBの読み出し端子は、ラインL21に接続されている。ラインL21は、積演算素子10AB、10BBに対して信号を入力する入力部12Bに接続されている。積演算素子10AB、10BBの書き込み端子は、ラインL22に接続されている。
 積演算素子10AC、10BCの読み出し端子は、ラインL31に接続されている。ラインL31は、積演算素子10AC、10BCに対して信号を入力する入力部12Cに接続されている。積演算素子10AC、10BCの書き込み端子は、ラインL32に接続されている。
 代替素子10AX、10BXの読み出し端子は、ラインLX1に接続されている。ラインLX1は、代替素子10AX、10BXに対して信号を入力する入力部12Xに接続されている。代替素子10AX、10BXの書き込み端子は、ラインLX2に接続されている。
 積演算素子10AA、10AB、10ACおよび代替素子10AXの共通端子は、ラインM1に接続されている。積演算素子10BA、10BB、10BCおよび代替素子10BXの共通端子は、ラインM2に接続されている。
 図1に示す例では、和演算部11が、出力検出器11Aと出力検出器11Bとを備えている。
 代替素子10AXが用いられない場合に、出力検出器11Aは、複数の積演算素子10AA、10AB、10ACからの出力の合計値を検出する。例えば積演算素子10AAが故障した場合であって、故障した積演算素子10AAの代わりに代替素子10AXが用いられる場合に、出力検出器11Aは、積演算素子10AB、10AC(つまり、複数の積演算素子10AA、10AB、10ACのうちの故障していない積演算素子10AB、10AC)からの出力および代替素子10AXからの出力の合計値を検出する。
 代替素子10BXが用いられない場合に、出力検出器11Bは、複数の積演算素子10BA、10BB、10BCからの出力の合計値を検出する。例えば積演算素子10BBが故障した場合であって、故障した積演算素子10BBの代わりに代替素子10BXが用いられる場合に、出力検出器11Bは、積演算素子10BA、10BC(つまり、複数の積演算素子10BA、10BB、10BCのうちの故障していない積演算素子10BA、10BC)からの出力および代替素子10BXからの出力の合計値を検出する。
 出力検出器11AはラインM1に配置されている。出力検出器11BはラインM2に配置されている。
 図1に示す例では、出力検出器11Aが、積演算素子10AA、10AB、10ACからの出力電流値、または、例えば積演算素子10AB、10ACおよび代替素子10AXからの出力電流値を検出し、出力検出器11Bが、積演算素子10BA、10BB、10BCからの出力電流値、または、例えば積演算素子10BA、10BCおよび代替素子10BXからの出力電流値を検出する。他の例では、出力検出器11Aが、積演算素子10AA、10AB、10ACの出力を電荷として、または、例えば積演算素子10AB、10ACおよび代替素子10AXの出力を電荷として検出し、出力検出器11Bが、積演算素子10BA、10BB、10BCの出力を電荷として、または、例えば積演算素子10BA、10BCおよび代替素子10BXの出力を電荷として検出してもよい。
 検査部13は、出力検出器11Aが検出した複数の積演算素子10AA、10AB、10ACからの出力の合計値が規定値を超えた場合に、カラム10Aに含まれる複数の積演算素子10AA~10ACの少なくとも1つに、出力電流が大きくなる故障が発生したと判断する。また、検査部13は、出力検出器11Bが検出した複数の積演算素子10BA、10BB、10BCからの出力の合計値が規定値を超えた場合に、カラム10Bに含まれる複数の積演算素子10BA~10BCの少なくとも1つに、出力電流が大きくなる故障が発生したと判断する。
 図3は出力検出器11Aが検出した合計値および規定値を説明するための図である。図3において、縦軸は、出力検出器11Aによって検出される複数の積演算素子10AA~10ACの出力電流の合計値、規定値などを示す。横軸は、積演算素子10AA~10ACの状態(抵抗値の大きさ)を示す。
 複数の積演算素子10AA~10ACの正常動作時であって、積演算素子10AA~10ACの抵抗値が最も高い時には、出力検出器11Aによって検出される複数の積演算素子10AA~10ACの出力電流の合計値が最小値Minになる。
 複数の積演算素子10AA~10ACの正常動作時には、積演算素子10AA~10ACの抵抗値が低くなるに従って、出力検出器11Aによって検出される複数の積演算素子10AA~10ACの出力電流の合計値が大きくなる。
 複数の積演算素子10AA~10ACの正常動作時であって、積演算素子10AA~10ACの抵抗値が最も低い時には、出力検出器11Aによって検出される複数の積演算素子10AA~10ACの出力電流の合計値が最大値Maxになる。
 規定値は、最大値Max以上の値に設定されている。つまり、規定値は、複数の積演算素子10AA~10ACのすべてが正常に動作する場合に出力検出器11Aが検出し得る合計値の最大値Max以上の値である。
 図3に示す例において、点P1の状態では、出力検出器11Aが検出した積演算素子10AA~10ACの出力電流の合計値が、規定値を超えない。そのため、検査部13は、カラム10Aに含まれる複数の積演算素子10AA~10ACのいずれにも、出力電流が大きくなる故障が発生していない可能性が高いと判断する。
 一方、点P2の状態では、出力検出器11Aが検出した積演算素子10AA~10ACの出力電流の合計値が、規定値を超える。そのため、検査部13は、カラム10Aに含まれる複数の積演算素子10AA~10ACの少なくとも1つに、出力電流が大きくなる故障が発生したと判断する。
 また、図1および図2に示す例では、検査部13は、複数の積演算素子10AA、10AB、10ACのそれぞれが故障しているか否かを検査する。
 例えば、積演算素子10AAが故障しているか否かを検査するために、入力部12Bが積演算素子10ABに対して信号を入力しない状態、かつ、入力部12Cが積演算素子10ACに対して信号を入力しない状態、かつ、入力部12Xが代替素子10AXに対して信号を入力しない状態、かつ、入力部12Aが積演算素子10AAに対して信号を入力する状態で、出力検出器11Aが、積演算素子10AAからの出力を検出する。この状態では、積演算素子10ABからの出力がゼロであり、積演算素子10ACからの出力がゼロであり、代替素子10AXからの出力がゼロである。また、検査部13は、出力検出器11Aの検出値に基づいて、積演算素子10AAが故障しているか否かを判定する。
 同様に、検査部13は、積演算素子10ABが故障しているか否か、および、積演算素子10ACが故障しているか否かを検査する。
 また、図1および図2に示す例では、検査部13は、複数の積演算素子10BA、10BB、10BCのそれぞれが故障しているか否かを検査する。
 例えば、積演算素子10BBが故障しているか否かを検査するために、入力部12Aが積演算素子10BAに対して信号を入力しない状態、かつ、入力部12Cが積演算素子10BCに対して信号を入力しない状態、かつ、入力部12Xが代替素子10BXに対して信号を入力しない状態、かつ、入力部12Bが積演算素子10BBに対して信号を入力する状態で、出力検出器11Bが、積演算素子10BBからの出力を検出する。この状態では、積演算素子10BAからの出力がゼロであり、積演算素子10BCからの出力がゼロであり、代替素子10BXからの出力がゼロである。また、検査部13は、出力検出器11Bの検出値に基づいて、積演算素子10BBが故障しているか否かを判定する。
 同様に、検査部13は、積演算素子10BAが故障しているか否か、および、積演算素子10BCが故障しているか否かを検査する。
 機能置換部14は、複数の積演算素子10AA、10AB、10ACのいずれかが故障していることを検査部13が検知した場合に、故障している積演算素子(例えば積演算素子10AA)が故障前に行っていた積演算を代替素子10AXに行わせる。
 故障している積演算素子(例えば積演算素子10AA)が故障前に行っていた積演算を行う代替素子10AXの抵抗値は、代替素子10AXの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
 また、機能置換部14は、複数の積演算素子10BA、10BB、10BCのいずれかが故障していることを検査部13が検知した場合に、故障している積演算素子(例えば積演算素子10BB)が故障前に行っていた積演算を代替素子10BXに行わせる。
 故障している積演算素子(例えば積演算素子10BB)が故障前に行っていた積演算を行う代替素子10BXの抵抗値は、代替素子10BXの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
 図1に示す例では、代替素子10AXが、複数の積演算素子10AA、10AB、10ACを隔てて出力検出器11Aの反対側(図1の上側)に配置されている。また、代替素子10BXは、複数の積演算素子10BA、10BB、10BCを隔てて出力検出器11Bの反対側(図1の上側)に配置されている。
 つまり、図1は、代替素子10AX、10BXが図1の上側に配置される場合に、代替素子10AX、10BXが図1の下側に配置される場合よりも、積和演算器1の配線抵抗の観点から好ましい(例えば、積和演算器1の消費電力が抑制される)例を示している。
 本発明において積演算素子として用いられる抵抗変化素子は、外部からの刺激(電流、電圧、磁場など)に対して可逆的に電気抵抗が変化する素子である。かかる抵抗変化素子としては例えば、抵抗変化型メモリ(RRAM)素子、相変化メモリ(PCRAM)素子、異方性磁気抵抗効果(AMR)素子、トンネル磁気抵抗効果(TMR)素子、巨大磁気抵抗効果(GMR)素子などが挙げられる。
 詳細には、図1および図3に示す例では、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれは、磁気抵抗効果を示す磁気抵抗効果素子である。例えば、正常動作時における積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれの抵抗値と、故障時における積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれの抵抗値とが3桁以上異なるものとすることができる。
 図4は第1実施形態の積和演算器1の積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれを構成する磁気抵抗効果素子Aの一例を示す斜視図である。
 図4に示す例では、磁気抵抗効果素子Aは、磁壁DWを有する磁化自由層A1と、磁化方向が固定された磁化固定層A2と、非磁性層A3とを有する。非磁性層A3は、磁化自由層A1と磁化固定層A2とに挟まれている。磁化自由層A1は、磁壁DWの一方の側に第1領域A11を有し、磁壁DWの他方の側に第2領域A12を有する。第1領域A11には、書き込み端子AAが設けられている。第2領域A12には、共通端子ABが設けられている。磁化固定層A2には、読み出し端子ACが設けられている。
 磁壁DWの移動量(移動距離)は、書き込み端子AAと共通端子ABとの間に流す書き込み電流の大きさ、時間を調整することによって可変に制御することができる。書き込み電流の大きさ、時間は例えば、パルス数あるいはパルス幅によって磁壁DWの移動量(移動距離)を設定することもできる。磁壁DWの駆動(移動)によって磁化固定層A2と磁化自由層A1のそれぞれの磁化方向が平行な(あるいは反平行な)部分の面積が連続的に変化すると、磁化方向が平行な部分の面積率と磁化方向が反平行な部分の面積率との比が連続的に変化し、磁気抵抗効果素子において線形に近い抵抗変化が得られる。
 また、データの読み出しは、読み出し端子ACと共通端子ABとの間に電流を流して、磁化方向が平行な部分の面積率と磁化方向が反平行な部分の面積率との比に応じた抵抗を検出することで行うことができる(例えば、特許文献1参照)。
[磁化固定層A2]
 磁化固定層A2は、磁化が第1の方向(例えば図4の左向き)に配向し、固定された層である。ここで、磁化が固定されるとは、書き込み電流を用いた書き込み前後において磁化方向が変化しない(磁化が固定されている)ことを意味する。
 図4に示す例では、磁化固定層A2は磁化が面内磁気異方性(面内磁化容易軸)を有する面内磁化膜である。磁化固定層A2は、面内磁化膜に限られず、垂直磁気異方性(垂直磁化容易軸)を有する垂直磁化膜であってもよい。
 磁化固定層A2が面内磁化膜であると、高いMR比(磁気抵抗変化率)を有し、読み込み時にスピントランスファートルク(STT)による影響を受けにくく、読み取り電圧を大きくできる。一方、素子を微小化したい場合には磁気異方性が大きく、反磁界が小さい、垂直磁化膜を用いることが好ましい。
 磁化固定層A2には、公知の材料を用いることができる。例えば、Cr、Mn、Co、Fe及びNiからなる群から選択される金属及びこれらの金属を1種以上含み強磁性を示す合金を用いることができる。またこれらの金属と、B、C、及びNのうちの1種以上の元素とを含む合金を用いることもできる。具体的には、Co-FeやCo-Fe-Bが挙げられる。
 また磁化固定層A2には、CoFeSiなどのホイスラー合金を用いることもできる。ホイスラー合金は、XYZの化学組成をもつ金属間化合物を含み、Xは、周期表上でCo、Fe、Ni、あるいはCu族の遷移金属元素または貴金属元素であり、Yは、Mn、V、CrあるいはTi族の遷移金属でありXの元素種をとることもでき、Zは、III族からV族の典型元素である。例えば、CoFeSi、CoMnSiやCoMn1-aFeAlSi1-bなどが挙げられる。
 また磁化固定層A2は強磁性層、非磁性層から成るシンセティック構造、あるいは反強磁性層、強磁性層、非磁性層から成るシンセティック構造であってもよい。後者においてはシンセティック構造において磁化固定層A2の磁化方向は反強磁性層によって強く保持される。そのため、磁化固定層A2の磁化が外部からの影響を受けにくくなる。
 磁化固定層A2の磁化をXY面内に配向させる(磁化固定層A2を面内磁化膜にする)場合は、例えば、NiFeを用いることが好ましい。一方で磁化固定層A2の磁化をZ方向に配向させる(磁化固定層A2を垂直磁化膜にする)場合は、例えば、Co/Ni積層膜、Co/Pt積層膜等を用いることが好ましい。例えば、磁化固定層A2を[Co(0.24nm)/Pt(0.16nm)]6/Ru(0.9nm)/[Pt(0.16nm)/Co(0.16nm)]4/Ta(0.2nm)/FeB(1.0nm)とすると、垂直磁化膜となる。
[非磁性層A3]
 非磁性層A3は、磁化固定層A2の下面に設けられている。磁気抵抗効果素子Aは、非磁性層A3を介して磁化固定層A2に対する磁化自由層A1の磁化状態の変化を抵抗値変化として読み出す。すなわち、磁化固定層A2、非磁性層A3及び磁化自由層A1は磁気抵抗効果素子Aとして機能し、非磁性層A3が絶縁体からなる場合はトンネル磁気抵抗(TMR)素子と似た構成であり、非磁性層2が金属からなる場合は巨大磁気抵抗効果(GMR)素子と似た構成である。
 非磁性層A3の材料としては、磁気抵抗効果素子Aの非磁性層に用いることができる公知の材料を用いることができる。非磁性層A3が絶縁体からなる場合(トンネルバリア層である場合)、その材料としてAl、SiO、MgO、MgAl、ZnAl、MgGa、ZnGa、MgIn、ZnIn、及び、これらの材料の多層膜や混合組成膜等を用いることができる。またこれらの他にも、Al、Si、Mgの一部が、Zn、Be等に置換された材料等も用いることができる。これらの中でも、MgOやMgAlはコヒーレントトンネルが実現できる材料であるため、磁気抵抗比(MR比)を大きくとることができる。一方で、非磁性層2が金属からなる場合は、その材料としてCu、Al、Ag等を用いることができる。
 非磁性層A3が絶縁体からなる場合(トンネルバリア層である場合)、その厚みは、例えば2.5nm以上である。
[磁化自由層A1]
 磁化自由層A1は磁壁駆動型(移動型)MRAMの磁壁駆動層に相当する。
 磁化自由層A1は強磁性体材料からなり、その内部の磁化の向きは反転可能である。磁化自由層A1は、磁化が磁化固定層A2と逆向きの第2の方向に配向した第1領域A11と、磁化が第1の方向と同じ向きに配向した第2領域A12と、これらの領域の界面をなす磁壁DWとを有する。磁壁DWを挟んで第1領域A11と第2領域A12の磁化の向きは反対である。磁壁DWは、磁化自由層A1における第1領域A11と第2領域A12の構成比率が変化することで移動する。
 磁化自由層A1の材料には、公知の材料を用いることができ、特に軟磁性材料を適用できる。例えば、Cr、Mn、Co、Fe及びNiからなる群から選択される金属、これらの金属を1種以上含む合金、これらの金属とB、C、及びNのうちの1種以上の元素とが含まれる合金等を用いることができる。具体的には、Co-Fe、Co-Fe-B、Ni-Feが、磁化自由層A1の材料として挙げられる。
 磁化自由層A1の材料には、飽和磁化が小さい材料を用いることもできる。例えば、(MnGa)Asや(InFe)As、あるいはCo/Tb多層膜やGdFeCoのように飽和磁化が小さい材料を用いると、小さい電流密度で磁化自由層A1の磁壁DWを駆動させることができる。また、これらの材料を用いると、磁壁DWの駆動速度が遅くなる。
 NiFeのような磁気異方性が弱い材料は、磁壁DWの駆動速度が速く、100m/sec以上の速度で磁壁DWが動作する。つまり、磁壁DWは10nsecのパルスで、1μmの距離を移動する。したがって、磁化自由層A1を素子内でアナログ的に動かす場合には、高価な半導体回路を用いて微小なパルスを印加するか、集積度を犠牲にして磁化自由層を十分長くするなどの対応が必要となる。これに対し、磁壁DWの駆動速度が遅い材料の場合には、十分長いパルス電流を印加する場合や磁化自由層A1の長さが短い場合でも、アナログメモリを形成することが可能である。
 磁化自由層A1を垂直磁化膜とする場合、Co/Pt多層膜、Co/Pd多層膜、及びCoCrPt合金膜からなる群から選択された垂直磁化膜が好ましい。また、MnX(X=Ga,Ge)の垂直磁化膜やCo/Niなどの多層膜による垂直磁化膜を用いることもできる。これらの材料は磁壁駆動のための電流密度が小さくても磁壁DWを駆動させることが可能である。
 磁化自由層A1が長手方向に延在する長さは60nm以上であることが好ましい。60nm未満では単磁区になりやすく、磁化自由層A1内に磁壁DWが形成されにくい。
 磁化自由層A1の厚さは磁壁駆動層として機能する限り、特に制限はないが、例えば、2nm~60nmとすることができる。磁化自由層A1の厚さが60nm以上になると、積層方向に磁壁が形成される可能性が高まる。ただし、積層方向に磁壁が形成されるか否かは、磁化自由層A1の形状異方性とのバランスによって生じる。磁化自由層A1の厚さが60nm未満であれば、磁壁DWができることは考えにくい。
 磁化自由層A1は、層の側面に磁壁DWの移動を止める磁壁ピン止め部を有してもよい。例えば、磁化自由層A1の磁壁DWの移動を止めたい位置に、凹凸、溝、膨らみ、くびれ、切り欠きなどを設けると、磁壁の移動を止める(ピンする)ことができる。磁壁ピン止め部を有すると、閾値以上の電流を流さないとそれ以上磁壁が移動しない構成とすることができ、出力信号をアナログ的ではなく、多値化し易くなる。
 例えば、磁壁ピン止め部を所定の距離ごとに形成することにより、磁壁DWをより安定的に保持することができ、安定的な多値記録を可能にし、より安定的に多値化された出力信号を読み出すことを可能にする。
 図4に示す例では、磁壁DWを形成するために、磁化自由層A1のうち、平面視において磁化固定層A2に重ならない両端部のそれぞれに、第1領域A11の磁化と同じ第1の方向の磁化を有する第1磁化供給層A4、及び、第2領域A12の磁化と同じ第2の方向の磁化を有する第2磁化供給層A5を有する。
 第1磁化供給層A4及び第2磁化供給層A5の材料としては、磁化固定層A2に使える強磁性材料と同じ材料を用いることができる。
 図4に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1に接すると共に磁化自由層A1の長手方向に対して交差する方向に延在するスピン軌道トルク(SOT)配線を用いてもよい。スピン軌道トルク配線は、電流が流れるとスピンホール効果によって純スピン流が生成される材料からなるものである。
 かかる構成を有することにより、磁化が固定された層としての磁化供給層を設置することがなくても、スピン軌道トルク配線の両端に電流を流すことにより磁化自由層A1に磁壁を導入することができ、また、スピン軌道トルク配線を介して磁化自由層A1に電流を流すことで、磁壁を移動させることができる。
 また、図4に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1と電気的に絶縁されていると共に、磁化自由層A1に対して交差する方向に延在する磁場印加配線を用いてもよい。磁場印加配線に電流を流すことによりアンペールの法則により磁場が発生する。磁場印加配線に流す電流の向きによって、発生する磁場の向きを逆向きにすることができる。そのため、磁化自由層A1の端部に面内磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの面内磁化方向のうちの一方の面内磁化方向の磁化を供給することができる。また、磁化自由層A1の端部に垂直磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの垂直磁化方向のうちの一方の垂直磁化方向の磁化を供給することができる。
 また、図4に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1に絶縁層を介して接続された電圧印加端子を用いてもよい。磁化固定層A2と電圧印加端子との間に電圧を印加すると、磁化自由層A1の磁化の一部が電圧の影響を受ける。例えば、電圧印加端子から電圧をパルスで印加すると磁化の一部は、電圧印加時には磁化自由層A1の磁化の方向に対して直交する方向に配向し、電圧印加が止まったタイミングでは磁化自由層A1の磁化は第1の方向か又はその逆方向の第2の方向に配向する。この直交する方向に配向した磁化が第1の方向か又はその逆方向の第2の方向に倒れるかは等確率であり、パルス電圧を印加するタイミング、回数、周期を調整することで、磁化の一部を第1の方向から第2の方向に配向させることができる。
 磁化自由層A1と非磁性層A3の間に磁気結合層を設置してもよい。磁気結合層とは、磁化自由層A1の磁化状態を転写する層である。磁化自由層A1の主たる機能は磁壁を駆動させるための層であり、磁化固定層A1と非磁性層A2を介して生じる磁気抵抗効果に適した材料を選択できるとは限らない。一般的に、非磁性層A2を用いたコヒーレントトンネル効果を生じさせるためには、磁化固定層A1や磁気結合層はBCC構造の強磁性材料が良いことが知られている。特に、磁化固定層A1や磁気結合層の材料として、Co-Fe-Bの組成の材料がスパッタによって作成した際に大きな出力が得られることが知られている。
 図5は第1実施形態の積和演算器1によって実行される処理の一例を示すフローチャートである。
 図5に示す例では、積和演算器1は、積演算部10および和演算部11によって通常の積和演算が行われる通常モードと、検査部13による積演算素子10AA~10AC、10BA~10BCの検査などが行われる検査モードとを備える。
 ステップS10では、積和演算器1が通常モードであるか、あるいは、検査モードであるかを判定する。積和演算器1が通常モードである場合には、ステップS11に進む。積和演算器1が検査モードである場合には、ステップS12に進む。
 ステップS11では、積演算部10および和演算部11が、通常の積和演算を行う。
 ステップS12では、検査部13が、積演算素子10AA~10AC、10BA~10BCの検査を行う。詳細には、上述したように、検査部13は、積演算素子10AAが故障しているか否かの検査、積演算素子10ABが故障しているか否かの検査、積演算素子10ACが故障しているか否かの検査、積演算素子10BAが故障しているか否かの検査、積演算素子10BBが故障しているか否かの検査、および、積演算素子10BCが故障しているか否かの検査を行う。
 次いで、ステップS13では、例えば機能置換部14が、検査部13の検査結果に基づいて、積演算素子10AA~10AC、10BA~10BCのいずれかが故障しているか否かを判定する。積演算素子10AA~10AC、10BA~10BCのいずれかが故障している場合にはステップS14に進み、積演算素子10AA~10AC、10BA~10BCのすべてが正常である場合には、図5に示すルーチンを終了する。
 ステップS14では、機能置換部14が、故障している積演算素子から代替素子10AX、10BXへの機能置換を行う。つまり、機能置換部14は、故障している積演算素子が故障前に行っていた積演算を代替素子10AX、10BXに行わせる。
 例えば、積演算素子10AAが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10AAが故障前に行っていた積演算を代替素子10AXに行わせる。具体的には、例えば、機能置換部14は、代替素子10AXの抵抗値を、上述した中間値から、故障前の積演算素子10AAの抵抗値に変更する。
 例えば、故障前の積演算素子10AAの抵抗値は、記憶部(図示せず)に格納されている。機能置換部14は、記憶部からその抵抗値を読み出すと共に、代替素子10AXの抵抗値をその抵抗値に変更する。
 同様に、積演算素子10ABが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10ABが故障前に行っていた積演算を代替素子10AXに行わせる。また、積演算素子10ACが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10ACが故障前に行っていた積演算を代替素子10AXに行わせる。
 また、積演算素子10BAが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10BAが故障前に行っていた積演算を代替素子10BXに行わせる。具体的には、例えば、機能置換部14は、代替素子10BXの抵抗値を、上述した中間値から、故障前の積演算素子10BAの抵抗値に変更する。
 同様に、積演算素子10BBが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10BBが故障前に行っていた積演算を代替素子10BXに行わせる。また、積演算素子10BCが故障していると検査部13が判定した場合に、機能置換部14は、故障している積演算素子10BCが故障前に行っていた積演算を代替素子10BXに行わせる。
 図6は第1実施形態の積和演算器1の一部の構成の第2例を示す図である。
 図1に示す例では、上述したように、代替素子10AXが、複数の積演算素子10AA、10AB、10ACを隔てて出力検出器11Aの反対側(図1の上側)に配置され、代替素子10BXが、複数の積演算素子10BA、10BB、10BCを隔てて出力検出器11Bの反対側(図1の上側)に配置されている。
 一方、図6に示す例では、出力検出器11Aが、代替素子10AXを隔てて複数の積演算素子10AA、10AB、10ACの反対側(図6の下側)に配置され、出力検出器11Bが、代替素子10BXを隔てて複数の積演算素子10BA、10BB、10BCの反対側(図6の下側)に配置されている。
 つまり、図6は、代替素子10AX、10BXが図6の下側に配置される場合に、代替素子10AX、10BXが図6の上側に配置される場合よりも、積和演算器1の配線抵抗の観点から好ましい(例えば、積和演算器1の消費電力が抑制される)例を示している。
 図7は第1実施形態の積和演算器1の一部の構成の第3例を示す図である。
 図7に示す例では、代替素子10AXが、複数の積演算素子10AA、10AB、10ACのうちの積演算素子10AAと積演算素子10ACとの間に配置され、代替素子10BXが、複数の積演算素子10BA、10BB、10BCのうちの積演算素子10BAと積演算素子10BCとの間に配置されている。
 つまり、図7は、代替素子10AXが複数の積演算素子10AA~10ACの間に配置され、代替素子10BXが複数の積演算素子10BA~10BCの間に配置される場合に、代替素子10AX、10BXが図7の上端部または下端部(詳細には、積演算素子10AC、10BCと出力検出器11A、11Bとの間)に配置される場合よりも、積和演算器1の配線抵抗の観点から好ましい(例えば、積和演算器1の消費電力が抑制される)例を示している。
 図8は第1実施形態の積和演算器1の適用例を示す図である。
 図8に示す例では、第1実施形態の積和演算器1が、ニューロモーフィックデバイス100に適用されている。ニューロモーフィックデバイス100は、入力層101と、隠れ層102と、出力層103と、第1実施形態の積和演算器1と、積和演算器2とを備えている。積和演算器2は、図1、図6または図7に示す第1実施形態の積和演算器1と同様に複数の積演算素子を有する。
 入力層101は、例えば4つのノード101A、101B、101C、101Dを備えている。隠れ層102は、例えば3つのノード102A、102B、102Cを備えている。出力層103は、例えば3つのノード103A、103B、103Cを備えている。
 積和演算器1は、入力層101と隠れ層102との間に配置され、入力層101の4つのノード101A、101B、101C、101Dと、隠れ層102の3つのノード102A、102B、102Cとを接続する。積和演算器1は、図1、図6または図7に示す積演算素子10AA~10AC、10BA~10BCの抵抗値を変更することによって、重みを変更する。
 隠れ層102と出力層103との間には、積和演算器2が配置されている。積和演算器2は、隠れ層102の3つのノード102A、102B、102Cと、出力層103の3つのノード103A、103B、103Cとを接続する。積和演算器2は、複数の積演算素子の抵抗値を変更することによって、重みを変更する。
 隠れ層102は、活性化関数(例えばシグモイド関数)を使用する。
 本発明者は、鋭意研究において、積和演算器1を構成する積演算素子10AA~10AC、10BA~10BCの特性が何らかの要因で変化すると(詳細には、積演算素子10AA~10AC、10BA~10BCが故障すると)、ニューロモーフィックデバイス100の機能が低下することを見い出した。
 そこで、第1実施形態の積和演算器1では、上述したように、複数の積演算素子10AA~10AC、10BA~10BCのいずれかが故障した場合に故障した積演算素子の代わりに用いられる代替素子10AX、10BXが備えられている。
 そのため、第1実施形態の積和演算器1では、複数の積演算素子10AA~10AC、10BA~10BCのいずれかが故障した場合に、故障している積演算素子が故障前に行っていた積演算を代替素子10AX、10BXに行わせることによって、代替素子10AX、10BXが備えられていない場合よりも、ニューロモーフィックデバイス100の機能低下を抑制することができる。
 詳細には、第1実施形態の積和演算器1の使用時に、上述したように、検査部13が、出力検出器11Aによって検出される積演算素子10AA~10ACからの出力に基づいて、積演算素子10AA~10ACのそれぞれが故障しているか否かを判定し、出力検出器11Bによって検出される積演算素子10BA~10BCからの出力に基づいて、積演算素子10BA~10BCのそれぞれが故障しているか否かを判定する。
 そのため、第1実施形態の積和演算器1によれば、積和演算器1の製造段階のみならず、積和演算器1の使用時においても、積演算素子10AA~10AC、10BA~10BCの故障を検知することができる。
 また、第1実施形態の積和演算器1では、上述したように、積演算素子10AA~10AC、10BA~10BCのいずれかが故障していることを検査部13が検知した場合に、機能置換部14が、故障している積演算素子が故障前に行っていた積演算を代替素子10AX、10BXに行わせる。
 そのため、第1実施形態の積和演算器1によれば、積演算素子10AA~10AC、10BA~10BCのいずれかが故障した場合であっても、積和演算器1を正常に動作させ続けることができ、第1実施形態の積和演算器1がニューラルネットワークに適用される場合にニューラルネットワークの性能を維持することができる。
 また、第1実施形態の積和演算器1では、上述したように、故障している積演算素子が故障前に行っていた積演算を行う代替素子10AX、10BXの抵抗値は、代替素子10AX、10BXの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
 そのため、第1実施形態の積和演算器1によれば、代替素子10AX、10BXの抵抗値が、上述した中間値から、故障前の積演算素子の抵抗値に変更される場合の抵抗値変更所要時間を、平均的に短くすることができる。
 また、第1実施形態の積和演算器1では、上述したように、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれは、書き込み端子AAと、共通端子ABと、読み出し端子ACとを有し、磁気抵抗効果を示す磁気抵抗効果素子Aである。また、磁気抵抗効果素子Aは、磁壁DWを有する磁化自由層A1と、磁化方向が固定された磁化固定層A2と、磁化自由層A1と磁化固定層A2とに挟まれた非磁性層A3とを有する。
 つまり、第1実施形態の積和演算器1では、積演算素子10AA~10AC、10BA~10BCとして、正常動作時における抵抗値と、故障時(詳細には、出力電流が大きくなる故障時)における抵抗値との差が大きい素子が用いられる。
 そのため、第1実施形態の積和演算器1によれば、正常動作時における抵抗値と、故障時(詳細には、出力電流が大きくなる故障時)における抵抗値との差が小さい素子が用いられる場合よりも、ニューラルネットワークの性能を大きく損なうおそれがある故障を正確に検知することができる。
 上述した例では、第1実施形態の積和演算器1の使用中に積演算素子10AA、10AB、10ACのいずれかが故障した場合に、故障した積演算素子の代わりに代替素子10AXが用いられ、積和演算器1の使用中に積演算素子10BA、10BB、10BCのいずれかが故障した場合に、故障した積演算素子の代わりに代替素子10BXが用いられる。
 他の例では、第1実施形態の積和演算器1の製造時に積演算素子10AA、10AB、10ACのいずれかの故障(不良)が判明した場合に、不良の(故障した)積演算素子の代わりに代替素子10AXを用い、積和演算器1の製造時に積演算素子10BA、10BB、10BCのいずれかの故障(不良)が判明した場合に、不良の(故障した)積演算素子の代わりに代替素子10BXを用いてもよい。
<第2実施形態>(抵抗変化素子が一般的な可変抵抗)
 以下、本発明の積和演算器の第2実施形態について説明する。
 第2実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第2実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
 図9は第2実施形態の積和演算器1の一部の構成の一例を示す図である。
 第1実施形態の積和演算器1では、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXが磁気抵抗効果素子によって構成されているが、第2実施形態の積和演算器1では、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXが一般的な抵抗変化素子(可変抵抗)によって構成されている。
 詳細には、図1に示す例では、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれが、読み出し端子と、書き込み端子と、共通端子とを備えているが、図9に示す例では、積演算素子10AA~10AC、10BA~10BCおよび代替素子10AX、10BXのそれぞれが、第1端子と、第2端子とを備えている。
 図9に示す例では、積演算素子10AA、10BAの第1端子は、ラインL11に接続されている。積演算素子10AB、10BBの第1端子は、ラインL21に接続されている。積演算素子10AC、10BCの第1端子は、ラインL31に接続されている。代替素子10AX、10BXの第1端子は、ラインLX1に接続されている。
 積演算素子10AA~10ACおよび代替素子10AXの第2端子は、ラインM1に接続されている。積演算素子10BA~10BCおよび代替素子10BXの第2端子は、ラインM2に接続されている。
 和演算部11は、代替素子10AXが用いられない場合に積演算素子10AA~10ACの第2端子からの出力の合計値を検出する出力検出器11Aと、代替素子10BXが用いられない場合に積演算素子10BA~10BCの第2端子からの出力の合計値を検出する出力検出器11Bとを備えている。
<第3実施形態>(予備カラム)
 以下、本発明の積和演算器の第3実施形態について説明する。
 第3実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第3実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
 図10は第3実施形態の積和演算器1の一部の構成の一例を示す図である。
 図1に示す例では、積演算部10が予備カラムを備えていないが、図10に示す例では、積演算部10が予備カラム10Xを備えている。
 また、図10に示す例では、予備カラム10Xが、積演算用代替素子10XAと、積演算用代替素子10XBと、積演算用代替素子10XCとを備えている。予備カラム10Xは、カラム10Aの積演算素子10AA~10ACのいずれかが故障した場合に、カラム10Aの代わりに用いられる。また、予備カラム10Xは、カラム10Bの積演算素子10BA~10BCのいずれかが故障した場合に、カラム10Bの代わりに用いられる。
 図10に示す例では、複数の積演算用代替素子10XA~10XCのそれぞれは、積演算素子10AA~10AC、10BA~10BCと同様に、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
 積演算用代替素子10XAの読み出し端子は、ラインL11に接続されている。ラインL11は、積演算素子10AA、10BAおよび積演算用代替素子10XAに対して信号を入力する入力部12Aに接続されている。積演算用代替素子10XAの書き込み端子は、ラインL12に接続されている。
 積演算用代替素子10XBの読み出し端子は、ラインL21に接続されている。ラインL21は、積演算素子10AB、10BBおよび積演算用代替素子10XBに対して信号を入力する入力部12Bに接続されている。積演算用代替素子10XBの書き込み端子は、ラインL22に接続されている。
 積演算用代替素子10XCの読み出し端子は、ラインL31に接続されている。ラインL31は、積演算素子10AC、10BCおよび積演算用代替素子10XCに対して信号を入力する入力部12Cに接続されている。積演算用代替素子10XCの書き込み端子は、ラインL32に接続されている。
 積演算用代替素子10XA、10XB、10XCの共通端子は、ラインMXに接続されている。
 つまり、図1に示す例では、入力部12XおよびラインLX1、LX2が備えられているが、図10に示す例では、入力部12XおよびラインLX1、LX2が備えられていない。
 図10に示す例では、和演算部11が、出力検出器11Aと出力検出器11Bと代替用出力検出器11Xとを備えている。代替用出力検出器11XはラインMXに配置されている。代替用出力検出器11Xは、積演算用代替素子10XA、10XB、10XCからの出力の合計値を検出する。
 カラム10Aの積演算素子10AA~10ACのすべてが正常であって、カラム10Bの積演算素子10BA~10BCのすべてが正常である場合に、予備カラム10Xの積演算用代替素子10XA~10XCは用いられない。
 例えばカラム10Aの積演算素子10AA~10ACのいずれかが故障した場合に、カラム10Aの代わりに予備カラム10Xが用いられる。詳細には、カラム10Aの積演算素子10AA~10ACの代わりに、予備カラム10Xの積演算用代替素子10XA~10XCが用いられる。
 また、カラム10Bの積演算素子10BA~10BCのいずれかが故障した場合に、カラム10Bの代わりに予備カラム10Xが用いられる。詳細には、カラム10Bの積演算素子10BA~10BCの代わりに、予備カラム10Xの積演算用代替素子10XA~10XCが用いられる。
 詳細には、第3実施形態の積和演算器1では、複数の積演算素子10AA、10AB、10ACのいずれかが故障していることを検査部13(図2参照)が検知した場合に、機能置換部14(図2参照)は、複数の積演算素子10AA、10AB、10ACが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる。その場合に、機能置換部14は、複数の積演算用代替素子10XA、10XB、10XCの抵抗値を、故障前の複数の積演算素子10AA、10AB、10ACの抵抗値と等しい値に設定する。
 また、複数の積演算素子10BA、10BB、10BCのいずれかが故障していることを検査部13が検知した場合に、機能置換部14は、複数の積演算素子10BA、10BB、10BCが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる。その場合に、機能置換部14は、複数の積演算用代替素子10XA、10XB、10XCの抵抗値を、故障前の複数の積演算素子10BA、10BB、10BCの抵抗値と等しい値に設定する。
 図10に示す例では、積演算部10が、1つの予備カラム10Xを備えているが、他の例では、積演算部10が、2以上の任意の数の予備カラムを備えていてもよい。
 図11は第3実施形態の積和演算器1によって実行される処理の一例を示すフローチャートである。
 図11に示す例では、積和演算器1は、積演算部10および和演算部11によって通常の積和演算が行われる通常モードと、検査部13による積演算素子10AA~10AC、10BA~10BCの検査などが行われる検査モードとを備える。
 ステップS10では、積和演算器1が、図5のステップS10と同様の処理を実行する。
 ステップS11では、積演算部10および和演算部11が、図5のステップS11と同様の処理を実行する。
 ステップS12では、検査部13が、図5のステップS12と同様の処理を実行する。
 次いで、ステップS13では、例えば機能置換部14が、図5のステップS13と同様の処理を実行する。積演算素子10AA~10AC、10BA~10BCのいずれかが故障している場合にはステップS20に進み、積演算素子10AA~10AC、10BA~10BCのすべてが正常である場合には、図11に示すルーチンを終了する。
 ステップS20では、積演算素子10AA~10ACのいずれかが故障している場合に、機能置換部14は、複数の積演算素子10AA、10AB、10ACが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる。また、積演算素子10BA~10BCのいずれかが故障している場合に、機能置換部14は、複数の積演算素子10BA、10BB、10BCが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる。
 次いで、ステップS21では、機能置換部14は、複数の積演算素子10AA、10AB、10ACが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる場合に、複数の積演算用代替素子10XA、10XB、10XCの抵抗値を、故障前の複数の積演算素子10AA、10AB、10ACの抵抗値と等しい値に設定する。例えば、故障前の積演算素子10AA、10AB、10ACの抵抗値は、記憶部(図示せず)に格納されている。機能置換部14は、記憶部からそれらの抵抗値を読み出すと共に、複数の積演算用代替素子10XA、10XB、10XCの抵抗値をそれらの抵抗値に変更する。
 また、機能置換部14は、複数の積演算素子10BA、10BB、10BCが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる場合に、複数の積演算用代替素子10XA、10XB、10XCの抵抗値を、故障前の複数の積演算素子10BA、10BB、10BCの抵抗値と等しい値に設定する。
<第4実施形態>(抵抗変化素子が一般的な可変抵抗)
 以下、本発明の積和演算器の第4実施形態について説明する。
 第4実施形態の積和演算器1は、後述する点を除き、上述した第3実施形態の積和演算器1と同様に構成されている。従って、第4実施形態の積和演算器1によれば、後述する点を除き、上述した第3実施形態の積和演算器1と同様の効果を奏することができる。
 図12は第4実施形態の積和演算器1の一部の構成の一例を示す図である。
 第3実施形態の積和演算器1では、積演算素子10AA~10AC、10BA~10BCおよび積演算用代替素子10XA~10XCが磁気抵抗効果素子によって構成されているが、第4実施形態の積和演算器1では、積演算素子10AA~10AC、10BA~10BCおよび積演算用代替素子10XA~10XCが一般的な抵抗変化素子(可変抵抗)によって構成されている。
 詳細には、図10に示す例では、積演算素子10AA~10AC、10BA~10BCおよび積演算用代替素子10XA~10XCのそれぞれが、読み出し端子と、書き込み端子と、共通端子とを備えているが、図12に示す例では、積演算素子10AA~10AC、10BA~10BCおよび積演算用代替素子10XA~10XCのそれぞれが、第1端子と、第2端子とを備えている。
 図12に示す例では、積演算素子10AA、10BAおよび積演算用代替素子10XAの第1端子は、ラインL11に接続されている。積演算素子10AB、10BB積演算用代替素子10XBの第1端子は、ラインL21に接続されている。積演算素子10AC、10BC積演算用代替素子10XCの第1端子は、ラインL31に接続されている。
 積演算素子10AA~10ACの第2端子は、ラインM1に接続されている。積演算素子10BA~10BCの第2端子は、ラインM2に接続されている。積演算用代替素子10XA~10XCの第2端子は、ラインMXに接続されている。
 和演算部11は、積演算素子10AA~10ACの第2端子からの出力の合計値を検出する出力検出器11Aと、積演算素子10BA~10BCの第2端子からの出力の合計値を検出する出力検出器11Bと、積演算用代替素子10XA~10XCの第2端子からの出力の合計値を検出する代替用出力検出器11Xとを備えている。
<第5実施形態>
 以下、本発明の積和演算器の第5実施形態について説明する。
 第5実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第5実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
 図13は第5実施形態の積和演算器1の一部の構成の一例を示す図である。図14は第5実施形態の積和演算器1の全体構成の一例を示す図である。
 図13および図14に示す例では、第5実施形態の積和演算器1が、積演算部10と、和演算部11と、入力部12と、検査部13と、機能置換部14とを備えている。積演算部10は、カラム10Aと、カラム10Bとを備えている。入力部12は、可変入力部121A、121Bと、固定入力部122A、122Xとを備えている。
 図13に示す例では、カラム10Aが、可変入力用積演算素子10A1A、10A1Bと、固定入力用積演算素子10A2Aと、固定入力用代替素子10A2Xとを備えている。固定入力用代替素子10A2Xは、固定入力用積演算素子10A2Aが故障した場合に固定入力用積演算素子10A2Aの代わりに用いられる。カラム10Bは、可変入力用積演算素子10B1A、10B1Bと、固定入力用積演算素子10B2Aと、固定入力用代替素子10B2Xとを備えている。固定入力用代替素子10B2Xは、固定入力用積演算素子10B2Aが故障した場合に固定入力用積演算素子10B2Aの代わりに用いられる。
 図13に示す例では、カラム10Aが2つの可変入力用積演算素子10A1A、10A1Bと1つの固定入力用積演算素子10A2Aと、1つの固定入力用代替素子10A2Xとを備え、カラム10Bが2つの可変入力用積演算素子10B1A、10B1Bと1つの固定入力用積演算素子10B2Aと、1つの固定入力用代替素子10B2Xとを備えているが、他の例では、カラム10Aが、2以外の任意の数(詳細には、複数)の可変入力用積演算素子と1以外の任意の数の固定入力用積演算素子と、1以外の任意の数の固定入力用代替素子とを備え、カラム10Bが、2以外の任意の数(詳細には、複数)の可変入力用積演算素子と1以外の任意の数の固定入力用積演算素子と、1以外の任意の数の固定入力用代替素子とを備えてもよい。
 図13に示す例では、複数の可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、複数の固定入力用積演算素子10A2A、10B2Aおよび複数の固定入力用代替素子10A2X、10B2Xのそれぞれは、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
 可変入力用積演算素子10A1A、10B1Aの読み出し端子は、ラインL11に接続されている。ラインL11は、可変入力用積演算素子10A1A、10B1Aに対して可変信号を入力する可変入力部121Aに接続されている。可変入力用積演算素子10A1A、10B1Aの書き込み端子は、ラインL12に接続されている。
 可変入力用積演算素子10A1B、10B1Bの読み出し端子は、ラインL21に接続されている。ラインL21は、可変入力用積演算素子10A1B、10B1Bに対して可変信号を入力する可変入力部121Bに接続されている。可変入力用積演算素子10A1B、10B1Bの書き込み端子は、ラインL22に接続されている。
 固定入力用積演算素子10A2A、10B2Aの読み出し端子は、ラインL31に接続されている。ラインL31は、固定入力用積演算素子10A2A、10B2Aに対して定められた信号である固定信号を入力する固定入力部122Aに接続されている。固定入力用積演算素子10A2A、10B2Aの書き込み端子は、ラインL32に接続されている。
 固定入力用代替素子10A2X、10B2Xの読み出し端子は、ラインL41に接続されている。ラインL41は、固定入力用代替素子10A2X、10B2Xに対して定められた信号である固定信号を入力する固定入力部122Xに接続されている。固定入力用代替素子10A2X、10B2Xの書き込み端子は、ラインL42に接続されている。
 固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xに対して入力される固定信号は、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bに対して入力される可変信号に同期させられる。
 可変入力用積演算素子10A1A、10A1B、固定入力用積演算素子10A2Aおよび固定入力用代替素子10A2Xの共通端子は、ラインM1に接続されている。可変入力用積演算素子10B1A、10B1B、固定入力用積演算素子10B2Aおよび固定入力用代替素子10B2Xの共通端子は、ラインM2に接続されている。
 和演算部11は、出力検出器11A、11Bを備えている。
 固定入力用代替素子10A2Xが用いられない場合に、出力検出器11Aは、可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2Aからの出力の合計値を検出する。例えば固定入力用積演算素子10A2Aが故障した場合であって、故障した固定入力用積演算素子10A2Aの代わりに固定入力用代替素子10A2Xが用いられる場合に、出力検出器11Aは、可変入力用積演算素子10A1A、10A1Bおよび固定入力用代替素子10A2Xからの出力の合計値を検出する。
 固定入力用代替素子10B2Xが用いられない場合に、出力検出器11Bは、可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2Aからの出力の合計値を検出する。例えば固定入力用積演算素子10B2Aが故障した場合であって、故障した固定入力用積演算素子10B2Aの代わりに固定入力用代替素子10B2Xが用いられる場合に、出力検出器11Bは、可変入力用積演算素子10B1A、10B1Bおよび固定入力用代替素子10B2Xからの出力の合計値を検出する。
 出力検出器11AはラインM1に配置されている。出力検出器11BはラインM2に配置されている。
 図13および図14に示す例では、検査部13は、固定入力用積演算素子10A2Aが故障しているか否かを検査する。
 例えば、固定入力用積演算素子10A2Aが故障しているか否かを検査するために、可変入力部121Aが可変入力用積演算素子10A1Aに対して信号を入力しない状態、かつ、可変入力部121Bが可変入力用積演算素子10A1Bに対して信号を入力しない状態、かつ、固定入力部122Xが固定入力用代替素子10A2Xに対して信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10A2Aに対して信号を入力する状態で、出力検出器11Aが、固定入力用積演算素子10A2Aからの出力を検出する。この状態では、可変入力用積演算素子10A1Aからの出力がゼロであり、可変入力用積演算素子10A1Bからの出力がゼロであり、固定入力用代替素子10A2Xからの出力がゼロである。また、検査部13は、出力検出器11Aの検出値に基づいて、固定入力用積演算素子10A2Aが故障しているか否かを判定する。
 また、図13および図14に示す例では、検査部13は、固定入力用積演算素子10B2Aが故障しているか否かを検査する。
 例えば、固定入力用積演算素子10B2Aが故障しているか否かを検査するために、可変入力部121Aが可変入力用積演算素子10B1Aに対して信号を入力しない状態、かつ、可変入力部121Bが可変入力用積演算素子10B1Bに対して信号を入力しない状態、かつ、固定入力部122Xが固定入力用代替素子10B2Xに対して信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10B2Aに対して信号を入力する状態で、出力検出器11Bが、固定入力用積演算素子10B2Aからの出力を検出する。この状態では、可変入力用積演算素子10B1Aからの出力がゼロであり、可変入力用積演算素子10B1Bからの出力がゼロであり、固定入力用代替素子10B2Xからの出力がゼロである。また、検査部13は、出力検出器11Bの検出値に基づいて、固定入力用積演算素子10B2Aが故障しているか否かを判定する。
 機能置換部14は、固定入力用積演算素子10A2Aが故障していることを検査部13が検知した場合に、故障している固定入力用積演算素子10A2Aが故障前に行っていた積演算を固定入力用代替素子10A2Xに行わせる。
 故障している固定入力用積演算素子10A2Aが故障前に行っていた積演算を行う固定入力用代替素子10A2Xの抵抗値は、固定入力用代替素子10A2Xの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
 また、機能置換部14は、固定入力用積演算素子10B2Aが故障していることを検査部13が検知した場合に、故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を固定入力用代替素子10B2Xに行わせる。
 故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を行う固定入力用代替素子10B2Xの抵抗値は、固定入力用代替素子10B2Xの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
 図13に示す例では、固定入力用代替素子10A2Xが、固定入力用積演算素子10A2Aに隣接して配置されている。また、固定入力用代替素子10B2Xは、固定入力用積演算素子10B2Aに隣接して配置されている。
 第5実施形態の積和演算器1は、図5に示す例と同様の処理を実行する。
 第5実施形態の積和演算器1では、図5のステップS12において、検査部13が、固定入力用積演算素子10A2A、10B2Aの検査を行う。詳細には、上述したように、検査部13は、固定入力用積演算素子10A2Aが故障しているか否かの検査、および、固定入力用積演算素子10B2Aが故障しているか否かの検査を行う。
 第5実施形態の積和演算器1では、図5のステップS13において、例えば機能置換部14が、検査部13の検査結果に基づいて、固定入力用積演算素子10A2A、10B2Aのいずれかが故障しているか否かを判定する。固定入力用積演算素子10A2A、10B2Aのいずれかが故障している場合にはステップS14に進み、固定入力用積演算素子10A2A、10B2Aのすべてが正常である場合には、図5に示すルーチンを終了する。
 第5実施形態の積和演算器1では、図5のステップS14において、機能置換部14が、故障している固定入力用積演算素子10A2A、10B2Aから固定入力用代替素子10A2X、10B2Xへの機能置換を行う。つまり、機能置換部14は、故障している固定入力用代替素子10A2X、10B2Xが故障前に行っていた積演算を固定入力用代替素子10A2X、10B2Xに行わせる。
 例えば、固定入力用積演算素子10A2Aが故障していると検査部13が判定した場合に、機能置換部14は、故障している固定入力用積演算素子10A2Aが故障前に行っていた積演算を固定入力用代替素子10A2Xに行わせる。具体的には、例えば、機能置換部14は、固定入力用代替素子10A2Xの抵抗値を、上述した中間値から、故障前の固定入力用積演算素子10A2Aの抵抗値に変更する。
 例えば、故障前の固定入力用積演算素子10A2Aの抵抗値は、記憶部に格納されている。機能置換部14は、記憶部からその抵抗値を読み出すと共に、固定入力用代替素子10A2Xの抵抗値をその抵抗値に変更する。
 同様に、固定入力用積演算素子10B2Aが故障していると検査部13が判定した場合に、機能置換部14は、故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を固定入力用代替素子10B2Xに行わせる。具体的には、例えば、機能置換部14は、固定入力用代替素子10B2Xの抵抗値を、上述した中間値から、故障前の固定入力用積演算素子10B2Aの抵抗値に変更する。
<第6実施形態>(抵抗変化素子が一般的な可変抵抗)
 以下、本発明の積和演算器の第6実施形態について説明する。
 第6実施形態の積和演算器1は、後述する点を除き、上述した第5実施形態の積和演算器1と同様に構成されている。従って、第6実施形態の積和演算器1によれば、後述する点を除き、上述した第5実施形態の積和演算器1と同様の効果を奏することができる。
 図15は第6実施形態の積和演算器1の一部の構成の一例を示す図である。
 第1実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xが磁気抵抗効果素子によって構成されているが、第6実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xが一般的な抵抗変化素子(可変抵抗)によって構成されている。
 詳細には、図13に示す例では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xのそれぞれが、読み出し端子と、書き込み端子と、共通端子とを備えているが、図15に示す例では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xのそれぞれが、第1端子と、第2端子とを備えている。
 図15に示す例では、可変入力用積演算素子10A1A、10B1Aの第1端子は、ラインL11に接続されている。可変入力用積演算素子10A1B、10B1Bの第1端子は、ラインL21に接続されている。固定入力用積演算素子10A2A、10B2Aの第1端子は、ラインL31に接続されている。固定入力用代替素子10A2X、10B2Xの第1端子は、ラインLX1に接続されている。
 可変入力用積演算素子10A1A、10A1B、固定入力用積演算素子10A2Aおよび固定入力用代替素子10A2Xの第2端子は、ラインM1に接続されている。可変入力用積演算素子10B1A、10B1B、固定入力用積演算素子10B2Aおよび固定入力用代替素子10B2Xの第2端子は、ラインM2に接続されている。
 和演算部11は、固定入力用代替素子10A2Xが用いられない場合に可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2Aの第2端子からの出力の合計値を検出する出力検出器11Aと、固定入力用代替素子10A2Xが用いられない場合に可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2Aの第2端子からの出力の合計値を検出する出力検出器11Bとを備えている。
 以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。上述した各実施形態に記載の構成を組み合わせてもよい。
 なお、以上に示した実施形態に係る各装置(例えば、積和演算器1)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
 なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
 また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
 さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
 また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
 また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
 コンピュータでは、例えば、CPU(Central Processing Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
1…積和演算器、2…積和演算器、10…積演算部、10A…カラム、10AA…積演算素子、10AB…積演算素子、10AC…積演算素子、10AX…代替素子、10A1A…可変入力用積演算素子、10A1B…可変入力用積演算素子、10A2A…固定入力用積演算素子、10A2X…固定入力用代替素子、10B…カラム、10BA…積演算素子、10BB…積演算素子、10BC…積演算素子、10BX…代替素子、10B1A…可変入力用積演算素子、10B1B…可変入力用積演算素子、10B2A…固定入力用積演算素子、10B2X…固定入力用代替素子、10X…予備カラム、10XA…積演算用代替素子、10XB…積演算用代替素子、10XC…積演算用代替素子、11…和演算部、11A…出力検出器、11B…出力検出器、11X…代替用出力検出器、12…入力部、12A…入力部、12B…入力部、12C…入力部、12X…入力部、121A…可変入力部、121B…可変入力部、122A…固定入力部、122X…固定入力部、13…検査部、14…機能置換部、100…ニューロモーフィックデバイス、101…入力層、101A、101B、101C、101D…ノード、102…隠れ層、102A、102B、102C…ノード、103…出力層、103A、103B、103C…ノード、A…磁気抵抗効果素子、AA…書き込み端子、AB…共通端子、AC…読み出し端子、A1…磁化自由層、A11…第1領域、A12…第2領域、A2…磁化固定層、A3…非磁性層、DW…磁壁、L11…ライン、L12…ライン、L21…ライン、L22…ライン、L31…ライン、L32…ライン、LX1…ライン、LX2…ライン、M1…ライン、M2…ライン、MX…ライン

Claims (14)

  1.  積演算部と、和演算部とを備え、
     前記積演算部は、複数の積演算素子と、前記複数の積演算素子のいずれかが故障した場合に故障した積演算素子の代わりに用いられる少なくとも1つの代替素子とを備え、
     前記複数の積演算素子のそれぞれと、前記代替素子とは、抵抗変化素子であり、
     前記和演算部は出力検出器を備え、
     前記出力検出器は、前記代替素子が用いられない場合に、前記複数の積演算素子からの出力の合計値を検出する、
     積和演算器。
  2.  請求項1に記載の積和演算器の使用方法であって、
     前記積和演算器は、前記複数の積演算素子のそれぞれが故障しているか否かを検査する検査部をさらに備え、
     前記検査部が、前記出力検出器によって検出される前記複数の積演算素子からの出力に基づいて、前記複数の積演算素子のそれぞれが故障しているか否かを判定する検査工程を含む、
     積和演算器の使用方法。
  3.  前記積和演算器は、機能置換部をさらに備え、
     前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、故障している積演算素子が故障前に行っていた積演算を前記代替素子に行わせる機能置換工程をさらに含む、
     請求項2に記載の積和演算器の使用方法。
  4.  前記故障している積演算素子が故障前に行っていた積演算を行う前記代替素子の抵抗値は、
     前記代替素子の抵抗値変動範囲の最小値よりも大きく前記抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている、
     請求項3に記載の積和演算器の使用方法。
  5.  前記少なくとも1つの代替素子は、複数の積演算用代替素子であり、
     前記和演算部は、前記複数の積演算用代替素子からの出力の合計値を検出する代替用出力検出器をさらに備える、
     請求項1に記載の積和演算器。
  6.  請求項5に記載の積和演算器の使用方法であって、
     前記積和演算器は、検査部と機能置換部とをさらに備え、
     前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、前記複数の積演算素子が故障前に行っていた積演算を前記複数の積演算用代替素子に行わせる機能置換工程と、
     前記機能置換部が、前記複数の積演算用代替素子の抵抗値を、故障前の前記複数の積演算素子の抵抗値と等しい値に設定する抵抗値設定工程とを含む、
     積和演算器の使用方法。
  7.  前記代替素子は、前記複数の積演算素子を隔てて前記出力検出器の反対側に配置されている、
     請求項1に記載の積和演算器。
  8.  前記出力検出器は、前記代替素子を隔てて前記複数の積演算素子の反対側に配置されている、
     請求項1に記載の積和演算器。
  9.  前記複数の積演算素子には、第1積演算素子と第2積演算素子とが含まれ、
     前記代替素子は、前記第1積演算素子と前記第2積演算素子との間に配置されている、
     請求項1に記載の積和演算器。
  10.  請求項1に記載の積和演算器の使用方法であって、
     前記複数の積演算素子には、複数の可変入力用積演算素子と、少なくとも1つの固定入力用積演算素子とが含まれ、
     前記代替素子は、固定入力用代替素子であり、
     前記積和演算器は、
     前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、
     前記固定入力用積演算素子および前記固定入力用代替素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部と、
     前記固定入力用積演算素子が故障しているか否かを検査する検査部と、
     機能置換部とをさらに備え、
     前記検査部が、前記出力検出器によって検出される前記固定入力用積演算素子からの出力に基づいて、前記固定入力用積演算素子が故障しているか否かを判定する検査工程と、
     前記固定入力用積演算素子が故障していることを前記検査部が検知した場合に、前記機能置換部が、前記固定入力用積演算素子が故障前に行っていた積演算を前記固定入力用代替素子に行わせる機能置換工程とを含む、
     積和演算器の使用方法。
  11.  前記固定入力用代替素子は、前記固定入力用積演算素子に隣接して配置されている、
     請求項10に記載の積和演算器の使用方法。
  12.  前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有する、
     請求項1、請求項5、および、請求項7から請求項9のいずれか一項に記載の積和演算器。
  13.  前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、
     前記磁気抵抗効果素子は、
     磁壁を有する磁化自由層と、
     磁化方向が固定された磁化固定層と、
     前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有する、
     請求項1、請求項5、請求項7から請求項9、および、請求項12のいずれか一項に記載の積和演算器。
  14.  請求項1、請求項5、請求項7から請求項9、請求項12、および、請求項13のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
PCT/JP2018/045725 2017-12-28 2018-12-12 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 WO2019131141A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/759,080 US11797829B2 (en) 2017-12-28 2018-12-12 Product-sum operation device, neuromorphic device, and method for using product-sum operation device
JP2019562957A JP6819799B2 (ja) 2017-12-28 2018-12-12 積和演算器の使用方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017254702 2017-12-28
JP2017-254702 2017-12-28

Publications (1)

Publication Number Publication Date
WO2019131141A1 true WO2019131141A1 (ja) 2019-07-04

Family

ID=67067127

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/045725 WO2019131141A1 (ja) 2017-12-28 2018-12-12 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Country Status (3)

Country Link
US (1) US11797829B2 (ja)
JP (1) JP6819799B2 (ja)
WO (1) WO2019131141A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111512312B (zh) * 2017-12-28 2023-08-18 Tdk株式会社 积和运算器、神经形态器件及积和运算器的使用方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282782A (ja) * 2008-05-22 2009-12-03 Sharp Corp 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
WO2011068177A1 (ja) * 2009-12-02 2011-06-09 日本電気株式会社 二重化計算システム及び二重化計算方法
JP2013122748A (ja) * 2011-12-09 2013-06-20 Toyota Infotechnology Center Co Ltd フォールトトレラントコンピュータシステム
JP2015195011A (ja) * 2014-03-18 2015-11-05 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法
JP2017204833A (ja) * 2016-05-13 2017-11-16 株式会社東芝 発振器及び演算装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10453523B2 (en) 2016-04-21 2019-10-22 Tdk Corporation Magnetic wall utilization-analog memory element and magnetic wall utilization analog memory
CN109923550B (zh) 2016-08-19 2022-11-15 索尼公司 乘数累加器
KR20230170991A (ko) * 2017-05-03 2023-12-19 가부시키가이샤 한도오따이 에네루기 켄큐쇼 신경망, 전력 저장 시스템, 차량, 및 전자 기기
US11442695B2 (en) 2017-12-28 2022-09-13 Tdk Corporation Product-sum operation device, neuromorphic device, and method for determining malfunction in product-sum operation device
JP7149198B2 (ja) 2019-02-07 2022-10-06 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282782A (ja) * 2008-05-22 2009-12-03 Sharp Corp 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
WO2011068177A1 (ja) * 2009-12-02 2011-06-09 日本電気株式会社 二重化計算システム及び二重化計算方法
JP2013122748A (ja) * 2011-12-09 2013-06-20 Toyota Infotechnology Center Co Ltd フォールトトレラントコンピュータシステム
JP2015195011A (ja) * 2014-03-18 2015-11-05 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法
JP2017204833A (ja) * 2016-05-13 2017-11-16 株式会社東芝 発振器及び演算装置

Also Published As

Publication number Publication date
US11797829B2 (en) 2023-10-24
JP6819799B2 (ja) 2021-01-27
US20200327400A1 (en) 2020-10-15
JPWO2019131141A1 (ja) 2020-11-19

Similar Documents

Publication Publication Date Title
JP6721136B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
US6850433B2 (en) Magnetic memory device and method
JP2008287852A (ja) 多数の記憶要素を備えたmramセル
JP2006140468A (ja) マグネチックram
WO2006104002A1 (ja) 磁気ランダムアクセスメモリ
JP6747610B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の故障判断方法
EP1473735A1 (en) Dual-junction magnetic memory device and read method
WO2019131141A1 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
WO2019131147A1 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
WO2019131142A1 (ja) 積和演算器、ニューロモルフィックデバイスおよび積和演算器の使用方法
JP2011198416A (ja) 磁気メモリ
US6747335B1 (en) Magnetic memory cell
US7474569B2 (en) Two-element magnetic memory cell
JPWO2008102499A1 (ja) 磁性体装置及び磁気ランダムアクセスメモリ
CN116801706A (zh) 抗磁场干扰的自旋轨道磁性随机存储器及信息存储方法
JPH10177783A (ja) 磁気メモリ素子、この磁気メモリ素子の情報記録方法および情報記憶装置

Legal Events

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

Ref document number: 18894518

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019562957

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18894518

Country of ref document: EP

Kind code of ref document: A1