(57)【要約】【課題】信頼性を向上したメモリシステムを提供する。【解決手段】実施形態のメモリシステム１は、ブロックを複数有する不揮発性メモリ２と、キャッシュ３と、ホスト７が指定する論理アドレスと不揮発性メモリ上のデータ位置を指定する物理アドレスの対応を示す論物変換テーブルと、論物変換テーブルに対応する論理アドレスを有するブロック毎の消去回数を保持する消去回数テーブルを備える。メモリシステムは、ホストが削除対象となる論理アドレスを通知した場合に、論物変換テーブルにてそれに対応する物理アドレスが指定する削除対象領域を含む削除対象ブロックの消去回数を取得し、当該消去回数の所定の割合以下の消去回数を有する少消去ブロックが消去回数テーブルに存在する場合には、少消去ブロック内の有効データのキャッシュへの読み出しおよび削除対象領域への書き込みを実行し、少消去ブロック内の有効データを無効化するコントローラ６を備える。【選択図】図１
2012203443.tif 000002
【特許請求の範囲】
【請求項１】
データ消去の単位である物理ブロックを複数個有する不揮発性メモリと、
キャッシュメモリと、
ホストが指定する論理アドレスと前記不揮発性メモリ上のデータの位置を指定する物理アドレスとの対応を示す論物変換テーブルと、
前記論物変換テーブルにて対応する論理アドレスを有する物理ブロック毎のデータ消去回数を保持する消去回数管理テーブルと、
前記ホストが削除対象となる論理アドレスを通知した場合に、前記論物変換テーブルにおいて当該論理アドレスに対応する物理アドレスが指定する削除対象データ領域を含む削除対象物理ブロックのデータ消去回数を取得し、当該データ消去回数の所定の割合以下のデータ消去回数を有する少消去物理ブロックが前記消去回数管理テーブルに存在する場合には、前記少消去物理ブロック内の有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行し、前記少消去物理ブロック内の前記有効データを無効化するメモリコントローラと
を備えたことを特徴とするメモリシステム。
【請求項２】
データ消去回数がより少ない前記少消去物理ブロックから優先して前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行する
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
データ消去の単位である物理ブロックを複数個有する不揮発性メモリと、
キャッシュメモリと、
ホストが指定する論理アドレスと前記不揮発性メモリ上のデータの位置を指定する物理アドレスとの対応を示す論物変換テーブルと、
前記論物変換テーブルにて対応する論理アドレスを有する物理アドレスにデータが最後に書き込まれた最終書き込み時刻を保持する書き込み時刻管理テーブルと、
前記ホストが削除対象となる論理アドレスを通知した通知時刻が、前記論物変換テーブルにおいて当該論理アドレスに対応する物理アドレスが指定する削除対象データ領域を含む削除対象物理ブロックとは別の物理ブロックに対応して前記書き込み時刻管理テーブルに保持された最終書き込み時刻より所定時間以上経過していた場合は、前記別の物理ブロック内の有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行し、前記別の物理ブロック内の前記有効データを無効化するメモリコントローラと
を備えたことを特徴とするメモリシステム。
【請求項４】
前記書き込み時刻管理テーブルは前記最終書き込み時刻として、前記論物変換テーブルにて対応する論理アドレスを有する物理ブロック毎に当該物理ブロックにデータが最後に書き込まれた物理ブロック最終書き込み時刻を保持し、
前記メモリコントローラは、前記通知時刻が、前記別の物理ブロックの前記物理ブロック最終書き込み時刻より所定時間以上経過していた場合に、前記別の物理ブロック内の前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行し、前記別の物理ブロック内の前記有効データを無効化する
ことを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記書き込み時刻管理テーブルは前記最終書き込み時刻として、前記論物変換テーブルにて対応する論理アドレスを有する物理アドレス毎に当該物理アドレスにデータが最後に書き込まれた物理アドレス最終書き込み時刻を保持し、
前記メモリコントローラは、前記通知時刻が、前記別の物理ブロック内の位置を指定する特定物理アドレスの前記物理アドレス最終書き込み時刻より所定時間以上経過していた場合に、当該特定物理アドレスの前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行し、当該特定物理アドレスの前記有効データを無効化する
ことを特徴とする請求項３に記載のメモリシステム。
【請求項６】
より古い前記最終書き込み時刻に対応する前記有効データから優先して前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行する
ことを特徴とする請求項３、４または５に記載のメモリシステム。
【請求項７】
前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みは、
前記キャッシュメモリが読み出した前記削除対象物理ブロックの全データの中の前記削除対象データ領域の削除対象データに前記キャッシュメモリが読み出した前記有効データを上書きしたデータの、データ消去された前記削除対象物理ブロックへの書き込み
であることを特徴とする請求項１乃至６のいずれか１項に記載のメモリシステム。
【請求項８】
前記削除対象物理ブロックが全て削除対象である場合は、
前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みは、
前記キャッシュメモリが読み出した前記有効データの、データ消去された前記削除対象物理ブロックへの書き込み
であることを特徴とする請求項１乃至６のいずれか１項に記載のメモリシステム。
【請求項９】
誤り訂正手段をさらに備え、
前記有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みは、
前記キャッシュメモリが読み出した前記有効データに対して前記誤り訂正手段が誤り訂正を実行した誤り訂正後のデータを前記削除対象データ領域へ書き込む
ことを特徴とする請求項１乃至８のいずれか１項に記載のメモリシステム。
【請求項１０】
前記キャッシュメモリは、ＤＲＡＭ、ＳＲＡＭあるいは前記不揮発性メモリ内のキャッシュ領域である
ことを特徴とする請求項１乃至９のいずれか１項に記載のメモリシステム。
【請求項１１】
データ消去の単位である物理ブロックを複数個有する不揮発性メモリと、前記不揮発性メモリのデータの制御を行うメモリコントローラとを備えるメモリシステムの制御方法であって、
ホストが指定する論理アドレスと前記不揮発性メモリ上のデータの位置を指定する物理アドレスとの対応を示す論物変換テーブルを記憶し、
前記論物変換テーブルにて対応する論理アドレスを有する物理ブロック毎のデータ消去回数を保持する消去回数管理テーブルを記憶し、
前記ホストが削除対象となる論理アドレスを通知した場合に、前記論物変換テーブルにおいて当該論理アドレスに対応する物理アドレスが指定する削除対象データ領域を含む削除対象物理ブロックのデータ消去回数を取得し、当該データ消去回数の所定の割合以下のデータ消去回数を有する少消去物理ブロックが前記消去回数管理テーブルに存在する場合には、前記メモリコントローラは前記少消去物理ブロック内の有効データを読み出して前記削除対象データ領域へ書き込み、前記少消去物理ブロック内の前記有効データを無効化する
ことを特徴とするメモリシステムの制御方法。
【請求項１２】
データ消去回数がより少ない前記少消去物理ブロックから優先して前記有効データを読み出して前記削除対象データ領域へ書き込む
ことを特徴とする請求項１１に記載のメモリシステムの制御方法。
【請求項１３】
データ消去の単位である物理ブロックを複数個有する不揮発性メモリと、前記不揮発性メモリのデータの制御を行うメモリコントローラとを備えるメモリシステムの制御方法であって、
ホストが指定する論理アドレスと前記不揮発性メモリ上のデータの位置を指定する物理アドレスとの対応を示す論物変換テーブルを記憶し、
前記論物変換テーブルにて対応する論理アドレスを有する物理アドレスにデータが最後に書き込まれた最終書き込み時刻を保持する書き込み時刻管理テーブルを記憶し、
前記ホストが削除対象となる論理アドレスを通知した通知時刻が、前記論物変換テーブルにおいて当該論理アドレスに対応する物理アドレスが指定する削除対象データ領域を含む削除対象物理ブロックとは別の物理ブロックに対応して前記書き込み時刻管理テーブルに保持された最終書き込み時刻より所定時間以上経過していた場合は、前記メモリコントローラは前記別の物理ブロック内の有効データを読み出して前記削除対象データ領域へ書き込み、前記別の物理ブロック内の前記有効データを無効化する
ことを特徴とするメモリシステムの制御方法。
【請求項１４】
前記書き込み時刻管理テーブルは前記最終書き込み時刻として、前記論物変換テーブルにて対応する論理アドレスを有する物理ブロック毎に当該物理ブロックにデータが最後に書き込まれた物理ブロック最終書き込み時刻を保持し、
前記通知時刻が、前記別の物理ブロックの前記物理ブロック最終書き込み時刻より所定時間以上経過していた場合に、前記メモリコントローラは前記別の物理ブロック内の前記有効データを読み出して前記削除対象データ領域へ書き込み、前記別の物理ブロック内の前記有効データを無効化する
ことを特徴とする請求項１３に記載のメモリシステムの制御方法。
【請求項１５】
前記書き込み時刻管理テーブルは前記最終書き込み時刻として、前記論物変換テーブルにて対応する論理アドレスを有する物理アドレス毎に当該物理アドレスにデータが最後に書き込まれた物理アドレス最終書き込み時刻を保持し、
前記通知時刻が、前記別の物理ブロック内の位置を指定する特定物理アドレスの前記物理アドレス最終書き込み時刻より所定時間以上経過していた場合に、前記メモリコントローラは前記特定物理アドレスの前記有効データを読み出して前記削除対象データ領域へ書き込み、前記特定物理アドレスの前記有効データを無効化する
ことを特徴とする請求項１３に記載のメモリシステムの制御方法。
【請求項１６】
より古い前記最終書き込み時刻に対応する前記有効データから優先して読み出して前記削除対象データ領域へ書き込む
ことを特徴とする請求項１３、１４または１５に記載のメモリシステムの制御方法。
【請求項１７】
前記有効データの読み出しおよび前記削除対象データ領域へ書き込みは、
キャッシュメモリが前記削除対象物理ブロックの全データを読み出し、
前記キャッシュメモリが前記有効データを読み出し、
読み出された前記削除対象物理ブロックの全データの中の前記削除対象データ領域の削除対象データに、読み出された前記有効データを前記キャッシュメモリ上にて上書きし、
前記削除対象物理ブロックの全データの読み出し後に、前記削除対象物理ブロックをデータ消去し、
前記キャッシュメモリ上にて上書きされたデータを、データ消去された前記削除対象物理ブロックへ書き込む
ことを含むことを特徴とする請求項１１乃至１６のいずれか１項に記載のメモリシステムの制御方法。
【請求項１８】
前記削除対象物理ブロックが全て削除対象である場合は、
前記有効データの読み出しおよび前記削除対象データ領域へ書き込みは、
キャッシュメモリが前記有効データを読み出し、
前記削除対象物理ブロックをデータ消去し、
読み出された前記有効データを、データ消去された前記削除対象物理ブロックへ書き込む
ことを含むことを特徴とする請求項１１乃至１６のいずれか１項に記載のメモリシステムの制御方法。
【請求項１９】
前記有効データの読み出しおよび前記削除対象データ領域へ書き込みは、
読み出された前記有効データに対して誤り訂正を実行し、
前記誤り訂正後のデータを前記削除対象データ領域へ書き込む
ことを特徴とする請求項１１乃至１８のいずれか１項に記載のメモリシステムの制御方法。
【請求項２０】
前記削除対象物理ブロック内における前記削除対象データ領域のデータ量が所定の値未満の場合は、
前記有効データの読み出しおよび前記削除対象データ領域へ書き込みと前記有効データの無効化を実行しない
ことを特徴とする請求項１１乃至１９のいずれか１項に記載のメモリシステムの制御方法。
【請求項２１】
前記ホストが最後に前記メモリシステムにアクセスした時から所定の時間以内に、前記ホストが削除対象となる論理アドレスを通知した場合は、
前記有効データの読み出しおよび前記削除対象データ領域へ書き込みと前記有効データの無効化を実行しない
ことを特徴とする請求項１１乃至１９のいずれか１項に記載のメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムおよびメモリシステムの制御方法に関する。
【背景技術】
【０００２】
オペレーティングシステム（ＯＳ）上において外部記憶装置(例えばハードディスク、ソリッドステートドライブ（ＳＳＤ:Solid State Drive）)上のファイルデータが削除される場合、ＯＳ上でのデータの管理情報が削除されるだけで、外部記憶装置からは実際にはデータが削除されない。ＯＳ上でデータ削除のたびに外部記憶装置上の削除処理が行われるわけではないので、外部記憶装置上の削除処理が行われない分、動作のパフォーマンスが向上する。この方式は特に、アクセスの遅いハードディスクドライブにおいて有効であった。
【０００３】
一方、ＯＳ上では削除したはずのデータが、外部記憶装置上ではまだ存在している有効なデータであると認識されているため（以後、このようなデータを「無効データ」と呼ぶ）、外部記憶装置上でデータの存在しない領域が、ＯＳが認識している空き領域よりも常に少なくなってしまう。特に、外部記憶装置上での空き領域の枯渇は、論理アドレスとディスクの物理アドレスがかならずしも一対一で対応しないソリッドステートドライブ（ＳＳＤ）においてウェアレベリングを実行するときなどに大きな問題となる場合がある。
【０００４】
このような問題点を列挙すると、例えば、サイズの小さな無効データがＳＳＤ領域の各所に分散している状態で、メモリシステムにデータ書き込みを行う場合、空き領域を検索したり確保したりする処理に負荷がかかり、書き込みのパフォーマンスが著しく劣化することがあげられる。また、無効データが多くメモリシステム上での空き領域が枯渇している状況で書き込みが行われると、特定の領域に書き込みが集中して、メモリシステムの信頼性が大きく低下するということもあげられる。このような問題は、ＯＳでデータ削除が行われた場合に、メモリシステムにデータ削除通知を行うことで回避することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３７６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、信頼性を向上したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施形態のメモリシステムは、データ消去の単位である物理ブロックを複数個有する不揮発性メモリと、キャッシュメモリと、ホストが指定する論理アドレスと前記不揮発性メモリ上のデータの位置を指定する物理アドレスとの対応を示す論物変換テーブルと、前記論物変換テーブルにて対応する論理アドレスを有する物理ブロック毎のデータ消去回数を保持する消去回数管理テーブルを備える。メモリシステムは、前記ホストが削除対象となる論理アドレスを通知した場合に、前記論物変換テーブルにおいて当該論理アドレスに対応する物理アドレスが指定する削除対象データ領域を含む削除対象物理ブロックのデータ消去回数を取得し、当該データ消去回数の所定の割合以下のデータ消去回数を有する少消去物理ブロックが前記消去回数管理テーブルに存在する場合には、前記少消去物理ブロック内の有効データの前記キャッシュメモリへの読み出しおよび前記削除対象データ領域への書き込みを実行し、前記少消去物理ブロック内の前記有効データを無効化するメモリコントローラを備える。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態のメモリシステムの構成を示すブロック図である。
【図２】図２は、第１の実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図である。
【図３】図３は、第１の実施形態のメモリシステムの制御方法を示すフローチャートである。
【図４】図４は、本実施形態のメモリシステムの制御方法の概念の詳細を論理アドレス空間と対応する物理アドレス空間にわけて説明した図である。
【図５】図５は、本実施形態のメモリシステムの制御方法の概念の詳細を論理アドレス空間と対応する物理アドレス空間にわけて説明した別の図である。
【図６】図６は、本実施形態の論物変換テーブルを示した図である。
【図７】図７は、第１の実施形態の消去回数管理テーブルを示した図である。
【図８】図８は、本実施形態のフリーブロック管理テーブルを示した図である。
【図９】図９は、第２の実施形態のメモリシステムの構成を示すブロック図である。
【図１０】図１０は、第２の実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図である。
【図１１】図１１は、第２の実施形態のメモリシステムの制御方法を示すフローチャートである。
【図１２】図１２は、第２の実施形態の書き込み時刻管理テーブルを示した図である。
【図１３】図１３は、第２の実施形態の論物変換テーブルと書き込み時刻管理テーブルを兼ねたテーブルを示した図である。
【図１４】図１４は、第３の実施形態のメモリシステムの構成を示すブロック図である。
【図１５】図１５は、第３の実施形態のメモリシステムの別の構成を示すブロック図である。
【図１６】図１６は、第３の実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、実施形態にかかるメモリシステム、およびメモリシステムの制御方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【００１０】
（第１の実施形態）
図１は、第１の実施形態のメモリシステム１の構成を示すブロック図である。メモリシステム１はたとえばＳＳＤである。図示するように、メモリシステム１は、パーソナルコンピュータなどのホスト（Ｈｏｓｔ）７と接続され、ホスト７の外部記憶装置として機能する。ここでは、ホスト７とメモリシステム１との間は、一例として、ＡＴＡ（Advanced  Technology  Attachment）規格に準拠した通信インターフェースで接続されているものとする。メモリシステム１がホスト７から受信する書き込み／読み出し要求および後述のデータ削除通知は、ＬＢＡ（Logical  Block  Addressing）で定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。
【００１１】
メモリシステム１は、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤフラッシュメモリと略す）２と、揮発性半導体メモリとしてのＤＲＡＭまたはＳＲＡＭなどからなるキャッシュメモリ３と、ホスト７とＮＡＮＤフラッシュメモリ２との間でキャッシュメモリ３を介してデータ転送制御を行うとともにメモリシステム１内の各構成要素を制御するメモリシステムコントローラ６と、ホスト７との間の通信インターフェースの制御を実行するホストインターフェースコントローラであるインターフェース５とを備えて構成されている。なお、キャッシュメモリ３はＮＡＮＤフラッシュメモリ２内のキャッシュ領域であっても構わない。また、キャッシュメモリ３はＦｅＲＡＭ、ＭＲＡＭなどの不揮発性半導体メモリであっても構わない。
【００１２】
ＯＳでデータ削除が行われた場合に、ホスト７がメモリシステム１に発行するデータ削除通知とは、たとえば、ＩＮＣＩＴＳ  ＡＴＡ８−ＡＣＳで採用されたＤａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｍｍａｎｄ(通称トリム（ＴＲＩＭ）コマンド)である。これは、ＯＳ上でデータが削除された場合、削除されたデータの存在する論理アドレス領域をメモリシステムに通知することにより、以後メモリシステム上でもその領域を空き領域として扱うことができる方式である。
【００１３】
ホスト７から発行されたデータ削除通知を処理する（トリムコマンドを実行する）場合には、メモリシステム１は、メモリシステムコントローラ６が制御するデータ管理領域にアクセスして該当領域を無効化する処理を行う。無効化処理では、メモリシステムの管理情報を書き換えて該当領域が無効であることにすれば良く、該当領域のデータそのものは、実際には消しても消さなくてもよい。
【００１４】
ＮＡＮＤフラッシュメモリ２内部における書き換え回数分布の極端な偏りの発生により特定の領域が摩耗して動作不能になることを防ぐため、ホスト７からの書き込み要求時には、書き換え回数が少ない領域に優先して書き込みを行い、書き換え回数分布を平滑化するスタティックウェアレベリングという書き込み方式が存在する。削除通知処理を行うことで、メモリシステム上に空き領域を確保でき、スタティックウェアレベリングを行う対象領域の選択肢が増加するため、削除通知方式により信頼性が向上することがある。ただし、ディスク空き領域が少ない場合や空き領域それぞれの書き換え回数分布のばらつきがあまり存在しない場合には、スタティックウェアレベリングの効果は限定的である。
【００１５】
一方、頻繁に書き込みが行われる第１の領域と、あまり書き込みが行われない第２の領域に関して、第１の領域のデータを第２の領域にコピーし、第２の領域のデータを第１の領域にコピーすることで、書き換え回数の領域毎のばらつきを平滑化して信頼性を向上させるダイナミックウェアレベリングという手法もある。ダイナミックウェアレベリングはスタティックウェアレベリングと異なり、その効果は空き領域の量に依存しない。しかし、領域書き換えが余分に発生することにより、かえってメモリシステムの寿命を縮めてしまうこともある。また、動作中にダイナミックウェアレベリングが発生することでシステムのパフォーマンスを低下させる場合がある。
【００１６】
本実施形態では、メモリシステム１がホスト７からのデータ削除通知（トリム要求）を受信した際に、削除通知対象領域に比べて相対的に書き込み頻度の低い領域の有効データを削除通知対象領域にコピーし、当該書き込み頻度の低い領域のデータを無効化する。データが無効化された領域はフリーブロックになる可能性が高くなるので、これにより領域ごとの書き込みばらつきを平滑化することができる。即ち、スタティックウェアレベリングをさらに効果的に実行することが可能となる。
【００１７】
本実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図が図２である。ホスト７から、論理アドレス空間上の削除通知対象領域（領域α）に関する削除通知を受信すると、削除通知はインターフェース５を介してメモリシステムコントローラ６に通知される。削除通知されたメモリシステムコントローラ６はキャッシュメモリ３上の管理テーブル（論物変換テーブルおよび消去回数管理テーブルを含む）を参照し、領域αに対応する物理アドレスが示すＮＡＮＤフラッシュメモリ２上の物理領域Ａを特定すると共に、領域Ａに含まれる各小領域の過去にわたる消去（書き換え）回数を取得する。論物変換テーブル（論理アドレス物理アドレス変換テーブル）はホスト７が指定する論理アドレスとＮＡＮＤフラッシュメモリ２上のデータの位置を指定する物理アドレスとの対応を示すテーブルであり、消去回数管理テーブルは論物変換テーブルにおいて対応する論理アドレスを有する物理ブロック毎のデータ消去回数を保持するテーブルである。また、消去回数管理テーブルとして対応する論理アドレスの有無にかかわらずＮＡＮＤフラッシュメモリ２上の物理ブロック毎のデータ消去回数を保持するテーブルであってもかまわない。
【００１８】
メモリシステムコントローラ６は領域Ａ以外のＮＡＮＤフラッシュメモリ２上の領域であってかつ有効なデータを保持するＮＡＮＤフラッシュメモリ２上の領域の消去回数を取得する。領域Ａの消去回数に比べて消去回数が所定の割合よりも少ない領域Ｂが存在し、かつ領域Ｂの合計のデータサイズが領域Ａ以下である場合は領域Ｂの物理アドレスを取得し、領域Ｂの有効なデータをキャッシュメモリ３に読み出す（図２「ステップ１」）。上記所定の割合はシステム設計時に予め設定するなどしてもよい。領域Ｂのデータサイズが領域Ａよりも大きい場合は、領域Ａよりもデータサイズが小さくなるよう消去回数の少ない順に選択して領域Ｂとする。図示したように領域ＢはＮＡＮＤフラッシュメモリ２上に分散して存在していてもかまわない。そして、領域Ｂから読み出した有効なデータを領域Ａに書き込む（図２「ステップ２」）。領域Ｂのデータのコピーで埋まらない領域Ａの部分がある場合は、管理テーブルを書き換えてその部分領域を追記可能な未書き込み領域とする。そして、メモリシステム１は領域Ｂを無効化処理する（図２「ステップ３」）。
【００１９】
以上の動作を通じて、削除通知対象領域である領域Ａのかわりに書き換え回数が少ない領域Ｂを解放することで、次の書き込み以降に領域Ｂがスタティックウェアレベリングの対象になり、メモリシステム全体の書き換え回数分布が平滑化し、メモリシステム１の信頼性が向上する。
【００２０】
上記した本実施形態にかかるメモリシステム１の制御方法について、図３に示したフローチャート、および図４、図５の概念図を用いてさらに詳細に以下で説明する。図４及び図５は、本実施形態のメモリシステムの制御方法の概念を論理アドレス空間と対応する物理アドレス空間にわけてより詳細に説明した図である。これによりホスト７から削除通知を受信した際に、メモリシステム１の各領域の消去回数分布を平滑化することが可能となる。
【００２１】
ホスト７から、削除通知対象である論理アドレス領域αに関する削除通知を受信すると(ステップＳ１０１：Ｙｅｓ）、メモリシステムコントローラ６は管理テーブルを参照する。管理テーブルは例えば図１のキャッシュメモリ３上に管理されている。管理テーブルは、論理アドレスとＮＡＮＤフラッシュメモリ２上のデータの位置を指定する物理アドレスとの対応を示す図６に示すような論物変換テーブルを含んでいる。メモリシステムコントローラ６は図６の論物変換テーブルを用いて、論理アドレス領域αに対応する物理アドレスのＮＡＮＤフラッシュメモリ２上の領域Ａ、および領域Ａのデータを含む全てのＮＡＮＤ物理ブロック群を特定する(ステップＳ１０２）（図４「ステップ１」、または、図５「ステップ１」）。ＮＡＮＤ物理ブロックはデータ消去の単位であり、ステップＳ１０２で特定される物理ブロック群は一般には１つまたは複数の物理ブロックとなる。以下では説明を簡易にするために、図４および図５の「ステップ１」に示すように領域Ａのデータは１つのＮＡＮＤ物理ブロックＸに含まれているとして説明する。
【００２２】
領域Ａのデータが１つのＮＡＮＤ物理ブロックＸに含まれているとしても、領域Ａが物理ブロックＸの一部である図４の場合と、領域Ａが物理ブロックＸの全体である図５の場合とでは、以下で説明するように処理が異なってくる。領域Ａが複数のＮＡＮＤ物理ブロック群に分散して含まれている一般の場合は、それぞれの物理ブロックに対して以下の処理（図４或いは図５に示した処理）が実行される。
【００２３】
上記した管理テーブルは、図６の論物変換テーブルにおいて対応する論理アドレスを有する物理ブロックに対して、物理ブロック毎のデータ消去回数を保持する図７に示すような消去回数管理テーブルも含んでいる。そして次に、メモリシステムコントローラ６は、キャッシュメモリ３上に管理されている図７の消去回数管理テーブルからステップＳ１０２で特定された物理ブロックＸのデータ消去回数を取得する(ステップＳ１０３）。そして、メモリシステムコントローラ６は物理ブロックＸ以外の有効なデータを持つ物理ブロックの消去回数を管理テーブルから取得し、物理ブロックＸに対して消去回数が極端に少ない、例えば、物理ブロックＸの消去回数の所定の割合以下のデータ消去回数を有する物理ブロック群Ｙ（少消去物理ブロック）が存在するかどうかを判定する(ステップＳ１０４）。この所定の割合はシステム設計時などに設定しておく。なおステップＳ１０２において、領域Ａのデータを含むとして特定された物理ブロックが複数の物理ブロックからなる物理ブロック群である場合は、ステップＳ１０４では、当該物理ブロック群以外の有効なデータを持つ物理ブロックの消去回数を管理テーブルから取得し、当該物理ブロック群それぞれの消去回数の所定の割合以下のデータ消去回数を有する物理ブロック群Ｙ（「少消去物理ブロック」）が存在するかどうかを当該物理ブロック群のそれぞれの物理ブロック毎に判定することになる。以下再び、領域Ａのデータは１つのＮＡＮＤ物理ブロックＸに含まれているとして説明する。
【００２４】
「少消去物理ブロック」が存在しない場合(ステップＳ１０４：Ｎｏ）は、メモリシステムコントローラ６は、領域Ａの物理アドレスの対応関係を論物変換テーブルから削除するか、あるいは論物変換テーブルにおいて領域Ａの全物理アドレスをブランクに変えることによって、領域Ａを解放する(ステップＳ１１Ａ）。メモリシステムコントローラ６は、領域Ａを含む物理ブロックを指定する物理アドレスが論物変換テーブル（図６）に含まれているかどうかを判定し、当該物理ブロックを指定する物理アドレスが全く含まれていない場合は、 ＮＡＮＤ物理ブロック内の全てのデータが無効である物理ブロックが新たに発生したことになるため、これをフリーブロックとして管理テーブルがさらに備えるフリーブロック管理テーブル（図８）に登録し(ステップＳ１１４）、これ以降新たにホスト７から書き込み命令を受信した場合は、このブロックを書き込み対象として選んでよい。
【００２５】
「少消去物理ブロック」が存在する場合(ステップＳ１０４：Ｙｅｓ）は、ステップＳ１０５に進む。ステップＳ１０５では、領域Ａが物理ブロックＸの一部である（図４の場合）(ステップＳ１０５：Ｎｏ）か、物理ブロックＸの全体である（図５の場合）(ステップＳ１０５：Ｙｅｓ）かのいずれであるかが判定される。
【００２６】
図４の場合(ステップＳ１０５：Ｎｏ）は、物理ブロックＸの有効な全データからなり、かつそこから領域Ａを除外した領域を領域Ｃと定義する（領域Ｃは削除通知処理後も有効なデータを保持し続けることになる）。ブロック群Ｙに含まれる有効なデータからなり、かつ領域Ｃとの合計サイズが物理ブロックＸ（１ブロック）のサイズ以下となる領域（領域Ｂ）を選択する(ステップＳ１０６）。即ち、
(領域Ｃのサイズ)＋(領域Ｂのサイズ)≦(物理ブロックＸのサイズ)
が成立している。メモリシステムコントローラ６は、選択した領域Ｂの物理アドレス情報を取得する(ステップＳ１０６）。ここで、領域Ｂは、消去回数が少ないブロックから順に優先し、可能ならできるだけ少数のブロック数で構成されるよう選定するのが好ましい。
【００２７】
メモリシステムコントローラ６は、領域Ｃの全データ（データｃ）および領域Ｂの全データ（データｂ）をキャッシュメモリ３上に読み出す(ステップＳ１０７）。具体的には、先に物理ブロックＸの全データをキャッシュメモリ３上に一旦読み出し、その中のトリム要求の対象となるデータ領域Ａのデータ上に領域Ｂの全データ（データｂ）を上書きする。リードモディファイライト(Read-Modify-Write)のリードモディファイまでを実行する(ステップＳ１０７）。その後ステップＳ１１０に進む。
【００２８】
図５の場合(ステップＳ１０５：Ｙｅｓ）は、ブロック群Ｙに含まれる有効なデータであって、合計サイズが物理ブロックＸ（１ブロック）のサイズ以下となる領域（領域Ｂ）を選択して、領域Ｂの物理アドレスを取得する(ステップＳ１０８）。メモリシステムコントローラ６は、領域Ｂの全データ（データｂ）をキャッシュメモリ３上に読み出す(ステップＳ１０９）。その後ステップＳ１１０に進む。
【００２９】
ステップＳ１１０では、物理ブロックＸの全データを消去する。その後、ステップＳ１０６、Ｓ１０７を経由してきた場合は、データｃおよびデータｂをマージしたキャッシュメモリ３上のデータを物理ブロックＸに書き込んで（書き戻して）、リードモディファイライトを完了する(ステップＳ１１１）（図４「ステップ２」）。ステップＳ１０８、Ｓ１０９を経由してきた場合は、キャッシュメモリ３上のデータｂを物理ブロックＸに書き込む(ステップＳ１１１）（図５「ステップ２」）。書き戻した（書き込んだ）データの全サイズは必ずしも物理ブロックＸのサイズと等しいとは限らず、物理ブロックＸのサイズ未満となる場合があるが、その場合は、残りの領域は未書き込み領域Ｚとして扱ってよい。未書き込み領域Ｚはその後にデータを追記することが可能である。
【００３０】
そして、物理ブロックＸに書き込んだデータの論理アドレスを物理ブロックＸの該当する物理アドレスに関連付けるように、図６の論物変換テーブルを書き換える(ステップＳ１１２）。具体的には、ステップＳ１０６、Ｓ１０７を経由してきた場合は、データｂおよびデータｃの論理アドレスを物理ブロックＸの物理アドレスに関連付ける。ステップＳ１０８、Ｓ１０９を経由してきた場合は、データｂの論理アドレスを物理ブロックＸの物理アドレスに関連付ける。そして、図７の消去回数管理テーブルの物理ブロックＸの消去回数を１増やすよう更新する(ステップＳ１１３）。
【００３１】
以上の動作を通じて、データｂは領域Ｂの物理アドレスではなく、物理ブロックＸ内の物理アドレスに関連付けられていることになり、領域Ｂの物理アドレスは論理アドレスから参照できない解放状態となる(図４「ステップ３」、または図５「ステップ３」）。すなわち、領域Ｂの全データは無効となる。領域Ｂの解放後、メモリシステムコントローラ６は、領域Ｂを含む物理ブロックを指定する物理アドレスが論物変換テーブル（図６）に含まれているかどうかを判定し、当該物理ブロックを指定する物理アドレスが全く含まれていない場合は、ＮＡＮＤ物理ブロック内の全てのデータが無効である物理ブロックが新たに発生したことになるため、これをフリーブロックとして管理テーブルがさらに備えるフリーブロック管理テーブル（図８）に登録し(ステップＳ１１４）、これ以降新たにホスト７から書き込み命令を受信した場合は、このブロックを書き込み対象として選んでよい。これにより、次の書き込み以降にスタティックウェアレベリングの対象になり、メモリシステム１全体のブロック消去回数分布が平滑化し、メモリシステム１の信頼性が向上する。
【００３２】
ＯＳがメモリシステム１に対してデータ削除通知をする「ファイル削除が行われる」場合とは、たとえばＷｉｎｄｏｗｓ（登録商標）では「ごみ箱」を空にする場合であり、ユーザーがそのような処理を行う場合は、メモリシステム１へのアクセスがビジーでない場合がほとんどである。よって、本実施形態では、多くの場合、アクセスが少ない時にコピーが発生することになり、メモリシステム１の負荷を分散させ、メモリシステム１の性能を低下させない。メモリシステム１へのアクセスが頻繁に発生する状況下において削除通知を受信した場合は、上記した領域Ｂのデータの物理ブロックＸへのデータコピー動作を必ずしも実行しなくてもよい。たとえば、ホスト７から削除通知を受信したタイミングが、それ以前で最後にホスト７がメモリシステム１にアクセスしてから一定時間以上が経過していた場合にのみ上記説明した動作を行うようにしてもよい。
【００３３】
（第２の実施形態）
図９は、第２の実施形態のメモリシステム１の構成を示すブロック図である。計時機能を有するタイマー８が追加されている点以外は図１と同様の構成である。図９では、タイマー８はメモリシステムコントローラ６と接続しているが、この構成に限定されるものではなく、タイマー８がメモリシステム１の外部に存在してもよい。
【００３４】
本実施形態では、メモリシステム１がホスト７からのデータ削除通知（トリム要求）を受信した際に、メモリシステム１の各領域の有効なデータが最後に書き込まれてから経過した時間を平滑化する方式について説明する。メモリシステム１の中でも、特にＮＡＮＤフラッシュメモリ２を使用するメモリシステム１（ＳＳＤ）においては、ＮＡＮＤフラッシュメモリ２に保持されているデータに関して最後に書き込まれてからの時間（書き換え経過時間）が経過すればするほど、データが損失されやすくなる（データリテンション不良）。データリテンション不良は書き換え回数が極端に多くなっている領域において特に顕著となる。よって、極端に古くなったデータを別領域にコピーしなおすことで、各データの書き換え経過時間分布を平滑化することはメモリシステム１のデータ保持における信頼性向上に有効である。
【００３５】
本実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図が図１０である。ホスト７から、論理アドレス空間上の削除通知対象領域（領域α）に関する削除通知を受信した際、メモリシステムコントローラ６はキャッシュメモリ３上の管理テーブル（論物変換テーブルおよび書き込み時刻管理テーブルを含む）を参照し、領域αに対応する物理アドレスが示す物理領域Ａを含む物理ブロック以外のＮＡＮＤフラッシュメモリ２上の領域における有効なデータの書き換え経過時間分布を取得する。論物変換テーブルは上述した図６に示したテーブルである。書き込み時刻管理テーブルは、論物変換テーブルにおいて対応する論理アドレスを有する物理アドレスに対して、当該物理アドレスのＮＡＮＤフラッシュメモリ２上の領域にデータが最後に書き込まれた最終書き込み時刻を保持するテーブルである。また、書き込み時刻管理テーブルとしては、論物変換テーブルでの対応する論理アドレスの有無にかかわらずＮＡＮＤフラッシュメモリ２上の物理アドレス毎にデータが最後に書き込まれた最終書き込み時刻を保持するテーブルであってもかまわない。
【００３６】
メモリシステムコントローラ６は、領域Ａを含む物理ブロック以外の領域に書き込まれたデータであって最終書き込み時刻からの経過時間が極端に長いデータ、例えば、最終書き込み時刻からの経過時間が削除通知時に所定時間以上になっているデータを保有する領域Ｂが存在し、かつ当該領域Ｂの合計のデータサイズが領域Ａ以下である場合は領域Ｂの物理アドレスを取得し、領域Ｂの有効なデータをキャッシュメモリ３に読み出す（図１０「ステップ１」）。上記所定時間はシステム設計時に予め設定するなどしてもよい。領域Ｂのデータサイズが領域Ａよりも大きい場合は、領域Ａよりもデータサイズが小さくなるよう経過時間の長い順に取得しこれを領域Ｂとする。図示したように領域ＢはＮＡＮＤフラッシュメモリ２上に分散して存在していてもかまわない。そして、領域Ｂから読み出した有効なデータを領域Ａに書き込む（図１０「ステップ２」）。領域Ｂのデータのコピーで埋まらない領域Ａの部分がある場合は、データ管理テーブルを書き換えてその部分領域を追記可能な未書き込み領域とする。そして、メモリシステム１は領域Ｂを無効化処理する（図１０「ステップ３」）。
【００３７】
以上の動作を通じて、領域Ｂ上の書き込み経過時間が極端に長いデータを削除通知対象領域である領域Ａにコピーすることで、そのデータの書き込み経過時間はゼロにリセットされる。ホスト７から削除通知を受信するたびに、古いデータから順に更新されていくので、データリテンションが改善され、メモリシステム１のデータの信頼性が向上する。
【００３８】
上記した本実施形態にかかるメモリシステム１の制御方法について、図１１に示したフローチャート、および図４、図５の概念図を用いてさらに詳細に以下で説明する。図４及び図５は、第１の実施形態のメモリシステムの制御方法の概念を論理アドレス空間と対応する物理アドレス空間にわけてより詳細に説明した図であるが、本実施形態においても同じ図を用いて説明する。本実施形態のメモリシステムの制御方法によりホスト７から削除通知を受信した際に、メモリシステム１の各領域の有効なデータが最後に書き込まれてから経過した時間を平滑化することが可能となる。
【００３９】
メモリシステムの中でも、特にＮＡＮＤフラッシュメモリを使用するＳＳＤにおいては、ＮＡＮＤフラッシュメモリに保持されているデータに関して最後に書き込まれてからの時間（書きこみ後経過時間）が経過すればするほど、データが損失されやすくなる（データリテンション不良）。データリテンション不良は消去回数が極端に多くなっている領域において特に顕著となる。よって、極端に古くなったデータを別領域にコピーしなおすことで、各データの書きこみ後経過時間分布を平滑化することはメモリシステムのデータ保持における信頼性向上に有効である。
【００４０】
ホスト７から、削除通知対象である論理アドレス領域αに関する削除通知を受信すると(ステップＳ２０１：Ｙｅｓ）、メモリシステムコントローラ６は管理テーブルを参照する。管理テーブルは例えば図９のキャッシュメモリ３上に管理されている。管理テーブルは、論理アドレスとＮＡＮＤフラッシュメモリ２上のデータの位置を指定する物理アドレスとの対応を示す図６に示すような論物変換テーブルを含んでいる。メモリシステムコントローラ６は図６の論物変換テーブルを用いて、論理アドレス領域αに対応する物理アドレスのＮＡＮＤフラッシュメモリ２上の領域Ａ、および領域Ａのデータを含む全てのＮＡＮＤ物理ブロック群を特定する(ステップＳ２０２）（図４「ステップ１」、または、図５「ステップ１」）。ステップＳ２０２で特定される物理ブロック群は一般には１つまたは複数の物理ブロックとなる。以下では説明を簡易にするために、図４および図５の「ステップ１」に示すように領域Ａのデータは１つのＮＡＮＤ物理ブロックＸに含まれているとして説明する。
【００４１】
領域Ａのデータが１つのＮＡＮＤ物理ブロックＸに含まれているとしても、領域Ａが物理ブロックＸの一部である図４の場合と、領域Ａが物理ブロックＸの全体である図５の場合とでは、以下で説明するように処理が異なってくる。領域Ａが複数のＮＡＮＤ物理ブロック群に分散して含まれている一般の場合は、それぞれの物理ブロックに対して以下の処理（図４或いは図５に示した処理）が実行される。
【００４２】
上記した管理テーブルは、図６の論物変換テーブルにおいて対応する論理アドレスを有する物理ブロックに対して、物理ブロック毎に当該物理ブロックにデータが最後に書き込まれた物理ブロック最終書き込み時刻を保持する図１２に示すような書き込み時刻管理テーブルも含んでいる。そして次に、メモリシステムコントローラ６は、削除通知を受信した時刻とキャッシュメモリ３上に管理されている図１２の書き込み時刻管理テーブルとからステップＳ２０２で特定された物理ブロックＸ以外の物理ブロックにおける有効なデータの最終書き込み後の経過時間分布を取得する(ステップＳ２０３）。書き込み時刻管理テーブルとしては、図１２のように物理ブロック毎に管理するよりも更に粒度の細かい物理アドレスの単位で最終書き込み時刻を管理してもよい。
【００４３】
例えば図１３に示すように論物変換テーブルにおいて物理アドレスと当該物理アドレスに最終書き込み時刻を併記するようにしてもよい。この場合、図１３は論物変換テーブルと書き込み時刻管理テーブルを兼ねたテーブルとなっており、ステップＳ２０３では、削除通知を受信した時刻とこのテーブルの最終書き込み時刻からステップＳ２０２で特定された物理ブロックＸ以外の領域に書き込まれている有効なデータの書き込み後の経過時間分布を取得する。なおステップＳ２０２において、領域Ａのデータを含むとして特定された物理ブロックが複数の物理ブロックからなる物理ブロック群である場合は、ステップＳ２０３では、当該物理ブロック群以外に書き込まれている有効なデータの書き込み後の経過時間分布を書き込み時刻管理テーブルから取得する。以下再び、領域Ａのデータは１つのＮＡＮＤ物理ブロックＸに含まれているとして説明する。
【００４４】
次に、ステップＳ２０４において、ステップＳ２０３にて取得した経過時間分布の中で経過時間が極端に長い、具体的には、経過時間がシステム設計時などに設定した所定の時間以上となる有効なデータが書き込まれた領域がＮＡＮＤフラッシュメモリ２上に存在するか否かを判定する。存在しない場合(ステップＳ２０４：Ｎｏ）は、メモリシステムコントローラ６は、領域Ａの物理アドレスの対応関係を論物変換テーブルから削除するか、あるいは論物変換テーブルにおいて領域Ａの全物理アドレスをブランクに変えることによって、領域Ａを解放する(ステップＳ２１Ａ）。メモリシステムコントローラ６は、領域Ａを含む物理ブロックを指定する物理アドレスが論物変換テーブル（図６）に含まれているかどうかを判定し、当該物理ブロックを指定する物理アドレスが全く含まれていない場合は、 ＮＡＮＤ物理ブロック内の全てのデータが無効である物理ブロックが新たに発生したことになるため、これをフリーブロックとして管理テーブルがさらに備えるフリーブロック管理テーブル（図８）に登録し(ステップＳ２１４）、これ以降新たにホスト７から書き込み命令を受信した場合は、このブロックを書き込み対象として選んでよい。
【００４５】
存在する場合(ステップＳ２０４：Ｙｅｓ）は、ステップＳ２０５に進む。存在する場合とは、図１２の書き込み時刻管理テーブルを用いているときは、物理ブロックＸとは別の物理ブロックの最終書き込み時刻から削除通知時刻が所定時間以上経過していた場合であり、図１３の書き込み時刻管理テーブルを用いているときは、物理ブロックＸ以外の領域を示す特定の物理アドレス（特定物理アドレス）の最終書き込み時刻から削除通知時刻が所定時間以上経過していた場合である。
【００４６】
ステップＳ２０５では、領域Ａが物理ブロックＸの一部である（図４の場合）(ステップＳ２０５：Ｎｏ）か、物理ブロックＸの全体である（図５の場合）(ステップＳ２０５：Ｙｅｓ）かのいずれであるかが判定される。
【００４７】
図４の場合(ステップＳ２０５：Ｎｏ）は、物理ブロックＸの有効な全データからなり、かつそこから領域Ａを除外した領域を領域Ｃと定義する（領域Ｃは削除通知処理後も有効なデータを保持し続けることになる）。ステップＳ２０４において判定された領域（物理ブロックＸとは別の物理ブロック、或いは上記特定物理アドレスが示す領域）に含まれる有効なデータからなり、かつ領域Ｃとの合計サイズが物理ブロックＸ（１ブロック）のサイズ以下となる領域（領域Ｂ）を選択する(ステップＳ２０６）。即ち、
(領域Ｃのサイズ)＋(領域Ｂのサイズ)≦(物理ブロックＸのサイズ)
が成立している。メモリシステムコントローラ６は、選択した領域Ｂの物理アドレス情報を取得する(ステップＳ２０６）。ここで、領域Ｂは、書きこみ後経過時間の長い順に優先し、できるだけ少数のブロック数で構成されるよう選定するのが好ましい。
【００４８】
なお、ステップＳ２０４およびＳ２０６における経過時間のクライテリアは、たとえば、データリテンション不良がＥＣＣ訂正回路により十分余裕をもって訂正できるような不良率Ｆを算出し、書きこみ後経過時間と不良率の関係に関する実測データまたはシミュレーション結果を用いて不良率Ｆから導かれた書きこみ後経過時間を採用してもよい。
【００４９】
メモリシステムコントローラ６は、領域Ｃの全データ（データｃ）および領域Ｂの全データ（データｂ）をキャッシュメモリ３上に読み出す(ステップＳ２０７）。具体的には、先に物理ブロックＸの全データをキャッシュメモリ３上に一旦読み出し、その中のトリム要求の対象となるデータ領域Ａのデータ上に領域Ｂの全データ（データｂ）を上書きする。リードモディファイライト(Read-Modify-Write)のリードモディファイまでを実行する(ステップＳ２０７）。その後ステップＳ２１０に進む。
【００５０】
図５の場合(ステップＳ２０５：Ｙｅｓ）は、ステップＳ２０４において判定された領域（物理ブロックＸとは別の物理ブロック、或いは上記特定物理アドレスが示す領域）に含まれる有効なデータであって、合計サイズが物理ブロックＸ（１ブロック）のサイズ以下となる領域（領域Ｂ）を選択して、領域Ｂの物理アドレスを取得する(ステップＳ２０８）。メモリシステムコントローラ６は、領域Ｂの全データ（データｂ）をキャッシュメモリ３上に読み出す(ステップＳ２０９）。その後ステップＳ２１０に進む。
【００５１】
ステップＳ２１０では、物理ブロックＸの全データを消去する。その後、ステップＳ２０６、Ｓ２０７を経由してきた場合は、データｃおよびデータｂをマージしたキャッシュメモリ３上のデータを物理ブロックＸに書き込んで（書き戻して）、リードモディファイライトを完了する(ステップＳ２１１）（図４「ステップ２」）。ステップＳ２０８、Ｓ２０９を経由してきた場合は、キャッシュメモリ３上のデータｂを物理ブロックＸに書き込む(ステップＳ２１１）（図５「ステップ２」）。書き戻した（書き込んだ）データの全サイズは必ずしも物理ブロックＸのサイズと等しいとは限らず、物理ブロックＸのサイズ未満となる場合があるが、その場合は、残りの領域は未書き込み領域Ｚとして扱ってよい。未書き込み領域Ｚはその後にデータを追記することが可能である。
【００５２】
そして、物理ブロックＸに書き込んだデータの論理アドレスを物理ブロックＸの該当する物理アドレスに関連付けるように、図６あるいは図１３の論物変換テーブルを書き換える（ステップＳ２１２）。具体的には、ステップＳ２０６、Ｓ２０７を経由してきた場合は、データｂおよびデータｃの論理アドレスを物理ブロックＸの物理アドレスに関連付ける。ステップＳ２０８、Ｓ２０９を経由してきた場合は、データｂの論理アドレスを物理ブロックＸの物理アドレスに関連付ける。そして、図１２または図１３の書き込み時刻管理テーブルにおいて、ステップＳ２１１で物理ブロックＸに書き込んだデータの該当する物理ブロックあるいは物理アドレスに対応する最終書き込み時刻を更新する（ステップＳ２１３）。
【００５３】
以上の動作を通じて、データｂは領域Ｂの物理アドレスではなく、物理ブロックＸ内の物理アドレスに関連付けられていることになり、領域Ｂの物理アドレスは論理アドレスから参照できない解放状態となる(図４「ステップ３」、または図５「ステップ３」）。すなわち、領域Ｂの全データは無効となる。領域Ｂの解放後、メモリシステムコントローラ６は、領域Ｂを含む物理ブロックを指定する物理アドレスが論物変換テーブル（図６）に含まれているかどうかを判定し、当該物理ブロックを指定する物理アドレスが全く含まれていない場合は、ＮＡＮＤ物理ブロック内の全てのデータが無効である物理ブロックが新たに発生したことになるため、これをフリーブロックとして管理テーブルがさらに備えるフリーブロック管理テーブル（図８）に登録し(ステップＳ２１４）、これ以降新たにホスト７から書き込み命令を受信した場合は、このブロックを書き込み対象として選んでよい。
【００５４】
以上の動作を通じて、書き込み後経過時間が極端に長いデータを削除通知対象領域にコピーすることで、そのデータの書き込み後経過時間はゼロにリセットされる。ホスト７から削除通知を受信するたびに、古いデータから順に更新されていくので、データリテンションが改善され、メモリシステム１のデータの信頼性が向上する。
【００５５】
ＯＳがメモリシステム１に対してデータ削除通知をする「ファイル削除が行われる」場合とは、たとえばＷｉｎｄｏｗｓ（登録商標）では「ごみ箱」を空にする場合であり、ユーザーがそのような処理を行う場合は、メモリシステム１へのアクセスがビジーでない場合がほとんどである。よって、本実施形態では、多くの場合、アクセスが少ない時にコピーが発生することになり、メモリシステム１の負荷を分散させ、メモリシステム１の性能を低下させない。メモリシステム１へのアクセスが頻繁に発生する状況下において削除通知を受信した場合は、上記した領域Ｂのデータの物理ブロックＸへのデータコピー動作を必ずしも実行しなくてもよい。たとえば、ホスト７から削除通知を受信したタイミングが、それ以前で最後にホスト７がメモリシステム１にアクセスしてから一定時間以上が経過していた場合にのみ上記説明した動作を行うようにしてもよい。
【００５６】
（第３の実施形態）
図１４および図１５は、第３の実施形態のメモリシステム１の構成を示すブロック図である。図１４は、第１の実施形態のメモリシステム１の構成を示すブロック図である図１に誤り訂正符号（ＥＣＣ：Error Correcting Code）を用いてデータの符号化処理および記憶されたデータの復号化処理を行うための誤り訂正回路４が追加されている。図１５は、第２の実施形態のメモリシステム１の構成を示すブロック図である図９に誤り訂正回路４が追加されている。本実施形態のメモリシステムの制御方法の概念の概略を論理アドレス空間と対応する物理アドレス空間にわけて説明した図が図１６である。
【００５７】
本実施形態においては、第１および第２の実施形態において、削除通知の際にコピーするデータを、誤り訂正回路４を用いて誤り訂正する。コピー元となる領域Ｂの選定方法など、以下に説明する誤り訂正回路４を用いた処理以外の手順は第１および第２の実施形態で説明した方法と同じである。
【００５８】
領域Ｂの選定（図３のステップＳ１０６、Ｓ１０８、図１１のＳ２０６、Ｓ２０８）後のキャッシュメモリ３への読み出し（図３のステップＳ１０７、Ｓ１０９、図１１のＳ２０７、Ｓ２０９）においては、該当するデータをＮＡＮＤフラッシュメモリ２から一旦誤り訂正回路４に入力後、復号化処理にて誤りを訂正して（図１６「ステップ１」）からキャッシュメモリ３へ読み出す。誤り訂正を実行するために、あらかじめユーザーデータには符号化による冗長性が含まれている必要がある。キャッシュメモリ３からの書き込み（図３のステップＳ１１１、図１１のＳ２１１）においては、キャッシュメモリ３のデータを誤り訂正回路４にて再び符号化したデータを、削除通知対象論理アドレス領域（領域α）に対応するＮＡＮＤフラッシュメモリ２上の領域Ａに書き込む（図１６「ステップ２」）。領域Ｂのデータのコピーで埋まらない領域Ａの部分がある場合は、データ管理テーブルを書き換えてその部分領域を追懐可能な未書き込み領域とする。メモリシステム１はコピー元である領域Ｂの全データを無効化処理する（図１６「ステップ３」）。
【００５９】
また、上記説明した実施形態１乃至３においては、図２、図４、図５、図１０および図１６に示したように、削除通知対象の論理アドレス領域にはホスト７にとって既に有効なデータが存在しないが、対応するメモリシステム１の物理アドレス上にはメモリシステム１からみて有効なデータが存在すると想定して説明した。しかし、メモリシステム１からみても有効なデータが存在するとは認識していない論理アドレス（ＬＢＡ）が削除通知対象領域となることも有りうる。即ち、同じくホスト７にとってはデータが無い領域へのトリム要求が行われるのであるが、例えば、ホスト７が一度もデータを書き込んだことが無い論理アドレス、または既に解放されている論理アドレスに対するトリム要求が行われるケースである。この場合、メモリシステム１の内部では、当該論理アドレス（ＬＢＡ）に対応する物理アドレス（物理ブロック）が存在しない。このような論理アドレス（ＬＢＡ）は論物変換テーブルに記載が有る場合もあれば無い場合もある。論物変換テーブルに記載がある場合は、対応する物理アドレスの欄は例えばブランクになっていて物理アドレスとの対応は無い。このようなデータ削除通知が、ホスト７からメモリシステム１に対してなされた場合は、メモリシステム１は即座にホスト７に対して処理終了の通知をする、あるいはエラーメッセージ等の応答をするようにすればよい。この場合メモリシステム１は、データ削除通知に対して何も行わないことになる。
【００６０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６１】
１  メモリシステム、２  ＮＡＮＤフラッシュメモリ、３  キャッシュメモリ、４  誤り訂正回路、５  インターフェース、６  メモリシステムコントローラ、７  ホスト。
【図１】
2012203443.tif 000003
【図２】
2012203443.tif 000004
【図３】
2012203443.tif 000005
【図４】
2012203443.tif 000006
【図５】
2012203443.tif 000007
【図６】
2012203443.tif 000008
【図７】
2012203443.tif 000009
【図８】
2012203443.tif 000010
【図９】
2012203443.tif 000011
【図１０】
2012203443.tif 000012
【図１１】
2012203443.tif 000013
【図１２】
2012203443.tif 000014
【図１３】
2012203443.tif 000015
【図１４】
2012203443.tif 000016
【図１５】
2012203443.tif 000017
【図１６】
2012203443.tif 000018