(57)【要約】【課題】利用できない不良セクタを予め探し出しておくことにより、データの損失を未然に防止することができるデータ記録装置を提供することを目的とする。【解決手段】データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録し、データ記録装置がコマンドを実行しているか否かを判断して、データ記録装置がコマンドを実行していないと判断した場合に、メモリからセクタの番地を読み出し、セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出して不良セクタを探索する。【選択図】      図１
2004171671.tif 000002
【特許請求の範囲】
【請求項１】
データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する記録ステップと、
前記データ記録装置がコマンドを実行しているか否かを判断する判断ステップと、
前記データ記録装置がコマンドを実行していないと判断した場合に、前記メモリから前記セクタの番地を読み出し、当該セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する検出ステップと
を含むことを特徴とする不良セクタの探索方法。
【請求項２】
前記検出ステップは、前記セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、または当該データの読み出しができない場合に、当該セクタに対するデータの読み出しが困難であると検出することを特徴とする請求項１記載の不良セクタの探索方法。
【請求項３】
前記判断ステップは、前記データ記録装置が直前のコマンドの実行を完了した後所定時間内に新たなコマンドを受けない場合にコマンドを実行していないと判断することを特徴とする請求項１記載の不良セクタの探索方法。
【請求項４】
前記データ記録装置がコマンドを受けた時に前記検出ステップを直ちに中断する中断ステップをさらに含むことを特徴とする請求項１記載の不良セクタの探索方法。
【請求項５】
データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、当該不良セクタの番地をメモリに記録する不良セクタ記録ステップと、
前記データ記録装置がコマンドを実行しているか否かを判断する判断ステップと、
前記データ記録装置がコマンドを実行していないと判断した場合に、前記メモリに記録された前記不良セクタに隣接する周辺セクタの番地を当該メモリに記録し、当該周辺セクタが不良セクタであるか否かを検出する検出ステップと、
前記周辺セクタが不良セクタでない場合に当該周辺セクタの番地を前記メモリから削除し、前記周辺セクタが不良セクタである場合に当該周辺セクタの番地を不良セクタとして前記メモリに記録する不良周辺セクタ記録ステップと
を含むことを特徴とする不良セクタの探索方法。
【請求項６】
前記検出ステップは、前記周辺セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、またはデータの読み出しができない場合に、不良セクタであると検出することを特徴とする請求項５記載の不良セクタの探索方法。
【請求項７】
前記検索ステップは、前記周辺セクタの番地の中から既に探索が完了したセクタの番地を前記メモリから削除する処理をさらに含むことを特徴とする請求項５記載の不良セクタの探索方法。
【請求項８】
前記検索ステップは、隣接する２つの前記不良セクタについてのそれぞれの周辺セクタの番地を相互に比較し、重複した周辺セクタの一方を前記メモリから削除する処理をさらに含むことを特徴とする請求項５または７記載の不良セクタの探索方法。
【請求項９】
前記データ記録装置がコマンドを受けた時に前記検出ステップを直ちに中断する中断ステップをさらに含むことを特徴とする請求項５記載の不良セクタの探索方法。
【請求項１０】
中断された前記不良セクタの探索に関する履歴情報を前記メモリに記録するステップをさらに含むとともに、当該メモリに記録された当該履歴情報に基づいて前記検出ステップを実行することを特徴とする請求項５記載の不良セクタの探索方法。
【請求項１１】
ディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する記録手段と、
コマンドを実行しているか否かを判断する判断手段と、
コマンドを実行していないと判断した場合に、前記メモリから前記セクタの番地を読み出し、当該セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する検出手段と
を有することを特徴とするデータ記録装置。
【請求項１２】
前記検出手段は、前記セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、または当該データの読み出しができない場合に、当該セクタに対するデータの読み出しが困難であると検出することを特徴とする請求項１１記載のデータ記録装置。
【請求項１３】
前記判断手段は、直前のコマンドの実行を完了した後所定時間内に新たなコマンドを受けない場合にコマンドを実行していないと判断することを特徴とする請求項１１記載のデータ記録装置。
【請求項１４】
コマンドを受けた時に直ちに前記検出手段の動作を中断する中断手段をさらに有することを特徴とする請求項１１記載のデータ記録装置。
【請求項１５】
ディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、当該不良セクタの番地をメモリに記録する不良セクタ記録手段と、
コマンドを実行しているか否かを判断するコマンド判断手段と、
前記メモリに記録された前記不良セクタに隣接する周辺セクタの番地を前記メモリに記録する周辺セクタ記録手段と、
前記周辺セクタが不良セクタであるか否かを検出する不良周辺セクタ検出手段と、
前記周辺セクタが不良セクタでない場合に当該周辺セクタの番地を前記メモリから削除し、前記周辺セクタが不良セクタである場合に当該周辺セクタの番地を不良セクタとして前記メモリに記録する不良周辺セクタ記録手段と
を有することを特徴とするデータ記録装置。
【請求項１６】
前記周辺セクタ記録手段で記録された周辺セクタの番地の中から既に探索が完了したセクタの番地を前記メモリから削除する手段をさらに含むことを特徴とする請求項１５記載のデータ記録装置。
【請求項１７】
隣接する２つの前記不良セクタについてのそれぞれの周辺セクタの番地を相互に比較し、重複した周辺セクタの一方を前記メモリから削除する手段をさらに含むことを特徴とする請求項１５または１６記載のデータ記録装置。
【請求項１８】
コンピュータに、
データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する機能と、
前記データ記録装置がコマンドを実行しているか否かを判断する機能と、
前記データ記録装置がコマンドを実行していないと判断した場合に、前記メモリから前記セクタの番地を読み出し、当該セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する機能と
を実現させることを特徴とするプログラム。
【請求項１９】
コンピュータに、
データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、当該不良セクタの番地をメモリに記録する機能と、
前記データ記録装置がコマンドを実行しているか否かを判断する機能と、
前記メモリに記録された前記不良セクタに隣接する周辺セクタの番地を前記メモリに記録する機能と、
前記周辺セクタが不良セクタであるか否かを検出する機能と、
前記周辺セクタが不良セクタでない場合に当該周辺セクタの番地を前記メモリから削除し、前記周辺セクタが不良セクタである場合に当該周辺セクタの番地を不良セクタとして前記メモリに記録する機能と
を実現することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードディスクドライブ装置等のデータ記録装置等に関し、より詳しくはディスク状記録媒体のデータトラック上に存在するデータの読み書きが困難なセクタの探索方法に関する。
【０００２】
【従来の技術】
ハードディスクドライブ装置は、現在最も普及しているコンピュータ装置の外部記憶装置の一つである。ハードディスクドライブ装置の記憶媒体であるハードディスク（磁気ディスクとも呼ばれる）は、周知のようにディスク表面を木の年輪状に分割したトラックをさらに放射状に区切ったセクタをデータの記録最小単位としている。
【０００３】
これらのセクタはすべてが正常なわけではなく、ハードディスク表面の外傷や塵の付着等によりデータの読み書きができない不良セクタが存在することがある。ハードディスクの製造過程で不良セクタが見出されたときには、不良セクタをディフェクトリストに記録して不使用とし、良好セクタだけを使う処理が行われる。
一方、ハードディスクドライブにおける不良セクタは製造過程でのみ発生するとは限らず、ハードディスクの表面に傷がつくなどの理由により、製品出荷後の使用中に不良セクタが発生することもある。この場合にも、発生した不良セクタに代わる代替セクタが割り付けられるリアサイン（Ｒｅ−Ａｓｓｉｇｎ）と呼ばれる処理が行われる。
【０００４】
ここで、製品出荷後の使用中に発生した不良セクタに代わり代替セクタを割り付ける従来技術として、不良セクタおよびその近傍セクタに対して代替セクタを割り当てる技術が開示されている（例えば、特許文献１参照）。
【０００５】
【特許文献１】
特開２０００−１５６０５１（第２頁、図３）
【０００６】
【発明が解決しようとする課題】
しかしながら、ハードディスクドライブにおいて、製品出荷後の使用中において発生した不良セクタがハードディスク表面の傷に起因するものである場合には、そのような不良セクタをリアサインするとしても、その傷に沿って不良セクタが連続的に広がっている可能性が極めて高いため、ある領域においては複数のセクタのデータが失われてしまうという技術的課題が見られた。
なお、上記の特許文献１には、オフセットリードによって回復するエラーに対し、隣接欠陥登録が必要と判断し、回復したオフセット方向と逆方向を隣接欠陥登録する方式が記載されているが、不良セクタが実際にはどのような範囲で広がっているかを探索するための有効な技術は開示されていない。
【０００７】
そこで本発明は、このような技術的課題に基づいてなされたものであり、その目的とするところは、利用できない不良セクタを予め探し出しておくことにより、データの損失を未然に防止することにある。
【０００８】
【課題を解決するための手段】
かかる目的のもと、本発明の不良セクタの探索方法は、データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する記録ステップと、データ記録装置がコマンドを実行しているか否かを判断する判断ステップと、データ記録装置がコマンドを実行していないと判断した場合に、メモリからセクタの番地を読み出し、セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する検出ステップとを含むことを特徴としている。
【０００９】
ここで、検出ステップは、セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、またはデータの読み出しができない場合に、セクタに対するデータの読み出しが困難であると検出することを特徴とすることができる。また、判断ステップは、データ記録装置が直前のコマンドの実行を完了した後所定時間内に新たなコマンドを受けない場合にコマンドを実行していないと判断することを特徴とすることができる。さらに、データ記録装置がコマンドを受けた時に検出ステップを直ちに中断する中断ステップをさらに含むことを特徴とすることができる。
【００１０】
また、本発明の不良セクタの探索方法は、データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、不良セクタの番地をメモリに記録する不良セクタ記録ステップと、データ記録装置がコマンドを実行しているか否かを判断する判断ステップと、データ記録装置がコマンドを実行していないと判断した場合に、メモリに記録された不良セクタに隣接する周辺セクタの番地をメモリに記録し、周辺セクタが不良セクタであるか否かを検出する検出ステップと、周辺セクタが不良セクタでない場合に周辺セクタの番地をメモリから削除し、周辺セクタが不良セクタである場合に周辺セクタの番地を不良セクタとしてメモリに記録する不良周辺セクタ記録ステップとを含むことを特徴としている。
【００１１】
ここで、検出ステップは、周辺セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、またはデータの読み出しができない場合に、不良セクタであると検出することを特徴とすることができる。また、検索ステップは、周辺セクタの番地の中から既に探索が完了したセクタの番地をメモリから削除する処理をさらに含むことを特徴とすることができる。また、検索ステップは、隣接する２つの不良セクタについてのそれぞれの周辺セクタの番地を相互に比較し、重複した周辺セクタの一方をメモリから削除する処理をさらに含むことを特徴とすることができる。さらに、データ記録装置がコマンドを受けた時に検出ステップを直ちに中断する中断ステップをさらに含むことを特徴とすることができる。さらにまた、中断された不良セクタの探索に関する履歴情報をメモリに記録するステップをさらに含むとともに、メモリに記録された履歴情報に基づいて検出ステップを実行することを特徴とすることができる。
【００１２】
また、本発明のデータ記録装置は、ディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する記録手段と、コマンドを実行しているか否かを判断する判断手段と、コマンドを実行していないと判断した場合に、メモリからセクタの番地を読み出し、セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する検出手段とを有することを特徴としている。ここで、検出手段は、セクタに記録されたデータに対して実行されるエラー回復プロシージャのステップ数が予め規定された規定値を超えるか、またはデータの読み出しができない場合に、セクタに対するデータの読み出しが困難であると検出することを特徴とすることができる。また、判断手段は、直前のコマンドの実行を完了した後所定時間内に新たなコマンドを受けない場合にコマンドを実行していないと判断することを特徴とすることができる。さらに、コマンドを受けた時に直ちに検出手段の動作を中断する中断手段をさらに有することを特徴とすることができる。
【００１３】
さらに、本発明のデータ記録装置は、ディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、不良セクタの番地をメモリに記録する不良セクタ記録手段と、コマンドを実行しているか否かを判断するコマンド判断手段と、メモリに記録された不良セクタに隣接する周辺セクタの番地をメモリに記録する周辺セクタ記録手段と、周辺セクタが不良セクタであるか否かを検出する不良周辺セクタ検出手段と、周辺セクタが不良セクタでない場合に周辺セクタの番地をメモリから削除し、周辺セクタが不良セクタである場合に周辺セクタの番地を不良セクタとしてメモリに記録する不良周辺セクタ記録手段とを有することを特徴としている。また、周辺セクタ記録手段で記録された周辺セクタの番地の中から既に探索が完了したセクタの番地をメモリから削除する手段をさらに含むことを特徴とすることができる。さらに、隣接する２つの不良セクタについてのそれぞれの周辺セクタの番地を相互に比較し、重複した周辺セクタの一方をメモリから削除する手段を含むことを特徴とすることができる。
【００１４】
また、本発明は、コンピュータに、データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中にデータの読み出しが困難であるセクタの番地をメモリに記録する機能と、データ記録装置がコマンドを実行しているか否かを判断する機能と、データ記録装置がコマンドを実行していないと判断した場合に、メモリからセクタの番地を読み出し、セクタと隣接する周辺セクタに対するデータの読み出しが困難か否かを検出する機能とを実現させることを特徴とするプログラムとして把握することができる。
【００１５】
さらに、本発明は、コンピュータに、データ記録装置に配置されたディスク状記録媒体のセクタに対するコマンドの実行中に不良セクタを検出し、不良セクタの番地をメモリに記録する機能と、データ記録装置がコマンドを実行しているか否かを判断する機能と、メモリに記録された不良セクタに隣接する周辺セクタの番地をメモリに記録する機能と、周辺セクタが不良セクタであるか否かを検出する機能と、周辺セクタが不良セクタでない場合に周辺セクタの番地をメモリから削除し、周辺セクタが不良セクタである場合に周辺セクタの番地を不良セクタとしてメモリに記録する機能とを実現することを特徴とするプログラムとして把握することもできる。
【００１６】
なお、これらのプログラムは、例えば、ディスクの予約領域に格納されたプログラムを、ＲＡＭにロードして実行される場合がある。また、予めＲＯＭに格納された状態にて、ＭＰＵで実行される形態がある。さらに、ＥＥＰＲＯＭ等の書き換え可能なＲＯＭを備えている場合には、機器がアッセンブリされた後に、プログラムだけが提供されてＲＯＭにインストールされる場合がある。このプログラムの提供に際しては、インターネット等のネットワークを介してデータ記録装置を備えたコンピュータにプログラムが伝送され、データ記録装置の有するＲＯＭにインストールされる形態も考えられる。
【００１７】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて本発明について詳細に説明する。図１に示すものは、本実施の形態におけるハードディスクドライブ装置を示すブロック図である。図１において、ハードディスクドライブ装置（ＨＤＤ）１は、ハードディスクコントローラ（ＨＤＣ）１１、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５を有するＨＤＣ／ＭＰＵ１０と、バッファ（ＢＵＦＦＥＲ）２０と、ディスクエンクロージャ（ＤＥ）３０とからなり、ＨＤＣ／ＭＰＵ１０は、インターフェース（Ｉ／Ｆ）５０によりホスト（ＨＯＳＴ）６０に接続されている。
そして、ＨＯＳＴ６０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ（ＤＶＤ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の書き換え不可能なリムーバルディスク６２に記録されたデータを読み取り、また、ＣＤ−ＲＷ（ＣＤ  Ｒｅｗｒｉｔａｂｌｅ）、ＤＶＤ−ＲＡＭ（ＤＶＤ  Ｒｅａｄ  ＡｃｃｅｓｓＭｅｍｏｒｙ）等の書き換え可能なリムーバルディスク６２にデータを記録可能なリムーバルディスクドライブ６１や、外部のネットワークと通信や各種プログラムのダウンロードを行うためのネットワークインターフェース（ＮＩ／Ｆ）６３を有している。なお、リムーバルディスク６２については、光ディスクの他、例えばＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ）等の光磁気ディスク等であってもよい。
【００１８】
ＨＤＣ／ＭＰＵ１０のうち、ＨＤＣ１１は、ホスト・インターフェース・コントローラ（ＨＩＣ）１２と、メモリ・マネージャ（ＭＭ）１３と、データ・コントローラ（ＤＣ）１４とを備えている。ＨＤＣ１１およびＭＰＵ１５は接続されており、ＭＰＵ１５にはＲＯＭ１６およびデバイス・ドライバ（ＤＤ）１７が接続されている。ＤＣ１４は、ＤＥ３０内のハードディスク９０に読み書きするためのデータ変換等を行うチャネル（ＣＨ）３１に接続される。一方、ＤＤ１７は、ＤＥ３０内に設けられたハードディスク９０のスピンドル（図示せず）の回転制御を行うためのスピンドルドライバやハードディスク９０に対してデータの読み書きを行う磁気ヘッド（図示せず）に設けられるボイスコイルモータ（ＶＣＭ：図示せず）を駆動するためのＶＣＭドライバを含んでいる。
【００１９】
このＨＤＤ１では、データの書き込みを行う際は、ホスト６０からＩ／Ｆ５０を介して転送されてくるデータがＨＩＣ１２、ＭＭ１３を経由して一旦バッファ２０に格納される。バッファ２０に格納されたデータは、その後、ＭＰＵ１５の指示によりＭＭ１３、ＤＣ１４を経由してハードディスク９０に書き込まれる。一方、ハードディスク９０に格納されたデータを読み出すときは、ＭＰＵ１５の指示により、ＤＣ１４、ＭＭ１３を経由して一旦バッファ２０にデータが格納され、その後、ＭＭ１３、ＨＩＣ１２を経由してＨＯＳＴ６０に出力される。
【００２０】
データの書き込み／読み出しは、ＲＯＭ１６およびバッファ２０に格納されたファームウエアをＭＰＵ１５が解釈実行することによって実現される。なお、バッファ２０に格納されるファームウエアは、ハードディスク９０に記録されており、立ち上げ時にバッファ２０に読み出されるようになっている。このファームウエアは、ＨＯＳＴ６０より書き換えることが可能である。そして、ＨＯＳＴ６０によるファームウエアの入手方法としては、リムーバルディスクドライブ６１でリムーバルディスク６２を読み出すものや、あるいは、ＮＩ／Ｆ６３を介して外部よりダウンロードすることが挙げられる。
【００２１】
次に、本実施の形態で実行されるハードディスク９０の不良セクタの探索について説明する。なお、以下「セクタ」とは、データセクタおよびサーボセクタの双方を意味する。
まず、ＨＤＤ１は、ＨＯＳＴ６０からデータの読み出しコマンドを受けた場合、ハードディスク９０上に書き込まれたデータの読み出しを開始する。データの読み出し中に実行されるＥＲＰ（Ｅｒｒｏｒ  Ｒｅｃｏｖｅｒｙ  Ｐｒｏｃｅｄｕｒｅｓ：エラー回復プロシージャ）のステップ数が予め規定された規定値を超えた場合、またはＥＲＰによってもセクタのデータが回復しなかった場合には、そのセクタにエラーが発生したと判断する。
【００２２】
そして、ＨＤＤ１は、そのエラーが発生したセクタを不良セクタとして、その不良セクタのＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）をバッファ２０に記録する。ここで、ＬＢＡとは、ハードディスク９０上の各セクタにふられた通し番号である。
また、バッファ２０には、不良セクタに関する情報として、後述する不良セクタの探索に関する履歴情報も記録する。すなわち、バッファ２０に記録された不良セクタの各々について、探索が既に完了した状態か（「探索完了」）、探索を開始したがＨＯＳＴ６０からのコマンドを受けたために探索を中断し、探索の再開を待っている状態か（「探索中断／再開待ち」）、探索をまだ始めていない状態か（「未探索」）、という探索履歴情報が同時に記録されている。
なお、本実施の形態では、不良セクタのＬＢＡおよび不良セクタに関する探索履歴情報をバッファ２０に記録したが、ＭＰＵ１５にＲＡＭを接続し、そのＲＡＭに記録してもよい。
【００２３】
次に、ＨＤＤ１は、ハードディスク９０へのデータの書き込みやハードディスク９０からのデータの読み出しなどのＨＯＳＴ６０からの最後のコマンドが処理された後、新たなコマンドが所定の時間内に受信するか否かを判断する。すなわち、ＨＤＤ１は、ＨＤＤ１がＨＯＳＴ６０からの最後のコマンドの処理を終了した時点で、ＭＰＵ１５内のストップウォッチをスタートし、所定時間、例えば１０秒経過するまでにＨＯＳＴ６０から新たなコマンドが来ない場合には、ＨＤＤ１は、ＨＯＳＴ６０からの「コマンドを実行していない状態」と判断する。
【００２４】
ＨＤＤ１は、「コマンドを実行していない状態」と判断した時点で、バッファ２０に記録されている不良セクタについて、その不良セクタの周辺のセクタが正常であるか、または不良であるかを調べる探索処理を開始する。ここで、「周辺」とは、不良セクタと物理的に隣接する領域を意味する。
【００２５】
ここで、ＭＰＵ１５で実行される不良セクタの周辺セクタを探索するアルゴリズムを説明する。図２は、不良セクタの周辺セクタを探索するアルゴリズムを説明するフローチャートである。
まず、不良セクタの探索は、バッファ２０に記録された不良セクタの中で、「探索中断／再開待ち」または「未探索」と記録された不良セクタであって、最も古く記録されているものを選択し、その不良セクタの探索を開始する（ステップＳ１０１）。これは、バッファ２０のうち不良セクタに関する情報が記録されている領域（エリア）は、リングバッファとして構成されているので、記録する領域に空領域がなくなると古い記録から順に消され、その場所に新しい記録が残されることになるからである。
【００２６】
次に、探索を開始する不良セクタに「探索中断／再開待ち」または「未探索」のいずれかの情報が記録されているかを判断し（ステップＳ１０２）、その不良セクタに「未探索」の記録がある場合は、その不良セクタの探索に関するデータを初期化する（ステップＳ１０３）。
なお、ＨＤＤ１が不良セクタの探索を製品出荷後最初に行う場合は、バッファ２０に記録されたすべての不良セクタには「未探索」と記録されているので、最初に探索される不良セクタについては、その不良セクタの探索に関するデータは初期化されることとなる。
【００２７】
次に、選択された探索対象の不良セクタに「探索中」と記録し（ステップＳ１０４）、その不良セクタに探索処理を実行する（ステップＳ１０５）。そして、探索が完了した場合（ステップＳ１０６）には、「探索完了」と記録し（ステップＳ１０７）、次に探索すべき不良セクタがあるか否かを調べる（ステップＳ１０８）。探索すべき不良セクタがある場合には、その不良セクタを選択し、「探索中」と記録する（ステップＳ１０９）。そして、同様に探索処理を実行する（ステップＳ１０５）。一方、探索すべき不良セクタがない場合には、探索を終了する（ステップＳ１１０）。
【００２８】
また、探索処理を実行中にＨＯＳＴ６０からコマンドが入ってきた場合（ステップＳ１１１）には、探索中の不良セクタに「探索中断／再開待ち」と記録し（ステップＳ１１２）、探索を中断する（ステップＳ１１３）。その際、不良セクタの探索に関するデータとして、その不良セクタの探索がどの段階まで終了しているかの情報を記録しておく。例えば、中断した不良セクタについて既に探索を終了した周辺セクタのＬＢＡを記録しておく。
なお、この探索処理は、ＨＯＳＴ６０からのコマンドの実行を妨げないようにして行う必要があるので、探索処理の実行中には頻繁にコマンドが入ってきていないかどうかを確認し、コマンドが入ってきたと同時に、即時に探索処理は中断する。
【００２９】
次に、第１の実施の形態である不良セクタの探索処理について説明する。ここで、説明を簡単にするために、セクタは各トラック上に同数が配列している場合について説明する。したがって、１つのセクタの周辺セクタとして８個が存在する場合を説明することとする。
図３は、ハードディスク９０上に記録されたセクタが並んでいる様子を模式的に説明する図である。図３では、長方形の１つ１つがセクタを表し、直線２０２がハードディスク９０上についた傷を表している。
図３において、バッファ２０に記録された不良セクタを探索の中心となるセクタとして、その不良セクタに隣接する周辺のセクタが最初の探索対象となる。まず探索処理ステップ１として、バッファ２０に探索作業用のエリアを割り付け、探索の中心となる不良セクタと、その周辺セクタのＬＢＡをその探索作業用のエリアに記録する。具体的には、エラーが起きた不良セクタのＬＢＡが１２３４５６番であったとして、列毎にＬＢＡが１００００番ずつずれていると仮定すると、探索作業用のエリアに記録される内容は、以下の表１のようになる。
【００３０】
【表１】
2004171671.tif 000003
【００３１】
探索処理ステップ２として、表１に示した周辺セクタの１つ１つについて、データの読み出しを行う。その中で、エラーを起こさなかったセクタについては、単にその記録を抹消する。エラーを起こしたセクタについては、次の探索の中心となる不良セクタとして記録をする。図３に示した場合では、ＬＢＡが１１３４５６番と、１３３４５６番とに傷があり、不良セクタとして認識され、新たにバッファ２０の探索作業用のエリアに記録される。この場合に、記録される内容は、以下の表２のようになる。なお、ここでもデータの読み出し中に実行されるＥＲＰのステップ数が予め規定された規定値を超えた場合、またはＥＲＰによってもセクタのデータが回復しなかった場合には、そのセクタにエラーが発生したと判断する。
次に、表２に示した周辺セクタの１つ１つについても、同様にデータの読み出しを行い、探索処理ステップ２を繰り返す。そして、不良セクタが発見されなくなった時点で探索処理ステップ２を終了する。
以上により、不良セクタを探索することができる。
【００３２】
【表２】
2004171671.tif 000004
【００３３】
ここで、探索の中心となるセクタに「探索中断／再開待ち」と記録されている場合は、そのセクタには不良セクタの探索に関するデータとして、探索がどの段階まで終了しているかの情報が記録されている。そこで、その情報を利用して、前の探索で中断した周辺セクタから探索を再開する。例えば、探索済みの周辺セクタに関する情報に基づいて、表２に示した周辺セクタから既に探索済みの周辺セクタを除いた残りのセクタを探索する。これによって、以前に行われた探索処理の結果を無駄なく利用でき、効率よく不良セクタの探索を行うことができる。
【００３４】
なお、エラーが発生したセクタに関してはセクタの代替処理を行う。すなわち、データの読み出し中に、データの読み出しができないことはないが、誤り訂正符号により大量のデータの修正を行わなければならない場合には、ＨＤＤ１は、そのセクタを書き直して読み返し、それでも誤り訂正符号によりデータの修正が必要とされた場合は、そのセクタにはハードディスク９０上の欠陥があるものとみなし、リアサインすることで、データの損失を防止する。
また、データの読み出しができないエラーの場合には、ＨＤＤ１は、そのセクタの場所を記録しておき、その後、そのセクタに書き込みが行われるときに、読み返して正常に読み出すことができるか否かを確認し、もし再び読み出すことができなければ、そのセクタは使用不可能とみなして、リアサインすることで、データの損失を最小限に留める。
【００３５】
次に、第２の実施の形態となる不良セクタの探索処理について説明する。本実施の形態においても、前記した探索処理ステップ１および探索処理ステップ２を行う。
本実施の形態では次の処理を加える。表２において、２つの不良セクタ（ＬＢＡ＝１１３４５６／１３３４５６）の周辺セクタである、ＬＢＡ＝１２３４５５／１２３４５６／１２３４５７、ＬＢＡ＝１１３４５５／１１３４５７、およびＬＢＡ＝１３３４５５／１３３４５７は、直前の探索の中心セクタに関する周辺セクタとして既に探索処理が終了しているセクタである。このような重複は、探索の中心となる不良セクタが直前の探索の中心となる不良セクタとは傷の広がりに沿って連続しているから必ず生じることになる。
そこで、表３に示したように、バッファ２０の探索作業用のエリアには探索中心セクタの履歴として、直前の探索の中心のセクタも同時に記録する。
【００３６】
【表３】
2004171671.tif 000005
【００３７】
そして探索処理ステップ３として、表３に示したように探索の中心となるセクタの周辺のセクタを機械的に８つ選んだ後、その８つのセクタの中から、直前の探索の中心となったセクタ、およびその周辺セクタを削除する。それにより、探索の中心となるセクタを１つ先へ進める場合には、進める直前の探索の中心であったセクタおよびそこで探索された周辺セクタが、その周辺セクタとして重複して記録されることを防止することができ、効率的に探索処理を行うことができる。
その結果、探索処理ステップ３では、バッファ２０の探索作業用のエリアには以下の表４の内容が記録されることになる。なお、表４において、削除したセクタは薄字で表現している（以下の表においても同様に表現している）。
そして、表４に示した周辺セクタについて探索ステップ２が行われ、不良セクタを探索することができる。
なお、探索の中心となるセクタに「探索中断／再開待ち」と記録されている場合は、前述した場合と同様に、その情報を利用して、前の探索で中断した周辺セクタから探索を再開する。
【００３８】
【表４】
2004171671.tif 000006
【００３９】
次に、第３の実施の形態となる傷の両側のセクタがエラーを起こした場合の不良セクタの探索処理について説明する。
図４は、ハードディスク９０上の傷が連続する２つのセクタに跨る状態を説明した図である。上記した探索処理ステップ１〜３を順に進めていった場合に、図４に示したように傷の両側のセクタ、すなわちＬＢＡが連続する２つのセクタがエラーを起こしている場合がある。例えば、直前の探索の中心のセクタがＬＢＡ＝１３３４５６であり、現在の探索の中心のセクタがＬＢＡ＝１４３４５７および１４３４５６の場合である。この場合には、表５の内容が、バッファ２０の探索作業用のエリアに記録される。
【００４０】
【表５】
2004171671.tif 000007
【００４１】
上記した探索処理ステップ３で行うように、表５に示した周辺セクタから、直前の探索の中心のセクタとその周辺セクタを削除する処理を行ったとしても、表６に下線を引いて示したように一部の周辺セクタ（ＬＢＡ＝１５３４５６／１５３４５７）には重複が生じる。
【００４２】
【表６】
2004171671.tif 000008
【００４３】
この場合は、探索処理ステップ４として、探索の中心となる２つのセクタの周辺セクタをそれぞれ１つ１つ相互に比較して、重複がないかを調査し、重複した周辺セクタの一方を削除する。表７は、表６において重複した周辺セクタ（ＬＢＡ＝１５３４５６／１５３４５７）を削除したものである。なお、表７では、ＬＢＡ＝１４３４５７の周辺セクタから、二重に登録されているセクタを削除した例を示している。
【００４４】
【表７】
2004171671.tif 000009
【００４５】
このように、探索の中心となるセクタのＬＢＡが連続するように隣り合っており、かつ、直前の探索の中心のセクタが一致する場合は、上記した探索処理ステップ３を行うのみでは重複する周辺セクタを完全に取り除くことはできないので、探索処理ステップ３を行った後に探索処理ステップ４も行うことにより、さらに効率的な探索処理が可能となる。
なお、探索処理ステップ３を行わず、探索処理ステップ４のみを直接行うことも可能である。
【００４６】
【発明の効果】
以上説明したように、本発明によれば、不良セクタを予め探し出しておくことにより、データの損失を未然に防止することが可能となる。
【図面の簡単な説明】
【図１】本実施の形態におけるハードディスクドライブ装置を示すブロック図である。
【図２】不良セクタの周辺セクタを探索するアルゴリズムを説明するフローチャートである。
【図３】ハードディスク上に記録されたセクタが並んでいる様子を模式的に説明する図である。
【図４】ハードディスク上の傷が連続する２つのセクタに跨る状態を説明した図である。
【符号の説明】
１…ハードディスクドライブ装置（ＨＤＤ）、１０…ＨＤＣ／ＭＰＵ、１１…ハードディスクコントローラ（ＨＤＣ）、１２…ホスト・インターフェース・コントローラ（ＨＩＣ）、１３…メモリ・マネージャ（ＭＭ）、１４…データ・コントローラ（ＤＣ）、１５…ＭＰＵ、１６…ＲＯＭ、１７…デバイス・ドライバ（ＤＤ）、２０…バッファ（ＢＵＦＦＥＲ）、３０…ディスクエンクロージャ（ＤＥ）、３１…チャネル（ＣＨ）、５０…インターフェース（Ｉ／Ｆ）、６０…ホスト（ＨＯＳＴ）、６１…リムーバルディスクドライブ、６２…リムーバルディスク、６３…ネットワークインターフェース（ＮＩ／Ｆ）、９０…ハードディスク
【図１】
2004171671.tif 000010
【図２】
2004171671.tif 000011
【図３】
2004171671.tif 000012
【図４】
2004171671.tif 000013