(57)【要約】  不揮発性メモリのデータ保持特性のばらつきを解消する。  記憶制御装置は履歴情報保持部とビット操作部とを備える。履歴情報保持部は、ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを第１の値とした後に任意のビットを第２の値とする第１のモードと、全てのビットを第２の値とした後に任意のビットを第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する。ビット操作部は、履歴情報が第１のモードを示している場合には第２のモードによりライト動作を行い、履歴情報が第２のモードを示している場合には第１のモードによりライト動作を行う。
2013108456.tif 000002
【特許請求の範囲】
【請求項１】
ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と
を具備する記憶制御装置。
【請求項２】
ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、
前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするために前記プレリードデータが前記第２の値を示しているビットのみを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするために前記プレリードデータが前記第１の値を示しているビットのみを前記第２の値に書き直す
請求項１記載の記憶制御装置。
【請求項３】
前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするためにライト対象のデータ領域の全てのビットを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするためにライト対象のデータ領域の全てのビットを前記第２の値に書き直す
請求項１記載の記憶制御装置。
【請求項４】
ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、
前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするためにライト対象のデータ領域の全てのビットを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするために前記プレリードデータが前記第１の値を示しているビットのみを前記第２の値に書き直す
請求項１記載の記憶制御装置。
【請求項５】
ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、
前記メモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と
を具備する記憶装置。
【請求項６】
前記メモリセルは可変抵抗素子である請求項５記載の記憶装置。
【請求項７】
ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、
前記メモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と、
前記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータと
を具備する情報処理システム。
【請求項８】
ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を取得する履歴情報取得手順と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作手順と
を具備する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、ワークメモリとしてＤＲＡＭ（Dynamic Random Access Memory）等が用いられる。このＤＲＡＭは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：Non-Volatile RAM）とに大別される。ここで、フラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ＲｅＲＡＭ（Resistance RAM）、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）などが挙げられる。【０００３】
ＲｅＲＡＭは、可変抵抗素子を用いた不揮発性メモリであり、データの書込みに先立ってブロック単位で消去を行う必要がなく、必要ページのみを直接書き換えることが可能である。この点で、浮遊ゲートの電化蓄積量による閾値をデータとして記憶するＮＡＮＤフラッシュメモリ等とは異なっている。可変抵抗素子は、高抵抗状態（ＨＲＳ：High Resistive State）と低抵抗状態（ＬＲＳ：Low Resistive State）の２状態で１ビットの情報を記録することができる。この可変抵抗素子は、多数回連続して同じ極性の電圧を印加した場合には、可変抵抗処置の抵抗値が変化してしまい抵抗分布を乱すという問題がある。たとえば、同じ極性が連続する回数が増えていくにしたがって、ＨＲＳがＬＲＳに、ＬＲＳがＨＲＳに変化してしまう。このように抵抗値が変化すると、次に逆極性の電圧を印加する際に、通常と同じ電圧では正しく記録が行えなかったり、正しく記録を行うために絶対値の大きい電圧が必要になったりするおそれがある。そこで、従来、ライト処理の際に既書込みデータを読み出してライトデータと比較を行って、必要なビットのみを選択的に書き換えおよび消去する書込み方法が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５２５７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、既書込みデータとライトデータとが同一データであれば書込みパルスを発生しないことにより、同一データを連続して書き込まないようにしている。しかしながら、このような制御を行った場合、書込みサイクルを重ねていくことで、あるビットが著しく多く書き換えられたり、あるビットが全く書き換えられなかったりと同一ページ内のメモリセルの間でもメモリセルの使用頻度が異なる。つまり、繰返し書込みの結果、同一ページ内のメモリセルの書換え可能回数（Endurance）にばらつきが生じ、さらにデータ消失までの時間（Retention）にばらつきが生じることになる。使用頻度の高いビットと低いビットとでは、メモリセルの特性にばらつきが生じ、抵抗分布を乱すことになる。ページ内のビット毎に書換え可能回数やデータ消失時間にばらつきが生じてくると、実使用上、書込みおよび消去サイクルをカウントして、当該ページのメモリとしての寿命を予測することが困難になる。また、読出しやその検証の閾値をダイナミックに変更するような制御を行おうとした場合、当該ページでのメモリセルの特性のばらつきは少ない方が好ましい。【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリのデータ保持特性のばらつきを解消することを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを上記第１の値とした後に任意のビットを上記第２の値とする第１のモードと、全てのビットを上記第２の値とした後に任意のビットを上記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、上記履歴情報が上記第１のモードを示している場合には上記第２のモードによりライト動作を行い、上記履歴情報が上記第２のモードを示している場合には上記第１のモードによりライト動作を行うビット操作部とを具備する記憶制御装置である。これにより、記憶制御装置において、メモリセルの所定のデータ領域についてライト動作を行うたびに、全てのビットが第１の値になるか、全てのビットが第２の値になるかが交互に繰り返されるという作用をもたらす。【０００８】
また、この第１の側面において、ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、上記ビット操作部は、上記第１のモードによるライト動作の際には全てのビットを上記第１の値とするために上記プレリードデータが上記第２の値を示しているビットのみを上記第１の値に書き直し、上記第２のモードによるライト動作の際には全てのビットを上記第２の値にするために上記プレリードデータが上記第１の値を示しているビットのみを上記第２の値に書き直すようにしてもよい。これにより、全てのビットを第１の値または第２の値にする際に、過剰消去または過剰プログラムを抑制するという作用をもたらす。【０００９】
また、この第１の側面において、上記ビット操作部は、上記第１のモードによるライト動作の際には全てのビットを上記第１の値とするためにライト対象のデータ領域の全てのビットを上記第１の値に書き直し、上記第２のモードによるライト動作の際には全てのビットを上記第２の値にするためにライト対象のデータ領域の全てのビットを上記第２の値に書き直すようにしてもよい。これにより、全てのビットを第１の値または第２の値にする際に、一括消去または一括プログラムするという作用をもたらす。なお、これにより、同一極性の書込みは最大２回までに抑制される。すなわち、可変抵抗素子に対する過剰消去または過剰プログラムがそれぞれ最大１回までに抑制される。【００１０】
また、この第１の側面において、ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、上記ビット操作部は、上記第１のモードによるライト動作の際には全てのビットを上記第１の値とするためにライト対象のデータ領域の全てのビットを上記第１の値に書き直し、上記第２のモードによるライト動作の際には全てのビットを上記第２の値にするために上記プレリードデータが上記第１の値を示しているビットのみを上記第２の値に書き直すようにしてもよい。これにより、全てのビットを第１の値にする際に過剰プログラムを抑制し、全てのビットを第２の値にする際に一括消去するという作用をもたらす。【００１１】
また、本技術の第２の側面は、ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、上記メモリセルの所定のデータ領域について、全てのビットを上記第１の値とした後に任意のビットを上記第２の値とする第１のモードと、全てのビットを上記第２の値とした後に任意のビットを上記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、上記履歴情報が上記第１のモードを示している場合には上記第２のモードによりライト動作を行い、上記履歴情報が上記第２のモードを示している場合には上記第１のモードによりライト動作を行うビット操作部とを具備する記憶装置である。これにより、メモリセルの所定のデータ領域において、ライト動作のたびに、全てのビットが第１の値になるか、全てのビットが第２の値になるかが交互に繰り返されるという作用をもたらす。【００１２】
なお、この第２の側面において、上記メモリセルは可変抵抗素子であってもよい。【００１３】
また、本技術の第３の側面は、ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、上記メモリセルの所定のデータ領域について、全てのビットを上記第１の値とした後に任意のビットを上記第２の値とする第１のモードと、全てのビットを上記第２の値とした後に任意のビットを上記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、上記履歴情報が上記第１のモードを示している場合には上記第２のモードによりライト動作を行い、上記履歴情報が上記第２のモードを示している場合には上記第１のモードによりライト動作を行うビット操作部と、上記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータとを具備する情報処理システムである。これにより、メモリセルの所定のデータ領域において、ホストコンピュータからのライト動作のたびに、全てのビットが第１の値になるか、全てのビットが第２の値になるかが交互に繰り返されるという作用をもたらす。【００１４】
また、本技術の第３の側面は、ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを上記第１の値とした後に任意のビットを上記第２の値とする第１のモードと、全てのビットを上記第２の値とした後に任意のビットを上記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を取得する履歴情報取得手順と、上記履歴情報が上記第１のモードを示している場合には上記第２のモードによりライト動作を行い、上記履歴情報が上記第２のモードを示している場合には上記第１のモードによりライト動作を行うビット操作手順とを具備する記憶制御方法である。これにより、メモリセルの所定のデータ領域についてライト動作のたびに、全てのビットが第１の値になるか、全てのビットが第２の値になるかが交互に繰り返されるという作用をもたらす。
【発明の効果】
【００１５】
本技術によれば、不揮発性メモリのデータ保持特性のばらつきを解消することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１６】
【図１】本技術の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本技術の第１の実施の形態における不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）３０１の一構成例を示す図である。
【図３】本技術の実施の形態における機能構成例を示す図である。
【図４】本技術の第１の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。
【図５】本技術の第１の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。
【図６】本技術の第１の実施の形態における全消去モードによるライト処理の手順例を示す流れ図である。
【図７】本技術の第１の実施の形態における全プログラムモードによるライト処理の手順例を示す流れ図である。
【図８】本技術の第２の実施の形態におけるＮＶＲＡＭ３０１の一構成例を示す図である。
【図９】本技術の第２の実施の形態における履歴情報テーブルの一構成例を示す図である。
【図１０】本技術の第２の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。
【図１１】本技術の第２の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。
【図１２】本技術の第２の実施の形態における全消去モードによるライト処理の手順例を示す流れ図である。
【図１３】本技術の第２の実施の形態における全プログラムモードによるライト処理の手順例を示す流れ図である。
【図１４】本技術の第３の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。
【図１５】本技術の第３の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。
【図１６】本技術の第３の実施の形態における全プログラムモードによるライト処理の手順例を示す流れ図である。
【発明を実施するための形態】
【００１７】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（全ビットを同一値にするためにプレリードを行う例）
２．第２の実施の形態（全ビットを同一値にする際にプレリードを行わない例）
３．第３の実施の形態（全ビットを同一値にする際に１回おきにプレリードを行う例）
【００１８】
＜１．第１の実施の形態＞
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ１００と、メモリ３００と、メモリ制御部２００とを備える。メモリ制御部２００およびメモリ３００は、メモリシステム４００を構成する。ホストコンピュータ１００は、メモリシステム４００に対してデータのリードまたはライトを要求するコマンドを発行するものである。
【００１９】
メモリ３００は、通常の揮発性メモリ３０３以外に、不揮発性メモリを含む。不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリ３０２と、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）３０１とに大別される。ここで、フラッシュメモリ３０２の代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、ＮＶＲＡＭ３０１の例としては、ＲｅＲＡＭ、ＰＣＲＡＭ、ＭＲＡＭなどが挙げられるが、この実施の形態では、特に可変抵抗素子を用いたＲｅＲＡＭを想定する。揮発性メモリ３０３は、作業領域として用いられ、また、管理用のデータを格納するためにも用いられる。さらに、揮発性メモリ３０３は、キャッシュとして用いることも可能である。揮発性メモリ３０３は、ＤＲＡＭ、ＳＲＡＭなどにより実現することができる。揮発性メモリ３０３に格納されるデータは、電源断に備えて、必要に応じてＮＶＲＡＭ３０１またはフラッシュメモリ３０２に保持しておいて、次に電源投入された際に再利用されるようにしてもよい。
【００２０】
メモリ制御部２００は、プロセッサ２１０と、内蔵メモリ２２０と、ＥＣＣ処理部２３０と、周辺回路２５０と、ホストインターフェース２０１と、メモリインターフェース２９１乃至２９３とを備える。これらはバス２８０により相互に接続される。
【００２１】
プロセッサ２１０は、ホストコンピュータ１００からの制御コマンドを解釈して実行する処理装置である。このプロセッサ２１０は、内蔵メモリ２２０における記憶領域をプログラム格納領域およびワーク領域としてプログラムを実行する。
【００２２】
内蔵メモリ２２０は、図示しない内蔵ＲＯＭおよび内蔵ＲＡＭを含むメモリである。プログラムは内蔵ＲＯＭに格納しておいてもよく、また、ＮＶＲＡＭ３０１またはフラッシュメモリ３０２から起動時に内蔵ＲＡＭに転送するようにしてもよい。この内蔵ＲＡＭは、ワーク領域や管理用データなどの一時格納など様々な用途に用いられる。
【００２３】
ＥＣＣ処理部２３０は、データの各々に対応して付加されるエラー訂正コード（ＥＣＣ：Error Correcting Code）の生成およびそのＥＣＣを用いたエラー訂正を行うものである。このＥＣＣ処理部２３０は、ハードウェアとして実現してもよく、また、プロセッサ２１０においてプログラムを実行することによりソフトウェアとして実現してもよい。
【００２４】
周辺回路２５０は、プロセッサ２１０の周辺回路であり、例えば内蔵タイマーや汎用入出力（ＧＰＩＯ：General Purpose Input/Output）等を含む。
【００２５】
ホストインターフェース２０１は、ホストコンピュータ１００とのやりとりを行うインターフェースである。メモリシステム４００はホストインターフェース２０１を介して接続され、ホストコンピュータ１００から、メモリ３００を制御するための制御コマンドを受信し、この制御コマンドによって制御されてメモリシステムとして動作する。このホストインターフェース２０１としては、例えば、ＳＡＴＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ｅＭＭＣ、ＵＳＢなどを利用することができる。
【００２６】
メモリインターフェース２９１は、ＮＶＲＡＭ３０１とのやりとりを行うインターフェースである。メモリインターフェース２９２は、フラッシュメモリ３０２とのやりとりを行うインターフェースである。メモリインターフェース２９３は、揮発性メモリ３０３とのやりとりを行うインターフェースである。
【００２７】
メモリシステム４００は、ライトコマンドによりメモリ３００へのデータの書込みを行い、リードコマンドによりメモリ３００からのデータの読出しを行う。ライトコマンドおよびリードコマンドは、対象データの存在する先頭論理アドレスおよびデータサイズをパラメータとして指定する。メモリシステム４００がライトコマンドのデータを受信すると、このデータに対してＥＣＣが付加され、不揮発性メモリ（ＮＶＲＡＭ３０１またはフラッシュメモリ３０２）に書き込まれる。
【００２８】
図２は、本技術の第１の実施の形態における不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）３０１の一構成例を示す図である。ＮＶＲＡＭ３０１は、メモリアレイ３１０と、センスアンプ３１４と、ライトバッファ３２０と、リードバッファ３３０と、論理評価部３４０と、制御部３５０と、制御インターフェース３０９とを備えている。
【００２９】
制御インターフェース３０９は、メモリ制御部２００との間の接続を司るインターフェースである。この制御インターフェース３０９には、ライトバッファ３２０、リードバッファ３３０、論理評価部３４０および制御部３５０が接続される。
【００３０】
メモリアレイ３１０は、ビット毎に所定の状態を保持するメモリセルを格子状に並べたものである。メモリアレイ３１０のメモリセルは可変抵抗素子により構成される抵抗変化型メモリである。メモリアレイ３１０は複数のページから構成される。ページ内には、データ３１１の他に、ＥＣＣ３１２と、履歴情報３１３とが格納されている。ＥＣＣ３１２は、データ３１１のエラー検出訂正を行うためのエラー訂正コードである。履歴情報３１３は前回のライト動作においていずれのモードが使用されたかを示すものである。ライト動作のモードが２種類の場合には、この履歴情報３１３は１ビットあれば足りるが、信頼性を向上させるために複数ビットを用いて、例えば多数決により判定するようにしてもよい。メモリアレイ３１０はセンスアンプ３１４を経由して、読出しまたは書込みが行われる。
【００３１】
センスアンプ３１４は、メモリアレイ３１０からの電圧を増幅するための増幅回路である。このセンスアンプ３１４には、ライトバッファ３２０、リードバッファ３３０、論理評価部３４０および制御部３５０が接続される。
【００３２】
ライトバッファ３２０は、メモリアレイ３１０にライトされるデータを一時的に保持するバッファである。このライトバッファ３２０には制御インターフェース３０９からのライトデータが信号線３０５を介して保持され、信号線３２８を介してセンスアンプ３１４に出力される。このライトバッファ３２０に保持されるライトデータは、ホストコンピュータ１００からライト対象として指示された新しいデータと、ＥＣＣ処理部２３０によって生成された新しいエラー訂正コードである。以下、これら新しいデータと新しいエラー訂正コードをライトデータと称する。
【００３３】
リードバッファ３３０は、メモリアレイ３１０からリードされたデータ３１１、ＥＣＣ３１２および履歴情報３１３を一時的に保持するバッファである。このリードバッファ３３０には、ライトの際には、ライトに先立って読み出されたプレリードデータ（データ３１１、ＥＣＣ３１２および履歴情報３１３）が保持される。このリードバッファ３３０にはセンスアンプ３１４からのリードデータが信号線３１８を介して保持され、信号線３３８を介して制御インターフェース３０９に出力される。
【００３４】
論理評価部３４０は、ライトバッファ３２０およびリードバッファ３３０に保持されたデータ（データ３１１、ＥＣＣ３１２および履歴情報３１３）に基づいて論理評価を行い、マスクデータを生成するものである。この論理評価部３４０において生成されたマスクデータは、信号線３４８を介してメモリアレイ３１０に供給される。また、履歴情報３１３は、信号線３４９を介して制御部３５０に供給される。
【００３５】
制御部３５０は、ＮＶＲＡＭ３０１内の各ブロックを制御するコントローラである。この制御部３５０は、例えばシーケンサにより実現される。この制御部３５０は、信号線３０６を介して制御インターフェース３０９からのリードまたはライト等の指示を受け取り、信号線３５７を介して制御インターフェース３０９に対する応答を伝達する。また、制御部３５０は、信号線３５８を介してセンスアンプ３１４に対する制御信号を伝達し、信号線３１９を介してセンスアンプ３１４からの応答を受け取る。また、制御部３５０は、信号線３５９を介して論理評価部３４０に対する制御信号を伝達する。
【００３６】
図３は、本技術の実施の形態における機能構成例を示す図である。ここでは、論理評価部３４０においてマスク生成部３４１の機能を有し、メモリアレイ３１０においてビット操作部３１５、メモリセル３１６およびリード処理部３１７の機能を有することを想定している。
【００３７】
マスク生成部３４１は、それぞれ対応するビットからなる消去マスクまたはプログラムマスクを生成するものである。消去マスクは、プレリードデータがＨレベルかつライトデータがＬレベルであるビットについてはＨレベルをＬレベルに消去する旨を示し、それ以外のビットについてはマスクする旨を示す。プログラムマスク、プレリードデータがＬレベルかつライトデータがＨレベルであるビットについてはＬレベルをＨレベルにプログラムする旨を示し、それ以外のビットについてはマスクする旨を示す。本技術の実施の形態では、プレリードデータとライトデータとの比較を行うことなく、マスクが生成され、ビット操作が行われる。後述のように、この第１の実施の形態においては、プレリードデータのみから、全てのビットを一度、全てＬまたは全てＨにするためのマスクデータが生成され、また、ライトデータのみから、任意のビットをＬまたはＨにするためのマスクデータが生成される。
【００３８】
ビット操作部３１５は、マスク生成部３４１によって生成された消去マスクまたはプログラムマスクに従って、メモリセル３１６のライトアドレスに係るデータ領域において、各ビットの消去またはプログラムを行う。すなわち、消去マスクが与えられた場合には消去する旨を示すビットについてのみＬレベルに消去する操作を行い、それ以外のビットは何も書換えを行わない。また、プログラムマスクが与えられた場合にはプログラムする旨を示すビットについてのみＨレベルにプログラムする操作を行い、それ以外のビットは何も書換えを行わない。
【００３９】
メモリセル３１６は、可変抵抗素子により構成される。可変抵抗素子の抵抗分布は大きく２つの分布に分かれており、それぞれ低抵抗状態（ＬＲＳ：Low-Resistance State）および高抵抗状態（ＨＲＳ：High-Resistance State）と称する。可変抵抗素子の高抵抗状態および低抵抗状態をそれぞれ論理０値または論理１値の何れかに対応付けることにより、可変抵抗素子はメモリセルとして機能する。論理０値または論理１値の何れに対応付けるかは任意である。高抵抗状態を論理０値に対応付けて、低抵抗状態を論理１値に対応付けた場合には、低抵抗状態のセルが高抵抗状態になるよう消去され、高抵抗状態のセルが低抵抗状態になるようプログラムされる。低抵抗状態を論理０値に対応付けて、高抵抗状態を論理１値に対応付けた場合には、高抵抗状態のセルが低抵抗状態になるよう消去され、低抵抗状態のセルが高抵抗状態になるようプログラムされる。
【００４０】
リード処理部３１７は、ライト動作に先立ち、メモリセル３１６のライトアドレスに係るデータ領域からデータ（データ３１１、ＥＣＣ３１２および履歴情報３１３）を読み出すものである。このようにしてライト動作に先立って読み出されたデータは、プレリードデータとしてリードバッファ３３０に保持される。なお、リード処理部３１７は、特許請求の範囲に記載のプレリード処理部の一例である。
【００４１】
この機能構成例における処理は、制御部３５０によって必要に応じて適宜繰り返される。この第１の実施の形態では、各データ領域についてライト動作が行われるたびに、以下の全消去モードによるライト動作と全プログラムモードによるライト動作とが交互に繰り返される。すなわち、全消去モードでは、リード処理部３１７によって得られたプレリードデータから、マスク生成部３４１において消去マスクが生成される。そして、その消去マスクに従ってビット操作部３１５において消去が行われることにより全ビットが論理０値になる。その後、マスク生成部３４１においてライトデータからプログラムマスクが生成されて、そのプログラムマスクに従ってビット操作部３１５において必要なビットのプログラムが行われることによりライトデータの書込みが完了する。一方、全プログラムモードでは、リード処理部３１７によって得られたプレリードデータから、マスク生成部３４１においてプログラムマスクが生成される。そして、そのプログラムマスクに従ってビット操作部３１５においてプログラムが行われることにより全ビットが論理１値になる。その後、マスク生成部３４１においてライトデータから消去マスクが生成されて、その消去マスクに従ってビット操作部３１５において必要なビットの消去が行われることによりライトデータの書込みが完了する。前回いずれのモードによりライト動作が行われたのかは、履歴情報３１３に記録される。なお、この例では、「Ｌ」レベルを論理０値に、「Ｈ」レベルを論理１値にそれぞれ対応付けている。
【００４２】
［ライト動作の具体例］
図４は、本技術の第１の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。この例では、「ＬＨＨＬＨＬＨＬ」が記憶されているデータ領域にライトデータ「ＬＬＬＬＨＨＨＨ」を書き込むことを想定する。この第１の実施の形態では、全消去モードと全プログラムモードとが交互に繰り返され、その際にプレリードが行われて、必要なビットについてのみ消去またはプログラムが行われる。
【００４３】
同図におけるａは、履歴情報３１３が前回のモードとして全プログラムモードを示している場合の動作例、すなわち全消去モードの動作例を示す。プレリードデータ「ＬＨＨＬＨＬＨＬ」において、「Ｌ」を示すビットについてさらに「Ｌ」に消去する書込みが発生しないように、マスク生成部３４１によって消去マスクが生成される。すなわち、「Ｌ」に消去すべきビットは現在の値が「Ｈ」のビット位置のみとなるように消去マスク「ＭＥＥＭＥＭＥＭ」が生成される。ここで、「Ｅ」は消去対象となるビットを、「Ｍ」は消去対象とならないビットをそれぞれ意味する。この消去マスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は全て「Ｌ」となる。
【００４４】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｈ」を示すビットについて書込みを行うために、マスク生成部３４１によってプログラムマスクが生成される。すなわち、ライトデータが「Ｈ」のビット位置のみに書込みが発生するようにプログラムマスク「ＭＭＭＭＰＰＰＰ」が生成される。ここで、「Ｐ」はプログラム対象となるビットを、「Ｍ」はプログラム対象とならないビットをそれぞれ意味する。このプログラムマスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００４５】
同図におけるｂは、履歴情報３１３が前回のモードとして全消去モードを示している場合の動作例、すなわち全プログラムモードの動作例を示す。プレリードデータ「ＬＨＨＬＨＬＨＬ」において、「Ｈ」を示すビットについてさらに「Ｈ」にプログラムする書込みが発生しないように、マスク生成部３４１によってプログラムマスクが生成される。すなわち、「Ｈ」にプログラムすべきビットは現在の値が「Ｌ」のビット位置のみとなるようにプログラムマスク「ＰＭＭＰＭＰＭＰ」が生成される。このプログラムマスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は全て「Ｈ」となる。
【００４６】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｌ」を示すビットについて書込みを行うために、マスク生成部３４１によって消去マスクが生成される。すなわち、ライトデータが「Ｌ」のビット位置のみに書込みが発生するようにプログラムマスク「ＥＥＥＥＭＭＭＭ」が生成される。この消去マスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００４７】
［情報処理システムの動作］
図５は、本技術の第１の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。まず、ＮＶＲＡＭ３０１に対してライトデータおよびライト指示が発行されると、メモリセル３１６からデータ３１１、ＥＣＣ３１２および履歴情報３１３のプレリードが行われる（ステップＳ９１１）。このプレリードは、リード処理部３１７により実行される。ライトデータはライトバッファ３２０に保持され、プレリードデータ（データ３１１、ＥＣＣ３１２および履歴情報３１３）はリードバッファ３３０に保持される。そして、プレリードされた履歴情報３１３が前回のモードとして全プログラムモードを示している場合（ステップＳ９１２）、全消去モードによるライト処理が行われる（ステップＳ９２０）。一方、プレリードされた履歴情報３１３が前回のモードとして全消去モードを示している場合、全プログラムモードによるライト処理が行われる（ステップＳ９４０）。
【００４８】
図６は、本技術の第１の実施の形態における全消去モードによるライト処理（ステップＳ９２０）の手順例を示す流れ図である。まず、プレリードデータにおいて、「Ｌ」を示すビットについてさらに「Ｌ」に消去する書込みが発生しないように、マスク生成部３４１によって消去マスクが生成される（ステップＳ９２２）。そして、この消去マスクに従ってデータ３１１、ＥＣＣ３１２および履歴情報３１３の消去処理が行われる（ステップＳ９２３）。このとき、この第１の実施の形態では、履歴情報３１３についても「Ｌ」に消去される。なお、この履歴情報３１３は、「Ｌ」であれば、前回は全消去モードによってライト処理が行われたことを示す。この消去の際には検証（Verify）が行われ（ステップＳ９２４）、検証に成功するまで繰り返される（ステップＳ９２５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ９２６：Ｙｅｓ）、エラー終了する。
【００４９】
次に、ライトデータがライトバッファ３２０にセットされる（ステップＳ９３１）。そして、ライトデータにおいて、「Ｈ」を示すビットについて書込みを行うために、マスク生成部３４１によってプログラムマスクが生成される（ステップＳ９３２）。そして、このプログラムマスクに従ってデータ３１１のプログラム処理が行われる（ステップＳ９３３）。このプログラムの際には検証（Verify）が行われ（ステップＳ９３４）、検証に成功するまで繰り返される（ステップＳ９３５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ９３６：Ｙｅｓ）、エラー終了する。
【００５０】
図７は、本技術の第１の実施の形態における全プログラムモードによるライト処理（ステップＳ９４０）の手順例を示す流れ図である。まず、プレリードデータにおいて、「Ｈ」を示すビットについてさらに「Ｈ」に消去する書込みが発生しないように、マスク生成部３４１によってプログラムマスクが生成される（ステップＳ９４２）。そして、このプログラムマスクに従ってデータ３１１、ＥＣＣ３１２および履歴情報３１３のプログラム処理が行われる（ステップＳ９４３）。このとき、この第１の実施の形態では、履歴情報３１３についても「Ｈ」にプログラムされる。なお、この履歴情報３１３は、「Ｈ」であれば、前回は全プログラムモードによってライト処理が行われたことを示す。このプログラムの際には検証（Verify）が行われ（ステップＳ９４４）、検証に成功するまで繰り返される（ステップＳ９４５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ９４６：Ｙｅｓ）、エラー終了する。
【００５１】
次に、ライトデータがライトバッファ３２０にセットされる（ステップＳ９５１）。そして、ライトデータにおいて、「Ｌ」を示すビットについて消去の書込みを行うために、マスク生成部３４１によって消去マスクが生成される（ステップＳ９５２）。そして、この消去マスクに従ってデータ３１１の消去処理が行われる（ステップＳ９５３）。この消去の際には検証（Verify）が行われ（ステップＳ９５４）、検証に成功するまで繰り返される（ステップＳ９５５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ９５６：Ｙｅｓ）、エラー終了する。
【００５２】
このように、本技術の第１の実施の形態によれば、各データ領域においてライト処理が行われるたびに全消去および全プログラムの状態が交互に生じるため、不揮発性メモリのデータ保持特性のばらつきを解消することができる。特に、この第１の実施の形態ではプレリード結果に応じて必要なビットのみを消去またはプログラムすることにより、過剰消去や過剰書込みを回避することができる。その際、ライトデータは参照されないため、ライトデータが確定する前にルックアヘッドで全消去または全プログラムの状態にすることができる。また、データの読出しと同時に履歴情報を読み出し、データの更新と同時に履歴情報を更新することにより、履歴情報に関する処理手順を簡略化することができる。また、履歴情報に基づいたライト処理がＮＶＲＡＭ３０１の内部で閉じて行われるため、その外部で意識する必要がない。
【００５３】
＜２．第２の実施の形態＞
［情報処理システムの構成］
図８は、本技術の第２の実施の形態におけるＮＶＲＡＭ３０１の一構成例を示す図である。前提とする情報処理システムの構成は第１の実施の形態と同様である。上述の第１の実施の形態では履歴情報をメモリアレイ３１０に履歴情報３１３として格納していたが、この第２の実施の形態では、履歴情報を内蔵メモリ２２０や揮発性メモリ３０３等において管理する。そのため、履歴情報は、ＮＶＲＡＭ３０１の外部から制御インターフェース３０９を介して制御部３５０および論理評価部３４０に供給される。これら以外のＮＶＲＡＭ３０１の構成は第１の実施の形態と同様である。また、機能構成についても第１の実施の形態と同様であるが、全消去モードと全プログラムモードの繰り返し制御は制御インターフェース３０９において実現される。ただし、全てのビットを一度、全てＬまたは全てＨにするためのマスクデータは生成されず、後述するように一括消去または一括プログラムされる。
【００５４】
図９は、本技術の第２の実施の形態における履歴情報テーブルの一構成例を示す図である。ここでは、履歴情報を内蔵メモリ２２０の履歴情報テーブルに格納することを想定している。内蔵メモリ２２０が揮発性のメモリである場合には、電源喪失による情報消失を防ぐために、所定の間隔でフラッシュメモリ３０２等の不揮発性メモリに退避してもよい。この履歴情報テーブルは、各データ領域に対応して、論理アドレス２２１と、物理アドレス２２２と、履歴情報２２３とを格納している。
【００５５】
論理アドレス２２１は、ホストコンピュータ１００においてデータ領域に割り当てられた論理アドレスである。物理アドレス２２２は、論理アドレス２２１に対応するＮＶＲＡＭ３０１の記憶領域を特定するためのアドレスである。ホストコンピュータ１００から論理アドレスが指定された場合、論理アドレス２２１と物理アドレス２２２との対によって物理アドレスへのアドレス変換が行われる。
【００５６】
履歴情報２２３は、論理アドレス２２１および物理アドレス２２２に対応する領域のライト処理の履歴情報であり、前回のライト動作においていずれのモードが使用されたかを示すものである。ライト動作のモードが２種類の場合には、この履歴情報２２３は１ビットあれば足りるが、信頼性を向上させるために複数ビットを用いて、例えば多数決により判定するようにしてもよい。
【００５７】
［ライト動作の具体例］
図１０は、本技術の第２の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。この例では、「ＬＨＨＬＨＬＨＬ」が記憶されているデータ領域にライトデータ「ＬＬＬＬＨＨＨＨ」を書き込むことを想定する。この第２の実施の形態では、全消去モードと全プログラムモードとが交互に繰り返され、その際にプレリードを行うことなく、ライト対象のデータ領域の全ビットに対して消去またはプログラムの書込みが行われる。
【００５８】
同図におけるａは、履歴情報２２３が前回のモードとして全プログラムモードを示している場合の動作例、すなわち全消去モードの動作例を示す。ライト対象のデータ領域は、プレリードされることなく、一括消去される。すなわち、ビット操作部３１５によってライト対象のデータ領域は全て「Ｌ」に消去される。
【００５９】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｈ」を示すビットについて書込みを行うために、マスク生成部３４１によってプログラムマスクが生成される。すなわち、ライトデータが「Ｈ」のビット位置のみに書込みが発生するようにプログラムマスク「ＭＭＭＭＰＰＰＰ」が生成される。ここで、「Ｐ」はプログラム対象となるビットを、「Ｍ」はプログラム対象とならないビットをそれぞれ意味する。このプログラムマスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００６０】
同図におけるｂは、履歴情報２２３が前回のモードとして全消去モードを示している場合の動作例、すなわち全プログラムモードの動作例を示す。ライト対象のデータ領域は、プレリードされることなく、一括プログラムされる。すなわち、ビット操作部３１５によってライト対象のデータ領域は全て「Ｈ」にプログラムされる。
【００６１】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｌ」を示すビットについて書込みを行うために、マスク生成部３４１によって消去マスクが生成される。すなわち、ライトデータが「Ｌ」のビット位置のみに書込みが発生するようにプログラムマスク「ＥＥＥＥＭＭＭＭ」が生成される。この消去マスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００６２】
［情報処理システムの動作］
図１１は、本技術の第２の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。まず、ＮＶＲＡＭ３０１に対してライトデータおよびライト指示が発行されると、履歴情報テーブルの履歴情報２２３が判定され、履歴情報２２３が前回のモードとして全プログラムモードを示している場合（ステップＳ９１３）、全消去モードによるライト処理が行われる（ステップＳ９６０）。一方、履歴情報２２３が前回のモードとして全消去モードを示している場合、全プログラムモードによるライト処理が行われる（ステップＳ９８０）。
【００６３】
図１２は、本技術の第２の実施の形態における全消去モードによるライト処理（ステップＳ９６０）の手順例を示す流れ図である。基本的な処理手順は図６の第１の実施の形態のものと同様であるが、この第２の実施の形態ではプレリードが行われないため、全消去のための消去マスクは生成されない。それに代えて、ライト対象のデータ領域の一括消去が行われる（ステップＳ９６３）。また、この第２の実施の形態ではメモリアレイ３１０において履歴情報を管理していないため、この時点では履歴情報の消去は行われず、最後の処理として履歴情報テーブルの履歴情報２２３が「Ｌ」に更新される（ステップＳ９７９）。なお、この履歴情報２２３は、「Ｌ」であれば、前回は全消去モードによってライト処理が行われたことを示す。
【００６４】
図１３は、本技術の第２の実施の形態における全プログラムモードによるライト処理（ステップＳ９８０）の手順例を示す流れ図である。基本的な処理手順は図７の第１の実施の形態のものと同様であるが、この第２の実施の形態ではプレリードが行われないため、全プログラムのためのプログラムマスクは生成されない。それに代えて、ライト対象のデータ領域の一括プログラムが行われる（ステップＳ９８３）。また、この第２の実施の形態ではメモリアレイ３１０において履歴情報を管理していないため、この時点では履歴情報のプログラムは行われず、最後の処理として履歴情報テーブルの履歴情報２２３が「Ｈ」にプログラムされる（ステップＳ９９９）。なお、この履歴情報２２３は、「Ｈ」であれば、前回は全プログラムモードによってライト処理が行われたことを示す。
【００６５】
このように、本技術の第２の実施の形態によれば、各データ領域においてライト処理が行われるたびに全消去および全プログラムの状態が交互に生じるため、不揮発性メモリのデータ保持特性のばらつきを解消することができる。特に、この第２の実施の形態ではライト動作に先立ってプレリードを行わないため、ライト処理を高速に行うことができる。この場合、ライト対象のデータ領域の状態によっては過剰消去または過剰プログラムが生じるおそれがあるが、同一極性の書込みは最大２回までに抑制される。すなわち、可変抵抗素子に対する過剰消去または過剰プログラムがそれぞれ最大１回までは許容でき、高速性をより重視する場合に、特に適したライト処理方式である。
【００６６】
［変形例］
この第２の実施の形態では、履歴情報をＮＶＲＡＭ３０１の外部の履歴情報テーブルに格納する構成を前提として、ライト動作に先立ってプレリードを行わないという処理手順を採用した。これに対し、履歴情報をＮＶＲＡＭ３０１の外部に格納する構成を前提としつつ、第１の実施の形態と同様にプレリード結果に基づいて消去マスクまたはプログラムマスクを生成して、消去またはプログラムを行うようにしてもよい。この場合、第１の実施の形態と同様に、過剰消去や過剰書込みを回避することができる。
【００６７】
＜３．第３の実施の形態＞
上述の第２の実施の形態では、履歴情報をＮＶＲＡＭ３０１の外部の履歴情報テーブルに格納する構成を前提として、ライト動作に先立ってプレリードを行わないという処理手順を採用した。一方、その変形例として、同じ構成のままプレリードを行うことができることを示した。この第３の実施の形態では、第２の実施の形態と同様の構成を前提として、全プログラムの際にはプレリード結果に基づいてプログラムマスクを生成してプログラムを行い、全消去の際には一括消去を行う処理手順を採用する。
【００６８】
［ライト動作の具体例］
図１４は、本技術の第３の実施の形態において可変抵抗素子に対して書込みを行う具体例を示す図である。この例では、「ＬＨＨＬＨＬＨＬ」が記憶されているデータ領域にライトデータ「ＬＬＬＬＨＨＨＨ」を書き込むことを想定する。この第３の実施の形態では、全消去モードと全プログラムモードとが交互に繰り返され、全消去モードの際にはプレリードが行われて必要なビットについてのみ消去が行われるが、全プログラムモードの際にはプレリードされずに一括プログラムが行われる。
【００６９】
同図におけるａは、履歴情報２２３が前回のモードとして全プログラムモードを示している場合の動作例、すなわち全消去モードの動作例を示す。ライト対象のデータ領域は、プレリードされることなく、一括消去される。すなわち、ビット操作部３１５によってライト対象のデータ領域は全て「Ｌ」に消去される。
【００７０】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｈ」を示すビットについて書込みを行うために、マスク生成部３４１によってプログラムマスクが生成される。すなわち、ライトデータが「Ｈ」のビット位置のみに書込みが発生するようにプログラムマスク「ＭＭＭＭＰＰＰＰ」が生成される。ここで、「Ｐ」はプログラム対象となるビットを、「Ｍ」はプログラム対象とならないビットをそれぞれ意味する。このプログラムマスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００７１】
同図におけるｂは、履歴情報２２３が前回のモードとして全消去モードを示している場合の動作例、すなわち全プログラムモードの動作例を示す。プレリードデータ「ＬＨＨＬＨＬＨＬ」において、「Ｈ」を示すビットについてさらに「Ｈ」にプログラムする書込みが発生しないように、マスク生成部３４１によってプログラムマスクが生成される。すなわち、「Ｈ」にプログラムすべきビットは現在の値が「Ｌ」のビット位置のみとなるようにプログラムマスク「ＰＭＭＰＭＰＭＰ」が生成される。このプログラムマスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は全て「Ｈ」となる。
【００７２】
また、ライトデータ「ＬＬＬＬＨＨＨＨ」において、「Ｌ」を示すビットについて書込みを行うために、マスク生成部３４１によって消去マスクが生成される。すなわち、ライトデータが「Ｌ」のビット位置のみに書込みが発生するようにプログラムマスク「ＥＥＥＥＭＭＭＭ」が生成される。この消去マスクを利用することにより、ビット操作部３１５によってライト対象のデータ領域は「ＬＬＬＬＨＨＨＨ」となる。
【００７３】
［情報処理システムの動作］
図１５は、本技術の第３の実施の形態における情報処理システムのライト処理手順例を示す流れ図である。まず、ＮＶＲＡＭ３０１に対してライトデータおよびライト指示が発行されると、履歴情報テーブルの履歴情報２２３が判定され、履歴情報２２３が前回のモードとして全プログラムモードを示している場合（ステップＳ９１４）、全消去モードによるライト処理が行われる（ステップＳ９６０）。この全消去モードによるライト処理は、図１２により説明した第２の実施の形態の処理手順と同様である。一方、履歴情報２２３が前回のモードとして全消去モードを示している場合、全プログラムモードによるライト処理が行われる（ステップＳ８４０）。この全プログラムモードによるライト処理は、プレリードを伴う第１の実施の形態の処理手順と同様であるが、履歴情報をＮＶＲＡＭ３０１の外部の履歴情報テーブルに格納する構成を前提とする点で、以下のように異なる。
【００７４】
図１６は、本技術の第３の実施の形態における全プログラムモードによるライト処理（ステップＳ８４０）の手順例を示す流れ図である。まず、リード処理部３１７によってメモリセル３１６からデータ３１１、ＥＣＣ３１２のプレリードが行われる（ステップＳ８４１）。そして、このプレリードデータにおいて、「Ｈ」を示すビットについてさらに「Ｈ」に消去する書込みが発生しないように、マスク生成部３４１によってプログラムマスクが生成される（ステップＳ８４２）。そして、このプログラムマスクに従ってデータ３１１およびＥＣＣ３１２のプログラム処理が行われる（ステップＳ８４３）。このプログラムの際には検証（Verify）が行われ（ステップＳ８４４）、検証に成功するまで繰り返される（ステップＳ８４５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ８４６：Ｙｅｓ）、エラー終了する。
【００７５】
次に、ライトデータがライトバッファ３２０にセットされる（ステップＳ８５１）。そして、ライトデータにおいて、「Ｌ」を示すビットについて消去の書込みを行うために、マスク生成部３４１によって消去マスクが生成される（ステップＳ８５２）。そして、この消去マスクに従ってデータ３１１およびＥＣＣ３１２の消去処理が行われる（ステップＳ９５３）。この消去の際には検証（Verify）が行われ（ステップＳ８５４）、検証に成功するまで繰り返される（ステップＳ８５５：Ｎｏ）。ただし、繰返し上限回数に達すると（ステップＳ８５６：Ｙｅｓ）、エラー終了する。
【００７６】
この第３の実施の形態ではメモリアレイ３１０において履歴情報を管理していないため、ステップＳ８４３では履歴情報のプログラムは行われず、最後の処理として履歴情報テーブルの履歴情報２２３が「Ｈ」にプログラムされる（ステップＳ８５９）。なお、この履歴情報２２３は、「Ｈ」であれば、前回は全プログラムモードによってライト処理が行われたことを示す。
【００７７】
このように、本技術の第３の実施の形態によれば、各データ領域においてライト処理が行われるたびに全消去および全プログラムの状態が交互に生じるため、不揮発性メモリのデータ保持特性のばらつきを解消することができる。特に、この第３の実施の形態では全プログラムの際のみプレリードを行うようにしたことにより、ライト処理の高速化と過剰全プログラムの防止とをバランス良く実現することができる。
【００７８】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。例えば、メモリセルが過剰消去または過剰プログラムがどの程度許容できるかによっては、１ビット以上の履歴を用いて、一方のモードを複数回連続させた後に他方のモードに切り替えるようにしてもよい。
【００７９】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【００８０】
なお、本技術は以下のような構成もとることができる。
（１）ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と
を具備する記憶制御装置。
（２）ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、
前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするために前記プレリードデータが前記第２の値を示しているビットのみを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするために前記プレリードデータが前記第１の値を示しているビットのみを前記第２の値に書き直す
前記（１）に記載の記憶制御装置。
（３）前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするためにライト対象のデータ領域の全てのビットを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするためにライト対象のデータ領域の全てのビットを前記第２の値に書き直す
前記（１）に記載の記憶制御装置。
（４）ライト動作に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部をさらに具備し、
前記ビット操作部は、前記第１のモードによるライト動作の際には全てのビットを前記第１の値とするためにライト対象のデータ領域の全てのビットを前記第１の値に書き直し、前記第２のモードによるライト動作の際には全てのビットを前記第２の値にするために前記プレリードデータが前記第１の値を示しているビットのみを前記第２の値に書き直す
前記（１）に記載の記憶制御装置。
（５）ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、
前記メモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と
を具備する記憶装置。
（６）前記メモリセルは可変抵抗素子である前記（５）に記載の記憶装置。
（７）ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルと、
前記メモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を保持する履歴情報保持部と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作部と、
前記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータと
を具備する情報処理システム。
（８）ビット毎に第１の値または第２の値の何れか一方の値を保持するメモリセルの所定のデータ領域について、全てのビットを前記第１の値とした後に任意のビットを前記第２の値とする第１のモードと、全てのビットを前記第２の値とした後に任意のビットを前記第１の値とする第２のモードとのうち、前回のライト動作の際に何れが採用されたかを示す履歴情報を取得する履歴情報取得手順と、
前記履歴情報が前記第１のモードを示している場合には前記第２のモードによりライト動作を行い、前記履歴情報が前記第２のモードを示している場合には前記第１のモードによりライト動作を行うビット操作手順と
を具備する記憶制御方法。
【符号の説明】
【００８１】
１００  ホストコンピュータ
２００  メモリ制御部
２０１  ホストインターフェース
２１０  プロセッサ
２２０  内蔵メモリ
２３０  ＥＣＣ処理部
２５０  周辺回路
２８０  バス
２９１〜２９３  メモリインターフェース
３００  メモリ
３０１  不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）
３０２  フラッシュメモリ
３０３  揮発性メモリ
３０９  制御インターフェース
３１０  メモリアレイ
３１４  センスアンプ
３１５  ビット操作部
３１６  メモリセル
３１７  リード処理部
３２０  ライトバッファ
３３０  リードバッファ
３４０  論理評価部
３４１  マスク生成部
３５０  制御部
４００  メモリシステム
【図１】
2013108456.tif 000003
【図２】
2013108456.tif 000004
【図３】
2013108456.tif 000005
【図４】
2013108456.tif 000006
【図５】
2013108456.tif 000007
【図６】
2013108456.tif 000008
【図７】
2013108456.tif 000009
【図８】
2013108456.tif 000010
【図９】
2013108456.tif 000011
【図１０】
2013108456.tif 000012
【図１１】
2013108456.tif 000013
【図１２】
2013108456.tif 000014
【図１３】
2013108456.tif 000015
【図１４】
2013108456.tif 000016
【図１５】
2013108456.tif 000017
【図１６】
2013108456.tif 000018
【国際調査報告】
2013108456.tif 000019
2013108456.tif 000020
2013108456.tif 000021
2013108456.tif 000022