(57)【要約】【課題】  ２つのシステムが同期して動作可能なフォールト・トレラント・コンピュータシステムを提供する。【解決手段】  フォールト・トレラント・コンピュータシステムは、１次系システムと２次系システムとを具備する。前記１次系システムは、第１ＣＰＵ（２Ａ）と、前記第１ＣＰＵに接続された第１ＦＴ制御部（１０Ａ）と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジ（６Ａ）とを具備する。前記２次系システムは、第２ＣＰＵ（２Ｂ）と、前記第２ＣＰＵに接続された第２ＦＴ制御部（１０Ｂ）と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジ（６Ｂ）とを具備する。前記第１ＦＴ制御部と前記第２ＦＴ制御部はリンク（８）により接続され、前記リンクを用いて前記１次系システムと前記２次系システムとは、前記第２サウス・ブリッジを除き同期して動作する。【選択図】  図２
2006178659.tif 000002
【特許請求の範囲】
【請求項１】
１次系システムと２次系システムとを具備し、
前記１次系システムは、第１ＣＰＵと、前記第１ＣＰＵに接続された第１ＦＴ制御部と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジとを具備し、
前記２次系システムは、第２ＣＰＵと、前記第２ＣＰＵに接続された第２ＦＴ制御部と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジとを具備し、
前記第１ＦＴ制御部と前記第２ＦＴ制御部はリンクにより接続され、
前記リンクを用いて前記１次系システムと前記２次系システムとは、前記第２サウス・ブリッジを除き同期して動作する
フォールト・トレラント・コンピュータシステム。
【請求項２】
請求項１に記載のフォールト・トレラント・コンピュータシ  ステムにおいて、
前記第１ＣＰＵと第２ＣＰＵは同じオペレーティング・システム上で動作し、
前記第２サウス・ブリッジは前記オペレーティング・システムから不可視である
フォールト・トレラント・コンピュータシステム。
【請求項３】
請求項１又は２に記載のフォールト・トレラント・コンピュータシ  ステムにおいて、
前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部を有し、
前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部を有し、
前記第１サウス・ブリッジは、ＰＩＣ制御部とＩＯＡＰＩＣ制御部を有し、
前記第１サウス・ブリッジの前記ＩＯＡＰＩＣ制御部のアドレス空間は、前記第１マスターＩＯＡＰＩＣ制御部のアドレス空間の一部と同じであり、前記第２サウス・ブリッジの前記ＩＯＡＰＩＣ制御部のアドレス空間は、前記第２マスターＩＯＡＰＩＣ制御部のアドレス空間の一部と同じである
フォールト・トレラント・コンピュータシステム。
【請求項４】
請求項１乃至３のいずれかに記載のフォールト・トレラント・コンピュータシ  ステムにおいて、
前記第１と第２のＦＴ制御部は、前記１次系と２次系のシステムの設定データとステータスを示すステータスデータを格納する第１と第２のステータス格納部をそれぞれ更に有し、
前記１次系システムがアクティブ・システムとして動作し、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作している間に、前記第１サウス・ブリッジに障害が発生したとき、前記第１ＦＴ制御部の前記第１ステータス格納部に格納された前記設定データ・ステータスデータは前記第２ＦＴ制御部の前記第２ステータス格納部に転送され、
その後、前記２次系システムがアクティブ・システムとして動作する
フォールト・トレラント・コンピュータシステム。
【請求項５】
請求項３に記載のフォールト・トレラント・コンピュータシ  ステムにおいて、
前記１次系システムは、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジと、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群とを更に備え、
前記２次系システムは、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジと、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群とを更に備え、
前記１次系システムがアクティブ・システムとして設定され、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作するように設定されているとき、オペレーティング・システムが動作していない起動時のレガシーモードにおいて、前記第１Ｉ／Ｏデバイス群のうちの１つからの第１割り込み要求は、前記第１マスターＩＯＡＰＩＣ制御部と前記第１サウス・ブリッジのＰＩＣ制御部を介して前記第１ＣＰＵに転送される
フォールト・トレラント・コンピュータシステム。
【請求項６】
請求項５に記載のフォールト・トレラント・コンピュータシステムにおいて、
前記第１割り込み要求は、前記リンクを介して前記第２ＦＴ制御部の前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送され、また、予め定められた遅延時間をもって前記第１ＦＴ制御部の前記第１マスターＩＯＡＰＩＣ制御部に転送される
フォールト・トレラント・コンピュータシステム。
【請求項７】
請求項５または６に記載のフォールト・トレラント・コンピュータシステムにおいて、
前記レガシーモード後の、前記オペレーティング・システムが動作している拡張モードにおいて、前記第１サウス・ブリッジからの第２割り込み要求は、前記第１ＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送され、また前記リンク、前記第２ＦＴ制御部の前記第２ＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送される
フォールト・トレラント・コンピュータシステム。
【請求項８】
請求項５乃至７のいずれかに記載のフォールト・トレラント・コンピュータシステムにおいて、
前記拡張モードにおいて、前記第１Ｉ／Ｏデバイス群のうちの１つからの第２割り込み要求は、前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送され、また前記リンクと前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送される
フォールト・トレラント・コンピュータシステム。
【請求項９】
請求項５乃至８のいずれかに記載のフォールト・トレラント・コンピュータシステムにおいて、
前記拡張モードにおいて、前記第２Ｉ／Ｏデバイス群のうちの１つからの第３割り込み要求は、前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送され、また前記リンクと前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送される
フォールト・トレラント・コンピュータシステム。
【請求項１０】
請求項５乃至９に記載のフォールト・トレラント・コンピュータシステムにおいて、
前記第１と第２のＦＴ制御部は、前記１次系と２次系の設定データとシステムのステータスを示すステータスデータを格納する第１と第２のステータス格納部をそれぞれ更に有し、
前記第１ＩＯＡＰＩＣ制御部は、前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスデータを前記第１ステータス格納部に格納し、
前記第２ＩＯＡＰＩＣ制御部は、前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスデータを前記第２ステータス格納部に格納する
フォールト・トレラント・コンピュータシステム。
【請求項１１】
請求項１乃至３と５乃至９のいずれかに記載のフォールト・トレラント・コンピュータシステムにおいて、
前記第１と第２のＦＴ制御部は、前記１次系と２次系のシステムの設定データとステータスを示すステータスデータを格納する第１と第２のステータス格納部をそれぞれ更に有し、
前記第１ＣＰＵと前記第２ＣＰＵが同期して動作している間に前記第１と第２のステータス格納部の格納データの不一致が検出されたとき、ＳＭＩ（システム・マネージメント・インターラプト）ハンドラーは、前記第１ＣＰＵと前記第２ＣＰＵの動作を停止させ、前記第１と第２のステータス格納部の前記設定データ／ステータスデータが一致するように、前記第１と第２のＦＴ制御部を制御する
フォールト・トレラント・コンピュータシステム。
【請求項１２】
１次系システムと２次系システムとを具備し、
前記１次系システムは、第１ＣＰＵと、前記第１ＣＰＵに接続された第１ＦＴ制御部と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジと、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジと、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群とを具備し、
前記２次系システムは、第２ＣＰＵと、前記第２ＣＰＵに接続された第２ＦＴ制御部と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジと、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジと、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群とを具備し、
前記第１ＦＴ制御部と前記第２ＦＴ制御部はリンクにより接続され、
前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部を有し、前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部を有し、
前記第１ＣＰＵと前記第２ＣＰＵの各々は、第１割り込みパスと第２割り込みパスを有し、
起動時に前記１次系システム内で生成された第１割り込みは、前記第１と第２のマスターＩＯＡＰＩＣと前記第１割り込みパスを経由して前記第１と第２のＣＰＵへ転送され、動作時に前記１次系システムまたは前記第２次系システム内で生成された第２割り込みは、前記第１と第２のマスターＩＯＡＰＩＣと前記第２割り込みパスを経由して前記第１と第２のＣＰＵへ転送される
フォールト・トレラント・コンピュータシステム。
【請求項１３】
１次系システムと２次系システムとを具備し、前記１次系システムは、第１ＣＰＵと、前記第１ＣＰＵに接続された第１ＦＴ制御部と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジと、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジと、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群とを具備し、前記２次系システムは、第２ＣＰＵと、前記第２ＣＰＵに接続された第２ＦＴ制御部と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジと、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジと、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群とを具備し、前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部を有し、前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部を有するフォールト・トレラント・コンピュータシステムにおいて、
前記１次系システムがアクティブ・システムとして設定され、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作するように設定されているとき、オペレーティング・システムが動作していない起動時のレガシーモードにおいて、第１Ｉ／Ｏデバイス群のうちの１つからの第１割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部に転送するステップと、
前記第１割り込み要求を前記リンクを介して前記第２ＦＴ制御部の前記第２マスターＩＯＡＰＩＣ制御部に転送するステップと、
前記第１割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部から前記第１サウス・ブリッジのＰＩＣ制御部を介して、再び前記第１マスターＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送するステップと、
前記第１割り込み要求を、前記第２マスターＩＯＡＰＩＣ制御部から前記第２サウス・ブリッジのＰＩＣ制御部を介して、再び前記第２マスターＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送するステップと
を具備する割り込み制御方法。
【請求項１４】
請求項１３に記載の割り込み制御方法において、
前記第１割り込み要求が前記第１マスターＩＯＡＰＩＣ制御部に届くタイミングと前記第２マスターＩＯＡＰＩＣ制御部に届くタイミングは同一である
割り込み制御方法。
【請求項１５】
請求項１３又は１４に記載の割り込み制御方法において、
前記レガシーモード後の、前記オペレーティング・システムが動作している拡張モードにおいて、前記第１サウス・ブリッジからの第２割り込み要求を、前記第１ＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送するステップと、
前記第２割り込み要求を前記リンク、前記第２ＦＴ制御部の前記第２ＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送するステップと
を更に具備する割り込み制御方法。
【請求項１６】
請求項１５に記載の割り込み制御方法において、
前記拡張モードにおいて、前記第２割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送するステップと、
前記第２割り込み要求を、前記リンクと前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送するステップと
を更に具備する割り込み制御方法。
【請求項１７】
請求項１３乃至１６のいずれかに記載の割り込み制御方法において、
前記拡張モードにおいて、前記第２Ｉ／Ｏデバイス群のうちの１つからの第３割り込み要求を、前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送するステップと、
前記第３割り込み要求を前記リンクと前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送するステップと
を更に具備する割り込み制御方法。
【請求項１８】
請求項１３乃至１７に記載の割り込み制御方法において、
前記第１割り込み要求以外の受信された前記割り込み要求とそのときの前記システムのステータスデータを前記第１ＦＴ制御部内の第１ステータス格納部に格納するステップと、
前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスデータを前記第２ＦＴ制御部内の第２ステータス格納部に格納するステップと
を更に具備する割り込み制御方法。
【請求項１９】
請求項１８に記載の割り込み制御方法において、
前記第１ＣＰＵと前記第２ＣＰＵが同期して動作している間に前記第１と第２のステータス格納部の格納データの不一致が検出されたとき、ＳＭＩ（システム・マネージメント・インターラプト）ハンドラーにより、前記第１ＣＰＵと前記第２ＣＰＵの動作を停止させるステップと、
前記第１と第２のステータス格納部の設定データと前記ステータスデータが一致するように、前記第１と第２のＦＴ制御部を制御するステップと、
前記第１と第２のステータス格納部の前記設定データと前期ステータスデータが一致したとき、前記第１ＣＰＵと前記第２ＣＰＵの動作を再開するステップと
を更に具備する割り込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラの二重化方式に関し、特に割り込み制御も二重化されているフォールト・トレラント・コンピュータシステムに関する。
【背景技術】
【０００２】
高度な信頼性を提供するコンピュータとして、フォールト・トレラント・コンピュータシステムが知られている。フォールト・トレラント・コンピュータでは、システムを構成する全てのハードウェア・モジュールが二重化され、または多重化されている。全てのハードウェア・モジュールは同期して動作し、たとえある部位で故障が発生したとしても、該ハードウェア・モジュールが切り離され、正常なハードウェア・モジュールで処理が続行される。これにより、耐故障性が向上している。
【０００３】
図１は、フォールト・トレラント・コンピュータシステムの構成の一例を示している。この例のフォールト・トレラント・コンピュータシステムはフォールト・トレラント制御部（以下、ＦＴ制御部と呼ぶ）を有し、ＣＰＵ、メモリ、Ｉ／Ｏデバイスといったハードウェア・モジュールが二重化されている。ＦＴ制御部は、ハードウェア・モジュールと接続され、同期動作処理、故障時の切り替え制御などを行う。
【０００４】
図１に示されるフォールト・トレラント・コンピュータシステムでは、ＣＰＵ（群）とメインメモリが一つのＣＰＵサブシステムを構成し、これと全く同じ構成を有する他方のＣＰＵサブシステムが存在する。これら２つのＣＯＵサブシステムは二重化されている。同様に、同一構成のＩ／Ｏデバイス（群）も二重化され、Ｉ／Ｏサブシステムを構成する。ＦＴ制御部はそれらの中心に位置し、各々のモジュール（ＣＰＵサブシステム、Ｉ／Ｏデバイス群）を制御し、ＣＰＵサブシステムの両系の同期動作の維持、故障の検出と、故障モジュールの切り離し制御を行う。
【０００５】
図１では２個のＣＰＵサブシステムが存在するが、故障サブシステムはＦＴ制御部により論理的に切り離され、１個のＣＰＵサブシステムとＩ／Ｏサブシステムで処理は継続される。一般的に、フォールト・トレラント・コンピュータは、ハードウェア的に二重化制御される部分と、ソフトウェア的に二重化制御される部分とに分かれる。例えば、ＣＰＵサブシステムは、ソフトウェアが実行される基盤であり、これらはハードウェア的に二重化制御される必要がある。このためＣＰＵサブシステム内でエラーが発生した場合、ＦＴ制御部が該当ＣＰＵ又はメモリをシステムから切り離し、正常動作しているＣＰＵ及びメモリに影響を及ぼさないように制御を行う。
【０００６】
一方、Ｉ／Ｏデバイスの故障の場合、それを検出したＦＴ制御部は、Ｉ／Ｏデバイスを制御しているソフトウェア（以下Ｉ／Ｏデバイス・ドライバと呼ぶ）に対し、エラー通知を行うことで、Ｉ／Ｏデバイスの切り替えをソフトウェア的に行うことが可能である。この場合、Ｉ／Ｏデバイス・ドライバは、故障したＩ／Ｏデバイスの使用を中止し、代わって二重化されている別のＩ／Ｏデバイスを使用することになる。これらはＩ／Ｏサブシステム内での、使用Ｉ／Ｏデバイスの切り替えとなる。
【０００７】
しかし、数あるＩ／Ｏデバイスのうちソフトウェア的に二重化されることができないものもある。例えば、割込みコントローラもその一つである。割り込みコントローラは、各Ｉ／Ｏデバイスからの割り込み要求を受け付け、それをＣＰＵへ知らせるのが主な役割である。Ｉ／Ｏデバイスからの割込みは、オペレーティング・システム（ＯＳ）によって、ＩＲＱと呼ばれる割込み番号に割り宛てられる。場合によっては、一つの割り込み番号に複数のＩ／Ｏデバイスが割り宛てられる場合もある。割り込みコントローラは、各デバイスからの割り込み要求を、設定された割込み番号に変換してＣＰＵへ通知する。このとき、ＣＰＵがある割り込み番号の割り込み処理を処理中の場合には、割り込みコントローラは、同じ番号の割込み要求を知らせないか、または、複数のデバイスからの割込みが失われないように管理する。従って、割り込みコントローラは、処理中の割込みの状態の保持などを内部で行っており、割り込みコントローラで障害が発生した場合、それら情報が全て失われることになる。このため、ソフトウェアにより割り込みコントローラを元の状態に復帰させることは不可能である。
【０００８】
さらに、現在のウインドウズ（Windows  （登録商標））やリナックスといったＯＳは、複数の割込みコントローラの存在を許しているが、動作中に割込みコントローラが増減することには対応していない。起動時に存在した割込みコントローラは、ＯＳがシャットダウンされるまで存在し、正常動作しつづける必要がある。
【０００９】
一般的に、現状のＰＣサーバなどではオープン化が進んでおり、安価なサーバを製造する場合、おのずとインテル（Intel  （登録商標））系ＣＰＵや、一般市場に安価に出回っている部材が選択されることになる。また、現在ＰＣサーバで主流であるウインドウズやリナックスなどのＯＳも、これらインテル系アーキテクチャーに立脚している。しかしながら、オープン系ＰＣサーバにおいて、安価にフォールト・トレラント・コンピュータを構成しようとする場合、以下のような多くの問題が存在する。
【００１０】
例えば、ＰＣサーバで採用されるほとんどのＩ／Ｏデバイスや、ウインドウズといったＯＳは、フォールト・トレラント・コンピュータシステムを意識して設計されておらず、デバイスが二重化されても、故障時のフェイル・オーバ処理には全く対応していない。インテル系ＰＣサーバは、サウス・ブリッジと呼ばれるレガシー（Ｌｅｇａｃｙ）機能が集約された特殊なＩ／Ｏデバイスに割込み制御が負わせている。特に、割込み制御はシステム動作の中核であるので、ＯＳが直接サウス・ブリッジにアクセスを行い、その動作の制御を行っている。このため、一度サウス・ブリッジに障害が発生すると、ＯＳは機能不全を起こし、結果的にシステム・ダウンを引き起こすことになる。また、オープン系で主に使用されるウインドウズといったＯＳに、フォールト・トレラント・コンピュータシステム用の改造を加えることは、現実的に不可能である。
上記と関連して、特開平９−２５１４４３号公報には、情報処理システムのプロセッサ障害回復処理方法が開示されている。この従来例では、情報処理システムは、複数のプロセッサを備え、少なくとも１個のプロセッサをシステム支援プロセッサとして動作させ、その他のプロセッサを命令プロセッサとして動作させるマルチプロセッサ構成の計算機システムである。プロセッサに固定障害が発生したとき、前記システム支援プロセッサの障害発生時、少なくとも１個の命令プロセッサ上で動作しているオペレーティングシステムに割り込みを発生し、前記オペレーティングシステムが、前記命令プロセッサにおいて障害が発生したことを認識し、前記命令プロセッサ上で前記割込み発生時に動作していたアプリケーションプログラムを異常終了させ、前記命令プロセッサをシステム支援プロセッサと交代させている。
【特許文献１】特開平９−２５１４４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の課題は、多重化、例えば二重化された２つのシステムが同期して動作可能なフォールト・トレラント・コンピュータシステムを提供することである。
本発明の他の課題は、システムの切替え時に割り込み要求が保持されることができるフォールト・トレラント・コンピュータシステムを提供することにある。
本発明の他の課題は、ＣＰＵからはサウス・ブリッジの故障を隠蔽することができるフォールト・トレラント・コンピュータシステムを提供することにある。
本発明の他の課題は、故障したＦＴ制御部が交換されたときでも、完全に同期状態に復帰させることができるフォールト・トレラント・コンピュータシステムを提供することにある。
本発明の他の課題は、フォールト・トレラント・コンピュータシステムを意識せずに作成された既存のＯＳ、既存のサウス・ブリッジを搭載したコンピュータシステム（サーバー）においても、割込みコントローラの二重化を実現することが可能となるフォールト・トレラント・コンピュータシステムを提供することにある。
【課題を解決するための手段】
【００１２】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と発明の実施の形態の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明の観点では、フォールト・トレラント・コンピュータシステムは、１次系システムと２次系システムとを具備する。前記１次系システムは、第１ＣＰＵ（２Ａ）と、前記第１ＣＰＵに接続された第１ＦＴ制御部（１０Ａ）と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジ（６Ａ）とを具備する。前記２次系システムは、第２ＣＰＵ（２Ｂ）と、前記第２ＣＰＵに接続された第２ＦＴ制御部（１０Ｂ）と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジ（６Ｂ）とを具備する。前記第１ＦＴ制御部と前記第２ＦＴ制御部はリンク（８）により接続され、前記リンクを用いて前記１次系システムと前記２次系システムとは、前記第２サウス・ブリッジを除き同期して動作する。これにより、第２サウス・ブリッジはコンピュータシステムに影響を与えない。
【００１４】
このとき、前記第１ＣＰＵと第２ＣＰＵは同じオペレーティング・システム上で動作し、前記第２サウス・ブリッジは前記オペレーティング・システムから不可視である。これにより、第２サウス・ブリッジは、前記オペレーティング・システムの影響を受けない。
【００１５】
また、前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部（１２Ａ）を有し、前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部（１２Ｂ）を有し、前記第１サウス・ブリッジは、ＰＩＣ制御部（３４）とＩＯＡＰＩＣ制御部（３６）を有してもよい。前記第１サウス・ブリッジの前記ＩＯＡＰＩＣ制御部のアドレス空間は、前記第１マスターＩＯＡＰＩＣ制御部のアドレス空間の一部と同じであり、前記第２サウス・ブリッジの前記ＩＯＡＰＩＣ制御部のアドレス空間は、前記第２マスターＩＯＡＰＩＣ制御部のアドレス空間の一部と同じである。この結果、各マスターＩＯＡＰＩＣにデータが設定されれば、そのデータは前記各サウス・ブリッジの前記ＩＯＡＰＩＣ制御部に反映されることができる。
【００１６】
また、前記第１と第２のＦＴ制御部は、前記１次系と２次系のシステムのステータスを示すステータスデータを格納する第１と第２のステータス格納部（２２）をそれぞれ更に有してもよい。この場合、前記１次系システムがアクティブ・システムとして動作し、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作している間に、前記第１サウス・ブリッジに障害が発生したとき、前記第１ＦＴ制御部の前記第１ステータス格納部に格納されたステータスデータは前記第２ＦＴ制御部の前記第２ステータス格納部に転送され、その後、前記２次系システムがアクティブ・システムとして動作する。これにより、ＣＰＵ間で同期がはずれたとき、同期を再確立することができ、また両システムの一方に障害が発生したとき、障害発生部を交換したのち、他方からデータを転送することにより、再び同期動作を行うことが可能となる。
【００１７】
また、前記１次系システムは、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジ（７Ａ）と、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群（５Ａ）とを更に備え、前記２次系システムは、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジ（７Ｂ）と、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群（５Ｂ）とを更に備えていてもよい。この場合、前記１次系システムがアクティブ・システムとして設定され、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作するように設定されているとき、オペレーティング・システムが動作していない起動時のレガシーモードにおいて、前記第１Ｉ／Ｏデバイス群のうちの１つからの第１割り込み要求は、前記第１マスターＩＯＡＰＩＣ制御部と前記第１サウス・ブリッジのＰＩＣ制御部を介して前記第１ＣＰＵに転送される。こうして、両システムで割り込み処理を実行することができる。
【００１８】
また、前記第１割り込み要求は、前記リンクを介して前記第２ＦＴ制御部の前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送され、また、予め定められた遅延時間をもって前記第１ＦＴ制御部の前記第１マスターＩＯＡＰＩＣ制御部に転送される。これにより、両システムで割り込み処理を同期して実行することができる。
また、前記レガシーモード後の、前記オペレーティング・システムが動作している拡張モードにおいて、前記第１サウス・ブリッジからの第２割り込み要求は、前記第１ＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送され、また前記リンク、前記第２ＦＴ制御部の前記第２ＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送される。
【００１９】
また、前記拡張モードにおいて、前記第１Ｉ／Ｏデバイス群のうちの１つからの第２割り込み要求は、前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送され、また前記リンクと前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送される。
また、前記拡張モードにおいて、前記第２Ｉ／Ｏデバイス群のうちの１つからの第３割り込み要求は、前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送され、また前記リンクと前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送される。
以上により、レガシーモードにおいても、拡張モードにおいて、割り込みが同期して処理されることができる。
【００２０】
また、前記第１と第２のＦＴ制御部は、前記１次系と２次系のシステムのステータスを示すステータスデータを格納する第１と第２のステータス格納部（２２）をそれぞれ更に有してもよい。前記第１ＩＯＡＰＩＣ制御部は、前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスを前記第１ステータス格納部に格納し、前記第２ＩＯＡＰＩＣ制御部は、前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスを前記第２ステータス格納部に格納する。これにより、両システムは、同一のステータスを保持することができる。
【００２１】
また、前記第１と第２のＦＴ制御部は、前記１次系と２次系のシステムのステータスを示すステータスデータを格納する第１と第２のステータス格納部（２２）をそれぞれ更に有してもよい。前記第１ＣＰＵと前記第２ＣＰＵが同期して動作している間に前記第１と第２のステータス格納部の格納データの不一致が検出されたとき、ＳＭＩ（システム・マネージメント・インターラプト）ハンドラーは、前記第１ＣＰＵと前記第２ＣＰＵの動作を停止させ、前記第１と第２のステータス格納部の格納データが一致するように、前記第１と第２のＦＴ制御部を制御する。これにより、同期はずれが発生したときにも、あるいは故障が発生したときにも、割り込み処理が正しく継承されることができる。
【００２２】
本発明の他の観点では、フォールト・トレラント・コンピュータシステムは、１次系システムと２次系システムとを具備する。前記１次系システムは、第１ＣＰＵ（２Ａ）と、前記第１ＣＰＵに接続された第１ＦＴ制御部（１０Ａ）と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジ（６Ａ）と、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジ（７Ａ）と、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群（５Ａ）とを具備する。前記２次系システムは、第２ＣＰＵ（２Ｂ）と、前記第２ＣＰＵに接続された第２ＦＴ制御部（１０Ｂ）と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジ（６Ｂ）と、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジ（７Ｂ）と、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群（５Ｂ）とを具備する。前記第１ＦＴ制御部と前記第２ＦＴ制御部はリンク（８）により接続され、前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部（１２Ａ）を有し、前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部（１２Ｂ）を有する。前記第１ＣＰＵと前記第２ＣＰＵの各々は、第１割り込みパスと第２割り込みパスを有する。起動時に前記１次系システム内で生成された第１割り込みは、前記第１と第２のマスターＩＯＡＰＩＣと前記第１割り込みパスを経由して前記第１と第２のＣＰＵへ転送され、動作時に前記１次系システムまたは前記第２次系システム内で生成された第２割り込みは、前記第１と第２のマスターＩＯＡＰＩＣと前記第２割り込みパスを経由して前記第１と第２のＣＰＵへ転送される。これにより、レガシーモードと拡張モードにおいて、割り込み要求の転送パスを変更することができる。
【００２３】
また、本発明の他の観点では、割り込み制御方法が提供される。フォールト・トレラント・コンピュータシステムは、１次系システムと２次系システムとを具備し、前記１次系システムは、第１ＣＰＵ（２Ａ）と、前記第１ＣＰＵに接続された第１ＦＴ制御部（１０Ａ）と、及び前記第１ＦＴ制御部に電気的かつ動作的に接続された第１サウス・ブリッジ（６Ａ）と、前記第１ＦＴ制御部に接続された第１ＰＣＩブリッジ（７Ａ）と、前記第１ＰＣＩブリッジに接続された第１Ｉ／Ｏデバイス群（５Ａ）とを具備し、前記２次系システムは、第２ＣＰＵ（２Ｂ）と、前記第２ＣＰＵに接続された第２ＦＴ制御部（１０Ｂ）と、及び前記第２ＦＴ制御部に電気的に接続され、かつ動作的に接続されていない第２サウス・ブリッジ（６Ｂ）と、前記第２ＦＴ制御部に接続された第２ＰＣＩブリッジ（７Ｂ）と、前記第２ＰＣＩブリッジに接続された第２Ｉ／Ｏデバイス群（５Ｂ）とを具備し、前記第１ＦＴ制御部は、第１マスターＩＯＡＰＩＣ制御部（１２Ａ）を有し、前記第２ＦＴ制御部は、第２マスターＩＯＡＰＩＣ制御部（１２Ｂ）を有する。このフォールト・トレラント・コンピュータシステムにおいて、割り込み制御方法は、前記１次系システムがアクティブ・システムとして設定され、前記２次系システムがスタンバイ・システムとして前記１次系システムと同期的に動作するように設定されているとき、オペレーティング・システムが動作していない起動時のレガシーモードにおいて、第１Ｉ／Ｏデバイス群のうちの１つからの第１割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部に転送することと、前記第１割り込み要求を前記リンクを介して前記第２ＦＴ制御部の前記第２マスターＩＯＡＰＩＣ制御部に転送することと、前記第１割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部から前記第１サウス・ブリッジのＰＩＣ制御部を介して、再び前記第１マスターＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送することと、前記第１割り込み要求を、前記第２マスターＩＯＡＰＩＣ制御部から前記第２サウス・ブリッジのＰＩＣ制御部を介して、再び前記第２マスターＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送することにより達成される。
また、前記第１割り込み要求が前記第１マスターＩＯＡＰＩＣ制御部に届くタイミングと前記第２マスターＩＯＡＰＩＣ制御部に届くタイミングは同一であることが望ましい。
【００２４】
また、割り込み制御方法は、前記レガシーモード後の、前記オペレーティング・システムが動作している拡張モードにおいて、前記第１サウス・ブリッジからの第２割り込み要求を、前記第１ＩＯＡＰＩＣ制御部から前記第１ＣＰＵに転送するステップと、前記第２割り込み要求を前記リンク、前記第２ＦＴ制御部の前記第２ＩＯＡＰＩＣ制御部から前記第２ＣＰＵに転送するステップとを更に具備してもよい。
【００２５】
また、割り込み制御方法は、前記拡張モードにおいて、前記第２割り込み要求を、前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送するステップと、前記第２割り込み要求を、前記リンクと前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送するステップとを更に具備してもよい。
また、割り込み制御方法は、前記拡張モードにおいて、前記第２Ｉ／Ｏデバイス群のうちの１つからの第３割り込み要求を、前記第２マスターＩＯＡＰＩＣ制御部を介して前記第２ＣＰＵに転送するステップと、前記第３割り込み要求を前記リンクと前記第１マスターＩＯＡＰＩＣ制御部を介して前記第１ＣＰＵに転送するステップとを更に具備してもよい。
【００２６】
また、割り込み制御方法は、前記第１割り込み要求以外の受信された前記割り込み要求とそのときの前記システムのステータスを前記第１ＦＴ制御部内の第１ステータス格納部に格納するステップと、前記第１割り込み要求以外の受信した前記割り込み要求とそのときの前記システムのステータスを前記第２ＦＴ制御部内の第２ステータス格納部に格納するステップとを更に具備してもよい。
【００２７】
また、割り込み制御方法は、前記第１ＣＰＵと前記第２ＣＰＵが同期して動作している間に前記第１と第２のステータス格納部の格納データの不一致が検出されたとき、ＳＭＩ（システム・マネージメント・インターラプト）ハンドラーにより、前記第１ＣＰＵと前記第２ＣＰＵの動作を停止させるステップと、前記第１と第２のステータス格納部の格納データが一致するように、前記第１と第２のＦＴ制御部を制御するステップと、前記第１と第２のステータス格納部の格納データが一致したとき、前記第１ＣＰＵと前記第２ＣＰＵの動作を再開するステップとを更に具備することが好ましい。
【発明の効果】
【００２８】
以上に示す通り、ＩＯＡＰＩＣを使用する拡張モードでは、レガシーモードと同様、サウス・ブリッジ６が故障した場合、ＳＭＩハンドラーがマスターＩＯＡＰＩＣ１２Ａと１２Ｂのコンフィグレーション/ステータス格納部２２を参照して、スタンバイ側のサウス・ブリッジ６のＩＯＡＰＩＣ３６に対し、全く同様の設定を行うことが可能となる。結果としてＣＰＵ２からみてサウス・ブリッジ６の故障を隠蔽することが可能である。
さらに、両モードにおいても、マスターＩＯＡＰＩＣ１２Ａと１２Ｂは常に同期して動作しているので、一方のＦＴ制御部１０自身が故障し、ＣＰＵサブシステムが論理的に切り離されたとしても、他方の正常動作しているＦＴ制御部１０のマスターＩＯＡＰＩＣ１２により正常動作を続けることが可能である。こうして、割り込みをロストすることもない。
さらに、故障したＦＴ制御部１０が交換された場合、交換後のモジュールのマスターＩＯＡＰＩＣ１２やサウス・ブリッジ６内のＩＯＡＰＩＣ３６の設定、状態は全て消えてしまっているが、システム・ソフトウェア（ＳＭＩハンドラー）により動作を続行しているシステム側のマスターＩＯＡＰＩＣ１２のコンフィグレーション/ステータス格納部２２を参照し、コピーすることにより、完全に同期状態に復帰させることが可能である。
以上に示す通り、ＦＴ制御部内にコンフィグレーション/ステータスを保持する格納部を備えたマスターＩＯＡＰＩＣ１２を実装し、割り込みのルーティング制御を行うことで、割込みコントローラを二重化することが可能である。これにより、フォールト・トレラント・コンピュータシステムを意識せずに作成された既存のＯＳ、既存のサウス・ブリッジ６を搭載したサーバにおいても、割込みコントローラの二重化を実現することが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下に、添付図面を参照して、本発明のフォールト・トレラント・コンピュータシステムについて詳細に説明する。本発明のフォールト・トレラント・コンピュータシステムは、例えば、サーバーシステムに適用可能である。
【００３０】
図２は、本発明の実施形態によるフォールト・トレラント・コンピュータシステムの基本構成を示すブロック図である。図２に示されるように、本発明のフォールト・トレラント・コンピュータシステムは、同じ構成を有する２つ系、即ち１次系システム＃１と２次系システム＃２とを有している。１次系システムと２次系システムの各々は、ＦＴ制御部１０（１０Ａ、１０Ｂ）、ＣＰＵ２（２Ａ、２Ｂ）、メインメモリ３（３Ａ，３Ｂ）、サウス・ブリッジ６（６Ａ，６Ｂ）、ＰＣＩブリッジ７（７Ａ，７Ｂ）、Ｉ／Ｏデバイス５（５−１Ａ，５−２Ａ，または５−１Ｂ、５−２Ｂ）とを有している。尚、上記で添え字Ａは１次系を示し、Ｂは２次系を示す。ＦＴ制御部１０Ａと１０ＢはＦＴリンク８により接続されている。この実施形態では、コントローラが二重化されている。本発明の割込みコントローラは、フォールト・トレラント（Ｆ）制御部の中に内蔵されている。
【００３１】
故障個所の交換を可能とするため、１次系システムと２次系システムは別々のボードで構成されていることが好ましい。また、ＣＰＵ２とメインメモリ３を有するＣＰＵサブシステムとＩ／Ｏサブシステムも分離できるよう、４枚以上のボードで構成するのが理想的である。２つのＣＰＵサブシステムの各々は、ＣＰＵ群（この実施形態では１つのＣＰＵ２）、メインメモリ３、及び割込みコントローラを含むＦＴ制御部１０の上半分を有する。２つのＣＰＵサブシステムはクロックも含め完全に同期して動作する。
【００３２】
Ｉ／Ｏサブシステムは、二重化されたＩ／Ｏデバイス群５と、ＰＣＩブリッジ７と、サウス・ブリッジ６とを備えている。Ｉ／Ｏサブシステムは、１次系/２次系とも全く同じハードウェア構成を有している。ＰＣＩブリッジ７は、各Ｉ／Ｏデバイス５とＦＴ制御部１０を接続している。
【００３３】
図４は、二重化されていない、一般的なＰＣサーバの割込みルーティングを図式的に示している。各Ｉ／Ｏデバイス群（ここではＰＣＩデバイス）は最大４本（＃Ａ〜＃Ｄ）の割込み線を持つことが可能であり、これらは一旦ＰＣＩブリッジ７に接続される。ＰＣＩブリッジ７は、複数の割込み線をワイアードオアに接続し、やはり４本の割込み線としてサウス・ブリッジ６のＰＩＣまたはＩＯＡＰＩＣに接続される。サウス・ブリッジ６には通常、レガシー用のＰＩＣと拡張用のＩＯＡＰＩＣが存在する。現状のＰＣサーバは、起動時にはレガシー状態で起動されることになっており、この際、割込みコントローラとしてＰＩＣが使用される。また、ウインドウズやリナックスなどのＯＳが動作する際は、ＰＩＣの動作は停止され、より高機能のＩＯＡＰＩＣが使用される。
【００３４】
図３は、図２に示されるシステムでのＰＣＩ階層構造を図式的に示す。全てのアクセス可能なデバイスは、ＰＣＩバス仕様に倣い、ＰＣＩバス番号と、ＰＣＩデバイス番号、ＰＣＩ関数番号を持ち、ＣＰＵを頂点とした階層構造を有する。サウス・ブリッジ６だけは、全く同じデバイス番号を持つが、通常時は片方のみが使用される。以後、使用されるサウス・ブリッジ６はアクティブ・サウス・ブリッジ６と呼ばれる。他方のサウス・ブリッジ６は、スタンバイ・サウス・ブリッジ６と呼ばれる。スタンバイ・サウス・ブリッジ６は、ＦＴ制御部１０から論理的に切り離されており、フェイル・オーバーが発生するまで、一切のアクセスは不可能である。
【００３５】
サウス・ブリッジ６は、一般にレガシーデバイスと呼ばれる、シリアルポート、パラレルポート、マウス、キーボード、タイマ、時計等（いずれも図示せず）のシステムで唯一存在するデバイスを備え、あるいは接続されている。これらレガシーデバイスは、システム上で固定のアドレスを有し、システム上に２個存在することは出来ない。また、ＯＳからも直接アクセスされることが多い。サウス・ブリッジ６は、他のＩ／Ｏデバイス５とは異なる割り込み制御方法を採り、他のＩ／Ｏデバイス５とは異なり、ソフトウェアによる二重化は不可能である。従って、本発明のフォールト・トレラント・コンピュータシステムでも、動作しているのは、１次系と２次系の一方のみである。他方は、動作中のサウス・ブリッジ６が障害を起こすまで、スタンバイ状態として、ＯＳ側からは不可視状態にされる。
【００３６】
サウス・ブリッジ６は、レガシー割り込み制御部としてのＰＩＣ（プログラマブル・インターラプト・コントローラ）３４、割込みコントローラ（ＩＯ  アドバンスト・プログラマブル・インターラプト・コントローラ）３６、およびルーティングロジック３２とを備えている。ＰＩＣ３４は、起動時のレガシーモードにおいて、これらレガシーデバイスの割込み制御を行う。ＩＯＡＰＩＣ３６は、一般的にインテル系ＰＣサーバで使用されるサウス・ブリッジ６に組み込まれ、サウス／ブリッジに関連する割り込み要求を統括する。ルーティングロジック３２は、内部で発生した割り込み要求あるいは外部からの割り込み要求をＰＩＣ３４あるいはＩＯＡＰＩＣ３６に出力する。
【００３７】
ＦＴリンク８は、１次系システムのＦＴ制御部＃１  １０Ａと２次系システムのＦＴ制御部＃２  １０Ｂとを接続する。ＦＴリンク８は、１次系システムから、２次系システムへの、及び２次系システムから１次系システムへのＩ／Ｏデバイスへのアクセスに使用される。これにより、１次系システムのＦＴ制御部＃１  １０Ａは、ＰＣＩブリッジ＃１  ７Ａ及びその配下のＩ／Ｏデバイス５Ａに対するアクセス・リクエストのみを２次系システムのＦＴ制御部＃２  １０Ｂに転送する。同様に２次系システムのＦＴ制御部＃２  １０Ｂは、ＰＣＩブリッジ＃２  ７Ｂ及びその配下のＩ／Ｏデバイス５Ｂに対するアクセスを受け持り、それらへのアクセス・リクエストのみを１次系システムのＦＴ制御部＃２  １０Ａに転送する。したがって、両系の同期チェック範囲も、上記範囲に限られる。即ち、本発明のコンピュータシステムでは、ＦＴ制御部１０による同期チェックは分散的に行われることになる。
【００３８】
ＦＴ制御部１０は、エラー検出部１１、マスターＩＯＡＰＩＣ１２、メッセージコンバーター１４、ＦＴコンパレーター１５、ゲートコントローラ１６、ルーター１８、タイマー１９を備えている。加えて、ＦＴ制御部１０は、図示しないが、１次系と２次系のＣＰＵサブシステムの同期動作を保証するための同期動作保証制御部を有している。
【００３９】
エラー検出器１１は、ＣＰＵあるいはＩ／Ｏデバイスからのリクエストを比較し、内部あるいはＩ／Ｏサブシステム等でのエラーを検出する。エラーが検出されたとき、ＳＭＩ（システム・マネージメント・インターラプト）を生成する。マスターＩＯＡＰＩＣ１２は、ＣＰＵ２がオペレーティング・システム上で動作している拡張モードにおいて割り込み要求を統括し、レガシーモードのとき、Ｉ／Ｏサブシステムからの割り込み要求をサウス・ブリッジ６へ転送する。また、レガシーモードにおいて、サウス・ブリッジ６からの割り込み要求をＣＰＵ２にスルーで転送する。メッセージコンバータ１４は、Ｉ／Ｏサブシステムからの割り込み要求を割り込みメッセージに変換する。
【００４０】
ゲート・コントローラ１６は、マスターＩＯＡＰＩＣ１２からの割り込み要求をサウス・ブリッジ６に接続し、サウス・ブリッジ６からの割り込み要求をマスターＩＯＡＰＩＣ１２に接続する。ルーター１８は、ＣＰＵからのデータ／コマンドをメインメモリ３あるいはＩ／Ｏサブシステムに転送し、また、Ｉ／Ｏサブシステムからのデータ／コマンド及び割り込み要求をメインメモリあるいはＣＰＵに転送する。また、１次系システムのＦＴ制御部１０Ａのルーター１８Ａは、ＦＴリンク８を介して２次系システムのＦＴ制御部１０ＢのＩＯＡＰＩＣ１２Ｂに割り込み要求を転送する。反対も同様である。なお、他系のマスターＩＯＡＰＩＣ１２への通知はＦＴリンク８を介すことになり、タイムラグが発生することになる。しかしながら、そのタイムラグを考慮して予め決められた時間の遅延後、上記割り込みメッセージは自系マスターＩＯＡＰＩＣ１２へ通知されるので、実質的に同一のタイミングで割り込みメッセージが通知されることができる。
【００４１】
ＦＴ制御部１０は、更に、モジュールの物理的な位置、即ち当該ＦＴ制御部１０が１次系システム内にあるのか２次系システム内にあるのかを示す外部ピン（図示せず）と、アクティブ・サウス・ブリッジ６のアドレス位置を示すアクティブ・サウス・ブリッジ・レジスタ（図示せず）を備えている。ＦＴコンパレータ１５は、両者の値を比較し、ＣＰＵ２からの設定コマンドをルーター１８を介してアクティブ・サウス・ブリッジ６に転送する。
【００４２】
図７は、本発明のコンピュータシステムのシステム・アドレス・マップの例を示している。マスターＩＯＡＰＩＣ１２は、例としてＦＥＣ０＿００００ｈ〜ＦＥＣ７＿ＦＦＦＦｈにマップされ、設定などもこの空間を介して行われる。サウス・ブリッジ６内のＩＯＡＰＩＣ３６のアドレス空間はマスターＩＯＡＰＩＣ１２のアドレス空間の一部と重なっている。こうして、本発明のコンピュータシステムでは、アクティブ・サウス・ブリッジ６内のＩＯＡＰＩＣ３６はＣＰＵ２あるいはＯＳから隠蔽されて不可視状態にある。しかしながら、アクティブ・サウス・ブリッジ６内のＩＯＡＰＩＣ３６の設定を行うことは必要であるので、サウス・ブリッジ６内のＩＯＡＰＩＣのアドレス空間は、マスターＩＯＡＰＩＣ１２のアドレス空間により覆い被されている。
【００４３】
図８に示されるように、ＣＰＵから発行された設定コマンドは、ルーター１８によりマスターＩＯＡＰＩＣ１２へ転送され、マスターＩＯＡＰＩＣ１２に設定される。また、設定コマンドののうち、サウス・ブリッジ６のＩＯＡＰＩＣ３６と重複する部分に関しては、ルーター１８によりＦＴコンパレーター１５に転送される。ＦＴコンパレータ１５は、設定コマンドとモジュールの物理的な位置データとアクティブ・サウス・ブリッジ・レジスタのデータの組とを比較することにより、アクティブ・サウス・ブリッジ６へ設定コマンドをフォワードする。これにより、サウス・ブリッジ６のＩＯＡＰＩＣ３６の設定、その状態が等価的にマスターＩＯＡＰＩＣ１２上に現れることになる。こうして、マスターＩＯＡＰＩＣ１２とサウス・ブリッジ６のＩＯＡＰＩＣ３６の重複する部分の設定は、マスターＩＯＡＰＩＣ１２だけでなくサウス・ブリッジＩＯＡＰＩＣ３６にも同様の設定が行われることになる。つまり、全く同じ設定のＩＯＡＰＩＣのコピーを作り出していることになる。
【００４４】
マスターＩＯＡＰＩＣ１２は、マスター割り込みコントローラであり、システム全体の割り込みを統括する。マスターＩＯＡＰＩＣ１２は、拡張性をもった割込みコントローラで、割込み要因が発生した場合、ＣＰＵ２に対し、メッセージの形で割込みの番号も一緒に通知する。両系のＦＴ制御部１０Ａ、１０Ｂ内の２個のマスター割り込みコントローラ１２Ａと１２Ｂは、同期動作保証制御部により完全に同期して動作する。ＰＣＩブリッジ７Ａと７Ｂ側からの割込み線＃Ａ〜＃Ｄ上の割り込みは、メッセージコンバーター１４によりＩＮＴ＃ｘアサート・メッセージ及びＩＮＴ＃ｘデアサート・メッセージに変換され、ルーター１８により両系のＩＯＡＰＩＣ１２Ａと１２Ｂに同時に通知される。
【００４５】
ＰＩＣ３４とＩＯＡＰＩＣ１２と３６は以下の点で相違する。即ち、ＰＩＣ３４は過去の資産を継承するためのレガシー割込みコントローラであり、割込み要因が発生した場合、ＣＰＵ２へ一本の割込み線（ＩＮＴＲ）を使用して、ＣＰＵ２へ割込み要求を出力する。ＩＮＴＲ信号を受け取ったＣＰＵ２は、インターラプト・アクノリッジ・コマンドをＰＣＩに対して発行し、割り込みの番号を知る。一方、ＩＯＡＰＩＣ１２と３６は、さらに拡張性をもった割込みコントローラであり、割込み要因が発生した場合、ＣＰＵ２に対し、メッセージの形で割込みの番号も一緒に通知する。以上の違いが存在するので、ＣＰＵ２への割込み通知は各系で２系統存在することになる。
現在のシステムでは、上記のように、ＯＳが起動されるまでのレガシーモードではＰＩＣ３４が使用され、ＯＳの起動後の拡張モードではＩＯＡＰＩＣ１２と３６が使用される。こうして、割り込み要求パスは、切り替えが行われている。
【００４６】
図５は、本発明の割込みコントローラ二重化方式を採用したフォールト・トレラント・コンピュータシステムの割込みルーティングを図式的に示している。あくまでも既存のオープン系デバイス、ＯＳを使用しているので、上述した動作と矛盾なく二重化してある。ＦＴ制御部１０のマスターＩＯＡＰＩＣ１２は、ＯＳから可視のシステムであり、唯一の割り込みコントローラである。両系のＦＴ制御部１０内の２個のマスター割り込みコントローラ１２は完全に同期して動作する。
【００４７】
上記のように、ＦＴ制御部１０にはアクティブ/スタンバイ・ゲート・コントローラ１６が存在している。スタンバイ側では、サウス・ブリッジ６は電気的にＦＴ制御部１０に接続されているが、ＦＴ制御部１０との接続が論理的に切り離されている。この結果、スタンバイ側のサウス・ブリッジ６への一切の割込み通知が遮断される。
【００４８】
図６は、ＦＴ制御部とサウス・ブリッジの割り込み要求転送構成を示す図である。サウス・ブリッジ６内は一般的な構成となっており、外部及び内部デバイスからの割込み要求を受け付け、モードによってＰＩＣまたＩＯＡＰＩＣに通知先を変更する割り込みルーティングロジック３２と、レガシーモード時の割込みコントローラであるＰＩＣ３４、拡張時の割込みコントローラであるＩＯＡＰＩＣ３６とを備えている。
ＦＴ制御部１０のＩＯＡＰＩＣ１２は、ＩＯＡＰＩＣ２４と、マスターＩＯＡＰＩＣ１２の全ての設定、状態を知ることができるコンフィグレーション/ステータス格納部２２（レジスタ群）と、ＰＣＩブリッジ７側からＩＮＴ＃ｘメッセージを受け付け、モードによりＩＮＴ＃ｘメッセージをＩＯＡＰＩＣ２４へ、あるいはゲート・コントローラ１６を介してサウス・ブリッジ６へ転送するルーティングロジック２０とを備えている。
【００４９】
ステータス格納部２２は、故障したＦＴモジュールを交換し、新たなモジュールが接続されて二重化される際、その時点の割込みコントローラの状態を、他系に完全に再現可能な情報を持っており、フェイルオーバー時にシステム・ソフトウェアから参照される。格納部２２は、
・ＩＯＡＰＩＣに対する設定情報
・ＦＴ制御部１０内ＩＯＡＰＩＣ制御ロジックの内部ステータス（バイナリ状態であり、システム・ソフトウェアがこの値を見て何かを判断するわけではなく、純粋に内部状態をコピーするために使用される）
・ＰＩＣに対する設定情報（ＦＴ制御部１０はＰＩＣ機能は持っていないが、フェイルオーバー時のサウス・ブリッジ６への設定に使用）
・ＦＴ制御部内ＰＩＣ制御ロジックの内部ステータス（バイナリー状態）
・その他、割込みコントローラに対する設定情報（ＦＴ制御部独自のレジスタ設定情報など）
・その他、割込みコントローラロジックの内部ステータス（バイナリー状態）
を保持している。格納部２２の内容の全てを、交換された新モジュールの格納部２２へコピーすることで、マスターＩＯＡＰＩＣ１２はコピー元と全く同じ設定、動作状況となり、完全に同期して動作することが可能となる。
【００５０】
尚、タイマー１９により周期的にエラー検出部１１がアクティブとされ、両系のステータス格納部２２が比較されてもよい。この比較の結果、不一致が検出されたときには、ＳＭＩハンドラーに知らされる。ＳＭＩハンドラーは、ＣＰＵ２の動作を停止し、両系のステータス格納部２２の格納データが同じになるように、データの転送処理をする。その後、ＳＭＩハンドラーは、ＣＰＵ２の動作を再開する。こうして、累積による誤差を所定時間ごとに除くことができる。また、所定時間ごとに、あるいはＣＰＵ２またはＩ／Ｏデバイス５からのリクエストに応答して、チェックしてサウス・ブリッジ６あるいはその他の個所に障害の発生を検出した場合、ＳＭＩハンドラーに知らされる。ＳＭＩハンドラーは、ＣＰＵ２の動作を停止する。故障個所のボードが交換された後、ＳＭＩハンドラーは、両系のステータス格納部２２の格納データが同じになるように、データの転送処理をする。その後、ＳＭＩハンドラーは、ＣＰＵ２の動作を再開する。
【００５１】
レガシーモード時には、サウス・ブリッジ６内のＰＩＣ３４がシステムで唯一の割込みコントローラとして利用されることができるように、ＰＣＩブリッジ７からのＩＮＴ＃ｘメッセージを割込み信号線＃Ａ〜＃Ｄに戻してサウス・ブリッジ６に接続するための出力が存在する。ＣＰＵ２への割り込みは、マスターＩＯＡＰＩＣが行う。サウス・ブリッジ６のＰＩＣ３４からの割り込み要求ＩＮＴＲと、ＩＯＡＰＩＣ３６からの割込みメッセージはアクティブ/スタンバイ・ゲート・コントローラ１６を介してマスターＩＯＡＰＩＣ１２に接続される。こうして、マスターＩＯＡＰＩＣ１２は、サウス・ブリッジ６の割り込み要求ＩＮＴＲをスルーによりＣＰＵ２に転送するＩＮＴＲ割り込み線と、マスターＩＯＡＰＩＣ１２で処理される割込みメッセージの出力が存在し、共にＣＰＵ２に接続されている。
【００５２】
レガシーモードの後の拡張モードでは
ＣＰＵ２との割込みに関する授受は全てマスターＩＯＡＰＩＣ１２により行われる。マスターＩＯＡＰＩＣ１２は、拡張モード時にはアクティブ・サウス・ブリッジ６の割り込みと、ＰＣＩブリッジ７からの割り込みを統括して管理する。このため、マスターＩＯＡＰＩＣ１２の一部はアクティブ・サウス・ブリッジのＩＯＡＰＩＣ３６が、そのまま透過的に見える形となる。このため各サウス・ブリッジ６内のＩＯＡＰＩＣ３６は、システムからは不可視状態にされる。これは、サウス・ブリッジ６が故障するケースを考慮したものである。アクティブ・サウス・ブリッジ６が故障した場合、マスターＩＯＡＰＩＣ１２の割込み制御は、直ちにスタンバイ・サウス・ブリッジ６のＩＯＡＰＩＣ３６に置換される。このため、ＯＳ側からは特にＩＯＡＰＩＣの増減は発生しない。
【００５３】
次に、図２に示される本発明のコンピュータシステムにおいて、１次系側のサウス・ブリッジ６をアクティブ・サウス・ブリッジと呼び、通常処理で使用されるサウス・ブリッジと仮定する。
【００５４】
まず、レガシーモードでの動作を説明する。レガシーモードでは、ＰＩＣ３４が割り込み制御の中心となる。ＰＩＣ３４を使用する場合、システムで唯一のＰＩＣ３４が全てのデバイスの割り込みを制御することになる。ＦＴ制御部１０は、ＰＣＩブリッジ７下のＩ／Ｏデバイス５−１，５−２からの割込み状態を監視することができるが、サウス・ブリッジ６内のデバイスの状態を把握することは不可能である。このため、結果として、ＰＩＣ３４はアクティブ・サウス・ブリッジ６内のＰＩＣを使うことになる。
【００５５】
図１０において、ＰＣＩデバイス＃１ｂから割込み信号がアサートされる。このとき、割り込み要求は、ＰＣＩブリッジ＃１  ７Ａを介してＦＴ制御部１０Ａのメッセージコンバーター１４Ａに通知される（ステップＳ１）。メッセージコンバーター１４Ａは、信号線の状態、即ち割り込み要求をＩＮＴ＃ｘアサート・メッセージに変換し、両方のマスターＩＯＡＰＩＣ１２Ａと１２Ｂに通知を行う（ステップＳ２）。ＦＴ制御部＃２  １０ＢへはＦＴリンク８を介して通知され、ＦＴ制御部＃１  １０Ａは、前もって設定された遅延を経てからマスターＩＯＡＰＩＣ１２Ａに通知される。これにより両系のマスターＩＯＡＰＩＣ１２Ａと１２Ｂは同時に割込み通知を受け取り、完全に同期して動作することが可能である。
【００５６】
両マスターＩＯＡＰＩＣ１２Ａと１２Ｂは、さらにゲート・コントローラ１６Ａと１６Ｂに対し、ＩＮＴ＃ｘアサート・メッセージを送る（ステップＳ３）。ゲート・コントローラ１６Ａは、ボード位置ピンとアクティブ・サウス・ブリッジ・レジスタの値に基づいて、自身がアクティブだと判断すると、ＩＮＴ＃ｘアサート・メッセージを割込み信号線ＩＮＴ＃ｘに戻し、サウス・ブリッジ６に通知する（ステップＳ４）。一般的に、サウス・ブリッジ６は、図６に示される構成を有しており、外部から入力された割込み要因はルーティングロジック３２に供給される。なお、シリアルポート、パラレルポート、マウス、キーボード、タイマ、時計などの、もともとサウス・ブリッジ６内にある内部デバイスの割り込みも同様にルーティングロジック３２に供給される。この場合、割込み通知はここからのスタートとなる。
【００５７】
サウス・ブリッジ６内のルーティングロジック３２は、レガシーモードにあるので、割り込みをＰＩＣ３４に通知する。ＰＩＣ３４は、ＩＮＴＲ信号として割込み線をアサートする（ステップＳ５）。ゲート・コントローラ１６Ｓは、ＩＮＴＲ信号をＩＮＴＲアサート・メッセージに変換して、双方のマスターＩＯＡＰＩＣ１２Ａと１２Ｂに通知を行う。この時、スタンバイ側のマスターＩＯＡＰＩＣ１２Ｂへの通知はＦＴリンク８を介して行われるが、実際には先のＩＮＴ＃ｘメッセージと同じパスを通過するため、ＩＮＴＲアサート・メッセージは両方のマスターＩＯＡＰＩＣ１２Ａと１２Ｂに同時に通知される（ステップＳ６）。両方のマスターＩＯＡＰＩＣ１２Ａと１２Ｂは、ＩＮＴＲアサート・メッセージを受け取ると、ＣＰＵ２に対して同時にＩＮＴＲをアサートする（ステップＳ７）。
【００５８】
レガシーモードでアクティブ・サウス・ブリッジ６が故障した場合、サウス・ブリッジ６の故障を示す割り込みが両ＣＰＵ２に通知され、ＦＴ制御用のシステム・ソフトウェアがコールされる。このシステム・ソフトウェアの呼び出しのためには、最高レベルの割込みが使用され、例えば、インテル系ＣＰＵではシステム・マネージメント・インターラプト（ＳＭＩ）が使用される。これにより、ＣＰＵ２上で実行されている処理は全て一旦止められる。この停止の間に、ＳＭＩハンドラーは、アクティブ・サウス・ブリッジ６の設定を全てスタンバイ側にコピーし、アクティブ・サウス・ブリッジ・レジスタの値を入れ替える。ＳＭＩハンドラーの処理の終了後、一旦停止させられたＣＰＵ２の処理が再開される。このとき、サウス・ブリッジ６が入れ替わったことは完全に隠蔽されている。
【００５９】
次に拡張モード、つまりＩＯＡＰＩＣが使用される場合を説明する。図９は、各種デバイスと割込み番号（ＩＲＱ）との対応を示すテーブルである。ＩＯＡＰＩＣは、割り込み要因を受け付けるとそのＩＲＱを直接ＣＰＵへ通知するため、この様なテーブルがＩＯＡＰＩＣ内に設けられている。サウス・ブリッジ６のＩＲＱテーブルは一般的な設定で、特にインテル系ＣＰＵシステムではＩＲＱ０〜ＩＲＱ１５は固定的に決まっている。サウス・ブリッジ６のＩＲＱテーブルの設定は実際にはマスターＩＯＡＰＩＣ１２に対してなされるが、図８に示されるように、ルーター１８により同じ設定コマンドがアクティブ・サウス・ブリッジ６に送られるので、結果的に両者は同じ設定となる。アクティブ・サウス・ブリッジ６から発行された割込みメッセージは、そのままマスターＩＯＡＰＩＣ１２の割込み受け付けに置き換えられる。また、ＰＣＩブリッジ７からの割り込みは、例としてＩＲＱ２０〜２７に割り付けられる。
【００６０】
図１１は、ＩＯＡＰＩＣが使用される場合の動作を示している。Ｉ／Ｏデバイス＃２ｂ  ５−２Ａが、ＩＮＴＲ信号をアサートしたと仮定する（ステップＳ１）。割り込みは、ＰＣＩブリッジ＃２  7Ｂを経由してＦＴ制御部＃２  １０Ｂに割込み信号、仮にＩＮＴ＃Cで通知されたとする。これを受け取ったメッセージコンバーター1１４Ｂは、両系のマスターＩＯＡＰＩＣ１２Ａと１２Ｂに対し、ＩＮＴ＃ｃアサート・メッセージを通知する（ステップＳ２）。マスターＩＯＡＰＩＣ１２Ａと１２Ｂは、ＰＣＩブリッジ＃２  ７ＢからのＩＮＴ＃ｃをＩＲＱ２６と判断し、ＣＰＵ２へ割込みメッセージを通知する（ステップＳ３）。詳細は略すが、サウス・ブリッジ６からの割り込みも同様の経路を通過する。
【図面の簡単な説明】
【００６１】
【図１】図１は、フォールト・トレラント・コンピュータシステムの構成の一例を示すブロック図である。
【図２】図２は、本発明の実施形態によるフォールト・トレラント・コンピュータシステムの基本構成を示すブロック図である。
【図３】図３は、図２に示されるシステムのＰＣＩ階層構造を図式的に示すブロック図である。
【図４】図４は、二重化されていないＰＣサーバの割込みルーティングを図式的に示すブロック図である。
【図５】図５は、本発明の割込みコントローラ二重化方式を採用したフォールト・トレラント・コンピュータシステムの割込みルーティングを図式的に示すブロック図である。
【図６】図６は、ＦＴ制御部のマスターＩＯＡＰＩＣの構成を示すブロック図である。
【図７】図７は、本発明のシステムのシステム・アドレス・マップの例を示す図である。
【図８】図８は、ルーターにより同じ設定コマンドがアクティブ・サウス・ブリッジに送られる様子を示す図である。
【図９】図９は、各種デバイスと割込み番号（ＩＲＱ）との対応を示すテーブルである。
【図１０】図１０は、レガシーモードにおける割り込み制御を示す図である。
【図１１】図１１は、拡張モードにおける割り込み制御を示す図である。
【符号の説明】
【００６２】
１０（１０Ａ、１０Ｂ）：ＦＴ制御部
２（２Ａ、２Ｂ）：ＣＰＵ
３（３Ａ，３Ｂ）：メインメモリ
６（６Ａ，６Ｂ）：サウス・ブリッジ
７（７Ａ，７Ｂ）：ＰＣＩブリッジ
５（５−１（５−１Ａ，５−１Ｂ）、５−２（５−２Ａ，５−２Ｂ））：Ｉ／Ｏデバイス
８：ＦＴリンク
１２：マスターＩＯＡＰＩＣ
１４：メッセージコンバーター
１５、ＦＴコンパレーター
１６：ゲートコントローラ
１８：ルーター
２０：ルーティングロジック
２２：コンフィグレーション/ステータス格納部（レジスタ群）
３２：割り込みルーティングロジック
３４：ＰＩＣ
３６：ＩＯＡＰＩＣ
【図１】
2006178659.tif 000003
【図２】
2006178659.tif 000004
【図３】
2006178659.tif 000005
【図４】
2006178659.tif 000006
【図５】
2006178659.tif 000007
【図６】
2006178659.tif 000008
【図７】
2006178659.tif 000009
【図８】
2006178659.tif 000010
【図９】
2006178659.tif 000011
【図１０】
2006178659.tif 000012
【図１１】
2006178659.tif 000013