(57)【要約】      （修正有）【課題】メモリ装置の性能の向上を図ることが可能な技術を提供する。【解決手段】第１モード（スタンバイモード）のコントローラは、消去コマンド及び第１論理アドレスを受け取ると、第１テーブルにおいて第１論理アドレスに対応付けられている第１物理アドレスの消去単位領域を消去待ち領域にする。第１モードのコントローラは、第１テーブルにおいて、第１物理アドレスを、消去済み領域に割り当てられた物理アドレスに置き換える。第２モード（ＩＥモード）のコントローラは、消去待ち領域を消去済み領域に設定する。コントローラは、消去待ち領域のデータを消去している最中に第２モードの解除を指示する解除コマンドをホスト装置から受け取ると、動作モードを第３モード（ＲＩＥモード）に変更する。コントローラは、第３モードで動作する場合、消去待ち領域の未消去のデータを消去して、動作モードを第３モードから第１モードに変更する。【選択図】図４
2018097516.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置によって制御されるメモリ装置であって、
それぞれがデータ消去単位となり、前記ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、
前記メモリコアを制御するコントローラと、
前記複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと、論理アドレスとの対応関係を示す第１テーブルと
を備え、
前記コントローラの動作モードには、第１〜第３モードが含まれ、
前記第１モードの前記コントローラは、前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取ると、
前記第１テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定し、
前記第１テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定し、
前記第１モードの前記コントローラは、前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込み、
前記第２モードの前記コントローラは、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定し、
前記コントローラは、前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更し、
前記コントローラは、前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する、メモリ装置。
【請求項２】
請求項１に記載のメモリ装置であって、
前記第２モードの前記コントローラは、前記記憶領域に複数の前記消去待ち領域が含まれる場合には、前記解除コマンドを受け取るまで、前記複数の前記消去待ち領域のデータ消去を継続して行う、メモリ装置。
【請求項３】
請求項１及び請求項２のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記第２モードで動作する場合、前記解除コマンドを受け取ると、前記消去待ち領域のデータを消去している最中であるか否かにかかわらず前記動作モードを前記第２モードから前記第３モードに変更し、
前記コントローラは、前記第３モードで動作する場合、
データが途中まで消去された前記消去待ち領域が存在する場合には、当該消去待ち領域の未消去のデータを消去して前記動作モードを前記第１モードに変更し、
データが途中まで消去された前記消去待ち領域が存在しない場合には、前記消去待ち領域のデータ消去を行わずに、前記動作モードを前記第１モードに変更し、
前記コントローラは、前記第１モードで動作する場合、前記第２モードで動作することを指示する指示コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードに変更し、
前記ホスト装置は、前記コントローラが前記第２モードで動作する前記メモリ装置に対して前記解除コマンドを出力した後に、前記消去コマンドを出力し、前記消去コマンドの後に前記書き込みコマンドを出力し、前記書き込みコマンドの後に前記指示コマンドを出力するという処理を繰り返し実行し、
前記コントローラは、
前記指示コマンドを受け取ってから所定時間が経過する前に前記解除コマンドを受け取る場合には、前記消去待ち領域のデータ消去を行わずに、前記動作モードを前記第３モードに変更し、
前記指示コマンドを受け取ってから前記所定時間が経過する前に前記解除コマンドを受け取らない場合には、前記消去待ち領域のデータ消去を開始する、メモリ装置。
【請求項４】
請求項１乃至請求項３のいずれか一つに記載のメモリ装置であって、
前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、
前記管理領域は、
当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、
前記ステータス情報の更新状況を示す第２管理領域と
を有し、
前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、
前記コントローラは、
前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込み、
前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込み、
前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込み、
前記コントローラは、前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う、メモリ装置。
【請求項５】
ホスト装置によって制御されるメモリ装置であって、
それぞれがデータ消去単位となり、前記ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、
前記メモリコアを制御するコントローラと、
前記複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと、論理アドレスとの対応関係を示す第１テーブルと
を備え、
前記コントローラは、前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取ると、
前記第１テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定し、
前記第１テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定し、
前記コントローラは、前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込み、
前記コントローラは、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定し、
前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、
前記管理領域は、
当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、
前記ステータス情報の更新状況を示す第２管理領域と
を有し、
前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、
前記コントローラは、
前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込み、
前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込み、
前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込み、
前記コントローラは、前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う、メモリ装置。
【請求項６】
請求項５に記載のメモリ装置であって、
前記コントローラの動作モードには、第１及び第２動作モードが含まれ、
前記第１モードの前記コントローラは、前記消去コマンド及び前記第１論理アドレスを受け取ると、
前記第１テーブルにおいて前記第１論理アドレスに対応付けられている前記第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域を前記消去待ち領域に設定し、
前記第１テーブルにおいて、前記第１物理アドレスを、前記消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を前記アクセス領域に設定し、
前記第１モードの前記コントローラは、前記書き込みコマンド及び前記第２論理アドレスを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込み、
前記第２モードの前記コントローラは、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する、メモリ装置。
【請求項７】
請求項４乃至請求項６のいずれか一つに記載のメモリ装置であって、
前記コントローラは、
前記正否判定において正しいと判定される前記ステータス情報が前記第１ステータス情報を示す場合には、前記第１更新管理領域に前記第１所定情報を再度書き込み、
前記正否判定において正しいと判定される前記ステータス情報が前記第２ステータス情報を示す場合には、前記第２更新管理領域に前記第２所定情報を再度書き込み、
前記正否判定において正しいと判定される前記ステータス情報が前記第３ステータス情報を示す場合には、前記第３更新管理領域に前記第３所定情報を再度書き込む、メモリ装置。
【請求項８】
請求項４乃至請求項７のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記消去コマンド及び前記第１論理アドレスを受け取った場合に前記複数の消去単位領域に前記消去済み領域が含まれていないときには、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定した後、前記第１テーブルにおいて、前記第１物理アドレスを、当該消去済み領域に割り当てられた前記物理アドレスに置き換えて、当該消去済み領域を前記アクセス領域に設定する、メモリ装置。
【請求項９】
請求項４乃至請求項８のいずれか一つに記載のメモリ装置であって、
前記アクセス領域の前記第１管理領域は、前記第１テーブルにおいて、当該アクセス領域に割り当てられた前記物理アドレスに対応付けられる前記論理アドレスを記憶する、メモリ装置。
【請求項１０】
請求項４乃至請求項９のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記第１ステータス情報を記憶する前記第１管理領域の一部のビットにデータを書きこむことによって、前記ステータス情報を前記第１ステータス情報から前記第２ステータス情報に変更する、メモリ装置。
【請求項１１】
請求項４乃至請求項１０のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記第２ステータス情報を記憶する前記第１管理領域の一部のビットにデータを書きこむことによって、前記ステータス情報を前記第２ステータス情報から前記第３ステータス情報に変更する、メモリ装置。
【請求項１２】
請求項４乃至請求項１１のいずれか一つに記載のメモリ装置であって、
前記第１乃至第３所定情報の少なくとも一つの情報は複数ビットの値で構成され、
前記複数ビットの値は、データ消去後の前記消去単位領域の各ビットが示す値とは異なる値である、メモリ装置。
【請求項１３】
請求項４乃至請求項１１のいずれか一つに記載のメモリ装置であって、
前記コントローラは、
前記ステータス情報を前記第１ステータス情報に書き換えた後に前記第１管理領域に記憶されるデータを誤り訂正符号化して得られる第１誤り訂正符号を、前記第１所定情報として前記第１更新管理領域に書き込む第１処理と、
前記ステータス情報を前記第２ステータス情報に書き換えた後に前記第１管理領域に記憶されるデータを誤り訂正符号化して得られる第２誤り訂正符号を、前記第２所定情報として前記第２更新管理領域に書き込む第２処理と、
前記ステータス情報を前記第３ステータス情報に書き換えた後に前記第１管理領域に記憶されるデータを誤り訂正符号化して得られる第３誤り訂正符号を、前記第３所定情報として前記第３更新管理領域に書き込む第３処理と
の少なくとも一つの処理を行う、メモリ装置。
【請求項１４】
請求項１３に記載のメモリ装置であって、
データ消去後の前記消去単位領域の各ビットは第１の値を示し、
前記コントローラは、
前記第１更新管理領域内のデータを誤り訂正復号化した第１結果、前記第２更新管理領域内のデータを誤り訂正復号化した第２結果及び前記第３更新管理領域内のデータを誤り訂正復号化した第３結果の少なくとも一つの結果に基づいて、前記ステータス情報を構成するビットの値が、前記第１の値とは異なる第２の値から前記第１の値に誤っているか否かを判定し、
前記ステータス情報を構成するビットの値が前記第２の値から前記第１の値に誤っている場合には、当該ビットに前記第２の値を書き込んで前記ステータス情報を修復する、メモリ装置。
【請求項１５】
請求項１３及び請求項１４のいずれか一つに記載のメモリ装置であって、
データ消去後の前記消去単位領域の各ビットは第１の値を示し、
前記コントローラは、
前記第１更新管理領域内のデータを誤り訂正復号化した第１結果、前記第２更新管理領域内のデータを誤り訂正復号化した第２結果及び前記第３更新管理領域内のデータを誤り訂正復号化した第３結果の少なくとも一つの結果に基づいて、前記ステータス情報を構成するビットの値が、前記第１の値から、当該第１の値とは異なる第２の値に誤っているか否かを判定し、
前記ステータス情報を構成するビットの値が前記第１の値から前記第２の値に誤っている場合には、当該ステータス情報を記憶する前記消去単位領域のデータを消去した上で、当該消去単位領域に正しい前記ステータス情報を書き込む、メモリ装置。
【請求項１６】
請求項１３乃至請求項１５のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記消去単位領域の前記第１更新管理領域内のデータを誤り訂正復号化した結果、正しく復号化できない場合には当該消去単位領域のデータを消去し、前記消去単位領域の前記第２更新管理領域内のデータを誤り訂正復号化した結果、正しく復号化できない場合には当該消去単位領域のデータを消去し、前記消去単位領域の前記第３更新管理領域内のデータを誤り訂正復号化した結果、正しく復号化できない場合には当該消去単位領域のデータを消去し、データを消去した前記消去単位領域を前記消去済み領域に設定する、メモリ装置。
【請求項１７】
請求項１３乃至請求項１６のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記第１更新管理領域内のデータを誤り訂正復号化した第１結果、前記第２更新管理領域内のデータを誤り訂正復号化した第２結果及び前記第３更新管理領域内のデータを誤り訂正復号化した第３結果の少なくとも一つの結果と、前記ステータス情報とに基づいて、当該ステータス情報の誤り原因を推定する推定処理を行う、メモリ装置。
【請求項１８】
請求項１７に記載のメモリ装置であって、
前記コントローラは、前記推定処理において、前記ステータス情報が、前記第１乃至第３ステータス情報以外の他の情報を示す場合、
前記第３更新管理領域に前記第３誤り訂正符号が記憶されているときには、前記第３結果に基づいて前記誤り原因を推定し、
前記第３更新管理領域にデータ前記第３誤り訂正符号が記憶されておらず、前記第２更新管理領域に前記第２誤り訂正符号が記憶されているときには、前記第２結果に基づいて前記誤り原因を推定し、
前記第３更新管理領域に前記第３誤り訂正符号が記憶されておらず、前記第２更新管理領域に前記第２誤り訂正符号が記憶されておらず、前記第１更新管理領域に前記第１誤り訂正符号が記憶されているときには、前記第１結果に基づいて前記誤り原因を推定する、メモリ装置。
【請求項１９】
請求項１７に記載のメモリ装置であって、
前記コントローラは、前記推定処理において、
前記ステータス情報が前記第１ステータス情報を示し、前記第１更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致し、前記第２更新管理領域に前記第２誤り訂正符号が記憶されている場合には、前記第２結果に基づいて前記誤り原因を推定し、
前記ステータス情報が前記第２ステータス情報を示し、前記第２更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致し、前記第３更新管理領域に前記第３誤り訂正符号が記憶されている場合には、前記第３結果に基づいて前記誤り原因を推定する、メモリ装置。
【請求項２０】
請求項１７に記載のメモリ装置であって、
前記コントローラは、前記推定処理において、
前記ステータス情報が前記第１ステータス情報を示し、前記第１更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致せず、前記第２更新管理領域に前記第２誤り訂正符号が記憶されている場合には、前記第２結果に基づいて前記誤り原因を推定し、
前記ステータス情報が前記第２ステータス情報を示し、前記第２更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致せず、前記第３更新管理領域に前記第３誤り訂正符号が記憶されている場合には、前記第３結果に基づいて前記誤り原因を推定する、メモリ装置。
【請求項２１】
請求項１７に記載のメモリ装置であって、
前記コントローラは、前記推定処理において、
前記ステータス情報が前記第１ステータス情報を示し、前記第１更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致せず、前記第２更新管理領域に前記第２誤り訂正符号が記憶されていない場合には、前記第１結果に基づいて前記誤り原因を推定し、
前記ステータス情報が前記第２ステータス情報を示し、前記第２更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致せず、前記第３更新管理領域に前記第３誤り訂正符号が記憶されていない場合には、前記第２結果に基づいて前記誤り原因を推定し、
前記ステータス情報が前記第３ステータス情報を示し、前記第３更新管理領域内のデータを誤り訂正復号化することによって得られる復号化データが前記第１管理領域内のデータと一致しない場合には、前記第３結果に基づいて前記誤り原因を推定する、メモリ装置。
【請求項２２】
請求項４乃至請求項２１のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記ホストデータ領域に記憶される前記出力データを誤り訂正符号化して得られる第４誤り訂正符号を、前記管理領域における、前記第１及び第２管理領域以外の領域に書き込む、メモリ装置。
【請求項２３】
請求項４乃至請求項２２のいずれか一つに記載のメモリ装置であって、
前記管理領域に対して情報の書き込みが行われる第１期間の後に、前記消去待ち領域のデータの消去が行われる第２期間が発生し、当該第２期間の後に、前記管理領域に対して情報の書き込みが行われる第３期間が発生し、
前記第２期間での前記メモリ装置の消費電流は、前記第１期間での当該消費電流よりも大きくなり、前記第３期間での当該消費電流は、前記第２期間での当該消費電流よりも小さくなる、メモリ装置。
【請求項２４】
請求項１乃至請求項４及び請求項６のいずれか一つに記載のメモリ装置であって、
前記コントローラは、前記第１モードで動作する場合、前記第２モードで動作することを指示する指示コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードに変更する、メモリ装置。
【請求項２５】
請求項１乃至請求項２４のいずれか一つに記載のメモリ装置であって、
それぞれが、前記第１テーブルに登録されている前記物理アドレス以外の前記物理アドレスである複数の第２物理アドレスが登録される第２テーブルをさらに備え、
前記複数の第２物理アドレスには順番が割り当てられ、
前記コントローラは、前記複数の第２物理アドレスの一つを指し示す第１ポインタと、前記複数の第２物理アドレスの一つを指し示す第２ポインタのそれぞれを、前記順番で循環して移動し、
前記複数の第２物理アドレスを前記順番で循環して見る場合において、前記第１ポインタが指し示す前記第２物理アドレスから、前記第２ポインタが指し示す前記第２物理アドレスよりも一つ前の前記第２物理アドレスまでが、前記消去済み領域の前記物理アドレスであって、前記第２ポインタが指し示す前記第２物理アドレスから、前記第１ポインタが指し示す前記第２物理アドレスよりも一つ前の前記第２物理アドレスまでが、前記消去待ち領域の前記物理アドレスであって、
前記第１モードの前記コントローラは、前記消去コマンドを受け取ると、前記第１テーブルにおいて、前記第１物理アドレスを、前記第１ポインタが指し示す、前記消去済み領域の前記第２物理アドレスである第３物理アドレスに置き換え、前記第２テーブルにおいて、当該第３物理アドレスを、当該第１物理アドレスに置き換え、次の前記第２物理アドレスを指し示すように前記第１ポインタを移動し、
前記第２モードの前記コントローラは、前記第２ポインタが指し示す前記第２物理アドレスの前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定し、次の前記第２物理アドレスを示すように前記第２ポインタを移動する、メモリ装置。
【請求項２６】
請求項１乃至請求項２５のいずれか一つに記載のメモリ装置が備えるコントローラ。
【請求項２７】
請求項１乃至請求項４のいずれか一つに記載のメモリ装置を制御するホスト装置であって、
前記解除コマンドを出力する、ホスト装置。
【請求項２８】
請求項２４に記載のメモリ装置を制御するホスト装置であって、
前記指示コマンドを出力する、ホスト装置。
【請求項２９】
請求項１乃至請求項２５のいずれか一つに記載のメモリ装置と、
前記メモリ装置を制御し、前記消去コマンド及び前記書き込みコマンドを出力するホスト装置と
を備える、データ処理システム。
【請求項３０】
それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置を制御するための制御プログラムであって、
前記メモリ装置に、
（ａ）第１モードで動作する工程と、
（ｂ）第２モードで動作する工程と、
（ｃ）第３モードで動作する工程と
を実行させ、
前記工程（ａ）において、
（ａ−１）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、
（ａ−２）前記工程（ａ−１）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、
（ａ−３）前記工程（ａ−１）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、
（ａ−４）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程と
を実行させ、
前記工程（ｂ）において、（ｂ−１）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程を実行させ、
（ｄ）前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更する工程と、
（ｅ）前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する工程と
を実行させるための制御プログラム。
【請求項３１】
それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置を制御するための制御プログラムであって、
前記メモリ装置に、
（ａ）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、
（ｂ）前記工程（ａ）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、
（ｃ）前記工程（ａ）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、
（ｄ）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程と、
（ｅ）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程と
を実行させ、
前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、
前記管理領域は、
当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、
前記ステータス情報の更新状況を示す第２管理領域と
を有し、
前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、
（ｆ）前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込む工程と、
（ｇ）前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込む工程と、
（ｈ）前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込む工程と、
（ｉ）前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う工程と
を実行させるための制御プログラム。
【請求項３２】
請求項１乃至請求項４のいずれか一つに記載のメモリ装置を制御するホスト装置を制御するための制御プログラムであって、
前記ホスト装置に前記解除コマンドを出力させるための制御プログラム。
【請求項３３】
請求項２４に記載のメモリ装置を制御するホスト装置を制御するための制御プログラムであって、
前記ホスト装置に前記指示コマンドを出力させるための制御プログラム。
【請求項３４】
それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置の動作方法であって、
（ａ）第１モードで動作する工程と、
（ｂ）第２モードで動作する工程と、
（ｃ）第３モードで動作する工程と
を備え、
前記工程（ａ）は、
（ａ−１）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、
（ａ−２）前記工程（ａ−１）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、
（ａ−３）前記工程（ａ−１）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、
（ａ−４）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する出力データを書き込む工程と
を有し、
前記工程（ｂ）は、（ｂ−１）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程を有し、
（ｄ）前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更する工程と、
（ｅ）前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する工程と
をさらに備える、メモリ装置の動作方法。
【請求項３５】
それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置の動作方法であって、
（ａ）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、
（ｂ）前記工程（ａ）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、
（ｃ）前記工程（ａ）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、
（ｄ）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程と、
（ｅ）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程と
を備え、
前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、
前記管理領域は、
当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、
前記ステータス情報の更新状況を示す第２管理領域と
を有し、
前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、
（ｆ）前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込む工程と、
（ｇ）前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込む工程と、
（ｈ）前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込む工程と、
（ｉ）前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う工程と
をさらに備える、メモリ装置の動作方法。
【請求項３６】
請求項１乃至請求項４のいずれか一つに記載のメモリ装置を制御するホスト装置の動作方法であって、
前記解除コマンドを出力する工程を備える、ホスト装置の動作方法。
【請求項３７】
請求項２４に記載のメモリ装置を制御するホスト装置の動作方法であって、
前記指示コマンドを出力する工程を備える、ホスト装置の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に関する。
【背景技術】
【０００２】
特許文献１及び２に記載されているように、従来からメモリ装置に関して様々な技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３４５００７１号公報
【特許文献２】特許第５１６２８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、メモリ装置については、その性能の向上が望まれる。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、メモリ装置の性能の向上を図ることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
メモリ装置の一態様は、ホスト装置によって制御されるメモリ装置であって、それぞれがデータ消去単位となり、前記ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、前記メモリコアを制御するコントローラと、前記複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと、論理アドレスとの対応関係を示す第１テーブルとを備え、前記コントローラの動作モードには、第１〜第３モードが含まれ、前記第１モードの前記コントローラは、前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取ると、前記第１テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定し、前記第１テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定し、前記第１モードの前記コントローラは、前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込み、前記第２モードの前記コントローラは、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定し、前記コントローラは、前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更し、前記コントローラは、前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する。
【０００７】
また、メモリ装置の一態様は、ホスト装置によって制御されるメモリ装置であって、それぞれがデータ消去単位となり、前記ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、前記メモリコアを制御するコントローラと、前記複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと、論理アドレスとの対応関係を示す第１テーブルとを備え、前記コントローラは、前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取ると、前記第１テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定し、前記第１テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定し、前記コントローラは、前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込み、前記コントローラは、前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定し、前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、前記管理領域は、当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、前記ステータス情報の更新状況を示す第２管理領域とを有し、前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、前記コントローラは、前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込み、前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込み、前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込み、前記コントローラは、前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う。
【０００８】
また、コントローラの一態様は、上記のメモリ装置が備えるコントローラである。
【０００９】
また、ホスト装置の一態様は、上記のメモリ装置を制御するホスト装置であって、前記解除コマンドを出力する。
【００１０】
また、ホスト装置の一態様は、上記のメモリ装置を制御するホスト装置であって、前記指示コマンドを出力する。
【００１１】
また、データ処理システムの一態様は、上記のメモリ装置と、前記メモリ装置を制御し、前記消去コマンド及び前記書き込みコマンドを出力するホスト装置とを備える。
【００１２】
また、制御プログラムの一態様は、それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置を制御するための制御プログラムであって、前記メモリ装置に、（ａ）第１モードで動作する工程と、（ｂ）第２モードで動作する工程と、（ｃ）第３モードで動作する工程とを実行させ、前記工程（ａ）において、（ａ−１）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、（ａ−２）前記工程（ａ−１）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、（ａ−３）前記工程（ａ−１）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、（ａ−４）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程とを実行させ、前記工程（ｂ）において、（ｂ−１）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程を実行させ、（ｄ）前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更する工程と、（ｅ）前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する工程とを実行させるためのものである。
【００１３】
また、制御プログラムの一態様は、それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置を制御するための制御プログラムであって、前記メモリ装置に、（ａ）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、（ｂ）前記工程（ａ）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、（ｃ）前記工程（ａ）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、（ｄ）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程と、（ｅ）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程とを実行させ、前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、前記管理領域は、当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、前記ステータス情報の更新状況を示す第２管理領域とを有し、前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、（ｆ）前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込む工程と、（ｇ）前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込む工程と、（ｈ）前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込む工程と、（ｉ）前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う工程とを実行させるためのものである。
【００１４】
また、制御プログラムの一態様は、上記のメモリ装置を制御するホスト装置を制御するための制御プログラムであって、前記ホスト装置に前記解除コマンドを出力させるためのものである。
【００１５】
また、制御プログラムの一態様は、上記のメモリ装置を制御するホスト装置を制御するための制御プログラムであって、前記ホスト装置に前記指示コマンドを出力させるためのものである。
【００１６】
また、メモリ装置の動作方法の一態様は、それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置の動作方法であって、（ａ）第１モードで動作する工程と、（ｂ）第２モードで動作する工程と、（ｃ）第３モードで動作する工程とを備え、前記工程（ａ）は、（ａ−１）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、（ａ−２）前記工程（ａ−１）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、（ａ−３）前記工程（ａ−１）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、（ａ−４）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する出力データを書き込む工程とを有し、前記工程（ｂ）は、（ｂ−１）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程を有し、（ｄ）前記第２モードで動作する場合、前記消去待ち領域のデータを消去している最中に前記第２モードの解除を指示する解除コマンドを前記ホスト装置から受け取ると、前記動作モードを前記第２モードから前記第３モードに変更する工程と、（ｅ）前記第３モードで動作する場合、前記消去待ち領域の未消去のデータを消去して当該消去待ち領域を前記消去済み領域に設定し、前記動作モードを前記第３モードから前記第１モードに変更する工程とをさらに備える。
【００１７】
また、メモリ装置の動作方法の一態様は、それぞれがデータ消去単位となり、ホスト装置が出力する出力データが書き込まれる複数の消去単位領域を含む記憶領域を有するメモリコアと、当該複数の消去単位領域にそれぞれ割り当てられた複数の物理アドレスの一部の各物理アドレスと論理アドレスとの対応関係を示すテーブルとを備え、当該ホスト装置によって制御されるメモリ装置の動作方法であって、（ａ）前記ホスト装置が出力する、データ消去を指示する消去コマンドと、当該消去コマンドとともに前記ホスト装置が出力する前記論理アドレスである第１論理アドレスとを受け取る工程と、（ｂ）前記工程（ａ）の後に、前記テーブルにおいて前記第１論理アドレスに対応付けられている前記物理アドレスである第１物理アドレスが割り当てられた前記消去単位領域のデータを消去せずに、当該消去単位領域をデータの消去待ち領域に設定する工程と、（ｃ）前記工程（ａ）の後に、前記テーブルにおいて、前記第１物理アドレスを、データ消去済みの前記消去単位領域である消去済み領域に割り当てられた前記物理アドレスに置き換え、当該消去済み領域を、前記ホスト装置がデータを書き込むことが可能なアクセス領域に設定する工程と、（ｄ）前記ホスト装置が出力する、データ書き込みを指示する書き込みコマンドと、当該書き込みコマンドとともに前記ホスト装置が出力する前記論理アドレスである第２論理アドレスとを受け取ると、前記第１テーブルにおいて当該第２論理アドレスに対応付けられている前記物理アドレスが割り当てられた前記アクセス領域に、前記ホスト装置が出力する前記出力データを書き込む工程と、（ｅ）前記消去待ち領域のデータを消去して、当該消去待ち領域を前記消去済み領域に設定する工程とを備え、前記複数の消去単位領域のそれぞれは、前記出力データが書き込まれるホストデータ領域と、当該消去単位領域の状態を管理するための管理領域とを有し、前記管理領域は、当該管理領域を含む前記消去単位領域が、前記アクセス領域であるのか、前記消去済み領域であるのか、前記消去待ち領域であるのかを示すステータス情報を記憶する第１管理領域と、前記ステータス情報の更新状況を示す第２管理領域とを有し、前記第２管理領域は、前記消去済み領域、前記アクセス領域及び前記消去待ち領域にそれぞれ対応する第１乃至第３更新管理領域を含み、（ｆ）前記ステータス情報を、前記消去単位領域が前記消去済み領域であることを示す第１ステータス情報に書き換える際には、第１所定情報を前記第１更新管理領域に書き込む工程と、（ｇ）前記ステータス情報を、前記消去単位領域が前記アクセス領域であることを示す第２ステータス情報に書き換える際には、第２所定情報を前記第２更新管理領域に書き込む工程と、（ｈ）前記ステータス情報を、前記消去単位領域が前記消去待ち領域であることを示す第３ステータス情報に書き換える際には、第３所定情報を前記第３更新管理領域に書き込む工程と、（ｉ）前記ステータス情報が正しいか否かを、前記第１乃至第３更新管理領域内の情報に基づいて判定する正否判定を行う工程とをさらに備える。
【００１８】
また、ホスト装置の動作方法の一態様は、上記のメモリ装置を制御するホスト装置の動作方法であって、前記解除コマンドを出力する工程を備える。
【００１９】
また、ホスト装置の動作方法の一態様は、上記のメモリ装置を制御するホスト装置の動作方法であって、前記指示コマンドを出力する工程を備える。
【発明の効果】
【００２０】
メモリ装置の性能が向上する。
【図面の簡単な説明】
【００２１】
【図１】データ処理システムの構成の一例を示す図である。
【図２】記憶領域の構成の一例を示す図である。
【図３】セクタの構成の一例を示す図である。
【図４】動作モードの一例を示す図である。
【図５】論物変換テーブル(Ｌ２Ｐテーブル）の一例を示す図である。
【図６】管理テーブルの一例を示す図である。
【図７】メモリ装置の動作の一例を説明するための図である。
【図８】メモリ装置の動作の一例を説明するための図である。
【図９】セクタ内のデータの一例を図である。
【図１０】メモリ装置の動作の一例を説明するための図である。
【図１１】メモリ装置の動作の一例を説明するための図である。
【図１２】メモリ装置の動作の一例を示すフローチャートである。
【図１３】メモリ装置の動作の一例を説明するための図である。
【図１４】メモリ装置の動作の一例を説明するための図である。
【図１５】メモリ装置の動作の一例を説明するための図である。
【図１６】メモリ装置の動作の一例を説明するための図である。
【図１７】メモリ装置の動作の一例を説明するための図である。
【図１８】メモリ装置の動作の一例を説明するための図である。
【図１９】メモリ装置の動作の一例を説明するための図である。
【図２０】メモリ装置の動作の一例を示すフローチャートである。
【図２１】メモリ装置の動作の一例を説明するための図である。
【図２２】メモリ装置の動作の一例を説明するための図である。
【図２３】メモリ装置の動作の一例を説明するための図である。
【図２４】メモリ装置の動作の一例を説明するための図である。
【図２５】メモリ装置の動作の一例を説明するための図である。
【図２６】メモリ装置の動作の一例を説明するための図である。
【図２７】メモリ装置の動作の一例を説明するための図である。
【図２８】メモリ装置の動作の一例を説明するための図である。
【図２９】メモリ装置の動作の一例を説明するための図である。
【図３０】メモリ装置の動作の一例を説明するための図である。
【図３１】メモリ装置の動作の一例を示すフローチャートである。
【図３２】メモリ装置の動作の一例を説明するための図である。
【図３３】メモリ装置の動作の一例を説明するための図である。
【図３４】メモリ装置の動作の一例を説明するための図である。
【図３５】メモリ装置の動作の一例を説明するための図である。
【図３６】メモリ装置の消費電流波形の一例を示す図である。
【図３７】メモリ装置の動作の一例を示すフローチャートである。
【図３８】ホスト装置の動作の一例を示すフローチャートである。
【図３９】メモリ装置の動作の一例を示すフローチャートである。
【図４０】メモリ装置の動作の一例を示すフローチャートである。
【図４１】メモリ装置の動作の一例を示すフローチャートである。
【図４２】メモリ装置の動作の一例を示すフローチャートである。
【図４３】メモリ装置の動作の一例を示すフローチャートである。
【図４４】メモリ装置の動作の一例を示すフローチャートである。
【図４５】メモリ装置の動作の一例を示すフローチャートである。
【図４６】メモリ装置の動作の一例を示すフローチャートである。
【図４７】セクタ内のデータの一例を示す図である。
【図４８】セクタ内のデータの一例を示す図である。
【図４９】セクタ内のデータの一例を示す図である。
【図５０】セクタ内のデータの一例を示す図である。
【図５１】セクタ内のデータの一例を示す図である。
【図５２】セクタ内のデータの一例を示す図である。
【図５３】セクタ内のデータの一例を示す図である。
【図５４】セクタ内のデータの一例を示す図である。
【図５５】セクタ内のデータの一例を示す図である。
【図５６】セクタ内のデータの一例を示す図である。
【図５７】セクタ内のデータの一例を示す図である。
【図５８】メモリ装置の動作の一例を説明するための図である。
【図５９】メモリ装置の動作の一例を説明するための図である。
【発明を実施するための形態】
【００２２】
＜データ処理システムの全体構成＞
図１はデータ処理システム１の構成の一例を示す図である。データ処理システム１は、ホスト装置２と、メモリ装置３とを備えている。ホスト装置２は、メモリ装置３を制御する上位装置である。メモリ装置３は、例えば不揮発性メモリ装置である。メモリ装置３は、例えば、ＳＰＩ（Serial Peripheral Interface）フラッシュメモリである。メモリ装置３はメモリコア４を有する。メモリ装置３は、例えば１つの半導体チップで構成されている。なおメモリ装置３は、複数の半導体チップで構成されてもよい。メモリ装置３は半導体メモリ装置であると言える。
【００２３】
ホスト装置２は、データ処理システム１全体の動作を統括的に管理する。ホスト装置２は、データ処理システム１の本体装置であると言える。ホスト装置２は、メモリ装置３からデータを読み出したり、メモリ装置３にデータを書き込んだりすることが可能である。例えば、ホスト装置２がメモリ装置３に対してデータの読み出しを指示すると、メモリ装置３は、メモリコア４内のデータを読み出してホスト装置２に出力する。また、ホスト装置２がデータの書き込みを指示すると、メモリ装置３は、ホスト装置２からのデータをメモリコア４内に書き込む。
【００２４】
メモリコア４は、ホスト装置２が出力するデータ２１０（以後、「ホスト出力データ２１０」あるいは「出力データ２１０」と呼ぶ）を記憶する。データ処理システム１が例えばスマートフォン、タブレット等の携帯型電子機器である場合、ホスト出力データ２１０は、例えば、任意のアプリケーションプログラムの進行中に生成されるセーブデータである。この場合、アプリケーションプログラムは、例えば、メモリ装置３とは別に設けられた、メモリカード等のメモリ装置に記憶される。携帯型電子機器本体として機能するホスト装置２が、メモリカード等から読み出したアプリケーションプログラムを実行することによって、データ処理システム１ではアプリケーションプログラムが進行する。なお、データ処理システム１は携帯型電子機器以外であってもよいし、ホスト出力データ２１０はセーブデータ以外のデータであってもよい。
【００２５】
＜ホスト装置の構成＞
ホスト装置２は、一種のコンピュータ装置であって、コントローラ２０、記憶部２２及びＩ／Ｆ回路２３を備える。コントローラ２０は、例えば、マイクロプロセッサ２１等を備えており、ホスト装置２の動作を統括的に管理する。記憶部２２は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等の、マイクロプロセッサ２１が読み取り可能な非一時的な記録媒体で構成されている。記憶部２２には、ホスト装置２の動作を制御するための制御プログラム２００等が記憶されている。ホスト装置２の各種機能は、マイクロプロセッサ２１が記憶部２２内の制御プログラム２００を実行することによって実現される。Ｉ／Ｆ回路２３は、ホスト装置２とメモリ装置３と接続するための回路であって、メモリ装置３からの信号をコントローラ２０に入力したり、コントローラ２０からの信号をメモリ装置３に出力したりする。
【００２６】
コントローラ２０は、メモリ装置３に対して指示を行うための各種コマンドを生成して出力する。コントローラ２０が出力するコマンドは、Ｉ／Ｆ回路２３からメモリ装置３に入力される。またコントローラ２０は、Ｉ／Ｆ回路２３が出力する、メモリ装置３から読み出されたデータに対して各種処理を行う。
【００２７】
なお、コントローラ２０の全ての機能あるいはコントローラ２０の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また、記憶部２２は、ＲＯＭ及びＲＡＭ以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部２２は、例えば、小型のハードディスクドライブ及びＳＳＤ（Solid State Drive）等を備えてもよい。
【００２８】
＜メモリ装置の構成＞
メモリ装置３は、コントローラ３０、揮発性メモリ３２、Ｉ／Ｆ回路３３及びメモリコア４を備えている。コントローラ３０は、例えば、マイクロプロセッサ３１等を備えており、メモリ装置３の動作を統括的に管理する。Ｉ／Ｆ回路３３は、メモリ装置３とホスト装置２とを接続するための回路であって、ホスト装置２からの信号をコントローラ３０に入力したり、コントローラ３０からの信号をホスト装置２に出力したりする。コントローラ３０は、Ｉ／Ｆ回路３３から出力される、ホスト装置２からのコマンドに応じた処理を行う。
【００２９】
揮発性メモリ３２は、例えばＳＲＡＭ（Static RAM）であって、コントローラ３０がデータ処理する際のワークメモリ等として機能する。なお、揮発性メモリ３２は、ＤＲＡＭ（Dynamic RAM）であってもよい。
【００３０】
メモリコア４の記憶領域５には、ホスト出力データ２１０以外にも、メモリ装置３の動作を制御するための制御プログラム３００が記憶されている。メモリ装置３の各種機能は、マイクロプロセッサ３１が記憶領域５内の制御プログラム３００を実行することによって実現される。メモリコア４は、マイクロプロセッサ３１が読み取り可能な非一時的な記録媒体であると言える。
【００３１】
なお、コントローラ３０の全ての機能あるいはコントローラ３０の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【００３２】
＜メモリコアの記憶領域の構成＞
図２はメモリコア４の記憶領域５の構成の一例を示す図である。図２に示されるように、記憶領域５は、Ｎ個（Ｎ≧２）のセクタ５０で構成されている。本例では、Ｎ＝５１２であるが、Ｎは５１２以外の値であってもよい。データ処理システム１では、記憶領域５内のデータはセクタ５０単位で消去される。したがって、各セクタ５０は、データ消去単位である消去単位領域であると言える。
【００３３】
記憶領域５がＮ個のセクタ５０に対しては、Ｎ個の物理アドレス（「物理ＡＤＤ」と表されることがある）がそれぞれ割り当てられている。本例では、５１２個のセクタ５０に対して、０００ｈ〜１ＦＦｈ（ｈは１６進数を示す）の物理アドレスがそれぞれ割り当てられている。
【００３４】
ホスト装置２は、物理アドレス０００ｈ〜１ＥＦｈの４９６個のセクタ５０で構成される第１部分記憶領域５Ａに対してアクセスすることが可能である。一方で、ホスト装置２は、物理アドレス１Ｆ０ｈ〜１ＦＦｈの１６個のセクタ５０で構成される第２部分記憶領域５Ｂに対してアクセスすることができない。第２部分記憶領域５Ｂには、制御プログラム３００がファームウェアとして記憶される。
【００３５】
各セクタ５０は、ユーザデータ領域５０Ａと、冗長領域５０Ｂとを備えている。コントローラ３０は、第１部分記憶領域５Ａの各セクタ５０のユーザデータ領域５０Ａに対して、ホスト装置２からの出力データ２１０を書き込むことが可能である。
【００３６】
図３は各セクタ５０の構成の一例を示す図である。図３に示されるように、各セクタ５０はＭ個（Ｍ≧２）のページＰＧで構成されている。本例では、Ｍ＝８であるが、Ｍは８以外の値であってもよい。データ処理システム１では、記憶領域５に対するデータ書き込み及びデータ読み出しは、ページＰＧ単位で行うことが可能である。またデータ処理システム１では、ユーザデータ領域５０Ａ及び冗長領域５０Ｂのそれぞれに対して、独立して、データ書き込み及びデータ読み出しを行うことができる。本例では、セクタ５０を構成する８個のページＰＧに対して、０番から７番までの番号が割り当てられている。以後、ｍ番（０≦ｍ≦７）のページＰＧを「ページｍ」と呼ぶことがある。
【００３７】
本例では、メモリ装置３はフラッシュメモリであるため、コントローラ３０は、セクタ５０にデータを書き込む場合には、当該セクタ５０のデータを消去した上で当該セクタ５０にデータを書き込む必要がある。データ書き込みは「プログラム」と呼ばれることがある。
【００３８】
本例では、第１部分記憶領域５Ａを構成する４９６個のセクタ５０のうち、２５６個のセクタ５０が、Ｒ／Ｗアクセスセクタ５０として使用される。一方で、当該４９６個のセクタ５０のうち、２４０個のセクタ５０のそれぞれが、消去済みセクタ５０あるいは消去待ちセクタ５０として使用される。
【００３９】
ここで、Ｒ／Ｗアクセスセクタ５０とは、ホスト装置２がコントローラ３０を通じてデータ書き込み及びデータ読み出しを行うことが可能なセクタ５０である。Ｒ／Ｗアクセスセクタ５０は、ホスト装置２がコントローラ３０を通じてデータ書き込み及びデータ読み出しを行うことが可能な消去単位領域であるホストアクセス領域と言える。
【００４０】
消去済みセクタ５０はデータ消去済みのセクタ５０である。ホスト装置２は消去済みセクタ５０にアクセスできない。消去済みセクタ５０は、データ消去済みの消去単位領域である消去済み領域と言える。
【００４１】
消去待ちセクタ５０はデータ消去待ちのセクタ５０である。ホスト装置２は消去待ちセクタ５０にアクセスできない。消去待ちセクタ５０は、データ消去待ちの消去単位領域である消去待ち領域と言える。
【００４２】
後述のように、データ処理システム１が動作しているときには、第１部分記憶領域５Ａのセクタ５０は、Ｒ／Ｗアクセスセクタ５０から消去待ちセクタ５０に変化することがある。また、第１部分記憶領域５Ａのセクタ５０は、消去待ちセクタ５０から消去済みセクタ５０に変化することがある。そして、第１部分記憶領域５Ａのセクタ５０は、消去済みセクタ５０からＲ／Ｗアクセスセクタ５０に変化することがある。データ処理システム１が動作しているときには、第１部分記憶領域５Ａのセクタ５０は、Ｒ／Ｗアクセスセクタ５０、消去待ちセクタ５０及び消去済みセクタ５０の順に繰り返し変化することがある。以後、単にセクタ５０と言えば、第１部分記憶領域５Ａのセクタ５０を意味する。
【００４３】
＜メモリ装置の動作モードについて＞
図４はコントローラ３０の動作モードの一例を示す図である。コントローラ３０の動作モードには、スタンバイモード、アイドルイレースモード（以後、「ＩＥモード」と呼ぶ）及びリリースアイドルイレースモード（以後、「ＲＩＥモード」と呼ぶ）が含まれる。スタンバイモード、ＩＥモード及びＲＩＥモードは、メモリ装置３の動作モードとして見ることができる。なお、コントローラ３０の動作モードには、他のモードが含まれてもよい。
【００４４】
スタンバイモードのコントローラ３０は、ホスト装置２からの書き込みコマンド、読み出しコマンド及び消去コマンドを受け付けることが可能である。書き込みコマンドは、セクタ５０に対するデータ書き込みを指示するコマンドである。ホスト装置２は、書き込みコマンドを使用して、ページＰＧ単位でメモリコア４に対してデータを書き込むことができる。書き込みコマンドはページプログラムコマンド（ＰＰコマンド）と呼ばれることがある。読み出しコマンドは、セクタ５０からのデータ読み出しを指示するコマンドである。ホスト装置２は、読み出しコマンドを使用して、ページＰＧ単位でメモリコア４からデータを読み出すことができる。消去コマンドは、セクタ５０のデータの消去を指示するコマンドであって、セクタイレースコマンド（ＳＥコマンド）と呼ばれることがある。
【００４５】
コントローラ３０は、書き込みコマンドを受け取ると、ホスト装置２が指定するセクタ５０のページＰＧに、ホスト装置２が出力するデータを書き込む。またコントローラ３０は、読み出しコマンドを受け取ると、ホスト装置２が指定するセクタ５０のページＰＧからデータを読み出し、読み出したデータをＩ／Ｆ回路３３を通じてホスト装置２に出力する。
【００４６】
また、スタンバイモードのコントローラ３０は、ホスト装置２が出力する、ＩＥモードで動作することを指示する指示コマンドであるＩＥコマンドを受け付けることができる。コントローラ３０は、ＩＥコマンドを受け付けると、動作モードを、スタンバイモードからＩＥモードに変更する。
【００４７】
ＩＥモードのコントローラ３０は、消去待ちセクタ５０のデータを消去する。そして、ＩＥモードのコントローラ３０は、データを消去した消去待ちセクタ５０を消去済みセクタ５０に設定する。
【００４８】
また、ＩＥモードのコントローラ３０は、ホスト装置２が出力する、ＩＥモードの解除を指示する解除コマンドであるＲＩＥコマンドを受け付けることが可能である。コントローラ３０は、ＲＩＥコマンドを受け付けると、動作モードを、ＩＥモードからＲＩＥモードに変更した後、スタンバイモードに変更する。
【００４９】
ＲＩＥモードのコントローラ３０は、ＩＥモードにおいてデータが途中まで消去された消去待ちセクタ５０が存在する場合には、当該消去待ちセクタ５０の未消去のデータを消去する。そして、コントローラ３０は、未消去のデータを消去した消去待ちセクタ５０を消去済みセクタ５０に設定する。その後、コントローラ３０は、動作モードをスタンバイモードに変更する。また、コントローラ３０は、データが途中まで消去された消去待ちセクタ５０が存在しない場合には、特に処理を行わずに、動作モードをスタンバイモードに変更する。
【００５０】
本例では、スタンバイモードのコントローラ３０は、ホスト装置２から消去コマンドを受け取ると、ホスト装置２から指定されたセクタ５０のデータを消去する替りに、消去済みセクタ５０をＲ／Ｗアクセスセクタ５０に変更する。これにより、ホスト装置２から見れば、指定したセクタ５０のデータが消去されたように見える。そして、コントローラ３０は、データを消去しなかったセクタ５０を消去待ちセクタ５０とし、ＩＥモードにおいて当該消去待ちセクタ５０のデータを消去する。
【００５１】
なお、スタンバイモード、ＩＥモード及びＲＩＥモードのコントローラ３０の動作については後で詳細に説明する。
【００５２】
＜メモリ装置が使用するテーブルについて＞
コントローラ３０は、２種類のテーブルを使用して、ホスト装置２からのコマンドに応じてメモリコア４にアクセスする。具体的には、コントローラ３０は、Ｒ／Ｗアクセスセクタ５０の物理アドレスと論理アドレス（「論理ＡＤＤ」と表されることがある）との対応関係を示す論物変換テーブル（以後、「Ｌ２Ｐテーブル」と呼ぶ）６０と、消去済みセクタ５０及び消去待ちセクタ５０の物理アドレスを管理するための管理テーブル７０とを使用する。管理テーブル７０には、消去済みセクタ５０及び消去待ちセクタ５０の物理アドレスが登録されている。コントローラ３０は、メモリ装置３の起動時に、つまりメモリ装置３の電源がオフからオンになったときに、Ｌ２Ｐテーブル６０及び管理テーブル７０を生成して揮発性メモリ３２に記憶する。
【００５３】
図５はＬ２Ｐテーブル６０の一例を示す図である。図６は管理テーブル７０の一例を示す図である。Ｌ２Ｐテーブル６０では、２５６個のＲ／Ｗアクセスセクタ５０の物理アドレスと、２５６個の論理アドレスとがそれぞれ対応付けられている。図５の例では、２５６個のＲ／Ｗアクセスセクタ５０の物理アドレスと、００ｈ〜ＦＦｈの２５６個の論理アドレスとがそれぞれ対応付けられている。Ｌ２Ｐテーブル６０では、論理アドレスは変化しない。一方で、Ｒ／Ｗアクセスセクタ５０に設定されるセクタ５０が変化することから、Ｌ２Ｐテーブル６０では、論理アドレスに対応付けられる物理アドレスは変化する。ホスト装置２では論理アドレスが管理されており、ホスト装置２は、論理アドレスを指定することによって、データ書き込み及びデータ読み出しを行うＲ／Ｗアクセスセクタ５０を指定する。以後、Ｒ／Ｗアクセスセクタ５０の物理アドレスを「Ｒ／Ｗアクセスアドレス」と呼ぶことがある。
【００５４】
管理テーブル７０では、消去済みセクタ５０及び消去待ちセクタ５０についての２４０個の物理アドレスが登録されている。そして、管理テーブル７０では、２４０個の物理アドレスに対して２４０個の番号が割当番号としてそれぞれ割り当てられている。図６の例では、００ｈ〜ＥＦｈまでの２４０個の通し番号が割当番号として２４０個の物理アドレスにそれぞれ割り当てられている。管理テーブル７０では、登録されている割当番号は変化しない。一方で、消去済みセクタ５０に設定されるセクタ５０が変化し、消去待ちセクタ５０に設定されるセクタ５０が変化することから、管理テーブル７０では、割当番号に対応付けられる物理アドレスは変化する。コントローラ３０は、消去済みセクタ５０をＲ／Ｗアクセスセクタ５０に変更すると、それに応じて管理テーブル７０を更新する。
【００５５】
またコントローラ３０は、管理テーブル７０に登録されている複数の物理アドレスの一つを指し示す消去済みポインタＳＰと、当該複数の物理アドレスの一つを指し示す消去待ちポインタＥＰとを使用して、消去済みセクタ５０及び消去待ちセクタ５０の物理アドレスを管理する。
【００５６】
管理テーブル７０の複数の物理アドレスには所定の順番が割り当てられている。具体的には、各物理アドレスには割当番号が所定の順番として割り当てられている。コントローラ３０は、消去済みポインタＳＰ及び消去待ちポインタＥＰのそれぞれを、割当番号（００ｈ〜ＥＦｈまでの通し番号）の順に循環して移動する。
【００５７】
管理テーブル７０に登録されている２４０個の物理アドレスを割当番号の順で循環して見る場合において、消去済みポインタＳＰが指し示す物理アドレスから、消去待ちポインタＥＰが指し示す物理アドレスよりも一つ前の物理アドレスまでが、消去済みセクタ５０の物理アドレスとなっている。また、管理テーブル７０に登録されている２４０個の物理アドレスを割当番号の順で循環して見る場合において、消去待ちポインタＥＰが指し示す物理アドレスから、消去済みポインタＳＰが指し示す物理アドレスよりも一つ前の物理アドレスまでが、消去待ちセクタ５０の物理アドレスとなっている。
【００５８】
図６の例では、管理テーブル７０に登録されている２４０の物理アドレスを割当番号の順で循環して見る場合において、消去待ちポインタＥＰが指し示す０００ｈから、消去済みポインタＳＰが指し示す１ＥＥｈよりも一つ前の１ＥＤｈまでの２３８個の物理アドレスが、消去待ちセクタ５０の物理アドレスとなっている。また、管理テーブル７０に登録されている２４０の物理アドレスを割当番号の順で循環して見る場合において、消去済みポインタＳＰが指し示す１ＥＥｈから、消去待ちポインタＥＰが指し示す０００ｈよりも一つ前の１ＥＦｈまでの２個の物理アドレスが、消去済みセクタ５０の物理アドレスとなっている。
【００５９】
本例では、消去待ちポインタＥＰ及び消去済みポインタＳＰは、ハードウェア回路によってコントローラ３０に実装されているが、ソフトウェアで実現されてもよい。つまり、制御プログラム３００を実行するマイクロプロセッサ３１が消去待ちポインタＥＰ及び消去済みポインタＳＰを生成してもよい。
【００６０】
以後、消去待ちセクタ５０の物理アドレスを「消去待ちアドレス」と呼び、消去済みセクタ５０の物理アドレスを「消去済みアドレス」と呼ぶことがある。
【００６１】
スタンバイモードのコントローラ３０は、ホスト装置２から消去コマンドを受け取ると、Ｌ２Ｐテーブル６０において、ホスト装置２から指定される論理アドレスに対応するＲ／Ｗアクセスアドレスを、消去済みポインタＳＰが指し示す、消去済みセクタ５０の消去済みアドレスに置き換える。これにより、消去済みセクタ５０からＲ／Ｗアクセスセクタ５０に変更されるセクタ５０の物理アドレスがＬ２Ｐテーブル６０に登録される。また、スタンバイモードのコントローラ３０は、管理テーブル７０において、消去済みポインタＳＰが指し示す、消去済みセクタ５０の消去済みアドレスを、ホスト装置２から指定される論理アドレスに対応するＲ／Ｗアクセスアドレスに置き換え、次の物理アドレスを指し示すように消去済みポインタＳＰを移動する。これにより、Ｒ／Ｗアクセスセクタ５０から消去待ちセクタ５０に変更されるセクタ５０の物理アドレスが、管理テーブル７０に登録される。
【００６２】
図７には、Ｌ２Ｐテーブル６０において、ホスト装置２から指定される論理アドレスに対応するＲ／Ｗアクセスアドレスが、消去済みポインタＳＰが指し示す消去済みアドレスに置き換えられる様子の一例が示される。また図７には、管理テーブル７０において、消去済みポインタＳＰが指し示す消去済みアドレスが、ホスト装置２から指定される論理アドレスに対応するＲ／Ｗアクセスアドレスに置き換えられ、次の物理アドレスを指し示すように消去済みポインタＳＰが移動する様子の一例が示されている。図７の例では、Ｌ２Ｐテーブル６０において、ホスト装置２から指定される論理アドレス００ｈに対応するＲ／Ｗアクセスアドレス１００ｈが、消去済みポインタＳＰが指し示す消去済みアドレス１ＥＥｈに置き換えられている。また図７の例では、管理テーブル７０において、消去済みポインタＳＰが指し示す消去済みアドレス１ＥＥｈが、ホスト装置２から指定される論理アドレスに対応するＲ／Ｗアクセスアドレス１００ｈに置き換えられている。
【００６３】
ＩＥモードのコントローラ３０は、管理テーブル７０において、消去待ちポインタＥＰが指し示す物理アドレスの消去待ちセクタ５０のデータを消去して当該消去待ちセクタ５０を消去済みセクタ５０に変更し、次の物理アドレスを指し示すように消去待ちポインタＥＰを移動する。これにより、データが消去されたセクタ５０の物理アドレスが、消去済みアドレスとして管理テーブル７０に登録される。
【００６４】
図８には、次の物理アドレスを指し示すように消去待ちポインタＥＰが移動する様子の一例が示されている。図８では、消去済みアドレスにハッチングが示されている。図８の例では、消去待ちポインタＥＰが指し示す物理アドレス０００ｈの消去待ちセクタ５０のデータが消去され、消去待ちポインタＥＰが１つ次に移動している。図８の例では、データが消去されたセクタ５０の物理アドレス０００ｈが消去済みアドレスに変化している。
【００６５】
なお、消去済みポインタＳＰ及び消去待ちポインタＥＰが同じ物理アドレスを指し示す場合には、管理テーブル７０に登録されているすべての物理アドレスは、消去済みアドレスあるいは消去待ちアドレスとなる。消去済みポインタＳＰが次に移動して、消去済みポインタＳＰ及び消去待ちポインタＥＰが指し示す物理アドレスが一致した場合には、管理テーブル７０に登録されているすべての物理アドレスは、すべて消去待ちポインタＥＰとなる。一方で、消去待ちポインタＥＰが次に移動して、消去済みポインタＳＰ及び消去待ちポインタＥＰが指し示す物理アドレスが一致した場合には、管理テーブル７０に登録されているすべての物理アドレスは、すべて消去済みポインタＳＰとなる。
【００６６】
このように、コントローラ３０は、消去済みポインタＳＰ及び消去待ちポインタＥＰを使用することによって、消去済みアドレス及び消去待ちアドレスを１つの管理テーブル７０で管理することから、消去済みアドレス及び消去待ちアドレスを管理するために必要なテーブルを記憶するために必要な記憶容量を低減することができる。
【００６７】
なお、コントローラ３０は、消去済みアドレスが登録された消去済みテーブルと、消去待ちアドレスが登録された消去待ちテーブルとを使用してもよい。２４０個の物理アドレスのすべてが消去済みアドレスとなったり、２４０個の物理アドレスのすべてが消去待ちアドレスとなったりすることから、消去済みテーブル及び消去待ちテーブルのそれぞれは、２４０個分の物理アドレスを登録できる必要がある。つまり、消去済みテーブルと消去待ちテーブルとを合わせて、４８０個分の物理アドレスを記憶するための記憶容量が必要となる。これに対して、本例のように、２４０個の物理アドレスを登録できる１つの管理テーブル７０を使用する場合には、２４０個分の物理アドレスを記憶するための記憶容量があればよい。
【００６８】
＜冗長領域に書き込まれる管理情報について＞
図９は第１部分記憶領域５Ａのセクタ５０に書き込まれる情報の一例を示す図である。上述のように、コントローラ３０は、第１部分記憶領域５Ａのセクタ５０のユーザデータ領域５０Ａにホスト装置２からの出力データ２１０を書き込むことが可能である。一方で、コントローラ３０は、第１部分記憶領域５Ａのセクタ５０の冗長領域５０Ｂを、当該セクタ５０の状態を管理するために使用する。以後、第１部分記憶領域５Ａのセクタ５０のユーザデータ領域５０Ａを特に「ホストデータ領域５０Ａ」と呼ぶことがある。また、第１部分記憶領域５Ａのセクタ５０の冗長領域５０Ｂを特に「管理領域５０Ｂ」と呼ぶことがある。
【００６９】
本例では、セクタ５０の管理領域５０Ｂのページ０が、ステータス情報が記憶される第１管理領域５０１として使用される。ステータス情報は、それを記憶するセクタ５０が、Ｒ／Ｗアクセスセクタ５０であるのか、消去済みセクタ５０であるのか、消去待ちセクタ５０であるのかを示す情報である。また、第１管理領域５０１には、Ｌ２Ｐテーブル６０において、当該第１管理領域５０１を有するセクタ５０の物理アドレスと対応付けられる論理アドレスが記憶される。
【００７０】
本例では、冗長領域５０Ｂの各ページＰＧの記憶容量は、例えば４バイトである。また、ユーザデータ領域５０Ａの各ページＰＧの記憶容量は、例えば５１２バイトである。第１管理領域５０１に記憶することが可能な３２ビットのデータのうち、例えば、下位から２５ビット目から３２ビット目の１バイトのデータがステータス情報を示す。また、当該３２ビットのデータのうち、例えば、下位から１７ビット目から２４ビット目の１バイトのデータが論理アドレスを示す。本例では、当該３２ビットデータのうち、１ビット目から１６ビット目までの２バイトのデータは使用されない。
【００７１】
ステータス情報は、それを記憶するセクタ５０が消去済みセクタ５０である場合には、例えばＦＦｈを示す。またステータス情報は、それを記憶するセクタ５０がＲ／Ｗアクセスセクタ５０である場合には、例えばＡＡｈを示す。そして、ステータス情報は、それを記憶するセクタ５０が消去待ちセクタ５０である場合には、例えば８８ｈを示す。
【００７２】
図９に示される、物理アドレス０００ｈのセクタ５０及び物理アドレス０ＦＦｈのセクタ５０はＲ／Ｗアクセスセクタ５０である。また図９に示される物理アドレス１００ｈのセクタ５０は消去済みセクタ５０である。そして、図９に示される物理アドレス１ＥＦｈのセクタ５０は消去待ちセクタ５０である。
【００７３】
以後、消去済みセクタ５０内のステータス情報を「消去済みステータス情報」と呼ぶことがある。またＲ/Ｗアクセスセクタ５０内のステータス情報を「Ｒ／Ｗアクセスステータス情報」と呼ぶことがある。そして消去待ちセクタ５０内のステータス情報を「消去待ちステータス情報」と呼ぶことがある。
【００７４】
なお、図９のホストデータ領域５０Ａに示される「Ｄａｔａ」及び「Ｄａｔａ＿ｏｌｄ」は、それぞれ、ホスト装置２が読み出すことができるホスト出力データ２１０及び消去待ちの出力データ２１０を意味している。また、図９のホストデータ領域５０Ａに示される「Ｅｒａｓｅ」は、当該ホストデータ領域５０Ａ内にデータが記憶されていないことを意味する。以降の図に示される「Ｄａｔａ」、「Ｄａｔａ＿ｏｌｄ」及び「Ｅｒａｓｅ」の意味も同様である。
【００７５】
ここで、本例では、セクタ５０のデータが消去されると、当該セクタ５０の各ビットの値は“１”を示す。コントローラ３０は、セクタ５０のデータ消去済みのビットに“０”を書き込むことによって、当該ビットの値を“１”から“０”に書き換えることができる。コントローラ３０は、セクタ５０のデータを消去しない限り、セクタ５０のビットの値を“１”から“０”に書き換えることができない。
【００７６】
上述のように、本例では、消去済みステータス情報はＦＦｈを示す。ＦＦｈは、２進数表記で１１１１＿１１１１ｂ（ｂは２進数を意味する）となることから、消去済みステータス情報を構成する各ビットの値はデータ消去済みのビットの値であると言える。セクタ５０のデータが消去されて、当該セクタ５０が消去済みセクタ５０になると、当該消去済みセクタ５０内のステータス情報は自動的にＦＦｈを示す。
【００７７】
また、Ｒ/Ｗアクセスステータス情報はＡＡｈを示す。ＡＡｈは、２進数表記で１０１０＿１０１０ｂ（ｂは２進数を意味する）となる。したがって、Ｒ/Ｗアクセスステータス情報は、消去済みステータス情報の上位から２ビット目、４ビット目、６ビット目、８ビット目の値を“０”に変更したものと一致する。コントローラ３０は、消去済みステータス情報を記憶する第１管理領域５０１の一部のビットにデータ“０”を書き込むことによって、当該第１管理領域５０１内のステータス情報を消去済みステータス情報からＲ／Ｗアクセスステータス情報に変更することができる。具体的には、コントローラ３０は、第１管理領域５０１における、消去済みステータス情報を記憶する８ビットの領域のうち、上位から２ビット目、４ビット目、６ビット目及び８ビット目のビットにデータ“０”を書き込むことによって、ステータス情報をＲ／Ｗアクセスステータス情報に変更することができる。
【００７８】
また、消去待ちステータス情報は８８ｈを示す。８８ｈは、２進数表記で１０００＿１０００ｂ（ｂは２進数を意味する）となる。したがって、消去待ちステータス情報は、Ｒ/Ｗアクセスステータス情報の上位から３ビット目及び７ビット目の値を“０”に変更したものと一致する。コントローラ３０は、Ｒ／Ｗアクセスステータス情報を記憶する第１管理領域５０１の一部のビットにデータ“０”を書き込むことによって、当該第１管理領域５０１内のステータス情報をＲ／Ｗアクセスステータス情報から消去待ちステータス情報に変更することができる。具体的には、コントローラ３０は、第１管理領域５０１における、Ｒ／Ｗアクセスステータス情報を記憶する８ビットの領域のうち、上位から３ビット目及び７ビット目のビットにデータ“０”を書き込むことによって、ステータス情報を消去待ちステータス情報に変更することができる。
【００７９】
また本例では、セクタ５０の管理領域５０Ｂのページ１〜３が、ステータス情報の更新状況を示す第２管理領域５０２として使用される。第２管理領域５０２のページ１〜ページ３は、消去済みセクタ５０、Ｒ/Ｗアクセスセクタ５０及び消去待ちセクタ５０にそれぞれ対応している。
【００８０】
コントローラ３０は、セクタ５０を消去済みセクタ５０に変更する場合には、当該セクタ５０の第２管理領域５０２のページ１に第１所定情報を書き込む。言い換えれば、コントローラ３０は、セクタ５０の第１管理領域５０１内のステータス情報をＦＦｈに書き換える場合には、当該セクタ５０の第２管理領域５０２のページ１に第１所定情報を書き込む。第２管理領域５０２のページ１を第１更新管理領域と呼ぶと、コントローラ３０は第１更新管理領域に第１所定情報を書き込む。第１所定情報は、例えば００００＿００００ｈである。以後、ある領域に００００＿００００ｈを書き込むことを「オール０を書き込む」と呼ぶことがある。本例では、第１更新管理領域にオール０が書き込まれる。
【００８１】
コントローラ３０は、セクタ５０をＲ/Ｗアクセスセクタ５０に変更する場合には、当該セクタ５０の第２管理領域５０２のページ２に第２所定情報を書き込む。言い換えれば、コントローラ３０は、セクタ５０の第１管理領域５０１内のステータス情報をＡＡｈに書き換える場合には、当該セクタ５０の第２管理領域５０２のページ２に第２所定情報を書き込む。第２管理領域５０２のページ２を第２更新管理領域と呼ぶと、コントローラ３０は第２更新管理領域に第２所定情報を書き込む。第２所定情報は、例えば００００＿００００ｈである。
【００８２】
コントローラ３０は、セクタ５０を消去待ちセクタ５０に設定する場合には、当該セクタ５０の第２管理領域５０２のページ３に第３所定情報を書き込む。言い換えれば、コントローラ３０は、セクタ５０の第１管理領域５０１内のステータス情報を８８ｈに書き換える場合には、当該セクタ５０の第２管理領域５０２のページ３に第３所定情報を書き込む。第２管理領域５０２のページ３を第３更新管理領域と呼ぶと、コントローラ３０は第３更新管理領域に第３所定情報を書き込む。第３所定情報は、例えば００００＿００００ｈである。
【００８３】
以後、第１〜第３所定情報を第１〜第３ステータス更新情報とそれぞれ呼ぶことがある。また、第１〜第３ステータス更新情報を互いに区別する必要がないときには、それぞれを単にステータス更新情報と呼ぶことがある。
【００８４】
上述の説明から理解できるように、セクタ５０は、消去済みセクタ５０からＲ／Ｗアクセスセクタ５０に変化し、Ｒ／Ｗアクセスセクタ５０から消去待ちセクタ５０に変化する。したがって、消去済みセクタ５０（図９の物理アドレス１００ｈのセクタ５０）の第２管理領域５０２では、ページ１だけにデータが書き込まれ、Ｒ／Ｗアクセスセクタ５０（図９の物理アドレス０００ｈ及び０ＦＦｈのセクタ５０）の第２管理領域５０２では、ページ１及びページ２だけにデータが書き込まれ、消去待ちセクタ５０（図９の物理アドレス１ＥＦｈのセクタ５０）の第２管理領域５０２では、ページ１、ページ２及びページ３のすべてにデータが書き込まれる。
【００８５】
＜セクタの初期出荷状態＞
図１０は、製造されたメモリ装置３が出荷される際のセクタ５０の状態の一例を示す図である。図１０に示されるように、初期出荷状態のメモリ装置３では、物理アドレス０００ｈ〜０ＦＦｈまでのセクタ５０がＲ／Ｗアクセスセクタ５０に設定されている。そして、物理アドレス０００ｈ〜０ＦＦｈまでのセクタ５０の第１管理領域５０１には、それぞれ論理アドレス００ｈ〜ＦＦｈが記憶される。したがって、初期出荷状態のメモリ装置３の起動時には、図１０に示されるように、０００ｈ〜０ＦＦｈの物理アドレスと、００ｈ〜ＦＦｈの論理アドレスとがそれぞれ対応付けられたＬ２Ｐテーブル６０が生成される。
【００８６】
また、初期出荷状態のメモリ装置３では、物理アドレス１００ｈ〜１ＥＦｈまでのセクタ５０が消去済みセクタ５０に設定されている。初期出荷状態のメモリ装置３の記憶領域５には消去待ちセクタ５０が含まれない。初期出荷状態のメモリ装置３の起動時には、図１０に示されるように、例えば、割当番号００ｈ〜ＥＦｈに対して、それぞれ、１００ｈ〜１ＥＦｈの物理アドレスが対応付けられた管理テーブル７０が生成される。
【００８７】
初期出荷状態のメモリ装置３の起動時に、コントローラ３０は、各セクタ５０の第１管理領域５０１内のステータス情報及び論理アドレスに基づいて、Ｌ２Ｐテーブル６０及び管理テーブル７０を生成して揮発性メモリ３２に記憶する。
【００８８】
なお、図１０及び後述の図に記載される「消去済みセクタ＝Ｆｕｌｌ」及び「消去待ちセクタ＝Ｅｍｐｔｙ」は、管理テーブル７０内のすべての物理アドレスが消去済みアドレスであることと、管理テーブル７０には消去待ちアドレスが登録されていないことをそれぞれ意味する。また、後述の図に記載される「消去済みセクタ＝Ｅｍｐｔｙ」及び「消去待ちセクタ＝Ｆｕｌｌ」は、管理テーブル７０には消去済みアドレスが登録されていないことと、管理テーブル７０内のすべての物理アドレスが消去待ちアドレスであることをそれぞれ意味する。
【００８９】
＜各動作モードの詳細＞
次に、スタンバイモード、ＩＥモード及びＲＩＥモードについて詳細に説明する。
【００９０】
＜スタンバイモードの詳細＞
＜書き込みコマンドを受け取った際のコントローラの動作＞
ホスト装置２は、書き込みコマンドとともに論理アドレスを出力する。またホスト装置２は、メモリ装置３に対して書き込み先のページＰＧを指定するとともに、当該ページＰＧに書き込むデータを出力する。書き込みコマンドの種類としては、ホストデータ領域５０Ａにデータを書き込むことを指示する第１書き込みコマンドと、管理領域５０Ｂにデータを書き込むことを指示する第２書き込みコマンドとがある。
【００９１】
メモリ装置３では、コントローラ３０は、書き込みコマンドを受け取ると、Ｌ２Ｐテーブル６０において、当該書き込みコマンドとともにホスト装置２が出力する論理アドレスに対応付けられている物理アドレス（Ｒ／Ｗアクセスアドレス）を特定する。そして、コントローラ３０は、特定した物理アドレスのセクタ５０（Ｒ／Ｗアクセスセクタ５０）のホストデータ領域５０Ａ及び管理領域５０Ｂのうち、書き込みコマンドの種類に応じた領域における、ホスト装置２が指定するページＰＧに対して、ホスト装置２が出力するデータを書き込む。このとき、コントローラ３０は、メモリコア４に対して書き込みコマンドを出力し、当該書込みコマンドを受け取ったメモリコア４はセクタ５０にデータを書きこむ。コントローラ３０は、セクタ５０にデータを書き込む際には管理テーブル７０を使用しない。その後、コントローラ３０は、ホスト装置２からの書き込みコマンドに応じた処理が完了したことを、Ｉ／Ｆ回路３３を通じてホスト装置２に通知する。
【００９２】
図１１は、ホスト装置２からのデータがセクタ５０のホストデータ領域５０Ａに対して書き込まれる様子の一例を示す図である。図１１には、ホスト装置２が第１書き込みコマンド及び論理アドレス００ｈを出力し、かつ書き込み先のページＰＧとしてページ０を指定する場合の例が示されている。図１１の例では、Ｌ２Ｐテーブル６０では、論理アドレス００ｈに物理アドレス０００ｈが対応付けられていることから、物理アドレス０００ｈが割り当てられたＲ／Ｗアクセスセクタ５０のホストデータ領域５０Ａのページ０に対して、ホスト装置２が出力するデータが書き込まれる。
【００９３】
＜読み出しコマンドを受け取った際のコントローラの動作＞
ホスト装置２は、読み出しコマンドとともに論理アドレスを出力する。またホスト装置２は、メモリ装置３に対して読み出し対象のページＰＧを指定する。読み出しコマンドの種類としては、ホストデータ領域５０Ａからデータを読み出すことを指示する第１読み出しコマンドと、管理領域５０Ｂからデータを読み出すことを指示する第２読み出しコマンドとがある。
【００９４】
メモリ装置３では、コントローラ３０は、読み出しコマンドを受け取ると、Ｌ２Ｐテーブル６０において、当該読み出しコマンドとともにホスト装置２が出力する論理アドレスに対応付けられている物理アドレス（Ｒ／Ｗアクセスアドレス）を特定する。そして、コントローラ３０は、特定した物理アドレスのセクタ５０（Ｒ／Ｗアクセスセクタ５０）のホストデータ領域５０Ａ及び管理領域５０Ｂのうち、読み出しコマンドの種類に応じた領域における、ホスト装置２が指定するページＰＧからデータを読み出す。このとき、コントローラ３０は、メモリコア４に対して読み出しコマンドを出力し、当該読み出しコマンドを受け取ったメモリコア４はセクタ５０からデータを読み出してコントローラ３０に出力する。コントローラ３０は、読み出したデータをＩ／Ｆ回路３３を通じてホスト装置２に出力する。コントローラ３０は、セクタ５０からデータを読み出す際には管理テーブル７０を使用しない。
【００９５】
＜消去コマンドを受け取った際のコントローラの動作＞
図１２は、メモリコア４に消去待ちセクタ５０が含まれる場合において、消去コマンドを受け取るコントローラ３０の動作の一例を示すフローチャートである。ホスト装置２は、読み出しコマンドとともに論理アドレスを出力する。以後、ホスト装置２が出力する論理アドレスを「指定論理アドレス」と呼ぶことがある。
【００９６】
図１２に示されるように、ステップｓ１において、コントローラ３０は、ホスト装置２からの消去コマンド及び指定論理アドレスを受け取ると、ステップｓ２において、消去済みポインタＳＰが指し示す消去済みアドレスを特定する。この特定された消去済みアドレスを「特定消去済みアドレス」と呼ぶ。そしてステップｓ３において、コントローラ３０は、消去済みポインタＳＰを次に移動する。
【００９７】
次にステップｓ４において、コントローラ３０は、特定消去済みアドレスが割り当てられた消去済みセクタ５０をＲ／Ｗアクセスセクタ５０に変更する。具体的には、コントローラ３０は、特定消去済みアドレスのセクタ５０の第１管理領域５０１内のステータス情報をＦＦｈからＡＡｈに変更し、当該第１管理領域５０１内の論理アドレスを指定論理アドレスに変更する。コントローラ３０は、消去済みセクタ５０の第１管理領域５０１における、消去済みステータス情報（ＦＦｈ）を記憶する８ビットの領域のうち、上位から２ビット目、４ビット目、６ビット目及び８ビット目のビットにデータ“０”を書き込むことによって、ステータス情報を、消去済みステータス情報（ＦＦｈ）からＲ／Ｗアクセスステータス情報（ＡＡｈ）に変更する。コントローラ３０は、消去済みセクタ５０のデータを消去することなく、ステータス情報を、消去済みステータス情報（ＦＦｈ）からＲ／Ｗアクセスステータス情報（ＡＡｈ）に変更することができることから、簡単にステータス情報を変更することができる。
【００９８】
ここで、コントローラ３０は、セクタ５０のページＰＧにデータを書き込むと、当該ページＰＧからデータを読み出し、読み出したデータと、書き込んだデータとが一致するか否かを判定して、正しくデータが書き込まれていることを確認するベリファイ処理を行う。ステップｓ４において、コントローラ３０は、特定消去済みアドレスのセクタ５０の第１管理領域５０１（ページ０）にデータを書き込んでステータス情報及び論理アドレスを変更すると、ベリファイ処理を行う。以後、特に説明しなくても、コントローラ３０はセクタ５０にデータを書き込んだ後にベリファイ処理を行うものとする。
【００９９】
次にステップｓ５において、コントローラ３０は、特定消去済みアドレスのセクタ５０の第２管理領域５０２のページ２にオール０を書き込む。
【０１００】
次にステップｓ６において、コントローラ３０は、Ｌ２Ｐテーブル６０において、指定論理アドレスに対応するＲ／Ｗアクセスアドレスを特定する。この特定されたＲ／Ｗアクセスアドレスを「特定Ｒ／Ｗアクセスアドレス」と呼ぶ。
【０１０１】
次にステップｓ７において、コントローラ３０は、特定Ｒ／Ｗアクセスアドレスが割り当てられたＲ/Ｗアクセスセクタ５０を消去待ちセクタ５０に変更する。具体的には、コントローラ３０は、特定Ｒ／Ｗアクセスアドレスのセクタ５０の第１管理領域５０１内のステータス情報をＡＡｈから８８ｈに変更する。コントローラ３０は、Ｒ/Ｗアクセスセクタ５０の第１管理領域５０１における、Ｒ／Ｗアクセスステータス情報（ＡＡｈ）を記憶する８ビットの領域のうち、上位から３ビット目及び７ビット目のビットにデータ“０”を書き込むことによって、ステータス情報を、Ｒ／Ｗアクセスステータス情報（ＡＡｈ）から消去待ちステータス情報（８８ｈ）に変更する。コントローラ３０は、Ｒ／Ｗアクセスセクタ５０のデータを消去することなく、ステータス情報を、Ｒ／Ｗアクセスステータス情報（ＡＡｈ）から消去待ちステータス情報（８８ｈ）に変更することができることから、簡単にステータス情報を変更することができる。
【０１０２】
次にステップｓ８において、コントローラ３０は、特定Ｒ／Ｗアクセスアドレスが割り当てられたセクタ５０の第２管理領域５０２のページ３にオール０を書き込む。
【０１０３】
次にステップｓ９において、コントローラ３０は、Ｌ２Ｐテーブル６０において、特定Ｒ／Ｗアクセスアドレスを特定消去済みアドレスに置き換える。そしてステップｓ１０にて、コントローラ３０は、管理テーブル７０において、特定消去済みアドレスを特定Ｒ／Ｗアクセスアドレスに置き換える。ステップｓ１０の実行後、コントローラ３０は、ホスト装置２からの消去コマンドに応じた処理が完了したことを、Ｉ／Ｆ回路３３を通じてホスト装置２に通知する。
【０１０４】
以上のようにしてメモリ装置３が動作することによって、ホスト装置２が消去コマンド及び指定論理アドレスを出力する場合には、メモリ装置３では、指定論理アドレスに対応するセクタ５０のデータが疑似的に消去される。
【０１０５】
図１３〜１９は、セクタ５０、Ｌ２Ｐテーブル６０及び管理テーブル７０の状態が図１１に示される状態の場合に、消去コマンド及び指定論理アドレス００ｈを受け取ったコントローラ３０の一連の動作の一例を説明するための図である。
【０１０６】
コントローラ３０は、消去コマンド及び指定論理アドレス００ｈを受け取ると（ステップｓ１）、消去済みポインタＳＰが指し示す消去済みアドレス１００ｈを特定する（図１３参照）。そして、図１３に示されるように、コントローラ３０は、消去済みポインタＳＰを次に移動する。これにより、管理テーブル７０上では、消去済みセクタ５０の数が２３９個となり、消去待ちセクタ５０の数が１個となる。図１３での「消去済みセクタ＝２３９」は、消去済みセクタ５０の数が２３９個であることを意味し、「消去待ちセクタ＝１」は、消去待ちセクタ５０の数が１個であることを意味している。
【０１０７】
次に図１４に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第１管理領域５０１内のステータス情報をＦＦｈからＡＡｈに変更する（ステップｓ４）。また図１５に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第１管理領域５０１内の論理アドレスＦＦｈを、ホスト装置２からの指定論理アドレス００ｈに変更する（ステップｓ４）。これにより、特定消去済みアドレス１００ｈが割り当てられた消去済みセクタ５０がＲ/Ｗアクセスセクタ５０に変更される。
【０１０８】
次に図１６に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第２管理領域５０２のページ２にオール０を書き込む（ステップｓ５）。
【０１０９】
次にコントローラ３０は、Ｌ２Ｐテーブル６０において、指定論理アドレスに対応するＲ／Ｗアクセスアドレス０００ｈを特定する（ステップｓ６）。そして、図１７に示されるように、コントローラ３０は、特定Ｒ／Ｗアクセスアドレス０００ｈが割り当てられたＲ／Ｗアクセスセクタ５０の第１管理領域５０１内のステータス情報をＡＡｈから８８ｈに変更する（ステップｓ７）。これにより、特定Ｒ／Ｗアクセスアドレス０００ｈが割り当てられたＲ／Ｗアクセスセクタ５０が消去待ちセクタ５０に変更される。
【０１１０】
次に図１８に示されるように、コントローラ３０は、特定Ｒ／Ｗアクセスアドレス０００ｈが割り当てられたセクタ５０の第２管理領域５０２のページ３にオール０を書き込む。
【０１１１】
次に図１９に示されるように、コントローラ３０は、Ｌ２Ｐテーブル６０において、特定Ｒ／Ｗアクセスアドレス０００ｈを特定消去済みアドレス１００ｈに置き換える（ステップｓ９）。そして、コントローラ３０は、管理テーブル７０において、特定消去済みアドレス１００ｈを特定Ｒ／Ｗアクセスアドレス０００ｈに置き換える（ステップｓ１０）。その後、コントローラ３０は、ホスト装置２からの消去コマンドに応じた処理が完了したことを、Ｉ／Ｆ回路３３を通じてホスト装置２に通知する。
【０１１２】
以上のように、本例では、コントローラ３０は、消去コマンド及び指定論理アドレスを受け取った場合、指定論理アドレスに対応するセクタ５０のデータを消去せずに、当該セクタ５０の代りに、消去済みセクタ５０を当該指定論理アドレスに対応付けることによって、指定論理アドレスに対応するセクタ５０のデータを疑似的に消去している。セクタ５０のデータを消去するために必要な時間は非常に大きいことから、このようにセクタ５０のデータが疑似的に消去されることにより、コントローラ３０の処理時間を大幅に低減することができる。よって、メモリ装置３の性能が向上する。またホスト装置２は、セクタ５０のデータが実際に消去される場合と比較して、消去コマンドの出力から書き込みコマンドの出力までの時間を短くすることができる。よって、ホスト装置２は、セクタ５０のデータが実際に消去される場合と比較して、セーブデータ等のデータを短時間でメモリ装置３に保存することができる。
【０１１３】
次に、メモリコア４に消去済みセクタ５０が含まれない場合において、消去コマンドを受け取るコントローラ３０の動作について説明する。図２０は当該動作の一例を示すフローチャートである。メモリコア４に消去済みセクタ５０が含まれない場合において、コントローラ３０は、消去コマンドを受け取ると、消去待ちセクタ５０のデータを消去して消去済みセクタ５０を生成した後に、上記のステップｓ２〜１０を実行する。
【０１１４】
図２０に示されるように、ステップｓ２１において、コントローラ３０は、ホスト装置２からの消去コマンド及び指定論理アドレスを受け取ると、ステップｓ２２において、消去待ちポインタＥＰが指し示す消去待ちアドレスを特定する。この特定された消去待ちアドレスを「特定消去待ちアドレス」と呼ぶ。そしてステップｓ２３において、コントローラ３０は、消去待ちポインタＥＰを次に移動する。
【０１１５】
次にステップｓ２４において、コントローラ３０は、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０の管理領域５０Ｂのページ０，４，５，６，７に対してオール０を書き込む。
【０１１６】
次にステップｓ２５において、コントローラ３０は、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０のデータを消去するために、メモリコア４に対して消去コマンドを出力する。消去コマンドを受け取ったメモリコア４は、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０のデータを消去する。これにより、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０が消去済みセクタ５０に変更される。その後、メモリコア４は、データ消去が完了したことを通知する消去完了通知をコントローラ３０に出力する。
【０１１７】
ステップｓ２６において、コントローラ３０は、消去完了通知を受け取ると、ステップｓ２７において、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０の第２管理領域５０２のページ１にオール０を書き込む。その後、コントローラ３０は上記のステップｓ２〜ｓ１０を実行する。ステップｓ１０の実行後、コントローラ３０は、ホスト装置２からの消去コマンドに応じた処理が完了したことを、Ｉ／Ｆ回路３３を通じてホスト装置２に通知する。
【０１１８】
図２１は、メモリコア４に消去済みセクタ５０が含まれない場合のセクタ５０、Ｌ２Ｐテーブル６０及び管理テーブル７０の状態の一例を示す図である。図２１に示される、物理アドレス０００ｈ及び０ＦＦｈのセクタ５０はＲ/Ｗアクセスセクタ５０である。また図２１に示される、物理アドレス１００ｈ及び１ＥＦｈのセクタ５０は消去待ちセクタ５０である。
【０１１９】
図２２〜２９は、セクタ５０、Ｌ２Ｐテーブル６０及び管理テーブル７０の状態が図２１に示される状態の場合に、消去コマンド及び指定論理アドレス００ｈを受け取ったコントローラ３０の一連の動作の一例を説明するための図である。
【０１２０】
コントローラ３０は、消去コマンド及び指定論理アドレス００ｈを受け取ると（ステップｓ２１）、消去待ちポインタＥＰが指し示す消去待ちアドレス１００ｈを特定する（ステップｓ２２）。そして図２２に示されるように、コントローラ３０は、消去待ちポインタＥＰを次に移動する（ステップｓ２３）。
【０１２１】
次に、図２２に示されるように、コントローラ３０は、特定消去待ちアドレス１００ｈが割り当てられた消去待ちセクタ５０の管理領域５０Ｂのページ０，４，５，６，７に対してオール０を書き込む（ステップｓ２４）。
【０１２２】
次にコントローラ３０は、メモリコア４に対して消去コマンドを出力する（ステップｓ２５）。これにより、図２３に示されるように、特定消去待ちアドレス１００ｈが割り当てられた消去待ちセクタ５０のデータが消去される。
【０１２３】
その後、コントローラ３０は、メモリコア４から消去完了通知を受け取ると（ステップｓ２６）、図２４に示されるように、特定消去待ちアドレス１００ｈが割り当てられた消去待ちセクタ５０の第２管理領域５０２のページ１にオール０を書き込む（ステップｓ２７）。
【０１２４】
次にコントローラ３０は、消去済みポインタＳＰが指し示す消去済みアドレス１００ｈを特定する（ステップｓ２）。そして、図２５に示されるように、コントローラ３０は、消去済みポインタＳＰを次に移動する（ステップｓ３）。
【０１２５】
次に図２５に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第１管理領域５０１内のステータス情報をＦＦｈからＡＡｈに変更する（ステップｓ４）。また図２６に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第１管理領域５０１内の論理アドレスＦＦｈを、ホスト装置２からの指定論理アドレス００ｈに変更する（ステップｓ４）。
【０１２６】
次に図２７に示されるように、コントローラ３０は、特定消去済みアドレス１００ｈのセクタ５０の第２管理領域５０２のページ２にオール０を書き込む（ステップｓ５）。
【０１２７】
次にコントローラ３０は、Ｌ２Ｐテーブル６０において、指定論理アドレスに対応するＲ／Ｗアクセスアドレス０００ｈを特定する（ステップｓ６）。そして、図２８に示されるように、コントローラ３０は、特定Ｒ／Ｗアクセスアドレス０００ｈが割り当てられたＲ／Ｗアクセスセクタ５０の第１管理領域５０１内のステータス情報をＡＡｈから８８ｈに変更する（ステップｓ７）。
【０１２８】
次に図２９に示されるように、コントローラ３０は、特定Ｒ／Ｗアクセスアドレス０００ｈが割り当てられたセクタ５０の第２管理領域５０２のページ３にオール０を書き込む。
【０１２９】
次に図３０に示されるように、コントローラ３０は、Ｌ２Ｐテーブル６０において、特定Ｒ／Ｗアクセスアドレス０００ｈを特定消去済みアドレス１００ｈに置き換える（ステップｓ９）。そして、コントローラ３０は、管理テーブル７０において、特定消去済みアドレス１００ｈを特定Ｒ／Ｗアクセスアドレス０００ｈに置き換える（ステップｓ１０）。その後、コントローラ３０は、ホスト装置２からの消去コマンドに応じた処理が完了したことを、Ｉ／Ｆ回路３３を通じてホスト装置２に通知する。
【０１３０】
なお、コントローラ３０が消去コマンドを受け取ったときに行う複数の処理の順番は上記の例に限られない。例えば、ステップｓ３はステップｓ１よりも後であればいつでも実行されてよい。また、ステップｓ６〜ｓ８はステップｓ２〜ｓ５の前に実行されてもよい。また、ステップｓ１０はステップｓ９の前に実行されてもよい。また、ステップｓ９，ｓ１０は、ステップｓ２，ｓ６の後であればいつでも実行されてよい。また、ステップｓ５はステップｓ４の前に実行されてもよい。また、ステップｓ８はステップｓ７の前に実行されてもよい。
【０１３１】
＜ＩＥモードの詳細＞
図３１は、ホスト装置２からのＩＥコマンドを受け取ったコントローラ３０の動作の一例を示すフローチャートである。図３１に示されるように、スタンバイモードのコントローラ３０は、ステップｓ３１において、ホスト装置２からのＩＥコマンドを受け取ると、ステップｓ３２において、動作モードをスタンバイモードからＩＥモードに変更する。
【０１３２】
次にステップｓ３３において、ＩＥモードのコントローラ３０は、ＩＥコマンドを受け取ってから所定時間が経過する前にＩＲＥコマンドを受け取ったか否かを判定する。所定時間は例えば数百ｍｓに設定される。コントローラ３０は、ＩＥコマンドを受け取ってから所定時間が経過する前にＩＲＥコマンドを受け取った場合には（ステップｓ３３でＹＥＳ）、ステップｓ３４において、消去待ちセクタ５０のデータを消去せずに、動作モードをＩＥモードからＲＩＥモードに変更する。したがって、ホスト装置２が、ＩＥコマンドを出力してから所定時間が経過する前にＩＲＥコマンドを出力する場合には、メモリ装置３ではセクタ５０のデータの消去が行われない。一方で、コントローラ３０は、ＩＥコマンドを受け取ってから、ＩＲＥコマンドを受け取らずに所定時間が経過すると（ステップｓ３３でＮＯ）、消去待ちセクタ５０のデータの消去を開始する。
【０１３３】
コントローラ３０は、消去待ちセクタ５０のデータを消去する際には、まずステップｓ３５において、消去待ちポインタＥＰが指し示す消去待ちアドレスを特定する。次にステップｓ３６において、消去待ちポインタＥＰを次に移動する。
【０１３４】
次にステップｓ３７において、コントローラ３０は、ステップｓ３５で特定した特定消去待ちアドレスが割り当てられた消去待ちセクタ５０の管理領域５０Ｂのページ０，４，５，６，７に対してオール０を書き込む。
【０１３５】
次にステップｓ３８において、コントローラ３０は、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０のデータを消去するために、メモリコア４に対して消去コマンドを出力する。消去コマンドを受け取ったメモリコア４は、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０のデータを消去する。これにより、特定消去待ちアドレスが割り当てられた消去待ちセクタ５０が消去済みセクタ５０に変更される。その後、メモリコア４は消去完了通知をコントローラ３０に出力する。
【０１３６】
ステップｓ３９において、コントローラ３０は消去完了通知を受け取ると、ステップｓ４０において、特定消去待ちアドレスが割り当てられたセクタ５０の第２管理領域５０２のページ１にオール０を書き込む。
【０１３７】
次にステップｓ４１において、コントローラ３０は、メモリコア４において消去待ちセクタ５０が無くなったか否かを判定する。コントローラ３０は、メモリコア４において消去待ちセクタ５０が無くなった場合には（ステップｓ４１でのＹＥＳ）、ステップｓ４２において、動作モードをＩＥモードに維持する。一方で、コントローラ３０は、メモリコア４において消去待ちセクタ５０が存在する場合には（ステップｓ４１でのＮＯ）、再度ステップｓ３５を実行して、消去待ちポインタＥＰが指し示す消去待ちアドレスを特定する。以後、コントローラ３０は同様に動作する。
【０１３８】
なお、コントローラ３０は、ステップｓ３３において、ＩＥコマンドを受け取ってから、ＩＲＥコマンドを受け取らずに所定時間が経過したと判定した場合であって、メモリコア４に消去待ちセクタ５０が存在しない場合には、ステップｓ３５〜ステップｓ４１を実行せずにステップｓ４２を実行する。
【０１３９】
ＩＥモードのコントローラ３０は、ステップｓ３５〜ｓ４２の間でホスト装置２からＲＩＥコマンドを受け取ると、すぐに動作モードをＩＥモードからＲＩＥモードに変更する。したがって、消去待ちセクタ５０のデータが消去されている最中に、動作モードがＩＥモードからＲＩＥモードに変化することがある。コントローラ３０は、ＩＥモードで動作する場合、ＩＲＥコマンドを受け取ると、消去待ちセクタ５０のデータを消去している最中であるか否かにかかわらず動作モードをＩＥモードからＲＩＥモードに変更する。また、ＩＥモードのコントローラ３０は、メモリコア４の記憶領域５に複数の消去待ちセクタ５０が含まれる場合には、ＲＩＥコマンドを受け取るまで、当該複数の消去待ちセクタ５０のデータ消去を継続して行う。
【０１４０】
図３２は、セクタ５０、Ｌ２Ｐテーブル６０及び管理テーブル７０の状態の一例を示す図である。図３３〜３５は、セクタ５０、Ｌ２Ｐテーブル６０及び管理テーブル７０の状態が図３２に示される状態の場合に、ＩＥコマンドを受け取ったコントローラ３０が消去待ちセクタ５０のデータを消去する際の一連の動作の一例を説明するための図である。図３２に示される、物理アドレス０００ｈ及び０ＦＦｈのセクタ５０はＲ/Ｗアクセスセクタ５０である。図３２に示される、物理アドレス１００ｈのセクタ５０は消去待ちセクタ５０である。図３２に示される、物理アドレス１ＥＦｈのセクタ５０は消去済みセクタ５０である。
【０１４１】
コントローラ３０は、上述のステップｓ３１〜ｓ３３を実行し、ステップｓ３３において、ＩＥコマンドを受け取ってから、ＩＲＥコマンドを受け取らずに所定時間が経過したと判定すると、消去待ちポインタＥＰが指し示す消去待ちアドレス１００ｈを特定する（ステップｓ３５）。次に図３３に示されるように、コントローラ３０は、消去待ちポインタＥＰを次に移動する（ステップｓ３６）。
【０１４２】
次に図３３に示されるように、コントローラ３０は、特定消去待ちアドレス１００ｈが割り当てられた消去待ちセクタ５０の管理領域５０Ｂのページ０，４，５，６，７に対してオール０を書き込む（ステップｓ３７）。
【０１４３】
次にコントローラ３０は、メモリコア４に対して消去コマンドを出力する（ステップｓ３８）。これにより、図３４に示されるように、特定消去待ちアドレス１００ｈが割り当てられた消去待ちセクタ５０のデータが消去され、当該消去待ちセクタ５０が消去済みセクタ５０に変化する。
【０１４４】
その後、コントローラ３０は、消去完了通知を受け取ると（ステップｓ３９）、図３５に示されるように、特定消去待ちアドレス１００ｈがセクタ５０の第２管理領域５０２のページ１にオール０を書き込む（ステップｓ４０）。
【０１４５】
次にコントローラ３０は、メモリコア４において消去待ちセクタ５０が無くなったか否かを判定する（ステップｓ４１）。ここでは、メモリコア４に消去待ちセクタ５０が存在することから、コントローラ３０は、消去待ちポインタＥＰが現在指し示す消去待ちアドレス１０１ｈを特定する（ステップｓ３５）。以後、コントローラ３０は同様に動作する。
【０１４６】
以上のように、ＩＥモードのコントローラ３０は、メモリコア４の記憶領域５に複数の消去待ちセクタ５０が含まれる場合には、ＲＩＥコマンドを受け取るまで、当該複数の消去待ちセクタ５０のデータ消去を継続して行う。したがって、ホスト装置２は、消去待ちセクタ５０のデータが消去されるたびにコマンドを出力する必要がなくなる。よって、コントローラ３０は、消去待ちセクタ５０のデータを消去するたびにホスト装置２からのコマンドを処理する必要はなく、メモリ装置３が複数の消去待ちセクタ５０のデータを消去する処理を簡素化することができる。よって、メモリ装置３の性能が向上する。また、ホスト装置２の処理も簡素化される。
【０１４７】
なお、コントローラ３０は、ＩＥモードで動作している場合に、消去待ちセクタ５０が無くなった場合には（ステップｓ４１でのＹＥＳ）、ＲＩＥモードを経由せずに、動作モードをＩＥモードから直接スタンバイモードに変更してもよい。
【０１４８】
＜ＩＥモードでのメモリ装置の消費電流＞
図３６は、ＩＥモードのコントローラ３０が、消去待ちセクタ５０のデータを消去する際のメモリ装置３の消費電流波形の一例を示す図である。以後、単に消費電流と言えば、メモリ装置３の消費電流を意味する。
【０１４９】
図３６に示されるように、ＩＥモードのコントローラ３０が、消去待ちセクタ５０のデータを消去する際には、動作期間６００，６１０，６２０，６３０が順に現れる。動作期間６００は、特定消去待ちアドレスが割り当てられたセクタ５０の管理領域５０Ｂのページ０，４，５，６，７に対しオール０が書き込まれて、その後、当該ページ０，４，５，６，７に対するベリファイ処理が行われる期間（ステップｓ３７）である。動作期間６１０は、消去コマンドを受け取ったメモリコア４が、特定消去待ちアドレスが割り当てられたセクタ５０のデータを消去する期間（ステップｓ３８，ｓ３９）である。動作期間６２０は、データ消去されたセクタ５０のホストデータ領域５０Ａ及び管理領域５０Ｂに対してベリファイ処理が行われる期間である。動作期間６３０は、データ消去されたセクタ５０の第２管理領域５０２のページ１にオール０が書き込まれて、その後、当該ページ１に対するベリファイ処理が行われる期間(ステップｓ４０）である。
【０１５０】
本例では、図３６に示されるように、動作期間６１０での消費電流は、動作期間６００での当該消費電流よりも大きくなっている。また、動作期間６２０での消費電流は、動作期間６１０での消費電流よりも小さくなっている。そして、動作期間６３０での消費電流は、動作期間６２０での消費電流よりも大きくなり、動作期間６１０よりも小さくなっている。これらのことから、セクタ５０のデータが消去されているときの消費電流は、セクタ５０に対してデータ書き込みを行うときの消費電流よりも大きく、セクタ５０に対してデータ読み出しを行うときの消費電流よりも大きくなると言える。
【０１５１】
なお、スタンバイモードのコントローラ３０は、消去コマンドを受け取った場合、メモリコア４に消去済みセクタ５０が含まれないときには、上述のように、消去待ちセクタ５０のデータを消去して消去済みセクタ５０を生成した後に、ステップｓ２〜１０を実行する。スタンバイモードのコントローラ３０が消去待ちセクタ５０のデータを消去する際の当該コントローラ３０の動作は、ＩＥモードのコントローラ３０が消去待ちセクタ５０のデータを消去する際の当該コントローラ３０の動作と同様であることから、スタンバイモードのコントローラ３０が消去待ちセクタ５０のデータを消去する場合にも、図３６に示される動作期間６００，６１０，６２０，６３０が順に現れる。
【０１５２】
＜ＲＩＥモードの詳細＞
図３７は、ホスト装置２からのＲＩＥコマンドを受け取ったコントローラ３０の動作の一例を示すフローチャートである。図３７に示されるように、ＩＥモードのコントローラ３０は、ステップｓ５１において、ホスト装置２からのＲＩＥコマンドを受け取ると、ステップｓ５２において、動作モードをＩＥモードからＲＩＥモードに変更する。
【０１５３】
次にステップｓ５３において、ＲＩＥモードのコントローラ３０は、データが途中まで消去された消去待ちセクタ５０がメモリコア４に存在するか否かを判定する。コントローラ３０は、データが途中まで消去された消去待ちセクタ５０がメモリコア４に存在する場合には、ステップｓ５４において、当該消去待ちセクタ５０の未消去のデータを消去して、当該消去待ちセクタ５０を消去済みセクタ５０に変更する。そしてステップｓ５５において、コントローラ３０は、動作モードをＲＩＥモードからスタンバイモードに変更する。コントローラ３０が、ＩＥモードで動作する場合に、消去待ちセクタ５０のデータを消去している最中にＲＩＥコマンドを受け取ると、データが途中まで消去された消去待ちセクタ５０が発生することになる。一方で、コントローラ３０は、データが途中まで消去された消去待ちセクタ５０がメモリコア４に存在しない場合には、ステップｓ５５を実行して、動作モードをＲＩＥモードからスタンバイモードに変更する。
【０１５４】
このように、本例では、コントローラは、ＩＥモードにおいて消去待ちセクタ５０のデータを消去している最中にＲＩＥコマンドを受け取ると、動作モードをすぐにスタンバイモードに変更するのではなく、動作モードをいったんＲＩＥモードに変更している。そして、コントローラ３０は、ＲＩＥモードにおいて、データが途中まで消去された消去待ちセクタ５０の未消去のデータを消去した後に、動作モードをスタンバイモードに変更している。したがって、動作モードがスタンバイモードに設定されたときには、ＩＥモードにおいて途中までしかデータが消去されなかったセクタ５０のデータはすべて消去されていることになる。よって、コントローラ３０は当該セクタ５０に対してデータをすぐに書き込むことができる。その結果、メモリ装置３の性能が向上する。
【０１５５】
なお、ある消去待ちセクタ５０のデータの消去中に、コントローラ３０の動作モードがＩＥモードからＲＩＥモードに変化してステップｓ５４が実行される場合であっても、コントローラ３０が当該ある消去待ちセクタ５０のデータを消去することには変わりがないことから、上述の図３６に示される動作期間６００，６１０，６２０，６３０が順に現れる。つまり、コントローラ３０の動作モードにかかわらず、コントローラ３０が消去待ちセクタ５０のデータを消去する場合には、図３６に示される動作期間６００，６１０，６２０，６３０が順に現れる。
【０１５６】
＜ホスト装置のコマンド発行動作＞
図３８は、ホスト装置２がセクタ５０に対してデータを書き込む際に出力するコマンドの順番を示す図である。本例では、コントローラ３０の動作モードは、基本的にはＩＥモードに設定されている。ホスト装置２がセクタ５０にデータを書き込む際には、図３８に示されるように、ホスト装置２のコントローラ２０は、まずＲＩＥコマンドを出力して、メモリ装置３のコントローラ３０の動作モードをスタンバイモードに変更する。そして、コントローラ２０は、消去コマンドを出力し、その後書き込みコマンドを出力する。セクタ５０は８個のページＰＧで構成されていることから、ホスト装置２は、セクタ５０の全ページＰＧにデータを書き込む場合には、８回書き込みコマンドを出力する。
【０１５７】
その後、ホスト装置２は、読み出しコマンドを、データを書き込んだページＰＧの数だけ出力して、データを書き込んだ各ページＰＧからデータを読み出す。ホスト装置２は、ページＰＧから読み出したデータと、当該ページＰＧに書き込んだデータとを比較して、当該ページＰＧに対して正しくデータが書き込まれていることを確認するベリファイ処理を行う。その後、コントローラ２０はＩＥコマンドを出力し、コントローラ３０の動作モードをＩＥモードに戻す。
【０１５８】
コントローラ２０は、データを書き込むべき他のセクタ５０が存在する場合には、ＩＥコマンドを出力した後、ＲＩＥコマンド、消去コマンド、書き込みコマンド、読み出しコマンド及びＩＥコマンドを再度順に出力して、当該他のセクタ５０にデータを書き込む。コントローラ２０は、複数のセクタ５０に対して連続的にデータを書き込む場合には、ＲＩＥコマンド、消去コマンド、書き込みコマンド、読み出しコマンド及びＩＥコマンドを順に出力する処理を繰り返し行う。
【０１５９】
ここで、上述のように、コントローラ３０は、ＩＥコマンドを受け取ってから所定時間が経過するまでにＲＩＥコマンドを受け取ると、消去待ちセクタ５０のデータを消去せずに、動作モードをＩＥモードからＲＩＥモードに変更する。ホスト装置２のコントローラ２０は、複数のセクタ５０に対して連続的にデータを書き込む場合には、ＩＥコマンドを出力してから所定時間が経過するまでにＲＩＥコマンドを出力する。これにより、複数のセクタ５０に対して連続的にデータが書き込まれる場合に、消去待ちセクタ５０のデータが消去されることを防止できる。よって、メモリ装置３が複数のセクタ５０に対してデータを書き込むために必要な時間が短縮化される。その結果、メモリ装置３の性能が向上する。
【０１６０】
また本例では、ホスト装置２は、コマンドを出力する順番を変更することなく、ＲＩＥコマンドを出力するタイミングを変更するだけで、メモリ装置３が消去待ちセクタ５０のデータ消去を実行するか否かを制御することができる。よって、メモリ装置３が消去待ちセクタ５０のデータ消去を実行するか否かをホスト装置２が制御する際の処理を簡素化できる。上述のように、ホスト装置２は、複数のセクタ５０に対して連続的にデータを書き込む場合には、ＩＥコマンドを出力してから所定時間が経過するまでにＲＩＥコマンドを出力する。一方で、ホスト装置２は、メモリ装置３に消去待ちセクタ５０のデータを消去させたい場合には、ＩＥコマンドを出力してから所定時間が経過するまでにＲＩＥコマンドを出力することは行わない。ホスト装置２は、コントローラ３０の動作モードをスタンバイモードに設定したいときにＲＩＥコマンドを出力する。ホスト装置２は、例えば、メモリ装置３に対してデータ書き込み及びデータ読み出しを行う必要がない期間はＲＩＥコマンドを出力せずに、コントローラ３０に消去待ちセクタ５０のデータを消去させる。例えば、ホスト装置２は、メモリ装置３とは別に設けられたメモリ装置からアプリケーションプログラムを読み出す期間はＲＩＥコマンドを出力せずに、コントローラ３０に消去待ちセクタ５０のデータを消去させる。これにより、メモリ装置３は、ホスト装置２からアクセスされないときに、消去待ちセクタ５０のデータを消去することができる。よって、消去待ちセクタ５０のデータ消去が、データ処理システム１全体での処理に悪影響を与える可能性を低減することができる。
【０１６１】
＜メモリ装置の起動時の動作＞
図３９はメモリ装置３の起動時の動作の一例を示すフローチャートである。メモリ装置３に対する電源供給が開始すると、図３９に示されるように、ステップｓ６１において、コントローラ３０は、各ステータス情報が正しいか否かを、各セクタ５０の第２管理領域５０２のページ１〜３（第１〜第３更新管理領域）内のステータス更新情報に基づいて判定する正否判定を行う。コントローラ３０は、正否判定において正しいと判定されたステータス情報を記憶するセクタ５０を正常セクタ５０とし、正否判定において正しくない判定されたステータス情報を記憶するセクタ５０をエラーセクタ５０とする。正否判定については後で詳細に説明する。
【０１６２】
次にステップｓ６２において、コントローラ２０は、各正常セクタ５０について、当該正常セクタ５０の第２管理領域５０２に、当該正常セクタ５０の種類に応じたステータス更新情報を書き込む。
【０１６３】
具体的には、正常セクタ５０が記憶するステータス情報がＦＦｈを示す場合、コントローラ３０は、当該正常セクタ５０（消去済みセクタ５０）の第２管理領域５０２のページ１に対してオール０（第１ステータス更新情報）を書き込む。
【０１６４】
また、正常セクタ５０が記憶するステータス情報がＡＡｈを示す場合、コントローラ３０は、当該正常セクタ５０（Ｒ/Ｗアクセスセクタ５０）の第２管理領域５０２のページ２に対してオール０（第２ステータス更新情報）を書き込む。
【０１６５】
また、正常セクタ５０が記憶するステータス情報が８８ｈを示す場合、コントローラ３０は、当該正常セクタ５０（消去待ちセクタ５０）の第２管理領域５０２のページ３に対してオール０（第３ステータス更新情報）を書き込む。
【０１６６】
ここで、メモリ装置３が動作している間に、セクタ５０のページＰＧに対するデータ読み出しの回数が多くなると、当該ページＰＧ内の情報に誤りが発生する可能性がある。本例のように、メモリ装置３の動作中に、正常セクタ５０の第２管理領域５０２に対して、当該正常セクタ５０の種類に応じたステータス更新情報が再度書き込まれることによって、メモリ装置３の動作中に、第２管理領域５０２内のステータス更新情報に誤りが発生する可能性を低減することができる。
【０１６７】
次にステップｓ６３において、コントローラ３０は、各エラーセクタ５０について、当該エラーセクタ５０のデータを消去して、当該エラーセクタ５０を消去済みセクタ５０に設定する。このとき、消去済みセクタ５０に設定されたエラーセクタ５０の第２管理領域５０２のページ１にはオール０が書き込まれる。
【０１６８】
次にステップｓ６４において、コントローラ３０は、各セクタ５０に割り当てられた物理アドレスと、各セクタ５０に記憶される情報とに基づいて、Ｌ２Ｐテーブル６０及び管理テーブル７０を生成する。ステップｓ６４において、コントローラ３０は、ステータス情報ＡＡｈを記憶するＲ/Ｗアクセスセクタ５０に割り当てられた物理アドレスと、当該Ｒ／Ｗアクセスセクタ５０の第１管理領域５０１内の論理アドレスと互いに対応付けてＬ２Ｐテーブルに登録する。またコントローラ３０は、ステータス情報ＦＦｈを記憶する消去済みセクタ５０に割り当てられた物理アドレスを管理テーブル７０に登録する。このとき、メモリコア４に複数の消去済みセクタ５０が存在する場合には、当該複数の消去済みセクタ５０の物理アドレスに対して連続した複数の割当番号が対応付けられる。またコントローラ３０は、ステータス情報８８ｈを記憶する消去待ちセクタ５０に割り当てられた物理アドレスを管理テーブル７０に登録する。このとき、メモリコア４に複数の消去待ちセクタ５０が存在する場合には、当該複数の消去待ちセクタ５０の物理アドレスに対して連続した複数の割当番号が対応付けられる。
【０１６９】
なお、メモリコア４にエラーセクタ５０が存在する場合には、そのエラーセクタ５０が消去済みセクタ５０に設定されることから、ステップｓ６４が実行されるときに、メモリコア４に含まれるＲ／Ｗアクセスセクタ５０の数が２５６個未満である可能性がある。このような場合には、コントローラ３０は、Ｒ／Ｗアクセスセクタ５０の数が２５６個となるように、所定数の消去済みセクタ５０をＲ／Ｗアクセスセクタ５０に変更する。そして、コントローラ３０は、論理アドレス００ｈ〜ＦＦｈのうち、元からＲ／Ｗアクセスセクタ５０であった各セクタ５０の第１管理領域５０１に記憶されていない論理アドレスを、Ｒ／Ｗアクセスセクタ５０に変更した各セクタ５０の第１管理領域５０１内に記憶する。これにより、ステップｓ６４が実行されるときに、メモリコア４に含まれるＲ／Ｗアクセスセクタ５０の数が２５６個未満であったとしても、最終的に生成されるＬ２Ｐテーブルでは２５６個のＲ／Ｗアクセスアドレスが登録される。
【０１７０】
図４０は、コントローラ３０が、正否判定において、あるセクタ５０内のステータス情報が正しいか否かを判定する際の当該コントローラ３０の動作の一例を示すフローチャートである。以後、説明対象のセクタ５０を「対象セクタ５０」と呼ぶことがある。また、対象セクタ５０の第１管理領域５０１内のステータス情報を「対象ステータス情報」と呼ぶことがある。コントローラ３０は、正否判定において、各セクタ５０について図４０に示される処理を実行する。
【０１７１】
図４０に示されるように、ステップｓ６１１において、コントローラ３０は、対象ステータス情報が想定される情報を示すか否かを判定する。具体的には、コントローラ３０は、対象セクタ５０から読み出した対象ステータス情報が、ＦＦｈ、ＡＡｈ及び８８ｈのいずれか一つを示すか否かを判定する。コントローラ３０は、ステップｓ６１１において、対象情報が想定される情報を示す場合、つまり対象ステータス情報がＦＦｈ、ＡＡｈ及び８８ｈのいずれか一つを示す場合、ステップｓ６１２を実行する。一方で、コントローラ３０は、対象ステータス情報が想定される情報を示さない場合、つまり対象ステータス情報がＦＦｈ、ＡＡｈ及び８８ｈ以外の情報を示す場合、ステップｓ６１４において、対象ステータス情報は正しくないと判定する。
【０１７２】
ここで、例えば、ＦＦｈであるステータス情報に誤りが発生すると、当該ステータス情報が例えばＡＡｈとなる可能性がある。したがって、ステータス情報が想定される情報を示す場合であっても、当該ステータス情報が正しくない可能性がある。
【０１７３】
そこで、本例では、対象ステータス情報が想定される情報を示す場合、コントローラ３０は、ステータス更新情報を使用して、対象ステータス情報が本当に正しい情報であるのか否かを判定する。
【０１７４】
ステップｓ６１２において、コントローラ３０は、対象ステータス情報に対応する、対象セクタ５０の第２管理領域５０２のページＰＧに、ステータス更新情報が書き込まれているか否かを判定する。以後、当該ページＰＧを「対応ページＰＧ」と呼ぶ。対象ステータス情報がＦＦｈを示す場合、対象セクタ５０の第２管理領域５０２のページ１が対応ページＰＧとなる。対象ステータス情報がＡＡｈを示す場合、対象セクタ５０の第２管理領域５０２のページ２が対応ページＰＧとなる。対象ステータス情報が８８ｈを示す場合、対象セクタ５０の第２管理領域５０２のページ３が対応ページＰＧとなる。
【０１７５】
ステップｓ６１２において、コントローラ３０は、対象ステータス情報がＦＦｈを示す場合、対象セクタ５０の第２管理領域５０２のページ１に、第１ステータス更新情報が書き込まれているか否かを判定する。つまり、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ１に、００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ１に、００００＿００００ｈが書き込まれている場合、対応ページＰＧにステータス更新情報が書き込まれていると判定する。一方で、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ１に、００００＿００００ｈが書き込まれていない場合、対応ページＰＧにステータス更新情報が書き込まれていないと判定する。
【０１７６】
またコントローラ３０は、対象セクタ５０内のステータス情報がＡＡｈを示す場合、対象セクタ５０の第２管理領域５０２のページ２に、第２ステータス更新情報が書き込まれているか否かを判定する。つまり、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ２に、００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ２に、００００＿００００ｈが書き込まれている場合、対応ページＰＧ内にステータス更新情報が記憶されていると判定する。一方で、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ２に、００００＿００００ｈが書き込まれていない場合、対応ページＰＧにステータス更新情報が書き込まれていないと判定する。
【０１７７】
またコントローラ３０は、対象セクタ５０内のステータス情報が８８ｈを示す場合、対象セクタ５０の第２管理領域５０２のページ３に、第３ステータス更新情報が書き込まれているか否かを判定する。つまり、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ３に、００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ３に、００００＿００００ｈが書き込まれている場合、対応ページＰＧにステータス更新情報が書き込まれていると判定する。一方で、コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ３に、００００＿００００ｈが書き込まれていない場合、対応ページＰＧ内にステータス更新情報が書き込まれていないと判定する。
【０１７８】
コントローラ３０は、ステップｓ６１２において、対応ページＰＧにステータス更新情報が書き込まれていると判定すると、ステップｓ６１３において対象ステータス情報が正しいと判定し、ステップｓ６１４において対象セクタ５０を正常セクタ５０とする。一方で、コントローラ３０は、対応ページＰＧにステータス更新情報が書き込まれていないと判定すると、ステップｓ６１５において対象ステータス情報が正しくないと判定し、ステップｓ６１６において対象セクタ５０をエラーセクタ５０とする。
【０１７９】
以上のように、本例では、セクタ５０の状態は、消去済みセクタ５０からＲ／Ｗアクセスセクタ５０に変更し、Ｒ／Ｗアクセスセクタ５０から消去待ちセクタ５０に変更し、消去待ちセクタ５０から消去済みセクタに変更する。そして、ステータス情報がＦＦｈに変更されると（セクタ５０が消去済みセクタ５０に変更されると）、第１ステータス更新情報が第２管理領域５０２のページ１に書き込まれ、ステータス情報がＡＡｈに変更されると（セクタ５０がＲ／Ｗアクセスセクタ５０に変更されると）、第２ステータス更新情報が第２管理領域５０２のページ２に書き込まれ、ステータス情報が８８ｈに変更されると（セクタ５０が消去待ちセクタ５０に変更されると）、第３ステータス更新情報が第２管理領域５０２のページ３に書き込まれる。したがって、ステータス情報が正しいか否かを、第２管理領域５０２のページ１〜３内のステータス更新情報に基づいて判定することによって、ステータス情報が正しいか否かをより正確に判定することができる。よって、メモリ装置３の性能が向上する。
【０１８０】
例えば、本来はＦＦｈであるステータス情報に誤りが発生して当該ステータス情報がＡＡｈとなっている場合、第２管理領域５０２のページ２には第２ステータス更新情報は記憶されていない。したがって、ステータス情報がＡＡｈを示す場合に、第２管理領域５０２のページ２に第２ステータス更新情報が記憶されていない場合には、当該ステータス情報が正しくないと正確に判定することができる。また、本来はＡＡｈであるステータス情報に誤りが発生して当該ステータス情報が８８ｈとなっている場合、第２管理領域５０２のページ３には第３ステータス更新情報は記憶されていない。したがって、ステータス情報が８８ｈを示す場合に、第２管理領域５０２のページ３に第３ステータス更新情報が記憶されていない場合には、当該ステータス情報が正しくないと正確に判定することができる。
【０１８１】
また本例では、ステータス更新情報を構成する複数ビットの値は“０”となっており、データ消去後のセクタ５０の各ビットが示す値である“１”とは異なる値となっている。そのため、コントローラ３０は、ステータス更新情報を、第２管理領域５０２のそれに対応するページＰＧに書き込む場合には、当該ページＰＧを構成する複数のビットのそれぞれの値を“１”から“０”に書き換える必要がある。したがって、上述のステップｓ６１２においては、対応ページＰＧの各ビットの値がすべて“１”から“０”に書き換えられているとき、対応ページＰＧにステータス更新情報が記憶されていると判定される。よって、ステップｓ６１において、対応ページＰＧに対してステータス更新情報が記憶されていると誤って判定される可能性を低減することができる。その結果、正否判定において、ステータス情報が正しいと誤って判定される可能性を低減することができる。
【０１８２】
なお上記の例では、第１〜第３ステータス更新情報のすべてを００００＿００００ｈとしたが、第１〜第３ステータス更新情報の少なくとも一つの情報を００００＿００００ｈとしてもよい。また、ステータス更新情報は００００＿００００ｈ以外であってもよい。
【０１８３】
また上記の例では、メモリ装置３の起動時にステップｓ６１〜ｓ６３が実行されているが、メモリ装置３の起動時以外においてステップｓ６１〜ｓ６３が実行されてもよい。
【０１８４】
＜各種変形例＞
以下にメモリ装置３の各種変形例について説明する。
【０１８５】
＜第１変形例＞
例えば、本来はＡＡｈであるステータス情報に誤りが発生して当該ステータス情報がＦＦｈとなっている場合、ＦＦｈに対応する第２管理領域５０２のページ１には、第１ステータス更新情報が記憶されている。したがって、この場合には、図４０の正否判定では、ステップｓ６１２でＹＥＳと判定され、ステータス情報が誤って正しいと判定されてしまう。
【０１８６】
そこで、本変形例では、図４１に示されるように、コントローラ３０はステップｓ６１２の後にステップｓ６１８を実行する。ステップｓ６１８では、コントローラ３０は、対象セクタ５０の第２管理領域５０２における、対応ページＰＧの次の番号のページＰＧ（以後、単に「次のページＰＧ」と呼ぶ）にステータス更新情報が書き込まれているか否かを判定する。つまり、コントローラ３０は次のページＰＧに００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対応ページＰＧが、第２管理領域５０２のページ１であれば、次のページＰＧである第２管理領域５０２のページ２に００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対応ページＰＧが、第２管理領域５０２のページ２であれば、次のページＰＧである第２管理領域５０２のページ３に００００＿００００ｈが書き込まれているか否かを判定する。コントローラ３０は、対応ページＰＧが、第２管理領域５０２のページ３であれば、次のページＰＧである第２管理領域５０２のページ４に００００＿００００ｈが書き込まれているか否かを判定する。
【０１８７】
コントローラ３０は、次のページＰＧに００００＿００００ｈが書き込まれていない場合には、ステップｓ６１３において対象ステータス情報が正しいと判定してステップｓ６１４を実行する。一方で、コントローラ３０は、次のページＰＧに００００＿００００ｈが書き込まれている場合には、ステップｓ６１５において対象ステータス情報が正しくないと判定してステップｓ６１６を実行する。
【０１８８】
このように、本変形例では、コントローラ３０は、対象ステータス情報が想定される情報を示し、かつ対応ページＰＧにステータス更新情報が書き込まれている場合には、すぐに対象ステータス情報が正しいと判定するのではなく、次のページにステータス更新情報が書き込まれているか否かの判定結果に基づいて、対象ステータス情報が正しいか否かを判定している。したがって、ステータス情報が正しいか否かをより正確に判定することができる。
【０１８９】
なお、第２管理領域５０２のページ４は未使用であることから、コントローラ３０は、ステップｓ６１８において、対応ページＰＧが、第２管理領域５０２のページ３であれば、第２管理領域５０２のページ４に００００＿００００ｈが書き込まれているか否かを判定せずに、ステップｓ６１５を実行してもよい。
【０１９０】
＜第２変形例＞
本変形例では、コントローラ３０は、ステータス情報をＦＦｈに変更した場合、その変更の後の第１管理領域５０１に記憶される全データを誤り訂正符号化して得られる第１誤り訂正符号を第１ステータス更新情報として、第２管理領域５０２のページ１に書き込む。例えば、上述の図２０のステップｓ２７及び図３１のステップｓ４０において、コントローラ３０は、特定消去待ちアドレスのセクタ５０の第１管理領域５０１に記憶されるデータを誤り訂正符号化して得られる第１誤り訂正符号を、当該セクタ５０の第２管理領域５０２のページ１に書き込む。
【０１９１】
またコントローラ３０は、ステータス情報をＡＡｈに変更した場合、その変更の後の第１管理領域５０１に記憶される全データを誤り訂正符号化して得られる第２誤り訂正符号を第２ステータス更新情報として、第２管理領域５０２のページ２に書き込む。例えば、上述の図１２のステップｓ５において、コントローラ３０は、特定消去済みアドレスのセクタ５０の第１管理領域５０１に記憶されるデータを誤り訂正符号化して得られる第２誤り訂正符号を、当該セクタ５０の第２管理領域５０２のページ２に書き込む。
【０１９２】
またコントローラ３０は、ステータス情報を８８ｈに変更した場合、その変更の後の第１管理領域５０１に記憶される全データを誤り訂正符号化して得られる第３誤り訂正符号を第３ステータス更新情報として、第２管理領域５０２のページ３に書き込む。例えば、上述の図１２のステップｓ８において、コントローラ３０は、特定Ｒ／Ｗアクセスアドレスのセクタ５０の第１管理領域５０１に記憶されるデータを誤り訂正符号化して得られる第３誤り訂正符号を、当該セクタ５０の第２管理領域５０２のページ３に書き込む。
【０１９３】
コントローラ３０は、第１管理領域５０１に記憶されるデータを、例えば、ＢＣＣ（Block Check Character）、ＢＣＨ符号あるいはリード・ソロモン符号などのＥＣＣ（Error Correction Code）を用いて誤り訂正符号化してよい。本変形例では、コントローラ３０は、第１管理領域５０１に記憶されるすべてのデータを誤り訂正符号化しているが、第１管理領域５０１に記憶される必要なデータのみ、つまりステータス情報及び論理アドレスだけを誤り訂正符号化してもよい。また、コントローラ３０は、ステータス情報だけを誤り訂正符号化してもよい。以後、第１〜第３誤り訂正符号を互いに区別する必要がないときには、それぞれを「誤り訂正符号」と呼ぶ。
【０１９４】
図４２は、ステップｓ６１で実行される本変形例に係る正否判定の一例を示すフローチャートである。正否判定において、コントローラ３０は、各セクタ５０について図４２に示される処理を実行する。
【０１９５】
図４２に示されるように、ステップｓ１０１において、コントローラ３０は、上述のステップｓ６１１と同様に、対象ステータス情報が想定される情報を示すか否かを判定する。コントローラ３０は、対象ステータス情報が想定される情報を示さない場合、ステップｓ１０８において、対象ステータス情報は正しくないと判定する。そして、ステップｓ１０９において、コントローラ３０は対象セクタ５０をエラーセクタ５０とする。一方で、コントローラ３０は、対象ステータス情報が想定される情報を示す場合、ステップｓ１０２において、対応ページＰＧ内の全データを誤り訂正復号化する。以後、誤り訂正復号化を単に「復号化」と呼ぶことがある。
【０１９６】
ステップｓ１０２の後、ステップｓ１０３において、コントローラ３０は、ステップｓ１０２において正しく復号化できたか否かを判定する。正しく復号化できた場合には、誤り訂正符号化した元のデータが復元される。コントローラ３０は、正しく復号化できた場合にはステップｓ１０４を実行する。一方で、コントローラ３０は、正しく復号化できなかった場合には、ステップｓ１１２を実行する。対応ページＰＧ内に誤り訂正符号が記憶されていない場合には、コントローラ３０は正しく復号化できない。また、誤り訂正能力を超えるビット数の誤りが対応ページＰＧ内の誤り訂正符号に発生している場合には、コントローラ３０は、対応ページＰＧ内のデータに含まれるすべての誤りを訂正できず、正しく復号化ができない。以後、正しく復号化されることによって得られるデータを「復号化データ」と呼ぶ。
【０１９７】
ステップｓ１０４では、コントローラ３０は、対象ステータス情報と、復号化データ（復元された元のデータ）に含まれるステータス情報とが一致するか否かを判定する。コントローラ３０は、対象ステータス情報と、復号化データに含まれるステータス情報とが一致する場合には、ステップｓ１０５を実行する。一方で、コントローラ３０は、対象ステータス情報と、復号化データに含まれるステータス情報とが一致しない場合には、ステップｓ１１０において、次のページＰＧにデータが書き込まれているか否かを判定する。コントローラ３０は、次のページＰＧの各ビットの値が“１”であれば、次のページＰＧにデータが書き込まれていないと判定する。一方で、コントローラ３０は、次のページＰＧのいずれかのビットの値が“０”であれば、次のページＰＧにデータが書き込まれていると判定する。コントローラ３０は、次のページＰＧにデータが書き込まれていると判定すると、ステップｓ１１１を実行する。一方で、コントローラ３０は、次のページＰＧにデータが書き込まれていないと判定すると、ステップｓ１０８において対象ステータス情報が正しくないと判定する。そして、コントローラ３０はステップｓ１０９を実行する。
【０１９８】
ステップｓ１０５において、コントローラ３０は、上述のステップｓ１１０と同様に、次のページＰＧにデータが書き込まれているか否かを判定する。コントローラ３０は、次のページＰＧにデータが書き込まれていると判定する場合、ステップｓ１１１を実行する。一方で、コントローラ３０は、次のページＰＧにデータが書き込まれていないと判定する場合、ステップｓ１０６において、対象ステータス情報は正しいと判定する。そして、ステップｓ１０７において、コントローラ３０は対象セクタ５０を正常セクタ５０とする。
【０１９９】
ステップｓ１０３でＮＯと判定されたときに実行されるステップｓ１１２において、コントローラ３０は、ステップｓ１１０と同様に、次のページＰＧにデータが書き込まれているか否かを判定する。コントローラ３０は、次のページＰＧにデータが書き込まれていると判定すると、ステップｓ１１１を実行する。一方で、コントローラ３０は、次のページＰＧにデータが書き込まれていないと判定すると、ステップｓ１１３において、対象ステータス情報の正否は不明であると判断する。そしてステップｓ１０９において、コントローラ３０は、正否が不明である対象ステータス情報を記憶する対象セクタ５０をエラーセクタ５０とする。
【０２００】
ステップｓ１１１では、コントローラ３０は、次のページＰＧ内のデータを復号化する。そしてステップｓ１１４において、コントローラ３０は、ステップｓ１１１において正しく復号化できたか否かを判定する。コントローラ３０は、正しく復号化できたと判定すると、ステップｓ１０８において対象ステータス情報は正しくないと判定する。そして、コントローラ３０はステップｓ１０９を実行する。次のページＰＧ内のデータを正しく復号化できたということは、次のページＰＧに誤り訂正符号が記憶されていることを意味する。一方で、対象ステータス情報が正しい場合には、次のページＰＧに誤り訂正符号が記憶されない。したがって、ステップｓ１１４において正しく復号化できたと判定される場合には、対象ステータス情報は正しくないと言える。
【０２０１】
一方で、ステップｓ１１４において、コントローラ３０は、正しく復号化できなかったと判定すると、ステップｓ１１３において、対象ステータス情報の正否は不明であると判定する。そして、コントローラ３０はステップｓ１０９を実行する。
【０２０２】
以上のように、ステータス更新情報として誤り訂正符号が採用されることによって、ステータス更新情報に含まれる誤りを訂正することができる。よって、ステータス情報が正しいか否かをより正確に判定することができる。
【０２０３】
なお、第１〜第３ステータス更新情報のすべてを誤り訂正符号としたが、第１〜第３ステータス更新情報の少なくとも一つの情報を誤り訂正符号としてもよい。
【０２０４】
＜第３変形例＞
本変形例に係るメモリ装置３は、上述の第２変形例に係るメモリ装置３での正否判定を変更したものである。本変形例では、コントローラ３０は、ステップｓ６１での正否判定において、ステータス情報が正しいか否かを判定するだけではなく、ステータス情報に含まれる誤りの原因の推定と、その誤りの修復を行う。図４３〜４６は、本変形例に係る正否判定の一例を示すフローチャートである。正否判定において、コントローラ３０は、各セクタ５０について図４３〜４６に示される処理を実行する。以下では、本変形例に係るメモリ装置３と第２変形例に係るメモリ装置３との相違点を主に説明する。
【０２０５】
図４３に示されるように、コントローラ３０は、上述のステップｓ１０１を実行する。ステップｓ１０１において、コントローラ３０は、対象ステータス情報が想定される情報を示さないと判定すると、ステップｓ１２５において、対象ステータス情報は正しくないと判定する。そして、コントローラ３０は、図４４に示されるステップｓ１３１を実行する。一方で、コントローラ３０は、対象ステータス情報が想定される情報を示すと判定すると、上述のステップｓ１０２，ｓ１０３を実行する。
【０２０６】
ステップｓ１０３において、コントローラ３０は、正しく復号化できなかったと判定すると、上述のステップｓ１１２を実行する。ステップｓ１１２において、コントローラ３０は、次のページにデータが書き込まれていると判定すると、図４５に示されるステップｓ１５１を実行する。一方で、コントローラ３０は、次のページにデータが書き込まれていないと判定すると、上述のステップｓ１１３を実行して、対象ステータス情報の正否は不明であると判断する。そして、コントローラ３０は、上述のステップｓ１０９を実行して、対象セクタ５０をエラーセクタ５０とする。
【０２０７】
ステップｓ１０３において、コントローラ３０は、正しく復号化できたと判定すると、ステップｓ１２１において、対象セクタ５０の第１管理領域５０１の全データと、復号化データ（復元された元のデータ）とが一致するか否かを判定する。コントローラ３０は、対象セクタ５０の第１管理領域５０１の全データと復号化データとが一致すると判定すると、ステップｓ１２２において、次のページＰＧにデータが書き込まれているか否かを判定する。コントローラ３０は、次のページＰＧにデータが書き込まれていないと判定すると、ステップｓ１２３において、第１管理領域の全データが正しいと判定する。これにより、対象ステータス情報が正しいと判定される。そして、ステップｓ１２４において、対象セクタ５０を正常セクタ５０とする。一方で、コントローラ３０は、ステップｓ１２２において、次のページＰＧにデータが書き込まれていると判定すると、図４５に示されるステップｓ１５１を実行する。以後、第１管理領域５０１のデータを「第１管理データ」と呼ぶことがある。本変形例では、第１管理データには、ステータス情報及び論理アドレスが含まれる。
【０２０８】
ステップｓ１２１において、コントローラ３０は、対象セクタ５０の第１管理領域５０１のデータと復号化データとが異なっていると判定すると、ステップｓ１２６において、次のページＰＧにデータが書き込まれているか否かを判定する。コントローラ３０は、次のページＰＧにデータが書き込まれていると判定すると、図４５に示されるステップｓ１５１を実行する。一方で、コントローラ３０は、次のページＰＧにデータが書き込まれていないと判定すると、ステップｓ１２７において、対象ステータス情報は正しくないと判定する。そして、コントローラ３０は、図４６に示されるステップｓ１７１を実行する。
【０２０９】
図４４に示されるステップｓ１３１では、コントローラ３０は、対象セクタ５０の第２管理領域５０２への書き込みが最新のデータを復号化する。以後、対象セクタ５０の第２管理領域５０２への書き込みが最新のデータを単に「最新のデータ」と呼ぶ。
【０２１０】
ステップｓ１３１において、コントローラ３０は、まず、対象セクタ５０の第２管理領域５０２のページ３にデータが書き込まれているか否かを判定する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ３にデータが書き込まれている場合には、当該データを、最新のデータとして復号化する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ３にデータが書き込まれていない場合には、対象セクタ５０の第２管理領域５０２のページ２にデータが書き込まれているか否かを判定する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ２にデータが書き込まれている場合には、当該データを、最新のデータとして復号化する。コントローラ３０は、対象セクタ５０の第２管理領域５０２のページ２にデータが書き込まれていない場合には、対象セクタ５０の第２管理領域５０２のページ１に書き込まれているデータを、最新の誤り訂正符号として復号化する。
【０２１１】
ステップｓ１３１の後、ステップｓ１３２において、コントローラ３０は、ステップｓ３１において正しく復号化できたか否かを判定する。コントローラ３０は、正しく復号化できないと判定すると、ステップｓ１３３において、対象セクタ５０をエラーセクタ５０とする。
【０２１２】
ステップｓ１３２において、コントローラ３０は、正しく復号化できたと判定すると、ステップｓ１３４において、ステップｓ１３１で得られた復号化データに基づいて、対象セクタ５０の第１管理データの各ビットについてビット化け方向確認を行う。ここで、ビット化け方向確認とは、ビットの値が、“１”から“０”に誤っているのか（化けているのか）、“０”から“１”に誤っているのか（化けているのか）いるかを推定することを意味する。
【０２１３】
ここで、復号化データは、第１管理データの正しい値を示していると考えることができる。言い換えれば、復号化データは、誤りを含まない第１管理データを示していると考えることができる。したがって、第１管理データのあるビットの値が、復号化データにおける、当該あるビットと同じビット位置のビットの値と異なっている場合には、当該あるビットの値は誤っていると推定できる。以後、第１管理データにおける、誤っていると推定されるビットの値を「誤りビット値」と呼ぶ。また、誤りビット値が“１”を示す場合、当該誤りビット値は“０”から“１”に誤っていると言える。一方で、誤りビット値が“０”を示す場合、当該誤りビット値は“１”から“０”に誤っていると言える。“１”を示す誤りビット値を「誤りビット値（０→１）」と呼び、“０”を示す誤りビット値を「誤りビット値（１→０）」と呼ぶ。
【０２１４】
ビット化け方向確認において、コントローラ３０は、第１管理データを構成する３２ビットの値と、復号化データを構成する３２ビットのビットの値とを、同じビット位置同士で比較することによって、第１管理データに含まれる誤りビット値を特定する。コントローラ３０は、特定した誤りビット値がすべて誤りビット値（０→１）である場合には、ステップｓ１３９において、第１管理データに含まれる誤りの原因は、リテンションであると推定する。リテンションとは、時間の経過によってメモリセルに格納された電子が抜けて、記憶領域５内のデータのビットの値が“０”から“１”に変化する現象である。特定した誤りビット値がすべて誤りビット値（０→１）であって、対象ステータス情報に誤りビット値が含まれる場合には、対象ステータス情報に含まれる誤りの原因がリテンションであると推定できる。
【０２１５】
またコントローラ３０は、特定した誤りビット値がすべて誤りビット値（１→０）である場合には、ステップｓ１３７において、第１管理データに含まれる誤りの原因は、リードディスターブであると推定する。リードディスターブとは、記憶領域５に対するデータ読み出しによって生じる、記憶領域５内のデータのビットの値が“１”から“０”に変化する現象である。特定した誤りビット値がすべて誤りビット値（１→０）であって、対象ステータス情報に誤りビット値が含まれる場合には、対象ステータス情報に含まれる誤りの原因がリードディスターブであると推定できる。
【０２１６】
そして、コントローラ３０は、特定した誤りビット値に誤りビット値（１→０）及び誤りビット値（０→１）の両方が含まれる場合には、ステップｓ１３５おいて、第１管理データに含まれる誤りの原因は、第１管理領域５０１にデータを書き込んでいる最中あるいはセクタ５０のデータ消去中にメモリ装置３に対する電源供給が停止したことであると推定する。特定した誤りビット値に誤りビット値（１→０）及び誤りビット値（０→１）の両方が含まれ、対象ステータス情報に誤りビット値が含まれる場合には、対象ステータス情報に含まれる誤りの原因は、第１管理領域５０１にステータス情報を書き込んでいる最中あるいはセクタ５０のデータ消去中にメモリ装置３に対する電源供給が停止したことであると推定できる。
【０２１７】
コントローラ３０は、ステップｓ１３９の後、ステップｓ１４０において、第１管理データに含まれる誤りを修復する。コントローラ３０は、メモリコア４に対して書き込みコマンドを出力することによって、ページＰＧ単位でセクタ５０のビットに“０”を書き込むことができる。コントローラ３０は、第１管理データに含まれる各誤りビット値（０→１）について、当該誤りビット値（０→１）を有するビットに“０”を書き込む。これにより、第１管理データに含まれる誤りが修復され、正しい第１管理データを得ることができる。
【０２１８】
コントローラ３０は、ステップｓ１３７の後、ステップｓ１３８において、第１管理データに含まれる誤りを修復する。コントローラ３０は、メモリコア４に対して書き込みコマンドを出力することによって、ページＰＧ単位でセクタ５０のビットに“１”を書き込むことはできない。コントローラ３０は、対象セクタ５０のデータを一度消去した上で、対象セクタ５０の第１管理領域５０１に、正しいデータ、つまりステップｓ１３１で得られた復号化データを書き込む。これにより、第１管理データの誤りが修復される。このとき、対象セクタ５０の第２管理領域５０２には、対象セクタ５０のデータの消去前に第２管理領域５０２記憶されていたデータが書き込まれる。
【０２１９】
コントローラ３０は、ステップｓ１３５の後、ステップｓ１３６において、第１管理データに含まれる誤りを、ステップｓ１３８と同様にして修復する。コントローラ３０は、対象セクタ５０のデータを消去した後、対象セクタ５０の第１管理領域５０１に、正しいデータ、つまりステップｓ１３１で得られた復号化データを書き込む。これにより、第１管理データの誤りが修復される。このとき、対象セクタ５０の第２管理領域５０２には、対象セクタ５０のデータの消去前に第２管理領域５０２記憶されていたデータが書き込まれる。
【０２２０】
ステップｓ１４０の後、コントローラ３０は、ステップｓ１４１において対象セクタ５０を正常セクタ５０にする。コントローラ３０は、ステップｓ１３８の後、ステップｓ１４１を実行して、対象セクタ５０を正常セクタ５０にする。コントローラ３０は、ステップｓ１３６の後、ステップｓ１４１を実行して、対象セクタ５０を正常セクタ５０にする。
【０２２１】
図４７は、ステップｓ１３５において、第１管理データに含まれる誤りの原因が、第１管理領域５０１にデータを書き込んでいる最中にメモリ装置３に対する電源供給が停止したことであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図４８は、ステップｓ１３７において、第１管理データに含まれる誤りの原因がリードディスターブであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図４９は、ステップｓ１３９において、第１管理データに含まれる誤りの原因がリテンションであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図４７〜４９では、左側にページ０〜７の本来の正しいデータが示されており、右側に対象セクタ５０の管理領域５０Ｂのページ０〜７の誤りを含むデータが示されている。後述の図についても同様である。図４７〜４９では、右側に示されるデータでは、誤りが発生している部分に下線が示されている。後述の図についても同様である。図４７〜４９では、ページＰＧ内の正しく復号化できる誤り訂正符号が「ＸＸＸＸ＿ＸＸＸＸ」で示されている。後述の図についても同様である。図４８，４９の例では、対象ステータス情報に誤りが発生している。
【０２２２】
図４５に示されるステップｓ１５１では、コントローラ３０は、次のページＰＧ内のデータを復号化する。そして、ステップｓ１５２において、コントローラ３０は、ステップｓ１５１において正しく復号化できたか否かを判定する。コントローラ３０は、正しく復号化できないと判定すると、ステップｓ１５３において、対象ステータス情報の正否は不明であると判定する。そしてステップｓ１５４において、コントローラ３０は対象セクタ５０をエラーセクタ５０とする。
【０２２３】
ステップｓ１５２において、コントローラ３０は、正しく復号化できたと判定すると、ステップｓ１５５において、対象ステータス情報は正しくないと判定する。次のページＰＧ内のデータを正しく復号化できたということは、次のページＰＧ内には誤り訂正符号が書き込まれていることになる。対象ステータス情報が正しい場合には、次のページＰＧには誤り訂正符号は書き込まれていない。したがって、ステップｓ１５２において正しく復号化できたと判定されたときには、言い換えれば、次のページＰＧに誤り訂正符号が記憶されているときには、対象ステータス情報が正しくないと言える。
【０２２４】
ステップｓ１５５の後、ステップｓ１５６において、コントローラ３０は、上述のステップｓ１３４と同様にして、ステップｓ１５１で得られた復号化データに基づいて、対象セクタ５０の第１管理データの各ビットについてビット化け方向確認を行う。
【０２２５】
コントローラ３０は、特定した誤りビット値がすべて誤りビット値（０→１）である場合には、ステップｓ１６１において、第１管理データに含まれる誤りの原因はリテンションであると推定する。またコントローラ３０は、ビット化け方向確認において特定した誤りビット値がすべて誤りビット値（１→０）である場合には、ステップｓ１５９において、第１管理データに含まれる誤りの原因はリードディスターブであると推定する。そして、コントローラ３０は、特定した誤りビット値に誤りビット値（１→０）及び誤りビット値（０→１）の両方が含まれる場合には、ステップｓ１５７おいて、第１管理データに含まれる誤りの原因は、第１管理領域５０１にデータを書き込んでいる最中あるいはセクタ５０のデータ消去中にメモリ装置３に対する電源供給が停止したことであると推定する。
【０２２６】
コントローラ３０は、ステップｓ１６１の後、ステップｓ１６２において、第１管理データに含まれる誤りを、上述のステップｓ１４０と同様にして修復する。そして、コントローラ３０は、ステップｓ１６３において、対象セクタ５０を正常セクタ５０とする。
【０２２７】
コントローラ３０は、ステップｓ１５９の後、ステップｓ１６０において、第１管理データに含まれる誤りを、上述のステップｓ１３８と同様にして修復する。そして、コントローラ３０は、ステップｓ１６３を実行する。
【０２２８】
コントローラ３０は、ステップｓ１５７の後、ステップｓ１５８において、第１管理データに含まれる誤りを、上述のステップｓ１３６と同様にして修復する。そして、コントローラ３０は、ステップｓ１６３を実行する。
【０２２９】
図５０は、ステップｓ１２６においてＹＥＳと判定された場合に実行されるステップｓ１５７において、第１管理データに含まれる誤りの原因が、第１管理領域５０１にデータを書き込んでいる最中にメモリ装置３に対する電源供給が停止したことであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５１は、ステップｓ１２６においてＹＥＳと判定された場合に実行されるステップｓ１６１において、第１管理データに含まれる誤りの原因がリテンションであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５１の例では、対象ステータス情報に誤りが発生している。
【０２３０】
図５２は、ステップｓ１２２においてＹＥＳと判定された場合に実行されるステップｓ１５２において、正しく復号化できなかったと判定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５２では、正しく復号化できなかった次のページＰＧ内のデータが太字の「ＹＹＹＹ＿ＹＹＹＹ」で示されている。図５２の例では、第１管理データに誤りが含まれていない。図５３，５４は、ステップｓ１２２においてＹＥＳと判定された場合に実行されるステップｓ１６１において、第１管理データに含まれる誤りの原因がリテンションであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５３，５４の例では、対象ステータス情報に誤りが発生している。
【０２３１】
図４６に示されるステップｓ１７１では、コントローラ３０は、上述のステップｓ１３４と同様にして、ステップｓ１０２で得られた復号化データに基づいて、対象セクタ５０の第１管理データの各ビットについてビット化け方向確認を行う。
【０２３２】
コントローラ３０は、ビット化け方向確認において特定した誤りビット値がすべて誤りビット値（０→１）である場合には、ステップｓ１７６において、第１管理データに含まれる誤りの原因はリテンションであると推定する。またコントローラ３０は、特定した誤りビット値がすべて誤りビット値（１→０）である場合には、ステップｓ１７４において、第１管理データに含まれる誤りの原因はリードディスターブであると推定する。そして、コントローラ３０は、特定した誤りビット値に誤りビット値（１→０）及び誤りビット値（０→１）の両方が含まれる場合には、ステップｓ１７２おいて、第１管理データに含まれる誤りの原因は、第１管理領域５０１にデータを書き込んでいる最中あるいはセクタ５０のデータ消去中にメモリ装置３に対する電源供給が停止したことであると推定する。
【０２３３】
コントローラ３０は、ステップｓ１７６の後、ステップｓ１７７において、第１管理データに含まれる誤りを、上述のステップｓ１４０と同様にして修復する。そして、コントローラ３０は、ステップｓ１７８において、対象セクタ５０を正常セクタ５０とする。
【０２３４】
コントローラ３０は、ステップｓ１７４の後、ステップｓ１７５において、第１管理データに含まれる誤りを、上述のステップｓ１３８と同様にして修復する。そして、コントローラ３０は、ステップｓ１７８を実行する。
【０２３５】
コントローラ３０は、ステップｓ１７２の後、ステップｓ１７３において、第１管理データに含まれる誤りを、上述のステップｓ１３６と同様にして修復する。そして、コントローラ３０は、ステップｓ１７８を実行する。
【０２３６】
図５５は、ステップｓ１７４において、第１管理データに含まれる誤りの原因がリードディスターブであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５６は、ステップｓ１７６において、第１管理データに含まれる誤りの原因がリテンションであると推定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。
【０２３７】
図５７は、ステップｓ１０３において正しく復号化できなかったと判定され、ステップｓ１１２において次のページＰＧにデータが書き込まれていないと判定される場合の対象セクタ５０の管理領域５０Ｂ内のデータの一例を示す図である。図５７では、正しく復号化できなかった対応ページＰＧ内のデータが太字の「ＹＹＹＹ＿ＹＹＹＹ」で示されている。
【０２３８】
以上のようにして、コントローラ３０は、対象セクタ５０が記憶する第１管理データの誤りの原因を推定すると、推定した誤りの原因を、対象セクタ５０の管理領域５０Ｂの未使用のページＰＧ（例えばページ７）に記憶する。このとき、コントローラ３０は、推定した誤りの原因を、その誤りの原因を推定した日時とともに管理領域５０Ｂに記憶してもよい。これにより、メモリ装置３のユーザは、どのセクタ５０でどのような誤りが発生したのかを特定することができる。ユーザは、特定した内容に基づいて、メモリ装置３の使用状態等を推定し、その推定結果を設計変更等に役立てることができる。
【０２３９】
＜第４変形例＞
本変形例では、コントローラ３０は、セクタ５０のホストデータ領域５０Ａに記憶される出力データ２１０を誤り訂正符号化して得られる第４誤り訂正符号を、当該セクタ５０の管理領域５０Ｂにおける、第１管理領域５０１及び第２管理領域５０２以外の領域に書き込む。本変形例では、コントローラ３０は、例えば管理領域５０Ｂのページ４に第４誤り訂正符号を書き込む。
【０２４０】
図５８は本変形例に係るメモリ装置３が対象セクタ５０に出力データ２１０を書き込む場合の動作例を説明するための図である。図５８の上側には、新しい出力データ２１０が書き込まれる前の対象セクタ５０、つまり、古い出力データ２１０を記憶する対象セクタ５０が示されている。コントローラ３０は、新しい出力データ２１０を対象セクタ５０に書き込む際には、上述のように、対象セクタ５０のデータを消去した後に、新しい出力データ２１０を対象セクタ５０のホストデータ領域５０Ａに書き込む。図５８の中央部には、新しい出力データ２１０が書き込まれた直後の対象セクタ５０が示されている。
【０２４１】
コントローラ３０は、対象セクタ５０に新しい出力データ２１０を書き込むと、ホストデータ領域５０Ａに対してベリファイ処理を行う。コントローラ３０は、対象セクタ５０のホストデータ領域５０Ａの最後のページＰＧに対するベリファイ処理を完了すると、ホストデータ領域５０Ａに書き込んだ出力データ２１０全体を誤り訂正符号化して第４誤り訂正符号を生成する。そして、コントローラ３０は、生成した第４誤り訂正符号を、対象セクタ５０の管理領域５０Ｂのページ４に書き込む。図５８の下側には、第４誤り訂正符号が管理領域５０Ｂのページ４に書き込まれた対象セクタ５０が示されている。
【０２４２】
コントローラ３０は、複数のセクタ５０に対して連続的に出力データ２１０を書き込む際には、上記の処理を繰り返し行う。
【０２４３】
またコントローラ３０は、対象セクタ５０のホストデータ領域５０Ａの一部にだけしか出力データ２１０を書き込まない場合には、ホストデータ領域５０Ａ全体のデータではなく、ホストデータ領域５０Ａに書き込んだ出力データ２１０だけを誤り訂正符号化し、それによって得られた第４誤り訂正符号を管理領域５０Ｂのページ４に書き込む。図５９の上側には、ホストデータ領域５０Ａの一部にだけ出力データ２１０が書き込まれた対象セクタ５０が示されており、図５９の下側には、その対象セクタ５０に対して第４誤り訂正符号が書き込まれた様子が示されている。
【０２４４】
このように、ホストデータ領域５０Ａに記憶される出力データ２１０を誤り訂正符号化して得られる第４誤り訂正符号が、管理領域５０Ｂに書き込まれることによって、第４誤り訂正符号から、ホストデータ領域５０Ａに記憶される正しい出力データ２１０を得ることができる。よって、メモリ装置３の性能が向上する。
【０２４５】
以上のように、データ処理システム１は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０２４６】
１  データ処理システム
２  ホスト装置
３  メモリ装置
４  メモリコア
５  記憶領域
３０  コントローラ
５０Ａ  ホストデータ領域（ユーザデータ領域）
５０Ｂ  管理領域（冗長領域）
２００，３００  制御プログラム
５０１  第１管理領域
５０２  第２管理領域
ＰＧ  ページ
【図１】
2018097516.tif 000003
【図２】
2018097516.tif 000004
【図３】
2018097516.tif 000005
【図４】
2018097516.tif 000006
【図５】
2018097516.tif 000007
【図６】
2018097516.tif 000008
【図７】
2018097516.tif 000009
【図８】
2018097516.tif 000010
【図９】
2018097516.tif 000011
【図１０】
2018097516.tif 000012
【図１１】
2018097516.tif 000013
【図１２】
2018097516.tif 000014
【図１３】
2018097516.tif 000015
【図１４】
2018097516.tif 000016
【図１５】
2018097516.tif 000017
【図１６】
2018097516.tif 000018
【図１７】
2018097516.tif 000019
【図１８】
2018097516.tif 000020
【図１９】
2018097516.tif 000021
【図２０】
2018097516.tif 000022
【図２１】
2018097516.tif 000023
【図２２】
2018097516.tif 000024
【図２３】
2018097516.tif 000025
【図２４】
2018097516.tif 000026
【図２５】
2018097516.tif 000027
【図２６】
2018097516.tif 000028
【図２７】
2018097516.tif 000029
【図２８】
2018097516.tif 000030
【図２９】
2018097516.tif 000031
【図３０】
2018097516.tif 000032
【図３１】
2018097516.tif 000033
【図３２】
2018097516.tif 000034
【図３３】
2018097516.tif 000035
【図３４】
2018097516.tif 000036
【図３５】
2018097516.tif 000037
【図３６】
2018097516.tif 000038
【図３７】
2018097516.tif 000039
【図３８】
2018097516.tif 000040
【図３９】
2018097516.tif 000041
【図４０】
2018097516.tif 000042
【図４１】
2018097516.tif 000043
【図４２】
2018097516.tif 000044
【図４３】
2018097516.tif 000045
【図４４】
2018097516.tif 000046
【図４５】
2018097516.tif 000047
【図４６】
2018097516.tif 000048
【図４７】
2018097516.tif 000049
【図４８】
2018097516.tif 000050
【図４９】
2018097516.tif 000051
【図５０】
2018097516.tif 000052
【図５１】
2018097516.tif 000053
【図５２】
2018097516.tif 000054
【図５３】
2018097516.tif 000055
【図５４】
2018097516.tif 000056
【図５５】
2018097516.tif 000057
【図５６】
2018097516.tif 000058
【図５７】
2018097516.tif 000059
【図５８】
2018097516.tif 000060
【図５９】
2018097516.tif 000061