(57)【要約】【課題】シークコマンド発行時のコマンド制御部のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供すること。【解決手段】コマンド制御部４が発行したシークコマンドをシークコマンド管理部１１に送信し、シークコマンド管理部１１は、ヘッド位置制御部６がシーク動作中でない場合には受信したシークコマンドをヘッド位置制御部６に送信し、ヘッド位置制御部６がシーク動作中である場合に受信したシークコマンドをメモリ１３に記憶し、シーク動作の完了を待ってヘッド位置制御部６にシークコマンドを送信する。【選択図】　　　図１
2004079073.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、
前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、
前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、
を備えたことを特徴とするディスク記憶装置。
【請求項２】
前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする請求項１に記載のディスク記憶装置。
【請求項３】
前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記シーク動作を停止させるシーク抑止部と、を備えたことを特徴とする請求項１または２に記載のディスク記憶装置。
【請求項４】
前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする請求項１〜３のいずれか一つに記載のディスク記憶装置。
【請求項５】
前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする請求項１〜４のいずれか一つに記載のディスク記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置に関し、特に、シーク動作を効率化したディスク記憶装置に関する。
【０００２】
【従来の技術】
従来、データを記憶する記憶媒体としてディスク記憶装置が用いられてきた。このディスク記憶装置は、データを記憶する記憶領域を記憶ディスク上に割り当て、記憶ディスクを回転させることで、記憶領域に対してアクセスするヘッド部と記憶ディスクとの位置関係を調整して所望の記憶領域に対してデータの読み書きをおこなう。
【０００３】
図９は、従来のディスク記憶装置の概要構成を示す概要構成図である。図９において、ディスク記憶装置１０２は、インターフェース部１０３、コマンド制御部１０４、記憶部１０５、ヘッド位置制御部１０６およびヘッド動作制御部１０８を備えている。
【０００４】
インターフェース部１０３は、外部の端末であるホスト１０１と接続され、ホスト１０１からの要求をコマンド制御部１０４に送信する。コマンド制御部１０４は、インターフェース部１０３を介して受信した要求をもとに、ヘッド位置制御部１０６およびヘッド動作制御部１０８にコマンドを送信し、記憶ディスク１１０に対するデータの書き込みおよび読み出しをおこなう。具体的には、コマンド制御部１０４は、ホスト１０１から読み出し要求を受信した場合、受信した読み出し要求をもとに、記憶ディスク上の位置を指定するシークコマンドと、読み出しを指示するリードコマンドとを発行する。また、コマンド制御部１０４は、ホスト１０１から書き込み要求を受信した場合、受信した書き込み要求をもとに、記憶ディスク１１０上の位置を指定するシークコマンドと、書き込みを指示するライトコマンドとを発行する。
【０００５】
コマンド制御部１０４が発行したシークコマンドは、ヘッド位置制御部１０６に送信される。また、コマンド制御部１０４が発行したリードコマンドおよびライトコマンドは、ヘッド動作制御部１０８に送信される。ヘッド位置制御部１０６は、受信したシークコマンドによってアクチュエータ１０７を制御し、記憶ディスク１１０とヘッド部１０９との位置決めをおこなう。このアクチュエータの制御によって、ヘッド部１０９を記憶ディスク上の所望の領域に移動させる操作をシーク動作と言う。また、ヘッド動作制御部１０８は、受信したリードコマンドおよびライトコマンドをもとに、記憶ディスク１１０に対して読み書き動作を実行する。
【０００６】
ここで、図１０を参照し、ディスク記憶装置１０２のシーク動作について説明する。まず、コマンド制御部１０４は、ホスト１０１から受信した要求をもとにシークコマンドＡを発行する。つぎに、コマンド制御部１０４は、発行したシークコマンドＡをヘッド位置制御部１０６に送信する（処理動作１２１）。
【０００７】
ヘッド位置制御部１０６は、コマンド制御部１０４からシークコマンドＡを受信し（処理動作１３１）、シークコマンドＡをもとにアクチュエータ１０７を操作し、シーク動作を実行する（処理動作１３２）。
【０００８】
ここで、コマンド制御部１０４が、シークコマンドＡを取り消して別の位置にシークしたい場合、ヘッド位置制御部１０６は、既にシークコマンドＡを実行中であるので、コマンド制御部１０４は、ヘッド位置制御部１０６にシークコマンドを発行することができない。したがって、コマンド制御部１０４は、ヘッド位置制御部１０６のシーク動作が終了するまで待機し（処理動作１２２）、ヘッド位置制御部１０６からシーク動作の終了報告があった場合に、シークコマンドＢを発行してヘッド位置制御部１０６に送信する（処理動作１２３）。ヘッド位置制御部１０６は、シークコマンドＢを受信した（処理動作１３３）後、アクチュエータを操作してシーク動作を実行する（処理動作１３４）。
【０００９】
このように従来のディスク記憶装置１０２では、シーク動作によって記憶ディスク１１０とヘッド部１０９との位置関係を決定した後に、ヘッド部による読み出し動作および書き込み動作をおこなうことで、記憶ディスク１１０上の所望の記憶領域に対してデータの読み書きをおこなっていた。
【００１０】
【発明が解決しようとする課題】
しかしながら、従来のディスク記憶装置では、ヘッド位置制御部１０６がシーク動作を行っている間、コマンド制御部１０４はつぎのシークコマンドを発行することができず、シーク動作の終了まで待機する必要があった。コマンド制御部１０４は、ホスト１０１との通信、キャッシュ制御、リードコマンドおよびライトコマンドの発行などの処理をおこなうため、シーク動作の終了を待つことで発生するオーバヘッドは、ディスク記憶装置全体の動作速度を低下させる原因となる。
【００１１】
近年、情報処理技術の向上に伴い、ディスク記憶装置に対して大容量化および高速化が求められているため、シークコマンド処理の効率化が非常に大きな問題となっている。すなわち、従来のディスク記憶装置では、シークコマンド発行時のオーバヘッドにより、ディスク記憶装置の動作速度が低下するという問題点があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、本発明にかかるディスク記憶装置は、データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、を備えたことを特徴とする。
【００１４】
この発明によれば、ディスク記憶装置は、シーク監視部によってヘッド位置制御部がシーク動作中であるか否かを判定し、ヘッド位置制御部のシーク動作中にコマンド制御部が発行したシークコマンドを待機コマンドとして保持し、ヘッド位置制御部のシーク動作終了後にシークコマンドをヘッド位置制御部に送信するように構成することで、コマンド制御部の負荷を軽減している。
【００１５】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする。
【００１６】
この発明によれば、ディスク記憶装置は、シーク監視部によるヘッド位置制御部の監視と、コマンド待機処理部によるコマンドの待機および送信をコマンド制御部に対して独立におこなうことで、コマンド制御部の処理を軽減している。
【００１７】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記シーク動作を停止させるシーク抑止部と、を備えたことを特徴とする。
【００１８】
この発明によれば、ディスク記憶装置は、ヘッド動作制御部による読み書き動作を監視するヘッド監視部およびヘッド動作制御部が読み書き動作をおこなっている間シーク動作を抑止するシーク抑止部と、をコマンド制御部に対して独立に設けることで、コマンド制御部の負荷を軽減している。
【００１９】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする。
【００２０】
この発明によれば、ディスク記憶装置は、シークコマンドの取り消し動作中にコマンド制御部が新たにシークコマンドを発行した場合、新たなシークコマンドを待機コマンドとして保持し、取り消し動作終了後に新たなシークコマンドをヘッド位置制御部に送信するように構成している。
【００２１】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする。
【００２２】
この発明によれば、ディスク記憶装置は、ヘッド位置制御部がエラーを発生した場合、待機コマンドを破棄することで、復旧を容易に実行可能としている。
【００２３】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記待機コマンドの送信を開始したか否かを判定し、前記待機コマンドの送信が開始されていない場合に当該待機コマンドの書き換えを許可することを特徴とする。
【００２４】
この発明によれば、ディスク記憶装置は、ヘッド位置制御部対して未送信の待機コマンドに対してはコマンドの取り消しおよび書き換えを許可する構成としている。
【００２５】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るディスク記憶装置の好適な実施の形態を詳細に説明する。
【００２６】
図１は、本実施の形態にかかるディスク記憶装置の概要構成を示す概要構成図である。図１において、ディスク記憶装置２は、インターフェース部３、コマンド制御部４、記憶部５、シークコマンド管理部１１、ヘッド位置制御部６およびヘッド動作制御部８を備えている。
【００２７】
インターフェース部３は、外部の端末であるホスト１と接続され、ホスト１からの要求をコマンド制御４に送信する。コマンド制御部４は、インターフェース部３を介して受信した要求をもとに、ヘッド位置制御部６およびヘッド動作制御部８にコマンドを送信し、記憶ディスク１０に対するデータの書き込みおよび読み出しをおこなう。具体的には、コマンド制御部４は、ホスト１から読み出し要求を受信した場合、受信した読み出し要求をもとに、記憶ディスク上の位置を指定するシークコマンドと、読み出しを指示するリードコマンドとを発行する。また、コマンド制御部４は、ホスト１から書き込み要求を受信した場合、受信した書き込み要求をもとに、記憶ディスク１０上の位置を指定するシークコマンドと、書き込みを指示するライトコマンドとを発行する。
【００２８】
コマンド制御部４が発行したリードコマンドおよびライトコマンドは、ヘッド動作制御部８に送信される。ヘッド動作制御部８は、受信したリードコマンドおよびライトコマンドをもとに、記憶ディスク１０に対して読み書き動作を実行する。
【００２９】
また、コマンド制御部４が発行したシークコマンドは、シークコマンド管理部１１に送信される。シークコマンド管理部１１は、受信したシークコマンドをヘッド位置制御部６に送信し、ヘッド位置制御部６にアクチュエータ７を制御させる。ヘッド位置制御部６は、受信したシークコマンドによってアクチュエータ７を制御することで、記憶ディスク１０とヘッド部９との位置決めをおこなう。このアクチュエータの制御によって、ヘッド部９を記憶ディスク上の所望の領域に移動させる操作をシーク動作と言う。
【００３０】
一方、シークコマンド管理部１１は、ヘッド位置制御部６がシーク動作中である場合、シークコマンドを保持し、ヘッド位置制御部６のシーク動作終了後にシークコマンドをヘッド位置制御部６に送信する。ここで、シークコマンド管理部１１について詳細に説明する。シークコマンド管理部１１は、その内部にコマンド待機処理部１２、メモリ１３、シーク監視部１４、ヘッド監視部１５、シーク抑止部１６を備えている。
【００３１】
シーク監視部１４は、ヘッド位置制御部６のシーク動作を監視する。コマンド待機処理部１２は、コマンド制御部４からシークコマンドを受信し、シーク監視部１４の監視結果をもとに、シークコマンドを送信するか保持するかの判定をおこなう。ヘッド位置制御部６がシーク動作中でない場合、コマンド待機処理部１２は、受信したシークコマンドをヘッド位置制御部６に送信する。一方、ヘッド位置制御部６がシーク動作中である場合、コマンド待機処理部１２は、受信したシークコマンドを待機コマンドとしてメモリ１３に保持する。また、コマンド待機処理部１２は、シーク監視部１４がシーク動作の終了を検知した場合に、メモリ１３に記憶したシークコマンドをヘッド位置制御部６に送信する。
【００３２】
また、ヘッド監視部１５は、ヘッド動作制御部８による読み書き動作を監視する。シーク抑止部１６は、ヘッド監視部１５の監視結果をもとに、ヘッド動作制御部８が、読み書き動作を実行している間、ヘッド位置制御部６のシーク動作を抑止する。
【００３３】
図２は、シークコマンド管理部１１の処理動作を説明する説明図である。図２において、まず、コマンド待機処理部１２が、シークコマンドを受信（ステップＳ１０１）する。つぎに、シーク監視部１４によって、ヘッド位置制御部６がシーク動作中か否かを判定する（ステップＳ１０２）。
【００３４】
ヘッド位置制御部６がシーク動作中である場合、（ステップＳ１０２，Ｙｅｓ）、コマンド待機処理部１２は、受信したシークコマンドを待機コマンドとしてメモリ１３に保持する（ステップＳ１０３）。その後、シーク監視部１４からヘッド位置制御部６に割り込み要求を送信し（ステップＳ１０４）、ヘッド位置制御部６のシーク動作が終了したか否かを判定する（ステップＳ１０５）。ヘッド位置制御部６のシーク動作が終了していない場合（ステップＳ１０５，Ｎｏ）、シーク監視部１４は、再度ヘッド位置制御部６に割り込み要求を送信する（ステップＳ１０４）。
【００３５】
ヘッド位置制御部がシーク動作をおこなっていない場合（ステップＳ１０２，Ｎｏ）およびヘッド位置制御部６のシーク動作が終了した場合（ステップＳ１０５，Ｙｅｓ）、コマンド待機処理部１２は、ヘッド位置制御部６にシークコマンドを送信し（ステップＳ１０６）、処理を終了する。
【００３６】
ここで、図３を参照し、ディスク記憶装置２のシーク動作について説明する。図３はディスク記憶装置２のシーク動作を説明する説明図である。まず、コマンド制御部４は、ホスト１から受信した要求をもとにシークコマンドＡを発行する。つぎに、コマンド制御部４は、発行したシークコマンドＡをシークコマンド管理部１１に送信する（処理動作２１）。
【００３７】
シークコマンド管理部１１は、コマンド制御部４からシークコマンドＡを受信し、シークコマンドＡをヘッド位置制御部６に送信する（処理動作３１）。ヘッド位置制御部６は、シークコマンド管理部４からシークコマンドＡを受信し（処理動作４１）、シークコマンドＡをもとにアクチュエータ７を操作し、シーク動作を実行する（処理動作４２）。
【００３８】
ここで、コマンド制御部４が、さらにホスト１から要求を受信した場合、コマンド制御部４は、受信した要求をもとにシークコマンドＢを発行する。つぎに、コマンド制御部４は、発行したシークコマンドＢをシークコマンド管理部１１に送信する（処理動作２２）。
【００３９】
シークコマンド管理部１１は、コマンド制御部４からシークコマンドＢを受信する（処理動作３２）。しかし、ヘッド位置制御部６が、シークコマンドＡを実行中であるので、シークコマンド管理部１１は、ヘッド位置制御部６にシークコマンドＢを送信することができない。したがって、コマンド制御部４は、シークコマンドＢを待機コマンドとして保持し、ヘッド位置制御部６のシーク動作終了まで待機する（処理動作３３）。その後、シークコマンド管理部１１は、ヘッド位置制御部６からシーク動作の終了報告があった場合に、シークコマンドＢをヘッド位置制御部６に送信する（処理動作３４）。ヘッド位置制御部６は、シークコマンドＢを受信した（処理動作４３）後、アクチュエータを操作してシーク動作を実行する（処理動作４４）。
【００４０】
このシークコマンド管理部１１の動作を実現するステータス群と、シーク動作時におけるステータスの変化について図４を参照して説明する。図４は、シークコマンド管理部１１が有するステータスパラメータを示す図である。図４において、「ＣＭＤ　ｒｅｇ」はメモリ１３に記憶したシークコマンドを示し、「ＣＭＤ　　ｒｅｇ」の値が「Ａ」であればメモリ１３がシークコマンドＡを記憶しており、「ＣＭＤ　　ｒｅｇ」の値が「Ｂ」であればメモリ１３がシークコマンドＢを記憶していることを示す。
【００４１】
また、「Ｃｏｍｍａｎｄ　Ｉｎｔ」は、シークコマンド管理部１１からヘッド位置制御部６への割り込み要求であり、値が「１」の時に割り込み要求が発生しており、値が「０」の時は割り込み要求がないことを示す。同様に、「Ｑｕｅｕｅ　Ｓｔｓ」は、メモリ１３に待機コマンドが存在するか否かを示すパラメータであり、値が「１」の時に待機コマンドが存在し、「０」の時に待機コマンドが存在しないことを示す。すなわち、「Ｑｕｅｕｅ　Ｓｔｓ」の値が「１」の時にメモリ１３が記憶しているシークコマンドが待機コマンドとなる。また、待機コマンドの送信後、「Ｑｕｅｕｅ　Ｓｔｓ」の値を「０」とすることで、メモリ１３が記憶している内容は待機コマンドと見なされないこととなる。
【００４２】
また、「Ｄｒｉｖｅ　Ｓｔｓ」は、前回のシーク動作が正常に終了したか否かを示し、この値が「Ｇｏｏｄ」である場合、シーク動作が正常に終了したことを示し、「Ｅｒｒｏｒ」である場合、シーク動作がエラー終了したことを示す。さらに、「Ｄｒｉｖｅ　Ｉｎｔ」はシークコマンド管理部１１からコマンド制御部４への割り込み要求を示し、値が「１」の時に割り込み要求が発生しており、値が「０」の時は割り込み要求がないことを示す。同様に、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」は、ヘッド位置制御部６によるシーク動作の開始時に「１」にセットされ、シーク動作完了時に「０」にリセットされる。
【００４３】
また、「ＤＳＰ　Ｂｕｓｙ」は、ヘッド位置制御部６がシークコマンドを受信した時点で「１」にセットされ、シーク動作が終了した状態で「０」にリセットされる。同様に、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」は、ヘッド監視部１５が読み書き動作の終了を検知した場合に「１」にセットされ、ヘッド位置制御部６がシーク動作を開始した場合に「０」にリセットされる。
【００４４】
図４に示したステータス表５１では、まず、初期状態において、「Ｃｏｍｍａｎｄ　Ｉｎｔ」、「Ｑｕｅｕｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｉｎｔ」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」がそれぞれ「０」である（０．初期状態）。なお、「ＣＭＤ　ｒｅｇ」および「Ｄｒｉｖｅ　Ｓｔｓ」は、どんな値であっても構わない。
【００４５】
シークコマンド管理部１１は、まず、コマンド制御部４が発行したシークコマンドＡを受信し、「ＣＭＤ　ｒｅｇ」の値を「Ａ」とし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「１」にセットする（１．コマンドＡ発行）。ここで、「ＣｏｍｍａｎｄＩｎｔ」の値が「１」となったことによって、シークコマンド管理部１１からヘッド位置制御部６に対して割り込み要求が発生する（２．ヘッド位置制御部に割り込み要求）。
【００４６】
この時点でヘッド位置制御部５がシーク動作を行っていないため、シークコマンド管理部１１は、ヘッド位置制御部６にシークコマンドＡを送信し、「Ｃｏｍｍａｎｄ　Ｉｎｔ」を「０」にリセットし、「ＤＳＰ　Ｂｕｓｙ」を「１」にセットする（３．コマンドＡ送信）。
【００４７】
その後、ヘッド位置制御部６が各パラメータの値を取得して「Ｑｕｅｕｅ　Ｓｔｓ」を「０」にリセットする（４．ヘッド位置制御部がパラメータ取得）。さらに、ヘッド位置制御部６が、シーク動作の実行を開始した場合に「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値を「１」にセットする（５．コマンドＡ実行開始）。
【００４８】
コマンド制御部４は、「Ｑｕｅｕｅ　Ｓｔｓ」を参照することで、つぎのシークコマンドを発行可能であることを確認し（６．次コマンドの発行可能を確認）、シークコマンドＢを発行する。シークコマンド管理部１１は、このコマンドＢを受信して「ＣＭＤ　ｒｅｇ」の値を「Ｂ」とし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「１」にセットする（７．コマンドＢ発行）。ここで、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」となったことにより、シークコマンド管理部１１からヘッド位置制御部６に対して割り込み要求が発生する（８．ヘッド位置制御部に割り込み要求）。
【００４９】
しかし、「ＤＳＰ　Ｂｕｓｙ」が「１」、すなわちヘッド位置制御部６がシークコマンドＡのシーク動作中であるために、シークコマンドＢのヘッド位置制御部６に対する送信はおこなわれず、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」が「１」のまま、シーク動作の終了を待機する。ヘッド位置制御部６がシークコマンドＡのシーク動作を終了した場合、シークコマンド管理部１１は、「Ｄｒｉｖｅ　Ｓｔｓ」の値を「Ｇｏｏｄ」とし、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値を「０」にリセットする（９．コマンドＡ終了）。
【００５０】
さらに、シークコマンド管理部１１は、「ＤＳＰ　Ｂｕｓｙ」の値を「０」にリセットし、「Ｄｒｉｖｅ　Ｉｎｔ」の値を「１」にセットする（１０．コマンドＡ終了処理）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「１」となったことによって、シークコマンド管理部１１からコマンド制御部４に対して割り込み要求が発生する（１１．コマンドＡ終了報告）。このコマンド制御部４に対する割込み要求によって、コマンド制御部４は、「Ｄｒｉｖｅ　Ｓｔｓ」を参照してシークコマンドＡが正常に終了したことを確認し、「Ｄｒｉｖｅ　Ｉｎｔ」の値を「０」にリセットする（１２．コマンドＡ終了確認）。
【００５１】
つぎに、シークコマンド管理部１１は、ヘッド位置制御部６に対してシークコマンドＢを送信し、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「ＤＳＰ　Ｂｕｓｙ」の値を「１」にセットする（１３．コマンドＢ送信）。その後、ヘッド位置制御部６が各パラメータの値を取得して「Ｑｕｅｕｅ　Ｓｔｓ」を「０」にリセットする（１４．ヘッド位置制御部がパラメータ取得）。さらに、ヘッド位置制御部６が、「Ｄｒｉｖｅ　Ｉｎｔ」の値を参照し、シーク動作が実行可能であること、すわなち「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」であることを確認し（１５．コマンド実行可能を確認）、シーク動作の実行を開始して「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値を「１」にセットする（１６．コマンドＢ実行開始）。
【００５２】
つぎに、ヘッド動作制御部８の動作状態によるシーク動作の抑止について説明する。ヘッド動作制御部８がヘッド部９を制御し、記憶ディスク１０に対して読み書きを実行している間、ヘッド部９の記憶ディスク１０に対する位置は一定に定めておく必要がある。したがって、ヘッド位置制御部６がシークコマンドを受信している状態であっても、ヘッド部９の読み書き動作中はシーク動作を抑止する必要が生じる。
【００５３】
ヘッド部９の読み書き動作中にシーク動作を抑止する方法として、ここでは抑止ビットを用いる。コマンド制御部４は、ヘッド部９の読み書き状況に対応してシーク動作を抑止する必要があれば、シークコマンドに抑止ビットを付加して発行する。ヘッド位置制御部６は、受信したシークコマンドに抑止ビットが付加されていた場合、シーク動作を開始せずに待機する。シークコマンド管理部１１は、その内部のヘッド監視部１５によってヘッド動作制御部８の動作状態を監視し、シーク抑止部１６は、ヘッド管理部１５の監視結果をもとに、ヘッド動作制御部８が読み書き動作中にシーク動作を抑止し、読み書き動作が終了した時点でシーク動作の抑止を解除する。ヘッド位置制御部６は、シーク抑止部がシーク動作の抑止を解除した時点で、抑止ビットが付加されたシークコマンドの実行を開始する。
【００５４】
図５は、ヘッド動作制御部８の動作状態によって抑止されたシーク動作を説明する説明図である。図５において、まず、コマンド制御部４は、ホスト１から受信した要求をもとにシークコマンドＡに抑止ビットを付加して発行する。つぎに、コマンド制御部４は、発行した抑止ビット付きシークコマンドＡをシークコマンド管理部１１に送信する（処理動作６１）。
【００５５】
シークコマンド管理部１１は、コマンド制御部４からシークコマンドＡを受信し、シークコマンドＡをヘッド位置制御部６に送信する（処理動作７１）。ヘッド位置制御部６は、シークコマンド管理部４からシークコマンドＡを受信する（処理動作８１）。ここで、シークコマンドＡに抑止ビットが付加されているため、ヘッド位置制御部６は、シーク抑止部１６がシーク抑止を解除するまで待機する。ヘッド位置制御部６は、ヘッド動作制御部８の読み書き動作の終了をヘッド監視部１５が検出し、シーク抑止部１６がシーク抑止を解除した場合にシーク動作を開始する（処理動作８２）。
【００５６】
ここで、コマンド制御部４が、さらにホスト１から要求を受信した場合、コマンド制御部４は、受信した要求をもとにシークコマンドＢを発行する。つぎに、コマンド制御部４は、発行したシークコマンドＢをシークコマンド管理部１１に送信する（処理動作６２）。
【００５７】
シークコマンド管理部１１は、コマンド制御部４からシークコマンドＢを受信する（処理動作７２）。しかし、ヘッド位置制御部６が、シークコマンドＡを終了させていないので、シークコマンド管理部１１は、ヘッド位置制御部６にシークコマンドＢを送信することができない。したがって、コマンド制御部４は、シークコマンドＢを待機コマンドとして保持し、ヘッド位置制御部６のシーク動作終了まで待機する（処理動作７３）。その後、シークコマンド管理部１１は、ヘッド位置制御部６からシーク動作の終了報告があった場合に、シークコマンドＢをヘッド位置制御部６に送信する（処理動作７４）。ヘッド位置制御部６は、シークコマンドＢを受信し（処理動作８３）、受信したシークコマンドＢに抑止ビットが付加されていれば、シーク抑止部１６がシーク抑止を解除するまで待機する。
【００５８】
このシークコマンド管理部１１の動作を実現するステータス群と、シーク動作時におけるステータスの変化について図６を参照して説明する。図６は、シークコマンド管理部１１が有するステータスパラメータを示す図である。図６において、「ＣＭＤ　ｒｅｇ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」、「Ｑｕｅｕｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｉｎｔ」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」は、それぞれ図４に示したステータスパラメータと同様に機能する。
【００５９】
図６に示したステータス表５２では、初期状態において、「Ｃｏｍｍａｎｄ　Ｉｎｔ」、「Ｑｕｅｕｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｉｎｔ」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」、「ＷａｙｐｏｉｎｔＬａｔｃｈ」がそれぞれ「０」である（０．初期状態）。なお、「ＣＭＤ　ｒｅｇ」および「Ｄｒｉｖｅ　Ｓｔｓ」は、どんな値であっても構わない。
【００６０】
シークコマンド管理部１１は、まず、コマンド制御部４が発行したシークコマンドＡを受信し、「ＣＭＤ　ｒｅｇ」の値を「Ａ」とし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「１」にセットする（１．コマンドＡ発行）。ここで、「ＣｏｍｍａｎｄＩｎｔ」の値が「１」となったことによって、シークコマンド管理部１１からヘッド位置制御部６に対して割り込み要求が発生する（２．ヘッド位置制御部に割り込み要求）。
【００６１】
この時点でヘッド位置制御部５がシーク動作を行っていないため、シークコマンド管理部１１は、ヘッド位置制御部６にシークコマンドＡを送信し、「Ｃｏｍｍａｎｄ　Ｉｎｔ」を「０」にリセットし、「ＤＳＰ　Ｂｕｓｙ」を「１」にセットする（３．コマンドＡ送信）。
【００６２】
その後、ヘッド位置制御部６が各パラメータの値を取得して「Ｑｕｅｕｅ　Ｓｔｓ」を「０」にリセットする（４．ヘッド位置制御部がパラメータ取得）。ここで、シークコマンドＡが抑止ビット付きであるので、ヘッド位置制御部６は「ＷａｙｐｏｉｎｔＬａｔｃｈ」の値を確認し、この値が「０」であるのでコマンドＡの実行を保留する（５．コマンドＡ実行保留）。
【００６３】
一方、コマンド制御部４は、「Ｑｕｅｕｅ　Ｓｔｓ」を参照することで、つぎのシークコマンドを発行可能であることを確認し（６．次コマンドの発行可能を確認）、シークコマンドＢを発行する。シークコマンド管理部１１は、このコマンドＢを受信して「ＣＭＤ　ｒｅｇ」の値を「Ｂ」とし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「１」にセットする（７．コマンドＢ発行）。
【００６４】
ここで、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」となったことにより、シークコマンド管理部１１からヘッド位置制御部６に対して割り込み要求が発生する（８．ヘッド位置制御部に割り込み要求）。しかし、「ＤＳＰ　Ｂｕｓｙ」が「１」、すなわちヘッド位置制御部６がシークコマンドＡのシーク動作中であるために、シークコマンドＢのヘッド位置制御部６に対する送信はおこなわれず、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」が「１」のまま、シークコマンドＡの終了を待機する。
【００６５】
つぎに、ヘッド制御部８が読み書き動作を完了してシークコマンド管理部１１に割り込みを発生させ、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」の値を「１」にセットする（９．ヘッド動作終了）。ヘッド位置制御部６は、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」が「１」になったことを検出し、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」を「１」にセットし、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」を「０」にリセットしてシーク動作を開始する（１０．コマンドＡ実行開始）
【００６６】
ヘッド位置制御部６によるシークコマンドＡのシーク動作が完了した場合、シークコマンド管理部１１は、「Ｄｒｉｖｅ　Ｓｔｓ」の値を「Ｇｏｏｄ」とし、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値を「０」にリセットする（１１．コマンドＡ終了）。さらに、シークコマンド管理部１１は、「ＤＳＰ　Ｂｕｓｙ」の値を「０」にリセットし、「Ｄｒｉｖｅ　Ｉｎｔ」の値を「１」にセットする（１２．コマンドＡ終了処理）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「１」となったことによって、シークコマンド管理部１１からコマンド制御部４に対して割り込み要求が発生する（１３．コマンドＡ終了報告）。このコマンド制御部４に対する割込み要求によって、コマンド制御部４は、「Ｄｒｉｖｅ　Ｓｔｓ」を参照してシークコマンドＡが正常に終了したことを確認し、「Ｄｒｉｖｅ　Ｉｎｔ」の値を「０」にリセットする（１４．コマンドＡ終了確認）。
【００６７】
つぎに、シークコマンド管理部１１は、ヘッド位置制御部６に対してシークコマンドＢを送信し、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「ＤＳＰ　Ｂｕｓｙ」の値を「１」にセットする（１５．コマンドＢ送信）。その後、ヘッド位置制御部６が各パラメータの値を取得して「Ｑｕｅｕｅ　Ｓｔｓ」を「０」にリセットする（１６．ヘッド位置制御部がパラメータ取得）。ここで、シークコマンドＢが抑止ビット付きであるので、ヘッド位置制御部６は「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」の値を確認し、この値が「０」であるのでコマンドＢの実行を保留する（１７．コマンドＢ実行保留）。
【００６８】
つぎに、ヘッド制御部８が読み書き動作を完了してシークコマンド管理部１１に割り込みを発生させ、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」の値を「１」にセットする（１８．ヘッド動作終了）。ヘッド位置制御部６は、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」が「１」になったことを検出し、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」を「１」にセットし、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」を「０」にリセットしてシーク動作を開始する（１９．コマンドＢ実行開始）。さらに、コマンド制御部４は、「Ｑｕｅｕｅ　Ｓｔｓ」を参照することで、つぎのシークコマンドを発行可能であることを確認し、シークコマンドＣを発行する。シークコマンド管理部１１は、このコマンドＣを受信して「ＣＭＤ　ｒｅｇ」の値を「Ｃ」とし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「１」にセットする（２０．コマンドＣ発行）。
【００６９】
つぎに、図７を参照し、コマンド制御部４が発行したシークコマンドの取り消しについて説明する。コマンド制御部４は、ホストからの要求をもとに、シークコマンド、リードコマンドおよびライトコマンドを発行する際に、コマンドの並べ替えをおこなって作業の効率化を実現している。このコマンドの並べ替えをおこなう場合、あらかじめ発行したシークコマンドであっても、シークコマンド管理部１１で待機しているコマンドは、並べ替えの対象に含めることが望ましい。したがって、シークコマンド管理部１１では、コマンド制御部４によってシークコマンドの取り消しを要求する取り消しコマンドが発行されたことを示すステータスパラメータ「Ｓｅｅｋ　Ａｂｏｒｔ」を設けることで、待機コマンドを取り消し可能としている。
【００７０】
図７は、待機コマンドを取り消す場合のシークコマンド管理部１１の動作を説明する説明図である。図７において、「ＣＭＤ　ｒｅｇ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」、「Ｑｕｅｕｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｉｎｔ」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」は、それぞれ図４に示したステータスパラメータと同様に機能する。また、図７（ａ）は、ヘッド位置制御部６がコマンドＡを実行中である場合における取り消し動作を示し、図７（ｂ）は、コマンドＡが抑止状態にある場合における取り消し動作を示し、図７（ｃ）は、コマンドＡが実行中で、かつコマンドＢが待機中である場合における取り消し動作を示し、図７（ｄ）は、コマンドＡが抑止状態にあり、かつコマンドＢが発行されている状態での取り消し動作を示す。さらに、図７（ｅ）は、取り消し動作中のシークコマンド発行について説明する図である。
【００７１】
図７（ａ）に示したステータス表５３では、初期状態においてコマンドＡが実行中であるので、「ＣＭＤ　ｒｅｇ」の値が「Ａ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「０」、「Ｑｕｅｕｅ　Ｓｔｓ」の値が「０」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」の値が「０」、「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。
【００７２】
ここで、コマンド制御部４から取り消しコマンドが発行されると、「Ｓｅｅｋ　Ａｂｏｒｔ」が「１」にセットされ、「Ｃｏｍｍａｎｄ　Ｉｎｔ」がマスクされる（１．取り消しコマンド発生）。ここで、マスクとは、パラメータの実際の値に関わらず、ヘッド位置制御部６に対してパラメータの値を「０」と認識させることを言う。つぎに、ヘッド位置制御部６が、「Ｓｅｅｋ　Ａｂｏｒｔ」が発生したことを認識する（２．ヘッド位置制御部が取り消しコマンド確認）。取り消しコマンドを認識したヘッド位置制御部６は、コマンドＡの終了後に、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値を「０」にリセットする（３．取り消し動作）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」のセットはおこなわない。この後、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のマスクを解除し、ヘッド位置制御部６は再びシークコマンドを受付可能な状態となる。
【００７３】
また、図７（ｂ）に示したステータス表５４では、初期状態においてコマンドＡが保留中であるので、「ＣＭＤ　ｒｅｇ」の値が「Ａ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「０」、「Ｑｕｅｕｅ　Ｓｔｓ」の値が「０」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」の値が「０」、「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。
【００７４】
ここで、コマンド制御部４から取り消しコマンドが発行されると、ステータス表５３と同様に、「Ｓｅｅｋ　Ａｂｏｒｔ」が「１」にセットされ、「Ｃｏｍｍａｎｄ　Ｉｎｔ」がマスクされる（１．取り消しコマンド発生）。つぎに、ヘッド位置制御部６が、「Ｓｅｅｋ　Ａｂｏｒｔ」が発生したことを認識する（２．ヘッド位置制御部が取り消しコマンド確認）。取り消しコマンドを認識したヘッド位置制御部６は、コマンドＡを実行せずに、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値を「０」にリセットする（３．取り消し動作）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」のセットはおこなわない。この後、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のマスクを解除し、ヘッド位置制御部６は再びシークコマンドを受付可能な状態となる。
【００７５】
また、図７（ｃ）に示したステータス表５５では、初期状態においてコマンドＡが実行中、コマンドＢが待機中であるので、「ＣＭＤ　ｒｅｇ」の値が「Ｂ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」、「Ｑｕｅｕｅ　Ｓｔｓ」の値が「１」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ
Ｌａｔｃｈ」の値が「０」、「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。
【００７６】
ここで、コマンド制御部４から取り消しコマンドが発行されると、「Ｓｅｅｋ　Ａｂｏｒｔ」が「１」にセットされ、「Ｃｏｍｍａｎｄ　Ｉｎｔ」がマスクされ、さらに「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」が「０」にリセットされる。（１．取り消しコマンド発生）。つぎに、ヘッド位置制御部６が、「Ｓｅｅｋ　Ａｂｏｒｔ」が発生したことを認識する（２．ヘッド位置制御部が取り消しコマンド確認）。取り消しコマンドを認識したヘッド位置制御部６は、ステータス表５３と同様に、コマンドＡのシーク動作終了時に、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値を「０」にリセットする（３．取り消し動作）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」のセットはおこなわない。この後、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のマスクを解除し、ヘッド位置制御部６は再びシークコマンドを受付可能な状態となる。
【００７７】
また、図７（ｄ）に示したステータス表５６では、初期状態においてコマンドＡが保留中、コマンドＢが待機中であるので、「ＣＭＤ　ｒｅｇ」の値が「Ｂ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」、「Ｑｕｅｕｅ　Ｓｔｓ」の値が「１」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ
Ｌａｔｃｈ」の値が「０」、「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。
【００７８】
ここで、コマンド制御部４から取り消しコマンドが発行されると、ステータス表５５と同様に、「Ｓｅｅｋ　Ａｂｏｒｔ」が「１」にセットされ、「Ｃｏｍｍａｎｄ　Ｉｎｔ」がマスクされ、さらに「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」が「０」にリセットされる。（１．取り消しコマンド発生）。つぎに、ヘッド位置制御部６が、「Ｓｅｅｋ　Ａｂｏｒｔ」が発生したことを認識する（２．ヘッド位置制御部が取り消しコマンド確認）。取り消しコマンドを認識したヘッド位置制御部６は、ステータス表５４と同様に、コマンドＡを実行せずに、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値を「０」にリセットする（３．取り消し動作）。ここで、「Ｄｒｉｖｅ　Ｉｎｔ」のセットはおこなわない。この後、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のマスクを解除し、ヘッド位置制御部６は再びシークコマンドを受付可能な状態となる。
【００７９】
ステータス表５３〜５６に示したように、コマンド制御部４が取り消しコマンドを発行し、シークコマンド制御部１１が「Ｓｅｅｋ　Ａｂｏｒｔ」を「１」にセットした後、コマンド制御部４は、取り消し動作の終了を待つことなく、つぎのシークコマンドを発行することができる。
【００８０】
図７（ｅ）のステータス表５７に示したように、まず、初期状態において、「Ｃｏｍｍａｎｄ　Ｉｎｔ」はマスクされている。また、「Ｄｒｉｖｅ　Ｉｎｔ」の値は「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「１」である。ここで、コマンド制御部４がシークコマンドＣを発行すると、「ＣＭＤ　ｒｅｇ」にシークコマンドＣを示す「Ｃ」を書き込み、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」を「１」にセットする。この時、「Ｃｏｍｍａｎｄ　Ｉｎｔ」はマスクされているため、ヘッド位置制御部６に対する割り込み要求は発生しない。
【００８１】
取り消し動作が終了した場合、「Ｓｅｋ　Ａｂｏｒｔ」が「０」にリセットされて「Ｃｏｍｍａｎｄ　Ｉｎｔ」に対するマスクが解除される（２．取り消し動作終了）。マスクの解除によってヘッド位置制御部６に対する割り込み要求が発生し、シークコマンドＣの送信が開始される。この時、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「０」にリセットされ、「ＤＳＰ　Ｂｕｓｙ」が「１」にセットされる（３．コマンドＣ送信）。コマンドＣの送信完了後、ヘッド位置制御部４がパラメータ取得をおこない（４．ヘッド位置制御部がパラメータ取得）、「Ｑｕｅｕｅ　Ｓｔｓ」を「０」にリセットする。
【００８２】
このように、ステータスパラメータ「Ｓｅｅｋ　Ａｂｏｒｔ」を設けることで、待機コマンドを取り消し可能とし、また、コマンド制御部４は取り消しコマンドの発行後、取り消し動作の終了を待つことなく次のシークコマンドを発行することができる。
【００８３】
つぎに、図８を参照し、シークコマンド処理部１１のエラー処理と、シークコマンドの書き換えについて説明する。図８（ａ）はエラー発生時におけるステータスパラメータの変化を示す図であり、図８（ｂ）は、シークコマンド書き換え時におけるステータスパラメータの変化を示す図である。なお、図８（ａ）、図８（ｂ）において、「ＣＭＤ　ｒｅｇ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」、「Ｑｕｅｕｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｓｔｓ」、「Ｄｒｉｖｅ　Ｉｎｔ」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」、「ＤＳＰ　Ｂｕｓｙ」および「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」は、それぞれ図４に示したステータスパラメータと同様に機能する。
【００８４】
図８（ａ）に示したステータス表５８では、初期状態において、「ＣＭＤ　ｒｅｇ」の値が「Ｂ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」「Ｑｕｅｕｅ　Ｓｔｓ」の値が「１」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。この状態で、シークコマンドＡがエラー終了した場合、「Ｄｒｉｖｅ　Ｓｔｓ」の値を「Ｅｒｒｏｒ」とセットし、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値を「０」にリセットする（１．ヘッド位置制御部エラー終了）。つぎに、「ＤＳＰ　Ｂｕｓｙ」の値を「０」にリセットし、「Ｄｒｉｖｅ　Ｉｎｔ」の値を「１」にセットする。同時に、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」の値を「０」にリセットする（２．エラー処理）。
【００８５】
「Ｄｒｉｖｅ　Ｉｎｔ」の値が「１」となったことで、コマンド制御部４に対して割り込み要求が発生し、ヘッド位置制御部４のエラー終了がコマンド制御部４に通知される（３．エラー報告）。コマンド制御部４は、エラー報告を受けてシークコマンド管理部１１のパラメータを取得した後、「Ｄｒｉｖｅ　Ｉｎｔ」をリセットする（４．コマンド制御部がパラメータ取得）。ここで、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「０」であるので、コマンドＢはヘッド位置制御部６に送信されない。
【００８６】
つづいて、エラー報告を受けたコマンド制御部４は、コマンドＣを発行し、「ＣＭＤ　ｒｅｇ」に「Ｃ」をセットし、「Ｃｏｍｍａｎｄ　Ｉｎｔ」および「Ｑｕｅｕｅ　Ｓｔｓ」に「１」をセットする（５．コマンドＣ発生）。このエラー後に発行されるコマンドＣは、エラーからのリカバリのためのコマンドであることが望ましい。「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」となったことで、ヘッド位置制御部６に対して割り込みが発生し（６．ヘッド位置制御部に割り込み送信）、ヘッド位置制御部６に対するコマンドＣの送信が開始される。
【００８７】
図８（ｂ）に示したステータス表５９では、初期状態において、「ＣＭＤ　ｒｅｇ」の値が「Ｂ」、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値が「１」「Ｑｕｅｕｅ　Ｓｔｓ」の値が「１」、「Ｄｒｉｖｅ　Ｉｎｔ」の値が「０」、「Ｃｏｍｍａｎｄ　Ｅｘｅｃ」の値が「１」、「ＤＳＰ　Ｂｕｓｙ」の値が「１」、「Ｗａｙｐｏｉｎｔ　Ｌａｔｃｈ」および「Ｓｅｅｋ　Ａｂｏｒｔ」の値が「０」である。この状態で、待機コマンド、すなわち「ＣＭＤ　ｒｅｇ」の値である「Ｂ」を書き換える場合、まず、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のパラメータをマスクする（１．書き換え準備）。したがって、ヘッド位置制御部６に対しては、「Ｃｏｍｍａｎｄ　Ｉｎｔ」の値は「０」となり、ヘッド位置制御部６への割り込み要求は発生しない。つぎに、「コマンドＣ」を発行しコマンドの書き換えをおこなう（２．コマンドＣ発生）。最後に、「Ｃｏｍｍａｎｄ　Ｉｎｔ」のマスクを解除することで書き換えを終了する（３．書き換え終了）。
【００８８】
なお、書き換えをおこなう場合、「Ｃｏｍｍａｎｄ　Ｉｎｔ」がマスクされない状態で「１」である必要がある。「Ｃｏｍｍａｎｄ　Ｉｎｔ」が「１」である場合、「ＣＭＤ　ｒｅｇ」に保持されたコマンドはヘッド位置制御部６に送信される前の状態であるので、安全に書き換えることができるが、「Ｃｏｍｍａｎｄ　Ｉｎｔ」が「０」である場合、「ＣＭＤ　ｒｅｇ」に保持されたコマンドはヘッド位置制御部６に送信された後の状態であるためである。
【００８９】
上述してきたように、本実施の形態では、コマンド制御部４が発行したシークコマンドをシークコマンド管理部１１に送信し、シークコマンド管理部１１は、ヘッド位置制御部６がシーク動作中でない場合には受信したシークコマンドをヘッド位置制御部６に送信し、ヘッド位置制御部６がシーク動作中である場合に受信したシークコマンドをメモリ１３に記憶し、シーク動作の完了を待ってヘッド位置制御部６にシークコマンドを送信するように構成している。
【００９０】
したがって、コマンド制御部４は、ヘッド位置制御部６の状態を管理し、シークコマンドの発行を制御するための負荷を軽減されることとなる。このコマンド制御部４におけるシークコマンド発行時のオーバヘッドの減少によって、コマンド制御部４の動作を効率化し、ディスク記憶装置の動作速度を向上させることができる。
【００９１】
また、シークコマンド管理部１１がヘッド動作制御部８の動作状況を確認し、記憶ディスク１０に対する読み書き動作中におけるシークコマンド発行を抑止するので、コマンド制御部６の負荷をさらに減少させることができる。
【００９２】
さらに、シークコマンド管理部１１は、シークコマンドをヘッド位置制御部６に対して送信したか否かを把握し、ヘッド位置制御部６に対して未送信のシークコマンドは任意に取り消しおよび書き換え可能としているので、コマンド制御部４におけるコマンド発行の自由度を損なうことなくコマンド制御部４の負荷を軽減することができる。
【００９３】
（付記１）データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、
前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、
前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、
を備えたことを特徴とするディスク記憶装置。
【００９４】
（付記２）前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする付記１に記載のディスク記憶装置。
【００９５】
（付記３）前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記シーク動作を停止させるシーク抑止部と、を備えたことを特徴とする付記１または２に記載のディスク記憶装置。
【００９６】
（付記４）前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする付記１〜３のいずれか一つに記載のディスク制御装置。
【００９７】
（付記５）前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする付記１〜４のいずれか一つに記載のディスク制御装置。
【００９８】
（付記６）前記コマンド待機処理部は、前記待機コマンドの送信を開始したか否かを判定し、前記待機コマンドの送信が開始されていない場合に当該待機コマンドの書き換えを許可することを特徴とする付記１〜５のいずれか一つに記載のディスク制御装置。
【００９９】
【発明の効果】
以上説明したように、本発明にかかるディスク記憶装置は、シーク監視部によってヘッド位置制御部がシーク動作中であるか否かを判定し、ヘッド位置制御部のシーク動作中にコマンド制御部が発行したシークコマンドを待機コマンドとして保持し、ヘッド位置制御部のシーク動作終了後にシークコマンドをヘッド位置制御部に送信するように構成することで、コマンド制御部の負荷を軽減しているので、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【０１００】
また、本発明によれば、ディスク記憶装置は、シーク監視部によるヘッド位置制御部の監視と、コマンド待機処理部によるコマンドの待機および送信をコマンド制御部に対して独立におこなうことで、コマンド制御部の処理を軽減しているので、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【０１０１】
また、本発明によれば、ディスク記憶装置は、ヘッド動作制御部による読み書き動作を監視するヘッド監視部およびヘッド動作制御部が読み書き動作をおこなっている間シーク動作を抑止するシーク抑止部と、をコマンド制御部に対して独立に設けることで、コマンド制御部の負荷を軽減しているので、動作速度をさらに向上したディスク記憶装置を提供することができるという効果を奏する。
【０１０２】
また、本発明によれば、ディスク記憶装置は、シークコマンドの取り消し動作中にコマンド制御部が新たにシークコマンドを発行した場合、新たなシークコマンドを待機コマンドとして保持し、取り消し動作終了後に新たなシークコマンドをヘッド位置制御部に送信するように構成しているので、コマンド制御部の処理を軽減させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【０１０３】
また、本発明によれば、ディスク記憶装置は、ヘッド位置制御部がエラーを発生した場合、待機コマンドを破棄することで、復旧を容易に実行可能としているので、動作の安定性を保ちつつ動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【０１０４】
また、本発明によれば、ディスク記憶装置は、ヘッド位置制御部対して未送信の待機コマンドに対してはコマンドの取り消しおよび書き換えを許可する構成としているので、コマンド制御部の処理を制限することなく負荷を軽減し、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態にかかるディスク記憶装置の概要構成を示す概要構成図である。
【図２】図１に示したシークコマンド管理部の処理動作を説明する説明図である。
【図３】ディスク記憶装置のシーク動作を説明する説明図である。
【図４】シークコマンド管理部が有するステータスパラメータを示す図である。
【図５】ヘッド動作制御部の動作状態によって抑止されたシーク動作を説明する説明図である。
【図６】シークコマンド管理部が有するステータスパラメータを示す図である。
【図７】待機コマンドを取り消す場合のシークコマンド管理部の動作を説明する説明図である。
【図８】シークコマンド処理部のエラー処理と、シークコマンドの書き換えについて説明する説明図である。
【図９】従来のディスク記憶装置の概要構成を示す概要構成図である。
【図１０】従来のディスク記憶装置のシーク動作を説明する説明図である。
【符号の説明】
１　ホスト
２　ディスク記憶装置
３　インターフェース部
４　コマンド制御部
５　記憶部
６　ヘッド位置制御部
７　アクチュエータ
８　ヘッド動作制御部
９　ヘッド部
１０　記憶ディスク
１１　シークコマンド管理部
１２　コマンド待機処理部
１３　メモリ
１４　シーク監視部
１５　ヘッド監視部
１６　シーク抑止部
５１〜５９　ステータス表
【図１】
2004079073.tif 000003
【図２】
2004079073.tif 000004
【図３】
2004079073.tif 000005
【図４】
2004079073.tif 000006
【図５】
2004079073.tif 000007
【図６】
2004079073.tif 000008
【図７】
2004079073.tif 000009
【図８】
2004079073.tif 000010
【図９】
2004079073.tif 000011
【図１０】
2004079073.tif 000012