(57)【要約】【課題】本発明により、演算処理装置の負荷軽減およびシステム全体の性能向上が可能とする。【解決手段】第１のバスを介して結合された複数の入出力装置から、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信し、前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得し、第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持し、前記割り込み処理要求を行った入出力装置と、取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因に基づき前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に対して通知する。【選択図】図１
2009069962.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスを介して結合された複数の入出力装置から、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求受信部と、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得部と、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持部と、
前記割り込み処理要求を行った入出力装置と前記割り込み要因取得部により取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に対して通知する割り込み情報通知部と、
を備えたバス結合装置。
【請求項２】
前記演算処理装置からの指示に応じて前記割り込みマスク情報保持部の内容を設定する割り込みマスク情報設定部をさらに備えたことを特徴とする請求項１に記載のバス結合装置。
【請求項３】
前記割り込み処理要求を行った入出力装置と、前記取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除部をさらに備えた請求項１または２に記載のバス結合装置。
【請求項４】
各前記入出力装置に対して各々の割り込み要因ごとに前記割り込み処理要求の有無を表した割り込み元情報を保持する割り込み元情報保持部と、
前記割り込み処理要求を行った入出力装置の識別情報と、前記取得された割り込み要因とに基づいて前記割り込み元情報保持部を更新する割り込み元情報更新部と、を備え、
前記割り込み情報通知部は、
前記割り込み元情報保持部に保持される前記割り込み元情報を前記演算処理装置に提供する割り込み元情報提供部と、
前記割り込み処理要求を行った入出力装置と前記取得された割り込み要因との組に対する割り込みが許可されているとき、前記演算処理装置により処理可能な割り込み処理要求があることを表す第２の割り込み処理要求を前記演算処理装置に対して発行する割り込み発行部と、を有する、
ことを特徴とする請求項１または２に記載のバス結合装置。
【請求項５】
前記割り込み処理要求を行った入出力装置と、前記割り込み処理要求に応じて取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除部をさらに備え、
前記割り込み元情報更新部は、前記割り込み処理要求が解除された入出力装置の識別情報と、前記割り込み処理要求に応じて取得された割り込み要因とに基づいて前記割り込み元情報保持部を更新する、
ことを特徴とする請求項４に記載のバス結合装置。
【請求項６】
第１のバスを介して結合された複数の入出力装置のいずれかから、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求ステップと、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得ステップと、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持ステップと、
前記割り込み処理要求を行った入出力装置と、取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に通知する割り込み情報通知ステップと、
を備えた割り込み制御方法。
【請求項７】
前記演算処理装置からの指示に応じて前記割り込みマスク情報の内容を設定する割り込みマスク情報設定ステップをさらに備えたことを特徴とする請求項６に記載の割り込み制御方法。
【請求項８】
前記割り込み処理要求を行った入出力装置と、前記取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除ステップをさらに備えたことを特徴とする請求項６または７に記載の割り込み制御方法。
【請求項９】
各前記入出力装置に対して各々の割り込み要因ごとに前記割り込み処理要求の有無を表した割り込み元情報を保持する割り込み元情報保持ステップと、
前記割り込み処理要求を行った入出力装置の識別情報と、前記取得された割り込み要因とに基づいて前記割り込み元情報を更新する割り込み元情報更新ステップと、を備え、
前記割り込み情報通知ステップは、
前記割り込み元情報保持ステップで保持される前記割り込み元情報を前記演算処理装置に提供する割り込み元情報提供ステップと、
前前記割り込み処理要求を行った入出力装置と前記取得された割り込み要因との組に対する割り込みが許可されているとき、前記演算処理装置により処理可能な割り込み処理要求があることを表す第２の割り込み処理要求を前記演算処理装置に対して発行する割り込み発行ステップとを有する、
ことを特徴とする請求項６または７に記載の割り込み制御方法。
【請求項１０】
前記割り込み処理要求を行った入出力装置と、前記取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除ステップをさらに備え、
前記割り込み元情報更新ステップは、前記割り込み処理要求が解除された入出力装置の識別情報と、前記取得された割り込み要因とに基づいて前記割り込み元情報を更新する、
ことを特徴とする請求項９に記載の割り込み制御方法。
【請求項１１】
第１のバスを介して結合された複数の入出力装置のいずれかから、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求ステップと、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得ステップと、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持ステップと、
前記割り込み処理要求を行った入出力装置と、取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に通知する割り込み情報通知ステップと、
をコンピュータに実行させるための割り込み制御プログラム。
【請求項１２】
前記演算処理装置からの指示に応じて前記割り込みマスク情報の内容を設定する割り込みマスク情報設定ステップをさらに前記コンピュータに実行させることを特徴とする請求項１１に記載の割り込み制御プログラム。
【請求項１３】
前記割り込み処理要求を行った入出力装置と、前記取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除ステップをさらに前記コンピュータに実行させることを特徴とする請求項１１または１２に記載の割り込み制御プログラム。
【請求項１４】
各前記入出力装置に対して各々の割り込み要因ごとに前記割り込み処理要求の有無を表した割り込み元情報を保持する割り込み元情報保持ステップと、
前記割り込み処理要求を行った入出力装置の識別情報と、前記取得された割り込み要因とに基づいて前記割り込み元情報を更新する割り込み元情報更新ステップと、をさらに前記コンピュータに実行させ、
前記割り込み情報通知ステップは、
前記割り込み元情報保持ステップに保持される前記割り込み元情報を前記演算処理装置に提供する割り込み元情報提供ステップと、
前前記割り込み処理要求を行った入出力装置と前記取得された割り込み要因との組に対する割り込みが許可されているとき、前記演算処理装置により処理可能な割り込み処理要求があることを表す第２の割り込み処理要求を前記演算処理装置に対して発行する割り込み発行ステップとを有する、
ことを特徴とする請求項１１または１２に記載の割り込み制御プログラム。
【請求項１５】
前記割り込み処理要求を行った入出力装置と、前記取得された割り込み要因との組に対する割り込みが許可されていないとき、前記割り込み処理要求を発行した入出力装置にアクセスして前記割り込み処理要求を解除する割り込み解除ステップをさらに前記コンピュータに実行させ、
前記割り込み元情報更新ステップは、前記割り込み処理要求が解除された入出力装置の識別情報と、前記取得された割り込み要因とに基づいて前記割り込み元情報を更新する、
ことを特徴とする請求項１４に記載の割り込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、CPU（Central Processing Unit：中央演算処理装置）等の演算処理装置と入出力装置との間を接続するバス結合装置、ならびに、入出力装置から発行される割り込み処理要求を処理する割り込み処理方法およびプログラムに関し、たとえば各入出力装置からの割り込み処理要求を効率的に処理する割り込み処理技術に関する。
【背景技術】
【０００２】
CPU等の演算処理装置と入出力装置との間を接続するバス結合装置を有する従来のシステムにおいて、入出力装置から発行された割り込みはたとえば以下のようにして処理される。まず入出力装置が割り込みを発行した時、バス結合装置は割り込みを発行した入出力装置を特定する情報を何らかの記憶領域に保持すると共にCPU へ割り込みを発行する。続いてCPU は、バス結合装置が保持している割り込み元の入出力装置の情報を読み込んで、該入出力装置を特定する。そしてCPUは、その入出力装置へバス結合装置を通じて割り込み要因を調べにいき、その割り込み要因に応じた処理をその入出力装置に対して実行する。
【０００３】
このような割り込み処理方法では、バス結合装置へ接続される入出力装置の数が増加することにより割り込み元が増加したり、各入出力装置からの単位時間当たりの割り込み頻度が増したりすると、上記のようなCPU に課せられる割り込み処理のオーバーヘッドは大きくなり、システム全体のパフォーマンスを低下させるという問題がある。
【０００４】
上記問題を解決する公知発明としては、特許文献１（特開平7-200494号公報）に記載の発明が最も類似している。特許文献１の用語を借りて説明すると、特許文献１に記載の発明のポイントは次の通りである。上位制御装置と下位制御装置の間に共通メモリを設け、下位制御装置が処理要求を発行すると、共通メモリに要求内容を書き込むと共に上位制御装置に対し割り込みを発行する。上位制御装置は、この割り込みを受け付けると、共通メモリへアクセスして、上記要求内容を読み込み、その要求内容に沿った処理を実行する。これにより、複数の下位制御装置において生じる処理要求を、迅速且つ効率的に上位制御装置へ伝達できる。
【０００５】
しかしながら、この特許文献１の発明では、上位制御装置（たとえばCPU）が、下位制御装置からの割り込みに対応する処理を実行できない場合にも、入出力装置から割り込みを受けてしまい、その場合、CPUはその割り込みを解除する処理を実行しなくてはならない。このため、CPUの負荷が増え、システム全体の性能も低下してしまう。
【０００６】
なお、特許文献１以外の公知発明としては、特許文献２（特開2004-355543号公報）、特許文献３（特開2005-115658号公報）などがある。
【特許文献１】特開平7-200494号公報
【特許文献２】特開2004-355543号公報
【特許文献３】特開2005-115658号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、演算処理装置の負荷軽減およびシステム全体の性能向上を可能としたバス結合装置、ならびに割り込み制御のための方法およびプログラムを提供する。  
【課題を解決するための手段】
【０００８】
本発明の一態様としてのバス結合装置は、
第１のバスを介して結合された複数の入出力装置から、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求受信部と、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得部と、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持部と、
前記割り込み処理要求を行った入出力装置と前記割り込み要因取得部により取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に対して通知する割り込み情報通知部と、
を備える。
【０００９】
本発明の一態様としての割り込み制御方法は、
第１のバスを介して結合された複数の入出力装置のいずれかから、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求ステップと、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得ステップと、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持ステップと、
前記割り込み処理要求を行った入出力装置と、取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に通知する割り込み情報通知ステップと、
を備える。
【００１０】
本発明の一態様としての割り込み制御プログラムは、
第１のバスを介して結合された複数の入出力装置のいずれかから、演算処理を行う演算処理装置に対して発行される割り込み処理要求を受信する割り込み要求ステップと、
前記割り込み処理要求を行った前記入出力装置にアクセスして前記割り込み処理要求の要因を表す割り込み要因情報を取得する割り込み要因取得ステップと、
第２のバスを介して結合された前記演算処理装置に対する割り込みを許可するか否かを、各前記入出力装置に対して各々の割り込み要因ごとに定めた割り込みマスク情報を保持する割り込みマスク情報保持ステップと、
前記割り込み処理要求を行った入出力装置と、取得された割り込み要因との組に対する割り込みが許可されているとき、前記割り込み処理要求を行った入出力装置が前記取得された割り込み要因により前記割り込み処理要求を行っていることを表す割り込み情報を前記演算処理装置に通知する割り込み情報通知ステップと、
をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明により、割り込み処理装置の負荷軽減およびシステム全体の性能向上が可能となる。
【発明を実施するための最良の形態】
【００１２】
図4は、本発明者らが本発明をなす以前から知っている典型的なバス結合装置101 を有する割り込み処理システムの構成を概略的に示す。
【００１３】
この割り込み処理システムにおいて、バス結合装置101 は、CPU（演算処理装置）1、及び、複数の入出力装置103a,103b,103c …間を接続する。バス結合装置101 とCPU1 は、バス1a で接続され、バス結合装置101 と入出力装置103a,103b,103c …は、バス1a とは別に存在するバス1b で接続される。
【００１４】
CPU1 に対しては、CPU1によりアクセス可能な主記憶装置102が設けられる。主記憶装置102は、割り込み元情報記憶部10と割り込み制御プログラム3とを有する。割り込み元情報記憶部10は、バス1a からCPU1に入力される割り込み（バス1a割り込み）の発行元を特定するための割り込み元情報を記憶する。割り込み制御プログラム3は、CPU1により実行され、CPU1 がバス1a 割り込みを受信した時、CPU1 が割り込み元情報記憶部10 を参照して、その得られた情報に応じた入出力装置へアクセスする手順が定められている。
【００１５】
入出力装置103a,103b,103c …は、それぞれ割り込み要因表明部31a,31b,31c…、割り込み発行部32a,32b,32c …を備える。
【００１６】
入出力装置103a,103b,103c …は、割り込み発行部32a,32b,32c …を用いて、各々CPU1に対する割り込みをバス1b 割り込みとして発行しバス1bに出力する。すなわち、入出力装置は、バス1b 割り込みを通じて割り込みを発行することにより、自身において何らかの処理の必要性が生じていることを、バス結合装置101を介して、外部の処理装置（たとえばCPU1 ）に通知する。バス1b割り込みは、たとえばハイレベルの信号が、割り込み発行部32a,32b,32c …と、バス結合装置101の割り込み元特定部12との間に確立されることでなされる。このバス1b割り込み（ハイレベル信号）は、CPU1によりバス結合装置101を介して解除されない限り、維持される。
【００１７】
また、入出力装置103a,103b,103c …は、バス1b 割り込みの発行に伴って、そのバス1b 割り込みの要因（たとえばCPU1からデータを送ってもらいたいことを表す入力要求、または、CPU1にデータを送りたいことを表す出力要求）を示す情報を、割り込み要因表明部31a,31b,31c… に設定する。
【００１８】
バス結合装置101 は、割り込み元情報保持部15、割り込みマスク設定部14 、割り込み発行部13 、入出力装置制御部11 、割り込み元特定部12 を備える。入出力装置制御部11 は割り込み解除部16を有する。尚、バス結合装置全般が備える機能（バスプロトコル変換、データ入出力バッファ）については本発明の本質と無関係であるため図4から省略している。
【００１９】
割り込み元特定部12 は、各入出力装置からそれぞれバス1b 割り込みを受信し、受信したバス1b割り込みがどの入出力装置から到来したものなのかを特定し、特定した割り込み元を入出力装置制御部11 へ通知する。
【００２０】
入出力装置制御部11 は、割り込み元特定部12から通知された割り込み元から割り込みが発生していることを表す情報を割り込み元情報保持部15 へ設定する（追加する）。また入出力装置制御部11 は、CPU1からの要求に応じて入出力装置の割り込み要因表明部へアクセスする機能を有する。
【００２１】
入出力装置制御部11における割り込み解除部16 は、CPU1 により指示された入出力装置が発行するバス1b 割り込みの解除を行なう（ハイレベル信号をローレベル信号にする）。
【００２２】
割り込み元情報保持部15 は、どの入出力装置1 がバス1b 割り込みを発行しているかを示す情報（割り込み元情報）を保持する。割り込み元情報保持部15内の割り込み元情報はCPU1により読み取られ、主記憶装置102内の割り込み元情報記憶部10に記憶される。
【００２３】
割り込みマスク設定部14 は、どの入出力装置1 がバス1b 割り込みを発行しているときに、バス1a 割り込みを発行すべきかを示す情報（割り込みマスク情報）を保持する。
【００２４】
割り込み発行部13は、割り込み元情報保持部15の情報、及び、割り込みマスク設定部14 に設定された情報に基づき、バス1a 割り込みの発行条件（出力条件）が満たされるとき、バス1a 割り込みを発行する。具体例としては、割り込み元情報保持部15および割り込みマスク設定部14の情報がビット列として用意されるとすると、割り込みマスク設定部14 のビット列を論理反転したものと、割り込み元情報保持部15 のビット列との論理積を、演算器17を用いて計算し（以降、この論理演算処理を“ビットマスク処理” と呼ぶ）、得られるビット列の各ビットがゼロ／非ゼロであるかによって、バス1a 割り込みの非出力／出力の判定を行なう。すなわち各ビットの少なくとも１つが非ゼロであれば、バス1a割り込みを出力し、すべてのビットがゼロであればバス1a割り込みを出力しない。すなわちバス1b割り込みを発行している入出力装置のうちいずれか１つでもバス1a割り込みが割り込みマスク設定部14により許可されていれば、バス1a割り込みが出力される。
【００２５】
図6は、割り込み発行部13が、割り込み元情報保持部15及び割り込みマスク設定部14 に基づいて上記ビットマスク処理を行う例を説明する図である。
【００２６】
割り込み元情報保持部15 及び割り込みマスク設定部14 は共に3 ビット幅で構成され、各ビットが入出力装置103a〜103cに対応する。CPU1 が割り込みマスク設定部14 へ”101” のビット列（以後、割り込み元情報保持部と割り込みマスク設定部の値は2 進数表記とする）を設定したと仮定する（図6 中、論理反転前のビット列）。
【００２７】
続いて、入出力装置103a がバス1b 割り込みを発行した時、割り込み元特定部12 はバス1b 割り込みを発行した入出力装置が入出力装置103a であることを示す値001 を入出力装置制御部11 へ通知し、入出力装置制御部11 がその値を割り込み元情報保持部15 へ書き込んだと仮定する。
【００２８】
この時点において、割り込み発行部13 により、バス1a 割り込みの発行条件の判定が行なわれる。
【００２９】
割り込み元情報保持部15 の値”001” に対して、CPU1 が設定した割り込みマスク設定部14 の値を論理反転した値”010”（図6 中、論理反転後のビット列）でビットマスク処理（論理積演算）を行なうと”000” という値が得られ、このケースではビット”1”が含まれないため、バス1a 割り込みは発行されないこととなる。
【００３０】
一方、バス1a 割り込みが発行されるケースについては、例えば入出力装置103b がバス1b 割り込みを発行した場合（割り込み元情報保持部15の値のうち少なくとも中間のビットが”1”の場合）がある。このとき、ビットマスク処理後得られる値は”010”であり、少なくとも１つのビットが非ゼロであるため割り込み発行部13 によりバス1a 割り込みが発行されることとなる。
【００３１】
なお、バス1a 割り込み自体には、割り込み元がどの入出力装置かを示す情報は含まれていない。CPU1は、割り込み元情報記憶部10内の割り込み元情報に基づき、ビット”1”が立っている入出力装置のいずれかにアクセスするか、あるいは、割り込みマスク情報を自ら知っているため、この割り込みマスク情報に基づきアクセスすべき入出力装置を特定しアクセスしてもよい。そのほか、任意の方法で、アクセスすべき入出力装置を特定してもよい。
【００３２】
以降、図4の典型的なバス結合装置を介した割り込み処理手順を例示する。
【００３３】
例えば、入出力装置103a がバス1b 割り込みを発行した時、割り込み元特定部12 がバス1b 割り込みを発行した入出力装置103a を特定する情報（識別情報）を入出力装置制御部11 へ通知し、入出力装置制御部11 が割り込み元情報（” 001”）を割り込み元情報保持部15 へ追加する。
【００３４】
割り込み発行部13 は、割り込み元情報保持部15 と割り込みマスク設定部14 を参照して、バス1a 割り込みの出力条件の判定を行なう。
【００３５】
出力条件が満たされバス1a 割り込みが発行されると（たとえば割り込みマスク設定部14に”000”,あるいは”010”,あるいは”110”あるいは”100”が設定されている場合）、CPU1 は、割り込み制御プログラム3 を起動し、割り込み元情報保持部15 へアクセスして割り込み元情報を取得して割り込み元情報記憶部10 へ格納する。CPU1は、割り込み元情報記憶部10の割り込み元情報からどの入出力装置 が割り込み処理要求を出しているのかを知る。
【００３６】
CPU1 は、割り込みマスク設定部14 をたとえばオール”1”に設定することにより割り込み発行部13にバス1a 割り込みを解除させ、また割り込み元情報保持部15 における入出力装置103a に該当する値を0にする。そして、CPU1は、割り込み処理要求を出している入出力装置103a の割り込み要因表明部31a へバス結合装置101 を介してアクセスし、割り込み要因を取得し、CPU1 はその割り込み要因に対応する処理を実行する。
【００３７】
CPU1 は、その処理が完了すると、バス結合装置101 の割り込み解除部16 へアクセスすることにより、入出力装置103a が発行するバス1b 割り込みを割り込み解除部16に解除させ、続いて、割り込みマスク設定部14 を元の状態に戻す、あるいは所望の値に設定する。
【００３８】
なお、入出力装置103aのほかに、バス1b割り込みを発行している他の入出力装置が存在する場合、入出力装置103aの割り込みを処理した後も、割り込み元情報保持部15 には、上記他の入出力装置から割り込み処理要求があることを示す値”1”が割り込み元情報保持部15に維持される。
【００３９】
上述した割り込み処理手順の例において、仮に入出力装置103a以外の装置（たとえば入出力装置103b）もバス1b割り込みを発行し、割り込み元情報が” 011”であったとする（割り込みマスク情報は”110”であるとする）。このときも、バス1a割り込みが発行されるため、CPU1は、割り込み元情報記憶部10内の割り込み元情報から、入出力装置103a,103bのいずれか一方を特定し、特定した装置に対して、上述同様の処理を行う。この際、もし入出力装置103bを特定した場合、入出力装置103bから割り込み要因を取得するものの、この割り込み要因に対応する割り込み処理はできないため、CPU1は、割り込み解除部16を介して、入出力装置103b が発行するバス1b 割り込みを解除することとなる。
【００４０】
以下、上述した図4の典型的なバス結合装置を介した割り込み処理手順の問題点を、図5のシーケンスチャートを用いて説明する。
【００４１】
入出力装置103a が、データの入力要求（データを入出力装置103aに送ることをCPU1に指示する要求）に起因するバス1b 割り込みを発行し（3-1）、バス結合装置101 がバス1a 割り込みを発行する。
【００４２】
CPU1 は、このバス1a 割り込みを受けて、バス結合装置101 の割り込み元情報保持部15 へアクセスし、割り込み元情報を取得する。CPU1 は、バス結合装置101 の割り込みマスク設定部14にたとえばオール”1”を設定してバス1a 割り込みを解除し（3-2）、また、割り込み元情報保持部15 上の入出力装置103a に該当する値を0に設定する。続いてCPU1 は、バス1b 割り込みを発行している入出力装置103a の割り込み要因表明部31a へバス結合装置101 を介してアクセスし、割り込み要因を取得する。
【００４３】
入出力装置103a から取得した割り込み要因の内容がデータ入力要求で、且つ、CPU1 がその入出力装置103a へ供給するデータを持たない場合（3-3）、CPU1 は、入出力装置103a から次に発生する、異なる割り込み要因（例えば、データ出力要求）に起因するバス1a 割り込みの発行へ備えるために、割り込み解除部16 へアクセスして、入出力装置103a が発行するバス1b 割り込みを解除し（3-4）、続いて、割り込みマスク設定部14 を元の状態に戻す。
【００４４】
この時点では、入出力装置103a にはデータが入力されておらず、この後、データ入力要求に起因するバス1b 割り込みが再度、入出力装置103aから発行される。
【００４５】
このように、当該データ入力要求に起因するバス1b割り込みに対する処理が実行されるまで、このバス1b割り込みが入出力装置103a から繰り返し発行され、これら一連のバス1b割り込みを解除する処理のためだけの負荷がCPU1 、バス結合装置101、バス1a,1bに課せられ続けることとなる。すなわち、CPU1がその割り込みに対応する処理を実行できない場合にも割り込みを受けてしまうため、その都度、その割り込みを解除する処理の負荷が、CPU1を含むシステム全体にかかる。
【００４６】
この問題を解決するため、本発明の実施形態としてのバス結合装置では、割り込み要因と入出力装置との組ごとに値を設定できるように割り込み元情報とマスク情報とを構成し、図4の典型的なバス結合装置より高い分解能で、入出力装置の割り込みを制御することを可能とする。また入出力装置から割り込みを受信すると、それを契機として自発的に割り込み元である入出力装置へアクセスして割り込み要因を取得し、その入出力装置と割り込み要因との組が割り込みマスク情報によりマスクされている場合は、自ら割り込みを解除する。以降、本発明の一実施形態としてのバス結合装置を有する割り込み処理システムについて詳細に説明する。
【００４７】
図1は、本発明の一実施形態としてのバス結合装置201を有する割り込み処理システムの構成を概略的に示す。
【００４８】
この割り込み処理システムにおいて、バス結合装置201 は、外部の処理装置（ここではCPU2）及び複数の入出力装置203a,203b,203c …間を接続する。バス結合装置201 と外部の処理装置（ここではCPU2） は、バス2a で接続され、バス結合装置201 と入出力装置203a,203b,203c …は、バス2a とは別に存在するバス2b で接続される。
【００４９】
外部の処理装置（ここではCPU2）に対しては、外部の処理装置（ここではCPU2）によりアクセス可能な主記憶装置202が設けられる。主記憶装置202は割り込み元情報記憶部20と割り込み制御プログラム4とを有する。割り込み元情報記憶部20は、外部の処理装置（ここではCPU2）により読み込まれることによりバス2a割り込みの発行元および割り込み要因を特定するための割り込み元情報を記憶する。割り込み制御プログラム4は、外部の処理装置（ここではCPU2） により実行され、外部の処理装置（ここではCPU2） がバス2a 割り込みを受信した時、外部の処理装置（ここではCPU2） が割り込み元情報記憶部20 を参照して、その得られた情報に応じた入出力装置へアクセスする手順が定められている。
【００５０】
入出力装置203a,203b,203c …は、それぞれ割り込み要因表明部42a,42b,42c…、割り込み発行部43a,43b,43c …を備える。
【００５１】
入出力装置203a,203b,203c …は、割り込み発行部43a,43b,43c …を用いて、各々外部の処理装置（ここではCPU2）に対する割り込みをバス2b 割り込みとして発行しバス2bに出力する。すなわち、入出力装置は、バス2b 割り込みを通じて割り込みを発行することにより、自身において何らかの処理の必要性が生じていることを、バス結合装置201を介して、外部の処理装置（ここではCPU 2）に通知する。バス2b割り込みは、たとえばハイレベルの信号が、割り込み発行部43a,43b,43c …と、バス結合装置201の割り込み元特定部22との間に確立されることでなされる。このバス2b割り込み（ハイレベル信号）は、バス結合装置201により解除されない限り、維持される。
【００５２】
また、入出力装置203a,203b,203c …は、バス2b 割り込みの発行に伴って、そのバス2b 割り込みの要因（たとえば外部の処理装置（ここではCPU2）からデータを送ってもらいたいことを表す入力要求、または、外部の処理装置（ここではCPU2）にデータを送りたいことを表す出力要求）を示す情報を、割り込み要因表明部42a,42b,42c… に設定する。
【００５３】
バス結合装置201 は、割り込み元情報保持部25、割り込みマスク設定部24 、割り込み発行部23 、入出力装置制御部21、割り込み元特定部22を備える。入出力装置制御部21は、割り込み解除部26 、割り込み要因取得部29 、割り込み要因判断部28 を有する。なお、バス結合装置全般が備える機能（バスプロトコル変換、データ入出力バッファ）については、本発明の本質と無関係であるため図1 から省略している。
【００５４】
割り込み元情報保持部25 は、どの入出力装置 が、何の割り込み要因によってバス2b 割り込みを発行しているかを示す情報（割り込み元情報）を保持する。割り込み元情報保持部25は割り込み元情報を外部の処理装置（ここではCPU2）に提供する割り込み元情報提供部を含む。
【００５５】
割り込みマスク設定部（割り込みマスク情報保持部）24 は、どの入出力装置が何の割り込み要因によってバス2b 割り込みを発行しているときに、バス2a 割り込みを発行すべきかを示す情報（割り込みマスク情報）を保持する。割り込みマスク設定部24は、外部の処理装置（ここではCPU2）からの指示に応じて割り込みマスク情報の内容を設定する機能を有する。
【００５６】
割り込み元特定部22 は、各入出力装置203a,203b,203c … からそれぞれバス2b 割り込みを受信すると、それがどの入出力装置から到来したものなのかを特定し、特定した割り込み元を入出力装置制御部21 へ通知する。割り込み元特定部22はたとえば割り込み要求受信部を含んでいる。
【００５７】
入出力装置制御部21 の割り込み要因取得部29 は、割り込み元特定部22から通知された割り込み元に対応する入出力装置の割り込み要因表明部へアクセスして割り込み要因を取得する。
【００５８】
入出力装置制御部21 の割り込み解除部26 は、割り込み要因判断部28または外部の処理装置（ここではCPU2）により指示された入出力装置が発行するバス2b 割り込みの解除を行なう。
【００５９】
割り込み要因判断部28は、割り込み要因取得部29により取得された割り込み要因、及び、割り込みマスク設定部24 を参照し、もしその割り込み要因に対してバス2a 割り込みを発行させないように割り込みマスク情報（マスク値）が設定されていた場合は、自発的に、入出力装置制御部21の割り込み解除部26 に、バス2b 割り込みを解除させる。このようにバス2b割り込みを自動的に解除するため、割り込み元情報保持部25への書き込みは行わない。
【００６０】
一方、割り込み要因判断部28は、もしその割り込み要因に対してバス2a 割り込みを発行させるように割り込みマスク情報が設定されていた場合は、その割り込み要因に相当する情報（割り込み要因取得部29により取得された割り込み要因をもつ割り込みがその入出力装置から発生していることを表す情報）を割り込み元情報保持部25へ書き込む（追加する）。
【００６１】
割り込み発行部23は、割り込み元情報保持部25の情報、及び、外部の処理装置（ここではCPU2）が割り込みマスク設定部24に設定した情報に応じて、バス2a 割り込みを発行する。より詳細には、割り込み発行部23 は、割り込み元情報保持部25 および割り込みマスク設定部24に保持された情報に対して演算器27を用いてビットマスク処理（論理積演算）を行った後、バス2a 割り込みの発行条件が満たされる場合にバス2a 割り込みを発行する。
【００６２】
図3は、割り込み発行部23が、割り込み元情報保持部25及び割り込みマスク設定部24に基づいて行うビットマスク処理の例を説明する図である。
【００６３】
割り込み元情報保持部25 及び割り込みマスク設定部24 は、共に3 ビット幅2 段で構成される。1 段目は入力要求用、2 段目は出力要求用に設けられ、各段における各ビットが入出力装置203a〜203cに対応する。外部の処理装置（ここではCPU2） が割り込みマスク設定部24 における各段に、それぞれ”101”、”111” を設定したと仮定する（図3 中、論理反転前のビット列）。
【００６４】
入出力装置203aが出力要求に起因するバス2b 割り込みを発行した時、割り込み元特定部22 は、バス2b 割り込みを発行した入出力装置を特定し、特定した入出力装置203aを示す情報を、入出力装置制御部21へ通知する。
【００６５】
割り込み要因取得部29 は、入出力装置203a の割り込み要因表明部42 へアクセスして割り込み要因を取得する。
【００６６】
入出力装置制御部21は、割り込み元と割り込み要因の組が、入出力装置203a と出力要求の組であることを示す値”000”、”001” を割り込み元情報保持部25 へ書き込む。
【００６７】
この時点において、割り込み発行部23 によるバス2a 割り込みの発行条件の判定が行なわれる。割り込み元情報保持部25 の値”000”、”001” に対して、外部の処理装置（ここではCPU2） が設定した割り込みマスク設定部24 の値を論理反転した値”010”、”000”（図3 中、論理反転後のビット列）でビットマスク処理を行なうと”000”、 ”000” という値が得られ、このケースでは、ビット”1”が含まれないため、バス2a 割り込みは発行されないこととなる。
【００６８】
一方、バス2a 割り込みが発行されるケースについては、例えば入出力装置203b が入力要求に起因するバス2b 割り込みを発行した場合がある。このとき、ビットマスク処理により得られる値は”010”、”000” であり、１段目および２段目のビット列のいずれかに”1”が含まれるため、割り込み発行部23 によりバス2a 割り込みが発行される（外部の処理装置（ここではCPU2）と割り込み発行部23との間を結ぶラインがハイレベルとされる）。
【００６９】
先ほど説明した図4の典型的なバス結合装置101 においては、割り込み元情報保持部15 には、どの入出力装置がバス1b 割り込みを発行しているかを示す情報だけが保持され、割り込み要因についてはCPU1 が入出力装置 に直接、アクセスして直接取得する必要があったが、図1のバス結合装置201 においては、割り込み元情報保持部25 には、どの入出力装置203 からバス1b割り込みが発行されているかのみならずそのバス2b 割り込みが何の割り込み要因に起因するのかを示す情報も保持される。このため、割り込み要因については外部の処理装置（ここではCPU2） が入出力装置に直接アクセスして取得する必要が無く、加えて、割り込み元情報保持部25 の情報量が増したことに伴って、割り込みマスク設定部24 に設定する情報の分解能が向上するため、細かいビットマスク処理が可能となる。
【００７０】
図2 は、図1 のバス結合装置201を介した割り込み処理の手順を詳細に示すフローチャートである。
【００７１】
まず外部の処理装置（ここではCPU2） は、予め割り込みマスク設定部24 に対して、その時点にバス2a 割り込みを受信しても、処理すべきタスクを持たない、割り込み元と割り込み要因の組を、割り込みマスク設定部24へ設定する（4-1）。これにより、その割り込み元と割り込み要因の組に起因するバス2a 割り込みは発行させないように設定されたこととなる。ここでは、外部の処理装置（ここではCPU2） がデータの入力要求を出す入出力装置203a に対して供給するデータを持たないことを示す、割り込み元と割り込み要因の組をマスクしたとする。具体的には、入出力装置203aとデータ入力要求との組に対応するビットを”1”にする。つまり、図3の割り込みマスク設定部24の論理反転前の1段目ビット列を”XX1”とする（Xは”0”または”1”）。２段目ビット列はここでは任意のビット列を設定したとする。
【００７２】
入出力装置203a がデータの入力要求に起因するバス2b 割り込みを発行した時（4-2）、バス結合装置201 は入出力装置203a の割り込み要因表明部42a へアクセスして、割り込み要因を取得し、割り込み元とその取得した割り込み要因に基づき、割り込みマスク設定部24 を参照する。上述の通り、その割り込み元情報と割り込み要因の組に対してはバス2a 割り込みを発行させないように割り込みマスク設定部24は設定されているため、バス結合装置201 の割り込み解除部26 によってバス2b 割り込みは解除され（4-3）、且つ、バス2a 割り込みは発行されない（4-4）。以後、その割り込み元と割り込み要因の組に対応するマスク値がバス2a 割り込みを発行するように再設定されない限り、バス結合装置201 の割り込み解除部26 によってバス2b 割り込みは解除されることとなる。
【００７３】
これらにより、入出力装置203a のバス2b 割り込みを外部の処理装置（ここではCPU2） により解除する機会が減少するため、CPU 、バス結合装置、バスへ与える負荷は、図4の典型的なバス結合装置と比較して軽減される。並びに、割り込み発行部23によるバス2a 割り込みの発行頻度が下がるため、システム全体のパフォーマンスが向上する。
【００７４】
ここで、外部の処理装置（ここではCPU2） がデータの入力要求を出す入出力装置203a に対して供給するデータが準備できた場合（4-5）、外部の処理装置（ここではCPU2） は、データ入力要求を出す入出力装置203a に起因するバス2a 割り込みが発行されるように、割り込みマスク設定部24 を設定し直す。具体的には、入出力装置203aとデータ入力要求との組に対応するビットを”0”にする。
【００７５】
入出力装置203a がデータの入力要求に起因するバス2b 割り込みを発行した時（4-6）、バス結合装置201 は入出力装置203a の割り込み要因表明部42a へアクセスし、割り込み要因を取得し、割り込み元とその取得した割り込み要因に基づき、割り込みマスク設定部24 を参照する。その割り込み元と割り込み要因の組に対してバス2a 割り込みを発行するように割り込みマスク設定部24は設定されているため、バス2a 割り込みが発行される。また割り込み元情報保持部25内の割り込み元情報が外部の処理装置（ここではCPU2）により読み出され、割り込み元情報記憶部20に記憶される。バス2a割り込みと、外部の処理装置（ここではCPU2）により読み出された割り込み元情報との組は、本発明の割り込み情報通知部により通知される、上記入出力装置2aがバス2b割り込み（割り込み処理要求）を行っていることを表す割り込み情報に相当する。
【００７６】
外部の処理装置（ここではCPU2） は、その割り込み元と割り込み要因の組に対して”1”を割り込みマスク設定部24に設定してバス2a 割り込みを解除し、外部の処理装置（ここではCPU2） は、その割り込み元と割り込み要因の組に対応する割り込み元情報保持部25 の値を”0”にする（4-7）。
【００７７】
続いて、外部の処理装置（ここではCPU2）は、入出力装置203a に対してバス結合装置201 を介して上記入力要求に基づくデータを書き込み（4-8）、データの書き込みが完了すると、バス結合装置201 の割り込み解除部26 へアクセスすることにより、入出力装置203a が発行するバス2b 割り込みを解除する（4-9）。入出力装置203aに送るべきデータが無くなったら、入出力装置203a からのデータ入力要求に起因するバス2a 割り込みが発行されないように、割り込みマスク設定部24 を設定する（4-10）。
【００７８】
以上に説明した本実施の形態において以下の変更を加えるようにしてもよい。
【００７９】
前述した実施形態においては、割り込み要因判断部28は、バス2b割り込みを行った入出力装置と割り込み要因との組がマスクされていた場合は、自発的に、バス2b 割り込みを解除するようにしたが、割り込み要因判断部28はこのような処理を行わず、また、バス2b割り込みがあったときは、常に、割り込み元情報保持部25への書き込みを行うようにする。割り込み発行部23は、ビットマスク処理により得られるビット列にビット”1”が含まれていれば、バス2a割り込み（第２の割り込み処理要求）を発行する。外部の処理装置（ここではCPU2）は、割り込み元情報保持部25から割り込み元情報記憶部20に読み出した割り込み元情報の中から、処理すべきタスクをもつ、入出力装置および割り込み要因を特定し、アクセスする。外部の処理装置（ここではCPU2） は、たとえばアクセス前に、その入出力装置と割り込み要因の組に対して”1”を割り込みマスク設定部24に設定してバス2a 割り込みを解除し、また、その入出力装置と割り込み要因の組に対応する割り込み元情報保持部25 の値を”0”にする。
【００８０】
これまで入出力装置の割り込み解除や割り込み要因取得の手順として、説明の簡単化のため最も簡素なものを用いてきたが、より複数工程にわたるような複雑な手順をバス結合装置が行なってもよい。また、バス結合装置による自発的な入出力装置の制御は、複雑な手順の全工程ではなく、手順の一部工程に適用してもよい。
【００８１】
また、これまでバス結合装置による自発的な入出力装置の制御は、入出力装置の割り込み解除や割り込み要因取得の手順のみについて述べていたが、それらの手順の前後に付帯してCPUから常時実行される手順についてもバス結合装置による自発的な入出力装置の制御ができるように、バス結合装置の入出力装置制御部を構成するとより高いパフォーマンス向上を期待できる。
【００８２】
また、バス結合装置による自発的な入出力装置の制御手順は、便宜上固定のものを用いてきたが、入出力装置が差し替えられた場合などに備えて、CPU からその制御手順を逐次変更できるようにバス結合装置の入出力装置制御部をプログラム可能にすると効果的である。
【００８３】
また、これまで、バス結合装置201と入出力装置203a,203b,203c …との間を結ぶバスの割り込み信号線を、各入出力装置毎に独立して設けていたが、複数の入出力装置が1 本のバスの割り込み信号線を共用してもよい。
【００８４】
以上のように、本実施形態に係わるバス結合装置により、入出力装置によって発行されるバスをCPU により割り込み解除する機会は軽減され、結果としてCPU 、バス結合装置、バスへ与える負荷が、従来よりも軽減される。また、本バス結合装置により、バス結合装置からCPU へ発行されるバスの割り込み頻度が下がるため、システム全体のパフォーマンスが向上する。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施の形態としてのバス結合装置を有する割り込み処理システムの構成を示す図。
【図２】図1のバス結合装置を介した割り込み処理手順を示すシーケンスチャート。
【図３】図1のバス結合装置によるビットマスク処理を説明する図。
【図４】典型的なバス結合装置を有する割り込み処理システムの構成を示す図。
【図５】図4の典型的なバス結合装置を介した割り込み処理手順を示すシーケンスチャート。
【図６】図4の典型的なバス結合装置によるビットマスク処理を説明する図。
【符号の説明】
【００８６】
201：バス結合装置
202：主記憶装置
203a〜203c：入出力装置
21：入出力装置制御部
22：割り込み元特定部
23：割り込み発行部
24：割り込みマスク設定部
25：割り込み元情報保持部
26：割り込み解除部
27：演算器
28：割り込み要因判断部
29：割り込み要因取得部
42a〜42c：割り込み要因表明部
43a〜43c：割り込み発行部
20：割り込みもと情報記憶部
1：CPU
2：CPU
3：割り込み制御プログラム
4：割り込み制御プログラム
【図１】
2009069962.tif 000003
【図２】
2009069962.tif 000004
【図３】
2009069962.tif 000005
【図４】
2009069962.tif 000006
【図５】
2009069962.tif 000007
【図６】
2009069962.tif 000008