(57)【特許請求の範囲】
【請求項１】
装置であって、
あるトラックが、隣接するトラックに少なくとも部分的に重なり合うシングルライト方式でデータを記録するように構成されたデータ記録媒体と、
コントローラとを備え、
前記コントローラは、
論理的ブロックアドレスを含むライトコマンドを受信し、
マッピングテーブルを用いて、前記論理的ブロックアドレス（ＬＢＡ）に、前記データ記録媒体の特定のデータセクターに対応するバーチャルアドレスを割り当て、
前記マッピングテーブルをゾーン基準によって管理し、前記ゾーンは複数のユニットを含み、前記ユニットは複数のトラックを含み、前記トラックは複数のデータセクターを含み、
割り当てられた前記バーチャルアドレスを用いて、前記データ記録媒体にアクセスし、
前記ＬＢＡ基づいたマッピングテーブルを用いて、前記ライトコマンドに対応するデータを前記データ記録媒体上に順次にライトし、
前記装置がアイドル状態の場合に、
前記マッピングテーブルを用いて、少なくとも１つのユニットに書き込まれた有効データを新たなユニットへリライトし、
前記少なくとも１つのユニット上の有効データに対応するバーチャルアドレスを無効データを含むものとして指定するとともに、前記新たなユニット上の有効データに対応するバーチャルアドレスをアクティブデータを含むものとして指定するように、前記マッピングテーブルをアップデートする、装置。
【請求項２】
前記マッピングテーブルは、前記ＬＢＡ、前記バーチャルアドレス、前記バーチャルアドレスを含むユニット、および前記ユニット内の最後にライトされたセクターを含む、請求項１に記載の装置。
【請求項３】
前記コントローラは、
前記マッピングテーブルで認識された最後にライトされたセクターの直後に続くデータセクターに前記ライトコマンドに関連するデータを順次にライトし、
前記マッピングテーブルが、前記ＬＢＡについて以前に割り当てられたバーチャルアドレスを含む場合には、前記以前に割り当てられたバーチャルアドレスを無効データを含むものとして指定するようにさらに構成される、請求項１に記載の装置。
【請求項４】
前記コントローラは、前記有効データに対応するＬＢＡ順に、前記有効データをリライトするように構成される、請求項１に記載の装置。
【請求項５】
方法であって、
ゾーン基準でゾーン上のマッピングテーブルを管理するステップを含み、
前記ゾーンは複数のユニットを含み、前記ユニットは複数のトラックを含み、前記トラックは複数のセクターを含み、
前記方法は、
受信されたライトコマンドに含まれた論理的ブロックアドレス（ＬＢＡ）に基づいて前記マッピングテーブルをサーチするステップと、
前記マッピングテーブルに基づいて、あるトラックが、隣接するトラックに少なくとも部分的に重なり合うシングルライト方式で、前記ライトコマンドに関連したデータをデータ記録媒体に順次にライトするステップと、
前記データ記録媒体を含む装置がアイドル状態の場合に、前記マッピングテーブルを用いて、少なくとも１つのユニットにライトされた有効データを、前記ＬＢＡに基づく順序で新たなユニットへリライトするステップと、
前記少なくとも１つのユニット上の有効データに対応するバーチャルアドレスを無効データを含むものとして指定するとともに、前記新たなユニット上の有効データに対応するバーチャルアドレスをアクティブデータを含むものとして指定するステップとをさらに含む、方法。
【請求項６】
請求項５に記載の方法をコンピュータで行わせるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存装置及びその制御方法に係り、特に、シングルライト（Ｓｈｉｎｇｌｅ  ｗｒｉｔｅ）の可能なデータ保存装置とその制御方法に関する。
【背景技術】
【０００２】
データ保存装置の例として、ハードディスクドライブ（以下、ＨＤＤ）を挙げることができる。最近には保存容量を増加させるために複数のデータ保存装置で構成されたハイブリッドデータ保存装置も開発された。前記複数のデータ保存装置はＨＤＤを含むことができる。
【０００３】
データ保存装置またはハイブリッドデータ保存装置は、接続されたホストの命令によって記録媒体に／からデータをライト／リードするためのアクセス動作を行う。記録媒体に対するアクセス動作のうち、シングルライトに基づいたアクセス動作がある。シングルライトは、隣接したトラックと部分的に重畳しつつデータをライトする。すなわち、シングルライトは第１トラックと隣接した第２トラックをライトする時、第１トラックを部分的にオーバーライトし、第２トラックに隣接した第３トラックをライトする時、第２トラックを部分的にオーバーライトすることで、記録媒体の保存空間を効率的に運用するデータライト技術である。
【０００４】
しかし、シングルライトに基づいて記録媒体にランダムライトを行うか、または記録媒体に記録されたデータをアップデートする時、ライトコマンドに含まれた論理的ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）の記録位置によって、隣接したトラックのリライトが発生しうる。このような隣接したトラックのリライトが発生すれば、記録媒体に対するアクセス性能が低下する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、シングルライト時にデータ記録媒体に対するアクセスを効率的に行うデータ保存装置、記録媒体アクセス方法、及びそれについての記録媒体を提供するところにある。
【０００６】
本発明が解決しようとする他の課題は、シングルライト時にデータ記録媒体のメタデータを効率的に管理できるデータ保存装置、記録媒体アクセス方法、及びそれについての記録媒体を提供するところにある。
【課題を解決するための手段】
【０００７】
前記課題を達成するための本発明の一実施形態によるデータ保存装置は、シングルライトの可能な記録媒体と、ライトコマンドに含まれたＬＢＡに基づいたマッピングテーブルを用いて、データが前記記録媒体に順次にライトされるように前記記録媒体をアクセスするコントローラと、を備えることを特徴とする。
【０００８】
前記マッピングテーブルは、前記記録媒体の現在データ記録状態情報と前記ＬＢＡのマッピング情報とを含むことが望ましい。
【０００９】
前記コントローラは、前記マッピングテーブルを用いて前記ＬＢＡにバーチャルアドレス（Ｖｉｒｔｕａｌ
Ａｄｄｒｅｓｓ：ＶＡ）を割り当て、前記割り当てられたＶＡを用いて前記記録媒体をアクセスすることが望ましく、前記ＬＢＡのマッピング情報は、前記ＬＢＡと前記ＶＡとの間のマッピング情報を含むことが望ましい。
【００１０】
前記コントローラは、前記マッピングテーブルを用いて現在受信されたＬＢＡのデータを順次にライトするために前記ＶＡを割り当て、前記現在受信されたＬＢＡに既存に割り当てられたＶＡが前記マッピングテーブルに存在すれば、前記既存に割り当てられたＶＡを無効化するように前記マッピングテーブルをアップデートすることが望ましい。
【００１１】
前記コントローラは、前記マッピングテーブルをゾーン（ｚｏｎｅ）別に管理し、ゾーンは複数のユニットを備え、ユニットは複数のトラックを備え、トラックは複数のセクターを備え、前記ＶＡはセクター基盤に割り当てられることが望ましい。
【００１２】
前記データ保存装置がアイドルタイム（ｉｄｌｅ  ｔｉｍｅ）ならば、前記コントローラは前記マッピングテーブルを用いて、少なくとも一つのユニットにライトされた有効なデータを新たなユニットにリライトし、前記マッピングテーブルをアップデートすることが望ましく、前記コントローラは、ＬＢＡ順に前記データをリライトすることが望ましい。前記少なくとも一つのユニットは、無効なセクターのカウント値が所定の臨界値より大きいユニットであることを特徴とする。
【００１３】
前記課題を達成するための本発明のさらに他の実施形態による記録媒体アクセス方法は、受信されたライトコマンドに含まれたＬＢＡに基づいてマッピングテーブルをサーチする段階と、前記サーチされたマッピングテーブルに基づいて、データが記録媒体に順次にライトされるように前記記録媒体をアクセスする段階と、を含むことを特徴とする。前記マッピングテーブルは、前記記録媒体の現在データ記録状態情報と前記ＬＢＡのマッピング情報とを含むことが望ましい。
【００１４】
前記記録媒体をアクセスする段階は、前記マッピングテーブルを用いて前記ＬＢＡにＶＡを割り当て、前記割り当てられたＶＡを用いて前記記録媒体をアクセスする段階を含むことが望ましい。前記ＬＢＡのマッピング情報は、前記ＬＢＡと前記ＶＡとの間のマッピング情報を含む。
【００１５】
前記記録媒体をアクセスする段階は、前記ＶＡを割り当てた後、前記ＬＢＡに既存のＶＡが前記マッピングテーブルに存在するかどうかをチェックする段階と、前記既存のＶＡが前記マッピングテーブルに存在すれば、前記既存のＶＡを無効化する段階と、前記マッピングテーブルをアップデートする段階と、をさらに含むことが望ましい。
【００１６】
前記データ保存装置における記録媒体アクセス方法は、前記マッピングテーブルを前記記録媒体のゾーン別に管理する段階をさらに含み、ゾーンは複数のユニットを備え、ユニットは複数のトラックを備え、トラックは複数のセクターを備え、前記ＶＡはセクター基盤に割り当てられることが望ましい。
【００１７】
前記データ保存装置における記録媒体アクセス方法は、前記データ保存装置がアイドルタイムならば、前記マッピングテーブルを用いて、少なくとも一つのユニットにライトされた有効なデータを新たなユニットにリライトする段階と、前記有効なデータのリライト後、前記マッピングテーブルをアップデートする段階と、をさらに含むことが望ましい。
【００１８】
前記有効なデータをリライトする段階は、前記ＬＢＡ順に前記有効なデータをリライトし、前記有効なデータをリライトする時、前記少なくとも一つのユニットは、無効なセクターのカウント値が所定の臨界値より大きいユニットであることが望ましい。
【００１９】
前記課題を達成するために本発明は、前述した記録媒体アクセス方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体を提供する。
【００２０】
前記課題を達成するための本発明のさらに他の実施形態によるデータ保存装置は、シングルライトの可能なデータ保存装置、及びそのデータ保存装置をアクセスできるコントローラを備え、前記コントローラは、ホストからコマンドを受信し、受信されたコマンドからＬＢＡを抽出する第１プロセッサー、マッピングテーブルを使用して受信されたＬＢＡにＶＡを割り当てる第２プロセッサー、割り当てられたＶＡを実際アドレスに変換して前記データ保存媒体をアクセスする第３プロセッサーを備える。
【００２１】
前記データ保存媒体の前記第３プロセッサーは、前記データ保存媒体をアクセスできるリード及びライトチャンネル回路を備えることができる。
【００２２】
前記ＬＢＡにＶＡを割り当てるデータ保存媒体の第２プロセッサーは、フリーキュー（ｆｒｅｅ  ｑｕｅｕｅ）、アロケーションキュー（ａｌｌｏｃａｔｉｏｎ  ｑｕｅｕｅ）、ガービッジキュー（ｇａｒｂａｇｅ  ｑｕｅｕｅ）のうち少なくとも一つを使用して、前記データ保存媒体のセクター及びユニットを無効化するか、または有効化するか、またはアクティブ化することができる。前記第２プロセッサーによって使用されたマッピングテーブルは、記録媒体のメタデータになりうる。
【００２３】
前記課題を達成するための本発明のさらに他の実施形態によるデータ保存装置の記録媒体アクセス方法は、データ保存装置の第１プロセッサーによりホストからコマンドを受信し、前記受信されたコマンドからＬＢＡを抽出する段階、前記データ保存装置の第２プロセッサーによりマッピングテーブルを使用して、受信されたＬＢＡにＶＡを割り当てる段階、データ保存装置の第３プロセッサーにより、前記割り当てられたＶＡを実際アドレスに変換して、前記データ保存装置のデータ保存媒体をアクセスする段階を含む。
【００２４】
前記ＬＢＡにＶＡを割り当てる段階は、フリーキュー、アロケーションキュー、ガービッジキューのうち少なくとも一つを使用して、前記データ保存媒体のセクター及びユニットを無効化するか、または有効化するか、またはアクティブ化する段階を含みうる。
【発明の効果】
【００２５】
本発明の実施形態によれば、ランダムＬＢＡに基づいたシングルライト時、記録媒体に対するマッピングテーブルに基づいて割り当てられたＶＡを用いて、順次にデータをライトすることで、ランダムライトまたは既存のデータをアップデートする時、隣接したトラックのリライトによるデータ保存装置のアクセス性能低下を改善できる。
【００２６】
また、本発明の実施形態によれば、記録媒体のゾーン別にメタデータ（またはマッピングテーブル）を管理し、データ保存装置がアイドルタイムである時、有効なデータがライトされたアクティブセクターに基づいてデータをリライトし、リライトされた結果に基づいてゾーン別メタデータをアップデートすることで、記録媒体の保存空間をさらに効率的に運用できるだけでなく、記録媒体に対するメタデータを効率的に管理できる。
【図面の簡単な説明】
【００２７】
【図１】シングルライトによりデータがライトされうる記録媒体の論理的な構造図である。
【図２】本発明の一実施形態によるデータ保存装置の機能ブロック図である。
【図３Ａ】本発明の一実施形態によるデータ保存装置で、データライト時の記録媒体アクセス方法のフローチャートである。
【図３Ｂ】本発明の一実施形態によるマッピングテーブルの例を示す図面である。
【図４】図３Ａに図示された記録媒体アクセス方法の詳細フローチャートである。
【図５】ランダムＬＢＡに基づいた順次的なシングルライト例を示す図面である。
【図６】図５のように、データがライトされた状態でＬＢＡがアップデートされるシングルライト例を示す図面である。
【図７】本発明の一実施形態によるデータ保存装置の、アイドルタイムでシングルライトされたデータのリライト時の記録媒体アクセス方法のフローチャートである。
【図８】シングルライトされたデータを、図７によりリライトした例示図である。
【図９】本発明の一実施形態によるデータ保存装置の、アイドルタイムでシングルライトされたデータのリライト時の記録媒体アクセス方法の他のフローチャートである。
【図１０】シングルライトされたデータを、図９によりリライトした例示図である。
【図１１】図２に図示されたコントローラの詳細な機能ブロック図である。
【図１２】図１１に図示された第２プロセッサーの詳細な機能ブロック図である。
【発明を実施するための形態】
【００２８】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の実施形態を例示する添付図面及び図面に記載された内容を参照せねばならない。
【００２９】
以下、添付した図面を参照して本発明の実施形態について詳細に説明する。
【００３０】
図１は、シングルライト（ｓｈｉｎｇｌｅ  ｗｒｉｔｅ）によりデータがライトされうる記録媒体の論理的な構造図である。図１を参照すれば、記録媒体はＮ個のゾーン（ｚｏｎｅ）を備え、一つのゾーンはＫ個のユニットを備え、一つのユニットは複数のトラックを備え、一つのトラックは複数のセクター（図示せず）を備えることができる。図１の場合に、ユニット１はＭ個のトラックを備え、ユニット２はＪ個のトラックを備える。ＭとＪとは同じ整数であるが、他の整数でもありうる。Ｎ個のゾーンそれぞれに含まれるユニットの数は同一であるが、異なってもよい。前記ユニットはバンドといえる。
【００３１】
Ｋ個のユニットそれぞれに含まれたトラックは、シングルライトに基づいてデータがライトされうる。図１に図示されたトラック１〜Ｍ＋Ｊは、シングルライトに基づいてデータがライトされたトラックである。図１のユニット１を参照すれば、トラック２は、トラック１の一部領域にオーバーライトされ、トラック３は、トラック２の一部領域にオーバーライトされ、トラックＭは、トラックＭ−１の一部領域にオーバーライトされる。しかし、ユニット２の最初のトラックであるトラックＭ＋１はトラックＭにオーバーライトされない。このようにシングルライト時、各ユニットの最初のトラックは以前トラックにオーバーライトされない。図１の参照番号１０は、オーバーライトされた領域である。
【００３２】
図１は、説明の便宜のために、各トラックが同じ長さを持つと図示した。しかし、記録媒体がハードディスクのように、プラッタ（ｐｌａｔｔｅｒ）上の同心円でデータがライトされる場合に、トラック別に長さが異なり、または／及び複数のトラックが異なる長さを持つことができ、一つ以上他のトラックが同じ長さを持つことができる。したがって、記録媒体がハードディスクである場合に、外側トラックは内側トラックよりさらに多くのセクターで構成されうる。また外側トラックから内側トラックにデータがライトされるので、トラック１は、トラックＭ＋Ｊより記録媒体の外側トラックになる。
【００３３】
図１は、説明の便宜のために、最初のトラックをトラック１と図示したが、ハードディスクの場合に、トラック番号は０から始まる。したがって、記録媒体がハードディスクである場合に、最初のトラックはトラック０と定義されうる。ゾーン及びユニットの番号も、記録媒体がハードディスクである場合に０から始まるように定義されうる。図１のような構造でシングルライトの可能な記録媒体は、ハードディスクに制限されない。すなわち、シングルライトの可能な記録媒体は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、揮発性及び／または不揮発性メモリデバイス、任意の適当なデバイス及び／または記録媒体のような記録媒体に適用されうる。シングルライトは、トラックを持つ記録媒体にデータをライトする時に適用されうる。以下の説明では、各トラック当たり同じセクターを備える例を提示したが、前述したように各トラック当たりセクター数は異なる。
【００３４】
図２は、本発明の一実施形態によるデータ保存装置２００の機能ブロック図である。図２を参照すれば、データ保存装置２００は、ホストインターフェース２１０、コントローラ２２０、及び記録媒体２３０を備える。
【００３５】
ホストインターフェース２１０は、ホスト（図示せず）にデータを伝送し、ホストからデータを受信できる。例えば、ホストインターフェース２１０は、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）インターフェース規格によってデータ送受信処理を行える。ホスト（図示せず）は、例えば、ウィンドウ系列のオペレーティングシステムプログラムによって動作される装置でありうる。例えば、ホスト（図示せず）は、コンピュータシステム、サーバ、デジタルカメラ、デジタルメディアプレーヤー、セットトップボックス、プロセッサー、現場（ｆｉｅｌｄ）プログラマブルゲートアレイ、プログラマブルロジックデバイス、及び／または任意の適当な電子機器でありうる。ホストは、データ保存装置２００と一体型に構成されうる。ホストは、データ保存装置２００と無線及び／または有線通信リンクを通じて連結されうる。
【００３６】
コントローラ２２０は、メモリ２２１にデータ保存装置２００の制御に必要なプログラム及びデータを保存することができる。特に、図３、図４、図７及び図９に図示されたフローチャートを行わせるためのプログラム及びデータを保存することができる。
【００３７】
論理的ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）に基づいたシングルライト時、コントローラ２２０は、ホストインターフェース２１０を通じて受信されたライトコマンドに含まれたＬＢＡに基づいたマッピングテーブルを用いて、記録媒体２３０に順次にデータがライトされるように記録媒体２３０をアクセスする。論理的ブロックアドレスの一例として、ランダム論理的ブロックアドレスが挙げられる。
【００３８】
すなわち、図３Ａのフローチャートによって、コントローラ２２０は記録媒体２３０をアクセスできる。図３Ａは、本発明の一実施形態によるデータ保存装置で、データライト時の記録媒体アクセス方法の動作フローチャートである。図３Ｂは、本発明の一実施形態によるマッピングテーブルの例を示す図面である。
【００３９】
図３Ａ及び図３Ｂを参照すれば、コントローラ２２０は、受信されたライトコマンドに含まれたＬＢＡ（例えば、２２５ａ）に基づいて、メモリ２２１からマッピングテーブルをサーチする（Ｓ３０１）。すなわち、コントローラ２２０は、ホストインターフェース２１０を通じてホストからライトコマンドを受信し、ライトコマンドと共に受信されたＬＢＡ（例えば、２２５ａ）に基づいて、マッピングテーブル（例えば、図３Ｂの２２５）をサーチできる。マッピングテーブルは、ＬＢＡに基づいてサーチされるように定義され、記録媒体２３０の現在データ記録状態が分かる情報と、ＬＢＡに基づいて追跡されうる情報とを含むことができる。現在データ記録状態が分かる情報は、現在データ記録状態情報に相当するものであり、ＬＢＡに基づいて追跡されうる情報は、ＬＢＡのマッピング情報に相当するものである。
【００４０】
現在データ記録状態が分かる情報は、データが最後にライトされたセクターのナンバー（例えば、マッピングテーブル２２５で最後に記録されたセクター２２５ｂは、データが最後に記録されたセクターのナンバーになりうる）、前記セクター（例えば、ＬＢＡ  ２２５ａの最後に記録されたセクター２２５ｂ）を備えるトラック（例えば、トラック２２５ｃ）、ユニット（例えば、トラック２２５ｄ）、及びゾーン（例えば、ゾーン２２５ｄ）についての情報を含むことができる。ＬＢＡに基づいて追跡されうる情報は、現在受信されたＬＢＡが新たなＬＢＡであるか、またはアップデートされるＬＢＡであるかを判断できる情報を含むことができる。例えば、マッピングテーブル２２５のＬＢＡ  ２２５ａがアップデートされるＬＢＡであるかどうかは、マッピングテーブル２２５のアイテム２２５ｆにより分かる。
【００４１】
マッピングテーブル２２５はメモリ２２１に保存されうるが、所定アクセス時間（例えば、速いアクセス時間）を持つ外部の不揮発性記録媒体（図示せず）に保存されるか、または記録媒体２３０の最もアクセスの速い位置（例えば、ハードディスクの場合にＯＤ（Ｏｕｔｅｒ  Ｄｉｍｅｎｓｉｏｎ）に保存されうる。もし、マッピングテーブル２２５が前記外部の不揮発性記録媒体に保存される場合に、図２のデータ保存装置２００は、記録媒体２３０と別途にコントローラ２２０の外部に記録媒体をさらに備えるように構成されうる。
【００４２】
もし、マッピングテーブルが外部の不揮発性記録媒体または記録媒体２３０に保存される場合に、最後にアクセスされた記録媒体２３０のＬＢＡが属する少なくとも２個のゾーンのマッピングテーブルがメモリ２２１に保存されるように、コントローラ２２０は、外部の不揮発性記録媒体または記録媒体２３０に保存されたゾーン別マッピングテーブルと、メモリ２２１に保存されたマッピングテーブルとの間をスワップ（ｓｗａｐ）できる。
【００４３】
段階Ｓ３０２で、コントローラ２２０は、サーチされたマッピングテーブルを用いてデータが記録媒体２３０に順次にライトされるように、記録媒体２３０をアクセスする。
さらに詳細に説明すれば、図４のフローチャートによって、コントローラ２２０は記録媒体２３０をアクセスできる。図４は、図３に図示された記録媒体アクセス方法の詳細フローチャートである。
【００４４】
図４を参照すれば、コントローラ２２０は、受信されたライトコマンドに含まれたＬＢＡが属するゾーンのマッピングテーブルをサーチできる（Ｓ４０１）。マッピングテーブルのサーチは、図３の段階Ｓ３０１で説明したように、ＬＢＡに基づいて行われうる。これは、事前に各ゾーン別に処理可能なＬＢＡが割り当てられるからである。例えば、図１のゾーン１の場合に、０〜１０００ＬＢＡを処理可能なＬＢＡに設定し、ゾーン２の場合に、１００１〜２０００ＬＢＡを処理可能なＬＢＡに設定できる。ゾーン１とゾーン２との処理可能なＬＢＡが前述した通りである時、受信されたライトコマンドに含まれたＬＢＡが、例えば、５ならば、段階Ｓ４０１で、コントローラ２２０はゾーン１のマッピングテーブルをサーチできる。マッピングテーブルは、前述したようにゾーン別に管理できるが、記録媒体２３０単位で管理できる。
【００４５】
マッピングテーブルは、図３で説明したようにメモリ２２１に保存されうる。マッピングテーブルは、図３で説明したような情報を含むことができる。すなわち、マッピングテーブルは、記録媒体２３０の現在データ記録状態が分かる情報として、ゾーンで最後にデータがライトされた（最後にデータが記録された）セクターのナンバー、前記セクターが含まれるトラック、及びユニットについての情報を含むことができる。
【００４６】
さらに詳細に説明すれば、マッピングテーブルは、記録媒体２３０の現在データ記録状態が分かる情報として、最後にデータがライトされた（最後にデータが記録された）セクターのナンバー、有効な（ｖａｌｉｄ）ユニット、有効なトラック、有効なセクター、ユニット別の無効なセクターのカウント値、アクティブユニットのカウント値、アクティブセクター、アクティブトラック、アクティブユニットなどを含むことができる。前記有効なユニット、有効なトラック、有効なセクターはそれぞれリザーブド（ｒｅｓｅｒｖｅｄ）ユニット、リザーブドトラック、リザーブドセクターと定義できるものであって、データライトの可能なセクターを備えるトラックを備えるユニットである。前記アクティブユニット、アクティブトラック、アクティブセクターは、それぞれ有効なデータがライトされたセクターを備えるトラックを備えるユニットである。前記無効なセクターは、ライトされたデータが有効でないセクターである。また、マッピングテーブルは、ＬＢＡに基づいて追跡できる情報として、ＬＢＡとバーチャルアドレス（Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ：ＶＡ）との間のマッピング情報を含むことができる。
【００４７】
段階Ｓ４０２で、コントローラ２２０は、サーチされたマッピングテーブルを用いて現在ユニットがフル（ｆｕｌｌ）状態であるかどうかを判断する。すなわち、マッピングテーブルに含まれた、ゾーンで最後にデータがライトされたセクターのナンバーが現在ユニットの最後のセクターのナンバーならば、コントローラ２２０は現在ユニットがフル状態であると判断する。しかし、マッピングテーブルに含まれた、ゾーンで最後にデータがライトされたセクターのナンバーが現在ユニットの最後のセクターのナンバーではなければ、コントローラ２２０は、現在ユニットがフル状態ではないと判断する。
【００４８】
段階Ｓ４０２で、現在ユニットがフル状態であると判断されれば、コントローラ２２０は、マッピングテーブルを用いて新たなユニットを割り当てる（Ｓ４０３）。新たなユニットは、データをライトできる有効なユニットであって、ＬＢＡが属するゾーンに含まれたユニットである。
【００４９】
現在ユニットがフル状態ではないか、または新たなユニットが割り当てられれば、コントローラ２２０は、ＬＢＡにＶＡを割り当てる（Ｓ４０４）。ＶＡは、記録媒体２３０の有効なセクター（ｖａｌｉｄ  ｓｅｃｔｏｒ）単位アドレスであって、現在ユニットで最後にデータがライトされた（最後にデータが記録された）セクターのナンバー、または新たなユニット割り当てによって決定される。
【００５０】
すなわち、現在ユニットで最後にデータがライトされたセクターのナンバーが、図５に図示された例のように、セクターナンバー（Ｓｅｃｔｏｒ  Ｎｕｍｂｅｒ、ＳＮ）８である時、ＳＮ９が割り当てられたセクターに対応するＶＡが、現在受信されたＬＢＡに割り当てられる。新たなユニットが割り当てられた場合に、コントローラ２２０は、新たなユニットの最初のセクターに対応するＶＡを現在受信されたＬＢＡに割り当てる。このようにＬＢＡに割り当てられるＶＡは、ＬＢＡが属するゾーンで最後にデータがライトされたセクターのナンバーにより決定された有効なセクターに依存する。
【００５１】
ＶＡは、セクターの実際アドレスに基づいて定義されうる。例えば、記録媒体２３０がハードディスクである場合に、ＶＡは、ＣＨＳ（Ｃｙｌｉｎｄｅｒ  Ｈｅａｄ  Ｓｅｃｔｏｒ）に基づいて定義されうる。記録媒体が図１のような論理的な構造を持つ場合に、ＶＡはゾーン、ユニット、トラック、及びセクターに基づいて定義されうる。
【００５２】
図５は、ランダムＬＢＡに基づいた順次的なシングルライト例であって、一つのユニットが３個のトラックで構成され、１トラックが５個のセクターで構成された場合を仮定した例である。
【００５３】
図５を参照すれば、ホストから受信されたＬＢＡは、７→２→１４→４→９→５→３→１２→８順であることが分かる。現在ユニットが図５のような場合に、図４の段階Ｓ４０２で、コントローラ２２０は現在ユニットがフル状態ではないと判断し、Ｓ４０４で現在受信されたＬＢＡにＶＡを割り当てる。図５で矢印は、データがライトされる順序であり、５０１は、オーバーライトされた領域である。
【００５４】
段階Ｓ４０５で、コントローラ２２０は、マッピングテーブルを用いて現在受信されたＬＢＡに既存に割り当てられたＶＡが存在するかどうかをチェックする。すなわち、コントローラ２２０は、ＬＢＡに基づいて、マッピングテーブルにＬＢＡとＶＡとの間のマッピング情報が存在するかどうかをサーチする。サーチ結果、前記マッピング情報が存在すれば、コントローラ２２０は、ＬＢＡに既存に割り当てられたＶＡが存在すると判断する。
【００５５】
ＬＢＡに既存に割り当てられたＶＡが存在すると判断されれば、コントローラ２２０は、既存に割り当てられたＶＡを無効化し（Ｓ４０６）、段階Ｓ４０７で、マッピングテーブルをアップデートする。すなわち、既存に割り当てられたＶＡに対応するセクターを無効なセクターと管理し、新たに割り当てられたＶＡに対応するセクターをアクティブセクターと管理するように、コントローラ２２０は、ＬＢＡが属するゾーンのマッピングテーブルをアップデートする。この時、マッピングテーブルに含まれるユニットの無効なセクターのカウント値は１増加する。前記ユニットの無効なセクターのカウント値は、ユニットに含まれるセクターに対応するＶＡが無効化する度に１ずつ増加する。また、マッピングテーブルに含まれる最後にデータがライトされたセクターのナンバーは、割り当てられたＶＡに基づいてアップデートされる。
【００５６】
マッピングテーブルにＬＢＡとＶＡとの間のマッピング情報が存在していなければ、コントローラ２２０は、ＬＢＡに既存に割り当てられたＶＡが存在していないと判断する。
【００５７】
ＬＢＡに既存に割り当てられたＶＡが存在していないと判断されれば、段階Ｓ４０７で、コントローラ２２０は、マッピングテーブルをアップデートする。ＬＢＡに既存に割り当てられたＶＡが存在していない場合に、マッピングテーブルは、ＬＢＡと現在割り当てられたＶＡとの間のマッピング情報、割り当てられたＶＡに対応するセクターをアクティブセクターと管理する情報を含み、マッピングテーブルに含まれる最後にデータがライトされたセクターのナンバーは、割り当てられたＶＡに基づいてアップデートされる。
【００５８】
段階Ｓ４０８で、コントローラ２２０は、割り当てられたＶＡを用いてデータがライトされるように記録媒体２３０をアクセスする。現在受信されたＬＢＡに割り当てられた既存のＶＡが存在する場合に、データライトは、図６に図示されたように記録される。図６は、図５のように、データがライトされた状態でＬＢＡがアップデートされるシングルライトの例である。
【００５９】
図６を参照すれば、図５のように、データがライトされた状態でＬＢＡ２とＬＢＡ３とが順次に受信されたことが分かる。受信された順序によって、セクター９とセクター１０とにＬＢＡ２とＬＢＡ３とのデータは順次にライトされ、既存のセクター１とセクター５とに対応するＶＡは、前述した段階Ｓ４０６で無効化し、ＬＢＡ２にマッピングされるＶＡは、セクター９に基づいたＶＡが新たに割り当てられ、ＬＢＡ３にマッピングされるＶＡは、セクター１０に基づいたＶＡが新たに割り当てられるように、マッピングテーブルはアップデートされる。
【００６０】
データ保存装置２００がアイドルタイムになれば、コントローラ２２０は、各ゾーン別マッピングテーブルを用いてユニットの状態をチェックし、チェックされた結果によって、記録媒体２３０にライトされたデータが再配列されるようにリライトするために、記録媒体２３０をアクセスできる。
【００６１】
すなわち、図７のフローチャートによって、コントローラ２２０は記録媒体２３０をアクセスできる。図７は、本発明の一実施形態によるデータ保存装置の、アイドルタイムでシングルライトされたデータのリライト時の記録媒体アクセス方法の動作フローチャートである。
【００６２】
図７を参照すれば、コントローラ２２０は、マッピングテーブルを用いてゾーンを選択する（Ｓ７０１）。段階Ｓ７０１で、コントローラ２２０は、ゾーン別マッピングテーブルを用いて、無効な（ｉｎｖａｌｉｄ）セクター数に基づいてゾーンを選択できる。すなわち、ゾーンは、無効なセクター数の多い順序で選択されうる（例えば、選択されたゾーンの順序は、無効なセクター数の最も多いゾーンから無効なセクター数の最も少ないゾーンまでになりうる）。ゾーン別無効なセクターの数は、前述したユニット別無効なセクターのカウント値に基づいて決定されうる。
【００６３】
ゾーンが選択されれば、コントローラ２２０はマッピングテーブルを用いて選択されたゾーンに含まれたユニットのうち、無効なセクターのカウント値が臨界値Ａより大きいユニットが存在するかどうかをチェックする（Ｓ７０２）。マッピングテーブルに含まれる無効なセクターのカウント値は、図６に図示されたように、ＬＢＡがアップデートされる度にアップデートされるか、または所定周期でアップデートされうる。臨界値Ａは、ユニットに有効なセクターが存在していない条件を根拠として設定されうる。
【００６４】
図８のシングルライトされたデータを、図７によりリライトした例示図である。図８の８０１に図示された、シングルライトされたユニット例に図７を適用する場合に、段階Ｓ７０２の臨界値Ａは５に設定できる。臨界値Ａが５に設定されれば、図８の８０１ユニットは、無効化セクターのカウント値が５より大きいユニットである。
【００６５】
無効なセクターのカウント値が臨界値Ａ以上であるユニットが存在すれば、コントローラ２２０は、選択されたゾーンに含まれた有効なユニットのうち一つを新たなユニットとして割り当てる（Ｓ７０３）。図８で８０２ユニットは、新たに割り当てられたユニットである。
【００６６】
コントローラ２２０は、無効なセクターのカウント値が臨界値Ａ以上であるユニットから、アクティブセクターにライトされた有効なデータが新たに割り当てられたユニットに、ＬＢＡ順にシングルライトに基づいてリライトされるように記録媒体２３０をアクセスする（Ｓ７０４）。これにより、新たなユニットに、図８に図示されたユニット８０２のように、ＬＢＡ順にリライトされるように、コントローラ２２０は記録媒体２３０をアクセスする。
【００６７】
コントローラ２２０は、段階Ｓ７０５で選択されたゾーンのマッピングテーブルをアップデートする。段階Ｓ７０４によるリライトで、マッピングテーブル情報は、図８に図示されたように低減させることができる。すなわち、ユニットに含まれるセクター単位のＬＢＡとＶＡとの間のマッピング情報が、図８の８０３及び８０４のようにＬＢＡ、ＶＡ、ＳＣ（Ｓｅｃｔｏｒ  Ｃｏｕｎｔ）、及びＵＮ（Ｕｎｉｔ  Ｎｕｍｂｅｒ）を含めば、ユニット８０１についてのセクター単位のＬＢＡとＶＡとの間のマッピング情報は８０５の通りである。しかし、新たなユニット８０２を用いて有効なデータのみをＬＢＡ順にリライトすれば、セクター単位のＬＢＡとＶＡとの間のマッピング情報は、図８の８０６のように低減する。このようにマッピングテーブルに含まれる記録媒体２３０に対するメタデータ量が減少して、データ保存装置２００は、記録媒体２３０のメタデータを効率的に管理できる。
【００６８】
また、コントローラ２２０は、段階Ｓ７０２で無効なセクターのカウント値が臨界値Ａ以上であると判断された以前ユニットが有効なユニットと設定されるように、マッピングテーブルをアップデートする。
【００６９】
段階Ｓ７０２で、ゾーンに含まれるユニットのうち、無効なセクターのカウント値がＡ以上であるユニットがないと判断されれば、コントローラ２２０は、段階Ｓ７０１に戻って他のゾーンを選択する。
【００７０】
一方、コントローラ２２０は、各ゾーン別マッピングテーブルを用いて、記録媒体２３０にライトされたデータが再配列されるようにデータをリライトするために記録媒体２３０をアクセスする時、図９に図示されたフローチャートによって動作できる。
【００７１】
図９は、本発明の一実施形態によるデータ保存装置の、アイドルタイムでシングルライトされたデータのリライト時の記録媒体アクセス方法の他のフローチャートである。図９は、図７と異なって、選択されたゾーンに含まれたユニットのうち、アクティブユニットのカウント値が臨界値Ｂ以上ならば、無効なセクターのカウント値がＰ以上であるユニットが少なくても２つ存在するかどうかをチェックした結果によって、新たなユニットを割り当ててデータをリライトする。
【００７２】
すなわち、図９を参照すれば、段階Ｓ９０１で、コントローラ２２０がゾーンを選択すれば、選択されたゾーンに含まれたアクティブユニットのカウント値が臨界値Ｂより大きいかどうかをチェックする（Ｓ９０２）。もし、選択されたゾーンに含まれたアクティブユニットのカウント値がＢより大きくなければ、段階Ｓ９０１で他のゾーンを選択する。しかし、選択されたゾーンに含まれたアクティブユニットのカウント値がＢより大きければ、段階Ｓ９０３で、コントローラ２２０は、無効なセクターのカウント値が臨界値Ｐより大きいユニットが少なくても２つ以上であるかどうかをチェックする。臨界値Ｐは、図７の臨界値Ａと同じ条件で設定されうる。臨界値Ｂは、ゾーンに含まれうるユニットの最大数より小さな整数と定義されうる。
【００７３】
チェックの結果、無効なセクターのカウント値がＰより大きいユニットが少なくとも２つ以上存在すれば、段階Ｓ９０４ないしＳ９０６で、コントローラ２２０は新たなユニットを割り当てて、図７のように、有効なデータのみＬＢＡ順に新たに割り当てられたユニットにリライトされるように記録媒体２３０をアクセスした後、選択されたゾーンのマッピングテーブルをアップデートする。チェック結果、無効なセクターのカウント値がＰより大きいユニットが少なくても２つ以上存在していなければ、コントローラ２２０は、段階Ｓ９０１で他のゾーンを選択する。
【００７４】
図１０は、シングルライトされたデータを、図９によりリライトした例であって、２個のユニットにライトされたデータを一つのユニットにリライトした例である。図１０の１００１と１００２ユニットは、無効化セクターのカウント値が臨界値Ｐ以上であるユニットである。ユニット１００１のＬＢＡとＶＡとの間のマッピング情報は１００３の通りであり、ユニット１００２のＬＡＢとＶＡとの間のマッピング情報は１００４の通りである。これらのユニット１００１と１００２とにライトされたデータのうち、有効なデータを新たに割り当てられたユニット１００５にＬＢＡ順にリライトすれば、ユニット１００５のＬＡＢとＶＡとの間のマッピング情報は１００６の通りである。図１０から分かるように、有効なデータのＬＢＡ順にデータをリライトすることで、マッピングテーブルに含まれるマッピング情報は減少する。
【００７５】
前述したコントローラ２２０の動作を行うために、コントローラ２２０は、図１１に図示されたように、ホストインターフェース２１０からコマンドを受信し、受信されたコマンドからＬＢＡを抽出する第１プロセッサー１１０１、マッピングテーブルを用いて受信されたＬＢＡにＶＡを割り当てる第２プロセッサー１１０２、及び割り当てられたＶＡをリアルアドレスに変換して記録媒体２３０をアクセスする第３プロセッサー１１０３を備えることができる。第３プロセッサー１１０３は、記録媒体２３０のアクセスに必要な構成要素を備えることができる。前記構成要素は、例えば、記録媒体２３０の駆動部、リード／ライトチャンネル回路を備えることができる。第１プロセッサー１１０１、第２プロセッサー１１０２、第３プロセッサー１１０３は、中央処理ユニット、現場プログラマブルゲートアレイ、プログラマブルロジックデバイス、注文型半導体（Ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、及び本発明の望ましい実施形態を行える適宜なプロセッサーになりうる。
【００７６】
記録媒体２３０がハードディスクである時、コントローラ２２０は、ＨＴＬ（ＨＤＤ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）と言及されうる。図１１に図示されたプロセッサーをレイヤーと表現する場合に、第１プロセッサー１１０１はＨＩＬ（ＨＤＤ  Ｉｎｔｅｒｆａｃｅ  Ｌａｙｅｒ）と表現し、第２プロセッサー１１０２はＶＭＬ（Ｖｉｒｔｕａｌ  Ｍａｐｐｉｎｇ  Ｌａｙｅｒ）と表現し、第３プロセッサー１１０３はＨＰＬ（ＨＤＤ  Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）と表現できる。
【００７７】
第２プロセッサー１１０２は、マッピングテーブルを備えると定義できる。また、第２プロセッサー１１０２は、図１２に図示されたように、フリーキュー（ｆｒｅｅ  ｑｕｅｕｅ）１２０１、アロケーションキュー（ａｌｌｏｃａｔｉｏｎ  ｑｕｅｕｅ）１２０２、及びガービッジキュー（ｇａｒｂａｇｅ  ｑｕｅｕｅ）１２０３で構成され、ＬＢＡにＶＡを割り当てて、セクター及びユニットを無効化するか、または有効化するか、またはアクティブ化すると言及できる。有効化は、データライトの可能な状態を意味し、アクティブ化は、データがライトされた状態を意味し、無効化は、ライトされたデータが無効な状態を意味する。無効化セクター及び無効化ユニットは、前述した図７ないし図１０で説明されたリライトにより有効化セクター及びユニットと設定されうる。したがって、図７ないし図１０で説明されたリライトは、ガービッジコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）と表現できる。
【００７８】
記録媒体２３０は、シングルライトの可能な記録媒体であって、ハードディスクのような記録媒体である。しかし、スピンドルモータにより回転される少なくとも一つのディスクを備えるヘッドディスクアセンブリー（Ｈｅａｄ  Ｄｉｓｃ  Ａｓｓｅｍｂｌｙ、以下、ＨＤＡ）と定義されうる。ＨＤＡに含まれるディスクは磁気ディスクと表現できる。
【００７９】
前述した図２ないし図１０で言及されたマッピングテーブルは、記録媒体２３０のメタデータと言及できる。
【００８０】
本発明の実施形態は、方法、装置、システムなどで行われうる。ソフトウェアで行われる時、本発明の実施形態の構成手段は、必然的に必要な作業を行うコードセグメントである。プログラムまたはコードセグメントは、プロセッサー判読可能媒体に保存されうる。プロセッサー判読可能媒体は、情報を保存または伝送できるいかなる媒体も含む。プロセッサー判読可能媒体の例には、電子回路、半導体メモリ素子、ＲＯＭ、フラッシュメモリ、ＥＲＯＭ（Ｅｒａｓａｂｌｅ  ＲＯＭ）、フロッピー（登録商標）ディスク、光ディスク、ハードディスク、光繊維媒体、無線周波数（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ：ＲＦ）網などがある。
【００８１】
添付した図面に図示されて説明された特定の実施形態は、単に本発明の実施形態として理解され、本発明の範囲を限定するものではなく、本発明が属する技術分野で本発明に記述された技術的思想の範囲内でも多様な他の変更が発生しうるので、本発明は、図示または記述された特定の構成及び配列に制限されないということは明らかである。
【産業上の利用可能性】
【００８２】
本発明は、データ保存装置関連の技術分野に好適に用いられる。
【符号の説明】
【００８３】
２００  データ保存装置
２１０  ホストインターフェース
２２０  コントローラ
２２１  メモリ
２３０  記録媒体
【図１】
0005606938.tif 000002
【図２】
0005606938.tif 000003
【図３Ａ】
0005606938.tif 000004
【図３Ｂ】
0005606938.tif 000005
【図４】
0005606938.tif 000006
【図５】
0005606938.tif 000007
【図６】
0005606938.tif 000008
【図７】
0005606938.tif 000009
【図８】
0005606938.tif 000010
【図９】
0005606938.tif 000011
【図１０】
0005606938.tif 000012
【図１１】
0005606938.tif 000013
【図１２】
0005606938.tif 000014