(57)【要約】【課題】  二重化されたシステム間の同期を確実にとることができるとともに、二重化されたシステム間でカウンタがばらばらに動作している状態でも同期をとる。【解決手段】  システム３ａからシステム３ｂにデータを送信する場合、そのデータの送信時刻を付与して送信する。システム３ｂにおいては、受信したデータに付与された送信時刻から理想受信時刻を算出し、理想受信時刻と実際の受信時刻とからクロックのずれ量を算出し、この算出結果に基づいてシステム３ｂのクロックを変更する。【選択図】図１
2006178617.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ及び記憶装置へのアクセスを制御するＣＰＵサブシステムと、前記ＣＰＵサブシステムに対する外部からのデータの入出力を制御するＩＯサブシステムとからなるシステムが一対のものとして二重化されて構成され、前記ＣＰＵサブシステムが、二重化されたシステム間にて共通のクロックで動作し、前記ＩＯサブシステムが、非同期あるいは当該ＩＯサブシステム内のカウンタによるクロックで動作して前記二重化されたシステム間におけるデータの入出力を制御するフォールトトレラントコンピュータにおいて、
前記ＩＯサブシステムは、
対となるＩＯサブシステムに対するデータの送信時に送信時刻を付与してデータを送信する送信手段と、
対となるＩＯサブシステムから送信されたデータを非同期にて受信し、受信時刻を記録する受信手段とを有し、
前記受信手段にて受信したデータに付与された送信時刻を用いて算出される理想受信時刻と前記受信手段にて記録された受信時刻とから、前記対となるＩＯサブシステムに対するクロックのずれ量を算出し、該算出結果に基づいて当該ＩＯサブシステム内のカウンタを変更し、該カウンタを用いた受信動作を行うことを特徴とするフォールトトレラントコンピュータ。
【請求項２】
請求項１に記載のフォールトトレラントコンピュータにおいて、
前記ＩＯサブシステムは、少なくとも前記カウンタの１周期中におけるデータそれぞれについて前記ずれ量を算出し、該ずれ量が予め決められた許容範囲内となるように当該ＩＯサブシステム内のカウンタを変更することを特徴とするフォールトトレラントコンピュータ。
【請求項３】
ＣＰＵ及び記憶装置へのアクセスを制御するＣＰＵサブシステムと、前記ＣＰＵサブシステムに対する外部からのデータの入出力を制御するＩＯサブシステムとからなるシステムが二重化されて構成され、前記ＣＰＵサブシステムが、二重化されたシステム間にて共通のクロックで動作し、前記ＩＯサブシステムが、非同期あるいは当該ＩＯサブシステム内のカウンタによるクロックで動作して前記二重化されたシステム間におけるデータの入出力を制御するフォールトトレラントコンピュータの制御方法であって、
一方のＩＯサブシステムから送信時刻を付与したデータを他方のＩＯサブシステムに送信する処理と、
前記一方のＩＯサブシステムから送信されたデータを前記他方のＩＯサブシステムにて非同期にて受信する処理と、
前記他方のＩＯサブシステムにおける前記データの受信時刻を記録する処理と、
前記他方のＩＯサブシステムにて受信したデータに付与された送信時刻を用いて理想受信時刻を算出する処理と、
前記理想受信時刻と前記他方のＩＯサブシステムにて記録された受信時刻とから、前記他方のＩＯサブシステムにおける前記一方のＩＯサブシステムに対するクロックのずれ量を算出する処理と、
該算出結果に基づいて前記他方のＩＯサブシステム内のカウンタを変更する処理と、
前記他方のＩＯサブシステムにて前記カウンタを用いた受信動作を行う処理とを有するフォールトトレラントコンピュータの制御方法。
【請求項４】
請求項３に記載のフォールトトレラントコンピュータの制御方法において、
少なくとも前記カウンタの１周期中におけるデータそれぞれについて前記ずれ量を算出する処理と、
前記ずれ量が予め決められた許容範囲内となるように前記他方のＩＯサブシステム内のカウンタを変更する処理とを有することを特徴とするフォールトトレラントコンピュータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムが二重化されて構成されたフォールトトレラントコンピュータ及びその制御方法に関する。
【背景技術】
【０００２】
近年、コンピュータの多機能化に伴い、様々な分野でコンピュータが利用されるようになってきている。そのため、障害発生時においても、コンピュータを継続して動作させることが要求され、それに対して、システムを二重化したフォールトトレラント技術が採用されている（例えば、特許文献１参照。）。
【０００３】
このようなフォールトトレラント技術が採用されたフォールトトレラントコンピュータにおいては、例えば、ＣＰＵサブシステムとＩＯサブシステムとからなるシステムが二重化されており、二重化されたシステムが同期して動作しているかどうかが比較されることにより、障害発生が検知されることになる。
【０００４】
ここで、ＣＰＵサブシステムとＩＯサブシステムとからなるシステムが二重化されたものにおいては、２つのＣＰＵサブシステムが共通の内部クロックによって同期動作するロックステップ方式が採られ、また、ＩＯサブシステム間の通信に利用される高速インタフェースに、内部クロックとは非同期に動作するシリアルリンクが使用されているものがある。このようなフォールトトレラントコンピュータにおいては、１つのＩＯシステムから２つのＣＰＵサブシステムにアクセスがあった場合、一方のＣＰＵサブシステムには内部パスのみを介してアクセスが行われ、また、他方のＣＰＵサブシステムには高速インタフェースを介してアクセスが行われるため、２つのＣＰＵサブシステムに対するアクセスを同期させるためには、内部クロックと高速インタフェースとの間にてクロック同期をとる必要がある。
【０００５】
そこで、二重化されたシステム間にて、高速インタフェースにおけるクロックを、一定周期内の所定のタイミングで内部クロックに載せ換え、それにより、ＣＰＵサブシステムとＩＯサブシステムとの間の通信タイミングを一致させることが行われている。
【特許文献１】特開平１０−１７７４９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したようなフォールトトレラントコンピュータにおいては、２つのシステムが同じクロックで動作しているものの、実際には、クロック線にて生じるスキューや、システム内に設けられたＰＬＬの特性等によって位相が互いにずれてしまうという問題点がある。また、それにより、受信側のシステムにおいて、静的に決まらないパラメータが存在してしまうという問題点がある。
【０００７】
また、システムを動作させるための内部クロックと、高速インタフェースにおけるクロックとが互いに異なるため、グローバルカウンタから生成されるギアリングを用いて同期をとることになるが、カウンタ等が安定している状態でないとギアリングを行うことができず、それまでの間は、受信側のシステムにおいて非同期でデータ通信を行わなければならないという問題点がある。
【０００８】
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、二重化されたシステム間の同期を確実にとることができるとともに、二重化されたシステム間でカウンタがばらばらに動作している状態でも同期をとることができるフォールトトレラントコンピュータ及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は、
ＣＰＵ及び記憶装置へのアクセスを制御するＣＰＵサブシステムと、前記ＣＰＵサブシステムに対する外部からのデータの入出力を制御するＩＯサブシステムとからなるシステムが一対のものとして二重化されて構成され、前記ＣＰＵサブシステムが、二重化されたシステム間にて共通のクロックで動作し、前記ＩＯサブシステムが、非同期あるいは当該ＩＯサブシステム内のカウンタによるクロックで動作して前記二重化されたシステム間におけるデータの入出力を制御するフォールトトレラントコンピュータにおいて、
前記ＩＯサブシステムは、
対となるＩＯサブシステムに対するデータの送信時に送信時刻を付与してデータを送信する送信手段と、
対となるＩＯサブシステムから送信されたデータを非同期にて受信し、受信時刻を記録する受信手段とを有し、
前記受信手段にて受信したデータに付与された送信時刻を用いて算出される理想受信時刻と前記受信手段にて記録された受信時刻とから、前記対となるＩＯサブシステムに対するクロックのずれ量を算出し、該算出結果に基づいて当該ＩＯサブシステム内のカウンタを変更し、該カウンタを用いた受信動作を行うことを特徴とする。
【００１０】
また、前記ＩＯサブシステムは、少なくとも前記カウンタの１周期中におけるデータそれぞれについて前記ずれ量を算出し、該ずれ量が予め決められた許容範囲内となるように当該ＩＯサブシステム内のカウンタを変更することを特徴とする。
【００１１】
また、ＣＰＵ及び記憶装置へのアクセスを制御するＣＰＵサブシステムと、前記ＣＰＵサブシステムに対する外部からのデータの入出力を制御するＩＯサブシステムとからなるシステムが二重化されて構成され、前記ＣＰＵサブシステムが、二重化されたシステム間にて共通のクロックで動作し、前記ＩＯサブシステムが、非同期あるいは当該ＩＯサブシステム内のカウンタによるクロックで動作して前記二重化されたシステム間におけるデータの入出力を制御するフォールトトレラントコンピュータの制御方法であって、
一方のＩＯサブシステムから送信時刻を付与したデータを他方のＩＯサブシステムに送信する処理と、
前記一方のＩＯサブシステムから送信されたデータを前記他方のＩＯサブシステムにて非同期にて受信する処理と、
前記他方のＩＯサブシステムにおける前記データの受信時刻を記録する処理と、
前記他方のＩＯサブシステムにて受信したデータに付与された送信時刻を用いて理想受信時刻を算出する処理と、
前記理想受信時刻と前記他方のＩＯサブシステムにて記録された受信時刻とから、前記他方のＩＯサブシステムにおける前記一方のＩＯサブシステムに対するクロックのずれ量を算出する処理と、
該算出結果に基づいて前記他方のＩＯサブシステム内のカウンタを変更する処理と、
前記他方のＩＯサブシステムにて前記カウンタを用いた受信動作を行う処理とを有する。
【００１２】
また、少なくとも前記カウンタの１周期中におけるデータそれぞれについて前記ずれ量を算出する処理と、
前記ずれ量が予め決められた許容範囲内となるように前記他方のＩＯサブシステム内のカウンタを変更する処理とを有することを特徴とする。
【００１３】
上記のように構成された本発明においては、ＣＰＵ及び記憶装置へのアクセスを制御するＣＰＵサブシステムと、ＣＰＵサブシステムに対する外部からのデータの入出力を制御するＩＯサブシステムとからなるシステムが二重化されて構成されたフォールトトレラントコンピュータにおいて、一方のＩＯサブシステムから送信時刻を付与したデータが他方のＩＯサブシステムに送信され、このデータが他方のＩＯサブシステムにて非同期にて受信される。すると、他方のＩＯサブシステムにおいて、データの受信時刻が記録されるとともに、受信したデータに付与された送信時刻を用いて理想受信時刻が算出され、算出された理想受信時刻と記録された受信時刻とから、他方のＩＯサブシステムにおける一方のＩＯサブシステムに対するクロックのずれ量が算出される。その後、他方のＩＯサブシステムにおいて、算出結果に基づいて他方のＩＯサブシステム内のカウンタが変更され、変更されたカウンタを用いた受信動作が行われる。
【発明の効果】
【００１４】
以上説明したように本発明においては、二重化されたシステム間にてデータを送信する際の送信時刻をデータに付与し、この送信時刻から理想受信時刻を算出し、理想受信時刻と実際の受信時刻とからクロックのずれ量を算出し、この算出結果に基づいてクロックを変更する構成としたため、二重化されたシステム間の同期を確実にとることができるとともに、二重化されたシステム間でカウンタがばらばらに動作している状態でも同期をとることができる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１６】
図１は、本発明のフォールトトレラントコンピュータの実施の一形態を示す図である。
【００１７】
本形態は図１に示すように、主記憶装置１ａ，１ｂと、ＣＰＵ２ａ，２ｂと、これらにアクセスするためのシステム３ａ，３ｂとがそれぞれ一対のものとして二重化され、システム３ａとシステム３ｂとがクロスリンク４を介して接続されて構成されている。システム３ａ，３ｂのそれぞれには、外部とのデータの入出力を制御するＩＯＩ／Ｆコントローラ７０ａ，７０ｂと、ＩＯＩ／Ｆコントローラ７０ａ，７０ｂからＣＰＵ２ａ，２ｂに渡されるデータを一時保持するバッファ５１ａ，５１ｂと、ＣＰＵ２ａ，２ｂからＩＯＩ／Ｆコントローラ７０ａ，７０ｂに渡されるデータを一時保持するバッファ５２ａ，５２ｂと、クロスリンク４を介してのシステム３ａ，３ｂ間におけるデータの受け渡しを制御するシリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂと、ＣＰＵ２ａ，２ｂからのＩＯＩ／Ｆコントローラ７０ａ，７０ｂへのアクセスとシリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂを介しての他のシステム３ａ，３ｂからのＩＯＩ／Ｆコントローラ７０ａ，７０ｂへのアクセスとを比較するＩＯアクセス比較器６０ａ，６０ｂとが設けられており、これらはＩＯサブシステムと呼ばれ、システム３ａ，３ｂ毎のギアリングカウンタを用いたクロックによって動作する。また、システム３ａ，３ｂのそれぞれには、主記憶装置１ａ，１ｂに対するデータの書き込みや読み出しを制御するメモリバスコントローラ１０ａ，１０ｂと、ＣＰＵ２ａ，２ｂに対するアクセスを制御するＣＰＵバスコントローラ２０ａ，２０ｂと、レジスタ３０ａ，３０ｂと、インバウンドバッファ４１ａ，４１ｂを具備してＣＰＵバスコントローラ２０ａ，２０ｂ、レジスタ３０ａ，３０ｂ、バッファ５１ａ，５１ｂ，５２ａ，５２ｂ及びシリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂ間のアクセス制御を切り替えるルータ４０ａ，４０ｂとが設けられており、これらはＣＰＵサブシステムと呼ばれ、共通の内部クロックによって同期動作するロックステップ方式が採られている。
【００１８】
上記のように構成されたフォールトトレラントコンピュータにおいては、ＣＰＵ２ａ，２ｂからのＩＯＩ／Ｆコントローラ７０ａ，７０ｂへのアクセスと、シリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂを介しての他のシステム３ａ，３ｂからのＩＯＩ／Ｆコントローラ７０ａ，７０ｂへのアクセスとがＩＯアクセス比較器６０ａ，６０ｂにて比較され、その比較結果によって、システム３ａ，３ｂの障害が検知されることになる。この際、クロスリンク４におけるクロックが、一定周期内の所定のタイミングでＣＰＵサブシステムの内部クロックに載せ換えられ、それにより、ＣＰＵサブシステムとＩＯサブシステムとの間の通信タイミングが一致するように制御されている。また、システム３ａ，３ｂ間においては、内部クロックとなるコアクロックを発生させるクロック源振からのクロック線にて生じるスキューや、システム３ａ，３ｂ内に設けられたＰＬＬの特性等によって同期がとれなくなってしまうが、シリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂにおいて、システム３ａ，３ｂ間における同期が実現されている。以下に、その詳細について説明する。
【００１９】
図２は、図１に示したシリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂの構成を示す図である。
【００２０】
本形態におけるシリアルＩＯＩ／Ｆコントローラ８０ａ，８０ｂは図２に示すように、ＩＯＩ／Ｆコントローラ７０ａ，７０ｂから他のシステム３ａ，３ｂのアクセスデータを送信するマクロ送信部８１ａ，８１ｂと、他のシステム３ａ，３ｂのマクロ送信部８１ａ，８１ｂから送信されたアクセスデータをクロスリンク４を介して受信するマクロ受信部８２ａ，８２ｂと、コアクロックとシステム３ａ，３ｂ内のギアリングレジスタとを用いてマクロ送信部８１ａ，８１ｂの動作クロックを生成するＰＬＬ８３ａ，８３ｂとから構成されている。さらに、マクロ送信部８１ａ，８１ｂは、アクセスデータ送信時に、送信時のカウンタ値を、アクセスデータを構成するパケットに送信時刻として埋め込んで送信する。また、マクロ受信部８２ａ，８２ｂは、アクセスデータを構成するパケットを受信した場合、受信時のカウンタ値、並びに、そのパケットを先頭とし、少なくともシステム３ａ，３ｂを同期させるためのギアリングカウンタの１周期中におけるデータ抽出タイミングのカウンタ値を受信時刻として記録しておく。
【００２１】
以下に、上記のように構成されたフォールトトレラントコンピュータの制御方法について、システム３ａからシステム３ｂへパケットを送信し、システム３ｂのギアリングカウンタを変更することによりシステム３ａ，３ｂ間の同期を実現する場合を例に挙げて説明する。
【００２２】
図３は、図１及び図２に示したフォールトトレラントコンピュータの動作を示すタイミングチャートである。また、図４は、図１及び図２に示したフォールトトレラントコンピュータの制御方法の第１フェーズにおける処理を説明するためのフローチャートである。
【００２３】
まず、システム３ａにおいて、システム３ａ内のコアクロック及び送信ギアリングレジスタによってパケットＤ２〜Ｄ４がＣＰＵサブシステムからマクロ送信部８１ａに引き渡される。ここで、本形態においては、システム３ａ，３ｂにおけるギアリングレジスタは、内部クロックとなるコアクロックの１６クロックで１周期とし、その１周期内で３つのパケットをとるように設定されている。すなわち、システム３ａ，３ｂにおけるギアリングレジスタは、１周期中のタイミングを規定するものであって、送信側においては、ギアリングレジスタに“１”が設定されたタイミングにおいてマクロ送信部８１ａ，８１ｂにデータが引き渡され、受信側においては、ギアリングレジスタに“１”が設定されたタイミングにおいてマクロ受信部８２ａ，８２ｂからデータが引き渡されることになる。また、上述したように、ギアリングレジスタはコアクロックの１６クロックを１周期とした場合のタイミングを規定するものであるため、このギアリングレジスタによって規定される１周期はコアクロックの整数倍となる。また、クロスリンク４におけるクロックについても、コアクロックとギアリングレジスタとから生成されているため、その整数倍が１周期となる。
【００２４】
マクロ送信部８１ａに引き渡されたパケットＤ２〜Ｄ４にはそれぞれ、マクロ送信部８１ａからの送信時刻Ｃ１ａが埋め込まれ（ステップＳ１）、ＰＬＬ８３ａによって生成された動作クロックに基づくタイミングで送信される（ステップＳ２）。なお、この際、システム３ａ，３ｂのギアリングカウンタがばらばらに動作しており、システム３ａ，３ｂにおけるパケットの受信は非同期モードで行われている。また、ＰＬＬ８３ａにおいては、コアクロックとシステム３ａ内の送信ギアリングレジスタとを用いてマクロ送信部８１ａの動作クロックが生成されている。
【００２５】
マクロ送信部８１ａから送信されたパケットＤ２〜Ｄ４は、クロスリンク４を介してシステム３ｂのマクロ受信部８２ｂにて受信される（ステップＳ３）。なお、この際、パケットＤ２の受信時刻Ｃ２ｂが記録される。
【００２６】
次に、マクロ受信部８２ｂにおいて、受信されたパケットＤ２に埋め込まれた送信時刻Ｃ１ａと、システム３ａ，３ｂ間におけるフライトタイムＴｆｐと、非同期方式と同期方式とでの差分Ｄｉｆとから、下記（式１）を用いて理想の受信時刻Ｃ２ａが算出される（ステップＳ４）。なお、システム３ａ，３ｂ間におけるフライトタイムＴｆｐとは、システム３ａ，３ｂが同期モードで動作している状態にてデータの受け渡しにかかる時間であり、システム３ａ，３ｂにて予め設定されている。
【００２７】
Ｃ２ａ＝Ｃ１ａ＋Ｔｆｐ−Ｄｉｆ・・・・（式１）
次に、算出された理想の受信時刻Ｃ２ａから実際のパケットの受信時刻Ｃ２ｂが減算され、クロックのずれ量が算出される（ステップＳ５）。
【００２８】
次に、クロスリンク４が一旦切断され（ステップＳ６）、ステップＳ５にて算出されたずれ量に応じてマクロ受信部８２ｂにおける受信ギアリングカウンタが変更される（ステップＳ７）。
【００２９】
図５は、図１及び図２に示したフォールトトレラントコンピュータにおけるギアリングカウンタの変更方法を説明するための図である。
【００３０】
図５に示すように、パケットの受信側となるマクロ受信部８２ｂにおける受信ギアリングカウンタは、パケットの送信側となるマクロ送信部８１ａにおける送信ギアリングレジスタと、フライトタイムとから決まり、その受信ギアリングカウンタが、ステップＳ５にて算出されたずれ量に応じたクロック数だけずらされることになる。
【００３１】
マクロ受信部８２ｂにおける受信ギアリングカウンタが変更されると、クロスリンク４が再び接続され（ステップＳ８）、パケットの受信側となるマクロ受信部８２ｂにおいて、変更された受信ギアリングカウンタによるギアリングモードにてパケットの受信が行われることになる。
【００３２】
図６は、図１及び図２に示したフォールトトレラントコンピュータの制御方法の第２フェーズにおける処理を説明するためのフローチャートである。
【００３３】
この第２フェーズにおいては、マクロ受信部８２ｂがギアリングモードで受信を行っており、マクロ受信部８２ａが非同期モードで受信を行っている。
【００３４】
まず、マクロ送信部８１ｂにおいて、システム３ａに送信するパケットにマクロ送信部８１ｂからの送信時刻Ｃ３ｂが埋め込まれ（ステップＳ１１）、送信ギアリングカウンタに基づくタイミングで送信される（ステップＳ１２）。
【００３５】
マクロ送信部８１ｂから送信されたパケットは、クロスリンク４を介してシステム３ａのマクロ受信部８２ａにて受信される（ステップＳ１３）。なお、この際、受信されたパケットの受信時刻Ｃ４ｂが記録される。また、マクロ受信部８２ａにおけるパケットの受信は、非同期にて行われる。
【００３６】
次に、マクロ受信部８２ａにおいて、受信されたパケットに埋め込まれた送信時刻Ｃ３ｂと、システム３ａにおけるフライトタイムＴｆｐと、非同期方式と同期方式とでの差分Ｄｉｆとから、下記（式２）を用いて理想の受信時刻Ｃ４ａが算出される（ステップＳ１４）。
【００３７】
Ｃ４ａ＝Ｃ３ｂ＋Ｔｆｐ−Ｄｉｆ・・・・（式２）
次に、実際のパケットの受信時刻Ｃ４ｂから、算出された理想の受信時刻Ｃ４ａが減算され、クロックのずれ量が算出され（ステップＳ１５）、ずれがない場合は（ステップＳ１６）、クロスリンク４が一旦切断され（ステップＳ１７）、マクロ受信部８２ａがギアリングモードに変更され（ステップＳ１８）、その後、クロスリンク４が再び接続される（ステップＳ１９）。
【００３８】
また、ステップＳ１５にてずれ量がある場合は、以下に示す第３フェーズに移行する。
【００３９】
図７は、図１及び図２に示したフォールトトレラントコンピュータの制御方法の第３フェーズにおける処理を説明するためのフローチャートである。
【００４０】
図６にて説明した処理のステップＳ１５にてずれ量がある場合は、まず、マクロ受信部８２ａにおいて１周期分のパケットが受信され（ステップＳ２１）、上述したものと同様の処理にて受信されたパケットの理想の受信時刻が算出される（ステップＳ２２）。ここで、本形態においては、上述したように、システム３ａ，３ｂにおけるギアリングレジスタが、１６クロックで１周期とし、その１周期内で３つのパケットをとるように設定されているため、連続した３つのパケットが受信されることになる。また、３つのパケットのマクロ送信部８１ｂからの送信時刻Ｃ８ｂ，Ｃ９ｂ，Ｃ１０ｂは、先頭のパケットに埋め込まれた送信時刻Ｃ８ｂとマクロ送信部８１ｂにおける送信ギアリングレジスタとから算出することができる。これにより、３つのパケットの理想の受信時刻Ｃ５ｂ，Ｃ６ｂ，Ｃ７ｂは、上述したものと同様に下記（式３），（式４），（式５）から算出される。
【００４１】
Ｃ５ｂ＝Ｃ８ｂ＋Ｔｆｐ−Ｄｉｆ・・・・（式３）
Ｃ６ｂ＝Ｃ９ｂ＋Ｔｆｐ−Ｄｉｆ・・・・（式４）
Ｃ７ｂ＝Ｃ１０ｂ＋Ｔｆｐ−Ｄｉｆ・・・・（式５）
次に、算出された理想の受信時刻Ｃ５ｂ，Ｃ６ｂ，Ｃ７ｂと、３つのパケットのマクロ受信部８２ａにおける実際の受信時刻Ｃ５ａ，Ｃ６ａ，Ｃ７ａとから、システム３ａのギアリングカウンタとシステム３ｂのギアリングカウンタとのずれ量が許容範囲であるかどうかが判断される（ステップＳ２３）。
【００４２】
ここで、図３に示すように、ギアリングカウンタのずれ量の許容範囲Ｒとは、その範囲内であれば、データを取り出すことが可能となる範囲であって、予め決められ、テーブルとして設定されている。
【００４３】
ギアリングカウンタのずれ量が許容範囲内であると判断された場合は、クロスリンク４が一旦切断され（ステップＳ２４）、マクロ受信部８２ａがギアリングモードに変更され（ステップＳ２５）、その後、クロスリンク４が再び接続される（ステップＳ２６）。
【００４４】
また、ギアリングカウンタのずれ量が許容範囲を超えていると判断された場合は、以下に示す第４フェーズに移行する。また、ギアリングカウンタのずれ量が許容範囲内であっても、そのずれ量が大きな場合も第４フェーズに移行する。
【００４５】
図８は、図１及び図２に示したフォールトトレラントコンピュータの制御方法の第４フェーズにおける処理を説明するためのフローチャートである。
【００４６】
ギアリングカウンタのずれ量が許容範囲を超えていると判断された場合は、まず、マクロ受信部８２ａにおいて、実際の受信時刻Ｃ５ａと理想の受信時刻Ｃ５ｂとが比較される（ステップＳ３１）。
【００４７】
実際の受信時刻Ｃ５ａと理想の受信時刻Ｃ５ｂとが比較された結果、理想の受信時刻Ｃ５ｂが実際の受信時刻Ｃ５ａよりも早い場合は（ステップＳ３２）、システム３ｂのカウンタが進んでいると判断され、その旨がシステム３ｂに通知される（ステップＳ３３）。
【００４８】
すると、システム３ｂのシリアルＩＯＩ／Ｆコントローラ８０ｂにおいて、クロスリンク４が切断され（ステップＳ３４）、マクロ受信部８２ｂにおける受信が非同期モードに変更される（ステップＳ３５）。
【００４９】
その後、システム３ｂのギアリングカウンタが遅れるように変更される（ステップＳ３６）。なお、このギアリングカウンタの変更は、上述した受信ギアリングカウンタのずれの許容範囲内で行われることになる。そのため、上述した第３フェーズにおける連続パケットの送受信を、マクロ送信部８１ａからマクロ受信部８２ｂに対して行い、１周期中の許容範囲が算出されることになる。
【００５０】
そして、上述した第２フェーズに移行し、カウンタの同期を実現する。
【００５１】
また、実際の受信時刻Ｃ５ａと理想の受信時刻Ｃ５ｂとが比較された結果、理想の受信時刻Ｃ５ｂが実際の受信時刻Ｃ５ａよりも遅い場合は、システム３ｂのカウンタが遅れていると判断され、その旨がシステム３ｂに通知される（ステップＳ３７）。
【００５２】
すると、システム３ｂのシリアルＩＯＩ／Ｆコントローラ８０ｂにおいて、クロスリンク４が切断され（ステップＳ３８）、マクロ受信部８２ｂにおける受信が非同期モードに変更される（ステップＳ３９）。
【００５３】
その後、システム３ｂのギアリングカウンタが進むように変更されることになる（ステップＳ４０）。
【００５４】
なお、本形態においては、ギアリングカウンタのずれ量の許容範囲Ｒが、予め決められ、テーブルとして設定されているが、パケットの送受信の際に動的に決めることも考えられる。
【図面の簡単な説明】
【００５５】
【図１】本発明のフォールトトレラントコンピュータの実施の一形態を示す図である。
【図２】図１に示したシリアルＩＯＩ／Ｆコントローラの構成を示す図である。
【図３】図１及び図２に示したフォールトトレラントコンピュータの動作を示すタイミングチャートである。
【図４】図１及び図２に示したフォールトトレラントコンピュータの制御方法の第１フェーズにおける処理を説明するためのフローチャートである。
【図５】図１及び図２に示したフォールトトレラントコンピュータにおけるギアリングカウンタの変更方法を説明するための図である。
【図６】図１及び図２に示したフォールトトレラントコンピュータの制御方法の第２フェーズにおける処理を説明するためのフローチャートである。
【図７】図１及び図２に示したフォールトトレラントコンピュータの制御方法の第３フェーズにおける処理を説明するためのフローチャートである。
【図８】図１及び図２に示したフォールトトレラントコンピュータの制御方法の第４フェーズにおける処理を説明するためのフローチャートである。
【符号の説明】
【００５６】
１ａ，１ｂ    主記憶装置
２ａ，２ｂ    ＣＰＵ
３ａ，３ｂ    システム
４    クロスリンク
１０ａ，１０ｂ    メモリバスコントローラ
２０ａ，２０ｂ    ＣＰＵバスコントローラ
３０ａ，３０ｂ    レジスタ
４０ａ，４０ｂ    ルータ
４１ａ，４１ｂ    インバウンドバッファ
５１ａ，５１ｂ，５２ａ，５２ｂ    バッファ
６０ａ，６０ｂ    ＩＯアクセス比較器
７０ａ，７０ｂ    ＩＯＩ／Ｆコントローラ
８０ａ，８０ｂ    シリアルＩＯＩ／Ｆコントローラ
８１ａ，８１ｂ    マクロ送信部
８２ａ，８２ｂ    マクロ受信部
８３ａ，８３ｂ    ＰＬＬ
【図１】
2006178617.tif 000003
【図２】
2006178617.tif 000004
【図３】
2006178617.tif 000005
【図４】
2006178617.tif 000006
【図５】
2006178617.tif 000007
【図６】
2006178617.tif 000008
【図７】
2006178617.tif 000009
【図８】
2006178617.tif 000010