(57)【要約】【課題】  自動交代処理において欠陥の大きいセクタから交代処理し、磁気ディスクに記録されているデータの安全性を向上する。【解決手段】  本発明の一実施形態においては、リード・コマンドに応じて磁気ディスク１１から読み出した複数のデータ・セクタについて、各信頼度を決定した後、信頼度の低いデータ・セクタから交代処理を実行する。これによって、限られた時間内において、データ回復不能となる可能性が高いデータ・セクタを優先的に交代することができ、データの安全性、ＨＤＤ１の信頼性を高めることができる。データ・セクタの信頼度の決定は、ＥＣＣ訂正バイト数に従ってなされる。【選択図】  図２
2006269027.tif 000002
【特許請求の範囲】
【請求項１】
リード・コマンドを取得し、そのリード・コマンドに対応する複数セクタのデータをメディアから読み出すように制御する、読み出し制御部と、
前記読み出した複数セクタ内の欠陥セクタについて交代処理順序を決定する、交代処理順序決定部と、
前記交代処理順序決定部が決定した交代処理順序に従って、欠陥セクタの交代処理を制御する、交代処理制御部と、
を備えるデータ記憶装置。
【請求項２】
前記交代処理順序決定部は、各セクタの読み出しにおけるエラー訂正量に基づいて前記交代処理順序を決定する、請求項１に記載のデータ記憶装置。
【請求項３】
前記交代処理順序決定部は、各セクタの読み出しにおけるリトライ処理に基づいて前記交代処理順序を決定する、請求項１に記載のデータ記憶装置。
【請求項４】
前記交代処理順序決定部は、前記交代処理順序を、各セクタの読み出しにおけるエラー訂正量の多い順序に設定する、請求項２に記載のデータ記憶装置。
【請求項５】
前記読み出し制御部は、前記リード・コマンドで指定され、前記メディアから読み出すべき全セクタのリード・データを読み出し、
前記交代処理順序決定部は、その全セクタ内の欠陥セクタについて交代処理順序を決定する、
請求項２に記載のデータ記憶装置。
【請求項６】
前記読み出し制御部は、前記リード・コマンドに対応して前記メディアから読み出すべき全セクタのリード・データを読み出し、
前記交代処理順序決定部は、その全セクタ内の欠陥セクタについて交代処理順序を決定する、請求項２に記載のデータ記憶装置。
【請求項７】
前記リード・コマンドに対応して前記メディアから読み出すべき全セクタは、前記リード・コマンドで指定されたセクタの前及び／もしくは後の位置のデータを含む、請求項６に記載のデータ記憶装置。
【請求項８】
前記リード・コマンドのタイム・アウト時間経過前に前記リード・コマンドに対するコマンド完了を通知するように、複数の欠陥セクタの交代処理の終了タイミングを決定する、請求項１に記載のデータ記憶装置。
【請求項９】
予め定められた値と欠陥セクタの交代処理数とを使用して、前記終了タイミングを決定する、請求項８に記載のデータ記憶装置。
【請求項１０】
前記交代処理順序は信頼度の低いセクタから交代処理を行う、請求項１に記載のデータ記憶装置。
【請求項１１】
前記データ記憶装置は、前記メディアから読み出したデータのエラー訂正処理を行う訂正処理部をさらに備え、
前記交代処理順序決定部は、前記読み出した各セクタの訂正量を使用して欠陥セクタの交代処理順序を決定する、
請求項１に記載のデータ記憶装置。
【請求項１２】
前記交代処理順序決定部は、最も訂正量の多いセクタを最初の交代処理順序に設定する、請求項１１に記載のセクタ交代処理方法。
【請求項１３】
前記読み出し制御部は、前記リード・コマンドで指定され、前記メディアから読み出すべき全セクタのリード・データを読み出すように制御し、
前記交代処理順序決定部は、読み出した全セクタ内の欠陥セクタについて、各セクタの読み出しにおけるエラー訂正量に基づいて交代処理順序を決定する、
請求項１に記載のデータ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置に関し、特に、データ記憶装置における複数欠陥セクタの交代処理における実行順序制御に関する。
【背景技術】
【０００２】
データ記憶装置として、光ディスクや磁気テープあるいは半導体メモリなどの様々な態様のメディアを使用する装置が知られている。その中で、ハードディスク・ドライブ（以下、ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途はその優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックは複数のセクタ（サーボ・セクタ）に区分されている。各サーボ・セクタにはサーボ・データと、ユーザ・データが記録される。サーボ・セクタ内には複数セクタ（データ・セクタ）のユーザ・データが記録されている。ヘッド素子部がサーボ・データに従って移動することによって、所望アドレスへのデータ書き込みあるいは所望アドレスからのデータ読み出しを行うことができる。データ読み出し処理において、ヘッド素子部が磁気ディスクから読み出した信号は信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに転送される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、ヘッド素子部によって磁気ディスクに書き込まれる。
【０００４】
データ・セクタに欠陥があると、そのデータ・セクタに記録されているユーザ・データが消失する恐れがある。そのため、欠陥セクタを別のセクタに交代することが行われる。つまり、特定のデータ・セクタが欠陥セクタであると決定される場合、当該セクタのデータは磁気ディスク上の交代領域内に書きなおされる。交代領域は、欠陥を有するユーザ・セクタに代わってユーザ・データを記憶するための複数の交代セクタを備えており、１つの欠陥セクタは一つの交代セクタにリアサインされる（例えば特許文献１を参照）。
【０００５】
欠陥セクタ交代処理の一手法として、リード・コマンドの実行シーケンスにおける自動交代処理が知られている。ＨＤＤは、ホストからリード・コマンドを受信し、そのリード・コマンドで指定された範囲のデータ・セクタから、データを読み出す。このとき、読み出したデータ・セクタが欠陥セクタである場合、その欠陥セクタについて交代処理を実行する。
【０００６】
具体的には、ＨＤＤは、ホストから複数データ・セクタにおよぶリード・コマンドを取得する。最初のデータ・セクタからデータを読み出すと、そのデータ・セクタが欠陥セクタであるかを判定する。欠陥セクタでない場合は、次のデータ・セクタからデータを読み出す。そのデータ・セクタが欠陥セクタの場合は、そのデータ・セクタの交代処理を実行した後に、次のデータ・セクタ読み出しを開始する。この処理を繰り返すことによって、特定データ・セクタが回復不能となる前に、交代セクタを割り当て、記録データの信頼性を向上する。
【特許文献１】特開平１１−１８５２１０
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、ＨＤＤは、所定の規定時間（タイム・アウト時間）内にリード・コマンドを完了することが必要とされる。タイム・アウト時間内にリード・コマンド処理が完了しない場合、ホストはそのＨＤＤをディスコネクトし、他のＨＤＤからデータ・リードを実行する。これによって、ホストは、アプリケーション・トランザクションの低下を抑制する。
【０００８】
従って、ＨＤＤは、タイム・アウト時間内の限られた時間で欠陥セクタの交代処理を行わなければならない。一方、交代処理は、交代セクタへのアクセス、交代データの書き込み、書き込まれたデータの確認処理などを含み、交代処理には相応の時間が必要とされる。このため、タイム・アウト時間内に全ての欠陥セクタについて交代処理を完了することができるとは限らない。
【０００９】
上述のように、従来の自動交代処理は、データの読み出し順序に従って欠陥セクタ交代処理を実行する。このため、読み出し順序が後ろにある欠陥セクタについて、交代処理ができない場合がある。例えば、１０のデータ・セクタからデータを読み出す場合において、１番目、２番目及びの９番目のデータ・セクタが欠陥セクタであるとする。ＨＤＤは、まず、１番目のデータ・セクタの読み出し、欠陥セクタ判定及び交代処理を実行する。その後、２番目のデータ・セクタを読み出し、同様に、欠陥セクタ判定及び交代処理を実行する。その後、順次、データ読み出し及び欠陥セクタ判定を実行するが、タイム・アウト時間が近づくと、欠陥セクタ判定及び交代処理を実行することなく、各データ・セクタからデータを読み出し、全セクタの読み出し終了後にホストにデータ転送する。このため、９番目データ・セクタについて交代処理が実行されない。
【００１０】
ここで重要なことは、欠陥セクタの信頼度は均一ではないことである。つまり、データ回復不能となる可能性は、欠陥セクタ毎に異なる。データ安全性の点から、欠陥セクタの交代処理は、信頼度が低いものから優先して実行することが望ましい。しかし、従来の自動交代処理は読み出し順序で交代処理を行うため、例えば、最も信頼度が低い欠陥セクタの交代処理がなされないことがある。上述の例において、９番目のセクタが１番目及び２番目のデータ・セクタよりも大きな欠陥をもっており、データ回復不能となる可能性が最も高い場合であっても、そのデータ・セクタについて交代処理が実行されない。
【００１１】
本発明は上述のような事情を背景としてなされたものであって、データ記憶装置における欠陥セクタ交代処理の実行順序の決定手法を改善し、データ安全性の向上を図ることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様は、データ記憶装置であって、リード・コマンドを取得し、そのリード・コマンドに対応する複数セクタのデータをメディアから読み出すように制御する、読み出し制御部と、前記読み出した複数セクタ内の欠陥セクタについて交代処理順序を決定する、交代処理順序決定部と、前記交代処理順序決定部が決定した交代処理順序に従って、欠陥セクタの交代処理を制御する、交代処理制御部と、を備えるものである。読み出した複数セクタ内の欠陥セクタについて交代処理を決定することによって、優先すべき欠陥セクタから交代処理を実行することができる。
【００１３】
本発明の第２の態様は、上記第１の態様において、前記交代処理順序決定部は、各セクタの読み出しにおけるエラー訂正量に基づいて前記交代処理順序を決定する。これによって、簡便、的確に欠陥セクタの信頼度を決定することができる。
【００１４】
本発明の第３の態様は、上記第１の態様において、前記交代処理順序決定部は、各セクタの読み出しにおけるリトライ処理に基づいて前記交代処理順序を決定するこれによって、欠陥セクタの信頼度を的確に決定することができる。
【００１５】
本発明の第４の態様は、上記第２の態様において、前記交代処理順序決定部は、前記交代処理順序を、各セクタの読み出しにおけるエラー訂正量の多い順序に設定する。これによって、的確に信頼度の低い欠陥セクタから交代処理することができる。
【００１６】
本発明の第５の態様は、上記第２の態様において、前記読み出し制御部は、前記リード・コマンドで指定され、前記メディアから読み出すべき全セクタのリード・データを読み出し、前記交代処理順序決定部は、その全セクタ内の欠陥セクタについて交代処理順序を決定する。これによって、指定範囲において確実に優先すべき欠陥セクタから交代処理を実行することができる。
【００１７】
本発明の第６の態様は、上記第２の態様において、前記読み出し制御部は、前記リード・コマンドに対応して前記メディアから読み出すべき全セクタのリード・データを読み出し、前記交代処理順序決定部は、その全セクタ内の欠陥セクタについて交代処理順序を決定する。
【００１８】
さらに、本発明の第７の態様は、上記第６の態様において、前記リード・コマンドに対応して前記メディアから読み出すべき全セクタは、前記リード・コマンドで指定されたセクタの前及び／もしくは後の位置のデータを含む。これによって、前読みや、後読みなどを含む全読み出しデータについて、確実に優先すべき欠陥セクタから交代処理を実行することができる。
【００１９】
本発明の第８の態様は、上記第１の態様において、前記リード・コマンドのタイム・アウト時間経過前に前記リード・コマンドに対するコマンド完了を通知するように、複数の欠陥セクタの交代処理の終了タイミングを決定する。これによって、ホストでのタイム・アウト・エラーを防止する。
【００２０】
本発明の第９の態様は、上記第８の態様において、予め定められた値と欠陥セクタの交代処理数とを使用して、前記終了タイミングを決定する。これにより、簡便な処理によりタイミング決定をすることができる。
【００２１】
本発明の第１０の態様は、上記第１の態様において、前記交代処理順序は信頼度の低いセクタから交代処理を行う。これによって、データ回復不能となる可能性が高いセクタを優先した交代処理し、データ安全性を高めることができる。
【００２２】
本発明の第１１の態様は、上記第１の態様において、前記データ記憶装置は、前記メディアから読み出したデータのエラー訂正処理を行う訂正処理部をさらに備え、前記交代処理順序決定部は、前記読み出した各セクタの訂正量を使用して欠陥セクタの交代処理順序を決定する、請求項１に記載のデータ記憶装置。これによって、欠陥セクタの信頼度を的確に決定することができる。
【００２３】
本発明の第１２の態様は、上記第１１の態様において、前記交代処理順序決定部は、最も訂正量の多いセクタを最初の交代処理順序に設定する。これによって、最も欠陥の大きいセクタを最優先で交代処理することができる。
【００２４】
本発明の第１３の態様は、上記第１の態様において、前記読み出し制御部は、前記リード・コマンドで指定され、前記メディアから読み出すべき全セクタのリード・データを読み出すように制御し、前記交代処理順序決定部は、読み出した全セクタ内の欠陥セクタについて、各セクタの読み出しにおけるエラー訂正量に基づいて交代処理順序を決定する。これによって、指定範囲において確実に優先すべき欠陥セクタから交代処理を実行することができる。
【発明の効果】
【００２５】
本発明によれば、メディアに記録されているデータの安全性を向上することができる。
【発明を実施するための最良の形態】
【００２６】
実施の形態１
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２７】
本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施形態は、データ記憶装置における不良セクタの交代処理に関する。本発明の理解の容易のため、最初に、データ記憶装置の一例であるハードディスク・ドライブ（ＨＤＤ）の全体構成の概略を説明する。
【００２８】
図１は、本実施の形態に係るＨＤＤ１の構成を模式的に示すブロック図である。図１に示すように、ＨＤＤ１は、密閉されたエンクロージャ１０内に、メディア（記録媒体）の一例である磁気ディスク１１、ヘッド素子部１２、アーム電子回路（アームエレクトロニクス：ＡＥ）１３、スピンドル・モータ（ＳＰＭ）１４、ボイス・コイル・モータ（ＶＣＭ）１５、そしてアクチュエータ１６を備えている。
【００２９】
ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（Ｒ／Ｗチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）とＭＰＵの集積回路（以下、ＨＤＣ／ＭＰＵ）２３、及びメモリの一例であるＲＡＭ２４などの各ＩＣを備えている。尚、各回路構成は一つのＩＣに集積すること、あるいは、複数のＩＣに分けて実装することができる。
【００３０】
外部ホスト５１からのライト・データは、ＨＤＣ／ＭＰＵ２３によって受信され、Ｒ／Ｗチャネル２１、ＡＥ１３を介して、ヘッド素子部１２によって、不揮発性の記録媒体である磁気ディスク１１に書き込まれる。また、磁気ディスク１１に記憶されているリード・データはヘッド素子部１２によって読み出され、そのリード・データは、ＡＥ１３、Ｒ／Ｗチャネル２１を介して、ＨＤＣ／ＭＰＵ２３から外部ホスト５１に出力される。
【００３１】
次に、ＨＤＤ１の各構成要素について説明する。磁気ディスク１１は、ＳＰＭ１４に固定されている。ＳＰＭ１４は所定の速度で磁気ディスク１１を回転する。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。本例の磁気ディスク１１は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部１２が設けられている。
【００３２】
各ヘッド素子部１２はスライダ（不図示）に固定されている。また、スライダはアクチュエータ１６に固定されている。アクチュエータ１６はＶＣＭ１５に連結され、回動軸を中心に揺動することによって、ヘッド素子部１２（及びスライダ）を磁気ディスク１１上において半径方向に移動する。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従ってＶＣＭ１５を駆動する。
【００３３】
ヘッド素子部１２には、典型的には、磁気ディスク１１への記録データに応じて電気信号を磁界に変換する記録ヘッド、及び磁気ディスク１１からの磁界を電気信号に変換する再生ヘッドを備えている。なお、磁気ディスク１１は、１枚以上あればよく、記録面は磁気ディスク１１の片面あるいは両面に形成することができる。
【００３４】
ＡＥ１３は、複数のヘッド素子部１２の中からデータ・アクセスが行われる１つのヘッド素子部１２を選択し、選択されたヘッド素子部１２により再生される再生信号を一定のゲインで増幅（プリアンプ）し、Ｒ／Ｗチャネル２１に送る。また、Ｒ／Ｗチャネル２１からの記録信号を選択されたヘッド素子部１２に送る。
【００３５】
Ｒ／Ｗチャネル２１は、ホスト５１から転送されたデータについて、ライト処理を実行する。ライト処理において、Ｒ／Ｗチャネル２１はＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してＡＥ１３に供給する。また、ホスト５１にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル２１はＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、ＨＤＣ／ＭＰＵ２３に供給される。
【００３６】
ＨＤＣ／ＭＰＵ２３において、ＭＰＵはＲＡＭ２４にロードされたマイクロ・コードに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、制御データとして、ＭＰＵ上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいはＲＯＭ（不図示）からロードされる。ＨＤＣ／ＭＰＵ２３は、ホスト１１０から取得したユーザ・データについて、誤り訂正（ＥＣＣ）のための符号生成処理を実行し、Ｒ／Ｗチャネル２１に転送する。さらに、磁気ディスク１２１から読み出した読み出しデータについて誤り訂正処理を実行した後に、ホスト５１にデータを転送する。また、ＨＤＣ／ＭＰＵ２３は、コマンド実行順序の管理、ヘッド素子部１２のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、ＨＤＤ１の全体制御を実行する。
【００３７】
本形態のＨＤＤ１は、ホスト５１からリード・コマンドを受信すると、そのリード・コマンドの実行シーケンスにおいて、不良セクタの自動交代処理を実行する。具体的には、ホスト５１からリード・コマンドを受信してから、そのコマンドの完了をホスト５１に通知するまでの間に、欠陥セクタを検出し、その欠陥セクタの交代処理を実行する。コマンドの完了は、リード・データのホスト５１への転送完了により、あるいは、リード・データとは別のコマンド完了通知によって、ホスト５１へ通知される。
【００３８】
磁気ディスク１１には、製造段階において検出される一次欠陥セクタの他、出荷の後に二次欠陥セクタが発生する。磁気ディスク１１の記録面は情報の書き換えや時間経過によって劣化が進み、ユーザ・セクタからの読み取りや書き込みの信頼度が低下しうる。セクタの信頼度が基準値以下に低下したと判断される場合、該セクタを使用しないで交代セクタを使用することが決定される。欠陥セクタのデータは、典型的には、そのセクタと同一ゾーン内の交代セクタに記録される。その後、ホスト５１から欠陥セクタへのアクセスがあった場合、ＨＤＤ１は、内部的にはそれに対応する交代セクタにアクセスする。
【００３９】
リード・コマンドの実行シーケンスにおいて、磁気ディスク１１から読み出したデータ・セクタの内、信頼度が基準値以下の欠陥セクタについて交代処理を実行する。これによって、その欠陥セクタがデータ回復不能なセクタとなる前に使用を禁止し、必要なユーザ・データが消失することを防止することができる。
【００４０】
ここで、ＨＤＤ１は、ホスト５１からリード・コマンドを受信してからタイム・アウト時間内に、ホスト５１にコマンド完了を通知することが必要とされる。ホスト５１は、タイム・アウト時間内にＨＤＤ１からの返信がない場合は、ＨＤＤ１をディスコネクトし、他のＨＤＤからデータ・リードを実行する。このため、タイム・アウト時間内にホスト５１へのリード・データの転送と欠陥セクタの交代処理を終了することが必要である。
【００４１】
交代処理は、交代セクタへのアクセス、交代データの書き込み、書き込まれたデータの確認処理などを含み、交代処理には相応の時間が必要とされる。このため、タイム・アウト時間内に全ての欠陥セクタについて交代処理を完了することができるとは限らない。本形態においては、リード・コマンドに応じて磁気ディスク１１から読み出した複数のデータ・セクタについて、各信頼度を決定した後、信頼度の低いデータ・セクタから交代処理を実行する。これによって、限られた時間内において、データ回復不能となる可能性が高いデータ・セクタを優先的に交代することができ、データの安全性、ＨＤＤ１の信頼性を高めることができる。
【００４２】
データ・セクタの信頼度の決定は、好ましくは、ＥＣＣ訂正データ量（訂正バイト数）に従ってなされる。磁気ディスク１１のデータ・セクタに記録されるデータは、ホスト５１から転送されたユーザ・データに加えて、誤り訂正のためのコードを含んでいる。誤り訂正のためのコードは、ＥＣＣコード及びＣＲＣＣ（Cyclic Redundancy Check Code）を含んでいる。ＣＲＣＣは、ＥＣＣコードからまれな確率で起こる誤検出を防止するため、誤り訂正の検証に使用される。ＥＣＣ及びＣＲＣＣ生成のため、典型的には、リードソロモン符号が使用される。
【００４３】
上述のように、ＨＤＣ／ＭＰＵ２３は、磁気ディスク１１から読み出したデータについて誤り訂正処理を実行する。このときのＥＣＣによる訂正バイト数を使用して、データ・セクタの信頼度を決定する。具体的には、訂正バイト数が基準値を超える場合には、そのデータ・セクタを交代が必要な欠陥セクタと判定し、基準値以下の場合には交代が不要なセクタと判定する。基準値の具体的な値は、各ＨＤＤに応じて設計によって適切な値に設定される。ＨＤＣ／ＭＰＵ２３は、訂正バイト数が多いほど信頼度が低いと判断し、訂正バイト数が多い順にデータ交代処理を実行する。
【００４４】
具体例を使用して、本形態の欠陥セクタ自動交代処理を説明する。図２は、磁気ディスク１１上のトラックの一部を示しており、セクタＮＯ．１０１−１１０の複数データ・セクタが示されている。ホスト５１からのリード・コマンドに応じて、ＨＤＤ１はこれらの全てのデータ・セクタ１０１−１１０からデータを読み出す。データの読み出し順序は、データ・セクタ１０１からデータ・セクタ１１０への方向である。この例において、リード・コマンドにおいて指定されたアドレス範囲（ＬＢＡ：Logical Block Address）が、データ・セクタ１０１−１１０に相当する。なお、キャッシュ・ヒットの場合、データは磁気ディスク１１から読み出されないため、そのデータは除かれる。
【００４５】
ＨＤＣ／ＭＰＵ２３は、磁気ディスク１１からデータ・セクタ１０１−１１０のデータを順次読みし、読み出した各データ・セクタのデータについて訂正処理を実行した後、ＲＡＭ２４内のリード・バッファに格納する。ＨＤＣ／ＭＰＵ２３は、さらに、各セクタの訂正処理結果に関するデータを自動交代テーブルに格納する。図３（ａ）は、その自動交代テーブルの一例を示している。自動交代テーブルは、各データ・セクタに対応して、その訂正バイト数と、それに応じて決定された交代順序が登録されている。交代順序は、訂正バイト数が大きいほど前に設定されている（先に実行される）。また、本例においては、簡単のため、１バイトでもエラー訂正されると、そのデータ・セクタは交代処理の対象（欠陥セクタ）とされる。なお、上述のように、典型的には、訂正バイト数が予め設定された基準値よりも大きい場合に、そのデータ・セクタは欠陥セクタとして認定される。
【００４６】
図３（ａ）において、例えば、データ・セクタ１０１の訂正バイト数は４であり、実行順序は３番目に設定されている。データ・セクタ１０８の訂正バイト数は１２であり、読み出されたデータ・セクタ１０１−１１０の内で最も訂正バイト数が多いため、実行順序は１番目に設定されている。データ・セクタ１０３、１０５、１０６は、訂正バイト数が０であるので非欠陥セクタ（正常セクタ）と判定され、交代順序は設定されていない。このテーブルに従った交代処理順序は、図３（ｂ）に示す順序となる。
【００４７】
ＨＤＣ／ＭＰＵ２３は、決定された順序に従って、欠陥セクタの交代処理を実行する。タイム・アウト時間内で可能なセクタ数の交代処理を実行した後、ホスト５１に対してリード・バッファに格納されているデータ転送を開始する。タイム・アウト時間は、ホスト５１がコマンド完了の通知を受けるまでの時間であるので、ＨＤＣ／ＭＰＵ２３はホスト５１へのデータ転送時間を残して、自動交代処理を終了する。
【００４８】
図４は、リード・コマンドの実行シーケンスにおける各処理ステップと時間との関係を示している。図４において、横軸はデータ・セクタに対応し、縦軸が時間に対応している。白箱１０１ａ−１１０ａは、磁気ディスク１１の各データ・セクタからのデータ読み出し処理を示し、ハッチング箱１０１ｂ、１０７ｂ、１０８ｂ、１１０ｂは欠陥セクタの交代処理を示している。図４は、図３の自動交代テーブルと対応している。
【００４９】
まず、ＨＤＣ／ＭＰＵ２３は、リード・コマンドで指定された全てのデータ・セクタからデータを読み出す１０１ａ−１１０ａ。その後、自動交代テーブルに登録されている実行順序に従って、欠陥セクタの自動交代処理を実行する。まず、データ・セクタ１０８について自動交代処理１０８ｂを実行し、続いてデータ・セクタ１１０の自動交代処理１１０ｂ、次に、データ・セクタ１０１の自動交代処理１０１ｂ、そして最後にデータ・セクタ１０７の自動交代処理１０７ｂを実行する。このタイミングで自動交代処理終了時間Ｔ１が近づき、次のデータ・セクタ１０２の自動交代処理をする時間が残されていないため、自動交代処理を終了する。
【００５０】
ＨＤＤ１は、リード・コマンドで指定された全てのデータ・セクタからデータを読み出した後、各データ・セクタの信頼度を決定し、信頼度が低いデータ・セクタから自動交代処理を実行する。これによって、データ回復不能となる可能性が高いデータ・セクタを優先的に交代処理することができる。また、データ・セクタの信頼度決定の基準として訂正バイト数を使用することで、的確、迅速な信頼度の決定を行うことができる。
【００５１】
続いて、本形態の自動交代処理を伴うリード・コマンドの実行シーケンスの詳細について図５−７を参照して説明する。このシーケンスの主な処理は、ＨＤＣ／ＭＰＵ２３が実行するため、その処理の詳細を説明する。図５は、自動交代処理に関するＨＤＤ１の一部構成を示すブロック図であり、Ｒ／Ｗチャネル２１及びＡＥ１３は省略されている。ホスト５１は、ＨＤＤ１のパワーオン時に、モード・パラメータとしてタイム・アウト時間をＨＤＤ１に設定する。ＭＰＵ２３１は、パワーオン時の初期化処理において、ホスト５１が設定したタイム・アウト時間から、自動交代処理を終了すべき時間を決定する。また、ＨＤＤ１は、１回（１データ・セクタ）の交代処理に必要とされることが予想される交代処理時間を予め備えている。この時間は、設計によって適切な値が設定される
【００５２】
図５及び６を参照して、ホスト５１は、リード・データのアドレスを指定して、ＨＤＤ１にリード・コマンドを発行する。ＭＰＵ２３１は、ＨＤＣ２３２を介してホスト５１からリード・コマンドを受信する（Ｓ１１）。ＭＰＵ２３１は、リード・コマンドの受信に応答して、自動交代処理を終了すべき時間を変数Ｔ１に設定し（Ｓ１２）、１回の交代処理の予想時間を変数Ｔ２に設定する（Ｓ１３）。また、変数ＴＩＭＥを初期化する（Ｓ１４）。変数ＴＩＭＥは規定値、もしくはリード・コマンドの指定データ・セクタ数に応じて変化する値が設定される。ＭＰＵ２３１は読み出し制御部として機能し、ＨＤＣ２３１に対して、リード・コマンドに対応するデータ・セクタからのデータ・リードを指示する。ＨＤＣ２３２は、ＭＰＵ２３１からの指示に応じて、磁気ディスク１１の指定された全てのデータ・セクタからデータを読み出す（Ｓ１５）。
【００５３】
読み出し処理（Ｓ１５）において、ＨＤＣ２３２は、読み出した各データ・セクタのデータについてＥＣＣによるエラー訂正処理を実行した上で、ＲＡＭ２４内のリード・バッファ２４１に格納する。具体的には、読み出したデータに誤りがあるかどうかを判別し、誤りがある場合、誤り位置及び誤りパターンからなる誤りデータを計算し、計算した誤りデータが全て正しいか否かをＣＲＣＣによって検証する。さらに、ＨＤＣ２３２は、各データ・セクタの訂正バイト数をＭＰＵ２３１に出力する。
【００５４】
ＭＰＵ２３１は、ＨＤＣ２３２から取得した訂正バイト数を参照して、自動交代テーブル２４２(図３（ａ）を参照)を生成（自動交代テーブル２４２へのデータ登録）する（Ｓ１６）。なお、高速処理のために、エラー訂正処理はＨＤＣ２３２内のハードウェアを使用することが好ましいが、ＭＰＵ２３１上で実行されるマイクロ・コードによってエラー訂正処理を行うことも可能である。
【００５５】
ＭＰＵ２３１は交代順序を決定する交代処理順序決定部として機能する。ＭＰＵ２３１は交代対象となる欠陥セクタがあるかを判定し（Ｓ１７）、欠陥セクタが存在しない場合は、自動交代処理を行うことなく、ホスト５１へのデータ転送を開始する（Ｓ１８）。欠陥セクタが存在する場合、変数ＴＩＭＥに交代処理の予想時間Ｔ２を加算し（ＴＩＭＥ＋Ｔ２）、自動交代処理終了時間Ｔ１と比較する（Ｓ１９）。（ＴＩＭＥ＋Ｔ２）は、次のデータ・セクタの交代処理を完了した段階における経過時間を示している。（ＴＩＭＥ＋Ｔ２）がＴ１以上の場合、ＭＰＵ２３１は、ホスト５１へのデータ転送を開始する（Ｓ１８）。
【００５６】
（ＴＩＭＥ＋Ｔ２）がＴ１よりも小さい場合、ＭＰＵ２３１は、自動交代処理を開始する（Ｓ２０）。ＭＰＵ２３１は、交代処理制御部として機能する。図５及び７を参照して、自動交代処理において、まず、ＭＰＵ２３１は、欠陥セクタとして判定され、自動交代の対象となるデータ・セクタ数を変数ＣＮＴに設定し、変数ＬＯＯＰに０を設定する（Ｓ２０１）。変数ＬＯＯＰは、交代処理を実行したデータ・セクタ数に相当する。続いて、変数ＣＮＴと変数ＬＯＯＰを比較する（Ｓ２０２）。最初の交代処理の実行前においては変数ＬＯＯＰが小さいため（Ｓ２０２におけるＮ）、ＭＰＵ２３１は、訂正バイト数が最も大きいデータ・セクタについて、交代処理を実行する（Ｓ２０３）。
【００５７】
交代処理（Ｓ２０３）は、リード・バッファ２４１に記憶されている欠陥セクタのデータを、磁気ディスク１１の交代セクタに書き込む。交代セクタの管理は、ＲＡＭ２４に記憶されたディフェクト・マップ２４３によって行われる。ＭＰＵ２３１は、一つのデータ・セクタについて交代処理を終了すると、ディフェクト・マップ２４３を最新の情報に更新する。ディフェクト・マップ２４３は、欠陥セクタと、それに対応する交代セクタを特定するためのデータを登録する。
【００５８】
例えば、欠陥セクタのアドレス（ＬＢＡ）と、交代セクタのアドレス（ＣＨＳ：シリンダ番号、ヘッド番号、セクタ番号）とを登録する。ホスト５１から該当するＬＢＡへのアクセス要求があると、ＨＤＣ／ＭＰＵ２３は、ディフェクト・マップ２４３を参照して、対応する交代セクタへアクセスする。尚、ディフェクト・マップによる処理は広く知られた技術であり、本明細書において詳細な説明は省略する。
【００５９】
訂正バイト数が最も大きいデータ・セクタの交代処理が終了すると、ＭＰＵ２３１は、現在のＴＩＭＥ変数にＴ２を加算してＴ１と比較する（Ｓ２０４）。このときの（ＴＩＭＥ＋Ｔ２）は、次のデータ・セクタの交代処理を完了した段階における経過時間を示している。（ＴＩＭＥ＋Ｔ２）がＴ１よりも小さい場合は、ＭＰＵ２３１は自動交代処理を終了し、リード・バッファ２４１に格納されているユーザ・データを、ホスト５１に転送開始する（Ｓ１８）。具体的には、ＭＰＵ２３１は、ＨＤＣ２３２に対してデータ転送の開始を指示し、ＨＤＣ２３２は、リード・バッファからユーザ・データをホスト５１に転送する。ホスト５１へのデータ転送が終了すると、必要な場合は、ＭＰＵ２３１は、転送ユーザ・データとは別にコマンドの完了通知を送信する。
【００６０】
（ＴＩＭＥ＋Ｔ２）がＴ１以上である場合（ＴＩＭＥ＋Ｔ２≧Ｔ１）、ＭＰＵ２３１は、現在の変数ＬＯＯＰに１を加算し（Ｓ２０５）、Ｓ２３２に戻って変数ＣＮＴと比較する。未交代の欠陥セクタが存在しない場合、変数ＬＯＯＰは変数ＣＮＴ以上（ＬＯＯＰ≧ＣＯＮ）となり、ＭＰＵ２３１は自動交代処理を終了する。一方、未交代の欠陥セクタが存在する場合、変数ＬＯＯＰは変数ＣＮＴ未満（ＬＯＯＰ＜ＣＯＮ）となる。ＭＰＵ２３１は、未交代欠陥セクタ中で、訂正バイト数が最も大きかったデータ・セクタについて、交代処理を開始する（Ｓ２０３）。以下、ＭＰＵ２３１は、上述の各ステップを繰り返し、リード・コマンドの実行シーケンスが完了する。
【００６１】
その他の実施形態
以下において、上述の実施形態に対する、いくつかの変形例を説明する。上述の例において、交代処理すべき欠陥セクタ及びその交代順序を、訂正バイト数を基準として決定している。この他、エラー・リカバリ・プロシージャにおけるリトライ処理を基準としてデータ・セクタの信頼度を決定することができる。通常の読み取りモードで磁気ディスク１１から読み取りができないような不良が生じた場合、ＨＤＤ１はリカバリ・プロシージャを開始する。ＨＤＤ１は、読み取りのタイミングの変更、ヘッド素子部１２の半径方向位置の微調整、ヘッド素子部１２におけるＭＲヘッドのセンス電流の変更、Ｒ／Ｗチャネル２１内部のＶＧＡ（Variable Gain Amplifier）ゲイン値の変更、デジタル・フィルタ・パラメータ値の変更など、読み取りパラメータを変更して、データを読み取るための試み（リトライ・ステップ）を繰り返す。
【００６２】
ＨＤＤ１は、ホスト５１からのリード・コマンドに対応するデータ・セクタから、データを読み出す（図６、Ｓ１５）。このとき、いずれかのデータ・セクタの最初の読み取りステップにおいてデータを正確に読み取れなかった場合、ＭＰＵ２３１はリカバリ・プロシージャを開始する。ＭＰＵ２３１は、ＨＤＤ１内の各部に読み取りパラメータの変更を指示し、異なるパラメータにおけるリトライ・ステップを実行する。読み取りパラメータを変更することによってデータを正確に読み取ることができた場合、ＭＰＵ２３１は、そのリトライ・ステップの種類と、読み取るまでに必要としたリトライ・ステップ数（リトライの深さ）を自動交代テーブル２３２に登録する。ＭＰＵ２３１は、読み出した各データ・セクタについて、これらのデータを登録する。
【００６３】
ＭＰＵ２３１は、例えば、データ読み取りのために基準回数以上のリトライ・ステップが必要であった場合、そのセクタの信頼度が低いと判断して、欠陥セクタと認定する。また、自動交代処理における交代順序を、リトライ回数に従って決定する。例えば、リトライ回数が多い順序で、自動交代処理を実行する。欠陥セクタの認定、交代順序の決定においては、読み出しに成功したリトライ・ステップの種類・内容を参照することが好ましい。例えば、ヘッド素子部１２の半径位置を変更することによってデータを読み出すことができた場合、そのデータ・セクタを非欠陥セクタと認定する。また、リトライ・ステップとＥＣＣによるエラー訂正バイト数とを併用することも可能である。
【００６４】
上述の例において、ＨＤＤ１はホスト５１から指定されたアドレス範囲のデータのみを磁気ディスク１１から読み出している。ＨＤＤによっては、リード・コマンドの指定範囲の他に、その範囲の前のアドレスに記録されているデータを読み出す（前読み）もの、あるいは、指定範囲の後に記憶されているデータを読み出す（先読み）ものが知られている。これらのデータは、ホスト５１から続けてリード要求されることが多いため、予め磁気ディスク１１から読み出しておくことで、キャッシュ・ヒット率を上げ、パフォーマンスを向上することができる。
【００６５】
ＨＤＤ１は、この先読み及び前読みのデータ・セクタも、上述の自動交代処理に含めることができる。つまり、ＭＰＵ２３１は、先読み及び前読みのデータ・セクタを含む、リード・コマンドに対応する全てのデータ・セクタについて訂正バイト数を比較し、訂正バイト数の多いデータ・セクタから順次交代処理を実行する。あるいは、ＨＤＤ１は、先読み及び前読みのデータ・セクタを、自動交代処理に含めず、リード・コマンドで指定された範囲のデータ・セクタのみについて、自動交代処理を実行することも可能である。
【００６６】
また、上述の例において、ＨＤＤ１は、ホスト５１に指定された全てのデータ・セクタからデータを読み出した後、各データ・セクタの交代順序を決定している。回復不能となる可能性が高いデータ・セクタから優先的に交代処理を行うためには、リード・コマンドに対応するデータを全て読み出した上で、交代順序を決定することが好ましい。しかし、ＨＤＤ１は、リード・コマンドに対応する一部のデータ・セクタからデータを読み出した段階で、交代順序を決定することができる。
【００６７】
例えば、ＭＰＵ２３１は、１トラック分のデータ・セクタからデータを読み出したタイミングで、各データ・セクタについて欠陥セクタの認定及び交代順序を決定する。さらに、決定された順序に従って、欠陥セクタの交代処理を実行する。自動交代処理の終了後、ＨＤＤ１は、リード・バッファ２４１に格納されているユーザ・データをホスト５１に転送する。続いて、ＨＤＤ１は、別の１トラック分のデータ・セクタから新たにデータを読み出し、同様の処理を繰り返し実行する。
【００６８】
リード・コマンドに対応する一部の複数データ・セクタ毎に交代順序の決定及び欠陥セクタの交代処理を実行することは、磁気ディスク１１から読み出すユーザ・データに対してリード・バッファの容量が不足する場合などに有効である。リード・バッファ２４１内の欠陥セクタのデータが、磁気ディスク１１から新たに読み出されたデータによって上書き消去される前に交代処理を実行することで、交代処理のために新たにデータを読み出すための処理を省き、また、欠陥セクタから新たにデータを読み出すことができない危険性を避けることができる。
【００６９】
あるいは、リード・バッファ容量が小さい場合に、欠陥セクタのデータを、ＲＡＭ２４内の別の領域に確保することは、好ましい他の方法の一つである。つまり、ＭＰＵ２３１は、例えば１トラック分のデータ・セクタからデータを読み出し、各データ・セクタについて、訂正バイト数に従った欠陥セクタの判定を行う。ＭＰＵ２３１は、欠陥セクタと判定されたデータ・セクタのユーザ・データを、リード・バッファ２４１とは異なる領域にも格納する。ＭＰＵ２３１は、さらに、各データ・セクタの訂正バイト数を自動交代テーブルに登録する。
【００７０】
ＭＰＵ２３１は、このタイミングで欠陥セクタの交代処理を実行することなく、リード・バッファ２４１内のユーザ・データをホスト５１に転送する。続いて、新たに磁気ディスク１１から１トラック分のユーザ・データを読み出し、同様の処理を繰り返し実行する。ＭＰＵ２３１は、全データを磁気ディスク１１から読み出した後に、全ての欠陥セクタについて交代処理順序を決定する。さらに、ＲＡＭ２４に確保されているユーザ・データを使用して、決定された順序に従って各欠陥セクタの交代処理を実行する。これによって、リード・バッファ容量が小さい場合において、読み出されるデータ・セクタの内で最も信頼度の低いデータ・セクタから交代処理を開始することができ、記録データの安全性を高めることができる。
【００７１】
上述の例において、ＨＤＤ１は、自動交代処理が終了した後に、読み出したユーザ・データをホスト５１に転送する（図６、Ｓ１８）。これに代えて、ホスト５１へのデータ転送を、自動交代処理と並行して、あるいは磁気ディスク１１からの読み出し処理と並行して行うことができる。こうすることによって、ホスト５１へのデータ転送時間を、自動交代処理のために利用することができる。この場合、自動交代処理の時間を確保するため、ホスト５１へのデータ転送終了後にコマンド完了通知の送信を遅らせ、ホスト５１が新たなコマンドを発行しないようにする。あるいは、データ転送の完了がコマンド完了の通知に相当する場合、最後のデータ転送を遅らせる。
【００７２】
上述の例において、ＭＰＵ２３１は、規定値としての交代処理予想時間Ｔ２と、交代処理回数（交代したセクタ数）を使用して、自動交代処理の終了タイミングを決定する。ＭＰＵ２３１は、タイマを使用して実際に計測された時間を使用して、自動交代処理の終了タイミングを決定することも可能である。
【００７３】
尚、上記の説明は、本発明の実施形態を説明するものであり、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本形態の自動交代処理を、磁気ディスク以外のメディアを利用するデータ記憶装置に適用することができる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態に係るＨＤＤの全体構成を模式的に示すブロック図である。
【図２】本実施形態に係る自動交代処理において、読み出されるデータ・セクタを示す図である。
【図３】本実施形態に係る自動交代処理において生成された自動交代テーブルの一例を示す図である。
【図４】本実施形態に係るリード・コマンド実行シーケンスにおいて、読み出し処理と自動交代処理を示す図である。
【図５】本実施形態に係るＨＤＤにおいて、自動交代処理に関する一部構成を模式的に示すブロック図である。
【図６】本実施形態に係るリード・コマンド実行シーケンスの処理フローである。
【図７】本実施形態に係る自動交代処理の処理フローである。
【符号の説明】
【００７５】
１０  エンクロージャ、１１  磁気ディスク、１２  ヘッド素子部、
１３  アーム・エレクトロニクス、１４  スピンドル・モータ、
１５  ボイス・コイル・モータ、１６  アクチュエータ、２０  回路基板、
２１  リード・ライト・チャネル、２２  モータ・ドライバ・ユニット、５１  ホスト
２３１  ＭＰＵ、２３２  ＨＤＣ、２４１  リード・バッファ、
２４２  自動交代テーブル、２４３  ディフェクト・マップ
【図１】
2006269027.tif 000003
【図２】
2006269027.tif 000004
【図３】
2006269027.tif 000005
【図４】
2006269027.tif 000006
【図５】
2006269027.tif 000007
【図６】
2006269027.tif 000008
【図７】
2006269027.tif 000009