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

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

Info

Publication number
JPH01114964A
JPH01114964A JP62273817A JP27381787A JPH01114964A JP H01114964 A JPH01114964 A JP H01114964A JP 62273817 A JP62273817 A JP 62273817A JP 27381787 A JP27381787 A JP 27381787A JP H01114964 A JPH01114964 A JP H01114964A
Authority
JP
Japan
Prior art keywords
clock
processor
time
processors
value
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
JP62273817A
Other languages
English (en)
Other versions
JPH0528866B2 (ja
Inventor
Satoshi Hasegawa
聡 長谷川
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 JP62273817A priority Critical patent/JPH01114964A/ja
Priority to US07/253,478 priority patent/US5041966A/en
Publication of JPH01114964A publication Critical patent/JPH01114964A/ja
Publication of JPH0528866B2 publication Critical patent/JPH0528866B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、それぞれのプロセッサが共通にアクセスでき
る共有メモリを持たないマルチプロセッサシステムにお
いて、各々のプロセッサが時刻を示すために有するクロ
ックを互いに調整するためのクロック同期方式に関する
(従来の技術) マルチプロセッサシステムにおいては、システムを構成
する各プロセッサのクロックをシステム全体に共通な時
刻を示すように同期させることが必要となる。例えば、
分散ファイリングシステムにおいて、各ファイルに記録
された作成および編集時刻に基づきファイルのバージョ
ンを識別するためには、各プロセッサ間に共通な時刻が
必要となる。また、各プロセッサが、システムに共通な
時刻に基づき自己の履歴情報を蓄積しておけば、障害発
生時にどのような順番で障害が検出されたかを知ること
ができ、障害の発生箇所を特定するための情報を得るこ
とかもきる。
共有メモリを持たないマルチプロセッサシステムの一例
である、通信ネットワークシステムにおいても、各通信
ノードのクロックが共通な時刻を示すようにする同期方
式が必要である。例えば、1986年5月に開催された
第6回インターナショナル、コンファランス・オン・デ
イストリビューテッド・コンピユーテイング・シろテム
ズ(InternationalConference
 on DISTRIBUTED COMPUTING
SYSTEMS)の予稿集p、364−371に記載さ
れている論文アン・エレクション・アルゴリズム・フォ
ー・デイストリビューテッド・クロック・シンクロナイ
ゼーション・プログラム(An Election A
lgorithm for aDistributed
 C1ock 5ynchronization Pr
ogram)(文献1)で紹介されているクロック同期
方式TEMPOは、UNIXオペレーティングシステム
4.3BSDで動作するネットワークに設けられている
ものである。上述のシステムにおいては、マスクとなる
1つのノードが、定められた時間毎にすべてのノードに
時刻の問い合せを行い、求められた各ノードの時刻をも
とに平均時刻を計算する。この後すべてのノードに対し
てクロックの調整指示を行い、各ノードはこの指示に従
いクロックの調整を行う。
また、1986年第16回アニュアル・インターナショ
ナル・シンポジウム・オン・フォールトトレラントコン
ピユーテイング(Annual Internatio
nalSymposiumonFAULT−TOLER
ANTCOMPUTING)のダイジェストペーパーp
、218−223に記載されている論文クロック・シン
クロナイゼーション・イン、ザ、プレゼンス・オン・オ
ミッション・アンド・バヅオーマンス・フォールツ・ア
ンド・プロセッサ・ジョFAULTS、 AND PR
OCESSORJOINSX文厭2)で紹介されている
クロック同期方式は、上で説明した“TEMPO”のよ
うにマスク・スレーブ型の制御ではなく分散型の制御を
用いている。同方式において、プロセッサはシステム内
で定期的に同報される同期メツセージの中で、最も速い
時刻を示す同期メツセージに従いクロックの時刻合せを
行なう。
このため、結果として最も速く進むクロックがシステム
内の時刻を支配することになる。
さらに、ジャーナル・オン・アソシエーション・フォー
・コンピユ−テイング・マシナリ−(Journalo
f As5ociation for Computi
ng Machinery)、 Vol、32゜No、
1. January 1985.p、52−78に記
載されている論文シンクロナイジング・クロックス・イ
ン、ザ・プレゼンス・オン・フォールツ(Synchr
onizing C1ocks in thePres
ence of Faults)(文献3)で紹介され
いるクロ、ツク同期方式は、すべてのプロセッサが定期
的に互いにプロセッサの時刻を通信しあう完全分散制御
による同期方式である。
(発明が解決しようとする問題点) 上述のUNIXオペレーティングシステム4.3BSD
のTEMPOの同期方法においては、マスタノードが必
要不可欠である。このため、マスタノードの障害時には
、他のノードがマスタノードの機能を果すように、マス
タノードの代行の方法が必要となる。また、すべてのノ
ードのクロックの問い合せを1つのマスタノードが行う
ために、ノードの数が増えると、マスタノードへの通信
量が増加するとともに、すべてのノードの時刻の平均を
求める作業が増大する。
これに対し、分散型の制御を採用している文献2記載の
方式では、分散型ではあるものの、最も速いクロックを
もつ1つのプロセッサがシステム内の時刻を支配する結
果となる。また、文献3の方法は、すべてのプロセッサ
が互いにすべてのプロセッサと通信を行なうために、実
際のシステムに適用する場合に通信のオーバヘットが問
題となる。
本発明においては、集中制御を行なうプロセッサを設け
る必要がなく、よって一つのプロセッサがシステム内の
時刻を支配することがなく、システム内のプロセッサ数
が増加した場合にも、通信のメツセージ数が極端に増加
して処理オーバヘッドが増加することがなく、システム
内の総メツセージ数を従来方式より削減することが可能
な分散制御型のマルチプロセッサシステムにおけるタロ
ツク同期方式を提供することにある。
(問題を解決するための手段) 本発明によれば、n個のプロセッサからなるマルチプロ
セッサシステムのクロック同期方式において、前記ブロ
モジ、すは時刻を示すクロックとランダム変数を生成す
る手段を具備し、゛該うンダム変数生成手段m/n(m
はnより小さい正数)の確率で1を、(1−m/n)の
確率で0を選択するようになっており、各プロセッサは
あらかじめ定められた周期毎にランダム変数を選択し、
該選択されたランダム変数が1の場合にはクロックがあ
らかじめ定められた時刻を示すときに全てのプロセッサ
にクロック情報を送出し、クロック情報を受信した全て
のプロセッサでは受信した全てのクロック情報に基づき
各自のクロックを制御することを特徴とするマルチプロ
セッサシステムにおけるクロック同期方式が得られる。
(発明の原理) 本発明の原理について、第3図を参照して説明する。第
3図は、マルチプロセッサシステムの具体例を示す。各
プロセッサ301,302,303,304,305は
、自己の時刻を示すクロックを備えている。また、各プ
ロセッサはランダム変数Vを生成する手段を備えており
、あらかじめ与えられた確率pでv=1を、確率(1−
p)でv=0が選択されるようになっている。さらに各
プロセッサは任意のプロセッサのクロック情報を読み出
せるよう、相互に論理的な通信路により結合されており
、例えばプロセッサ303とプロセッサ304の間は通
信路306により接続されている。互いにプロセッサが
共通にアクセスできる共有メモリを持たないマルチプロ
セッサシステムにおいては、システムが初期状態の時に
、各プロセッサのクロックは同一の時刻を示してはいな
い。しかも同じ値からスタートしたクロックも、凡そ同
じ割合で時刻を測定するものの、時刻の経過にともない
徐々にずれて行く。従って、各プロセッサは以下に説明
する本同期方式に従い、メツセージ通信により互いにク
ロックの調整を行う必要がある。この結果、すべてのプ
ロセッサのクロックがある同期精度の範囲内で同一の時
刻を指すように制御される。
本同期方式では、各プロセッサは、自プロセッサのクロ
ックが予め決められた時刻になる毎に(例えば、1:0
0,2:00,3:00というように定められた時刻に
なる毎に)、変数Vの値を選択し、もしv=1ならば自
己のクロック値を全てのプロセッサに送出する。またク
ロックを受信したプロセッサでは受信した全てのクロッ
ク値とクロック値を受信した自プロセッサの時刻との差
分をとり、その差分の平均値Δによりクロックの調整を
行なうものである。
即ち、Δが正ならば自クロック値にΔを加算し、Δが負
ならば自クロックをΔだけ停止させる。ここで、全プロ
セッサ数をnとし、v=1をとる確率をm/nとなるよ
うにセットすると、1回の制御あたり平均m個のプロセ
ッサが自己のクロックを全プロセッサに送出することに
なる。各プロセッサではこの平均m個のプロセッサから
のクロック値の平均値に自分のクロック値をあわせるこ
とになる。
例えば各プロセッサのクロック値が第3図に示すような
値をとっている場合について本発明の詳細な説明する。
このとき、各プロセッサは各自の時計がに00を指すと
きに変数Vの値を選択し制御を開始するものとする。ま
た、確率215でv=1を、確率315でv=0を選ぶ
ものとする。いま、プロセッサ301とプロセッサ30
2がv=1を選択し、他のプロセッサはv=0を選択し
たものとする。通信遅延を無視すると、まずプロセッサ
301が最初に1=00に到達し、そのクロック値(1
:00)をすべてのプロセッサに送出する。各プロセッ
サではプロセッサ301のクロック値を受信すると自己
のクロック値との差分をとる。差分値は、プロセッサ3
01では01 プロセッサ302では+6、プロセッサ
303では+4、プロセッサ304では+8、プロセッ
サ305では+2となる。
続いてプロセッサ302がに00に達したときにクロッ
ク値を送出し、そのクロック値を全てのプロセッサが受
信するわけである。各プロセッサでの差分値は、プロセ
ッサ301では−6、プロセッサ302では0、プロセ
ッサ303では−2、プロセッサ304では+2、プロ
セッサ305では−4となる。よって、各プロセッサは
上記の差分値の平均値をとり、その値はプロセッサ30
1では−3、プロセッサ302では+3、プロセッサs
os七は+1、プロセッサ304では+5、プロセッサ
305では−1となる。この差分値の平均値に基づき、
先に示したクロック値の調整を行なうこととすると、プ
ロセッサ301のクロックは3分遅らされ、プロセッサ
302のクロックは3分進められ、プロセッサ303の
クロックは1分進められ、プロセッサ304のクロック
は5分進められ、プロセッサ305のクロックは1分遅
らされ、全てのプロセッサのクロック値が同一の値とな
るように調整されることがわかる。この例では、説明の
容易さのため各プロセッサのクロックドリフトおよび伝
送路遅延は十分小さいとして無視している。以上の制御
はすべてのプロセッサが、自分のもつクロックが予め定
められた時刻になる毎に繰り返し行う。勿論、選択され
る変数Vの値は各時刻にてランダムであるので、各時刻
毎に自己のクロックを送出するプロセッサおよびプロセ
ッサ数は結果としてランダムとなる。
このようにすべてのプロセッサは、完全対等な立場にあ
り全く同一のアルゴリズムを実施する。
このランダムに選択されたプロセッサのみがそのクロッ
ク値を送出するので、従来に比べ通信量を削減すること
ができる。また、1つのプロセッサのみがシステムの時
刻を制御するのではなく、複数のプロセッサの平均時刻
でシステム時刻を制御することにより、耐障害性のある
時刻制御が可能となる。さらに、耐障害性の度合いは、
変数Vが1をとる確率を変えることで柔軟に制御するこ
とができる。
(発明の詳細な説明) 第1図(a)、(b)、(c)に本発明の方式を実現す
るために各プロセッサにて実行される制御の一フローチ
ャート例を示す。第1図(a)はクロック情報の送信制
御を示すフローチャート例であり、第1図(b)はクロ
ック情報の受信制御を示すフローチャート例であり、第
1図(c)はクロック受信処理の詳細を示すフローチャ
ート例である。まず第1図(a)の送信制御フローチャ
ートの説明を行なう。各プロセッサでは、ブロック10
1にてクロック割込み1を検出すると、ブロック102
にてランダム変数Vを選択する。
この変数Vは1と0とをそれぞれ確率pおよび(1−p
)でとるものである。103のブロックでは選択された
Vの値により制御のスイッチが行なわれ、もしv=1な
らばブロック104でクロック割込み2を待ち、クロッ
ク割込み2が検出されるとブロック105にて自己のク
ロック値を全プロセッサに送出し、送出後に送信制御処
理を終了してブロック101に戻る。また、v=0なら
ばブロック101に戻り、次の周期のクロック割込み1
を待つ。第1図(b)の受信制御では、各プロセッサに
てブロック101でクロック割込み1を検出すると、ブ
ロック110のクロック受信処理を実行する。なお、ブ
ロック110のクロック受信処理の詳細を示す−フロー
チャート例は第1図(C)に示しており、後で説明を加
える。ブロック110の受信処理が終了すると、受信し
た全てのクロック値と自クロック値との差分の平均値Δ
を、ブロック111にて算出する。ブロック112では
算出されたΔの正負により制御のスイッチを行ない。も
しΔが正ならばブロック113にて自クロック値にΔを
加算して自クロックの調整を行なう。もしΔが負ならば
、ブロック114にて自クロックをΔだけ停止させて自
クロックの調整を行なう。
ブロック113あるいは114の処理が終了すると、ブ
ロック101に戻り、次の周期でのクロック制御を開始
するためのクロック割込み1を待つ。
第1図(C)のフローチャート例を用いて、第1図(b
)のブロック110に示したクロック受信処理を次に説
明する。クロック受信処理に入ると、ブロック120に
てタイマがセットされる。続いてブロック121にて送
出されてくるクロックの受信待ちになる。ブロック12
2ではセットしたタイマがタイムアウトしたかどうかの
判定を行ない、もしタイムアウトしたならば受信処理を
抜ける。またタイムアウトしていなければ、クロックが
到着したときにブロック123にてクロックの受信がな
される。続くブロック124では受信されたクロックと
自クロック値との差分を求め、格納しておく。さらに続
くブロック125にてタイムアウト判定がなされ、もし
タイムアウトならば受信処理を終了し、タイムアウトで
なければブロック121に戻って新たなりロック受信待
ちの状態になる。
第2図に本発明のクロック同期方式のタイミング−チャ
ートの一例を示す。横軸は時間の推移を示し、クロック
割込み1検出で各プロセッサのクロック制御周期が開始
される。図に示すように、クロック受信時間領域の窓が
設けられ、その間に到着したクロック情報によって各プ
ロセッサのクロック値が調整されるわけである。なお、
図において、時間軸の上側はクロック受信処理を示して
おり、下側はクロック送信処理を示している。
(発明の効果) このように、本発明のクロック同期方式を用いることに
より、マルチプロセッサシステムにおいて、集中制御を
行なうプロセッサを設けることなく、すべてのプロセッ
サを対等に動作させて、各プロセッサのクロックを共通
な時刻を指すように制御することができる。クロック同
期制御を行なうプロセッサは、同期周期ごとにランダム
に選択されることになり、特定のプロセッサの障害がシ
ステムに致命的な障害を与えることがなく高い信頼性が
確保できる。また、この信頼性の度合いはランダム変数
Vが1をとる確率を制御することで柔軟に変えることが
可能である。さらに、固定の数のプロセッサが各同期周
期毎に選択されるのではなく、同期制御用にクロックを
送出するプロセッサ数もランダムであり、各周期毎に平
均値として与えられるので、制御にともなうデッドロッ
ク状態を回避することが容易である。また、全てのプロ
セッサのクロック値を用いて同期制御を行なうものでは
なく、部分プロセッサ集合のクロック値を用いて制御が
なされるので、プロセッサ数が増えた場合にも同期制御
に要する処理時間が極端に増大することはない。
以上のように本発明により得られる効果は大きい。
【図面の簡単な説明】
第1図(a)、(b)、(c)は、本発明によるクロッ
ク同期方式の一実施例を示すフローチャート、第2図は
、本発明によるクロック同期方式の制御タイミングチャ
ート、第3図は本発明の詳細な説明するためのマルチプ
ロセッサシステムの一例を示す図である。 図において、101〜105,110〜114および1
20〜125は制御ブロック、301〜305はプロセ
ッサ、306はプロセッサ303とプロセッサ304間
の論理的な通信路を示す。

Claims (1)

  1. 【特許請求の範囲】 1、n個のプロセッサからなるマルチプロセッサシステ
    ムのクロック同期方式において、前記プロセッサは時刻
    を示すクロックとランダム変数を生成する手段を具備し
    、該ランダム変数生成手段はm/n(mはnより小さい
    整数)の確率で1を、(1−m/n)の確率で0を選択
    するようになっており、各プロセッサはあらかじめ定め
    られた周期毎にランダム変数を選択し、該選択されたラ
    ンダム変数が1の場合にはクロックがあらかじめ定めら
    れた、時刻を示すときに全てのプロセッサにクロック情
    報を送出し、クロック情報を受信した全てのプロセッサ
    では受信した全てのクロック情報に基づき各自のクロッ
    クを制御することを特徴とするマルチプロセッサシステ
    ムにおけるクロック同期方式。 2、前記各プロセッサは任意時間の経過を測定できるタ
    イマを具備し、前記受信した全てのクロック情報の平均
    時刻が、自分のクロックの示す時刻よりもΔ進んでいる
    場合は自分のクロックにΔを加算し、前記平均時刻が自
    分のクロックの示す時刻よりもΔ遅れている場合は、前
    記タイマが時間Δの経過を通知するまで自分のクロック
    を停止させることを特徴とする特許請求の範囲第1項記
    載のマルチプロセッサシステムにおけるクロック同期方
    式。
JP62273817A 1987-10-06 1987-10-28 マルチプロセッサシステムにおけるクロック同期方式 Granted JPH01114964A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62273817A JPH01114964A (ja) 1987-10-28 1987-10-28 マルチプロセッサシステムにおけるクロック同期方式
US07/253,478 US5041966A (en) 1987-10-06 1988-10-05 Partially distributed method for clock synchronization

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH01114964A true JPH01114964A (ja) 1989-05-08
JPH0528866B2 JPH0528866B2 (ja) 1993-04-27

Family

ID=17532972

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH01114964A (ja)

Also Published As

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

Similar Documents

Publication Publication Date Title
Dolev et al. Dynamic fault-tolerant clock synchronization
US8601165B2 (en) Method for synchronization in networks
US8169856B2 (en) Time synchronization in cluster systems
EP0135764B1 (en) Synchronization of clocks in a distributed computing network
US7334014B2 (en) Consistent time service for fault-tolerant distributed systems
Halpern et al. Fault-tolerant clock synchronization
US4531185A (en) Centralized synchronization of clocks
JP3748204B2 (ja) 周期制御同期システム
Arvind Probabilistic clock synchronization in distributed systems
CN101601214B (zh) 促进协调定时网络中的恢复的方法和系统
JPH01114964A (ja) マルチプロセッサシステムにおけるクロック同期方式
JPH01116862A (ja) マルチプロセッサシステムにおけるクロック同期方式
JPH02114360A (ja) マルチプロセッサシステムにおけるクロック同期方法
CN101601251A (zh) 定义协调定时网络中的层-1配置
EP0223031A2 (en) Clock synchronisation in a distributed processing system
JPH02114359A (ja) マルチプロセッサシステムにおけるクロック同期方法
Delporte-Gallet et al. Real-time fault-tolerant atomic broadcast
JPH01270119A (ja) マルチプロセッサシステムにおけるクロック同期方式
JPH02288750A (ja) ノード間時刻合わせ方式
KR100285951B1 (ko) 사설교환망에서마스터노드변경방법
Dolev et al. A decentralized high performance time service architecture
WO2006129269A2 (en) Method to synchronize locally provided clocks of different communication nodes of a time-triggered communication system
JP2025143064A (ja) 情報通信システム及び情報通信装置
JPH0528864B2 (ja)
JPH0194467A (ja) マルチプロセッサシステムにおけるクロック同期方式