(57)【要約】【課題】限られたリトライ回数内において、ディスクからの正確なデータ再生比率を高める。【解決手段】本発明の一形態において、ＨＤＤ１は、磁気ディスク１１からの複数データ・セクタを再生する際、磁気ディスクから読み出したデータのＥＣＣ（Error Correction Code）エラーの有無に係らず、全データ・セクタを読み出す。その後、ＥＣＣエラーを起こしたデータ・セクタについてのみ、再生のリトライを行う。これによって、エラーが発生する場合において、複数データ・セクタを正確に再生するための処理時間を短縮することができ、特に、リトライ回数が制限されている場合において、正確なデータ再生率を上げることができる。【選択図】図４
2008299978.tif 000002
【特許請求の範囲】
【請求項１】
ディスクからデータを読み出すディスク・ドライブ装置であって、
前記磁気ディスクからデータを読み出すヘッドと、
前記ディスクから読み出したデータ・セクタを格納するバッファと、
前記ヘッドを使用して目的とする複数データ・セクタの読み出しを順次試み、前記ディスクから順次読み出したデータ・セクタをバッファに格納し、読み出しを順次試みた複数データ・セクタの内前記ディスクから正確に再生することができなかったデータ・セクタの読み出しのみを再度試みるコントローラと、
を有するディスク・ドライブ装置。
【請求項２】
前記コントローラはファームウェアに従って動作するプロセッサと、そのプロセッサからの指示に応じて動作するロジック回路と、を有し、
前記ロジック回路は、前記正確に再生することができなかったデータ・セクタを特定するマップを生成し、そのマップにより前記正確に再生することができなかったデータ・セクタの読み出しを再度試みる、
請求項１に記載のディスク・ドライブ装置。
【請求項３】
前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項１に記載のディスク・ドライブ装置。
【請求項４】
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項３に記載のディスク・ドライブ装置。
【請求項５】
前記コントローラは、前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、前記コマンド指定されたデータ・セクタをホストに転送した後、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項３に記載のディスク・ドライブ装置。
【請求項６】
前記バッファは前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく、
請求項３に記載のディスク・ドライブ装置。
【請求項７】
前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存しておく、
請求項３に記載のディスク・ドライブ装置。
【請求項８】
ディスクからデータを読み出すディスク・ドライブ装置であって、
前記磁気ディスクからデータを読み出すヘッドと、
前記ディスクから読み出したデータ・セクタを格納するバッファと、
前記ヘッドにより順次読み出されたデータ・セクタが正確に再生できたか否かに関わらず前記順次読み出されたデータ・セクタを前記バッファに格納し、正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みるコントローラと、
を有するディスク・ドライブ装置。
【請求項９】
前記順次読み出されたデータ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項８に記載のディスク・ドライブ装置。
【請求項１０】
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項９に記載のディスク・ドライブ装置。
【請求項１１】
前記コントローラは、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項９に記載のディスク・ドライブ装置。
【請求項１２】
前記バッファは、前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく、
請求項９に記載のディスク・ドライブ装置。
【請求項１３】
前記マップは、コマンド指定されたデータ・セクタの内の正確に再生できなかったデータ・セクタを特定する情報を有し、
前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存する、
請求項９に記載のディスク・ドライブ装置。
【請求項１４】
ディスク・ドライブ装置においてディスクからデータを再生する方法であって、
目的とする複数データ・セクタの前記磁気ディスクからの読み出しを順次試み、
前記ディスクから順次読み出したデータ・セクタをバッファに格納し、
前記読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタのみ読み出しを再度試みる、
方法。
【請求項１５】
前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項１４に記載の方法。
【請求項１６】
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項１５に記載の方法。
【請求項１７】
前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、
前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項１５に記載の方法。
【請求項１８】
前記異なるデータ・セクタの内、所定の再読み出し回数内に正確に再生されたデータ・セクタのみをバッファ内に保存する、
請求項１５に記載の方法。
【請求項１９】
前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみをバッファ内に保存しておく、
請求項１５に記載の方法
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスク・ドライブ装置及びディスクからのデータ再生方法に関し、特に、ディスクからのデータ読み出しのリトライに関する。
【背景技術】
【０００２】
データ記憶装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のメディアを使用する装置が知られているが、その中で、ハードディスク・ドライブ（ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、携帯電話、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途は、その優れた特性により益々拡大している。
【０００３】
一般に、ＨＤＤがホストからリード・コマンドを受信してから、ホストにデータ転送するまでの時間が規定されている。特に、ＡＶ機器向けなどのＨＤＤにおいては、短い時間内にデータを読み出す必要があるため、リトライ回数は通常よりも少ない回数に制限されている。このため、回復不能エラーとなる頻度は高まる。非圧縮データの場合、数データ・セクタが回復不能であっても、連続フレームに影響しないために視覚的には問題ない。このことから、データ・セクタがＥＣＣエラーであっても、それを訂正することなくホストに転送するRead Continuousモードが存在する。
【０００４】
しかし、最近のＡＶ機器が採用する圧縮は、ＭＰＥＧを代表とする圧縮手法が主流であり、前後のフレームとの差分を保存する。このため、数データ・セクタのロストが視覚的に影響するようになってきている。最近のＡＶシステム・ユーザの要求は「単位時間内に要求データを転送し、さらに、回復不能データの転送は許されない」という厳しいものになってきている。実質、「ＨＤＤの高密度化によるサステイン転送レートの向上／高密度化エラー・レートの悪化」との勝負という状況となっている。
【０００５】
将来的にＡＶ情報の高品質化・多様化に伴い要求転送レートも上がるようになると、「ＨＤＤの高密度化によるサステイン転送レートの向上／高密度化エラー・レートの悪化」が大変厳しいものとなると予想される。一方、ＡＶサーバなどにおいて、ＲＡＩＤ構成を有しているシステム、あるいは、上位ＥＣＣを持っているシステムにおいては、当該データ・セクタが回復不能データ・セクタであることが上位装置で判明すれば、上位装置がエラーを回復することができる。そこで、ＨＤＤがデータを上位装置に転送する際に、各データ・セクタがＥＣＣエラーを有するか否かを示すビット・マップをＨＤＤがホストに送る技術が、特許文献１において提案されている。
【特許文献１】特開２００１−３３１３３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記ビット・マップによって、上位装置でのエラー訂正を的確に行い、より正確なデータを再生することができる。しかし、コンシューマ・ユースのＭＰ３プレイヤ、携帯電話、あるいはCamcorderなどの超小型ＨＤＤを使用する装置では、上位でＥＣＣを使用したエラー訂正を行わないことが一般的である。このように、上位におけるエラー訂正やＲＡＩＤ構成が存在しない場合、限られたリトライ回数内で、ＨＤＤができるだけ多くのデータ・セクタを正確に再生することが要求される。また、上位装置がこれらのエラー回復手段を有している場合であっても、上位装置へ転送されるエラー・データ・セクタをできるだけ少なくし、上位装置の処理負担を軽減することが好ましい。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ディスクからデータを読み出すディスク・ドライブ装置である。この装置は、前記磁気ディスクからデータを読み出すヘッドと、前記ディスクから読み出したデータ・セクタを格納するバッファと、前記ヘッドを使用して目的とする複数データ・セクタの読み出しを順次試み、前記ディスクから順次読み出したデータ・セクタをバッファに格納し、読み出しを順次試みた複数データ・セクタの内前記ディスクから正確に再生することができなかったデータ・セクタの読み出しのみを再度試みるコントローラとを有する。読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタの読み出しのみを再度試みることで、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
【０００８】
好ましくは、前記コントローラはファームウェアに従って動作するプロセッサと、そのプロセッサからの指示に応じて動作するロジック回路とを有し、前記ロジック回路は、前記正確に再生することができなかったデータ・セクタを特定するマップを生成し、そのマップにより前記正確に再生することができなかったデータ・セクタの読み出しを再度試みる。これによって、プロセッサに過度に負担を要求することなく必要な処理を行うことができる。
前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含むことが好ましい。これによって、パフォーマンスを向上し、さらに、正確なデータ再生比率を高めることができる。
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下であることが好ましい。これによって、パフォーマンス低下を抑制することができる。
【０００９】
好ましい例において、前記コントローラは、前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、前記コマンド指定されたデータ・セクタをホストに転送した後、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行うこと。これによって、パフォーマンス低下を抑制しつつ、正確なデータ再生比率を高めることができる。
好ましい一例において、前記バッファは前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく。これによってメモリ消費を抑制しつつ、キャッシュ・ヒット率を向上することができる。
好ましい一例において、前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存しておく。これによって、よりシンプルな制御で、メモリ消費を抑制しつつキャッシュ・ヒット率を向上することができる。
【００１０】
本発明の他の態様に係るディスク・ドライブ装置は、前記磁気ディスクからデータを読み出すヘッドと、前記ディスクから読み出したデータ・セクタを格納するバッファと、前記ヘッドにより順次読み出されたデータ・セクタが正確に再生できたか否かに関わらず前記順次読み出されたデータ・セクタを前記バッファに格納し、正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みるコントローラと、を有する。正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みることによって、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
【００１１】
好ましくは、前記マップは、コマンド指定されたデータ・セクタの内の正確に再生できなかったデータ・セクタを特定する情報を有し、前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存する。これによって、よりシンプルな制御で、メモリ消費を抑制しつつキャッシュ・ヒット率を向上することができる。
【００１２】
本発明の他の態様は、ディスク・ドライブ装置においてディスクからデータを再生する方法である。この方法は、目的とする複数データ・セクタの前記磁気ディスクからの読み出しを順次試みる。前記ディスクから順次読み出したデータ・セクタをバッファに格納する。前記読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタのみ読み出しを再度試みる。読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタの読み出しのみを再度試みることで、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
【発明の効果】
【００１３】
本発明によれば、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブ装置の一例であるハードディスク・ドライブ（ＨＤＤ）について説明する。
【００１５】
本形態のＨＤＤは、磁気ディスクからの複数データ・セクタを再生する際、磁気ディスクから読み出したデータのＥＣＣ（Error Correction Code）エラーの有無に係らず、全データ・セクタを読み出す。その後、ＥＣＣエラーを起こしたデータ・セクタについてのみ、再生のリトライを行う。これによって、エラーが発生する場合において、複数データ・セクタを正確に再生するための処理時間を短縮することができ、特に、リトライ回数が制限されている場合において、正確なデータ再生率を上げることができる。
【００１６】
まず、ＨＤＤの全体構成を説明する。図１は、ＨＤＤ１の全体構成を模式的に示すブロック図である。ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（ＲＷチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）とＭＰＵの集積回路（ＨＤＣ／ＭＰＵ）２３及び半導体メモリのＲＡＭ２４などの各回路を有している。エンクロージャ１０内において、スピンドル・モータ（ＳＰＭ）１４は所定の角速度で磁気ディスク１１を回転する。磁気ディスク１１は、データを記憶するディスクである。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。
【００１７】
各ヘッド・スライダ１２は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換（データの読み書き）を行うヘッド素子部とを備えている。各ヘッド・スライダ１２はアクチュエータ１６の先端部に固定されている。アクチュエータ１６はボイス・コイル・モータ（ＶＣＭ）１５に連結され、回動軸を中心に回動することによって、ヘッド・スライダ１２を回転する磁気ディスク１１上においてその半径方向に移動する。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従ってＶＣＭ１５を駆動する。アーム電子回路（ＡＥ：Arm Electronics）１３は、ＨＤＣ／ＭＰＵ２３からの制御データに従って複数のヘッド素子部１２の中から磁気ディスク１１にアクセス（リードもしくはライト）するヘッド・スライダ１２を選択し、リード／ライト信号の増幅を行う。
【００１８】
ＲＷチャネル２１は、リード処理において、ＡＥ１３から取得したリード信号からサーボ・データ及びユーザ・データを抽出し、デコード処理を行う。デコード処理されたデータは、ＨＤＣ／ＭＰＵ２３に供給される。また、ＲＷチャネル２１は、ライト処理において、ＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してＡＥ１３に供給する。ＨＤＣ／ＭＰＵ２３において、ＨＤＣはロジック回路であり、ＭＰＵはＲＡＭ２４にロードされたファームウェアに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいはＲＯＭ（不図示）からロードされる。ＨＤＣ／ＭＰＵ２３はコントローラの一例であり、ヘッド・ポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、ＨＤＤ１の全体制御を実行する。
【００１９】
ＨＤＣ／ＭＰＵ２３は、ＲＷチャネル２１から取得した磁気ディスク１１からのリード・データを、ホスト５１に転送する。磁気ディスク１１からのリード・データは、ＲＡＭ２４内のリード・バッファに一時的に格納された後、ＨＤＣ／ＭＰＵ２３を介してホスト５１に転送される。本形態のＨＤＣ／ＭＰＵ２３は、特に、磁気ディスク１１からの複数データ・セクタの再生処理において、データ・セクタのＥＣＣ（Error Correcting Code）エラーが発生しても、磁気ディスク１１からのデータの読み出しを中断することなく、その後のデータ・セクタを読み出す。なお、以下において、再生は、磁気ディスク１１からの読み出しと、そのデータのエラー訂正処理とを含む処理である。
【００２０】
例えば、図２に示すように、ＨＤＣ／ＭＰＵ２３が、データ・セクタ１からデータ・セクタ１０を再生するにおいて、データ・セクタ６においてＥＣＣエラーが発生する。従来のＨＤＣ／ＭＰＵ２３は、データ・セクタ６がエラーを起こした時点で残りのデータ・セクタ７〜１０の読み出しを中断し、データ・セクタ６の再生のエラー回復処理を開始する。エラー回復処理は、予め設定された手順において、読み出しの条件を維持して、あるいは変更して読み出しをリトライする。本形態のＨＤＣ／ＭＰＵ２３は、データ・セクタ６のエラーにかかわらず、その後のデータ・セクタ７〜１０の再生を実行する。その後、ＨＤＣ／ＭＰＵ２３は、データ・セクタ６の読み出し及び必要なエラー訂正処理を再実行する。
【００２１】
ＨＤＣ／ＭＰＵ２３のデータ再生処理の詳細について、図３のブロック図を参照して説明する。ＨＤＣ／ＭＰＵ２３は、ハードウェア回路（論理回路）で構成されたＨＤＣ２３２と、ファームウェアに従って動作するプロセッサであるＭＰＵ２３１とを有している。ＨＤＣ２３２は、ホスト・インターフェース・コントローラ（ＨＩＣ）３２１、メモリ・マネージャ３２２、ドライブ・マネージャ３２３、エラー訂正処理部であるＥＣＣ訂正処理回路３２４、ＳＲＡＭ３２５及びレジスタに格納されたビット・マップ３２６を有する。ビット・マップ３２６は、目的とするデータ・セクタのそれぞれが、正確に再生されているか否かを示す。
【００２２】
図３を参照して、データ記録処理及び再生処理における転送データの流れについて説明する。図３において、実線の矢印はホスト５１から転送されて磁気ディスク１１に記録されるデータの流れを示している。また、点線の矢印は磁気ディスク１１から読みだされてホスト５１に転送されるデータの流れを示している。なお、再生及び記録の各処理において、データはデータ・セクタ単位で転送及び処理される。ここで、データ・セクタは、磁気ディスク１１におけるユーザ・データの記録単位である。
【００２３】
記録処理におけるデータの流れから説明する。ＨＩＣ３２１は、ホスト５１とＨＤＤ１とのインターフェース回路である。記録処理において、ＨＩＣ３２１は、ホスト５１から転送されたユーザ・データを、メモリ・マネージャ３２２にデータ・バスを介して送る。メモリ・マネージャ３２２は、受け取ったユーザ・データをＤＲＡＭ２４内のバッファ２４１に一旦格納する。その後、ドライブ・マネージャ３２３から要求があったときに、そのデータをバッファ２４１から読み出して転送する。
【００２４】
ドライブ・マネージャ３２３は、受け取ったデータをＥＣＣ訂正処理回路３２４に送る。ＥＣＣ訂正処理回路３２４は、ドライブ・マネージャ３２３から受け取ったデータからＥＣＣを生成する。ＥＣＣは、磁気ディスク１１へのデータ記録におけるエラーを訂正するためのコードである。ＥＣＣとしてＥＣＣ及びＣＲＣ（Cyclic Redundancy Check）コードが付加されているものとして説明するが、ＥＣＣのみを使用してもよい。ＥＣＣ及びＣＲＣコードとしては、例えば、リードソロモン符号を利用することができる。
【００２５】
ドライブ・マネージャ３２３は、ＥＣＣ訂正処理回路３２４からＥＣＣを取得し、ＥＣＣ付きユーザ・データを生成する。こうしてドライブ・マネージャ３２３は、ＥＣＣが付加されたユーザ・データを、データ・バスを介してＮＲＺ（Non-Return to Zero）データとしてＲＷチャネル２１へ供給する。
【００２６】
続いて、再生処理におけるデータ転送の流れについて、図３を参照して説明する。ホスト５１からのリード・コマンドに対してキャッシュ・ヒットしない場合、磁気ディスク１１から該当データが読み出される。磁気ディスク１１からデータを読み出すリード動作においては、ＲＷチャネル２１から、ＥＣＣが付加されたデータ・セクタをドライブ・マネージャ３２３が順次受け取り、これをＥＣＣ訂正処理回路３２４へ供給する。
【００２７】
ＥＣＣ訂正処理回路３２４は、ドライブ・マネージャ３２３から受け取ったデータ・セクタをＳＲＡＭ３２５に格納し、必要なエラー訂正処理を実行する。ＥＣＣ訂正処理回路３２４は、データ・セクタ毎にエラー訂正処理を実行する。エラー訂正処理は、オンザフライで実行され、データ転送を中断することなく行うことができる。ここで、オンザフライ処理は、データの転送を中断することなく処理を行うことをいう。必要なエラー訂正を行ったデータ・セクタは、メモリ・マネージャ３２２に転送される。メモリ・マネージャ３２２は受け取ったデータを一旦バッファ２４１に格納した後、ＭＰＵ２３１からの指示に応じて、そのデータをバッファ２４１から読み出してＨＩＣ３２１に転送する。ＨＩＣ３２１は、そのデータをホスト５１に転送する。
【００２８】
本形態のＥＣＣ訂正処理回路３２４は、取得した各データ・セクタをＥＣＣによりエラー訂正することができない場合も、そのデータ・セクタをメモリ・マネージャ３２２に転送する。従って、本形態において、目的の各データ・セクタのバッファ２４１への転送が、ＥＣＣエラーにより中断することはない。ＥＣＣ訂正処理回路３２４は、ビット・マップ３２６に各データ・セクタに対応したビットを設定する。各ビットは、各データ・セクタが正確に再生されているか否かを示す。例えば、「０」は正確に再生されたデータ・セクタを示し、「１」は正確に再生されなかったデータ・セクタを示す。
【００２９】
目的とする全てのデータ・セクタのデータ（正確に再生されなかったデータを含む）がバッファ２４１に格納されると、ＭＰＵ２３１は、正確に再生されなかったデータ・セクタについて、再生のリトライを実行する。具体的には、ＭＰＵ２３１はビット・マップ３２６を参照し、各データ・セクタのエラーの有無を確認する。一つでもエラー・セクタが存在する場合、ＨＤＣ２３２にリトライを指示する。ドライブ・マネージャ３２３は、ＭＰＵ２３１からの指示に応答して、ビット・マップ３２６を参照して、磁気ディスク１１からのエラー・セクタの読み出しを実行する。その後の処理は、上述と同様である。このように、エラーを起こしたデータ・セクタの再生（磁気ディスク１１からバッファ２４１までの転送）を、ＭＰＵ２３１によらず、ハードウェア構成のＨＤＣ２３２が実行することで、ＭＰＵ２３１に大きな処理能力を要求することなく、処理を実行することができる。
【００３０】
なお、エラー・セクタの選択は、上述のようにドライブ・マネージャ３２３が行う構成と異なり、メモリ・マネージャ３２２がビット・マップ３２６を参照して行うようにしてもよい。この場合、メモリ・マネージャ３２２は、ＥＣＣ訂正処理回路３２４から順次転送されるデータ・セクタの中から、ビット・マップ３２６を参照してエラー・セクタを選択し、そのデータ・セクタをバッファ２４１に格納する。ＨＤＤ１は、データをホスト５１に転送する際に、対応するビット・マップ３２６も併せて転送する。ホスト５１は、これを使用して必要なデータ回復を行う。
【００３１】
次に、ユーザ・データの再生処理について、図４のフローチャートを参照して説明する。ＭＰＵ２３１が、目的とする複数データ・セクタの読み出しを開始する（Ｓ１１）。つまり、ＨＤＣ２３２に対して、目的のデータ・セクタのアドレスを指定し、再生を指示する。磁気ディスク１１からユーザ・データを読み出すに際し、サーボ・エラーが発生した場合（Ｓ１２におけるＹ）、ＨＤＣ２３２は磁気ディスク１１からの読み出しを中断して、ＭＰＵ２３１にそれを通知する。これにより、再生処理は一旦終了する（Ｓ１８）。
【００３２】
磁気ディスク１１から読み出したデータ・セクタにおいてＥＣＣエラーが発生した場合（Ｓ１３におけるＹ）、図３を参照して説明したように、ＨＤＣ２３２は磁気ディスク１１からのデータ読み出しとエラー訂正などの処理を続行する（Ｓ１４）。必要な処理を行われたデータ・セクタは、バッファ２４１に格納される（Ｓ１５）。また、ＥＣＣ訂正処理回路３２４が、ビット・マップ３２６にビットを設定する。
【００３３】
サーボ・エラーが発生することなく全てのデータ・セクタがバッファ２４１に格納されると、ＭＰＵ２３１がビット・マップ３２６を参照し、全てのデータ・セクタが正確に再生されたかを判定する（Ｓ１６）。いずれかのデータ・セクタが正確に再生されていない場合（Ｓ１６におけるＮ）、ＨＤＣ／ＭＰＵ２３はリトライを実行する。リトライ回数は、典型的には上限が存在する。具体的には、再生に許される時間が制限されることにより上限が決定される、あるいは、リトライの回数として上限が設定されている場合などがある。図４の例において、ＭＰＵ２３１は、リトライを開始するまえに、その回数が上限数に達しているかを判定する（Ｓ１７）。典型的には、対応するコマンドに対するリトライ数に上限が存在する。リトライ回数が上限に達してない場合、ＭＰＵ２３１はエラー・セクタの再読み出の開始を指示する（Ｓ１９）。以下、同様の処理を繰り返す。
【００３４】
図４の例において、ＨＤＣ／ＭＰＵ２３は、サーボ・エラーの発生に応答して再生処理を中断する。しかし、図５に示すように、サーボ・エラーが発生してデータ・セクタを磁気ディスク１１から読み出せない場合であっても、ＨＤＣ／ＭＰＵ２３は、再生処理を中断することなく続行してもよい。ＨＤＣ／ＭＰＵ２３は、最後のデータ・セクタまで再生を試み、その後、磁気ディスク１１から読み出すことができなかったデータ・セクタを含め、正確に再生されなかった全てのデータ・セクタの再生をリトライする。
【００３５】
以下において、磁気ディスク１１からのデータ再生処理の具体例を説明する。図６のモデルにおいて、ＨＤＤ１は、ホスト５１からのＡＶモードのリード・コマンドに応答して、データ・セクタ０〜１５の再生を行う。×は、ＥＣＣエラーを起こしたデータ・セクタを示す。また、図６における上方向の×の順序が、リトライの順序と一致する。つまり、最初の読み出しにおいて、データ・セクタ０〜２、６〜１０はＥＣＣエラーを起こす。例えば、データ・セクタ０〜２は、ヘッド・スライダ１２が不安定であるため、再生の読み出しで正確に再生されない可能性がより高い。他のデータ・セクタは、最初の読み出しよって正確に再生される。
【００３６】
次の読み出し（１回目のリトライ）において、データ・セクタ４、８、１２、１３がＥＣＣエラーを起こす。図６はモデル図であるので、ＥＣＣ処理を行った場合の結果を示し、実際に行うか否かを示すものではない。３、４回目の読み出し（２、３回目のリトライ）において、データ・セクタ７、８、１２がＥＣＣエラーを起こす。データ・セクタ８は、何度読み直してもエラーを起こす。他のデータ・セクタは、最終的には正確に再生することができる。
【００３７】
図７を参照して、従来の再生処理の例を説明する。ＡＶコマンドにおいて、読み出し回数は４回に制限されているとする。最初の読み出しにおいて、データ・セクタ０がエラーを起こす。ＨＤＤは読み出しを中止して、データ・セクタ０エラー回復処理（リトライ）を実行する。１回目のリトライにおいて、データ・セクタ０〜３を正確に再生することができるが、データ・セクタ４がエラーを起こす。ＨＤＤは読み出しを中断して、データ・セクタ４のエラー回復処理を開始する。このとき、バッファにはデータ・セクタ０〜３が存在する。
【００３８】
２回目のリトライにおいて、データ・セクタ４〜６が正確に再生されるが、データ・セクタ７がエラーを起こす。３回目のリトライである最後の読み出しにおいて、ＨＤＤは、ＥＣＣエラーの有無に係らず、各データ・セクタをバッファに格納する。その結果、データ・セクタ７、８、１２がエラー・セクタとなる。ＨＤＤはビット・マップを生成し、再生したデータと共にホストに転送する。ホストは、ＥＣＣあるいはＲＡＩＤパリティを使用してエラーの回復を行う。
【００３９】
続いて、本発明に従う処理の例を、図８を参照して説明する。ＨＤＣ／ＭＰＵ２３は、最初の再生処理において、データ・セクタ３〜５、１１〜１５を正確に再生する。最初のリトライにおいて、データ・セクタ０〜３、６〜１０の再生を試みる。その最初のリトライにおいて、データ・セクタ８以外の全てのデータ・セクタが正確に再生される。その後、ＨＤＣ／ＭＰＵ２３は、２回目及び３回目のリトライを実行する。データ・セクタ８は最後まで正確に再生されず、ビット・マップ３２６は、データ・セクタ８のみがエラー・セクタであることを示す。ＨＤＣ／ＭＰＵ２３は、データ・セクタ０〜１５とビット・マップ３２６とをホスト５１に転送する。このように、従来の方法においては、データ・セクタ７、８及び１２がエラー・セクタとなるが、本発明の方法においては、データ・セクタ８のみがエラー・セクタとなる。
【００４０】
次に、他の例のモデルについて説明する。図９の記載方法は、図８と同様である。エラー回復処理におけるリトライ回数の上限数は３回である。図１０を参照して、従来の再生処理の例を説明する。最初の読み出しにおいて、データ・セクタ０がエラーを起こす。ＨＤＤは読み出しを中止して、データ・セクタ０エラー回復処理（リトライ）を実行する。１回目のリトライにおいて、データ・セクタ０〜３を正確に再生することができるが、データ・セクタ４がエラーを起こす。ＨＤＤは読み出しを中断して、データ・セクタ４のエラー回復処理を開始する。
【００４１】
２回目のリトライにおいて、データ・セクタ４〜６が正確に再生されるが、データ・セクタ７がエラーを起こす。３回目のリトライである最後の読み出しにおいて、ＨＤＤは、ＥＣＣエラーの有無に係らず、各データ・セクタをバッファに格納する。その結果、データ・セクタ７、８、１２がエラー・セクタとなる。ＨＤＤはビット・マップを生成し、再生したデータと共にホストに転送する。ホストは、ＥＣＣあるいはＲＡＩＤパリティを使用してエラーの回復を行う。
【００４２】
続いて、本発明に従う処理の例を、図１１を参照して説明する。ＨＤＣ／ＭＰＵ２３は、最初の再生処理において、データ・セクタ３〜５、１１〜１５を正確に再生する。最初のリトライにおいて、データ・セクタ０〜３、６〜１０の再生を試みる。その最初のリトライにおいて、残りの全てのデータ・セクタが正確に再生される。ビット・マップ３２６は、全てのデータ・セクタが正確なデータ・セクタであることを示す。
【００４３】
ＨＤＣ／ＭＰＵ２３は、データ・セクタ０〜１５とビット・マップ３２６とをホスト５１に転送する。このように、従来の方法においては、データ・セクタ７、８及び１２がエラー・セクタとなるが、本発明の方法においては、エラー・セクタが存在しない。以上の説明から理解されるように、本発明の手法は、データ・セクタにおいて常にエラーが発生するのではなく、データ・セクタがエラーを起こしたり起こさなかったりする場合に特に有効である。
【００４４】
次に、本形態の再生処理におけるＨＤＣ／ＭＰＵ２３内の動作タイミングを説明する。図１２は、データ・セクタＳ〜Ｓ＋７の全セクタを正確に再生することができた場合のタイミング・チャートを示している。Ｓ〜Ｓ＋７は、それぞれデータ・セクタのアドレスを示している。セクタ・アドレスＳＣＴＡｄｒは、磁気ディスク１１の各セクタの位置で読み出されるデータである。ＳＣＴｔｏＲｅａｄ信号がアサートのとき、磁気ディスク１１から読み出されたデータ・セクタが、ＨＤＣ２３２内に取り込まれる。ＳＣＴｔｏＲｅａｄ信号は、ビット・マップの各ビットが１を示すときアサートである。磁気ディスク１１からのデータ読み出しを制御するＲｅａｄＧａｔｅ信号は、ＳＣＴｔｏＲｅａｄ信号がアサートであるとき、各データ・セクタに対してアサートである。
【００４５】
最初の読み出し処理において、全データ・セクタが読み出される。ビット・マップＢｉｔＭａｐ（１）の全てのビットは１であり、ＳＣＴｔｏＲｅａｄ信号とＲｅａｄＧａｔｅ信号とは、全データ・セクタにおいてアサートである。その後、各データ・セクタは、バッファ２４１内のキャッシュ・アドレスＣａｃｈｅＡｄｒが示すアドレスに格納される。本例は、全てのデータ・セクタを正確に再生するので、バッファ格納後のビット・マップＢｉｔＭａｐ（２）の全ビットは０である。
【００４６】
続いて、図１３を参照して、データ・セクタＳ＋２、Ｓ＋４、Ｓ＋６がＥＣＣエラーを起こす例を説明する。磁気ディスク１１からの最初の読み出しは、全データ・セクタＳ〜Ｓ＋７を読み出す。読み出したデータ・セクタの内、データ・セクタＳ＋２、Ｓ＋４、Ｓ＋６がＥＣＣにより訂正することができず、フェイルとなっている。このため、バッファ格納後のビット・マップＢｉｔＭａｐ（２）において、３番目、５番目そして７番目のビットが１である。
【００４７】
図１４は、図１３の読み出しの後の最初のリトライのタイミング・チャートである。読み出しにおけるビット・マップＢｉｔＭａｐ（１）は、図１３のビット・マップＢｉｔＭａｐ（２）のコピーであり、３番目、５番目そして７番目のビットが１である。ＳＣＴｔｏＲｅａｄ信号とＲｅａｄＧａｔｅ信号とは、このビット・マップＢｉｔＭａｐ（１）に従って変化し、データ・セクタＳ＋２、Ｓ＋４、Ｓ＋６のそれぞれにおいてアサートであり、他のデータ・セクタにおいてディサートである。磁気ディスク１１から読み出されたデータ・セクタＳ＋２、Ｓ＋４、Ｓ＋６の内、データ・セクタＳ＋４が、再びエラーを示す。このため、バッファ格納後のビット・マップＢｉｔＭａｐ（２）において、５番目のビットが１にセットされる。
【００４８】
図１５は、二回目のリトライのタイミング・チャートである。読み出しにおけるビット・マップＢｉｔＭａｐ（１）は、図１４のビット・マップＢｉｔＭａｐ（２）のコピーであり、５番目のビットが１である。ＳＣＴｔｏＲｅａｄ信号とＲｅａｄＧａｔｅ信号とは、このビット・マップＢｉｔＭａｐ（１）に従って変化し、データ・セクタＳ＋４においてアサートであり、他のデータ・セクタにおいてディサートである。このリトライは、データ・セクタＳ＋４を正確に再生し、バッファ格納後のビット・マップＢｉｔＭａｐ（２）において、５番目のビットが０に設定される。
【００４９】
ＨＤＤ１は、ホスト５１からのリード・コマンドに従ってデータを再生する。再生の目的とするデータ・セクタは、リード・コマンドが指定するデータ・セクタに加えて、そのアドレスよりも前のデータ・セクタ、あるいは後のデータ・セクタを含むことができる。典型的なＨＤＤは、コマンド指定アドレスの後に続きデータ・セクタも、磁気ディスク１１から読み出して、バッファに予め格納しておく。これによって、その後のコマンドのキャッシュ・ヒット率を高めることができる。このような処理を先読み処理と呼ぶが、これはＡＶコマンドのように長い連続データ・セクタを再生することを指示するコマンドに対して特に有用である。
【００５０】
先読みデータ・セクタのように、コマンド指定されたデータ・セクタと異なるデータ・セクタの再生におけるリトライ方法は、コマンド指定されたデータ・セクタと同様とすることができる。しかし、コマンド指定の全データ・セクタが正確に再生されているにも係らず、それと異なるデータ・セクタの再生のためにリトライを繰り返すことは、パフォーマンスの低下を招く。従って、コマンド指定データ・セクタが正確に再生された場合、他のデータ・セクタのためのリトライを行なわず、再生処理を終了することが好ましい。あるいは、コマンド指定されていないデータ・セクタのリトライ回数の上限数は、コマンド指定されているデータ・セクタの上限数以下であることが好ましい。
【００５１】
コマンド指定されていないデータ・セクタの一部が、制限されたリトライ回数内に正確に再生されないことがある。図１６（ａ）は、先読みデータ・セクタの一部が、ＥＣＣエラーを起こした例を示している。コマンド指定データ・セクタは、データ・セクタ１〜４であり、先読みデータ・セクタは、データ・セクタ５〜１０である。図１６（ｂ）は、ＨＤＤ１がホスト５１にコマンド指定データ・セクタを転送したときに、データ・セクタ７、８はエラー・セクタであることを示している。
【００５２】
先読みデータ・セクタは、将来のコマンドに備えてバッファ２４１内に保持しておく必要がある。一方、エラー・セクタをバッファ２４１内に保存しておく場合、いずれのデータ・セクタがエラー・セクタであるかを示すビット・マップ３２６メモリ内に保存しておく必要がある。半導体のメモリ領域に余裕が存在する場合は、エラー・セクタ７、８をバッファ２４１内に保存しておき、ＨＤＣ／ＭＰＵ２３は、ホスト５１からのコマンドに対応した処理から解放されており、アイドル状態にあるときにエラー・セクタ７、８のエラー回復処理を行うことが好ましい。エラー回復された場合には、エラーを示していたビット・マップは不要となり、メモリから消去することができる。
【００５３】
コマンド指定されたデータ・セクタと異なるデータ・セクタの保存数あるいはビット・マップの数は、予め設定した上限数以下とすることが好ましい。ビット・マップ数が制限されていることは、データ・セクタ数の保存数も制限されていることになる。これによって、不要なデータ・セクタやビット・マップなどによって、徒にメモリ領域が消費されることを避けることができる。
【００５４】
あるいは、図１６（ｃ）に示すように、先読みデータ・セクタの内、正確に再生されたデータ・セクタ５、６、９、１０をバッファ２４１内に保存しておくことができる。つまり、データ・セクタ７、８の領域は、他のデータによって上書きされうる。正確なデータ・セクタのみをバッファ内に保存することで、エラー・セクタを示すビット・マップをメモリに保存しておく必要がなく、メモリ領域を確保することができる。
【００５５】
あるいは、先読みデータ・セクタにおいて、正確に再生された最初の連続データ・データのみをバッファ２４１内に保存しておくことができる。図１６（ｄ）の例においては、バッファ２４１はデータ・セクタ５、６を保存し、エラー・セクタ７、８及び正確なデータ・セクタ９、１０を保存しない。このようにすることで、複雑な制御処理を要することなくキャッシュ・ヒット率を向上することができる。
【００５６】
以上、本発明について好ましい態様を使用して説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態においては、ＨＤＤを例にとって説明したが、光ディスクや光磁気ディスクなど他のディスクを使用するディスク・ドライブ装置、あるいはそのディスクを着脱可能なディスク・ドライブ装置に適用してもよい。ＭＰＵ２３１は、ホスト５１からのコマンドのモードに応じて、リトライ方法を変化させるようにしてもよい。具体的には、ＨＤＤ１は、ＡＶコマンドの場合に本発明のリトライを実行し、他のコマンドの場合には、従来のようにデータ・セクタ毎のリトライを実行するようにしてもよい。
【図面の簡単な説明】
【００５７】
【図１】本実施の形態にかかるハードディスク・ドライブの全体構成を模式的に示すブロック図である。
【図２】本実施の形態にかかる再生処理の例を模式的に示す図である。
【図３】本実施の形態において、再生処理を行う構成要素を模式的に示すブロック図である。
【図４】本本実施の形態にかかる再生処理の流れを示すフローチャートである。
【図５】本本実施の形態にかかる再生処理の流れを示すフローチャートである。
【図６】本実施の形態かかる再生処理の一例の前提条件の模式的に示す図である。
【図７】図６の前提条件における、従来の再生処理の例を模式的に示す図である。
【図８】図６の前提条件における本実施形態にかかる再生処理を模式的に示す図である。
【図９】本実施の形態かかる再生処理の他の例の前提条件の模式的に示す図である。
【図１０】図９の前提条件における従来の再生処理の例を模式的に示す図である。
【図１１】図９の前提条件における本実施形態かかる再生処理を模式的に示す図である。
【図１２】本実施の形態にかかる再生処理におけるＨＤＣ／ＭＰＵ内の動作タイミングを説明するタイミング・チャートである。
【図１３】本実施の形態にかかる再生処理におけるＨＤＣ／ＭＰＵ内の動作タイミングを説明するタイミング・チャートである。
【図１４】本実施の形態にかかる再生処理におけるＨＤＣ／ＭＰＵ内の動作タイミングを説明するタイミング・チャートである。
【図１５】本実施の形態にかかる再生処理におけるＨＤＣ／ＭＰＵ内の動作タイミングを説明するタイミング・チャートである。
【図１６】本実施の形態において、先読みデータ・セクタ内の保存データを模式的に示す図である。
【符号の説明】
【００５８】
１  ハードディスク・ドライブ、１０  筺体、１１  磁気ディスク
１２  ヘッド・スライダ、１３  アーム・エレクトロニクス、１４  スピンドル・モータ
１５  ボイス・コイル・モータ、１６  アクチュエータ、２０  回路基板
２１  ＲＷチャネル、２２  モータ・ドライバ・ユニット
２３  ハードディスク・コントローラ／ＭＰＵ、２４  ＤＲＡＭ
３１１  ホスト・インターフェース・コントローラ
２３１  ＭＰＵ、２３２  ハードディスク・コントローラ
２４１  バッファ、３２１  ホスト・インターフェース・コントローラ
３２２  メモリ・マネージャ、３２３  ドライブ・マネージャ
３２４  ＥＣＣ訂正処理回路、３２５  ＳＲＡＭ、３２６  ビット・マップ
【図１】
2008299978.tif 000003
【図２】
2008299978.tif 000004
【図３】
2008299978.tif 000005
【図４】
2008299978.tif 000006
【図５】
2008299978.tif 000007
【図６】
2008299978.tif 000008
【図７】
2008299978.tif 000009
【図８】
2008299978.tif 000010
【図９】
2008299978.tif 000011
【図１０】
2008299978.tif 000012
【図１１】
2008299978.tif 000013
【図１２】
2008299978.tif 000014
【図１３】
2008299978.tif 000015
【図１４】
2008299978.tif 000016
【図１５】
2008299978.tif 000017
【図１６】
2008299978.tif 000018