(57)【要約】【課題】メモリスタを記憶素子とする記憶部を有するものにおいて、記憶素子の不良を容易に判別できるニューラルネットワーク回路を提供する。【解決手段】メモリスタからなる記憶素子Ｒ１〜Ｒ３を格子状に結合してなる記憶部１を備える。コントローラは、記憶部１の選択した素子にデータとしての抵抗値を低減させる書き込み，前記抵抗値を増大させる消去及び読み出しを行うため電圧印加部を制御する。センスアンプ２は、記憶素子Ｒ１〜Ｒ３を介して流れる電流を電圧に変換して出力する。またコントローラは、各センスアンプ２に入力される電流の合計値をゼロにするように調整する。【選択図】図１
2018147159.tif 000002
【特許請求の範囲】
【請求項１】
可変抵抗素子であるメモリスタを記憶素子（Ｒ１，Ｒ２，Ｒ３）として、前記記憶素子を格子状に結合してなる記憶部（１，２６，２９）と、
この記憶部にバイアス電圧を印加する電圧印加部（４）と、
前記記憶部にデータとしての抵抗値を低減させる書き込み，前記抵抗値を増大させる消去及び読み出しを行うため、前記電圧印加部を制御する制御部（２３，３１）と、
前記記憶素子を介して流れる電流を電圧に変換して出力する複数のＩ／Ｖ変換増幅回路（２）と、
これらのＩ／Ｖ変換増幅回路のそれぞれに対応して配置され、各Ｉ／Ｖ変換増幅回路に入力される電流の合計値をゼロにする調整を可能とする電流調整部（Ｒｐ，Ｖｐ，Ｉｐ，，１７，２３）とを備えるニューラルネットワーク回路。
【請求項２】
前記電流調整部は、対応するＩ／Ｖ変換増幅回路の入力部に配置される電流源（Ｉｐ）を備える請求項１記載のニューラルネットワーク回路。
【請求項３】
前記電流源の内部に流れる基準電流の温度特性を、前記Ｉ／Ｖ変換増幅回路の入力電流の温度特性に等しく設定する請求項２記載のニューラルネットワーク回路。
【請求項４】
前記電流調整部は、対応するＩ／Ｖ変換増幅回路の入力部に配置される抵抗素子（Ｒｐ）及び電圧源（Ｖｐ）の直列回路を備える請求項１記載のニューラルネットワーク回路。
【請求項５】
前記電流調整部による調整が行われた後に、前記電流の合計値がゼロでなくなったことを検出すると、対応する記憶素子の抵抗値を再設定する抵抗値調整部（２３，３１）を備える請求項１から４の何れか一項に記載のニューラルネットワーク回路。
【請求項６】
任意の２つの電流調整部について、それらの出力の差を演算する差動演算部（２５）を備える請求項１から５の何れか一項に記載のニューラルネットワーク回路。
【請求項７】
前記記憶部（２６，２９）が差動構成であり、
各差動対を構成する２つのＩ／Ｖ変換増幅回路（２ｐ，２ｎ）について、それらの出力の差を演算する差動演算部（２７）を備える請求項１から６の何れか一項に記載のニューラルネットワーク回路。
【請求項８】
前記差がゼロでなければ、前記差をゼロとするように、対応する記憶素子の抵抗値を調整する抵抗値調整部（２３，３１）を備える請求項７記載のニューラルネットワーク回路。
【請求項９】
前記抵抗値調整部による調整が不能であれば、前記差の絶対値をゼロとするように調整する絶対値調整部（２３，３１）を備える請求項８記載のニューラルネットワーク回路。
【請求項１０】
前記差動演算部（２７）は、正側入力端子と負側入力端子とを入れ替え可能に構成され、
前記絶対値調整部は、前記正側入力端子に接続されている記憶素子の抵抗値と、前記負側入力端子に接続されている記憶素子の抵抗値とを入れ替えるように書き換え、
前記正側入力端子と前記負側入力端子とを入れ替えることで前記差の絶対値をゼロとするように調整する請求項９記載のニューラルネットワーク回路。
【請求項１１】
異常が検出された差動記憶素子を代替するための予備記憶素子（Ｒ１１ｐ〜Ｒ１３ｐ，Ｒ１１ｎ〜Ｒ１３ｎ，Ｒ０ｐ，Ｒ０ｎ，Ｒ１０ｐ，Ｒ１０ｎ）を備え、
前記出力の差がゼロでなければ、対応する差動記憶素子の抵抗値を互いに等しくするように調整し、
前記差動記憶素子を除いて、同じ入力端子に接続されている差動記憶素子の抵抗値を最大値にして、異常が検出された差動記憶素子を対応する予備記憶素子に入れ替える異常対応部（３１）を備える請求項７記載のニューラルネットワーク回路。
【請求項１２】
前記出力の差がゼロでなければ、前記差をゼロとするように、対応する記憶素子の抵抗値を調整する抵抗値調整部（３１）を備え、
前記異常対応部は、前記抵抗値調整部による調整が不能であれば、前記異常が検出された差動記憶素子を対応する予備記憶素子に入れ替える請求項１１記載のニューラルネットワーク回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶素子としてのメモリスタを格子状に結合してなる記憶部を有するニューラルネットワーク回路に関する。
【背景技術】
【０００２】
現在、メモリスタと称される、不揮発性でコンダクタンス値を可変できる２端子の素子をシナプスとして用い、ニューラルネットワーク回路を構成する研究が進められている。このようなニューラルネットワーク回路は、例えば非特許文献１のＦｉｇ．２に示すように、メモリスタを格子状に配置し、メモリスタに電圧を印加して電流を生成する。その合成電流をセンスアンプで電圧に変換し、活性化関数により波形を整形した後に電圧値として出力する。メモリスタがシナプスとして、センスアンプがニューロンとして動作することで、ニューラルネットワーク回路が構成される。センスアンプは、メモリスタのコンダクタンス値と印加電圧との積和演算を行う。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“A heterogeneous computing system with memristor-based neuromorphic accelerators ” High PERFORMANCE Extreme Computing Conference, 2014 IEEE
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的な不揮発性メモリについては、記憶したデータの信頼性を向上させるため、パリティビットやチェックサムを付加したり、ＥＣＣ（Error Check and Correct）を用いることができる。しかし、メモリスタを用いたアナログメモリの場合、メモリセルと演算回路とが一体化しているため、演算中にメモリセルに記憶されているデータのエラーを判定することが困難となる。
【０００５】
例えば、エラー検出を演算中は実施せず、検出のための読出しを別途行い、個々のセルの抵抗値を読み出して、別途保持している基準値と比較することでエラーを検出することはできる。しかしながら、このような手法は時間を要する。
【０００６】
また、格子状に配置されるメモリスタについては、各素子を切り離すための選択素子が付加されていない場合は、１つの素子に不良が発生すると、同一行又は同一列に接続されている全ての素子を「不良」とせざるを得ず、行又は列単位で予備素子との入れ替えを図る必要がある。
【０００７】
本発明は上記事情に鑑みてなされたものであり、その目的は、メモリスタを記憶素子とする記憶部を有するものにおいて、記憶素子の不良を容易に判別できるニューラルネットワーク回路を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載のニューラルネットワーク回路によれば、記憶素子であるメモリスタを格子状に結合してなる記憶部を備える。制御部は、記憶部の選択した素子にデータとしての抵抗値を低減させる書き込み，前記抵抗値を増大させる消去及び読み出しを行うため電圧印加部を制御する。Ｉ／Ｖ変換増幅回路は、記憶素子を介して流れる電流を電圧に変換して出力する。電流調整部は、各Ｉ／Ｖ変換増幅回路に入力される電流の合計値をゼロにするように調整する。
【０００９】
各Ｉ／Ｖ変換増幅回路に接続されている各記憶素子の書込み状態に応じて設定された抵抗値に応じて、各Ｉ／Ｖ変換増幅回路に入力される電流の合計値が決まる。したがって、電流調整部が前記合計値をゼロにするように調整した後に、合計値がゼロにならない状態が検出されれば、記憶素子に設定した抵抗値が変化したことになる。これにより、記憶部に発生した異常を検出できる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図２】行方向についてエラー検出を行う状態を示す図
【図３】列方向についてエラー検出を行う状態を示す図
【図４】第２実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図５】行方向についてエラー検出を行う状態を示す図
【図６】列方向についてエラー検出を行う状態を示す図
【図７】行方向についてエラー検出を行う構成を、より実態的なニューラルネットワーク回路として示す図
【図８】ドライブ回路の構成を示す図
【図９】センス回路の構成を示す図
【図１０】第３実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図１１】第４実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図１２】セルＲ１ｐ，Ｒ１ｎが書換え不能となるケース１〜４を示す図
【図１３】エラー訂正処理を示すフローチャート
【図１４】第５実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図１５】セルＲ１ｐ，Ｒ１ｎが書換え不能となるケース１〜４を示す図
【図１６】エラー訂正処理を示すフローチャート
【図１７】第６実施形態であり、メモリスタからなる記憶部について、エラー検出を行う構成を説明するモデル図
【図１８】セルＲ１ｐ，Ｒ１ｎが書換え不能となるケース１〜４を示す図
【図１９】エラー訂正処理を示すフローチャート
【図２０】予備セル列の入換えを行う構成を、より実態的なニューラルネットワーク回路として示す図
【発明を実施するための形態】
【００１１】
（第１実施形態）
図１に示すように、記憶部１は、メモリスタからなる３つの記憶素子Ｒ１，Ｒ２，Ｒ３で構成されている。各記憶素子Ｒ１，Ｒ２，Ｒ３の一端には、それぞれ可変電圧源Ｖ１，Ｖ２，Ｖ３が接続されている。各記憶素子Ｒ１，Ｒ２，Ｒ３の他端は、センスアンプ２の入力端子であるオペアンプ３の反転入力端子に共通に接続されている。前記反転入力端子とオペアンプ３の出力端子との間には、帰還抵抗Ｒｆが接続されている。オペアンプ３の非反転入力端子はグランドに接続されている。尚、以下では記憶素子を「セル」と称する場合がある。
【００１２】
そして、前記反転入力端子とグランドとの間には、メモリスタからなる抵抗素子Ｒｐ及び可変電圧源Ｖｐの直列回路が接続されている。前記直列回路は、電流調整部に相当する。ここで、記憶部１からエラー検出用の抵抗素子Ｒｐの接続点に流入する電流をＩｏ，前記接続点からセンスアンプ２の入力端子に流出する電流をＩｓとする。センスアンプ２は、Ｉ／Ｖ変換増幅回路に相当する。
【００１３】
次に、上記構成について、記憶部１のエラー検出を行うための手順を説明する。前提として、記憶素子Ｒ１，Ｒ２，Ｒ３の各コンダクタンスは、それぞれの記憶値に応じた値に設定されているものとする。尚、記憶部１について通常の読取りを行う際には、図示しないコントローラにより、例えばＶ１＝Ｖ２＝Ｖ３＝＋Ｖｒｅａｄ，Ｖｐ＝０に設定し、エラー検出抵抗Ｒｐに電流を流さないようにする。
【００１４】
そして、エラー検出を行う際には、コントローラにより例えばＶ１＝Ｖ２＝Ｖ３＝＋Ｖｒｅａｄ，Ｖｐ＝−Ｖｒｅａｄに設定した場合に、エラー検出抵抗Ｒｐの抵抗値を、出力電流Ｉｓ＝０となるように設定する。この状態で、センスアンプ２の出力電圧Ｖｏｕｔ≠０，つまりＩｓ≠０が検出されれば、記憶素子Ｒ１，Ｒ２，Ｒ３の何れかに開放，短絡又は設定した抵抗値の変化が生じたことになる。
【００１５】
尚、測定精度を考慮して、出力電流Ｉｓが、例えば−Ｉｔｈ１＜Ｉｓ＜Ｉｔｈ２の範囲外にある場合に異常を判定しても良い。閾値の設定は、例えばＶｐへの印加電圧や、センスアンプ２の基準電位，抵抗素子Ｒｐの抵抗値の切替えにより行うことができる。
【００１６】
また、図２及び図３に示すように、記憶部１の記憶素子が３×３の記憶素子Ｒ１１〜Ｒ３３である場合に、抵抗素子Ｒｐ及び電圧源Ｖｐを行方向及び列方向に配置すれば、何れの記憶素子に異常が発生したかを特定できる。例えば、図２においてＩｓ２≠０，図３においてＩｓ１≠０となれば、記憶素子Ｒ２１に異常が発生したことになる。そして、コントローラが異常，エラーの発生を検出した際に、Ｉｓ２＝Ｉｓ１＝０となるように記憶素子Ｒ２１の抵抗値を調整，再設定すれば、エラーを訂正することができる。
【００１７】
以上のように本実施形態によれば、メモリスタからなる記憶素子Ｒ１〜Ｒ３を格子状に結合してなる記憶部１を備える。コントローラは、記憶部１の選択した素子にデータとしての抵抗値を低減させる書き込み，前記抵抗値を増大させる消去及び読み出しを行うため電圧印加部を制御する。センスアンプ２は、記憶素子Ｒ１〜Ｒ３を介して流れる電流を電圧に変換して出力する。またコントローラは、各センスアンプ２に入力される電流の合計値をゼロにするように調整する。
【００１８】
各センスアンプ２に接続されている各記憶素子の書込み状態に応じて設定された抵抗値に応じて、各アンプ２に入力される電流の合計値が決まる。したがって、前記合計値をゼロにするように調整した後に、合計値がゼロにならない状態が検出されれば、記憶素子に設定した抵抗値が変化したことになる。これにより、記憶部１に発生した異常を検出できる。
【００１９】
また、電流調整部として、対応するアンプ２の入力部に配置される抵抗素子Ｒｐ及び電圧源Ｖｐの直列回路を備えるので、前者の抵抗値及び／又は後者の電圧を調整することで電流の合計値をゼロにできる。そして、コントローラが異常の発生を検出した際に、Ｉｓ２＝Ｉｓ１＝０となるように記憶素子Ｒ２１の抵抗値を再設定すればエラーを訂正できる。
【００２０】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図４に示すように、第２実施形態では、エラー検出抵抗Ｒｐ及び可変電圧源Ｖｐの直列回路に替えて、可変電流源Ｉｐが接続されている。可変電流源Ｉｐは、電流調整部に相当する。この場合、エラー検出は、第１実施形態と同様にＶ１＝Ｖ２＝Ｖ３＝＋Ｖｒｅａｄに設定した際に、電流源Ｉｐの電流によって出力電流Ｉｓ＝０となるように設定する。通常の読出し動作を行う際には、Ｉｐ＝０に設定する。第２実施形態についても、図５及び図６に示すように、電流源Ｉｐを行方向及び列方向に配置すれば、何れの記憶素子に異常が発生したかを特定できる。
【００２１】
図７に示すように、記憶部１の各列に対応して、可変電圧源Ｖ１，Ｖ２，Ｖ３に相当するドライブ回路４（１），４（２），４（３）が配置されている。ドライブ回路４は、図８に示すように、スイッチ５〜８及びオペアンプ９を備えている。スイッチ５〜７の一端は共通に接続されて、記憶部１の各列に接続されている。オペアンプ９の非反転入力端子には、電圧源Ｖ１，Ｖ２，Ｖ３からの電圧が入力される。
【００２２】
スイッチ５の他端は電流源Ｉｐに接続され、スイッチ６の他端は、コンパレータ１１の非反転入力端子；Ｖｃｍｐに接続されている。スイッチ７の他端は、オペアンプ９の反転入力端子に接続されている。スイッチ８は、オペアンプ９の帰還抵抗１０に並列に接続されている。
【００２３】
記憶部１の各行に対応して、センス回路１２（１），１２（２），１２（３）が配置されている。センス回路１２はドライブ回路４と同様に、スイッチ１４〜１６及びセンスアンプ２を備えている。スイッチ１３〜１５の一端は共通に接続されて、センス回路１２の入力端子となっている。スイッチ１３の他端は電流源Ｉｐに接続され、スイッチ１４の他端は端子Ｖｃｍｐに接続されている。スイッチ１５の他端は、オペアンプ３の反転入力端子に接続されている。スイッチ１６は、オペアンプ３の帰還抵抗Ｒｆに並列に接続されている。
【００２４】
図７に示すように、可変電流源１７を構成する電流源回路１８は、ＮチャネルＭＯＳＦＥＴ１９，メモリスタ２０及びオペアンプ２１を備えている。ＦＥＴ１９のドレインは電流Ｄ／Ａコンバータ２２に接続されており、ソースはメモリスタ２０を介してグランドに接続されている。オペアンプ２１の非反転入力端子には参照電圧Ｖｒｅａｄが与えられており、反転入力端子はＦＥＴ１９のソースに接続されている。オペアンプ２１の出力端子はＦＥＴ１９のゲートに接続されている。ＦＥＴ１９のドレインは、基準電流Ｉｒｅｆをシンクする端子である。
【００２５】
コントローラ２３は、電流源回路１８による基準電流Ｉｒｅｆを電流Ｄ／Ａコンバータ２２によりＮ（Ｎは実数）倍することで、電流Ｉｐ（＝Ｎ・Ｉｒｅｆ）を生成するように制御する。コントローラ２３により設定される各データは、不揮発性メモリ２４に記憶されている。
【００２６】
図７に示す構成について、記憶部１に対し通常の読出しを行う際には、ドライブ回路４ではスイッチ５及び６をオフにし、スイッチ７及び８をオンにしてボルテージフォロワとして機能させる。この時、記憶部１の各列には、Ｖｉｎに与えられる電圧が端子Ｉｏを介して印加される。また、センス回路１２ではスイッチ１３，１４及び１６をオフにし、スイッチ１５をオンにしてＩ／Ｖアンプとして機能させる。
【００２７】
一方、エラー検出を行う際には、センス回路１２ではスイッチ１３，１４をオンして、スイッチ１５及び１６をオフにする。これにより、電流Ｉｓ（＝Ｉｏ−Ｉｐ）がコンパレータ１１に出力される。電流Ｉｓ≠０であれば、当該電流はコンパレータ１１の高い入力抵抗により電圧Ｖｃｍｐに変換されるので、コントローラ２３は、コンパレータ１１の出力を介してエラーの発生を検出できる。
【００２８】
また、図８及び図９に示すように、ドライブ回路４とセンス回路１２とは対称な構成であるから、センス回路１２を行方向側のドライブ回路として機能させ、ドライブ回路４を列方向側のセンス回路として機能させて、同様に読出し及びエラー検出を行うことも可能である。
【００２９】
以上のように第２実施形態によれば、エラー検出抵抗Ｒｐ及び可変電圧源Ｖｐの直列回路に替えて、可変電流源Ｉｐ，１７を配置した。すなわち、第１実施形態のようにエラー検出抵抗Ｒｐを用いた場合、ディスターブの影響を受けて抵抗値が変化するおそれがある。これに対して第２実施形態のように可変電流源Ｉｐを用いれば、ディスターブの影響を排除できる。また、電流源回路１８にメモリスタ２０を備えて構成し、基準電流Ｉｒｅｆの温度特性が入力電流Ｉｏの温度特性に等しくなるようにしたので、温度による抵抗値への影響も排除できる。
尚、メモリスタ２０の長期信頼性に懸念がある場合は、可変電流源を、別途ＰＴＡＴ（Proportional To Absolute Temperature）回路等と組み合わせて構成すれば良い。
【００３０】
（第３実施形態）
図１０に示すように、第３実施形態では、第２実施形態と同様に電流源Ｉｐを用いてエラー検出を行う。この際に、記憶部１の第１行及び第２行にそれぞれ可変電流源Ｉｐｐ，Ｉｐｎを付与してエラー検出を並行して行い、減算器２５により第１行，第２行の電流差を求める。すなわち、第１行の検出結果電流をＩｓｐ，第２行の検出結果電流をＩｓｎとすると、減算器２５の出力電流Ｉｓは、Ｉｓ＝Ｉｓｐ−Ｉｓｎとなる。減算器２５は差動演算部に相当する。
【００３１】
次に、第３実施形態の作用について説明する。エラー検出を行う際には、先ず減算器２５の出力電流Ｉｓを参照し、Ｉｓ＝０か否かを判定する。Ｉｓ＝０であれば、第１行及び第２行に異常はないことになる。Ｉｓ≠０であれば、次にＩｓｐ,Ｉｓｎを参照し、それらが「０」でないか否かを判定して何れの行に異常があるかを特定する。その後、列側についても特定することで、異常があるセルを特定する。
【００３２】
以上のように第３実施形態によれば、減算器２５により２つの可変電流源Ｉｐｐ，Ｉｐｎを介して得られる検出電流Ｉｓｐ，Ｉｓｎの差を求めることで、エラー検出を迅速に行うことができる。
【００３３】
（第４実施形態）
図１１に示すように、第４実施形態では記憶部２６が差動構成となっており、同一行の正側,負側それぞれについて第３実施形態と同様に電流源Ｉｐｐ，Ｉｐｎを用いてエラー検出を行う。そして、正側,負側のセンスアンプ２ｐ，２ｎの各出力端子は、それぞれ差動増幅回路２７の負側,正側入力端子に接続されている。第４実施形態では、エラーとなったセルの抵抗値が最大値又は最小値を示しているため書換えが不能となった場合に、記憶部２６が差動構成であることを利用して対応する。
【００３４】
図１２に示すように、当初抵抗値の設定おけるＩｐｐ＝１００μＡ，Ｉｐｎ＝１０μＡがメモリに記憶されているとする。ケース１，２はエラーとなったセルＲ１ｐの抵抗値がそれぞれ最小，最大となった場合で、ケース３，４はエラーとなったセルＲ１ｎの抵抗値がそれぞれ最小，最大となった場合である。第４実施形態では、ケース１，４を修正対象とする。
【００３５】
図１３に示すように、故障が検出されたセルがＲ１ｐ又はＲ１ｎであり（Ｓ１）、それらの抵抗値が修正不能のケース１又は４であるとする（Ｓ２）。ケース１であれば、Ｉｐｐ≧Ｉｐｎであり（Ｓ３ｐ）、差動増幅回路２７の正側入力側の抵抗値が最小値である（Ｓ４ｐ（１））。メモリに記憶されているＩｐｐ，Ｉｐｎの値からそれらの差を演算し、符号を反転したものをΔＩｐ（＝−９０μＡ）とする。そして、Ｉｐｐ＝Ｉｐｎ＝０に設定する（Ｓ５）。
【００３６】
次に、正側のＩｓｐ＝０又はＶｏｕｔｎ＝０となるようにＩｐｐの値を変更する（Ｓ６ｐ）。その結果、Ｉｐｐ＝１０００μＡになったとする。続いて、
Ｉｐｎ＝Ｉｐｐ＋ΔＩｐ＝１０００μＡ−９０μＡ＝９１０μＡ
に設定する（Ｓ７ｐ）。これにより、（Ｉｐｐ−Ｉｐｎ）の値が当初設定値に等しくなる。それから、負側のＩｓｎ＝０若しくはＶｏｕｔｐ＝０又はＶｏｕｔ＝０となるように反転入力側のセルＲ１ｎの値を変更すると（Ｓ８ｐ）、メモリに記憶されているＩｐｐ，Ｉｐｎ，各セルの抵抗値のデータを更新する（Ｓ９）。
【００３７】
図１３において、ステップＳ４ｎ（１），Ｓ６ｎ〜Ｓ８ｎはケース４に対応する処理である。また、ステップＳ３ｎ→Ｓ４ｐ（２），Ｓ４ｎ（２）は、Ｉｐｐ＜Ｉｐｎで且つ抵抗値がケース２，３と同様の場合である。この場合には、ケース１，４と同様に対応が可能である。
【００３８】
以上のように第４実施形態によれば、記憶部２６が差動構成である場合に、差動対を構成する２つのセンスアンプ２ｐ，２ｎについて、それらの出力の差を演算する差動増幅回路２７を備える。そして、前記差がゼロでなければ、前記差をゼロとするように、対応するセルの抵抗値を調整するようにした。したがって、記憶部２６が差動構成であることを利用して発生したエラーを訂正できる。
【００３９】
（第５実施形態）
図１４に示すように、第５実施形態は、第４実施形態における差動増幅回路２７に、正側，負側入力端子を入れ替えるための４つのスイッチ２８ｐｎ，２８ｐｐ，２８ｎｎ，２８ｎｐを加えたものである。第５実施形態ではこの構成により、第４実施形態では修正できなかったケース２，３に対応する処理を行う。尚、図１５は、電流値Ｉｐｐ，Ｉｐｎに替えて、セルＲ１ｐ，Ｒ１ｎのコンダクタンス値ｇｍ＿Ｒ１ｐ，ｇｍ＿Ｒ１ｎと、それらの差Δｇｍとを示している。
【００４０】
図１６に示すフローチャートでは、ステップＳ４がステップＳ１０に置き換わっている。ステップＳ１０は、対応する各ステップＳ４における抵抗値の最大，最小の関係が逆になっていることで、これらがケース２，３に対応する条件となっている。そして、ステップＳ５，Ｓ６の間にステップＳ１１及びＳ１２を実行する。ステップＳ１１では、正側の抵抗値と負側の抵抗値を入れ替えるように書き換える。これにより、ケース２はケース４と同じ状態になり、セルＲ１ｐ側で抵抗値を調整できる。また、ケース３はケース１と同じ状態になるので、セルＲ１ｎ側で抵抗値を調整できる。
【００４１】
ステップＳ１２では、スイッチ２８ｐｐ及び２８ｎｎをオンすることで差動増幅回路２７の正側入力端子と負側入力端子を入れ替える。すなわち、図１３に示すケース２，３におけるコンダクタンス差Δｇｍは、正側，負側の入力端子を入れ替えないとすれば、ステップＳ８までの調整でそれぞれ−９０μＳとなる。そして、上記の入替えを行った結果としてΔｇｍ＝９０μＳとなる。
【００４２】
以上のように第５実施形態によれば、差動増幅回路２７を、正側入力端子と負側入力端子とを入れ替え可能に構成し、正側入力端子に接続されているセルの抵抗値と、負側入力端子に接続されているセルの抵抗値とを入れ替えるように書き換える。そして、正側入力端子と負側入力端子とを入れ替えることで前記差の絶対値をゼロとするように調整する。これにより、第４実施形態では修正できなかったケース２，３のエラーについても訂正することが可能になる。
【００４３】
（第６実施形態）
第４又は第５実施形態ではエラーが検出されたセルの修正を行うことができるが、その一方で、消費電力が増大したり、信頼性の低下が問題となる場合がある。これらのデメリットを回避することを優先する際には、やはりエラーセルを含む列を無効化して、予備用に用意してあるセル列と交換することが望ましい。
【００４４】
図１７に示す記憶部２９は、正側のセルＲ１ｐ〜Ｒ３ｐ，負側のセルＲ１ｎ〜Ｒ３ｎに対応する予備行として、セルＲ１１ｐ〜Ｒ１３ｐ，Ｒ１１ｎ〜Ｒ１３ｎを備えている。また、これらの行方向の予備セルとして、Ｒ０ｐ，Ｒ０ｎ，Ｒ１０ｐ，Ｒ１０ｎを備えている。
【００４５】
次に、第６実施形態の作用について説明する。図１９に示すように、ステップＳ２の実行後に、ステップＳ２１〜Ｓ２５を実行する。故障セルはＲ１ｐ又はＲ１ｎであり、第４又は第５実施形態のケース１〜４の全てに対応する。故障セルを含む差動対の電流Ｉｐｐ＝Ｉｐｎ＝０に設定する（Ｓ２１）。それから、対になる差動抵抗を、故障セルがＲ１ｐであればセルＲ１ｎを、故障セルの抵抗値Ｒｍｉｎ又はＲｍａｘと同じ値に書き換える（Ｓ２２）。その結果、各セルのコンダクタンス値は図１８に示すようになる。
【００４６】
次に、対になる差動抵抗，例えばＲ１ｎ以外の同じ列に接続されたセルＲ１１ｐ，Ｒ１１ｎの抵抗値を最大値に書き換えて当該列毎無効化し（Ｓ２３）、無効化した列に電流を流さないように基準電圧を印加する（Ｓ２４）。そして、予備列Ｒ０ｐ〜Ｒ１０ｎに、セルＲ１ｐ，Ｒ１ｎの当初抵抗値を書込む（Ｓ２５）。その後は、ステップＳ６ｐ，Ｓ８ｐ，Ｓ９を実行する。
【００４７】
図７相当図である図２０に示す構成では、予備セル列に対応してドライブ回路４（０）が配置されている。センス回路１２は、差動対に対応するセンス回路１２（１）ｐ，１２（１）ｎと、もう一組の差動対に対応するセンス回路１２（１０）ｐ，１２（１０）ｎとが配置されている。電流Ｄ／Ａコンバータ３２は、基準電圧Ｉｒｅｆに基づいて正側電流Ｉｐｐ及び負側電流Ｉｐｎを生成する。
【００４８】
差動増幅回路２７Ａは、差動増幅回路２７の出力端子とコンパレータ１１の入力端子との間に、出力分離用のスイッチ３３を設けた構成である。差動増幅回路２７Ａ（１）の入力端子はセンス回路１２（１）ｐ，１２（１）ｎの出力端子にそれぞれ接続されており、差動増幅回路２７Ａ（０）の入力端子はセンス回路１２（１０）ｐ，１２（１０）ｎの出力端子にそれぞれ接続されている。コントローラ３１は異常対応部に相当する。
【００４９】
以上のように第６実施形態によれば、異常が検出された差動セルを代替するための予備セルＲ０ｐ，Ｒ０ｎ，Ｒ１０ｐ，Ｒ１０ｎを備える。コントローラ３１は、差動増幅回路２７により検出されるセンスアンプ２ｐ，２ｎの出力の差がゼロでなければ、対応する差動セルの抵抗値を互いに等しくするように調整する。そして、前記差動セルを除いて、センスアンプ２の同じ入力端子に接続されている差動セルの抵抗値を最大値にして、異常が検出された差動セルを対応する予備セルに入れ替える。これにより、消費電力が増大することを回避できる。また、記憶部２９の信頼性を低下させることなく維持できる。
【００５０】
また、上記のような予備セルへの入換えは、第４又は第５実施形態のようにエラーが検出されたセルについて修正を行った結果、記憶部２９の抵抗値を調整しても修正が不能となった場合に行うようにしても良い。
【００５１】
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００５２】
図面中、１は記憶部、２はセンスアンプ、Ｒ１，Ｒ２，Ｒ３は記憶素子、Ｒｐは抵抗素子、Ｖｐは可変電圧源を示す。
【図１】
2018147159.tif 000003
【図２】
2018147159.tif 000004
【図３】
2018147159.tif 000005
【図４】
2018147159.tif 000006
【図５】
2018147159.tif 000007
【図６】
2018147159.tif 000008
【図７】
2018147159.tif 000009
【図８】
2018147159.tif 000010
【図９】
2018147159.tif 000011
【図１０】
2018147159.tif 000012
【図１１】
2018147159.tif 000013
【図１２】
2018147159.tif 000014
【図１３】
2018147159.tif 000015
【図１４】
2018147159.tif 000016
【図１５】
2018147159.tif 000017
【図１６】
2018147159.tif 000018
【図１７】
2018147159.tif 000019
【図１８】
2018147159.tif 000020
【図１９】
2018147159.tif 000021
【図２０】
2018147159.tif 000022