JP2001100935A - ディスク装置およびその制御方法 - Google Patents

ディスク装置およびその制御方法

Info

Publication number
JP2001100935A
JP2001100935A JP27403699A JP27403699A JP2001100935A JP 2001100935 A JP2001100935 A JP 2001100935A JP 27403699 A JP27403699 A JP 27403699A JP 27403699 A JP27403699 A JP 27403699A JP 2001100935 A JP2001100935 A JP 2001100935A
Authority
JP
Japan
Prior art keywords
command
execution
disk
executed
error
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.)
Withdrawn
Application number
JP27403699A
Other languages
English (en)
Inventor
Hiroshi Saito
博史 斎藤
Yoshiyo Takahashi
佳代 高橋
Shoichi Hirashita
昇一 平下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP27403699A priority Critical patent/JP2001100935A/ja
Priority to US09/678,208 priority patent/US6721906B1/en
Publication of JP2001100935A publication Critical patent/JP2001100935A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems

Abstract

(57)【要約】 【課題】 コマンド実行時のディスク回転待ち時間を低
減し、コマンド処理の効率化を図る。 【解決手段】 ホスト装置から送信された複数の実行待
ちコマンドをコマンドキューに入れ(ENQUE)、上記複
数のコマンドの中から次に実行するコマンドを選択し
(RPO SORT)、選択したコマンドを実行する(KICK NEX
T,KICK SEEK)、コマンド処理において、コマンドの実
行中にドライブ側処理(ディスクアクセスに関連する処
理)でエラーが発生したら(error)、実行中のコマン
ドをコマンドキューに戻し、戻したコマンドを含む複数
の実行待ちコマンドの中から次に実行するコマンドを選
択し(ERR処理、RPO RESORT)、選択したコマンドを実
行する(KICK NEXT,KICK SEEK)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、HDD(Hard Dis
k Drive)等のディスク装置およびその制御方法に関
し、特に、ホスト装置等の外部装置から送信された複数
のコマンドを保持するコマンドキューを備え、次に実行
するコマンドをRPO(Rotational Position Optimiza
tion)により選択するディスク装置およびその制御方法
に関する。
【0002】
【従来の技術】ディスク装置には複数のコマンドを保持
するコマンドキューを備えたものがある。このようなデ
ィスク装置でのコマンド処理は、ホスト装置から受信し
たコマンドを上記コマンドキューに入れ、コマンドキュ
ー内の複数の実行待ちコマンドから次に実行するコマン
ドを選択し、選択したコマンドを実行するものである。
次に実行するコマンドは、例えばRPOにより選択され
る。
【0003】RPOは、コマンドキュー内のそれぞれの
コマンドを実行したときに、目標のトラックのシークを
開始してから目標のトラックにポジショニングを完了す
るまでのシーク時間と、ポジショニング完了から目標の
セクタにアクセスを開始するまでのディスク回転時間で
あるレイテンシー(latency)時間とを予想し、上記の
シーク時間およびレイテンシー時間の合計であるシーク
/レイテンシー時間が最短となる実行待ちコマンドを、
次に実行するコマンドとして選択する手法である。つま
り、最短時間でディスクの目標のセクタにアクセスでき
る実行待ちコマンドを次に実行するコマンドとして選択
する手法である。なお、RPOにより次に実行するコマ
ンドを選択することを、RPOによるソートとも称す
る。
【0004】上記のコマンド処理を実施するためのマイ
クロプログラムは、コマンドキュー内から次に実行する
コマンドを選択するキューハンドラと、選択されたコマ
ンドを実行するコマンドハンドラと、ホスト装置から送
信されコマンドをコマンドキューに入れるとともに、イ
ンターフェース(I/F)側処理(データ転送に関連す
る処理)を監視するI/Fイベントハンドラと、ドライ
ブ側処理(ディスクアクセスに関連する処理)を監視す
るドライブイベントハンドラとを備えた構造になってい
る。また、ディスク装置は、アクセス機構を駆動し、ド
ライブ側処理をするハードウエアであるドライブ手段
と、I/F側処理をするハードウエアであるI/F手段
とを備えている。
【0005】また、従来のコマンド処理では、コマンド
の実行中にドライブ側処理でエラーが発生すると(ディ
スクアクセスに関連するエラーが発生すると)、リトラ
イを開始し、エラーが解消されるまでリトライし、エラ
ーが発生したコマンドの実行が終了してから、次のコマ
ンドを実行していた。従って、エラーが発生すると、デ
ィスクが1回転するのを待ってディスクの目標のセクタ
に再アクセスすることになる。
【0006】図13は従来のコマンドハンドラの制御ル
ーチンを説明するフローチャートである。まず、ステッ
プST31において、ドライブ手段およびI/F手段を
初期化するとともに、コマンド実行のためのパラメータ
をドライブ手段およびI/F手段に送り、ドライブ手段
およびI/F手段を起動する。
【0007】次に、ステップST32において、I/F
イベントがあるか否かを判別する。ステップST32で
I/Fイベントがあれば、ステップST33において、
上記のI/Fイベントを処理し、ステップST34に進
む。また、ステップST32でI/Fイベントがなけれ
ば、ステップST33をスキップし、ステップST34
に進む。
【0008】上記のI/Fイベントは、I/Fイベント
ハンドラによってI/F手段の動作に応じて生成される
イベントである。また、ステップST33のI/Fイベ
ント処理は、上記のI/Fイベントの内容に応じてI/
F手段または/およびドライブ手段を制御する処理であ
る。
【0009】ステップST34において、ドライブイベ
ントがあるか否かを判別する。ステップST34でドラ
イブイベントがあれば、ステップST35において、上
記のドライブイベントを処理し、ステップST36に進
む。また、ステップST34でドライブイベントがなけ
れば、ステップST35をスキップし、ステップST3
6に進む。
【0010】上記のドライブイベントは、ドライブイベ
ントハンドラによってドライブ手段の動作に応じて生成
されるイベントである。また、ステップST35のドラ
イブイベント処理は、上記のドライブイベントの内容に
応じてドライブ手段または/およびI/F手段を制御す
る処理である。
【0011】ステップS36において、I/F側処理お
よびドライブ側処理を全て終了したか否かを判別し、終
了していなければ、ステップST32に戻る。このよう
に、コマンドハンドラは、ステップST32〜ST36
のループにより、コマンドを実行していく。そして、ス
テップST36でI/F側処理およびドライブ側処理を
全て終了していれば、コマンドの実行を終了する。
【0012】図14は従来のコマンド処理を説明する図
である。この図14は、コマンドCMD1は正常に実行
を終了し、そのあとのコマンドCMD2の実行中にドラ
イブ側処理(ディスクアクセスに関連する処理)でエラ
ーが発生し、リトライした場合のコマンド処理である。
【0013】コマンドCMD1のドライブ側処理が終了
すると、ドライブイベントハンドラ24は、ドライブ側
処理が終了したことを通知するDCOMPイベント(ド
ライブイベント)を生成し、コマンドハンドラに伝え
る。コマンドハンドラは、上記のDCOMPイベントを
処理し(DCOMP処理)、コマンドCMD1の実行を
終了する。
【0014】キューハンドラは、コマンドCMD1の実
行中にコマンドキューに入れられているコマンドをRP
Oによりソートし、コマンドCMD1の次に実行するコ
マンドとしてコマンドCMD2を選択してあり、コマン
ドハンドラがコマンドCMD1の実行を終了すると、次
に実行するコマンドCMD2をコマンドハンドラに送
り、実行を要求する(KICK NEXT)。
【0015】コマンドハンドラは、コマンドCMD2の
実行を開始し、図13のステップST31で説明したよ
うに初期化処理を実施し、ドライブ手段によりアクセス
機構を駆動させ、目標トラックのシークを開始させる
(KICK SEEK)。そして、図13のステップS
T32〜ST36のループに従って、コマンドCMD2
のドライブ側処理を進める。
【0016】また、I/F手段がホスト装置からの新た
なコマンドを受信すると、I/Fイベントハンドラは、
このコマンドをコマンドキューに入れる(NEW CM
D、ENQUE)。キューハンドラは、上記の新たなコ
マンドを含む複数の実行待ちコマンドをRPOによりソ
ートし(RPO SORT)、コマンドCMD2の次に
実行するコマンドを選択しておく。
【0017】コマンドCMD2の実行中にディスクアク
セスに関連するエラーが発生すると、ドライブイベント
ハンドラは、エラー発生イベント(ドライブイベント)
を生成し、このエラー発生イベントをコマンドハンドラ
に伝える。
【0018】コマンドハンドラは、上記のエラー発生イ
ベントを認識すると、図13のステップ35のドライブ
イベント処理において、エラー・リカバリ・プロシージ
ャ(ERP:Error Recovery Procedure)ステップをイ
ンクリメントし(ERP)、リトライを開始させる。こ
れにより、アクセス機構は、ディスクが1回転するのを
待って目標のセクタに再アクセスすることになる。
【0019】ディスク装置では、ディスクアクセスにお
いて、最初のディスクアクセスの手順とエラーによるリ
トライ手順とを変えるとともに、リトライの回数によっ
てリトライ手順を変えており、これらの手順をERPと
称する。ステップ数がmのERPでは、最初にステップ
0のERPでディスクアクセスを試み、エラーが発生す
ると、ステップ1のERPでディスクアクセスを試み、
以下ステップ2〜(m−1)のERPで順次ディスクア
クセスを試み、ステップmのERPでエラーになると、
ハードエラー(ディスクアクセスに関連するエラー)が
発生したことをホスト装置に通知する。
【0020】リトライにより正常にアクセスすることが
でき、コマンドCMD2のドライブ側処理が終了する
と、ドライブイベントハンドラは、DCOMPイベント
を生成し、コマンドハンドラ22に伝える。コマンドハ
ンドラ22は、上記のDCOMPイベントを処理し(D
COMP処理)、コマンドCMD2の実行を終了する。
【0021】このように従来のコマンド処理では、エラ
ーが発生すると、コマンドハンドラがリトライを開始
し、ディスク1回転の時間のあとに、エラーが発生した
目標のセクタに再アクセスする。
【0022】
【発明が解決しようとする課題】しかしながら上記従来
のコマンド処理では、ディスクアクセスに関連するエラ
ーが発生すると、ディスクが1回転するのを待って再ア
クセスするため、エラーの発生によりリトライするごと
に、コマンドの実行時間がディスク1回転にかかる時間
ずつ長くなり、ディスク1回転の時間ずつ浪費してしま
うことになる。
【0023】また、RPOは、コマンドキュー内のそれ
ぞれのコマンドを実行したときのシーク時間およびレイ
テンシー時間を予想し、最短時間で目標のセクタにアク
セスできるコマンドを次に実行するコマンドとして選択
する手法であるが、実際のディスク装置においては、シ
ーク時間にばらつきがある。このため、上記従来のコマ
ンド処理では、シーク時間がPROによる予想時間を超
えてしまうと、ディスクが1回転するまで待たなけれ
ば、目標のセクタにアクセスを開始することができなく
なり、ディスク1回転の時間を浪費してしまうことにな
る。
【0024】本発明は、このような従来の課題に鑑みて
なされたものであり、コマンド実行時のディスク回転待
ち時間を低減し、コマンド処理の効率化を図ることを目
的とする。
【0025】
【課題を解決するための手段】上記の目的を達成するた
めに本発明の第1のディスク装置は、外部装置から送信
された複数の実行待ちコマンドが保持されるコマンドキ
ューと、データ記録媒体であるディスクにアクセスする
アクセス機構を駆動し、ディスクアクセスに関連する処
理をするドライブ手段と、外部装置とのデータ転送に関
連する処理をするインターフェース手段と、上記複数の
実行待ちコマンドの中から次に実行するコマンドを選択
し、選択したコマンドの実行を要求するコマンド管理手
段と、上記ドライブ手段および上記インターフェース手
段を制御し、上記実行を要求されたコマンドを実行する
コマンド実行手段と、上記ディスクアクセスに関連する
処理を監視するドライブ監視手段とを備え、上記コマン
ド実行手段が、コマンド実行中にディスクアクセスに関
連するエラーが発生すると、実行中のコマンドを上記コ
マンドキューに戻すものである。
【0026】また、本発明の第2のディスク装置は、外
部装置から送信された複数のコマンドが保持されるコマ
ンドキューと、データ記録媒体であるディスクにアクセ
スするアクセス機構を駆動し、ディスクアクセスに関連
する処理をするドライブ手段と、外部装置とのデータ伝
送に関連する処理をするインターフェース手段と、上記
複数の実行待ちコマンドの中から次に実行するコマンド
を選択し、選択したコマンドの実行を要求するコマンド
管理手段と、上記ドライブ手段および上記インターフェ
ース手段を制御し、上記実行を要求されたコマンドを実
行するコマンド実行手段と、上記ディスクアクセスに関
連する処理を監視するドライブ監視手段とを備え、上記
コマンド管理手段が、上記コマンド実行手段に実行を要
求するコマンドの実行開始から上記アクセス機構がディ
スク上の目標トラックにポジショニングするまでのシー
ク時間を予想し、上記ドライブ監視手段が、上記コマン
ド実行手段により実行されたコマンドのシーク時間が、
上記予想されたシーク時間を超えたら、エラーと判別す
るものである。
【0027】次に、本発明の第1のディスク装置の制御
方法は、コマンドキューに入れられた複数の実行待ちコ
マンドの中から次に実行するコマンドを選択し、選択し
たコマンドの実行を要求するコマンド管理手段と、デー
タ記録媒体であるディスクに対するアクセスに関連する
処理および外部装置とのデータ転送に関連する処理を制
御し、上記実行を要求されたコマンドを実行するコマン
ド実行手段と、上記ディスクアクセスに関連する処理を
監視するドライブ監視手段とを備えたディスク装置の制
御方法において、コマンド実行中にディスクアクセスに
関連するエラーが発生したら、上記コマンド実行手段
が、実行中のコマンドを上記コマンドキューに戻すステ
ップと、上記コマンド管理手段が、上記戻されたコマン
ドを含む複数の実行待ちコマンドから次に実行するコマ
ンドを選択し、選択したコマンドの実行を要求するステ
ップとを含むものである。
【0028】また、本発明の第2のディスク装置の制御
方法は、コマンドキューに入れられた複数の実行待ちコ
マンドの中から次に実行するコマンドを選択し、選択し
たコマンドの実行を要求するコマンド管理手段と、デー
タ記録媒体であるディスクに対するアクセスに関連する
処理および外部装置とのデータ転送に関連する処理を制
御し、上記実行を要求されたコマンドを実行するコマン
ド実行手段と、上記ディスクアクセスに関連する処理を
監視するドライブ監視手段とを備えたディスク装置の制
御方法において、上記コマンド実行手段に実行を要求す
るコマンドの実行開始からディスク上の目標のトラック
のシークを終了するまでのシーク時間を、上記コマンド
管理手段が予想するステップと、上記コマンド実行手段
により実行されたコマンドのシーク時間が上記予想され
たシーク時間を超えたら、上記ドライブ監視手段が、デ
ィスクアクセスに関連するエラーと判別するステップと
を含むものである。
【0029】
【発明の実施の形態】実施の形態1 図1は本発明の実施の形態1のディスク装置のブロック
構成図である。図1のディスク装置100は、高速な転
送速度が要求されるHDDであり、データ記録媒体であ
るディスク1と、ディスク1の上空を旋回し、ディスク
1にアクセスするアクセス機構2と、ディスク1を回転
駆動するスピンドルモータ3と、ハード・ディスク・コ
ントローラ(HDC:Hard Disk Controller)4と、ホ
スト装置200と通信するためのホスト・インターフェ
ース・コントローラ(HIC:Host Interface Control
ler)5と、マイクロ・プロセッシング・ユニット(M
PU)6と、ROM7と、RAM8とを備えている。H
DC4、HIC5、MPU6、ROM7、およびRAM
8は、データバスにより互いに接続されている。
【0030】ディスク1の表面(ディスク面)は、同心
円状の多数のトラックに区画されている。それぞれのト
ラックは、多数のセクタ(データセクタ)に区画されて
いる。これらのセクタは、トラックの長さ方向(円周方
向)に配置されている。それぞれのセクタには、例えば
512バイトのデータ(ユーザデータ)が記録される。
【0031】アクセス機構2は、読み書きヘッド13
と、先端に読み書きヘッド13を実装したアーム14
と、アーム14を旋回駆動するボイスコイルモータ(V
CM)15とを有する。このアクセス機構2は、上記の
セクタにアクセスし、アクセスしたセクタにデータを書
き込み、またはアクセスしたセクタに記録されているデ
ータを読み込む。
【0032】HDC4は、リード/ライト・モジュール
(RWM)11と、サーボ・コントロール・モジュール
(SCM)12とを有する。このHDC4は、アクセス
機構2を駆動し、ディスク1に対するアクセス(データ
の読み書き)に関連する処理をするハードウエアであ
る。
【0033】RWM11は、データ書き込みのときに、
書き込みデータをアナログ信号に変換し、生成した書き
込み信号をアクセス機構2に送る。また、RWM11
は、データ読み込みのときに、アクセス機構2によるデ
ィスク1からの読み込み信号をディジタルデータに変換
し、生成した読み込みデータをRAM8に転送する。
【0034】SCM12は、ディスク1の回転速度が目
標値を追従するように、スピンドルモータ3を駆動する
とともに、アクセス機構2がディスク1内の目標のトラ
ックを追従するように、アクセス機構2を駆動する。
【0035】HIC5は、双方向のデータバスによりホ
スト装置200に接続されている。このHIC5は、ホ
スト装置200とのデータ転送(リードコマンド、ライ
トコマンド、リードアドレス、ライトアドレス、書き込
みデータの受信、およびディスク1からの読み込みデー
タの送信)に関連する処理をするハードウエアである。
【0036】MPU6は、ROM7に記憶されているマ
イクロプログラム(ソフトウエア)に従ってHDC4お
よびHIC5を制御し、ホスト装置200から送信され
た複数のコマンドを順次処理するコマンド処理を実施す
る。
【0037】ROM7には、上記のマイクロプログラム
が記憶されている。なお、上記のマイクロプログラムの
一部がディスク面のあらかじめ確保された特別な領域に
記録されている場合もある。この場合には、上記特別な
領域に記録されている一部のマイクロプログラムは、デ
ィスク装置100が起動されたときに、RAM8に読み
込まれる。
【0038】RAM8には、複数のコマンドを保持する
ためのコマンドキュー(キューエリア)が設けられてお
り、ホスト装置200から送信されたコマンドは、この
コマンドキューに入れられる。また、RAM8には、ホ
スト装置200から送信されたリードアドレス、ライト
アドレス、書き込みデータ、およびディスク1から読み
込まれた読み込みデータ、等が一時的に保持(キャッシ
ュ)される。
【0039】図2は上記コマンドキューの構造図であ
る。図2において、Q=1,2,…,nはキューアドレ
ス、A,B,C,D…はコマンドキューに入れられた実
行待ちのコマンドである。上記のnは、キューデプスと
称され、例えばn=16である。この場合、コマンドキ
ューには、最大16コマンドを入れることができる。ホ
スト装置200から送信されたコマンドは、図2のコマ
ンドキューに入れられる。ディスク装置100は、コマ
ンドキューに空きがあれば、ホスト装置200からのコ
マンドの送信を許可し、コマンドキューに空きがなくな
ると、空きができるまでコマンドの送信を禁止する。
【0040】コマンドキューに入れられたコマンドは、
RPOにより選択された順に実行される。そのコマンド
を実行するときにコマンドキューから消される。従来の
ディスク装置では、実行されたコマンドは、コマンドキ
ューに戻されることはないが、実施の形態1のディスク
装置100では、実行中にディスクアクセスに関連する
エラーが発生したコマンドはコマンドキューに戻され
る。
【0041】ホスト装置200は、ディスク装置100
にデータの読み出しを要求する場合には、リードコマン
ドを送り、そのあとにディスク1の読み込み先の先頭の
論理ブロックアドレス(LBA)およびブロック長を送
る。ディスク装置100は、HIC5によりこれらを受
信すると、上記のリードコマンドを上記のコマンドキュ
ーに入れるとともに、上記の読み込み先LBAをRAM
8に一時的に保持する。そして、ディスク装置100
は、上記のマイクロプログラムが上記のリードコマンド
を実行すると、HDC4によりアクセス機構2を制御
し、ディスク1の上記LBAにアクセスし、記録されて
いるデータを読み込み、この読み込みデータをHIC5
によりホスト装置200に転送する。
【0042】また、ホスト装置200は、ディスク装置
100にデータの書き込みを要求する場合には、ライト
コマンドを送り、そのあとにディスク1の書き込み先の
先頭のLBAおよび書き込みデータを送る。ディスク装
置100は、HIC5によりこれらを受信すると、上記
のライトコマンドを上記のコマンドキューに入れるとと
もに、上記の書き込み先LBAおよび書き込みデータを
RAM8に一時的に保持する。そして、ディスク装置1
00は、上記のマイクロプログラムが上記のライトコマ
ンドを実行すると、HDC4によりアクセス機構2を駆
動し、ディスク1の上記LBAにアクセスし、上記の書
き込みデータを記録する。
【0043】また、コマンド実行時のディスクアクセス
の手順は、(a)アクセス機構2を旋回させて目標のト
ラックをシークし、そのトラックの上空にアクセス機構
2をポジショニングさせるステップと、(b)ポジショ
ニングが完了したら、ディスク1の回転により読み書き
ヘッド13の下に目標のセクタが到達するまで待って、
目標のセクタにアクセスするステップとを順次実施する
ものである。
【0044】実施の形態1のマイクロプログラムによる
コマンド処理は、(A)ホスト装置200から送信され
たコマンドをコマンドキューに入れるステップと、
(B)コマンドキュー内のコマンドから次に実行するコ
マンドを選択するステップと、(C)選択したコマンド
を実行するステップと、(D)コマンド実行中にディス
クアクセスに関連するエラーが発生したときには、その
コマンドをコマンドキューに戻すステップと、(E)戻
したコマンドを含む複数の実行待ちコマンドの中から次
に実行するコマンドを選択するステップとを含む。
【0045】複数のコマンドが上記コマンドキューに入
れられたときの上記(B)のステップは、キュード・ラ
ンダム・オペレーション(QRO:Queued Random Oper
ation)による。
【0046】QROは、コマンドキューに入れられた複
数のコマンドを、コマンドキューに入れられた順に実行
するのではなく、コマンド選択手法に従って選択したコ
マンドから順に実行する手法である。上記のコマンド選
択手法は、このディスク装置100では、ロテーショナ
ル・ポジション・オプティマイゼーション(RPO:Ro
tational Position Optimization)である。
【0047】RPOは、コマンドキュー内のそれぞれの
コマンドを実行したときに、目標のトラックのシークを
開始してから目標のトラックにポジショニングを完了す
るまでのシーク時間と、ポジショニング完了から目標の
セクタにアクセスを開始するまでのディスク回転時間で
あるレイテンシー(latency)時間とを予想し、上記の
シーク時間およびレイテンシー時間の合計であるシーク
/レイテンシー時間が最短となる実行待ちコマンドを、
次に実行するコマンドとして選択する手法である。
【0048】実施の形態1のコマンド処理は、RPOに
より選択したコマンドを実行し、コマンド実行中にディ
スクアクセスに関連するエラーが発生した場合には(ド
ライブ側処理でエラーが発生した場合には)、コマンド
の実行を中断し、そのコマンドをコマンドキューに戻
し、戻したコマンドを含むコマンドキュー内の複数のコ
マンドからRPOにより次に実行するコマンドを選択す
ることを特徴とする。
【0049】ここで、複数のコマンドからRPOにより
次に実行するコマンドを選択することを、RPOによる
ソート(sort)とも称する。また、エラーが発生したコ
マンドをコマンドキューに戻したときのRPOによるソ
ートを、特にリソート(re-sort)とも称する。
【0050】図3は本発明の第1の実施形態のコマンド
処理を実現するマイクロプログラムのブロック構造図で
ある。図3において、マイクロプログラムは、ハードウ
エアにより構成されたHDC4およびHIC5を制御
し、コマンド処理を実現するものであり、キューハンド
ラ21と、コマンドハンドラ22と、インターフェース
(I/F)イベントハンドラ23と、ドライブイベント
ハンドラ24とを有する。これらのキューハンドラ2
1、コマンドハンドラ22、I/Fイベントハンドラ2
3、ドライブイベントハンドラ24は、それぞれ上記マ
イクロプログラムの内の部分的な機能を実現する制御ル
ーチンである。
【0051】I/Fイベントハンドラ23は、HIC5
がホスト装置200から受信したコマンドをコマンドキ
ューに入れる。また、コマンドハンドラ22により制御
されるHICによるI/F側処理(データ転送に関連す
る処理)を監視し、I/Fイベントを生成し、このI/
Fイベントをコマンドハンドラ22に伝える。
【0052】ドライブイベントハンドラ24は、コマン
ドハンドラ22により制御されるHDC4によるドライ
ブ側処理(ディスクアクセスに関連する処理)を監視
し、ドライブイベントを生成し、このドライブイベント
をコマンドハンドラ22に伝える。
【0053】キューハンドラ21は、コマンドキューに
入っている複数のコマンドをRPOによりソートしてお
き、コマンドハンドラ22によるコマンドの実行が終了
したら、次に実行するコマンドをコマンドハンドラ22
に送る。
【0054】コマンドハンドラ22は、上記のドライブ
イベントおよびI/Fイベントに応じてHDC4および
HIC5を制御し、キューハンドラ21から送られたコ
マンドを実行する。また、コマンド実行中にドライブ側
処理でのエラー(ディスクアクセスに関連するエラー)
が発生した場合には、実行中のコマンドをコマンドキュ
ーに戻す。
【0055】図4はキューハンドラ21の制御ルーチン
を説明するフローチャートである。まず、ステップST
1において、コマンドキュー内に実行待ちのコマンドが
あるか否かを判別する。ステップST1で実行待ちのコ
マンドがあれば、ステップST2において、コマンドキ
ュー内のコマンドをソートし(次に実行するコマンドを
選択し)、ステップST3に進む。また、ステップST
1で実行待ちのコマンドがなければ、ステップST2を
スキップし、ステップST3に進む。
【0056】ステップST3において、コマンドハンド
ラ22が実行中のコマンドがあるか否かを判別し、実行
中のコマンドがあれば、ステップST1に戻り、実行中
のコマンドがなければ、ステップST4に進む。
【0057】ステップST4において、次に実行するコ
マンドがあるか否かを判別する。ステップST4で次に
実行するコマンドがなければ、ステップST1に戻る。
また、ステップST4で次に実行するコマンドがあれ
ば、ステップST5において、次に実行するコマンドを
コマンドハンドラ22に送り、そのコマンドの実行をコ
マンドハンドラ22に要求し、ステップST1に戻る。
【0058】図5は実施の形態1のコマンドハンドラ2
2の制御ルーチンを説明するフローチャートである。ま
ず、ステップST11において、実行するコマンドのエ
ラー・リカバリ・プロシージャ(ERP:Error Recove
ry Procedure)ステップに応じた初期化をする。つま
り、実行するコマンドのERPステップに応じて、HD
C4およびHIC5を初期化するとともに、コマンド実
行のためのパラメータをHDC4およびHIC5に送
り、上記のERPステップに応じてHDC4およびHI
C5を起動する。
【0059】従来のディスク装置では、ディスクアクセ
スにおいて、最初のディスクアクセスの手順とエラーに
よるリトライ手順とを変えるとともに、リトライの回数
によってリトライ手順を変えており、これらの手順をE
RPと称する。ステップ数がmのERPでは、最初にス
テップ0のERPでディスクアクセスを試み、エラーが
発生すると、ステップ1のERPでディスクアクセスを
試み、以下ステップ2〜(m−1)のERPで順次ディ
スクアクセスを試み、ステップmのERPでエラーにな
ると、ハードエラー(ディスクアクセスに関連するエラ
ー)が発生したことをホスト装置に通知する。
【0060】実施の形態1のディスク装置100では、
ディスクアクセスに関連するエラーによりコマンドをコ
マンドキューに戻すときに、そのコマンドのERPステ
ップをインクリメントすることにより、同じコマンド
を、最初はERPステップ0で実行し、1回目のエラー
によりコマンドキューに戻されたあとはERPステップ
1で実行し、以下エラーのあとごとにERPステップ2
〜(m−1)で順次実行し、m回目のエラーのあとにE
RPステップmで実行し、エラーになったら、そのコマ
ンドをコマンドキューに戻さずに、ハードエラーをホス
ト装置200に通知する。このようにディスク装置10
0では、実行するコマンドが、コマンドキューに何度戻
されたかによってERPステップが異なるため、ERP
ステップに応じた初期化が必要となる。
【0061】次に、ステップST12において、I/F
イベントがあるか否かを判別する。ステップST12で
I/Fイベントがあれば、ステップST13において、
上記のI/Fイベントを処理し、ステップST14に進
む。また、ステップST12でI/Fイベントがなけれ
ば、ステップST13をスキップし、ステップST14
に進む。
【0062】上記のI/Fイベントは、HIC5を監視
するI/Fイベントハンドラ23によってHIC5の動
作に応じて生成されるイベントである。また、ステップ
ST13のI/Fイベント処理は、上記のI/Fイベン
トの内容に応じてHIC5または/およびHDC4を制
御する処理である。
【0063】ステップST14において、ドライブイベ
ントがあるか否かを判別する。ステップST14でドラ
イブイベントがあれば、ステップST15において、上
記のドライブイベントを処理し、ステップST16に進
む。また、ステップST14でドライブイベントがなけ
れば、ステップST15をスキップし、ステップST1
6に進む。
【0064】上記のドライブイベントは、HDC4を監
視するドライブイベントハンドラ24によってHDC4
の動作に応じて生成されるイベントである。また、ステ
ップST15のドライブイベント処理は、上記のドライ
ブイベントの内容に応じてHDC4または/およびHI
C5を制御する処理である。
【0065】ステップST16において、I/F側処理
(HIC5によるデータ転送に関連する処理)およびド
ライブ側処理(HDC4によるディスクアクセスに関連
する処理)を全て終了したか否かを判別し、終了してい
なければ、ステップST17に進み、ステップST17
において、リソートリクエストがあるか否かを判別し、
リソートリクエストがなければ、ステップST12に戻
る。このように、コマンドハンドラ22は、ステップS
T12〜ST17のループにより、コマンドを実行して
いく。そして、ステップST16でI/F側処理および
ドライブ側処理を全て終了していれば、コマンドの実行
を終了する。
【0066】コマンドの実行中にディスクアクセスに関
連するエラーが発生すると、ドライブイベントハンドラ
24は、エラーが発生したことを通知するドライブイベ
ントを生成する。コマンドハンドラ22は、ステップS
T14で上記のエラー発生のドライブイベントを認識す
ると、ステップST15のドライブイベント処理におい
て、エラー処理を実施する。
【0067】図5はコマンドハンドラ2による上記のエ
ラー処理を説明するフローチャートである。まず、ステ
ップST21において、ERPステップがラストステッ
プ(ステップm)であるか否かを判別する。
【0068】ステップST21でERPステップがラス
トステップでなければ、ステップST22において、エ
ラーを発生したコマンドのERPステップをインクリメ
ントし、ステップST23において、リソートリクエス
トをセットし、エラー処理を終了する。
【0069】また、ステップST21でERPステップ
がラストステップであれば、ステップST24におい
て、ハードエラーが発生したことをホスト装置200に
通知するための処理を実施し、エラー処理を終了する。
【0070】図6に戻り、ステップST15のドライブ
イベント処理での上記のエラー処理において、リソート
リクエストがセットされると、ステップST17でリソ
ートリクエストがあると判別し、ステップST18に進
む。そして、ステップST18において、実行中のコマ
ンドをコマンドキューに戻し、コマンドの実行を終了す
る(中断する)。
【0071】図7は本発明の実施の形態1のコマンド処
理を説明する図である。この図7は、コマンドCMD1
は正常に実行を終了し、そのあとのコマンドCMD2の
実行中にドライブ側処理(ディスクアクセスに関連する
処理)でエラーが発生し、エラー処理をした場合のコマ
ンド処理である。
【0072】コマンドCMD1のドライブ側処理が終了
すると、ドライブイベントハンドラ24は、ドライブ側
処理が終了したことを通知するDCOMPイベント(ド
ライブイベント)を生成し、コマンドハンドラ22に伝
える。コマンドハンドラ22は、上記のDCOMPイベ
ントを処理し(DCOMP処理)、コマンドCMD1の
実行を終了する。なお、コマンドハンドラ22は、上記
のDCOMP処理(ドライブイベント処理)において、
コマンド実行終了の通知、読み込みデータの送信等のI
F側処理をする。
【0073】キューハンドラ21は、コマンドCMD1
の実行中にコマンドキューに入れられているコマンドを
RPOによりソートし、コマンドCMD1の次に実行す
るコマンドとしてコマンドCMD2を選択してあり、コ
マンドハンドラ22がコマンドCMD1の実行を終了す
ると、次に実行するコマンドCMD2をコマンドハンド
ラ21に送り、実行を要求する(KICK NEX
T)。
【0074】コマンドハンドラ22は、コマンドCMD
2の実行を開始し、図5のステップST11で説明した
ように実行するコマンドCMD2に応じた初期化処理を
実施し、HDC4によりアクセス機構2を駆動させ、目
標トラックのシークを開始させる(KICK SEE
K)。そして、図5のステップST12〜ST17のル
ープに従って、コマンドCMD2のドライブ側処理を進
める。
【0075】また、ホスト装置200が新たなコマンド
をディスク装置100に送信し、HIC5が上記のコマ
ンドを受信すると、I/Fイベントハンドラ23は、こ
のコマンドをコマンドキューに入れる(NEW CM
D、ENQUE)。キューハンドラ21は、上記の新た
なコマンドを含む複数の実行待ちコマンドをRPOによ
りソートし(RPO SORT)、コマンドCMD2の
次に実行するコマンドを選択しておく。
【0076】コマンドCMD2の実行中にディスクアク
セスに関連するエラーが発生すると、ドライブイベント
ハンドラ24は、エラー発生イベント(ドライブイベン
ト)を生成し、このエラー発生イベントをコマンドハン
ドラ22に伝える。
【0077】コマンドハンドラ22は、上記のエラー発
生イベントを認識すると、図6に従ってエラー処理を実
施し(ERR処理)し、コマンドCMD2をコマンドキ
ューに戻す。なお、実行中だったコマンドCMD2のE
RPステップはラストステップでなかったものとする。
【0078】キューハンドラ21は、戻されたコマンド
CMD2を含む複数の実行待ちコマンドをPROにより
リソートし(RPO RESORT)、次に実行するコ
マンドとしてコマンドCMDnを選択し、このコマンド
CMDnをコマンドハンドラ22に送り、実行を要求す
る(KICK NEXT)。
【0079】コマンドハンドラ22は、コマンドCMD
nの実行を開始し、コマンドCMDnに応じた初期化処
理を実施し、目標トラックのシークを開始させ(KIC
KSEEK)、コマンドCMDnのドライブ側処理を進
める。そして、コマンドCMDnのドライブ側処理が終
了すると、ドライブイベントハンドラ24は、DCOM
Pイベントを生成し、コマンドハンドラ22に伝える。
コマンドハンドラ22は、上記のDCOMPイベントを
処理し(DCOMP処理)、コマンドCMDnの実行を
終了する。
【0080】この実施の形態1のコマンド処理では、コ
マンド実行中にディスクアクセスに関連するエラーが発
生すると、図6のエラー処理を実施し、実行中のコマン
ドをコマンドキューに戻し、戻したコマンドを含む複数
の実行待ちコマンドをRPOによりリソートし、リソー
トにより選択されたコマンドを実行する。このため、エ
ラー発生によるオーバーヘッドは、エラー処理の開始か
らリソートにより選択されたコマンドの実行を開始する
までにかかる時間となる(図7のover head参
照)。従って、上記のオーバーヘッドは(エラー処理に
かかる時間)+(リソートにかかる時間)であり、例え
ば0.5〜1[ms]である。
【0081】従来のコマンド処理では、コマンド実行中
(ERPステップ0の実行中)にエラーが発生すると、
すぐにリトライ(ERPステップ1)を開始し、ディス
ク1が1回転する時間待って、目標のセクタに再アクセ
スする。これに対し、実施の形態1のコマンド処理で
は、コマンド実行中(ERPステップ0の実行中)にエ
ラーが発生すると、上記のオーバーヘッドの時間待っ
て、コマンドの実行を開始し、他のいくつかのコマンド
を実行したあとに、エラーが発生したコマンドの再実行
(ERPステップ1)を開始し、シーク/レイテンシー
時間待って、目標のセクタに再アクセスする。なお、従
来のコマンド処理のリトライでは、シーク/レイテンシ
ー時間は、ディスク1回転の待ち時間に含まれる。
【0082】上記のシーク/レイテンシー時間がコマン
ド再実行時間に等しいとしても、(オーバーヘッドの時
間)+(コマンド再実行時間)は、ディスク1回転の待
ち時間よりも短いため、実施の形態1のコマンド処理で
は、エラーが発生した場合のコマンド実行時間を従来よ
りも短縮することができ、1回のエラーで短縮できる時
間は、(ディスク1回転の待ち時間)−{(オーバーヘ
ッドの時間)+(コマンド再実行時間)}である。
【0083】図8は本発明の実施の形態1のコマンド処
理と従来のコマンド処理の違いを説明する図であり、
(a)は実施の形態1のコマンド処理、(b)は従来の
コマンド処理である。この図8は、ディスクの回転速度
が7200[rpm]であり、パフォーマンスが400
IOPs(Input/Output Per Second)IOPs=40
0[コマンド/s])のディスク装置でのコマンド処理
である。IOPsは、1[s]当たりに実行されるコマ
ンドの個数である。1[s]当たり、400個のコマン
ドが実行される場合には、IOPs=400[コマンド
/s]あるいは単に400IOPsと表記する。従っ
て、400IOPsのディスク装置とは、1[s]当た
りに400個のコマンドを実行するディスク装置のこと
である。上記のディスク装置では、ディスク1回転にか
かる時間は、8.33[ms]であり、正常に終了した
場合の1個のコマンドの実行時間は、2.5[ms]で
ある。
【0084】図8(b)の従来のコマンド処理では、コ
マンドCMDaの実行が終了したあとコマンドCMDb
の実行を開始する。コマンドCMDbの実行中にディス
クアクセスに関連するエラーが発生すると、すぐにリト
ライを開始し、エラー発生からディスクが1回転する
8.33[ms]待って、目標のセクタに再アクセスす
る。この再アクセスにより上記のエラーが解消され、コ
マンドCMDbの実行を終了したあとに、コマンドCM
Dcの実行を開始する。従って、従来のコマンド処理に
おいて、コマンドCMDa,CMDb,CMDcを実行
するのにかかる時間は、2.5+(2.5+8.33)
+2.5=15.83[ms]である。
【0085】これに対し、図8(a)の実施の形態1の
コマンド処理では、コマンドCMDaの実行を終了した
あとコマンドCMDbの実行を開始する。コマンドCM
Dbの実行中にディスクアクセスに関連するエラーが発
生すると、すぐに図6のエラー処理を実施し、コマンド
CMDbをコマンドキューに戻し、戻したコマンドCM
Dbを含む複数の実行待ちコマンドをリソートし、次に
実行するコマンドとして選択されたコマンドCMDcの
実行を開始する。コマンドCMDcの次に実行するコマ
ンドとしてコマンドCMDbが再び選択され、コマンド
CMDcの実行が終了すると、コマンドCMDbの再実
行を開始する。従って、実施の形態1のコマンド処理に
おいて、コマンドCMDa,CMDb,CMDcを実行
するのにかかる時間は、オーバーヘッドを1[ms]と
すると、2.5+(1+2.5)+2.5+2.5=1
1[ms]であり、従来よりもおよそ4[ms]短縮す
ることができる。
【0086】図9、図10、図11は本発明の実施の形
態1のコマンド処理による効果を従来のコマンド処理と
比較した図である。この図9〜図11は、キューデプス
16のコマンドキューを備え、ディスク回転速度が72
00[rpm]であるディスク装置において、2Kラン
ダムオペレーションをしたときの図である。ここで、2
Kランダムオペレーションとは、LBA=0〜2048
00(100[Mバイト]のディスク領域にLBA長さ
4(セクタ長さ4、データ長さ2[kバイト])のデー
タを読み書きするコマンドを上記ディスク装置に複数送
るものである。ディスク装置に送られる複数のコマンド
は、それぞれ上記のディスク領域をランダムにアクセス
するものであり、コマンドキューに空きができないよう
に送られる。また、1コマンドに発生するエラーは1回
以下とする。
【0087】図9はエラー発生率(Error ratio)に対
するパフォーマンス劣化率(Performance)を従来のコ
マンド処理と本発明のコマンド処理について描いた図で
ある。図9ではオーバーヘッドを0[s]としている。
図9では400IOPsのディスク装置について描いて
ある。上記のエラー発生率は、全実行コマンドの個数に
対するエラー発生コマンドの個数の割合であり単位は
[%]である。また、上記のパフォーマンス劣化率は、
エラーが発生しない場合に1[s]に実行されるコマン
ド個数(=400個)に対する、それぞれのエラー発生
率での1[s]に実行されるコマンド個数の割合であ
り、単位は[%]である。
【0088】この図9では、本発明のコマンド処理で
は、エラーの発生によるパフォーマンスの劣化を、従来
のコマンド処理よりも低減することができることが判
る。また、エラー発生率が高くなるほど、本発明のコマ
ンド処理によるパフォーマンス劣化の抑制効果が大きく
なることが判る。
【0089】また、図10はエラー発生率(Error rati
o)に対する本発明のコマンド処理によるパフォーマン
ス改善率(Improvement)をオーバーヘッドごとに描い
た図である。図10では、オーバーヘッドが0,1,
2,3[ms]について描いてある。また、図10で
は、400IOPsのディスク装置について描いてあ
る。上記のパフォーマンス改善率は、エラーが発生しな
い場合に1[s]に実行されるコマンド個数(=400
個)に対する、それぞれのエラー発生率での本発明のコ
マンド処理で1[s]に実行されるコマンド個数の従来
のコマンド処理で1[s]に実行されるコマンド個数か
らの増加個数の割合であり、単位は[%]である。
【0090】この図10では、エラー発生によるオーバ
ーヘッドが3[ms]であったとしても、本発明のコマ
ンド処理は、従来のコマンド処理に対し、パフォーマン
スの改善効果があることが判る。
【0091】また、図11はIOPsに対する本発明の
コマンド処理によるパフォーマンス改善率(Improvemen
t)を描いた図である。図11ではエラー発生率が5
[%]の場合について描いてある。
【0092】図11では、IOPsが大きくなるほど、
本発明のコマンド処理によるパフォーマンスの改善効果
が大きくなることが判る。現在のディスク装置のパフォ
ーマンスは、例えばIOPs=400[コマンド/s]
であり、将来のディスク装置では、ますます高速化が進
み、IOPsは400[コマンド/s]よりもさらに大
きくなることが予想される。図11はエラーが発生した
コマンドをコマンドキューに戻してリソートする本発明
のコマンド処理の重要性を裏付けるものである。
【0093】このように実施の形態1によれば、コマン
ド実行中にディスクアクセスに関連するエラーが発生す
ると、実行中のコマンドをコマンドキューに戻し、戻し
たコマンドを含むコマンドキュー内の複数の実行待ちコ
マンドの中から次に実行するコマンドをRPOにより選
択し、選択したコマンドを実行することにより、コマン
ド実行時のディスク回転待ち時間を低減し、コマンド処
理の効率化を図ることができる。
【0094】実施の形態2 本発明の実施の形態2のディスク装置は、上記実施の形
態1のディスク装置において、ドライブ側処理(ディス
クアクセスに関連する処理)でのシーク時間がRPOに
より予想されたシーク時間を越えた場合に、エラーと判
別するようにしたものである。なお、RPOによる予想
シーク時間を越えた場合のドライブ側処理でのシーク時
間をロングシークタイムと称する。
【0095】図12はロングシークタイムが発生したと
きの本発明の実施の形態2のドライブ側処理と従来のド
ライブ側処理の違いを説明する図であり、(a)は本発
明の実施の形態2のドライブ側処理、(b)は従来のド
ライブ側処理である。
【0096】図12(b)の従来のドライブ側処理で
は、コマンドハンドラがドライブ手段にアクセス目標の
トラックのシークをリクエストし(Seek Re
q)、シークをスタートさせたあと、ロングシークタイ
ムになっても、シークを継続し、シークが終了するまで
(アクセス機構のポジショニングが完了するまで)する
と(Seek Comp)、ドライブイベントハンドラ
によりシークが終了したことを通知するドライブイベン
トを生成し、このドライブイベントをコマンドハンドラ
に伝えていた(Seek Comp report)。
【0097】RPOは、それぞれの実行待ちコマンドの
シーク時間およびレイテンシー時間を予想し、シーク/
レイテンシー時間(=シーク時間+レイテンシー時間)
が最短となる実行待ちコマンドを次に実行するコマンド
として選択する。このため、ドライブ側処理でのシーク
がPROによる予想シーク時間内に終了した場合には、
アクセス機構のポジショニングの完了(シークの終了)
からPROによる予想レイテンシー時間のあとにアクセ
ス機構の読み込みヘッドの下に目標のセクタが到達し、
シーク開始(コマンド実行の開始)からRPOによる予
想シーク/レイテンシー時間内で、目標のセクタにアク
セスを開始することができる。しかし、ロングシークタ
イムになると、アクセス機構のポジショニングを完了し
たときに、目標のセクタが読み書きヘッドの下をすでに
通り過ぎているため、上記従来のドライブ側処理では、
アクセス機構のポジショニングを完了してから目標のセ
クタにアクセスを開始するまでに、ディスクが1回転す
るのを待たなければならない。
【0098】これに対し、図12(a)の実施の形態2
のドライブ側処理では、コマンドハンドラ22(図3参
照)がHDC4(図1および図3参照)にアクセス目標
のトラックのシークをリクエストし(Seek Re
q)、シークをスタートさせたあとに、ドライブ側処理
でのシーク時間がRPOによる予想シーク時間を越える
と、ドライブイベントハンドラ24は、シークタイムア
ウトのエラーと判別し(timeout)、シークタイ
ムアウトのエラーが発生したことを通知するドライブイ
ベントを生成、このドライブイベントをコマンドハンド
ラ22に伝える(Error report)。
【0099】コマンドハンドラ22は、上記のシークタ
イムアウトエラーを通知するドライブイベントを認識す
ると、図6のエラー処理を実施し、シークタイムアウト
エラーを生じた実行中のコマンドをコマンドキューに戻
す。キューハンドラ21は、戻されたコマンドを含むコ
マンドキュー内の実行待ちコマンドをRPOによりリソ
ートし、リソートにより選択されたコマンドをコマンド
ハンドラ22に送り、実行を要求する。コマンドハンド
ラ22は、図5に従って、キューハンドラ21から送ら
れたコマンドの実行を開始する。
【0100】この実施の形態2のドライブ側処理では、
ドライブ側処理でのシーク時間がRPOによる予想シー
ク時間を超えるとエラーと判別し、実行中のコマンドを
コマンドキューに戻し、RPOによりリソートし、リソ
ートにより選択されたコマンドを実行する。このため、
ロングシークタイムにより、アクセス機構2のポジショ
ニングを完了したときに目標のセクタが読み書きヘッド
13の下をすでに通り過ぎてしまうような場合には、シ
ークの終了前にエラーと判別され、ディスク1が1回転
するのを待たずに、リソートにより選択されたコマンド
の実行が開始される。これにより、ロングシークタイム
になっても上記従来のドライブ側処理のようなディスク
回転待ち時間を生じることはない。
【0101】このように実施の形態2によれば、ディス
クアクセスに関連する処理でのシーク時間がRPOによ
り予想されたシーク時間を越えた場合に、エラーと判別
し、実行中のコマンドをコマンドキューに戻し、RPO
によりリソートで選択されたコマンドを実行することに
より、シーク時間のばらつきによるディスク回転待ち時
間を低減し、コマンド処理の効率化を図ることができ
る。
【0102】
【発明の効果】以上説明したように本発明によれば、コ
マンド実行中にディスクアクセスに関連するエラーが発
生すると、実行中のコマンドをコマンドキューに戻し、
コマンドキュー内の複数の実行待ちコマンドの中から次
に実行するコマンドを選択することにより、コマンド実
行時のディスク回転待ち時間を低減し、コマンド処理の
効率化を図ることができるという効果がある。
【0103】また、これから実行するコマンドのシーク
時間を予想し、実行したコマンドのシーク時間が上記予
想したシーク時間を超えたら、ディスクアクセスに関連
するエラーと判別することにより、例えば上記のように
ディスクアクセスに関連するエラーが発生したら実行中
のコマンドをコマンドキューに戻すようにすれば、シー
ク時間のばらつきによるディスク回転待ち時間を低減
し、コマンド処理の効率化を図ることができるという効
果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態1のディスク装置のブロッ
ク構成図である。
【図2】本発明の実施の形態1のディスク装置における
コマンドキューの構造図である。
【図3】本発明の実施の形態1のディスク装置において
コマンド処理を実現するマイクロプログラム(ソフトウ
エア)のブロック構造図である。
【図4】図3のマイクロプログラムにおけるキューハン
ドラの制御ルーチンを説明するフローチャートである。
【図5】本発明の実施の形態1のコマンドハンドラ(図
3のマイクロプログラムにおけるコマンドハンドラ)の
制御ルーチンを説明するフローチャートである。
【図6】図3のマイクロプログラムによるドライブ側で
の処理におけるエラー処理を説明するフローチャートで
ある。
【図7】本発明の実施の形態1のコマンド処理を説明す
る図である。
【図8】本発明の実施の形態1のコマンド処理と従来の
コマンド処理の違いを説明する図である。
【図9】エラー発生率に対するパフォーマンス劣化率を
従来のコマンド処理と本発明のコマンド処理について描
いた図である。
【図10】エラー発生率に対する本発明のコマンド処理
によるパフォーマンス改善率をオーバーヘッドごとに描
いた図である。
【図11】IOPsに対する本発明のコマンド処理によ
るパフォーマンス改善率を描いた図である。
【図12】ロングシークタイムが発生したときの本発明
の実施の形態2のドライブ側処理と従来のドライブ側処
理の違いを説明する図である。
【図13】従来のコマンドハンドラの制御ルーチンを説
明するフローチャートである。
【図14】従来のコマンド処理を説明する図である。
【符号の説明】
1 ディスク、 2 アクセス機構、 4 ハード・デ
ィスク・コントローラ(HDC)、 5 ホスト・イン
ターフェース・コントローラ(HIC)、 6マイクロ
・プロセッシング・ユニット(MPU)、 7 メモ
リ、 8 RAM、 21 キューハンドラ、 22
コマンドハンドラ、 23 I/Fイベントハンドラ、
24 ドライブイベントハンドラ、 100 ディス
ク装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 高橋 佳代 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 平下 昇一 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 Fターム(参考) 5B065 BA01 CA15 CH05 EA04 EA22 EA39

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 外部装置から送信された複数の実行待ち
    コマンドが保持されるコマンドキューと、 データ記録媒体であるディスクにアクセスするアクセス
    機構を駆動し、ディスクアクセスに関連する処理をする
    ドライブ手段と、 外部装置とのデータ転送に関連する処理をするインター
    フェース手段と、 上記複数の実行待ちコマンドの中から次に実行するコマ
    ンドを選択し、選択したコマンドの実行を要求するコマ
    ンド管理手段と、 上記ドライブ手段および上記インターフェース手段を制
    御し、上記実行を要求されたコマンドを実行するコマン
    ド実行手段と、 上記ディスクアクセスに関連する処理を監視するドライ
    ブ監視手段とを備え、 上記コマンド実行手段は、コマンド実行中にディスクア
    クセスに関連するエラーが発生すると、実行中のコマン
    ドを上記コマンドキューに戻すことを特徴とするディス
    ク装置。
  2. 【請求項2】 外部装置から送信された複数のコマンド
    が保持されるコマンドキューと、 データ記録媒体であるディスクにアクセスするアクセス
    機構を駆動し、ディスクアクセスに関連する処理をする
    ドライブ手段と、 外部装置とのデータ伝送に関連する処理をするインター
    フェース手段と、 上記複数の実行待ちコマンドの中から次に実行するコマ
    ンドを選択し、選択したコマンドの実行を要求するコマ
    ンド管理手段と、 上記ドライブ手段および上記インターフェース手段を制
    御し、上記実行を要求されたコマンドを実行するコマン
    ド実行手段と、 上記ディスクアクセスに関連する処理を監視するドライ
    ブ監視手段とを備え、 上記コマンド管理手段は、上記コマンド実行手段に実行
    を要求するコマンドの実行開始から上記アクセス機構が
    ディスク上の目標トラックにポジショニングするまでの
    シーク時間を予想し、 上記ドライブ監視手段は、上記コマンド実行手段により
    実行されたコマンドのシーク時間が、上記予想されたシ
    ーク時間を超えたら、エラーと判別することを特徴とす
    るディスク装置。
  3. 【請求項3】 上記コマンド実行手段は、コマンド実行
    中にディスクアクセスに関連するエラーが発生すると、
    実行中のコマンドを上記コマンドキューに戻すことを特
    徴とする請求項2記載のディスク装置。
  4. 【請求項4】 上記コマンド管理手段は、コマンドキュ
    ーに入れられたそれぞれの実行待ちコマンドの、コマン
    ドの実行開始から上記アクセス機構がディスク上の目標
    セクタに到達するまでのシーク/レイテンシー時間を予
    想し、予想したシーク/レイテンシー時間が最短である
    コマンドを、次に実行するコマンドとして選択すること
    を特徴とする請求項1または2に記載のディスク装置。
  5. 【請求項5】 コマンドキューに入れられた複数の実行
    待ちコマンドの中から次に実行するコマンドを選択し、
    選択したコマンドの実行を要求するコマンド管理手段
    と、 データ記録媒体であるディスクに対するアクセスに関連
    する処理および外部装置とのデータ転送に関連する処理
    を制御し、上記実行を要求されたコマンドを実行するコ
    マンド実行手段と、 上記ディスクアクセスに関連する処理を監視するドライ
    ブ監視手段とを備えたディスク装置の制御方法におい
    て、 コマンド実行中にディスクアクセスに関連するエラーが
    発生したら、上記コマンド実行手段が、実行中のコマン
    ドを上記コマンドキューに戻すステップと、 上記コマンド管理手段が、上記戻されたコマンドを含む
    複数の実行待ちコマンドから次に実行するコマンドを選
    択し、選択したコマンドの実行を要求するステップとを
    含むことを特徴とするディスク装置の制御方法。
  6. 【請求項6】 コマンドキューに入れられた複数の実行
    待ちコマンドの中から次に実行するコマンドを選択し、
    選択したコマンドの実行を要求するコマンド管理手段
    と、 データ記録媒体であるディスクに対するアクセスに関連
    する処理および外部装置とのデータ転送に関連する処理
    を制御し、上記実行を要求されたコマンドを実行するコ
    マンド実行手段と、 上記ディスクアクセスに関連する処理を監視するドライ
    ブ監視手段とを備えたディスク装置の制御方法におい
    て、 上記コマンド手段に実行を要求するコマンドの実行開始
    からディスク上の目標のトラックのシークを終了するま
    でのシーク時間を、上記コマンド管理手段が予想するス
    テップと、 上記コマンド実行手段により実行されたコマンドのシー
    ク時間が上記予想されたシーク時間を超えたら、上記ド
    ライブ監視手段が、ディスクアクセスに関連するエラー
    と判別するステップとを含むことを特徴とするディスク
    装置の制御方法。
  7. 【請求項7】 コマンド実行中にディスクアクセスに関
    連するエラーが発生すると、上記コマンド実行手段が、
    実行中のコマンドを上記コマンドキューに戻すステップ
    と、 上記コマンド管理手段が、上記戻されたコマンドを含む
    複数の実行待ちコマンドから次に実行するコマンドを選
    択し、選択したコマンドの実行を要求するステップとを
    さらに含むことを特徴とする請求項6記載のディスク装
    置の制御方法。
  8. 【請求項8】 上記コマンド管理手段が、コマンドキュ
    ーに入れられたそれぞれの実行待ちコマンドの実行開始
    からディスク上の目標位置にアクセスを開始するまでの
    シーク/レイテンシー時間をそれぞれ予想し、予想した
    シーク/レイテンシー時間が最短であるコマンドを、次
    に実行するコマンドとして選択するステップをさらに含
    むことを特徴とする請求項5または6に記載のディスク
    装置の制御方法。
JP27403699A 1999-09-28 1999-09-28 ディスク装置およびその制御方法 Withdrawn JP2001100935A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27403699A JP2001100935A (ja) 1999-09-28 1999-09-28 ディスク装置およびその制御方法
US09/678,208 US6721906B1 (en) 1999-09-28 2000-09-27 Disk apparatus and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27403699A JP2001100935A (ja) 1999-09-28 1999-09-28 ディスク装置およびその制御方法

Publications (1)

Publication Number Publication Date
JP2001100935A true JP2001100935A (ja) 2001-04-13

Family

ID=17536081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27403699A Withdrawn JP2001100935A (ja) 1999-09-28 1999-09-28 ディスク装置およびその制御方法

Country Status (2)

Country Link
US (1) US6721906B1 (ja)
JP (1) JP2001100935A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174478B2 (en) 2002-08-14 2007-02-06 International Business Machines Corporation Method for re-assigning data, apparatus for recording data and program
JP2008250509A (ja) * 2007-03-29 2008-10-16 Fujitsu Ltd バックアッププログラム、バックアップ方法およびバックアップサーバ装置
US7477477B2 (en) 2006-12-15 2009-01-13 Kabushiki Kaisha Toshiba Hard disk drive and command execution method
JP2010514031A (ja) * 2006-12-20 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・コピーのシステム、装置、方法、およびプログラム
JP2012533800A (ja) * 2009-07-17 2012-12-27 サンドフォース インク. ドライブからホスト装置に送信される情報にギャップを挿入する方法
US11942110B2 (en) 2022-08-31 2024-03-26 Kabushiki Kaisha Toshiba Magnetic disk device and command processing method

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108573A (ja) * 2000-09-28 2002-04-12 Nec Corp ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
DE10154656A1 (de) * 2001-05-10 2002-11-21 Ibm System und Verfahren für Empfehlungen von Artikeln
US7120806B1 (en) * 2001-10-31 2006-10-10 Western Digital Technologies, Inc. Method for setting a power operating mode transition interval of a disk drive in a mobile device based on application category
US6877070B2 (en) * 2002-07-23 2005-04-05 Hitachi Global Storage Technologies Netherlands, B.V. Method and apparatus for implementing command queue ordering with benefit determination of prefetch operations
JP4170044B2 (ja) * 2002-08-16 2008-10-22 富士通株式会社 ディスク記憶装置
US7114029B1 (en) * 2002-10-31 2006-09-26 Western Digital Technologies, Inc. Disk drive employing a multi-phase rotational position optimization (RPO) algorithm
US6996501B1 (en) * 2002-12-24 2006-02-07 Western Digital Technologies, Inc. Disk drive executing a manufacturing program internally by executing disk commands through a vector
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US6968422B1 (en) * 2003-06-27 2005-11-22 Western Digital Technologies, Inc. Disk drive employing a modified rotational position optimization algorithm to account for external vibrations
US7380147B1 (en) 2005-10-24 2008-05-27 Western Digital Technologies, Inc. Computer device employing a sliding window to set an idle mode timeout interval
US8090902B1 (en) 2009-05-22 2012-01-03 Western Digital Technologies, Inc. Disk drive adjusting command execution in response to control circuitry die temperature
CN102591668B (zh) * 2011-01-05 2015-04-08 阿里巴巴集团控股有限公司 对弹性计算云系统升级的装置、方法及系统
US10198188B2 (en) * 2017-03-09 2019-02-05 Kabushiki Kaisha Toshiba Disk drive that efficiently handles random mixed-R/W command-streams

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467054B1 (en) * 1995-03-13 2002-10-15 Compaq Computer Corporation Self test for storage device
JPH08293176A (ja) * 1995-04-21 1996-11-05 Fujitsu Ltd ディスク装置
US5923876A (en) * 1995-08-24 1999-07-13 Compaq Computer Corp. Disk fault prediction system
US5872905A (en) * 1996-03-14 1999-02-16 Matsushita Electric Industrial Co., Ltd. Recording area management method, error recovery processing method, and storage apparatus
US6493656B1 (en) * 1999-02-26 2002-12-10 Compaq Computer Corporation, Inc. Drive error logging
US6370605B1 (en) * 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
US6289484B1 (en) * 1999-05-19 2001-09-11 Western Digital Technologies, Inc. Disk drive employing off-line scan to collect selection-control data for subsequently deciding whether to verify after write
US6408406B1 (en) * 1999-08-31 2002-06-18 Western Digital Technologies, Inc. Hard disk drive infant mortality test

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174478B2 (en) 2002-08-14 2007-02-06 International Business Machines Corporation Method for re-assigning data, apparatus for recording data and program
US7477477B2 (en) 2006-12-15 2009-01-13 Kabushiki Kaisha Toshiba Hard disk drive and command execution method
JP2010514031A (ja) * 2006-12-20 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・コピーのシステム、装置、方法、およびプログラム
JP2008250509A (ja) * 2007-03-29 2008-10-16 Fujitsu Ltd バックアッププログラム、バックアップ方法およびバックアップサーバ装置
JP2012533800A (ja) * 2009-07-17 2012-12-27 サンドフォース インク. ドライブからホスト装置に送信される情報にギャップを挿入する方法
US11942110B2 (en) 2022-08-31 2024-03-26 Kabushiki Kaisha Toshiba Magnetic disk device and command processing method

Also Published As

Publication number Publication date
US6721906B1 (en) 2004-04-13

Similar Documents

Publication Publication Date Title
JP2001100935A (ja) ディスク装置およびその制御方法
JP3254429B2 (ja) データ転送/管理システム及び方法
US9720860B2 (en) System and method for efficient processing of queued read commands in a memory system
US20040264284A1 (en) Assignment of queue execution modes using tag values
EP2015167A2 (en) Storage device
JP2006139548A (ja) メディア・ドライブ及びそのコマンド実行方法
US6925539B2 (en) Data transfer performance through resource allocation
US7574538B1 (en) Contiguous I/O command queuing within a data storage device
US7225293B2 (en) Method, system, and program for executing input/output requests
JP3745552B2 (ja) 情報記憶装置
US6567886B1 (en) Disk drive apparatus and control method thereof
JPH10149260A (ja) ディスクドライブにおける読出キャッシュ方式
JPH08286837A (ja) 外部記憶サブシステムの制御方法および制御装置
US8320066B2 (en) Storage device and read/write processing method therefor
JP2001022529A5 (ja) マルチドライブ記憶システム及びディスクドライブ装置の制御方法
JP2002304823A (ja) リオーダリングコントローラ、リオーダリング方法及び記憶装置
JPS593787B2 (ja) ダイレクト・アクセス記憶装置用コマンドの実行方式
US7526604B1 (en) Command queueing speculative write prefetch
JP5030387B2 (ja) データ記憶装置
US6957300B2 (en) Reducing delay of command completion due to overlap condition
US6421747B1 (en) Method for maximizing buffer usage on a disk drive
JPH04111113A (ja) ハードディスクエミュレータ
JPH10171713A (ja) ディスク記憶装置及び同装置に適用するキャッシュ制御方法
JPH05233513A (ja) データ転送制御用インタフェース回路
JPH04251421A (ja) ディスク・ドライブのヘッド/アームの径方向移動回数を低減する方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061205