(57)【特許請求の範囲】
【請求項１】
各ブリッジが、自ブリッジを流れるデータに訂正不可能な誤りがある場合、自ブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグを有効にすると共に、前記データの流れる方向に応じて、自ブリッジよりも１階層上流側あるいは1階層下流側のブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグを有効にし、その後、ＢＩＯＳに閉塞通知を送る閉塞通知ステップと、
前記ＢＩＯＳが、閉塞通知を受信することにより、前記各ブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグの値に基づいて、閉塞されたＰＣＩバスを検出する第１のステップと、
前記ＢＩＯＳが、前記第１のステップで検出されたＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示をＯＳに対して出力する第２のステップと、
前記ＯＳが、前記ＰＣＩカード切離指示に応答して前記閉塞されたＰＣＩバスに接続されているＰＣＩカードを制御から切り離し、該切り離したＰＣＩカードの電源を落すことを指示する電源断指示を前記ＢＩＯＳに対して出力する第３のステップと、
前記ＢＩＯＳが、前記電源断指示に応答して前記閉塞されたＰＣＩバスが正常に動作するか否かを、前記ＰＣＩバスの閉塞を一旦解除してから診断し、診断終了後、前記ＰＣＩバスを再び閉塞する第４のステップと、
前記ＢＩＯＳが、前記第４のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第５のステップとを含むことを特徴とするＰＣＩバス障害リカバリ方法。
【請求項２】
請求項１記載のＰＣＩバス障害リカバリ方法において、
前記第１のステップでは、前記ＢＩＯＳが、閉塞されたＰＣＩバスを検出した場合に診断開始レジスタをセットし、
前記第４のステップでは、前記ＢＩＯＳが、前記診断開始レジスタがセットされていない場合は、前記電源断指示に応答して前記ＯＳの制御から切り離されたＰＣＩカードの電源を落とし、前記診断開始レジスタがセットされている場合は、前記電源断指示に応答して前記ＯＳの制御から切り離されたＰＣＩカードの電源を落すことなく、前記閉塞されたＰＣＩバスが正常に動作するか否かを診断することを特徴とするＰＣＩバス障害リカバリ方法。
【請求項３】
請求項１または２記載のＰＣＩバス障害リカバリ方法において、
前記ＢＩＯＳが、前記第４のステップにおいて前記ＰＣＩバスが正常に動作しないと診断されたことを条件にして、前記ＰＣＩバスの設定値を再設定する第６のステップと、
前記ＢＩＯＳが、前記第６のステップを実行後、前記閉塞されたＰＣＩバスが正常に動作するか否かを診断する第７のステップと、
前記ＢＩＯＳが、前記第７のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第８のステップとを含むことを特徴とするＰＣＩバス障害リカバリ方法。
【請求項４】
請求項２記載のＰＣＩバス障害リカバリ方法において、
前記第１のステップでは、前記ＢＩＯＳが、閉塞されたチップセットバスを検出して前記診断開始レジスタをセットし、
前記第２のステップでは、前記ＢＩＯＳが、前記第１のステップで検出されたチップセットバスの下流に存在するＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示を前記ＯＳに対して出力し、
前記第４のステップでは、前記ＢＩＯＳが、前記閉塞されたチップセットバスが正常に動作するか否かを診断し、
前記第５のステップでは、前記ＢＩＯＳが、前記第４のステップにおいて前記チップセットバスが正常に動作すると診断されたことを条件にして、閉塞されたチップセットバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力することを特徴とするＰＣＩバス障害リカバリ方法。
【請求項５】
ＰＣＩカード切離指示に応答して閉塞されたＰＣＩバスに接続されているＰＣＩカードを制御から切り離し、該切り離したＰＣＩカードの電源を落すことを指示する電源断指示を出力するＯＳを実装すると共に、複数のブリッジを備えたコンピュータであって、前記複数のブリッジがそれぞれ自ブリッジを流れるデータに訂正不可能な誤りがある場合、自ブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグを有効にすると共に、前記データの流れる方向に応じて、自ブリッジよりも１階層上流側あるいは1階層下流側のブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグを有効にし、その後、ＢＩＯＳに閉塞通知を送る閉塞通知ステップを行うコンピュータに、
閉塞通知を受信することにより、前記各ブリッジ内の閉塞フラグ記憶部に記録されている閉塞フラグの値に基づいて、閉塞されたＰＣＩバスを検出する第１のステップと、
該第１のステップで検出されたＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示を前記ＯＳに対して出力する第２のステップと、
前記ＯＳからの電源断指示に応答して閉塞されているＰＣＩバスが正常に動作するか否かを、前記ＰＣＩバスの閉塞を一旦解除してから診断し、診断終了後、前記ＰＣＩバスを再び閉塞する第３のステップと、
該第３のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第４のステップとを実行させるためのプログラム。
【請求項６】
請求項５記載のプログラムにおいて、
前記第１のステップでは、閉塞されたＰＣＩバスを検出した場合に診断開始レジスタをセットし、
前記第３のステップでは、前記診断開始レジスタがセットされていない場合は、前記電源断指示に応答して前記ＯＳの制御から切り離されたＰＣＩカードの電源を落とし、前記診断開始レジスタがセットされている場合は、前記電源断指示に応答して前記ＯＳの制御から切り離されたＰＣＩカードの電源を落すことなく、前記閉塞されたＰＣＩバスが正常に動作するか否かを診断することを特徴とするプログラム。
【請求項７】
請求項５または６記載のプログラムにおいて、
前記コンピュータに、
前記第３のステップにおいて前記ＰＣＩバスが正常に動作しないと診断されたことを条件にして、前記ＰＣＩバスの設定値を再設定する第５のステップと、
該第５のステップを実行後、前記閉塞されたＰＣＩバスが正常に動作するか否かを診断する第６のステップと、
該第６のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第７のステップとを実行させることを特徴とするプログラム。
【請求項８】
請求項６記載のプログラムにおいて、
前記第１のステップでは、閉塞されたチップセットバスを検出して前記診断開始レジスタをセットし、
前記第２のステップでは、前記第１のステップで検出されたチップセットバスの下流に存在するＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示を前記ＯＳに対して出力し、
前記第３のステップでは、前記閉塞されたチップセットバスが正常に動作するか否かを診断し、
前記第４のステップでは、前記第３のステップにおいて前記チップセットバスが正常に動作すると診断されたことを条件にして、前記チップセットバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩ(Peripheral Component Interconnect)バス障害をリカバリする技術に関し、特に、ＯＳ(Operating System)が備えているＰＣＩカード単位のホットプラグ機能を利用してＢＩＯＳ(Basic Input/Output System)がＰＣＩバス障害をリカバリする技術に関する。
【背景技術】
【０００２】
ＰＣＩバスを利用したコンピュータ装置においては、ＰＣＩバスに障害が発生した場合、障害が発生したＰＣＩバスを閉塞するということが行われている。ＰＣＩバス障害の多くは間欠障害であるため、コンピュータ装置を再起動することにより、多くの場合、閉塞したＰＣＩバスを利用することが可能になる。しかし、この方法では、コンピュータ装置を再起動する必要があり、無停止稼動を実現できないという問題がある。
【０００３】
そこで、ＯＳにＰＣＩバス障害のリカバリ機能を組み込み、間欠障害によって閉塞されたＰＣＩバスを、無停止で利用可能にするということが行われている。図４は、ＰＣＩバス障害のリカバリ機能が組み込まれたＯＳのリカバリ動作を示すフローチャートであり、ＯＳは、閉塞されたＰＣＩバスが発生すると、障害履歴を参照し、上記ＰＣＩバスの障害発生回数を取得する（ステップＳ１０１）。その後、ＯＳは、ステップＳ１０１で取得した障害発生回数が所定回数未満であるか否かを調べる（ステップＳ１０２）。そして、所定回数未満である場合（ステップＳ１０２がＹＥＳ）は、間欠障害が原因でバス閉塞が行われたものと判断し、閉塞されているＰＣＩバスの閉塞を解除する（ステップＳ１０３）。これに対して、所定回数以上であると判断した場合は、固定障害が原因でバス閉塞が行われたものと判断し、ＰＣＩバスの閉塞を継続する（ステップＳ１０４）。
【０００４】
一方、コンピュータ装置を停止させることなく、障害の発生した周辺装置やＩ／Ｏカードを交換できるようにしたコンピュータ装置も従来から知られている（例えば、特許文献１参照）。この特許文献１に記載されているコンピュータ装置は、メインＯＳとサブＯＳとの２つのＯＳを備えており、メインＯＳの制御下にある装置（Ｉ／Ｏカード等）に障害が発生すると、障害の発生した装置をメインＯＳの制御から切り離すと共に、コンピュータ装置から電気的に切り離す。その後、障害装置に対する修理、交換が行われると、修理、交換された装置をコンピュータシステムに電気的に接続し、更に、サブＯＳを用いて修理、交換された装置の動作確認を行い、動作が正常であった場合には、修理、交換した装置をメインＯＳの制御下に戻す。
【０００５】
【特許文献１】特開２００２−３６６３７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、図４に示した方法では、障害履歴に基づいてＰＣＩバス障害が間欠障害であるか否かを判断し、間欠障害であると判断した場合はＰＣＩバスの閉塞を解除するようにしているため、信頼性が低く、固定故障が発生しているＰＣＩバスの閉塞が解除され、ＰＣＩバスが暴走してしまう危険性がある。そこで、障害履歴に基づいて間欠障害であると判断したときに、ＰＣＩバスの閉塞を解除するのではなく、特許文献１に記載の技術のように、実際に動作確認を行い、ＰＣＩバスが正常に動作することを確認してからＰＣＩバスの閉塞を解除するという方法が考えられる。しかし、ＰＣＩバスの動作確認方法はプラットフォームに依存するため、上記した方法では、プラットフォームが異なるＯＳ毎に、そのＯＳが使用するプラットフォームに合った、ＰＣＩバスの動作確認を行う仕組みを作り込まなければならないという問題がある。
【０００７】
〔発明の目的〕
そこで、本発明の目的は、ＯＳに、そのＯＳが使用するプラットフォームに合った、ＰＣＩバスの動作確認を行う仕組みを作り込まなくとも、信頼性の高いＰＣＩバスの閉塞解除判断を行うことができるＰＣＩバス障害リカバリ方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明にかかる第１のＰＣＩバス障害リカバリ方法は、
ＢＩＯＳが、閉塞されたＰＣＩバスを検出する第１のステップと、
前記ＢＩＯＳが、前記第１のステップで検出されたＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示をＯＳに対して出力する第２のステップと、
前記ＯＳが、前記ＰＣＩカード切離指示に応答して前記閉塞されたＰＣＩバスに接続されているＰＣＩカードを制御から切り離し、該切り離したＰＣＩカードの電源を落すことを指示する電源断指示を前記ＢＩＯＳに対して出力する第３のステップと、
前記ＢＩＯＳが、前記電源断指示に応答して前記閉塞されたＰＣＩバスが正常に動作するか否かを診断する第４のステップと、
前記ＢＩＯＳが、前記第４のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第５のステップとを含むことを特徴とする。
【０００９】
本発明にかかる第１のプログラムは、
ＰＣＩカード切離指示に応答して閉塞されたＰＣＩバスに接続されているＰＣＩカードを制御から切り離し、該切り離したＰＣＩカードの電源を落すことを指示する電源断指示を出力するＯＳを実装したコンピュータに、
閉塞されたＰＣＩバスを検出する第１のステップと、
該第１のステップで検出されたＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示を前記ＯＳに対して出力する第２のステップと、
前記ＯＳからの電源断指示に応答して閉塞されているＰＣＩバスが正常に動作するか否かを診断する第３のステップと、
該第３のステップにおいて前記ＰＣＩバスが正常に動作すると診断されたことを条件にして、前記ＰＣＩバスの閉塞を解除し、前記ＯＳの制御から切り離されたＰＣＩカードの組み込みを指示するＰＣＩカード組込指示を前記ＯＳに対して出力する第４のステップとを実行させる。
【発明の効果】
【００１０】
本発明によれば、ＯＳに、そのＯＳが使用するプラットフォームに合った、ＰＣＩバスの動作確認を行う仕組みを作り込まなくとも、信頼性の高いＰＣＩバスの閉塞解除判断を行うことができる。
【発明を実施するための最良の形態】
【００１１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１２】
〔発明の実施例〕
図１は本発明のＰＣＩバス障害リカバリ方法を適用するバスシステムの一例を示したブロック図であり、チップセットバス１０１〜１０３と、チップセットブリッジ２０１〜２０６と、ＰＣＩバス３０１〜３０６と、ＰＣＩカード４０１〜４０６と、ＰＣＩブリッジ５０１、５０２と、ＣＰＵ６０１と、メモリ７０１とを備えている。なお、ＰＣＩバス３０１〜３０６よりも上流側（ＣＰＵ６０１に近い側）のチップセットバス１０１〜１０３は、プラットフォームに強く依存している部分であり、ＢＩＯＳからは可視できるが、ＯＳからは可視できない部分である。
【００１３】
ＣＰＵ６０１は、チップセットバス１０１を介してメモリ７０１と接続されており、メモリ７０１に格納されているＯＳ、ＢＩＯＳなどのプログラムを実行する。チップセットバス１０１は、チップセットブリッジ２０１、２０２を介してチップセットバス１０２、１０３と接続されている。また、チップセットバス１０２はチップセットブリッジ２０３、２０４を介してそれぞれＰＣＩバス３０１、３０２に接続され、チップセットバス１０３はチップセットブリッジ２０５、２０６を介してそれぞれＰＣＩバス３０３、３０４に接続されている。
【００１４】
ＰＣＩバス３０１には、ＰＣＩカード４０１、４０２が接続され、ＰＣＩブリッジ５０１、５０２を介してそれぞれＰＣＩバス３０５、３０６と接続されている。ＰＣＩバス３０５にはＰＣＩカード４０３、４０４が、ＰＣＩバス３０６にはＰＣＩカード４０５、４０６が接続されている。
【００１５】
図２は、メモリ７０１に格納され、ＣＰＵ６０１によって実行されるＯＳ１およびＢＩＯＳ２の機能ブロック図である。
【００１６】
ＯＳ１は、コンピュータ装置を停止させるさせることなくＰＣＩカードを追加、削除するホットプラグ機能を有しており、このホットプラグ機能を実現するためのＰＣＩカード切離手段１１と、ＰＣＩカード組込手段１２とを備えている。ホットプラグ機能は、多くのＯＳが備えている機能である。
【００１７】
ＰＣＩカード切離手段１１は、ＰＣＩカード切離指示によって指示されたＰＣＩカードをＯＳ１の制御から切り離し、切り離したＰＣＩカードの電源を落すことを指示する電源断指示をＢＩＯＳ２に対して出力する機能を有する。ＰＣＩカード組込手段１２は、ＰＣＩカード組込指示によって指示されたＰＣＩカードを利用可能にする機能を有する。
【００１８】
ＢＩＯＳ２は、ＰＣＩバス障害検出手段２１と、ＰＣＩカード切離指示手段２２と、ＰＣＩカード切離受付手段２３と、ＰＣＩバス診断手段２４と、ＰＣＩバス閉塞解除手段２５と、ＰＣＩカード組込指示手段２６とを備えている。
【００１９】
ＰＣＩバス障害検出手段２１は、チップセットブリッジ２０１〜２０６、ＰＣＩブリッジ５０１、５０２内に設けられている障害検出訂正手段３１から閉塞通知が送られてきた場合、各ブリッジ内の閉塞フラグ記憶部３２を参照して閉塞されたチップセットバス、ＰＣＩバスを検出すると共に、診断開始レジスタ３３をセットする。
【００２０】
各ブリッジ内に設けられている障害検出訂正手段３１は、自ブリッジを介して上流側、下流側に送られるデータに訂正可能な誤りがある場合には、誤りを訂正してから上流側、下流側に送る。また、障害検出訂正手段３１は、自ブリッジを介して下流側に送られるデータに訂正不可能な誤りがある場合には、自ブリッジ内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”にすると共に、自ブリッジよりも１階層上流側のブリッジ内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”にして、自ブリッジと自ブリッジより１階層上流側のブリッジとにより挟まれているＰＣＩバス或いはチップセットバスを閉塞し、更に、ＢＩＯＳ２に対して閉塞通知を送る。また、自ブリッジを介して上流側に送られるデータに訂正不可能な誤りがある場合には、自ブリッジ内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”とすると共に、自ブリッジよりも１階層下流側のブリッジ内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”にして、自ブリッジと自ブリッジより１階層下流のブリッジとによって挟まれているＰＣＩバス或いはチップセットバスを閉塞し、更に、ＢＩＯＳ２に対して閉塞通知を送る。例えば、チップセットブリッジ２０３内の障害検出訂正手段３１は、自ブリッジ２０３を介して上流側に送られるデータに訂正不可能な誤りがあった場合には、自ブリッジ２０３およびＰＣＩブリッジ５０１、５０２内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”とすることにより、ＰＣＩバス３０１を閉塞する。なお、各ブリッジは、自ブリッジ内の閉塞フラグ記憶部３２に格納されている閉塞フラグが“１”になっている場合には、自ブリッジを介してデータが流れないようにする。
【００２１】
ＰＣＩカード切離指示手段２２は、ＰＣＩバス障害検出手段２１によって閉塞されたＰＣＩバスが検出された場合は、上記ＰＣＩバスおよび上記ＰＣＩバスよりも下流に存在する全てのＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示をＯＳ１に対して出力し、ＰＣＩバス障害検出手段２１によって閉塞されたチップセットバスが検出された場合は、それよりも下流に存在する全てのＰＣＩバスに接続されているＰＣＩカードの切り離しを指示するＰＣＩカード切離指示をＯＳ１に対して出力する。
【００２２】
ＰＣＩカード切離受付手段２３は、ＯＳ１から電源断指示が送られてくると、診断開始レジスタ３３がセットされていない場合は、指示された各ＰＣＩカードの電源を落とし、診断開始レジスタ３３がセットされている場合は、ＰＣＩカードの電源を落すことなく、ＰＣＩバス診断手段２４を起動する。
【００２３】
ＰＣＩバス診断手段２４は、閉塞されたチップセットバス或いはＰＣＩバスが正常に動作するか否かを診断する。ＰＣＩバス診断手段２４は、例えば、ＢＩＯＳに組み込まれている、プラットフォームに依存した診断プログラム等によって実現される。
【００２４】
ＰＣＩバス閉塞解除手段２５は、ＰＣＩバス診断手段２４において閉塞されたチップセットバス或いはＰＣＩバスが正常に動作すると診断された場合、上記チップセットバス或いはＰＣＩバスの閉塞を解除する。
【００２５】
ＰＣＩカード組込指示手段２６は、ＰＣＩカード切離指示手段２２により切り離しを指示したＰＣＩカードを再びシステムに組み込むことを指示するＰＣＩカード組込指示をＯＳ２に対して出力する。
【００２６】
〔実施例の動作の説明〕
次に、本実施例の動作について詳細に説明する。
【００２７】
今、例えば、チップセットブリッジ２０３を介して上流側に送られるデータに訂正不可能な誤りが発生したとする。チップセットブリッジ２０３内の障害検出訂正手段３１は、自ブリッジ２０３を介して上流側に送られるデータに訂正不可能な誤りが発生すると、自ブリッジ２０３内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”とすると共に、ＰＣＩブリッジ５０１、５０２内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“１”にすることにより、障害の発生したＰＣＩバス３０１を閉塞する。更に、チップセットブリッジ２０３内の障害検出訂正手段３１は、ＢＩＯＳ２に対して閉塞通知を送る。
【００２８】
ＢＩＯＳ２内のＰＣＩバス障害検出手段２１は、閉塞通知を受け付けると、各ブリッジ２０１〜２０６、５０１、５０２内の閉塞フラグ記憶部３２を参照し、閉塞されたＰＣＩバス或いはチップセットバスを検出する（図３のステップＳ３１）。この例の場合、チップセットブリッジ２０３、ＰＣＩブリッジ５０１、５０２内の閉塞フラグ記憶部３２に格納されている閉塞フラグが“１”となっているので、ＰＣＩバス障害検出手段２１は、上記各ブリッジ２０３、５０１、５０２に挟まれているＰＣＩバス３０１が閉塞されたことを検出する。その後、ＰＣＩバス障害検出手段２１は、診断開始レジスタ３３をセットする（ステップＳ３２）。
【００２９】
ＰＣＩカード切離指示手段２２は、ＰＣＩバス障害検出手段２１によってＰＣＩバス３０１の閉塞が検出されると、上記ＰＣＩバス３０１に接続されているＰＣＩカード４０１、４０２、及び上記ＰＣＩバス３０１の下流に存在するＰＣＩバス３０５、３０６に接続されているＰＣＩカード４０３〜４０６の切り離しを指示するＰＣＩカード切離指示をＯＳ１に対して出力する（ステップＳ３３）。
【００３０】
ＯＳ１内のＰＣＩカード切離手段１１は、ＢＩＯＳ２からＰＣＩカード切離指示が送られてくると、指示されたＰＣＩカード４０１〜４０６を制御から切り離し、その後、ＡＣＰＩ（Advanced Configuration and Power Interface Specification）を介してＢＩＯＳ２に対して上記各ＰＣＩカード４０１〜４０６の電源を落すことを指示する電源断指示を出力する。
【００３１】
ＢＩＯＳ２内のＰＣＩカード切離受付手段２３は、電源断指示を受け付けると（ステップＳ３４がＹＥＳ）、診断開始レジスタ３３がセットされているか否かを調べる（ステップＳ３５）。
【００３２】
そして、診断開始レジスタ３３がセットされていない場合（ステップＳ３５がＮＯ）は、ＯＳ１がホットプラグ機能を有効にするために、電源断指示を出力したと判断して、電源断指示によって指示されたＰＣＩカードの電源を落す（ステップＳ３６）。
【００３３】
これに対して、診断開始レジスタ３３がセットされている場合（ステップＳ３５がＹＥＳ）は、閉塞されたＰＣＩバス或いはチップセットバスを診断する必要があると判断してＰＣＩバス診断手段２４を起動する。これにより、ＰＣＩバス診断手段２４は閉塞されたＰＣＩバス或いはチップセットバスが正常に動作するか否かを診断する（ステップＳ３７）。この例の場合は、ＰＣＩバス診断手段２４は、ＰＣＩバス３０１が正常に動作するか否かを診断する。なお、診断方法としては、種々の方法を採用することができ、また、必要に応じてＰＣＩバス３０１の閉塞を解除して診断を行うようにしても良い。なお、ＰＣＩバス３０１の閉塞を解除して診断を行った場合には、診断終了後、再び、ＰＣＩバス３０１を閉塞する。
【００３４】
そして、正常に動作すると診断された場合（ステップＳ３８がＹＥＳ）は、ＰＣＩバス閉塞解除手段２５が、該当する閉塞フラグを“０”とすることにより、閉塞されているＰＣＩバス或いはチップセットバスの閉塞を解除する（ステップＳ３９）。この例では、チップセットブリッジ２０３、ＰＣＩブリッジ５０１、５０２内の閉塞フラグ記憶部３２に格納されている閉塞フラグを“０”とすることにより、ＰＣＩバス３０１の閉塞を解除する。その後、ＰＣＩカード組込指示手段２６が、ＰＣＩカード４０１〜４０６の組み込みを指示するＰＣＩカード組込指示をＯＳ１に対して出力する（ステップＳ４０）。これにより、ＯＳ１内のＰＣＩカード組込手段１２は、ＰＣＩカード組込指示によって指示されたＰＣＩカード４０１〜４０６のドライバのロード、初期設定を行い、ＰＣＩカードを利用可能にする。
【００３５】
これに対して、正常に動作しないと診断された場合（ステップＳ３８がＮＯ）は、ＰＣＩバス診断手段２４は、閉塞されたＰＣＩバス或いはチップセットバスの設定を再度行い（ステップＳ４１）、その後、閉塞されたＰＣＩバス或いはチップセットバスが正常に動作するか否かを診断する（ステップＳ４２）。この例では、ＰＣＩバス３０１の設定（バス番号、メモリレンジ、マックスペイロードサイズ等の設定）を再度行い、その後、ＰＣＩバス３０１が正常の動作するか否かを診断することになる。ここで、ＰＣＩバスの設定を再度行うのは、ＰＣＩバス３０１の設定値が壊れてしまっていた場合、再設定することで、ＰＣＩバス３０１が復旧（正常に動作）する可能性があるためである。
【００３６】
そして、再設定を行っても、正常に動作しないと診断された場合（ステップＳ４３がＮＯ）は、処理を終了する。これにより、ＰＣＩバス３０１の閉塞状態は継続する（ステップＳ４４）。これに対して、正常に動作すると診断された場合（ステップＳ４３がＹＥＳ）は、前述したステップＳ３９以降の処理が行われる。
【００３７】
なお、上述した実施例では、診断開始レジスタ３３を設け、ＯＳ１から電源断指示が送られてきた場合、診断開始レジスタ３３の状態によって異なる処理を行うようにしたが（ステップＳ３５の判断結果がＹＥＳの場合とＮＯの場合で異なる動作を行うようにしたが）、診断開始レジスタ３３を設けずに、ＯＳ１から電源断指示が送られてきた場合は、常に、電源断指示によって指示されたＰＣＩカードの電源を落とし、その後、ステップＳ３７以降の処理を行うようにしても良い。
【００３８】
〔実施例の効果〕
本実施例によれば、ＯＳに、そのＯＳが使用するプラットフォームに合った、ＰＣＩバスの動作確認を行う仕組みを作り込まなくとも、信頼性の高いＰＣＩバスの閉塞解除判断を行うことができる。その理由は、プラットフォームに依存したＢＩＯＳ２を用いて閉塞されたＰＣＩバスが正常に動作するか否かを診断しているからである。
【００３９】
また、本実施例によれば、プラットフォームに強く依存したチップセットバスの障害もリカバリの対象とすることができる。その理由は、プラットフォームに依存したＢＩＯＳ２を用いて、閉塞されたチップセットバスが正常に動作するか否かを診断しているからである。
【００４０】
更に、本実施例では、正常に動作しないと診断されたＰＣＩバスの設定を再度行うようにしているので、設定値の破壊により障害となったＰＣＩバスを復旧することが可能になるという効果を得ることができる。
【００４１】
また、本実施例は、閉塞されたＰＣＩバスが検出されたときにセットされる診断開始レジスタを備えているので、ＯＳ１から電源断指示が送られてきたとき、診断開始レジスタ３３の状態に応じて、ＰＣＩバスの診断を行うのか、それともＰＣＩカードの電源を落すのかを切り分けることができる。
【産業上の利用可能性】
【００４２】
本発明は、無停止稼動が要求されている、ＰＣＩバスを使用したコンピュータ装置に適用することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明のＰＣＩバス障害リカバリ方法を適用するバスシステムの一例を示したブロック図である。
【図２】本発明の実施例で使用するＯＳ１及びＢＩＯＳ２の機能ブロック図である。
【図３】ＢＩＯＳ２の動作を示すフローチャートである。
【図４】従来の技術を説明するためのフローチャートである。
【符号の説明】
【００４４】
１…ＯＳ
１１…ＰＣＩカード切離手段
１２…ＰＣＩカード組込手段
２…ＢＩＯＳ
２１…ＰＣＩバス障害検出手段
２２…ＰＣＩカード切離指示手段
２３…ＰＣＩカード切離受付手段
２４…ＰＣＩバス診断手段
２５…ＰＣＩバス閉塞解除手段
２６…ＰＣＩカード組込指示手段
３１…障害検出訂正手段
３２…閉塞フラグ記憶部
３３…診断開始レジスタ
１０１〜１０３…チップセットバス
２０１〜２０６…チップセットブリッジ
３０１〜３０６…ＰＣＩバス
４０１〜４０６…ＰＣＩカード
５０１、５０２…ＰＣＩブリッジ
６０１…ＣＰＵ
７０１…メモリ
【図１】
0004513852.tif 000002
【図２】
0004513852.tif 000003
【図３】
0004513852.tif 000004
【図４】
0004513852.tif 000005