(57)【要約】【課題】  エラー回復処理におけるエラー回復の確率を高める。【解決手段】  ＥＲＰ処理中にリセット・コマンドを取得すると、リセット・コマンドに応答してタイマが起動される。リセット・コマンドを受信してから、タイマによって規定される予め定められた時間が経過するまでの間、ＥＲＰステップが続行される。タイマが終了すると、ＥＲＰステップＭの終了時点でＥＲＰ処理が停止する。また、ＨＤＤ１２０はホスト１１０に対してリセットの完了を表すリセット・レディを返す。リセット・コマンド受信後もＥＲＰ処理を続行するので、エラー回復の確率を高めることができる。【選択図】  図２
2005276026.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶装置におけるエラー回復方法であって、
ホストから取得した第１のコマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を開始するステップと、
前記エラー回復処理中に、前記ホストから第２のコマンドを取得するステップと、
前記第２のコマンドを取得した後に、前記エラー回復処理を続行するステップと、
前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信するステップと、
を有する、データ記憶装置におけるエラー回復処理方法。
【請求項２】
前記第２のコマンドはリセット・コマンドである、請求項１に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項３】
前記第１のコマンドは、リード・コマンドもしくはライト・コマンドである、請求項２に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項４】
前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記続行していたエラー回復処理を停止するステップをさらに有する、請求項１に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項５】
前記第２のコマンドの取得に応答してタイマを起動するステップをさらに備え、
前記続行していたエラー回復処理を停止するステップは、前記タイマの終了に応答して前記続行していたエラー回復処理を停止し、
前記第２のコマンドに対する完了通知を送信するステップは、前記タイマの終了に応答して前記第２のコマンドに対する完了通知を送信する、
請求項４に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項６】
前記第２のコマンドに対する完了通知を送信するステップの後に、前記第１のコマンドのリトライ・コマンドを前記ホストから取得するステップと、
前記リトライ・コマンドに応答した処理において、同一エラー発生に応答して前記停止されたエラー回復処理を再開するステップと、
をさらに有する、
請求項４に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項７】
前記停止されたエラー回復処理を再開するステップは、前記停止されたエラー回復処理において終了したエラー回復ステップの次のエラー回復ステップから再開する、請求項６に記載のデータ記憶装置におけるエラー回復処理方法。
【請求項８】
ホストとの間における通信データをインターフェースする、インターフェース部と、
前記ホストから取得した第１のコマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を実行する、エラー回復処理実行部と、を備え、
前記エラー回復処理実行部は、第２のコマンドを取得した後に前記エラー回復処理を続行し、
前記インターフェース部は、前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信する、
データ記憶装置。
【請求項９】
前記エラー回復処理実行部は、前記第２のコマンドを取得してから予め定められた時間が経過した後に前記エラー回復処理を停止する、請求項８に記載のデータ記憶装置。
【請求項１０】
前記第２のコマンドは前記第１のコマンドを取り消すコマンドである、請求項８に記載のデータ記憶装置。
【請求項１１】
前記第１のコマンドは、リード・コマンドもしくはライト・コマンドである、請求項８にデータ記憶装置。
【請求項１２】
前記第２コマンドの取得に応答して時間を計測する時間計測部をさらに備え、
前記エラー回復処理実行部は、前記時間計測部の計測時間に応じて前記エラー回復処理を停止し、
前記インターフェース部は、前記時間計測部の計測時間に応じて前記第２のコマンドに対する完了通知を前記ホストに送信する、
請求項９に記載のデータ記憶装置。
【請求項１３】
前記エラー回復処理実行部は、前記第１のコマンドに対するリトライ・コマンドに対するエラー回復処理において、前記停止されたエラー回復処理を再開する、請求項８に記載のデータ記憶装置。
【請求項１４】
前記エラー回復処理実行部は、前記停止されたエラー回復処理の最後に終了したエラー回復ステップを特定可能なデータを登録し、前記登録されたデータに基づいて決定されたエラー回復ステップから、前記停止されたエラー回復処理を再開する、請求項１３に記載のデータ記憶装置。
【請求項１５】
前記エラー回復処理実行部は、前記停止されたエラー回復処理の最後に終了したエラー回復ステップの次のエラー回復ステップから前記停止されたエラー回復処理を再開する、請求項１３に記載のデータ記憶装置。
【請求項１６】
ホストのデータを記憶する磁気ディスクと、
ホストとの間における通信データをインターフェースする、インターフェース部と、
前記ホストから取得したリードもしくはライト・コマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を実行する、エラー回復処理実行部と、を備え、
前記インターフェース部は、前記ホストからリセット・コマンドを取得してから予め定められた時間が経過した後に、前記リセット・コマンドに対する完了通知を前記ホストに送信し、
前記エラー回復処理実行部は、前記リセット・コマンドを取得した後に前記エラー回復処理を続行し、前記リセット・コマンドを取得してから予め定められた時間が経過した後に前記エラー回復処理を停止し、前記リードもしくはライト・コマンドのリトライ・コマンドの処理における同一エラーの発生に応答して前記停止した回復処理において最後に終了したエラー回復ステップの次のステップから前記停止した回復処理を再開する、
磁気ディスク記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置におけるエラー回復処理に関する。
【背景技術】
【０００２】
データ記憶装置として、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、磁気ディスクにデータを記憶するハード・ディスク・ドライブ（ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタルカメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途は、その優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックにはアドレス情報（サーボ情報）と、ユーザ・データが記憶される。薄膜素子で形成された磁気ヘッドがアドレス情報に従って所望の領域（セクタ）にアクセスすることによって、データ書き込みあるいはデータ読み取りを行うことができる。データ読み取り処理において、磁気ヘッドが磁気ディスクから読み取れた信号は、信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに送信される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、磁気ディスクに書き込まれる。
【０００４】
磁気ディスクのデータ書き込み／データ読み取りにおいてエラーが生じた場合、ＥＲＰ（Error Recovery Procedure）処理が実行される。ＥＲＰ処理は、エラーに応じて予め登録されているＥＲＰステップを実行することによって、エラー回復を行う。各ＥＲＰステップにおいてデータ書き込み／データ読み取りの条件を変化され、ＥＲＰ処理は、異なる条件におけるデータ書き込み／データ読み取り処理を繰り返すことによってエラー回復を行う。ＥＲＰ処理については、例えば、特許文献１に開示されている。この特許文献１において、従来技術として、以下のＥＲＰ処理の実行方法が開示されている。図６を参照して説明する。
【０００５】
（１）ホスト・システムからＨＤＤに対してリード又はライト・コマンドが伝えられ、ＨＤＤはそれに応答してリード又はライト処理を実行する。
（２）論理ブロック・アドレス（ＬＢＡ）Ａにおいて読取り又は書込みエラーが発生すると、ＭＰＵはＨＤＣ、チャネルを介してＥＲＰ処理のステップ１から順次ＥＲＰ処理を実行する。
（３）タイム・アウトまでの時間がＥＲＰ処理の全ステップ（Ｍステップとする）の実行時間より短いシステムにおいては、ＥＲＰステップＫ（＜Ｍ）まで実行されても依然としてエラーが回復しなかった場合、ＭＰＵはホスト・システムからリセット命令を受け取り、ＥＲＰステップＫでＥＲＰ処理が停止し、ＨＤＤはホストに対してリセット完了信号を伝える。
【０００６】
（４）ホスト・システムからＨＤＤに対してリトライ命令が伝えられ、ＨＤＤはそれに応答して再読取り又は再書込みを実行する。
（５）ＬＢＡ「Ａ」において再び読取り又は書込みエラーが発生すると、再度ＥＲＰステップ１から順次ＥＲＰ処理が実行される。
（６）タイム・アウトまでの時間は通常システムにおいて一定なので、ＥＲＰステップＫまで実行されても依然としてエラーが回復しなかった場合、ＭＰＵはホスト・システムからリセット命令を受け取り、ＥＲＰステップＫでＥＲＰ処理が停止し、ＨＤＤはホストに対してリセット完了信号を伝える。
【０００７】
上述の従来技術においては、タイム・アウトまでの時間がＥＲＰ処理の全ステップの実行時間より短く、リトライにおいては再びＥＲＰステップ１から実行されるため、ＥＲＰステップ（Ｋ＋１）〜Ｍまでは実行されない。このため、あるエラーに対してＥＲＰステップ（Ｋ＋１）〜Ｍの間に有効なステップがあったとしても、そのステップは実行されないため、エラーが回復する可能性は低い。
【０００８】
この問題を解決するため、特許文献１は、タイム・アウトによってＥＲＰ処理の実行が中断された場合、リトライの際には最後に実行されたＥＲＰステップの次のＥＲＰステップから実行することを提案する。中断されたＥＲＰステップからＥＲＰ処理を再開することによって、より深いＥＲＰステップを実行することができるため、エラー回復の確率を高めることができる。
【０００９】
【特許文献１】特開平１０−１６１８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記特許文献１に記載のＥＲＰ処理によれば、リトライにおいてより多くのＥＲＰステップを実行することができ、エラー回復の確率を向上することができる。リセット・コマンドに対する応答がない場合にホストはＨＤＤをディスコネクトするため、ＨＤＤはリセット・コマンドに応答することが必要である。一方、リセット・コマンド発行からディスコネクトまでは一定の時間が確保されているため、リセット・コマンドに対する応答はこの時間経過（タイム・アウト）前に実行すればよい。しかし、特許文献１に開示されたＥＲＰ処理は、ホストからのリセット・コマンドの受信に応答して処理を即座に停止し、受信したリセット・コマンドに対する完了通知をホストに送信する。このため、リセット・コマンドの発行からタイム・アウトまでの時間を有効に使用することができず、実行可能なＥＲＰステップ数が限定されていた。
【００１１】
本発明は上記の事情を背景としてなされたものであって、本発明の目的は、ＥＲＰ処理において実行可能なＥＲＰステップ数を増加し、エラー回復の確率を向上することである。
【課題を解決するための手段】
【００１２】
本発明の第１の態様にかかるデータ記憶装置におけるエラー回復処理方法は、ホストから取得した第１のコマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を開始するステップと、前記エラー回復処理中に、前記ホストから第２のコマンドを取得するステップと、前記第２のコマンドを取得した後に、前記エラー回復処理を続行するステップと、前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信するステップと、を有する。第２のコマンドを取得後にエラー回復処理を続行することによって、エラー回復の確率を高めることができる。また、予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信することによって、ホストへの応答を確実に行うことができる。
【００１３】
前記第２のコマンドはリセット・コマンドである場合に、本発明は特に有用である。リセット・コマンドに対して予め定められた時間が経過した後に完了通知を送信するので、ホストによるディスコネクトを効果的に回避することができる。あるいは、前記第１のコマンドは、リード・コマンドもしくはライト・コマンドである場合に、本発明は特に有用である。
【００１４】
前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記続行していたエラー回復処理を停止するステップをさらに有することが好ましい。これによって、許容される時間内におけるエラー回復ステップの実行を効果的に進めることができる。
【００１５】
さらに、前記第２のコマンドの取得に応答してタイマを起動するステップをさらに備え、前記続行していたエラー回復処理を停止するステップは、前記タイマの終了に応答して前記続行していたエラー回復処理を停止し、前記第２のコマンドに対する完了通知を送信するステップは、前記タイマの終了に応答して前記第２のコマンドに対する完了通知を送信することが好ましい。タイマによってエラー回復処理と完了通知の送信を制御することによって、完了通知の送信に応じて確実にエラー回復処理を進めることができる。
【００１６】
前記第２のコマンドに対する完了通知を送信するステップの後に、前記第１のコマンドのリトライ・コマンドを前記ホストから取得するステップと、前記リトライ・コマンドに応答した処理において、同一エラー発生に応答して前記停止されたエラー回復処理を再開するステップと、をさらに有することが好ましい。さらに、前記停止されたエラー回復処理を再開するステップは、前記停止されたエラー回復処理において終了したエラー回復ステップの次のエラー回復ステップから再開することが好ましい。これによって、エラー回復ステップの重複した処理を低減し、より先のエラー回復ステップに進むことができる。
【００１７】
本発明の第２の態様にかかるデータ記憶装置は、ホストとの間における通信データをインターフェースする、インターフェース部と、前記ホストから取得した第１のコマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を実行する、エラー回復処理実行部と、を備える。前記エラー回復処理実行部は、第２のコマンドを取得した後に前記エラー回復処理を続行し、前記インターフェース部は、前記第２のコマンドを取得してから予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信する。第２のコマンドを取得後にエラー回復処理を続行することによって、エラー回復の確率を高めることができる。また、予め定められた時間が経過した後に、前記第２のコマンドに対する完了通知を前記ホストに送信することによって、ホストへの応答を確実に行うことができる。
【００１８】
前記エラー回復処理実行部は、前記第２のコマンドを取得してから予め定められた時間が経過した後に前記エラー回復処理を停止することが好ましい。前記第２のコマンドは前記第１のコマンドを取り消すコマンドである場合に、あるいは、前記第１のコマンドは、データ・リード・コマンドもしくはデータ・ライト・コマンドである場合に、本発明は特に有用である。
【００１９】
前記第２コマンドの取得に応答して時間を計測する時間計測部をさらに備え、前記エラー回復処理実行部は、前記時間計測部の計測時間に応じて前記エラー回復処理を停止し、前記インターフェース部は、前記時間計測部の計測時間に応じて前記第２のコマンドに対する完了通知を前記ホストに送信することが好ましい。
【００２０】
前記エラー回復処理実行部は、前記第１のコマンドに対するリトライ・コマンドに対するエラー回復処理において、前記停止されたエラー回復処理を再開することが好ましい。さらに、前記エラー回復処理実行部は、前記停止されたエラー回復処理の最後に終了したエラー回復ステップを特定可能なデータを登録し、前記登録されたデータに基づいて決定されたエラー回復ステップから、前記停止されたエラー回復処理を再開することが好ましい。あるいは、前記エラー回復処理実行部は、前記停止されたエラー回復処理の最後に終了したエラー回復ステップの次のエラー回復ステップから前記停止されたエラー回復処理を再開することが好ましい。
【００２１】
本発明の第３の態様にかかる磁気ディスク記憶装置は、ホストのデータを記憶する磁気ディスクと、ホストとの間における通信データをインターフェースする、インターフェース部と、前記ホストから取得したリードもしくはライト・コマンドに関するエラー発生に応答して、複数のエラー回復ステップを含むエラー回復処理を実行する、エラー回復処理実行部と、を備える。前記インターフェース部は、前記ホストからリセット・コマンドを取得してから予め定められた時間が経過した後に、前記リセット・コマンドに対する完了通知を前記ホストに送信する。前記エラー回復処理実行部は、前記リセット・コマンドを取得した後に前記エラー回復処理を続行し、前記リセット・コマンドを取得してから予め定められた時間が経過した後に前記エラー回復処理を停止し、前記リードもしくはライト・コマンドのリトライ・コマンドの処理における同一エラーの発生に応答して前記停止した回復処理において最後に終了したエラー回復ステップの次のステップから前記停止した回復処理を再開する。
【発明の効果】
【００２２】
本発明によれば、エラー回復処理において実行可能なエラー回復ステップ数を増加し、エラー回復の確率を向上することができる。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２４】
まず、本実施形態におけるデータ処理システム及びそれに含まれるＨＤＤの全構成について説明を行う。図１は、本実施形態におけるデータ処理システム１００の概略構成を示す構成図である。データ処理システム１００は、コンピュータやデジタルカメラなど、データ処理を行うホスト１１０と、データ記憶装置の一例であるハード・ディスク・ドライブ（ＨＤＤ）１２０を有している。ＨＤＤ１２０は、１もしくは複数の磁気ディスク１２１、ヘッド・スタック・アセンブリ１２３、さらに、磁気ディスク１２１へのデータの書き込み及び磁気ディスク１２１からのデータ読み取りのために、これらの要素を制御するコントローラ１２４を備えている。磁気ディスク１２１は、ホスト１１０から伝送されたデータを記憶する記憶メディアの一例である。ヘッド・スタック・アセンブリ１２３は、各磁気ディスク１２１の記録面に対応し、薄膜素子で形成された磁気ヘッド１２２を備えている。磁気ヘッド１２２は、データ読み取りあるいはデータ書き込みのために、磁気ディスク１２１の記憶領域にアクセスする。
【００２５】
ホスト１１０から伝送されたホスト・ユーザ・データは、コントローラ１２４によって必要な処理がなされライト信号に変換されたあと、ヘッド・スタック・アセンブリ１２３に送られる。磁気ヘッド１２２は、取得したライト信号に応じて、磁気ディスク１２１の記録面にデータを書き込む。一方、磁気ヘッド１２２によって磁気ディスクから読み出されたリード信号は、コントローラ１２４によってデジタル信号に変換され必要な処理がなされたあと、ホスト１１０に伝送される。
【００２６】
磁気ディスク１２１は、磁性層が磁化されることによってデータを記録する不揮発性の記録媒体であり、ＨＤＤ１２０が動作しているときに、スピンドル・モータ１２５のスピンドル軸を中心として所定の速度で回転駆動される。ＨＤＤ１２０の非動作時には、磁気ディスク１２１は静止している。磁気ディスク１２１の表面には、データを格納するための区画として同心円状に複数のトラックが形成されている。
【００２７】
磁気ディスク１２１の表面には磁気ディスク１２１の半径方向に沿って形成されたサーボ・データ記憶領域が形成されている。磁気ディスク１２１の表面には複数のサーボ・データ記憶領域が形成され、各サーボ・データ記憶領域の間には、ユーザ・データ記憶領域が形成されている。ユーザ・データ記憶領域は、各トラックにおいて、円周方向に複数のセクタに分割されている。サーボ・データを磁気ヘッド１２２が読み取ることによって、磁気ヘッド１２２の位置に関する情報を取得することができる。
【００２８】
ヘッド・スタック・アセンブリ１２３は、磁気ディスク１２１の表面に沿って揺動可能にフレーム内に取り付けられており、ボイス・コイル・モータ（ＶＣＭ）１２６によって駆動される。ヘッド・スタック・アセンブリ１２３の先端部にはスライダが固定され、スライダ表面に磁気ヘッド１２２が固定されている。磁気ヘッド１２２は、典型的には、再生ヘッドと記録ヘッドを一体的に形成した薄膜素子である。ヘッド・スタック・アセンブリ１２３が揺動することによって、磁気ヘッド１２２が磁気ディスク１２１の表面の半径方向に沿って移動する。これによって、磁気ヘッド１２２が所望の領域にアクセスすることができる。
【００２９】
図１の例においては、ヘッド・スタック・アセンブリ１２３は、一つの磁気ディスク１２１に対して２つの磁気ヘッド１２２を有しており、磁気ヘッドそれぞれが磁気ディスク１２１の各表裏面に対応する。尚、ＨＤＤ１２０は１枚の磁気ディスク１２１を有すること、あるいは、磁気ディスクの片面のみに対応する磁気ヘッド１２２を有することも可能である。
【００３０】
図１に示すように、コントローラ１２４は、リード／ライト・チャネル（Ｒ／Ｗチャネル）１２７、ハードディスク・コントローラ（ＨＤＣ）１２８、マイクロプロセッサ・ユニット（ＭＰＵ）１２９、メモリ１３０、モータ・ドライバ・ユニット１３１を有している。モータ・ドライバ・ユニット１３１は、ボイス・コイル・モータ・ドライバ（ＶＣＭドライバ）１３２及びスピンドル・モータ・ドライバ（ＳＰＭドライバ）１３２を有している。
【００３１】
Ｒ／Ｗチャネル１２７は、ホスト１１０から取得したデータについて、ライト処理及びリード処理を実行する。ライト処理において、Ｒ／Ｗチャネル１２７はＨＤＣ１２８から供給された書き込みデータをコード変調し、さらにコード変調された書き込みデータをライト信号（電流）に変換して磁気ヘッド１２２に供給する。磁気ヘッド１２２は、取得した信号に応じてコイルに電流を流すことによって磁気ディスク１２１にデータを書き込む。また、Ｒ／Ｗチャネル１２７はホスト１１０にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル１２７は磁気ヘッド１２２から供給されたリード信号からデータを抽出し、フィルタリング処理、デコード処理等を行う。デコード処理された読み取りデータは、ＨＤＣ１２８に供給される。
【００３２】
ＭＰＵ１２９は、メモリ１３０にロードされたマイクロ・コードに従って動作し、磁気ヘッド１２２のポジショニング制御、インターフェース制御、ディフェクト管理、ＥＲＰ（Error Recovery Procedure）処理など、ＨＤＤ１２０の全体の制御及びデータ処理に関する必要な処理を実行する。ＥＲＰ処理は、一般に、磁気ディスク１２１のデータ書き込み／データ読み取りにエラーが生じた場合に、データ書き込み／データ読み取りの条件を変化させて、データ書き込み／データ読み取り処理を繰り返すことによって、エラー回復を行う。特に、本形態において、ＭＰＵ１２９は、ＥＲＰ処理において特徴的な処理を実行するが、この点については、後に詳述される。ＨＤＤ１２０の起動に伴い、メモリ１３０には、ＭＰＵ１２９上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１２１あるいはＲＯＭ（不図示）からロードされる。
【００３３】
Ｒ／Ｗチャネル１２７によって読み出されるデジタル・データは、ホスト１１０からのユーザ・データの他に、サーボ・データを含んでいる。Ｒ／Ｗチャネル１２７は、読み取ったリード・データからサーボ・データを抽出する。ＭＰＵ１２９は、マイクロ・コードに従って、サーボ・データを使用した磁気ヘッド１２２の位置決め制御処理を行う。ＭＰＵ１２９からの制御データはＶＣＭドライバ１３２に出力される。ＶＣＭドライバ１３２は制御信号に応じて駆動電流をＶＣＭ１２６に供給する。また、ＭＰＵ１２９は、マイクロ・コードに従って、スピンドル・モータ１２５の回転制御のために、モータ・ドライバ・ユニット１３１のレジスタにＳＰＭ制御データをセットする。ＳＰＭドライバ１３３は、セットされたＳＰＭ制御データに応じて、スピンドル・モータ１２５の回転制御を実行する。尚、例えば、サーボ制御は、ＨＤＣ１２８が実行するようにＨＤＤ１２０を構成することも可能である。
【００３４】
ＨＤＣ１２８は、ホスト１１０との間のインターフェース機能を備えており、ホスト１１０から伝送されるユーザ・データ及び、リード・コマンドやライト・コマンドを含む制御データなどを受信する。受信したユーザ・データは、Ｒ／Ｗチャネル１２７に転送される。また、Ｒ／Ｗチャネル１２７から取得した磁気ディスク１２１からの読み取りデータ、あるいは、データ転送のための制御データをホスト１１０に送信する。ＨＤＣ１２８は、この他、ユーザ・データについての誤り訂正処理などを実行する。
【００３５】
以下において、本形態におけるＥＲＰ処理について説明する。ホスト１１０からのコマンドに応じて、データのリード／ライト処理が実行される。リード／ライト処理においては、ホスト１１０からのアドレス・データに応じて、磁気ディスク１２１上のサーボ・データを読み取ることによって所望のトラックにヘッドを位置決めした後、データの読み取り、書き込みが実行される。リード／ライト処理において、正確にデータの読み取り／書き込みができず、エラーとなる場合がある。エラーの原因の多くはデータの欠落である。データの欠落は、経時的に発生した磁気ディスク１２１表面上の傷や磁性体の経時変化等による損傷等が原因であることが多い。
【００３６】
例えば、リード処理において、磁気ディスク１２１からのデータ読み取りは、磁気ディスク１２１、ヘッド１２２、及びＲ／Ｗチャネルにおいて設定された標準の読み取り条件の下で実行される。標準条件に従った読み取りにおいてエラーが発生した場合に、条件を変化させて読み取りを繰り返す。条件は、例えば、追従性を意図的に変化させたり、読み取り信号を増幅するオート・ゲイン・コントロール（ＡＧＣ）の増幅率を維持させたり、リード・データのフィルタ係数を変更して再度読み取りを実行する。これらの条件変更によるエラー回復は複数のエラー回復ステップを順次実行するＥＲＰ処理を起動することによって行われる。
【００３７】
ＥＲＰ処理に含まれるエラー回復のステップとして知られたものは、例えば短時間で処理可能なステップとして、ＡＧＣホールド、オフトラックリード、サーボ領域のスキップ・リード、等がある。また、比較的時間を必要とするステップとして、バタフライシーク、低回転バーニッシュなどがある。バタフライシークは、エラーの発生したトラック近傍において、シーク動作を数回繰り返して、ターゲット・トラックに再度ヘッドを位置制御するものである。また、低回転バーニッシュは磁気ヘッド１２２のフライハイトをさげて、スライダによってディスク上の突起、ごみ等を排除してエラー回復を達成するものである。
【００３８】
尚、ＥＲＰ処理によっても書き込みが成功しない場合、ハード・エラーとして認識され、そのセクタのデータをスペア・セクタと呼ばれる磁気ディスク１２１上の代替のセクタに記録する、データ・リアサインが行われる。また、読み取り時においても、所定のＥＲＰステップでデータの読み取りが成功した場合、スペア・セクタにデータを移すための書き込みが行われ、同様にデータ・リアサインが行われる。
【００３９】
上記のように、ＥＲＰ処理は、所定のＥＲＰステップによって正確にデータの読み出し／書き込みが実行され、エラーが回復されることによって完了する。あるいは、予め登録されているＥＲＰステップが全て実行されエラーが回復されない場合に、ＥＲＰ処理は完了する。ＥＲＰ処理の完了前に、ホスト１１０からリセット・コマンドが発行されることがある。リセット・コマンドは、既に発行されているコマンドを取り消す命令である。
【００４０】
ホスト１１０は、コマンドをＨＤＤ１２０に発行した後、予め定められた時間が経過する（タイム・アウト）と、ＨＤＤ１２０にリセット・コマンドを発行する。リセット・コマンドに対する完了応答（リセット・レディ）をＨＤＤ１２０から受信しないと、ホスト１１０はＨＤＤ１２０との接続をディスクネクトし、ＨＤＤ１２０がホスト１１０から見えない状態とする。このため、ＨＤＤ１２０は、リセット・コマンドを受信した場合、ディスコネクトされる前にホスト１１０にリセット・レディを返すことが必要である。
【００４１】
本形態において、ＥＲＰ処理は、ホスト１１０からのリセット・コマンドに応答して中断される。また、受信したリセット・コマンドに対応して、リセット・レディをホスト１１０に返す。これによって、ＥＲＰ処理中にホスト１１０からリセット・コマンドを受信した場合にあっても、ホスト１１０によって接続をディスコネクトされることを避けることができる。
【００４２】
また、リセット・コマンドの発行後に、ホスト１１０のＥＲＰ処理が起動され、ホスト１１０からＨＤＤ１２０にリトライ指示がなされることがある。リトライ指示は、リセットされたコマンドと同一のコマンドを発行することによって、ＨＤＤ１２０にリセットされた処理と同一の処理を命令する。また、１回のリトライにおいてタイム・アウトすると、リセット命令が、ホスト１１０によって再発行される。典型的には、ホスト１１０のＥＲＰ処理におけるリトライ回数は予め決定されている。予め決定されている回数のリトライによってリード／ライト処理が正常に完了しない場合は、ハード・エラーとして処理、または磁気ディスク１２１のスペア領域へリアサインされる。
【００４３】
上記のように、ＥＲＰ処理は、コマンドに対応して予め登録されている複数のＥＲＰステップを、順に実行することによって進められる。いずれかのＥＲＰステップによってエラーが回復されることによってＥＲＰ処理は完了する。このため、少ないリトライ回数によってエラー回復される確率を高めるためには、１回のリトライにおいてできる限り多くのＥＲＰステップを実行することが好ましい。
【００４４】
例えば、１回のリトライによって終了可能なＥＲＰステップ数を増やすことによって、１回のリトライによって完了可能なＥＲＰ処理を増やすことができる。あるいは、ＥＲＰステップの全てを終了するために、複数回のリトライが必要である場合、早いリトライ段階において、エラー回復することができる可能性を高めることができる。また、ＥＲＰ処理が多くのステップから構成されているため、ホスト１１０のリトライ規定数以内において全てのＥＲＰステップを終了することが難しい場合においても、より多くのＥＲＰステップを実行することが可能であるため、エラー回復の確率を飛躍的に高めることができる。
【００４５】
本形態において、１回のリトライにおける実行ＥＲＰステップ数を増加させるため、リセット・コマンドをホスト１１０から受信した後すぐにリセット・レディを返すことなく、リセット・コマンド受信後の予め定められた時間が経過した後に、リセット・レディをホスト１１０に返す。リセット・コマンド受信からリセット・レディを返すまでの間に、ＥＲＰ処理が実行される。これによって、１回のリトライにおけるＥＲＰステップ実行数を増加することができる。リセット・コマンド発行からディスコネクトまでの間には、タイム・アウトとなる時間が存在する。そのため、タイム・アウトの前にリセット・レディを返すことによって、ディスコネクトは避けることができる。
【００４６】
また、本形態においては、リセット・コマンドによってＥＲＰ処理が中断された場合、ホスト１１０からのリトライ指示に応答して、中断されたＥＲＰステップから再開される。これによって、重複したＥＲＰステップの実行を避けることができるので、効率的なＥＲＰ処理を実行することができる。上記のように、１回のリトライにおける実行ＥＲＰステップ数を増加し、ＥＲＰステップの重複的実行を避けることによって、ＥＲＰ処理におけるエラー回復の確率を大きく向上することができる。
【００４７】
図２を参照して、以下に、本形態におけるＥＲＰ処理の概略を説明する。図２は、ホスト１１０の動作、ＨＤＤ１２０の動作及びＨＤＤ１２０内のＥＲＰ処理のそれぞれを示すシーケンス図である。ＥＲＰ処理は、ＭＰＵ１２９上で動作するマイクロ・コードによって実行制御される。
【００４８】
（１）まず、ホスト１１０からＨＤＤ１２０に対してリード・コマンド又はライト・コマンドが発行される。ＨＤＤ１２０はリード・コマンド又はライト・コマンドを受信し、それに応答してリード処理又はライト処理を実行する。
（２）論理ブロック・アドレス（ＬＢＡ）「Ａ」において読取り又は書込みエラーが発生すると、ＥＲＰプログラムがメモリ１３０から呼び出され、ＭＰＵ１２９はＨＤＣ１２８、Ｒ／Ｗチャネル１２７などを介してＥＲＰ処理のＥＲＰステップ１から順次ＥＲＰステップを実行する。
【００４９】
（３）リセット命令が発行されるタイム・アウトまでの時間がＥＲＰ処理の全ステップ（Ｎステップとする）の実行時間より短いシステムにおいては、ＥＲＰステップＫ（＜Ｎ）まで実行されても依然としてエラーが回復しなかった場合、ＭＰＵ１２９はホスト１１０からリセット・コマンドを受け取る。
（４）ＨＤＤ１２０は、リセット・コマンドに応答してタイマを起動する。また、ＭＰＵ１２９は、リセット・コマンドを受信してから、タイマによって規定される予め定められた時間が経過するまでの間、ＥＲＰステップ（Ｋ＋１）〜Ｍを実行する。
（５）  予め定められた時間が経過しタイマが終了すると、ＥＲＰステップＭの終了時点でＥＲＰ処理が停止する。
【００５０】
（６）また、ＨＤＤ１２０はホスト１１０に対してリセットの完了を表すリセット・レディを返す。なお、ＥＲＰ処理がＥＲＰステップＫまで実行される間にエラーが回復した場合、ＨＤＤ１２０はコマンド完了通知（リード・データもコマンド完了通知に含まれるとする）をホスト１１０に送信する。あるいは、ＥＲＰステップＫ〜Ｍまで実行される間にエラーが回復した場合は、リセット・レディがホスト１１０に返される。
【００５１】
（７）ホスト１１０からＨＤＤ１２０に対してリトライ・コマンド（リセットされたコマンドと同一コマンド）が発行されると、ＨＤＤ１２０は、受信したリトライ・コマンドに応答して、再読取り又は再書込みを実行する。リトライの回数は、ホスト１１０によって異なる。
【００５２】
（８）エラー回復がされなかった場合、同じＬＢＡにおいて再びエラーとなる確率は一般に高い。ＬＢＡ「Ａ」において再び読取り又は書込みエラーが発生すると、ＥＲＰプログラムがメモリ１３０から呼び出され、ＭＰＵ１２９はＨＤＣ１２８、Ｒ／Ｗチャネル１２７などを介して、ＥＲＰステップ（Ｍ＋１）からＥＲＰ処理を再開する。ＬＢＡ「Ａ」において読取り又は書込みエラーが発生しなかった場合、（９）のステップに進む。なお、ＬＢＡ「Ａ」以外のＬＢＡで新たに読取り又は書込みエラーが発生した場合は、通常通り、ＥＲＰステップ１から順次実行される。
【００５３】
（９）再読取りが成功したらＨＤＤ１２０は読み取ったデータをホストに送り、再書込みが成功したらＨＤＤ１２０は命令完了通知をホスト１１０に対して伝える。エラー回復がなされず、全てのＥＲＰステップが終了する前に、リセット・コマンドをホスト１１０から受信した場合、ステップ（３）〜ステップ（９）までの処理が繰り返される。
（１０）ＥＲＰ処理の最終ステップであるＥＲＰステップＮまで実行されてもエラーが回復しない場合、リード・コマンドの場合はハード・エラーと認識し、ライト・コマンドの場合はデータを他の物理ブロック・アドレス（ＰＢＡ）にリアサインし、リアサイン先のＰＢＡにデータを書き込む。
【００５４】
図３は、本形態のＥＲＰ処理に係わるシステムの論理構成を示すブロック図である。各論理ブロックは、ＭＰＵ１２９上でマイクロ・コードが実行されることによって、あるいは、メモリ１３０に所定のデータを記憶することによって構成することができる。図３において、３０１はホスト１１０との間において、ＨＤＣ１２８を介して、コマンド／データの通信を行うインターフェース部の一例であるインターフェース・ハンドラ、３０２は、ホスト１１０からのコマンドを、各実行ブロックにディスパッチするコマンド・ディスパッチャである。３１１は、非リード／ライト系のコマンドを実行する非リード／ライト系処理部である。
【００５５】
３２１は、リード／ライト・コマンドに応じて、リード／ライト系処理及びその処理を行う各ブロックを制御する、リード／ライト系マネージャである。リード／ライト系マネージャ３２１は、コマンド及び状況を判断し、次にどのプロセスを実行するかを決定する。３２２は、リード／ライト系コマンドを実行するリード／ライト系実行部、３２３はＥＲＰ処理を実行するＥＲＰ実行部である。ＭＰＵ１２９がマイクロ・コードに従って動作することによって、上記各ブロックとして機能する。３２４は、ＥＲＰ処理の内容が登録されたＥＲＰテーブルである。ＥＲＰ実行部３２３は、このテーブルを参照してＥＲＰステップを実行する。ＥＲＰテーブル３２４はメモリ１３０に記憶され、各エラーに対応する複数のＥＲＰステップが登録されている。３２５は、ＥＲＰ処理を制御する制御データを記憶するメモリ１３０領域を示している。
【００５６】
３３１は、ホスト１１０からのコマンドに応じて、ＨＤＣ１２８、Ｒ／Ｗチャネル１２７、ドライバ・ユニット１３１など、他のハードウェアを制御するハードウェア・マネージャである。ハードウェア・マネージャ３３１は、非リード／ライト系処理部３１１、リード／ライト系実行部３２２、あるいは、ＥＲＰ実行部３２３からの要求に従ってハードウェアを制御する。３３２はリセット処理部であり、ホスト１１０からのリセット・コマンドの処理を行う。３３３は時間計測部の一例であるタイマである。タイマは、時間を測定し、予め定められた時間の経過を知らせる。これらのブロックも、ＭＰＵ１２９上で動作するマイクロ・コードによって構成することができる。
【００５７】
図３に示された論理構成のデータ処理動作について説明する。まず、図４を参照して、実行される処理の全体的概要を説明する。インターフェース・ハンドラ３０１は、ホスト１１０からコマンドを受け取ると（Ｓ４０１）、それをコマンド・ディスパッチャ３０２に渡す。コマンド・ディスパッチャ３０２は、コマンドの種類に応じてリード／ライト系のコマンドとその他のコマンドに振り分ける（Ｓ４０２）。リード／ライト系コマンドはリード／ライト系マネージャ３２１にディスパッチされ、その他のコマンドは非リード／ライト系処理部３１１にディスパッチされる。非リード／ライト系処理部３１１は、ディスパッチされたコマンドに応じて処理を実行する（Ｓ４０３）。
【００５８】
リード／ライト系マネージャ３２１は、ディスパッチされたコマンドを取得すると、コマンド及び状況に応じてＲ／Ｗ系のプロセスを制御する。リード／ライト処理は、ＬＢＡから物理アドレスへのアドレス変換、ヘッドを目的トラックに移動するシーク処理、目的アドレスにおけるデータの書き込み／読み取り処理などを実行する。リード／ライト系マネージャ３２１は、取得したコマンド及び現在の状況に応じて、リード／ライト系実行部３２２に必要な処理を要求する。
【００５９】
リード／ライト系実行部３２２は、リード／ライト系マネージャ３２１から要求された処理を実行する（Ｓ４０４）。リード／ライト系実行部３２２は、要求処理に応じて、実際の動作実行要求をハードウェア・マネージャ３３１に渡す。動作実行要求により、ハードウェア・マネージャ３３１の制御の下に他にハードウェア構成による実際の動作が実行される。動作実行が終了すると、エラー発生などの実行結果を表すステータス通知が、ハードウェア・マネージャ３３１からリード／ライト系マネージャ３２１に通知される。エラーの無い状態で処理が終了したことを通知された場合（Ｓ４０５のＮ）は、リード／ライト系マネージャ３２１は次の処理の実行に移る。各処理が正常に終了しコマンドの実行処理が完了すると、インターフェース・ハンドラ３０１を介してコマンド完了通知がホストに通知される（Ｓ４０６）。
【００６０】
コマンド実行における一連の処理中にエラーが発生すると（Ｓ４０５のＹ）、リード／ライト系マネージャ３２１はＥＲＰ実行部３２３にＥＲＰ処理を要求し、ＥＲＰ実行部３２３によるＥＲＰ処理が実行される（Ｓ４０７）。ＥＲＰ実行部３２３はリード／ライト系マネージャ３２１からエラーが発生したアドレスを通知され、そのアドレスについて、所定のエラー回復処理を実行する。
【００６１】
以下において、図２を参照して説明されたＥＲＰ処理について、図３のブロック図及び図５のフローチャートを参照して説明する。
ＬＢＡ「Ａ」において読取り又は書込みエラーが発生すると（Ｓ５０１）、ＥＲＰ実行部３２３がコールされ、ＥＲＰ実行部３２３はリード／ライト系マネージャ３２１からエラーが発生した処理及びアドレスを取得する（Ｓ５０２）。ＥＲＰ実行部３２３は、ＥＲＰ処理の開始により、ＥＲＰ処理中であることを示すＥＲＰフラグを立てる（Ｓ５０３）。ＥＲＰ実行部３２３は、ＥＲＰテーブル３２４を参照し、エラーが発生した処理に応じたＥＲＰ処理を決定する。ＥＲＰテーブル３２４は、ＥＲＰテーブル３２４に登録されたＥＲＰステップに従って、ハードウェア・マネージャ３３１に要求を渡し、ＥＲＰステップ１から順次ＥＲＰステップを実行する（Ｓ５０４）。
【００６２】
発行したコマンドについてタイム・アウトとなると、ホスト１１０は、リセット・コマンドをＨＤＤ１２０に送信する。インターフェース・ハンドラ３０１は、リセット・コマンドをＨＤＣ１２８を介して取得し、コマンド・ディスパッチャ３０２にそれを渡す（Ｓ５０５）。コマンド・ディスパッチャ３０２は、取得したコマンドがリセット・コマンドであると判断し、リセット処理部３３２にリセット・コマンドをディスパッチする。リセット処理部３３２は、リセット・コマンドを取得すると、ＥＲＰフラグを参照して、ＥＲＰ処理中であることを判定する（Ｓ５０６）。ＥＲＰ処理中でなければ通常のリセット処理（Ｓ５０７）を行い、ＥＲＰ処理中である場合、ＥＲＰタイマ３３３を起動する（Ｓ５０８）。図２の例に従えば、ＥＲＰ処理中であり、ＥＲＰ実行部３２３はＥＲＰステップＫまで終了している。
【００６３】
タイマ３３３の起動後、ＥＲＰ実行部３２３はＥＲＰ処理を続行し、ＥＲＰステップ（Ｋ＋１）からＥＲＰステップＭまで実行する（Ｓ５０９）。このタイミングでタイマ３３３が終了すると、ＥＲＰ実行部３２３はＥＲＰ処理を停止し、最後に終了したＥＲＰステップＭをメモリ１３０に登録する（Ｓ５１０）。タイマ３３３の終了に応答して、リセット処理部３３２はリセット・レディをホスト１１０に返すことをインターフェース・ハンドラ３０１に要求する（Ｓ５１１）。
【００６４】
ホスト１１０のリトライ処理が、リトライ・コマンド（リセットされたコマンドと同一のコマンド）を発行すると、リトライ・コマンドは、インターフェース・ハンドラ３０１からコマンド・ディスパッチャ３０２に渡される（Ｓ５１２）。コマンド・ディスパッチャ３０２は、リード／ライト系のコマンドであると判定し、リード／ライト系マネージャ３２１にコマンドの処理を要求する。リード／ライト系マネージャ３２１は、リード／ライト系実行部３２２に処理実行を要求し、リード処理又はライト処理が再実行される（Ｓ５１３）。
【００６５】
ＬＢＡ「Ａ」において再び読取り又は書込みエラーが発生すると（Ｓ５１４）、リード／ライト系マネージャ３２１は、ＥＲＰ実行部３２３をコールする。リード／ライト系マネージャ３２１は、ＥＲＰ実行部３２３にリトライ・コマンドの処理であることを通知する。ＥＲＰ実行部３２３は、メモリに登録されているＥＲＰステップを参照し、ＥＲＰステップ（Ｍ＋１）からＥＲＰ処理を再開する（Ｓ５１５）。
【００６６】
図２を参照して説明されたように、再読取りが成功した場合に読み取ったデータをホスト１１０に送信され、再書込みが成功した場合にＨＤＤ１２０はコマンド完了通知がホスト１１０に送信される。尚、エラー回復がなされず、全てのＥＲＰステップが終了する前に、リセット・コマンドをホスト１１０から受信した場合、上記の処理が繰り返される。ＥＲＰ処理の最終ステップであるＥＲＰステップＮまで実行されてもエラーが回復しない場合にリード・コマンドの場合はハード・エラーと認識され、ライト・コマンドの場合にデータはリアサインされる。
【００６７】
本実施形態によれば、ＥＲＰ処理中にリセット・コマンドを受信した後もＥＲＰ処理を続行するので、実行されるＥＲＰステップ数を増加し、エラー回復の確率を高めることができる。尚、ＥＲＰ処理は、リセット・コマンド受信後に所定時間ＥＲＰ処理を続行し、さらに、中断されたＥＲＰステップからのＥＲＰ処理を再開することが好ましいが、設計によって、リセット・コマンド受信後のＥＲＰ処理の続行のみを採用することも可能である。本形態のように、最後に終了したＥＲＰステップの次のステップからＥＲＰ処理を再開することが好ましいが、設計によって、例えば、一部ステップを重複して実行することも可能である。本形態においては最後に終了したＥＲＰステップＭが登録されるが、最後の終了ステップを特定することが可能であれば、データ内容は問われない。例えば、再開するステップ（Ｍ＋１）を登録することも可能である。ステップ（Ｍ＋１）によって、最後の終了ステップを特定することが可能である。
【００６８】
ＥＲＰ各処理と論理構成との関係は上記例に限定されるものではない。設計者は、効率的な機能及び回路構成によって、記憶装置を設計することができる。本実施形態において、ＨＤＤ１２０はデータの書き込み及び読み取り処理を行うことができるが、再生のみを行う再生専用装置に本発明を適用することも可能である。尚、本発明は磁気ディスク記憶装置に特に有用であるが、記憶データを光学的に処理する光学記憶装置など、他の態様の記憶装置に適用することが可能である。
【図面の簡単な説明】
【００６９】
【図１】本実施形態における、データ処理システムの概略構成を示すブロック図である。
【図２】本実施形態における、ＥＲＰ処理の概略を示すシーケンス図である。
【図３】本実施形態における、ＥＲＰ処理に関連するシステムの論理構成を示すブロック図である。
【図４】本実施形態における、ＥＲＰ処理に関連するシステムの論理構成の全体的処理動作を示すフローチャートである。
【図５】本実施形態における、ＥＲＰ処理の手順を示すフローチャートである。
【図６】従来の技術におけるＥＲＰ処理の概略を示すシーケンス図である。
【符号の説明】
【００７０】
１００  データ処理システム、１１０  ホスト、１１０    メモリ、
１２１  磁気ディスク、１２２  磁気ヘッド、１２３  ヘッド・スタック・アセンブリ、
１２４  コントローラ、１２５  スピンドル・モータ、１２７  Ｒ／Ｗチャネル、
１３０  メモリ、１３１  モータ・ドライバ・ユニット、１３２  ＶＣＭドライバ、
１３３  ＳＰＭドライバ、３０１  インターフェース・ハンドラ、
３０２  コマンド・ディスパッチャ、３１１  非リード／ライト系処理部、
３２１  リード／ライト系マネージャ、３２２  リード／ライト系実行部、
３２３  ＥＲＰ実行部、３２４  ＥＲＰテーブル、
３３１  ハードウェア・マネージャ、３３２  リセット処理部、３３３  タイマ
【図１】
2005276026.tif 000003
【図２】
2005276026.tif 000004
【図３】
2005276026.tif 000005
【図４】
2005276026.tif 000006
【図５】
2005276026.tif 000007
【図６】
2005276026.tif 000008