JP2001249770A - コマンドキューイングの機能を持つ記憶装置 - Google Patents
コマンドキューイングの機能を持つ記憶装置Info
- Publication number
- JP2001249770A JP2001249770A JP2000067154A JP2000067154A JP2001249770A JP 2001249770 A JP2001249770 A JP 2001249770A JP 2000067154 A JP2000067154 A JP 2000067154A JP 2000067154 A JP2000067154 A JP 2000067154A JP 2001249770 A JP2001249770 A JP 2001249770A
- Authority
- JP
- Japan
- Prior art keywords
- command
- storage device
- function
- time
- commands
- 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.)
- Granted
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
て、リードコマンドのレスポンス最悪値を保証しつつ、
コマンド全体のスループットをあまり低下させない。 【解決手段】沈み込み防止策をリードコマンドにのみ適
用する。リードコマンドとライトコマンドで別に沈み込
み防止策を適用し、リードコマンドをより沈み込みにく
くする。あるコマンドより後から受領したコマンドに追
い越される回数の制限(A、B)を設け、制限回数分の
コマンドに追い越されたら、当該コマンドを優先的に実
行する。各コマンドが受領した時刻を管理し、受領して
から一定時間以上実行されていないコマンドがあった
ら、そのコマンドを優先的に実行する。
Description
る記憶装置に関する。特に、処理の見込み時間等に応じ
てタグキュー上のコマンドの実行順序を変える記憶装置
に関する。
ング及びリオーダリングをサポートしている。コマンド
のキューイングを行うことで、同一または複数のイニシ
エーターから発行された複数のI/O要求を受け付けてキ
ューイングすることができる。また、ハードディスク装
置ではリードライトヘッドのむだな移動時間が最小にな
るようにコマンドの実行順序を並び替える。このコマン
ドキューイング及びリオーダリングについては菅谷誠一
著、CQ出版社、SCSI−2詳細解説の114〜116ページに解
説がある。
装置における実行順最適化方式」松本他、特開平6−259
198号公報(以降、公知例1と呼ぶ)がある。公知例1
では、並び換えキューと待機キューの二つのコマンドキ
ューを持ち、実行するコマンドは並び換えキューから選
択し、新たに入ってくるコマンドは待機キューに入れ、
並び換えキューが空になった時点で並び換えキューと待
機キューを交換するようにすることで、コマンドの沈み
込みを防止する技術が開示されている。
ュ付きのディスクコントローラーにつながったコマンド
キューイングの機能を持つディスクドライブを考える。
ホストコンピューターから発行されたリードコマンド
は、ディスクコントローラーのキャッシュ上に要求デー
タが無い場合、ディスクドライブから要求データ読み出
すまで終了しないため、ディスクドライブのリード処理
はレスポンスが重要である。一方、ホストコンピュータ
ーから発行されたライトコマンドはディスクコントロー
ラーのキャッシュにデータを書き込んで終了報告を行っ
た時点で完了し、キャッシュ上に書き込んだデータをデ
ィスクドライブに書き出す処理のレスポンスは重要では
なく、むしろ1秒間にキャッシュ上のどれだけのデータ
をディスクドライブに書き出せるかというスループット
が重要である。このようにリードとライトでは要求され
るレスポンス・スループットに違いがあるのにもかかわ
らず、レスポンスが要求されないライトコマンドにまで
リードコマンドと同じように沈み込み防止を行ってお
り、全体のスループットを低下させているという問題が
あった。
スを確保しつつ、全体のスループットをあまり低下させ
ない記憶装置を提供することである。
に、沈み込み防止策をリードコマンドにのみ適用する。
コマンドとライトコマンドで別に沈み込み防止策を適用
し、リードコマンドをより沈み込みにくくする。
以下で説明する。
に追い越される回数の制限を設け、制限回数分のコマン
ドに追い越されたら、当該コマンドを優先的に実行す
る。
してから一定時間以上実行されていないコマンドがあっ
たら、そのコマンドを優先的に実行する。
適用するコンピューターシステム1200を示す。コンピュ
ーターシステム1200はI/O要求を発行するホストコンピ
ューター1010、I/O要求を処理する記憶装置システム12
10から構成される。
ける記憶装置コントローラー1000、データを格納してい
る記憶装置1100から構成される。
ンピューター1010とのやりとりを行うホストインターフ
ェース1030、記憶装置1100とのやりとりを行うFCインタ
ーフェース1070、記憶装置コントローラー1000を管理す
るCPU1020、ホストコンピューター1010からのライトデ
ータを一時的に格納するキャッシュ1050、CPU1020が実
行するプログラムやキャッシュ1050の管理データ等を格
納するメモリ1060、ユーザーが記憶装置1100あるいは記
憶装置コントローラー1000に対する各種パラメーターを
入力するサービスボード1040から構成される。
1000とのやりとりを行うFCインターフェース1080、デー
タが格納されているディスク1090、ディスク1090を制御
するディスクコントローラー1110、受領したI/O要求を
解釈しディスクコントローラー1110に指示するCPU112
0、CPU1120が実行するプログラムやデータを格納するメ
モリ1130より構成される。ディスク1090は本実施例では
ハードディスクを想定しているが、MO、CD−RW等でも本
発明を適用可能である。
されているコマンド管理テーブル1500である。コマンド
管理テーブル1500は複数のコマンド管理テーブルエント
リ1510からなる。コマンド管理テーブル1500は記憶装置
1100が受領したI/O要求を管理するテーブルで、I/O1
個につき一つのコマンド管理テーブルエントリ1510が用
意される。
該エントリの有効・無効を表す有効無効フラグ1520、I
/O要求(以下、コマンドと呼ぶ)がリードかライトか
を意味するリードライト種別1530、要求データの格納ア
ドレスを表すLBA1540、要求データの長さを表すサイズ1
550、当該I/O要求がそれより後から来たコマンドに何
回追い越されたかを意味する追い越されカウンター156
0、ディスク1090の現在のヘッド位置から当該コマンド
を処理するのにかかる見込み時間を表す見込み処理時間
1570、後述するタグキュー2060を構成する前方ポインタ
ー1580と後方ポインター1590より構成される。
状態を管理するドライブ管理テーブル2000である。ドラ
イブ管理テーブル2000は、リードコマンドに対して追い
越され回数の限度を規定する制限回数A2010、リードラ
イトコマンド両方に対して追い越され回数の限度を規定
する制限回数B2020、ディスク1090の現在のヘッド位置2
030、後述するタグキュー2060を構成するMRUポインタ20
40とLRUポインタ2050から構成される。ここで、制限回
数A2010は制限回数B2020よりも小さいか、制限回数A201
0のみが有効であるとする。
の概念図である。MRUポインタ2040とLRUポインタ2050が
タグキュー2060の両端であり、コマンド管理テーブルエ
ントリ1510が前方ポインタ1580と後方ポインタ1590で双
方向につながっている。記憶装置1100が受け取ったコマ
ンドはMRU位置につながれ、ディスク1090が実行するコ
マンドはキュー上のすべてのコマンドから条件を考慮し
て一つが選ばれる。MRU位置に近づく方を前、LRU位置に
近づく方を後と定義する。タグキュー2060上のコマンド
から一つ選ぶ処理は本実施例では後述する次コマンド決
定処理4000である。
ラー1000からコマンドを受領したときにCPU1120が実行
するコマンド受領処理3000のフローチャートを示す。ま
ずステップ3010で記憶装置1100はFCインターフェース10
80を通じてコマンドを受領する。次にステップ3020にお
いてCPU1120は受領したコマンドがリードかライト、あ
るいはそれ以外かを判定し、それ以外と判定されたらス
テップ3080にジャンプする。リードかライトと判定され
たらステップ3030において、コマンド管理テーブルエン
トリ1510の有効無効フラグ1520が無効のものを探し、ス
テップ3040で見つけた空きコマンド管理テーブルエント
リ1510の有効無効フラグ1520を有効とし、リードライト
種別1530、LBA1540、サイズ1550を受領したコマンドに
合わせてセットし、追い越されカウンター1560をゼロ
で、見込み処理時間を無効を意味する−1で初期化す
る。そしてステップ3050において、タグキュー2060のMR
U位置に当該エントリを繋ぐ。そしてステップ3060でデ
ィスク1090が何らかのコマンドを実行中であるかどうか
を判定し、実行中であればコマンド受領処理3000は終了
する。実行中でなければステップ3070で当該コマンドの
実行を開始し、コマンド受領処理3000は終了する。
と判定された場合にはステップ3080において、受領した
コマンドが制限回数をセットするコマンドであるかどう
かを判定する。制限回数をセットするコマンドであった
ら、ステップ3090において、制限回数A2010と制限回数B
2020をセットし、コマンド受領処理3000は終了する。制
限回数をセットするコマンドでもなかったら、ステップ
3100でその他のコマンドに対する処理を行い、コマンド
受領処理3000は終了する。その他のコマンドに対する処
理は本発明とは関係がないので説明は省略する。制限回
数をセットするコマンドは、たとえばSCSIのモードセレ
クトコマンドで実現可能である。
ときにCPU1120が実行するコマンド完了処理3500のフロ
ーチャートを示す。まずステップ3510において、ディス
ク1090がコマンドの実行を完了し、それをディスクコン
トローラー1110が検出してCPU1120に報告する。そして
ステップ3520でCPU1120はFCインターフェース1080を経
由して記憶装置コントローラー1000にコマンドの完了報
告を行う。完了報告を受け取った記憶装置コントローラ
ー1000は完了報告のあったコマンドがリードであればホ
ストコンピューター1010に完了報告を行う。そしてステ
ップ3530においてCPU1020は完了報告のあったコマンド
に対応するコマンド管理テーブルエントリ1510をタグキ
ュー2060から抜き、ステップ3540で当該コマンド管理テ
ーブルエントリ1510の有効無効フラグ1520を無効とす
る。次にステップ3550において、未実行のリードコマン
ドかライトコマンドがタグキュー2060上に残っているか
どうかを判定し、残っていなければコマンド完了処理35
00は終了する。まだ残っていれば、ステップ4000におい
て後述する次コマンド決定処理4000を行い、ステップ35
70で決定したコマンドの実行をディスクコントローラー
1110を経由してディスク1090に指示し、コマンド完了処
理3500は終了する。
ャートを示す。まずステップ4010でタグキュー2060のLR
U位置にあるコマンドを選択し、ステップ4020で次実行
候補とし、ステップ4030でそのコマンドの見込み処理時
間を計算し、見込み処理時間1570にセットする。見込み
処理時間の計算は、シーク距離と回転待ち時間、媒体ア
クセス時間より算出するのが望ましいが、本実施例では
簡便にするため、LBA1540とヘッド位置2030の差の絶対
値を見込み処理時間の近似値として用いることにする。
次にステップ4040で、制限回数B2020が有効かつ当該コ
マンドの追い越されカウンター1560が制限回数B2020よ
り大きいかどうかを判定し、大きければ4110にジャンプ
する。大きくなければステップ4050で、制限回数A2010
が有効かつ当該コマンドのリードライト種別1530がリー
ドかつ当該コマンドの追い越されカウンター1560が制限
回数A2010よりも大きいかどうかを判定し、そうであれ
ばステップ4110にジャンプし、そうでなければステップ
4060で当該コマンドの前方ポインタ1580を見てまだコマ
ンドがあるかどうかを判定する。無いと判定されたらス
テップ4120にジャンプし、あると判定されたらステップ
4070で当該コマンドの前方ポインタ1580が示すコマンド
を選択し、これ以降そのコマンドを当該コマンドとす
る。そしてステップ4080で当該コマンドの見込み処理時
間を計算し、見込み処理時間1570にセットし、ステップ
4090で当該コマンドの見込み処理時間1570と次実行候補
コマンドの見込み処理時間1570を比較し、当該コマンド
の見込み処理時間1570の方が小さければ、ステップ4100
で当該コマンドを次実行候補コマンドとしてステップ40
40へジャンプし、小さくなければステップ4100を行わず
にステップ4040にジャンプする。
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、ステップ4140で次実行コマンドの後方
ポインタ1590を辿って、次実行コマンドよりもタグキュ
ー2060のLRU位置に近いコマンドの追い越されカウンタ
ー1560全てに1を加え、次コマンド決定処理4000は終了
する。
20よりも小さい、あるいは、制限回数A2010のみが有効
な場合について考えると、ステップ4050よりリードコマ
ンドはライトコマンドよりも少ない追い越されカウンタ
ー1560の値で次実行コマンドになるため、リードコマン
ドは応答時間の最悪値が軽減される。ただし、制限回数
A2010のみが有効である場合は、ライトコマンドの実行
時間が非常に遅くなる可能性があるため、記憶装置コン
トローラー1000でのタイムアウト値を非常に大きくとる
か、タイムアウトをライトコマンドには適用しないか、
他のコマンドの終了に応じてタイムアウト時間を伸ばす
等の対応を行う必要がある。また、制限回数A2010や制
限回数B2020の値によっては、ライトコマンドだけでは
なく、リードコマンドに対しても同様に、タイムアウト
を適用しないか、他のコマンドの終了に応じてタイムア
ウト時間を伸ばす等の対応を行う必要がある。
制限回数を入力したときに記憶装置コントローラー1000
内のCPU1020で実行される制限回数設定処理4500のフロ
ーチャートである。まずステップ4510でユーザーがサー
ビスボード1040より2種類の制限回数を入力する。そし
てステップ4520でメモリ1060上に制限回数セットコマン
ドを作成する。制限回数セットコマンドは入力された2
種類の制限回数を記憶装置1100に渡すためのコマンド
で、例えばSCSIのモードセレクトコマンドを用いて実現
できる。そしてステップ4530でFCインターフェース1070
を通じて記憶装置1100に制限回数セットコマンドを発行
し、制限回数設定処理4500は終了する。
置コントローラー1000にリードコマンドあるいはライト
コマンドを発行したときに、記憶装置コントローラー10
00上のCPU1020が実行する同期コマンド処理5000のフロ
ーチャートである。まずステップ5010でホストインター
フェース1030を経由してコマンドを受け取る。そしてス
テップ5020で受領したコマンドがリードであるかどうか
を判定し、リードでなければステップ5070にジャンプす
る。リードであればステップ5030でキャッシュ1050上に
要求データがあるかどうかを判定し、あると判定された
らステップ5060にジャンプし、なければステップ5040で
記憶装置1100にリード要求を発行する。そしてステップ
5050で記憶装置1100からのリードデータをキャッシュ10
50上に格納し、ステップ5060でキャッシュ1050上の要求
データをホストインターフェース1030経由でホストコン
ピューター1010に転送し、ステップ5080でホストコンピ
ューター1010に当該コマンドの完了報告を行って、同期
コマンド処理5000は終了する。
場合にはステップ5070で、ホストコンピューター1010か
らのライトデータをホストインターフェース1030経由で
キャッシュ1050上に受け取り、すぐにステップ5090でホ
ストコンピューター1010に対して当該ライトコマンドの
完了報告を行う。そして、ステップ5100で記憶装置1100
に対してキャッシュ1050上の未反映データをライトする
ためにライト要求を記憶装置1100に発行し、ステップ51
10でライトデータを記憶装置1100に転送して同期コマン
ド処理5000は終了する。
トコンピューター1010から発行されるコマンドはリード
・ライトのみと仮定している。
数のリード・ライトコマンドを同時に処理できるよう
に、CPU1020ではマルチタスクのオペレーティングシス
テムが動いていて、同期コマンド処理5000や制限回数設
定処理4500はタスクとして実行されるものとする。
って、リードコマンドはキャッシュ1050上に要求データ
が無い場合には記憶装置1100から要求データがリードさ
れるのを待つ必要があるが、ライトコマンドはキャッシ
ュ1050にデータをライトした時点で完了報告を受け取る
ので、記憶装置1100が実際にデータをディスク1090に書
き込むのを待つ必要はない。そのため、記憶装置1100で
実行されるリードコマンドはスループットと同時に応答
時間の最悪値も重要な性能指標となるが、記憶装置1100
で実行されるライトコマンドはスループットだけを考慮
すればよく、応答時間の最悪値は特に意識する必要が無
いことになる。
ステップ4050があることで、制限回数B2020の値が無効
であるか、制限回数A2010が制限回数B2020よりも小さい
場合には、リードコマンドはライトコマンドよりも少な
い回数ぶん追い越されたら優先的に実行されることにな
るため、リードコマンドの応答時間を保証しつつ、ライ
トはリードほど応答時間の最悪値を制限しないことで、
全体のスループットを確保することができる。
ドの追い越され回数が制限回数A2010あるいは制限回数B
2020を超えたとたんに現在のヘッド位置を考慮せずに優
先実行されてしまうため、追い越され制限のスループッ
トに対する影響が大きかった。
1560の値に応じてそのコマンドが実行されやすいように
することで、追い越されカウンター1560が制限回数A201
0または制限回数B2020を超えにくくし、追い越され制限
のスループットに対する影響を少なくする。
明する。
ーチャートである。本実施例では第1の実施例での次コ
マンド決定処理4000の代わりに次コマンド決定処理A400
1を実行する。
位置にあるコマンドを選択し、ステップ4020で次実行候
補とし、ステップ4160で第1の実施例と同様にして当該
コマンドの見込み処理時間を計算し、補正を加え、見込
み処理時間1570にセットする。補正は当該コマンドがリ
ードであれば、当該コマンドの追い越されカウンター15
60の値を制限回数A2010と制限回数B2020のどちらか小さ
い方の値で割ったものを見込み処理時間にかけることと
し、ライトであれば、当該コマンドの追い越されカウン
ター1560の値を制限回数B2020の値で割ったものを見込
み処理時間にかけることとする。制限回数B2020の値が
無効の場合はライトに対する補正は行わない。これによ
り、追い越されカウンター1560の値が大きくなるほど見
込み処理時間1570の値は実際の処理時間の見込み値より
も小さくなり、当該コマンドが実行される可能性が高く
なる。次にステップ4040で、制限回数B2020が有効かつ
当該コマンドの追い越されカウンター1560が制限回数B2
020より大きいかどうかを判定し、大きければ4110にジ
ャンプする。大きくなければステップ4050で、制限回数
A2010が有効かつ当該コマンドのリードライト種別1530
がリードかつ当該コマンドの追い越されカウンター1560
が制限回数A2010よりも大きいかどうかを判定し、そう
であればステップ4110にジャンプし、そうでなければス
テップ4060で当該コマンドの前方ポインタ1580を見てま
だコマンドがあるかどうかを判定する。無いと判定され
たらステップ4120にジャンプし、あると判定されたらス
テップ4070で当該コマンドの前方ポインタ1580が示すコ
マンドを選択し、これ以降そのコマンドを当該コマンド
とする。そしてステップ4150で当該コマンドの見込み処
理時間を計算し、ステップ4160と同様にして補正を加
え、見込み処理時間1570にセットする。補正は当該コマ
ンドがリードであれば、当該コマンドの追い越されカウ
ンター1560の値を制限回数A2010と制限回数B2020のどち
らか小さい方の値で割ったものをステップ4150で求めた
見込み処理時間にかけることとし、ライトであれば、当
該コマンドの追い越されカウンター1560の値を制限回数
B2020の値で割ったものをステップ4150で求めた見込み
処理時間にかけることとする。これにより、追い越され
カウンター1560の値が大きくなるほど見込み処理時間15
70の値は実際の処理時間の見込み値よりも小さくなり、
当該コマンドが実行される可能性が高くなる。そして、
ステップ4090で当該コマンドの見込み処理時間1570と次
実行候補コマンドの見込み処理時間1570を比較し、当該
コマンドの見込み処理時間1570の方が小さければ、ステ
ップ4100で当該コマンドを次実行候補コマンドとしてス
テップ4040へジャンプし、小さくなければステップ4100
を行わずにステップ4040にジャンプする。
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、ステップ4140で次実行コマンドの後方
ポインタ1590を辿って、次実行コマンドよりもタグキュ
ー2060のLRU位置に近いコマンドの追い越されカウンタ
ー1560全てに1を加え、次コマンド決定処理A4001は終了
する。
施例では後から来たコマンドに追い越される回数を制限
してレスポンスの最悪値を保証していたが、第3の実施
例では、コマンドが実行されずにタグキューに繋がって
いる時間の最大値を指定してレスポンスの最悪値を保証
する。以下、第1の実施例と異なる部分についてのみ説
明する。
システムA1220を示す。コンピューターシステムA1220は
I/O要求を発行するホストコンピューター1010、I/O要
求を処理する記憶装置システムA1230から構成される。
付ける記憶装置コントローラー1000、データを格納して
いる記憶装置A1101から構成される。
ンピューター1010とのやりとりを行うホストインターフ
ェース1030、記憶装置1100とのやりとりを行うFCインタ
ーフェース1070、記憶装置コントローラー1000を管理す
るCPU1020、ホストコンピューター1010からのライトデ
ータを一時的に格納するキャッシュ1050、CPU1020が実
行するプログラムやキャッシュ1050の管理データ等を格
納するメモリ1060、ユーザーが記憶装置1100あるいは記
憶装置コントローラー1000に対する各種パラメーターを
入力するサービスボード1040から構成される。
ー1000とのやりとりを行うFCインターフェース1080、デ
ータが格納されているディスク1090、ディスク1090を制
御するディスクコントローラー1110、受領したI/O要求
を解釈しディスクコントローラー1110に指示するCPU112
0、CPU1120が実行するプログラムやデータを格納するメ
モリ1130、タイマー1140より構成される。ディスク1090
は本実施例ではハードディスクを想定しているが、MO、
CD−RW等でも本発明を適用可能である。
格納されているコマンド管理Aテーブル1501である。コ
マンド管理テーブルA1501は複数のコマンド管理テーブ
ルエントリA1511からなる。コマンド管理テーブルA1501
は記憶装置A1101が受領したI/O要求を管理するテーブ
ルで、I/O1個につき一つのコマンド管理テーブルエン
トリA1511が用意される。
当該エントリの有効・無効を表す有効無効フラグ1520、
I/O要求(以下、コマンドと呼ぶ)がリードかライトか
を意味するリードライト種別1530、要求データの格納ア
ドレスを表すLBA1540、要求データの長さを表すサイズ1
550、当該コマンドの受領時刻1600、ディスク1090の現
在のヘッド位置から当該コマンドを処理するのにかかる
見込み時間を表す見込み処理時間1570、タグキュー2060
を構成する前方ポインター1580と後方ポインター1590よ
り構成される。
0の状態を管理するドライブ管理テーブルA2100である。
ドライブ管理テーブルA2100は、リードコマンドに対し
てタグキュー2060上に存在する時間の限度を規定する制
限時間A2060、リードライトコマンド両方に対してタグ
キュー2060上に存在する時間の限度を規定する制限時間
B2070、ディスク1090の現在のヘッド位置2030、タグキ
ュー2060を構成するMRUポインタ2040とLRUポインタ2050
から構成される。ここで、制限時間A2060は制限時間B20
70よりも小さいか、制限時間A2060のみが有効であると
する。
ーラー1000からコマンドを受領したときにCPU1120が実
行するコマンド受領処理A3200のフローチャートを示
す。まずステップ3010で記憶装置1100はFCインターフェ
ース1080を通じてコマンドを受領する。次にステップ30
20においてCPU1120は受領したコマンドがリードかライ
ト、あるいはそれ以外かを判定し、それ以外と判定され
たらステップ3110にジャンプする。リードかライトと判
定されたらステップ3030において、コマンド管理テーブ
ルエントリA1511の有効無効フラグ1520が無効のものを
探し、ステップ3040で見つけた空きコマンド管理Aテー
ブルエントリ1511の有効無効フラグ1520を有効とし、リ
ードライト種別1530、LBA1540、サイズ1550を受領した
コマンドに合わせてセットし、タイマー1140の値を受領
時刻1600にセットし、見込み処理時間を無効を意味する
−1で初期化する。そしてステップ3050において、タグ
キュー2060のMRU位置に当該エントリを繋ぐ。そしてス
テップ3060でディスク1090が何らかのコマンドを実行中
であるかどうかを判定し、実行中であればコマンド受領
処理A3200は終了する。実行中でなければステップ3070
で当該コマンドの実行を開始し、コマンド受領処理A320
0は終了する。
と判定された場合にはステップ3110において、受領した
コマンドが制限時刻をセットするコマンドであるかどう
かを判定する。制限時刻をセットするコマンドであった
ら、ステップ3120において、制限時刻A2060と制限時刻B
2070をセットし、コマンド受領処理A3200は終了する。
制限時刻をセットするコマンドでもなかったら、ステッ
プ3100でその他のコマンドに対する処理を行い、コマン
ド受領処理A3200は終了する。その他のコマンドに対す
る処理は本発明とは関係がないので説明は省略する。制
限時刻をセットするコマンドは、たとえばSCSIのモード
セレクトコマンドで実現可能である。
ーチャートを示す。まずステップ4010でタグキュー2060
のLRU位置にあるコマンドを選択し、ステップ4020で次
実行候補とし、ステップ4030でそのコマンドの見込み処
理時間を計算し、見込み処理時間1570にセットする。見
込み処理時間の計算は、シーク距離と回転待ち時間、媒
体アクセス時間より算出するのが望ましいが、本実施例
では簡便にするため、LBA1540とヘッド位置2030の差の
絶対値を見込み処理時間の近似値として用いることにす
る。次にステップ4170で、制限時間B2070が有効かつ現
在のタイマー1140の値から当該コマンドの受領時刻1600
を引いた値が制限時刻B2070より大きいかどうかを判定
し、大きければ4110にジャンプする。大きくなければス
テップ4180で、制限時間A2060が有効かつ当該コマンド
のリードライト種別1530がリードかつ現在のタイマー11
40の値から当該コマンドの受領時刻1600を引いた値が制
限時間A2060よりも大きいかどうかを判定し、そうであ
ればステップ4110にジャンプし、そうでなければステッ
プ4060で当該コマンドの前方ポインタ1580を見てまだコ
マンドがあるかどうかを判定する。無いと判定されたら
ステップ4120にジャンプし、あると判定されたらステッ
プ4070で当該コマンドの前方ポインタ1580が示すコマン
ドを選択し、これ以降そのコマンドを当該コマンドとす
る。そしてステップ4080で当該コマンドの見込み処理時
間を計算し、見込み処理時間1570にセットし、ステップ
4090で当該コマンドの見込み処理時間1570と次実行候補
コマンドの見込み処理時間1570を比較し、当該コマンド
の見込み処理時間1570の方が小さければ、ステップ4100
で当該コマンドを次実行候補コマンドとしてステップ41
70へジャンプし、小さくなければステップ4100を行わず
にステップ4170にジャンプする。
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、次コマンド決定処理B4002は終了す
る。
70よりも小さい、あるいは、制限時間A2060のみが有効
な場合について考えると、ステップ4180よりリードコマ
ンドはライトコマンドよりも小さな制限時間で次実行コ
マンドになるため、リードコマンドは応答時間の最悪値
が軽減される。ただし、制限時間A2060のみが有効であ
る場合は、ライトコマンドの実行時間が非常に遅くなる
可能性があるため、記憶装置コントローラー1000でのタ
イムアウト値を非常に大きくとるか、タイムアウトをラ
イトコマンドには適用しないか、他のコマンドの終了に
応じてタイムアウト時間を伸ばす等の対応を行う必要が
ある。また、制限時間A2060や制限時間B2070の値によっ
ては、ライトコマンドだけではなく、リードコマンドに
対しても同様に、タイムアウトを適用しないか、他のコ
マンドの終了に応じてタイムアウト時間を伸ばす等の対
応を行う必要がある。
ら制限時間を入力したときに記憶装置コントローラー10
00内のCPU1020で実行される制限時間設定処理4600のフ
ローチャートである。まずステップ4610でユーザーがサ
ービスボード1040より2種類の制限時間を入力する。そ
してステップ4620でメモリ1060上に制限時間セットコマ
ンドを作成する。制限時間セットコマンドは入力された
2種類の制限時間を記憶装置A1101に渡すためのコマンド
で、例えばSCSIのモードセレクトコマンドを用いて実現
できる。そしてステップ4630でFCインターフェース1070
を通じて記憶装置A1101に制限時間セットコマンドを発
行し、制限時間設定処理4600は終了する。
次コマンド決定処理B4002のステップ4180があること
で、制限時間B2070の値が無効であるか、制限時間A2060
が制限回数B2070よりも小さい場合には、リードコマン
ドはライトコマンドよりもコマンドキュー上にいる時間
が少ない値で優先的に実行されることになり、つまり、
リードコマンドの応答時間の最悪値はライトコマンドに
比べて小さくなることが期待できる。
ドがコマンドキュー上に繋がっている時間が制限時間A2
060あるいは制限時間B2070を超えたとたんに現在のヘッ
ド位置を考慮せずに優先実行されてしまうため、制限時
間のスループットに対する影響が大きかった。
値から受領時刻1600を引いたの値に応じてそのコマンド
が実行されやすいようにすることで、現在のタイマー11
40の値から受領時刻1600を引いたの値が制限時間A2060
または制限時間B2070を超えにくくし、制限時間のスル
ープットに対する影響を少なくする。
明する。
ーチャートである。本実施例では第3の実施例での次コ
マンド決定処理B4002の代わりに次コマンド決定処理C40
03を実行する。
位置にあるコマンドを選択し、ステップ4020で次実行候
補とし、ステップ4200で第3の実施例と同様にして当該
コマンドの見込み処理時間を計算し、補正を加え、見込
み処理時間1570にセットする。補正は当該コマンドがリ
ードであれば、現在のタイマー1140の値から当該コマン
ドの受領時刻1600を引いた値を制限時間A2060と制限時
間B2070のどちらか小さい方の値で割ったものをステッ
プ4190で求めた見込み処理時間にかけることとし、ライ
トであれば、現在のタイマー1140の値から当該コマンド
の受領時刻1600を引いたの値を制限時間B2070の値で割
ったものをステップ4190で求めた見込み処理時間にかけ
ることとする。これにより、現在のタイマー1140の値か
ら当該コマンドの受領時刻1600を引いた値が大きくなる
ほど見込み処理時間1570の値は実際の処理時間の見込み
値よりも小さくなり、当該コマンドが実行される可能性
が高くなる。
効かつ現在のタイマー1140の値から当該コマンドの受領
時刻1600を引いた値が制限時刻B2070より大きいかどう
かを判定し、大きければ4110にジャンプする。大きくな
ければステップ4180で、制限時間A2060が有効かつ当該
コマンドのリードライト種別1530がリードかつ現在のタ
イマー1140の値から当該コマンドの受領時刻1600を引い
た値が制限時間A2060よりも大きいかどうかを判定し、
そうであればステップ4110にジャンプし、そうでなけれ
ばステップ4060で当該コマンドの前方ポインタ1580を見
てまだコマンドがあるかどうかを判定する。無いと判定
されたらステップ4120にジャンプし、あると判定された
らステップ4070で当該コマンドの前方ポインタ1580が示
すコマンドを選択し、これ以降そのコマンドを当該コマ
ンドとする。そしてステップ4190で当該コマンドの見込
み処理時間を計算し、ステップ4200で、求めた見込み処
理時間にステップ4200と同様にして補正を加え、見込み
処理時間1570にセットする。そして、ステップ4090で当
該コマンドの見込み処理時間1570と次実行候補コマンド
の見込み処理時間1570を比較し、当該コマンドの見込み
処理時間1570の方が小さければ、ステップ4100で当該コ
マンドを次実行候補コマンドとしてステップ4170へジャ
ンプし、小さくなければステップ4100を行わずにステッ
プ4170にジャンプする。
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、次コマンド決定処理C4003は終了す
る。
時間の最悪値を保証しつつ、スループットの低下を最小
限に抑えることができる。
す図である。
である。
Aのフローチャートである。
テムAを示す図である。
ルAとそのエントリを示す図である。
ルAを示す図である。
のフローチャートである。
Bのフローチャートである。
フローチャートである。
Cのフローチャートである。
ム、1010…ホストコンピューター、1000…記憶装置コン
トローラー、1040…サービスボード、1100…記憶装置、
1090…ディスク、1120…CPU、1130…メモリ、1110…デ
ィスクコントローラー、1500…コマンド管理テーブル、
1510…コマンド管理テーブルエントリ、1560…追い越さ
れカウンター、2000…ドライブ管理テーブル、2010…制
限回数A、2020…制限回数B、2030…ヘッド位置。
Claims (16)
- 【請求項1】 コマンドキューイングの機能を有し、コ
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 追い越される回数の制限数を二つ以上用意し、リードコ
マンドとライトコマンドで別々の値を適用する機能を有
することを特徴とする記憶装置。 - 【請求項2】 請求項1記載の記憶装置と記憶装置を制
御する記憶装置制御装置からなる記憶装置システムであ
って、前記記憶装置コントローラーから前記記憶装置に
前記追い越される回数の制限数二つまたはそれ以上を設
定することを特徴とする記憶装置システム。 - 【請求項3】 請求項2記載の記憶装置システムであっ
て、ユーザーが前記記憶装置制御装置から前記追い越さ
れる回数の制限数二つまたはそれ以上を入力する機能を
有することを特徴とする記憶装置システム。 - 【請求項4】 コマンドキューイングの機能を有し、コ
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 追い越される回数の制限数をライトコマンドには適用し
ないことを特徴とする記憶装置。 - 【請求項5】 請求項4記載の記憶装置と記憶装置を制
御する記憶装置制御装置からなる記憶装置システムであ
って、前記記憶装置コントローラーから前記記憶装置に
前記追い越される回数の制限数を設定することを特徴と
する記憶装置システム。 - 【請求項6】 請求項5記載の記憶装置システムであっ
て、ユーザーが前記記憶装置制御装置から前記追い越さ
れる回数の制限数を入力する機能を有することを特徴と
する記憶装置システム。 - 【請求項7】 コマンドキューイングの機能を有し、コ
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 次に実行するコマンドを決定するにあたって、コマンド
キュー上の各コマンドの実行にかかる見込み時間を計算
し、当該コマンドよりも後から受領したコマンドに追い
越された回数を元に前記見込み時間を補正し、得られた
値を比較することを特徴とする記憶装置。 - 【請求項8】 請求項7記載の記憶装置と、記憶装置を
制御する記憶装置制御装置からなる記憶装置システム。 - 【請求項9】 コマンドキューイングの機能を有し、コ
マンドを受領した順番で実行しないことがあり、コマン
ドの処理時間を制限する機能を有する記憶装置であっ
て、 コマンドキュー上に繋がっている時間の上限を二つ以上
用意し、リードコマンドとライトコマンドで別々の値を
適用する機能を有することを特徴とする記憶装置。 - 【請求項10】 請求項9記載の記憶装置と記憶装置を
制御する記憶装置制御装置からなる記憶装置システムで
あって、前記記憶装置コントローラーから前記記憶装置
にコマンドの処理時間の上限二つまたはそれ以上を設定
することを特徴とする記憶装置システム。 - 【請求項11】 請求項10記載の記憶装置システムで
あって、ユーザーが前記記憶装置制御装置からコマンド
の処理時間の上限二つまたはそれ以上を入力する機能を
有することを特徴とする記憶装置システム。 - 【請求項12】 コマンドキューイングの機能を有し、
コマンドを受領した順番で実行しないことがあり、コマ
ンドの処理時間を制限する機能を有する記憶装置であっ
て、 コマンドキュー上に繋がっている時間の上限をライトコ
マンドには適用しないことを特徴とする記憶装置。 - 【請求項13】 請求項12記載の記憶装置と記憶装置
を制御する記憶装置制御装置からなる記憶装置システム
であって、前記記憶装置コントローラーから前記記憶装
置にコマンドの処理時間の上限を設定することを特徴と
する記憶装置システム。 - 【請求項14】 請求項13記載の記憶装置システムで
あって、ユーザーが前記記憶装置制御装置からコマンド
の処理時間の上限を入力する機能を有することを特徴と
する記憶装置システム。 - 【請求項15】 コマンドキューイングの機能を有し、
コマンドを受領した順番で実行しないことがあり、コマ
ンドの処理時間を制限する機能を有する記憶装置であっ
て、 次に実行するコマンドを決定するにあたって、コマンド
キュー上の各コマンドの実行にかかる見込み時間を計算
し、当該コマンドがコマンドキュー上に繋がっている時
間を元に前記見込み時間を補正し、得られた値を比較す
ることを特徴とする記憶装置。 - 【請求項16】 請求項15記載の記憶装置と、記憶装
置を制御する記憶装置制御装置からなる記憶装置システ
ム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000067154A JP3793682B2 (ja) | 2000-03-07 | 2000-03-07 | コマンドキューイングの機能を持つ記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000067154A JP3793682B2 (ja) | 2000-03-07 | 2000-03-07 | コマンドキューイングの機能を持つ記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001249770A true JP2001249770A (ja) | 2001-09-14 |
JP3793682B2 JP3793682B2 (ja) | 2006-07-05 |
Family
ID=18586393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000067154A Expired - Fee Related JP3793682B2 (ja) | 2000-03-07 | 2000-03-07 | コマンドキューイングの機能を持つ記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3793682B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009259209A (ja) * | 2008-03-28 | 2009-11-05 | Fujitsu Ltd | データ通信制御装置、データ通信制御方法およびそのためのプログラム |
US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
JP4866464B2 (ja) * | 2007-07-26 | 2012-02-01 | 富士通株式会社 | 記憶部制御装置,記憶部制御システム,記憶部制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US8117491B2 (en) | 2008-07-15 | 2012-02-14 | Hitachi Global Storage Technologies, Netherlands B.V. | Disk-drive device and method for error recovery thereof |
US9069721B2 (en) | 2012-06-29 | 2015-06-30 | Fujitsu Limited | Storage control device, computer-readable recording medium, and method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024034411A (ja) | 2022-08-31 | 2024-03-13 | 株式会社東芝 | 磁気ディスク装置及びコマンド処理方法 |
-
2000
- 2000-03-07 JP JP2000067154A patent/JP3793682B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4866464B2 (ja) * | 2007-07-26 | 2012-02-01 | 富士通株式会社 | 記憶部制御装置,記憶部制御システム,記憶部制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
JP2009259209A (ja) * | 2008-03-28 | 2009-11-05 | Fujitsu Ltd | データ通信制御装置、データ通信制御方法およびそのためのプログラム |
JP4516999B2 (ja) * | 2008-03-28 | 2010-08-04 | 富士通株式会社 | データ通信制御装置、データ通信制御方法およびそのためのプログラム |
US8601182B2 (en) | 2008-03-28 | 2013-12-03 | Fujitsu Limited | Data communication control device |
US8117491B2 (en) | 2008-07-15 | 2012-02-14 | Hitachi Global Storage Technologies, Netherlands B.V. | Disk-drive device and method for error recovery thereof |
US9069721B2 (en) | 2012-06-29 | 2015-06-30 | Fujitsu Limited | Storage control device, computer-readable recording medium, and method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP3793682B2 (ja) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4318914B2 (ja) | ストレージシステム及びその動的負荷管理方法 | |
JP5951582B2 (ja) | 外部キャッシュデバイスでのハイパーバイザのi/oステージング | |
JP4322068B2 (ja) | ストレージシステム及びそのデイスク負荷バランス制御方法 | |
US7856526B2 (en) | Storage apparatus and power-saving control method of storage apparatus | |
US7818309B2 (en) | Method for managing data access requests utilizing storage meta data processing | |
US8386704B2 (en) | Techniques for improving hard disk drive efficiency | |
JP2008015888A (ja) | 負荷分散制御システム及び負荷分散制御方法 | |
JP4824458B2 (ja) | ストレージシステムの消費電力を低減する計算機システム及び方法 | |
JP4176341B2 (ja) | 記憶制御装置 | |
US7818478B2 (en) | Input/Output completion system for a data processing platform | |
US5754887A (en) | System for limiting access of plurality of requests to peripheral bus by halting transmission to particular peripheral devices and resuming transmission after second predetermined time period expiration | |
US11500799B2 (en) | Managing access to a CPU on behalf of a block application and a non-block application | |
JP2001249770A (ja) | コマンドキューイングの機能を持つ記憶装置 | |
JP2001166994A (ja) | 早期データ転送完了を利用してデータ記憶装置性能を改善するデータ記憶装置および方法 | |
JP4373450B2 (ja) | Raid制御装置及びその制御方法 | |
WO2016059715A1 (ja) | 計算機システム | |
KR101564520B1 (ko) | 정보 처리 장치 및 스케줄링 방법 | |
US8006001B2 (en) | Method and apparatus for manipulating direct memory access transfers | |
US5918243A (en) | Computer mechanism for reducing DASD arm contention during parallel processing | |
JP5147296B2 (ja) | 計算機システム、データベース管理方法及びプログラム | |
JP2000099446A (ja) | コマンド発行制御方法および装置 | |
JP4486384B6 (ja) | Db連携プリフェッチシステム | |
JP4486384B2 (ja) | Db連携プリフェッチシステム | |
JPH07114522A (ja) | マルチプロセッサシステム | |
JP2000163317A (ja) | 情報システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060308 |
|
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: 20060328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060410 |
|
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: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |