(57)【要約】【課題】フォールトトレラントシステムにおいて、プロセッサの同期・非同期状態に応じたアクセス処理を実現する。【解決手段】  フォールトトレラントシステムを成す２つのシステムにおいて、ルータ１１３は、ＣＰＵ１１１からＩＯデバイス１２３へのアクセスパケットに、アクセス元及びアクセス先のＩＤコードと、同期アクセスか否かの同期情報とを含むタグ情報を付与する。アクセス比較部１３３は、ＣＰＵ１１１からのパケットをシステム毎に個別に保持するバッファ１３４、１３５と、バッファ１３４、１３５内のパケットに付与されたタグ情報に基づいてパケットが同期アクセスか否かを判定するタグチェック部１３６と、パケットが同期アクセスのときに、一方のシステムからのアクセスパケットをＩＯ  ＩＦ１２１ａに出力し、残りのシステムからのアクセスパケットを破棄する比較部１３７とを備える。【選択図】  図５
2006178615.tif 000002
【特許請求の範囲】
【請求項１】
互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたフォールトトレラントシステムであって、
前記複数のシステムは、
自他システム間においてロックステップ同期の状態で動作可能なプロセッサ部と、
前記プロセッサ部に接続される入出力部と、
前記プロセッサ部及び前記入出力部間に接続される制御部と、
前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、
前記制御部は、
前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するタグ付与手段と、
前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、
前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定する同期判定手段と、
前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄する処理手段とを備えたことを特徴とするフォールトトレラントシステム。
【請求項２】
前記同期アクセスデータか否かの判別情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記同期アクセスデータでない場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項１記載のフォールトトレラントシステム。
【請求項３】
互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御装置であって、
前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するタグ付与手段と、
前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、
前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定する同期判定手段と、
前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄する処理手段とを備えたことを特徴とするフォールトトレラントシステムで用いる制御装置。
【請求項４】
前記同期アクセスデータか否かの判別情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記同期アクセスデータでない場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項３記載のフォールトトレラントシステムで用いる制御装置。
【請求項５】
互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いるアクセス制御方法であって、
前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するステップと、
前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するステップと、
前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定するステップと、
前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄するステップとを備えたことを特徴とするフォールトトレラントシステムで用いるアクセス制御方法。
【請求項６】
前記同期アクセスデータか否かの判別情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記同期アクセスデータでない場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項５記載のフォールトトレラントシステムで用いるアクセス制御方法。
【請求項７】
互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御プログラムであって、
前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するステップと、
前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するステップと、
前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定するステップと、
前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄するステップとをコンピュータに実行させることを特徴とするフォールトトレラントシステムで用いる制御プログラム。
【請求項８】
前記同期アクセスデータか否かの判別情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記同期アクセスデータでない場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項７記載のフォールトトレラントシステムで用いる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラムに係り、とくにコンピュータシステムにおけるフォールトトレラント実現のためのプロセッサからＩＯデバイスへのアクセス制御に関する。
【背景技術】
【０００２】
従来、コンピュータシステムにおいて、そのコンピュータハードウェアを構成するＣＰＵ（Central Processing Unit）、メモリ、ＰＣＩ（Peripheral Component Interconnect）、ディスク、電源等、全てのコンポーネントを多重化（例えば、二重化又は三重化）して、いずれかのコンポーネントに障害が発生してもコンピュータシステムを停止することなく連続稼動が可能なフォールトトレラントコンピュータシステム（以下、「フォールトトレラントシステム」と呼ぶ）が知られている。
【０００３】
フォールトトレラントシステムでは、多重化された複数のＣＰＵ（プロセッサ）が常に同期を取りながら同じタイミングで同一動作を実行する（このことを「ロックステップ同期」と言う）。このようにロックステップ同期で同一動作を実行している複数のＣＰＵでは、あるＣＰＵに障害が発生した場合でも、残りのＣＰＵが正常稼動を続ける。このため、フォールトトレラントシステムは、ＣＰＵにより実行されるオペレーティングシステム（ＯＳ）やアプリケーションソフトウェア等のソフトウェア動作には影響を与えず、稼動し続けることができる。
【０００４】
このようなフォールトトレラントシステムの先行技術として、特許文献１にはロックステップ同期での命令実行のための装置及び方法が、また特許文献２には、フォールトトレラントサーバにおける大規模記録デバイスへのアクセス装置及び方法が、特許文献３には、ロックステップ同期により動作するプロセッサを含む複数の処理セット間のメモリ部分複写による高速再同期化技術が、特許文献４には、２つのシステム間でロックステップ同期で同一命令を同時に処理するＣＰＵと入出力（ＩＯ）デバイスとの間でパケットを自他システムにルーティングするルータを持つ構成がそれぞれ開示されている。
【特許文献１】米国特許出願公開第２００２／０１５２４１８号明細書
【特許文献２】米国特許出願公開第２００２／０１５２４１９号明細書
【特許文献３】米国特許第５９５３７４２号明細書
【特許文献３】米国特許第５７５１９３２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述したフォールトトレラントシステムでは、複数のＣＰＵが非同期状態のときは、各ＣＰＵから発行されるアクセスを個別のアクセスとして処理すると共に、複数のＣＰＵがロックステップ同期状態にある場合は、各ＣＰＵから発行されるアクセスを単一のアクセスとして処理することが望まれている。しかし、上述した従来例にあっては、こういったＣＰＵの同期及び非同期状態に応じたアクセス処理を実現することを必ずしも意識したものではない。
【０００６】
本発明は、このような従来の事情を考慮してなされたもので、フォールトトレラントシステムにおいて、プロセッサの同期・非同期状態に応じたアクセス処理を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るフォールトトレラントシステムは、互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたフォールトトレラントシステムであって、前記複数のシステムは、自他システム間においてロックステップ同期の状態で動作可能なプロセッサ部と、前記プロセッサ部に接続される入出力部と、前記プロセッサ部及び前記入出力部間に接続される制御部と、前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、前記制御部は、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するタグ付与手段と、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定する同期判定手段と、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄する処理手段とを備えたことを特徴とする。
【０００８】
本発明において、前記同期アクセスデータか否かの判別情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記同期アクセスデータでない場合、前記アクセス元の識別情報が個々に設定されてもよい。
【０００９】
本発明に係るフォールトトレラントシステムで用いる制御装置は、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムの制御装置であって、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するタグ付与手段と、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定する同期判定手段と、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄する処理手段とを備えたことを特徴とする。
【００１０】
本発明に係るフォールトトレラントシステムで用いるアクセス制御方法は、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムのアクセス制御方法であって、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するステップと、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するステップと、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定するステップと、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄するステップとを備えたことを特徴とする。
【００１１】
本発明に係るフォールトトレラントシステムで用いる制御プログラムは、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムの制御プログラムであって、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか否かの同期情報とを含むタグ情報を付与するステップと、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するステップと、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか否かを判定するステップと、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか１つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄するステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、フォールトトレラントシステムにおいて、プロセッサ部の同期・非同期状態に応じたアクセス処理を実現することができる。
【発明を実施するための最良の形態】
【００１３】
次に、本発明に係るフォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラムを実施するための最良の形態について図面を参照して詳細に説明する。
【００１４】
図１は、本実施例によるフォールトトレラントシステムの基本構成を示す。
【００１５】
図１に示すフォールトトレラントシステム（「フォールトトレラントコンピュータ」、「フォールトトレラントサーバ」等とも言う）は、互いに同一のコンピュータハードウェアから構成されている複数のシステムから成る多重化コンピュータシステムとして二重化コンピュータシステムを適用したもので、２つのシステム１００、１００、即ち「＃０システム」及び「＃１システム」を備えている。図１の例では、互いに独立した＃０システムと＃１システムが単一のフォールトトレラントシステムを構成している。以下の説明では、必要に応じて、２つのシステム１００、１００の一方（例えば、＃０システム）を「自システム（自系）」としたときに、その他方を「他システム（他系）」（例えば、＃１システム）として区別して使用する。
【００１６】
各システム１００、１００は、図示のように、プロセッサ部を成すＣＰＵサブシステム１１０と、入出力部を成すＩＯ（Input Output：入出力）サブシステム１２０と、ＣＰＵサブシステム１１０及びＩＯサブシステム１２０に接続されるＦＴ（フォールトトレラント）コントローラ１３０と、自他システム間のＣＰＵサブシステム１１０及びＩＯサブシステム１２０を相互に接続する信号伝送路としてのクロスリンク１４０、１４０とを備えている。本実施例では、ＦＴコントローラ１３０は、ＣＰＵサブシステム１１０及びＩＯサブシステム１２０内の各種コントローラ（後述のメモリコントローラ１１３、ＩＯコントローラ１２１）と共にフォールトトレラントシステム内のボードコントローラ（制御装置）１０１として搭載されている。
【００１７】
自システム内のＣＰＵサブシステム１１０とＩＯサブシステム１２０とは、ＦＴコントローラ１３０を介して互いにアクセス可能となっている。また、自システムのＣＰＵサブシステム１１０と他システムのＩＯサブシステム１２０とは、自システムのＦＴコントローラ１１０、クロスリンク１４０、及び他システムのＦＴコントローラ１１０を介して互いにアクセス可能となっている。
【００１８】
ＣＰＵサブシステム１１０は、ＣＰＵ１１１と、このＣＰＵ１１１の主記憶を成すメモリ１１２と、ＣＰＵ１１１及びメモリ１１２間にＣＰＵバスを介して接続されるメモリコントローラ１１３を有する。自他システムのＣＰＵサブシステム１１０、１１０間は、各々のメモリコントローラ１１３、１１３を介して接続されている。
【００１９】
自他システムのＣＰＵサブシステム１１０、１１０は、互いにロックステップ同期で同じ動作タイミングで同一動作を行い、ハードウェアの故障検出によりサービス中のＣＰＵサブシステム１１０が切り離されると、同一動作中のＣＰＵサブシステム１１０がそのままサービスを継続するようになっている。
【００２０】
ＩＯサブシステム１２０は、ＣＰＵサブシステム１１０のＣＰＵ１１１で実行されるソフトウェアによるミラーリングの処理によって両システム１００、１００間で冗長性を持つよう構成されている。図１の例では、ＣＰＵ１１１とＩＯデバイス１２６とを接続するための複数（図中の例では２つ）のＩＯコントローラ１２１、１２１と、自他システム間でＣＰＵサブシステム１１０、１１０の二重化のため、両メモリ１１２、１１２の主記憶領域の内容を複写するためのＤＭＡ（Direct Memory Access）コントローラ及び両システム１００、１００間での情報共有を行うための共有メモリやシステム間通信機能を持つ共有リソースコントローラを含むＤＭＡ／共有リソースコントローラ（図示しない）とを有する。
【００２１】
２つのＩＯコントローラ１２１、１２１の一方には、ＩＯブリッジ１２２を介して図示しないハードディスクドライブ（ＨＤＤ）等のＩＯデバイス１２３が、またその他方には、レガシーＩＯブリッジ１２４を介してＲＯＭ１２５がそれぞれ接続されている。各ＩＯコントローラ１２１、１２１は、自システムのＣＰＵサブシステム１１０と、他システムのＣＰＵサブシステム１１０からそれぞれアクセス可能となっている。ＩＯブリッジ１２３は、例えばＰＣＩ（Peripheral Component Interconnect）バス、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４等のインターフェースブリッジが、またレガシーＩＯブリッジ１２４は、例えばＰＳ（Personal System）／２ポートやＲＳ−２３２Ｃ（Recommended Standard 232 version C）ポート等のインターフェースブリッジが例示できる。
【００２２】
ここで、本実施例のフォールトトレラント実現のためのアクセス制御の原理について説明する。
【００２３】
本実施例は、両システム１００、１００の各ＣＰＵ１１１、１１１がロックステップ同期を取りながら同じタイミングで動作する冗長ＣＰＵ構成において、ＩＯデバイス１２３を冗長ＣＰＵ１１１、１１１間で共有するフォールトトレラントシステムによる、ＣＰＵ１１１からＩＯデバイス１２３へのアクセス制御に関するものである。ここで、ロックステップ同期しているときの各ＣＰＵ１１１、１１１からＩＯデバイス１２３へのアクセスは、全て同一であり、実質１つのＣＰＵ１１１からのアクセスと等価となる。
【００２４】
図２は、ロックステップ同期前の状態で＃０システムのＣＰＵ１１１から＃０システムのＩＯデバイス１２３へのアクセス動作、図３は、ロックステップ同期前の状態で＃１システムのＣＰＵ１１１から＃０システムのＩＯデバイス１２３へのアクセス動作、図４は、ロックステップ同期中のアクセス動作をそれぞれ説明するものである。
【００２５】
図２及び図３に示すように、ロックステップ同期前の状態では、ＣＰＵ１１１がＩＯデバイス１２３にアクセスする場合、冗長化のための各ＣＰＵ１１１は全く異なる動作であるため、ＩＯデバイス１２３はそれぞれのＣＰＵ１１１からのアクセス要求Ａ１、Ａ３に対応して、異なる内容あるいは異なるタイミングでアクセス応答（レスポンス）Ａ２、Ａ５を返すことになる。
【００２６】
一方、図４に示すように、ロックステップ同期動作の状態になると、複数のＣＰＵ１１１からＩＯデバイス１２３へのアクセス要求は単一のアクセス要求とし、これに対するＩＯデバイス１２３からの単一のアクセス応答（レスポンス）を全てのＣＰＵ１１１に返す必要がある。
【００２７】
即ち、フォールトトレラントシステムにおけるロックステップ同期前の状態からロックステップ同期動作の状態へ移行する際の移行イベントによって、複数のＣＰＵ１１１からのアクセスは、それぞれ複数のＣＰＵ１１１による個別のアクセスから、全ＣＰＵ１１１によるアクセスが単一のアクセスとなるように処理を変更しなければならない。そして、フォールトトレラントシステムにおけるＣＰＵ１１１からのアクセス比較処理においては、各ＣＰＵ１１１のアクセスを単一のアクセスとして処理しなければならない場合のみ、各ＣＰＵ１１１の出力の比較を実施しなければならない。
【００２８】
そこで、本実施例では、以上のようなＣＰＵ１１１の同期・非同期状態に応じたアクセス処理を実現するために、各々のアクセスパケットに、アクセス元及びアクセス先のＩＤ（Source ID及びDestination ID）タグに加え、アクセスが発行されたタイミングで同期状態であったか非同期状態であったかを判別するタグを追加する。この場合、同期状態の判定は、各システム１００、１００で管理されているステート情報によって得る。
【００２９】
図５は、上記アクセス制御を行うためのフォールトトレラントシステムの主要部構成を示す。
【００３０】
図５に示すフォールトトレラントシステムには、機能上、メモリコントローラ１１３内に本発明のタグ付与手段及びこれに対応する処理ステップを実行する機能を有するＣＰＵバスＩ／Ｆ（インターフェース）ルータ（以下、単に「ルータ」と略称する）１１４が、ＦＴコントローラ１３０内に、本発明の同期判定手段・処理手段及びこれらに対応する処理ステップを実行する機能を有する各部、即ちステート管理部１３１、タイムアウトコントロール部１３２、及びアクセス比較部１３３が、ＩＯコントローラ１２１内にＩＯ  Ｉ／Ｆ１２１ａがそれぞれ設けられている。
【００３１】
ルータ１１４は、ＣＰＵサブシステム１１０内のＣＰＵバスＩ／Ｆと、メモリ１１２の主記憶領域及び外部ＩＯデバイス１２３との間でアクセスされるアクセスパケットをルーティングする。また、このルータ１１４は、アクセスパケットが読み取り要求（リードリクエスト）等の応答（レスポンス）を要求する場合、その応答先を明示するためのタグ情報を各アクセスパケットに付与する。
【００３２】
アクセス比較部１３３は、自システムのＣＰＵ１１１からルータ１１４を経由して送られてくるアクセスパケットを一時的に格納するバッファ１３４と、他システムのＣＰＵ１１１からルータ１１４を経由して送られてくるアクセスパケットを一時的に格納するバッファ１３５と、両バッファ１３４、１３５内のアクセスパケットに付与されたタグ情報をチェックしてアクセスパケットが両ＣＰＵ１１１、１１１の同期状態で発行された同期アクセスか、それとも非同期状態で発行された非同期アクセスかを判定するタグチェック部１３６と、両バッファ１３４、１３５内のアクセスパケットを比較してエラー検出を行う比較部１３７とを有する。
【００３３】
比較部１３７は、タグチェック部１３６により同期アクセスであると判定されたアクセスパケットに関し、アクセス比較結果が一致であれば、一方のシステム１００からのアクセスを冗長アクセスとして破棄し、残りの側のシステム１００からのアクセスをＩＯ  Ｉ／Ｆ１２１ａに出力する。また、アクセス比較結果が不一致であれば、システム１００内に保持されている稼動履歴情報（例えば、サービスを提供しているシステム（制御系、アクティブ系）か、待機しているシステム（待機系、スタンバイ系）かの情報とそれに基づく稼動履歴等）等から予め信頼性の高いシステム１００からのアクセスを残し、残りのシステム１００からのアクセスを冗長パケットとして破棄する。
【００３４】
タイムアウトコントロール部１３２は、アクセス比較結果の不一致によるアクセス破棄やＩＯデバイス１２３の故障等が原因でＣＰＵ１１１に対して応答を返すパケットがない場合、タイマー機能によって一定時間後にアクセスのアボート応答を行う。
【００３５】
ステート管理部１３１は、システムの同期状態情報や、ＣＰＵ１１１とＩＯデバイス１２３間のアクセス可否情報、システムの接続・切り離し情報、システムの信頼性情報を管理する。
【００３６】
ＩＯ  Ｉ／Ｆ１２１ａは、システム１００と外部ＩＯデバイス１２３との間のインターフェースとして機能するもので、アクセスパケットの入出力を制御する。
【００３７】
次に、本実施例の動作を説明する。
【００３８】
まず、ＣＰＵ１１１からＩＯデバイス１２３へのアクセスパケットがＣＰＵバスＩ／Ｆルータ１１４に入力される。このとき、ＣＰＵバスＩ／Ｆルータ１１４には、ステート管理部１３１から出力されるＣＰＵ１１１の同期状態情報を含むステート情報も入力される。
【００３９】
次いで、ＣＰＵバスＩ／Ｆルータ１１４にて、ＣＰＵ１１１からのアクセスパケットに対してタグ付けが行われる。タグには、アクセスエンドポイントであるアクセス元（Source）を識別するＩＤ（identification）情報と、アクセス先（Destination）を識別するＩＤ情報のほか、ステート管理部１３１からのＣＰＵ１１１の同期状態情報が書き込まれる。
【００４０】
ここで、本実施例では、ＣＰＵ１１１の同期情報と、アクセスエンドポイントであるアクセス元のＩＤ情報とを組み合わせたものが使用される。即ち、＃０システムのＣＰＵ１１１と＃１システムのＣＰＵ１１１からのアクセス時に付けられるタグは、見かけ上、同期の場合は各ＣＰＵ１１１、１１１間で同一のアクセス元ＩＤコード（Source ID）を、また非同期の場合は各ＣＰＵ１１１、１１１間で個別のアクセス元ＩＤコードを付与するよう設定される。
【００４１】
図６は、アクセスパケットに付与されるタグ情報の内のＣＰＵ同期情報付きアクセス元ＩＤコード（Source ID）の設定例を示す。図６の例では、＃０システムのＣＰＵ１１１では、同期の場合は、Source ID＝Sync CPUに、非同期の場合は、Source ID＝CPU 0にそれぞれ設定される。これに対し、＃１システムのＣＰＵ１１１では、同期の場合は、＃０システムと同一で、Source ID＝Sync CPUに、非同期の場合は、＃０システムとは異なり、Source ID＝CPU 1にそれぞれ設定される。
【００４２】
このようなＣＰＵ同期情報付きアクセス元ＩＤコードをもつタグが付与されたアクセスパケットは、ＦＴコントローラ１３０内のアクセス比較部１３３に入力される。
【００４３】
図７は、アクセス比較部１３３の処理を示すフローチャートである。
【００４４】
アクセス比較部１３３は、ＣＰＵバスＩ／Ｆルータ１１４からのアクセスパケットが到着すると（ステップＳ１）、比較部１３７前段のバッファ１３４、１３５に一旦保持し、保持されたアクセスパケットのタグ情報をタグチェック部１３６にてチェックし、これによりタグ情報から同期アクセスが非同期アクセスかの判別が行う（ステップＳ２）。
【００４５】
その結果、非同期アクセスの場合は、アクセス比較部１３３での比較を行わず、ＩＯ  Ｉ／Ｆ１２１ａに向けてアクセスパケットを流す（ステップＳ７）。
【００４６】
一方、同期アクセスの場合は、他システムのＣＰＵ１１１からの対応するアクセスパケットが到着しているかどうか確認し（ステップＳ３）、同期アクセスに対応するアクセスパケットが揃うまで、タイムアウトコントロール部１３２によるタイマーを用いて一定時間待つ（ステップＳ３：ＮＯ、ステップＳ５：ＮＯ）。これにより、一定時間内に対応パケットが揃った時点で（ステップＳ３：ＹＥＳ）、比較部１３７にてアクセスパケットの比較を行い（ステップＳ４）、冗長パケットを破棄して、ＩＯ  Ｉ／Ｆ１２１ａに向けて１つのアクセスパケットを流す（ステップＳ６、Ｓ７）。
【００４７】
例えば、両アクセスパケットが一致していれば、一方のシステム１００からのアクセスを冗長アクセスとして破棄し、残りの側のシステム１００からのアクセスをＩＯ  Ｉ／Ｆ１２１ａに出力する。また、両アクセスパケットが不一致であれば、前述したようにシステム１００内に保持されている稼動履歴情報等から予め信頼性の高いシステム１００からのアクセスパケットを残して出力し、残りのシステム１００からのアクセスを冗長パケットとして破棄する。
【００４８】
一方、上記ステップＳ３、Ｓ５にて一定時間内に同期アクセスに対応するアクセスパケットが揃わず、タイムアウトした場合（ステップＳ３：ＮＯ、ステップＳ５：ＹＥＳ）、上記ステップＳ４の処理（アクセスパケット比較）を行わずに、上記ステップＳ６、Ｓ７の処理に移行する。
【００４９】
上記ステップＳ７にてアクセスパケットがＩＯ  Ｉ／Ｆ１２１ａに出力されると、ＩＯ  Ｉ／Ｆ１２１ａは、受け取ったアクセスの応答を返す場合には、各アクセスパケットのアクセス元コード（Source ID）を指定して返す。これにより、アクセス応答が、ＦＴコントローラ１３０を介して両システム１００、１００の各ルータ１１３、１１３経由で各ＣＰＵ１１１、１１１に送られる。
【００５０】
従って、本実施例によれば、各ＣＰＵ１１１、１１１が非同期状態のときは、各ＣＰＵ１１１、１１１から発行されるアクセスを個別のアクセスとして処理すると共に、各ＣＰＵ１１１、１１１がロックステップ同期状態にある場合は、各ＣＰＵ１１１、１１１から発行されるアクセスを単一のアクセスとして処理することができ、これにより、フォールトトレラントシステムにおいて、ＣＰＵ１１１の同期・非同期状態に応じたアクセス処理を実現することが可能になる。
【００５１】
なお、本実施例では、メモリコントローラ１１３内にルータ１１４が、ＦＴコントローラ１３０内にステート管理部１３１、タイムアウトコントロール部１３２、及びアクセス比較部１３３が、ＩＯコントローラ１２１内にＩＯ  Ｉ／Ｆ１２１ａがそれぞれ配置されているが、これはあくまで機能上の構成であり、同様の機能を達成可能なものであればこれに限らず、他の構成であってもよい。例えば、全ての構成を１つのコントローラ内に配置してもよい。
【００５２】
また、上記実施例では、フォールトトレラントシステムとして二重化コンピュータシステムを例示しているが、本発明はこれに限らず、例えば三重化等、多重化した場合も適用可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例に係るフォールトトレラントシステムの全体構成を示す概略ブロック図である。
【図２】ロックステップ同期前の状態で＃０システムのＣＰＵから＃０システムのＩＯデバイスへのアクセス動作を説明する図である。
【図３】ロックステップ同期前の状態で＃１システムのＣＰＵから＃０システムのＩＯデバイスへのアクセス動作を説明する図である。
【図４】ロックステップ同期中のアクセス動作を説明する図である。
【図５】本発明の実施例に係るフォールトトレラントシステムの主要部構成を示す概略ブロック図である。
【図６】アクセスパケットに付与されるタグ中のＣＰＵ同期情報付きアクセス元ＩＤコードの設定例を説明する図である。
【図７】ＦＴコントローラ内のアクセス比較部によるタグチェックの処理を説明する概略フローチャートである。
【符号の説明】
【００５４】
１１０  ＣＰＵサブシステム
１１１  ＣＰＵ
１１２  メモリ
１１３  メモリコントローラ
１１４  ＣＰＵバスＩ／Ｆルータ
１２０  ＩＯサブシステム
１２１  ＩＯコントローラ
１２１ａ  ＩＯ  Ｉ／Ｆ
１２２  ＩＯブリッジ
１２３  ＩＯデバイス
１２４  レガシーＩＯブリッジ
１２５  ＲＯＭ
１３０  ＦＴコントローラ
１３１  ステート管理部
１３２  タイムアウトコントローラ部
１３３  アクセス比較部
１３４、１３５  バッファ
１３６  タグチェック部
１３７  比較部
１４０  クロスリンク
【図１】
2006178615.tif 000003
【図２】
2006178615.tif 000004
【図３】
2006178615.tif 000005
【図４】
2006178615.tif 000006
【図５】
2006178615.tif 000007
【図６】
2006178615.tif 000008
【図７】
2006178615.tif 000009