(57)【要約】      （修正有）【課題】改善された特性を有するメモリシステムを提供する。【解決手段】メモリシステムは、メモリセルと、第１電圧Ｖｐｒ１を印加されたメモリセルから読み出された第１読み出しデータと第２電圧Ｖｐｒ２を印加されたメモリセルから読み出された第２読み出しデータを比較するように構成されている第１コントローラと、を備える記憶装置と、第２コントローラと、を含む。第１電圧Ｖｐｒ１は、第２電圧Ｖｐｒ２と異なる。第１読み出しデータと第２読み出しデータを比較することで劣化したメモリセルを特定する。【選択図】図１１
2018163720.tif 000002
【特許請求の範囲】
【請求項１】
可変の抵抗値を有するメモリセルと、
第１電圧を印加された前記メモリセルから読み出された第１読み出しデータと第２電圧を印加された前記メモリセルから読み出された第２読み出しデータを比較するように構成されている第１コントローラと、
を備える記憶装置と、
第２コントローラと、
を備え、
前記第１電圧は、前記第２電圧と異なり、
前記第１読み出しデータは、第１値または第２値を有し、
前記第１値は、前記第２値と異なり、
前記第２読み出しデータは、前記第１値または前記第２値を有する、
メモリシステム。
【請求項２】
前記メモリセルから読み出されたデータが前記第１値および前記第２値のいずれを有するかが判断され、
前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルに前記第２値のデータが書き込まれる、
請求項１のメモリシステム。
【請求項３】
前記第１コントローラは、読み出し電圧を印加された前記メモリセルから読み出されたデータが前記第１値または前記第２値のいずれを有するかを判断するようにさらに構成されており、
前記第１電圧は、前記読み出し電圧より低く、
前記第２電圧は、前記読み出し電圧より高い、
請求項２のメモリシステム。
【請求項４】
前記第１コントローラは、
前記読み出し電圧を印加された前記メモリセルからデータを読み出し、
前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルへの前記第２値のデータの前記書き込みを行う、
ようにさらに構成されている、
請求項２のメモリシステム。
【請求項５】
前記第２コントローラは、
前記読み出し電圧を印加された前記メモリセルから読み出されかつ前記第１値または前記第２値を有する第３読み出しデータを受け取り、
前記第３読み出しデータが前記第１値を有する場合、前記メモリセルに前記第２値のデータを書き込むことを前記記憶装置に指示する、
ように構成されている、
請求項３のメモリシステム。
【請求項６】
前記第１コントローラは、第３電圧を印加された前記メモリセルから読み出された第３読み出しデータと第４電圧を印加された前記メモリセルから読み出された第４読み出しデータを比較するようにさらに構成されており、
前記第３電圧は、前記第１電圧より高く、前記読み出し電圧より低く、
前記第４電圧は、前記読み出し電圧より高く、前記第２電圧より低く、
前記第３読み出しデータは、前記第１値または前記第２値を有し、
前記第４読み出しデータは、前記第１値または前記第２値を有する、
請求項３のメモリシステム。
【請求項７】
前記第２コントローラは、
前記読み出し電圧を印加された前記メモリセルから読み出されかつ前記第１値または前記第２値を有する第５読み出しデータを受け取り、
前記第５読み出しデータが前記第１値を有する場合、前記メモリセルに前記第２値のデータを書き込むことを前記記憶装置に指示する、
ように構成されている、
請求項６のメモリシステム。
【請求項８】
第２メモリセルをさらに備え、
前記第１コントローラは、
前記第１電圧を印加された前記第２メモリセルから読み出された第３読み出しデータと前記第２電圧を印加された前記第２メモリセルから読み出された第４読み出しデータを比較し、
第１計数値を計数する、
ようにさらに構成されており、
前記第１計数値は、前記第１読み出しデータの値と前記第２読み出しデータの値が異なる場合の前記メモリセルと、前記第３読み出しデータの値と前記第４読み出しデータの値が異なる場合の前記第２メモリセルの数である、
請求項１のメモリシステム。
【請求項９】
前記第１計数値が第１基準値を超えておりかつ前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルに前記第２値のデータが書き込まれる、
請求項８のメモリシステム。
【請求項１０】
前記第１コントローラは、前記第１計数値が第１基準値を超えておりかつ前記メモリセルから読み出されたデータが前記第１値を有する場合に、前記メモリセルへの前記第２値のデータの前記書き込みを行うようにさらに構成されている、
請求項９のメモリシステム。
【請求項１１】
前記第２コントローラは、前記第１計数値が第１基準値を超えておりかつ前記メモリセルから読み出されたデータが前記第１値を有する場合に、前記メモリセルに前記第２値のデータを書き込むことを前記記憶装置に指示する、
ようにさらに構成されている、
請求項９のメモリシステム。
【請求項１２】
前記第１コントローラは、
第３電圧を印加された前記メモリセルから読み出された第５読み出しデータと第４電圧を印加された前記メモリセルから読み出された第６読み出しデータを比較し、
前記第３電圧を印加された前記第２メモリセルから読み出された第７読み出しデータと前記第４電圧を印加された前記第２メモリセルから読み出された第８読み出しデータを比較し、
第２計数値を計数する、
ようにさらに構成されており、
前記第３電圧は、前記第１電圧より高く、前記読み出し電圧より低く、
前記第４電圧は、前記読み出し電圧より高く、前記第２電圧より低く、
前記第２計数値は、前記第５読み出しデータの値と前記第６読み出しデータの値が異なる場合の前記メモリセルと、前記第７読み出しデータの値と前記第８読み出しデータの値が異なる場合の前記第２メモリセルの数である、
請求項８のメモリシステム。
【請求項１３】
前記第２コントローラは、前記第１計数値が第１基準値を超えている場合、前記第２計数値を計数することを前記記憶装置に指示するように構成されている、
請求項１２のメモリシステム。
【請求項１４】
前記第２コントローラは、前記第２計数値が第２基準値以下でありかつ前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルに前記第２値のデータを書き込むことを前記記憶装置に指示するようにさらに構成されている、
請求項１２のメモリシステム。
【請求項１５】
第２メモリセルをさらに備え、
前記第２メモリセルから読み出されたデータが前記第１値を有しかつ前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルによって前記第２値のデータが保持されていることを示す第３読み出しデータが生成される、
請求項１のメモリシステム。
【請求項１６】
前記第１コントローラは、前記メモリセルからの読み出しを指示されると、前記第３読み出しデータを前記第２コントローラに送信するように構成されている、
請求項１５のメモリシステム。
【請求項１７】
前記第２コントローラは、
前記メモリセルから読み出されたデータを受け取り、
前記第２メモリセルから読み出されたデータを受け取り、
前記第２メモリセルから読み出されたデータが前記第１値を有しかつ前記メモリセルから読み出されたデータが前記第１値を有する場合、前記メモリセルによって前記第２値のデータが保持されていることを示す第３読み出しデータを生成する、ようにさらに構成されている、
請求項１５のメモリシステム。
【請求項１８】
可変の抵抗値を有する第１メモリセルと、
可変の抵抗値を有する第２メモリセルと、
コントローラと、
を備え、
前記第１メモリセルから読み出されたデータは、第１値または第２値を有し、
前記第２メモリセルから読み出されたデータは、前記第１値または前記第２値を有し、
前記第１メモリセルから読み出された第１読み出しデータは前記第１値を有し、前記第１メモリセルに書き込まれる第１書き込みデータは前記第２値を有し、
前記コントローラは、前記第２メモリセルから読み出された第２読み出しデータの値と第２書き込みデータの値が異なる場合の前記第１メモリセルと前記第２メモリセルの数を基準値と比較し、
前記数が基準値を超える場合、前記第１メモリセルに前記第１値のデータが書き込まれる、
メモリシステム。
【請求項１９】
前記メモリシステムは、
前記第１メモリセルと、前記第２メモリセルと、前記コントローラと、を備える記憶装置と、
第２コントローラと、
を備え、
前記コントローラは、
前記第２コントローラから前記第１書き込みデータおよび前記第２書き込みデータを受け取り、
前記数が基準値を超える場合、前記第１メモリセルへの前記第１値のデータの前記書き込みを行う、
請求項１８のメモリシステム。
【請求項２０】
前記メモリシステムは、前記第１メモリセルと、前記第２メモリセルと、第２コントローラと、を備える記憶装置を備え、
前記第２コントローラは、
前記第１読み出しデータおよび前記第２読み出しデータを受け取り、
前記第２読み出しデータの値が前記第２書き込みデータ値と異なりかつ前記数が基準値を超える場合、前記第１メモリセルに前記第１値のデータを書き込むことを前記記憶装置に指示する、
ようにさらに構成されている、
請求項１８のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概してメモリシステムに関する。
【背景技術】
【０００２】
ＲｅＲＡＭ（Resistive Random Access Memory）と呼ばれる記憶装置が知られている。ＲｅＲＡＭは、メモリセルの抵抗値の変化を使用してデータを保持する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１４／０２５４２４２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
改善された特性を有するメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態によるメモリシステムは、メモリシステムは、メモリセルと、第１電圧を印加されたメモリセルから読み出された第１読み出しデータと第２電圧を印加されたメモリセルから読み出された第２読み出しデータを比較するように構成されている第１コントローラと、を備える記憶装置と、第２コントローラと、を含む。第１電圧は、第２電圧と異なる。第１読み出しデータは、第１値または第２値を有する。第１値は第２値と異なる。第２読み出しデータは、第１値または第２値を有する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態のメモリシステムの機能ブロックを示す。
【図２】第１実施形態の記憶装置の機能ブロックを示す。
【図３】第１実施形態のメモリセルアレイの一部の要素および接続を示す。
【図４】第１実施形態のメモリセルアレイの一部の立体構造を示す。
【図５】第１実施形態のメモリセルアレイの一部の断面構造を示す
【図６】第１実施形態のメモリセルの抵抗値の分布と種々の読み出し電圧を示す。
【図７】第１実施形態のメモリセルの抵抗状態の特徴を示す。
【図８】第１実施形態のデータ入出力回路の要素および接続を示す。
【図９】第１実施形態のメモリシステムで使用される読み出し電圧を示す。
【図１０】第１実施形態のメモリシステムでの１セルセットに書き込まれるデータの内訳を示す。
【図１１】第１実施形態のメモリシステムの動作のフローを示す。
【図１２】図１１に続くフローを示す。
【図１３】第１実施形態でのデータ検査の間の信号ＤＱおよび各所でのデータの第１例を示す。
【図１４】第１実施形態でのデータ検査の間の信号ＤＱおよび各所でのデータの第２例を示す。
【図１５】第１実施形態でのデータ検査の間の信号ＤＱおよび各所でのデータの第３例を示す。
【図１６】第１実施形態でのデータ検査の間の信号ＤＱおよび各所でのデータの第４例を示す。
【図１７】第１実施形態でのデータ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。
【図１８】第１実施形態の変形例のメモリシステムでの１セルセットに書き込まれるデータの内訳を示す。
【図１９】第１実施形態の変形例でのデータ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。
【図２０】第２実施形態のメモリシステムの動作のフローの一部を示す。
【図２１】第２実施形態でのデータ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。
【図２２】第３実施形態でのデータ読み出しの間の信号ＤＱおよび各所でのデータの例を示す。
【図２３】第４実施形態でのデータ読み出しの間の信号ＤＱおよび各所でのデータの例を示す。
【図２４】第５実施形態のメモリシステムの動作のフローを示す。
【図２５】第５実施形態での条件付き反転書き込みの間の信号ＤＱおよび各所でのデータの例を示す。
【図２６】第６実施形態のメモリシステムの動作のフローを示す。
【図２７】第６実施形態での条件付き反転書き込みの間の信号ＤＱおよび各所でのデータの例を示す。
【発明を実施するための形態】
【０００７】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。ある実施形態についての記述はすべて、明示的にまたは自明的に排除されない限り、別の実施形態の記述としても当てはまる。
【０００８】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。また、各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。
【０００９】
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【００１０】
本明細書および特許請求の範囲において、ある第１要素が別の第２要素に「接続されている」とは、第１要素が直接的または常時あるいは選択的に導電性となる要素を介して第２要素に接続されていることを含む。
【００１１】
（第１実施形態）
＜１−１−１．構成（構造）＞
図１は、第１実施形態のメモリシステムの機能ブロックを示す。図１に示されるように、メモリシステム１００は、記憶装置１およびメモリコントローラ２を含む。メモリシステム１００は、ホスト装置２００と通信する。
【００１２】
メモリコントローラ２は、ホスト装置２００から命令を受け取り、受け取られた命令に基づいて記憶装置１を制御する。メモリコントローラ２は、ＣＰＵ（central processing unit）２１、ＲＯＭ（read only memory）２２、ＲＡＭ２３、ＥＣＣ（error correction code）回路２４、メモリインターフェイス２５、ホストインターフェイス２６等の要素を含む。
【００１３】
ＲＯＭ２２に保持されているプログラムがＣＰＵ２１によって実行されることによって、メモリコントローラ２は種々の動作を行う。ＲＡＭ２３は、一時的なデータを保持する。
【００１４】
ＥＣＣ回路２４は、記憶装置１に書き込まれる実体的データに、実体的データの誤り訂正のための誤り訂正用データを付す。記憶装置１に書き込まれるデータ（書き込みデータ）は、実体的データと、対応する誤り訂正用データと、を含む。また、ＥＣＣ回路２４は、記憶装置１から読み出されたデータ（読み出しデータ）を、読み出しデータ中の誤り訂正用データを使用して誤りを検出し、かつ誤りがある場合は誤りを訂正し、読み出しデータ中の正しい（誤りを含んでいない）実体的データを得る。
【００１５】
メモリインターフェイス２５は、記憶装置１と接続され、メモリコントローラ２と記憶装置１との通信を司る。ホストインターフェイス２６は、バスを介してホスト装置２００と接続され、メモリコントローラ２とホスト装置２００との通信を司る。
【００１６】
図２は、記憶装置１の機能ブロックを示す。図２に示されるように、記憶装置１は、メモリセルアレイ１１、シーケンサ（コントローラ）１２、ワード線（ＷＬ）デコーダ１３、ゲート線（ＳＧＬ）デコーダ１４、グローバルビット線（ＧＢＬ）デコーダ１５、センスアンプ１６、およびデータラッチセット１７を含む。
【００１７】
メモリセルアレイ１１は、複数のメモリセルＭＣを含む。ある複数のメモリセルＭＣは１つのページを構成する。各メモリセルＭＣは第１端において１つのワード線ＷＬと接続され、第２端において１つのビット線ＢＬと接続される。各ビット線ＢＬは、トランジスタＳＴ（図示せず）を介して１つのグローバルビット線ＧＢＬと接続されている。１つのグローバルビット線ＧＢＬには、対応するトランジスタＳＴ（図示せず）を介して複数のビット線ＢＬが接続されている。各トランジスタＳＴは、１つのゲート線ＳＧＬによってオンし、すなわち、当該トランジスタＳＴの両端を電気的に接続する。メモリセルアレイ１１の詳細は後述される。ビット線ＢＬは、グローバルビット線ＧＢＬとの区別のために、ローカルビット線と称される場合がある。
【００１８】
ＷＬデコーダ１３は、複数のワード線ＷＬと接続されており、ワード線選択部およびワード線ドライバを含む。ワード線選択部は、シーケンサ１２からワード線アドレスを示す信号（ＷＬアドレス信号）を受け取り、受け取られたＷＬアドレス信号により示されるＷＬアドレスを付されたワード線ＷＬを選択する。ワード線ドライバは、シーケンサ１２の制御に従って、選択されたワード線（選択ワード線）ＷＬおよび非選択のワード線（非選択ワード線）ＷＬに、データの読み出し、書き込み、および消去の間に、必要な電圧を印加する。
【００１９】
ＳＧＬデコーダ１４は、複数のゲート線ＳＧＬと接続されており、ゲート線選択部およびゲート線ドライバを含む。ゲート線選択部は、シーケンサ１２からゲート線アドレスを示す信号（ＳＧＬアドレス信号）を受け取り、受け取られたＳＧＬアドレス信号により示されるゲート線アドレスを付されたゲート線ＳＧＬを選択する。ゲート線ドライバは、シーケンサ１２の制御に従って、選択されたゲート線ＳＧＬ及び非選択のゲート線ＳＧＬに、データの読み出し、書き込み、および消去の間、必要な電圧を印加する。
【００２０】
ＧＢＬデコーダ１５は、複数のグローバルビット線ＧＢＬと接続されており、グローバルビット線選択部およびグローバルビット線ドライバを含む。グローバルビット線選択部は、シーケンサ１２からグローバルビット線アドレスを示す信号（ＧＢＬアドレス信号）を受け取り、受け取られたＧＢＬアドレス信号により示されるＧＢＬアドレスを付されたグローバルビット線ＧＢＬを選択する。グローバルビット線ドライバは、シーケンサ１２の制御に従って、選択されたグローバルビット線（選択グローバルビット線）ＧＢＬ及び非選択のグローバルビット線（非選択グローバルビット線）ＧＢＬに、データの読み出し、書き込み、および消去の間、必要な電圧を印加する。
【００２１】
センスアンプ１６は、ＧＢＬデコーダ１５によって選択されたグローバルビット線ＧＢＬを流れる電流を受け取り、受け取られた電流に基づいて、読み出し対象のメモリセルＭＣに保持されているデータを割り出す。
【００２２】
データラッチセット１７は、センスアンプ１６からのデータおよびシーケンサ１２からのデータを保持し、複数のデータラッチを含む。
【００２３】
シーケンサ１２は、メモリコントローラ２との間で信号ＤＱおよび制御信号を送受信する。信号ＤＱは、例えば８ビットの幅を有し、データの実体であり、コマンド、データ、アドレス信号、ステータスデータ等を含む。制御信号は、信号ＲＹ／￣ＢＹを含む。信号ＲＹ／￣ＢＹは、記憶装置１がレディー状態であるか、ビジー状態であるかを示し、ローレベルによってビジー状態を示す。記憶装置１は、レディー状態においてメモリコントローラ２からの命令を受け付け、ビジー状態においてメモリコントローラ２からの命令を受け付けない。
【００２４】
シーケンサ１２は、受け取られたコマンドおよびアドレス信号に基づいて、センスアンプ１６およびデータラッチセット１７を制御し、データラッチセット１７へ（から）データを送信（受信）する。また、シーケンサ１２は、受け取られたアドレス信号から、ＷＬアドレス、ＳＧＬアドレス、およびＧＢＬアドレスを取得する。
【００２５】
シーケンサ１２は、データの書き込みの間、ＷＬデコーダ１３およびＧＢＬデコーダ１５を制御して、選択ワード線ＷＬと選択グローバルビット線ＢＬとの間に大きい電位差を発生させる。この電位差により、メモリセルＭＣの抵抗状態が遷移する。シーケンサ１２は、データの読み出しの間、選択ワード線ＷＬと選択グローバルビット線ＢＬとの間に抵抗状態の遷移が生じない大きさの電位差を発生させ、センスアンプ１６は、選択グローバルビット線ＢＬを流れる電流を検出する。
【００２６】
シーケンサ１２は、データレジスタ１２ａを含む。データレジスタ１２ａは、ステータスデータ等のデータを保持する。ステータスデータは、記憶装置１の状態を示す。シーケンサ１２はさらに計数・判断回路１２ｂを含む。計数・判断回路１２ｂは、あるデータ中のあるデータ（値）のビットを計数し、また、計数結果をある基準値と比較する。
【００２７】
後述の「ワード線ＷＬ」の表記に後続する英数字を伴った要素もワード線ＷＬであり、後続する英数字はワード線ＷＬを互いに区別するために使用される。後述の「ビット線ＢＬ」の表記に後続する英数字を伴った要素もビット線ＢＬであり、後続する英数字はビット線ＢＬを互いに区別するために使用される。後述の「グローバルビット線ＧＢＬ」の表記に後続する英数字を伴った要素もグローバルビット線ＧＢＬであり、後続する英数字はグローバルビット線ＧＢＬを互いに区別するために使用される。後述の「メモリセルＭＣ」の表記に後続する英数字を伴った要素もメモリセルＭＣであり、後続する英数字はメモリセルＭＣを互いに区別するために使用される。後述の「ゲート線ＳＧＬ」の表記に後続する英数字を伴った要素もゲート線ＳＧＬであり、後続する英数字はゲート線ＳＧＬを互いに区別するために使用される。後述の「トランジスタＳＴ」の表記に後続する英数字を伴った要素もトランジスタＳＴであり、後続する英数字はトランジスタＳＴを互いに区別するために使用される。
【００２８】
＜１−１−２．メモリセルアレイ＞
図３は、第１実施形態のメモリセルアレイの一部の要素および接続を示す。
【００２９】
図３に示されるように、αが０〜ｋ（ｋは自然数）の各々の場合について、グローバルビット線ＧＢＬ０は、トランジスタＳＴα０を介してビット線ＢＬα０と接続されている。同様に、αが０〜ｋの各々の場合かつβが０〜ｎ（ｎは自然数）の各々の場合について、グローバルビット線ＧＢＬβは、トランジスタＳＴαβを介してビット線ＢＬαβと接続されている。αが０〜ｋの各々の場合かつβが０〜ｎの各々の場合について、トランジスタＳＴαβはゲートにおいて、ゲート線ＳＧＬαと接続されている。
【００３０】
βが０〜ｎの各々の場合かつγが０〜ｍ（ｍは自然数）の各々の場合について、ビット線ＢＬ０βは、メモリセルＭＣａγ０βを介して、ワード線ＷＬａγと接続されている。同様に、αが０〜ｋの各々の場合かつβが０〜ｎの各々の場合かつγが０〜ｍの各々の場合について、ビット線ＢＬαβは、メモリセルＭＣａγαβを介して、ワード線ＷＬａγと接続されている。さらに、αが０〜ｋの各々の場合かつβが０〜ｎの各々の場合かつγが０〜ｍの各々の場合について、ビット線ＢＬαβは、メモリセルＭＣｂγαβを介して、ワード線ＷＬｂγと接続されている。
【００３１】
１つのゲート線ＳＧＬを共有する複数のトランジスタＳＴとそれぞれのビット線ＢＬと、１つのワード線ＷＬの間に接続された複数のメモリセルＭＣの組は、１つのセルセットＣＵを構成する。１つのセルセットＣＵにより提供される記憶空間は、ページと称される。あるセルセットＣＵの１ページの各ビットのデータは、当該セルセットＣＵ中の１つのメモリセルＭＣによって保持される。
【００３２】
図４は、第１実施形態のメモリセルアレイの一部の立体構造を示し、互いに直交するｘ軸、ｙ軸、およびｚ軸により定義される空間での構造を示す。
【００３３】
図示せぬ基板のｚ軸に沿った上方に、複数の導電体ＣＧＢが設けられる。導電体ＣＧＢは、ｘ軸に沿って延び、ｙ軸に沿って間隔を有し、各々が１つのグローバルビット線ＧＢＬとして機能する。
【００３４】
各導電体ＣＧＢの上面上に、半導体ＳＣが設けられる。１つの導電体ＣＧＢと接続された半導体ＳＣは、ｘ軸に沿って間隔を有して並ぶ。半導体ＳＣは、例えばシリコンを含むか、シリコンからなる。各半導体ＳＣは、ｘ軸に沿って対向する２つの側面上において、絶縁体ＩＧを設けられている。各半導体ＳＣは、ｚ軸の下方から、部分ＳＣａ、ＳＣｂ、およびＳＣｃを含む。
【００３５】
導電体ＣＧＢの上方に、複数の導電体ＣＳが設けられる。ｘ軸に関して並ぶ導電体ＣＢの対の各々の間に２つの導電体ＣＳが間隔を有して並ぶ。導電体ＣＳは、ｙ軸に沿って延び、ｘ軸に沿って間隔を有して並ぶ。各導電体ＣＳは、１つのゲート線ＳＧＬとして機能し、１つの絶縁体ＩＧと接し、当該絶縁体ＩＧとともに１つの半導体ＳＣの部分ＳＣｂを挟む。１つの部分ＳＣｂ、１つの導電体ＣＳ、および当該部分ＳＣｂならびに当該導電体ＣＳの間の絶縁体ＩＧは、１つのトランジスタＳＴを構成する。１つの半導体ＳＣの部分ＳＣａの一部およびＳＣｃの一部は、１つのトランジスタＳＴのソース／ドレイン領域として機能する。１つの半導体ＳＣの部分ＳＣｂの一部は、１つのトランジスタＳＴのチャネル領域として機能する。
【００３６】
各半導体ＳＣの上面上に、導電体ＣＢが設けられる。複数の導電体ＣＢは、ｚ軸に沿って延び、各々が１つのビット線ＢＬ（ＢＬ０、ＢＬ１、…）として機能する。
【００３７】
各導電体ＣＢは、ｘ軸に沿って対向する２つの側面上において、抵抗変化層ＶＲを設けられている。抵抗変化層ＶＲは、連続的に可変な値の抵抗を有することができる抵抗変化材料を含むか、そのような抵抗変化材料からなる。抵抗変化材料は、電圧を印加されると、より低い抵抗値を有する状態に至る。抵抗変化材料は、電流が流れると、より高い抵抗値の状態を有する状態に遷移する。このような抵抗変化材料は、ＨｆＯ、ＴｉＯ２、ＺｎＭｎ２Ｏ４、ＮｉＯ、ＳｒＺｒＯ３、およびＰｒ０．７Ｃａ０．３ＭｎＯ３、Ｃ等の材料の少なくとも１つを含む。また、抵抗変化材料は、多結晶またはアモルファス状態のＳｉ、または、Ｇｅ、ＳｉＧｅ、ＧａＡｓ、ＩｎＰ、ＧａＰ、ＧａＩｎＡｓＰ、ＧａＮ、ＳｉＣ、ＳｉＯ、ＳｉＯＮ、ＳｉＮ、ＨｆＳｉＯ、ＡｌＯの少なくとも１つを含む。さらに、抵抗変化層ＶＲは、上に列挙された材料の層が積層された構造を含むことが可能である。
【００３８】
導電体ＣＢと抵抗変化層ＶＲとの間に、電極（図示せず）が設けられてもよい。電極の材料は、Ａｇ、Ａｕ、Ｔｉ、Ｎｉ、Ｃｏ、Ａｌ、Ｆｅ、Ｃｒ、Ｃｕ、Ｗ、Ｈｆ、Ｔａ、Ｐｔ、Ｒｕ、ＺｒまたはＩｒ、あるいはこれらの材料の窒化物または炭化物を含む。また、電極は、上に列挙された材料を添加された多結晶シリコンから構成されることが可能である。
【００３９】
導電体ＣＳの上方に、導電体ＣＷの複数の層が設けられる。相違する層は、ｚ軸に沿って相違する座標に位置する。図４は、５つの層の例、すなわちβ＝５の場合の例を示し、第１層〜第５層はこの順でｚ軸に沿って上方に向かって並ぶ。各層は、複数の導電体ＣＷを含む。導電体ＣＷは、ｙ軸に沿って延び、ｘ軸に沿って間隔を有して並ぶ。各層において隣り合う２つの導電体ＣＷは、１つの導電体ＣＢを挟み、当該導電体ＣＢ上の２つの抵抗変化層ＶＲとそれぞれ接する。各層中の導電体ＣＷのうちの１つおきの複数の導電体ＣＷの第１組は、第１層のｘ軸およびｙ軸に沿った面の構造を示す図５に示されるように、当該導電体ＣＷの各第１端において相互に接続されており、導電体ＣＷとそれらを接続する導電体とは櫛形構造を形成する。同様に、各層中の複数の導電体ＣＷのうちの１つおきの複数の導電体ＣＷの第２組は、図５に示されるように、当該導電体ＣＷの各第２端において相互に接続されており、導電体ＣＷとそれらを接続する導電体とは櫛形構造を形成する。γが０〜ｎ（ｎは自然数）の各々の場合について、第γ層の導電体ＣＷの第１組はワード線ＷＬａγとして機能し、第γ層の導電体ＣＷの第２組はワード線ＷＬｂγとして機能する。図５は、第１層について示す。
【００４０】
各抵抗変化層ＶＲのうち、１つの導電体ＣＷと１つの導電体ＣＢとに挟まれた部分は、１つのメモリセルＭＣとして機能する。
【００４１】
＜１−１−３．メモリセル＞
メモリセルＭＣは、書き込みにより、低抵抗状態または高抵抗状態へと移される。図６に示されるように、書き込まれた直後の低抵抗状態のメモリセルＭＣはある抵抗値Ｒｌｈより低い抵抗値を有し、かつ書き込まれた直後の高抵抗状態のメモリセルＭＣはある抵抗値Ｒｈｓより高い抵抗値を有するように、メモリセルＭＣにデータが書き込まれる。高抵抗状態にある複数のメモリセルＭＣであっても、メモリセルＭＣ、センスアンプ、および配線の特性等のばらつきに起因して、相違する抵抗値を有し得る。同様に、低抵抗状態にある複数のメモリセルＭＣであっても、相違する抵抗値を有し得る。このため、同じ抵抗状態にあるメモリセルＭＣの抵抗値は１つの分布を形成する。
【００４２】
低抵抗状態にある複数のメモリセルＭＣのうち、最大の抵抗値を有するメモリセルＭＣｌｈは、抵抗値Ｒｌｈを有する。一方、高抵抗状態にある複数のメモリセルＭＣのうち、最小の抵抗値を有するメモリセルＭＣｈｓは、抵抗値Ｒｈｓを有する。書き込まれた直後の複数のメモリセルＭＣについての抵抗値Ｒｌｈと抵抗値Ｒｈｓが大きな差を有するように記憶装置１は動作する。
【００４３】
メモリセルＭＣは抵抗状態に基づいてデータを記憶し、よってデータの読み出しのためにメモリセルＭＣの抵抗値が判断される。そのために、図７に示されるように、メモリセルＭＣにある大きさの読み出し電圧Ｖｒが印加され、結果メモリセルＭＣを流れる電流の大きさに基づいてメモリセルＭＣの抵抗値がセンスアンプ１６によって判断される。２つの抵抗値分布が間隔を有するようにデータが書き込まれかつ適当な読み出し電圧Ｖｒが使用されることにより、読み出し電圧Ｖｒの印加によって、センスアンプ１６は、メモリセルＭＣが２つの抵抗状態のいずれにあるかを判断することができる。低抵抗状態にあるメモリセルＭＣは、導体に類似の低い抵抗値を有し、よって、ある大きさの読み出し電圧Ｖｒを印加されると、メモリセルＭＣをある大きさの以上の読み出し電流が流れる。一方、高抵抗状態にあるメモリセルＭＣは、絶縁体に類似の高い抵抗値を有し、よって、読み出し電圧Ｖｒを印加されても、ある大きさ以下の読み出し電流しか流れない。センスアンプ１６は、読み出し電流が基準の大きさ以下の場合、メモリセルＭＣが０データを保持していると判断し、読み出し電流が基準の大きさを超える場合、メモリセルＭＣが１データを保持していると判断する。基準の大きさを超える読み出し電流を流す抵抗状態のメモリセルＭＣが０データを保持していて、基準の大きさ以下の読み出し電流を流す抵抗状態のメモリセルＭＣが１データを保持しているとして扱われてもよい。
【００４４】
図６に示されるように、記憶装置１での通常のデータ読み出しでは、通常読み出し電圧ＶｍがメモリセルＭＣに印加される。通常読み出し電圧Ｖｍは、読み出し電圧Ｖｌｈと読み出し電圧Ｖｈｓとの間の大きさを有する。読み出し電圧Ｖｌｈは、書き込み直後の低抵抗状態のメモリセルＭＣに印加された場合にいずれの低抵抗状態のメモリセルもが低抵抗状態にあると判断される大きさの読み出し電流を流す大きさを有する。読み出し電圧Ｖｈｓは、書き込み直後の高抵抗状態のメモリセルＭＣに印加された場合にいずれの高抵抗状態のメモリセルＭＣもが高抵抗状態にあると判断される大きさの読み出し電流を流す大きさを有する。読み出し電圧Ｖｌｈ以下の読み出し電圧がデータ読み出しに使用されると、最大抵抗値メモリセルＭＣを含むいくつかのメモリセルＭＣは、高抵抗状態にあると誤って判断され得る。読み出し電圧Ｖｈｓ以上の読み出し電圧がデータ読み出しに使用されると、最小抵抗値メモリセルＭＣｈｓを含むいくつかのメモリセルＭＣは、低抵抗状態にあると誤って判断され得る。
【００４５】
＜１−１−４．センスアンプおよびデータラッチセット＞
図８は、センスアンプ１６およびデータラッチセット１７の要素および接続を示す。図８の太線は、制御信号を伝送する。
【００４６】
センスアンプ１６は、ｎ＋１個のセンスアンプ回路ＳＡＣを含む。センスアンプ回路ＳＡＣはみな、要素および接続の同じ組を有し、グローバルビット線ＧＢＬ（ＧＢＬ０、ＧＢＬ１、…）とそれぞれ接続されている。データの読み出しの際、各センスアンプ回路ＳＡＣは、当該センスアンプ回路ＳＡＣと接続された（対応する）１つのグローバルビット線ＧＢＬおよび１つのビット線ＢＬを介して読み出し対象の１つのメモリセルＭＣと電気的に接続される。そして、各センスアンプ回路ＳＡＣは、対応するビット線ＢＬの電流をセンスし、センスの結果に基づいて、対応するメモリセルＭＣが２つの抵抗状態のいずれに属するかを判断する。各センスアンプ回路ＳＡＣは、センスの結果、２つの抵抗状態に基づいて、データ０またはデータ１を保持する。
【００４７】
データラッチセット１７は、データラッチ１７ａ、１７ｂ、１７ｃ、および１７ｄならびに複数の演算回路ＬＣを含む。データラッチ１７ａ、１７ｂ、１７ｃ、および１７ｄの各々は、１ページの大きさデータを保持できる。データラッチ１７ａは、ｎ＋１個のデータラッチ回路ＤＬＣａを含む。データラッチ１７ｂは、ｎ＋１個のデータラッチ回路ＤＬＣｂを含む。データラッチ１７ｃは、ｎ＋１個のデータラッチ回路ＤＬＣｃを含む。データラッチ１７ｃは、ｎ＋１個のデータラッチ回路ＤＬＣｄを含む。データラッチ回路ＤＬＣａ、ＤＬＣｂ、ＤＬＣ、およびＤＬＣｄは、相互に区別される必要が無い場合は、データラッチ回路ＤＬＣと称される。各データラッチ回路ＤＬＣは、１ビットのデータを保持できる。
【００４８】
データラッチ１７ｄは、例えば、メモリコントローラ２と記憶装置１との間のデータの入出力に使用される。メモリコントローラ２から受け取られたデータは、まずデータラッチ１７ｄに入力され、記憶装置１から出力されるデータは、データラッチ１７ｄから送出される。
【００４９】
データラッチ１７ａ、１７ｂ、１７ｃ、および１７ｄの各々の１つのデータラッチ回路ＤＬＣは、１つのセンスアンプ回路ＳＡＣと接続されている。相互に接続されたセンスアンプ回路ＳＡＣ、およびデータラッチ回路ＤＬＣａ、ＤＬＣｂ、ＤＬＣｃ、ならびにＤＬＣｄは、それぞれ、センスアンプ１６、ならびにデータラッチ１７ａ、１７ｂ、１７ｃ、および１７ｄの各々の１ページサイズデータ中の同じ位置のビットを扱う。
【００５０】
＜１−２．動作＞
メモリシステム１００の動作の説明に先立って、メモリシステム１００の動作において使用される読み出し電圧が記述される。
【００５１】
図９は、第１実施形態のメモリシステム１００において使用される読み出し電圧と、メモリセルＭＣの抵抗値の分布を示す。図９は、図７と同じ抵抗値分布を破線により示す。また、図９は、データの書き込みからある時間が経過した時点でのメモリセルＭＣの抵抗値の分布を実線および一点鎖線により示す。データを書き込まれたメモリセルＭＣは、データの読み出しを経たり、および（または）時間の経過により、書き込まれた直後の抵抗値と異なる抵抗値を有するに至り得る。実線および一点鎖線の分布は、このような変化後の抵抗値分布の例を示す。抵抗値分布の広がりの大きさは、書き込み直後からのメモリセルＭＣの状態の劣化に相関する。
【００５２】
メモリセルＭＣの抵抗値の変化の結果、一部の低抵抗状態のメモリセルＭＣは、変化前より高い抵抗値を有する。このようなメモリセルＭＣは、通常読み出し電圧Ｖｍの使用によって誤って高抵抗状態と判断される場合があり、このことは当該メモリセルＭＣに書き込まれたデータ（期待データ）が正しく読み出されないことを意味する。
【００５３】
同様に、メモリセルＭＣの抵抗値の変化の結果、一部の高抵抗状態のメモリセルＭＣは、変化前より低い抵抗値を有する。このようなメモリセルＭＣは、通常読み出し電圧Ｖｍの使用によって誤って低抵抗状態と判断される場合があり、このことはやはり当該メモリセルＭＣに書き込まれたデータが正しく読み出されないことを意味する。
【００５４】
読み出し対象の１つのセルセット（選択セルセット）ＣＵが、期待データが正しく読み出されないメモリセルＭＣを含んでいても、そのようなメモリセルＭＣの数（誤りビットの数）が少なければ、選択セルセットＣＵから読み出されたデータ（読み出しデータ）中の誤りビットはＥＣＣ回路２４によって訂正されることが可能である。一方、読出しデータ中の誤りビットが多過ぎると、ＥＣＣ回路２４は誤りビットを訂正できず、ＥＣＣエラーが生じる。具体的には、選択セルセットＣＵからある読み出し電圧を使用してデータが読み出された結果、誤って高抵抗状態と判断されるメモリセルＭＣの数が多過ぎると、この読み出しはＥＣＣエラーに帰結する。同様に、選択セルセットＣＵからある読み出し電圧を使用してデータが読み出された結果、誤って低抵抗状態と判断されるメモリセルＭＣの数が多過ぎると、この読み出しはＥＣＣエラーに帰結する。
【００５５】
ＥＣＣ回路２４に入力される前の選択セルセットＣＵからの読み出しデータが、いくつの誤りビット数が許容するかは、メモリシステム１００に要求される性能に依存する。例えば、１つのセルセットＣＵの読み出しデータ中で、１ビットの誤りは許容される場合がある。または、１つのセルセットＣＵの読み出しデータ中で、１ビットの誤りも許容されない場合もある。以下の記述は、例として、１つのセルセットＣＵの読み出しデータ中で１ビットの誤りも許容されない場合に基づく。１つのセルセットＣＵの読み出しデータ中で１ビット以上の誤りが許容される場合も以下の記述の原理に基づいて、実現されることが可能である。
【００５６】
メモリシステム１００は、予め、通常読み出し電圧Ｖｍを使用したデータ読み出し（通常データ読み出し）でＥＣＣ回路２４による誤り訂正を現在または近い将来に必要とする読み出しデータを保持するセルセットＣＵの特定を試みる。そのために、メモリシステム１００は、読み出し電圧Ｖｐｒ１、Ｖｐｒ２、Ｖｐｒ３、およびＶｐｒ４を使用する。読み出し電圧Ｖｐｒ１は、読み出し電圧Ｖｌｈより高くかつ通常読み出し電圧Ｖｍより低い。読み出し電圧Ｖｐｒ２は、通常読み出し電圧Ｖｍより高くかつ読み出し電圧Ｖｈｓより低い。読み出し電圧Ｖｐｒ３は、読み出し電圧Ｖｐｒ１より高くかつ通常読み出し電圧Ｖｍより低い。読み出し電圧Ｖｐｒ４は、通常読み出し電圧Ｖｍより高くかつ読み出し電圧Ｖｐｒ２より低い。さらに、読み出し電圧Ｖｐｒ１、Ｖｐｒ２、Ｖｐｒ３、およびＶｐｒ４は、以下の条件を満たす。
【００５７】
後述のように、読み出し電圧Ｖｐｒ１およびＶｐｒ２の印加によって、抵抗状態が少し劣化したセルセットＭＣが特定される。また、読み出し電圧Ｖｐｒ３およびＶｐｒ４の印加によって、抵抗状態が中程度劣化したセルセットＭＣが特定される。読み出し電圧Ｖｐｒ１が電圧Ｖｌｈに近過ぎると、および（または）読み出し電圧Ｖｐｒ２が電圧Ｖｈｓに近過ぎると、それほど劣化していないセルセットＣＵが特定されてしまう。一方、読み出し電圧Ｖｐｒ１が読み出し電圧Ｖｍに近過ぎると、および（または）読み出し電圧Ｖｐｒ２が読み出し電圧Ｖｍに近過ぎると、抵抗状態が中程度劣化する前に抵抗状態が少し劣化したセルセットＭＣが特定され難い。同様に、一方、読み出し電圧Ｖｐｒ３が読み出し電圧Ｖｍに近過ぎると、および（または）読み出し電圧Ｖｐｒ４が読み出し電圧Ｖｍに近過ぎると、抵抗状態が大きく劣化する前に抵抗状態が中程度劣化したセルセットＭＣが特定され難い。これらに基づいて、特定を望まれる低抵抗状態劣化の程度に基づいて、読み出し電圧Ｖｐｒ１、Ｖｐｒ２、Ｖｐｒ３、およびＶｐｒ４が決定される。
【００５８】
読み出し電圧Ｖｐｒ３は、選択セルセットＣＵからの通常データ読み出しでＥＣＣ回路２４による誤り訂正を現在または近い将来に必要とし得るセルセットＣＵを特定するための大きさを有し、通常データ読み出しで誤り訂正が必要となる可能性の許容値に基づいて決定される。低抵抗状態のあるメモリセルＭＣが書き込み直後より大幅に高い抵抗値を有する場合、通常読み出し電圧Ｖｍを使用した当該メモリセルＭＣからの読み出しデータは誤りを含まなくても、読み出し電圧Ｖｐｒ３を使用した当該メモリセルＭＣからの読み出しデータは誤りを含む場合がある。このようなメモリセルＭＣは、近い将来に、通常読み出し電圧Ｖｍを使用して読み出されると誤ったデータを保持すると判断されるほどに高い抵抗値を有し得、または、読み出しの条件によっては通常データ読み出しで実際に誤ったデータを保持すると判断される場合もある。このようなメモリセルＭＣが特定されることが有用である。その目的で、読み出し電圧Ｖｐｒ３の大きさの選択によって、ある大きさ以上の抵抗値を有するメモリセルＭＣと、そうでないメモリセルＭＣが選別されることが可能である。そこで、読み出し電圧Ｖｐｒ３は、通常データ読み出しで誤り訂正が必要となる可能性の許容値に基づいて決定される。読み出し電圧Ｖｐｒ３が低いほど、近い将来に通常データ読み出しで誤り訂正が必要となり得るメモリセルＭＣが早い段階で検出されることが可能である。
【００５９】
同様に、読み出し電圧Ｖｐｒ４は、選択セルセットＣＵからの通常データ読み出しでＥＣＣ回路２４による誤り訂正を現在または近い将来に必要とし得るセルセットＣＵを特定するための大きさを有し、通常データ読み出しで誤り訂正が必要となる可能性の許容値に基づいて決定される。高抵抗状態のあるメモリセルＭＣが書き込み直後より大幅に低い抵抗値を有する場合、通常読み出し電圧Ｖｍを使用した当該メモリセルＭＣからの読み出しデータは誤りを含まなくても、読み出し電圧Ｖｐｒ４を使用した当該メモリセルＭＣからの読み出しデータは誤りを含む場合がある。このようなメモリセルＭＣは、近い将来に、通常読み出し電圧Ｖｍを使用して読み出されると誤ったデータを保持すると判断されるほどに低い抵抗値を有し得、または、読み出しの条件によっては通常データ読み出しで実際に誤ったデータを保持すると判断される場合もある。このようなメモリセルＭＣが特定されることが有用である。その目的で、読み出し電圧Ｖｐｒ４の大きさの選択によって、ある大きさ以下の抵抗値を有するメモリセルＭＣと、そうでないメモリセルＭＣが選別されることが可能である。そこで、読み出し電圧Ｖｐｒ４は、通常データ読み出しで誤り訂正が必要となる可能性の許容値に基づいて決定される。読み出し電圧Ｖｐｒ４が高いほど、近い将来に通常データ読み出しで誤り訂正が必要となり得るメモリセルＭＣが早い段階で検出されることが可能である。
【００６０】
次に、図１０を参照して、セルセットＣＵに書き込まれかつ１ページサイズの大きさを有する書き込みデータについて記述される。メモリコントローラ２は、書き込みデータの中に、書き込みデータに関する管理用のデータを含める。すなわち、１ページサイズの書き込みデータは、図１０に示されるように、情報データと管理データを含む。管理データは、１または複数の反転フラグビットを含む。反転フラグビットの用途については後述される。メモリコントローラ２は、記憶装置１への書き込みの指示の時、固定の値または固定のパターンの反転フラグビットを含んだ１ページサイズの書き込みデータを記憶装置１に送信する。固定の値は、１つの反転フラグビットが使用される場合、例えば１データであり、複数の反転フラグビットが使用される場合は全ての反転フラグビットにおいて１データである。固定のパターンは、複数の反転フラグビットが使用される場合、０データと１データの予め定められた組み合わせを含む。メモリコントローラ２は、通常のデータ書き込み（後述のビットデータを反転されたデータを書き込む書き込みでない書き込み）において、反転フラグビットにおいて、データ反転を示さない値をセットする。
【００６１】
図１１および図１２は、第１実施形態のメモリシステムの動作のフローを示す。メモリコントローラ２は、例えばホスト装置２００の指示によらずに自律的にまたはホスト装置２００の指示に応答して、図１１および図１２のフローを行って記憶装置１中のデータを検査し、状態に基づいて、読み出し精度の向上のための処理を行う。メモリコントローラ２は、例えば、ホスト装置２００からの指示が無い期間中に、図１１および図１２のフローを行う。図１１および図１２は、ある１つの選択セルセットＣＵｘについてのデータ検査および読み出し精度向上処理を示す。
【００６２】
図１１および図１２に示されるように、メモリコントローラ２は、選択セルセットＣＵｘについての第１検査読み出しを記憶装置１に指示する（ステップＳ１）。記憶装置１は、指示を受け取ると、ステップＳ２〜Ｓ６を行う。記憶装置１は、ステップＳ２〜Ｓ６を行っている間、ビジー信号をメモリコントローラ２に送信する。
【００６３】
ステップＳ２において、記憶装置１は、読み出し電圧Ｖｐｒ１を使用して選択セルセットＣＵｘからデータを読み出す、すなわち、ＰＲ１を行う。具体的には、シーケンサ１２は、ＷＬデコーダ１３、ＳＧＬデコーダ１４、およびＧＢＬデコーダ１５を制御して、選択セルセットＣＵｘと接続されたワード線（選択ワード線）ＷＬと、選択セルセットＣＵｘを選択セルセットＣＵｘとそれぞれ接続されたビット線ＢＬおよび対応するトランジスタＳＴを介して対応するグローバルビット線（選択グローバルビット線）ＧＢＬに接続し、選択ワード線ＷＬと選択グローバルビット線ＧＢＬとに電圧Ｖｐｒ１を印加する。次いで、シーケンサ１２は、センスアンプ１６を制御して、グローバルビット線ＧＢＬ上の電流に基づいて、選択セルセットＣＵｘの各メモリセルＭＣが０データまたは１データを保持しているかを判断する。各メモリセルＭＣについての判断の結果の組は、あるデータラッチ（例えばデータラッチ１７ａ）の対応する１つのデータラッチ回路ＤＬＣに保持される。こうして、データラッチ１７ａは、読み出し電圧Ｖｐｒ１を使用して選択セルセットＣＵｘから読み出された１ページサイズのデータ（Ｖｐｒ１読み出しデータ）を保持するに至る。Ｖｐｒ１読み出しデータは、各ビットにおいて、対応するメモリセルＭＣが保持していると判断された０データまたは１データを有する。
【００６４】
ステップＳ３において、記憶装置１は、ステップＳ２と同様にして、読み出し電圧Ｖｐｒ２を使用して選択セルセットＣＵｘからデータを読み出す、すなわちＰＲ２を行う。読み出された１ページサイズのデータ（Ｖｐｒ２読み出しデータ）は、別のデータラッチ（例えばデータラッチ１７ｂ）に保持される。Ｖｐｒ２読み出しデータは、各ビットにおいて、対応するメモリセルＭＣが保持していると判断された０データまたは１データを有する。ステップＳ３は、ステップＳ２に先行してもよい。
【００６５】
ステップＳ４において、シーケンサ１２は、Ｖｐｒ１読み出しデータとＶｐｒ２読み出しデータの排他的論理和（ＸＯＲ）を演算する。具体的には、シーケンサ１２は、Ｖｐｒ１読み出しデータとＶｐｒ２読み出しデータの同じ位置のそれぞれの計２つのビットを入力として用い、論理演算回路ＬＣを用いて２つの入力のＸＯＲを演算し、このような演算をＶｐｒ１読み出しデータおよびＶｐｒ２読み出しデータの全ビットに対して行う。演算の結果は、さらに別のデータラッチ（例えばデータラッチ１７ｃ）に保持される。より具体的には、シーケンサ１２は、あるデータラッチ回路ＤＬＣａ中のデータと、当該データラッチ回路ＤＬＣａと接続されたデータラッチ回路ＤＬＣｂ中のデータのＸＯＲを、これらのデータラッチ回路ＤＬＣａおよびＤＬＣｂと接続された論理回路ＬＣを使用して演算する。演算の結果は、論理演算の入力のデータを保持するデータラッチ回路ＤＬＣａおよびＤＬＣｂと接続されたデータラッチ回路ＤＬＣｃに保持される。こうして、データラッチ１７ｃは、Ｖｐｒ１読み出しデータおよびＶｐｒ２読み出しデータのＸＯＲ演算の結果を含んだデータ（ＰＲ１２ＸＯＲデータ）を保持するに至る。ＰＲ１２ＸＯＲデータは、各ビットにおいて、０データまたは１データを有する。１データは、対応するビットにおいて、Ｖｐｒ１読み出しデータとＶｐｒ２読み出しデータが相違するデータを有することを意味する。
【００６６】
ステップＳ５において、計数・判断回路１２ｂは、ＰＲ１２ＸＯＲデータ中の１データのビットの数（ＰＲ１２相違ビット数）Ｃ１を計数する。ステップＳ６において、シーケンサ１２は、ＰＲ１２相違ビット数Ｃ１をレジスタ１２ａのある領域に保持する。また、シーケンサ１２は、ＰＲ１２相違ビット数Ｃ１を第１基準値と比較し、比較結果（ＰＲ１２比較結果）ＣＲ１に基づく値をレジスタ１２ａの別の領域に保持する。第１基準値は、例えば０である。ＰＲ１２比較結果ＣＲ１は、ＰＲ１２相違ビット数Ｃ１が第１基準値以下であれば、データ０であり、ＰＲ１２相違ビット数Ｃ１が第１基準値超であれば、データ１である。また、シーケンサ１２は、ステップＳ６の完了とともに、レディー信号をメモリコントローラ２に送信する。メモリコントローラ２は、レディー信号を受け取ることによって、ステップＳ６の完了を認識する。
【００６７】
ステップＳ６が完了したことを知得して、メモリコントローラ２は、ステータスデータの読み出しを記憶装置１に指示する（ステップＳ８）。シーケンサ１２は、指示を受け取ると、ステータスデータをメモリコントローラ２に送信する（ステップＳ９）。ステータスデータは、レジスタ１２ａ中の計数値、すなわちＰＲ１２相違ビット数Ｃ１、およびＰＲ１２比較結果ＣＲ１を含む。
【００６８】
ステップＳ１０において、メモリコントローラ２は、ＰＲ１２比較結果ＣＲ１を参照して、相違ビット数Ｃ１が第１基準値を超えているかを判断する。ＰＲ１２相違ビット数Ｃ１が第１基準値を超えていなければ、すなわちＰＲ１２比較結果ＣＲ１が０データであれば（Ｎｏ分岐）、フローは終了し、第１基準値を超えていれば、すなわちＰＲ１２比較結果ＣＲ１が１データであれば（Ｙｅｓ分岐）、フローはステップＳ２１に移行する。
【００６９】
ステップＳ２１において、メモリコントローラ２は、選択セルセットＣＵｘについての第２検査読み出しを記憶装置１に指示する。記憶装置１は、指示を受け取ると、ステップＳ２２〜Ｓ２６を行う。記憶装置１は、ステップＳ２２〜Ｓ２６を行っている間、ビジー信号をメモリコントローラ２に送信する。ステップＳ２２〜Ｓ２６は、ステップＳ２〜Ｓ６にそれぞれ類似する。主な相違点は、読み出し電圧Ｖｐｒ１およびＶｐｒ２に代えて、それぞれ読み出し電圧Ｖｐｒ３およびＶｐｒ４が使用されること、およびこれに関連する事項である。その他の点については、ステップＳ２２〜Ｓ２６は、ステップＳ２〜Ｓ６とそれぞれ同じである。以下、ステップＳ２２〜Ｓ２６が簡単に記述される。
【００７０】
ステップＳ２２において、記憶装置１は、読み出し電圧Ｖｐｒ３を使用して選択セルセットＣＵｘからデータを読み出す、すなわち、ＰＲ３を行う。読み出された１ページサイズのデータ（Ｖｐｒ３読み出しデータ）は、あるデータラッチ（例えばデータラッチ１７ａ）に保持される。Ｖｐｒ３読み出しデータは、各ビットにおいて、対応するメモリセルＭＣが保持していると判断された０データまたは１データを有する。
【００７１】
ステップＳ２３において、記憶装置１は、読み出し電圧Ｖｐｒ４を使用して選択セルセットＣＵｘからデータを読み出す、すなわち、ＰＲ４を行う。読み出された１ページサイズのデータ（Ｖｐｒ４読み出しデータ）は、別のデータラッチ（例えばデータラッチ１７ｂ）に保持される。Ｖｐｒ４読み出しデータは、各ビットにおいて、対応するメモリセルＭＣが保持していると判断された０データまたは１データを有する。ステップＳ２３は、ステップＳ２２に先行してもよい。
【００７２】
ステップＳ２４において、シーケンサ１２は、Ｖｐｒ３読み出しデータとＶｐｒ４読み出しデータのＸＯＲを演算する。ＸＯＲ演算の結果を含んだデータ（ＰＲ３４ＸＯＲデータ）は、さらに別のデータラッチ（例えばデータラッチ１７ｃ）に保持される。ＰＲ３４ＸＯＲデータは、各ビットにおいて、０データまたは１データを有する。１データは、対応するビットにおいて、Ｖｐｒ３読み出しデータとＶｐｒ４読み出しデータが相違するデータを有することを意味する。
【００７３】
ステップＳ２６において、シーケンサ１２は、ＰＲ３４ＸＯＲデータ中の１データのビット数（ＰＲ３４相違ビット数）Ｃ２をレジスタ１２ａの別の領域に保持する。また、シーケンサ１２は、ＰＲ３４相違ビット数Ｃ２を第２基準値と比較し、比較結果（ＰＲ３４比較結果）ＣＲ２に基づく値をレジスタ１２ａの別の領域に保持する。第２基準値は、例えば０である。ＰＲ３４比較結果ＣＲ２は、ＰＲ３４相違ビット数Ｃ２が第２基準値以下であれば、データ０であり、ＰＲ３４相違ビット数Ｃ２が第２基準値超であれば、データ１である。
【００７４】
ステップＳ２８において、メモリコントローラ２は、ステータスデータの読み出しを記憶装置１に指示する。ステップＳ２９において、シーケンサ１２は、ステータスデータをメモリコントローラ２に送信する。ステータスデータは、レジスタ１２ａ中の計数値、すなわちＰＲ３４相違ビット数Ｃ２、およびＰＲ３４比較結果ＣＲ２を含む。
【００７５】
ステップＳ３０において、メモリコントローラ２は、ＰＲ３４比較結果ＣＲ２を参照して、ＰＲ３４相違ビット数Ｃ２が第２基準値を超えているかを判断する。第２基準値は、例えば０である。ＰＲ３４相違ビット数Ｃ２が第２基準値を超えていなければ（Ｎｏ分岐）、フローはステップＳ３１に移行する。
【００７６】
ステップＳ３１において、メモリコントローラ２は、選択セルセットＣＵｘについての反転上書きを指示する。記憶装置１は、指示を受け取ると、ステップＳ３２およびＳ３３を行う。ステップＳ３２において、シーケンサ１２は、通常読み出し電圧Ｖｍを使用して選択セルセットＣＵｘ中のデータを読み出し、読み出されたデータ（ＣＵｘ読み出しデータ）をあるデータラッチ（例えばデータラッチ１７ａ）に読み出す。シーケンサ１２は、例えば論理回路ＬＣを使用して、ＣＵｘ読み出しデータの全ビットにおいて反転されたデータを有するデータ（ＣＵｘ反転データ）を生成する。ＣＵｘ反転データは、反転フラグビットにおいても、ＣＵｘ読み出しデータから反転されたデータを有する。書き込まれた時から反転されたデータを有する反転フラグビットは、ＣＵｘ反転データが、各ビットにおいて、書き込まれた時のデータから反転されたデータを有していることを示す。ＣＵｘ反転データは、別のデータラッチ（例えばデータラッチ１７ｃ）に保持される。以下の記述において、データ反転を示さない反転フラグビットを含んだデータは、元データと称される場合がある。
【００７７】
ステップＳ３３において、シーケンサ１２は、ＣＵｘ反転データをＣＵｘに上書きする。この結果、選択セルセットＣＵｘは、全ビットにおいて、ステップＳ３３の開始の時点で保持していたデータの反転されたデータを保持するに至る。ステップＳ３３が完了すると、フローは終了する。
【００７８】
ステップＳ３０においてＰＲ３４相違ビット数Ｃ２が第２基準値を超えている場合（Ｙｅｓ分岐）、フローはステップＳ３５に移行する。ステップＳ３５において、メモリコントローラ２は、選択セルセットＣＵｘからのデータ読み出しを記憶装置１に指示する。シーケンサ１２は、指示を受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行ってＣＵｘ読み出しデータを取得し、ＣＵｘ読み出しデータをメモリコントローラ２に送信する。メモリコントローラ２は、ＣＵｘ読み出しデータを受け取ると、ＥＣＣ回路２４を使用して、ＣＵｘ読み出しデータ中に誤りがある場合に、これを訂正する。
【００７９】
ステップＳ３７において、メモリコントローラ２は、誤り訂正された（正しい）ＣＵｘ読み出しデータをセルセットＣＵｙ（ｙ≠ｘ）に書き込むことを記憶装置１に指示する。ステップＳ３７が完了すると、フローは終了する。
【００８０】
図１１のフローは一例であり、ステップＳ１〜Ｓ６の組、およびステップＳ２１〜Ｓ２６の組の一方だけが行われてもよい。
【００８１】
図１３〜図１６は、第１実施形態のメモリシステム１００の動作の一部を示し、データ検査の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。
【００８２】
図１３は、選択セルセットＣＵｘのメモリセルＭＣの抵抗値分布が、図９の破線の形状を有する場合を示し、図１１のステップＳ１０での判断がＮｏである場合を示す。図１３に示されるように、メモリコントローラ２は、図１１のステップＳ１での第１検査読み出しの指示のために、コマンドＸ１ｈ、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド３Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド３Ｘｈを受け取ると、選択セルセットＣＵｘに対してＰＲ１を行って、Ｖｐｒ１読み出しデータをデータラッチ１７ａに保持する。次いで、シーケンサ１２は、選択セルセットＣＵｘに対してＰＲ２を行って、Ｖｐｒ２読み出しデータをデータラッチ１７ｂに保持する。図１３のケースでは、Ｖｐｒ１読み出しデータはＶｐｒ２読み出しデータと同一である。
【００８３】
シーケンサ１２は、ＰＲ１２ＸＯＲデータを、データラッチ１７ｃに保持する。ＰＲ１２ＸＯＲデータは、全ビットにおいて０データを有する。計数・判断回路１２ｂは、ＰＲ１２相違ビット数Ｃ１および比較結果ＣＲ１を取得する。
【００８４】
シーケンサ１２は、ＰＲ１、ＰＲ２、ＸＯＲ演算、および計数・判断の間、時間ｔＰＲに亘ってビジー信号を出力する。
【００８５】
メモリコントローラ２は、ステータス読み出し指示のために、コマンド７０ｈを記憶装置１に送信する。シーケンサ１２は、コマンド７０ｈを受け取ると、直前の指示（現行の例では第１検査読み出し）についてのステータスデータＤＡＴＡをメモリコントローラ２に送信する。そのようなステータスデータは、例えば、第０〜第２ビットにおいて、ＰＲ１２相違ビット数Ｃ１を含み、第４〜第６ビットにおいて、ＰＲ３４相違ビット数Ｃ２を含む。また、第３ビットは、ＰＲ１２比較結果ＣＲ１を示し、第７ビットは、ＰＲ３４比較結果ＣＲ２を示す。
【００８６】
ＰＲ１２相違ビット数Ｃ１は第１基準値以下である。このため、図１３のケースでの選択セルセットＣＵｘのためのデータ検査およびデータ読み出し精度向上処理はここで終了する。
【００８７】
図１４および図１５は、選択セルセットＣＵｘのメモリセルＭＣの抵抗値分布が、図９の実線の形状を有する場合を示し、図１１のステップＳ３０での判断がＮｏである場合を示す。図１４および図１５に示されるように、図１３と同様に、シーケンサ１２は、Ｖｐｒ１読み出しデータをデータラッチ１７ａに保持し、Ｖｐｒ２読み出しデータをデータラッチ１７ｂに保持する。図１４および図１５のケースでは、Ｖｐｒ１読み出しデータはＶｐｒ２読み出しデータと相違する。
【００８８】
シーケンサ１２は、ＰＲ１２ＸＯＲデータを、データラッチ１７ｃに保持する。ＰＲ１２ＸＯＲデータは、いくつかのビットにおいて１データを有する。計数・判断回路１２ｂは、ＰＲ１２相違ビット数Ｃ１および比較結果ＣＲ１を取得する。シーケンサ１２は、コマンド７０ｈを受け取って、ステータスデータを出力する。ステータスデータＤａｔａ中のＰＲ１２相違ビット数Ｃ２は第１基準値超であり、比較結果ＣＲ１はデータ１である。このため、メモリコントローラ２は、図１１のステップＳ２１での第２検査読み出しの指示のために、コマンドＸ２ｈ、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド３Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド３Ｘｈを受け取ると、選択セルセットＣＵｘに対してＰＲ３を行って、Ｖｐｒ３読み出しデータをデータラッチ１７ａに保持する。次いで、シーケンサ１２は、選択セルセットＣＵｘに対してＰＲ４を行って、Ｖｐｒ４読み出しデータをデータラッチ１７ｂに保持する。図１４および図１５のケースでは、Ｖｐｒ３読み出しデータはＶｐｒ４読み出しデータと同一である。
【００８９】
シーケンサ１２は、ＰＲ３４ＸＯＲデータを、データラッチ１７ｃに保持する。ＰＲ３４ＸＯＲデータは、全ビットにおいて０データを有する。計数・判断回路１２ｂは、ＰＲ３４相違ビット数Ｃ２および比較結果ＣＲ２を取得する。シーケンサ１２は、コマンド７０ｈを受け取って、ステータスデータを出力する。ステータスデータＤａｔａ中のＰＲ３４データ相違ビット数Ｃ２は第２基準値以下であり、比較結果ＣＲ２はデータ０である。このため、図１４および図１５のケースでの選択セルセットＣＵｘのためのデータ検査およびデータ読み出し精度向上処理は、ＣＵｘ反転データを選択セルセットＣＵｘに書き込むことに継続する。
【００９０】
図１６は、選択セルセットＣＵｘの抵抗値分布が、図９の一点鎖線の形状を有する場合を示し、図１１のステップＳ３０での判断がＹｅｓである場合を示し、図１４に後続する。図１４でのステータスデータＤａｔａ中のＰＲ１２相違ビット数Ｃ１が基準値以上であるため、図１５と同様に、メモリコントローラ２は第２検査読み出しを記憶装置１に指示し、シーケンサ１２は選択セルセットＣＵｘに対してＰＲ３およびＰＲ４を行う。図１６のケースでは、データラッチ１７ａ中のＶｐｒ３読み出しデータはデータラッチ１７ｂ中のＶｐｒ４読み出しデータと相違する。
【００９１】
シーケンサ１２は、ＰＲ３４ＸＯＲデータを、データラッチ１７ｃに保持する。ＰＲ３４ＸＯＲデータは、いくつかのビットにおいて１データを有する。計数・判断回路１２ｂは、ＰＲ３４相違ビット数Ｃ２および比較結果ＣＲ２を取得する。シーケンサ１２は、コマンド７０ｈを受け取って、ステータスデータを出力する。ステータスデータＤａｔａ中のＰＲ３４相違ビット数は第２基準値超であり、比較結果ＣＲ２はデータ１である。このため、図１６のケースでの選択セルセットＣＵｘのためのデータ検査およびデータ読み出し精度向上処理は、正しいＣＵｘ読み出しデータをセルセットＣＵｙに書き込むことに継続する。
【００９２】
図１７は、第１実施形態のメモリシステム１００の動作の一部を示し、データ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。図１７の動作は、図１５に後続することが可能である。
【００９３】
図１７に示されるように、メモリコントローラ２は、図１２のステップＳ３１での反転上書きの指示のために、コマンドＸ３ｈ、コマンド８０ｈ、アドレス信号ＡＤＤ、およびコマンド１Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド１Ｘｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行って、ＣＵｘ読み出しデータをデータラッチ１７ａに保持する。シーケンサ１２は、ＣＵｘ反転データを生成し、これをデータラッチ１７ｂに保持する。次いで、シーケンサ１２は、ＣＵｘ反転データを選択セルセットＣＵｘに書き込む。
【００９４】
ここまでの記述では、データの検査および読み出し精度向上処理（特に反転上書き）が、選択セルセットＣＵｘ全体に対して行われる例に関する。第１実施形態はこれに限られず、少なくとも１つの選択メモリセルＭＣｚに対するデータの検査および読み出し精度向上処理が行われることが可能である。すなわち、検査において、メモリコントローラ２は、読み出し電圧Ｖｐｒ１を用いて選択メモリセルＭＣｚから読み出されたデータ（Ｖｐｒ１セル読み出しデータ）を取得し、読み出し電圧Ｖｐｒ２を用いて選択メモリセルＭＣｚから読み出されたデータ（Ｖｐｒ２セル読み出しデータ）を取得する。そして、メモリコントローラ２は、Ｖｐｒ１セル読み出しデータとＶｐｒ２セル読み出しデータを比較する。そして、メモリコントローラ２は、Ｖｐｒ１セル読み出しデータとＶｐｒ２セル読み出しデータを比較する。Ｖｐｒ１セル読み出しデータがＶｐｒ２セル読み出しデータと異なっていれば、選択メモリセルＭＣｚは、書き込み直後の抵抗値と少し異なる抵抗値を有するものと判断されることが可能である。
【００９５】
同様に、検査において、メモリコントローラ２は、読み出し電圧Ｖｐｒ３を用いて選択メモリセルＭＣｚから読み出されたデータ（Ｖｐｒ３セル読み出しデータ）を取得し、電圧Ｖｐｒ４を用いてメモリセルＭＣｚから読み出されたデータ（Ｖｐｒ４セル読み出しデータ）を取得する。そして、メモリコントローラ２は、Ｖｐｒ３セル読み出しデータとＶｐｒ４セル読み出しデータを比較する。Ｖｐｒ３セル読み出しデータがＶｐｒ４セル読み出しデータと異なっていれば、選択メモリセルＭＣｚは、書き込み直後の抵抗値と中程度異なる抵抗値を有するものと判断されることが可能である。
【００９６】
＜１−３．利点（効果）＞
書き込まれた直後のメモリセルＭＣは、望まれる状態またはそれに近い高抵抗状態または低抵抗状態を有する。しかしながら、書き込まれた後に、メモリセルＭＣの抵抗状態は変化し得る。ある一方の抵抗状態にあることによって対応するデータを保持しているメモリセルＭＣの抵抗の値が、データ読み出しによってもう一方の抵抗状態にあると判断され得る値まで変化すると、当該メモリセルＭＣからは誤ったデータが読み出される。
【００９７】
抵抗値の変化によって、誤ったデータを保持すると判断されるに至ったメモリセルＭＣの数が少なければ、誤り訂正により正しいデータが復元されることが可能である。しかしながら、一般に、誤り訂正は時間を要する。また、誤ったデータを保持すると判断されるに至ったメモリセルＭＣの数の増加により、誤り訂正が不能になる場合がある。さらに、本実施形態が基づく例のように、１セルセットＣＵの読み出しデータ中で１ビットの誤りも許容されない場合がある。
【００９８】
第１実施形態のメモリコントローラ２は、記憶装置１へのアクセスが必要でない間に、メモリセルＭＣ中のデータの検査を行う。検査において、メモリコントローラ２は、選択メモリセルＭＣｚからのＶｐｒ１セル読み出しデータとＶｐｒ２セル読み出しデータを比較する。選択メモリセルＭＣｚが、書き込み直後の抵抗値と大きく変わらない抵抗値を有していれば、Ｖｐｒ１セル読み出しデータおよびＶｐｒ２セル読み出しデータは、一致するはずである。このことが利用されて、データの不一致に帰結するメモリセルＭＣの検出により、書き込み直後の抵抗値と少し異なる抵抗値を有するメモリセルＭＣが検出されることが可能である。
【００９９】
第１実施形態のメモリコントローラ２は、選択メモリセルＭＣｚからのＶｐｒ３セル読み出しデータとＶｐｒ４セル読み出しデータを比較する。Ｖｐｒ３セル読み出しデータおよびＶｐｒ４セル読み出しデータが不一致であれば、これは、選択メモリセルＭＣｚが書き込み直後の抵抗値と大きく異なる抵抗値を有することを示す。このことが利用されて、書き込み直後の抵抗値と中程度異なる抵抗値を有するメモリセルＭＣが検出されることが可能である。
【０１００】
第１実施形態のメモリコントローラ２は、選択セルセットＣＵｘからのＶｐｒ１読み出しデータとＶｐｒ２読み出しデータを比較し、Ｖｐｒ１読み出しデータおよびＶｐｒ２読み出しデータのうちのデータが不一致のビットを計数し、ＰＲ１２相違ビット数Ｃ１を第１基準値と比較する。ＰＲ１２相違ビット数Ｃ１が第１基準値を超えている場合、選択セルセットＣＵｘのメモリセルＭＣのデータの信頼性が劣化したと判断する。こうして、劣化したデータ信頼性を有する選択セルセットＣＵｘが検出されることが可能である。劣化したデータ信頼性を有する選択セルセットＣＵｘが検出されることは、そのようなセルセットＣＵｘのデータ信頼性を回復するための処理が実行されることを可能にする。
【０１０１】
第１実施形態のメモリコントローラ２は、ＰＲ１２相違ビット数Ｃ１が第１基準値を超えている場合、さらに、選択セルセットＣＵｘからのＶｐｒ３読み出しデータおよびＶｐｒ４読み出しデータを比較する。そして、メモリコントローラ２は、Ｖｐｒ３読み出しデータおよびＶｐｒ４読み出しデータのうちのデータが不一致のビットを計数し、ＰＲ３４相違ビット数Ｃ２を第２基準値と比較する。ＰＲ３４相違ビット数Ｃ２が第２基準値を超えている場合、選択セルセットＣＵｘのメモリセルＭＣのデータの信頼性が中程度劣化したと判断される。こうして、中程度劣化したデータ信頼性を有する選択セルセットＣＵｘが検出されることが可能である。中程度劣化したデータ信頼性を有する選択セルセットＣＵｘは、近い将来のデータ読み出しを経るときに誤り訂正に頼らざるを得ない可能性が高い。近い将来に誤り訂正に頼らざるを得ないほどにデータ信頼性が劣化した選択セルセットＣＵｘが検出されることは、実際のデータ読み出しに備えて事前にデータ信頼性を回復するための処理が実行されることを可能にする。
【０１０２】
また、一般に、メモリセルの抵抗値の変化による不具合、例えば誤ったデータの読み出しは、メモリセルに保持されているデータを当該メモリセルに上書きすることにより対処されることが可能な場合がある。しかしながら、ある種のメモリセルは、このような上書きを受け付けない。例えば、メモリセルＭＣのように２つの抵抗状態をデータ書き込みによって両方向に遷移可能なメモリセルでは、上書きが不能な場合がある。理由の１つは、以下のように考えられている。
【０１０３】
上記のように、メモリセルＭＣはメモリセルＭＣを流れる電流によって抵抗値を上げられる。しかしながら、高抵抗状態から抵抗値が減少したとはいえ依然高い抵抗値を有するメモリセルＭＣに、さらに抵抗値を上げるほどの電流を流すことが難しい。このため、抵抗値の減少した高抵抗状態のメモリセルＭＣの抵抗値を上げることが難しい。
【０１０４】
逆に、メモリセルＭＣは、電圧を印加されることによって抵抗値を下げられる。印加される電圧は、通常のデータ書き込みにおいて高抵抗状態のメモリセルＭＣを低抵抗状態に遷移させるのに必要な大きさに基づいて予め決定されている。このような電圧は、低抵抗状態から抵抗値が増加したとはいえ依然低い抵抗値を有するメモリセルＭＣに印加されると、メモリセルＭＣを破壊し得る。このため、抵抗値の増加した低抵抗状態のメモリセルＭＣの抵抗値を下げることが難しい。
【０１０５】
メモリコントローラ２は、データの信頼性が低下したと判断された選択セルセットＣＵｘのためのＣＵｘ反転データを生成、ＣＵｘ反転データを選択セルセットＣＵｘに書き込むことを記憶装置１に指示する。この書き込みにより、選択セルセットＣＵｘ中の各メモリセルＭＣに保持されるデータは反転するものの、各メモリセルＭＣの抵抗値は、書き込まれた直後に得られる形態になる。このため、メモリセルＭＣの劣化はリセットされ、メモリセルＭＣに保持されるデータの信頼性が回復する。また、ＣＵｘ反転データの選択セルセットＣＵｘへの書き込みは、特定のメモリセルＭＣのみの抵抗値を調整することの困難さを克服し、データ信頼性が低下したセルセットＣＵ中のデータ信頼性を回復できる。
【０１０６】
また、メモリコントローラ２は、データの信頼性が中程度低下したと判断された選択メモリセルＭＣｚからデータを読み出し、誤り訂正を経た正しいデータを、別のメモリセルＭＣに書き込む。このことは、データの信頼性が大きく低下したことに起因して実際のデータ読み出しのときに誤り訂正が必要となることを回避できる。
【０１０７】
このように、選択セルセットＣＵｘのデータの信頼性が判断され、信頼性の低下に基づいてＣＵｘ反転データの書き込みまたは誤り訂正されたデータの書き込みが行われる。このため、このようなデータ信頼性の判断、およびＣＵｘ反転データまたは正しいデータの書き込みを、例えば定期的に行って、例えば全てのセルセットＣＵに対して行うことにより、記憶装置１中のデータの信頼性を高く維持できる。より具体的には、メモリコントローラ２は、データ信頼性の検査およびデータ信頼性の回復処理（図１１および図１２のフロー）を経たセルセットＣＵが高いデータ信頼性を有するとの一定の確証を有することができる。
【０１０８】
＜１−４．変形例＞
図１８は、変形例での１セルセットＣＵに書き込まれるデータに含まれるデータの種類を示す。メモリコントローラ２は、１ページサイズの書き込みデータを、図１８に示される形式で生成する。図１８に示されるように、書き込みデータは、複数の情報データを含む。図１８は、２つの情報データの例を示す。情報データ１および情報データ２が使用されることに基づいて、書き込みデータは、情報データ１用反転フラグビットと、情報データ２用反転フラグビットを含む。情報データ１用反転フラグビットは、情報データ１のために機能し、情報データ２用反転フラグビットは、情報データ２のために機能する。各反転フラグビットの詳細は、図１０を参照して記述された通りである。
【０１０９】
図１９は、変形例のメモリシステム１００の動作の一部を示し、データ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。図１９の動作は、図１５に後続することが可能である。
【０１１０】
図１９に示されるように、メモリコントローラ２は、変形例の反転上書きの指示のために、コマンドＷ１ｈ、コマンド８０ｈ、アドレス信号ＡＤＤ、およびコマンド１Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。先頭のコマンドは、ビットの値を反転される情報データを指定する。例として、コマンドＷ１ｈは、情報データ１を指定する。
【０１１１】
シーケンサ１２は、コマンド１Ｘｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行って、ＣＵｘ読み出しデータをデータラッチ１７ａに保持する。シーケンサ１２は、ＣＵｘ読み出しデータのうち、情報データ１のための全ビット、および情報データ１用反転フラグビットの全ビットを反転して、ＣＵｘ部分反転データを生成する。シーケンサ１２は、ＣＵｘ部分反転データを選択セルセットＣＵｘに書き込む。
【０１１２】
変形例によれば、メモリセルＭＣへのデータ反転のための上書きによって選択セルセットＣＵｘにかかり得るストレスが緩和されることが可能である。
【０１１３】
（第２実施形態）
第２実施形態は、ＣＵｘ反転データを生成する要素の点で、第１実施形態と異なる。
【０１１４】
第２実施形態のメモリシステム１００は、第１実施形態のメモリシステム１００と同じ要素および接続を有する。一方、第２実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されており、具体的には、ＲＯＭ２２中のファームウェアがメモリコントローラ２に以下に記述される動作を行わせるように構成されている。
【０１１５】
図２０は、第２実施形態のメモリシステムの動作のフローの一部を示し、第１実施形態の図１２フローの一部を置換する。
【０１１６】
図２０に示されるように、図１２のステップＳ３０においてＰＲ３４相違ビット数Ｃ２が基準値を超えていない場合（Ｎｏ分岐）、フローはステップＳ４１に移行する。ステップＳ４１において、メモリコントローラ２は、ステップＳ３５と同様にして、ＣＵｘ読み出しデータを取得する。ステップＳ４２において、メモリコントローラ２は、ステップＳ３２と同様にして、ＣＵｘ反転データを生成する。
【０１１７】
ステップＳ４３において、メモリコントローラ２は、ＣＵｘ反転データを選択セルセットＣＵｘに書き込むことを記憶装置１に指示する。シーケンサ１２が指示を受け取ると、シーケンサ１２は、ＣＵｘ反転データを選択セルセットＣＵｘに上書きする。
【０１１８】
図２１は、第２実施形態のメモリシステム１００の動作の一部を示し、データ読み出し精度向上処理の間の信号ＤＱおよび種々の時点での各所でのデータの例を示す。図２１の動作は、図１５に後続することが可能である。
【０１１９】
図２１に示されるように、ステップＳ４１でのデータ読み出し指示のために、メモリコントローラ２は、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド２Ｘｈを記憶装置１に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド２Ｘｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行って、ＣＵｘ読み出しデータをメモリコントローラ２に送信する。シーケンサ１２は、コマンド２Ｘｈの受信からＣＵｘ読み出しデータの送信準備完了までの時間ｔＲに亘ってビジー信号を出力する。
【０１２０】
メモリコントローラ２は、ＣＵｘ読み出しデータを受け取ると、ＣＵｘ反転データを生成する。次いで、メモリコントローラ２は、ステップＳ４３でのデータ上書き指示のために、コマンド８０ｈ、アドレス信号ＡＤＤ、ＣＵｘ反転データＤＡＴＡ、およびコマンド１Ｘｈを記憶装置１に送信する。アドレス信号ＡＤＤは、メモリ選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド１Ｘｈを受け取ると、ＣＵｘ反転データを選択セルセットＣＵｘに書き込む。シーケンサ１２は、コマンド１Ｘｈの受信からデータ書き込みの完了までの時間ｔＰＲＯＧに亘ってビジー信号を出力する。
【０１２１】
第２実施形態は、第１実施形態の変形例に組み合わせられることも可能である。
【０１２２】
第２実施形態によれば、第１実施形態と同じく、選択メモリセルＭＣｚからのＶｐｒ１セル読み出しデータおよびＶｐｒ２セル読み出しデータが比較され、ならびに（または）選択メモリセルＭＣｚからのＶｐｒ３セル読み出しデータおよびＶｐｒ４セル読み出しデータが比較される。このため、第１実施形態と同じ利点を得られる。
【０１２３】
第２実施形態によれば、第１実施形態と同じく、選択セルセットＣＵｘからのＶｐｒ１読み出しデータおよびＶｐｒ２読み出しデータが比較され、ならびに（または）選択セルセットＣＵｘからのＶｐｒ３読み出しデータおよびＶｐｒ４読み出しデータが比較される。このため、第１実施形態と同じ利点を得られる。
【０１２４】
第２実施形態によれば、第１実施形態と同じく、データ信頼性が低下したと判断されたメモリセルＭＣｚが書き込み直後に保持しているデータの反転データが、選択メモリセルＭＣｚに上書きされる。このため、第１実施形態と同じ利点を得られる。
【０１２５】
第２実施形態によれば、ＣＵｘ反転データは、メモリコントローラ２によって生成される。このため、メモリシステム１００によるＣＵｘ反転データによる上書きのために記憶装置１が要する性能は、第１実施形態の記憶装置１が要する性能より低い。
【０１２６】
（第３実施形態）
第３実施形態は、ＣＵｘ反転データの読み出しに関し、第１または第２実施形態と組み合わせられることが可能である。
【０１２７】
第３実施形態のメモリシステム１は、第１実施形態のメモリシステム１００と同じ要素および接続を有する。一方、第３実施形態の記憶装置１、特にシーケンサ１２は、以下に記述される動作を行えるように構成されている。
【０１２８】
図２２は、第３実施形態のメモリシステム１００でのデータ読み出しの間の信号ＤＱおよび各所でのデータの例を示す。図２２および以下の記述は、選択セルセットＣＵｘが反ＣＵｘ反転データを保持している例に基づく。
【０１２９】
図２２に示されるように、メモリコントローラ２は、選択セルセットＣＵｘからのデータ読み出しのために、コマンドＹ１ｈ、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド１Ｙｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。
【０１３０】
シーケンサ１２は、コマンド１Ｙｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行う。シーケンサ１２は、ＣＵｘ読み出しデータの反転フラグビットを検査する。第１実施形態において記述されたように、反転フラグビットは、対応するデータ（当該反転フラグビットを含んだセルセットＣＵｘ読み出しデータ）が、データ反転されたビットを含むか含まないかを示すことができる。通常のデータ反転無しの書き込みの時にある値（例えば０）を使用することが規則とされていれば、シーケンサ１２は、反転フラグビットのデータを参照して、反転フラグビットがデータ反転を示すか否かを知得することができる。具体例として、反転フラグビットが０であれば、ＣＵｘ読み出しデータは反転されておらず、反転フラグビットが１であればＣＵｘ読み出しデータは反転されている。
【０１３１】
上記のように、現行の例では、選択セルセットＣＵｘ中のデータは、反転されたデータを全ビットにおいて有し、よって、反転フラグビットはデータが反転されていることを示す。このため、シーケンサ１２は、ＣＵｘ読み出しデータの全ビットにおいてデータを反転して元データ（ＣＵｘ元データ）を生成し、ＣＵｘ元データをメモリコントローラ２に送信する。
【０１３２】
一方、反転フラグビットがデータ反転されていないことを示す場合、シーケンサ１２は、ＣＵｘ読み出しデータをそのまま、メモリコントローラ２に送信する。
【０１３３】
反転フラグビットによるデータ反転の判断は、既知の任意の方法で行われることが可能である。例えば、第１実施形態において記述されたように、反転フラグビットは、同じデータを有する複数のビットを含み、判断の際、より多くのビットが保持するデータが、反転フラグビットが示すべき情報（例えばデータ反転済）として採用される。
【０１３４】
第３実施形態によれば、選択セルセットＣＵｘに書き込まれるデータは反転フラグビットを含み、シーケンサ１２は反転フラグビットからＣＵｘ読み出しデータが反転ＣＵｘデータであるかを判断し、反転ＣＵｘデータである場合、ＣＵｘ元データを出力する。こうすることにより、選択セルセットＣＵｘがＣＵｘ反転データを含む場合であっても、記憶装置１はビットデータの反転を検出し、復元されたＣＵｘ元データを送信することができる。しかも、ＣＵｘ元データの選択セルセットＣＵｘへの書き込みの際の反転フラグビットをあるデータに決めておけば、ＣＵｘ反転データにおいて反転フラグビットは、データ反転を示す値へと、特別な処理を経ずに変化する。よって、第３実施形態は、第１または第２実施形態との組み合わせにおいて、データの読み出しが複雑になることを回避できる。
【０１３５】
また、メモリコントローラ１は、第３実施形態の記憶装置１から受け取った読み出しデータ（ＣＵｘ元データ）が高い信頼性を有していると、記憶装置１を信頼することができる。具体的には以下の通りである。ＣＵｘ元データは、ＣＵｘ反転データへの変化を経た場合と、経ていない場合がある。ＣＵｘ反転データが経由されていない場合は、第１検査読み出しによってＰＲ１２相違ビット数Ｃ１が第１基準値以下であったのであり、ＣＵｘ読み出しデータが高い信頼性を有していたことを意味する。一方、ＣＵｘ反転データが経由された場合は、第１検査読み出しによってＰＲ１２相違ビット数Ｃ１が第１基準値以下であったものの、データの反転によってデータの信頼性が回復したからである。
【０１３６】
（第４実施形態）
第４実施形態は、ＣＵｘ反転データをＣＵｘ元データに復元する要素の点で、第３実施形態と異なる。
【０１３７】
第４実施形態のメモリシステム１００は、第１実施形態のメモリシステム１００と同じ要素および接続を有する。一方、第４実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されており、具体的には、ＲＯＭ２２中のファームウェアがメモリコントローラ２に以下に記述される動作を行わせるように構成されている。
【０１３８】
図２３は、第４実施形態のメモリシステム１００でのデータの読み出しの間の信号ＤＱおよび各所でのデータの例を示す。図２３および以下の記述は、選択セルセットＣＵｘがＣＵｘ反転データを保持している例に基づく。
【０１３９】
図２３に示されるように、メモリコントローラ２は、選択セルセットＣＵｘからのデータ読み出しのために、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド２Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。
【０１４０】
シーケンサ１２は、コマンド２Ｘｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行い、ＣＵｘ読み出しデータをメモリコントローラ２に送信する。メモリコントローラ２は、ＣＵｘ読み出しデータの反転フラグビットを検査する。反転フラグビットがデータの反転を示す場合（ＣＵｘ読み出しデータがＣＵｘ反転データである場合）、メモリコントローラ２は、ＣＵｘ読み出しデータの全ビットにおいてデータを反転してＣＵｘ元データを取得する。
【０１４１】
第４実施形態によれば、第３実施形態と同じく、選択セルセットＣＵｘに書き込まれるデータは反転フラグビットを含み、メモリコントローラ２は反転フラグビットからＣＵｘ読み出しデータが反転ＣＵｘデータであるかを判断し、ＣＵｘ反転データである場合、各ビットのデータを戻して復元されたＣＵｘ元データを取得する。このため、第３実施形態と同じ利点を得られる。
【０１４２】
第４実施形態によれば、ＣＵｘ元データは、メモリコントローラ２によって生成される。このため、メモリコントローラ２がＣＵｘ元データを取得するのに記憶装置１が要する性能は、第３実施形態の記憶装置１が要する性能より低い。
【０１４３】
（第５実施形態）
第５実施形態は、セルセットＣＵへの上書きに関する。
【０１４４】
第５実施形態のメモリシステム１は、第１実施形態のメモリシステム１００と同じ要素および接続を有する。一方、第５実施形態の記憶装置１、特にシーケンサ１２は、以下に記述される動作を行えるように構成されている。
【０１４５】
図２４は、第５実施形態のメモリシステムの動作のフローを示す。図２４および以下の記述は、図２４のフローの開始の時点で、選択セルセットＣＵｘがすでに、データ書き込みを経てデータを保持している例に基づく。
【０１４６】
図２４に示されるように、メモリコントローラ２は、選択セルセットＣＵｘに書き込みデータ（ＣＵｘ書き込みデータ）を書き込む（上書きする）ことを指示する（ステップＳ５１）。このデータ書き込み指示は、通常のデータ書き込みと異なる書き込みを指示し、以下、指示されるデータ上書きは、条件付き反転書き込みと称される。ＣＵｘ書き込みデータは、いずれかのデータラッチ１７（例えばデータラッチ１７ｃ）に保持される。
【０１４７】
ステップＳ５２において、シーケンサ１２は、指示を受け取って、選択セルセットＣＵｘに対する通常データ読み出しを行う。得られたＣＵｘ読み出しデータは、いずれかのデータラッチ１７（例えばデータラッチ１７ａ）に保持される。ステップＳ５３において、シーケンサ１２は、ＣＵｘ読み出しデータとＣＵｘ書き込みデータのＸＯＲ演算を行う。具体的には、シーケンサ１２は、ＣＵｘ読み出しデータとＣＵｘ書き込みデータの同じ位置のそれぞれの計２つのビットを入力して用い、論理演算回路ＬＣを用いて２つの入力のＸＯＲを演算し、このような演算をＣＵｘ読み出しデータおよびＣＵｘ書き込みデータの全ビットに対して行う。演算の結果（新旧ＸＯＲデータ）は、各ビットにおいて、０データまたは１データを有し、さらに別のデータラッチ（例えばデータラッチ１７ｂ）に保持される。１データは、対応するセルトランジスタＭＣが、現在保持されているデータと反対のデータを書き込まれることを意味する。
【０１４８】
ステップＳ５４において、シーケンサ１２は、新旧ＸＯＲデータ中の１データのビットの数（新旧データ相違ビット数）Ｃ３を計数する。ステップＳ５６において、シーケンサ１２は、新旧データ相違ビット数Ｃ３が第３基準値を超えているかを判断する。第３基準値は、例えば、１ページ中のデータの総ビット数の半分である。新旧データ相違ビット数Ｃ３が第３基準値以下であれば（ステップＳ５６のＮｏ分岐）、シーケンサ１２は、ＣＵｘ書き込みデータを選択セルセットＣＵｘに書き込んで、フローは終了する。
【０１４９】
一方、新旧データ相違ビット数Ｃ３が第３基準値を超えている場合（ステップＳ５６のＹｅｓ分岐）、シーケンサ１２は、ＣＵｘ書き込みデータの全ビットにおいてデータを反転して、ＣＵｘ書き込み反転データを生成する（ステップＳ５８）。ステップＳ５９において、シーケンサ１２は、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込んで、フローは終了する。
【０１５０】
図２５は、第５実施形態のメモリシステム１００での条件付き反転書き込みの信号ＤＱおよび各所でのデータの例を示す。図２５に示されるように、メモリコントローラ２は、図２４のステップ５１での条件付き反転書き込みの指示のために、コマンドＺ１ｈ、コマンド８０ｈ、アドレス信号ＡＤＤ、ＣＵｘ書き込みデータＤＡＴＡ、およびコマンド１Ｚｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。ＣＵｘ書き込みデータは、データラッチ１７ｃに保持される。
【０１５１】
シーケンサ１２は、コマンド１Ｚｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行う。ＣＵｘ読み出しデータは、データラッチ１７ａに保持される。シーケンサ１２は、ＣＵｘ書き込みデータとＣＵｘ読み出しデータのＸＯＲを演算する。新旧ＸＯＲデータは、データラッチ１７ｂに保持される。計数・判断回路１２ｂは、新旧データ相違ビット数Ｃ３を取得し、新旧データ相違ビット数Ｃ３を第３基準値と比較する。新旧データ相違ビット数Ｃ３が第３基準値超である場合、反転データへと上書きされることになるビットが第３基準値（例えば半ページサイズ）超である。この場合、シーケンサ１２は、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込む。結果、反転データへと上書きされるビットの数は、第３基準値以下である。保持されているデータと反対のデータを書き込まれるビットのみが上書きされ、保持されているデータを維持するビットはデータを書き込まれないからである。
【０１５２】
一方、新旧データ相違ビット数Ｃ３の数から、反対のデータを書き込まれることになり得るビットが第３基準値以下の場合、保持されているデータを維持するビットが第３基準値（例えば半ページサイズ）以下である。この場合、シーケンサ１２は、ＣＵｘ書き込みデータを選択セルセットＣＵｘに上書きする（図示せず）。
【０１５３】
このように、ＣＵｘ読み出しデータの中身に関わらず、保持されているデータと反対のデータを書き込まれるビットの数は第３基準値以下である。
【０１５４】
選択セルセットＣＵｘからのデータ読み出しには、第３または第４実施形態が適用されることが可能である。
【０１５５】
第５実施形態の記憶装置１は、選択セルセットＣＵｘに対する条件付き反転書き込みを指示されると、ＣＵｘ書き込みデータとＣＵｘ読み出しデータの間でデータが不一致のビットＣ３を計数する。新旧データ相違ビット数Ｃ３が第３基準値以下の場合、シーケンサ１２はＣＵｘ書き込みデータを選択セルセットＣＵｘに書き込み、新旧データ相違ビット数Ｃ３が第３基準値超の場合、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込む。このような書き込みにより、ＣＵｘ読み出しデータの中身に関わらず、保持されているデータと反対のデータを書き込まれるビットの数は第３基準値以下である。このことは、選択セルセットＣＵｘ中のメモリセルＭＣへの書き込みの回数を抑制し、選択セルセットＣＵｘの書き込み起因の寿命の減少を抑制できる。ひいては、記憶装置１の寿命の短縮が抑制されることが可能である。
【０１５６】
（第６実施形態）
第６実施形態は、ＣＵｘ書き込み反転データの生成の要否の判断および実行を行う要素の点で、第５実施形態と異なる。
【０１５７】
第６実施形態のメモリシステム１００は、第１実施形態のメモリシステム１００と同じ要素および接続を有する。一方、第６実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されており、具体的には、ＲＯＭ２２中のファームウェアがメモリコントローラ２に以下に記述される動作を行わせるように構成されている。
【０１５８】
図２６は、第６実施形態のメモリシステムの動作のフローの一部を示す。図２６および以下の記述は、図２６のフローの開始の時点で、選択セルセットＣＵｘがすでにデータ書き込みを経てデータを保持している例に基づく。
【０１５９】
図２６に示されるように、ステップＳ６１において、メモリコントローラ２は、選択セルセットＣＵｘにデータを書き込むことを決定し、ＣＵｘ書き込みデータを生成する。ステップＳ６２において、メモリコントローラ２は、選択セルセットＣＵｘからデータを読み出すことを記憶装置１に指示し、ＣＵｘ読み出しデータを取得する。
【０１６０】
ステップＳ６３において、メモリコントローラ２は、ステップＳ５３と同様にして、ＣＵｘ書き込みデータとＣＵｘ読み出しデータのＸＯＲ演算を行う。ステップＳ６４において、メモリコントローラ２は、新旧ＸＯＲデータ中の１データのビットを計数する。ステップＳ６６において、メモリコントローラ２は、新旧データ相違ビット数Ｃ３が第３基準値を超えているかを判断する。新旧データ相違ビット数Ｃ３が第３基準値以下であれば（ステップＳ６６のＮｏ分岐）、メモリコントローラ２は、ＣＵｘ書き込みデータを選択セルセットＣＵｘに書き込むことを記憶装置１に指示する（ステップＳ７１）。シーケンサ１２は、指示を受け取ると、選択セルセットＣＵｘにＣＵｘ書き込みデータを書き込み（ステップＳ７２）、フローは終了する。
【０１６１】
一方、新旧データ相違ビット数Ｃ３が第３基準値超であれば（ステップＳ６６のＹｅｓ分岐）、メモリコントローラ２は、ステップＳ５８と同様にして、ＣＵｘ書き込み反転データを生成する（ステップＳ７３）。ステップＳ７４において、メモリコントローラ２は、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込むことを記憶装置１に指示する。シーケンサ１２は、指示を受け取ると、選択セルセットＣＵｘにＣＵｘ書き込み反転データを書き込み（ステップＳ７５）、フローは終了する。
【０１６２】
図２７は、第６実施形態のメモリシステム１００での条件付き反転書き込みの間の信号ＤＱおよび各所でのデータの例を示す。図２７に示されるように、メモリコントローラ２は、ＣＵｘ書き込みデータをＲＡＭ２３中、例えばＲＡＭ２３中の領域２３ｃ中で生成する。メモリコントローラ２は、図２６のステップＳ６２での選択セルセットＣＵｘからのデータ読み出しの指示のために、コマンド００ｈ、アドレス信号ＡＤＤ、およびコマンド２Ｘｈを記憶装置１に順に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、コマンド２Ｘｈを受け取ると、選択セルセットＣＵｘに対して通常データ読み出しを行い、ＣＵｘ読み出しデータをメモリコントローラ２に送信する。メモリコントローラ２は、ＣＵｘ読み出しデータを受け取り、これをＲＡＭ２３の別の領域（例えば領域２３ａ）に保持する。
【０１６３】
メモリコントローラ２は、ＣＵｘ書き込みデータとＣＵｘ読み出しデータのＸＯＲを演算する。新旧ＸＯＲデータは、ＲＡＭ２３のさらに別の領域（例えば領域２３ｂ）に保持される。メモリコントローラ２は、新旧データ相違ビット数Ｃ３を取得し、新旧データ相違ビット数Ｃ３を第３基準値と比較する。新旧データ相違ビット数Ｃ３が第３基準値超である場合、メモリコントローラ２は、ＣＵｘ書き込みデータからＣＵｘ書き込み反転データをＲＡＭ２３の領域（例えば領域２３ｂ）において生成する。
【０１６４】
メモリコントローラ２は、図２６のステップＳ７４でのＣＵｘ書き込み反転データの書き込みの指示のために、コマンド８０ｈ、アドレス信号ＡＤＤ、ＣＵｘ書き込み反転データＤＡＴＡ、およびコマンド１Ｘｈを順に記憶装置１に送信する。アドレス信号ＡＤＤは、選択セルセットＣＵｘを指定する。シーケンサ１２は、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込む。
【０１６５】
一方、新旧データ相違ビット数Ｃ３が第３基準値以下の場合、メモリコントローラ２は、領域２３ｃ中のＣＵｘ書き込みデータを、記憶装置１に送信する。
【０１６６】
選択セルセットＣＵｘからのデータ読み出しには、第３または第４実施形態が適用されることが可能である。
【０１６７】
第６実施形態のメモリコントローラ２は、選択セルセットＣＵｘへの書き込みを決定すると、ＣＵｘ書き込みデータとＣＵｘ読み出しデータの間でデータが不一致のビット数Ｃ３を計数する。そして、第５実施形態と同じく、新旧データ相違ビット数Ｃ３が第３基準値以下の場合、メモリコントローラ２はＣＵｘ書き込みデータを選択セルセットＣＵｘに書き込むことを記憶装置１に指示し、新旧データ相違ビット数Ｃ３が第３基準値超の場合、ＣＵｘ書き込み反転データを選択セルセットＣＵｘに書き込むことを記憶装置１に指示する。このため、第５実施形態と同じ利点を得られる。
【０１６８】
第６実施形態によれば、新旧データ相違ビット数Ｃ３の計数、およびＣＵｘ書き込み反転データの生成は、メモリコントローラ２によって行われる。このため、メモリシステム１００においてＣＵｘ書き込み反転データの生成の要否の判断および実行を行うために記憶装置１が要する性能は、第５実施形態の記憶装置１が要する性能より低い。
【０１６９】
ここまでの記述は、記憶装置１がＲｅＲＡＭである例に関する。実施形態は、この例に限られず、他のＲＡＭ、例えばＭＲＡＭ（magnetoresistive RAM）、ＰＣＲＡＭ（phase change RAM）に適用されることが可能である。
【０１７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１７１】
１００…メモリシステム、２００…ホスト装置、１…記憶装置、２…メモリコントローラ、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＥＣＣ回路、２５…メモリインターフェイス、２６…ホストインターフェイス、１１…メモリセルアレイ、１２…シーケンサ、１３…ＷＬデコーダ、１４…ＳＧＬデコーダ、１５…ＧＢＬデコーダ、１６…センスアンプ、１７…データラッチセット。
【図１】
2018163720.tif 000003
【図２】
2018163720.tif 000004
【図３】
2018163720.tif 000005
【図４】
2018163720.tif 000006
【図５】
2018163720.tif 000007
【図６】
2018163720.tif 000008
【図７】
2018163720.tif 000009
【図８】
2018163720.tif 000010
【図９】
2018163720.tif 000011
【図１０】
2018163720.tif 000012
【図１１】
2018163720.tif 000013
【図１２】
2018163720.tif 000014
【図１３】
2018163720.tif 000015
【図１４】
2018163720.tif 000016
【図１５】
2018163720.tif 000017
【図１６】
2018163720.tif 000018
【図１７】
2018163720.tif 000019
【図１８】
2018163720.tif 000020
【図１９】
2018163720.tif 000021
【図２０】
2018163720.tif 000022
【図２１】
2018163720.tif 000023
【図２２】
2018163720.tif 000024
【図２３】
2018163720.tif 000025
【図２４】
2018163720.tif 000026
【図２５】
2018163720.tif 000027
【図２６】
2018163720.tif 000028
【図２７】
2018163720.tif 000029