JP3588311B2 - ディスク・ドライブへコマンドを出すかどうかを決定する方法及びディスク・コントローラ - Google Patents

ディスク・ドライブへコマンドを出すかどうかを決定する方法及びディスク・コントローラ Download PDF

Info

Publication number
JP3588311B2
JP3588311B2 JP2000215272A JP2000215272A JP3588311B2 JP 3588311 B2 JP3588311 B2 JP 3588311B2 JP 2000215272 A JP2000215272 A JP 2000215272A JP 2000215272 A JP2000215272 A JP 2000215272A JP 3588311 B2 JP3588311 B2 JP 3588311B2
Authority
JP
Japan
Prior art keywords
disk
command
disk drive
priority level
threshold
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
Application number
JP2000215272A
Other languages
English (en)
Other versions
JP2001067297A (ja
Inventor
リチャード・カーティス・クリアヴィンガー
ケント・ディー・プロスチ
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
Publication of JP2001067297A publication Critical patent/JP2001067297A/ja
Application granted granted Critical
Publication of JP3588311B2 publication Critical patent/JP3588311B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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

Description

【0001】
【発明の属する技術分野】
本発明は、ディスク・ドライブのコマンドの順序付けに関し、更に具体的には、コマンドの優先レベル及びディスク・ドライブの利用可能性に基づいて、コマンドをディスク・ドライブへ出すかどうかを決定することに関する。
【0002】
【従来の技術】
図1は、コンピュータ・システム100のブロック図である。その主な構成要素はホスト・コンピュータ110、ディスク・コントローラ115、及びディスク・ドライブ125である。ディスク・ドライブ125は、SCSIプロトコルに従った、時には商品ディスク・ドライブと呼ばれる市販の既製のコンポーネントであってよい。
【0003】
ホスト・コンピュータ110は、ディスク・ドライブ125上に記憶されたデータに作用する。ホスト・コンピュータ110がデータを読み取りたいとき、それは、データを識別する読み取りコマンドをディスク・コントローラ115へ出す。転じて、ディスク・コントローラ115は、読み取りコマンドをディスク・ドライブ125へ出す。ディスク・ドライブ125が読み取りコマンドを実行するとき、それはデータをディスク・コントローラ115へ送り、ディスク・コントローラ115はデータをホスト・コンピュータ110へ渡す。ホスト・コンピュータ110がデータを書き込みたい場合には、それは、ディスク・コントローラ115へ書き込みコマンドを出して関連データを送る。その後で、ディスク・コントローラ115は書き込みコマンドをディスク・ドライブ125へ出す。ディスク・ドライブ125が書き込みコマンドを実行する準備を整えたとき、それはディスク・コントローラ115へ通知し、ディスク・コントローラ115は、関連づけられたデータをディスク・ドライブ125へ送る。
【0004】
ディスク・コントローラ115は、ホスト・コンピュータ110及びディスク・ドライブ125との情報交換に関連した手順を実行するために、プロセッサ117及び関連したメモリ118を含む。更に、それは、やがてディスク・ドライブ125へ出さなければならないコマンドを含むコントローラ・コマンド・キュー120を含む。
【0005】
更に、ディスク・ドライブ125は、プロセッサ(図示されない)及び関連したメモリ128の形式で、或るローカル知能を含む。メモリ128はディスク・ドライブ・コマンド・キュー130を含む。ディスク・ドライブ・コマンド・キュー130は、ディスク・ドライブ125へ出されたが未だ実行されていないコマンドを含む。
【0006】
コンピュータ・システム100のようなシステムのパフォーマンスは、度々応答時間及びスループットに関して評価される。待ち時間とも呼ばれる応答時間は、コマンドが出された時と、それが実行される時との間の時間間隔である。短い応答時間が、長い応答時間よりも好ましい。スループットは、指定された時間周期の間にシステムによって処理されるコマンドの総数である。より大きいスループットが、より小さいスループットよりも好ましい。
【0007】
ディスク・コントローラ115及びディスク・ドライブ125の各々は、応答時間を減少しスループットを増大するための特徴を含む。特徴は、コマンドに優先順位をつけ、コントローラ・コマンド・キュー120及びディスク・ドライブ・コマンド・キュー130の上でコマンドを配列することを含む。
【0008】
ディスク・コントローラ115は、ディスク・ドライブ125へ出す各コマンドへ優先レベルを割り当てる。最も重要なコマンドは、最高優先レベルを割り当てられる。目下の説明で、3つの優先レベルが関連している。それらはデマンド・ステージ(demand stage)、プレステージ(prestage)、及びデステージ(destage)である。
【0009】
デマンド・ステージ優先レベルは、最高優先レベルである。それは、ホスト・コンピュータ110がデータの読み取りを望むコマンドに関連づけられる。一般的に、ホスト・コンピュータ110が読み取りコマンドをディスク・コントローラ115へ出すとき、ホスト・コンピュータ110はデータに対して即時の必要性を有する。従って、ディスク・コントローラ115が読み取りコマンドをホスト・コンピュータ110から受け取るとき、それはデマンド・ステージ優先レベルを読み取りコマンドへ割り当てる。
【0010】
プレステージ優先レベルは、次に高い優先レベルである。それは、ホスト・コンピュータ110によって開始される読み取りコマンドとは対照的に、ディスク・コントローラ115によって開始される読み取りコマンドへ割り当てられる。ディスク・コントローラ115は、ホスト・コンピュータ110から受け取られたコマンドの最近の履歴を評価し、ホスト・コンピュータ110が出すであろう次のコマンドを予測する。例えば、ホスト・コンピュータ110が2つの隣接するデータ・ブロックについて読み取りコマンドを出す場合、ディスク・コントローラ115は、ホスト・コンピュータ110からの次のコマンドが、3番目の隣接したデータ・ブロックに対する読み取りコマンドであろうと予測するかも知れない。このコマンドの予想において、ディスク・コントローラ115は3番目の隣接したデータ・ブロックについて読み取りコマンドをディスク・ドライブ125へ出す。ホスト・コンピュータ110からの読み取りコマンドを予想してなされた、そのようなディスク・コントローラ115からの読み取りコマンドは、プレステージ優先レベルを割り当てられる。
【0011】
デステージ優先レベルは、プレステージ優先レベルよりも低い。ディスク・コントローラ115は、データをディスク・ドライブ125へ書き込みたい書き込みコマンドへデステージ優先レベルを割り当てる。ホスト・コンピュータ110がデータを記憶装置へ書き込むとき、それは、一般的に、少なくとも短期間では、データの処理を終了している。ホスト・コンピュータ110は、データをディスク・コントローラ115へ渡し、次に他の仕事へ移る。ホスト・コンピュータ110は、ディスク・コントローラ115がデータをディスク・ドライブ125へ実際に書き込むまで待たず、従って、ディスク・ドライブ125が書き込みコマンドを実行する即時の緊急性はない。
【0012】
ディスク・コントローラ115は、コントローラ・コマンド・キュー120上で、コマンドを優先順位に従って配列する。即ち、最高優先レベルを有するコマンドは、コントローラ・コマンド・キュー120の前部に置かれ、最低優先レベルを有するコマンドは、コントローラ・コマンド・キュー120の末端に置かれる。同じ優先レベルを有するコマンドは、キュー上に存在した時間量に従って配列される。即ち、コマンドは優先順位及び年齢に従って配列される。コントローラ・コマンド・キュー120の前部にあるコマンドは、ディスク・コントローラ115がディスク・ドライブ125へ出したい次のコマンドである。コントローラ・コマンド・キュー120上におけるコマンドのこの構成は、最高優先順位コマンドについて応答時間を最小化することを意図されている。
【0013】
ディスク・コントローラ115は、プレステージ優先レベルからデマンド・ステージ優先レベルへ、コマンドを昇進させることができる。そのようなコマンドがデマンド・ステージへ昇進したとき、コマンドはデマンド・ステージ優先順位の他のコマンドの中に置かれ、更にコマンドの年齢に従って配列される。コマンドが昇進したとき、ディスク・コントローラ115は、もし必要ならば、コントローラ・コマンド・キュー120を配列し直す。デステージ優先レベルのコマンドは、昇進適格を有しないことに注意されたい。
【0014】
更に、ディスク・コントローラ115は、所定の時間周期の後、コントローラ・コマンド・キュー120における全てのコマンドの優先レベルを進める経時(エージング)アルゴリズムを使用する。更に具体的には、所定の時間が経過した後、コントローラ・コマンド・キュー120上の全てのコマンドは、より高い優先レベルへ進められる。経時アルゴリズムは、新しいコマンドがより高い優先レベルを有する場合に、低い優先順位のコマンドが長時間停止状態にあること、即ち、サービスされないことを妨げるために意図されている。経時アルゴリズムは、優先レベルに関わらず全てのコマンドに適用されるが、コマンド・キュー120を配列し直さないことに注意されたい。
【0015】
ディスク・ドライブ125は、やがて実行する必要があるコマンドを、ディスク・ドライブ・コマンド・キュー130上に保持する。ディスク・ドライブ125は、2つのモードのいずれか、即ち、配列モード又は再配列モードで動作することができる。配列モードの間に、ディスク・ドライブ125はコマンドをディスク・ドライブ・コマンド・キュー130上に置き、ディスク・コントローラ115から受け取られた順序でコマンドを実行する。再配列モードでは、ディスク・ドライブ125は、シーク・タイム及び連続したコマンドの実行の間の回転待ち時間を最小にしてスループットを改善するために、ディスク・ドライブ・コマンド・キュー130上のコマンドの順序を変更する。
【0016】
再配列モードでは、ディスク・ドライブ・コマンド・キュー130上のコマンドの数が増加するにつれて、ディスク・ドライブ125はより効率的になる。なぜなら、それは、実行すべき次のコマンドを選択するとき、選択するためのより多くのコマンドを有するからである。従って、スループットは増大する。しかし、ディスク・ドライブ・コマンド・キュー130上のコマンドの数が増加するにつれて、所与のコマンドの潜在的最大待ち時間も増加する。更に、ディスク・ドライブ125はディスク・コントローラ115によって使用される優先レベルを知っているわけではなく、その結果、再配列モードでは、それは高優先順位コマンドの前に1つ又は複数の低優先順位コマンドを実行するかも知れない。
【0017】
キュー・ヘッド・オプションと呼ばれる他の特徴によって、ディスク・コントローラ115は、特定のコマンドがディスク・ドライブ・コマンド・キュー130の先頭に置かれるように強制することができる。ディスク・コントローラ115がコマンドを出し、キュー・ヘッド・オプションを指定するとき、その指定はディスク・ドライブ125がディスク・ドライブ・コマンド・キュー130を再配列することを妨げ、指定されたコマンドはディスク・ドライブ125によって実行されるべき次のコマンドとなる。この特徴は、指定されたコマンドについて待ち時間を最小にするが、ディスク・ドライブの効率を犠牲にし、ディスク・ドライブ・コマンド・キュー130上にある他のコマンドの待ち時間を増大する。
【0018】
幾つかの連続したコマンドが、キュー・ヘッド・オプションを用いて、ディスク・ドライブ125がコマンドを実行できる速度よりも早く出される場合、問題が起こる。キュー・ヘッド・オプションを用いて、C1、C2、及びC3のシーケンスで出された3つのコマンドは、C3、C2、及びC1の順序で実行されるであろう。最も古いコマンドC1は、その優先レベルに拘わらず最後に実行される。更に、キュー・ヘッド・オプションのために、ディスク・ドライブはコマンドを再配列してスループットを改善することはできない。その結果、この場合、キュー・ヘッド・オプションは、コマンドC1の応答時間及びコンピュータ・システム100の全体的スループットに悪影響を及ぼす。
【0019】
理想的なシステムは、応答時間を最小にし、同時にスループットを最大にするであろう。次の特許は、このチャレンジに取り組むために使用される幾つかの従来技術を代表する。
【0020】
米国特許第4,425,615号は、複数のディスクのためのコマンド・キューを有するキャッシュ/ディスク・サブシステムを含む階層メモリ・システムを規定する。それは、コマンド・キューが各ディスク・ドライブのために設けられた複数のディスク・ドライブを含むディスク・サブシステムを説明する。優先順位値及びシーケンス番号が各コマンド・キューへ割り当てられ、従って、キューに対応するディスク・ドライブがアイドルになったとき、最高順位のキュー・コマンド番号が実行される。
【0021】
米国特許第5,548,795号は、コマンド・キュー再配列プロセスの中でコマンド実行依存性を決定する方法を提供する。この発明は、最小待ち時間を計算し、依存性情報をディスク・ドライブ・コマンド・キューの中に維持し、この情報を使用して、時間的及び計算的に効率のある様式でコマンドの再配列を妨げる方法を説明する。
【0022】
米国特許第5,469,560号は、自動化されたストレージ・ライブラリにおける保留中の読み取り要求に優先順位をつけることを規定する。それは、待ち時間を最小にするため、ディスクの自動化されたストレージ・ライブラリからのオブジェクトを優先順位を付けて読み取る方法を有する情報処理システムを説明する。
【0023】
米国特許第5,729,718号は、ヘッド・スイッチ、シーク、及び回転待ち時間の関数としてリード・タイム待ち時間を決定し、埋め込まれたディスク・ドライブ・コントローラをコマンド・キュー記録に利用するシステムを提供する。それは、ディスク・ドライブによって受け取られたコマンドを再配列するシステムを説明する。リード・タイム待ち時間は、アクティブ・コマンドに関してキュー内のコマンドのために決定される。最小リード・タイム待ち時間を有するコマンドが選択され、キューの前部へ進められ、そこで、アクティブ・コマンドの後に実行される。
【0024】
米国特許第5,848,226号は、ディジタル印刷システムでバッファ・メモリを介してデータ転送に優先順位を付けることを規定する。ディスク・ドライブ内の制御手段は、ソフトウェア・エンティティーによって優先順位値をコマンド出力へ割り当て、最高優先順位を有するコマンドを実行する。
【0025】
応答時間を縮小するか、又はスループットを最大にする従来技術の手法は、一般的に、積極的にコマンドの優先順位を付け直すか、又はキューを配列し直してシステムの効率を改善する方法に向けられている。通常、応答時間に関する改善はスループットの減損を伴うか、又はその逆である。更に、これらの手法は、複雑である場合が多く、必ずしも商品ディスク・ドライブとの互換性を有しない。
【0026】
【発明が解決しようとする課題】
従って、本発明の目的は、高い優先順位のコマンドに対して応答時間を最小にし、全てのコマンドに対してスループットを最大にするように、コマンドをディスク・ドライブへ出すかどうかを決定するディスク・コントローラ及び方法を提供することである。
【0027】
本発明の他の目的は、市販ディスク・ドライブの動作と互換性のあるディスク・コントローラ及び方法を提供することである。
【0028】
【課題を解決するための手段】
ディスク・コントローラ及びディスク・ドライブを含むコンピュータ・システムにおいて、ディスク・コントローラは、コマンドに関連づけられた優先レベル、及びディスク・ドライブの利用可能性の双方を考慮することによって、コマンドをディスク・ドライブへ出すかどうかを決定する。
【0029】
好ましい実施形態において、ディスク・コントローラは未決着のコマンド、即ち、ディスク・ドライブへ出されたが未だ実行されていないコマンドのカウントを維持する。コマンドをディスク・ドライブへ出すかどうかを考慮するとき、ディスク・コントローラは、先ずコマンドの優先レベルを決定する。もしコマンドの優先順位が最高レベルであれば、未決着コマンドのカウントが8より小さいときにのみコマンドが出される。もしコマンドの優先順位が最高レベルでなければ、未決着コマンドのカウントが2より小さいときにのみコマンドが出される。
【0030】
高い優先順位のコマンドを考慮するとき、8つの未決着コマンドの第1のしきい値を使用し、より低い優先順位のコマンドを考慮するとき2つの未決着コマンドの第2のしきい値を使用することによって、ディスク・コントローラは、全てのコマンドに関してディスク・ドライブのスループットに悪影響を及ぼすことなく、高い優先順位のコマンドについて応答時間を最小にする必要性を容易に満たす。
【0031】
【発明の実施の形態】
図2は、コンピュータ・システム200のブロック図である。主な構成要素はホスト・コンピュータ210、ディスク・コントローラ215、及びディスク・ドライブ225である。これらの構成要素の動作、及びそれらの相互の関係は、前記の図1で説明したものと同じである。
【0032】
ディスク・ドライブ225は、SCSIプロトコルに従った、市販の既製の構成要素であってよい。しかし、本発明はSCSIプロトコルに限定されず、実行コマンドの効率に基づいてコマンドを再配列する任意のディスク・ドライブに応用することができる。
【0033】
ディスク・ドライブ225は、プロセッサ(図示されていない)、及び関連したメモリを含む。メモリ228はディスク・ドライブ・コマンド・キュー230を含む。ディスク・ドライブ・コマンド・キュー230は、ディスク・ドライブ225へ出されたが未だ実行されていないコマンドを含む。ディスク・ドライブ225は、ディスク・ドライブ・コマンド・キュー230上のコマンドを再配列することができる。
【0034】
ディスク・コントローラ215は、ホスト・コンピュータ210及びディスク・ドライブ225との情報交換に関連した手順を実行するためのプロセッサ216及び関連したメモリ217を含む。コントローラ・コマンド・キュー220は、やがてディスク・ドライブ225へ出されなければならないコマンドを含む。更に、ディスク・コントローラ215は、ディスク・ドライブ225の利用可能性を示すディスク利用可能値218を維持する。ディスク利用可能値218は、ディスク・ドライブ225の利用可能性、例えば未決着コマンドを実行する推定時間又は未決着コマンドの数などを表す任意の量的インディケータであることができる。コマンド発行プロセス219は、コマンドをディスク・ドライブ225へ出すかどうかを決定する。
【0035】
好ましい実施形態において。ディスク利用可能値218は、未決着コマンドのカウント(OCC)、即ち、ディスク・ドライブ225へ出されたが未だ実行されていないコマンドのカウントである。言い換えれば、ディスク利用可能値218は、ディスク・ドライブ・コマンド・キュー230上のコマンドの数を示す。ディスク・コントローラ215がコマンドをディスク・ドライブ225へ出すとき、それはディスク利用可能値218の未決着コマンドのカウントを増加する。ディスク・ドライブ225がコマンドを実行するとき、ディスク・コントローラ215は、ディスク利用可能値218の未決着コマンドのカウントを減少する。
【0036】
ディスク・コントローラ215は、ディスク・ドライブ225へ出す各コマンドへ優先レベルを割り当てる。図1に関連して前述したように、デマンド・ステージは最高優先レベルである。好ましい実施形態において、コマンドの優先順位はデマンド・ステージであるか、又はより低い優先レベルであることができる。より低い優先レベルは、相互には識別されない。即ち、コマンドの優先順位は、デマンド・ステージであるか、又はデマンド・ステージではない。しかし、一般的な場合、本発明は任意数の優先レベルを用いて動作することができる。
【0037】
コマンドをディスク・ドライブ225へ出すかどうかを考慮するとき、コマンド発行プロセス219は、先ずコマンドの優先レベルを決定する。もしコマンドの優先順位がデマンド・ステージであれば、コマンドは、未決着コマンドのカウントが8より小さいときにのみ出される。もしコマンドの優先順位がデマンド・ステージでなければ、コマンドは、未決着コマンドのカウントが2より小さいときにのみ出される。
【0038】
このアルゴリズムによって、コンピュータ・システム200が十分にビジーで8つのデマンド・ステージ・コマンドを累積するとき、8つのより低い優先順位のコマンドがデマンド・ステージへ進んだとき、又はこれら2つのことが組み合わせて起こったときに、8つまでのコマンドをディスク・ドライブ・コマンド・キュー230へ入れることができる。もしコンピュータ・システム200が軽いワークロードのもとで動作しているならば、デマンド・ステージ・コマンドは、前に出されたコマンドの2つを超えて後に待たされることはないであろう。この計画は、デマンド・ステージ・コマンドへ優先的処置を与えて、それらの応答時間を最小にするにも拘わらず、ディスク・ドライブ225がディスク・ドライブ・コマンド・キュー230上のコマンドを再配列して、スループットを最大にすることを可能ならしめる。
【0039】
図3は、コマンド発行プロセス219のフローチャート300である。コマンド発行プロセス219は、ディスク・コントローラ215がコマンドをディスク・ドライブ225へ出すかどうかを決定しなければならないときに呼び出される。これは、新しいコマンドがホスト・コンピュータ210から受け取られたとき、前に出されたコマンドがディスク・ドライブ225によって完了されたとき、又はコマンドがより高い優先レベルへ昇進したときに起こる。考慮されているコマンドは、コントローラ・コマンド・キュー220の前方にあるコマンドである。
【0040】
前述したように、ディスクの利用可能性218はディスク・ドライブ225の利用可能性を示し、好ましい実施形態では、それは未決着コマンドのカウントを保持する。図3に示されるように、コマンド発行プロセス219は未決着コマンドのカウント(OCC)305を評価する。
【0041】
ステップ310で、プロセスは、考慮されているコマンドがデマンド・ステージ優先レベルを有するかどうかを決定することによってスタートする。もし優先レベルがデマンド・ステージであれば、プロセスはステップ315へ進む。もし優先レベルがデマンド・ステージでなければ、プロセスはステップ325へ進む。この実施形態において、デマンド・ステージはしきい値優先レベルであり、デマンド・ステージより大きい優先レベルの場合を考慮する必要はないことに注意されたい。なぜなら、デマンド・ステージは最高の可能な優先レベルだからである。しかし、一般的な場合、しきい値優先レベルは最高優先レベルである必要はなく、コマンドの優先レベルがしきい値優先レベルより大きいか、又は等しいかどうかをプロセスが決定する。
【0042】
ステップ315では、プロセスは、未決着コマンド・カウント305が第1のしきい値である8カウントよりも小さいかどうかを決定する。言い換えれば、それは、ディスク・ドライブ・コマンド・キュー230が8つよりも少ない未決着コマンドを含むかどうかを決定する。もし未決着コマンドのカウントが8より小さければ、プロセスはステップ320へ進む。もし未決着コマンドのカウントが8より小さくなければ、プロセスはステップ335へ進む。
【0043】
ステップ320では、プロセスは考慮されているコマンドをディスク・ドライブ225へ出す。その後で、プロセスはステップ335へ進む。
【0044】
ステップ325で、プロセスは、未決着コマンド・カウント305が第2のしきい値である2カウントより小さいかどうかを決定する。言い換えれば、それは、ディスク・ドライブ・コマンド・キュー230が2より少ない未決着コマンドを含むかどうかを決定する。もし未決着コマンドのカウントが2より小さければ、プロセスはステップ330へ進む。もし未決着コマンドのカウントが2より小さくなければ、プロセスはステップ335へ進む。
【0045】
ステップ330では、プロセスは考慮されているコマンドをディスク・ドライブ225へ出す。その後で、プロセスはステップ335へ進む。
【0046】
ステップ335で、プロセスは終了する。
【0047】
コマンド発行プロセス219は、前述したキュー・ヘッド・オプションを使用しないことに注意されたい。ディスク・ドライブ225は再配列モードで動作し、ディスク・ドライブ・コマンド・キュー230上のコマンドを再配列することができる。これによって、ディスク・ドライブ225は、再配列モードで利用可能な範囲までそのスループットを最適化することができる。
【0048】
本発明を実行するために必要な手順は、ディスク・コントローラ215のメモリ217の中へ既にロードされているように示されるが、それら手順は、図2のデータ・メモリ250のように、ストレージ媒体上に構成され、その後でメモリ217へロードされてよい。
【0049】
これまでの説明は、単に本発明を例示するだけであることを理解すべきである。各種の選択肢及び修正が、本発明から逸脱することなく当業者によって案出され得る。例えば、プロセスは、必ずしも2つの優先レベル又は2つのディスク利用可能しきい値へ限定されない。多数の優先レベル及びしきい値を考えることができる。第二に、ディスク・コントローラは、図2のディスク・コントローラ215によって表されるようなスタンドアロンの構成要素である必要はなく、ホスト・コンピュータ210のような他の装置に埋め込まれることができる。更に、本発明は、ただ1つのディスク・ドライブを有するコンピュータ・システムに限定されない。多数のディスク・ドライブを有するシステムでは、ディスク・コントローラ215は、多数のディスク・ドライブの各々のために、コントローラ・コマンド・キュー220及びディスク利用可能値218を維持する。従って、本発明は、従属項の範囲に入るような全ての選択肢、修正、及び変形を包含することを意図されている。
【0050】
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)ディスク・コントローラからディスク・ドライブへコマンドを出すかどうかを決定する方法であって、前記ディスク・コントローラは前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持し、前記コマンドは、関連づけられた優先レベルを有し、前記ディスク・コントローラは、
(A)前記優先レベルがしきい値優先レベル以上かどうかを決定し、
(B)前記優先レベルが前記しきい値優先レベル以上であることをステップAが決定するとき、前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定し、
(C)前記優先レベルが前記しきい値優先レベルより小さいことをステップAが決定するとき、前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定し、
(D)前記ディスク利用可能値が前記第1のしきい値より小さいことをステップBが決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことをステップCが決定するとき、前記コマンドを前記ディスク・ドライブへ出す
ステップを実行する方法。
(2)前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、上記(1)に記載の方法。
(3)前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着のコマンドを配列し直すことができる、上記(2)に記載の方法。
(4)前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドのカウントである、上記(1)に記載の方法。
(5)前記未決着のコマンドの前記カウントが、前記コマンドが前記ディスク・ドライブへ出されるときに増加され、前記コマンドが前記ディスク・ドライブによって実行されるときに減少される、上記(4)に記載の方法。
(6)前記優先レベルが複数の優先レベルの1つである、上記(1)に記載の方法。
(7)未だ出されてしないコマンドを含むキューを前記コントローラが含む、上記(1)に記載の方法。
(8)コマンドをディスク・ドライブへ出すかどうかを決定するディスク・コントローラであって、前記コマンドは、関連づけられた優先レベルを有し、
(A)前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持するディスク利用可能インディケータと、
(B)前記優先レベルがしきい値優先レベル以上かどうかを決定する第1の比較器と、
(C)前記優先レベルが前記しきい値優先レベル以上であることを前記第1の比較器が決定するとき、前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定する第2の比較器と、
(D)前記優先レベルが前記しきい値優先レベルより小さいことを前記第1の比較器が決定するとき、前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定する第3の比較器と、
(E)前記ディスク利用可能値が前記第1のしきい値より小さいことを前記第2の比較器が決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことを前記第3の比較器が決定するとき、前記コマンドを前記ディスク・ドライブへ出すコマンド発行器と
を含むディスク・コントローラ。
(9)前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、上記(8)に記載のディスク・コントローラ。
(10)前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着のコマンドを配列し直すことができる、上記(9)に記載のディスク・コントローラ。
(11)前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドのカウントである、上記(8)に記載のディスク・コントローラ。
(12)前記ディスク利用可能インディケータが、前記コマンドが前記ディスク・ドライブへ出されるとき未決着コマンドの前記カウントを増加し、前記コマンドが前記ディスク・ドライブによって実行されるとき未決着コマンドの前記カウントを減少する、上記(11)に記載のディスク・コントローラ。
(13)前記優先レベルが複数の優先レベルの1つである、上記(8)に記載のディスク・コントローラ。
(14)未だ出されていないコマンドを含むキューを更に含む、上記(8)に記載のディスク・コントローラ。
(15)コマンドをディスク・ドライブへ出すかどうかを決定するディスク・コントローラのためのプログラムを記憶するメモリ媒体であって、前記ディスク・コントローラは、前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持し、前記コマンドは、関連づけられた優先レベルを有し、
(A)前記ディスク・コントローラを制御して、前記優先レベルがしきい値優先レベル以上かどうかを決定する手段と、
(B)前記優先レベルが前記しきい値優先レベル以上であることを手段Aが決定するとき、前記ディスク・コントローラを制御して前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定する手段と、
(C)前記優先レベルが前記しきい値優先レベルより小さいことを手段Aが決定するとき、前記ディスク・コントローラを制御して前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定する手段と、
(D)前記ディスク利用可能値が前記第1のしきい値より小さいことを手段Bが決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことを手段Cが決定するとき、前記ディスク・コントローラを制御して前記コマンドを前記ディスク・ドライブへ出す手段と
を含むメモリ媒体。
(16)前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、上記(15)に記載のメモリ媒体。
(17)前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着コマンドを配列し直すことができる、上記(16)に記載のメモリ媒体。
(18)前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着コマンドのカウントである、上記(15)に記載のメモリ媒体。
(19)前記ディスク・コントローラを制御して、前記コマンドが前記ディスク・ドライブへ出されるとき未決着コマンドの前記カウントを増加し、前記コマンドが前記ディスク・ドライブによって実行されるとき未決着コマンドの前記カウントを減少する手段を更に含む、上記(18)に記載のメモリ媒体。
(20)前記優先レベルが複数の優先レベルの1つである、上記(15)に記載のメモリ媒体。
(21)未だ出されていないコマンドを含むキューを前記ディスク・コントローラが含む、上記(15)に記載のメモリ媒体。
【図面の簡単な説明】
【図1】従来技術に従ったコンピュータ・システムのブロック図である。
【図2】本発明を実行するために特に適合させられたコンピュータ・システムのブロック図である。
【図3】本発明に従って、コマンドをディスク・ドライブへ出すかどうかを決定するプロセスを示すフローチャートである。
【符号の説明】
100 コンピュータ・システム
110 ホスト・コンピュータ
115 ディスク・コントローラ
117 プロセッサ
118 メモリ
120 コントローラ・コマンド・キュー
125 ディスク・ドライブ
128 メモリ
130 ディスク・ドライブ・コマンド・キュー
200 コンピュータ・システム
210 ホスト・コンピュータ
215 ディスク・コントローラ
216 プロセッサ
217 メモリ
218 ディスク利用可能値
219 コマンド発行プロセス
220 コントローラ・コマンド・キュー
225 ディスク・ドライブ
228 メモリ
230 ディスク・ドライブ・コマンド・キュー
250 データ・メモリ

Claims (18)

  1. ディスク・コントローラからディスク・ドライブへコマンドを出すかどうかを決定する方法であって、前記ディスク・コントローラは前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持し、前記コマンドは、関連づけられた優先レベルを有し、前記ディスク・コントローラは、
    (A)前記優先レベルがしきい値優先レベル以上かどうかを決定し、
    (B)前記優先レベルが前記しきい値優先レベル以上であることをステップAが決定するとき、前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定し、
    (C)前記優先レベルが前記しきい値優先レベルより小さいことをステップAが決定するとき、前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定し、
    (D)前記ディスク利用可能値が前記第1のしきい値より小さいことをステップBが決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことをステップCが決定するとき、前記コマンドを前記ディスク・ドライブへ出す
    ステップを実行する方法。
  2. 前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、請求項1に記載の方法。
  3. 前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着のコマンドを配列し直すことができる、請求項2に記載の方法。
  4. 前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドのカウントである、請求項1に記載の方法。
  5. 前記未決着のコマンドの前記カウントが、前記コマンドが前記ディスク・ドライブへ出されるときに増加され、前記コマンドが前記ディスク・ドライブによって実行されるときに減少される、請求項4に記載の方法。
  6. 前記優先レベルが複数の優先レベルの1つである、請求項1に記載の方法。
  7. コマンドをディスク・ドライブへ出すかどうかを決定するディスク・コントローラであって、前記コマンドは、関連づけられた優先レベルを有し、
    (A)前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持するディスク利用可能インディケータと、
    (B)前記優先レベルがしきい値優先レベル以上かどうかを決定する第1の比較器と、
    (C)前記優先レベルが前記しきい値優先レベル以上であることを前記第1の比較器が決定するとき、前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定する第2の比較器と、
    (D)前記優先レベルが前記しきい値優先レベルより小さいことを前記第1の比較器が決定するとき、前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定する第3の比較器と、
    (E)前記ディスク利用可能値が前記第1のしきい値より小さいことを前記第2の比較器が決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことを前記第3の比較器が決定するとき、前記コマンドを前記ディスク・ドライブへ出すコマンド発行器と
    を含むディスク・コントローラ。
  8. 前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、請求項7に記載のディスク・コントローラ。
  9. 前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着のコマンドを配列し直すことができる、請求項8に記載のディスク・コントローラ。
  10. 前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドのカウントである、請求項7に記載のディスク・コントローラ。
  11. 前記ディスク利用可能インディケータが、前記コマンドが前記ディスク・ドライブへ出されるとき未決着コマンドの前記カウントを増加し、前記コマンドが前記ディスク・ドライブによって実行されるとき未決着コマンドの前記カウントを減少する、請求項10に記載のディスク・コントローラ。
  12. 前記優先レベルが複数の優先レベルの1つである、請求項7に記載のディスク・コントローラ。
  13. コマンドをディスク・ドライブへ出すかどうかを決定するディスク・コントローラのためのプログラムを記憶するメモリ媒体であって、前記ディスク・コントローラは、前記ディスク・ドライブの利用可能性を量的に表すディスク利用可能値を維持し、前記コマンドは、関連づけられた優先レベルを有し、前記プログラムは、前記ディスク・コントローラに、
    (A)前記ディスク・コントローラを制御して、前記優先レベルがしきい値優先レベル以上かどうかを決定する実行ステップと、
    (B)前記優先レベルが前記しきい値優先レベル以上であることを実行ステップAが決定するとき、前記ディスク・コントローラを制御して前記ディスク利用可能値が第1のしきい値より小さいかどうかを決定する実行ステップと、
    (C)前記優先レベルが前記しきい値優先レベルより小さいことを実行ステップAが決定するとき、前記ディスク・コントローラを制御して前記ディスク利用可能値が第2のしきい値より小さいかどうかを決定する実行ステップと、
    (D)前記ディスク利用可能値が前記第1のしきい値より小さいことを実行ステップBが決定するか、又は前記ディスク利用可能値が前記第2のしきい値より小さいことを実行ステップCが決定するとき、前記ディスク・コントローラを制御して前記コマンドを前記ディスク・ドライブへ出す実行ステップとを実行させるプログラムであることを特徴とする、ディスク・コントローラのためのプログラムを記憶する
    メモリ媒体。
  14. 前記ディスク・ドライブへ出されたが未だ実行されていない未決着のコマンドを含むディスク・キューを前記ディスク・ドライブが含む、請求項13に記載のメモリ媒体。
  15. 前記ディスク・ドライブが、前記ディスク・キュー上の前記未決着コマンドを配列し直すことができる、請求項14に記載のメモリ媒体。
  16. 前記ディスク利用可能値が、前記ディスク・ドライブへ出されたが未だ実行されていない未決着コマンドのカウントである、請求項13に記載のメモリ媒体。
  17. 前記ディスク・コントローラを制御して、前記コマンドが前記ディスク・ドライブへ出されるとき未決着コマンドの前記カウントを増加し、前記コマンドが前記ディスク・ドライブによって実行されるとき未決着コマンドの前記カウントを減少する実行ステップを更に含む、請求項16に記載のメモリ媒体。
  18. 前記優先レベルが複数の優先レベルの1つである、請求項13に記載のメモリ媒体。
JP2000215272A 1999-07-26 2000-07-17 ディスク・ドライブへコマンドを出すかどうかを決定する方法及びディスク・コントローラ Expired - Fee Related JP3588311B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/360261 1999-07-26
US09/360,261 US6301639B1 (en) 1999-07-26 1999-07-26 Method and system for ordering priority commands on a commodity disk drive

Publications (2)

Publication Number Publication Date
JP2001067297A JP2001067297A (ja) 2001-03-16
JP3588311B2 true JP3588311B2 (ja) 2004-11-10

Family

ID=23417252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000215272A Expired - Fee Related JP3588311B2 (ja) 1999-07-26 2000-07-17 ディスク・ドライブへコマンドを出すかどうかを決定する方法及びディスク・コントローラ

Country Status (12)

Country Link
US (1) US6301639B1 (ja)
EP (1) EP1072970B1 (ja)
JP (1) JP3588311B2 (ja)
KR (1) KR100415861B1 (ja)
CN (1) CN1117326C (ja)
AT (1) ATE357691T1 (ja)
DE (1) DE60033994T2 (ja)
HK (1) HK1032274A1 (ja)
ID (1) ID26676A (ja)
MY (1) MY125125A (ja)
SG (1) SG85716A1 (ja)
TW (1) TW470912B (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6463532B1 (en) * 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6578107B1 (en) * 2000-05-25 2003-06-10 International Business Machines Corporation Method and system for prefetching data where commands are reordered for execution
US6728792B2 (en) * 2001-01-04 2004-04-27 International Business Machines Corporation Priority queue with arbitrary queuing criteria
US6640258B2 (en) * 2001-01-10 2003-10-28 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for command queue ordering with a sort time reduction algorithm
US20030041190A1 (en) * 2001-06-21 2003-02-27 Sony Corporation And Sony Electronics, Inc. System and method for efficiently performing a command swapping procedure
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
JP4176341B2 (ja) * 2001-10-23 2008-11-05 株式会社日立製作所 記憶制御装置
US6848020B2 (en) * 2001-11-27 2005-01-25 International Business Machines Corporation Command aging method for data storage devices
JP3683211B2 (ja) * 2001-12-10 2005-08-17 エヌイーシーコンピュータテクノ株式会社 ノード間データ転送方法及びノード間データ転送装置
US6965965B2 (en) * 2002-06-06 2005-11-15 International Business Machines Corporation Dynamic response shaping for command aging
US7093071B2 (en) * 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7073021B2 (en) 2003-03-21 2006-07-04 Seagate Technology Llc Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements
CN100392627C (zh) * 2003-12-22 2008-06-04 威盛电子股份有限公司 存储器存取要求优先序列仲裁装置及方法
JP2005332236A (ja) * 2004-05-20 2005-12-02 Fujitsu Ltd I/oコマンド投入数の動的変換システム
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
JP5030387B2 (ja) * 2005-03-08 2012-09-19 エイチジーエスティーネザーランドビーブイ データ記憶装置
US7752488B2 (en) * 2006-01-06 2010-07-06 International Business Machines Corporation Method to adjust error thresholds in a data storage and retrieval system
US20080086599A1 (en) * 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
US20080086598A1 (en) * 2006-10-10 2008-04-10 Maron William A System and method for establishing cache priority for critical data structures of an application
JP5171602B2 (ja) * 2008-12-25 2013-03-27 京セラドキュメントソリューションズ株式会社 Raidドライバ及びこれを備えた電子機器並びにraidに対するアクセス要求調停方法
JP2010211428A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd ストレージ装置、中継装置、及びコマンド発行制御方法
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
JP5402698B2 (ja) * 2010-02-10 2014-01-29 富士通株式会社 記憶装置への情報蓄積制御方法
CN102955753B (zh) * 2011-08-30 2016-08-03 安凯(广州)微电子技术有限公司 一种迟滞型数据流控制电路
JP2012038330A (ja) * 2011-10-05 2012-02-23 Hitachi Global Storage Technologies Netherlands Bv ハードディスクドライブ
US8886872B1 (en) 2011-10-06 2014-11-11 Google Inc. Memory command dispatch in a data storage device
US8255618B1 (en) * 2011-10-06 2012-08-28 Google Inc. Performance isolation in a shared memory device
CN103605481B (zh) * 2013-10-31 2017-07-14 华为技术有限公司 磁盘控制方法、装置及设备
US10169948B2 (en) * 2014-01-31 2019-01-01 International Business Machines Corporation Prioritizing storage operation requests utilizing data attributes
US20160299686A1 (en) * 2015-04-08 2016-10-13 Kabushiki Kaisha Toshiba Disk device and controlling method of disk device
US10198188B2 (en) 2017-03-09 2019-02-05 Kabushiki Kaisha Toshiba Disk drive that efficiently handles random mixed-R/W command-streams
US10303373B2 (en) 2017-06-12 2019-05-28 Seagate Technology Llc Prioritizing commands in a data storage device
CN112416826B (zh) * 2020-11-20 2023-09-22 成都海光集成电路设计有限公司 专用计算芯片、dma数据传输系统及方法
CN112735115A (zh) * 2020-12-28 2021-04-30 新天科技股份有限公司 多线程业务处理方法、装置、服务器及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
JPH0388019A (ja) 1989-08-31 1991-04-12 Toshiba Corp データ処理装置
JP2780821B2 (ja) * 1989-09-22 1998-07-30 株式会社日立製作所 オンライン中のダンプ方式およびディスクサブシステム
JPH06309200A (ja) 1991-04-10 1994-11-04 Internatl Business Mach Corp <Ibm> ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
US5522054A (en) 1993-09-13 1996-05-28 Compaq Computer Corporation Dynamic control of outstanding hard disk read requests for sequential and random operations
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
US5557528A (en) 1993-11-23 1996-09-17 Storage Technology Corporation Task prioritization for a tape storage system
US5548795A (en) 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
JPH08171457A (ja) * 1994-12-20 1996-07-02 Matsushita Electric Ind Co Ltd データ転送制御装置
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
JPH09305320A (ja) * 1996-05-14 1997-11-28 Matsushita Electric Ind Co Ltd データ記憶装置
US5848226A (en) 1996-06-03 1998-12-08 Xerox Corporation Prioritized data transfer through buffer memory in a digital printing system
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
JPH1165775A (ja) * 1997-08-18 1999-03-09 Kobe Nippon Denki Software Kk 磁気ディスクコントローラの制御方法
US6145052A (en) * 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering

Also Published As

Publication number Publication date
ATE357691T1 (de) 2007-04-15
US6301639B1 (en) 2001-10-09
CN1117326C (zh) 2003-08-06
SG85716A1 (en) 2002-01-15
HK1032274A1 (en) 2001-07-13
DE60033994D1 (de) 2007-05-03
ID26676A (id) 2001-02-01
CN1282030A (zh) 2001-01-31
EP1072970A1 (en) 2001-01-31
EP1072970B1 (en) 2007-03-21
DE60033994T2 (de) 2007-12-06
KR20010066933A (ko) 2001-07-11
MY125125A (en) 2006-07-31
KR100415861B1 (ko) 2004-01-31
JP2001067297A (ja) 2001-03-16
TW470912B (en) 2002-01-01

Similar Documents

Publication Publication Date Title
JP3588311B2 (ja) ディスク・ドライブへコマンドを出すかどうかを決定する方法及びディスク・コントローラ
US6170042B1 (en) Disc drive data storage system and method for dynamically scheduling queued commands
US6553476B1 (en) Storage management based on predicted I/O execution times
US7373460B2 (en) Media drive and command execution method thereof
US8010742B2 (en) Using idle mode prediction to improve storage system performance
US7480754B2 (en) Assignment of queue execution modes using tag values
US20030023815A1 (en) Cache buffer control method for hard disk drives
US6636951B1 (en) Data storage system, data relocation method and recording medium
US6343351B1 (en) Method and system for the dynamic scheduling of requests to access a storage system
EP1953635A2 (en) Storage system comprising function for alleviating performance bottleneck
CN101118477A (zh) 一种提高磁盘数据访问效率的方法
US20050066138A1 (en) Multiple storage element command queues
JP4490451B2 (ja) 階層型ストレージ管理システムにおける要求スケジューリング方法、要求スケジューリング装置、及びプログラム
US20070255897A1 (en) Apparatus, system, and method for facilitating physical disk request scheduling
US6640258B2 (en) Method and apparatus for command queue ordering with a sort time reduction algorithm
US6442648B1 (en) Method of and system for the dynamic scheduling of requests to access a storage system
JPH09258907A (ja) 複数の記憶ディスク部を有した高可用性の外部記憶装置
US6799228B2 (en) Input/output control apparatus, input/output control method and information storage system
US9465745B2 (en) Managing access commands by multiple level caching
JP5521610B2 (ja) 入出力制御装置、入出力制御方法
JP5233733B2 (ja) ストレージ装置,ストレージ制御装置およびストレージ制御プログラム
US6567886B1 (en) Disk drive apparatus and control method thereof
US6725348B1 (en) Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
KR20110118296A (ko) 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
US5875453A (en) Apparatus for and method of information processing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040713

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: 20040803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040812

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: 20080820

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080820

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110820

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120820

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130820

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees