JP2001249770A - Storage device with command queuing function - Google Patents
Storage device with command queuing functionInfo
- 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
- limit
- 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
(57)【要約】 (修正有)
【課題】コマンドキューイングを行う記憶装置におい
て、リードコマンドのレスポンス最悪値を保証しつつ、
コマンド全体のスループットをあまり低下させない。
【解決手段】沈み込み防止策をリードコマンドにのみ適
用する。リードコマンドとライトコマンドで別に沈み込
み防止策を適用し、リードコマンドをより沈み込みにく
くする。あるコマンドより後から受領したコマンドに追
い越される回数の制限(A、B)を設け、制限回数分の
コマンドに追い越されたら、当該コマンドを優先的に実
行する。各コマンドが受領した時刻を管理し、受領して
から一定時間以上実行されていないコマンドがあった
ら、そのコマンドを優先的に実行する。
(57) [Summary] (with correction) [PROBLEMS] In a storage device that performs command queuing, while guaranteeing the worst value of the response of a read command,
Does not significantly reduce overall command throughput. A submersion prevention measure is applied only to a read command. The sinking prevention measure is separately applied to the read command and the write command to make the read command harder to sink. A limit (A, B) is set for the number of times that a command received after a certain command is overtaken, and when the command is overtaken by the limited number of times, the command is executed with priority. The time at which each command was received is managed, and if there is a command that has not been executed for a certain period of time after being received, that command is executed with priority.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、タグキューを有す
る記憶装置に関する。特に、処理の見込み時間等に応じ
てタグキュー上のコマンドの実行順序を変える記憶装置
に関する。[0001] 1. Field of the Invention [0002] The present invention relates to a storage device having a tag queue. In particular, the present invention relates to a storage device that changes the execution order of commands on a tag queue according to expected processing time and the like.
【0002】[0002]
【従来の技術】SCSI−2の規格ではコマンドのキューイ
ング及びリオーダリングをサポートしている。コマンド
のキューイングを行うことで、同一または複数のイニシ
エーターから発行された複数のI/O要求を受け付けてキ
ューイングすることができる。また、ハードディスク装
置ではリードライトヘッドのむだな移動時間が最小にな
るようにコマンドの実行順序を並び替える。このコマン
ドキューイング及びリオーダリングについては菅谷誠一
著、CQ出版社、SCSI−2詳細解説の114〜116ページに解
説がある。2. Description of the Related Art The SCSI-2 standard supports command queuing and reordering. By performing command queuing, a plurality of I / O requests issued from the same or a plurality of initiators can be received and queued. In the hard disk drive, the command execution order is rearranged so that the useless movement time of the read / write head is minimized. The command queuing and reordering are described on pages 114-116 of Seiichi Sugaya, CQ Publishing Company, SCSI-2 Detailed Description.
【0003】本発明に近い公知例としては、「ディスク
装置における実行順最適化方式」松本他、特開平6−259
198号公報(以降、公知例1と呼ぶ)がある。公知例1
では、並び換えキューと待機キューの二つのコマンドキ
ューを持ち、実行するコマンドは並び換えキューから選
択し、新たに入ってくるコマンドは待機キューに入れ、
並び換えキューが空になった時点で並び換えキューと待
機キューを交換するようにすることで、コマンドの沈み
込みを防止する技術が開示されている。A well-known example close to the present invention is disclosed in "Execution Order Optimization Method in Disk Drive" Matsumoto et al., JP-A-6-259.
No. 198 (hereinafter referred to as known example 1). Known example 1
So, there are two command queues, a rearrangement queue and a standby queue, the command to be executed is selected from the rearrangement queue, the newly entered command is put in the standby queue,
There is disclosed a technique for preventing a command from sinking by exchanging a rearrangement queue and a standby queue when the rearrangement queue becomes empty.
【0004】[0004]
【発明が解決しようとする課題】ライトバックキャッシ
ュ付きのディスクコントローラーにつながったコマンド
キューイングの機能を持つディスクドライブを考える。
ホストコンピューターから発行されたリードコマンド
は、ディスクコントローラーのキャッシュ上に要求デー
タが無い場合、ディスクドライブから要求データ読み出
すまで終了しないため、ディスクドライブのリード処理
はレスポンスが重要である。一方、ホストコンピュータ
ーから発行されたライトコマンドはディスクコントロー
ラーのキャッシュにデータを書き込んで終了報告を行っ
た時点で完了し、キャッシュ上に書き込んだデータをデ
ィスクドライブに書き出す処理のレスポンスは重要では
なく、むしろ1秒間にキャッシュ上のどれだけのデータ
をディスクドライブに書き出せるかというスループット
が重要である。このようにリードとライトでは要求され
るレスポンス・スループットに違いがあるのにもかかわ
らず、レスポンスが要求されないライトコマンドにまで
リードコマンドと同じように沈み込み防止を行ってお
り、全体のスループットを低下させているという問題が
あった。Consider a disk drive having a command queuing function connected to a disk controller with a write-back cache.
When there is no request data in the cache of the disk controller, the read command issued from the host computer does not end until the request data is read from the disk drive, so that the response is important in the read processing of the disk drive. On the other hand, the write command issued from the host computer is completed when writing the data to the disk controller cache and reporting the end, and the response of the process of writing the data written on the cache to the disk drive is not important, rather The throughput of how much data in the cache can be written to the disk drive per second is important. Despite the difference in required response throughput between read and write in this way, sinking is prevented in the same way as read commands even for write commands that do not require a response, lowering overall throughput. There was a problem that it was.
【0005】本発明の目的はリードコマンドのレスポン
スを確保しつつ、全体のスループットをあまり低下させ
ない記憶装置を提供することである。SUMMARY OF THE INVENTION An object of the present invention is to provide a storage device which ensures a response to a read command and does not significantly lower the overall throughput.
【0006】[0006]
【課題を解決するための手段】上記目的を達成するため
に、沈み込み防止策をリードコマンドにのみ適用する。SUMMARY OF THE INVENTION In order to achieve the above object, a measure for preventing sinking is applied only to a read command.
【0007】また、上記目的を達成するために、リード
コマンドとライトコマンドで別に沈み込み防止策を適用
し、リードコマンドをより沈み込みにくくする。In order to achieve the above object, a sinking prevention measure is separately applied to a read command and a write command, so that the read command is harder to sink.
【0008】具体的な沈み込み防止策2種類について、
以下で説明する。[0008] Regarding two types of concrete measures to prevent sinking,
This will be described below.
【0009】あるコマンドより後から受領したコマンド
に追い越される回数の制限を設け、制限回数分のコマン
ドに追い越されたら、当該コマンドを優先的に実行す
る。A limit is set on the number of times a command received after a certain command is overtaken, and if the command is overtaken by the limited number of times, the command is executed with priority.
【0010】各コマンドが受領した時刻を管理し、受領
してから一定時間以上実行されていないコマンドがあっ
たら、そのコマンドを優先的に実行する。[0010] The time when each command is received is managed, and if there is a command that has not been executed for a certain period of time after being received, that command is executed with priority.
【0011】[0011]
【発明の実施の形態】(第1の実施例)図1は本発明を
適用するコンピューターシステム1200を示す。コンピュ
ーターシステム1200はI/O要求を発行するホストコンピ
ューター1010、I/O要求を処理する記憶装置システム12
10から構成される。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS (First Embodiment) FIG. 1 shows a computer system 1200 to which the present invention is applied. The computer system 1200 includes a host computer 1010 for issuing I / O requests, and a storage system 12 for processing I / O requests.
Consists of ten.
【0012】記憶装置システム1210はI/O要求を受け付
ける記憶装置コントローラー1000、データを格納してい
る記憶装置1100から構成される。The storage system 1210 includes a storage controller 1000 for receiving an I / O request and a storage 1100 for storing data.
【0013】記憶装置コントローラー1000は、ホストコ
ンピューター1010とのやりとりを行うホストインターフ
ェース1030、記憶装置1100とのやりとりを行うFCインタ
ーフェース1070、記憶装置コントローラー1000を管理す
るCPU1020、ホストコンピューター1010からのライトデ
ータを一時的に格納するキャッシュ1050、CPU1020が実
行するプログラムやキャッシュ1050の管理データ等を格
納するメモリ1060、ユーザーが記憶装置1100あるいは記
憶装置コントローラー1000に対する各種パラメーターを
入力するサービスボード1040から構成される。The storage controller 1000 includes a host interface 1030 for exchanging with the host computer 1010, an FC interface 1070 for exchanging with the storage 1100, a CPU 1020 for managing the storage controller 1000, and write data from the host computer 1010. It comprises a cache 1050 for temporarily storing, a memory 1060 for storing programs executed by the CPU 1020 and management data of the cache 1050, and a service board 1040 for a user to input various parameters to the storage device 1100 or the storage device controller 1000.
【0014】記憶装置1100は、記憶装置コントローラー
1000とのやりとりを行うFCインターフェース1080、デー
タが格納されているディスク1090、ディスク1090を制御
するディスクコントローラー1110、受領したI/O要求を
解釈しディスクコントローラー1110に指示するCPU112
0、CPU1120が実行するプログラムやデータを格納するメ
モリ1130より構成される。ディスク1090は本実施例では
ハードディスクを想定しているが、MO、CD−RW等でも本
発明を適用可能である。The storage device 1100 is a storage device controller.
FC interface 1080 for communication with 1000, disk 1090 storing data, disk controller 1110 for controlling disk 1090, CPU 112 for interpreting received I / O requests and instructing disk controller 1110
0, comprising a memory 1130 for storing programs and data executed by the CPU 1120. Although the present embodiment assumes a hard disk as the disk 1090, the present invention is also applicable to an MO, a CD-RW, or the like.
【0015】図2は記憶装置1100上のメモリ1130に格納
されているコマンド管理テーブル1500である。コマンド
管理テーブル1500は複数のコマンド管理テーブルエント
リ1510からなる。コマンド管理テーブル1500は記憶装置
1100が受領したI/O要求を管理するテーブルで、I/O1
個につき一つのコマンド管理テーブルエントリ1510が用
意される。FIG. 2 shows a command management table 1500 stored in a memory 1130 on a storage device 1100. The command management table 1500 includes a plurality of command management table entries 1510. Command management table 1500 is a storage device
1100 is a table that manages I / O requests received by I / O1
One command management table entry 1510 is prepared for each.
【0016】コマンド管理テーブルエントリ1510は、当
該エントリの有効・無効を表す有効無効フラグ1520、I
/O要求(以下、コマンドと呼ぶ)がリードかライトか
を意味するリードライト種別1530、要求データの格納ア
ドレスを表すLBA1540、要求データの長さを表すサイズ1
550、当該I/O要求がそれより後から来たコマンドに何
回追い越されたかを意味する追い越されカウンター156
0、ディスク1090の現在のヘッド位置から当該コマンド
を処理するのにかかる見込み時間を表す見込み処理時間
1570、後述するタグキュー2060を構成する前方ポインタ
ー1580と後方ポインター1590より構成される。The command management table entry 1510 includes a valid / invalid flag 1520 indicating validity / invalidity of the entry,
A read / write type 1530 indicating whether an / O request (hereinafter referred to as a command) is a read or a write, an LBA 1540 indicating a storage address of the requested data, and a size 1 indicating the length of the requested data
550, overtaking counter 156 indicating how many times the I / O request has been overtaken by a later command
0, Estimated processing time indicating the estimated time required to process the command from the current head position of the disk 1090
1570, a forward pointer 1580 and a backward pointer 1590 that constitute a tag queue 2060 described later.
【0017】図3は記憶装置1100およびディスク1090の
状態を管理するドライブ管理テーブル2000である。ドラ
イブ管理テーブル2000は、リードコマンドに対して追い
越され回数の限度を規定する制限回数A2010、リードラ
イトコマンド両方に対して追い越され回数の限度を規定
する制限回数B2020、ディスク1090の現在のヘッド位置2
030、後述するタグキュー2060を構成するMRUポインタ20
40とLRUポインタ2050から構成される。ここで、制限回
数A2010は制限回数B2020よりも小さいか、制限回数A201
0のみが有効であるとする。FIG. 3 shows a drive management table 2000 for managing the states of the storage device 1100 and the disk 1090. The drive management table 2000 includes a limit number A2010 that specifies the limit of the number of overtakes for the read command, a limit number B2020 that specifies the limit of the number of overtakes for both the read / write command, and the current head position 2 of the disk 1090.
030, MRU pointer 20 that constitutes a tag queue 2060 described later
40 and an LRU pointer 2050. Here, the limit number A2010 is smaller than the limit number B2020 or the limit number A201.
Assume that only 0 is valid.
【0018】図4は記憶装置1100が持つタグキュー2060
の概念図である。MRUポインタ2040とLRUポインタ2050が
タグキュー2060の両端であり、コマンド管理テーブルエ
ントリ1510が前方ポインタ1580と後方ポインタ1590で双
方向につながっている。記憶装置1100が受け取ったコマ
ンドはMRU位置につながれ、ディスク1090が実行するコ
マンドはキュー上のすべてのコマンドから条件を考慮し
て一つが選ばれる。MRU位置に近づく方を前、LRU位置に
近づく方を後と定義する。タグキュー2060上のコマンド
から一つ選ぶ処理は本実施例では後述する次コマンド決
定処理4000である。FIG. 4 shows a tag queue 2060 of the storage device 1100.
FIG. The MRU pointer 2040 and the LRU pointer 2050 are both ends of the tag queue 2060, and the command management table entry 1510 is bidirectionally connected by a forward pointer 1580 and a backward pointer 1590. The command received by the storage device 1100 is linked to the MRU position, and the command executed by the disk 1090 is selected from all commands on the queue in consideration of conditions. The direction approaching the MRU position is defined as front, and the direction approaching the LRU position is defined as rear. The process of selecting one of the commands on the tag queue 2060 is a next command determination process 4000 described later in this embodiment.
【0019】図5は記憶装置1100が記憶装置コントロー
ラー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は終了する。FIG. 5 shows a flowchart of a command reception process 3000 executed by the CPU 1120 when the storage device 1100 receives a command from the storage device controller 1000. First, in step 3010, the storage device 1100
Receive command through 80. Next, in step 3020, the CPU 1120 determines whether the received command is a read command, a write command, or any other command. If it is determined to be read or write, in step 3030, the validity / invalidity flag 1520 of the command management table entry 1510 is searched for an invalid one, and the validity / invalidity flag 1520 of the empty command management table entry 1510 found in step 3040 is validated. The type 1530, LBA 1540, and size 1550 are set according to the received command, the overtake counter 1560 is set to zero, and the expected processing time is initialized to −1, which means invalid. Then, in step 3050, the MR of the tag queue 2060
Connect the entry to the U position. Then, in a step 3060, it is determined whether or not the disk 1090 is executing any command. If the command is being executed, the command receiving process 3000 ends. If not, the execution of the command is started in step 3070, and the command receiving process 3000 ends.
【0020】ステップ3020でリードでもライトでもない
と判定された場合にはステップ3080において、受領した
コマンドが制限回数をセットするコマンドであるかどう
かを判定する。制限回数をセットするコマンドであった
ら、ステップ3090において、制限回数A2010と制限回数B
2020をセットし、コマンド受領処理3000は終了する。制
限回数をセットするコマンドでもなかったら、ステップ
3100でその他のコマンドに対する処理を行い、コマンド
受領処理3000は終了する。その他のコマンドに対する処
理は本発明とは関係がないので説明は省略する。制限回
数をセットするコマンドは、たとえばSCSIのモードセレ
クトコマンドで実現可能である。If it is determined in step 3020 that the command is neither read nor write, in step 3080, it is determined whether the received command is a command for setting a limited number of times. If the command is to set the limit count, in step 3090, the limit count A2010 and the limit count B
2020 is set, and the command reception processing 3000 ends. If it is not a command to set the limit, step
Processing for other commands is performed in 3100, and the command reception processing 3000 ends. The processing for the other commands is not related to the present invention, and the description is omitted. The command for setting the limited number of times can be realized by, for example, a SCSI mode select command.
【0021】図6はディスク1090でコマンドが終了した
ときに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は終了する。FIG. 6 shows a flowchart of a command completion process 3500 executed by the CPU 1120 when a command is completed on the disk 1090. First, in step 3510, the disk 1090 completes execution of the command, and the disk controller 1110 detects it and reports it to the CPU 1120. Then, in step 3520, the CPU 1120 reports the completion of the command to the storage device controller 1000 via the FC interface 1080. The storage controller 1000 receiving the completion report sends a completion report to the host computer 1010 if the command for which the completion report has been made is a read command. Then, in step 3530, the CPU 1020 removes the command management table entry 1510 corresponding to the command whose completion has been reported from the tag queue 2060, and invalidates the valid / invalid flag 1520 of the command management table entry 1510 in step 3540. Next, in step 3550, it is determined whether an unexecuted read command or write command remains in the tag queue 2060.
00 ends. If it still remains, the next command determination processing 4000 described later is performed in step 4000, and step 35
Execute the command determined in step 70
An instruction is given to the disk 1090 via 1110, and the command completion processing 3500 ends.
【0022】図7は次コマンド決定処理4000のフローチ
ャートを示す。まずステップ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にジャンプする。FIG. 7 shows a flowchart of the next command determination process 4000. First, in step 4010, the LR of the tag queue 2060
The command at the U position is selected, set as the next execution candidate in step 4020, and the expected processing time of the command is calculated in step 4030 and set to the estimated processing time 1570. The expected processing time is preferably calculated from the seek distance, the rotation waiting time, and the medium access time, but in this embodiment, for simplicity, the absolute value of the difference between the LBA 1540 and the head position 2030 is approximated to the expected processing time. I will use it as a value.
Next, in step 4040, it is determined whether or not the limit number B2020 is valid and the overtake counter 1560 of the command is larger than the limit number B2020. If not, in step 4050, the limit count is A2010
Is valid and the read / write type 1530 of the command is read and the command is overtaken, and it is determined whether the counter 1560 is larger than the limit number A2010.If so, the process jumps to step 4110;
In step 4060, it is determined whether there is any more command by looking at the forward pointer 1580 of the command. If it is determined that there is not, jump to step 4120, and if it is determined that there is, step
At 4070, the command indicated by the forward pointer 1580 of the command is selected, and thereafter, the command is set as the command. Then, in step 4080, the estimated processing time of the command is calculated and set to the estimated processing time 1570.
At 4090, the expected processing time 1570 of the command is compared with the expected processing time 1570 of the next execution candidate command, and if the expected processing time 1570 of the command is shorter, step 4100
In step 40 as the next execution candidate command
The process jumps to step 40, and if not smaller, jumps to step 4040 without performing step 4100.
【0023】ステップ4110では当該コマンドを次実行候
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、ステップ4140で次実行コマンドの後方
ポインタ1590を辿って、次実行コマンドよりもタグキュ
ー2060のLRU位置に近いコマンドの追い越されカウンタ
ー1560全てに1を加え、次コマンド決定処理4000は終了
する。In step 4110, the command is set as the next execution candidate command. In step 4120, the next execution candidate command is determined as the next execution command. In step 4130, the value obtained by adding the size 1550 to the head position 2030, the LBA 1540 of the next execution command, , And in step 4140, trace the backward pointer 1590 of the next execution command, add 1 to all overtake counters 1560 of commands closer to the LRU position of the tag queue 2060 than the next execution command, and end the next command determination processing 4000. .
【0024】ここで、制限回数A2010の方が制限回数B20
20よりも小さい、あるいは、制限回数A2010のみが有効
な場合について考えると、ステップ4050よりリードコマ
ンドはライトコマンドよりも少ない追い越されカウンタ
ー1560の値で次実行コマンドになるため、リードコマン
ドは応答時間の最悪値が軽減される。ただし、制限回数
A2010のみが有効である場合は、ライトコマンドの実行
時間が非常に遅くなる可能性があるため、記憶装置コン
トローラー1000でのタイムアウト値を非常に大きくとる
か、タイムアウトをライトコマンドには適用しないか、
他のコマンドの終了に応じてタイムアウト時間を伸ばす
等の対応を行う必要がある。また、制限回数A2010や制
限回数B2020の値によっては、ライトコマンドだけでは
なく、リードコマンドに対しても同様に、タイムアウト
を適用しないか、他のコマンドの終了に応じてタイムア
ウト時間を伸ばす等の対応を行う必要がある。Here, the limit number A2010 is the limit number B20.
Considering the case where the value is less than 20 or only the limit A2010 is valid, the read command is overtaken by less than the write command from step 4050 and becomes the next execution command with the value of the counter 1560. The worst value is reduced. However, the limit count
If only A2010 is valid, the execution time of the write command may be extremely slow.Therefore, take a very large timeout value in the storage controller 1000, do not apply the timeout to the write command,
It is necessary to take measures such as extending the timeout time in response to the termination of another command. In addition, depending on the value of the limit number of times A2010 and the limit number of times B2020, not only the write command but also the read command may not be timed out, or the time-out time may be extended according to the end of another command. Need to do.
【0025】図8はユーザーがサービスボード1040から
制限回数を入力したときに記憶装置コントローラー1000
内のCPU1020で実行される制限回数設定処理4500のフロ
ーチャートである。まずステップ4510でユーザーがサー
ビスボード1040より2種類の制限回数を入力する。そし
てステップ4520でメモリ1060上に制限回数セットコマン
ドを作成する。制限回数セットコマンドは入力された2
種類の制限回数を記憶装置1100に渡すためのコマンド
で、例えばSCSIのモードセレクトコマンドを用いて実現
できる。そしてステップ4530でFCインターフェース1070
を通じて記憶装置1100に制限回数セットコマンドを発行
し、制限回数設定処理4500は終了する。FIG. 8 shows the storage controller 1000 when the user enters a limited number of times from the service board 1040.
37 is a flowchart of a limit number setting process 4500 executed by the CPU 1020 in the server. First, in step 4510, the user inputs two types of limit times from the service board 1040. Then, in step 4520, a limit count setting command is created on the memory 1060. Limit count set command entered 2
This is a command for passing the type limit count to the storage device 1100, and can be realized using, for example, a SCSI mode select command. Then in step 4530 FC interface 1070
A limit count setting command is issued to the storage device 1100 through the process, and the limit count setting process 4500 ends.
【0026】図9はホストコンピューター1010が記憶装
置コントローラー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は終了する。FIG. 9 shows that when the host computer 1010 issues a read command or a write command to the storage controller 1000,
47 is a flowchart of a synchronization command processing 5000 executed by the CPU 1020 on the 00. First, in step 5010, a command is received via the host interface 1030. Then, it is determined whether or not the received command is a read in step 5020, and if not, the process jumps to step 5070. If it is a read, it is determined in step 5030 whether or not the requested data is in the cache 1050. If it is determined that the data is present, the process jumps to step 5060. If not, a read request is issued to the storage device 1100 in step 5040. And step
Cache read data from storage device 1100 in 5050 10
In step 5060, the requested data in the cache 1050 is transferred to the host computer 1010 via the host interface 1030, and in step 5080, the completion of the command is reported to the host computer 1010, and the synchronous command processing 5000 ends. I do.
【0027】ステップ5030でリードでないと判定された
場合にはステップ5070で、ホストコンピューター1010か
らのライトデータをホストインターフェース1030経由で
キャッシュ1050上に受け取り、すぐにステップ5090でホ
ストコンピューター1010に対して当該ライトコマンドの
完了報告を行う。そして、ステップ5100で記憶装置1100
に対してキャッシュ1050上の未反映データをライトする
ためにライト要求を記憶装置1100に発行し、ステップ51
10でライトデータを記憶装置1100に転送して同期コマン
ド処理5000は終了する。If it is determined in step 5030 that the data is not a read, in step 5070, the write data from the host computer 1010 is received on the cache 1050 via the host interface 1030, and immediately in step 5090, the write data is sent to the host computer 1010. Report completion of write command. Then, in step 5100, the storage device 1100
Issue a write request to the storage device 1100 to write unreflected data in the cache 1050 to the
At 10, the write data is transferred to the storage device 1100, and the synchronous command processing 5000 ends.
【0028】ここで、本実施例では簡便化のためにホス
トコンピューター1010から発行されるコマンドはリード
・ライトのみと仮定している。In this embodiment, for simplicity, it is assumed that the commands issued from the host computer 1010 are only read / write.
【0029】ここで、制御装置コントローラー1000が複
数のリード・ライトコマンドを同時に処理できるよう
に、CPU1020ではマルチタスクのオペレーティングシス
テムが動いていて、同期コマンド処理5000や制限回数設
定処理4500はタスクとして実行されるものとする。Here, a multitasking operating system runs on the CPU 1020 so that the controller controller 1000 can simultaneously process a plurality of read / write commands, and the synchronous command processing 5000 and the limit number setting processing 4500 are executed as tasks. Shall be performed.
【0030】以上より、ホストコンピューター1010にと
って、リードコマンドはキャッシュ1050上に要求データ
が無い場合には記憶装置1100から要求データがリードさ
れるのを待つ必要があるが、ライトコマンドはキャッシ
ュ1050にデータをライトした時点で完了報告を受け取る
ので、記憶装置1100が実際にデータをディスク1090に書
き込むのを待つ必要はない。そのため、記憶装置1100で
実行されるリードコマンドはスループットと同時に応答
時間の最悪値も重要な性能指標となるが、記憶装置1100
で実行されるライトコマンドはスループットだけを考慮
すればよく、応答時間の最悪値は特に意識する必要が無
いことになる。As described above, for the host computer 1010, it is necessary to wait for the read command to read the requested data from the storage device 1100 when there is no requested data in the cache 1050. Since the completion report is received at the time of writing, there is no need to wait for the storage device 1100 to actually write data to the disk 1090. Therefore, the read command executed in the storage device 1100 has the worst value of the response time as well as the throughput as an important performance index.
In the write command executed in the above, only the throughput needs to be considered, and the worst value of the response time does not need to be particularly considered.
【0031】これに対して、次コマンド決定処理4000の
ステップ4050があることで、制限回数B2020の値が無効
であるか、制限回数A2010が制限回数B2020よりも小さい
場合には、リードコマンドはライトコマンドよりも少な
い回数ぶん追い越されたら優先的に実行されることにな
るため、リードコマンドの応答時間を保証しつつ、ライ
トはリードほど応答時間の最悪値を制限しないことで、
全体のスループットを確保することができる。On the other hand, the presence of the step 4050 of the next command determination processing 4000 allows the read command to be written if the value of the limit number B2020 is invalid or the limit number A2010 is smaller than the limit number B2020. Since the command is executed preferentially if it is overtaken by fewer times than the command, while guaranteeing the response time of the read command, the write does not limit the worst value of the response time as much as the read,
Overall throughput can be ensured.
【0032】(第2の実施例)第1の実施例ではコマン
ドの追い越され回数が制限回数A2010あるいは制限回数B
2020を超えたとたんに現在のヘッド位置を考慮せずに優
先実行されてしまうため、追い越され制限のスループッ
トに対する影響が大きかった。(Second Embodiment) In the first embodiment, the number of overtaking commands is limited to the limited number of times A2010 or B.
As soon as 2020 is exceeded, priority is given without considering the current head position, so the overtaking limit has a large effect on throughput.
【0033】第2の実施例では、追い越されカウンター
1560の値に応じてそのコマンドが実行されやすいように
することで、追い越されカウンター1560が制限回数A201
0または制限回数B2020を超えにくくし、追い越され制限
のスループットに対する影響を少なくする。In the second embodiment, the overtaking counter
By making the command easy to execute according to the value of 1560, the overtake counter 1560 is set to the limit number of A201
It is difficult to exceed 0 or the limit number B2020, and the influence of the overtaken limit on the throughput is reduced.
【0034】以下、第1の実施例と異なる部分のみを説
明する。Hereinafter, only portions different from the first embodiment will be described.
【0035】図10は次コマンド決定処理A4001のフロ
ーチャートである。本実施例では第1の実施例での次コ
マンド決定処理4000の代わりに次コマンド決定処理A400
1を実行する。FIG. 10 is a flowchart of the next command determination processing A4001. In the present embodiment, the next command determination processing A400 is used instead of the next command determination processing 4000 in the first embodiment.
Execute 1.
【0036】まずステップ4010でタグキュー2060のLRU
位置にあるコマンドを選択し、ステップ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にジャンプする。First, at step 4010, the LRU of the tag queue 2060
The command at the position is selected, and is set as a next execution candidate in step 4020. In step 4160, the expected processing time of the command is calculated and corrected in the same manner as in the first embodiment, and set to the estimated processing time 1570. If the command is a read, the command is overtaken by the counter 15
The value obtained by dividing the value of 60 by the smaller value of the limit number A2010 or the limit number B2020 is applied to the expected processing time, and if it is a write, the value of the overtake counter 1560 of the command is changed to the value of the limit number B2020. Divide the value by the expected processing time. If the value of the limit number of times B2020 is invalid, no correction is made for the light. As a result, as the value of the passing counter 1560 increases, the value of the estimated processing time 1570 becomes smaller than the expected value of the actual processing time, and the possibility that the command is executed increases. Next, in step 4040, the limit number B2020 is valid, and the command is overtaken by the counter 1560.
It judges whether it is larger than 020, and if it is larger, jumps to 4110. If not, limit the number of times in step 4050
A2010 is valid and the read / write type of the command is 1530
Is read and the command is overtaken by counter 1560
Is larger than the limit number A2010, and if so, the process jumps to step 4110. Otherwise, in step 4060, it is determined whether there is any more command by looking at the forward pointer 1580 of the command. If it is determined that there is no command, the process jumps to step 4120. If it is determined that there is, the command indicated by the forward pointer 1580 of the command is selected in step 4070, and the command is set as the command thereafter. Then, in step 4150, the expected processing time of the command is calculated, corrected in the same manner as in step 4160, and set to the estimated processing time 1570. If the command is a read, the value of the overtake counter 1560 of the command is divided by the smaller of the limit count A2010 and the limit count B2020, whichever is smaller, and the result is applied to the estimated processing time obtained in step 4150. If it is a write, the value of the overtake counter 1560 of the command is
The result of dividing by the value of B2020 is applied to the estimated processing time obtained in step 4150. As a result, as the value of the counter 1560 is overtaken, the expected processing time 15
A value of 70 will be less than the expected actual processing time,
The possibility that the command is executed increases. And
In step 4090, the expected processing time 1570 of the command is compared with the expected processing time 1570 of the next execution candidate command. If the expected processing time 1570 of the command is smaller, in step 4100 the command is set as the next execution candidate command in step 4040. Jump to step 4100 if not small
Jump to step 4040 without performing.
【0037】ステップ4110では当該コマンドを次実行候
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、ステップ4140で次実行コマンドの後方
ポインタ1590を辿って、次実行コマンドよりもタグキュ
ー2060のLRU位置に近いコマンドの追い越されカウンタ
ー1560全てに1を加え、次コマンド決定処理A4001は終了
する。In step 4110, the command is set as the next execution candidate command. In step 4120, the next execution candidate command is determined as the next execution command. In step 4130, the value obtained by adding the size 1550 to the head position 2030, the LBA 1540 of the next execution command, , And in step 4140, trace the backward pointer 1590 of the next execution command, add 1 to all of the overtake counters 1560 of commands closer to the LRU position of the tag queue 2060 than the next execution command, and end the next command determination processing A4001. .
【0038】(第3の実施例)第1の実施例、第2の実
施例では後から来たコマンドに追い越される回数を制限
してレスポンスの最悪値を保証していたが、第3の実施
例では、コマンドが実行されずにタグキューに繋がって
いる時間の最大値を指定してレスポンスの最悪値を保証
する。以下、第1の実施例と異なる部分についてのみ説
明する。(Third Embodiment) In the first embodiment and the second embodiment, the worst value of the response is guaranteed by limiting the number of times that a command that has come later is overtaken. In the example, the worst value of the response is assured by specifying the maximum value of the time that the command is connected to the tag queue without being executed. Hereinafter, only the portions different from the first embodiment will be described.
【0039】図11は本発明を適用するコンピューター
システムA1220を示す。コンピューターシステムA1220は
I/O要求を発行するホストコンピューター1010、I/O要
求を処理する記憶装置システムA1230から構成される。FIG. 11 shows a computer system A1220 to which the present invention is applied. Computer system A1220
It comprises a host computer 1010 that issues I / O requests, and a storage system A1230 that processes I / O requests.
【0040】記憶装置システムA1230はI/O要求を受け
付ける記憶装置コントローラー1000、データを格納して
いる記憶装置A1101から構成される。The storage system A1230 comprises a storage controller 1000 for receiving an I / O request and a storage A1101 for storing data.
【0041】記憶装置コントローラー1000は、ホストコ
ンピューター1010とのやりとりを行うホストインターフ
ェース1030、記憶装置1100とのやりとりを行うFCインタ
ーフェース1070、記憶装置コントローラー1000を管理す
るCPU1020、ホストコンピューター1010からのライトデ
ータを一時的に格納するキャッシュ1050、CPU1020が実
行するプログラムやキャッシュ1050の管理データ等を格
納するメモリ1060、ユーザーが記憶装置1100あるいは記
憶装置コントローラー1000に対する各種パラメーターを
入力するサービスボード1040から構成される。The storage controller 1000 includes a host interface 1030 for exchanging with the host computer 1010, an FC interface 1070 for exchanging with the storage 1100, a CPU 1020 for managing the storage controller 1000, and write data from the host computer 1010. It comprises a cache 1050 for temporarily storing, a memory 1060 for storing programs executed by the CPU 1020 and management data of the cache 1050, and a service board 1040 for a user to input various parameters to the storage device 1100 or the storage device controller 1000.
【0042】記憶装置A1101は、記憶装置コントローラ
ー1000とのやりとりを行うFCインターフェース1080、デ
ータが格納されているディスク1090、ディスク1090を制
御するディスクコントローラー1110、受領したI/O要求
を解釈しディスクコントローラー1110に指示するCPU112
0、CPU1120が実行するプログラムやデータを格納するメ
モリ1130、タイマー1140より構成される。ディスク1090
は本実施例ではハードディスクを想定しているが、MO、
CD−RW等でも本発明を適用可能である。The storage device A1101 includes an FC interface 1080 for communicating with the storage device controller 1000, a disk 1090 storing data, a disk controller 1110 for controlling the disk 1090, and a disk controller for interpreting received I / O requests. CPU 112 to instruct 1110
0, a memory 1130 for storing programs and data executed by the CPU 1120, and a timer 1140. Disc 1090
This example assumes a hard disk, but MO,
The present invention can be applied to a CD-RW or the like.
【0043】図12は記憶装置A1101上のメモリ1130に
格納されているコマンド管理Aテーブル1501である。コ
マンド管理テーブルA1501は複数のコマンド管理テーブ
ルエントリA1511からなる。コマンド管理テーブルA1501
は記憶装置A1101が受領したI/O要求を管理するテーブ
ルで、I/O1個につき一つのコマンド管理テーブルエン
トリA1511が用意される。FIG. 12 shows a command management A table 1501 stored in the memory 1130 on the storage device A1101. The command management table A1501 includes a plurality of command management table entries A1511. Command management table A1501
Is a table for managing I / O requests received by the storage device A1101, and one command management table entry A1511 is prepared for each I / O.
【0044】コマンド管理テーブルエントリA1511は、
当該エントリの有効・無効を表す有効無効フラグ1520、
I/O要求(以下、コマンドと呼ぶ)がリードかライトか
を意味するリードライト種別1530、要求データの格納ア
ドレスを表すLBA1540、要求データの長さを表すサイズ1
550、当該コマンドの受領時刻1600、ディスク1090の現
在のヘッド位置から当該コマンドを処理するのにかかる
見込み時間を表す見込み処理時間1570、タグキュー2060
を構成する前方ポインター1580と後方ポインター1590よ
り構成される。The command management table entry A1511 is
Valid / invalid flag 1520 indicating valid / invalid of the entry,
A read / write type 1530 indicating whether an I / O request (hereinafter referred to as a command) is a read or a write, an LBA 1540 indicating a storage address of the requested data, and a size 1 indicating the length of the requested data
550, a reception time 1600 of the command, an expected processing time 1570 indicating an expected time required to process the command from the current head position of the disk 1090, a tag queue 2060.
And a forward pointer 1580 and a backward pointer 1590.
【0045】図13は記憶装置A1101およびディスク109
0の状態を管理するドライブ管理テーブルA2100である。
ドライブ管理テーブルA2100は、リードコマンドに対し
てタグキュー2060上に存在する時間の限度を規定する制
限時間A2060、リードライトコマンド両方に対してタグ
キュー2060上に存在する時間の限度を規定する制限時間
B2070、ディスク1090の現在のヘッド位置2030、タグキ
ュー2060を構成するMRUポインタ2040とLRUポインタ2050
から構成される。ここで、制限時間A2060は制限時間B20
70よりも小さいか、制限時間A2060のみが有効であると
する。FIG. 13 shows the storage device A 1101 and the disk 109.
It is a drive management table A2100 that manages the state of 0.
The drive management table A2100 includes a time limit A2060 that defines a time limit on the tag queue 2060 for a read command, and a time limit that specifies a time limit on the tag queue 2060 for both a read and write command.
B2070, current head position 2030 of disk 1090, MRU pointer 2040 and LRU pointer 2050 that make up tag queue 2060
Consists of Here, the time limit A2060 is the time limit B20
It is assumed that it is smaller than 70 or only the time limit A2060 is valid.
【0046】図14は記憶装置1101が記憶装置コントロ
ーラー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は終了する。FIG. 14 is a flowchart of a command receiving process A3200 executed by the CPU 1120 when the storage device 1101 receives a command from the storage device controller 1000. First, in step 3010, the storage device 1100 receives a command through the FC interface 1080. Then step 30
In 20, the CPU 1120 determines whether the received command is a read command, a write command, or any other command. If it is determined to be read or write, in step 3030, a valid / invalid flag 1520 of the command management table entry A1511 is searched for an invalid one, and the valid / invalid flag 1520 of the empty command management A table entry 1511 found in step 3040 is validated. The write type 1530, LBA 1540, and size 1550 are set in accordance with the received command, the value of the timer 1140 is set to the reception time 1600, and the expected processing time is initialized with −1 meaning invalid. Then, in step 3050, the entry is connected to the MRU position of the tag queue 2060. Then, in a step 3060, it is determined whether or not the disk 1090 is executing any command. If the command is being executed, the command receiving process A3200 ends. Step 3070 if not running
To start execution of the command, and execute command reception processing A320
0 ends.
【0047】ステップ3020でリードでもライトでもない
と判定された場合にはステップ3110において、受領した
コマンドが制限時刻をセットするコマンドであるかどう
かを判定する。制限時刻をセットするコマンドであった
ら、ステップ3120において、制限時刻A2060と制限時刻B
2070をセットし、コマンド受領処理A3200は終了する。
制限時刻をセットするコマンドでもなかったら、ステッ
プ3100でその他のコマンドに対する処理を行い、コマン
ド受領処理A3200は終了する。その他のコマンドに対す
る処理は本発明とは関係がないので説明は省略する。制
限時刻をセットするコマンドは、たとえばSCSIのモード
セレクトコマンドで実現可能である。If it is determined in step 3020 that the command is neither read nor write, in step 3110, it is determined whether the received command is a command for setting a time limit. If the command is to set the time limit, in step 3120, the time limit A2060 and the time limit B
2070 is set, and the command reception processing A3200 ends.
If it is not the command to set the time limit, the process for other commands is performed in step 3100, and the command receiving process A3200 ends. The processing for the other commands is not related to the present invention, and the description is omitted. The command for setting the time limit can be realized by, for example, a SCSI mode select command.
【0048】図15に次コマンド決定処理B4002のフロ
ーチャートを示す。まずステップ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にジャンプする。FIG. 15 shows a flowchart of the next command determination processing B4002. First, in step 4010, the tag queue 2060
Is selected as the next execution candidate in step 4020, the expected processing time of the command is calculated in step 4030, and is set to the expected processing time 1570. The expected processing time is preferably calculated from the seek distance, the rotation waiting time, and the medium access time, but in this embodiment, for simplicity, the absolute value of the difference between the LBA 1540 and the head position 2030 is approximated to the expected processing time. I will use it as a value. Next, in step 4170, the time limit B2070 is valid and the reception time 1600 of the command is determined based on the current value of the timer 1140.
It is determined whether or not the value obtained by subtracting is larger than the time limit B2070. If not, in step 4180, the time limit A2060 is valid, the read / write type 1530 of the command is read, and the current timer 11
It is determined whether the value obtained by subtracting the reception time 1600 of the command from the value of 40 is greater than the time limit A2060, and if so, the process jumps to step 4110; otherwise, the forward pointer 1580 of the command in step 4060 To see if there are any more commands. If it is determined that there is no command, the process jumps to step 4120. If it is determined that there is, the command indicated by the forward pointer 1580 of the command is selected in step 4070, and the command is set as the command thereafter. Then, in step 4080, the estimated processing time of the command is calculated and set to the estimated processing time 1570.
At 4090, the expected processing time 1570 of the command is compared with the expected processing time 1570 of the next execution candidate command, and if the expected processing time 1570 of the command is shorter, step 4100
In step 41 as the next execution candidate command
The process jumps to 70, and if not small, jumps to step 4170 without performing step 4100.
【0049】ステップ4110では当該コマンドを次実行候
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、次コマンド決定処理B4002は終了す
る。In step 4110, the command is set as the next execution candidate command. In step 4120, the next execution candidate command is determined as the next execution command. In step 4130, the value obtained by adding the size 1550 to the head position 2030, the LBA 1540 of the next execution command, And the next command determination processing B4002 ends.
【0050】ここで、制限時間A2060の方が制限時間B20
70よりも小さい、あるいは、制限時間A2060のみが有効
な場合について考えると、ステップ4180よりリードコマ
ンドはライトコマンドよりも小さな制限時間で次実行コ
マンドになるため、リードコマンドは応答時間の最悪値
が軽減される。ただし、制限時間A2060のみが有効であ
る場合は、ライトコマンドの実行時間が非常に遅くなる
可能性があるため、記憶装置コントローラー1000でのタ
イムアウト値を非常に大きくとるか、タイムアウトをラ
イトコマンドには適用しないか、他のコマンドの終了に
応じてタイムアウト時間を伸ばす等の対応を行う必要が
ある。また、制限時間A2060や制限時間B2070の値によっ
ては、ライトコマンドだけではなく、リードコマンドに
対しても同様に、タイムアウトを適用しないか、他のコ
マンドの終了に応じてタイムアウト時間を伸ばす等の対
応を行う必要がある。Here, the time limit A2060 is shorter than the time limit B20.
Considering the case where the time is smaller than 70 or only the time limit A2060 is valid, the read command becomes the next execution command with a time limit shorter than the write command from step 4180, so the worst value of the response time of the read command is reduced Is done. However, if only the time limit A2060 is valid, the execution time of the write command may be extremely slow. It is necessary to take measures such as not applying or extending the timeout time according to the end of another command. In addition, depending on the value of the time limit A2060 or the time limit B2070, not only the write command but also the read command may not be timed out, or the time-out time may be extended according to the end of another command. Need to do.
【0051】図16はユーザーがサービスボード1040か
ら制限時間を入力したときに記憶装置コントローラー10
00内のCPU1020で実行される制限時間設定処理4600のフ
ローチャートである。まずステップ4610でユーザーがサ
ービスボード1040より2種類の制限時間を入力する。そ
してステップ4620でメモリ1060上に制限時間セットコマ
ンドを作成する。制限時間セットコマンドは入力された
2種類の制限時間を記憶装置A1101に渡すためのコマンド
で、例えばSCSIのモードセレクトコマンドを用いて実現
できる。そしてステップ4630でFCインターフェース1070
を通じて記憶装置A1101に制限時間セットコマンドを発
行し、制限時間設定処理4600は終了する。FIG. 16 shows a case where the user inputs a time limit from the service board 1040 and the storage controller 10
40 is a flowchart of a time limit setting process 4600 executed by the CPU 1020 in 00. First, in step 4610, the user inputs two types of time limits from the service board 1040. Then, at step 4620, a time limit set command is created on the memory 1060. Time limit set command entered
This is a command for passing two types of time limits to the storage device A1101, and can be realized using, for example, a SCSI mode select command. And in step 4630 FC interface 1070
Then, a time limit set command is issued to the storage device A 1101 through the command line, and the time limit setting process 4600 ends.
【0052】本実施例でも第1の実施例と同様にして、
次コマンド決定処理B4002のステップ4180があること
で、制限時間B2070の値が無効であるか、制限時間A2060
が制限回数B2070よりも小さい場合には、リードコマン
ドはライトコマンドよりもコマンドキュー上にいる時間
が少ない値で優先的に実行されることになり、つまり、
リードコマンドの応答時間の最悪値はライトコマンドに
比べて小さくなることが期待できる。In this embodiment, similarly to the first embodiment,
Due to the presence of step 4180 of the next command determination processing B4002, the value of the time limit B2070 is invalid or the time limit A2060
Is smaller than the limit number B2070, the read command is executed preferentially with the value that the time in the command queue is shorter than the write command, that is,
The worst value of the response time of the read command can be expected to be smaller than that of the write command.
【0053】(第4の実施例)第3の実施例ではコマン
ドがコマンドキュー上に繋がっている時間が制限時間A2
060あるいは制限時間B2070を超えたとたんに現在のヘッ
ド位置を考慮せずに優先実行されてしまうため、制限時
間のスループットに対する影響が大きかった。(Fourth Embodiment) In the third embodiment, the time during which a command is connected to the command queue is limited to the time limit A2.
As soon as the time exceeds 060 or the time limit B2070, the priority is executed without considering the current head position, so that the effect of the time limit on the throughput is large.
【0054】第4の実施例では、現在のタイマー1140の
値から受領時刻1600を引いたの値に応じてそのコマンド
が実行されやすいようにすることで、現在のタイマー11
40の値から受領時刻1600を引いたの値が制限時間A2060
または制限時間B2070を超えにくくし、制限時間のスル
ープットに対する影響を少なくする。In the fourth embodiment, the command is easily executed in accordance with the value obtained by subtracting the reception time 1600 from the current value of the timer 1140, so that the current timer 11
The value obtained by subtracting the reception time 1600 from the value of 40 is the time limit A 2060
Alternatively, it is difficult to exceed the time limit B2070, and the influence of the time limit on the throughput is reduced.
【0055】以下、第3の実施例と異なる部分のみを説
明する。Hereinafter, only portions different from the third embodiment will be described.
【0056】図17は次コマンド決定処理C4003のフロ
ーチャートである。本実施例では第3の実施例での次コ
マンド決定処理B4002の代わりに次コマンド決定処理C40
03を実行する。FIG. 17 is a flowchart of the next command determination processing C4003. In the present embodiment, the next command determination processing C40 is used instead of the next command determination processing B4002 in the third embodiment.
Execute 03.
【0057】まずステップ4010でタグキュー2060のLRU
位置にあるコマンドを選択し、ステップ4020で次実行候
補とし、ステップ4200で第3の実施例と同様にして当該
コマンドの見込み処理時間を計算し、補正を加え、見込
み処理時間1570にセットする。補正は当該コマンドがリ
ードであれば、現在のタイマー1140の値から当該コマン
ドの受領時刻1600を引いた値を制限時間A2060と制限時
間B2070のどちらか小さい方の値で割ったものをステッ
プ4190で求めた見込み処理時間にかけることとし、ライ
トであれば、現在のタイマー1140の値から当該コマンド
の受領時刻1600を引いたの値を制限時間B2070の値で割
ったものをステップ4190で求めた見込み処理時間にかけ
ることとする。これにより、現在のタイマー1140の値か
ら当該コマンドの受領時刻1600を引いた値が大きくなる
ほど見込み処理時間1570の値は実際の処理時間の見込み
値よりも小さくなり、当該コマンドが実行される可能性
が高くなる。First, at step 4010, the LRU of the tag queue 2060
The command at the position is selected, and is set as the next execution candidate in step 4020. In step 4200, the expected processing time of the command is calculated, corrected, and set to the estimated processing time 1570 in the same manner as in the third embodiment. If the command is a read, the value obtained by subtracting the reception time 1600 of the command from the current value of the timer 1140 and the value obtained by subtracting the time limit A2060 or the time limit B2070, whichever is smaller, is used in step 4190. In the case of a write, the value obtained by subtracting the reception time 1600 of the command from the current value of the timer 1140 is divided by the value of the time limit B2070. Processing time will be spent. Thus, as the value obtained by subtracting the reception time 1600 of the command from the current value of the timer 1140 increases, the value of the expected processing time 1570 becomes smaller than the expected value of the actual processing time, and the command may be executed. Will be higher.
【0058】次にステップ4170で、制限時間B2070が有
効かつ現在のタイマー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にジャンプする。Next, at step 4170, it is determined whether the time limit B2070 is valid and the value obtained by subtracting the reception time 1600 of the command from the current value of the timer 1140 is larger than the time limit B2070. . If not, in step 4180, it is determined whether the time limit A2060 is valid, the read / write type 1530 of the command is read, and the value obtained by subtracting the reception time 1600 of the command from the current value of the timer 1140 is larger than the time limit A2060. Judge,
If so, the process jumps to step 4110; otherwise, in step 4060, it is determined whether there is any more command by looking at the forward pointer 1580 of the command. If it is determined that there is no command, the process jumps to step 4120. If it is determined that there is, the command indicated by the forward pointer 1580 of the command is selected in step 4070, and the command is set as the command thereafter. Then, in step 4190, the expected processing time of the command is calculated, and in step 4200, the obtained estimated processing time is corrected in the same manner as in step 4200, and set to the estimated processing time 1570. Then, in Step 4090, the expected processing time 1570 of the command is compared with the expected processing time 1570 of the next execution candidate command. If the expected processing time 1570 of the command is smaller, the command is set as the next execution candidate command in Step 4100. The process jumps to step 4170, and if not smaller, jumps to step 4170 without performing step 4100.
【0059】ステップ4110では当該コマンドを次実行候
補のコマンドとし、ステップ4120で次実行候補コマンド
を次実行コマンドとして決定し、ステップ4130でヘッド
位置2030に次実行コマンドのLBA1540にサイズ1550を加
えた値を代入し、次コマンド決定処理C4003は終了す
る。In step 4110, the command is set as the next execution candidate command. In step 4120, the next execution candidate command is determined as the next execution command. In step 4130, the value obtained by adding the size 1550 to the head position 2030, the LBA 1540 of the next execution command, And the next command determination process C4003 ends.
【0060】[0060]
【発明の効果】本発明によって、リードコマンドの応答
時間の最悪値を保証しつつ、スループットの低下を最小
限に抑えることができる。According to the present invention, it is possible to minimize the decrease in the throughput while guaranteeing the worst value of the response time of the read command.
【図1】本発明を適用するコンピューターシステムを示
す図である。FIG. 1 is a diagram showing a computer system to which the present invention is applied.
【図2】コマンド管理テーブルとそのエントリを示す図
である。FIG. 2 is a diagram showing a command management table and its entries.
【図3】ドライブ管理テーブルを示す図である。FIG. 3 is a diagram showing a drive management table.
【図4】タグキューのイメージ図である。FIG. 4 is an image diagram of a tag queue.
【図5】コマンド受領処理のフローチャートである。FIG. 5 is a flowchart of a command receiving process.
【図6】コマンド完了処理のフローチャートである。FIG. 6 is a flowchart of a command completion process.
【図7】次コマンド決定処理のフローチャートである。FIG. 7 is a flowchart of a next command determination process.
【図8】制限回数設定処理のフローチャートである。FIG. 8 is a flowchart of a limit number setting process.
【図9】同期コマンド処理のフローチャートである。FIG. 9 is a flowchart of a synchronous command process.
【図10】第2の実施例に対応する次コマンド決定処理
Aのフローチャートである。FIG. 10 shows a next command determination process corresponding to the second embodiment.
6 is a flowchart of A.
【図11】第3の実施例に対応するコンピューターシス
テムAを示す図である。FIG. 11 is a diagram illustrating a computer system A corresponding to the third embodiment.
【図12】第3の実施例に対応するコマンド管理テーブ
ルAとそのエントリを示す図である。FIG. 12 is a diagram showing a command management table A and its entries corresponding to the third embodiment.
【図13】第3の実施例に対応するドライブ管理テーブ
ルAを示す図である。FIG. 13 is a diagram showing a drive management table A corresponding to the third embodiment.
【図14】第3の実施例に対応するコマンド受領処理A
のフローチャートである。FIG. 14 shows a command receiving process A corresponding to the third embodiment.
It is a flowchart of FIG.
【図15】第3の実施例に対応する次コマンド決定処理
Bのフローチャートである。FIG. 15 is a next command determination process corresponding to the third embodiment;
6 is a flowchart of B.
【図16】第3の実施例に対応する制限時間設定処理の
フローチャートである。FIG. 16 is a flowchart of a time limit setting process corresponding to the third embodiment.
【図17】第4の実施例に対応する次コマンド決定処理
Cのフローチャートである。FIG. 17 is a next command determination process corresponding to the fourth embodiment;
It is a flowchart of C.
1200…コンピューターシステム、1210…記憶装置システ
ム、1010…ホストコンピューター、1000…記憶装置コン
トローラー、1040…サービスボード、1100…記憶装置、
1090…ディスク、1120…CPU、1130…メモリ、1110…デ
ィスクコントローラー、1500…コマンド管理テーブル、
1510…コマンド管理テーブルエントリ、1560…追い越さ
れカウンター、2000…ドライブ管理テーブル、2010…制
限回数A、2020…制限回数B、2030…ヘッド位置。1200 computer system, 1210 storage system, 1010 host computer, 1000 storage controller, 1040 service board, 1100 storage,
1090: Disk, 1120: CPU, 1130: Memory, 1110: Disk controller, 1500: Command management table,
1510: Command management table entry, 1560: Overtake counter, 2000: Drive management table, 2010: Limited number A, 2020: Limited number B, 2030: Head position.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ▲高▼田 豊 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 (72)発明者 平川 裕介 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 Fターム(参考) 5B065 BA01 BA03 CA15 CC08 CH15 5D044 BC01 CC04 DE91 HL02 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor ▲ Taka ▼ Yutaka Tadashi 2880 Kozu, Odawara-shi, Kanagawa Prefecture, Hitachi, Ltd.Storage Systems Division (72) Inventor Yusuke Hirakawa 1099 Ozenji, Aso-ku, Kawasaki-shi, Kanagawa, Japan F-term in Hitachi, Ltd. System Development Laboratory (reference) 5B065 BA01 BA03 CA15 CC08 CH15 5D044 BC01 CC04 DE91 HL02
Claims (16)
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 追い越される回数の制限数を二つ以上用意し、リードコ
マンドとライトコマンドで別々の値を適用する機能を有
することを特徴とする記憶装置。Claims 1. A storage device having a command queuing function, which may not execute commands in the order in which they are received, and a function of limiting the number of times that commands are passed, Characterized in that the storage device has a function of preparing two or more of the above-mentioned limits and applying different values for the read command and the write command.
御する記憶装置制御装置からなる記憶装置システムであ
って、前記記憶装置コントローラーから前記記憶装置に
前記追い越される回数の制限数二つまたはそれ以上を設
定することを特徴とする記憶装置システム。2. A storage system comprising: the storage device according to claim 1; and a storage device control device that controls the storage device, wherein the number of overtaking times from the storage device controller to the storage device is two or two. A storage system, wherein the number of the storage devices is set to a value larger than that.
て、ユーザーが前記記憶装置制御装置から前記追い越さ
れる回数の制限数二つまたはそれ以上を入力する機能を
有することを特徴とする記憶装置システム。3. The storage device system according to claim 2, wherein the storage device has a function of inputting a limit number of two or more of the number of times of overtaking from the storage device control device. system.
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 追い越される回数の制限数をライトコマンドには適用し
ないことを特徴とする記憶装置。4. A storage device having a command queuing function and a function of not executing commands in the order in which they are received, and having a function of limiting the number of times of overtaking by a command received later. A storage device characterized in that the limit number is not applied to a write command.
御する記憶装置制御装置からなる記憶装置システムであ
って、前記記憶装置コントローラーから前記記憶装置に
前記追い越される回数の制限数を設定することを特徴と
する記憶装置システム。5. A storage device system comprising the storage device according to claim 4 and a storage device control device for controlling the storage device, wherein a limit number of the number of times that the storage device is overtaken from the storage device controller to the storage device is set. A storage device system, characterized in that:
て、ユーザーが前記記憶装置制御装置から前記追い越さ
れる回数の制限数を入力する機能を有することを特徴と
する記憶装置システム。6. The storage device system according to claim 5, wherein the storage device system has a function of allowing a user to input a limited number of times of overtaking from the storage device control device.
マンドを受領した順番で実行しないことがあり、後から
来たコマンドに追い越される回数を制限する機能を有す
る記憶装置であって、 次に実行するコマンドを決定するにあたって、コマンド
キュー上の各コマンドの実行にかかる見込み時間を計算
し、当該コマンドよりも後から受領したコマンドに追い
越された回数を元に前記見込み時間を補正し、得られた
値を比較することを特徴とする記憶装置。7. A storage device having a command queuing function, a function of not executing commands in the order in which they are received, and a function of limiting the number of times of overtaking by a command received later. In determining the command to be executed, the estimated time required for executing each command on the command queue is calculated, and the estimated time is corrected based on the number of times that a command received later than the command overtakes the command. A storage device for comparing values.
制御する記憶装置制御装置からなる記憶装置システム。8. A storage device system comprising the storage device according to claim 7, and a storage device control device for controlling the storage device.
マンドを受領した順番で実行しないことがあり、コマン
ドの処理時間を制限する機能を有する記憶装置であっ
て、 コマンドキュー上に繋がっている時間の上限を二つ以上
用意し、リードコマンドとライトコマンドで別々の値を
適用する機能を有することを特徴とする記憶装置。9. A storage device having a function of command queuing, which may not execute commands in the order in which they are received, and a function of limiting the processing time of commands. A storage device having a function of preparing two or more upper limits and applying different values for a read command and a write command.
制御する記憶装置制御装置からなる記憶装置システムで
あって、前記記憶装置コントローラーから前記記憶装置
にコマンドの処理時間の上限二つまたはそれ以上を設定
することを特徴とする記憶装置システム。10. A storage device system comprising the storage device according to claim 9 and a storage device control device for controlling the storage device, wherein two or more upper limit times for processing commands from the storage device controller to the storage device. A storage device system comprising the above settings.
あって、ユーザーが前記記憶装置制御装置からコマンド
の処理時間の上限二つまたはそれ以上を入力する機能を
有することを特徴とする記憶装置システム。11. The storage device system according to claim 10, wherein a user has a function of inputting two or more upper limit times of command processing from the storage device control device. .
コマンドを受領した順番で実行しないことがあり、コマ
ンドの処理時間を制限する機能を有する記憶装置であっ
て、 コマンドキュー上に繋がっている時間の上限をライトコ
マンドには適用しないことを特徴とする記憶装置。12. It has a command queuing function,
A storage device having a function of limiting the processing time of a command, which may not be executed in the order in which the commands are received, wherein the upper limit of the time connected on the command queue is not applied to a write command. Storage device.
を制御する記憶装置制御装置からなる記憶装置システム
であって、前記記憶装置コントローラーから前記記憶装
置にコマンドの処理時間の上限を設定することを特徴と
する記憶装置システム。13. A storage system comprising the storage device according to claim 12 and a storage device control device for controlling the storage device, wherein an upper limit of a command processing time is set from the storage device controller to the storage device. A storage device system characterized by the above-mentioned.
あって、ユーザーが前記記憶装置制御装置からコマンド
の処理時間の上限を入力する機能を有することを特徴と
する記憶装置システム。14. The storage device system according to claim 13, further comprising a function of allowing a user to input an upper limit of a command processing time from said storage device control device.
コマンドを受領した順番で実行しないことがあり、コマ
ンドの処理時間を制限する機能を有する記憶装置であっ
て、 次に実行するコマンドを決定するにあたって、コマンド
キュー上の各コマンドの実行にかかる見込み時間を計算
し、当該コマンドがコマンドキュー上に繋がっている時
間を元に前記見込み時間を補正し、得られた値を比較す
ることを特徴とする記憶装置。15. It has a command queuing function,
A storage device having a function to limit the processing time of a command, which may not be executed in the order in which the commands are received. When determining the next command to be executed, an estimated time required to execute each command on a command queue. And calculating the estimated time based on the time during which the command is connected to the command queue, and comparing the obtained values.
置を制御する記憶装置制御装置からなる記憶装置システ
ム。16. A storage system comprising: the storage device according to claim 15; and a storage device control device that controls the storage device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000067154A JP3793682B2 (en) | 2000-03-07 | 2000-03-07 | Storage device with command queuing function |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000067154A JP3793682B2 (en) | 2000-03-07 | 2000-03-07 | Storage device with command queuing function |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001249770A true JP2001249770A (en) | 2001-09-14 |
| JP3793682B2 JP3793682B2 (en) | 2006-07-05 |
Family
ID=18586393
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000067154A Expired - Fee Related JP3793682B2 (en) | 2000-03-07 | 2000-03-07 | Storage device with command queuing function |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3793682B2 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009259209A (en) * | 2008-03-28 | 2009-11-05 | Fujitsu Ltd | Data communication control device, data communication control method and program therefor |
| US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
| JP4866464B2 (en) * | 2007-07-26 | 2012-02-01 | 富士通株式会社 | STORAGE CONTROL DEVICE, STORAGE CONTROL SYSTEM, STORAGE CONTROL PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING THE PROGRAM |
| 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 (en) | 2022-08-31 | 2024-03-13 | 株式会社東芝 | Magnetic disk device and command processing method |
-
2000
- 2000-03-07 JP JP2000067154A patent/JP3793682B2/en not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4866464B2 (en) * | 2007-07-26 | 2012-02-01 | 富士通株式会社 | STORAGE CONTROL DEVICE, STORAGE CONTROL SYSTEM, STORAGE CONTROL PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING THE PROGRAM |
| US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
| JP2009259209A (en) * | 2008-03-28 | 2009-11-05 | Fujitsu Ltd | Data communication control device, data communication control method and program therefor |
| 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 (en) | 2006-07-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4318914B2 (en) | Storage system and dynamic load management method thereof | |
| JP4322068B2 (en) | Storage system and disk load balance control method thereof | |
| JP5951582B2 (en) | Hypervisor I/O staging on external cache device | |
| 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 | |
| US20040205297A1 (en) | Method of cache collision avoidance in the presence of a periodic cache aging algorithm | |
| EP1916594A2 (en) | Hard disk drive and method | |
| JP2003131908A (en) | Storage controller | |
| 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 | |
| JP2014010476A (en) | Storage virtualization device, storage virtualization method and storage virtualization program | |
| US11500799B2 (en) | Managing access to a CPU on behalf of a block application and a non-block application | |
| US12204755B2 (en) | Elastic request handling technique for optimizing workload performance | |
| JP2001249770A (en) | Storage device with command queuing function | |
| 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 | |
| JP5147296B2 (en) | Computer system, database management method and program | |
| JP4373450B2 (en) | RAID control apparatus and control method thereof | |
| US8006001B2 (en) | Method and apparatus for manipulating direct memory access transfers | |
| CN118519584A (en) | Block storage device acceleration system, method, device and storage medium | |
| JP4506292B2 (en) | Cache control method, data processing system, and processing program therefor | |
| WO2016059715A1 (en) | Computer system | |
| JP4486384B6 (en) | DB linkage prefetch system | |
| JP4486384B2 (en) | DB linkage prefetch system | |
| CN116204134A (en) | Cache management method, device, equipment, storage system and storage medium | |
| JPH07114522A (en) | Multiprocessor system |
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 |