JP2000099446A - コマンド発行制御方法および装置 - Google Patents
コマンド発行制御方法および装置Info
- Publication number
- JP2000099446A JP2000099446A JP10265846A JP26584698A JP2000099446A JP 2000099446 A JP2000099446 A JP 2000099446A JP 10265846 A JP10265846 A JP 10265846A JP 26584698 A JP26584698 A JP 26584698A JP 2000099446 A JP2000099446 A JP 2000099446A
- Authority
- JP
- Japan
- Prior art keywords
- command
- issued
- queue
- commands
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
(57)【要約】
【課題】 コマンドキューイングの機能を有する装置が
大量のコマンドを受け取ることを防止する。 【解決手段】 コマンドキューイングの機能を有する装
置に対して発行済みで且つ終了報告を受けていないコマ
ンド数をカウントし、新たなコマンドを発行する時、前
記コマンド数と流入制限数とを比較し、前記コマンド数
が流入制限数より小さいなら前記新たなコマンドを発行
し、前記コマンド数が前記流入制限数より小さくないな
ら前記新たなコマンドを発行しない(ステップ526
0)。 【効果】 コマンドキューイングの機能を有する装置が
大量のビジーを返すオーバーヘッドが発生しないように
できる。よって、該装置は、コマンドに対する本来の処
理に集中できるようになり、処理効率を向上できる。
大量のコマンドを受け取ることを防止する。 【解決手段】 コマンドキューイングの機能を有する装
置に対して発行済みで且つ終了報告を受けていないコマ
ンド数をカウントし、新たなコマンドを発行する時、前
記コマンド数と流入制限数とを比較し、前記コマンド数
が流入制限数より小さいなら前記新たなコマンドを発行
し、前記コマンド数が前記流入制限数より小さくないな
ら前記新たなコマンドを発行しない(ステップ526
0)。 【効果】 コマンドキューイングの機能を有する装置が
大量のビジーを返すオーバーヘッドが発生しないように
できる。よって、該装置は、コマンドに対する本来の処
理に集中できるようになり、処理効率を向上できる。
Description
【0001】
【発明の属する技術分野】本発明は、コマンド発行制御
方法および装置に関し、特に、ホストコンピューターか
らコマンドキューイングの機能を持つディスクサブシス
テムへのI/O要求の流入制御を行なうチャネルプロセ
ッサーに関する。
方法および装置に関し、特に、ホストコンピューターか
らコマンドキューイングの機能を持つディスクサブシス
テムへのI/O要求の流入制御を行なうチャネルプロセ
ッサーに関する。
【0002】
【従来の技術】ファイバーチャネルは、高速なシリアル
インターフェースであり、複数のホストコンピューター
やディスクサブシステムを接続することができる。そし
て、ファイバーチャネルのネットワークに繋がっている
あるディスクサブシステムに対して、複数のホストコン
ピューターからアクセスすることができる。
インターフェースであり、複数のホストコンピューター
やディスクサブシステムを接続することができる。そし
て、ファイバーチャネルのネットワークに繋がっている
あるディスクサブシステムに対して、複数のホストコン
ピューターからアクセスすることができる。
【0003】ファイバーチャネルについては、日経エレ
クトロニクス1994年7月4日号(No.612)の126〜142ペー
ジに解説がある。
クトロニクス1994年7月4日号(No.612)の126〜142ペー
ジに解説がある。
【0004】コマンドキューイングの機能はSCSI−
2などでサポートされる。SCSI−2の規格では、コ
マンドキューイングの機能を利用することにより、一つ
のコマンドの実行が終了するのを待たずに、同一のイニ
シエーター(コマンドを出す側)から同一のターゲット
(コマンドを受ける側)に対して複数個のコマンドを発
行することが出来る。ターゲットは、受け取った複数の
コマンドをキュー(待ち行列)に入れ、実行しやすいよ
うにコマンドの順番を入れ替えたりする。
2などでサポートされる。SCSI−2の規格では、コ
マンドキューイングの機能を利用することにより、一つ
のコマンドの実行が終了するのを待たずに、同一のイニ
シエーター(コマンドを出す側)から同一のターゲット
(コマンドを受ける側)に対して複数個のコマンドを発
行することが出来る。ターゲットは、受け取った複数の
コマンドをキュー(待ち行列)に入れ、実行しやすいよ
うにコマンドの順番を入れ替えたりする。
【0005】コマンドキューイングの機能については、
菅谷誠一著、CQ出版社、SCSI−2詳細解説の26ペ
ージ、71〜72ページに解説が載っている。
菅谷誠一著、CQ出版社、SCSI−2詳細解説の26ペ
ージ、71〜72ページに解説が載っている。
【0006】
【発明が解決しようとする課題】コマンドキューイング
の機能を持つディスクサブシステムにホストコンピュー
ターが大量のI/O要求を発行した場合を考える。ディ
スクサブシステムは、コマンドキューが溢れる前はI/
O要求を受け付けてコマンドキューにキューイングする
が、コマンドキューが溢れると、それ以降のI/O要求
に対してビジーを返す。ところが、ホストコンピュータ
ーは、ビジーが返ったコマンドのリトライを続けたり、
新たなコマンドを出し続けたりする。このため、ディス
クサブシステムは、ビジーを返す処理を頻繁に行わなけ
ればならず、リードやライトなどのI/O要求に対する
本来の処理に集中できなくなり、効率が低下する問題点
がある。そこで、本発明の目的は、コマンドキューイン
グの機能を有する装置に対して処理能力を越えるコマン
ドを発行することを防止し、該装置が大量のビジーを返
すオーバーヘッドが発生しないように制御するコマンド
発行制御方法および装置を提供することにある。
の機能を持つディスクサブシステムにホストコンピュー
ターが大量のI/O要求を発行した場合を考える。ディ
スクサブシステムは、コマンドキューが溢れる前はI/
O要求を受け付けてコマンドキューにキューイングする
が、コマンドキューが溢れると、それ以降のI/O要求
に対してビジーを返す。ところが、ホストコンピュータ
ーは、ビジーが返ったコマンドのリトライを続けたり、
新たなコマンドを出し続けたりする。このため、ディス
クサブシステムは、ビジーを返す処理を頻繁に行わなけ
ればならず、リードやライトなどのI/O要求に対する
本来の処理に集中できなくなり、効率が低下する問題点
がある。そこで、本発明の目的は、コマンドキューイン
グの機能を有する装置に対して処理能力を越えるコマン
ドを発行することを防止し、該装置が大量のビジーを返
すオーバーヘッドが発生しないように制御するコマンド
発行制御方法および装置を提供することにある。
【0007】
【課題を解決するための手段】第1の観点では、本発明
は、コマンドキューイングの機能を有する装置に対して
発行済みで且つ終了報告を受けていないコマンド数をカ
ウントし、前記装置へ新たなコマンドを発行する時、前
記コマンド数が所定の流入制限数より小さいなら前記新
たなコマンドを発行し、前記コマンド数が前記流入制限
数より小さくないなら前記新たなコマンドを発行しない
ことを特徴とするコマンド発行制御方法を提供する。上
記第1の観点によるコマンド発行制御方法では、所定の
流入制限数を定めておき、コマンドキューイングの機能
を有する装置に対して発行済みで且つ終了報告を受けて
いないコマンド数が前記流入制限数を越えないように制
御する。よって、コマンドキューイングの機能を有する
装置と該装置へコマンドを発行する全ての装置の処理能
力とを勘案して前記流入制限数を定めておけば、コマン
ドキューイングの機能を有する装置がビジーを返すオー
バーヘッドが発生しないように制御できる。これによ
り、コマンドキューイングの機能を有する装置が本来の
処理に集中できるようになり、効率を向上できる。
は、コマンドキューイングの機能を有する装置に対して
発行済みで且つ終了報告を受けていないコマンド数をカ
ウントし、前記装置へ新たなコマンドを発行する時、前
記コマンド数が所定の流入制限数より小さいなら前記新
たなコマンドを発行し、前記コマンド数が前記流入制限
数より小さくないなら前記新たなコマンドを発行しない
ことを特徴とするコマンド発行制御方法を提供する。上
記第1の観点によるコマンド発行制御方法では、所定の
流入制限数を定めておき、コマンドキューイングの機能
を有する装置に対して発行済みで且つ終了報告を受けて
いないコマンド数が前記流入制限数を越えないように制
御する。よって、コマンドキューイングの機能を有する
装置と該装置へコマンドを発行する全ての装置の処理能
力とを勘案して前記流入制限数を定めておけば、コマン
ドキューイングの機能を有する装置がビジーを返すオー
バーヘッドが発生しないように制御できる。これによ
り、コマンドキューイングの機能を有する装置が本来の
処理に集中できるようになり、効率を向上できる。
【0008】第2の観点では、本発明は、上記構成のコ
マンドキューイングの機能を有する装置に対して発行済
みで且つ終了報告を受けていないコマンド数をカウント
する発行済みカウンター手段と、前記装置へ新たなコマ
ンドを発行する時に前記コマンド数が所定の流入制限数
より小さいなら前記新たなコマンドを発行し前記コマン
ド数が所定の流入制限数より小さくないなら前記新たな
コマンドを発行しないコマンド発行処理手段とを具備し
たことを特徴とするコマンド発行制御装置を提供する。
上記第2の観点によるコマンド発行制御装置では、前記
第1の観点によるコマンド発行制御方法を好適に実施で
きる。
マンドキューイングの機能を有する装置に対して発行済
みで且つ終了報告を受けていないコマンド数をカウント
する発行済みカウンター手段と、前記装置へ新たなコマ
ンドを発行する時に前記コマンド数が所定の流入制限数
より小さいなら前記新たなコマンドを発行し前記コマン
ド数が所定の流入制限数より小さくないなら前記新たな
コマンドを発行しないコマンド発行処理手段とを具備し
たことを特徴とするコマンド発行制御装置を提供する。
上記第2の観点によるコマンド発行制御装置では、前記
第1の観点によるコマンド発行制御方法を好適に実施で
きる。
【0009】第3の観点では、本発明は、上記構成のコ
マンド発行制御装置において、前記コマンド発行処理手
段は、所定のタイミングで、コマンドキューイングの機
能を有する装置に対して前記流入制限数に制限されずに
コマンドを発行し続け、該装置からビジーが返された時
の前記コマンド数により前記流入制限数を更新すること
を特徴とするコマンド発行制御装置を提供する。上記第
3の観点によるコマンド発行制御装置では、流入制限数
を動的に変更するから、状況に応じて、コマンドキュー
イングの機能を有する装置がコマンドをキューイングで
きる数ぎりぎりまで利用可能とできる。
マンド発行制御装置において、前記コマンド発行処理手
段は、所定のタイミングで、コマンドキューイングの機
能を有する装置に対して前記流入制限数に制限されずに
コマンドを発行し続け、該装置からビジーが返された時
の前記コマンド数により前記流入制限数を更新すること
を特徴とするコマンド発行制御装置を提供する。上記第
3の観点によるコマンド発行制御装置では、流入制限数
を動的に変更するから、状況に応じて、コマンドキュー
イングの機能を有する装置がコマンドをキューイングで
きる数ぎりぎりまで利用可能とできる。
【0010】第4の観点では、本発明は、上記構成のコ
マンド発行制御装置において、前記所定のタイミングと
は、発行済の累積コマンド数が所定個増える毎である
か、又は、所定時間経過毎であることを特徴とするコマ
ンド発行制御装置を提供する。上記第4の観点によるコ
マンド発行制御装置では、累積コマンド数または経過時
間により流入制限数を動的に変更するから、状況に応じ
て、コマンドキューイングの機能を有する装置がコマン
ドをキューイングできる数ぎりぎりまで利用可能とでき
る。
マンド発行制御装置において、前記所定のタイミングと
は、発行済の累積コマンド数が所定個増える毎である
か、又は、所定時間経過毎であることを特徴とするコマ
ンド発行制御装置を提供する。上記第4の観点によるコ
マンド発行制御装置では、累積コマンド数または経過時
間により流入制限数を動的に変更するから、状況に応じ
て、コマンドキューイングの機能を有する装置がコマン
ドをキューイングできる数ぎりぎりまで利用可能とでき
る。
【0011】第5の観点では、本発明は、上記構成のコ
マンド発行制御装置において、前記コマンドキューイン
グの機能を有する装置とはディスクサブシステムであ
り、前記コマンド発行制御装置とはホストコンピュータ
ーと前記ディスクサブシステムの間に設置されるチャネ
ルプロセッサーであることを特徴とするコマンド発行制
御装置を提供する。上記第5の観点によるコマンド発行
制御装置では、コマンドキューイングの機能を有するデ
ィスクサブシステムがビジーを返すオーバーヘッドが発
生しないように制御できるから、ディスクサブシステム
がリードやライトなどの本来の処理に集中できるように
なり、処理効率を向上できる。
マンド発行制御装置において、前記コマンドキューイン
グの機能を有する装置とはディスクサブシステムであ
り、前記コマンド発行制御装置とはホストコンピュータ
ーと前記ディスクサブシステムの間に設置されるチャネ
ルプロセッサーであることを特徴とするコマンド発行制
御装置を提供する。上記第5の観点によるコマンド発行
制御装置では、コマンドキューイングの機能を有するデ
ィスクサブシステムがビジーを返すオーバーヘッドが発
生しないように制御できるから、ディスクサブシステム
がリードやライトなどの本来の処理に集中できるように
なり、処理効率を向上できる。
【0012】
【発明の実施の形態】以下、図を参照して本発明の実施
の形態を説明する。なお、これにより本発明が限定され
るものではない。
の形態を説明する。なお、これにより本発明が限定され
るものではない。
【0013】−第1の実施形態− 図1は、本発明の第1の実施形態のチャネルプロセッサ
ーを含むコンピューターシステムの構成図である。この
コンピューターシステム1000は、複数のホストコン
ピューター1020、複数のチャネルプロセッサー10
30、ネットワーク1060及び複数のディスクサブシ
ステム1040より構成されている。各ホストコンピュ
ーター1020は、それぞれ対応するチャネルプロセッ
サー1030を通じてネットワーク1060に繋がれ、
ネットワーク1060に繋がっている各ディスクサブシ
ステム1040に対してI/O要求を発行することがで
きる。各ディスクサブシステム1040は、コマンドキ
ューイングの機能をサポートしており、複数のI/O要
求を受け付けてキューイングしておくことが出来る。
ーを含むコンピューターシステムの構成図である。この
コンピューターシステム1000は、複数のホストコン
ピューター1020、複数のチャネルプロセッサー10
30、ネットワーク1060及び複数のディスクサブシ
ステム1040より構成されている。各ホストコンピュ
ーター1020は、それぞれ対応するチャネルプロセッ
サー1030を通じてネットワーク1060に繋がれ、
ネットワーク1060に繋がっている各ディスクサブシ
ステム1040に対してI/O要求を発行することがで
きる。各ディスクサブシステム1040は、コマンドキ
ューイングの機能をサポートしており、複数のI/O要
求を受け付けてキューイングしておくことが出来る。
【0014】図2は、ホストコンピューター1020の
ソフトウエア抽象モデルである。ホストコンピューター
1020では、オペレーティングシステム1220が走
り、そのオペレーティングシステム1220上で複数の
アプリケーションプログラム1200が動いている。オ
ペレーティングシステム1220は、アプリケーション
プログラム1200あるいはオペレーティングシステム
1220の内部から発生したI/O要求をチャネルプロ
セッサー1030に送る。
ソフトウエア抽象モデルである。ホストコンピューター
1020では、オペレーティングシステム1220が走
り、そのオペレーティングシステム1220上で複数の
アプリケーションプログラム1200が動いている。オ
ペレーティングシステム1220は、アプリケーション
プログラム1200あるいはオペレーティングシステム
1220の内部から発生したI/O要求をチャネルプロ
セッサー1030に送る。
【0015】図3は、チャネルプロセッサー1030の
ソフトウエア抽象モデルである。チャネルプロセッサー
1030では、チャネルプロセッサー1030を管理す
るマイクロプログラム1035が実行される。I/Oキ
ュー1240は、マイクロプログラム1035が管理す
る双方向キューであり、コンピューターシステム100
0内の各ディスクサブシステム1040ごとに作成され
る。マイクロプログラム1035は、ホストコンピュー
ター1020から受け取ったI/O要求を、該I/O要
求に対応するディスクサブシステム1040のI/Oキ
ュー1240の末尾に繋ぎ、該ディスクサブシステム1
040が処理しきれる分だけ、該ディスクサブシステム
1040に発行する。
ソフトウエア抽象モデルである。チャネルプロセッサー
1030では、チャネルプロセッサー1030を管理す
るマイクロプログラム1035が実行される。I/Oキ
ュー1240は、マイクロプログラム1035が管理す
る双方向キューであり、コンピューターシステム100
0内の各ディスクサブシステム1040ごとに作成され
る。マイクロプログラム1035は、ホストコンピュー
ター1020から受け取ったI/O要求を、該I/O要
求に対応するディスクサブシステム1040のI/Oキ
ュー1240の末尾に繋ぎ、該ディスクサブシステム1
040が処理しきれる分だけ、該ディスクサブシステム
1040に発行する。
【0016】I/Oキュー1240の実体は、図4の
(a)に示すディスク管理テーブル1400及び図4の
(b)に示すホストI/O管理テーブル1600であ
る。
(a)に示すディスク管理テーブル1400及び図4の
(b)に示すホストI/O管理テーブル1600であ
る。
【0017】図4の(a)は、ディスク管理テーブル1
400の構成図である。ディスク管理テーブル1400
は、コンピューターシステム1000内の各ディスクサ
ブシステム1040の数だけ存在し、ディスクサブシス
テム1040と一対一対応する。前記ディスク管理テー
ブル1400は、流入制限数1420,発行済みカウン
ター1440,I/Oキュー先頭ポインタ1460およ
びI/Oキュー末尾ポインタ1480の各エントリから
なる。流入制限数1420は、対応するディスクサブシ
ステム1040に対して終了報告を待たずにチャネルプ
ロセッサー1030が発行できるI/O要求の数であ
る。発行済みカウンター1440は、対応するディスク
サブシステム1040に発行していて、終了報告を受け
取っていないI/O要求数である。I/Oキュー先頭ポ
インタ1460は、I/Oキュー1240の先頭位置の
I/O要求(に相当するホストI/O管理テーブルエン
トリ1620)を指すポインタである。I/Oキュー末
尾ポインタ1480は、I/Oキュー1240の末尾位
置のI/O要求(に相当するホストI/O管理テーブル
エントリ1620)を指すポインタである。
400の構成図である。ディスク管理テーブル1400
は、コンピューターシステム1000内の各ディスクサ
ブシステム1040の数だけ存在し、ディスクサブシス
テム1040と一対一対応する。前記ディスク管理テー
ブル1400は、流入制限数1420,発行済みカウン
ター1440,I/Oキュー先頭ポインタ1460およ
びI/Oキュー末尾ポインタ1480の各エントリから
なる。流入制限数1420は、対応するディスクサブシ
ステム1040に対して終了報告を待たずにチャネルプ
ロセッサー1030が発行できるI/O要求の数であ
る。発行済みカウンター1440は、対応するディスク
サブシステム1040に発行していて、終了報告を受け
取っていないI/O要求数である。I/Oキュー先頭ポ
インタ1460は、I/Oキュー1240の先頭位置の
I/O要求(に相当するホストI/O管理テーブルエン
トリ1620)を指すポインタである。I/Oキュー末
尾ポインタ1480は、I/Oキュー1240の末尾位
置のI/O要求(に相当するホストI/O管理テーブル
エントリ1620)を指すポインタである。
【0018】図4の(b)は、ホストI/O管理テーブ
ル1600の構成図である。ホストI/O管理テーブル
1600は、十分に多数のホストI/O管理テーブルエ
ントリ1620からなる。前記ホストI/O管理テーブ
ルエントリ1620は、当該エントリが有効かどうかを
示すエントリ有効フラグ1640,I/O要求の種類を
表すコマンド1660,I/O要求の操作対象のディス
クサブシステムID1680,I/O要求の操作対象の
ディスクサブシステム1040内の操作対象アドレスで
ある操作アドレス1700,I/O要求でリードあるい
はライトするデータを格納するバッファへのポインタで
あるバッファポインタ1720,I/Oキュー1240
の先頭側に繋がるI/O要求(に相当するホストI/O
管理テーブルエントリ1620)を指す前方ポインタ1
740およびI/Oキュー1240の末尾側に繋がるI
/O要求(に相当するホストI/O管理テーブルエント
リ1620)を指す後方ポインタ1760からなる。
ル1600の構成図である。ホストI/O管理テーブル
1600は、十分に多数のホストI/O管理テーブルエ
ントリ1620からなる。前記ホストI/O管理テーブ
ルエントリ1620は、当該エントリが有効かどうかを
示すエントリ有効フラグ1640,I/O要求の種類を
表すコマンド1660,I/O要求の操作対象のディス
クサブシステムID1680,I/O要求の操作対象の
ディスクサブシステム1040内の操作対象アドレスで
ある操作アドレス1700,I/O要求でリードあるい
はライトするデータを格納するバッファへのポインタで
あるバッファポインタ1720,I/Oキュー1240
の先頭側に繋がるI/O要求(に相当するホストI/O
管理テーブルエントリ1620)を指す前方ポインタ1
740およびI/Oキュー1240の末尾側に繋がるI
/O要求(に相当するホストI/O管理テーブルエント
リ1620)を指す後方ポインタ1760からなる。
【0019】図5は、チャネルプロセッサー1030が
流入制限数を初期設定する初期流入制限数決定処理40
00のフローチャートである。この初期流入制限数決定
処理4000は、チャネルプロセッサー1030の初期
化時に、ネットワーク1060に繋がっている各ディス
クサブシステム1040に対して一度ずつ実行される。
ステップ5000では、処理対象のディスクサブシステ
ム1040が終了報告を返さないで受け付けることが出
来る最大I/O要求数(以後、コマンドキュー長と呼
ぶ)をネットワーク1060に繋がっているホストコン
ピューター1020の数(=チャネルプロセッサー10
30の数)で割り、その値が“1”より大きいか否かを
判定し、“1”より大きければステップ5020へ進
み、そうでなければステップ5040へ進む。ステップ
5020では、処理対象のディスクサブシステム104
0に対応するディスク管理テーブル1400の流入制限
数1420に、コマンドキュー長をネットワーク106
0に繋がっているホストコンピューター1020の数で
割った値(小数点以下切り捨て)を設定する。そして、
初期流入制限数決定処理4000を終了する。ステップ
5040では、処理対象のディスクサブシステム104
0に対応するディスク管理テーブル1400の流入制限
数1420に“1”を設定する。そして、初期流入制限
数決定処理4000を終了する。
流入制限数を初期設定する初期流入制限数決定処理40
00のフローチャートである。この初期流入制限数決定
処理4000は、チャネルプロセッサー1030の初期
化時に、ネットワーク1060に繋がっている各ディス
クサブシステム1040に対して一度ずつ実行される。
ステップ5000では、処理対象のディスクサブシステ
ム1040が終了報告を返さないで受け付けることが出
来る最大I/O要求数(以後、コマンドキュー長と呼
ぶ)をネットワーク1060に繋がっているホストコン
ピューター1020の数(=チャネルプロセッサー10
30の数)で割り、その値が“1”より大きいか否かを
判定し、“1”より大きければステップ5020へ進
み、そうでなければステップ5040へ進む。ステップ
5020では、処理対象のディスクサブシステム104
0に対応するディスク管理テーブル1400の流入制限
数1420に、コマンドキュー長をネットワーク106
0に繋がっているホストコンピューター1020の数で
割った値(小数点以下切り捨て)を設定する。そして、
初期流入制限数決定処理4000を終了する。ステップ
5040では、処理対象のディスクサブシステム104
0に対応するディスク管理テーブル1400の流入制限
数1420に“1”を設定する。そして、初期流入制限
数決定処理4000を終了する。
【0020】図6は、チャネルプロセッサー1030が
受け取ったI/O要求をI/Oキュー1240に接続す
るI/Oキュー接続処理4300のフローチャートであ
る。このI/Oキュー接続処理4300は、ホストコン
ピューター1020からのI/O要求をチャネルプロセ
ッサー1030が受け取った時に実行される。ステップ
6400では、ホストI/O管理テーブル1600をサ
ーチし、エントリ有効フラグ1640の値が“無効”と
なっているホストI/O管理テーブルエントリ1620
すなわち空きエントリを見つける。見つけた空きエント
リを、以後、対象エントリ1620と呼ぶ。ステップ6
420では、対象エントリ1620のエントリ有効フラ
グ1640の値を“有効”とする。ステップ6440で
は、I/O要求の内容に応じて、対象エントリ1620
のコマンド1660,ディスクサブシステムID168
0,操作アドレス1700およびバッファポインタ17
20をそれぞれセットする。
受け取ったI/O要求をI/Oキュー1240に接続す
るI/Oキュー接続処理4300のフローチャートであ
る。このI/Oキュー接続処理4300は、ホストコン
ピューター1020からのI/O要求をチャネルプロセ
ッサー1030が受け取った時に実行される。ステップ
6400では、ホストI/O管理テーブル1600をサ
ーチし、エントリ有効フラグ1640の値が“無効”と
なっているホストI/O管理テーブルエントリ1620
すなわち空きエントリを見つける。見つけた空きエント
リを、以後、対象エントリ1620と呼ぶ。ステップ6
420では、対象エントリ1620のエントリ有効フラ
グ1640の値を“有効”とする。ステップ6440で
は、I/O要求の内容に応じて、対象エントリ1620
のコマンド1660,ディスクサブシステムID168
0,操作アドレス1700およびバッファポインタ17
20をそれぞれセットする。
【0021】ステップ6460では、対象エントリ16
20の後方ポインタ1760の値に“0”を入れる。こ
れは、対象エントリ1620をI/Oキュー1240の
末尾とすることを示す。ステップ6480では、I/O
要求対象のディスクサブシステム1040に対応するデ
ィスク管理テーブル(以下、対象ディスク管理テーブル
という)1400のI/Oキュー末尾ポインタ1480
に元々入っていた値を読み出して保持し、次いで対象エ
ントリ1620のアドレスをセットする。ステップ65
00では、対象ディスク管理テーブル1400のI/O
キュー先頭ポインタ1460の値が“0”か否か(I/
Oキュー1240が空きであったか否か)を調べ、
“0”でなかったら(空きでなかったら)ステップ65
20へ進み、“0”であったら(空きであったら)ステ
ップ6560へ進む。
20の後方ポインタ1760の値に“0”を入れる。こ
れは、対象エントリ1620をI/Oキュー1240の
末尾とすることを示す。ステップ6480では、I/O
要求対象のディスクサブシステム1040に対応するデ
ィスク管理テーブル(以下、対象ディスク管理テーブル
という)1400のI/Oキュー末尾ポインタ1480
に元々入っていた値を読み出して保持し、次いで対象エ
ントリ1620のアドレスをセットする。ステップ65
00では、対象ディスク管理テーブル1400のI/O
キュー先頭ポインタ1460の値が“0”か否か(I/
Oキュー1240が空きであったか否か)を調べ、
“0”でなかったら(空きでなかったら)ステップ65
20へ進み、“0”であったら(空きであったら)ステ
ップ6560へ進む。
【0022】ステップ6520では、前記ステップ64
80で読み出して保持しておいた、元々I/Oキュー末
尾ポインタ1480に入っていた値を、対象エントリ1
620の前方ポインタ1740にセットする。ステップ
6540では、前記ステップ6480で読み出して保持
しておいた、元々I/Oキュー末尾ポインタ1480に
入っていた値が指すホストI/O管理テーブルエントリ
1620の後方ポインタ1760に、対象エントリ16
20のアドレスをセットする。そして、I/Oキュー接
続処理を終了する。
80で読み出して保持しておいた、元々I/Oキュー末
尾ポインタ1480に入っていた値を、対象エントリ1
620の前方ポインタ1740にセットする。ステップ
6540では、前記ステップ6480で読み出して保持
しておいた、元々I/Oキュー末尾ポインタ1480に
入っていた値が指すホストI/O管理テーブルエントリ
1620の後方ポインタ1760に、対象エントリ16
20のアドレスをセットする。そして、I/Oキュー接
続処理を終了する。
【0023】一方、ステップ6560では、対象エント
リ1620の前方ポインタ1740の値を“0”とす
る。ステップ6580では、対象ディスク管理テーブル
1400のI/Oキュー先頭ポインタ1460に、対象
エントリ1620のアドレスをセットする。そして、I
/Oキュー接続処理4300を終了する。
リ1620の前方ポインタ1740の値を“0”とす
る。ステップ6580では、対象ディスク管理テーブル
1400のI/Oキュー先頭ポインタ1460に、対象
エントリ1620のアドレスをセットする。そして、I
/Oキュー接続処理4300を終了する。
【0024】図7は、チャネルプロセッサー1030が
ディスクサブシステム1040に対してI/O要求を発
行するホストI/O発行処理4050のフローチャート
である。このホストI/O発行処理4050は、所定短
時間毎に全てのI/Oキュー1240すなわち全てのデ
ィスク管理テーブル1400に対して実行される。ステ
ップ5240では、処理対象のディスク管理テーブル1
400のI/Oキュー先頭ポインタ1460の値が
“0”であるか否か(I/Oキュー1240が空きか否
か)を調べ、“0”でなかった(空きでなかった)場合
はステップ5260へ進む。“0”であった(空きであ
った)場合は、ホストI/O発行処理4050を終了す
る。すなわち、次のI/Oキュー1240すなわち次の
ディスク管理テーブル1400に対してホストI/O発
行処理4050を実行する。
ディスクサブシステム1040に対してI/O要求を発
行するホストI/O発行処理4050のフローチャート
である。このホストI/O発行処理4050は、所定短
時間毎に全てのI/Oキュー1240すなわち全てのデ
ィスク管理テーブル1400に対して実行される。ステ
ップ5240では、処理対象のディスク管理テーブル1
400のI/Oキュー先頭ポインタ1460の値が
“0”であるか否か(I/Oキュー1240が空きか否
か)を調べ、“0”でなかった(空きでなかった)場合
はステップ5260へ進む。“0”であった(空きであ
った)場合は、ホストI/O発行処理4050を終了す
る。すなわち、次のI/Oキュー1240すなわち次の
ディスク管理テーブル1400に対してホストI/O発
行処理4050を実行する。
【0025】ステップ5260では、処理対象のディス
ク管理テーブル1400の発行済みカウンター1440
の値が流入制限数1420の値より小さいか否かを調
べ、小さかった場合はステップ5280へ進む。小さく
なければ、ホストI/O発行処理4050を終了する。
すなわち、次のI/Oキュー1240すなわち次のディ
スク管理テーブル1400に対してホストI/O発行処
理4050を実行する。
ク管理テーブル1400の発行済みカウンター1440
の値が流入制限数1420の値より小さいか否かを調
べ、小さかった場合はステップ5280へ進む。小さく
なければ、ホストI/O発行処理4050を終了する。
すなわち、次のI/Oキュー1240すなわち次のディ
スク管理テーブル1400に対してホストI/O発行処
理4050を実行する。
【0026】ステップ5280では、処理対象のディス
ク管理テーブル1400のI/Oキュー先頭ポインタ1
460が指すホストI/O管理テーブルエントリ162
0のI/O要求すなわちI/Oキュー1240の先頭位
置にあるI/O要求を当該要求対象のディスクサブシス
テム1040に発行する。ステップ5300では、ディ
スクサブシステム1040からビジーが返されるか否か
を判定し、ビジーが返されないならステップ5320へ
進み、ビジーが返されたらホストI/O発行処理405
0を終了する。すなわち、次のI/Oキュー1240す
なわち次のディスク管理テーブル1400に対してホス
トI/O発行処理4050を実行する。
ク管理テーブル1400のI/Oキュー先頭ポインタ1
460が指すホストI/O管理テーブルエントリ162
0のI/O要求すなわちI/Oキュー1240の先頭位
置にあるI/O要求を当該要求対象のディスクサブシス
テム1040に発行する。ステップ5300では、ディ
スクサブシステム1040からビジーが返されるか否か
を判定し、ビジーが返されないならステップ5320へ
進み、ビジーが返されたらホストI/O発行処理405
0を終了する。すなわち、次のI/Oキュー1240す
なわち次のディスク管理テーブル1400に対してホス
トI/O発行処理4050を実行する。
【0027】ステップ5320では、処理対象のディス
ク管理テーブル1400の発行済みカウンター1440
の値に“1”を加える。ステップ5340では、図8を
参照して後述するI/Oキュー削除処理4350を行っ
て、処理対象のディスク管理テーブル1400のI/O
キュー先頭ポインタ1460が指すホストI/O管理テ
ーブルエントリ1620のI/O要求すなわちI/Oキ
ュー1240の先頭位置にあるI/O要求をI/Oキュ
ー1240から除去する。そして、ホストI/O発行処
理4050を終了する。すなわち、次のI/Oキュー1
240すなわち次のディスク管理テーブル1400に対
してホストI/O発行処理4050を実行する。
ク管理テーブル1400の発行済みカウンター1440
の値に“1”を加える。ステップ5340では、図8を
参照して後述するI/Oキュー削除処理4350を行っ
て、処理対象のディスク管理テーブル1400のI/O
キュー先頭ポインタ1460が指すホストI/O管理テ
ーブルエントリ1620のI/O要求すなわちI/Oキ
ュー1240の先頭位置にあるI/O要求をI/Oキュ
ー1240から除去する。そして、ホストI/O発行処
理4050を終了する。すなわち、次のI/Oキュー1
240すなわち次のディスク管理テーブル1400に対
してホストI/O発行処理4050を実行する。
【0028】図8は、I/Oキュー1240の先頭位置
にあるI/O要求をI/Oキュー1240から削除する
I/Oキュー削除処理5340のフローチャートであ
る。ステップ6600では、処理対象のディスク管理テ
ーブル1400のI/Oキュー先頭ポインタ1460が
指すホストI/O管理テーブルエントリ1620(以
後、削除エントリと呼ぶ)のエントリ有効フラグ164
0の値を“無効”とする。ステップ6620では、削除
エントリ1620の後方ポインタ1760の値が“0”
か否か(削除エントリ1620を除去することでI/O
キュー1240が空きになるか否か)をチェックし、
“0”でない(空きにならない)ならステップ6640
へ進み、“0”である(空きになる)ならステップ66
80へ進む。
にあるI/O要求をI/Oキュー1240から削除する
I/Oキュー削除処理5340のフローチャートであ
る。ステップ6600では、処理対象のディスク管理テ
ーブル1400のI/Oキュー先頭ポインタ1460が
指すホストI/O管理テーブルエントリ1620(以
後、削除エントリと呼ぶ)のエントリ有効フラグ164
0の値を“無効”とする。ステップ6620では、削除
エントリ1620の後方ポインタ1760の値が“0”
か否か(削除エントリ1620を除去することでI/O
キュー1240が空きになるか否か)をチェックし、
“0”でない(空きにならない)ならステップ6640
へ進み、“0”である(空きになる)ならステップ66
80へ進む。
【0029】ステップ6640では、削除エントリ16
20の後方ポインタ1760に入っている値を、処理対
象のディスク管理テーブル1400のI/Oキュー先頭
ポインタ1460にセットする。ステップ6660で
は、処理対象のディスク管理テーブル1400のI/O
キュー先頭ポインタ1460が指すホストI/O管理テ
ーブルエントリ1620の前方ポインタ1740に値
“0”を入れる。そして、I/Oキュー削除処理534
0を終了する。
20の後方ポインタ1760に入っている値を、処理対
象のディスク管理テーブル1400のI/Oキュー先頭
ポインタ1460にセットする。ステップ6660で
は、処理対象のディスク管理テーブル1400のI/O
キュー先頭ポインタ1460が指すホストI/O管理テ
ーブルエントリ1620の前方ポインタ1740に値
“0”を入れる。そして、I/Oキュー削除処理534
0を終了する。
【0030】ステップ6680では、処理対象のディス
ク管理テーブル1400のI/Oキュー先頭ポインタ1
460に値“0”を入れる。ステップ6700では、処
理対象のディスク管理テーブル1400のI/Oキュー
末尾ポインタ1480に値“0”を入れる。そして、I
/Oキュー削除処理4350を終了する。
ク管理テーブル1400のI/Oキュー先頭ポインタ1
460に値“0”を入れる。ステップ6700では、処
理対象のディスク管理テーブル1400のI/Oキュー
末尾ポインタ1480に値“0”を入れる。そして、I
/Oキュー削除処理4350を終了する。
【0031】図9は、ディスクサブシステム1040か
らチャネルプロセッサー1030がI/O要求の終了報
告を受ける時に実行されるホストI/O終了処理410
0のフローチャートである。ステップ5400では、デ
ィスクサブシステム1040からI/O要求の終了報告
を受け付ける。ステップ5420では、I/O要求の終
了報告をしてきたディスクサブシステム1040に対応
するディスク管理テーブル1400の発行済みカウンタ
ー1440の値から“1”を減じる。ステップ5440
では、ホストコンピューター1020に対して、終了報
告を行う。そして、ホストI/O終了処理4100を終
了する。
らチャネルプロセッサー1030がI/O要求の終了報
告を受ける時に実行されるホストI/O終了処理410
0のフローチャートである。ステップ5400では、デ
ィスクサブシステム1040からI/O要求の終了報告
を受け付ける。ステップ5420では、I/O要求の終
了報告をしてきたディスクサブシステム1040に対応
するディスク管理テーブル1400の発行済みカウンタ
ー1440の値から“1”を減じる。ステップ5440
では、ホストコンピューター1020に対して、終了報
告を行う。そして、ホストI/O終了処理4100を終
了する。
【0032】以上の第1の実施形態のチャネルプロセッ
サー1030によれば、ホストコンピューター1020
が各ディスクサブシステム1040に対して発行したI
/O要求をI/Oキュー1240にためると共に流入制
限数1420より多くのI/O要求をディスクサブシス
テム1040に発行しないように抑制するから、大量の
I/O要求をディスクサブシステム1040が受け取る
ことが防止され、ディスクサブシステム1040が大量
のビジーを返すオーバーヘッドが発生しないように制御
でき、ディスクサブシステム1040は、リードやライ
トなどのI/O要求に対する本来の処理に集中できるよ
うになる。よって、ディスクの利用効率を向上できる。
サー1030によれば、ホストコンピューター1020
が各ディスクサブシステム1040に対して発行したI
/O要求をI/Oキュー1240にためると共に流入制
限数1420より多くのI/O要求をディスクサブシス
テム1040に発行しないように抑制するから、大量の
I/O要求をディスクサブシステム1040が受け取る
ことが防止され、ディスクサブシステム1040が大量
のビジーを返すオーバーヘッドが発生しないように制御
でき、ディスクサブシステム1040は、リードやライ
トなどのI/O要求に対する本来の処理に集中できるよ
うになる。よって、ディスクの利用効率を向上できる。
【0033】−第2の実施形態− 上述の第1の実施形態では、流入制限数1420を固定
値にしていたため、各ホストコンピューター1020が
ディスクサブシステム1040へ発行するI/O要求の
頻度がホストコンピューター1020によって異なった
り,時間帯によって異なるような場合には、I/O要求
をキューイングできる数ぎりぎりまで利用できない場合
があった。そこで、第2の実施形態では、流入制限数1
420を動的に変更することで、I/O要求をキューイ
ングできる数ぎりぎりまで利用可能とする。以下、第1
の実施形態と異なる部分のみを説明する。
値にしていたため、各ホストコンピューター1020が
ディスクサブシステム1040へ発行するI/O要求の
頻度がホストコンピューター1020によって異なった
り,時間帯によって異なるような場合には、I/O要求
をキューイングできる数ぎりぎりまで利用できない場合
があった。そこで、第2の実施形態では、流入制限数1
420を動的に変更することで、I/O要求をキューイ
ングできる数ぎりぎりまで利用可能とする。以下、第1
の実施形態と異なる部分のみを説明する。
【0034】図10は、本発明の第2の実施形態にかか
るディスク管理テーブルA2000の構成図である。こ
のディスク管理テーブルA2000は、コンピューター
システム1000内の各ディスクサブシステム1040
の数だけ存在し、ディスクサブシステム1040と一対
一対応する。前記ディスク管理テーブルA2000は、
流入制限数1420,発行済みカウンター1440,流
入制限チェックフラグ2020,I/Oキュー先頭ポイ
ンタ1460およびI/Oキュー末尾ポインタ1480
の各エントリからなる。流入制限チェックフラグ202
0は、流入制限数1420を見直し中であることを示す
フラグである。すなわち、流入制限数1420を動的に
変更する期間は流入制限チェックフラグ2020を立
て、流入制限数1420を固定する期間は流入制限チェ
ックフラグ2020を落とす。流入制限数1420,発
行済みカウンター1440,I/Oキュー先頭ポインタ
1460およびI/Oキュー末尾ポインタ1480は、
第1の実施形態のディスク管理テーブル1400(図4
の(a))と同じである。
るディスク管理テーブルA2000の構成図である。こ
のディスク管理テーブルA2000は、コンピューター
システム1000内の各ディスクサブシステム1040
の数だけ存在し、ディスクサブシステム1040と一対
一対応する。前記ディスク管理テーブルA2000は、
流入制限数1420,発行済みカウンター1440,流
入制限チェックフラグ2020,I/Oキュー先頭ポイ
ンタ1460およびI/Oキュー末尾ポインタ1480
の各エントリからなる。流入制限チェックフラグ202
0は、流入制限数1420を見直し中であることを示す
フラグである。すなわち、流入制限数1420を動的に
変更する期間は流入制限チェックフラグ2020を立
て、流入制限数1420を固定する期間は流入制限チェ
ックフラグ2020を落とす。流入制限数1420,発
行済みカウンター1440,I/Oキュー先頭ポインタ
1460およびI/Oキュー末尾ポインタ1480は、
第1の実施形態のディスク管理テーブル1400(図4
の(a))と同じである。
【0035】図11は、チャネルプロセッサー1030
がディスクサブシステム1040に対してI/O要求を
発行すると共にビジーの状況に応じて流入制限数142
0を増減するホストI/O発行処理A4150のフロー
チャートである。このホストI/O発行処理A4150
は、所定短時間毎に全てのI/Oキュー1240すなわ
ち全てのディスク管理テーブル1400に対して実行さ
れる。ステップ5640では、処理対象のディスク管理
テーブルA2000のI/Oキュー先頭ポインタ146
0の値が“0”であるか否か(I/Oキュー1240が
空きか否か)を調べ、“0”でなかった(空きでなかっ
た)場合はステップ5660へ進む。“0”であった
(空きであった)場合は、ホストI/O発行処理A41
50を終了する。すなわち、次のI/Oキュー1240
すなわち次のディスク管理テーブルA2000に対して
ホストI/O発行処理4050を実行する。
がディスクサブシステム1040に対してI/O要求を
発行すると共にビジーの状況に応じて流入制限数142
0を増減するホストI/O発行処理A4150のフロー
チャートである。このホストI/O発行処理A4150
は、所定短時間毎に全てのI/Oキュー1240すなわ
ち全てのディスク管理テーブル1400に対して実行さ
れる。ステップ5640では、処理対象のディスク管理
テーブルA2000のI/Oキュー先頭ポインタ146
0の値が“0”であるか否か(I/Oキュー1240が
空きか否か)を調べ、“0”でなかった(空きでなかっ
た)場合はステップ5660へ進む。“0”であった
(空きであった)場合は、ホストI/O発行処理A41
50を終了する。すなわち、次のI/Oキュー1240
すなわち次のディスク管理テーブルA2000に対して
ホストI/O発行処理4050を実行する。
【0036】ステップ5660では、処理対象のディス
ク管理テーブルA2000の流入制限チェックフラグ2
020が立っているか否かをしらべ、立っていなければ
ステップ5680へ進み、立っていたらステップ570
0へジャンプする。なお、流入制限チェックフラグ20
20は、図12を参照して後述する流入制限チェック開
始処理4250にて立てられる。
ク管理テーブルA2000の流入制限チェックフラグ2
020が立っているか否かをしらべ、立っていなければ
ステップ5680へ進み、立っていたらステップ570
0へジャンプする。なお、流入制限チェックフラグ20
20は、図12を参照して後述する流入制限チェック開
始処理4250にて立てられる。
【0037】ステップ5680では、処理対象のディス
ク管理テーブルA2000の発行済みカウンター144
0の値が流入制限数1420の値より小さいか否かを調
べ、小さかった場合はステップ5700へ進む。小さく
なければ、ホストI/O発行処理A4150を終了す
る。すなわち、次のI/Oキュー1240すなわち次の
ディスク管理テーブルA2000に対してホストI/O
発行処理A4150を実行する。
ク管理テーブルA2000の発行済みカウンター144
0の値が流入制限数1420の値より小さいか否かを調
べ、小さかった場合はステップ5700へ進む。小さく
なければ、ホストI/O発行処理A4150を終了す
る。すなわち、次のI/Oキュー1240すなわち次の
ディスク管理テーブルA2000に対してホストI/O
発行処理A4150を実行する。
【0038】ステップ5700では、処理対象のディス
ク管理テーブルA2000のI/Oキュー先頭ポインタ
1460が指すホストI/O管理テーブルエントリ16
20のI/O要求すなわちI/Oキュー1240の先頭
位置にあるI/O要求を当該要求対象のディスクサブシ
ステム1040に発行する。ステップ5720では、デ
ィスクサブシステム1040からビジーが返されるか否
かを判定し、ビジーが返されたらステップ5740へ進
み、ビジーが返されないならステップ5840へ進む。
ク管理テーブルA2000のI/Oキュー先頭ポインタ
1460が指すホストI/O管理テーブルエントリ16
20のI/O要求すなわちI/Oキュー1240の先頭
位置にあるI/O要求を当該要求対象のディスクサブシ
ステム1040に発行する。ステップ5720では、デ
ィスクサブシステム1040からビジーが返されるか否
かを判定し、ビジーが返されたらステップ5740へ進
み、ビジーが返されないならステップ5840へ進む。
【0039】ステップ5740では、流入制限チェック
フラグ2020を落とす。ステップ5760では、処理
対象のディスク管理テーブルA2000の発行済みカウ
ンター1440の値が“0”か否かを判定し、“0”で
あった場合にはステップ5800に進み、“0”でなか
った場合にはステップ5780へ進む。ステップ578
0では、流入制限数1420に発行済みカウンター14
40の値を代入する。そして、ホストI/O発行処理A
4150を終了する。すなわち、次のI/Oキュー12
40すなわち次のディスク管理テーブルA2000に対
してホストI/O発行処理A4150を実行する。
フラグ2020を落とす。ステップ5760では、処理
対象のディスク管理テーブルA2000の発行済みカウ
ンター1440の値が“0”か否かを判定し、“0”で
あった場合にはステップ5800に進み、“0”でなか
った場合にはステップ5780へ進む。ステップ578
0では、流入制限数1420に発行済みカウンター14
40の値を代入する。そして、ホストI/O発行処理A
4150を終了する。すなわち、次のI/Oキュー12
40すなわち次のディスク管理テーブルA2000に対
してホストI/O発行処理A4150を実行する。
【0040】ステップ5800では、流入制限数142
0に値“1”を代入する。そして、ホストI/O発行処
理A4150を終了する。すなわち、次のI/Oキュー
1240すなわち次のディスク管理テーブルA2000
に対してホストI/O発行処理A4150を実行する。
0に値“1”を代入する。そして、ホストI/O発行処
理A4150を終了する。すなわち、次のI/Oキュー
1240すなわち次のディスク管理テーブルA2000
に対してホストI/O発行処理A4150を実行する。
【0041】ステップ5840では、発行済みカウンタ
ー1440の値に“1”を加える。ステップ5860で
は、図8と同様のI/Oキュー削除処理を実行する。そ
して、ホストI/O発行処理A4150を終了する。す
なわち、次のI/Oキュー1240すなわち次のディス
ク管理テーブルA2000に対してホストI/O発行処
理A4150を実行する。
ー1440の値に“1”を加える。ステップ5860で
は、図8と同様のI/Oキュー削除処理を実行する。そ
して、ホストI/O発行処理A4150を終了する。す
なわち、次のI/Oキュー1240すなわち次のディス
ク管理テーブルA2000に対してホストI/O発行処
理A4150を実行する。
【0042】図12は、流入制限チェック開始処理42
50のフローチャートである。この流入制限チェック開
始処理4250は、各ディスクサブシステム1040に
対してそれぞれ用意した累積カウンタに各ディスクサブ
システム1040に対して発行したI/O要求数をそれ
ぞれ計数しておき、計数値が所定数(例えば1000
個)になった時にそれに対応するディスク管理テーブル
A2000に対して実行される(この時、累積カウンタ
はリセットする)。あるいは、所定時間(例えば10m
s〜60s)毎に、全てのディスク管理テーブルA20
00に対して実行される。ステップ6060では、流入
制限チェックフラグ2020を立てる。そして、流入制
限チェック開始処理4250を終了する。
50のフローチャートである。この流入制限チェック開
始処理4250は、各ディスクサブシステム1040に
対してそれぞれ用意した累積カウンタに各ディスクサブ
システム1040に対して発行したI/O要求数をそれ
ぞれ計数しておき、計数値が所定数(例えば1000
個)になった時にそれに対応するディスク管理テーブル
A2000に対して実行される(この時、累積カウンタ
はリセットする)。あるいは、所定時間(例えば10m
s〜60s)毎に、全てのディスク管理テーブルA20
00に対して実行される。ステップ6060では、流入
制限チェックフラグ2020を立てる。そして、流入制
限チェック開始処理4250を終了する。
【0043】以上の第2の実施形態のチャネルプロセッ
サー1030によれば、流入制限チェックフラグ202
0が立っていない場合には、ホストコンピューター10
20が各ディスクサブシステム1040に対して発行し
たI/O要求をI/Oキュー1240にためると共に流
入制限数1420より多くのI/O要求をディスクサブ
システム1040に発行しないように抑制するから、大
量のI/O要求をディスクサブシステム1040が受け
取ることが防止され、ディスクサブシステム1040が
大量のビジーを返すオーバーヘッドが発生しないように
制御でき、ディスクサブシステム1040は、リードや
ライトなどのI/O要求に対する本来の処理に集中でき
るようになる。よって、ディスクの利用効率を向上でき
る。
サー1030によれば、流入制限チェックフラグ202
0が立っていない場合には、ホストコンピューター10
20が各ディスクサブシステム1040に対して発行し
たI/O要求をI/Oキュー1240にためると共に流
入制限数1420より多くのI/O要求をディスクサブ
システム1040に発行しないように抑制するから、大
量のI/O要求をディスクサブシステム1040が受け
取ることが防止され、ディスクサブシステム1040が
大量のビジーを返すオーバーヘッドが発生しないように
制御でき、ディスクサブシステム1040は、リードや
ライトなどのI/O要求に対する本来の処理に集中でき
るようになる。よって、ディスクの利用効率を向上でき
る。
【0044】さらに、流入制限チェックフラグ2020
が立っている場合には、ビジーが帰ってくるまでI/O
要求を出し、ビジーが帰ってきた時点で現在発行中のI
/O要求数を流入制限数1420とすることで、その時
点でのディスクサブシステム1040の当該チャネルプ
ロセッサー1030に対するI/O要求受付可能数に合
わせた流入制限数1420に動的に変更できる。例えば
他チャネルプロセッサー1030がI/O要求を突然大
量に発行し始めた場合、ディスクサブシステム1040
は自チャネルプロセッサー1030からのI/O要求を
受け付けることができなくなり、ビジーを頻発し始め
る。すると、自チャネルプロセッサー1030は、ビジ
ーが返って来なくなる値(最小値は“1”)まで流入制
限数1420の値を引き下げる。逆に、他チャネルプロ
セッサー1030がI/O要求を突然発行しなくなった
場合、ディスクサブシステム1040は自チャネルプロ
セッサー1030からのI/O要求をいくらでも受け付
けることができるようになり、ビジーを返さなくなる。
すると、自チャネルプロセッサー1030は、ビジーが
返って来る値まで流入制限数1420の値を引き上げ
る。従って、ディスクサブシステム1040がI/O要
求をキューイングできる数ぎりぎりまで利用可能とでき
る。
が立っている場合には、ビジーが帰ってくるまでI/O
要求を出し、ビジーが帰ってきた時点で現在発行中のI
/O要求数を流入制限数1420とすることで、その時
点でのディスクサブシステム1040の当該チャネルプ
ロセッサー1030に対するI/O要求受付可能数に合
わせた流入制限数1420に動的に変更できる。例えば
他チャネルプロセッサー1030がI/O要求を突然大
量に発行し始めた場合、ディスクサブシステム1040
は自チャネルプロセッサー1030からのI/O要求を
受け付けることができなくなり、ビジーを頻発し始め
る。すると、自チャネルプロセッサー1030は、ビジ
ーが返って来なくなる値(最小値は“1”)まで流入制
限数1420の値を引き下げる。逆に、他チャネルプロ
セッサー1030がI/O要求を突然発行しなくなった
場合、ディスクサブシステム1040は自チャネルプロ
セッサー1030からのI/O要求をいくらでも受け付
けることができるようになり、ビジーを返さなくなる。
すると、自チャネルプロセッサー1030は、ビジーが
返って来る値まで流入制限数1420の値を引き上げ
る。従って、ディスクサブシステム1040がI/O要
求をキューイングできる数ぎりぎりまで利用可能とでき
る。
【0045】
【発明の効果】本発明のコマンド発行制御方法および装
置によれば、コマンドキューイングの機能を有する装置
が大量のコマンドを受け取ることが防止され、該装置が
大量のビジーを返すオーバーヘッドが発生しないように
制御できる。よって、該装置は、コマンドに対する本来
の処理に集中できるようになり、処理効率を向上でき
る。
置によれば、コマンドキューイングの機能を有する装置
が大量のコマンドを受け取ることが防止され、該装置が
大量のビジーを返すオーバーヘッドが発生しないように
制御できる。よって、該装置は、コマンドに対する本来
の処理に集中できるようになり、処理効率を向上でき
る。
【図1】本発明の第1の実施形態のチャネルプロセッサ
ーを含むコンピューターシステムの構成図である。
ーを含むコンピューターシステムの構成図である。
【図2】ホストコンピューターのソフトウエア抽象モデ
ル図である。
ル図である。
【図3】チャネルプロセッサーのソフトウエア抽象モデ
ル図である。
ル図である。
【図4】ディスク管理テーブルおよびホストI/O管理
テーブルの構成図である。
テーブルの構成図である。
【図5】初期流入制限設定処理のフローチャートであ
る。
る。
【図6】I/Oキュー接続処理のフローチャートであ
る。
る。
【図7】ホストI/O発行処理のフローチャートであ
る。
る。
【図8】I/Oキュー削除処理のフローチャートであ
る。
る。
【図9】ホストI/O終了処理のフローチャートであ
る。
る。
【図10】本発明の第2の実施形態にかかるディスク管
理テーブルの構成図である。
理テーブルの構成図である。
【図11】第2の実施形態にかかるホストI/O発行処
理のフローチャートである。
理のフローチャートである。
【図12】第2の実施形態にかかる流入制限チェック開
始処理のフローチャートである。
始処理のフローチャートである。
1000…コンピューターシステム 1020…ホストコンピューター 1030…チャネルプロセッサー 1040…ディスクサブシステム 1060…ネットワーク 1240…I/Oキュー 1400,A2000…ディスク管理テーブル 1420…流入制限数 1440…発行済みカウンター 1600…ホストI/O管理テーブル 1620…ホストI/O管理テーブルエントリ 2020…流入制限チェックフラグ
フロントページの続き (72)発明者 古海 昇 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 (72)発明者 杉本 守二 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 Fターム(参考) 5B014 GA02 GC27 GD22
Claims (5)
- 【請求項1】 コマンドキューイングの機能を有する装
置に対して発行済みで且つ終了報告を受けていないコマ
ンド数をカウントし、前記装置へ新たなコマンドを発行
する時、前記コマンド数が所定の流入制限数より小さい
なら前記新たなコマンドを発行し、前記コマンド数が前
記流入制限数より小さくないなら前記新たなコマンドを
発行しないことを特徴とするコマンド発行制御方法。 - 【請求項2】 コマンドキューイングの機能を有する装
置に対して発行済みで且つ終了報告を受けていないコマ
ンド数をカウントする発行済みカウンター手段と、前記
装置へ新たなコマンドを発行する時に前記コマンド数が
所定の流入制限数より小さいなら前記新たなコマンドを
発行し前記コマンド数が所定の流入制限数より小さくな
いなら前記新たなコマンドを発行しないコマンド発行処
理手段とを具備したことを特徴とするコマンド発行制御
装置。 - 【請求項3】 請求項2に記載のコマンド発行制御装置
において、前記コマンド発行処理手段は、所定のタイミ
ングで、コマンドキューイングの機能を有する装置に対
して前記流入制限数に制限されずにコマンドを発行し続
け、該装置からビジーが返された時の前記コマンド数に
より前記流入制限数を更新することを特徴とするコマン
ド発行制御装置。 - 【請求項4】 請求項3に記載のコマンド発行制御装置
において、前記所定のタイミングとは、発行済の累積コ
マンド数が所定個増える毎であるか、又は、所定時間経
過毎であることを特徴とするコマンド発行制御装置。 - 【請求項5】 請求項2から請求項4のいずれかに記載
のコマンド発行制御装置において、前記コマンドキュー
イングの機能を有する装置とはディスクサブシステムで
あり、前記コマンド発行制御装置とはホストコンピュー
ターと前記ディスクサブシステムの間に設置されるチャ
ネルプロセッサーであることを特徴とするコマンド発行
制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10265846A JP2000099446A (ja) | 1998-09-21 | 1998-09-21 | コマンド発行制御方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10265846A JP2000099446A (ja) | 1998-09-21 | 1998-09-21 | コマンド発行制御方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000099446A true JP2000099446A (ja) | 2000-04-07 |
Family
ID=17422893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10265846A Pending JP2000099446A (ja) | 1998-09-21 | 1998-09-21 | コマンド発行制御方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000099446A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252755A (ja) * | 2003-02-20 | 2004-09-09 | Fujitsu Ltd | 記憶装置への情報蓄積制御方法 |
JP2009116805A (ja) * | 2007-11-09 | 2009-05-28 | Fuji Xerox Co Ltd | コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム |
JP2010020694A (ja) * | 2008-07-14 | 2010-01-28 | Fujitsu Ltd | ストレージ装置および制御装置 |
JP2010157254A (ja) * | 2010-02-10 | 2010-07-15 | Fujitsu Ltd | 記憶装置への情報蓄積制御方法 |
JP6377304B1 (ja) * | 2017-12-04 | 2018-08-22 | 株式会社東陽テクニカ | データ書き込み装置及び方法 |
-
1998
- 1998-09-21 JP JP10265846A patent/JP2000099446A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252755A (ja) * | 2003-02-20 | 2004-09-09 | Fujitsu Ltd | 記憶装置への情報蓄積制御方法 |
JP4484436B2 (ja) * | 2003-02-20 | 2010-06-16 | 富士通株式会社 | 記憶装置への情報蓄積制御方法 |
JP2009116805A (ja) * | 2007-11-09 | 2009-05-28 | Fuji Xerox Co Ltd | コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム |
JP2010020694A (ja) * | 2008-07-14 | 2010-01-28 | Fujitsu Ltd | ストレージ装置および制御装置 |
JP4654273B2 (ja) * | 2008-07-14 | 2011-03-16 | 富士通株式会社 | ストレージ装置および制御装置 |
US8234415B2 (en) | 2008-07-14 | 2012-07-31 | Fujitsu Limited | Storage device and control unit |
JP2010157254A (ja) * | 2010-02-10 | 2010-07-15 | Fujitsu Ltd | 記憶装置への情報蓄積制御方法 |
JP6377304B1 (ja) * | 2017-12-04 | 2018-08-22 | 株式会社東陽テクニカ | データ書き込み装置及び方法 |
WO2019111303A1 (ja) * | 2017-12-04 | 2019-06-13 | 株式会社東陽テクニカ | データ書き込み装置及び方法 |
US10585622B2 (en) | 2017-12-04 | 2020-03-10 | Toyo Corporation | Data writing device and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058786B (zh) | 用于控制存储***中的写请求的方法、装置和计算机程序产品 | |
US9678861B2 (en) | Techniques for efficient mass storage layout optimization | |
JP4186602B2 (ja) | ジャーナルログを利用した更新データ書込方法 | |
US5887151A (en) | Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks | |
US6834315B2 (en) | Method, system, and program for prioritizing input/output (I/O) requests submitted to a device driver | |
JP4318914B2 (ja) | ストレージシステム及びその動的負荷管理方法 | |
EP0848321B1 (en) | Method of data migration | |
US7159071B2 (en) | Storage system and disk load balance control method thereof | |
US8762650B2 (en) | Prefetching tracks using multiple caches | |
EP2352081A1 (en) | Apparatus, method and program for deciding data recall order | |
JPH0524533B2 (ja) | ||
EP1323045B1 (en) | Dynamic priority external transaction system | |
JP2003131908A (ja) | 記憶制御装置 | |
CN116097228A (zh) | 在针对写入集合中的轨道释放高速缓存资源之后获得用于对写入集合中的轨道的预期写入的高速缓存资源 | |
JP2000099446A (ja) | コマンド発行制御方法および装置 | |
JP6199782B2 (ja) | 計算機システム | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
JP3793682B2 (ja) | コマンドキューイングの機能を持つ記憶装置 | |
JP5147296B2 (ja) | 計算機システム、データベース管理方法及びプログラム | |
US8006001B2 (en) | Method and apparatus for manipulating direct memory access transfers | |
US5440712A (en) | Database input/output control system having nonvolatile storing unit for maintaining the database | |
JP4506292B2 (ja) | キャッシュ制御方法およびデータ処理システム並びにその処理プログラム | |
US11886344B2 (en) | Cached system for managing state vectors | |
JP2526728B2 (ja) | ディスクキャッシュ自動利用方式 | |
JP4486384B6 (ja) | Db連携プリフェッチシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050111 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050510 |