(57)【特許請求の範囲】
【請求項１】
ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるＡＶ用途のディスク記憶装置において、
ホストから与えられたコマンドの指定するディスクアクセスでセクタエラーが発生した場合、前記ホストから指定された、リアルタイム処理を可能とするコマンド処理時間をもとに、エラー回復の許容時間を算出する手段と、
前記算出されたエラー回復の許容時間をエラーリトライの上限時間を表すエラーリトライ時間として決定する手段と、
前記エラーが発生したセクタのリトライを、前記決定されたエラーリトライ時間を超えない範囲で制御するリトライ制御手段と、
前記決定されたエラーリトライ時間を超えても前記エラーが発生したセクタのリトライに成功しなかった場合、当該エラーが発生したセクタを欠陥の疑いのあるセクタとして、対応するコマンドと当該セクタのアドレスと前記ホストから指定されたコマンド処理時間とを含むエラーログをメモリに格納する手段と、
前記ディスク記憶装置がアイドル状態にある期間に、前記メモリに格納されている未処理のエラーログを１つずつ順次読み出し、その都度当該エラーログの示す前記欠陥の疑いのあるセクタのアクセスを制御する手段と、
前記エラーログの示す前記欠陥の疑いのあるセクタに対するアクセスでセクタエラーが発生して前記リトライ制御手段により当該欠陥の疑いのあるセクタのリトライが制御され、当該エラーログに含まれている前記コマンド処理時間をもとに決定される前記エラーリトライ時間を超えても当該リトライに成功しなかった場合に、当該欠陥の疑いのあるセクタを欠陥セクタであるとして前記ディスク上に確保された前記代替領域内の任意のセクタに割り当てる手段と
を具備することを特徴とするＡＶ用途のディスク記憶装置。
【請求項２】
ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるＡＶ用途のディスク記憶装置におけるセクタエラー時の処理方法であって、
ホストから与えられたコマンドの指定するディスクアクセスでセクタエラーが発生した場合、前記ホストから指定された、リアルタイム処理を可能とするコマンド処理時間をもとに、エラー回復の許容時間を算出するステップと、
前記算出されたエラー回復の許容時間をエラーリトライの上限時間を表すエラーリトライ時間として決定するステップと、
前記エラーが発生したセクタのリトライを、前記決定されたエラーリトライ時間を超えない範囲で実行するステップと
前記決定されたエラーリトライ時間を超えても前記エラーが発生したセクタのリトライに成功しなかった場合、当該エラーが発生したセクタを欠陥の疑いのあるセクタとして、対応するコマンドと当該セクタのアドレスと前記ホストから指定されたコマンド処理時間とを含むエラーログをメモリに格納するステップと、
前記ディスク記憶装置がアイドル状態にある期間に、前記メモリに格納されている未処理のエラーログを１つずつ順次読み出し、その都度当該エラーログの示す前記欠陥の疑いのあるセクタをアクセスするステップと、
前記エラーログの示す前記欠陥の疑いのあるセクタをアクセスした結果セクタエラーが発生した場合、当該欠陥の疑いのあるセクタのリトライを再度実行するステップと、
前記エラーログの示す前記欠陥の疑いのあるセクタのリトライを当該エラーログに含まれている前記コマンド処理時間をもとに決定される前記エラーリトライ時間を超えるまで実行しても当該リトライに成功しなかった場合、当該欠陥の疑いのあるセクタを欠陥セクタであるとして前記ディスク上に確保された前記代替領域内の任意のセクタに割り当てるステップと
を具備することを特徴とするＡＶ用途のディスク記憶装置におけるセクタエラー時の処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるディスク記憶装置に係り、特に、ＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）データを記録するのに用いられるＡＶ用途のディスク記憶装置及び同装置におけるセクタエラー時の処理方法に関する。
【０００２】
【従来の技術】
近時、ディスク記憶装置、例えば磁気ディスク装置（以下、ＨＤＤと略称する）の記憶容量の増大に伴い、当該ＨＤＤを、デジタル音楽データ、デジタル映像データ等のいわゆるＡＶデータを記録するためのＡＶ用途のＨＤＤ（ＡＶ  ＨＤＤ）として用いるようになっている。
【０００３】
ＡＶ用途のＨＤＤでは、ＡＶデータをリアルタイムで処理できることが重要視されている。そのためＡＶ用途のＨＤＤには、例えば磁気ディスク上に欠陥セクタが存在する場合にも、当該セクタをＨＤＤにて他の正常なセクタに自動的に代替する機能が組み込まれている。この機能により、ＡＶ用途のＨＤＤにおいて欠陥セクタが存在しても、アクセス速度を低下させることなく、その後の使用も可能とする。
【０００４】
周知のように、ＨＤＤにおいては、記録媒体として円盤状の磁気媒体、即ち磁気ディスクが用いられている。この磁気ディスクには欠陥部分の無いことが望ましい。しかし、磁気ディスク上に数ヶ所の欠陥が存在することは、製造上の理由により、やむを得ないものとして取り扱われるのが一般的である。磁気ディスク上の欠陥には、２種類ある。一つは、ＨＤＤとして出荷される際の検査で検出されて、予め他の正常なセクタに代替されている第１の欠陥（欠陥セクタ）である。もう一つは、ＨＤＤの出荷後におけるユーザの使用の過程で新たに発生する第２の欠陥（欠陥セクタ）、いわゆる後発欠陥である。
【０００５】
第１の欠陥については、その程度や大きさ、数などを時間をかけて調査することが可能である。そして、その調査結果によっては製品の出荷を止めることで、不具合の発生を防ぐことができる。しかしながら、第２の欠陥については、ユーザの使用中にランダムに発生する。このため、第２の欠陥を検出した場合には、その時点で当該第２の欠陥に対する代替処理が必要なことは当然であり、更にその処理時間の短縮が要求される。
【０００６】
従来、ＨＤＤはコンピュータの外部記憶装置として用いられてきた経緯から、ＨＤＤのデータの正確性は重要な意味を持っている。例えば、特開平１０−２５５４０３号公報に記載されたディスクドライブ装置では、データセクタの書きこみ／読み出し時のエラー（セクタエラー）に対しても所定のリトライを行うように十分な回復時間が与えられている。このディスクドライブ装置では、この回復時間を使ってエラーの回復を試み、回復されない場合に限り、エラーとなったセクタが欠陥セクタとして代替処理される。
【０００７】
最近のＨＤＤには、欠陥セクタを自動的に別の正常なセクタに割り当て直す処理、即ちセクタの代替処理を、自動的に行うものがある。ところが、この代替処理では、前述のようにＨＤＤがコンピュータの外部記憶装置として用いられてきた経緯から、欠陥セクタの検証に多くの時間を使っている。即ち従来のＨＤＤでは、欠陥の疑いのあるセクタに対して、複数回の読み直しや書き直し、つまり複数回のエラーリトライが行われる。そして、複数回のエラーリトライでもエラーが回復しないセクタに対して、欠陥セクタとして代替処理が行われる。したがって、従来のＨＤＤにおけるセクタエラー時の処理では、時間的な見地からは、代替処理にかかる時間より、欠陥セクタの検証処理（ベリファイ処理）、つまりエラーリトライにかかる時間が大部分を占めている。
【０００８】
【発明が解決しようとする課題】
上記したように従来のＨＤＤでは、当該ＨＤＤがコンピュータの外部記憶装置として用いられてきた経緯から、欠陥セクタの検証を重視した処理を行っている。このため、エラーセクタに対するエラーリトライに時間がかかる。したがってＡＶ用途のＨＤＤでは、たとえリトライに成功したとしても、ＡＶデータのリアルタイム処理を実現することが困難となる。つまり、従来のＨＤＤは、ＡＶ用途のＨＤＤとしては適していない。
【０００９】
また、従来のＨＤＤでは、長時間にわたる複数回のエラー回復の試みのために、エラーが発生したセクタでエラーが一時的に回復し、当該セクタを対象とする代替処理が行われない場合がある。このような場合、処理時間が制限されたＡＶ用途では、上記一時的にエラーが回復したセクタで再度エラーとなってしまうことがある。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、セクタエラー時に行われるエラーリトライの上限時間を表すエラーリトライ時間として、ホストから指定されたコマンド処理時間をもとに算出されたエラー回復の許容時間を適用することにより、ＡＶ用のデータに対するアクセスに対してリアルタイム処理を可能にするＡＶ用途のディスク記憶装置及び同装置におけるセクタエラー時の処理方法を提供することにある。
【００１１】
本発明の他の目的は、エラーセクタに対するエラーリトライを上述のエラーリトライ時間を超えるまで実行しても当該セクタのエラーが回復しなかった場合には、当該エラーセクタに対する代替処理を行わずに、そのログをメモリに格納しておいて、別途、当該ログに従ってエラーセクタをアクセスするようにし、そのアクセスで再びエラーが発生してエラーリトライが実行され、上記エラーリトライ時間（エラー回復の許容時間）内にエラーが回復しなかった場合に限り、当該エラーセクタの代替処理を実行することにより、一時的にエラーが回復したセクタで再度エラーとなってしまうのを防止して、ＡＶ用のデータに対するアクセスに対してリアルタイム処理を可能にするＡＶ用途のディスク記憶装置及び同装置におけるセクタエラー時の処理方法を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の第１の観点によれば、ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるＡＶ用途のディスク記憶装置が提供される。このディスク記憶装置は、算出手段と、決定手段と、リトライ制御手段とを備えている。
【００１３】
算出手段は、ホストから与えられたコマンドの指定するディスクアクセスでセクタエラーが発生した場合、前記ホストから指定された、リアルタイム処理を可能とするコマンド処理時間をもとに、エラー回復の許容時間を算出する。決定手段は、算出されたエラー回復の許容時間をエラーリトライの上限時間を表すエラーリトライ時間として決定する。リトライ制御手段は、上記エラーが発生したセクタのリトライを、上記決定されたエラーリトライ時間を超えない範囲で制御する。
【００１４】
このように、本発明の第１の観点に係るＡＶ用途のディスク記憶装置においては、セクタエラーの発生に伴うエラーリトライが実行されて当該リトライに成功した場合、その時点が、上記決定されたエラーリトライ時間、つまりホストから指定されたコマンド処理時間をもとに算出されたエラー回復の許容時間を超えることはない。したがって、ＡＶ用途のディスク記憶装置におけるＡＶデータのリアルタイム処理が保証される。これに対して従来のＨＤＤでは、コンピュータの外部記憶装置として用いられてきた経緯から、エラーセクタを極力回復させる目的で、マンド処理時間に比べて十分に長いエラーリトライ時間を用いている。このため、たとえエラーが回復しても、その時には、上記エラー回復の許容時間を超えてしまい、ＡＶデータのリアルタイム処理が保証できなくなる。
【００１５】
本発明の第２の観点によれば、上記第１の観点に係るＡＶ用途のディスク記憶装置の構成に、格納手段と、アクセス制御手段と、割り当て手段とが追加されたＡＶ用途のディスク記憶装置が提供される。上記格納手段は、上記決定されたエラーリトライ時間を超えても上記エラーが発生したセクタのリトライに成功しなかった場合、当該エラーが発生したセクタを欠陥の疑いのあるセクタとして、対応するコマンドと当該セクタのアドレスと上記ホストから指定されたコマンド処理時間とを含むエラーログをメモリに格納する。上記アクセス制御手段は、上記メモリに格納されている未処理のエラーログを１つずつ順次読み出し、その都度当該エラーログの示す上記欠陥の疑いのあるセクタのアクセスを制御する。上記割り当て手段は、上記欠陥の疑いのあるセクタに対するアクセスでセクタエラーが発生して上記リトライ制御手段により当該欠陥の疑いのあるセクタのリトライが制御され、上記決定されたエラーリトライ時間を超えても当該リトライに成功しなかった場合に、当該欠陥の疑いのあるセクタを欠陥セクタであるとして上記ディスク上に確保された上記代替領域内の任意のセクタに割り当てる。
【００１６】
このように、本発明の第２の観点に係るＡＶ用途のディスク記憶装置においては、エラーセクタに対するエラーリトライを上記決定されたエラーリトライ時間を超えるまで実行しても当該セクタのエラーが回復しなかった場合に、当該エラーセクタに対する代替処理を行わずに、そのログをメモリに格納しておいて、別途、当該ログに従ってエラーセクタをアクセスするようにし、そのアクセスで再びエラーが発生してエラーリトライが実行され、上記エラーリトライ時間（エラー回復の許容時間）を経過するまでにエラーが回復しなかった場合に限り、当該エラーセクタの代替処理、つまりホストの要求するコマンド処理時間を想定した代替処理を実行するようにしている。
【００１７】
したがって、従来のコンピュータの外部記憶装置としての用途を前提とするディスク記憶装置と同様の処理であれば、複数回のリトライを行うことでエラー回復していたはずの欠陥セクタであっても、ホストの要求するコマンド処理時間をもとに決定されたエラーリトライ時間内にエラー回復しないものに関しては、代替処理が行われる。これにより、ＡＶ用のデータに対するアクセスに対してリアルタイム処理を可能にする。
【００１８】
【発明の実施の形態】
以下、本発明をＡＶデータの記録再生に用いられるＡＶ用途の磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
【００１９】
図１は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
図１の磁気ディスク装置（以下、ＨＤＤと称する）１において、記録媒体としてのディスク（磁気ディスク）１１は上側と下側の２つのディスク面を有している。ディスク１１の２つのディスク面の少なくとも一方のディスク面、例えば両方のディスク面は、データが磁気記録される記録面をなしている。ディスク１１の各記録面に対応してそれぞれヘッド（磁気ヘッド）１２が配置されている。ヘッド１２は、ディスク媒体１１へのデータ書き込み（データ記録）及びディスク媒体１１からのデータ読み出し（データ再生）に用いられる。なお、図１の構成では、単一枚のディスク１１を備えたＨＤＤを想定しているが、ディスク１１が複数枚積層配置されたＨＤＤであっても構わない。
【００２０】
ディスク１１の各記録面には、ユーザから利用可能なユーザ領域１１ａと、欠陥セクタの代替先となる代替トラックが確保された代替領域１１ｂと、システム管理に必要な情報、つまりシステム管理情報を保存する管理領域１１ｃとが割り当てられている。システム管理情報は、欠陥セクタと当該セクタが割り当てられるセクタとの対応関係を示す欠陥セクタ管理情報を含む。欠陥セクタ管理情報は、欠陥セクタのアドレスと当該セクタが割り当てられるセクタのアドレスとの組を含む。なお、図１の例では、代替領域１１ｂはユーザ領域１１ａの外周側にリング状に配置されているが、これに限るものではない。例えば、ユーザ領域１１ａの内周側に、或いはユーザ領域１１ａの外周側と内周側の両方に、代替領域が配置されるようにしても構わない。また、ユーザ領域１１ａが複数のリング状のゾーンに分割して管理されるＣＤＲ（Ｃｏｎｓｔａｎｔ  Ｄｅｎｓｉｔｙ  Ｒｅｃｏｒｄｉｎｇ）方式の場合であれば、各ゾーン毎に代替領域が配置されるようにしても構わない。代替領域１１ｂと管理領域１１ｃとは、システムのみが使用する、つまりユーザからは見えない非ユーザ領域である。この代替領域１１ｂと管理領域１１ｃとを合わせた領域はシステム領域と呼ばれる。なお、管理領域１１ｃだけがシステム領域と呼ばれることもある。
【００２１】
ディスク１１はスピンドルモータ（以下、ＳＰＭと称する）１３により高速に回転する。ヘッド１２はヘッド移動機構としてのアクチュエータ（キャリッジ）１４の先端に取り付けられている。ヘッド１２は、アクチュエータ１４の回動に従ってディスク１１の半径方向に移動する。これにより、ヘッド１２は、目標トラック上に位置決めされるようになっている。アクチュエータ１４は、当該アクチュエータ１４の駆動源となるボイスコイルモータ（以下、ＶＣＭと称する）１５を有しており、当該ＶＣＭ１５により駆動される。
【００２２】
ＳＰＭ１３及びＶＣＭ１５は、ドライバＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１６からそれぞれ供給される駆動電流により駆動される。ドライバＩＣ１６は１チップ化されたモータドライバであり、ＳＰＭドライバ及びＶＣＭドライバを構成する。ドライバＩＣ１６からＳＰＭ１３及びＶＣＭ１５にそれぞれ供給される駆動電流を決定するための値（制御量）は、ＣＰＵ１７により決定される。
【００２３】
ＣＰＵ１７はＨＤＤ１の主制御部をなし、当該ＨＤＤ１内の他の要素を制御する。このＣＰＵ１７による制御には、ＨＤＤ１を例えばＡＶ用途ＨＤＤとして利用するホスト２からのリード／ライトコマンドに従うディスクコントローラ２１によるリード／ライト制御、ドライバＩＣ１６を介してヘッド１２を目標トラックに位置決めする制御等が含まれている。また、ＣＰＵ１７は、ホスト２の要求するコマンド処理時間から、欠陥の疑いのあるセクタに対するエラー回復の許容時間、つまりエラーリトライ時間（検証時間）を決定する。ＣＰＵ１７は、後述するエラーログをもとに欠陥の疑いのあるセクタをアクセスした結果、再びエラーとなってエラーリトライを実行した場合に、このエラーリトライ時間内にエラー回復できない欠陥セクタに対して代替処理を実行する。ＣＰＵ１７は、セクタ当たりのコマンド処理に要する時間を計測するためのタイマＴＭ１と、エラーリトライでのリトライ時間を管理するためのタイマＴＭ２とを内蔵する。
【００２４】
ＣＰＵ１７はＣＰＵバス１８に接続されている。ＣＰＵバス１８には、ＣＰＵ１７が実行すべきプログラム（制御プログラム）が格納されたＲＯＭ１９と、ＣＰＵ１７が使用するワーク領域等が割り当てられるＲＡＭ２０と、ディスクコントローラ（以下、ＨＤＣと称する）２１と、ＨＤＤ１の制御に必要な諸信号の生成を行うゲートアレイ２２とが接続されている。
【００２５】
ＲＡＭ２０には、エラーログ領域２００が割り当てられている。このエラーログ領域２００には、ホスト２から与えられたリード／ライトコマンドの実行でエラーとなったセクタに対するエラーリトライでタイムアウトが発生する毎に、エラーログが格納される。このエラーログは、エラー（セクタエラー）が発生したコマンドが設定されるフィールド２０１と、エラーセクタのアドレスが設定されるフィールド２０２と、ホスト２から要求されたコマンド処理時間が設定されるフィールド２０３とを含む。フィールド２０１に設定されるコマンドは、リード／ライトの種別（コマンド種別）と、リード／ライト先の開始アドレスと、リード／ライトすべきセクタ数とを含む。フィールド２０３に設定されるコマンド処理時間（セクタ当たりのコマンド処理時間）は、対応するコマンドで指定されたデータをリアルタイムで処理するのに必要な１セクタ当たりの時間の上限値である。つまり、コマンド処理時間内で各セクタを処理できない場合には、当該コマンドで指定されたデータをリアルタイムで処理できないことになる。コマンド処理時間は、対応するコマンドに付して、セクタ当たりのコマンド処理時間＊セクタ数の形でホスト２から与えることも、予めセクタ当たりのコマンド処理時間としてホスト２から与えることも可能である。前者の場合には、セクタ当たりのコマンド処理時間＊セクタ数をセクタ数で除する必要がある。
【００２６】
ＨＤＣ２１及びゲートアレイ２２は制御用のレジスタ群（図示せず）を有している。この制御用レジスタ群はＣＰＵ１７のメモリ領域の一部に割り当てられており、ＣＰＵ１７がこの領域に対して読み出し及び書き込みを行うことでＨＤＣ２１及びゲートアレイ２２を制御する。
【００２７】
ヘッド１２はヘッドＩＣ（ヘッドアンプ回路）２３と接続されている。ヘッドＩＣ２３はヘッド１２により読み出されたリード信号を増幅するリードアンプ、及びライトデータをライト電流に変換するライトアンプを含む。ヘッドＩＣ２３は、リード／ライトＩＣ（リード／ライトチャネル）２４と接続されている。リード／ライトＩＣ２４は、リード信号に対するＡ／Ｄ（アナログ／ディジタル）変換処理、ライトデータの符号化処理及びリードデータの復号化処理等の各種の信号処理を実行する。
【００２８】
ＨＤＣ２１は、ＣＰＵバス１８以外に、ゲートアレイ２２、リード／ライトＩＣ２４及びバッアァＲＡＭ２５にも接続されている。ＨＤＣ２１はまた、ホスト２とホストインタフェース３を介して接続されている。
【００２９】
ホスト２からのリードコマンドの実行時には、当該コマンドにより指定されたディスク１１上の領域に記録されているデータ信号がヘッド１２によって読み出される。ヘッド１２により読み出された信号（アナログ信号）はヘッドＩＣ２３により増幅され、リード／ライトＩＣ２４によって符号化される。ＨＤＣ２１は、リード／ライトＩＣ２４によって符号化されたデータをゲートアレイ２２からの制御用の信号に従って処理することにより、ホスト２に転送すべきデータ（リードデータ）を生成する。このデータは一旦バッファＲＡＭ２５に格納されてからＨＤＣ２１によりホストシステム２に転送される。
【００３０】
ホスト２からのライトコマンドの実行時には、ホスト２からＨＤＣ２１に転送されたデータ（ライトデータ）は一旦バッアァＲＡＭ２５に格納された後、ゲートアレイ２２からの制御用の信号に従ってＨＤＣ２１によって符号化されてリード／ライトＩＣ２４に転送される。このＨＤＣ２１により符号化されたライトデータはリード／ライトＩＣ２４によって書き込み用の信号に変換され、ヘッドＩＣ２３を経由してヘッド１２に導かれ、当該ヘッド１２により、ディスク１１の上記コマンドで指定された領域に書き込まれる。
【００３１】
バッアァＲＡＭ２５には、上記のように、ホスト２とＨＤＤ１（内のＨＤＣ２１）との間で転送されるデータを一時格納するバッファ領域が確保されている。バッアァＲＡＭ２５にはまた、ディスク１１の管理領域１１ｃに保存されている欠陥セクタ管理情報の群の写しがＨＤＤ１の立ち上げ時に格納される、欠陥セクタ管理情報領域が確保されている。ＣＰＵ１７は、バッアァＲＡＭ２５上の欠陥セクタ管理情報の群を参照することで、目的セクタが欠陥セクタである場合に、その代替セクタを高速に認識することができる。
【００３２】
次に、図１の構成のＨＤＤ１における動作を説明する。
まず本実施形態では、ＨＤＤ１は、デジタル音楽データ、デジタル映像データなど、リアルタイム性が必要なＡＶデータを記録するＡＶ用途のＨＤＤとして用いられている。この場合、ＨＤＤ１の製品出荷後に発見されるディスク１１上の欠陥セクタは、ＨＤＤ１を適用するＡＶシステムにおいて大きな障害となる。そこで、欠陥の疑いのあるセクタを検証し、エラー回復の見込みのないセクタ、つまり欠陥セクタであると判定された場合に、その欠陥セクタを代替領域１１ｂ上の正常なセクタへ割り当てる代替処理が必要となる。従来のＨＤＤでは、当該ＨＤＤがコンピュータの外部記憶装置として用いられてきた経緯から、制御プログラム（ファームウェア）で規定された十分な回数のリトライを繰り返して、極力エラー回復を図るようにしている。ここでは、エラーは過渡的なものとして扱われ、リトライの繰り返しによりエラー回復されたならば、代替処理は行われない。規定回数のリトライを繰り返してもエラー回復されない場合に限り、エラーとなったセクタが欠陥セクタとして代替処理が行われる。
【００３３】
これに対して本実施形態では、ホスト２からのリード／ライトコマンドの指定するＡＶデータのアクセスがリアルタイムで行えるように、リトライに要する時間（またはリトライ回数）を動的に設定して、欠陥の疑いのあるセクタの検証（リトライ）を行うようにしている。本実施形態では、このセクタ検証処理及び代替処理を含む一連の処理手順として、以下に述べる第１及び第２の処理手順の２種が適用される。
【００３４】
［第１の処理手順］
まず、第１の処理手順について、ホスト２からのリードコマンドの実行時を例に、図２のフローチャートを参照して説明する。
【００３５】
図１のＨＤＤ１では、ホスト２からのリードコマンドで指定されたセクタ数のデータは、セクタ単位で順次読み出される。ＨＤＤ１内のＣＰＵ１７は、ＲＯＭ１９に格納されている制御プログラム１９０に従って動作し、１セクタの読み出しの開始に際し、タイマＴＭ１を起動する（ステップＳ１）。そしてＣＰＵ１７は、ＨＤＣ２１を制御して目的のセクタの読み出しを行わせる（ステップＳ２）。
【００３６】
もし、ステップＳ２の読み出しでセクタエラーが発生した場合（ステップＳ３）、ＣＰＵ１７は、現在のタイマＴＭ１の値、つまりエラーとなったセクタの読み出しが開始されてからの経過時間Ｔと、ホスト２から要求された当該セクタの読み出しに利用可能な処理時間、つまり１セクタ当たりのコマンド処理時間ＣＴとから、エラーとなったセクタに対するエラー回復に利用可能な時間、つまりエラーリトライ時間ＣＥＲＴを算出する（ステップＳ４）。ここでは、エラーリトライ時間ＣＥＲＴは、次式
ＣＥＲＴ＝ＣＴ−Ｔ
により算出される。
【００３７】
次にＣＰＵ１７は、算出したエラーリトライ時間ＣＥＲＴを予め定められている規定のエラーリトライ時間ＳＥＲＴと比較する（ステップＳ５）。もし、時間ＣＥＲＴの方が時間ＳＥＲＴより大きいならば、ＣＰＵ１７は、規定のエラーリトライ時間ＳＥＲＴを、実際に使用するエラーリトライ時間ＥＲＴとして決定する（ステップＳ６）。これに対し、時間ＣＥＲＴが時間ＳＥＲＴより大きくないならば、ＣＰＵ１７は、算出されたエラーリトライ時間ＣＥＲＴを、実際に使用するエラーリトライ時間ＥＲＴとして決定する（ステップＳ７）。
【００３８】
次にＣＰＵ１７は、ステップＳ６またはＳ７で決定したエラーリトライ時間ＥＲＴをタイマＴＭ２に設定して、当該タイマＴＭ２を起動する（ステップＳ８）。このタイマＴＭ２は、設定された時間（ここではＥＲＴ）を計測すると、タイムアウト信号を出力する。
【００３９】
ＣＰＵ１７は、タイマＴＭ２を起動すると、当該タイマＴＭ２がタイムアウト（エラーリトライ時間のタイムアウト）となっていなければ（ステップＳ９）、エラーリトライを実行する（ステップＳ１０）。このリトライの結果、目的のセクタの読み出しが正常に行えたなら、つまりリトライに成功したならば（ステップＳ１１）、ＣＰＵ１７は当該目的セクタの読み出しを終了する。
【００４０】
これに対し、目的のセクタの読み出しが正常に行えなかったなら、つまりリトライに失敗したならば（ステップＳ１１）、ＣＰＵ１７はステップＳ９に戻って、タイマＴＭ２がタイムアウトとなっているか否かを判定する。もし、タイムアウトとなっていなければ、ＣＰＵ１７は再びエラーリトライを実行する（ステップＳ１０）。一方、タイムアウトとなっているならば、ＣＰＵ１７は、ダミーのデータをディスク１１からの読み出しデータとしてＨＤＣ２１に出力する（ステップＳ１２）。ＨＤＣ２１は、このＣＰＵ１７からのダミーデータを目的セクタの読み出しデータとしてバッアァＲＡＭ２５に一時格納する。なお、リトライ時間タイムアウトとなった場合に、ダミーデータを利用するか否かをホスト２側でユーザに予め指定させ、その指定内容に応じて、ステップＳ１２のダミーデータ出力を実行するか否かを決定するようにしてもよい。
【００４１】
ＣＰＵ１７は、ダミーデータを出力すると、（セクタ当たりの）コマンド処理時間の制限から、代替処理が可能であるか否かを判定する（ステップＳ１２）。明らかなように、算出されたエラーリトライ時間ＣＥＲＴが、実際に使用するエラーリトライ時間ＥＲＴとして決定された場合には、タイマＴＭ１のタイムアウト時にコマンド処理時間が経過しており、代替処理に利用可能な時間は残されていない。この場合、ＣＰＵ１７は、ホスト２から要求されたコマンド処理時間内に要求されたデータの読み出しを完了させるために、代替処理を行わずに、ステップＳ１４に進む。ＣＰＵ１７はステップＳ１４において、エラーとなったセクタを含むリード／ライト（ここではリード）を指定したホスト２からのコマンドと、エラーセクタのアドレス（セクタ番号）と、コマンド処理時間（セクタ当たりのコマンド処理時間）とを含むエラーログを、ＲＡＭ２０内のエラーログ領域２００に格納し、１セクタの読み出し処理を終了する。
【００４２】
このようにして、ＣＰＵ１７はホスト２から要求されたコマンド処理時間内に、要求されたデータの読み出しを完了させることができる。但し、ディスク１１上には、欠陥の疑いのあるセクタが残っており、次に当該セクタの読み出しが行われる場合にも、エラーとなる可能性がある。そこで本実施形態では、この欠陥の疑いのあるセクタについては、ＨＤＤ１がビジー状態にない期間、例えばＨＤＤ１が後述するアイドル状態にある期間に、エラーログ領域２００内の対応するエラーログに従って、欠陥セクタであるか否かを検証し、欠陥セクタであれば代替処理する処理手順を実行するようにしている。この処理手順が第２の処理手順である。
【００４３】
一方、規定のエラーリトライ時間ＳＥＲＴが、実際に使用するエラーリトライ時間ＥＲＴとして決定された場合には、タイマＴＭ１がタイムアウトとなってもコマンド処理時間はまだ経過しておらず、代替処理に利用可能な時間が残されている可能性がある。ＣＰＵ１７は、代替処理に利用可能な時間が残されている場合、代替処理が可能であると判定し（ステップＳ１３）、周知の代替処理を実行する（ステップＳ１５）。この代替処理においてＣＰＵ１７は、該当するセクタを欠陥セクタであるとして、当該欠陥セクタにディスク１１の代替領域１１ｂ上の任意の空きセクタを代替セクタとして割り当て、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報を、ディスク１１の管理領域１１ｃに格納する。なお、欠陥セクタに割り当てられた代替セクタのアドレスを求めるには、ディスク１１の管理領域１１ｃに格納されている欠陥セクタ管理情報を参照すればよい。しかし、ディスク１１の管理領域１１ｃをアクセスするのは、アクセス速度の点で問題がある。このため一般には、管理領域１１ｃに格納されている欠陥セクタ管理情報の群のコピーを、ＨＤＤ１の立ち上げ時にＲＡＭ２０またはバッアァＲＡＭ２５に格納し、当該ＲＡＭ２０またはバッアァＲＡＭ２５をアクセスすることで、代替セクタのアドレスが高速で求められるようになっている。但し、欠陥セクタ管理情報の利用の仕方は本発明に直接関係しないため、詳細な説明は省略する。
【００４４】
［第２の処理手順］
次に、第２の処理手順について、図３のフローチャートを参照して説明する。
【００４５】
本実施形態において、第２の処理手順はＨＤＤ１がアイドル状態にある期間に自動的に実行される。ＨＤＤ１のアイドル状態とは、ＳＰＭ１３が回転している状態で、一定期間以上ホスト２からリード／ライトコマンドが与えられない場合に、ヘッド１２がランプ等のヘッド退避箇所（図示せず）に退避されている状態をいう。この状態では、省電力化のために、ＨＤＤ１内の一部の回路への電力供給が停止されていることが多い。
【００４６】
まず、ＣＰＵ１７は、ＲＡＭ２０のエラーログ領域２００をアクセスして、エラーログが格納されているか否かを判定する（ステップＳ２１）。もし、エラーログが格納されているならば、ＣＰＵ１７はエラーログ領域２００から、エラーログを１つ取り出す（ステップＳ２２）。このエラーログは、第１の処理手順でリトライに失敗したセクタに関する情報、即ちリトライに失敗したセクタを含むデータのリード／ライトを指示したコマンドと、当該セクタのアドレスと、ホスト２から要求された（セクタ当たりの）コマンド処理時間とからなる情報を含んでいる。ここでは、上記エラーログ中のコマンドがリードコマンドであるとする。
【００４７】
ＣＰＵ１７は、エラーログを取り出すと、通常のセクタ単位のリード／ライト時と同様に、まずタイマＴＭ１を起動する（ステップＳ２３）。そしてＣＰＵ１７は、エラーログ中のリードコマンド及びリトライに失敗したセクタ（つまり欠陥の疑いのあったセクタ）のアドレスに従い、当該セクタを含むディスク１１上のトラックにヘッド１２を位置付けるように、ドライバＩＣ１６を介してアクチュエータ１４を制御し、しかる後にＨＤＣ２１を制御して当該セクタの読み出しを行わせる（ステップＳ２４）。
【００４８】
もし、ステップＳ２４の読み出しでエラーが発生した場合（ステップＳ２５）、ＣＰＵ１７は前記第１の処理手順のステップＳ４と同様に、現在のタイマＴＭ１の値、つまりエラーとなったセクタの読み出しが開始されてからの経過時間Ｔと、上記エラーログ中の（セクタ当たりの）コマンド処理時間ＣＴとから、エラーリトライ時間ＣＥＲＴを算出する（ステップＳ２６）。
【００４９】
次にＣＰＵ１７は、算出したエラーリトライ時間ＣＥＲＴを規定のエラーリトライ時間ＳＥＲＴと比較する（ステップＳ２７）。そしてＣＰＵ１７は、ＣＥＲＴ＞ＳＥＲＴであるならば、規定のエラーリトライ時間ＳＥＲＴをエラーリトライ時間ＥＲＴとし（ステップＳ２８）、ＣＥＲＴ＞ＳＥＲＴでないならば、算出されたエラーリトライ時間ＣＥＲＴをエラーリトライ時間ＥＲＴとする（ステップＳ２９）。
【００５０】
次にＣＰＵ１７は、ステップＳ２８またはＳ２９で決定したエラーリトライ時間ＥＲＴをタイマＴＭ２に設定して、当該タイマＴＭ２を起動する（ステップＳ３０）。ＣＰＵ１７は、タイマＴＭ２を起動すると、当該タイマＴＭ２がタイムアウトとなっていなければ（ステップＳ３１）、エラーリトライを実行する（ステップＳ３２）。このリトライの結果、欠陥の疑いのあったセクタの読み出しが正常に行えたなら（ステップＳ３３）、ＣＰＵ１７は１エラーログの処理を終了する。つまりＣＰＵ１７は、欠陥の疑いのあったセクタの読み出しが、コマンド処理時間をもとに算出したエラーリトライ時間内に正常に行えたなら、１エラーログの処理を終了する。そしてＣＰＵ１７は、アイドル状態が継続しているならばステップＳ２１に戻る。
【００５１】
明らかなように、上記リトライに成功したセクタは、そのセクタを含むＡＶデータの読み出しがホスト２から指定された場合に、（ホスト２から指定されたセクタ当たりの）コマンド処理時間内に読み出すことが可能であり、当該セクタをリアルタイムで処理できる。
【００５２】
これに対し、欠陥の疑いのあったセクタの読み出しが正常に行えなかったなら（ステップＳ３３）、ＣＰＵ１７はステップＳ３１に戻って、タイマＴＭ２がタイムアウトとなっているか否かを判定する。もし、タイムアウトとなっていなければ、ＣＰＵ１７は再びエラーリトライを実行する（ステップＳ３２）。
【００５３】
一方、タイムアウトとなっているならば、ＣＰＵ１７は、欠陥の疑いのあったセクタを欠陥セクタと認定し、当該欠陥セクタをディスク１１の代替領域１１ｂ上の任意の空きセクタに割り当てる代替処理を行う（ステップＳ３４）。ここで、注意する点は、タイムアウトとなったエラーリトライ時間ＥＲＴがコマンド処理時間をもとに算出されたエラーリトライ時間ＣＥＲＴの場合に、たとえ規定のエラーリトライ時間ＳＥＲＴには未だ時間があるとしても、代替処理が行われるということである。その理由は次の通りである。
【００５４】
まず欠陥の疑いのあったセクタの読み出しは、時間ＣＥＲＴ後も規定のエラーリトライ時間ＳＥＲＴを上限にリトライを継続するならば、成功するかもしれない。しかし、このセクタを時間ＣＥＲＴ後に正常に読み出せたとしても、そのときにはホスト２から指定された（セクタ当たりの）コマンド処理時間を過ぎている。したがって、その後、このセクタを含むＡＶデータの読み出しがホスト２から指定された場合に、当該セクタをリアルタイム処理可能なように（ホスト２から指定されたセクタ当たりの）コマンド処理時間内に読み出すことは期待できない。そこで本実施形態では、このようなセクタは、代替処理の対象としている。しかも本実施形態では、この代替処理を含むエラーログの処理がＨＤＤ１のアイドル状態の期間に行われるため、当該エラーログの処理がＨＤＤ１の負荷に悪影響を及ぼす虞はない。
【００５５】
なお、欠陥セクタに代えて割り当てられたセクタ（代替セクタ）には、代替処理の時点では正しいデータは記録されない。しかし、一旦新たな書き込みが行われるならば、その代替セクタから正しいデータを読み出すことが可能となる。
【００５６】
ＣＰＵ１７は、代替処理を実行すると、領域２００から該当するエラーログを削除して（ステップＳ３５）、１エラーログの処理を終了する。そしてＣＰＵ１７は、アイドル状態が継続しているならばステップＳ２１に戻る。
【００５７】
以上、図１のＨＤＤ１の動作を、ホスト２からのコマンドがリードコマンドである場合を例に説明した。しかし、ホスト２からのコマンドがライトコマンドである場合の動作も、ライト／リードの違いと、ダミーデータの転送がない点を除けば、上記したリードコマンドの場合と同様である。
【００５８】
また、上記実施形態では、リトライ処理の終了（強制終了）を、エラーリトライ処理に要した時間が、設定されたエラーリトライ時間ＥＲＴを超えたことにより判定している。しかし、時間に基づく判定に代えて、リトライ回数に基づく判定を行うことも可能である。そのためには、例えば図５に示すように、ＲＡＭ２０内にリトライカウンタ２０４を設け、当該リトライカウンタ２０４によりリトライ回数をカウントするとよい。ここでは、エラーリトライ時間ＥＲＴ内にリトライ可能なリトライ回数をリトライカウンタ２０４に設定し、リトライを実行する毎に、ＣＰＵ１７が当該リトライカウンタ２０４の値を１だけデクリメントすればよい。そして、リトライカウンタ２０４の値が０になっても、リトライに成功しなかった場合には、ＣＰＵ１７は、リトライ時間タイムアウトの場合と同様の処理を実行する。
【００５９】
ここで、エラーリトライ時間ＥＲＴ内にリトライ可能なリトライ回数ＥＲＮは、エラーリトライ時間ＥＲＴとＳＰＭ１３の１回転に要する時間Ｔｓとから、次式
ＥＲＮ＝（ＥＲＴ／Ｔｓ）の整数部
により算出される。
【００６０】
また、時間Ｔｓは、ＳＰＭ１３の定常回転速度から算出される。例えば、ＳＰＭ１３の定常回転速度が４，２００ｒｐｍの場合、ＳＰＭ１３の１回転に要する時間Ｔｓは、６０＊１，０００（ｍｓ）／４，２００≒１４ｍｓである。このＳＰＭ１３の１回転に要する時間Ｔｓは、ディスク１１の１回転に要する時間でもある。したがって、時間Ｔｓより短い時間間隔でエラーリトライを繰り返すことはできない。つまり時間Ｔｓは、１回のエラーリトライに必要な時間である。
【００６１】
なお、ＲＡＭ２０上にリトライカウンタ（ソフトウェアカウンタ）２０４を用意する代わりに、ＣＰＵ１７が一般に有するカウンタ（ハードウェアカウンタ）をリトライカウンタとして用いることも可能である。また、リトライカウンタを、リトライの実行毎に１だけインクリメントされるアップカウンタとして用いることも可能である。この場合、リトライカウンタをカウントアップする毎に、当該カウンタの値がリトライ回数ＥＲＮを超えたか否かを判定すればよい。
【００６２】
また、上記実施形態では、本発明をＨＤＤ（磁気ディスク装置）に適用した場合について説明した。しかし本発明は、リード／ライト可能なディスク記憶装置であれば、光ディスク装置、光磁気ディスク装置などＨＤＤ以外のディスク記憶装置にも適用可能である。
【００６３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６４】
【発明の効果】
以上詳述したように本発明によれば、セクタエラー時に、ホストから指定された、リアルタイム処理を可能とするコマンド処理時間をもとに、エラー回復の許容時間を算出し、そのエラー回復の許容時間をエラーリトライの上限時間を表すエラーリトライ時間として、エラーとなったセクタのエラーリトライを実行するようにしたので、リトライに成功した場合には、まだコマンド処理時間は経過しておらず、必ずＡＶ用のデータに対するアクセスに対してリアルタイム処理を可能にする
また本発明によれば、エラーセクタに対するエラーリトライを上述のエラーリトライ時間を超えるまで実行しても当該セクタのエラーが回復しなかった場合、当該エラーセクタに対する代替処理を行わずに、そのログをメモリに格納しておいて、別途、当該ログに従ってエラーセクタをアクセスするようにし、そのアクセスで再びエラーが発生してエラーリトライが実行され、上記エラーリトライ時間（エラー回復の許容時間）を経過するまでにエラーが回復しなかった場合に限り、当該エラーセクタの代替処理を実行するようにした。これにより本発明によれば、一時的にエラーが回復したセクタで再度エラーとなってしまうのを防止し、ＡＶ用のデータに対するアクセスに対してリアルタイム処理を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図２】同実施形態で適用される第１の処理手順を説明するためのフローチャート。
【図３】同実施形態で適用される第２の処理手順を説明するためのフローチャートの一部を示す図。
【図４】同実施形態で適用される第２の処理手順を説明するためのフローチャートの残りを示す図。
【図５】図１中のタイマＴＭ２に代えてエラーリトライ時間を管理するために、リトライカウンタ２０４がＲＡＭ２０内に用意されている様子を示す図。
【符号の説明】
１…磁気ディスク装置（ＨＤＤ）
２…ホスト
１１…ディスク
１１ａ…ユーザ領域
１１ｂ…代替領域
１２…ヘッド
１７…ＣＰＵ
２０…ＲＡＭ
２００…エラーログ領域
２０４…リトライカウンタ
ＴＭ１，ＴＭ２…タイマ
【図１】
0003634809.tif 000002
【図２】
0003634809.tif 000003
【図３】
0003634809.tif 000004
【図４】
0003634809.tif 000005
【図５】
0003634809.tif 000006