(57)【特許請求の範囲】
【請求項１】
入力値に対応し、立ち上がり部、信号部、及び立ち下がり部を有する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する複数の積演算部と、
複数の前記積演算部各々が出力した前記出力信号の総和を演算する和演算部と、
前記入力信号の前記立ち上がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第１の値及び前記入力信号の前記立ち下がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて前記出力信号の総和を補正する補正処理を実行する補正部と、
を備える積和演算器。
【請求項２】
複数の前記積演算部各々は、磁気抵抗効果を示す磁気抵抗効果素子を含む、
請求項１に記載の積和演算器。
【請求項３】
複数の前記積演算部各々は、書き込み端子と、共通端子と、読み出し端子とを有する抵抗変化素子を含む、
請求項１に記載の積和演算器。
【請求項４】
前記立ち上がり部及び前記立ち下がり部を有する補正用入力信号を前記積演算部に入力する入力部を更に備え、
前記積演算部は、更に前記補正用入力信号に重みを乗算して補正用出力信号を生成し、前記補正用出力信号を出力し、
前記和演算部は、更に複数の前記積演算部各々が出力した前記補正用出力信号の総和を演算し、
前記補正部は、前記補正用出力信号の総和を前記補正値として前記補正処理を実行する、
請求項１から請求項３のいずれか一つに記載の積和演算器。
【請求項５】
前記補正値を記憶する補正値記憶部を更に備える、
請求項１から請求項４のいずれか一つに記載の積和演算器。
【請求項６】
前記入力信号は、抵抗器を経由して前記積演算部に入力される、
請求項１から請求項５のいずれか一つに記載の積和演算器。
【請求項７】
請求項１から請求項６のいずれか一つに記載の積和演算器を備える論理演算デバイス。
【請求項８】
請求項１から請求項６のいずれか一つに記載の積和演算器を備えるニューロモーフィックデバイス。
【請求項９】
請求項１から請求項６のいずれか一つに記載の積和演算器による積和演算方法であって、
入力値に対応し、信号部、立ち上がり部及び立ち下がり部を有する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する積演算工程と、
前記積演算工程において出力された前記出力信号の総和を演算する和演算工程と、
前記入力信号の前記立ち上がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第１の値及び前記入力信号の前記立ち下がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて前記出力信号の総和を補正する補正処理を実行する補正工程と、
を含む積和演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法に関する。
【背景技術】
【０００２】
従来のニューラルネットワークの欠点の一つである消費電力を改善するため、通過した電荷を記録しそれに伴い抵抗が変化する受動素子であるメモリスタを用いた研究が活発に進められている。【０００３】
従来のニューラルネットワークでは、入力データに重みを積算し、それら全ての総和の値を活性化関数へ入力して、出力を得る。そこで、連続的に抵抗が変化する抵抗変化素子を２つ以上組み合わせ、そこから出力される電流値の総和を読むことで、積和演算をアナログ回路で実現する試みがなされている。【０００４】
ニューラルネットワークの学習過程において、各シナプスに割り当てられたメモリスタは所定の重みとなるように抵抗値が変化し、電源が切られてもその値を保持する。推論過程では、情報が保持されたメモリスタの値を利用し、入力データのレベルに応じて電圧パルスの長さが変化するパルス幅変調制御（Pulse  Width  Modulation:ＰＷＭ）が用いられる。【０００５】
例えば、非特許文献１には、メモリスタ等の抵抗変化素子を使用してニューラルネットワークの演算を実行する手法が開示されている。ここで、ニューラルネットワークの演算では、電圧パルスである入力信号が入力された複数の抵抗変化素子各々が出力した出力信号の総和が演算される。この出力信号の総和の演算は、出来る限り正確に実行されることが望ましい。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Geoffrey W. Burr, Robert M. Shelby, Abu Sebastian, Sangbum Kim, Seyoung Kim, Severin Sidler, Kumar Virwani, Masatoshi Ishii, Pritish Narayanan, Alessandro Fumarola, Lucas L. Sanches, Irem Boybat, Manuel Le Gallo, Kibong Moon, Jiyoo Woo, Hyunsang Hwang & Yusuf Leblebici, Advances in Physics: X, 2, 89(2017)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
抵抗変化素子は、等価回路として寄生容量と寄生抵抗を並列接続した回路構成となっており、電圧パルスである入力信号の入力により抵抗変化素子各々の寄生容量への充放電に起因する突入電流が発生する。そこで、この突入電流による回路の発熱や回路の負荷を緩和するひとつの手段として入力信号の立ち上がり部及び立ち下がり部における電圧の変化速度を低下させることが行われている。【０００８】
しかし、立ち上がり部及び立ち下がり部における電圧の変化速度を低下させた場合、抵抗変化素子各々の寄生抵抗にも電流が流れ込むため、この電流に起因する値が上述した出力信号の総和に組み込まれ、総和の演算の精度が低下してしまうことがある。【０００９】
そこで、本発明は、正確な積和演算を実行することができる積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様は、入力値に対応し、立ち上がり部、信号部、及び立ち下がり部を有する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する複数の積演算部と、複数の前記積演算部各々が出力した前記出力信号の総和を演算する和演算部と、前記入力信号の前記立ち上がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第１の値及び前記入力信号の前記立ち下がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて前記出力信号の総和を補正する補正処理を実行する補正部と、を備える積和演算器である。【００１１】
また、本発明の一態様において、複数の前記積演算部各々は、磁気抵抗効果を示す磁気抵抗効果素子を含む。【００１２】
また、本発明の一態様において、複数の前記積演算部各々は、書き込み端子と、共通端子と、読み出し端子とを有する抵抗変化素子を含む。【００１３】
また、本発明の一態様は、前記立ち上がり部及び前記立ち下がり部を有する補正用入力信号を前記積演算部に入力する入力部を更に備え、前記積演算部が、更に前記補正用入力信号に重みを乗算して補正用出力信号を生成し、前記補正用出力信号を出力し、前記和演算部が、更に複数の前記積演算部各々が出力した前記補正用出力信号の総和を演算し、前記補正部が、前記補正用出力信号の総和を前記補正値として前記補正処理を実行する積和演算器である。【００１４】
また、本発明の一態様は、前記補正値を記憶する補正値記憶部を更に備える積和演算器である。【００１５】
また、本発明の一態様は、前記入力信号が、抵抗器を経由して前記積演算部に入力される積和演算器である。【００１６】
また、本発明の一態様は、上述した積和演算器のいずれか一つを備える論理演算デバイスである。【００１７】
また、本発明の一態様は、上述した積和演算器のいずれか一つを備えるニューロモーフィックデバイスである。【００１８】
また、本発明の一態様は、入力値に対応し、立ち上がり部、信号部、及び立ち下がり部を有する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する積演算工程と、前記積演算工程において出力された前記出力信号の総和を演算する和演算工程と、前記入力信号の前記立ち上がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第１の値及び前記入力信号の前記立ち下がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて前記出力信号の総和を補正する補正処理を実行する補正工程と、を含む積和演算方法である。
【発明の効果】
【００１９】
上述した積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法によれば、正確な積和演算を実行することができる積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係る積和演算器の一部の構成の一例を示す図である。
【図２】第１実施形態に係る抵抗変化素子の一例を示す図である。
【図３】第１実施形態に係る積和演算器の一部の構成の等価回路の一例を示す図である。
【図４】第１実施形態に係る積演算部１１１を入力信号が通過した際の突入電流の一例を示す図である。
【図５】第１実施形態に係る補正用入力信号の一例を示す図である。
【図６】第１実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。
【図７】第１実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例を説明するための図である。
【図８】第２実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。
【図９】第３実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。
【発明を実施するための形態】
【００２１】
［第１実施形態］
図１及び図２を参照しながら、第１実施形態に係る積和演算器の構成の一例について説明する。
【００２２】
図１は、第１実施形態に係る積和演算器の一部の構成の一例を示す図である。図１に示すように、積和演算器１は、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１と、入力部１０１Ｅ、２０１Ｅ、…、ｋ０１Ｅと、抵抗器１０１Ｑ、２０１Ｑ、…、ｋ０１Ｑと、和演算部１０Ｓ、２０Ｓと、補正部１０Ｈ、２０Ｈと、データ処理部１０Ｄ、２０Ｄとを備える。
【００２３】
図２は、第１実施形態に係る抵抗変化素子の一例を示す図である。積演算部１１１は、抵抗変化素子、例えば、図２に示した磁気抵抗効果素子である。図１及び図２に示すように、積演算部１１１は、可変抵抗１１１Ｒ、読み出し端子１１１Ｘ、共通端子１１１Ｙ及び書き込み端子１１１Ｚを備える。また、図１に示す積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１は抵抗変化素子、例えば、図２に示したものと同様の磁気抵抗効果素子であり、それぞれ可変抵抗１２１Ｒ、２１１Ｒ、２２１Ｒ、…、ｋ１１Ｒ、ｋ２１Ｒと、読み出し端子１２１Ｘ、２１１Ｘ、２２１Ｘ、…、ｋ１１Ｘ、ｋ２１Ｘと、共通端子１２１Ｙ、２１１Ｙ、２２１Ｙ、…、ｋ１１Ｙ、ｋ２１Ｙと、書き込み端子１２１Ｚ、２１１Ｚ、２２１Ｚ、…、ｋ１１Ｚ、ｋ２１Ｚとを備える。以下の説明では、適宜、積演算部１１１を例に挙げて説明するが、他の積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１についても同様である。
【００２４】
ここで、積演算部１１１が備える可変抵抗１１１Ｒは、例えば、図２に示すように、磁化固定層１１１１と、非磁性層１１１２と、第１領域１１１３と、磁壁１１１４と、第２領域１１１５と、第１磁化供給層１１１６と、第２磁化供給層１１１７とを備える。以下、図２を使用した説明では、図２に示したｘ軸、ｙ軸及びｚ軸を使用する。ｘ軸、ｙ軸及びｚ軸は、右手系の三次元直交座標を形成している。磁化固定層１１１１、非磁性層１１１２、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７は、ｚ軸方向に積層された薄い直方体状に形成されており、最も面積が大きな面がｘｙ平面と平行で第１領域１１１３と第２領域１１１５と電気的、磁気的に接続されている。磁化固定層１１１１、非磁性層１１１２、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７の積層順序はこの通りであるが、積層方向は逆の方向でも良い。その場合、読み出し端子１１１Ｘおよび共通端子１１１Ｙ及び書き込み端子１１１Ｚの位置も逆になる。
【００２５】
磁化固定層１１１１は、磁化方向がｚ方向に固定されている。ここで、磁化が固定されるとは、磁壁１１１４導入するための初期化時及び書き込み電流を使用した書き込み前後において磁化方向が変化しないことを意味する。また、磁化固定層１１１１は、例えば、面内磁気異方性を有する面内磁化膜、垂直磁気異方性を有する垂直磁化膜であってもよい。
【００２６】
非磁性層１１１２は、ひとつの面がｚ方向の磁化固定層１１１１が読み出し端子１１１Ｘと接する面と反対側の面と接している。ｚ方向のもうひとつの面は、第１領域１１１３及び第２領域１１１５と接している。磁化固定層１１１１のｚ方向側を向いている面と非磁性層１１１２ｚ方向側を向いている面とは、互いに形状及び面積が等しくなっていてもよいが、非磁性層１１１２が、ｘｙ平面上で第１領域１１１３、第２領域１１１５を覆うように広がっていて、磁化固定層１１１１よりも大きくてもよい。また、非磁性層１１１２は、積演算部１１１が磁化固定層１１１１に対する磁化自由層の磁化状態の変化を抵抗値の変化として読み出すために使用される。
【００２７】
第１領域１１１３、磁壁１１１４及び第２領域１１１５は、磁化自由層を形成している。磁化自由層は、強磁性材料により作製されており、第１領域１１１３と第２領域１１１５の磁化方向はｚ方向において互いに反対の方向である。磁壁１１１４は第１領域１１１３と第２領域１１１５の略中間の方向を向いている。例えば、第１領域１１１３の磁化方向が＋ｚ方向に固定されている場合、磁化固定層１１１１と非磁性層１１１２がｚ方向で接する面と反対の面で接している。一方、第２領域１１１５の磁化方向が−ｚ方向に固定されている場合、磁化固定層１１１１と非磁性層１１１２がｚ方向で接する面と反対の面で接している。磁壁１１１４は、ｙ方向において第１領域１１１３と第２領域１１１５とに挟まれている。
【００２８】
第１磁化供給層１１１６は、ｚ方向において磁化固定層１１１１と重なっていないことが望ましく、＋ｚ方向側を向いている面が第１領域１１１３の−ｚ方向側を向いている面と接している。また、第１磁化供給層１１１６は、第１領域１１１３のうちｚ方向において第１磁化供給層１１１６と重なる範囲の磁化方向を所望の方向に固定する機能を有する。さらに、第１磁化供給層１１１６の−ｚ方向側を向いている面には、書き込み端子１１１Ｚが接続されている。なお、第１磁化供給層１１１６は、例えば、磁化固定層１１１１に使用可能な強磁性材料と同じ材料、ＩｒＭｎ等の反強磁性体、Ｒｕ、Ｉｒ等の非磁性中間層を挟んだ強磁性体／非磁性体／強磁性体からなる合成反強磁性構造（Ｓｙｎｔｈｅｃｉｃ  ａｎｔｉｆｅｒｒｏｍａｇｎｅｔｉｃ）により作製されている。
【００２９】
第２磁化供給層１１１７は、ｚ方向において磁化固定層１１１１と重なっていないことが望ましく、＋ｚ方向側を向いている面が第２領域１１１５の−ｚ方向側を向いている面と接している。また、第２磁化供給層１１１７は、第２領域１１１５のうちｚ方向において第２磁化供給層１１１７と重なる範囲の磁化方向を所望の方向に固定する機能を有する。さらに、第２磁化供給層１１１７の−ｚ方向側を向いている面には、共通端子１１１Ｙが接続されている。なお、第２磁化供給層１１１７は、例えば、磁化固定層１１１１に使用可能な強磁性材料と同じ材料、ＩｒＭｎ等の反強磁性体、Ｒｕ、Ｉｒ等の非磁性中間層を挟んだ強磁性体／非磁性体／強磁性体からなる合成反強磁性構造（Ｓｙｎｔｈｅｃｉｃ  ａｎｔｉｆｅｒｒｏｍａｇｎｅｔｉｃ）により作製されている。
【００３０】
可変抵抗１１１Ｒにおける磁化固定層１１１１の磁化方向と、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６、第２磁化供給層１１１７の磁化方向はｚ方向だけでなく、ｘ方向、ｙ方向であっても良い。その場合、磁化固定層１１１１の磁化方向と、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６、第２磁化供給層１１１７の磁化方向は同じであることが望ましい。例えば、磁化固定層１１１１の磁化方向が＋ｙ方向であった場合、第１領域の磁化方向は＋ｙ方向、第２領域の磁化方向は−ｙ方向、第１磁化供給層１１１６の磁化方向は＋ｙ方向、第２磁化供給層１１１７の磁化方向は−ｙ方向である。
【００３１】
積演算部１１１は、共通端子１１１Ｙと書き込み端子１１１Ｚとの間に流す書き込み電流の大きさ及び時間を調整することにより、ｙ方向における磁壁１１１４の位置を変化させる。これにより、積演算部１１１は、磁化方向が平行な領域と磁化方向が反平行な領域との面積の比率を連続的に変化させ、可変抵抗１１１Ｒの抵抗値を略線形に変化させることができる。ここで、磁化方向が平行な領域とは、第１領域１１１３のうちｚ方向において磁化固定層１１１１と重なっている部分の面積である。また、磁化方向が反平行な領域とは、第２領域１１１５のうちｚ方向において磁化固定層１１１１と重なっている部分の面積である。また、書き込み電流は、書き込み端子１１１Ｚに入力される。書き込み電流の大きさ及び時間は、電流パルスの数及び幅の少なくとも一方により調整される。
【００３２】
なお、積演算部１１１は、トンネル磁気抵抗効果素子であってもよい。トンネル磁気抵抗効果素子は、磁化固定層と、磁化自由層と、非磁性層としてのトンネルバリア層とを備える。磁化固定層及び磁化自由層は、強磁性材料で作製されており、磁化を有する。トンネルバリア層は、磁化固定層と磁化自由層との間に挟まれている。トンネル磁気抵抗効果素子は、磁化固定層が有する磁化と磁化自由層が有する磁化との関係を変化させることにより、抵抗値を変化させることができる。
【００３３】
図１に戻って、読み出し端子１１１Ｘ、１２１Ｘには、抵抗器１０１Ｑを介して入力部１０１Ｅが接続されている。同様に、図１に示した読み出し端子２１１Ｘ、２２１Ｘには、抵抗器２０１Ｑを介して入力部２０１Ｅが接続されており、読み出し端子ｋ１１Ｘ、ｋ２１Ｘには、抵抗器ｋ０１Ｑを介して入力部ｋ０１Ｅが接続されている。
【００３４】
入力部１０１Ｅは、抵抗器１０１Ｑを介して入力値に対応する入力信号を読み出し端子１１１Ｘ、１２１Ｘに入力する。同様に、入力部２０１Ｅは、抵抗器２０１Ｑを介して入力値に対応する入力信号を読み出し端子２１１Ｘ、２２１Ｘに入力する。また、同様に、入力部ｋ０１Ｅは、抵抗器ｋ０１Ｑを介して入力値に対応する入力信号を読み出し端子ｋ１１Ｘ、ｋ２１Ｘに入力する。
【００３５】
これらの入力信号は、いずれも入力値に応じたパルス幅変調（Pulse  Width  Modulation:ＰＷＭ）が施されている電圧信号であり、信号部、立ち上がり部及び立ち下がり部を有する。信号部は、入力信号のうち積和演算に使用されるべき部分であり、一定の電圧であることが好ましいが、必ずしも一定の電圧でなくてもよい。立ち上がり部は、入力信号のうちゼロ電圧から信号部の電圧レベルまで上昇している部分をいう。立ち下がり部は、入力信号のうち信号部の電圧レベルからゼロ電圧まで下降している部分をいう。
【００３６】
なお、読み出し端子１１１Ｘ、１２１Ｘは、抵抗器１０１Ｑを介すること無く、入力部１０１Ｅに直接接続されていてもよい。同様に、図１に示した読み出し端子２１１Ｘ、２２１Ｘは、抵抗器２０１Ｑを介すること無く、入力部２０１Ｅに直接接続されていてもよい。また、読み出し端子ｋ１１Ｘ、ｋ２１Ｘは、抵抗器ｋ０１Ｑを介すること無く、入力部ｋ０１Ｅに直接接続されていてもよい。
【００３７】
この場合、入力部１０１Ｅは、抵抗器１０１Ｑを介すること無く、立ち上がり部及び立ち下がり部の電圧の変化速度を低下させてある入力信号を読み出し端子１１１Ｘ、１２１Ｘに入力する。同様に、入力部２０１Ｅは、抵抗器２０１Ｑを介すること無く、立ち上がり部及び立ち下がり部の電圧の変化速度を低下させてある入力信号を読み出し端子２１１Ｘ、２２１Ｘに入力する。また、同様に、入力部ｋ０１Ｅは、抵抗器ｋ０１Ｑを介すること無く、立ち上がり部及び立ち下がり部の電圧の変化速度を低下させてある入力信号を読み出し端子ｋ１１Ｘ、ｋ２１Ｘに入力する。
【００３８】
積演算部１１１は、入力値に対応する入力信号に重みを乗算して出力信号を生成し、出力信号を出力する。すなわち、積演算部１１１は、可変抵抗１１１Ｒの抵抗値を重みとして読み出し、読み出し端子１１１Ｘに入力された入力信号に対する積演算を実行して出力信号を生成し、共通端子１１１Ｙから出力信号を出力する。同様に、積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１は、それぞれ入力値に対応する入力信号に重みを乗算して出力信号を生成し、出力信号を出力する。
【００３９】
和演算部１０Ｓは、積演算部１１１、２１１、…、ｋ１１各々が出力する出力信号の総和を演算し、演算結果を補正部１０Ｈに出力する。同様に、和演算部２０Ｓは、積演算部１２１、２２１、…、ｋ２１各々が出力する出力信号の総和を演算し、演算結果を補正部２０Ｈに出力する。和演算部１０Ｓ、２０Ｓの詳細は、後述する。
【００４０】
補正部１０Ｈは、第１の値及び第２の値の少なくとも一方を含む補正値に基づいて出力信号の総和を補正する補正処理を実行し、補正処理により生成されたアナログ信号をデータ処理部１０Ｄに出力する。ここで、第１の値は、入力信号の立ち上がり部に起因し、積演算部１１１、２１１、…、ｋ１１の可変抵抗１１１Ｒ、２１１Ｒ、…、ｋ１１Ｒの少なくとも一つに流れ込む電流により総和に組み込まれる値である。また、第２の値は、入力信号の立ち下がり部に起因し、積演算部１１１、２１１、…、ｋ１１の可変抵抗１１１Ｒ、２１１Ｒ、…、ｋ１１Ｒの少なくとも一つに流れ込む電流により総和に組み込まれる値である。これらは、補正部２０Ｈについても同様である。なお、補正部１０Ｈは、第１の値及び第２の値の少なくとも一方に重みを掛けて補正処理を実行してもよい。また、補正部１０Ｈ、２０Ｈの詳細は、後述する。
【００４１】
データ処理部１０Ｄは、補正部１０Ｈが出力したアナログ信号をデジタル信号に変換し、このデジタル信号に活性化関数処理を施し、再度アナログ信号に変換する。同様に、データ処理部２０Ｄは、補正部２０Ｈが出力したアナログ信号をデジタル信号に変換し、このデジタル信号に活性化関数処理を施し、再度アナログ信号に変換する。データ処理部１０Ｄ、２０Ｄの詳細は、後述する。
【００４２】
次に、図３から図６を参照しながら、第１実施形態に係る積和演算器による総和の演算方法の一例について説明する。
【００４３】
図３は、第１実施形態に係る積和演算器の一部の構成の等価回路の一例を示す図である。図３に示すように、積演算部１１１は、可変抵抗の等価回路として寄生容量１１１Ｃ及び寄生抵抗１１１Ｐを備え、寄生容量１１１Ｃが可変抵抗１１１Ｒに並列接続されており、寄生抵抗１１１Ｐが可変抵抗１１１Ｒに直列接続されていると考えることができる。同様に、積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１は、それぞれ寄生容量１２１Ｃ、２１１Ｃ、２２１Ｃ、…、ｋ１１Ｃ、ｋ２１Ｃと、寄生抵抗１２１Ｐ、２１１Ｐ、２２１Ｐ、…、ｋ１１Ｐ、ｋ２１Ｐとを備える。さらに、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１には、それぞれ配線抵抗１１１Ｗ、１２１Ｗ、２１１Ｗ、２２１Ｗ、…、ｋ１１Ｗ、ｋ２１Ｗが直列接続されていると考えることができる。
【００４４】
図４は、第１実施形態に係る入力信号及び積演算部１１１を入力信号が通過した際の突入電流の一例を示す図である。入力部１０１Ｅは、パルス幅変調が施されている入力信号、例えば、図４（ａ）に示した入力信号ＶＡを出力する。入力信号ＶＡは、信号部、立ち上がり部及び立ち下がり部を有する。入力信号ＶＡの立ち上がり部は、時刻ｔ１でゼロ電圧から信号部の電圧レベルまで略垂直に上昇している部分である。信号部は、時刻ｔ１の直後から時刻ｔ４の直後までの区間であり、当該区間の長さが入力値に対応している。立ち下がり部は、時刻ｔ４でゼロ電圧から信号部の電圧レベルまで略垂直に下降している部分である。
【００４５】
仮に、図４（ａ）に示した入力信号ＶＡが抵抗器１０１Ｑを経由せずに積演算部１１１の読み出し端子１１１Ｘに直接入力された場合、図４（ｂ）に示した突入電流ＩＡ１、ＩＡ２が発生する。突入電流ＩＡ１は、入力信号ＶＡの立ち上がり部に起因しており、積演算部１１１の寄生容量１１１Ｃへの充電により発生する。突入電流ＩＡ２は、入力信号ＶＡの立ち下がり部に起因しており、積演算部１１１の寄生容量１１１Ｃからの放電により発生する。
【００４６】
図４（ａ）に示すように、立ち上がり部及び立ち下り部の時間が短いため、図４（ｂ）に示した突入電流ＩＡ１、ＩＡ２は、短時間で消滅する。また、突入電流ＩＡ１、ＩＡ２は、大部分が積演算部１１１の寄生容量１１１Ｃに流れ込み、残りが積演算部１１１の可変抵抗１１１Ｒに流れ込むに過ぎない。したがって、入力信号ＶＡが抵抗器１０１Ｑを経由せずに積演算部１１１の読み出し端子１１１Ｘに直接入力された場合、突入電流ＩＡ１、ＩＡ２により和演算部１０Ｓが演算する出力信号の総和に生じるずれは、僅かである。
【００４７】
しかし、突入電流ＩＡ１、ＩＡ２の発生により、積和演算器１の発熱、発熱に伴う誤作動の発生、積和演算器１の負荷の増大につながってしまうことがある。また、突入電流ＩＡ１、ＩＡ２が大きくなると、出力信号に起因する電荷が蓄積されるキャパシタの容量を大きくする必要が生じてしまうことがある。そこで、突入電流ＩＡ１、ＩＡ２の発生を抑えるため、例えば、図４（ｃ）に示した入力信号ＶＣが積演算部１１１に入力される。
【００４８】
図４（ｃ）に示した入力信号ＶＣは、例えば、図４（ａ）に示した入力信号ＶＡが抵抗器１０１Ｑを経由した場合に発生する。すなわち、抵抗器１０１Ｑにより、入力信号ＶＡの立ち上がり部及び立ち下がり部の時間が長くなり、入力信号ＶＡの信号部の時間が短くなる。入力信号ＶＣは、信号部、立ち上がり部及び立ち下がり部を有する。入力信号ＶＣの立ち上がり部は、時刻ｔ１から時刻ｔ２までの区間であり、ゼロ電圧から信号部の電圧レベルまで電圧が上昇している部分である。信号部は、時刻ｔ２から時刻ｔ３までの区間であり、当該区間の長さが入力値に対応している。立ち下がり部は、時刻ｔ３から時刻ｔ４までの区間であり、信号部の電圧レベルからゼロ電圧まで下降している部分である。
【００４９】
図４（ｃ）に示した入力信号ＶＣが積演算部１１１の読み出し端子１１１Ｘに入力された場合、図４（ｄ）に示した突入電流ＩＤ１、ＩＤ２が発生する。突入電流ＩＤ１は、入力信号ＶＣの立ち上がり部に起因しており、積演算部１１１の寄生容量１１１Ｃへの充電により発生する。突入電流ＩＤ２は、入力信号ＶＡの立ち下がり部に起因しており、積演算部１１１の寄生容量１１１Ｃからの放電により発生する。
【００５０】
図４（ｃ）に示すように、入力信号ＶＣの立ち上がり部及び立ち下り部の時間が図４（ａ）に示した入力信号ＶＡの立ち上がり部及び立ち下り部各々よりも長いため、図４（ｄ）に示した突入電流ＩＤ１、ＩＤ２は、図４（ｂ）に示した突入電流ＩＡ１、ＩＡ２よりも小さくなる。したがって、積演算部１１１に入力信号ＶＣを入力することにより、積和演算器１の発熱、発熱に伴う誤作動の発生、積和演算器１の負荷の増大につながってしまうことが抑制され、突入電流が小さくなり、出力信号に起因する電荷が蓄積されるキャパシタの容量を小さくすることができる。
【００５１】
しかし、図４（ａ）及び図４（ｃ）に示すように、突入電流ＩＤ１、ＩＤ２は、突入電流ＩＡ１、ＩＡ２よりも発生している時間が長くなるため、積演算部１１１の可変抵抗１１１Ｒに流れ込む割合が突入電流ＩＡ１、ＩＡ２よりも大きくなる。したがって、図４（ｃ）に示した入力信号ＶＣが積演算部１１１の読み出し端子１１１Ｘに入力された場合、突入電流ＩＤ１、ＩＤ２により和演算部１０Ｓが演算する出力信号の総和がずれてしまうことがある。
【００５２】
また、図４を参照しながら説明した内容は、積演算部１２１、２１１、２１２、…、ｋ１１、ｋ２１及び和演算部２０Ｓについても同様である。
【００５３】
そこで、積和演算器１は、次に説明する方法により、入力信号ＶＣの立ち上がり部及び立ち下がり部によりずれた出力信号の総和を補正する。
【００５４】
図５は、第１実施形態に係る補正用入力信号の一例を示す図である。入力部１０１Ｅは、所定の信号を抵抗器１０１Ｑに入力することにより、図５に示した補正用入力信号ＶＨを読み出し端子１１１Ｘ、１２１Ｘに入力する。同様に、入力部２０１Ｅは、所定の信号を抵抗器２０１Ｑに入力することにより、図５に示した補正用入力信号ＶＨを読み出し端子２１１Ｘ、２２１Ｘに入力する。また、同様に、入力部ｋ０１Ｅは、所定の信号を抵抗器ｋ０１Ｑに入力することにより、図５に示した補正用入力信号ＶＨを読み出し端子ｋ１１Ｘ、ｋ２１Ｘに入力する。
【００５５】
補正用入力信号ＶＨは、立ち上がり部及び立ち下がり部を有する。具体的には、図５に示すように、補正用入力信号ＶＨは、時刻ｔ１０から時刻ｔ２０まで区間でゼロ電圧から図４（ｃ）に示した入力信号ＶＣの信号部の電圧レベルまで上昇する立ち上がり部を含む。補正用入力信号ＶＨの立ち上がり部の傾き及び時間は、図４（ｃ）に示した入力信号ＶＣの立ち上がり部の傾き及び時間と等しい。また、補正用入力信号ＶＨは、時刻ｔ２０から時刻ｔ３０まで区間で図４（ｃ）に示した入力信号ＶＣの信号部の電圧レベルからゼロ電圧まで下降する立ち下がり部を含む。補正用入力信号ＶＨの立ち下がり部の傾き及び時間は、図４（ｃ）に示した入力信号ＶＣの立ち下がり部の傾き及び時間と等しい。
【００５６】
なお、補正用入力信号ＶＨの立ち上がり部の面積は、補正部１０Ｈが上述した補正処理に使用する補正値に含まれる第１の値に対応しているため、図４（ｃ）に示した入力信号ＶＣの立ち上がり部の面積に近い程好ましい。同様に、補正用入力信号ＶＨの立ち下がり部の面積は、補正部１０Ｈが上述した補正処理に使用する補正値に含まれる第２の値に対応しているため、図４（ｃ）に示した入力信号ＶＣの立ち下がり部の面積に近い程好ましい。
【００５７】
積演算部１１１は、補正用入力信号ＶＨに重みを乗算して補正用出力信号を生成し、補正用出力信号を出力する。すなわち、積演算部１１１は、可変抵抗１１１Ｒの抵抗値を重みとして読み出し、読み出し端子１１１Ｘに入力された補正用入力信号ＶＨに対する積演算を実行して補正用出力信号を生成し、共通端子１１１Ｙから補正用出力信号を出力する。同様に、積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１は、それぞれ補正用入力信号ＶＨに重みを乗算して補正用出力信号を生成し、出力信号を出力する。
【００５８】
和演算部１０Ｓは、積演算部１１１、２１１、…、ｋ１１各々が出力した補正用出力信号の総和を演算し、演算結果を補正部１０Ｈに出力する。補正部１０Ｈは、当該演算により得られた総和を補正値とし、積演算部１１１、２１１、…、ｋ１１各々が出力した出力信号の総和から当該補正値を差し引く補正処理を実行する。同様に、和演算部２０Ｓは、積演算部１２１、２２１、…、ｋ２１各々が出力した補正用出力信号の総和を演算し、演算結果を補正部２０Ｈに出力する。補正部２０Ｈは、当該演算により得られた総和を補正値とし、積演算部１２１、２２１、…、ｋ２１各々が出力した出力信号の総和から当該補正値を差し引く補正処理を実行する。
【００５９】
また、図５に示した補正用入力信号ＶＨを積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１各々に入力することにより得られた補正値は、補正値記憶部に記憶されてもよい。補正値記憶部は、補正値を記憶する記憶媒体である。
【００６０】
次に、図６を参照しながら、積和演算器１が備える和演算部、補正部及びデータ処理部の具体的な例を説明する。図６は、第１実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。次の説明では、和演算部１０Ｓ、補正部１０Ｈ及びデータ処理部１０Ｄを例に挙げて説明するが、和演算部２０Ｓ、補正部２０Ｈ及びデータ処理部２０Ｄについても同様である。
【００６１】
図６に示すように、和演算部１０Ｓは、キャパシタ１０１Ｓと、コンパレータ１０２Ｓと、基準電圧生成回路１０３Ｓとを備える。キャパシタ１０１Ｓは、一方の端子が積演算部１１１、２１１、…、ｋ１１各々の共通端子１１１Ｙ、２１１Ｙ、…、ｋ１１Ｙ及びコンパレータ１０２Ｓの反転入力端子に接続されており、他方の端子がコンパレータ１０２Ｓの出力端子に接続されている。キャパシタ１０１Ｓには、積演算部１１１、２１１、…、ｋ１１各々が出力する出力信号に起因する電荷が蓄積される。コンパレータ１０２Ｓは、非反転入力端子に接続されている基準電圧生成回路１０３Ｓから供給される基準電圧を使用してキャパシタ１０３の電圧を読み取り、補正部１０Ｈに出力する。ここで読み取られた電圧が積演算部１１１、２１１、…、ｋ１１各々が出力する出力信号の総和である。
【００６２】
図６に示すように、補正部１０Ｈは、コンパレータ１０２Ｈと、補正電圧生成回路１０３Ｈとを備える。コンパレータ１０２Ｈは、非反転入力端子がコンパレータ１０２Ｓの出力端子に接続されており、反転入力端子が補正電圧生成回路１０３Ｈに接続されており、出力端子がデータ処理部１０Ｄに接続されている。コンパレータ１０２Ｈは、補正電圧生成回路１０３Ｈから供給される補正電圧を使用して補正部１０Ｈが補正した出力信号の総和を補正する。つまり、補正電圧は、上述した第１の値及び第２の値を含む補正値に基づいて決定される。
【００６３】
図６に示すように、データ処理部１０Ｄは、アナログ‐デジタル変換回路１０１Ｄと、活性化関数処理回路１０２Ｄと、デジタル‐アナログ変換回路１０３Ｄとを備える。アナログ‐デジタル変換回路１０１Ｄは、補正部１０Ｈにより補正された出力信号の総和を示すアナログ信号をデジタル信号に変換する。活性化関数処理回路１０２Ｄは、このデジタル信号に活性化関数処理を施す。デジタル‐アナログ変換回路１０３Ｄは、活性化関数処理が施されたデジタル信号をアナログ信号に変換する。このアナログ信号は、例えば、別の積和演算器に出力される。
【００６４】
積和演算器１は、図６に示した和演算部１０Ｓ、補正部１０Ｈ及びデータ処理部１０Ｄを使用することにより、キャパシタ１０１Ｓの電圧を読み取るための基準電圧と補正部１０Ｈが補正した出力信号の総和を補正するための補正電圧とを別々に生成している。このため、積和演算器１は、正確な補正電圧を生成し、積演算部１１１、２１１、…、ｋ１１各々が出力する出力信号の総和を正確に補正することができる。
【００６５】
次に、図７を参照しながら、第１実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例について説明する。図７は、第１実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例を説明するための図である。
【００６６】
ノード１０１、２０１、…、ｋ０１は、入力層を形成している。パーセプトロン１０、２０は、隠れ層又は出力層を形成している。ノード１０１は、図１及び図３に示した入力部１０１Ｅに対応しており、入力信号に対応する入力値をパーセプトロン１０、２０に対して出力する。同様に、ノード２０１、…、ｋ０１は、それぞれ入力部２０１Ｅ、…、ｋ０１Ｅに対応しており、入力信号に対応する入力値をパーセプトロン１０、２０に対して出力する。
【００６７】
矢印１１１Ａは、積演算部１１１に対応しており、ノード１０１が出力した入力値に重みが乗算され、出力信号に対応する値がパーセプトロン１０に入力されることを表している。同様に、矢印１２１Ａは、積演算部１２１に対応しており、ノード１０１が出力した入力値に重みが乗算され、出力信号に対応する値がパーセプトロン２０に入力されることを表している。これらは、矢印２１１Ａ、２２１Ａ、…、ｋ１１Ａ、ｋ２１Ａについても同様である。
【００６８】
パーセプトロン１０は、図１及び図３に示した和演算部１０Ｓ、補正部１０Ｈ及びデータ処理部１０Ｄに対応しており、矢印１１１Ａ、２１１Ａ、…、ｋ１１Ａから入力された値の総和を演算して上述した補正処理を実行し、補正処理を施した総和に活性化関数処理を施して出力する。同様に、パーセプトロン２０は、図１及び図３に示した和演算部２０Ｓ、補正部２０Ｈ及びデータ処理部２０Ｄに対応しており、矢印１２１Ａ、２２１Ａ、…、ｋ２１Ａから入力された値の総和を演算して上述した補正処理を実行し、補正処理を施した総和に活性化関数処理を施して出力する。
【００６９】
以上、第１実施形態に係る積和演算器１について説明した。積和演算器１は、入力信号ＶＣの立ち上がり部に起因し、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１の少なくとも一つの可変抵抗に流れ込む電流により総和に組み込まれる第１の値及び入力信号ＶＣの立ち下がり部に起因し、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１の少なくとも一つの可変抵抗に流れ込む電流により総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて出力信号の総和を補正する。これにより、積和演算器１は、入力信号ＶＣの立ち上がえり部及び立ち下り部の少なくとも一方による出力信号の総和のずれを補正し、正確な積和演算を実行することができる。
【００７０】
また、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１の少なくとも一つは、磁気抵抗効果を示す磁気抵抗効果素子を含む。磁気抵抗効果素子は、ほかの可変抵抗素子と比較して寄生容量が大きいため、入力信号の立ち上がり部及び立ち下がり部における電圧の変化速度を低下させ、突入電流による回路の発熱や回路の負荷を緩和する必要性が特に大きい。したがって、積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１の少なくとも一つが磁気抵抗効果素子を含む場合、第１の値及び第２の値の少なくとも一方を含む補正値を使用することにより奏される効果が特に有用となる。
【００７１】
積演算部１１１は、読み出し端子１１１Ｘ読み出し端子１１１Ｘと、共通端子１１１Ｙと、書き込み端子１１１Ｚとを含む。これにより、積和演算器１は、積和演算を実行する場合にのみ寄生容量１１１Ｃの影響を受け、共通端子１１１Ｙと書き込み端子１１１Ｚとの間に書き込み電流を流す場合には、寄生容量１１１Ｃの影響を受けること無く可変抵抗１１１Ｒの抵抗値を変化させることができる。また、これらは、同様に、積演算部１２１、２１１、２２１、…、ｋ１１、ｋ２１についても同様である。
【００７２】
また、積和演算器１は、立ち上がり部及び立ち下がり部を有する補正用入力信号ＶＨを積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１に入力して重みを乗算して補正用出力信号を生成し、これらの補正用出力信号の総和を補正値として補正処理を実行する。これにより、積和演算器１は、正確な補正値を生成することができるため、正確な積和演算を実行することができる。
【００７３】
また、積和演算器１は、抵抗器１０１Ｑ、２０１、…、ｋ０１Ｑ各々を経由させて積演算部１１１、１２１、２１１、２２１、…、ｋ１１、ｋ２１各々に入力信号を入力させる。これにより、積和演算器１は、入力信号ＶＡの立ち上がり部及び立ち下がり部が急峻でも、立ち上がり部及び立ち下がり部の電圧の変化速度を低下させ、第１の値及び第２の値の少なくとも一方を含む補正値を使用する補正処理を実行し、正確な積和演算を実行することができる。
【００７４】
なお、積和演算器１は、抵抗器１０１Ｑ、２０１Ｑ、…、ｋ０１Ｑの代わりに積演算部の読み出し端子１１１Ｘ、１２１Ｘ、２１１Ｘ、２２１Ｘ、…、ｋ１１Ｘ、ｋ２１Ｘ各々の直前に抵抗器を備えていてもよい。この抵抗器の役割は、抵抗器１０１Ｑ、２０１Ｑ、…、ｋ０１Ｑと同様である。
【００７５】
［第２実施形態］
図８を参照しながら、第１実施形態に係る積和演算器の構成の一例について説明する。第２実施形態に係る積和演算器は、図６を参照しながら説明した和演算部１０Ｓ、補正部１０Ｈ及びデータ処理部１０Ｄの具体的な構成が第１実施形態に係る積和演算器１と異なる。そこで、第２実施形態の説明では、第１実施形態と異なる事項のみを説明し、重複する説明を省略する。
【００７６】
図８は、第２実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。図８に示すように、第２実施形態に係る積和演算器は、キャパシタ１０１１Ｓと、コンパレータ１０２１Ｓと、電圧生成回路１０３１Ｈと、データ処理部１０Ｄとを備える。データ処理部１０Ｄは、第１実施形態と同様である。
【００７７】
キャパシタ１０１１Ｓは、一方の端子が積演算部１１１、２１１、…、ｋ１１各々の共通端子１１１Ｙ、２１１Ｙ、…、ｋ１１Ｙ及びコンパレータ１０２１Ｓの反転入力端子に接続されており、他方の端子がコンパレータ１０２１Ｓの出力端子に接続されている。キャパシタ１０１１Ｓには、積演算部１１１、２１１、…、ｋ１１各々が出力する出力信号に起因する電荷が蓄積される。コンパレータ１０２１Ｓは、非反転入力端子に接続されている電圧生成回路１０３１Ｈから供給される基準電圧及び補正電圧を使用してキャパシタ１０１１Ｓの電圧を読み取る。ここでは、コンパレータ１０２１Ｓに基準電圧だけではなく、補正電圧も供給されているため、コンパレータ１０２１Ｓは、補正値による補正処理が施されている電圧を読み取る。
【００７８】
このため、第２実施形態に係る積和演算器は、出力信号の総和を演算するために使用するコンパレータと当該総和を補正するために使用するコンパレータを一つにまとめ、回路規模を低減させることができる。
【００７９】
［第３実施形態］
図９を参照しながら、第１実施形態に係る積和演算器の構成の一例について説明する。第３実施形態に係る積和演算器は、アナログ回路を使用して補正処理を実行する第１実施形態に係る積和演算器１及び第２実施形態に係る積和演算器と異なり、デジタル回路を使用して補正処理を実行する。そこで、第３実施形態の説明では、第１実施形態及び第２実施形態と異なる事項のみを説明し、重複する説明を省略する。
【００８０】
図９は、第３実施形態に係る和演算部、補正部及びデータ処理部の一例を説明するための図である。図９に示すように、第３実施形態に係る積和演算器は、和演算部１０Ｓと、アナログ‐デジタル変換回路１０１１Ｄと、補正値記憶部１０３２Ｈと、演算回路１０３３Ｈと、活性化関数処理回路１０２１Ｄと、デジタル‐アナログ変換回路１０３１Ｄとを備える。和演算部１０Ｓは、第１実施形態と同様である。
【００８１】
アナログ‐デジタル変換回路１０１１Ｄは、和演算部１０Ｓが出力した出力信号の総和を示すアナログ信号をデジタル信号に変換する。補正値記憶部１０３２Ｈは、補正値をデジタルデータとして記憶している記憶媒体である。演算回路１０３３Ｈは、補正値記憶部１０３２Ｈから補正値を取得し、デジタル信号に変換された出力信号の総和から補正値を差し引いて出力する。活性化関数処理回路１０２１Ｄは、このデジタル信号に活性化関数処理を施す。デジタル‐アナログ変換回路１０３１Ｄは、活性化関数処理が施されたデジタル信号をアナログ信号に変換する。
【００８２】
このため、第３実施形態に係る積和演算器は、既に使用されているアナログ回路としての積和演算器に補正値記憶部１０３２Ｈ及び演算回路１０３３Ｈを追加するだけで、上述した補正処理を実行することができる。また、第３実施形態に係る積和演算器は、補正値を補正値記憶部１０３２Ｈに記憶させているため、上述した補正処理を実行する度に補正値を演算する必要が無い。さらに、第３実施形態に係る積和演算器は、補正値記憶部１０３２Ｈを補正部の外部に備えることにより、補正部の回路規模の増大を抑制しつつ、補正値に基づく補正処理を実行することができる。また、補正部の数が積演算部の数よりも少ないため、第３実施形態に係る積和演算器は、補正値記憶部１０３２Ｈの記憶容量を大きくする必要が無い。
【００８３】
なお、上述した積和演算器１は、論理演算デバイス又はニューロモーフィックデバイスに含まれていてもよい。ここで言う論理演算デバイスは、複数の積和演算器１を組み合わせることにより形成された論理回路、例えば、ＡＮＤ回路、ОＲ回路である。また、ここで言う論理演算は、ディープラーニングを含む概念である。また、ここで言うニューロモーフィックデバイスは、脳の構造及びニューロンと呼ばれる神経細胞が発火する仕組みを応用したデバイスであり、機械学習等に使用される。
【００８４】
また、上述した第１実施形態に係る積和演算器１等の各装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録させ、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより、処理を行ってもよい。
【００８５】
ここで言うコンピュータシステムとは、オペレーティング・システム（Operating  System：ＯＳ）又は周辺機器等のハードウェアを含むものであってもよい。また、コンピュータ読み取り可能な記録媒体とは、例えば、フロッピーディスク、光磁気ディスク、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital  Versatile  Disc）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、ネットワーク又は通信回線を介してプログラムが送信される場合におけるサーバ又はクライアントとなるコンピュータシステム内部の揮発性メモリのように一定時間プログラムを保持しているものも含む。
【００８６】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、又は、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体とは、インターネット等のネットワーク又は電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
【００８７】
また、上述したプログラムは、上述した機能の一部を実現するためのものであってもよく、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分プログラムであってもよい。上述したプログラムは、例えば、コンピュータが備えるＣＰＵ（Central  Processing  Unit）等のプロセッサにより読み出されて実行される。
【００８８】
以上、本発明の第１実施形態について図面を参照して詳述したが、具体的な構成はこの第１実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。上述した各第１実施形態に記載の構成を組み合わせてもよい。
【符号の説明】
【００８９】
１…積和演算器、１１１，１２１，２１１，２２１，ｋ１１，ｋ２１…積演算部、１１１Ｒ，１２１Ｒ，２１１Ｒ，２２１Ｒ，ｋ１１Ｒ，ｋ２１Ｒ…可変抵抗、１０Ｓ，２０Ｓ…和演算部、１０Ｈ，２０Ｈ…補正部
【要約】
積和演算器は、入力値に対応し、立ち上がり部、信号部、及び立ち下がり部を有する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する複数の積演算部と、複数の前記積演算部各々が出力した前記出力信号の総和を演算する和演算部と、前記入力信号の前記立ち上がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第１の値及び前記入力信号の前記立ち下がり部に起因し、複数の前記積演算部の可変抵抗に流れ込む電流により前記総和に組み込まれる第２の値の少なくとも一方を含む補正値に基づいて前記出力信号の総和を補正する補正処理を実行する補正部と、を備える。【図１】
0006540931.tif 000002
【図２】
0006540931.tif 000003
【図３】
0006540931.tif 000004
【図４】
0006540931.tif 000005
【図５】
0006540931.tif 000006
【図６】
0006540931.tif 000007
【図７】
0006540931.tif 000008
【図８】
0006540931.tif 000009
【図９】
0006540931.tif 000010