(57)【特許請求の範囲】
【請求項１】
入力値に対応する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する複数の積演算部と、
前記入力信号の入力による前記積演算部の寄生容量への充電に起因する第一過渡応答が収束し定常状態になる時間から、前記入力信号の入力による前記積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの時間において、前記入力信号から所定の時間遅れで複数の前記積演算部が出力する電流を検出し、以後一定時間間隔で複数の前記積演算部が出力する電流を検出する電流検出処理を実行する電流検出部と、
前記電流検出部が前記一定時間間隔ごとに検出した電流に基づいて前記出力信号の総和に関連する値を演算する和演算部と、
を備える積和演算器。
【請求項２】
複数の前記積演算部各々は、磁気抵抗効果を示す磁気抵抗効果素子を含む、
請求項１に記載の積和演算器。
【請求項３】
前記和演算部は、前記電流検出部が前記一定時間間隔ごとに検出した電流の合計である合計電流と係数時間との積を前記出力信号の総和に関連する値として演算する、
請求項１又は請求項２に記載の積和演算器。
【請求項４】
前記係数時間は、前記入力信号がとり得る最短の長さであり、
前記入力信号は、前記係数時間の整数倍の長さを有し、複数の前記積演算部に同時に入力され、
前記電流検出部は、前記係数時間に等しい周期で前記電流検出処理を実行する、
請求項３に記載の積和演算器。
【請求項５】
前記電流検出部は、最初に前記電流検出処理が実行されてから前記入力信号がとり得る最長の長さに等しい時間が経過した時点で前記電流検出処理を終了させる、
請求項１から請求項４のいずれか一つに記載の積和演算器。
【請求項６】
前記電流検出部は、前記電流検出処理により検出された電流が複数の前記積演算部に前記入力信号が入力されていない場合における電流と等しい場合、前記電流検出処理を終了させる、
請求項１から請求項５のいずれか一つに記載の積和演算器。
【請求項７】
請求項１から請求項６のいずれか一つに記載の積和演算器を備える論理演算デバイス。
【請求項８】
請求項１から請求項６のいずれか一つに記載の積和演算器を備えるニューロモーフィックデバイス。
【請求項９】
請求項１から請求項６のいずれか一つに記載の積和演算器による積和演算方法であって、
複数の積演算部を使用することにより、入力値に対応する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する積演算工程と、
前記入力信号の入力による前記積演算部の寄生容量への充電に起因する第一過渡応答が収束し定常状態になる時間から、前記入力信号の入力による前記積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの時間において、前記入力信号から所定の時間遅れで複数の前記積演算部が出力する電流を検出し、以後一定時間間隔で複数の前記積演算部が出力する電流を検出する電流検出処理を実行する電流検出工程と、
前記電流検出工程において前記一定時間間隔ごとに検出された電流に基づいて前記出力信号の総和に関連する値を演算する和演算工程と、
を含む積和演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法に関する。
【背景技術】
【０００２】
従来のニューラルネットワークでは、入力信号に重みを積算し、それら全ての総和の値を活性化関数へ入力して、出力を得る。そこで、連続的に抵抗が変化するメモリスタを２つ以上組み合わせ、そこから出力される電流値の総和を読むことで、積和演算をアナログ回路で実現する試みがなされている。【０００３】
ニューラルネットワークの学習過程において、各シナプスに割り当てられたメモリスタは所定の重みとなるように抵抗値が変化し、電源が切られてもその値を保持する。推論過程では、情報が保持されたメモリスタの値を利用し、入力データのレベルに応じて電圧パルスの長さが変化するパルス幅変調制御（Pulse  Width  Modulation:ＰＷＭ）が用いられる。【０００４】
例えば、特許文献１には、データ線及びビット線から抵抗変化型可変抵抗素子に書き込まれた情報を電荷量としてコンデンサに記憶される積和演算装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５１６０３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリスタは、等価回路として寄生容量と寄生抵抗とが並列接続された回路構成を有する。このため、メモリスタに電圧パルスである入力信号が入力した場合、寄生容量への充電に起因する過渡応答及び寄生容量からの放電に起因する過渡応答が発生する。したがって、上述した積和演算装置では、これらの過渡応答が発生していない定常状態における電荷に加え、これらの過渡応答による電荷がコンデンサに記憶されてしまうため、コンデンサが飽和してしまい、積和演算を実行することができなくなってしまうことがある。【０００７】
そこで、本発明は、コンデンサの飽和により積和演算を実行することができなくなる事態を回避することができる積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、入力値に対応する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する複数の積演算部と、前記入力信号の入力による前記積演算部の寄生容量への充電に起因する第一過渡応答が収束し定常状態になる時間から、前記入力信号の入力による前記積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの時間において、前記入力信号から所定の時間遅れで複数の前記積演算部が出力する電流を検出し、以後一定時間間隔で複数の前記積演算部が出力する電流を検出する電流検出処理を実行する電流検出部と、前記電流検出部が前記一定時間間隔ごとに検出した電流に基づいて前記出力信号の総和に関連する値を演算する和演算部と、を備える積和演算器である。【０００９】
また、本発明の一態様において、複数の前記積演算部各々は、磁気抵抗効果を示す磁気抵抗効果素子を含む。【００１０】
また、本発明の一態様において、前記和演算部は、前記電流検出部が前記一定時間間隔ごとに検出した電流の合計である合計電流と係数時間との積を前記出力信号の総和に関連する値として演算する。【００１１】
また、本発明の一態様において、前記係数時間は、前記入力信号がとり得る最短の長さであり、前記入力信号は、前記係数時間の整数倍の長さを有し、複数の前記積演算部に同時に入力され、前記電流検出部は、前記係数時間に等しい周期で前記電流検出処理を実行する。【００１２】
また、本発明の一態様において、前記電流検出部は、最初に前記電流検出処理が実行されてから前記入力信号がとり得る最長の長さに等しい時間が経過した時点で前記電流検出処理を終了させる。【００１３】
また、本発明の一態様において、前記電流検出部は、前記電流検出処理により検出された電流が複数の前記積演算部に前記入力信号が入力されていない場合における電流と等しい場合、前記電流検出処理を終了させる。【００１４】
また、本発明の一態様は、上述した積和演算器のいずれか一つを備える論理演算デバイスである。【００１５】
また、本発明の一態様は、上述した積和演算器のいずれか一つを備えるニューロモーフィックデバイスである。【００１６】
また、本発明の一態様は、上述した積和演算器のいずれか一つによる積和演算方法であって、複数の積演算部を使用することにより、入力値に対応する入力信号に重みを乗算して出力信号を生成し、前記出力信号を出力する積演算工程と、前記入力信号の入力による前記積演算部の寄生容量への充電に起因する第一過渡応答が収束し定常状態になる時間から、前記入力信号の入力による前記積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの時間において、前記入力信号から所定の時間遅れで複数の前記積演算部が出力する電流を検出し、以後一定時間間隔で複数の前記積演算部が出力する電流を検出する電流検出処理を実行する電流検出工程と、前記電流検出工程において前記一定時間間隔ごとに検出された電流に基づいて前記出力信号の総和に関連する値を演算する和演算工程と、を含む積和演算方法である。
【発明の効果】
【００１７】
上述した積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法によれば、コンデンサの飽和により積和演算を実行することができなくなる事態を回避することができる積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係る積和演算器の一部の構成の一例を示す図である。
【図２】実施形態に係る抵抗変化素子の一例を示す図である。
【図３】実施形態に係る積和演算器の一部の構成の等価回路の一例を示す図である。
【図４】実施形態に係る積演算部に入力される入力信号の一例を示す図である。
【図５】実施形態に係る積演算部から出力される出力信号の一例を示す図である。
【図６】実施形態に係る電流検出部に入力される電流の一例を示す図である。
【図７】実施形態に係る電流検出部が電流検出処理を実行するタイミングを説明するための図である。
【図８】実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例を説明するための図である。
【発明を実施するための形態】
【００１９】
［実施形態］
図１及び図２を参照しながら、実施形態に係る積和演算器の構成の一例について説明する。
【００２０】
図１は、実施形態に係る積和演算器の一部の構成の一例を示す図である。図１に示すように、積和演算器１は、積演算部１１１、１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１と、入力部１０１Ｅ、２０１Ｅ、３０１Ｅ、…、ｋ０１Ｅと、電流検出部１０Ｄ、２０Ｄと、和演算部１０Ｓ、２０Ｓとを備える。
【００２１】
図２は、実施形態に係る抵抗変化素子の一例を示す図である。積演算部１１１は、抵抗変化素子、例えば、図２に示した磁気抵抗効果素子である。図１及び図２に示すように、積演算部１１１は、可変抵抗１１１Ｒ、読み出し端子１１１Ｘ、共通端子１１１Ｙ及び書き込み端子１１１Ｚを備える。また、図１に示す積演算部１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１は抵抗変化素子、例えば、図２に示したものと同様の磁気抵抗効果素子であり、それぞれ可変抵抗１２１Ｒ、２１１Ｒ、２２１Ｒ、３１１Ｒ、３２１Ｒ、…、ｋ１１Ｒ、ｋ２１Ｒと、読み出し端子１２１Ｘ、２１１Ｘ、２２１Ｘ、３１１Ｘ、３２１Ｘ、…、ｋ１１Ｘ、ｋ２１Ｘと、共通端子１２１Ｙ、２１１Ｙ、２２１Ｙ、３１１Ｙ、３２１Ｙ、…、ｋ１１Ｙ、ｋ２１Ｙと、書き込み端子１２１Ｚ、２１１Ｚ、２２１Ｚ、３１１Ｚ、３２１Ｚ、…、ｋ１１Ｚ、ｋ２１Ｚとを備える。以下の説明では、適宜、積演算部１１１を例に挙げて説明するが、他の積演算部１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１についても同様である。
【００２２】
ここで、積演算部１１１が備える可変抵抗１１１Ｒは、例えば、図２に示すように、磁化固定層１１１１と、非磁性層１１１２と、第１領域１１１３と、磁壁１１１４と、第２領域１１１５と、第１磁化供給層１１１６と、第２磁化供給層１１１７とを備える。以下、図２を使用した説明では、図２に示したｘ軸、ｙ軸及びｚ軸を使用する。ｘ軸、ｙ軸及びｚ軸は、右手系の三次元直交座標を形成している。磁化固定層１１１１、非磁性層１１１２、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７は、ｚ軸方向に薄い直方体状に形成されており、最も面積が大きな面がｘｙ平面と平行で第１領域１１１３と第２領域１１１５と電気的、磁気的に接続されている。＋ｚ方向から−ｚ方向に向かって磁化固定層１１１１、非磁性層１１１２、第１領域１１１３及び第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７の順に積層されているが、積層される方向が逆になっていてもよい。これらが積層される方向が逆になっている場合、読み出し端子１１１Ｘが−ｚ方向側に設けられ、共通端子１１１Ｙ及び書き込み端子１１１Ｚが＋ｚ方向側に設けられる。
【００２３】
磁化固定層１１１１は、磁化方向が＋ｚ方向又は−ｚ方向に固定されている。ここで、磁化が固定されるとは、磁壁１１１４導入するための初期化時及び書き込み電流を使用した書き込み前後で磁化方向が変化しないことを意味する。また、磁化固定層１１１１は、例えば、面内磁気異方性を有する面内磁化膜、垂直磁気異方性を有する垂直磁化膜であってもよい。
【００２４】
非磁性層１１１２は、＋ｚ方向を向いている面が磁化固定層１１１１のうち−ｚ方向を向いている面と接しており、−ｚ方向を向いている面が第１領域１１１３及び第２領域１１１５と接している。図２に示すように、磁化固定層１１１１の−ｚ方向側を向いている面と非磁性層１１１２の＋ｚ方向側を向いている面とは、互いに形状及び面積が等しくなっている。ただし、非磁性層１１１２は、第１領域１１１３の＋ｚ方向を向いている面及び第２領域１１１５＋ｚ方向を向いている面を図２に示した場合よりも広く覆うように広がっていてもよい。また、非磁性層１１１２は、積演算部１１１が磁化固定層１１１１に対する磁化自由層の磁化状態の変化を抵抗値の変化として読み出すために使用される。
【００２５】
第１領域１１１３、磁壁１１１４及び第２領域１１１５は、磁化自由層を形成している。磁化自由層は、強磁性材料により作製されている。第１領域１１１３の磁化方向と第２領域１１１５の磁化方向は、ｚ軸に平行な方向において互いに反対になっている。磁壁１１１４は、ｙ軸に平行な方向において、第１領域１１１３と第２領域１１１５とで挟まれている。
【００２６】
第１磁化供給層１１１６は、ｚ軸に平行な方向において磁化固定層１１１１と重なっていないことが望ましく、＋ｚ方向を向いている面が第１領域１１１３の−ｚ方向を向いている面と接している。また、第１磁化供給層１１１６は、第１領域１１１３のうちｚ軸に平行な方向において第１磁化供給層１１１６と重なる範囲の磁化方向を所望の方向に固定する機能を有する。さらに、第１磁化供給層１１１６の−ｚ方向を向いている面には、書き込み端子１１１Ｚが接続されている。なお、第１磁化供給層１１１６は、例えば、磁化固定層１１１１に使用可能な強磁性材料と同じ材料、ＩｒＭｎ等の反強磁性体、Ｒｕ、Ｉｒ等の非磁性中間層を挟んだ強磁性体、非磁性体及び強磁性体を含む合成反強磁性構造（Ｓｙｎｔｈｅｃｉｃ  ａｎｔｉｆｅｒｒｏｍａｇｎｅｔｉｃ）を有する材料により作製されている。
【００２７】
第２磁化供給層１１１７は、ｚ軸に平行な方向において磁化固定層１１１１と重なっていないことが望ましく、＋ｚ方向を向いている面が第２領域１１１５の−ｚ方向を向いている面と接している。また、第２磁化供給層１１１７は、第２領域１１１５のうちｚ軸に平行な方向において第２磁化供給層１１１７と重なる範囲の磁化方向を所望の方向に固定する機能を有する。さらに、第２磁化供給層１１１７の−ｚ方向を向いている面には、共通端子１１１Ｙが接続されている。なお、第１磁化供給層１１１６は、例えば、磁化固定層１１１１に使用可能な強磁性材料と同じ材料、ＩｒＭｎ等の反強磁性体、Ｒｕ、Ｉｒ等の非磁性中間層を挟んだ強磁性体、非磁性体及び強磁性体を含む合成反強磁性構造（Ｓｙｎｔｈｅｃｉｃ  ａｎｔｉｆｅｒｒｏｍａｇｎｅｔｉｃ）を有する材料により作製されている。
【００２８】
可変抵抗１１１Ｒにおいて、磁化固定層１１１１、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７の磁化方向は、それぞれｚ軸に平行な方向だけでなく、ｘ軸に平行な方向又はｙ軸に平行な方向であってもよい。この場合でも、磁化固定層１１１１の磁化方向と、第１領域１１１３、第２領域１１１５、第１磁化供給層１１１６及び第２磁化供給層１１１７の磁化方向とは、平行であることが望ましい。例えば、磁化固定層１１１１の磁化方向が＋ｙ方向であった場合、第１領域の磁化方向は＋ｙ方向、第２領域の磁化方向は−ｙ方向、第１磁化供給層１１１６の磁化方向は＋ｙ方向、第２磁化供給層１１１７の磁化方向は−ｙ方向である。
【００２９】
積演算部１１１は、共通端子１１１Ｙと書き込み端子１１１Ｚとの間に流す書き込み電流の大きさ及び時間を調整することにより、ｙ軸に平行な方向における磁壁１１１４の位置を変化させる。これにより、積演算部１１１は、磁化方向が平行な領域と磁化方向が反平行な領域との面積の比率を連続的に変化させ、可変抵抗１１１Ｒの抵抗値を略線形に変化させることができる。ここで、磁化方向が平行な領域とは、第１領域１１１３のうちｚ軸に平行な方向において磁化固定層１１１１と重なっている部分の面積である。また、磁化方向が反平行な領域とは、第２領域１１１５のうちｚ軸に平行な方向において磁化固定層１１１１と重なっている部分の面積である。また、書き込み電流は、書き込み端子１１１Ｚに入力される。書き込み電流の大きさ及び時間は、電流パルスの数及び時間の少なくとも一方により調整される。
【００３０】
なお、積演算部１１１，１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１は、トンネル磁気抵抗効果素子であってもよい。トンネル磁気抵抗効果素子は、磁化固定層と、磁化自由層と、非磁性層としてのトンネルバリア層とを備える。磁化固定層及び磁化自由層は、強磁性材料で作製されており、磁化を有する。トンネルバリア層は、磁化固定層と磁化自由層との間に挟まれている。トンネル磁気抵抗効果素子は、磁化固定層が有する磁化と磁化自由層が有する磁化との関係を変化させることにより、抵抗値を変化させることができる。
【００３１】
図１に戻って、読み出し端子１１１Ｘ、１２１Ｘには、入力部１０１Ｅが接続されている。同様に、図１に示した読み出し端子２１１Ｘ、２２１Ｘには、入力部２０１Ｅが接続されており、読み出し端子３１１Ｘ、３２１Ｘには、入力部３０１Ｅが接続されており、読み出し端子ｋ１１Ｘ、ｋ２１Ｘには、入力部ｋ０１Ｅが接続されている。
【００３２】
入力部１０１Ｅは、入力値に対応する入力信号を読み出し端子１１１Ｘ、１２１Ｘに入力する。同様に、入力部２０１Ｅは、入力値に対応する入力信号を読み出し端子２１１Ｘ、２２１Ｘに入力する。入力部３０１Ｅは、入力値に対応する入力信号を読み出し端子３１１Ｘ、３２１Ｘに入力する。入力部ｋ０１Ｅは、入力値に対応する入力信号を読み出し端子ｋ１１Ｘ、ｋ２１Ｘに入力する。これらの入力信号は、いずれも入力値に応じたパルス幅変調（Pulse  Width  Modulation:ＰＷＭ）が施されている電圧信号である。
【００３３】
積演算部１１１は、入力値に対応する入力信号に重みを乗算して出力信号を生成し、出力信号を出力する。すなわち、積演算部１１１は、可変抵抗１１１Ｒの抵抗値を重みとして読み出し、読み出し端子１１１Ｘに入力された入力信号に対する積演算を実行して出力信号を生成し、共通端子１１１Ｙから出力信号を出力する。同様に、積演算部１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１は、それぞれ入力値に対応する入力信号に重みを乗算して出力信号を生成し、出力信号を出力する。
【００３４】
電流検出部１０Ｄは、第一過渡応答が収束し定常状態になる時間から、入力信号の入力による積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの間において、入力信号から所定の時間遅れで複数の積演算部が出力する電流を検出し、以後一定間隔時間で積演算部１１１、２１１、３１１、…、ｋ１１が出力する電流を検出する電流検出処理を実行する。同様に、電流検出部２０Ｄは、第一過渡応答が収束し定常状態になる時間から、入力信号の入力による積演算部の寄生容量からの放電に起因する第二過渡応答が発生する前までの間において、入力信号から所定の時間遅れで複数の積演算部が出力する電流を検出し、以後一定間隔時間で積演算部１２１、２２１、３２１、…、ｋ２１が出力する電流を検出する電流検出処理を実行する。電流検出部１０Ｄ、２０Ｄの詳細は、後述する。
【００３５】
和演算部１０Ｓは、電流検出部１０Ｄが一定時間間隔ごとに検出した電流に基づいて出力信号の総和に関連する値を演算する。同様に、和演算部２０Ｓは、電流検出部２０Ｄが一定時間間隔ごとに検出した電流に基づいて出力信号の総和に関連する値を演算する。和演算部１０Ｓ、２０Ｓの詳細は、後述する。
【００３６】
次に、図３から図６を参照しながら、実施形態に係る積和演算器が実行する処理の一例について説明する。
【００３７】
図３は、実施形態に係る積和演算器の一部の構成の等価回路の一例を示す図である。図３に示すように、積演算部１１１は、磁気抵抗効果素子の等価回路として寄生容量１１１Ｃ及び寄生抵抗１１１Ｐを備え、寄生容量１１１Ｃが可変抵抗１１１Ｒに並列接続されており、寄生抵抗１１１Ｐが可変抵抗１１１Ｒに直列接続されていると考えることができる。同様に、積演算部１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１は、それぞれ寄生容量１２１Ｃ、２１１Ｃ、２２１Ｃ、３１１Ｃ、３２１Ｃ、…、ｋ１１Ｃ、ｋ２１Ｃと、寄生抵抗１２１Ｐ、２１１Ｐ、２２１Ｐ、３１１Ｐ、３２１Ｐ、…、ｋ１１Ｐ、ｋ２１Ｐとを備える。さらに、積演算部１１１、１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１には、それぞれ配線抵抗１１１Ｗ、１２１Ｗ、２１１Ｗ、２２１Ｗ、３１１Ｗ、３２１Ｗ、…、ｋ１１Ｗ、ｋ２１Ｗが直列接続されていると考えることができる。
【００３８】
図４は、実施形態に係る積演算部に入力される入力信号の一例を示す図である。入力部１０１Ｅは、例えば、図４（ａ）に示した入力信号Ｖ１を出力する。同様に、入力部２０１Ｅは、例えば、図４（ｂ）に示した入力信号Ｖ２を出力する。また、入力部３０１Ｅは、例えば、図４（ｃ）に示した入力信号Ｖ３を出力する。
【００３９】
入力信号Ｖ１は、係数時間、例えば、２０［ｎｓ］の長さを有するパルス高さ０．１ｍＶの電圧パルスである。この２０［ｎｓ］は、入力信号がとり得る最短の長さの一例である。入力信号Ｖ２は、この係数時間の二倍の４０［ｎｓ］の長さを有するパルス高さ０．１ｍＶの電圧パルスである。入力信号Ｖ３は、この係数時間の長さの四倍の８０［ｎｓ］の長さを有するパルス高さ０．１ｍＶの電圧パルスである。また、入力信号Ｖ１が積演算部１１１に入力される時刻、入力信号Ｖ２が積演算部２１１に入力される時刻及び入力信号Ｖ３が積演算部３１１に入力される時刻は、図４に示すように、いずれも時刻ｔ０である。すなわち、入力信号Ｖ１、入力信号Ｖ２及び入力信号Ｖ３は、それぞれ積演算部１１１、２１１、３２１に同時に入力される。
【００４０】
図５は、実施形態に係る積演算部から出力される出力信号の一例を示す図である。図４（ａ）に示した入力信号Ｖ１が積演算部１１１に入力した場合、図５（ａ）に示した出力信号Ａ１が電流検出部１０Ｄに入力される。同様に、図４（ｂ）に示した入力信号Ｖ２が積演算部２１１に入力した場合、図５（ｂ）に示した出力信号Ａ２が電流検出部１０Ｄに入力される。また、図４（ｃ）に示した入力信号Ｖ３が積演算部３１１に入力した場合、図５（ｃ）に示した出力信号Ａ３が電流検出部１０Ｄに入力される。以下の説明では、寄生容量１１１Ｃ、２１１Ｃ、３１１Ｃ各々の静電容量の差がほとんど無視できる場合を例に挙げて説明する。
【００４１】
図５（ａ）に示した出力信号Ａ１は、第一過渡応答Ｔ１１と、定常部Ｓ１と、第二過渡応答Ｔ１２とを含む電流信号である。第一過渡応答Ｔ１１は、入力信号Ｖ１の入力による積演算部１１１の寄生容量１１１Ｃへの充電に起因する過渡応答である。定常部Ｓ１は、出力信号Ａ１のうち第一過渡応答Ｔ１１の発生が終了した時点から次の第二過渡応答Ｔ１２の発生が開始した時点までの間に定常的な電流Ｃ［ｎＡ］が流れている部分である。第二過渡応答Ｔ１２は、入力信号Ｖ１の入力による積演算部１１１の寄生容量１１１Ｃからの放電に起因する過渡応答である。第一過渡応答Ｔ１１の長さ及び第二過渡応答Ｔ１２の長さは、定常部Ｓ１の長さに比べてほとんど無視し得る程に短い。また、出力信号Ａ１の長さは、入力信号Ｖ１の長さである２０［ｎｓ］に寄生容量１１１Ｃからの放電に起因する過渡応答を加えた時間と同程度である。
【００４２】
図５（ｂ）に示した出力信号Ａ２は、第一過渡応答Ｔ２１と、定常部Ｓ２と、第二過渡応答Ｔ２２とを含む電流信号である。第一過渡応答Ｔ２１は、入力信号Ｖ１の入力による積演算部２１１の寄生容量２１１Ｃへの充電に起因する過渡応答である。定常部Ｓ２は、出力信号Ａ２のうち第一過渡応答Ｔ２１の発生が終了した時点から次の第二過渡応答Ｔ２２の発生が開始した時点までの間に定常的な電流［ｎＡ］が流れている部分である。第二過渡応答Ｔ２２は、入力信号Ｖ２の入力による積演算部２１１の寄生容量２１１Ｃからの放電に起因する過渡応答である。第一過渡応答Ｔ２１の長さ及び第二過渡応答Ｔ２２の長さは、定常部Ｓ２の長さに比べてほとんど無視し得る程に短い。また、出力信号Ａ２の長さは、入力信号Ｖ２の長さである４０［ｎｓ］に寄生容量２１１Ｃからの放電に起因する過渡応答を加えた時間と同程度である。
【００４３】
図５（ｃ）に示した出力信号Ａ３は、第一過渡応答Ｔ３１と、定常部Ｓ３と、第二過渡応答Ｔ３２とを含む電流信号である。第一過渡応答Ｔ３１は、入力信号Ｖ３の入力による積演算部３１１の寄生容量３１１Ｃへの充電に起因する過渡応答である。定常部Ｓ３は、出力信号Ａ３のうち第一過渡応答Ｔ３１の発生が終了した時点から次の第二過渡応答Ｔ３２の発生が開始した時点までの間に定常的な電流Ｃ［ｎＡ］が流れている部分である。第二過渡応答Ｔ３２は、入力信号Ｖ３の入力による積演算部３１１の寄生容量３１１Ｃからの放電に起因する過渡応答である。第一過渡応答Ｔ３１の長さ及び第二過渡応答Ｔ３２の長さは、定常部Ｓ３の長さに比べてほとんど無視し得る程に短い。また、出力信号Ａ３の長さは、入力信号Ｖ３の長さである８０［ｎｓ］に寄生容量３１１Ｃからの放電に起因する過渡応答を加えた時間と同程度である。
【００４４】
また、寄生容量１１１Ｃ、２１１Ｃ、３１１Ｃ各々の静電容量の差がほとんど無視できる場合、第一過渡応答Ｔ１１、第一過渡応答Ｔ２１及び第一過渡応答Ｔ３１は、互いに長さ及び高さがほとんど等しい過渡応答となり、第二過渡応答Ｔ１２、第二過渡応答Ｔ２２及び第二過渡応答Ｔ３２は、互いに長さ及び高さがほとんど等しい過渡応答となる。
【００４５】
図６は、実施形態に係る電流検出部に入力される電流の一例を示す図である。図４に示した入力信号Ｖ１、入力信号Ｖ２及び入力信号Ｖ３それぞれが積演算部１１１、２１１、３１１に同時に入力された場合、電流検出部１０Ｄには、電流信号Ａが入力される。図６に示すように、電流信号Ａは、第一過渡応答Ｔ４と、定常部Ｓ４１と、第二過渡応答Ｔ４１と、定常部Ｓ４２と、第二過渡応答Ｔ４２と、定常部Ｓ４３と、第二過渡応答Ｔ４３とを含む。
【００４６】
第一過渡応答Ｔ４は、図５に示した第一過渡応答Ｔ１１と、第一過渡応答Ｔ２１と、第一過渡応答Ｔ３１とが足し合わされることにより発生している過渡応答である。定常部Ｓ４１は、図５に示した定常部Ｓ１と、定常部Ｓ２と、定常部Ｓ３とが足し合わされることにより、定常的な電流３Ｃ［ｎＡ］が流れている部分である。
【００４７】
第二過渡応答Ｔ４１は、図５に示した第二過渡応答Ｔ１２に、定常部Ｓ２及び定常部Ｓ３が足し合わされることにより発生している過渡応答である。定常部Ｓ４２は、図５に示した定常部Ｓ２と、定常部Ｓ３とが足し合わされることにより、定常的な電流２Ｃ［ｎＡ］が流れている部分である。第二過渡応答Ｔ４２は、図５に示した第二過渡応答Ｔ２２に、定常部Ｓ３が足し合わされることにより発生している過渡応答である。定常部Ｓ４３は、定常部Ｓ３と同じく、定常的な電流１Ｃ［ｎＡ］が流れている部分である。第二過渡応答Ｔ４３は、図５に示した第二過渡応答Ｔ３２である。
【００４８】
電流検出部１０Ｄは、上述した第一過渡応答又は第二過渡応答の発生が終了した時点から次の第一過渡応答又は第二過渡応答の発生が開始した時点までの係数時間ごとに積演算部１１１、２１１、３１１が出力する電流を検出する電流検出処理を実行する。ここで言う係数時間は、例えば、図６に示した定常部Ｓ４１、定常部Ｓ４２及び定常部Ｓ４３に相当する期間である。
【００４９】
例えば、図６に点Ｄ１で示すように、電流検出部１０Ｄは、最初に時刻ｔ０から一定時間、例えば、１０［ｎｓ］だけ遅れた時点における電流３Ｃ［ｎＡ］を検出する。そして、図６に点Ｄ２、点Ｄ２、点Ｄ３、点Ｄ４、点Ｄ５及び点Ｄ６で示すように、電流検出部１０Ｄは、上述した係数時間、例えば、２０［ｎｓ］周期で電流２Ｃ［ｎＡ］、１Ｃ［ｎＡ］、１［ｎＡ］、０［ｎＡ］及び０［ｎＡ］を検出する。
【００５０】
また、電流検出部１０Ｄは、電流検出処理により検出された電流が積演算部１１１、２１１、３１１、…、ｋ１１に入力信号が入力されていない場合における電流と等しい場合、電流検出処理を終了させる。例えば、電流検出部１０Ｄは、図６に点Ｄ５で示すように、五周期目で電流０［ｎＡ］を検出した場合、六周期目の点Ｄ６及び七周期目以降では電流検出処理を停止する。
【００５１】
或いは、電流検出部１０Ｄは、最初に電流検出処理が実行されてから入力信号がとり得る最長の長さに等しい時間が経過した時点で電流検出処理を終了させる。例えば、電流検出部１０Ｄは、入力信号の長さが最短の長さの１倍、２倍、３倍、…、２５４倍、２５５倍、２５６倍のいずれかをとり得る場合、２５７周期目以降で電流検出処理を停止する。
【００５２】
また、図３から図６を参照しながら説明した例では、各周期の開始時点から１０［ｎｓ］が経過した時点で電流検出処理が実行されているが、電流検出処理は、他のタイミングで実行されてもよい。図７は、実施形態に係る電流検出部が電流検出処理を実行するタイミングを説明するための図である。
【００５３】
例えば、時刻ｔ０において、積演算部１１１に入力信号Ｖ１が入力し、積演算部２１１に入力信号Ｖ２が入力し、積演算部３１１に入力信号Ｖ３が入力した場合について考える。この場合、図６を参照しながら説明したように、第一過渡応答Ｔ４が発生する。第一過渡応答Ｔ４は、図７に示すように、電流３Ｃ［ｎＡ］よりも大きな電流まで到達した後、電流３Ｃ［ｎＡ］に収束していく。
【００５４】
電流の大きさが３Ｃ−Δ［ｎＡ］から３Ｃ＋Δ［ｎＡ］の範囲に収まった状態が定常的な電流が流れる定常状態である。Δ［ｎＡ］の大きさは、例えば、電流３［ｎＡ］の１０％ｐ−ｐが望ましく、電流３［ｎＡ］の５％ｐ−ｐが更に望ましい。
【００５５】
例えば、図７に示すように、電流の大きさは、時刻ｔ１で当該範囲に収まる。時刻ｔ０から時刻ｔ１までの時間は、収束時間とも呼ばれる。収束時間は、例えば、時定数τ＝ＲＣ（Ｒ：上述した積演算部の寄生抵抗の抵抗値、Ｃ：上述した積演算部の寄生容量の静電容量）の５倍である。寄生抵抗の抵抗値Ｒ及び静電容量Ｃは、積演算部１１１、２１１、３１１、…、ｋ１１の少なくとも一つに異なるパルス長さを有する複数の矩形の電圧パルスを入力し、過渡応答特性を評価することにより算出することができる。
【００５６】
また、上述した第一過渡応答の収束時間は、寄生容量からの放電に要する時間に等しく、次の式（１）を使用して算出することもできる。
【００５７】
【数１】
0006904491.tif 000002
【００５８】
また、上述した第二過渡応答の収束時間は、寄生容量からの放電に要する時間に等しく、次の式（２）を使用して算出することもできる。
【００５９】
【数２】
0006904491.tif 000003
【００６０】
一方、第二過渡応答Ｔ４１は、時刻２０［ｎｓ］で発生し始める。したがって、上述した定常部４１は、時刻ｔ１から時刻２０［ｎｓ］までの期間で発生する。電流検出部１０Ｄは、定常部４１、すなわち時刻ｔ１から時刻２０［ｎｓ］までの期間の任意のタイミングで電流検出処理を実行する。また、時刻ｔ１から時刻２０［ｎｓ］までの期間が上述した時定数τにより算出された収束時間よりも長くなるように時刻を決定することにより、電流検出部１０Ｄは、確実に定常部４１で電流検出処理を実行することができる。
【００６１】
なお、電流検出部１０Ｄが実行した電流検出処理により得られた電流は、アナログ‐デジタル変換によりデジタルデータに変換され、記憶媒体に格納されてもよい。また、電流検出部１０Ｄは、第一過渡応答が収束し定常状態になる時間から第二過渡応答が発生する前までの時間における所定の時刻の電流を検出してもよいし、所定の期間の間に電流を検出してもよい。さらに、電流検出部１０Ｄは、所定の期間の間に電流を検出する場合、検出した電流の統計値、例えば、平均値、中央値を電流検出処理の結果としてもよい。
【００６２】
和演算部１０Ｓは、電流検出部１０Ｄが一定時間間隔ごとに検出した電流の合計である合計電流と係数時間との積を出力信号の総和に関連する値として演算する。
【００６３】
例えば、和演算部１０Ｓは、図６の点Ｄ１、点Ｄ２、点Ｄ２、点Ｄ３、点Ｄ４、点Ｄ５及び点Ｄ６それぞれが示す時刻に検出された電流３Ｃ［ｎＡ］、２Ｃ［ｎＡ］、Ｃ［ｎＡ］、Ｃ［ｎＡ］、０［ｎＡ］及び０［ｎＡ］の合計電流７［ｎＡ］を算出する。そして、和演算部１０Ｓは、合計電流７［ｎＡ］と係数時間の一例である２０［ｎｓ］との積を出力信号の総和に関連する値として演算する。或いは、和演算部１０Ｓは、電流３Ｃ［ｎＡ］、２Ｃ［ｎＡ］、Ｃ［ｎＡ］、Ｃ［ｎＡ］、０［ｎＡ］及び０［ｎＡ］それぞれに係数時間の一例である２０［ｎｓ］を掛けた後、六つの積の総和を演算することにより、出力信号の総和に関連する値を演算する。これら二つの方法で演算された出力信号の総和に関連する値は、図６に斜線で示した領域の面積に相当し、出力信号の総和と比例関係にある。
【００６４】
なお、図３から図７を参照しながら説明した内容は、積演算部１２１、２２１、３２１、電流検出部２０Ｄ及び和演算部２０Ｓについても同様である。
【００６５】
次に、図８を参照しながら、実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例について説明する。図８は、実施形態に係る積和演算器が実行するニューラルネットワーク演算の一例を説明するための図である。
【００６６】
ノード１０１、２０１、３０１、…、ｋ０１は、入力層を形成している。パーセプトロン１０、２０は、隠れ層又は出力層を形成している。ノード１０１は、図１及び図３に示した入力部１０１Ｅに対応しており、入力信号に対応する入力値をパーセプトロン１０、２０に対して出力する。同様に、ノード２０１、３０１、…、ｋ０１は、それぞれ入力部２０１Ｅ、３０１Ｅ、…、ｋ０１Ｅに対応しており、入力信号に対応する入力値をパーセプトロン１０、２０に対して出力する。
【００６７】
矢印１１１Ａは、積演算部１１１に対応しており、ノード１０１が出力した入力値に重みが乗算され、出力信号に対応する値がパーセプトロン１０に入力されることを表している。同様に、矢印１２１Ａは、積演算部１２１に対応しており、ノード１０１が出力した入力値に重みが乗算され、出力信号に対応する値がパーセプトロン２０に入力されることを表している。これらは、矢印２１１Ａ、２２１Ａ、３１１Ａ、３２１Ａ、…、ｋ１１Ａ、ｋ２１Ａについても同様である。
【００６８】
パーセプトロン１０は、図１及び図３に示した電流検出部１０Ｄ及び和演算部１０Ｓに対応しており、矢印１１１Ａ、２１１Ａ、３１１Ａ、…、ｋ１１Ａから出力された出力信号が足し合わされた信号に対して上述した電流検出処理を実行し、出力信号の総和に関連する値を演算する。そして、パーセプトロン１０は、当該値に活性化関数処理を施して出力する。
【００６９】
以上、実施形態に係る積和演算器１について説明した。積和演算器１は、一定時間間隔ごとに検出した電流に基づいて出力信号の総和に関連する値を演算するため、電荷を蓄積するコンデンサを備えている必要が無い。したがって、積和演算器１は、コンデンサが飽和してしまい、積和演算を実行することができなくなってしまうことを回避し得る。また、積和演算器１は、コンデンサを省略し得るため、回路規模を削減することにより、省スペース、省コストを実現することができる。
【００７０】
また、積和演算器１が備える積演算部１１１、１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１の少なくとも一つは、磁気抵抗効果を示す磁気抵抗効果素子を含む。磁気抵抗効果素子は、他の可変抵抗素子と比較して寄生容量が大きいため、他の可変抵抗素子よりも過渡応答によるコンデンサの飽和を引き起こし易い。したがって、上述した積演算部として磁気抵抗効果素子が含まれている場合、上述した効果が特に有用となる。
【００７１】
また、積和演算器１では、入力信号がとり得る最短の長さが係数時間であり、係数時間の整数倍の長さを有し、積演算部１１１、１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１に同時に入力される。そして、積和演算器１は、係数時間に等しい周期で電流検出処理を実行する。したがって、積和演算器１は、第一過渡応答及び第二過渡応答が確実に収束して定常状態となっている場合の電流を確実に検出し、正確な積和演算を実行することができる。
【００７２】
また、積和演算器１は、最初に電流検出処理が実行されてから入力信号がとり得る最長の長さに等しい時間が経過した時点で電流検出処理を終了させる。このため、積和演算器１は、電流検出処理実行する時間を一定にし、処理を単純にすることができる。
【００７３】
また、積和演算器１は、電流検出処理により検出された電流が複数の積演算部１１１、１２１、２１１、２２１、３１１、３２１、…、ｋ１１、ｋ２１に入力信号が入力されていない場合における電流と等しい場合、電流検出処理を終了させる。このため、積和演算器１は、早期に電流検出処理を終了させることができる。
【００７４】
なお、上述した実施形態では、入力信号Ｖ１が積演算部１１１に入力される時刻、入力信号Ｖ２が積演算部２１１に入力される時刻及び入力信号Ｖ３が積演算部３１１に入力される時刻がいずれも時刻ｔ０である場合を例に挙げたが、これに限定されない。すなわち、これら三つの入力信号が入力される時刻が互いに異なっていてもよい。この場合、係数時間は、第一過渡応答又は第二過渡応答の発生が終了した時点から次の第一過渡応答の発生が開始した時点までの期間となることもある。
【００７５】
なお、上述した積和演算器１は、論理演算デバイス又はニューロモーフィックデバイスに含まれていてもよい。ここで言う論理演算デバイスは、複数の積和演算器１を組み合わせることにより形成された論理回路、例えば、ＡＮＤ回路、ОＲ回路である。また、ここで言う論理演算は、ディープラーニングを含む概念である。また、ここで言うニューロモーフィックデバイスは、脳の構造及びニューロンと呼ばれる神経細胞が発火する仕組みを応用したデバイスであり、機械学習等に使用される。
【００７６】
また、上述した実施形態に係る積和演算器１等の各装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録させ、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより、処理を行ってもよい。
【００７７】
ここで言うコンピュータシステムとは、オペレーティング・システム（Operating  System：ＯＳ）又は周辺機器等のハードウェアを含むものであってもよい。また、コンピュータ読み取り可能な記録媒体とは、例えば、フロッピーディスク、光磁気ディスク、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital  Versatile  Disc）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、ネットワーク又は通信回線を介してプログラムが送信される場合におけるサーバ又はクライアントとなるコンピュータシステム内部の揮発性メモリのように一定時間プログラムを保持しているものも含む。
【００７８】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、又は、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体とは、インターネット等のネットワーク又は電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
【００７９】
また、上述したプログラムは、上述した機能の一部を実現するためのものであってもよく、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分プログラムであってもよい。上述したプログラムは、例えば、コンピュータが備えるＣＰＵ（Central  Processing  Unit）等のプロセッサにより読み出されて実行される。
【００８０】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。上述した各実施形態に記載の構成を組み合わせてもよい。
【符号の説明】
【００８１】
１…積和演算器、１１１，１２１，２１１，２２１，３１１，３２１，ｋ１１，ｋ２１…積演算部、１０Ｄ，２０Ｄ…電流検出部、１０Ｓ，２０Ｓ…和演算部
【図１】
0006904491.tif 000004
【図２】
0006904491.tif 000005
【図３】
0006904491.tif 000006
【図４】
0006904491.tif 000007
【図５】
0006904491.tif 000008
【図６】
0006904491.tif 000009
【図７】
0006904491.tif 000010
【図８】
0006904491.tif 000011