JPS6066538A - クロツク同期方法 - Google Patents
クロツク同期方法Info
- Publication number
- JPS6066538A JPS6066538A JP59149846A JP14984684A JPS6066538A JP S6066538 A JPS6066538 A JP S6066538A JP 59149846 A JP59149846 A JP 59149846A JP 14984684 A JP14984684 A JP 14984684A JP S6066538 A JPS6066538 A JP S6066538A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- clock
- time
- node
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000012545 processing Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 244000205754 Colocasia esculenta Species 0.000 description 1
- 235000006481 Colocasia esculenta Nutrition 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、ネットワーク・プロセッサ・ノードが非同期
で情報を交換する分散81算ネットワークにおけるクロ
ックの同期に係る。
で情報を交換する分散81算ネットワークにおけるクロ
ックの同期に係る。
C従来技術]
分散システムにおいて、各ノードはそれ自身の内部クロ
ックを基準にするものと仮定する。分散システム内の各
クロックは、ばらばらに偏差を生じるので、定期的に同
期をとり直し、極めて近い値をとるようにしなければな
らない。この再同期は、分散システムの多数のプロトコ
ルを実行するのに必要である。
ックを基準にするものと仮定する。分散システム内の各
クロックは、ばらばらに偏差を生じるので、定期的に同
期をとり直し、極めて近い値をとるようにしなければな
らない。この再同期は、分散システムの多数のプロトコ
ルを実行するのに必要である。
Lamport、21 CACM、558−565.J
uly 1982.”Time。
uly 1982.”Time。
C1ocks、and the Ordering o
f Events in aDistributed
System”の論文では、1つの事象をもう1つの事
象の前に生じさせ、事象の生じる順序を部分的に決める
という着想が使すれる。
f Events in aDistributed
System”の論文では、1つの事象をもう1つの事
象の前に生じさせ、事象の生じる順序を部分的に決める
という着想が使すれる。
Lamportは、この部分的順序を全体的な順序に拡
張して事象を同期させるプロトコル、更にこれを物理的
なりロック装置に適用することについて説明している。
張して事象を同期させるプロトコル、更にこれを物理的
なりロック装置に適用することについて説明している。
これは、1組の正確なりロックの差が、指定しうる量の
範囲内に納まることを保証するものである。
範囲内に納まることを保証するものである。
Lamport and Melliar−5mith
I“SynchronizingClocks in
the Presence of Faults”、S
RI丁echnical Reports、publi
shed July 13.1981の論文は、分散シ
ステムにおいて、各プロセッサがそれ自身の時刻を回報
通信することを要求されるクロック再同期について説明
している。各プロセッサは、他のすべてのプロセッサか
ら回報通信された時刻を受取り、その中の極端な値を捨
て、平均値をとってそれに同期する。fの誤がある場合
にクロック同期を達成するために、(2f + 1)の
プロセッサが必要とされる。この場合のクロック同期は
、クロックの差が指定された範囲内に納まるという状態
に過ぎない。
I“SynchronizingClocks in
the Presence of Faults”、S
RI丁echnical Reports、publi
shed July 13.1981の論文は、分散シ
ステムにおいて、各プロセッサがそれ自身の時刻を回報
通信することを要求されるクロック再同期について説明
している。各プロセッサは、他のすべてのプロセッサか
ら回報通信された時刻を受取り、その中の極端な値を捨
て、平均値をとってそれに同期する。fの誤がある場合
にクロック同期を達成するために、(2f + 1)の
プロセッサが必要とされる。この場合のクロック同期は
、クロックの差が指定された範囲内に納まるという状態
に過ぎない。
米国特許出願第485573号(1983年4月18日
)は、誤りのない場合の早期停止が保証され、f<(n
/2)の誤りの場合には最後には停止する。信頼しうる
(f + 1)連結のネットワークにおいて、n個のプ
ロセッサ間でビザンチン合意(Byzantine A
greement)が得られる方法について説明してい
る。ビザンチン合意は、すべての正確なプロセッサが、
最後には、ある値に合意することを保証するプロトコル
である。クロック同期プロトコルは、対照的に、すべて
の正確なプロセッサが(小さな指定された幅の誤りの範
囲内で)ある時刻に合意することを保証しなければなら
ない。
)は、誤りのない場合の早期停止が保証され、f<(n
/2)の誤りの場合には最後には停止する。信頼しうる
(f + 1)連結のネットワークにおいて、n個のプ
ロセッサ間でビザンチン合意(Byzantine A
greement)が得られる方法について説明してい
る。ビザンチン合意は、すべての正確なプロセッサが、
最後には、ある値に合意することを保証するプロトコル
である。クロック同期プロトコルは、対照的に、すべて
の正確なプロセッサが(小さな指定された幅の誤りの範
囲内で)ある時刻に合意することを保証しなければなら
ない。
再同期を行なうためのメツセージ交換の外に、従来のプ
ロトコルでは、前に示唆したように、かなりの量のメツ
セージの受渡しが行なわれる。前記LamportとM
elliar−3mithの論文では、約nそ+1個の
メツセージが交換される。ただし、nは全プロセッサ数
、fは許容しうる誤りの数である。また、システムによ
っては、非並行事象に同じ時刻を刻時する。
ロトコルでは、前に示唆したように、かなりの量のメツ
セージの受渡しが行なわれる。前記LamportとM
elliar−3mithの論文では、約nそ+1個の
メツセージが交換される。ただし、nは全プロセッサ数
、fは許容しうる誤りの数である。また、システムによ
っては、非並行事象に同じ時刻を刻時する。
[発明が解決しようとする問題点]
本発明の目的は、誤りのある、分散計算システムにおい
て、情報交換により、クロック同期を行なう方法を提供
することである。この方法は、メツセージ・トラヒック
を少なくして同期を達成し、誤りのある環境で連続動作
することができなけ九ばならない。
て、情報交換により、クロック同期を行なう方法を提供
することである。この方法は、メツセージ・トラヒック
を少なくして同期を達成し、誤りのある環境で連続動作
することができなけ九ばならない。
[問題点を解決するための手段]
前記目的は、対向通信するCPUのネットワークにおい
て、ローカル・クロックを定期的に同期させ、クロック
間の偏差率と、ネットワーク・メツセージの移送及び処
理時間を一定の範囲内に制限するための、誤りを許容し
ろる方法により達成される。この方法は下記のステップ
を含む。
て、ローカル・クロックを定期的に同期させ、クロック
間の偏差率と、ネットワーク・メツセージの移送及び処
理時間を一定の範囲内に制限するための、誤りを許容し
ろる方法により達成される。この方法は下記のステップ
を含む。
(a) 一定順序のノード識別リストを形成し、該リス
トを各ノードで複製する。
トを各ノードで複製する。
(b) 該リスト上の最初のノードより、それ自身を含
む全ノードに対し、偽造不可能な署名とともに、時刻値
を回報通信する。
む全ノードに対し、偽造不可能な署名とともに、時刻値
を回報通信する。
(C) 一定のプロトコルにより、時刻値についての多
重メツセージ交換をノード間で行なう。
重メツセージ交換をノード間で行なう。
その場合、
(1) 若し、時刻値が、署名数の関数として所定の間
隔内で受取られるなら、各ノルドは該時刻値を有効なも
のとして受入れ、そのクロックを前進(forward
)にセツトシ、(2) そうでない場合には、順次、該
リスト上の次のノードからもう1つの時刻値を同報通信
することにより、時刻を変更するように、ステップ(b
)及び(c)を反復する。
隔内で受取られるなら、各ノルドは該時刻値を有効なも
のとして受入れ、そのクロックを前進(forward
)にセツトシ、(2) そうでない場合には、順次、該
リスト上の次のノードからもう1つの時刻値を同報通信
することにより、時刻を変更するように、ステップ(b
)及び(c)を反復する。
[作用]
この方法はネットワークが切断されない限り有効であり
、時刻値の回報通信及び複数フェーズのメツセージ交換
の間、更に、新しいクロックを生成し、オーバラップし
て存在する期間の後に、古いクロックを捨てるステップ
が含まれている。新しいクロック指示値と古いクロック
指示値の差は明確であり、決して一定量を越えることは
ない。
、時刻値の回報通信及び複数フェーズのメツセージ交換
の間、更に、新しいクロックを生成し、オーバラップし
て存在する期間の後に、古いクロックを捨てるステップ
が含まれている。新しいクロック指示値と古いクロック
指示値の差は明確であり、決して一定量を越えることは
ない。
本発明では、クロック同期は定期的に更新されるプロセ
スであると仮定する。更新される条件は、すにでの正確
なプロセッサのクロックは、ある最大偏差以」二には決
して偏移しないことを保証するものである。この条件は
、クロックを定期的に再同期することにより達成される
ので、正確なりロックは、ある最大偏差以上には偏移し
ない。再同期のプロセスにおいて、正確なりロックは、
1つの周期中に、最大量よりも大きく調整されることも
なければ、セットし直されることもない。前に述べたよ
うに、本発明の方法は、各周期において、前に同意した
関連全プロセッサの一定順序のリストがあり、その周期
で指定された時刻に、該リストの最初のプロセッサがそ
のクロックに全クロックの同期を試みることを必要とす
る。その結果は、ずへての正確なプロセッサが所望の許
容範囲内に同期されるか、または他のすべての正確なプ
ロセッサが、該リス1への最初のプロセッサが同期に失
敗したことに合意することである。若し、最初の試みが
失敗すれば、以下、次の試みが順次に行なねれる。
スであると仮定する。更新される条件は、すにでの正確
なプロセッサのクロックは、ある最大偏差以」二には決
して偏移しないことを保証するものである。この条件は
、クロックを定期的に再同期することにより達成される
ので、正確なりロックは、ある最大偏差以上には偏移し
ない。再同期のプロセスにおいて、正確なりロックは、
1つの周期中に、最大量よりも大きく調整されることも
なければ、セットし直されることもない。前に述べたよ
うに、本発明の方法は、各周期において、前に同意した
関連全プロセッサの一定順序のリストがあり、その周期
で指定された時刻に、該リストの最初のプロセッサがそ
のクロックに全クロックの同期を試みることを必要とす
る。その結果は、ずへての正確なプロセッサが所望の許
容範囲内に同期されるか、または他のすべての正確なプ
ロセッサが、該リス1への最初のプロセッサが同期に失
敗したことに合意することである。若し、最初の試みが
失敗すれば、以下、次の試みが順次に行なねれる。
この方法の重要なパラメータは、許容される誤りの数f
である。若し、ネットワークが少なくとも(f+1)個
のプロセッサを有するなら、がっ。
である。若し、ネットワークが少なくとも(f+1)個
のプロセッサを有するなら、がっ。
若し、fよりも多くの誤りがなくて正確なプロセッサの
下位ネットワークを切断しないなら、最初の(f+1)
回の試みの1つは成功するに違いない。若し、ネットワ
ークの(f+1)よりも少ないプロセッサしかなく、正
確なプロセッサのサブネットワークが接続されたままで
あるなら、同期はn回(nはプロセッサ数)以内の試み
で成功するであろう。
下位ネットワークを切断しないなら、最初の(f+1)
回の試みの1つは成功するに違いない。若し、ネットワ
ークの(f+1)よりも少ないプロセッサしかなく、正
確なプロセッサのサブネットワークが接続されたままで
あるなら、同期はn回(nはプロセッサ数)以内の試み
で成功するであろう。
[実施例コ
クロック同 1 び 。
分散システムにおけるクロック同期は、従来の技術では
、幾つかの方法に制約されている。その一つの方法は、
LamportとMclliar−5mithによって
提供されたものである。それによれば、任意の与えられ
た実時間に、任意の2つの正確なプロセッサ/クロック
の時刻の差は、ある定数(dmax)に制限され、各フ
ェーズの終りに、誤りのないクロックを増加する量が定
数によって制限される。
、幾つかの方法に制約されている。その一つの方法は、
LamportとMclliar−5mithによって
提供されたものである。それによれば、任意の与えられ
た実時間に、任意の2つの正確なプロセッサ/クロック
の時刻の差は、ある定数(dmax)に制限され、各フ
ェーズの終りに、誤りのないクロックを増加する量が定
数によって制限される。
本発明では、直接には観測できない仮定のニュートン時
間系で測定されたような実時間と、あるクロックで測定
されたクロックタイムとが区別される。若し、Cが誤り
のないクロックであるなら、関数c(t)は、実時間t
で読取られたクロックタイムCを表わすのに用いられる
。
間系で測定されたような実時間と、あるクロックで測定
されたクロックタイムとが区別される。若し、Cが誤り
のないクロックであるなら、関数c(t)は、実時間t
で読取られたクロックタイムCを表わすのに用いられる
。
Cが実時間から偏移している率の領域をρで表わすもの
とすると1本発明が正確に動作するためには、下記の条
件を仮定する必要がある:条件1 正確なプロセッサのクロックタイムが実時間がら偏移す
るWJ期をfrIJ限する率ρが存在する。
とすると1本発明が正確に動作するためには、下記の条
件を仮定する必要がある:条件1 正確なプロセッサのクロックタイムが実時間がら偏移す
るWJ期をfrIJ限する率ρが存在する。
制限された偏差の率は、次式によって表わされる二
(1+ρ)−’(v−u)<c(v)−c(u)<(1
+ρ)(v7u)条件2 若し、2つのプロセッサ、及びこAしらのプロセッサを
連結するリンクが、誤りのないものであれば、′時刻は
tである″のような短いメツセージを作成し、リンクに
沿って送信し、受信端で処理するのに必要な時刻の既知
の」二限tdel (時間遅延)が存在する。
+ρ)(v7u)条件2 若し、2つのプロセッサ、及びこAしらのプロセッサを
連結するリンクが、誤りのないものであれば、′時刻は
tである″のような短いメツセージを作成し、リンクに
沿って送信し、受信端で処理するのに必要な時刻の既知
の」二限tdel (時間遅延)が存在する。
束丑l
プロセッサごとに番号1.2、・・・、nを付与する。
若し、プロセッサiがメツセージInを送信しようとす
るなら、 (a) i以外のプロセッサはメツセージe、[m]を
作成できない。
るなら、 (a) i以外のプロセッサはメツセージe、[m]を
作成できない。
ように関数e、が符号化される。これは、どのメツセー
ジも偽造できないことを意味し、(b) 若し、プロセ
ッサjがe、[m]を受信すれば、プロセッサjはmを
復号し、メツセージを送ったプロセッサがiであったと
決めることができる。
ジも偽造できないことを意味し、(b) 若し、プロセ
ッサjがe、[m]を受信すれば、プロセッサjはmを
復号し、メツセージを送ったプロセッサがiであったと
決めることができる。
即ち、メツセージは確認できる。
条件4
許容しつる偏差率及び誤りの数は次の関係式によって表
わされる: 1−2ρ(1+ρ)(f + 1)(2f + 1)>
0最近使われているクロックは、条件1のρ=10″′
Gを保証するのに十分精密である。更に、tdal=0
.1秒の時間遅延は、条件2の場合にほぼ等しい。メツ
セージ・ソースの確認を満足する暗号化技術(署名偽造
の不可能性)の使用は、例えば、Rivest et
al、”A Method for Obtainin
gDigital Signatures and P
ublic−keyCryptosystems”、C
ACM、Vol、21.No、2.February
1978のようによく知られている。前述のようなρ=
10−″の場合、誤りf<498は、条件4を満足する
。一般に、誤りの数は、大抵の使用例で3またはそれよ
りも少ない。
わされる: 1−2ρ(1+ρ)(f + 1)(2f + 1)>
0最近使われているクロックは、条件1のρ=10″′
Gを保証するのに十分精密である。更に、tdal=0
.1秒の時間遅延は、条件2の場合にほぼ等しい。メツ
セージ・ソースの確認を満足する暗号化技術(署名偽造
の不可能性)の使用は、例えば、Rivest et
al、”A Method for Obtainin
gDigital Signatures and P
ublic−keyCryptosystems”、C
ACM、Vol、21.No、2.February
1978のようによく知られている。前述のようなρ=
10−″の場合、誤りf<498は、条件4を満足する
。一般に、誤りの数は、大抵の使用例で3またはそれよ
りも少ない。
ローカル・ノード町!行
本発明の方法は、少なくとも1つのCPUを含み、それ
ぞれのCPUは、主記憶装置、入出力チャネル、制御装
置、直接アクセス記憶装置、アドレス可能なローカル・
クロック、及びそれらに連結された他の■/○装置を有
するill算システムで実行可能である。このようなシ
ステムは、米国特許第3400371号に記載されてい
る。前記システムは、資源として、M1算システム、ま
たは該システム上で本発明の方法を含むプロセスの実行
に必要なランをするオペレーティング・システムの機能
のすべてを含む。代表的な資源として、主記憶装置I1
0装置、CPU、データセット、及び制御または処理プ
ログラムがある。更に、前記システムは、″マルチプロ
グラミング″が可能である。これは、計算システムによ
る2つ以」二のプロセスの並行実施に適し、I B M
Publj、cationGC28−6646,Ju
l!/ 1973に記載されているようにIBMシステ
ム/370オペレーティング・システムによってランし
ているコンピュータで管理でき、I B M 5yst
el!l/360 Bibliograpl+y、GA
22−6822に集録されている。非同期で動作するC
PUのネットワークについては、米国特許第39407
4−3号及び同第4223380号に記載されている。
ぞれのCPUは、主記憶装置、入出力チャネル、制御装
置、直接アクセス記憶装置、アドレス可能なローカル・
クロック、及びそれらに連結された他の■/○装置を有
するill算システムで実行可能である。このようなシ
ステムは、米国特許第3400371号に記載されてい
る。前記システムは、資源として、M1算システム、ま
たは該システム上で本発明の方法を含むプロセスの実行
に必要なランをするオペレーティング・システムの機能
のすべてを含む。代表的な資源として、主記憶装置I1
0装置、CPU、データセット、及び制御または処理プ
ログラムがある。更に、前記システムは、″マルチプロ
グラミング″が可能である。これは、計算システムによ
る2つ以」二のプロセスの並行実施に適し、I B M
Publj、cationGC28−6646,Ju
l!/ 1973に記載されているようにIBMシステ
ム/370オペレーティング・システムによってランし
ているコンピュータで管理でき、I B M 5yst
el!l/360 Bibliograpl+y、GA
22−6822に集録されている。非同期で動作するC
PUのネットワークについては、米国特許第39407
4−3号及び同第4223380号に記載されている。
木・IIJの一法をt′テする流れ
第1図では、本発明の方法が高いレベルの流れ図で示さ
hでいる。ネットワークの各々のプロセッサ/クロック
・ノードには、一定順序のノード・リストを常駐させる
。先ず、リスト上の最初のノードが、そJし自身を含む
他のすべてのノードに自らの偽造不可能な署名と一緒に
時刻を回報通信する。次に、メツセージ交換が進められ
、ネットワーク中の各受信プロセッサは、それ自身を含
むすべての活動中のプロセッサに、自らの偽造不可能な
署名と一緒に前記のメツセージを送る。若し、メツセー
ジが、署名数の関数として所定の間隔内に受取られるな
ら、時刻は有効なものとして受入れられ、ローカル・ク
ロックは“前進″にセットされる。若し、時刻が前記間
隔内で受取られないなら、リスト」二の最初のノードは
、次のノードと置換えられ、次のノードが、それ自身を
含むすべてのノートに、自らの偽造不可能な署名と一緒
に、更新された時刻を回報通信し、メツセージ交換を反
復する。リスト上の最初のノードは、他のプロセッサに
、現在の時刻を知らせる。このような“シンクロナイザ
″は、誤りを有することがあるから、一定順序のリスト
により、1<4りを有するシンクロナイザを取換える方
法が提供される。
hでいる。ネットワークの各々のプロセッサ/クロック
・ノードには、一定順序のノード・リストを常駐させる
。先ず、リスト上の最初のノードが、そJし自身を含む
他のすべてのノードに自らの偽造不可能な署名と一緒に
時刻を回報通信する。次に、メツセージ交換が進められ
、ネットワーク中の各受信プロセッサは、それ自身を含
むすべての活動中のプロセッサに、自らの偽造不可能な
署名と一緒に前記のメツセージを送る。若し、メツセー
ジが、署名数の関数として所定の間隔内に受取られるな
ら、時刻は有効なものとして受入れられ、ローカル・ク
ロックは“前進″にセットされる。若し、時刻が前記間
隔内で受取られないなら、リスト」二の最初のノードは
、次のノードと置換えられ、次のノードが、それ自身を
含むすべてのノートに、自らの偽造不可能な署名と一緒
に、更新された時刻を回報通信し、メツセージ交換を反
復する。リスト上の最初のノードは、他のプロセッサに
、現在の時刻を知らせる。このような“シンクロナイザ
″は、誤りを有することがあるから、一定順序のリスト
により、1<4りを有するシンクロナイザを取換える方
法が提供される。
本、明の 法のタスク構成
ネットワーク内の各プロセッサは、3つのタスク −そ
のうち少なくとも2つは待ち状態である−の収集を実行
する。本発明の説明を進めるに当り、時刻及びタロツク
に関する項を定義し、ネットワークの関連する状態を特
徴づけ、これらを、本発明の方法のステップを実行する
タスクに関連させることが望ましい。本発明の説明後、
その使用例として、最初に、誤りのない完全に接続され
たネットワークの場合と1次に、同じネットワークで、
プロセッサ及び通信リンクに誤りのある場合について説
明する。
のうち少なくとも2つは待ち状態である−の収集を実行
する。本発明の説明を進めるに当り、時刻及びタロツク
に関する項を定義し、ネットワークの関連する状態を特
徴づけ、これらを、本発明の方法のステップを実行する
タスクに関連させることが望ましい。本発明の説明後、
その使用例として、最初に、誤りのない完全に接続され
たネットワークの場合と1次に、同じネットワークで、
プロセッサ及び通信リンクに誤りのある場合について説
明する。
最初、新しいクロックを開始することにより、同期が行
なわれる。k番目の同期の後、プロセッサiは、そのC
LOCK (k)のランを生じる。
なわれる。k番目の同期の後、プロセッサiは、そのC
LOCK (k)のランを生じる。
プロセッサは、k番目の同期がいつ生じるかについて正
確に合意できないので、実時間は、非オーバラツプ間隔
1ntk= [begi+yandk]に分解される。
確に合意できないので、実時間は、非オーバラツプ間隔
1ntk= [begi+yandk]に分解される。
ただし、bcg、は、最後の、誤りのないプロセッサか
に番目のクロックの開始を決める時刻であり、endl
は、最初の誤りのないプロセッサが、k+1番目のクロ
ックの開始を決める時刻である。最初に、すべてのプロ
セッサは、同時にCLOCK (0)のランを始める。
に番目のクロックの開始を決める時刻であり、endl
は、最初の誤りのないプロセッサが、k+1番目のクロ
ックの開始を決める時刻である。最初に、すべてのプロ
セッサは、同時にCLOCK (0)のランを始める。
説明を簡単にするため、この開始時刻をOとする。数学
的には、すべてのiに対し。
的には、すべてのiに対し。
bego二〇LOCK(0)=Oである。もちろん、同
期初期開始以外の開始も可能である。このような、強制
が緩和された場合の説明は後に行なう6 一般に、間隔(endk−begk)の長さは時間単位
であるが、間隔(begk+1−endk)の間のギャ
ップは秒単位である。本発明では、間隔の間のギャップ
はタイムアウトされなくてもよく、また、プロセッサは
、数秒間、k番目のクロックを(k+1)番目の間隔に
使用し、k番目の間隔で開始されたプロ1−フルのタイ
ミングを行なう。例え、2つのクロックを使用している
短かいオーバラップ周期があっても、すべてのプロ1〜
コルはタイム・スタンプを必要とするので、どのタロツ
クを使用すべきかについてもあいまいさはない。
期初期開始以外の開始も可能である。このような、強制
が緩和された場合の説明は後に行なう6 一般に、間隔(endk−begk)の長さは時間単位
であるが、間隔(begk+1−endk)の間のギャ
ップは秒単位である。本発明では、間隔の間のギャップ
はタイムアウトされなくてもよく、また、プロセッサは
、数秒間、k番目のクロックを(k+1)番目の間隔に
使用し、k番目の間隔で開始されたプロ1−フルのタイ
ミングを行なう。例え、2つのクロックを使用している
短かいオーバラップ周期があっても、すべてのプロ1〜
コルはタイム・スタンプを必要とするので、どのタロツ
クを使用すべきかについてもあいまいさはない。
ネッ1−ワーク全般に共通する変数名及び定数名、並び
に特定のプロセッサの部分的な変数名及び定数名は次の
とおりである。
に特定のプロセッサの部分的な変数名及び定数名は次の
とおりである。
ネットワーク全般に共通する変数名及び定数名:n=プ
ロセッサ数 per =同期周期 tdel =最大の伝送・処理遅延 dmax =クロックの最大偏差 f、=リンクの許容しうる誤りの数 f、=プロセッサの許容しうる誤りの数f=f、十f、
=許容しうる全誤り数 5ync =現在のシンクロナイザのプロセッサ数at
=次に予定された同期タイム 特定のプロセッサの部分的な変数名及び定数名:i=特
定のプロセッサ番号(1,2、・・・nの範囲) k−現在のクロックの指標(0,1,2、・・・の範囲
) CI、0CR(0:k)=クロックのアレイ(0〜無限
大の範囲) ネットワーク位相(1−ポロン)の関数は、ntr(f
) 、byzt(s、f)及びdiam (f p r
f* )である。これらの関数については、後述の″
一般的考察″の項で詳細に説明する。タスク・スケジュ
ーリングのプリミティブは、時刻の持続期間を測定する
タイマ、及び起動、即ち、タイマがオフになる事象を含
むいくつかの事象の発生、またはいくつかの他のタスク
及び起動タスクiからの起動メツセージにより、プロセ
ッサを″起動”するモニタを含み、′起動″メツセージ
をタスクiに送る。また、すべてのプロセッサの初期値
は、 5ync=1 に=0 CLOCK(0) = 0 et=タスク1では、プロセッサ1のタイマがperで
オフになるようにセットされ、タスク3では、すべての
プロセッサのタイマは per+byzt(ntr(fLf)でオフになるよう
にセラ1−される を含む。
ロセッサ数 per =同期周期 tdel =最大の伝送・処理遅延 dmax =クロックの最大偏差 f、=リンクの許容しうる誤りの数 f、=プロセッサの許容しうる誤りの数f=f、十f、
=許容しうる全誤り数 5ync =現在のシンクロナイザのプロセッサ数at
=次に予定された同期タイム 特定のプロセッサの部分的な変数名及び定数名:i=特
定のプロセッサ番号(1,2、・・・nの範囲) k−現在のクロックの指標(0,1,2、・・・の範囲
) CI、0CR(0:k)=クロックのアレイ(0〜無限
大の範囲) ネットワーク位相(1−ポロン)の関数は、ntr(f
) 、byzt(s、f)及びdiam (f p r
f* )である。これらの関数については、後述の″
一般的考察″の項で詳細に説明する。タスク・スケジュ
ーリングのプリミティブは、時刻の持続期間を測定する
タイマ、及び起動、即ち、タイマがオフになる事象を含
むいくつかの事象の発生、またはいくつかの他のタスク
及び起動タスクiからの起動メツセージにより、プロセ
ッサを″起動”するモニタを含み、′起動″メツセージ
をタスクiに送る。また、すべてのプロセッサの初期値
は、 5ync=1 に=0 CLOCK(0) = 0 et=タスク1では、プロセッサ1のタイマがperで
オフになるようにセットされ、タスク3では、すべての
プロセッサのタイマは per+byzt(ntr(fLf)でオフになるよう
にセラ1−される を含む。
タスク
第2図〜第4図は、誤りのない各プロセッサに常駐して
いるタスクから成り、大抵の場合、タスクの1つは待ち
状態にはなく、残りのタスクは実行中である。
いるタスクから成り、大抵の場合、タスクの1つは待ち
状態にはなく、残りのタスクは実行中である。
第2図は同報通信モニタを示す。このタスクでは、実行
中の、誤りのないプロセッサj (jは]−〜nの範囲
)は、その現在のタロツク(CI、0CR(k))がe
tよりも大きいか、またはetに等しい値を有するかど
うかを検査する。若し、CLOCK(k)がetよりも
小さいなら、プロセッサiは、時刻etで起動するよう
にタイマをセットする。若し、CLOCK(k)がet
よりも大きいか、またはetに等しいなら、プロセッサ
jは、署名の上、′同期せよ。時刻はet、 uのメツ
セージを、すべてのプロセッサに送り出す。
中の、誤りのないプロセッサj (jは]−〜nの範囲
)は、その現在のタロツク(CI、0CR(k))がe
tよりも大きいか、またはetに等しい値を有するかど
うかを検査する。若し、CLOCK(k)がetよりも
小さいなら、プロセッサiは、時刻etで起動するよう
にタイマをセットする。若し、CLOCK(k)がet
よりも大きいか、またはetに等しいなら、プロセッサ
jは、署名の上、′同期せよ。時刻はet、 uのメツ
セージを、すべてのプロセッサに送り出す。
このメツセージは、符号化関数e、を使って符号化され
るので、その偽造は不可能である。このタスク(タスク
1)は休止状態にな−る。
るので、その偽造は不可能である。このタスク(タスク
1)は休止状態にな−る。
第3図は有効性モニタを示す。プロセッサiは、若し、
′同期せよ。時刻はt。′のメツセージを受取れば、そ
のメツセージが有効かどうかを確かめるため、後述する
一連の検査を実行する。若し、これらの検査の1つが“
イエス″の答を出せば、プロセッサlはメツセージを無
視して休止状態になる。
′同期せよ。時刻はt。′のメツセージを受取れば、そ
のメツセージが有効かどうかを確かめるため、後述する
一連の検査を実行する。若し、これらの検査の1つが“
イエス″の答を出せば、プロセッサlはメツセージを無
視して休止状態になる。
最初に検査されるのは、メツセージが確認されたかどう
かである。即ち、受取ったメツセージが正しく符号化さ
れ、すべての信号が明白であるかどうかである。メツセ
ージの次の検査は、メツセージの署名の方が少なかった
場合に、誤りのないいくつかのプロセッサが受取ったに
違いない多くの署名があったかどうかについて行なわれ
る。または、メツセージで与えられた時刻が、プロセッ
サが期待している時刻と異なるかどうかが検査される。
かである。即ち、受取ったメツセージが正しく符号化さ
れ、すべての信号が明白であるかどうかである。メツセ
ージの次の検査は、メツセージの署名の方が少なかった
場合に、誤りのないいくつかのプロセッサが受取ったに
違いない多くの署名があったかどうかについて行なわれ
る。または、メツセージで与えられた時刻が、プロセッ
サが期待している時刻と異なるかどうかが検査される。
換言すれば、Sはntr(f)よりも大きいか、または
tはatに等しくないかどうかが検査される。
tはatに等しくないかどうかが検査される。
3番目の検査は、シンクロナイザに誤りがない場合、プ
ロセッサiの現在のタロツク・タイムが、クロック同期
を行なうのに必要な時間よりも大きいかどうか、即ち、
CLOcK(k)がt4byzt (s 、 f )よ
りも大きいかどうかである。最後の検査は、現在のクロ
ック・タイムが新しい同期を開始するには早過ぎるかど
うか、即ち、 CLOCK(k)が(t−s(dmax
))よりも小さいかどうかである。
ロセッサiの現在のタロツク・タイムが、クロック同期
を行なうのに必要な時間よりも大きいかどうか、即ち、
CLOcK(k)がt4byzt (s 、 f )よ
りも大きいかどうかである。最後の検査は、現在のクロ
ック・タイムが新しい同期を開始するには早過ぎるかど
うか、即ち、 CLOCK(k)が(t−s(dmax
))よりも小さいかどうかである。
若し、前記検査の結果がどれもノーであれば、メツセー
ジは有効とみなされ、続いて、プロセッサiは実際の同
期を実行する。同期は下記ステップから成る: (1)kの値を1だけ増加して新しいクロックを生成す
る。即ち、k = k + 1とする。
ジは有効とみなされ、続いて、プロセッサiは実際の同
期を実行する。同期は下記ステップから成る: (1)kの値を1だけ増加して新しいクロックを生成す
る。即ち、k = k + 1とする。
(2)前に合意した新しいクロックの開始時刻にCLO
CR(k)をセットすることにより(新しいクロックと
なった)CLOCK (k)のランを開始する。即ち、
CLOCK(k)=et+byzt(ntr(f)、f
)を実行する。これは、新しいタロツクが古いクロック
の現在時刻よりも大きい開始時刻を有することを意味す
る。
CR(k)をセットすることにより(新しいクロックと
なった)CLOCK (k)のランを開始する。即ち、
CLOCK(k)=et+byzt(ntr(f)、f
)を実行する。これは、新しいタロツクが古いクロック
の現在時刻よりも大きい開始時刻を有することを意味す
る。
(3) 次のクロック同期の予想時刻をセットすする。
即ち、et=et+perを実行する。
(4)起動メツセージをタスク3に送る。
同期を実行した後、プロセッサiは、プロセッサjがリ
スト上の最初のノード(シンクロナイザ)であるかどう
かを検査する。若し、その結果が″イエス” (I=S
YN(:)なら、プロセッサiはタスク1に起動コマン
ドを出す。プロセッサiがシンクロナイザであるかどう
かにかがねらず、プロセッサ1はメツセージに署名し、
それを他のすべてのプロセッサに送る。最後に、このタ
スク(タスク2)は休止状態になる。
スト上の最初のノード(シンクロナイザ)であるかどう
かを検査する。若し、その結果が″イエス” (I=S
YN(:)なら、プロセッサiはタスク1に起動コマン
ドを出す。プロセッサiがシンクロナイザであるかどう
かにかがねらず、プロセッサ1はメツセージに署名し、
それを他のすべてのプロセッサに送る。最後に、このタ
スク(タスク2)は休止状態になる。
第4図には、現在のシンクロナイザ・モニタが示されて
いる。若し、プロセッサiが、同期実行を要する時点で
有効なメツセージを受取っていなければ、現在のシンク
ロナイザに誤りがあるに違いない。従って、プロセッサ
iは、リスト上の次のシンクロナイザを選び、予想され
る再同期を前進させる。即ち、若し、プロセッサ1の現
在のクロック・タイムが、クロック同期が実行されるべ
き時刻よりも小さければ、プロセッサ】は、そのタイマ
を該時刻に起動するようにセラ1−する。若し、シンク
ロナイザに誤りがなけJしば、該時刻までにクロック同
期は完了する。第4図で、若し、CLOCK(k)がe
t+byzt(ntr(fLf)よりも小さければ、プ
ロセッサjのタイマはet+byzt(ntr(f)、
f)に起動するようにセットされる。そうでない場合は
、プロセッサiは下記のステップを実行する:(1)プ
ロセッサiはリスト上の次のプロセッサをシンクロナイ
ザに選択する。これは5YNC=SYNC+1(MOD
N)を実行することを意味する。
いる。若し、プロセッサiが、同期実行を要する時点で
有効なメツセージを受取っていなければ、現在のシンク
ロナイザに誤りがあるに違いない。従って、プロセッサ
iは、リスト上の次のシンクロナイザを選び、予想され
る再同期を前進させる。即ち、若し、プロセッサ1の現
在のクロック・タイムが、クロック同期が実行されるべ
き時刻よりも小さければ、プロセッサ】は、そのタイマ
を該時刻に起動するようにセラ1−する。若し、シンク
ロナイザに誤りがなけJしば、該時刻までにクロック同
期は完了する。第4図で、若し、CLOCK(k)がe
t+byzt(ntr(fLf)よりも小さければ、プ
ロセッサjのタイマはet+byzt(ntr(f)、
f)に起動するようにセットされる。そうでない場合は
、プロセッサiは下記のステップを実行する:(1)プ
ロセッサiはリスト上の次のプロセッサをシンクロナイ
ザに選択する。これは5YNC=SYNC+1(MOD
N)を実行することを意味する。
(2) 予期される同期時刻はそれに応じて増加する。
即ち、et=et+byzt(ntr(fLf)を実行
する。次いで、プロセッサjは、プロセッサjがシンク
ロナイザであるがどうかを検査する。
する。次いで、プロセッサjは、プロセッサjがシンク
ロナイザであるがどうかを検査する。
若し、プロセッサiがシンクロナイザなら、プロセッサ
iは、タスク1に起動コマンドを出す。プロセッサiが
シンクロナイザであるかどうかにかかわらず、プロセッ
サiは、そのタイマを該時刻に起動するようにセラ1へ
する。若し、新しいシンクロナイザに誤りがなければ、
新しいシンクロナイザとのクロック同期は、該時刻まで
に、即ちet+byzt(ntr(f)。
iは、タスク1に起動コマンドを出す。プロセッサiが
シンクロナイザであるかどうかにかかわらず、プロセッ
サiは、そのタイマを該時刻に起動するようにセラ1へ
する。若し、新しいシンクロナイザに誤りがなければ、
新しいシンクロナイザとのクロック同期は、該時刻まで
に、即ちet+byzt(ntr(f)。
f)とCLOCK(k)の間の時刻に完了する。
一般的考察
ネットワーク内には最大fの誤りがあり、更に、ネット
ワーク内の各々のノード対の間には一定の経路があるも
のと仮定されている。またgが、最初のネットワークと
同じノード・セットを有し、かつ、これらのノード間の
経路に誤りがない場合は正確に2つのノード間のエツジ
を有するグラフであるとすると、グラフgは最初のネッ
トワーク、経路及び誤りセットに依存するものと推定さ
オルる。
ワーク内の各々のノード対の間には一定の経路があるも
のと仮定されている。またgが、最初のネットワークと
同じノード・セットを有し、かつ、これらのノード間の
経路に誤りがない場合は正確に2つのノード間のエツジ
を有するグラフであるとすると、グラフgは最初のネッ
トワーク、経路及び誤りセットに依存するものと推定さ
オルる。
若し、gが該誤りセットによって切断さねなければ、g
において、誤りのないどのノード対の間にも最短経路が
存在する。該誤りセットにf、のノード誤りとf交のリ
ンク誤りがある場合、これらの最短経路の中の最長経路
をdiam(Loft)とすると、 f=f、+f、で
あるので、次式が成立する。
において、誤りのないどのノード対の間にも最短経路が
存在する。該誤りセットにf、のノード誤りとf交のリ
ンク誤りがある場合、これらの最短経路の中の最長経路
をdiam(Loft)とすると、 f=f、+f、で
あるので、次式が成立する。
nノードで完全に連結されたグラフの場合、若し、f、
11かっf、+f、≦n−2なら、diam(C+fg
)=2である。若し、f、=0から、即ち、リンク誤り
がないなら(LamportとMelliar−5mi
thの論文で考えられるケース) 、 diam(f、
o)=1である。どちらの場合も、ntr(f)=f+
]である。
11かっf、+f、≦n−2なら、diam(C+fg
)=2である。若し、f、=0から、即ち、リンク誤り
がないなら(LamportとMelliar−5mi
thの論文で考えられるケース) 、 diam(f、
o)=1である。どちらの場合も、ntr(f)=f+
]である。
本充1外礼伎
本発明の方法のステップは下記特性を有する。
(1) 任意の与えられた時刻で、任意の2つの正確な
プロセッサの時刻の相違は定数dmaxの範囲内である
。
プロセッサの時刻の相違は定数dmaxの範囲内である
。
(2)プロセッサiの(k十t)番目のクロックは、間
隔[endk、begkヤ、コ内のある時刻で開始され
る。その最初の時刻は、CLOCに(k)のそれよりも
遅いが、多くても2(f+1)dmax+nLr(f)
tdelの範囲内に過ぎない。
隔[endk、begkヤ、コ内のある時刻で開始され
る。その最初の時刻は、CLOCに(k)のそれよりも
遅いが、多くても2(f+1)dmax+nLr(f)
tdelの範囲内に過ぎない。
(3)各々の間隔はだいたいperに等しい持続期間を
有する。
有する。
(4)最初のプロセッサが新しいクロックを開始する時
刻と、最後のプロセッサが新しいクロックを開始する時
刻の間のギャップは僅かである。即ち、このギャップは
、diam(fr+f交)・tdelよりも小さい。
刻と、最後のプロセッサが新しいクロックを開始する時
刻の間のギャップは僅かである。即ち、このギャップは
、diam(fr+f交)・tdelよりも小さい。
各間隔の最初に、誤りのないプロセッサのクロックは、
diam(f、、fl)・tdel、 (間隔間のギャ
ップ)の範囲内で同期される。各間隔は、はぼperに
辱しい持続期間を有するので、間隔の終りまでに、だい
たいdiam(f、、ft1tdel+2 p per
偏移する。この時点で、新しい同期が得られる。
diam(f、、fl)・tdel、 (間隔間のギャ
ップ)の範囲内で同期される。各間隔は、はぼperに
辱しい持続期間を有するので、間隔の終りまでに、だい
たいdiam(f、、ft1tdel+2 p per
偏移する。この時点で、新しい同期が得られる。
本発明のj法の口1
本発明の方法は、再同期が定期的に行なわれることを必
要とする。前に説明したように、再同期間の時間は、同
期プロ1−フルの1つの参加者からもう1つの参加者に
行くメツセージの最大遅延。
要とする。前に説明したように、再同期間の時間は、同
期プロ1−フルの1つの参加者からもう1つの参加者に
行くメツセージの最大遅延。
個々のクロックの最大偏差率、及び再同期中に生じる誤
りの数によって決まる。完全に連結されたネットワーク
において、本発明の動作の例として。
りの数によって決まる。完全に連結されたネットワーク
において、本発明の動作の例として。
4つのノード、100ミリ秒の最大伝送遅延、106秒
ごとに1秒の最大クロック偏差、及び許容誤り2がある
と仮定する6また、1時間ごとに再同期を必要とし、正
確なりロックに最大300ミリ秒の差異が許容されるも
のと仮定する。
ごとに1秒の最大クロック偏差、及び許容誤り2がある
と仮定する6また、1時間ごとに再同期を必要とし、正
確なりロックに最大300ミリ秒の差異が許容されるも
のと仮定する。
プロセッサは、第5図に示すように、1.2.3.4と
付番される。また、この番号リス1へはシンクロナイザ
の順序を表わす。最初、11ζ(りはなく、タロツクは
すべて真夜中の12時に同期され、et=1:00AM
である。プロセッサ1のクロックの」:00AMに、プ
ロセッサ1は、″同期せよ。時刻は1:OOAM、”の
メツセージを符号化し、すべてのプロセッサに送ること
により、新しい同期を開始する。クロックは、1時間に
最大7.2ミリ秒偏移する。(誤りがないので、)すべ
てのプロセッサは、メツセージを、送信されてから10
0ミリ秒以内に受取り、メツセージが有効であることを
速かに検査し、新しいタロツクを、に〇〇AM+1.2
秒を表示するようにセラ1〜する。
付番される。また、この番号リス1へはシンクロナイザ
の順序を表わす。最初、11ζ(りはなく、タロツクは
すべて真夜中の12時に同期され、et=1:00AM
である。プロセッサ1のクロックの」:00AMに、プ
ロセッサ1は、″同期せよ。時刻は1:OOAM、”の
メツセージを符号化し、すべてのプロセッサに送ること
により、新しい同期を開始する。クロックは、1時間に
最大7.2ミリ秒偏移する。(誤りがないので、)すべ
てのプロセッサは、メツセージを、送信されてから10
0ミリ秒以内に受取り、メツセージが有効であることを
速かに検査し、新しいタロツクを、に〇〇AM+1.2
秒を表示するようにセラ1〜する。
次に予期される同期時刻は2 : OOAM+1.2秒
にセラ1〜される。
にセラ1〜される。
いま、プロセッサ1のクロックが進み始め、プロセッサ
2とプロセッサ3の間の通信リンクが故障するものと仮
定すると、そのクロックの2二〇〇AM+1.2秒で、
プロセッサ1は、″同期せよ。時刻は2 : OOAM
+1.2秒。″のメツセージを符号化し、すべてのプロ
セッサに送ることにより、別の同期を開始する。しかし
、プロセッサ1のクロックは進んでいる状態であるので
、他のすべてのプロセッサは、このメツセージを、それ
らのクロックが1:55AMと1’、56A−Mの間を
表示するときに受取る。このメツセージは有効性検査に
合格しない、というのは、到着が早過ぎるからであって
、そのため、メツセージは無視され、有効性モニタは、
休止する。各々のクロックの2 : OOAM+2.4
秒で、プロセッサ2.3及び4の現在のシンクロナイザ
・モニタは起動し、その間隔中に有効なメツセージが受
取られていないことが分る。プロセッサ1は誤りがある
と知らされ、プロセッサ2が現在のシンクロナイザにな
る。プロセッサ2の現在のシンクロナイザ・モニタはそ
のタスク1:放送モニタに起動コマンドを出す。そして
、プロセッサ2は、″同期せよ。
2とプロセッサ3の間の通信リンクが故障するものと仮
定すると、そのクロックの2二〇〇AM+1.2秒で、
プロセッサ1は、″同期せよ。時刻は2 : OOAM
+1.2秒。″のメツセージを符号化し、すべてのプロ
セッサに送ることにより、別の同期を開始する。しかし
、プロセッサ1のクロックは進んでいる状態であるので
、他のすべてのプロセッサは、このメツセージを、それ
らのクロックが1:55AMと1’、56A−Mの間を
表示するときに受取る。このメツセージは有効性検査に
合格しない、というのは、到着が早過ぎるからであって
、そのため、メツセージは無視され、有効性モニタは、
休止する。各々のクロックの2 : OOAM+2.4
秒で、プロセッサ2.3及び4の現在のシンクロナイザ
・モニタは起動し、その間隔中に有効なメツセージが受
取られていないことが分る。プロセッサ1は誤りがある
と知らされ、プロセッサ2が現在のシンクロナイザにな
る。プロセッサ2の現在のシンクロナイザ・モニタはそ
のタスク1:放送モニタに起動コマンドを出す。そして
、プロセッサ2は、″同期せよ。
時刻は2 : OOAM+2.4秒。″のメツセージを
符号化し、すべてのプロセッサに送る。プロセッサ4は
、該メツセージを受取り、それを有効とみなす。プロセ
ッサ3はプロセッサ2からメツセージを受取らない、と
いうのは、プロセッサ2とプロセッサ3の間の通信リン
クは依然として故障しているからである。しかし、プロ
セッサ4は、該メツセージを受取り、それを有効とみな
すので、該メツセージを符号化し、署名し、すべてのプ
ロセッサに送る。プロセッサ4とプロセッサ3の間のリ
ンクは誤りがないので、プロセッサ3は、プロセッサ4
からメツセージを受取り、それを有効とみなす。このよ
うに、プロセッサ2.3及び4はすべて有効なメツセー
ジを受取り、2・tclel=200ミリ秒の時間内に
再同期する。プロセッサ1はいまは誤りがあるので、プ
ロセッサ1の再同期は不要である。
符号化し、すべてのプロセッサに送る。プロセッサ4は
、該メツセージを受取り、それを有効とみなす。プロセ
ッサ3はプロセッサ2からメツセージを受取らない、と
いうのは、プロセッサ2とプロセッサ3の間の通信リン
クは依然として故障しているからである。しかし、プロ
セッサ4は、該メツセージを受取り、それを有効とみな
すので、該メツセージを符号化し、署名し、すべてのプ
ロセッサに送る。プロセッサ4とプロセッサ3の間のリ
ンクは誤りがないので、プロセッサ3は、プロセッサ4
からメツセージを受取り、それを有効とみなす。このよ
うに、プロセッサ2.3及び4はすべて有効なメツセー
ジを受取り、2・tclel=200ミリ秒の時間内に
再同期する。プロセッサ1はいまは誤りがあるので、プ
ロセッサ1の再同期は不要である。
第2〜4図に示されているような3つのタスク、タスク
1〜3は、PL/Iのような高度のプログラム言語で表
現できる。ちなみに、PL/Iは、I B M Sys
tems Reference Library Ma
nua15360−29.Catalog No、GC
28−8201−4,Fjfth Edition。
1〜3は、PL/Iのような高度のプログラム言語で表
現できる。ちなみに、PL/Iは、I B M Sys
tems Reference Library Ma
nua15360−29.Catalog No、GC
28−8201−4,Fjfth Edition。
copyrighted December 1972
に詳細に説明されている。モニタ、特に起動モニタ、同
報通信モニタ、及びビザンチン・モニタの特性、及びそ
れらの、各ローカル・ノードのプロセッサの実行環境で
の実現についての説明は、前記米国特許出願第4855
73号(1983年4月18日)を参照されたい。また
、前記出願で表示された回報通信モニタ及びビザンチン
・モニタの選択さhた部分は、それぞれの回報通信及び
他のノードとの間の複数フェーズ・メツセージ交換に利
用できる。複数メツセージ交換は必ずしもビザンチン・
プロトコルに限定されない。
に詳細に説明されている。モニタ、特に起動モニタ、同
報通信モニタ、及びビザンチン・モニタの特性、及びそ
れらの、各ローカル・ノードのプロセッサの実行環境で
の実現についての説明は、前記米国特許出願第4855
73号(1983年4月18日)を参照されたい。また
、前記出願で表示された回報通信モニタ及びビザンチン
・モニタの選択さhた部分は、それぞれの回報通信及び
他のノードとの間の複数フェーズ・メツセージ交換に利
用できる。複数メツセージ交換は必ずしもビザンチン・
プロトコルに限定されない。
[発明の効果]
本発明の方法により、分散計算システムにおいて、クロ
ックを定期的に再同期し、正確なグロックを、ある最大
量以上には偏移させないようにし、連続動作を行なうこ
とができる。
ックを定期的に再同期し、正確なグロックを、ある最大
量以上には偏移させないようにし、連続動作を行なうこ
とができる。
第1図は本発明の方法を示す高いレベルの流れ図、
第2図はクロック・モニタを示す図、
第3図はメツセージ処理モニタの流れ図、第4図は有効
メツセージが受信されなかった場合にシステムを再調整
するタスクを示す図、第5図はプロセッサ及びローカル
・クロックのネットワークを完全に連結する4つのノー
ドを示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 弁理士 頓 宮 孝 − (外1名)
メツセージが受信されなかった場合にシステムを再調整
するタスクを示す図、第5図はプロセッサ及びローカル
・クロックのネットワークを完全に連結する4つのノー
ドを示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 弁理士 頓 宮 孝 − (外1名)
Claims (1)
- 【特許請求の範囲】 対向通信する複数のノードのネットワークにおけるロー
カル・クロックを定期的に同期させる方法であって、ク
ロック間の偏差率及びネットワーク・メツセージ移送・
処IJJ1時間が制限されるものにおいて、下記ステッ
プ(a)乃至(b)を含むことを特徴とするクロック同
期方法。 (a) 一定順序のノード識別リストを形成し、該リス
1へを各ノードで複製する。 (b) 該リスト上の最初のノードにより、偽造不可能
な署名と一緒に時刻値を全ノードに同報通信する。 (c) ノード間で該時刻値の多重メツセージ交換を行
い、各ノードは該署名の数の関数として予め決められた
期間内に該時刻値を受取った場合には該時刻値を有効な
ものとして受付けて当該ノードのクロックをセットする
。 (d) 各ノードが該期間内に該時刻値を受取らなかっ
た場合には該リストにおける次のノードがら時刻値を回
報通信するように修正して前記ステップ(b)及び(c
)を行う。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US528282 | 1983-08-31 | ||
US06/528,282 US4531185A (en) | 1983-08-31 | 1983-08-31 | Centralized synchronization of clocks |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6066538A true JPS6066538A (ja) | 1985-04-16 |
Family
ID=24105014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59149846A Pending JPS6066538A (ja) | 1983-08-31 | 1984-07-20 | クロツク同期方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4531185A (ja) |
JP (1) | JPS6066538A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8182014B2 (en) | 2007-12-21 | 2012-05-22 | Toyota Jidosha Kabushiki Kaisha | Vehicle seat arranging structure |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0223031A3 (en) * | 1985-11-18 | 1990-04-04 | International Business Machines Corporation | Clock synchronisation in a distributed processing system |
JPS6315354A (ja) * | 1986-07-07 | 1988-01-22 | Hitachi Ltd | 分散システムにおけるタイマ一致化管理方式 |
US5041966A (en) * | 1987-10-06 | 1991-08-20 | Nec Corporation | Partially distributed method for clock synchronization |
US4965719A (en) * | 1988-02-16 | 1990-10-23 | International Business Machines Corporation | Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system |
ATE121208T1 (de) * | 1990-01-30 | 1995-04-15 | Johnson Service Co | Vernetztes betriebsmittelverwaltungssystem. |
US5504878A (en) * | 1991-02-04 | 1996-04-02 | International Business Machines Corporation | Method and apparatus for synchronizing plural time-of-day (TOD) clocks with a central TOD reference over non-dedicated serial links using an on-time event (OTE) character |
US5295257A (en) * | 1991-05-24 | 1994-03-15 | Alliedsignal Inc. | Distributed multiple clock system and a method for the synchronization of a distributed multiple system |
EP0548381B1 (de) * | 1991-12-18 | 1997-11-26 | Siemens Aktiengesellschaft | Verfahren zur Uhrzeitführung in Computernetzen |
CA2177850A1 (en) * | 1993-12-01 | 1995-06-08 | Thomas Dale Bissett | Fault resilient/fault tolerant computing |
US5530846A (en) * | 1993-12-29 | 1996-06-25 | International Business Machines Corporation | System for decoupling clock amortization from clock synchronization |
JPH0863254A (ja) * | 1994-08-18 | 1996-03-08 | Fujitsu Ltd | 伝送装置の時刻補正方法及びそれを利用した伝送装置 |
US5535217A (en) * | 1994-12-20 | 1996-07-09 | International Business Machines Corporation | Method and apparatus for probabilistic clock synchronization with interval arithmetic |
US5701446A (en) * | 1995-06-09 | 1997-12-23 | International Business Machines Corporation | Method for fine grain adjustments to system time in computer systems |
US5898864A (en) * | 1995-09-25 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors |
US5790805A (en) * | 1996-04-23 | 1998-08-04 | Ncr Corporation | Distributed timer synchronization |
US5790397A (en) | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US5896523A (en) * | 1997-06-04 | 1999-04-20 | Marathon Technologies Corporation | Loosely-coupled, synchronized execution |
US5964846A (en) * | 1997-07-07 | 1999-10-12 | International Business Machines Corporation | System and method for mapping processor clock values in a multiprocessor system |
JP2001523855A (ja) | 1997-11-14 | 2001-11-27 | マラソン テクノロジーズ コーポレイション | 故障回復/耐故障計算機 |
US6098100A (en) * | 1998-06-08 | 2000-08-01 | Silicon Integrated Systems Corp. | Method and apparatus for detecting a wake packet issued by a network device to a sleeping node |
US6389547B1 (en) * | 1999-03-19 | 2002-05-14 | Sony Corporation | Method and apparatus to synchronize a bus bridge to a master clock |
DE60041470D1 (de) * | 1999-05-11 | 2009-03-19 | Canon Kk | Verfahren und Vorrichtung zur Synchronisierung zwischen zwei Netzwerken |
US6618815B1 (en) | 2000-02-29 | 2003-09-09 | International Business Machines Corporation | Accurate distributed system time of day |
AUPQ896300A0 (en) * | 2000-07-24 | 2000-08-17 | Nec Australia Pty Ltd | A clock synchronisation method for usb sink devices |
US6931431B2 (en) * | 2001-01-13 | 2005-08-16 | International Business Machines Corporation | Agreement and atomic broadcast in asynchronous networks |
GB2373400B (en) * | 2001-01-17 | 2003-04-09 | Marconi Comm Ltd | Real time clocks in communications networks |
US7036013B2 (en) * | 2002-01-31 | 2006-04-25 | Brocade Communications Systems, Inc. | Secure distributed time service in the fabric environment |
US7017086B2 (en) * | 2002-06-18 | 2006-03-21 | Sun Microsystems, Inc. | Round-robin updating for high speed I/O parallel interfaces |
US7340630B2 (en) * | 2003-08-08 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Multiprocessor system with interactive synchronization of local clocks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5786923A (en) * | 1980-11-19 | 1982-05-31 | Fujitsu Ltd | Intersubsystem time coincidence system |
JPS5760249B2 (ja) * | 1979-07-06 | 1982-12-18 | Kawasaki Steel Co |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1250659B (de) * | 1964-04-06 | 1967-09-21 | International Business Machines Corporation, Armonk, NY (V St A) | Mikroprogrammgesteuerte Datenverarbeitungsanlage |
FR1587572A (ja) * | 1968-10-25 | 1970-03-20 | ||
US3940743A (en) * | 1973-11-05 | 1976-02-24 | Digital Equipment Corporation | Interconnecting unit for independently operable data processing systems |
US4223380A (en) * | 1978-04-06 | 1980-09-16 | Ncr Corporation | Distributed multiprocessor communication system |
-
1983
- 1983-08-31 US US06/528,282 patent/US4531185A/en not_active Expired - Fee Related
-
1984
- 1984-07-20 JP JP59149846A patent/JPS6066538A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5760249B2 (ja) * | 1979-07-06 | 1982-12-18 | Kawasaki Steel Co | |
JPS5786923A (en) * | 1980-11-19 | 1982-05-31 | Fujitsu Ltd | Intersubsystem time coincidence system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8182014B2 (en) | 2007-12-21 | 2012-05-22 | Toyota Jidosha Kabushiki Kaisha | Vehicle seat arranging structure |
Also Published As
Publication number | Publication date |
---|---|
US4531185A (en) | 1985-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6066538A (ja) | クロツク同期方法 | |
EP0135764B1 (en) | Synchronization of clocks in a distributed computing network | |
US4937741A (en) | Synchronization of fault-tolerant parallel processing systems | |
Arvind | Probabilistic clock synchronization in distributed systems | |
Halpern et al. | Fault-tolerant clock synchronization | |
US4816989A (en) | Synchronizer for a fault tolerant multiple node processing system | |
Simons | An overview of clock synchronization | |
Cristian et al. | Probabilistic internal clock synchronization | |
US5041966A (en) | Partially distributed method for clock synchronization | |
EP0135499B1 (en) | A method for achieving multiple processor agreement optimized for no faults | |
TW486637B (en) | Method and apparatus for managing redundant computer-based systems for fault tolerant computing | |
JPH0377698B2 (ja) | ||
US6981063B1 (en) | Method for time synchronization of a computer network, and computer network with time synchronization | |
JP2006229956A (ja) | 複数のオペレーショナルフライトプログラムの同期化 | |
US7454521B2 (en) | Byzantine fault quantifying clock synchronization | |
US5504878A (en) | Method and apparatus for synchronizing plural time-of-day (TOD) clocks with a central TOD reference over non-dedicated serial links using an on-time event (OTE) character | |
US20240264627A1 (en) | Satellite And Miniature Atomic Clocks For Near Perfect Time For Distributed Blockchain Non-Interactive Synchronization | |
CN105577310B (zh) | 一种时间触发以太网络中任务分区与通信调度的同步方法 | |
Pfluegl et al. | A new and improved algorithm for fault-tolerant clock synchronization | |
Delporte-Gallet et al. | Real-time fault-tolerant atomic broadcast | |
EP0223031A2 (en) | Clock synchronisation in a distributed processing system | |
Lonn et al. | Synchronisation in safety-critical distributed control Systems | |
Garofalakis et al. | Tentative and definite distributed computations: an optimistic approach to network synchronization | |
Simons | Jennifer Lundelius Welch, GTE Laboratories Incorporated'Nancy Lynch, MIT | |
Ciuffoletti et al. | Clock synchronization in virtual rings |