(57)【要約】【課題】ホスト装置からのデータ書き込み要求に対する応答時間を安定させることができるメモリシステムを提供すること。【解決手段】実施形態のメモリシステムは、ホスト装置に接続可能であって、ページサイズ単位でデータ書き込みが行われ、前記ページサイズ単位の２以上の自然数の単位であるブロックサイズ単位でデータ消去が行われる不揮発性半導体メモリと、前記ホスト装置から受信するコマンドに従って前記不揮発性半導体メモリへのデータ書き込み処理と前記不揮発性半導体メモリのデータ消去処理を制御するコントローラと、を備える。前記コントローラは、前記ホスト装置から受信するコマンドに従い前記不揮発性半導体メモリにＮページ（Ｎは２以上の自然数）のデータ書き込み処理の実行中に、前記不揮発性半導体メモリに１ブロックのデータ消去を行わせ、前記１ブロックの消去を、Ｎ回に分割して行う。【選択図】図１
2016024678.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に接続可能なメモリステムであって、
ページサイズ単位でデータ書き込みが行われ、前記ページサイズ単位の２以上の自然数の単位であるブロックサイズ単位でデータ消去が行われる不揮発性半導体メモリと、
前記ホスト装置から受信するコマンドに従い、前記不揮発性半導体メモリへのデータ書き込み処理、および前記不揮発性半導体メモリのデータ消去処理を制御するメモリコントローラと、
を備え、
前記コントローラは、前記ホスト装置から受信するコマンドに従い前記不揮発性半導体メモリにＮページ（Ｎは２以上の自然数）のデータ書き込み処理の実行中に、前記不揮発性半導体メモリに１ブロックのデータ消去を行わせ、前記１ブロックの消去を、Ｎ回に分割して行う、
メモリシステム。
【請求項２】
前記コントローラは、前記不揮発性半導体メモリに、前記Ｎページのデータ書き込みと、Ｎ回に分割したデータ消去とを交互に実行させる、請求項1に記載のメモリシステム。
【請求項３】
前記コントローラが制御する前記不揮発性メモリへのデータ書き込み処理は、前記ホスト装置から受信するコマンドに従う第１の書き込み処理と、ガーバレッジコレクションに基づく第２の書き込み処理とを含む、請求項１又は２に記載のメモリシステム。
【請求項４】
前記ブロックサイズが前記ページサイズのｋ倍（ｋは１以上の自然数）であり、前記第２の書き込み処理の実行頻度が前記第１の書き込み処理の実行頻度のｍ倍（ｍは１以上の整数）である場合、前記Ｎは、Ｎ＝ｋ／（１＋ｍ）である、請求項３に記載のメモリシステム。
【請求項５】
前記１ブロックのデータ消去の分割可能回数がＭ（Ｍは２以上の自然数）であり、前記Ｍが前記Ｎより小さい場合には、前記Ｎページのデータ書き込みの終了タイミングから少なくとも（Ｍ−１）ページ目の書き込み開始のタイミングより前に、前記１ブロックの消去を、Ｍ回に分割した消去を開始する、請求項１に記載のメモリステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等に使用されるＮＡＮＤ型フラッシュメモリでは、データの消去がブロック単位で、データ書き込みがページ単位で行われ、ブロックの最初のページへデータを書き込む際、ブロックが消去済みである必要がある。ホスト装置からデータ書き込み要求を受けた際、消去済みのブロックが不足している場合、データ書き込み前にデータ書き込み先のブロックに対してデータ消去を行う必要が有り、データ消去を行う分だけホスト装置に対する応答時間が延びてしまう。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１９２２６０号公報
【特許文献２】特開２００８−１４６３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、ホスト装置からのデータ書き込み要求に対する応答時間を安定させたメモリシステムを提供することである。
【課題を解決するための手段】
【０００５】
上記課題を達成するために、実施形態のメモリシステムは、ホスト装置に接続可能であって、不揮発性半導体メモリと、前記ホスト装置から受信するコマンドに従って前記不揮発性半導体メモリへのデータ書き込み処理と前記不揮発性半導体メモリのデータ消去処理を制御するコントローラと、を備える。前記不揮発性半導体メモリは、ページサイズ単位でデータ書き込みが行われ、前記ページサイズ単位の２以上の自然数の単位であるブロックサイズ単位でデータ消去が行われる。前記コントローラは、前記ホスト装置から受信するコマンドに従い前記不揮発性半導体メモリにＮページ（Ｎは２以上の自然数）のデータ書き込み処理の実行中に、前記不揮発性半導体メモリに１ブロックのデータ消去を行わせ、前記１ブロックの消去を、Ｎ回に分割して行う。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態のメモリシステムの構成例を示すブロック図。
【図２】第１の実施形態のメモリシステムにおけるＮＡＮＤメモリへ書き込み対象のデータが書き込まれていく様子を時刻と共に例示する図。
【図３】第１の実施形態のメモリシステムにおけるＮＡＮＤメモリのガベージコレクションを説明するための概念図。
【図４】第１の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みの順序の一例を示す概念図。
【図５】第１の実施形態のメモリシステム１におけるＮＡＮＤメモリのブロック消去を完了させる期限を示す概念図。
【図６】第１の実施形態のメモリシステムにおけるＮＡＮＤメモリのブロック消去処理の分割とどのブロックを消去するか決定するタイミングを示す概念図。
【図７】第１の実施形態のメモリシステムにおけるブロック消去を行うタイミング例を示す概念図。
【図８】第２の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みの順序の一例を示す概念図。
【図９】第３の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みの順序の一例を示す概念図。
【図１０】第４の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みの順序の一例を示す概念図。
【図１１】第５の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みとブロック消去タイミングの一例を示す概念図。
【図１２】第６の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込み、ブロック消去の順序の一例を示す概念図。
【図１３】第６の実施形態のメモリシステムにおけるＮＡＮＤメモリへのデータ書き込みとブロック消去タイミングの一例を示す概念図。
【図１４】第７の実施形態のメモリシステムにおけるブロック消去先を特定する処理のフローチャート。
【発明を実施するための形態】
【０００７】
以下、発明を実施するための実施形態について図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のメモリシステム１の構成例を示すブロック図である。メモリシステム１は、ホストインターフェース（Ｉ／Ｆ）１０、メモリコントローラ２０、データバッファ３０、ＮＡＮＤインターフェース（Ｉ／Ｆ）４０、およびＮＡＮＤメモリ５０を備える。メモリシステム１は、ホスト装置２と接続可能であり、図１ではホスト装置２と接続された状態を示している。ホスト装置２は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【０００９】
ホストＩ／Ｆ１０は、ホスト装置２と通信線により接続し、通信線の種別や規格に応じて、ホスト装置２とメモリシステム１の間の転送処理等を実施する。通信線としては、例えば、ＳＡＴＡ（Serial Advanced Technology Attachment）のようなシリアルバスの場合や、アドレスバスとデータバスの場合などがある。ホストＩ／Ｆ１０がホスト装置２から受信する読み出し／ 書き込みコマンドには、論理アドレス（ＬＢＡ：Logical Block Addressing）と読み出し／ 書き込み要求するデータのサイズ（例えばセクタ数、１セクタは例えば５１２バイト）が含まれる。
【００１０】
メモリコントローラ２０は、メモリシステム１全体の動作の制御を実行する。ホストＩ／Ｆ１０を介してホスト装置２から送信されたコマンドを解釈し、該コマンドに応じて、ＮＡＮＤ  Ｉ／Ｆ４０経由でＮＡＮＤメモリ５０へのデータの書き込みやＮＡＮＤメモリ５０からのデータの読み出しを制御する。
【００１１】
データバッファ３０は、メモリコントローラ２がホスト装置２から受信したデータをＮＡＮＤメモリ５０へ記憶するまでに一時格納したり、ＮＡＮＤメモリ５０から読み出したデータをホスト装置２へ送信するまでに一時格納したりするために使用されるメモリであり、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの汎用メモリで構成される。
【００１２】
ＮＡＮＤ  Ｉ／Ｆ４０は、ＮＡＮＤメモリ５０の制御を行うものであり、誤り訂正回路などを含む。
【００１３】
ＮＡＮＤメモリ５０は、ＮＡＮＤ型フラッシュメモリであり、不揮発性記憶素子からなるメモリセルアレイを備えている。ＮＡＮＤメモリ５０は、ページと呼ばれるデータサイズ単位で読み出しおよび書き込みが可能となっている。そして、ページの整数倍のブロックと呼ばれるデータサイズ単位でデータ消去が可能となっている。以下の説明において、１ページのデータが格納されるＮＡＮＤメモリ５０のメモリ領域をページと称する場合もある。また、データ消去の単位である１ブロックのデータが格納されるＮＡＮＤメモリ５０のメモリ領域をブロックと称する場合もある。従って、１ブロックは複数のページから構成される。１ページのサイズは例えば４ＫＢであり、例えば６４ページで１ブロックが構成される。メモリセルアレイは複数のブロックから構成される。
【００１４】
なお、ここでは、不揮発性半導体メモリとしてＮＡＮＤメモリを用いる例を説明するが、ＮＡＮＤメモリ以外の記憶手段を用いてもよい。
【００１５】
図２を用いてＮＡＮＤメモリ５０への書き込み方式について説明する。ＮＡＮＤメモリセル５０では、例えば以下に述べる書き込み方式が採用されている。まず、データ書き込みの前に、そのデータの書き込み先のブロックを確保する必要がある。ＮＡＮＤメモリ５０においては、消去済みのブロックのうち書き込みがまだ行われていないページに対して書き込みが可能であり、既にデータが書き込まれているページに対してデータを上書きすることは不可能である。また、ホスト装置２からのデータ書き込み要求では、ホスト装置２から受信する書き込みコマンドに含まれるＬＢＡをＮＡＮＤメモリ５０の物理的な記憶位置である物理アドレスに変換し、この物理アドレスで指定されるページにデータの書き込みが行なわれる。具体的には、図２に示されるように、時刻ｔ０において、データの書き込み先のブロックに対してデータ消去を行い、消去済みブロックを確保する。時刻ｔ１では、最初のデータＡが、データ書き込み先のブロックの最初（先頭又は最後尾）のページに書き込まれ、時刻ｔ２では、データＢが２番目のページに書き込まれる。同様に、時刻ｔ３では、３番目のページにデータＣが書き込まれ、時刻ｔ４では、４番目のページにデータＤが書き込まれる。
【００１６】
データが書き込まれる記憶位置を示す物理アドレスとＬＢＡとの対応関係は、論物変換テーブルとしてメモリコントローラ２０に備えられる。そして、前回のデータ書き込み要求で指定されたＬＢＡが再度指定されてホスト装置から新たにデータ書き込みの要求が行われると、メモリシステム１は、消去済みのブロックの書き込みがまだ行なわれていないページに対して新たなデータの書き込みを行う。このとき、メモリシステム１は、前回のデータ書き込み要求に基づいて書き込みが行われたページを無効にし、新たなデータの書き込みが行われたページを有効にする。
【００１７】
ここで、データの無効とは、あるデータが記憶されている記憶領域の物理アドレスの位置に対応付けられる論理アドレスが存在しないことをいい、データの有効とは、あるデータが記憶されている記憶領域の物理アドレスの位置に対応付けられる論理アドレスが存在することをいう。ページの無効とは、あるページに対応する記憶領域の物理アドレスの位置に対応付けられる論理アドレスが存在しないことをいい、ページの有効とは、あるページに対応する記憶領域の物理アドレスの位置に対応付けられる論理アドレスが存在することをいう。
【００１８】
ＮＡＮＤメモリ５０へデータ書き込みを続けることにより、データ書き込み先のブロックが少なくなるとともに無効にされたページが増え、ＮＡＮＤメモリ５０において書き込み可能な容量が少なくなってくる。そのため、メモリシステム１は、適当なタイミングでガベージコレクションを行なうことにより、データ書き込み先のブロックを確保する。
【００１９】
図３は、ガベージコレクションを説明するための概念図である。図３に示すように、メモリシステム１は、無効にされたページを含むブロックのうち、有効なページに書き込まれているデータ（以下、ガベージコレクション対象データと称する）を集めて消去済みのブロックに書き込むことにより、ガベージコレクション対象データを消去済みブロックに移動させる。その後、メモリシステム１は、移動前にガベージコレクション対象データが格納されていたブロックに対してデータ消去を行うことにより、データ書き込み先のブロックを確保する。また、データの移動によりガベージコレクション対象データが書き込まれたブロックにおいても、書き込みがまだ行なわれていないページがあればそのページに新たに書き込みが可能である。
【００２０】
このようなガベージコレクションを行うためには少なくとも１つの消去済みのブロックが必要になるが、これは、ＮＡＮＤメモリ５０において実装されている容量（以下、実装容量と称する）より、ホスト装置２から書き込み可能なデータ量（以下、表記容量と称する）が少ないことを意味する。
【００２１】
メモリシステム１では、ホスト装置２から書き込み要求されたデータのデータ量に対する、ガベージコレクション対象データの書き込みデータ量の比率は、一定の範囲の値を取る。以下では説明を簡単にするため、この比率を一定値Ｃ（ＧＣ（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ）／Ｈ（Ｈｏｓｔ））（以下、Ｃ（ＧＣ／Ｈ）と称する）であるとして説明する。
【００２２】
ホスト装置２から書き込み要求されたデータとガベージコレクション対象データをＮＡＮＤメモリ５０に書き込む際、論物変換テーブルを一定量書き込む必要が生じる。この比率、すなわち、ホスト装置２から書き込み要求されたデータとガベージコレクション対象データを合わせたデータ（以下、ユーザデータと称する）のデータ量をＮＡＮＤメモリ５０への書き込み対象となった論物変換テーブルのデータ量で除した値は、一定の範囲の値を取る。以下では説明を簡単にするため、この比率の最小値をＣ（ＵＤ（Ｕｓｅｒ  Ｄａｔａ）／Ｔ（Ｔｒａｎｓｌａｔｉｏｎ  ｔａｂｌｅ））（以下、Ｃ（ＵＤ／Ｔ）と称する）であるとして説明する。
【００２３】
図４は、例えばＣ（ＧＣ／Ｈ）が３、Ｃ（ＵＤ／Ｔ）が４の場合の、ＮＡＮＤメモリ５０へのデータ書き込みの順序の一例を示す概念図である。
【００２４】
メモリシステム１は、ＮＡＮＤメモリ５０の１ブロックのデータ消去（以下、ブロック消去と称する）を複数回に分割して行う（以下、分割消去と称する）。つまり、ユーザデータをＮＡＮＤメモリ５０に一定量のデータを書き込む間に、分割消去を繰り返し、ＮＡＮＤメモリ５０のブロックを１個消去する。
【００２５】
ホスト装置２から書き込み要求されたデータの書き込みを１ブロック分行うとすると、ガベージコレクション対象データの書き込みはＣ（ＧＣ／Ｈ）ブロック分行うことになる。この場合、ホスト装置２から書き込み要求されたデータ、ガベージコレクション対象データの書き込み先のブロックを確保するため、ホスト装置２から書き込み要求されたデータ１ブロック分につき、ＮＡＮＤメモリ５０の（１＋Ｃ（ＧＣ／Ｈ））ブロック分のデータ消去を行う必要がある。
【００２６】
ここで、Ｃ（ＧＣ／Ｈ）は、例えば、表記容量と実装容量に基づいて定めてもよいし、直前のガベージコレクションにおいてＮＡＮＤメモリ５０に保存されているデータを移動して消去した際に、消去対象のブロックに有効なページおよび無効なページがそれぞれどれだけ含まれているかを実測しその結果に基づいて定めてもよい。また、ホスト装置２から書き込み要求されるデータのＬＢＡを記憶しておき、これらのＬＢＡが連続しているか分散しているかを示すアクセスパターンに基づいて定めてもよい。ＬＢＡの連続性が高いほど、ガベージコレクションの際のデータ移動が少なくて済むようなブロックを発見できる可能性が高くなり、Ｃ（ＧＣ／Ｈ）は小さくなる。
【００２７】
ＮＡＮＤメモリ５０の１ブロックのサイズは１ページのサイズのＣ（Ｐ（Ｐａｇｅ）／Ｂ（Ｂｌｏｃｋ））倍であるとする。換言すると、１ブロックがＣ（Ｐ（Ｐａｇｅ）／Ｂ（Ｂｌｏｃｋ））ページから構成される。Ｃ（Ｐ（Ｐａｇｅ）／Ｂ（Ｂｌｏｃｋ））はＮＡＮＤメモリ５０の構造によって決まる定数である。ＮＡＮＤメモリ５０のデータ書き込み単位は１ページであり、従って１回のデータ書き込み処理で１ページのデータが書き込まれる。このため、ホスト装置２から書き込み要求されたデータをＮＡＮＤメモリ５０へ（Ｃ（Ｐ／Ｂ）／（１＋Ｃ（ＧＣ／Ｈ）））ページ分だけ書き込むごとに、ブロック消去する必要がある。換言すると、（Ｃ（Ｐ／Ｂ）／（１＋Ｃ（ＧＣ／Ｈ）））回のデータ書き込み毎に、ブロック消去が必要となる。以下、説明の便宜上、（Ｃ（Ｐ／Ｂ）／（１＋Ｃ（ＧＣ／Ｈ）））をＣ（Ｓｐａｎ）として説明する。
【００２８】
１つのブロックの消去を完了させる期限（以下、消去完了期限と称する）は、ＮＡＮＤメモリ５０に書き込まれるＣ（Ｓｐａｎ）ページ分のデータのうち、最後に書き込まれるページ分のデータ（最終ページデータ）が書き込みが行われるタイミングとする。
【００２９】
図５は、Ｃ（Ｓｐａｎ）が５の場合のメモリシステム１におけるＮＡＮＤメモリ５０のブロック消去を完了させる期限を示す概念図である。図５では、ホスト装置２から書き込み要求されたデータをＮＡＮＤメモリ５０へ書き込む場合の最終ページデータの書き込みのタイミングでブロック消去を完了させる場合について示しているが、ガベージコレクション対象データをＮＡＮＤメモリ５０へ書き込む場合についても、最終ページデータの書き込みのタイミングでブロック消去を完了させる。
【００３０】
ＮＡＮＤメモリ５０のブロック消去を分割消去で行う場合であっても、１回の分割消去当たりに最低限必要な時間が存在する。そのため、１ブロックを分割消去する際、分割できる回数には上限値がある。この上限値は、ＮＡＮＤメモリ５０の構造等によって決まる定数であり、以下、説明の便宜上、この上限値をＣ（ＭａｘＳｐｌｉｔ）とする。そのため、１ブロックの消去の分割消去の回数は、Ｃ（ＭａｘＳｐｌｉｔ）とＣ（Ｓｐａｎ）のいずれか小さい方の値になる。
【００３１】
ホスト装置２からＣ（Ｓｐａｎ）ページ分のデータのデータ書き込み要求を受けた場合、ホスト装置２から書き込み要求されたデータのＮＡＮＤメモリ５０への書き込み時間、ガベージコレクション対象データのＮＡＮＤメモリ５０への書き込み時間、およびＮＡＮＤメモリ５０の１ブロックの消去時間を合計した時間が、ＮＡＮＤメモリ５０への書き込みに要する時間である。この時間をＣ（ＭａｘＳｐｌｉｔ）、Ｃ（Ｓｐａｎ）のいずれか小さい方の値で除した値、つまりホスト装置２からの１ページ分の書き込み要求当たりのＮＡＮＤメモリ５０への書き込みに要する時間を、メモリシステム１におけるホスト装置２からの書き込み要求に対する最大応答時間とする。
【００３２】
どのブロックを消去するかは、消去を開始するまでに決定する。つまり、消去完了期限からＣ（ＭａｘＳｐｌｉｔ）とＣ（Ｓｐａｎ）のいずれか小さい方の値の回数のページ書き込みだけ前のタイミングであって、ホスト装置２から書き込み要求されたユーザデータ書き込みを開始するまでに決定する。
【００３３】
図６は、メモリシステム１におけるＮＡＮＤメモリ５０のブロック消去をする対象ブロックを決定するタイミングを示す概念図である。図６の例では、Ｃ（ＭａｘＳｐｌｉｔ）が４で、Ｃ（ＭａｘＳｐｌｉｔ）がＣ（Ｓｐａｎ）よりも小さく、ブロック消去をＣ（ＭａｘＳｐｌｉｔ）に分割した場合の例を示している。図示するように、ホスト装置２から書き込み要求されたデータのＮＡＮＤメモリ５０への書き込み、およびガベージコレクション対象データのＮＡＮＤメモリ５０への書き込みがＣ（ＭａｘＳｐｌｉｔ）回実行される間に、ＮＡＮＤメモリ５０のブロックを１つ消去する。
【００３４】
なお、ＮＡＮＤメモリ５０の全データの消去のように、ホスト装置２からのデータの書き込み要求が一切発生しないという状況がある。この場合、ホスト装置２からの消去要求に対する応答速度を上げるため、ホスト装置２からの要求が消去のみという状況が一定量続いたら、ＮＡＮＤメモリ５０の消去を分割せずまとめて行うことで対処する。また、メモリシステム１に電池を搭載しており、メモリシステム１の稼働中に電源断があった場合は、電源断時の電池容量に基づいて、電源断後の処理を継続できるか否か判定し、その結果に応じてその後の消去処理をどのようにするか決定する。処理を継続するのに必要な電池容量がないと判定した場合、消去処理を中断し以後再開せず、処理を継続するのに必要な電池容量があると判定した場合は、その後の消去処理は中断と再開を繰り返すことをせずに、連続して消去処理を行い、消去処理を完了させる。
【００３５】
ホスト装置２からデータ書き込み要求がない場合、ＮＡＮＤメモリ５０へのデータ書き込みを行う必要が無いように見える。しかしＮＡＮＤメモリの性質上、あるブロックを消去した後一定期間内に該消去済みブロックのあるページへデータ書き込みを実行しないと、その後に該ページへデータ書き込みを行った時に該ページのデータを読み出す際にエラーが発生しやすくなる。この状態を回避するため、一定期間ホスト装置２からデータ書き込み要求がない場合、ダミーデータをＮＡＮＤメモリ５０へ書き込み、ブロックの全ページに対してデータの書き込みを所定時間内に完了させることとする。このように、ダミーデータの書き込みをあたかもホスト装置２からデータ書き込み要求があったものとしてスケジューリングし、新たな書き込み先を消去するタイミングを決定する。
【００３６】
図７は、第１の実施形態のメモリシステム１におけるＮＡＮＤメモリ５０について、Ｃ（ＧＣ／Ｈ）を３、Ｃ（Ｐ／Ｂ）を６４、Ｃ（ＭａｘＳｐｌｉｔ）を１６、Ｃ（Ｓｐａｎ）を１６、ＮＡＮＤメモリ５０の１ブロックの消去に必要な時間を３０ｍｓｅｃ、ＮＡＮＤメモリ５０の１ページへのデータ書き込みに必要な時間を１０ｍｓｅｃとした場合のブロック消去を行うタイミング例を示す概念図である。
【００３７】
図７におけるブロック消去では４ブロックの消去が行われ、うち３ブロックはガベージコレクション対象データの書き込み先ブロックとして、１ブロックはホスト装置２から書き込み要求されたデータのデータ書き込み先ブロックとして使用さる。１ページ目から４８ページ目へのデータ書き込みの間にガベージコレクション対象データの書き込み先ブロックが消去され、４９ページ目から６４ページ目へのデータ書き込みの間にホスト装置２から書き込み要求されたデータの書き込み先のブロック消去が行われる。
【００３８】
Ｃ（Ｓｐａｎ）が１６であるため、ＮＡＮＤメモリ５０へ１６ページ分データが書き込まれるごとに、１ブロックが消去される。また、Ｃ（ＭａｘＳｐｌｉｔ）が１６のため、１ブロックの消去を１６分割して行うことができる。そのため、ＮＡＮＤメモリ５０へ１ページのデータ書き込みを行う毎に分割した分割消去を行うことができ、１ブロック消去の対象ブロックの決定は、１ページ目、１７ページ目、３３ページ目、４９ページ目のデータ書き込みまでに行っておけばよい。
【００３９】
例えば、ホスト装置２から書き込み要求されたデータのデータ書き込み１回につき、１回の分割消去に１０ｍｓｅｃかけるとすると、ホスト装置２からの書き込み要求に対する最大応答時間は、ホスト装置２から書き込み要求されたデータのデータ書き込みの時間と分割消去１回にかかる時間の合計であるため、２０ｍｓｅｃとなる。このため、ホスト装置２からの書き込み要求に対する最大応答時間を２０ｍｓｅｃと保証できる。
【００４０】
また、ホスト装置２からの書き込み要求に対する最大応答時間を指定された場合には、この最大応答時間をもとに、１回の分割消去処理にかけられる時間を求めることができる。例えば、ホスト装置２からの書き込み要求に対する最大応答時間を１５ｍｓｅｃに指定された場合には、分割消去１回にかけられる時間を５ｍｓｅｃとする必要があり、この場合、１つのブロックを消去するのにかかる処理時間の合計は８０ｍｓｅｃとなる。
【００４１】
ここで比較のため、ＮＡＮＤメモリ５０のブロックを消去するタイミングについて考慮せず、ＮＡＮＤメモリ５０のデータの書き込み先ブロックが必要になったときにブロック消去を随時行うケースについて検討する。このケースでは、ホスト装置２から書き込みを要求されたデータのＮＡＮＤメモリ５０への書き込みと書き込み先のブロック消去が必要になるタイミングが発生する可能性があり、ブロック消去完了、消去済みブロックへのデータ書き込みの順で処理を実行する必要が生じ、ブロックを消去する時間だけホスト装置２に対する応答時間が延びてしまう。
【００４２】
一方で、上述した第１の実施形態によれば、ホスト装置２からのデータ書き込みに対する応答時間を、書き込みを要求されたデータのＮＡＮＤメモリ５０への書き込み時間と、ＮＡＮＤメモリ５０の分割消去１回にかかる時間と、の合計時間に平準化でき、ホスト装置２からの書き込み要求に対する最大応答時間を保証できる。
【００４３】
（第２の実施形態）
図８は、第２の実施形態のメモリシステムにおける、Ｃ（ＧＣ／Ｈ）が２の場合の、ＮＡＮＤメモリ５０へのデータ書き込みの順序の一例を示す概念図である。また、第２の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００４４】
この第２の実施形態が、第１の実施形態と異なる点は、ホスト装置２からの書き込み要求がない場合は、ダミーデータを書き込むのではなく、代わりにガベージコレクション対象データを書き込むことにある。この場合、ガベージコレクションを進めることができ、長期的にＣ（ＧＣ／Ｈ）を下げることができる。
【００４５】
また、ホスト装置２からの書き込み要求がない場合に、ダミーデータを書き込むのではなく、データを書き込まず、さらに新たなブロック消去を行わないようにしてもよい。ホスト装置２から書き込み要求されたデータを書き込むタイミングであったとしても、ホスト装置２からの書き込み要求がない場合は、次にホスト装置２から書き込み要求があった場合に備えて消去した消去済みブロックが既に存在していることもあり、新たにブロック消去する必要が無い。つまり、ダミーデータのＮＡＮＤメモリ５０への書き込みと同様にブロック消去もスキップするようにしてもよい。
【００４６】
上述した第２の実施形態によれば、第１実施形態と同様に、ホスト装置２からの書き込み要求に対する最大応答時間を保証できる。また、ガベージコレクションを進めることができるために、長期的にＣ（ＧＣ／Ｈ）を下げることができる。
【００４７】
（第３の実施形態）
図９は、第３の実施形態のメモリシステムにおける、ＮＡＮＤメモリ５０へのデータ書き込みの順序の一例を示す概念図である。また、第３の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００４８】
この第３の実施形態が、第１の実施形態と異なる点は、ＮＡＮＤメモリ５０のブロック消去を行うタイミングであり、消去済みブロックが一定以上ある等の理由により消去対象のブロックがない場合、ブロック消去の代わりにガベージコレクションによるデータ書き込みを実行することにある。この場合、ガベージコレクションを進めることができ、長期的にＣ（ＧＣ／Ｈ）を下げることができる。
【００４９】
上述した第３の実施形態によれば、第１実施形態と同様に、ホスト装置２からの書き込み要求に対する最大応答時間を保証できる。また、第２実施形態と同様に、ガベージコレクションを進めることができるために、長期的にＣ（ＧＣ／Ｈ）を下げることができる。
【００５０】
（第４の実施形態）
図１０は、第４の実施形態のメモリシステムにおける、ＮＡＮＤメモリ５０へのデータ書き込みの順序の一例を示す概念図である。また、第４の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００５１】
この第４の実施形態が、第１の実施形態と異なる点は、ＮＡＮＤメモリ５０へのデータ書き込みの時間が書き込み先のページに応じて異なる場合に、ブロック消去処理の実行タイミングを変更することにある。
【００５２】
ＮＡＮＤメモリ５０は、１つのメモリセルに１ビットを記憶する二値メモリ（ＳＬＣ:Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）であってもよいし、１つのメモリセルに２ビット以上を記憶する多値メモリ（ＭＬＣ:Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）であってもよい。多値メモリの場合、ＮＡＮＤメモリ５０の個々のメモリセルに２ページ分のデータを記憶することができる。先に書き込みが行われるページを下位ページ、下位ページの後から書き込みが行われるページを上位ページという。多値メモリでは、隣接メモリセルのカップリング容量の影響を軽減するため、下位ページ、上位ページに対する書き込み順序が工夫されている。また、メモリセルにデータを書き込む書き込み動作と該メモリセルにデータが書き込まれたことを検証するベリファイ動作とからなる書き込みを複数回繰り返すことによってデータ書き込みを行うが、最終回の書き込みについては精度を上げて書き込みを行うため時間がかかる。そのため、ブロックの最終ページ付近には時間のかかる最終回書き込みを行う処理が集中し、他のページと比べて、データ書き込みの時間が長くなる。よって、ＮＡＮＤメモリ５０への書き込み時間は、書き込み先のページによって異なることがある。
【００５３】
そこで、ホスト装置２からの書き込み要求によるＮＡＮＤメモリ５０へのデータ書き込み先のページが、書き込み時間が長くなるページの場合は、ブロック消去を行わず、書き込み時間が短くなるページの場合は、ブロック消去を行うこととする。
【００５４】
図１０の例では、データ書き込み先のページのうち最終ページを書き込み時間が長くなるページとしており、最終ページへの書き込み時は、ブロック消去を実行しない。
【００５５】
この第４の実施形態によれば、ホスト装置２からの書き込み要求に対する応答時間を平準化でき、ホスト装置２からの書き込み要求に対する最大応答時間を保証することができる。ガベージコレクション対象データを書き込む際、データ書き込み先のページに応じて書き込み時間に差が出る場合は、ホスト装置２から書き込み要求されたデータの書き込みと合わせた総書き込み時間によって、ブロック消去の実行有無を判断する。また、先頭ページへのデータ書き込み時においても、メモリセルへのデータ書き込みに時間を要するなどの事情があれば、最終ページと同様にブロック消去を実行しなくてもよい。
【００５６】
（第５の実施形態）
図１１は、第５の実施形態のメモリシステムにおける、ＮＡＮＤメモリ５０へのデータ書き込み、ブロック消去タイミングの一例を示す概念図である。また、第５の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００５７】
この第５の実施形態が、第１の実施形態と異なる点は、ＮＡＮＤメモリ５０へのガベージコレクション対象データの書き込みページ数が異なる場合に、ブロック消去の実行タイミングを変更することにある。
【００５８】
Ｃ（ＣＧ／Ｈ）が整数でない場合、ホスト装置２からの書き込み要求を受信するタイミングによって、ガベージコレクション対象データの書き込みページ数が異なる。このような場合にも、ガベージコレクション対象データの書き込みページ数が少ないときにブロック消去を行い、ガベージコレクション対象データの書き込みページ数が多いときにブロック消去を行わないようにする。これにより、ホスト装置２からの書き込み要求に対する応答時間を平準化できる。
【００５９】
上述した第５の実施形態によれば、第１実施形態と同様に、ホスト装置２からの応答時間の最大応答時間を保証できる。
【００６０】
（第６の実施形態）
図１２は、第６の実施形態のメモリシステム１において、Ｃ（ＧＣ／Ｈ）を６、Ｃ（ＵＤ／Ｔ）を４、Ｃ（ＭａｘＳｐｌｉｔ）を７、Ｃ（Ｓｐａｎ）を７とした場合のＮＡＮＤメモリ５０への書き込み、ブロック消去の順序の一例を示す概念図である。また、第６の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００６１】
ホスト装置２からの書き込み要求によるＮＡＮＤメモリ５０への７ページ分のデータ書き込みにつき１つのブロックを消去するように、分割消去を実行する。
【００６２】
ホスト装置２から書き込み要求されたデータのＮＡＮＤメモリ５０への１ページの書き込みに対して、論物変換テーブルのＮＡＮＤメモリ５０への書き込みページ数は（（１＋Ｃ（ＧＣ／Ｈ））／Ｃ（ＵＤ／Ｔ））ページとなる。（（１＋Ｃ（ＧＣ／Ｈ））／Ｃ（ＵＤ／Ｔ））は、除算を含むため、ホスト装置２からの書き込み要求に伴うユーザデータのＮＡＮＤメモリ５０へのデータ書き込みのページ数が論物変換テーブルのデータの書き込みのページ数の整数倍になるとは限らない。そのため、ホスト装置２からの書き込み要求に伴うユーザデータをＮＡＮＤメモリ５０へ書き込む際、論物変換テーブルのＮＡＮＤメモリ５０への書き込みページ数は、ＮＡＮＤメモリ５０へホスト装置２からの書き込み要求に伴うユーザデータを書き込むタイミングごとに異なる。
【００６３】
そこで、論物変換テーブルのＮＡＮＤメモリ５０への書き込みページ数が少ないときにブロック消去を行い、論物変換テーブルのＮＡＮＤメモリ５０への書き込みページ数が多いときにブロック消去を行わないようにするようにする。
【００６４】
図１３は、第６の実施形態のメモリシステムにおける、ＮＡＮＤメモリ５０へのデータ書き込み、ブロック消去タイミングの一例を示す概念図である。図１３に示す例では、２つのブロックに対してブロック消去を行った後、ホスト装置２からＣ（Ｓｐａｎ）ページ分のデータのデータ書き込み要求を受けた場合、論物変換テーブルのＮＡＮＤメモリ５０への書き込みページが多いことを理由として、ブロック消去を行わないようにしている。
【００６５】
これにより、ホスト装置２からの書き込み要求に対する応答時間を平準化できる。また、ユーザデータのＮＡＮＤメモリ５０への書き込みと論物変換テーブルのＮＡＮＤメモリ５０への書き込みを合わせた総書き込み時間によって、ブロック消去を行うか否かを判断してもよい。
【００６６】
上述した第６の実施形態によれば、第１実施形態と同様に、ホスト装置２からの書き込み要求に対する最大応答時間を保証できる。
【００６７】
（第７の実施形態）
図１４は、第７の実施形態のメモリシステム１におけるブロック消去先を特定する処理のフローチャートである。また、第７の実施形態によるメモリシステムの構成は図１に示した第１の実施形態のメモリシステム１の構成と同一である。
【００６８】
この第７の実施形態では、第１の実施形態と異なり、データの書き込み先ブロックに含まれるページのうち書き込みが行われていないページの容量に応じてブロック消去先を選定する。
【００６９】
ホスト装置２から書き込み要求されたデータの書き込み先ブロック、およびガベージコレクション対象データの書き込み先ブロックを確保するためにブロック消去を行う際、ホスト装置２からの書き込み要求に対する最大応答時間を短くするために、これらの書き込み先ブロックのブロック消去タイミングが重ならないようにすることが望ましい。
【００７０】
この第７の実施形態では、ＮＡＮＤメモリ５０へ書き込むことができる領域がどのくらい残っているかに基づいて、消去対象のブロックをホスト装置２から書き込み要求されたデータの書き込み先とするのか、ガベージコレクション対象データの書き込み先とするのか、論物変換テーブルの書き込み先とするのかを決定する。ホスト装置２から書き込み要求されたデータの書き込み先、ガベージコレクション対象データの書き込み先、および論物変換テーブルの書き込み先を確保するためのブロック消去の際、ホスト装置２に対する最大応答時間を短くするために、これらの書き込み先ブロックのブロック消去タイミングが重ならないようにするためである。
【００７１】
ホスト装置２からＣ（Ｓｐａｎ）ページ分のデータ書き込み要求を受けた場合、１ブロック消去する必要があるため、ホスト装置２から書き込み要求されたデータの書き込み先として用意されているページ数がＣ（Ｓｐａｎ）以下であれば（ステップ１４１：Ｙｅｓ）、ホスト装置２から書き込み要求されたデータの書き込み先ブロックを優先して消去する（ステップ１４２）。
【００７２】
ホスト装置２から書き込み要求されたデータの書き込み先ブロック、ガベージコレクション対象データの書き込み先ブロック、および論物変換テーブルの書き込み先ブロックの３個のブロックを消去する間に、ＮＡＮＤメモリ５０へのデータ書き込みが発生する論物変換テーブルのページ数よりも、論物変換テーブルの書き込み先として確保したページ数の方が少なければ、ガベージコレクション対象データの書き込み先ブロックよりも、論物変換テーブルの書き込み先ブロックを先に消去し、論物変換テーブルの書き込み先として確保したページ数の方が多ければ、論物変換テーブルの書き込み先ブロックよりも、ガベージコレクション対象データの書き込み先ブロックを先に消去する。すなわち、ホスト装置２から書き込み要求されたデータの書き込み先ブロック、ガベージコレクション対象データの書き込み先ブロック、および論物変換テーブルの書き込み先ブロックの３個のブロックを消去する間に、ＮＡＮＤメモリ５０へのデータ書き込みが発生する論物変換テーブルのページ数である（３＊Ｃ（Ｓｐａｎ）＊（１＋Ｃ（ＧＣ／Ｈ））／Ｃ（ＵＤ／Ｔ））よりも論物変換テーブルの書き込み先として用意されているページ数が少ない場合（ステップ１４３：Ｙｅｓ）、論物変換テーブルの書き込み先ブロックを優先して消去する（ステップ１４４）。
【００７３】
ガベージコレクション対象データの書き込み先ブロックのブロック消去タイミングが、ホスト装置２から書き込み要求されたデータの書き込み先ブロックのブロック消去タイミングと重ならないようにするには、ホスト装置２から書き込み要求されたデータの書き込み先ブロック、およびガベージコレクション対象データの書き込み先ブロックの２個のブロックを消去する間に発生する、ガベージコレクション対象データの書き込みページ数、すなわち（２＊Ｃ（Ｓｐａｎ）＊Ｃ（ＧＣ／Ｈ））よりもガベージコレクションデータの書き込み先として用意されているページ数の方が少ない場合（ステップ１４５：Ｙｅｓ）、ガベージコレクション対象データの書き込み先ブロックを優先してブロック消去する（ステップ１４６）。
【００７４】
データ書き込み先として用意されているページ数に余裕がある場合（ステップ１４１：Ｎｏ、ステップ１４３：Ｎｏ、ステップ１４５：Ｎｏ）、ブロック消去先は任意とする（ステップ１４７）。
【００７５】
上述した第７の実施形態によれば、第１実施形態と同様に、ホストからの応答時間の最大応答時間を保証できる。また、ホスト装置２から書き込み要求されたデータの書き込み、ガベージコレクション対象データの書き込み、および論物変換テーブルの書き込みの際、消去済みブロックが存在しないという状況を回避できる。
【００７６】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００７７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他のさまざまな形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７８】
１・・・メモリシステム
２・・・ホスト装置
１０・・・ホストＩ／Ｆ
２０・・・メモリコントローラ
３０・・・データバッファ
４０・・・ＮＡＮＤＩ／Ｆ
５０・・・ＮＡＮＤメモリ
【図１】
2016024678.tif 000003
【図２】
2016024678.tif 000004
【図３】
2016024678.tif 000005
【図４】
2016024678.tif 000006
【図５】
2016024678.tif 000007
【図６】
2016024678.tif 000008
【図７】
2016024678.tif 000009
【図８】
2016024678.tif 000010
【図９】
2016024678.tif 000011
【図１０】
2016024678.tif 000012
【図１１】
2016024678.tif 000013
【図１２】
2016024678.tif 000014
【図１３】
2016024678.tif 000015
【図１４】
2016024678.tif 000016