JP2008046942A - フォールトトレラントコンピュータ、そのトランザクション同期制御方法 - Google Patents

フォールトトレラントコンピュータ、そのトランザクション同期制御方法 Download PDF

Info

Publication number
JP2008046942A
JP2008046942A JP2006222902A JP2006222902A JP2008046942A JP 2008046942 A JP2008046942 A JP 2008046942A JP 2006222902 A JP2006222902 A JP 2006222902A JP 2006222902 A JP2006222902 A JP 2006222902A JP 2008046942 A JP2008046942 A JP 2008046942A
Authority
JP
Japan
Prior art keywords
transaction
synchronization
output
arithmetic processing
waiting buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006222902A
Other languages
English (en)
Other versions
JP5013309B2 (ja
Inventor
Fumitoshi Mizutani
文俊 水谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006222902A priority Critical patent/JP5013309B2/ja
Publication of JP2008046942A publication Critical patent/JP2008046942A/ja
Application granted granted Critical
Publication of JP5013309B2 publication Critical patent/JP5013309B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】同期CPUのトランザクションに同期外れが発生したときに、プロセッサの縮退を引き起こすことなく自動的にプロセッサ間の同期を取り戻すフォールトトレラントコンピュータ、トランザクション同期化方法を提供する。
【解決手段】フォールトトレラントコンピュータ(8)は、冗長化される演算処理部(11、12)と、冗長化される入出力部(21、22)と、検出部(160)とを具備する。演算処理部(11、12)は、ロックステップ動作し、その同期外れを検出部(160)が検出する。入出力部(21、22)は、検出部(160)が同期外れを検出したとき、演算処理部(11、12)から出力されるトランザクションのフローを制御するトランザクション比較制御部を備える。
【選択図】図2

Description

本発明は、フォールトトレラントコンピュータに関する。
従来のフォールト・トレラント・システムにおいて、冗長化されたプロセッサの出力の不一致を検出する装置は、共通のクロックを分配してロックステップで動作する冗長化された各プロセッサの出力を比較することで不一致を検出する。例えば、二重化されたプロセッサは、共通のクロックソースを用いてロックステップ同期で動作する。双方のプロセッサが同一のオペレーションを同時に出力し、その出力を比較することによりオペレーションの同期が判定される。
しかし、各プロセッサが各々独立に正常動作していても、各プロセッサ間でロックステップ同期の動作がまれに外れることがあり、オペレーションの不一致が観測されることがある。また、各プロセッサ内のデバイス間のインタフェースに高速シリアル転送が使用されることが多くなり、高速化に伴って通信エラーの発生頻度が上昇している。したがって、デバイス間の通信エラーによるリトライ動作により、転送タイミングが各インタフェースの受信側で異なるケースが多くなっている。このような場合にも各プロセッサの出力にエラーが検出されなかった場合には、その都度、単純な同期外れと判断され、各プロセッサ間の同期復旧処理が行われる。
同期復旧処理とは、再同期化(プロセッサモジュールの同時リセット)により両方のプロセッサモジュールの動作を合わせる処理である。同時リセットの前に、正常動作しているプロセッサモジュールから同期外れを起こしたプロセッサモジュールに対して、プロセッサに接続されたメモリの内容、プロセッサのレジスタの内容等のコンテンツ情報が全てコピーされる。コンテンツ情報が各プロセッサで同一になった後、処理が再開されて同期が復旧する。
一旦、同期復旧処理が始まると、通常のデータ処理が一時中断され、データ処理速度の低下を招く。したがって、一時的な同期外れのような場合、極力この同期復旧処理を回避することが望ましい。
従来は、CPUのロックステップ同期状態が外れた場合、CPUからのトランザクションを一時格納手段に保持し、各CPUトランザクションの一定時間内のシーケンスを比較して、一致する場合に同期外れを許容していた。しかし、一旦同期外れが発生すると、CPUモジュールにあるCPUバスとIOモジュールに接続されているCPUバスコントローラ内部でCPUからのトランザクションとその応答、およびIOからのトランザクションの競合によって次第にそのずれが蓄積する。したがって、一定時間内でのCPU同期外れを許容するシステムにおいてもその許容範囲を逸脱し始めるため、結果的にCPUの同期外れは短時間しか許容できないという問題があった。CPUの同期外れが許容されなくなると、結果的にCPUの再同期処理となるが、これはCPUの切離しを行い、主記憶の複写、そして主記憶内容の一致比較の手順を踏むこととなり、この間はCPUの冗長化が行われていない状態となる。
特開平11−338832号公報によれば、運用系プロセッサカードと待機系プロセッサカードのプロセッサクロックを同期化する機構を備えるプロセッサの同期装置が開示されている。このプロセッサの同期方法では運用系プロセッサと待機系プロセッサ間で、プロセッサ間のバスのデータ転送開始および終了の信号を用いる。処理が遅れているプロセッサカードと同一タイミングになるまでデータ転送を待たせることにより、短時間で両者の同期が取られる。これは同一バス上に接続されたプロセッサ間での出力タイミング同期を取るものである。
また、特開2004−110803号公報には、デバイスコントローラ毎にIOトランザクションのシーケンスの一致をチェックするフォールトトレラントコンピュータが開示されている。このフォールトトレラントコンピュータは、複数のCPUモジュールと、複数のIOモジュールと、トランザクション同期制御部とを有する。複数のCPUモジュールは、同じ命令列をクロック同期して処理する。複数のIOモジュールは、デバイスに対し入出力制御処理を実行する複数のデバイスコントローラを備える。トランザクション同期制御部は、デバイスコントローラ毎に、複数のCPUモジュールの各々から発行されるIOトランザクションのシーケンスの一致をチェックする。IOトランザクションのシーケンスの一致が得られた場合は同期外れではないとみなす。すなわち、プロセッサ出力の同期ずれをIOコントローラ毎のIOトランザクションの時間的なずれを許容するものであるが、結果的にプロセッサ間の同期ずれの状態を放置することになる。したがって、プロセッサに対する出力と入力の競合によって比較的短時間にこのプロセッサ間の時間的ずれが許容可能な範囲を逸脱してしまう可能性がある。
特開2004−46611号公報によれば、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置が開示されている。このフォールトトレラントコンピュータは、各コンピューティングモジュール内の各プロセッサ間の外部バスへのアクセス状態の不一致を検出しても、装置の故障が検出されない場合に、全てのプロセッサに対して割り込みが生成される。この割り込みにより各プロセッサがクロック同期制御命令を実行し、各コンピューティングモジュールからのアクセスに対する応答タイミングが調整される。これによって、各コンピューティングモジュールに対してクロック同期での動作の再開処理が行われる。
同期の検出方法は、例えば、特開2004−318702号公報に開示される。これによれば、情報処理装置は、互いに同期して同一の処理を行う第1および第2の処理手段と、一致状態を判別する第3の処理手段とを含む。第3の処理手段は、第1および第2の処理手段からの出力を受け取る。第3の処理手段は、第1の処理手段からの複数個数の出力と、第2の処理手段からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別する。
ローカルエリアネットワーク間の通信の同期に関し、特開平2−47943号公報に通信方法が開示されている。ネットワークシステムは、ローカルエリアネットワーク同志が中継器によって相互に接続されている。ローカルエリアネットワークには複数の端末が接続される。中継器は、端末または他の中継器からの送信情報を貯えるバッファと、このバッファのフロー制御を行うフロー制御手段を有する。フロー制御手段は、バッファの容量が不足してくると、抑制信号を発信元の端末または中継器に通知する。抑制信号を受信した発信元の端末または中継器は、以降の情報を予め定められた時間遅らせて送信する。
特表平9−509270号公報によれば、他の計算素子のクロックに対して非同期的に作動するクロックを備えた計算素子少なくとも二つ(CE1、CE2)を同期させる方法が開示されている。コンピュータシステムは、少なくとも二つの計算素子と少なくとも一つのコントローラとから成る。信号を選択する段階と、信号の生成を検出する段階と、信号の生成を待合わせる段階と、送信する段階と、更新する段階とを有する。信号を選択する段階では、計算素子によって生成された信号組から一つ以上の信号が選択される。信号の生成を検出する段階では、計算素子を監視して計算素子の一方による選択信号が生成されたことが検出される。信号の生成を待合わせる段階では、計算素子の一方による選択信号の検出の後、他方の計算素子による選択信号の生成が待機される。送信する段階では、計算素子全部からの選択信号の受信後、少なくとも一つのコントローラからの等時間更新が計算素子各々に送信される。更新する段階では、時間更新に基づいて計算素子のクロックが更新される。
特開平11−338832号公報 特開2004−110803号公報 特開2004−46611号公報 特開2004−318702号公報 特開平2−47943号公報 特表平9−509270号公報
本発明の目的は、同期CPUのトランザクションに同期外れが発生したときに、プロセッサの縮退を引き起こすことなく自動的にプロセッサ間の同期を取り戻すフォールトトレラントコンピュータ、トランザクション同期化方法を提供することにある。
本発明の他の目的は、通常動作時の性能低下を引き起こさずに同期外れを回復するフォールトトレラントコンピュータ、トランザクション同期化方法を提供することにある。
また、本発明の他の目的は、簡単な構成により同期外れを回復するフォールトトレラントコンピュータ、トランザクション同期化方法を提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、フォールトトレラントコンピュータ(8)は、冗長化された演算処理部(11、12)と、冗長化された入出力部(21、22)と、検出部(160)とを具備する。演算処理部(11、12)は、ロックステップ動作し、その同期外れを検出部(160)が検出する。入出力部(21、22)は、検出部(160)が同期外れを検出したとき、演算処理部(11、12)から出力されるトランザクションのフローを制御するトランザクション比較制御部を備える。フォールトトレラントコンピュータ(8)は、検出部(160)で検出された同期外れを縮退せずに解消する。
本発明のトランザクション比較制御部(31、32)は、演算処理部(11、12)から出力されるトランザクションを格納する待ち合わせバッファ(121、122)を含む。待ち合わせバッファ(121、122)は、演算処理部(11、12)に対応して設けられる。検出部(160)が同期外れを検出したとき、待ち合わせバッファ(121、122)からのトランザクション出力が停止される。
本発明の検出部(160)は、待ち合わせバッファ(121、122)に格納されるトランザクションのデータ数に基づいて同期外れを検出する。また、冗長化される演算処理部(11、12)の各々は、それぞれのバス上のタイミングを比較するバスタイミング比較部(51、52)を備えることもある。その場合、検出部(160)は、バスタイミング比較部(51、52)から出力される比較結果に基づいて同期外れを検出してもよい。
本発明の待ち合わせバッファ(121、122)は、所定の数以上のトランザクションを格納するとき、演算処理部(11、12)にトランザクションの出力停止のフロー制御を指示する。
また、待ち合わせバッファ(121、122)に格納されるトランザクションのデータ数が閾値に達したとき、演算処理部(11、12)が安定状態になったものとして待ち合わせバッファ(121、122)からトランザクションの出力を再開する。演算処理部に対応してそれぞれ待ち合わせバッファ(121、122)に格納されるトランザクションのデータ数が同数になったとき、演算処理部(11、12)の同期が回復したものとして待ち合わせバッファ(121、122)からトランザクションの出力を再開してもよい。さらに、同期外れが検出されてから、所定の時間を経過したとき、待ち合わせバッファ(121、122)からトランザクションの出力を再開してもよい。
本発明の他の観点では、トランザクション同期制御方法は、検出ステップと、トランザクション制御ステップとを具備し、演算処理部(11、12)の同期外れを縮退せずに解消する。検出ステップは、冗長化され、ロックステップ動作するフォールトトレラントコンピュータの演算処理部(11、12)の同期外れを検出するステップである。トランザクション制御ステップは、検出ステップで同期外れを検出したとき、演算処理部(11、12)から出力されるトランザクションのフローを制御するステップである。
本発明のフォールトトレラントコンピュータは、トランザクションを演算処理部に対応させて格納する待ち合わせバッファ(121、122)を備える。トランザクション制御ステップは、待ち合わせバッファ(121、122)にトランザクションを格納してフローを制御するステップを備える。
また、本発明のトランザクション同期制御方法は、演算処理部(11、12)のバスのタイミングを比較するバスタイミング比較ステップをさらに備えてもよい。その場合、検出ステップは、バスタイミング比較ステップから通知されるバスタイミングの比較結果に基づいて、同期外れを検出するステップを備える。
また、本発明のフォールトトレラントコンピュータは、トランザクションを演算処理部に対応させて格納する待ち合わせバッファ(121、122)を備える。検出ステップは、待ち合わせバッファ(121、122)に格納されるトランザクションのデータ数に基づいて、同期外れを検出するステップを備えてもよい。
本発明のトランザクション制御ステップは、検出ステップにより前記同期外れが検出されたとき、待ち合わせバッファ(121、122)からトランザクションの出力を停止するステップを備える。
また、本発明のトランザクション制御ステップは、待ち合わせバッファに所定の数以上のトランザクションが格納されたとき、演算処理部(11、12)にトランザクションの出力停止のフロー制御を指示するステップを備える。これにより演算処理部(11、12)の処理の同期を揃える。
本発明のトランザクション制御ステップは、待ち合わせバッファに格納されるトランザクションのデータ数が閾値に達したとき、演算処理部(11、12)が安定状態になったものとして待ち合わせバッファからトランザクションの出力を再開するステップを備える。
また、本発明のトランザクション制御ステップは、演算処理部(11、12)に対応するそれぞれの待ち合わせバッファ(121、122)に格納されるトランザクションのデータ数が同数になったとき、演算処理部(11、12)の同期が回復したものとして、待ち合わせバッファ(121、122)からトランザクションの出力を再開するステップを備えてもよい。
さらに、本発明のトランザクション制御ステップは、同期外れが検出されて所定の時間を経過したとき、待ち合わせバッファ(121、122)からトランザクションの出力を再開するステップを備えてもよい。
本発明によれば、同期CPUのトランザクションに同期外れが発生したときに、プロセッサの縮退を引き起こすことなく自動的にプロセッサ間の同期を取り戻すフォールトトレラントコンピュータ、トランザクション同期化方法を提供することができる。
また、本発明によれば、同期はずれの検出によってのみ、CPUの冗長化を維持したままフロー制御によってCPUのタイミングを調整するため、通常動作時の性能低下を引き起こさずに同期外れを回復するフォールトトレラントコンピュータ、トランザクション同期化方法を提供することができる。
さらに、本発明によれば、タイミング調整にトランザクションのフロー制御が利用されるため、簡単な構成により同期外れを回復するフォールトトレラントコンピュータ、トランザクション同期化方法を提供することができる。
図を参照して本発明を実施するための最良の形態が説明される。
図1は、本発明の実施の形態に係るフォールトトレラントコンピュータの構成を示すブロック図である。フォールトトレラントコンピュータ8は、中央演算処理装置(CPU:Central Processing Unit)としてCPUモジュール11とCPUモジュール12とを備えて冗長化され、入出力装置としてIOモジュール21とIOモジュール22とを備えて冗長化されている。このように、フォールトトレラントコンピュータ8は、コンピュータの構成要素となるCPUモジュールとIOモジュールとが冗長化されることにより、各モジュールの何れかが故障した場合にその故障モジュールを切離し、残りのモジュールで動作を継続することが可能となる。
第1CPUモジュール11と第2CPUモジュール12とは、2重化されたハードウェアをリアルタイムに同期させるロックステップ機能により同一命令を同時に実行する。したがって、CPUモジュール11、12は、各IOモジュール40、50に対して同一のトランザクションを同時に出力する。
CPUモジュール11、12に接続されるIOモジュール21は、トランザクション比較制御部31とIOコントローラ41とを具備し、IOモジュール22は、トランザクション比較制御部32とIOコントローラ42とを具備する。IOモジュール21は、第1CPUモジュール11及び第2CPUモジュール12から同時に同一のトランザクションを受け取る。第2IOモジュール22も同様に、第1CPUモジュール11及び第2CPUモジュール12から同時に同一のトランザクションを受け取る。第1CPUモジュール11及び第2CPUモジュール12から受け取るトランザクションは、一旦、トランザクション比較制御部31、32に格納される。
トランザクション比較制御部31、32は、それぞれ、2系のCPUモジュール11、12と、IOコントローラ41、42との間のトランザクションを通過させ、一時停止し、消去する機能を有する。また、トランザクション比較制御部31、32は、CPUモジュール11、12が出力するトランザクションの内容およびタイミングを比較する機能を有する。比較の結果、不一致を検出すると、トランザクション比較制御部31、32は、IOコントローラ41、42に対するトランザクションの通過を一旦停止する。CPUモジュール11、12からトランザクションの出力が停止した安定状態に移行すると、トランザクション比較制御部31、32は、CPUモジュール11、12への応答及びトランザクションの通過を同期させて再開する。これにより、CPUモジュール11、12の同期外れが回復する。
図2を参照して、トランザクション比較制御部31、32を詳細に説明する。トランザクション比較制御部31、32は、同じ構成であり、図2においてトランザクション比較制御部30として説明される。
トランザクション比較制御部30は、タイミング調整用遅延バッファ111、112、191、192と、同期外れ補償用待ち合わせバッファ121、122と、バッファ使用量監視部130と、比較器140と、データフロー制御部160と、タイマ170と、IO出力制御部180とを具備する。
タイミング調整用遅延バッファ111、112、191、192は、経路を通過するトランザクションを指定された時間だけ遅延させ、タイミングを調整する。タイミング調整用遅延バッファ111は、第1CPUモジュール11からIOコントローラに向けて流れるトランザクションのタイミングを調整する。タイミング調整用遅延バッファ112は、第2CPUモジュール12からIOコントローラに向けて流れるトランザクションのタイミングを調整する。タイミング調整用遅延バッファ191は、IOコントローラから第1CPUモジュール11に向けて流れるトランザクションのタイミングを調整する。タイミング調整用遅延バッファ192は、IOコントローラから第2CPUモジュール12に向けて流れるトランザクションのタイミングを調整する。
同期外れ補償用待ち合わせバッファ121、122は、トランザクションのフロー制御を行うバッファである。CPU同期外れが発生した場合に、同期外れ補償用待ち合わせバッファ121、122は、CPUモジュール11、12から出力されるトランザクションの到着タイミングの時間差を互いに待ち合わせることによって吸収し、同一内容と推定されるトランザクション同士を同時に送り出す。
同期外れ補償用待ち合わせバッファ121は、タイミング調整用遅延バッファ111を介して、第1CPUモジュール11が出力するトランザクションを受け取る。バッファ内のトランザクションは、到着タイミングの時間差を待ち合わせた後、比較器140およびバッファ出力制御部150に送出される。バッファ内に格納されているトランザクション数は、バッファバッファ使用量監視部130に通知される。また、バッファ内に所定の数以上のトランザクションが滞留した場合、第1CPUモジュール11に対してトランザクション停止のフロー制御が行われる。
同期外れ補償用待ち合わせバッファ122は、タイミング調整用遅延バッファ112を介して、第2CPUモジュール12が出力するトランザクションを受け取る。バッファ内のトランザクションは、到着タイミングの時間差を待ち合わせた後、比較器140およびバッファ出力制御部150に送出される。バッファ内に格納されているトランザクション数は、バッファ使用量監視部130に通知される。また、バッファ内に所定の数以上のトランザクションが滞留した場合、第2CPUモジュール12に対してトランザクション停止のフロー制御が行われる。
バッファ使用量監視部130は、同期外れ補償用待ち合わせバッファ121、122に格納される有効トランザクション数、或いは有効データ数を比較し、到着時刻のずれを検出する。トランザクションの到着時刻のずれが所定の閾値を超えた時、バッファ使用量監視部130は、CPUの同期外れと判断する。また、バッファ使用量監視部130は、同期外れ補償用バッファ121、122の各々に格納されている有効トランザクション数、或いは有効データ数を監視し、一定数以上になった場合、および、一定数以下になった場合に、これらの情報をデータフロー制御部160に通知する。
比較器140は、同期外れ補償用待ち合わせバッファ121および122から同時に出力されるトランザクションの内容を比較する。比較器140は、トランザクション内容の一致を検証した結果をバッファ出力制御部150に通知する。
バッファ出力制御部150は、比較器140から通知される一致検証の結果に基づいて、バッファ121、122から出力されるトランザクションを単一のトランザクションとし、接続されるIOコントローラに送出する。データフロ制御部160からトランザクション通過を停止する指示がある場合、バッファ出力制御部150は、トランザクションをIOコントローラに出力しない。
データフロー制御部160は、バッファ出力制御部150とIO出力制御部180とにおけるトランザクションの通過/停止を制御する。データフロー制御部160は、バッファ使用量監視部130からCPU同期状態の通知を受信し、トランザクションの通過/停止の制御を行う。トランザクションの通過/停止の制御は、バッファ使用量監視部130から通知される同期外れの情報と同期外れ補償用待ち合わせバッファ121、122の使用量の情報と、タイマ170から通知されるタイムアウト情報と基づいて行われる。
タイマ170は、データフロー制御部160により起動され、トランザクションの停止期間を計測する。トランザクションの停止期間が所定の閾値以上になると、タイマ170はデータフロー制御部160にタイムアウトを通知する。
IO出力制御部180は、IOコントローラから出力されるトランザクションを適切にルーティングし、第1CPUモジュール11または第2CPUモジュール12または両CPUモジュールにタイミング調整用遅延バッファ191、192を介して送出する。データフロー制御部160からトランザクション停止の指示を受けている場合、IO出力制御部180は、IOコントローラから出力されるトランザクションのCPUモジュールへの転送を停止する。
ここでは、タイミング調整用遅延バッファ111および112は、CPUモジュール11、12との接続点に配置されているが、IOモジュール30とCPUモジュール11、12との接続方法に応じて、どちらか一方または両方を削除してもよい。また、比較器140によって比較された後のトランザクションを格納するバッファを同期外れ補償用待ち合わせバッファ121、122とは別に設けてもよい。その場合、バッファ出力制御部150は、そのバッファからトランザクションを読み出すことになる。
次に、図3に示されるフローチャートを参照して、このデータフロー制御部160の動作が説明される。
データフロー制御部160は、バッファ使用量監視部130から通知される同期外れの情報と同期外れ補償用待ち合わせバッファ121、122の使用量の情報と、タイマ170から通知されるタイムアウト情報とに基づいて、トランザクションの通過/停止の制御を行う。
データフロー制御部160は、バッファ使用量監視部130から通知される同期外れ補償用待ち合わせバッファ121、122の使用量の差分通知に基づいて、同期外れであるか否かを判定する(ステップS12)。同期外れ補償用待ち合わせバッファ121、122の使用量が一致している場合(ステップS12−NO)、CPUモジュール11、12からトランザクションがほぼ同時に入力され、IOコントローラに出力されている。したがって、CPUモジュール11、12は、同期状態にあり、データフロー制御部160は、待機状態となる。
同期外れ補償用待ち合わせバッファ121、122の使用量が不一致の場合(ステップS12−YES)、CPUモジュール11、12から入力されるトランザクションの到着タイミングがずれている。したがって、データフロー制御部160は、CPU同期外れと判断し、バッファ出力制御部150およびIO出力制御部180を経由するトランザクションの通過の停止を指示する。また、停止期間を計測するためにタイマ170を起動する(ステップS14)。
バッファ出力制御部150を経由するトランザクションの通過を停止すると、同期外れ補償用待ち合わせバッファ121には、第1CPUモジュール11から出力されるトランザクションが蓄積され、同期外れ補償用待ち合わせバッファ122には、第2CPUモジュール12から出力されるトランザクションが蓄積されていく。同期外れ補償用待ち合わせバッファ121に蓄積されるトランザクションが所定の閾値を超えると、第1CPUモジュール11に対してトランザクション停止のフロー制御がなされる。同じように、同期外れ補償用待ち合わせバッファ122に蓄積されるトランザクションが所定の閾値を超えると、第2CPUモジュール12に対してトランザクション停止のフロー制御がなされる。
バッファ出力制御部150から出力されるトランザクションは、比較器140により一致が確認されて出力される(ステップS16−NO)。そのため、CPUモジュール11、12の両方にトランザクション停止のフロー制御がなされた後、同期外れ補償用待ち合わせバッファ121、122には、CPUモジュール11、12が同一の処理を行っている限り同数のトランザクションが蓄積されていることになる。
CPUモジュール11、12とIOモジュール21、22との間のトランザクションが安定した状態になると、トランザクションの停止解除に移行する。その判定条件は、同期外れ補償用待ち合わせバッファ121、122に格納されたトランザクション数(またはデータ数)がともに閾値を超えた場合、タイマ170が、所定のトランザクション停止期間を超え、タイムアップを通知した場合である(ステップS18)。また、同期外れ補償用待ち合わせバッファ121、122に格納されるトランザクション数が同数になったとき、CPUモジュール11、12の同期が回復したものとして、トランザクションの停止解除をしてもよい。
タイマ170がタイムアップとする所定のトランザクション停止期間は、CPUモジュール11、12がトランザクションに対する応答を期待する許容時間を保証する必要がある。また、所定のトランザクション停止期間は、CPUモジュール11、12がトランザクションに対する応答によって次のトランザクションを発行するシーケンスに移行する場合、そのトランザクションが発行されて、それに続くトランザクションが発行されなくなるまでの時間を確保しなければならない。
トランザクションの停止解除条件が揃うことにより、データフロー制御部160は、IO出力制御部180に対してトランザクション通過の許可を通知し、IOコントローラからCPUモジュールに対するトランザクションの出力が再開される(ステップS22)。続いて、データフロー制御部160は、バッファ出力制御部150に対してトランザクション通過の許可を通知し、同期外れ補償用待ち合わせバッファ121、122からIOコントローラに対するトランザクションの出力が再開される(ステップS24)。その後、データフロー制御部160は、再びバッファ使用量監視部130から通知される情報に基づいて同期外れを監視する。
トランザクション停止解除の条件が整う前に、トランザクション内容が不一致であることを比較器140が検出した場合(ステップS16−YES)、トランザクション比較制御部30は、同期化できないため、IO出力制御部180およびバッファ出力制御部150にトランザクション出力再開を指示する。また、トランザクション比較制御部30は、システムの管理部に対して、CPUモジュールの出力不一致エラーを通知し、故障被疑CPUモジュールは切り離しとなる(ステップS32)。
このトランザクション内容の不一致は、第1CPUモジュール11が出力したトランザクションと第2CPUモジュール12が出力したトランザクションとの内容が不一致であった場合に検出される。また、片方のCPUモジュールからのトランザクションが消滅し、IOモジュールに到達しない場合にも不一致が検出される。この故障被疑CPUモジュールの切離し以降の処理については当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な説明は省略する。
上述のように、両CPUモジュールが同一処理のトランザクションのタイミングでトランザクション出力を停止し、IOモジュールからCPUモジュールに対して同一タイミングで同一応答を返すことができる。これにより、CPUモジュールからのトランザクションの入力と出力の競合を避け、CPU同期外れからの同期動作回復が期待出来るようになる。
上記では、IOモジュール31、32において同期外れ補償用待ち合わせバッファ121、122に格納されるトランザクション数に基づいて同期外れを検出した。同期外れをさらに早期に検出する例を、図4を参照して説明する。
図4は、フォールトトレラントコンピュータの構成を示すブロック図である。フォールトトレラントコンピュータ8は、CPUとしてCPUモジュール11とCPUモジュール12とを備えて冗長化され、入出力装置としてIOモジュール21とIOモジュール22とを備えて冗長化されている。CPUモジュール11、12に接続されるIOモジュール21は、トランザクション比較制御部31とIOコントローラ41とを具備し、IOモジュール22は、トランザクション比較制御部32とIOコントローラ42とを具備する。
CPUモジュール11、12は、それぞれCPUバス上のタイミングの比較を行うCPUバスタイミング比較部51、52を備える。CPUバス上のタイミングを比較してCPUモジュール間のタイミングのずれを検出するため、IOモジュール21、22で行うバッファ使用量に基づく同期外れ検出よりも早期にCPU同期外れを検出することが可能となる。CPUバスタイミング比較部51、52で検出したCPUバスのタイミングずれは、それぞれIOモジュール21、22内のトランザクション比較制御部31、32に通知される。トランザクション比較制御部31、32は、その通知に基づいてデータフロー制御部160に同期外れ条件を与え、トランザクションの同期化が行われる。
このように、CPUモジュール11、12の内部でCPU同期外れを検出しているため、IOモジュール21、22の内部で検出するよりも早期に検出できる。すなわち、同期外れ発生直後からトランザクションを停止させることが可能になる。したがって、CPU同期外れを悪化させる要因となるCPUモジュールからIOモジュールへ、およびIOモジュールからCPUモジュールへといった双方向トランザクションの競合を防ぐことができるため、より確実にCPUモジュールの同期合わせができるようになる。
このように、本発明では、同期CPUモジュールからのトランザクションの到着時刻のずれはある程度許容され、その範囲内の同期外れはエラーとせずに動作が継続される。したがって、CPUモジュールの冗長化を外したCPU縮退の状態となる再同期処理を行わずに済ませることができる。また、同期外れが検出されたときのみ、CPUの冗長化を維持したままフロー制御によってCPU動作のタイミング調整が行われるため、通常動作時の性能低下はない。さらに、CPU動作のタイミング調整にトランザクションのフロー制御を利用しているため、本来のトランザクションのフロー制御の延長で簡単に構成できる。
本発明の実施の形態に係るフォールトトレラントコンピュータの構成を示すブロック図である。 同トランザクション比較制御部の構成を示すブロック図である。 同データフロー制御部の動作を説明するフローチャートである。 本発明の他の実施の形態に係るフォールトトレラントコンピュータの構成を示すブロック図である。
符号の説明
8 フォールトトレラントコンピュータ
11、12 CPUモジュール
21、22 IOモジュール
30、31、32 トランザクション比較制御部
41、42 IOコントローラ
51、52 CPUバスタイミング比較部
111、112、191、192 タイミング調整用遅延バッファ
121、122 同期外れ補償用待ち合わせバッファ
130 バッファ使用量監視部
140 比較器
150 バッファ出力制御部
160 データフロー制御部
170 タイマ
180 IO出力制御部

Claims (17)

  1. 冗長化され、ロックステップ動作する演算処理部と、
    前記演算処理部の同期外れを検出する検出部と、
    冗長化され、前記演算処理部に接続される入出力部と
    を具備し、
    前記入出力部は、前記検出部が前記同期外れを検出したとき、前記演算処理部から出力されるトランザクションのフローを制御するトランザクション比較制御部を備え、
    縮退せずに前記同期外れを解消するフォールトトレラントコンピュータ。
  2. 前記トランザクション比較制御部は、前記演算処理部から出力されるトランザクションを格納する待ち合わせバッファを含み、前記待ち合わせバッファは、前記演算処理部に対応して設けられ、
    前記検出部が前記同期外れを検出したとき、前記待ち合わせバッファから前記トランザクション出力を停止する
    請求項1に記載のフォールトトレラントコンピュータ。
  3. 前記検出部は、前記待ち合わせバッファに格納される前記トランザクションのデータ数に基づいて前記同期外れを検出する
    請求項2に記載のフォールトトレラントコンピュータ。
  4. 冗長化される前記演算処理部の各々は、それぞれのバス上のタイミングを比較するバスタイミング比較部を備え、
    検出部は、前記バスタイミング比較部から出力される比較結果に基づいて前記同期外れを検出する
    請求項2または請求項3に記載のフォールトトレラントコンピュータ。
  5. 前記待ち合わせバッファは、所定の数以上の前記トランザクションを格納するとき、前記演算処理部に前記トランザクションの出力停止のフロー制御を指示する
    請求項2から請求項4のいずれかに記載のフォールトトレラントコンピュータ。
  6. 前記待ち合わせバッファに格納される前記トランザクションのデータ数が閾値に達したとき、前記待ち合わせバッファから前記トランザクションの出力を再開する
    請求項2から請求項5のいずれかに記載のフォールトトレラントコンピュータ。
  7. 前記演算処理部に対応するそれぞれの前記待ち合わせバッファに格納される前記トランザクションのデータ数が同数になったとき、前記待ち合わせバッファから前記トランザクションの出力を再開する
    請求項2から請求項6のいずれかに記載のフォールトトレラントコンピュータ。
  8. 前記同期外れが検出されてから、所定の時間を経過したとき、前記待ち合わせバッファから前記トランザクションの出力を再開する
    請求項2から請求項7のいずれかに記載のフォールトトレラントコンピュータ。
  9. フォールトトレラントコンピュータの冗長化され、ロックステップ動作する演算処理部の同期外れを検出する検出ステップと、
    前記検出ステップで前記同期外れを検出したとき、前記演算処理部から出力されるトランザクションのフローを制御するトランザクション制御ステップと
    を具備し、
    前記同期外れを縮退せずに解消するトランザクション同期制御方法。
  10. 前記フォールトトレラントコンピュータは、前記トランザクションを前記演算処理部に対応させて格納する待ち合わせバッファを備え、
    前記トランザクション制御ステップは、前記待ち合わせバッファに前記トランザクションを格納してフローを制御するステップを備える
    請求項9に記載のトランザクション同期制御方法。
  11. 前記演算処理部のバスのタイミングを比較するバスタイミング比較ステップをさらに備え、
    前記検出ステップは、前記バスタイミング比較ステップから通知されるバスタイミングの比較結果に基づいて、前記同期外れを検出するステップを備える
    請求項10に記載のトランザクション同期制御方法。
  12. 前記フォールトトレラントコンピュータは、前記トランザクションを前記演算処理部に対応させて格納する待ち合わせバッファを備え、
    前記検出ステップは、前記待ち合わせバッファに格納される前記トランザクションのデータ数に基づいて、前記同期外れを検出するステップを備える
    請求項10に記載のトランザクション同期制御方法。
  13. 前記トランザクション制御ステップは、前記検出ステップにより前記同期外れが検出されたとき、前記待ち合わせバッファから前記トランザクションの出力を停止するステップを備える
    請求項10から請求項12のいずれかに記載のトランザクション同期制御方法。
  14. 前記トランザクション制御ステップは、前記待ち合わせバッファに所定の数以上の前記トランザクションが格納されたとき、前記演算処理部に前記トランザクションの出力停止のフロー制御を指示するステップを備える
    請求項10から請求項13のいずれかに記載のトランザクション同期制御方法。
  15. 前記トランザクション制御ステップは、前記待ち合わせバッファに格納される前記トランザクションのデータ数が閾値に達したとき、前記待ち合わせバッファから前記トランザクションの出力を再開するステップを備える
    請求項10から請求項14のいずれかに記載のトランザクション同期制御方法。
  16. 前記トランザクション制御ステップは、前記演算処理部に対応するそれぞれの前記待ち合わせバッファに格納される前記トランザクションのデータ数が同数になったとき、前記待ち合わせバッファから前記トランザクションの出力を再開するステップを備える
    請求項10から請求項15のいずれかに記載のトランザクション同期制御方法。
  17. 前記トランザクション制御ステップは、前記同期外れが検出されて所定の時間を経過したとき、前記待ち合わせバッファから前記トランザクションの出力を再開するステップを備える
    請求項10から請求項16のいずれかに記載のトランザクション同期制御方法。
JP2006222902A 2006-08-18 2006-08-18 フォールトトレラントコンピュータ、そのトランザクション同期制御方法 Expired - Fee Related JP5013309B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006222902A JP5013309B2 (ja) 2006-08-18 2006-08-18 フォールトトレラントコンピュータ、そのトランザクション同期制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006222902A JP5013309B2 (ja) 2006-08-18 2006-08-18 フォールトトレラントコンピュータ、そのトランザクション同期制御方法

Publications (2)

Publication Number Publication Date
JP2008046942A true JP2008046942A (ja) 2008-02-28
JP5013309B2 JP5013309B2 (ja) 2012-08-29

Family

ID=39180619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006222902A Expired - Fee Related JP5013309B2 (ja) 2006-08-18 2006-08-18 フォールトトレラントコンピュータ、そのトランザクション同期制御方法

Country Status (1)

Country Link
JP (1) JP5013309B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
WO2010103562A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
JP2010244129A (ja) * 2009-04-01 2010-10-28 Hitachi Ltd 計算機システム
JP2012053588A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 異なる入出力構成を容易に適用できるデータ処理装置
JP2013105491A (ja) * 2011-11-10 2013-05-30 Ge Aviation Systems Llc 高完全性処理を提供する方法
JP2013196542A (ja) * 2012-03-22 2013-09-30 Renesas Electronics Corp 半導体集積回路装置及びそれを用いたシステム
JP2013206278A (ja) * 2012-03-29 2013-10-07 Nec Corp 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
JP2019159609A (ja) * 2018-03-09 2019-09-19 Necプラットフォームズ株式会社 基盤装置、情報処理システム、制御方法及び情報処理システムの構成方法。

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110803A (ja) * 2002-08-30 2004-04-08 Nec Computertechno Ltd フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
WO2006045790A1 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
JP2006178618A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP2006178615A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110803A (ja) * 2002-08-30 2004-04-08 Nec Computertechno Ltd フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
WO2006045790A1 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
JP2006178618A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP2006178615A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
US8667315B2 (en) 2008-10-03 2014-03-04 Fujitsu Limited Synchronization control apparatus, information processing apparatus, and synchronization management method for managing synchronization between a first processor and a second processor
WO2010103562A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
JP5278530B2 (ja) * 2009-03-09 2013-09-04 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
US8677179B2 (en) 2009-03-09 2014-03-18 Fujitsu Limited Information processing apparatus for performing error process when controllers in synchronization operation detect error simultaneously
JP2010244129A (ja) * 2009-04-01 2010-10-28 Hitachi Ltd 計算機システム
JP2012053588A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 異なる入出力構成を容易に適用できるデータ処理装置
JP2013105491A (ja) * 2011-11-10 2013-05-30 Ge Aviation Systems Llc 高完全性処理を提供する方法
JP2013196542A (ja) * 2012-03-22 2013-09-30 Renesas Electronics Corp 半導体集積回路装置及びそれを用いたシステム
JP2013206278A (ja) * 2012-03-29 2013-10-07 Nec Corp 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
JP2019159609A (ja) * 2018-03-09 2019-09-19 Necプラットフォームズ株式会社 基盤装置、情報処理システム、制御方法及び情報処理システムの構成方法。
JP7120599B2 (ja) 2018-03-09 2022-08-17 Necプラットフォームズ株式会社 情報処理システム及び制御方法

Also Published As

Publication number Publication date
JP5013309B2 (ja) 2012-08-29

Similar Documents

Publication Publication Date Title
JP5013309B2 (ja) フォールトトレラントコンピュータ、そのトランザクション同期制御方法
EP1380952B1 (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
KR100566338B1 (ko) 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체
US7519856B2 (en) Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
JP5337022B2 (ja) フォールト・トレランス・コンピューティング・システムにおけるエラー・フィルタリング
US7493517B2 (en) Fault tolerant computer system and a synchronization method for the same
US8041995B2 (en) Method and system for resetting fault tolerant computer system
JP5772911B2 (ja) フォールトトレラントシステム
JP3808874B2 (ja) 分散システム及び多重化制御方法
JP2006178636A (ja) フォールトトレラントコンピュータ、およびその制御方法
WO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP2009098988A (ja) フォルトトレラントコンピュータシステム
KR100205030B1 (ko) 고장장애를 극복할 수 있는 에이티엠 스위치
JP5604799B2 (ja) フォールトトレラントコンピュータ
JP4640359B2 (ja) フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
US20170149553A1 (en) System and method for augmenting duplexed replicated computing
KR100198416B1 (ko) 이중화 제어시스템에서의 동기제어를 위한 동기신호 감시회로
JP6852910B2 (ja) フォールトトレラント装置、障害復帰方法、およびプログラム
JP2645880B2 (ja) システムクロック二重化方式
JPH08202570A (ja) 二重化プロセス制御装置
JPWO2008050456A1 (ja) コンピュータシステム、データ中継装置およびコンピュータシステム制御方法
JPH03181243A (ja) 信号同期方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120514

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5013309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120527

LAPS Cancellation because of no payment of annual fees