(57)【特許請求の範囲】
【請求項１】
周辺コンポーネント相互接続（ＰＣＩ）バス上のエラー／障害発生源を分離するコンピュータ・システムであって、
（Ａ）プロセッサと、
（Ｂ）プロセッサに結合され、ＰＣＩバスに結合されてＰＣＩ標準に従って通信する複数の入出力装置およびＰＣＩ間ブリッジ装置を備える入出力サブシステムと、
（Ｃ）プロセッサ内にあって、あるＰＣＩ間ブリッジ装置によってサポートされるＰＣＩバス上で、エラー・レジスタ値に基づき前記複数の入出力装置の状況を決定する範疇分けにおいて、あるＰＣＩ間ブリッジ装置が、エラー状態が起こっている別のＰＣＩ間ブリッジ装置に接続されていることを示すときは、その別のＰＣＩ間ブリッジ装置によってサポートされるＰＣＩバス上での範疇分けを行い、前記範疇分けの結果情報であるエラー・ログに基づいて入出力サブシステムにおけるエラー／障害発生源を分離するためのエラー／障害分離手段と、
（Ｄ）ＰＣＩ標準に従って入出力装置内に設けられ、前記エラー・レジスタ値を記憶するアーキテクチャ付き状況レジスタと、
を含む、システム。
【請求項２】
プロセッサと、プロセッサに結合され、周辺コンポーネント相互接続（ＰＣＩ）バスに結合されてＰＣＩ標準に従って通信する複数の入出力装置およびＰＣＩ間ブリッジ装置を備える入出力サブシステムとを含むコンピュータ・システムにおいて、ＰＣＩバス上のエラー／障害発生源を分離する方法であって、
（ａ）  あるＰＣＩ間ブリッジ装置によってサポートされるＰＣＩバス上で、エラー・レジスタ値に基づき前記複数の入出力装置の状況を決定する範疇分けにおいて、あるＰＣＩ間ブリッジ装置が、エラー状態が起こっている別のＰＣＩ間ブリッジ装置に接続されていることを示すときは、その別のＰＣＩ間ブリッジ装置によってサポートされるＰＣＩバス上での範疇分けを行う段階と、
（ｂ）  前記範疇分けを行う段階において、ＰＣＩ標準に従って入出力装置内に設けられ、前記エラー・レジスタ値を記憶するアーキテクチャ付き状況レジスタを検査する段階と、
（ｃ）  入出力サブシステムにおけるエラー／障害発生源を分離するために、前記範疇分けの結果情報であるエラー・ログを分析する段階と、
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にコンピュータ・システムにおける入出力操作に関し、より詳細には周辺コンポーネント相互接続（ＰＣＩ）構造における障害の分離に関する。
【０００２】
【発明が解決しようとする課題】
多くのコンピュータ・システムでは、ハード・ディスク・ドライブ、スピーカ、ＣＤ−ＲＯＭドライブなどの周辺装置のサポートは、周辺コンポーネント相互接続（ＰＣＩ）と呼ばれる標準Ｉ／Ｏ（入出力）装置アーキテクチャを通じて行われる。ＰＣＩアーキテクチャは、ＰＣＩ間ブリッジを介しての入出力拡張、制御装置すなわちマスタと応答装置すなわちターゲットの間の対等（装置間）データ転送、ならびにマルチ機能装置、統合装置およびプラグ・イン装置を含む多くの複雑な機能をサポートする。
【０００３】
ＰＣＩアーキテクチャはまた、ＰＣＩバス上および装置内のエラー状態の検出および捕捉に関する標準も定義する。標準機能はエラー捕捉機能を提供するが、ＰＣＩアーキテクチャにより広範囲な機能が可能になるとすれば、起こりうる障害シナリオの数が多くなる。したがって、障害を特定の障害コンポーネントに分離するのが非常に困難になってきている。
【０００４】
たとえば、ＰＣＩバス上で発生する各トランザクションごとに、トランザクションを制御するマスタ装置と、マスタ装置の要求に応答するターゲット装置が存在する。データは双方向に流れることができる（つまり、マスタは読み取りも書き込みも要求できる）ので、どちらの装置が不良データの送信側で、どちらの装置が受信側なのかを知ることが重要である。また、エラーもＰＣＩ間ブリッジを横切って流れることができるので、障害の場所がブリッジの近い側と遠い側のどちらにあるかを知ることも重要である。
【０００５】
結果的に、広範囲のハードウェア・プラットフォームにわたってサービス提供者に一貫した診断情報を提供しながら、ＰＣＩアーキテクチャがサポートする多くのオプションでうまく動作できるような障害分離技術が求められている。
【０００６】
【課題を解決するための手段】
本発明は、この要求を満たし、ＰＣＩバスにおける障害を分離するための方法態様およびシステム態様を提供する。方法態様では、バスを介して通信する複数の入出力装置によって形成される入出力（Ｉ／Ｏ）サブシステムを含むコンピュータ・システムのバス上の障害状態を分離する方法は、入出力サブシステムを繰返し所定の範疇に分類する段階と、入出力サブシステム内のエラー状態の発生源を分離する段階を含む。さらに、この入出力サブシステムは周辺コンポーネント相互接続（ＰＣＩ）バスを介して通信する。
【０００７】
他の方法態様では、バス・エラーの障害分離の方法は、（ａ）ＰＣＩバス上の装置エラーを処理する段階と、（ｂ）ＰＣＩバスに結合された複数の入出力装置の順序付き所定の範疇への分類を実行する段階を含む。さらに、（ｃ）装置エラーがＰＣＩバスの従属ブランチから生じているのかどうか判定する段階と、（ｄ）ＰＣＩバスが所定の範疇への分類をされるまで段階（ａ）ないし（ｃ）を繰返し実行する段階を含む。
【０００８】
システム態様では、バス上で障害状態を分離するためのコンピュータ・システムは、処理機構、および処理機構に結合された入出力機構を含む。入出力機構は、複数の入出力装置とＰＣＩバスに結合され、ＰＣＩ標準に従って通信するブリッジを含む。さらに、システムは、入出力機構におけるエラー状態の発生源を識別する処理機構内の障害分離機構を含む。さらに、障害分離機構は繰返し入出力機構の所定の範疇へ分類をする。
【０００９】
本発明によれば、障害分離技術はＰＣＩバス・アーキテクチャにおけるエラーの発生源のより詳細な識別を首尾よく提供することができる。障害分離技術は、ＰＣＩバス・アーキテクチャでサポートされる多数のオプションを所与のシステムで利用できるとき、エラー発生の曖昧さを大幅に軽減する。さらに、ＰＣＩアーキテクチャの標準機能を利用することにより、障害分離技術は、容易に多様なシステム構成に適用し、融通のきくアプリケーションを提供することができる。
【００１０】
【発明の実施の形態】
本発明は、ＰＣＩアーキテクチャの障害分離に関する。以下の説明は、当業者が本発明を実施し利用できるようにするために提示するものであり、特許出願およびその要件の文脈中で提供する。好ましい実施形態に対する様々な変更は、当業者には明白であり、これにおける一般原理は他の実施形態にも適用できる。したがって、本発明はここに示す実施形態に限定されるものではなく、ここで説明する原理及び特徴に適合する最も広い範囲を与えられる。
【００１１】
図１は、本発明で使用する汎用コンピュータ・システムの基本ブロック図である。図のように、コンピュータ・システムはメモリ１２、すなわちＲＡＭ（ランダム・アクセス・メモリ）およびＲＯＭ（読取り専用メモリ）などに接続された、ＩＢＭ
Ｃｏｒｐｏｒａｔｉｏｎ，Ｉｎｃ社のＰｏｗｅｒＰＣなどのプロセッサ１０を含む。オペレーティング・システム（Ｏ／Ｓ）１４は、通常プロセッサ上で走って、コンピュータ・システムにおける基本的タスクを実行し、アプリケーション・プログラムのプラットフォームとして機能する。また、ファームウェア１６も含まれ、これはプロセッサ１０上で実行され、当業者にはよく理解されるように、フラッシュ・メモリ、不揮発性ＲＡＭ、ＥＰＲＯＭ（消去可能プログラマブル読取り専用メモリ）などの適切なメモリに格納されたコードである。さらに、入出力サブシステム１８はプロセッサ１０に結合され、プロセッサ１０と、入出力装置、たとえばハード・ディスク・ドライブ、モニタなどの間の相互作用をＰＣＩ（周辺コンポーネント・インタフェース）標準に従って制御する。
【００１２】
図２は、図１のコンピュータ・システムの入出力サブシステム１８の展開図である。当然ながら、図に示したコンポーネントの数やタイプは本発明の一実施形態を例示するものであり限定するものではない。ＰＣＩバス２１を利用することにより、入出力装置２０ａ−２０ｆのサブシステムがプロセッサ１０と対話することが可能になる。複数の入出力装置２０ａ−２０ｆを利用する際に、ブリッジ２２ａ−２２ｆは、複数の入出力装置２０ａ−２０ｆと、プロセッサ１０へのメイン・リンクとして働くホスト・ブリッジ２４との通信をサポートする。さらに、入出力サブシステム１８の階層用には、たとえばブリッジ２２ｅとリンクされたブリッジ２２ｂ用の１次バス２３と２次バスなど、他のブリッジとリンクされたブリッジ用の１次バスと２次バスが存在する。多数のブリッジ２２および入出力装置２０がコンピュータ・システム内でＰＣＩアーキテクチャを介して共存可能だが、発生しうる障害状況のタイプと数も多い。本発明によれば、障害状態の原因の分離は、診断操作の著しい改善をもたらす。
【００１３】
図３は、本発明による障害分離の全体的流れ図である。当業者にはよく理解されるように、障害分離はファームウェア１６（図１）の一部として提供することが好ましい。障害状態を分離するプロセスは、トップ・レベルのＰＣＩバス、すなわちホスト・ブリッジ２４（図２）の真下のＰＣＩバスから開始するのが適切である（ステップ３０）。プロセスは、入出力サブシステム内の装置およびコンポーネントの順序付き範疇分けに進む（ステップ３２）。順序付き範疇分けは、ＰＣＩ標準に従って装置内に設けられるアーキテクチャに提供される状況レジスタ内で利用できる情報に従って検査されるバス上の装置の状況を決定するものである。順序付き範疇分けの詳細は、図４に関して示す。一般に、順序付き範疇分けは、分離するプロセスにおいて、入出力サブシステム１８の階層ツリー構造内でデータ伝播のために存在するエラーの可能性を全て考慮に入れるように特定の順序に従う。
【００１４】
ＰＣＩバス上の主なエラーには、ＰＥＲＲ、すなわち不良データ・パリティ状態がバス上で見られるときに信号で通知されるパリティ・エラーと、ＳＥＲＲ、すなわち、アドレス・パリティ・エラーが発生したとき、または装置に重大なエラーがあるときに信号で通知されるシステム・エラーの２つが含まれる。パリティの発生は、全てのＰＣＩに準拠する装置が実行しなければならないため、オプションではない。特定のＰＣＩトランザクションのターゲット装置は、パリティを検査しアドレス・パリティ・エラーを報告する。データ・パリティ・エラーに関しては、マスタ装置が特定の読み取りトランザクションのデータ・パリティ・エラーを検出して報告し、ターゲット装置が特定の書き込みトランザクションのデータ・パリティ・エラーを検出して報告する。ただし、マスタ装置はマスタ装置とターゲット装置のどちらがエラーを発生した場合でも、エラーを検出する能力を有する。本発明の範疇分けにより、この両方のエラー状態の分離を行うことが好ましい。
【００１５】
図４を参照すると、範疇（カテゴリー）分けのための検査を行なうために（ステップ３９）、ＰＣＩ間ブリッジがＳＥＲＲ＃信号をその２次バス上で受信したかどうかを判定する。次に、不良パリティを２次バス上で受信したＰＣＩ間ブリッジがあるかどうか範疇分けのための検査を行う（ステップ４０）。この状態が存在するときは、次に不良パリティを１次バス上で受信したＰＣＩ間ブリッジがあるかどうか検査を行う（ステップ４２）。不良パリティを検出した２次バス上のターゲットに対してマスタ装置として機能するＰＣＩ間ブリッジがあるかどうかの検査に進む（ステップ４４）。次にステップ４２で不良パリティを検出したＰＣＩ間ブリッジについて不良パリティを検出した１次バス上のターゲットに対してマスタ装置として機能するＰＣＩ間ブリッジがあるかどうかの検査に進む（ステップ４６）。範疇分けプロセスは、それを通してターゲットＡｂｏｒｔまたはマスタＡｂｏｒｔが信号で通知されたＰＣＩ間ブリッジがあるかどうかの検査に進む（ステップ４８）。
【００１６】
ＰＣＩ間ブリッジの検査に続いて、範疇分けプロセスは不良パリティを検出したマスタ装置の識別に進む（ステップ５０）。範疇分けプロセスはさらに、不良パリティを検出したターゲットのマスタ装置の識別に進む（ステップ５２）。次の範疇分け検査は、不良アドレス・パリティのためＳＥＲＲ＃を信号で通知した装置について行う（ステップ５４）。続けて、ターゲットＡｂｏｒｔのためＳＥＲＲ＃を信号で通知したマスタ装置があるかどうか（ステップ５６）、またマスタＡｂｏｒｔのためＳＥＲＲ＃を信号で通知したマスタ装置があるかどうかの検査を行う（ステップ５８）。範疇分けプロセスは、内部エラーのためＳＥＲＲ＃を送信した装置があるかどうか（ステップ６０）、また不良パリティを検出したターゲット装置があるかどうか（ステップ６２）、不良パリティを検出したが、ＳＥＲＲ＃の報告が不能であった装置があるかどうかの検査（ステップ６４）に進む。さらに、範疇分けプロセスは、ターゲットＡｂｏｒｔを信号で通知したターゲット装置があるかどうか（ステップ６６）、およびバス上の他の装置が不良アドレス・パリティの検出を信号で通知している場合は、不良アドレス・パリティの潜在的送信側があるかどうかの検査（ステップ６８）を行う。
【００１７】
バスの範疇分けが行われている間は、エラー状態の経路をたどる。図３に戻ると、あるＰＣＩ間ブリッジが、そこからエラー状態が起こっている別のＰＣＩ間ブリッジに接続されていることを範疇分けプロセスが示す（ステップ３２）ときは、その別のＰＣＩ間ブリッジによってサポートされるバス上での範疇分けの実行にシーケンスは戻る（ステップ３４）。したがって、範疇分けは、ＰＣＩバスのトップレベルから全てのサブブリッジ、すなわち入出力サブシステム１８（図２）の階層ＰＣＩバスの従属ブランチを下って、繰返し実行される。順序付き範疇分けが完了した後、結果情報がエラー・ログとして返され、入出力サブシステム１８内のエラー／障害発生源分離のために分析される（ステップ３６）ことが好ましい。エラー状態の多くでエラー・レジスタ値が類似するので、本発明の順序付き範疇分けは、障害発生源の分析に役立てるために、各装置が検出したエラーのタイプを正確に識別する。
【００１８】
たとえば、結果としてＳＥＲＲ＃信号を出すアドレス・パリティ・エラーは、不良アドレス・パリティを検出しなかったバス上の単一の装置を見つけることによって分離される。そうした装置は、バス上で不良アドレスを発行した装置だけだからである。データ・パリティ・エラーは、マスタ装置およびターゲット装置を見つけ、次いで実際に不良データを検出したのが二つのうちどちらかを決定することによって分離される。不良データを検出する装置は「信号通知」装置と呼び、不良データの発生源は「送信」装置と呼ぶ。「送信」装置が最高の優先順位で置換されるべき優先順位を持つ。マスタとターゲットが、２つの異なるバス上に存在する（１つまたは複数のＰＣＩ間ブリッジがこれらの間の経路上にある）場合、その障害は特定のバスに分離される。その結果、ＰＣＩ間ブリッジは「送信」装置または「信号通知」装置、あるいはその両方としてリストされる可能性がある。
【００１９】
さらに、マルチ機能装置の場合、同じ物理位置に分離された別個の装置であるかのように、検査を行うのが適切である。さらに、ＳＥＲＲ＃（システムエラー、無反応）信号によって報告される内部装置エラーは信号通知装置に分離される。さらに、ＳＥＲＲ＃信号を出した打ち切られた動作は、マスタ装置およびターゲット装置に分離されるのが適切であり、打切りを引き起こした装置が、置換について最高の優先順位となる。
【００２０】
以上、本発明をその実施形態に従って説明したが、これらの実施形態には変形形態があり得、それらの変形形態も本発明の精神および範囲に含まれることを、当業者なら容易に理解するであろう。例を挙げると、本発明は、ＰＣＩバスに関して説明したが、障害隔離技術は他のバス構造を使用するアプリケーションにも適用している。したがって、頭記の請求の範囲の精神および範囲を逸脱することがなく、多くの修正を当業者が加えることができよう。
【００２１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００２２】
（１）バスを介して通信する複数の入出力装置によって形成される入出力（Ｉ／Ｏ）サブシステムを含むコンピュータ・システムのバス上における障害状態を分離する方法であって、
（ａ）入出力サブシステムを繰返し所定の範疇に分類する段階と、
（ｂ）入出力サブシステム内のエラー状態の発生源を分離する段階と
を含む方法。
（２）入出力サブシステムが周辺コンポーネント相互接続（ＰＣＩ）バスを介して通信する上記（１）に記載の方法。
（３）入出力サブシステムが、ＰＣＩ間ブリッジをさらに含み、ＰＣＩ間ブリッジが１次バスおよび２次バスを有する上記（２）に記載の方法。
（４）所定の範疇に分類する段階（ａ）が、ＰＣＩ間ブリッジが２次バス上でＳＥＲＲ＃信号を受信したかどうか検査する段階をさらに含む上記（１）に記載の方法。
（５）所定の範疇に分類する段階（ａ）が、ＰＣＩ間ブリッジの２次バス上で受信された不良パリティがあるかどうか検査する段階をさらに含む上記（４）に記載の分離方法。
（６）所定の範疇に分類する段階（ａ）が、ＰＣＩ間ブリッジの１次バス上で受信された不良パリティがあるかどうか検査する段階をさらに含む上記（５）に記載の分離方法。
（７）所定の範疇に分類する段階（ａ）が、不良パリティを検出した２次バス上のターゲット装置に対してマスタ装置として機能するＰＣＩ間ブリッジがあるかどうか検査する段階をさらに含む上記（６）に記載の分離方法。
（８）所定の範疇に分類する段階（ａ）が、不良パリティを検出した１次バス上のターゲット装置に対してマスタ装置として機能するＰＣＩ間ブリッジがあるかどうか検査する段階をさらに含む上記（７）に記載の分離方法。
（９）所定の範疇に分類する段階（ａ）が、打切りを信号で通知するＰＣＩ間ブリッジがあるかどうか検査する段階をさらに含む上記（８）に記載の分離方法。
（１０）所定の範疇に分類する段階（ａ）が、不良パリティを検出したマスタ装置があるかどうか検査する段階をさらに含む上記（９）に記載の分離方法。
（１１）所定の範疇に分類する段階（ａ）が、不良パリティを検出したターゲット装置に対するマスタ装置があるかどうか検査する段階をさらに含む上記（１０）に記載の分離方法。
（１２）所定の範疇に分類する段階（ａ）が、不良アドレス・パリティのためシステム・エラーを信号で通知した装置があるかどうか検査する段階をさらに含む上記（１１）に記載の分離方法。
（１３）所定の範疇に分類する段階（ａ）が、ターゲット装置上での打切りのためシステム・エラーを信号で通知したマスタ装置があるかどうか検査する段階をさらに含む上記（１２）に記載の分離方法。
（１４）所定の範疇に分類する段階（ａ）が、マスタ装置上での打切りのためシステム・エラーを信号で通知したマスタ装置があるかどうか検査する段階をさらに含む上記（１３）に記載の分離方法。
（１５）所定の範疇に分類する段階（ａ）が、内部エラーのためシステム・エラーを信号で通知した装置があるかどうか検査する段階をさらに含む上記（１４）に記載の分離方法。
（１６）所定の範疇に分類する段階（ａ）が、不良パリティを検出したターゲット装置があるかどうか検査する段階をさらに含む上記（１５）に記載の分離方法。
（１７）所定の範疇に分類する段階（ａ）が、不良パリティを検出したが、システム・エラー報告機能が使用不能である装置があるかどうか検査する段階をさらに含む上記（１６）に記載の分離方法。
（１８）所定の範疇に分類する段階（ａ）が、ターゲット装置における打切りを信号で通知したターゲット装置があるかどうか検査する段階をさらに含む上記（１７）に記載の分離方法。
（１９）所定の範疇に分類する段階（ａ）が、不良アドレス・パリティの潜在的な送信側があるかどうか検査する段階をさらに含む上記（１８）に記載の分離方法。
（２０）周辺コンポーネント相互接続（ＰＣＩ）バス上で障害を分離するコンピュータ・システムであって、
処理手段と、
処理手段に結合され、ＰＣＩバスに結合されてＰＣＩ標準に従って通信する複数の入出力装置およびブリッジを備える入出力手段と、
処理手段内にあって、入出力手段におけるエラー状態の発生源を識別するための障害分離手段と
を含むシステム。
（２１）障害分離手段が入出力手段の反復的に所定の範疇への分類をさらに実行する上記
（２０）に記載のシステム。
（２２）障害分離手段が入出力手段内のエラー状態の発生源を分離するためのエラー・ログをさらに提供する上記（２１）に記載のシステム。
（２３）障害分離手段がエラー状態値を検査することによって所定の範疇への分類を行う上記（２２）に記載のシステム。
（２４）エラー状態値を入出力手段の状況レジスタに記憶する上記（２３）に記載のシステム。
（２５）周辺コンポーネント相互接続（ＰＣＩ）バス・エラーの障害分離の方法であって、
（ａ）ＰＣＩバス上の装置エラーを処理する段階と
（ｂ）ＰＣＩバスに結合された複数の入出力装置の順序付き所定の範疇への分類を実行する段階と
（ｃ）装置エラーがＰＣＩバスの従属ブランチから発生したものかどうか判定する段階と
（ｄ）ＰＣＩバスが所定の範疇への分類されるまで、段階（ａ）ないし（ｃ）を繰返し実施する段階とを
含む方法。
（２６）順序付き所定の範疇への分類からエラー・ログを形成する段階をさらに含む上記（２５）に記載の方法。
（２７）装置エラーを分離するためにエラー・ログを分析する段階をさらに含む上記（２６）に記載の方法。
（２８）順序付き所定の範疇への分類段階が複数の入出力装置の状況レジスタを検査する上記（２５）に記載の方法。
（２９）複数の入出力装置が、１つまたは複数のＰＣＩ間ブリッジ装置を含む上記（２８）に記載の方法。
（３０）１つまたは複数のＰＣＩ間ブリッジ装置が、１つまたは複数のＰＣＩバスの従属ブランチをサポートする請求項２９に記載の方法。
【図面の簡単な説明】
【図１】  本発明に基づくコンピュータ・システムのブロック図である。
【図２】  図１のコンピュータ・システムの入出力サブシステムのブロック図である。
【図３】  本発明に基づく障害分離プロセスの流れ図である。
【図４】  図２における順序付き範疇分け段階のより詳細な流れ図である。
【図５】  図２における順序付き範疇わけ段階のより詳細な流れ図であり、図４の続きである。
【符号の説明】
１０  プロセッサ
１２  メモリ
１４  オペレーティング・システム（Ｏ／Ｓ）
１６  ファームウェア
１８  入力／出力サブシステム
２０  入出力装置
２２  ブリッジ
２３  １次バス
２４  ホスト・ブリッジ
２５  ２次バス
【図１】
0004015740.tif 000002
【図２】
0004015740.tif 000003
【図３】
0004015740.tif 000004
【図４】
0004015740.tif 000005
【図５】
0004015740.tif 000006