(57)【特許請求の範囲】
【請求項１】
一つまたは複数のチャネル処理装置（ＣＨＰ）と、前記ＣＨＰ配下に接続される一つまたは複数のチャネル装置（ＣＨ）と、前記ＣＨと接続される一つまたは複数の入出力装置（Ｉ／Ｏ）を有し、前記ＣＨと一つまた複数の前記Ｉ／Ｏ間で入出力動作を多重に実行する入出力処理システムであって、
主記憶装置（ＭＳ）上に、ＣＨＰとＣＨの間でＩ／Ｏ割込み情報を交換するための記憶領域（ＣＣＡ）を各ＣＨ毎に備え、各ＣＣＡは２つ以上のブロック（ＣＣＡブロック）で構成され、
ＣＨは、入出力動作を多重に実行している一つまたは複数のＩ／Ｏからの割込み情報（Ｉ／Ｏ割込み情報）を自ＣＨに対応するＣＣＡにＣＣＡブロック単位に順次格納する手段と、あるＣＣＡブロックに最初にＩ／Ｏ割込み情報を格納するときにＣＨＰに割込み報告を行う手段と、ＣＨＰから前記割込み報告に対する割込み受付け許可報告を受け取ると、前記割込み報告を行ってから前記割込み受付け許可報告を受け取るまでの間にＩ／Ｏ割込み情報を格納したＣＣＡブロックをＣＨＰに通知する手段を備え、
ＣＨＰは、ＭＳ上のＣＨに対応するＣＣＡの前記ＣＣＡブロックに格納されたＩ／Ｏ割込み情報を参照して、ＣＣＡブロック単位にＩ／Ｏ割込み処理を一括して実行する手段を備える、
ことを特徴とする入出力処理システム。
【請求項２】
請求項１記載の入出力処理システムにおいて、
ＣＨは、ＣＨＰが未使用であるＣＣＡブロックをチェックして、当該ＣＣＡブロックにＩ／Ｏからの割込み情報を順次格納する手段を備え、
ＣＨＰは、Ｉ／Ｏ割込み処理を一括して実行すると、当該ＣＣＡブロックを未使用とする手段を備える、
ことを特徴とする入出力処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は入出力処理システムに係り、特にチャネル処理装置（ＣＨＰ）配下のチャネル装置（ＣＨ）と入出力装置（Ｉ／Ｏ）との間で入出力動作のやりとりを多重に実行可能な入出力処理システムに対して好適なＩ／Ｏの割込み処理方式に関する。
【０００２】
【従来の技術】
近年、ＣＨとＩ／Ｏ間で入出力動作のやりとりを多重に実行可能なプロトコルを採用した入出力処理システムが出現している。この入出力動作のやりとりが多重に動作可能なプロトコルの例としては、ＡＮＳＩ（Ａmerican Ｎational Ｓtandards Ｌnstitute）に規格化されているＸ３.２３０−１９９Ｘ「ＦＩＢＲＥ ＣＨＡＮＮＥＬ ＰＨＹＳＩＣＡＬ ＡＮＤ ＳＩＧＮＡＬＩＮＧ ＩＮＴＥＲＦＡＣＥ（ＦＣ−ＰＨ）」、Ｘ３.２７１−１９９ｘ「ＦＩＢＲＥ ＣＨＡＮＮＥＬ ＳＩＮＧＬＥ ＢＹＴＥ ＣＯＭＭＡＮＤ ＣＯＤＥＳＥＴ（ＳＢＣＣＳ）ＭＡＰＰＩＮＧ ＰＲＯＴＯＣＯＬ（ＦＣ−ＳＢ）」がある。
【０００３】
以下、図７乃至図１１により、ＣＨとＩ／Ｏ間で入出力動作のやりとりを多重で行う場合の、従来のＣＨＰとＣＨ間の入出力動作終了のＩ／Ｏ割込み処理について説明する。
【０００４】
図７は、入出力処理システムの全体的な構成図であり、１０は命令処理装置（ＩＰ）、２０は主記憶装置（ＭＳ）、２１0〜２１PはＭＳ２０に格納されるＩ／Ｏと一対一に対応した入出力装置制御テーブル（ＵＣＷ）、３０と３１はチャネル処理装置（ＣＨＰ）、４０0〜４０n及び４１0〜４１nはチャネル装置（ＣＨ）、５０と５１はＣＨＰとＣＨ間の情報交換用通信バッファ（ＸＤＡＴＡ）、６０は入出力制御装置（ＣＵ）、６１0と６１1はＣＵ６０の中にあってＣＨとのインタフェース制御を行うチャネルアダプタ（ＣＨＡ）、７０0〜７０Pは入出力装置（Ｉ／Ｏ）、８０と８１はＩ／Ｏインタフェースケーブルである。
【０００５】
図７では、ＣＨＰがＣＨＰ３０とＣＨＰ３１の２台存在する場合を示しており、ＣＨＰ３０は配下に複数のＣＨ４０0〜４０nを有し、同様にＣＨＰ３１は配下に複数のＣＨ４１0〜４１nを有している。ＣＨ４０0とＣＨ４１0は入出力インタフェースケーブル８０，８１を介してＣＵ６０のＣＨＡ６１0，ＣＨＡ６１1とそれぞれ接続される。なお、ＣＨ４０0とＣＨＡ６１0、ＣＨ４１0とＣＨＡ６１1は入出力動作のやりとりを多重に行うことが可能な入出力プロトコルを採用しているものとする。他のＣＨについても同様である。
【０００６】
ＣＵ７００にはＩ／Ｏ７０0〜７０Pが接続され、これらＩ／Ｏ７０0〜７０pはＣＨ４０0〜４０n、ＣＨ４１0〜４１n、ＣＨＡ６１0、ＣＨＡ６１1を介してＣＨＰ３０とＣＨＰ３１の両方からアクセス可能な構成となっている。ＭＳ２０はＩＰ１０とＣＨＰ３０、３１で共有され、該ＭＳ２０内にＩ／Ｏ７０0〜７０Pと一対一に対応したＵＣＷ２１0〜２１Pが割り当てられている。
【０００７】
図８は、図７のＭＳ２に格納されているＵＣＷ２１0〜２１Pの詳細を示す図である。ＵＣＷは、Ｉ／Ｏと一対一に対応した入出力装置制御テーブルで、ＩＰ１０とＣＨＰ３０、３１とのアクセスの競合を排他的に制御するために使用されるロックバイト（ＬＯＣＫ）、当該Ｉ／Ｏ命令の実行状況を示す情報（ＳＴＡＴＵＳ）、当該ＵＣＷのテーブルの番号（ＵＣＷＮＯ）を有する。
【０００８】
図９は、図７のＸＤＡＴＡ５０、５１の詳細を示す図である。ＸＤＡＴＡは、ＣＨＰ３０とＣＨ４０0〜４０nやＣＨＰ３１とＣＨ４１0〜４１n間でＩ／Ｏ割込み情報の交換をするための情報交換通信バッファで、Ｉ／Ｏからの割込み報告の詳細を示すフラグ情報（ＦＬＡＧ）と、当該Ｉ／Ｏに対応するＭＳ２０上のＵＣＷ番号（ＵＣＷＮＯ）を有する。
【０００９】
ここでは、図７に示す入出力処理システムにおけるＣＨ４０0、Ｉ／Ｏ７０0、７０1からのＩ／Ｏ割込み処理を例に、図１０、図１１に基づき従来技術を説明する。
【００１０】
図１０は、ＣＨＰ３０、ＣＨ４０0、Ｉ／Ｏ７０0、７０1の従来技術の割込み処理の動作シーケンス例を示したものである。本シーケンスは、ＣＨＰ３０配下でＣＨ４０0とＣＨ４０nが動作中であり、ＣＨ４０0はＩ／Ｏ７０0、７０1との間でＩ／Ｏ命令を多重に実行していることを前提としている。
【００１１】
今、ＣＨＰ３０ではＣＨ４０nの割込み処理を実行中であるとする（ステップ１００１）。Ｉ／Ｏ７０0がＣＨ４０0に対しＩ／Ｏ動作終了を報告すると（ステップ１００２）、ＣＨ４０0はＣＨＰ３０に割込み報告を行い（ステップ１００３）、ＣＨＰ３０からの応答を待つ。ＣＨＰ３０は未だＣＨ４０nの割込み処理実行中のため、それが終了するまで、ＣＨ４０0は応答を待たされることになる。ＣＨＰ３０はＣＨ４０nの割込み処理を終了すると、ＣＨ４０0への割込み受付け許可報告を行う（ステップ１００４）。ＣＨＰ３０から割込み受付け許可報告を受け取ると、ＣＨ４０0はＸＤＡＴＡ５０にＩ／Ｏ７０0の割込み情報（ＦＬＡＧ、ＵＣＷＮＯ）をセットし（ステップ１００５）、ＣＨＰ３０へのＸＤＡＴＡ情報の転送を行う（ステップ１００６）。ＣＨＰ３０はＣＨ４０0からＸＤＡＴＡ情報を受信すると、割込み処理を実行する（ステップ１００７）。
【００１２】
更に、Ｉ／Ｏ７０1がＣＨ４０0に対しＩ／Ｏ動作終了報告をすると（ステップ１００８）、ＣＨ４０0はＣＨＰ３０に割込み報告を行い（ステップ１００９）、ＣＨＰ３０からの応答を待つ。ＣＨＰ３０は未だＣＨ４０0から先に報告されたＩ／Ｏ７０0の処理を実行中のため、ＣＨ４０0は応答を待たされることになる。ＣＨＰ３０はＣＨ４０0から報告されたＩ／Ｏ７０0の処理を終了すると、ＣＨ４０0へ割込み受付け許可報告を行う（ステップ１０１０）。ＣＨ４０0はＸＤＡＴＡ５０にＩ／Ｏ７０1の割込み情報（ＦＬＡＧ、ＵＣＷＮＯ）をセットし（ステップ１０１１）、ＣＨＰ３０へのＸＤＡＴＡ情報の転送を行う（ステップ１０１２）。ＣＨＰ３０はＣＨ４０0からのＸＤＡＴＡ情報を受信すると、割込み処理を実行する（ステップ１０１３）。
【００１３】
図１１はＣＨＰ３０での従来技術の割込み処理を示すフローチャートである。ＣＨＰ３０はＣＨから報告されたＸＤＡＴＡ５０の内容を読み出し（ステップ１１０１）、該ＸＤＡＴＡ５０に格納されたＵＣＷＮＯに従い当該Ｉ／ＯのＵＣＷアドレスを求める（ステップ１１０２）。次に、ＭＳ２０から当該ＵＣＷの内容を読み出し（ステップ１１０３）、当該ＵＣＷのＬＯＣＫをチェックする。ＩＰ１またはＣＨＰ３１がＬＯＣＫを取得している場合は、当該ＵＣＷが使用中であるため、一定時間の間隔を置き再度ＬＯＣＫのチェックを行う（ステップ１１０４）。ＩＰ１またはＣＨＰ３１がＬＯＣＫを取得していない場合は、当該ＵＣＷが使用中でないため、ＣＨＰ３０がＬＯＣＫを取得する（ステップ１１０５）。次に、ＸＤＡＴＡ５０の中のＦＬＡＧ情報に従い当該ＵＣＷのＳＴＡＴＵＳを更新する（ステップ１１０６）。その後、当該ＵＣＷのＬＯＣＫを解除することで、ＣＨからの割込み報告に対するＣＨＰ３０の割込み処理を終了する（ステップ１１０７）。
【００１４】
以上のように、従来の入出力処理システムにおいては、ＣＨはＣＨＰへ入出力動作終了のＩ／Ｏ割込み情報を一つずつ転送し、ＣＨＰはＣＨからの当該Ｉ／Ｏ割込み処理を一つずつ実行していた。
【００１５】
【発明が解決しようとする課題】
入出力処理システムにおいて、ＣＨとＩ／Ｏとの間で入出力動作のやりとりを多重で行えると、ＣＨとＩ／Ｏがサポートしている多重数だけ入出力動作のやりとりを行えるため、Ｉ／Ｏからの割込み報告もＣＨとＩ／Ｏがサポートしている多重数だけ報告されることになる。この場合、従来のＣＨＰとＣＨ間のＩ／Ｏ割込み処理では、ＣＨＰとＣＨ間でＩ／Ｏ割込み情報の交換を多重数分逐一実行する必要がある。これに伴い、ＣＨＰはＣＨからのＩ／Ｏ割込み処理を１つずつ実行するため、ＣＨＰ３０のＣＨ割込み処理のオーバヘッドが増大する。また、ＣＨは、ＣＨＰが自ＣＨまたは他ＣＨの割込み処理を実行している間待たされることになるため、ＣＨの処理のオーバーヘッドも増大し、かつ、この間に他のＩ／Ｏからの動作終了報告があっても、そのＩ／Ｏのサービスも出来なくなり、Ｉ／Ｏ側のオーバーヘッドも増大することになる。その結果、システム全体で見た場合にＩ／Ｏ性能が大幅に低下する可能性が生じる。
【００１６】
本発明は、ＣＨとＩ／Ｏ間での入出力動作のやりとりを多重に実行可能なプロトコルを採用した入出力処理システムにおいて、ＣＨＰとＣＨ間でのＩ／Ｏ割込み情報を交換する処理のオーバーヘッドを軽減して、システム全体で見た場合のＩ／Ｏ処理性能を向上させることを目的とする。
【００１７】
【課題を解決するための手段】
本発明は、一つまたは複数のチャネル処理装置（ＣＨＰ）と、前記ＣＨＰ配下に接続される一つまたは複数のチャネル装置（ＣＨ）と、前記ＣＨと接続される一つまたは複数の入出力装置（Ｉ／Ｏ）を有し、前記ＣＨと一つまた複数の前記Ｉ／Ｏ間で入出力動作を多重に実行する入出力処理システムにおいて、主記憶装置（ＭＳ）上に、ＣＨＰとＣＨの間でＩ／Ｏ割込み情報を交換するための記憶領域（ＣＣＡ）を各ＣＨ毎に備え、ＣＨは、入出力動作を多重に実行している一つまたは複数のＩ／Ｏからの割込み情報を当該ＣＣＡに順次格納し、ＣＨＰに対して割込み報告を一括通知する手段を備え、ＣＨＰは、前記ＣＣＡに格納された割込情報を参照して、Ｉ／Ｏ割込み処理を一括して実行する手段を備えることを特徴とする。
【００１８】
具体的には、各ＣＨ毎に、ＣＣＡとして２つ以上のブロック（ＣＣＡブロック）を備え、ＣＨは、Ｉ／Ｏからの割込み情報をＣＣＡブロック単位に順次格納する手段と、あるＣＣＡブロックに最初にＩ／Ｏ割込み情報を格納するときにＣＨＰに割込み報告を行う手段と、ＣＨＰから前記割込み報告に対する割込み受付け許可報告を受け取ると、前記割込み報告を行ってから前記割込み受付け許可報告を受け取るまでの間にＩ／Ｏ割込み情報を格納したＣＣＡブロックをＣＨＰに通知する手段を備え、ＣＨＰは、ＭＳ上のＣＨに対応するＣＣＡの該ＣＣＡブロックに格納されたＩ／Ｏ割込み情報を参照して、前記ＣＣＡブロック単位にＩ／Ｏ割込み処理を一括して実行する手段を備えることを特徴とする。さらに、ＣＨは、ＣＨＰが未使用であるＣＣＡブロックをチェックして、当該ＣＣＡブロックにＩ／Ｏからの割込み情報を順次格納する手段を備え、ＣＨＰは、Ｉ／Ｏ割込み処理を一括して実行すると、当該ＣＣＡブロックを未使用とする手段を備えることを特徴とする。
【００１９】
【発明の実施の形態】
以下に、本発明の実施の形態の一実施例について図面により説明する。
図１は本発明の一実施例を示す入出力処理システムの全体的な構成図である。図１において、ＭＳ２０の中には、Ｉ／Ｏと一対一に対応した入出力装置制御テーブル（ＵＣＷ２１0〜ＵＣＷ２１P）の他に、ＣＨＰ３０とＣＨ４０0〜４０n間、ＣＨＰ３１とＣＨ４１0〜４１n間でＩ／Ｏ割込み情報の交換をするための各ＣＨ毎の領域（ＣＣＡ２２0〜２２m）が割り当てられている。これ以外の構成は図７と基本的に同じである。
【００２０】
図２の（ａ）〜（ｃ）は、図１のＭＳ２０に格納されているＵＣＷ２１0〜２１P、ＣＣＡ２２0〜２２mの詳細を示す図である。
図２（ａ）のＵＣＷは、従来技術で説明した図８のＵＣＷと同じであり、ＩＰ１０とＣＨ３０、３１とのアクセス競合を排他制御するためのロックバイト（ＬＯＣＫ）、当該Ｉ／Ｏ命令の実行状況を示す情報（ＳＴＡＴＵＳ）、当該ＵＣＷのテーブル番号（ＵＣＷＮＯ）を有する。
【００２１】
図２（ｂ）のＣＣＡは、ＣＨＰとＣＨ間でＩ／Ｏ割込み情報の交換をするための一つのＣＨに対応する領域を示している。各ＣＨ毎に、ＣＣＡは複数のブロック（ＣＣＡＢＬＯＫ０〜ＣＣＡＢＬＯＫｉ）に分割されて使用される。一のＣＣＡ  ＢＬＯＣＫｉは、図２（ｃ）に示すように、本エリアをＣＨＰが使用中かどうかを示す有効ビット（Ｖ）と、当該エリアに格納されたＩ／Ｏ割込み数を示すカウンタ（ＩＮＴＣＮＴ）、当該ＣＨから報告された１つまたは複数のＩ／Ｏからの割込み情報を格納するエリア（Ｉ／Ｏ０〜ｊＩＮＴＩＮＦＯ）を有し、各Ｉ／ＯＩＮＴＩＮＦＯには、Ｉ／Ｏからの割込み報告の詳細を示すフラグ情報（ＦＬＡＧ）と、当該Ｉ／Ｏに対応するＭＳ２０上のＵＣＷの番号（ＵＣＷＮＯ）が格納される。
【００２２】
図３は、図１のＸＤＡＴＡ５０、５１の詳細を示す図である。ＸＤＡＴＡは、ＣＨＰ３０とＣＨ４０0〜４０n間、ＣＨＰ３１とＣＨ４１0〜４１n間での情報交換用通信バッファであるが、従来技術で説明した図９とは異なり、ＣＨＰに対し割込み報告を行ったＣＨ番号（ＣＨＮＯ）、当該ＣＨに対応するＣＣＡの中でＣＨがＩ／Ｏからの割込み情報を格納したブロックの番号（ＢＬＯＣＫＮＯ）、当該ＢＬＯＣＫに格納されたＩ／Ｏ割込み数を格納するカウンタ（ＩＮＴＣＮＴ）からなる。
【００２３】
以下、図１に示す入出処理力システムにおけるＣＨ４０0、Ｉ／Ｏ７０0〜７０3からのＩ／Ｏ割込み処理を例に、図４から図６に基づき本発明の一実施例の動作を説明する。
【００２４】
図４は、図１中のＣＨＰ３０、ＣＨ４０0、Ｉ／Ｏ７０0〜７０3のＩ／Ｏ割込み処理の動作シーケンス例を示したものである。本シーケンスでは、ＣＨＰ３０配下でＣＨ４０0とＣＨ４０nが動作中であり、ＣＨ４０0はＩ／Ｏ７０0〜７０3との間でＩ／Ｏ命令を多重に実行していることを前提としている。また、ＣＨ４０0は当該ＣＣＡの中のブロックの一つを新規に使用することを前提としている。
【００２５】
今、ＣＨＰ３０が、ＣＨ４０nの割込み処理を一括して実行中であるとする（ステップ４０１）。Ｉ／Ｏ７０0がＣＨ４０0に対しＩ／Ｏ動作終了を報告すると（ステップ４０２）、ＣＨ４０0はＣＨＰ３０に割込み報告を行い（ステップ４０３）、かつ、自ＣＨに対応するＣＣＡの中で、ＣＨＰ３０が使用していない（Ｖ＝０となっている）ＢＬＯＣＫエリアを求め、そのＢＬＯＣＫエリア（ここではＢＬＯＣＫエリア１とする）のＶビットを１にセットし、ＩＮＴＣＮＴをゼロクリアし（ステップ４０４）、当該ＢＬＯＣＫエリア１にＩ／Ｏ７０0の割込み情報を格納後、ＩＮＴＣＮＴをプラス１する（ステップ４０５）。その後、更にＩ／Ｏ７０1がＣＨ４０0に対しＩ／Ｏ動作終了を報告すると（ステップ４０６）、ＣＨ４０0は当該ＢＬＯＣＫエリア１にＩ／Ｏ７０1の割込み情報を格納し、ＩＮＴＣＮＴをプラス１する（ステップ４０７）。このＩ／Ｏ７０1から動作終了報告があった時、ＣＨ４０0はＣＨＰ３０に対して割込み報告を行わない。即ち、ＣＨからＣＨＰに対する割込み報告は、各ＢＬＯＣＫエリアについて、当該ＢＬＯＣＫエリアに最初にＩ／Ｏ割込み情報を格納する場合の１回行うだけでよい。
【００２６】
ＣＨＰ３０は、ＣＨ７０nの割込み処理を終了すると、該ＣＨ４０nに対応するＣＣＡ中の割込み情報が格納されていたＢＬＯＣＫエリアのＶビットを０にリセットした後（ステップ４０９）、ＣＨ４０0へ割込み受付け許可報告を行う（ステップ４１０）。該割込み受付け許可報告を受け取ると、ＣＨ４０0は、ＸＤＡＴＡ５０に自ＣＨＮＯ、ＢＬＯＣＫＮＯ１、ＩＮＴＣＮＴをセットし（ステップ４１０）、ＣＨＰ３０へＸＤＡＴＡ情報の転送を行う（ステップ４１１）。ＣＨＰ３０は、ＣＨ４０0からＸＤＡＴＡ情報を受信すると、該ＣＨ４０0に対応するＣＣＡ中のＢＬＯＣＫエリア１に格納されているＩ／Ｏ７０0、Ｉ／Ｏ７０1の割込み情報にもとづいて一括して割込み処理を実行する（ステップ４１２）。
【００２７】
この間に、更にＩ／Ｏ７０2がＣＨ４０0に対しＩ／Ｏ動作終了を報告すると（ステップ４１３）、ＣＨ４０0はＣＨＰ３０に割込み報告を行い（ステップ４１４）、かつ、自ＣＨに対応するＣＣＡの中で、ＣＨＰ３０が使用していない（Ｖ＝０となっている）ＢＬＯＣＫエリアを求め、そのＢＬＯＣＫエリア（ここではＢＬＯＣＫエリア２とする）のＶビットを１にセットし、ＩＮＴＣＮＴをゼロクリアし（ステップ４１５）、当該ＢＬＯＣＫエリア２にＩ／Ｏ７０2の割込み情報を格納後、ＩＮＴＣＮＴをプラス１する（ステップ４１６）。その後、更にＩ／Ｏ７０3がＣＨ４０0に対しＩ／Ｏ動作終了を報告すると（ステップ４１７）、ＣＨ４０0は当該ＢＬＯＣＫエリア２にＩ／Ｏ７０3の割込み情報を格納し、ＩＮＴＣＮＴをプラス１する（ステップ４１８）。この時は、ＣＨ４０0からＣＨＰ３０に対する割込み報告は行われない。
【００２８】
ＣＨＰ３０はＣＨ４０0の割込み処理を終了すると、該ＣＨ４０0に対応するＣＣＡ中の当該ＢＬＯＣＫエリア１のＶビットを０にリセットした後（ステップ４１９）、ＣＨ４０0へ再び割込み受付け許可報告を行う（ステップ４２０）。ＣＨ４０0は、再びＸＤＡＴＡ５０に自ＣＨＮＯ、ＢＬＯＣＫＮＯ２、ＩＮＴＣＮＴをセットし（ステップ４２１）、ＣＨＰ３０へＸＤＡＴＡ情報の転送を行う（ステップ４２２）。ＣＨＰ３００は、ＣＨ４０0からＸＤＡＴＡ情報を受信すると、一括して割込み処理を実行する（ステップ４２３）。
【００２９】
図５はＣＨ４０0において、自ＣＨのＣＣＡの中で、ＣＨＰ３０が使用していないＢＬＯＣＫエリアをチェックする処理の一実施例を示すフローチャートである。これは、ＣＨ４０0がＣＨＰ３０へＸＤＡＴＡ情報の転送を行った後に、最初にＩ／Ｏから動作終了の報告を受けたとき、あるいは、Ｉ／Ｏから動作終了の報告を受けたときに、当該ＢＬＯＣＫエリアが既に満杯のときに実行される。
【００３０】
ＣＨ４０0は、まずＢＬＯＣＫＮＯをゼロクリアし（ステップ５０１）、自ＣＨの先頭ＣＣＡアドレスを求める（ステップ５０２）。次に、自ＣＨのＣＣＡの中の現在のＢＬＯＣＫＮＯ（最初はＢＬＯＣＫＮＯ＝０）に対応する内容を読み出し（ステップ５０３）、そのＶビットが０かどうかチェックする（ステップ５０４）。Ｖビットが１であれば、現在のＢＬＯＣＫＮＯをプラス１して（ステップ５０５）、自ＣＨのＣＣＡの中の次のＢＬＯＣＫＮＯのアドレスを求めて（ステップ５０６）、ステップ５０３からの処理を繰り返す。Ｖビットが０であれば、その時点のＢＬＯＣＫＮＯに対応するＢＬＯＣＫエリアを、ＣＨＰ３０が使用していないＢＬＯＣＫエリアとして割り当てる。図４で述べたように、ＣＨ４０0は、当該ＢＬＯＣＫエリアに、Ｉ／Ｏの割込み情報を順次格納し、その最初の１回目だけＣＨＰ３０に対して割込みを報告する。
【００３１】
図６は、ＣＨＰ３０における一括割込み処理の一実施例を示すフローチャートである。ＣＨＰ３０は、ＣＨ４０0〜４０nからの割込み報告をキュースングしており、ある割込み処理を終了すると、キューから次の割込み報告を取り出して、当該ＣＨへ割込み受付け許可報告を行い、当該ＣＨからＸＤＡＴＡ情報を受け取る。その後、ＣＨＰ３０は図６に示す手順でＣＣＡのＢＬＯＣＫエリア単位にＩ／Ｏ割込み処理を一括して実行する。
【００３２】
ＣＨＰ３０は、ＣＨから報告されたＸＤＡＴＡ情報を読み出し（ステップ６０１）、ＸＤＡＴＡに格納されたＣＨＮＯとＢＬＯＣＫＮＯに従い、当該ＢＬＯＣＫＮＯに対応するＣＣＡアドレスを求める（ステップ６０２）。次に、当該ＢＬＯＣＫアドレスのＩ／ＯＩＮＴＩＮＦＯを読み出し（ステップ６０３）、Ｉ／ＯＩＮＴＩＮＦＯの中のＵＣＷＮＯに従い、当該ＵＣＷのアドレスを求める（ステップ６０４）。次に、当該ＵＣＷの内容を読み出し（ステップ６０５）、当該ＵＣＷのＬＯＣＫをチェックする。ＩＰ１またはＣＨＰ３１がＬＯＣＫを取得している場合は、当該ＵＣＷが使用中であるため、一定時間の間隔を置き再度ＬＯＣＫチェックを行う（ステップ６０６）。ＩＰ１またはＣＨＰ３１がＬＯＣＫを取得していない場合は、当該ＵＣＷが使用中でないため、ＣＨＰ３０がＬＯＣＫを取得する（ステップ６０７）。次に、Ｉ／ＯＩＮＴＩＮＦＯの中のＦＬＡＧ情報に従い、当該ＵＣＷのＳＴＡＴＵＳを更新し（ステップ６０８）、その後、当該ＵＣＷのＬＯＣＫを解除する（ステップ６０９）。次に、ＸＤＡＴＡのＩＮＴＣＮＴをマイナス１した後（ステップ６１０）、ＩＮＴＣＮＴが０かどうかチェックする（ステップ６１１）。ＩＮＴＣＮＴが０でなければ、当該ＢＬＯＣＫＮＯの次のＩ／ＯＩＮＴＩＮＦＯのＣＣＡアドレスを求め（ステップ６１２）、再び、ステップ６０３〜６０９の手順でＩ／Ｏ割込み処理を実行する。ＩＮＴＣＮＴが０であれば、一括割込み処理を終了する。
【００３３】
以上のように、ＣＨ４０0は、ＣＨＰ３０が他ＣＨまたは自ＣＨの割込み処理中であっても、並行してＩ／Ｏ７０0〜７０3の割込み受付け処理を実行可能であり、また、ＣＨ４０0はＣＨＰ３０への割込み報告を一括通知し、ＣＨＰ３０が一括して割込み処理を実行することで、ＣＨＰ３０、ＣＨ４０0、Ｉ／Ｏ７０0〜７０3の全てのユニットの処理を効率よく実行することが可能となる。
【００３４】
以上、本発明の一実施例に基づき具体的に説明したが、言うまでもなく本発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において変更可能である。
【００３５】
【発明の効果】
以上説明したように、本発明によれば、ＣＨＰとＣＨ間でＩ／Ｏ割込み情報の交換をするための割込み情報を格納する記憶領域（ＣＣＡ）を各ＣＨ毎に備え、各ＣＨは、Ｉ／Ｏからの割込み情報を当該ＣＣＡに順次格納して、ＣＨＰへ割込み報告を一括通知し、ＣＨＰはＣＣＡに格納された割込み情報を参照して、Ｉ／Ｏ割込み処理を一括して実行することにより、ＣＨとＩ／Ｏ間で入出力動作を多重に実行しても、ＣＨＰとＣＨ間でＩ／Ｏ割込み情報の交換を多重数分実行する必要がなく、ＣＨＰとＣＨの処理のオーバーヘッド、Ｉ／Ｏ側の処理のオーバーヘッドなどが小さくなり、システム全体でみた場合、Ｉ／Ｏ処理性能を向上させることが可能になる。
【００３６】
さらに、各ＣＨ毎に、ＣＣＡとして複数のブロック（ＣＣＡブロック）を備えることにより、ＣＨＰが他ＣＨまたは自ＣＨの割込み処理中であっても、それと並行して、ＣＨは入出力動作を多重に実行している一つあるいは複数のＩ／Ｏからの割込み情報を処理することができ、ＣＨＰ，ＣＨ，Ｉ／Ｏの各ユニットの処理を効率よく実行することが可能になる。
【図面の簡単な説明】
【図１】本発明による入出力処理システムの一実施例を示す全体構成図である。
【図２】図１の主記憶装置に展開された入出力装置制御テーブル（ＵＣＷ）、及び、チャネル処理装置とチャネル装置間でＩ／Ｏ割込み情報の交換を行う制御エリア（ＣＣＡ）の詳細を示す図である。
【図３】図１のチャネル処理装置とチャネル装置間の情報交換通信バッファ（ＸＤＡＴＡ）の詳細を示す図である。
【図４】図１のチャネル処理装置とチャネル装置間での割込み処理の動作シーケンス例を示す図である。
【図５】図１のチャネル装置での空きＣＣＡブロックのチェック処理のフローチャートである。
【図６】図１のチャネル処理装置での一括割込み処理のフローチャートである。
【図７】本発明に関連する従来技術の入出力処理システムの構成例を示す図である。
【図８】図７の主記憶装置に展開された入出力装置制御テーブル（ＵＣＷ）を示す図である。
【図９】図７のチャネル処理装置とチャネル装置間の情報交換通信バッファ（ＸＤＡＴＡ）を示す図である。
【図１０】図７のチャネル処理装置とチャネル装置間での割込み処理の動作シーケンス例を示す図である。
【図１１】図７のチャネル処理装置での割込み処理のフローチャートである。
【符号の説明】
１０      命令処理装置（ＩＰ）
２０      主記憶装置（ＭＳ）
２１0〜２１p  ＵＣＷ
２２0〜２２m  ＣＣＡ
３０，３１  チャネル処理装置（ＣＨＰ）
４０0〜４０n，４１0〜４１n  チャネル装置（ＣＨ）
５０，５１    ＸＤＡＴＡ
６０      入出力制御装置（ＣＵ）
６１0，６１1  チャネルアダプタ（ＣＨＡ）
７０0〜７０p  入出力装置（Ｉ／Ｏ）
８０，８１    Ｉ／Ｏインタフェースケーブル
【図１】
0003985927.tif 000002
【図２】
0003985927.tif 000003
【図３】
0003985927.tif 000004
【図４】
0003985927.tif 000005
【図５】
0003985927.tif 000006
【図６】
0003985927.tif 000007
【図７】
0003985927.tif 000008
【図８】
0003985927.tif 000009
【図９】
0003985927.tif 000010
【図１０】
0003985927.tif 000011
【図１１】
0003985927.tif 000012