(57)【特許請求の範囲】
【請求項１】
データ保存装置において，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御方法であって：
ディスクからデータをリード／ライトする間に，リトライテーブルにエラー訂正のためのファームウェアおよびリトライテーブルを保存するデータ保存手段に，複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存するステップと；
エラー訂正に使われる前記複数のリトライテーブルのうち何れか一つを選択するステップと；
を含み，
前記複数のリトライテーブルのうち，応用機器，動作条件，ディスクドライブのヘッド，ディスクドライブの機械的な特性が適合するものの一つが，エラー訂正のために最終的に選択されることを特徴とする，ディスクドライブの制御方法。
【請求項２】
前記エラー訂正中に前記複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないことを特徴とする，請求項１に記載のディスクドライブの制御方法。
【請求項３】
最初に選択されたテーブルからのパラメータ値がエラー訂正を行えなかったかを判定するステップと；
前記エラー訂正のために二番目に選択されたテーブルを利用するステップと；
をさらに含むことを特徴とする，請求項１に記載のディスクドライブの制御方法。
【請求項４】
前記複数のリトライテーブルを保存するデータ保存手段は，ディスクドライブのメンテナンスシリンダーであることを特徴とする請求項１に記載のディスクドライブの制御方法。
【請求項５】
前記ディスクドライブは，メンテナンスシリンダーを有する磁気ディスクを含むことを特徴とする請求項４に記載のディスクドライブの制御方法。
【請求項６】
前記複数のリトライテーブルが保存されるデータ保存手段は，ディスクドライブのディスクから分離されたメモリ手段であることを特徴とする，請求項１に記載のディスクドライブの制御方法。
【請求項７】
前記エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されることを特徴とする，請求項１に記載のディスクドライブの制御方法。
【請求項８】
前記識別能力のあるバーンインテスト中にディスクドライブの最適化された性能のために，前記複数のリトライテーブルのうち何れか一つからパラメータ値を決定するステップをさらに含むことを特徴とする，請求項７に記載のディスクドライブの制御方法。
【請求項９】
前記エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されることを特徴とする，請求項１に記載のディスクドライブの制御方法。
【請求項１０】
データ保存システムにおいて，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御システムであって：
複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存する第１データ保存手段と；
プロセッサと；
システムに保存された命令のシーケンスを有する第２データ保存手段と；
を含み，
前記プロセッサによって前記命令のシーケンスを行ってエラー訂正のために使われるリトライテーブルのうち何れか一つを選択し，
前記複数のリトライテーブルのうち，応用機器，動作条件，ディスクドライブのヘッド，ディスクドライブの機械的な特性が適合するものの一つが，エラー訂正のために最終的に選択されることを特徴とする，ディスクドライブの制御システム。
【請求項１１】
前記エラー訂正中に，前記複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないことを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１２】
前記プロセッサによって，
最初に選択されたテーブルからのパラメータ値がエラー訂正を行えなかったかを判定する手段と；
前記エラー訂正のために二番目に選択されたテーブルを利用する手段と；
をさらに実行することを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１３】
前記複数のリトライテーブルを保存する第１データ保存手段は，ディスクドライブのメンテナンスシリンダーであることを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１４】
前記ディスクドライブは，メンテナンスシリンダーを有する磁気ディスクを含むことを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１５】
前記第１データ保存手段および第２データ保存手段は，ディスクドライブのディスクから分離されたメモリ手段であることを特徴とする，請求項１０に記載のディスクドライブでのエラー訂正を実行するためのシステム。
【請求項１６】
前記エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されることを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１７】
前記識別能力のあるバーンインテスト中に，ディスクドライブの最適化された性能のために前記複数のリトライテーブルのうち何れか一つからパラメータ値を決定する手段をさらに含むことを特徴とする，請求項１６に記載のディスクドライブの制御システム。
【請求項１８】
前記エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されることを特徴とする，請求項１０に記載のディスクドライブの制御システム。
【請求項１９】
データ保存システムにおいて，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御システムであって：
複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存するための手段と；
エラー訂正に使われるリトライテーブルのうち何れか一つを，前記複数のリトライテーブルのうち，応用機器，動作条件，ディスクドライブのヘッド，ディスクドライブの機械的な特性が適合するように選択するための手段と；
を含むことを特徴とする，ディスクドライブの制御システム。
【請求項２０】
前記エラー訂正中に，前記複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないことを特徴とする，請求項１９に記載のディスクドライブの制御システム。
【請求項２１】
前記複数のリトライテーブルは，ディスクのメンテナンスシリンダーに保存されることを特徴とする，請求項１９に記載のディスクドライブの制御システム。
【請求項２２】
前記複数のリトライテーブルは，ディスクドライブから分離されたメモリ手段に保存されることを特徴とする，請求項１９に記載のディスクドライブの制御システム。
【請求項２３】
前記エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されることを特徴とする，請求項１９に記載のディスクドライブの制御システム。
【請求項２４】
前記エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されることを特徴とする，請求項１９に記載のディスクドライブの制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ディスクドライブの制御方法および制御システムに係り，特に，ファームウェアの変更なしに複数のリトライテーブルを利用してディスクドライブでのエラー訂正を実行するためのディスクドライブの制御方法および制御システムに関する。
【背景技術】
【０００２】
図１は，磁気的にデータを保存する一例であって，ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）のようなディスクドライブ１００の概略的な構成を示すブロック図である。ホスト機器１０２は，ディスクドライブ１００内にある磁気ディスク１０４からデータをリード及び／又はライトするために，ディスクドライブ１００にアクセスする。ディスクドライブ１００は，ホスト機器１０２とディスクドライブ１００との間にインターフェースＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１０６を備えている。
【０００３】
ＭＰＵ（Ｍａｉｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０８は，インターフェースＩＣと接続されてディスクドライブ１００の各構成手段の動作を制御する。また，ＭＰＵ１０８は，磁気ディスク１０４からデータをリード／ライトする間にリトライテーブルにエラー訂正のためのファームウェアおよびリトライテーブルを保存するデータ保存手段１１０に接続される。
【０００４】
さらに，ＭＰＵ１０８は，磁気ディスク１０４からデータをリード／ライトするためのリード／ライトＩＣに接続される。プリアンプ１１２は，磁気ディスク１０４からデータをリード／ライトするために利用される磁気ヘッド１１４に入出力される信号を増幅する。ＭＰＵ１０８は，磁気ディスク１０４に対して磁気ヘッド１１４を動かすＶＣＭ（Ｖｏｉｃｅ  Ｃｏｉｌ  Ｍｏｔｏｒ）ドライバ１１６を制御する。ＭＰＵ１０８はまた，磁気ヘッド１１４に対して磁気ディスク１０４を回転させるＳＰＭ（Ｓｐｉｎｄｌｅ  Ｍｏｔｏｒ）ドライバ１１８を制御する。図１で，このような構成要素およびディスクドライブ１００のこれら構成要素の動作は，特許文献１に記載されている公知の一般的な技術のうち一つである。
【０００５】
図２は，データ保存手段１１０内に保存されるリトライテーブルを示し，このリトライテーブルは，磁気ディスク１０４からデータをリード／ライドする時，エラー訂正中に使われる。テーブルは，リード／ライト動作の条件を決定するのに使われるパラメータＡ〜Ｎを含む複数のパラメータを有する。例えば，パラメータＡは，リード／ライト動作中に磁気ヘッド１１４に供給される電流の値を表し，パラメータＢは，磁気ヘッド１１４のトラッキングメカニズムに対するトラックオフセットの値を表し，パラメータＣは，リード／ライトＩＣ１１１内にある低域通過フィルタに対する遮断周波数の値を表す。図２に示されたテーブルの各列は，パラメータＡ〜Ｎそれぞれに対して異なる値を有する。
【０００６】
図３は，データ保存手段１１０内に保存された命令のシーケンス（すなわち，ファームウェア）を行う時，ＭＰＵ１０８によって実行される処理のフローチャートを示す。データ保存手段１１０は，図２のリトライテーブルおよび図３の処理を実行するためのＭＰＵ１０８によって行われる命令のシーケンス（すなわち，ファームウェア）を保存するＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）で構成できる。なお，図３は，磁気ディスク１０４からデータをリード／ライトする間に図２のリトライテーブルを利用してエラー訂正を実行するためのステップを含む。
【０００７】
図２を参照すると，ＭＰＵ１０８は，ホスト機器１０２からリード／ライト命令を受信する（図３のステップＳ１２２）。ＭＰＵ１０８は，ホスト機器１０２から特定される磁気ディスク１０４からのデータのリード／ライトを実行するようにリード／ライトＩＣ１１１，ＶＣＭドライバ１１６およびＳＰＭドライバ１１８を制御する（図３のステップＳ１２４）。ＭＰＵ１０８は，リード／ライト動作中にエラーが発生するか否かを判定する（図３のステップＳ１２６）。エラーが発生したか否かを判定するメカニズムは，本発明が属する技術分野で公知の技術である。
【０００８】
もし，エラーが発生した場合には，リード／ライト動作は無効である判定され，もし，エラーが発生しなかった場合には，リード／ライト動作は有効であると判定される。もし，リード／ライト動作が有効であると判定されれば，リード／ライト動作のためのプロセスは成功的に終了する。もし，リード／ライト動作が無効であると判定されれば，ＭＰＵ１０８は，データ保存手段１１０から図２のリトライテーブルをリードする（図３のステップＳ１２８）。
【０００９】
ＭＰＵ１０８は，可変されるリトライカウントが特定の最大リトライカウント番号より大きい値であるかを判定する（図３のステップＳ１３０）。リトライカウントは，リード／ライト命令が受信される時に０に初期化され（図３のステップＳ１２２），リード／ライト動作のためのリトライ番号のカウントを維持する。最大リトライカウントは，ＭＰＵ１０８によって実行されるリード／ライト動作のためのリトライの最大回数と特定される。もし，リトライカウントが最大リトライカウントより大きければ，リード／ライト動作が失敗したという警告メッセージを出力し，リード／ライト動作を終了する。
【００１０】
もし，リトライカウントが最大リトライカウントより大きくなければ，ＭＰＵ１０８は，図２のリトライテーブルにある一番目の列（図２の段階１）によって特定されるパラメータＡ〜Ｎの値でリード／ライト動作をリトライするようにリード／ライトＩＣ１１１，ＶＣＭドライバ１１６およびＳＰＭドライバ１１８を制御する（図３のステップＳ１３２およびＳ１２４）。さらに，ＭＰＵ１０８は，リード／ライト動作の実行（図３のＳ１２４）ごとにリトライカウントを増加させる（図３のステップＳ１３３）。ステップＳ１２４，Ｓ１２６，Ｓ１２８，Ｓ１３０，Ｓ１３２およびＳ１３３は，リード／ライト動作が終わる条件に該当するリード／ライト動作が有効であると判定されるか，またはリトライカウントが最大リトライカウントより大きくなるまで，図２に示されたリトライテーブルの列を順次下げつつ反復される。
【００１１】
従来の技術で，このようなリトライテーブルを使用してエラー訂正をするためのファームウェアに相応するリトライテーブルは，データ保存手段１１０内に保存される。しかし，図２のリトライテーブルにあるパラメータＡ〜Ｎに対する値の範囲は，各応用機器別，動作条件別，ディスクドライブ１００のヘッドおよびディスクドライブ１００の機械的な特性別に適するように他の値に設定されうる。例えば，パソコン内で使われるディスクドライブは，典型的にＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）システム内で使われるディスクドライブとは異なる動作条件，ヘッドおよび機械的な特性を有する。
【００１２】
従来の技術で，他のリトライテーブルを使用するためのファームウェアに相応するさらに他のリトライテーブルは，他の応用機器，動作条件，ディスクドライブのヘッドおよびディスクドライブ１００の機械的な特性に対してデータ保存手段１１０にプログラムされる。
【００１３】
【特許文献１】米国特許６，３８１，７２５号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら，他の応用機器，動作条件，ディスクドライブのヘッドおよびディスクドライブの機械的な特性のために，データ保存手段１１０（典型的に，ＰＲＯＭ素子）をプログラミングすることは時間が多くかかり，またコストが高くなる。例えば，データ保存手段１０２にプログラムされた各ファームウェアとＭＰＵ１０８間の互換性検証のためには，コストおよび時間が多くかかる。それにも拘わらず，従来技術でファームウェアは，リトライテーブルの変更のために修正されることが一般的に必要である。
【００１５】
また，従来の技術において，熟練された生産エンジニアは，他の応用機器，動作条件，ディスクドライブのヘッドおよびディスクドライブの機械的な特性に対する多様なリトライテーブルの方式を揃えている。さらに，データ保存手段１１０内にある従来技術の固定されたリトライテーブルは，ディスクドライブ１００内において適応的で柔軟なエラー訂正のための修正ができない。
【００１６】
これにより，ハードディスクが適用される製品が変更されるか，または製品の特性が変更される場合に，最適のリトライテーブルを適用できずに性能が低下するという問題があった。
【００１７】
もし，従来の技術によってリトライテーブルを変更させるためには，ファームウェアを変更させなければならないが，このためには互換性の問題を再検証しなければならないので，不要なオーバーヘッドが生じるという問題もあった。
【００１８】
そこで，本発明は，このような問題に鑑みてなされたもので，その目的は，データ保存装置でファームウェアを変更させずに適応的で柔軟なエラー訂正を実行することが可能な，新規かつ改良されたディスクドライブの制御方法および制御システムを提供することにある。
【課題を解決するための手段】
【００１９】
上記課題を解決するために，本発明のある観点によれば，データ保存装置において，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御方法であって：ディスクからデータをリード／ライトする間に，リトライテーブルにエラー訂正のためのファームウェアおよびリトライテーブルを保存するデータ保存手段に，複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存するステップと；エラー訂正に使われる複数のリトライテーブルのうち何れか一つを選択するステップと；を含むディスクドライブの制御方法が提供される。
【００２０】
また，上記制御方法は，エラー訂正中に複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないものであってもよい。
【００２１】
また，複数のリトライテーブルのうち一つは，応用機器，動作条件，ディスクドライブのヘッド，ディスクドライブの機械的な特性に従属されるエラー訂正のために最適化されるように最終的に選択される。
【００２２】
また，上記制御方法は，最初に選択されたテーブルからのパラメータ値がエラー訂正を行えなかったかを判定するステップと；エラー訂正のために二番目に選択されたテーブルを利用するステップと；をさらに含んでいてもよい。
【００２３】
複数のリトライテーブルを保存するデータ保存手段は，例えば，ディスクドライブのメンテナンスシリンダーであってもよい。この場合に，ディスクドライブは，メンテナンスシリンダーを有する磁気ディスクを含んでいてもよい。
【００２４】
複数のリトライテーブルが保存されるデータ保存手段は，ディスクドライブのディスクから分離されたメモリ手段であってもよい。
【００２５】
エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されてもよい。この場合に，上記制御方法は，上記識別能力のあるバーンインテスト中にディスクドライブの最適化された性能のために，前記複数のリトライテーブルのうち何れか一つからパラメータ値を決定するステップをさらに含んでいてもよい。
【００２６】
また，エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されてもよい。
【００２７】
上記課題を解決するために，本発明の別の観点によれば，データ保存システムにおいて，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御システムであって：複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存する第１データ保存手段と；プロセッサと；自体に保存された命令のシーケンスを有する第２データ保存手段と；を含み，プロセッサによって命令のシーケンスを行ってエラー訂正のために使われるリトライテーブルのうち何れか一つを選択することを特徴とするディスクドライブの制御システムが提供される。
【００２８】
上記制御システムは，エラー訂正中に，複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないものであってもよい。
【００２９】
複数のリトライテーブルのうち何れか一つは，応用機器，動作条件，ディスクドライブのヘッド，およびディスクドライブの機械的な特性に従属されるエラー訂正のために最適化されるように最終的に選択される。
【００３０】
また，上記制御システムは，プロセッサによって，最初に選択されたテーブルからのパラメータ値がエラー訂正を行えなかったかを判定する手段と；エラー訂正のために二番目に選択されたテーブルを利用する手段と；をさらに実行するものであってもよい。
【００３１】
複数のリトライテーブルを保存する第１データ保存手段は，例えば，ディスクドライブのメンテナンスシリンダーであってもよい。
【００３２】
また，ディスクドライブは，メンテナンスシリンダーを有する磁気ディスクを含んでいてもよい。
【００３３】
第１データ保存手段および第２データ保存手段は，ディスクドライブのディスクから分離されたメモリ手段であってもよい。
【００３４】
また，エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されてもよい。この場合に，上記制御システムは，識別能力のあるバーンインテスト中に，ディスクドライブの最適化された性能のために，複数のリトライテーブルのうち何れか一つからパラメータ値を決定する手段をさらに含んでいてもよい。
【００３５】
また，エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されてもよい。
【００３６】
また，上記課題を解決するために，本発明のさらに別の観点によれば，データ保存システムにおいて，リトライテーブルに基づいてディスクドライブでのエラー訂正を実行するためのディスクドライブの制御システムであって：複数種類のホスト機器に利用可能な異なる範囲値を有するパラメータを含む複数のリトライテーブルを保存するための手段と；エラー訂正に使われるリトライテーブルのうち何れか一つを，前記複数のリトライテーブルのうち，応用機器，動作条件，ディスクドライブのヘッド，ディスクドライブの機械的な特性が適合するように選択するための手段と；を含むディスクドライブの制御システムが提供される。
【００３７】
ここで，上記制御システムは，エラー訂正中に，複数のリトライテーブルのうち何れか一つを利用するためにファームウェアを変更させないものであってもよい。
【００３８】
また，複数のリトライテーブルは，ディスクのメンテナンスシリンダーに保存されてもよい。
【００３９】
また，複数のリトライテーブルは，例えば，ディスクドライブから分離されたメモリ手段に保存されてもよい。
【００４０】
また，エラー訂正は，ディスクドライブ製造工程中，識別能力のあるバーンインテスト中に実行されてもよい。
【００４１】
また，エラー訂正は，ディスクドライブのホストシステム内でリード／ライト動作中に実行されてもよい。
【発明の効果】
【００４２】
本発明によれば，ディスクドライブでファームウェアを変更させずにリトライテーブルを変更させ，リトライの実行結果を分析してリトライテーブルに反映させることにより，ディスクドライブが適用されるホスト機器の製品の種類または使用条件が変更される場合にも，最適の条件でリトライを実行させることが可能なディスクドライブの制御方法および制御システムを提供することができる。
【００４３】
また，本発明によれば，リトライデータで特定の単位ビット値だけを変更させてリトライ条件を変更させ，特に，例外の状況に対しても対処できるリトライコードを含んでおり，異常状態に容易に対処することが可能なディスクドライブの制御方法および制御システムを提供することができる。
【発明を実施するための最良の形態】
【００４４】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書および図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００４５】
図４は，本発明の第１の実施形態によるエラー訂正を有するディスクドライブ２０４内のディスクからデータをリード／ライトするためのシステム２００の概略的な構成を示すブロック図である。ディスクドライブ２０４は，磁気的にデータを保存する例であって，例えば，ＨＤＤであってもよい。ディスクドライブ２０４は，インターフェースＩＣ２０６と，リード／ライトＩＣ２０８と，プリアンプ２１０と，磁気ヘッド２１２と，ＶＣＭドライバ２１４と，ＳＰＭドライバ２１６とを含み，これら構成要素に対する一般的な動作は，図１と類似している。
【００４６】
ディスクドライブ２０４はまた，複数のリトライテーブルおよびテーブルバッファ２２０を有するデータ保存手段２１８を含む。本実施形態はまた，データ保存手段２１８から離れた他のデータ保存素子内で提供されるテーブルバッファ２２０として実行されうる。さらに，リード／ライト動作に対してエラー訂正中にこのようなリトライテーブルを使用するためのファームウェアは，データ保存手段２１８に保存される。ＰＲＡＭを有するＭＰＵ２２２は，ディスクドライブ２０４の構成要素の動作を制御するためのデータプロセッサである。
【００４７】
システム２００で，ディスクドライブ２０４は，ホスト機器またはテストシステム２２４を有するインターフェースＩＣ２０６を通じてインターフェースされる。ホスト機器は，機器内に装着されたディスクドライブ２０４を有するＡＶシステムまたはコンピュータシステムのようなホストシステムの一部分である。テストシステムは，典型的にホストシステムに装着される前にディスクドライブ２０４の製造中にディスクドライブ２０４の適した動作を保証するために使われる。
【００４８】
図５は，本発明の第２の実施形態によるディスクドライブ２３２を有するシステム２３０の概略的な構成を示すブロック図である。図４および図５で，同じ参照符号を有する構成要素は類似した構成および機能を有する。しかし，図５でデータ保存手段２３４は，複数のリトライテーブルを有していない。かえって，複数のリトライテーブルは，ディスク２３６のメンテナンスシリンダー２３８に保存される。磁気ディスクの一部であるメンテナンスシリンダー２３８は，本発明が属する技術分野で公知のものである。データ保存手段２３４は，複数のリトライテーブルを利用してエラー訂正を実行するためのファームウェアを保存している。図４のデータ保存手段２１８または図５の保存手段２３４は，他の形態で実行され，本発明が属する技術分野で公知のメモリ素子である。
【００４９】
図６は，ディスクドライブ２０４または２３２によるリード／ライト動作中に，図４のシステム２００または図５のシステム２３０によって実行される処理を示したフローチャートである。ＭＰＵ２２２は，データ保存手段２１８またはデータ保存手段２３４内に保存された命令のシーケンス（すなわち，ファームウェア）を行う時，このような処理を実行する。ＭＰＵ２２２は，インターフェースＩＣ２０６を通じてリード／ライト動作のためにホスト機器／テストシステム２２４から命令を受信する（図６のＳ２４２）。ＭＰＵ２２２は，ホスト機器／テストシステム２２４から特定された磁気ディスク２０２または２３６からデータをリード／ライトを実行するようにリード／ライトＩＣ２０８，ＶＣＭドライバ２１４およびＳＰＭドライバ２１６を制御する（図６のＳ２４４）。
【００５０】
また，ＭＰＵ２２２は，リード／ライト動作中にエラーが発生するか否かを判定する（図６のＳ２４６）。このようなエラーの有無を判定するためのメカニズムは，本発明に属する技術分野で公知の技術である。もし，エラーが発生したとすれば，リード／ライト動作は無効であると判定され，エラーが発生しなかったとすれば，有効であると判定される。リード／ライト動作が有効であると判定された場合には，リード／ライト動作のためのプロセスは成功的に終了する。一方，リード／ライト動作が無効であると判定された場合には，ＭＰＵ２２２は，エラー訂正を実行するためにデータ保存手段２１８またはメンテナンスシリンダー２３８に保存された複数のリトライテーブルのうち何れか一つを使用する（図６のＳ２４８，Ｓ２５０およびＳ２５２）。
【００５１】
ＭＰＵ２２２は，失敗したリード／ライト動作に対する訂正中に使用するための複数のリトライテーブルのうち何れか一つを選択する。本発明の一実施形態で，図７は，図６のメインプロセスによる段階２５０で求める時，複数のテーブルのうち何れか一つを選択するためのサブルーチン段階を示すフローチャートである。図７を参照すると，パワーオンとなれば，デフォルトリトライテーブルが選択され，テーブルバッファ２２０にロードされる（図７のＳ２６２）。
【００５２】
ＭＰＵ２２２は，ＡＴＡ待機命令を実行させ（図７のＳ２６４），図６のメインプロセスからテーブルアップデート命令が生成されたかを周期的に確認する（図７のＳ２６６）。ＡＴＡ命令は，本発明が属する技術分野で公知の技術であって，ホスト機械／テストシステム２２４とインターフェ−スするためにディスクドライブによって実行される命令の標準セットである。テーブルアップデート命令が図５のメインプロセスから生成されない限り，ＭＰＵ２２２は，ＡＴＡ待機命令を実行する（図７のＳ２６４およびＳ２６６）。
【００５３】
もし，デフォルトテーブルが応用機器，動作条件，ディスクドライブ２０４または２３２のヘッドおよびディスクドライブ２０４または２３２の機械的な特性に対して適さなければ，図６のステップＳ２５０で，テーブルアップデート命令を生成する。言い換えれば，第２リトライテーブルが第１リトライテーブルを利用するリトライの過去パターンの分析から，適しているか否かをＭＰＵ２２２が判定する時，図６のステップＳ２５０でテーブルアップデート命令も生成される。
【００５４】
もし，テーブルアップデート命令が図６のメインプロセスから生成されれば，ステップＳ２６８は，テーブルバッファ２２０にある他のリトライテーブルを選択しかつロードするために図７で実行される。図４の実施形態では，複数のリトライテーブルのうち何れか一つがデータ保存手段２１８から選択されてテーブルバッファ２２０にロードされる。図５の実施形態では，複数のリトライテーブルのうち何れか一つがメンテナンスシリンダー２３８から選択されてテーブルバッファ２２０にロードされる。
【００５５】
このような方法で，図７のサブルーチンを有するＭＰＵ２２２は，図６のメインプロセスからテーブルアップデート命令が生成されていない限り，複数のリトライテーブルのうち一番目のものが選択されてテーブルバッファ２２０にロードされるＡＴＡ待機命令を実行する。テーブルアップデート命令が図６のメインプロセスから生成された時，ＭＰＵ２２２は，複数のリトライテーブルのうち二番目のものを選択してテーブルバッファ２２０にロードする。
【００５６】
図８は，第１リトライテーブル３０２，第２リトライテーブル３０４および第３のリトライテーブル３０６をそれぞれ含む本発明の一実施形態で使われる複数のリトライテーブルを示す説明図である。包括的なリトライテーブル３００は，複数のフィールドに分けられた二つのワード（すなわち，３２ビット）で構成される。ビット［７：０］は，ディスクドライブのトラッキングメカニズムで磁気ヘッド２１２に対するトラックオフセットの量を決定するトラックオフセット値を指定する。さらに，ビット［１１：８］，ビット［１５：１２］，ビット［１９：１６］およびビット［２３：２０］は，リード／ライト動作の動作条件を決定するパラメータ（１），パラメータ（２），パラメータ（３）およびパラメータ（４）それぞれを指定する。
【００５７】
例えば，ビット［１１：８］は，リード／ライト動作中の磁気ヘッド１１４に供給される電流を決定するパラメータ（１）値を特定するためのものである。ビット［１５：１２］は，リード／ライトＩＣ  ２０８内にある低域通過フィルタに対する遮断周波数を決定するパラメータ（２）値を特定するためのものである。ビット［２７：２４］は，予想できないいかなるリトライテーブルパラメータに対しても使用されうる余りの項目を指定するためのものである。ビット［３１：２８］は，ここで言及されるように，行われるオーバーレイリトライコードを指示するために指定される。
【００５８】
図８の例で，複数のリトライテーブル３０２，３０４および３０６それぞれは，ビット［３１：２８］，ビット［２７：２４］，ビット［２３：２０］，ビット［１９：１６］，ビット［１５：１２］，ビット［１１：８］およびビット［７：０］の項目に対して異なる範囲を指定するための複数の列を有する。例えば，第１テーブル３０２は，パラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）およびトラックオフセットに対するそれぞれの第１範囲値を有する。第２テーブル３０４は，パラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）およびトラックオフセットに対するそれぞれの第２範囲値を有する。第３テーブル３０６は，パラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）およびトラックオフセットに対するそれぞれの第３範囲値を有する。
【００５９】
図６および図８を参照すると，図６のステップＳ２４８で，ＭＰＵ２２２は，第１リトライテーブル３０２を有して実行されたリード／ライトリトライ結果のパターンを分析する。もし，ＭＰＵ２２２がパラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）およびトラックオフセットに対する第１範囲値がエラー訂正のために十分ではないパターンと判定されれば，ＭＰＵ２２２は，図７のサブルーチンにアップデートテーブル命令を生成する（図６のＳ２５０）。このようなアップデートテーブル命令によって，図７のサブルーチンは，第２リトライテーブル３０４を選択してテーブルバッファ２２０にロードされる。
【００６０】
結果的に，エラー訂正のための第２リトライテーブル３０４を使用し，ＭＰＵ２２２は，第２リトライテーブル３０４に実行されたリード／ライトリトライ結果のパターンを分析する。もし，ＭＰＵ２２２がパラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）およびトラックオフセットに対する第２範囲値がエラー訂正のために十分ではないパターンと判定されれば，ＭＰＵ２２２は，図７のサブルーチンにアップデートテーブル命令を生成する（図６のＳ２５０）。このようなアップデートテーブル命令によって，図７のサブルーチンは，第３リトライテーブル３０６を選択してテーブルバッファ２２０にロードし，他の番号のリトライテーブルに対してもこのような方法が適用される。
【００６１】
いずれにせよ，図６でステップＳ２４８またはステップＳ２５０の後に選択されたリトライテーブルは，テーブルバッファ２２０にロードされ，ＭＰＵ２２２は，選択されたリトライテーブルを読み出して解釈するための命令を生成する（図６のＳ２５２）。
【００６２】
図９は，図６のメインプロセスによるステップＳ２５２で求める時に選択されたリトライテーブルを読み出して解釈するためのサブルーチン段階を示すフローチャートである。図９を参照すると，ＭＰＵ２２２は，テーブルバッファ２２０内にある選択されたリトライテーブルに対するリトライバッファポインタを決定する（図９のＳ２７２）。選択されたリトライテーブルは複数の列を有し，リトライバッファポインタは選択されたリトライテーブルから読み出すようにデータの列を指示する。
【００６３】
一実施形態で，リトライバッファポインタは，選択されたリトライテーブルがテーブルバッファ２２０にロードされた後に，直ちに選択されたリトライテーブルが開始列を典型的に指示する。この時，リトライバッファポインタは，選択されたリトライテーブルのパラメータ該当列がリード／ライト動作のリトライのために使用された後に次の列に加えられる。
【００６４】
その代りに，もし複数のリトライテーブルのパラメータに対する範囲が重複すれば，ＭＰＵ２２２は，新しく選択されたリトライテーブルをテーブルバッファ２２０にロードさせた後に直ちにリトライバッファポインタを中間列と指示するように制御する。このような状況で，リトライバッファポインタを中間列と指示することによって，リード／ライト動作の過去リトライに使用された重複するパラメータ値は再び使用されないようにすることができる。
【００６５】
いずれにせよ，リトライバッファポインタは，複数のリトライテーブルのうちリトライのために使用されるパラメータの選択された列を指示するためのメカニズムである。それにより，リトライバッファポインタは，複数のリトライテーブルのうち使用するリトライテーブルが選択されるように移動させるために本発明の一実施形態で使われうる。テーブルと共に使われるバッファポインタは，本発明が属する技術分野で公知の技術である。
【００６６】
ＭＰＵ２２２は，この時，リトライバッファポインタが複数のリトライテーブルの最後にあるかを判定する（図９のＳ２７４）。リトライバッファポインタは，本発明の一実施形態で複数のリトライテーブルのうち位置指示子である。もし，リトライバッファポインタが複数のリトライテーブルの最後にあるとＭＰＵ２２２が判定すれば，可変リトライカウントは，最大リトライカウント＋１と設定され（図９のＳ２７６），ここで，最大リトライカウントは特定された数である。また，この場合で，図９のサブルーチンは，図６でメインプロセスのステップＳ２５４に戻るために終了する。
【００６７】
もし，リトライバッファポインタが複数のリトライテーブルの最後に位置しなければ，ＭＰＵ２２２は，リトライバッファポインタによって指示されて選択されたリトライテーブルの現在列に対するリトライパラメータを読み出して解釈する（図９のＳ２７８）。また，この場合に，ＭＰＵ２２２は，バッファポインタを増加させ（図９のＳ２８０），図６でメインプロセスのステップＳ２５４に戻る。ステップＳ２７８で，リトライパラメータを解釈するために，ＭＰＵ２２２は，リトライバッファポインタで読み出したリトライパラメータを有するディスクドライブ２０４またはディスクドライブ２３２内にある構成要素を制御するための方法を決定する。
【００６８】
図６のメインプロセスを再び参照すると，図９のサブルーチン後に，ＭＰＵ２２２は，リトライカウントが最大リトライカウントより大きいかを判定する（図６のＳ２５４）。リトライカウントは，リード／ライト命令が受信される時に０に初期化され（図６のＳ２４２），リード／ライト動作に対するリトライの回数をカウントする。最大リトライカウントは，ＭＰＵ２２２によって実行されるリード／ライト動作に対するリトライの最大回数である。もし，リトライカウントが最大リトライカウントより大きければ，この時，リード／ライト動作が失敗したという警告メッセージを出力し，リード／ライト動作を終了する。
【００６９】
もし，リトライカウントが最大リトライカウントより大きくなければ，ＭＰＵ２２２は，リード／ライト動作をリトライするためにリトライパラメータを設定する（図６のＳ２５６）。
【００７０】
図１０は，本発明の一実施形態で図６のメインプロセスにあるステップＳ２５６で求める時にリトライパラメータを設定するためのサブルーチンにある段階を示すフローチャートである。図８および１０を参照すると，ディスクドライブ２０４またはディスクドライブ２３２のトラッキングメカニズムを有するトラックオフセットは，ビット［７：０］で特定された値と設定される（図１０のＳ２８２）。
【００７１】
さらに，パラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）それぞれに対する条件は，ビット［１１：８］，ビット［１５：１２］，ビット［１９：１６］およびビット［２３：２０］に特定されたそれぞれの値と設定される（図１０のＳ２８４）。例えば，ビット［１１：８］は，リード／ライト動作中に磁気ヘッド１１４に供給される電流を決定するパラメータ値を特定する。ＭＰＵ２２２は，磁気ヘッドに電流を供給するリード／ライトＩＣ２０８を制御する。ビット［１５：１２］は，リード／ライトＩＣ２０８内にある低域通過フィルタに対する遮断周波数を決定するパラメータ（２）の値を特定する。ＭＰＵは，この遮断周波数で低域通過フィルタリングを実行するようにリード／ライトＩＣ２０８を制御し，パラメータ（３）およびパラメータ（４）も同じ方法で特定される。
【００７２】
さらに，図１０に示したように，ＭＰＵ２２２は，オーバーレイリトライコードがビット［３１：２８］によって特定されるかを判定する（図１０のＳ２８６）。オーバーレイリトライコードは，例えば磁気ヘッド２１２の不安定な状態に対してテストするのようなリトライ中に実行される付加的な動作である。一般的に，オーバーレイリトライコードは，本発明が属するディスクドライブの技術分野で公知の技術である。もし，オーバーレイコードが特定されれば，ＭＰＵ２２２は，オーバーレイコードをＭＰＵ２２２のＰＲＡＭにロードする（図１０のＳ２８８）。結果的に，ＭＰＵ２２２は，オーバーレイリトライコードを実行し（図１０のＳ２９０），図１０のサブルーチンは，図６のメールプロセスのステップＳ２５８に戻るために終了する。もし，オーバーレイリトライコードが特定されていなければ，図１０のサブルーチンは，トラックオフセット，パラメータ（１），パラメータ（２），パラメータ（３），パラメータ（４）を設定した後に，図６にあるメインプロセスのステップＳ２５８に戻るために終了する。
【００７３】
図６のメインプロセスに戻って参照すると，ステップＳ２５６でリトライパラメータを設定した後に，ＭＰＵ２２２はリトライカウントを増加させ（図６のＳ２５８），リード／ライトステップＳ２４４を再び実行する。ステップＳ２４４，Ｓ２４６，Ｓ２４８，Ｓ２５０，Ｓ２５２，Ｓ２５４，Ｓ２５６およびＳ２５８は，リード／ライト動作の終了地点であるリード／ライト動作が有効であると判定されるまで，またはリトライカウントが最大リトライカウントより大きくなるまで繰り返される。
【００７４】
リード／ライト動作が有効であると判定された場合には，リード／ライト動作は成功的に終了する。リトライカウントが最大リトライカウントより大きいため，リード／ライト動作を終了する時，リード／ライト動作はエラー訂正を図っても失敗する。この場合には，このような失敗の警告メッセージは，ＭＰＵ２２２によって生成されうる。
【００７５】
このような方法で，リトライテーブルの一つは，応用機器，動作条件，ディスクドライブ２０４または２３２のヘッドおよびディスクドライブ２０４または２３２の機械的な特性に従属されて最終的にエラー訂正を最適化させるように選択される。さらに，複数のリトライテーブルの使用は，時間，コストおよびリトライテーブルとこれに相応するファームウェア変更技術を必要とするファームウェアの修正なしに本実施形態で支援される。さらに，本実施形態は，複数のリトライテーブルがエラー訂正に利用されるため，ディスクドライブ２０４または２３２内でリード／ライト動作中の適応的で柔軟なエラー訂正を提供することができる。
【００７６】
上述したものは本発明の一実施形態に該当し，本発明の範囲はこれに制限されない。例えば，本発明は，磁気ディスク２０２または２３６を有するディスクドライブ２０４または２３２を例として参照して説明された。しかし，本発明は，他のタイプのディスクドライブに適用されることもある。
【００７７】
さらに，ここで図示しかつ説明された他の番号の構成要素は，単に本発明の例に過ぎない。例えば，本実施形態は，図８の３つのリトライテーブル３０２，３０４および３０６について記述された。しかし，リトライテーブルの特定番号に対する図７，９および１０のサブルーチンおよび図６のメインプロセスの段階がＭＰＵ２２２によって実行される時，データ保存手段２１８または２３４に保存された命令のシーケンスがファームウェアに含まれうる。
【００７８】
さらに，本実施形態は，ディスクドライブ２０４または２３２内で一般的なリード／ライト動作中にエラー訂正を実行することについて記述された。このようなエラー訂正は，ディスクドライブ２０４または２３２がホスト機器２２４を有するホストシステム内に設置された時に実行されうる。この場合に，本実施形態のエラー訂正は，ホストシステムの一般的な動作過程でホスト機器２２４によってリード／ライト動作中に実行されうる。
【００７９】
それだけでなく，本実施形態は，ディスクドライブ２０４または２３２の試験中に再び使用されうる。図１１は，米国特許６，４６７，１５３号明細書に記述されたディスクドライブの製造過程で，３つのメインテスト段階２９４，２９６および２９８を有するテストプロセス２９２を示す。このようなテストプロセスで，ディスクドライブ２０４または２３２は，あるホストシステムに設置される前にテストシステム２２４とインターフェースすることによってテストされる。製造過程中のディスクドライブの構成要素を結合した後に，初期ドライブテスト２９４は，パワーオン，ドライブ待機チェックおよび書込み，読出しおよび探索プロセスの基本的な動作チェックのためにテストが実行される。
【００８０】
次いで，識別能力のあるバーンイン２９６は，ディスクドライブの基本的な性能チェック，ディフェクト回復および管理とディスクドライブに対する最適の動作パラメータを決定するようにディスクドライブを調整するために実行される。最後テスト２９８でディスクドライブの動作は，識別能力のあるバーンインの結果から検証される。
【００８１】
本実施形態は，製造過程でディスクドライブ２０４または２３２に対する最適の動作パラメータを決定するための識別能力のあるバーンイン２９６中に適用されうる。この場合に，動作パラメータの多様な範囲を有する複数のリトライテーブルは，さらに柔軟で適応的な識別能力のあるバーンイン２９６に対してこのような最適の動作パラメータを決定するように，上述されたように利用されうる。
【００８２】
本実施形態は，方法，装置，システムとして実行されうる。ソフトウェアとして実行される時，本実施形態の構成手段は，必然的に必要な作業を実行するコードセグメントである。プログラムまたはコードセグメントは，プロセッサ判読可能媒体に保存され，または伝送媒体または通信網で搬送波と結合されたコンピュータデータ信号によって伝送されうる。プロセッサ判読可能媒体は，情報を保存または伝送できるいかなる媒体も含む。プロセッサ判読可能媒体の例としては，例えば，電子回路，半導体メモリ素子，ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），フラッシュメモリ，ＥＲＯＭ（Ｅｒａｓａｂｌｅ  ＲＯＭ），フロッピー（登録商標）ディスク，光ディスク，ハードディスク，光ファイバ媒体，無線周波数（ＲＦ）網などがある。コンピュータデータ信号は，電子網チャンネル，光ファイバ，空気，電子系，ＲＦ網などのような伝送媒体上に伝播されうるいかなる信号を含んでいてもよい。
【００８３】
本発明は多様な形態のデータ保存および検索システムに適用可能であり，特に，本発明がデータ保存装置の例としてＨＤＤを適用する場合にファームウェアを変更させずにリトライパラメータ値を最適化させうるので，設計時間およびコストを節減できる。
【００８４】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００８５】
本発明は，ディスクドライブの制御方法および制御システムに適用可能であり，特に，ファームウェアの変更なしに複数のリトライテーブルを利用してディスクドライブでのエラー訂正を実行するための方法およびシステムに適用可能である。
【図面の簡単な説明】
【００８６】
【図１】従来技術による一般的なディスクドライブの概略的な構成を示すブロック図である。
【図２】従来技術による図１のディスクドライブ内でリード／ライト動作中にエラー訂正のために使われるリトライテーブルの一例を示す説明図である。
【図３】従来技術による図２のリトライテーブルを利用するエラー訂正を有する図１のディスクドライブ内でリード／ライト動作のために実行される処理を示すフローチャートである。
【図４】本発明の第１の実施形態によるエラー訂正を有するディスクドライブ２０４内のディスクからデータをリード／ライトするためのシステム２００の概略的な構成を示すブロック図である。
【図５】本発明の第２の実施形態によるディスクドライブ２３２を有するシステム２３０の概略的な構成を示すブロック図である。
【図６】本発明の第１の実施形態に係るディスクドライブまたは第２の実施形態に係るディスクドライブによるリード／ライト動作中に，第１の実施形態に係るシステムまたは第２の実施形態に係るシステムによって実行される処理を示したフローチャートである。
【図７】本発明の一実施形態によるエラー訂正中の他のリトライテーブルをアップデートさせるためのサブルーチン段階を示すフローチャートである。
【図８】本発明の一実施形態によるディスクドライブ内でエラー訂正のために使われる複数のリトライテーブルの例を示す説明図である。
【図９】本発明の一実施形態によるリトライパラメータを読み出して解釈するためのサブルーチン段階を示すフローチャートである。
【図１０】本発明の一実施形態によるリトライパラメータを設定するためのサブルーチン段階を示すフローチャートである。
【図１１】ディスクドライブの製造過程のディスクドライブテストのための典型的な段階を示す説明図である。
【符号の説明】
【００８７】
２００      システム
２０２      磁気ディスク
２０４      ディスクドライブ
２０６      インターフェースＩＣ
２０８      リード／ライトＩＣ
２１０      プリアンプ
２１２      磁気ヘッド
２１４      ＶＣＭドライバ
２１６      ＳＰＭドライバ
２１８      保存手段（マルチリトライテーブルおよびファームウェア）
２２０      テーブルバッファ
２２２      ＭＰＵ（ＰＲＡＭ）
２２４      ホスト機器／テストシステム
【図１】
0004681831.tif 000002
【図２】
0004681831.tif 000003
【図３】
0004681831.tif 000004
【図４】
0004681831.tif 000005
【図５】
0004681831.tif 000006
【図６】
0004681831.tif 000007
【図７】
0004681831.tif 000008
【図８】
0004681831.tif 000009
【図９】
0004681831.tif 000010
【図１０】
0004681831.tif 000011
【図１１】
0004681831.tif 000012