(57)【特許請求の範囲】
【請求項１】
複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスアレイ部と、
入力データから入力信号を生成し、前記複数の可変抵抗素子および前記リファレンス抵抗素子に対して前記入力信号を入力する信号入力部と、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記リファレンス抵抗素子に印加された前記入力信号に基づいて、前記リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に基づいて、予め定めた演算を行う補正演算部と、
を備える積和演算器。
【請求項２】
前記第一検出部からの出力をデジタル変換して、前記補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記補正演算部に出力する第二変換部と、
を更に備え、
前記補正演算部は、前記第二変換部からの出力に予め定められた係数を乗算した値を、前記第一変換部からの出力から減算し、更に、予め定められた係数を乗算する、請求項１に記載の積和演算器。
【請求項３】
前記補正演算部の出力は、以下の式で決定される、請求項２に記載の積和演算器。
（前記補正演算部の出力）＝｛(前記第一検出部の出力)−（前記第二検出部の出力）×Ｋ１｝×Ｋ２
但し、Ｋ１およびＫ２は係数
【請求項４】
前記補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する差分出力回路と、を備え、
前記補正演算部は、前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、請求項１に記載の積和演算器。
【請求項５】
前記信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、請求項１〜４のいずれか１項に記載の積和演算器。
【請求項６】
前記信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、請求項１〜４のいずれか１項に記載の積和演算器。
【請求項７】
複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
１つの前記補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、請求項１〜６のいずれか１項に記載の積和演算器。
【請求項８】
前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスカラムで構成される、請求項１に記載の積和演算器。
【請求項９】
前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスローで構成される、請求項１に記載の積和演算器。
【請求項１０】
前記可変抵抗素子は、磁気抵抗効果素子である、請求項１〜９のいずれか１項に記載の積和演算器。
【請求項１１】
複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスカラムで構成される第一リファレンスアレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスローで構成される第二リファレンスアレイ部と、
前記可変抵抗アレイ部の入力側に接続され、入力データから第一入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスカラムの前記リファレンス抵抗素子に対して前記第一入力信号を入力する第一信号入力部と、
前記可変抵抗アレイ部の出力側に接続され、前記複数の可変抵抗素子に印加された前記第一入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記可変抵抗アレイ部の出力側に接続され、前記リファレンスカラムの前記リファレンス抵抗素子に印加された前記第一入力信号に基づいて、前記第一リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記可変抵抗アレイ部の出力側に接続され、入力データから第二入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスローの前記リファレンス抵抗素子に対して前記第二入力信号を入力する第二信号入力部と、
前記可変抵抗アレイ部の入力側に接続され、前記複数の可変抵抗素子に印加された前記第二入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第三検出部と、
前記可変抵抗アレイ部の入力側に接続され、前記リファレンスローの前記リファレンス抵抗素子に印加された前記第二入力信号に基づいて、前記第二リファレンスアレイ部に流れる電流を検出する第四検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に応じて予め定めた演算を行う第一補正演算部と、
前記第三検出部からの出力に対して、前記第四検出部からの出力に応じて予め定めた演算を行う第二補正演算部と、
前記可変抵抗アレイ部の入力側に接続され、前記第一信号入力部からの入力と前記第三検出部への出力とを切り替える第一入出力切替部と、
前記可変抵抗アレイ部の出力側に接続され、前記第二信号入力部からの入力と前記第一検出部への出力とを切り替える第二入出力切替部と、
を備える、積和演算器。
【請求項１２】
前記第一検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第二変換部と、
を更に備え、
前記第一補正演算部は、前記第二検出部からの出力に予め定められた係数を乗算した値を、前記第一検出部からの出力から減算し、更に、予め定められた係数を乗算する、請求項１１に記載の積和演算器。
【請求項１３】
前記第一補正演算部の出力は、以下の式（１）で決定される、請求項１２に記載の積和演算器。
（前記第一補正演算部の出力）＝｛(前記第一検出部の出力)−（前記第二検出部の出力）×Ｋ１｝×Ｋ２  ・・・（１）
但し、Ｋ１およびＫ２は係数
【請求項１４】
前記第一補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する第一増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する第一差分出力回路と、を備え、
前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、請求項１１に記載の積和演算器。
【請求項１５】
前記第一信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、請求項１１〜１４のいずれか１項に記載の積和演算器。
【請求項１６】
前記第一信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、請求項１１〜１４のいずれか１項に記載の積和演算器。
【請求項１７】
複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記第一入力信号に基づいて前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
前記第一補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、請求項１１〜１６のいずれか１項に記載の積和演算器。
【請求項１８】
前記第三検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第三変換部と、
前記第四検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第四変換部と、
を更に備え、
前記第二補正演算部は、前記第四検出部からの出力に予め定められた係数を乗算した値を、前記第三検出部からの出力から減算し、更に、予め定められた係数を乗算する、請求項１１に記載の積和演算器。
【請求項１９】
前記第二補正演算部は、
前記第三検出部からの出力および前記第四検出部からの出力のいずれか一方、あるいは両方を増幅する第二増幅回路と、
前記第三検出部からの出力と第四検出部からの出力との差分を出力する第二差分出力回路と、を備え、
前記第三検出部からの出力および前記第四検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、請求項１１に記載の積和演算器。
【請求項２０】
請求項１〜１９のいずれか１項に記載の積和演算器を備えるニューロモーフィックデバイス。
【請求項２１】
請求項１〜１９のいずれか１項に記載の積和演算器で実行される積和演算方法であって、
入力データから入力信号を生成し、可変抵抗アレイ部を構成する複数の可変抵抗素子に対して前記入力信号を入力すると共に、リファレンスアレイ部を構成する、抵抗値が固定されたリファレンス抵抗素子に対して、前記入力信号を出力する入力ステップと、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて前記可変抵抗アレイ部に流れる電流を検出すると共に、前記リファレンス抵抗素子に印加された前記入力信号に基づいて前記リファレンスアレイ部に流れる電流を検出する検出ステップと、
前記可変抵抗アレイ部に流れる電流の検出結果に応じた出力に対して、前記リファレンスアレイ部に流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う補正演算ステップと、
を有する、積和演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算器、ニューロモーフィックデバイスおよび積和演算方法に関する。
【背景技術】
【０００２】
近年、可変抵抗素子を用いることで、神経系を模倣したニューラルネットワークをデバイスレベルで実現しようとする試みが活発化している。基本的なニューラルネットワークでは、入力データに重みを積算し、それら全ての総和の値を活性化関数へ入力して、出力を得る。そこで、連続的に抵抗が変化する可変抵抗素子を複数組み合わせ、そこから出力される電流値の総和をとることで、積和演算をハードウェアレベルでアナログ的に実現する方法が検討されている。【０００３】
具体的には、ニューラルネットの層間の結合を可変抵抗素子のアレイで実現し、電圧やパルス長に変調させた入力信号をアレイに印加することで、ビット線に流れる電流量を積和演算のΣ結果として利用する。この場合、可変抵抗素子のアレイは、アナログ積和演算器として機能する。【０００４】
例えば、非特許文献１には、ニューラルネットワークの演算を、メモリスタ（ReRAMやPCM、スピンその他）を用いて行う方法が開示されている。【０００５】
また、特許文献１には、ニューラルネットワークの重みの符号によって素子アレイを割り当てる方法が開示されている。【０００６】
非特許文献２には、ニューラルネットワークの１つの重みを２つの素子を用いて各々正負で表現する方法が開示されている。これは、PCM素子の抵抗変化特性が非対称なために、学習時のup/downの動きを別々の素子で割り当てることが動機となっている。
【先行技術文献】
【特許文献】
【０００７】
【非特許文献１】Ｇ．  Ｗ．  Ｂｕｒｒ  ｅｔ  ａｌ．，  Ａｄｖａｎｃｅｄ  ｉｎ  Ｐｈｙｓｉｃｓ：  Ｘ，  ２，  ８９  （２０１７)
【非特許文献２】Ｐ．  Ｎａｒａｙａｎａｎ，ｅｔ  ａｌ．，  “Ｒｅｄｕｃｉｎｇ  Ｃｉｒｃｕｉｔ  Ｄｅｓｉｇｎ  Ｃｏｍｐｌｅｘｉｔｙ  ｆｏｒ  Ｎｅｕｒｏｍｏｒｐｈｉｃ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｓｙｓｔｅｍｓ  Ｂａｓｅｄ  ｏｎ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ａｒｒａｙｓ，”ｉｎ  ２０１７  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ，  Ｍａｙ  ２０１７
【０００８】
【特許文献１】国際公開第第２０１８／０３４１６３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献１等に開示されたニューラルネットワークの演算において、該ニューラルネットワークの結合重みは、０であるか、または、正あるいは負のいずれかの値を持つ。しかしながら、可変抵抗素子では負のコンダクタンスを持つことができない。そこで、特許文献１の技術のように、正の重みを記憶する素子と負の重みを記憶する素子とを分割し、それぞれの和を別個に検出した後、結果の差分をとることで演算する方法がとられる。しかしながら、ニューラルネットワーク中の正負の各重みがどちらの素子に格納されているかを選別する機構が必要になり、機器が複雑化する。また、学習が進んでも重み範囲の符号が固定されているため、識別率が十分に上昇しない可能性がある。【００１０】
また、非特許文献２の技術のように、素子特性の要因で、正負のそれぞれの重みに対応した２個の素子を割り当て、各素子における正負の値を記憶する方法があるが、アレイの物理的サイズが大きくなり、また、正・負出力の比較用の回路が出力列ペア毎に必要になり、機器が複雑化、大型化する。また、各素子における正負の値の一方が上下限に達した場合には２つの素子の両方を再設定することが必要になり、取扱い性に課題が生じる。【００１１】
本発明の目的は、１つの素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能な積和演算器、ニューロモーフィックデバイスおよび積和演算方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明は以下の手段を提供する。【００１３】
［１］複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスアレイ部と、
入力データから入力信号を生成し、前記複数の可変抵抗素子および前記リファレンス抵抗素子に対して前記入力信号を入力する信号入力部と、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記リファレンス抵抗素子に印加された前記入力信号に基づいて、前記リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に基づいて、予め定めた演算を行う補正演算部と、
を備える積和演算器。【００１４】
［２］前記第一検出部からの出力をデジタル変換して、前記補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記補正演算部に出力する第二変換部と、
を更に備え、
前記補正演算部は、前記第二変換部からの出力に予め定められた係数を乗算した値を、前記第一変換部からの出力から減算し、更に、予め定められた係数を乗算する、上記［１］に記載の積和演算器。【００１５】
［３］前記補正演算部の出力は、以下の式で決定される、上記［２］に記載の積和演算器。
（前記補正演算部の出力）＝｛(前記第一検出部の出力)−（前記第二検出部の出力）×Ｋ１｝×Ｋ２
但し、Ｋ１およびＫ２は係数【００１６】
［４］前記補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する差分出力回路と、を備え、
前記補正演算部は、前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記［１］に記載の積和演算器。【００１７】
［５］前記信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、上記［１］〜［４］のいずれかに記載の積和演算器。【００１８】
［６］前記信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、上記［１］〜［４］のいずれかに記載の積和演算器。【００１９】
［７］複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
１つの前記補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、上記［１］〜［６］のいずれかに記載の積和演算器。【００２０】
［８］前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスカラムで構成される、上記［１］に記載の積和演算器。【００２１】
［９］前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスローで構成される、上記［１］に記載の積和演算器。【００２２】
［１０］前記可変抵抗素子は、磁気抵抗効果素子である、上記［１］〜［９］のいずれかに記載の積和演算器。【００２３】
［１１］複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスカラムで構成される第一リファレンスアレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスローで構成される第二リファレンスアレイ部と、
前記可変抵抗アレイ部の入力側に接続され、入力データから第一入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスカラムの前記リファレンス抵抗素子に対して前記第一入力信号を入力する第一信号入力部と、
前記可変抵抗アレイ部の出力側に接続され、前記複数の可変抵抗素子に印加された前記第一入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記可変抵抗アレイ部の出力側に接続され、前記リファレンスカラムの前記リファレンス抵抗素子に印加された前記第一入力信号に基づいて、前記第一リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記可変抵抗アレイ部の出力側に接続され、入力データから第二入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスローの前記リファレンス抵抗素子に対して前記第二入力信号を入力する第二信号入力部と、
前記可変抵抗アレイ部の入力側に接続され、前記複数の可変抵抗素子に印加された前記第二入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第三検出部と、
前記可変抵抗アレイ部の入力側に接続され、前記リファレンスローの前記リファレンス抵抗素子に印加された前記第二入力信号に基づいて、前記第二リファレンスアレイ部に流れる電流を検出する第四検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に応じて予め定めた演算を行う第一補正演算部と、
前記第三検出部からの出力に対して、前記第四検出部からの出力に応じて予め定めた演算を行う第二補正演算部と、
前記可変抵抗アレイ部の入力側に接続され、前記第一信号入力部からの入力と前記第三検出部への出力とを切り替える第一入出力切替部と、
前記可変抵抗アレイ部の出力側に接続され、前記第二信号入力部からの入力と前記第一検出部への出力とを切り替える第二入出力切替部と、
を備える、積和演算器。【００２４】
［１２］前記第一検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第二変換部と、
を更に備え、
前記第一補正演算部は、前記第二検出部からの出力に予め定められた係数を乗算した値を、前記第一検出部からの出力から減算し、更に、予め定められた係数を乗算する、上記［１１］に記載の積和演算器。【００２５】
［１３］前記第一補正演算部の出力は、以下の式（１）で決定される、上記［１２］に記載の積和演算器。
（前記第一補正演算部の出力）＝｛(前記第一検出部の出力)−（前記第二検出部の出力）×Ｋ１｝×Ｋ２  ・・・（１）
但し、Ｋ１およびＫ２は係数【００２６】
［１４］前記第一補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する第一増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する第一差分出力回路と、を備え、
前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記［１１］に記載の積和演算器。【００２７】
［１５］前記第一信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、上記［１１］〜［１４］のいずれかに記載の積和演算器。【００２８】
［１６］前記第一信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、上記［１１］〜［１４］のいずれかに記載の積和演算器。【００２９】
［１７］複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記第一入力信号に基づいて前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
前記第一補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、上記［１１］〜［１６］のいずれかに記載の積和演算器。【００３０】
［１８］前記第三検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第三変換部と、
前記第四検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第四変換部と、
を更に備え、
前記第二補正演算部は、前記第四検出部からの出力に予め定められた係数を乗算した値を、前記第三検出部からの出力から減算し、更に、予め定められた係数を乗算する、上記［１１］に記載の積和演算器。【００３１】
［１９］前記第二補正演算部は、
前記第三検出部からの出力および前記第四検出部からの出力のいずれか一方、あるいは両方を増幅する第二増幅回路と、
前記第三検出部からの出力と第四検出部からの出力との差分を出力する第二差分出力回路と、を備え、
前記第三検出部からの出力および前記第四検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記［１１］に記載の積和演算器。【００３２】
［２０］上記［１］〜［１９］のいずれかに記載の積和演算器を備えるニューロモーフィックデバイス。【００３３】
［２１］上記［１］〜［１９］のいずれかに記載の積和演算器で実行される積和演算方法であって、
入力データから入力信号を生成し、可変抵抗アレイ部を構成する複数の可変抵抗素子に対して前記入力信号を入力すると共に、リファレンスアレイ部を構成する、抵抗値が固定されたリファレンス抵抗素子に対して、前記入力信号を出力する入力ステップと、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて前記可変抵抗アレイ部に流れる電流を検出すると共に、前記リファレンス抵抗素子に印加された前記入力信号に基づいて前記リファレンスアレイ部に流れる電流を検出する検出ステップと、
前記可変抵抗アレイ部に流れる電流の検出結果に応じた出力に対して、前記リファレンスアレイ部に流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う補正演算ステップと、
を有する、積和演算方法。
【発明の効果】
【００３４】
本発明によれば、１つの素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することができる。
【図面の簡単な説明】
【００３５】
【図１】図１は、本発明の第１実施形態に係る積和演算器の構成の一例を示す図である。
【図２】図２は、図１の補正演算部がデジタル処理を行う場合の構成の一例を示す図である。
【図３】図３は、図１の補正演算部がアナログ処理を行う場合の構成の一例を説明する図である。
【図４】図４は、図１の積和演算器で実行される積和演算方法の一例を示すフローチャートである。
【図５】図５は、可変抵抗素子のコンダクタンスＧと重みＷとの相関を示す図である。
【図６】図６は、図１の積和演算器の変形例を示す図である。
【図７】図７は、本発明の第２実施形態に係る積和演算器の構成の一例を示す図である。
【図８】図８は、図７の積和演算器のフォーワード動作を説明する図である。
【図９】図９は、図７の積和演算器のバックワード動作を説明する図である。
【図１０】図１の積和演算器を備えるニューロモーフィックデバイス上で実行されるニューラルネットワークの構成の一例を示す模式図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００３７】
［第１実施形態に係る積和演算器の構成］
図１は、本発明の第１実施形態に係る積和演算器の構成の一例を示す図である。
図１に示すように、積和演算器１は、可変抵抗アレイ部１０Ａ、リファレンスアレイ部１０Ｂ、信号入力部２０、第一検出部３０、第二検出部４０および補正演算部５０を備えている。
【００３８】
可変抵抗アレイ部１０Ａは、複数の可変抵抗カラム１０Ａ１，１０Ａ２，…を有している。可変抵抗カラム１０Ａ１は、複数の可変抵抗素子１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎ（ｎは自然数）で構成されている。また、可変抵抗カラム１０Ａ２は、複数の可変抵抗素子１０Ａ２−１，１０Ａ２−２，…，１０Ａ２−ｎ（ｎは自然数）で構成されている。この可変抵抗アレイ部１０Ａでは、各々の可変抵抗素子の伝導度Ｇに応じて、上記可変抵抗カラム毎に、積和演算の結果が出力される。
【００３９】
図１では、可変抵抗アレイ部１０Ａは、２つの可変抵抗カラム１０Ａ１，１０Ａ２を有しているが、これに限らず、１つの可変抵抗カラムを有していてもよいし、３つ以上の可変抵抗カラムを有していてもよい。また、可変抵抗カラム１０Ａ１，１０Ａ２は、それぞれ３つの可変抵抗素子を有しているが、これに限らず、１つまたは２つの可変抵抗素子を有していてもよいし、４つ以上の可変抵抗素子を有していてもよい。
【００４０】
上記可変抵抗素子は、特に制限は無いが、例えば磁気抵抗効果を利用して抵抗が可変な磁気抵抗効果素子である。磁気抵抗効果素子としては、トンネル磁気抵抗効果（ＴＭＲ）素子、巨大磁気抵抗効果（ＧＭＲ）素子などが挙げられる。特に、磁壁を利用した三端子型の磁気抵抗効果素子は、抵抗変換の対称性が良好であることから、可変抵抗素子として用いられるのが好ましい。
【００４１】
リファレンスアレイ部１０Ｂは、抵抗値が固定された複数のリファレンス抵抗素子１０Ｂ−１，１０Ｂ−１，…１０Ｂ−ｎ（ｎは自然数）を有するリファレンスアレイで構成されている。このリファレンスアレイ部１０Ｂでは、各リファレンス抵抗素子の抵抗値が固定されているため、入力信号（入力値）に応じて、固有の出力がなされる。
【００４２】
上記各リファレンス抵抗素子は、可変抵抗素子を最初に同一の設定値に設定し、それ以降設定値を変更しないことにより、実質的な固定抵抗値として使用してもよいし、物理的に、同じ抵抗値を持つように作製された固定抵抗素子を用いてもよい。
また、図１では、リファレンスアレイ部１０Ｂは、複数のリファレンス抵抗素子１０Ｂ−１，１０Ｂ−１，…１０Ｂ−ｎ（ｎは自然数）を有するが、これに限らず、１つのリファレンス抵抗素子で構成されてもよい。
【００４３】
本実施形態では、リファレンスアレイ部１０Ｂが、複数のリファレンス抵抗素子１０Ｂ−１，１０Ｂ−１，…１０Ｂ−ｎを有するリファレンスカラムで構成される。このリファレンスカラムにより、積和演算時に必要な補正を行うことができる。
【００４４】
信号入力部２０は、入力データから入力信号を生成し、複数の可変抵抗素子および複数のリファレンス抵抗素子に対して上記入力信号を入力する。本実施形態では、信号入力部２０は、複数の信号入力部２０−１，２０−２，…２０−ｎ（ｎは自然数）で構成されている。信号入力部２０−１は、ラインＬ１を介して、可変抵抗素子１０Ａ１−１，１０Ａ２−１，…、およびリファレンス抵抗素子１０Ｂ−１に接続されている。信号入力部２０−２は、ラインＬ２を介して、複数の可変抵抗素子１０Ａ１−２，１０Ａ２−２，…、およびリファレンス抵抗素子１０Ｂ−２に接続されている。また、信号入力部２０−ｎは、ラインＬｎを介して、複数の可変抵抗素子１０Ａ１−ｎ，１０Ａ２−ｎ，…、およびリファレンス抵抗素子１０Ｂ−ｎに接続されている。
【００４５】
そして、信号入力部２０−１は、複数の可変抵抗素子１０Ａ１−１，１０Ａ２−１，…、およびリファレンス抵抗素子１０Ｂ−１に対して上記入力信号を出力する。信号入力部２０−２も、上記と同様にして、複数の可変抵抗素子１０Ａ１−２，１０Ａ２−２，…、およびリファレンス抵抗素子１０Ｂ−２に対して上記入力信号を出力する。信号入力部２０−ｎも、上記と同様にして、複数の可変抵抗素子１０Ａ１−ｎ，１０Ａ２−ｎ，…、およびリファレンス抵抗素子１０Ｂ−ｎに対して上記入力信号を出力する。
【００４６】
図１では、信号入力部２０は、複数の信号入力部２０−１，２０−２，…２０−ｎ（ｎは自然数）で構成されているが、これに限らず、１つの信号入力部で構成されてもよい。
【００４７】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記入力信号は、例えばパルス幅変調信号（以下、ＰＷＭ信号ともいう）あるいはパルス振幅変調信号（以下、ＰＡＭ信号ともいう）である。このとき、信号入力部２０は、上記入力データに基づいてＰＷＭ信号あるいはＰＡＭ信号を入力する。
【００４８】
第一検出部３０は、複数の可変抵抗素子に印加された上記入力信号に基づいて、可変抵抗アレイ部１０Ａに流れる電流を検出する。本実施形態では、第一検出部３０は、複数の第一検出部３０−１，３０−２，…で構成されている。第一検出部３０−１は、ラインＭ１を介して、複数の可変抵抗素子１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎに接続されている。第一検出部３０−２は、ラインＭ２を介して、複数の可変抵抗素子１０Ａ２−１，１０Ａ２−２，…１０Ａ２−ｎに接続されている。
【００４９】
そして、第一検出部３０−１は、複数の可変抵抗素子１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎに印加された上記入力信号に基づいて、可変抵抗カラムＡ１に流れる電流を検出する。第一検出部３０−２も、上記と同様にして、複数の可変抵抗素子１０Ａ２−１，１０Ａ２−２，…１０Ａ２−ｎ（ｎは自然数）に印加された上記入力信号に基づいて、可変抵抗カラム１０Ａ２に流れる電流を検出する。すなわち、複数の第一検出部３０−１，３０−２，…が、上記入力信号に基づいて複数の可変抵抗カラム１０Ａ１，１０Ａ２，…に流れる電流をそれぞれ検出する。
【００５０】
図１では、第一検出部３０は、複数の第一検出部３０−１，３０−２，…で構成されているが、これに限らず、１つの第一検出部で構成されてもよい。
【００５１】
信号入力部２０が、上記入力データに基づいてＰＷＭ信号を入力する場合、第一検出部３０は、電荷検出方式による検出回路を有することができる。また、信号入力部２０が、上記入力データに基づいてＰＡＭ信号を入力する場合、第一検出部３０は、電流検出方式による検出回路を有することができる。すなわち、入力信号がＰＷＭ信号であるときは電荷検出による出力電圧値を使用し、入力信号がＰＡＭ信号であるときは電流検出による出力電圧値を用いることができる。
【００５２】
第二検出部４０は、複数のリファレンス抵抗素子に印加された上記入力信号に基づいて、リファレンスアレイ部１０Ｂに流れる電流を検出する。第二検出部４０は、ラインＭ３を介して、リファレンス抵抗素子１０Ｂ−１〜１０Ｂ−ｎに接続されている。そして、第二検出部４０は、複数のリファレンス抵抗素子１０Ｂ−１〜１０Ｂ−ｎのいずれかに印加された上記入力信号に基づいて、リファレンスアレイ部１０Ｂに流れる電流を検出する。
【００５３】
信号入力部２０が、上記入力データに基づいてＰＷＭ信号を入力する場合、第二検出部４０は、電荷検出方式による検出回路を有することができる。また、信号入力部２０が、上記入力データに基づいてＰＡＭ信号を入力する場合、第二検出部４０は、電流検出方式による検出回路を有することができる。
【００５４】
補正演算部５０は、第一検出部３０からの出力に対して、第二検出部４０からの出力に基づいて予め定めた演算を行う。本実施形態では、補正演算部５０は、複数の補正演算部５０−１，５０−２，…で構成されている。補正演算部５０−１は、第一検出部３０−１および第二検出部４０に接続され、補正演算部５０−２は、第一検出部３０−２および第二検出部４０に接続されている。そして、補正演算部５０−１は、第一検出部３０−１の出力に対して、第二検出部４０からの出力に基づいて予め定めた演算を行う。補正演算部５０−２も、上記と同様にして、第一検出部３０−２の出力に対して、第二検出部４０からの出力に基づいて予め定めた演算を行う。
【００５５】
図２は、図１の補正演算部５０がデジタル処理を行う場合の構成の一例を示す図である。
補正演算部５０がデジタル処理を行う場合、積和演算器１は、例えば、第一検出部３０（例えば、第一検出部３０−２）からの出力をデジタル変換して、補正演算部５０（例えば、補正演算部５０−２）に出力する第一変換部６０と、第二検出部４０からの出力をデジタル変換して、補正演算部５０（例えば、補正演算部５０−２）に出力する第二変換部７０とを更に備えることができる。
【００５６】
このとき、補正演算部５０は、デジタル論理演算を行い、第二検出部４０からの出力に予め定められた係数を乗算した値を、第一変換部６０からの出力から減算し、更に、予め定められた係数を乗算する。
【００５７】
具体的には、補正演算部５０の出力は、以下の式（１）で決定される。本式により解析的補正値が得られ、理論上補正計算が可能となる。
（補正演算部５０の出力）＝｛(第一検出部３０の出力)−（第二検出部４０の出力）×Ｋ１｝×Ｋ２      ・・・（１）
但し、Ｋ１およびＫ２は係数
【００５８】
このように、補正演算部５０のデジタル処理により、第一検出部３０および第二検出部４０からの出力に基づき、上記式（１）によって補正結果を得ることで、１つの可変抵抗素子（例えば、可変抵抗素子１０Ａ１−１）で正負を含めた積和演算を行うことができ、デジタル演算で精度良く補正を行うことが可能となる。
【００５９】
図３は、図１の補正演算部５０がアナログ処理を行う場合の構成の一例を説明する図である。
補正演算部５０がアナログ処理を行う場合、補正演算部５０は、例えば、第一検出部３０（例えば、第一検出部３０−２）からの出力および第二検出部４０からの出力を増幅する増幅回路５１，５２（第一増幅回路）と、第一検出部３０からの出力と第二検出部４０からの出力との差分を出力する差分出力回路５３（第一差分検出回路）と、を備えることができる。差分出力回路５３には、差分出力回路５３からの出力をデジタル変換する第三変換部８０が接続されている。
【００６０】
このとき、補正演算部５０は、第一検出部３０からの出力および第二検出部４０からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う。このような補正演算部５０のアナログ処理によっても、最終的な補正結果を得ることができる。
【００６１】
尚、本実施形態では、補正演算部５０は、２つの増幅回路５１，５２を有しているが、これに限られず、第一検出部３０（例えば、第一検出部３０−２）からの出力および第二検出部４０からの出力を増幅する増幅回路５１，５２の一方を有していてもよい。
【００６２】
［第１実施形態に係る積和演算器の動作］
図４は、図１の積和演算器１で実行される積和演算方法の一例を示すフローチャートである。
図４に示すように、先ず、信号入力部２０は、入力データから入力信号を生成し（ステップＳ１）、可変抵抗アレイ部１０Ａを構成する複数の可変抵抗素子（例えば、１０Ａ１−１〜１０Ａ１−ｎ）に対して上記入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子（例えば、１０Ｂ−１）に対して上記入力信号を入力する（ステップＳ２）。
【００６３】
上記入力信号が例えばＰＷＭ信号である場合、信号入力部２０は、上記入力データに基づいてＰＷＭ信号を入力する。上記入力信号がＰＡＭ信号である場合、信号入力部２０は、上記入力データに基づいてＰＡＭ信号を入力する。
【００６４】
このように、本実施形態では、上記入力信号が、ＰＷＭ信号あるいはＰＡＭ信号として積和演算を行う可変抵抗アレイ部１０Ａと、補正値を算出するためのリファレンスアレイ部１０Ｂとに、ほぼ同時に入力される。
【００６５】
可変抵抗アレイ部１０Ａに上記入力信号が入力されると、可変抵抗アレイ部１０Ａでは、各々の可変抵抗素子（例えば、１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎ）の伝導度Ｇに応じて、積和演算の結果が出力される。また、リファレンスアレイ部１０Ｂに上記入力信号が入力されると、各々のリファレンス抵抗素子（例えば、１０Ｂ−１）では、上記入力信号の入力値に応じて固有の出力値が出力される。
【００６６】
次いで、第一検出部３０は、複数の可変抵抗素子（例えば、１０Ａ１−１〜１０Ａ１−ｎ）に印加された上記入力信号に基づいて可変抵抗アレイ部１０Ａに流れる電流を検出すると共に、リファレンス抵抗素子（例えば、１０Ｂ−１）に印加された上記入力信号に基づいてリファレンスアレイ部１０Ｂに流れる電流を検出する（ステップＳ３）。
【００６７】
その後、補正演算部５０は、可変抵抗アレイ部１０Ａに流れる電流の検出結果に応じた出力に対して、リファレンスアレイ部１０Ｂに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う（ステップＳ４）。例えば、第一検出部３０および第二検出部４０からの出力に基づき、予め定めた演算として、例えば上記式（１）により、補正演算部５０の出力、すなわち補正結果を得る。
【００６８】
次に、上記式（１）によって補正結果が得られる原理を説明する。
可変抵抗素子のコンダクタンスＧ（単位：Ｓ（＝１／Ω））は、物性から決まる定数であり、変化可能な範囲は決まっている。そこで、例えば、可変抵抗素子のコンダクタンスＧが１μＳ〜２μＳの範囲のみ変化できるとする。一方、重みＷで表現される範囲は、仕様により変化するが、０を中心として正の範囲と負の範囲を含むように設定し、例えば、−０．５〜＋０．５（あるいは、−１．０〜＋１．０）とする。この場合、重みＷで表現される範囲を、コンダクタンスＧの範囲に割り当てる。図５の例の場合、コンダクタンスＧと重みＷとの相関から、コンダクタンスＧは、下記式（２）で表現される。
Ｇ＝（Ｗ＋１．５）×１０−６  ・・・（２）
【００６９】
可変抵抗素子のコンダクタンスＧと重みＷとは、Ｗ＝Ｇ×１０６−１．５の関係にあるため、Ｗ×（Input）を求めるならば、上記式（２）の両辺に（Input）を乗算して、下記式を得る。
Ｗ×（Input）＝Ｇ×（Input）×１０６−１．５×（Input）  ・・・（３）
よって、（Input）が分かれば、上記式（３）より、Ｗ×（Input）が求められる。
【００７０】
次に、固定された抵抗値を有するリファレンス抵抗素子に入力信号を入力し、リファレンス抵抗素子からの出力を、可変抵抗素子からの出力と共に読み出す。リファレンス抵抗素子のコンダクタンスＧ（以下、Ｇ＿Ｒｅｆともいう）の値は、抵抗値と同様に固定された値であり、取りうる範囲であれば特に制限は無いが、安定性の観点から最大値あるいは最小値が望ましい。例えば、図５の例の場合、（Ｇ＿Ｒｅｆ）を最小値である１μＳとすることができる。これにより、（Ｇ＿Ｒｅｆ）×（入力値）の総和、すなわち（Ｇ＿Ｒｅｆ）×（入力値の総和）が得られる。したがって、リファレンス抵抗素子で構成されるリファレンスカラムからの出力を検出し、リファレンスカラムからの出力を（Ｇ＿Ｒｅｆ）で除算することにより、（入力値の総和）を求めることができる。
【００７１】
実際の検出では、重みＷを表現する可変抵抗素子で構成される可変抵抗カラムからの出力と、リファレンスカラムからの出力とを検出し、上記式（３）の関係と、（Ｇ＿Ｒｅｆ）＝１μＳから、
Ｗ×（Input）＝Ｇ×（Input）×１０６−１．５×（Input）
＝（可変抵抗カラムからの出力）×１０６−１．５×（リファレンスカラムからの出力）÷（Ｇ＿Ｒｅｆ）
＝（可変抵抗カラムからの出力）×１０６−１．５×（リファレンスカラムからの出力）×１０６
＝｛（可変抵抗カラムからの出力）−１．５×（リファレンスカラムからの出力）｝×１０６
上記式において、Ｗ×（Input）は、補正演算部からの出力に相当し、（可変抵抗カラムからの出力）は(第一検出部からの出力)に相当し、（リファレンスカラムからの出力）は（第二検出部からの出力）に相当する。また、「１．５」は係数Ｋ１に、「１０６」は係数Ｋ２に相当する。よって、上記式（１）から、補正演算部の出力（補正結果）を得ることができる。
【００７２】
次に、上記式（１）を用いて得られた補正結果の具体例を挙げる。
以下の５つの具体例では、５つの可変抵抗素子で構成される可変抵抗カラムと、５つのリファレンス抵抗素子で構成されるリファレンスカラムとを備える積和演算器を想定する。
【００７３】
（具体例１）
（Ｇ＿Ｒｅｆ）としてＧｍｉｎを用い、Ｇの範囲を１μＳ〜２μＳとした場合を、表１に示す。表１中、「Input/MAC」の最下段の値「０．０００００２５」が、入力値（Input）に固定値である（Ｇ＿Ｒｅｆ）を乗算した値（リファレンスカラムの出力）であり、「DW/MAC」の最下段の値「４．０５Ｅ−０６」が、入力値に重みＷを乗じた値である（可変抵抗カラムの出力）。そして、「Comp.MAC」の最下段の値が、（Ｇ＿Ｒｅｆ）からの値を用いて補正した計算結果である（補正演算部の出力）。この場合、補正演算部の出力「０．３」を得られることが分かる。
【００７４】
【表１】
0006977908.tif 000002
【００７５】
（具体例２）
（Ｇ＿Ｒｅｆ）およびＧの範囲を具体例１と同様とし、５つの可変抵抗素子に入力される入力値を変えた場合を、表２に示す。表２の結果から、入力値が異なっても、補正演算部の出力「０．０６」を得られることが分かる。
【００７６】
【表２】
0006977908.tif 000003
【００７７】
（具体例３）
表３では、（Ｇ＿Ｒｅｆ）、Ｇの範囲および入力値を具体例１と同様とし、重みＷを変えた場合を、表３に示す。表中、「Ideal/Weight」は重みＷを示す。表３の結果から、重みＷを変えても、補正演算部の出力「−０．３５４」を得られることが分かる。
【００７８】
【表３】
0006977908.tif 000004
【００７９】
（具体例４）
Ｇの範囲、入力値および重みＷを具体例１と同様とし、（Ｇ＿Ｒｅｆ）としてＧｍａｘを用いた場合を、表４に示す。表４の結果から、（Ｇ＿Ｒｅｆ）を変えても、補正演算部の出力「０．３」を得られることが分かる。
【００８０】
【表４】
0006977908.tif 000005
【００８１】
（具体例５）
入力値、重みＷ、（Ｇ＿Ｒｅｆ）を具体例１と同様とし、Ｇの範囲を１μＳ〜３μＳｎに変更した場合を、表５に示す。可変抵抗素子のコンダクタンスＧの範囲が１μＳ〜３μＳである場合、可変抵抗素子のコンダクタンスＧと重みＷとは、Ｗ＝Ｇ×０．５×１０６−１の関係にある。よって上記式（３）は、以下のように書き換えることができる。
Ｗ×（Input）＝Ｇ×（Input）×０．５×１０６−１×（Input）÷（Ｇ＿Ｒｅｆ）  ・・・（４）
表５の結果から、可変抵抗素子のコンダクタンスＧの範囲が異なる場合でも、上記式（４）を用いて、補正演算部の出力「０．３」を得られることが分かる。
【００８２】
【表５】
0006977908.tif 000006
【００８３】
図６は、図１の積和演算器１の変形例を示す図である。図１では、積和演算器１は、複数の補正演算部５０−１，５０−２，…を備えるが、これに限られず、１つの補正演算部を備えてもよい。
具体的には、図６に示すように、複数の第一検出部３０−１，３０−２，…が複数の可変抵抗カラム１０Ａ１，１０Ａ２，…からの出力をそれぞれ検出する。そして、１つの補正演算部５０が、複数の第一検出部３０−１，３０−２，…からの複数の出力に対して演算を行う。このように、複数の第一検出部３０−１，３０−２，…に対して１つの補正演算部５０を共有することで、アレイの実装面積を低減することが可能となる。
【００８４】
上述したように、本実施形態によれば、積和演算器１が、複数の可変抵抗素子（例えば、１０Ａ１〜１０Ａ１−ｎ）を有する可変抵抗アレイ部１０Ａと、抵抗値が固定されたリファレンス抵抗素子（例えば、１０Ｂ−１）を有するリファレンスアレイ部１０Ｂと、入力データから入力信号を生成し、上記複数の可変抵抗素子および上記リファレンス抵抗素子に対して上記入力信号を入力する信号入力部２０と、上記複数の可変抵抗素子に印加された上記入力信号に基づいて、可変抵抗アレイ部１０Ａに流れる電流を検出する第一検出部３０と、上記リファレンス抵抗素子に印加された上記入力信号に基づいて、リファレンスアレイ部１０Ｂに流れる電流を検出する第二検出部４０と、第一検出部３０からの出力に対して、第二検出部４０からの出力に基づいて、予め定めた演算を行う補正演算部５０とを備える。本構成によれば、可変抵抗アレイ部１０Ａに対して入力値が入力されると共に、抵抗が固定されたリファレンスアレイ部１０Ｂに対しても入力値が入力され、入力値に応じた補正値が同時に得られ、可変抵抗アレイ部１０Ａの出力から得られた補正値を元に予め定められた演算を行う。よって、１つの可変抵抗素子に正負の重みＷを付与することができ、ニューラルネットワークの重み毎に正負を担当する２つの可変抵抗素子を設ける必要が無く、可変抵抗素子の実装面積を低減することができる。したがって、１つの可変抵抗素子で正負の重みＷを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能となる。また、誤差の少ない積和演算を行うことができるので、論理演算器の性能を向上させることができる。
【００８５】
［第２実施形態に係る積和演算器の構成］
図７は、本発明の第２実施形態に係る積和演算器の構成の一例を示す図である。
図７に示すように、積和演算器２は、可変抵抗アレイ部１０Ａ、第一リファレンスアレイ部１０Ｃ、第二リファレンスアレイ部１０Ｄ、第一信号入力部２０Ａ、第二信号入力部２０Ｂ、第一検出部３０Ａ、第二検出部４０Ａ、第三検出部３０Ｂ、第四検出部４０Ｂ、第一補正演算部５０Ａ、第二補正演算部５０Ｂ、第一入出力切替部９０Ａおよび第二入出力切替部９０Ｂを備える。
【００８６】
可変抵抗アレイ部１０Ａは、複数の可変抵抗素子で構成される複数の可変抵抗カラム１０Ａ１，１０Ａ２，…を有している。可変抵抗アレイ部１０Ａの構成は、上記第１実施形態と同様であるので、その説明を省略する。
【００８７】
第一リファレンスアレイ部１０Ｃは、抵抗値が固定された複数のリファレンス抵抗素子１０Ｃ−１，１０Ｃ−２，…１０Ｃ−ｎ（ｎは自然数）を有するリファレンスカラムで構成されている。図７では、第一リファレンスアレイ部１０Ｃは、複数のリファレンス抵抗素子１０Ｃ−１，１０Ｃ−２，…１０Ｃ−ｎを有するが、これに限らず、抵抗値が固定された１つのリファレンス抵抗素子で構成されてもよい。
【００８８】
第二リファレンスアレイ部１０Ｄは、抵抗値が固定された複数のリファレンス抵抗素子１０Ｄ−１，１０Ｄ−２，…を有するリファレンスローで構成されている。図７では、第二リファレンスアレイ部１０Ｄは、複数のリファレンス抵抗素子１０Ｄ−１，１０Ｄ−２，…を有するが、これに限らず、抵抗値が固定された１つのリファレンス抵抗素子で構成されてもよい。
【００８９】
第一信号入力部２０Ａは、可変抵抗アレイ部１０Ａの入力側に接続されており、入力データから第一入力信号を生成し、複数の可変抵抗素子およびリファレンスカラムのリファレンス抵抗素子に対して上記第一入力信号を入力する。
本実施形態では、第一信号入力部２０Ａは、複数の第一信号入力部２０Ａ−１，２０Ａ−２，…で構成されている。第一信号入力部２０Ａ−１は、ラインＬ１を介して、複数の可変抵抗素子１０Ａ１−１，１０Ａ２−１，…およびリファレンス抵抗素子１０Ｃ−１に接続されている。第一信号入力部２０Ａ−２は、ラインＬ２を介して、複数の可変抵抗素子１０Ａ１−２，１０Ａ２−２，…、およびリファレンス抵抗素子１０Ｃ−２に接続されている。
【００９０】
そして、第一信号入力部２０Ａ−１は、複数の可変抵抗素子１０Ａ１−１，１０Ａ２−１，…およびリファレンス抵抗素子１０Ｃ−１に対して上記第一入力信号を入力する。第一信号入力部２０Ａ−２も、上記と同様にして、複数の可変抵抗素子１０Ａ１−２，１０Ａ２−２，…およびリファレンス抵抗素子１０Ｃ−２に対して上記第一入力信号を入力する。
【００９１】
図７では、第一信号入力部２０Ａは、複数の第一信号入力部２０Ａ−１，２０Ａ−２，…で構成されているが、これに限らず、１つの第一信号入力部で構成されてもよい。
【００９２】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記第一入力信号は、例えばパルス幅変調信号（以下、ＰＷＭ信号ともいう）あるいはパルス振幅変調信号（以下、ＰＡＭ信号ともいう）である。このとき、第一信号入力部２０Ａは、上記入力データに基づいてＰＷＭ信号あるいはＰＡＭ信号を入力する。
【００９３】
第一検出部３０Ａは、可変抵抗アレイ部１０Ａの出力側に接続されており、複数の可変抵抗素子に印加された上記第一入力信号に基づいて、可変抵抗アレイ部１０Ａに流れる電流を検出する。本実施形態では、第一検出部３０Ａは、複数の第一検出部３０Ａ−１，３０Ａ−２，…で構成されている。第一検出部３０Ａ−１は、ラインＭ１を介して、複数の可変抵抗素子１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎに接続されている。第一検出部３０Ａ−２は、ラインＭ２を介して、複数の可変抵抗素子１０Ａ２−１，１０Ａ２−２，…１０Ａ２−ｎに接続されている。
【００９４】
第一検出部３０Ａ−１は、複数の可変抵抗素子１０Ａ１−１，１０Ａ１−２，…１０Ａ１−ｎに印加された上記第一入力信号に基づいて、可変抵抗カラム１０Ａ１に流れる電流を検出する。第一検出部３０Ａ−２も、上記と同様にして、複数の可変抵抗素子１０Ａ２−１，１０Ａ２−２，…１０Ａ２−ｎ（ｎは自然数）に印加された上記第一入力信号に基づいて、可変抵抗カラム１０Ａ２に流れる電流を検出する。すなわち、複数の第一検出部３０Ａ−１，３０Ａ−２，…が、上記第一入力信号に基づいて複数の可変抵抗カラム１０Ａ１，１０Ａ２，…に流れる電流をそれぞれ検出する。
【００９５】
図７では、第一検出部３０Ａは、複数の第一検出部３０Ａ−１，３０Ａ−２，…で構成されているが、これに限らず、１つの第一検出部で構成されてもよい。
【００９６】
第一信号入力部２０Ａが、上記入力データに基づいてＰＷＭ信号を入力する場合、第一検出部３０Ａは、電荷検出方式による検出回路を有することができる。また、第一信号入力部２０Ａが、上記入力データに基づいてＰＡＭ信号を入力する場合、第一検出部３０Ａは、電流検出方式による検出回路を有することができる。すなわち、入力信号がＰＷＭ信号であるときは電荷検出による出力電圧値を使用し、入力信号がＰＡＭ信号であるときは電流検出による出力電圧値を用いることができる。
【００９７】
第二検出部４０Ａは、可変抵抗アレイ部１０Ａの出力側に接続されており、リファレンスカラムのリファレンス抵抗素子に印加された上記第一入力信号に基づいて、第一リファレンスアレイ部１０Ｃに流れる電流を検出する。本実施形態では、第二検出部４０Ａは、ラインＭ３を介して、リファレンス抵抗素子１０Ｃ−１〜１０Ｃ−ｎに接続されている。そして、第二検出部４０Ａは、複数のリファレンス抵抗素子１０Ｃ−１〜１０Ｃ−ｎのいずれかに印加された上記第一入力信号に基づいて、第一リファレンスアレイ部１０Ｃに流れる電流を検出する。
【００９８】
第一信号入力部２０Ａが、上記入力データに基づいてＰＷＭ信号を出力する場合、第二検出部４０Ａは、電荷検出方式による検出回路を有することができる。また、第一信号入力部２０Ａが、上記入力データに基づいてＰＡＭ信号を出力する場合、第二検出部４０Ａは、電流検出方式による検出回路を有することができる。
【００９９】
第二信号入力部２０Ｂは、可変抵抗アレイ部１０Ａの出力側に接続されており、入力データから第二入力信号を生成し、複数の可変抵抗素子およびリファレンスローのリファレンス抵抗素子に対して上記第二入力信号を入力する。
本実施形態では、第二信号入力部２０Ｂは、複数の第二信号入力部２０Ｂ−１，２０Ｂ−２，…で構成されている。第二信号入力部２０Ｂ−１は、ラインＭ１を介して、複数の可変抵抗素子１０Ａ１−ｎ，…１０Ａ２−２，１０Ａ１−１およびリファレンス抵抗素子１０Ｄ−１に接続されている。第二信号入力部２０Ｂ−２は、ラインＭ２を介して、複数の可変抵抗素子１０Ａ２−ｎ，…１０Ａ２−２，１０Ａ２−１およびリファレンス抵抗素子１０Ｄ−２に接続されている。
【０１００】
そして、第二信号入力部２０Ｂ−１は、複数の可変抵抗素子１０Ａ１−ｎ，…１０Ａ１−２，１０Ａ−１およびリファレンス抵抗素子１０Ｄ−１に対して上記第二入力信号を入力する。第二信号入力部２０Ｂ−２も、上記と同様にして、複数の可変抵抗素子１０Ａ２−ｎ，…１０Ａ２−２，１０Ａ２−１およびリファレンス抵抗素子１０Ｄ−２に対して上記第二入力信号を入力する。
【０１０１】
図７では、第二信号入力部２０Ｂは、複数の第二信号入力部２０Ｂ−１，２０Ｂ−２，…で構成されているが、これに限らず、１つの第二信号入力部で構成されてもよい。
【０１０２】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記第二入力信号は、例えばパルス幅変調信号（以下、ＰＷＭ信号ともいう）あるいはパルス振幅変調信号（以下、ＰＡＭ信号ともいう）である。このとき、第二信号入力部２０Ｂは、上記入力データに基づいてＰＷＭ信号あるいはＰＡＭ信号を入力する。
【０１０３】
第三検出部３０Ｂは、可変抵抗アレイ部１０Ａの入力側に接続されており、複数の可変抵抗素子に印加された上記第二入力信号に基づいて、可変抵抗アレイ部１０Ａに流れる電流を検出する。本実施形態では、第三検出部３０Ｂは、複数の第三検出部３０Ｂ−１，３０Ｂ−２，…で構成されている。第三検出部３０Ｂ−１は、ラインＬ１を介して、複数の可変抵抗素子１０Ａ１−１，１０Ａ２−１，…に接続されている。第三検出部３０Ｂ−２は、ラインＬ２を介して、複数の可変抵抗素子１０Ａ１−２，１０Ａ２−２，…に接続されている。
【０１０４】
第三検出部３０Ｂ−１は、複数の可変抵抗素子１０Ａ１−ｎ，…１０Ａ１−２，１０Ａ−１に印加された上記第二入力信号に基づいて、可変抵抗素子１０Ａ１−１に流れる電流を検出する。第三検出部３０Ｂ−２も、上記と同様にして、複数の可変抵抗素子１０Ａ２−ｎ，…１０Ａ２−２，１０Ａ２−１に印加された上記第二入力信号に基づいて、可変抵抗素子１０Ａ１−２に流れる電流を検出する。
【０１０５】
図７では、第三検出部３０Ｂは、複数の第三検出部３０Ｂ−１，３０Ｂ−２，…で構成されているが、これに限らず、１つの第三検出部で構成されてもよい。
【０１０６】
第二信号入力部２０Ｂが、上記入力データに基づいてＰＷＭ信号を入力する場合、第三検出部３０Ｂは、電荷検出方式による検出回路を有することができる。また、第二信号入力部２０Ｂが、上記入力データに基づいてＰＡＭ信号を入力する場合、第三検出部３０Ｂは、電流検出方式による検出回路を有することができる。すなわち、入力信号がＰＷＭ信号であるときは電荷検出による出力電圧値を使用し、入力信号がＰＡＭ信号であるときは電流検出による出力電圧値を用いることができる。
【０１０７】
第四検出部４０Ｂは、可変抵抗アレイ部１０Ａの入力側に接続されており、リファレンスローのリファレンス抵抗素子に印加された上記第二入力信号に基づいて、第二リファレンスアレイ部１０Ｄに流れる電流を検出する。本実施形態では、第四検出部４０Ｂは、ラインＬ４を介して、リファレンス抵抗素子１０Ｄ−１，１０Ｄ−２，…に接続されている。そして、第四検出部４０Ｂは、複数のリファレンス抵抗素子１０Ｄ−１，１０Ｄ−２，…のいずれかに印加された上記第二入力信号に基づいて、第二リファレンスアレイ部１０Ｄに流れる電流を検出する。
【０１０８】
第二信号入力部２０Ｂが、上記入力データに基づいてＰＷＭ信号を出力する場合、第四検出部４０Ｂは、電荷検出方式による検出回路を有することができる。また、第二信号入力部２０Ｂが、上記入力データに基づいてＰＡＭ信号を出力する場合、第四検出部４０Ｂは、電流検出方式による検出回路を有することができる。
【０１０９】
第一補正演算部５０Ａは、第一検出部３０Ａからの出力に対して、第二検出部４０Ａからの出力に応じて予め定めた演算を行う。本実施形態では、第一補正演算部５０Ａは、１つの補正演算部で構成されており、第一検出部３０Ａ−１，３０Ａ−２および第二検出部４０Ａに接続されている。そして、第一補正演算部５０Ａは、第一検出部３０Ａ−１の出力に対して、第二検出部４０Ａからの出力に基づいて予め定めた演算を行う。また、上記と同様にして、第一補正演算部５０Ａは、第一検出部３０Ａ−２の出力に対して、第二検出部４０Ａからの出力に基づいて予め定めた演算を行う。
【０１１０】
本実施形態では、複数の第一検出部３０Ａ−１，３０Ａ−２，…が、複数の可変抵抗カラムに流れる電流をそれぞれ検出する。そして、１つの第一補正演算部５０Ａが、複数の第一検出部３０Ａ−１，３０Ａ−２，…からの複数の出力に対して演算を行う。このように、複数の第一検出部３０Ａ−１，３０Ａ−２，…に対して１つの第一補正演算部５０Ａを共有することで、アレイの実装面積を低減することが可能となる。
【０１１１】
また、第一補正演算部５０Ａは、上述のデジタル処理あるいはアナログ処理を行うことで、１つの可変抵抗素子（例えば、可変抵抗素子１０Ａ１−１）で正負を含めた積和演算を行うことができる。その場合、積和演算器２の構成および第一補正演算部５０Ａの構成は、第１実施形態と同様であるので（図２，図３参照）、その説明を省略する。
【０１１２】
第二補正演算部５０Ｂは、第三検出部３０Ｂからの出力に対して、第四検出部４０Ｂからの出力に応じて予め定めた演算を行う。本実施形態では、第二補正演算部５０Ｂは、１つの補正演算部で構成されており、第三検出部３０Ｂ−１，３０Ｂ−２および第四検出部４０Ｂに接続されている。そして、第二補正演算部５０Ｂは、第三検出部３０Ｂ−１の出力に対して、第四検出部４０Ｂからの出力に基づいて予め定めた演算を行う。また、上記と同様にして、第二補正演算部５０Ｂは、第三検出部３０Ｂ−２の出力に対して、第四検出部４０Ｂからの出力に基づいて予め定めた演算を行うことができる。
【０１１３】
第二補正演算部５０Ｂがデジタル処理を行う場合、積和演算器２は、例えば、第三検出部３０Ｂからの出力をデジタル変換して、第二補正演算部５０Ｂに出力する第三変換部（不図示）と、第四検出部４０Ｂからの出力をデジタル変換して、第二補正演算部５０Ｂに出力する第四変換部（不図示）と、を更に備えることができる（図２参照）。
このとき、第二補正演算部５０Ｂは、デジタル論理演算を行い、第四検出部４０Ｂからの出力に予め定められた係数を乗算した値を、第三検出部３０Ｂからの出力から減算し、更に、予め定められた係数を乗算する。
【０１１４】
これにより、可変抵抗アレイ部１０Ａを構成する可変抵抗カラム（例えば、１０Ａ１）から複数の可変抵抗素子（例えば、１０Ａ１−ｎ〜１０Ａ１−１）の抵抗値を読み出す際に、１つの第二信号入力部（例えば、第二信号入力部２０Ｂ−１）からの上記第二入力信号の入力によって、上記複数の可変抵抗素子の補正結果を一度に得ることができ、その結果として上記複数の可変抵抗素子が持つ重みＷを一度に読み出すことができ、バックプロパゲーション学習を効率的且つ迅速に行うことができる。
【０１１５】
第二補正演算部５０Ｂがアナログ処理を行う場合、第二補正演算部５０Ｂは、第三検出部３０Ｂからの出力および第四検出部４０Ｂからの出力のいずれか一方、あるいは両方を増幅する第二増幅回路（不図示）と、第三検出部３０Ｂからの出力と第四検出部４０Ｂからの出力との差分を出力する第二差分出力回路（不図示）と、を備えてもよい（図３参照）。このとき、第二補正演算部５０Ｂは、第三検出部３０Ｂからの出力および第四検出部４０Ｂからの出力に予め定められた係数を乗算した値の差分に対応する出力を行う。このような第二補正演算部５０Ｂのアナログ処理によっても、バックプロパゲーション学習を効率的且つ迅速に行うことができる。
【０１１６】
第一入出力切替部９０Ａは、可変抵抗アレイ部１０Ａの入力側に接続されており、第一信号入力部２０Ａからの入力と第三検出部３０Ｂへの出力とを切り替える。第一信号入力部２０Ａからの入力が行われる場合、第一入出力切替部９０Ａにより、第一信号入力部２０ＡがラインＬ１，Ｌ２，…Ｌｎに接続される。一方、第三検出部３０Ｂへの出力が行われる場合、第三検出部３０ＢがラインＬ１，Ｌ２，…Ｌｎに接続される。
【０１１７】
第二入出力切替部９０Ｂは、可変抵抗アレイ部１０Ａの出力側に接続されており、第二信号入力部２０Ｂからの入力と第一検出部３０Ａへの出力とを切り替える。第二信号入力部２０Ｂからの入力が行われる場合、第二入出力切替部９０Ｂにより、第二信号入力部２０ＢがラインＭ１，Ｍ２，…に接続される。一方、第一検出部３０Ａへの出力が行われる場合、第一検出部３０ＡがラインＭ１，Ｍ２，…に接続される。
【０１１８】
［第２実施形態に係る積和演算器の動作］
図８は、図７の積和演算器２のフォーワード動作を説明する図である。積和演算器２のフォーワード動作は、最初に第一入出力切替部９０Ａおよび第二入出力切替部９０Ｂによって切替を行うこと以外は、積和演算器１の動作と同様である。
すなわち、先ず、フォーワード動作が行われる場合、第一入出力切替部９０Ａを作動し、第一信号入力部２０ＡをラインＬ１，Ｌ２，…Ｌｎに接続する。また、第二入出力切替部９０Ｂを作動し、第一検出部３０ＡをラインＭ１，Ｍ２，…に接続する。
【０１１９】
そして、第一信号入力部２０Ａは、入力データから第一入力信号を生成し、可変抵抗アレイ部１０Ａを構成する複数の可変抵抗素子（例えば、１０Ａ１−１，１０Ａ２−１，…）に対して上記第一入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子（例えば、１０Ｃ−１）に対して上記入力信号を入力する。このように、本実施形態では、上記第一入力信号が、ＰＷＭ信号あるいはＰＡＭ信号として積和演算を行う可変抵抗アレイ部１０Ａと、補正値を算出するための第一リファレンスアレイ部１０Ｃとに、ほぼ同時に入力される。
【０１２０】
可変抵抗アレイ部１０Ａに上記第一入力信号が入力されると、可変抵抗アレイ部１０Ａでは、各々の可変抵抗素子（例えば、１０Ａ１−１，１０Ａ１−２，…）の伝導度Ｇに応じて、積和演算の結果が出力される。また、第一リファレンスアレイ部１０Ｃに上記入力信号が入力されると、各々のリファレンス抵抗素子（例えば、１０Ｃ−１）で、上記入力信号の入力値に応じて固有の出力値が出力される。
【０１２１】
次いで、第一検出部３０Ａは、複数の可変抵抗素子（例えば、１０Ａ１−１，１０Ａ２−１，…）に印加された上記第一入力信号に基づいて可変抵抗アレイ部１０Ａに流れる電流を検出すると共に、リファレンス抵抗素子（例えば、１０Ｃ−１）に印加された上記第一入力信号に基づいて第一リファレンスアレイ部１０Ｃに流れる電流を検出する。
【０１２２】
その後、第一補正演算部５０Ａは、可変抵抗アレイ部１０Ａに流れる電流の検出結果に応じた出力に対して、第一リファレンスアレイ部１０Ｃに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う。例えば、第一検出部３０Ａおよび第二検出部４０Ａからの出力に基づき、予め定めた演算として、例えば上記（１）式により、第一補正演算部５０Ａの出力、すなわち補正結果を得る。
【０１２３】
図９は、図７の積和演算器２のバックワード動作を説明する図である。
バックワード動作が行われる場合、先ず、第一入出力切替部９０Ａを作動し、第三検出部３０ＢをラインＬ１，Ｌ２，…Ｌｎに接続する。また、第二入出力切替部９０Ｂを作動し、第二信号入力部２０ＢをラインＭ１，Ｍ２，…に接続する。
【０１２４】
そして、第二信号入力部２０Ｂは、入力データから第二入力信号を生成し、可変抵抗アレイ部１０Ａを構成する複数の可変抵抗素子（例えば、１０Ａ１−ｎ〜１０Ａ１−１）に対して上記第二入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子（例えば、１０Ｄ−１）に対して上記第二入力信号を入力する。このように、本実施形態では、上記第二入力信号が、積和演算を行う可変抵抗アレイ部１０Ａと、補正値を算出するための第二リファレンスアレイ部１０Ｄとに、ほぼ同時に入力される。
【０１２５】
可変抵抗アレイ部１０Ａに上記第二入力信号が入力されると、可変抵抗アレイ部１０Ａでは、各々の可変抵抗素子（例えば、１０Ａ１−ｎ，…１０Ａ１−２，１０Ａ１−１）の伝導度Ｇに応じて、積演算の結果が出力される。また、第二リファレンスアレイ部１０Ｄに上記第二入力信号が入力されると、各々のリファレンスアレイ部１０Ｂ（例えば、１０Ｄ−１）で、上記第二入力信号の入力値に応じて固有の出力値が出力される。
【０１２６】
次いで、第三検出部３０Ｂは、複数の可変抵抗素子（例えば、１０Ａ１−ｎ〜１０Ａ１−１）に印加された上記第二入力信号に基づいて可変抵抗アレイ部１０Ａに流れる電流を検出すると共に、リファレンス抵抗素子（例えば、１０Ｄ−１）に印加された上記第二入力信号に基づいて第二リファレンスアレイ部１０Ｄに流れる電流を検出する。
【０１２７】
その後、第二補正演算部５０Ｂは、可変抵抗アレイ部１０Ａに流れる電流の検出結果に応じた出力に対して、第二リファレンスアレイ部１０Ｄに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う。例えば、第三検出部３０Ｂおよび第四検出部４０Ｂからの出力に基づき、予め定めた演算として、第二補正演算部５０Ｂの出力、すなわち補正結果を得る。
【０１２８】
上述したように、本実施形態によれば、積和演算器２のフォーワード動作において、１つの可変抵抗素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能となる。また、積和演算器２のバックワード動作では、可変抵抗アレイ部１０Ａを構成する可変抵抗カラム（例えば、１０Ａ１）から複数の可変抵抗素子（例えば、１０Ａ１−ｎ〜１０Ａ１−１）の抵抗値を読み出す際に、１つの第二信号入力部（例えば、２０Ｂ−１）からの上記第二入力信号に基づいて、上記複数の可変抵抗素子の補正結果を一度に得ることができ、バックプロパゲーション学習を効率的且つ迅速に行うことができる。また、１つの第二信号入力部からの上記第二入力信号の入力によって、上記複数の可変抵抗素子のそれぞれに対応する複数の重みＷを一度に得ることができるので、バックプロパゲーション学習時に、複数の可変抵抗素子の抵抗値を効率的且つ迅速に補正することができる。
【０１２９】
本実施形態では、積和演算器２は、第一リファレンスアレイ部１０Ｃと第二リファレンスアレイ部１０Ｄとを備えるが、これに限られない。積和演算器２は、リファレンスカラムで構成される第一リファレンスアレイ部１０Ｃを備えず、リファレンスローで構成される第二リファレンスアレイ部１０Ｄを備えていてもよい。本構成によっても、上記と同様の効果を奏することができる。
【０１３０】
図１０は、図１の積和演算器１を備えるニューロモーフィックデバイス上で実行されるニューラルネットワークの一例を示す模式図である。上記実施形態の積和演算器を、例えばニューロモーフィックデバイスに適用することができる。
図１０に示すように、ニューラルネットワーク１００は、入力層１０１と、隠れ層１０２と、出力層１０３と、隠れ層１０２のための演算を行なう積和演算器１−１と、出力層１０３のための演算を行なう積和演算器１−２とを備えている。積和演算器１−１，１−２は、図１の第１実施形態の積和演算器１と同様の構成であり、複数の可変抵抗素子を有する。
【０１３１】
入力層１０１は、例えば４つのノード１０１Ａ，１０１Ｂ，１０１Ｃ，１０１Ｄを備えている。隠れ層１０２は、例えば３つのノード１０２Ａ，１０２Ｂ，１０２Ｃを備えている。出力層１０３は、例えば３つのノード１０３Ａ，１０３Ｂ，１０３Ｃを備えている。
【０１３２】
積和演算器１−１は、入力層１０１と隠れ層１０２との間の演算を行ない、入力層１０１の４つのノード１０１Ａ，１０１Ｂ，１０１Ｃ，１０１Ｄと、隠れ層１０２の３つのノード１０２Ａ，１０２Ｂ，１０２Ｃとを接続する。積和演算器１−１は、図１に示す複数の可変抵抗素子の抵抗値を変更することによって、重みＷを変更する。
【０１３３】
隠れ層１０２と出力層１０３との間の演算は、積和演算器１−２が行う。積和演算器１−２は、隠れ層１０２の３つのノード１０２Ａ，１０２Ｂ，１０２Ｃと、出力層１０３の３つのノード１０３Ａ，１０３Ｂ，１０３Ｃとを接続する。積和演算器１−２は、複数の可変抵抗素子の抵抗値を変更することによって、重みＷを変更する。
【０１３４】
このように、図１の積和演算器１と同様の構成を有する積和演算器１−１，１−２をニューラルネットワーク１００に適用することにより、誤差の少ない積和演算によってニューラルネットワークの性能を向上させることができる。また、図２の積和演算器２をニューラルネットワーク１００に適用することによっても、上記同様の効果を奏することができる。
【０１３５】
以上、本発明の実施形態について詳述したが、本発明は上記実施形態に限定されるものではなく、特許請求の範囲内に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１３６】
例えば、以上に示した実施形態に係る各装置（例えば、積和演算器１，２）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体（記憶媒体）に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
【０１３７】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）あるいは電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
コンピュータでは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
【符号の説明】
【０１３８】
１  積和演算器
１−１  積和演算器
１−２  積和演算器
２  積和演算器
１０Ａ  可変抵抗アレイ部
１０Ａ１  可変抵抗カラム
１０Ａ１−１  可変抵抗素子
１０Ａ１−２  可変抵抗素子
１０Ａ１−ｎ  可変抵抗素子
１０Ａ２  可変抵抗カラム
１０Ａ２−１  可変抵抗素子
１０Ａ２−２  可変抵抗素子
１０Ａ２−ｎ  可変抵抗素子
１０Ｂ  リファレンスアレイ部
１０Ｂ−１  リファレンス抵抗素子
１０Ｂ−２  リファレンス抵抗素子
１０Ｂ−ｎ  リファレンス抵抗素子
１０Ｃ  第一リファレンスアレイ部
１０Ｃ−１  リファレンス抵抗素子
１０Ｃ−２  リファレンス抵抗素子
１０Ｃ−ｎ  リファレンス抵抗素子
１０Ｄ  第二リファレンスアレイ部
１０Ｄ−１  リファレンス抵抗素子
１０Ｄ−２  リファレンス抵抗素子
２０  信号入力部
２０−１  信号入力部
２０−２  信号入力部
２０−ｎ  信号入力部
２０Ａ  第一信号入力部
２０Ａ−１  第一信号入力部
２０Ａ−２  第一信号入力部
２０Ｂ  第二信号入力部
２０Ｂ−１  第二信号入力部
２０Ｂ−２  第二信号入力部
３０  第一検出部
３０−１  第一検出部
３０−２  第一検出部
３０Ａ  第一検出部
３０Ａ−１  第一検出部
３０Ａ−２  第一検出部
３０Ｂ  第三検出部
３０Ｂ−１  第三検出部
３０Ｂ−２  第三検出部
４０  第二検出部
４０Ａ  第二検出部
４０Ｂ  第四検出部
５０  補正演算部
５０−１  補正演算部
５０−２  補正演算部
５０Ａ  第一補正演算部
５０Ｂ  第二補正演算部
５１  増幅回路
５２  増幅回路
５３  差分出力回路
６０  第一変換部
７０  第二変換部
８０  第三変換部
９０Ａ  第一入出力切替部
９０Ｂ  第二入出力切替部
１００  ニューラルネットワーク
１０１  入力層
１０１Ａ  ノード
１０１Ｂ  ノード
１０１Ｃ  ノード
１０１Ｄ  ノード
１０２  層
１０２Ａ  ノード
１０２Ｂ  ノード
１０２Ｃ  ノード
１０３  出力層
１０３Ａ  ノード
１０３Ｂ  ノード
１０３Ｃ  ノード
【図１】
0006977908.tif 000007
【図２】
0006977908.tif 000008
【図３】
0006977908.tif 000009
【図４】
0006977908.tif 000010
【図５】
0006977908.tif 000011
【図６】
0006977908.tif 000012
【図７】
0006977908.tif 000013
【図８】
0006977908.tif 000014
【図９】
0006977908.tif 000015
【図１０】
0006977908.tif 000016