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

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

Info

Publication number
JP6773239B2
JP6773239B2 JP2019562961A JP2019562961A JP6773239B2 JP 6773239 B2 JP6773239 B2 JP 6773239B2 JP 2019562961 A JP2019562961 A JP 2019562961A JP 2019562961 A JP2019562961 A JP 2019562961A JP 6773239 B2 JP6773239 B2 JP 6773239B2
Authority
JP
Japan
Prior art keywords
product calculation
fixed
input product
unit
product
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
JP2019562961A
Other languages
English (en)
Other versions
JPWO2019131147A1 (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 JPWO2019131147A1 publication Critical patent/JPWO2019131147A1/ja
Application granted granted Critical
Publication of JP6773239B2 publication Critical patent/JP6773239B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Hall/Mr Elements (AREA)
  • Mram Or Spin Memory Techniques (AREA)

Description

本発明は、積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法に関する。本願は、2017年12月28日に、日本に出願された特願2017−254662号に基づき優先権を主張し、その内容をここに援用する。
従来から、RRAM(登録商標)ベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキームが知られている(例えば非特許文献1参照)。この文献には、アナログニューロモーフィックシステムが、組み立てられた抵抗スイッチングメモリアレイを基礎として開発される旨が記載されている。この文献では、新規なトレーニングスキームが、セグメント化されたシナプスの挙動を利用することによって、アナログシステムの性能を最適化するために提案される。また、この文献では、このスキームが、グレースケール画像認識に対して適用される。
また、神経系を模倣したニューラルネットワークを抵抗変化素子のアレイを用いて実現する研究が進められている。ニューロモーフィックデバイス(NMD)では、前段から次の段へとウエイトをかけて足し合わせる積和演算を行う。そこで、連続的に抵抗が変化する抵抗変化素子を複数組み合わせ、それぞれの抵抗値を重みとして入力信号に対する積演算を行い、そこから出力される電流の総和をとることで和演算を行う様々なタイプの積和演算器、およびそれを利用したNMDの開発がすすめられている。
ニューラルネットワークで広く用いられる多層パーセプトロンでは、入力層、1つ以上の隠れ層、出力層からなり、各層はそれぞれが適切な重み(結合の強さ)とバイアス項で結び付けられている(例えば、非特許文献2参照)。
国際公開第2017/183573号
Zhe Chen他著、「RRAMベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキーム(OptimizedLearning Scheme for Grayscale Image Recognition in a RRAM Based Analog Neuromorphic System)」、2015年、IEEE、p.17.7.1−p.17.7.4 Sebastian Raschka 著、「Python機械学習プログラミング」、インプレス、p.328−330
ところで、非特許文献1には、バイアス項用素子をどのように構成すべきかについて検討されていない。バイアス項用素子の構成によっては、バイアス項用素子が故障した場合に、ニューラルネットワークの性能が大きく低下してしまうおそれがある。これは一般的に「重み」は特定の結合ごとに値を設定するのに対し、バイアス項は、その層全体の値を偏らせるために用いられるからである。
上述した問題点に鑑み、本発明は、ニューラルネットワークに適用される場合に、バイアス項用素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することを目的とする。
本発明の一態様の積和演算器は、積演算部と、和演算部とを備え、前記積演算部は、複数の可変入力用積演算素子と、複数の固定入力用積演算素子とを備え、前記複数の可変入力用積演算素子および前記複数の固定入力用積演算素子のそれぞれは、抵抗変化素子であり、前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、前記複数の固定入力用積演算素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部とを備え、前記和演算部は、前記複数の可変入力用積演算素子からの出力および前記複数の固定入力用積演算素子からの出力の合計値を検出する出力検出器を備える。
本発明の一態様の積和演算器では、前記複数の固定入力用積演算素子は、出力電流が増加する故障が発生した場合に断線する機能を有してもよい。
本発明の一態様の積和演算器では、前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有してもよい。
本発明の一態様の積和演算器では、前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、前記磁気抵抗効果素子は、磁壁を有する磁化自由層と、磁化方向が固定された磁化固定層と、前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有してもよい。
本発明の一態様の積和演算器では、前記積演算部は、他の可変入力用積演算素子と、他の固定入力用積演算素子とをさらに備え、前記他の可変入力用積演算素子および前記他の固定入力用積演算素子のそれぞれは、前記抵抗変化素子であり、前記可変入力部は、前記他の可変入力用積演算素子に対して前記可変信号を入力し、前記固定入力部は、前記他の固定入力用積演算素子に対して前記定められた信号を前記可変信号に同期させて入力し、前記和演算部は、前記他の可変入力用積演算素子からの出力および前記他の固定入力用積演算素子からの出力の合計値を検出する他の出力検出器をさらに備えてもよい。
本発明の一態様は、前記積和演算器を備えるニューロモーフィックデバイスである。
本発明の一態様は、前記積和演算器の使用方法であって、前記積和演算器は故障診断部をさらに備え、前記可変入力部が前記複数の可変入力用積演算素子に対して前記可変信号を入力しない状態、かつ、前記固定入力部が前記複数の固定入力用積演算素子に対して前記定められた信号を入力する状態で、前記出力検出器が、前記複数の固定入力用積演算素子からの出力を検出する出力検出工程と、前記故障診断部が、前記出力検出工程において検出された前記複数の固定入力用積演算素子からの出力に基づいて、故障している積演算素子が前記複数の固定入力用積演算素子に含まれるか否かを診断する診断工程とを含む、積和演算器の使用方法である。
本発明の一態様の積和演算器の使用方法では、前記積和演算器は再学習部をさらに備え、前記故障している積演算素子が前記複数の固定入力用積演算素子に含まれると前記故障診断部が診断した場合に、前記再学習部が、前記複数の固定入力用積演算素子のうちの、前記故障している積演算素子以外の積演算素子の抵抗値の再設定を行う再学習工程をさらに含んでもよい。
本発明によれば、ニューラルネットワークに適用される場合に、バイアス項用素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することができる。
第1実施形態の積和演算器の一部の構成の一例を示す図である。 第1実施形態の積和演算器の可変入力用積演算素子として適用可能な抵抗変化素子の一例を示す斜視図である。 第1実施形態の積和演算器の固定入力用積演算素子として適用可能な抵抗変化素子の第1例を示す斜視図である。 図3に示す読み出し端子を介する磁気抵抗効果素子からの出力電流の変化などを説明するための図である。 第1実施形態の積和演算器の固定入力用積演算素子として適用可能な抵抗変化素子の第2例を示す斜視図である。 第1実施形態の積和演算器の適用例を示す図である。 第1実施形態の積和演算器の全体構成の一例を示す図である。 図1および図7に示す第1実施形態の積和演算器によって実行される処理の一例を示すフローチャートである。 図8のステップS33における固定入力用積演算素子の抵抗値の再設定が行われる例を説明するための図である。 第2実施形態の積和演算器の一部の構成の一例を示す図である。
以下、図面を参照し、本発明の積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法の実施形態について説明する。
<第1実施形態>(抵抗変化素子が磁気抵抗効果素子)
図1は第1実施形態の積和演算器1の一部の構成の一例を示す図である。
図1に示す例では、第1実施形態の積和演算器1が、積演算部10と、和演算部11と、入力部12とを備えている。積演算部10は、カラム10Aと、カラム10Bとを備えている。入力部12は、可変入力部121A、121Bと、固定入力部122A、122Bとを備えている。
図1に示す例では、積演算部10が、2つのカラム10A、10Bを備えているが、他の例では、積演算部10が、3以上の任意の数のカラム10A、10B、…を備えていてもよい。
図1に示す例では、カラム10Aが、可変入力用積演算素子10A1A、10A1Bと、固定入力用積演算素子10A2A、10A2Bとを備えている。カラム10Bが、可変入力用積演算素子10B1A、10B1Bと、固定入力用積演算素子10B2A、10B2Bとを備えている。
図1に示す例では、カラム10Aが2つの可変入力用積演算素子10A1A、10A1Bと2つの固定入力用積演算素子10A2A、10A2Bとを備え、カラム10Bが2つの可変入力用積演算素子10B1A、10B1Bと2つの固定入力用積演算素子10B2A、10B2Bとを備えているが、他の例では、カラム10Aが、2以外の任意の数(詳細には、複数)の可変入力用積演算素子と2以外の任意の数(詳細には、複数)の固定入力用積演算素子とを備え、カラム10Bが、2以外の任意の数(詳細には、複数)の可変入力用積演算素子と2以外の任意の数(詳細には、複数)の固定入力用積演算素子を備えてもよい。
図1に示す例では、複数の可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bおよび複数の固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bのそれぞれは、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
可変入力用積演算素子10A1A、10B1Aの読み出し端子は、ラインL11に接続されている。ラインL11は、可変入力用積演算素子10A1A、10B1Aに対して可変信号を入力する可変入力部121Aに接続されている。可変入力用積演算素子10A1A、10B1Aの書き込み端子は、ラインL12に接続されている。
可変入力用積演算素子10A1B、10B1Bの読み出し端子は、ラインL21に接続されている。ラインL21は、可変入力用積演算素子10A1B、10B1Bに対して可変信号を入力する可変入力部121Bに接続されている。可変入力用積演算素子10A1B、10B1Bの書き込み端子は、ラインL22に接続されている。
固定入力用積演算素子10A2A、10B2Aの読み出し端子は、ラインL31に接続されている。ラインL31は、固定入力用積演算素子10A2A、10B2Aに対して定められた信号である固定信号を入力する固定入力部122Aに接続されている。固定入力用積演算素子10A2A、10B2Aの書き込み端子は、ラインL32に接続されている。
固定入力用積演算素子10A2B、10B2Bの読み出し端子は、ラインL41に接続されている。ラインL41は、固定入力用積演算素子10A2B、10B2Bに対して定められた信号である固定信号を入力する固定入力部122Bに接続されている。固定入力用積演算素子10A2B、10B2Bの書き込み端子は、ラインL42に接続されている。
固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bに対して入力される固定信号は、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bに対して入力される可変信号に同期させられる。
可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2A、10A2Bの共通端子は、ラインM1に接続されている。可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2A、10B2Bの共通端子は、ラインM2に接続されている。
和演算部11は、出力検出器11A、11Bを備えている。出力検出器11Aは、可変入力用積演算素子10A1A、10A1Bからの出力および固定入力用積演算素子10A2A、10A2Bからの出力の合計値を検出する。出力検出器11Bは、可変入力用積演算素子10B1A、10B1Bからの出力および固定入力用積演算素子10B2A、10B2Bからの出力の合計値を検出する。出力検出器11AはラインM1に配置されている。出力検出器11BはラインM2に配置されている。
図1に示す例では、出力検出器11Aが、可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2A、10A2Bからの出力電流値を検出し、出力検出器11Bが、可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2A、10B2Bからの出力電流値を検出する。他の例では、出力検出器11Aが、可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2A、10A2Bの出力を電荷として検出し、出力検出器11Bが、可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2A、10B2Bの出力を電荷として検出してもよい。
本発明において積演算素子として用いられる抵抗変化素子は、外部からの刺激(電流、電圧、磁場など)に対して可逆的に電気抵抗が変化する素子である。かかる抵抗変化素子としては例えば、抵抗変化型メモリ(RRAM)素子、相変化メモリ(PCRAM)素子、異方性磁気抵抗効果(AMR)素子、トンネル磁気抵抗効果(TMR)素子、巨大磁気抵抗効果(GMR)素子などが挙げられる。
図2は第1実施形態の積和演算器1の可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bとして適用可能な抵抗変化素子の一例を示す斜視図である。
図2に示す例では、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Aである。
磁気抵抗効果素子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の方向(例えば図2の左向き)に配向し、固定された層である。ここで、磁化が固定されるとは、書き込み電流を用いた書き込み前後において磁化方向が変化しない(磁化が固定されている)ことを意味する。
図2に示す例では、磁化固定層A2は磁化が面内磁気異方性(面内磁化容易軸)を有する面内磁化膜である。磁化固定層A2は、面内磁化膜に限られず、垂直磁気異方性(垂直磁化容易軸)を有する垂直磁化膜であってもよい。
磁化固定層A2が面内磁化膜であると、高いMR比(磁気抵抗変化率)を有し、読み込み時にスピントランスファートルク(STT)による影響を受けにくく、読み取り電圧を大きくできる。一方、素子を微小化したい場合には磁気異方性が大きく、反磁界が小さい、垂直磁化膜を用いることが好ましい。
磁化固定層A2には、公知の材料を用いることができる。例えば、Cr、Mn、Co、Fe及びNiからなる群から選択される金属及びこれらの金属を1種以上含み強磁性を示す合金を用いることができる。またこれらの金属と、B、C、及びNのうちの1種以上の元素とを含む合金を用いることもできる。具体的には、Co−FeやCo−Fe−Bが挙げられる。
また磁化固定層A2には、CoFeSiなどのホイスラー合金を用いることもできる。ホイスラー合金は、XYZの化学組成をもつ金属間化合物を含み、Xは、周期表上でCo、Fe、Ni、あるいはCu族の遷移金属元素または貴金属元素であり、Yは、Mn、V、CrあるいはTi族の遷移金属でありXの元素種をとることもでき、Zは、III族からV族の典型元素である。例えば、CoFeSi、CoMnSiやCoMn1−aFeAlSi1−bなどが挙げられる。
また磁化固定層A2は強磁性層、非磁性層から成るシンセティック構造、あるいは反強磁性層、強磁性層、非磁性層から成るシンセティック構造であってもよい。後者においてはシンセティック構造において磁化固定層A2の磁化方向は反強磁性層によって強く保持される。そのため、磁化固定層A2の磁化が外部からの影響を受けにくくなる。
磁化固定層A2の磁化をXY面内に配向させる(磁化固定層A2を面内磁化膜にする)場合は、例えば、NiFeを用いることが好ましい。一方で磁化固定層A2の磁化をZ方向に配向させる(磁化固定層A2を垂直磁化膜にする)場合は、例えば、Co/Ni積層膜、Co/Pt積層膜等を用いることが好ましい。例えば、磁化固定層A2を[Co(0.24nm)/Pt(0.16nm)]6/Ru(0.9nm)/[Pt(0.16nm)/Co(0.16nm)]4/Ta(0.2nm)/FeB(1.0nm)とすると、垂直磁化膜となる。
[非磁性層A3]
非磁性層A3は、磁化固定層A2の下面に設けられている。磁気抵抗効果素子Aは、非磁性層A3を介して磁化固定層A2に対する磁化自由層A1の磁化状態の変化を抵抗値変化として読み出す。すなわち、磁化固定層A2、非磁性層A3及び磁化自由層A1は磁気抵抗効果素子Aとして機能し、非磁性層A3が絶縁体からなる場合はトンネル磁気抵抗(TMR)素子と似た構成であり、非磁性層2が金属からなる場合は巨大磁気抵抗効果(GMR)素子と似た構成である。
非磁性層A3の材料としては、磁気抵抗効果素子Aの非磁性層に用いることができる公知の材料を用いることができる。非磁性層A3が絶縁体からなる場合(トンネルバリア層である場合)、その材料としてAl、SiO、MgO、MgAl、ZnAl、MgGa、ZnGa、MgIn、ZnIn、及び、これらの材料の多層膜や混合組成膜等を用いることができる。またこれらの他にも、Al、Si、Mgの一部が、Zn、Be等に置換された材料等も用いることができる。これらの中でも、MgOやMgAlはコヒーレントトンネルが実現できる材料であるため、磁気抵抗比(MR比)を大きくとることができる。一方で、非磁性層2が金属からなる場合は、その材料としてCu、Al、Ag等を用いることができる。
非磁性層A3が絶縁体からなる場合(トンネルバリア層である場合)、その厚みは、例えば2.5nm以上である。
[磁化自由層A1]
磁化自由層A1は磁壁駆動型(移動型)MRAMの磁壁駆動層に相当する。
磁化自由層A1は強磁性体材料からなり、その内部の磁化の向きは反転可能である。磁化自由層A1は、磁化が磁化固定層A2と逆向きの第2の方向に配向した第1領域A11と、磁化が第1の方向と同じ向きに配向した第2領域A12と、これらの領域の界面をなす磁壁DWとを有する。磁壁DWを挟んで第1領域A11と第2領域A12の磁化の向きは反対である。磁壁DWは、磁化自由層A1における第1領域A11と第2領域A12の構成比率が変化することで移動する。
磁化自由層A1の材料には、公知の材料を用いることができ、特に軟磁性材料を適用できる。例えば、Cr、Mn、Co、Fe及びNiからなる群から選択される金属、これらの金属を1種以上含む合金、これらの金属とB、C、及びNのうちの1種以上の元素とが含まれる合金等を用いることができる。具体的には、Co−Fe、Co−Fe−B、Ni−Feが、磁化自由層A1の材料として挙げられる。
磁化自由層A1の材料には、飽和磁化が小さい材料を用いることもできる。例えば、(MnGa)Asや(InFe)As、あるいはCo/Tb多層膜やGdFeCoのように飽和磁化が小さい材料を用いると、小さい電流密度で磁化自由層A1の磁壁DWを駆動させることができる。また、これらの材料を用いると、磁壁DWの駆動速度が遅くなる。
NiFeのような磁気異方性が弱い材料は、磁壁DWの駆動速度が速く、100m/sec以上の速度で磁壁DWが動作する。つまり、磁壁DWは10nsecのパルスで、1μmの距離を移動する。したがって、磁化自由層A1を素子内でアナログ的に動かす場合には、高価な半導体回路を用いて微小なパルスを印加するか、集積度を犠牲にして磁化自由層を十分長くするなどの対応が必要となる。これに対し、磁壁DWの駆動速度が遅い材料の場合には、十分長いパルス電流を印加する場合や磁化自由層A1の長さが短い場合でも、アナログメモリを形成することが可能である。
磁化自由層A1を垂直磁化膜とする場合、Co/Pt多層膜、Co/Pd多層膜、及びCoCrPt合金膜からなる群から選択された垂直磁化膜が好ましい。また、MnX(X=Ga,Ge)の垂直磁化膜やCo/Niなどの多層膜による垂直磁化膜を用いることもできる。これらの材料は磁壁駆動のための電流密度が小さくても磁壁DWを駆動させることが可能である。
磁化自由層A1が長手方向に延在する長さは60nm以上であることが好ましい。60nm未満では単磁区になりやすく、磁化自由層A1内に磁壁DWが形成されにくい。
磁化自由層A1の厚さは磁壁駆動層として機能する限り、特に制限はないが、例えば、2nm〜60nmとすることができる。磁化自由層A1の厚さが60nm以上になると、積層方向に磁壁が形成される可能性が高まる。ただし、積層方向に磁壁が形成されるか否かは、磁化自由層A1の形状異方性とのバランスによって生じる。磁化自由層A1の厚さが60nm未満であれば、磁壁DWができることは考えにくい。
磁化自由層A1は、層の側面に磁壁DWの移動を止める磁壁ピン止め部を有してもよい。例えば、磁化自由層A1の磁壁DWの移動を止めたい位置に、凹凸、溝、膨らみ、くびれ、切り欠きなどを設けると、磁壁の移動を止める(ピンする)ことができる。磁壁ピン止め部を有すると、閾値以上の電流を流さないとそれ以上磁壁が移動しない構成とすることができ、出力信号をアナログ的ではなく、多値化し易くなる。
例えば、磁壁ピン止め部を所定の距離ごとに形成することにより、磁壁DWをより安定的に保持することができ、安定的な多値記録を可能にし、より安定的に多値化された出力信号を読み出すことを可能にする。
図2に示す例では、磁壁DWを形成するために、磁化自由層A1のうち、平面視において磁化固定層A2に重ならない両端部のそれぞれに、第1領域A11の磁化と同じ第1の方向の磁化を有する第1磁化供給層A4、及び、第2領域A12の磁化と同じ第2の方向の磁化を有する第2磁化供給層A5を有する。
第1磁化供給層A4及び第2磁化供給層A5の材料としては、磁化固定層A2に使える強磁性材料と同じ材料を用いることができる。
図2に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1に接すると共に磁化自由層A1の長手方向に対して交差する方向に延在するスピン軌道トルク(SOT)配線を用いてもよい。スピン軌道トルク配線は、電流が流れるとスピンホール効果によって純スピン流が生成される材料からなるものである。
かかる構成を有することにより、磁化が固定された層としての磁化供給層を設置することがなくても、スピン軌道トルク配線の両端に電流を流すことにより磁化自由層A1に磁壁を導入することができ、また、スピン軌道トルク配線を介して磁化自由層A1に電流を流すことで、磁壁を移動させることができる。
また、図2に示す例では、磁壁DWを形成するために、磁化自由層A1の両端部のいずれにも磁化が固定された層として第1磁化供給層A4及び第2磁化供給層A5を用いたが、いずれか一方又は両方に、磁化自由層A1と電気的に絶縁されていると共に、磁化自由層A1に対して交差する方向に延在する磁場印加配線を用いてもよい。磁場印加配線に電流を流すことによりアンペールの法則により磁場が発生する。磁場印加配線に流す電流の向きによって、発生する磁場の向きを逆向きにすることができる。そのため、磁化自由層A1の端部に面内磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの面内磁化方向のうちの一方の面内磁化方向の磁化を供給することができる。また、磁化自由層A1の端部に垂直磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層A1の端部に互いに逆向きの垂直磁化方向のうちの一方の垂直磁化方向の磁化を供給することができる。
また、図2に示す例では、磁壁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の組成の材料がスパッタによって作成した際に大きな出力が得られることが知られている。
図3は第1実施形態の積和演算器1の固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bとして適用可能な抵抗変化素子の第1例を示す斜視図である。
図3に示す例では、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Aである。
磁気抵抗効果素子Aは、磁壁DWを有する磁化自由層A1と、磁化方向が固定された磁化固定層A2と、非磁性層A3とを有する。非磁性層A3は、磁化自由層A1と磁化固定層A2とに挟まれている。磁化自由層A1は、磁壁DWの一方の側に第1領域A11を有し、磁壁DWの他方の側に第2領域A12を有する。第1領域A11には、書き込み端子AAが設けられている。第2領域A12には、共通端子ABが設けられている。磁化固定層A2には、読み出し端子ACが設けられている。
図3に示す例では、読み出し端子ACが、フューズ部AC1と、フューズ部AC1の両側に配置された配線部AC2、AC3とを備えている。磁気抵抗効果素子Aからの出力電流が読み出し端子ACを介して出力される場合、出力電流は、配線部AC2、フューズ部AC1、配線部AC3の順(つまり、図3の上向き)に、フューズ部AC1と配線部AC2、AC3とを流れるか、あるいは、配線部AC3、フューズ部AC1、配線部AC2の順(つまり、図3の下向き)に、フューズ部AC1と配線部AC2、AC3とを流れる。
図3に示す例では、出力電流が流れる方向に垂直なフューズ部AC1の断面積は、出力電流が流れる方向に垂直な配線部AC2、AC3の断面積よりも小さく設定されている。
つまり、フューズ部AC1は、配線部AC2、AC3よりも断線しやすく構成されている。
図3に示す例では、フューズ部AC1の断面積を配線部AC2、AC3の断面積よりも小さくすることによって、フューズ部AC1が、配線部AC2、AC3よりも断線しやすく構成されているが、他の例では、フューズ部AC1をミアンダ型に形成したり、網目状に形成したりすることによって、フューズ部AC1を配線部AC2、AC3よりも断線しやすく構成してもよい。
さらに他の例では、フューズ部AC1の材料の融点を配線部AC2、AC3の材料の融点よりも低くすることによって、フューズ部AC1を配線部AC2、AC3よりも断線しやすく構成してもよい。
また、図3に示す例では、フューズ部AC1は、磁化固定層A2よりも読み出し端子ACの側(図3の上側)に配置されている。そのため、フューズ部AC1の断線の影響が書き込み端子AAの側におよんでしまうおそれを抑制することができる。
つまり、図3に示す例では、固定入力用積演算素子10A2A、10A2B、10B2A、10B2B(磁気抵抗効果素子A)は、出力電流が増加する故障が発生した場合に断線する機能を有する。
図4は図3に示す読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流の変化などを説明するための図である。図4において、縦軸は、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流を示す。横軸は、磁気抵抗効果素子Aの状態(抵抗値の大きさ)を示す。
磁気抵抗効果素子Aの正常動作時であって、磁気抵抗効果素子Aの抵抗値が最も高い時には、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が最小値Minになる。
磁気抵抗効果素子Aの正常動作時には、磁気抵抗効果素子Aの抵抗値が低くなるに従って、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が大きくなる。
磁気抵抗効果素子Aの正常動作時であって、磁気抵抗効果素子Aの抵抗値が最も低い時には、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が最大値Maxになる。
図4に示す例では、磁気抵抗効果素子Aの正常動作時に、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が値I1になる。
読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が増加する故障が磁気抵抗効果素子Aに発生すると、図4の上向きの矢印で示すように、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が増加する。
図4に示す例では、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が値I2まで増加すると、磁気抵抗効果素子Aの読み出し端子ACのフューズ部AC1が断線する。その結果、図4の下向きの矢印で示すように、読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流が、値I3まで減少する(詳細には、ゼロまで減少する)。
つまり、図4に示す例では、フューズ部AC1が断線した後における読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流は、磁気抵抗効果素子Aの正常動作時における読み出し端子ACを介する磁気抵抗効果素子Aからの出力電流よりも減少する。
図5は第1実施形態の積和演算器1の固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bとして適用可能な抵抗変化素子の第2例を示す斜視図である。
図5に示す例では、図3に示す例と同様に、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Aである。
図5に示す例では、図3に示す例とは異なり、共通端子ABが、フューズ部AB1と、フューズ部AB1の両側に配置された配線部AB2、AB3とを備えている。磁気抵抗効果素子Aからの出力電流が共通端子ABを介して出力される場合、出力電流は、配線部AB2、フューズ部AB1、配線部AB3の順(つまり、図5の右向き)に、フューズ部AB1と配線部AB2、AB3とを流れるか、あるいは、配線部AB3、フューズ部AB1、配線部AB2の順(つまり、図5の左向き)に、フューズ部AB1と配線部AB2、AB3とを流れる。
図5に示す例では、出力電流が流れる方向に垂直なフューズ部AB1の断面積は、出力電流が流れる方向に垂直な配線部AB2、AB3の断面積よりも小さく設定されている。
つまり、フューズ部AB1は、配線部AB2、AB3よりも断線しやすく構成されている。
図5に示す例では、フューズ部AB1の断面積を配線部AB2、AB3の断面積よりも小さくすることによって、フューズ部AB1が、配線部AB2、AB3よりも断線しやすく構成されているが、他の例では、フューズ部AB1をミアンダ型に形成したり、網目状に形成したりすることによって、フューズ部AB1を配線部AB2、AB3よりも断線しやすく構成してもよい。
さらに他の例では、フューズ部AB1の材料の融点を配線部AB2、AB3の材料の融点よりも低くすることによって、フューズ部AB1を配線部AB2、AB3よりも断線しやすく構成してもよい。
つまり、図5に示す例では、図3に示す例と同様に、固定入力用積演算素子10A2A、10A2B、10B2A、10B2B(磁気抵抗効果素子A)は、出力電流が増加する故障が発生した場合に断線する機能を有する。
図6は第1実施形態の積和演算器1の適用例を示す図であり、3−3−3の多層パーセプトロンと呼ばれるネットワークへの適用例を示す図である。図7は第1実施形態の積和演算器1の全体構成の一例を示す図である。
図6に示す例では、第1実施形態の積和演算器1が、ニューロモーフィックデバイス100に適用されている。ニューロモーフィックデバイス100は、入力層101と、隠れ層102と、出力層103と、第1実施形態の積和演算器1と、積和演算器2とを備えている。第1実施形態の積和演算器1は、複数(3個)の可変入力用積演算素子と複数(2個)の固定入力用積演算素子とを有する。一方、積和演算器2は、複数(3個)の可変入力用積演算素子と1個の固定入力用積演算素子とを有する。
入力層101は、例えば5つのノード101A、101B、101C、101D、101Eを備えている。このうち、ノード101A及び101Bは図1に示す固定入力部に相当し、1に設定されている。隠れ層102は、例えば4つのノード102A、102B、102C、102Dを備えている。このうち、ノード102Aは1に設定されている。出力層103は、例えば3つのノード103A、103B、103Cを備えている。
積和演算器1は、入力層101と隠れ層102との間に配置され、入力層101の4つのノード101A、101B、101C、101Dと、隠れ層102の3つのノード102A、102B、102Cとを接続する。図1に示す積和演算器1において、入力層101のノード101A及び101Bのそれぞれと隠れ層102の各ノード102B〜102Dのそれぞれとの間は、図1に示すような固定入力用積演算子10A2A等で接続されており、隠れ層102の各ノードにおいては、入力信号に重みが乗算された値とバイアス(以下、定数「b1」とする)との和が出力される。
隠れ層102と出力層103との間には、積和演算器2が配置されている。なお、積和演算器2は、複数(3個)の可変入力用積演算素子を備えるが、固定入力用積演算素子が複数ではない(1個)ので、本発明の積和演算器ではない。
隠れ層102は、例えば活性化関数(例えばシグモイド関数)を使用する。
本発明者は、鋭意研究において、ニューラルネットワークデバイスにおいて、積和演算を行う際にバイアス項を入れることによってニューラルネットワークの判別性能を向上できることを見い出した。
詳細には、本発明者は、複数の積演算素子として抵抗変化素子が用いられる積和演算器では、バイアス項を表現するために固定入力用積演算素子を用いればよいことを見い出した。
また、本発明者は、重みを表現する可変入力用積演算素子の故障がニューラルネットワークの判別性能に与える影響よりも、バイアス項を表現する固定入力用積演算素子の故障がニューラルネットワークの判別性能に与える影響の方が大きくなることを見い出した。
これは一般的に「重み」は特定の結合ごとに値を設定するのに対し、バイアス項は、その層全体の値を偏らせるために用いられるからである。故障したバイアス項の積演算素子(抵抗変化素子)に電流が集中して大量に流れることによって、他の積演算素子の重み(他の積演算素子からの電流)が回路上で見えなくなるおそれがある。
また、本発明者は、バイアス項を表現する複数の固定入力用積演算素子を1つのカラムに設けることによって、1つの固定入力用積演算素子が故障した場合にニューラルネットワークの判別性能が完全に失われることを防ぐことができ、ニューラルネットワークの判別性能の低下を抑制できることを見い出した。
その点に鑑み、第1実施形態の積和演算器1では、図1に示すように、カラム10Aに複数の固定入力用積演算素子10A2A、10A2Bが設けられると共に、カラム10Bに複数の固定入力用積演算素子10B2A、10B2Bが設けられている。また、第1実施形態の積和演算器1は、図7に示すように、故障診断部13を備えている。
また、本発明者は、1つのカラムに備えられている複数の固定入力用積演算素子のうちの1つの固定入力用積演算素子が故障した場合であっても、再学習を行うことによってニューラルネットワークの判別性能を回復できることを見い出した。
その点に鑑み、第1実施形態の積和演算器1は、図7に示すように、再学習部14を備えている。
図8は図1および図7に示す第1実施形態の積和演算器1によって実行される処理の一例を示すフローチャートである。
図8に示す例では、積和演算器1が、学習ステップS10と、故障診断ステップS20と、再学習ステップS30(再学習工程)とを実行する。学習ステップS10には、ステップS11が含まれる。故障診断ステップS20には、ステップS21〜S24が含まれる。再学習ステップS30には、ステップS31〜S33が含まれる。
学習ステップS10では、例えば公知のバックプロパゲーション学習が行われる。詳細には、ステップS11では、積和演算器1が、カラム10Aのバイアス項を表現する固定入力用積演算素子10A2A、10A2Bの抵抗値を設定する。
次いで、積和演算器1の故障診断部13が、故障診断ステップS20を実行する。詳細には、ステップS21では、積和演算器1が、可変入力部121Aから可変入力用積演算素子10A1A(および可変入力用積演算素子10B1A)への可変信号の入力をオフにする。つまり、可変入力用積演算素子10A1Aには、可変入力部121Aからの可変信号が入力されなくなる。
また、ステップS21では、積和演算器1が、可変入力部121Bから可変入力用積演算素子10A1B(および可変入力用積演算素子10B1B)への可変信号の入力をオフにする。つまり、可変入力用積演算素子10A1Bには、可変入力部121Bからの可変信号が入力されなくなる。
また、ステップS21では、積和演算器1が、固定入力部122Aから固定入力用積演算素子10A2A(および固定入力用積演算素子10B2A)への固定信号の入力をオンにする。つまり、固定入力用積演算素子10A2Aには、固定信号が固定入力部122Aから入力される。
また、ステップS21では、積和演算器1が、固定入力部122Bから固定入力用積演算素子10A2B(および固定入力用積演算素子10B2B)への固定信号の入力をオンにする。つまり、固定入力用積演算素子10A2Bには、固定信号が固定入力部122Bから入力される。
次いで、ステップS22(出力検出工程)では、出力検出器11Aが、可変入力用積演算素子10A1A、10A1Bからの出力および固定入力用積演算素子10A2A、10A2Bからの出力の合計値を検出する。上述したように、可変入力用積演算素子10A1Aには、可変入力部121Aからの可変信号が入力されず、可変入力用積演算素子10A1Bには、可変入力部121Bからの可変信号が入力されない。そのため、可変入力用積演算素子10A1A、10A1Bからの出力はゼロである。
つまり、ステップS22(出力検出工程)では、可変入力部121A、121Bが可変入力用積演算素子10A1A、10A1Bに対して可変信号を入力しない状態、かつ、固定入力部122A、122Bが固定入力用積演算素子10A2A、10A2Bに対して固定信号を入力する状態で、出力検出器11Aが、固定入力用積演算素子10A2A、10A2Bからの出力の合計値を検出する。
次いで、ステップS23(診断工程)では、故障診断部13が、出力検出器11Aの検出値に基づいて、故障している固定入力用積演算素子が固定入力用積演算素子10A2A、10A2Bに含まれるか否かを診断する。故障している固定入力用積演算素子が固定入力用積演算素子10A2A、10A2Bに含まれない場合には、ステップS21に戻る。
一方、故障している固定入力用積演算素子が固定入力用積演算素子10A2A、10A2Bに含まれる場合には、ステップS24に進む。
ステップS24では、積和演算器1が、固定入力用積演算素子10A2A、10A2Bのうちの故障している固定入力用積演算素子を特定する。
ステップS24においては、固定入力用積演算素子10A2Aが故障しているか否かを診断するために、例えば、可変入力部121A、121Bが可変入力用積演算素子10A1A、10A1Bに対して可変信号を入力しない状態、かつ、固定入力部122Bが固定入力用積演算素子10A2Bに対して固定信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10A2Aに対して固定信号を入力する状態で、出力検出器11Aが、固定入力用積演算素子10A2Aからの出力を検出する。また、故障診断部13は、出力検出器11Aの検出値に基づいて、固定入力用積演算素子10A2Aが故障しているか否かを診断する。
同様に、ステップS24においては、固定入力用積演算素子10A2Bが故障しているか否かを診断するために、例えば、可変入力部121A、121Bが可変入力用積演算素子10A1A、10A1Bに対して可変信号を入力しない状態、かつ、固定入力部122Aが固定入力用積演算素子10A2Aに対して固定信号を入力しない状態、かつ、固定入力部122Bが固定入力用積演算素子10A2Bに対して固定信号を入力する状態で、出力検出器11Aが、固定入力用積演算素子10A2Bからの出力を検出する。また、故障診断部13は、出力検出器11Aの検出値に基づいて、固定入力用積演算素子10A2Bが故障しているか否かを診断する。
次いで、積和演算器1の再学習部14が、再学習ステップS30(再学習工程)を実行する。再学習ステップS30では、例えば公知のバックプロパゲーション学習が行われる。詳細には、ステップS31では、再学習部14は、上述したステップS24の診断結果に基づいて、固定入力用積演算素子10A2Aが故障しているか否かを判定する。固定入力用積演算素子10A2Aが故障している場合には、ステップS32に進む。一方、固定入力用積演算素子10A2Bが故障している場合には、ステップS33に進む。
ステップS32では、再学習部14が、カラム10Aのバイアス項が固定入力用積演算素子10A2Bのみによって表現されるように、固定入力用積演算素子10A2Bの抵抗値を再設定する。
つまり、ステップS32では、再学習部14が、固定入力用積演算素子10A2A、10A2Bのうちの、故障している固定入力用積演算素子10A2A以外の固定入力用積演算素子10A2Bの抵抗値の再設定を行う。
ステップS33では、再学習部14が、カラム10Aのバイアス項が固定入力用積演算素子10A2Aのみによって表現されるように、固定入力用積演算素子10A2Aの抵抗値を再設定する。
つまり、ステップS33では、再学習部14が、固定入力用積演算素子10A2A、10A2Bのうちの、故障している固定入力用積演算素子10A2B以外の固定入力用積演算素子10A2Aの抵抗値の再設定を行う。
図9は、図8のステップS33における固定入力用積演算素子10A2Aの抵抗値の再設定が行われる例を説明するための図である。詳細には、図9(A)は固定入力用積演算素子10A2Bが故障する前の状態を示している。図9(B)は固定入力用積演算素子10A2Bが故障し、固定入力用積演算素子10A2Aの抵抗値の再設定が行われた後の状態を示している。
図9(A)および図9(B)に示す例では、第1実施形態の積和演算器1がニューラルネットワークに適用される場合における重みaが、可変入力用積演算素子10A1A、10A1Bの抵抗値によって設定される。固定入力用積演算素子10A2Bが故障する前においては、図9(A)に示すように、バイアス項b1が、固定入力用積演算素子10A2A、10A2Bの抵抗値によって設定される。固定入力用積演算素子10A2Bが故障した後には、上述したステップS33において、再学習部14によって固定入力用積演算素子10A2Aの抵抗値の再設定が行われる。その結果、図9(B)に示すように、バイアス項b2が、固定入力用積演算素子10A2Aの抵抗値のみによって設定される。つまり、図9(A)および図9(B)に示す例では、固定入力用積演算素子10A2Bの故障時に、固定入力用積演算素子10A2A、10A2Bのうちの、固定入力用積演算素子10A2B以外の固定入力用積演算素子10A2Aに再分配されたバイアス項b2が設定される。
つまり、第1実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1Bに入力される可変信号に同期して定められた信号が入力される固定入力用積演算素子10A2A、10A2Bが、バイアス項として機能する。第1実施形態の積和演算器1がニューラルネットワークに適用される場合には、固定入力用積演算素子10A2A、10A2Bがバイアス項用素子として用いられない積和演算器がニューラルネットワークに適用される場合よりも、ニューラルネットワークの判別性能を向上させることができる。
上述したように、例えば図1に示す第1実施形態の積和演算器1は、積演算部10と、和演算部11とを備える。積演算部10は、複数の可変入力用積演算素子10A1A、10A1Bと、複数の固定入力用積演算素子10A2A、10A2Bとを備える。複数の可変入力用積演算素子10A1A、10A1Bおよび複数の固定入力用積演算素子10A2A、10A2Bのそれぞれは、抵抗変化素子である。また、第1実施形態の積和演算器1は、複数の可変入力用積演算素子10A1A、10A1B、…に対して可変信号を入力する可変入力部121A、121Bと、複数の固定入力用積演算素子10A2A、10A2Bに対して定められた信号を可変信号に同期させて入力する固定入力部122A、122Bとを備える。和演算部11は、複数の可変入力用積演算素子10A1A、10A1Bからの出力および複数の固定入力用積演算素子10A2A、10A2Bからの出力の合計値を検出する出力検出器11Aを備える。
そのため、第1実施形態の積和演算器1がニューラルネットワークに適用される場合には、バイアス項用素子である固定入力用積演算素子10A2A、10A2Bの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
また、第1実施形態の積和演算器1では、上述したように、複数の固定入力用積演算素子10A2A、10A2Bは、出力電流が増加する故障が発生した場合に断線する(つまり、抵抗値が無限大になる)機能を有する。また、複数の可変入力用積演算素子10A1A、10A1Bおよび複数の固定入力用積演算素子10A2A、10A2Bのそれぞれは、書き込み端子AAと、共通端子ABと、読み出し端子ACとを有し、磁気抵抗効果を示す磁気抵抗効果素子Aである。また、磁気抵抗効果素子Aは、磁壁DWを有する磁化自由層A1と、磁化方向が固定された磁化固定層A2と、磁化自由層A1と磁化固定層A2とに挟まれた非磁性層A3とを有する。
つまり、第1実施形態の積和演算器1では、複数の固定入力用積演算素子10A2A、10A2Bとして、正常動作時における抵抗値と、故障時(詳細には、出力電流が大きくなって断線する故障時)における抵抗値との差が大きい素子が用いられる。
そのため、第1実施形態の積和演算器1によれば、正常動作時における抵抗値と故障時における抵抗値との差が小さい素子が固定入力用積演算素子として用いられる場合よりも、固定入力用積演算素子10A2A、10A2Bの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
また、第1実施形態の積和演算器1の使用時(詳細には、出力検査時)には、可変入力部121A、121Bが複数の可変入力用積演算素子10A1A、10A1Bに対して可変信号を入力しない状態、かつ、固定入力部122A、122Bが複数の固定入力用積演算素子10A2A、10A2Bに対して固定信号を入力する状態で、出力検出器11Aが、複数の固定入力用積演算素子10A2A、10A2Bからの出力を検出する。
また、第1実施形態の積和演算器1の使用時(詳細には、診断時)には、故障診断部13が、出力検出時に検出された複数の固定入力用積演算素子10A2A、10A2Bからの出力に基づいて、故障している固定入力用積演算素子が複数の固定入力用積演算素子10A2A、10A2Bに含まれるか否かを診断する。
そのため、第1実施形態の積和演算器1によれば、そのような出力検査および診断が行われない場合よりも、固定入力用積演算素子10A2A、10A2Bの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
また、故障している固定入力用積演算素子が複数の固定入力用積演算素子10A2A、10A2Bに含まれる場合、第1実施形態の積和演算器1の使用時(詳細には、再学習時)に、再学習部14が、複数の固定入力用積演算素子10A2A、10A2Bのうちの、故障している固定入力用積演算素子以外の固定入力用積演算素子の抵抗値の再設定を行う。
そのため、第1実施形態の積和演算器1によれば、そのような再学習が行われない場合よりも、固定入力用積演算素子10A2A、10A2Bの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
<第2実施形態>(抵抗変化素子が一般的な可変抵抗)
以下、本発明の積和演算器の第2実施形態について説明する。
第2実施形態の積和演算器1は、後述する点を除き、上述した第1実施形態の積和演算器1と同様に構成されている。従って、第2実施形態の積和演算器1によれば、後述する点を除き、上述した第1実施形態の積和演算器1と同様の効果を奏することができる。
図10は第2実施形態の積和演算器1の一部の構成の一例を示す図である。
第1実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bおよび固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bが磁気抵抗効果素子によって構成されているが、第2実施形態の積和演算器1では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bおよび固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bが一般的な抵抗変化素子(可変抵抗)によって構成されている。
詳細には、図1に示す例では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bおよび固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bのそれぞれが、読み出し端子と、書き込み端子と、共通端子とを備えているが、図10に示す例では、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bおよび固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bのそれぞれが、第1端子と、第2端子とを備えている。
図10に示す例では、可変入力用積演算素子10A1A、10B1Aの第1端子は、ラインL11に接続されている。可変入力用積演算素子10A1B、10B1Bの第1端子は、ラインL21に接続されている。固定入力用積演算素子10A2A、10B2Aの第1端子は、ラインL31に接続されている。固定入力用積演算素子10A2B、10B2Bの第1端子は、ラインL41に接続されている。
図10に示す例においても、固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bに対して入力される固定信号は、可変入力用積演算素子10A1A、10A1B、10B1A、10B1Bに対して入力される可変信号に同期させられる。
図10に示す例では、可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2A、10A2Bの第2端子は、ラインM1に接続されている。可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2A、10B2Bの第2端子は、ラインM2に接続されている。
和演算部11は、可変入力用積演算素子10A1A、10A1Bおよび固定入力用積演算素子10A2A、10A2Bの第2端子からの出力の合計値を検出する出力検出器11Aと、可変入力用積演算素子10B1A、10B1Bおよび固定入力用積演算素子10B2A、10B2Bの第2端子からの出力の合計値を検出する出力検出器11Bとを備えている。
図10に示す例においても、固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bは、例えばフューズ部(図示せず)などを有することによって、出力電流が増加する故障が発生した場合に断線する機能を有する。
他の例では、図10に示す固定入力用積演算素子10A2A、10A2B、10B2A、10B2Bは、出力電流が増加する故障が発生した場合に断線する機能を有さなくてもよい。
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。上述した各実施形態に記載の構成を組み合わせてもよい。
例えば、以上に示した実施形態に係る各装置(例えば、積和演算器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…カラム、10A1A…可変入力用積演算素子、10A1B…可変入力用積演算素子、10A2A…固定入力用積演算素子、10A2B…固定入力用積演算素子、10B…カラム、10B1A…可変入力用積演算素子、10B1B…可変入力用積演算素子、10B2A…固定入力用積演算素子、10B2B…固定入力用積演算素子、11…和演算部、11A…出力検出器、11B…出力検出器、12…入力部、121A…可変入力部、121B…可変入力部、122A…固定入力部、122B…固定入力部、13…故障診断部、14…再学習部、100…ニューロモーフィックデバイス、101…入力層、101A、101B、101C、101D…ノード、102…隠れ層、102A、102B、102C…ノード、103…出力層、103A、103B、103C…ノード、A…磁気抵抗効果素子、AA…書き込み端子、AB…共通端子、AC…読み出し端子、A1…磁化自由層、A11…第1領域、A12…第2領域、A2…磁化固定層、A3…非磁性層、DW…磁壁、L11…ライン、L12…ライン、L21…ライン、L22…ライン、L31…ライン、L32…ライン、L41…ライン、L42…ライン、M1…ライン、M2…ライン

Claims (8)

  1. 積演算部と、和演算部とを備え、
    前記積演算部は、複数の可変入力用積演算素子と、複数の固定入力用積演算素子とを備え、
    前記複数の可変入力用積演算素子および前記複数の固定入力用積演算素子のそれぞれは、抵抗変化素子であり、
    前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、
    前記複数の固定入力用積演算素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部とを備え、
    前記和演算部は、前記複数の可変入力用積演算素子からの出力および前記複数の固定入力用積演算素子からの出力の合計値を検出する出力検出器を備える、
    積和演算器。
  2. 前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有する、請求項1に記載の積和演算器。
  3. 前記複数の固定入力用積演算素子のそれぞれは、前記読み出し端子を介する前記固定入力用積演算素子からの出力電流が増加する故障が発生した場合に断線する機能を有する、請求項2に記載の積和演算器。
  4. 前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、
    前記磁気抵抗効果素子は、
    磁壁を有する磁化自由層と、
    磁化方向が固定された磁化固定層と、
    前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有する、
    請求項1または請求項2に記載の積和演算器。
  5. 前記積演算部は、他の可変入力用積演算素子と、他の固定入力用積演算素子とをさらに備え、
    前記他の可変入力用積演算素子および前記他の固定入力用積演算素子のそれぞれは、前記抵抗変化素子であり、
    前記可変入力部は、前記他の可変入力用積演算素子に対して前記可変信号を入力し、
    前記固定入力部は、前記他の固定入力用積演算素子に対して前記定められた信号を前記可変信号に同期させて入力し、
    前記和演算部は、前記他の可変入力用積演算素子からの出力および前記他の固定入力用積演算素子からの出力の合計値を検出する他の出力検出器をさらに備える、
    請求項1から請求項4のいずれか一項に記載の積和演算器。
  6. 請求項1から請求項5のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
  7. 請求項1から請求項5のいずれか一項に記載の積和演算器の使用方法であって、
    前記積和演算器は故障診断部をさらに備え、
    前記可変入力部が前記複数の可変入力用積演算素子に対して前記可変信号を入力しない状態、かつ、前記固定入力部が前記複数の固定入力用積演算素子に対して前記定められた信号を入力する状態で、前記出力検出器が、前記複数の固定入力用積演算素子からの出力を検出する出力検出工程と、
    前記故障診断部が、前記出力検出工程において検出された前記複数の固定入力用積演算素子からの出力に基づいて、故障している積演算素子が前記複数の固定入力用積演算素子に含まれるか否かを診断する診断工程とを含む、積和演算器の使用方法。
  8. 前記積和演算器は再学習部をさらに備え、
    前記故障している積演算素子が前記複数の固定入力用積演算素子に含まれると前記故障診断部が診断した場合に、前記再学習部が、前記複数の固定入力用積演算素子のうちの、前記故障している積演算素子以外の積演算素子の抵抗値の再設定を行う再学習工程をさらに含む、請求項7に記載の積和演算器の使用方法。
JP2019562961A 2017-12-28 2018-12-12 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法 Active JP6773239B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JPWO2019131147A1 JPWO2019131147A1 (ja) 2020-09-24
JP6773239B2 true JP6773239B2 (ja) 2020-10-21

Family

ID=67063532

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US11449742B2 (ja)
JP (1) JP6773239B2 (ja)
CN (1) CN111512312B (ja)
WO (1) WO2019131147A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117813607A (zh) * 2021-06-21 2024-04-02 Tdk株式会社 驱动电路、阵列电路以及神经形态器件

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5068603A (en) * 1987-10-07 1991-11-26 Xilinx, Inc. Structure and method for producing mask-programmed integrated circuits which are pin compatible substitutes for memory-configured logic arrays
JPH0634248B2 (ja) * 1989-12-16 1994-05-02 三菱電機株式会社 半導体神経回路網
JPH0520294A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd ニユーラルネツトワーク型情報処理装置
JP2001078435A (ja) * 1999-07-08 2001-03-23 Tdk Corp 電流制御型半導体スイッチング素子を使用した電力変換装置におけるスイッチング素子の駆動装置
US8540493B2 (en) * 2003-12-08 2013-09-24 Sta-Rite Industries, Llc Pump control system and method
JP5160304B2 (ja) 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
JP5289646B1 (ja) * 2012-01-20 2013-09-11 パナソニック株式会社 ニューラルネットワーク回路の学習方法
CN115568273A (zh) 2016-04-21 2023-01-03 Tdk株式会社 磁壁利用型模拟存储元件以及磁壁利用型模拟存储器
CN109923550B (zh) 2016-08-19 2022-11-15 索尼公司 乘数累加器
WO2019131141A1 (ja) * 2017-12-28 2019-07-04 Tdk株式会社 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Also Published As

Publication number Publication date
WO2019131147A1 (ja) 2019-07-04
US11449742B2 (en) 2022-09-20
US20200342298A1 (en) 2020-10-29
CN111512312A (zh) 2020-08-07
JPWO2019131147A1 (ja) 2020-09-24
CN111512312B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
JP6721136B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
US10892009B2 (en) Magnetic wall utilization-analog memory element and magnetic wall utilization analog memory
US10916480B2 (en) Magnetic wall utilization type analog memory device, magnetic wall utilization type analog memory, nonvolatile logic circuit, and magnetic neuro device
US10672446B2 (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
JP7013839B2 (ja) 磁壁利用型アナログメモリ、不揮発性ロジック回路及び磁気ニューロ素子
JP6747610B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の故障判断方法
JP6773239B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法
JP6819799B2 (ja) 積和演算器の使用方法
JP6876281B2 (ja) 積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200514

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200514

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200811

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6773239

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150