(57)【要約】    【課題】可変インデックス書き込み技術を使用するヘッダーレス・フォーマットAV HDDに対してローカル・トラック・スペア処理を行うセクタ・レベルの欠陥管理技術を提供する。    【解決手段】HDD200が入力したデータ・ストリームは、データ・ブロックとスペア・データ・ブロックを有する少なくとも１つのクラスタに編成される(502)。可変インデックス書き込み技術を使用して、クラスタの各データ・ブロックを、セクタに欠陥がないときにヘッドが遭遇するトラックの対応するセクタに書き込む(506)。セクタに欠陥がある場合、トラックのセクタは書き込み中にスキップされる(507)。１つのトラックに対応したクラスタの部分にあるスペア・データ・ブロックの数を、トラック内でスキップされたセクタの数だけ減少させる。【選択図】図５
2006114071.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのディスクと、データを前記各ディスクに書き込むためのヘッドとを有し、前記各ディスクは少なくとも１つのデータ・トラックを有するディスク・ドライブにデータを書き込む方法であって、
前記ディスク・ドライブの選択されたディスクの選択された第１のあらかじめ決められた数の物理セクタを有するデータ・トラック上にヘッドを位置付けるステップと、
前記ヘッドが各物理セクタに遭遇し、その物理セクタに欠陥がないとき、データ・ストリームの第２のあらかじめ決められた数の物理セクタのサイズに等しいデータ・ブロックを、可変インデックス書き込み技術を使用して、前記選択されたデータ・トラックの対応する物理セクタに書き込むステップと、
前記物理セクタに欠陥がある場合、前記選択されたデータ・トラックの物理セクタをスキップするステップと、
前記選択されたデータ・トラックにデータ・ストリームのすべてのデータ・ブロックが書き込まれたとき、前記選択されたデータ・トラックの前記第１のあらかじめ決められた数の物理セクタから、前記第２のあらかじめ決められた数のデータ・ブロックに前記データ・トラックのスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい第３のあらかじめ決められた数の物理セクタをスキップするステップと、を含むことを特徴とするディスク・ドライブにデータを書き込む方法。
【請求項２】
前記第３のあらかじめ決められた数の物理セクタをスキップするステップは、前記第２のあらかじめ決められた数のデータ・ブロックの一部として、少なくとも１つの誤り訂正情報データ・ブロックを書き込むステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つの誤り訂正情報データ・ブロックが、第１のスペア・データ・ブロックの前に連続的に存在することを特徴とする請求項２に記載の方法。
【請求項４】
少なくとも１つの誤り訂正データ・ブロックが、最後のスペア・データ・ブロックの後に連続的に存在することを特徴とする請求項２に記載の方法。
【請求項５】
前記ディスク・ドライブの少なくとも１つのディスクは、複数のデータ・トラックを有し、前記複数のデータ・トラックはそれぞれ前記第１のあらかじめ決められた数のデータ・セクタを有し、
前記方法は、前記データ・ストリームを少なくとも１つのデータ・クラスタに編成するステップをさらに含み、ここで各データ・クラスタのサイズは、前記第１のあらかじめ決められた数の物理セクタの整数倍のサイズと等しく、また各データ・クラスタの一部は、単一のデータ・トラックに対応するとともに前記第２のあらかじめ決められた数のデータ・ブロックを含み、
前記第２のあらかじめ決められた数のデータ・ブロックを書き込むステップは、前記ヘッドが各物理セクタに遭遇し、その物理セクタに欠陥がないとき、選択されたデータ・クラスタの選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記選択されたデータ・トラックの対応する物理セクタに書き込み、
前記第３のあらかじめ決められた数の物理セクタをスキップするステップは、前記選択されたデータ・クラスタの前記選択された部分のすべてのデータ・ブロックが、前記選択されたデータ・トラックに書き込まれたとき、前記第３のあらかじめ決められた数の物理セクタをスキップすることを特徴とする請求項１に記載の方法。
【請求項６】
単一のデータ・トラックに対応したデータ・クラスタの各部分は、少なくとも１つの誤り訂正情報データ・ブロックをさらに含み、
前記第３のあらかじめ決められた数の物理セクタをスキップするステップは、データ・クラスタの各誤り訂正情報データ・ブロックを、スペア・セクタとして割り当てられた物理セクタに書き込むステップを含むことを特徴とする請求項５に記載の方法。
【請求項７】
選択されたデータ・クラスタのサイズは単一のデータ・トラックのサイズよりも大きく、
前記第２のあらかじめ決められた数のデータ・ブロックを書き込むステップは、前記ヘッドが前記選択されたデータ・トラックの各物理セクタに遭遇し、その物理セクタに欠陥がないとき、前記選択されたデータ・クラスタの選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記選択されたデータ・トラックの対応する物理セクタに書き込み、
前記方法はさらに 
前記ヘッドを、第１のあらかじめ決められた数の物理セクタを有する第２の選択されたデータ・トラック上に位置付けるステップと、
前記ヘッドが各物理セクタに遭遇し、その物理セクタに欠陥がないとき、前記選択されたクラスタの第２の選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記第２の選択されたデータ・トラックの対応する物理セクタに書き込むステップと、
前記物理セクタに欠陥がある場合、前記第２の選択されたデータ・トラックの物理セクタをスキップするステップと、
前記選択されたデータ・クラスタの前記第２の選択された部分のすべてのデータ・ブロックが、前記第２の選択されたデータ・トラックに書き込まれたとき、前記第２の選択されたデータ・トラックの前記第１のあらかじめ決められた数の物理セクタから、前記第２のあらかじめ決められた数のデータ・ブロックに前記第２のデータ・トラックのスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい第４のあらかじめ決められた数の物理セクタをスキップするステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項８】
単一のデータ・トラックに対応したデータ・クラスタの各部分は、第４のあらかじめ決められた数の誤り訂正情報データ・ブロックをさらに含み、
前記第３のあらかじめ決められた数の物理セクタをスキップするステップは、少なくとも１つの誤り訂正情報データ・ブロックをスペア・セクタに対応した物理セクタに書き込むステップを含むことを特徴とする請求項５に記載の方法。
【請求項９】
少なくとも１つの誤り訂正情報データ・ブロックは、第１のスペア・データ・ブロックに対応することを特徴とする請求項８に記載の方法。
【請求項１０】
少なくとも１つの誤り訂正データ・ブロックは、最後のスペア・データ・ブロックに対応することを特徴とする請求項８に記載の方法。
【請求項１１】
物理セクタに欠陥があるかどうかを、前記選択されたデータ・トラックと関連付けられたメタデータに含まれる情報に基づいて判断するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記選択されたデータ・トラックと関連付けられたメタデータは、前記選択されたトラックの物理セクタの数、前記選択されたトラック上のパリティ・セクタの数、および前記選択されたトラック上におけるスペア・セクタの数の少なくとも１つに関する情報を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記選択された各データ・トラックと関連付けられたメタデータは、前記データ・ストリームのストリーム・ハンドル、前記選択されたトラックが空きであるかまたは占有されているかどうか、前記選択されたトラックの物理的開始に関係した前記選択されたデータ・トラックの開始セクタ、および前記選択されたトラック上にあるすべての欠陥セクタのロケーションの少なくとも１つに関する情報を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
少なくとも１つのデータ・トラックを有し、前記各データ・トラックは第１のあらかじめ決められた数の物理セクタを有する少なくとも１つのディスクと、
各物理セクタに遭遇し、その物理セクタに欠陥がないとき、可変インデックス書き込み技術を使用して、データ・ストリームの第２のあらかじめ決められた数の物理セクタのサイズと等しいデータ・ブロックを、前記選択されたデータ・トラックの対応する物理セクタに書き込み、前記物理セクタに欠陥がある場合、前記選択されたデータ・トラックの物理セクタをスキップし、さらに前記選択されたデータ・トラックにデータ・ストリームのすべてのデータ・ブロックが書き込まれたとき、前記選択されたデータ・トラックの前記第１のあらかじめ決められた数の物理セクタから、前記第２のあらかじめ決められた数のデータ・ブロックに前記データ・トラックのスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい第３のあらかじめ決められた数の物理セクタをスキップするヘッドと、
を有することを特徴とするディスク・ドライブ。
【請求項１５】
前記ヘッドが前記第３のあらかじめ決められた数の物理セクタをスキップするとき、前記ヘッドは、少なくとも１つの誤り訂正情報データ・ブロックを、前記第２のあらかじめ決められた数のデータ・ブロックの一部としてさらに書き込むことを特徴とする請求項１４に記載のディスク・ドライブ。
【請求項１６】
少なくとも１つの誤り訂正情報データ・ブロックが、第１のスペア・データ・ブロックの前に連続的に存在することを特徴とする請求項１５に記載のディスク・ドライブ。
【請求項１７】
少なくとも１つの誤り訂正データ・ブロックが、最後のスペア・データ・ブロックの後に連続的に存在することを特徴とする請求項１５に記載のディスク・ドライブ。
【請求項１８】
前記ディスク・ドライブの少なくとも１つのディスクは、複数のデータ・トラックを有し、前記複数のデータ・トラックは各々前記第１のあらかじめ決められた数のデータ・セクタを有し、
前記データ・ストリームは、少なくとも１つのデータ・クラスタに編成され、ここで各データ・クラスタのサイズは、前記第１のあらかじめ決められた数の物理セクタの整数倍のサイズと等しく、各データ・クラスタの一部は、単一のデータ・トラックに対応するとともに前記第２のあらかじめ決められた数のデータ・ブロックを含み、
前記ヘッドは、各物理セクタに遭遇し、その物理セクタに欠陥がないとき、選択されたデータ・クラスタの選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記選択されたデータ・トラックの対応する物理セクタに書き込み、前記選択されたデータ・クラスタの前記選択された部分のすべてのデータ・ブロックが、前記選択されたデータ・トラックに書き込まれたとき、前記ヘッドは前記第３のあらかじめ決められた数の物理セクタをスキップすることを特徴とする請求項１４に記載のディスク・ドライブ。
【請求項１９】
単一のデータ・トラックに対応したデータ・クラスタの各部分は、少なくとも１つの誤り訂正情報データ・ブロックをさらに含み、
前記ヘッドは、データ・クラスタの各誤り訂正情報データ・ブロックを、スペア・セクタとして割り当てられた物理セクタに書き込むことを特徴とする請求項１８に記載のディスク・ドライブ。
【請求項２０】
選択されたデータ・クラスタのサイズは単一のデータ・トラックのサイズよりも大きく、
前記ヘッドが、前記選択されたデータ・トラックの各物理セクタに遭遇し、その物理セクタに欠陥がないとき、前記ヘッドは、前記選択されたデータ・クラスタの選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記選択されたデータ・トラックの対応する物理セクタに書き込み、
前記ヘッドは、第１のあらかじめ決められた数の物理セクタを有する第２の選択されたデータ・トラック上に位置付けられ、前記ヘッドが各物理セクタに遭遇し、その物理セクタに欠陥がないとき、前記ヘッドは、前記選択されたクラスタの第２の選択された部分の前記第２のあらかじめ決められた数のデータ・ブロックを、可変インデックス書き込み技術を使用して、前記第２の選択されたデータ・トラックの対応する物理セクタに書き込み、前記物理セクタに欠陥がある場合、前記ヘッドは、前記第２の選択されたデータ・トラックの物理セクタをスキップし、前記選択されたデータ・クラスタの前記第２の選択された部分のすべてのデータ・ブロックが前記第２の選択されたデータ・トラックに書き込まれたとき、前記ヘッドは、前記第２の選択されたデータ・トラックの前記第１のあらかじめ決められた数の物理セクタから、前記第２のあらかじめ決められた数のデータ・ブロックに前記第２のデータ・トラックにおけるスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい第４のあらかじめ決められた数の物理セクタをスキップすることを特徴とする請求項１８に記載のディスク・ドライブ。
【請求項２１】
単一のデータ・トラックに対応したデータ・クラスタの各部分は、第４のあらかじめ決められた数の誤り訂正情報データ・ブロックをさらに含み、
前記ヘッドは、少なくとも１つの誤り訂正情報データ・ブロックを、スペア・セクタに対応した物理セクタに書き込むことを特徴とする請求項１８に記載のディスク・ドライブ。
【請求項２２】
少なくとも１つの誤り訂正情報データ・ブロックは、第１のスペア・データ・ブロックに対応することを特徴とする請求項２１に記載のディスク・ドライブ。
【請求項２３】
少なくとも１つの誤り訂正データ・ブロックは、最後のスペア・データ・ブロックに対応することを特徴とする請求項２１に記載のディスク・ドライブ。
【請求項２４】
物理セクタに欠陥があるかどうかに関する情報は、前記選択されたデータ・トラックと関連付けられたメタデータに含まれることを特徴とする請求項１４に記載のディスク・ドライブ。
【請求項２５】
前記選択されたデータ・トラックと関連付けられたメタデータは、前記選択されたトラックの物理セクタの数、前記選択されたトラック上のパリティ・セクタの数、および前記選択されたトラック上におけるスペア・セクタの数の少なくとも１つに関する情報が含まれることを特徴とする請求項２４に記載のディスク・ドライブ。
【請求項２６】
前記選択された各データ・トラックと関連付けられたメタデータは、前記データ・ストリームのストリーム・ハンドル、前記選択されたトラックが空きであるかまたは占有されているかどうか、前記選択されたトラックの物理的開始に関係した前記選択されたデータ・トラックの開始セクタ、および前記選択されたトラック上にあるすべての欠陥のあるセクタのロケーションの少なくとも１つに関する情報を含むことを特徴とする請求項２４に記載のディスク・ドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハード・ディスク・ドライブ（HDD）システムに関する。特に、本発明は、オーディオおよび/またはビジュアル（オーディオ・ビジュアルまたはAV）データの書き込みおよび読み取りを行うために最適化されたストリーミング・ファイルHDDシステムにおいて欠陥を管理するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ハード・ディスク・ドライブ（HDD）は、一般に複数のディスクを有する。各ディスクは、複数の同心データ・トラックを有する。これらのデータ・トラックは、各トラックの開始を表す共通のインデックスと、複数の物理セクタを有する。各物理セクタは、セクタ番号またはアドレスを有する。HDDのディスク上で固定長（すなわち、固定バイト数）の物理セクタにフォーマット化されて格納されたデータを有するHDDは、固定ブロック・アーキテクチャ（FBA）HDDと呼ばれる。
【０００３】
ディスクの可読性に著しい影響を与えるほどの大きな欠陥がセクタに存在する場合、セクタ・レベルの欠陥管理がHDDによって実行される。そのような欠陥によって影響を受けたデータは、従来の方法では、グローバル・スペア・セクタ・プールに含まれる新しいセクタに再マッピングされる。従来のHDDによって使用されるヘッダーレス記録フォーマットは、論理ブロック・アドレス（LBA）アクセス技術を提供する。論理ブロック・アドレス（LBA）アクセス技術によって、いずれの不良物理セクタも、グローバル・スペア・セクタ・プールの一部である別のセクタにマッピングすることができる。
【０００４】
コンピュータデータ処理環境におけるHDDのデータ処理作業負荷は、小さなデータ・ブロックのランダム・アクセス・パターンによって特徴づけられる。対照的に、オーディオおよび/またはビジュアル（AV）処理環境におけるHDDのデータ処理作業負荷を特徴付けるのは、頻繁に書き込まれるが少量のデータのみが含まれる小さな読み取りおよび書き込みによってインターリーブ、インタースパースすることができる複数のストリームの大きな読み取りおよび書き込みが優勢であることである。例えば、インターリーブによって、デジタル・ビデオ・レコーダ（DVR）は、テレビ放送をリアルタイムで録画して再生したり、２つのテレビ番組を同時に録画したりすることができる。グローバル・スペア・プールをセクタ・レベルの欠陥管理に使用する場合、グローバル・スペア・セクタ・プールにアクセスするための余分な時間が必要になるため、ストリーミング・データ・アプリケーションのパフォーマンスに悪影響を与える傾向がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
AVディスク・ドライブの別の特徴は、AVディスク・ドライブが、次の書き込みを行えるようになる前にインデックスが読み取り/書き込みヘッドによって検出されるまでディスクが回転して待つかなりの時間を費やすことである。この状態は、回転待ち時間と呼ばれる。同一出願人による米国特許出願番号第10/227,494号（「ディスク装置にストリーミングオーディオ／ビジュアルデータを書き込む方法」という名称を有し、2002年8月23日に出願され、参照としてここに含まれる）に開示されているような可変インデックス記録技術によって、ストリーミング・データ・アプリケーションのパフォーマンスに与える回転待ち時間の悪影響を取り除くことができる。可変インデックス記録技術によって、記録ヘッドが所定のトラック上に置かれ次第すぐに書き込み動作を実行することができる。物理トラックのインデックス（すなわち、開始）を待たずに最初に遭遇したセクタの位置で仮想インデックスを作成することによって、データは、所定のトラック内で遭遇する最初のセクタに書き込まれる。
【０００６】
図１は、固定長論理データ・ブロックB0-B7のデータ・クラスタを、HDDの典型的なデータ・トラック100の物理セクタS0-S7に書き込む典型的な可変インデックス記録技術を示す。ここで使用されているように、「データ・クラスタ」は、AVストリームデータの基本単位であり、ディスク上におけるフルデータ・トラックの整数の倍数である。従って、整数の倍数が1のとき、1つのフルトラックは1つのAVデータ・クラスタに相当する。同様に、整数の倍数が4であるとき、4つのフルトラックは1つのAVデータ・クラスタに相当する。このように、全てのデータの書き込みは、フルトラック書き込みである。AVデータ・クラスタは、従来のFBAフォーマットと同様に、さらに整数の固定長データ・ブロックに編成される。その結果として、クラスタはフルトラックの整数倍であるため、AVデータ・クラスタ内にあるデータ・ブロックの数は、データ・クラスタを形成するすべてのトラック内にある物理セクタの数と等しいということになる。クラスタ内にあるデータ・ブロックの少なくとも1つには、一群のAVデータ・ブロックから計算された誤り訂正情報を含めることができることを理解する必要がある。
【０００７】
図１に戻ると、各論理ブロックB0-B7は、1つの物理データ・セクタのサイズである。ブロックB0-B7は、米国特許出願番号第10/227,494号などに開示される可変インデックス記録技術を使用してデータ・トラック100に書き込まれる。可変インデックス記録技術の最も効率的な実装例は、「フルトラック」データ・フォーマットを使用することである。このデータ・フォーマットでは、読み取り/書き込みデータは、データ・トラック全体を占有するようにハード・ディスク・コントローラ（HDC）によって編成される。フルトラック・データ・フォーマットの別の利点は、回転待ち時間をなくすことができるためシーク動作が減少し、記憶装置全体のスループットを向上させることができることである。このように、図１の例に示されるように、物理セクタS6は、ヘッドがトラック100上に置かれた後に最初に遭遇するセクタであるため、ブロックB0は物理セクタS6に書き込まれる。次に、ブロックB1はデータ・セクタS7に書き込まれる。その後、ブロックB2はデータ・セクタS0に書き込まれる。それ以降は、図示されるとおりである。
【０００８】
可変インデックス記録技術では、一般にパリティ・セクタなど追加のトラック・レベルの誤り訂正コード（ECC）を使用して、大きな欠陥をその場で処理する。しかし、トラック・レベルのECCに大きなソフト・エラーの処理を行えるようにしたり、スペア処理にハード・エラーの処理を行えるようにしたりする能力を有することが望ましい。
【０００９】
必要なことは、可変インデックス書き込み技術を使用するヘッダーレス・フォーマットAV HDDに対してローカル・トラック・スペア処理を行うセクタ・レベルの欠陥管理技術である。
【課題を解決するための手段】
【００１０】
本発明の利点は、ディスク装置にデータを書き込む技術によって得ることができる。ディスク装置は、少なくとも１つのディスクと、データを各ディスクに書き込むためのヘッドとを備えている。各ディスクは、少なくとも１つのデータ・トラックを有する。ヘッドは、ディスク装置の選択されたディスクの選択されたデータ・トラック上に位置付けられる。選択されたデータ・トラックは、第１のあらかじめ決められた数の物理セクタを有する。ヘッドが各物理セクタに遭遇し、その物理セクタに欠陥がなければ、データ・ストリームの第２のあらかじめ決められた数のデータ・ブロックは、可変インデックス書き込み技術を使用して、選択されたデータ・トラックの対応する物理セクタに書き込まれる。このとき、データ・ブロックのサイズは、物理セクタのサイズに等しい。物理セクタに欠陥がある場合、選択されたデータ・トラックの物理セクタはスキップされる。選択されたデータ・トラックにデータ・ストリームのすべてのデータ・ブロックが書き込まれたとき、選択されたデータ・トラックの第３のあらかじめ決められた数の物理セクタはスキップされる。選択されたデータ・トラックの第３のあらかじめ決められた数のスキップ済み物理セクタは、その数において、第１のあらかじめ決められた数の物理セクタから、第２のあらかじめ決められた数のデータ・ブロックにデータ・トラックのスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい。
【００１１】
各データ・クラスタのサイズが、第１のあらかじめ決められた数の物理セクタの整数倍のサイズと等しくなるように、かつ各データ・クラスタの一部が、単一のデータ・トラックに対応するとともに第２のあらかじめ決められた数のデータ・ブロックを含むように、データ・ストリームは、少なくとも１つのデータ・クラスタに編成することができる。ヘッドが各物理セクタに遭遇したときにその物理セクタに欠陥がなければ、選択されたデータ・クラスタの選択された部分の第２のあらかじめ決められた数のデータ・ブロックは、可変インデックス書き込み技術を使用して、選択されたデータ・トラックの対応する物理セクタに書き込まれる。選択されたデータ・クラスタの選択された部分のすべてのデータ・ブロックが、選択されたデータ・トラックに書き込まれたとき、第３のあらかじめ決められた数の物理セクタはスキップされる。単一のデータ・トラックに対応したデータ・クラスタの各部分は、少なくとも１つの誤り訂正情報データ・ブロックを含むことができる。
【００１２】
選択されたデータ・クラスタのサイズが単一のデータ・トラックのサイズよりも大きい場合、選択されたデータ・クラスタの選択された部分の第２のあらかじめ決められた数のデータ・ブロックが、可変インデックス書き込み技術を使用して、選択されたデータ・トラックの対応する物理セクタに書き込まれる。ただし、選択されたデータ・トラックの各物理セクタにヘッドが遭遇したときにその物理セクタに欠陥がないことが条件である。ヘッドは、その後、第１のあらかじめ決められた数の物理セクタを有する第２の選択されたデータ・トラック上に位置付けられる。ヘッドが各物理セクタに遭遇したときにその物理セクタに欠陥がなければ、選択されたクラスタの第２の選択された部分の第２のあらかじめ決められた数のデータ・ブロックは、可変インデックス書き込み技術を使用して、第２の選択されたデータ・トラックの対応する物理セクタに書き込まれる。物理セクタに欠陥がある場合、第２の選択されたデータ・トラックの物理セクタはスキップされる。選択されたデータ・クラスタの第２の選択された部分のすべてのデータ・ブロックが、第２の選択されたデータ・トラックに書き込まれたとき、第２の選択されたデータ・トラックの第４のあらかじめ決められた数の物理セクタはスキップされる。第２の選択されたデータ・トラックの第４のあらかじめ決められた数のスキップ済み物理セクタは、その数において、第１のあらかじめ決められた数の物理セクタから、第２のあらかじめ決められた数のデータ・ブロックに第２のデータ・トラックのスキップ済み欠陥物理セクタの数を加えた合計を引いた値に等しい。
【００１３】
本発明では、物理セクタに欠陥があるかどうかを判定するための選択された各データ・トラックと関連付けられたメタデータを使用する。選択された各データ・トラックと関連付けられたメタデータは、選択されたトラックの物理セクタの数、選択されたトラック上のパリティ・セクタの数、および選択されたトラック上におけるスペア・セクタの数の少なくとも１つに関する情報を含む。加えて、選択された各データ・トラックと関連付けられたメタデータは、データ・ストリームのストリーム・ハンドル、選択されたトラックが空きであるかまたは占有されているかどうか、選択されたトラックの物理的開始に関係した選択されたデータ・トラックの開始セクタ、および選択されたトラック上にあるすべての欠陥のあるセクタのロケーションの少なくとも１つに関する情報を含む。
【発明の効果】
【００１４】
本発明によれば、可変インデックス書き込み技術を使用するヘッダーレス・フォーマットAV HDDに対してローカル・トラック・スペア処理を行うセクタ・レベルの欠陥管理技術が提供される。
【発明を実施するための最良の形態】
【００１５】
本発明は、添付の図面において限定ではなく例として説明される。添付の図面においては、同一の参照符号は同一の部品を示す。
【００１６】
本発明によれば、可変インデックス書き込み技術およびトラック・ローカル・スペア処理技術（以下、フローティング・スペア領域スペア処理技術と呼ぶ）を使用してセクタ・レベルの欠陥管理を行うヘッダーレス・フォーマットHDDが提供される。従来のセクタ・レベルの欠陥管理技術とは異なり、不良セクタが、トラック上の物理インデックスと固定化された関係を有するとともに、スペア・セクタは、可変インデックス・ロケーションと固定化された関係を有する。
【００１７】
図２の機能ブロック図には、本発明によるセクタ・レベルの欠陥管理を行うためのフローティング・スペア領域スペア処理技術を利用する典型的なHDD 200が示されている。HDD 200は、ディスク・ドライブ・アクチュエータ・アーム201、読み取り/書き込み（R／W）ヘッド202、ディスク203、ヘッド読み取り/書き込みプロセッサ240、サーボ・コントローラ241、制御論理242、バッファ・メモリ243、およびインタフェース制御装置244を備えている。ディスク203は、矢印250によって示されるように時計回りに回転する。ディスク・ドライブ・アクチュエータ・アーム201は、読み取り/書き込みヘッド202をディスク203の所定のデータ・トラック上に位置付ける。これは、矢印251および252によって示されるように、読み取り/書き込みヘッド202を所定のデータ・トラックまで一般にディスク203を横切って半径方向に移動することによって行う。ディスク203上には、物理セクタS0-S7を含む代表的な選択データ・トラックが示されている。ここで、ディスク203には複数の同心データ・トラックが含まれており、説明を明確にするために代表的な選択されたデータ・トラックのみが示されていることを理解すべきである。HDD 200は複数のディスクを備えることができ、図2では説明を明確にするためにそのうちのディスク203のみが示されていることも理解すべきである。
【００１８】
代表的な、好適実施態様においては、各物理セクタ番号は、トラック番号とサーボ位置付け情報から決定することができる。本発明でも、トラックの開始を特定する物理インデックス・マークに対する要件のない「インデックスレス」フォーマットが使用される。すなわち、たとえ各トラック上に最初の物理セクタ番号S0が存在しているとしても、この物理セクタS0の用途はそのトラック上に記録されているデータ・クラスタの開始を特定することではない。論理ブロックB0-B7を含むAVデータ・クラスタが空きトラックに書き込まれるとき、第1のデータ・ブロックB0は読み取り/書き込みヘッド202が遭遇する第1の物理セクタに書き込まれる。それによって、読み取り/書き込みヘッドがトラック・インデックスまたは特定の物理セクタを待つ場合に生じる回転待ち時間を最小限に抑えることができる。適切で典型的なインデックスレス・フォーマットは、米国特許出願番号第10/227,494号に開示されている。
【００１９】
書き込み動作が開始すると、読み取り/書き込みヘッド202は、以前に制御論理242に対して空きスペースを有するトラックとして特定されたデータ・トラックに移動される。所定のトラックへの「シーク」は、あらかじめ記録されているサーボ位置付け情報をディスクから読み取るヘッド202、およびアクチュエータ・アーム201を所定の方向に所定の距離だけ移動するようにサーボ・コントローラ241に信号で伝えるヘッド読み取り/書き込みプロセッサ240によって周知の態様で実行される。
【００２０】
シーク動作中、デジタルTVまたはDVRなどのAVデータ・ソース245からのデータ・ストリームは、インタフェース制御装置244を通じて転送される。ホストからのデータ・ストリームは、一般に開始アドレスおよび長さを有する一連のデータ・ブロックとして伝送される。ストリーム・コマンドがオブジェクト識別子、データ・セット、オフセット・アドレス、および長さから成る、オブジェクトまたはファイルに基づいたストリームなどの一部のストリーミング・システムでは、開始アドレスは、特定されたオブジェクトのベース・アドレスとオフセット・アドレスとの合計である。複数のストリームが存在する場合、AVデータ・ソース245は、オブジェクト識別子を使用することなどによって各ストリームに属するデータを特定する。
【００２１】
制御論理242は、受信したデータ・ストリームを、シーケンシャル・データ・ブロックを有するクラスタに編成する。その後、編成済みクラスタは、バッファ・メモリ243にロードされる。バッファ243は、AVデータ・ソース245から入力された書き込みデータを一時的に格納する。一般に、バッファ243のサイズは1クラスタより大きい。ディスク203上でクラスタを形成する特定の一連のデータ・トラックは、空きであると認識されたディスク203上の一連のクラスタから選択されるとともに、望ましくはクラスタ境界上で開始される。一般に、空き領域テーブルには一連の空きクラスタが含まれる。
【００２２】
書き込み動作は、バッファ243がクラスタに対するすべてのデータを入力する前に開始することができる。このように、読み取り/書き込みヘッド202が所定のトラック上に位置付けられて書き込み位置に収まったとき、クラスタの第1のブロックB0は、可変インデックス記録技術を使用して、遭遇した第1の物理セクタに書き込まれる。例えば、物理セクタS6は、読み取り/書き込みヘッド202が遭遇した最初の物理セクタとして図1および図2の両方に示されており、そのためクラスタの第1のセクタとなる。その後、残りのクラスタ・データ・ブロックB1-B7は、クラスタのすべてがトラック全体に書き込まれるまで物理セクタS7およびS0-S5に順次書き込まれる。図2は、読み取り/書き込みヘッド202の下を物理セクタS5がまだ通過していないためにブロックB7がまだ書き込まれていない状態を示す。
【００２３】
本発明のフローティング・スペア領域スペア処理技術によると、スペア・セクタは望ましくはトラック上のユーザ・データの末尾に配置される。従って、スペア・セクタは可変インデックス・ロケーションと固定化された関係を有するのに対して、不良セクタはトラック上の物理インデックスと固定化された関係を有する。例えば、物理セクタS0で開始する400の物理セクタを有するデータ・トラック、およびデータ・ブロックB0から開始して3つのスペア・セクタSP1-SP3を有する397データ・ブロックの長さのデータ・クラスタについて検討する。一般に、スペア・セクタSP1-SP3は、可変インデックス・ロケーションと固定化された関係を有する。対照的に、いずれの不良セクタも、トラックのインデックスと固定化された関係を有する。データ・トラックに対する典型的なデータ・クラスタのデータ書き込み動作中、第1のユーザ・データ・ブロックB0は、例えば、データ・トラックの物理セクタS301に書き込まれる。この場合、スペア・セクタSP1-SP3となるのはそれぞれ物理セクタS298、S299、S300であるため、物理セクタS301の後の297物理セクタに書き込みが行われる。隣接するデータ・トラックの開始セクタ・ロケーションは物理セクタS100である可能性がある。この場合、スペア・セクタとなるのは物理セクタS97、S98、S99である。
【００２４】
図３は、３つのスペア・セクタを有するデータ・トラック300に対する一般化された典型的な従来のトラック・トポロジーを示す。データ・トラック300は、物理インデックスIから開始する。物理インデックスIは、一般にサーボ・フィールドの一部である。物理インデックスIの後にはデータ・セクタS1、S2、…、Snが続く。ここで、nは、スペア・セクタとパリティ・セクタを含めないトラックの物理セクタの数である。データ・セクタSnの後には3つのスペア・セクタSP1、SP2、SP3が続く。最後に、スペア・セクタSP1-SP3の後にパリティ・セクタP1が続く。仮想インデックスは物理セクタS1にある。
【００２５】
物理セクタS3が不良な状態では、従来のHDCは、物理セクタS3の内容を、例えば、スペア・セクタSP1に対応した物理セクタに再割り当てして、物理セクタS3をBADとして記録する。図４は、トラック300の不良物理セクタS3の内容を、スペア・セクタSP1に対応した物理セクタに従来の方法で再割り当てした場合の図である。
【００２６】
本発明によると、データは、書き込みヘッドが置かれている第1のデータ・セクタから開始して、書き込み動作中に可変インデックス書き込み技術を使用して書き込まれる。書き込み動作中に欠陥のある物理セクタに遭遇したとき、欠陥のあるセクタはスキップする。欠陥のある物理セクタをスキップした後、書き込みシーケンスはすぐに再開される。
【００２７】
図５は、本発明によるディスクにデータを書き込むための典型的な基本フローティング・スペア領域スペア処理技術500を示すフローチャートである。ステップ501では、ホストからデータ・ストリームを受信する。ステップ502では、データ・ストリームを、データ・トラック内にある物理セクタの数の整数倍に等しいサイズを有する少なくとも1つのデータ・クラスタに編成する。単一のデータ・トラックに対応するデータ・クラスタの各部分には、データ・ブロック、スペア・データ・ブロック、および誤り訂正情報データ・ブロックが含まれる。データ・ブロックの総数と、スペア・データ・ブロックの総数と、データ・クラスタの各部分における誤り訂正情報を含むデータ・ブロックの総数を合計した値は、データ・トラック内の物理セクタの総数に等しい。図5の説明においては、典型的なデータ・クラスタは、2つのデータ・トラックにある物理セクタの数と同じ数のブロックを有するように選択される。すなわち、典型的なデータ・クラスタは、それぞれ単一のデータ・トラックに対応する2つの部分を有する。
【００２８】
ステップ503では、ヘッドは、ディスクの選択されたデータ・トラック上に位置付けられる。ステップ504では、選択されたデータ・トラック上にヘッドが位置付けられた後、データ・トラックの第1の物理セクタと遭遇する。ステップ505では、データ・トラック上で遭遇した第1の物理セクタに欠陥があるかどうか判定する。欠陥がない場合、ステップ506の処理に進み、そこでデータ・クラスタの選択された部分の第1のデータ・ブロックが第1の物理セクタに書き込まれる。この例の開始時点では、データ・クラスタの選択された部分はデータ・クラスタの第1の部分である。その後、ステップ508の処理に進む。ステップ505で物理セクタに欠陥があると判定された場合、ステップ507の処理に行き、そこで当該物理セクタをスキップする。ここで留意すべきは、物理セクタをスキップするごとに、書き込み中のデータ・クラスタにおける現在の部分の末尾にあるスペア・データ・セクタの1つが、データ・ブロックを格納するために再割り当てされる。その後、ステップ508の処理に進む。
【００２９】
ステップ508では、データ・クラスタの選択された部分を形成するすべてのデータ・ブロックがデータ・トラックに書き込まれたかどうか判定する。ステップ508において、データ・クラスタの選択された部分を形成するデータ・ブロックがまだすべて書き込まれていないと判定された場合は、ステップ509の処理に行き、そこで次の物理セクタと遭遇する。それ以外の場合は、ステップ505の処理に行く。そこでは、物理セクタに欠陥があるかどうかを判定して、セクタに欠陥がない場合にはデータ・ブロックをセクタに書き込み、またはセクタに欠陥がある場合はその物理セクタをスキップするというプロセスを繰り返す。
【００３０】
ステップ508において、データ・クラスタの選択された部分を形成するデータ・ブロックがすべて書き込まれたと判定された場合は、ステップ510の処理に進み、残りの未使用スペア・データ・セクタの数だけスキップする。次に、ステップ511の処理に進む。そこでは、誤り訂正情報を含むデータ・ブロックが、遭遇した物理セクタに連続して書き込まれる。その後、ステップ512の処理に進み、データ・クラスタのすべての部分が書き込まれたかどうか判定する。まだすべて書き込まれていない場合、ステップ503の処理に戻り、データ・クラスタの現在の部分に対してプロセスを繰り返す。ステップ512において、データ・クラスタのすべての部分が書き込まれたと判定された場合、ステップ513で処理が終了する。
【００３１】
図６は、本発明によるフローティング・スペア領域スペア処理技術を使用したときの、パリティ・セクタが後に続くスペア・セクタを有するデータ・トラック600に対する代表的なトラック・トポロジーを示す図である。図６に示されるように、データ・クラスタのサイズは、データ・トラック600にある物理セクタの数に等しい。図6では、書き込みヘッドはトラック600の後半部分の間に置かれ、データ・セクタS1-Sn-3は物理インデックスIの前に書き込まれている。物理インデックスIの後、データ・セクタSn-2、Sn-1が書き込まれ、次いで、BAD物理セクタがスキップされている。データ・セクタSnは、BADセクタの直後に書き込まれている。データ・セクタSnの後には、スペア・セクタSP2、SP3、およびパリティ・セクタP1が続く。
【００３２】
図７は、本発明によるフローティング・スペア領域スペア処理技術を使用したときの、スペア・セクタが後に続くパリティ・セクタを有するデータ・トラック700に対する、他の例のトラック・トポロジーを表す図である。図7に示されるように、データ・クラスタのサイズは、データ・トラック700にある物理セクタの数に等しい。データ・トラック700には、不良セクタが含まれておらず、この典型的なトラック・トポロジーには、2つのスペア・セクタSP2、SP3、および1つのパリティ・セクタP1が含まれる。図７では、書き込みヘッドはトラック700の後半部分の間に置かれ、データ・セクタS1-Snが書き込まれている。パリティ・セクタP1は、セクタSnが書き込まれた直後に書き込まれている。パリティ・セクタP1の後には、スペア・セクタSP2、SP3が続く。トラック700のトポロジーはシステム性能を改善するが、最後のデータ・セクタSnの書き込みを完了する前にパリティ・データを計算する必要がある。典型的なデータ・トラック・トポロジー700の書き込み技術は、ステップ510とステップ511を入れ替えて典型的なデータ・トラック・トポロジー700を作成すること以外は、図5に示される典型的な基本フローティング・スペア領域スペア処理技術500に類似している。
【００３３】
可変インデックス記録は、一般にメタデータを使用してインデックス・ロケーションおよびトラックごとの占有情報を格納する。本発明では、メタデータを拡張して、各トラックにおいて欠陥のあるスペア・セクタの場所を特定するのに必要なすべての情報を含める。例えば、トラックごとの欠陥物理セクタ情報は、インデックスIからの物理セクタ番号として格納される。スペア・セクタのロケーションを特定する情報は、直接格納する必要はない。なぜならば、スペア・セクタは、トラック上で許容されるスペアの数、およびトラック上の欠陥セクタの数に基づいて計算することができるからである。このように、ユーザ・セクタは、セクタ欠陥情報とともに物理セクタ番号と仮想インデックス・ロケーションを知ることができれば、物理セクタにマッピングすることができる（およびその逆）。
【００３４】
ストリーミング・データのシーケンシャルな性質は、ストリーミング・データ・アプリケーションのパフォーマンスを維持する。その一方で、メタデータを保持するのに必要なRAMの容量は制限される。各読み取りストリームに対しては、バッファを使用してストリーム内の次のNトラックに対するメタデータが保持される。例えば、N = 20の場合、メタデータに対するアクセスが要求されるのは20データ・トラックごとであるため、ストリーミング・スループットは5%レベルでのみ影響を受ける。書き込みストリームについては、同様のバッファが次のN個の空きトラックに対するメタデータを保持する。従って、書き込みストリームについても、N = 20トラックの場合にメタデータがストリーミング・データ・アプリケーションのパフォーマンスに与える影響は同様に極めてわずかである。
【００３５】
ディスク装置は、トラックと関連付けられたメタデータを維持管理する。一連のトラックに共通するメタデータには、トラックあたりの物理セクタの数（ゾーンごとに一定）、トラック上のパリティ・セクタの数、およびトラック上のスペア・セクタの数などが含まれる。ディスク装置によって維持管理されるとともに個別のトラックに特有のその他の情報としては、関連付けられたストリーム・ハンドル、トラック空き/占有インジケータ（予約ストリーム・ハンドル値でもよい）、トラックの物理的開始に関係したデータ・トラックの開始セクタ、トラック上にあるすべての欠陥セクタのロケーション（例えば、リストまたはビットマップとして）などがある。メタデータは、例えば、ストリーム生成、ストリーム削除、およびストリーム修正など、ストリーム割り当て事象に応じて修正される。さらに、ストリーム書き込み中に動的割り当てが使用される場合、メタデータはそれに応じて修正される。
【００３６】
ディスク装置は、データ・ストリームを書き込むとき、一連のトラックを割り当てて書き込みデータを保持する。一連の空きトラックを提供可能なファイル・アロケーション・テーブル（FAT）など、いずれの割り当て方法を使用してもよい。トラックが一旦割り当てられれば、データは割り当てられたトラックに順次書き込まれる。ディスク装置は、トラックに書き込む前に、トラックと関連付けられたメタデータから一連の欠陥のないセクタを決定する。ディスク装置は、トラックに書き込むとき、データの書き込みに利用可能な第1の欠陥のないセクタの開始データ・セクタ番号を記録する。トラック上のその後のセクタに欠陥がなければ、それらのセクタに書き込みが行われる。欠陥がある場合は、欠陥セクタをスキップする。そのトラックに対してすべてのデータが書き込まれた後、パリティ・セクタがその後のデータ・セクタに書き込まれる。パリティ・セクタの内容は、書き込みが行われる前に計算される。ここではパリティ・セクタをパリティ・セクタと呼んだが、その内容の計算には、いずれの相応しい誤りまたは消去訂正コードを使用してもよい。例えば、単一のパリティ・セクタは、単純なパリティを使用して計算してもよい。一対のパリティ・セクタは、EVENODDコードを使用して計算してもよい。さらに、より大きな数のパリティ・セクタは、リード・ソロモン・コードを使用して計算してもよい。
【００３７】
トラックに一旦書き込みが行われると、残りのすべての欠陥のないセクタはスペア・セクタとして割り当てられる。それらのロケーションと数は、トラック上のセクタの数、およびトラック上の欠陥セクタの数から求められる。その後、メタデータは、保存された開始セクタ・ロケーション、ストリーム・ハンドル、およびトラックフリー・ステータスによって更新される。すでに説明したように、一連のトラックからのメタデータの更新処理は、単一の更新動作にまとめてもよい。それによって、パフォーマンスに与える影響を最小限に抑えることができる。
【００３８】
ディスク装置は、ストリームを読み取るとき、ストリームと関連付けられた一連のトラックを特定する。トラックが一旦特定されると、データがトラックから順次読み取られる。ディスク装置は、トラックから読み取る前に、当該トラックおよび開始データ・セクタ番号と関連付けられたメタデータから、一連の欠陥のないセクタを特定する。ディスク装置は、トラックから読み取るとき、データの読み取りに利用可能な第1の欠陥のないセクタの位置で読み取りを開始する。トラック上のその後のセクタは、それらに欠陥がなくかつスペア・セクタでなければ読み取られる。それ以外の場合は、欠陥のあるセクタやスペア・セクタをスキップする。データ・セクタは、それらのストリーム・セクタ番号（すなわち、トラック上の開始データ・セクタからの番号）に従ってそれぞれバッファ・ロケーションに格納される。すべてのデータ・セクタが正常に読み取られれば、ディスク装置はトラックから正常に読み取ったことになり、ホストにデータを転送することができる。いずれのデータ・セクタも読み取ることができない場合、それらの内容は、残りのデータおよびパリティ・セクタから再構築される。動作が一旦完了したら、トラックから正常に読み取ったことになり、ホストにデータを転送することができる。
【００３９】
従来の方法と比較して、本発明ではメタデータのバッファ・サイズをかなり節約することができる。従来のヘッダーレス欠陥マッピングでは、RAMの要件は、ディスク装置における欠陥の数に直線的に比例し、またディスク装置におけるセクタの総数にほとんど直線的に比例する。本発明に関しては、メタデータのバッファ・サイズの要件は、トラック上で許容される欠陥の数、およびメタデータによって特定されるトラックの数に比例する。
【００４０】
上記の発明は、明確に理解できるようにある程度詳細に説明したが、特許請求の範囲から逸脱しなければある程度の変更および修正を行ってもよいことは明らかである。従って、本実施例は、本発明を制限するものではなく例示するものであると考えるべきである。また、本発明は、ここで説明される細部に限定されるものではなく、特許請求の範囲および均等物の範囲内で修正を行ってもよい。
【図面の簡単な説明】
【００４１】
【図１】固定長論理データ・ブロックのデータ・クラスタを、HDDの代表的なデータ・トラックの物理セクタに書き込む代表的な可変インデックス記録技術を示す図である。
【図２】本発明によるセクタ・レベルの欠陥管理を行うためのフローティング・スペア領域技術を利用する代表的なHDDを示す機能ブロック図である。
【図３】３つのスペア・セクタを有するデータ・トラックに対する一般化された典型的な従来のトラック・トポロジーを示す図である。
【図４】トラックの不良データ・セクタの内容をスペア・セクタに再割り当てする従来の再割り当てを示す図である。
【図５】本発明によるディスクにデータを書き込むためのフローティング・スペア領域スペア処理技術を示すフローチャートである。
【図６】本発明によるフローティング・スペア領域スペア処理技術を使用したときの、パリティ・セクタが後に続くスペア・セクタを有するデータ・トラックに対する典型的なトラック・トポロジーを示す図である。
【図７】本発明によるフローティング・スペア領域スペア処理技術を使用したときの、スペア・セクタが後に続くパリティ・セクタを有するデータ・トラックに対する、他の例としてのトラック・トポロジーを示す図である。
【符号の説明】
【００４２】
２００…ハード・ディスク・ドライブ（ＨＤＤ）、
２０２…読み取り／書き込みヘッド、
２０３…ディスク。
【図１】
2006114071.tif 000003
【図２】
2006114071.tif 000004
【図３】
2006114071.tif 000005
【図４】
2006114071.tif 000006
【図５】
2006114071.tif 000007
【図６】
2006114071.tif 000008
【図７】
2006114071.tif 000009