JP2534430B2 - フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法 - Google Patents

フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法

Info

Publication number
JP2534430B2
JP2534430B2 JP5020966A JP2096693A JP2534430B2 JP 2534430 B2 JP2534430 B2 JP 2534430B2 JP 5020966 A JP5020966 A JP 5020966A JP 2096693 A JP2096693 A JP 2096693A JP 2534430 B2 JP2534430 B2 JP 2534430B2
Authority
JP
Japan
Prior art keywords
value
processor
vector
processors
values
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.)
Expired - Lifetime
Application number
JP5020966A
Other languages
English (en)
Other versions
JPH0683661A (ja
Inventor
ジューアン・アルバート・ギャレイ
ケニス・ジェイ・ペリー
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0683661A publication Critical patent/JPH0683661A/ja
Application granted granted Critical
Publication of JP2534430B2 publication Critical patent/JP2534430B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、全般的には、コンピ
ュータ処理装置システムのフォールト・トレランス(耐
故障性)に関する。より詳細には、この発明は、ある数
の処理装置がクラッシュ(動作停止)により故障し、他
のある数の処理装置が勝手な動作を行うこと(ビザンチ
ン故障)によって同時に故障した後にシステムを適切に
動作させ続けることを可能とするプロトコルを使用する
コンピュータ処理装置システムに関する。
【0002】
【従来の技術】フォールト・トレランスのあるシステ
ム、すなわち、システムにおける一つ以上の処理装置の
故障後においてさえも適切に動作するコンピュータ・シ
ステムを必要とする多くのコンピュータ・システムの用
途がある。しばしば重要なモニタリングおよび制御機能
を実行するこれらの用途は、航空交通管制システム、原
子炉制御システム、電話交換システム、航空機/宇宙船
管制システム、金融資金の転送システムおよび「ウォー
ル・ストリート」保全トレーディング・システムを含
む。
【0003】従来技術は通常、故障に対してあるレベル
の許容度を提供するために、これらのコンピュータ・シ
ステムにおいて複数の処理装置を使用する。しばしば、
これらの処理装置は同一の機能を実行する。すなわち、
これらの処理装置は互いに同一である。多重処理装置シ
ステムは、故障した処理装置の機能を再現および実行す
る残りの非故障の処理装置に頼ることによって、一つ以
上の処理装置の故障を許容することができる。例えば、
航空機の飛行管制システムにおいては、処理装置は、セ
ンサからの信号を得て、飛行管制面(例えば、方向舵)
の位置をどのように変化させるかを決定するためにこの
信号を使用し、最後にその位置を実際に変化させるため
に信号を発生する必要がある。もし一つの処理装置だけ
がこの機能を実行しており、この処理装置が故障を起こ
したならば、航空機の安全な操縦は危いであろう。そこ
で、これらの機能を複数の処理装置において再現すれ
ば、たとえこの処理装置が故障してもその他の非故障の
処理装置を適切な管制のために使用することができるの
で、航空機の安全性を高めることができる。
【0004】フォールト・トレランスのあるシステム
は、たとえ個々の処理装置が故障してもシステムが適切
に動作することを保証するために、プロトコルと呼ばれ
るコンピュータ・プログラムを使用する。一つのフォー
ルト・トレランスのあるコンピュータ・システムの設計
は、多数の同一の処理装置と二つのタイプのプロトコル
とをともに使用する。これらの二つのプロトコルは次の
ようなものである。第1に、同報通信プロトコル、すな
わちシステムにおけるすべての処理装置に対する信号の
フォールト・トレランスのある同報通信である。第2
に、出力合致プロトコル、すなわち出力合致に到達する
フォールト・トレランスのある方法である。本質的に
は、すべての非故障の処理装置はまず、入力を同報通信
プロトコルによって分散させることによって、システム
入力に対して同等の値を決定する。次に、すべての処理
装置は、個々に出力動作を提案するために入力に対して
必要な計算を行う。最後に、すべての処理装置は、非故
障の処理装置が共通の出力動作に関して一致するように
出力合致プロトコルを実行する。
【0005】航空機の飛行管制システムの前の例に関し
ては、システムにおける代替の処理装置に対する入力と
なるセンサ出力が同一であることを保証するために、同
報通信プロトコルを使用することができる。これらの代
替の処理装置は次に、飛行管制面を移動させる方向を決
定するために、センサ出力に基づいて必要な計算を行う
ことができる。次にすべての非故障の処理装置が飛行管
制面を移動させる方向に関して一致するように決定する
ために出力合致プロトコルを使用する。
【0006】同報通信または出力合致プロトコルが許容
することができる処理装置故障の数は、故障している処
理装置の数とその故障の性質(モード)に依存する。処
理装置は、本来実行すべき機能を適切に実行することが
できなくなったときに故障したという。クラッシュ故障
とビザンチン故障との二つの故障のモードがある。処理
装置は、もしその処理装置がある段階まで一定の機能を
実行したが、その後に完全に動作を停止してしまう状態
を第一のモードであるクラッシュ故障という。処理装置
が動作を継続しているがその機能を適切に実行していな
い状態を第二のモードであるビザンチン故障という。ビ
ザンチン処理装置の挙動は、完全に任意であり、無制約
である。すなわち、ビザンチン処理装置は、その機能を
実行したり、クラッシュ(なにも実行しない)したり、
あるいは誤ったまたは任意の方法で動作し(実行はして
いるが適切でない)、結果としてそれは計算に対して誤
った結果を与える。
【0007】フォールト・トレランスのある同報通信プ
ロトコルは、一つの「同報通信」処理装置(またはセン
サ)、すなわち同報通信機によって発生された信号を、
たとえいくつかのシステム処理装置が故障しても他の処
理装置に高い信頼性で分散させることをその目的として
有する。同報通信機が送った信号は本来、すべてのシス
テム内の非故障の受信する処理装置に関して同一である
はずである。しかしながら同報通信処理装置は一度に一
つの処理装置だけに信号を送り、その信号をすべての所
望の処理装置に送る前に故障する可能性があるので、同
報通信プロトコルが必要である。もし同報通信機が故障
したら、システムにおけるいくつかの処理装置は、信号
を検出するが他の処理装置はそれを検出しない(同報通
信機がクラッシュにより故障した場合)、あるいは、異
なる信号値を検出する(同報通信機が勝手に動作するこ
とにより故障した場合)。フォールト・トレランスのあ
る同報通信プロトコルは、すべての非故障の処理装置が
最終的に同等の信号値を検出し、また、同報通信処理装
置が非故障の場合には検出された信号値が同報通信機に
よって発生されたものと同一であることを保証する。
【0008】フォールト・トレランスのある出力合致プ
ロトコルは、一の処理装置が、システムにおける他のす
べての処理装置出力と合致することを要するような動作
(信号による)を提起することを可能とする。フォール
ト・トレランスのある出力合致プロトコルは、すべての
非故障の処理装置および最終的にはシステムによって行
われる共通の動作(例えば、スイッチをオフする)に関
して「出力合致」に到達することをその目的として有す
る。処理装置は一度に一つの他の処理装置だけにしか信
号を送らず、その発信元の処理装置の故障は受信する二
つの処理装置が互いに異なる信号を検出するという状態
を引き起こすため、出力合致プロトコルが必要である。
これらの困難性にもかかわらず、フォールト・トレラン
スのある出力合致プロトコルは、すべての非故障の処理
装置が共通の動作に関して一致し、この動作が非故障の
処理装置によって提起されたものであることを保証す
る。
【0009】出力合致プロトコルにおいては最初にそれ
ぞれの処理装置が、後にシステムにおけるすべての処理
装置によって出力合致される動作(信号による)を提起
することを可能とする。システムは次に、出力合致プロ
トコルのステップに入る。出力合致プロトコルのステッ
プを終了した後、出力合致の共通動作が決定される。例
えば、飛行管制システムにおいては、航空機が上昇する
必要があるか下降する必要があるかを決定する計算を行
う、それ自身のセンサをそれぞれ備えたいくつかの処理
装置がある。システム内に故障している装置があると、
いくつかの処理装置は航空機が上昇することを提案する
が、他の処理装置はそれが下降することを提案する。し
かしながらすべての非故障の処理装置が方向に関して同
一の結論に到達し、従って航空機の移動において合致し
て動作することが重要である。
【0010】従来技術は、もし同報通信および出力合致
プロトコルを使用するコンピュータ・システムが十分に
多くの処理装置を有するならば、それらのうちの一定数
の装置がクラッシュ・モードによって故障しても、それ
を許容することができることを開示している。この従来
技術によれば、n個の処理装置から成るシステムが最大
t個のクラッシュ型の故障を許容するためには、n>t
である必要がある。すなわち、システムには、クラッシ
ュ故障を起こした処理装置よりも少なくとも一つ多い処
理装置がなければならない。言い換えれば、もしシステ
ムにおけるすべての同一の処理装置が一つだけを除いて
故障したとしても、一つの動作している処理装置がなお
システムの機能を実行することができるので、システム
はこれらの故障を許容する。例えば、最大2個のクラッ
シュ型処理装置故障を許容するためには、3個の処理装
置を使用するコンピュータ・システムで十分である。こ
れは、同報通信および出力合致プロトコルはそのような
条件下で動作可能であり、少なくとも一つの非故障の処
理装置が常に必要な計算および出力動作を実行する動作
状態にあり、かつ使用可能であるためである。
【0011】これらのシステムおよびそれらのプロトコ
ルは、クラッシュ故障と同時のビザンチン処理装置故障
を全く許容しない。
【0012】他の従来技術は、ビザンチン・モードでだ
け故障したある数の故障した処理装置を許容することが
できる、十分な数の処理装置を有するコンピュータ・シ
ステムを開示している。これらのシステムは、許容され
るビザンチン処理装置故障の数の3倍だけ多い与えられ
た数nの処理装置を必要とする。すなわち、n個の処理
装置から成るシステムが最大t個のビザンチン型の故障
を許容するためには、n>3tである必要がある。例え
ば、最大2個のビザンチン型処理装置故障を許容するた
めには、7個の処理装置を使用するコンピュータ・シス
テムで十分である。これは、同報通信および出力合致プ
ロトコルはそのような条件下で動作可能であり、そし
て、もしすべての処理装置出力を合致に到達させること
によって出力動作が決定されるならば、すべての非故障
の処理装置によって同等の出力動作が実行され、この例
では少なくとも5であるその非故障の処理装置の数が、
この例では高々2であるビザンチン処理装置の数を越え
る。従って、大多数の処理装置は同等の動作を実行す
る。
【0013】これらのシステムおよびそれらのプロトコ
ルは、最大t個のビザンチン故障を許容することがで
き、それらのうちのいくつかまたは全部はビザンチン・
クラッシュ型の故障であり得るが、これらのシステムは
3t個よりも多くの処理装置が動作することを必要とす
る。
【0014】
【発明が解決しようとする課題】従来技術の限界は、フ
ォールト・トレランスのあるコンピュータ・システムの
設計者をジレンマに陥らせる。すなわち、頻度は少ない
がより深刻なビザンチン故障を許容するシステムは、頻
度は多いが軽微なクラッシュ故障を許容するシステムよ
りも多くの処理装置(そして費用)を必要とするという
ことである。システム設計者は、最小値t+1個の処理
装置を有するシステムを設計することによって、t個の
クラッシュ故障(ビザンチン故障はない)だけを許容す
ることができるフォールト・トレランスのあるシステム
を構築することができる。このシステムは、最も一般的
な故障、すなわちクラッシュ故障を許容するが、ビザン
チン・モードで故障しているたった一つの処理装置がシ
ステム全体の誤動作を引き起こして破局的な結果をもた
らす。あるいは、設計者は、システムにおける最小値3
t+1個の処理装置により、t個のビザンチン故障を許
容するフォールト・トレランスのあるシステムを構築す
ることができる。この場合、めったに発生しないような
故障を許容するシステムを得るために、過剰の処理装置
をもって構成することとなる。この種のシステムのコス
トはとてつもなく高く、特に、もしそれぞれの処理装置
が大型コンピュータ・システムの場合これは顕著であ
る。
【0015】従って、クラッシュおよびビザンチン処理
装置故障を同時に許容することができるが(耐性がある
が)多数の処理装置は必要としない、フォールト・トレ
ランスのあるコンピュータ・システムの設計の必要性
は、産業界においてい長い間切望されてきた。本発明者
の知るかぎり、3t+1個よりも少ない処理装置を有す
るフォールト・トレランスのあるコンピュータ・システ
ムにおいてクラッシュおよびビザンチン故障の両方を許
容することができる従来技術は存在しない。後述するよ
うに本発明は最小t+2b+1個の処理装置でクラッシ
ュおよびビザンチン処理装置故障を同時に許容すること
ができるが、ビザンチン故障数bは全故障数tよりも小
さいのでt+2b+1は3t+1よりも小さい。
【0016】この発明の目的は、クラッシュおよびビザ
ンチン処理装置故障の両方を同時に許容することができ
る改良されたフォールト・トレランスのあるコンピュー
タ・システムを構築することにある。
【0017】この発明の他の目的は、システムにおける
3t+1個(tはシステムが許容することができる全処
理装置故障の最大数)よりも少ない数の処理装置によ
り、同時に起きるクラッシュおよびビザンチン処理装置
故障の両方を許容することができるフォールト・トレラ
ンスのあるコンピュータ・システムを構築することにあ
る。
【0018】この発明の他の目的は、与えられた数t個
のクラッシュおよびビザンチン処理装置故障の両方を同
時に許容することができる最小の可能な数の処理装置に
より、フォールト・トレランスのあるコンピュータ・シ
ステムを構築することにある。
【0019】この発明の他の目的は、クラッシュおよび
ビザンチン故障の両方を許容することができる出力合致
プロトコルを構築することにある。
【0020】この発明の他の目的は、クラッシュおよび
ビザンチン故障の両方を許容することができる同報通信
プロトコルを構築することにある。
【0021】
【課題を解決するための手段】この発明は、最大でt個
の処理装置の故障を許容することができ、それらのうち
のb個はビザンチン型である、コンピュータ処理装置か
ら成るシステムである。このシステムは、これらの処理
装置故障にかかわらず、ある機能を適切に実行し続ける
ために、最小の可能な数の処理装置を使用する。このタ
イプのフォールト・トレランスのあるシステムに対する
処理装置の最小数はt+2b+1である。
【0022】一般的に、このシステムはn個の処理装置
を有する。それぞれの処理装置は、システムにおけるす
べての他の処理装置と順次通信を行うことができるだけ
である。順次通信とは、一つの処理装置が一度に一つの
他の処理装置にメッセージを送ることができるだけであ
ることを意味する。
【0023】故障は一続きのメッセージを送る途中に起
こりうるので、非故障の処理装置によって検出された値
が同報通信処理装置によって発生されたものであること
を保証するために、新規なフォールト・トレランスのあ
る同報通信プロトコルを使用する。このシステムはま
た、処理装置のシステムが共通の動作に関して一致する
ことを可能とするために、新規なフォールト・トレラン
スのある出力合致プロトコルを使用する。
【0024】出力合致プロトコルは、システムにおける
それぞれの処理装置がシステムにおけるすべての他の処
理装置に信号(またはメッセージ)を送ることを指示す
る。この信号は、典型的には2進値であり、送信を行う
処理装置間で変化する。2進値がすべての可能な信号値
を表すのに不十分である場合には、出力合致プロトコル
は、信号値のそれぞれのビットの2進表示に対して実行
される。送信を行う処理装置は、システムにおけるそれ
ぞれの処理装置に順次的に、かつ、すべての受信する処
理装置が同一の信号を送られるまで、その信号を送る。
(それぞれの送信を行う処理装置それ自身は信号を送っ
たり送らなかったりする。)システムにおけるすべての
処理装置はこのタスクを同時に実行する。
【0025】出力合致プロトコルの間、受信する処理装
置のそれぞれは、他の処理装置のそれぞれから信号を受
信するときに、受信された値の第1のベクトルを生成す
る。その第1の受信された値のベクトルが満たされた
後、それぞれの処理装置は、第1のベクトルにおける
値、n(処理装置の数)の値、b(システムが許容する
ビザンチン故障の最大数)の値およびt(システムが許
容する全故障の最大数)を使用する第1の試験を行う。
それぞれの処理装置に対するこの試験の結果は第1の結
果値である。それぞれの処理装置は次に、その第1の結
果値を他の処理装置のそれぞれに再び順次的に送る。処
理装置のそれぞれは次に、他の処理装置のそれぞれから
第1の結果値を受信するときに、受信された値の第2の
ベクトルを生成する。第2の受信された値のベクトルが
満たされた後、それぞれの処理装置は次に、第2の受信
された値のベクトルおよび値bを使用する第2の試験を
行って第2の結果値を生成する。これらの第2の結果値
は次に、キング交換と呼ばれる特殊な交換方法で処理装
置間で交換される。一つの受信された値から成る第3の
ベクトルが満たされた後、この値とn、bおよびtの値
とを使用して第3の試験が行われる。これによって、第
3の結果値が得られる。この手順は適当な回数だけ繰り
返され、その後それぞれの処理装置は最終結果を得る。
【0026】もしt個以下の全処理装置故障しかなく、
かつこれらの故障のうちのb個以下がビザンチン型であ
るならば、上述の出力合致プロトコルを実行すること
は、すべての非故障の処理装置が同一の最終結果を得る
ことを保証する。さらに、非故障の処理装置の数は2b
を越えているので、非故障の処理装置の数は、その動作
を制御することができないビザンチン故障処理装置の最
大数bを越えるであろう。その結果、非故障の処理装置
は残りの機能している処理装置の過半数を構成し、従っ
てシステムにより行われる動作は、非故障の処理装置に
よって得られる最終結果によって決定されるであろう。
【0027】妥当性条件と呼ばれる制約条件が出力合致
プロトコルに課され、処理装置の入力信号の値を出力合
致の最終結果として得られる値に関係づける。妥当性条
件は、出力合致プロトコルによって達成される最終結果
が、意味のあるものであり、正しく、非自明であること
を保証するのを助ける。妥当性条件は、出力合致プロト
コルの最終結果として得られる値が少なくとも、それぞ
れの処理装置における入力信号値に関係づけられること
を保証するのを助ける。妥当性条件は、すべての処理装
置が最終結果として同一の定数値を選んでしまう(例え
ば、常に航空機に下降を指示する)ような誤った自明な
システム出力合致を妨げるのを助ける。
【0028】妥当性条件は同報通信プロトコルにも課さ
れ、同報通信処理装置によって発生されたものであると
して検出された値を同報通信処理装置によって発生され
る実際の値に関係づける。同報通信の妥当性条件は、検
出された値が非故障の同報通信処理装置によって発生さ
れた値に関係づけられることを保証するのを助ける。こ
れらの条件は、すべての処理装置が、どの値が同報通信
処理装置によって発生されたかということと無関係に同
一の定数値を検出するのを防止する。
【0029】同報通信プロトコルは、同報通信機、同報
通信処理装置またはセンサが、2進値信号(またはメッ
セージ)を、システムにおけるそれぞれの他の処理装置
に順次的に、すなわち、すべての処理装置が同一の信号
を送られるまで、まず一つの受信する処理装置に、それ
から次の処理装置に送ることを指示する。2進値がすべ
ての可能な信号値を表すのに不十分である場合には、同
報通信プロトコルは、信号値の2進値表示のそれぞれの
ビットに対して実行することができる。それぞれの受信
する処理装置は、同報通信処理装置から受信される値
(または、何も受信されなければ、あるデフォルト値)
を出力合致プロトコルに対する入力値(上述)として使
用する。従って、同報通信プロトコルは、どのような信
号が同報通信処理装置によって実際に発生されたかを決
定するために、出力合致プロトコルを使用する。同報通
信プロトコルは、もしt個以下の全処理装置故障しかな
く、かつこれらの故障のうちのb個以下がビザンチン型
であるならば、すべての非故障の処理装置が同報通信処
理装置によって発生される信号に対する共通の値を決定
する。さらに、プロトコルに課される同報通信妥当性条
件は、もし同報通信処理装置が非故障であるならば、決
定された値が同報通信処理装置によって発生されたもの
であることを指示する。
【0030】故障のうちのb個以上がビザンチン型とな
らないようにt個以下の全処理装置故障を許容するフォ
ールト・トレランスのあるコンピュータ・システムは、
同報通信のタイプと上述の出力合致プロトコルとを組み
合わせることによって構築することができる。
【0031】
【実施例】この発明は、出力合致プロトコル、同報通信
プロトコルおよびこれらの二つのプロトコルを組み合わ
せて使用することによって構築されるフォールト・トレ
ランスのあるコンピュータ・システムを含む。
【0032】図1は、通信回線(11〜15および2
0)によって接続された5個の処理装置(0〜4)から
成る一般的なコンピュータ・システム10の一例を示
す。それぞれの処理装置30は、チップ上のコンピュー
タから大型コンピュータ・システムまでの従来公知の任
意のタイプのコンピュータ処理装置であってよい。通信
回線は、一つの処理装置30から他の処理装置にデータ
を伝送するための一般的に知られた任意の通信手段であ
ってよい。例えば、これらの通信回線は、それぞれの対
の処理装置30間の一つの双方向の通信回線20または
それぞれの対の処理装置30間のそれぞれの方向におけ
る一つの一方向回線20であってよい。これらのコンピ
ュータ・システム10および通信回線20は従来周知で
ある。また、同一の処理装置に対する情報の通信として
示されている通信回線11〜15は、記述を容易にする
ために示されている。処理装置30がそれ自身に対して
情報を送る場合においては、それを通信回線上でそれ自
身に送ることなく処理装置内で単にデータを移動させる
ことのみによって、等価な結果を達成することができ
る。
【0033】図1のシステムにおける処理装置(0〜
4)は、フォールト・トレランスのあるシステムを形成
するためにそれら自身を完全に同一とする必要はない。
しかしながら、全システム10によって実行される動作
に関連する処理装置の機能は、処理装置30のそれぞれ
において同一であり、この出力合致および同報通信プロ
トコルによって使用される。この発明の出力合致および
同報通信プロトコルは、システムの処理装置30のうち
のいくつかの同時的なクラッシュおよびビザンチン故障
を全システムが許容するようにするために、このような
コンピュータ・システム10上でともに動作する。それ
ぞれのプロトコルおよびそれらが動作するフォールト・
トレランスのあるコンピュータ・システムは、t個の全
処理装置故障を許容することができ、それらのうちのb
個はビザンチン型の故障である。このシステムは、この
レベルのフォールト・トレランスを達成するために、t
+2b+1個の処理装置だけを必要とする。
【0034】図2は、このフォールト・トレランスのあ
るコンピュータ・システムの一般的な場合を示す。前述
のように、通信回線20は、それぞれの処理装置間の一
つの双方向のものまたは二重の一方向のものとすること
ができる。p0〜pn-1の番号が付けられたn個の処理装
置のそれぞれは、従来公知の任意の簡便な方法でそれ自
身と通信することができる。任意のラウンドK(ラウン
ドは以下で説明される)において、処理装置30は、シ
ステムにおける他の処理装置30に値Vを送る。典型的
なラウンドKの間にn個の処理装置から成るシステムに
おいてある処理装置ppから送られる典型的な値Vは、
p(K)で示される。
【0035】図3は、他の典型的な処理装置pqに値Vp
(K)を送っている典型的な処理装置pyを示す。それ
ぞれの処理装置30は、その処理装置が他の処理装置か
ら受信する値が記憶される受信ベクトル50、Rを有す
る。図3において、送信を行う処理装置ppは受信ベク
トル50、Rpを有し、受信する処理装置pqは受信ベク
トル50、Rqを有する。図3に示されるように、それ
ぞれの処理装置30におけるそれぞれの受信ベクトル5
0は、システムにおける他の処理装置30から受信され
る値Vを記憶するために、少なくともn個の記憶位置5
5を有し、たとえばその1つがrpで示されている。ラ
ウンドKにおけるステップの間に、送信を行う処理装置
30、ppが受信する処理装置30、pqにその値V
p(K)を送るとき、受信する処理装置pqは受信された
値Vp(K)を、処理装置ppに対して指定されたその受
信ベクトルRqにおける記憶位置rpに入れる。
【0036】図2はシステムの処理装置間での値の交換
の1ラウンドまたは反復Kを示す。1ラウンドは、シス
テムにおけるそれぞれの処理装置30が、典型的にはす
べての非故障の処理装置が送る値Vで、その受信ベクト
ル50における記憶位置55を更新する間の期間であ
る。この同報通信および出力合致プロトコルを実行して
いるとき、システムにおける処理装置は典型的には、そ
のラウンドが終了した後に計算を行う。典型的な処理装
置30は一度に一つの他の処理装置に値Vを送ることが
できるだけであるから、1ラウンドは、システム10に
おけるそれぞれの処理装置30に値Vを送るために、典
型的な処理装置30に対して、少なくともnステップを
必要とする。例えば、典型的な処理装置ppは、値V
p(K)がシステム10におけるすべての処理装置に順
次送られるまで、典型的なラウンドKのそれぞれのステ
ップの間に一つの他の処理装置にその値Vp(K)を送
る。すべての処理装置はこの同一のタスクを同時に実行
することができる。
【0037】図2は交換ラウンドまたは交換と呼ばれる
一つのタイプのラウンドを示す。ラウンドの第1のステ
ップ、すなわちステップi=0の間、システムにおける
すべての処理装置はその値Vを処理装置p0に送る。図
2の例においては、処理装置p0は、交換ラウンドまた
は反復Kにおけるステップi=0に対する受信する処理
装置である。ステップi=0の間、システムにおけるそ
れぞれの処理装置はその値Vを処理装置p0に送る。信
号V0(K)〜Vn-1(K)によってそれぞれ表されるこ
れらの値は、p0〜pn-1で示されたシステム10におけ
る処理装置30のそれぞれの出力である。処理装置p0
がこのステップの間に値V0(K)をそれ自身に送るこ
とにも注意されたい。システムにおける処理装置から
値、典型的にはVp(K)を受信したときには、ステッ
プi=0において受信する処理装置(この例では処理装
置p0)は、受信されたそれぞれの値をその適当な記憶
位置rpに入れる。これらの記憶位置55は、図3にお
いて、受信ベクトル50のr0〜rn-1として示され、処
理装置p0に対してR0と示されている。故障している処
理装置、例えば処理装置pqは、受信する処理装置に値
を送ることができないことがあることに注意されたい。
そのような場合においては、受信する処理装置は、受信
ベクトル内の適当な記憶位置rqを、何の値も受信され
ていないことを示す値(「空値」)で更新する。ステッ
プi=0において送られるすべての値、すなわちラウン
ドのV0(K)〜Vn-1(K)が、受信する処理装置、こ
こではp0によって受信されたとき、受信ベクトル5
0、ここではR0は完全に更新される。一般に、受信ベ
クトルRは、ラウンドまたは反復Kの間に受信する処理
装置に値を送る必要のある、システムにおけるすべての
処理装置の現在の値(または空値)をその記憶位置55
が含んだ後に、処理装置30において更新される。図2
の例においては、この時点でステップi=1が開始す
る。ステップi=1においては、システムにおけるすべ
ての処理装置はその値を次の受信する処理装置、すなわ
ちp1に送る。受信する処理装置p1は次に、システム1
0における処理装置30から受信されたそれぞれの値を
その適当な記憶位置に記憶する。典型的な記憶位置は、
1の受信ベクトル50(R1)においてrpで示され
る。R1における記憶位置は次に、受信ベクトルRp1
ラウンドに対して更新されるまで満たされる。この手順
は、ラウンド(反復)のそれぞれのステップにおいて、
受信する処理装置30、典型的にはppがその受信ベク
トル50、典型的にはRpを、ラウンドKの間にシステ
ム10における処理装置30によってそれに送られるす
べての値で更新するように継続する。ラウンドの最後の
ステップ、すなわちi=n−1が終了したとき、最後の
処理装置pn-1はその受信ベクトルRn-1を更新する。こ
の時点で、システム10におけるすべての処理装置30
はそれらの受信ベクトル50を更新する。すべての受信
する処理装置が受信ベクトルをそれらに送られるすべて
の値で更新した後、処理装置間の情報の交換が終了し、
交換ラウンドと呼ばれるラウンドまたは反復が終了す
る。
【0038】図2は、システムの処理装置間の情報の交
換の一例を示すに過ぎないことに注意されたい。この例
においては、システムにおけるそれぞれの処理装置は、
その値Vp(K)をシステムにおける処理装置に番号順
に送る。すなわち、処理装置30、典型的にはppは、
その値Vp(K)を、最後の処理装置pn-1に値V
p(K)が送られるまで、システム10において、まず
処理装置p0に、次に処理装置p1に、その後それぞれの
処理装置、典型的にはppに送る。図2に示されている
ように、この方式では、システムにおけるそれぞれの受
信する処理装置は、ラウンドにおける一つのステップに
おいてシステムにおけるすべての処理装置から値を受信
することになる。しかしながら、それぞれの処理装置3
0の受信ベクトル50を更新する目的を達成するための
この方式には多くの変形がある。これらの方式のすべて
はこの発明の意図する範囲内にある。例えば、典型的な
処理装置ppはその値、典型的にはVp(K)を、システ
ムにおける他の処理装置30に、任意のタイプの順序
で、例えばランダムな順序でさえも送ることができる。
他の処理装置は、それらの値を同一または異なる順序で
送ることができる。処理装置は、それらの順次伝送の途
中で休止しまたは他のタスクを実行することさえでき
る。情報の交換をうまく行うための主な基準は、それぞ
れの処理装置30が受信し、ラウンドが終了する前に、
その受信ベクトル50を、ラウンドの送信を行う処理装
置が送る必要のある値、典型的にはVp(K)で、また
は送ることができない故障している処理装置に対しては
「空」で更新する。
【0039】図4は、この同報通信および出力合致プロ
トコルによって使用される交換ラウンドの特殊な場合を
示す。このタイプのラウンドは、キングのラウンドまた
はキング交換と呼ばれる。キングのラウンドは、基本的
には、その値VK(K)をシステムにおけるすべての処
理装置に送る、「キング」と呼ばれるただ一つの処理装
置pKがあることを除いて、交換ラウンドと同一であ
る。もし処理装置がキング交換の間にキングから値を受
信しなければ、キングは故障しており、処理装置はあた
かもそれがキングから固定されたデフォルト値、例えば
0を受け取ったかのように動作する。システム10にお
ける処理装置30は、それらの受信ベクトル50をキン
グ値で更新しない。しかしながら、キング処理装置pK
が送るキング値VK(K)は、キング値位置56と呼ば
れる別々の処理装置記憶位置kKに入れられる。一旦シ
ステム10におけるすべての処理装置30がそれらのキ
ング値位置56をキング処理装置pKが送る値VK(K)
で更新すると、ラウンドKは終了する。再び、キング処
理装置は、ラウンドが終了する前にすべての処理装置3
0がそれらのキング値位置56をキング値VK(K)で
更新する限り、任意の順序でシステムにおける処理装置
に情報を送ることができる。この出力合致プロトコルに
おいては、システム10における少なくともt+1個の
処理装置がラウンドのキングである機会を有する。
【0040】図3において処理装置ppおよびpqに対し
て詳細に示されているように、記憶位置55のベクトル
50は、任意の適当な記憶位置に記憶することができ
る。しかしながら、最低でも、処理装置30が交換ラウ
ンドで受信するすべての値Vを記憶するために、それぞ
れの処理装置の受信ベクトル50に関連する十分な記憶
位置55がなければならない。処理装置はまた、それぞ
れの反復に対して記憶位置55を有する別々のベクトル
50を有する。あるいは、位置55は、ラウンドに続く
計算後に重ね書きされ、再び使用される。さらに、受信
された値が特定の送信を行う処理装置30から来たもの
と識別される限り、受信された値Vは記憶位置55に任
意の順序で記憶することができる。
【0041】この同報通信および出力合致プロトコル
は、システム10がフォールト・トレランスのあるもの
であることを保証するために、上述と同様に、システム
10上で動作する。それぞれのプロトコルは、合計t個
の処理装置故障を許容し、それらのうちのb個はビザン
チン故障である。これらのプロトコルはシステム上で次
のように動作する。まず、同報通信機、処理装置または
センサは、データ、観察および/または要求された動作
をシステムにおけるそれぞれの処理装置に送る。この伝
送は、同報通信処理装置またはセンサがどのような値を
発生したかを決定するために、同報通信プロトコルを使
用して値の形で送られる。この決定された値は次に、す
べての処理装置によって採用され、すべての処理装置に
存在する。(この同報通信プロトコルの決定は次に、シ
ステムにおけるそれぞれの同報通信機(処理装置または
センサ)に対して繰り返される。)一旦システムにおけ
るすべての同報通信機によって同報通信か行われたすべ
ての値が同報通信プロトコルによって決定されると、シ
ステムにおけるそれぞれの同報通信を表す一組の決定さ
れた同報通信値がそれぞれの処理装置上に存在する。そ
れぞれの処理装置は次に、共通の組の決定値を使用した
ある計算を行う。それぞれの処理装置は同一の計算を行
い、ある結果に到達する。(例えば、一つの処理装置同
報通信機から決定される航空機のエンジン出力の表示お
よび他の処理装置同報通信機から決定される航空機のピ
ッチは、システム10のすべての処理装置30上にある
一組の決定された同報通信値を生じる。システムのすべ
ての処理装置は次に、結果、すなわちどの位の速さで航
空機を上昇させるかを計算するために、これらの決定値
を使用する。)出力合致プロトコルは次に、システムが
何をなすべきか(どの位の速さで航空機を上昇させる
か)について一致を決定するために、システムにおける
すべての処理装置の結果に対して実行される。出力合致
プロトコルの結果は、システムがどのような動作を行う
かを決定する。
【0042】t個の全処理装置故障を許容し、それらの
うちのb個はビザンチン型である出力合致プロトコル
は、このフォールト・トレランスのあるシステムを構築
する際の最初のステップである。この発明の出力合致プ
ロトコルは、システムのすべての処理装置間で情報を交
換するステップと、それぞれの処理装置において受信さ
れる値のベクトルを生成するステップと、そのベクトル
における受信された値および他のパラメータを使用した
試験を行って結果を得るステップと、最終結果が得られ
るまでこれらのステップを繰り返すステップとを有す
る。以下に述べる妥当性条件は結果を制約する。
【0043】図5は、この出力合致プロトコルの一つの
好ましい実施例のフロー・チャートである。それは、反
復番号0〜tと呼ばれる(t+1)個の反復から成る。
値tは、システムが許容するように設計された任意のタ
イプの故障の全数を表す。任意の1つの反復を反復Kと
呼ぶことにする。この実施例においては、処理装置シス
テムは、上述の図2に示される方法で情報を交換する
(ブロック110)ことによって、(反復K=0)を開
始する(ブロック105)。最初の交換後、それぞれの
処理装置30は、その更新された受信ベクトル50にお
ける値を使用した第1の試験を適用する(ブロック11
5)。(図6および出力合致試験の詳細についての以下
の説明を参照。)この第1の試験を使用して、それぞれ
の処理装置30は、それぞれの処理装置ppに対してWp
(K)と呼ばれる新たな第1の結果を発生する(ブロッ
ク120)。それぞれの処理装置は次に、その出力値V
p(K)を第1の試験の結果Wp(K)と置換する(ブロ
ック120)。システム10のすべての処理装置は次
に、出力値Wp(K)を再び交換する(ブロック12
5)。それぞれの処理装置30は次に、その受信ベクト
ル50における新たに更新された値を使用した第2の試
験を適用する(ブロック130)。この第2の試験を使
用して、それぞれの処理装置30は、それぞれの処理装
置に対してXp(K)と呼ばれる新たな第2の結果を発
生する(ブロック135)。この第2の結果は次に、そ
れぞれの処理装置の出力としての第1の結果を置換する
(ブロック135)。システム10のすべての処理装置
は次に、上述の記述および図4に従ってキング交換を実
行する(ブロック135)。このキング交換は受信ベク
トル50における値を更新しないが、キング値を別々の
位置56に記憶する。キング交換の後(ブロック14
0)、それぞれの処理装置は、現在の受信ベクトル50
およびキング値を使用した第3の試験を適用する(ブロ
ック145)。この第3の試験(ブロック145)を使
用して、それぞれの処理装置30は第3の結果を置換す
る(ブロック150)。それぞれの処理装置に対する第
3の結果は次に、それぞれの処理装置の出力としての第
2の結果を置換する(ブロック150)。これらの出力
値(第3の試験の結果(ブロック150))は、出力合
致プロトコルの次の反復を開始させるために使用され、
従って再びVpと呼ばれる処理装置出力となる。新たな
反復は、もしシステムがt+1回の反復を実行したこと
がブロック160で決定されなかったならば、新たな反
復が開始される(ブロック155および165)。シス
テム10が(t+1)回の反復を終了したとき、値Vp
(t)はシステムに対する出力合致プロトコルの最終結
果となる。出力合致プロトコルを実行させることは、す
べての非故障の処理装置に対するVp(t)が同一であ
り、ある妥当性条件が満たされていることを保証する
(ブロック170)。これは合致状態と呼ばれる。
【0044】図6は、上述の出力合致プロトコルにおい
てシステムによって実行される三つの試験を示す。三つ
の変数がこれらの試験に対して定義される。それぞれの
処理装置30において、変数「Ones」は、それぞれの試
験が行われる前に値1を含む受信ベクトル50における
記憶位置55の数に等しい。それぞれの処理装置30に
対してと同様な方法により、変数「Twos」は、値2を含
む受信ベクトル50における記憶位置55の数に等し
く、変数「Zeroes」は値0を含む受信ベクトル50にお
ける記憶位置55の数に等しい。
【0045】第1の試験(ブロック205)を行ってい
るとき、それぞれの処理装置30は、値0および1を含
むその記憶位置55の数を計算し、上述の定義を使用し
て、その変数ZeroesおよびOnesの値を決定する(ブロッ
ク210)。この時点で、Zeroesの値がシステムが許容
することができる非故障の処理装置の数以上であるか否
か、および、Onesの値がシステムが許容するように設計
されたビザンチン型故障の数b以下であるか否かを決定
するために、第1の論理比較が行われる(ブロック21
5)。もし比較(ブロック215)が真であれば、第1
の結果値Wp(K)に値0が割り当てられる(ブロック
220)。もし第1の論理比較(ブロック215)が偽
であれば、Onesの値が(n−t)以上であるか否か、お
よび、Zeroesの値がb以下であるか否かを決定するため
に、第2の論理比較(ブロック225)が行われる(ブ
ロック225)。もし第2の論理比較が真であれば、第
1の結果値Wp(K)に値1が割り当てられる(ブロッ
ク230)。もし第2の論理比較が偽であれば、第1の
結果値Wp(K)に値2が割り当てられる(ブロック2
35)。
【0046】第1の試験を行う前に、n−t個の非故障
の処理装置は、0または1である値Vを有する。二つの
2値(ここでは0および1)しか許されないので、これ
らの非故障の処理装置のうちの少なくとも(n−t)/
2個は多数値と呼ばれる同一の値を有する。この一組の
処理装置は多数非故障処理装置と呼ばれる。システムに
おける処理装置の数nはt+2bよりも大きい(すなわ
ち、n>t+2b)ので、非故障の多数処理装置の数
(n−t)/2はbを越える。すなわち、(n−t)/
2>bである。もし多数値が0であれば、非故障の過半
数のそれぞれの処理装置はすべての他の処理装置に0を
送るので、すべての非故障の処理装置においてZeroesは
bよりも大きくなるであろう。同様に、もし多数値が1
であれば、すべての処理装置におけるOnesの値はbより
も大きくなるであろう。従って、もし多数値が0(また
は1)であれば、試験の条件1(ブロック225または
235が真)は、Wp(K)=1(または0)を割り当
てることができないように設定される。その結果、第1
の結果値は、多数非故障処理装置の値(0または1)、
または、不確定を示す値2が再び割り当てられる(ブロ
ック235)。
【0047】第2の試験(ブロック245)は、それぞ
れの処理装置30の受信ベクトル50における記憶位置
55における値0、1および2の発生数を計数すること
によって開始する。このようにして、変数Zeroes、Ones
およびTwosの値が決定される(ブロック250)。次
に、Zeroesの値がbよりも大きいか否かを決定するため
に比較(ブロック255)が行われる。もしZeroesがb
よりも大きければ、第2の結果値Xp(K)は値0を割
り当てられる(ブロック260)。もしZeroesがbより
も大きくなければ、変数Onesの値はbと比較される(ブ
ロック265)。もしOnesがbよりも大きければ、第2
の結果値Xp(K)に値1が割り当てられ(ブロック2
70)、もしそうでなければ、第2の結果値Xp(K)
は第1の結果値Wp(K)と等しくされる(ブロック2
75)。
【0048】第2の試験は、非故障の処理装置が、第1
の試験の結果として多数値を割り当てていることを表明
している処理装置の数を決定することを可能とする。も
し決定点(ブロック255または265)が真であれ
ば、ビザンチン・モードで故障している可能性のある処
理装置はb個より多くないので、少なくとも一つの非故
障または少なくとも一つの非ビザンチン故障の処理装置
は受信する処理装置に0または1をそれぞれ送り、この
値が多数派であることを表明する。非故障またはビザン
チン・モードで故障していない処理装置は、第1の試験
のステップに正確に従うので、これが実際に多数値であ
ることを保証することができる。これらの場合において
は、この値の送信を行う処理装置のうちの少なくとも一
つは非ビザンチンでなければならないので、第2の結果
値Xp(K)は0または1に等しく設定される(それぞ
れブロック260または270)。もし両決定点(25
5および265)が偽であれば、第2の試験からは何の
結論も引き出すことができないので、第2の結果値は第
1の結果値に等しく設定される。従って、第2の結果値
は、多数非故障処理装置の値(0または1)、または、
不確定を表す値2が再び割り当てられる。
【0049】第3の試験(ブロック280)は再び、そ
れぞれの処理装置30の受信ベクトル50における記憶
位置55における値0、1および2の数を計算すること
によって開始する。前述のように、変数Zeroes、Onesお
よびTwosの値がそれぞれの処理装置30に対して決定さ
れる(ブロック285)。この第3の試験の性格は、処
理装置の第2の結果値によって決定される(ブロック2
90)。もし第2の結果値が0であり、論理条件(ブロ
ック310)が真であれば、次の反復の開始時に処理装
置によって送られる結果値Vp(K+1)は0である
(ブロック315を参照)。ブロック310の論理条件
は、変数Zeroesの値が非故障の処理装置の数(n−t)
以上であり、かつ、変数Twosの値が許容されるビザンチ
ン・モード故障の数bよりも小さいことである。もし第
2の結果値が1であり(ブロック290)、論理条件
(ブロック320)が真であれば、次の反復の開始時に
処理装置によって送られる結果値Vp(K+1)は1で
ある(ブロック325を参照)。ブロック320の論理
条件は、変数Onesの値が、非故障の処理装置の数(n−
t)以上であること、および、変数Twosの値がb以下で
あることを指示する。もし第2の結果値が2であるか
(ブロック290)、あるいは、もし論理条件310ま
たは320が偽であれば、結果値Vp(K+1)は最小
値1または先の交換においてキングによって送られる値
に等しく設定される(ブロック330)。
【0050】もし論理条件310または論理条件320
が真であれば、一致が達成されたという強い指示があ
る。もし強い指示がなければ、キングは第3の結果値が
0であるか1であるかを決定する。第3の試験は第3の
結果値を0または1にする。2は第3の試験の結果値に
対して可能な選択ではないことに注意されたい。従っ
て、次の反復の開始時には、システムの処理装置30は
0または1を送るだけである。
【0051】第3の試験の意味は、もしキングが非故障
の処理装置であれば、試験の終了時に出力合致が得られ
るということである。これは、すべての処理装置の結果
値が、論理試験における非常に強い一致(ブロック31
0または320が真)または非故障の処理装置の出力に
よって決定されるからである。その結果、出力合致プロ
トコルは、非故障のキングを有する反復が実行されるま
で、上述の反復を実行することによって、処理装置の出
力の合致を保証することができる。システムにおいては
高々t個の故障した処理装置があるので、もし反復がt
+1回実行されるならば、少なくとも一つの非故障のキ
ングがある反復に存在する。t+1回の反復(例えば、
Kは0から増加し始める)の終了時には、それぞれの処
理装置は最終結果値Vp(K=t)を有し、システムは
出力合致状態にある。言い換えれば、出力合致プロトコ
ルを実行することは、すべての非故障の処理装置の最終
結果値が等しいことを保証する。
【0052】この出力合致プロトコルの他の変形が可能
であり、本発明者の企図の範囲内である。例えば、3t
+3回反復する同様なプロトコルを考案することができ
る。この出力合致プロトコルにおいては、第1の試験
は、第1の反復における交換後に実行され、第2の試験
は第2の反復における交換後に実行され、第3の試験は
第3の反復後に実行される。この一組の三つの反復をt
+1回繰り返すことによって、図6の三つの個々の試験
が一つのより大きな試験の三つの部分になることを除い
て、上述と同一のプロトコルが得られる。どの試験部分
を実行するかということと、それぞれの試験部分におけ
るどの値を使用するかということとは、反復を計算し、
かつそれぞれの試験部分において使用される値の情報を
絶えず得ることによって決定される。計算し、かつ値の
情報を絶えず得るための技術は従来周知である。
【0053】いくつかのプロトコルは通常、システムに
おける処理装置の最終値をある方法で制約する。制約の
レベルは、妥当性条件によって分類される。例えば、最
終値は、ある非故障の処理装置の入力値と同等に制約さ
れる。例えば、入力信号値が航空機を上昇または下降さ
せたいという処理装置の願望に対応し、最終結果が航空
機を実際に動かす航空機の飛行管制システムにおいて
は、最終結果(移動される方向)が少なくとも一つの非
故障の処理装置の願望と一致することが望ましいことは
明らかである。もしそのような制約がない結果であれ
ば、故障した処理装置は常に、最終結果に航空機が下降
することを示させる。
【0054】妥当性条件を変更することにより、出力合
致に対するより強い要件を示すことができる。例えば、
より強い条件は、すべての非故障の処理装置が同等の入
力値を有する場合において非故障の処理装置の入力値に
最終結果が一致することを必要とする。
【0055】この発明の目的のために、出力合致プロト
コルの妥当性条件は三つのクラス、すなわち強い、弱い
およびもろい、になる。これらの妥当性条件の定義は以
下の通りである。 1.「強い」妥当性条件は、もし少なくとも(n−t)
個の非故障の処理装置が同一の値のVp(0)で出力合
致プロトコルを開始するならば、それぞれの非故障の処
理装置において出力合致プロトコルの最終結果がその値
に等しいことを述べる。 2.「弱い」妥当性条件は、もしn個の非故障の処理装
置(すなわち、すべての処理装置が非故障)が同一の値
のVp(0)で出力合致プロトコルを開始するならば、
それぞれの非故障の処理装置において出力合致プロトコ
ルの最終結果がその値に等しいことを述べる。 3.「もろい」妥当性条件は、もしn−b個の非ビザン
チン処理装置(すなわち、非故障の処理装置およびクラ
ッシュによってのみ故障する処理装置)が同一の値のV
p(0)で出力合致プロトコルを開始するならば、それ
ぞれの非故障の処理装置において出力合致プロトコルの
最終結果がその値に等しいことを述べる。
【0056】強い妥当性条件を満たす出力合致プロトコ
ルは、もろい妥当性条件および弱い妥当性条件をも満た
すことに注意されたい。同様に、もろい妥当性条件を満
たす出力合致プロトコルは、弱い妥当性条件も満たす。
【0057】合計t個の処理装置故障を許容することが
でき、それらのうちのb個はビザンチン型である同報通
信プロトコルは、このフォールト・トレランスのあるシ
ステムの他の要件である。この発明の同報通信プロトコ
ルは、どのような値が特定の同報通信機によって送られ
たと決定されたかについてすべてのシステム処理装置間
で一致を達成するために、上述の出力合致プロトコルを
使用する。この出力合致の結果は、決定値と呼ばれる。
この決定値は、同報通信機によって発生された値を表す
ためにシステムにおけるすべての処理装置によって使用
される。
【0058】同報通信プロトコルは図7に示されてお
り、以下のように動作する。 1.図8は同報通信プロトコルにおける最初のステップ
を示す。ここでは任意に処理装置p0で示された同報通
信機は、その値をシステムにおけるすべての処理装置に
順次送る(図7におけるブロック500)。この情報の
交換は、キングが同報通信機であるキング交換と同様で
ある。 2.n個の処理装置は次に、最大でt個の故障を許容
し、それらのうちの最大b個がビザンチンである出力合
致プロトコルを使用してVに対して出力合致を達成する
(ブロック510)。 3.ステップ2において決定される出力合致プロトコル
の最終結果は、ブロック520ですべての処理装置によ
って決定値として採用され、同報通信処理装置によって
発生された値であると考えられる。この決定値は出力合
致プロトコルによって計算されたので、すべての非故障
の処理装置は同等の決定値を有する。これは、たとえ同
報通信処理装置が、ステップ1において異なる処理装置
に異なる値を送るような故障を起こしていたとしても、
真実である。
【0059】この発明の同報通信プロトコルが実行され
た後、すべての非故障の処理装置は、同報通信処理装置
によって発生されたものであると考えられる共通(決定
された)の値に関して一致する。共通値は、たとえ同報
通信機が故障していても決定される。
【0060】同報通信プロトコルは妥当性条件も有す
る。この発明の目的のために、二つの妥当性条件、すな
わち弱いおよび強いがある。同報通信の弱い妥当性条件
を満たす同報通信プロトコルは、図7の同報通信プロト
コルのステップ2における弱い妥当性条件を少なくとも
満たす出力合致プロトコルを使用することによって得ら
れる。同報通信の弱い妥当性条件を満たす同報通信プロ
トコルは、決定値を、処理装置の故障が起きていない場
合においてのみ同報通信機によって選択されるものに制
約する。同報通信の強い妥当性条件を満たす同報通信プ
ロトコルは、図7の同報通信プロトコルのステップ2に
おけるもろい妥当性条件を満たす出力合致プロトコルを
使用することによって得られる。同報通信の強い妥当性
条件を満たす同報通信プロトコルは、決定値を、任意の
他の処理装置の故障にかかわらず、処理装置が非故障で
ある場合においてのみ同報通信機によって選択されるも
のに制約する。
【0061】同報通信の強い妥当性条件を満たす同報通
信プロトコルは、同報通信の弱い妥当性条件も満たすこ
とに注意されたい。
【0062】強い妥当性条件を満たす出力合致プロトコ
ルは、同報通信の強い妥当性条件を満たす同報通信プロ
トコルから以下のように得ることができる。 1.それぞれの処理装置は別々の同報通信プロトコルに
おける同報通信機として動作し、それぞれが同報通信の
強い妥当性条件を満たす合計n個の同報通信プロトコル
が得られる。 2.n個の同報通信の終了時に、それぞれの処理装置は
n個の決定値の受信ベクトル50を有する。 3.出力合致プロトコルの最終結果は、決定値のベクト
ルにおける多数値である。
【0063】図9は、t個の処理装置故障を許容するこ
とができ、それらのうちのb個以下がビザンチン型のも
のであるコンピュータ・システム上で同報通信および出
力合致プロトコルがどのようにともに動作するかを示
す。まず、同報通信機はこの発明の同報通信プロトコル
を実行する(ブロック610)。同報通信プロトコルに
よって決定された値はシステムにおける処理装置によっ
て採用される(ブロック620)。この処理は、値を分
散させる必要のあるそれぞれの処理装置に対してNB回
(NBは同報通信機の数)繰り返される(ブロック63
0および635)。すべての処理装置が共通の決定され
た同報通信値(それぞれの同報通信機から一つの値)の
ベクトルを有するとき(ブロック640)、それぞれの
処理装置は共通の決定された同報通信値の同一のベクト
ルを使用して計算を行う(ブロック650)。この結果
はそれぞれの処理装置に対する計算値である(ブロック
650)。次に、計算の結果について出力合致を達成す
るために、この発明の出力合致プロトコルが実行される
(ブロック670)。出力合致状態が到達されたとき、
システムは、処理装置が一致して行う計算によって決定
される動作(ブロック680)を行う。
【0064】図10は、出力合致状態にあるこの発明の
コンピュータ・システム10を示す。5個の処理装置を
有するこのシステムは、2個である合計t個の故障を許
容することができ、それらのうちb個はビザンチンであ
る(b=1)。図示されたシステムは、クラッシュ型
(処理装置2において「X」で示されている)とビザン
チン型(処理装置4において「B」で示されている)と
の二つの故障を有する。このシステムは、3個、すなわ
ちt+1回の反復を行ったものである。出力合致状態に
おいては、すべての非故障の処理装置(処理装置0、1
および3)は同一の値、すなわち1に等しい値を有す
る。クラッシュを起こした処理装置(処理装置2)はゼ
ロ出力を有し、ビザンチン処理装置(処理装置4)は任
意の出力、すなわち2を有する。出力合致を達成したの
で、システムは、非故障の処理装置が一致し、それらが
ビザンチン・モードで故障を起こした処理装置の数を上
回ることが保証される。クラッシュ・モードで故障を起
こした処理装置は、それらはもはや機能していないの
で、関係がない。
【図面の簡単な説明】
【図1】複数の処理装置を有する典型的なコンピュータ
・システムを示す略線図である。
【図2】コンピュータ処理装置システムにおける処理装
置間の情報の交換を示す略線図である。
【図3】n個の記憶位置の受信ベクトルを有するこのフ
ォールト・トレランスのあるコンピュータ・システムに
おける二つの典型的な処理装置を示す略線図である。
【図4】このフォールト・トレランスのあるコンピュー
タ・システムにおける処理装置間の情報のキング交換を
示す略線図である。
【図5】この出力合致プロトコルの好ましい一実施例の
フロー・チャートである。
【図6】好ましい出力合致プロトコルにおいて使用され
る三つの試験のフロー・チャートである。
【図7】この発明の好ましい同報通信プロトコルのフロ
ー・チャートである。
【図8】この同報通信プロトコルの一実施例における同
報通信の第1のステップを示す略線図である。
【図9】フォールト・トレランスのあるコンピュータ・
システム上で動作するこの同報通信および出力合致プロ
トコルのフロー・チャートである。
【図10】出力合致状態にあるフォールト・トレランス
のあるコンピュータ・システムを示す略線図である。
【符号の説明】
10 コンピュータ・システム 11〜15、20 通信回線 30 処理装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケニス・ジェイ・ペリー アメリカ合衆国、ニューヨーク州リバー デイル、インディペンデンスアベニュ 3901、アパートメント スリージェイ

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】n個の処理装置から成り、故障処理装置の
    許容最大数がtであり、上記処理装置の内許容できるビ
    ザンチン故障の最大数がbであり、nがt+2bより大
    であるフォールト・トレランスのあるコンピュータ・シ
    ステムの出力の合致を達成するための方法であって、 a.上記システムにおける処理装置間で各処理装置出力
    信号値を他の処理装置に順次送るステップと、 b.それぞれの上記処理装置において上記ステップa.
    の間に他の処理装置から受信される上記出力信号値をベ
    クトル要素とする第1のベクトルを生成するステップ
    と、 c.上記第1のベクトル、全許容故障の最大数t、上記
    処理装置の数nおよび許容ビザンチン故障の最大数bを
    使用した第1の試験において上記第1のベクトルの要素
    の第1の値の個数をn−tと比較し、上記第1のベクト
    ルの要素の第2の値の個数をbと比較することによって
    決定される第1の結果値でそれぞれの上記処理装置にお
    ける上記出力信号値を置換するステップと、 d.それぞれの上記処理装置の上記第1の結果値を上記
    システムにおけるすべての上記処理装置に順次送るステ
    ップと、 e.上記ステップd.の間にそれぞれの上記処理装置に
    おいて受信される上記第1の結果値を表す値をベクトル
    要素とする第2のベクトルを生成するステップと、 f.それぞれの上記処理装置における上記出力信号値
    を、上記第2のベクトルおよび上記許容ビザンチン故障
    の最大数bを使用した第2の試験によって決定される第
    2の結果値で置換するステップと、 g.上記n個の処理装置の内選ばれた1つの処理装置で
    あるキング処理装置の上記第2の結果値を他の処理装置
    に送るステップと、 h.上記キング処理装置によって送られる上記第2の結
    果値を表す1つのベクトル要素からなる第3のベクトル
    を生成するステップと、 i.それぞれの上記処理装置における出力信号値を、上
    記n個の処理装置の第2の結果値、上記全許容故障の最
    大数t、上記処理装置の数n、上記許容ビザンチン故障
    の最大数bおよび上記第3のベクトルを使用した第3の
    試験によって決定される第3の結果値で置換するステッ
    プと、 j.上記ステップa.から上記ステップi.を、上記ス
    テップg.で選ばれるキング処理装置を変えた上でプロ
    トコルが許容するように設計された全故障数tよりも1
    多い回数だけ繰り返して出力合致を得るステップと、 を有する方法。
  2. 【請求項2】上記第1の試験は、 (c1)もし上記第1のベクトルがn−t個以上の第1
    の値を有し、かつ、b個以下の第2の値を有するなら
    ば、上記第1の結果値に一つの上記第1の値を割り当て
    るステップと、 (c2)もし上記第1のベクトルがn−t個以上の上記
    第2の値を有し、かつ、b個以下の上記第1の値を有す
    るならば、上記第1の結果値に一つの上記第2の値を割
    り当てるステップと、 (c3)もし上記第1のベクトルが上記(c1)および
    上記(c2)の条件を満たさなければ、上記第1の結果
    値に第3の値を割り当てるステップとをさらに有し、 上記第2の試験は、 (f1)もし上記第2のベクトルにおける上記第1の値
    の数がbよりも多ければ、上記第2の結果値に上記第1
    の値を割り当てるステップと、 (f2)もし上記第2のベクトルにおける上記第2の値
    の数がbよりも多ければ、上記第2の結果値に上記第2
    の値を割り当てるステップと、 (f3)もし上記(f1)および上記(f2)の条件が
    満たされなければ、上記第2の結果値は上記第3の値で
    あるステップとをさらに有し、 上記第3の試験は、 (i1)もし上記第2の結果値が上記第1の値に等し
    く、上記第2のベクトルにおける上記第1の値の個数が
    n−t個以上であり、上記第2のベクトルにおける上記
    第3の値の個数がb個以下であれば、上記第3の結果値
    に上記第1の値を割り当てるステップと、 (i2)もし上記第2の結果値が上記第2の値に等し
    く、上記第2のベクトルにおける上記第2の値の個数が
    n−t個以上であり、上記第2のベクトルにおける上記
    第3の値の個数がb個以下であれば、上記第3の結果値
    に上記第2の値を割り当てるステップと、 (i3)もし上記(i1)および上記(i2)の条件が
    満たされなければ、上記第3の結果値に上記交換の上記
    キング処理装置によって決定される一つの値を割り当て
    るステップとをさらに有することを特徴とする請求項1
    記載の方法。
  3. 【請求項3】上記第1の値が0であり、上記第2の値が
    1であり、上記第3の値が2であることを特徴とする請
    求項2記載の方法。
JP5020966A 1992-04-15 1993-02-09 フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法 Expired - Lifetime JP2534430B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US87001392A 1992-04-15 1992-04-15
US870013 1992-04-15

Publications (2)

Publication Number Publication Date
JPH0683661A JPH0683661A (ja) 1994-03-25
JP2534430B2 true JP2534430B2 (ja) 1996-09-18

Family

ID=25354620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5020966A Expired - Lifetime JP2534430B2 (ja) 1992-04-15 1993-02-09 フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法

Country Status (3)

Country Link
US (1) US5598529A (ja)
EP (1) EP0565915A3 (ja)
JP (1) JP2534430B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303565B2 (en) 2014-03-18 2019-05-28 Kabushiki Kaisha Toshiba Multicasting system voting on server data
US10489239B2 (en) 2015-09-08 2019-11-26 Kabushiki Kaisha Toshiba Multiplexing system, multiplexing method, and computer program product

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187638A (ja) * 1996-10-28 1998-07-21 Mitsubishi Electric Corp クラスタ制御システム
JP3390824B2 (ja) * 1997-03-19 2003-03-31 株式会社日立製作所 多重化制御装置及びその障害回復方法
DE19921179C2 (de) * 1999-05-07 2002-04-25 Astrium Gmbh Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds
US6671821B1 (en) 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US6754845B2 (en) * 2000-01-14 2004-06-22 International Business Machines Corporation Method of achieving optimistic multiple processor agreement in potentially asynchronous networks
US6931431B2 (en) * 2001-01-13 2005-08-16 International Business Machines Corporation Agreement and atomic broadcast in asynchronous networks
JP3910538B2 (ja) * 2001-03-16 2007-04-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 潜在的に非同期式のネットワーク中でシークレットを検証可能に共有する方法
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6660106B1 (en) * 2001-08-22 2003-12-09 The Boeing Company Methods of manufacture of spin-forming blanks, particularly for fabrication of rocket domes
US20050012087A1 (en) * 2003-07-15 2005-01-20 Yi-Ming Sheu Self-aligned MOSFET having an oxide region below the channel
US7078742B2 (en) * 2003-07-25 2006-07-18 Taiwan Semiconductor Manufacturing Co., Ltd. Strained-channel semiconductor structure and method of fabricating the same
JP4491479B2 (ja) * 2007-09-27 2010-06-30 株式会社日立製作所 分散制御システム
US8682842B2 (en) * 2008-12-09 2014-03-25 Yahoo! Inc. System and method for logging operations
US8386866B2 (en) * 2010-08-17 2013-02-26 Eigenix Methods for implementing variable speed scan testing
JP6100384B2 (ja) 2013-09-04 2017-03-22 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
JP6203407B2 (ja) * 2014-08-05 2017-09-27 株式会社東芝 整列装置、データ処理装置、プログラム、整列方法および多重化システム
US10481963B1 (en) * 2016-06-29 2019-11-19 Amazon Technologies, Inc. Load-balancing for achieving transaction fault tolerance

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4356546A (en) * 1980-02-05 1982-10-26 The Bendix Corporation Fault-tolerant multi-computer system
JPS60500232A (ja) * 1983-02-09 1985-02-21 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン 障害がない場合に最適化される、複数プロセッサの合意を得る方法
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US4771427A (en) * 1986-10-02 1988-09-13 United Technologies Corporation Equalization in redundant channels
US4816989A (en) * 1987-04-15 1989-03-28 Allied-Signal Inc. Synchronizer for a fault tolerant multiple node processing system
US4907232A (en) * 1988-04-28 1990-03-06 The Charles Stark Draper Laboratory, Inc. Fault-tolerant parallel processing system
US5210871A (en) * 1988-07-15 1993-05-11 The Charles Stark Draper Labroatory, Inc. Interprocessor communication for a fault-tolerant, mixed redundancy distributed information processing system
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5216675A (en) * 1990-05-23 1993-06-01 The United States Of America As Represented By The Secretary Of The Air Force Reliable broadcast protocol
US5269016A (en) * 1990-09-24 1993-12-07 Charles Stark Draper Laboratory, Inc. Byzantine resilient fault tolerant shared memory data processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303565B2 (en) 2014-03-18 2019-05-28 Kabushiki Kaisha Toshiba Multicasting system voting on server data
US10489239B2 (en) 2015-09-08 2019-11-26 Kabushiki Kaisha Toshiba Multiplexing system, multiplexing method, and computer program product

Also Published As

Publication number Publication date
US5598529A (en) 1997-01-28
JPH0683661A (ja) 1994-03-25
EP0565915A2 (en) 1993-10-20
EP0565915A3 (en) 1996-08-21

Similar Documents

Publication Publication Date Title
JP2534430B2 (ja) フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法
CN109976141B (zh) Uav传感器信号余度表决系统
US8260492B2 (en) Method and system for redundancy management of distributed and recoverable digital control system
US5550731A (en) Method and apparatus for implementing a databus voter to select the command signals from one of several redundant asynchronous digital processing units
US7765427B2 (en) Monitoring system and methods for a distributed and recoverable digital control system
EP0263773A2 (en) Symmetrization for redundant channels
JP2011216020A (ja) 情報処理装置および回路再構成装置
EP0263055A2 (en) Autoequalization in redundant channels
EP2787401B1 (en) Method and apparatus for controlling a physical unit in an automation system
KR101560497B1 (ko) 락스텝으로 이중화된 프로세서 코어들의 리셋 제어 방법 및 이를 이용하는 락스텝 시스템
KR100548831B1 (ko) 다중화제어장치및그장해회복방법
Györök et al. Duplicated control unit based embedded fault-masking systems
JP4477739B2 (ja) 冗長系情報処理システム
Zhao et al. A self-adjusting algorithm for Byzantine agreement
JP3904987B2 (ja) データ伝送方法
CN116841804B (zh) 一种基于chiplet的动态重配置方法和芯片
CN117111438A (zh) 一种工业控制器的冗余控制方法
RU2775259C1 (ru) Способ отказоустойчивого функционирования вычислительных комплексов для систем обработки информации военного назначения и устройство его реализующее
HILLS et al. Fault tolerant avionics
SU1062906A1 (ru) Дублированна система управлени
SU1741165A2 (ru) Спиральна однородна вычислительна структура
CN117215177A (zh) 一种天地往返一体化控制系统及控制方法
CN116882465A (zh) 一种神经网络加速器及其软错误处理装置和方法
CN117370074A (zh) 一种面向工业边缘计算的冗余资源热备份方法
EP0522759B1 (en) Circuit for reliable switching over of signal processing circuits