(57)【特許請求の範囲】
【請求項１】
演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する情報処理システムにおいて、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記記憶装置は、
前記チャネル装置を起動させるチャネル装置命令と前記チャネル装置の起動に使用する起動情報が保持される第１の領域と、
前記チャネル装置の動作結果が保持される第２の領域を有し、
前記チャネル装置は、
前記チャネル装置の起動を制御する起動制御部と、
前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、
前記チャネル装置の制御を行うチャネル装置制御部を有し、
前記情報処理装置はさらに、
前記演算処理装置に、
前記記憶装置の前記第１の領域に前記チャネル装置命令と前記起動情報を書き込ませるステップと、
前記起動制御部に対して、前記チャネル装置の起動を指示させるステップを実行させ、
前記起動制御部に、
前記記憶装置の前記第１の領域を読み込ませるとともに、前記チャネル装置制御部に通知させるステップを実行させ、
前記チャネル装置に、
前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行させるステップと、
前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への割込を発生させるステップを実行させ、
前記演算処理装置に、
前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込ませることにより、割込の処理を実行させるステップと、
前記演算処理装置への割込の処理の完了を前記チャネル装置に通知させるステップを実行させるドライバ部を有することを特徴とする情報処理システム。
【請求項２】
演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する情報処理システムにおいて、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記記憶装置は、
前記チャネル装置の動作結果が保持される領域を有し、
前記チャネル装置は、
前記チャネル装置の起動を制御する起動制御部と、
前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、
前記チャネル装置の制御を行うチャネル装置制御部を有し、
前記情報処理装置はさらに、
前記チャネル装置に、
前記記憶装置の前記領域に第１の割込の要求を書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップを実行させ、
前記演算処理装置に、
前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照させるステップと、
前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行させるとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行させるステップを実行させるドライバ部を有することを特徴とする情報処理システム。
【請求項３】
前記ドライバ部はさらに、
前記チャネル装置に、
前記第１の割込の要求に対する前記第１の割込の処理を実行させるステップと、
前記第１の割込の処理の結果を前記領域に書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への第２の割込を発生させるステップを実行させ、
前記演算処理装置に、
前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込ませるとともに、前記第１の割込の処理の結果を参照させるステップと、
前記割込制御部への第２の割込の処理の完了を通知させるステップを実行させることを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記ドライバ部はさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止させることを特徴とする請求項２又は３記載の情報処理システム。
【請求項５】
第１及び第２の領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、自己の起動を制御する起動制御部と、前記演算処理装置への割込を制御する割込制御部と、自己の制御を行うチャネル装置制御部を有するチャネル装置を備えた情報処理システムの制御方法において、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記ドライバ部が、前記演算処理装置に、前記記憶装置の前記第１の領域に前記チャネル装置を起動させるチャネル装置命令と前記チャネル装置の起動に使用する起動情報を書き込ませるステップと、
前記ドライバ部が、前記演算処理装置に、前記起動制御部に対して、前記チャネル装置の起動を指示させるステップと、
前記ドライバ部が、前記起動制御部に、前記記憶装置の前記第１の領域を読み込ませるとともに、前記チャネル装置制御部に通知させるステップと、
前記ドライバ部が、前記チャネル装置に、前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行させるステップと、
前記ドライバ部が、前記チャネル装置に、前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込ませることにより、割込の処理を実行させるステップと、
前記ドライバ部が、前記演算処理装置に、前記演算処理装置への割込の処理の完了を前記チャネル装置に通知させるステップを有することを特徴とする制御方法。
【請求項６】
領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、前記演算処理装置への割込を制御する割込制御部を有するチャネル装置を備えた情報処理システムの制御方法において、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記ドライバ部が、前記チャネル装置に、前記記憶装置の前記領域に第１の割込の要求を書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照させるステップと、
前記ドライバ部が、前記演算処理装置に、前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行させるとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行させるステップを有することを特徴とする制御方法。
【請求項７】
前記制御方法はさらに、
前記ドライバ部が、前記チャネル装置に、前記第１の割込の要求に対する前記第１の割込の処理を実行させるステップと、
前記ドライバ部が、前記チャネル装置に、前記第１の割込の処理の結果を前記領域に書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への第２の割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込ませるとともに、前記第１の割込の処理の結果を参照させるステップと、
前記ドライバ部が、前記演算処理装置に、前記割込制御部への第２の割込の処理の完了を通知させるステップを有することを特徴とする請求項６記載の制御方法。
【請求項８】
前記制御方法はさらに、
前記ドライバ部が、前記演算処理装置に、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止させるステップを有することを特徴とする請求項７記載の制御方法。
【請求項９】
第１及び第２の領域を有する記憶装置と演算処理装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、自己の起動を制御する起動制御部と、前記演算処理装置への割込を制御する割込制御部と、自己の制御を行うチャネル装置制御部を有するチャネル装置を備えた情報処理システムの制御プログラムにおいて、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記演算処理装置に、
前記記憶装置の前記第１の領域に前記チャネル装置を起動させるチャネル装置命令と前記チャネル装置の起動に使用する起動情報を書き込むステップと、
前記起動制御部に対して、前記チャネル装置の起動を指示するステップと、
前記起動制御部を用いて、前記記憶装置の前記第１の領域を読み込むとともに、前記チャネル装置制御部に通知するステップと、
前記チャネル装置を用いて、前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行するステップと、
前記チャネル装置を用いて、前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への割込を発生するステップと、
前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込むことにより、割込の処理を実行するステップと、
前記演算処理装置への割込の処理の完了を前記チャネル装置に通知するステップを実行させることを特徴とする制御プログラム。
【請求項１０】
領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、前記演算処理装置への割込を制御する割込制御部を有するチャネル装置を備えた情報処理システムの制御プログラムにおいて、
前記演算処理装置および前記チャネル装置は、前記記憶装置にアクセス可能に構成されており、
前記演算処理装置に、
前記チャネル装置を用いて、前記記憶装置の前記領域に第１の割込の要求を書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップと、
前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照するステップと、
前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行するとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行するステップを有することを特徴とする制御プログラム。
【請求項１１】
前記制御プログラムはさらに、
前記演算処理装置に、
前記チャネル装置を用いて、前記第１の割込の要求に対する前記第１の割込の処理を実行するステップと、
前記チャネル装置を用いて、前記第１の割込の処理の結果を前記領域に書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への第２の割込を発生するステップと、
前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込むとともに、前記第１の割込の処理の結果を参照するステップと、
前記割込制御部への第２の割込の処理の完了を通知するステップを実行させることを特徴とする請求項１０記載の制御プログラム。
【請求項１２】
前記制御プログラムはさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止するステップを実行させることを特徴とする請求項１１記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置に接続された入出力装置、情報処理装置と入出力装置間においてデータの転送を行うチャネル装置を有する情報処理システムに係わり、さらに、そのような情報処理システムにおける割込みの制御方法および制御プログラムに係わる。
【背景技術】
【０００２】
従来、企業の基幹業務の処理は、メインフレームにより行われることが多かった。メインフレームは、しばしば、汎用コンピュータ、汎用機、大型汎用コンピュータ等と呼ばれ、一般に、様々なＩＯ装置（入出力装置）が接続される。
【０００３】
メインフレームは、それぞれ独自の専用回路（ハードウェア）を備えることが多かった。たとえば、図９に示すように、メインフレーム１００が備えるＩＯプロセッサ１０１は、専用の割込み制御回路１０２を備えている。ここで、ＩＯプロセッサ１０１は、チャネル装置１１０を介して１または複数のＩＯ装置との間でデータの送受信を制御する。チャネル装置１１０は、メインフレーム１００とＩＯ装置との間のデータ転送を制御する。ＩＯ装置は、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks又はRedundant Arrays of Independent Disks）を構成するストレージ装置である。そして、割込み制御回路１０２は、ハードウェア回路で構成されており、１または複数のチャネル装置１１０から割込みを受け付け、チャネル装置１１０に対して必要な指示を与える。
【０００４】
これに対して近年では、大規模なシステムであっても、汎用プロセッサを用いた汎用プラットフォーム上で実現しようとする動きが広まってきている。汎用プラットフォームとしては、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ又はＷｉｎｄｏｗｓ（登録商標）等をＯＳとして動作するサーバシステムの導入が進んでいる。これにより、開発コストの削減、開発期間の短縮、メンテナンスの容易さが図られている。
【０００５】
ところが、メインフレームを利用してきたユーザの多くは、汎用プラットフォームに移行する場合、従前の環境の維持を必要とする。例えば、メインフレーム１００を汎用プラットフォーム２００上でエミュレーションする際には、図９に示すように、メインフレーム１００で行われていた割込み制御と同様の制御が行われる必要がある。この場合、汎用プラットフォーム２００においてチャネルドライバ２０１を実装し、チャネル装置１１０からの割込みを受け付ける必要がある。
【０００６】
なお、関連する技術として、下記の特許文献１〜３が公知技術として開示されている。開示のシステムにおいて、ＣＰＵは、メインメモリとの間のバスを使用するが、チャネル装置からの割込み要求により、このバスの使用権を明け渡す。このため、ＤＭＡコントローラまたは割込みコントローラは、複数のチャネル装置からの要求を調停し、ＣＰＵがサービスを提供すべきチャネル装置を選択する。このとき、複数のチャネル装置からのサービス要求に対して優先制御を行う方法において、サービス要求が受け付けられたチャネル装置の優先順位が最も低く更新され、このチャネル装置の更新前の優先順位以下の優先順位を持っていたチャネル装置の優先順位が高く更新される。
【０００７】
又、開示の入出力チャネル制御方式では、中央処理装置が複数の入出力チャネル装置を内蔵して時分割に入出力動作を行う構成において、入出力チャネル装置およびサブチャネルに接続される入出力制御装置と入出力装置の入出力処理速度に応じて、中央処理装置が
これらの入出力チャネル装置と複数のサブチャネルを有する入出力チャネル装置の複数のサブチャネル群に対する入出力処理優先順位が機械語命令で設定される。そして、入出力システムの構成に応じて最適な優先順位のもとで所要効率の入出力処理動作が行われる。
【０００８】
さらに、開示の割込処理方式は、中央処理装置、主記憶装置、複数のチャネル装置がメモリバスを介して接続されており、主記憶装置上に割り当てられた特定番地を用いて複数のチャネル装置間の割込順位が定められ、この割込順位に従って各チャネルに設けられた割込み信号線を用いて中央処理装置に割込信号が送信される。
【特許文献１】特開平４−３６３７４８号公報
【特許文献２】特開昭５４−１４１３３号公報
【特許文献３】特開昭６１−２３３８３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の課題は、従来のコンピュータシステムにおいて専用回路で実現されていたチャネル装置の割込み制御を、汎用プラットフォーム上でエミュレーションする構成および方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理システムは、演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する。前記記憶装置は、前記チャネル装置を起動させるチャネル装置命令と前記チャネル装置の起動に使用する起動情報が保持される第１の領域と、前記チャネル装置の動作結果が保持される第２の領域を有する。前記チャネル装置は、前記チャネル装置の起動を制御する起動制御部と、前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、前記チャネル装置の制御を行うチャネル装置制御部を有する。
【００１１】
前記情報処理装置はさらに、前記演算処理装置に、前記記憶装置の前記第１の領域に前記チャネル装置起動命令と前記起動情報を書き込ませるステップと、前記起動制御部に対して、前記チャネル装置の起動を指示させるステップを実行させ、前記起動制御部に、前記記憶装置の前記第１の領域を読み込ませるとともに、前記チャネル装置制御部に通知させるステップを実行させ、前記チャネル装置に、前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行させるステップと、前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込ませるステップと、前記割込制御部を用いて、前記演算処理装置への割込を発生させるステップを実行させ、前記演算処理装置に、前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込ませることにより、割込の処理を実行させるステップと、前記割込制御部への割込の処理の完了を通知させるステップを実行させるドライバ部を有する。
【００１２】
上記構成の情報処理システムにおいては、チャネル装置は、演算処理装置のドライバ部により起動される。この起動制御は、ドライバ部とチャネル装置との間で、記憶装置上の第１および第２の領域を介して情報を授受することにより実現される。
【００１３】
本発明の他の態様の情報処理システムは、演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する。前記記憶装置は、前記チャネル装置の動作結果が保持される領域を有する。前記チャネル装置は、前記チャネル装置の起動を制御する起動制御部と、前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、前記チャネル装置の制御を行うチャネル装置制御部を有する。
【００１４】
前記情報処理装置はさらに、前記チャネル装置に、前記記憶装置の前記領域に第１の割込の要求を書き込ませるステップと、前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップを実行させ、前記演算処理装置に、前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照させるステップと、前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行させるとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行させるステップを実行させるドライバ部を有する。
【００１５】
上記他の態様の情報処理システムにおいては、チャネル装置は、演算処理装置のドライバ部の許可を待って処理を実行する。すなわち、チャネル装置は、ドライバ部の許可無しで自発的な処理を実行することはできない。また、この優先制御は、ドライバ部とチャネル装置との間で、記憶装置上の上記領域を介して情報を授受することにより実現される。
【００１６】
上記他の態様の情報処理システムにおいて、前記ドライバ部はさらに、前記チャネル装置に、前記第１の割込の要求に対する前記第１の割込の処理を実行させるステップと、前記第１の割込の処理の結果を前記領域に書き込ませるステップと、前記割込制御部を用いて、前記演算処理装置への第２の割込を発生させるステップを実行させ、前記演算処理装置に、前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込ませるとともに、前記第１の割込の処理の結果を参照させるステップと、前記割込制御部への第２の割込の処理の完了を通知させるステップを実行させるようにしてもよい。
【発明の効果】
【００１７】
開示のシステムによれば、専用回路で実現されていたチャネル装置の割込み制御を、汎用プラットフォーム上でエミュレーションすることができる。
【発明を実施するための最良の形態】
【００１８】
図１は、本発明の実施形態に係る情報処理システムの構成を示す図である。図１において、情報処理システム１は、システムボード２（＃０〜＃７）、ＩＯユニット３（＃０〜＃７）、システムインターコネクト４、ＩＯ装置５（５ａ〜５ｎ）を備える。なお、システムボード２およびＩＯユニット３の個数は、それぞれ、特に限定されるものではない。また、システムボード２およびＩＯユニット３の個数は、互いに同じであってもよいし、互いに異なっていてもよい。
【００１９】
システムボード２は、それぞれ、ＣＰＵ２１およびメモリ２２を備える。図１に示す例では、システムボード２（＃０）は、４個のＣＰＵ２１を備えている。また、メモリ２２は、複数のＣＰＵ２１により共用される。ただし、各ＣＰＵ２１に対してそれぞれ互いに独立したメモリ２２を設けるようにしてもよい。
【００２０】
各ＣＰＵ２１は、それぞれ、ＩＯユニット３との接続を制御する処理を行うドライバ２３を有している。各ドライバ２３は、例えば、メモリ２２に格納されているドライバプログラムを実行することに実現される。
【００２１】
ＩＯユニット３は、それぞれ、情報処理システム１の入出力装置である。各ＩＯユニット３は、それぞれ、システムインターコネクト４に接続されるＰＣＩバスを備える。このＰＣＩバスには、例えば、ハードディスクドライブ３１、チャネル装置３２、ＬＡＮポー
ト、ＣＤ−ＲＯＭまたはＤＶＤ用のドライブ装置等の入出力ユニットが接続されている。図１に示す例では、ＩＯユニット３（＃０）には、４個のハードディスクドライブ３１、および４個のチャネル装置３２が搭載されている。チャネル装置３２は、例えばカード形状のインタフェースデバイスであり、ＩＯ装置５が接続される。なお、ＩＯユニット３（＃０〜＃７）の構成は、互いに同じ構成であってもよいし、互いに異なる構成であってもよい。すなわち、ＩＯユニット３（＃１〜＃７）は、必ずしもハードディスクドライブ３１、チャネル装置３２、ＬＡＮポート等を備えている必要はない。
【００２２】
システムインターコネクト４は、例えばチップセット等により構成され、システムボード２（＃０〜＃７）とＩＯユニット３（＃０〜＃７）との間を接続する。なお、システムインターコネクト４は、二重化構成等、冗長的に構成されるようにしてもよい。ＩＯ装置５ａ〜５ｎは、例えばＲＡＩＤを構成するストレージ装置であり、チャネル装置３２に接続される。
【００２３】
図２は、図１に示す情報処理システム１を簡略化して示した概略図である。図２において、ＣＰＵ２１およびメモリ２２は、図１に示すシステムボード２（＃０〜＃７）の中の任意の１つに設けられる。システム制御部４０は、図２に示すシステムインターコネクト４を含んで構成され、ＣＰＵ２１、メモリ２２、チャネル装置３２ａ〜３２ｃを相互に接続する。なお、ＣＰＵ２１は、図２においては、システム制御部４０を介してメモリ２２にアクセスするが、システム制御部４０を介することなくメモリ２２にアクセスするようにしてもよい。
【００２４】
チャネル装置３２ａ〜３２ｃは、ＣＰＵ２１およびメモリ２２と、ＩＯ装置５ａ〜５ｃとの間のデータ転送を制御する。なお、チャネル装置３２ａ〜３２ｃは、必ずしも１台のＩＯユニット３内に搭載される必要はなく、互いに異なるＩＯユニット３に搭載されてもよい。また、チャネル装置３２ａ〜３２ｃとＩＯ装置５ａ〜５ｃとの間は、１対１に接続される必要はなく、「１対多」あるいは「多対１」で接続されるようにしてもよい。
【００２５】
上記構成の情報処理システム１において、ドライバ２３は、チャネル装置３２ａ〜３２ｃを起動することができる。例えば、ＩＯ装置５ａにデータを送信する際には、トライバ２３は、チャネル装置３２ａを起動し、チャネル装置３２ａにデータ転送コマンドを実行させる。
【００２６】
また、ＣＰＵ２１は、ドライバ２３を用いて、チャネル間の調停を行うことができる。すなわち、チャネル装置３２ａ〜３２ｃは、対応するＩＯ装置５ａ〜５ｃを動作させるときは、ＣＰＵ２１に対して優先権を要求する。このとき、ある１つのチャネル装置（例えば、３２ａ）のみが優先権を要求した場合には、チャネル装置３２ａに対して優先権が与えられる。これにより、チャネル装置３２ａは、対応するＩＯ装置５ａのデータ転送に係わる動作を開始する。一方、複数のチャネル装置（例えば、３２ａ、３２ｂ）から優先権が要求された場合には、ドライバ２３は、所定のアルゴリズムに従って調停を行い、チャネル装置間の優先順位を決定する。この場合、例えば、調停によりチャネル装置３２ａに対して優先権が与えられるものとすると、チャネル装置３２ｂは、対応するＩＯ装置５ｂのデータ転送に係わる動作を開始することができない。すなわち、チャネル装置３２ｂは、ドライバ２３からの指示を待つことになる。そして、ドライバ２３は、チャネル装置３２ｂによるデータ転送が終了すると、チャネル装置３２ａに対して優先権を与える。なお、チャネル間の調停は、ドライバ２３により実行されてもよいし、ドライバ２３が上位のアプリケーションと連携しながら行うようにしてもよい。
【００２７】
このように、実施形態の情報処理システム１においては、チャネル装置３２は、ドライバ２３の指示に応じて、或いはドライバ２３からの許可を得た後に、ＩＯ制御動作を開始
する。すなわち、チャネル装置３２は、ドライバ２３からの指示または許可なしではＩＯ制御動作を開始しない。
【００２８】
図３は、実施形態の情報処理システム１において割込み制御に係わる要素を示す図である。なお、図３において、チャネル装置３２は、図１または図２に示す複数のチャネル装置の任意の１つに相当する。
【００２９】
ＣＰＵ２１は、上述したように、ドライバ２３を有する。ドライバ２３は、割込み制御部２４を含んで構成される。割込み制御部２４は、チャネル装置３２からの割込みを受け付け、その割込みに応じた処理を実行する。
【００３０】
メモリ２２は、特に限定されるものではないが、例えば半導体メモリであり、ＣＰＵ２１の主記憶として使用される。メモリ２２には、ＣＯＢ（Channel Operation Buffer：チャネル操作バッファ）領域５１、およびＣＩＢ（Channel Interruption Buffer：チャネル割込バッファ）領域５２が設けられる。ＣＯＢ領域５１およびＣＩＢ領域５２は、それぞれ、ドライバ２３により、各チャネル装置に対して確保される。すなわち、ドライバ２３は、例えば、情報処理装置１に新たなチャネル装置３２が接続されると、その新たなチャネル装置に対応するＣＯＢ領域５１およびＣＩＢ領域５２を、メモリ２２内に確保する。
【００３１】
ＣＯＢ領域５１は、ドライバ２３からチャネル装置３２に対して動作内容を指示するために使用される。この実施例では、ＣＯＢ領域５１は、チャネル装置３２を起動させるためのチャネル装置命令およびチャネル装置３２を起動するために使用する起動情報を保持する。また、ＣＩＢ領域５２は、チャネル装置３２からドライバ２３に制御情報を通知するために使用される。この実施例では、ＣＩＢ領域５２には、チャネル装置３２の動作結果を表す情報、およびチャネル装置３２からＣＰＵ２１に対する要求を表す情報などが書き込まれる。
【００３２】
チャネル装置３２は、起動制御部６１、割込み制御部６２、チャネル装置制御部６３、ＰＣＩバス制御部６４、ＩＯ制御部６５を備える。なお、これらのユニット６１〜６５は、ハードウェアで実現されてもよいし、ハードウェアおよび（ファームウェアを含む）ソフトウェアの組合せにより実現されてもよい。
【００３３】
起動制御部６１は、ドライバ２３からの指示に従って、チャネル装置３２を起動する。この実施例では、起動制御部６１は、レジスタを備え、チャネル装置３２によりそのレジスタに所定の値が書き込まれると、メモリ２２のＣＯＢ領域５１に格納されている情報を読み出してチャネル装置制御部６３に渡す。これによって、チャネル装置３２は起動される。
【００３４】
割込み制御部６２は、チャネル装置３２からＣＰＵ２１への割込みを制御する。この実施例では、割込み制御部６２は、チャネル装置３２の動作（例えば、データ転送処理など）が終了したときに、ＣＰＵ２１へ割込み信号を送信する。また、割込み制御部６２は、優先権を要求する際にもＣＰＵ２１へ割込み信号を送信する。なお、ＣＰＵ２１の割込み制御部２４は、チャネル装置３２から割込み受けると、そのチャネル装置３２に対応するＣＩＢ領域５２に書込まれている情報を読み取る。これにより、割込みに対応する処理が実行される。
【００３５】
チャネル装置制御部６３は、対応するＩＯ装置５ａ〜５ｎに係るデータ転送のために、チャネル装置３２の動作を制御する。ＰＣＩバス制御部６４は、チャネル装置制御部６３の制御に従って、ＣＰＵ２１およびメモリ２２とデータ転送するためにＰＣＩバスを制御
する。ＩＯ制御部６５は、チャネル装置制御部６３の制御に従って、対応するＩＯ装置５ａ〜５ｎとのデータ転送を制御する。
【００３６】
図４は、ドライバ２３からチャネル装置３２を起動する際の手順を示すフローチャートである。なお、このフローチャートの処理は、ドライバ２３により開始される。ドライバ２３は、例えば、アプリケーションからの指示に応じて、このフローチャートの処理を開始する。
【００３７】
ステップＳ１では、ドライバ２３は、起動すべきチャネル装置３２に対応するＣＯＢ領域５１に、起動情報を書き込む。起動情報は、チャネル装置３２の動作に必要な情報であって、例えば、チャネル装置３２にデータ転送を実行させる場合には、ポインタ、先頭アドレス、データサイズ、Last Byte Countである。ポインタは、チャネル装置３２が実行すべき命令を指し示す。先頭アドレスは、転送すべきデータを格納する領域の先頭アドレスである。データサイズは、転送すべきデータのサイズを表す。Last Byte Countは、チェインデータを転送する場合において、最後のチェインデータのバイト計数情報のバイトカウントを表す。なお、ポインタの代わりに、ＣＯＢ領域５１に命令コード自体を書き込むようにしてもよい。
【００３８】
ステップＳ２では、ドライバ２３は、起動すべきチャネル装置３２の起動制御部６１に対して、起動を指示する。起動指示は、この実施例では、起動制御部６１が備えるレジスタに、「チャネル装置の起動」を表す所定の値を書き込むことにより実現される。
【００３９】
ステップＳ３では、起動指示を受けたチャネル装置３２の起動制御部６１は、当該チャネル装置３２に対応するＣＯＢ領域５１に格納されている情報を読み込む。ここで、このＣＯＢ領域５１には、ステップＳ１において、起動情報が書き込まれている。すなわち、起動制御部６１は、ドライバ２３により書き込まれた起動情報を取得する。そして、起動制御部６１は、取得した起動情報をチャネル装置制御部６３に渡す。
【００４０】
ステップＳ４では、チャネル装置３２は、ＣＯＢ領域５１から取得した起動情報に対応する処理を実行する。ここで、起動情報として、データ転送命令を指し示すポインタ、転送データの先頭アドレス、データサイズが格納されているものとする。そうすると、チャネル装置３２は、そのポインタが指し示す命令を実行する。すなわち、チャネル装置３２は、先頭アドレスにより指定されるアドレスから、データサイズにより指定されるサイズのデータを取得し、データ転送命令に従ってそのデータを転送する。
【００４１】
ステップＳ５では、チャネル装置３２は、ステップＳ４に係る処理の動作結果を、当該チャネル装置３２に対応するＣＩＢ領域５２に書き込む。ここで、ステップＳ４においてデータ転送を実行したものとし、そのデータ転送が正常に終了した場合には、動作結果として「正常終了」を表す終了コードがＣＩＢ領域５２に書き込まれる。一方、データ転送を正常に実行できなかった場合には、エラーの要因を表すエラーコードが書き込まれる。また、データ転送の途中でその転送処理がキャンセルされた場合には、最後の命令で転送されたデータの転送サイズをＣＩＢ領域５２に書き込むようにしてもよい。
【００４２】
ステップＳ６では、チャネル装置３２の割込み制御部６２は、ＣＰＵ２１に割込みを行う。なお、割込み方法は、特に限定されるものではない。すなわち、例えば、ＣＰＵ２１がチャネル装置ごとに割込み端子を備えている場合には、対応する割込み端子の論理値を変更することにより割込みが実現される。或いは、割込みを行うチャネル装置を識別する情報をＣＰＵ２１に送信することで割込みを実現するようにしてもよい。
【００４３】
ステップＳ７では、ＣＰＵ２１のドライバ２３は、チャネル装置３２からの割込みを検
出すると、そのチャネル装置３２に対応するＣＩＢ領域５２を参照する。ここで、このＣＩＢ領域５２には、ステップＳ５において、チャネル装置３２の動作結果が書き込まれている。したがって、ドライバ２３は、ＣＩＢ領域５２を参照することにより、チャネル装置３２の動作結果を認識することができる。すなわち、ＣＰＵ２１は、ステップＳ１で生成した起動情報に対応する処理の実行結果を知ることができる。
【００４４】
ステップＳ８では、ドライバ２３は、割込みを発行したチャネル装置３２に対して、割込み処理が完了したことを通知する。この通知は、例えば、割込み制御部６２が備えるレジスタに、「完了」を表す所定の値を書き込むことにより実現される。
【００４５】
このように、実施形態の情報処理システム１においては、チャネル装置３２は、ＣＰＵ２１のドライバ２３により起動される。そして、この起動制御は、ドライバ２３とチャネル装置３２との間で、メモリ２２上のＣＯＢ領域５１およびＣＩＢ領域５２を介して情報を授受することにより実現される。また、ＣＰＵ２１への割込みは、そのＣＰＵ２１にＣＩＢ領域５２を参照させるためのトリガとしての役割を持っている。
【００４６】
なお、ドライバ２３は、ステップＳ１〜Ｓ２、Ｓ７〜Ｓ８の処理をＣＰＵ２１に実行させる。また、ドライバ２３は、ステップＳ３〜Ｓ６の処理をチャネル装置３２に実行させる。
【００４７】
図５は、チャネル装置３２が優先権を要求した際の手順を示すフローチャートである。なお、優先権の要求は、この実施例では、例えば、チャネル装置３２が所望の動作を実行するためにコンピュータ資源を予約するための要求に相当する。
【００４８】
ステップＳ１１では、チャネル装置３２は、優先権の要求を表す情報を、当該チャネル装置３２に対応するＣＩＢ領域５２に書き込む。即ち、チャネル装置３２は、例えば、ＩＯ装置５からデータを読み出して他の装置へ転送するとき、或いはＩＯ装置５にデータを書き込むときには、必要なコンピュータ資源を予約するために、ＣＰＵ２１に対して優先権を要求する。
【００４９】
ステップＳ１２では、チャネル装置３２の割込み制御部６２は、ＣＰＵ２１に割込みを行う。なお、この割込みは、基本的に、図４に示すステップＳ６の割込みと同様である。
ステップＳ１３では、ステップＳ７と同様に、ＣＰＵ２１のドライバ２３は、チャネル装置２３からの割込みを検出すると、そのチャネル装置２３に対応するＣＩＢ領域５２を参照する。ただし、ここでは、ＣＩＢ領域５２には、ステップＳ１１において、チャネル装置３２によって優先権の要求を表す情報が書き込まれている。したがって、ドライバ２３は、ＣＩＢ領域５２を参照することにより、チャネル装置３２が優先権を要求していることを認識する。
【００５０】
ステップＳ１４では、ドライバ２３は、ステップＳ１３で認識した優先権の要求を許可するか否かを判断する。ここで、ＣＰＵ２１は、アプリケーションから要求された処理を優先的に実行することがある。この場合、ドライバ２３は、そのアプリケーションから要求された処理を終了するまで、チャネル装置３２からの要求を許可しない。また、ＣＰＵ２１は、複数のチャネル装置３２から優先権の要求を受け取ることがある。このとき、ドライバ２３は、あるチャネル装置（例えば、チャネル装置３２ａ）から優先権の要求を受けたときに、他のチャネル装置（例えば、チャネル装置３２ｂ）に優先権を与えていた場合には、チャネル装置３２ｂの処理が終了するまで、チャネル装置３２ａからの要求を許可しない。このように、ドライバ２３は、情報処理システム１の動作状態に応じて、優先権の要求を許可するか否かを判断する。そして、要求を許可する場合には、ステップＳ１
５へ進む。
【００５１】
ステップＳ１５では、ドライバ２３は、ステップＳ１１において優先権を要求したチャネル装置３２に対して、割込み処理の開始を指示する。この指示は、例えば、割込み制御部６２が備えるレジスタに、「開始」を表す所定の値を書き込む（Acceptビットを設定する）ことにより実現される。
【００５２】
ステップＳ１６では、チャネル装置３２は、割込み制御部６２がドライバ２３からの指示を検出すると、優先権の要求が許可されたものと判断し、所望の動作を実行する。ここでは、例えば、対応するＩＯ装置５からの非同期割込みを契機とするデータ転送が実行される。
【００５３】
ステップＳ１７〜Ｓ２０は、基本的に、図４に示すステップＳ５〜Ｓ８と同じである。すなわち、ステップＳ１７では、チャネル装置３２は、チャネル装置３２の処理結果をＣＩＢ領域５２に書き込む。ステップＳ１８では、割込み制御部６２は、ＣＰＵ２１に割込みを行う。ステップＳ１９では、ドライバ２３は、チャネル装置３２からの割込みを検出すると、そのチャネル装置３２に対応するＣＩＢ領域５２を参照する。すなわち、ＣＰＵ２１は、ステップＳ１１で生成された優先権の要求に対応する処理の実行結果を知ることができる。そして、ステップＳ２０では、ドライバ２３は、割込みを発行したチャネル装置３２に対して、割込み処理が完了したことを通知する。
【００５４】
ステップＳ１１で生成された優先権の要求を許可しないときは（ステップＳ１４：Ｎｏ）、ステップＳ２１に進む。ステップＳ２１では、ドライバ２３は、ステップＳ１１で生成された要求よりも優先順位の高い処理を実行する。なお、ドライバ２３は、ステップＳ２１で実行する優先順位の高い処理が終了したときに、ステップＳ１５に進むようにしてもよい。すなわち、ドライバ２３は、チャネル装置３２による割込の処理を許可しない場合には、図５に示すように、ＣＰＵ２１が優先順位の高い他の処理を実行した後に、そのチャネル装置３２による割込の処理を実行させるようにしてもよい。
【００５５】
このように、実施形態の情報処理システム１においては、チャネル装置３２は、ＣＰＵ２１のドライバ２３の許可を待って所望の処理を実行する。換言すれば、チャネル装置３２は、ドライバ２３の許可無しで自発的な処理を実行することはできない。そして、この優先制御は、ドライバ２３とチャネル装置３２との間で、メモリ２２上のＣＩＢ領域５２を介して情報を授受することにより実現される。また、ＣＰＵ２１への割込みは、図４に示す手順と同様に、そのＣＰＵ２１にＣＩＢ領域５２を参照させるためのトリガとしての役割を持っている。
【００５６】
なお、ドライバ２３は、ステップＳ１３〜Ｓ１５、Ｓ１９〜Ｓ２１の処理をＣＰＵ２１に実行させる。また、ドライバ２３は、ステップＳ１１〜Ｓ１２、Ｓ１６〜Ｓ１８の処理をチャネル装置３２に実行させる。
【００５７】
図６は、優先権が許可されないときの手順を示すフローチャートである。このフローチャートの処理は、この実施例では、チャネル装置３２により実行される。
ステップＳ３１およびＳ３２は、図５に示すステップＳ１１およびＳ１２に相当する。すなわち、チャネル装置３２は、ＣＩＢ領域５２を利用してドライバ２３に対して優先権を要求し、さらにＣＰＵ２１に割込みを行う。
【００５８】
ステップＳ３３では、割込み制御部６２は、タイマを起動する。すなわち、優先権を要求した時点（あるいは、ＣＰＵ２１に割込みを行った時点）からの経過時間をモニタする
。ステップＳ３４〜Ｓ３５では、割込み制御部６２は、ドライバ２３からの応答を待ち受ける。そして、所定時間内にドライバ２３からの応答（図５に示すステップＳ１５の開始指示）を検出すると、以降、チャネル装置３２は、図５に示すステップＳ１６〜Ｓ１８の処理を実行する。
【００５９】
所定時間内にドライバ２３からの応答が検出されずにタイマが満了すると、ステップＳ３６において、割込み制御部６２は、タイムアウトの発生をチャネル装置制御部６３に通知する。そうすると、チャネル装置３２は、ステップＳ３１〜Ｓ３２で要求した処理を中止する。さらに、ステップＳ３７では、チャネル装置３２は、優先権に獲得に失敗したことを表すエラー報告を行う。エラーは、例えば、対応するＩＯ装置５に（および、必要に応じてＣＰＵ２１にも）報告される。
【００６０】
なお、図５〜図６に示す手順では、チャネル装置３２に優先権を与えないときに、ドライバ２３からそのチャネル装置３２に対して何も通知が行われないが、ドライバ２３からチャネル装置３２に対して優先権を与えない旨を明示的に通知するようにしてもよい。すなわち、例えば、ドライバ２３は、ステップＳ１２の割込みを検出したときにタイマを起動し、所定時間内にチャネル装置３２に優先権を与えられないときに、そのチャネル装置３２（または、チャネル装置３２のチャネル装置制御部６３）にエラーを報告するようにしてもよい。このエラー報告を受けると、チャネル装置３２は、優先権の要求に係る処理を中止する。すなわち、このエラー報告は、チャネル装置３２の処理の中止を指示する停止指示に相当する。
【００６１】
また、チャネル装置３２は、優先権を要求している期間にドライバ２３から起動指示を受けると、その起動指示を優先する。すなわち、チャネル装置３２が優先権を要求したときから開始指示を受け取るまでの期間（すなわち、ステップＳ１１〜Ｓ１５の期間）に、起動制御部６１がドライバ２３から図４で説明した起動指示を受け取ると、起動制御部６１からチャネル装置制御部６３に対して優先権の獲得に失敗した旨が報告される。そうすると、チャネル装置３２は、ドライバ２３からの起動指示を優先するために、優先権を要求した処理を中止する。
【００６２】
このように、実施形態の情報処理システムによれば、エミュレーション環境においてもドライバとチャネル装置との間の割込み制御が実現される。したがって、従来のメインフレームで提供されていた機能が、汎用プラットフォーム上でも実現される。たとえば、メインフレームの一形態として、メインフレームの情報処理ユニットと１台のＩＯ装置との間を複数のチャネル装置を用いてマルチパス接続する機能を提供する構成が知られている。この場合、第１のチャネル装置を利用して情報処理ユニットとＩＯ装置との間でデータ転送を行っているときに、チェインされたデータ転送の途中でその第１のチャネル装置が故障すると、第２のチャネル装置を使用してデータ転送を継続する。そして、実施形態の情報処理システムは、このようなマルチパス機能も提供することができる。
【００６３】
次に、世代バイトを利用する制御方法について説明する。チャネル装置３２は、上述したように、ＣＩＢ領域５２を利用してＣＵＰ２１に制御情報を通知する。このとき、チャネル装置３２は、通知すべき制御情報と共に世代バイトをＣＩＢ領域５２に書き込む。世代バイトは、ＣＩＢ領域５２に書き込まれる制御情報を識別するシーケンス番号であり、新たな制御情報を書き込む毎に「１」ずつインクリメントされる。よって、ドライバ２３は、ＣＩＢ領域５２から制御情報を取得する際、この世代バイトを参照することにより、過去の制御情報に対応する処理を実行してしまうことを回避できる。すなわち、世代バイトを利用すれば、チャネル装置３２からＣＩＢ領域５２への書込みの失敗を検出することができる。
【００６４】
また、この世代バイトを利用すれば、チャネル装置３２からＣＰＵ２１への割込みを行わなくても、図４に示す起動手順、および図５に示す優先権の許可手順と同等の動作を実現できる。
【００６５】
図７は、チャネル装置３２の起動時に世代バイトを利用する場合の手順を示すフローチャートである。世代バイトを利用する場合には、ステップＳ５の代わりにステップＳ４１が実行される。ステップＳ４１では、チャネル装置３２は、動作結果および新たな世代バイトをＣＩＢ領域５２に書き込む。これにより、世代バイトは「１」だけインクリメントされる。この後、チャネル装置３２は、ＣＰＵ２１に対して割込みを行う必要はない。
【００６６】
ドライバ２３は、ステップＳ４２において、ポーリングによりＣＩＢ領域５２に設定されている世代バイトを定期的に参照する。そして、ドライバ２３は、世代バイトがインクリメントされていることを検出すると、ステップＳ４３において、そのＣＩＢ領域５２に書き込まれている制御情報（ここでは、チャネル装置３２の動作結果）を把握する。この後、ドライバ２３は、チャネル装置３２に対して割込み完了通知を通知する。
【００６７】
図８は、優先権の要求時に世代バイトを利用する場合の手順を示すフローチャートである。世代バイトを利用する場合、チャネル装置３２は、ステップＳ１１の代わりに、ステップＳ５１において、優先権の要求とともに新たな世代バイトをＣＩＢ領域５２に書き込む。また、チャネル装置３２は、ステップＳ１７の代わりに、ステップＳ５４において、処理結果とともに新たな世代バイトをＣＩＢ領域５２に書き込む。この場合、チャネル装置３２は、ＣＰＵ２１に対して割込みを行う必要はない。
【００６８】
ドライバ２３は、ステップＳ５２において、ポーリングにより世代バイトを定期的に参照する。そして、ドライバ２３は、世代バイトがインクリメントされていることを検出すると、ステップＳ５３において、ＣＩＢ領域５２を参照することでチャネル装置３２からの優先権の要求を認識し、ステップＳ１４以降の処理を実行する。
【００６９】
また、ドライバ２３は、ステップＳ５５において、ポーリングにより世代バイトを定期的に参照する。そして、ドライバ２３は、ステップＳ５６において、世代バイトがインクリメントされていることを検出すると、ＣＩＢ領域５２を参照することでチャネル装置３２の処理結果を認識する。
【００７０】
上述の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する情報処理システムにおいて、
前記記憶装置は、
前記チャネル装置を起動させるチャネル装置命令と前記チャネル装置の起動に使用する起動情報が保持される第１の領域と、
前記チャネル装置の動作結果が保持される第２の領域を有し、
前記チャネル装置は、
前記チャネル装置の起動を制御する起動制御部と、
前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、
前記チャネル装置の制御を行うチャネル装置制御部を有し、
前記情報処理装置はさらに、
前記演算処理装置に、
前記記憶装置の前記第１の領域に前記チャネル装置起動命令と前記起動情報を書き込ませるステップと、
前記起動制御部に対して、前記チャネル装置の起動を指示させるステップを実行させ、
前記起動制御部に、
前記記憶装置の前記第１の領域を読み込ませるとともに、前記チャネル装置制御部に通知させるステップを実行させ、
前記チャネル装置に、
前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行させるステップと、
前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への割込を発生させるステップを実行させ、
前記演算処理装置に、
前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込ませることにより、割込の処理を実行させるステップと、
前記割込制御部への割込の処理の完了を通知させるステップを実行させるドライバ部を有することを特徴とする情報処理システム。
（付記２）
演算処理装置と記憶装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うチャネル装置を有する情報処理システムにおいて、
前記記憶装置は、
前記チャネル装置の動作結果が保持される領域を有し、
前記チャネル装置は、
前記チャネル装置の起動を制御する起動制御部と、
前記チャネル装置から前記演算処理装置への割込を制御する割込制御部と、
前記チャネル装置の制御を行うチャネル装置制御部を有し、
前記情報処理装置はさらに、
前記チャネル装置に、
前記記憶装置の前記領域に第１の割込の要求を書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップを実行させ、
前記演算処理装置に、
前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照させるステップと、
前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行させるとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行させるステップを実行させるドライバ部を有することを特徴とする情報処理システム。
（付記３）
前記ドライバ部はさらに、
前記チャネル装置に、
前記第１の割込の要求に対する前記第１の割込の処理を実行させるステップと、
前記第１の割込の処理の結果を前記領域に書き込ませるステップと、
前記割込制御部を用いて、前記演算処理装置への第２の割込を発生させるステップを実行させ、
前記演算処理装置に、
前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込ませるとともに、前記第１の割込の処理の結果を参照させるステップと、
前記割込制御部への第２の割込の処理の完了を通知させるステップを実行させることを特徴とする付記２記載の情報処理システム。
（付記４）
前記ドライバ部はさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止させることを特徴とする付記２又は３記載の情報処理システム。
（付記５）
前記ドライバ部はさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記チャネル装置制御部に対して、エラーを報告することを特徴とする付記４記載の情報処理システム。
（付記６）
第１及び第２の領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、自己の起動を制御する起動制御部と、前記演算処理装置への割込を制御する割込制御部と、自己の制御を行うチャネル装置制御部を有するチャネル装置を備えた情報処理システムの制御方法において、
前記ドライバ部が、前記演算処理装置に、前記記憶装置の前記第１の領域に前記チャネル装置を起動させるチャネル装置起動命令と前記チャネル装置の起動に使用する起動情報を書き込ませるステップと、
前記ドライバ部が、前記演算処理装置に、前記起動制御部に対して、前記チャネル装置の起動を指示させるステップと、
前記ドライバ部が、前記起動制御部に、前記記憶装置の前記第１の領域を読み込ませるとともに、前記チャネル装置制御部に通知させるステップと、
前記ドライバ部が、前記チャネル装置に、前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行させるステップと、
前記ドライバ部が、前記チャネル装置に、前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込ませることにより、割込の処理を実行させるステップと、
前記ドライバ部が、前記演算処理装置に、前記割込制御部への割込の処理の完了を通知させるステップを有することを特徴とする制御方法。
（付記７）
領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、前記演算処理装置への割込を制御する割込制御部を有するチャネル装置を備えた情報処理システムの制御方法において、
前記ドライバ部が、前記チャネル装置に、前記記憶装置の前記領域に第１の割込の要求を書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記演算処理装置が前記第１の割込の発生を
検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照させるステップと、
前記ドライバ部が、前記演算処理装置に、前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行させるとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行させるステップを有することを特徴とする制御方法。
（付記８）
前記制御方法はさらに、
前記ドライバ部が、前記チャネル装置に、前記第１の割込の要求に対する前記第１の割込の処理を実行させるステップと、
前記ドライバ部が、前記チャネル装置に、前記第１の割込の処理の結果を前記領域に書き込ませるステップと、
前記ドライバ部が、前記チャネル装置に、前記割込制御部を用いて、前記演算処理装置への第２の割込を発生させるステップと、
前記ドライバ部が、前記演算処理装置に、前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込ませるとともに、前記第１の割込の処理の結果を参照させるステップと、
前記ドライバ部が、前記演算処理装置に、前記割込制御部への第２の割込の処理の完了を通知させるステップを有することを特徴とする付記７記載の制御方法。
（付記９）
前記制御方法はさらに、
前記ドライバ部が、前記演算処理装置に、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止させるステップを有することを特徴とする付記８記載の制御方法。
（付記１０）
前記制御方法はさらに、
前記ドライバ部が、前記演算処理装置に、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記チャネル装置制御部に対して、エラーを報告するステップを有することを特徴とする付記９記載の制御方法。
（付記１１）
第１及び第２の領域を有する記憶装置と演算処理装置を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、自己の起動を制御する起動制御部と、前記演算処理装置への割込を制御する割込制御部と、自己の制御を行うチャネル装置制御部を有するチャネル装置を備えた情報処理システムの制御プログラムにおいて、
前記演算処理装置に、
前記記憶装置の前記第１の領域に前記チャネル装置を起動させるチャネル装置起動命令と前記チャネル装置の起動に使用する起動情報を書き込むステップと、
前記起動制御部に対して、前記チャネル装置の起動を指示するステップと、
前記起動制御部を用いて、前記記憶装置の前記第１の領域を読み込むとともに、前記チャネル装置制御部に通知するステップと、
前記チャネル装置を用いて、前記記憶装置の前記第１の領域が有する前記チャネル装置命令を実行するステップと、
前記チャネル装置を用いて、前記チャネル装置命令の実行によるチャネル装置の動作結果を、前記記憶装置の前記第２の領域に書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への割込を発生する
ステップと、
前記記憶装置の前記第２の領域を参照し、前チャネル装置の動作結果を読み込むことにより、割込の処理を実行するステップと、
前記割込制御部への割込の処理の完了を通知するステップを実行させることを特徴とする制御プログラム。
（付記１２）
領域を有する記憶装置と演算処理装置とドライバ部を有する情報処理装置と、前記情報処理装置に接続された入出力装置と、前記情報処理装置と前記入出力装置間においてデータの転送を行うとともに、前記演算処理装置への割込を制御する割込制御部を有するチャネル装置を備えた情報処理システムの制御プログラムにおいて、
前記演算処理装置に、
前記チャネル装置を用いて、前記記憶装置の前記領域に第１の割込の要求を書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への第１の割込を発生させるステップと、
前記演算処理装置が前記第１の割込の発生を検出した場合に、前記領域を読み込ませ、前記第１の割込の要求を参照するステップと、
前記第１の割込の要求よりも優先して処理すべき他の処理が存在しないため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可される場合には、前記割込制御部を用いて前記第１の割込の処理を実行するとともに、前記第１の割込の要求よりも優先して処理すべき他の処理が存在するため、前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記演算処理装置が前記他の処理を実行後に、前記割込制御部を用いて前記第１の割込の処理を実行するステップを有することを特徴とする制御プログラム。
（付記１３）
前記制御プログラムはさらに、
前記演算処理装置に、
前記チャネル装置を用いて、前記第１の割込の要求に対する前記第１の割込の処理を実行するステップと、
前記チャネル装置を用いて、前記第１の割込の処理の結果を前記領域に書き込むステップと、
前記チャネル装置の前記割込制御部を用いて、前記演算処理装置への第２の割込を発生するステップと、
前記演算処理装置が前記第２の割込の発生を検出した場合に、前記領域を読み込むとともに、前記第１の割込の処理の結果を参照するステップと、
前記割込制御部への第２の割込の処理の完了を通知するステップを実行させることを特徴とする付記１２記載の制御プログラム。
（付記１４）
前記制御プログラムはさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記第１の割込の処理を中止するステップを実行させることを特徴とする付記１３記載の制御プログラム。
（付記１５）
前記制御プログラムはさらに、
前記演算処理装置に、
前記第１の割込の要求に対して、前記チャネル装置による第１の割込の処理が許可されない場合には、前記チャネル装置制御部に対して、エラーを報告するステップを実行させることを特徴とする付記１４記載の制御プログラム。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態に係る情報処理システムの構成を示す図である。
【図２】実施形態の情報処理システムを簡略化して示した概略図である。
【図３】割込み制御に係わる要素を示す図である。
【図４】ドライバからチャネル装置を起動する手順を示すフローチャートである。
【図５】チャネル装置が優先権を要求した際の手順を示すフローチャートである。
【図６】優先権が許可されないときの手順を示すフローチャートである。
【図７】起動時に世代バイトを利用する場合の手順を示すフローチャートである。
【図８】優先権の要求時に世代バイトを利用する場合の手順を示すフローチャートである。
【図９】背景技術について説明する図である。
【符号の説明】
【００７２】
１      情報処理システム
２      システムボード
３      ＩＯユニット
４      システムインターコネクト
５（５ａ〜５ｎ）  ＩＯ装置
２１    ＣＰＵ
２２    メモリ
２３    ドライバ
２４    割込み制御部
３２（３２ａ〜３２ｃ）  チャネル装置
４０    システム制御部
５１    ＣＯＢ領域
５２    ＣＩＢ領域
６１    起動制御部
６２    割込み制御部
６３    チャネル装置制御部
２００  汎用プラットフォーム
【図２】
0005076967.tif 000002
【図３】
0005076967.tif 000003
【図４】
0005076967.tif 000004
【図５】
0005076967.tif 000005
【図６】
0005076967.tif 000006
【図７】
0005076967.tif 000007
【図８】
0005076967.tif 000008
【図９】
0005076967.tif 000009
【図１】
0005076967.tif 000010