JPS63314670A - マルチプロセッサシステムにおけるクロック同期方式 - Google Patents

マルチプロセッサシステムにおけるクロック同期方式

Info

Publication number
JPS63314670A
JPS63314670A JP62151827A JP15182787A JPS63314670A JP S63314670 A JPS63314670 A JP S63314670A JP 62151827 A JP62151827 A JP 62151827A JP 15182787 A JP15182787 A JP 15182787A JP S63314670 A JPS63314670 A JP S63314670A
Authority
JP
Japan
Prior art keywords
processors
clock
time
processor
control block
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
JP62151827A
Other languages
English (en)
Other versions
JPH0528864B2 (ja
Inventor
Shoichiro Nakai
正一郎 中井
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 JP62151827A priority Critical patent/JPS63314670A/ja
Publication of JPS63314670A publication Critical patent/JPS63314670A/ja
Publication of JPH0528864B2 publication Critical patent/JPH0528864B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、それぞれのプロセッサが共通にアクセスでき
る共有メモリを持たないマルチプロセッサシステムにお
いて、各々のプロセッサが時刻を示すために有するクロ
ックを互いに調整するためのクロック同期方式に関する
(従来の技術) マルチプロセッサシステムにおいては、システムを構成
する各°プロセッサ・のクロックをシステム全体に共通
な時刻を示すように同期させることが必要となる0例え
ば、分散ファイリングシステムにおいて、各ファイルに
記録された作成および編集時刻に基づきファイルのバー
ジョンを識別するためには、各プロセッサ間に共通な時
刻が必要となる。また、各プロセッサが、システムに共
通な時刻に基づき自己の履歴情報を蓄積しておけば、障
害発生時にどのような順番で障害が検出されたかを知る
ことができ、障害の発生箇所を特定するための有力な情
報を得ることができる。
共有メモリを持たないマルチプロセッサシステムの一例
である、通信ネットワークシステムにおいても、各通信
ノードのクロックが共通な時刻を示すようにする同期方
式が必要である。例えば、第6回インターナショナル 
コンファレンス オン ディストリビューティド コン
ピユーテイング システム(Internationa
l Conference onDISTRIBUTE
D COMPLITING SYSTEMS)の予稿集
9.364−371に記載されている論文「アン エレ
クションアルゴリズム フォー ディストリビューティ
ドクロック シンクロナイゼイション プログラム (
^n  Election  Algorithm  
for  a  DistributedClock 
5ynchronization Pro@ram)J
  (文献1)で紹介されているクロック同期方式TE
MPOは、LINIXオペレーティングシステム4.3
 BSDで動作するネットワークにインプリメントされ
ているものである。上述のシステムにおいては、マスク
となる1つのノードが、定められた時間毎にすべてのノ
ードに時刻の問い合せを行い、求められた各ノードの時
刻をもとに平均時刻を計算する。この後すべてのノード
に対してクロックの調整指示を行い、各ノードはこの指
示に従いクロックの調整を行う。
また、第16回アニュアル インターナショナル シン
ポジウム オン フォールト トレラント コンピユー
テイング(Annual International
Symposium on FAULT−TOLERA
NT COM、PUTING)のダイジェストペーパー
p、21B−223に記載されている論文「クロック 
シンクロナイゼーション インザ プレゼンス オン 
木ミッション アンドパフォーマンス フォールツ、ア
ンド プロセッサ ジョインズ(CLOCK 5YNC
HRONIZATION IN THEPRESENC
E OF 0Ml5SION AND PERFOR)
!ANCE FAULTS。
AND PROCESSORJOINS)J  (文献
2)で紹介されているクロック同期方式は、上で説明し
た“TEMPO”のようにマスク・スレーブ型の制御で
はなく分散型の制御を用いている。同方式において、プ
ロセッサはシステム内で定期的に同報される同期メツセ
ージの中で、最も速い時刻を示す同期メツセージに従い
クロックの時刻合せを行なう、このため、結果として最
も速く進むクロックがシステム内の時刻を支配すること
になる。
さらに、ジャーナル オン アソシエーションフォー 
コンピユーテイング マシナリー(Journal o
f As5ociation for Computi
nz Machinery) Vol、32. No、
1. January 1985. p、52−78に
記載されている論文「シンクロナイズイング りロック
ス イン ザ プレズンス オン フォールツ(Syn
chronizing C1ocks in the 
Presence ofFaults)J(文献3)で
紹介されているクロック同期方式は、すべてのプロセッ
サが定期的に互いのプロセッサの時刻を通信しあう完全
分散制御による同期方式である。
(発明が解決しようとする問題点) 上述のUNIXオペレーティングシステム4.3 BS
DのTEMPOの同期方式においては、マスタノードが
必要不可欠である。このため、マスタノードの障害時に
は、他のノードがマスタノードの機能を果すように、マ
スタノードの代行の方法が必要となる。また、すべての
ノードのクロックの問い合せ等を1つのマスタノードが
行うために、ノードの数が増えると、マスタノードへの
通信量が増加するとともに、すべてのノードの時刻の平
均を求める作業が増大する。
これに対し、分散型の制御を採用している文献2記載の
方式では、分散型ではあるものの、最も速いクロックを
もつ1つのプロセッサがシステム内の時刻を支配する結
果となる。また、文献3の方式は、すべてのプロセッサ
が互いにすべてのプロセッサと通信を行なうために、実
際のシステムに適用する場合に通信のオーバヘッドが問
題となる。
本発明においては、集中制御を行なうプロセッサを設け
る必要がなく、システム内のプロセッサ数が増加した場
合にも、通信のメツセージがあるプロセッサに集中する
ことがないとともに°、システム内の総メツセージ数を
従来方式より削減することが可能な分散制御型のマルチ
プロセッサシステムにおけるクロック同期方式を提供す
ることにある。
(問題を解決するための手段) 本発明によれば、n個のプロセッサからなるマルチプロ
セッサシステムのクロック同期方式において、前記プロ
セッサは、時刻を示すクロックを具備し、前記クロック
が予め定められた時刻を示す時に、前記n個のプロセッ
サの中がらm個のプロセッサをランダムに選択して該m
個のプロセッサのクロック情報を読み出し、該m個のプ
ロセッサの時刻に基づき前記クロックを制御することを
特徴とするマルチプロセッサシステムにおけるクロック
同期方式が得られる。
(作用) 本発明の原理について、第3図を参照して説明する。第
3図は、マルチプロセッサシステムの具体例を示す、各
プロセッサ301,302.303,304,305は
、自己の時刻を示すクロックを備えている。さらに各プ
ロセッサは任意のプロセッサのクロック情報を読み出せ
るよう、相互に論理的な通信路306により接続されて
いる。互いのプロセッサが共通にアクセスできる共有メ
モリを持たないマルチプロセッサシステムにおいては、
システムが初期状態の時に、各プロセッサのクロックは
同一の時刻を示してはいない、しかも同じ値からスター
トしたクロックも、凡そ同じ割合で時刻を測定するもの
の、時刻の経過にともない徐々にずれて行く、従って、
各プロセッサは以下に説明する本同期方式に従い、メツ
セージ通信により互いにクロックの調整を行う、この結
果、すべてのプロセッサのクロックがある同期精度の範
囲内で同一の時刻を指すように制御される。
本同期方式では、各プロセッサは、自プロセッサのクロ
ックが予め決められた時刻になる毎に、システム内のn
個のプロセッサの中からm個のプロセッサをランダムに
選択し、同プロセッサのクロック情報を問い合せる。さ
らに、これら問い合せたクロック情報に基づき自分のク
ロックの値を再設定する。例えば、プロセッサ3旧は自
己のクロックが1:00.2:00.3:00、という
ように定められた時刻になる毎に、システム内の5つの
プロセッサの中から、ランダムにプロセッサを選択する
。プロセッサ301は、ある時、プロセッサ302゜3
02、304を選択し、通信路306を介してこれらプ
ロセッサにクロック値を問い合せる。プロセッサ301
は、得られた3個のプロセッサのクロック値に基づき、
これらクロック値の平均値を計算し、該平均値をもとに
自分のクロックの値を再設定する。例えば、3個のプロ
セッサの時刻の平均値が自分のクロックの示す時刻より
もδ進んでいる場合は自分のクロックに該差分δを加算
し、該3個のプロセッサの時刻の平均値が自分のクロッ
クが示す時刻よりもδ遅れている場合は、自分のクロッ
クをδ停止させる。以上の操作は、すべてのプロセッサ
が、自分のもつクロックが予め定められた時刻になる毎
に繰り返し行う。
このようにすべてのプロセッサは、完全対等な立場にあ
り全く同一のアルゴリズムを実施する。
この時、各プロセッサはm個のプロセッサのクロック情
報をもとに同期制御を行なうため、従来に比べ通信量を
削減することができる。しかもこの際にm個のプロセッ
サはランダムに選択されるため、同期制御を繰り返し行
なうことにより、システム内のすべてのプロセッサのク
ロック情報が同期制御に反映される。模擬実験により、
プロセッサのクロックの同期範囲が、nの値には依存せ
ずm=2〜10で充分な同期精度を満足するように収束
することを確認した。
以上のように、特定のプロセッサが共通時刻を定義し同
期制御を実施することがないため、あるプロセッサの障
害がシステムに致命的な障害をもたらすことがない。
(第1の実施例) 第1図(a)および(b)に、本発明によるクロック同
期方式を実現するアルゴリズムの第1の実施例を示す。
第1図(a)は、プロセッサが自分のクロックが予め定
められた時刻を示した時に実行する同期制御アルゴリズ
ムであり、例えば、自己のクロックが1=00.2:0
0.3:00、というようにある定められた時刻になる
毎に実行される。第1図(b)は、あるプロセッサが前
記同期制御アルゴリズムを実行し、同プロセッサからの
メツセージを受信した時に、実行されるアルゴリズムを
示す。なお、これら2つのアルゴリズムは並列に実行さ
れるとともに、自分自身に対するクロック情報の送信要
求が発生してもかまわない。
プロセッサは、自分のクロックが予め定められた時刻に
なると発生するように設定されたクロックからの割込み
を、第1図(a)に示す制御ブロック101において検
出する。このクロックからの割込みの検出により、以降
の同期制御アルゴリズムが起動される。すなわち、制御
ブロック102においては、n個のプロセッサの中から
ランダムにm個のプロセッサを選択し、引続き制御ブロ
ック103ではこれら各プロセッサにクロック情報の送
信を要求するメツセージを送信する。
各プロセッサは、第1図(b)に示したアルゴリズムも
並列に実行しており、同図の制御ブロック110では、
プロセッサからのクロック情報の送信要求メツセージの
受信時に発生する受信割込みが検出することができる。
つまり、あるプロセッサが第1図(a)の制御ブロック
103にてメツセージを送信すると、該メツセージを受
信したプロセッサは第1図(b)の制御ブロック110
にて、受信割込みを検出し、続いて第1図(b)の制御
ブロック111において該メツセージの送信元プロセッ
サにクロック情報を送信する。この時にプロセッサが送
信するクロック情報は、クロックの示す値自身とするが
、クロック情報を要求するプロセッサが該要求メツセー
ジに自分の時刻を記録するものとすると、該要求プロセ
ッサの時刻との差分をタロツク情報として送信してもか
まわない。
このように、クロック情報の送信要求メツセージを送信
したプロセッサは、m個のプロセッサからクロック情報
を受信する。続く制御ブロック104においては、これ
らm個のプロセッサのクロック情報に基づきm個のプロ
セッサの平均クロック値を計算し、自プロセッサのクロ
ックが示す時刻から該m個のプロセッサの平均時刻を差
引き、差分δを求める。
プロセッサは以上のよう゛にして求めたm個のプロセッ
サの平均時刻との差分δに基づき、制御ブロック105
以降において次に説明するように自分のクロックの値を
設定する。すなわち、自プロセッサのクロックが示す時
刻が該平均時刻に等しい場合(δ=0)には、制御ブロ
ックに101に戻る。また、該平均時刻よりも自分のク
ロックが示す時刻が遅れている場合(δく0)には、制
御ブロック106において自分のクロックに該差分δを
加算して時刻を進めた後に制御ブロック101に戻る。
さらに、該平均時刻よりも自分のクロックが示す時刻が
進んでいる場合(δ〉0〉には、制御ブロック107に
おいて自プロセッサ内のタイマに該誤差δを設定し、制
御ブロック108において、タイマが時間δの経過を通
知するまでクロックを停止させる。このようにして時刻
を遅らせた後に制御ブロック101に戻る。いずれの場
合にも制御ブロック101では、定められた時刻に発生
する次のクロックからの割込みを検出する。
以上説明したアルゴリズムはすべてのプロセッサが実行
する。
(第2の実施例) 第2図(a)および(b)に、本発明によるクロック同
期方式を実現するアルゴリズムの第2の実施例を示す。
マルチプロセッサシステムの一例である通信ネットワー
クシステムにおいては、プロセッサが互いに他のクロッ
ク情報を読み出す場合に、プロセッサ間の通信遅延、も
しくは通信処理・平均時刻の計算に必要な時間がクロッ
クの時間精度に比べて大きくなることが考えられる。ク
ロックの同期制御にこのような処理オーバヘッドによる
悪影響を与えないようにするために、次に説明するよう
なアルゴリズムを用いてクロック情報を読み出したプロ
セッサの時刻を定義する。
第2図(a)および(b)は、同アルゴリズムを示して
いる。ここに示したアルゴリズムは、すでに説明した第
1図(a)の制御ブロック102,103および104
に相当するアルゴリズムであり、具体的には、プロセッ
サをランダムに選択するとともに、同プロセッサにクロ
ック情報の送信を要求するメツセージの送信をm回繰り
返し行ない、さらに逐次受信されるこれらm個のプロセ
ッサからのクロック情報に基づき、自プロセッサのクロ
ックが示す時刻と平均時刻との差分δを求める制御を示
している。なお、第2の実施例において、第2図<a)
および(b)以降の制御手、順は、第1図(a)の制御
ブロック105以下の手順と同一である。
第2図(a)に示す結合子200は、第1図(a)の制
御ブロック101の後部に接続される。制御ブロック2
01において、選択すべきプロセッサの数を計数する変
数kに値0を代入し、制御ブロック202においてシス
テム内のn個のプロセッサからランダムにプロセッサi
を選択する。続いて制御ブロック203において、この
時に自プロセッサ内のクロックが示す時刻を変数Ti、
0に代入するとともに、制御ブロック204において該
プロセッサiにクロック情報の送信を要求するメツセー
ジを送信する。この後制御ブロック205においてラン
ダムに選択したプロセッサ数を計数する変数kに1を加
える。制御ブロック206において変数kを値mと比較
し、k<mならば再び制御ブロック202に戻り、k=
mならば次の処理に接続される結合子207へと続く。
結合子207は、第2図(b)に示す制御ブロック20
8の前部に接続される。制御ブロック208では、第2
図(a)で説明したようにm個のプロセッサに対して送
信したクロック情報の要求メツセージに対する応答を待
っている。該要求メツセージの送信時刻のばらつきおよ
び通信遅延のばらつきにより各プロセッサからの応答の
到着もまちまちとなる。あるプロセッサiからの応答が
到着すると、制御ブロック209において、該応答が到
着した時刻を変数Ti、1に代入し、さらに制御ブロッ
ク210において該応答メツセージの中に記録されたプ
ロセッサiの時刻を変数Tiに代入する。この後ランダ
ムに選択し、前記要求メツセージを送信したプロセッサ
数を記憶した変数kから1を差引き、制御ブロック21
2において該変数にの値を比較し、k>Oならば制御ブ
ロック20Bに戻って他のプロセッサからの応答を待ち
、すべてのプロセッサからの応答を受信゛し、k=oで
あるならば、制御ブロック213を実行する。なお、メ
ツセージの紛失等により一定時間経過してもすべてのプ
ロセッサからの応答が得られない場合が生ずる。この場
合、すでに得られているクロック情報をもとに制御ブロ
ック213を実行してもかまわない、同制御ブロック2
13では、プロセッサiを選択した時の時刻を示す変数
Ti、Oとプロセッサiからの応答が到着した時刻を示
す変数Ti、1およびプロセッサiからの応答メツセー
ジの中に記録されたプロセッサiの時刻を示す変数Ti
をもとに、自プロセッサが時刻Ti、0の時のプロセッ
サiの時刻を予測し、プロセッサiの時刻と自プロセッ
サの時刻の差分δiを求める。つまり、プロセッサaが
ちプロセッサiへのメツセージの通信遅延とほぼ同時に
送信されたプロセッサiからプロセッサaへのメツセー
ジの通信遅延は等しいと仮定し、次式に従いプロセッサ
iの時刻を予測する。
Ti −<Ti、1− Ti、0)/2       
           (11従って自プロセッサのク
ロックが示す時刻とプロセッサiのクロックが示す時刻
の差分δiは次のように示される。
δi =Ti、0− (Ti −(Ti、1−Ti、0
) /2)  (21制御ブロツク214においては、
このようにして求めたm個のδiの平均値を計算し、同
値がランダムに選択されたm個のプロセッサの平均時刻
との差分δであるとする。なお、結合子215は、第1
図(a)の制御ブロック105の前部に接続される。
以上のように求めた平均時刻との差分δをもとに、すで
に説明した第1図(a)の制御ブロック105以降の手
順を実施する。このアルゴリズムでは、プロセッサ間の
通信遅延を考慮してプロセッサの時刻を予測しており、
通信遅延による影響を除くことが可能である。
(発明の効果) このように、本発明のクロック同期方式を用いることに
より、マルチロセッサシステムにおいて、集中制御を行
なうプロセッサを設けることなく、すべてのプロセッサ
を対等に動作させて、各プロセッサのクロックをある範
囲内で共通な時刻を指すように制御することができる。
集中制御を行なうプロセッサが不要であるために、特定
のプロセッサの障害がシステムに致命的な障害を与える
ことがなく高い信頼性が確保できる。また、各プロセッ
サが必要とする情報は、m個のプロセッサの時刻情報だ
けでよく、模擬実験によれば、m=2〜10で充分な同
期精度が得られる。従って、すべてのプロセッサのクロ
ック情報を集める必要がないため、プロセッサ数が増え
た場合にも同期制御に要する処理時間が増大することは
ない。しかも、これらプロセッサは周期的にランダムに
選択されるために、すべてのプロセッサのクロック情報
をもとにして同期制御が実施される。
以上のように本発明により得られる効果は大きい。
【図面の簡単な説明】
第1図(a>、(b)は、本発明による第1の実81例
を示す流れ図5.第2図(a)、(b)は通信遅延を考
慮した場合の第2の実施例におけるプロセッサの時刻を
求めるためのアルゴリズムを示す図、第3図は、マルチ
プロセッサシステムの一例を示す図である。 図において、101〜111、および201〜214は
制御ブロック、200.207.215は結合子、30
1〜305はプロセッサ、306はプロセッサ間の論理
的な通信路を示第1図(a) 第1図(b) 第 2 図 (a) 第2図(b)

Claims (1)

  1. 【特許請求の範囲】 1、n個のプロセッサからなるマルチプロセッサシステ
    ムのクロック同期方式において、前記プロセッサは、時
    刻を示すクロックを具備し、前記クロックが予め定めら
    れた時刻を示す時に、前記n個のプロセッサの中からm
    個のプロセッサをランダムに選択して該m個のプロセッ
    サのクロック情報を読み出し、該m個のプロセッサの時
    刻に基づき前記クロックを制御することを特徴とするマ
    ルチプロセッサシステムにおけるクロック同期方式。 2、前記プロセッサは、任意時間の経過を測定できるタ
    イマを具備し、前記m個のクロック情報に基づき求めら
    れるm個のプロセッサの平均時刻が、自分のクロックの
    示す時刻よりもδ進んでいる場合は自分のクロックにδ
    を加算し、該m個のプロセッサの平均時刻が自分のクロ
    ックの示す時刻よりもδ遅れている場合は、前記タイマ
    が時間δの経過を通知するまで自分のクロックを停止さ
    せることを特徴とする特許請求の範囲第1項記載のマル
    チプロセッサシステムにおけるクロック同期方式。
JP62151827A 1987-06-17 1987-06-17 マルチプロセッサシステムにおけるクロック同期方式 Granted JPS63314670A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62151827A JPS63314670A (ja) 1987-06-17 1987-06-17 マルチプロセッサシステムにおけるクロック同期方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62151827A JPS63314670A (ja) 1987-06-17 1987-06-17 マルチプロセッサシステムにおけるクロック同期方式

Publications (2)

Publication Number Publication Date
JPS63314670A true JPS63314670A (ja) 1988-12-22
JPH0528864B2 JPH0528864B2 (ja) 1993-04-27

Family

ID=15527179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62151827A Granted JPS63314670A (ja) 1987-06-17 1987-06-17 マルチプロセッサシステムにおけるクロック同期方式

Country Status (1)

Country Link
JP (1) JPS63314670A (ja)

Also Published As

Publication number Publication date
JPH0528864B2 (ja) 1993-04-27

Similar Documents

Publication Publication Date Title
US5041966A (en) Partially distributed method for clock synchronization
US7716375B2 (en) Method for synchronization in networks
US6351821B1 (en) System and method for synchronizing time across a computer cluster
Arvind Probabilistic clock synchronization in distributed systems
Ciraci et al. FNCS: A framework for power system and communication networks co-simulation
US4746920A (en) Method and apparatus for clock management
US6983324B1 (en) Dynamic modification of cluster communication parameters in clustered computer system
US4531185A (en) Centralized synchronization of clocks
US5001730A (en) Clock synchronization algorithm for address independent networks
JPH06242980A (ja) 冗長タスクの同期化システム
Eischer et al. Low-latency geo-replicated state machines with guaranteed writes
CN117112315A (zh) 冗余设备的数据同步方法、系统、存储介质和电子设备
JPS63314670A (ja) マルチプロセッサシステムにおけるクロック同期方式
JPS63314669A (ja) マルチプロセッサシステムにおけるクロック同期方式
JPH0528865B2 (ja)
JP2006053737A (ja) レプリケーションシステム及びレプリケーション方法
US11706295B2 (en) System and a method implementing a directed acyclic graph (DAG) consensus algorithm via a gossip protocol
JPH01270119A (ja) マルチプロセッサシステムにおけるクロック同期方式
Mahmoud et al. Software controlled access to distributed data bases
JPH07117940B2 (ja) マルチプロセッサシステムにおけるクロック同期方法
JP6446315B2 (ja) 多重化計算機の記憶領域一致化装置
JPH10143401A (ja) サーバ性能測定方式
JPH0528867B2 (ja)
CN113765671A (zh) 一种区块链节点热重启的方法及装置
JPH0528866B2 (ja)