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

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

Info

Publication number
JP6721136B2
JP6721136B2 JP2019565965A JP2019565965A JP6721136B2 JP 6721136 B2 JP6721136 B2 JP 6721136B2 JP 2019565965 A JP2019565965 A JP 2019565965A JP 2019565965 A JP2019565965 A JP 2019565965A JP 6721136 B2 JP6721136 B2 JP 6721136B2
Authority
JP
Japan
Prior art keywords
product
magnetization
output
elements
layer
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.)
Active
Application number
JP2019565965A
Other languages
English (en)
Other versions
JPWO2019176540A1 (ja
Inventor
竜雄 柴田
竜雄 柴田
智生 佐々木
智生 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
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 Corp filed Critical TDK Corp
Publication of JPWO2019176540A1 publication Critical patent/JPWO2019176540A1/ja
Application granted granted Critical
Publication of JP6721136B2 publication Critical patent/JP6721136B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • H01L21/822Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components the substrate being a semiconductor, using silicon technology
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/66Types of semiconductor device ; Multistep manufacturing processes therefor
    • H01L29/82Types of semiconductor device ; Multistep manufacturing processes therefor controllable by variation of the magnetic field applied to the device
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B61/00Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

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

Description

本発明は、積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法に関する。
本願は、2018年3月16日に日本に出願された特願2018−049766号について優先権を主張し、その内容をここに援用する。
従来から、RRAM(登録商標)ベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキームが知られている(例えば非特許文献1参照)。この文献には、アナログニューロモーフィックシステムが、組み立てられた抵抗スイッチングメモリアレイを基礎として開発される旨が記載されている。この文献では、新規なトレーニングスキームが、セグメント化されたシナプスの挙動を利用することによって、アナログシステムの性能を最適化するために提案される。また、この文献では、このスキームが、グレースケール画像認識に対して適用される。
また、神経系を模倣したニューラルネットワークを抵抗変化素子のアレイを用いて実現する研究が進められている。ニューロモーフィックデバイス(NMD)では、前段から次の段へとウエイトをかけて足し合わせる積和演算を行う。そこで、連続的に抵抗が変化する抵抗変化素子を複数組み合わせ、それぞれの抵抗値を重みとして入力信号に対する積演算を行い、そこから出力される電流の総和をとることで和演算を行う様々なタイプの積和演算器、およびそれを利用したNMDの開発がすすめられている。
例えば特許文献1には、磁気記録層内における磁壁の位置に応じて、抵抗値が連続的に変化することを利用した、磁壁利用型磁気抵抗変化素子を利用した磁気ニューロンシステムが記載されている。
国際公開第2017/183573号
Zhe Chen他著、「RRAMベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキーム(Optimized Learning Scheme for Grayscale Image Recognition in a RRAM Based Analog Neuromorphic System)」、2015年、IEEE、p.17.7.1−p.17.7.4
ところで、特許文献1では、システムを構成する磁気抵抗効果素子の温度に依存する特性変化について検討されていない。そのため、温度が変化した場合にニューラルネットワークの性能が低下してしまうおそれがある。また特に、磁気抵抗効果素子として、トンネル磁気抵抗効果素子を用いる場合には、電流方向によって素子の磁気抵抗値が異なることがあるため、バックプロパゲーションによる学習を行う際、他の抵抗変化素子よりも複雑な操作が必要となるために処理速度が遅くなるおそれがある。
上述した問題点に鑑み、本発明は、ニューラルネットワークに適用される場合に、温度変化や電流方向からくる素子特性の変動によるニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することを目的とする。
本発明の一態様の積和演算器は、積演算部と、和演算部とを備え、前記積演算部は、複数の積演算素子と、少なくとも1つのリファレンス素子とを備え、前記複数の積演算素子と、前記少なくとも1つのリファレンス素子とのそれぞれは、抵抗変化素子であり、前記和演算部は、少なくとも前記複数の積演算素子からの出力の合計値を検出する出力検出器を備え、前記複数の積演算素子のそれぞれは、磁壁を有する第1の磁化自由層と、磁化方向が固定された第1の磁化固定層と、前記第1の磁化自由層と前記第1の磁化固定層とに挟まれた第1の非磁性層とを有する磁気抵抗効果素子であり、前記少なくとも1つのリファレンス素子は、磁壁を有さない第2の磁化自由層又は磁壁を有する第3の磁化自由層と、磁化方向が固定された第2の磁化固定層と、前記第2の磁化自由層又は前記第3の磁化自由層と前記第2の磁化固定層とに挟まれた第2の非磁性層とを有すると共に、前記第2の磁化自由層の一つの磁化方向又は前記第3の磁化自由層の複数の磁化方向のそれぞれと前記第2の磁化固定層の磁化方向とがなす相対角度が固定されたリファレンス磁気抵抗効果素子である。
本発明の一態様の積和演算器では、前記少なくとも1つのリファレンス素子には、前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが反平行である第1リファレンス素子又は前記第3の磁化自由層を有し、最大抵抗値に設定した第3のリファレンス素子と、前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが平行である前記磁化固定層を有する第2リファレンス素子又は前記第3の磁化自由層を有し、最小抵抗値に設定した第4のリファレンス素子とが含まれてもよい。
本発明の一態様の積和演算器は、前記複数の積演算素子からの出力と、前記少なくとも1つのリファレンス素子からの出力とを比較する比較部をさらに備えてもよい。
本発明の一態様の積和演算器は、少なくとも1つのリファレンスカラムをさらに備え、前記少なくとも1つのリファレンスカラムには、前記複数の積演算素子が含まれず、前記少なくとも1つのリファレンス素子が含まれてもよい。
本発明の一態様の積和演算器は、少なくとも1つのリファレンス出力検出器をさらに備え、前記少なくとも1つのリファレンス出力検出器のそれぞれは、前記少なくとも1つのリファレンスカラムのそれぞれからの出力を検出してもよい。
本発明の一態様は、前記積和演算器の使用方法であって、前記積和演算器は、故障検知部をさらに備え、前記故障検知部が、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力に基づいて、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値の正常範囲を設定する正常範囲設定工程と、前記故障検知部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と前記正常範囲とに基づいて、前記複数の積演算素子の故障の有無を判断する故障有無判断工程とを含む、積和演算器の使用方法である。
本発明の一態様の積和演算器の使用方法では、前記積和演算器は、比較部をさらに備え、前記比較部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力とを比較する比較工程がさらに含まれてもよい。
本発明の一態様の積和演算器の使用方法では、前記積和演算器は、補正部をさらに備え、前記補正部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力とに基づいて、前記複数の積演算素子の温度に依存する抵抗値変化分を算出し、前記複数の積演算素子の抵抗値を補正する補正工程がさらに含まれてもよい。
本発明の一態様の積和演算器では、前記少なくとも1つのリファレンスカラムには、動作用リファレンスカラムと、バックプロパゲーション用リファレンスカラムとが含まれてもよい。
本発明の一態様は、前記積和演算器を備えるニューロモーフィックデバイスである。
本発明によれば、ニューラルネットワークに適用される場合に、温度変化や電流方向からくる素子特性の変動によるニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することができる。
第1実施形態の積和演算器の一部の構成の一例を示す図である。 第1実施形態の積和演算器の全体構成の一例を示す図である。 第1実施形態の積和演算器の積演算素子のそれぞれを構成する磁気抵抗効果素子の一例を示す斜視図である。 第1実施形態の積和演算器の適用例を示す図である。 出力検出器によって検出される合計値および規定値を説明するための図である。 第1実施形態の積和演算器によって実行される処理の一例を示すフローチャートである。 第2実施形態の積和演算器の一部の構成の一例を示す図である。 第3実施形態の積和演算器の一部の構成の一例を示す図である。
以下、図面を参照し、本発明の積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法の実施形態について説明する。
<第1実施形態>
図1は第1実施形態の積和演算器1の一部の構成の一例を示す図である。図2は第1実施形態の積和演算器1の全体構成の一例を示す図である。
図1および図2に示す例では、第1実施形態の積和演算器1が、積演算部10と、和演算部11と、入力部12と、故障検知部13と、比較部14と、補正部15とを備えている。積演算部10は、カラム10Aと、カラム10Bとを備えている。
図1に示す例では、積演算部10が、2つのカラム10A、10Bを備えているが、他の例では、積演算部10が、3以上の任意の数のカラム10A、10B、…を備えていてもよい。
図1に示す例では、カラム10Aが、積演算素子10AAと、積演算素子10ABと、リファレンス素子10AMAXと、リファレンス素子10AMINとを備えている。積演算素子10AA、10ABは、積演算を行う。リファレンス素子10AMAXは、積和演算器1の動作時、あるいはバックプロパゲーション学習時における積演算素子10AA、10ABなどの抵抗値の最大値の補正に用いられる。リファレンス素子10AMINは、積和演算器1の積和演算器1の動作時、あるいはバックプロパゲーション学習時における積演算素子10AA、10ABなどの抵抗値の最小値の補正に用いられる。
カラム10Bは、積演算素子10BAと、積演算素子10BBと、積演算素子10BCと、積演算素子10BDとを備えている。積演算素子10BA〜10BDは、積演算素子10AA、10ABと同様に積演算を行う。
図1に示す例では、カラム10Aが2つの積演算素子10AA、10ABを備え、カラム10Bが4つの積演算素子10BA、10BB、10BC、10BDを備えているが、他の例では、カラム10Aが、2以外の任意の数(詳細には、複数)の積演算素子を備え、カラム10Bが、4以外の任意の数(詳細には、複数)の積演算素子を備えてもよい。
図1に示す例では、カラム10Aが、積和演算器1の動作時、あるいはバックプロパゲーション学習時における積演算素子10AA、10ABなどの抵抗値の最大値の補正に用いられる1つのリファレンス素子10AMAXと、積和演算器1の動作時、あるいはバックプロパゲーション学習時における積演算素子10AA、10ABなどの抵抗値の最小値の補正に用いられる1つのリファレンス素子10AMINとを備えている。他の例では、カラム10Aが、積和演算器1の動作時における積演算素子10AA、10ABなどの抵抗値の補正に用いられる複数のリファレンス素子を備えたり、積和演算器1のバックプロパゲーション学習時における積演算素子10AA、10ABなどの抵抗値の補正に用いられる複数のリファレンス素子を備えたりしてもよい。
図1に示す例では、入力部12が、第1入力部12Aと、第2入力部12Bと、第3入力部12Cと、第4入力部12Dとを備えている。複数の積演算素子10AA、10AB、10BA〜10BD、および、リファレンス素子10AMAX、10AMINのそれぞれは、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
積演算素子10AA、10BAの読み出し端子は、ラインL11に接続されている。ラインL11は、積和演算器1の動作時に積演算素子10AA、10BAに対して信号を入力する第1入力部12Aに接続されている。積演算素子10AA、10BAの書き込み端子は、ラインL12に接続されている。
積演算素子10AB、10BBの読み出し端子は、ラインL21に接続されている。ラインL21は、積和演算器1の動作時に積演算素子10AB、10BBに対して信号を入力する第2入力部12Bに接続されている。積演算素子10AB、10BBの書き込み端子は、ラインL22に接続されている。
リファレンス素子10AMAXおよび積演算素子10BCの読み出し端子は、ラインL31に接続されている。ラインL31は、積和演算器1の動作時にリファレンス素子10AMAXおよび積演算素子10BCに対して信号を入力する第3入力部12Cに接続されている。リファレンス素子10AMAXおよび積演算素子10BCの書き込み端子は、ラインL32に接続されている。
リファレンス素子10AMINおよび積演算素子10BDの読み出し端子は、ラインL41に接続されている。ラインL41は、積和演算器1の動作時にリファレンス素子10AMINおよび積演算素子10BDに対して信号を入力する第4入力部12Dに接続されている。リファレンス素子10AMINおよび積演算素子10BDの書き込み端子は、ラインLX2に接続されている。
積演算素子10AA、10ABおよびリファレンス素子10AMAX、10AMINの共通端子は、ラインM1に接続されている。積演算素子10BA、10BB、10BC、10BDの共通端子は、ラインM2に接続されている。
本発明において積演算素子として用いられる磁気抵抗効果素子としては、磁気抵抗効果を利用して抵抗が可変な素子であればよく、代表的な例としては、トンネル磁気抵抗効果(TMR)素子、巨大磁気抵抗効果(GMR)素子が挙げられる。
図1に示す例では、和演算部11が、出力検出器11Aと出力検出器11Bとを備えている。出力検出器11AはラインM1に配置されている。出力検出器11BはラインM2に配置されている。
第1入力部12Aが積演算素子10AAに対して信号を入力し、第2入力部12Bが積演算素子10ABに対して信号を入力し、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力し、第4入力部12Dがリファレンス素子10AMINに対して信号を入力する場合に、出力検出器11Aは、積演算素子10AAからの出力と、積演算素子10ABからの出力と、リファレンス素子10AMAXからの出力と、リファレンス素子10AMINからの出力との合計値を検出する。
第1入力部12Aが積演算素子10AAに対して信号を入力し、第2入力部12Bが積演算素子10ABに対して信号を入力せず、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力せず、第4入力部12Dがリファレンス素子10AMINに対して信号を入力しない場合に、出力検出器11Aは、積演算素子10AAからの出力を検出する。
第1入力部12Aが積演算素子10AAに対して信号を入力せず、第2入力部12Bが積演算素子10ABに対して信号を入力し、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力せず、第4入力部12Dがリファレンス素子10AMINに対して信号を入力しない場合に、出力検出器11Aは、積演算素子10ABからの出力を検出する。
第1入力部12Aが積演算素子10AAに対して信号を入力せず、第2入力部12Bが積演算素子10ABに対して信号を入力せず、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力し、第4入力部12Dがリファレンス素子10AMINに対して信号を入力しない場合に、出力検出器11Aは、リファレンス素子10AMAXからの出力を検出する。
第1入力部12Aが積演算素子10AAに対して信号を入力せず、第2入力部12Bが積演算素子10ABに対して信号を入力せず、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力せず、第4入力部12Dがリファレンス素子10AMINに対して信号を入力する場合に、出力検出器11Aは、リファレンス素子10AMINからの出力を検出する。
第1入力部12Aが積演算素子10BAに対して信号を入力し、第2入力部12Bが積演算素子10BBに対して信号を入力し、第3入力部12Cが積演算素子10BCに対して信号を入力し、第4入力部12Dが積演算素子10BDに対して信号を入力する場合に、出力検出器11Bは、積演算素子10BAからの出力と、積演算素子10BBからの出力と、積演算素子10BCからの出力と、積演算素子10BDからの出力との合計値を検出する。
第1入力部12Aが積演算素子10BAに対して信号を入力し、第2入力部12Bが積演算素子10BBに対して信号を入力せず、第3入力部12Cが積演算素子10BCに対して信号を入力せず、第4入力部12Dが積演算素子10BDに対して信号を入力しない場合に、出力検出器11Bは、積演算素子10BAからの出力を検出する。
第1入力部12Aが積演算素子10BAに対して信号を入力せず、第2入力部12Bが積演算素子10BBに対して信号を入力し、第3入力部12Cが積演算素子10BCに対して信号を入力せず、第4入力部12Dが積演算素子10BDに対して信号を入力しない場合に、出力検出器11Bは、積演算素子10BBからの出力を検出する。
第1入力部12Aが積演算素子10BAに対して信号を入力せず、第2入力部12Bが積演算素子10BBに対して信号を入力せず、第3入力部12Cが積演算素子10BCに対して信号を入力し、第4入力部12Dが積演算素子10BDに対して信号を入力しない場合に、出力検出器11Bは、積演算素子10BCからの出力を検出する。
第1入力部12Aが積演算素子10BAに対して信号を入力せず、第2入力部12Bが積演算素子10BBに対して信号を入力せず、第3入力部12Cが積演算素子10BCに対して信号を入力せず、第4入力部12Dが積演算素子10BDに対して信号を入力する場合に、出力検出器11Bは、積演算素子10BDからの出力を検出する。
図1に示す例では、第1入力部12Aが積演算素子10AAに対して信号を入力し、第2入力部12Bが積演算素子10ABに対して信号を入力し、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力し、第4入力部12Dがリファレンス素子10AMINに対して信号を入力する場合に、出力検出器11Aは、積演算素子10AAからの出力電流と、積演算素子10ABからの出力電流と、リファレンス素子10AMAXからの出力電流と、リファレンス素子10AMINからの出力電流との合計値を検出する。
他の例では、第1入力部12Aが積演算素子10AAに対して信号を入力し、第2入力部12Bが積演算素子10ABに対して信号を入力し、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力し、第4入力部12Dがリファレンス素子10AMINに対して信号を入力する場合に、出力検出器11Aが、積演算素子10AAからの出力に相当する電荷と、積演算素子10ABからの出力に相当する電荷と、リファレンス素子10AMAXからの出力に相当する電荷と、リファレンス素子10AMINからの出力に相当する電荷との合計値として検出してもよい。
詳細には、図1に示す例では、積演算素子10AA、10AB、10BA〜10BDのそれぞれは、磁気抵抗効果を示す磁気抵抗効果素子である。
図3は第1実施形態の積和演算器1の積演算素子10AA、10AC、10BA〜10BDのそれぞれを構成する磁気抵抗効果素子Aの一例を示す斜視図である。
図3に示す例では、磁気抵抗効果素子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の方向(例えば図3の左向き)に配向し、固定された層である。ここで、磁化が固定されるとは、書き込み電流を用いた書き込み前後において磁化方向が変化しない(磁化が固定されている)ことを意味する。
図3に示す例では、磁化固定層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の厚さは磁壁駆動層として機能する限り、特に制限はないが、例えば、2〜60nmとすることができる。磁化自由層A1の厚さが60nm以上になると、積層方向に磁壁が形成される可能性が高まる。ただし、積層方向に磁壁が形成されるか否かは、磁化自由層A1の形状異方性とのバランスによって生じる。磁化自由層A1の厚さが60nm未満であれば、磁壁DWができることは考えにくい。
磁化自由層A1は、層の側面に磁壁DWの移動を止める磁壁ピン止め部を有してもよい。例えば、磁化自由層A1の磁壁DWの移動を止めたい位置に、凹凸、溝、膨らみ、くびれ、切り欠きなどを設けると、磁壁の移動を止める(ピンする)ことができる。磁壁ピン止め部を有すると、閾値以上の電流を流さないとそれ以上磁壁が移動しない構成とすることができ、出力信号をアナログ的ではなく、多値化し易くなる。
例えば、磁壁ピン止め部を所定の距離ごとに形成することにより、磁壁DWをより安定的に保持することができ、安定的な多値記録を可能にし、より安定的に多値化された出力信号を読み出すことを可能にする。
本発明が備える磁気抵抗効果素子は、磁気抵抗効果素子として機能する限り、上述した層以外の層を備えてもよい。例えば、図3に示す磁気抵抗効果素子Aにおいては、磁化自由層は磁壁DWを有する磁化記録層としての磁化自由層A1だけであるが、この磁化自由層A1以外に、磁化自由層A1と非磁性層A3との間の磁化自由層A1の中央領域(平面視して磁化固定層A2に重なる領域)に別の磁化自由層(以下、第2の磁化自由層という)を備えてもよい。第2の磁化自由層は磁化自由層A1と磁気的に結合しており、その磁化状態は磁化自由層A1の中央領域の磁化状態に依存して変化する。
図3に示す例では、磁壁DWを形成するために、磁化自由層A1のうち、平面視して磁化固定層A2に重ならない両端部のそれぞれに、第1領域A11の磁化と同じ第1の方向の磁化を有する第1磁化供給層A4、及び、第2領域A12の磁化と同じ第2の方向の磁化を有する第2磁化供給層A5を有する。
第1磁化供給層A4及び第2磁化供給層A5の材料としては、磁化固定層A2に使える強磁性材料と同じ材料を用いることができる。
図3に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1に接すると共に磁化自由層A1の長手方向に対して交差する方向に延在するスピン軌道トルク(SOT)配線を用いてもよい。スピン軌道トルク配線は、電流が流れるとスピンホール効果によって純スピン流が生成される材料からなるものである。
かかる構成を有することにより、磁化が固定された層としての磁化供給層を設置することがなくても、スピン軌道トルク配線の両端に電流を流すことにより磁化自由層A1に磁壁を導入することができ、また、スピン軌道トルク配線を介して磁化自由層A1に電流を流すことで、磁壁を移動させることができる。
また、図3に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1と電気的に絶縁されていると共に、磁化自由層A1に対して交差する方向に延在する磁場印加配線を用いてもよい。磁場印加配線に電流を流すことによりアンペールの法則により磁場が発生する。磁場印加配線に流す電流の向きによって、発生する磁場の向きを逆向きにすることができる。そのため、磁化自由層A1の端部に面内磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの面内磁化方向のうちの一方の面内磁化方向の磁化を供給することができる。また、磁化自由層A1の端部に垂直磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの垂直磁化方向のうちの一方の垂直磁化方向の磁化を供給することができる。
また、図3に示す例では、磁壁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の組成の材料がスパッタによって作成した際に大きな出力が得られることが知られている。
図4は第1実施形態の積和演算器1の適用例を示す図である。
図4に示す例では、第1実施形態の積和演算器1が、ニューロモーフィックデバイス100に適用されている。ニューロモーフィックデバイス100は、入力層101と、隠れ層102と、出力層103と、第1実施形態の積和演算器1と、積和演算器2とを備えている。積和演算器2は、図1に示す第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に示す積演算素子10AA、10AB、10BA〜10BDの抵抗値を変更することによって、重みを変更する。
隠れ層102と出力層103との間には、積和演算器2が配置されている。積和演算器2は、隠れ層102の3つのノード102A、102B、102Cと、出力層103の3つのノード103A、103B、103Cとを接続する。積和演算器2は、複数の積演算素子の抵抗値を変更することによって、重みを変更する。
隠れ層102は、活性化関数(例えばシグモイド関数)を使用する。
ところで、積和演算器1を構成する積演算素子10AA、10AB、10BA〜10BDのそれぞれの抵抗値は、温度変化に応じて変動する。詳細には、通常の抵抗体とは異なり、磁気抵抗効果素子Aである積演算素子10AA、10AB、10BA〜10BDのそれぞれの抵抗値は、温度が上昇するに従って低下する。つまり、積演算素子10AA、10AB、10BA〜10BDの抵抗値は、通常の抵抗体とは異なる温度依存性を有する。
本発明者は、鋭意研究において、温度変化に応じた積演算素子10AA、10AB、10BA〜10BDの抵抗値の変動が考慮されることなく、ニューロモーフィックデバイス100による判別が行われると、ニューロモーフィックデバイス100の判別機能が低下することを見い出した。
また、本発明者は、例えば入力部12から出力検出器11A、11Bに電流が流れる場合(順方向に電流が流れる場合)の積演算素子10AA、10AB、10BA〜10BDの抵抗値と、出力検出器11A、11Bから入力部12に電流が流れる場合(逆方向に電流が流れる場合)の積演算素子10AA、10AB、10BA〜10BDの抵抗値とが異なることを見い出した。すなわち、本発明者は、積演算素子10AA、10AB、10BA〜10BDの抵抗値がバイアス依存性を有する(電圧および極性に依存する)ことを見い出した。
この点に鑑み、第1実施形態の積和演算器1では、後述する対策が施されている。
具体的には、図1に示す例では、上述したように、リファレンス素子10AMAXと、リファレンス素子10AMINとが、積和演算器1に備えられている。
リファレンス素子10AMAX、10AMINは、積演算素子10AA、10AB、10BA〜10BDとは異なり、磁壁を有さない磁化自由層と、磁化方向が固定された磁化固定層と、磁化自由層と磁化固定層とに挟まれた非磁性層とを有すると共に、磁化自由層の磁化方向と磁化固定層の磁化方向とがなす相対角度が固定されたリファレンス磁気抵抗効果素子であるか、又は磁壁を有する磁化自由層と、磁化方向が固定された磁化固定層と、磁化自由層と磁化固定層とに挟まれた非磁性層とを有すると共に、この磁壁を有する磁化自由層の複数の磁化方向のそれぞれと磁化固定層の磁化方向とがなす相対角度が実質的に固定されたリファレンス磁気抵抗効果素子である。相対角度が実質的に固定されたリファレンス磁気抵抗効果素子とは、積和演算器を初期化する時点で、リファレンス磁気抵抗効果素子の値を決められた初期値に設定し、以降の動作時には、初期値から値を変更せずに使用し、実質的な固定値として運用することで実現できる。リファレンス磁気抵抗効果素子の設定値には、最大、または最小値を用いてもよいし、あるいは任意の最大と最小の間の値を選択してもよい。磁壁を有さない磁化自由層には、磁化自由層A1のうち、平面視して磁化固定層A2と重なる領域に磁壁を有さないものを用いても良い。相対角度を固定する方法としては公知の方法を用いることができる。リファレンス素子10AMAX、10AMINは、磁気抵抗効果素子である積演算素子10AA、10AB、10BA〜10BDとの比較が容易となるように(較正が容易にできるように)、磁壁の有無を除いては、積演算素子10AA、10AB、10BA〜10BDと層構成(材料、層厚)と同じ、あるいは、類似していることが好ましい。リファレンス素子10AMAX、10AMINにおける磁壁を有さない磁化自由層として、磁化方向が固定した層を用いてもよい。
リファレンス素子10AMAX、10AMINは、温度変化に応じた積演算素子10AA、10AB、10BA〜10BDの抵抗値の変動がニューロモーフィックデバイス100の判別機能に悪影響をおよぼさないようにするために用いられる。
詳細には、リファレンス素子10AMAXは、入力部12から出力検出器11A、11Bに電流が流れる場合における温度変化に応じた積演算素子10AA、10AB、10BA〜10BDの抵抗値の変動がニューロモーフィックデバイス100の判別機能に悪影響をおよぼさないようにするために用いられる。リファレンス素子10AMAXは、磁化自由層の磁化方向と磁化固定層の磁化方向とが反平行であってもよい。
また、リファレンス素子10AMINは、出力検出器11A、11Bから入力部12に電流が流れる場合における温度変化に応じた積演算素子10AA、10AB、10BA〜10BDの抵抗値の変動がニューロモーフィックデバイス100の判別機能に悪影響をおよぼさないようにするために用いられる。リファレンス素子10AMINは、磁化自由層の磁化方向と磁化固定層の磁化方向とが平行であってもよい。
磁壁を有するレファレンス素子の磁化自由層には、磁化自由層A1のうち、平面視して磁化固定層A2と重なる領域に磁壁を有するものを用いても良い。磁壁を有するレファレンス素子の磁化自由層の複数の磁化方向のそれぞれと、レファレンス素子の磁化固定層の磁化方向とがなす相対角度を固定する方法としては、
積和演算器を初期化する時点で、リファレンス磁気抵抗効果素子の値を決められた初期値に設定し、以降の積和演算時には、初期値から値を変更せずに使用しすることで、実質的な固定値として使用する方法を用いることができる。この場合も、リファレンス素子10AMAX、10AMINは、磁気抵抗効果素子である積演算素子10AA、10AB、10BA〜10BDとの比較が容易となるように(校正が容易にできるように)、積演算素子10AA、10AB、10BA〜10BDと層構成(材料、層厚)と同じ、あるいは、類似していることが好ましい。
磁壁を有する磁化自由層を備えるレファレンス素子を使用する場合、読み出し時に磁壁がシフトしないように、読み出し電流方向と磁化供給層A4、A5の磁化方向の関係を調節しても良い。例えば、最大値として用いるリファレンス素子においては、読み出し電流が流れる側にある磁化供給層の磁化の向きを磁化固定層A2の磁化と反平行に、他方の磁化供給層の磁化の向きを磁化固定層A2の磁化と平行に配置させてもよい。また、最小値として用いるリファレンス素子においては、読み出し電流が流れる側にある磁化供給層の磁化の向きを磁化固定層A2の磁化と平行に、他方の磁化供給層の磁化の向きを磁化固定層A2の磁化と反平行に配置させてもよい。
また、図2に示す例では、上述したように、比較部14が積和演算器1に備えられている。比較部14は、積演算素子10AA、10AB、10BA〜10BDからの出力と、リファレンス素子10AMAX、10AMINからの出力とを比較する。
詳細には、比較部14は、入力部12から出力検出器11A、11Bに電流が流れる場合(順方向に電流が流れる場合)に、例えば積演算素子10AAからの出力と、リファレンス素子10AMAXからの出力とを比較する。例えば積演算素子10AAからの順方向出力電流とリファレンス素子10AMAXからの順方向出力電流とを比較することによって、その時の温度条件において、順方向出力電流が流れる積演算素子10AAの抵抗値がどの程度変動しているかを把握することができる。
また、比較部14は、出力検出器11A、11Bから入力部12に電流が流れる場合(逆方向に電流が流れる場合)に、例えば積演算素子10AAからの出力と、リファレンス素子10AMINからの出力とを比較する。例えば積演算素子10AAからの逆方向出力電流とリファレンス素子10AMINからの逆方向出力電流とを比較することによって、その時の温度条件において、逆方向出力電流が流れる積演算素子10AAの抵抗値がどの程度変動しているかを把握することができる。
また、図2に示す例では、上述したように、補正部15が積和演算器1に備えられている。
入力部12から出力検出器11A、11Bに電流が流れる場合(順方向に電流が流れる場合)に、補正部15は、例えば積演算素子10AAからの出力と、リファレンス素子10AMAXからの出力とに基づいて、順方向出力電流が流れる積演算素子10AAの温度に依存する抵抗値変化分を算出する。また、補正部15は、順方向出力電流が流れる積演算素子10AAの温度に依存する抵抗値変化分に基づいて、順方向出力電流が流れる積演算素子10AAの抵抗値を補正する。同様に、補正部15は、順方向出力電流が流れる積演算素子10AB、10BA〜10BDの抵抗値を補正する。
出力検出器11A、11Bから入力部12に電流が流れる場合(逆方向に電流が流れる場合)に、補正部15は、例えば積演算素子10AAからの出力と、リファレンス素子10AMINからの出力とに基づいて、逆方向出力電流が流れる積演算素子10AAの温度に依存する抵抗値変化分を算出する。また、補正部15は、逆方向出力電流が流れる積演算素子10AAの温度に依存する抵抗値変化分に基づいて、逆方向出力電流が流れる積演算素子10AAの抵抗値を補正する。同様に、補正部15は、逆方向出力電流が流れる積演算素子10AB、10BA〜10BDの抵抗値を補正する。
そのため、第1実施形態の積和演算器1では、リファレンス素子10AMAX、10AMINが備えられていない場合よりも、温度変化に応じた積演算素子10AA、10AB、10BA〜10BDの抵抗値の変動に伴うニューロモーフィックデバイス100の判別機能低下を抑制することができる。
また、図2に示す例では、上述したように、故障検知部13が積和演算器1に備えられている。故障検知部13は、積演算素子10AAなどが故障しているか否かの判断を行う。
故障検知部13は、例えば、出力検出器11Aによって検出される積演算素子10AAからの出力が規定値を超えた場合に、出力電流が大きくなる故障が積演算素子10AAに発生したと判断する。
また、故障検知部13は、例えば、出力検出器11Bによって検出される複数の積演算素子10BA〜10BDからの出力の合計値が規定値を超えた場合に、カラム10Bに含まれる複数の積演算素子10BA〜10BDの少なくともいずれかに、出力電流が大きくなる故障が発生したと判断する。
図5は出力検出器11Bによって検出される合計値および規定値を説明するための図である。図5において、縦軸は、出力検出器11Bによって検出される複数の積演算素子10BA〜10BDの出力電流の合計値、規定値などを示す。横軸は、積演算素子10BA〜10BDの状態(抵抗値の大きさ)を示す。
複数の積演算素子10BA〜10BDの正常動作時であって、積演算素子10BA〜10BDの抵抗値が最も高い時には、出力検出器11Bによって検出される複数の積演算素子10BA〜10BDの出力電流の合計値が最小値Minになる。
複数の積演算素子10BA〜10BDの正常動作時には、積演算素子10BA〜10BDの抵抗値が低くなるに従って、出力検出器11Bによって検出される複数の積演算素子10BA〜10BDの出力電流の合計値が大きくなる。
複数の積演算素子10BA〜10BDの正常動作時であって、積演算素子10BA〜10BDの抵抗値が最も低い時には、出力検出器11Bによって検出される複数の積演算素子10BA〜10BDの出力電流の合計値が最大値Maxになる。
規定値は、最大値Max以上の値に設定されている。つまり、規定値は、複数の積演算素子10BA〜10BDのすべてが正常に動作する場合に出力検出器11Bが検出し得る合計値の最大値Max以上の値である。
図5に示す例において、点P1の状態では、出力検出器11Bによって検出される積演算素子10BA〜10BDの出力電流の合計値が、規定値を超えない。そのため、故障検知部13は、カラム10Bに含まれる複数の積演算素子10BA〜10BDのいずれにも、出力電流が大きくなる故障が発生していない可能性が高いと判断する。
一方、点P2の状態では、出力検出器11Bによって検出される積演算素子10BA〜10BDの出力電流の合計値が、規定値を超える。そのため、故障検知部13は、カラム10Bに含まれる複数の積演算素子10BA〜10BDの少なくともいずれかに、出力電流が大きくなる故障が発生したと判断する。
また、図1および図2に示す例では、故障検知部13は、複数の積演算素子10AA、10ABのそれぞれが故障しているか否かを判断する。
例えば、積演算素子10AAが故障しているか否かを判断するために、第2入力部12Bが積演算素子10ABに対して信号を入力しない状態、かつ、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力しない状態、かつ、第4入力部12Dがリファレンス素子10AMINに対して信号を入力しない状態、かつ、第1入力部12Aが積演算素子10AAに対して信号を入力する状態で、出力検出器11Aが、積演算素子10AAからの出力を検出する。この状態では、積演算素子10ABからの出力がゼロであり、リファレンス素子10AMAXからの出力がゼロであり、リファレンス素子10AMINからの出力がゼロである。また、故障検知部13は、出力検出器11Aの検出値に基づいて、積演算素子10AAが故障しているか否かを判断する。
故障検知部13は、同様に、積演算素子10ABが故障しているか否かを判断する。
また、図1および図2に示す例では、故障検知部13は、複数の積演算素子10BA、10BB、10BC、10BDのそれぞれが故障しているか否かを判断する。
例えば、積演算素子10BBが故障しているか否かを判断するために、第1入力部12Aが積演算素子10BAに対して信号を入力しない状態、かつ、第3入力部12Cが積演算素子10BCに対して信号を入力しない状態、かつ、第4入力部12Dが積演算素子10BDに対して信号を入力しない状態、かつ、第2入力部12Bが積演算素子10BBに対して信号を入力する状態で、出力検出器11Bが、積演算素子10BBからの出力を検出する。この状態では、積演算素子10BAからの出力がゼロであり、積演算素子10BCからの出力がゼロであり、積演算素子10BDからの出力がゼロである。また、故障検知部13は、出力検出器11Bの検出値に基づいて、積演算素子10BBが故障しているか否かを判断する。
故障検知部13は、同様に、積演算素子10BAが故障しているか否か、積演算素子10BCが故障しているか否か、および、積演算素子10BDが故障しているか否かを判断する。
図6は第1実施形態の積和演算器1によって実行される処理の一例を示すフローチャートである。
図6に示す例では、積和演算器1は、入力部12から出力検出器11A、11Bに電流が流れる動作モードと、出力検出器11A、11Bから入力部12に電流が流れるバックプロパゲーションモードとを備える。
積和演算器1が動作モードである場合に、ステップS10では、故障検知部13が、積演算素子10AA、10AB、10BA〜10BDからの順方向の出力の正常範囲を設定する。詳細には、故障検知部13は、例えば図5の「規定値」以下の範囲を、複数の積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲として設定する。また、故障検知部13は、積演算素子10AA、10AB、10BA〜10BDのそれぞれからの順方向の出力の正常範囲を設定する。故障検知部13は、例えば積演算素子10AAが正常に動作する場合に積演算素子10AAが順方向に出力し得る最大電流値以下の範囲を、積演算素子10AAからの順方向の出力の正常範囲として設定する。
次いで、ステップS11では、出力検出器11Aが、積演算素子10AA、10ABおよびリファレンス素子10AMAXのそれぞれからの順方向出力電流を検出する。詳細には、第1入力部12Aが積演算素子10AAに対して信号を入力し、第2入力部12Bが積演算素子10ABに対して信号を入力せず、第3入力部12Cがリファレンス素子10AMAXに対して信号を入力せず、第4入力部12Dがリファレンス素子10AMINに対して信号を入力しない場合に、出力検出器11Aは、積演算素子10AAからの順方向出力電流を検出する。同様に、出力検出器11Aは、積演算素子10ABからの順方向出力電流と、リファレンス素子10AMAXからの順方向出力電流とを検出する。
また、ステップS11では、出力検出器11Bが、積演算素子10BA〜10BDからの順方向の出力を検出する。詳細には、出力検出器11Bは、積演算素子10BA〜10BDからの順方向出力電流の合計値を検出する。また、出力検出器11Bは、積演算素子10BAからの順方向出力電流、積演算素子10BBからの順方向出力電流、積演算素子10BCからの順方向出力電流、および、積演算素子10BDからの順方向出力電流のそれぞれを検出する。
次いで、ステップS12では、故障検知部13が、複数の積演算素子10AA、10AB、10BA〜10BDの故障の有無を判断する。詳細には、故障検知部13は、出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向出力電流の合計値と、積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10BA〜10BDに故障している積演算素子が含まれるか否かを判断する。出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向出力電流の合計値が、積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10BA〜BDに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Aによって検出される積演算素子10AA、10ABのそれぞれからの順方向出力電流と、積演算素子10AA、10ABのそれぞれからの順方向の出力の正常範囲とに基づいて、積演算素子10AA、10ABが故障しているか否かを判断する。出力検出器11Aによって検出される積演算素子10AAからの順方向出力電流が、積演算素子10AAからの順方向の出力の正常範囲を超える場合に、故障検知部13は、積演算素子10AAが故障していると判断し、図6に示すルーチンを終了する。また、積演算素子10ABが故障していると故障検知部13が判断する場合にも、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Bによって検出される積演算素子10BA〜10BDのそれぞれからの順方向出力電流と、積演算素子10BA〜10BDのそれぞれからの順方向の出力の正常範囲とに基づいて、積演算素子10BA〜10BDが故障しているか否かを判断する。出力検出器11Bによって検出される積演算素子10BAからの順方向出力電流が、積演算素子10BAからの順方向の出力の正常範囲を超える場合に、故障検知部13は、積演算素子10BAが故障していると判断し、図6に示すルーチンを終了する。また、積演算素子10BB〜10BDのいずれかが故障していると故障検知部13が判断する場合にも、図6に示すルーチンを終了する。
ステップS12において、複数の積演算素子10AA、10AB、10BA〜10BDが故障していないと故障検知部13が判断する場合には、ステップS13に進む。
ステップS13では、比較部14は、出力検出器11Aによって検出される積演算素子10AAからの順方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMAXからの順方向出力電流とを比較する。
ステップS13では、比較部14が、出力検出器11Aによって検出される積演算素子10ABからの順方向出力電流、または、出力検出器11Bによって検出される積演算素子10BA〜10BDのいずれかからの順方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMAXからの順方向出力電流とを比較してもよい。
次いで、ステップS14では、補正部15は、比較部14による比較結果に基づき、積演算素子10AA、10AB、10BA〜10BDの順方向の抵抗値を補正しないと、ニューロモーフィックデバイス100の判別機能が低下するおそれがあるか否かを判定する。積演算素子10AA、10AB、10BA〜10BDの順方向の抵抗値を補正しなければ、ニューロモーフィックデバイス100の判別機能が低下するおそれがある場合に、補正部15は、積演算素子10AA、10AB、10BA〜10BDの順方向の抵抗値を補正する。
詳細には、補正部15は、出力検出器11Aによって検出される積演算素子10AAからの順方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMAXからの順方向出力電流とに基づいて、積演算素子10AAの温度に依存する抵抗値変化分を算出する。また、補正部15は、その抵抗値変化分に基づいて、積演算素子10AAの順方向の抵抗値を補正する。
具体的には、温度上昇によって積演算素子10AAの順方向の抵抗値が所望の順方向の抵抗値よりも低くなっている場合に、補正部15は、積演算素子10AAの順方向の抵抗値を増加させる補正を行う。また、温度低下によって積演算素子10AAの順方向の抵抗値が所望の順方向の抵抗値よりも高くなっている場合に、補正部15は、積演算素子10AAの順方向の抵抗値を減少させる補正を行う。同様に、補正部15は、積演算素子10AB、10BA〜10BDの順方向の抵抗値を補正する。
積和演算器1がバックプロパゲーションモードである場合に、ステップS10では、故障検知部13が、積演算素子10BA〜10BDからの逆方向の出力の合計値の正常範囲を設定する。また、故障検知部13は、積演算素子10AA、10AB、10BA〜10BDのそれぞれからの逆方向の出力の正常範囲を設定する。
次いで、ステップS11では、出力検出器11Aが、積演算素子10AA、10ABおよびリファレンス素子10AMINのそれぞれを流れる逆方向出力電流を検出する。詳細には、第1入力部12Aが逆方向電流経路をオンし、第2入力部12Bが逆方向電流経路をオフし、第3入力部12Cが逆方向電流経路をオフし、第4入力部12Dが逆方向電流経路をオフする場合に、出力検出器11Aは、積演算素子10AAを流れる逆方向出力電流を検出する。同様に、出力検出器11Aは、積演算素子10ABを流れる逆方向出力電流と、リファレンス素子10AMINを流れる逆方向出力電流とを検出する。
また、ステップS11では、出力検出器11Bが、積演算素子10BA〜10BDを流れる逆方向出力電流を検出する。詳細には、出力検出器11Bは、積演算素子10BA〜10BDを流れる逆方向出力電流の合計値を検出する。また、出力検出器11Bは、積演算素子10BAを流れる逆方向出力電流、積演算素子10BBを流れる逆方向出力電流、積演算素子10BCを流れる逆方向出力電流、および、積演算素子10BDを流れる逆方向出力電流のそれぞれを検出する。
次いで、ステップS12では、故障検知部13が、複数の積演算素子10AA、10AB、10BA〜10BDの故障の有無を判断する。詳細には、故障検知部13は、出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向出力電流の合計値と、積演算素子10BA〜10BDからの逆方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10BA〜10BDに故障している積演算素子が含まれるか否かを判断する。出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向出力電流の合計値が、積演算素子10BA〜10BDからの逆方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10BA〜BDに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Aによって検出される積演算素子10AA、10ABのそれぞれを流れる逆方向出力電流と、積演算素子10AA、10ABのそれぞれからの逆方向の出力の正常範囲とに基づいて、積演算素子10AA、10ABが故障しているか否かを判断する。出力検出器11Aによって検出される積演算素子10AAを流れる逆方向出力電流が、積演算素子10AAからの逆方向の出力の正常範囲を超える場合に、故障検知部13は、積演算素子10AAが故障していると判断し、図6に示すルーチンを終了する。また、積演算素子10ABが故障していると故障検知部13が判断する場合にも、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Bによって検出される積演算素子10BA〜10BDのそれぞれを流れる逆方向出力電流と、積演算素子10BA〜10BDのそれぞれからの逆方向の出力の正常範囲とに基づいて、積演算素子10BA〜10BDが故障しているか否かを判断する。出力検出器11Bによって検出される積演算素子10BAを流れる逆方向出力電流が、積演算素子10BAからの逆方向の出力の正常範囲を超える場合に、故障検知部13は、積演算素子10BAが故障していると判断し、図6に示すルーチンを終了する。また、積演算素子10BB〜10BDのいずれかが故障していると故障検知部13が判断する場合にも、図6に示すルーチンを終了する。 ステップS12において、複数の積演算素子10AA、10AB、10BA〜10BDが故障していないと故障検知部13が判断する場合には、ステップS13に進む。
ステップS13では、比較部14は、出力検出器11Aによって検出される積演算素子10AAを流れる逆方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMINを流れる逆方向出力電流とを比較する。
ステップS13では、比較部14が、出力検出器11Aによって検出される積演算素子10ABを流れる逆方向出力電流、または、出力検出器11Bによって検出される積演算素子10BA〜10BDのいずれかを流れる逆方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMINを流れる逆方向出力電流とを比較してもよい。
次いで、ステップS14では、補正部15は、比較部14による比較結果に基づいて、積演算素子10AA、10AB、10BA〜10BDの逆方向の抵抗値を補正しないと、ニューロモーフィックデバイス100の判別機能が低下するおそれがある(詳細には、所望のバックプロパゲーション学習を実行できないおそれがある)か否かを判定する。積演算素子10AA、10AB、10BA〜10BDの逆方向の抵抗値を補正しなければ、ニューロモーフィックデバイス100の判別機能が低下するおそれがある場合(所望のバックプロパゲーション学習を実行できないおそれがある場合)に、補正部15は、積演算素子10AA、10AB、10BA〜10BDの逆方向の抵抗値を補正する。
詳細には、補正部15は、出力検出器11Aによって検出される積演算素子10AAを流れる逆方向出力電流と、出力検出器11Aによって検出されるリファレンス素子10AMINを流れる逆方向出力電流とに基づいて、積演算素子10AAの温度に依存する抵抗値変化分を算出する。また、補正部15は、その抵抗値変化分に基づいて、積演算素子10AAの逆方向の抵抗値を補正する。
具体的には、積和演算器1が動作モードである場合と同様に、温度上昇によって積演算素子10AAの逆方向の抵抗値が所望の逆方向の抵抗値よりも低くなっている場合に、補正部15は、積演算素子10AAの逆方向の抵抗値を増加させる補正を行う。また、温度低下によって積演算素子10AAの逆方向の抵抗値が所望の逆方向の抵抗値よりも高くなっている場合に、補正部15は、積演算素子10AAの逆方向の抵抗値を減少させる補正を行う。同様に、補正部15は、積演算素子10AB、10BA〜10BDの逆方向の抵抗値を補正する。
上述したように、第1実施形態の積和演算器1では、磁壁を有さない磁化自由層を有するリファレンス素子10AMAX、10AMINが積演算部10に備えられている。
そのため、第1実施形態の積和演算器1によれば、そのようなリファレンス素子が積演算部に備えられていない積和演算器よりも、ニューラルネットワークに適用される場合に、温度変化によるニューラルネットワークの性能低下を抑制することができる。
また、第1実施形態の積和演算器1では、上述したように、磁化自由層の磁化方向と磁化固定層の磁化方向とが反平行であるリファレンス素子10AMAXと、磁化自由層の磁化方向と磁化固定層の磁化方向とが平行であるリファレンス素子10AMINとが積演算部10に備えられている。
そのため、第1実施形態の積和演算器1によれば、積和演算器1が動作モードである場合に温度変化によるニューラルネットワークの性能低下を抑制することができると共に、積和演算器1がバックプロパゲーションモードである場合に所望のバックプロパゲーション学習を実行できないおそれを抑制することができる。
また、第1実施形態の積和演算器1では、上述したように、積演算素子10AA、10AB、10BA〜10BDからの出力と、リファレンス素子10AMAX、10AMINからの出力とを比較する比較部14が備えられている。
そのため、第1実施形態の積和演算器1によれば、積演算素子10AA、10AB、10BA〜10BDからの出力とリファレンス素子10AMAX、10AMINからの出力とが比較されない場合よりも、温度変化によるニューラルネットワークの性能低下を抑制することができる。
また、第1実施形態の積和演算器1では、上述したように、積演算素子10AA、10AB、10BA〜10BDの抵抗値を温度変化に応じて補正する補正部15が備えられている。
そのため、第1実施形態の積和演算器1によれば、積演算素子10AA、10AB、10BA〜10BDの抵抗値が温度変化に応じて補正されないよりも、温度変化によるニューラルネットワークの性能低下を抑制することができる。
<第2実施形態>
以下、本発明の積和演算器の第2実施形態について説明する。
第2実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第2実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
図7は第2実施形態の積和演算器1の一部の構成の一例を示す図である。
図1に示す例では、積演算部10がリファレンスカラムを備えていないが、図7に示す例では、積演算部10がリファレンスカラム10MAX、10MINを備えている。
図7に示す例では、カラム10Aが、積演算素子10AA、10ABの他に、積演算素子10AC、10ADを備えている。積演算素子10AC、10ADは、積演算素子10AA、10ABと同様に構成されており、積演算素子10AA、10ABと同様に積演算を行う。
リファレンスカラム10MAXは、積演算素子を備えておらず、リファレンス素子10MAXA、10MAXB、10MAXC、10MAXDを備えている。リファレンス素子10MAXA、10MAXB、10MAXC、10MAXDは、図1に示すリファレンス素子10AMAXと同様に構成されており、積和演算器1の動作時、およびバックプロパゲーション学習時における積演算素子10AA〜10AD、10BA〜10BDの抵抗値の補正に用いられる。
リファレンスカラム10MINは、積演算素子を備えておらず、リファレンス素子10MINA、10MINB、10MINC、10MINDを備えている。リファレンス素子10MINA、10MINB、10MINC、10MINDは、図1に示すリファレンス素子10AMINと同様に構成されており、積和演算器1の動作時、およびバックプロパゲーション学習時における積演算素子10AA〜10AD、10BA〜10BDの抵抗値の補正に用いられる。
図7に示す例では、積演算素子10ACの読み出し端子は、ラインL31に接続されている。積演算素子10ACの書き込み端子は、ラインL32に接続されている。
積演算素子10ADの読み出し端子は、ラインL41に接続されている。積演算素子10ADの書き込み端子は、ラインL42に接続されている。
積演算素子10AC、10ADの共通端子は、ラインM1に接続されている。
リファレンス素子10MAXA、10MINAの読み出し端子は、ラインL11に接続されている。リファレンス素子10MAXA、10MINAの書き込み端子は、ラインL12に接続されている。
リファレンス素子10MAXB、10MINBの読み出し端子は、ラインL21に接続されている。リファレンス素子10MAXB、10MINBの書き込み端子は、ラインL22に接続されている。
リファレンス素子10MAXC、10MINCの読み出し端子は、ラインL31に接続されている。リファレンス素子10MAXC、10MINCの書き込み端子は、ラインL32に接続されている。
リファレンス素子10MAXD、10MINDの読み出し端子は、ラインL41に接続されている。リファレンス素子10MAXD、10MINDの書き込み端子は、ラインL42に接続されている。
リファレンス素子10MAXA、10MAXB、10MAXC、10MAXDの共通端子は、ラインM3に接続されている。リファレンス素子10MINA、10MINB、10MINC、10MINDの共通端子は、ラインM4に接続されている。
図1に示す例では、和演算部11が、出力検出器11A、11Bを備えているが、図7に示す例では、和演算部11が、出力検出器11A、11Bと、リファレンス出力検出器11MAX、11MINとを備えている。リファレンス出力検出器11MAXはラインM3に配置されている。リファレンス出力検出器11MINはラインM4に配置されている。
図7に示す例では、第1入力部12Aがリファレンス素子10MAXAに対して信号を入力し、第2入力部12Bがリファレンス素子10MAXBに対して信号を入力し、第3入力部12Cがリファレンス素子10MAXCに対して信号を入力し、第4入力部12Dがリファレンス素子10MAXDに対して信号を入力する場合に、リファレンス出力検出器11MAXは、リファレンス素子10MAXAからの順方向の出力と、リファレンス素子10MAXBからの順方向の出力と、リファレンス素子10MAXCからの順方向の出力と、リファレンス素子10MAXDからの順方向の出力との合計値を検出する。
例えば、第1入力部12Aがリファレンス素子10MAXAに対して信号を入力し、第2入力部12Bがリファレンス素子10MAXBに対して信号を入力せず、第3入力部12Cがリファレンス素子10MAXCに対して信号を入力せず、第4入力部12Dがリファレンス素子10MAXDに対して信号を入力しない場合に、リファレンス出力検出器11MAXは、リファレンス素子10MAXAからの順方向の出力を検出する。
図7に示す例では、第1入力部12Aが逆方向電流経路をオンし、第2入力部12Bが逆方向電流経路をオンし、第3入力部12Cが逆方向電流経路をオンし、第4入力部12Dが逆方向電流経路をオンする場合に、リファレンス出力検出器11MINは、リファレンス素子10MINAを流れる逆方向の出力と、リファレンス素子10MINBを流れる逆方向の出力と、リファレンス素子10MINCを流れる逆方向の出力と、リファレンス素子10MINDを流れる逆方向の出力との合計値を検出する。
例えば、第1入力部12Aが逆方向電流経路をオフし、第2入力部12Bが逆方向電流経路をオンし、第3入力部12Cが逆方向電流経路をオフし、第4入力部12Dが逆方向電流経路をオフする場合に、リファレンス出力検出器11MINは、リファレンス素子10MINBを流れる逆方向の出力を検出する。
また、逆方向電流経路の読み出しのために、入力部12と和演算部11は、それぞれ、さらに、入力部12に逆方向電流経路のための検出回路を、和演算部11に逆方向電流経路のための入力部を、備えていてもよい。
第2実施形態の積和演算器1では、第1実施形態の積和演算器1と同様に、図6に示す処理が実行される。
第2実施形態の積和演算器1は、入力部12から出力検出器11A、11Bおよびリファレンス出力検出器11MAX、11MINに電流が流れる動作モードと、出力検出器11A、11Bおよびリファレンス出力検出器11MAX、11MINから入力部12に電流が流れるバックプロパゲーションモードとを備える。
積和演算器1が動作モードである場合に、ステップS10では、故障検知部13が、リファレンス出力検出器11MAXによって検出されるリファレンスカラム10MAXからの順方向の出力に基づいて、出力検出器11Aによって検出される積演算素子10AA〜10ADからの順方向の出力の合計値の正常範囲と、出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲とを設定する。
次いで、ステップS11では、出力検出器11Aが、積演算素子10AA〜10ADからの順方向の出力の合計値を検出する。また、出力検出器11Bは、積演算素子10BA〜10BDからの順方向の出力の合計値を検出する。
次いで、ステップS12では、故障検知部13が、複数の積演算素子10AA〜10AD、10BA〜10BDの故障の有無を判断する。詳細には、故障検知部13は、出力検出器11Aによって検出される積演算素子10AA〜10ADからの順方向の出力の合計値と、積演算素子10AA〜10ADからの順方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10AA〜10ADに故障している積演算素子が含まれるか否かを判断する。出力検出器11Aによって検出される積演算素子10AA〜10ADからの順方向の出力の合計値が、積演算素子10AA〜10ADからの順方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10AA〜ADに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向の出力の合計値と、積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10BA〜10BDに故障している積演算素子が含まれるか否かを判断する。出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向の出力の合計値が、積演算素子10BA〜10BDからの順方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10BA〜BDに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
ステップS12において、複数の積演算素子10AA〜10AD、10BA〜10BDが故障していないと故障検知部13が判断する場合には、ステップS13に進む。
ステップS13では、比較部14は、出力検出器11Aによって検出される積演算素子10AA〜10ADからの順方向の出力の合計値と、リファレンス出力検出器11MAX、MINによって検出されるリファレンスカラム10MAX、MINからの順方向の出力とを比較する。
ステップS13では、比較部14が、出力検出器11Bによって検出される積演算素子10BA〜10BDからの順方向の出力の合計値と、リファレンス出力検出器11MAX、MINによって検出されるリファレンスカラム10MAX、MINからの順方向の出力とを比較してもよい。
次いで、ステップS14では、補正部15は、比較部14による比較結果に基づき、積演算素子10AA〜10AD、10BA〜10BDの順方向の抵抗値を補正しないと、ニューロモーフィックデバイス100の判別機能が低下するおそれがあるか否かを判定する。積演算素子10AA〜10AD、10BA〜10BDの順方向の抵抗値を補正しなければ、ニューロモーフィックデバイス100の判別機能が低下するおそれがある場合に、補正部15は、積演算素子10AA〜10AD、10BA〜10BDの順方向の抵抗値を補正する。
詳細には、補正部15は、出力検出器11Aによって検出される積演算素子10AA〜10ADからの順方向の出力の合計値と、リファレンス出力検出器11MAX、MINによって検出されるリファレンスカラム10MAX、MINからの順方向の出力とに基づいて、積演算素子10AA〜10ADの温度に依存する抵抗値変化分を算出する。また、補正部15は、その抵抗値変化分に基づいて、積演算素子10AA〜10ADの順方向の抵抗値を補正する。
具体的には、温度上昇によって積演算素子10AA〜10ADの順方向の抵抗値が所定の(例えば標準温度の)順方向の抵抗値よりも低くなっている場合に、補正部15は、積演算素子10AA〜10ADの順方向の抵抗値を増加させる補正を行う。また、温度低下によって積演算素子10AA〜10ADの順方向の抵抗値が所定の順方向の抵抗値よりも高くなっている場合に、補正部15は、積演算素子10AA〜10ADの順方向の抵抗値を減少させる補正を行う。同様に、補正部15は、積演算素子10BA〜10BDの順方向の抵抗値を補正する。
積和演算器1がバックプロパゲーションモードである場合に、ステップS10では、故障検知部13が、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINを流れる逆方向の出力に基づいて、出力検出器11Aによって検出される積演算素子10AA〜10ADを流れる逆方向の出力の合計値の正常範囲と、出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向の出力の合計値の正常範囲とを設定する。
次いで、ステップS11では、出力検出器11Aが、積演算素子10AA〜10ADを流れる逆方向の出力の合計値を検出する。また、出力検出器11Bは、積演算素子10BA〜10BDを流れる逆方向の出力の合計値を検出する。
次いで、ステップS12では、故障検知部13が、複数の積演算素子10AA〜10AD、10BA〜10BDの故障の有無を判断する。詳細には、故障検知部13は、出力検出器11Aによって検出される積演算素子10AA〜10ADを流れる逆方向の出力の合計値と、積演算素子10AA〜10ADを流れる逆方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10AA〜10ADに故障している積演算素子が含まれるか否かを判断する。出力検出器11Aによって検出される積演算素子10AA〜10ADを流れる逆方向の出力の合計値が、積演算素子10AA〜10ADを流れる逆方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10AA〜ADに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
また、ステップS12では、故障検知部13が、出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向の出力の合計値と、積演算素子10BA〜10BDを流れる逆方向の出力の合計値の正常範囲とに基づいて、複数の積演算素子10BA〜10BDに故障している積演算素子が含まれるか否かを判断する。出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向の出力の合計値が、積演算素子10BA〜10BDを流れる逆方向の出力の合計値の正常範囲を超える場合に、故障検知部13は、複数の積演算素子10BA〜BDに故障している積演算素子が含まれると判断し、図6に示すルーチンを終了する。
ステップS12において、複数の積演算素子10AA〜10AD、10BA〜10BDが故障していないと故障検知部13が判断する場合には、ステップS13に進む。
ステップS13では、比較部14は、出力検出器11Aによって検出される積演算素子10AA〜10ADを流れる逆方向の出力の合計値と、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINを流れる逆方向の出力とを比較する。
ステップS13では、比較部14が、出力検出器11Bによって検出される積演算素子10BA〜10BDを流れる逆方向の出力の合計値と、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINを流れる逆方向の出力とを比較してもよい。
次いで、ステップS14では、補正部15は、比較部14による比較結果に基づき、積演算素子10AA〜10AD、10BA〜10BDの逆方向の抵抗値を補正しないと、ニューロモーフィックデバイス100の判別機能が低下する(詳細には、所望のバックプロパゲーション学習を実行できないおそれがある)おそれがあるか否かを判定する。積演算素子10AA〜10AD、10BA〜10BDの逆方向の抵抗値を補正しなければ、ニューロモーフィックデバイス100の判別機能が低下するおそれがある場合(所望のバックプロパゲーション学習を実行できないおそれがある場合)に、補正部15は、積演算素子10AA〜10AD、10BA〜10BDの逆方向の抵抗値を補正する。
詳細には、補正部15は、出力検出器11Aによって検出される積演算素子10AA〜10ADを流れる逆方向の出力の合計値と、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINを流れる逆方向の出力とに基づいて、積演算素子10AA〜10ADの温度に依存する抵抗値変化分を算出する。また、補正部15は、その抵抗値変化分に基づいて、積演算素子10AA〜10ADの逆方向の抵抗値を補正する。
具体的には、積和演算器1が動作モードである場合と同様に、温度上昇によって積演算素子10AA〜10ADの逆方向の抵抗値が所望の逆方向の抵抗値よりも低くなっている場合に、補正部15は、積演算素子10AA〜10ADの逆方向の抵抗値を増加させる補正を行う。また、温度低下によって積演算素子10AA〜10ADの逆方向の抵抗値が所望の逆方向の抵抗値よりも高くなっている場合に、補正部15は、積演算素子10AA〜10ADの逆方向の抵抗値を減少させる補正を行う。同様に、補正部15は、積演算素子10BA〜10BDの逆方向の抵抗値を補正する。
上述したように、第2実施形態の積和演算器1では、リファレンス素子10MAXA〜10MAXDを有するリファレンスカラム10MAXと、リファレンス素子10MINA〜10MINDを有するリファレンスカラム10MINとが備えられている。
そのため、第2実施形態の積和演算器1によれば、ニューラルネットワークに適用される場合に、リファレンスカラム10MAX、10MINを用いることによって、温度変化によるニューラルネットワークの性能低下を抑制することができる。
また、第2実施形態の積和演算器1では、上述したように、リファレンスカラム10MAXからの出力を検出するリファレンス出力検出器11MAXと、リファレンスカラム10MINからの出力を検出するリファレンス出力検出器11MINとが備えられている。
そのため、第2実施形態の積和演算器1によれば、ニューラルネットワークに適用される場合に、リファレンス出力検出器11MAX、11MINを用いることによって、温度変化によるニューラルネットワークの性能低下を抑制することができる。
また、第2実施形態の積和演算器1では、上述したように、リファレンス出力検出器11MAX、11MINによって検出されるリファレンスカラム10MAX、10MINのそれぞれからの出力に基づいて、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値の正常範囲と、出力検出器11Bによって検出される積演算素子10BA〜10BDからの出力の合計値の正常範囲とが設定される。また、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値と正常範囲とに基づいて、積演算素子10AA〜10ADの故障の有無が判断され、出力検出器11Bによって検出される積演算素子10BA〜10BDからの出力の合計値と正常範囲とに基づいて、積演算素子10BA〜10BDの故障の有無が判断される。
そのため、第2実施形態の積和演算器1によれば、ニューラルネットワークに適用される場合に、積演算素子10AA〜10AD、10BA〜10BDの故障の有無が判断されることなく、ニューラルネットワークの性能が低下してしまうおそれを抑制することができる。
また、第2実施形態の積和演算器1では、上述したように、積和演算器1が動作モードである場合に、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値と、リファレンス出力検出器11MAXによって検出されるリファレンスカラム10MAXからの出力とが比較される。また、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値と、リファレンス出力検出器11MAXによって検出されるリファレンスカラム10MAXからの出力とに基づいて、積演算素子10AA〜10AD、10BA〜10BDの温度に依存する抵抗値変化分が算出され、積演算素子10AA〜10AD、10BA〜10BDの抵抗値が補正される。
そのため、第2実施形態の積和演算器1によれば、ニューラルネットワークに適用される場合に、積演算素子10AA〜10AD、10BA〜10BDの抵抗値が補正されない場合よりも、温度変化によるニューラルネットワークの性能低下を抑制することができる。
また、第2実施形態の積和演算器1では、上述したように、積和演算器1がバックプロパゲーションモードである場合に、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値と、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINからの出力とが比較される。また、出力検出器11Aによって検出される積演算素子10AA〜10ADからの出力の合計値と、リファレンス出力検出器11MINによって検出されるリファレンスカラム10MINからの出力とに基づいて、積演算素子10AA〜10AD、10BA〜10BDの温度に依存する抵抗値変化分が算出され、積演算素子10AA〜10AD、10BA〜10BDの抵抗値が補正される。
そのため、第2実施形態の積和演算器1によれば、ニューラルネットワークに適用される場合に、積演算素子10AA〜10AD、10BA〜10BDの抵抗値が補正されない場合よりも、温度変化によって所望のバックプロパゲーション学習を実行できないおそれを抑制することができる。
また、第2実施形態の積和演算器1では、上述したように、積和演算器1の動作時における積演算素子10AA〜10AD、10BA〜10BDの抵抗値の補正に用いられるリファレンスカラム10MAXが備えられている。
そのため、第2実施形態の積和演算器1によれば、リファレンスカラム10MAXが備えられていない場合よりも、積和演算器1の動作時における積演算素子10AA〜10AD、10BA〜10BDの故障の有無の判断を容易に行うことができる。
また、第2実施形態の積和演算器1では、上述したように、積和演算器1のバックプロパゲーション学習時における積演算素子10AA〜10AD、10BA〜10BDの抵抗値の補正に用いられるリファレンスカラム10MINが備えられている。
そのため、第2実施形態の積和演算器1によれば、リファレンスカラム10MINが備えられていない場合よりも、積和演算器1のバックプロパゲーション学習時における積演算素子10AA〜10AD、10BA〜10BDの故障の有無の判断を容易に行うことができる。
<第3実施形態>
以下、本発明の積和演算器の第3実施形態について説明する。
第3実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第3実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
図8は第3実施形態の積和演算器1の一部の構成の一例を示す図である。
図1に示す例では、カラム10Bが積演算素子10BC、10BDを備えているが、図8に示す例では、カラム10Bが、積演算素子10BC、10BDを備えておらず、リファレンス素子10BMAX、10BMINを備えている。
図8に示す例では、リファレンス素子10BMAXが、リファレンス素子10AMAXと同様に構成されており、積和演算器1の動作時における積演算素子10AA、10AB、10BA、10BBの抵抗値の補正に用いることができる。
リファレンス素子10BMINは、リファレンス素子10AMINと同様に構成されており、積和演算器1のバックプロパゲーション学習時における積演算素子10AA、10AB、10BA、10BBの抵抗値の補正に用いることができる。
図8に示す例では、リファレンス素子10BMAXの読み出し端子は、ラインL31に接続されている。リファレンス素子10BMAXの書き込み端子は、ラインL32に接続されている。
リファレンス素子10BMINの読み出し端子は、ラインL41に接続されている。リファレンス素子10BMINの書き込み端子は、ラインL42に接続されている。
リファレンス素子10BMAX、10BMINの共通端子は、ラインM2に接続されている。
図8に示す例では、第1入力部12Aが積演算素子10BAに対して信号を入力せず、第2入力部12Bが積演算素子10BBに対して信号を入力せず、リファレンス入力部12MAXがリファレンス素子10BMAXに対して信号を入力し、リファレンス入力部12MINがリファレンス素子10BMINに対して信号を入力しない場合に、出力検出器11Bは、リファレンス素子10BMAXからの順方向の出力を検出する。
例えば、第1入力部12Aが逆方向電流経路をオフし、第2入力部12Bが逆方向電流経路をオフし、リファレンス入力部12MAXが逆方向電流経路をオフし、リファレンス入力部12MINが逆方向電流経路をオンする場合に、出力検出器11Bは、リファレンス素子10BMINを流れる逆方向の出力を検出する。
なお、以上に示した実施形態に係る各装置(例えば、積和演算器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 積演算素子
10AD 積演算素子
10AMAX リファレンス素子
10AMIN リファレンス素子
10B カラム
10BA 積演算素子
10BB 積演算素子
10BC 積演算素子
10BD 積演算素子
10BMAX リファレンス素子
10BMIN リファレンス素子
10MAX リファレンスカラム
10MAXA リファレンス素子
10MAXB リファレンス素子
10MAXC リファレンス素子
10MAXD リファレンス素子
10MIN リファレンスカラム
10MINA リファレンス素子
10MINB リファレンス素子
10MINC リファレンス素子
10MIND リファレンス素子
11 和演算部
11A 出力検出器
11B 出力検出器
11MAX リファレンス出力検出器
11MIN リファレンス出力検出器
12 入力部
12A 第1入力部
12B 第2入力部
12C 第3入力部
12D 第4入力部
12MAX リファレンス入力部
12MIN リファレンス入力部
13 故障検知部
14 比較部
15 補正部
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 ライン
L41 ライン
L42 ライン
M1 ライン
M2 ライン
M3 ライン
M4 ライン

Claims (11)

  1. 積演算部と、和演算部とを備え、
    前記積演算部は、複数の積演算素子と、少なくとも1つのリファレンス素子とを備え、
    前記複数の積演算素子と、前記少なくとも1つのリファレンス素子とのそれぞれは、抵抗変化素子であり、
    前記和演算部は、少なくとも前記複数の積演算素子からの出力の合計値を検出する出力検出器を備え、
    前記複数の積演算素子のそれぞれは、
    磁壁を有する第1の磁化自由層と、
    磁化方向が固定された第1の磁化固定層と、
    前記第1の磁化自由層と前記第1の磁化固定層とに挟まれた第1の非磁性層とを有する磁気抵抗効果素子であり、
    前記少なくとも1つのリファレンス素子は、磁壁を有さない第2の磁化自由層又は磁壁を有する第3の磁化自由層と、磁化方向が固定された第2の磁化固定層と、前記第2の磁化自由層又は前記第3の磁化自由層と前記第2の磁化固定層とに挟まれた第2の非磁性層とを有すると共に、前記第2の磁化自由層の一つの磁化方向又は前記第3の磁化自由層の複数の磁化方向のそれぞれと前記第2の磁化固定層の磁化方向とがなす相対角度が固定されたリファレンス磁気抵抗効果素子である積和演算器。
  2. 前記少なくとも1つのリファレンス素子には、前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが反平行である第1リファレンス素子、前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが平行である前記第2の磁化固定層を有する第2リファレンス素子、前記第3の磁化自由層を有し、最大抵抗値に設定した第3のリファレンス素子、及び、第3の磁化自由層を有し、最小抵抗値に設定した第4のリファレンス素子のうちのいずれか一つのリファレンス素子が含まれる、請求項1に記載の積和演算器
  3. 前記少なくとも1つのリファレンス素子には、
    前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが反平行である第1リファレンス素子又は前記第3の磁化自由層を有し、最大抵抗値に設定した第3のリファレンス素子と、
    前記第2の磁化自由層の前記一つの磁化方向と前記第2の磁化固定層の磁化方向とが平行である前記第2の磁化固定層を有する第2リファレンス素子又は前記第3の磁化自由層を有し、最小抵抗値に設定した第4のリファレンス素子とが含まれる、請求項1に記載の積和演算器。
  4. 前記複数の積演算素子からの出力と、前記少なくとも1つのリファレンス素子からの出力とを比較する比較部をさらに備える請求項2または請求項3に記載の積和演算器。
  5. 少なくとも1つのリファレンスカラムをさらに備え、
    前記少なくとも1つのリファレンスカラムには、前記複数の積演算素子が含まれず、前記少なくとも1つのリファレンス素子が含まれる請求項1から請求項4のいずれか一項に記載の積和演算器。
  6. 少なくとも1つのリファレンス出力検出器をさらに備え、
    前記少なくとも1つのリファレンス出力検出器のそれぞれは、前記少なくとも1つのリファレンスカラムのそれぞれからの出力を検出する請求項に記載の積和演算器。
  7. 請求項に記載の積和演算器の使用方法であって、
    前記積和演算器は、故障検知部をさらに備え、
    前記故障検知部が、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力に基づいて、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値の正常範囲を設定する正常範囲設定工程と、
    前記故障検知部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と前記正常範囲とに基づいて、前記複数の積演算素子の故障の有無を判断する故障有無判断工程とを含む積和演算器の使用方法。
  8. 前記積和演算器は、比較部をさらに備え、
    前記比較部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力とを比較する比較工程をさらに含む請求項に記載の積和演算器の使用方法。
  9. 前記積和演算器は、補正部をさらに備え、
    前記補正部が、前記出力検出器によって検出される前記複数の積演算素子からの出力の合計値と、前記少なくとも1つのリファレンス出力検出器によって検出される前記少なくとも1つのリファレンスカラムのそれぞれからの出力とに基づいて、前記複数の積演算素子の温度に依存する抵抗値変化分を算出し、前記複数の積演算素子の抵抗値を補正する補正工程をさらに含む請求項に記載の積和演算器の使用方法。
  10. 前記少なくとも1つのリファレンスカラムには、動作用リファレンスカラムと、バックプロパゲーション用リファレンスカラムとが含まれる請求項または請求項に記載の積和演算器。
  11. 請求項1から請求項、および、請求項10のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
JP2019565965A 2018-03-16 2019-02-27 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 Active JP6721136B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018049766 2018-03-16
JP2018049766 2018-03-16
PCT/JP2019/007557 WO2019176540A1 (ja) 2018-03-16 2019-02-27 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Publications (2)

Publication Number Publication Date
JPWO2019176540A1 JPWO2019176540A1 (ja) 2020-04-16
JP6721136B2 true JP6721136B2 (ja) 2020-07-08

Family

ID=67908141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019565965A Active JP6721136B2 (ja) 2018-03-16 2019-02-27 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Country Status (5)

Country Link
US (1) US11429348B2 (ja)
EP (1) EP3767517B1 (ja)
JP (1) JP6721136B2 (ja)
CN (1) CN111279351B (ja)
WO (1) WO2019176540A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138497B2 (en) 2018-07-17 2021-10-05 Macronix International Co., Ltd In-memory computing devices for neural networks
US11636325B2 (en) 2018-10-24 2023-04-25 Macronix International Co., Ltd. In-memory data pooling for machine learning
US11562229B2 (en) 2018-11-30 2023-01-24 Macronix International Co., Ltd. Convolution accelerator using in-memory computation
US11934480B2 (en) 2018-12-18 2024-03-19 Macronix International Co., Ltd. NAND block architecture for in-memory multiply-and-accumulate operations
US11132176B2 (en) * 2019-03-20 2021-09-28 Macronix International Co., Ltd. Non-volatile computing method in flash memory
WO2021176656A1 (ja) * 2020-03-05 2021-09-10 Tdk株式会社 磁気記録アレイ、ニューロモルフィックデバイスおよび磁気記録アレイの制御方法
JP6958762B1 (ja) * 2020-03-05 2021-11-02 Tdk株式会社 磁気記録アレイ
WO2022003957A1 (ja) 2020-07-03 2022-01-06 Tdk株式会社 集積装置及びニューロモーフィックデバイス
US11840757B2 (en) * 2020-07-08 2023-12-12 Tdk Corporation Film deposition system, factory system, and method of depositing film on wafer
JP7520673B2 (ja) 2020-10-02 2024-07-23 Tdk株式会社 集積装置及びニューロモーフィックデバイス
JP7215645B2 (ja) * 2020-10-23 2023-01-31 Tdk株式会社 ニューロモーフィックデバイス
KR20220136750A (ko) * 2021-04-01 2022-10-11 삼성전자주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
WO2023166707A1 (ja) * 2022-03-04 2023-09-07 Tdk株式会社 ニューロモーフィックデバイス
KR20230136353A (ko) * 2022-03-18 2023-09-26 삼성전자주식회사 뉴럴 네트워크 회로 및 장치
CN114975770B (zh) * 2022-05-13 2024-08-06 华中科技大学 一种基于自旋轨道力矩器件的电流比较器和模数转换器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7375516B2 (en) * 2004-02-19 2008-05-20 Mitsubishi Electric Corporation Magnetic field detector, current detector, position detector and rotation detector employing it
WO2008072421A1 (ja) * 2006-12-12 2008-06-19 Nec Corporation 磁気抵抗効果素子及びmram
TWI337355B (en) * 2007-06-29 2011-02-11 Ind Tech Res Inst Simulating circuit for simulating a toggle magnetic tunneling junction element
JP5160304B2 (ja) * 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
JP2010219104A (ja) * 2009-03-13 2010-09-30 Nec Corp 磁気メモリ素子、磁気メモリ、及びその製造方法
US8565010B2 (en) * 2011-02-16 2013-10-22 Avalanche Technology, Inc. Magnetic random access memory with field compensating layer and multi-level cell
WO2013108299A1 (ja) * 2012-01-20 2013-07-25 パナソニック株式会社 ニューラルネットワーク回路の学習方法
JP2016004589A (ja) * 2014-06-13 2016-01-12 ソニー株式会社 抵抗変化型メモリ装置及び半導体装置
EP3199965B1 (en) * 2014-09-26 2018-11-14 Asahi Kasei Microdevices Corporation Magnetic sensor
WO2017183573A1 (ja) 2016-04-21 2017-10-26 Tdk株式会社 磁壁利用型アナログメモリ素子および磁壁利用型アナログメモリ
CN109923550B (zh) 2016-08-19 2022-11-15 索尼公司 乘数累加器
JP2018049766A (ja) 2016-09-23 2018-03-29 矢崎総業株式会社 コネクタおよびコネクタの組立方法

Also Published As

Publication number Publication date
EP3767517A4 (en) 2021-11-24
US11429348B2 (en) 2022-08-30
EP3767517A1 (en) 2021-01-20
EP3767517B1 (en) 2022-12-28
WO2019176540A1 (ja) 2019-09-19
CN111279351A (zh) 2020-06-12
US20200334015A1 (en) 2020-10-22
JPWO2019176540A1 (ja) 2020-04-16
CN111279351B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
JP6721136B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
US10892009B2 (en) Magnetic wall utilization-analog memory element and magnetic wall utilization analog memory
WO2018189964A1 (ja) 磁壁利用型アナログメモリ素子、磁壁利用型アナログメモリ、不揮発性ロジック回路及び磁気ニューロ素子
JP7013839B2 (ja) 磁壁利用型アナログメモリ、不揮発性ロジック回路及び磁気ニューロ素子
JPWO2019138535A1 (ja) 磁壁移動型磁気記録素子及び磁気記録アレイ
JP6747610B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の故障判断方法
JPWO2017183574A1 (ja) 磁壁利用型スピンmosfetおよび磁壁利用型アナログメモリ
JP4227964B2 (ja) 磁気抵抗アクセスメモリ、電流閾値範囲検出器およびコンピュータシステム
JP6773239B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
JP6819843B1 (ja) 磁気記録アレイ、ニューロモルフィックデバイスおよび磁気記録アレイの制御方法
JP6819799B2 (ja) 積和演算器の使用方法
JP7143968B1 (ja) 磁気アレイ、磁気アレイの制御方法及び磁気アレイの制御プログラム
US6954375B2 (en) Magnetic storage element, recording method using the same, and magnetic storage device
JP6876281B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191128

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191128

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200305

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200601

R150 Certificate of patent or registration of utility model

Ref document number: 6721136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250