(57)【特許請求の範囲】
【請求項１】
上位装置から複数の下位装置への入出力要求を制御する入出力制御装置であって、
前記上位装置からの前記入出力要求を前記複数の下位装置毎にキューする第１のキュー管理部と、
前記第１のキューに前記複数の下位装置毎にキューされた前記入出力要求を前記複数の下位装置毎にキューする第２のキュー管理部と、
前記上位装置からの前記入出力要求を前記上位装置によって付与された優先順位に基づいて前記第１のキュー管理部にキューさせ、前記第１のキュー管理部にキューされた待ち要求を、前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より高いときには前記第２のキュー管理部の最上位の位置にキューさせ、前記待ち要求の前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには前記第２のキュー管理部の最下位の位置にキューさせる制御部とを有することを特徴とする入出力制御装置。
【請求項２】
前記第２のキュー管理部は、同じ優先順位の要求があった場合、後の要求を最下位にキューすることを特徴とする請求項１記載の入出力制御装置。
【請求項３】
上位装置から複数の下位装置への入出力要求を制御する入出力制御方法であって、
前記上位装置からの前記入出力要求を前記複数の下位装置毎にキューする第１のキュー管理部と、
前記第１のキュー管理部に前記複数の下位装置毎にキューされた前記入出力要求を前記複数の下位装置毎にキューする第２のキュー管理部とを有し、
前記上位装置からの前記入出力要求を前記上位装置によって付与された優先順位に基づいて前記第１のキュー管理部にキューさせ、前記第１のキュー管理部にキューされた待ち要求を、前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より高いときには前記第２のキュー管理部の最上位の位置にキューさせ、前記待ち要求の前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには前記待ち要求を前記第２のキュー管理部の最下位の位置にキューさせることを特徴とする入出力制御方法。
【請求項４】
上位装置から複数の情報記憶装置への入出力要求を制御する情報記憶システムであって、
前記上位装置からの前記入出力要求を前記複数の下位装置毎にキューする第１のキュー管理部と、
前記第１のキュー管理部に前記複数の下位装置毎にキューされた前記入出力要求を前記複数の下位装置毎にキューする第２のキュー管理部と、
前記上位装置からの前記入出力要求を前記上位装置によって付与された優先順位に基づいて第１のキュー管理部にキューさせ、前記第１のキュー管理部にキューされた待ち要求を、前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より高いときには前記第２のキュー管理部の最上位の位置にキューさせ、前記待ち要求の前記上位装置によって付与された優先順位が前記第２のキュー管理部にキューされた要求の前記上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには前記第２のキュー管理部の最下位の位置にキューさせる制御部とを有することを特徴とする情報記憶システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は入出力制御装置及び入出力制御方法並びに情報記憶システムに係り、特に、上位装置から複数の下位装置への入出力を制御するための入出力制御装置及び入出力制御方法並びに情報記憶システムに関する。
【０００２】
ハードディスクドライブ等のディスク装置を使用してデータを管理するストレージシステムがある。このようなストレージシステム（情報記憶システム）では、ディスク装置の破損からデータを保護するため、ＲＡＩＤ構成としたものがある。ＲＡＩＤ構成は、ディスクドライブを複数設け、データを冗長することによりデータの一部が破損しても元のデータを復元できるようにしている。
【０００３】
このとき、メインフレームシステムからの入出力要求が異なるディスクドライブに対するものである場合がある。このような場合、効率よく入出力が行なえるようにメインフレームシステムとストレージシステムとの間に入出力制御装置を介在させ、複数のディスクドライブに同時にアクセスできるようにしていた。
【０００４】
このようなメインフレームシステムからの入出力要求の中には優先して実行してもらいたい要求も存在している。このため、このような入出力要求に対しては優先して実行する機構が求められている。
【０００５】
【従来の技術】
ストレージシステムでは、入出力要求は入出力キューされた後、要求するデバイスに設けられたデバイスキューに分配されている。
【０００６】
図１は従来の一例のキューを説明するための図である。
【０００７】
上位装置１からの入出力要求は、要求順にキャッシュキュー２にキューされてる。キャッシュキュー２にキューされた要求は、要求された順にディスクドライブ４ａ、４ｂ毎に設けられたデバイスキュー３ａ、３ｂにキューされ、対応するディスクドライブ４ａ、４ｂで要求が実行される。このとき、デバイスキュー３ａ、３ｂでは、対応する要求の優先順に基づいて要求のデバイスキュー３ａ、３ｂへのキューの順序を変更していた。これにより、優先される要求が優先して実行されるようになっている。
【０００８】
【発明が解決しようとする課題】
しかし、従来のシステムでは、上位装置１からの要求は、キャッシュキュー２を通ってデバイスキュー３ａ、３ｂに分配されていた。このため、キャッシュキュー２の最優先要求の要求先であるディスクドライブ４ａのデバイスキュー３ａに空きがない場合には、次の要求の要求先であるディスクドライブ４ｂのデバイスキュー３ｂに空きがあってもキューイングが待たされるため、要求に遅延が生じ、応答時間が保証できないなどの問題点があった。
【０００９】
本発明は上記の点に鑑みてなされたもので、デバイスと効率よくデータの転送を行なえる入出力制御装置及び入出力制御方法並びに情報記憶システム入出力制御装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は、上位装置から複数の下位装置への入出力要求を制御する入出力制御装置であって、上位装置からの入出力要求を複数の下位装置毎にキューする第１のキュー管理部と、第１のキュー管理部に複数の下位装置毎にキューされた入出力要求を複数の下位装置毎にキューする第２のキュー管理部と、上位装置からの入出力要求を上位装置によって付与された優先順位に基づいて第１のキュー管理部にキューさせ、第１のキュー管理部にキューされた待ち要求を、上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より高いときには第２のキュー管理部の最上位の位置にキューさせ、待ち要求の上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには前記第２のキュー管理部の最下位の位置にキューさせる制御部とを有することを特徴とする。
【００１２】
さらに、デバイスキューで同じ優先順位の要求があった場合、後の要求を最下位にキューする。
【００１３】
本発明によれば、上位装置からの入出力要求を上位装置によって付与された優先順位に基づいて第１のキュー管理部にキューさせ、第１のキュー管理部にキューされた待ち要求を、上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より高いときには第２のキュー管理部の最上位の位置にキューさせ、待ち要求の上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには待ち要求を前記第２のキュー管理部の最下位の位置にキューさせることにより、上位装置によって付与された優先順位が高い要求を優先して処理でき、また、上位装置によって付与された優先順位が低い要求であっても大幅に待たせることなく処理できる。
【００１４】
また、本発明によれば、同じ優先順位の要求があった場合、後の要求を最下位にキューすることにより、優先順位が低い要求が大幅に待たされることがなくなるため、優先順位の低い要求の応答時間の大幅な遅延を防止できる。
【００１５】
【発明の実施の形態】
図２は本発明の一実施例のシステム構成図を示す。
【００１６】
本実施例のシステム１００は、ホストコンピュータ１０１とストレージシステム１０２とが複数のチャネルＣＨ１〜ＣＨｎを通して通信可能な構成とされている。ホストコンピュータシステム１０１からは複数のチャネルＣＨ１〜ＣＨｎを介してストレージシステム１０２にデータのリード／ライトの要求がなされる。
【００１７】
図３はホストコンピュータ１０１からストレージシステム１０２に供給されるデータの構成図を示す。
【００１８】
ホストコンピュータ１０１とストレージシステム１０２との間で転送されるデータ１１１は、冗長ＲＡＩＤグループ番号部１１２、論理ボリューム番号部１１３、開始アドレス部１１４、ブロック数部１１５、リード／ライトデータ部１１６、キャッシュアドレス部１１７、優先順位部１１８、メインフレームシステム／ホスト識別情報部１１９を含む構成とされている。
【００１９】
冗長ＲＡＩＤグループ番号部１１２には、データのリード／ライトを行なう先の冗長ＲＡＩＤグループの番号が設定される。論理ボリューム番号部１１３には、データのリード／ライトを行なう先の論理ボリューム番号が設定される。
【００２０】
開始アドレス部１１４には、データのリード／ライトを行なう先の開始アドレスが設定される。ブロック数部１１５には、リード／ライトデータのブロック数が設定される。
【００２１】
リード／ライトデータ部１１６には、リード／ライトデータが設定される。キャッシュアドレス部１１７には、リード／ライトデータが記憶されるストレージシステム１０２のキャッシュメモリのキャッシュアドレスが設定される。
【００２２】
優先順位部１１８には、リード／ライトデータの優先順位が設定される。優先順位は、ホストコンピュータ１０１側でＯＳが処理を効率よく行なえる順序でリード／ライトが行なえるように設定する。メインフレームシステム／ホスト識別情報１１９は、リード／ライトの指示元がメインフレームシステムか、ホストかを識別するための識別情報が設定される。
【００２３】
上記構成のデータ１１１がストレージシステム１０２とホストコンピュータ１−２とで転送される。
【００２４】
図２に戻って説明を続ける。
【００２５】
ストレージシステム１０２は、コントローラ１２１及びディスクドライブ部１２２を含む構成とされている。コントローラ１２１は、図２に示すホストコンピュータ１０１からのリード／ライト要求を受信し、ディスクドライブ部１２２にデータをライトしたり、ディスクドライブ部１２２からデータを読み出したりする処理を行なう。なお、コントローラ１２１とディスクドライブ部１２２とは、ＳＣＳＩインタフェースにより接続されている。
【００２６】
ディスクドライブ部１２２は、例えば、複数のハードディスクドライブから構成され、コントローラ１２１からの指示に従い、磁気ディスク媒体にデータを記録したり、磁気ディスク媒体に記録したデータを再生したりする。
【００２７】
図４はコントローラ１２１のブロック構成図、図５はコントローラ１２１の機能ブロック図を示す。
【００２８】
コントローラ１２１は、チャネルアダプタＣＡ１〜ＣＡｎ、複数の管理モジュール（Centralized Module）ＣＭ１〜ＣＭｋ、デバイスアダプタＤＡ１〜ＤＡｍを含む構成とされている。チャネルアダプタＣＡ１〜ＣＡｎは、チャネルアダプタ用ファームウェア１４０により制御される。複数の管理モジュール（Centralized Module）ＣＭ１〜ＣＭｋは、各々管理モジュール用ファームウェア１４１により制御される。デバイスアダプタＤＡ１〜ＤＡｍは、デバイスアダプタ用ファームウェア１４２により制御される。
【００２９】
チャネルアダプタＣＡ１〜ＣＡｎは、ホストコンピュータ１０１のチャネルＣＨ１〜ＣＨｎに対応して設けられ、各々ＣＰＵ１３１を内蔵している。チャネルアダプタＣＡ１〜ＣＡｎは、図５に示すようにチャネルアダプタ用ファームウェア１４０によりＣＰＵ１３１を動作させることにより主にインタフェース制御機能１４３、コマンド処理機能１４４を実行している。
【００３０】
インタフェース制御機能１４３は、主にストレージシステム１０２とホストコンピュータ１０１とのインタフェース制御を行なう。また、コマンド処理機能１４４は、主にコマンドの解析、管理を行なう。
【００３１】
複数の管理モジュール（Centralized Module）ＣＭ１〜ＣＭｋは、チャネルアダプタＣＡ１〜ＣＡｎとデバイスアダプタＤＡ１〜ＤＡｍとのインタフェース制御を行なう。管理モジュールＣＭ１〜ＣＭｋは、各々が少なくともＣＰＵ１５１及びキャッシュメモリ１５２を含む構成とされている。各管理モジュールＣＭ１〜ＣＭｋは、その配下のシステムの動作を制御する。管理モジュールＣＭ１〜ＣＭｋでは、管理モジュール用ファームウェア１４１によりＣＰＵ１５１を動作させることによりリソース管理機能１４６及びキャッシュメモリ管理機能１４７を実行している。リソース管理機能１４６は、リソースの管理を行なう。
【００３２】
また、キャッシュメモリ管理機能１４７は、デバイスアダプタＤＡ１〜ＤＡｍとディスクドライブ部１２２とがＳＣＳＩインタフェースで接続されていることから、デバイスキューの優先制御をＳＣＳＩデバイスの標準機能であるQueue TAG機能を用いることにより実現している。Queue TAG機能には、Simple Queue（リオーダリング有り）、Head of Queue（キューの先頭に並ぶ）の２つのTAGが用意されている。この２つのＴＡＧを用いてデバイスキューへの優先制御を行なっている。
【００３３】
図６はコントローラ１２１でのキューの状態を示す図である。
【００３４】
コントローラ１２１は、キャッシュキュー１７１、ＤＡキュー１７２、デバイスキュー１７３を含む構成とされている。キャッシュキュー１７１は、管理モジュールＣＭ１〜ＣＭｋに形成され、ホストコンピュータ１０１からの要求を順次に配列したキューである。また、ＤＡキュー１７２は、特許請求の範囲の第１の管理部を構成しており、管理モジュールＣＭ１〜ＣＭｋに形成されている。ＤＡキュー１７２には、キャッシュキュー１７１からの要求をデバイスアダプタＤＡ１〜ＤＡｍ毎に配列したキューである。
【００３５】
キュー管理テーブル１５０を用いて上記ＤＡキュー１７２及びデバイスキュー１７３のキュー管理を行なう。
【００３６】
図７はキュー管理テーブル１５０のデータ構成図を示す。
【００３７】
キュー管理テーブル１５０は、冗長ＲＡＩＤグループ♯１〜♯Ｎ毎にＤＡキューテーブル１８１及びデバイスキューテーブル１８２が設定されている。
【００３８】
ＤＡキューテーブル１８１は、ＤＡキュー１７２にキューされた要求に関する情報が記憶されている。ＤＡキュー１７２にキューされた要求に関する情報は、図２に示すデータ構成と同様な構成である。デバイスキューテーブル１８２は、デバイスキュー１７３にキューされた要求に関する情報が記憶されている。デバイスキュー１７３にキューされた要求に関する情報は、図２に示すデータ構成と同様な構成である。また、デバイスアダプタＤＡ１〜ＤＡｍでは、このデバイスキューテーブル１８２にキューされた順に処理を行う。
【００３９】
なお、ＤＡキュー１７２、デバイスキュー１７３は、後に説明するようにＣＰＵ１５１によりホストコンピュータ１０１で付与された優先順位に基づいて優先順位が変更される。
【００４０】
デバイスアダプタＤＡ１〜ＤＡｍは、ディスクドライブ部１２２とのインタフェース制御を行なうモジュールであり、例えば、２ポートのＦＣ−ＡＬインタフェースを装備する。デバイスアダプタＤＡ１〜ＤＡｍには、ＣＰＵ１９１が内蔵されている。
【００４１】
デバイスアダプタＤＡ１〜ＤＡｍは、ＤＡファームウェア１４２に基づいてＣＰＵ１６１を動作させることにより主にＲＡＩＤ制御機能１４８及びインタフェース機能１４９を実行する。ＲＡＩＤ制御機能１４８は、ＣＭファームウェア１４１と協働してＲＡＩＤ制御を行なう。インタフェース制御機能１４９は、ディスクドライブ部１２２とのインタフェース制御を行なう。
【００４２】
次にＣＰＵ１５１によるＤＡキュー１７２及びデバイスキュー１７３の優先順位の変更処理について説明する。
【００４３】
まず、ホストコンピュータ１０１からディスクドライブ部１２２への入出力要求時の動作を説明する。なお、ここでは、ホストコンピュータ１０１は、メインフレームシステムとする。また、優先処理は、メインフレームシステムからの要求に対してのみ行い、オープンシステムからの要求に対しては行なわないように制御される。ＣＰＵ１５１は、メインフレームシステム或いはオープンシステムからの図３に示すような要求に関する情報を参照して、その情報中のメインフレームシステム／オープンシステム識別情報欄を参照することにより、要求がメインフレームシステムからのものか、オープンシステムからのものかを判定して、要求がメインフレームシステムのものである場合には以下に示す優先処理を行ない、オープンシステムからのものである場合には、要求はＤＡキュー１７２、デバイスキュー１７３の最下位にキューする。
【００４４】
図８はホストコンピュータ１０１からの要求に対する処理フローチャートを示す。
【００４５】
ホストコンピュータ１０１は、図３に示すようなデータにより要求が行なわれる。ＣＰＵ１５１は、ホストコンピュータ１０１から要求を受信すると、ステップＳ１―０で優先処理の対象か否か判断を行う。ステップＳ１―０で優先処理の対象である場合には、ステップＳ１−１でホストコンピュータ１０１からの要求の論理ボリューム番号と優先順位を調べる。
【００４６】
次に、ＣＰＵ１５１は、ステップＳ１−２でデバイスキュー１７２にキューされているデータの個数がＮ以下か否かを判定する。デバイスキュー１７２にキューされているデータの個数は、キュー管理テーブル１５０のデバイスキューテーブル１６５に格納されたデータ個数を計数することにより求めることができる。
【００４７】
ステップＳ１−２でデバイスキュー１６５にキューされているデータの個数がＮより大きい場合には、ステップＳ１−３でＤＡキューの優先順位に応じた順位に要求データを割り込ませる。なお、Ｎは、デバイスキュー可能なデータの最大の個数に相当するものである。要求データをＤＡキューに割り込ませた後、ステップ１−４で要求データをＤＡキューを管理するＤＡキューテーブルに記憶させる。
【００４８】
また、ステップＳ１−２でデバイスキューしているデータの個数がＮ以下の場合には、ステップＳ１−５でデバイスキューテーブルを参照し、ステップＳ１−６で要求データの優先順位がデバイスキューテーブルに記憶された最高順位より高いか否かを判定する。
【００４９】
ステップＳ１−６でデバイスキューテーブルに記憶された最高順位より高い場合には、ステップＳ１−７で「head of queue ＴＡＧ」機能によりデバイスキューの最高順位に要求データを割り込ませる。
【００５０】
また、ステップＳ１−６でデバイスキューテーブルに記憶された最高順位より低い場合には、ステップＳ１−８で「simple queue ＴＡＧ」機能によりデバイスキューの最下位に要求データをキューする。
【００５１】
ステップＳ１−７またはＳ１−６でデバイスキューに要求データをキューすると、ステップＳ１−９で要求データをデバイスキューテーブルに記憶する。
【００５２】
以上のようにデバイスキューに空きがある場合には、要求データはＤＡキューを行なわずに、直接デバイスキューの優先順位に応じた位置にキューされる。このため、高速に要求を実行できる。また、デバイスキューに空きがない場合には、要求データはデバイスキューの優先順位に応じた位置にキューされる。よって、優先順位が高い要求は高速に実行される。
【００５３】
次に、応答時の動作を説明する。
【００５４】
図９はホストコンピュータ１０１への要求に対する応答時の処理フローチャートを示す。
【００５５】
ＣＰＵ１５１は、ステップＳ２−１でディスクドライブ部１２２から応答があると、デバイスキューテーブルを参照して、デバイスキューの空きキューの論理ボリューム番号を調べ、対応するデバイスキューを確認する。
【００５６】
次に、ＣＰＵ１５１は、ステップＳ２−２でＤＡキューに待ちはあるか否かを判定する。ステップＳ２−２でＤＡキューに待ちキューがなければ、応答すべきキューがないので、そのまま処理を終了する。
【００５７】
また、ステップＳ２−２でＤＡキューに待ちがあれば、ステップＳ２−３でデバイスキューテーブルを参照して、ステップＳ２−４でＤＡキューの最優先順位がデバイスキューの最優先順位より高いか否かを判定する。ステップＳ２−４で、ＤＡキューの最優先順位がデバイスキューの最優先順位より高い場合には、ステップＳ２−５で「head of queue ＴＡＧ」機能によりデバイスキューの最高順位に要求データを割り込ませる。
【００５８】
また、ステップＳ２−４でデバイスキューテーブルに記憶された最高順位より低い場合には、ステップＳ２−６で「simple queue ＴＡＧ」機能によりデバイスキューの最下位に要求データをキューする。
【００５９】
ステップＳ２−５またはＳ２−６でデバイスキューに要求データをキューすると、ステップＳ２−７で要求データをＤＡキューテーブルから削除し、デバイスキューテーブルに記憶する。
【００６０】
上記ステップＳ２−１〜Ｓ２−７を繰り返して応答を行なう。
【００６１】
次に、上記の優先処理をさらに具体的に説明する。
【００６２】
図１０は優先処理の具体例を説明するための図である。
【００６３】
図１０において、状況欄の♯１〜♯１４は、処理手順を示している。また、イベント欄は、ＣＰＵ１５１に対して発生したイベントを示している。さらに、ＤＡキュー状態欄は、ＤＡキューの状態を示しており、右側ほど優先された位置となる。また、デバイスキュー状態欄は、デバイスキュー状態を示しており、右側ほど優先された位置となる。
【００６４】
さらに、最高レベル欄は、デバイスキューの最優先順位を示している。なお、イベント欄、ＤＡキュー欄、デバイスキュー欄、最高レベル欄の数字は、優先順位を示しており、大きいほど優先順位が高いものとする。また、ここでは、デバイスキューの最大データ数Ｎを「４」とする。
【００６５】
まず、状況♯１は初期状態であり、デバイスキューに優先順位「５」の要求が１個、設定されているものとする。次に状況♯２で優先順位「６」の要求が発生する。
【００６６】
次に状況♯３で優先順位「６」の要求が最優先されてディスクデバイス部１２１に送られる。優先順位「６」の要求は、デバイスキューには優先順位「５」のイベントが１個キューされているだけであるので、デバイスキューにキューされる。このとき、優先順位が「５」より高いので、優先順位「５」のイベントより優先順位の高い、位置にキューされる。このとき、優先順位「６」がデバイスキューの最高優先順位とされる。
【００６７】
次に、状況♯４で優先順位「７」の要求ａ（以下、「７ａ」）が発生すると、状況♯５で要求７ａがデバイスキューの最優先順位にキューされる。次に、状況♯６で優先順位「７」の要求ｂ（以下、「７ｂ」）が発生すると、状況♯７で要求７ｂがデバイスキューの最下位順位にキューされる。このとき、同じ優先順位の要求「７ａ」、「７ｂ」があった場合、二つ目の要求「７ｂ」は最下位にキューされる。
【００６８】
次に、状況♯８で優先順位「４」の要求があると、このとき、デバイスキューには、デバイスキューの最大キューの数である４個の要求が既にキューされているので、新たに供給された優先順位「４」の要求は、ＤＡキューにキューされる。次に状況♯９で優先順位「２」の要求があると、優先順位「４」より低いレベルであるので、ＤＡキューの最後尾にキューされる。
【００６９】
次に状況♯１０で優先順位「３」の要求があると、優先順位「３」は優先順位「４」よりレベルが低く、優先順位「２」よりレベルが高いので、ＤＡキューの優先順位「４」の要求と優先順位「２」の要求との間にキューされる。次に、状況♯１１でデバイスキューの最優先順位「７」の要求７ａが終了すると、要求の個数が３個になるので、ＤＡキューの最優先順位「４」の要求がデバイスキューにキューされる。このとき、優先順位「４」はデバイスキューの最優先順位「７」より低いので、デバイスキューの最下位にキューされる。また、デバイスキューには、優先順位「７」の要求７ｂが存在するので、最高優先順位は、「７」のままである。このため、優先順位「６」以下の要求はすべて最下位の位置にキューされる。
【００７０】
状況♯１２でデバイスキューの最優先順位に位置する優先順位「６」の要求が終了すると、要求の個数が３個になるので、ＤＡキューの最優先順位「３」の要求がデバイスキューにキューされる。このとき、優先順位「３」はデバイスキューの最優先順位「７」より低いので、デバイスキューの最下位にキューされる。
【００７１】
状況♯１３でデバイスキューの最優先順位に位置する優先順位「５」の要求が終了すると、要求の個数が３個になるので、ＤＡキューの最優先順位「２」の要求がデバイスキューにキューされる。このとき、優先順位「２」はデバイスキューの最優先順位「７」より低いので、デバイスキューの最下位にキューされる。状況♯１４で優先順位「７」の要求「７ｂ」が終了すると、ＤＡキューに待ちキューは存在しないので、デバイスキューの要求の個数が優先順位「４」、「３」、「２」の要求の３個になる。これにより、最高優先順位が「４」になる。このため、次の要求は、優先順位が「５」以上であれば、デバイスキューの最高順位に位置し、優先順位が「４」以下であれば、デバイスキューの最下位順位に位置する。
これにより、デバイスキューテーブルにキューされるキューの順序を優先順位に応じてデバイスキューテーブルにキューさせることができる。
【００７２】
具体的には以上のようにして優先順位が決定され、要求が順次実行されることになる。
【００７３】
また、他のホストからのアクセスについては以下の様に扱うことも考えられる。メインフレーム／オープンシステム共用ボリュームについては、優先制御対象ではないとして処理し、上記優先制御による不平等を避ける。
【００７４】
さらに、上記優先制御の有効/無効は、保守画面から設定可能とする。このために、例えば、３つのパラメータを定義する。
【００７５】
まず、第１のパラメータとして、優先制御をホストインタフェースに対して無効とするフラグを設ける。このフラグがオンの場合、優先制御をサポートしていることを、ホストに返す。また、このフラグがオフの場合、優先制御機能をサポートしていないことを、ホストに返す。
【００７６】
さらに、第２のパラメータとして上記優先制御機能の内部動作の有効/無効モードを制御するフラグを設ける。このフラグは、本機能に関する内部の動作モードを有効又は無効モードにするものである。無効モードの場合、上記優先制御機能をサポートしていない内部動作と同様になる。但し、ホストインタフェースの動作には影響しないとする。
【００７７】
また、第３のパラメータとして上記優先制御機能に関連して内部処理時間監視機能の有効／無効を制御するフラグを設ける。このフラグは活性状態で変更できるようにし、監視時間経過時にビジー応答するかどうかの判定条件に加える。このフラグがオンの場合、内部処理時間監視によるビジー応答は行わない。但し、時間監視や内部ログはフラグのオン／オフに関わらず行うようにする。
【００７８】
以上の３つのパラメータを設定することにより、優先制御機能の操作性を向上させることができる。
【００７９】
また、ホストコンピュータ１０１からの入出力要求で行われるデバイス動作は基本的に優先順位を持つものである。しかし、優先順位を持たない入出力要求は、優先制御レベル最低として取り扱うようにする。
【００８０】
ただし、上記優先制御対象となり得るのは、ホストコンピュータ１０１からの入出力要求に起因する処理とする。このため、要求が優先制御対象かどうかの判断を行う必要がある。
【００８１】
判断は例えば、ＤＴＣにより行なうようにする。
【００８２】
図１１にＤＴＣの機能ブロック図を示す。
ＤＴＣ２００は、図６に示すＤＡキュー１７２とデバイスキュー１７３との間に設けられている。ＤＴＣ２００は、ホスト入出力キュー２０１、内部処理キュー２０２、タイムシェアリング部２０３を含む構成とされている。
ＤＴＣ２００は、ホスト入出力キュー２０１、内部処理キュー２０２をタイムシェアリングしている。
【００８３】
内部処理キュー２０２は、例えば、リビルド処理、ライトバック処理、ＥＣ／ＯＰＣ処理などで生じた要求がキューされる。内部処理キュー２０２にキューされた要求は、ホスト入出力キュー２０１にキューされた要求とは同期しないで処理される。タイムシェアリング部２０３は、内部処理キュー２０２にキューされた要求をホスト入出力キュー２０１にキューされた要求に優先してデバイスキュー１７３にキューする。
また、プリフェッチ処理は、該当領域のホストアクセスに先行して処理されなければならないため、プリフェッチ処理の優先順位は先読み機能を起動したホスト入出力要求のレベルを引き継ぐものとする。
【００８４】
上記本実施例の優先制御によれば、例えば、バッチ処理実行中のオンライン要求の応答時間を保証することが可能となる。よって、オンラインライン処理を２４時間行い、日中は、オンライン処理とバッチ処理とを並行して行なう場合に有効な機能となる。
【００８５】
（付記１）  上位装置から複数の下位装置への入出力要求を制御する入出力制御装置であって、
前記上位装置によって予め割り当てられた優先順位に基づいて前記入出力要求の順位を前記複数の下位装置毎に制御する優先順位管理部を有することを特徴とする入出力制御装置。
【００８６】
（付記２）  前記優先順位管理部は、前記上位装置からの前記入出力要求の順位を前記複数の下位装置毎に管理する第１の管理部と、
前記下位装置への入出力を管理する第２の管理部とを有することを特徴とする付記１記載の入出力制御装置。
【００８７】
（付記３）  前記優先順位管理部は、同じ優先順位の要求があった場合、後の要求を最下位にキューすることを特徴とする付記１又は２記載の入出力制御装置。
【００８８】
（付記４）  前記優先順位管理部は、前記上位装置からの前記入出力要求に予め付与された優先順位に基づいて前記第１の管理部に配列された前記入出力要求の順位を変更することを特徴とする付記２記載の入出力制御装置。
（付記５）  前記優先順位管理部は、前記入出力要求に予め付与された優先順位に基づいて前記第２の管理部に配列された前記入出力要求の順位を変更することを特徴とする付記２乃至４のいずれか一項記載の入出力制御装置。
【００８９】
（付記６）  前記優先順位管理部は、前記入出力要求に基づいて優先管理を有効又は無効とすることを特徴とする付記１乃至５のいずれか一項記載の入出力制御装置。
【００９０】
（付記７）  前記優先順位管理部は、設定により時間監視を有効又は無効にできることを特徴とする付記１乃至６のいずれか一項記載の入出力制御装置。
【００９１】
（付記８）  上位装置から複数の下位装置への入出力要求を制御する入出力制御方法であって、
前記上位装置によって予め割り当てられた優先順位に基づいて前記入出力要求の順位を前記複数の下位装置毎に制御することを特徴とする入出力制御方法。
【００９２】
（付記９）  前記上位装置からの前記入出力要求の順位を前記複数の下位装置毎に管理する第１の管理手順と、
前記下位装置への入出力を管理する第２の管理手順とを有することを特徴とする付記８記載の入出力制御方法。
【００９３】
（付記１０）  同じ優先順位の要求があった場合、後の要求を最下位にキューすることを特徴とする付記８又は９記載の入出力制御方法。
【００９４】
（付記１１）  前記入出力要求に基づいて優先管理を有効又は無効とすることを特徴とする付記８乃至１０のいずれか一項記載の入出力制御方法。
【００９５】
（付記１２）  設定により時間監視を有効又は無効にできることを特徴とする付記８乃至１２のいずれか一項記載の入出力制御方法。
【００９６】
（付記１３）  上位装置から複数の情報記憶装置への入出力要求を制御する情報記憶システムであって、
前記上位装置によって予め割り当てられた優先順位に基づいて前記入出力要求の順位を前記複数の下位装置毎に制御する優先順位管理部を有することを特徴とする情報記憶システム。
【００９７】
（付記１４）  前記優先順位管理部は、前記上位装置からの前記入出力要求の順位を前記複数の下位装置毎に管理する第１の管理部と、
前記下位装置への入出力を管理する第２の管理部とを有することを特徴とする付記１３記載の情報記憶システム。
【００９８】
（付記１５）  同じ優先順位の要求があった場合、後の要求を最下位にキューすることを特徴とする付記１３又は１４記載の情報記憶システム。
【００９９】
（付記１６）  前記優先順位管理部は、前記入出力要求に予め付与された優先順に基づいて前記第２の管理部に配列された前記入出力要求の順位を変更することを特徴とする付記１３又は１４記載の情報記憶システム。
【０１００】
（付記１７）  前記優先順位管理部は、前記入出力要求に基づいて優先管理を有効又は無効とすることを特徴とする付記１３乃至１６のいずれか一項記載の情報記憶システム。
【０１０１】
（付記１８）  前記優先順位管理部は、設定により時間監視を有効又は無効にできることを特徴とする付記１３乃至１７のいずれか一項記載の情報記憶システム。
【０１０２】
【発明の効果】
上述の如く、本発明によれば、上位装置からの入出力要求を上位装置によって付与された優先順位に基づいて第１のキュー管理部にキューさせ、第１のキュー管理部にキューされた待ち要求を、上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より高いときには第２のキュー管理部の最上位の位置にキューさせ、待ち要求の上位装置によって付与された優先順位が第２のキュー管理部にキューされた要求の上位装置によって付与された優先順位のうち最も高い優先順位より低い優先順位であるときには待ち要求を前記第２のキュー管理部の最下位の位置にキューさせることにより、上位装置によって付与された優先順位が高い要求を優先して処理でき、また、上位装置によって付与された優先順位が低い要求であっても大幅に待たせることなく処理できる等の特長を有する。
【０１０３】
また、本発明によれば、デバイスキューにおいて同じ優先順位の要求があった場合、後の要求を最下位にキューすることにより、優先順位が低い要求が大幅に待たされることがなくなるため、優先順位の低い要求の応答時間の大幅な遅延を防止できる等の特長を有する。
【図面の簡単な説明】
【図１】従来の一例のキューを説明するための図である。
【図２】本発明の一実施例のシステム構成図である。
【図３】ホストコンピュータ１０１からストレージシステム１０２に供給されるデータの構成図である。
【図４】コントローラ１２１のブロック構成図である。
【図５】コントローラ１２１の機能ブロック図である。
【図６】コントローラ１２１でのキューの状態を示す図である。
【図７】キュー管理テーブル１５０のデータ構成図である。
【図８】ホストコンピュータ１０１からの要求に対する処理フローチャートである。
【図９】ホストコンピュータ１０１への要求に対する応答時の処理フローチャートである。
【図１０】優先処理の具体例を説明するための図である。
【図１１】ＤＴＣの機能ブロック図を示す。
【符号の説明】
１００  システム
１０１  ホストコンピュータ
１０２  ストレージシステム
１２１  コントローラ
１２２  ディスクドライブ部
１３１、１５１、１９１  ＣＰＵ
１４０  ＣＡファームウェア
１４１  ＣＭファームウェア
１４２  ＤＡファームウェア
１４４  インタフェース制御機能
１４５  コマンド処理機能
１４６  リソース管理機能
１４７  キャッシュメモリ管理機能
１４８  ＲＡＩＤ制御機能
１４９  インタフェース制御機能
１５０  キュー管理テーブル
【図１】
0003908482.tif 000002
【図２】
0003908482.tif 000003
【図３】
0003908482.tif 000004
【図４】
0003908482.tif 000005
【図５】
0003908482.tif 000006
【図６】
0003908482.tif 000007
【図７】
0003908482.tif 000008
【図８】
0003908482.tif 000009
【図９】
0003908482.tif 000010
【図１０】
0003908482.tif 000011
【図１１】
0003908482.tif 000012