(57)【要約】【課題】  ＰｎＰソフトウェアを利用して冗長構成を構築可能とした高信頼性のフォールトトレラントコンピュータシステムを提供する。【解決手段】  二重化システムＡ，Ｂにおいて、仮想バス１００に接続される互いに対応するＩＯブリッジの実体２４Ａ，２３Ｂ（実際のＩＯブリッジ）を、それぞれのシステムで疑似ＩＯブリッジ２５Ａ，２５Ｂとして内蔵させて、システムＡ，Ｂが互いに物理的に切離されている場合には、疑似ＩＯブリッジが、他のシステムのＩＯブリッジの実体をエミュレートするようにすることによって、ＩＯブリッジ自身での、いわゆるＰｎＰイベントが発生しないかのように振舞うことが可能になる。【選択図】      図２
2006171819.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、メモリと、バスと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジとを含むコンピュータシステムであって、前記バスに他のシステムを接続した冗長構成時には前記バスから切離され、前記バスから前記他のシステムが物理的に切離されているシステム単体時には前記他のシステムにおけるＩＯブリッジをエミュレートすべく当該ＩＯブリッジの設定情報を保持する疑似ＩＯバスブリッジを含むことを特徴とするコンピュータシステム。
【請求項２】
前記システム単体時における電源投入に応答して、前記疑似ＩＯブリッジに対するメモリ空間の割当てをなす手段を、更に含むことを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記疑似ＩＯブリッジは、前記他のシステムのＩＯブリッジの初期設定情報を保持することを特徴とする請求項１または２記載のコンピュータシステム。
【請求項４】
前記冗長構成時に、前記疑似ＩＯブリッジに保持されている前記初期設定情報を前記他のシステムのＩＯブリッジへ複写する手段を、更に含むことを特徴とする請求項３記載のコンピュータシステム。
【請求項５】
前記疑似ＩＯブリッジは、前記冗長構成時に、前記他のシステムのＩＯブリッジの最新の設定情報を保持するようにしたことを特徴とする請求項１〜４いずれか記載のコンピュータシステム。
【請求項６】
請求項１〜５いずれか記載のコンピュータシステムを前記冗長構成としたことを特徴とするフォールトトレラントシステム。
【請求項７】
互いにバスにより接続されて冗長構成とされた第一及び第二のコンピュータシステムを含み、前記システムの各々は、ＣＰＵと、メモリと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジと、他のシステムにおけるＩＯブリッジをエミュレートする疑似ＩＯバスブリッジとを有するフォールトトレラントシステムの動作制御方法であって、
前記システム単体時において、前記疑似ＩＯブリッジに他システムのＩＯブリッジの初期設定情報を保持せしめるステップと、
前記冗長構成とするステップと、
前記冗長構成時に前記疑似ＩＯブリッジを前記バスから切離し、前記疑似ＩＯブリッジに保持された前記初期設定情報を他システムのＩＯブリッジに複写するステップと、
を含むことを特徴とする動作制御方法。
【請求項８】
前記システム単体時において、電源投入に応答して、前記疑似ＩＯブリッジに対するメモリ空間の割当てをなすステップを、更に含むことを特徴とする請求項７記載の動作制御方法。
【請求項９】
前記冗長構成時に、前記疑似ＩＯブリッジは、他のシステムのＩＯブリッジの最新の設定情報を保持するステップを、更に含むことを特徴とする請求項７または８記載の動作制御方法。
【請求項１０】
互いにバスにより接続されて冗長構成とされた第一及び第二のコンピュータシステムを含み、前記システムの各々は、ＣＰＵと、メモリと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジと、他のシステムにおけるＩＯブリッジをエミュレートする疑似ＩＯバスブリッジとを有するフォールトトレラントシステムの動作制御方法を実行するためのプログラムであって、
前記システム単体時において、前記疑似ＩＯブリッジに他システムのＩＯブリッジの初期設定情報を保持せしめる処理と、
前記冗長構成とする処理と、
前記冗長構成時に前記疑似ＩＯブリッジを前記バスから切離し、前記疑似ＩＯブリッジに保持された前記初期設定情報を他システムのＩＯブリッジに複写する処理と、
を含むことを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法及びそのプログラムに関し、特にフォールトトレラントコンピュータシステムの改良に関するものである。
【背景技術】
【０００２】
近年、広く流通されている汎用ＣＰＵの性能向上は著しく、このような汎用ＣＰＵを用いたワークステーションやサーバに、汎用オペレーティングシステム（ＯＳ）を搭載して高性能で安価なシステムが提供されるようになっている。その結果、従来であれば、非常に高価な大型コンピュータが用いられてきた用途においても、高性能で安価な汎用ＣＰＵを使用したシステムが使われるようになってきた。
【０００３】
一方、市場においては２４時間システムを連続稼動させる必要のあるミッションクリティカルな用途も増加している。このような分野では、システムダウンをいかに抑えてシステムを構築するかが重要なポイントとなっている。
【０００４】
しかしながら、このような汎用ＣＰＵや汎用ＯＳでは、高信頼性のための機能であるＣＰＵ自体の故障検出機能や、汎用ＯＳにおけるハードウェア故障に際して、故障の通知手段や障害時の応答に対する傷害処理の定義がないために、ハードウェア故障はすなわちシステム停止となってしまう。このために、高信頼性システムの実現のためには、特別な周辺回路の追加や専用ＯＳの開発が必要となっており、通常の汎用ＣＰＵシステムの開発速度に追従した高信頼性システムの開発が困難となっている。こういったことから、通常システムと高信頼性システムでの価格性能差は広まる傾向にある。
【０００５】
このため、汎用ＣＰＵを用いたシステムと共通性の高い高信頼性コンピュータシステム、すなわちフォールトトレラントコンピュータシステムの実現方法としては、例えば、特許文献１に示されるように、同一クロックで同期して同一処理を実行するＣＰＵ、ＣＰＵの故障を検出して障害ＣＰＵを切離す装置、およびＩＯの障害に応じてＣＰＵの指示によって障害ＩＯパスを切離すシステムが提案されている。しかしながら、広く用いられている汎用ＯＳでは、ハードウエアの障害に対する通知方法や、障害処理の機能が提供されていないためシステム停止となってしまう問題があった。
【０００６】
従って、汎用ＯＳを使用するためには、ハードウェアの故障とＯＳとは完全に分離した構成をとる必要がある。例えば、特許文献２を参照すると、計算エレメント（ＣＥ）とＩＯ制御部（ＩＯＰ）を、各々コンピュータシステム１台ずつで構成し、各々の要素を複数接続して冗長化を図っている。そして、各要素間で通信を行い、異常が検出されたＣＥやＩＯＰを切離す。
【０００７】
例えば、ＩＯ制御部の場合、ＯＳからはハードウェアが仮想化されており、障害の発生したＩＯ制御部は停止状態となる可能性があるが、この障害が直接ＯＳに影響することはなく、冗長化されている残りのＩＯ制御部が異常を検知して、正常な応答をＯＳに返すことで、障害発生を隠蔽することが出来る。
【特許文献１】特開平０９−０３４８０９号公報
【特許文献２】特表２００１−５２３８５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このようなシステムでは、ＣＰＵおよびＩＯそれぞれに１台のコンピュータが必要となっており、さらに冗長構成とするためには冗長化に必要な台数のコンピュータを用いる必要がある。更に、各コンピュータで非同期的あるいは異なる動作をさせていることから、搭載するＯＳライセンスが余分に必要となり、システムが高価となってしまう問題があった。
【０００９】
ここで、汎用ＯＳ上で標準的なＰｎＰ（Plug & Play ）ソフトウェアを用いることにより、バス上のＩＯデバイスやＩＯブリッジの接続構成を動的に変化させることが可能なシステムがあり、このようなＰｎＰソフトウェアを用いたシステムにより冗長構成を採用して高信頼性のフォールトトレラントコンピュータシステムを構築することが考えられる。
【００１０】
しかしながら、ＩＯブリッジのＰｎＰ処理においては、完全な動的構成変化には対応されていない。例えば、ＩＯブリッジの接続時に当該ＩＯブリッジ配下に接続されるデバイスの要求するメモリ空間の割当量や、デバイスの個数が確定されないことから、ＰｎＰ制御ソフトウエアあるいはＯＳの制限（典型的には、固定値で規定される）により、接続されたＩＯブリッジに対して自由にメモリ空間の割り当てが出来ず、ＩＯブリッジ配下のデバイスの個数や種類に制限がついてしまう問題がある。
【００１１】
例えば、ＩＯブリッジのＰｎＰ接続を行う場合に、ＩＯブリッジ配下にどれだけの資源が必要であるかは、ＯＳからは判断することが出来ないために、一定のメモリ空間を割り当てが行われてしまい、以後は変更不能となっている。このため、接続されたＩＯブリッジ配下に、さらに別のＩＯブリッジやデバイスを接続する際には、最初のＩＯブリッジに割り当てられてしまった以上のメモリ空間を必要とするＩＯブリッジやデバイスを接続することは出来ない。
【００１２】
また、複数デバイスを接続する場合でも、必要となるメモリ空間がＩＯブリッジに割り当てられたメモリ空間を越えてしまう場合があるために、接続デバイス数によっては、メモリ資源の割り当てに失敗するデバイスが出てくる。このようなメモリ資源確保の制限は、ＰｎＰ接続したＩＯブリッジ配下に、複数のＩＯブリッジを接続するような、多段ＩＯブリッジ構成のシステムの場合に大きな問題となる。
【００１３】
従来は、以上のような制限のために、ＰｎＰソフトウェアを用いたシステムでフォールトトレラントコンピュータシステムを構築するには、ＯＳ標準のＰｎＰ制御ソフトウェアやＯＳ自身の改変を行って、ＩＯブリッジに対する資源割り当てを十分に確保できるようにする必要がある。
【００１４】
本発明の目的は、既存の汎用ＯＳ機能の改変なく冗長構成を構築可能とした高信頼性及び高可用性のコンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法及びプログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明によるコンピュータシステムは、ＣＰＵと、メモリと、バスと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジとを含むコンピュータシステムであって、前記バスに他のシステムを接続した冗長構成時には前記バスから切離され、前記バスから前記他のシステムが物理的に切離されているシステム単体時には前記他のシステムにおけるＩＯブリッジをエミュレートすべく当該ＩＯブリッジの設定情報を保持する疑似ＩＯバスブリッジを含むことを特徴とする。
【００１６】
本発明によるフォールトトレラントシステムは、上記のコンピュータシステムを冗長接続構成としたことを特徴とする。
【００１７】
本発明によるフォールトトレラントシステムの動作制御方法は、互いにバスにより接続されて冗長構成とされた第一及び第二のコンピュータシステムを含み、前記システムの各々は、ＣＰＵと、メモリと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジと、他のシステムにおけるＩＯブリッジをエミュレートする疑似ＩＯバスブリッジとを有するフォールトトレラントシステムの動作制御方法であって、前記システム単体時において、前記疑似ＩＯブリッジに他システムのＩＯブリッジの初期設定情報を保持せしめるステップと、前記冗長構成とするステップと、前記冗長構成時に前記疑似ＩＯブリッジを前記バスから切離し、前記疑似ＩＯブリッジに保持された前記初期設定情報を他システムのＩＯブリッジに複写するステップとを含むことを特徴とする。
【００１８】
本発明によるプログラムは、互いにバスにより接続されて冗長構成とされた第一及び第二のコンピュータシステムを含み、前記システムの各々は、ＣＰＵと、メモリと、ＩＯデバイスを前記バスに接続するためのＩＯブリッジと、他のシステムにおけるＩＯブリッジをエミュレートする疑似ＩＯバスブリッジとを有するフォールトトレラントシステムの動作制御方法を実行するためのプログラムであって、前記システム単体時において、前記疑似ＩＯブリッジに他システムのＩＯブリッジの初期設定情報を保持せしめる処理と、前記冗長構成とする処理と、前記冗長構成時に前記疑似ＩＯブリッジを前記バスから切離し、前記疑似ＩＯブリッジに保持された前記初期設定情報を他システムのＩＯブリッジに複写する処理とを含むことを特徴とする。
【発明の効果】
【００１９】
本発明による第１の効果は、ＰｎＰに対応できないＩＯ空間をもつＩＯデバイスの二重化を実現できることである。その理由は、ＰｎＰに対応できないＩＯデバイスは本来システムに必ず存在しなければならないデバイスであるが、仮想的にこのようなデバイスを持たせることで、ハードウェア実体を物理的に切離しても、常に存在するデバイスとしてソフトウェアに見せること可能となるためである。その結果、ＰｎＰ制御ソフトウェアを用いることなく、ＢＩＯＳ（Basic Input/Output System ）の制御によって容易に冗長構成を構築することが可能となる。
【００２０】
本発明による第２の効果は、多段のＩＯブリッジ構成を持つシステムでのＰｎＰ制御において、汎用ＯＳのＰｎＰ制御ソフトウェアを利用できることである。その理由は、ＰｎＰ接続されるＩＯブリッジをシステム二重化前に仮想的に持つため、予め必要十分なメモリ資源をＢＩＯＳで確保できるためである。その結果、汎用ＯＳのＰｎＰ制御ソフトウェアを用いて、容易に冗長構成を構築することが可能となる。
【００２１】
本発明による第３の効果は、ソフトウエアからは二重化ハードウェアを意識する必要がなく、汎用のＯＳを使用できることである。その理由は、各システムのＣＰＵはロックステップ動作により同一動作を行っているために、ソフトウェアはＣＰＵの二重化を意識する必要がなく、またソフトウェアから見えるシステムのブリッジ構成は、ハードウェアの二重化前後で、各システム共、常に同一の構成であるためである。その結果、汎用ＯＳを用いて、容易に冗長構成を構築することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下に図面を参照しつつ本発明の実施の形態につき説明する。図１は本発明のフォールトトレラントシステムを構成するための単体のコンピュータシステムの構成である。ホストコントローラ２１には、ＣＰＵ１１とメモリ１２とが接続され、バス１００に接続される。このバス１００の配下に接続されるＩＯブリッジ２３は、ホットプラグ対応デバイス、またはホットプラグ対応デバイスを接続する別のＩＯブリッジ４０，４１を接続することができる。
【００２３】
バス（ＣＰＵ１１から単一のブリッジレベルを介して接続されるバス）１００は、ホストコントローラ２１やＩＯブリッジ２３を内包した１つのブリッジＬＳＩ２０内部に、仮想バスとして構成されている。更に、仮想バス１００には、擬似ＩＯブリッジ２５が接続されている。この疑似ＩＯブリッジ２５はブリッジＬＳＩ２０内部に構成される論理デバイスとなっており、ＩＯブリッジの実体に対する設定情報を保持する機能を有している。この設定情報は、少なくともデバイス識別情報やメモリ空間割り当て情報等のコンフィグレーション情報である。この設定情報の初期値は、予めＯＳにより設定されるものとする。
【００２４】
後に図２及び図３を用いて詳述するが、二重化を行うために、別のシステム（図２ではシステムＢ）と接続されることにより、この擬似ＩＯブリッジ２５は対応するＩＯブリッジの実体（図２ではＩＯブリッジ２３Ｂ）が接続されている時は、バス１００から切離されて見えなくなる。この二重化の際には、バス１００は別のシステム（Ｂ）と共有される。
【００２５】
また、レガシブリッジ２２及び疑似レガシブリッジ２４がバス１００に接続されており、またレガシブリッジ２２には、レガシバスリソース３０が接続されている。サイドバンド通信ライン１０１は、ホストコントローラ２１が、バス１００を介することなく、疑似ＩＯブリッジ２５や疑似レガシブリッジ２４に対するアクセスを可能とするものである。
【００２６】
従って二重化の際には、疑似ＩＯブリッジ２５に保持されている初期設定情報は、ホストコントローラ２１により、サイドバンド通信ライン１０１を介してアクセスされて、別のシステムのＩＯブリッジの実体に複写されるものとする。
【００２７】
図２は図１のシステムを２組のシステムＡ，Ｂとして二重化構成にしたシステムである。図２において、システムＡの構成要素には、図１の同等要素と同一なものは同一数字に“Ａ”を付して示しており、システムＢの構成要素には、図１の同等要素の数字に“Ｂ”を付して示している。
【００２８】
ブリッジＬＳＩ２０Ａ，２Ｂ０間の接続により、仮想バス１００を介して、各システムのＣＰＵ１１Ａ，１１Ｂは、ＩＯブリッジ２３Ａ，２３Ｂおよびその配下のＩＯブリッジ４０Ａ，４０Ｂと、ＩＯデバイス４１Ａ，Ａ１Ｂとにアクセスできる。
【００２９】
ここで、各システムＡ，ＢのＣＰＵ１１Ａ，１１Ｂ、メモリ１２Ａ，１２Ｂ、ホストコントローラ２１Ａ，２１Ｂは、同一クロックサイクルにおいて、両システム間で同一の処理動作を行うことで、１つのシステムのＣＰＵとして動作するようになっている（点線のサークルで囲む部分：他の図４，５でも同様とする）。
【００３０】
二重化構成として当該システムが動作中においては、ＩＯブリッジの実体に設定されている情報は変化するので、擬似ＩＯブリッジ２５Ａは、接続されているシステムＢのＩＯブリッジの実体２３Ｂに対するアクセスをスヌーピング（Snooping）して、このＩＯブリッジの実体２３Ｂに設定されるコンフィギュレーション情報を保持するよう動作しており、これにより、疑似ＩＯブリッジ２５Ａには、常に最新のＩＯブリッジの実体２３Ｂの設定情報が複写されることになる。
【００３１】
一方、擬似ＩＯブリッジ２５Ｂも、接続されているシステムＡのＩＯブリッジの実体２３Ａに対するアクセスをスヌーピングしており、ブリッジの実体２３Ａに設定される最新のコンフィギュレーション情報を保持するようになっている。
【００３２】
各擬似ＩＯブリッジ２５Ａ，２５Ｂに保持されているコンフィギュレーション情報は、ＩＯブリッジの実体が接続されてバス１００から見えなくても、ホストコントローラ２１Ａ，２１Ｂはサイドバンド通信１０１を通してアクセスできる、これにより各疑似ＩＯブリッジの設定情報を、ＩＯブリッジの実体にそれぞれ複写することは上述した。あいは、ＩＯブリッジへのリードアクセスに対しては、擬似ＩＯブリッジがレスポンスを返し、ライトアクセスは擬似ＩＯデバイスはスヌーピングをして、実体ＩＯブリッジにもアクセスを透過させることで、擬似ＩＯブリッジに保持されているコンフィギュレーション情報を実体ＩＯブリッジに複写させる操作を、簡便化させることもできる。
【００３３】
図１のシステムを用いて図２の二重化構成とするための動作について、図３のフローチャートを参照して説明する。先ず、電源投入時には（ステップＳ１）、図１の構成、すなわちシステムＡのみの構成である。この時点でのＩＯブリッジ２４Ａを含めたＩＯデバイス４１Ａへのメモリ資源割り当ては、ＯＳにおける基本ソフトウェアであるＢＩＯＳ（Basic Input/Output System ）によって行われる（ステップＳ２）。
【００３４】
この時、擬似ＩＯブリッジ２５Ａに対するメモリ空間割り当ては、図２の如く二重化した際に、ＩＯブリッジ実体２３Ｂの配下に接続されるデバイス、および将来、新規に追加接続されるであろうデバイスの要求するメモリ空間を含めて、十分な大きさを確保して設定されるものとする。この時割り当てられたメモリ空間はＯＳ起動後にもそのまま利用される。
【００３５】
図１の状態で、電源を投入後、ＯＳ起動を行ったシステムをシステムＡとし、この状態でシステムＢが接続されると（ステップＳ３）、図２の冗長構成となる。システムＡとＢとの接続により、図示せぬ接続コントローラからの割り込み通知によるＢＩＯＳコールによって（ステップＳ４）、ＢＩＯＳはシステムＡ，Ｂ間のバス１００の接続を行う（ステップＳ５）。この接続コントローラは、例えば、ＰＣＩ（Peripheral Component Interconnect ）ホットプラグコントローラのようなＩＯインタフェースの活線挿抜の制御を行うマザーボード上の回路であり、公知の回路であるので、その説明は省略する。
【００３６】
この時、システムＡの擬似ＩＯブリッジ２５Ａはバス１００から切離され、それに代わって、システムＢのＩＯブリッジの実体２３Ｂが接続されることになる（ステップＳ６）。そして、ホストコントローラはシステムＡの擬似ＩＯブリッジ２５Ａに設定されている設定値を、サイドバンド通信１０１より読み出して、システムＢのＩＯブリッジの実体２３Ｂに複写することで初期化する（ステップＳ７）。システムＢの疑似ＩＯブリッジとシステムＡのＩＯブリッジの実体についても、同様である。
【００３７】
この処理の後、ＯＳのＰｎＰ制御ソフトウェアが呼び出され（ステップＳ８）、ＩＯブリッジの構成変化はソフトウェア上から見えないため、ＩＯブリッジ配下に接続されるデバイスに対してのみ、サーチやメモリ資源の割り当てがＰｎＰ制御ソフトウェアによって行われる（ステップＳ９）。
【００３８】
また、ＰＣ／ＡＴ（Personal Computer/Advanced Technology ）アーキテクチャ（ＰＣ／ＡＴ互換機技術）では、レガシブリッジ２２Ａ，２２Ｂおよびレガシバスリソース３０Ａ，３０Ｂは、システムで単一である必要があることから、ホストコントローラ２１Ａ，２１Ｂの機能として、レガシブリッジ２２Ａ，２２Ｂおよびレガシバスリソース３０Ａ，３０Ｂへのアクセスが、いずれかのレガシブリッジ／レガシバスリソースに送られるように制御される。
【００３９】
レガシブリッジ／レガシバスリソースはシステムで単一であると共に、システムに必ず存在しなければならないデバイスであることから、擬似レガシブリッジ２４Ａ，２４Ｂは、実際のレガシブリッジの実体２２Ａ，２２Ｂ、レガシバスリソース３０Ａ，３０Ｂが故障等で使用できなくなったり、保守交換等で取り外された際に、ホストコントローラ２１Ａ，２１Ｂのアクセスを切り替えるまで、レガシブリッジ／レガシバスリソースの機能代行を果たすことが出来る。
【００４０】
このように、二重化システムにおいて、仮想バス１００に接続される互いに対応するＩＯブリッジを、それぞれのシステムで疑似ＩＯブリッジとして内蔵させて、システムが互いに物理的に切離されている場合には、疑似ＩＯブリッジが、他のシステムの実際のＩＯブリッジをエミュレートするようにすることができ、よって、ＩＯブリッジ自身での、いわゆるＰｎＰイベントが発生しないかのように振舞うことが可能になる。
【００４１】
更に述べると、接続・切離しの発生する仮想バス上で、仮想バスの接続・切離しに影響される実際のＩＯブリッジに対応する擬似ＩＯブリッジを提供することによって、標準のＰｎＰソフトウェアでは自由なメモリ空間割り当てが不可能であるＩＯブリッジの動的な接続・切り離しがＯＳから隠蔽される。そして、電源投入時からＩＯブリッジに対して十分なメモリ資源を割り当てることができるため、ＯＳやその標準ＰｎＰ制御ソフトウェアを改変することなく、ブリッジ配下に接続するデバイスに対して、必要なメモリ資源を割り当てることが可能になる。
【００４２】
次に、本発明の他の実施の形態について説明する。図１において、疑似ＩＯブリッジ２５は、標準ＰｎＰソフトウエアがメモリ空間を確保するための最低限の機能だけの実装でもよい。一方、実際のデバイスの全機能、あるいは一部機能を実装し、実デバイス機能の一時的な代行をさせることもできる。
【００４３】
図１においては、ホストコントローラ２１、ＩＯブリッジ２３、疑似ＩＯブリッジ２４，２５は１つのＬＳＩ２０に内蔵されているが、各々のＩＯブリッジ、疑似ＩＯブリッジをＬＳＩ２０の外部に別のＬＳＩとして接続してもよい。
【００４４】
図２においては、システムＡの擬似ＩＯブリッジ２５Ａに設定されている設定値を、サイドバンド通信１０１により読み出して、システムＢのＩＯブリッジの実体２３Ｂに複写することにより、初期化を行っているが、システムＡの擬似ＩＯブリッジ２５Ａを一時的にシステムＢのＩＯブリッジの実体２３Ｂとは異なるデバイスや、異なるファンクションに移す機能を設けて、バス１００経由で複写してもよい。
【００４５】
図４は本発明の更に他の実施の形態を示す図であり、図２と同等部分は同一符号により示している。図４において、システムＡには、システムＢのＩＯブリッジ２３Ｂの代行をする擬似ＩＯブリッジ２５Ａに加え、システムＢのＩＯブリッジ２３Ｂの次段に接続されるＩＯブリッジ４０Ｂの代行をする擬似ＩＯブリッジ３２Ａが接続されている。このように、ＩＯブリッジが多段に接続されるような構成において、システムの構成が予め限定されている場合には、擬似ＩＯブリッジを多段に接続されるようにすることも可能である。また、擬似ＩＯブリッジの機能をＩＯブリッジ毎にディセーブルする機能を追加することにより、図２のような構成に見せることも可能である。
【００４６】
図５はシステムの冗長化を３重化構成で実現している。システムＡの各々の擬似ＩＯブリッジ２５Ａ，２６Ａは、それぞれシステムＢ，ＣのＩＯブリッジの実体２３Ｂ，２３Ｃに対応する。同じく、システムＢの各々の擬似ＩＯブリッジ２５Ｂ，２６Ｂは、それぞれシステムＡ，ＣのＩＯブリッジの実体２３Ａ，２３Ｃに対応し、システムＣの各々の擬似ＩＯブリッジ２５Ｃ，２６Ｃは、それぞれシステムＡ，ＢのＩＯブリッジの実体２３Ａ，２３Ｂに対応する。
【００４７】
このように、各システムで持つ擬似ＩＯブリッジの数に応じて、システムの冗長度を高めることが可能となる。更に、各擬似ＩＯブリッジのディセーブル機能を追加することで、システム冗長度に応じた構成にすることも可能となる。
【００４８】
以上述べたように、本発明によるフォールトトレラントコンピュータシステムでは、汎用ＣＰＵと汎用ＯＳとの組み合わせによるシステム構成（ここでは、一般にＰＣ／ＡＴアーキテクチャ）を維持しながら、ロックステップ動作をするＣＰＵハードウェアを二重化し、また、ＩＯ制御部をソフトウェア制御による冗長化（ソフトウエアＲＡＩＤ１など）を行って、高信頼性コンピュータシステムを構築するこてができる。
【００４９】
更に、保守交換などで、冗長ＣＰＵや冗長ＩＯコントローラを切離す際に、システムの可用性を損なうことのないように、システム稼動中に動的に、論理的なバスあるいは物理的なバスを境界にして、汎用のＰｎＰ／Ｈｏｔ  Ｐｌｕｇ制御ソフトウェアを用いて、ハードウェア資源を接続して冗長化、あるいは冗長化されているハードウエア資源の切離しを可能とし、既存の汎用ＯＳ機能の改変なく高信頼性・高可用性のフォールトトレラントコンピュータシステムを実現することができることになる。
【００５０】
なお、図３に示した動作フローはコンピュータ読み取り可能なプログラム（ソフトウェア）で実現されることは明白である。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態のシステム構成図である。
【図２】図１の構成を用いて構築されたフォールトトレラントコンピュータシステムの例である。
【図３】図２の動作を説明するフローチャートである。
【図４】図１の構成を用いて構築されたフォールトトレラントコンピュータシステムの他の例である。
【図５】図１の構成を用いて構築されたフォールトトレラントコンピュータシステムの更に他の例である。
【符号の説明】
【００５２】
１１  ＣＰＵ
１２  メモリ
２０  ブリッジＬＳＩ
２１  ホストコントローラ
２２  レガシブリッジ
２３  ＩＯブリッジ（実体）
２４  疑似レガシブリッジ
２５  疑似ＩＯブリッジ
３０  レガシバスリソース
４０  ＩＯブリッジ
４１  ＩＯデバイス
【図１】
2006171819.tif 000003
【図２】
2006171819.tif 000004
【図３】
2006171819.tif 000005
【図４】
2006171819.tif 000006
【図５】
2006171819.tif 000007