JP4170044B2 - ディスク記憶装置 - Google Patents
ディスク記憶装置 Download PDFInfo
- Publication number
- JP4170044B2 JP4170044B2 JP2002237620A JP2002237620A JP4170044B2 JP 4170044 B2 JP4170044 B2 JP 4170044B2 JP 2002237620 A JP2002237620 A JP 2002237620A JP 2002237620 A JP2002237620 A JP 2002237620A JP 4170044 B2 JP4170044 B2 JP 4170044B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- seek
- control unit
- head position
- position control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
- G11B5/54—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
- G11B5/5526—Control therefor; circuits, track configurations or relative disposition of servo-information transducers and servo-information tracks for control thereof
- G11B5/553—Details
- G11B5/5547—"Seek" control and circuits therefor
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Moving Of Head For Track Selection And Changing (AREA)
Description
【発明の属する技術分野】
この発明は、データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置に関し、特に、シーク動作を効率化したディスク記憶装置に関する。
【0002】
【従来の技術】
従来、データを記憶する記憶媒体としてディスク記憶装置が用いられてきた。このディスク記憶装置は、データを記憶する記憶領域を記憶ディスク上に割り当て、記憶ディスクを回転させることで、記憶領域に対してアクセスするヘッド部と記憶ディスクとの位置関係を調整して所望の記憶領域に対してデータの読み書きをおこなう。
【0003】
図9は、従来のディスク記憶装置の概要構成を示す概要構成図である。図9において、ディスク記憶装置102は、インターフェース部103、コマンド制御部104、記憶部105、ヘッド位置制御部106およびヘッド動作制御部108を備えている。
【0004】
インターフェース部103は、外部の端末であるホスト101と接続され、ホスト101からの要求をコマンド制御部104に送信する。コマンド制御部104は、インターフェース部103を介して受信した要求をもとに、ヘッド位置制御部106およびヘッド動作制御部108にコマンドを送信し、記憶ディスク110に対するデータの書き込みおよび読み出しをおこなう。具体的には、コマンド制御部104は、ホスト101から読み出し要求を受信した場合、受信した読み出し要求をもとに、記憶ディスク上の位置を指定するシークコマンドと、読み出しを指示するリードコマンドとを発行する。また、コマンド制御部104は、ホスト101から書き込み要求を受信した場合、受信した書き込み要求をもとに、記憶ディスク110上の位置を指定するシークコマンドと、書き込みを指示するライトコマンドとを発行する。
【0005】
コマンド制御部104が発行したシークコマンドは、ヘッド位置制御部106に送信される。また、コマンド制御部104が発行したリードコマンドおよびライトコマンドは、ヘッド動作制御部108に送信される。ヘッド位置制御部106は、受信したシークコマンドによってアクチュエータ107を制御し、記憶ディスク110とヘッド部109との位置決めをおこなう。このアクチュエータの制御によって、ヘッド部109を記憶ディスク上の所望の領域に移動させる操作をシーク動作と言う。また、ヘッド動作制御部108は、受信したリードコマンドおよびライトコマンドをもとに、記憶ディスク110に対して読み書き動作を実行する。
【0006】
ここで、図10を参照し、ディスク記憶装置102のシーク動作について説明する。まず、コマンド制御部104は、ホスト101から受信した要求をもとにシークコマンドAを発行する。つぎに、コマンド制御部104は、発行したシークコマンドAをヘッド位置制御部106に送信する(処理動作121)。
【0007】
ヘッド位置制御部106は、コマンド制御部104からシークコマンドAを受信し(処理動作131)、シークコマンドAをもとにアクチュエータ107を操作し、シーク動作を実行する(処理動作132)。
【0008】
ここで、コマンド制御部104が、シークコマンドAを取り消して別の位置にシークしたい場合、ヘッド位置制御部106は、既にシークコマンドAを実行中であるので、コマンド制御部104は、ヘッド位置制御部106にシークコマンドを発行することができない。したがって、コマンド制御部104は、ヘッド位置制御部106のシーク動作が終了するまで待機し(処理動作122)、ヘッド位置制御部106からシーク動作の終了報告があった場合に、シークコマンドBを発行してヘッド位置制御部106に送信する(処理動作123)。ヘッド位置制御部106は、シークコマンドBを受信した(処理動作133)後、アクチュエータを操作してシーク動作を実行する(処理動作134)。
【0009】
このように従来のディスク記憶装置102では、シーク動作によって記憶ディスク110とヘッド部109との位置関係を決定した後に、ヘッド部による読み出し動作および書き込み動作をおこなうことで、記憶ディスク110上の所望の記憶領域に対してデータの読み書きをおこなっていた。
【0010】
【発明が解決しようとする課題】
しかしながら、従来のディスク記憶装置では、ヘッド位置制御部106がシーク動作を行っている間、コマンド制御部104はつぎのシークコマンドを発行することができず、シーク動作の終了まで待機する必要があった。コマンド制御部104は、ホスト101との通信、キャッシュ制御、リードコマンドおよびライトコマンドの発行などの処理をおこなうため、シーク動作の終了を待つことで発生するオーバヘッドは、ディスク記憶装置全体の動作速度を低下させる原因となる。
【0011】
近年、情報処理技術の向上に伴い、ディスク記憶装置に対して大容量化および高速化が求められているため、シークコマンド処理の効率化が非常に大きな問題となっている。すなわち、従来のディスク記憶装置では、シークコマンド発行時のオーバヘッドにより、ディスク記憶装置の動作速度が低下するという問題点があった。
【0012】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、本発明にかかるディスク記憶装置は、データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、を備えたことを特徴とする。
【0014】
この発明によれば、ディスク記憶装置は、シーク監視部によってヘッド位置制御部がシーク動作中であるか否かを判定し、ヘッド位置制御部のシーク動作中にコマンド制御部が発行したシークコマンドを待機コマンドとして保持し、ヘッド位置制御部のシーク動作終了後にシークコマンドをヘッド位置制御部に送信するように構成することで、コマンド制御部の負荷を軽減している。
【0015】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする。
【0016】
この発明によれば、ディスク記憶装置は、シーク監視部によるヘッド位置制御部の監視と、コマンド待機処理部によるコマンドの待機および送信をコマンド制御部に対して独立におこなうことで、コマンド制御部の処理を軽減している。
【0017】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記コマンド制御部によって抑止情報が付加されたシークコマンドのシーク動作を停止させるシーク抑止部と、を備えたことを特徴とする。
【0018】
この発明によれば、ディスク記憶装置は、ヘッド動作制御部による読み書き動作を監視するヘッド監視部およびヘッド動作制御部が読み書き動作をおこなっている間シーク動作を抑止するシーク抑止部と、をコマンド制御部に対して独立に設けることで、コマンド制御部の負荷を軽減している。
【0019】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする。
【0020】
この発明によれば、ディスク記憶装置は、シークコマンドの取り消し動作中にコマンド制御部が新たにシークコマンドを発行した場合、新たなシークコマンドを待機コマンドとして保持し、取り消し動作終了後に新たなシークコマンドをヘッド位置制御部に送信するように構成している。
【0021】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする。
【0022】
この発明によれば、ディスク記憶装置は、ヘッド位置制御部がエラーを発生した場合、待機コマンドを破棄することで、復旧を容易に実行可能としている。
【0023】
また、本発明にかかるディスク記憶装置は、上記の発明において、前記コマンド待機処理部は、前記待機コマンドの送信を開始したか否かを判定し、前記待機コマンドの送信が開始されていない場合に当該待機コマンドの書き換えを許可することを特徴とする。
【0024】
この発明によれば、ディスク記憶装置は、ヘッド位置制御部対して未送信の待機コマンドに対してはコマンドの取り消しおよび書き換えを許可する構成としている。
【0025】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るディスク記憶装置の好適な実施の形態を詳細に説明する。
【0026】
図1は、本実施の形態にかかるディスク記憶装置の概要構成を示す概要構成図である。図1において、ディスク記憶装置2は、インターフェース部3、コマンド制御部4、記憶部5、シークコマンド管理部11、ヘッド位置制御部6およびヘッド動作制御部8を備えている。
【0027】
インターフェース部3は、外部の端末であるホスト1と接続され、ホスト1からの要求をコマンド制御4に送信する。コマンド制御部4は、インターフェース部3を介して受信した要求をもとに、ヘッド位置制御部6およびヘッド動作制御部8にコマンドを送信し、記憶ディスク10に対するデータの書き込みおよび読み出しをおこなう。具体的には、コマンド制御部4は、ホスト1から読み出し要求を受信した場合、受信した読み出し要求をもとに、記憶ディスク上の位置を指定するシークコマンドと、読み出しを指示するリードコマンドとを発行する。また、コマンド制御部4は、ホスト1から書き込み要求を受信した場合、受信した書き込み要求をもとに、記憶ディスク10上の位置を指定するシークコマンドと、書き込みを指示するライトコマンドとを発行する。
【0028】
コマンド制御部4が発行したリードコマンドおよびライトコマンドは、ヘッド動作制御部8に送信される。ヘッド動作制御部8は、受信したリードコマンドおよびライトコマンドをもとに、記憶ディスク10に対して読み書き動作を実行する。
【0029】
また、コマンド制御部4が発行したシークコマンドは、シークコマンド管理部11に送信される。シークコマンド管理部11は、受信したシークコマンドをヘッド位置制御部6に送信し、ヘッド位置制御部6にアクチュエータ7を制御させる。ヘッド位置制御部6は、受信したシークコマンドによってアクチュエータ7を制御することで、記憶ディスク10とヘッド部9との位置決めをおこなう。このアクチュエータの制御によって、ヘッド部9を記憶ディスク上の所望の領域に移動させる操作をシーク動作と言う。
【0030】
一方、シークコマンド管理部11は、ヘッド位置制御部6がシーク動作中である場合、シークコマンドを保持し、ヘッド位置制御部6のシーク動作終了後にシークコマンドをヘッド位置制御部6に送信する。ここで、シークコマンド管理部11について詳細に説明する。シークコマンド管理部11は、その内部にコマンド待機処理部12、メモリ13、シーク監視部14、ヘッド監視部15、シーク抑止部16を備えている。
【0031】
シーク監視部14は、ヘッド位置制御部6のシーク動作を監視する。コマンド待機処理部12は、コマンド制御部4からシークコマンドを受信し、シーク監視部14の監視結果をもとに、シークコマンドを送信するか保持するかの判定をおこなう。ヘッド位置制御部6がシーク動作中でない場合、コマンド待機処理部12は、受信したシークコマンドをヘッド位置制御部6に送信する。一方、ヘッド位置制御部6がシーク動作中である場合、コマンド待機処理部12は、受信したシークコマンドを待機コマンドとしてメモリ13に保持する。また、コマンド待機処理部12は、シーク監視部14がシーク動作の終了を検知した場合に、メモリ13に記憶したシークコマンドをヘッド位置制御部6に送信する。
【0032】
また、ヘッド監視部15は、ヘッド動作制御部8による読み書き動作を監視する。シーク抑止部16は、ヘッド監視部15の監視結果をもとに、ヘッド動作制御部8が、読み書き動作を実行している間、ヘッド位置制御部6のシーク動作を抑止する。
【0033】
図2は、シークコマンド管理部11の処理動作を説明する説明図である。図2において、まず、コマンド待機処理部12が、シークコマンドを受信(ステップS101)する。つぎに、シーク監視部14によって、ヘッド位置制御部6がシーク動作中か否かを判定する(ステップS102)。
【0034】
ヘッド位置制御部6がシーク動作中である場合、(ステップS102,Yes)、コマンド待機処理部12は、受信したシークコマンドを待機コマンドとしてメモリ13に保持する(ステップS103)。その後、シーク監視部14からヘッド位置制御部6に割り込み要求を送信し(ステップS104)、ヘッド位置制御部6のシーク動作が終了したか否かを判定する(ステップS105)。ヘッド位置制御部6のシーク動作が終了していない場合(ステップS105,No)、シーク監視部14は、再度ヘッド位置制御部6に割り込み要求を送信する(ステップS104)。
【0035】
ヘッド位置制御部がシーク動作をおこなっていない場合(ステップS102,No)およびヘッド位置制御部6のシーク動作が終了した場合(ステップS105,Yes)、コマンド待機処理部12は、ヘッド位置制御部6にシークコマンドを送信し(ステップS106)、処理を終了する。
【0036】
ここで、図3を参照し、ディスク記憶装置2のシーク動作について説明する。図3はディスク記憶装置2のシーク動作を説明する説明図である。まず、コマンド制御部4は、ホスト1から受信した要求をもとにシークコマンドAを発行する。つぎに、コマンド制御部4は、発行したシークコマンドAをシークコマンド管理部11に送信する(処理動作21)。
【0037】
シークコマンド管理部11は、コマンド制御部4からシークコマンドAを受信し、シークコマンドAをヘッド位置制御部6に送信する(処理動作31)。ヘッド位置制御部6は、シークコマンド管理部4からシークコマンドAを受信し(処理動作41)、シークコマンドAをもとにアクチュエータ7を操作し、シーク動作を実行する(処理動作42)。
【0038】
ここで、コマンド制御部4が、さらにホスト1から要求を受信した場合、コマンド制御部4は、受信した要求をもとにシークコマンドBを発行する。つぎに、コマンド制御部4は、発行したシークコマンドBをシークコマンド管理部11に送信する(処理動作22)。
【0039】
シークコマンド管理部11は、コマンド制御部4からシークコマンドBを受信する(処理動作32)。しかし、ヘッド位置制御部6が、シークコマンドAを実行中であるので、シークコマンド管理部11は、ヘッド位置制御部6にシークコマンドBを送信することができない。したがって、コマンド制御部4は、シークコマンドBを待機コマンドとして保持し、ヘッド位置制御部6のシーク動作終了まで待機する(処理動作33)。その後、シークコマンド管理部11は、ヘッド位置制御部6からシーク動作の終了報告があった場合に、シークコマンドBをヘッド位置制御部6に送信する(処理動作34)。ヘッド位置制御部6は、シークコマンドBを受信した(処理動作43)後、アクチュエータを操作してシーク動作を実行する(処理動作44)。
【0040】
このシークコマンド管理部11の動作を実現するステータス群と、シーク動作時におけるステータスの変化について図4を参照して説明する。図4は、シークコマンド管理部11が有するステータスパラメータを示す図である。図4において、「CMD reg」はメモリ13に記憶したシークコマンドを示し、「CMD reg」の値が「A」であればメモリ13がシークコマンドAを記憶しており、「CMD reg」の値が「B」であればメモリ13がシークコマンドBを記憶していることを示す。
【0041】
また、「Command Int」は、シークコマンド管理部11からヘッド位置制御部6への割り込み要求であり、値が「1」の時に割り込み要求が発生しており、値が「0」の時は割り込み要求がないことを示す。同様に、「Queue Sts」は、メモリ13に待機コマンドが存在するか否かを示すパラメータであり、値が「1」の時に待機コマンドが存在し、「0」の時に待機コマンドが存在しないことを示す。すなわち、「Queue Sts」の値が「1」の時にメモリ13が記憶しているシークコマンドが待機コマンドとなる。また、待機コマンドの送信後、「Queue Sts」の値を「0」とすることで、メモリ13が記憶している内容は待機コマンドと見なされないこととなる。
【0042】
また、「Drive Sts」は、前回のシーク動作が正常に終了したか否かを示し、この値が「Good」である場合、シーク動作が正常に終了したことを示し、「Error」である場合、シーク動作がエラー終了したことを示す。さらに、「Drive Int」はシークコマンド管理部11からコマンド制御部4への割り込み要求を示し、値が「1」の時に割り込み要求が発生しており、値が「0」の時は割り込み要求がないことを示す。同様に、「Command Exec」は、ヘッド位置制御部6によるシーク動作の開始時に「1」にセットされ、シーク動作完了時に「0」にリセットされる。
【0043】
また、「DSP Busy」は、ヘッド位置制御部6がシークコマンドを受信した時点で「1」にセットされ、シーク動作が終了した状態で「0」にリセットされる。同様に、「Waypoint Latch」は、ヘッド監視部15が読み書き動作の終了を検知した場合に「1」にセットされ、ヘッド位置制御部6がシーク動作を開始した場合に「0」にリセットされる。
【0044】
図4に示したステータス表51では、まず、初期状態において、「Command Int」、「Queue Sts」、「Drive Int」、「Command Exec」、「DSP Busy」、「Waypoint Latch」がそれぞれ「0」である(0.初期状態)。なお、「CMD reg」および「Drive Sts」は、どんな値であっても構わない。
【0045】
シークコマンド管理部11は、まず、コマンド制御部4が発行したシークコマンドAを受信し、「CMD reg」の値を「A」とし、「Command Int」および「Queue Sts」の値を「1」にセットする(1.コマンドA発行)。ここで、「Command Int」の値が「1」となったことによって、シークコマンド管理部11からヘッド位置制御部6に対して割り込み要求が発生する(2.ヘッド位置制御部に割り込み要求)。
【0046】
この時点でヘッド位置制御部5がシーク動作を行っていないため、シークコマンド管理部11は、ヘッド位置制御部6にシークコマンドAを送信し、「Command Int」を「0」にリセットし、「DSP Busy」を「1」にセットする(3.コマンドA送信)。
【0047】
その後、ヘッド位置制御部6が各パラメータの値を取得して「Queue Sts」を「0」にリセットする(4.ヘッド位置制御部がパラメータ取得)。さらに、ヘッド位置制御部6が、シーク動作の実行を開始した場合に「Command Exec」の値を「1」にセットする(5.コマンドA実行開始)。
【0048】
コマンド制御部4は、「Queue Sts」を参照することで、つぎのシークコマンドを発行可能であることを確認し(6.次コマンドの発行可能を確認)、シークコマンドBを発行する。シークコマンド管理部11は、このコマンドBを受信して「CMD reg」の値を「B」とし、「Command Int」および「Queue Sts」の値を「1」にセットする(7.コマンドB発行)。ここで、「Command Int」の値が「1」となったことにより、シークコマンド管理部11からヘッド位置制御部6に対して割り込み要求が発生する(8.ヘッド位置制御部に割り込み要求)。
【0049】
しかし、「DSP Busy」が「1」、すなわちヘッド位置制御部6がシークコマンドAのシーク動作中であるために、シークコマンドBのヘッド位置制御部6に対する送信はおこなわれず、「Command Int」および「Queue Sts」が「1」のまま、シーク動作の終了を待機する。ヘッド位置制御部6がシークコマンドAのシーク動作を終了した場合、シークコマンド管理部11は、「Drive Sts」の値を「Good」とし、「Command Exec」の値を「0」にリセットする(9.コマンドA終了)。
【0050】
さらに、シークコマンド管理部11は、「DSP Busy」の値を「0」にリセットし、「Drive Int」の値を「1」にセットする(10.コマンドA終了処理)。ここで、「Drive Int」の値が「1」となったことによって、シークコマンド管理部11からコマンド制御部4に対して割り込み要求が発生する(11.コマンドA終了報告)。このコマンド制御部4に対する割込み要求によって、コマンド制御部4は、「Drive Sts」を参照してシークコマンドAが正常に終了したことを確認し、「Drive Int」の値を「0」にリセットする(12.コマンドA終了確認)。
【0051】
つぎに、シークコマンド管理部11は、ヘッド位置制御部6に対してシークコマンドBを送信し、「Command Int」および「DSP Busy」の値を「1」にセットする(13.コマンドB送信)。その後、ヘッド位置制御部6が各パラメータの値を取得して「Queue Sts」を「0」にリセットする(14.ヘッド位置制御部がパラメータ取得)。さらに、ヘッド位置制御部6が、「Drive Int」の値を参照し、シーク動作が実行可能であること、すわなち「Drive Int」の値が「0」であることを確認し(15.コマンド実行可能を確認)、シーク動作の実行を開始して「Command Exec」の値を「1」にセットする(16.コマンドB実行開始)。
【0052】
つぎに、ヘッド動作制御部8の動作状態によるシーク動作の抑止について説明する。ヘッド動作制御部8がヘッド部9を制御し、記憶ディスク10に対して読み書きを実行している間、ヘッド部9の記憶ディスク10に対する位置は一定に定めておく必要がある。したがって、ヘッド位置制御部6がシークコマンドを受信している状態であっても、ヘッド部9の読み書き動作中はシーク動作を抑止する必要が生じる。
【0053】
ヘッド部9の読み書き動作中にシーク動作を抑止する方法として、ここでは抑止ビットを用いる。コマンド制御部4は、ヘッド部9の読み書き状況に対応してシーク動作を抑止する必要があれば、シークコマンドに抑止ビットを付加して発行する。ヘッド位置制御部6は、受信したシークコマンドに抑止ビットが付加されていた場合、シーク動作を開始せずに待機する。シークコマンド管理部11は、その内部のヘッド監視部15によってヘッド動作制御部8の動作状態を監視し、シーク抑止部16は、ヘッド管理部15の監視結果をもとに、ヘッド動作制御部8が読み書き動作中にシーク動作を抑止し、読み書き動作が終了した時点でシーク動作の抑止を解除する。ヘッド位置制御部6は、シーク抑止部がシーク動作の抑止を解除した時点で、抑止ビットが付加されたシークコマンドの実行を開始する。
【0054】
図5は、ヘッド動作制御部8の動作状態によって抑止されたシーク動作を説明する説明図である。図5において、まず、コマンド制御部4は、ホスト1から受信した要求をもとにシークコマンドAに抑止ビットを付加して発行する。つぎに、コマンド制御部4は、発行した抑止ビット付きシークコマンドAをシークコマンド管理部11に送信する(処理動作61)。
【0055】
シークコマンド管理部11は、コマンド制御部4からシークコマンドAを受信し、シークコマンドAをヘッド位置制御部6に送信する(処理動作71)。ヘッド位置制御部6は、シークコマンド管理部4からシークコマンドAを受信する(処理動作81)。ここで、シークコマンドAに抑止ビットが付加されているため、ヘッド位置制御部6は、シーク抑止部16がシーク抑止を解除するまで待機する。ヘッド位置制御部6は、ヘッド動作制御部8の読み書き動作の終了をヘッド監視部15が検出し、シーク抑止部16がシーク抑止を解除した場合にシーク動作を開始する(処理動作82)。
【0056】
ここで、コマンド制御部4が、さらにホスト1から要求を受信した場合、コマンド制御部4は、受信した要求をもとにシークコマンドBを発行する。つぎに、コマンド制御部4は、発行したシークコマンドBをシークコマンド管理部11に送信する(処理動作62)。
【0057】
シークコマンド管理部11は、コマンド制御部4からシークコマンドBを受信する(処理動作72)。しかし、ヘッド位置制御部6が、シークコマンドAを終了させていないので、シークコマンド管理部11は、ヘッド位置制御部6にシークコマンドBを送信することができない。したがって、コマンド制御部4は、シークコマンドBを待機コマンドとして保持し、ヘッド位置制御部6のシーク動作終了まで待機する(処理動作73)。その後、シークコマンド管理部11は、ヘッド位置制御部6からシーク動作の終了報告があった場合に、シークコマンドBをヘッド位置制御部6に送信する(処理動作74)。ヘッド位置制御部6は、シークコマンドBを受信し(処理動作83)、受信したシークコマンドBに抑止ビットが付加されていれば、シーク抑止部16がシーク抑止を解除するまで待機する。
【0058】
このシークコマンド管理部11の動作を実現するステータス群と、シーク動作時におけるステータスの変化について図6を参照して説明する。図6は、シークコマンド管理部11が有するステータスパラメータを示す図である。図6において、「CMD reg」、「Command Int」、「Queue Sts」、「Drive Sts」、「Drive Int」、「Command Exec」、「DSP Busy」および「Waypoint Latch」は、それぞれ図4に示したステータスパラメータと同様に機能する。
【0059】
図6に示したステータス表52では、初期状態において、「Command Int」、「Queue Sts」、「Drive Int」、「Command Exec」、「DSP Busy」、「Waypoint Latch」がそれぞれ「0」である(0.初期状態)。なお、「CMD reg」および「Drive Sts」は、どんな値であっても構わない。
【0060】
シークコマンド管理部11は、まず、コマンド制御部4が発行したシークコマンドAを受信し、「CMD reg」の値を「A」とし、「Command Int」および「Queue Sts」の値を「1」にセットする(1.コマンドA発行)。ここで、「Command Int」の値が「1」となったことによって、シークコマンド管理部11からヘッド位置制御部6に対して割り込み要求が発生する(2.ヘッド位置制御部に割り込み要求)。
【0061】
この時点でヘッド位置制御部5がシーク動作を行っていないため、シークコマンド管理部11は、ヘッド位置制御部6にシークコマンドAを送信し、「Command Int」を「0」にリセットし、「DSP Busy」を「1」にセットする(3.コマンドA送信)。
【0062】
その後、ヘッド位置制御部6が各パラメータの値を取得して「Queue Sts」を「0」にリセットする(4.ヘッド位置制御部がパラメータ取得)。ここで、シークコマンドAが抑止ビット付きであるので、ヘッド位置制御部6は「Waypoint Latch」の値を確認し、この値が「0」であるのでコマンドAの実行を保留する(5.コマンドA実行保留)。
【0063】
一方、コマンド制御部4は、「Queue Sts」を参照することで、つぎのシークコマンドを発行可能であることを確認し(6.次コマンドの発行可能を確認)、シークコマンドBを発行する。シークコマンド管理部11は、このコマンドBを受信して「CMD reg」の値を「B」とし、「Command Int」および「Queue Sts」の値を「1」にセットする(7.コマンドB発行)。
【0064】
ここで、「Command Int」の値が「1」となったことにより、シークコマンド管理部11からヘッド位置制御部6に対して割り込み要求が発生する(8.ヘッド位置制御部に割り込み要求)。しかし、「DSP Busy」が「1」、すなわちヘッド位置制御部6がシークコマンドAのシーク動作中であるために、シークコマンドBのヘッド位置制御部6に対する送信はおこなわれず、「Command Int」および「Queue Sts」が「1」のまま、シークコマンドAの終了を待機する。
【0065】
つぎに、ヘッド制御部8が読み書き動作を完了してシークコマンド管理部11に割り込みを発生させ、「Waypoint Latch」の値を「1」にセットする(9.ヘッド動作終了)。ヘッド位置制御部6は、「Waypoint Latch」が「1」になったことを検出し、「Command Exec」を「1」にセットし、「Waypoint Latch」を「0」にリセットしてシーク動作を開始する(10.コマンドA実行開始)
【0066】
ヘッド位置制御部6によるシークコマンドAのシーク動作が完了した場合、シークコマンド管理部11は、「Drive Sts」の値を「Good」とし、「Command Exec」の値を「0」にリセットする(11.コマンドA終了)。さらに、シークコマンド管理部11は、「DSP Busy」の値を「0」にリセットし、「Drive Int」の値を「1」にセットする(12.コマンドA終了処理)。ここで、「Drive Int」の値が「1」となったことによって、シークコマンド管理部11からコマンド制御部4に対して割り込み要求が発生する(13.コマンドA終了報告)。このコマンド制御部4に対する割込み要求によって、コマンド制御部4は、「Drive Sts」を参照してシークコマンドAが正常に終了したことを確認し、「Drive Int」の値を「0」にリセットする(14.コマンドA終了確認)。
【0067】
つぎに、シークコマンド管理部11は、ヘッド位置制御部6に対してシークコマンドBを送信し、「Command Int」および「DSP Busy」の値を「1」にセットする(15.コマンドB送信)。その後、ヘッド位置制御部6が各パラメータの値を取得して「Queue Sts」を「0」にリセットする(16.ヘッド位置制御部がパラメータ取得)。ここで、シークコマンドBが抑止ビット付きであるので、ヘッド位置制御部6は「Waypoint Latch」の値を確認し、この値が「0」であるのでコマンドBの実行を保留する(17.コマンドB実行保留)。
【0068】
つぎに、ヘッド制御部8が読み書き動作を完了してシークコマンド管理部11に割り込みを発生させ、「Waypoint Latch」の値を「1」にセットする(18.ヘッド動作終了)。ヘッド位置制御部6は、「Waypoint Latch」が「1」になったことを検出し、「Command Exec」を「1」にセットし、「Waypoint Latch」を「0」にリセットしてシーク動作を開始する(19.コマンドB実行開始)。さらに、コマンド制御部4は、「Queue Sts」を参照することで、つぎのシークコマンドを発行可能であることを確認し、シークコマンドCを発行する。シークコマンド管理部11は、このコマンドCを受信して「CMD reg」の値を「C」とし、「Command Int」および「Queue Sts」の値を「1」にセットする(20.コマンドC発行)。
【0069】
つぎに、図7を参照し、コマンド制御部4が発行したシークコマンドの取り消しについて説明する。コマンド制御部4は、ホストからの要求をもとに、シークコマンド、リードコマンドおよびライトコマンドを発行する際に、コマンドの並べ替えをおこなって作業の効率化を実現している。このコマンドの並べ替えをおこなう場合、あらかじめ発行したシークコマンドであっても、シークコマンド管理部11で待機しているコマンドは、並べ替えの対象に含めることが望ましい。したがって、シークコマンド管理部11では、コマンド制御部4によってシークコマンドの取り消しを要求する取り消しコマンドが発行されたことを示すステータスパラメータ「Seek Abort」を設けることで、待機コマンドを取り消し可能としている。
【0070】
図7は、待機コマンドを取り消す場合のシークコマンド管理部11の動作を説明する説明図である。図7において、「CMD reg」、「Command Int」、「Queue Sts」、「Drive Sts」、「Drive Int」、「Command Exec」、「DSP Busy」および「Waypoint Latch」は、それぞれ図4に示したステータスパラメータと同様に機能する。また、図7(a)は、ヘッド位置制御部6がコマンドAを実行中である場合における取り消し動作を示し、図7(b)は、コマンドAが抑止状態にある場合における取り消し動作を示し、図7(c)は、コマンドAが実行中で、かつコマンドBが待機中である場合における取り消し動作を示し、図7(d)は、コマンドAが抑止状態にあり、かつコマンドBが発行されている状態での取り消し動作を示す。さらに、図7(e)は、取り消し動作中のシークコマンド発行について説明する図である。
【0071】
図7(a)に示したステータス表53では、初期状態においてコマンドAが実行中であるので、「CMD reg」の値が「A」、「Command Int」の値が「0」、「Queue Sts」の値が「0」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」の値が「0」、「Seek Abort」の値が「0」である。
【0072】
ここで、コマンド制御部4から取り消しコマンドが発行されると、「Seek Abort」が「1」にセットされ、「Command Int」がマスクされる(1.取り消しコマンド発生)。ここで、マスクとは、パラメータの実際の値に関わらず、ヘッド位置制御部6に対してパラメータの値を「0」と認識させることを言う。つぎに、ヘッド位置制御部6が、「Seek Abort」が発生したことを認識する(2.ヘッド位置制御部が取り消しコマンド確認)。取り消しコマンドを認識したヘッド位置制御部6は、コマンドAの終了後に、「Command Exec」、「DSP Busy」および「Seek Abort」の値を「0」にリセットする(3.取り消し動作)。ここで、「Drive Int」のセットはおこなわない。この後、「Command Int」のマスクを解除し、ヘッド位置制御部6は再びシークコマンドを受付可能な状態となる。
【0073】
また、図7(b)に示したステータス表54では、初期状態においてコマンドAが保留中であるので、「CMD reg」の値が「A」、「Command Int」の値が「0」、「Queue Sts」の値が「0」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」の値が「0」、「Seek Abort」の値が「0」である。
【0074】
ここで、コマンド制御部4から取り消しコマンドが発行されると、ステータス表53と同様に、「Seek Abort」が「1」にセットされ、「Command Int」がマスクされる(1.取り消しコマンド発生)。つぎに、ヘッド位置制御部6が、「Seek Abort」が発生したことを認識する(2.ヘッド位置制御部が取り消しコマンド確認)。取り消しコマンドを認識したヘッド位置制御部6は、コマンドAを実行せずに、「Command Exec」、「DSP Busy」および「Seek Abort」の値を「0」にリセットする(3.取り消し動作)。ここで、「Drive Int」のセットはおこなわない。この後、「Command Int」のマスクを解除し、ヘッド位置制御部6は再びシークコマンドを受付可能な状態となる。
【0075】
また、図7(c)に示したステータス表55では、初期状態においてコマンドAが実行中、コマンドBが待機中であるので、「CMD reg」の値が「B」、「Command Int」の値が「1」、「Queue Sts」の値が「1」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」の値が「0」、「Seek Abort」の値が「0」である。
【0076】
ここで、コマンド制御部4から取り消しコマンドが発行されると、「Seek Abort」が「1」にセットされ、「Command Int」がマスクされ、さらに「Command Int」および「Queue Sts」が「0」にリセットされる。(1.取り消しコマンド発生)。つぎに、ヘッド位置制御部6が、「Seek Abort」が発生したことを認識する(2.ヘッド位置制御部が取り消しコマンド確認)。取り消しコマンドを認識したヘッド位置制御部6は、ステータス表53と同様に、コマンドAのシーク動作終了時に、「Command Exec」、「DSP Busy」および「Seek Abort」の値を「0」にリセットする(3.取り消し動作)。ここで、「Drive Int」のセットはおこなわない。この後、「Command Int」のマスクを解除し、ヘッド位置制御部6は再びシークコマンドを受付可能な状態となる。
【0077】
また、図7(d)に示したステータス表56では、初期状態においてコマンドAが保留中、コマンドBが待機中であるので、「CMD reg」の値が「B」、「Command Int」の値が「1」、「Queue Sts」の値が「1」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」の値が「0」、「Seek Abort」の値が「0」である。
【0078】
ここで、コマンド制御部4から取り消しコマンドが発行されると、ステータス表55と同様に、「Seek Abort」が「1」にセットされ、「Command Int」がマスクされ、さらに「Command Int」および「Queue Sts」が「0」にリセットされる。(1.取り消しコマンド発生)。つぎに、ヘッド位置制御部6が、「Seek Abort」が発生したことを認識する(2.ヘッド位置制御部が取り消しコマンド確認)。取り消しコマンドを認識したヘッド位置制御部6は、ステータス表54と同様に、コマンドAを実行せずに、「Command Exec」、「DSP Busy」および「Seek Abort」の値を「0」にリセットする(3.取り消し動作)。ここで、「Drive Int」のセットはおこなわない。この後、「Command Int」のマスクを解除し、ヘッド位置制御部6は再びシークコマンドを受付可能な状態となる。
【0079】
ステータス表53〜56に示したように、コマンド制御部4が取り消しコマンドを発行し、シークコマンド制御部11が「Seek Abort」を「1」にセットした後、コマンド制御部4は、取り消し動作の終了を待つことなく、つぎのシークコマンドを発行することができる。
【0080】
図7(e)のステータス表57に示したように、まず、初期状態において、「Command Int」はマスクされている。また、「Drive Int」の値は「0」、「Command Exec」、「DSP Busy」および「Seek Abort」の値が「1」である。ここで、コマンド制御部4がシークコマンドCを発行すると、「CMD reg」にシークコマンドCを示す「C」を書き込み、「Command Int」および「Queue Sts」を「1」にセットする。この時、「Command Int」はマスクされているため、ヘッド位置制御部6に対する割り込み要求は発生しない。
【0081】
取り消し動作が終了した場合、「Sek Abort」が「0」にリセットされて「Command Int」に対するマスクが解除される(2.取り消し動作終了)。マスクの解除によってヘッド位置制御部6に対する割り込み要求が発生し、シークコマンドCの送信が開始される。この時、「Command Int」の値が「0」にリセットされ、「DSP Busy」が「1」にセットされる(3.コマンドC送信)。コマンドCの送信完了後、ヘッド位置制御部4がパラメータ取得をおこない(4.ヘッド位置制御部がパラメータ取得)、「Queue Sts」を「0」にリセットする。
【0082】
このように、ステータスパラメータ「Seek Abort」を設けることで、待機コマンドを取り消し可能とし、また、コマンド制御部4は取り消しコマンドの発行後、取り消し動作の終了を待つことなく次のシークコマンドを発行することができる。
【0083】
つぎに、図8を参照し、シークコマンド処理部11のエラー処理と、シークコマンドの書き換えについて説明する。図8(a)はエラー発生時におけるステータスパラメータの変化を示す図であり、図8(b)は、シークコマンド書き換え時におけるステータスパラメータの変化を示す図である。なお、図8(a)、図8(b)において、「CMD reg」、「Command Int」、「Queue Sts」、「Drive Sts」、「Drive Int」、「Command Exec」、「DSP Busy」および「Waypoint Latch」は、それぞれ図4に示したステータスパラメータと同様に機能する。
【0084】
図8(a)に示したステータス表58では、初期状態において、「CMD reg」の値が「B」、「Command Int」の値が「1」「Queue Sts」の値が「1」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」および「Seek Abort」の値が「0」である。この状態で、シークコマンドAがエラー終了した場合、「Drive Sts」の値を「Error」とセットし、「Command Exec」の値を「0」にリセットする(1.ヘッド位置制御部エラー終了)。つぎに、「DSP Busy」の値を「0」にリセットし、「Drive Int」の値を「1」にセットする。同時に、「Command Int」および「Queue Sts」の値を「0」にリセットする(2.エラー処理)。
【0085】
「Drive Int」の値が「1」となったことで、コマンド制御部4に対して割り込み要求が発生し、ヘッド位置制御部4のエラー終了がコマンド制御部4に通知される(3.エラー報告)。コマンド制御部4は、エラー報告を受けてシークコマンド管理部11のパラメータを取得した後、「Drive Int」をリセットする(4.コマンド制御部がパラメータ取得)。ここで、「Command Int」の値が「0」であるので、コマンドBはヘッド位置制御部6に送信されない。
【0086】
つづいて、エラー報告を受けたコマンド制御部4は、コマンドCを発行し、「CMD reg」に「C」をセットし、「Command Int」および「Queue Sts」に「1」をセットする(5.コマンドC発生)。このエラー後に発行されるコマンドCは、エラーからのリカバリのためのコマンドであることが望ましい。「Command Int」の値が「1」となったことで、ヘッド位置制御部6に対して割り込みが発生し(6.ヘッド位置制御部に割り込み送信)、ヘッド位置制御部6に対するコマンドCの送信が開始される。
【0087】
図8(b)に示したステータス表59では、初期状態において、「CMD reg」の値が「B」、「Command Int」の値が「1」「Queue Sts」の値が「1」、「Drive Int」の値が「0」、「Command Exec」の値が「1」、「DSP Busy」の値が「1」、「Waypoint Latch」および「Seek Abort」の値が「0」である。この状態で、待機コマンド、すなわち「CMD reg」の値である「B」を書き換える場合、まず、「Command Int」のパラメータをマスクする(1.書き換え準備)。したがって、ヘッド位置制御部6に対しては、「Command Int」の値は「0」となり、ヘッド位置制御部6への割り込み要求は発生しない。つぎに、「コマンドC」を発行しコマンドの書き換えをおこなう(2.コマンドC発生)。最後に、「Command Int」のマスクを解除することで書き換えを終了する(3.書き換え終了)。
【0088】
なお、書き換えをおこなう場合、「Command Int」がマスクされない状態で「1」である必要がある。「Command Int」が「1」である場合、「CMD reg」に保持されたコマンドはヘッド位置制御部6に送信される前の状態であるので、安全に書き換えることができるが、「Command Int」が「0」である場合、「CMD reg」に保持されたコマンドはヘッド位置制御部6に送信された後の状態であるためである。
【0089】
上述してきたように、本実施の形態では、コマンド制御部4が発行したシークコマンドをシークコマンド管理部11に送信し、シークコマンド管理部11は、ヘッド位置制御部6がシーク動作中でない場合には受信したシークコマンドをヘッド位置制御部6に送信し、ヘッド位置制御部6がシーク動作中である場合に受信したシークコマンドをメモリ13に記憶し、シーク動作の完了を待ってヘッド位置制御部6にシークコマンドを送信するように構成している。
【0090】
したがって、コマンド制御部4は、ヘッド位置制御部6の状態を管理し、シークコマンドの発行を制御するための負荷を軽減されることとなる。このコマンド制御部4におけるシークコマンド発行時のオーバヘッドの減少によって、コマンド制御部4の動作を効率化し、ディスク記憶装置の動作速度を向上させることができる。
【0091】
また、シークコマンド管理部11がヘッド動作制御部8の動作状況を確認し、記憶ディスク10に対する読み書き動作中におけるシークコマンド発行を抑止するので、コマンド制御部6の負荷をさらに減少させることができる。
【0092】
さらに、シークコマンド管理部11は、シークコマンドをヘッド位置制御部6に対して送信したか否かを把握し、ヘッド位置制御部6に対して未送信のシークコマンドは任意に取り消しおよび書き換え可能としているので、コマンド制御部4におけるコマンド発行の自由度を損なうことなくコマンド制御部4の負荷を軽減することができる。
【0093】
(付記1)データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、
前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、
前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、
を備えたことを特徴とするディスク記憶装置。
【0094】
(付記2)前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする付記1に記載のディスク記憶装置。
【0095】
(付記3)前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記シーク動作を停止させるシーク抑止部と、を備えたことを特徴とする付記1または2に記載のディスク記憶装置。
【0096】
(付記4)前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする付記1〜3のいずれか一つに記載のディスク制御装置。
【0097】
(付記5)前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする付記1〜4のいずれか一つに記載のディスク制御装置。
【0098】
(付記6)前記コマンド待機処理部は、前記待機コマンドの送信を開始したか否かを判定し、前記待機コマンドの送信が開始されていない場合に当該待機コマンドの書き換えを許可することを特徴とする付記1〜5のいずれか一つに記載のディスク制御装置。
【0099】
【発明の効果】
以上説明したように、本発明にかかるディスク記憶装置は、シーク監視部によってヘッド位置制御部がシーク動作中であるか否かを判定し、ヘッド位置制御部のシーク動作中にコマンド制御部が発行したシークコマンドを待機コマンドとして保持し、ヘッド位置制御部のシーク動作終了後にシークコマンドをヘッド位置制御部に送信するように構成することで、コマンド制御部の負荷を軽減しているので、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【0100】
また、本発明によれば、ディスク記憶装置は、シーク監視部によるヘッド位置制御部の監視と、コマンド待機処理部によるコマンドの待機および送信をコマンド制御部に対して独立におこなうことで、コマンド制御部の処理を軽減しているので、シークコマンド発行時のオーバヘッドを減少させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【0101】
また、本発明によれば、ディスク記憶装置は、ヘッド動作制御部による読み書き動作を監視するヘッド監視部およびヘッド動作制御部が読み書き動作をおこなっている間シーク動作を抑止するシーク抑止部と、をコマンド制御部に対して独立に設けることで、コマンド制御部の負荷を軽減しているので、動作速度をさらに向上したディスク記憶装置を提供することができるという効果を奏する。
【0102】
また、本発明によれば、ディスク記憶装置は、シークコマンドの取り消し動作中にコマンド制御部が新たにシークコマンドを発行した場合、新たなシークコマンドを待機コマンドとして保持し、取り消し動作終了後に新たなシークコマンドをヘッド位置制御部に送信するように構成しているので、コマンド制御部の処理を軽減させ、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【0103】
また、本発明によれば、ディスク記憶装置は、ヘッド位置制御部がエラーを発生した場合、待機コマンドを破棄することで、復旧を容易に実行可能としているので、動作の安定性を保ちつつ動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【0104】
また、本発明によれば、ディスク記憶装置は、ヘッド位置制御部対して未送信の待機コマンドに対してはコマンドの取り消しおよび書き換えを許可する構成としているので、コマンド制御部の処理を制限することなく負荷を軽減し、動作速度を向上したディスク記憶装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【図1】本実施の形態にかかるディスク記憶装置の概要構成を示す概要構成図である。
【図2】図1に示したシークコマンド管理部の処理動作を説明する説明図である。
【図3】ディスク記憶装置のシーク動作を説明する説明図である。
【図4】シークコマンド管理部が有するステータスパラメータを示す図である。
【図5】ヘッド動作制御部の動作状態によって抑止されたシーク動作を説明する説明図である。
【図6】シークコマンド管理部が有するステータスパラメータを示す図である。
【図7】待機コマンドを取り消す場合のシークコマンド管理部の動作を説明する説明図である。
【図8】シークコマンド処理部のエラー処理と、シークコマンドの書き換えについて説明する説明図である。
【図9】従来のディスク記憶装置の概要構成を示す概要構成図である。
【図10】従来のディスク記憶装置のシーク動作を説明する説明図である。
【符号の説明】
1 ホスト
2 ディスク記憶装置
3 インターフェース部
4 コマンド制御部
5 記憶部
6 ヘッド位置制御部
7 アクチュエータ
8 ヘッド動作制御部
9 ヘッド部
10 記憶ディスク
11 シークコマンド管理部
12 コマンド待機処理部
13 メモリ
14 シーク監視部
15 ヘッド監視部
16 シーク抑止部
51〜59 ステータス表
Claims (5)
- データの書き込み要求および読み出し要求をもとに、記憶ディスク上のヘッド位置を指定するシークコマンド、記憶ディスクに対するデータの書き込みを指定するライトコマンドおよびデータの読み出しを指定するリードコマンドを発行するコマンド制御部と、前記シークコマンドにしたがってシーク動作をおこなうヘッド位置制御部と、前記リードコマンドまたはライトコマンドにしたがってデータの読み書きをおこなうヘッド動作制御部と、を備えたディスク記憶装置であって、
前記ヘッド位置制御部がシーク動作中であるか否かを判定するシーク監視部と、
前記シーク監視部の判定結果をもとに、前記ヘッド位置制御部のシーク動作中に前記コマンド制御部が発行した前記シークコマンドを、待機コマンドとして保持し、前記ヘッド位置制御部のシーク動作終了後に前記待機コマンドを前記ヘッド位置制御部に送信するコマンド待機処理部と、
を備えたことを特徴とするディスク記憶装置。 - 前記シーク監視部および前記コマンド待機処理部は、前記コマンド制御部に対して独立して動作することを特徴とする請求項1に記載のディスク記憶装置。
- 前記ヘッド動作制御部が読み書き動作中であるか否かを判定するヘッド監視部と、前記ヘッド監視部の監視結果をもとに、前記ヘッド制御部が読み書き動作を行っている間、前記コマンド制御部によって抑止情報が付加されたシークコマンドのシーク動作を停止させるシーク抑止部と、を備えたことを特徴とする請求項1または2に記載のディスク記憶装置。
- 前記コマンド待機処理部は、前記コマンド制御部が前記ヘッド位置制御部に対してシーク動作の取り消しを指示し、前記ヘッド位置制御部がシークコマンドの取り消し動作をおこなっている間に、前記コマンド制御部が新規にシークコマンドを発行した場合に、当該新規シークコマンドを待機コマンドとして保持することを特徴とする請求項1〜3のいずれか一つに記載のディスク記憶装置。
- 前記コマンド待機処理部は、前記ヘッド位置制御部がエラーを発生した場合に、前記待機コマンドを破棄することを特徴とする請求項1〜4のいずれか一つに記載のディスク記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002237620A JP4170044B2 (ja) | 2002-08-16 | 2002-08-16 | ディスク記憶装置 |
US10/351,085 US7061713B2 (en) | 2002-08-16 | 2003-01-24 | Disk storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002237620A JP4170044B2 (ja) | 2002-08-16 | 2002-08-16 | ディスク記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004079073A JP2004079073A (ja) | 2004-03-11 |
JP4170044B2 true JP4170044B2 (ja) | 2008-10-22 |
Family
ID=31712142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002237620A Expired - Fee Related JP4170044B2 (ja) | 2002-08-16 | 2002-08-16 | ディスク記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7061713B2 (ja) |
JP (1) | JP4170044B2 (ja) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02156472A (ja) | 1988-12-07 | 1990-06-15 | Nec Eng Ltd | 外部記憶制御装置 |
US5444583A (en) * | 1992-09-30 | 1995-08-22 | Quantum Corporation | Disk drive having on-board triggered digital sampling analyzer |
JPH07272398A (ja) * | 1994-03-28 | 1995-10-20 | Hitachi Ltd | ディスク装置の制御装置 |
JPH07271513A (ja) * | 1994-03-29 | 1995-10-20 | Fujitsu Ltd | ディスク制御方法及びディスク制御装置 |
US5664143A (en) * | 1994-11-23 | 1997-09-02 | International Business Machines Corporation | Method and apparatus for sorting disk access commands in a rotational position queue according to time differences between the commands |
JP3260999B2 (ja) * | 1995-03-03 | 2002-02-25 | 富士通株式会社 | ディスク制御装置の制御方法 |
KR19980029917A (ko) * | 1996-10-28 | 1998-07-25 | 김광호 | 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 |
JP3404289B2 (ja) * | 1998-05-22 | 2003-05-06 | 富士通株式会社 | ディスク制御装置及びその制御方法 |
US6195222B1 (en) * | 1998-11-04 | 2001-02-27 | Western Digital Corporation | Disk drive with seek profile selection based on a queued vs. non-queued environment |
JP3745552B2 (ja) * | 1999-02-26 | 2006-02-15 | 富士通株式会社 | 情報記憶装置 |
US6484229B1 (en) * | 1999-03-05 | 2002-11-19 | Hitachi, Ltd. | Magnetic disk apparatus |
US6697913B1 (en) * | 1999-03-29 | 2004-02-24 | Maxtor Corporation | Seek queue for improved disk drive performance |
US6654195B1 (en) * | 1999-04-27 | 2003-11-25 | Western Digital Ventures, Inc. | Disk drive having a register set for providing real time position variables to a host |
JP4040798B2 (ja) * | 1999-07-23 | 2008-01-30 | 富士通株式会社 | 記憶装置及びその記録再生方法 |
JP2001100935A (ja) * | 1999-09-28 | 2001-04-13 | Internatl Business Mach Corp <Ibm> | ディスク装置およびその制御方法 |
US6578107B1 (en) * | 2000-05-25 | 2003-06-10 | International Business Machines Corporation | Method and system for prefetching data where commands are reordered for execution |
US6731453B2 (en) * | 2001-02-15 | 2004-05-04 | Seagate Technology Llc | Optimizing thermal performance of an integrated circuit in a disc drive |
US6654850B2 (en) * | 2001-03-26 | 2003-11-25 | Seagate Technology Llc | Parametric optimization of a disc drive through I/O command sequence analysis |
-
2002
- 2002-08-16 JP JP2002237620A patent/JP4170044B2/ja not_active Expired - Fee Related
-
2003
- 2003-01-24 US US10/351,085 patent/US7061713B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040032688A1 (en) | 2004-02-19 |
US7061713B2 (en) | 2006-06-13 |
JP2004079073A (ja) | 2004-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4041656B2 (ja) | ストレージシステム及びストレージシステムにおけるデータ送受信方法 | |
US8028127B2 (en) | Automated on-line capacity expansion method for storage device | |
JP4252139B2 (ja) | 記憶装置システム | |
US20040049649A1 (en) | Computer system and method with memory copy command | |
JP5909566B2 (ja) | 計算機システム及びその制御方法 | |
US8601182B2 (en) | Data communication control device | |
US20050080842A1 (en) | Interface apparatus and packet transfer method | |
US20070255897A1 (en) | Apparatus, system, and method for facilitating physical disk request scheduling | |
JP4170044B2 (ja) | ディスク記憶装置 | |
JP2001022529A (ja) | ディスクドライブ装置及びその制御方法 | |
JP3800903B2 (ja) | 記憶装置及びそのアクセス制御方法 | |
JP4559958B2 (ja) | マルチコアプロセッサにおけるマルチコア制御方法 | |
JPS593787B2 (ja) | ダイレクト・アクセス記憶装置用コマンドの実行方式 | |
JP2004062663A (ja) | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 | |
JP2006113882A (ja) | データ管理装置 | |
JP4921938B2 (ja) | 仮想ライブラリ装置 | |
JP3838606B2 (ja) | シーケンス処理装置 | |
JP2003140946A (ja) | 記憶装置 | |
JP2001249770A (ja) | コマンドキューイングの機能を持つ記憶装置 | |
JP3157794B2 (ja) | 周辺制御処理装置 | |
JP2682495B2 (ja) | ディスク制御装置 | |
JP5012822B2 (ja) | 記憶制御装置 | |
JP3599099B2 (ja) | 電子ディスク装置用シーズ制御回路 | |
JP2541158B2 (ja) | 情報処理システム | |
JP2957380B2 (ja) | 磁気ディスク用ヘッド位置づけ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080806 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |