(57)【要約】【課題】リード／ライトコマンドの実行態様に応じてヘッドアクチュエータを効率的に動作させて、データ処理の高速化を図ることを目的とする。【解決手段】ディスク媒体１５の領域１５ａ，１５ｂごとに複数のアクチュエータ２４，２５（ヘッド２４ａ，２５ａ）を配置する。アクチュエータ制御部は各領域のアクチュエータの動作を個々に制御する。シーク動作によってヘッドが指定範囲の途中に落ちた場合には、その先頭位置まで回転待ちせずに落下地点からの後半部分を先読みする。現コマンドに続く所定のスキップコマンドを実行する場合には、現コマンドの実行ヘッドとは別の第２のヘッドを用いる。データライト範囲が複数トラックに跨る場合には、複数のヘッドで並列処理を行なう。ライト動作がいったん中断して再開した場合には、複数のヘッドの中で、中断時のデータライト部分までの回転待ち時間が少ないほうのヘッドを用いる。【選択図】図１
2007328912.tif 000002
【特許請求の範囲】
【請求項１】
ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されているコマンドの指定範囲への、第１のアクチュエータで駆動される第１のヘッドによるアクセス動作の終了時点を基準として、複数の処理待ちコマンドに対する、第２のアクチュエータで駆動される第２のヘッドによる新たなアクセス時間を当該処理待ちコマンドごとに順次求め、求められたアクセス時間が最短となる処理待ちコマンドを当該第２のヘッドの次コマンドとして選択するリオーダリング手段と、
選択された前記次コマンドに基づく第２の前記アクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、を備えた
ことを特徴とするディスク装置。
【請求項２】
ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されている第１のコマンドに後続する第２のコマンドについて、前記第１のコマンドを実行中の第１のヘッドおよび第１のアクチュエータによる前記第２のコマンドの指定範囲へのアクセス時間と、第２のヘッドおよび第２のアクチュエータによる前記指定範囲へのアクセス時間とを比較し、前記第２のヘッドによるアクセス時間の方が短いと判断された場合、前記第２のヘッドに対して前記第２のコマンドを選択するリオーダリング手段と、
前記選択された第２のコマンドに基づく第２のアクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、を備えた
ことを特徴とするディスク装置。
【請求項３】
請求項２に記載のディスク装置において、
前記リオーダリング手段は、前記第１のコマンドによる指定領域への前記第１ヘッドのリード開始時点を基準として、前記第１のヘッドによるリード時間とリード処理終了時点における前記第１のヘッド位置からの前記第２のコマンドに対応するアクセス時間とを足し合わせた時間と、前記第２のヘッドの前記開始時点における位置からの前記第２のコマンドに対応するアクセス時間とを比較する、
ことを特徴とするディスク装置。
【請求項４】
請求項２に記載のディスク装置において、
前記リオーダリング手段は、前記第１のコマンドに対する前記第１のヘッドによるライト動作の終了時点を基準として、前記第１のヘッドのライト終了位置からの前記第２のコマンドに対応するアクセス時間と、前記第２のヘッドによる前記終了時点から前記第２のコマンドに対応するアクセス時間とを比較する
ことを特徴とするディスク装置。
【請求項５】
請求項３または４に記載のディスク装置において、
前記アクセス時間は、前記第１のアクチュエータあるいは前記第２のアクチュエータによる前記第２のコマンドに対応する目的トラックヘのシーク時間と、前記第１のヘッドあるいは前記第２のヘッドが前記第２のコマンドに対応する目的セクタに達するまでのディスク媒体の回転時間とを足し合わせた時間である、
ことを特徴とするディスク装置。
【請求項６】
ホストから送られるリード／ライトコマンドを実行するディスク装置において、
ディスク媒体と、
前記ディスク媒体へのデータ読み出しおよび書き込みを行うヘッドと、
前記ヘッドが取り付けられたアクチュエータと、
前記アクチュエータを動作させるアクチュエータ制御手段と、
受信したコマンドに応じて前記アクチュエータ制御手段により前記アクチュエータを目的トラックにシークさせた際に、前記ヘッドが前記コマンドによる指定範囲内にあるか否かを判定し、前記ヘッドが前記指定範囲の中間位置に位置すると判定された場合には、前記ヘッドがある位置から前記指定範囲の終わりまでの前記ヘッドによるアクセスを行い、前記指定範囲の先頭まで前記ディスク媒体が回転するのを待って前記指定範囲の先頭からの前記ヘッドによるアクセスを行う制御部と、を備えた、
ことを特徴とするディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク装置に関し、特にヘッドおよびそのアクチュエータの動作に基づきリード／ライトコマンドを実行するディスク装置を対象とする。
【０００２】
本明細書においては、「リード／ライト」の用語を「リードまたはライト（リードおよびライトを含む）」の意で用い、また「コマンド」の用語を「各種の処理・動作に対する何らかの指示」の意で用いる。
【０００３】
ディスク装置はデータの記憶手段として広く用いられており、近年では、ディスク機構部の精細化・省電力化が進み、ディスク装置内に複数本のアクチュエータを実装できるようになってきた。
【０００４】
このような状況の下、例えばホストから送られるリード／ライトコマンドの実行態様に応じて単一または複数のアクチュエータを効率的に（連携）動作させて、ディスク装置全体としてのデータ処理の高速化を図ることが望ましく、本発明はこの要請に応えるものである。
【背景技術】
【０００５】
図１３は、従来のリード／ライトコマンド処理を示す説明図であり、時間の経過を横方向にとっている。
【０００６】
このコマンド処理では、
・現コマンド（リードコマンド）のリード動作終了後に次コマンド（ライトコマンド）の目的トラックへのシーク動作を開始し、
・各コマンドのリード／ライト動作が終了するまでリオーダリング処理を実行している。
【０００７】
リオーダリング処理とは、ホストからランダムに到着するリード／ライトコマンドをキューに蓄積して、このコマンド群から、ヘッド（アクチュエータ）の現コマンド実行後の新たなアクセス時間が最短と予想される指定範囲のコマンドを選択することである。
【０００８】
図１４は、従来のシーケンシャルライトコマンド処理を示す説明図であり、時間の経過を横方向にとっている。
【０００９】
この処理は、ライトコマンドが指定する範囲のディスク領域（セクタ領域）にライトデータ１乃至４を連続して書き込むことである。ＲＳＰ１〜ＲＳＰ３はステータス応答を示している。
【００１０】
図示の場合、ホストからのライトデータ３のバス転送（データアウト）の開始が遅れたため、ディスク装置側でデータ２の直後にデータ３を書き込むことができずに、ヘッドの回転待ちが発生したことを示している。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来のディスク装置の場合、リード／ライト対象域に対するヘッド（アクチュエータ）の動作が画一的である。例えば上述のようにデータのバス転送が中断してから再開したときにも、もっぱら元のヘッドを用いて、中断時のライト領域に続く部分にデータの書き込みを行なっている。
【００１２】
ヘッド動作態様のこのような画一性のため、上述のデータ転送再開後の書き込みに際しても最大でトラック１周分の回転待ちが発生するなど、リード／ライトコマンドの要処理時間の短縮化を図る上でのいわば障害原因に対応できていないという問題点があった。
【００１３】
そこで、本発明では、リード／ライトコマンドの実行態様に応じて単一または複数のヘッドアクチュエータを効率的に（連携）動作させて、ディスク装置全体としてのデータ処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、この課題を次のようにして解決する。
（１）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されているコマンドの指定範囲への、第１のアクチュエータで駆動される第１のヘッドによるアクセス動作の終了時点を基準として、複数の処理待ちコマンドに対する、第２のアクチュエータで駆動される第２のヘッドによる新たなアクセス時間を当該処理待ちコマンドごとに順次求め、求められたアクセス時間が最短となる処理待ちコマンドを当該第２のヘッドの次コマンドとして選択するリオーダリング手段と、
選択された前記次コマンドに基づく第２の前記アクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、
を備える。
（２）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されている第１のコマンドに後続する第２のコマンドについて、前記第１のコマンドを実行中の第１のヘッドおよび第１のアクチュエータによる前記第２のコマンドの指定範囲へのアクセス時間と、第２のヘッドおよび第２のアクチュエータによる前記指定範囲へのアクセス時間とを比較し、前記第２のヘッドによるアクセス時間の方が短いと判断された場合、前記第２のヘッドに対して前記第２のコマンドを選択するリオーダリング手段と、
前記選択された第２のコマンドに基づく第２のアクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、
を備える。
（３）上記（２）において、
前記リオーダリング手段は、
前記第１のコマンドによる指定領域への前記第１ヘッドのリード開始時点を基準として、前記第１のヘッドによるリード時間とリード処理終了時点における前記第１のヘッド位置からの前記第２のコマンドに対応するアクセス時間とを足し合わせた時間と、前記第２のヘッドの前記開始時点における位置からの前記第２のコマンドに対応するアクセス時間とを比較する。
（４）上記（２）において、
前記リオーダリング手段は、
前記第１のコマンドに対する前記第１のヘッドによるライト動作の終了時点を基準として、前記第１のヘッドのライト終了位置からの前記第２のコマンドに対応するアクセス時間と、前記第２のヘッドによる前記終了時点から前記第２のコマンドに対応するアクセス時間とを比較する。
（５）上記（３）または（４）において、
前記アクセス時間は、前記第１のアクチュエータあるいは前記第２のアクチュエータによる前記第２のコマンドに対応する目的トラックヘのシーク時間と、前記第１のヘッドあるいは前記第２のヘッドが前記第２のコマンドに対応する目的セクタに達するまでのディスク媒体の回転時間とを足し合わせた時間である。
（６）ホストから送られるリード／ライトコマンドを実行するディスク装置において、
ディスク媒体と、
前記ディスク媒体へのデータ読み出しおよび書き込みを行うヘッドと、
前記ヘッドが取り付けられたアクチュエータと、
前記アクチュエータを動作させるアクチュエータ制御手段と、
受信したコマンドに応じて前記アクチュエータ制御手段により前記アクチュエータを目的トラックにシークさせた際に、前記ヘッドが前記コマンドによる指定範囲内にあるか否かを判定し、前記ヘッドが前記指定範囲の中間位置に位置すると判定された場合には、前記ヘッドがある位置から前記指定範囲の終わりまでの前記ヘッドによるアクセスを行い、前記指定範囲の先頭まで前記ディスク媒体が回転するのを待って前記指定範囲の先頭からの前記ヘッドによるアクセスを行う制御部と、
を備える。
【００１５】
本発明は、このように第１のヘッドのリード／ライト動作に関連して、第２のヘッドに対するそれまでのリオーダリング処理を終えて当該ヘッドのシーク動作を開始するので、全体のデータ処理時間が短くなる。
【００１６】
また、現在実行されている第１のコマンドに後続する第２のコマンドの指定範囲へのアクセス時間を、第１のコマンドを実行中の第１のヘッドによる場合と、当該ヘッドとは別の第２のヘッドによる場合とで比較し、当該アクセス時間が短いと判断された方のヘッドに対して第２のコマンドを選択するので、連続コマンド全体の処理時間が短くなる。
【００１７】
また、例えばリードコマンドに基づくシーク動作によってヘッドが指定範囲の途中に落ちた場合には、その先頭位置まで回転待ちせずにヘッド落下地点からの指定範囲後半部分を先読みしているので、シーク終了後のヘッド動作時間が短くなる。
【００１８】
また、後述のように、現コマンドに続く所定のスキップコマンドを実行する場合には、現コマンドで使用の第１のアクチュエータとは別の第２のアクチュエータを用いているので、現コマンドのデータのリード／ライト終了から次コマンドのデータのリード／ライト開始までの経過時間が短くなる。
【００１９】
また、後述のように、リード／ライトコマンドの指定範囲が複数のトラックに跨る場合には、複数のヘッドを用いていわば並列処理を行なうので、リード／ライト対象のデータ全体の処理時間が短くなる。
【００２０】
また、後述のように、リード／ライト動作がいったん中断して再開した場合には、複数のヘッドの中で、中断時のデータのリード／ライト部分までの回転待ち時間が少ないほうのヘッドを用いているので、動作再開後のデータのリード／ライト開始までの経過時間が短くなる。
【００２１】
本発明は、このような特徴を持つディスク装置を対象とし、さらには後述のように当該特徴に対応した動作をディスク装置に実行させるためのプログラムを記憶したコンピュータ読取り可能な記録媒体も対象にしている。
【００２２】
本発明は、磁気ディスク媒体や光ディスク媒体，光磁気ディスク媒体などの各種のディスク媒体を対象とする。
【発明の効果】
【００２３】
本発明は、このように、リード／ライトコマンドの実行態様に応じて単一または複数のアクチュエータを効率的に（連携）動作させているので、ディスク装置全体としてのデータ処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００２４】
図１乃至図１２を参照して本発明の実施の形態を説明する。
図１はディスク装置の全体構成を示す説明図であり、
１はデータのリード／ライト範囲を指定するアドレス（論理アドレス）を含むコマンドをホストから受け取って、これに基づくディスク媒体のリード／ライト処理を実行するディスク装置，
１１はセグメントバッファリードライト手段，
１２はホストからライトコマンドとは別に送られるライトデータやディスク媒体のリードデータを保持するセグメントバッファ，
１３および１４は媒体リードライト手段，
１５はリード／ライト対象域としての同心円状のトラック（シリンダ）を有し、各トラックはリード／ライト処理の単位領域としてのセクタ（例えば５１２バイトのデータ長に相当）に区分けされたディスク媒体，１５ａはディスク媒体の外側領域，１５ｂはディスク媒体の内側領域，
１６は未実行のリード／ライトコマンドを保持したコマンドキュー，
１７はコマンドキュー１６に保持されたコマンドの中で、後述のアクチュエータごとに次のアクセス時間（現コマンド実行時の最終リード／ライトセクタからのアクセス時間）が最短となるコマンドを選択し、また、これが連続アクセスコマンドであるかどうかの判定を行なうリオーダリング処理部，
１８は各アクチュエータについてのその現コマンドの最終アドレス（最終セクタ番号），
１９は後述の各種リード／ライト処理を実行するコマンド実行部，
２０はデータ書込みの指定範囲が次のトラックに跨るライトコマンドの場合に、ライトデータの前半部分と後半部分とを別々のセグメントとして保持するため、次のトラックへの切換わりデータ部分を特定するライトデータ格納セグメント切換設定部，
２１はホストからのライトデータをセグメントバッファ１２に保持するときや、ホストの要求データをセグメントバッファ１２から読み出すときのポインタ位置を制御するホスト対応のポインタ制御部，
２２はディスク媒体１５からのリードデータをセグメントバッファ１２に保持するときや、ディスク媒体１５へのライトデータをセグメントバッファ１２から読み出すときのポインタ位置を制御するディスク対応のポインタ制御部，
２３はコマンド実行部１９の指示に基づいて動作するアクチュエータ制御部，
２４は外側領域１５ａを径方向に移動するアクチュエータ，２４ａはこのアクチュエータの先端部に取り付けたヘッド，
２５は内側領域１５ｂを径方向に移動するアクチュエータ，２５ａはこのアクチュエータの先端部に取り付けたヘッド，
をそれぞれ示している。
【００２５】
上述の「次のアクセス時間が最短となるコマンド」としては、現コマンド実行終了後のヘッド位置から目的トラックまでのシーク時間に先頭目的セクタまでの回転待ち時間を加えた合計時間が最短となるコマンドを選択する。
【００２６】
ディスク装置１は、コマンド中の論理アドレス（指定範囲）を、ディスク媒体１５のトラック・セクタ番号に対応付けるためのアドレス変換テーブル（図示省略）を有している。
【００２７】
リオーダリング処理部１７およびコマンド実行部１９は、必要に応じてこのアドレス変換テーブルを参照し、リード／ライトコマンドにより指定された論理アドレスに対応のトラック・セクタ番号を求める。
【００２８】
ディスク媒体上での、ヘッド位置や、コマンドの指定範囲（先頭位置）とヘッドとの位置関係などを求めるに際しては、このトラック番号やセクタ番号を用いる。
【００２９】
また、ディスク媒体の各トラックには２〜３セクタおきに位置検出用のサーボセクタが設けてあり、現在のヘッド位置はこのサーボセクタの検出信号に基づいて特定される。
【００３０】
ディスク媒体１５の外側領域１５ａおよび内側領域１５ｂのそれぞれには１または２以上のアクチュエータ２４，２５を設けている。
【００３１】
アクチュエータ制御部２３はこれらアクチュエータの移動態様を個々に制御しており、後述のようにディスク媒体１５の同一トラックで複数のヘッドを動作させることもできる。
【００３２】
図２は、コマンド処理とリオーダリングとの関係を示す説明図であり、時間の経過を横方向にとっている。
【００３３】
フェーズＴ１では、
・アクチュエータＡを作動させて、現コマンドｘの指定範囲である目的セクタへのアクセス（目的トラックへのシークとこれに続く目的セクタまでの回転待ち）を実行し、
・アクチュエータＢに対するリオーダリング処理の実行により次コマンドｙを選択している、このとき、当該コマンドの（シーク＋回転待ち）の時間（Ｔ２の予想値）を計算する。なお、最初のフェーズではリード／ライトを実行しない。
【００３４】
フェーズＴ２では、
・アクチュエータＡのリードデータをセグメントバッファ１２に保持した上でホスト側に転送し、
・現コマンドｘの指定範囲に続くセクタ部分のデータをアクチュエータＡで読み取ってセグメントバッファ１２にプリフェッチし、
・アクチュエータＢを作動させて、次コマンドｙの指定範囲の先頭位置である目的セクタへのアクセス（目的トラックへのシークとこれに続く目的セクタまでの回転待ち）を実行し、
・アクチュエータＡに対するリオーダリング処理の実行により次々コマンドｚを選択している。
【００３５】
ここで、次コマンドｙに関するリオーダリング処理においては、
・アクチュエータＢの、（アクチュエータＡの）リード開始時のヘッド位置からの当該コマンドｙに対応の（シーク＋回転待ち時間）が、
・アクチュエータＡの、リード時間＋「リード終了時のヘッド位置からの当該コマンドｙに対応の（シーク＋回転待ち時間）」よりも短い、
ものと判断している。
【００３６】
次々コマンドｚに関するリオーダリング処理においては、プリフェッチ後の当該アクチュエータのヘッド位置を次コマンドｙのＴ２（予想値）に基づいて特定した上で、このヘッド位置から次々コマンドｚの先頭セクタまでの（シーク＋回転待ち時間）を計算する。
【００３７】
次コマンドｙのようなライトコマンドのときには、当該コマンドの目的トラックへのシーク開始時にライトデータの転送要求をホストに送信する。そして、ホストから受け取ったライトデータを目的セクタに書き込む。
【００３８】
このようにして、
・目的セクタへのアクセス済の第１のアクチュエータによるリード／ライト
・第１のアクチュエータに対するリオーダリング
・目的セクタに対する第２のアクチュエータのアクセス
の各処理をいわば並列的に繰り返す。
【００３９】
これにより、複数のリード／ライトコマンドを連続的に実行する場合の要処理時間の短縮化を図っている。
【００４０】
図示のように、リオーダリング処理の単位は選択コマンドに対するシークおよび回転待ちの動作時間である。
【００４１】
フェーズＴ２の終了時点は、図示のような回転待ちの終了時ではなくライトの終了時でもよい。これは、ライトコマンドの場合、通常、そのシーク開始時にホスト側へデータ転送要求を発行してライト開始までにライトデータを受け取っているので、ライト動作時においては、ホストとのバスは占有されず、新たなコマンドがホストから転送されてリオーダリング対象が増えるかもしれないからである。
【００４２】
図３は、リオーダリング処理フローを示す説明図であり、その内容は次のようになっている。
(s11) コマンドキュー１６からコマンドを一つ取り出してそれに対するリオーダリング処理を実行して、すなわち現実行コマンドの終了後にそのコマンド（取り出したコマンド）の先頭アドレス位置までアクセスする時間がリオーダリング検討済コマンドのそれよりも短いかどうかを判断してから次のステップに進み、また、リード／ライト動作開始割込みを契機としてステップ(s14) に進む。
(s12) コマンドキュー１６の中に未処理コマンド（リオーダリング未検討コマンド）が残っているかどうかを判断して、「 YES 」 の場合はステップ(s11) に戻り、「NO」 の場合は次のステップに進む。また、リード／ライト動作開始割込みを契機としてステップ(s14) に進む。
(s13)待ちの状態に移行し、新コマンド受領割込みを契機としてステップ(s11) に戻り、リード／ライト動作開始割込みを契機としてステップ(s14) に進む。
(s14)リオーダリングされたコマンドの実行タスクを起動して、ステップ(s11) に戻る。
なお、上述のように、ライト動作開始割込みに代えてライト動作終了割込みを用いてもよい。
【００４３】
図４は、ランダムリードコマンド処理の様子を示す説明図であり、目的トラックの（ａ〜ｃ）のセクタ域を対象としたリードコマンドに基づくヘッドのシーク動作の結果、ａとｃの途中のｂ点にヘッドが落ちた状態を示している。
【００４４】
ここでは、
・先ず、シーク動作後、リードセクタ域の先頭のａ点までの回転待ちをせずに、ヘッドが落ちたｂ点以降のリード対象であるデータ（ｂ〜ｃ）をすぐに読出してセグメントｉの格納域《１》、すなわちデータ（ａ〜ｂ）の格納域《３》に続く部分に保持し、
・次に、ｃ点以降のデータの中、セグメントｉのいわば余り領域（格納域《２》）に相当する分のデータ（ｃ〜ｄ）を読み出してこの格納域《２》にプリフェッチし、
・次に、ａ点までの回転待ちを行なってデータ（ａ〜ｂ）を読み出してセグメントｉの格納域《３》に保持している。
【００４５】
これにより、シーク動作後の、要求データ全体のセグメントｉへの格納時間およびホストへの転送時間の短縮化を図ることができる。
【００４６】
図５は、図４に対応のランダムリードコマンド処理フローを示す説明図であり、その内容は次のようになっている。
(s21)ランダムリードコマンドの目的トラックへのシーク命令を発行して、次のステップに進む。
(s22)このアクチュエータのヘッド位置情報（セクタ番号）を収集して、次のステップに進む。
(s23)このヘッド位置がコマンドの要求データの途中（コマンドの指定範囲である目的セクタの途中）であるかどうかを判断し、「 YES 」 の場合は次のステップに進み、「NO」 の場合はステップ(s27) に進む。
(s24)セグメントへの読込みポインタを移動して、次のステップに進む。実行主体はディスク対応のポインタ制御部２２であり、コマンドの指定範囲である要求先頭アドレスからヘッドが落ちた部分までスキップする形で対応セグメントへの読込みポインタを移動させる。例えば、コマンドのリード要求範囲が目的トラックのセクタ３からセクタ１０までの場合で、ヘッドが、目的トラックまでシークしたときにセクタ５の領域に位置して次のセクタ６からリード可能ならば、リードデータの対応セグメントの先頭からセクタ３乃至セクタ５のデータ量だけスキップさせた位置、すなわちセクタ６の先頭データの保持部分に読込みポインタを移動させる。
(s25)要求データの後半部、例えばヘッドのシーク終了位置の次のセクタからコマンドのリード要求範囲の最終セクタまでのデータをリードして、次のステップに進む。当該リードデータは対応セグメントの読込みポインタの位置から順に保持される。なお、このときの「次のセクタ」のセクタ番号はワーク領域（図示省略）などに保持される。
(s26)このリード要求範囲の最終セクタに続く部分のデータを先読みして、次のステップに進む。先読みの範囲は、要求データの後半部を保持した後の上記対応セグメントの後側の残り部分に保持できる範囲である。これはセグメントサイズとリード要求データサイズに基づいて特定される。
(s27)目的セクタがヘッド位置に到達するまでの回転待ちを実行して、次のステップに進む。ここで、読込みポインタが対応セグメントの先頭に位置していないとき、すなわち要求データの後半部をすでに対応セグメントの上記スキップ位置以降に保持しているときには、この読込みポインタを当該位置に移動させる。
(s28)ディスク上の先頭目的セクタから要求データをリードしていく。
なお、ステップ(s25)で要求データの後半部をリード済のとき、すなわち上述の「次のセクタ」のセクタ番号が保持されているときには、当該セクタ番号の一つ手前のセクタまでのリードを実行する。当該リードデータは対応セグメントの読込みポインタの位置から順に保持される。
【００４７】
図６は、スキップリードコマンド処理の様子を示す説明図であり、
・ディスク媒体１５が反時計方向に回転し、
・論理アドレス（ａ〜ｂ）のセクタデータを読み取るシーケンシャルリードコマンド（Ｓeqコマンド１）を、アクチュエータＡで実行し終え、
・論理アドレス（ｃ〜ｄ）のセクタデータを読み取るシーケンシャルリードコマンド（Ｓeqコマンド２）を、アクチュエータＢでこれから実行する、
状態を示している。
【００４８】
論理アドレス（ａ〜ｂ）および（ｃ〜ｄ）それぞれの対応セクタは同一トラック上にあり、各論理アドレスの大小関係はａ＜ｂ＜ｃ＜ｄになっている。
【００４９】
スキップリードコマンド処理の実行条件は、
「Ｄ（スキップリード判定間隔）＞ｃ−ｂ，ｃ≧ｂ＋２」
である。
【００５０】
この実行条件を満たしながら、
「Ｈ（ヘッド間隔）＜ｃ−ｂ」
が成立しない場合には、同一ヘッドでスキップリードコマンド処理を実行する。ＤおよびＨの値はあらかじめ設定されている。
【００５１】
また、論理アドレスｂ，ｃの各セクタが同一トラック上にない場合には、上述の「Ｈ（ヘッド間隔）＜ｃ−ｂ」に代えて、
「Ｈ（ヘッド間隔）＜ｃ−ｂ＋（スキュー時間に対応するセクタ数）」
を用いる。
【００５２】
図示の場合、コマンド実行部１９は、Ｓeqコマンド１の次のＳeqコマンド２をスキップリードと判断して、このリードコマンドの先頭データ部分（ｃ）がアクチュエータＢのヘッドをまだ通過していないときには、当該ヘッドで（ｃ〜ｄ）領域のデータを読み取るように制御する。この「通過」の判断処理も、ヘッド位置のアドレスと先頭データ部分（ｃ）のそれとの比較によって行なう。
【００５３】
また、Ｓeqコマンド１（ａ〜ｂ）のリードデータとＳeqコマンド２（ｃ〜ｄ）のそれとを別々のセグメントに保持し、Ｓeqコマンド２の実行時に（ａ〜ｂ）のリードデータをセグメントバッファ１２からホスト側に転送している。
【００５４】
これにより、スキップリードコマンドの場合にも、その処理時間の高速化を図ることができる。
【００５５】
図７は、図６に対応のシーケンシャルリードコマンド処理フローを示す説明図であり、その内容は次のようになっている。
(s31)現コマンド（次の処理対象）はスキップリードコマンドであるかどうかを判断し、
「YES」の場合は次のステップに進み、「NO」の場合はステップ(s37)に進む。このときの判断基準は「Ｄ（スキップリード判定間隔）＞ｃ−ｂ，ｃ≧ｂ＋２」がともに成立するかどうかである。
(s32)他方のヘッド（アクチュエータＢのヘッド）の位置情報、すなわち当該ヘッドが位置している部分のセクタ番号を求めて、次のステップに進む。
(s33)スキップリード間隔（リード済セクタからスキップリードの先頭セクタまでの間隔）は切替え対象のヘッド間隔以上であるかどうかを判断し、「YES」の場合は次のステップに進み、「NO」の場合はステップ(s36) に進む。このときの判断基準は「Ｈ（ヘッド間隔）＜ｃ−ｂ」が成立するかどうかである。
(s34)上記他方のヘッドはスキップリードの先頭セクタ（ｃ点）より先行しているかどうかを判断し、「YES」の場合は次のステップに進み、「NO」の場合はステップ(s36)に進む。
(s35)読取ヘッドを上記他方のヘッドに切り換えて、次のステップに進む。
(s36)次のリードセクタまでの読取りヘッドの回転待ちをして、次のステップに進む。
(s37)読取りヘッドで、このリードセクタの先頭から要求データをリードする。
【００５６】
図６の場合、スキップシーケンシャルリードコマンドに対する読取りヘッドはアクチュエータＢのヘッドである。
【００５７】
図８は、データ量の多いライトコマンド処理の様子を示す説明図である。図示のランダムライトコマンドは単一セグメントのサイズを上回る量のデータ（ａ〜ｃ）をライトする内容からなり、その実行時には、ライトデータ中のｂ部分で書込みトラックをシフトしている。
【００５８】
なお、トラックシフトをともなうデータライト動作を効率的に行なうため、ディスク媒体上のセクタ配置を、次の内側トラックへの書込み開始位置が図示のようにずれたスキュー態様にしている。
【００５９】
このように、ライトコマンドで指定されるデータ長がセグメントサイズより大きく、かつライトデータの途中で次の書込みトラックに移る場合には、ライトデータ格納セグメント切換設定部２０が、前半のライトデータ（ａ〜ｂ）を格納するセグメントｉと、後半のライトデータ（ｂ〜ｃ）を格納するセグメントｊとを切換える。
【００６０】
その後、アクチュエータＡ，Ｂそれぞれのヘッドでセグメントｉ，ｊの各データを並行して別々のトラックに書き込む。
【００６１】
これにより、指定範囲がディスク媒体上の複数トラックに跨るようなライトコマンドの場合にも、その処理時間の短縮化を図ることができる。
【００６２】
図９は、データアウトの中断・再開時のライトコマンド処理の様子を示す説明図であり、(a)はデータアウトの中断時を示し、(b)はデータアウトの再開時を示している。
【００６３】
データアウトの中断は、シーケンシャルライトコマンドの処理で次ライトコマンドに対するライトデータの転送開始が遅れたときなどに生じる。
【００６４】
ここでは、シーケンシャルライト処理を実行中のアクチュエータＡとは別のアクチュエータＢを、このＡのヘッドがオンしているトラックの後方側（ある時間遅れで同じデータをアクセスできる位置）に配置し、データアウトの再開時にはそのデータ書込みの始まり部分までの回転待ち時間が短い方のヘッド（アクチュエータ）を選択している。
【００６５】
すなわち(a)に示すように、アクチュエータＡのヘッドでセグメントｉの格納データ（ａ〜ｂ）をディスク媒体１５に書き込んだ時点でホストからのデータアウトの中断が生じた場合は、アクチュエータＢのヘッド位置（セクタ番号）を求める。なお、ｂ点はライトコマンドで指定されるアドレスに対応しているため、その位置情報は既知である。
【００６６】
そして、ｂ点がアクチュエータＢのヘッドまで到達していない場合にはライト動作の主体をアクチュエータＡからアクチュエータＢに切換え、データアウトの再開を待つ。
【００６７】
その後、(b)に示すように、ｂ点がアクチュエータＢのヘッドに到達するまでにデータアウトが再開されれば、当該アクチュエータを用いてライト動作を再開する。
【００６８】
また、ｂ点がアクチュエータＢのヘッドに到達するまでにデータアウトが再開されなければ、ライト動作の主体を再びアクチュエータＡに戻してデータアウトの再開を待つ。この後もライト動作の主体にｂ点が到達するまでにデータアウトが再開となるかどうかに応じて同様の処理を繰り返す。
【００６９】
これにより、データアウトが再開された後の実際のデータライト開始までのいわばアイドリング時間の短縮化を図っている。
【００７０】
図１０は、図８に対応のライトコマンド処理フローを示す説明図であり、その内容は次のようになっている。
(s41)ライト要求範囲（ライトコマンドが指定するアドレス範囲）はディスク媒体１５のトラックを跨るかどうかを判断して、「 YES 」 の場合は次のステップおよびステップ（s45)に進み、「NO」 の場合は次のステップに進む。この判断に際しては上述のようにアドレスとセクタ番号との対応テーブルを用いる。
(s42)ライト要求範囲中の先頭トラックへのシーク動作を開始して、次のステップに進む（図８のアクチュエータＡ参照）。
(s43)このシーク動作の終了後、ライト要求範囲の先頭位置（図８のａ点）の回転待ち状態に移行して、次のステップに進む。
(s44)この先頭位置から続く部分への要求データのライト動作を開始する。
(s45)ライト要求範囲中の次トラックへのシーク動作を開始して、次のステップに進む（図８のアクチュエータＢ参照）。
(s46)このシーク動作の終了後、先頭トラックのライト範囲に連続する次トラック先頭位置（図８のｂ点）の回転待ち状態に移行して、次のステップに進む。
(s47)この次トラック先頭位置から続く部分への要求データ（次トラック対応ディスク）のライト動作を開始する。
【００７１】
図１１は、図９に対応のライトコマンド処理フローを示す説明図であり、その内容は次のようになっている。
(s51)ライト要求範囲（ライトコマンドが指定するアドレス範囲）へのシーク動作を開始して、次のステップに進む（図９のアクチュエータＡ参照）。
(s52)このシーク動作の終了後、ライト要求範囲の先頭位置（図９のａ点）の回転待ち状態に移行して、次のステップに進む。
(s53)この先頭位置から続く部分への要求データのライト動作を開始して、ホストからのデータ転送が中断された場合には次のステップに進む。
(s54)セグメント内の残りのライトデータの書込み終了後に，次のステップに進む。
(s55)回転待ち状態に移行して、ホストからのデータ転送が再開された場合には次のステップに進む。
(s56)ステップ(s53) のライト動作の実行ヘッド（図９のアクチュエータＡ）よりもこれと同一トラックの他のヘッド（図９のアクチュエータＢ）の方が、ライト動作再開時の先頭位置（図９のｂ点）までの回転待ち時間が短いかどうかを判断して、「YES」の場合は次のステップに進み、「NO」の場合はステップ（s58)に進む。
(s57)書込ヘッドをこの他のヘッドに変更して、次のステップに進む。
(s58)この先頭位置の回転待ち状態に移行して、次のステップに進む。
(s59)この先頭位置から続く部分への要求データのライト動作を再開する。
【００７２】
発明の実施の形態における以上の説明内容は、リードコマンドおよびライトコマンドのいずれの場合にも適用可能である。
【００７３】
なお、リードコマンドを実行するアクチュエータとライトコマンドを実行するアクチュエータとを分けるようにしてもよい。
【００７４】
これにより、リードコマンドの後にライトコマンドが発行された場合にも、リードコマンド実行のアクチュエータは、指定範囲の要求データのリード終了後、ライトコマンドによってリード動作を中断されることなしに、使用セグメントがリードデータでいっぱいになるまでプリフェッチを行なうことができる。
【００７５】
図１２は、コンピュータ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュータシステムの概要を示す説明図であり、３はコンピュータシステム，３１はＣＰＵやディスクドライブ装置などを内蔵した本体部，３２は本体部３１からの指示により画像を表示するディスプレイ，３３は表示画面，３４はコンピュ−タシステム３に種々の情報を入力するためのキーボード，３５は表示画面３３の任意の位置を指定するマウス，３６はメモリなどを有するディスク装置，３７はＣＤ−ＲＯＭやフレキシブルディスクなどの可搬型記録媒体をそれぞれ示している。
【００７６】
プログラムを格納する記録媒体は、
・ディスク装置３６
・可搬型記録媒体３７
・本体部３１のＲＡＭやハードディスク
などである。当該プログラムはディスク装置３６で実行される。当該プログラムが可搬型記録媒体３７、本体部３１のＲＡＭやハードディスクなどに格納されている場合、当該プログラムは本体部３１を経由してディスク装置３６に転送される。
【００７７】
（付記１）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されているコマンドの指定範囲への、第１のアクチュエータで駆動される第１のヘッドによるアクセス動作の終了時点を基準として、複数の処理待ちコマンドに対する、第２のアクチュエータで駆動される第２のヘッドによる新たなアクセス時間を当該処理待ちコマンドごとに順次求め、求められたアクセス時間が最短となる処理待ちコマンドを当該第２のヘッドの次コマンドとして選択するリオーダリング手段と、
選択された前記次コマンドに基づく第２の前記アクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、を備えた
ことを特徴とするディスク装置。
（付記２）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行するディスク装置において、
前記複数のアクチュエータを制御して、ディスク媒体の別々の領域で前記ヘッドを個々に動作させるアクチュエータ制御手段と、
現在実行されている第１のコマンドに後続する第２のコマンドについて、前記第１のコマンドを実行中の第１のヘッドおよび第１のアクチュエータによる前記第２のコマンドの指定範囲へのアクセス時間と、第２のヘッドおよび第２のアクチュエータによる前記指定範囲へのアクセス時間とを比較し、前記第２のヘッドによるアクセス時間の方が短いと判断された場合、前記第２のヘッドに対して前記第２のコマンドを選択するリオーダリング手段と、
前記選択された第２のコマンドに基づく第２のアクチュエータのシーク動作を、前記アクチュエータ制御手段に指示するコマンド実行手段と、を備えた
ことを特徴とするディスク装置。
（付記３）付記２に記載のディスク装置において、
前記リオーダリング手段は、前記第１のコマンドによる指定領域への前記第１ヘッドのリード開始時点を基準として、前記第１のヘッドによるリード時間とリード処理終了時点における前記第１のヘッド位置からの前記第２のコマンドに対応するアクセス時間とを足し合わせた時間と、前記第２のヘッドの前記開始時点における位置からの前記第２のコマンドに対応するアクセス時間とを比較する、
ことを特徴とするディスク装置。
（付記４）付記２に記載のディスク装置において、
前記リオーダリング手段は、前記第１のコマンドに対する前記第１のヘッドによるライト動作の終了時点を基準として、前記第１のヘッドのライト終了位置からの前記第２のコマンドに対応するアクセス時間と、前記第２のヘッドによる前記終了時点から前記第２のコマンドに対応するアクセス時間とを比較する
ことを特徴とするディスク装置。
（付記５）付記３または４記載のディスク装置において、
前記アクセス時間は、前記第１のアクチュエータあるいは前記第２のアクチュエータによる前記第２のコマンドに対応する目的トラックヘのシーク時間と、前記第１のヘッドあるいは前記第２のヘッドが前記第２のコマンドに対応する目的セクタに達するまでのディスク媒体の回転時間とを足し合わせた時間である、
ことを特徴とするディスク装置。
（付記６）ホストから送られるリード／ライトコマンドを実行するディスク装置において、
ディスク媒体と、
前記ディスク媒体へのデータ読み出しおよび書き込みを行うヘッドと、
前記ヘッドが取り付けられたアクチュエータと、
前記アクチュエータを動作させるアクチュエータ制御手段と、
受信したコマンドに応じて前記アクチュエータ制御手段により前記アクチュエータを目的トラックにシークさせた際に、前記ヘッドが前記コマンドによる指定範囲内にあるか否かを判定し、前記ヘッドが前記指定範囲の中間位置に位置すると判定された場合には、前記ヘッドがある位置から前記指定範囲の終わりまでの前記ヘッドによるアクセスを行い、前記指定範囲の先頭まで前記ディスク媒体が回転するのを待って前記指定範囲の先頭からの前記ヘッドによるアクセスを行う制御部と、を備えた、
ことを特徴とするディスク装置。
（付記７）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行する、ディスク装置で用いられるプログラムを記憶した記録媒体において、
前記プログラムが、
現在実行されているコマンドの指定範囲への、第１のアクチュエータで駆動される第１のヘッドによるアクセス動作の終了時点を基準として、複数の処理待ちコマンドに対する、第２のアクチュエータで駆動される第２のヘッドによる新たなアクセス時間を当該処理待ちコマンドごとに順次求め、求められたアクセス時間が最短となる処理待ちコマンドを当該第２のヘッドの次コマンドとして選択する機能を、コンピュータに実現させるためのものである、
ことを特徴とするコンピュータ読取り可能な記録媒体。
（付記８）ホストからランダムに送られるリード／ライトコマンドを、複数のヘッド、および前記複数のヘッドのそれぞれに対応するアクチュエータの動作に基づいて実行する、ディスク装置で用いられるプログラムを記憶した記録媒体において、
前記プログラムが、
現在実行されている第１のコマンドに後続する第２のコマンドについて、前記第１のコマンドを実行中の第１のヘッドおよび第１のアクチュエータによる前記第２のコマンドの指定範囲へのアクセス時間と、第２のヘッドおよび第２のアクチュエータによる前記指定範囲へのアクセス時間とを比較し、前記第２のヘッドによるアクセス時間の方が短いと判断された場合、前記第２のヘッドに対して前記第２のコマンドを選択する機能を、コンピュータに実現させるためのものである、
ことを特徴とするコンピュータ読取り可能な記録媒体。
（付記９）ホストから送られるリード／ライトコマンドを実行するディスク装置で用いられるプログラムを記憶した記録媒体において、
前記プログラムが、
受信したコマンドに応じてアクチュエータ制御手段によりアクチュエータを目的トラックにシークさせた際に、ヘッドが前記コマンドによる指定範囲内にあるか否かを判定し、前記ヘッドが前記指定範囲の中間位置に位置すると判定された場合には、前記ヘッドがある位置から前記指定範囲の終わりまでの前記ヘッドによるアクセスを行い、前記指定範囲の先頭まで前記ディスク媒体が回転するのを待って前記指定範囲の先頭からの前記ヘッドによるアクセスを行う機能を、コンピュータに実現させるためのものである、
ことを特徴とするコンピュータ読取り可能な記録媒体。
【図面の簡単な説明】
【００７８】
【図１】本発明の、ディスク装置の全体構成を示す説明図である。
【図２】本発明の、コマンド処理とリオーダリングとの関係を示す説明図である。
【図３】本発明の、リオーダリング処理フローを示す説明図である。
【図４】本発明の、ランダムリードコマンド処理の様子を示す説明図である。
【図５】本発明の、図４に対応のランダムリードコマンド処理フローを示す説明図である。
【図６】本発明の、スキップリードコマンド処理の様子を示す説明図である。
【図７】本発明の、図６に対応のシーケンシャルリードコマンド処理フローを示す説明図である。
【図８】本発明の、データ量の多いライトコマンド処理の様子を示す説明図である。
【図９】本発明の、データアウトの中断・再開時のライトコマンド処理の様子を示す説明図であり、(a)はデータアウトの中断時を示し、(b)はデータアウトの再開時を示している。
【図１０】本発明の、図８に対応のライトコマンド処理フローを示す説明図である。
【図１１】本発明の、図９に対応のライトコマンド処理フローを示す説明図である。
【図１２】本発明の、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図である。
【図１３】従来のリード／ライトコマンド処理の様子を示す説明図である。
【図１４】従来のシーケンシャルライトコマンド処理の様子を示す説明図である。
【符号の説明】
【００７９】
１：ディスク装置
１１：セグメントバッファリードライト手段
１２：セグメントバッファ
１３，１４：媒体リードライト手段
１５：ディスク媒体
１５ａ：ディスク媒体の外側領域
１５ｂ：ディスク媒体の内側領域
１６：コマンドキュー
１７：リオーダリング処理部
１８：アクチュエータごとの最終アドレス
１９：コマンド実行部
２０：ライトデータ格納セグメント切換設定部
２１：ホスト対応のポインタ制御部
２２：ディスク対応のポインタ制御部
２３：アクチュエータ制御部
２４：外側領域１５ａを径方向に移動するアクチュエータ
２４ａ：ヘッド
２５：内側領域１５ｂを径方向に移動するアクチュエータ
２５ａ：ヘッド
３：コンピュ−タシステム
３１：ＣＰＵやディスクドライブ装置などを内蔵した本体部
３２：ディスプレイ
３３：表示画面
３４：キーボード
３５：マウス
３６：ディスク装置
３７：ＣＤ−ＲＯＭやフレキシブルディスクなどの可搬型記録媒体
【図１】
2007328912.tif 000003
【図２】
2007328912.tif 000004
【図３】
2007328912.tif 000005
【図４】
2007328912.tif 000006
【図５】
2007328912.tif 000007
【図６】
2007328912.tif 000008
【図７】
2007328912.tif 000009
【図８】
2007328912.tif 000010
【図９】
2007328912.tif 000011
【図１０】
2007328912.tif 000012
【図１１】
2007328912.tif 000013
【図１２】
2007328912.tif 000014
【図１３】
2007328912.tif 000015
【図１４】
2007328912.tif 000016