JP2001022529A - ディスクドライブ装置及びその制御方法 - Google Patents

ディスクドライブ装置及びその制御方法

Info

Publication number
JP2001022529A
JP2001022529A JP11184702A JP18470299A JP2001022529A JP 2001022529 A JP2001022529 A JP 2001022529A JP 11184702 A JP11184702 A JP 11184702A JP 18470299 A JP18470299 A JP 18470299A JP 2001022529 A JP2001022529 A JP 2001022529A
Authority
JP
Japan
Prior art keywords
command
processing
drive
interface
executed
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.)
Pending
Application number
JP11184702A
Other languages
English (en)
Other versions
JP2001022529A5 (ja
Inventor
Hiroshi Saito
博史 斎藤
Ryoji Fukuhisa
良司 福久
Kazunori Inoue
和則 井上
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 JP11184702A priority Critical patent/JP2001022529A/ja
Priority to US09/692,260 priority patent/US6567886B1/en
Publication of JP2001022529A publication Critical patent/JP2001022529A/ja
Publication of JP2001022529A5 publication Critical patent/JP2001022529A5/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0676Magnetic disk 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 マルチドライブ環境において発生し得る回転
待ちを防ぎ、パフォーマンスを向上させることができる
ディスクドライブ装置及びその制御方法を提供する。 【解決手段】 ホストが発行する複数のコマンドをキュ
ーエリアに格納し、リオーダーを行って実行されるべき
コマンドを決定し、決定したコマンドの実行を要求する
キューハンドラ7、実行を要求されたコマンドによりホ
ストとドライブ装置2の間のデータ転送を含むインター
フェース側の処理を実行するインターフェースハンドラ
8、実行を要求されたコマンドによりドライブ側の処理
を実行し、コマンドの実行に関る読み出し/書き込みを
ドライブ装置2に要求するドライブハンドラ9からなる
マイクロプログラムを備え、コマンド処理に関してイン
ターフェース側の処理とドライブ側の処理を分離し、イ
ンターフェース側の処理がドライブ側の処理の開始に影
響を与えないようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードディスクド
ライブ(HDD)等に用いられるディスクドライブ装置
及びその制御方法に係り、詳細には、マルチドライブ環
境における高速データ転送のためのディスクドライブ装
置及びその制御方法に関する。
【0002】
【従来の技術】情報処理装置の補助記憶装置として用い
られるハードディスクドライブ(HDD)には、アクセ
ス速度向上のために、情報処理装置(以下、ホストとい
う)から供給されたデータを一時的に保持し、または磁
気ディスクから読み出されたデータがホストに転送され
るまでの間このデータを一時的に保持するキャッシュメ
モリ及びキャッシュ制御を行う制御部を設けることが一
般的である。
【0003】制御部は、ホストから書き込みデータが供
給されると、供給された書き込みデータをキャッシュメ
モリに保持した後、ホストを書き込み処理から解放す
る。これと並行して、制御部は、キャッシュメモリに保
持した書き込みデータが順次、磁気ディスク(以下、メ
ディアという)に書き込まれるように書き込み系の制御
を行う。さらに、制御部はホストからの読み出し要求が
あると予想されるデータのメディアからの読み出しを読
み出し系に指示し、読み出されたデータをキャッシュメ
モリに保持しておく。そして、ホストからの読み出し要
求があったときに、読み出し対象データがキャッシュメ
モリに保持されていれば、それをホストに供給する。こ
のようなキャッシュ制御を行うことにより、HDDの見
かけ上のアクセス速度が向上する。
【0004】近年の小型のHDDでは、コマンドオーバ
ーヘッドの削減によるパフォーマンスの向上の手段とし
て、ホストインターフェース周辺の処理に対するHDD
のマイクロプロセッサ(以下、ローカルMPUという)
の介在をできるだけ減らして、その処理をできる限りハ
ードウェアによるホストインターフェースコントローラ
(Host Interface Controller:HIC)に行わせる手
法が採られる傾向にある。
【0005】その一つとして、ホストとキャッシュメモ
リの間はローカルMPUの介在なしにHICによる制御
の下にデータ転送を行うことができる一方、メディアと
キャッシュメモリの間のデータ転送は、ローカルMPU
がハードディスクコントローラ(Hard Disk Controlle
r:HDC)を制御してデータ転送を行うローカルMP
Uの介在を必要とするシステムを用いることが考えられ
る。
【0006】このようなシステムにおいて、ホストから
のライトコマンドによりデータをメディアに書き込む場
合には次のような動作となる。
【0007】(1)ホストからのデータがHICを通して
キャッシュメモリ内に一旦入ると、HICからはローカ
ルMPUに対してホストからコマンドが来たことを通知
する。これを受けてローカルMPUは、HDCに対して
キャッシュメモリにあるデータをメディアに書き出しな
さいという命令を出す。この命令によりHDCはキャッ
シュメモリのデータをメディアに転送し、メディアにデ
ータが書き込まれる。
【0008】(2)その後、ローカルMPUには、HIC
から、ホストからキャッシュメモリへの転送が終了した
旨の通知が出される一方、HDCからはメディアに対し
ての書き込みが終了した旨の通知が出される。
【0009】より詳細にHIC及びローカルMPUの動
作を説明する。HICは、ホストからのコマンドを受け
とると、ローカルMPUの介在なしに直ちにキャッシュ
メモリへのデータ転送を開始し、ローカルMPUに通知
する。このデータ転送が終了し、かつキャッシュメモリ
内に次のライトコマンドを受付可能な空き(例えば、1
ブロック)ができた時点でHICはローカルMPUに対
しコマンド終了を通知する。これは、次のライトコマン
ドがきたときに該ライトコマンドをキャッシュメモリに
直ちに取り込めるようにするためのもので、IDE(In
tegrated Device Electronics)インターフェース上の
規格となっている。
【0010】このような動作において、キャッシュメモ
リ上に充分な空きがある場合には、HICは、ローカル
MPUによる書き込み処理動作には構わずに単独でホス
トに対して終了を通知し、ホストから次のライトコマン
ドを受付けて次のライトコマンドに基づくデータ転送を
行ってしまう。このようにして、キャッシュメモリ内に
できるだけコマンドを取り込むことにより、よりパフォ
ーマンスの向上を図っている。上記動作を行うために、
キャッシュメモリには、キャッシュメモリのコマンドの
種類を保持するためのコマンドキューが設けられてい
る。
【0011】図9はキャッシュメモリのコマンドキュー
(QUEUE)の構造を示す図である。図9において、Q=
1,2,…,nはキューアドレス、A,B,C,D,
…,Nはキャッシュメモリ内に保持されたコマンドであ
る。図9に示すように、コマンドキューには、キャッシ
ュメモリ内にキャッシュされたコマンドが古いコマンド
から順にA,B,…と書き込まれていく。コマンドを受
け取る度にキューアドレスが増え、古いコマンドが順次
実行されるとキューアドレスが減少する。コマンドキュ
ーの管理は、HICが行っており、またローカルMPU
はキューアドレスのコマンドを取り込むことができる。
【0012】コマンドキューに保持されたライトコマン
ドは、ローカルMPUがHDCに書き出し指示を行うこ
とによってHDCにより実行され、メディアに書き込ま
れる。また、メディアから読み込まれたデータはHDC
によりキャッシュメモリに転送され、そしてHICによ
ってホストに転送される。
【0013】ディスクドライブ装置には、セクタバッフ
ァと呼ばれるメモリが搭載されており、順次読み出しを
高速化するために、一つの読み出しコマンドで要求され
た領域の読み出しが終了しても、それに続く領域の読み
出しを続けておく(Look Aheadと呼ばれている)。する
と順次読み出しの場合には、次の読み出しコマンドが来
たときには、既に上記メモリ上にデータが存在すること
になり、高速化が図られる。なお、使用可能なセクタに
通し番号を振ったものを論理ブロックアドレス(LB
A:Logical Block Address )と呼ぶ。
【0014】また、ハードディスク装置には、一般にリ
ード/ライト・ヘッドの移動が最小になるようにキュー
イングされたコマンドの実行順序を並べ変えるリオーダ
ー(reorder:再整理)という機能がある。ハードディ
スク装置は、ホストから受け取った複数のコマンドを待
ち行列(キュー)に入れ、ロジカル・ユニット上でそれ
らのコマンド列を最も効率良く高速に実行するようにコ
マンドの実行順序を変更する。
【0015】すなわち、ホストからハードディスク装置
に対し複数の場所のセクタのデータをリード/ライトが
発行された場合、コマンドが発行された通りの順番でセ
クタを読み出すと、ヘッドが何度もディスク上を往復し
て時間がかかってしまうことになる。そこで、最もヘッ
ドの移動量が少なくなるスケジュールでセクタのリード
/ライトするようにコマンドの順番を入れ替える。この
場合、ヘッドの移動量だけでなく、ディスクの回転待ち
やヘッドの切り替え時間も考慮してスケジュールを立て
る。このコマンドの順番を決めるスケジュールは、RP
O(RotationalPosition Optimization)によって決定
される。
【0016】図10は上記コマンド処理を実現するソフ
トウェア(マイクロプログラム)を含むハードディスク
装置の構成を示すブロック図である。
【0017】図10において、1はホストインターフェ
ースコントローラ(HIC)、2はアクチュエータ機構
を駆動するボイスコイルモータ(VCM)及びハードデ
ィスクコントローラ(HDC)に対する制御を含む、H
DDのドライブ動作を制御するドライブ装置、3はイン
ターフェースイベントハンドラ(I/F Event Handle
r)、4はキューハンドラ(Queue Handler)、5はコマ
ンドハンドラ(Cmd Handler)、6はドライブイベント
ハンドラ(Drive Event Handler)である。
【0018】HIC1及びドライブ装置2は、ハードウ
ェアにより構成されている。また、インターフェースイ
ベントハンドラ3、キューハンドラ4、コマンドハンド
ラ5及びドライブイベントハンドラ6は、マイクロプロ
グラムによる限定された機能を持つ制御ルーチン(rout
ine)であり、MPUにより実行される。
【0019】インターフェースイベントハンドラ3は、
HIC1からのイベント(Event:事象)を処理し、キ
ューハンドラ4あるいはコマンドハンドラ5にそのイベ
ントを伝える。HIC1がコマンド(Command)を受け
取った場合は、キューエリア(Queue area)に格納す
る。
【0020】キューハンドラ4は、複数のコマンドがキ
ューエリアに格納された場合には、コマンド列を最も効
率良く高速に実行するようにリオーダーを行い、コマン
ドハンドラ5により実行されるべきコマンドを決定す
る。決定後に、コマンドハンドラ5にコマンドの実行を
要求する。コマンドハンドラ5によりコマンドが実行さ
れ終了すると、次に実行すべきコマンドがある場合はそ
の実行をコマンドハンドラ5に要求する。
【0021】コマンドハンドラ5は、キューハンドラ4
により実行を要求されたコマンドを実行する。また、ド
ライブ装置2のリード/ライトをドライブ装置2に要求
する。また、インターフェース(I/F)の制御をHI
C1に要求する。このように、コマンドハンドラ5は、
ドライブ及びI/Fに関るイベントを処理する。
【0022】ドライブイベントハンドラ6は、ドライブ
装置2のHDCからのイベントを処理し、コマンドハン
ドラ5へイベントを伝える。
【0023】次に、上記マイクロプログラムのコマンド
処理について説明する。
【0024】図11は上記マイクロプログラムのキュー
ハンドラ4の制御ルーチンを示すフローチャートであ
り、図中STは各処理ステップを示す。
【0025】まず、ステップST1でキューエリアに実
行待ちのコマンドがあるか否かを判別し、実行待ちのコ
マンドがあればステップST2でコマンド列を最も効率
良く高速に実行するように再整理を行ってステップST
3に進む。
【0026】実行待ちのコマンドがないとき、あるいは
再整理を行ったときはステップST3でコマンドハンド
ラ5が実行中のコマンドがあるか否かを判別し、実行中
のコマンドがあればステップST1に戻り、実行中のコ
マンドがないときはステップST4に進む。
【0027】ステップST4では、実行すべきコマンド
が決定されているか否かを判別し、実行すべきコマンド
が決定されていなければステップST1に戻る。実行す
べきコマンドが決定されているときはステップST5で
コマンドの実行をコマンドハンドラ5に要求してステッ
プST1に戻る。
【0028】図12は上記マイクロプログラムのコマン
ドハンドラ5の制御ルーチンを示すフローチャートであ
る。
【0029】コマンド実行開始でプログラムがスタート
し、まず、ステップST11でインターフェースに係る
イベント(I/Fイベント)があるか否かを判別し、I
/FイベントがあればステップST12でI/Fイベン
ト処理を行ってステップST13に進む。
【0030】I/Fイベントがないとき、あるいはI/
Fイベント処理を行ったときはステップST13でドラ
イブに係るイベント(ドライブイベント)があるか否か
を判別し、ドライブイベントがあればステップST14
でドライブイベント処理を行ってステップST15に進
む。
【0031】ドライブイベントがないとき、あるいはド
ライブイベント処理を行ったときはステップST15で
I/F及びドライブ処理はすべて終了したか否かを判別
し、終了していなければステップST11に戻って上記
処理を繰り返し、終了していれば本コマンド処理を終了
する。
【0032】以下、上記構成を有するハードディスク装
置のキュードランダムオペレーション(Queued randam
operation)について説明する。このキュードランダム
オペレーションにおいて実行するコマンドの順番は、R
POによって決定される。
【0033】図13〜図16はキュードランダムオペレ
ーションにおけるインターフェース側とドライブ側のコ
マンドの処理及び転送のタイミングを示す図である。図
13及び図14はキュードランダムオペレーションのう
ちのリードオペレーション(read operation)、図15
及び図16はライトオペレーション(write operatio
n)を示し、また、図13及び図15はSCSI(Small
Computer System Interface)バスを通して1台のハー
ドディスク装置がホストに接続されたシングルドライブ
環境における各オペレーションを、図14及び図16は
複数台のハードディスク装置がホストに接続されたマル
チドライブ(Multi drive)環境における各オペレーシ
ョンをそれぞれ示す。
【0034】図17はハードディスク装置のマルチドラ
イブ環境を説明するための図であり、図17(a)はバ
スを通して1台のハードディスク装置がホストに接続さ
れた場合を、図17(b)はSCSIバスを通して複数
台のハードディスク装置がホストに接続されたマルチド
ライブ環境を示す。図17のSCSIには、SCSIを
拡張したSCSI2を用いる。図17(b)は、ハード
ディスク装置を接続したマルチドライブ環境であり、S
CSI2に接続される周辺機器には、他に例えばCD−
Rドライブ、MOドライブがある。これらディスク装置
のうち何れのディスク装置からもSCSI2バスを通し
てホストとの間でデータのリード/ライトが行われる。
【0035】また、ホストをサーバとしてRAID(re
dundant arrays of inexpensive disks)を組む場合に
は、ハードディスクドライブ装置は複数台接続され、単
一のドライブのように見えるようにする。このようなデ
ィスクアレイ制御方法については、例えば特開平5−2
89818号、特表平8−501643号各公報に記載
されたものがある。
【0036】現状のキュードランダムオペレーション
は、図13〜図16のように処理されている。
【0037】図13のリードオペレーションに示すよう
に、ホストがドライブ側にデータ転送をリクエストした
場合には、ドライブ側処理でキューした後のコマンド1
(CMD1)のデータをシークしてディスクから読み出
してバッファに格納し、この読み出したデータをインタ
ーフェース(I/F)側処理でデータ転送してホストに
送り(図13a.参照)CMD1のデータ読み出しが終
わる。ホストは新しいコマンド(ここではCMDm)を
発行する(図13b.参照)。
【0038】次のコマンドはリオーダー(reorder)が
終わって新しいコマンド(ここではCMD2)が決まっ
ているので、コマンド2(CMD2)のデータをシーク
してディスクから読み出してバッファに格納し(図13
c.参照)、この読み出したデータをインターフェース
(I/F)側処理でデータ転送してホストに送る。この
時、CMD1が終わってからCMD2のシークが始まる
まではあらかじめ決まった時間であるとしてRPOのア
ルゴリズムは設計されている。
【0039】このようにリードオペレーションにおい
て、バスに1台のハードディスクドライブ装置しか繋が
れていない場合はデータ転送が滞りなく行われ、一連の
コマンドはRPOにより予測した時間内に終了する。
【0040】また、図15のライトオペレーションに示
すように、ライトの場合は上記リード動作と異なりデー
タが来ないと書き込みできない。また、ステータス及び
そのメッセージ(status & MSG)の確認が入る。
【0041】ドライブ側は内部的にコマンド1(CMD
1)の実行を行おうとすると、CMD1の実行に際して
データが欲しいのでホスト側に対してリセル(resel)
をかける(図15a.参照)。ライトのリセルなのでホ
ストからのデータが転送され(図15b.参照)、ドラ
イブ側は転送されたデータをシークし、待ち時間(late
ncy)分待ってディスクにデータを書き込む(図15
c.参照)。データの書き込みが終了すると、図15
d.に示すようにコマンド終了のステータス及びステー
タスメッセージをホストに送る。
【0042】ホストは新しいコマンド(ここではCMD
n)を発行する(図15e.参照)。次のコマンドはリ
オーダー(reorder)が終わって新しいコマンド(ここ
ではCMD2)が決まっている。
【0043】このようにライトオペレーションにおい
て、バスに1台のハードディスクドライブ装置しか繋が
れていない場合はデータ転送が滞りなく行われ、一連の
コマンドはRPOにより予測した時間内に終了する。
【0044】
【発明が解決しようとする課題】しかしながらこのよう
な従来のキュードランダムオペレーションを行う手法を
採るハードディスクドライブ装置には、以下のような理
由でパフォーマンスの向上に限界があった。
【0045】すなわち、図17(a)に示すようにバス
に1台のハードディスクドライブ装置しか繋がれていな
い場合は図13及び図15で説明したようにデータ転送
が滞りなく行われ、一連のコマンドはRPOにより予測
した時間内に終了する。しかし、図17(b)に示すよ
うにバスに2台以上のハードディスクドライブ装置が繋
がれているときはデータ転送が直ちに開始できるとは限
らず、待ち時間が生じてしまい、パフォーマンスが低下
する。以下、この問題点について図14及び図16を参
照して詳細に説明する。
【0046】図14はSCSIバス上に2台以上のハー
ドディスク装置が接続されたマルチドライブ環境におけ
るリードオペレーションを示す図であり、他の条件は前
記図13のシングルドライブ環境と同様である。
【0047】図14のマルチドライブ環境におけるリー
ドオペレーションに示すように、ドライブ側でコマンド
1(CMD1)によりディスクから読み出したデータを
インターフェース側でCMD1によりデータ転送を開始
しようとしたときバスがフリー(空き)の状態にない
と、CMD1のデータ転送はバスがフリーになるまでの
時間A(図14a.参照)遅れることになる。このこと
により、次のコマンドCMD2のドライブ側の処理の開
始は、図14b.に示すようにCMD1のインターフェ
ース側の処理終了を待っていることから時間A遅れるこ
とになる。RPOは、待ち時間(latency)が0になる
ようにコマンド処理の順番を決定しているので、ドライ
ブ処理の開始の遅れは図14c.に示すように1回転待
ち(1REV.)を生じさせる原因となる。
【0048】すなわち、RPOは、データ転送を開始し
ようとしたときは直にデータ転送できることを前提とし
てアルゴリズムが設計されているので、インターフェー
ス側のデータ転送にわずかでも遅れが発生すると、ドラ
イブ側ではこのわずかな遅れ時間Aのために、次のコマ
ンドの実行(シーク及びリード)が間に合わず、コマン
ド処理に1回転待ちが生じてしまうことになる。
【0049】同様の問題は、マルチドライブ環境におけ
るライトオペレーションにおいても発生する。
【0050】図16はSCSIバス上に2台以上のハー
ドディスク装置が接続されたマルチドライブ環境におけ
るライトオペレーションを示す図であり、他の条件は前
記図15のシングルドライブ環境と同様である。
【0051】図16のマルチドライブ環境におけるライ
トオペレーションに示すように、インターフェース側で
コマンド2(CMD2)によりデータ転送を開始しよう
としたときバスがフリー(空き)の状態にないと、CM
D2のデータ転送ができずCMD2のデータ転送はバス
がフリーになるまでの時間B(図16a.参照)遅れる
ことになる。このことにより、コマンドCMD2のドラ
イブ側の処理の開始は、図16b.に示すようにCMD
2のインターフェース側の処理開始(ライトするデータ
がバッファに格納されていること)を待っているので時
間B遅れることになる。RPOは、待ち時間(latenc
y)が0になるようにコマンド処理の順番を決定してい
るので、インターフェース処理の開始の遅れは図16
b.に示すように1回転待ち(1REV.)を生じさせ
る原因となる。
【0052】以上のように、マルチドライブ環境におい
ては、あるハードティスクドライブ装置がバスを使用し
たいときに他のハードティスクドライブ装置がバスを使
用していると、直ちにバスを使用することはできず前記
図14及び図16に示す待ち時間A,Bが生じてしま
う。キュードランダムオペレーションにおいて実行する
コマンドの順番はRPOによって決定されるが、RPO
ではバスを使用できないことは考慮していないため、上
記予期せぬ待ち時間が生じるとコマンド処理に余分な回
転待ちを必要としてしまう問題点があった。また、どれ
だけバスを使用できないかは他のハードティスクドライ
ブ装置の動作のため予測できない。また、SCSIに接
続される周辺機器には、ハードティスクドライブ装置以
外の種々のデバイスがありこれらデバイスがバスを使用
すると同様の不具合が生じる。
【0053】本発明は、マルチドライブ環境において発
生し得る回転待ちを防ぎ、パフォーマンスを向上させる
ことができるディスクドライブ装置及びその制御方法を
提供することを目的とする。
【0054】
【課題を解決するための手段】本発明のディスクドライ
ブ装置は、ディスク状記憶媒体に対しデータの読み出し
/書き込み等の動作を制御するドライブ制御手段と、ハ
ードウェアによりホストとドライブ制御手段間のデータ
転送を行うホストインターフェース制御手段と、ホスト
が発行する複数のコマンドをキューエリアに格納し、コ
マンド列を最も効率良く高速に実行するようにリオーダ
ーを行って実行されるべきコマンドを決定し、決定した
コマンドの実行を要求するコマンド管理手段とを備えた
ディスクドライブ装置において、実行を要求されたコマ
ンドによりホストとドライブ制御手段の間のデータ転送
を含むインターフェース側の処理を実行するインターフ
ェース処理手段と、実行を要求されたコマンドによりド
ライブ側の処理を実行し、コマンドの実行に関る読み出
し/書き込みをドライブ制御手段に要求するドライブ処
理手段とを備え、コマンド処理に関してインターフェー
ス側の処理とドライブ側の処理を分離して処理すること
を特徴とする。
【0055】本発明のディスクドライブ装置は、コマン
ド処理に関してインターフェース側の処理とドライブ側
の処理を分離し、インターフェース側の処理がドライブ
側の処理の開始に影響を与えないようにしたものであっ
てもよい。
【0056】本発明のディスクドライブ装置は、インタ
ーフェース処理手段が、第1コマンドによりインターフ
ェース側の処理を実行しようとしたとき、ドライブ処理
手段は、インターフェース処理手段の処理の実行の可否
にかかわらず、第1コマンドのドライブ側の処理終了時
に第2コマンドの処理を開始するものであってもよい。
【0057】本発明のディスクドライブ装置は、複数の
コマンドの実行によりディスク状記憶媒体から読み出さ
れたデータを格納する複数のキャシュセグメントバッフ
ァを備え、ドライブ処理手段は、コマンドの実行により
ディスク状記憶媒体から読み出したデータを複数のキャ
シュセグメントバッファに格納してドライブ側の処理を
実行し、インターフェース処理手段は、複数のキャシュ
セグメントバッファに格納されたデータに対してインタ
ーフェース側の処理を実行するものであってもよい。
【0058】本発明のディスクドライブ装置は、複数の
コマンドの実行によりディスク状記憶媒体に書き込むべ
きデータを格納する複数のキャシュセグメントバッファ
を備え、インターフェース処理手段は、ドライブ処理手
段の処理状況にかかわらず、複数のキャシュセグメント
バッファにデータ転送を開始し、ドライブ処理手段は、
複数のキャシュセグメントバッファに転送された書き込
みデータを、コマンドの実行によりディスク状記憶媒体
に書き込んでドライブ側の処理を実行するものであって
もよい。
【0059】本発明のディスクドライブ装置は、複数の
コマンドの実行によりディスク状記憶媒体に書き込むべ
きデータを格納する複数のキャシュセグメントバッファ
を備え、インターフェース処理手段は、コマンド管理手
段により決定されたコマンド処理順にかかわらず、複数
のキャシュセグメントバッファにデータ転送を開始し、
ドライブ処理手段は、複数のキャシュセグメントバッフ
ァに転送された書き込みデータを、コマンド管理手段に
より決定されたコマンド処理順でディスク状記憶媒体に
書き込んでドライブ側の処理を実行するものであっても
よい。
【0060】上記インターフェース処理手段が実行する
インターフェース側の処理は、データ転送であってもよ
く、上記ドライブ処理手段が実行するドライブ側の処理
は、ディスク状記憶媒体に対する読み出し/書き込み処
理であってもよい。
【0061】また、上記ドライブ処理手段が実行するド
ライブ側の処理は、複数のキャシュセグメントバッファ
へのデータの書き込み処理、または複数のキャシュセグ
メントバッファからのデータの読み出し処理であっても
よい。
【0062】本発明のディスクドライブ装置は、ホスト
が発行する複数のコマンドをキューエリアに格納してコ
マンドを実行するキュードランダムオペレーションを行
うものであってもよい。
【0063】本発明のディスクドライブ装置は、ホスト
が発行する複数のコマンドをキューエリアに格納してコ
マンドを実行するキュードランダムオペレーションを行
うとともに、該キュードランダムオペレーションにおい
て実行されるコマンドの順番は、コマンド列を最も効率
良く高速に実行するようにコマンドの実行順序を変更す
るRPOにより決定するものであってもよい。
【0064】本発明のディスクドライブ装置は、ホスト
と複数の周辺機器をバスにより接続し、該バスを占有し
てホストと周辺機器間、又は周辺機器同士間のデータ転
送を行うマルチドライブ環境で用いられるディスクドラ
イブ装置において、周辺機器は、請求項1に記載された
ディスクドライブ装置であってもよい。
【0065】本発明のディスクドライブ装置の制御方法
は、ホストが発行する複数のコマンドをキューエリアに
格納し、コマンド列を最も効率良く高速に実行するよう
にリオーダーを行って実行されるべきコマンドを決定
し、決定したコマンドの実行を要求するコマンド管理手
段と、実行を要求されたコマンドによりインターフェー
ス側の処理を実行するインターフェース処理手段と、実
行を要求されたコマンドによりドライブ側の処理を実行
するドライブ処理手段とを備えたディスクドライブ装置
の制御方法であって、リードコマンドを実行するキュー
ドランダムリードオペレーションでは、ドライブ処理手
段が、ドライブ側で第1コマンドの処理を実行するステ
ップと、ドライブ側での第1コマンドの処理終了を受
け、インターフェース処理手段が、第1コマンドにより
インターフェース側の処理を実行するステップと、ドラ
イブ処理手段が、インターフェース処理手段による第1
コマンドの処理の実行の可否にかかわらず、第1コマン
ドのドライブ側の処理終了時に第2コマンドの処理を開
始するステップとを含むことを特徴とする。
【0066】本発明のディスクドライブ装置の制御方法
は、ホストが発行する複数のコマンドをキューエリアに
格納し、コマンド列を最も効率良く高速に実行するよう
にリオーダーを行って実行されるべきコマンドを決定
し、決定したコマンドの実行を要求するコマンド管理手
段と、実行を要求されたコマンドによりインターフェー
ス側の処理を実行するインターフェース処理手段と、実
行を要求されたコマンドによりドライブ側の処理を実行
するドライブ処理手段とを備えたディスクドライブ装置
の制御方法であって、リードコマンドを実行するキュー
ドランダムリードオペレーションでは、ドライブ処理手
段が、コマンドの実行によりディスク状記憶媒体から読
み出したデータを複数のキャシュセグメントバッファに
格納してドライブ側の処理を実行するステップと、イン
ターフェース処理手段が、複数のキャシュセグメントバ
ッファに格納されたデータに対してインターフェース側
の処理を実行するステップと、ドライブ処理手段が、イ
ンターフェース処理手段によるインターフェース側の処
理の実行の可否にかかわらず、次のコマンドの処理を順
次実行するステップとを含むことを特徴とする。
【0067】本発明のディスクドライブ装置の制御方法
は、ホストが発行する複数のコマンドをキューエリアに
格納し、コマンド列を最も効率良く高速に実行するよう
にリオーダーを行って実行されるべきコマンドを決定
し、決定したコマンドの実行を要求するコマンド管理手
段と、実行を要求されたコマンドによりインターフェー
ス側の処理を実行するインターフェース処理手段と、実
行を要求されたコマンドによりドライブ側の処理を実行
するドライブ処理手段とを備えたディスクドライブ装置
の制御方法であって、ライトコマンドを実行するキュー
ドランダムライトオペレーションでは、インターフェー
ス処理手段が、ドライブ処理手段の処理状況にかかわら
ず、複数のキャシュセグメントバッファにデータ転送を
開始するステップと、ドライブ処理手段が、複数のキャ
シュセグメントバッファに転送された書き込みデータ
を、コマンドの実行によりディスク状記憶媒体に書き込
んでドライブ側の処理を実行するステップと、該当コマ
ンドの実行によるディスク状記憶媒体への書き込みが終
了すると、コマンド終了のステータスをホストに送るス
テップとを含むことを特徴とする。
【0068】本発明のディスクドライブ装置の制御方法
は、ホストが発行する複数のコマンドをキューエリアに
格納し、コマンド列を最も効率良く高速に実行するよう
にリオーダーを行って実行されるべきコマンドを決定
し、決定したコマンドの実行を要求するコマンド管理手
段と、実行を要求されたコマンドによりインターフェー
ス側の処理を実行するインターフェース処理手段と、実
行を要求されたコマンドによりドライブ側の処理を実行
するドライブ処理手段とを備えたディスクドライブ装置
の制御方法であって、ライトコマンドを実行するキュー
ドランダムライトオペレーションでは、インターフェー
ス処理手段が、コマンド管理手段により決定されたコマ
ンド処理順にかかわらず、複数のキャシュセグメントバ
ッファにデータ転送を開始するステップと、ドライブ処
理手段が、複数のキャシュセグメントバッファに転送さ
れた書き込みデータを、コマンド管理手段により決定さ
れたコマンド処理順でディスク状記憶媒体に書き込んで
ドライブ側の処理を実行するステップと、該当コマンド
の実行によるディスク状記憶媒体への書き込みが終了す
ると、コマンド終了のステータスをホストに送るステッ
プとを含むことを特徴とする。
【0069】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。 第1の実施形態 図1は本発明の第1の実施形態に係るディスクドライブ
装置の構成を示すブロック図である。本実施形態は、デ
ィスクドライブ装置を、高速な転送速度が要求されるハ
ードディスクドライブ装置に適用した例である。
【0070】図1において、磁気ディスク装置(HD
D)10は、データ記録媒体である磁気ディスク11
と、磁気ディスク11にデータの読み出し/書き込みを
行うための磁気ヘッド12と、磁気ヘッド12を有する
ヘッドスライダを磁気ディスク11表面上空及び退避位
置に移動させるアクチュエータ機構13と、アクチュエ
ータ機構13のアームを旋回駆動するボイスコイルモー
タ(VCM)14と、磁気ディスク11を回転駆動する
スピンドルモータを含む、VCM14を駆動するVCM
駆動部15と、検出信号の増幅回路、波形整形回路、ア
ナログ・ディジタル変換器(ADC)及びディジタル・
アナログ変換器(DAC)等をモジュール化し、データ
の読み書きを制御する読み書き回路部16と、磁気ディ
スクに対しデータの読み出し/書き込み等の動作を制御
するハードディスクコントローラ(Hard Disk Controll
er:HDC)17と、供給されたデータを一時的に記憶
するとともに、記録/再生データがキャッシュされるR
AM18と、HDC17に対する制御を含む、HDD全
体の動作を制御するMPU19と、MPU19を動作さ
せるためのマイクロプログラム、データを格納するRO
M20と、双方向線路を介して外部のホスト装置30に
接続するためのインターフェース(I/F)21とを備
えて構成される。
【0071】また、HDC17、RAM18及びMPU
19はデータバスにより互いに接続され、HDC17は
制御用バスによりMPU19に接続され、HDC17は
I/F21を介してHDD外部のホスト装置30に接続
される。
【0072】磁気ディスク11は、データが記録される
データ領域とサーボデータが予め記録されているサーボ
領域とを含むトラックが同心円状に配置されているEmbe
ddedservo(Sector servo)方式、または磁気ディスク
の一面をサーボ専用に使い、他の磁気ディスク面にはデ
ータのみを記録するDedicated servo方式にも適用でき
る。
【0073】上記HDC17、RAM18、MPU1
9、ROM20及びインターフェース21は、全体とし
てHDD全体の動作を制御するとともに、I/F21を
介して接続された外部の機器(ホスト装置30)に対す
るデータの入出力を制御する制御部22を構成する。
【0074】制御部22は、制御プログラムを実行する
MPU19、制御プログラム、不良セクタの位置を示す
ディフェクトマップ等のデータを保持するメモリ等を備
えている。
【0075】メモリとしてはRAM18、ROM20を
備えており、制御プログラムは、ROM20若しくはR
AM18に格納されている。RAM18に格納されるプ
ログラムは、磁気ディスク11上の所定の領域に保存し
ておき、電源投入時(POR[Power On Reset:パワー
・オン・リセット]時)にRAM18に読み込んで実行
する。また、RAM18は、キャッシュメモリとしての
機能を有し、磁気ディスク上の記録単位(セクタ)の数
百個分以上のデータを保持することができる程度の記憶
容量、例えば3584Kバイト(7168ブロック)を
持つ。
【0076】本実施形態では、インターフェース側の処
理とドライブ側の処理を分離し、インターフェース側と
ドライブ側の処理が共に終了しないでもドライブ側の処
理を開始できるようにコマンド処理が変更されている。
このため、コマンドに対するバッファ(セグメントバッ
ファ)を複数個用意する。通常、1コマンドにはセグメ
ントバッファが1つであるが、本実施形態の場合はドラ
イブ側の処理だけが進んで行く場合にも対処できるよう
にするため、複数のコマンドに対して対応する個数のセ
グメントバッファを用意する。このセグメントバッファ
はハードウェア上ではRAM18の所定領域に確保され
る。
【0077】制御部22は、制御プログラム(マイクロ
プログラム)を実行することにより、ディスクドライブ
装置全体の動作を制御し、ホスト装置30からI/F2
1を介して供給されるコマンド、データに基づいて磁気
ディスク11に対する読み出し/書き込みの制御等を行
う。
【0078】また、制御部22のMPU19は、複数の
プロセスを並行して実行することができるようになって
おり、そのうちの1つのプロセスは、ホスト装置30と
の間のコマンド、データの入出力の制御であり、他の1
つはバッファ(RAM18)に保持されている書き込み
データを磁気ディスク11に書き込むライトプロセスで
あり、他の1つはホスト装置30から読み出しが指示さ
れたデータあるいは読み出されるであろうと予測される
データを磁気ディスク11から先読み(Look Ahead)し
てバッファに保持しておくリードキャッシュプロセスで
ある。他にもサーボ制御のための演算、エラー回復処理
等のプロセスを並行して実行する。
【0079】ホスト装置30に対する入出力制御プロセ
スでは、制御部22は、ホスト装置30からデータの書
き込みを要求するコマンド、書き込み先(磁気ディスク
11上のセクタ)を指示するアドレス(例えば、論理ブ
ロックアドレス:LBA等)及び書き込みデータが供給
されると、供給された書き込みデータをバッファに保持
する。また、ホスト装置30からデータの読み出しを要
求するコマンドと読み出すべきデータが格納されている
アドレス(LBA)が供給されると、当該読み出し要求
があったデータが磁気ディスク11から読み出されてバ
ッファに保持されていれば、それを読み出してホスト装
置30に供給し、バッファに保持されていなければ読み
書き回路部16に読み出し要求のあったデータの読み出
しを指示し、読み出されたデータをホスト装置30に供
給する。
【0080】ライトプロセスでは、制御部22は、上述
のようにホスト装置30から供給されて、バッファに保
持されている書き込みデータを順次読み出し、読み書き
回路部16に供給して磁気ディスク11に対する書き込
みを指示する。
【0081】また、リードキャッシュプロセスでは、制
御部22は、読み書き回路部16にホスト装置30から
読み出し要求があると予想されるデータの読み出しを指
示し、読み出されたデータをバッファに保持しておく。
【0082】また、上記磁気ディスク装置10は、前記
図17(b)に示すようにSCSI(例えば、SCSI
2)により複数台のディスク装置のうちの一つとしてホ
スト装置30に接続されたマルチドライブ環境で使用さ
れるものとする。
【0083】上記ディスクドライブ装置の構成例におい
て、本発明の特徴は例えばコマンド処理を実現するソフ
トウェアにある。すなわち、コマンドの順番をRPOに
よって決定するマイクロプログラムを、マルチドライブ
環境下において最適化するものである。
【0084】図2は上記コマンド処理を実現するソフト
ウェア(マイクロプログラム)を含むハードディスク装
置の構成を示すブロック図である。図2の説明にあたり
前記図10と同一構成部分には同一符号を付している。
【0085】図2において、1はホストインターフェー
ス周辺の処理をハードウェアにより行うホストインター
フェースコントローラ(HIC)(ホストインターフェ
ース制御手段)、2はアクチュエータ機構を駆動するボ
イスコイルモータ(VCM)及びハードディスクコント
ローラ(HDC)に対する制御を含む、HDDのドライ
ブ動作を制御するドライブ装置(ドライブ制御手段)、
3はインターフェースイベントハンドラ(I/F Event Ha
ndler)、7はキューハンドラ(Queue Handler)(コマ
ンド管理手段)、8はインターフェースハンドラ(I/F
Handler)(インターフェース処理手段)、9はドライ
ブハンドラ(Drive Handler)(ドライブ処理手段)、
6はドライブイベントハンドラ(Drive Event Handle
r)である。
【0086】HIC1及びドライブ装置2は、ハードウ
ェアにより構成されている。また、インターフェースイ
ベントハンドラ3、キューハンドラ7、インターフェー
スハンドラ8、ドライブハンドラ9及びドライブイベン
トハンドラ6は、マイクロプログラムによる限定された
機能を持つ制御ルーチン(routine)であり、MPUに
より実行される。
【0087】本実施形態に係るハードディスク装置のコ
マンド処理を実現するマイクロプログラムは、前記図1
0のコマンドハンドラ5を、インターフェースハンドラ
8及びドライブハンドラ9に置き換え、かつキューハン
ドラ7がこれらインターフェースハンドラ8及びドライ
ブハンドラ9を個別に制御できるようにしたものであ
る。
【0088】インターフェースイベントハンドラ3は、
HIC1からのイベント(Event:事象)を処理し、キ
ューハンドラ7あるいはインターフェースハンドラ8に
そのイベントを伝える。HIC1がコマンド(Comman
d)を受け取った場合は、キューエリア(Queue area)
に格納する。
【0089】キューハンドラ7は、複数のコマンドがキ
ューエリアに格納された場合には、コマンド列を最も効
率良く高速に実行するようにリオーダー(reorder:再
整理)を行い、インターフェースハンドラ8及びドライ
ブハンドラ9により実行されるべきコマンドを決定す
る。決定後に、インターフェースハンドラ8及びドライ
ブハンドラ9にコマンドの実行を要求する。インターフ
ェースハンドラ8によりコマンドのインターフェースに
関る動作が実行され終了すると、次に実行すべきコマン
ドのインターフェースに関る動作がある場合はその実行
をインターフェースハンドラ8に要求する。また、ドラ
イブハンドラ9によりコマンドのドライブに関る動作が
実行され終了すると、次に実行すべきコマンドのドライ
ブに関る動作がある場合はその実行をドライブハンドラ
9に要求する。あるコマンドに対して必要なインターフ
ェース及びドライブの動作が終了した時点でそのコマン
ドの処理を終了する。
【0090】インターフェースハンドラ8は、キューハ
ンドラ7により実行を要求されたコマンドの実行に関る
ところのインターフェースの制御をHIC1に要求す
る。また、インターフェースに関るイベントを処理す
る。
【0091】ドライブハンドラ9は、キューハンドラ7
により実行を要求されたコマンドの実行に関るところの
リード/ライトをドライブ装置2に要求する。また、ド
ライブに関るイベントを処理する。
【0092】ドライブイベントハンドラ6は、ドライブ
装置2のHDCからのイベントを処理し、ドライブハン
ドラ9にそのイベントを伝える。
【0093】一方、HIC1はSCSIバスによりHD
D外部のホストに接続される。このHIC1は、図1で
は制御部22のI/F21に対応する。また、前記図1
の制御部22のRAM18は、セクタバッファとしての
機能を有し、磁気ディスク上の記録単位(セクタ)の数
百個分以上のデータを保持することができる。また、H
IC1は、データ転送に必要な情報をすべて格納できる
内部メモリを有し、MPU19(図1)の介在なしにハ
ードウェアによりホストとRAM18の間のデータ転送
を行うものである。HIC1は、ホストから書き込みデ
ータが供給されると、供給された書き込みデータをRA
M18に保持した後、ホストを書き込み処理から解放す
る。また、HIC1からはMPU19に対してホストか
らコマンドが来たことを通知する。MPU19は、HI
C1がホストからのコマンド情報及びそのコマンドに対
するヒット情報を通知すると、これら情報に基づいてH
IC1を制御する。
【0094】以下、上述のように構成されたディスクド
ライブ装置の動作を説明するが、まず、本発明の基本的
な考え方について述べる。
【0095】従来は、あるコマンド処理に関してインタ
ーフェース側とドライブ側の処理が共に終了しないと次
のドライブ側の処理を開始しなかった。そのため、マル
チドライブ環境においてバスがフリーにならないことに
よる回転待ちが発生することがあった。
【0096】そこで本発明では、(1)ディスクドライ
ブ装置のキュードランダムオペレーションにおいて、デ
ータ転送などのインターフェース側の処理とディスクに
対するリード/ライトなどのドライブ側の処理を分離し
て処理できるようにする。すなわち、インタフェース側
の処理とドライブ側の処理を分離してマルチドライブ環
境下において予測し得ないインターフェース側の処理が
ドライブ側の処理の開始に影響を与えないようにする。
(2)また、他のディスクドライブ装置のバス占有時間
が、あるディスクドライブ装置の複数のコマンドを処理
する時間に及ぶことがあるため、複数のキャッシュセグ
メント(cache segment)を持つように構成する。これ
により、マルチドライブ環境において発生し得る回転待
ちを防ぎ、パフォーマンスを向上させることができる。
【0097】次に、上記基本的な考え方に基づいてディ
スクドライブ装置の動作を詳細に説明する。
【0098】まず、図2に示すマイクロプログラムのコ
マンド処理について図3〜図5を参照して説明する。
【0099】図3は上記マイクロプログラムのキューハ
ンドラ7の制御ルーチンを示すフローチャートであり、
前記図11と同一処理を行うステップには同一符号を付
している。
【0100】まず、ステップST1でキューエリアに実
行待ちのコマンドがあるか否かを判別し、実行待ちのコ
マンドがあればステップST2でコマンド列を最も効率
良く高速に実行するようにリオーダー(reorder)を行
ってステップST3に進む。キューハンドラ7は、リオ
ーダー時に実行すべきコマンド情報のリストを作成す
る。このコマンド情報には、自分自身のコマンドのドラ
イブ処理状況及びインターフェース処理状況を格納する
場所がある。また、次に実行すべきコマンド情報を示す
ポインタを格納する場所がある。
【0101】実行待ちのコマンドがないとき、あるいは
リオーダーを行ったときはステップST21でドライブ
ハンドラ9が実行中のコマンドがあるか否かを判別し、
実行中のコマンドがなければステップST22でドライ
ブハンドラ9が実行するコマンドは決定されているか否
かを判別する。
【0102】ドライブハンドラ9が実行するコマンドは
決定されているときはステップST23でコマンドのド
ライブ処理実行をドライブハンドラ9に要求してステッ
プST24に進む。
【0103】一方、上記ステップST21で実行待ちの
コマンドがあるとき、あるいは上記ステップST22で
ドライブハンドラ9が実行するコマンドが決定されてい
ないときはコマンドのドライブ処理実行状況にないと判
断してステップST24に進む。
【0104】ステップST24では、インターフェース
ハンドラ8が実行中のコマンドがあるか否かを判別し、
実行中のコマンドがなければステップST25でインタ
ーフェースハンドラ8が実行するコマンドは決定されて
いるか否かを判別する。
【0105】インターフェースハンドラ8が実行するコ
マンドは決定されていないときはステップST26でコ
マンドのインターフェース処理実行をインターフェース
ハンドラ8に要求してステップST1に戻る。
【0106】また、上記ステップST24で実行待ちの
コマンドがあるとき、あるいは上記ステップST25で
インターフェースハンドラ8が実行するコマンドが決定
されているときはコマンドのインターフェース処理実行
状況にないと判断してそのままステップST1に戻る。
【0107】図4は上記マイクロプログラムのドライブ
ハンドラ9の制御ルーチンを示すフローチャートであ
る。
【0108】コマンドのドライブ処理開始でプログラム
がスタートし、まず、ステップST31でドライブに係
るイベント(ドライブイベント)があるか否かを判別
し、ドライブイベントがあればステップST32でドラ
イブイベント処理を行ってステップST33に進む。
【0109】ドライブイベントがないとき、あるいはド
ライブイベント処理を行ったときはステップST33で
ドライブ処理はすべて終了したか否かを判別し、終了し
ていなければステップST31に戻って上記処理を繰り
返し、終了していれば本コマンドのドライブ処理を終了
する。
【0110】このように、ドライブハンドラ9はコマン
ドのドライブ処理状況及び発生したイベントによりその
処理を決定している。
【0111】図5は上記マイクロプログラムのインター
フェースハンドラ8の制御ルーチンを示すフローチャー
トである。
【0112】コマンドのインターフェース処理開始でプ
ログラムがスタートし、まず、ステップST41でイン
ターフェースに係るイベント(インターフェースイベン
ト)があるか否かを判別し、インターフェースイベント
があればステップST42でインターフェースイベント
処理を行ってステップST43に進む。
【0113】インターフェースイベントがないとき、あ
るいはインターフェースイベント処理を行ったときはス
テップST43でインターフェース処理はすべて終了し
たか否かを判別し、終了していなければステップST4
1に戻って上記処理を繰り返し、終了していれば本コマ
ンドのインターフェース処理を終了する。
【0114】このように、インターフェースハンドラ8
はコマンドのインターフェース処理状況及び発生したイ
ベントによりその処理を決定している。
【0115】次に、上記構成を有するハードディスク装
置のキュードランダムオペレーション(Queued randam
operation)について説明する。このキュードランダム
オペレーションにおいて実行するコマンドの順番は、R
POによって決定される。
【0116】図6はキュードランダムオペレーションに
おけるインターフェース側とドライブ側のコマンドの処
理及び転送のタイミングを示す図であり、マルチドライ
ブ(Multi drive)環境におけるリードオペレーション
(read operation)を示す。
【0117】リードオペレーションは、図6のように処
理される。従来は、あるコマンド処理に関して、例えば
コマンド1(CMD1)の処理がインターフェース側と
ドライブ側の処理が共に終了してから次のコマンド2
(CMD2)のドライブ側の処理を実行していた。本実
施形態では、インターフェース側の処理とドライブ側の
処理を分離し、インターフェース側とドライブ側の処理
が共に終了しないでもドライブ側の処理を開始できるよ
うにコマンド処理が変更されている。この場合に、ドラ
イブ側でコマンド1の処理が終わった時点でインターフ
ェース側のデータ転送処理に関係なくドライブ側でコマ
ンド2の処理を実行するようにする。これを実現するた
めに、コマンドに対するバッファ(セグメントバッフ
ァ)を複数個用意する。通常、1コマンドにはセグメン
トバッファが1つであるが、本実施形態の場合はドライ
ブ側の処理だけが進んで行く場合にも対処できるように
するため、1コマンドに対して複数個のセグメントバッ
ファを用意する。このセグメントバッファはハードウェ
ア上ではRAM18(図1)の所定領域に確保される。
【0118】図6のマルチドライブ環境におけるリード
オペレーションに示すように、ドライブ側でコマンド1
(CMD1)によりディスクから読み出したデータをイ
ンターフェース側でCMD1によりデータ転送を開始し
ようとしたときバスがフリー(空き)の状態にないと、
CMD1のデータ転送はバスがフリーになるまでの時間
A(図6a.参照)遅れることになる。しかし、本実施
形態では、インターフェース側の処理とドライブ側の処
理を分離することにより、次のコマンドCMD2のドラ
イブ側の処理の開始を、図6b.に示すようにCMD1
のドライブ側の処理終了とする。すなわち、次のコマン
ドCMD2のドライブ側の処理の開始は、CMD1のイ
ンターフェース側の処理終了とは関係なくドライブ側で
独立して行う。このことにより、CMD2に対するドラ
イブ側の処理は上記時間Aの影響を受けて遅延すること
なく開始されるので、RPOにより決定されたコマンド
処理は図6c.に示すように回転待ちを生じることなく
実行される。
【0119】上述したリードオペレーション動作を、図
14の従来例と対比してさらに詳細に説明する。
【0120】従来例では、コマンド1(CMD1)によ
りディスクから読み出したデータをインターフェース側
でCMD1によりデータ転送を開始しようとしたときバ
スがフリーの状態にないと、次のコマンドCMD2のド
ライブ側の処理の開始は、図14b.に示すようにCM
D1のインターフェース側の処理終了を待っていること
から時間A遅れていた。これに対し本実施形態では、次
のコマンドCMD2のドライブ側の処理の開始は、図6
b.に示すようにCMD1のドライブ側の処理終了時に
予定通り実行される。
【0121】この場合、インターフェース側でCMD1
によりホストに送られるデータ転送は、従来例と同様に
時間A遅れるもののRPOにより決定されたコマンド処
理には影響がない。このホストに送られるデータ転送に
関しては、バスの使用状態によって時間Aがどれだけに
なるか他のディスクドライブ装置の動作のため予測がつ
かない。このため従来では、インターフェース側の処理
が終了しないことからドライブ側の処理開始がいつまで
も実行できなかった。本実施形態では、インターフェー
ス側でバッファに保存されたデータをバスがフリーにな
ったときにデータ転送すればよく、このようなデータ転
送時間は回転待ちから生じる時間遅延からみれば無視で
きる。
【0122】以上説明したように、第1の実施形態に係
るディスクドライブ装置は、ホストインターフェース周
辺の処理をハードウェアにより行うHIC1と、HDC
に対する制御を含む、HDDのドライブ動作を制御する
ドライブ装置2と、HIC1からのイベントを処理し、
キューハンドラ7あるいはインターフェースハンドラ8
にそのイベントを伝えるインターフェースイベントハン
ドラ3、ホストが発行する複数のコマンドをキューエリ
アに格納し、コマンド列を最も効率良く高速に実行する
ようにリオーダーを行って実行されるべきコマンドを決
定し、決定したコマンドの実行を要求するキューハンド
ラ7、実行を要求されたコマンドによりホストとドライ
ブ装置2の間のデータ転送を含むインターフェース側の
処理を実行するインターフェースハンドラ8、実行を要
求されたコマンドによりドライブ側の処理を実行し、コ
マンドの実行に関る読み出し/書き込みをドライブ装置
2に要求するドライブハンドラ9、及びドライブ装置2
のHDCからのイベントを処理し、ドライブハンドラ9
にイベントを伝えるドライブイベントハンドラ6からな
るマイクロプログラムを備え、コマンド処理に関してイ
ンターフェース側の処理とドライブ側の処理を分離し、
インターフェース側の処理がドライブ側の処理の開始に
影響を与えないようにしたので、マルチドライブ環境に
おいて発生し得る回転待ちを防ぎ、パフォーマンスを向
上させることができる。
【0123】すなわち、本実施形態では、リードオペレ
ーションにおいて、インターフェースハンドラ8が、C
MD1によりインターフェース側の処理を実行しようと
したとき、ドライブハンドラ9は、インターフェースハ
ンドラ8の処理の実行の可否にかかわらず、CMD1の
ドライブ側の処理終了時にCMD2の処理を開始するの
で、RPOにより決定されたコマンド処理は図6c.に
示すように回転待ちを生じることなく実行できる。 第2の実施形態 第1の実施形態では、他のディスクドライブ装置のバス
の占有時間が1コマンド処理時間内である時を記述して
いるが、同様な考え方でキャッシュセグメントの数を増
やすことによって、バスの占有時間が複数のコマンドを
処理する時間に及ぶ場合であっても回転待ちによる遅延
時間を減らすことができる。以下、このキャッシュセグ
メントの数を増やす例について説明する。
【0124】第2の実施形態に係るディスクドライブ装
置の構成は、前記図1及び図2と同様である。本実施形
態では、他のディスクドライブ装置のバス占有時間が、
あるディスクドライブ装置の複数のコマンドを処理する
時間に及ぶことがあるため、複数のキャッシュセグメン
ト(cache segment)を持つように構成する。このセグ
メントバッファはハードウェア上ではRAM18の所定
領域に確保される。
【0125】他のディスクドライブ装置のバスの占有時
間が複数のコマンドを処理する時間に及ぶ場合、キュー
ドランダムオペレーションは図7のように処理される。
【0126】図7はキュードランダムオペレーションに
おけるインターフェース側とドライブ側のコマンドの処
理及び転送のタイミングを示す図であり、マルチドライ
ブ環境におけるリードオペレーションを示す。
【0127】ドライブ側の処理を遅延なく実行するため
に複数のキャッシュセグメントが用意されている。
【0128】図7に示すように、ドライブ側で各コマン
ド1〜3(CMD1〜3)によりディスクから読み出し
たデータをインターフェース側でCMD1〜3によりデ
ータ転送を開始しようとしたとき、複数のコマンドを処
理する時間バスがフリー(空き)の状態にないと、CM
D1〜3のデータ転送はバスがフリーになるまでの時間
B(図7a.参照)遅れることになる。
【0129】この場合でも本実施形態では、インターフ
ェース側の処理とドライブ側の処理を分離するととも
に、複数のキャシュセグメントSEGMENT1〜3を
用意し、キャシュセグメントSEGMENT1〜3にC
MD1〜3によるデータをキャッシュするようにしてい
るので、図7b.に示すように次のコマンドCMDのド
ライブ側の処理の開始を、各コマンドCMDのドライブ
側の処理終了とすることができる。そして、図7c.に
示すようにドライブ側の処理ではデータをキャッシュセ
グメントSEGMENT1〜3に読み込んでいく。イン
ターフェース側の処理では、バスがフリーとなった後、
キャッシュセグメントSEGMENT1〜3より各コマ
ンドCMD1〜3のデータを転送する。
【0130】このことにより、CMD1〜3に対するド
ライブ側の処理は上記時間Bの影響を受けて遅延するこ
となく開始されるので、RPOにより決定されたコマン
ド処理は回転待ちを生じることなく実行される。また、
図7に示すように他のディスクドライブ装置のバスの占
有時間が複数のコマンドを処理する時間に及ぶ場合であ
っても回転待ちによる遅延時間を減らすことができる。
【0131】以上説明したように、第2の実施形態に係
るディスクドライブ装置は、複数のコマンドCMD1〜
3の実行によりディスクから読み出されたデータを格納
する複数のキャシュセグメントSEGMENT1〜3を
備え、ドライブハンドラ9は、コマンドの実行によりデ
ィスクから読み出したデータを複数のキャシュセグメン
トSEGMENT1〜3に格納してドライブ側の処理を
実行し、インターフェースハンドラ8は、複数のキャシ
ュセグメントSEGMENT1〜3に格納されたデータ
に対してインターフェース側の処理を実行するように構
成したので、図7に示すようにバスの占有時間が複数の
コマンドCMD1〜3を処理する時間に及ぶ場合であっ
ても回転待ちによる遅延時間Bを減らすことができる。
【0132】特に、バスに接続された他のハードティス
クドライブ装置の動作のためバスを使用できない時間が
予測できない場合であっても、ドライブ側ではあらかじ
め複数のコマンド処理によるデータキャッシュが済んで
いるのでバスがフリーになると直ちにインターフェース
側の処理(データ転送)を実行することができる。 第3の実施形態 上記各実施形態では、マルチドライブ環境におけるリー
ドオペレーションについて説明したが、ライトオペレー
ションについてもインターフェース側の処理とドライブ
側の処理を分離することにより、回転待ちによる遅延時
間を減らすことができる。以下、このライトオペレーシ
ョンの例について説明する。
【0133】第3の実施形態に係るディスクドライブ装
置の構成は、前記図1及び図2と同様である。本実施形
態では、他のディスクドライブ装置のバス占有時間が、
あるディスクドライブ装置の複数のコマンドを処理する
時間に及ぶことがあるため、複数のキャッシュセグメン
ト(cache segment)を持つように構成する。このセグ
メントバッファはハードウェア上ではRAM18の所定
領域に確保される。
【0134】ライトオペレーションにおける基本的な考
え方について述べる。
【0135】従来は、前記図16に示すように、インタ
ーフェース側でコマンド2(CMD2)によりデータ転
送を開始しようとしたときバスがフリー(空き)の状態
にないと、CMD2のデータ転送はバスがフリーになる
までの時間B(図16a.参照)遅れることになり、コ
マンドCMD2のドライブ側の処理の開始は、図16
b.に示すようにCMD2のインターフェース側の処理
開始を待っているので時間B遅れることになっていた。
【0136】本発明者らは、バスがフリーになくてもデ
ータ転送がなされていればドライブ側の処理は実行でき
ることに着目し、また、次のコマンドCMD2はその前
のコマンドCMD1のリオーダー中に決まることから、
次のコマンドは決定されておりコマンドが決定された時
点でデータ転送は可能であると考えた。どのコマンドを
実行するかわかっているのでこの間はバスフリーな状態
でありホスト側は空いている状態である。例えば、前記
図16(1)の位置はバスフリー状態にあるため、次のコ
マンドCMD2のデータ転送を、図16(2)に示すよう
にCMD1データ転送の後に持ってくる。すなわち、デ
ータをキャッシュしてデータ転送自体は先にしておくよ
うにする。すると、コマンドによるドライブ処理の実行
前にコマンド処理するためのデータが確保されているの
で遅延が全く生じない。実際にステータスを返すのはそ
れぞれのドライブ処理が終わった時点で返す。
【0137】図8は上記基本的な考え方に従って実行さ
れるキュードランダムオペレーションにおけるインター
フェース側とドライブ側のコマンドの処理及び転送のタ
イミングを示す図であり、マルチドライブ環境における
ライトオペレーションを示す。
【0138】図8に示すように、複数のライトコマンド
がキューされた場合に、インターフェース側の処理は、
ドライブ側の処理及びRPOによって決定されたコマン
ド処理順に関りなくデータ転送を開始し(図8a.参
照)、図8b.に示すようにキャシュセグメントSEG
MENT1〜3にライトすべきデータを格納する。ここ
では、コマンドCMD1〜3のデータ転送を行いキャシ
ュセグメントSEGMENT1〜3にデータをキャッシ
ュしておく。
【0139】ドライブ側の処理は、図8c.に示すよう
にRPOによって決定されたコマンド処理順にキャシュ
セグメントSEGMENT1〜3に転送されているデー
タをシークし、待ち時間(latency)分待ってディスク
に書き込んでいく。データの書き込みが終了すると、図
8d.に示すように該当するコマンド(ここではCMD
1)終了のステータス及びステータスメッセージをホス
トに送る。ホストは新しいコマンド(ここではCMD
n)を発行する(図8e.参照)。次のコマンドはリオ
ーダー(reorder)が終わって新しいコマンド(ここで
はCMDn)が決まっている。
【0140】このことにより、例えばコマンドCMDn
のデータ転送が他のディスクドライブ装置のバス占有の
ために遅延しても、ドライブ側の処理は影響されること
なく実行できる。
【0141】以上説明したように、第3の実施形態に係
るディスクドライブ装置は、複数のコマンドCMD1〜
3の実行によりディスクに書き込むべきデータを格納す
る複数のキャシュセグメントSEGMENT1〜3を備
え、インターフェースハンドラ8は、ドライブハンドラ
9の処理状況及びRPOによって決定されたコマンド処
理順に関らず複数のキャシュセグメントSEGMENT
1〜3にデータ転送を開始し、ドライブハンドラ9は、
複数のキャシュセグメントSEGMENT1〜3に転送
された書き込みデータを、コマンドの実行によりディス
クに書き込んでドライブ側の処理を実行し、該当コマン
ドの実行によるディスクへの書き込みが終了すると、コ
マンド終了のステータスをホストに送るように構成した
ので、ライトオペレーションにおいて、回転待ちによる
遅延時間を減らすことができ、パフォーマンスを向上さ
せることができる。
【0142】また、バスに接続された他のハードティス
クドライブ装置の動作のためバスを使用できない時間が
予測できない場合であっても、インターフェースハンド
ラ8は、バスがフリーになるとあらかじめキャシュセグ
メントSEGMENT1〜3にデータを転送するように
しているのでドライブ側ではバス占有による処理の遅れ
を最小限にすることができる。
【0143】なお、上記各実施形態では、ディスクドラ
イブ装置をHDDに適用した例を説明したが、これに限
らず、コマンド処理に関してインターフェース側の処理
とドライブ側の処理を分離して処理するディスクドライ
ブ装置であればどのような装置にでも本発明を適用でき
る。例えば、光磁気ディスク等HDD以外のディスクド
ライブ装置に用いてもよく、上述の実施形態と同様の効
果を得ることができる。
【0144】また、上記各実施形態では、SCSIバス
上に2台以上のハードディスク装置が接続されたマルチ
ドライブ環境について説明したが、バスはどのようなも
のでもよく、また、バスを占有してホストと周辺機器間
等のデータ転送を行うものであれば接続される周辺機器
は、上記ディスクドライブ装置には限定されない。
【0145】また、上記各実施形態では、インターフェ
ース側の処理とドライブ側の処理をマイクロプログラム
によるソフトウェア処理により実現しているが、処理の
例は一例であり、またハード的構成により実現するもの
でもよい。
【0146】さらに、上記ディスクドライブ装置を構成
するHDC、キャッシュセグメント、HIC等の種類、
数など、コマンド発行の方法等は上述した実施形態に限
られないことは言うまでもない。
【0147】
【発明の効果】本発明に係るディスクドライブ装置及び
その制御方法では、実行を要求されたコマンドによりホ
ストとドライブ制御手段の間のデータ転送を含むインタ
ーフェース側の処理を実行するインターフェース処理手
段と、実行を要求されたコマンドによりドライブ側の処
理を実行し、コマンドの実行に関る読み出し/書き込み
をドライブ制御手段に要求するドライブ処理手段とを備
え、コマンド処理に関してインターフェース側の処理と
ドライブ側の処理を分離して処理するようにしたので、
マルチドライブ環境において発生し得る回転待ちを防
ぎ、パフォーマンスを向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用した第1の実施形態に係るディス
クドライブ装置の構成を示すブロック図である。
【図2】上記ディスクドライブ装置のコマンド処理を実
現するソフトウェア(マイクロプログラム)を含むハー
ドディスク装置の構成を示すブロック図である。
【図3】上記ディスクドライブ装置のマイクロプログラ
ムのキューハンドラの制御ルーチンを示すフローチャー
トである。
【図4】上記ディスクドライブ装置のマイクロプログラ
ムのドライブハンドラの制御ルーチンを示すフローチャ
ートである。
【図5】上記ディスクドライブ装置のマイクロプログラ
ムのインターフェースハンドラの制御ルーチンを示すフ
ローチャートである。
【図6】上記ディスクドライブ装置のリードオペレーシ
ョンにおけるインターフェース側とドライブ側のコマン
ドの処理及び転送のタイミングを示す図である。
【図7】本発明を適用した第2の実施形態に係るディス
クドライブ装置のリードオペレーションにおけるインタ
ーフェース側とドライブ側のコマンドの処理及び転送の
タイミングを示す図である。
【図8】本発明を適用した第3の実施形態に係るディス
クドライブ装置のライトオペレーションにおけるインタ
ーフェース側とドライブ側のコマンドの処理及び転送の
タイミングを示す図である。
【図9】従来のディスクドライブ装置のキャッシュメモ
リのコマンドキュー(QUEUE)の構造を示す図である。
【図10】従来のディスクドライブ装置のコマンド処理
を実現するソフトウェア(マイクロプログラム)を含む
ハードディスク装置の構成を示すブロック図である。
【図11】従来のディスクドライブ装置のキューハンド
ラの制御ルーチンを示すフローチャートである。
【図12】従来のディスクドライブ装置のコマンドハン
ドラの制御ルーチンを示すフローチャートである。
【図13】従来のディスクドライブ装置のリードオペレ
ーションにおけるインターフェース側とドライブ側のコ
マンドの処理及び転送のタイミングを示す図である。
【図14】従来のディスクドライブ装置のリードオペレ
ーションにおけるインターフェース側とドライブ側のコ
マンドの処理及び転送のタイミングを示す図である。
【図15】従来のディスクドライブ装置のライトオペレ
ーションにおけるインターフェース側とドライブ側のコ
マンドの処理及び転送のタイミングを示す図である。
【図16】従来のディスクドライブ装置のライトオペレ
ーションにおけるインターフェース側とドライブ側のコ
マンドの処理及び転送のタイミングを示す図である。
【図17】従来のディスクドライブ装置のマルチドライ
ブ環境を説明するための図である。
【符号の説明】
1 ホストインターフェースコントローラ(HIC)
(ホストインターフェース制御手段)、2 ドライブ装
置(ドライブ制御手段)、3 インターフェースイベン
トハンドラ、6 ドライブイベントハンドラ、7 キュ
ーハンドラ(コマンド管理手段)、8 インターフェー
スハンドラ(インターフェース処理手段)、9 ドライ
ブハンドラ(ドライブ処理手段)、10 磁気ディスク
装置(HDD)、11 磁気ディスク、12 磁気ヘッ
ド、14 ボイスコイルモータ(VCM)、15 VC
M駆動部、16 読み書き回路部、17 ハードディス
クコントローラ(HDC)、18 RAM、19 MP
U、20 ROM、21 インターフェース(I/
F)、30 ホスト装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 福久 良司 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 井上 和則 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 Fターム(参考) 5B065 BA01 CA14 CE12 CH15 ZA08

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 ディスク状記憶媒体に対しデータの読み
    出し/書き込み等の動作を制御するドライブ制御手段
    と、 ハードウェアによりホストとドライブ制御手段間のデー
    タ転送を行うホストインターフェース制御手段と、 ホストが発行する複数のコマンドをキューエリアに格納
    し、コマンド列を最も効率良く高速に実行するようにリ
    オーダーを行って実行されるべきコマンドを決定し、決
    定したコマンドの実行を要求するコマンド管理手段とを
    備えたディスクドライブ装置において、 実行を要求されたコマンドによりホストと前記ドライブ
    制御手段の間のデータ転送を含むインターフェース側の
    処理を実行するインターフェース処理手段と、 実行を要求されたコマンドによりドライブ側の処理を実
    行し、コマンドの実行に関る読み出し/書き込みを前記
    ドライブ制御手段に要求するドライブ処理手段とを備
    え、 コマンド処理に関してインターフェース側の処理とドラ
    イブ側の処理を分離して処理することを特徴とするディ
    スクドライブ装置。
  2. 【請求項2】 コマンド処理に関してインターフェース
    側の処理とドライブ側の処理を分離し、インターフェー
    ス側の処理がドライブ側の処理の開始に影響を与えない
    ようにしたことを特徴とする請求項1記載のディスクド
    ライブ装置。
  3. 【請求項3】 前記インターフェース処理手段が、第1
    コマンドによりインターフェース側の処理を実行しよう
    としたとき、 前記ドライブ処理手段は、前記インターフェース処理手
    段の処理の実行の可否にかかわらず、第1コマンドのド
    ライブ側の処理終了時に第2コマンドの処理を開始する
    ことを特徴とする請求項1記載のディスクドライブ装
    置。
  4. 【請求項4】 複数のコマンドの実行により前記ディス
    ク状記憶媒体から読み出されたデータを格納する複数の
    キャシュセグメントバッファを備え、 前記ドライブ処理手段は、コマンドの実行により前記デ
    ィスク状記憶媒体から読み出したデータを複数のキャシ
    ュセグメントバッファに格納してドライブ側の処理を実
    行し、 前記インターフェース処理手段は、複数のキャシュセグ
    メントバッファに格納されたデータに対してインターフ
    ェース側の処理を実行することを特徴とする請求項1記
    載のディスクドライブ装置。
  5. 【請求項5】 複数のコマンドの実行により前記ディス
    ク状記憶媒体に書き込むべきデータを格納する複数のキ
    ャシュセグメントバッファを備え、 前記インターフェース処理手段は、前記ドライブ処理手
    段の処理状況にかかわらず、複数のキャシュセグメント
    バッファにデータ転送を開始し、 前記ドライブ処理手段は、複数のキャシュセグメントバ
    ッファに転送された書き込みデータを、コマンドの実行
    により前記ディスク状記憶媒体に書き込んでドライブ側
    の処理を実行することを特徴とする請求項1記載のディ
    スクドライブ装置。
  6. 【請求項6】 複数のコマンドの実行により前記ディス
    ク状記憶媒体に書き込むべきデータを格納する複数のキ
    ャシュセグメントバッファを備え、 前記インターフェース処理手段は、前記コマンド管理手
    段により決定されたコマンド処理順にかかわらず、複数
    のキャシュセグメントバッファにデータ転送を開始し、 前記ドライブ処理手段は、複数のキャシュセグメントバ
    ッファに転送された書き込みデータを、前記コマンド管
    理手段により決定されたコマンド処理順でディスク状記
    憶媒体に書き込んでドライブ側の処理を実行することを
    特徴とする請求項1記載のディスクドライブ装置。
  7. 【請求項7】 前記インターフェース処理手段が実行す
    るインターフェース側の処理は、データ転送であること
    を特徴とする請求項1記載のディスクドライブ装置。
  8. 【請求項8】 前記ドライブ処理手段が実行するドライ
    ブ側の処理は、ディスク状記憶媒体に対する読み出し/
    書き込み処理であることを特徴とする請求項1記載のデ
    ィスクドライブ装置。
  9. 【請求項9】 前記ドライブ処理手段が実行するドライ
    ブ側の処理は、複数のキャシュセグメントバッファへの
    データの書き込み処理、または複数のキャシュセグメン
    トバッファからのデータの読み出し処理であることを特
    徴とする請求項1記載のディスクドライブ装置。
  10. 【請求項10】 ホストが発行する複数のコマンドをキ
    ューエリアに格納してコマンドを実行するキュードラン
    ダムオペレーション(Queued randam operation)を行
    うことを特徴とする請求項1記載のディスクドライブ装
    置。
  11. 【請求項11】 ホストが発行する複数のコマンドをキ
    ューエリアに格納してコマンドを実行するキュードラン
    ダムオペレーションを行うとともに、該キュードランダ
    ムオペレーションにおいて実行されるコマンドの順番
    は、コマンド列を最も効率良く高速に実行するようにコ
    マンドの実行順序を変更するRPO(Rotational Posit
    ion Optimization)により決定することを特徴とする請
    求項1記載のディスクドライブ装置。
  12. 【請求項12】 ホストと複数の周辺機器をバスにより
    接続し、該バスを占有してホストと周辺機器間、又は前
    記周辺機器同士間のデータ転送を行うマルチドライブ環
    境で用いられるディスクドライブ装置において、 前記周辺機器は、請求項1に記載されたディスクドライ
    ブ装置であることを特徴とするディスクドライブ装置。
  13. 【請求項13】 ホストが発行する複数のコマンドをキ
    ューエリアに格納し、コマンド列を最も効率良く高速に
    実行するようにリオーダーを行って実行されるべきコマ
    ンドを決定し、決定したコマンドの実行を要求するコマ
    ンド管理手段と、 実行を要求されたコマンドによりインターフェース側の
    処理を実行するインターフェース処理手段と、 実行を要求されたコマンドによりドライブ側の処理を実
    行するドライブ処理手段とを備えたディスクドライブ装
    置の制御方法であって、 リードコマンドを実行するキュードランダムリードオペ
    レーション(Queued randam read operation)では、 前記ドライブ処理手段が、ドライブ側で第1コマンドの
    処理を実行するステップと、 ドライブ側での第1コマンドの処理終了を受け、前記イ
    ンターフェース処理手段が、第1コマンドによりインタ
    ーフェース側の処理を実行するステップと、 前記ドライブ処理手段が、前記インターフェース処理手
    段による第1コマンドの処理の実行の可否にかかわら
    ず、第1コマンドのドライブ側の処理終了時に第2コマ
    ンドの処理を開始するステップとを含むことを特徴とす
    るディスクドライブ装置の制御方法。
  14. 【請求項14】 ホストが発行する複数のコマンドをキ
    ューエリアに格納し、コマンド列を最も効率良く高速に
    実行するようにリオーダーを行って実行されるべきコマ
    ンドを決定し、決定したコマンドの実行を要求するコマ
    ンド管理手段と、 実行を要求されたコマンドによりインターフェース側の
    処理を実行するインターフェース処理手段と、 実行を要求されたコマンドによりドライブ側の処理を実
    行するドライブ処理手段とを備えたディスクドライブ装
    置の制御方法であって、 リードコマンドを実行するキュードランダムリードオペ
    レーションでは、 前記ドライブ処理手段が、コマンドの実行によりディス
    ク状記憶媒体から読み出したデータを複数のキャシュセ
    グメントバッファに格納してドライブ側の処理を実行す
    るステップと、 前記インターフェース処理手段が、複数のキャシュセグ
    メントバッファに格納されたデータに対してインターフ
    ェース側の処理を実行するステップと、 前記ドライブ処理手段が、前記インターフェース処理手
    段によるインターフェース側の処理の実行の可否にかか
    わらず、次のコマンドの処理を順次実行するステップと
    を含むことを特徴とするディスクドライブ装置の制御方
    法。
  15. 【請求項15】 ホストが発行する複数のコマンドをキ
    ューエリアに格納し、コマンド列を最も効率良く高速に
    実行するようにリオーダーを行って実行されるべきコマ
    ンドを決定し、決定したコマンドの実行を要求するコマ
    ンド管理手段と、 実行を要求されたコマンドによりインターフェース側の
    処理を実行するインターフェース処理手段と、 実行を要求されたコマンドによりドライブ側の処理を実
    行するドライブ処理手段とを備えたディスクドライブ装
    置の制御方法であって、 ライトコマンドを実行するキュードランダムライトオペ
    レーション(Queued randam write operation)では、 前記インターフェース処理手段が、前記ドライブ処理手
    段の処理状況にかかわらず、複数のキャシュセグメント
    バッファにデータ転送を開始するステップと、 前記ドライブ処理手段が、複数のキャシュセグメントバ
    ッファに転送された書き込みデータを、コマンドの実行
    によりディスク状記憶媒体に書き込んでドライブ側の処
    理を実行するステップと、 該当コマンドの実行によるディスク状記憶媒体への書き
    込みが終了すると、コマンド終了のステータスをホスト
    に送るステップとを含むことを特徴とするディスクドラ
    イブ装置の制御方法。
  16. 【請求項16】 ホストが発行する複数のコマンドをキ
    ューエリアに格納し、コマンド列を最も効率良く高速に
    実行するようにリオーダーを行って実行されるべきコマ
    ンドを決定し、決定したコマンドの実行を要求するコマ
    ンド管理手段と、 実行を要求されたコマンドによりインターフェース側の
    処理を実行するインターフェース処理手段と、 実行を要求されたコマンドによりドライブ側の処理を実
    行するドライブ処理手段とを備えたディスクドライブ装
    置の制御方法であって、 ライトコマンドを実行するキュードランダムライトオペ
    レーションでは、 前記インターフェース処理手段が、前記コマンド管理手
    段により決定されたコマンド処理順にかかわらず、複数
    のキャシュセグメントバッファにデータ転送を開始する
    ステップと、 前記ドライブ処理手段が、複数のキャシュセグメントバ
    ッファに転送された書き込みデータを、前記コマンド管
    理手段により決定されたコマンド処理順でディスク状記
    憶媒体に書き込んでドライブ側の処理を実行するステッ
    プと、 該当コマンドの実行によるディスク状記憶媒体への書き
    込みが終了すると、コマンド終了のステータスをホスト
    に送るステップとを含むことを特徴とするディスクドラ
    イブ装置の制御方法。
JP11184702A 1999-06-30 1999-06-30 ディスクドライブ装置及びその制御方法 Pending JP2001022529A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11184702A JP2001022529A (ja) 1999-06-30 1999-06-30 ディスクドライブ装置及びその制御方法
US09/692,260 US6567886B1 (en) 1999-06-30 2000-10-19 Disk drive apparatus and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP11184702A JP2001022529A (ja) 1999-06-30 1999-06-30 ディスクドライブ装置及びその制御方法
US09/692,260 US6567886B1 (en) 1999-06-30 2000-10-19 Disk drive apparatus and control method thereof

Publications (2)

Publication Number Publication Date
JP2001022529A true JP2001022529A (ja) 2001-01-26
JP2001022529A5 JP2001022529A5 (ja) 2006-08-17

Family

ID=27624554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11184702A Pending JP2001022529A (ja) 1999-06-30 1999-06-30 ディスクドライブ装置及びその制御方法

Country Status (2)

Country Link
US (1) US6567886B1 (ja)
JP (1) JP2001022529A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122816A (ja) * 2005-10-28 2007-05-17 Fujitsu Ltd 記憶装置、制御方法及びプログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907499B2 (en) * 2002-01-31 2005-06-14 Seagate Technology Llc Interrupting disc write operations to service read commands
US7149857B2 (en) 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US7730256B2 (en) * 2005-08-22 2010-06-01 Broadcom Corporation Dual work queue disk drive controller
US20080155166A1 (en) * 2006-12-22 2008-06-26 Fujitsu Limited Application specific processor for controlling data buffer manager
US8666537B2 (en) * 2008-10-31 2014-03-04 Spectra Logic, Corporation Robotic storage library with queued move instructions and method of queing such instructions
US8340810B2 (en) * 2008-10-31 2012-12-25 Spectra Logic Corp. Robotic storage library with queued move instructions and method of queuing such instructions
CN102193882B (zh) * 2010-03-15 2014-09-10 京瓷办公信息***株式会社 数据处理装置以及数据处理方法
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10228880B2 (en) 2016-09-06 2019-03-12 HGST Netherlands B.V. Position-aware primary command queue management
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
CN114461139A (zh) * 2021-12-29 2022-05-10 天津中科曙光存储科技有限公司 业务处理方法、装置、计算机设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729718A (en) * 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
EP0781432B1 (en) * 1994-09-14 2006-12-06 Intel Corporation Multimedia editing system using pre-caching data utilizing thread lists
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
US5845318A (en) * 1996-10-28 1998-12-01 International Business Machines Corporation Dasd I/O caching method and application including replacement policy minimizing data retrieval and storage costs
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6311256B2 (en) * 1997-06-30 2001-10-30 Emc Corporation Command insertion and reordering at the same storage controller
US5991825A (en) * 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6339811B1 (en) * 1999-04-21 2002-01-15 Seagate Technologh Llc Rotationally optimized seek initiation
US6418510B1 (en) * 2000-09-14 2002-07-09 International Business Machines Corporation Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122816A (ja) * 2005-10-28 2007-05-17 Fujitsu Ltd 記憶装置、制御方法及びプログラム

Also Published As

Publication number Publication date
US6567886B1 (en) 2003-05-20

Similar Documents

Publication Publication Date Title
JP4391548B2 (ja) デバイスドライバ
JP4788528B2 (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
JP2006139548A (ja) メディア・ドライブ及びそのコマンド実行方法
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP2001022529A (ja) ディスクドライブ装置及びその制御方法
JP2005215729A (ja) データ伝送制御方法及び記憶装置
JP2001100935A (ja) ディスク装置およびその制御方法
EP1134648A2 (en) Host-based virtual disk drive for improving the performance of a hard disk drive's input/output
JP3823040B2 (ja) データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ
JP3358795B2 (ja) ディスクドライブ装置及びその制御方法
JPH11110139A (ja) データ読み取り方法及びデータ読み取り装置
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
JP2001125829A (ja) コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法
US20040015878A1 (en) Reordering controller, reordering method and storage apparatus
JP2001022529A5 (ja) マルチドライブ記憶システム及びディスクドライブ装置の制御方法
JP2010282422A (ja) データ記憶装置及びデータ転送制御方法
JP5030387B2 (ja) データ記憶装置
GB2361557A (en) Data storage device with data transfer before write instruction
JP2001014111A (ja) 回転形記憶装置の制御方法
JP4959766B2 (ja) デバイスドライバ
US7707356B2 (en) Method and apparatus for scheduling disk read requests
JPH1027069A (ja) 記憶装置
JP2001351310A (ja) ディスク装置およびそのためのプログラムを記憶したコンピュータ読み取り可能な記録媒体
JP2009087460A (ja) ディスク記憶装置のコマンド処理方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060629

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060629

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091006