(57)【要約】      （修正有）【課題】消費電力を低減できるニューラルネットワーク回路を提供する。【解決手段】アナログ積和演算回路１において、メモリスタが記憶素子のクロスバー回路４の入力端子にＤ／Ａコンバータ２及びアンプ３を介して信号電圧と基準電圧とを印加する。クロスバー回路４の出力端子に流れる電流はアンプ７により電圧に変換後Ａ／Ｄ変換される。オフセット補正部３０はアンプ７に発生するオフセット電圧を補正する。アンプ３（Ｂ）はＤ／Ａコンバータ２（Ｂ）からの入力電圧に応じて逆極性のバイアス電圧と基準電圧とを印加する。初期動作時にアンプ３（Ｂ）は逆極性のバイアス電圧を出力し、アンプ３（１）、３（２）は基準電圧を出力してＡ／Ｄ変換されたデータを減算部９がラッチする。通常動作時はアンプ３（Ｂ）は基準電圧を出力し、アンプ３（１）、３（２）は信号電圧を出力してＡ／Ｄ変換されたデータを減算部がラッチし減算結果を出力する。【選択図】図２
2019191930.tif 000002
【特許請求の範囲】
【請求項１】
可変抵抗素子であるメモリスタを記憶素子として、前記記憶素子を格子状に結合してなる記憶部（４）と、
この記憶部の複数の電圧入力端子に、信号電圧と基準電圧とを印加するようにデータが入力される複数のＤ／Ａコンバータ（２）と、
これら複数のＤ／Ａコンバータと、前記複数の電圧入力端子との間に接続される複数の駆動アンプ（３）と、
前記記憶部の電流出力端子に接続され、前記端子に流れる電流を電圧に変換して出力する複数のＩ／Ｖ変換アンプ（７）と、
これら複数のＩ／Ｖ変換アンプにより変換された信号電圧をＡ／Ｄ変換する複数のＡ／Ｄコンバータ（８）と、
これら複数のＡ／Ｄコンバータの出力側に配置され、前記Ｉ／Ｖ変換アンプに発生するオフセット電圧を補正する複数のオフセット補正部（３０，４０）とを備え、
前記複数の電圧入力端子の１つは、バイアス電圧を印加するためのバイアス用端子であり、
前記バイアス用端子に接続される駆動アンプ（３（Ｂ））は、対応するＤ／Ａコンバータより入力される電圧に応じて、逆極性のバイアス電圧と基準電圧とを印加するバイアス印加用アンプであり、
前記オフセット補正部は、
前記Ａ／Ｄコンバータの出力データが入力される第１及び第２ラッチ回路（１６（２），１６（１））と、
前記第２ラッチ回路のラッチデータより、前記第１ラッチ回路のラッチデータを減算する減算器（１８）と、
前記Ｄ／Ａコンバータ及び前記第１及び第２ラッチ回路を制御する制御部（１１，３１とを備え、
前記制御部は、
バイアス設定動作時には、前記バイアス印加用アンプに逆極性のバイアス電圧を出力させると共に、その他の駆動アンプに基準電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際に、前記Ａ／Ｄコンバータの出力データを前記第１ラッチ回路にラッチさせ、
通常動作時には、前記バイアス印加用アンプに基準電圧を出力させると共に、その他の駆動アンプに信号電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際に、前記Ａ／Ｄコンバータの出力データを前記第２ラッチ回路にラッチさせ、
前記減算器の減算結果を、信号データとして出力するニューラルネットワーク回路。
【請求項２】
可変抵抗素子であるメモリスタを記憶素子として、前記記憶素子を格子状に結合してなる記憶部（４）と、
この記憶部の複数の電圧入力端子に、信号電圧と基準電圧とを印加するようにデータが入力される複数のＤ／Ａコンバータ（２）と、
これら複数のＤ／Ａコンバータと、前記複数の電圧入力端子との間に接続される複数の駆動アンプ（３）と、
前記記憶部の電流出力端子に接続され、前記端子に流れる電流を電圧に変換して出力する複数のＩ／Ｖ変換アンプ（７）と、
対を成す２つのＩ／Ｖ変換アンプの出力について、差動演算を行う差動アンプ（４２）と、
この差動アンプの出力電圧をＡ／Ｄ変換する複数のＡ／Ｄコンバータ（８）と、
これら複数のＡ／Ｄコンバータの出力側に配置され、前記Ｉ／Ｖ変換アンプに発生するオフセット電圧を補正する複数のオフセット補正部（１１）とを備え、
前記複数の電圧入力端子の１つは、バイアス電圧を印加するためのバイアス用端子であり、
前記バイアス用端子に接続される駆動アンプは、対応するＤ／Ａコンバータより入力される電圧に応じて、前記バイアス電圧と基準電圧とを印加するバイアス印加用アンプ（３（Ｂ）であり、
前記記憶部において、前記バイアス電圧を印加するメモリスタの差動対は、前記バイアス電圧の極性が逆になるように予めコンダクタンス値が入れ替えられており、
前記オフセット補正部は、
前記Ａ／Ｄコンバータの出力データが入力される第１及び第２ラッチ回路（１６（２），１６（１））と、
前記第２ラッチ回路のラッチデータより、前記第１ラッチ回路のラッチデータを減算する減算器（１８）と、
前記Ｄ／Ａコンバータ及び前記第１及び第２ラッチ回路を制御する制御部（１１）とを備え、
前記制御部は、
バイアス設定動作時には、前記バイアス印加用アンプに前記バイアス電圧を出力させると共に、その他の駆動アンプに基準電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際に、前記Ａ／Ｄコンバータの出力データを前記第１ラッチ回路にラッチさせ、
通常動作時には、前記バイアス印加用アンプに基準電圧を出力させると共に、その他の駆動アンプに信号電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際に、前記Ａ／Ｄコンバータの出力データを前記第２ラッチ回路にラッチさせ、
前記減算器の減算結果を、信号データとして出力するニューラルネットワーク回路。
【請求項３】
前記制御部は、前記バイアス設定動作を間欠的に実行する請求項１又は２記載のニューラルネットワーク回路。
【請求項４】
前記制御部は、クロック信号をカウントするカウンタ（２２）を備え、このクロックカウンタのカウント値が所定値に達する毎に、前記バイアス設定動作を実行する請求項３記載のニューラルネットワーク回路。
【請求項５】
前記クロックカウンタは、前記カウント値が所定値に達すると、１クロック周期だけ出力信号をアクティブレベルに変化させ、
前記制御部は、
前記クロックカウンタの出力信号により前記バイアス印加用アンプに対応するＤ／Ａコンバータを制御し、
前記出力信号の反転により前記駆動アンプに対応するＤ／Ａコンバータを制御すると共に、前記第１及び第２ラッチ回路のラッチタイミングを制御する請求項４記載のニューラルネットワーク回路。
【請求項６】
前記Ｄ／Ａコンバータは、入力データ値を制御する制御端子を有するバッファ回路（１２）を備え、
前記バッファ回路は、前記制御端子に与える二値レベルの変化に応じて、対応するアンプに基準電圧を出力させるためのデータを入力するように構成されている請求項５記載のニューラルネットワーク回路。
【請求項７】
前記制御部は、温度センサ（３１）を備え、前記温度センサにより検出される温度の変動レベルが所定レベルを超えると前記バイアス設定動作を実行する請求項３記載のニューラルネットワーク回路。
【請求項８】
前記温度センサは、温度の変動レベルが所定レベルを超えると出力信号をアクティブレベルに変化させ、前記出力信号をインアクティブレベルに変化させるためのリセット端子を備え、
前記制御部は、
クロック端子にクロック信号が入力されるＤフリップフロップ（３２）を備え、
前記温度センサの出力端子は前記Ｄフリップフロップの入力端子Ｄに接続され、リセット端子は同反転出力端子ＱＮに接続されており、
前記Ｄフリップフロップの出力信号により前記バイアス印加用アンプに対応するＤ／Ａコンバータを制御し、
前記出力信号の反転により前記駆動アンプに対応するＤ／Ａコンバータを制御すると共に、前記第１及び第２ラッチ回路のラッチタイミングを制御する請求項７記載のニューラルネットワーク回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶素子としてのメモリスタを格子状に結合してなる記憶部を有するニューラルネットワーク回路に関する。
【背景技術】
【０００２】
現在、メモリスタと称される、不揮発性でコンダクタンス値を可変できる２端子の素子をシナプスとして用い、ニューラルネットワーク回路を構成する研究が進められている。このようなニューラルネットワーク回路は、例えば図１４，非特許文献１のＦｉｇ．２に示すように、メモリスタを格子状に配置し、メモリスタに電圧を印加して電流を生成する。その合成電流をトランスインピーダンスアンプ，Ｉ／Ｖ変換アンプで電圧に変換し、活性化関数により波形を整形した後に電圧値として出力する。メモリスタがシナプスとして、Ｉ／Ｖ変換アンプがニューロンとして動作することで、ニューラルネットワーク回路が構成される。Ｉ／Ｖ変換アンプは、メモリスタのコンダクタンス値と印加電圧との積和演算をアナログ演算で行う。
【０００３】
ここで、実際の回路において、図１４に示すＶｉ１〜Ｖｉ３の各入力が−１〜＋１の値をとる時は、閾値へのバイアスとしてＶｉ４＝−１，を常に印加している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“A heterogeneous computing system with memristor-based neuromorphic accelerators " High PERFORMANCE Extreme Computing Conference, 2014 IEEE
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１４に示す回路を用いて、１０層のＣＮＮ（畳込みニューラルネットワーク）を構成した例を図１５に示す。図１６は、このＣＮＮにより画像認識を行った場合の１層目の各入力端子の入力電流比の計算例を示す。入力は−Ｖｂ〜＋Ｖｂが印加されるＶｉ１〜Ｖｉ２８の２８端子、出力はＶｏ１〜Ｖｏ９６の９６端子で構成され、入力のバイアスは、
Ｖｉ２８＝−Ｖｂが常時印加された状態で計算している。
【０００６】
一般的に入力データはスパース性を有しているため、実際の個々の入力電流に対して、バイアス電流は１桁以上大きな値となる。また、図１６に示す例では、バイアス電流は入力電流の総和に対しても４０％弱の割合を示している。
【０００７】
本発明は上記事情に鑑みてなされたものであり、その目的は、バイアス電圧を印加することに基づく消費電力を低減できるニューラルネットワーク回路を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載のニューラルネットワーク回路によれば、記憶素子であるメモリスタを格子状に結合してなる記憶部の複数の電圧入力端子に、Ｄ／Ａコンバータ及び駆動アンプを介して信号電圧と基準電圧とを印加する。記憶部の電流出力端子に流れる電流は、Ｉ／Ｖ変換アンプにより電圧に変換されるとＡ／ＤコンバータによりＡ／Ｄ変換される。オフセット補正部は、Ａ／Ｄコンバータの出力側に配置され、Ｉ／Ｖ変換アンプに発生するオフセット電圧を補正する。複数の電圧入力端子の１つであるバイアス用端子に接続される駆動アンプはバイアス印加用アンプであり、対応するＤ／Ａコンバータより入力される電圧に応じて、逆極性のバイアス電圧と基準電圧とを印加する。
【０００９】
オフセット補正部の制御部は、バイアス設定動作時には、バイアス印加用アンプに逆極性のバイアス電圧を出力させると共に、その他の駆動アンプに基準電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際にＡ／Ｄ変換されたデータを第１ラッチ回路にラッチさせる。通常動作時には、バイアス印加用アンプに基準電圧を出力させると共に、その他の駆動アンプに信号電圧を出力させるように各Ｄ／Ａコンバータを制御し、その際にＡ／Ｄ変換されたデータを第２ラッチ回路にラッチさせる。減算器は、第２，第１ラッチ回路のラッチデータを減算した結果を信号データとして出力する。
【００１０】
例えば、印加する逆極性のバイアス電圧を＋Ｖｂとすると、バイアス設定動作時に第１ラッチ回路にラッチされるデータは、Ｉ／Ｖ変換アンプに発生するオフセット電圧Ｖoffに、逆極性のバイアスを印加した時の出力電圧Ｖbiasを加えたもの（Ｖoff＋Ｖbias）に相当する。また、通常動作時に第２ラッチ回路にラッチされるデータは、Ｉ／Ｖ変換アンプに入力された信号電圧Ｖinに応じた、当該アンプの出力電圧Ｖoutにオフセット電圧Ｖoffを加えたもの（Ｖout＋Ｖoff）に相当する。
【００１１】
したがって、減算器の減算結果は、
（Ｖout＋Ｖoff）−（Ｖoff＋Ｖbias）＝Ｖout−Ｖbias
となり、オフセット電圧はキャンセルされ、且つバイアス電圧−Ｖｂが加えられた電圧に相当する。つまり、記憶部にバイアス電流が流れるのはバイアス設定動作時のみとなるので、バイアス電流の通電期間を従来よりも短くすることができ、消費電流を低減できる。そして、オフセット電圧の補正も併せて行うことができる。
【００１２】
請求項２記載のニューラルネットワーク回路によれば、Ｉ／Ｖ変換アンプまでの構成は請求項１と同様であるが、差動アンプが、対を成す２つのＩ／Ｖ変換アンプの出力について差動演算を行う、所謂差動構成である点が相違する。また、記憶部においてバイアス電圧を印加するメモリスタの差動対は、バイアス電圧の極性が逆になるように予めコンダクタンス値が入れ替えられている。
【００１３】
すなわち、バイアス電圧を印加するメモリスタの差動対は、バイアス電圧の極性が逆になるように予めコンダクタンス値が入れ替えられているので、これは、請求項１のバイアス設定動作時において、バイアス印加用アンプに逆極性のバイアス電圧を出力させる動作と等価になる。したがって、記憶部の出力側が差動構成となるものについても、請求項１と同様に消費電流を低減できる。
【００１４】
請求項３記載のニューラルネットワーク回路によれば、制御部は、バイアス設定動作を間欠的に実行するので、消費電流を更に低減できる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態であり、図２に示す構成をより詳細に示す図
【図２】ニューラルネットワーク回路を構成するアナログ積和演算回路を示す機能ブロック図
【図３】Ｄ／Ａコンバータの入力側に配置されるバッファ回路を示す図
【図４】減算部の内部構成を示す機能ブロック図
【図５】活性化関数の一例を示す図
【図６】活性化関数演算部の構成を示す図
【図７】オフセット補正制御部の構成を示す機能ブロック図
【図８】オフセット補正制御部の動作を示すタイミングチャート
【図９】オフセット補正の回路動作を示すフローチャート
【図１０】第２実施形態であり、オフセット補正制御部の構成を示す機能ブロック図
【図１１】温度センサ部の動作を示すタイミングチャート
【図１２】第３実施形態であり、ニューラルネットワーク回路を構成するアナログ積和演算回路を詳細に示す機能ブロック図
【図１３】オフセット補正の回路動作を示すフローチャート
【図１４】非特許文献１のＦｉｇ．２を示す図
【図１５】図１４に示す回路を用いて、１０層のＣＮＮを構成した例を示す図
【図１６】図１５に示すＣＮＮにより画像認識を行った場合の１層目の各入力端子の入力電流比の計算例を示す図
【発明を実施するための形態】
【００１６】
（第１実施形態）
以下、第１実施形態について説明する。図２に示すニューラルネットワーク回路のアナログ積和演算回路１は、入力データＤａｔａ＿ｉｎをＤ／Ａコンバータ２により電圧変換する。変換された電圧はドライブアンプ３を介してメモリスタクロスバー回路４に印加される。ドライブアンプ３は駆動アンプに相当する。メモリスタクロスバー回路４は、メモリスタを記憶素子とするもので、複数の記憶素子を格子状に配置して構成されており、記憶部に相当する。
【００１７】
クロスバー回路４からは、各記憶素子に設定されているコンダクタンス値に応じて電流が出力され、その電流はセンスアンプ７により電圧に変換される。センスアンプ７により変換された電圧は、Ａ／Ｄコンバータ８によりＡ／Ｄ変換され、デジタルデータとして出力される。センスアンプ７はＩ／Ｖ変換アンプに相当する。前記データは、減算部９を介して活性化関数演算部１０に入力される。活性化関数演算部１０では、入力データに対し、ニューラルネットワーク回路の活性化関数として、例えば図５に示す次式のランプ関数ｆ（ｘ）が適用される。
ｆ（ｘ）＝ｍａｘ（０，ｘ）      …（１）
このランプ関数ｆ（ｘ）は正極性である。その後、出力されたデータＤａｔａ＿ｏｕｔは、次段のアナログ積和演算回路１に入力される。
【００１８】
オフセット補正制御部１１は、Ｄ／Ａコンバータ２及び減算部９を制御することで、Ａ／Ｄコンバータ８の出力データに含まれているオフセットの補正を行う。減算部９及びオフセット補正制御部１１は、オフセット補正部３０を構成する。尚、実際には、Ｄ／Ａコンバータ２，ドライブアンプ３，センスアンプ７，Ａ／Ｄコンバータ８等は、より多数設けられている。図１は、図２に示すメモリスタクロスバー回路４の入出力に係る部分を、実態に合せてより詳細に示したものである。
【００１９】
図３に示すように、Ｄ／Ａコンバータ２のデータ入力部には、バッファ回路１２が配置されている。入力データＤＩがｎビットである場合、最上位ビットＤＩ［ｎ−１］に対応してＯＲゲート１３が配置され、それ以外の下位ビットＤＩ［ｎ−２］〜ＤＩ［０］に対応してＡＮＤゲート１４［ｎ−２］〜１４［０］が配置されている。これらの論理ゲート１３及び１４の入力端子の一方には、対応する入力データＤＩが与えられ、入力端子の他方には、オフセット補正制御部１１が出力するイネーブル信号ＥＮが与えられている。但し、ＯＲゲート１３には、ＮＯＴゲート１５を介してイネーブル信号ＥＮが与えられている。
【００２０】
イネーブル信号ＥＮ＝０の場合、Ｄ／Ａコンバータ２の入力データはＭＳＢであるＤＩ［ｎ−１］のみが「１」になり、それ以外の下位ビットＤＩ［ｎ−２］〜ＤＩ［０］は全て「０」になる。また、図１に示すように、Ｄ／Ａコンバータ２（Ｂ）に入力されるイネーブル信号ＥＮは、オフセット補正制御部１１が出力する制御信号Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔであり、その他のＤ／Ａコンバータ２（１），２（２）等に入力されるイネーブル信号ＥＮは、制御信号Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔである。
【００２１】
そして、Ｄ／Ａコンバータ２（１）及び２（２）については、前記制御信号に応じて以下のように変換電圧を出力する。
Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔ        出力電圧
０（初期動作）              基準電圧Ｖｒｅｆ
１（通常動作）              入力データに応じた信号電圧
また、Ｄ／Ａコンバータ２（Ｂ）については、制御信号Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔに応じて以下のように変換電圧を出力する。
Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔ        出力電圧
０（通常動作）              基準電圧Ｖｒｅｆ
１（初期動作）              逆極性バイアス電圧＋Ｖｂ
尚、「初期動作」，「通常動作」については後述する。
【００２２】
図４に示すように、減算部９は、第１ラッチ回路１６（１），第２ラッチ回路１６（２），ラッチ制御回路１７及び減算器１８を備えている。ラッチ回路１６には、入力データＤＩが入力され、ラッチ信号はラッチ制御回路１７より入力される。ラッチ制御回路１７は、ＯＲゲート１９（１）及び１９（２），ＮＯＴゲート２０で構成される。ＯＲゲート１９（１）及び１９（２）の入力端子の一方にはラッチ信号；ＬＥが入力され、入力端子の他方にはセレクト信号Ｌａｔｃｈ＿ｓｅｌｅｃｔ；ＳＥＬが入力される。但し、ＯＲゲート１９（１）には、ＮＯＴゲート２０を介してセレクト信号ＳＥＬが入力される。
【００２３】
図６に示すように、活性化関数演算部１０は、ｎ個のＡＮＤゲート２１［ｎ−１］〜２１［０］で構成されている。ＡＮＤゲート２１の入力端子の一方には、減算部９が出力するデータＤ［ｎ−１］〜Ｄ［０］が与えられ、入力端子の他方には、データＤ［ｎ−１］が共通に与えられている。
【００２４】
図７に示すように、オフセット補正制御部１１は、カウンタ２２を備えている。カウンタ２２の入力端子には、クロック信号Ｃｌｏｃｋが入力されている。カウンタ２２は、カウント値の設定データＤａｔａ＿ｓｅｔが入力され、そのカウント値をカウントすると出力信号Ｑを１クロック周期だけハイレベルにする。出力信号Ｑの反転信号ＱＮは、１クロック周期だけローレベルにする。
【００２５】
カウンタ２２の出力端子ＱＮからは、制御信号Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔと制御信号Ｌａｔｃｈ＿ｓｅｌｅｃｔが出力される。また、カウンタ２２の出力端子Ｑからは、制御信号Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔが出力される。
【００２６】
図８は、オフセット補正制御部１１の動作タイミングチャートである。オフセット補正制御部１１は、カウンタ２２のカウント値でオフセット電圧Ｖｏｆｆと逆極性のバイアス電圧＋Ｖｂｉａｓとを取り込む初期状態の実施頻度を設定する。この実施頻度は、センスアンプ７のオフセット電圧Ｖｏｆｆやメモリスタのコンダクタンスの温度ドリフトによる影響が、演算結果の誤差として許容できるように設定する。
【００２７】
この例では、カウンタ２２に設定されるデータＤａｔａ＿ｓｅｔの値が「４」の場合を示しており、Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔは、クロック信号Ｃｌｏｃｋの４カウント毎にハイレベルになる。Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔとＬａｔｃｈ＿ｓｅｌｅｃｔは、Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔの反転になる。
【００２８】
すなわち、Ｄ／Ａコンバータ２（１）及び２（２）は、クロック４周期毎に「初期動作」となり、それ以外は「通常動作」となる。Ｄ／Ａコンバータ２（Ｂ）は、クロック４周期毎にＤ／Ａコンバータ２（１）及び２（２）に同期して「初期動作」となり、それ以外は「通常動作」となる。
【００２９】
次に、本実施形態の作用について説明する。図９は、図８のタイミングチャートに応じた回路動作を示している。先ず、ステップＳ１においてオフセット補正制御部１１によるバイアス側動作モードが「初期動作」であれば（Ｓ２）、Ｄ／Ａコンバータ２（１）及び２（２）は基準電圧Ｖｒｅｆを出力し、Ｄ／Ａコンバータ２（Ｂ）は逆極性バイアス電圧＋Ｖｂを出力する（Ｓ３）。「初期動作」は、バイアス設定動作に相当する。
【００３０】
ここで、メモリスタの両端に印加可能な電圧範囲を±Ｖｂ，センスアンプ７に付与される基準電位Ｖｒｅｆを例えば０Ｖとする。「初期動作」とは、メモリスタの両端に電位差を生じさせない状態にするもので、
Ｖｉｎ１＝Ｖｉｎ２＝０Ｖ,ＶｉｎＢ＝＋Ｖｂ
となる。この時、センスアンプ７にオフセット電圧Ｖｏｆｆが発生していると、その出力電圧Ｖｏｕｔは、オフセット電圧Ｖｏｆｆに、逆極性のバイアス電圧＋Ｖｂを印加した時の出力電圧＋Ｖｂａｉｓを加えたもの、すなわち、
Ｖｏｕｔ＝Ｖｏｆｆ＋Ｖｂｉａｓ
になる。そしてこの時、Ｌａｔｃｈ＿ｓｅｌｅｃｔ＝０であるから、減算部９のラッチ回路１６（２）により、センスアンプ７の出力電圧（Ｖｏｆｆ＋Ｖｂｉａｓ）に相当するデータがラッチされる（Ｓ４）。
【００３１】
一方、ステップＳ１においてオフセット補正制御部１１によるバイアス側動作モードが「通常動作」であれば（Ｓ５）、Ｄ／Ａコンバータ２（１），２（２）はそれぞれ信号電圧Ｖｉｎ１，Ｖｉｎ２を出力し、Ｄ／Ａコンバータ２（Ｂ）は基準電圧Ｖｒｅｆを出力する（Ｓ６）。したがって、センスアンプ７の出力は、信号電圧Ｖｉｎに応じた出力電圧Ｖｏｕｔにオフセット電圧Ｖｏｆｆを加えた電圧（Ｖｏｕｔ＋Ｖｏｆｆ）になる。この時、Ｌａｔｃｈ＿ｓｅｌｅｃｔ＝１であるから、ラッチ回路１６（１）により、センスアンプ７の出力電圧（Ｖｏｕｔ＋Ｖｏｆｆ）に相当するデータがラッチされる（Ｓ７）。
【００３２】
それから、減算部９の減算器１８により、ラッチ回路１６（２），１６（１）のデータの減算が行われる（Ｓ８）。その減算結果は、
（Ｖｏｕｔ＋Ｖｏｆｆ）−（Ｖｏｆｆ＋Ｖｂｉａｓ）＝Ｖｏｕｔ−Ｖｂｉａｓ
となる。これにより得られるデータは、センスアンプ７の出力電圧Ｖｏｕｔに正極性のバイアス電圧−Ｖｂを印加した時の出力電圧−Ｖｂｉａｓが加算された電圧に相当する。そして、オフセット電圧Ｖｏｆｆはキャンセルされている。
【００３３】
以上のように本実施形態によれば、メモリスタを記憶素子とするクロスバー回路４の複数の電圧入力端子に、Ｄ／Ａコンバータ２及びドライブアンプ３を介して信号電圧Ｖｉｎと基準電圧Ｖｒｅｆとを印加する。メモリスタクロスバー回路４の電流出力端子に流れる電流は、センスアンプ７により電圧に変換され、Ａ／Ｄコンバータ８によりＡ／Ｄ変換される。オフセット補正部３０は、Ａ／Ｄコンバータ８の出力側に配置され、センスアンプ７に発生するオフセット電圧Ｖｏｆｆを補正する。
【００３４】
メモリスタクロスバー回路４のバイアス用端子に接続されるドライブアンプ３（Ｂ）はＤ／Ａコンバータ２（Ｂ）より入力される電圧に応じて、逆極性のバイアス電圧＋Ｖｂと基準電圧Ｖｒｅｆとを印加する。
【００３５】
オフセット補正制御部１１は、初期動作時にはドライブアンプ３（Ｂ）に逆極性のバイアス電圧を出力させると共に、ドライブアンプ３（１），３（２）に基準電圧Ｖｒｅｆを出力させるように各Ｄ／Ａコンバータ２を制御し、その際にＡ／Ｄ変換されたデータを第１ラッチ回路１６（１）にラッチさせる。
【００３６】
通常動作時には、ドライブアンプ３（Ｂ）に基準電圧Ｖｒｅｆを出力させると共に、ドライブアンプ３（１），３（２）に信号電圧Ｖｉｎを出力させるように各Ｄ／Ａコンバータ２を制御し、その際にＡ／Ｄ変換されたデータを第２ラッチ回路１６（２）にラッチさせる。減算器１８は、第２，第１ラッチ回路１６（２），１６（１）のラッチデータを減算した結果を信号データＤＯＵＴとして出力する。
【００３７】
このように構成すれば、メモリスタクロスバー回路４にバイアス電流が流れるのは初期動作時のみとなるので、バイアス電流の通電期間を従来よりも短くすることができ、消費電流を低減できる。そして、オフセット電圧Ｖｏｆｆの補正も併せて行うことができる。また、オフセット補正制御部１１は初期動作を間欠的に実行するので、バイアス電流の通電期間が更に短くなる。
【００３８】
具体的には、オフセット補正制御部１１は、カウンタ２２によるクロック信号Ｃｌｏｃｋカウント値が所定値「４」に達する毎に、初期動作を実行する。カウンタ２２は、カウント値が所定値に達すると、１クロック周期だけ出力信号Ｑをハイレベルに変化させる。オフセット補正制御部１１は、カウンタ２２の出力端子Ｑより制御信号Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔを出力してＤ／Ａコンバータ２（Ｂ）を制御し、カウンタ２２の出力端子ＱＮより制御信号Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔを出力してＤ／Ａコンバータ２（１）及び２（２）を制御し、カウンタ２２の出力端子ＱＮより制御信号Ｌａｔｃｈ＿ｓｅｌｅｃｔを出力してラッチ回路１６（１），１６（２）のラッチタイミングを制御する。これにより、バイアス電流の通電期間を、４クロック周期毎の１クロック周期にできる。
【００３９】
また、Ｄ／Ａコンバータ２に、入力データ値を制御する制御端子を有するバッファ回路１２を備え、バッファ回路１２は、制御端子に与えるイネーブル信号ＥＮの二値レベル変化に応じて、対応するドライブアンプ３に基準電圧Ｖｒｅｆを出力させるためのデータを入力する。これにより、初期動作と通常動作との切替を簡単に行うことができる。
【００４０】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。第２実施形態は、オフセット補正制御部１１に替えて、図１０に示すオフセット補正制御部３１を用いる。オフセット補正制御部３１は、カウンタ２２に替わるＤフリップフロップ３２と、温度センサ部３３とを備えている。
【００４１】
温度センサ部３３は、リセット端子と信号ＤＴを出力する端子とを備えており、例えばメモリスタクロスバー回路４の近傍において温度を検出する。温度センサ部３３の出力端子は、Ｄフリップフロップ３２の入力端子Ｄに接続され、リセット端子は、Ｄフリップフロップ３２の出力端子ＱＮに接続されている。オフセット補正部４０は、オフセット補正制御部３１を備えて構成される。
【００４２】
図１１に示すように、温度センサ部３３は、検出している温度に上昇下降に関わらず設定値以上の変動が発生すると、信号ＤＴをハイレベルにする。この時、Ｄフリップフロップ３２は、クロック信号Ｃｌｏｃｋに同期してデータ値「１」を取り込み、出力端子Ｑをハイレベルにする。これにより、バイアス側の初期動作が実行される。出力端子Ｑがハイレベルになると出力端子ＱＮがローレベルになり、温度センサ部３３はリセットされる。それに伴い、信号ＤＴがローレベルに変化するので、次のＣｌｏｃｋで出力端子ＱＮがハイレベルになり温度センサ部３３のリセットが解除される。
【００４３】
以上のように第２実施形態によれば、オフセット補正制御部３１は、温度センサ部３３により検出される温度の変動レベルが所定レベルを超えるとバイアス側の初期設定動作を実行する。具体的には、温度センサ部３３は、温度の変動レベルが所定レベルを超えると出力信号ＤＴをハイレベルに変化させ、出力信号ＤＴをローレベルに変化させるためのリセット端子を備える。
【００４４】
そして、温度センサ部３３の出力端子をＤフリップフロップ３２の入力端子Ｄに接続し、リセット端子を出力端子ＱＮに接続する。各制御信号Ｂｉａｓ＿ＤＡＣ＿ｓｅｌｅｃｔ，Ｄａｔａ＿ＤＡＣ＿ｓｅｌｅｃｔ，Ｌａｔｃｈ＿ｓｅｌｅｃｔは、第１実施形態のオフセット補正制御部１１と同じ構成により出力される。このように構成すれば、温度の変動レベルが所定レベルを超えた場合にだけバイアス側の初期設定動作が実行されるので、必要となるタイミングでバイアス電流を通電させて、通電期間を短くできる。
【００４５】
（第３実施形態）
図１２に示す第３実施形態のアナログ積和演算回路４１は、第１実施形態におけるセンスアンプ７（１），７（２）を、それぞれセンスアンプ７（１ｐ），７（１ｎ）とする。そして、センスアンプ７（１ｐ），７（１ｎ）の出力端子は、差動アンプ４２の各入力端子に接続されている。差動アンプ４２の出力端子は、出力電圧Ｖｏｕｔ１をＡ／Ｄコンバータ８（１）に入力する。すなわち、アナログ積和演算回路４１は、差動構成となっている。
【００４６】
次に、第３実施形態の作用について説明する。メモリスタの特性が大振幅の逆方向バイアスを印加した場合に非線形な動作をする場合は、差動構成にして、入力信号電圧とバイアス電圧を単一極性の電圧入力とすることで演算誤差を低減できる。アナログ積和演算回路４１について、第１実施形態と同様に初期動作で入力信号と同じ逆極性のバイアス電圧＋Ｖｂを印加して、オフセット補正の演算を実行する。
【００４７】
通常動作時にバイアス電圧を印加する際には、メモリスタのコンダクタンスはＧ１Ｂ≧Ｇ２Ｂに設定されている。第３実施形態では差動出力なので、事前にコンダクタンス値を入れ替えてＧ１Ｂ≦Ｇ２Ｂとすれば、出力電圧の極性を反転させることができる（Ｓ０）。そして、図１３に示すように、ステップＳ３に替わるステップＳ１１では、Ｄ／Ａコンバータ２（Ｂ）に入力信号と同一極性のバイアス電圧＋Ｖｂを出力させる。その結果、第１実施形態と同様の演算が実行される。
【００４８】
以上のように第３実施形態によれば、第１実施形態と同様にバイアス電流の通電期間を削減しながら、センスアンプ７のオフセットやメモリスタのコンダクタンスの温度変動に対応できる。
【００４９】
（その他の実施形態）
第１実施形態において、カウンタ２２に設定するデータの値は「４」に限らない。
活性化関数には、ランプ関数以外を用いても良い。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００５０】
図面中、１はアナログ積和演算回路、２はＤ／Ａコンバータ、３はドライブアンプ、４はメモリスタクロスバー回路、７はセンスアンプ、８はＡ／Ｄコンバータ、９は減算部、１１はオフセット補正制御部、１２はバッファ回路、１６（２）及び１６（１）は第１及び第２ラッチ回路、１８は減算器、２２はカウンタ、３０はオフセット補正部である。
【図１】
2019191930.tif 000003
【図２】
2019191930.tif 000004
【図３】
2019191930.tif 000005
【図４】
2019191930.tif 000006
【図５】
2019191930.tif 000007
【図６】
2019191930.tif 000008
【図７】
2019191930.tif 000009
【図８】
2019191930.tif 000010
【図９】
2019191930.tif 000011
【図１０】
2019191930.tif 000012
【図１１】
2019191930.tif 000013
【図１２】
2019191930.tif 000014
【図１３】
2019191930.tif 000015
【図１４】
2019191930.tif 000016
【図１５】
2019191930.tif 000017
【図１６】
2019191930.tif 000018