(57)【要約】    【課題】データ・アクセス動作をスケジューリングするための技術を改良する必要性が存在し、特に、複数の待機状態にあるデータ・アクセス動作のシーク時間を見積る技術を改良する必要性が存在する。    【解決手段】コントローラ２０１で用いられるシーク確率プロファイル・テーブル２２７は、シーク動作のための複数のプロファイルを含んでおり、重要パラメータの各置換のために対応するプロファイルに対するインデックスを含んだ別個のインデックス・テーブル２２６によりアクセスされる。動作時、待機状態にあるデータ・アクセス動作のための見積シーク時間が、対応するプロファイルを決定するためにインデックス・エントリ値を用い、アクセス時間を見積るためにプロファイルを用いて、適用できるインデックス・テーブル・エントリにアクセスすることによって得られる。【選択図】図２
2004152468.tif 000002
【特許請求の範囲】
【請求項１】
ディスク・ドライブ・ベースと、
少なくとも一つの面上に磁気的にエンコードされたデータを記録するための少なくとも一枚のリジッド・ディスクを有する回転可能に搭載されたディスク・スピンドル・アセンブリと、
前記少なくとも一枚の回転可能に搭載されたディスクの前記少なくとも一つの面上に前記磁気的にエンコードされたデータにアクセスするための少なくとも一個のトランスデューサ・ヘッドを支持し、位置決めする可動アクチュエータと、
データ・アクセス動作のキューを維持し、それぞれの動作の見積アクセス時間に従って該キューから実行する動作を選択し、それぞれのシーク・プロファイルに対応する複数のエントリを有するシーク確率プロファイル・テーブル及びそれぞれのアクセス動作パラメータ値のセットに対応し、該それぞれのアクセス動作パラメータ値のセットに対応する前記シーク確率プロファイル・テーブルのエントリをインデックス付けする値を含んだ複数のエントリを有するインデックス・テーブルにアクセスし、ディスク・ドライブ・データ・ストレージ装置の動作を制御するコントローラと、を有し、
前記コントローラは、データ・アクセス動作の前記アクセス時間を、（ａ）前記それぞれのアクセス動作パラメータ値のセットに対応する前記インデックス・テーブルのエントリにアクセスし、（ｂ）前記対応するシーク確率プロファイル・テーブルのエントリを決定するために前記インデックス・エントリの値を用い、更に（ｃ）前記アクセス時間を見積るために前記対応するシーク確率プロファイル・テーブルのエントリを用いる、ことによって見積ることを特徴とする回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項２】
前記可動アクチュエータは、前記少なくとも一枚の回転可能に搭載されたディスクのそれぞれの面上の磁気的にエンコードされたデータにアクセスする複数のトランスデューサ・ヘッドを支持し、前記アクセス動作パラメータ値のセットの各々は、前記対応するデータ・アクセス動作を遂行するためのトランスデューサ・ヘッドに対応する値を含むことを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項３】
前記アクセス動作パラメータ値のセットの各々は、前記対応するデータ・アクセス動作のためのシーク動作のアクチュエータ移動方向に対応した値を含むことを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項４】
前記アクセス動作パラメータ値のセットの各々は、データ・アクセス動作のタイプを含むことを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項５】
前記アクセス動作パラメータ値のセットの各々は、前記回転磁気ディスク・ドライブ・データ・ストレージ装置の温度を含むことを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項６】
前記コントローラは、前記インデックス・テーブルの値を動的に更新することを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項７】
前記コントローラは、更に、（ｄ）シーク距離と必要なレイテンシを決定し、（ｅ）前記シーク距離に対応する公称シーク時間を決定し、（ｆ）前記アクセス時間を見積るために対応するシーク確率プロファイル・テーブルのエントリを用いるときに使用される超過シーク時間を、前記必要なレイテンシと前記公称シーク時間との間の差として決定する、ことによって前記アクセス時間を見積ることを特徴とする請求項１に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項８】
前記コントローラは、時間ベース再配置予想アクセス時間アルゴリズムに従って前記アクセス時間を見積ることを特徴とする請求項７に記載の回転磁気ディスク・ドライブ・データ・ストレージ装置。
【請求項９】
データ・アクセス動作の実行のためのキューを維持するステップと、
前記キュー上の複数のデータ・アクセス動作に対して、それぞれの見積アクセス時間を、
（ａ）前記キュー上の前記対応するデータ・アクセス動作のアクセス動作パラメータ値のセットに対応し、それぞれのアクセス動作パラメータ値のセットに対応しそれぞれのシーク・プロファイルを含むシーク確率プロファイル・テーブルの各エントリをインデックス付けする値を含んだ複数のエントリを有するインデックス・テーブルのそれぞれのエントリにアクセスし、
（ｂ）前記対応するシーク確率プロファイル・テーブルのエントリを決定するために前記インデックス・エントリの値を用い、
（ｃ）前記対応するデータ・アクセス動作の前記アクセス時間を見積るために前記対応するシーク確率プロファイル・テーブルのエントリを用いる、
ことによって決定するステップと、
前記データ・アクセス動作の前記見積アクセス時間に基づき前記キュー上の前記複数のデータ・アクセス動作の一つを実行するために選択するステップと、
を含むことを特徴とするディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１０】
前記ディスク・ドライブは、前記ディスク・ドライブのそれぞれのディスク面上の磁気的にエンコードされたデータにアクセスする複数のトランスデューサ・ヘッドを支持する可動アクチュエータを含み、前記アクセス動作パラメータ値のセットの各々は前記対応するデータ・アクセス動作を遂行するためのトランスデューサ・ヘッドに対応した値を含むことを特徴とする請求項９に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１１】
更に前記インデックス・テーブルの値を動的に更新するステップを含むことを特徴とする請求項９に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１２】
前記インデックス・テーブルの値を動的に更新する前記ステップは、
（ａ）拡張テーブルに於いて動的な更新のためのアクセス動作パラメータ値のセットを選択するステップと、
（ｂ）アクセス動作パラメータ値のセットを選択する前記ステップによって選択されたそれぞれのアクセス動作パラメータ値のセットの各々に対して前記拡張テーブルに於けるそれぞれのシーク・プロファイルを動的に決定するステップと、
（ｃ）前記拡張テーブルにおいて動的に決定した各シーク・プロファイルと前記シーク確率プロファイル・テーブルの対応するシーク・プロファイルを一致させるステップと、
（ｄ）前記シーク確率プロファイル・テーブルのそれぞれの対応するシーク・プロファイルをインデックス付けするためにアクセス動作パラメータ値のセットを選択する前記ステップにより選択されたそれぞれのアクセス動作パラメータ値のセットの各々に対応する前記インデックス・テーブルのエントリを更新するステップと、
を含むことを特徴とする請求項１１に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１３】
動的な更新のためにアクセス動作パラメータ値のセットを選択する前記ステップは、前記それぞれのアクセス動作パラメータ値のセットに対応して実行されるデータ・アクセス動作の頻度に基づいてアクセス動作パラメータ値のセットを選択するステップを含むことを特徴とする請求項１２に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１４】
前記インデックス・テーブルの値を動的に更新する前記ステップは、それぞれのシーク・プロファイルの各々について動作上で収集したデータの収斂によってアクセス動作パラメータ値の選択したセットに対応したそれぞれのシーク・プロファイルを動的に決定するステップを含むことを特徴とする請求項１１に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１５】
前記キュー上の複数のデータ・アクセス動作に対して、それぞれの見積アクセス時間を決定する前記ステップは、更に、
（ｄ）シーク距離及び必要なレイテンシを決定するステップと、
（ｅ）前記シーク距離に対応して公称シーク時間を決定するステップと、
（ｆ）前記対応するデータ・アクセス動作の前記アクセス時間を見積るために前記対応するシーク確率プロファイル・テーブルのエントリを用いる前記ステップを遂行するときに用いられる超過シーク時間を、前記必要なレイテンシと前記公称シーク時間との間の差として決定するステップと、
を含むことを特徴とする請求項９に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１６】
前記アクセス時間を見積るために前記対応するシーク確率プロファイル・テーブルのエントリを用いる前記ステップは、時間ベース再配置予想アクセス時間アルゴリズムに従って前記アクセス時間を見積ることを特徴とする請求項１５に記載のディスク・ドライブ・データ・ストレージ装置の動作方法。
【請求項１７】
ディスク・ドライブのプロセッサによって実行されるときに、該ドライブに対して、
データ・アクセス動作の実行のためのキューを維持するステップと、
前記キュー上の複数のデータ・アクセス動作に対して、それぞれの見積アクセス時間を、
（ａ）前記キュー上の前記対応するデータ・アクセス動作のアクセス動作パラメータ値のセットに対応し、それぞれのアクセス動作パラメータ値のセットに対応しそれぞれのシーク・プロファイルを含むシーク確率プロファイル・テーブルの各エントリをインデックス付けする値を含んだ複数のエントリを有するインデックス・テーブルのそれぞれのエントリにアクセスし、
（ｂ）前記対応するシーク確率プロファイル・テーブルのエントリを決定するために前記インデックス・エントリの値を用い、
（ｃ）前記対応するデータ・アクセス動作の前記アクセス時間を見積るために前記対応するシーク確率プロファイル・テーブルのエントリを用いる、
ことによって決定するステップと、
前記データ・アクセス動作の前記見積アクセス時間に基づき前記キュー上の前記複数のデータ・アクセス動作の一つを実行するために選択するステップと、
を遂行させる、信号を担うメディアに記録されたプロセッサで実行可能な複数の命令を含むことを特徴とするディスク・ドライブ・データ・ストレージ装置用制御プログラム・プロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回転ディスク・データ・ストレージ装置に関し、特にディスク・データ・ストレージ装置に於いて、複数の待機状態にあるデータ・アクセス動作の実行順序を選択するために用いられるアルゴリズムに関する。
【背景技術】
【０００２】
２０世紀後半は情報革命として知られる現象を証明し続けている。情報革命は任意の或る事件や機械装置というより、もっと範囲の広い歴史的な発展であるが、ディジタル電子計算機ほど情報革命を代表する装置は他には出現していない。コンピュータ・システムの発展は確かに革命であり続けている。毎年コンピュータ・システムはより高速になり、より多くのデータを記憶し、ユーザにより多くのアプリケーションを提供してきている。
【０００３】
現代のコンピュータ・システムの大規模なデータ・ストレージのニーズは、大容量の大量データ・ストレージ装置を必要としている。種々のデータ・ストレージ技術が利用可能であるが、回転リジッド磁気ディスク・ドライブが、これまでのところ最も広く用いられている。
【０００４】
このようなディスク・ドライブ・データ・ストレージ装置は精密な機械部品、超平滑ディスク面、高密度磁気エンコード・データ、及びデータをエンコード又はデコードし、ドライブ動作を制御する高度な電子回路を含む一つの極めて複雑な機械装置である。それ故に各ディスク・ドライブは、それぞれが適当なドライブ動作を必要とする複数のシステムやサブシステムを含む、それ自身が小世界である。この複雑さにもかかわらず、回転磁気ディスク・ドライブは広範囲のアプリケーションに対してストレージ装置として選択させるに足る容量、機能及びコストの証明された記録を有している。
【０００５】
ディスク・ドライブは通常、一定速度で回転する一枚以上の平坦なディスクの面上の、同心状のトラックに設けられた複数のセクタに記録されたデータを有している。データにアクセス（ディスクからデータを読み出したり又はディスクにデータを書き込んだり）するために、可動アクチュエータがトランスデューサを望まれるデータ・トラック付近に位置決めする。
【０００６】
次いでドライブは、望まれるデータ・セクタがトランスデューサのすぐ近くとなる角度位置にディスクが回転するまで待機する。それ故に、ディスク・ドライブが任意のデータ・アクセス動作を実行するのに必要な時間は、アクチュエータが現在の位置から望まれるトラック位置まで移動する（シークと呼ばれる）のに必要な時間、及びディスクが望まれる角度位置に回転するまで待機する（レイテンシと呼ばれる）のに必要な時間、とを含んでいる。実行時間は、一旦アクチュエータが正しく位置決めされてから実際にデータを読み出し又は書き込むのに必要な時間も含むが、多くの動作環境の場合、各動作でアクセスされるデータ量は比較的少ないので、シーク時間やレイテンシ時間の方がデータの読み出し又は書き込みに必要な時間に比べてより重要であることが経験的に示されている。
【０００７】
ディジタル・データ処理技術の他の分野の進歩に遅れをとらずについて行くために、ディスク・ドライブ・ストレージ装置は性能、信頼性やデータ容量の絶え間ない改良を行っていかなければならない。性能は単位時間あたりのデータ・アクセス動作の平均的な数で測ることができ、これは平均シーク時間と平均レイテンシ時間に依存する。シーク時間はより高速で、より強力なアクチュエータを設計することによって低減することができ、レイテンシはより高速のディスク回転によって低減することができるが、これらの手段で得られる改良には実際的な限界を与える設計上の制約が存在する。
【０００８】
機械設計やデータ・フォーマットが与えられたときに、データ・アクセス動作をインテリジェントに順序付けることによって尚一層の改良を得ることが可能になる。特に、任意のデータ・アクセス動作に対して、シーク時間とレイテンシ時間は絶対的なものでなく、とりわけ（シーク長に影響を与える）アクチュエータの現在位置及び（レイテンシに影響を与える）ディスクの現在角度位置に依存することが観測されている。
【０００９】
通常、複数のデータ・アクセス動作はディスク・ドライブの内部コマンド・バッファ中で待機状態にある。これらのデータ・アクセス動作の実行順序をインテリジェントに選択することによって、平均シーク時間とアクセス時間が低減されるように動作を選択することが可能になる。このようにして、「平均」シーク長が低減されるように動作が順序付けられるため、アクチュエータ速度や他の特性を変えないで「平均」シーク時間を低減できる。同様にシーク完了後に、望まれるデータに到達するまでにディスクが回転する「平均」角度が低減されるように動作が順序付けられるため、ディスクの回転速度を変えないで、「平均」レイテンシを低減できる。
【００１０】
これらの、待機状態にあるデータ・アクセス動作の実行順序をインテリジェントに選択するという特徴をうまく活用するために種々の技術が用いられてきている。一般にこれらのアルゴリズムは、複数の待機状態にあるデータ・アクセス動作の各々に対して、N番目のアクセス動作の終わりのアクチュエータ位置から待機状態にあるデータ・アクセス動作の始めまでのシーク及びレイテンシに必要な時間の量を見積り、これらの見積に基づいて待機状態にあるデータ・アクセス動作の一つをN+１番目の動作として実行するために選択する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
順序付けアルゴリズムの最適な遂行は見積精度、特にシーク時間の見積精度に依存する。もしシーク時間の見積が小さすぎる場合は、アルゴリズムは、アクチュエータが望まれるトラックに時間内に整定できないデータ・アクセス動作を選択してしまい、望まれるデータが得られるまでアクチュエータをトラック上でディスク丸一回転待たせることになる。もしシーク時間の見積が大きすぎる場合は、アルゴリズムは、シーク後により大きなレイテンシを有する、より遅い動作の方を優先して、本当は遂行できていたはずの非常に小さなレイテンシを有するいくつかの動作を排除してしまうであろう。
【００１２】
正確なシーク時間の見積を得ることは、シーク時間が非常に多くの変数に依存するので、困難であり、且つディスク・ドライブ動作に必要とされる速度は、いかなるシーク見積技術であっても極めて急速に実行されるものでなければならないことを意味する。通常のアルゴリズムはシーク長、及び（一般に書き込みはより高いトラックフォローイング精度を必要とするため、トラックに整定するまでにより長いシーク時間を必要とするので）次の動作が読み出しか書き込みかどうかに基づいてシーク時間を見積っている。
【００１３】
しかし他の要因もシーク時間に影響するであろう。アクチュエータ速度（及びそれ故にシーク時間）はディスクのすべての半径方向の領域に対して又は両方のシーク方向に対して必ずしも同じではない。個々のヘッド、アクチュエータ、ディスクのそれぞれ、及びその他の部品に通常製造プロセス変動があるので、同一メーカで同一モデルであっても、或るディスク・ドライブ装置と他のディスク・ドライブ装置間でシーク時間特性が変動するのみならず、一つのドライブ内ですら、シーク時間特性は一つのデータ記録面と他のデータ記録面の間で変動するであろう。更に、任意の特定のドライブ内のシーク時間は、ドライブが経時変化するにつれ、又は温度が変動するにつれ、変化し得る。
【００１４】
データ・アクセス動作をスケジューリングするための技術を改良する必要性が存在し、特に、複数の待機状態にあるデータ・アクセス動作のシーク時間を見積る技術を改良する必要性が存在する。
【課題を解決するための手段】
【００１５】
本発明の一つの側面に従ってディスク・コントローラで用いられるシーク・プロファイルテーブルは、各エントリがそれぞれのシーク・プロファイルに対応する、複数のエントリを有する。別個にあるインデックス・テーブルは、各エントリがそれぞれシーク・プロファイルに影響を与えるパラメータの組み合わせに対応し、インデックス・テーブル・エントリの数は実質的にプロファイル・エントリの数を上回っている、複数のエントリを有する。
【００１６】
各インデックス・テーブル・エントリは、インデックス・テーブル・エントリに対応したパラメータの組み合わせ下でシーク・プロファイルを近似するプロファイル・テーブルの対応するエントリへの一個の参照基準を有する。動作時には、待機状態にあるデータ・アクセス動作に対する見積シーク時間は、待機状態にあるデータ・アクセス動作の適用できるパラメータに対応したインデックス・テーブル・エントリにアクセスし、対応するプロファイル・テーブル・エントリを決定するためにインデックス・エントリ値を用い、アクセス時間を見積るためにプロファイル・テーブル・エントリからの確率プロファイルを用いることによって得ることができる。
【００１７】
好適な実施例に於いては、「時間ベース再配置予想アクセス時間」(ＴＲＥＡＴ)アルゴリズムが用いられる。各シーク長に対して最小の可能なシーク時間を設定する公称のシーク・プロファイルが設けられる。時間はトランスデューサ・ヘッドを通過するディスク面上のサーボ識別子（ＳＩＤ）数の整数として表される。任意のシーク動作に対して、公称シーク後にレイテンシが存在するであろう。各シーク確率プロファイル・テーブル・エントリは複数のフィールドを有し、各フィールドはデータ・アクセス動作が完了できるそれぞれの確率に対応する。
【００１８】
シーク確率プロファイルの各それぞれのフィールドの値は（ＳＩＤ数の整数として表された）公称シーク時間に続く、データ・アクセス動作がそのレイテンシ時間内に完了するであろう、対応する確率を達成するのに必要とされるレイテンシ時間を表す。しかしながら、代わりにシーク確率プロファイル・テーブル・エントリの中の確率プロファイルの表現が別の形式でなされる、他のアルゴリズムを用いることも可能である。
【００１９】
好適な実施例に於いて、ディスク・ヘッド・ナンバ、シーク方向及び動作が読み出しか書き込みかのそれぞれの組み合わせに対応した別個のインデックス・テーブル・エントリが存在する。しかしながら、その代わりにアクセス中のシリンダ（トラック）、又はドライブの温度のような他の又は追加したパラメータを用いることも可能である。
【００２０】
好適な実施例に於いて、シーク確率プロファイル・テーブル・エントリにはプロファイル・エントリを代表するセットがロードされ、各それぞれのインデックス・テーブル・エントリは実際の動作条件に従ってシーク確率プロファイル・テーブルに最も良く適合するように動的にマップされる。代わりに、シーク確率プロファイル・テーブル・エントリを実際の動作統計データを用いて適応性を持たせて構築したり、又は、他の手段を用いてテーブルを構築することも可能である。
【００２１】
好適な実施例に従ってシーク確率プロファイル・テーブルとインデックス・テーブルを用いると、個々のヘッド、シーク方向、及び他のパラメータ間の変動を効果的に考慮することが可能となり、関係するパラメータのそれぞれ可能性ある置換の目的で、別個のプロファイルを記憶するために巨大なテーブルを必要とすることもなくなり、又、リアルタイムで遂行される複雑な計算の必要もなくなり、従って待機状態にある動作のアクセス時間をより高精度に見積る助けにもなる。
【発明の効果】
【００２２】
本発明によれば、待機状態にあるデータ・アクセス動作のアクセス時間を、高精度に見積ることが可能となる。
【発明を実施するための最良の形態】
【００２３】
＜ディスク・ドライブ設計の概要＞
回転リジッド磁気ディスク・ドライブは通常一枚以上の平滑で平坦な、共通のスピンドル又はハブに恒久的に取り付けられたディスクを有している。二枚以上のディスクが用いられる場合、ディスクは相互に平行に一個のスピンドルにスタックされ、それらが接触しないように間隔を置いて配置される。ディスクとスピンドルはスピンドル・モータにより一定速度で一斉に回転する。
【００２４】
スピンドル・モータは通常多相電磁ステータと、永久磁石ロータを有するブラッシュレスＤＣモータである。ステータの異なった相はロータを回転させる駆動電流により逐次駆動される。
【００２５】
各ディスクは、スピンドル用に中心部に孔を有する硬い円板状のベース又はサブストレートから成る。サブストレートはガラス、セラミック、プラスティック又は他の材料も可能であるが、通常はアルミである。サブストレートは磁化可能な材料の薄い層で膜形成されており、さらに保護層でおおわれても良い。
【００２６】
データは一枚又は複数枚のディスク面上の磁化可能な層に記録される。このために、データを表す微小な磁化パターンが磁化可能な層に形成される。データ・パターンは、スパイラルなトラックも可能ではあるが、通常は同心円状のトラックに配列される。各トラックは更に沢山のセクタに分かれている。こうして、各セクタは弧を形成し、一つのトラックのすべてのセクタが集まると円となる。
【００２７】
可動アクチュエータはデータを読み出したり書き込むためトランスデューサ・ヘッドを面のデータ付近に位置決めする。アクチュエータはレコード・プレーヤのトーン・アームに、ヘッドはレコード針に例えられる。データを有する各ディスク面に対して一個のトランスデューサ・ヘッドが存在する。
【００２８】
アクチュエータはヘッドを位置決めするために、通常ディスクの回転軸に平行な軸の回りで回転運動を行う。アクチュエータは通常この軸を取り囲んで、ディスクの方向に伸長した櫛状のアームを有する堅固なブロック（この理由で、時として「櫛」と呼ばれる）を含んでおり、薄いサスペンションのセットがこのアームに取り付けられ、軸の反対側に電磁モータが取り付けられる。
【００２９】
トランスデューサ・ヘッドは櫛の反対側のサスペンションの端部に、サスペンション毎にヘッド一個ずつ取り付けられる。アクチュエータ・モータは通常、アクチュエータの櫛に取り付けられた電磁コイルであり、永久磁石のセットが静止位置にあるベース又はカバー上に取り付けられており、励磁されると、コイルは永久磁石によって作り出される磁界に応答して櫛にトルクを伝達する。
【００３０】
アクチュエータ・モータはヘッドを望まれるデータ・トラック上に位置決めする（シーク動作）ために、アクチュエータを回転させる。一旦ヘッドがトラック上に位置決めされたら、ディスクの一定の回転は、次第に望まれるセクタをヘッド付近に持っていき、そこでデータが読み出されたり書き込まれる。シークの完了後望まれるセクタがヘッド付近に来るまで待つのに要する時間がレイテンシとして知られるものであり、このようにして、データ・アクセス動作の開始に必要な時間はシーク時間とレイテンシ時間の合計となる。
【００３１】
通常、サーボ・フィードバック・システムがアクチュエータを位置決めするために用いられる。データ・トラックを認識するサーボ領域は、通常製造時に、少なくとも一枚のディスク面上に書き込まれる。旧来のディスク・ドライブ設計では、しばしばサーボ領域として専用のディスク面を用いていた。最近の設計では、通常エンベデッド・サーボ・セクタを用いている。即ち、サーボ・セクタが各ディスク面の角度的に間隔を設けた部分に記録され、サーボ・セクタ間の領域がデータを記録するのに用いられている。
【００３２】
エンベデッド・サーボ領域は通常、同期部分、トラック・ナンバを認識するためのトラック認識部分、及びトラックの中心を位置付けるためのトラック・センタリング部分から成る。シーク・モードで動作する場合、サーボ・システムは、現在のトラック・ナンバを決定するためにトラック認識部分をトランスデューサに読み出させ、それに応じてアクチュエータの軌道を調整する。
【００３３】
トラック・フォローイング・モードで動作する場合、サーボ・システムは、トランスデューサに、トラック認識部分と望まれるトラックの中心線からのずれを決定するためのトラック・センタリング部分の両者を読み出させ、サーボ・フィードバック・システムがずれを最小化するためアクチュエータの位置を調整する。
【００３４】
トランスデューサ・ヘッドは磁気読み出し・書き込みトランスデューサを搭載した、空気力学的な形状の材料（通常セラミック）のブロックである。このブロック又はスライダは、ディスクが回転するときに、（「浮上高さ」と呼ばれる）非常に微小な距離でディスクの面上を浮動する。
【００３５】
ディスク面のごく近くまで接近させることは、トランスデューサが磁化可能な層のデータ・パターンを読み出したり、書き込んだりする上で重要である。いくつかの異なったトランスデューサ設計が用いられる。多くの現在のディスク・ドライブ設計は薄膜インダクティブ書き込みトランスデューサ素子及び分離型の磁気抵抗効果型読み出しトランスデューサ素子とを採用している。サスペンションはトランスデューサ・ヘッドをディスク面方向に実際に力を印加する。スライダの空気力学特性はこの力に対抗してスライダをデータ・アクセスのためにディスク面上適当な距離のところで浮動させる。
【００３６】
以下、図面を参照して本発明の実施例を詳細に説明する。なお、各図面に於いて、同じ参照番号は同様の部品を意味している。
【００３７】
＜主要部品の説明＞
図１は、好適な実施例に従って利用するための、回転磁気ディスク・ドライブ・ストレージ装置１００の簡単な図である。ディスク・ドライブ１００は、ディスク・ドライブ・ベース又はハウジング１０４に搭載されたハブ・アセンブリ又はスピンドル１０３に堅固に取り付けられた、回転ディスク１０１を含んでいる。スピンドル１０３とディスク１０１は、駆動モータによって、図１に示すように上方から見たときに反時計回りに一定の回転速度で駆動される。駆動モータ（図１には示されていない）は、ハブ・アセンブリ１０３の内部に含まれている。データは、各ディスクの上面及び下面１０２に記録されている。
【００３８】
アクチュエータ・アセンブリ１０５はディスク１０１の一方の側に配置されている。アクチュエータ１０５は、電磁モータ１０７によって駆動され、トランスデューサ・ヘッドを位置決めするためにスピンドル軸に平行なシャフト１０６の回りを弧を描いて回転する。カバー（図示なし）はベース１０４と組み合わせられてディスク及びアクチュエータ・アセンブリを囲い込み、保護する。
【００３９】
ドライブの動作を制御し、ホストコンピュータのような他の装置と通信を行う電子モジュールが、回路基板１１２に搭載されている。この実施例に於いて、回路基板１１２は、ベース１０４とカバーで構成されるエンクロージャの外部に搭載される。しかしながら、基板１１２は、ヘッド・ディスク・エンクロージャの内部に搭載されても良いし、又は、一部がエンクロージャの内部に搭載されてもよいし、他の部分がエンクロージャの外部に搭載されても良い。複数のヘッド・サスペンション・アセンブリ１０８が、アクチュエータ１０５の先端に堅固に取り付けられている。読み出し・書き込みトランスデューサ１１０を有する空気力学スライダ１０９は、ディスク面１０２に近接して各ヘッド・サスペンション・アセンブリ１０８の端部に配置されている。
【００４０】
記録用に複数のディスク面を持った二枚のディスクを有するディスク・ドライブ１００が示されているが、本発明は一枚のディスク又は多数のディスクを有するドライブにも利用でき、又、記録データ用として一枚のディスクの一つの面のみ用いる場合も可能であることは明らかである。
【００４１】
図２は好適な実施例に従った、ディスク・ドライブ１００の主要な電子的要素のハイレベル・ブロック図であり、これらがどのようにして相互に、及びトランスデューサ・ヘッド、アクチュエータ・モータ、スピンドルモータに接続されているかを示している。ファイル・コントローラ２０１はホストとのデータ・インタフェースを提供する。「ホスト」は通常デスクトップ・コンピュータ・システム又はメインフレーム・コンピュータ・システムのようなコンピュータ・システムであるが、携帯情報端末（ＰＤＡ）、自動車やロボットのような機械装置のディジタル・コントローラ、又はその他の種々な任意のディジタル装置のような特殊目的の装置であっても良い。
【００４２】
コントローラ２０１は、コマンド解釈、セクタ・マッピング、パワーアップ・ルーチン、診断、エラー・リカバリ等を含む、ディスク・ドライブ１００の動作の一般的な制御も提供する。特にファイル・コントローラ２０１は、ここで、より詳細に説明するように、待機状態にあるデータ・アクセス動作を実行するために選択を行う。
【００４３】
チャネル電子回路２０２はディスク面に書き込まれ及びディスク面から読み出されるデータに対して変調及び復調機能を提供する。サーボ・コントローラ２０３はアクチュエータ・モータ（ＶＣＭ）１０７を制御するためにディスク上のサーボ領域を読み出して得られたサーボ信号を解析し、又ファイル・コントローラ２０１からのシーク信号に応答する。スピンドル・モータ駆動回路２０８は、スピンドル・モータ２０９に駆動電流を提供し、モータを望まれる回転速度で駆動する。
【００４４】
トランスデューサ１１０はリード・ワイヤを経て、書き込みマルチプレクサ２１３及び読み出しマルチプレクサ２１１に接続され、これらはそれぞれ書き込み駆動回路２１２及び読み出しアンプ２１０に結合されている。読み出しアンプ２１０はチャネル電子回路２０２への入力を提供する。チャネル電子回路は書き込み駆動回路２１２への入力を提供する。マルチプレクサ２１１と２１３はファイル・コントローラ２０１からの制御信号２１４に応答して、書き込み又は読み出し用にヘッドのうちの一個を選択する。
【００４５】
データ又はサーボ信号を表す磁気パターンがトランスデューサ１１０の磁気抵抗効果型読み出し素子により検知され、読み出し増幅器２１０で増幅され、チャネル電子回路２０２に供給される。チャネル電子回路はホストシステムで用いるのに整合したデータにデータ信号をデコードするために、パーシャル・レスポンス・マキシマム・ライクリフッド（ＰＲＭＬ）フィルタを含むのが望ましい。データ書き込み時にはチャネル電子回路２０２は予め決められたエンコード・フォーマットに従ってデータをエンコードし、書き込み駆動回路２１２にこのデータを提供する。この書き込み駆動回路はディスク面上にデータが書き込まれるようにインダクティブ書き込み素子中を流れる電流を駆動する。
【００４６】
トランスデューサ１１０の位置決めは、トランスデューサ１１０、読み出しアンプ２１０、チャネル電子回路２０２、サーボ・コントローラ２０３、アクチュエータ駆動回路２０７、及びアクチュエータ・モータ１０７から成るサーボ・フィードバック・ループ・システムによって達成される。トランスデューサ１１０はディスク面１０２上に周期的な間隔で記録されたサーボ領域を読み取り、これらは読み出しアンプ２１０で増幅され、チャネル電子回路２０２がサーボ領域とユーザ・データを分離して、サーボ・コントローラがトラック及び位置決め誤差を認識するためにチャネル２０２から受け取ったサーボ信号をデコードし、望まれるパラメータに従って、フォロー又はシークに必要なアクチュエータ駆動電流を決定し、必要な駆動電流を示す信号をアクチュエータ・モータ駆動回路２０７に提供する。
【００４７】
アクチュエータ・モータ駆動回路２０７はアクチュエータ・ボイス・コイル・モータ（ＶＣＭ）１０７に駆動電流を提供して、アクチュエータ１０５を望まれる位置に位置決めしたり（フォローモードの場合）、又は望まれるプロファイルに従ってアクチュエータを加速又は減速する（シーク・モードの場合）。
【００４８】
ファイル・コントローラ２０１はリードオンリー・メモリ（ＲＯＭ）２２２に存在する制御プログラムを実行する、プログラマブル・プロセッサ２２１を含むのが望ましい。ＲＯＭ２２２は不揮発性半導体ランダム・アクセス・メモリであり、ディスク・ドライブ１００の電源を落としてもその内容は失われない。ファイル・コントローラは、揮発性の読み出し・書き込みメモリ（ＲＡＭ）２２３も有する。ＲＡＭ２２３は、一つ以上のディスク面に書き込まれたり読み出されるデータ用、及びドライブ動作に必要な内部状態変数の記憶用の一時キャッシュとして用いられる。
【００４９】
特に、ＲＡＭ２２３は待機状態にあるデータ・アクセス動作のキュー２２４を含む。ここで更に十分に説明されるように、ＲＡＭ２２３は更に、キュー２２４の待機状態にあるデータ・アクセス動作のアクセス時間の見積に使用するための、公称シーク時間テーブル２２５、インデックス・テーブル２２６、シーク確率プロファイル・テーブル２２７及び拡張テーブル２２８を含む。ＲＡＭ２２３は、他のデータ構造及び例えばディスク面から読み出されたデータをホストに送るためのバッファのようなストレージのアロケーション（図示されていない）を含んでいても良い。
【００５０】
あるディスク・ドライブの特徴が、特に分離型の磁気抵抗効果型読み出し及びインダクティブ型書き込みトランスデューサ素子について上記で示され、説明されているが、これらは好適な実施例を記述する手段としてのみのものであり、異なったトランスデューサ素子や他の代わりとなるディスク・ドライブ設計上の特徴を用いて本発明を実現可能なことは明らかである。更にファイル・コントローラ２０１、チャネル２０２、サーボ・コントローラ２０３等のような種々の電子的要素は、図２では説明用に別々の存在として示されているが、これらの一つ以上を一個のモジュールに組み合わせしても良いし、又は複数のモジュールとして実現しても良いことは明らかである。
【００５１】
特にコントローラ２０１の要素は実際一個のモジュールとして実現されても良いし、複数のモジュールとして実現されても良い。ＲＡＭ２２３は一個のモジュールでも複数のモジュールでも良く、又複数のストレージ技術を用いても良く、例えばＲＡＭ２２３の一部はスタティックＲＡＭで別の部分はダイナミックＲＡＭであっても良い。更にＲＯＭとＲＡＭの望ましい割り振りは、ある程度現在利用可能な技術のコストに依存しており、メモリ技術の発展につれ不揮発性ＲＡＭのような一個のモノリシック・メモリ、又は何か他のメモリ技術の組み合わせを用いるのが望ましくなることがあり得ることは明らかである。更に、本発明を理解する上で重要でない各種ディスク・ドライブ部品は説明を明快にするために図１、図２では省略していることも明白である。
【００５２】
＜メモリの説明＞
ＲＡＭ２２３はコントローラ２０１で用いられる一般的な作業用ストレージである。ＲＡＭ２２３は、種々の用途に対してコントローラ２０１によって割り振られる一個のアドレス可能なメモリ空間を含むのが望ましい。ＲＡＭ２２３の大部分は通常読み出しバッファ（図示していない）用即ちディスク面から読み取られ、ホストへの伝送が意図されたデータの一時的な記憶用に割り振られる。ＲＡＭ２２３の別な部分はデータ・アクセス動作キュー２２４として用いるために割り振られる。
【００５３】
キュー２２４はホストから受け取った待機状態にあるデータ・アクセス動作を記憶する。読み出しバッファもキュー２２４も、メモリ・スペースとして利用可能なものは何でもいずれかが使用できるように、ＲＡＭ２２３の可変サイズの割り振りであることが望ましい。ある実現方法に於いてはキュー２２４と読み出しバッファは一個のデータ構造として結合されても良い。特定して述べられるテーブルや構造に加えて、ＲＡＭ２２３は更に本発明の理解に本質的でない制御プログラム実行の種々の局面を管理するためにコントローラ・プロセッサ２２１によって使用される、動的な作業用メモリ変数及びデータ構造を含んでいる。
【００５４】
キュー２２４は現在知られている、又はこれから展開される、種々のフォーマットの中の任意のものに従って体系付けられる。キュー２２４は、各データ・アクセス動作に対して、動作のタイプの指標（読み出し又は書き込み）、及びデータ・アクセス動作のディスク面（ヘッド）、トラック・ナンバ及びセクタ・ナンバを含むのが望ましい。キュー２２４は又、動作の順序性についてのある指標、即ち他の動作と関連していつホストが受け取ったかをも含むのが望ましい。順序性は各要求された動作毎に増加していく動作シーケンス・ナンバによって、又は時刻スタンプによって、又は何か他の手段によって表示されても良い。この指標はキューの中の古くなった動作に対してある優先順位を与えるために用いることができる。
【００５５】
好適な実施例に於いて、以下に述べられるシーク時間見積に用いられる各種テーブル２２５〜２２８はドライブ動作中は揮発性ＲＡＭの中にあるが、それらは最適動作のために必要なので、ディスクの予備エリアに不揮発な方法で記憶され、電源投入時にディスクからＲＡＭへとロードされる。動的なテーブルも又、動的な内容を保存するために周期的にディスクに貯えられる。
【００５６】
以下で述べられる種々のテーブルや計算は、ＳＩＤの数で時間を表している。ディスクは一定速度で回転し、又ＳＩＤはディスク面上円周方向に等間隔に配置されているので、トランスデューサ・ヘッドは一定の時間間隔でＳＩＤ上を通過し、従って時間はＳＩＤの数として測定されることに気が付くであろう。この測定値は、動作相互間のレイテンシ時間に直接関係付けられるので、便利である。
【００５７】
図３は公称シーク時間テーブル２２５の一般構造を概念レベルで示したものである。公称シーク時間テーブル２２５は複数のエントリを含んでおり、各エントリはシーク時間３０１及び対応する最大シーク長３０２を含んでいる。公称シーク時間テーブル２２５は各シーク時間に対して、シーク時間に対応する理想的な最大（「公称」）シーク長を表すように意図されている。シーク長は、シーク前のアクチュエータ位置のトラック・ナンバとシーク動作でアクチュエータが動いていく望まれるデータ・セクタのトラック・ナンバとの差の絶対値であるので、シリンダ数又はトラック数で表される。シーク時間はＳＩＤ数で表される。
【００５８】
理想的又は公称シーク長は、ディスク・ドライブ１００に於いて任意のシーク時間内で完了することが期待される最善の可能性あるシーク動作長である。即ち任意のシーク時間に対して、（シーク時間に影響する任意のパラメータの組み合わせに対する）最大の可能性あるシーク長がテーブルの公称値として使用され、それ故この公称シーク時間テーブルのシーク長に対応する時間よりも小さい時間で任意の長さをシークすることは不可能であると仮定される。
【００５９】
好適な実施例に於いて、公称シーク長は（シーク時間を除いては）パラメータに無関係である。公称シーク時間テーブルのデータは種々の方法のいずれか、例えばドライブ動作の間に実際のシーク動作から得られるシーク時間統計データを周期的に収集して、これらの統計データからテーブル値を決定する方法、を用いて動的に較正され、更新されるのが望ましい。これに代わって、公称シーク時間テーブルはドライブ製造時点で個別のディスク・ドライブに対して較正された固定データを含んでいても良いし、テーブル値はディスク・ドライブの全モデルに対して同じなので、特定のディスク・ドライブモデルの設計時にディスク・ドライブを試験して決定される固定データを含んでいても良い。
【００６０】
好適な実施例に於いては実際上、一方は読み出し動作用、他方は書き込み動作用に、二つの別々な公称シーク・テーブル２２５が存在する。読み出し及び書き込みの両者に対して一つのテーブルを用いることも可能であるが、二つのテーブルを用いた方がシーク確率プロファイル・テーブル２２７の限られたストレージ空間をより有効に用いることができる。好適な実施例に於いては公称シーク時間を規定するためにテーブル２２５が用いられるが、これに代わって数学公式を用いて又は他の手段により規定しても良い。
【００６１】
図４はインデックス・テーブル２２６の一般構造を、概念レベルで示したものである。インデックス・テーブル２２６は重要なパラメータ値の任意のセットに対して対応したシーク動作に対する確率プロファイルを表すように意図したものである。対応した確率プロファイルは実際にはインデックス・テーブル２２６に於いて、シーク確率プロファイル・テーブル２２７へのインデックス値として表される。以下に説明するように、種々の重要なパラメータ値のうちの任意のものが用いられる。
【００６２】
・動作タイプ（読み出し又は書き込み）：シーク時間は、動作が読み出しか書き込みかに依存する。通常書き込み動作は読み出し動作よりもトランスデューサ・ヘッドがより高精度でトラック中心付近に位置決めされなければならない。この結果シークの終了に向けてトラック上で「整定」するための時間は書き込みの場合の方が長くなり、従ってシーク時間に差が生ずる。
【００６３】
・ヘッド・ナンバ：シーク時間は種々の理由のどれかにより、トランスデューサ・ヘッド及び対応するディスク面で変わってくる。ヘッド浮上高さ、トランスデューサ・ゲイン、トランスデューサの物理的な大きさ、記録面の性質、その他がそれぞれ変動し、確実に読み出され又は書き込まれる限度まで目標トラックに整定するのに必要な時間の大きさに影響を与えるであろう。
【００６４】
・シーク方向：アクチュエータに働く種々の力によって、シークが内側方向（ディスク中心方向）に向かっているか、外側方向（ディスクの外縁方向）に向かっているかに依存して、より高速に移動することがあり得る。
【００６５】
・半径方向のヘッド位置：アクチュエータは或る半径方向の位置又は領域に於いて、他の部分よりも速くシークすることがあり得るので、与えられた（トラック数での）シーク長は、横切るトラックの範囲によって時間の量が変わって実現され得る。例えばディスクの内径（ＩＤ）付近の１００トラック・シークはディスクの外経（ＯＤ）付近の１００トラック・シークよりも多くの時間を要するが、一方ではそのＯＤ付近の１００トラック・シークはＩＤとＯＤの中間での１００トラック・シークよりも多くの時間を要するであろう。アクチュエータは、必ずしも常に成立するわけではないが、一般に中央付近からＯＤに向かって最適な使用となるように設計されているので、この範囲でのシークがより高速になる傾向がある。アクチュエータ速度の物理的な差違、又はアクチュエータ回転角度１度あたりクロスするトラック数がディスク面を横切って変化するようにトラックがフォーマットされているという事実、又はこの両者によって速度変動が起るであろう。半径方向のヘッド位置は目標トラック又は初期トラックの位置によって、又は何か他の尺度によって表されよう。
【００６６】
・ドライブ温度：温度は空気の粘性に影響を与え、この粘性はアクチュエータの空気抵抗のみならずヘッドの浮上高さにも影響を与える。温度は潤滑剤の粘度、機械的な摩擦力及びその他の要因にも影響を与え、これらはシーク時間に影響を及ぼすであろう。
【００６７】
上記の重要なパラメータのリストは、用いられるであろうパラメータの一例に過ぎず、追加のパラメータが用いられても良いし、上に取り上げたパラメータを必ずしも全て用いる必要がないことは明らかである。図４で示されたインデックス・テーブル２２６では動作タイプ、ヘッド・ナンバ、シーク方向、半径方向ヘッド位置が重要パラメータとして用いられ、温度や他のパラメータはインデックス・テーブルを拡張することによって付加できることが明らかである。
【００６８】
インデックス・テーブル２２６は重要パラメータ値の各置換に対してインデックス・ナンバを特定している。このインデックス・ナンバはシーク確率プロファイル・テーブル２２７の（行で示された）エントリをインデックス付けしたものであり、このエントリは一つ以上の重要パラメータ値のセットに対する確率プロファイルを定義するものである。インデックス・テーブル２２６は図４では簡単のために二次元アレイとして概念的に示される。
【００６９】
例えば、行４０１はヘッド・ナンバが１（「Ｈ１」）であり、シーク方向がＩＤ方向に内側に向かっていて（「ＩＮ」）、動作タイプが読み出し（「Ｒ」）を意味する重要パラメータ値Ｈ１／ＩＮ／Ｒに対応している。行４０２はヘッド・ナンバが２であり、シーク方向が内側向きで、動作タイプが書き込みを意味する重要パラメータ値Ｈ２／ＩＮ／Ｗに対応している。列４０３はＲから２Ｒ−１の範囲にあるシリンダに存在するシーク目標のデータ・セクタに対応する。ここでＲは各領域の予め決められたシリンダ数である。
【００７０】
インデックス・テーブル２２６は一定サイズのシリンダ範囲を示しているが、可変サイズの範囲を用いる、即ちテーブル２２６の各列は異なったシリンダ数を有する範囲を表すことも可能である。行４０２と列４０３の交点にあるエントリ４０４は次の重要パラメータ、即ちヘッド・ナンバ２、内側向きシーク、書き込み動作、及び目標シリンダがＲから２Ｒ−１の範囲、に対するインデックス値を表す。エントリの「７」という値はシーク確率プロファイル・テーブル２２７の行へのインデックスを表しており、対応する行はこれらの重要パラメータ条件に対する確率プロファイルを定義している。
【００７１】
図５はシーク確率プロファイル・テーブル２２７の一般構造を概念レベルで示したものである。シーク確率プロファイル・テーブルはそれぞれが確率プロファイルを定義する（行で示された）複数のインデックス付けされたエントリを含んでいる。各エントリ又は確率プロファイルは、それにアクセスするのに用いられるインデックス・ナンバと関連付けられており、複数の公称値からの超過時間（ΔＳＩＤで表される）を含んでいる。
【００７２】
ここでそれぞれの超過時間は予想アクセス係数（図５では確率として示されている）と関連付けられている。任意のΔＳＩＤに対する予想アクセス係数は、以後更に詳細に説明されるようにシーク動作が（テーブル２２５の）任意のシーク動作長に対して公称ＳＩＤを超えたΔＳＩＤ内で完了することができない確率を表す。図５は予想アクセス係数を％（確率）で示しているが、実際には、図８に関連して以下に説明されるように、予想アクセス係数は別の形をとっても良い。
【００７３】
インデックス・テーブル２２６のインデックス値エントリの数（即ち重要パラメータ入力値の置換の数）はシーク確率プロファイル・テーブル２２７の確率プロファイル（行）の数よりもかなり大きいという事実は重要である。このことはシーク確率プロファイル・テーブル２２７の確率プロファイルを定義する各行が、通常重要パラメータ値の複数の置換に用いられることを意味する。そのようなやり方は、もし重要パラメータ値のそれぞれの置換に対してストレージ中で別個の確率プロファイルが必要であったならあり得たであろうよりよりも、より大規模な重要パラメータ値のセットを規定することを可能にする。
【００７４】
例えば、１２個のヘッドを有し、重要パラメータのために１６個の同心状の目標シリンダ範囲の領域に分割されているディスク・ドライブに於いて、インデックス・テーブル２２６では全部で７６８個のインデックス・エントリが必要となる。これらのエントリはシーク確率プロファイル・テーブル２２７の行を指すインデックスに過ぎないため、このような各エントリは単一バイト（又は半バイトすらもあり得る）で記憶され得るので、たった７６８バイトの記憶を必要とするのみである。しかしながら、もし確率プロファイルの別個の行がそのようなエントリの各々に必要とされるならば、記憶容量は各行のバイト数の７６８倍が必要となる。この問題は重要パラメータ値の数が増えると一層ひどくなる。シーク確率プロファイル・テーブル２２７の行の数は確率プロファイルの代表的なセットを例えば１６個保持すれば十分である。
【００７５】
図６は拡張テーブル２２８の一般構造を概念レベルで示している。拡張テーブル２２８はシーク確率プロファイル・テーブル２２７及びインデックス・テーブル２２６の両方又は一方の値を動的に更新するために用いられる。拡張テーブル２２８はシーク確率プロファイル・テーブル２２７と構造上は或る類似性を持っているが、超過時間は異なって表されるのが望ましい。拡張テーブル２２８は（行として示される）複数のインデックス付けられたエントリを含んでおり、それぞれのエントリはシーク確率プロファイルを定義する統計データを含んでいる。各エントリ又はシーク確率プロファイルは複数の超過時間（ΔＳＩＤで表される）を含んでおり、各超過時間は予想アクセス係数と関連付けられている。
【００７６】
動作統計データが、拡張テーブル２２８の超過時間エントリを増加させたり減少させたりすることによって動的に収集され、十分なテスト間隔の後、統計データがシーク確率プロファイル・テーブル２２７及びインデックス・テーブル２２６の両方又は一方を更新するのに用いられる。このプロセスは以下でより詳細に説明される。拡張テーブル２２８はあらゆるデータ・アクセス動作についての徹底的な統計データを収集するよりもむしろ、回転をベースとするパラメータ値のセットの標本を抽出するために用いられることが期待されているので、ほんの少数（例えば８個）のエントリを含んでいるだけで良い。
【００７７】
図３〜図６のテーブルの表現は説明を明確にするためのものであり、必ずしもメモリのデータ構成を表したものではない。これらのテーブルは対応する定義又はパラメータ値が与えられた場合に、テーブル・エントリを迅速に決定するのに役立つ種々の値と結びついた任意の方法で構成すれば良い。
【００７８】
＜動作＞
動作時にはプロセッサ２２１上で実行されるＲＯＭ２２２の制御プログラムはコントローラに予想アクセス時間（ＥＡＴ）を計算させ、キュー２２４からディスク動作を選択させる。インデックス・テーブル２２６からインデックスを見出すために与えられたデータ・アクセス動作の重要パラメータが用いられ、このインデックスは、シーク確率プロファイル・テーブル２２７の確率プロファイルを定義するエントリにアクセスする。インデックス値により指示される確率プロファイルは、与えられたデータ・アクセス動作に対する予想アクセス時間を計算するために、公称シーク時間と連動して用いられる。動作を実行してキューから除去する動作を選択するために、キュー２２４の異なったデータ・アクセス動作の予想アクセス時間が比較される。非同期プロセス（図示していない）はホストから受信時にキュー２２４にデータ・アクセス動作を追加する。
【００７９】
図７は、ディスク・コントローラ２０１がディスク１０１上にアクセスするためにキュー２２４からデータ・アクセス動作を選択するプロセスを示すハイレベル・フロー図である。図７に示すように、コントローラは先ずキュー全体を横断する任意の選択方法を用いてキューから動作を選択する（ステップ７０１）。次にこの動作の予想アクセス時間が計算される。予想アクセス時間を計算するステップは図７でステップ７０２としてハイレベルで示されており、詳細は図８で示される。
【００８０】
図８を参照すると、ディスク・コントローラは、選択されたデータ・アクセス動作に対するレイテンシ（ＳＩＤ数で）及びシーク距離（シリンダ数で）を、現在実行中のデータ・アクセス動作の位置とその位置を比較することによって決定する（ステップ８０１）。即ち、レイテンシは現在実行中のデータ・アクセス動作の終わりと選択されたデータ・アクセス動作の始めの間のＳＩＤ数であり、シーク距離は両者の動作のシリンダ・ナンバの差の絶対値である。
【００８１】
次にディスク・コントローラは公称シーク・テーブル２２５を参照することにより、与えられたレイテンシに対する公称シーク長（シリンダ数で）を決定する（ステップ８０２）。即ちこれは利用可能なレイテンシが与えられた場合の、最大の可能性あるシーク距離と考えられえる。
【００８２】
もし公称（最大）シーク長がシーク距離よりも小さい場合（ステップ８０３）、目標データ・セクタが既にヘッドを通過してしまっているので、ディスクが回転する前に目標データ・セクタへのシーク動作を完了させることは不可能となる。この場合、ヘッドは、目標データを読み出すにはその前に更に丸一回転待たなければならない。それ故に、ステップ８０３から「Ｙ（Yes）」分岐に入り、ディスク丸一回転のＳＩＤ数だけレイテンシが増やされる(ステップ８０４)。次に制御プログラムはステップ８０２に戻り、この新たなレイテンシ値に対して、公称シーク長を決定する。
【００８３】
公称シーク長がシーク距離と同等以上である場合、ステップ８０３から「Ｎ（No）」分岐に入る。次に既知のシーク距離が与えられると、既知のシーク距離に対応した公称シーク時間がテーブル２２５の逆方向テーブル検索によって決定される（ステップ８０５）。
【００８４】
次いでΔＳＩＤの値がレイテンシと公称シーク時間との差として計算される（ステップ８０６）。ΔＳＩＤ値はこのようにして、公称シーク値によって割り振られた時間内にシーク動作を遂行するという前提の下で、目標トラックにヘッドが待機しなければならない「余分の」時間を表す。
【００８５】
次いで、選択されたデータ・アクセス動作の重要パラメータに対応するインデック値がインデックス・テーブル２２６から求められる（ステップ８０７）。即ち、図４に示したテーブルに於いて、ヘッド・ナンバ、シーク方向、動作タイプ、及び目標トラックのシリンダ範囲がテーブル２２６の対応するインデックス値を見出すために用いられる。
【００８６】
次にステップ８０７で得られたインデックス値はシーク確率プロファイル・テーブル２２７のプロファイル（エントリの行）を参照するために用いられる。このプロファイルから、ステップ８０６で計算されたΔＳＩＤ値に対応する予想アクセス係数が決定される（ステップ８０８）。
【００８７】
次いで、選択されたデータ・アクセス動作の予想アクセス時間（ＥＡＴ）が次式に従って計算される（ステップ８０９）。
ＥＡＴ＝レイテンシ＋（ミスの確率×１回転）              （１）
レイテンシはステップ８０１、８０３及び８０４で導かれる。この式の残りの部分は予想アクセス係数から、予想アクセス係数がメモリ中で表された形式に従って導かれる。予想アクセス係数は単純にミスの確率（図５に示すように）で表すことができ、この場合公式の残りの部分はテーブルからの予想アクセス係数とディスク一回転のＳＩＤ数を乗じて導かれる。しかしながら、必要とされる繰り返し計算の数を減らすために、予想アクセス係数がミスの確率とディスク一回転のＳＩＤ数の積としてメモリに貯えられることが望ましい。この場合は予想アクセス係数はレイテンシに単純に加えられて、ＥＡＴを得ることができる。
【００８８】
更に別の実施例として、テーブル２２７は、ＳＩＤ数が（列へのインデックスである）独立変数であり、予想アクセス係数又は確率は（行にある値である）従属変数である、「Δ予想アクセス時間」の形式で表されても良い。この代案の更なる変形として、ミスの数とアクセスの数のペアの値として予想アクセス係数を記憶することが可能である。ここでミスの確率はミスとアクセスの比として計算され、次いでディスク一回転のＳＩＤ数を乗じて求められる。この代案はより多くの計算を必要とするが、アクセス・ミスの統計データがすべてのディスク・アクセスに対してずっと継続して保たれることを可能にする。
【００８９】
次に、選択したアクセス動作について計算したＥＡＴにより、コントローラはキューの中に追加のアクセス動作が存在するかどうか決定し（ステップ７０３）、そしてもしそうであれば別の動作を選択しそのＥＡＴを計算するためにステップ７０１に戻る。すべての待機状態にある動作のＥＡＴが計算し終わったときに、ステップ７０３から「Ｎ」分岐に入る。
【００９０】
次いでコントローラは現在実行中の動作の後で実行待機状態にある動作を選択する（ステップ７０４）。ＥＡＴ値を何らかの方法で用いた種々のアルゴリズムのうちの任意のものが使われよう。アルゴリズムの単純な例として、コントローラはあらゆるケースの中で最小のＥＡＴを有する動作を選択することができ、同数の場合はキューの中で最も古い動作を選択することができる。しかしながら、このアルゴリズムは或るタイプの動作を飢餓状態に置く傾向がある。例えばアクチュエータは、より小さなＥＡＴを持っているＯＤ付近の多くのデータ・アクセス動作を実行しようとするため、ディスクのＩＤ付近の動作は長時間キューに留まったままになるであろう。
【００９１】
別のアルゴリズムはＥＡＴとキュー中の時間の両者がそれぞれに対して相対的な重み付けを与えることによって考慮され、その結果、ある場合にはより大きなＥＡＴを持った陳腐な動作が選択され得るような、相対的な優先順位を設けるであろう。
【００９２】
更に複雑な、追加の要因を考慮したアルゴリズムを用いることもできる。そのような追加の要因の例としては（ａ）書き込みよりも読み出しを有利に取り扱う、（ｂ）無視されがちなディスク縁部（ＩＤ又はＯＤ）付近の動作を有利に扱う、（ｃ）（スイープを助長するために）前のシークと同じシーク方向を維持することを有利に扱う、（ｄ）バッファが殆ど満杯の場合短い動作を有利に扱う、等があるであろう。
【００９３】
最後に、ここで述べられたアルゴリズムはまさしく次の動作のみを見込んでいるけれども、最適な動作シーケンスを見つけるために現在進行中の動作から二つ以上先の動作を先読みすることも可能である。
【００９４】
次の動作を選択した後、コントローラは現在のデータ・アクセスが完了するのを待つ（ステップ７０５）。もしデータ・アクセスの統計データが（拡張テーブル２２８又はどこかで）継続しているのであれば、これらの統計データは現在のデータ・アクセス動作の結果（ミスか又は成功か）に依存して更新される（ステップ７０６）。このステップは、統計データが必ずしも生成されるわけでないので、図７で破線のボックスで表されている。
【００９５】
次いで、ステップ７０４で選択されたデータ・アクセス動作は、実行のために送り出され、キュー２２４から除かれる（ステップ７０７）。次いでコントローラは次に実行する動作を決定するためにステップ７０１に戻る。
【００９６】
上述のテーブルはディスク・ドライブ１００に対して個別に、且つ動的に較正されるのが望ましい。そのようにするためのいくつかの方法が採用され得る中でここにその二つを説明する。
【００９７】
好適な実施例に於いて、シーク確率プロファイル・テーブル２２７の値はディスク・ドライブ設計者によって決定され、ディスク・ドライブの特定のモデルでは固定値である。即ちドライブ設計者はテーブル２２７に含めるために確率プロファイルの代表サンプルを実験的に決定する。次いで、ドライブの較正は（前で述べたように）公称シーク時間テーブル２２５に対する最大シーク長の値を決定し、又、テーブル２２７の適当な行を指す、インデックス・テーブル２２６のインデックス値を決定することになる。
【００９８】
インデックス値の決定は拡張テーブル２２８を用いて達成できる。特に、重要パラメータ値のセットは一時的に拡張テーブル２２８の行の一つに割り当てられ、重要パラメータのセットに対するΔＳＩＤ値は、十分な数のデータ・アクセスの試みからデータを収集することによって実験的に決定される。
【００９９】
好適な実施例に於いてはΔＳＩＤ値はテーブルの各々の確率に対する収斂公式を用いた収斂によって決定される。即ち、７５％ミスの確率に対応する列のエントリに於いて、ΔＳＩＤ値が（シークをΔＳＩＤ値内に完了しない）ミスとなる重要なパラメータ・セットのデータ・アクセス動作の各試み毎に０．２５μだけ増やされ、（シークをΔＳＩＤ内に完了する）成功となる各データ・アクセス動作に対して０．７５μだけ増やされる。
【０１００】
ここでμは或る仮の単位である。（適当な可変係数による）同様な手順が、他の列のエントリの各々に対して用いられる。十分な数の試みに対して、各列のΔＳＩＤの値はΔＳＩＤの実験的な決定値である安定値に収斂するであろう。仮の単位μはより大きな値から出発して、急速に収斂させるために次第に小さくするか、又は一定の大きさでも良い。μはテーブルを収斂させるために最終的に１ＳＩＤ未満相当になるものと予想される。
【０１０１】
図６の説明に於いて、拡張テーブルの値は浮動小数点値で示されているが、計算を簡略化するためにこれらはＳＩＤ値を表す整数に乗数を掛けて、収斂が完了した後共通の乗数で割った整数であって良い。一旦拡張テーブル２２８の行のΔＳＩＤ値の収斂のために十分な時間を費やしたなら、拡張テーブルの行のこれらの値はシーク確率プロファイル・テーブル２２７の各行と比較される。重要なパラメータ・セットに対する適当なインデックス値として、最も近く一致したものが選ばれ、このインデックス・ナンバは、拡張テーブル２２８の行の統計データを生成するために用いられる重要パラメータ値のセットに対応したインデックス・テーブル２２６に組み入れられる。
【０１０２】
拡張テーブル２２８は複数の重要パラメータの同時の置換のために収斂データの収集を可能にする複数の行を有するが、拡張テーブル２２８の行の数は可能な置換の数よりも少ないものと予想される。それ故に、収斂データは回転ベースの種々の置換に対して収集され、これは必ずしも等しくない。
【０１０３】
好適な実施例に於いて、アクセス頻度に基づく置換が拡張テーブルの拡張のために選ばれる。即ち、各置換に対して実際に遂行されるデータ・アクセス動作のカウントが蓄積され、最も頻繁に遂行された置換が、拡張テーブルに於いてより頻繁に更新される。これは種々のアルゴリズムの任意のものに従ってなされるが、単純な実施例では最大のカウントを有する置換が拡張テーブルで収斂データを収集するために選択され、選択された置換のカウントはリセットされる。これに代わって、総当り制による拡張のための置換を選択することも、又はその他の方式により選択することも可能である。
【０１０４】
較正のための他の実施例では、シーク確率プロファイル・テーブル２２７も又、動作統計データを用いて較正される。好適な実施例と同様、ΔＳＩＤ値は重要パラメータの種々の置換に対する拡張テーブル２２８の収斂によって、動的に決定される。しかしながら、特定の重要パラメータ置換のためには実験的に決定した値がテーブル２２７の行に組み入れられる。行が重要パラメータ置換の代表セットにより埋められると、残りの置換は、前に埋められた行に対して行われたのと同じ方法で、埋められた行に適合がなされる。動的なベースで行の値を連続的に調整することが可能である。
【０１０５】
上記較正手順の更なる変形又は異なった較正手順が可能である。例えば、設計時に固定した初期値をすべてのディスクにロードする代わりに、ドライブを個別に較正することもできるし、製造プロセスの一部として顧客に出荷する前にロードすることもできる。その他の変形も可能であろう。
【０１０６】
見積アクセス時間の計算及びキューにある次の動作の選択に無関係のディスク・ドライブ動作は上記では詳細には説明されていないし、図にも示されていないのは明らかである。実際ディスク・ドライブは通常タスクの実行を複数同時に遂行するが、キューからの動作の選択は一つのみである。通常のディスク・ドライブは多くの異なったタイプのコマンドに応答し、応答挙動は非常に複雑で、ホストとの情報交換は多くのステップを必要とする。これらの詳細は説明を明確にするために、ここでは説明を省いている。
【０１０７】
＜付加的な考慮事項＞
一般に、本発明で説明した実施例を実装するために実行されるルーチンは、オペレーティング・システムの一部として又は特定のアプリケーション、プログラム、オブジェクト、命令のモジュール又はシーケンスとして実装されるにせよ、ここでは「プログラム」又は「制御プログラム」と呼ぶ。
【０１０８】
プログラムは通常本発明と密接に結びついたコンピュータ・システムに於ける装置又はシステムの中の一つ以上のプロセッサによって読み取られ、実行されると、これらの装置又はシステムに対して本発明の種々の側面を具体化するステップを実行し又は要素を生成するのに必要なステップを遂行させる命令から成る。
【０１０９】
更に本発明はディスク・ドライブのようなディジタル装置が完全に機能を果たすという状況の中で説明してきたし、これから後も説明していくが、本発明の種々の実施例がいろいろな形態のプログラム・プロダクトとして配布されることができ、又本発明は、配布を実際に行うために用いられる特定のタイプの信号を担うメディアに関係なく等しく適用される。
【０１１０】
信号を担うメディアの例には、揮発性及び不揮発性のメモリ・デバイス、フロッピーディスク（登録商標）、ＨＤＤ、ＣＤ−ＲＯＭ、ＤＶＤ、磁気テープ、無線通信リンクを含めたディジタル及びアナログ通信リンクのような伝送タイプのメディア、のような記録可能なタイプのメディアを含むが、これらに限られるものでない。信号を担うメディアの例が図１ではディスク面１０２として、図２ではＲＯＭ２２２として示されている。
【０１１１】
与えられたパラメータの組み合わせに対するミス又は成功の確率に基づいた特定のアクセス時間見積アルゴリズムが開示されてきたが、他のアルゴリズムもシーク時間を見積る技術に於いて知られており、本発明と密接に結びついていて、重要パラメータの置換からインデックス・テーブルを用いてアクセスできるシーク確率プロファイル・テーブルは、好適な実施例のＴＲＥＡＴアルゴリズムで用いられるミス又は成功の確率以外であって、アクセスすることで見積が構築され得る値を含むものであっても良い。特に「Δ予想アクセス時間」アルゴリズムを用いることが代案として可能であろう。
【０１１２】
好適な実施例に於いて、ここで述べられたサーボ・トラック・フォーマットは回転リジッド・ディスク・ドライブ装置で用いられていて、そこではディスクはドライブに恒久的に取り付けられている。しかしながら、そのようなフォーマットは代案としてリジッド又はリジッドでないサブストレートを有し、データがその面のトラックに記録される、リムーバブル・ディスクに於いて用いることができる。
【０１１３】
好適な実施例に於いて、データ記録トラックは同心状である。しかし、既知の技術としてトラックはスパイラルトラックにすることもできる。
【０１１４】
本発明の特定の実施例が、或る代案と共に開示されたが、形式や細部の付加的な変化が特許請求の範囲内でなされ得ることが当業者により認識されるであろう。
【図面の簡単な説明】
【０１１５】
【図１】本発明の好適な実施例に従って用いられる回転磁気ディスク・ドライブ・ストレージ装置を簡単に表した図である。
【図２】好適な実施例に従った、ディスク、ドライブ、ストレージ装置の主要な電子的要素を示したハイレベル・ブロック図である。
【図３】好適な実施例に従った、待機状態にある動作のアクセス時間を見積るための公称シーク時間テーブルの構造を示す図である。
【図４】好適な実施例に従った、待機状態にある動作のアクセス時間を見積るためのインデックス・テーブルの構造を示す図である。
【図５】好適な実施例に従った、待機状態にある動作のアクセス時間を見積るためのシーク確率プロファイル・テーブルの構造を示す図である。
【図６】好適な実施例に従った、シーク・プロファイル・データを動的に更新するための拡張テーブルの構造を示す図である。
【図７】好適な実施例に従った、待機状態にあるデータ・アクセス動作を実行のために選択するプロセスを示すハイレベル・フロー図である。
【図８】好適な実施例に従った、任意のデータ・アクセス動作に対する予想アクセス時間を計算するプロセスを示すフロー図である。
【符号の説明】
【０１１６】
１００…ディスク・ドライブ、１０１…ディスク、１０２…記録面、
１０３…スピンドル、１０４…ベース、１０５…アクチュエータ・アセンブリ、
１０６…シャフト、１０７…電磁モータ、１０８…サスペンション・アセンブリ、
１０９…スライダ、１１０…トランスデューサ、１１２…回路基板、
２０１…コントローラ、２０２…チャネル、２０３…サーボ・コントローラ、
２０７…アクチュエータ駆動回路、２０８…スピンドル・モータ駆動回路、
２０９…スピンドル・モータ、２１０…読み出しアンプ、
２１１，２１３…マルチプレクサ、２１２…書き込み駆動回路、２２１…プロセッサ、
２２４…キュー、２２５…公称シーク時間テーブル、２２６…インデックス・テーブル、
２２７…シーク確率プロファイル・テーブル、２２８…拡張テーブル、
３０１…シーク時間、３０２…シーク長。
【図１】
2004152468.tif 000003
【図２】
2004152468.tif 000004
【図３】
2004152468.tif 000005
【図４】
2004152468.tif 000006
【図５】
2004152468.tif 000007
【図６】
2004152468.tif 000008
【図７】
2004152468.tif 000009
【図８】
2004152468.tif 000010