(57)【要約】  ニューラルネットワークに適用される場合に、バイアス項用素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器を提供する。  積和演算器（１）は、積演算部（１０）と、和演算部（１１）とを備え、積演算部（１０）は、複数の可変入力用積演算素子（１０Ａ１Ａ）、（１０Ａ１Ｂ）と、複数の固定入力用積演算素子（１０Ａ２Ａ）、（１０Ａ２Ｂ）とを備える。複数の可変入力用積演算素子（１０Ａ１Ａ）、（１０Ａ１Ｂ）および複数の固定入力用積演算素子（１０Ａ２Ａ）、（１０Ａ２Ｂ）のそれぞれは、抵抗変化素子である。積和演算器（１）は、複数の可変入力用積演算素子に対して可変信号を入力する可変入力部（１２１Ａ）、（１２１Ｂ）と、複数の固定入力用積演算素子（１０Ａ２Ａ）、（１０Ａ２Ｂ）に対して定められた信号を上記可変信号に同期させて入力する固定入力部（１２２Ａ）、（１２２Ｂ）とを備える。和演算部（１１）は、複数の可変入力用積演算素子（１０Ａ１Ａ）、（１０Ａ１Ｂ）からの出力および複数の固定入力用積演算素子（１０Ａ２Ａ）、（１０Ａ２Ｂ）からの出力の合計値を検出する出力検出器（１１Ａ）を備える。
2019131147.tif 000002
【特許請求の範囲】
【請求項１】
積演算部と、和演算部とを備え、
前記積演算部は、複数の可変入力用積演算素子と、複数の固定入力用積演算素子とを備え、
前記複数の可変入力用積演算素子および前記複数の固定入力用積演算素子のそれぞれは、抵抗変化素子であり、
前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、
前記複数の固定入力用積演算素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部とを備え、
前記和演算部は、前記複数の可変入力用積演算素子からの出力および前記複数の固定入力用積演算素子からの出力の合計値を検出する出力検出器を備える、
積和演算器。
【請求項２】
前記複数の固定入力用積演算素子は、出力電流が増加する故障が発生した場合に断線する機能を有する、
請求項１に記載の積和演算器。
【請求項３】
前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有する、
請求項１または請求項２に記載の積和演算器。
【請求項４】
前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、
前記磁気抵抗効果素子は、
磁壁を有する磁化自由層と、
磁化方向が固定された磁化固定層と、
前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有する、
請求項１または請求項２に記載の積和演算器。
【請求項５】
前記積演算部は、他の可変入力用積演算素子と、他の固定入力用積演算素子とをさらに備え、
前記他の可変入力用積演算素子および前記他の固定入力用積演算素子のそれぞれは、前記抵抗変化素子であり、
前記可変入力部は、前記他の可変入力用積演算素子に対して前記可変信号を入力し、
前記固定入力部は、前記他の固定入力用積演算素子に対して前記定められた信号を前記可変信号に同期させて入力し、
前記和演算部は、前記他の可変入力用積演算素子からの出力および前記他の固定入力用積演算素子からの出力の合計値を検出する他の出力検出器をさらに備える、
請求項１から請求項４のいずれか一項に記載の積和演算器。
【請求項６】
請求項１から請求項５のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
【請求項７】
請求項１から請求項５のいずれか一項に記載の積和演算器の使用方法であって、
前記積和演算器は故障診断部をさらに備え、
前記可変入力部が前記複数の可変入力用積演算素子に対して前記可変信号を入力しない状態、かつ、前記固定入力部が前記複数の固定入力用積演算素子に対して前記定められた信号を入力する状態で、前記出力検出器が、前記複数の固定入力用積演算素子からの出力を検出する出力検出工程と、
前記故障診断部が、前記出力検出工程において検出された前記複数の固定入力用積演算素子からの出力に基づいて、故障している積演算素子が前記複数の固定入力用積演算素子に含まれるか否かを診断する診断工程とを含む、
積和演算器の使用方法。
【請求項８】
前記積和演算器は再学習部をさらに備え、
前記故障している積演算素子が前記複数の固定入力用積演算素子に含まれると前記故障診断部が診断した場合に、前記再学習部が、前記複数の固定入力用積演算素子のうちの、前記故障している積演算素子以外の積演算素子の抵抗値の再設定を行う再学習工程をさらに含む、
請求項７に記載の積和演算器の使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法に関する。本願は、２０１７年１２月２８日に、日本に出願された特願２０１７−２５４６６２号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
従来から、ＲＲＡＭ（登録商標）ベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキームが知られている（例えば非特許文献１参照）。この文献には、アナログニューロモーフィックシステムが、組み立てられた抵抗スイッチングメモリアレイを基礎として開発される旨が記載されている。この文献では、新規なトレーニングスキームが、セグメント化されたシナプスの挙動を利用することによって、アナログシステムの性能を最適化するために提案される。また、この文献では、このスキームが、グレースケール画像認識に対して適用される。
また、神経系を模倣したニューラルネットワークを抵抗変化素子のアレイを用いて実現する研究が進められている。ニューロモーフィックデバイス（ＮＭＤ）では、前段から次の段へとウエイトをかけて足し合わせる積和演算を行う。そこで、連続的に抵抗が変化する抵抗変化素子を複数組み合わせ、それぞれの抵抗値を重みとして入力信号に対する積演算を行い、そこから出力される電流の総和をとることで和演算を行う様々なタイプの積和演算器、およびそれを利用したＮＭＤの開発がすすめられている。
ニューラルネットワークで広く用いられる多層パーセプトロンでは、入力層、１つ以上の隠れ層、出力層からなり、各層はそれぞれが適切な重み（結合の強さ）とバイアス項で結び付けられている（例えば、非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／１８３５７３号
【非特許文献】
【０００４】
【非特許文献１】Zhe Chen他著、「ＲＲＡＭベースアナログニューロモーフィックシステムにおけるグレースケール画像認識のための最適化された学習スキーム（OptimizedLearning Scheme for Grayscale Image Recognition in a RRAM Based Analog Neuromorphic System）」、２０１５年、ＩＥＥＥ、ｐ．１７．７．１−ｐ．１７．７．４
【非特許文献２】Sebastian Raschka 著、「Python機械学習プログラミング」、インプレス、ｐ．３２８−３３０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、非特許文献１には、バイアス項用素子をどのように構成すべきかについて検討されていない。バイアス項用素子の構成によっては、バイアス項用素子が故障した場合に、ニューラルネットワークの性能が大きく低下してしまうおそれがある。これは一般的に「重み」は特定の結合ごとに値を設定するのに対し、バイアス項は、その層全体の値を偏らせるために用いられるからである。【０００６】
上述した問題点に鑑み、本発明は、ニューラルネットワークに適用される場合に、バイアス項用素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様の積和演算器は、積演算部と、和演算部とを備え、前記積演算部は、複数の可変入力用積演算素子と、複数の固定入力用積演算素子とを備え、前記複数の可変入力用積演算素子および前記複数の固定入力用積演算素子のそれぞれは、抵抗変化素子であり、前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、前記複数の固定入力用積演算素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部とを備え、前記和演算部は、前記複数の可変入力用積演算素子からの出力および前記複数の固定入力用積演算素子からの出力の合計値を検出する出力検出器を備える。【０００８】
本発明の一態様の積和演算器では、前記複数の固定入力用積演算素子は、出力電流が増加する故障が発生した場合に断線する機能を有してもよい。【０００９】
本発明の一態様の積和演算器では、前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有してもよい。【００１０】
本発明の一態様の積和演算器では、前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、前記磁気抵抗効果素子は、磁壁を有する磁化自由層と、磁化方向が固定された磁化固定層と、前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有してもよい。【００１１】
本発明の一態様の積和演算器では、前記積演算部は、他の可変入力用積演算素子と、他の固定入力用積演算素子とをさらに備え、前記他の可変入力用積演算素子および前記他の固定入力用積演算素子のそれぞれは、前記抵抗変化素子であり、前記可変入力部は、前記他の可変入力用積演算素子に対して前記可変信号を入力し、前記固定入力部は、前記他の固定入力用積演算素子に対して前記定められた信号を前記可変信号に同期させて入力し、前記和演算部は、前記他の可変入力用積演算素子からの出力および前記他の固定入力用積演算素子からの出力の合計値を検出する他の出力検出器をさらに備えてもよい。【００１２】
本発明の一態様は、前記積和演算器を備えるニューロモーフィックデバイスである。【００１３】
本発明の一態様は、前記積和演算器の使用方法であって、前記積和演算器は故障診断部をさらに備え、前記可変入力部が前記複数の可変入力用積演算素子に対して前記可変信号を入力しない状態、かつ、前記固定入力部が前記複数の固定入力用積演算素子に対して前記定められた信号を入力する状態で、前記出力検出器が、前記複数の固定入力用積演算素子からの出力を検出する出力検出工程と、前記故障診断部が、前記出力検出工程において検出された前記複数の固定入力用積演算素子からの出力に基づいて、故障している積演算素子が前記複数の固定入力用積演算素子に含まれるか否かを診断する診断工程とを含む、積和演算器の使用方法である。【００１４】
本発明の一態様の積和演算器の使用方法では、前記積和演算器は再学習部をさらに備え、前記故障している積演算素子が前記複数の固定入力用積演算素子に含まれると前記故障診断部が診断した場合に、前記再学習部が、前記複数の固定入力用積演算素子のうちの、前記故障している積演算素子以外の積演算素子の抵抗値の再設定を行う再学習工程をさらに含んでもよい。
【発明の効果】
【００１５】
本発明によれば、ニューラルネットワークに適用される場合に、バイアス項用素子の故障時のニューラルネットワークの性能低下を抑制することができる積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態の積和演算器の一部の構成の一例を示す図である。
【図２】第１実施形態の積和演算器の可変入力用積演算素子として適用可能な抵抗変化素子の一例を示す斜視図である。
【図３】第１実施形態の積和演算器の固定入力用積演算素子として適用可能な抵抗変化素子の第１例を示す斜視図である。
【図４】図３に示す読み出し端子を介する磁気抵抗効果素子からの出力電流の変化などを説明するための図である。
【図５】第１実施形態の積和演算器の固定入力用積演算素子として適用可能な抵抗変化素子の第２例を示す斜視図である。
【図６】第１実施形態の積和演算器の適用例を示す図である。
【図７】第１実施形態の積和演算器の全体構成の一例を示す図である。
【図８】図１および図７に示す第１実施形態の積和演算器によって実行される処理の一例を示すフローチャートである。
【図９】図８のステップＳ３３における固定入力用積演算素子の抵抗値の再設定が行われる例を説明するための図である。
【図１０】第２実施形態の積和演算器の一部の構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照し、本発明の積和演算器、ニューロモーフィックデバイスおよび積和演算器の使用方法の実施形態について説明する。
【００１８】
＜第１実施形態＞（抵抗変化素子が磁気抵抗効果素子）
図１は第１実施形態の積和演算器１の一部の構成の一例を示す図である。
図１に示す例では、第１実施形態の積和演算器１が、積演算部１０と、和演算部１１と、入力部１２とを備えている。積演算部１０は、カラム１０Ａと、カラム１０Ｂとを備えている。入力部１２は、可変入力部１２１Ａ、１２１Ｂと、固定入力部１２２Ａ、１２２Ｂとを備えている。
図１に示す例では、積演算部１０が、２つのカラム１０Ａ、１０Ｂを備えているが、他の例では、積演算部１０が、３以上の任意の数のカラム１０Ａ、１０Ｂ、…を備えていてもよい。
【００１９】
図１に示す例では、カラム１０Ａが、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂと、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂとを備えている。カラム１０Ｂが、可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂと、固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂとを備えている。
図１に示す例では、カラム１０Ａが２つの可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂと２つの固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂとを備え、カラム１０Ｂが２つの可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂと２つの固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂとを備えているが、他の例では、カラム１０Ａが、２以外の任意の数（詳細には、複数）の可変入力用積演算素子と２以外の任意の数（詳細には、複数）の固定入力用積演算素子とを備え、カラム１０Ｂが、２以外の任意の数（詳細には、複数）の可変入力用積演算素子と２以外の任意の数（詳細には、複数）の固定入力用積演算素子を備えてもよい。
【００２０】
図１に示す例では、複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂおよび複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂのそれぞれは、読み出し端子と、書き込み端子と、共通端子とを備える抵抗変化素子である。
可変入力用積演算素子１０Ａ１Ａ、１０Ｂ１Ａの読み出し端子は、ラインＬ１１に接続されている。ラインＬ１１は、可変入力用積演算素子１０Ａ１Ａ、１０Ｂ１Ａに対して可変信号を入力する可変入力部１２１Ａに接続されている。可変入力用積演算素子１０Ａ１Ａ、１０Ｂ１Ａの書き込み端子は、ラインＬ１２に接続されている。
可変入力用積演算素子１０Ａ１Ｂ、１０Ｂ１Ｂの読み出し端子は、ラインＬ２１に接続されている。ラインＬ２１は、可変入力用積演算素子１０Ａ１Ｂ、１０Ｂ１Ｂに対して可変信号を入力する可変入力部１２１Ｂに接続されている。可変入力用積演算素子１０Ａ１Ｂ、１０Ｂ１Ｂの書き込み端子は、ラインＬ２２に接続されている。
【００２１】
固定入力用積演算素子１０Ａ２Ａ、１０Ｂ２Ａの読み出し端子は、ラインＬ３１に接続されている。ラインＬ３１は、固定入力用積演算素子１０Ａ２Ａ、１０Ｂ２Ａに対して定められた信号である固定信号を入力する固定入力部１２２Ａに接続されている。固定入力用積演算素子１０Ａ２Ａ、１０Ｂ２Ａの書き込み端子は、ラインＬ３２に接続されている。
固定入力用積演算素子１０Ａ２Ｂ、１０Ｂ２Ｂの読み出し端子は、ラインＬ４１に接続されている。ラインＬ４１は、固定入力用積演算素子１０Ａ２Ｂ、１０Ｂ２Ｂに対して定められた信号である固定信号を入力する固定入力部１２２Ｂに接続されている。固定入力用積演算素子１０Ａ２Ｂ、１０Ｂ２Ｂの書き込み端子は、ラインＬ４２に接続されている。
固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂに対して入力される固定信号は、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂに対して入力される可変信号に同期させられる。
【００２２】
可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの共通端子は、ラインＭ１に接続されている。可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂの共通端子は、ラインＭ２に接続されている。
和演算部１１は、出力検出器１１Ａ、１１Ｂを備えている。出力検出器１１Ａは、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂからの出力および固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力の合計値を検出する。出力検出器１１Ｂは、可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂからの出力および固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂからの出力の合計値を検出する。出力検出器１１ＡはラインＭ１に配置されている。出力検出器１１ＢはラインＭ２に配置されている。
【００２３】
図１に示す例では、出力検出器１１Ａが、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力電流値を検出し、出力検出器１１Ｂが、可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂからの出力電流値を検出する。他の例では、出力検出器１１Ａが、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの出力を電荷として検出し、出力検出器１１Ｂが、可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂの出力を電荷として検出してもよい。
【００２４】
本発明において積演算素子として用いられる抵抗変化素子は、外部からの刺激（電流、電圧、磁場など）に対して可逆的に電気抵抗が変化する素子である。かかる抵抗変化素子としては例えば、抵抗変化型メモリ（ＲＲＡＭ）素子、相変化メモリ（ＰＣＲＡＭ）素子、異方性磁気抵抗効果（ＡＭＲ）素子、トンネル磁気抵抗効果（ＴＭＲ）素子、巨大磁気抵抗効果（ＧＭＲ）素子などが挙げられる。
【００２５】
図２は第１実施形態の積和演算器１の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂとして適用可能な抵抗変化素子の一例を示す斜視図である。
図２に示す例では、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Ａである。
磁気抵抗効果素子Ａは、磁壁ＤＷを有する磁化自由層Ａ１と、磁化方向が固定された磁化固定層Ａ２と、非磁性層Ａ３とを有する。非磁性層Ａ３は、磁化自由層Ａ１と磁化固定層Ａ２とに挟まれている。磁化自由層Ａ１は、磁壁ＤＷの一方の側に第１領域Ａ１１を有し、磁壁ＤＷの他方の側に第２領域Ａ１２を有する。第１領域Ａ１１には、書き込み端子ＡＡが設けられている。第２領域Ａ１２には、共通端子ＡＢが設けられている。磁化固定層Ａ２には、読み出し端子ＡＣが設けられている。
【００２６】
磁壁ＤＷの移動量（移動距離）は、書き込み端子ＡＡと共通端子ＡＢとの間に流す書き込み電流の大きさ、時間を調整することによって可変に制御することができる。書き込み電流の大きさ、時間は例えば、パルス数あるいはパルス幅によって磁壁ＤＷの移動量（移動距離）を設定することもできる。磁壁ＤＷの駆動（移動）によって磁化固定層Ａ２と磁化自由層Ａ１のそれぞれの磁化方向が平行な（あるいは反平行な）部分の面積が連続的に変化すると、磁化方向が平行な部分の面積率と磁化方向が反平行な部分の面積率との比が連続的に変化し、磁気抵抗効果素子において線形に近い抵抗変化が得られる。
また、データの読み出しは、読み出し端子ＡＣと共通端子ＡＢとの間に電流を流して、磁化方向が平行な部分の面積率と磁化方向が反平行な部分の面積率との比に応じた抵抗を検出することで行うことができる（例えば、特許文献１参照）。
【００２７】
［磁化固定層Ａ２］
磁化固定層Ａ２は、磁化が第１の方向（例えば図２の左向き）に配向し、固定された層である。ここで、磁化が固定されるとは、書き込み電流を用いた書き込み前後において磁化方向が変化しない（磁化が固定されている）ことを意味する。
【００２８】
図２に示す例では、磁化固定層Ａ２は磁化が面内磁気異方性（面内磁化容易軸）を有する面内磁化膜である。磁化固定層Ａ２は、面内磁化膜に限られず、垂直磁気異方性（垂直磁化容易軸）を有する垂直磁化膜であってもよい。
【００２９】
磁化固定層Ａ２が面内磁化膜であると、高いＭＲ比（磁気抵抗変化率）を有し、読み込み時にスピントランスファートルク（ＳＴＴ）による影響を受けにくく、読み取り電圧を大きくできる。一方、素子を微小化したい場合には磁気異方性が大きく、反磁界が小さい、垂直磁化膜を用いることが好ましい。
【００３０】
磁化固定層Ａ２には、公知の材料を用いることができる。例えば、Ｃｒ、Ｍｎ、Ｃｏ、Ｆｅ及びＮｉからなる群から選択される金属及びこれらの金属を１種以上含み強磁性を示す合金を用いることができる。またこれらの金属と、Ｂ、Ｃ、及びＮのうちの１種以上の元素とを含む合金を用いることもできる。具体的には、Ｃｏ−ＦｅやＣｏ−Ｆｅ−Ｂが挙げられる。
【００３１】
また磁化固定層Ａ２には、Ｃｏ２ＦｅＳｉなどのホイスラー合金を用いることもできる。ホイスラー合金は、Ｘ２ＹＺの化学組成をもつ金属間化合物を含み、Ｘは、周期表上でＣｏ、Ｆｅ、Ｎｉ、あるいはＣｕ族の遷移金属元素または貴金属元素であり、Ｙは、Ｍｎ、Ｖ、ＣｒあるいはＴｉ族の遷移金属でありＸの元素種をとることもでき、Ｚは、ＩＩＩ族からＶ族の典型元素である。例えば、Ｃｏ２ＦｅＳｉ、Ｃｏ２ＭｎＳｉやＣｏ２Ｍｎ１−ａＦｅａＡｌｂＳｉ１−ｂなどが挙げられる。
【００３２】
また磁化固定層Ａ２は強磁性層、非磁性層から成るシンセティック構造、あるいは反強磁性層、強磁性層、非磁性層から成るシンセティック構造であってもよい。後者においてはシンセティック構造において磁化固定層Ａ２の磁化方向は反強磁性層によって強く保持される。そのため、磁化固定層Ａ２の磁化が外部からの影響を受けにくくなる。
【００３３】
磁化固定層Ａ２の磁化をＸＹ面内に配向させる（磁化固定層Ａ２を面内磁化膜にする）場合は、例えば、ＮｉＦｅを用いることが好ましい。一方で磁化固定層Ａ２の磁化をＺ方向に配向させる（磁化固定層Ａ２を垂直磁化膜にする）場合は、例えば、Ｃｏ／Ｎｉ積層膜、Ｃｏ／Ｐｔ積層膜等を用いることが好ましい。例えば、磁化固定層Ａ２を［Ｃｏ（０．２４ｎｍ）／Ｐｔ（０．１６ｎｍ）］６／Ｒｕ（０．９ｎｍ）／［Ｐｔ（０．１６ｎｍ）／Ｃｏ（０．１６ｎｍ）］４／Ｔａ（０．２ｎｍ）／ＦｅＢ（１．０ｎｍ）とすると、垂直磁化膜となる。
【００３４】
［非磁性層Ａ３］
非磁性層Ａ３は、磁化固定層Ａ２の下面に設けられている。磁気抵抗効果素子Ａは、非磁性層Ａ３を介して磁化固定層Ａ２に対する磁化自由層Ａ１の磁化状態の変化を抵抗値変化として読み出す。すなわち、磁化固定層Ａ２、非磁性層Ａ３及び磁化自由層Ａ１は磁気抵抗効果素子Ａとして機能し、非磁性層Ａ３が絶縁体からなる場合はトンネル磁気抵抗（ＴＭＲ）素子と似た構成であり、非磁性層２が金属からなる場合は巨大磁気抵抗効果（ＧＭＲ）素子と似た構成である。
【００３５】
非磁性層Ａ３の材料としては、磁気抵抗効果素子Ａの非磁性層に用いることができる公知の材料を用いることができる。非磁性層Ａ３が絶縁体からなる場合（トンネルバリア層である場合）、その材料としてＡｌ２Ｏ３、ＳｉＯ２、ＭｇＯ、ＭｇＡｌ２Ｏ４、ＺｎＡｌ２Ｏ４、ＭｇＧａ２Ｏ４、ＺｎＧａ２Ｏ４、ＭｇＩｎ２Ｏ４、ＺｎＩｎ２Ｏ４、及び、これらの材料の多層膜や混合組成膜等を用いることができる。またこれらの他にも、Ａｌ、Ｓｉ、Ｍｇの一部が、Ｚｎ、Ｂｅ等に置換された材料等も用いることができる。これらの中でも、ＭｇＯやＭｇＡｌ２Ｏ４はコヒーレントトンネルが実現できる材料であるため、磁気抵抗比（ＭＲ比）を大きくとることができる。一方で、非磁性層２が金属からなる場合は、その材料としてＣｕ、Ａｌ、Ａｇ等を用いることができる。
非磁性層Ａ３が絶縁体からなる場合（トンネルバリア層である場合）、その厚みは、例えば２．５ｎｍ以上である。
【００３６】
［磁化自由層Ａ１］
磁化自由層Ａ１は磁壁駆動型（移動型）ＭＲＡＭの磁壁駆動層に相当する。
磁化自由層Ａ１は強磁性体材料からなり、その内部の磁化の向きは反転可能である。磁化自由層Ａ１は、磁化が磁化固定層Ａ２と逆向きの第２の方向に配向した第１領域Ａ１１と、磁化が第１の方向と同じ向きに配向した第２領域Ａ１２と、これらの領域の界面をなす磁壁ＤＷとを有する。磁壁ＤＷを挟んで第１領域Ａ１１と第２領域Ａ１２の磁化の向きは反対である。磁壁ＤＷは、磁化自由層Ａ１における第１領域Ａ１１と第２領域Ａ１２の構成比率が変化することで移動する。
【００３７】
磁化自由層Ａ１の材料には、公知の材料を用いることができ、特に軟磁性材料を適用できる。例えば、Ｃｒ、Ｍｎ、Ｃｏ、Ｆｅ及びＮｉからなる群から選択される金属、これらの金属を１種以上含む合金、これらの金属とＢ、Ｃ、及びＮのうちの１種以上の元素とが含まれる合金等を用いることができる。具体的には、Ｃｏ−Ｆｅ、Ｃｏ−Ｆｅ−Ｂ、Ｎｉ−Ｆｅが、磁化自由層Ａ１の材料として挙げられる。
【００３８】
磁化自由層Ａ１の材料には、飽和磁化が小さい材料を用いることもできる。例えば、（ＭｎＧａ）Ａｓや（ＩｎＦｅ）Ａｓ、あるいはＣｏ／Ｔｂ多層膜やＧｄＦｅＣｏのように飽和磁化が小さい材料を用いると、小さい電流密度で磁化自由層Ａ１の磁壁ＤＷを駆動させることができる。また、これらの材料を用いると、磁壁ＤＷの駆動速度が遅くなる。
【００３９】
ＮｉＦｅのような磁気異方性が弱い材料は、磁壁ＤＷの駆動速度が速く、１００ｍ／ｓｅｃ以上の速度で磁壁ＤＷが動作する。つまり、磁壁ＤＷは１０ｎｓｅｃのパルスで、１μｍの距離を移動する。したがって、磁化自由層Ａ１を素子内でアナログ的に動かす場合には、高価な半導体回路を用いて微小なパルスを印加するか、集積度を犠牲にして磁化自由層を十分長くするなどの対応が必要となる。これに対し、磁壁ＤＷの駆動速度が遅い材料の場合には、十分長いパルス電流を印加する場合や磁化自由層Ａ１の長さが短い場合でも、アナログメモリを形成することが可能である。
【００４０】
磁化自由層Ａ１を垂直磁化膜とする場合、Ｃｏ／Ｐｔ多層膜、Ｃｏ／Ｐｄ多層膜、及びＣｏＣｒＰｔ合金膜からなる群から選択された垂直磁化膜が好ましい。また、Ｍｎ３Ｘ（Ｘ＝Ｇａ，Ｇｅ）の垂直磁化膜やＣｏ／Ｎｉなどの多層膜による垂直磁化膜を用いることもできる。これらの材料は磁壁駆動のための電流密度が小さくても磁壁ＤＷを駆動させることが可能である。
【００４１】
磁化自由層Ａ１が長手方向に延在する長さは６０ｎｍ以上であることが好ましい。６０ｎｍ未満では単磁区になりやすく、磁化自由層Ａ１内に磁壁ＤＷが形成されにくい。
【００４２】
磁化自由層Ａ１の厚さは磁壁駆動層として機能する限り、特に制限はないが、例えば、２ｎｍ〜６０ｎｍとすることができる。磁化自由層Ａ１の厚さが６０ｎｍ以上になると、積層方向に磁壁が形成される可能性が高まる。ただし、積層方向に磁壁が形成されるか否かは、磁化自由層Ａ１の形状異方性とのバランスによって生じる。磁化自由層Ａ１の厚さが６０ｎｍ未満であれば、磁壁ＤＷができることは考えにくい。
【００４３】
磁化自由層Ａ１は、層の側面に磁壁ＤＷの移動を止める磁壁ピン止め部を有してもよい。例えば、磁化自由層Ａ１の磁壁ＤＷの移動を止めたい位置に、凹凸、溝、膨らみ、くびれ、切り欠きなどを設けると、磁壁の移動を止める（ピンする）ことができる。磁壁ピン止め部を有すると、閾値以上の電流を流さないとそれ以上磁壁が移動しない構成とすることができ、出力信号をアナログ的ではなく、多値化し易くなる。
【００４４】
例えば、磁壁ピン止め部を所定の距離ごとに形成することにより、磁壁ＤＷをより安定的に保持することができ、安定的な多値記録を可能にし、より安定的に多値化された出力信号を読み出すことを可能にする。
【００４５】
図２に示す例では、磁壁ＤＷを形成するために、磁化自由層Ａ１のうち、平面視において磁化固定層Ａ２に重ならない両端部のそれぞれに、第１領域Ａ１１の磁化と同じ第１の方向の磁化を有する第１磁化供給層Ａ４、及び、第２領域Ａ１２の磁化と同じ第２の方向の磁化を有する第２磁化供給層Ａ５を有する。
第１磁化供給層Ａ４及び第２磁化供給層Ａ５の材料としては、磁化固定層Ａ２に使える強磁性材料と同じ材料を用いることができる。
【００４６】
図２に示す例では、磁壁ＤＷを形成するために、磁化自由層Ａ１の両端部のいずれにも磁化が固定された層として第１磁化供給層Ａ４及び第２磁化供給層Ａ５を用いたが、いずれか一方又は両方に、磁化自由層Ａ１に接すると共に磁化自由層Ａ１の長手方向に対して交差する方向に延在するスピン軌道トルク（ＳＯＴ）配線を用いてもよい。スピン軌道トルク配線は、電流が流れるとスピンホール効果によって純スピン流が生成される材料からなるものである。
かかる構成を有することにより、磁化が固定された層としての磁化供給層を設置することがなくても、スピン軌道トルク配線の両端に電流を流すことにより磁化自由層Ａ１に磁壁を導入することができ、また、スピン軌道トルク配線を介して磁化自由層Ａ１に電流を流すことで、磁壁を移動させることができる。
【００４７】
また、図２に示す例では、磁壁ＤＷを形成するために、磁化自由層Ａ１の両端部のいずれにも磁化が固定された層として第１磁化供給層Ａ４及び第２磁化供給層Ａ５を用いたが、いずれか一方又は両方に、磁化自由層Ａ１と電気的に絶縁されていると共に、磁化自由層Ａ１に対して交差する方向に延在する磁場印加配線を用いてもよい。磁場印加配線に電流を流すことによりアンペールの法則により磁場が発生する。磁場印加配線に流す電流の向きによって、発生する磁場の向きを逆向きにすることができる。そのため、磁化自由層Ａ１の端部に面内磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層Ａ１の端部に互いに逆向きの面内磁化方向のうちの一方の面内磁化方向の磁化を供給することができる。また、磁化自由層Ａ１の端部に垂直磁化を供給可能に配置することによって、磁場印加配線に流す電流の向きに応じて磁化自由層Ａ１の端部に互いに逆向きの垂直磁化方向のうちの一方の垂直磁化方向の磁化を供給することができる。
【００４８】
また、図２に示す例では、磁壁ＤＷを形成するために、磁化自由層Ａ１の両端部のいずれにも磁化が固定された層として第１磁化供給層Ａ４及び第２磁化供給層Ａ５を用いたが、いずれか一方又は両方に、磁化自由層Ａ１に絶縁層を介して接続された電圧印加端子を用いてもよい。磁化固定層Ａ２と電圧印加端子との間に電圧を印加すると、磁化自由層Ａ１の磁化の一部が電圧の影響を受ける。例えば、電圧印加端子から電圧をパルスで印加すると磁化の一部は、電圧印加時には磁化自由層Ａ１の磁化の方向に対して直交する方向に配向し、電圧印加が止まったタイミングでは磁化自由層Ａ１の磁化は第１の方向か又はその逆方向の第２の方向に配向する。この直交する方向に配向した磁化が第１の方向か又はその逆方向の第２の方向に倒れるかは等確率であり、パルス電圧を印加するタイミング、回数、周期を調整することで、磁化の一部を第１の方向から第２の方向に配向させることができる。
【００４９】
磁化自由層Ａ１と非磁性層Ａ３の間に磁気結合層を設置してもよい。磁気結合層とは、磁化自由層Ａ１の磁化状態を転写する層である。磁化自由層Ａ１の主たる機能は磁壁を駆動させるための層であり、磁化固定層Ａ１と非磁性層Ａ２を介して生じる磁気抵抗効果に適した材料を選択できるとは限らない。一般的に、非磁性層Ａ２を用いたコヒーレントトンネル効果を生じさせるためには、磁化固定層Ａ１や磁気結合層はＢＣＣ構造の強磁性材料が良いことが知られている。特に、磁化固定層Ａ１や磁気結合層の材料として、Ｃｏ−Ｆｅ−Ｂの組成の材料がスパッタによって作成した際に大きな出力が得られることが知られている。
【００５０】
図３は第１実施形態の積和演算器１の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂとして適用可能な抵抗変化素子の第１例を示す斜視図である。
図３に示す例では、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Ａである。
磁気抵抗効果素子Ａは、磁壁ＤＷを有する磁化自由層Ａ１と、磁化方向が固定された磁化固定層Ａ２と、非磁性層Ａ３とを有する。非磁性層Ａ３は、磁化自由層Ａ１と磁化固定層Ａ２とに挟まれている。磁化自由層Ａ１は、磁壁ＤＷの一方の側に第１領域Ａ１１を有し、磁壁ＤＷの他方の側に第２領域Ａ１２を有する。第１領域Ａ１１には、書き込み端子ＡＡが設けられている。第２領域Ａ１２には、共通端子ＡＢが設けられている。磁化固定層Ａ２には、読み出し端子ＡＣが設けられている。
【００５１】
図３に示す例では、読み出し端子ＡＣが、フューズ部ＡＣ１と、フューズ部ＡＣ１の両側に配置された配線部ＡＣ２、ＡＣ３とを備えている。磁気抵抗効果素子Ａからの出力電流が読み出し端子ＡＣを介して出力される場合、出力電流は、配線部ＡＣ２、フューズ部ＡＣ１、配線部ＡＣ３の順（つまり、図３の上向き）に、フューズ部ＡＣ１と配線部ＡＣ２、ＡＣ３とを流れるか、あるいは、配線部ＡＣ３、フューズ部ＡＣ１、配線部ＡＣ２の順（つまり、図３の下向き）に、フューズ部ＡＣ１と配線部ＡＣ２、ＡＣ３とを流れる。
【００５２】
図３に示す例では、出力電流が流れる方向に垂直なフューズ部ＡＣ１の断面積は、出力電流が流れる方向に垂直な配線部ＡＣ２、ＡＣ３の断面積よりも小さく設定されている。
つまり、フューズ部ＡＣ１は、配線部ＡＣ２、ＡＣ３よりも断線しやすく構成されている。
図３に示す例では、フューズ部ＡＣ１の断面積を配線部ＡＣ２、ＡＣ３の断面積よりも小さくすることによって、フューズ部ＡＣ１が、配線部ＡＣ２、ＡＣ３よりも断線しやすく構成されているが、他の例では、フューズ部ＡＣ１をミアンダ型に形成したり、網目状に形成したりすることによって、フューズ部ＡＣ１を配線部ＡＣ２、ＡＣ３よりも断線しやすく構成してもよい。
さらに他の例では、フューズ部ＡＣ１の材料の融点を配線部ＡＣ２、ＡＣ３の材料の融点よりも低くすることによって、フューズ部ＡＣ１を配線部ＡＣ２、ＡＣ３よりも断線しやすく構成してもよい。
【００５３】
また、図３に示す例では、フューズ部ＡＣ１は、磁化固定層Ａ２よりも読み出し端子ＡＣの側（図３の上側）に配置されている。そのため、フューズ部ＡＣ１の断線の影響が書き込み端子ＡＡの側におよんでしまうおそれを抑制することができる。
【００５４】
つまり、図３に示す例では、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂ（磁気抵抗効果素子Ａ）は、出力電流が増加する故障が発生した場合に断線する機能を有する。
【００５５】
図４は図３に示す読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流の変化などを説明するための図である。図４において、縦軸は、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流を示す。横軸は、磁気抵抗効果素子Ａの状態（抵抗値の大きさ）を示す。
磁気抵抗効果素子Ａの正常動作時であって、磁気抵抗効果素子Ａの抵抗値が最も高い時には、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が最小値Ｍｉｎになる。
磁気抵抗効果素子Ａの正常動作時には、磁気抵抗効果素子Ａの抵抗値が低くなるに従って、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が大きくなる。
磁気抵抗効果素子Ａの正常動作時であって、磁気抵抗効果素子Ａの抵抗値が最も低い時には、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が最大値Ｍａｘになる。
【００５６】
図４に示す例では、磁気抵抗効果素子Ａの正常動作時に、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が値Ｉ１になる。
読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が増加する故障が磁気抵抗効果素子Ａに発生すると、図４の上向きの矢印で示すように、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が増加する。
【００５７】
図４に示す例では、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が値Ｉ２まで増加すると、磁気抵抗効果素子Ａの読み出し端子ＡＣのフューズ部ＡＣ１が断線する。その結果、図４の下向きの矢印で示すように、読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流が、値Ｉ３まで減少する（詳細には、ゼロまで減少する）。
つまり、図４に示す例では、フューズ部ＡＣ１が断線した後における読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流は、磁気抵抗効果素子Ａの正常動作時における読み出し端子ＡＣを介する磁気抵抗効果素子Ａからの出力電流よりも減少する。
【００５８】
図５は第１実施形態の積和演算器１の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂとして適用可能な抵抗変化素子の第２例を示す斜視図である。
図５に示す例では、図３に示す例と同様に、抵抗変化素子が、磁気抵抗効果を示す磁気抵抗効果素子Ａである。
図５に示す例では、図３に示す例とは異なり、共通端子ＡＢが、フューズ部ＡＢ１と、フューズ部ＡＢ１の両側に配置された配線部ＡＢ２、ＡＢ３とを備えている。磁気抵抗効果素子Ａからの出力電流が共通端子ＡＢを介して出力される場合、出力電流は、配線部ＡＢ２、フューズ部ＡＢ１、配線部ＡＢ３の順（つまり、図５の右向き）に、フューズ部ＡＢ１と配線部ＡＢ２、ＡＢ３とを流れるか、あるいは、配線部ＡＢ３、フューズ部ＡＢ１、配線部ＡＢ２の順（つまり、図５の左向き）に、フューズ部ＡＢ１と配線部ＡＢ２、ＡＢ３とを流れる。
【００５９】
図５に示す例では、出力電流が流れる方向に垂直なフューズ部ＡＢ１の断面積は、出力電流が流れる方向に垂直な配線部ＡＢ２、ＡＢ３の断面積よりも小さく設定されている。
つまり、フューズ部ＡＢ１は、配線部ＡＢ２、ＡＢ３よりも断線しやすく構成されている。
図５に示す例では、フューズ部ＡＢ１の断面積を配線部ＡＢ２、ＡＢ３の断面積よりも小さくすることによって、フューズ部ＡＢ１が、配線部ＡＢ２、ＡＢ３よりも断線しやすく構成されているが、他の例では、フューズ部ＡＢ１をミアンダ型に形成したり、網目状に形成したりすることによって、フューズ部ＡＢ１を配線部ＡＢ２、ＡＢ３よりも断線しやすく構成してもよい。
さらに他の例では、フューズ部ＡＢ１の材料の融点を配線部ＡＢ２、ＡＢ３の材料の融点よりも低くすることによって、フューズ部ＡＢ１を配線部ＡＢ２、ＡＢ３よりも断線しやすく構成してもよい。
【００６０】
つまり、図５に示す例では、図３に示す例と同様に、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂ（磁気抵抗効果素子Ａ）は、出力電流が増加する故障が発生した場合に断線する機能を有する。
【００６１】
図６は第１実施形態の積和演算器１の適用例を示す図であり、３−３−３の多層パーセプトロンと呼ばれるネットワークへの適用例を示す図である。図７は第１実施形態の積和演算器１の全体構成の一例を示す図である。
図６に示す例では、第１実施形態の積和演算器１が、ニューロモーフィックデバイス１００に適用されている。ニューロモーフィックデバイス１００は、入力層１０１と、隠れ層１０２と、出力層１０３と、第１実施形態の積和演算器１と、積和演算器２とを備えている。第１実施形態の積和演算器１は、複数（３個）の可変入力用積演算素子と複数（２個）の固定入力用積演算素子とを有する。一方、積和演算器２は、複数（３個）の可変入力用積演算素子と１個の固定入力用積演算素子とを有する。
入力層１０１は、例えば５つのノード１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄ、１０１Ｅを備えている。このうち、ノード１０１Ａ及び１０１Ｂは図１に示す固定入力部に相当し、１に設定されている。隠れ層１０２は、例えば４つのノード１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄを備えている。このうち、ノード１０２Ａは１に設定されている。出力層１０３は、例えば３つのノード１０３Ａ、１０３Ｂ、１０３Ｃを備えている。
積和演算器１は、入力層１０１と隠れ層１０２との間に配置され、入力層１０１の４つのノード１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄと、隠れ層１０２の３つのノード１０２Ａ、１０２Ｂ、１０２Ｃとを接続する。図１に示す積和演算器１において、入力層１０１のノード１０１Ａ及び１０１Ｂのそれぞれと隠れ層１０２の各ノード１０２Ｂ〜１０２Ｄのそれぞれとの間は、図１に示すような固定入力用積演算子１０Ａ２Ａ等で接続されており、隠れ層１０２の各ノードにおいては、入力信号に重みが乗算された値とバイアス（以下、定数「ｂ１」とする）との和が出力される。
隠れ層１０２と出力層１０３との間には、積和演算器２が配置されている。なお、積和演算器２は、複数（３個）の可変入力用積演算素子を備えるが、固定入力用積演算素子が複数ではない（１個）ので、本発明の積和演算器ではない。
隠れ層１０２は、例えば活性化関数（例えばシグモイド関数）を使用する。
【００６２】
本発明者は、鋭意研究において、ニューラルネットワークデバイスにおいて、積和演算を行う際にバイアス項を入れることによってニューラルネットワークの判別性能を向上できることを見い出した。
詳細には、本発明者は、複数の積演算素子として抵抗変化素子が用いられる積和演算器では、バイアス項を表現するために固定入力用積演算素子を用いればよいことを見い出した。
また、本発明者は、重みを表現する可変入力用積演算素子の故障がニューラルネットワークの判別性能に与える影響よりも、バイアス項を表現する固定入力用積演算素子の故障がニューラルネットワークの判別性能に与える影響の方が大きくなることを見い出した。
これは一般的に「重み」は特定の結合ごとに値を設定するのに対し、バイアス項は、その層全体の値を偏らせるために用いられるからである。故障したバイアス項の積演算素子（抵抗変化素子）に電流が集中して大量に流れることによって、他の積演算素子の重み（他の積演算素子からの電流）が回路上で見えなくなるおそれがある。
また、本発明者は、バイアス項を表現する複数の固定入力用積演算素子を１つのカラムに設けることによって、１つの固定入力用積演算素子が故障した場合にニューラルネットワークの判別性能が完全に失われることを防ぐことができ、ニューラルネットワークの判別性能の低下を抑制できることを見い出した。
その点に鑑み、第１実施形態の積和演算器１では、図１に示すように、カラム１０Ａに複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂが設けられると共に、カラム１０Ｂに複数の固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂが設けられている。また、第１実施形態の積和演算器１は、図７に示すように、故障診断部１３を備えている。
【００６３】
また、本発明者は、１つのカラムに備えられている複数の固定入力用積演算素子のうちの１つの固定入力用積演算素子が故障した場合であっても、再学習を行うことによってニューラルネットワークの判別性能を回復できることを見い出した。
その点に鑑み、第１実施形態の積和演算器１は、図７に示すように、再学習部１４を備えている。
【００６４】
図８は図１および図７に示す第１実施形態の積和演算器１によって実行される処理の一例を示すフローチャートである。
図８に示す例では、積和演算器１が、学習ステップＳ１０と、故障診断ステップＳ２０と、再学習ステップＳ３０（再学習工程）とを実行する。学習ステップＳ１０には、ステップＳ１１が含まれる。故障診断ステップＳ２０には、ステップＳ２１〜Ｓ２４が含まれる。再学習ステップＳ３０には、ステップＳ３１〜Ｓ３３が含まれる。
学習ステップＳ１０では、例えば公知のバックプロパゲーション学習が行われる。詳細には、ステップＳ１１では、積和演算器１が、カラム１０Ａのバイアス項を表現する固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの抵抗値を設定する。
【００６５】
次いで、積和演算器１の故障診断部１３が、故障診断ステップＳ２０を実行する。詳細には、ステップＳ２１では、積和演算器１が、可変入力部１２１Ａから可変入力用積演算素子１０Ａ１Ａ（および可変入力用積演算素子１０Ｂ１Ａ）への可変信号の入力をオフにする。つまり、可変入力用積演算素子１０Ａ１Ａには、可変入力部１２１Ａからの可変信号が入力されなくなる。
また、ステップＳ２１では、積和演算器１が、可変入力部１２１Ｂから可変入力用積演算素子１０Ａ１Ｂ（および可変入力用積演算素子１０Ｂ１Ｂ）への可変信号の入力をオフにする。つまり、可変入力用積演算素子１０Ａ１Ｂには、可変入力部１２１Ｂからの可変信号が入力されなくなる。
また、ステップＳ２１では、積和演算器１が、固定入力部１２２Ａから固定入力用積演算素子１０Ａ２Ａ（および固定入力用積演算素子１０Ｂ２Ａ）への固定信号の入力をオンにする。つまり、固定入力用積演算素子１０Ａ２Ａには、固定信号が固定入力部１２２Ａから入力される。
また、ステップＳ２１では、積和演算器１が、固定入力部１２２Ｂから固定入力用積演算素子１０Ａ２Ｂ（および固定入力用積演算素子１０Ｂ２Ｂ）への固定信号の入力をオンにする。つまり、固定入力用積演算素子１０Ａ２Ｂには、固定信号が固定入力部１２２Ｂから入力される。
【００６６】
次いで、ステップＳ２２（出力検出工程）では、出力検出器１１Ａが、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂからの出力および固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力の合計値を検出する。上述したように、可変入力用積演算素子１０Ａ１Ａには、可変入力部１２１Ａからの可変信号が入力されず、可変入力用積演算素子１０Ａ１Ｂには、可変入力部１２１Ｂからの可変信号が入力されない。そのため、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂからの出力はゼロである。
つまり、ステップＳ２２（出力検出工程）では、可変入力部１２１Ａ、１２１Ｂが可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂに対して可変信号を入力しない状態、かつ、固定入力部１２２Ａ、１２２Ｂが固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに対して固定信号を入力する状態で、出力検出器１１Ａが、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力の合計値を検出する。
【００６７】
次いで、ステップＳ２３（診断工程）では、故障診断部１３が、出力検出器１１Ａの検出値に基づいて、故障している固定入力用積演算素子が固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに含まれるか否かを診断する。故障している固定入力用積演算素子が固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに含まれない場合には、ステップＳ２１に戻る。
一方、故障している固定入力用積演算素子が固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに含まれる場合には、ステップＳ２４に進む。
【００６８】
ステップＳ２４では、積和演算器１が、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのうちの故障している固定入力用積演算素子を特定する。
ステップＳ２４においては、固定入力用積演算素子１０Ａ２Ａが故障しているか否かを診断するために、例えば、可変入力部１２１Ａ、１２１Ｂが可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂに対して可変信号を入力しない状態、かつ、固定入力部１２２Ｂが固定入力用積演算素子１０Ａ２Ｂに対して固定信号を入力しない状態、かつ、固定入力部１２２Ａが固定入力用積演算素子１０Ａ２Ａに対して固定信号を入力する状態で、出力検出器１１Ａが、固定入力用積演算素子１０Ａ２Ａからの出力を検出する。また、故障診断部１３は、出力検出器１１Ａの検出値に基づいて、固定入力用積演算素子１０Ａ２Ａが故障しているか否かを診断する。
同様に、ステップＳ２４においては、固定入力用積演算素子１０Ａ２Ｂが故障しているか否かを診断するために、例えば、可変入力部１２１Ａ、１２１Ｂが可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂに対して可変信号を入力しない状態、かつ、固定入力部１２２Ａが固定入力用積演算素子１０Ａ２Ａに対して固定信号を入力しない状態、かつ、固定入力部１２２Ｂが固定入力用積演算素子１０Ａ２Ｂに対して固定信号を入力する状態で、出力検出器１１Ａが、固定入力用積演算素子１０Ａ２Ｂからの出力を検出する。また、故障診断部１３は、出力検出器１１Ａの検出値に基づいて、固定入力用積演算素子１０Ａ２Ｂが故障しているか否かを診断する。
【００６９】
次いで、積和演算器１の再学習部１４が、再学習ステップＳ３０（再学習工程）を実行する。再学習ステップＳ３０では、例えば公知のバックプロパゲーション学習が行われる。詳細には、ステップＳ３１では、再学習部１４は、上述したステップＳ２４の診断結果に基づいて、固定入力用積演算素子１０Ａ２Ａが故障しているか否かを判定する。固定入力用積演算素子１０Ａ２Ａが故障している場合には、ステップＳ３２に進む。一方、固定入力用積演算素子１０Ａ２Ｂが故障している場合には、ステップＳ３３に進む。
【００７０】
ステップＳ３２では、再学習部１４が、カラム１０Ａのバイアス項が固定入力用積演算素子１０Ａ２Ｂのみによって表現されるように、固定入力用積演算素子１０Ａ２Ｂの抵抗値を再設定する。
つまり、ステップＳ３２では、再学習部１４が、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのうちの、故障している固定入力用積演算素子１０Ａ２Ａ以外の固定入力用積演算素子１０Ａ２Ｂの抵抗値の再設定を行う。
【００７１】
ステップＳ３３では、再学習部１４が、カラム１０Ａのバイアス項が固定入力用積演算素子１０Ａ２Ａのみによって表現されるように、固定入力用積演算素子１０Ａ２Ａの抵抗値を再設定する。
つまり、ステップＳ３３では、再学習部１４が、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのうちの、故障している固定入力用積演算素子１０Ａ２Ｂ以外の固定入力用積演算素子１０Ａ２Ａの抵抗値の再設定を行う。
【００７２】
図９は、図８のステップＳ３３における固定入力用積演算素子１０Ａ２Ａの抵抗値の再設定が行われる例を説明するための図である。詳細には、図９（Ａ）は固定入力用積演算素子１０Ａ２Ｂが故障する前の状態を示している。図９（Ｂ）は固定入力用積演算素子１０Ａ２Ｂが故障し、固定入力用積演算素子１０Ａ２Ａの抵抗値の再設定が行われた後の状態を示している。
【００７３】
図９（Ａ）および図９（Ｂ）に示す例では、第１実施形態の積和演算器１がニューラルネットワークに適用される場合における重みａが、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂの抵抗値によって設定される。固定入力用積演算素子１０Ａ２Ｂが故障する前においては、図９（Ａ）に示すように、バイアス項ｂ１が、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの抵抗値によって設定される。固定入力用積演算素子１０Ａ２Ｂが故障した後には、上述したステップＳ３３において、再学習部１４によって固定入力用積演算素子１０Ａ２Ａの抵抗値の再設定が行われる。その結果、図９（Ｂ）に示すように、バイアス項ｂ２が、固定入力用積演算素子１０Ａ２Ａの抵抗値のみによって設定される。つまり、図９（Ａ）および図９（Ｂ）に示す例では、固定入力用積演算素子１０Ａ２Ｂの故障時に、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのうちの、固定入力用積演算素子１０Ａ２Ｂ以外の固定入力用積演算素子１０Ａ２Ａに再分配されたバイアス項ｂ２が設定される。
【００７４】
つまり、第１実施形態の積和演算器１では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂに入力される可変信号に同期して定められた信号が入力される固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂが、バイアス項として機能する。第１実施形態の積和演算器１がニューラルネットワークに適用される場合には、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂがバイアス項用素子として用いられない積和演算器がニューラルネットワークに適用される場合よりも、ニューラルネットワークの判別性能を向上させることができる。
【００７５】
上述したように、例えば図１に示す第１実施形態の積和演算器１は、積演算部１０と、和演算部１１とを備える。積演算部１０は、複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂと、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂとを備える。複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのそれぞれは、抵抗変化素子である。また、第１実施形態の積和演算器１は、複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、…に対して可変信号を入力する可変入力部１２１Ａ、１２１Ｂと、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに対して定められた信号を可変信号に同期させて入力する固定入力部１２２Ａ、１２２Ｂとを備える。和演算部１１は、複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂからの出力および複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力の合計値を検出する出力検出器１１Ａを備える。
そのため、第１実施形態の積和演算器１がニューラルネットワークに適用される場合には、バイアス項用素子である固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
【００７６】
また、第１実施形態の積和演算器１では、上述したように、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂは、出力電流が増加する故障が発生した場合に断線する（つまり、抵抗値が無限大になる）機能を有する。また、複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのそれぞれは、書き込み端子ＡＡと、共通端子ＡＢと、読み出し端子ＡＣとを有し、磁気抵抗効果を示す磁気抵抗効果素子Ａである。また、磁気抵抗効果素子Ａは、磁壁ＤＷを有する磁化自由層Ａ１と、磁化方向が固定された磁化固定層Ａ２と、磁化自由層Ａ１と磁化固定層Ａ２とに挟まれた非磁性層Ａ３とを有する。
つまり、第１実施形態の積和演算器１では、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂとして、正常動作時における抵抗値と、故障時（詳細には、出力電流が大きくなって断線する故障時）における抵抗値との差が大きい素子が用いられる。
そのため、第１実施形態の積和演算器１によれば、正常動作時における抵抗値と故障時における抵抗値との差が小さい素子が固定入力用積演算素子として用いられる場合よりも、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
【００７７】
また、第１実施形態の積和演算器１の使用時（詳細には、出力検査時）には、可変入力部１２１Ａ、１２１Ｂが複数の可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂに対して可変信号を入力しない状態、かつ、固定入力部１２２Ａ、１２２Ｂが複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに対して固定信号を入力する状態で、出力検出器１１Ａが、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力を検出する。
また、第１実施形態の積和演算器１の使用時（詳細には、診断時）には、故障診断部１３が、出力検出時に検出された複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂからの出力に基づいて、故障している固定入力用積演算素子が複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに含まれるか否かを診断する。
そのため、第１実施形態の積和演算器１によれば、そのような出力検査および診断が行われない場合よりも、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
【００７８】
また、故障している固定入力用積演算素子が複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂに含まれる場合、第１実施形態の積和演算器１の使用時（詳細には、再学習時）に、再学習部１４が、複数の固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂのうちの、故障している固定入力用積演算素子以外の固定入力用積演算素子の抵抗値の再設定を行う。
そのため、第１実施形態の積和演算器１によれば、そのような再学習が行われない場合よりも、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの一方の故障時におけるニューラルネットワークの性能低下を抑制することができる。
【００７９】
＜第２実施形態＞（抵抗変化素子が一般的な可変抵抗）
以下、本発明の積和演算器の第２実施形態について説明する。
第２実施形態の積和演算器１は、後述する点を除き、上述した第１実施形態の積和演算器１と同様に構成されている。従って、第２実施形態の積和演算器１によれば、後述する点を除き、上述した第１実施形態の積和演算器１と同様の効果を奏することができる。
【００８０】
図１０は第２実施形態の積和演算器１の一部の構成の一例を示す図である。
第１実施形態の積和演算器１では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂが磁気抵抗効果素子によって構成されているが、第２実施形態の積和演算器１では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂが一般的な抵抗変化素子（可変抵抗）によって構成されている。
【００８１】
詳細には、図１に示す例では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂのそれぞれが、読み出し端子と、書き込み端子と、共通端子とを備えているが、図１０に示す例では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂのそれぞれが、第１端子と、第２端子とを備えている。
図１０に示す例では、可変入力用積演算素子１０Ａ１Ａ、１０Ｂ１Ａの第１端子は、ラインＬ１１に接続されている。可変入力用積演算素子１０Ａ１Ｂ、１０Ｂ１Ｂの第１端子は、ラインＬ２１に接続されている。固定入力用積演算素子１０Ａ２Ａ、１０Ｂ２Ａの第１端子は、ラインＬ３１に接続されている。固定入力用積演算素子１０Ａ２Ｂ、１０Ｂ２Ｂの第１端子は、ラインＬ４１に接続されている。
図１０に示す例においても、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂに対して入力される固定信号は、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂ、１０Ｂ１Ａ、１０Ｂ１Ｂに対して入力される可変信号に同期させられる。
【００８２】
図１０に示す例では、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの第２端子は、ラインＭ１に接続されている。可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂの第２端子は、ラインＭ２に接続されている。
和演算部１１は、可変入力用積演算素子１０Ａ１Ａ、１０Ａ１Ｂおよび固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂの第２端子からの出力の合計値を検出する出力検出器１１Ａと、可変入力用積演算素子１０Ｂ１Ａ、１０Ｂ１Ｂおよび固定入力用積演算素子１０Ｂ２Ａ、１０Ｂ２Ｂの第２端子からの出力の合計値を検出する出力検出器１１Ｂとを備えている。
【００８３】
図１０に示す例においても、固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂは、例えばフューズ部（図示せず）などを有することによって、出力電流が増加する故障が発生した場合に断線する機能を有する。
他の例では、図１０に示す固定入力用積演算素子１０Ａ２Ａ、１０Ａ２Ｂ、１０Ｂ２Ａ、１０Ｂ２Ｂは、出力電流が増加する故障が発生した場合に断線する機能を有さなくてもよい。
【００８４】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。上述した各実施形態に記載の構成を組み合わせてもよい。
【００８５】
例えば、以上に示した実施形態に係る各装置（例えば、積和演算器１）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体（記憶媒体）に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
【００８６】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）あるいは電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
コンピュータでは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
【符号の説明】
【００８７】
１…積和演算器、２…積和演算器、１０…積演算部、１０Ａ…カラム、１０Ａ１Ａ…可変入力用積演算素子、１０Ａ１Ｂ…可変入力用積演算素子、１０Ａ２Ａ…固定入力用積演算素子、１０Ａ２Ｂ…固定入力用積演算素子、１０Ｂ…カラム、１０Ｂ１Ａ…可変入力用積演算素子、１０Ｂ１Ｂ…可変入力用積演算素子、１０Ｂ２Ａ…固定入力用積演算素子、１０Ｂ２Ｂ…固定入力用積演算素子、１１…和演算部、１１Ａ…出力検出器、１１Ｂ…出力検出器、１２…入力部、１２１Ａ…可変入力部、１２１Ｂ…可変入力部、１２２Ａ…固定入力部、１２２Ｂ…固定入力部、１３…故障診断部、１４…再学習部、１００…ニューロモーフィックデバイス、１０１…入力層、１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄ…ノード、１０２…隠れ層、１０２Ａ、１０２Ｂ、１０２Ｃ…ノード、１０３…出力層、１０３Ａ、１０３Ｂ、１０３Ｃ…ノード、Ａ…磁気抵抗効果素子、ＡＡ…書き込み端子、ＡＢ…共通端子、ＡＣ…読み出し端子、Ａ１…磁化自由層、Ａ１１…第１領域、Ａ１２…第２領域、Ａ２…磁化固定層、Ａ３…非磁性層、ＤＷ…磁壁、Ｌ１１…ライン、Ｌ１２…ライン、Ｌ２１…ライン、Ｌ２２…ライン、Ｌ３１…ライン、Ｌ３２…ライン、Ｌ４１…ライン、Ｌ４２…ライン、Ｍ１…ライン、Ｍ２…ライン
【図１】
2019131147.tif 000003
【図２】
2019131147.tif 000004
【図３】
2019131147.tif 000005
【図４】
2019131147.tif 000006
【図５】
2019131147.tif 000007
【図６】
2019131147.tif 000008
【図７】
2019131147.tif 000009
【図８】
2019131147.tif 000010
【図９】
2019131147.tif 000011
【図１０】
2019131147.tif 000012
【手続補正書】
【提出日】令和2年8月11日(2020.8.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
積演算部と、和演算部とを備え、
前記積演算部は、複数の可変入力用積演算素子と、複数の固定入力用積演算素子とを備え、
前記複数の可変入力用積演算素子および前記複数の固定入力用積演算素子のそれぞれは、抵抗変化素子であり、
前記複数の可変入力用積演算素子に対して可変信号を入力する可変入力部と、
前記複数の固定入力用積演算素子に対して定められた信号を前記可変信号に同期させて入力する固定入力部とを備え、
前記和演算部は、前記複数の可変入力用積演算素子からの出力および前記複数の固定入力用積演算素子からの出力の合計値を検出する出力検出器を備える、
積和演算器。
【請求項２】
前記抵抗変化素子は、書き込み端子と、共通端子と、読み出し端子とを有する、請求項１に記載の積和演算器。
【請求項３】
前記複数の固定入力用積演算素子のそれぞれは、前記読み出し端子を介する前記固定入力用積演算素子からの出力電流が増加する故障が発生した場合に断線する機能を有する、請求項２に記載の積和演算器。
【請求項４】
前記抵抗変化素子は、磁気抵抗効果を示す磁気抵抗効果素子であり、
前記磁気抵抗効果素子は、
磁壁を有する磁化自由層と、
磁化方向が固定された磁化固定層と、
前記磁化自由層と前記磁化固定層とに挟まれた非磁性層とを有する、
請求項１または請求項２に記載の積和演算器。
【請求項５】
前記積演算部は、他の可変入力用積演算素子と、他の固定入力用積演算素子とをさらに備え、
前記他の可変入力用積演算素子および前記他の固定入力用積演算素子のそれぞれは、前記抵抗変化素子であり、
前記可変入力部は、前記他の可変入力用積演算素子に対して前記可変信号を入力し、
前記固定入力部は、前記他の固定入力用積演算素子に対して前記定められた信号を前記可変信号に同期させて入力し、
前記和演算部は、前記他の可変入力用積演算素子からの出力および前記他の固定入力用積演算素子からの出力の合計値を検出する他の出力検出器をさらに備える、
請求項１から請求項４のいずれか一項に記載の積和演算器。
【請求項６】
請求項１から請求項５のいずれか一項に記載の積和演算器を備えるニューロモーフィックデバイス。
【請求項７】
請求項１から請求項５のいずれか一項に記載の積和演算器の使用方法であって、
前記積和演算器は故障診断部をさらに備え、
前記可変入力部が前記複数の可変入力用積演算素子に対して前記可変信号を入力しない状態、かつ、前記固定入力部が前記複数の固定入力用積演算素子に対して前記定められた信号を入力する状態で、前記出力検出器が、前記複数の固定入力用積演算素子からの出力を検出する出力検出工程と、
前記故障診断部が、前記出力検出工程において検出された前記複数の固定入力用積演算素子からの出力に基づいて、故障している積演算素子が前記複数の固定入力用積演算素子に含まれるか否かを診断する診断工程とを含む、積和演算器の使用方法。
【請求項８】
前記積和演算器は再学習部をさらに備え、
前記故障している積演算素子が前記複数の固定入力用積演算素子に含まれると前記故障診断部が診断した場合に、前記再学習部が、前記複数の固定入力用積演算素子のうちの、前記故障している積演算素子以外の積演算素子の抵抗値の再設定を行う再学習工程をさらに含む、請求項７に記載の積和演算器の使用方法。
【国際調査報告】
2019131147.tif 000013
2019131147.tif 000014