(57)【要約】【課題】  データの誤り訂正不能を抑制する。【解決手段】  一実施形態によるメモリシステムは、記憶装置とコントローラとを含む。記憶装置は、ビット線と、ワード線と、第１トランジスタを介してビット線と接続されるとともに第１セルトランジスタを含んだ第１ストリングと、第２トランジスタを介してビット線と接続されるとともに第２セルトランジスタを含んだ第２ストリングと、を含む。第２セルトランジスタと第１セルトランジスタはワード線と接続されている。コントローラは、第１セルトランジスタに第１データを書き込むことと、第２セルトランジスタに第２データを書き込むことと、を記憶装置に指示し、第１データおよび第２データの書き込みの指示の後で第１データおよび第２データを保持している間に、第１セルトランジスタまたは第２セルトランジスタからデータをリードすることを記憶装置に指示する、ように構成されている。【選択図】      図７
2019164847.tif 000002
【特許請求の範囲】
【請求項１】
ビット線と、
ワード線と、
第１トランジスタを介して前記ビット線と接続され、第１セルトランジスタを含んだ第１ストリングと、
第２トランジスタを介して前記ビット線と接続され、第２セルトランジスタを含んだ第２ストリングであって、前記第２セルトランジスタと前記第１セルトランジスタは前記ワード線と接続されている、第２ストリングと、
を備える記憶装置と、
前記第１セルトランジスタに第１データを書き込むことと、前記第２セルトランジスタに第２データを書き込むことと、を前記記憶装置に指示し、
前記第１データおよび前記第２データの書き込みの前記指示の後で前記第１データおよび前記第２データを保持している間に、前記第１セルトランジスタまたは前記第２セルトランジスタからデータをリードすることを前記記憶装置に指示する、
ように構成されているコントローラと、
を備えるメモリシステム。
【請求項２】
前記記憶装置は、前記第１ストリングおよび前記第２ストリングを含む前記第１ストリング乃至第ｘストリング（ｘは３以上の自然数）を含み、
前記第ｘストリングは、第ｘトランジスタを介して前記ビット線と接続され、第ｘセルトランジスタを含み、
前記コントローラは、
前記第１セルトランジスタ乃至前記第ｘセルトランジスタに、それぞれ前記第１データ乃至第ｘデータを書き込むことを前記記憶装置に指示し、
前記第１データ乃至前記第ｘデータの書き込みの前記指示の後で前記第１データ乃至前記第ｘデータを保持している間に、前記第１セルトランジスタ乃至前記第ｘセルトランジスタの１つからデータをリードすることを前記記憶装置に指示する、
ように構成されている、
請求項１のメモリシステム。
【請求項３】
前記記憶装置は、１つのブロックにおいて、前記ビット線に接続されるストリングとして全部で前記第１ストリング乃至前記第ｘストリングを備える、
請求項２のメモリシステム。
【請求項４】
前記記憶装置は、第１ブロックと第２ブロックとを備え、
前記第１ブロックは、前記第１ストリングおよび前記第２ストリングを含み、
前記コントローラは、前記第１セルトランジスタおよび前記第２セルトランジスタの少なくとも一方からリードされたデータ中の誤りを訂正できない場合、前記第１ブロック中のデータを前記第２ブロックにコピーするように構成されている、
請求項１のメモリシステム。
【請求項５】
前記コントローラは、前記第１ブロック中のデータの前記第２ブロックへの前記コピーの後、前記第１ブロックをバッドブロックとして登録するように構成されている、
請求項４のメモリシステム。
【請求項６】
前記コントローラは、前記第１データおよび前記第２データの書き込みの前記指示の後、前記記憶装置からのデータのリードおよび前記記憶装置へのデータの書き込みを指示する前に前記第１セルトランジスタまたは前記第２セルトランジスタからのデータの前記リードを前記記憶装置に指示する、ように構成されている、
請求項１のメモリシステム。
【請求項７】
前記コントローラは、
前記第１データおよび前記第２データの書き込みの前記指示の後、前記第２データの書き込みの間に処理の中断を指示し、
前記処理の中断の前記指示の後で前記第１データおよび前記第２データを保持している間に、前記記憶装置にデータのリードを指示するコマンドを送信する、
ように構成されている、
請求項１のメモリシステム。
【請求項８】
前記コントローラは、前記コマンドによって指示されたデータの受信後に、前記第１セルトランジスタまたは前記第２セルトランジスタからのデータの前記リードを前記記憶装置に指示する、ように構成されている、
請求項７のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概してメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置と、半導体記憶装置を制御するコントローラとを含んだメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０３９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
より高性能なメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態によるメモリシステムは、記憶装置とコントローラとを含む。記憶装置は、ビット線と、ワード線と、第１トランジスタを介して上記ビット線と接続されるとともに第１セルトランジスタを含んだ第１ストリングと、第２トランジスタを介して上記ビット線と接続されるとともに第２セルトランジスタを含んだ第２ストリングと、を含む。上記第２セルトランジスタと上記第１セルトランジスタは上記ワード線と接続されている。コントローラは、上記第１セルトランジスタに第１データを書き込むことと、上記第２セルトランジスタに第２データを書き込むことと、を上記記憶装置に指示し、上記第１データおよび上記第２データの書き込みの上記指示の後で上記第１データおよび上記第２データを保持している間に、上記第１セルトランジスタまたは上記第２セルトランジスタからデータをリードすることを上記記憶装置に指示する、ように構成されている。
【発明の効果】
【０００６】
より高性能なメモリシステムを提供できる。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示す。
【図２】図２は、第１実施形態のセルアレイ中のいくつかの要素および接続の例を示す。
【図３】図３は、第１実施形態のデータを保持するセルトランジスタの閾値電圧の分布を示す。
【図４】図４は、第１実施形態のメモリシステムの動作のフローを示す。
【図５】図５は、第１実施形態のメモリシステムの一部のいくつかの状態を示す。
【図６】図６は、第１実施形態のメモリシステムの動作の一部のサブフローを示す。
【図７】図７は、第１実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【図８】図８は、第１実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【図９】図９は、第１実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【図１０】図１０は、第１実施形態のメモリシステムの動作のサブフローを示す。
【図１１】図１１は、第１実施形態のメモリシステムの動作のサブフローを示す。
【図１２】図１２は、第２実施形態のメモリシステムの動作のフローを示す。
【図１３】図１３は、第２実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【図１４】図１４は、第２実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【図１５】図１５は、第２実施形態のメモリシステムの一部の或る処理の間の状態を示す。
【発明を実施するための形態】
【０００８】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。また、ある実施形態についての記述は全て、明示的にまたは自明的に排除されない限り、別の実施形態の記述としても当てはまる。
【０００９】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【００１０】
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【００１１】
本明細書および特許請求の範囲において、ある第１要素が別の第２要素に「接続されている」とは、第１要素が直接的または常時あるいは選択的に導電性となる要素を介して第２要素に接続されていることを含む。
【００１２】
（第１実施形態）
＜１．構造（構成）＞
図１は、第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示す。図１に示されるように、メモリシステム５は、ホスト装置３により制御され、半導体記憶装置（記憶装置）１およびメモリコントローラ２を含む。メモリシステム５は、例えば、ＳＳＤ（solid state drive）またはＳＤＴＭカード等であることが可能である。
【００１３】
記憶装置１は、メモリコントローラ２により制御される。メモリコントローラ２は、ホスト装置３から命令を受け取り、受け取られた命令に基づいて記憶装置１を制御する。
【００１４】
＜１．１．メモリコントローラ＞
メモリコントローラ２は、ホストインターフェイス２１、ＣＰＵ（central processing unit）２２、ＲＡＭ（random access memory）２３、ＲＯＭ（read only memory）２４、メモリインターフェイス２５、ＥＣＣ（error correction code）回路２６を含む。ＲＯＭ２４に格納されていてＲＡＭ２３上にロードされたファームウェア（プログラム）がＣＰＵ２２によって実行されることによって、メモリコントローラ２は種々の動作、およびホストインターフェイス２１ならびにメモリインターフェイス２５の機能の一部を実行する。ＲＡＭ２３は、さらに、データを一時的に保持し、バッファおよびキャッシュとして機能する。
【００１５】
ホストインターフェイス２１は、バスを介してホスト装置３と接続され、メモリコントローラ２とホスト装置３との通信を司る。メモリインターフェイス２５は、記憶装置１と接続され、メモリコントローラ２と記憶装置１との通信を司る。
【００１６】
ＥＣＣ回路２６は、記憶装置１に書き込まれるデータおよび記憶装置１からリードされたデータに対して、誤りの検出および訂正に必要な処理を行う。具体的には、ＥＣＣ回路２６は、記憶装置１に書き込まれるデータ（実書き込みデータ）の誤り訂正のための冗長データを生成する。生成された冗長データと実書き込みデータが記憶装置１に書き込まれる。したがって、記憶装置１からリードされたデータは、実書き込みデータと対応する冗長データを含む。また、ＥＣＣ回路２６は、記憶装置１からリードされたデータの中の誤りを検出し、誤りがある場合に誤りの訂正を試みる。
【００１７】
＜１．２．半導体メモリ＞
記憶装置１は、メモリセルアレイ（セルアレイ）１１、入出力回路１２、シーケンサ（制御回路）１３、ドライバ１５、センスアンプ１６、およびロウデコーダ１９等の要素を含む。
【００１８】
セルアレイ１１は複数のメモリブロック（ブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を含む。各ブロックＢＬＫは複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、…）の集合である。各ストリングユニットＳＵは複数のＮＡＮＤストリング（ストリング）ＳＴＲ（ＳＴＲ０、ＳＴＲ１、…）（図示せず）の集合である。ストリングＳＴＲは、複数のメモリセルトランジスタ（セルトランジスタ）ＭＴを含む。
【００１９】
入出力回路１２は、ＮＡＮＤバスを介して、メモリコントローラ２と接続されている。ＮＡＮＤバスは、複数の制御信号および８ビットの幅の信号ＤＱを伝送する。制御信号は、信号ＣＬＥ、ＡＬＥ、￣ＷＥ、￣ＲＥを含む。入出力回路１２は、メモリコントローラ２から制御信号を受け取り、制御信号に基づいて、信号ＤＱを取り込み、また出力する。信号ＤＱは、コマンド（ＣＭＤ）、データ（ＤＡＴ）、アドレス信号（ＡＤＤ）、ステータス情報（ＳＴＡ）等であり得る。
【００２０】
アサートされている信号ＣＬＥは、この信号ＣＬＥと並行して記憶装置１に入力される信号ＤＱがコマンドＣＭＤであることを記憶装置１に通知する。アサートされている信号ＡＬＥは、この信号ＡＬＥと並行して記憶装置１に入力される信号ＤＱがアドレス信号ＡＤＤであることを記憶装置１に通知する。アサートされている信号￣ＷＥは、この信号￣ＷＥと並行して記憶装置１に入力される信号ＤＱを記憶装置１に取り込ませることを指示する。アサートされている信号￣ＲＥは、記憶装置１に信号ＤＱを出力することを指示する。信号ＲＹ／￣ＢＹは、記憶装置１がレディー状態であるか、ビジー状態であるかを示し、ローレベルによってビジー状態を示す。記憶装置１は、レディー状態においてメモリコントローラ２からの命令を受け付け、ビジー状態においてメモリコントローラ２からの命令を受け付けない。
【００２１】
シーケンサ１３は、入出力回路１２からコマンドＣＭＤおよびアドレス信号ＡＤＤを受け取り、コマンドＣＭＤおよびアドレス信号ＡＤＤに基づいて、ドライバ１５、センスアンプ１６、およびロウデコーダ１９を制御する。
【００２２】
ドライバ１５は、複数の電位のうちの選択されたものをロウデコーダ１９に供給する。ロウデコーダ１９は、ドライバ１５から種々の電位を受け取り、入出力回路１２からアドレス信号ＡＤＤを受け取り、受け取られたアドレス信号ＡＤＤに基づいて選択された１つのブロックＢＬＫにドライバ１５からの電位を転送する。
【００２３】
センスアンプ１６は、セルトランジスタＭＴの状態をセンスし、センスされた状態に基づいてリードデータを生成し、また、書き込みデータをセルトランジスタＭＴに転送する。
【００２４】
＜１．３．セルアレイ＞
図２は、第１実施形態のセルアレイ１１中のいくつかの要素および接続の例を示し、１つのブロックＢＬＫ０の要素および接続、ならびに関連する要素を示す。複数の（例えば全ての）ブロックＢＬＫは、みな図２に示される要素および接続を含む。
【００２５】
１つのブロックＢＬＫは、複数（例えば４つ）のストリングユニットＳＵ０〜ＳＵ３を含む。以下の記述は、１ブロックＢＬＫが４つのストリングユニットＳＵ０〜ＳＵ３を含む例に基づく。
【００２６】
ｍ（ｍは自然数）本のビット線ＢＬ０〜ＢＬ（ｍ−１）の各々は、各ブロックＢＬＫにおいて、ストリングユニットＳＵ０〜ＳＵ３の各々からの１つのストリングＳＴＲと接続されている。
【００２７】
各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数（例えば８つ）のセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、および１つの選択ゲートトランジスタＤＴ（ＤＴ０、ＤＴ１、ＤＴ２、またはＤＴ３）を含む。トランジスタＳＴ、ＭＴ、およびＤＴは、この順で、ソース線ＣＥＬＳＲＣと１つのビット線ＢＬとの間に直列に接続されている。セルトランジスタＭＴは、制御ゲート電極（ワード線ＷＬ）、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。
【００２８】
相違する複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは１つのストリングユニットＳＵを構成する。各ストリングユニットＳＵにおいて、セルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極（ゲート）は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。さらに、各ブロックＢＬＫにおいて、相違するストリングユニットＳＵ中の同じアドレスのワード線ＷＬも相互に接続されている。１つのストリングユニットＳＵ中でワード線ＷＬを共有するセルトランジスタＭＴの組は、セルユニットＣＵと称される。
【００２９】
トランジスタＤＴ０〜ＤＴ３はストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。α＝０〜３の各々の場合について、ストリングユニットＳＵαの複数のストリングＳＴＲの各々のトランジスタＤＴαのゲートは選択ゲート線ＳＧＤＬαに接続されている。トランジスタＳＴのゲートは、選択ゲート線ＳＧＳＬに接続されている。
【００３０】
＜１．４．セルトランジスタ＞
記憶装置１は、１つのセルトランジスタＭＴにおいて２ビット以上のデータを保持することができる。図３は、書き込みの結果、１つのセルトランジスタＭＴ当たり３ビットのデータを保持するセルトランジスタＭＴの閾値電圧の分布を示す。各セルトランジスタＭＴの閾値電圧は、複数の範囲のうちの保持されるデータに応じた範囲内にある。セルトランジスタＭＴ当たり３ビットの記憶の場合、各セルトランジスタＭＴは、８つの閾値電圧のうちのいずれかを有し得る。８つの閾値電圧は、“１１１” データ、“１１０”データ、“１００”データ、“０００”データ、“０１０”データ、“０１１”データ、“００１”データ、および“１０１”データをそれぞれ保持している状態である。“１１１”データ、“１１０”データ、“１００”データ、“０００”データ、“０１０”データ、“０１１”データ、“００１”データ、および“１０１”データをそれぞれ保持している状態のセルトランジスタＭＴは、Ｅｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧ状態にあると称される。
【００３１】
ある同じ３ビットデータを保持するように書き込まれた複数のセルトランジスタＭＴであっても互いに相違する閾値電圧を有し得、よって、閾値電圧は分布する。
【００３２】
リード対象のセルトランジスタＭＴによって保持されているデータの判別のために、当該セルトランジスタＭＴの状態が判断される。状態の判断のために、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧが用いられる。以下、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧを含め、状態の判断のためにリード対象のセルトランジスタＭＴに印加される或る大きさの電圧は、リード電圧ＶＣＧＲと称される場合がある。
【００３３】
リード対象のセルトランジスタＭＴの閾値電圧が或るリード電圧ＶＣＧＲを超えているか否かが、このセルトランジスタＭＴの閾値電圧の状態の判定に用いられる。電圧ＶＲＥＡＤは、非リード対象のセルユニットＣＵのセルトランジスタＭＴのワード線ＷＬに印加され、いずれの状態にあるセルトランジスタＭＴの閾値電圧より高い。
【００３４】
１つのセルユニットＣＵのセルトランジスタＭＴのある同じ位置（桁）のビットのデータの組は、１つのページを構成する。
【００３５】
データ書き込みの完了の確認（ベリファイ）のために、ベリファイ電圧ＶＶＡ、ＶＶＢ、ＶＶＣ、ＶＶＤ、ＶＶＥ、ＶＶＦ、およびＶＶＧが使用される。Ａ状態、Ｂ状態、Ｃ状態、Ｄ状態、Ｅ状態、Ｆ状態、およびＧ状態へと書き込まれるセルトランジスタＭＴがそれぞれベリファイ電圧ＶＶＡ、ＶＶＢ、ＶＶＣ、ＶＶＤ、ＶＶＥ、ＶＶＦ、およびＶＶＧ以上の大きさの閾値電圧を有していれば、当該状態へと書き込まれるセルトランジスタＭＴへの書き込みが完了したと判断される。以下、ベリファイ電圧ＶＶＡ、ＶＶＢ、ＶＶＣ、ＶＶＤ、ＶＶＥ、ＶＶＦ、およびＶＶＧを含め、ベリファイのために書き込み対象のセルトランジスタＭＴに印加される或る大きさの電圧は、ベリファイ電圧ＶＶと称される場合がある。
【００３６】
セルトランジスタＭＴの閾値電圧は、書き込まれた直後から、ディスターブおよび（または）時間経過等の要因によって変動し得る。変動の仕方によっては、セルトランジスタＭＴの閾値電圧は、書き込まれたときに意図されていた状態とは別の状態にあるとして誤って判断され得る。
【００３７】
４ビット以上のデータも、ここまで記述された原理の拡張により１つのセルトランジスタＭＴよって保持されることが可能である。
【００３８】
以下の記述は、１セルトランジスタＭＴ当たり３ビットの記憶の例に基づく。
【００３９】
＜２．動作＞
＜２．１．基本動作＞
図４は、第１実施形態のメモリシステム５の動作のフローを示す。いくつかのステップは、後に詳述される。
【００４０】
図４に示されるように、メモリシステム５は、ホスト装置３からのデータ保持の命令を受け取る（ステップＳ１）。ステップＳ１での命令に基づいて、メモリコントローラ２は、或るブロックＢＬＫｎ（ｎは０または自然数）のワード線ＷＬｒ（ｒは０または自然数）のセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３にデータを書き込むことを決定する（ステップＳ２）。セルユニットＣＵｒ＿ｓ（ｓは、０または自然数）は、ワード線ＷＬｒと接続された、ストリングユニットＳＵｓのセルユニットＣＵであることを指す。
【００４１】
ステップＳ２での決定に基づいて、メモリコントローラ２は、ステップＳ３以降のステップにおいて、ブロックＢＬＫｎのセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３へのデータの書き込みを実行する。セルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３には任意の順序でデータが書き込まれることが可能であるが、セルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３の順でのデータの書き込みが例として記述される。また、そのような書き込みが簡便に記述されるために、変数ｉが導入される。変数ｉは、記述の便宜上、導入されており、以下の変数ｉを使用して記述される動作が行われる限り、実際に変数ｉが使用されることは必須ではない。変数ｉは、現行の例に基づくと、０または３以下の自然数のいずれかであり得る。
【００４２】
ステップＳ３において、メモリコントローラ２は、変数ｉを０に設定する。
【００４３】
ステップＳ４において、メモリコントローラ２は、ブロックＢＬＫｎのセルユニットＣＵｒ＿ｉへのデータの書き込みを指示する。或るセルユニットＣＵへのデータの書き込みの指示は、コマンドセットおよび書き込みデータを記憶装置１に供給することを含む。セルユニットＣＵｒ＿ｉへの書き込み指示のためのコマンドセットは、セルユニットＣＵｒ＿ｉに３ページ分のデータを書き込むことを指示し、書き込みデータは３ページ分の大きさを有する。コマンドセットの詳細は任意であり、またコマンドセット中のコマンドおよび書き込みデータがメモリコントローラ２から送信される順序も任意である。
【００４４】
記憶装置１は、ステップＳ４での指示を受け取ると、ブロックＢＬＫｎのセルユニットＣＵｒ＿ｉにデータを書き込む（ステップＳ５）。或るセルユニットＣＵへの書き込みは、複数回のプログルラムループの繰り返しを含む。各プログラムループは、プログラムステージ、ベリファイステージ、判断ステージを含む。プログラムステージにおいて、シーケンサ１３は、書き込み対象のセルユニットＣＵ中のプログラムが完了していないセルトランジスタ（選択セルトランジスタ）ＭＴに電圧（プログラム電圧）を印加して、選択セルトランジスタＭＴの閾値電圧を上げることを含む。プログラムが完了した選択セルトランジスタＭＴには、プログラム電圧よりも十分に低い電圧しか印加されない。ベリファイステージは、ベリファイを含み、ベリファイでは選択セルトランジスタＭＴが、この選択セルトランジスタＭＴがプログラム後に有するべき目標のＸ（ＸはＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、またはＧ）状態に対応するベリファイ電圧ＶＶＸ以上の閾値電圧を有するかを判断することを含む。判断ステージは、書き込み対象のセルユニットＣＵへの書き込みが完了したかの確認を含む。具体的にはＸ状態が目標の選択セルトランジスタＭＴの数が、或る条件（或る個数以上、またはセルトランジスタＭＴに対する目標Ｘ状態のセルトランジスタＭＴ或る割合以上）を満たすと、Ｘ状態へのプログラムが完了したと判断される。シーケンサ１３は、セルユニットＣＵｒ＿ｉでのＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧ状態の全てのプログラムが完了したと判断すると、セルユニットＣＵｒ＿ｉへのデータ書き込みが完了したと判断する。
【００４５】
シーケンサ１３は、セルユニットＣＵｒ＿ｉへのデータ書き込みが完了したと判断するまで、ビジー信号を送信し続け、セルユニットＣＵｒ＿ｉへのデータ書き込みが完了すると、ビジー状態を解除する。メモリコントローラ２は、ビジー信号を監視し、ビジー状態の解除を検出すると、直前の指示、すなわち、現行の例ではセルユニットＣＵｒ＿ｉへのデータ書き込みが完了したと判断する。
【００４６】
メモリコントローラ２は、同様にして、セルユニットＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３へのデータの書き込みを行う。そのために、メモリコントローラ２は、ステップＳ６において、変数ｉが最大値ｉｍａｘ超であるか、すなわち現行の例ではｉが３超であるかを判断する。ｉがｉｍａｘ（＝３）以下である場合（Ｎｏ分岐）、メモリコントローラ２はステップＳ７において変数ｉを１だけ増分し、処理はステップＳ４に戻る。ｉがｉｍａｘ（＝３）超である場合（ステップＳ６のＹｅｓ分岐）。これはセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３へのデータ書き込みが完了したことを意味し、処理はステップＳ１１に移行する。
【００４７】
メモリコントローラ２は、ステップＳ１から後述のステップＳ１４への移行までの間、セルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３に書き込まれるべきデータをＲＡＭ２３中で保持し続ける。
【００４８】
ステップＳ１１において、メモリコントローラ２は、セルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３のための書き込みデータを保持している限り、任意の処理を行うことができる。処理は、任意のセルユニットＣＵからのデータのリード、ステータス情報のリードなどを含む。ステップＳ１１は、ステップＳ１２に継続する。ステップＳ１１が行われずに、ステップＳ６のＹｅｓ分岐がステップＳ１２に直接継続してもよい。
【００４９】
ステップＳ１２、Ｓ１３、Ｓ１４、Ｓ１５、Ｓ１６までの処理は、ホスト装置３からの指示に基づかずに、メモリコントローラ２が自律的に実行する。
【００５０】
ステップＳ１２において、メモリコントローラ２は、セルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３の任意の１つであるＣＵｒ＿ｓの任意のページからデータをリードし、リードされたデータ中の誤りの検出、および誤りが検出された場合に誤りの訂正を試みる。データのリードおよび対応するリードデータに対する誤り訂正の１つの組のみが行われてもよいし、方法の相違するデータリードおよび誤り訂正の複数の組が行われてもよい。複数の組のデータリードおよび誤り訂正の試みが行われる場合、例えば、ある１組目のデータリードおよび誤り訂正に失敗すると、２組目のデータリードおよび誤り訂正ビット訂正が試みられる。どのような組のおよび何組のデータリードおよび誤り訂正の試みが行われるかは、任意に選択されることができ、実際には、メモリシステム５に課される要件によって定まる期間中に終了できるような種類および回数のデータリードおよび誤り訂正の試みが行われることができる。ステップＳ１２の具体例については、後述される。また、リードされるデータの選択の例についても後述される。ステップＳ１２でのリードは、以下、検査リードと称される場合がある。
【００５１】
誤りが検出されない場合、および検出された誤りが訂正されることができた場合、検査リード対象ページに書き込まれたデータが得られる。このようなデータは、以下、誤りが検出されなかった場合も含めて誤りを含まないリードデータ（データ）と称される。
【００５２】
複数の組のデータリードおよび誤り訂正の試みが行われる場合、例えば実行されることになっている全ての組において誤り訂正が失敗すると、誤り訂正に失敗したと判断される。
【００５３】
ステップＳ１３において、メモリコントローラ２は、誤りを含まないリードデータが得られたかを判断する。上記のように、ステップＳ１２において、２回以上の検査リードが行われ得る。このため、ステップＳ１３の処理は、ステップＳ１２において最後に行われた検査リードから誤りを含まないリードデータが得られたかの判断に対応する。
【００５４】
誤りを含まないリードデータが得られた場合（Ｙｅｓ分岐）、処理はステップＳ１４に移行し、得られなかった場合（Ｎｏ分岐）、処理はステップＳ１５に移行する。
【００５５】
ステップＳ１４において、メモリコントローラ２は、ＲＡＭ２３中のＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３に書き込まれるべきデータを保持している領域を開放する。
【００５６】
ステップＳ１５において、メモリコントローラ２は、ブロックＢＬＫｎに書き込まれているデータを別のブロックＢＬＫｇ（ｇはｎ以外の０または自然数）にコピーする。このとき、メモリコントローラ２は、ブロックＢＬＫｎのセルユニットＣＵｒ＿０〜ＣＵｒ＿３中に書き込まれていたデータは使用せずに、ＲＡＭ２３中のデータをブロックＢＬＫｇに書き込む。ステップＳ１５の詳細は後述される。
【００５７】
ステップＳ１６において、メモリコントローラ２は、ブロックＢＬＫｎをバッドブロックとして扱うように自身の内部の管理情報を更新する。メモリコントローラ２は、バッドブロックとして登録されたブロックＢＬＫｎを、今後、データの書き込み先として使用しないこともできるし、原則的にデータの書き込み先として使用せずに空きブロックＢＬＫが少なくなったときに使用することもできる。
【００５８】
図５は、第１実施形態のメモリシステム５の一部のステップＳ１〜Ｓ５、およびＳ６のＹｅｓ分岐までの状態を示す。図５の部分（ａ）および部分（ｂ）に示されるように、消去状態のセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３の全ページに、データが書き込まれる。図５は、セルユニットＣＵｒ＿０のロワーページ、ミドルページ、およびアッパーページにそれぞれ、書き込みデータＤｒ０Ｌ、Ｄｒ０Ｍ、およびＤｒ０Ｕが書き込まれる例を示す。同様に、セルユニットＣＵｒ＿１のロワーページ、ミドルページ、およびアッパーページにそれぞれ、書き込みデータＤｒ１Ｌ、Ｄｒ１Ｍ、およびＤｒ１Ｕが書き込まれる。セルユニットＣＵｒ＿２のロワーページ、ミドルページ、およびアッパーページにそれぞれ、書き込みデータＤｒ２Ｌ、Ｄｒ２Ｍ、およびＤｒ２Ｕが書き込まれる。セルユニットＣＵｒ＿３のロワーページ、ミドルページ、およびアッパーページにそれぞれ、書き込みデータＤｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３Ｕが書き込まれる。
【００５９】
図５の書き込みの間、メモリコントローラ２は、書き込みデータＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３Ｕを保持し続ける。
【００６０】
図６は、第１実施形態のメモリシステムのステップＳ１２のサブフローの例を示す。ステップＳ１１は、ステップＳ１２０１に継続する。ステップＳ１２０１において、メモリコントローラ２は、セルユニットＣＵｒ＿ｓのｙページ（ｙは、ロワー、ミドル、またはアッパー）ページからデータをリードすることを記憶装置１に指示する。ステップＳ１２での最初のリード、すなわちステップＳ１２０１でのリードは、イニシャルリードと称される。イニシャルリードでは、例えば、デフォルトのリード電圧ＶＣＧＲの使用が指定される。または、以前にセルユニットＣＵｒ＿ｓからのデータのリードの結果に基づいて決定されたリード電圧が使用されてもよい。イニシャルリードによって得られたリードデータＤｒｓｙ０は、メモリコントローラ２によって受け取られる。
【００６１】
ステップＳ１２０２において、メモリコントローラ２は、リードデータＤｒｓｙ０中の誤りの訂正を試みる。ステップＳ１２０３において、メモリコントローラ２は、誤りを含まないリードデータＤｒｓｙ０が得られたか、すなわちリードデータＤｒｓｙ０が誤りを含まなかった、またはリードデータＤｒｓｙ０中の誤りが訂正されることができた、の一方が生じたかを判断する。誤りを含まないリードデータＤｒｓｙ０が得られた場合（Ｙｅｓ分岐）、処理はステップ１４に移行する。誤り訂正されたリードデータＤｒｓｙ０が得られなかった場合（Ｎｏ分岐）、処理はステップＳ１２０４に移行する。
【００６２】
ステップＳ１２０４、Ｓ１２０５、Ｓ１２０６、Ｓ１２０８、およびＳ１２０９の処理によって、メモリコントローラ２は、１回以上のシフトリードおよび各シフトリードでリードされたデータ中の誤りの訂正を試みる。シフトリードは、デフォルトのリード電圧ＶＣＧＲの大きさと異なる大きさのリード電圧ＶＣＧＲの使用の指定を伴ったリードを指す。シフトリードおよび対応するリードデータの誤りの訂正の試みの組は、任意の回数、行われることができる。現実には、メモリシステム５に課される要件によって定まる期間中に終了できる回数、行われることができる。図６は、一例として、シフトリードおよび対応するリードデータの誤りの訂正の試行の組からなるループが２回以上行われるフローを示す。２以上のループの処理の実行のために変数ｊ（ｊは自然数）が導入される。変数ｊは、記述の便宜上、導入されており、以下の変数ｊを使用して記述される動作が行われる限り、実際に変数ｊが使用されることは必須ではない。
【００６３】
ステップＳ１２０４において、メモリコントローラ２は、変数ｊを１に設定する。
【００６４】
ステップＳ１２０５において、メモリコントローラ２は、セルユニットＣＵｒ＿ｓのｙページからの第ｊ回目のシフトリードを記憶装置１に指示する。ステップＳ１２０５でのシフトリードでは、イニシャルリードで指定されたリード電圧ＶＣＧＲの値、および現在のループより前のループでのステップＳ１２０４で指定されたリード電圧ＶＣＧＲの値のいずれとも異なる値のリード電圧ＶＣＧＲが指定される。第ｊ回目のシフトリードによって得られたリードデータＤｒｓｙｊは、メモリコントローラ２によって受け取られる。
【００６５】
ステップＳ１２０６において、メモリコントローラ２は、リードデータＤｒｓｙｊ中の誤りの訂正を試みる。メモリコントローラ２は、ステップＳ１２０７において、誤りを含まないリードデータＤｒｓｙｊが得られたかを判断する。誤りを含まないリードデータＤｒｓｙｊが得られた場合（Ｙｅｓ分岐）、処理はステップ１４に移行する。誤り訂正されたリードデータＤｒｓｙｊが得られなかった場合（Ｎｏ分岐）、処理はステップＳ１２０８に移行する。
【００６６】
ステップＳ１２０８において、メモリコントローラ２は、変数ｊが予め定められた最大値ｊｍａｘ超であるかを判断する。変数ｊが最大値ｊｍａｘ以下である場合（Ｎｏ分岐）、メモリコントローラ２は、ステップＳ１２０９において変数ｊを１だけ増分し、処理はステップＳ１２０５に戻る。変数ｊが最大値ｊｍａｘを超えている場合（ステップＳ１２０８のＹｅｓ分岐）、フローはステップＳ１２１１に移行する。
【００６７】
ステップＳ１２１１において、メモリコントローラ２は、記憶装置１に対するリトライリードを行う。リトライリードの例は、種々のタイプのものを含み、例えばＶｔｈトラッキングを使用したリード電圧ＶＣＧＲの推定、および推定されたリード電圧ＶＣＧＲの使用を指定したデータリードを含む。Ｖｔｈトラッキングは、相違する大きさを有する複数のリード電圧ＶＣＧＲを使用したデータリードの結果から、複数の閾値電圧のそれぞれを有するセルトランジスタＭＴの数を推定し、推定された数からより少ない誤りに繋がり得るリード電圧ＶＣＧＲを推定することを含む。リトライリードによって得られたリードデータＤｒｓｙｋ（ｋ＝ｊｍａｘ＋１）は、メモリコントローラ２によって受け取られる。
【００６８】
ステップＳ１２１２において、メモリコントローラ２は、リードデータＤｒｓｙｋ中の誤りの訂正を試みる。ステップＳ１２１２は、ステップＳ１３に継続する。現行の例では、ステップＳ１３において、メモリコントローラ２は、リードデータＤｒｓｙｋ中の誤りの訂正を試みる
図６のサブフローは、ステップＳ１２１２でのリードデータＤｒｓｙｋの誤り訂正に失敗した場合に更なるデータリードおよび誤り訂正のステップを含んでいてもよい。ステップＳ１２０５でのｊｍａｘ番目のシフトリードが、ステップＳ１３に継続してもよい。
【００６９】
図７は、第１実施形態のメモリシステム５の一部のステップＳ１２の間の状態を示す。図７に示されるように、メモリコントローラ２は、セルユニットＣＵｒ＿ｓのｙページから、種々のリード条件でデータリードを行って、リードデータＤｒｓｙ１、Ｄｒｓｙｊ、またはＤｒｓｙｋを得る。この間、メモリコントローラ２は、データＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３Ｕを保持し続ける。
【００７０】
検査リードの対象は、例えば、ワード線ＷＬｒと接続された４つのセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３のうち、書き込まれた後により多く閾値電圧が変動しやすいセルトランジスタＭＴを含むセルユニットＣＵｒが選択されることができる。上記のようにセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３の順にデータが書き込まれる例の場合、セルユニットＣＵｒ＿０が選択されることができる。
【００７１】
また、検査リードの対象は、例えば、図３のような書き込まれたセルトランジスタＭＴの状態とビットの割り当ての方法とに基づいて定まる、誤りをより多く含みやすいページのとされることができる。例えば、図３の例によれば、書き込まれた後に閾値電圧が変化しやすいＡ状態とＥｒ状態との区別をデータの判断に使用するロワーページが選択されることができる。
【００７２】
図８は、第１実施形態のメモリシステムの一部のステップＳ１４の間の状態を示す。図８に示されるように、誤りを含まないリードデータＤｒｓｙが得られたので、ステップＳ１４において、メモリコントローラ２は、メモリ２３中のデータＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３Ｕを保持している領域を開放する。
【００７３】
図９は、第１実施形態のメモリシステム５のステップＳ１５の間の状態を示す。また、図９は、ブロックＢＬＫｎのセルユニットＣＵｒへの書き込みの開始の時点で、β（βは０または３以下の自然数）が０以上３以下の各々のケースについて、ブロックＢＬＫｎのセルユニットＣＵ０＿β〜ＣＵ（ｒ−１）＿βにデータが書き込まれている例に関する。図９に示されるように、メモリコントローラ２は、ブロックＢＬＫｎ中の、図４のフローの開始のときに書き込まれていたデータを、別のブロックＢＬＫｇにコピーすることを記憶装置１に指示する。指示は、１または複数のコピーコマンドを含み、各コピーコマンドは、コピー元のセルユニットＣＵおよびページの特定、ならびにコピー先のセルユニットＣＵおよびページの特定を含むことができる。データがコピーされる先に対して制限は特に課されない。一例として、γ（γはｒと異なり、かつ０または自然数）が０以上ｒ−１以下の各々のケースについて、ブロックＢＬＫｎ中のストリングユニットＳＵｓのセルユニットＣＵγのロワーページのデータ、ミドルページのデータ、およびアッパーページのデータが、それぞれ、ブロックＢＬＫｇのストリングユニットＳＵｓのセルユニットＣＵγのロワーページ、ミドルページ、およびアッパーページにそれぞれコピーされる例を示す。
【００７４】
また、メモリコントローラ２は、ＲＡＭ２３中のデータＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３ＵをブロックＢＬＫｇに書き込む。例として、メモリコントローラ２は、以下のような書き込みを行う。メモリコントローラ２は、データＤｒ０Ｌ、Ｄｒ０Ｍ、およびＤｒ０ＵをブロックＢＬＫｇのストリングユニットＳＵ０のセルユニットＣＵｒのロワーページ、ミドルページ、およびアッパーページにそれぞれ書き込む。メモリコントローラ２は、データＤｒ１Ｌ、Ｄｒ１Ｍ、およびＤｒ１ＵをブロックＢＬＫｇのストリングユニットＳＵ１のセルユニットＣＵｒのロワーページ、ミドルページ、およびアッパーページにそれぞれ書き込む。メモリコントローラ２は、データＤｒ２Ｌ、Ｄｒ２Ｍ、およびＤｒ２ＵをブロックＢＬＫｇのストリングユニットＳＵ２のセルユニットＣＵｒのロワーページ、ミドルページ、およびアッパーページにそれぞれ書き込む。メモリコントローラ２は、データＤｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３ＵをブロックＢＬＫｇのストリングユニットＳＵ３のセルユニットＣＵｒのロワーページ、ミドルページ、およびアッパーページにそれぞれ書き込む。
【００７５】
メモリコントローラ２は、データＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３ＵのブロックＢＬＫｇへの書き込みが完了すると、メモリ２３中のデータＤｒ０Ｌ、Ｄｒ０Ｍ、Ｄｒ０Ｕ、Ｄｒ１Ｌ、Ｄｒ１Ｍ、Ｄｒ１Ｕ、Ｄｒ２Ｌ、Ｄｒ２Ｍ、Ｄｒ２Ｕ、Ｄｒ３Ｌ、Ｄｒ３Ｍ、およびＤｒ３Ｕを保持している領域を開放する。また、メモリコントローラ２は、ブロックＢＬＫｎに関する情報を、ブロックＢＬＫｎがバッドブロックであることを示す情報を含むように更新する。
【００７６】
＜２．２．拡張動作＞
ここまで記述された動作での検査リードの対象は、ワード線ＷＬｒを共有するセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、ＣＵｒ＿３のうちのただ１つのセルユニットＣＵｒのただ１つのページである。実施形態は、この例に限定されず、検査リードは２以上のセルユニットＣＵおよび（または）２以上のページに対して行われてもよい。
【００７７】
図１０および図１１は、第１実施形態のメモリシステム５の別の動作のフローを示し、拡張動作のフローを示し、ステップＳ１２のサブフローを示す。
【００７８】
図１０および図１１に示されるように、ステップＳ１２において、図６と同じく、ステップＳ１２０１〜Ｓ１２０９、Ｓ１２１１、およびＳ１２１２が行われる。一方、図６と異なり、ステップＳ１２１２は、ステップＳ１２２１に継続する。
【００７９】
ステップＳ１２２１において、メモリコントローラ２は、ステップＳ１２１２での誤りを含まないリードデータの取得が成功したかを判断する。誤りを含まないデータが得られなかった場合（Ｎｏ分岐）、フローは、ステップＳ１５に移行する。誤りを含まないデータが得られた場合（Ｙｅｓ分岐）、フローは、ステップＳ１２３１に移行する。
【００８０】
ステップＳ１２３１からのステップは、検査リードの対象の相違のみで、ステップ１２０１からステップＳ１２１１までと同じである。すなわち、ステップＳ１２３１において、メモリコントローラ２は、ブロックＢＬＫｎのセルユニットＣＵｒ＿ｔのｚページのデータをリードすることを記憶装置１に指示する。ｔは０、１、２、または３であり、ｚは、ロワー、ミドル、またはアッパーである。ただし、ｔ＝ｓかつｚ＝ｙだけは除かれる。すなわち、ステップＳ１２３１において、メモリコントローラ２は、ステップＳ１２０１での検査リードの対象のページと異なるページのデータをリードする。
【００８１】
ステップＳ１２３２、Ｓ１２３３、Ｓ１２３４、Ｓ１２３５、Ｓ１２３６、Ｓ１２３７、Ｓ１２３８、Ｓ１２３９、Ｓ１２４１、およびＳ１２４２は、それぞれ、ステップ１２０２、Ｓ１２０３、Ｓ１２０４、Ｓ１２０５、Ｓ１２０６、Ｓ１２０７、Ｓ１２０８、Ｓ１２０９、Ｓ１２１１、およびＳ１２１２と類似するか同一である。
【００８２】
ステップＳ１２４２は、ステップＳ１３に継続する。
【００８３】
以上記述されたようなステップＳ１２により、セルユニットＣＵｒ＿０〜ＣＵｒ＿３中の相違する２つのページに対して検査リードが行われる。そして、両方のページに対する検査リードによって誤りを含まないデータが得られると、ステップＳ１４の処理（書き込みデータの保持領域の解放）が行われる。一方、どちらかのページに対する検査リードによって誤りを含まないデータが得られないと、ステップＳ１５の処理（ブロックＢＬＫｎのバッドブロック登録）が行われる。
【００８４】
図１０および図１１を参照してなされた記述に基づいて、図１０および図１１を参照して記述された動作が拡張されることにより、３つ以上のページに対する検査リードが行われてもよい。そのような動作は、詳細な記述が無くとも、図１０および図１１を参照してなされた記述から、当業者によって実現されることができる。
【００８５】
＜３．利点（効果）＞
第１実施形態によれば、以下に記述されるように、記憶装置１から、より少ない誤りを含むデータが出力されることができる。
【００８６】
上記のように、或る選択セルトランジスタＭＴへのプログラムは、目標のＸ状態に対応するベリファイ電圧ＶＶＸ以上の閾値電圧を有すると、完了したと判断される。プログラムが完了したセルトランジスタＭＴには、書き込み対象のセルユニットＣＵｒの書き込みの完了までにプログラム電圧は印加されないが、プログラム電圧よりは低い電圧が印加される。よって、プログラム完了した選択セルトランジスタＭＴは、プログラムディスターブを受け得る。プログラムディスターブは、プログラムディスターブを受ける選択セルトランジスタＭＴの閾値電圧を意図せずに上昇させ得る。閾値電圧が上昇した選択セルトランジスタＭＴは、上昇の量が大きいと、目標のＸ状態とは別の（１つの上の）状態と判断され得る閾値電圧を有することに至り得る。このような選択セルトランジスタＭＴは、プログラムこそ成功したと判断されるが、書き込み後にリードされるときに想定されているＸ状態に対応するデータと異なるデータを出力し得る。このことは、セルユニットＣＵｒからリードのエラーに繋がり得る。
【００８７】
特に、ワード線ＷＬｒと接続された４つのストリングユニットＳＵ０〜ＳＵ３のそれぞれのセルユニットＣＵｒ＿０、ＣＵｒ＿１、ＣＵｒ＿２、およびＣＵｒ＿３に或る順序でデータが書き込まれる場合、より早い段階で書き込みが完了したセルユニットＣＵｒ（例えばＣＵｒ＿０）は、より多くのディスターブを受ける。このため、先に書き込まれるセルユニットＣＵｒ中のデータは、意図せずに変化しやすい可能性がある。
【００８８】
第１実施形態によれば、１またはワード線ＷＬを共有する複数のセルユニットＣＵｒ＿ｓに順に書き込みデータが書き込まれ、当該書き込みデータがメモリコントローラ２に保持されている間に１つまたは複数のセルユニットＣＵｒ＿ｓの１つまたは複数のページからデータがリードされ、リードされたデータが或る基準以上の誤りを含んでいるかが判断される。基準未満の誤りしか含まれていない場合、セルユニットＣＵｒ＿ｓは、書き込みのディスターブを経てもある程度の高い精度（少なくとも誤りを含まないデータを得られる程度の精度）で書き込みデータを保持している可能性が高いと判断されることができる。一方、基準以上の誤りが含まれる場合、セルユニットＣＵｒ＿ｓは、プログラムベリファイはパスしたものの低い精度で書き込みデータを保持している可能性が高いと判断されることができる。例えば、そのような低い精度でデータを保持し得るセルユニットＣＵｒ＿ｓの使用が制限されることにより、メモリシステム５は全体でより高い精度でデータを保持することができる。また、書き込みデータが取得されることができる間に、低精度データを保持し得るセルユニットＣＵが特定されるため、書き込みデータの書き直し（セルユニットＣＵｒ＿ｓとは別のセルユニットＣＵへの書き込み）が容易になされることができる。
【００８９】
（第２実施形態）
第２実施形態は、指示された書き込みが中断される場合に関する。
【００９０】
第２実施形態のメモリシステム５は、第１実施形態のメモリシステム５と同じ要素および接続を有する。一方、第２実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されており、具体的には、ＲＯＭ２４中のファームウェアがメモリコントローラ２に以下に記述される動作を行わせるように構成されている。
【００９１】
図１２は、第２実施形態のメモリシステム５の動作のフローを示し、記憶装置１での或る書き込みに最中にサスペンドコマンドが受け取られた場合のフローを示す。サスペンドコマンドの受信のタイミングの例として、図１２および以下の記述は、セルユニットＣＵｒ＿１へのデータ書き込みの間の受信に関する。
【００９２】
図１２に示されるように、ステップＳ１およびＳ２の処理がこの順で行われる。次いで、ステップＳ２１において、メモリコントローラ２は、ブロックＢＬＫｎのセルユニットＣＵｒ＿０へのデータの書き込みを指示する。ステップＳ２２において、記憶装置１は、セルユニットＣＵｒ＿０にデータを書き込む。ステップＳ２３において、メモリコントローラ２は、ブロックＢＬＫｎのセルユニットＣＵｒ＿１へのデータの書き込みを指示する。
【００９３】
ステップＳ２４において、記憶装置１が、セルユニットＣＵｒ＿１にデータを書き込んでいる間に、メモリコントローラ２は記憶装置１にサスペンドコマンドを送信する。記憶装置１は、コマンドを受け取ると、現在実行中の指示、すなわちセルユニットＣＵｒ＿１へのデータ書き込みを中断する。
【００９４】
ステップＳ２５において、メモリコントローラ２は、記憶装置１に、何らかのデータリードを指示する。リードされるデータに特別な条件は課されない。ステップＳ２６において、メモリコントローラ２は、指示されたデータリードを行う。ステップＳ２６は、ステップＳ１２に継続する。
【００９５】
ステップＳ１２は、第１実施形態でのものと同じである。ただし、第１実施形態での場合と異なり、第２実施形態では、ステップＳ１２の開始の時点でセルユニットＣＵｒ＿０〜ＣＵｒ＿３への書き込みは完了していない。このため、検査リードの対象は、ＣＵｒ＿０〜ＣＵｒ＿３のうちの書き込まれたページであり、本例では、セルユニットＣＵｒ＿０のロワーページ、ミドルページ、およびアッパーページのうちの１つまたは複数である。ステップＳ１２はステップＳ１３に継続する。
【００９６】
ステップＳ１３での誤りを含まないデータが得られた場合の分岐（Ｙｅｓ分岐）はステップＳ３１に継続する。ステップＳ１３での誤りを含まないデータが得られない場合の分岐（Ｎｏ分岐）はステップＳ１５およびステップＳ１６を経由して、ステップＳ３１に継続する。
【００９７】
ステップＳ３１は、ステップＳ１４に類似する。異なるのは、ステップＳ３１では、ＲＡＭ２３のうちの、ステップＳ２４でのサスペンドの指示の前までに書き込まれたデータが保持されていた領域が解放されることである。
【００９８】
ステップＳ３２において、ステップＳ２で決定されたデータ書き込みのうちの未完の書き込み（ステップＳ２４でサスペンドの指示のときに行われていた書き込みを含む）が行われる。ステップＳ３２でのデータ書き込みは、誤りを含まない検査リード対象のデータが得られた場合は、ブロックＢＬＫｎ中のセルユニットＣＵに対して行われることができる。一方、ステップＳ３２でのデータ書き込みは、誤りを含まない検査リード対象のデータが得られない場合は、ブロックＢＬＫｇ中のセルユニットＣＵに対して行われることができる。
【００９９】
図１３は、第２実施形態のメモリシステム５の一部のステップＳ２４の間の状態を示す。図１３に示されるように、サスペンドコマンドがセルユニットＣＵｒ＿１へのデータ書き込みの間に受信されたため、セルユニットＣＵｒ＿１へのデータ書き込みは完了していない。また、サスペンドの時点で、セルユニットＣＵｒについての検査リードは未完了である。このため、メモリコントローラ２は、セルユニットＣＵｒへの書き込みデータ、少なくとも書き込み済みであるセルユニットＣＵｒ＿０への書き込みデータＤｒ０Ｌ、Ｄｒ０Ｍ、およびＤｒ０ＵをＲＡＭ２３中で保持し続ける。
【０１００】
図１４は、第２実施形態のメモリシステム５の一部のステップＳ２６の間の状態を示す。図１４に示されるように、記憶装置１は、リードを指示されたデータをメモリコントローラ２に送信する。この時点でも、セルユニットＣＵｒについての検査リードは未完了である。このため、メモリコントローラ２は、セルユニットＣＵｒへの書き込みデータ、少なくとも書き込み済みであるセルユニットＣＵｒ＿０への書き込みデータＤｒ０Ｌ、Ｄｒ０Ｍ、およびＤｒ０ＵをＲＡＭ２３中で保持し続ける。
【０１０１】
図１５は、第２実施形態のメモリシステム５の一部のステップＳ１２の間の状態を示す。図１５に示されるように、メモリコントローラ２は、検査リードのために、セルユニットＣＵｒ＿０〜ＣＵｒ＿３のうちの書き込み済みの１つまたは複数のページからデータをリードする。この時点でも、メモリコントローラ２は、セルユニットＣＵｒへの書き込みデータ、少なくとも書き込み済みであるセルユニットＣＵｒ＿０への書き込みデータＤｒ０Ｌ、Ｄｒ０Ｍ、およびＤｒ０ＵをＲＡＭ２３中で保持し続ける。
【０１０２】
第２実施形態によれば、１またはワード線ＷＬを共有する複数のセルユニットＣＵｒ＿ｓに順に書き込みデータが書き込まれている間に書き込みがサスペンドされ、データがリードされた後、第１実施形態と同様に、当該書き込みデータがメモリコントローラ２保持されている間に１つまたは複数の書き込み済みのセルユニットＣＵｒ＿ｓの１つまたは複数のページからデータがリードされ、リードされたデータが或る基準以上の誤りを含んでいるかが判断される。このため、第１実施形態と同じ利点を得られる。
【０１０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０４】
１…記憶装置、２…メモリコントローラ、３…ホスト装置、５…メモリシステム、１１…メモリセルアレイ、１２…入出力回路、１３…シーケンサ、１５…ドライバ、１６…センスアンプ、１９…ロウデコーダ。
【図１】
2019164847.tif 000003
【図２】
2019164847.tif 000004
【図３】
2019164847.tif 000005
【図４】
2019164847.tif 000006
【図５】
2019164847.tif 000007
【図６】
2019164847.tif 000008
【図７】
2019164847.tif 000009
【図８】
2019164847.tif 000010
【図９】
2019164847.tif 000011
【図１０】
2019164847.tif 000012
【図１１】
2019164847.tif 000013
【図１２】
2019164847.tif 000014
【図１３】
2019164847.tif 000015
【図１４】
2019164847.tif 000016
【図１５】
2019164847.tif 000017