(57)【特許請求の範囲】
【請求項１】
命令処理装置ＩＰと、主記憶装置ＭＳと、一つ以上の入出力処理装置ＩＯＰと、前記入出力処理装置ＩＯＰ配下に接続される一つ以上のチャネル装置ＣＨと、前記チャネル装置ＣＨに接続される入出力装置Ｉ／Ｏとを有するコンピュータシステムのチャネルパス選択方法において、
前記主記憶装置ＭＳに、
前記各入出力処理装置ＩＯＰ毎に設けられ、その入出力処理装置ＩＯＰが処理するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣと、
前記入出力装置Ｉ／Ｏを制御するために、各入出力装置Ｉ／Ｏ毎に設けられた入出力装置制御語ＵＣＷと、
前記各入出力装置Ｉ／Ｏが、Ｉ／Ｏ命令を実行可能なチャネルパスの情報を格納する論理入出力制御装置語ＬＣＵＷとを保持し、
前記入出力装置制御語ＵＣＷは、前記論理入出力制御装置語ＬＣＵＷと関連付けられ、
前記論理入出力制御装置語ＬＣＵＷは、入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）格納領域を備え、
前記命令処理装置ＩＰは、Ｉ／Ｏ命令を実行するときには、そのＩ／Ｏ命令を実行するための前記入出力装置Ｉ／Ｏに対応する入出力装置制御語ＵＣＷを、前記Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録するようになっていて、
前記Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに、前記入出力装置制御語ＵＣＷを登録するときに、
前記入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）格納領域に格納される入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）をローテーションさせて、入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）を決定し、
その決定された入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）により前記入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）格納領域を更新し、
前記入出力装置制御語ＵＣＷを、その決定された入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）の入出力装置ＩＯＰに対応する前記Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録して、その入出力処理装置ＩＯＰ番号（ＬＱＩＯＰ＃）の入出力装置ＩＯＰ経由で、Ｉ／Ｏ命令が実行されるようにし、
さらに、前記論理入出力制御装置語ＬＣＵＷは、各入出力処理装置ＩＯＰ毎に、前記チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)格納領域を備え、
前記入出力処理装置ＩＯＰが、入出力装置制御語ＵＣＷをＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣから取り出して、Ｉ／Ｏ命令を実行するチャネル装置ＣＨを選択するときに、
その入出力装置制御語ＵＣＷに関連付けられた論理入出力制御装置語ＬＣＵＷのその入出力処理装置ＩＯＰに対応する前記チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)で示されるチャネル装置番号をローテーションさせて、チャネル装置番号を決定し、
その決定されたチャネル装置番号を示すように前記チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)を更新し、
その決定されたチャネル装置番号のチャネル経由で、そのＩ／Ｏ命令が実行されるようにすることを特徴とするチャネルパス選択方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、チャネルパス選択方法に係り、入出力動作をおこなう入出力装置Ｉ／Ｏ（Input/Output Device）が複数のチャネル装置ＣＨ（Channel）と接続されている入出力処理システムにおいて、その入出力装置Ｉ／Ｏを選択するときのチャネル経路（チャネルパス）の選択の偏りをなくし、システムのスループットを向上させるために好適なチャネルパス選択方法に関する。
【０００２】
【従来の技術】
メインフレームシステムでは、複数の入出力装置Ｉ／Ｏが複数のチャネル装置ＣＨと接続される入出力処理システムを持つのが一般的である。
【０００３】
このようなシステムの例として、特開２０００−６６９８７号公報の「入出力処理システム」がある。この従来技術では、Ｉ／Ｏ命令（入出力命令）を実行する方法の一つに、入出力処理装置ＩＯＰ（Input/Output Processor）毎に入出力待ち行列を導入している。Ｉ／Ｏ命令を実行するときには、命令処理装置ＩＰがＩ／Ｏ命令を実行する入出力処理装置ＩＯＰを選択して、その入出力処理装置ＩＯＰに対応した入出力待ち行列に入出力装置制御語ＵＣＷを登録する。そして、入出力処理装置ＩＯＰがその入出力待ち行列から入出力装置制御語ＵＣＷを取り出して、その入出力装置制御語ＵＣＷで示される入出力装置Ｉ／Ｏを接続する複数のチャネル装置ＣＨのうち、一つのチャネル装置ＣＨを選択して入出力装置Ｉ／Ｏを起動する。
【０００４】
また、入出力処理装置ＩＯＰがチャネル装置ＣＨを選択する処理の例としては、例えば、特開平１−２３７７４５「チャネルパス選択方式」が挙げられる。
【０００５】
【発明が解決しようとする課題】
以下、従来技術の問題点を説明するために、図１ないし図５を用いて従来技術の入出力システムの詳細について説明する。
【０００６】
先ず、図１を用いて入出力装置Ｉ／Ｏがチャネル装置ＣＨにより接続されている一般的なコンピュータシステムの構成について説明する。
図１は、入出力装置Ｉ／Ｏがチャネル装置ＣＨにより接続されている一般的なコンピュータシステムの構成図である。
【０００７】
一般的なコンピュータシステムの構成としては、命令処理装置ＩＰ１に、主記憶装置ＭＳ２が接続されていて、入出力システムとしては、入出力処理装置ＩＯＰ３０，３１がこれに接続されている。入出力処理装置ＩＯＰ３０には、配下に複数のチャネル装置ＣＨ４００〜４０ｉが接続されていて、一方の入出力処理装置ＩＯＰ３１には、配下に複数のチャネル装置ＣＨ４１０〜４１ｉが接続されている。
【０００８】
入出力装置Ｉ／Ｏ６００，６０１は、例えば、ハードディスクドライブなどの補助記憶装置やプリンタなどの出力装置である。
【０００９】
これらの入出力装置Ｉ／Ｏ６００，６０１は、入出力制御装置ＣＵ（Control Unit）５００，５０１を介して、チャネル装置ＣＨに接続されている。
【００１０】
すなわち、チャネル装置ＣＨ４００と４１０は、入出力制御装置ＣＵ５００を介して入出力装置Ｉ／Ｏ６００〜６０１に接続され、またチャネル装置ＣＨ４０１と４１１は、入出力制御装置ＣＵ５０１を介して入出力装置Ｉ／Ｏ６００，６０１に接続されている。
【００１１】
そして、入出力装置Ｉ／Ｏ６００，６０１は、入出力処理装置ＩＯＰ３０と３１の両方からアクセス可能な構成となっている。主記憶装置ＭＳ２は、命令処理装置ＩＰ1と入出力処理装置ＩＯＰ３０，３１で共有されている。
【００１２】
また、主記憶装置ＭＳ２には、入出力制御のために必要なテーブル類が保持され、必要に応じて、命令処理装置ＩＰ１や入出力処理装置ＩＯＰ３０，３１から参照されたり、更新される。
【００１３】
これらの入出力制御のためのデータ構造については、以下、図２および図３を用いて詳細に説明するものとする。
図２は、従来技術に係る入出力システムのデータ構造の模式図である。
図３は、従来技術に係る入出力システムのデータ構造の関連をあらわす模式図である。
【００１４】
図２（ａ）に示されるＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣ（Unit Control Word Chain）は、Ｉ／Ｏ命令の待ち行列の制御するためのテーブルであり、実際には、次に説明する入出力装置制御語ＵＣＷのチェーンを形成する。Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣは、各入出力処理装置ＩＯＰ毎に作られて、Ｉ／Ｏ命令は、対応する入出力処理装置ＩＯＰ経由で実行されることになる。
【００１５】
Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣの最初の１バイトは、命令処理装置ＩＰ１と入出力処理装置ＩＯＰ３０〜３１とのアクセスの競合を排他的に制御するために使用されるロックバイト(ＬＯＣＫ)である。１バイト空けた次の２バイトは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録されているＩ／Ｏ命令の数(ＮＵＣ, Number of UCW Chain)である。次の４バイトは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣの中の先頭と末尾のＩ／Ｏ命令に対応する入出力装置制御語ＵＣＷ番号(ＴＵＣＷＮＯ, Top-UCW-NO、ＢＵＣＷＮＯ, Bottom-UCW-NO)がそれぞれ記憶される。
【００１６】
図２（ｂ）に示される入出力装置制御語ＵＣＷ（Unit Control Word）は、入出力装置を制御するためのテーブルであり、各入出力装置Ｉ／Ｏと一対一に対応して作られる。Ｉ／Ｏ命令が発行されたときには、入出力装置制御語ＵＣＷは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録されて、Ｉ／Ｏ命令の待ち状態を表すことになる。
【００１７】
入出力装置制御語ＵＣＷの最初の１バイトは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣと同様のＬＯＣＫ、次の１バイトは、Ｉ／Ｏ命令起動時に命令処理装置ＩＰがそのＩ／Ｏ命令に対応する入出力装置制御語ＵＣＷを登録したＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに対応する入出力処理装置ＩＯＰ番号(ＬＱＩＯＰ＃, Logical Queue IOP Number)である。なお、記号に＃がついているのは、装置の番号であることを意味している。
【００１８】
次の１バイトは、Ｉ／Ｏ命令起動時に、入出力処理装置ＩＯＰが選択したチャネル装置ＣＨを示すマスク情報(ＬＰＵＭ, Logical Path Used Mask)である。１バイト空けた次の２バイトは、その入出力装置制御語ＵＣＷに関連付けられた論理入出力制御装置語ＬＣＵＷ番号(ＬＣＵＷＮＯ, LCUW-NO)、次の２バイトは、その入出力装置制御語ＵＣＷがＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録されているとき、次にＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録されている入出力装置制御語ＵＣＷ番号(ＮＵＣＷＮＯ, NEXT UCW-NO)である。すなわち、次に取出されて参照される予定の入出力装置制御語ＵＣＷを指すポインタのエリアである。次の１バイトは、当該入出力装置制御語ＵＣＷに対応する入出力装置Ｉ／Ｏに接続されているチャネル装置ＣＨの有効性を示すビット形式の情報(ＰＩＭ, Path Install Mask)、次の１バイトは、ＰＩＭで示されるチャネル装置ＣＨの中でＩ／Ｏ命令を実行するために、使用可能なチャネル装置ＣＨを示すビット形式の情報(ＰＡＭ, Path Available Mask)がそれぞれ記憶される。
【００１９】
図２（ｃ）に示される論理入出力制御装置語ＬＣＵＷ（Logical Control Unit Word）は、入出力装置Ｉ／Ｏを共有する入出力制御装置の集合体である論理入出力制御装置(ＬＣＵ, Logical Control Unit）の制御領域であり、この例では、各入出力装置Ｉ／ＯがＩ／Ｏ命令を実行可能なチャネルパスの情報を格納する領域となっている。
【００２０】
論理入出力制御装置語ＬＣＵＷの最初の１バイトは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣと同様のＬＯＣＫ、７バイト空けた次の８バイトは、論理入出力制御装置ＬＣＵに接続されるチャネル装置ＣＨの番号(チャネル装置ＣＨ＃０〜７)がそれぞれ記憶される。そして、関連付けられた入出力装置制御語ＵＣＷのＰＩＭ、ＰＡＭを参照することにより、入出力装置Ｉ／Ｏがどのチャネル装置ＣＨを使うかの情報を得ることができる。論理入出力制御装置語ＬＣＵＷのチャネル装置ＣＨ＃０〜７の各バイトは、前記入出力装置制御語ＵＣＷのＰＩＭとＰＡＭの各ビットに対応する。すなわち、例えば、ある入出力装置Ｉ／Ｏに、ＣＨ＃０〜＃４に格納されているチャネル装置番号のチャネル装置ＣＨが接続されているときには、対応するビットが立ち、２進数で‘１１１１００００’、１６進数で‘Ｆ０’となる。
【００２１】
なお、本明細書で、以下マスク情報について定数を表記するときには、１６進数であらわすものとする。
【００２２】
Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣ、入出力装置制御語ＵＣＷ、論理入出力制御装置語ＬＣＵＷの関連を示すと図３に示されるようになる。
【００２３】
入出力装置制御語ＵＣＷは、各々番号を持っており、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣが、このチェーン情報を保持する。入出力装置制御語ＵＣＷは、論理入出力制御装置語ＬＣＵＷと関連付けられて、論理入出力制御装置語ＬＣＵＷの番号を保持することにより、チャネル装置ＣＨの情報を参照する。
【００２４】
次に、図４および図５を用いて従来技術の係る入出力システムの問題点について具体例に基づき説明する。
図４は、従来技術に係る入出力システムのデータ構造の具体例を示す模式図である。
図５は、従来技術に係る入出力システムのチャネルパスの選択のローテーションを示す模式図である。
【００２５】
図１に示されるように、従来技術の入出力システムで、複数の入出力処理装置ＩＯＰと各入出力処理装置ＩＯＰ配下の複数のチャネル装置ＣＨを介して複数の入出力装置Ｉ／Ｏが接続される構成であったとする。
【００２６】
先ず、Ｉ／Ｏ命令が発行されたときに、チャネルパスを選択して入出力装置Ｉ／Ｏにより入出力動作をおこなうときの動作の概要について説明する。
【００２７】
命令処理装置ＩＰは、Ｉ／Ｏ命令を実行するときには、入出力装置Ｉ／Ｏが接続された複数の入出力処理装置ＩＯＰのうち一つの入出力処理装置ＩＯＰを選択し、その入出力処理装置ＩＯＰに対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに、その入出力装置Ｉ／Ｏに対応する入出力装置制御語ＵＣＷを登録する。そして、選択した入出力処理装置ＩＯＰの番号を、その入出力装置制御語ＵＣＷ内部の入出力処理装置ＩＯＰ番号(ＬＱＩＯＰ＃)の領域に格納する。
【００２８】
入出力処理装置ＩＯＰを選択するのは、ローテーションアルゴリズムによりおこなう。すなわち、同一の入出力装置Ｉ／Ｏに対してＩ／Ｏ命令が発行された場合に、命令処理装置ＩＰは、入出力装置制御語ＵＣＷに格納された入出力処理装置ＩＯＰ番号(ＬＱＩＯＰ＃)を参照して、その入出力処理装置ＩＯＰ番号をローテーションさせて、入出力処理装置ＩＯＰを選択し、その入出力処理装置ＩＯＰに対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷを登録する。
【００２９】
入出力処理装置ＩＯＰは、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録される入出力装置制御語ＵＣＷを定期的に取りだし、その入出力装置制御語ＵＣＷで示される入出力装置Ｉ／Ｏが接続される複数のチャネル装置ＣＨのうち１つのチャネル装置ＣＨを選択して、そのチャネル装置ＣＨに対してＩ／Ｏ命令の実行を指示して、選んだチャネル装置ＣＨに関する情報を、入出力装置制御語ＵＣＷに備えられた領域に選択したチャネル装置ＣＨを示すチャネル装置ＣＨマスク情報(ＬＰＵＭ)を格納する。
【００３０】
このチャネル装置ＣＨを選択するのも、ローテーションアルゴリズムによりおこなう。すなわち、入出力処理装置ＩＯＰは、入出力装置制御語ＵＣＷに格納されたチャネル装置ＣＨマスク情報を参照して、それから得られるチャネル装置ＣＨ番号をローテーションさせて、チャネル装置ＣＨを選択してＩ／Ｏ命令の実行を指示する。
【００３１】
次に、図１のシステム構成例に基づき、図４を用いて従来技術に係る入出力システムのチャネルパス選択の動作について具体的に説明する。
【００３２】
このシステムは、入出力装置Ｉ／Ｏ６００と入出力装置Ｉ／Ｏ６０１を持っている。
【００３３】
図４に示されるように、入出力装置Ｉ／Ｏ６００に対応する入出力装置制御語ＵＣＷが、入出力装置制御語ＵＣＷ０、入出力装置Ｉ／Ｏ６０１に対応する入出力装置制御語ＵＣＷが、入出力装置制御語ＵＣＷ１であるとする。
【００３４】
そして、入出力装置Ｉ／Ｏ６００と入出力装置６０１に対応する論理入出力制御装置語ＬＣＵＷは、共に、論理入出力制御装置語ＬＣＵＷ０であるものとする。
【００３５】
入出力装置Ｉ／Ｏ６００と入出力装置６０１は、共に、チャネル装置ＣＨ４００、チャネル装置ＣＨ４０１、チャネル装置ＣＨ４１０、チャネル装置４１１に接続されているものとする。
【００３６】
この内で、チャネル装置ＣＨ４００とチャネル装置ＣＨ４０１は、入出力処理装置ＩＯＰ３０接続され制御され、チャネル装置ＣＨ４１０とチャネル装置ＣＨ４１１に接続され制御される。
【００３７】
このような状況下において、入出力装置Ｉ／Ｏ６００に対するＩ／Ｏ命令の起動処理において、命令処理装置ＩＰが、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０を登録するときに、入出力装置制御語ＵＣＷ０のＬＱＩＯＰ＃に選択した入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃＝０１)を格納したものとする。すなわち、これは、入出力装置Ｉ／Ｏ６００が最後に使った入出力処理装置が入出力処理装置ＩＯＰ１であることを意味する。
【００３８】
また、入出力処理装置ＩＯＰ０が、入出力装置Ｉ／Ｏ６００のチャネルパスを選択するときに、選択したチャネル装置ＣＨを示すマスク情報(ＬＰＵＭ＝'２０')を格納したものとする。
【００３９】
これは、ＣＨ＃２に格納されたチャネル装置ＣＨ４１０が入出力装置Ｉ／Ｏ６００を使用するために最後に選択されたチャネル装置ＣＨであることを意味する。
【００４０】
同様に、入出力装置Ｉ／Ｏ６０１に対するＩ／Ｏ命令の起動処理において、命令処理装置ＩＰが、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ１を登録するときに、入出力装置制御語ＵＣＷ１のＬＱＩＯＰ＃に選択した入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃＝０１)を格納したものとする。
【００４１】
また、入出力処理装置ＩＯＰ１が、入出力装置Ｉ／Ｏ６０１のチャネルパスを選択するときに、選択したチャネル装置ＣＨを示すマスク情報(ＬＰＵＭ＝'２０')を格納したものとする。
【００４２】
ここで、図４に示されるように、入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１の入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃)とチャネル装置ＣＨを示すマスク情報(ＬＰＵＭ)の番号が共に等しくなっていることに注意する。
【００４３】
ここで、プログラムが、入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番にＩ／Ｏ命令を発行したとする。
【００４４】
このときに、先ず、命令処理装置ＩＰは、入出力装置Ｉ／Ｏ６００に対応する入出力装置制御語ＵＣＷ０のＬＱＩＯＰ＃を参照して、ＬＱＩＯＰ＃＝０１であるため、ローテーションアルゴリズムにより、入出力装置Ｉ／Ｏ６００が接続されている入出力処理装置ＩＯＰを入出力処理装置ＩＯＰ２→３→・・・→７→０→１の順番にチェックする。入出力処理装置ＩＯＰ２〜入出力処理装置ＩＯＰ７の入出力処理装置ＩＯＰは、実際には存在しないので、この結果、入出力処理装置ＩＯＰ１の次に選択する入出力処理装置ＩＯＰ０であることが分かる。
【００４５】
そして、入出力装置Ｉ／Ｏ６００が接続される入出力処理装置ＩＯＰ０(入出力処理装置ＩＯＰ３０)を選択し、その入出力処理装置ＩＯＰ０に対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０を登録し、入出力装置制御語ＵＣＷ０のＬＱＩＯＰ＃を’００’に更新する。
【００４６】
次に、命令処理装置ＩＰは、入出力装置Ｉ／Ｏ６０１に対応する入出力装置制御語ＵＣＷ１のＬＱＩＯＰ＃を参照し、ＬＱＩＯＰ＃＝０１であるため、ローテーションアルゴリズムにより、入出力装置Ｉ／Ｏ６００が接続されている入出力処理装置ＩＯＰを入出力処理装置ＩＯＰ２→３→・・・→７→０→１の順番にチェックして、入出力処理装置ＩＯＰ１の次に選択する入出力処理装置ＩＯＰ０であることが分かる。
【００４７】
そして、その入出力処理装置ＩＯＰ０に対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ１を登録し、入出力装置制御語ＵＣＷ１のＬＱＩＯＰ＃を’００’に更新する。
【００４８】
このように、入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１の入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃)が等しいときには、次に選ぶ入出力処理装置ＩＯＰが衝突することになる。
【００４９】
次に、プログラムが入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番に再度Ｉ／Ｏ命令を発行すると、入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１の入出力処理装置ＩＯＰの番号は、共に、ＬＱＩＯＰ＃＝０１になるので、やはり、次に選ぶ入出力処理装置ＩＯＰが衝突することになる。
【００５０】
このように、複数の入出力装置Ｉ／Ｏに対してＩ／Ｏ命令を発行すると、入出力装置制御語ＵＣＷの内容如何によっては、命令処理装置ＩＰは、同一入出力処理装置ＩＯＰのＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録する事態におちいり、入出力処理装置ＩＯＰへの負荷の集中によりオーバーヘッドが増大する可能性がある。
【００５１】
また、上記のようにプログラムが入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番にＩ／Ｏ命令を発行して、命令処理装置ＩＰが入出力処理装置ＩＯＰ０のＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１を登録すると、入出力処理装置ＩＯＰ０は、以下のようにして、使用するチャネルパスを選択する。
【００５２】
先ず、入出力処理装置ＩＯＰ０は、入出力装置制御語ＵＣＷ０のＬＰＵＭとＰＡＭ、および、論理入出力制御装置語ＬＣＵＷ０のチャネル装置ＣＨ＃を参照する。このとき、図４（ａ）に示されているように、ＰＡＭ＝'Ｆ０'でかつＬＰＵＭ＝'２０'である。これは、入出力装置が現在使うことのできるチャネル装置がＣＨ＃０ないしＣＨ＃３に格納されているチャネル装置番号のチャネルであり、最後に選択したチャネル装置がＣＨ＃２＝ＣＨ４１０であることを意味する。
【００５３】
したがって、入出力処理装置ＩＯＰ０は、自入出力処理装置ＩＯＰ配下で、かつ、入出力装置Ｉ／Ｏ６００が接続されるチャネル装置ＣＨを、ローテーションアルゴリズムにより、チャネル装置ＣＨ４１１→４００→４０１→４１０の順番にチェックする。チャネル装置ＣＨ４１１は、入出力処理装置ＩＯＰ０には接続されていないので、入出力処理装置ＩＯＰ０の配下であり、かつ、入出力装置Ｉ／Ｏ６００が接続されるチャネル装置ＣＨ４００を選択する。そして、そのチャネル装置ＣＨに対してＩ／Ｏ命令を実行し、入出力装置制御語ＵＣＷ０のＬＰＵＭを、ＣＨ＃０＝ＣＨ４００を選択したことを示す'８０'に更新する。
【００５４】
その結果、入出力装置Ｉ／Ｏ６００に対するＩ／Ｏ命令は、チャネル装置ＣＨ４００、入出力制御装置ＣＵ５００を介したチャネルパスで実行されたこととなる。
【００５５】
次に、入出力処理装置ＩＯＰ０は、入出力装置制御語ＵＣＷ１のＬＰＵＭとＰＡＭ、および、論理入出力制御装置語ＬＣＵＷ０のチャネル装置ＣＨ＃を参照する。
【００５６】
このときも、図４（ａ）に示されているように、ＰＡＭ＝'Ｆ０'でかつＬＰＵＭ＝'２０'であるため、出力処理装置ＩＯＰ０は、自入出力処理装置ＩＯＰ配下で、かつ、入出力装置Ｉ／Ｏ６０１が接続されるチャネル装置ＣＨを、ローテーションアルゴリズムにより、チャネル装置ＣＨ４１１→４００→４０１→４１０の順番にチェックする。そして、先ほどと同様に、入出力装置Ｉ／Ｏ６０１が接続されるチャネル装置ＣＨ４００を選択し、そのチャネル装置ＣＨに対してＩ／Ｏ命令を実行し、入出力装置制御語ＵＣＷ１のＬＰＵＭを、ＣＨ＃０＝ＣＨ４００を選択したことを示す'８０'に更新する。
【００５７】
その結果、入出力装置Ｉ／Ｏ６０１に対するＩ／Ｏ命令もチャネル装置ＣＨ４００、入出力制御装置ＣＵ５００を介したチャネルパスで実行されたこととなる。
【００５８】
このように、入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１が、同じ論理入出力制御装置語ＬＣＵＷを使い、チャネル装置ＣＨを示すマスク情報(ＬＰＵＭ)が同じ値を持つときには、使われるチャネルパスが衝突することになる。
【００５９】
次に、プログラムが入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番に再度Ｉ／Ｏ命令を発行して、命令処理装置ＩＰが入出力処理装置ＩＯＰ０のＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０と入出力装置制御語ＵＣＷ１を登録するときチャネルパスの選択について考える。
【００６０】
このときには、入出力装置Ｉ／Ｏ６００を実行する入出力処理装置ＩＯＰの番号が、入出力装置制御語ＵＣＷ０のＬＱＩＯＰ＃＝０１になっているので、入出力処理装置ＩＯＰ１が、次の使用するチャネルパスを選択することに留意する。
【００６１】
入出力装置制御語ＵＣＷ０のＬＰＵＭが、ＣＨ＃０＝ＣＨ４００を選択して、'８０'に更新されているので、自入出力処理装置ＩＯＰ配下で、かつ、入出力装置Ｉ／Ｏ６００が接続されるチャネル装置ＣＨを、ローテーションアルゴリズムにより、チャネル装置ＣＨ４０１→４１０→４１１→４００の順番にチェックする。そして、今度の場合には、入出力処理装置ＩＯＰ１が接続されている次のチャネル装置ＣＨであるチャネル装置ＣＨ４１０を選択し、そのチャネル装置ＣＨに対してＩ／Ｏ命令を実行し、入出力装置制御語ＵＣＷ０のＬＰＵＭを、ＣＨ＃２＝ＣＨ４１０を選択したことを示す'２０'に更新する。
【００６２】
この結果、入出力装置Ｉ／Ｏ６００に対するＩ／Ｏ命令はチャネル装置ＣＨ４１０、入出力制御装置ＣＵ５００を介したチャネルパスで実行されたこととなる。
【００６３】
また、同様に、入出力装置Ｉ／Ｏ６０１を実行する入出力処理装置ＩＯＰの番号が、入出力装置制御語ＵＣＷ１のＬＱＩＯＰ＃＝０１になっているので、入出力処理装置ＩＯＰ１が、次の使用するチャネルパスを選択する。
【００６４】
そして、上と同様に、入出力処理装置ＩＯＰ１が接続されている次のチャネル装置ＣＨであるチャネル装置ＣＨ４１０を選択し、そのチャネル装置ＣＨに対してＩ／Ｏ命令を実行し、入出力装置制御語ＵＣＷ１のＬＰＵＭを、ＣＨ＃２＝ＣＨ４１０を選択したことを示す'２０'に更新する。
【００６５】
このように、複数の入出力装置Ｉ／Ｏに対してＩ／Ｏ命令を発行すると、入出力装置制御語ＵＣＷの内容如何によっては、入出力処理装置ＩＯＰは、同じチャネルパスを選択するする事態におちいり、チャネル装置ＣＨの負荷の集中によりオーバーヘッドが増大する可能性がある。
【００６６】
また、上記ローテーションアルゴリズムにおいては、入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）と、チャネル装置ＣＨを示すマスク情報(ＬＰＵＭ)を共にローテーションさせるため、チャネルパスの使用頻度に偏りが生じることとなる。
【００６７】
すなわち、上記の例では、入出力処理装置ＩＯＰ０の配下のチャネル装置ＣＨの先頭にあるＣＨ＃０＝ＣＨ４００と、入出力処理装置ＩＯＰ１の配下のチャネル装置ＣＨの先頭にあるＣＨ＃２＝ＣＨ４１０のみが偏って選択されることになる。
【００６８】
上の例で、チャネル装置ＣＨを示すマスク情報の番号をローテーションさせると様子を図示すると、図５のようになる。一番、左側にあるのがローテーションの出発点であり、一番、右側にあり矩形で囲まれた番号のチャネル装置ＣＨが選択されるチャネル装置ＣＨである。
【００６９】
上記現象は、例に示した構成以外においても、複数入出力処理装置ＩＯＰと複数のチャネル装置ＣＨ（最大８チャネル装置ＣＨ）を介して同一の複数の入出力装置Ｉ／Ｏを接続する構成で起こり得る。また、最近のチャネル装置ＣＨは一つのチャネル装置ＣＨで入出力動作を多重に実行可能であるため、このようなチャネル装置ＣＨを介して接続される入出力装置Ｉ／ＯでＩ／Ｏ命令の実行時には、さらにチャネルパスの使用頻度が偏る可能性があり、またチャネル装置ＣＨ側でも負荷の集中によるオーバーヘッドが増大する可能性がある。その結果、資源を有効利用できないだけでなく、入出力システム全体の性能低下を招く恐れがある。
【００７０】
本発明は、上記問題点を解決するためになされたもので、その目的は、入出力装置Ｉ／Ｏが複数のチャネル装置ＣＨに接続され、それらのチャネル装置ＣＨが複数の入出力処理装置ＩＯＰにまたがるような構成を持つ入出力システムにおいて、Ｉ／Ｏ命令を実行する場合に、入出力装置Ｉ／Ｏに接続された複数のチャネルパスの負荷の偏りを回避し、チャネルパスを均等に選択して、チャネルパス資源を有効利用することで、計算機システムの処理性能の向上をもたらすことができるチャネルパス選択方法を提供することにある。
【００７１】
【課題を解決するための手段】
従来技術では、Ｉ／Ｏ命令が発行されたときに、入出力装置Ｉ／Ｏ毎に設けられる入出力装置制御語ＵＣＷの中に入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）を設けて、この値をローテーションさせて使われる入出力処理装置ＩＯＰを選択していた。
【００７２】
また、チャネルパスの選択も、入出力装置制御語ＵＣＷの中に設けられたチャネル装置ＣＨを示すマスク情報（ＬＰＵＭ）によりおこなっていた。
【００７３】
本発明では、入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）を論理入出力制御装置語ＬＣＵＷに置き、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷを登録するときには、この論理入出力制御装置語ＬＣＵＷ内に置かれた入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）をローテーションさせて、それに対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷを登録することにより、入出力処理装置ＩＯＰが均等に使われるようにする。
【００７４】
また、ローテーションさせるチャネル装置ＣＨのマスク情報を、論理入出力制御装置語ＬＣＵＷ内におき、かつ、そのマスク情報を、入出力処理装置ＩＯＰ毎に設けることにより、チャネル装置ＣＨが均等に選択されるようにする。
【００７５】
このようにすることにより、入出力装置Ｉ／Ｏが複数のチャネル装置ＣＨに接続され、それらのチャネル装置ＣＨが複数の入出力処理装置ＩＯＰにまたがるような構成においてＩ／Ｏ命令を実行する場合に、入出力装置Ｉ／Ｏに接続された複数のチャネルパスを効率良く選択することで、チャネルパス資源を有効活用することが可能となる。
【００７６】
【発明の実施の形態】
以下、図６ないし図１０を用いて本発明に係る一実施形態を説明する。
【００７７】
ここで、本実施形態で説明するコンピュータシステム構成としては、従来技術の説明した図１の構成と同様のものとする。
【００７８】
先ず、図６を用いて本発明に係る入出力システムのデータ構造の概要について説明する。
図６は、本発明に係る入出力システムのデータ構造の模式図である。
【００７９】
図６（ａ）に示されるＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣについては、本発明でも、従来技術と変わることなく、入出力処理装置ＩＯＰ毎に作られること、その機能、各エントリの意味も同様である。
【００８０】
図６（ｂ）に示される入出力装置制御語ＵＣＷについては、入出力装置Ｉ／Ｏ毎に作られること、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録されて、チェーンを形成することについても従来技術と同様であり、その機能も等しい。各エントリの意味付けもほぼ同様であるが、図６から分かるように、従来技術の入出力装置制御語ＵＣＷが持っていた入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）、チャネル装置ＣＨを示すマスク情報（ＬＰＵＭ）を持っていないことに留意する。
【００８１】
図６（ｃ）に示される論理入出力制御装置語ＬＣＵＷ（Logical Control Unit Word）は、入出力装置Ｉ／Ｏを共有する入出力制御装置の集合体である論理入出力制御装置(ＬＣＵ）のテーブルであり、各入出力装置Ｉ／ＯがＩ／Ｏ命令を実行可能なチャネルパスの情報を格納する領域となっていることは、従来技術と同様であるが、本発明の論理入出力制御装置語ＬＣＵＷは、従来技術と比べて機能が拡張されている。
【００８２】
すなわち、ＬＯＣＫバイトと、チャネル番号を格納するＣＨ＃０〜ＣＨ＃８の意味付けは、同様であるが、入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）と、チャネル装置ＣＨの制御情報(ＬＳＥＰＭ, Logical SElective Path Mask)が新たに設けられている。
【００８３】
入出力処理装置ＩＯＰの番号（ＬＱＩＯＰ＃）は、入出力装置制御語ＵＣＷをＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録するときに、どの入出力処理装置ＩＯＰに対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣを使うかを決定するために、ローテーションされて使われる情報である。
【００８４】
すなわち、これは、Ｉ／Ｏ命令が入出力装置Ｉ／Ｏで処理されるときに、どの入出力処理装置ＩＯＰが使われるのかを意味する。
【００８５】
また、チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)は、入出力処理装置ＩＯＰがチャネルパスを選択するときに、どのチャネルを使うのかのチャネル装置番号をローテーションさせて使われる情報である。このチャネル装置ＣＨの制御情報(ＬＳＥＰＭ)も、ＰＩＭ、ＰＡＭと同様に、各ビットは、論理入出力制御装置語ＬＣＵＷのチャネル装置ＣＨ＃０〜７の各バイトに対応して取られる。例えば、ＣＨ＃１に格納されている番号のチャネル装置ＣＨを選択するときには、対応するビットが立ち、２進数で‘０１００００００’、１６進数で‘４０’となる。
【００８６】
チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)の各エントリは、入出力処理装置ＩＯＰ毎に取られることに特徴がある。
【００８７】
次に、図７ないし図１０を用いて本発明のチャネルパス選択方法の処理について、具体例に基づき説明する。
図７は、本発明に係る入出力システムのデータの具体例を示す模式図である。
図８は、本発明に係る入出力システムのチャネルパスの選択のローテーションを示す模式図である。
図９は、本発明に係る入出力システムの入出力処理装置ＩＯＰを決定して、入出力装置制御語ＵＣＷを登録するまでのフローチャートである。
図１０は、本発明に係る入出力システムのチャネルパスを選択して、Ｉ／Ｏ命令を実行するまでのフローチャートである。
【００８８】
本実施形態でも、入出力装置Ｉ／Ｏ６００に対応する入出力装置制御語ＵＣＷが、入出力装置制御語ＵＣＷ０、入出力装置Ｉ／Ｏ６０１に対応する入出力装置制御語ＵＣＷが、入出力装置制御語ＵＣＷ１であるとする。
【００８９】
そして、入出力装置Ｉ／Ｏ６００と入出力装置６０１に対応する論理入出力制御装置語ＬＣＵＷは、共に、論理入出力制御装置語ＬＣＵＷ０であることは、従来技術と同様である。
【００９０】
また、入出力装置Ｉ／Ｏ６００と入出力装置６０１は、共に、チャネル装置ＣＨ４００、チャネル装置ＣＨ４０１、チャネル装置ＣＨ４１０、チャネル装置４１１に接続されているものとする。
【００９１】
このような状況下において、入出力装置Ｉ／Ｏ６００に対するＩ／Ｏ命令の起動処理において、命令処理装置ＩＰが、Ｉ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０を登録するときに、論理入出力制御装置語ＬＣＵＷ０のＬＱＩＯＰ＃に選択した入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃＝０１)を格納したものとする。これは、入出力装置Ｉ／Ｏ６００が最後に使った入出力処理装置が入出力処理装置ＩＯＰ１であることを意味することは、従来技術と同様であるが、そのエントリが入出力装置制御語ＵＣＷ０の中ではなく、論理入出力制御装置語ＬＣＵＷ０にあることに留意する。
【００９２】
また、チャネル装置ＣＨの制御情報(ＬＳＥＰＭ)は、ＬＳＥＰＭ０，ＬＳＥＰＭ１の二つがあり、ＬＳＥＰＭ０が、入出力処理装置ＩＯＰ０に対応し、ＬＳＥＰＭ１が、入出力処理装置ＩＯＰ１に対応している。この図７（ｂ）に示す例では、ＬＳＥＰＭ０='４０'になっているので、入出力処理装置ＩＯＰ０で最後に選択されたチャネル装置ＣＨが、ＣＨ＃１＝ＣＨ４０１であることを意味している。また、ＬＳＥＰＭ１='１０'になっているので、入出力処理装置ＩＯＰ１で最後に選択されたチャネル装置ＣＨが、ＣＨ＃３＝ＣＨ４１１であることを意味している。
【００９３】
ここで、プログラムが、入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番にＩ／Ｏ命令を発行したとする。
【００９４】
このときに、上記の具体例に基づき、図９および図１０のフローチャートを追いながら本発明のチャネルパス選択方法の処理について説明する。
【００９５】
先ず、図９に示されるように、入出力装置Ｉ／Ｏ６００に対応する入出力装置制御語ＵＣＷ０から、論理入出力制御装置語ＬＣＵＷ番号(ＬＣＵＷＮＯ＝０)のＬＣＵＷを読出し（ステップ６−１）、入出力処理装置ＩＯＰの番号(ＬＱＩＯＰ＃＝０１)を読出す（ステップ６−２）。
【００９６】
次に、ＬＱＩＯＰ＃＝０７であるか否かを判定して（ステップ６−３）、ＬＱＩＯＰ＃＝０７のときは、ローテーションの先頭に戻り、ＬＱＩＯＰ＃＝００とし（ステップ６−４）、そうでないときには、ＬＱＩＯＰ＃に１を加算する（ステップ６−５）。
【００９７】
この例では、ＬＱＩＯＰ＃＝０１なので、上記の処理により、ＬＱＩＯＰ＃＝００となる。
【００９８】
そして、ＬＱＩＯＰ＃で示される入出力処理装置ＩＯＰ配下に、Ｉ／Ｏ命令を発行する入出力装置Ｉ／Ｏを起動可能なチャネル装置ＣＨが存在するか否かを判定し（ステップ６−６）、存在しないときには、ステップ６−３からのループを継続し、存在するときには、論理入出力制御装置語ＬＣＵＷのＬＱＩＯＰ＃のエントリを更新する（ステップ６−７）。
【００９９】
そして、選択した入出力処理装置ＩＯＰ、すなわち、ＬＱＩＯＰ＃で示される入出力処理装置ＩＯＰに対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに、入出力装置制御語ＵＣＷを登録する（ステップ６−８）。
【０１００】
この例では、入出力処理装置ＩＯＰ０のＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに入出力装置制御語ＵＣＷ０が入れられる。
【０１０１】
この結果、入出力装置Ｉ／Ｏ６００に対してなされたＩ／Ｏ命令は、入出力処理装置ＩＯＰ０経由で実行されることになる。
【０１０２】
この状態で、入出力処理装置ＩＯＰ０は、Ｉ／Ｏ命令を一定時間間隔で、キューから取出して、入出力装置Ｉ／Ｏを起動する。
【０１０３】
図１０に示されるように、入出力処理装置ＩＯＰ０に対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣを読み出して、Ｉ／Ｏ命令が存在する否か、すなわち、ＮＣＵ＝０であるか否かを判定し（ステップ７−２）、存在するときには、先頭の入出力装置制御語ＵＣＷ番号(ＴＵＣＷＮＯ)に対応する入出力装置制御語ＵＣＷを取出す（ステップ７−３）。ここでは、それが、入出力装置制御語ＵＣＷ０であったものとして説明する。存在しないときには、終了になる。
【０１０４】
そして、その入出力装置制御語ＵＣＷ０に対応している論理入出力制御装置語ＬＣＵＷ番号(ＬＣＵＷＮＯ＝０)のＬＣＵＷを読出し（ステップ７−４）、次に、論理入出力制御装置語ＬＣＵＷの中の入出力処理装置ＩＯＰ０に対応するチャネル装置ＣＨの制御情報(ＬＳＥＰＭ０＝'４０')を読出す（ステップ７−５）。
【０１０５】
次に、 ＬＳＥＰＭ０＝'０１'であるか否かを判定して（ステップ７−６）、ＬＳＥＰＭ０＝'０１'のときは、ローテーションの先頭に戻り、ＬＳＥＰＭ０＝'８０'とし（ステップ７−７）、そうでないときには、ＬＳＥＰＭ０を右に１ビットシフトする（ステップ７−８）。
【０１０６】
そして、そのＬＳＥＰＭ０が１のビットに対応するＰＡＭが１であるか、すなわち、対応するチャネル装置ＣＨが使用可能か否かを判定し（ステップ７−９）、ＰＡＭが１のときには、そのビットに対応するチャネル装置ＣＨが、自入出力処理装置ＩＯＰ配下であるか否かを判定する（ステップ７−１０）。これらの判定のいずれかが成り立たないときには、ステップ７−６からの判定をくり返す。
【０１０７】
ビットに対応するチャネル装置ＣＨが、自入出力処理装置ＩＯＰ配下のときには、論理入出力制御装置語ＬＣＵＷの中の自入出力処理装置ＩＯＰに対するＬＳＥＰＭを更新し（ステップ７−１１）、ステップ７−９，７−１０で選択した、すなわち、ＰＡＭのビットに対応するチャネル装置ＣＨにより、入出力装置Ｉ／Ｏを起動する（ステップ７−１２）。
【０１０８】
この例では、ＬＳＥＰＭ０＝'４０'は、ＣＨ＃１＝ＣＨ４０１を意味するので、、入出力処理装置ＩＯＰ０に接続されているＰＡＭ情報も参照して、入出力処理装置ＩＯＰ０配下のＣＨ＃０＝ＣＨ４００を選択して、それを表すチャネル装置ＣＨの制御情報(ＬＳＥＰＭ０＝'８０')のビットを格納して、そのＣＨ４００のチャネル装置ＣＨにより、入出力装置Ｉ／Ｏ６００を起動する。
【０１０９】
次に、入出力装置Ｉ／Ｏ６０１を起動するときには、入出力装置制御語ＵＣＷ１の論理入出力制御装置語ＬＣＵＷ０の入出力処理装置ＩＯＰの番号は、ＬＱＩＯＰ＃＝００になっているので、これをローテーションさせて、ＬＱＩＯＰ＃＝０１となる。したがって、入出力装置制御語ＵＣＷ１は、入出力処理装置ＩＯＰ１に対応するＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録され、その結果、入出力装置Ｉ／Ｏ６０１に対してなされたＩ／Ｏ命令は、入出力処理装置ＩＯＰ１経由で実行されることになる。
【０１１０】
また、この入出力装置制御語ＵＣＷ１を取出して、チャネルパスを選択するときには、論理入出力制御装置語ＬＣＵＷ０の中の入出力処理装置ＩＯＰ１に対応するチャネル装置ＣＨの制御情報(ＬＳＥＰＭ１＝'１０')を読出して、ローテーションアルゴリズムと、入出力処理装置ＩＯＰ１に接続されているＰＡＭ情報により、入出力処理装置ＩＯＰ１配下のＣＨ＃２＝ＣＨ４１０を選択して、それを表すチャネル装置ＣＨの制御情報(ＬＳＥＰＭ１＝'２０')のビットを格納して、そのＣＨ４１０のチャネル装置ＣＨにより、入出力装置６０１を起動する。
【０１１１】
その後に、再度、プログラムが、入出力装置Ｉ／Ｏ６００→入出力装置Ｉ／Ｏ６０１の順番にＩ／Ｏ命令を発行したとする。
【０１１２】
論理入出力制御装置語ＬＣＵＷ０の中の入出力処理装置ＩＯＰの番号は、ＬＱＩＯＰ＃＝０１、チャネル装置ＣＨの制御情報ＬＳＥＰＭ０＝'８０'、ＬＳＥＰＭ１＝'２０'である。
【０１１３】
このときに、上と同じ処理をおこなって、入出力装置Ｉ／Ｏ６００に対応する入出力装置制御語ＵＣＷ０は、入出力処理装置ＩＯＰ０のＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録され、入出力装置Ｉ／Ｏ６００を起動するのに使用するチャネル装置ＣＨは、ＣＨ＃１＝ＣＨ４０１である。
【０１１４】
また、入出力装置Ｉ／Ｏ６０１に対応する入出力装置制御語ＵＣＷ１は、入出力処理装置ＩＯＰ１のＩ／Ｏ命令の待ち行列制御領域ＵＣＷＣに登録され、入出力装置Ｉ／Ｏ６０１を起動するのに使用するチャネル装置ＣＨは、ＣＨ＃３＝ＣＨ４１１である。
【０１１５】
このように、本発明のチャネルパス選択方法によれば、入出力処理装置ＩＯＰとその中でのチャネル装置の選択に偏りが生ずることなく、必ず均等に選択される。
【０１１６】
すなわち、論理入出力制御装置語ＬＣＵＷに入出力処理装置ＩＯＰ毎にチャネル装置ＣＨの制御情報(ＬＳＥＰＭ)を設けることで同一論理入出力制御装置語ＬＣＵＷに関連付けられた入出力装置制御語ＵＣＷが、使用する複数のチャネルパスへの負荷の偏りを回避して、チャネルパス資源を有効活用することができる。
【０１１７】
【発明の効果】
本発明によれば、入出力装置Ｉ／Ｏが複数のチャネル装置ＣＨに接続され、それらのチャネル装置ＣＨが複数の入出力処理装置ＩＯＰにまたがるような構成を持つ入出力システムにおいて、Ｉ／Ｏ命令を実行する場合に、入出力装置Ｉ／Ｏに接続された複数のチャネルパスの負荷の偏りを回避し、チャネルパスを均等に選択して、チャネルパス資源を有効利用することで、計算機システムの処理性能の向上をもたらすことができる。
【図面の簡単な説明】
【図１】入出力装置Ｉ／Ｏがチャネル装置ＣＨにより接続されている一般的なコンピュータシステムの構成図である。
【図２】従来技術に係る入出力システムのデータ構造の模式図である。
【図３】従来技術に係る入出力システムのデータ構造の関連をあらわす模式図である。
【図４】従来技術に係る入出力システムのデータ構造の具体例を示す模式図である。
【図５】従来技術に係る入出力システムのチャネルパスの選択のローテーションを示す模式図である。
【図６】本発明に係る入出力システムのデータ構造の模式図である。
【図７】本発明に係る入出力システムのデータの具体例を示す模式図である。
【図８】本発明に係る入出力システムのチャネルパスの選択のローテーションを示す模式図である。
【図９】本発明に係る入出力システムの入出力処理装置ＩＯＰを決定して、入出力装置制御語ＵＣＷを登録するまでのフローチャートである。
【図１０】本発明に係る入出力システムのチャネルパスを選択して、Ｉ／Ｏ命令を実行するまでのフローチャートである。
【符号の説明】
１…命令処理装置、２…主記憶装置、３０〜３１…入出力処理装置、４００〜４０ｉ／４１０〜４１ｉ…チャネル、５００〜５０１…入出力装置、６００〜６０１…入出力装置。
【図１】
0003950672.tif 000002
【図２】
0003950672.tif 000003
【図３】
0003950672.tif 000004
【図４】
0003950672.tif 000005
【図５】
0003950672.tif 000006
【図６】
0003950672.tif 000007
【図７】
0003950672.tif 000008
【図８】
0003950672.tif 000009
【図９】
0003950672.tif 000010
【図１０】
0003950672.tif 000011