(57)【要約】【課題】  電源が遮断されてもデータが残っている不揮発性メモリをキャッシュとして使用した不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法を提供する。【解決手段】主記録媒体、主記録媒体のキャッシュとして使われ、データの固定如何によって固定領域及び非固定領域を含む不揮発性メモリ、不揮発性メモリに割当てられる物理ブロックを仮想アドレスによって管理するブロック管理部と、を備える。【選択図】      図２
2007179545.tif 000002
【特許請求の範囲】
【請求項１】
主記録媒体と、
前記主記録媒体のキャッシュとして使われ、データの固定如何によって固定領域及び非固定領域を含む不揮発性メモリと、
前記不揮発性メモリに割当てられる物理ブロックを仮想アドレスによって管理するブロック管理部と、を備える不揮発性メモリをキャッシュとして用いる保存装置。
【請求項２】
前記ブロック管理部は、
前記不揮発性メモリに物理ブロックを割当てるブロック割当部と、
前記割当てられた物理ブロックを回収するブロック回収部と、
バッドブロックを管理するバッドブロック管理部と、
電源遮断時に停電復旧のための停電復旧部と、
前記物理ブロック番号と前記物理ブロック番号に割当てられた仮想ブロック番号とのマッピング関係を示すブロックマッピングテーブルを管理するブロックマッピングテーブル管理部と、
前記割当てられた物理ブロックについての割当ブロックリスト及び空いている物理ブロックについての自由ブロックリストを保存するリスト保存部と、を備える請求項１に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項３】
前記ブロック割当部は、前記自由ブロックリストで最も前に位置した物理ブロックを前記固定領域及び前記非固定領域に割当てる請求項２に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項４】
前記自由ブロックリストは、各物理ブロックが使用頻度の少ない順に整列される請求項３に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項５】
前記ブロック割当部は、前記割当てられた物理ブロックを前記割当ブロックリストの最後に位置させる請求項３に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項６】
前記ブロックマッピングテーブル管理部は、前記割当ブロックリスト及び前記自由ブロックリストに含まれた物理ブロック番号に相互逆方向から仮想ブロック番号を割当てたブロックマッピングテーブルを保存し、前記割当ブロックリストの最後に位置した物理ブロック番号に仮想ブロック番号を割当てて前記ブロックマッピングテーブルを更新する請求項５に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項７】
前記ブロック回収部は、前記割当ブロックリスト内の各物理ブロックから有効ページ数を算出し、前記算出結果、前記有効ページ数の最も少ない物理ブロックからブロック回収を行う請求項２に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項８】
前記ブロック回収部は、前記自由ブロックリストの物理ブロックを前記割当ブロックリストの最後に位置させ、前記ブロック回収を行う物理ブロック内の有効ページを前記最後に位置された物理ブロックに移動させる請求項７に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項９】
前記ブロック回収部は、前記有効ページがすべて移動されて空いている物理ブロックを使用頻度によって前記自由ブロックリストに追加する請求項８に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項１０】
前記バッドブロック管理部は、前記割当ブロックリスト内でバッドブロックが発生した物理ブロックのデータを前記自由ブロックリストから新たに割当てられた物理ブロックに移動させ、前記バッドブロックが発生した物理ブロックは割当てから除外させる請求項２に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項１１】
前記バッドブロック管理部は、前記バッドブロックが発生された物理ブロックの位置に前記自由ブロックリストから新たに割当てられた物理ブロックを挿入し、前記ブロックマッピングテーブル管理部は、前記バッドブロックが発生した物理ブロック番号に割当てられた仮想ブロック番号を前記挿入された物理ブロック番号に割当てる請求項１０に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項１２】
前記停電復旧部は、電源遮断時に前記割当ブロックリストを抽出して前記ブロックマッピングテーブルを復旧する請求項２に記載の不揮発性メモリをキャッシュとして用いる保存装置。
【請求項１３】
主記録媒体のキャッシュとして使われる不揮発性メモリの領域をデータの固定如何によって固定領域及び非固定領域に区分するステップと、
前記固定領域及び前記非固定領域に割当てられる物理ブロックを各物理ブロックに割当てられる仮想アドレスによって管理するステップと、を含む不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１４】
前記物理ブロックを管理するステップは、
前記不揮発性メモリに物理ブロックを割当てるステップと、
前記割当てられた物理ブロックを回収するステップと、
バッドブロックを管理するステップと、
電源遮断時に停電復旧を行うステップと、
前記物理ブロック番号と前記物理ブロック番号に割当てられた仮想ブロック番号とのマッピング関係を示すブロックマッピングテーブルを管理するステップと、
前記割当てられた物理ブロックについての割当ブロックリスト及び空いている物理ブロックについての自由ブロックリストを保存するステップと、を含む請求項１３に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１５】
前記ブロックを割当てるステップは、前記自由ブロックリストで最も前に位置した物理ブロックを前記固定領域及び前記非固定領域に割当てるステップを含む請求項１４に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１６】
前記自由ブロックリストは、各物理ブロックの使用頻度の少ない順に整列される請求項１５に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１７】
前記ブロックを割当てるステップは、前記割当てられた物理ブロックを前記割当ブロックリストの最後に位置させるステップを含む請求項１５に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１８】
前記ブロックマッピングテーブルを管理するステップは、
前記割当ブロックリスト及び前記自由ブロックリストに含まれた物理ブロック番号に相互逆方向から仮想ブロック番号を割当てたブロックマッピングテーブルを保存するステップと、
前記割当ブロックリストの最後に位置した物理ブロック番号に仮想ブロック番号を割当てて、前記ブロックマッピングテーブルを更新するステップと、を含む請求項１７に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項１９】
前記ブロックを回収するステップは、
前記割当ブロックリスト内の各物理ブロックから有効ページ数を算出するステップと、
前記算出結果、前記有効ページ数の最も少ない物理ブロックからブロック回収を行うステップと、を含む請求項１４に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項２０】
前記ブロックを回収するステップは、前記自由ブロックリストの物理ブロックを前記割当ブロックリストの最後に位置させ、前記ブロック回収を行う物理ブロック内の有効ページを前記最後に位置された物理ブロックに移動させるステップを含む請求項１９に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項２１】
前記ブロックを回収するステップは、前記有効ページがすべて移動されて空いている物理ブロックを使用頻度によって前記自由ブロックリストに追加するステップを含む請求項２０に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項２２】
前記バッドブロックを管理するステップは、前記割当ブロックリスト内でバッドブロックが発生した物理ブロックのデータを、前記自由ブロックリストから新たに割当てられた物理ブロックに移動させ、前記バッドブロックが発生した物理ブロックは割当てから除外させるステップを含む請求項１４に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項２３】
前記バッドブロックを管理するステップは、
前記バッドブロックが発生された物理ブロックの位置に前記自由ブロックリストから新たに割当てられた物理ブロックを挿入するステップと、
前記バッドブロックが発生した物理ブロック番号に割当てられた仮想ブロック番号を前記挿入された物理ブロック番号に割当てるステップと、を含む請求項２２に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【請求項２４】
前記停電復旧を行うステップは、電源遮断時に前記割当ブロックリストを抽出して前記ブロックマッピングテーブルを復旧するステップを含む請求項１４に記載の不揮発性メモリをキャッシュとして用いる保存装置の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法に係り、さらに詳細には、電源が遮断されてもデータが残っている不揮発性メモリをキャッシュとして使用した不揮発性メモリをキャッシュとして使用する保存装置及びその管理方法に関する。
【背景技術】
【０００２】
一般的な保存装置１０は、図１のように、ホスト１１、データバッファ１２及び主記録媒体１３を備え得る。この際、ホスト１１は、ユーザの命令によって主記録媒体１３とデータを送受信する役割を行い、データバッファ１２は、ホスト１１と主記録媒体１３との速度差を緩衝させる役割を行う。
【０００３】
言い換えれば、ホスト１１から伝送されたデータは、主記録媒体１３に記録されるまで、データバッファ１２に保存され、主記録媒体１３から伝送されたデータはホスト１１に伝送されるまで、データバッファ１２に保存される。このような保存装置１０においてデータバッファ１２は一般的に揮発性メモリで構成されているために、保存装置１０に供給される電源が遮断される場合、データバッファ２０に存在するデータはいずれも消える。
【０００４】
一方、保存装置１０は、アクセス効率を高めるためにキャッシュを使用する。このようなキャッシュは、主記録媒体１３に保存されるデータの一部が保存されており、ホスト１１がキャッシュに保存されたデータを読み取るときには、主記録媒体１３をアクセスする必要がないためにアクセス効率が高まる。
【０００５】
しかし、データバッファ１２は、電源が遮断される場合、データがいずれも消えてしまうので、その大きさを大きくしてもキャッシュとして用いるのに難点がある。また、主記録媒体１３に常に電源が供給されねばならないので、消費電力を減少させるのに限界がある。
【０００６】
したがって、最近には保存装置１０に不揮発性メモリをキャッシュとして使用してホスト１１が不揮発性メモリに保存されたデータを読出し／書込みする時は、主記録媒体１３の電源を遮断して消費電力が減少可能にしている。
【０００７】
しかし、不揮発性メモリを保存装置１０のキャッシュとして使用する場合、データの固定如何、すなわち、所定データが不揮発性メモリに常に固定される固定領域と頻繁に変更される非固定領域についてのデータを効果的に管理し、突然の電源遮断からデータを安全に保護するための方案が要求されている。また、主記録媒体１３への電源の供給時間を最小化させるためのブロック回収方案及び不揮発性メモリで各物理ブロックに対する使用頻度を考慮して不揮発性メモリの寿命を延長させうる方案などが要求されている。
【０００８】
特許文献１は、アドレス指定可能なフラッシュメモリシステムにおいて、ブロックで組み合わせられた前記フラッシュメモリ指定位置を円形シーケンス（物理セクターアドレスの最下位と最上位の２ヶ所で記録と削除とが起こる）によって周期的にブロック指定削除を行うことによって、フラッシュメモリのＷｅａｒ  ｌｅｖｅｌｓの一貫性を保持しうるシステムを開示しているが、固定領域及び非固定領域についてのデータを効果的に管理し、突然の電源遮断によるデータ保護し、ブロック回収及び使用頻度調節による寿命延長についての方案は提案されていない。
【特許文献１】日本特許公開第２００３−２５６２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、キャッシュとして使われる不揮発性メモリの領域をデータの固定如何によって固定領域及び非固定領域として管理し、ブロック回収を通じてブロックの使用頻度を均等化しうる不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法を提供するのにその目的がある。
【００１０】
また、本発明は、突然の電源遮断時に復旧を容易に行える不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法を提供するのにその目的がある。
【００１１】
本発明の目的は、以上で言及した目的に制限されず、言及されていない他の目的は下の記載から当業者に明確に理解されうる。
【課題を解決するための手段】
【００１２】
前記目的を達成するために本発明の実施形態による不揮発性メモリをキャッシュとして用いる保存装置は、主記録媒体、前記主記録媒体のキャッシュとして使われ、データの固定如何によって固定領域及び非固定領域を含む不揮発性メモリ、前記不揮発性メモリに割当てられる物理ブロックを仮想アドレスによって管理するブロック管理部を含む。
【００１３】
前記目的を達成するために本発明の実施形態による  不揮発性メモリをキャッシュとして用いる保存装置の管理方法は、主記録媒体のキャッシュとして使われる不揮発性メモリの領域をデータの固定如何によって固定領域及び非固定領域に区分するステップと、前記固定領域及び前記非固定領域に割当てられる物理ブロックを各物理ブロックに割当てられる仮想アドレスによって管理するステップを含む  。
【００１４】
その他の実施例の具体的な事項は詳細な説明及び図面に含まれている。
【発明の効果】
【００１５】
本発明の不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法によれば、次のような効果が１つあるいはそれ以上ある。
【００１６】
不揮発性メモリの領域をデータの固定如何によって固定領域及び非固定領域に区分して管理して効率的な管理が可能である。
【００１７】
また、不揮発性メモリでのブロック回収を通じて各ブロックの使用頻度を均等化するために、不揮発性メモリの寿命を延長させ、主記録媒体の使用頻度を減らすために、主記録媒体の動作時の消費電源を減少させうる。
【００１８】
また、突然の電源遮断時にも割当ブロックリストを通じてブロックマッピングテーブルを復旧できるために、安全にデータを復旧しうる。
【発明を実施するための最良の形態】
【００１９】
本発明の利点及び特徴、そしてこれを達成する方法は添付された図面に基づいて詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は以下で開示される実施例に限定されるものではなく、この実施例から外れて多様な形に具現でき、本明細書で説明する実施例は本発明の開示を完全にし、本発明が属する技術分野で当業者に発明の範ちゅうを完全に報せるために提供されるものであり、本発明は請求項及び発明の詳細な説明により定義されるだけである。一方、明細書全体に亙って同一な参照符号は同一な構成要素を示す。
【００２０】
以下、本発明の実施形態によって、不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法を説明するためのブロック図またはフローチャートに関する図面を参考して本発明について説明する。この時、フローチャートの各ブロックとフロ−チャートの組合わせはコンピュータプログラムインストラクションにより実行可能なのが理解できるであろう。これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他のプログラム可能なデータプロセッシング装備のプロセッサに搭載されうるので、コンピュータまたはその他のプログラム可能なデータプロセッシング装備のプロセッサによって実行されるそのインストラクションがフローチャートのブロックで説明する機能を行う手段を生成する。これらコンピュータプログラムインストラクションは特定方式で機能を具現するためにコンピュータまたはその他のプログラム可能なデータプロセッシング装備に備えられるコンピュータによって利用可能または判読可能なメモリに保存されることも可能なので、そのコンピュータによって利用可能または判読可能なメモリに保存されたインストラクションはフローチャートのブロックで説明する機能を行うインストラクション手段を含む製造品目を生産するのに用いることも可能である。コンピュータプログラムインストラクションはコンピュータまたはその他のプログラム可能なデータプロセッシング装備上に搭載することも可能なので、コンピュータまたはその他のプログラム可能なデータプロセッシング装備上で一連の動作段階が実行されてコンピュータで実行されるプロセスを生成し、コンピュータまたはその他のプログラム可能なデータプロセッシング装備を行うインストラクションはフローチャートのブロックで説明する各ステップの機能を実行することも可能である。
【００２１】
また、各ブロックは特定の論理的機能を行うための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示すことができる。また、いくつの代替実行例では、ブロックで言及された機能が順序から外れて発生することも可能であるということに注目せねばならない。例えば、連続して図示されている２つのブロックは、実質的に同時に行われてもよく、またはそのブロックが時々該当する機能によって逆順に行われてもよい。
【００２２】
図２は、本発明の実施形態による不揮発性メモリをキャッシュとして用いる保存装置を示す図面である。
【００２３】
示されたように、本発明の実施形態による不揮発性メモリをキャッシュとして用いる保存装置１００は、主記録媒体１１０、主記録媒体１１０のキャッシュとして使われる不揮発性メモリ１２０及び不揮発性メモリ１２０の物理ブロック（Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋ：以下、ＰＢと称する）を仮想アドレスによって管理するブロック管理部１３０を含みうる。
【００２４】
本発明の実施形態において、主記録媒体１１０は、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：ＨＤＤ）などの大容量記録媒体と理解され、不揮発性メモリ１２０は、電源が遮断された場合にも、データが消去されないフラッシュメモリなどと理解されうる。一方、本発明の実施形態による不揮発性メモリをキャッシュとして用いる保存装置１００は、ユーザの命令によって主記録媒体１１０とデータを送受信するホスト１４０と連結され、本発明の実施形態でホスト１４０はブロック管理部１３０と連結されうる。
【００２５】
不揮発性メモリ１２０は、データが固定される固定領域及びデータが頻繁に変更される非固定領域に区分されうる。固定領域は、主記録媒体１１０のキャッシュとして使われる不揮発性メモリ１２０に常に存在せねばならないデータが保存される領域を意味し、非固定領域は、主記録媒体１１０とデータの移動が頻繁に発生する領域を意味する。
【００２６】
ブロック管理部１３０は、不揮発性メモリ１２０にＰＢを割当てるブロック割当部１３１、割当てられたＰＢを回収するブロック回収部１３２、バッドブロックを管理するバッドブロック管理部１３３、電源遮断時に停電復旧のための停電復旧部１３４、不揮発性メモリ１２０の物理ブロック番号（Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋ  Ｎｕｍｂｅｒ：以下ＰＢＮと称する）と仮想ブロック番号（Ｖｉｒｔｕａｌ  Ｂｌｏｃｋ  Ｎｕｍｂｅｒ：以下、ＶＢＮと称する）とのマッピング関係を管理するブロックマッピングテーブル管理部１３５、割当ブロックリスト及び自由ブロックリストを保存するリスト保存部１３６を含みうる。
【００２７】
ブロック割当部１３１は、リスト保存部１３６に保存された自由ブロックリストによって不揮発性メモリ１２０の固定領域及び非固定領域にＰＢを割当てられうる。この際、自由ブロックリストは、データが存在していない空ＰＢを含み、自由ブロックリストは、各ＰＢの使用頻度（Ｗｅａｒ  Ｌｅｖｅｌ）順によるＰＢＮ順に整列されうる。言い換えれば、自由ブロックリストは、最も少なく使われたＰＢＮが最前方に位置し、最も多く使われたＰＢＮが最後方に位置するものである。このような自由ブロックリストは、一般的に不揮発性メモリ１２０のスペア領域に保存されており、後述する停電復旧部１３４は、突然の電源遮断後、再ブーティング時には、スペア領域に保存された値を通じて自由ブロックリストを再構成しうる。
【００２８】
図３は、本発明の実施形態による仮想ブロックアドレス空間が示された図面である。
【００２９】
ブロック割当部１３１は、不揮発性メモリ１２０の固定領域及び非固定領域にＰＢを割当てる場合、該当ＰＢＮに図３のような仮想ブロックアドレス空間のＶＢＮを割当てうる。このような仮想ブロックアドレス空間のＶＢＮは、固定領域及び非固定領域を区分するために互いに逆方向から順次に不揮発性メモリ１２０のＰＢＮとマッピングされうる。また、仮想ブロックアドレス空間で各ＶＢＮは、多数のページからなり、仮想ブロックアドレス空間は、物理アドレス空間に比べて大きい。
【００３０】
次いで、ブロック割当部１３１は、自由ブロックリストで最前方に位置したＰＢを固定領域または非固定領域に割当て、割当てられたＰＢのＰＢＮとＶＢＮとのマッピング関係を記録したブロックマッピングテーブルを前述したブロックマッピングテーブル管理部１３５に保存しうる。このようなブロックマッピングテーブルも前述した仮想ブロックアドレス空間と同様に固定領域及び非固定領域によって互いに逆方向に順次に割当てられる。この際、ブロック割当部１３１は、自由ブロックリストで所定ＰＢを固定領域または非固定領域に割当てた後、リスト保存部１３６に保存された割当ブロックリスト及び自由ブロックリストを更新する。具体的に、ブロック割当部１３１は、固定領域または非固定領域に割当てられたＰＢを自由ブロックリストから除去し、割当てられたＰＢは、割当ブロックリストの最後に追加する。
【００３１】
図４は、本発明の実施形態による割当ブロックリスト及び自由ブロックリストが示された図面である。
【００３２】
示されたように、本発明の実施形態による割当ブロックリスト２１０は、ＰＢ２３０の使用頻度２３１の最も少ないＰＢＮから順次に割当てられたことが分かる。また、自由ブロックリスト２２０は、ＰＢ２３０で割当てられないＰＢＮが使用頻度２３１順によって整列されたことが分かる。
【００３３】
図５は、前述した図４の割当ブロックリストの物理ブロック番号と仮想ブロック番号とをマッピングしたブロックマッピングテーブルが示された図面である。
【００３４】
示されたように、本発明の実施形態によるブロックマッピングテーブル２４０は、ＶＢＮにＰＢＮをマッピングし、固定領域及び非固定領域によって互いに逆方向から順次にマッピングされることが分かる。
【００３５】
一方、不揮発性メモリ１２０にデータが記録されるときには、データと共にスペア領域に多様なメタデータが保存されうる。本発明の実施形態においてメタデータは、不揮発性メモリ１２０のメタデータ保存部１２１に保存されうる。この際、メタデータ保存部１２１に保存されるメタデータとして、論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：以下、ＬＢＡと称する）、固定領域及び非固定領域データ指示子、ブロックの使用頻度、復旧マークなどを含みうる。
【００３６】
この際、ＬＢＡは、割当ブロックリストと各ＰＢにマッピングされたＬＢＡを通じて突然の電源遮断時に停電復旧のために使われ、固定領域及び非固定領域データ指示子は、固定領域及び非固定領域を区分して停電復旧のために使われ、使用頻度は使用頻度順に自由ブロックリストの生成のために使われ、復旧マークは、停電復旧のためのものであって、割当ブロックリストと自由ブロックリストとが連結されて不揮発性メモリ１２０に共に保存される場合、自由ブロックリストの開始部分に復旧マークを記録して割当ブロックリストと自由ブロックリースとを区分するために使われうる。この際、割当ブロックリストと自由ブロックリストとが連結されて保存されるということは、実際に割当ブロックリストと自由ブロックリストとが１つのリストからなると理解され、復旧マークを自由ブロックリストの開始部分に記録して割当ブロックリストと自由ブロックリストとを区分する。
【００３７】
ブロック回収部１３２は、割当ブロックリスト内の各ＰＢで有効なページ数を算出する。この際、ブロック回収部１３２は、有効なページ数の最も少ないＰＢからブロック回収を行える。言い換えれば、ブロック回収部１３２は、所定ＰＢ内の有効なページ数が最も少ないということは、有効なデータが少ないと判断し、これにより、ブロック回収部１３２は、有効なページの最も少ないＰＢからブロック回収を行う。
ブロック回収部１３２は、自由ブロックリストで最前方に位置したＰＢを割当てて、割当ブロックリストの最後に位置させ、ブロック回収を行おうとするＰＢ内の有効なページの自由ブロックリストを割当ブロックリストの最後に位置されたブロックに移動させる。また、ブロック回収部１３２は、割当ブロックリストの最後に位置されたＰＢに有効なページをいずれも移動させた後、ブロック回収が行われたＰＢは使用頻度順によって再び自由ブロックリストに追加する。
【００３８】
この際、ブロック割当部１３１は、ブロック回収のために割当ブロックリストに最後に位置したＰＢのＰＢＮに仮想ブロックアドレス空間のＶＢＮを割当てて仮想ブロックアドレス空間を更新する。
【００３９】
図６は、本発明の実施形態によるブロック回収以前の物理ブロックが示された図面である。
【００４０】
示されたように、割当ブロックリスト３１０は、ＰＢＮ５、ＰＢＮ０、ＰＢＮ７、ＰＢＮ２を含み、各ＰＢＮの有効ページ数３１１は、５、４、６、３であることが分かる。また、自由ブロックリスト３２０は、ＰＢＮ３、ＰＢＮ６、ＰＢＮ１、ＰＢＮ４を含み、ブロックマッピングテーブル３３０は、各ＶＢＮに固定領域及び非固定領域によって互いに逆方向から割当ブロックリスト３１０のＰＢＮがマッピングされたことが分かる。
【００４１】
図７は、本発明の実施形態によってブロック回収以後の物理ブロックが示された図面である。この際、図７は、前述した図６でＰＢＮ０の有効ページはＰＢＮ６に移動し、ＰＢＮ２及びＰＢＮ５の有効ページはＰＢＮ３に移動してブロック回収が行われた場合を例として説明する。
【００４２】
示されたように、割当ブロックリスト３１０では前述した図６でＰＢＮ０、ＰＢＮ２及びＰＢＮ６がブロック回収が行われためにＰＢＮ０、ＰＢＮ２及びＰＢＮ６が除去されたことが分かり、自由ブロックリスト３２０には、ブロック回収が行われたＰＢＮ０、ＰＢＮ２及びＰＢＮ６が使用頻度によって追加されたことが分かる。
【００４３】
また、ブロックマッピングテーブル３３０は、ブロック回収が行われていないＰＢＮ７はそのまま保持される一方、ブロック回収が行われて自由ブロックリスト３２０から割当ブロックリスト３１０に追加されたＰＢＮ３及びＰＢＮ６は、新たなＶＢＮとマッピングされたことが分かる。
【００４４】
バッドブロック管理部１３３は、割当ブロックリスト内の所定ＰＢでバッドブロックが発生すれば、該当ＰＢを割当ブロックリストから除去し、除去されるＰＢに記録されたデータは自由ブロックリストから新たなＰＢを割当てられて移動させる。この際、バッドブロック管理部１３３は、バッドブロックに記録されたデータを移すために、自由ブロックリストから割当てられたＰＢを除去されるバッドブロックの位置に挿入する。
【００４５】
図８は、本発明の実施形態によって発生したバッドブロックが示された図面である。
【００４６】
示されたように、バッドブロック管理部１３３は、割当ブロックリスト４１０のＰＢＮ５でバッドブロックが発生した場合、自由ブロックリスト４２０からＰＢを新たに割当てられ、新たに割当てられたＰＢにバッドブロックに記録されたデータを移動させる。この際、バッドブロックの除去前には、ブロックマッピングテーブル４３０にはＰＢＮ５がＶＢＮ７とマッピングされているが、バッドブロックが除去されつつ、新たに割当てられたＰＢに対するＰＢＮがＶＢＮ７とマッピングされる。
【００４７】
図９は、本発明の実施形態によって除去されたバッドブロックが示された図面である。
【００４８】
示されたように、バッドブロック管理部１３３は、前述した図８において、割当ブロックリスト４１０でバッドブロックが発生したＰＢＮ５に記録されたデータを、自由ブロックリスト４２０で新たに割当てられたＰＢＮ６に移動させ、ＰＢＮ６をバッドブロックが発生したＰＢＮ５の位置に挿入する。この際、バッドブロックが発生したＰＢＮ５は、自由ブロックリスト４２０に追加されず、これ以上割当てない。また、ブロックマッピングテーブル４３０でもバッドブロックのＰＢＮ５とマッピングされたＶＢＮ７を新たに割当てられたＰＢＮ６と再びマッピングする。
【００４９】
停電復旧部１３４は、突然の電源遮断時に割当ブロックリストと自由ブロックリストとを通じて停電復旧を行える。このような停電復旧を行うためには、割当ブロックリスト及び自由ブロックリストの順序を変更させる要因であるブロック回収時と主記録媒体１１０へのデータ移動時に変更された割当ブロックリスト及び自由ブロックリストを不揮発性メモリ１２０のスペア領域に保存する。言い換えれば、割当ブロックリストと自由ブロックリストは、一旦保存されれば、突然の電源遮断時にその順序を同一に保持するためにＰＢの割当て順序が分かり、スペア領域のＬＢＡに基づいて最も最近のデータのみを抽出する。したがって、ブロック回収時及び主記録媒体１１０へのデータ移動時にのみ割当ブロックリスト及び自由ブロックリストを保存して容易に停電復旧を行える。また、ブロック回収時に復旧マークを記録し、再び割当てる時は、復旧マークを消去するために割当ブロックリストと自由ブロックリストとに区分しうる。この際、ブロックマッピングテーブルも割当ブロックリストを通じて復旧しうる。
【００５０】
図１０は、本発明の実施形態によるブロック割当方法が示された図面である。
【００５１】
示されたように、本発明の実施形態によるブロック割当方法は、まずブロック割当部１３１が自由ブロックリストから固定領域または非固定領域に新たに割当てるＰＢを選択する（Ｓ１１０）。この際、ブロック割当部１３１は、自由ブロックリストで最前方に位置したＰＢを新たに割当てる。これは、自由ブロックリストが使用頻度順によって整列されているために、自由ブロックリストで最も前に位置したＰＢの使用頻度が最も少ないためである。
【００５２】
ブロック割当部１３１は、選択されたＰＢＮにＶＢＮを割当てる（Ｓ１２０）。この際、ＶＢＮは、固定領域及び非固定領域によって仮想ブロックアドレス空間で互いに逆方向から順次に割当てられる。
【００５３】
また、ブロック割当部１３１は、ＰＢＮとＶＢＮとのマッピング関係を示すブロックマッピングテーブルを更新する（Ｓ１３０）。
【００５４】
次いで、ブロック割当部１３１は、選択されたＰＢＮを割当ブロックリストの最後に追加し（Ｓ１４０）、自由ブロックリストから選択されたＰＢＮを除去する（Ｓ１５０）。この際、新たに割当てられるＰＢＮを割当ブロックリストの最後に追加することは、不揮発性メモリ１２０の場合、データアップデート時に以前に使われたデータを修正せず、新たにＰＢを割当てられて追加する方式を使用する。したがって、新たなＰＢが割当てられる度に割当ブロックリストの最後に該当ＰＢＮを追加する場合、後で書き込まれたデータが有効なデータと判断されうるからである。これは、前述した停電復旧部１３４により停電復旧が行われる場合に適用されうる。
【００５５】
図１１は、本発明の実施形態によるブロック回収方法が示された図面である。
【００５６】
示されたように、本発明の実施形態によるブロック回収方法は、まずブロック回収部１３２が割当ブロックリスト内の各ＰＢに含まれた有効ページ数を算出する（Ｓ２１０）。言い換えれば、所定ＰＢに含まれた有効ページ数が少ないほど該当ＰＢには有効でないページが多いために、ＰＢを回収して新たに割当てる時に使用する。
【００５７】
ブロック回収部１３２は、算出された有効ページ数によってブロック回収を行うＰＢの順序を決定する（Ｓ２２０）。本発明の実施形態では、ブロック回収部１３２が有効ページ数の最も少ないＰＢからブロック回収を行う場合を例として説明する。また、本発明の実施形態では、ブロック回収部１３２が所定ＰＢ内に含まれた有効ページの数が所定数以下であるか、空ＰＢが所定数以下である場合、ブロック回収を行う場合を例として説明する。
【００５８】
ブロック回収部１３２は、決定された順序によって有効ページ数の最も少ないＰＢのブロック回収のために自由ブロックリストで最も前に位置したＰＢＮを割当ブロックリストの最後に位置させる（Ｓ２３０）。
【００５９】
ブロック回収部１３２は、割当ブロックリストの最後に位置したＰＢにブロック回収を行うＰＢの有効ページを移動させ（Ｓ２４０）、有効ページが移動して空ＰＢを自由ブロックリストに使用頻度によって追加する（Ｓ２５０）。また、ブロック回収部１３２は、割当ブロックリストに新たに追加されたＰＢＮにＶＢＮを割当ててブロックマッピングテーブルを更新する（Ｓ２６０）。
【００６０】
ブロック回収部１３２は、ブロック回収対象となるＰＢのブロック回収がいずれも完了したか否かを判断し（Ｓ２７０）、ブロック回収対象となるＰＢのブロック回収が完了していない場合には、ブロック回収対象となるＰＢのブロック回収がいずれも完了するまで、その次の順序のＰＢに対するブロック回収を行うために自由ブロックリストの最も前に位置したＰＢを割当ブロックリストの最後に位置させ（Ｓ２８０）、割当ブロックリストの最後に位置したＰＢに、ブロック回収を行うＰＢの有効ページを移動させた後、有効ページが移動して空ＰＢを自由ブロックリストに使用頻度によって追加した後、割当ブロックリストに新たに追加されたＰＢＮにＶＢＮを割当ててブロックマッピングテーブルを更新する過程（Ｓ２４０ないしＳ２６０）を反復的に行う。
【００６１】
図１２は、本発明の実施形態によるバッドブロック処理方法が示された図面である。
【００６２】
示されたように、本発明の実施形態によるバッドブロック処理方法は、まずバッドブロック管理部１３３が割当ブロックリスト内にバッドブロックが発生したＰＢの存否を判断する（Ｓ３１０）。
【００６３】
バッドブロック管理部１３３は、ブロック割当部１３１を通じて自由ブロックリストから新たにＰＢを割当てられる（Ｓ３２０）。この際、新たに割当てられるＰＢは、該当ＰＢの使用頻度を考慮して自由ブロックリストの最も前に位置するＰＢとなる。本発明の実施形態では、自由ブロックリストの最も前に位置するＰＢを割当てられる場合を例として説明しているが、前述したように復旧マークが記録される自由ブロックリストの最も前に位置するＰＢの頻繁な変更を防止するために最も前に位置したＰＢの直後に位置したＰＢが割当てられうる。
【００６４】
新たにＰＢが割当てられれば、バッドブロック管理部１３３は、新たに割当てられたＰＢにバッドブロックが発生したＰＢのデータを移動させる（Ｓ３３０）。
【００６５】
データ移動が完了すれば、バッドブロック管理部１３３は、データが移動したＰＢをバッドブロックが発生したＰＢの位置に挿入する（３４０）。
【００６６】
また、バッドブロック管理部１３３は、バッドブロックが発生したＰＢＮに割当てられたＶＢＮをバッドブロックが発生したＰＢの位置に挿入されたＰＢＮに変更する（Ｓ３５０）。
【００６７】
図１３は、本発明の実施形態による停電復旧方法が示された図面である。
【００６８】
示されたように、本発明の実施形態による停電復旧方法は、まず停電復旧部１３４が突然の電源遮断が発生した場合、不揮発性メモリ１２０のスペア領域に保存された割当ブロックリスト及び自由ブロックリストを抽出する（Ｓ４１０）。
【００６９】
停電復旧部１３４は、抽出された割当ブロックリストを通じて各ＰＢが割当てられた順序を復旧する（Ｓ４２０）。この際、停電復旧部１３４は、同じＬＢＡを有するＰＢの場合には、最後に書き込まれたＰＢを有効であると判断する。
【００７０】
また、停電復旧部１４３は、割当ブロックリストを通じてブロックマッピングテーブルを復旧する（Ｓ４３０）。
【００７１】
前記‘部’は、ソフトウェアまたはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）または注文型半導体（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；ＡＳＩＣ）のようなハードウェア構成要素を意味し、部は所定の役割を行う。しかし、部はソフトウェアまたはハードウェアに限定されるものではない。部は、アドレッシング可能な保存媒体に存在すべく構成されても良く、１つまたはそれ以上のプロセッサを実行させるように構成されても良い。したがって、一例として部は、ソフトウェア構成要素、客体指向ソフトウェア構成要素、クラス構成要素及びタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバー、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。構成要素とモジュールから提供される機能は、より少数の構成要素及びモジュールで結合されるか、追加的な構成要素とモジュールにさらに分離されうる。
【００７２】
前述したように本発明による不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法を例示された図面に基づいて説明したが、本明細書に開示された実施形態と図面によって本発明は限定されず、その発明の技術思想の範囲内で当業者により多様な変形が可能であるということは言うまでもない。
【産業上の利用可能性】
【００７３】
本発明は、不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法に関連した技術分野に好適に適用されうる。
【図面の簡単な説明】
【００７４】
【図１】一般的な保存装置が示された図である。
【図２】本発明の実施形態による不揮発性メモリをキャッシュとして用いる保存装置が示された図である。
【図３】本発明の実施形態による仮想ブロックアドレス空間が示された図である。
【図４】本発明の実施形態による割当ブロックリスト及び自由ブロックリストが示された図である。
【図５】本発明の実施形態によるブロックマッピングテーブルが示された図である。
【図６】本発明の実施形態によるブロック回収以前の割当ブロックリスト、自由ブロックリスト及びブロックマッピングテーブルが示された図である。
【図７】本発明の実施形態によるブロック回収以後の割当ブロックリスト、自由ブロックリスト及びブロックマッピングテーブルが示された図である。
【図８】本発明の実施形態によるバッドブロック処理以前の割当ブロックリスト、自由ブロックリスト及びブロックマッピングテーブルが示された図である。
【図９】本発明の実施形態によるバッドブロック処理以後の割当ブロックリスト、自由ブロックリスト及びブロックマッピングテーブルが示された図である。
【図１０】本発明の実施形態によるブロック割当方法が示された図である。
【図１１】本発明の実施形態によるブロック回収方法が示された図である。
【図１２】本発明の実施形態によるバッドブロック処理方法が示された図である。
【図１３】本発明の実施形態による停電復旧方法が示された図である。
【符号の説明】
【００７５】
１１０      主記録媒体
１２０      不揮発性メモリ
１３０      ブロック管理部
１３１      ブロック割当部
１３２      ブロック回収部
１３３      バッドブロック管理部
１３４      停電復旧部
１３５      ブロックマッピングテーブル管理部
１３６      リスト保存部
１４０      ホスト
【図１】
2007179545.tif 000003
【図２】
2007179545.tif 000004
【図３】
2007179545.tif 000005
【図４】
2007179545.tif 000006
【図５】
2007179545.tif 000007
【図６】
2007179545.tif 000008
【図７】
2007179545.tif 000009
【図８】
2007179545.tif 000010
【図９】
2007179545.tif 000011
【図１０】
2007179545.tif 000012
【図１１】
2007179545.tif 000013
【図１２】
2007179545.tif 000014
【図１３】
2007179545.tif 000015