(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0009】
非特許文献1等に開示されたニューラルネットワークの演算において、該ニューラルネットワークの結合重みは、0であるか、または、正あるいは負のいずれかの値を持つ。しかしながら、可変抵抗素子では負のコンダクタンスを持つことができない。そこで、特許文献1の技術のように、正の重みを記憶する素子と負の重みを記憶する素子とを分割し、それぞれの和を別個に検出した後、結果の差分をとることで演算する方法がとられる。しかしながら、ニューラルネットワーク中の正負の各重みがどちらの素子に格納されているかを選別する機構が必要になり、機器が複雑化する。また、学習が進んでも重み範囲の符号が固定されているため、識別率が十分に上昇しない可能性がある。
【0010】
また、非特許文献2の技術のように、素子特性の要因で、正負のそれぞれの重みに対応した2個の素子を割り当て、各素子における正負の値を記憶する方法があるが、アレイの物理的サイズが大きくなり、また、正・負出力の比較用の回路が出力列ペア毎に必要になり、機器が複雑化、大型化する。また、各素子における正負の値の一方が上下限に達した場合には2つの素子の両方を再設定することが必要になり、取扱い性に課題が生じる。
【0011】
本発明の目的は、1つの素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能な積和演算器、ニューロモーフィックデバイスおよび積和演算方法を提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するために、本発明は以下の手段を提供する。
【0013】
[1]複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスアレイ部と、
入力データから入力信号を生成し、前記複数の可変抵抗素子および前記リファレンス抵抗素子に対して前記入力信号を入力する信号入力部と、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記リファレンス抵抗素子に印加された前記入力信号に基づいて、前記リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に基づいて、予め定めた演算を行う補正演算部と、
を備える積和演算器。
【0014】
[2]前記第一検出部からの出力をデジタル変換して、前記補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記補正演算部に出力する第二変換部と、
を更に備え、
前記補正演算部は、前記第二変換部からの出力に予め定められた係数を乗算した値を、前記第一変換部からの出力から減算し、更に、予め定められた係数を乗算する、上記[1]に記載の積和演算器。
【0015】
[3]前記補正演算部の出力は、以下の式で決定される、上記[2]に記載の積和演算器。
(前記補正演算部の出力)={(前記第一検出部の出力)−(前記第二検出部の出力)×K1}×K2
但し、K1およびK2は係数
【0016】
[4]前記補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する差分出力回路と、を備え、
前記補正演算部は、前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記[1]に記載の積和演算器。
【0017】
[5]前記信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、上記[1]〜[4]のいずれかに記載の積和演算器。
【0018】
[6]前記信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、上記[1]〜[4]のいずれかに記載の積和演算器。
【0019】
[7]複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
1つの前記補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、上記[1]〜[6]のいずれかに記載の積和演算器。
【0020】
[8]前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスカラムで構成される、上記[1]に記載の積和演算器。
【0021】
[9]前記リファレンスアレイ部が、前記複数のリファレンス抵抗素子を有するリファレンスローで構成される、上記[1]に記載の積和演算器。
【0022】
[10]前記可変抵抗素子は、磁気抵抗効果素子である、上記[1]〜[9]のいずれかに記載の積和演算器。
【0023】
[11]複数の可変抵抗素子を有する可変抵抗アレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスカラムで構成される第一リファレンスアレイ部と、
抵抗値が固定されたリファレンス抵抗素子を有するリファレンスローで構成される第二リファレンスアレイ部と、
前記可変抵抗アレイ部の入力側に接続され、入力データから第一入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスカラムの前記リファレンス抵抗素子に対して前記第一入力信号を入力する第一信号入力部と、
前記可変抵抗アレイ部の出力側に接続され、前記複数の可変抵抗素子に印加された前記第一入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第一検出部と、
前記可変抵抗アレイ部の出力側に接続され、前記リファレンスカラムの前記リファレンス抵抗素子に印加された前記第一入力信号に基づいて、前記第一リファレンスアレイ部に流れる電流を検出する第二検出部と、
前記可変抵抗アレイ部の出力側に接続され、入力データから第二入力信号を生成し、前記複数の可変抵抗素子および前記リファレンスローの前記リファレンス抵抗素子に対して前記第二入力信号を入力する第二信号入力部と、
前記可変抵抗アレイ部の入力側に接続され、前記複数の可変抵抗素子に印加された前記第二入力信号に基づいて、前記可変抵抗アレイ部に流れる電流を検出する第三検出部と、
前記可変抵抗アレイ部の入力側に接続され、前記リファレンスローの前記リファレンス抵抗素子に印加された前記第二入力信号に基づいて、前記第二リファレンスアレイ部に流れる電流を検出する第四検出部と、
前記第一検出部からの出力に対して、前記第二検出部からの出力に応じて予め定めた演算を行う第一補正演算部と、
前記第三検出部からの出力に対して、前記第四検出部からの出力に応じて予め定めた演算を行う第二補正演算部と、
前記可変抵抗アレイ部の入力側に接続され、前記第一信号入力部からの入力と前記第三検出部への出力とを切り替える第一入出力切替部と、
前記可変抵抗アレイ部の出力側に接続され、前記第二信号入力部からの入力と前記第一検出部への出力とを切り替える第二入出力切替部と、
を備える、積和演算器。
【0024】
[12]前記第一検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第一変換部と、
前記第二検出部からの出力をデジタル変換して、前記第一補正演算部に出力する第二変換部と、
を更に備え、
前記第一補正演算部は、前記第二検出部からの出力に予め定められた係数を乗算した値を、前記第一検出部からの出力から減算し、更に、予め定められた係数を乗算する、上記[11]に記載の積和演算器。
【0025】
[13]前記第一補正演算部の出力は、以下の式(1)で決定される、上記[12]に記載の積和演算器。
(前記第一補正演算部の出力)={(前記第一検出部の出力)−(前記第二検出部の出力)×K1}×K2 ・・・(1)
但し、K1およびK2は係数
【0026】
[14]前記第一補正演算部は、
前記第一検出部からの出力および前記第二検出部からの出力の一方あるいは両方を増幅する第一増幅回路と、
前記第一検出部からの出力と第二検出部からの出力との差分を出力する第一差分出力回路と、を備え、
前記第一検出部からの出力および前記第二検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記[11]に記載の積和演算器。
【0027】
[15]前記第一信号入力部は、前記入力データに基づいてパルス幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電荷検出方式による検出回路を有する、上記[11]〜[14]のいずれかに記載の積和演算器。
【0028】
[16]前記第一信号入力部は、前記入力データに基づいてパルス振幅変調信号を入力し、
前記第一検出部および前記第二検出部は、電流検出方式による検出回路を有する、上記[11]〜[14]のいずれかに記載の積和演算器。
【0029】
[17]複数の前記可変抵抗素子でそれぞれ構成される複数の可変抵抗カラムと、
前記第一入力信号に基づいて前記複数の可変抵抗カラムに流れる電流をそれぞれ検出する複数の前記第一検出部と、
を備え、
前記第一補正演算部が、前記複数の第一検出部からの複数の出力に対して演算を行う、上記[11]〜[16]のいずれかに記載の積和演算器。
【0030】
[18]前記第三検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第三変換部と、
前記第四検出部からの出力をデジタル変換して、前記第二補正演算部に出力する第四変換部と、
を更に備え、
前記第二補正演算部は、前記第四検出部からの出力に予め定められた係数を乗算した値を、前記第三検出部からの出力から減算し、更に、予め定められた係数を乗算する、上記[11]に記載の積和演算器。
【0031】
[19]前記第二補正演算部は、
前記第三検出部からの出力および前記第四検出部からの出力のいずれか一方、あるいは両方を増幅する第二増幅回路と、
前記第三検出部からの出力と第四検出部からの出力との差分を出力する第二差分出力回路と、を備え、
前記第三検出部からの出力および前記第四検出部からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う、上記[11]に記載の積和演算器。
【0032】
[20]上記[1]〜[19]のいずれかに記載の積和演算器を備えるニューロモーフィックデバイス。
【0033】
[21]
上記[1]〜[19]のいずれかに記載の積和演算器で実行される積和演算方法であって、
入力データから入力信号を生成し、可変抵抗アレイ部を構成する複数の可変抵抗素子に対して前記入力信号を入力すると共に、リファレンスアレイ部を構成する、抵抗値が固定されたリファレンス抵抗素子に対して、前記入力信号を出力する入力ステップと、
前記複数の可変抵抗素子に印加された前記入力信号に基づいて前記可変抵抗アレイ部に流れる電流を検出すると共に、前記リファレンス抵抗素子に印加された前記入力信号に基づいて前記リファレンスアレイ部に流れる電流を検出する検出ステップと、
前記可変抵抗アレイ部に流れる電流の検出結果に応じた出力に対して、前記リファレンスアレイ部に流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う補正演算ステップと、
を有する、積和演算方法。
【発明の効果】
【0034】
本発明によれば、1つの素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することができる。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【0037】
[第1実施形態に係る積和演算器の構成]
図1は、本発明の第1実施形態に係る積和演算器の構成の一例を示す図である。
図1に示すように、積和演算器1は、可変抵抗アレイ部10A、リファレンスアレイ部10B、信号入力部20、第一検出部30、第二検出部40および補正演算部50を備えている。
【0038】
可変抵抗アレイ部10Aは、複数の可変抵抗カラム10A1,10A2,…を有している。可変抵抗カラム10A1は、複数の可変抵抗素子10A1−1,10A1−2,…10A1−n(nは自然数)で構成されている。また、可変抵抗カラム10A2は、複数の可変抵抗素子10A2−1,10A2−2,…,10A2−n(nは自然数)で構成されている。この可変抵抗アレイ部10Aでは、各々の可変抵抗素子の伝導度Gに応じて、上記可変抵抗カラム毎に、積和演算の結果が出力される。
【0039】
図1では、可変抵抗アレイ部10Aは、2つの可変抵抗カラム10A1,10A2を有しているが、これに限らず、1つの可変抵抗カラムを有していてもよいし、3つ以上の可変抵抗カラムを有していてもよい。また、可変抵抗カラム10A1,10A2は、それぞれ3つの可変抵抗素子を有しているが、これに限らず、1つまたは2つの可変抵抗素子を有していてもよいし、4つ以上の可変抵抗素子を有していてもよい。
【0040】
上記可変抵抗素子は、特に制限は無いが、例えば磁気抵抗効果を利用して抵抗が可変な磁気抵抗効果素子である。磁気抵抗効果素子としては、トンネル磁気抵抗効果(TMR)素子、巨大磁気抵抗効果(GMR)素子などが挙げられる。特に、磁壁を利用した三端子型の磁気抵抗効果素子は、抵抗変換の対称性が良好であることから、可変抵抗素子として用いられるのが好ましい。
【0041】
リファレンスアレイ部10Bは、抵抗値が固定された複数のリファレンス抵抗素子10B−1,10B−1,…10B−n(nは自然数)を有するリファレンスアレイで構成されている。このリファレンスアレイ部10Bでは、各リファレンス抵抗素子の抵抗値が固定されているため、入力信号(入力値)に応じて、固有の出力がなされる。
【0042】
上記各リファレンス抵抗素子は、可変抵抗素子を最初に同一の設定値に設定し、それ以降設定値を変更しないことにより、実質的な固定抵抗値として使用してもよいし、物理的に、同じ抵抗値を持つように作製された固定抵抗素子を用いてもよい。
また、
図1では、リファレンスアレイ部10Bは、複数のリファレンス抵抗素子10B−1,10B−1,…10B−n(nは自然数)を有するが、これに限らず、1つのリファレンス抵抗素子で構成されてもよい。
【0043】
本実施形態では、リファレンスアレイ部10Bが、複数のリファレンス抵抗素子10B−1,10B−1,…10B−nを有するリファレンスカラムで構成される。このリファレンスカラムにより、積和演算時に必要な補正を行うことができる。
【0044】
信号入力部20は、入力データから入力信号を生成し、複数の可変抵抗素子および複数のリファレンス抵抗素子に対して上記入力信号を入力する。本実施形態では、信号入力部20は、複数の信号入力部20−1,20−2,…20−n(nは自然数)で構成されている。信号入力部20−1は、ラインL1を介して、可変抵抗素子10A1−1,10A2−1,…、およびリファレンス抵抗素子10B−1に接続されている。信号入力部20−2は、ラインL2を介して、複数の可変抵抗素子10A1−2,10A2−2,…、およびリファレンス抵抗素子10B−2に接続されている。また、信号入力部20−nは、ラインLnを介して、複数の可変抵抗素子10A1−n,10A2−n,…、およびリファレンス抵抗素子10B−nに接続されている。
【0045】
そして、信号入力部20−1は、複数の可変抵抗素子10A1−1,10A2−1,…、およびリファレンス抵抗素子10B−1に対して上記入力信号を出力する。信号入力部20−2も、上記と同様にして、複数の可変抵抗素子10A1−2,10A2−2,…、およびリファレンス抵抗素子10B−2に対して上記入力信号を出力する。信号入力部20−nも、上記と同様にして、複数の可変抵抗素子10A1−n,10A2−n,…、およびリファレンス抵抗素子10B−nに対して上記入力信号を出力する。
【0046】
図1では、信号入力部20は、複数の信号入力部20−1,20−2,…20−n(nは自然数)で構成されているが、これに限らず、1つの信号入力部で構成されてもよい。
【0047】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記入力信号は、例えばパルス幅変調信号(以下、PWM信号ともいう)あるいはパルス振幅変調信号(以下、PAM信号ともいう)である。このとき、信号入力部20は、上記入力データに基づいてPWM信号あるいはPAM信号を入力する。
【0048】
第一検出部30は、複数の可変抵抗素子に印加された上記入力信号に基づいて、可変抵抗アレイ部10Aに流れる電流を検出する。本実施形態では、第一検出部30は、複数の第一検出部30−1,30−2,…で構成されている。第一検出部30−1は、ラインM1を介して、複数の可変抵抗素子10A1−1,10A1−2,…10A1−nに接続されている。第一検出部30−2は、ラインM2を介して、複数の可変抵抗素子10A2−1,10A2−2,…10A2−nに接続されている。
【0049】
そして、第一検出部30−1は、複数の可変抵抗素子10A1−1,10A1−2,…10A1−nに印加された上記入力信号に基づいて、可変抵抗カラムA1に流れる電流を検出する。第一検出部30−2も、上記と同様にして、複数の可変抵抗素子10A2−1,10A2−2,…10A2−n(nは自然数)に印加された上記入力信号に基づいて、可変抵抗カラム10A2に流れる電流を検出する。すなわち、複数の第一検出部30−1,30−2,…が、上記入力信号に基づいて複数の可変抵抗カラム10A1,10A2,…に流れる電流をそれぞれ検出する。
【0050】
図1では、第一検出部30は、複数の第一検出部30−1,30−2,…で構成されているが、これに限らず、1つの第一検出部で構成されてもよい。
【0051】
信号入力部20が、上記入力データに基づいてPWM信号を入力する場合、第一検出部30は、電荷検出方式による検出回路を有することができる。また、信号入力部20が、上記入力データに基づいてPAM信号を入力する場合、第一検出部30は、電流検出方式による検出回路を有することができる。すなわち、入力信号がPWM信号であるときは電荷検出による出力電圧値を使用し、入力信号がPAM信号であるときは電流検出による出力電圧値を用いることができる。
【0052】
第二検出部40は、複数のリファレンス抵抗素子に印加された上記入力信号に基づいて、リファレンスアレイ部10Bに流れる電流を検出する。第二検出部40は、ラインM3を介して、リファレンス抵抗素子10B−1〜10B−nに接続されている。そして、第二検出部40は、複数のリファレンス抵抗素子10B−1〜10B−nのいずれかに印加された上記入力信号に基づいて、リファレンスアレイ部10Bに流れる電流を検出する。
【0053】
信号入力部20が、上記入力データに基づいてPWM信号を入力する場合、第二検出部40は、電荷検出方式による検出回路を有することができる。また、信号入力部20が、上記入力データに基づいてPAM信号を入力する場合、第二検出部40は、電流検出方式による検出回路を有することができる。
【0054】
補正演算部50は、第一検出部30からの出力に対して、第二検出部40からの出力に基づいて予め定めた演算を行う。本実施形態では、補正演算部50は、複数の補正演算部50−1,50−2,…で構成されている。補正演算部50−1は、第一検出部30−1および第二検出部40に接続され、補正演算部50−2は、第一検出部30−2および第二検出部40に接続されている。そして、補正演算部50−1は、第一検出部30−1の出力に対して、第二検出部40からの出力に基づいて予め定めた演算を行う。補正演算部50−2も、上記と同様にして、第一検出部30−2の出力に対して、第二検出部40からの出力に基づいて予め定めた演算を行う。
【0055】
図2は、
図1の補正演算部50がデジタル処理を行う場合の構成の一例を示す図である。
補正演算部50がデジタル処理を行う場合、積和演算器1は、例えば、第一検出部30(例えば、第一検出部30−2)からの出力をデジタル変換して、補正演算部50(例えば、補正演算部50−2)に出力する第一変換部60と、第二検出部40からの出力をデジタル変換して、補正演算部50(例えば、補正演算部50−2)に出力する第二変換部70とを更に備えることができる。
【0056】
このとき、補正演算部50は、デジタル論理演算を行い、第二検出部40からの出力に予め定められた係数を乗算した値を、第一変換部60からの出力から減算し、更に、予め定められた係数を乗算する。
【0057】
具体的には、補正演算部50の出力は、以下の式(1)で決定される。本式により解析的補正値が得られ、理論上補正計算が可能となる。
(補正演算部50の出力)={(第一検出部30の出力)−(第二検出部40の出力)×K1}×K2 ・・・(1)
但し、K1およびK2は係数
【0058】
このように、補正演算部50のデジタル処理により、第一検出部30および第二検出部40からの出力に基づき、上記式(1)によって補正結果を得ることで、1つの可変抵抗素子(例えば、可変抵抗素子10A1−1)で正負を含めた積和演算を行うことができ、デジタル演算で精度良く補正を行うことが可能となる。
【0059】
図3は、
図1の補正演算部50がアナログ処理を行う場合の構成の一例を説明する図である。
補正演算部50がアナログ処理を行う場合、補正演算部50は、例えば、第一検出部30(例えば、第一検出部30−2)からの出力および第二検出部40からの出力を増幅する増幅回路51,52(第一増幅回路)と、第一検出部30からの出力と第二検出部40からの出力との差分を出力する差分出力回路53(第一差分検出回路)と、を備えることができる。差分出力回路53には、差分出力回路53からの出力をデジタル変換する第三変換部80が接続されている。
【0060】
このとき、補正演算部50は、第一検出部30からの出力および第二検出部40からの出力に予め定められた係数を乗算した値の差分に対応する出力を行う。このような補正演算部50のアナログ処理によっても、最終的な補正結果を得ることができる。
【0061】
尚、本実施形態では、補正演算部50は、2つの増幅回路51,52を有しているが、これに限られず、第一検出部30(例えば、第一検出部30−2)からの出力および第二検出部40からの出力を増幅する増幅回路51,52の一方を有していてもよい。
【0062】
[第1実施形態に係る積和演算器の動作]
図4は、
図1の積和演算器1で実行される積和演算方法の一例を示すフローチャートである。
図4に示すように、先ず、信号入力部20は、入力データから入力信号を生成し(ステップS1)、可変抵抗アレイ部10Aを構成する複数の可変抵抗素子(例えば、10A1−1〜10A1−n)に対して上記入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子(例えば、10B−1)に対して上記入力信号を入力する(ステップS2)。
【0063】
上記入力信号が例えばPWM信号である場合、信号入力部20は、上記入力データに基づいてPWM信号を入力する。上記入力信号がPAM信号である場合、信号入力部20は、上記入力データに基づいてPAM信号を入力する。
【0064】
このように、本実施形態では、上記入力信号が、PWM信号あるいはPAM信号として積和演算を行う可変抵抗アレイ部10Aと、補正値を算出するためのリファレンスアレイ部10Bとに、ほぼ同時に入力される。
【0065】
可変抵抗アレイ部10Aに上記入力信号が入力されると、可変抵抗アレイ部10Aでは、各々の可変抵抗素子(例えば、10A1−1,10A1−2,…10A1−n)の伝導度Gに応じて、積和演算の結果が出力される。また、リファレンスアレイ部10Bに上記入力信号が入力されると、各々のリファレンス抵抗素子(例えば、10B−1)では、上記入力信号の入力値に応じて固有の出力値が出力される。
【0066】
次いで、第一検出部30は、複数の可変抵抗素子(例えば、10A1−1〜10A1−n)に印加された上記入力信号に基づいて可変抵抗アレイ部10Aに流れる電流を検出すると共に、リファレンス抵抗素子(例えば、10B−1)に印加された上記入力信号に基づいてリファレンスアレイ部10Bに流れる電流を検出する(ステップS3)。
【0067】
その後、補正演算部50は、可変抵抗アレイ部10Aに流れる電流の検出結果に応じた出力に対して、リファレンスアレイ部10Bに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う(ステップS4)。例えば、第一検出部30および第二検出部40からの出力に基づき、予め定めた演算として、例えば上記式(1)により、補正演算部50の出力、すなわち補正結果を得る。
【0068】
次に、上記式(1)によって補正結果が得られる原理を説明する。
可変抵抗素子のコンダクタンスG(単位:S(=1/Ω))は、物性から決まる定数であり、変化可能な範囲は決まっている。そこで、例えば、可変抵抗素子のコンダクタンスGが1μS〜2μSの範囲のみ変化できるとする。一方、重みWで表現される範囲は、仕様により変化するが、0を中心として正の範囲と負の範囲を含むように設定し、例えば、−0.5〜+0.5(あるいは、−1.0〜+1.0)とする。この場合、重みWで表現される範囲を、コンダクタンスGの範囲に割り当てる。
図5の例の場合、コンダクタンスGと重みWとの相関から、コンダクタンスGは、下記式(2)で表現される。
G=(W+1.5)×10
−6 ・・・(2)
【0069】
可変抵抗素子のコンダクタンスGと重みWとは、W=G×10
6−1.5の関係にあるため、W×(Input)を求めるならば、上記式(2)の両辺に(Input)を乗算して、下記式を得る。
W×(Input)=G×(Input)×10
6−1.5×(Input) ・・・(3)
よって、(Input)が分かれば、上記式(3)より、W×(Input)が求められる。
【0070】
次に、固定された抵抗値を有するリファレンス抵抗素子に入力信号を入力し、リファレンス抵抗素子からの出力を、可変抵抗素子からの出力と共に読み出す。リファレンス抵抗素子のコンダクタンスG(以下、G_Refともいう)の値は、抵抗値と同様に固定された値であり、取りうる範囲であれば特に制限は無いが、安定性の観点から最大値あるいは最小値が望ましい。例えば、
図5の例の場合、(G_Ref)を最小値である1μSとすることができる。これにより、(G_Ref)×(入力値)の総和、すなわち(G_Ref)×(入力値の総和)が得られる。したがって、リファレンス抵抗素子で構成されるリファレンスカラムからの出力を検出し、リファレンスカラムからの出力を(G_Ref)で除算することにより、(入力値の総和)を求めることができる。
【0071】
実際の検出では、重みWを表現する可変抵抗素子で構成される可変抵抗カラムからの出力と、リファレンスカラムからの出力とを検出し、上記式(3)の関係と、(G_Ref)=1μSから、
W×(Input)=G×(Input)×10
6−1.5×(Input)
=(可変抵抗カラムからの出力)×10
6−1.5×(リファレンスカラムからの出力)÷(G_Ref)
=(可変抵抗カラムからの出力)×10
6−1.5×(リファレンスカラムからの出力)×10
6
={(可変抵抗カラムからの出力)−1.5×(リファレンスカラムからの出力)}×10
6
上記式において、W×(Input)は、補正演算部からの出力に相当し、(可変抵抗カラムからの出力)は(第一検出部からの出力)に相当し、(リファレンスカラムからの出力)は(第二検出部からの出力)に相当する。また、「1.5」は係数K1に、「10
6」は係数K2に相当する。よって、上記式(1)から、補正演算部の出力(補正結果)を得ることができる。
【0072】
次に、上記式(1)を用いて得られた補正結果の具体例を挙げる。
以下の5つの具体例では、5つの可変抵抗素子で構成される可変抵抗カラムと、5つのリファレンス抵抗素子で構成されるリファレンスカラムとを備える積和演算器を想定する。
【0073】
(具体例1)
(G_Ref)としてGminを用い、Gの範囲を1μS〜2μSとした場合を、表1に示す。表1中、「Input/MAC」の最下段の値「0.0000025」が、入力値(Input)に固定値である(G_Ref)を乗算した値(リファレンスカラムの出力)であり、「DW/MAC」の最下段の値「4.05E−06」が、入力値に重みWを乗じた値である(可変抵抗カラムの出力)。そして、「Comp.MAC」の最下段の値が、(G_Ref)からの値を用いて補正した計算結果である(補正演算部の出力)。この場合、補正演算部の出力「0.3」を得られることが分かる。
【0075】
(具体例2)
(G_Ref)およびGの範囲を具体例1と同様とし、5つの可変抵抗素子に入力される入力値を変えた場合を、表2に示す。表2の結果から、入力値が異なっても、補正演算部の出力「0.06」を得られることが分かる。
【0077】
(具体例3)
表3では、(G_Ref)、Gの範囲および入力値を具体例1と同様とし、重みWを変えた場合を、表3に示す。表中、「Ideal/Weight」は重みWを示す。表3の結果から、重みWを変えても、補正演算部の出力「−0.354」を得られることが分かる。
【0079】
(具体例4)
Gの範囲、入力値および重みWを具体例1と同様とし、(G_Ref)としてGmaxを用いた場合を、表4に示す。表4の結果から、(G_Ref)を変えても、補正演算部の出力「0.3」を得られることが分かる。
【0081】
(具体例5)
入力値、重みW、(G_Ref)を具体例1と同様とし、Gの範囲を1μS〜3μSnに変更した場合を、表5に示す。可変抵抗素子のコンダクタンスGの範囲が1μS〜3μSである場合、可変抵抗素子のコンダクタンスGと重みWとは、W=G×0.5×10
6−1の関係にある。よって上記式(3)は、以下のように書き換えることができる。
W×(Input)=G×(Input)×0.5×10
6−1×(Input)÷(G_Ref) ・・・(4)
表5の結果から、可変抵抗素子のコンダクタンスGの範囲が異なる場合でも、上記式(4)を用いて、補正演算部の出力「0.3」を得られることが分かる。
【0083】
図6は、
図1の積和演算器1の変形例を示す図である。
図1では、積和演算器1は、複数の補正演算部50−1,50−2,…を備えるが、これに限られず、1つの補正演算部を備えてもよい。
具体的には、
図6に示すように、複数の第一検出部30−1,30−2,…が複数の可変抵抗カラム10A1,10A2,…からの出力をそれぞれ検出する。そして、1つの補正演算部50が、複数の第一検出部30−1,30−2,…からの複数の出力に対して演算を行う。このように、複数の第一検出部30−1,30−2,…に対して1つの補正演算部50を共有することで、アレイの実装面積を低減することが可能となる。
【0084】
上述したように、本実施形態によれば、積和演算器1が、複数の可変抵抗素子(例えば、10A1〜10A1−n)を有する可変抵抗アレイ部10Aと、抵抗値が固定されたリファレンス抵抗素子(例えば、10B−1)を有するリファレンスアレイ部10Bと、入力データから入力信号を生成し、上記複数の可変抵抗素子および上記リファレンス抵抗素子に対して上記入力信号を入力する信号入力部20と、上記複数の可変抵抗素子に印加された上記入力信号に基づいて、可変抵抗アレイ部10Aに流れる電流を検出する第一検出部30と、上記リファレンス抵抗素子に印加された上記入力信号に基づいて、リファレンスアレイ部10Bに流れる電流を検出する第二検出部40と、第一検出部30からの出力に対して、第二検出部40からの出力に基づいて、予め定めた演算を行う補正演算部50とを備える。本構成によれば、可変抵抗アレイ部10Aに対して入力値が入力されると共に、抵抗が固定されたリファレンスアレイ部10Bに対しても入力値が入力され、入力値に応じた補正値が同時に得られ、可変抵抗アレイ部10Aの出力から得られた補正値を元に予め定められた演算を行う。よって、1つの可変抵抗素子に正負の重みWを付与することができ、ニューラルネットワークの重み毎に正負を担当する2つの可変抵抗素子を設ける必要が無く、可変抵抗素子の実装面積を低減することができる。したがって、1つの可変抵抗素子で正負の重みWを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能となる。また、誤差の少ない積和演算を行うことができるので、論理演算器の性能を向上させることができる。
【0085】
[第2実施形態に係る積和演算器の構成]
図7は、本発明の第2実施形態に係る積和演算器の構成の一例を示す図である。
図7に示すように、積和演算器2は、可変抵抗アレイ部10A、第一リファレンスアレイ部10C、第二リファレンスアレイ部10D、第一信号入力部20A、第二信号入力部20B、第一検出部30A、第二検出部40A、第三検出部30B、第四検出部40B、第一補正演算部50A、第二補正演算部50B、第一入出力切替部90Aおよび第二入出力切替部90Bを備える。
【0086】
可変抵抗アレイ部10Aは、複数の可変抵抗素子で構成される複数の可変抵抗カラム10A1,10A2,…を有している。可変抵抗アレイ部10Aの構成は、上記第1実施形態と同様であるので、その説明を省略する。
【0087】
第一リファレンスアレイ部10Cは、抵抗値が固定された複数のリファレンス抵抗素子10C−1,10C−2,…10C−n(nは自然数)を有するリファレンスカラムで構成されている。
図7では、第一リファレンスアレイ部10Cは、複数のリファレンス抵抗素子10C−1,10C−2,…10C−nを有するが、これに限らず、抵抗値が固定された1つのリファレンス抵抗素子で構成されてもよい。
【0088】
第二リファレンスアレイ部10Dは、抵抗値が固定された複数のリファレンス抵抗素子10D−1,10D−2,…を有するリファレンスローで構成されている。
図7では、第二リファレンスアレイ部10Dは、複数のリファレンス抵抗素子10D−1,10D−2,…を有するが、これに限らず、抵抗値が固定された1つのリファレンス抵抗素子で構成されてもよい。
【0089】
第一信号入力部20Aは、可変抵抗アレイ部10Aの入力側に接続されており、入力データから第一入力信号を生成し、複数の可変抵抗素子およびリファレンスカラムのリファレンス抵抗素子に対して上記第一入力信号を入力する。
本実施形態では、第一信号入力部20Aは、複数の第一信号入力部20A−1,20A−2,…で構成されている。第一信号入力部20A−1は、ラインL1を介して、複数の可変抵抗素子10A1−1,10A2−1,…およびリファレンス抵抗素子10C−1に接続されている。第一信号入力部20A−2は、ラインL2を介して、複数の可変抵抗素子10A1−2,10A2−2,…、およびリファレンス抵抗素子10C−2に接続されている。
【0090】
そして、第一信号入力部20A−1は、複数の可変抵抗素子10A1−1,10A2−1,…およびリファレンス抵抗素子10C−1に対して上記第一入力信号を入力する。第一信号入力部20A−2も、上記と同様にして、複数の可変抵抗素子10A1−2,10A2−2,…およびリファレンス抵抗素子10C−2に対して上記第一入力信号を入力する。
【0091】
図7では、第一信号入力部20Aは、複数の第一信号入力部20A−1,20A−2,…で構成されているが、これに限らず、1つの第一信号入力部で構成されてもよい。
【0092】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記第一入力信号は、例えばパルス幅変調信号(以下、PWM信号ともいう)あるいはパルス振幅変調信号(以下、PAM信号ともいう)である。このとき、第一信号入力部20Aは、上記入力データに基づいてPWM信号あるいはPAM信号を入力する。
【0093】
第一検出部30Aは、可変抵抗アレイ部10Aの出力側に接続されており、複数の可変抵抗素子に印加された上記第一入力信号に基づいて、可変抵抗アレイ部10Aに流れる電流を検出する。本実施形態では、第一検出部30Aは、複数の第一検出部30A−1,30A−2,…で構成されている。第一検出部30A−1は、ラインM1を介して、複数の可変抵抗素子10A1−1,10A1−2,…10A1−nに接続されている。第一検出部30A−2は、ラインM2を介して、複数の可変抵抗素子10A2−1,10A2−2,…10A2−nに接続されている。
【0094】
第一検出部30A−1は、複数の可変抵抗素子10A1−1,10A1−2,…10A1−nに印加された上記第一入力信号に基づいて、可変抵抗カラム10A1に流れる電流を検出する。第一検出部30A−2も、上記と同様にして、複数の可変抵抗素子10A2−1,10A2−2,…10A2−n(nは自然数)に印加された上記第一入力信号に基づいて、可変抵抗カラム10A2に流れる電流を検出する。すなわち、複数の第一検出部30A−1,30A−2,…が、上記第一入力信号に基づいて複数の可変抵抗カラム10A1,10A2,…に流れる電流をそれぞれ検出する。
【0095】
図7では、第一検出部30Aは、複数の第一検出部30A−1,30A−2,…で構成されているが、これに限らず、1つの第一検出部で構成されてもよい。
【0096】
第一信号入力部20Aが、上記入力データに基づいてPWM信号を入力する場合、第一検出部30Aは、電荷検出方式による検出回路を有することができる。また、第一信号入力部20Aが、上記入力データに基づいてPAM信号を入力する場合、第一検出部30Aは、電流検出方式による検出回路を有することができる。すなわち、入力信号がPWM信号であるときは電荷検出による出力電圧値を使用し、入力信号がPAM信号であるときは電流検出による出力電圧値を用いることができる。
【0097】
第二検出部40Aは、可変抵抗アレイ部10Aの出力側に接続されており、リファレンスカラムのリファレンス抵抗素子に印加された上記第一入力信号に基づいて、第一リファレンスアレイ部10Cに流れる電流を検出する。本実施形態では、第二検出部40Aは、ラインM3を介して、リファレンス抵抗素子10C−1〜10C−nに接続されている。そして、第二検出部40Aは、複数のリファレンス抵抗素子10C−1〜10C−nのいずれかに印加された上記第一入力信号に基づいて、第一リファレンスアレイ部10Cに流れる電流を検出する。
【0098】
第一信号入力部20Aが、上記入力データに基づいてPWM信号を出力する場合、第二検出部40Aは、電荷検出方式による検出回路を有することができる。また、第一信号入力部20Aが、上記入力データに基づいてPAM信号を出力する場合、第二検出部40Aは、電流検出方式による検出回路を有することができる。
【0099】
第二信号入力部20Bは、可変抵抗アレイ部10Aの出力側に接続されており、入力データから第二入力信号を生成し、複数の可変抵抗素子およびリファレンスローのリファレンス抵抗素子に対して上記第二入力信号を入力する。
本実施形態では、第二信号入力部20Bは、複数の第二信号入力部20B−1,20B−2,…で構成されている。第二信号入力部20B−1は、ラインM1を介して、複数の可変抵抗素子10A1−n,…10A2−2,10A1−1およびリファレンス抵抗素子10D−1に接続されている。第二信号入力部20B−2は、ラインM2を介して、複数の可変抵抗素子10A2−n,…10A2−2,10A2−1およびリファレンス抵抗素子10D−2に接続されている。
【0100】
そして、第二信号入力部20B−1は、複数の可変抵抗素子10A1−n,…10A1−2,10A−1およびリファレンス抵抗素子10D−1に対して上記第二入力信号を入力する。第二信号入力部20B−2も、上記と同様にして、複数の可変抵抗素子10A2−n,…10A2−2,10A2−1およびリファレンス抵抗素子10D−2に対して上記第二入力信号を入力する。
【0101】
図7では、第二信号入力部20Bは、複数の第二信号入力部20B−1,20B−2,…で構成されているが、これに限らず、1つの第二信号入力部で構成されてもよい。
【0102】
上記複数の可変抵抗素子およびリファレンス抵抗素子に対する上記第二入力信号は、例えばパルス幅変調信号(以下、PWM信号ともいう)あるいはパルス振幅変調信号(以下、PAM信号ともいう)である。このとき、第二信号入力部20Bは、上記入力データに基づいてPWM信号あるいはPAM信号を入力する。
【0103】
第三検出部30Bは、可変抵抗アレイ部10Aの入力側に接続されており、複数の可変抵抗素子に印加された上記第二入力信号に基づいて、可変抵抗アレイ部10Aに流れる電流を検出する。本実施形態では、第三検出部30Bは、複数の第三検出部30B−1,30B−2,…で構成されている。第三検出部30B−1は、ラインL1を介して、複数の可変抵抗素子10A1−1,10A2−1,…に接続されている。第三検出部30B−2は、ラインL2を介して、複数の可変抵抗素子10A1−2,10A2−2,…に接続されている。
【0104】
第三検出部30B−1は、複数の可変抵抗素子10A1−n,…10A1−2,10A−1に印加された上記第二入力信号に基づいて、可変抵抗素子10A1−1に流れる電流を検出する。第三検出部30B−2も、上記と同様にして、複数の可変抵抗素子10A2−n,…10A2−2,10A2−1に印加された上記第二入力信号に基づいて、可変抵抗素子10A1−2に流れる電流を検出する。
【0105】
図7では、第三検出部30Bは、複数の第三検出部30B−1,30B−2,…で構成されているが、これに限らず、1つの第三検出部で構成されてもよい。
【0106】
第二信号入力部20Bが、上記入力データに基づいてPWM信号を入力する場合、第三検出部30Bは、電荷検出方式による検出回路を有することができる。また、第二信号入力部20Bが、上記入力データに基づいてPAM信号を入力する場合、第三検出部30Bは、電流検出方式による検出回路を有することができる。すなわち、入力信号がPWM信号であるときは電荷検出による出力電圧値を使用し、入力信号がPAM信号であるときは電流検出による出力電圧値を用いることができる。
【0107】
第四検出部40Bは、可変抵抗アレイ部10Aの入力側に接続されており、リファレンスローのリファレンス抵抗素子に印加された上記第二入力信号に基づいて、第二リファレンスアレイ部10Dに流れる電流を検出する。本実施形態では、第四検出部40Bは、ラインL4を介して、リファレンス抵抗素子10D−1,10D−2,…に接続されている。そして、第四検出部40Bは、複数のリファレンス抵抗素子10D−1,10D−2,…のいずれかに印加された上記第二入力信号に基づいて、第二リファレンスアレイ部10Dに流れる電流を検出する。
【0108】
第二信号入力部20Bが、上記入力データに基づいてPWM信号を出力する場合、第四検出部40Bは、電荷検出方式による検出回路を有することができる。また、第二信号入力部20Bが、上記入力データに基づいてPAM信号を出力する場合、第四検出部40Bは、電流検出方式による検出回路を有することができる。
【0109】
第一補正演算部50Aは、第一検出部30Aからの出力に対して、第二検出部40Aからの出力に応じて予め定めた演算を行う。本実施形態では、第一補正演算部50Aは、1つの補正演算部で構成されており、第一検出部30A−1,30A−2および第二検出部40Aに接続されている。そして、第一補正演算部50Aは、第一検出部30A−1の出力に対して、第二検出部40Aからの出力に基づいて予め定めた演算を行う。また、上記と同様にして、第一補正演算部50Aは、第一検出部30A−2の出力に対して、第二検出部40Aからの出力に基づいて予め定めた演算を行う。
【0110】
本実施形態では、複数の第一検出部30A−1,30A−2,…が、複数の可変抵抗カラムに流れる電流をそれぞれ検出する。そして、1つの第一補正演算部50Aが、複数の第一検出部30A−1,30A−2,…からの複数の出力に対して演算を行う。このように、複数の第一検出部30A−1,30A−2,…に対して1つの第一補正演算部50Aを共有することで、アレイの実装面積を低減することが可能となる。
【0111】
また、第一補正演算部50Aは、上述のデジタル処理あるいはアナログ処理を行うことで、1つの可変抵抗素子(例えば、可変抵抗素子10A1−1)で正負を含めた積和演算を行うことができる。その場合、積和演算器2の構成および第一補正演算部50Aの構成は、第1実施形態と同様であるので(
図2,
図3参照)、その説明を省略する。
【0112】
第二補正演算部50Bは、第三検出部30Bからの出力に対して、第四検出部40Bからの出力に応じて予め定めた演算を行う。本実施形態では、第二補正演算部50Bは、1つの補正演算部で構成されており、第三検出部30B−1,30B−2および第四検出部40Bに接続されている。そして、第二補正演算部50Bは、第三検出部30B−1の出力に対して、第四検出部40Bからの出力に基づいて予め定めた演算を行う。また、上記と同様にして、第二補正演算部50Bは、第三検出部30B−2の出力に対して、第四検出部40Bからの出力に基づいて予め定めた演算を行うことができる。
【0113】
第二補正演算部50Bがデジタル処理を行う場合、積和演算器2は、例えば、第三検出部30Bからの出力をデジタル変換して、第二補正演算部50Bに出力する第三変換部(不図示)と、第四検出部40Bからの出力をデジタル変換して、第二補正演算部50Bに出力する第四変換部(不図示)と、を更に備えることができる(
図2参照)。
このとき、第二補正演算部50Bは、デジタル論理演算を行い、第四検出部40Bからの出力に予め定められた係数を乗算した値を、第三検出部30Bからの出力から減算し、更に、予め定められた係数を乗算する。
【0114】
これにより、可変抵抗アレイ部10Aを構成する可変抵抗カラム(例えば、10A1)から複数の可変抵抗素子(例えば、10A1−n〜10A1−1)の抵抗値を読み出す際に、1つの第二信号入力部(例えば、第二信号入力部20B−1)からの上記第二入力信号の入力によって、上記複数の可変抵抗素子の補正結果を一度に得ることができ、その結果として上記複数の可変抵抗素子が持つ重みWを一度に読み出すことができ、バックプロパゲーション学習を効率的且つ迅速に行うことができる。
【0115】
第二補正演算部50Bがアナログ処理を行う場合、第二補正演算部50Bは、第三検出部30Bからの出力および第四検出部40Bからの出力のいずれか一方、あるいは両方を増幅する第二増幅回路(不図示)と、第三検出部30Bからの出力と第四検出部40Bからの出力との差分を出力する第二差分出力回路(不図示)と、を備えてもよい(
図3参照)。このとき、第二補正演算部50Bは、第三検出部30Bからの出力および第四検出部40Bからの出力に予め定められた係数を乗算した値の差分に対応する出力を行う。このような第二補正演算部50Bのアナログ処理によっても、バックプロパゲーション学習を効率的且つ迅速に行うことができる。
【0116】
第一入出力切替部90Aは、可変抵抗アレイ部10Aの入力側に接続されており、第一信号入力部20Aからの入力と第三検出部30Bへの出力とを切り替える。第一信号入力部20Aからの入力が行われる場合、第一入出力切替部90Aにより、第一信号入力部20AがラインL1,L2,…Lnに接続される。一方、第三検出部30Bへの出力が行われる場合、第三検出部30BがラインL1,L2,…Lnに接続される。
【0117】
第二入出力切替部90Bは、可変抵抗アレイ部10Aの出力側に接続されており、第二信号入力部20Bからの入力と第一検出部30Aへの出力とを切り替える。第二信号入力部20Bからの入力が行われる場合、第二入出力切替部90Bにより、第二信号入力部20BがラインM1,M2,…に接続される。一方、第一検出部30Aへの出力が行われる場合、第一検出部30AがラインM1,M2,…に接続される。
【0118】
[第2実施形態に係る積和演算器の動作]
図8は、
図7の積和演算器2のフォーワード動作を説明する図である。積和演算器2のフォーワード動作は、最初に第一入出力切替部90Aおよび第二入出力切替部90Bによって切替を行うこと以外は、積和演算器1の動作と同様である。
すなわち、先ず、フォーワード動作が行われる場合、第一入出力切替部90Aを作動し、第一信号入力部20AをラインL1,L2,…Lnに接続する。また、第二入出力切替部90Bを作動し、第一検出部30AをラインM1,M2,…に接続する。
【0119】
そして、第一信号入力部20Aは、入力データから第一入力信号を生成し、可変抵抗アレイ部10Aを構成する複数の可変抵抗素子(例えば、10A1−1,10A2−1,…)に対して上記第一入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子(例えば、10C−1)に対して上記入力信号を入力する。このように、本実施形態では、上記第一入力信号が、PWM信号あるいはPAM信号として積和演算を行う可変抵抗アレイ部10Aと、補正値を算出するための第一リファレンスアレイ部10Cとに、ほぼ同時に入力される。
【0120】
可変抵抗アレイ部10Aに上記第一入力信号が入力されると、可変抵抗アレイ部10Aでは、各々の可変抵抗素子(例えば、10A1−1,10A1−2,…)の伝導度Gに応じて、積和演算の結果が出力される。また、第一リファレンスアレイ部10Cに上記入力信号が入力されると、各々のリファレンス抵抗素子(例えば、10C−1)で、上記入力信号の入力値に応じて固有の出力値が出力される。
【0121】
次いで、第一検出部30Aは、複数の可変抵抗素子(例えば、10A1−1,10A2−1,…)に印加された上記第一入力信号に基づいて可変抵抗アレイ部10Aに流れる電流を検出すると共に、リファレンス抵抗素子(例えば、10C−1)に印加された上記第一入力信号に基づいて第一リファレンスアレイ部10Cに流れる電流を検出する。
【0122】
その後、第一補正演算部50Aは、可変抵抗アレイ部10Aに流れる電流の検出結果に応じた出力に対して、第一リファレンスアレイ部10Cに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う。例えば、第一検出部30Aおよび第二検出部40Aからの出力に基づき、予め定めた演算として、例えば上記(1)式により、第一補正演算部50Aの出力、すなわち補正結果を得る。
【0123】
図9は、
図7の積和演算器2のバックワード動作を説明する図である。
バックワード動作が行われる場合、先ず、第一入出力切替部90Aを作動し、第三検出部30BをラインL1,L2,…Lnに接続する。また、第二入出力切替部90Bを作動し、第二信号入力部20BをラインM1,M2,…に接続する。
【0124】
そして、第二信号入力部20Bは、入力データから第二入力信号を生成し、可変抵抗アレイ部10Aを構成する複数の可変抵抗素子(例えば、10A1−n〜10A1−1)に対して上記第二入力信号を入力すると共に、抵抗値が固定されたリファレンス抵抗素子(例えば、10D−1)に対して上記第二入力信号を入力する。このように、本実施形態では、上記第二入力信号が、積和演算を行う可変抵抗アレイ部10Aと、補正値を算出するための第二リファレンスアレイ部10Dとに、ほぼ同時に入力される。
【0125】
可変抵抗アレイ部10Aに上記第二入力信号が入力されると、可変抵抗アレイ部10Aでは、各々の可変抵抗素子(例えば、10A1−n,…10A1−2,10A1−1)の伝導度Gに応じて、積演算の結果が出力される。また、第二リファレンスアレイ部10Dに上記第二入力信号が入力されると、各々のリファレンスアレイ部10B(例えば、10D−1)で、上記第二入力信号の入力値に応じて固有の出力値が出力される。
【0126】
次いで、第三検出部30Bは、複数の可変抵抗素子(例えば、10A1−n〜10A1−1)に印加された上記第二入力信号に基づいて可変抵抗アレイ部10Aに流れる電流を検出すると共に、リファレンス抵抗素子(例えば、10D−1)に印加された上記第二入力信号に基づいて第二リファレンスアレイ部10Dに流れる電流を検出する。
【0127】
その後、第二補正演算部50Bは、可変抵抗アレイ部10Aに流れる電流の検出結果に応じた出力に対して、第二リファレンスアレイ部10Dに流れる電流の検出結果に応じた出力に基づいて、予め定めた演算を行う。例えば、第三検出部30Bおよび第四検出部40Bからの出力に基づき、予め定めた演算として、第二補正演算部50Bの出力、すなわち補正結果を得る。
【0128】
上述したように、本実施形態によれば、積和演算器2のフォーワード動作において、1つの可変抵抗素子で正負の重みを考慮した演算を行うことができ、機器の簡素化、小型化を実現することが可能となる。また、積和演算器2のバックワード動作では、可変抵抗アレイ部10Aを構成する可変抵抗カラム(例えば、10A1)から複数の可変抵抗素子(例えば、10A1−n〜10A1−1)の抵抗値を読み出す際に、1つの第二信号入力部(例えば、20B−1)からの上記第二入力信号に基づいて、上記複数の可変抵抗素子の補正結果を一度に得ることができ、バックプロパゲーション学習を効率的且つ迅速に行うことができる。また、1つの第二信号入力部からの上記第二入力信号の入力によって、上記複数の可変抵抗素子のそれぞれに対応する複数の重みWを一度に得ることができるので、バックプロパゲーション学習時に、複数の可変抵抗素子の抵抗値を効率的且つ迅速に補正することができる。
【0129】
本実施形態では、積和演算器2は、第一リファレンスアレイ部10Cと第二リファレンスアレイ部10Dとを備えるが、これに限られない。積和演算器2は、リファレンスカラムで構成される第一リファレンスアレイ部10Cを備えず、リファレンスローで構成される第二リファレンスアレイ部10Dを備えていてもよい。本構成によっても、上記と同様の効果を奏することができる。
【0130】
図10は、
図1の積和演算器1を備えるニューロモーフィックデバイス上で実行されるニューラルネットワークの一例を示す模式図である。上記実施形態の積和演算器を、例えばニューロモーフィックデバイスに適用することができる。
図10に示すように、ニューラルネットワーク100は、入力層101と、隠れ層102と、出力層103と、隠れ層102のための演算を行なう積和演算器1−1と、出力層103のための演算を行なう積和演算器1−2とを備えている。積和演算器1−1,1−2は、
図1の第1実施形態の積和演算器1と同様の構成であり、複数の可変抵抗素子を有する。
【0131】
入力層101は、例えば4つのノード101A,101B,101C,101Dを備えている。隠れ層102は、例えば3つのノード102A,102B,102Cを備えている。出力層103は、例えば3つのノード103A,103B,103Cを備えている。
【0132】
積和演算器1−1は、入力層101と隠れ層102との間の演算を行ない、入力層101の4つのノード101A,101B,101C,101Dと、隠れ層102の3つのノード102A,102B,102Cとを接続する。積和演算器1−1は、
図1に示す複数の可変抵抗素子の抵抗値を変更することによって、重みWを変更する。
【0133】
隠れ層102と出力層103との間の演算は、積和演算器1−2が行う。積和演算器1−2は、隠れ層102の3つのノード102A,102B,102Cと、出力層103の3つのノード103A,103B,103Cとを接続する。積和演算器1−2は、複数の可変抵抗素子の抵抗値を変更することによって、重みWを変更する。
【0134】
このように、
図1の積和演算器1と同様の構成を有する積和演算器1−1,1−2をニューラルネットワーク100に適用することにより、誤差の少ない積和演算によってニューラルネットワークの性能を向上させることができる。また、
図2の積和演算器2をニューラルネットワーク100に適用することによっても、上記同様の効果を奏することができる。
【0135】
以上、本発明の実施形態について詳述したが、本発明は上記実施形態に限定されるものではなく、特許請求の範囲内に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0136】
例えば、以上に示した実施形態に係る各装置(例えば、積和演算器1,2)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
【0137】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
コンピュータでは、例えば、CPU(Central Processing Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。