(57)【要約】【課題】転送効率を可及的に向上させること。【解決手段】メモリシステムは、ストレージ領域を備える不揮発性メモリと、書き込みデータをストレージ領域に格納する転送処理部と、不要な書き込みデータを指定した削除通知を蓄積記憶する削除通知バッファと、削除通知にかかる書き込みデータを無効化する削除通知処理部とを備えている。削除通知処理部は、削除通知バッファから複数の削除通知を一括して読み出してストレージ領域よりも小さい単位領域毎に分類し、同一の単位領域に分類された削除通知にかかる書き込みデータを一括して無効化する処理を単位領域毎に実行する。削除通知処理部は、１つの単位領域にかかる処理を実行する際、無効化対象の書き込みデータを除く書き込みデータを別の単位領域に複製した後、前記１つの単位領域が記憶している全ての書き込みデータを無効化する。【選択図】図８
2012123499.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ領域を備える不揮発性メモリと、
ホスト装置から受信した書き込みデータを前記ストレージ領域に格納する転送処理部と、
前記ホスト装置から受信した、不要な書き込みデータを指定した削除通知を蓄積記憶する削除通知バッファと、
前記削除通知バッファに蓄積記憶された複数の削除通知を一括して読み出して、前記読み出した複数の削除通知を前記ストレージ領域よりも小さい単位領域毎に分類し、同一の単位領域に分類された１つ以上の削除通知にかかる書き込みデータを一括して無効化する処理を単位領域毎に順次実行し、前記単位領域毎に順次実行される処理のうちの１つの単位領域にかかる処理を実行する際、当該１つの単位領域が記憶している無効化対象の書き込みデータを除く書き込みデータを別の単位領域に複製した後、前記１つの単位領域が記憶している全ての書き込みデータを無効化する削除通知処理部と、
を備えることを特徴とするメモリシステム。
【請求項２】
前記削除通知処理部は、前記別の単位領域に複製対象の書き込みデータを複製できる空き領域がない場合、前記複製対象の書き込みデータの複製を行わないで前記無効化対象の書き込みデータを無効化するか、または前記１つの単位領域にかかる書き込みデータの複製および無効化をスキップする、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記削除通知処理部は、無効化対象の書き込みデータのサイズが前記１つの単位領域のサイズの所定割合以下である場合、前記複製対象の書き込みデータの複製を行わないで前記無効化対象の書き込みデータを無効化するか、または前記１つの単位領域にかかる書き込みデータの複製および無効化をスキップし、無効化対象の書き込みデータのサイズが前記所定割合を越える場合、前記複製対象の書き込みデータの複製を行って前記１つの単位領域が記憶している全ての書き込みデータを無効化する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記削除通知処理部は、無効化対象の書き込みデータのサイズおよび無効な領域のサイズの合計が前記１つの単位領域のサイズの所定割合以下である場合、前記複製対象の書き込みデータの複製を行わないで前記無効化対象の書き込みデータを無効化するか、または前記１つの単位領域にかかる書き込みデータの複製および無効化をスキップし、無効化対象の書き込みデータのサイズおよび無効な領域のサイズの合計が前記所定割合を越える場合、前記複製対象の書き込みデータの複製を行って前記１つの単位領域が記憶している全ての書き込みデータを無効化する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記削除通知処理部は、所定回数以上の消去が実行された単位領域にかかる書き込みデータの無効化をスキップする、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記削除通知処理部は、単位領域毎に分類した削除通知のうち、所定サイズ以上の削除通知が指定する書き込みデータを無効化対象とする、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項７】
前記削除通知処理部は、前記削除通知バッファに蓄積記憶されている削除通知が所定数に達した場合、前記ホスト装置から一定時間以上アクセスがない場合、前記ホスト装置から待機状態に移行する要求を受信した場合、または最後に書き込みデータの無効化を行ってから一定時間が経過した場合のうちの１つの場合に、前記削除通知バッファからの削除通知を一括して読み出す、
ことを特徴とする請求項１〜６のうちの何れか一項に記載のメモリシステム。
【請求項８】
前記ホスト装置が書き込みデータの書き込み先の指定に用いるアドレスと前記ストレージ領域の物理アドレスとを対応付けるアドレス管理テーブルを記憶する揮発性メモリをさらに備え、
前記削除通知処理部は、前記アドレス管理テーブルが前記揮発性メモリから前記ストレージ領域への退避が行われる際、前記削除通知バッファからの削除通知を一括して読み出す、
ことを特徴とする請求項１〜６のうちの何れか一項に記載のメモリシステム。
【請求項９】
前記ホスト装置に接続され、前記ホスト装置から送信されてくる書き込みデータおよび削除通知を受信する接続部をさらに備え、
当該接続部は、削除通知を受信する毎に当該受信した削除通知を前記削除通知バッファに記憶させるとともに削除完了通知を前記ホスト装置に送信する、
ことを特徴とする請求項１〜６のうちの何れか一項に記載のメモリシステム。
【請求項１０】
前記不揮発性メモリはＮＡＮＤ型のフラッシュメモリであって、前記単位領域は当該ＮＡＮＤ型のフラッシュメモリの消去単位を１つ以上備えて構成される、
ことを特徴とする請求項１〜６のうちの何れか一項に記載のメモリシステム。
【請求項１１】
削除通知は、不要な書き込みデータを当該書き込みデータの書き込み先の先頭アドレスとデータサイズとにより指定し、
前記転送処理部は、新たに書き込みデータを受信したとき、該書き込みデータの書き込み先にかかる削除通知を前記削除通知バッファから削除する、
ことを特徴とする請求項１〜６のうちの何れか一項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
ホスト装置とメモリシステムとの間の接続方式には、ホスト装置のオペレーティングシステム（ＯＳ）上においてデータが削除される処理が実行された場合、ＯＳ上でのデータの管理情報が削除されるだけで、メモリシステムでは実際にはデータが削除されないようにする接続方式がある。メモリシステムとしてＨＤＤ（Hard  Disk  Drive）が採用されている場合、ＯＳ上でデータ削除のたびにメモリシステム上の削除処理が行われるわけではないので、削除処理が行われない分、動作のパフォーマンスが向上する。
【０００３】
しかしながら、この方式によれば、ＯＳ上では削除したはずのデータが、メモリシステム上ではまだ存在している有効なデータであると認識されているため（以降、このようなデータを「無効データ」という）、メモリシステム上でデータの存在しない領域が、ＯＳが認識している空き領域よりも常に少なくなってしまう。すなわち、この方式によれば、空き領域が枯渇しやすくなる傾向がある。メモリシステムとしてフラッシュメモリ（フラッシュＥＥＰＲＯＭ）を備えるＳＳＤ（Solid  State  Drive）が採用されている場合、空き領域の枯渇はＳＳＤの性能低下を引き起こすため、問題となっていた。
【０００４】
この問題に対し、近年、メモリシステムに対してＯＳにとって不要な記憶領域をＯＳからメモリシステムに通知できる接続方式が開発されてきている。ＳＳＤは、当該通知（削除通知）によって通知された記憶領域を削除することによって、無効データの増加による空き領域の枯渇を防ぐことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３２４０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の一つの実施形態は、転送効率を可及的に向上させたメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一つの実施形態によれば、メモリシステムは、ストレージ領域を備える不揮発性メモリと、書き込みデータをストレージ領域に格納する転送処理部と、不要な書き込みデータを指定した削除通知を蓄積記憶する削除通知バッファと、削除通知にかかる書き込みデータを無効化する削除通知処理部とを備えている。削除通知処理部は、削除通知バッファから複数の削除通知を一括して読み出してストレージ領域よりも小さい単位領域毎に分類し、同一の単位領域に分類された削除通知にかかる書き込みデータを一括して無効化する処理を単位領域毎に実行する。削除通知処理部は、１つの単位領域にかかる処理を実行する際、無効化対象の書き込みデータを除く書き込みデータを別の単位領域に複製した後、前記１つの単位領域が記憶している全ての書き込みデータを無効化する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態のメモリシステムを適用したＳＳＤの構成を示す図である。
【図２】図２は、ＳＳＤの機能構成を説明する図である。
【図３】図３は、削除通知バッファのデータ構造を説明する図である。
【図４】図４は、アドレス管理テーブルのデータ構造の一例を説明する図である。
【図５】図５は、削除通知を受信したときの第１の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図６】図６は、書き込み要求を受信したときの第１の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図７】図７は、空き領域情報の更新にかかる第１の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図８】図８は、削除通知を処理するときの第１の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図９】図９は、第１の実施の形態のＳＳＤのストレージ領域無効化処理をさらに詳しく説明するフローチャートである。
【図１０】図１０は、処理単位領域全体が無効化される様子を説明する図である。
【図１１】図１１は、処理単位領域毎の空き領域の割合とパフォーマンスとの関係の一例を示す図である。
【図１２】図１２は、処理単位領域全体が無効化される様子を説明する図である。
【図１３】図１３は、第１の実施の形態の効果のひとつを説明する図である。
【図１４】図１４は、削除通知を処理するときの第２の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図１５】図１５は、削除通知を処理するときの第３の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図１６】図１６は、削除通知を処理するときの第４の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図１７】図１７は、削除通知を処理するときの第５の実施の形態のＳＳＤの動作を説明するフローチャートである。
【図１８】図１８は、第６の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【図１９】図１９は、第７の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【図２０】図２０は、第８の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【図２１】図２１は、第９の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【図２２】図２２は、第１０の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【図２３】図２３は、第１１の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【００１０】
（第１の実施形態）
図１は、第１の実施形態のメモリシステムを適用したＳＳＤの構成を示す図である。図示するように、ＳＳＤ１００は、パーソナルコンピュータなどのホスト装置（Ｈｏｓｔ）２００と接続され、ホスト装置２００の外部記憶装置として機能する。ここでは、ホスト装置２００とＳＳＤ１００との間は、一例として、ＡＴＡ（Advanced  Technology  Attachment）規格に準拠した通信インタフェースで接続されているものとする。ＳＳＤ１００がホスト装置２００から受信する書き込み／読み出し要求および後述の削除通知は、ＬＢＡ（Logical  Block  Addressing）で定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。
【００１１】
ＳＳＤ１００は、不揮発性半導体メモリとしてのＮＡＮＤ型のフラッシュメモリ（以下、ＮＡＮＤメモリと略す）１０と、キャッシュメモリなどとして機能するＲＡＭ（Random Access Memory）２０と、ホスト装置２００とＮＡＮＤメモリ１０との間でＲＡＭ２０を介してデータ転送制御を行うとともにＳＳＤ１００内の各構成要素を制御するドライブ制御回路３０とを備えている。
【００１２】
ドライブ制御回路３０は、ファームウェアに基づいてドライブ制御回路３０全体の制御を実行する演算装置３１と、ホスト装置２００との間の通信インタフェースの制御を実行するホストインタフェースコントローラ（ホストＩ／Ｆコントローラ）３２と、ＲＡＭ２０に対するデータの書き込み／読み出しを制御するＲＡＭコントローラ３３と、ＮＡＮＤメモリ１０とＲＡＭ２０との間のデータ転送の制御を実行するＮＡＮＤコントローラ３４とを備えて構成されている。
【００１３】
ところで、近年、INCITS（InterNational Committee for Information Technology Standards）ATA8-ACSでＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンド（通称“ＴＲＩＭコマンド”）が採用された。このＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンドは、前述の削除通知として機能する。すなわち、このコマンドは、ホスト装置のＯＳから記憶デバイスに、ＯＳにとって不要になった記憶領域を通知するものである。このコマンドによれば、不要になった記憶領域は先頭ＬＢＡとセクタサイズとで指定される。なお、同様の内容を含んでいれば、他の規格で定義されたコマンドを削除通知として機能させるようにしてもよい。
【００１４】
ここで、ＳＳＤ１００は、削除通知を受信する毎に当該通知により不要とされた記憶領域（削除指定領域）を削除するようにすると、ホスト装置２００は送信した削除通知に対応する完了通知を受信するまではＳＳＤ１００に別の要求を送信することができないため、効率的な通信を行うことができなくなる。一方、ＳＳＤ１００では、個々の削除通知を個別に実行することによって空き領域が断片化する。この空き領域にデータを書き込む場合、書き込み時には空き領域の検索に時間がかかるようになり、また、複数の空き領域に分割して書き込まれるため、データの読み出し時にも時間がかかるようになる。すなわち、削除通知を受信する毎に削除処理を行うと、ＳＳＤ１００の転送効率の低下を引き起こす可能性がある。
【００１５】
そこで、本発明の実施の形態では、ＳＳＤ１００は、受信した削除通知をバッファに蓄積しておき、一定の条件を満たしたとき、バッファに蓄積された削除通知を順次処理する。そして、削除通知を処理する際、ＳＳＤ１００は、空き領域の断片化が起こらないようにデータの並び替えを行う。
【００１６】
図２は、ＳＳＤ１００の機能構成を説明する図である。図示するように、ＲＡＭ２０にはホスト装置２００からのデータをキャッシュするキャッシュ領域２１が確保されており、ＮＡＮＤメモリ１０には、キャッシュ領域２１から退避されてくるデータなどが格納されるストレージ領域１１が確保されている。すなわち、ホスト装置２００から書き込み要求されたデータは、キャッシュ領域２１を介してストレージ領域１１に書き込まれる。さらに、ＲＡＭ２０には、削除通知を一時蓄積する削除通知バッファ２２が確保されている。
【００１７】
図３は、削除通知バッファ２２のデータ構造を説明する図である。図示するように、削除通知バッファ２２は、削除通知の内容（先頭ＬＢＡおよびセクタ数）がエントリとして順次登録されるテーブル構造を備えている。
【００１８】
演算装置３１は、転送処理部３５および削除通知処理部３６を備えている。
【００１９】
転送処理部３５は、ホスト装置２００からの書き込み要求を受信したとき、書き込み要求されたデータをキャッシュ領域２１へ書き込む。その際、削除通知バッファ２２に書き込み先の領域にかかる削除通知が格納されている場合、転送処理部３５は、当該削除通知を削除する。また、転送処理部３５は、ホスト装置２００から読み出し要求を受信したとき、読み出し要求されたデータをキャッシュ領域２１またはストレージ領域１１から読み出して、読み出したデータをホスト装置２００へ転送する。また、転送処理部３５は、キャッシュ領域２１が溢れた場合や電源ＯＦＦ時に、キャッシュ領域２１にキャッシュされているデータをストレージ領域１１に退避させる。なお、転送処理部３５は、ホスト装置２００から書き込み要求されたデータをストレージ領域１１に直接書き込む場合があってもよい。
【００２０】
また、転送処理部３５は、消去回数（あるいは書き込み回数）をストレージ領域１１内で平滑化するために、ストレージ領域１１にデータを書き込むときに書き込み位置（書き込み先の物理アドレス）を適宜変更するスタティックウェアレベリングや、既にストレージ領域１１に書き込まれているデータを読み出してストレージ領域１１内の別の位置に移動させるダイナミックウェアレベリングを実行する。
【００２１】
また、転送処理部３５は、ウェアレベリングにより刻々と変化する、ＬＢＡとストレージ領域１１およびキャッシュ領域２１の物理アドレスとの対応関係を、アドレス管理テーブル２３を用いて管理する。図４は、アドレス管理テーブル２３のデータ構造の一例を説明する図である。図示するように、ＬＢＡと物理アドレスとの関係を示すエントリがキャッシュ領域２１とストレージ領域１１とに分けて登録されている。アドレス管理テーブル２３の夫々のエントリは例えばセクタ単位やセクタより大きいクラスタ単位やトラック単位で登録される。転送処理部３５は、ホスト装置２００から書き込み要求されたデータをキャッシュ領域２１へ書き込む時、キャッシュ領域２１にキャッシュされているデータをストレージ領域１１へ退避する時、およびダイナミックウェアレベリング実行時に、当該アドレス管理テーブル２３を更新する。なお、アドレス管理テーブル２３はここではＲＡＭ２０上に置かれ、ＲＡＭ２０上で逐次更新されるものとしている。
【００２２】
なお、転送処理部３５がキャッシュ領域２１に割り当てられている物理アドレスの範囲とストレージ領域１１に割り当てられている物理アドレスの範囲とを区別して認識できるのであれば、アドレス管理テーブル２３をストレージ領域１１用とキャッシュ領域２１用とに分割して保持する必要はない。また、ＬＢＡと物理アドレスとの対応付けは予め決められたサイズ毎に行われるのではなく、ＬＢＡと物理アドレスとサイズとにより対応付けられるようにしてもよい。
【００２３】
また、転送処理部３５は、アドレス管理テーブル２３に基づいてストレージ領域１１内の空き領域を所定の単位領域（処理単位領域）毎に算出し、空き領域のサイズを処理単位領域毎に記述した空き領域情報２４を生成する。転送処理部３５は、例えばアドレス管理テーブル２３に変化があったときに空き領域情報２４の更新を実行する。
【００２４】
削除通知処理部３６は、削除通知バッファ２２が溢れた際、削除通知バッファ２２に蓄積されている削除通知を処理単位領域毎に分類した削除通知リスト２５を生成し、生成した削除通知リスト２５に基づいて削除通知にかかる削除指定領域を処理単位領域毎に順次無効化する。その際、削除通知処理部３６は、対象の処理単位領域の無効化対象外のデータ（有効データ）を他の処理単位領域の空き領域にコピーできるか否かを空き領域情報２４に基づいて判定して、コピーできるようであればコピーする。そして、削除通知処理部３６は、有効データをコピーした後、当該対象の処理単位領域全体を無効化する。削除通知処理部３６は、有効データをコピーした際、アドレス管理テーブル２３を更新する。
【００２５】
なお、ＮＡＮＤメモリ１０は、セクタより大きい、消去の単位となるブロックを複数備えて構成される。処理単位領域は、例えばＮ個（Ｎは１以上の自然数）のブロックにより構成されるようにするとよい。また、無効化するとは、ここではアドレス管理テーブル２３から該当するエントリを削除することをいうが、該当するエントリの物理アドレスまたはＬＢＡを無効なアドレスで書き換えて当該エントリを無効なものとすることによって削除指定領域を無効化するようにしてもよい。無効化された処理単位領領域が増えれば、ウェアレベリングで利用可能なブロックが増加し、また、データ書き込み時に利用可能なブロックが増加するため、ＳＳＤ１００のパフォーマンス向上が見込まれる。
【００２６】
次に、本発明の第１の実施の形態のＳＳＤ１００の動作を説明する。
【００２７】
図５は削除通知を受信したときのＳＳＤ１００の動作を説明するフローチャートである。図示するように、ホストＩ／Ｆコントローラ３２は、ホスト装置２００から削除通知コマンドを受信したとき（ステップＳ１）、当該受信した削除通知を削除通知バッファ２２に格納する（ステップＳ２）。削除通知を格納後、ホストＩ／Ｆコントローラ３２は、削除完了通知をホスト装置２００に返信し（ステップＳ３）、ステップＳ１に移行する。なお、削除完了通知の返信は削除通知を削除通知バッファ２２に格納する前に実行してもよい。
【００２８】
図６は、書き込み要求を受信したときのＳＳＤ１００の動作を説明するフローチャートである。図示するように、ホストＩ／Ｆコントローラ３２が書き込み要求を受信すると（ステップＳ１１）、当該書き込み要求は転送処理部３５に転送され、転送処理部３５は、削除通知バッファ２２を参照して、書き込み先にかかる削除通知が削除通知バッファ２２に格納されているか否かを判定する（ステップＳ１２）。書き込み先にかかる削除通知が削除通知バッファ２２に格納されていた場合（ステップＳ１２、Ｙｅｓ）、転送処理部３５は、当該削除通知を削除通知バッファ２２から削除し（ステップＳ１３）、書き込みデータをキャッシュ領域２１またはストレージ領域１１に格納する（ステップＳ１４）。
【００２９】
なお、削除通知に指定されている領域と書き込み要求により要求された書き込み先の領域とが一部重複している場合、転送処理部３５は、ステップＳ１３において当該削除通知を削除するのではなく、当該削除通知を重複している部分を除外ように当該削除通知の先頭ＬＢＡまたはセクタ数を書き換えるようにしてもよい。例えば、先頭ＬＢＡが0x10、セクタ数が２の削除通知が削除通知バッファ２２に格納されており、ＳＳＤ１００が先頭ＬＢＡが0x11、セクタ数が２の書き込み要求を受信した場合、0x11から１セクタ分の領域が重複領域となる。その場合、転送処理部３５は、先頭ＬＢＡが0x10でセクタ数が２の削除通知を先頭ＬＢＡが0x10でセクタ数が１の削除通知に書き換える。また、先頭ＬＢＡが0x10でセクタ数が９の削除通知が格納されており、先頭ＬＢＡが0x13でセクタ数が２の書き込み要求を受信した場合、先頭ＬＢＡが0x13から２セクタにわたる領域が重複領域となる。その場合、転送処理部３５は、当該削除通知を削除して、先頭ＬＢＡが0x10でセクタ数が３の削除通知と、先頭ＬＢＡが0x15でセクタ数が４の削除通知とを生成して、生成した２つの削除通知を削除通知バッファ２２に格納する。
【００３０】
ステップＳ１２において、書き込み先にかかる削除通知が削除通知バッファ２２に格納されていなかった場合（ステップＳ１２、Ｎｏ）、ステップＳ１４に移行して書き込みデータをキャッシュ領域２１またはストレージ領域１１に格納する（ステップＳ１４）。ステップＳ１４の後、転送処理部３５は、アドレス管理テーブル２３を更新して（ステップＳ１５）、ステップＳ１１へ移行する。
【００３１】
図７は、空き領域情報２４の更新にかかるＳＳＤ１００の動作を説明するフローチャートである。図示するように、転送処理部３５は、アドレス管理テーブル２３の更新を監視しており（ステップＳ２１）、アドレス管理テーブル２３の更新が行われたとき（ステップＳ２１、Ｙｅｓ）、空き領域情報２４を更新する（ステップＳ２２）。空き領域情報２４の更新後、ステップＳ２１に移行し、転送処理部３５は、アドレス管理テーブル２３の更新を監視する。
【００３２】
図８は、削除通知を処理するときのＳＳＤ１００の動作を説明するフローチャートである。図示するように、削除通知処理部３６は、削除通知バッファ２２が溢れたか否かを判断し（ステップＳ３１）、バッファ溢れが起こっていなければ（ステップＳ３１、Ｎｏ）、ステップＳ３１に移行してバッファ溢れが起こるまで判定処理を繰り返す。バッファ溢れが起こったとき（ステップＳ３１、Ｙｅｓ）、削除通知処理部３６は、削除通知バッファ２２から削除通知を１つ読み出して（ステップＳ３２）、アドレス管理テーブル２３を参照し、前記読み出した削除通知を当該削除通知にかかる削除指定領域が属する処理単位領域に分類する（ステップＳ３３）。分類結果は逐次削除通知リスト２５の分類先の処理単位領域毎のリストに追加される。そして、削除通知処理部３６は、全ての削除通知を読み出したか否かを判定し（ステップＳ３４）、まだ読み出していない削除通知がある場合（ステップＳ３４、Ｎｏ）、ステップＳ３２に移行してまだ読み出していない削除通知を１つ読み出す。このように、削除通知処理部３６は、ステップＳ３２〜ステップＳ３４のループ処理を実行することによって、削除通知リスト２５を作成する。なお、削除通知処理部３６は、キャッシュ領域２１内の領域が削除指定領域となっている削除通知は、キャッシュ領域２１に分類しておく。また、削除通知処理部３６は、削除通知を分類する時に、削除通知のＬＢＡアドレスを、アドレス管理テーブル２３に基づいて物理アドレスに変換する。
【００３３】
読み出していない削除通知がなくなった場合（ステップＳ３４、Ｙｅｓ）、削除通知処理部３６は、作成した削除通知リスト２５のうち、キャッシュ領域２１に分類されている削除通知を読み出して、キャッシュ領域２１上の削除指定領域を無効化する（ステップＳ３５）。そして、削除通知処理部３６は、削除通知リスト２５から１つの処理単位領域にかかる削除通知のリストを読み出して（ステップＳ３６）、読み出した削除通知に基づいてストレージ領域１１に対して無効化するストレージ領域無効化処理を実行する（ステップＳ３７）。
【００３４】
図９は、ストレージ領域無効化処理をさらに詳しく説明するフローチャートである。図示するように、削除通知処理部３６は、取得したリストにかかる処理単位領域（図９の説明において、当該処理単位領域という）の全領域が無効化対象になっているか否かを判定する（ステップＳ４１）。当該処理単位領域の全領域が無効化対象であった場合（ステップＳ４１、Ｙｅｓ）、削除通知処理部３６は、当該処理単位領域全体を無効化し（ステップＳ４２）、ストレージ領域無効化処理が終了となる。
【００３５】
図１０は、ステップＳ４２により処理単位領域全体が無効化される様子を説明する図である。図示するように、処理単位領域ａ〜ｄのうち、処理単位領域ｃ全体がデータが書き込まれた状態から、夫々処理単位領域ｃの一部を削除指定領域とした複数の削除通知１〜ｎにより処理単位領域ｃ全体が削除指定領域となっている場合、処理単位領域ｃ全体が一括して無効化される。これにより、複数の削除通知１〜ｎに対する削除指定領域を個別に無効化する場合に比して効率よく削除通知を処理することができるようになる。
【００３６】
ステップＳ４１において、当該処理単位領域の一部が無効化対象であった場合（ステップＳ４１、Ｎｏ）、削除通知処理部３６は、当該処理単位領域のうちの所定割合以下の領域が削除指定領域（すなわち無効化対象）であるか否かを判定する（ステップＳ４３）。当該処理単位領域のうちの所定割合以下の領域が無効化対象であった場合（ステップＳ４３、Ｙｅｓ）、削除通知処理部３６は、無効化対象の領域を無効化し（ステップＳ４４）、ストレージ領域無効化処理が終了となる。
【００３７】
ここで、ステップＳ４３の判定処理に使用する割合は、どのように定められるようにしてもよいが、例えば、図１１に示すような処理単位領域毎の空き領域の割合とパフォーマンスとの関係をシミュレーションなどにより求めて、パフォーマンスの許容レベルに応じた設定値を設定するようにしてよい。また、ウェアレベリングの効率と空き領域の割合との関係においてウェアレベリングの効率が許容レベルとなる割合を設定するようにしてもよい。
【００３８】
ステップＳ４３において、当該処理単位領域のうちの所定割合を越える領域が無効化対象であった場合（ステップＳ４３、Ｎｏ）、削除通知処理部３６は、空き領域情報２４を参照して、他の処理単位領域の空き領域に当該処理単位領域に格納されている無効化対象外のデータ（有効データ）をコピーする領域があるか否かを判定する（ステップＳ４５）。有効データをコピーする領域がない場合（ステップＳ４５、Ｎｏ）、ステップＳ４４に移行して、削除通知処理部３６は当該処理単位領域のうちの無効化対象の領域を無効化する。有効データをコピーする領域がある場合（ステップＳ４５、Ｙｅｓ）、削除通知処理部３６は、他の処理対象領域の空き領域に有効データをコピーして（ステップＳ４６）、当該処理単位領域全体を無効化して（ステップＳ４７）、ストレージ領域無効化処理が終了となる。
【００３９】
図１２は、ステップＳ４６とステップＳ４７とにより処理単位領域全体が無効化される様子を説明する図である。図示するように、処理単位領域ａ〜ｄのうち、処理単位領域ｃのうちの削除通知１〜４により無効化されて残る有効データのサイズが、処理単位領域ｂの空き領域のサイズ以下（本図では両者のサイズは等しいとしている）である場合において、当該有効データが処理単位領域ｂの空き領域にコピーされて処理単位領域ｃ全体が無効化されている。ステップＳ４６とステップＳ４７とを実行しないで単に無効化対象の領域を無効化した場合、空き領域が処理単位領域ｂおよびｃに合計４個の空き領域が残ることになり、結果としてＳＳＤ１００の転送効率を低下させることになるが、ステップＳ４６とステップＳ４７とを実行することにより本図に示すように１個の空き領域に纏められるので、空き領域の断片化による転送効率の低下を防ぐことができる。
【００４０】
図８に戻り、ストレージ領域無効化処理（ステップＳ３７）の後、削除通知処理部３６は、処理単位領域毎の削除通知を削除通知リスト２５から全て読み出したか否かを判定する（ステップＳ３８）。まだ読み出していない削除通知がある場合（ステップＳ３８、Ｎｏ）、ステップＳ３６に移行して、削除通知処理部３６は、まだ読み出していない削除通知の処理単位領域毎のリストを削除通知リスト２５から１つ読み出す。処理単位領域毎の削除通知を全て読み出した場合（ステップＳ３８、Ｙｅｓ）、削除通知処理部３６は、既に処理を行った削除通知を削除通知バッファ２２から削除し、既に処理を行った処理単位領域毎の削除通知のリストを削除通知リスト２５から削除する（ステップＳ３９）。ステップＳ３９の後、ステップＳ３１へ移行する。
【００４１】
図１３は、本発明の第１の実施の形態の効果のひとつを説明する図である。ここでは、第１の実施の形態（実施例）と、削除通知を受信する毎に削除通知を実行する場合（以下、比較例という）とを比較する。図示するように、比較例によれば、削除通知を受信すると、アドレス管理テーブルを書き換えてから削除完了通知を実行するため、通知の送受信にかかる転送速度低下分とアドレス管理テーブル２５の書き換えにかかる転送速度低下分を合わせた分だけ転送速度が低下する。転送速度の低下は、ホスト装置２００からの削除通知の発生頻度が増加に応じて大きくなる。これに対して、第１の実施の形態では、削除通知バッファ２２が溢れたときにまとめて削除通知を処理するので、主に通知の送受信が転送速度の低下を引き起こす。したがって、第１の実施の形態によれば、ホスト装置からの削除通知の発生頻度が高くなっても、比較例に比べて転送速度の低下を小さく抑えることができる。
【００４２】
なお、以上の説明においては、削除通知バッファ２２が削除通知で溢れたときに削除通知の処理を開始するとして説明したが、削除通知バッファ２２が溢れたときではなく、所定の量の削除通知が溜まったときに削除処理を開始するようにしてもよい。
【００４３】
また、ストレージ領域無効化処理において、有効データのコピー先の処理対象領域の選択については特に言及しなかったが、１つの処理対象領域の空き領域に有効データをコピーするようにしてもよいし、複数の処理対象領域の空き領域に分割してコピーするようにしてもよい。
【００４４】
このように、本発明の第１の実施の形態によれば、不要な書き込みデータを指定した削除通知を蓄積記憶する削除通知バッファ２２を備え、削除通知バッファ２２に蓄積記憶された複数の削除通知を一括して読み出して、読み出した複数の削除通知が夫々指定する書き込みデータをストレージ領域１１に含まれる処理単位領域毎に一括して無効化し、１つの処理単位領域にかかる書き込みデータを無効化する際、当該１つの処理単位領域が記憶している書き込みデータを無効化対象の書き込みデータを除いて別の処理単位領域にコピーして、コピー元の処理単位領域全体を無効化するように構成したので、複数の削除通知を一度に処理することができるので発生頻度が増加しても削除通知を逐次処理する場合に比べて転送速度の低下を抑えることができる。また、空き領域の断片化の発生が可及的に低減されることでＮＡＮＤメモリ１０に対するデータの読み書きにかかる時間の低下を防ぐことができる。また、空き領域の断片化の発生が可及的に低減されることで、ウェアレベリングを効率的に実行できるようになるので、結果としてメモリシステムの信頼性を向上させることができる。
【００４５】
また、ホストＩ／Ｆコントローラ３２は、削除通知を受信する毎に当該受信した削除通知を削除通知バッファ２２に記憶させるとともに削除完了通知をホスト装置２００に送信する、ように構成したので、削除通知を処理してから削除完了通知を送信するように構成した場合に比べてホスト装置２００は削除完了通知を受信するまでの時間が短いので、ホスト装置２００との間の転送効率を向上することができる。
【００４６】
また、処理単位領域は１つ以上のブロックで構成されるようにしているので、効率的に空きブロックを生成することができる。したがって、ウェアレベリングを効率的に実行できるようになり、結果としてメモリシステムの信頼性を向上することができる。
【００４７】
（第２の実施形態）
ＡＴＡ規格によれば、スタンバイモードに移行するためのＳＴＡＮＤＢＹコマンドが定義されている。第２の実施の形態によれば、ＳＴＡＮＤＢＹコマンドを受信したとき、削除通知の処理を実行する。
【００４８】
第２の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第２の実施の形態の削除通知処理部に符号４６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００４９】
図１４は、削除通知を処理するときの第２の実施の形態のＳＳＤの動作を説明するフローチャートである。図示するように、削除通知処理部４６は、ＳＴＡＮＤＢＹコマンドをホスト装置２００から受信したか否かを判定し（ステップＳ５１）、ＳＴＡＮＤＢＹコマンドを受信していなければ（ステップＳ５１、Ｎｏ）、ステップＳ５１に移行してＳＴＡＮＤＢＹコマンドを受信するまで判定処理を繰り返す。ＳＴＡＮＤＢＹコマンドを受信したとき（ステップＳ５１、Ｙｅｓ）、削除通知処理部４６は、削除通知バッファ２２から削除通知を１つ読み出す（ステップＳ５２）。以降、削除通知処理部４６は、ステップＳ５２〜ステップＳ５９においてステップＳ３２〜ステップＳ３９における削除通知処理部３６と同等の処理を実行する。
【００５０】
なお、ＡＴＡ規格によれば、パーシャル（ＰＡＲＴＩＡＬ）やスランバー（ＳＬＵＭＢＥＲ）という低消費電力モードが規格化されている。ホスト装置２００は、一定時間アクセスを行わない場合に、スタンバイモードや低消費電力モード（待機状態と総称）に移行するコマンドを発行する。第２の実施の形態は、ＳＴＡＮＤ  ＢＹコマンドだけでなく、これらの待機状態に移行するコマンドをトリガとして削除通知の処理を実行するようにしてよい。
【００５１】
このように、本発明の第２の実施の形態によれば、ホスト装置２００からスタンバイ状態に移行する要求を受信した場合に削除通知の処理を開始するようにしたので、ホスト装置２００との間でデータの転送が実行されていないときに削除通知の処理をまとめて実行するので、結果としてホスト装置２００との間の転送効率を向上させることができる。
【００５２】
（第３の実施形態）
第３の実施の形態によれば、ホスト装置２００からの要求により最後にデータの読み書きを行ってから一定の時間が経過したとき、削除通知の処理を実行する。なお、第３の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第３の実施の形態の削除通知処理部に符号５６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００５３】
削除通知処理部５６は、転送処理部３５がホスト装置２００からの要求に応じた読み書きを実行してからの経過時間をカウントし、一定時間経過後、削除通知バッファ２２に蓄積された削除通知の処理を実行する。
【００５４】
図１５は、削除通知を処理するときの第３の実施の形態のＳＳＤの動作を説明するフローチャートである。図示するように、削除通知処理部５６は、最後の読み書き（すなわちホスト装置２００からの最後のアクセス）から次の読み書きを実行することなく一定の時間が経過したか否かを判定し（ステップＳ６１）、当該一定時間が経過していないとき（ステップＳ６１、Ｎｏ）、ステップＳ６１に移行して当該一定時間が経過するまで判定処理を繰り返す。最後の読み書きから次の読み書きを実行することなく一定の時間が経過した場合（ステップＳ６１、Ｙｅｓ）、削除通知処理部５６は、削除通知バッファ２２から削除通知を１つ読み出す（ステップＳ６２）。以降、削除通知処理部５６は、ステップＳ６２〜ステップＳ６９においてステップＳ３２〜ステップＳ３９における削除通知処理部３６と同等の処理を実行する。
【００５５】
このように、本発明の第３の実施の形態によれば、ホスト装置２００から一定時間以上アクセスがない場合に削除通知の処理を開始するようにしたので、ホスト装置２００との間でデータの転送が実行されていないときに削除通知の処理をまとめて実行するので、結果としてホスト装置２００との間の転送効率を向上させることができる。
【００５６】
（第４の実施形態）
第１の実施の形態のようにアドレス管理テーブルに代表される管理情報やキャッシュを揮発性メモリであるＲＡＭに置くシステムでは、電源オフ時などにＲＡＭの内容をＮＡＮＤメモリなどに退避させて不揮発化する処理が実行される。第４の実施の形態のＳＳＤによれば、ＲＡＭの内容の退避が行われるタイミングで削除通知の処理を実行する。なお、第４の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第４の実施の形態の削除通知処理部に符号６６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００５７】
削除通知処理部６６は、演算装置３１内の退避処理開始のフラグを監視し、当該フラグが立ったとき、削除通知バッファ２２に蓄積された削除通知の処理を実行する。
【００５８】
図１６は、削除通知を処理するときの第４の実施の形態のＳＳＤの動作を説明するフローチャートである。図示するように、削除通知処理部６６は、退避処理開始のフラグを監視し、当該フラグが立っているか否かを判定する（ステップＳ７１）。当該フラグが経っていない場合（ステップＳ７１、Ｎｏ）、ステップＳ７１に移行してフラグが立つまで判定処理を繰り返す。退避処理開始のフラグが立っている場合（ステップＳ７１、Ｙｅｓ）、削除通知処理部６６は、削除通知バッファ２２から削除通知を１つ読み出す（ステップＳ７２）。以降、削除通知処理部６６は、ステップＳ７２〜ステップＳ７９においてステップＳ３２〜ステップＳ３９における削除通知処理部３６と同等の処理を実行する。
【００５９】
このように、本発明の第４の実施の形態によれば、アドレス管理テーブル２３の退避が行われる際、削除通知バッファ２２からの削除通知の一括読み出しを実行する、ように構成した。
【００６０】
（第５の実施形態）
第５の実施の形態のＳＳＤによれば、最後に退避処理を実行してから一定時間が経過したとき、削除通知の処理を実行する。なお、第５の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第５の実施の形態の削除通知処理部に符号７６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００６１】
削除通知処理部７６は、退避処理を実行してからの経過時間をカウントし、前回退避処理を実行してから一定時間が経過したとき、削除通知バッファ２２に蓄積された削除通知の処理を実行する。
【００６２】
図１７は、削除通知を処理するときの第５の実施の形態のＳＳＤの動作を説明するフローチャートである。図示するように、削除通知処理部７６は、最後の削除通知の処理を実行してから一定の時間が経過したか否かを判定し（ステップＳ８１）、当該一定時間が経過していないとき（ステップＳ８１、Ｎｏ）、ステップＳ８１に移行して当該一定時間が経過するまで判定処理を繰り返す。最後の削除通知の処理を実行してから一定の時間が経過した場合（ステップＳ８１、Ｙｅｓ）、削除通知処理部７６は、削除通知バッファ２２から削除通知を１つ読み出す（ステップＳ８２）。以降、削除通知処理部７６は、ステップＳ８２〜ステップＳ８９においてステップＳ３２〜ステップＳ３９における削除通知処理部３６と同等の処理を実行する。
【００６３】
このように、本発明の第５の実施の形態によれば、最後に書き込みデータの無効化を行ってから一定時間が経過した場合に削除通知バッファ２２からの削除通知の一括読み出しを実行する、ように構成した。
【００６４】
なお、第１〜第５の実施の形態は、削除通知の一括読み出し（すなわち削除通知の処理）を行うためのトリガ条件が夫々異なっている。第１〜第５の実施の形態において説明した夫々のトリガ条件のうちの複数を組み合わせて構成するようにしてもよい。
【００６５】
（第６の実施形態）
第６の実施の形態のＳＳＤによれば、処理対象領域に含まれる無効化対象の領域が少ない場合、当該無効化対象の無効化を行わないようにした。なお、第６の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第６の実施の形態の削除通知処理部に符号８６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００６６】
図１８は、第６の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。図示するように、削除通知処理部８６は、取得したリストにかかる処理単位領域（図１８の説明において、当該処理単位領域という）の全領域が無効化対象になっているか否かを判定する（ステップＳ９１）。当該処理単位領域の全領域が無効化対象であった場合（ステップＳ９１、Ｙｅｓ）、削除通知処理部８６は、当該処理単位領域全体を無効化し（ステップＳ９２）、ストレージ領域無効化処理が終了となる。
【００６７】
ステップＳ９１において、当該処理単位領域の一部が無効化対象であった場合（ステップＳ９１、Ｎｏ）、削除通知処理部８６は、当該処理単位領域のうちの所定割合以下の領域が削除指定領域（すなわち無効化対象）であるか否かを判定する（ステップＳ９３）。当該処理単位領域のうちの所定割合以下の領域が無効化対象であった場合（ステップＳ９３、Ｙｅｓ）、ストレージ領域無効化処理が終了となる。なお、ステップＳ９３の判定処理に使用する割合は、第１の実施の形態と同様の基準で定められるようにするとよい。
【００６８】
ステップＳ９３において、当該処理単位領域のうちの所定割合を越える領域が無効化対象であった場合（ステップＳ９３、Ｎｏ）、削除通知処理部８６は、空き領域情報２４を参照して、他の処理単位領域の空き領域に当該処理単位領域に格納されている無効化対象外のデータ（有効データ）をコピーする領域があるか否かを判定する（ステップＳ９４）。有効データをコピーする領域がない場合（ステップＳ９４、Ｎｏ）、削除通知処理部８６は当該処理単位領域のうちの無効化対象の領域を無効化する（ステップＳ９５）。有効データをコピーする領域がある場合（ステップＳ９４、Ｙｅｓ）、削除通知処理部８６は、他の処理対象領域の空き領域に有効データをコピーして（ステップＳ９６）、当該処理単位領域全体を無効化して（ステップＳ９７）、ストレージ領域無効化処理が終了となる。
【００６９】
このように、本発明の第６の実施の形態によれば、無効化領域のサイズ（すなわち無効化対象の書き込みデータのサイズ）が処理単位領域のサイズのうちの所定割合以下である場合、当該複製対象の書き込みデータの複製および無効化対象の書き込みデータの無効化をスキップする、ように構成したので、書き込みデータの無効化にかかるオーバーヘッドを低減することができ、結果としてメモリシステムの転送効率を向上させることができる。
【００７０】
なお、以上の説明においては、第１の実施の形態に第６の実施の形態を適用した例について説明したが、当該第６の実施の形態は第２〜第５の実施の形態にも適用できることがいうまでもない。
【００７１】
（第７の実施形態）
第７の実施の形態のＳＳＤによれば、有効データをコピーする領域が確保できない場合に無効化を行わないようにした。なお、第７の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第７の実施の形態の削除通知処理部に符号９６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００７２】
図１９は、第７の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。図示するように、削除通知処理部９６は、取得したリストにかかる処理単位領域（図１９の説明において、当該処理単位領域という）の全領域が無効化対象になっているか否かを判定する（ステップＳ１０１）。当該処理単位領域の全領域が無効化対象であった場合（ステップＳ１０１、Ｙｅｓ）、削除通知処理部９６は、当該処理単位領域全体を無効化し（ステップＳ１０２）、ストレージ領域無効化処理が終了となる。
【００７３】
ステップＳ１０１において、当該処理単位領域の一部が無効化対象であった場合（ステップＳ１０１、Ｎｏ）、削除通知処理部９６は、当該処理単位領域のうちの所定割合以下の領域が無効化対象であるか否かを判定する（ステップＳ１０３）。当該処理単位領域のうちの所定割合以下の領域が無効化対象であった場合（ステップＳ１０３、Ｙｅｓ）、削除通知処理部９６は当該処理単位領域のうちの無効化対象の領域を無効化し（ステップＳ１０４）、ストレージ領域無効化処理が終了となる。なお、ステップＳ１０３の判定処理に使用する割合は、第１の実施の形態と同様の基準で定められるようにするとよい。
【００７４】
ステップＳ１０３において、当該処理単位領域のうちの所定割合を越える領域が無効化対象であった場合（ステップＳ１０３、Ｎｏ）、削除通知処理部９６は、空き領域情報２４を参照して、他の処理単位領域の空き領域に当該処理単位領域に格納されている無効化対象外のデータ（有効データ）をコピーする領域があるか否かを判定する（ステップＳ１０５）。有効データをコピーする領域がない場合（ステップＳ１０５、Ｎｏ）、ストレージ領域無効化処理が終了となる。有効データをコピーする領域がある場合（ステップＳ１０５、Ｙｅｓ）、削除通知処理部９６は、他の処理対象領域の空き領域に有効データをコピーして（ステップＳ１０６）、当該処理単位領域全体を無効化して（ステップＳ１０７）、ストレージ領域無効化処理が終了となる。
【００７５】
このように、本発明の第７の実施の形態によれば、他の単位領域に複製対象の書き込みデータを複製できる空き領域がない場合、当該複製対象の書き込みデータの複製および無効化対象の書き込みデータの無効化をスキップする、ように構成したので、複製対象の書き込みデータを複製できる空き領域がない場合に書き込みデータの無効化にかかるオーバーヘッドを低減することができ、結果としてメモリシステムの転送効率を向上させることができる。
【００７６】
なお、以上の説明においては、第１の実施の形態に第７の実施の形態を適用した例について説明したが、当該第７の実施の形態は第２〜第６の実施の形態にも適用できることがいうまでもない。
【００７７】
（第８の実施形態）
第８の実施の形態のＳＳＤによれば、ストレージ領域１１の空き領域に余裕がある場合には無効化しないようにして無効化にかかるオーバーヘッドを低減し、空き領域に余裕がない場合には無効化を行うようにして無効データによる空き領域の圧迫を低減するようにした。なお、第８の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第８の実施の形態の削除通知処理部に符号１０６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００７８】
図２０は、第８の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。図示するように、削除通知処理部１０６は、取得したリストにかかる処理単位領域（図２０の説明において、当該処理単位領域という）の全領域が無効化対象になっているか否かを判定する（ステップＳ１１１）。当該処理単位領域の全領域が無効化対象であった場合（ステップＳ１１１、Ｙｅｓ）、削除通知処理部１０６は、当該処理単位領域全体を無効化し（ステップＳ１１２）、ストレージ領域無効化処理が終了となる。
【００７９】
ステップＳ１１１において、当該処理単位領域の一部が無効化対象であった場合（ステップＳ１１１、Ｎｏ）、削除通知処理部１０６は、当該処理単位領域のうちの所定割合以下の領域が無効化対象であるか否かを判定する（ステップＳ１１３）。なお、ステップＳ１１３の判定処理に使用する割合は、第１の実施の形態と同様の基準で定められるようにするとよい。
【００８０】
当該処理単位領域のうちの所定割合以下の領域が無効化対象であった場合（ステップＳ１１３、Ｙｅｓ）、削除通知処理部１０６は、空き領域情報２４を参照して、ストレージ領域１１に対する空き領域の割合が所定割合以下であるか否かを判定する（ステップＳ１１４）。なお、ステップＳ１１４の判定で用いられる割合は、どのように定められてもよい。空き領域の割合が所定割合を越える場合（ステップＳ１１４、Ｎｏ）、ストレージ領域無効化処理が終了となる。空き領域の割合が所定割合以下である場合（ステップＳ１１４、Ｙｅｓ）、削除通知処理部１０６は、当該処理単位領域のうちの無効化対象の領域を無効化し（ステップＳ１１５）、ストレージ領域無効化処理が終了となる。
【００８１】
ステップＳ１１３において、当該処理単位領域のうちの所定割合を越える領域が無効化対象であった場合（ステップＳ１１３、Ｎｏ）、削除通知処理部１０６は、空き領域情報２４を参照して、他の処理単位領域の空き領域に当該処理単位領域に格納されている無効化対象外のデータ（有効データ）をコピーする領域があるか否かを判定する（ステップＳ１１６）。有効データをコピーする領域がない場合（ステップＳ１１６、Ｎｏ）、ステップＳ１１５に移行して、削除通知処理部１０６は当該処理単位領域のうちの無効化対象の領域を無効化する。有効データをコピーする領域がある場合（ステップＳ１１６、Ｙｅｓ）、削除通知処理部１０６は、他の処理対象領域の空き領域に有効データをコピーして（ステップＳ１１７）、当該処理単位領域全体を無効化して（ステップＳ１１８）、ストレージ領域無効化処理が終了となる。
【００８２】
このように、本発明の第８の実施の形態によれば、ストレージ領域１１の空き領域に余裕があるか否かに応じて書き込みデータを無効化するか否かを決定するようにしたので、空き領域に余裕がある場合には無効化にかかるオーバーヘッドを低減し、空き領域に余裕がない場合には無効化を行うことができるので、メモリシステムの転送効率を向上させることができる。
【００８３】
なお、以上の説明においては、第６の実施の形態に第８の実施の形態を適用した例について説明したが、第７の実施の形態に適用するようにしてもよい。
【００８４】
（第９の実施形態）
第１〜第８の実施の形態のストレージ領域無効化処理においては、処理単位領域のうちの所定割合を越える領域が無効化対象であるか否かの判定ステップ（ステップＳ４３等）を経た後、他の処理単位領域の空き領域に有効データをコピーする領域があるか否かの判定ステップ（ステップＳ４５等）に移行した。第９の実施の形態では、前者の判定ステップにおける判定に用いる領域を、無効化対象の領域ではなく、無効化対象の領域とすでに無効となっている領域の合計の領域とする。すなわち、第９の実施の形態では、無効化後に残る有効データの割合が小さいとき、後者の判定ステップに移行するようにした。
【００８５】
第９の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第９の実施の形態の削除通知処理部に符号１１６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００８６】
図２１は、第９の実施の形態のＳＳＤにおけるストレージ領域無効化処理を説明するフローチャートである。図示するように、削除通知処理部１１６は、取得したリストにかかる処理単位領域（図２１の説明において、当該処理単位領域という）の全領域が無効化対象になっているか否かを判定する（ステップＳ１２１）。当該処理単位領域の全領域が無効化対象であった場合（ステップＳ１２１、Ｙｅｓ）、削除通知処理部１１６は、当該処理単位領域全体を無効化し（ステップＳ１２２）、ストレージ領域無効化処理が終了となる。
【００８７】
ステップＳ１２１において、当該処理単位領域の一部が無効化対象であった場合（ステップＳ１２１、Ｎｏ）、削除通知処理部１１６は、無効化対象とすでに無効となっている領域の合計の領域の割合が当該処理単位領域のうちの所定割合以下であるか否かを判定する（ステップＳ１２３）。なお、ステップＳ１２３の判定処理に使用する割合は、第１の実施の形態と同様の基準で定められるようにするとよい。無効化対象の領域とすでに無効となっている領域の合計の領域の割合が当該処理単位領域のうちの所定割合以下であった場合（ステップＳ１２３、Ｙｅｓ）、削除通知処理部１１６は、当該処理単位領域のうちの無効化対象の領域を無効化し（ステップＳ１２４）、ストレージ領域無効化処理が終了となる。
【００８８】
ステップＳ１２３において、無効化対象の領域とすでに無効となっている領域の合計の領域の割合が当該処理単位領域のうちの所定割合を越える場合（ステップＳ１２３、Ｎｏ）、削除通知処理部１１６は、空き領域情報２４を参照して、他の処理単位領域の空き領域に当該処理単位領域に格納されている無効化対象外のデータ（有効データ）をコピーする領域があるか否かを判定する（ステップＳ１２５）。有効データをコピーする領域がない場合（ステップＳ１２５、Ｎｏ）、ステップＳ１２４に移行して、削除通知処理部１１６は当該処理単位領域のうちの無効化対象の領域を無効化する。有効データをコピーする領域がある場合（ステップＳ１２５、Ｙｅｓ）、削除通知処理部１１６は、他の処理対象領域の空き領域に有効データをコピーして（ステップＳ１２６）、当該処理単位領域全体を無効化して（ステップＳ１２７）、ストレージ領域無効化処理が終了となる。
【００８９】
このように、書き込みデータの複製および処理単位領域全体の無効化を実行するか否かの判定に、無効化対象の領域の割合ではなく、無効化対象の領域とすでに無効となっている領域の合計の領域のサイズの処理単位領域に対する割合を用いることもできる。
【００９０】
（第１０の実施形態）
第１０の実施の形態によれば、ＮＡＮＤメモリの寿命をできるだけ延ばすために、消去回数が所定の値に達した処理単位領域についてはストレージ領域無効化処理を行わないようにする。
【００９１】
第１０の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第１０の実施の形態の削除通知処理部に符号１２６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００９２】
図２２は、第１０の実施の形態のＳＳＤ１００の、削除通知を処理するときの動作を説明するフローチャートである。図示するように、削除通知処理部１２６は、ステップＳ１３１〜ステップＳ１３６において、ステップＳ３１〜ステップＳ３６における削除通知処理部３６と同等の処理を実行する。そして、削除通知処理部１２６は、ステップＳ１３６において削除通知リスト２５から１つの処理単位領域にかかる削除通知のリストを読み出した後、削除通知処理部１２６は、ウェアレベリングを行う転送処理部３５に問い合わせて取得した削除通知のリストにかかる処理単位領域の累積消去回数が所定の値以下であるか否かを判定する（ステップＳ１３７）。ステップＳ１３７の判断におけるしきい値はどのように定めるようにしてもよい。累積消去回数が所定の値を越える場合（ステップＳ１３７、Ｎｏ）、当該処理単位領域にかかるストレージ領域無効化処理がスキップされてステップＳ１３６に移行する。累積消去回数が所定の値以下であった場合（ステップＳ１３７、Ｙｅｓ）、削除通知処理部１２６は、ストレージ領域無効化処理を実行する（ステップＳ１３８）。以降、ステップＳ１３９〜ステップＳ１４０においてステップＳ３８〜ステップＳ３９と同等の処理が実行される。
【００９３】
このように、本発明の第１０の実施の形態によれば、消去回数が所定の値に達した処理単位領域についてはストレージ領域無効化処理を行わないようにしたので、ＮＡＮＤメモリ１０の寿命を延ばすことができる。
【００９４】
なお、以上の説明においては、第１の実施の形態に第１０の実施の形態を適用した例について説明したが、当該第１０の実施の形態は第２〜第９の実施の形態にも適用できることがいうまでもない。
【００９５】
（第１１の実施形態）
本発明の第１１の実施の形態によれば、所定のサイズ以下の領域を削除対象領域とする削除通知の無効化を行わないことによって無効化にかかるオーバーヘッドを低減するようにした。
【００９６】
第１１の実施の形態のＳＳＤの構成は削除通知処理部の機能が異なるだけで他は第１の実施の形態と同等であるので、第１１の実施の形態の削除通知処理部に符号１３６を付し、他の構成要素に第１の実施の形態と同等の符号を付して説明する。
【００９７】
図２３は、第１１の実施の形態のＳＳＤ１００の、削除通知を処理するときの動作を説明するフローチャートである。図示するように、削除通知処理部１３６は、ステップＳ１５１〜ステップＳ１５６において、ステップＳ３１〜ステップＳ３６における削除通知処理部３６と同等の処理を実行する。そして、削除通知処理部１３６は、ステップＳ１５６において削除通知リスト２５から１つの処理単位領域にかかる削除通知のリストを読み出した後、削除通知処理部１３６は、取得したリストのうち、所定サイズ以下の領域を削除対象領域とする削除通知を削除する（ステップＳ１５７）。
【００９８】
ここで、ステップＳ１５７において使用するサイズのしきい値はどのように決定されてもよい。例えば、ＳＳＤ１００が受信する通知処理の削除処理対象のセクタ数を横軸とした通知処理数の分布をシミュレーションなどにより求め、当該分布における２σに相当するセクタ数をしきい値とするようにしてもよい。なお、ＳＳＤ１００に削除処理対象のセクタ数を蓄積記録しておき、記録したセクタ数に基づいて上記分布を求めて動的に当該しきい値を求めるように構成してもよい。
【００９９】
ステップＳ１５７の後、削除通知処理部１３６は、ストレージ領域無効化処理を実行する（ステップＳ１５８）。以降、ステップＳ１５９〜ステップＳ１６０においてステップＳ３８〜ステップＳ３９と同等の処理が実行される。
【０１００】
このように、本発明の第１１の実施の形態によれば、所定のサイズ以下の領域を削除対象領域とする削除通知の無効化を行わないことによって無効化にかかるオーバーヘッドを低減し、メモリシステムの転送効率を向上させることができる。
【０１０１】
なお、以上の説明においては、第１の実施の形態に第１１の実施の形態を適用した例について説明したが、当該第１１の実施の形態は第２〜第１０の実施の形態にも適用できることがいうまでもない。
【０１０２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０３】
１０  ＮＡＮＤメモリ、１１  ストレージ領域、２０  ＲＡＭ、２１  キャッシュ領域、２２  削除通知バッファ、２３  アドレス管理テーブル、２４  空き領域情報、２５  削除通知リスト、３０  ドライブ制御回路、３１  演算装置、３２  ホストＩ／Ｆコントローラ、３３  ＲＡＭコントローラ、３４  ＮＡＮＤコントローラ、３５  転送処理部、３６、４６、５６、６６、７６、８６、９６、１０６、１１６、１２６、１３６  削除通知処理部、１００  ＳＳＤ、２００  ホスト装置。
【図１】
2012123499.tif 000003
【図２】
2012123499.tif 000004
【図３】
2012123499.tif 000005
【図４】
2012123499.tif 000006
【図５】
2012123499.tif 000007
【図６】
2012123499.tif 000008
【図７】
2012123499.tif 000009
【図８】
2012123499.tif 000010
【図９】
2012123499.tif 000011
【図１０】
2012123499.tif 000012
【図１１】
2012123499.tif 000013
【図１２】
2012123499.tif 000014
【図１３】
2012123499.tif 000015
【図１４】
2012123499.tif 000016
【図１５】
2012123499.tif 000017
【図１６】
2012123499.tif 000018
【図１７】
2012123499.tif 000019
【図１８】
2012123499.tif 000020
【図１９】
2012123499.tif 000021
【図２０】
2012123499.tif 000022
【図２１】
2012123499.tif 000023
【図２２】
2012123499.tif 000024
【図２３】
2012123499.tif 000025