(57)【要約】【課題】装置の動作の一時停止時間を著しく短縮するフォルトトレラントコンピュータ装置とその再同期化方法を提供する。【解決手段】プロセッサ、メモリを含むコンピューティングモジュール１００、２００、３００を複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置であって、各コンピューティングモジュール１００、２００、３００内の各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての各プロセッサに対して割り込みを発生させ、各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールのクロック同期を回復する。【選択図】　　図１
2004046611.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置において、
前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで前記各コンピューティングモジュールに対してクロック同期での動作の再開処理を行うことを特徴とするフォルトトレラントコンピュータ装置。
【請求項２】
前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する障害監視制御手段と、
前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視し、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させるバス監視制御手段と、
各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる同期制御手段とを備えることを特徴とする請求項１に記載のフォルトトレラントコンピュータ装置。
【請求項３】
前記バス監視制御手段が、
各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、
前記同期制御手段が、
全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする請求項２に記載のフォルトトレラントコンピュータ装置。
【請求項４】
前記バス監視制御手段と、前記障害監視制御手段と、前記同期制御手段を複数組備えることを特徴とする請求項２に記載のフォルトトレラントコンピュータ装置。
【請求項５】
前記バス監視制御手段と、前記障害監視制御手段と、前記同期制御手段が、周辺装置の制御を行う周辺装置制御部内に備えられ、ＰＣＩブリッジを介して前記コンピューティングモジュール内の外部バスに続されることを特徴とする請求項２に記載のフォルトトレラントコンピュータ装置。
【請求項６】
プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置における再同期化方法であって、
前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、
前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させることを特徴とするフォルトトレラントコンピュータ装置の再同期化方法。
【請求項７】
前記各コンピューティングモジュールを含む装置全体の故障の有無を監視するステップと、
前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視するステップと、
各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させるステップと、
前記各プロセッサにクロック同期制御命令を実行させ、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させるステップとを備えることを特徴とする請求項６に記載のフォルトトレラントコンピュータ装置の再同期化方法。
【請求項８】
各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、
全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする請求項７に記載のフォルトトレラントコンピュータ装置の再同期化方法。
【請求項９】
プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置の再同期化処理を実行する再同期化プログラムであって、
前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させる機能と、
前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる機能を実行することを特徴とするフォルトトレラントコンピュータ装置の再同期化プログラム。
【請求項１０】
前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する機能と、
前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視する機能と、
各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させる機能と、
前記各プロセッサにクロック同期制御命令を実行させ、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる機能とを実行することを特徴とする請求項９に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
【請求項１１】
各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、
全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする請求項１０に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のコンピューティングモジュールで、同じ命令列をクロック同期させて全く同じに処理するロックステップ方式のフォルトトレラントコンピュータ装置（ｆａｕｌｔ　ｔｏｌｅｒａｎｔ　ｃｏｍｐｕｔｅｒ）に関し、特にコンピューティングモジュール間の同一動作性が崩れた場合（ロックステップが外れた場合）の再同期化処理の高速化を実現するフォルトトレラントコンピュータ装置及び高速再同期制御方法に関する。
【０００２】
【従来の技術】
従来のロックステップ方式のフォルトトレラントコンピュータ装置では、同じ命令列を同時期に実行している複数のコンピューティングモジュールの中で、故障あるいはその他の外的あるいは内的要因により、他のコンピューティングモジュールと異なる出力を行うコンピューティングモジュールを検出した場合は、以下のような対策を講じている。以降において、他のコンピューティングモジュールと同期して同じ動作を行うことができないコンピューティングモジュールを検出した場合の、当該コンピューティングモジュールをロックステップが外れたコンピューティングモジュールと称する。
【０００３】
すなわち、ロックステップが外れたコンピューティングモジュールを一旦運用状態から切り離し、ロックステップが外れる要因に応じて必要によりコンピューティングモジュールを交換し、あるいは交換を必要としない場合は必要に応じた再初期化処理等を行うことにより、運用状態に組み込むといった対策がとられている。
【０００４】
この運用状態への組み込みは、従来のロックステップ方式のフォルトトレラントコンピュータ装置では、ロックステップの外れたコンピューティングモジュールを交換したかどうかに関わりなく、その再組み込みのときに、他の運用を継続しているコンピューティングモジュールと再度同期をとって同じ処理をするために、運用状態のコンピューティングモジュールのもつメモリのデータを全て、再組み込みするコンピューティングモジュールのもつメモリへコピーしている。
【０００５】
【発明が解決しようとする課題】
従来のロックステップ方式のフォルトトレラントコンピュータ装置は、ロックステップが外れたコンピューティングモジュールの交換やロックステップが外れた原因の部位に応じた再初期化処理などを実施した後、再度運用状態に組み込む場合に、運用状態にあったコンピューティングモジュールを長時間停止させている。
【０００６】
すなわち、この従来のロックステップ方式のフォルトトレラントコンピュータ装置では、ロックステップが外れたコンピューティングモジュールの再組み込み処理の間、フォルトトレラントコンピュータ装置全体が長期間（一般に３〜５秒間、乃至分オーダーの時間）、業務を停止してしまうという問題があった。
【０００７】
その理由は、ロックステップが外れたコンピューティングモジュールを運用状態に組み込むために、故障の状態に関わらず、常に全てのメモリ内容を、運用を継続しているコンピューティングモジュールから、再度組み込もうとしているコンピューティングモジュールにコピーしているためである。
【０００８】
また、このコピー処理中に正常なコンピューティングモジュールの運用を継続すると、正常なコンピューティングモジュールのメモリ内容がコピー処理中にも変更されるため、正しくコピーすることができない。このため、コピー処理中は、運用状態にあったコンピューティングモジュールを一旦停止させて、メモリの内容が更新されないようにしている。
【０００９】
現在のコンピューティングモジュール内のメモリの容量は、数ギガバイトに及んでいることから、メモリの全領域をコピーするには長時間を要することになる。
【００１０】
ところで、ロックステップ方式のフォルトトレラントコンピュータ装置では、様々な原因により、各コンピューティングモジュール間のロックステップが外れる可能性がある。
【００１１】
第１の要因としては、コンピューティングモジュール内部で、固定的な故障が発生した場合である。この場合は、故障したコンピューティングモジュールの交換を行うことになり、交換するコンピューティングモジュールを運用系に組み込む時には、運用状態のコンピューティングモジュールのメモリの全てのデータをコピーする必要がある。
【００１２】
ロックステップ方式のフォルトトレラントコンピュータ装置では、上述のような固定的な故障のほかに、コンピューティングモジュール内の各ユニットの製造上の差違により、正常動作はしているものの異なるタイミングで動作していることからロックステップが外れることや、α線等の影響によるメモリの自動訂正可能な間欠障害によってロックステップが外れることがある。
【００１３】
これらのケースでは、コンピューティングモジュール自体に固定的な故障が発生しているのではないことから、本来、交換する必要はなく、再度運用中の他のコンピューティングモジュールとの処理の同期化を行い、組み込むことで、フォルトトレラントコンピュータ装置全体として、正常な稼働状態に復旧せしめることができる。
【００１４】
本発明の目的は、固定的な故障以外の原因によってロックステップが外れたコンピューティングモジュールを、従来の方式より高速に運用状態に再組み込みすることを可能とし、これによって組み込み処理のために発生する装置の動作の一時停止時間を著しく短縮するフォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラムを提案することにある。
【００１５】
本発明の他の目的は、上述の再組み込み処理時間の短縮により、装置の可用性の向上を実現するフォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラムを提案することにある。
【００１６】
【課題を解決するための手段】
上記目的を達成する本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置において、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで前記各コンピューティングモジュールに対してクロック同期での動作の再開処理を行うことを特徴とする。
【００１７】
請求項２の本発明のフォルトトレラントコンピュータ装置は、前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する障害監視制御手段と、前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視し、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させるバス監視制御手段と、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる同期制御手段とを備えることを特徴とする。
【００１８】
請求項３の本発明のフォルトトレラントコンピュータ装置は、前記バス監視制御手段が、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、前記同期制御手段が、全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする。
【００１９】
請求項４の本発明のフォルトトレラントコンピュータ装置は、前記バス監視制御手段と、前記障害監視制御手段と、前記同期制御手段を複数組備えることを特徴とする。
【００２０】
請求項５の本発明のフォルトトレラントコンピュータ装置は、前記バス監視制御手段と、前記障害監視制御手段と、前記同期制御手段が、周辺装置の制御を行う周辺装置制御部内に備えられ、ＰＣＩブリッジを介して前記コンピューティングモジュール内の外部バスに続されることを特徴とする。
【００２１】
請求項６の本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置における再同期化方法であって、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させることを特徴とする。
【００２２】
請求項７の本発明の再同期化方法は、前記各コンピューティングモジュールを含む装置全体の故障の有無を監視するステップと、前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視するステップと、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させるステップと、前記各プロセッサにクロック同期制御命令を実行させ、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させるステップとを備えることを特徴とする。
【００２３】
請求項８の本発明の再同期化方法は、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする。
【００２４】
請求項９の本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置の再同期化処理を実行する再同期化プログラムであって、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させる機能と、前記各プロセッサにクロック同期制御命令を実行させることにより、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる機能を実行することを特徴とする。
【００２５】
請求項１０の本発明の再同期化プログラムは、前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する機能と、前記各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視する機能と、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、その旨をコンピューティングモジュールに通知して前記各プロセッサに割り込みを発生させる機能と、前記各プロセッサにクロック同期制御命令を実行させ、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる機能とを実行することを特徴とする。
【００２６】
請求項１１の本発明の再同期化プログラムは、各コンピューティングモジュール間の出力の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置の故障が検出されない場合に、各コンピューティングモジュール間のクロック同期の再同期を図るための所定のタスクであって、前記同期制御手段内の所定のリソースへのアクセスを実行するタスクを前記各プロセッサに割り込ませ、全てのコンピューティングモジュールからの前記リソースへのアクセスを待ち合わせて、同時に全てのコンピューティングモジュールに対して前記アクセスに対する応答を行うことを特徴とする。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態によるロックステップ方式のフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【００２８】
図１を参照すると、本実施の形態によるフォルトトレラントコンピュータ装置は、複数のコンピューティングモジュール１００、２００、３００を備えて構成され、各コンピューティングモジュール１００、２００、３００はそれぞれクロック同期して同じ命令列を処理し、各コンピューティングモジュールの処理結果を比較し、１個のコンピューティングモジュールで故障が発生しても、残りのコンピューティングモジュールにより処理を継続することができる。
【００２９】
各コンピューティングモジュール１００、２００は、それぞれ複数のプロセッサ１０１、１０２、２０１、２０２、３０１、３０２と、プロセッサ外部バス１０３、２０３、３０３と、メモリ１０４、２０４、３０４と、メモリ制御部１０５、２０５、３０５とを備えて構成されている。
【００３０】
また、各コンピューティングモジュール１００、２００、３００は、メモリ制御部１０５、２０５、３０５及びインタフェース信号線６００、６０１、６０２、６１０、６１１、６１２を介して周辺装置の制御を行う周辺装置制御部４００、５００と接続されている。
【００３１】
上記フォルトトレラントコンピュータ装置は、さらに、バス監視制御部７００と、障害監視制御部７０２と、同期制御手段７０１とを備えている。
【００３２】
バス監視制御部７００は、各コンピューティングモジュールのプロセッサの外部バスへのアクセスを監視する。このバス監視制御部７００は、各コンピューティングモジュール１００、２００、３００のプロセッサ外部バス１０３、２０３、３０３とインタフェース信号線７１０、７１１、７１２を介して接続されている。
【００３３】
障害監視制御部７０２は、各コンピューティングモジュールを含む装置全体の故障の有無を監視する。
【００３４】
そして、同期制御部７０１は、各コンピューティングモジュールと接続され、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールに対してクロック同期での動作を再開させる。この同期制御部７０１は、各コンピューティングモジュール１００、２００、３００のメモリ制御部１０５、２０５、３０５とインタフェース信号線７３０、７３１、７３２を介して接続されている。
【００３５】
次いで、上記のように構成される本実施の形態によるフォルトトレラントコンピュータ装置の動作について説明する。
【００３６】
障害監視制御部７０２は、各コンピューティングモジュール１００、２００、３００と各周辺装置制御部４００、５００を含むフォルトトレラントコンピュータ装置全体の故障の有無を監視し、その結果をバス監視制御部７００に通知する。
【００３７】
バス監視制御部７００は、各コンピューティングモジュール１００、２００、３００のプロセッサ外部バス１０３、２０３、３０３とインタフェース信号線７１０、７１１、７１２を介して接続され、各プロセッサ１０１、１０２、２０１、２０２、３０１、３０２の外部アクセス制御信号を比較して、各プロセッサ１０１、１０２、２０１、２０２、３０１、３０２がクロック同期によって同じタイミングで外部バス１０３、２０３、３０３をアクセスしているかどうかを監視する。
【００３８】
バス監視制御部７００は、上記監視動作により、いずれかのプロセッサ１０１、１０２、２０１、２０２、３０１、３０２が他と異なるタイミングで動作していることを検出した時であって、障害監視制御部７０２がフォルトトレラントコンピュータ装置のどこにも故障を検出していなかった場合、このロックステップ外れの原因が故障によるものでないことを検知する。該検知結果は全てのコンピューティングモジュール１００、２００、３００にインタフェース信号線７１０、７１１、７１２を介して通知され、各プロセッサに割り込まれる。また、同時にバス監視制御部７００は、プロセッサの外部バス１０３、２０３、３０３の監視の中断モードに遷移する。
【００３９】
ここで、バス監視制御部７００は、プロセッサのメモリアクセスを含む全ての外部バス１０３、２０３、３０３へのアクセスを監視しており、かつ、コンピューティングモジュール間の動作の不一致を検出したとき、即座に全てのプロセッサ１０１、１０２、２０１、２０２、３０１、３０２に割り込んで、その処理を中断させるため、割り込みの発生した時点では各コンピューティングモジュール１００、２００、３００内のメモリ１０４、２０４、３０４の内容は全て一致した状態である。
【００４０】
以下、図２を参照して、本実施の形態によるフォルトトレラントコンピュータ装置の具体的な動作内容を説明する。
【００４１】
バス監視制御部７００でコンピューティングモジュール間の動作の不一致を検出すると（図２のステップ２０１）、インタフェース信号線７１０、７１１、７１２を介して通知され、各プロセッサに割り込みが発生する。
【００４２】
全てのプロセッサ１０１、１０２、２０１、２０２、３０１、３０２は、その割り込み処理中で、各コンピューティングモジュール１００、２００、３００間のクロック同期動作の再同期を図るための同期制御タスクをレディーキューの先頭に最優先のタスクとしてキューイングする（図２のステップ２０２）。
【００４３】
この同期制御タスクは、同期制御部７０１内の特別に規定されたリソースへのアクセス命令を実行する機能を有する。その後、ＯＳによって上記同期制御タスクが実行状態に移されたとき、該タスクは同期制御部７０１内の規定されたリソースへのアクセス命令を実行する（図２のステップ２０３）。
【００４４】
この時点では、ロックステップの外れたコンピューティングモジュールからの上記規定のリソースへのアクセスと、他のロックステップ状態にあるコンピューティングモジュールからの上記規定のリソースへのアクセスは、当然ながら時間的にずれた状態で同期制御部７０１に伝達される。
【００４５】
同期制御部７０１は、内部の特別に規定されたリソースへのコンピューティングモジュール１００、２００、３００からのアクセスを検出すると、それが最初のものである場合、すぐに対応するコンピューティングモジュールに対する応答を返さず、その他の全てのコンピューティングモジュールからのアクセスがあるまで待ち合わせる（図２のステップ２０４）。全てのコンピューティングモジュール１００、２００、３００からのアクセスが伝達されたとき、全てのコンピューティングモジュール１００、２００、３００に対して同時にそのアクセスに対する応答を返却する。
【００４６】
各コンピューティングモジュール１００、２００、３００内の全てのプロセッサは、同期制御部７０１からの応答を受けて、上記同期制御タスクの実行を終了する（図２のステップ２０５）。そして、その後全てのプロセッサは、通常のプログラム動作を継続する（図２のステップ２０６）。
【００４７】
以上説明した動作により、再び各コンピューティングモジュール１００、２００、３００はクロック同期した状態で動作を継続することができる。このとき、前記した通り、各コンピューティングモジュール１００、２００、３００内のメモリ１０４、２０４、３０４の内容が不一致となる前に再同期処理が実行されるため、再度クロック同期して動作したあとは、再び全てのコンピューティングモジュール１００、２００、３００が、同じタイミングで同じ命令列を実行できる。このことにより、従来のフォルトトレラントコンピュータ装置のごとく再同期のためにメモリをコピーする必要がなくなり、再同期処理を高速に実行することができる。
【００４８】
図３は、本発明の第２の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【００４９】
図３を参照すると、本発明の実施の形態によるフォルトトレラントコンピュータ装置は、プロセッサ、メモリを含むコンピューティングモジュール１００、２００とＰＣＩブリッジ７０３を含む周辺装置制御部４００、５００をそれぞれ複数備え、各コンピューティングモジュール１００、２００はクロック同期して同じ命令列を処理し、各コンピューティングモジュールの処理結果を比較し、１個のコンピューティングモジュールで故障が発生しても、残りのコンピューティングモジュールにより処理を継続できる構成であり、また、各周辺装置制御部４００、５００は、ソフトウェア制御によって多重化され、１個の周辺装置制御部で故障が発生しても、他の周辺装置制御部を利用して処理を継続できる構成となっている。
【００５０】
各周辺装置制御部４００には、それぞれ各コンピューティングモジュール１００、２００内部のメモリ制御部１０５、２０５とＰＣＩを介して接続され、周辺装置との接続を行うＰＣＩブリッジ７０３と、各コンピューティングモジュール１００、２００内部の各プロセッサの外部バスへのアクセスを監視するバス監視制御部７００と、各コンピューティングモジュール１００、２００を含むフォルトトレラントコンピュータ装置全体の故障の有無を監視する障害監視制御部７０２と、各コンピューティングモジュールと前記ＰＣＩブリッジ７０３を介して接続され、各コンピューティングモジュールからのアクセスに対する応答タイミングを調整することで各コンピューティングモジュールのクロック同期を回復せしめる同期制御部７０１が備えられている。
【００５１】
なお、図示を省略しているが、周辺装置制御部５００も、周辺装置制御部４００と同様に上記各構成要素を備えている。
【００５２】
本実施の形態のロックステップ方式のフォルトトレラントコンピュータ装置においては、通常、周辺装置制御部４００を使用することにより、各コンピューティングモジュール１００、２００のクロック同期の動作の監視と、周辺装置の制御を行う。周辺装置制御部４００に故障が発生した場合は、周辺装置制御部５００に切り替えることにより同様の処理を行う。
【００５３】
また、本実施の形態では、図２で示す同期制御部７０１内の規定のリソースへのアクセス命令実行（図２のステップ２０３）は、周辺装置制御部４００内部の同期制御部７０１内部にあるレジスタへのリード命令の実行によって行い、そのリード命令は、ＰＣＩバス８００、８０１とＰＣＩブリッジ７０３を介して同期制御部７０１に伝達し、その応答も同じ経路で各コンピューティングモジュール１００、２００に伝達する。
【００５４】
本実施の形態における再同期化処理の内容については、図２に示した内容と同様である。
【００５５】
また、本実施の形態では、コンピューティングモジュールが２個の場合の実施例を示しているが、図１の第１の実施の形態に示すようなコンピューティングモジュールが３つの構成、あるいは４つ以上の構成であっても、同様に作用する。
【００５６】
図４は、本発明の第３の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【００５７】
本実施の形態では、バス監視制御部７００は、ＰＣＩブリッジ７０３を介してコンピューティングモジュール１００、２００と接続される構成を示している。
【００５８】
この実施の形態においては、各プロセッサの外部バス１０３、２０３の監視は、各コンピューティングモジュール１００、２００のメモリ制御部１０５、２０５とＰＣＩバス８００、８０１、及びＰＣＩブリッジ７０３を経由してバス監視制御部７００に伝達される信号（ＰＣＩバスプロトコル）によって実施される。また、バス監視制御部７００から各コンピューティングモジュールへの割り込みの伝達は、上記と逆の経路を経由して実施される。
【００５９】
本実施の形態における再同期化処理の内容については、図２に示した内容と同様である。
【００６０】
なお、第２及び第３の実施の形態において、ＰＣＩを使って各コンピューティングモジュールとバス監視制御部等を接続しているが、これらの間の接続は、たとえばＰＣＩ−Ｘなどの他の規格のインタフェースや、あるいは一般に規格化されていない専用のインタフェースであってもよく、本発明の効果にはなんら影響を与えない。
【００６１】
本発明のフォルトトレラントコンピュータ装置では、再同期化処理を実行する各手段の機能をハードウェア的に実現することは勿論として、上記した各手段の機能を実行する再同期化処理プログラム１０００をコンピュータ処理装置のメモリにロードしてコンピュータ処理装置を制御することで実現することができる。この再同期化処理プログラム１０００は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【００６２】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００６３】
上述した各実施の形態では、各コンピューティングモジュール内のプロセッサが２つの構成の場合を示したが、該プロセッサが１つ、あるいは３つ以上であってもまったく同様に作用する。
【００６４】
また、各実施の形態では、各プロセッサが１つの外部バスを共有し、同一バス上に接続されている場合を示しているが、例えば、メモリ制御部から複数のプロセッサが星形接続されるような構成であっても、あるいは１つのコンピューティングモジュールを構成するプロセッサが、物理的に複数のボードにわかれて構成されていても、本発明の効果になんら影響しない。
【００６５】
【発明の効果】
以上説明したように本発明によれば、以下に述べるような効果が得られるものである。
【００６６】
第１の効果は、フォルトトレラントコンピュータ装置のあるコンピューティングモジュールが、固定故障以外の要因でロックステップ状態から外れた場合に、極めて短時間でロックステップ状態に回復させられることである。
【００６７】
その理由は、バス監視制御手段によって、ロックステップ外れの発生の初期の段階であって、各コンピューティングモジュール内のメモリがまだ不一致となっていない時期にプロセッサに割り込ませ、再同期を制御するための命令列を実行するタスクを優先的に実行させることにより、メモリのコピーを行うことなく同期を回復させられるからである。
【００６８】
第２の効果は、フォルトトレラントコンピュータ装置の可用性を向上させられることである。その理由は、ロックステップ外れがおこったときの再組み込み時間を著しく高速化することによって、装置全体が停止する期間を大幅に短縮することができるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態によるフォルトトレラントコンピュータ装置の再同期化処理の内容を説明する図である。
【図３】本発明の第１の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【図４】本発明の第１の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【符号の説明】
１００、２００、３００　　コンピューティングモジュール
１０１、１０２、２０１、２０２、３０１、３０２　　プロセッサ
１０３、２０３、３０３　　プロセッサ外部バス
１０４、２０４、３０４　　メモリ
１０５、２０５、３０５　　メモリ制御部
４００、５００　　周辺装置制御部
６００、６０１、６０２、６１０、６１１、６１２、７１０、７１１、７１２、７３０、７３１、７３２　　インタフェース信号線
７００　　バス監視制御部
７０１　　同期制御部
７０２　　障害監視制御部
７０３　　ＰＣＩブリッジ
８００、８０１、８０２　　ＰＣＩバス
【図１】
2004046611.tif 000003
【図２】
2004046611.tif 000004
【図３】
2004046611.tif 000005
【図４】
2004046611.tif 000006