JPWO2019131141A1 - 積和演算器の使用方法 - Google Patents
積和演算器の使用方法 Download PDFInfo
- Publication number
- JPWO2019131141A1 JPWO2019131141A1 JP2019562957A JP2019562957A JPWO2019131141A1 JP WO2019131141 A1 JPWO2019131141 A1 JP WO2019131141A1 JP 2019562957 A JP2019562957 A JP 2019562957A JP 2019562957 A JP2019562957 A JP 2019562957A JP WO2019131141 A1 JPWO2019131141 A1 JP WO2019131141A1
- Authority
- JP
- Japan
- Prior art keywords
- product
- product calculation
- elements
- calculation
- alternative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 629
- 230000005415 magnetization Effects 0.000 claims description 135
- 238000007689 inspection Methods 0.000 claims description 71
- 230000005291 magnetic effect Effects 0.000 claims description 49
- 230000000694 effects Effects 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 abstract description 12
- 230000006866 deterioration Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 59
- 239000000463 material Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 229910052751 metal Inorganic materials 0.000 description 8
- 239000002184 metal Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 229910045601 alloy Inorganic materials 0.000 description 6
- 239000000956 alloy Substances 0.000 description 6
- 230000002950 deficient Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000001747 exhibiting effect Effects 0.000 description 4
- 150000002739 metals Chemical class 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 229910052804 chromium Inorganic materials 0.000 description 3
- 239000003302 ferromagnetic material Substances 0.000 description 3
- 239000012212 insulator Substances 0.000 description 3
- 229910052742 iron Inorganic materials 0.000 description 3
- 229910052748 manganese Inorganic materials 0.000 description 3
- 229910052759 nickel Inorganic materials 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 229910020598 Co Fe Inorganic materials 0.000 description 2
- 229910002519 Co-Fe Inorganic materials 0.000 description 2
- 229910005347 FeSi Inorganic materials 0.000 description 2
- 229910001030 Iron–nickel alloy Inorganic materials 0.000 description 2
- 229910020068 MgAl Inorganic materials 0.000 description 2
- 229910052782 aluminium Inorganic materials 0.000 description 2
- 230000005290 antiferromagnetic effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 230000005294 ferromagnetic effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 229910052723 transition metal Inorganic materials 0.000 description 2
- 229910018072 Al 2 O 3 Inorganic materials 0.000 description 1
- 229910019222 CoCrPt Inorganic materials 0.000 description 1
- 230000005355 Hall effect Effects 0.000 description 1
- 229910017857 MgGa Inorganic materials 0.000 description 1
- 229910017911 MgIn Inorganic materials 0.000 description 1
- 229910017028 MnSi Inorganic materials 0.000 description 1
- 229910003271 Ni-Fe Inorganic materials 0.000 description 1
- 241001364096 Pachycephalidae Species 0.000 description 1
- 229910004298 SiO 2 Inorganic materials 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005307 ferromagnetism Effects 0.000 description 1
- 229910052733 gallium Inorganic materials 0.000 description 1
- 229910001291 heusler alloy Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910000765 intermetallic Inorganic materials 0.000 description 1
- CPLXHLVBOLITMK-UHFFFAOYSA-N magnesium oxide Inorganic materials [Mg]=O CPLXHLVBOLITMK-UHFFFAOYSA-N 0.000 description 1
- 230000005381 magnetic domain Effects 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 229910000510 noble metal Inorganic materials 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000004544 sputter deposition Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 150000003624 transition metals Chemical class 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 229910052720 vanadium Inorganic materials 0.000 description 1
- 229910052725 zinc Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/383—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using magnetic or similar elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L27/00—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
- H01L27/02—Devices 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/04—Devices 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/10—Devices 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/105—Devices 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4814—Non-logic devices, e.g. operational amplifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
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
Description
また、神経系を模倣したニューラルネットワークを抵抗変化素子のアレイを用いて実現する研究が進められている。ニューロモーフィックデバイス(NMD)では、前段から次の段へとウエイトをかけて足し合わせる積和演算を行う。そこで、連続的に抵抗が変化する抵抗変化素子を複数組み合わせ、それぞれの抵抗値を重みとして入力信号に対する積演算を行い、そこから出力される電流の総和をとることで和演算を行う様々なタイプの積和演算器、およびそれを利用したNMDの開発がすすめられている。
図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、…を備えていてもよい。
カラム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以上の代替素子を備えてもよい。
積演算素子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に接続されている。
代替素子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の出力を電荷として検出してもよい。
複数の積演算素子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以上の値である。
一方、点P2の状態では、出力検出器11Aが検出した積演算素子10AA〜10ACの出力電流の合計値が、規定値を超える。そのため、検査部13は、カラム10Aに含まれる複数の積演算素子10AA〜10ACの少なくとも1つに、出力電流が大きくなる故障が発生したと判断する。
例えば、積演算素子10AAが故障しているか否かを検査するために、入力部12Bが積演算素子10ABに対して信号を入力しない状態、かつ、入力部12Cが積演算素子10ACに対して信号を入力しない状態、かつ、入力部12Xが代替素子10AXに対して信号を入力しない状態、かつ、入力部12Aが積演算素子10AAに対して信号を入力する状態で、出力検出器11Aが、積演算素子10AAからの出力を検出する。この状態では、積演算素子10ABからの出力がゼロであり、積演算素子10ACからの出力がゼロであり、代替素子10AXからの出力がゼロである。また、検査部13は、出力検出器11Aの検出値に基づいて、積演算素子10AAが故障しているか否かを判定する。
同様に、検査部13は、積演算素子10ABが故障しているか否か、および、積演算素子10ACが故障しているか否かを検査する。
例えば、積演算素子10BBが故障しているか否かを検査するために、入力部12Aが積演算素子10BAに対して信号を入力しない状態、かつ、入力部12Cが積演算素子10BCに対して信号を入力しない状態、かつ、入力部12Xが代替素子10BXに対して信号を入力しない状態、かつ、入力部12Bが積演算素子10BBに対して信号を入力する状態で、出力検出器11Bが、積演算素子10BBからの出力を検出する。この状態では、積演算素子10BAからの出力がゼロであり、積演算素子10BCからの出力がゼロであり、代替素子10BXからの出力がゼロである。また、検査部13は、出力検出器11Bの検出値に基づいて、積演算素子10BBが故障しているか否かを判定する。
同様に、検査部13は、積演算素子10BAが故障しているか否か、および、積演算素子10BCが故障しているか否かを検査する。
故障している積演算素子(例えば積演算素子10AA)が故障前に行っていた積演算を行う代替素子10AXの抵抗値は、代替素子10AXの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
また、機能置換部14は、複数の積演算素子10BA、10BB、10BCのいずれかが故障していることを検査部13が検知した場合に、故障している積演算素子(例えば積演算素子10BB)が故障前に行っていた積演算を代替素子10BXに行わせる。
故障している積演算素子(例えば積演算素子10BB)が故障前に行っていた積演算を行う代替素子10BXの抵抗値は、代替素子10BXの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
つまり、図1は、代替素子10AX、10BXが図1の上側に配置される場合に、代替素子10AX、10BXが図1の下側に配置される場合よりも、積和演算器1の配線抵抗の観点から好ましい(例えば、積和演算器1の消費電力が抑制される)例を示している。
図4に示す例では、磁気抵抗効果素子Aは、磁壁DWを有する磁化自由層A1と、磁化方向が固定された磁化固定層A2と、非磁性層A3とを有する。非磁性層A3は、磁化自由層A1と磁化固定層A2とに挟まれている。磁化自由層A1は、磁壁DWの一方の側に第1領域A11を有し、磁壁DWの他方の側に第2領域A12を有する。第1領域A11には、書き込み端子AAが設けられている。第2領域A12には、共通端子ABが設けられている。磁化固定層A2には、読み出し端子ACが設けられている。
また、データの読み出しは、読み出し端子ACと共通端子ABとの間に電流を流して、磁化方向が平行な部分の面積率と磁化方向が反平行な部分の面積率との比に応じた抵抗を検出することで行うことができる(例えば、特許文献1参照)。
磁化固定層A2は、磁化が第1の方向(例えば図4の左向き)に配向し、固定された層である。ここで、磁化が固定されるとは、書き込み電流を用いた書き込み前後において磁化方向が変化しない(磁化が固定されている)ことを意味する。
非磁性層A3は、磁化固定層A2の下面に設けられている。磁気抵抗効果素子Aは、非磁性層A3を介して磁化固定層A2に対する磁化自由層A1の磁化状態の変化を抵抗値変化として読み出す。すなわち、磁化固定層A2、非磁性層A3及び磁化自由層A1は磁気抵抗効果素子Aとして機能し、非磁性層A3が絶縁体からなる場合はトンネル磁気抵抗(TMR)素子と似た構成であり、非磁性層2が金属からなる場合は巨大磁気抵抗効果(GMR)素子と似た構成である。
非磁性層A3が絶縁体からなる場合(トンネルバリア層である場合)、その厚みは、例えば2.5nm以上である。
磁化自由層A1は磁壁駆動型(移動型)MRAMの磁壁駆動層に相当する。
磁化自由層A1は強磁性体材料からなり、その内部の磁化の向きは反転可能である。磁化自由層A1は、磁化が磁化固定層A2と逆向きの第2の方向に配向した第1領域A11と、磁化が第1の方向と同じ向きに配向した第2領域A12と、これらの領域の界面をなす磁壁DWとを有する。磁壁DWを挟んで第1領域A11と第2領域A12の磁化の向きは反対である。磁壁DWは、磁化自由層A1における第1領域A11と第2領域A12の構成比率が変化することで移動する。
第1磁化供給層A4及び第2磁化供給層A5の材料としては、磁化固定層A2に使える強磁性材料と同じ材料を用いることができる。
かかる構成を有することにより、磁化が固定された層としての磁化供給層を設置することがなくても、スピン軌道トルク配線の両端に電流を流すことにより磁化自由層A1に磁壁を導入することができ、また、スピン軌道トルク配線を介して磁化自由層A1に電流を流すことで、磁壁を移動させることができる。
図5に示す例では、積和演算器1は、積演算部10および和演算部11によって通常の積和演算が行われる通常モードと、検査部13による積演算素子10AA〜10AC、10BA〜10BCの検査などが行われる検査モードとを備える。
ステップS10では、積和演算器1が通常モードであるか、あるいは、検査モードであるかを判定する。積和演算器1が通常モードである場合には、ステップS11に進む。積和演算器1が検査モードである場合には、ステップS12に進む。
ステップS11では、積演算部10および和演算部11が、通常の積和演算を行う。
次いで、ステップS13では、例えば機能置換部14が、検査部13の検査結果に基づいて、積演算素子10AA〜10AC、10BA〜10BCのいずれかが故障しているか否かを判定する。積演算素子10AA〜10AC、10BA〜10BCのいずれかが故障している場合にはステップS14に進み、積演算素子10AA〜10AC、10BA〜10BCのすべてが正常である場合には、図5に示すルーチンを終了する。
例えば、積演算素子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に行わせる。
図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に示す例では、代替素子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が、ニューロモーフィックデバイス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実施形態の積和演算器1では、複数の積演算素子10AA〜10AC、10BA〜10BCのいずれかが故障した場合に、故障している積演算素子が故障前に行っていた積演算を代替素子10AX、10BXに行わせることによって、代替素子10AX、10BXが備えられていない場合よりも、ニューロモーフィックデバイス100の機能低下を抑制することができる。
そのため、第1実施形態の積和演算器1によれば、積和演算器1の製造段階のみならず、積和演算器1の使用時においても、積演算素子10AA〜10AC、10BA〜10BCの故障を検知することができる。
そのため、第1実施形態の積和演算器1によれば、積演算素子10AA〜10AC、10BA〜10BCのいずれかが故障した場合であっても、積和演算器1を正常に動作させ続けることができ、第1実施形態の積和演算器1がニューラルネットワークに適用される場合にニューラルネットワークの性能を維持することができる。
そのため、第1実施形態の積和演算器1によれば、代替素子10AX、10BXの抵抗値が、上述した中間値から、故障前の積演算素子の抵抗値に変更される場合の抵抗値変更所要時間を、平均的に短くすることができる。
つまり、第1実施形態の積和演算器1では、積演算素子10AA〜10AC、10BA〜10BCとして、正常動作時における抵抗値と、故障時(詳細には、出力電流が大きくなる故障時)における抵抗値との差が大きい素子が用いられる。
そのため、第1実施形態の積和演算器1によれば、正常動作時における抵抗値と、故障時(詳細には、出力電流が大きくなる故障時)における抵抗値との差が小さい素子が用いられる場合よりも、ニューラルネットワークの性能を大きく損なうおそれがある故障を正確に検知することができる。
他の例では、第1実施形態の積和演算器1の製造時に積演算素子10AA、10AB、10ACのいずれかの故障(不良)が判明した場合に、不良の(故障した)積演算素子の代わりに代替素子10AXを用い、積和演算器1の製造時に積演算素子10BA、10BB、10BCのいずれかの故障(不良)が判明した場合に、不良の(故障した)積演算素子の代わりに代替素子10BXを用いてもよい。
以下、本発明の積和演算器の第2実施形態について説明する。
第2実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第2実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
第1実施形態の積和演算器1では、積演算素子10AA〜10AC、10BA〜10BCおよび代替素子10AX、10BXが磁気抵抗効果素子によって構成されているが、第2実施形態の積和演算器1では、積演算素子10AA〜10AC、10BA〜10BCおよび代替素子10AX、10BXが一般的な抵抗変化素子(可変抵抗)によって構成されている。
図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実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第3実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
図1に示す例では、積演算部10が予備カラムを備えていないが、図10に示す例では、積演算部10が予備カラム10Xを備えている。
また、図10に示す例では、予備カラム10Xが、積演算用代替素子10XAと、積演算用代替素子10XBと、積演算用代替素子10XCとを備えている。予備カラム10Xは、カラム10Aの積演算素子10AA〜10ACのいずれかが故障した場合に、カラム10Aの代わりに用いられる。また、予備カラム10Xは、カラム10Bの積演算素子10BA〜10BCのいずれかが故障した場合に、カラム10Bの代わりに用いられる。
積演算用代替素子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が備えられていない。
カラム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が用いられる。
また、複数の積演算素子10BA、10BB、10BCのいずれかが故障していることを検査部13が検知した場合に、機能置換部14は、複数の積演算素子10BA、10BB、10BCが故障前に行っていた積演算を複数の積演算用代替素子10XA、10XB、10XCに行わせる。その場合に、機能置換部14は、複数の積演算用代替素子10XA、10XB、10XCの抵抗値を、故障前の複数の積演算素子10BA、10BB、10BCの抵抗値と等しい値に設定する。
図11に示す例では、積和演算器1は、積演算部10および和演算部11によって通常の積和演算が行われる通常モードと、検査部13による積演算素子10AA〜10AC、10BA〜10BCの検査などが行われる検査モードとを備える。
ステップS10では、積和演算器1が、図5のステップS10と同様の処理を実行する。
ステップS11では、積演算部10および和演算部11が、図5のステップS11と同様の処理を実行する。
次いで、ステップS13では、例えば機能置換部14が、図5のステップS13と同様の処理を実行する。積演算素子10AA〜10AC、10BA〜10BCのいずれかが故障している場合にはステップS20に進み、積演算素子10AA〜10AC、10BA〜10BCのすべてが正常である場合には、図11に示すルーチンを終了する。
次いで、ステップ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実施形態の積和演算器1は、後述する点を除き、上述した第3実施形態の積和演算器1と同様に構成されている。従って、第4実施形態の積和演算器1によれば、後述する点を除き、上述した第3実施形態の積和演算器1と同様の効果を奏することができる。
第3実施形態の積和演算器1では、積演算素子10AA〜10AC、10BA〜10BCおよび積演算用代替素子10XA〜10XCが磁気抵抗効果素子によって構成されているが、第4実施形態の積和演算器1では、積演算素子10AA〜10AC、10BA〜10BCおよび積演算用代替素子10XA〜10XCが一般的な抵抗変化素子(可変抵抗)によって構成されている。
図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実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第5実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
図13および図14に示す例では、第5実施形態の積和演算器1が、積演算部10と、和演算部11と、入力部12と、検査部13と、機能置換部14とを備えている。積演算部10は、カラム10Aと、カラム10Bとを備えている。入力部12は、可変入力部121A、121Bと、固定入力部122A、122Xとを備えている。
図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以外の任意の数の固定入力用代替素子とを備えてもよい。
可変入力用積演算素子10A1A、10B1Aの読み出し端子は、ラインL11に接続されている。ラインL11は、可変入力用積演算素子10A1A、10B1Aに対して可変信号を入力する可変入力部121Aに接続されている。可変入力用積演算素子10A1A、10B1Aの書き込み端子は、ラインL12に接続されている。
可変入力用積演算素子10A1B、10B1Bの読み出し端子は、ラインL21に接続されている。ラインL21は、可変入力用積演算素子10A1B、10B1Bに対して可変信号を入力する可変入力部121Bに接続されている。可変入力用積演算素子10A1B、10B1Bの書き込み端子は、ラインL22に接続されている。
固定入力用代替素子10A2X、10B2Xの読み出し端子は、ラインL41に接続されている。ラインL41は、固定入力用代替素子10A2X、10B2Xに対して定められた信号である固定信号を入力する固定入力部122Xに接続されている。固定入力用代替素子10A2X、10B2Xの書き込み端子は、ラインL42に接続されている。
固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xに対して入力される固定信号は、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bに対して入力される可変信号に同期させられる。
和演算部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に配置されている。
例えば、固定入力用積演算素子10A2Aが故障しているか否かを検査するために、可変入力部121Aが可変入力用積演算素子10A1Aに対して信号を入力しない状態、かつ、可変入力部121Bが可変入力用積演算素子10A1Bに対して信号を入力しない状態、かつ、固定入力部122Xが固定入力用代替素子10A2Xに対して信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10A2Aに対して信号を入力する状態で、出力検出器11Aが、固定入力用積演算素子10A2Aからの出力を検出する。この状態では、可変入力用積演算素子10A1Aからの出力がゼロであり、可変入力用積演算素子10A1Bからの出力がゼロであり、固定入力用代替素子10A2Xからの出力がゼロである。また、検査部13は、出力検出器11Aの検出値に基づいて、固定入力用積演算素子10A2Aが故障しているか否かを判定する。
例えば、固定入力用積演算素子10B2Aが故障しているか否かを検査するために、可変入力部121Aが可変入力用積演算素子10B1Aに対して信号を入力しない状態、かつ、可変入力部121Bが可変入力用積演算素子10B1Bに対して信号を入力しない状態、かつ、固定入力部122Xが固定入力用代替素子10B2Xに対して信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10B2Aに対して信号を入力する状態で、出力検出器11Bが、固定入力用積演算素子10B2Aからの出力を検出する。この状態では、可変入力用積演算素子10B1Aからの出力がゼロであり、可変入力用積演算素子10B1Bからの出力がゼロであり、固定入力用代替素子10B2Xからの出力がゼロである。また、検査部13は、出力検出器11Bの検出値に基づいて、固定入力用積演算素子10B2Aが故障しているか否かを判定する。
故障している固定入力用積演算素子10A2Aが故障前に行っていた積演算を行う固定入力用代替素子10A2Xの抵抗値は、固定入力用代替素子10A2Xの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
また、機能置換部14は、固定入力用積演算素子10B2Aが故障していることを検査部13が検知した場合に、故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を固定入力用代替素子10B2Xに行わせる。
故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を行う固定入力用代替素子10B2Xの抵抗値は、固定入力用代替素子10B2Xの抵抗値変動範囲の最小値よりも大きく抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている。
第5実施形態の積和演算器1では、図5のステップS12において、検査部13が、固定入力用積演算素子10A2A、10B2Aの検査を行う。詳細には、上述したように、検査部13は、固定入力用積演算素子10A2Aが故障しているか否かの検査、および、固定入力用積演算素子10B2Aが故障しているか否かの検査を行う。
第5実施形態の積和演算器1では、図5のステップS13において、例えば機能置換部14が、検査部13の検査結果に基づいて、固定入力用積演算素子10A2A、10B2Aのいずれかが故障しているか否かを判定する。固定入力用積演算素子10A2A、10B2Aのいずれかが故障している場合にはステップS14に進み、固定入力用積演算素子10A2A、10B2Aのすべてが正常である場合には、図5に示すルーチンを終了する。
例えば、固定入力用積演算素子10A2Aが故障していると検査部13が判定した場合に、機能置換部14は、故障している固定入力用積演算素子10A2Aが故障前に行っていた積演算を固定入力用代替素子10A2Xに行わせる。具体的には、例えば、機能置換部14は、固定入力用代替素子10A2Xの抵抗値を、上述した中間値から、故障前の固定入力用積演算素子10A2Aの抵抗値に変更する。
例えば、故障前の固定入力用積演算素子10A2Aの抵抗値は、記憶部に格納されている。機能置換部14は、記憶部からその抵抗値を読み出すと共に、固定入力用代替素子10A2Xの抵抗値をその抵抗値に変更する。
同様に、固定入力用積演算素子10B2Aが故障していると検査部13が判定した場合に、機能置換部14は、故障している固定入力用積演算素子10B2Aが故障前に行っていた積演算を固定入力用代替素子10B2Xに行わせる。具体的には、例えば、機能置換部14は、固定入力用代替素子10B2Xの抵抗値を、上述した中間値から、故障前の固定入力用積演算素子10B2Aの抵抗値に変更する。
以下、本発明の積和演算器の第6実施形態について説明する。
第6実施形態の積和演算器1は、後述する点を除き、上述した第5実施形態の積和演算器1と同様に構成されている。従って、第6実施形態の積和演算器1によれば、後述する点を除き、上述した第5実施形態の積和演算器1と同様の効果を奏することができる。
第1実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xが磁気抵抗効果素子によって構成されているが、第6実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1B、固定入力用積演算素子10A2A、10B2Aおよび固定入力用代替素子10A2X、10B2Xが一般的な抵抗変化素子(可変抵抗)によって構成されている。
図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とを備えている。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
コンピュータでは、例えば、CPU(Central Processing Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
Claims (14)
- 積演算部と、和演算部とを備え、
前記積演算部は、複数の積演算素子と、前記複数の積演算素子のいずれかが故障した場合に故障した積演算素子の代わりに用いられる少なくとも1つの代替素子とを備え、
前記複数の積演算素子のそれぞれと、前記代替素子とは、抵抗変化素子であり、
前記和演算部は出力検出器を備え、
前記出力検出器は、前記代替素子が用いられない場合に、前記複数の積演算素子からの出力の合計値を検出する、
積和演算器。 - 請求項1に記載の積和演算器の使用方法であって、
前記積和演算器は、前記複数の積演算素子のそれぞれが故障しているか否かを検査する検査部をさらに備え、
前記検査部が、前記出力検出器によって検出される前記複数の積演算素子からの出力に基づいて、前記複数の積演算素子のそれぞれが故障しているか否かを判定する検査工程を含む、
積和演算器の使用方法。 - 前記積和演算器は、機能置換部をさらに備え、
前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、故障している積演算素子が故障前に行っていた積演算を前記代替素子に行わせる機能置換工程をさらに含む、
請求項2に記載の積和演算器の使用方法。 - 前記故障している積演算素子が故障前に行っていた積演算を行う前記代替素子の抵抗値は、
前記代替素子の抵抗値変動範囲の最小値よりも大きく前記抵抗値変動範囲の最大値よりも小さい中間値に予め設定されている、
請求項3に記載の積和演算器の使用方法。 - 前記少なくとも1つの代替素子は、複数の積演算用代替素子であり、
前記和演算部は、前記複数の積演算用代替素子からの出力の合計値を検出する代替用出力検出器をさらに備える、
請求項1に記載の積和演算器。 - 請求項5に記載の積和演算器の使用方法であって、
前記積和演算器は、検査部と機能置換部とをさらに備え、
前記複数の積演算素子のいずれかが故障していることを前記検査部が検知した場合に、前記機能置換部が、前記複数の積演算素子が故障前に行っていた積演算を前記複数の積演算用代替素子に行わせる機能置換工程と、
前記機能置換部が、前記複数の積演算用代替素子の抵抗値を、故障前の前記複数の積演算素子の抵抗値と等しい値に設定する抵抗値設定工程とを含む、
積和演算器の使用方法。 - 前記代替素子は、前記複数の積演算素子を隔てて前記出力検出器の反対側に配置されている、
請求項1に記載の積和演算器。 - 前記出力検出器は、前記代替素子を隔てて前記複数の積演算素子の反対側に配置されている、
請求項1に記載の積和演算器。 - 前記複数の積演算素子には、第1積演算素子と第2積演算素子とが含まれ、
前記代替素子は、前記第1積演算素子と前記第2積演算素子との間に配置されている、
請求項1に記載の積和演算器。 - 請求項1に記載の積和演算器の使用方法であって、
前記複数の積演算素子には、複数の可変入力用積演算素子と、少なくとも1つの固定入力用積演算素子とが含まれ、
前記代替素子は、固定入力用代替素子であり、
前記積和演算器は、
前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、
前記固定入力用積演算素子および前記固定入力用代替素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部と、
前記固定入力用積演算素子が故障しているか否かを検査する検査部と、
機能置換部とをさらに備え、
前記検査部が、前記出力検出器によって検出される前記固定入力用積演算素子からの出力に基づいて、前記固定入力用積演算素子が故障しているか否かを判定する検査工程と、
前記固定入力用積演算素子が故障していることを前記検査部が検知した場合に、前記機能置換部が、前記固定入力用積演算素子が故障前に行っていた積演算を前記固定入力用代替素子に行わせる機能置換工程とを含む、
積和演算器の使用方法。 - 前記固定入力用代替素子は、前記固定入力用積演算素子に隣接して配置されている、
請求項10に記載の積和演算器の使用方法。 - 前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有する、
請求項1、請求項5、および、請求項7から請求項9のいずれか一項に記載の積和演算器。 - 前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、
前記磁気抵抗効果素子は、
磁壁を有する磁化自由層と、
磁化方向が固定された磁化固定層と、
前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有する、
請求項1、請求項5、請求項7から請求項9、および、請求項12のいずれか一項に記載の積和演算器。 - 請求項1、請求項5、請求項7から請求項9、請求項12、および、請求項13のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017254702 | 2017-12-28 | ||
JP2017254702 | 2017-12-28 | ||
PCT/JP2018/045725 WO2019131141A1 (ja) | 2017-12-28 | 2018-12-12 | 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019131141A1 true JPWO2019131141A1 (ja) | 2020-11-19 |
JP6819799B2 JP6819799B2 (ja) | 2021-01-27 |
Family
ID=67067127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019562957A Active JP6819799B2 (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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111512312B (zh) * | 2017-12-28 | 2023-08-18 | Tdk株式会社 | 积和运算器、神经形态器件及积和运算器的使用方法 |
Citations (5)
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)
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 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2018
- 2018-12-12 US US16/759,080 patent/US11797829B2/en active Active
- 2018-12-12 WO PCT/JP2018/045725 patent/WO2019131141A1/ja active Application Filing
- 2018-12-12 JP JP2019562957A patent/JP6819799B2/ja active Active
Patent Citations (5)
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 |
WO2019131141A1 (ja) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6721136B2 (ja) | 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 | |
JP7003991B2 (ja) | 磁壁利用型アナログメモリ素子、磁壁利用型アナログメモリ、不揮発性ロジック回路及び磁気ニューロ素子 | |
US10453523B2 (en) | Magnetic wall utilization-analog memory element and magnetic wall utilization analog memory | |
US20190035446A1 (en) | Exchange bias utilization type magnetization rotational element, exchange bias utilization type magnetoresistance effect element, exchange bias utilization type magnetic memory, non-volatile logic circuit, and magnetic neuron element | |
US10553299B2 (en) | Magnetic domain wall type analog memory element, magnetic domain wall type analog memory, nonvolatile logic circuit, and magnetic neuro-element | |
JP7013839B2 (ja) | 磁壁利用型アナログメモリ、不揮発性ロジック回路及び磁気ニューロ素子 | |
JP2008287852A (ja) | 多数の記憶要素を備えたmramセル | |
JP6747610B2 (ja) | 積和演算器、ニューロモーフィックデバイスおよび積和演算器の故障判断方法 | |
EP1473735A1 (en) | Dual-junction magnetic memory device and read method | |
JP6819799B2 (ja) | 積和演算器の使用方法 | |
JP6773239B2 (ja) | 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 | |
JP6876281B2 (ja) | 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 | |
JP2009135412A (ja) | 抵抗特性調整を有するmram | |
JP2007305823A (ja) | 磁気抵抗効果素子を用いたメモリおよびその駆動方法 | |
JPH10177783A (ja) | 磁気メモリ素子、この磁気メモリ素子の情報記録方法および情報記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200626 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200626 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200626 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201008 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6819799 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |