(57)【要約】【課題】比較的簡易な構成で、各コンポーネント間で生じる障害を検出する。【解決手段】ロックステップ方式のフォールトトレラントシステム１０において、各サブシステム１、２は、ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、ＣＰＵ２２−ノースブリッジ３１間、および、ＣＰＵ２１−ＣＰＵ２２間に配置され、中継するデータからチェックサムを作成するブリッジ７１〜７５と、作成したチェックサムをＦＴコントローラ４１に送信するためのＦＴバス８１とを有する。そして、ＦＴコントローラ４１は、ブリッジ７１〜７５から送信されたチェックサムと、クロスリンクを介して受信した他サブシステムから送信されたチェックサムとを比較して不一致を検出することで、サブシステム１、２間の処理の不一致を検知する。【選択図】図１
2010218370.tif 000002
【特許請求の範囲】
【請求項１】
互いに同一のハードウェア及びソフトウェアで構成された複数のサブシステムを備え、ロックステップ方式により、各サブシステム間で同一の処理が実行されるフォールトトレラントシステムにおいて、
前記複数のサブシステムは、それぞれ、
ノースブリッジとＩＯブリッジ間の通信を中継するとともに他サブシステムに接続される制御部と、
少なくとも、ＣＰＵ（中央演算処理装置）間、ＣＰＵとメモリ間、および、ＣＰＵとノースブリッジ間の何れかに配置され、配置された両者間で送受信されるデータからエラー検出用のデータを作成するエラー検出用データ作成部と、
前記エラー検出用データ作成部と前記制御部とを接続する信号伝送路と、を備え、
前記制御部は、
前記信号伝送路を介して受信した前記エラー検出用データ作成部が作成したエラー検出用のデータと他サブシステムから受信したエラー検出用のデータとを比較して不一致を検出することで、サブシステム間での処理の不一致を検出する、
ことを特徴とするフォールトトレラントシステム。
【請求項２】
前記エラー検出用データ作成部は、配置された両者間で送受信されるデータを中継するブリッジである、
ことを特徴とする請求項１に記載のフォールトトレラントシステム。
【請求項３】
前記エラー検出用データ作成部は、配置された両者間で送受信されるデータを監視するスヌーパである、
ことを特徴とする請求項１又は２に記載のフォールトトレラントシステム。
【請求項４】
前記エラー検出用データ作成部は、配置された両者間で送受信される複数パケット分のデータから１つのエラー検出用のデータを作成する、
ことを特徴とする請求項１乃至３の何れか１項に記載のフォールトトレラントシステム。
【請求項５】
前記エラー検出用データ作成部は、配置された両者間で送受信されるデータを並列化し、並列化したデータからエラー検出用のデータを作成する、
ことを特徴とする請求項１乃至４の何れか１項に記載のフォールトトレラントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロックステップ方式のフォールトトレラントシステムに関する。
【背景技術】
【０００２】
データ処理を実行するコンピュータシステムにおいて、ＣＰＵ（Central Processing Unit）、メモリ、ＰＣＩ（Peripheral Component Interconnect）等のコンポーネントをサブシステム間で多重化して、コンポーネントの一部に障害が発生しても、停止することなく、連続稼働することを可能にしたフォールトトレラントシステムが知られている。このフォールトトレラントシステムでは、例えば、ロックステップ方式が採用されている。
【０００３】
ロックステップ方式のフォールトトレラントシステムでは、多重化されたサブシステムのコンポーネント同士で、互いに同期をとりながら、同じ処理を実行する必要がある。従って、このようなフォールトレラントシステムでは、コンポーネント間の同期をとるために、ＦＴコントローラが実装され、多重化されたコンポーネントの処理内容を比較し、処理内容の不一致を検出することで、システムの障害（多重化されたコンポーネント間の処理の不一致）が検知される。
【０００４】
例えば、図９に示すような２つのサブシステムから構成される従来のフォールトトレラントシステムでは、ＦＴコントローラがＩＯブリッジとノースブリッジとの間に配置される。また、ＦＴコントローラは、クロスリンクを介して、他方のサブシステムと接続される。ＦＴコントローラは、ＩＯデバイス側とノースブリッジとの間で処理されるデータを両サブシステム間で比較し、不一致を検知することでシステムの障害を検知する。
【０００５】
また、特許文献１に開示されているフォールトトレラントシステムでは、ＣＰＵとＩＯデバイス、および、ＣＰＵとメモリとを接続するノースブリッジ（ボードコントローラ）内に、ＦＴコントローラが配置される。特許文献１のフォールトトレラントシステムでは、ＣＰＵ及びメモリの入出力バスがノースブリッジを経由するため、ノースブリッジ内のＦＴコントローラ内でＣＰＵ−メモリ間の処理内容を両サブシステム間で比較して、システムの障害を検知することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１７８６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図９に示す従来のフォールトトレラントシステムでは、ＩＯデバイス側とノースブリッジとの間で処理されるデータを比較しているだけであるため、それ以外の各コンポーネント（ＣＰＵ、メモリ、および、ノースブリッジ等）間で生じる処理の障害（同期の不一致）を検出することができない。
【０００８】
また、特許文献１に記載のフォールトトレラントシステムでは、ＦＴコントローラがノースブリッジ内にあるため、従来よりも複雑で高機能なノースブリッジを開発する必要がある。従って、システムの開発期間が長期化し、開発費用が増大してしまう虞がある。
【０００９】
また、近年では、ＣＰＵ−メモリ間の高バンド幅化に伴い、ＣＰＵとメモリとを直結するアーキテクチャが増えている。特許文献１に記載のフォールトトレラントシステムでは、ノースブリッジを経由してメモリとＣＰＵとを接続する必要があるため、このようなアーキテクチャでは、特許文献１に記載のフォールトトレラントシステムを構成することができない。
【００１０】
本発明は、上記実情に鑑みてなされたものであり、比較的簡易な構成で、且つ、ＣＰＵとメモリとを直結するアーキテクチャであっても、各コンポーネント間で生じる障害を検出することを可能とする、フォールトトレラントシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の第１の観点に係るフォールトトレラントシステムは、
互いに同一のハードウェア及びソフトウェアで構成された複数のサブシステムを備え、ロックステップ方式により、各サブシステム間で同一の処理が実行されるフォールトトレラントシステムにおいて、
前記複数のサブシステムは、それぞれ、
ノースブリッジとＩＯブリッジ間の通信を中継するとともに他サブシステムに接続される制御部と、
少なくとも、ＣＰＵ（中央演算処理装置）間、ＣＰＵとメモリ間、および、ＣＰＵとノースブリッジ間の何れかに配置され、配置された両者間で送受信されるデータからエラー検出用のデータを作成するエラー検出用データ作成部と、
前記エラー検出用データ作成部と前記制御部とを接続する信号伝送路と、を備え、
前記制御部は、
前記信号伝送路を介して受信した前記エラー検出用データ作成部が作成したエラー検出用のデータと他サブシステムから受信したエラー検出用のデータとを比較して不一致を検出することで、サブシステム間での処理の不一致を検出する、
ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、比較的簡易な構成で、且つ、ＣＰＵとメモリとを直結するアーキテクチャであっても、各コンポーネント間で生じる障害を検出することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係るフォールトトレラントシステムの構成を示すブロック図である。
【図２】ブリッジの構成を示すブロック図である。
【図３】ブリッジでなされる処理を説明するためのフローチャートである。
【図４】シリアルデータをＣＰＵ間で転送する処理のタイミングチャートである。
【図５】本発明の第２の実施形態に係るフォールトトレラントシステムの構成を示すブロック図である。
【図６】スヌーパの構成を示すブロック図である。
【図７】フォールトトレラントシステムの変形例を示すブロック図である。
【図８】フォールトトレラントシステムの変形例を示すブロック図である。
【図９】従来のフォールトトレラントシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、この発明の第１の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付す。
【００１５】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るフォールトトレラントシステム１０の構成例を示すブロック図である。フォールトトレラントシステム１０は、同一のハードウェア、ソフトウェアから構成され、且つ、同一クロックで動作するサブシステム１、２を備える。
【００１６】
サブシステム１、２は、それぞれ、２つのメモリ１１、１２と、２つのＣＰＵ２１、２２と、ノースブリッジ３１と、ＦＴコントローラ４１と、ＩＯブリッジ５１と、各種のＩＯデバイス６１と、５つのブリッジ７１〜７５と、を備えて構成される。
【００１７】
ＣＰＵ２１、２２は、それぞれ、演算処理を実行するものである。また、ＣＰＵ２１とＣＰＵ２２とは、ブリッジ７５を介して接続されており、両者間でデータを送受信可能である。
メモリ１１、１２は、それぞれ、各ブリッジ７１、７２を介して各ＣＰＵ２１、２２と接続され、データ等を記憶したり、各ＣＰＵ２１、２２の作業領域となる。
【００１８】
ノースブリッジ３１は、各ＣＰＵ２１、２２とＦＴコントローラ４１とを接続するＬＳＩ（Large Scale Integration）チップである。具体的には、ノーズブリッジ３１は、ブリッジ７３、７４のそれぞれを介して、各ＣＰＵ２１、２２と接続する。また、ノーズブリッジ３１は、ＦＴコントローラ４１と接続される。
【００１９】
ＦＴコントローラ４１は、ノースブリッジ３１とＩＯブリッジ５１との間の通信を中継するとともに、ロックステップ方式によるフォールトトレラントを実現するための各種の機能を有する。
具体的には、例えば、ＦＴコントローラ４１は、ＦＴバス８１を介して、自システム内の各ブリッジ７１〜７５から出力されるエラー検出用のデータ（チェックサム）を受信する。また、ＦＴコントローラ４１は、クロスリンクを介して、他方のサブシステムからも同様にチェックサムを受信する。そして、ＦＴコントローラ４１は、この２つのチェックサムを比較して不一致がある場合にエラー(サブシステム１、２間の同期外れ)が発生したものと判別し、サブシステム１、２の一方をシステムから切り離す処理等を行う。
【００２０】
ＩＯブリッジ５１は、ＰＣＩ（Peripheral Component Interconnect）バス、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４等のインターフェースブリッジであり、各種のＩＯデバイス６１とＦＴコントローラ４１との間で、シリアル伝送を行う。
ＩＯデバイス６１は、ハードディスクドライブや、ＬＡＮ（Local Area Network）ポートなどの各種のデバイスであり、ＩＯブリッジ５１に接続される。
【００２１】
ブリッジ７１〜７５は、それぞれ、ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、ＣＰＵ２２−ノースブリッジ３１間、および、ＣＰＵ２１−ＣＰＵ２２間に配置され、両者間で送受信されるデータ（パケット）を中継する。また、ブリッジ７１〜７５は、この送受信されるデータからチェックサムを作成して、ＦＴバス８０を介して、ＦＴコントローラ４１に送信する。
【００２２】
ブリッジ７１〜７５の構成を図２に示す。ブリッジ７１〜７５は、それぞれ、受信部Ｂ１、Ｂ２と、送信部Ｂ３、Ｂ４と、内部バスＢ５、Ｂ６と、クロックバスＢ７、Ｂ８と、計算部Ｂ９、Ｂ１０と、出力ポートＢ１１とを備えて構成される。
【００２３】
受信部Ｂ１、Ｂ２は、それぞれ、SerDes（SERializer/DESerializer）等の回路を備え、当該ブリッジ７１〜７５が間に配置される両者間（ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、ＣＰＵ２２−ノースブリッジ３１間、ＣＰＵ２１−ＣＰＵ２２間の何れか）で送受信されるデータ（パケット）を並列化して、内部バスＢ５、Ｂ６のそれぞれに出力する。また、受信部Ｂ１、Ｂ２は、それぞれ、パケットを受信するタイミングで、クロックバスＢ７、Ｂ８を介して、計算部Ｂ９、Ｂ１０のそれぞれにクロック信号（動作クロック）を送信する。
【００２４】
送信部Ｂ３、Ｂ４は、それぞれ、SerDes（SERializer/DESerializer）等の回路を備え、内部バスＢ５、Ｂ６から受信した並列化されたパケットをシリアル化して、出力先に送信する。
【００２５】
内部バスＢ５、Ｂ６は、それぞれ、受信部Ｂ１と送信部Ｂ３、又は、受信部Ｂ２と送信部Ｂ４とを接続するバスである。また、内部バスＢ５、Ｂ６は、それぞれ、計算部Ｂ９、Ｂ１０にも接続されており、各計算部Ｂ９、Ｂ１０は、受信部Ｂ１から送信部Ｂ３、又は、受信部Ｂ２から送信部Ｂ４へと転送される並列化されたパケットの分析が可能である。
【００２６】
計算部Ｂ９、Ｂ１０は、それぞれ、受信部Ｂ１、Ｂ２から入力される動作クロックに同期して動作し、内部バスＢ５、Ｂ６を流れるパケットからエラー検出用のデータ（チェックサム）を作成し、出力ポートＢ１１に送信する。なお、計算部Ｂ９、Ｂ１０は、１パケット分のデータから作成したチェックサムを出力ポートＢ１１に送信するのではなく、内部バスＢ５、Ｂ６を連続して流れる複数のパケット分のデータから１つのチェックサムを作成して、出力ポートＢ１１に送信する。
【００２７】
出力ポートＢ１１は、計算部Ｂ９、Ｂ１０から送信されたチェックサムを、ＦＴバス８１を介して、ＦＴコントローラ４１に送信する。
【００２８】
次に、本実施の形態に係るフォールトトレラントシステム１０の動作について、説明する。
尚、ここでは、サブシステム１において、ＣＰＵ２１がＣＰＵ２２に、ブリッジ７５を介して、複数パケットからなるシリアルデータを送信する処理について説明する。なお、サブシステム２側においても、同一クロックで、同一のデータ送信処理が実行されている。
【００２９】
サブシステム１において、ＣＰＵ２１は、複数パケットからなるシリアルデータを１パケットずつブリッジ７５に送信する。ブリッジ７５は、ＣＰＵ２１から１パケットを受信すると、図３に示すフローチャートの処理を実行する。
【００３０】
まず、ブリッジ７５の受信部Ｂ１は、１パケットを受信すると、動作周波数を低減するために、受信したパケットを８倍又は１６倍等に並列化する（ステップＳ１１）。そして、受信部Ｂ１は、並列化したパケットを内部バスＢ５に出力するとともに、クロックバスＢ７を介して、計算部Ｂ９に動作クロックを送信する（ステップＳ１２）。以上で、送信部Ｂ１の処理は終了する。
【００３１】
内部バスＢ５を流れる並列化されたパケットは、送信部Ｂ３に送信される。送信部Ｂ３は、内部バスＢ５から並列化されたパケットを受信すると、シリアル化して（ステップＳ２１）、送信先であるＣＰＵ２２に送信する（ステップＳ２２）。以上で、送信部Ｂ３の処理は終了する。
【００３２】
一方、計算部Ｂ９は、送信部Ｂ１からの動作クロックを受信すると、内部バスＢ５に流れているパケットを解析して、当該パケットからヘッダ部分を除いたデータを取得する（ステップＳ３１）。
【００３３】
続いて、計算部Ｂ９は、ステップＳ３１で取得したデータに、ＣＲＣ（Cyclic Redundancy Check）やＭＤ５（Message Digest Algorithm 5）等の関数を作用させて、チェックサムを作成し保持する（ステップＳ３２）。なお、計算部Ｂ９は、ステップＳ３１で取得したデータ以外に、以前に作成したチェックサムを保持している場合には、取得したデータと保持しているチェックサムとを連結したデータに対して、ＣＲＣ等の関数を作用させて、新たなチェックサムを作成する。
【００３４】
続いて、計算部Ｂ９は、内部バスＢ５に流れているパケットのヘッダ部分に含まれる情報等を参照して、当該パケットがＣＰＵ２１から送信されるデータのうち、最後（最後尾）のパケットであるか否かを判別する（ステップＳ３３）。
【００３５】
最後のパケットでないと判別した場合（ステップＳ３３；Ｎｏ）、計算部Ｂ９の処理は終了する。
最後のパケットであると判別した場合（ステップＳ３３；Ｙｅｓ）、計算部Ｂ９は、ステップＳ３２で作成したチェックサムを出力ポートＢ１１に送信し、出力ポートＢ１１は、ＦＴバス８１を介して、ＦＴコントローラ４１にチェックサムを送信する（ステップＳ３４）。そして、計算部Ｂ９は、送信したチェックサムをリセット（消去）する（ステップＳ３５）。以上で、計算部Ｂ９による処理は終了する。
【００３６】
続いて、サブシステム１のＦＴコントローラ４１は、ＦＴバス８１を介して、ブリッジ７５から受信したチェックサムをコピ−して、クロスリンクを介して、サブシステム２のＦＴコントローラ４１に送信する。
【００３７】
サブシステム２においても、同様に、ＦＴコントローラ４１は、ブリッジ７５から受信したチェックサムをクロスリンクを介して、サブシステム１のＦＴコントローラ４１に送信する。そして、サブシステム１のＦＴコントローラ４１は、サブシステム２から受信したチェックサムと、ＦＴバス８１を介して受信したチェックサムとを比較する。比較の結果、両チェックサムに不一致が発生している場合、ＦＴコントローラ４１は、図示せぬ表示装置等にエラーメッセージを表示するとともに、両サブシステム１、２のいずれか一方を切り離し、切り離されていない一方のサブシステム１又はサブシステム２で処理を継続する。
なお、サブシステム２のＦＴコントローラ４１においても、ＦＴバス８１を介して受信したチェックサムと、サブシステム１から受信したチェックサムとを比較して、同様のエラーを検出する処理を実行してもよい。以上で、サブシステム１において、ＣＰＵ２１からＣＰＵ２２にデータが送信された場合の処理は終了する。
【００３８】
続いて、具体例として、３パケット分のシリアルデータをＣＰＵ２１からＣＰＵ２２に送信する場合の処理について、図４に示すタイミングチャートを用いて説明する。
【００３９】
まず、時刻ｔ１１において、サブシステム１のＣＰＵ２１が、ブリッジ７５にシリアルデータの最初のパケットＰ１を送信する。ブリッジ７５は、時刻ｔ１２にパケットＰ１を受信すると、ＣＰＵ２２にパケットＰ１を送信し、ＣＰＵ２２はパケットＰ１を受信する（時刻ｔ１３）。また、ブリッジ７５は、パケットＰ１からチェックサムを作成して保持する（時刻ｔ１４）。
【００４０】
続いて、時刻ｔ２１において、ＣＰＵ２１が、ブリッジ７５にシリアルデータの次のパケットＰ２を送信する。ブリッジ７５は、時刻ｔ２２にパケットＰ１を受信すると、ＣＰＵ２２にパケットＰ２を送信し、ＣＰＵ２２はパケットＰ２を受信する（時刻ｔ２３）。また、ブリッジ７５は、パケットＰ２と保持しているパケットＰ１から作成したチェックサムとを連結したデータからチェックサムを作成して保持する（時刻ｔ２４）。
【００４１】
続いて、時刻ｔ３１において、ＣＰＵ２１が、ブリッジ７５にシリアルデータの最後のパケットＰ３を送信する。ブリッジ７５は、時刻ｔ３２にパケットＰ３を受信すると、ＣＰＵ２２にパケットＰ３を送信し、ＣＰＵ３２はパケットＰ３を受信する（時刻ｔ３３）。また、ブリッジ７５は、パケットＰ３と保持しているパケットＰ１、Ｐ２から作成したチェックサムとを連結したデータからチェックサムを作成する。そして、受信したパケットＰ３がデータの最後であるため、ブリッジ７５は、作成したチェックサムをＦＴバス８１を介してＦＴコントローラ４１に送信する（時刻ｔ３４）。
【００４２】
ＦＴコントローラ４１は、時刻ｔ４１に、ブリッジ７５からチェックサムを受信すると、クロスリンクを介して、サブシステム２のＦＴコントローラ４１にコピーしたチェックサムを送信する（時刻ｔ４２）。そして、時刻ｔ４３に、同様の一連の処理により、サブシステム２のＦＴコントローラ４１から送信されたチェックサムを受信すると、時刻ｔ４１で受信したチェックサムと一致する否かを比較することで、エラーの有無（処理の不一致）を判別する（時刻ｔ４３）。そして、エラーを検出した場合には、両サブシステム１、２のいずれか一方を切り離し、切り離されていない一方のサブシステム１又はサブシステム２で、処理を継続する。以上で、３パケット分のシリアルデータがＣＰＵ２１からＣＰＵ２２に送信された場合の一連の処理は終了する。
【００４３】
このように、本実施形態では、ＣＰＵと各種のコンポーネント（メモリ、ノースブリッジ、ＣＰＵ）との間に、チェックサムを作成する比較的単純な機能のみを有するブリッジが配置される簡易な構成を採用することにより、各種のコンポーネント間で生じる障害（処理の不一致）を検出することができる。また、本実施形態では、ノースブリッジ３１はＦＴコントローラ４１と独立しており、フォールトトレラントを実現するに当たり、従来のノースブリッジを流用可能である。従って、本実施形態では、システムの開発期間、および、開発費用を低減することができる。また、本実施形態では、ノースブリッジを経由してメモリとＣＰＵとを接続する必要もないため、ＣＰＵとメモリとを直結するアーキテクチャにも適用することが可能である。
【００４４】
（第２の実施形態）
第１の実施形態に係るフォールトトレラントシステム１０では、ＣＰＵ−メモリ間、ＣＰＵ−ＣＰＵ間、および、ＣＰＵ−ノースブリッジ間のそれぞれにブリッジが配置され、両者間でやりとりされるデータ（パケット）からチェックサムを作成した。第２の実施形態では、このようなブリッジによる処理をスヌーパが代行することを特徴とする。
【００４５】
図５は、本発明の第２の実施形態に係るフォールトトレラントシステム１００の構成例を示すブロック図である。
第２の実施形態に係るフォールトトレラントシステム１００は、ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、ＣＰＵ２２−ノースブリッジ３１間、および、ＣＰＵ２１−ＣＰＵ２２間に、ブリッジ７１〜７５の代わりにスヌーパ９１〜９５がそれぞれ配置される。
【００４６】
各スヌーパ９１〜９５は、自身が配置される両者間で送受信されるデータ（パケット）を監視（スヌーピング）する。また、各スヌーパ９１〜９５は、第１の実施形態のブリッジ７１〜７５と同様に、両者間で送受信されるデータからチェックサムを作成して、ＦＴバス８１を介して、ＦＴコントローラ４１に送信する。
【００４７】
スヌーパ９１〜９５の構成を図６に示す。スヌーパ９１〜９５は、それぞれ、
受信部Ｎ１、Ｎ２と、内部バスＮ３、Ｎ４と、クロックバスＮ５、Ｎ６と、計算部Ｎ７、Ｎ８と、出力ポートＮ９とを備えて構成される。
【００４８】
受信部Ｎ１、Ｎ２は、それぞれ、SerDes（SERializer/DESerializer）等の回路を備え、当該スヌーパ９１〜９５が間に配置される両者間（ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、ＣＰＵ２２−ノースブリッジ３１間、ＣＰＵ２１−ＣＰＵ２２間の何れか）で送受信されるパケットをパラレルに変換して、内部バスに出力する。また、受信部Ｎ１、Ｎ２は、それぞれ、パケットを受信するタイミングで、クロックバスＮ３、Ｎ４を介して、計算部Ｎ７、Ｎ８のそれぞれにクロック信号（動作クロック）を送信する。
【００４９】
内部バスＮ３、Ｎ４は、それぞれ、受信部Ｎ１と計算部Ｎ７、および、受信部Ｎ２と計算部Ｎ８を接続するバスである。
【００５０】
計算部Ｎ７、Ｎ８は、それぞれ、ブリッジ７１〜７５の計算部Ｂ９、Ｂ１０と同様に、送信部Ｎ１、Ｎ２から入力される動作信号に同期して動作し、内部バスＮ３、Ｎ４を流れるパケットのデータ部分にＣＲＣ等やＭＤ５等の関数を作用させてチェックサムを作成し、出力ポートＮ９に送信する。なお、計算部Ｎ７、Ｎ８は、１パケット分のデータから作成したチェックサムを出力ポートＮ９に送信するのではなく、内部バスＮ３、Ｎ４を連続して流れる複数のパケット分のデータから１つのチェックサムを作成して、出力ポートＮ９に送信する。
【００５１】
出力ポートＮ９は、ブリッジ７１〜７５の出力ポートＢ１１と同様に、計算部Ｎ７、Ｎ８から送信されたチェックサムを、ＦＴバス８１を介して、ＦＴコントローラ４１に送信する。
【００５２】
このような構成のフォールトトレラントシステム１００では、第１の実施形態と同様に、コンポーネント間でデータ（パケット）が送受信されると、間に位置するスヌーパ９１〜９５が、当該データを監視（スヌープ）してチェックサムを作成し、ＦＴコントローラ４１に送信する。そして、ＦＴコントローラ４１は、第１の実施形態と同様に、ＦＴバス８１を介して受信したチェックサムと、サブシステム１から受信したチェックサムとを比較して、不一致が検出された場合、障害（同期外れ）が発生したものとして、両サブシステム１、２のいずれか一方を切り離す処理等を行う。
【００５３】
従って、ブリッジ７１〜７５のかわりにスヌーパ９１〜９５が配置された第２の実施形態の構成でも、同様にエラー（処理の不一致）を検出することができる。さらに、第２の実施形態のスヌーパ９１〜９５は、ブリッジ７１〜７５と比較して送信部が必要ないため、よりシンプルな構成となりコストを低減することができる。
【００５４】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【００５５】
例えば、必ずしも全てのコンポーネント間にブリッジやスヌーパを配置する必要はない。具体的には、図７に示すように、ＣＰＵ２１−メモリ１１間、および、ＣＰＵ２２−メモリ１２間にブリッジを配置しないフォールトトレラントシステム２００を構成してもよい。この場合、ＣＰＵ２１−メモリ１１間、および、ＣＰＵ２２−メモリ１２間でなされる処理の、両サブシステム１、２間における処理の不一致を検出することはできなくなるが、ブリッジの数が減るために、システムの開発期間、コストを削減することが可能となる。同様に、ＣＰＵ２１−ＣＰＵ２２間、ＣＰＵ２１−ノースブリッジ３１間、および、ＣＰＵ２２−ノースブリッジ３１間の何れかにブリッジ、スヌーパを配置しない構成も可能である。
【００５６】
また、ブリッジとスヌーパとを混在させた構成にしてもよい。図８は、ＣＰＵ２１−メモリ１１間、ＣＰＵ２２−メモリ１２間、ＣＰＵ２１−ノースブリッジ３１間、および、ＣＰＵ２２−ノースブリッジ３１間に第１の実施形態で採用したブリッジ７１〜７４を配置し、ＣＰＵ２１−ＣＰＵ２２間に第２の実施形態で採用したスヌーパ９５を配置したフォールトレラントシステム３００を示した図である。この場合でも、ブリッジ７１〜７４、および、スヌーパ９５で同様に中継したパケットからチェックサムを作成してＦＴコントローラ４１に送信することにより、サブシステム１、２間の処理の不一致を検出可能である。
【００５７】
また、本実施形態では、各コンポーネント間で送受信されるシリアルデータを並列化し、並列化したデータからチェックサムを作成したが、並列化しないでシリアルデータから直接チェックサムを作成してもよい。
【００５８】
また、本実施形態では、各コンポーネント間で送受信されるデータをシリアルデータとして説明したが、パラレルデータであっても、本実施形態を適用することができる。
【００５９】
また、本実施形態では、ブリッジ７１〜７５、および、スヌーパ９１〜９５は、送受信される複数パケット分のデータから１つのチェックサムを作成、送信したが、このような処理をせず、１パケット分のデータが送受信される毎に、チェックサムを作成、送信するようにしてもよい。
【符号の説明】
【００６０】
１，２  サブシステム
１１，１２  メモリ
２１，２２  ＣＰＵ
３１  ノーズブリッジ
４１  ＦＴコントローラ
５１  ＩＯブリッジ
６１  ＩＯデバイス
７１，７２，７３，７４，７５  ブリッジ
８１  ＦＴバス
９１，９２，９３，９４，９５  スヌーパ
１０，１００  フォールトトレラントシステム
【図１】
2010218370.tif 000003
【図２】
2010218370.tif 000004
【図３】
2010218370.tif 000005
【図４】
2010218370.tif 000006
【図５】
2010218370.tif 000007
【図６】
2010218370.tif 000008
【図７】
2010218370.tif 000009
【図８】
2010218370.tif 000010
【図９】
2010218370.tif 000011