(57)【特許請求の範囲】
【請求項１】
データの転送経路であるバスのバス幅に関する閾値を記憶する記憶部と、
バス幅の縮退が生じたとき、縮退後のバス幅と、前記記憶部に記憶された閾値とを比較する比較部と、
前記比較部によって比較した結果であるバス幅の縮退の程度に基づいて、前記バスの縮退に関する復旧処理を行うプロセッサへ低い優先度の割り込みを発生させるか高い優先度の割り込みを発生させるかを決定する決定部と
を有すること特徴とするバス制御装置。
【請求項２】
前記決定部は、
前記比較部によって比較した結果であるバス幅の縮退の程度が、前記バスが動作可能と認められる程度である場合、前記プロセッサへ低い優先度の割り込みを発生させることを決定し、前記バス幅の縮退の程度が、前記バスが動作可能と認められる程度でない場合、前記プロセッサへ高い優先度の割り込みを発生させることを決定する
ことを特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記決定部は、
前記比較部によって比較した結果に基づいて、さらに、前記プロセッサへの割り込みを発生させるか否かを決定することを特徴とする請求項１または請求項２に記載のバス制御装置。
【請求項４】
前記記憶部は、
複数の前記閾値を記憶し、
前記比較部は、
縮退後のバス幅と、前記記憶部に記憶された前記複数の閾値とを比較し、
前記決定部は、
前記比較部によって比較した結果に基づいて、前記プロセッサへの割り込みの有無及び割り込みの優先度を決定することを特徴とする請求項１または請求項２に記載のバス制御装置。
【請求項５】
前記記憶部は、
バスに接続した装置の種類毎に規定された前記閾値を、バスに接続した装置が初期化されるときに前記装置の種類に応じて記憶することを特徴とする請求項１または請求項４に記載のバス制御装置。
【請求項６】
データの転送経路であるバスのバス幅の縮退が生じたとき、バス制御装置がバスの縮退に関する処理を行うプロセッサへ割り込みを発生させるバス制御方法であって、
前記バスのバス幅に関する閾値を記憶する記憶部から前記閾値を読み出し、読み出した前記閾値と、縮退後のバス幅とを比較する比較工程と、
前記比較工程によって比較した結果であるバス幅の縮退の程度に基づいて、前記バスの縮退に関する復旧処理を行うプロセッサへ低い優先度の割り込みを発生させるか高い優先度の割り込みを発生させるかを決定する決定工程と
を含むことを特徴とするバス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御装置及びバス制御方法に関する。
【背景技術】
【０００２】
従来より、バスの一部に障害が発生した場合に、障害が発生したバスの一部を切り離してバス幅を縮退させることで、動作を継続させるバス制御方式が存在している。例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ仕様では、複数レーンからなる伝送路で障害が発生した場合のレーン縮退について規定している。【０００３】
このバス制御方式では、ハードウェアがバスの障害を検知し、バス幅の縮退を行なった場合に、プロセッサへの割り込みを発生させることによってバス幅の縮退があったことをプロセッサで動作するソフトウェアに通知する。例えば、ＰＣＩ−Ｅｘｐｒｅｓｓでは、Link  Bandwidth  Notification機構が、バス幅の縮退を行なった場合に、割り込みを発生させて、バス幅の縮退があったことをプロセッサへ通知する。【０００４】
そして、通知を受けたソフトウェアは、縮退後のバス幅に応じて適切な処理を行うために、ハードウェアにある、バス状態を表すレジスタから縮退後のバス幅を読み出し、読み出した値に基づいて処理を切り分ける。このバス状態を表すレジスタは、例えば、ＰＣＩ−Ｅｘｐｒｅｓｓでは、Link  Status  Register内のNegotiated  Link  Widthフィールドに相当する。【０００５】
例えば、従来のバス制御方式について、図９を参照して説明する。図９は、従来のバス制御方式を説明する図である。図９に示すように、情報処理装置９は、例えば、プロセッサ９１、ユニットＡ９２及びユニットＢ９３を備えるものとする。ユニットＡ９２及びユニットＢ９３を接続するバス９４に障害が発生したとき、ユニットＡ９２のバス制御部９２１がバス９４のバス幅を縮退し、縮退後のバス幅を、バス状態を表す有効バス幅レジスタ９２１ａに格納する。そして、ユニットＡ９２の割り込み制御部９２２がバス制御部９２１からバス縮退通知の信号を受け取ると、プロセッサ９１へバス縮退通知の割り込みを発生させる。【０００６】
さらに、プロセッサ９１では、ソフトウェアが割り込み制御部９２２からバス縮退通知の割り込みを受け付けると、ユニットＡ９２の有効バス幅レジスタ９２１ａの値を読み出し、読み出した値に基づいてユニットＢ９３を切り離す等の適切な処理を実行する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１１６７３２号公報
【特許文献２】特開２００５−３３２３５７号公報
【特許文献３】特開２００９−１４０２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のバス制御方式では、バス縮退通知の割り込みを受け付けたソフトウェアに負担がかかるという問題がある。すなわち、ソフトウェアは、障害を検知したハードウェアにある、バス状態を表すレジスタから縮退後のバス幅を読み出す必要があるので、適切な処理の切り分けを行なうまでの負担が大きい。【０００９】
特に、バス状態を表すレジスタは、ソフトウェアが実行されるプロセッサとは異なるハードウェアであるＬＳＩ（Large  Scale  Integration）に実装されていることが多い。この結果、ソフトウェアでは、このレジスタからバス幅を読み出すのに時間がかかり、負担がかかることとなる。【００１０】
また、適切な処理の切り分け前には、処理の優先度が確定しない。このため、ソフトウェアでは、仮に切り分け後の処理がバスのリカバリを必要としないような優先度の低い処理であったとしても、割り込みの受け付けから処理の切り分けまでの処理を高いレベルの優先度で処理することとなり、負担がかかることになる。【００１１】
開示の技術は、上記に鑑みてなされたものであって、バス幅の縮退が発生した場合に、割り込みを受け付けたソフトウェアの負担を軽減するバス制御装置等を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示するバス制御装置は、一つの態様において、データの転送経路であるバスのバス幅に関する閾値を記憶する記憶部と、バス幅の縮退が生じたとき、縮退後のバス幅と、前記記憶部に記憶された閾値とを比較する比較部と、前記比較部によって比較した結果に基づいて、バスの縮退に関する処理を行うプロセッサへの割り込み動作を決定する決定部とを備える。
【発明の効果】
【００１３】
本願の開示するバス制御装置の一つの態様によれば、バス幅の縮退が発生した場合に、割り込みを受け付けたプロセッサの負担を軽減できるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係るバス制御装置の構成を示す機能ブロック図である。
【図２】図２は、実施例２に係るサーバ装置の構成を示す機能ブロック図である。
【図３】図３は、実施例２に係る割り込み制御回路の処理手順を示すフローチャートである。
【図４】図４は、実施例２に係るＣＰＵの処理手順を示すフローチャートである。
【図５】図５は、実施例３に係るシステムの構成を示す機能ブロック図である。
【図６】図６は、実施例３に係る割り込み制御回路の処理手順を示すフローチャートである。
【図７】図７は、実施例３に係るシステム管理装置の処理手順を示すフローチャートである。
【図８】図８は、実施例３に係るＣＰＵの処理手順を示すフローチャートである。
【図９】図９は、従来のバス制御方式を説明する図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示するバス制御装置及びバス制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
図１は、本実施例１に係るバス制御装置１の構成を示す機能ブロック図である。図１に示すように、バス制御装置１は、記憶部１１、比較部１２及び決定部１３を有する。【００１７】
記憶部１１は、データの転送経路であるバスのバス幅に関する閾値を記憶する。【００１８】
比較部１２は、バス幅の縮退が生じたとき、縮退後のバス幅と、記憶部１１に記憶された閾値とを比較する。【００１９】
決定部１３は、比較部１２によって比較した結果に基づいて、バスの縮退に関する処理を行うプロセッサ２への割り込み動作を決定する。【００２０】
このようにして、バス制御装置１が、バスのバス幅に関する閾値を記憶しておき、縮退後のバス幅との比較に記憶した閾値を用い、比較結果に基づいてプロセッサへの割り込み動作を決定することとした。このため、バス制御装置１が、決定した割り込み動作に応じた割り込みをプロセッサ２へ発生させるので、割り込みを受け付けたプロセッサのバスの縮退に関する処理負担を軽減できる。
【実施例２】
【００２１】
［実施例２に係るサーバ装置の構成］
図２は、本実施例２に係るサーバ装置９Ａの構成を示す機能ブロック図である。サーバ装置９Ａは、Ｉ／Ｏブリッジ１Ａ、ＣＰＵ２Ａ、メモリ３及びＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａを有する。Ｉ／Ｏブリッジ１Ａは、ＣＰＵ２ＡとＣＰＵバスで接続される。また、Ｉ／Ｏブリッジ１Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓルートコンプレックス機能を有し、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａと４レーンのＰＣＩ−Ｅｘｐｒｅｓｓバスで接続される。このＰＣＩ−Ｅｘｐｒｅｓｓバスは、一部に障害が発生した場合、障害が発生した一部のレーンを切り離し、レーンを縮退する。なお、Ｉ／Ｏブリッジ１ＡがＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａと接続するＰＣＩ−Ｅｘｐｒｅｓｓバスは、４レーンに限定されるものではなく、８レーンや１６レ−ン等であっても構わない。【００２２】
Ｉ／Ｏブリッジ１Ａは、バス幅閾値レジスタＡ２１、ＣＰＵバス制御部２２、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３、比較回路２４Ａ及び割り込み制御回路２５Ａを有する。ＣＰＵ２Ａは、バスの縮退に関するプログラム及び各種データを記憶するメモリ３と接続され、当該プログラムを実行する。ＣＰＵ２Ａは、割り込みマスク３１及び割り込み処理部３２を有する。ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部４１を有する。【００２３】
バス幅閾値レジスタＡ２１は、ＰＣＩ−Ｅｘｐｒｅｓｓバスのバス幅に関する閾値を記憶する。具体的には、バス幅閾値レジスタＡ２１は、ＰＣＩ−Ｅｘｐｒｅｓｓバスの動作可能なレーン数を、バス幅に関する閾値（以降、単に「閾値」という。）として記憶する。すなわち、バス幅閾値レジスタＡ２１は、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａが動作を継続するために最低限必要なレーン数を、閾値として記憶する。なお、バス幅閾値レジスタＡ２１は、後述するＣＰＵバス制御部２２によって格納される。【００２４】
ＣＰＵバス制御部２２は、ＣＰＵバスを介してＣＰＵ２Ａとの通信を制御する。例えば、ＣＰＵバス制御部２２は、システム設計者によって予め定められた閾値を、システムの初期化時にＣＰＵ２Ａから受け取り、バス幅閾値レジスタＡ２１に格納する。なお、ＣＰＵバス制御部２２は、ＰＣＩ−Ｅｘｐｒｅｓｓバスに接続したＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａの初期化時に閾値をＣＰＵ２Ａから受け取り、バス幅閾値レジスタＡ２１に格納するものとしても良い。また、閾値は、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａの種類毎に異なる値であっても良い。【００２５】
ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３は、ＰＣＩ−Ｅｘｐｒｅｓｓバスの一部に障害が発生した場合、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４ＡのＰＣＩ−Ｅｘｐｒｅｓｓ制御部４１とともに、レーンの縮退を行なう。さらに、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３は、縮退後のバス幅であるレーン数を記憶するバス幅レジスタ２３ａを備える。すなわち、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３は、ＰＣＩ−Ｅｘｐｒｅｓｓバスの一部に障害が発生した場合、障害が発生したバスのバス幅を縮退し、縮退後のバス幅をバス幅レジスタ２３ａに格納する。また、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３は、バス幅の縮退が生じたことを通知するバス幅縮退通知を、割り込み制御回路２５Ａに出力し、縮退後のバス幅を比較回路２４Ａに出力する。なお、バス幅レジスタ２３ａは、例えば、Link  Status  Register内のNegotiated  Link  Widthフィールドに相当する。【００２６】
比較回路２４Ａは、バス幅の縮退が生じたとき、縮退後のバス幅とバス幅閾値レジスタＡ２１に記憶された閾値とを比較し、比較結果を割り込み制御回路２５Ａに通知する。例えば、比較回路２４Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３から縮退後のバス幅を受け取ると、縮退後のバス幅とバス幅閾値レジスタＡ２１に記憶された閾値とを比較する。そして、比較回路２４Ａは、縮退後のバス幅が閾値以上であるか否かの比較結果を割り込み制御回路２５Ａに通知する。【００２７】
割り込み制御回路２５Ａは、比較回路２４Ａによる比較結果に基づいて、バスの縮退に関する処理を行うＣＰＵ２Ａへの割り込み動作を決定する。なお、割り込み動作とは、例えばＣＰＵ２Ａへの割り込みの発生有無や、ＣＰＵ２Ａへの割り込みの発生が有る場合には割り込みの種類に基づく動作を含む。また、割り込みの種類とは、例えば、基準となる優先度より低い優先度の割り込み及び高い優先度の割り込みを意味する。【００２８】
具体的には、割り込み制御回路２５Ａは、縮退後のバス幅が閾値以上である比較結果の場合には、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数であると判断する。そして、割り込み制御回路２５Ａは、優先度のレベルが低い優先度の割り込みをＣＰＵ２Ａに対して発生させる。一方、割り込み制御回路２５Ａは、縮退後のバス幅が閾値より小さい比較結果の場合には、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数でないと判断する。そして、割り込み制御回路２５Ａは、優先度のレベルが高い優先度の割り込みをＣＰＵ２Ａに対して発生させる。【００２９】
例えば、バス幅閾値レジスタＡ２１に記憶されている閾値が「２」であり、ＰＣＩ−Ｅｘｐｒｅｓｓバスが４レーンから２レーンに縮退したものとする。この場合には、割り込み制御回路２５Ａは、縮退後のバス幅（「２」）が、閾値である「２」以上であるので、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数であると判断し、ＣＰＵ２Ａに対して低優先度の割り込みを発生させる。一方、バス幅閾値レジスタＡ２１に記憶されている閾値が「２」であり、ＰＣＩ−Ｅｘｐｒｅｓｓバスが４レーンから１レーンに縮退したものとする。この場合には、割り込み制御回路２５Ａは、縮退後のバス幅（「１」）が、閾値である「２」より小さいので、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数でないと判断し、ＣＰＵ２Ａに対して高優先度の割り込みを発生させる。【００３０】
割り込みマスク３１は、割り込みを受け付けるか否かを制御する。割り込みマスク３１は、割り込み制御回路２５Ａから発生した割り込みを受け付けた場合には、受け付けた割り込みの種類に応じた処理を動作させるべく、プログラムカウンタを該当するアドレスに設定する。【００３１】
割り込み処理部３２は、割り込みの種類に応じた処理を実行する。具体的には、割り込み処理部３２は、高優先度の割り込みの場合には、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａの停止処理を実行し、例えば他のＰＣＩ−Ｅｘｐｒｅｓｓデバイスへの再割り当てを行う等のシステムリカバリ処理を実行する。そして、割り込み制御部３２は、障害解析で用いるべく、詳細なログ情報を収集し、ハードディスク等の記憶装置に格納する。一方、割り込み処理部３２は、低優先度の割り込みの場合には、バス幅の縮退が生じたことをログ情報として、ハードディスク等の記憶装置に格納する。【００３２】
［実施例２に係る割り込み制御回路の処理手順］
次に、実施例２に係る割り込み制御回路の処理のシーケンスを、図３を参照して説明する。図３は、実施例２に係る割り込み制御回路の処理手順を示すフローチャートである。【００３３】
まず、割り込み制御回路２５Ａは、バス幅の縮退が発生したか否かを判定する（ステップＳ１１）。具体的には、割り込み制御回路２５Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３からバス幅縮退通知があるか否かを判定する。【００３４】
そして、割り込み制御回路２５Ａは、バス幅の縮退が発生していないと判定する場合には（ステップＳ１１；Ｎｏ）、バス幅縮退の発生を待ち合わせるべく、ステップＳ１１に移行する。一方、割り込み制御回路２５Ａは、バス幅の縮退が発生していると判定する場合には（ステップＳ１１；Ｙｅｓ）、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値以上であるか否かを判定する（ステップＳ１２）。なお、バス幅レジスタ２３ａの値は縮退後のバス幅を指し、バス幅閾値レジスタＡ２１の値はＰＣＩ−Ｅｘｐｒｅｓｓバスの動作可能なレーン数を指す。【００３５】
続いて、割り込み制御回路２５Ａは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値以上であると判定する場合には（ステップＳ１２；Ｙｅｓ）、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数であると判断する。そして、割り込み制御回路２５Ａは、低優先度の割り込みを発生させることを決定し（ステップＳ１３）、ステップＳ１５に移行する。【００３６】
一方、割り込み制御回路２５Ａは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値より小さいと判定する場合には（ステップＳ１２；Ｎｏ）、ＰＣＩ−Ｅｘｐｒｅｓｓバスが動作可能なレーン数でないと判断する。そして、割り込み制御回路２５Ａは、高優先度の割り込みを発生させることを決定する（ステップＳ１４）。【００３７】
その後、割り込み制御回路２５Ａは、決定した優先度の割り込みをＣＰＵ２Ａに対して発生させる（ステップＳ１５）。【００３８】
［実施例２に係るＣＰＵの処理手順］
次に、実施例２に係るＣＰＵの処理のシーケンスを、図４を参照して説明する。図４は、実施例２に係るＣＰＵの処理手順を示すフローチャートである。【００３９】
まず、割り込みマスク３１が、割り込みを受け付けるか否かを判定する（ステップＳ２１）。そして、割り込みマスク３１が、割り込みを受け付けないと判定する場合には（ステップＳ２１；Ｎｏ）、割り込みを待ち合わせるべく、ステップＳ２１に移行する。一方、割り込みマスク３１が、割り込みを受け付けると判定する場合には（ステップＳ２１；Ｙｅｓ）、割り込みを受け付け、受け付けた割り込みの種類に応じた処理を動作させるべく、プログラムカウンタを該当するアドレスに設定する。【００４０】
続いて、割り込み処理部３２は、高優先度の割り込みであるか否かを判定する（ステップＳ２２）。そして、割り込み処理部３２は、高優先度の割り込みであると判定する場合には（ステップＳ２２；Ｙｅｓ）、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａの停止処理を実行する（ステップＳ２３）。そして、割り込み処理部３２は、例えば他のＰＣＩ−Ｅｘｐｒｅｓｓデバイスへの再割り当てを行う等のシステムリカバリ処理を実行する（ステップＳ２４）。さらに、割り込み処理部３２は、詳細なログ情報を収集し（ステップＳ２５）、収集したログ情報をハードディスク等の記憶装置に記録する（ステップＳ２６）。【００４１】
一方、割り込み処理部３２は、高優先度の割り込みでないと判定する場合には（ステップＳ２２；Ｎｏ）、バス幅の縮退が生じたことをログ情報として記憶する（ステップＳ２７）。【００４２】
［実施例２の効果］
上記実施例２によれば、Ｉ／Ｏブリッジ１Ａは、バス幅閾値レジスタＡ２１にバス幅に関する閾値を記憶しておき、バス幅の縮退が生じたとき、縮退後のバス幅と、バス幅閾値レジスタＡ２１に記憶された閾値とを比較する。そして、Ｉ／Ｏブリッジ１Ａは、比較結果に基づいて、バスの縮退に関する処理を行うＣＰＵ２Ａへの割り込みの優先度を決定する。【００４３】
かかる構成によれば、Ｉ／Ｏブリッジ１Ａは、決定した優先度に応じた割り込みをＣＰＵ２Ａへ発生させるので、割り込みを受け付けたＣＰＵ２Ａでのバスの縮退に関する処理負担を軽減できる。すなわち、Ｉ／Ｏブリッジ１Ａが、縮退後のバス幅と閾値とを比較し、比較結果に基づいた優先度の割り込みをＣＰＵ２Ａへ発生させるので、ＣＰＵ２Ａでは、割り込みの受け付けからバスの縮退に関する処理の切り分けまでの処理自体及び処理時間を軽減できる。【００４４】
また、Ｉ／Ｏブリッジ１Ａは、決定した優先度に応じた割り込みをＣＰＵ２Ａへ発生させるので、割り込みを受け付けたＣＰＵ２Ａでは、常時高い優先度で処理することを回避でき、システムの性能低下を防止できる。さらに、Ｉ／Ｏブリッジ１Ａは、優先度を考慮した割り込みをＣＰＵ２Ａへ発生させるので、割り込みを受け付けるＣＰＵ２Ａでは、システムの負荷に応じた割り込み管理を行うことができる。例えば、ＣＰＵ２Ａは、システムの負荷が高い状態では、高い優先度の割り込みのみを受け付けることができ、システム負荷が低い状態では、高い優先度及び低い優先度の割り込みを受け付けることができる。つまり、Ｉ／Ｏブリッジ１Ａは、ＣＰＵ２Ａにおけるバスの縮退に関する処理によってシステム本来の業務処理に及ぼす影響を小さくすることができる。【００４５】
また、上記実施例２によれば、バス幅閾値レジスタＡ２１は、バスに接続したデバイスの種類毎に規定された閾値を、バスに接続したデバイスが初期化されるときにデバイスの種類に応じて記憶するようにした。かかる構成によれば、バス幅閾値レジスタＡ２１は、バスに接続したデバイスが初期化されるときに、当該デバイスの種類毎に規定された閾値を記憶することとしたので、デバイスの種類に応じた精度の高いリカバリ処理を行わせることができる。
【実施例３】
【００４６】
ところで、実施例２に係るＩ／Ｏブリッジ１Ａでは、バス幅に関する閾値を１個記憶しておき、記憶した閾値と縮退後のバス幅とを比較し、比較結果に基づいて、プロセッサへの割り込みの優先度を決定する場合を説明した。Ｉ／Ｏブリッジ１Ａは、これに限定されるものではなく、バス幅に関する閾値を複数記憶しておき、記憶した複数の閾値と縮退後のバス幅とを比較し、比較結果に基づいて、プロセッサへの割り込みの有無及び割り込みの優先度を決定しても良い。【００４７】
そこで、実施例３では、Ｉ／Ｏブリッジ１Ｂが、バス幅に関する閾値を複数記憶しておき、記憶した複数の閾値と縮退後のバス幅とを比較し、比較結果に基づいて、プロセッサへの割り込みの有無及び割り込みの優先度を決定する場合を説明する。【００４８】
［実施例３に係るシステムの構成］
図５は、実施例３に係るサーバ装置９Ｂを含む情報処理システム５の構成を示す機能ブロック図である。なお、図２に示すサーバ装置９Ａと同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例２と実施例３とが異なるところは、Ｉ／Ｏブリッジ１Ｂにバス幅閾値レジスタＢ５２及び比較回路２４Ｂを追加した点にある。また、実施例２と実施例３とが異なるところは、割り込み制御回路２５Ａ及びＰＣＩ−Ｅｘｐｒｅｓｓ制御部２３をそれぞれ割り込み制御回路２５Ｂ及びバス制御部５１に変更した点にある。さらに、実施例２と実施例３とが異なるところは、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４ＡをＩ／Ｏインタフェースカード４Ｂに変更し、サーバ装置９Ｂにシステム管理装置８を接続した点にある。【００４９】
Ｉ／Ｏブリッジ１Ｂは、Ｉ／Ｏインタフェースカード４Ｂと、８バイト幅のパラレルバスであるＩ／Ｏバスで接続される。このＩ／Ｏバスは、一部に障害が発生した場合、４バイト幅、２バイト幅、１バイト幅にバス幅を縮退する。なお、Ｉ／Ｏブリッジ１ＢがＩ／Ｏインタフェースカード４Ｂと接続するＩ／Ｏバスは、８バイト幅に限定されるものではない。【００５０】
ＣＰＵ２Ｂは、バスの縮退に関するプログラム及び各種データを記憶するメモリ３と接続され、当該プログラムを実行する。ＣＰＵ２Ｂは、バスエラー割り込み処理部６３を有する。システム管理装置８は、情報処理システム５全体の監視及び管理を行い、割り込みマスク６１及び割り込み処理部６２を有する。【００５１】
バス幅閾値レジスタＢ５２は、Ｉ／Ｏバスのバス幅に関する閾値を記憶する。具体的には、バス幅閾値レジスタＢ５２は、Ｉ／Ｏバスに障害が発生したときログに記録を要する縮退後のバス幅の上限を、バス幅に関する閾値（以降、単に「閾値」という。）として記憶する。なお、バス幅閾値レジスタＡ２１は、Ｉ／Ｏバスが動作可能なバス幅を閾値として記憶する。すなわち、バス幅閾値レジスタＡ２１は、Ｉ／Ｏインタフェースカード４Ｂが動作を継続するために最低限必要なバス幅を、閾値として記憶する。バス幅閾値レジスタＡ２１及びバス幅閾値レジスタＢ５２は、後述するシステム管理装置８によって格納される。【００５２】
バス制御部５１は、Ｉ／Ｏバスの一部に障害が発生した場合、Ｉ／Ｏインタフェースカード４Ｂのバス制御部４２とともに、バス幅の縮退を行なう。また、バス制御部５１は、障害が発生したバスのバス幅を縮退し、縮退後のバス幅をバス幅レジスタ２３ａに格納する。また、バス制御部５１は、バス幅の縮退が生じたことを通知するバス幅縮退通知を、割り込み制御回路２５Ｂに出力し、縮退後のバス幅を比較回路２４Ａ及び比較回路２４Ｂに出力する。【００５３】
比較回路２４Ｂは、バス幅の縮退が生じたとき、縮退後のバス幅とバス幅閾値レジスタＢ５２に記憶された閾値とを比較し、比較結果を割り込み制御回路２５Ｂに通知する。例えば、比較回路２４Ｂは、バス制御部５１から縮退後のバス幅を受け取ると、縮退後のバス幅とバス幅閾値レジスタＢ５２に記憶された閾値とを比較する。そして、比較回路２４Ｂは、縮退後のバス幅が閾値以上であるか否かの比較結果を割り込み制御回路２５Ｂに通知する。なお、比較回路２４Ａは、縮退後のバス幅とバス幅閾値レジスタＡ２１に記憶された閾値とを比較し、縮退後のバス幅が閾値以上であるか否かの比較結果を割り込み制御回路２５Ｂに通知する。【００５４】
割り込み制御回路２５Ｂは、比較回路２４Ａ及び比較回路２４Ｂによるそれぞれの比較結果に基づいて、バスの縮退に関する処理を行うＣＰＵ２Ｂ及びシステム管理装置８への割り込み動作を決定する。なお、割り込み動作とは、例えば割り込みの発生有無や、割り込みの発生が有る場合には割り込みの種類に基づく動作を含む。また、割り込みの種類とは、基準となる優先度より低い優先度の割り込み及び高い優先度の割り込みを意味する。具体的には、割り込み制御回路２５Ｂは、縮退後のバス幅がバス幅閾値レジスタＢ５２の閾値より小さい比較結果であり、且つバス幅閾値レジスタＡ２１の閾値以上の比較結果である場合、障害記録を要する動作可能なバス幅であると判断する。そして、割り込み制御回路２５Ｂは、優先度のレベルが低い優先度の割り込みをシステム管理装置８に対して発生させる。【００５５】
また、割り込み制御回路２５Ｂは、縮退後のバス幅がバス幅閾値レジスタＡ２１の閾値より小さい比較結果である場合、動作可能なバス幅でないと判断する。そして、割り込み制御回路２５Ｂは、優先度のレベルが高い優先度の割り込みをシステム管理装置８に対して発生させるとともに、バスエラーの割り込みをＣＰＵ２Ｂに対して発生させる。一方、割り込み制御回路２５Ｂは、縮退後のバス幅がバス幅閾値レジスタＢ５２の閾値以上の比較結果である場合、障害記録を要さない動作可能なバス幅であると判断する。そして、割り込み制御回路２５Ｂは、割り込みをシステム管理装置８に対して発生させないものとする。【００５６】
例えば、バス幅閾値レジスタＢ５２に記憶されている閾値が「４」バイトであり、バス幅閾値レジスタＡ２１に記憶されている閾値が「２」バイトであるものとする。そして、Ｉ／Ｏバスが８バイトから４バイトに縮退したものとする。この場合には、割り込み制御回路２５Ｂは、縮退後のバス幅（「４」）が、バス幅閾値レジスタＢ５２に記憶されている閾値（「４」）以上であるので、障害記録を要さない動作可能なバス幅であると判断し、システム管理装置８に対して割り込みを発生させない。【００５７】
また、Ｉ／Ｏバスが８バイトから２バイトに縮退したものとする。この場合には、割り込み制御回路２５Ｂは、縮退後のバス幅（「２」）がバス幅閾値レジスタＢ５２の閾値（「４」）より小さく且つバス幅閾値レジスタＡ２１の閾値（「２」）以上であるので、障害記録を要する動作可能なバス幅であると判断する。そして、割り込み制御回路２５Ｂは、優先度のレベルが低い優先度の割り込みをシステム管理装置８に対して発生させる。【００５８】
また、Ｉ／Ｏバスが８バイトから１バイトに縮退したものとする。この場合には、割り込み制御回路２５Ｂは、縮退後のバス幅（「１」）がバス幅閾値レジスタＡ２１の閾値（「２」）より小さいので、動作可能なバス幅でないと判断する。そして、割り込み制御回路２５Ｂは、優先度のレベルが高い優先度の割り込みをシステム管理装置８に対して発生させるとともに、バスエラーの割り込みをＣＰＵ２Ｂに対して発生させる。【００５９】
割り込みマスク６１は、割り込みを受け付けるか否かを制御する。割り込みマスク６１は、割り込み制御回路２５Ｂから発生した割り込みを受け付けた場合には、受け付けた割り込みの種類に応じた処理を動作させるべく、プログラムカウンタを該当するアドレスに設定する。【００６０】
割り込み処理部６２は、割り込みの種類に応じた処理を実行する。具体的には、割り込み処理部６２は、高優先度の割り込みの場合には、障害解析で用いるべく、詳細なログ情報を収集し、ハードディスク等の記憶装置に格納する。一方、割り込み処理部６２は、低優先度の割り込みの場合には、バス幅の縮退が生じたことをログ情報として、ハードディスク等の記憶装置に格納する。【００６１】
なお、システム管理装置８は、システム設計者によって予め定められた閾値を、システムの初期化時にシステム制御バスを介して、Ｉ／Ｏブリッジ１Ｂのバス幅閾値レジスタＡ２１及びバス幅閾値レジスタＢ５２に格納する。【００６２】
バスエラー割り込み制御部６３は、割り込み制御回路２５Ｂから発生したバスエラーの割り込みを受け付けた場合には、Ｉ／Ｏインタフェースカード４Ｂの停止処理を実行する。また、バスエラー割り込み制御部６３は、例えばＩ／Ｏアクセスの経路を他のインタフェース回路へ切り替える等のシステムリカバリ処理を実行する。【００６３】
［実施例３に係る割り込み制御回路の処理手順］
次に、実施例３に係る割り込み制御回路の処理のシーケンスを、図６を参照して説明する。図６は、実施例３に係る割り込み制御回路の処理手順を示すフローチャートである。【００６４】
まず、割り込み制御回路２５Ｂは、バス幅の縮退が発生したか否かを判定する（ステップＳ３１）。具体的には、割り込み制御回路２５Ｂは、バス制御部５１からバス幅縮退通知があるか否かを判定する。【００６５】
そして、割り込み制御回路２５Ｂは、バス幅の縮退が発生していないと判定する場合には（ステップＳ３１；Ｎｏ）、バス幅縮退の発生を待ち合わせるべく、ステップＳ３１に移行する。一方、割り込み制御回路２５Ｂは、バス幅の縮退が発生していると判定する場合には（ステップＳ３１；Ｙｅｓ）、バス幅レジスタ２３ａの値がバス幅閾値レジスタＢ５２の値以上であるか否かを判定する（ステップＳ３２）。なお、バス幅レジスタ２３ａの値は、縮退後のバス幅を指し、バス幅閾値レジスタＢ５２の値は、Ｉ／Ｏバスに障害が発生したときログに記録を要する縮退後のバス幅の上限値を指す。【００６６】
続いて、割り込み制御回路２５Ｂは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＢ５２の値以上である場合には（ステップＳ３２；Ｙｅｓ）、障害記録を要さない動作可能なバス幅であると判断する。そして、割り込み制御回路２５Ｂは、割り込みを発生させないことを決定し（ステップＳ３３）、処理を終了する。【００６７】
一方、割り込み制御回路２５Ｂは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＢ５２の値未満である場合には（ステップＳ３２；Ｎｏ）、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値以上であるか否かを判定する（ステップＳ３４）。なお、バス幅閾値レジスタＡ２１の値は、Ｉ／Ｏバスが動作可能なバス幅を指す。【００６８】
そして、割り込み制御回路２５Ｂは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値以上である場合には（ステップＳ３４；Ｙｅｓ）、障害記録を要する動作可能なバス幅であると判断する。そして、割り込み制御回路２５Ｂは、低優先度の割り込みを発生させることを決定し（ステップＳ３５）、ステップＳ３７に移行する。【００６９】
一方、割り込み制御回路２５Ｂは、バス幅レジスタ２３ａの値がバス幅閾値レジスタＡ２１の値未満である場合には（ステップＳ３４；Ｎｏ）、動作可能なバス幅でないと判断する。そして、割り込み制御回路２５Ｂは、高優先度の割り込みを発生させることを決定し（ステップＳ３６）、ステップＳ３７に移行する。【００７０】
続いて、割り込み制御回路２５Ｂは、決定した割り込みの優先度に応じた割り込みをシステム管理装置８に対して発生させる（ステップＳ３７）。このとき、割り込み制御回路２５Ｂは、システム管理装置８に対して高優先度の割り込みを発生させた場合には、ＣＰＵ２Ｂに対してバスエラーの割り込みを発生させる。【００７１】
［実施例３に係るシステム管理装置の処理手順］
次に、実施例３に係るシステム管理装置の処理のシーケンスを、図７を参照して説明する。図７は、実施例３に係るシステム管理装置の処理手順を示すフローチャートである。【００７２】
まず、割り込みマスク６１が、割り込みを受け付けるか否かを判定する（ステップＳ４１）。そして、割り込みマスク６１が、割り込みを受け付けないと判定する場合には（ステップＳ４１；Ｎｏ）、割り込みを待ち合わせるべく、ステップＳ４１に移行する。一方、割り込みマスク６１が、割り込みを受け付けると判定する場合には（ステップＳ４１；Ｙｅｓ）、割り込みを受け付け、受け付けた割り込みの種類に応じた処理を動作させるべく、プログラムカウンタを該当するアドレスに設定する。【００７３】
続いて、割り込み処理部６２は、高優先度の割り込みであるか否かを判定する（ステップＳ４２）。そして、割り込み処理部６２は、高優先度の割り込みであると判定する場合には（ステップＳ４２；Ｙｅｓ）、詳細なログ情報を収集し（ステップＳ４３）、収集したログ情報をハードディスク等の記憶装置に記録する（ステップＳ４４）。【００７４】
一方、割り込み処理部６２は、高優先度の割り込みでないと判定する場合には（ステップＳ４２；Ｎｏ）、バス幅の縮退が生じたことをログ情報として記憶する（ステップＳ４５）。【００７５】
［実施例３に係るＣＰＵの処理手順］
次に、実施例３に係るＣＰＵの処理のシーケンスを、図８を参照して説明する。図８は、実施例３に係るＣＰＵの処理手順を示すフローチャートである。【００７６】
まず、バスエラー割り込み処理部６３が、バスエラーの割り込みが発生したか否かを判定する（ステップＳ５１）。そして、バスエラー割り込み処理部６３が、バスエラーの割り込みが発生していないと判定する場合には（ステップＳ５１；Ｎｏ）、バスエラーの割り込みを待ち合わせるべく、ステップＳ５１に移行する。一方、バスエラー割り込み処理部６３が、バスエラーの割り込みが発生していると判定する場合には（ステップＳ５１；Ｙｅｓ）、バスエラーの割り込みに応じた処理を動作させるべく、プログラムカウンタを該当するアドレスに設定する。【００７７】
そして、バスエラー割り込み処理部６３は、Ｉ／Ｏインタフェースカード４Ｂの停止処理を実行する（ステップＳ５２）。そして、バスエラー割り込み処理部６３は、例えば他のインタフェース回路へ切り替える等のシステムリカバリ処理を実行する（ステップＳ５３）。【００７８】
［実施例３の効果］
上記実施例３によれば、割り込み制御回路２５Ｂが、比較回路２４Ａ及び比較回路２４Ｂによる比較結果に基づいて、システム管理装置８へ割り込みを発生させるか否かを決定するようにした。かかる構成によれば、割り込み制御回路２５Ｂが、比較結果に基づいて、システム管理装置８へ割り込みを発生させないことを決定した場合には、システム管理装置８に対して割り込みを発生させないので、システム管理装置８における処理負担を軽減できる。【００７９】
また、上記実施例３によれば、Ｉ／Ｏブリッジ１Ｂは、バス幅閾値レジスタＡ２１及びバス幅閾値レジスタＢ５２に、バス幅に関する閾値をそれぞれ記憶しておく。そして、Ｉ／Ｏブリッジ１Ｂは、バス幅の縮退が生じたとき、縮退後のバス幅と、バス幅閾値レジスタＡ２１及びバス幅閾値レジスタＢ５２にそれぞれ記憶された閾値とを比較する。さらに、Ｉ／Ｏブリッジ１Ｂは、比較結果に基づいて、システム管理装置８への割り込みの有無及び割り込みの優先度を決定する。かかる構成によれば、Ｉ／Ｏブリッジ１Ｂは、バス幅に関する閾値を複数記憶することとしたので、複数の閾値を境界として少なくとも３個の割り込み動作を決定できることとなる。すなわち、Ｉ／Ｏブリッジ１Ｂは、割り込みが無いこと及び割り込みが有ることを決定することが可能となり、さらに割り込みが有る場合には、低い優先度及び高い優先度を決定することが可能となる。この結果、システム管理装置８では、決定された優先度の割り込みに応じた処理を実行できることとなるので、処理の切り分けに要する負担を軽減できる。【００８０】
［その他］
なお、実施例２では、ＣＰＵ２ＡとＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａとの間に１台のＩ／Ｏブリッジ１Ａを構成するものとして説明した。しかしながら、ＣＰＵ２ＡとＰＣＩ−Ｅｘｐｒｅｓｓデバイス４Ａとの間にＰＣＩ−Ｅｘｐｒｅｓｓバスで接続された複数台のＩ／Ｏブリッジ１ＡまたはＰＣＩ−Ｅｘｐｒｅｓｓスイッチを直列または並列に構成するものとしても良い。この場合には、バス幅の縮退を検知したＩ／Ｏブリッジ１ＡまたはＰＣＩ−Ｅｘｐｒｅｓｓスイッチが、自装置とＣＰＵ２Ａとの間に備わるＩ／Ｏブリッジ１ＡまたはＰＣＩ−Ｅｘｐｒｅｓｓスイッチを介して、自装置内で決定した優先度に応じた割り込みをＣＰＵ２Ａに伝播させるようにすれば良い。これにより、Ｉ／Ｏブリッジ１ＡまたはＰＣＩ−Ｅｘｐｒｅｓｓスイッチは、決定した優先度に応じた割り込みをＣＰＵ２Ａへ伝播させるので、割り込みを受け付けたＣＰＵ２Ａでのバスの縮退に関する処理負担を軽減できる。同様に、実施例３の場合であっても、ＣＰＵ２ＢとＩ／Ｏインタフェースカード４Ｂとの間にＩ／Ｏバスで接続された複数台のＩ／Ｏブリッジ１Ｂまたは中継装置を直列または並列に構成するものとしても良い。【００８１】
また、実施例２では、Ｉ／Ｏブリッジ１Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓデバイス４ＡとＰＣＩ―Ｅｘｐｒｅｓｓバスで接続されるものとして説明した。しかしながら、Ｉ／Ｏブリッジ１Ａは、Ｉ／ＯインタフェースカードとＩ／Ｏバスで接続されるものとしても良い。【００８２】
また、実施例３では、Ｉ／Ｏブリッジ１Ｂは、Ｉ／Ｏインタフェースカード４ＢとＩ／Ｏバスで接続されるものとして説明した。しかしながら、Ｉ／Ｏブリッジ１Ｂは、ＰＣＩ−ＥｘｐｒｅｓｓデバイスとＰＣＩ−Ｅｘｐｒｅｓｓバスで接続されるものとしても良い。【００８３】
また、サーバ装置９Ａ、９Ｂは、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したＩ／Ｏブリッジ１Ａ等の各機能を搭載することによって実現することができる。【００８４】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、実施例３において比較回路２４Ａと比較回路２４Ｂとを１個の部として統合しても良い。一方、割り込み制御回路２５Ｂを、割り込みの有無を決定する割り込み有無決定部と、割り込みが有る場合に割り込みの優先度を決定する割り込み優先度決定部とに分散しても良い。また、バス幅閾値レジスタＡ２１及びバス幅閾値レジスタＢ５２をサーバ装置９Ａ、９Ｂの外部装置としてネットワーク経由で接続するようにしても良い。【００８５】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。また、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【符号の説明】
【００８６】
１  バス制御装置
２  プロセッサ
１１  記憶部
１２  比較部
１３  決定部
１Ａ、１Ｂ  Ｉ／Ｏブリッジ
２Ａ  ＣＰＵ
２１  バス幅閾値レジスタＡ
５２  バス幅閾値レジスタＢ
２２  ＣＰＵバス制御部
２３  ＰＣＩ−Ｅｘｐｒｅｓｓ制御部
２３ａ  バス幅レジスタ
２４Ａ  比較回路
２４Ｂ  比較回路
２５Ａ、２５Ｂ  割り込み制御回路
３  メモリ
３１、６１  割り込みマスク
３２、６２  割り込み処理部
４Ａ  ＰＣＩ−Ｅｘｐｒｅｓｓデバイス
４１  ＰＣＩ−Ｅｘｐｒｅｓｓ制御部
５  情報処理システム
６３  バスエラー割り込み処理部
８  システム管理装置
９Ａ、９Ｂ  サーバ装置
【図１】
0005644859.tif 000002
【図２】
0005644859.tif 000003
【図３】
0005644859.tif 000004
【図４】
0005644859.tif 000005
【図５】
0005644859.tif 000006
【図６】
0005644859.tif 000007
【図７】
0005644859.tif 000008
【図８】
0005644859.tif 000009
【図９】
0005644859.tif 000010