(57)【要約】【課題】低い消費電力で精度良く演算を実行する。【解決手段】実施形態に係る演算装置は、重み値と入力値とを乗算した乗算値を出力する。演算装置は、メモリスタと、対数変換回路と、電流電圧変換回路と、を備える。メモリスタは、電圧−電流特性を変更可能な素子であり、重み値に応じた電圧−電流特性に予め設定される。対数変換回路は、自然対数関数に予め設定された係数を乗じた対数変換関数に従って入力値に応じた入力電圧を対数変換した中間電圧を、メモリスタに印加する。電流電圧変換回路は、予め設定された線形関数に従ってメモリスタに流れる電流を電流電圧変換した出力電圧を、乗算値として出力する。【選択図】図１２
2020197761.tif 000002
【特許請求の範囲】
【請求項１】
重み値と入力値とを乗算した乗算値を出力する演算装置であって、
電圧−電流特性を変更可能な素子であり、前記重み値に応じた電圧−電流特性に予め設定されるメモリスタと、
自然対数関数に予め設定された係数を乗じた対数変換関数に従って前記入力値に応じた入力電圧を対数変換した中間電圧を、前記メモリスタに印加する対数変換回路と、
予め設定された線形関数に従って前記メモリスタに流れる電流を電流電圧変換した出力電圧を、前記乗算値として出力する電流電圧変換回路と、
を備える演算装置。
【請求項２】
複数の重み値と複数の入力値とを積和演算した積和演算値を出力する演算装置であって、
前記複数の重み値に対応して設けられた複数のメモリスタと、
前記複数の入力値に対応して設けられた複数の対数変換回路と、
電流電圧変換回路と、
を備え、
前記複数のメモリスタのそれぞれは、電圧−電流特性を変更可能な素子であり、前記複数の重み値のうちの対応する重み値に応じた電圧−電流特性に予め設定され、
前記複数の対数変換回路のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、前記複数の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を、前記複数のメモリスタのうちの対応する１つのメモリスタに印加し、
前記電流電圧変換回路は、予め設定された線形関数に従って、前記複数のメモリスタに流れる電流を加算した合計電流を電流電圧変換した出力電圧を、前記積和演算値として出力する
演算装置。
【請求項３】
ｍ行（ｍは１以上の整数）×ｎ列（ｎは１以上の整数）に行列配置されたｍ×ｎ個の重み値と、ｎ個の入力値とを行列演算することにより、ｍ個の出力値を出力する演算装置であって、
ｎ列に対応して配置されたｎ本の列ラインと、
ｍ行に対応して配置されたｍ本の行ラインと、
ｍ行×ｎ列に対応して配置されたｍ×ｎ個のメモリスタと、
ｎ列に対応して配置されたｎ個の対数変換回路と、
ｍ行に対応して配置されたｍ個の電流電圧変換回路と、
を備え、
前記ｍ×ｎ個のメモリスタのそれぞれは、
電圧−電流特性を変更可能な素子であり、前記ｍ×ｎ個の重み値のうちの対応する行列位置の重み値に応じた電圧−電流特性に予め設定され、
入力端子が、前記ｎ本の列ラインのうち対応する列の列ラインに接続され、出力端子が、前記ｍ本の行ラインのうち対応する行の行ラインに接続され、
前記ｎ個の対数変換回路のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、前記ｎ個の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を、前記ｎ本の列ラインのうちの対応する列ラインに接続されたｍ個のメモリスタに印加し、
前記ｍ個の電流電圧変換回路のそれぞれは、予め設定された線形関数に従って、前記ｍ本の行ラインのうちの対応する行ラインに接続されたｎ個のメモリスタに流れる合計電流を電流電圧変換した出力電圧を、前記ｍ個の出力値のうちの対応する出力値として出力する
演算装置。
【請求項４】
前記ｍ×ｎ個のメモリスタのそれぞれは、前記入力端子から前記出力端子へ向かう順方向へ電流を流し、逆方向に電流を流さない自己整流性を有する
請求項３に記載の演算装置。
【請求項５】
前記係数は、前記メモリスタの読出電圧範囲のうちの高電圧側の一部の領域であるフィッティング領域の電圧−電流特性に対してフィッティングされた自然指数関数に含まれる、電圧を表す変数に乗じられる素子パラメータの逆数である
請求項１から４の何れか１項に記載の演算装置。
【請求項６】
前記フィッティング領域は、前記読出電圧範囲のうちの、電圧−電流特性の変化に関わらず、フィッティングされた前記自然指数関数に含まれる前記素子パラメータが一定となる領域である
請求項５に記載の演算装置。
【請求項７】
前記メモリスタは、電荷または正孔をトンネル効果により通過させるトンネリング素子である
請求項５または６に記載の演算装置。
【請求項８】
前記メモリスタは、強誘電体を含む材料をトンネル絶縁膜として有する強誘電体トンネル接合素子である
請求項７に記載の演算装置。
【請求項９】
前記メモリスタは、閾値電圧以上の電圧が印加された場合に、電圧−電流特性を変更し、前記閾値電圧より低い電圧が印加された場合に、電圧−電流特性を変更せず、
前記読出電圧範囲は、前記閾値電圧より低い電圧の範囲である
請求項５から８の何れか１項に記載の演算装置。
【請求項１０】
前記メモリスタは、所定値に応じた電圧が印加された場合に前記重み値と前記所定値とを乗じた値に対応する電流を流す電圧−電流特性に予め設定されている
請求項５から９の何れか１項に記載の演算装置。
【請求項１１】
前記入力電圧をＶｘとし、前記中間電圧をＶｗとし、前記係数を（１／ｂ）とし、ｋを定数とした場合、前記対数変換関数は、Ｖｗ＝（１／ｂ）×ｌｎ（ｋ×Ｖｘ）により表され、
前記メモリスタを通過する電流をＩとし、前記メモリスタを横断する電圧をＶと表し、オイラー数をｅとした場合、前記自然指数関数は、Ｉ＝ａ×ｅ（ｂ×Ｖ）により表され、
前記フィッティング領域の電圧−電流特性に対して前記自然指数関数をフィッティングすることにより、前記自然指数関数における、電圧−電流特性の傾きを表すコンダクタンスパラメータであるａ、および、前記素子パラメータであるｂが抽出される
請求項５から１０の何れか１項に記載の演算装置。
【請求項１２】
演算に先だって前記重み値を受け取り、前記重み値と前記コンダクタンスパラメータとの対応関係を表す対応情報に基づき、前記重み値に対応する前記コンダクタンスパラメータを特定し、特定した前記コンダクタンスパラメータに対応した電圧−電流特性となるように前記メモリスタの状態を変更する設定部をさらに備える
請求項１１に記載の演算装置。
【請求項１３】
前記対数変換回路は、
非反転入力端子が基準電位に接続される第１演算増幅器と、
前記入力電圧が印加される入力端子と前記第１演算増幅器の反転入力端子との間に接続される入力抵抗と、
アノードが前記第１演算増幅器の反転入力端子に接続され、カソードが前記第１演算増幅器の出力端子に接続されるダイオードと、
前記第１演算増幅器から出力された電圧を線形に反転増幅した電圧を、前記メモリスタの入力端子に前記中間電圧として印加する第１反転増幅回路と、
を有する
請求項１から１２の何れか１項に記載の演算装置。
【請求項１４】
前記電流電圧変換回路は、
非反転入力端子が基準電位に接続され、反転入力端子が前記メモリスタの出力端子に接続される第２演算増幅器と、
前記第２演算増幅器の反転入力端子と、前記第２演算増幅器の出力端子との間に接続される帰還抵抗と、
前記第２演算増幅器から出力された電圧を線形に反転増幅した電圧を前記出力電圧として出力する第２反転増幅回路と、
請求項１３に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、演算装置に関する。
【背景技術】
【０００２】
メモリスタと呼ばれる可変抵抗素子が知られている。メモリスタは、入力値に相当する入力電圧が印加された場合、コンダクタンスと入力電圧とを乗算した値に比例する電流を流すことができる。従って、メモリスタは、アナログ演算装置に含まれる乗算器として機能することができる。
【０００３】
メモリスタは、コンダクタンスを低くすることができる。従って、メモリスタを乗算器として用いたアナログ演算装置は、非常に小さい入力電圧をメモリスタに印加することができる。これにより、メモリスタを乗算器として用いたアナログ演算装置は、低い消費電力で演算を実行することができる。
【０００４】
近年、ハードウェアで実現されたニューラルネットワークが提案されている。ニューラルネットワークは、多数の積和演算装置を備える。このため、ハードウェアで実現されたニューラルネットワークは、メモリスタを乗算器として用いたアナログ積和演算装置を備えることにより、低い消費電力で演算を実行することができる。
【０００５】
ところで、メモリスタは、トンネリング素子である。このため、メモリスタは、電圧−電流特性が非線形となる。すなわち、メモリスタは、乗算時において、印加された電圧によってコンダクタンスが変化する。従って、メモリスタを乗算器として用いたアナログ演算装置は、出力値の誤差が大きくなってしまっていた。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】M.Prezioso1，  F.  Merrikh-Bayat1，  B.  D.  Hoskins1，  G.  C.  Adam1，  K.K.Likharev  and  D.B.Strukov，  “Training  andoperation  of  an  integrated  neuromorphicnetwork  based  on  metal-oxide  memristors”，  Nature  volume  521，  pages  61-64，  7  May  2015
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、低い消費電力で精度良く演算を実行することができる演算装置を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態に係る演算装置は、重み値と入力値とを乗算した乗算値を出力する。前記演算装置は、メモリスタと、対数変換回路と、電流電圧変換回路と、を備える。前記メモリスタは、電圧−電流特性を変更可能な素子であり、前記重み値に応じた電圧−電流特性に予め設定される。前記対数変換回路は、自然対数関数に予め設定された係数を乗じた対数変換関数に従って前記入力値に応じた入力電圧を対数変換した中間電圧を、前記メモリスタに印加する。前記電流電圧変換回路は、予め設定された線形関数に従って前記メモリスタに流れる電流を電流電圧変換した出力電圧を、前記乗算値として出力する。
【図面の簡単な説明】
【０００９】
【図１】メモリスタを示す図。
【図２】ＦＴＪ素子に流れる電流を示す図。
【図３】（Ａ）は図２の拡大図、（Ｂ）は書込パルスおよび読出パルスを示す図。
【図４】ＷＫＢ近似曲線を示す図。
【図５】ＷＫＢ近似曲線およびフィッティング曲線を示す図。
【図６】コンダクタンスパラメータを示す図。
【図７】素子パラメータを示す図。
【図８】実測されたＦＴＪ素子の電圧−電流特性図。
【図９】図８の一部を拡大した図。
【図１０】実測されたＦＴＪ素子のコンダクタンスパラメータを示す図。
【図１１】実測されたＦＴＪ素子の電素子パラメータを示す図。
【図１２】第１実施形態に係る演算装置の構成図。
【図１３】正規化された乗算を実行する演算装置の構成図。
【図１４】対数変換回路および電流電圧変換回路の回路構成図。
【図１５】図１４に示す演算装置に対するパラメータの設定例を示す図。
【図１６】対数変換回路の入出力電圧特性のシミュレーション結果等を示す図。
【図１７】演算装置の入出力電圧特性のシミュレーション結果を示す図。
【図１８】第２実施形態に係る積和演算装置の構成図。
【図１９】第３実施形態に係る行列演算装置の構成図。
【図２０】変形例に係る対数変換回路を示す図。
【図２１】変形例に係る対数変換回路の入出力特性図。
【発明を実施するための形態】
【００１０】
以下に説明する各実施形態は、メモリスタ２０をアナログ乗算器として、低消費電力で精度の良いアナログ演算を実行する。例えば、第１実施形態は、メモリスタ２０を用いて乗算を実行する。第２実施形態は、複数のメモリスタ２０を用いて積和演算処理を実行する。第３実施形態は、複数のメモリスタ２０を用いて行列演算を実行する。各実施形態の説明に先だって、発明者が見出したメモリスタ２０の特徴を説明する。
【００１１】
（前提）
図１は、メモリスタ２０を示す図である。メモリスタ２０は、電圧−電流特性（Ｉ−Ｖカーブ）を変更可能であり、電圧−電流特性を保持（記憶）することが可能な可変抵抗素子である。
【００１２】
メモリスタ２０は、電荷または正孔をトンネル効果により通過させるトンネリング素子である。本実施形態において、メモリスタ２０は、強誘電体を含む材料をトンネル絶縁膜として有する強誘電体トンネル接合素子（ＦＴＪ素子）である。強誘電体は、例えば、二酸化ハフニウムである。なお、メモリスタ２０は、ＦＴＪ素子に限らず、他の材料により構成されたトンネリング素子であってもよい。
【００１３】
メモリスタ２０は、所定電圧を印加した場合のコンダクタンス（抵抗値）を不揮発記憶することができる。メモリスタ２０は、自己整流性を有する。すなわち、メモリスタ２０は、入力端子から出力端子へ向かう順方向に電圧が印加された場合に順方向へ電流を流し、逆方向に電圧が印加された場合、逆方向に電流を流さない。
【００１４】
図２は、コンダクタンスを変化させるための書込期間（ＷＲＩＴＥ０〜ＷＲＩＴＥ７）、および、電圧−電流特性の測定のための読出期間（Ｉ−Ｖ０〜Ｉ−Ｖ７）を交互に繰り返した場合における、メモリスタ２０に流れる電流を示す図である。図３の（Ａ）は、図２の７回目の書込期間および読出期間を拡大した図である。図３の（Ｂ）は、図２の７回目の書込期間および７回目の読出期間の書込パルスの電圧および読出パルスの電圧を示す図である。
【００１５】
１回目から７回目までの書込期間（ＷＲＩＴＥ０〜ＷＲＩＴＥ７）のそれぞれは、ＦＴＪ素子に対して、書込パルスと読出パルスを交互に所定回印加した場合における、読出パルスの印加時にＦＴＪ素子に流れた電流を示す。ＦＴＪ素子は、メモリスタ２０の一例である。この例において、閾値電圧は、３．２５ボルトである。この例において、書込パルスは、閾値電圧より高い５ボルト、２マイクロ秒の時間幅のパルスである。書込期間において印加した読出パルスは、閾値電圧より低い３ボルト、５０ミリ秒の時間幅のパルスである。
【００１６】
１回目から７回目までの読出期間（Ｉ−Ｖ０〜Ｉ−Ｖ７）のそれぞれは、ＦＴＪ素子に対して、０ボルトから線形に増加する複数の読出パルスを印加した場合における、ＦＴＪ素子に流れた電流を示す。読出期間において印加した複数の読出パルスのそれぞれは、５０ミリ秒の時間幅のパルスである。また、読出期間において印加した複数の読出パルスの全ては、閾値電圧より低い。
【００１７】
１回目から７回目までの読出期間（Ｉ−Ｖ０〜Ｉ−Ｖ７）に示されるように、閾値電圧より低い読出電圧範囲の電圧が印加された場合における、メモリスタ２０の電圧−電流特性は、非線形である。
【００１８】
１回目から７回目までの書込期間（ＷＲＩＴＥ０〜ＷＲＩＴＥ７）のそれぞれに示されるように、閾値電圧以上の電圧が印加された場合、メモリスタ２０は、電圧−電流特性が変化する。具体的には、メモリスタ２０は、印加された時間幅（電荷量）に応じて、コンダクタンスが高くなる方向に、電圧−電流特性が変化する。また、閾値電圧より低い電圧が印加された場合、メモリスタ２０は、電圧−電流特性が変化しない。
【００１９】
図４は、メモリスタ２０の電圧読出範囲における電圧−電流特性を近似したＷＫＢ近似曲線を示す図である。図４は、縦軸が電流を表し、横軸が電圧を表す。図４は、縦軸が対数目盛である。
【００２０】
メモリスタ２０は、トンネリング素子である。従って、読出電圧範囲の電圧（閾値電圧より低い電圧）が印加された場合における、メモリスタ２０の電圧−電流特性は、Wentzel−Kramers−Brillouin近似（ＷＫＢ近似）に基づき、式（１）のように表される。
Ｉ＝Ａ（Ｖ＋ＢＶ３）…（１）
【００２１】
Ｉは、メモリスタ２０に流れる電流である。Ｖは、メモリスタ２０を横断する電圧である。
【００２２】
Ａは、メモリスタ２０におけるトンネル絶縁層に依存する定数である。従って、Ａは、トンネル絶縁層に通過する電荷量に応じて変化する。
【００２３】
Ｂは、メモリスタ２０のデバイス素材に依存する定数である。従って、Ｂは、トンネル絶縁層に通過する電荷量に関わらず一定である。
【００２４】
なお、図４の（ａ）は、Ａ＝１ｅ−５，Ｂ＝１０００のＷＫＢ近似曲線を示す。（ｂ）は、Ａ＝５．６２ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線を示す。（ｃ）は、Ａ＝３．１６ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線を示す。（ｄ）は、Ａ＝１．７７ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線を示す。（ｅ）は、Ａ＝１ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線を示す。
【００２５】
図５は、ＷＫＢ近似曲線、および、ＷＫＢ近似曲線のフィッティング領域に対してフィッティングさせた自然指数関数を表すフィッティング曲線を示す図である。なお、図５は、縦軸が電流を表し、横軸が電圧を表す。さらに、図５は、縦軸が対数目盛である。
【００２６】
発明者は、メモリスタ２０における読出電圧範囲のうちの高電圧側の部分領域の電圧−電流特性を、式（２）に示す自然指数関数により、非常に少ない誤差でフィッティングできることを見出した。
Ｉ＝ａｅｂＶ…（２）
【００２７】
なお、ａおよびｂは、フィッティングにより抽出される定数である。ａをコンダクタンスパラメータと呼ぶ。ｂを素子パラメータと呼ぶ。ｅは、オイラー数（ネイピア数）である。
【００２８】
一般的に、フィッティングとは、曲線を表す関数を見つけ出す処理である。本実施形態において、フィッティングは、メモリスタ２０の読出電圧範囲における部分領域の電圧−電流特性に対して、最も誤差が小さくなるようなコンダクタンスパラメータａおよび素子パラメータｂを含む自然指数関数を見つけ出す処理である。
【００２９】
さらに、発明者は、ＷＫＢ近似曲線において、トンネル絶縁層に依存する定数（Ａ）が変化しても、フィッティングされた自然指数関数に含まれる素子パラメータｂが一定となる（ばらつきが所定値以下となる）部分領域が存在することを見出した。つまり、発明者は、メモリスタ２０における読出電圧範囲の高電圧側に、メモリスタ２０の状態の変化（電圧−電流特性の変化）に関わらず、フィッティングされた自然指数関数に含まれる素子パラメータｂが一定となる部分領域が存在することを見出した。
【００３０】
例えば、図５の（ａ）は、Ａ＝１ｅ−５，Ｂ＝１０００のＷＫＢ近似曲線の２ボルト以上３ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。（ａ）は、ａ＝８．３４ｅ−３，ｂ＝１．１６５の自然指数関数を表す。
【００３１】
図５の（ｂ）は、Ａ＝５．６２ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線の２ボルト以上３ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。（ｂ）は、ａ＝４．６９ｅ−３，ｂ＝１．１６５の自然指数関数を表す。
【００３２】
図５の（ｃ）は、Ａ＝３．１６ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線の２ボルト以上３ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。（ｃ）はａ＝２．６４ｅ−３，ｂ＝１．１６５の自然指数関数を表す。
【００３３】
図５の（ｄ）は、Ａ＝１．７７ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線の２ボルト以上３ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。（ｄ）は、ａ＝１．４８ｅ−３，ｂ＝１．１６５の自然指数関数を表す。
【００３４】
図５の（ｅ）は、Ａ＝１ｅ−６，Ｂ＝１０００のＷＫＢ近似曲線の２ボルト以上３ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。（ｅ）は、ａ＝８．３４ｅ−４，ｂ＝１．１６５の自然指数関数を表す。
【００３５】
このように、例えば、図５に示した５本のＷＫＢ近似曲線の場合、２ボルト以上３ボルト以下の範囲が、電圧−電流特性の変化（メモリスタ２０の状態の変化）に関わらず、フィッティングした自然指数関数に含まれる素子パラメータｂが全て同一となる部分領域である。
【００３６】
このような、メモリスタ２０における読出電圧範囲のうちの高電圧側の一部の領域を、フィッティング領域と呼ぶ。すなわち、フィッティング領域は、メモリスタ２０における読出電圧範囲における電圧−電流特性のうちの、電圧−電流特性の変化（メモリスタ２０の状態の変化）に関わらず、フィッティングされた自然指数関数に含まれる素子パラメータｂが一定となる部分領域である。なお、ＶＲＥＡＤは、フィッティング領域に含まれる任意の電圧である。図５の例において、ＶＲＥＡＤは、３ボルトである。
【００３７】
図６は、図５のＷＫＢ近似曲線に基づき算出された、メモリスタ２０に印加する電圧をＶＲＥＡＤで固定した場合における、電流に対するコンダクタンスパラメータａを示す図である。図６に示すように、メモリスタ２０に対して印加する電圧を固定した場合において、コンダクタンスパラメータａは、電流に対して線形に変化する。コンダクタンスパラメータａは、式（３）に示す関数に従って変化する。
ａ＝ＩＲＥＡＤ×ｓ＋ｃ…（３）
【００３８】
ＩＲＥＡＤは、フィッティング領域内の任意の電圧（ＶＲＥＡＤ）を印加した場合におけるメモリスタ２０に流れる電流である。ＩＲＥＡＤは、ＷＫＢ近似曲線のＡに比例する。すなわち、ＩＲＥＡＤは、メモリスタ２０の状態（すなわち、メモリスタ２０に設定される電圧−電流特性）に応じて変化する。ＩＲＥＡＤ＿１は、フィッティング領域の最大の電流である。
【００３９】
ｓおよびｃは、定数である。図５に示した５本のＷＫＢ近似曲線の場合、ｓは、０．０３１となり、ｃは、２．１ｅ−１１となる。
【００４０】
以上から、重み値に応じたコンダクタンスパラメータａとなるようにメモリスタ２０の状態（メモリスタ２０の電圧−電流特性）を設定することにより、メモリスタ２０は、入力値に応じた電圧が印加された場合において、重み値と入力値とを乗じた値に応じた電流を流すことができる。
【００４１】
図７は、図５のＷＫＢ近似曲線に基づき算出された、メモリスタ２０に印加する電圧をＶＲＥＡＤで固定した場合における、電流に対する素子パラメータｂを示す図である。図７に示すように、メモリスタ２０に対して印加する電圧を固定した場合、素子パラメータｂは、電流に対してほぼ一定である。すなわち、素子パラメータｂは、メモリスタ２０の状態（すなわち、メモリスタ２０に設定される電圧−電流特性）に関わらず一定である。例えば、図５に示した５本のＷＫＢ近似曲線の場合、ｂの標準偏差σは、２ｅ−１０である。すなわち、ｂは、非常に小さなバラつきであり、ほぼ一定である。
【００４２】
以上から、フィッティングされた自然指数関数の逆関数により入力電圧を補正した電圧をメモリスタ２０に印加することにより、メモリスタ２０は、入力電圧に対してほぼ線形の関係を有する電流を流すことができる。
【００４３】
図８は、ＦＴＪ素子において実測された電圧−電流特性を示す図である。図９は、図８の一部を拡大した図である。メモリスタ２０の一例であるＦＴＪ素子の電圧−電流特性を測定したところ、図８および図９に示すような測定結果が得られた。
【００４４】
図１０は、実測されたＦＴＪ素子の電圧−電流特性に基づき算出された、ＦＴＪ素子に印加する電圧を２．５ボルトで固定した場合における、ＦＴＪ素子に流れる電流に対するコンダクタンスパラメータａを示す図である。図１０に示すように、ＦＴＪ素子を測定することにより得られたコンダクタンスパラメータａは、ＦＴＪ素子に印加する電圧をＶＲＥＡＤ（２．５ボルト）で固定した場合、電流に対してほぼ直線的に変化した。従って、重み値に応じたコンダクタンスパラメータａとなるようにＦＴＪ素子の状態（ＦＴＪ素子の電圧−電流特性）を設定することにより、ＦＴＪ素子は、入力値に応じた電圧が印加された場合において、重み値と入力値とを乗じた値に応じた電流を流すことができる。
【００４５】
図１１は、実測されたＦＴＪ素子の電圧−電流特性に基づき算出された、ＦＴＪ素子に印加する電圧を２．５ボルトで固定した場合における、ＦＴＪ素子に流れる電流に対する素子パラメータｂを示す図である。図１１に示すように、ＦＴＪ素子を測定することにより得られた素子パラメータｂは、ＦＴＪ素子に印加する電圧をＶＲＥＡＤ（２．５ボルト）で固定した場合、電流に対してほぼ一定であった。以上から、フィッティングされた自然指数関数の逆関数により入力電圧を補正した電圧をＦＴＪ素子に印加することにより、ＦＴＪ素子は、入力電圧に対してほぼ線形の関係を有する電流を流すことができる。
【００４６】
（第１実施形態）
つぎに、第１実施形態について説明する。
【００４７】
図１２は、第１実施形態に係る演算装置１０の構成を示す図である。第１実施形態に係る演算装置１０は、重み値と入力値とを乗算した乗算値を出力する。重み値、入力値および乗算値は、０以上のアナログ値（連続値）である。また、重み値および入力値の何れか一方または両方は、２値であってもよい。
【００４８】
演算装置１０は、メモリスタ２０と、設定部２２と、対数変換回路２４と、電流電圧変換回路２６とを備える。
【００４９】
メモリスタ２０は、設計時、製造時またはキャリブレーション時等において、読出電圧範囲における電圧−電流特性が測定される。また、メモリスタ２０は、電圧−電流特性を変化させた複数の状態のそれぞれにおいて、電圧−電流特性が測定される。
【００５０】
そして、メモリスタ２０は、フィッティング領域における電圧−電流特性に対して自然指数関数がフィッティングされ、コンダクタンスパラメータａおよび素子パラメータｂが抽出される。さらに、メモリスタ２０は、電圧−電流特性を変化させた複数の状態のそれぞれにおけるコンダクタンスパラメータａに基づき、式（３）で示したコンダクタンスパラメータａを表す関数が算出される。
【００５１】
設定部２２は、演算に先だって、重み値に応じた電圧−電流特性をメモリスタ２０に設定する。より詳しくは、設定部２２は、外部の装置から、重み値を受け取り、受け取った重み値に応じたコンダクタンスパラメータａを算出する。設定部２２は、重み値とコンダクタンスパラメータａとの対応関係を表す対応情報に基づき、コンダクタンスパラメータａを算出する。対応情報は、例えば、フィッティングにより抽出されたコンダクタンスパラメータａを表す関数に基づき生成される。対応情報は、例えば、重み値とコンダクタンスパラメータａとの関係を表す演算式であってもよいし、テーブルであってもよい。
【００５２】
そして、設定部２２は、メモリスタ２０を、算出したコンダクタンスパラメータａに応じた電圧−電流特性に変更する。例えば、設定部２２は、メモリスタ２０に所定のリセット電圧を印加した後、コンダクタンスパラメータａに対応する数の書込パルスをメモリスタ２０に印加する。これにより、設定部２２は、重み値に応じた電圧−電流特性にメモリスタ２０を設定することができる。
【００５３】
対数変換回路２４は、入力値に応じた入力電圧を受け取る。なお、入力値と入力電圧との対応関係は予め定められている。そして、対数変換回路２４は、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、入力値に応じた入力電圧を対数変換した中間電圧を発生する。
【００５４】
対数変換回路２４は、設計時、製造時またはキャリブレーション時等において、対数変換関数が設定される。対数変換回路２４は、例えば、抵抗素子、ダイオード素子、演算増幅器および反転増幅器等を含むアナログ回路により実現される。
【００５５】
対数変換関数における、自然対数関数に乗じられる係数は、メモリスタ２０の読出電圧範囲のうちの高電圧側の一部の領域であるフィッティング領域の電圧−電流特性に対してフィッティングされた自然指数関数に含まれる、電圧を表す変数に乗じられる素子パラメータｂに基づく値である。より具体的には、係数は、素子パラメータｂの逆数である。
【００５６】
従って、対数変換関数は、式（１１）のように表される。
【数１】
2020197761.tif 000003
【００５７】
なお、式（１１）において、ｌｎ関数のカッコの中のドットは、変数を表す。式（１１）において、ｌｎ関数の中の変数は、入力値に応じた値であればよい。入力電圧Ｖｘは、入力値に応じた電圧である。例えば、入力電圧Ｖｘは、入力値に対して一次関数で変換される電圧である。従って、入力電圧をＶｘとし、中間電圧をＶｗとし、係数を（１／ｂ）とし、ｋを定数とし、ｃを定数とした場合、対数変換関数は、式（１２）により表される。
【数２】
2020197761.tif 000004
【００５８】
本実施形態において、対数変換回路２４は、ｃを０とした式（１３）に示す対数変換関数に従って、入力値に応じた入力電圧を対数変換した中間電圧を発生する。
【数３】
2020197761.tif 000005
【００５９】
そして、対数変換回路２４は、発生した中間電圧をメモリスタ２０に印加する。メモリスタ２０は、中間電圧が印加された場合、印加された中間電圧とコンダクタンスパラメータａに応じて設定された電圧−電流特性とにより特定される電流を流す。なお、中間電圧は、メモリスタ２０の閾値電圧よりも低い。従って、メモリスタ２０は、対数変換回路２４から発生された中間電圧が印加された場合、電圧−電流特性を変更しない。
【００６０】
電流電圧変換回路２６は、中間電圧が印加されたことに応じてメモリスタ２０に流れる電流を受け取る。電流電圧変換回路２６は、予め設定された線形関数に従って、メモリスタ２０に流れる電流を電流電圧変換した出力電圧を発生する。電流電圧変換回路２６は、設計時、製造時またはキャリブレーション時等において、線形関数が設定される。電流電圧変換回路２６は、例えば、抵抗素子、演算増幅器および反転増幅器等を含むアナログ回路により実現される。
【００６１】
出力電圧をＶｙとし、Ｒｙを予め設定された定数とした場合、線形関数（ｇ（Ｉｗ））は、式（１４）により表される。
Ｖｙ＝ｇ（Ｉｗ）＝ＲｙＩｗ…（１４）
【００６２】
電流電圧変換回路２６は、発生した出力電圧を、重み値と入力値とを乗算した乗算値として出力する。なお、乗算値と出力電圧との対応関係は、予め定められている。
【００６３】
ここで、メモリスタ２０の電圧−電流特性を表す関数をＧ（Ｖｗ）と表す。本実施形態において、メモリスタ２０の電圧−電流特性は、予め設定されたコンダクタンスパラメータａおよび素子パラメータｂを含む自然指数関数（Ｉ＝ａｅｂＶ）に近似される。従って、メモリスタ２０に流れる電流（Ｉｗ）は、式（１５）により表される。
【数４】
2020197761.tif 000006
【００６４】
式（１３）および式（１５）をまとめると、メモリスタ２０に流れる電流（Ｉｗ）は、式（１６）により表される。
【数５】
2020197761.tif 000007
【００６５】
そして、式（１４）に式（１６）を代入すると、出力電圧（Ｖｙ）は、式（１７）により表される。
Ｖｙ＝ＲｙａｋＶｘ…（１７）
【００６６】
以上のように、第１実施形態に係る演算装置１０は、コンダクタンスパラメータａと入力電圧（Ｖｘ）とＲｙとｋとを乗算した出力電圧（Ｖｙ）を出力することができる。コンダクタンスパラメータａは、重み値に応じて設定される値である。入力電圧（Ｖｘ）と入力値との対応関係は、予め定められている。Ｒｙおよびｋは、予め設定された定数である。また、出力電圧（Ｖｙ）と出力値との対応関係は、予め定められている。従って、第１実施形態に係る演算装置１０は、重み値と入力値とを乗算した乗算値を出力することができる。
【００６７】
図１３は、正規化された乗算を実行する演算装置１０の構成を示す図である。重み値が０以上１以下であり、入力電圧が０ボルト以上１ボルト以下であり、出力電圧が０ボルト以上１ボルト以下とする場合の、演算装置１０の設定例について説明する。
【００６８】
なお、入力電圧および出力電圧は、０ボルトまたは１ボルトの２値であってもよい。重み値は、０または１の２値であってもよい。また、重み値は、−１または＋１、もしくは、Ｌ論理またはＨ論理等であってもよい。重み値が２値であって、０または１でない場合、設定部２２は、一方の値を０、他方の値を１に置き換える。
【００６９】
設定部２２は、重み値を受け取った場合、式（２１）に従い、コンダクタンスパラメータａを算出する。
ａ＝ｗ×ｓ×ＩＲＥＡＤ＿１…（２１）
【００７０】
ｗは、重み値である。ｓは、式（３）で示した定数である。すなわち、ｓは、メモリスタ２０のフィッティング領域の電圧−電流特性に自然指数関数をフィッティングさせることにより抽出される。ＩＲＥＡＤ＿１は、メモリスタ２０に流す最大の電流であり、正規化した場合においては出力電圧（Ｖｙ）として１ボルトを出力する場合に流れる電流である。
【００７１】
対数変換回路２４は、１ボルトの入力電圧（Ｖｘ＿１）を受けた場合に式（２２）のようなＶｍａｘ＿１を出力するように、内部のパラメータが設定される。
【数６】
2020197761.tif 000008
【００７２】
Ｖｍａｘ＿１は、メモリスタ２０に印加される最大の中間電圧である。Ｖｍａｘ＿１は、読出電圧範囲に含まれる。Ｖｘ＿１は、１ボルトの入力電圧を表す。このようなＶｍａｘ＿１が設定された場合、ｋは、式（２３）により表される。
【数７】
2020197761.tif 000009
【００７３】
式（１６）、式（１７）および式（２３）に基づき、ＩｗおよびＶｙは、式（２４）および式（２５）のように表される。
【数８】
2020197761.tif 000010
【００７４】
Ｒｙは、設計時、製造時またはキャリブレーション時等において、式（２６）のように設定される。
【数９】
2020197761.tif 000011
【００７５】
このように設定された演算装置１０は、式（２７）の演算を実行することができる。
Ｖｙ＝ｗＶｘ…（２７）
【００７６】
図１４は、対数変換回路２４および電流電圧変換回路２６の回路構成の一例を示す図である。例えば、対数変換回路２４は、第１演算増幅器３２と、入力抵抗３４と、ダイオード３６と、第１反転増幅回路３８とを有する。対数変換回路２４は、電圧入力端子４０に入力電圧（Ｖｘ）が印加される。
【００７７】
第１演算増幅器３２は、非反転入力端子が基準電位（例えばグランド）に接続される。入力抵抗３４は、電圧入力端子４０と、第１演算増幅器３２の反転入力端子との間に接続される。
【００７８】
ダイオード３６は、アノードが第１演算増幅器３２の反転入力端子に接続され、カソードが第１演算増幅器３２の出力端子に接続される。第１反転増幅回路３８は、第１演算増幅器３２から出力された電圧を線形に反転増幅する。第１反転増幅回路３８は、第１演算増幅器３２から出力された電圧を線形に反転増幅した電圧を、メモリスタ２０の入力端子に中間電圧（Ｖｗ）として印加する。
【００７９】
電流電圧変換回路２６は、第２演算増幅器４２と、帰還抵抗４４と、第２反転増幅回路４６とを有する。第２演算増幅器４２は、非反転入力端子が基準電位（例えばグランド）に接続される。第２演算増幅器４２は、反転入力端子に、メモリスタ２０の出力端子が接続される。帰還抵抗４４は、第２演算増幅器４２の反転入力端子と、第２演算増幅器４２の出力端子との間に接続される。
【００８０】
第２反転増幅回路４６は、第２演算増幅器４２から出力された電圧を線形に反転増幅する。第２反転増幅回路４６は、第２演算増幅器４２から出力された電圧を線形に反転増幅した電圧を、電圧出力端子５０から出力電圧（Ｖｙ）として出力する。
【００８１】
ここで、式（３１）に示すダイオード方程式が知られている。
【数１０】
2020197761.tif 000012
【００８２】
式（３１）において、Ｖｄは、ダイオード３６の電圧である。ｎは、理想ファクターであり、ダイオード３６の種類等により定まる定数である。Ｉｄは、ダイオード３６に流れる電流である。ＶＴは、熱電圧である。Ｉｓは、飽和電流である。
【００８３】
入力抵抗３４の抵抗値をＲｘとした場合、ダイオード３６に流れる電流（Ｉｄ）は、式（３２）のように表される。
Ｉｄ＝Ｖｘ／Ｒｘ…（３２）
【００８４】
第１反転増幅回路３８の増幅率を（−Ｈ）とした場合、中間電圧（Ｖｗ）は、式（３３）のように表される。
Ｖｗ＝−ＨＶｄ…（３３）
【００８５】
式（２）から、メモリスタ２０に流れる電流（Ｉｗ）は、式（３４）のように表される。
【数１１】
2020197761.tif 000013
【００８６】
第２反転増幅回路４６の増幅率を−１とした場合、出力電圧（Ｖｙ）は、式（３５）のように表される。
Ｖｙ＝ＲｙＩｗ…（３５）
【００８７】
式（３１）、式（３２）および式（３４）に基づき、ダイオード３６に流れる電流（Ｉｗ）は、式（３６）のように表される。
【数１２】
2020197761.tif 000014
【００８８】
式（３５）および式（３６）に基づき、出力電圧（Ｖｙ）は、式（３７）のように表される。
【数１３】
2020197761.tif 000015
【００８９】
ｂは、素子パラメータである。そこで、第１反転増幅回路３８に対して、Ｈを式（３８）のように設定する。
【数１４】
2020197761.tif 000016
【００９０】
第１反転増幅回路３８に対して式（３８）のＨが設定された場合、出力電圧（Ｖｙ）は、式（３９）のように表される。
【数１５】
2020197761.tif 000017
【００９１】
第１反転増幅回路３８に対して式（３８）のＨが設定された場合、ダイオード３６に流れる電流（Ｉｗ）は、式（４０）のように表される。
【数１６】
2020197761.tif 000018
【００９２】
つぎに、重み値が０以上１以下であり、入力電圧が０ボルト以上１ボルト以下であり、出力電圧が０ボルト以上１ボルト以下である場合の、図１４に示す演算装置１０の設定例について説明する。
【００９３】
設定部２２は、重み値を受け取った場合、式（４１）に従い、コンダクタンスパラメータａを算出する。ｗ、ｓおよびＩＲＥＡＤ＿１は、式（２１）で説明した内容と同一である。
ａ＝ｓ×ｗ×ＩＲＥＡＤ＿１…（４１）
【００９４】
対数変換回路２４は、１ボルトの入力電圧（Ｖｘ＿１）を受けた場合、式（４２）に示すＶｍａｘ＿１を出力するように、内部のパラメータが設定される。
【数１７】
2020197761.tif 000019
【００９５】
Ｖｍａｘ＿１は、読出電圧範囲に含まれ、メモリスタ２０に印加される最大の中間電圧である。従って、入力抵抗３４の抵抗値（Ｒｘ）は、式（４３）のように設定される。
【数１８】
2020197761.tif 000020
【００９６】
なお、Ｈが式（３８）のように設定されているので、入力抵抗３４の抵抗値（Ｒｘ）は、式（４４）のように表される。
【数１９】
2020197761.tif 000021
【００９７】
出力電圧（Ｖｙ）は、式（３９）および式（４１）に基づき、式（４５）のように表される。
【数２０】
2020197761.tif 000022
【００９８】
そして、帰還抵抗４４の抵抗値（Ｒｙ）は、式（４６）のように設定される。
【数２１】
2020197761.tif 000023
【００９９】
このように入力抵抗３４の抵抗値（Ｒｘ）および帰還抵抗４４の抵抗値（Ｒｙ）が設定された演算装置１０は、式（４７）の乗算を実行することができる。
Ｖｙ＝ｗＶｘ…（４７）
【０１００】
図１５は、図１４に示す演算装置１０に対するパラメータの設定例を示す図である。図１６は、図１５に示すパラメータが設定された図１４に示す対数変換回路２４の入出力電圧特性を、回路シミュレータでシミュレーションした結果と、演算式により算出した結果とを示す図である。図１７は、図１５に示すパラメータが設定された図１４に示す演算装置１０の入出力電圧特性を、回路シミュレータでシミュレーションした結果を示す図である。
【０１０１】
発明者は、回路シミュレータであるＳＰＩＣＥ（Simulation  Program  with  Integrated  Circuit  Emphasis）を用いて図１４に示す構成の演算装置１０の特性をシミュレーションした。図１４に示す構成の演算装置１０のデバイス等のパラメータは、図１５に示すとおりである。
【０１０２】
図１６に示すように、対数変換回路２４の入出力電圧特性（入力電圧（Ｖｘ）に対する中間電圧（Ｖｗ）の特性）のシミュレーション結果は、演算により算出した結果とほぼ一致した。図１７に示すように、演算装置１０の入出力特性（入力電圧（Ｖｘ）に対する出力電圧（Ｖｙ）の特性）のシミュレーション結果は、ほぼ直線的な特性となった。また、重み値（ｗ）を変更した場合も、演算装置１０のシミュレーション結果は、ほぼ直線的な特性となった。
【０１０３】
以上のように、本実施形態に係る演算装置１０によれば、精度良く乗算を実行することができる。さらに、本実施形態に係る演算装置１０によれば、メモリスタ２０を用いるので、低い消費電力で乗算を実行することができる。
【０１０４】
（第２実施形態）
つぎに、第２実施形態について説明する。第２実施形態に係る積和演算装置６０は、第１実施形態に係る演算装置１０と同一の構成要素を含む。積和演算装置６０の説明については、第１実施形態の演算装置１０と同一の構成要素については、同一の符号を付けて、共通点については詳細な説明を省略する。
【０１０５】
図１８は、第２実施形態に係る積和演算装置６０の構成を示す図である。積和演算装置６０は、複数の重み値と複数の入力値とを積和演算した積和演算値を出力する。例えば、積和演算装置６０は、ｎ個（ｎは２以上の整数）の重み値と、ｎ個の入力値とを積和演算した積和演算値を出力する。
【０１０６】
積和演算装置６０は、複数のメモリスタ２０と、設定部２２と、複数の対数変換回路２４と、電流電圧変換回路２６とを備える。
【０１０７】
複数のメモリスタ２０は、同一の特性を有する。設計時、製造時またはキャリブレーション時等において、複数のメモリスタ２０は、式（３）で示したコンダクタンスパラメータａを表す関数、および、素子パラメータｂが抽出される。
【０１０８】
複数のメモリスタ２０は、複数の重み値に対応して設けられる。例えば、積和演算装置６０は、ｎ個の重み値に対して一対一で対応して設けられたｎ個のメモリスタ２０を備える。複数のメモリスタ２０のそれぞれは、複数の重み値のうちの対応する重み値に応じた電圧−電流特性に予め設定される。
【０１０９】
設定部２２は、演算に先だって、複数のメモリスタ２０のそれぞれに対して、対応する重み値に応じた電圧−電流特性を設定する。
【０１１０】
複数の対数変換回路２４は、複数の入力値に対応して設けられる。例えば、積和演算装置６０は、ｎ個の入力値に対して一対一で対応して設けられたｎ個の対数変換回路２４を備える。
【０１１１】
複数の対数変換回路２４のそれぞれは、対応する入力値に応じた入力電圧を受け取る。複数の対数変換回路２４のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、複数の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を発生する。複数の対数変換回路２４のそれぞれは、発生した中間電圧を、複数のメモリスタ２０のちの対応する１つのメモリスタ２０に印加する。複数のメモリスタ２０のそれぞれは、中間電圧が印加された場合、印加された中間電圧とコンダクタンスパラメータａに応じて設定された電圧−電流特性とにより特定される電流を流す。
【０１１２】
電流電圧変換回路２６は、複数のメモリスタ２０の全てから、中間電圧が印加されたことに応じて流れる電流を受け取る。電流電圧変換回路２６は、予め設定された線形関数に従って、複数のメモリスタ２０に流れる電流を加算した合計電流を電流電圧変換した出力電圧を発生する。電流電圧変換回路２６は、発生した出力電圧を、複数の重み値と複数の入力値とを積和演算した積和演算値として出力する。なお、積和演算値と出力電圧との対応関係は、予め定められている。
【０１１３】
以上のような積和演算装置６０は、ｎ個の重み値とｎ個の入力値とを積和演算する場合、式（６１）のような演算を実行することができる。
Ｖｙ＝Ｒｙ×ｋ×（ａ１×Ｖｘ１＋ａ２×Ｖｘ２＋…＋ａｎ×Ｖｘｎ）…（６１）
【０１１４】
Ｖｘ１は、１番目の入力値に応じた入力電圧を表す。Ｖｘ２は、２番目の入力値に応じた入力電圧を表す。Ｖｘｎは、ｎ番目の入力値に応じた入力電圧を表す。
【０１１５】
ａ１は、１番目の重み値（ｗ１）に応じたコンダクタンスパラメータを表す。ａ２は、２番目の重み値（ｗ２）に応じたコンダクタンスパラメータを表す。ａｎは、ｎ番目の重み値（ｗｎ）に応じたコンダクタンスパラメータを表す。
【０１１６】
また、積和演算装置６０は、０以上１以下の重み値を受け取り、０ボルト以上１ボルト以下の入力電圧を受け取り、０ボルト以上１ボルト以下の出力電圧を出力してもよい。この場合、設計時、製造時またはキャリブレーション時等において、ｋおよびＲｙが第１実施形態と同様に設定される。また、設定部２２は、ｎ個の重み値を受け取った場合、第１実施形態と同様にｎ個のコンダクタンスパラメータａを算出する。
【０１１７】
このように設定された場合、積和演算装置６０は、式（６２）のような演算を実行することができる。
Ｖｙ＝ｗ１×Ｖｘ１＋ｗ２×Ｖｘ２＋…＋ｗｎ×Ｖｘｎ…（６２）
【０１１８】
以上のように、第２実施形態に係る積和演算装置６０は、複数の重み値と複数の入力値とを積和演算した出力電圧に比例する積和演算値を出力することができる。本実施形態に係る積和演算装置６０によれば、精度良く積和演算を実行することができる。さらに、本実施形態に係る積和演算装置６０によれば、複数のメモリスタ２０を用いるので、低い消費電力で積和演算を実行することができる。
【０１１９】
（第３実施形態）
つぎに、第３実施形態について説明する。第３実施形態に係る行列演算装置７０は、第１実施形態に係る演算装置１０および第２実施形態に係る積和演算装置６０と同一の構成要素を含む。行列演算装置７０の説明については、第１実施形態の演算装置１０および第２実施形態に係る積和演算装置６０と同一の構成要素については、同一の符号を付けて、共通点については詳細な説明を省略する。
【０１２０】
図１９は、第３実施形態に係る行列演算装置７０の構成を示す図である。行列演算装置７０は、ｍ行（ｍは１以上の整数）×ｎ列（ｎは１以上の整数）に行列配置されたｍ×ｎ個の重み値と、ｎ個の入力値とを行列演算することにより、ｍ個の出力値を出力する。
【０１２１】
行列演算装置７０は、ｎ本の列ライン７２と、ｍ本の行ライン７４と、ｍ×ｎ個のメモリスタ２０と、設定部２２と、ｎ個の対数変換回路２４と、ｍ個の電流電圧変換回路２６とを備える。
【０１２２】
ｎ本の列ライン７２は、ｎ列に一対一に対応して配置される。ｍ本の行ライン７４は、ｍ行に一対一に対応して配置される。
【０１２３】
ｍ×ｎ個のメモリスタ２０は、同一の特性を有する。設計時、製造時またはキャリブレーション時等において、ｍ×ｎ個のメモリスタ２０は、式（３）で示したコンダクタンスパラメータａを表す関数、および、素子パラメータｂが抽出される。
【０１２４】
ｍ×ｎ個のメモリスタ２０は、ｍ行×ｎ列に対応して配置される。すなわち、ｍ×ｎ個のメモリスタ２０は、ｍ×ｎ個の重み値に一対一に対応して設けられる。ｍ×ｎ個のメモリスタ２０のそれぞれは、ｍ×ｎ個の重み値のうちの対応する行列位置の重み値に応じた電圧−電流特性に予め設定される。
【０１２５】
ｍ×ｎ個のメモリスタ２０のそれぞれは、入力端子が、ｎ本の列ライン７２のうち対応する列の列ライン７２に接続される。ｍ×ｎ個のメモリスタ２０のそれぞれは、出力端子が、ｍ本の行ライン７４のうち対応する行の行ライン７４に接続される。
【０１２６】
設定部２２は、演算に先だって、ｍ×ｎ個のメモリスタ２０のそれぞれに対して、ｍ×ｎ個の重み値のうちの対応する行列位置の重み値に応じた電圧−電流特性を設定する。
【０１２７】
ｎ個の対数変換回路２４は、ｎ列に対応して配置される。また、ｎ個の対数変換回路２４は、ｎ個の入力値に一対一に対応して設けられる。ｎ個の対数変換回路２４のそれぞれは、ｎ個の入力値のうち対応する入力値に応じた入力電圧を受け取る。ｎ個の対数変換回路２４のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、対応する入力値に応じた入力電圧を対数変換した中間電圧を発生する。
【０１２８】
ｎ個の対数変換回路２４のそれぞれは、発生した中間電圧を、ｎ本の列ライン７２のうちの対応する列ライン７２に印加する。これにより、ｎ個の対数変換回路２４のそれぞれは、対応する列ライン７２に接続されたｍ個のメモリスタ２０に対して、中間電圧を印加することができる。中間電圧が印加されたｍ個のメモリスタ２０のそれぞれは、印加された中間電圧とコンダクタンスパラメータａに応じて設定された電圧−電流特性とにより特定される電流を流す。
【０１２９】
ｍ個の電流電圧変換回路２６は、ｍ行に対応して配置される。ｍ個の電流電圧変換回路２６は、ｍ個の出力値に一対一に対応して設けられる。
【０１３０】
ｍ個の電流電圧変換回路２６のそれぞれは、ｍ本の行ライン７４のうちの対応する行ライン７４に接続されたｎ個のメモリスタ２０に流れる合計電流を受け取る。ｍ個の電流電圧変換回路２６のそれぞれは、予め設定された線形関数に従って合計電流を電流電圧変換した出力電圧を発生する。ｍ個の電流電圧変換回路２６のそれぞれは、発生した出力電圧を、ｍ個の出力値のうちの対応する出力値として出力する。
【０１３１】
そして、ｍ個の電流電圧変換回路２６は、発生したｍ個の出力電圧を、ｍ×ｎ個の重み値とｎ個の入力値とを行列演算したｍ個の出力値として出力する。なお、出力値と出力電圧との対応関係は、予め定められている。
【０１３２】
以上のような行列演算装置７０は、式（７１）のような演算を実行することができる。
【数２２】
2020197761.tif 000024
【０１３３】
Ｖｘ１は、１番目の入力値に応じた入力電圧を表す。Ｖｘ２は、２番目の入力値に応じた入力電圧を表す。Ｖｘｎは、ｎ番目の入力値に応じた入力電圧を表す。
【０１３４】
Ｖｙ１は、１番目の出力値に対応する出力電圧を表す。Ｖｙ２は、２番目の出力値に対応する出力電圧を表す。Ｖｙｍは、ｍ番目の出力値に対応する出力電圧を表す。
【０１３５】
ａ１１は、１行１列の行列位置の重み値（ｗ１１）に応じたコンダクタンスパラメータを表す。ａｍｎは、ｍ行ｎ列の行列位置の重み値（ｗｍｎ）に応じたコンダクタンスパラメータを表す。
【０１３６】
また、行列演算装置７０は、０以上１以下の重み値を受け取り、０ボルト以上１ボルト以下の入力電圧を受け取り、０ボルト以上１ボルト以下の出力電圧を出力してもよい。このような場合、設計時、製造時またはキャリブレーション時等において、ｋおよびＲｙが第１実施形態と同様に設定される。また、設定部２２は、ｍ×ｎ個の重み値を受け取った場合、第１実施形態と同様にｍ×ｎ個のコンダクタンスパラメータを算出する。
【０１３７】
このように設定された場合、行列演算装置７０は、式（７２）のような演算を実行することができる。
【数２３】
2020197761.tif 000025
【０１３８】
以上のように、第３実施形態に係る行列演算装置７０は、ｍ行×ｎ列に行列配置されたｍ×ｎ個の重み値と、ｎ個の入力値とを行列演算することにより、ｍ個の出力値を出力することができる。このような本実施形態に係る行列演算装置７０によれば、精度良く行列演算を実行することができる。さらに、行列演算装置７０によれば、複数のメモリスタ２０を用いるので、低い消費電力で行列演算を実行することができる。
【０１３９】
さらに、第３実施形態に係る行列演算装置７０は、メモリスタ２０が自己整流性を有するので、あるメモリスタ２０に流れた電流が他のメモリスタ２０に流入することが無くなる。従って、第３実施形態に係る行列演算装置７０によれば、整流回路またはスイッチ等を含まなくてよく、構成が簡易となる。
【０１４０】
（変形例）
図２０は、変形例に係る対数変換回路２４を示す図である。第１実施形態、第２実施形態および第３実施形態において、対数変換回路２４は、Ｄ−Ａ（デジタル−アナログ）コンバータにより実現されてもよい。この場合、対数変換回路２４は、デジタル演算により自然対数演算を実行した後、デジタル−アナログ変換を実行する。従って、変形例に係る対数変換回路２４は、デジタル値で表された入力値（Ｖｘ）を受け取り、アナログ電圧の中間電圧（Ｖｗ）を出力する。
【０１４１】
図２１は、変形例に係る対数変換回路２４の入出力特性の一例を示す図である。変形例に係る対数変換回路２４は、デジタル−アナログ変換により中間電圧（Ｖｗ）を発生するので、量子化誤差を含む。しかし、変形例に係る対数変換回路２４は、デジタル−アナログ変換の量子化ビット数を大きくすることにより、精度良く演算を実行することができる。
【０１４２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４３】
１０  演算装置
２０  メモリスタ
２２  設定部
２４  対数変換回路
２６  電流電圧変換回路
３２  第１演算増幅器
３４  入力抵抗
３６  ダイオード
３８  第１反転増幅回路
４０  電圧入力端子
４２  第２演算増幅器
４４  帰還抵抗
４６  第２反転増幅回路
５０  電圧出力端子
６０  積和演算装置
７０  行列演算装置
７２  列ライン
７４  行ライン
【図１】
2020197761.tif 000026
【図２】
2020197761.tif 000027
【図３】
2020197761.tif 000028
【図４】
2020197761.tif 000029
【図５】
2020197761.tif 000030
【図６】
2020197761.tif 000031
【図７】
2020197761.tif 000032
【図８】
2020197761.tif 000033
【図９】
2020197761.tif 000034
【図１０】
2020197761.tif 000035
【図１１】
2020197761.tif 000036
【図１２】
2020197761.tif 000037
【図１３】
2020197761.tif 000038
【図１４】
2020197761.tif 000039
【図１５】
2020197761.tif 000040
【図１６】
2020197761.tif 000041
【図１７】
2020197761.tif 000042
【図１８】
2020197761.tif 000043
【図１９】
2020197761.tif 000044
【図２０】
2020197761.tif 000045
【図２１】
2020197761.tif 000046