(57)【要約】【課題】「同期外れ」が発生した場合に、性能低下を引き起こすことなく、ＣＰＵユニットの縮対状態や再組み込みの動作の発生を回避する。【解決手段】本発明は、ＣＰＵユニット１，２から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力するＩＯ比較部４と、ＩＯ比較部４から不一致信号が出力された場合、先に入力されたＩＯ命令の発行元のＣＰＵユニットの信頼性を表す優先度が他のＣＰＵユニットよりも高いか否かを判定し、高ければ高優先信号を出力し、高くなければ低優先信号を出力するＦＴ制御部５と、ＩＯ比較部４から一致信号が出力された場合、ＩＯユニット７にＩＯ命令を転送し、ＩＯ比較部４から不一致信号が出力された場合、ＦＴ制御部５から高優先信号が出力されれば、ＩＯユニット７にＩＯ命令を転送するＩＯ制御部６と、を有する。【選択図】図１
2008225752.tif 000002
【特許請求の範囲】
【請求項１】
ＩＯ命令を発行する複数のＣＰＵユニットと、前記ＩＯ命令に基づいてＩＯ処理を行うＩＯユニットと、を有してなるフォールトトレラントコンピュータにおいて、
前記複数のＣＰＵユニットの各々から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力するＩＯ比較部と、
前記ＩＯ比較部から不一致信号が出力された場合、先に入力されたＩＯ命令の発行元のＣＰＵユニットの信頼性を表す優先度が前記複数のＣＰＵユニットの中で最も高いか否かを判定し、最も高ければ高優先信号を出力し、最も高くなければ低優先信号を出力するＦＴ制御部と、
前記ＩＯ比較部から一致信号が出力された場合、前記ＩＯユニットにＩＯ命令を転送し、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から高優先信号が出力されれば、前記ＩＯユニットにＩＯ命令を転送するＩＯ制御部と、を有するフォールトトレラントコンピュータ。
【請求項２】
前記ＩＯ制御部は、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から低優先信号が出力されれば、ＩＯ命令の転送を一時保留し、一定時間内に前記ＩＯ比較部から一致信号が出力された場合に限り、当該一致信号が出力された時点で前記ＩＯユニットにＩＯ命令を転送する、請求項１に記載のフォールトトレラントコンピュータ。
【請求項３】
前記ＦＴ制御部は、前記複数のＣＰＵユニットの各々の障害履歴情報を保持し、先に入力されたＩＯ命令の発行元となるＣＰＵユニットの障害履歴情報に基づいて当該ＣＰＵユニットの優先度が最も高いか否かを判定する、請求項１または２に記載のフォールトトレラントコンピュータ。
【請求項４】
前記複数のＣＰＵユニットの各々は、
ＣＰＵと、
自己のＣＰＵユニット内のＣＰＵの故障を監視する診断回路と、を有し、
前記ＦＴ制御部は、先に入力されたＩＯ命令の発行元となるＣＰＵユニットの優先度が最も高いと判定した場合、当該ＣＰＵユニット内の前記診断回路における監視結果に基づき当該ＣＰＵユニット内のＣＰＵが故障しているか否かを判定し、当該ＣＰＵが故障していないと判定した場合に限り、前記高優先信号を出力する、請求項１から３のいずれか１項に記載のフォールトトレラントコンピュータ。
【請求項５】
ＩＯ命令を発行する複数のＣＰＵユニットと、前記ＩＯ命令に基づいてＩＯ処理を行うＩＯユニットと、前記複数のＣＰＵユニットにて発行されたＩＯ命令を前記ＩＯユニットに転送する転送制御を行うＦＴ制御回路と、を有するフォールトトレラントコンピュータにおける同期制御方法であって、
前記ＦＴ制御回路内のＩＯ比較部が、前記複数のＣＰＵユニットの各々から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力するＩＯ命令比較ステップと、
前記ＦＴ制御回路内のＦＴ制御部が、前記ＩＯ比較部から不一致信号が出力された場合、先に入力されたＩＯ命令の発行元のＣＰＵユニットの信頼性を表す優先度が前記複数のＣＰＵユニットの中で最も高いか否かを判定し、最も高ければ高優先信号を出力し、最も高くなければ低優先信号を出力する優先度判定ステップと、
前記ＦＴ制御回路内のＩＯ制御部が、前記ＩＯ比較部から一致信号が出力された場合、前記ＩＯユニットにＩＯ命令を転送し、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から高優先信号が出力されれば、前記ＩＯユニットにＩＯ命令を転送するＩＯ命令転送ステップと、を有する同期制御方法。
【請求項６】
前記ＩＯ命令転送ステップでは、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から低優先信号が出力されれば、ＩＯ命令の転送を一時保留し、一定時間内に前記ＩＯ比較部から一致信号が出力された場合に限り、当該一致信号が出力された時点で前記ＩＯユニットにＩＯ命令を転送する、請求項５に記載の同期制御方法。
【請求項７】
前記ＦＴ制御部が、前記複数のＣＰＵユニットの各々の障害履歴情報を保持するステップをさらに有し、
前記優先度判定ステップでは、先に入力されたＩＯ命令の発行元となるＣＰＵユニットの障害履歴情報に基づいて当該ＣＰＵユニットの優先度が最も高いか否かを判定する、請求項５または６に記載の同期制御方法。
【請求項８】
前記複数のＣＰＵユニットの各々が、自己のＣＰＵユニット内のＣＰＵの故障を監視するステップをさらに有し、
前記優先度判定ステップでは、先に入力されたＩＯ命令の発行元となるＣＰＵユニットの優先度が最も高いと判定した場合、当該ＣＰＵユニットにおけるＣＰＵの監視結果に基づき当該ＣＰＵユニット内のＣＰＵが故障しているか否かを判定し、当該ＣＰＵが故障していないと判定した場合に限り、前記高優先信号を出力する、請求項５から７のいずれか１項に記載の同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵユニットが同一のクロックを入力して全く同じ動作を同期して行うロックステップ方式のフォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法に関する。
【背景技術】
【０００２】
ロックステップ方式のフォールトトレラントコンピュータは、複数のＣＰＵユニットと、ＩＯユニットとを有している。ＩＯユニットは、一般に、複数のＣＰＵユニットから発行されたＩＯ命令を比較する比較装置を有しており、複数のＣＰＵユニットから同時にＩＯ命令が到達した場合に複数のＣＰＵユニットの動作が同期していると判断してＩＯ処理を行い、各ＣＰＵユニットが故障しない限り同期していることを保証していた。
【０００３】
しかし、近年のプロセッサの高速化に伴い、同一のクロックを入力しても複数のＣＰＵユニット間で動作が完全に同期しない、いわゆる「同期外れ」が発生するようになり、複数のＣＰＵユニットから発行されたＩＯ命令のＩＯユニットへの到達時間に時間的な差異が生じてしまう場合があった。
【０００４】
このようなＣＰＵユニットの故障に起因しない「同期外れ」は、ＣＰＵユニットでの動作には時間的な差異があるものの、ソフトウェアプログラム上では同じ動作がなされていることが分かっている。
【０００５】
しかし、従来のフォールトトレラントコンピュータでは、このようなＣＰＵユニットの故障に起因しない「同期外れ」が発生した場合、ＣＰＵユニットの縮対状態や再組み込みの動作が発生してしまうという弊害が生じていた。
【０００６】
このような弊害を解決する技術として、例えば、特許文献１には、複数のＣＰＵユニットから発行されたＩＯ命令のＩＯユニット（特許文献１では「ＩＯコントローラ」に相当）への到達時間に時間的な差異が生じるような場合、ＩＯユニットへのＩＯ命令の転送を一時保留し、以降の一定時間内に他のＣＰＵユニットから一致するＩＯ命令が到達すれば、そのＩＯ命令をＩＯユニットに転送する技術が開示されている。
【特許文献１】特開２００４−１１０８０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に開示された技術においては、複数のＣＰＵユニットから発行されたＩＯ命令のＩＯユニットへの到達時間に時間的な差異が生じるような場合、ＩＯユニットへのＩＯ命令の転送を全て一時保留させてしまうため、性能低下という問題が生じるおそれがある。
【０００８】
そこで、本発明の目的は、ＣＰＵユニットの故障に起因しない「同期外れ」が発生した場合に、性能低下を引き起こすことなく、ＣＰＵユニットの縮対状態や再組み込みの動作が発生することを回避できるフォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明のフォールトトレラントコンピュータは、
ＩＯ命令を発行する複数のＣＰＵユニットと、前記ＩＯ命令に基づいてＩＯ処理を行うＩＯユニットと、を有してなるフォールトトレラントコンピュータにおいて、
前記複数のＣＰＵユニットの各々から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力するＩＯ比較部と、
前記ＩＯ比較部から不一致信号が出力された場合、先に入力されたＩＯ命令の発行元のＣＰＵユニットの信頼性を表す優先度が前記複数のＣＰＵユニットの中で最も高いか否かを判定し、最も高ければ高優先信号を出力し、最も高くなければ低優先信号を出力するＦＴ制御部と、
前記ＩＯ比較部から一致信号が出力された場合、前記ＩＯユニットにＩＯ命令を転送し、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から高優先信号が出力されれば、前記ＩＯユニットにＩＯ命令を転送するＩＯ制御部と、を有することを特徴とする。
【００１０】
上記目的を達成するために本発明のフォールトトレラントコンピュータにおける同期制御方法は、
ＩＯ命令を発行する複数のＣＰＵユニットと、前記ＩＯ命令に基づいてＩＯ処理を行うＩＯユニットと、前記複数のＣＰＵユニットにて発行されたＩＯ命令を前記ＩＯユニットに転送する転送制御を行うＦＴ制御回路と、を有するフォールトトレラントコンピュータにおける同期制御方法であって、
前記ＦＴ制御回路内のＩＯ比較部が、前記複数のＣＰＵユニットの各々から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力するＩＯ命令比較ステップと、
前記ＦＴ制御回路内のＦＴ制御部が、前記ＩＯ比較部から不一致信号が出力された場合、先に入力されたＩＯ命令の発行元のＣＰＵユニットの信頼性を表す優先度が前記複数のＣＰＵユニットの中で最も高いか否かを判定し、最も高ければ高優先信号を出力し、最も高くなければ低優先信号を出力する優先度判定ステップと、
前記ＦＴ制御回路内のＩＯ制御部が、前記ＩＯ比較部から一致信号が出力された場合、前記ＩＯユニットにＩＯ命令を転送し、前記ＩＯ比較部から不一致信号が出力された場合、前記ＦＴ制御部から高優先信号が出力されれば、前記ＩＯユニットにＩＯ命令を転送するＩＯ命令転送ステップと、を有することを特徴とする。
【００１１】
上記のように構成された本発明によれば、複数のＣＰＵユニットから発行されたＩＯ命令の到達時間に時間的な差異が生じた場合、先に到達したＩＯ命令の発行元のＣＰＵユニットの優先度が他のＣＰＵユニットよりも高ければ、そのＩＯ命令をＩＯユニットに転送する。
【００１２】
したがって、ＩＯユニットへのＩＯ命令の転送を全て一時保留させる従来技術と比較して、性能低下という問題が生じることなく、ＣＰＵユニットの縮対状態や再組み込みの動作が発生することを回避することが可能となる。
【発明の効果】
【００１３】
本発明によれば、ＣＰＵユニットの故障に起因しない「同期外れ」により、複数のＣＰＵユニットから発行されたＩＯ命令のＩＯユニットへの到達時間に時間的な差異が生じるような場合でも、ＣＰＵユニットの縮対状態や再組み込みの動作が発生することを回避することができるという効果が得られる。また、これに伴い、フォールトトレラントコンピュータの平均故障間隔（ＭＴＢＦ：Ｍｅａｎ  Ｔｉｍｅ  Ｂｅｔｗｅｅｎ  Ｆａｉｌｕｒｅ）を短くすることがなくなるという効果も得られる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
図１を参照すると、本実施形態のフォールトトレラントコンピュータは、ＣＰＵユニット（運用系）１、ＣＰＵユニット（待機系）２、ＦＴ制御回路３、およびＩＯユニット７を有している。
【００１６】
ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２は、同一のクロックを入力して全く同じ動作を同期して行うものであり、ＩＯユニット７におけるＩＯ処理を制御するためのＩＯ命令を発行する。
【００１７】
ＩＯユニット７は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２にて発行されたＩＯ命令を基にＩＯ処理を行う。
【００１８】
ＦＴ制御回路３は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２にて発行されたＩＯ命令をＩＯユニット７に転送するか、または一時転送を保留するかの転送制御を行う。
【００１９】
ＦＴ制御回路３は、ＩＯ比較部４、ＦＴ制御部５、およびＩＯ制御部６を有している。
【００２０】
ＩＯ比較部４は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々から発行されるＩＯ命令を入力し、入力されたＩＯ命令が一致するか否かを比較し、一致すれば一致信号を出力し、不一致であれば不一致信号を出力する。
【００２１】
ＦＴ制御部５は、ＩＯ比較部４から不一致信号が出力された場合、ＩＯ命令の発行元のＣＰＵユニット（運用系）１またはＣＰＵユニット（待機系）２の優先度（信頼性を表す度数）が他のＣＰＵユニットよりも高いか否かを判定し、高ければ高優先信号を出力し、高くなければ低優先信号を出力する。
【００２２】
ＩＯ制御部６は、ＩＯ比較部４から一致信号が出力された場合、ＩＯユニット７にＩＯ命令を転送し、ＩＯ比較部４から不一致信号が出力された場合、ＦＴ制御部５から高優先信号が出力されれば、ＩＯユニット７にＩＯ命令を転送する。
【００２３】
また、ＩＯ制御部６は、ＩＯ比較部４から不一致信号が出力された場合、ＦＴ制御部５から低優先信号が出力されれば、ＩＯ命令の転送を一時保留し、一定時間内にＩＯ比較部４から一致信号が出力された場合に限り、その一致信号が出力された時点でＩＯユニット７にＩＯ命令を転送する。
【００２４】
ここで、ＩＯ比較部４、ＦＴ制御部５、およびＩＯ制御部６の動作について、さらに詳細に説明する。
【００２５】
ＣＰＵユニット（運用系）１にて発行されたＩＯ命令ａおよびＣＰＵユニット（待機系）２にて発行されたＩＯ命令ｂは、ＩＯ比較部４に入力される。
【００２６】
ＩＯ比較部４は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々から入力されたＩＯ命令ａ，ｂが一致するか否かを比較し、その比較結果に応じた一致信号ｃまたは不一致信号ｆを出力する。
【００２７】
このとき、ＣＰＵユニット（運用系）１とＣＰＵユニット（待機系）２とが同期していれば、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２から同じＩＯ命令が同期して入力されるため、ＩＯ命令は一致する。他方、ＣＰＵユニット（運用系）１とＣＰＵユニット（待機系）２間に「同期外れ」が発生していれば、ＣＰＵユニット（運用系）１またはＣＰＵユニット（待機系）２の一方からのみＩＯ命令が入力されるため、ＩＯ命令は不一致となる。
【００２８】
ＩＯ比較部４は、比較結果が一致する場合、つまりＣＰＵユニット（運用系）１とＣＰＵユニット（待機系）２とが同期している場合、ＩＯ制御部６へ、一致信号ｃを出力すると共に、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の双方から入力された同じＩＯ命令ａ，ｂをＩＯ命令ｄとして転送する。ＩＯ制御部６は、ＩＯ比較部４から一致信号ｃが出力されると、ＩＯ比較部４から転送されてきたＩＯ命令ｄを取り込み、取り込んだＩＯ命令ｄをＩＯ命令ｅとしてＩＯユニット７に転送する。
【００２９】
一方、ＩＯ比較部４は、比較結果が不一致となる場合、つまりＣＰＵユニット（運用系）１とＣＰＵユニット（待機系）２間に「同期外れ」が発生している場合、ＦＴ制御部５へ不一致信号ｆを出力すると共に、ＩＯ制御部６へＣＰＵユニット（運用系）１またはＣＰＵユニット（待機系）２の一方から入力されたＩＯ命令ａまたはｂをＩＯ命令ｄとして転送する。ＦＴ制御部５は、ＩＯ比較部４から不一致信号ｆが出力されると、ＩＯ比較部４からＩＯ制御部６へ転送されたＩＯ命令ｄの発行元のＣＰＵユニット（運用系）１またはＣＰＵユニット（待機系）２の優先度が他のＣＰＵユニットよりも高いか否かを判定し、その判定結果に応じた高優先／低優先信号ｇを出力する。
【００３０】
ＩＯ制御部６は、ＦＴ制御部５から出力された高優先／低優先信号ｇを基に、ＩＯ比較部４から転送されてきたＩＯ命令ｄをＩＯユニット７へ転送するか、または一時転送を保留するかを判定する。
【００３１】
ＩＯ制御部６は、ＦＴ制御部５から高優先信号ｇが出力された場合、ＩＯ比較部４から転送されてきたＩＯ命令ｄを取り込み、取り込んだＩＯ命令ｄをＩＯ命令ｅとしてＩＯユニット７に転送する。さらに、ＩＯ制御部６は、取り込んだＩＯ命令ｄを、再度ＩＯ命令ｈとしてＩＯ比較部４へ転送し、ＩＯ比較部４は、ＩＯ命令ｈを他方のＣＰＵユニットから遅れて入力されるＩＯ命令と一致するまで保持し続ける。もし、ＩＯ制御部６は、一定時間内にＩＯ比較部４から一致信号ｃが出力されなければ、ＯＳや管理ソフトウェア等への障害通知を行う。
【００３２】
また、ＩＯ制御部６は、ＦＴ制御部５から低優先信号ｇが出力された場合、ＩＯ比較部４から転送されてきたＩＯ命令ｄを取り込み、取り込んだＩＯ命令ｄを、再度ＩＯ命令ｈとしてＩＯ比較部４へ転送し、ＩＯ比較部４は、ＩＯ命令ｈを他方のＣＰＵユニットから遅れて入力されるＩＯ命令と一致するまで保持し続ける。以降、ＩＯ比較部４は、一定時間内に他方のＣＰＵユニットから遅れて到達するＩＯ命令と一致すると、ＩＯ制御部６へ一致信号ｃを出力すると共に、ＩＯ命令ｄを転送する。ＩＯ制御部６は、一定時間内にＩＯ比較部４から一致信号ｃが出力されると、ＩＯ命令ｄを取り込み、ＩＯ命令ｄをＩＯ命令ｅとしてＩＯユニット７に転送する。もし、ＩＯ制御部６は、一定時間内にＩＯ比較部４から一致信号ｃが出力されなければ、ＯＳや管理ソフトウェア等への障害通知を行う。
【００３３】
以下、本実施形態のフォールトトレラントコンピュータにおいて、ＦＴ制御回路３にＩＯ命令が入力された時の動作について、図２のフローチャートを参照して説明する。
【００３４】
ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々から発行されたＩＯ命令がＦＴ制御回路３のＩＯ比較部４に入力されると（ステップ１０１）、ＩＯ比較部４は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々から発行されたＩＯ命令が一致するか否かを比較し、その比較結果に応じた一致信号または不一致信号を出力する（ステップ１０２）。
【００３５】
ステップ１０２でＩＯ比較部４から一致信号が出力された場合は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の双方から入力された同じＩＯ命令を、ＩＯ比較部４からＩＯ制御部６経由でＩＯユニット７に転送し（ステップ１０３）、処理を終了する。
【００３６】
一方、ステップ１０２でＩＯ比較部４から不一致信号が出力された場合は、ＦＴ制御部５は、ＩＯ比較部４へ入力されたＩＯ命令の発行元のＣＰＵユニット（運用系）１またはＣＰＵユニット（待機系）２の優先度が他のＣＰＵユニットよりも高いか否かを判定し、その判定結果に応じた高優先信号または低優先信号を出力する（ステップ１０４）。
【００３７】
ステップ１０４でＦＴ制御部５から高優先信号が出力された場合は、ＩＯ命令の発行元の一方のＣＰＵユニットから入力されたＩＯ命令を、ＩＯ比較部４からＩＯ制御部６経由でＩＯユニット７に転送するとともに、そのＩＯ命令のＩＯ比較部４への登録を行う（ステップ１０５）。以降、ＩＯ比較部４は、ステップ１０５で登録したＩＯ命令と、他方のＣＰＵユニットから遅れて入力されるＩＯ命令とが一致するか否かを比較し（ステップ１０６）、一致した場合は処理を終了する。ステップ１０５でＩＯ命令の登録を行ってから一定時間経過しても、その登録したＩＯ命令と一致するＩＯ命令が他方のＣＰＵユニットから入力されない場合は（ステップ１０７）、ＩＯ制御部６からＯＳや管理ソフトウェア等に対する障害通知を行い、処理を終了する。
【００３８】
また、ステップ１０４でＦＴ制御部５から低優先信号が出力された場合は、ＩＯユニット７へのＩＯ命令の転送を一時保留して、ＩＯ命令のＩＯ比較部４への登録を行う（ステップ１０８）。以降、ＩＯ比較部４は、ステップ１０８で登録したＩＯ命令と、他方のＣＰＵユニットから遅れて入力されるＩＯ命令とが一致するか否かを比較し（ステップ１０９）、一致した場合は登録したＩＯ命令をＩＯユニット７に転送し（ステップ１１０）、処理を終了する。ステップ１０８でＩＯ命令の登録を行ってから一定時間経過しても、その登録したＩＯ命令と一致するＩＯ命令が他方のＣＰＵユニットから入力されない場合は（ステップ１１１）、ＩＯ制御部６からＯＳや管理ソフトウェア等に対する障害通知を行い、処理を終了する。
【００３９】
ここで、ステップ１０４におけるＦＴ制御部５による判定動作について説明する。
【００４０】
ＦＴ制御部５は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々について障害の履歴情報を保持しており、この履歴情報を基にＩＯ命令の発行元のＣＰＵユニットの優先度が他のＣＰＵユニットよりも高いか否かを判定する。例えば、ＩＯ命令の発行元のＣＰＵユニットの障害履歴が、他のＣＰＵユニットよりも少ない場合に、他のＣＰＵユニットよりも優先度が高いと判定し、高優先信号を出力する。
【００４１】
また、ＦＴ制御部５は、上記のように履歴情報を用いて一次判定を行った後、ＩＯ命令の発行元のＣＰＵユニットに搭載されるＣＰＵが故障しているか否かを診断し、その診断結果を基に二次判定を行うこととしても良い。例えば、二次判定においては、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２の各々に診断回路を個別に持たせ、その診断回路が自己のＣＰＵユニットに搭載されるＣＰＵの故障監視を行う。ＦＴ制御部５は、診断回路における故障監視結果を参照することで、ＣＰＵが故障しているか否かの判定を行う。そして、一次判定の結果、ＩＯ命令の発行元のＣＰＵユニットが他のＣＰＵユニットよりも優先度が高いと判定し、かつ、二次判定の結果、ＩＯ命令の発行元のＣＰＵユニットが故障していないと判定した場合に限り、高優先信号を出力する。言い換えれば、一次判定の結果、ＩＯ命令の発行元のＣＰＵユニットが他のＣＰＵユニットよりも優先度が高いと判定しても、二次判定の結果、ＩＯ命令の発行元のＣＰＵユニットが故障していると判定すれば、高優先信号を出力せず、ＯＳや管理ソフトウェア等への障害通知等を行う。
【００４２】
上述したように本実施形態においては、ＦＴ制御回路３は、ＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２から発行されたＩＯ命令の到達時間に時間的な差異が生じた場合、先に到達したＩＯ命令の発行元のＣＰＵユニットの優先度が他のＣＰＵユニットよりも高ければ、そのＩＯ命令をＩＯユニット７に転送する。
【００４３】
したがって、ＩＯユニットへのＩＯ命令の転送を全て一時保留させる従来技術と比較して、性能低下という問題が生じることなく、ＣＰＵユニットの縮対状態や再組み込みの動作が発生することを回避することができる。また、これに伴い、フォールトトレラントコンピュータの平均故障間隔を短くすることがなくなる。
【００４４】
なお、本実施形態においては、２つのＣＰＵユニット（運用系）１およびＣＰＵユニット（待機系）２を示しているが、ＣＰＵユニットの数は複数であれば特に制限は無く、また、１つのＩＯユニット７を示しているが、ＩＯユニット７の数は特に制限は無い。もし、ＣＰＵユニットを３つ以上設ける場合、ＦＴ制御部５は、ＩＯ命令の発行元のＣＰＵユニットの優先度が最も高いか否かを判定し、最も高ければ高優先信号を出力し、最も高くなければ低優先信号を出力すれば良い。
【００４５】
また、本実施形態においては、従来技術のように、ＩＯユニット７は、比較装置を有している必要はなく、ＦＴ制御回路３から到達したＩＯ命令に基づき、即座にＩＯ処理を実行すれば良い。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態のフォールトトレラントコンピュータの構成を示す図である。
【図２】図１に示したフォールトトレラントコンピュータの動作を説明するフローチャートである。
【符号の説明】
【００４７】
１    ＣＰＵユニット（運用系）
２    ＣＰＵユニット（待機系）
３    ＦＴ制御回路
４    ＩＯ比較部
５    ＦＴ制御部
６    ＩＯ制御部
７    ＩＯユニット
【図１】
2008225752.tif 000003
【図２】
2008225752.tif 000004