(57)【要約】  Ｎ個のクロックを含み、その内最小３個、最大Ｎ−１個のクロックがマスター候補クロックとなるシステムで用いられるクロック同期化の方法が説明される。開始メッセージが一番速いマスター候補クロックから送信される。マスター候補クロックのそれぞれから該当クロックに基づく開始メッセージの受信ローカル時刻を含む応答メッセージが送信される。開始メッセージの受信時刻を示す情報を用いて中央値を持つマスター候補クロックが選出され、マスタークロックとなる。開始メッセージの受信時刻を示す情報を用いてマスタークロックは各マスター候補クロックに対しクロック同期化エラーを決定する。そのようなクロック同期化エラーが過度であったら、マスタークロックは該当クロックをマスター候補クロックから除外し、別のクロックをマスター候補クロックに分類する。これは、Ｎ個のクロックのうちのどれがマスター候補クロックに分類されることになるのかを識別するための分類メッセージを送信することにより達成される。次にマスタークロックがマスタークロックに基づく分類メッセージの受信ローカル時刻を含む同期化メッセージを送る。それから、該当の情報及び該当クロックに基づく分類メッセージの受信ローカル時刻を用いて他のＮ−１個のクロックがそれぞれマスタークロックに同期化させられる。
2005513909.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個のクロックを含むクロック同期化の方法であって、
最小３個、最大Ｎ−１個をマスター候補クロックに分類すること、
前記マスター候補クロックの１つを選びそれをマスタークロックに分類すること、
前記Ｎ個のクロックの内のマスタークロック以外のものをそれぞれ前記マスタークロックに同期化すること、および
前記マスター候補クロックの各々に対して、そのクロック同期化エラーが過度かどうか判定し、そうであるという判定に対しては該当のクロックを前記マスター候補クロックから外し、前記Ｎ個のクロック内の別のクロックでまだマスター候補クロックに分類されていないものをマスター候補に分類すること
を含むことを特徴とする方法。
【請求項２】
前記マスター候補クロックの１つを選ぶことは、
前記マスター候補クロックの１つからマスター選出開始メッセージを送ること、
他の前記マスター候補クロックそれぞれから、前記マスター選出開始メッセージを送ること、
他の前記マスター候補クロックの１つから、該当のクロックに基づいて前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送ること、および
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選ぶこと
を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記マスター候補クロックの１つを選ぶことは、
前記マスター候補クロックの１つからマスター選出開始メッセージを送ること、
前記マスター候補クロックのそれぞれから、該当のクロックに基づく前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送ること、および
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選ぶこと
を含むことを特徴とする請求項１記載の方法。
【請求項４】
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて各マスター候補クロックに対してクロック同期化エラーが決定されることを特徴とする請求項２または３記載の方法。
【請求項５】
前記マスター選出開始メッセージが１番速いマスター候補クロックから送られることを特徴とする請求項２乃至４のいずれかに記載の方法。
【請求項６】
別のマスター候補クロックがマスター選出開始メッセージを既に送信していない限り、定められたローカル時刻にマスター選出開始メッセージを送るよう各マスター候補クロックが適合されることを特徴とする請求項５記載の方法。
【請求項７】
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選ぶことは中央値を持つマスター候補クロック選ぶこと服務ことを特徴とする請求項２乃至６のいずれかに記載の方法。
【請求項８】
前記そうであると言う判定に対して、前記マスター候補クロックから除外されたクロックを故障クロックに分類し、前記Ｎ個のクロック内でまだマスター候補クロック又は故障クロックになっていない別のクロックをマスター候補クロックに分類することを含むことを特徴とする請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記マスター候補クロックの各々に対して前記クロック同期化エラーが過度かどうかという点をマスタークロックが判定することを特徴とする請求項１乃至８のいずれかに記載の方法。
【請求項１０】
前記点の判定後、前記Ｎ個のクロック内のどれがマスター候補クロックに分類されることになるのかを識別する分類メッセージを前記マスタークロックが送信することを特徴とする請求項９記載の方法。
【請求項１１】
前記Ｎ個のクロック内のマスタークロック以外のそれぞれを前記マスタークロックに同期化することは、
前記マスタークロックから同期化の情報を含む同期化メッセージを送ること、および
前記同期化の情報を用いて前記Ｎ個のクロック内のマスタークロック以外のそれぞれを前記マスタークロックに同期化すること
を含むことを特徴とする請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記Ｎ個のクロックの内のマスタークロック以外のそれぞれを前記マスタークロックに同期化することは、
前記マスタークロックから、前記マスタークロックに基づく分類メッセージの受信ローカル時刻を示す同期化の情報を含む同期化メッセージを送ること、および
前記同期化の情報及び前記クロックに基づく分類メッセージの受信ローカル時刻を用いて、前記Ｎ個のクロックの内のマスタークロック以外のそれぞれを前記マスタークロックに同期化すること
を含むことを特徴とする請求項１０記載の方法。
【請求項１３】
Ｎ個のクロックを含むシステムのためのクロック同期化の方法であって、
最小３個、最大Ｎ−１個のそれらのクロックをマスター候補クロックに分類すること、
前記マスター候補クロックの１つからマスター選出開始メッセージを送ること、
他の前記マスター候補クロックのそれぞれから、前記クロックに基づくマスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送ること、
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選ぶこと、および
前記Ｎ個のクロック内のマスタークロック以外のそれぞれを前記マスタークロックに同期化すること
を含むことを特徴とする方法。
【請求項１４】
Ｎ個のクロックを含むシステムのためのクロック同期化の方法であって、
最小３個、最大Ｎ−１個のそれらのクロックをマスター候補クロックに分類すること、
前記マスター候補クロックの１つからマスター選出開始メッセージを送ること、
前記マスター候補クロックのそれぞれから、前記クロックに基づくマスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送ること、
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、該選ばれたマスター候補クロックをマスタークロックに分類すること、および
前記Ｎ個のクロック内のマスタークロック以外のそれぞれを前記マスタークロックに同期化すること
を含むことを特徴とする方法。
【請求項１５】
１番速いマスター候補クロックから前記マスター選出開始メッセージが送信されることを特徴とする請求項１３または１４記載の方法。
【請求項１６】
別のマスター候補クロックがマスター選出開始メッセージを既に送信していない限り、定められたローカル時刻にマスター選出開始メッセージを送るよう各マスター候補クロックが適合されることを特徴とする請求項１５記載の方法。
【請求項１７】
前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選ぶことは中央値を持つマスター候補クロックを選ぶことを含むことを特徴とする請求項１３乃至１６のいずれかに記載の方法。
【請求項１８】
前記システムは、さらに、Ｍ個のスレーブクロックを含み、前記方法は、
前記Ｍ個のスレーブクロックのそれぞれを前記マスタークロックに同期化することをさらに含むことを特徴とする請求項１３乃至１７のいずれかに記載の方法。
【請求項１９】
前記Ｍ個のスレーブクロックのそれぞれを同期化すること及び前記Ｎ個のクロック内のマスタークロック以外のそれぞれを同期化することは共通に達成されることを特徴とする請求項１８記載の方法。
【請求項２０】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個最大Ｎ−１個がマスター候補クロックに分類されるシステムにおいて採用するためのクロックであって、
前記クロックが前記マスタークロックと前記マスター候補クロックとのどちらに分類されるのかを記録し、
前記クロックが前記マスタークロックに分類される場合、前記マスター候補クロックの各々に対してそれぞれのクロック同期化エラーが過度かどうかを判定し、そうだと言う判定に対しては、前記クロックを前記マスター候補クロックから除外し、前記Ｎ個のクロックの内未だマスター候補クロックに選ばれていない別のものをマスター候補クロックに分類する旨の分類メッセージを送り、
前記クロックが前記マスタークロックに分類されない場合、前記分類メッセージを前記マスタークロックから受信し、前記メッセージが前記クロックを前記マスター候補クロックに分類する場合、あるいは、前記マスター候補クロックから除外したら、その事実を記録するように作動するよう適合された制御手段を備えることを特徴とするクロック。
【請求項２１】
前記制御手段は、
前記クロックが前記マスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送り、
前記クロックが前記マスタークロックに分類されなかったならば、前記同期化メッセージを前記マスタークロックから受信し、前記同期化の情報を用いて自身を前記マスタークロックに同期化するように作動するようさらに適合されることを特徴とする請求項２０記載のクロック。
【請求項２２】
前記制御手段は、
前記クロックが前記マスター候補クロックに分類されたならば、別のマスター候補クロックによりマスター選出開始メッセージが既に送信されていない限り、指定されたローカル時刻に前記マスター選出開始メッセージを送り、
前記クロックが前記マスター候補クロックに分類され、前記指定されたローカル時刻以前に前記マスター選出開始メッセージが別のマスター候補クロックから送られたならば、前記マスター選出開始メッセージを受信し、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送信し、
前記クロックが前記マスター候補クロックに分類されたならば、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選ぶ場合、前記クロックが前記マスタークロックに分類されると言う事実を記録するように作動するようさらに適合されることを特徴とする請求項２０または２１記載のクロック。
【請求項２３】
前記制御手段は、
前記クロックが前記マスター候補クロックに分類されたら、別のマスター候補クロックにより前記マスター選出開始メッセージが既に送信されていない限り、指定されたローカル時刻に前記マスター選出開始メッセージを送り、
前記クロックが前記マスター候補クロックに分類され、前記マスター選出開始メッセージが送信されていたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送信し、
前記クロックが前記マスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選び、それにより自身を選んだら、前記クロックが前記マスタークロックに分類されたと言う事実を記録するように作動するようさらに適合されることを特徴とする請求項２０または２１記載のクロック。
【請求項２４】
前記制御手段は、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの各々に対してクロック同期化エラーを決定するように適合されることを特徴とする請求項２２または２３記載のクロック。
【請求項２５】
前記制御手段が、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて選出されたマスター候補クロックが中央値を持つマスター候補クロックであるように適合されることを特徴とする請求項２１乃至２４のいずれかに記載のクロック。
【請求項２６】
前記制御手段は、
前記クロックが故障クロックに分類されるのかどうかを記録し、
前記クロックがマスタークロックに分類されたならば、前記マスター候補クロックのクロック同期化エラーが過度かどうかと言う点についてそうであると言う判定に対しては、前記クロックを故障クロックに分類し、前記Ｎ個のクロック内のまだマスター候補クロック又は故障クロックに分類されていない別のものをマスター候補クロックに分類すると言う分類メッセージを送り、
前記クロックがマスタークロックに分類されず、該クロックを故障クロックに分類する旨の分類メッセージがマスタークロックから送られたならば、その事実を記録するように作動するようさらに適合されることを特徴とする請求項２０乃至２５のいずれかに記載のクロック。
【請求項２７】
前記制御手段は、
前記クロックがマスタークロックに分類されたならば、前記マスター候補クロックの各々の同期化エラーが過度かどうかと言う点についての決定に従って、前記Ｎ個のクロック内のどれがマスター候補クロックに分類されることになるのか識別する旨の分類メッセージを送るように作動するようさらに適合されることを特徴とする請求項２０乃至２６のいずれかに記載のクロック。
【請求項２８】
前記制御手段は、
前記クロックがマスタークロックに分類されたら、前記マスタークロックに基づく分類メッセージの受信ローカル時刻を示す同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、マスタークロックから前記分類メッセージを受信し、同期化の情報及び該当クロックに基づく分類メッセージの受信ローカル時間を用いて自身をマスタークロックに同期化するように作動するようにさらに適合されることを特徴とする請求項２７記載のクロック。
【請求項２９】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個、最大Ｎ−１個がマスター候補クロックに分類されるシステムにおいて採用するためのクロックであって、
前記クロックがマスタークロックとマスター候補クロックとのどちらに分類されるのかを記録し、
前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックがマスター選出開始メッセージを既に送信していない限り、指定されたローカル時刻に前記マスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、前記マスター選出開始メッセージが別のマスター候補クロックにより指定ローカル時刻以前に送信されたら、前記マスター選出開始メッセージを受信し、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送り、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選出したら、前記クロックがマスタークロックに分類されると言う事実を記録し、
前記クロックがマスタークロックに分類されたら、同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報を用いて自身をマスタークロックに同期化するように作動するよう適合された制御手段を備えることを特徴とするクロック。
【請求項３０】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個最大Ｎ−１個がマスター候補クロックに分類されるシステムにおいて採用するためのクロックであって、
前記クロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録し、
前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックがマスター選出開始メッセージを既に送信していない限り、指定されたローカル時刻にマスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、前記マスター選出開始メッセージが送信されていたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送信し、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選んだら、前記クロックがマスタークロックに分類されたと言う事実を記録し、
前記クロックがマスタークロックに分類されたら、同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報を用いて自身をマスタークロックに同期化するように作動するよう適合された制御手段を備えることを特徴とするクロック。
【請求項３１】
前記制御手段は、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、前記マスター候補クロックの各々に対してクロック同期化エラーを決定するように適合されることを特徴とする請求項２９または３０記載のクロック。
【請求項３２】
前記制御手段は、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて選ばれたマスター候補クロックが中央値を持つマスター候補クロックとなるように適合されることを特徴とする請求項２９乃至３１のいずれかに記載のクロック。
【請求項３３】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個最大Ｎ−１個がマスター候補クロックに分類されるシステム内に構成されるクロックのためのソフトウエア製品であって、前記ソフトウエア製品は、
前記クロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録し、
前記クロックがマスタークロックに分類されたら、各マスター候補クロックに対してそれぞれのクロック同期化エラーが過度かどうかを判定し、そうであると言う判定に対しては前記クロックをマスター候補クロックから除外し、前記Ｎ個のクロックの内で未だマスター候補クロックに分類されていない別のものをマスター候補クロックに分類する旨の分類メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記分類メッセージをマスタークロックから受信し、前記メッセージが前記クロックをマスタークロックに分類するか、またはマスター候補クロックから除外するものであれば、その事実を記録するように前記クロックを作動させるように適合されたソフトウエアコードを有することを特徴とするソフトウエア製品。
【請求項３４】
前記クロックがマスタークロックに分類されたら、同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報を用いて自身をマスタークロックに同期化するように前記クロックを作動させるべくソフトウエアコードがさらに適合されたことを特徴とする請求項３３記載のソフトウエア製品。
【請求項３５】
前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックが未だ前記マスター選出開始メッセージを送信していない限り、指定ローカル時刻にマスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、指定ローカル時刻以前に前記マスター選出開始メッセージが別のマスター候補クロックにより送信されたら、前記マスター選出開始メッセージを受信し、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送り、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選んだら、前記クロックがマスタークロックに分類されたと言う事実を記録するように前記クロックを作動させるべくソフトウエアコードがさらに適合されたことを特徴とする請求項３３または３５記載のソフトウエア製品。
【請求項３６】
前記前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックが未だ前記マスター選出開始メッセージを送信していない限り、指定ローカル時刻にマスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、前記マスター選出開始メッセージが送信されていたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送り、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選んだら、前記クロックがマスタークロックに分類されたという事実を記録するように前記クロックを作動させるべくソフトウエアコードがさらに適合されたことを特徴とする請求項３３または３５記載のソフトウエア製品
【請求項３７】
前記ソフトウエアコードは、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記クロックに各マスター候補クロックに対するクロック同期化エラーを決定させるように適合されることを特徴とする請求項３５または３６記載のソフトウエア製品。
【請求項３８】
前記ソフトウエアコードは、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて選ばれたマスター候補クロックが中央値を持つマスター候補クロックとなるように適合されることを特徴とする請求項３３乃至３７のいずれかに記載のソフトウエア製品。
【請求項３９】
前記クロックが故障クロックに分類されるのかどうかを記録し、
前記クロックがマスタークロックに分類されたら、マスター候補クロックのクロック同期化エラーが過度かどうかと言う点についてそうであると言う判定に対しては前記クロックを故障クロックに分類し、前記Ｎ個のクロック内で未だマスター候補クロック又は故障クロックに分類されていない別のものをマスター候補クロックに分類する旨の分類メッセージを送り、
前記クロックがマスタークロックに分類されず、前記クロックを故障クロックに分類する旨の前記分類メッセージがマスタークロックから送信されたら、その事実を記録するように前記クロックを作動させるべく前記ソフトウエアコードがさらに適合されることを特徴とする請求項３３乃至３８のいずれかに記載のソフトウエア製品。
【請求項４０】
前記クロックがマスタークロックに分類されたら、前記マスター候補クロックの各々のクロック同期化エラーが過度かどうかと言う点についての判定に従って、前記Ｎ個のクロック内のどれがマスター候補クロックに分類されることになるのかを識別する分類メッセージを送るように前記クロックを作動させるべく前記ソフトウエアコードがさらに適合されることを特徴とする請求項３３乃至３９のいずれかに記載のソフトウエア製品。
【請求項４１】
前記クロックがマスタークロックに分類されたら、前記マスタークロックに基づく分類メッセージの受信ローカル時刻を示す同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報及び前記クロックに基づく分類メッセージの受信ローカル時刻を用いて自身を前記マスタークロックに同期化するように前記クロックを作動させるべく前記ソフトウエアコードがさらに適合されることを特徴とする請求項４０記載のソフトウエア製品。
【請求項４２】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個最大Ｎ−１個がマスター候補クロックに分類されるシステム内に構成されるクロックのためのソフトウエア製品であって、
前記クロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録し、
前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックが未だマスター選出開始メッセージを送信していない限り、指定されたローカル時刻に前記マスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、前記マスター選出開始メッセージが別のマスター候補クロックにより指定ローカル時刻以前に送信されたら、前記マスター選出開始メッセージを受信し、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送り、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選出したら、前記クロックがマスタークロックに分類されると言う事実を記録し、
前記クロックがマスタークロックに分類されたら、同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報を用いて自身をマスタークロックに同期化するように前記クロックを作動させるべく適合されたソフトウエアコードを有することを特徴とするソフトウエア製品。
【請求項４３】
Ｎ個のクロックを含み、前記Ｎ個の内の１つがマスタークロックに分類され、前記マスタークロックを含む最小３個最大Ｎ−１個がマスター候補クロックに分類されるシステム内に構成されるクロックのためのソフトウエア製品であって、
前記クロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録し、
前記クロックがマスター候補クロックに分類されたら、別のマスター候補クロックが未だマスター選出開始メッセージを送信していない限り、指定されたローカル時刻にマスター選出開始メッセージを送り、
前記クロックがマスター候補クロックに分類され、前記マスター選出開始メッセージが送信されていたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送り、
前記クロックがマスター候補クロックに分類されたら、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記マスター候補クロックの１つを選び、それにより自身を選出したら、前記クロックがマスタークロックに分類されると言う事実を記録し、
前記クロックがマスタークロックに分類されたら同期化の情報を含む同期化メッセージを送り、
前記クロックがマスタークロックに分類されなかったら、前記同期化メッセージをマスタークロックから受信し、前記同期化の情報を用いて自身をマスタークロックに同期化するように前記クロックを作動させるべく適合されたソフトウエアコードを有することを特徴とするソフトウエア製品。
【請求項４４】
前記ソフトウエアコードは、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて前記クロックに各マスター候補クロックに対するクロック同期化エラーを決定させるように適合されることを特徴とする請求項４２または４３記載のソフトウエア製品。
【請求項４５】
前記ソフトウエアコードは、前記マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて選ばれたマスター候補クロックが中央値を持つマスター候補クロックとなるように適合されることを特徴とする請求項４２乃至４４の何れかに記載のソフトウエア製品。
【請求項４６】
添付の図面に関連してここでおおむね説明されたことを特徴とするクロック同期化の方法。
【請求項４７】
Ｎ個のクロックを含むシステムで用いるクロックであって、
前記クロックは、添付の図面に関連してここでおおむね説明されたことを特徴とするクロック。
【請求項４８】
クロックのためのソフトウエア製品であって、
前記ソフトウエア製品は、添付の図面に関連してここでおおむね説明されたようにそのクロックを作動させるためのソフトウエアコードを有することを特徴とするソフトウエア製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実時間分散システム（ｄｉｓｔｒｉｂｕｔｅｄ  ｒｅａｌ−ｔｉｍｅ  ｓｙｓｔｅｍ）における耐故障性を備えたクロック同期化に関する。
【背景技術】
【０００２】
実時間分散システムは、メッセージのやり取りにより互いに通信し合う一連のノードから構成される。各ノードはそれぞれローカル実時間クロック（ａ  ｌｏｃａｌ  ｒｅａｌ−ｔｉｍｅ  ｃｌｏｃｋ）を備えているが、これら実際のクロックは正確な時間を保持することはなく、互いの時間内でゆれを生じるため、共通の照合時間に定期的に再同期化させなければならない。このようなクロック同期化は、全ノードが時間の一致を可能にするために必須であり、時間に沿って各動作が計画されるシステムにおいては特に重要である。以下、ここで使用される「クロック」という用語は、ノードに連結した実時間クロックそのもののみならず、このような実時間クロックそのものを組み込んだノードに接続するいかなる装置をも示す。
【０００３】
ノード間の時間の一致が最重要視されるアプリケーション分野の１つは、高安全（Ｓａｆｅｔｙ−ｃｒｉｔｉｃａｌ）アプリケーション分野である。高安全アプリケーションというのは、故障が進行して致死（ｄｅａｔｈ）又は重度の障害をもたらす可能性をはらむ場合のアプリケーションである。例としては、航空電子工学や自動車産業、原子力発電所制御、医療ロボット工学で用いられるような、「ｆｌｙ−ｂｙ−ｗｉｒｅ」や「ｄｒｉｖｅ−ｂｙ−ｗｉｒｅ」システムである。これらのシステムの多くがコントローラ・エリア・ネットワーク（ｃｏｎｔｒｏｌｌｅｒ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＣＡＮ）バスを採用している。
【０００４】
【非特許文献１】Ａｎｃｅａｕｍｅ，  Ｅ．  ＆  Ｐｕａｕｔ，  Ｉ．，  “Ｐｅｒｆｏｒｍａｎｃｅ  ｅｖａｌｕａｔｉｏｎ  ｏｆ  ｃｌｏｃｋ  ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ａｌｇｏｒｉｔｈｍｓ”，  Ｔｅｃｈ．  Ｒｅｐｏｒｔ  Ｎ３５２６，  Ｕｎｉｔｅ  ｄｅ  ｒｅｃｈｅｒｃｈｅ  ＩＮＲＩＡ  Ｒｅｎｎｅｓ，  ＩＲＩＳＡ，  Ｃａｍｐｕｓ  Ｕｎｉｖｅｒｓｉｔａｉｒｅ  ｄｅ  Ｂｅａｕｌｉｅｕ，  ３５０４２  Ｒｅｎｎｅｓ  Ｃｅｄｅｘ，  Ｆｒａｎｃｅ，  １９９８
【非特許文献２】Ｓｈｉｎ，  Ｋ．Ｇ．＆  Ｂｕｔｌｅｒ，  Ｒ．Ｗ．，”Ｆａｕｌｔ−Ｔｏｌｅｒａｎｔ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｉｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍｓ”，  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ，  ｐｐ．３３−４２，  Ｏｃｔｏｂｅｒ  １９９０
【非特許文献３】Ｇｅｒｇｅｌｅｉｔ，  Ｍ．＆  Ｓｔｒｅｉｃｈ，  Ｈ．，  “Ｉｍｐｌｅｍｅｎｔｉｎｇ  ａ  ｄｉｓｔｒｉｂｕｔｅｄ  ｈｉｇｈ−ｒｅｓｏｌｕｔｉｏｎ  ｒｅａｌ−ｔｉｍｅ  ｃｌｏｃｋ  ｕｓｉｎｇ  ｔｈｅ  ＣＡＮ  ｂｕｓ”，    Ｐｒｏｃ．  ＣＩＡ  １ｓｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  ＣＡＮ  Ｃｏｎｆｅｒｅｎｃｅ  （ＩＣＣ），  １９９４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
過去２０年間、多くのクロック同期化の方法が提案されてきた。非特許文献１および非特許文献２等である。しかしながら、発表された方法の多くは複雑過ぎて、組み込み式実時間システムには採用できない。組み込み式システムには、その単純さゆえにマスタースレーブ（ｍａｓｔｅｒ−ｓｌａｖｅ）・アーキテクチャが広く採用されている。非特許文献３などである。マスタースレーブ・アーキテクチャを用いて、システム内の１つのノードがマスター（ｍａｓｔｅｒ）クロックに指定され、照合時間を生み出す。スレーブ（ｓｌａｖｅｓ）に指定されたその他のクロックは、マスタークロックの時間に定期的に同期化される。このマスタースレーブ・アプローチはバスへの通行量を極わずかにするだけでなく、将来的な修正にも柔軟である。しかしながら、このマスタースレーブ・アプローチにも重大な欠点があり、マスタークロックに１つでも故障があれば同期化の失敗に繋がり得る。
【課題を解決するための手段】
【０００６】
本発明の実施の一つの目的は、マスタークロックの故障に耐性がある、マスタースレーブに基づくクロック同期化の方法を供給することである。システム内のクロックの全てではなくいくつかをマスタークロックになり得そうなものとしてとりあえず分類しておくことで、これは達成される。このクロックグループを以後、マスター候補グループ（ｍａｓｔｅｒ  ｃａｎｄｉｄａｔｅｓ  ｇｒｏｕｐ、ＭＣＧ）と呼ぶ。ＭＣＧからマスタークロックが選ばれる。故障があり過度のクロック同期化エラーが見られたマスター候補クロックはＭＣＧ  から除外され、そこには別のクロックが差し替えられる。
【０００７】
従って、本発明の実施は、以下の構成を持つ、Ｎ個のクロックを含むシステムのためのクロック同期化の方法を供給する。Ｎ個のクロックの内、最小３個、最大Ｎ−１個をマスター候補クロックに分類する。マスター候補クロックの中の１つを選び、それをマスタークロックに分類する。Ｎ個の内の、マスタークロック以外のクロックをマスタークロックに同期化させる。そして、各マスター候補クロックに対し、それぞれのクロック同期化エラーが過度かどうかを判定する。そして、そうであるという判定に対しては、該当のクロックをマスター候補クロックから外し、Ｎ個のクロックの中で未だマスター候補クロックに分類されていなかった、別のクロックをマスター候補クロックに分類する。
【０００８】
もしマスター候補クロックの１つで故障が進行し、そのマスター候補クロックのクロック同期化エラーが過度になるほど深刻であったならば、そのクロックはＭＣＧから除外される。ＭＣＧから除外されると、そのクロックはもはやマスタークロックに選出されることはない。スレーブクロックとして作動するか、故障扱いまたは完全に無視されることになる。
【０００９】
ＭＣＧからマスタークロックを選ぶ過程は、さらに慎重に考慮する必要がある。例えば、一番速い、又は、一番遅いマスター候補クロックをマスタークロックに選ぶことは慎重とは言えないであろう。そうした場合、マスタークロックの選出が行われている最中に故障が進行し、そのため速かったり遅かったりしているクロックが、次のクロック同期化操作用のマスタークロックに選ばれるかもしれない。一方で、一番速い、又は、一番遅いクロックを選んだ方がよい状況が起こるかもしれない。どちらの場合も、情報はＭＣＧ内の色々なクロックの相関クロック・レート（ｒｅｌａｔｉｖｅ  ｃｌｏｃｋ  ｒａｔｅｓ）に集められなければならない。
【００１０】
従って、マスター候補クロックの１つを選ぶ過程は以下の構成であることが望ましい。マスター候補クロックの１つから、「マスター選出開始メッセージ（ｍａｓｔｅｒ  ｓｅｌｅｃｔｉｏｎ  ｉｎｉｔｉａｔｉｏｎ  ｍｅｓｓａｇｅ）」を送る。他のマスター候補クロックそれぞれからは、該当クロックに基づくマスター選出開始メッセージの受信ローカル時刻を示す情報を含む「マスター選出応答メッセージ（ｍａｓｔｅｒ  ｓｅｌｅｃｔｉｏｎ  ｒｅｓｐｏｎｓｅ  ｍｅｓｓａｇｅ）」を送る。そして、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、マスター候補クロックの１つを選び出す。
【００１１】
各マスター候補クロックにとっては、マスター選出開始メッセージの受信ローカル時刻は２つの要因により決定されると言うことが理解されよう。すなわち、伝達の遅延（これは極わずかなものと考えて差し支えない）、及び、ローカルクロックのクロック・レートである。
【００１２】
便宜上、マスター選出開始メッセージは一番早いマスター候補クロックから送られる。つまり、各マスター候補クロックは、マスター選出開始メッセージが既に別のマスター候補クロックから送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送るよう適合され得るということである。従って、全てのマスター候補クロックは同一に作動し、マスター選出開始メッセージは、自然の成り行きで、どれであれ一番進んでいるクロックにより送られることになる。前述したが、場合によっては、一番早いマスター候補クロックをマスタークロックに選ぶのは慎重ではないだろう。このように、どのマスター候補クロックがマスター選出開始メッセージを送ろうと、このシステムはそれを考慮するよう設計され得る。
【００１３】
他方では、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、各マスター候補クロックごとにクロック同期化エラーを決定することが便利である。このような環境では、全てのマスター候補クロックにとってマスター選出開始メッセージの受信ローカル時刻は当然明らかである。送信クロックに基づく、マスター選出開始メッセージ受信のローカル時刻は、送信が行われた時刻から計算され得るとは推測できない。なぜなら、伝達の遅延が極わずかであったとしても、例えば、バスやチャネル調停（ｃｈａｎｎｅｌ  ａｒｂｉｔｒａｔｉｏｎ）及びシージャ（ｓｅｉｚｕｒｅ）に関連した、送信以前の予期せぬ遅延があるかもしれないからである。
【００１４】
このような状況では、マスター候補クロックの１つを選出する過程は以下の構成であることが望ましい。マスター候補クロックの１つから、マスター選出開始メッセージを送る。それぞれのマスター候補クロックから、該当クロックに基づくマスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。そして、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、マスター候補クロックの１つを選び出す。
【００１５】
上記の論点において、本発明のもう１つの目的は、改良された実時間クロックの均一性を用いてマスタースレーブに基づくクロック同期化の方法を供給することである。これは、クロック・レートの特性に基づきマスタークロックをＭＣＧから選出することで達成される。
【００１６】
従って、本発明の実施は、以下の構成を持つ、Ｎ個のクロックを含むシステムのためのクロック同期化の方法を供給する。これらＮ個のクロックの内、最小３個、最大Ｎ−１個をマスター候補クロックに分類する。マスター候補クロックの１つから、マスター選出開始メッセージを送る。それ以外の各マスター候補クロックから、該当クロックに基づいたマスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、マスター候補クロックの１つを選出し、マスタークロックに分類する。そして、Ｎ個のクロック内のマスタークロック以外をそれぞれマスタークロックに同期化させる。
【００１７】
同じ目的のために、又前述の通り、本発明の実施は、以下の構成を持つ、Ｎ個のクロックを含むシステムのためのクロック同期化の方法をもまた供給する。これらＮ個のクロックの内、最小３個、最大Ｎ−１個をマスター候補クロックに分類する。マスター候補クロックの１つから、マスター選出開始メッセージを送る。各マスター候補クロックから、該当クロックに基づいたマスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、マスター候補クロックの１つを選出し、マスタークロックに分類する。そして、Ｎ個のクロック内のマスタークロック以外をそれぞれマスタークロックに同期化させる。
【００１８】
マスター候補クロックの中の一番速い、又は一番遅いクロックをマスタークロックに選ぶべきではない場合には、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選出する過程は、中央値を示すマスター候補クロックを選ぶ構成が望ましい。ほとんどのシステムで、実時間クロックの均一性を最大にするためにこのことが証明され得る。
【００１９】
過度のクロック同期化エラーのため、あるマスター候補クロックが一旦ＭＣＧから除外されてしまうと、少なくとも修復されるまではそれを故障品に分類することが適切である。従って、そのような決定に対して、この方法は次のような構成が望ましい。マスター候補クロックの分類から除外されたクロックを故障クロックに分類し、Ｎ個のクロック内でまだマスター候補クロックに分類されていない、又は、故障クロックに分類されていない、別のクロックをマスター候補クロックに分類する。
【００２０】
便宜上、各マスター候補クロックに対してクロック同期化エラーが過度かどうかという点は、マスタークロックにより判定されよう。そのような場合、その点に関する判定に従って、マスタークロックはＮ個のクロック内のどれが新たにマスター候補クロックに分類されるのかを確認する分類メッセージ（ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｍｅｓｓａｇｅ）を送ることができる。
【００２１】
再び便宜上、Ｎ個のクロック内でマスタークロック以外のそれぞれをマスタークロックに同期化させることは以下の構成で行うことができる。マスタークロックから、同期化の情報を含む同期化メッセージを送る。そして、Ｎ個のクロック内のマスタークロック以外のそれぞれを、その同期化の情報を用いてマスタークロックに同期化させる。
【００２２】
もしマスタークロックが分類メッセージと同期化メッセージの両方を送ったならば、この２つのメッセージの存在は有利に生かされ得る。その場合、Ｎ個のクロック内でマスタークロック以外のそれぞれをマスタークロックに同期化させることは以下の構成で行うことができる。マスタークロックから、マスタークロックに基づく分類メッセージの受信ローカル時刻を示す同期化の情報を含む同期化メッセージを送る。そして、同期化の情報、及び該当クロックに基づく分類メッセージの受信ローカル時刻を用いて、Ｎ個のクロック内のマスタークロック以外のそれぞれをマスタークロックに同期化させる。
【００２３】
このシステムはさらに、Ｍ個のスレーブクロックを備えることも可能で、さらにその方法はＭ個のスレーブクロックそれぞれをマスタークロックに同期化させる構成をとり得る。便宜上、Ｍ個のスレーブクロックそれぞれを同期化させること、及びＮ個のクロック内のマスタークロック以外のそれぞれを同期化させることは共通に成し遂げられ得る。
【００２４】
本発明の実施のもう１つの目的は、マスタークロックにおける故障に耐え得る、マスタースレーブに基づくクロック同期化の方法でも使用可能なクロックの供給である。これは、マスター候補クロックに分類され得る、よってＭＣＧに属するか現在マスタークロックである、クロックにより達成される。Ｎ個のそのようなクロックがシステムに組み込まれる時、そのシステムはいかなる故障クロックもＭＣＧから除外するために作動し、別のクロックと差し替える。
【００２５】
従って、本発明の実施が供給するクロックは、Ｎ個のクロックを含むシステムで採用するためのもので、そのＮ個内の１つがマスタークロックに分類され、マスタークロックを含む最小３個、最大Ｎ−１個がマスター候補クロックに分類される。そして、そのクロックは以下のように作動すべく適合された制御手段を構成する。そのクロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録する。もしそれがマスタークロックに分類されたならば、それぞれのマスター候補クロックにとってそのクロック同期化エラーが過度かどうかを判定し、そうであるとの判定に対しては、該当クロックをマスター候補クロックから外しＮ個のクロック内でまだマスター候補クロックに分類されていない別の１つをマスター候補クロックに分類するという分類メッセージを送る。そして、もしそれがマスタークロックに分類されなかったならば、マスタークロックから上記の分類メッセージを受信する。そして、もしそのメッセージがそれをマスター候補クロックに分類するものか、あるいは、マスター候補クロックから除外するものであったならば、その事実を記録する。
【００２６】
本発明の実施のさらなる目的は、マスタースレーブに基づき、マスタークロックの故障にも耐えうるクロック同期化の方法で採用し得るクロックのための制御ソフトを供給することである。よって、本発明の実施が供給するソフトウエア製品は、Ｎ個のクロックを含むシステムに含まれるクロックのためのもので、そのＮ個のクロックの内の１つがマスタークロックに分類され、マスタークロックを含む最小３個、最大Ｎ−１個をマスター候補クロックに分類する。そして、そのソフトウエア製品はそのクロックを以下のように作動させるべく適合されたソフトウエアコードを構成している。そのクロックがマスタークロックとマスター候補クロックのどちらであるかを記録する。もしそれがマスタークロックに分類されたならば、マスター候補クロックそれぞれにとってそのクロック同期化エラーが過度かどうかを判定し、そうであるとの判定に対してはそれをマスター候補クロックから外し、Ｎ個のクロック内でまだマスター候補クロックに分類されていない別のクロックをマスター候補クロックに分類するという分類メッセージを送る。そして、もしそのクロックがマスタークロックに分類されなかったならば、上記の分類メッセージをマスタークロックから受信し、もしそのメッセージがそれをマスター候補クロックに分類するものか、あるいはマスター候補クロックから除外するものであったならば、その事実を記録する。
【００２７】
便宜上、クロック同期化は、以下のように作動すべくさらに適合された制御手段により達成される。もしそのクロックがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。そして、もしそれがマスタークロックに分類されなかったならば、マスタークロックから上記の同期化メッセージを受信し、その同期化の情報を用いて自身をマスタークロックに同期化させる。
【００２８】
マスタークロックを選出する過程は、前述のように、さらに慎重に考慮する必要がある。従って、その制御手段は以下のように作動すべくさらに適合され得るか、又は、そのソフトウエアコードがそのクロックを以下のように作動させるべくさらに適合され得る。もしそのクロックがマスター候補クロックに分類されたならば、別のマスター候補クロックからマスター選出開始メッセージが既に送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送る。もしそのクロックがマスター候補クロックに分類され、定められたローカル時刻以前に別のマスター候補クロックから上記のマスター選出開始メッセージが送られたならば、そのマスター選出開始メッセージを受信する。そして、マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。もしそのクロックがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選出する。そして、それにより自身を選び出した場合は、それがマスタークロックに分類されると言う事実を記録する。
【００２９】
全てのマスター候補クロックにとってマスター選出開始メッセージの受信ローカル時刻が明らかなはずである場合には、上記の代わりに、制御手段は以下のように作動すべくさらに適合され得るか、又は、ソフトウエアコードがそのクロックを以下のように作動させるべくさらに適合され得る。もしそのクロックがマスター候補クロックに分類されたならば、別のマスター候補クロックからマスター選出開始メッセージが既に送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送る。もしそのクロックがマスター候補クロックに分類されて、上記のマスター選出開始メッセージが送られていたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。もしそのクロックがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選出する。そして、それにより自身を選び出した場合は、それがマスタークロックに分類されると言う事実を記録する。
【００３０】
上記の論点においては、改良された実時間クロックの均一性を備えた、マスタースレーブに基づくクロック同期化の方法で採用され得るクロックを供給することが、本発明の実施のもう１つの目的である。これは、マスター候補クロックに分類され得る、ゆえにＭＣＧに属するか、又はその時点でマスタークロックに分類され得るクロックにより達成される。Ｎ個のそのようなクロックがシステムに組み込まれると、そのシステムは、クロック・レートの特性に基づきＭＣＧからマスタークロックを選び出すために作動する。
【００３１】
従って、本発明の実施が供給するクロックは、Ｎ個のクロックを含むシステムで採用するためのもので、そのＮ個の内の１つがマスタークロックに分類され、マスタークロックを含む最低３個、最高Ｎ−１個がマスター候補クロックに分類される。そのクロックは以下のように作動すべく適合された制御手段を構成している。そのクロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録する。もしそれがマスター候補クロックに分類されたならば、マスター選出開始メッセージが既に別のマスター候補クロックから送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送る。もしそれがマスター候補クロックに分類され、定められたローカル時刻以前に上記のマスター選出開始メッセージが別のマスター候補クロックにより送られたならば、マスター選出開始メッセージを受信し、マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。もしそれがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いて、マスター候補クロックの１つを選び出す。そして、もしそれにより自身を選出した場合は、それがマスタークロックに分類されると言う事実を記録する。もしそれがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。そして、もしそれがマスタークロックに分類されなかったならば、マスタークロックから上記の同期化メッセージを受信する。そして、その同期化の情報を用いて、自身をマスタークロックに同期化させる。
【００３２】
同じ目的のために、本発明の実施がさらに供給するクロックは、Ｎ個のクロックを含むシステムで採用するためのもので、そのＮ個の内の１つがマスタークロックに分類され、マスタークロックを含む最小３個、最大Ｎ−１個がマスター候補クロックに分類される。そして、そのクロックは以下のように作動すべく適合された制御手段を構成している。そのクロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録する。それがマスター候補クロックに分類されたならば、マスター選出開始メッセージが既に別のマスター候補クロックにより送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送る。もしそれがマスター候補クロックに分類されて上記のマスター選出開始メッセージが送られていたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。しそれがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選出する。そして、それにより自身を選出した場合は、それがマスタークロックに分類されるという事実を記録する。もしそれがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。そして、もしそれがマスタークロックに分類されなかったならば、マスタークロックから上記の同期化メッセージを受信する。そして、その同期化の情報を用いて自身をマスタークロックに同期化させる。
【００３３】
本発明の実施のさらなる目的は、改良された実時間クロックの均一性を備えたマスタースレーブに基づくクロック同期化の方法で採用し得るクロックのための制御ソフトを供給することである。従って、本発明の実施で供給可能となるソフトウエア製品は、Ｎ個のクロックを備えたシステム内に含まれるクロックのためのもので、そのＮ個の内の１つがマスタークロックに分類され、マスタークロックを含む最小３個、最大Ｎ−１個がマスター候補クロックに分類される。そのソフトウエア製品はそのクロックが以下のように作動すべく適合されたソフトウエアコードを構築する。そのクロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録する。もしそれがマスター候補クロックに分類されたならば、別のマスター候補クロックから既にマスター選出開始メッセージが送られていない限り、定められたローカル時刻にマスター選出開始メッセージを送る。もしそれがマスター候補クロックに分類され、定められたローカル時間以前に上記のマスター選出開始メッセージが別のマスター候補クロックにより送られたならば、そのマスター選出開始メッセージを受信し、マスター選出開始メッセージの受信ローカル時間を示す情報を含むマスター選出応答メッセージを送る。もしそれがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選び出す。そして、それにより自身を選出した場合は、それがマスタークロックに分類されるという事実を記録する。もしそれがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。そして、もしそれがマスタークロックに分類されなかったならば、上記の同期化メッセージをマスタークロックから受信する。そして、その同期化の情報を用いて自身をマスタークロックに同期化させる。
【００３４】
同じ目的のために、本発明の実施で供給可能となるソフトウエア製品は、Ｎ個のクロックを備えたシステム内に含まれるクロックのためのもので、そのＮ個の内の１つがマスタークロックに分類され、マスタークロックを含む最小３個、最大Ｎ−１個がマスター候補クロックに分類される。そのソフトウエア製品はそのクロックが以下のように作動すべく適合されたソフトウエアコードを構築する。そのクロックがマスタークロックとマスター候補クロックのどちらに分類されるのかを記録する。もしそのクロックがマスター候補クロックに分類されたならば、マスター選出開始メッセージが既に別のマスター候補クロックにより送られていない限り、定められた時間にマスター選出開始メッセージを送る。もしそのクロックがマスター候補クロックに分類され、上記のマスター選出開始メッセージが送られていたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を含むマスター選出応答メッセージを送る。もしそのクロックがマスター候補クロックに分類されたならば、マスター選出開始メッセージの受信ローカル時刻を示す情報を用いてマスター候補クロックの１つを選び出す。そして、それにより自身を選出した場合は、それがマスタークロックに分類されるという事実を記録する。もしそのクロックがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。そして、もしそのクロックがマスタークロック分類されなかったならば、マスタークロックから上記の同期化メッセージを受信する。そして、その同期化の情報を用いて自身をマスタークロックに同期化させる。
【００３５】
前述の通り、クロック同期化のエラーは、それぞれのマスター候補クロックに対してマスター選出開始メッセージの受信ローカル時刻を示す情報を用いて決定され得る。そして、制御手段がそのように作動するように適合されるか、又はそのクロックをそのように作動させるようにソフトウエアコードが適合されることが望ましい。制御手段は中央値を持つマスター候補クロックを選出すべく適合され得るか、又は、ソフトウエアコードはそのクロックを作動させるように適合され得る。
【００３６】
過度のクロック同期化エラーのため、あるマスター候補クロックが一旦ＭＣＧから除外されてしまうと、少なくとも修復されるまではそれを故障品に分類することが適切である。従って、制御手段が以下のように作動すべくさらに適合されるか、又はソフトウエアコードが以下のように作動すべくさらに適合されるのが望ましい。そのクロックが故障クロックに分類されるのかどうかを記録する。もしそのクロックがマスタークロックに分類されたならば、あるマスター候補クロックのクロック同期化エラーが過度かどうかという質問のそうであるという判定に対して、該当クロックを故障クロックに分類し、まだマスター候補クロック、又は故障クロックに分類されていないＮ個のクロック内の別のクロックをマスター候補クロックに分類するという旨の分類メッセージを送る。そして、もしそのクロックがマスタークロックに分類されず、マスタークロックから送られた上記の分類メッセージがそれを故障クロックに分類するものであったならば、その事実を記録する。
【００３７】
便宜上、その制御手段は以下のように作動すべく適合され得るか、又は、そのソフトウエアコードはそのクロックを以下のように作動させるべく適合され得る。もしそのクロックがマスタークロックに分類されたならば、各マスター候補クロックのクロック同期化エラーが過度かどうかという質問の判定に従って、Ｎ個のクロック内のどれがマスター候補クロックに分類されることになるのかを確認する分類メッセージを送る。
【００３８】
前にも検討したように、上記の分類メッセージは同期化の過程で有利に用いられ得る。この目的のために、制御手段は以下のように作動すべくさらに適合されるか、又はソフトウエアコードはそのクロックを以下のように作動させるべくさらに適合されるのが望ましい。もしそのクロックがマスタークロックに分類されたならば、同期化の情報を含む同期化メッセージを送る。この情報には、分類メッセージの受信ローカル時刻をマスタークロックに基づいて示してある。そして、もしそのクロックがマスタークロックに分類されなかったならば、マスタークロックから上記の同期化メッセージを受信する。そして、その同期化の情報、及び該当のクロックに基づく分類メッセージの受信ローカル時刻を用いて自身をマスタークロックに同期化させる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施を添付図面に関する例を挙げて説明する。  
これから説明する本発明の実施は、ＣＡＮバスを用いた実時間分散システムのための信頼できるクロック同期化の方法を提供する。この実施は多くのＣＡＮプロトコルの特性を利用するが、それについては簡単に説明する。この結果、高い耐故障性のあるクロック同期化システムがソフトウエアのみを用いて導入され得る。
【００４０】
１．アトミック放送（Ａｔｏｍｉｃ  Ｂｒｏａｄｃａｓｔｉｎｇ） 
アトミック放送はＣＡＮプロトコルの特徴で、システム内のあるノードがシステム内の他の全てのノードにメッセージを送信できるようにする。２つ以上のノードから同時にメッセージが送られるのを防ぐために、ある種のバス調停プロセスの形式が用いられるが、調停プロセスにより一旦バスへのアクセスが与えられると、メッセージはシステム内の他の全てのノードによりおおむね同時に受信される。他のノードによる受信は認識される。
【００４１】
「おおむね同時に」と言う意味は、互いの差がそのシステムが持つ時間の粒度（ｔｅｍｐｏｒａｌ  ｇｒａｎｕｌａｒｉｔｙ）より相当に小さいタイミングでと言うことである。例えば、ガスタービンが１ｍｓの時間の粒度を有することができ、これは、それが１ｋＨｚのバスによって適切に役立てられるが、デバイスのサイズは、システムノード間の最も長い伝搬の遅延が１００ｎｓよりも小さくなる、ということを意味している。それは、ガスタービンの時間の粒度の１０％以下である。
【００４２】
２．メッセージ識別子（Ｍｅｓｓａｇｅ  Ｉｄｅｎｔｉｆｉｅｒｓ） 
ＣＡＮプロトコル内の各メッセージはメッセージ識別子で示される。メッセージ識別子は少なくともメッセージ優先順位の表示を含む。一般的に、２０００以上の優先順位度があり、優先順位の逆の順に番号が付けられている。優先順位「０」と示されるメッセージが最高優先順位を持つメッセージとなる。
【００４３】
３．Ｐｏｓｔｉｏｒｉタイム・スタンピング（Ｔｉｍｅ  Ｓｔａｍｐｉｎｇ） 
Ｐｏｓｔｉｏｒｉタイム・スタンピングというのは、メッセージが送信元を出た時よりもむしろ、送信先に届いた時に同期化の許可を出す技術である。アトミック放送と並んでＰｏｓｔｉｏｒｉタイム・スタンピングを用いることで、レイテンシ（待ち時間の）エラーが削除されるよう許可を出す。
【００４４】
本発明の実施はできる限り簡単な方法を構築するためにマスタースレーブ・アプローチに基づく。それはシステム内の全てのクロック・ノードをグループ分けするクラスタリング技術を用いる。これらのグループはマスター候補グループ（ｍａｓｔｅｒ  ｃａｎｄｉｄａｔｅｓ  ｇｒｏｕｐ，  ＭＣＧ）とマスタークロック補欠グループ（ｍａｓｔｅｒ  ｃｌｏｃｋ  ｓｕｂｓｔｉｔｕｔｅｓ  ｇｒｏｕｐ，  ＭＣＳＧ）、及びスレーブクロックグループ（ｓｌａｖｅ  ｃｌｏｃｋ  ｇｒｏｕｐ，  ＳＣＧ）である。この技術は図１（ａ）と図１（ｂ）に図式的に示され、マスタークロックの故障に関わるこれまでの問題を克服するよう設計される。一般的なマスタークロックは定期的にＭＣＧから選び出される。後に説明するように、このクラスタリング手法とマスタースレーブ・アーキテクチャを組み合わせることにより本発明の実施は信頼できる正確な照合時間の同期化を提供する。各再同期化サイクルは選出のメカニズムをもってＭＣＧからマスタークロックとして中央値を持つクロックを選ぶ。この選出のメカニズムはさらにＭＣＧ内の故障クロックをも識別する。もし故障クロックが発見されたら、それらはＭＣＳＧから非故障クロックと差し替えられる。
【００４５】
従って、各再同期化のサイクル毎にＭＣＧ内のクロックのみがマスターの選出に参与する。対照的に、ＭＣＳＧ内のクロックはこの選出には関わらず、ＭＣＧの中の故障クロックを差し替えるためだけのものである。システム内の残りのクロックはスレーブで、それらは選出されたマスタークロックに同期化させなければならないが、クロック同期化のためのいかなるメッセージも送信する必要はない。
【００４６】
図３はマスター選出と同期化の過程を示す状態遷移図で、定期的に起こる再同期化のサイクル毎にクロックの同期化を達成するよう説明されたクラスタリング技術を利用している。図面３に示されたシステムは合計Ｎ＋Ｍ個のクロックを含む。これらの内Ｎ個のクロックは、故障がないと仮定して、マスタークロックとして供給可能な物であり、いつでも一回毎にＭＣＧ及びＭＣＳＧにかけて分配される。残りＭ個のクロックは永続的なスレーブクロックで、常にＳＣＧ内にある。Ｎ個の潜在的マスタークロックはそれぞれ特有の優先順位番号が割り当てられ、一般的にはハードワイヤード（ｈａｒｄ−ｗｉｒｅｄ）であるが、システムのパワーアップ（ｐｏｗｅｒ−ｕｐ）における初期化の過程で達成され得る。さらに、システム内の各クロックはハードワイヤードで、ＭＣＧを構成することになるクロックの中の番号Ｋを識別する情報を備えている。Ｋの値は最小３、最大Ｎ−１になり得る。Ｋが丁度３になるよう実施するのが望ましい。これによりＮ−Ｋ個のクロックをＭＣＳＧ内に残すことになり、これらが全て非故障クロックであると仮定すると、つまり、最小１個最大Ｎ−３個のクロックがＭＣＳＧ内にあり、この中からＭＣＧ内の故障クロックのための代用品が選ばれ得る。システムがパワーアップされると、例えばクロックＣ１、Ｃ２、…ＣＫ等の優先順位の最も高いＫ個のクロックは、自身を組織してＭＣＧを作る。残りのＮ−Ｋ個のクロックは、例えば優先順位ＣＫ＋１、ＣＫ＋２、…  ＣＮ−１、ＣＮのように優先順位が最も低く、自身を組織してＭＣＳＧを作る。このような自らの組織化は各クロックがローカル指定レジスター（ａ  ｌｏｃａｌ  ａｓｓｉｇｎｍｅｎｔ  ｒｅｇｉｓｔｅｒ）内に適切なビット量を設定することにより起こる。非常に組織化されたクロックを用いて、システムはＳ１の状態で図３の状態遷移図を入力する。ここまでの状態ではまだマスタークロックが選ばれていないということに注意されたい。
【００４７】
ＭＣＧ内のＫ個のクロックのそれぞれ、つまり、その指定レジスター内にＭＣＧのビット設定を持つ各クロックは、局部的に計測された通り、前もって決定された時間の間再同期化させる時刻を待つ。しかし、これらのクロックはそれぞれわずかに異なったレートで作動しているだろうから、その１つ、つまり、一番早いものが最同期化の時刻に最初に達することになるだろう。この状態は図３の状態Ｓ２により示される。そうしなくてもよいが、便宜上、一番速いクロックがＣ１と仮定しよう。クロックＣ１が再同期化の時刻に達すると、ＣＡＮプロトコルのアトミック放送の機能性を用いて図２に示されるようにマスター選出開始メッセージｍｓｔａｒｔをシステム内の他の全てのクロックに送る。マスター選出開始メッセージｍｓｔａｒｔは優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。マスター選出開始メッセージはＭＣＧ内の他の各クロック、つまり、その指定レジスター内にＭＣＧビット設定を持つ他のクロックそれぞれに指示を出し、ローカル時刻、つまり、該当クロックにより印された時刻をそれがマスター選出開始メッセージｍｓｔａｒｔを受信した時刻でスナップする。このスナップは、「タイムスタンプ（ｔｉｍｅｓｔａｍｐ）」と呼ばれる。マスター選出開始メッセージｍｓｔａｒｔの受信はＣＡＮバス上の認識ビットを用いて認識される。クロックＣ１が認識ビットを発見すると、これもまたタイムスタンプを施す。このようにＫ個のタイムスタンプがおおむね同時に施され、それぞれがローカル時刻Ｔ１、Ｔ２、・・・ＴＫを示す。
【００４８】
その後ＭＣＧ内のクロック間でタイムスタンプのやり取りが１ラウンド続く。これは図３で状態Ｓ３までに示される。ＭＣＧ内のＫ個のクロックそれぞれ、つまり、その指定レジスター内にＭＣＧビット設定を持つクロックがそれぞれ、図２に示されるようにＣＡＮプロトコルのアトミック放送の機能性を用いてマスター選出応答メッセージｍ１、ｍ２、…ｍＫをシステム内の他の全てのクロックに送る。マスター選出応答メッセージｍ１、ｍ２、…ｍＫは優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。この方法で、ＭＣＧ内の各クロックは他のそれぞれにより施されたタイムスタンプについて知らされる。これらのタイムスタンプはおおむね同時に施されるため、ＮＣＧ内の各クロックはＭＣＧ内の全てのクロックの相対的なスピードを決定することができる。最新の時刻を示すタイムスタンプが一番速いクロックのもので、この場合はクロックＣ１であろう。中央値の時刻を示すタイムスタンプは中央値を持つクロックのものであろう。この中央値を持つクロックがマスタークロックに選ばれる。それはその指定レジスター内にマスタークロックビットを設定する。例えば、Ｋが偶数であるためもし中央値を持つクロックが１つもなかったならば、中央値を持つ２つのクロックの内最も高い優先順位を持つ方が選ばれる。これは図３の状態Ｓ４及び図２の決定アルゴリズムＦＶ（Ｔ１、Ｔ２、Ｔ３）により示される。図２はクロックＣ１がマスターに選ばれることを示している。
【００４９】
もし、どのクロックがマスターに選ばれるかを決めるためだけにタイムスタンプが用いられたならば、一見クロックＣ１により施されたタイムスタンプＴ１は必要ではないように思われる。クロックＣ１は、少なくともマスター選出開始メッセージｍｓｔａｒｔが送られた時刻には一番速いクロックとみなされているので、マスタークロックに選ばれることから除外されるかもしれない。同様にそれはクロック群の最も速い方の極端にあるので、依然として中央値を持つクロックが決定され得る。上記の簡略化された過程が用いられるシステムは本発明の実施の範囲内にあるが、下記に説明するように、一番速いクロックにおいてタイムスタンプＴ１を施すことに関連して大きなメリットがある。クロックが互いに相関して揺れを生じ得るシステムにおいては、明らかに、マスター選出開始メッセージｍｓｔａｒｔが受信された時刻にクロックＣ１が依然として一番速いクロックであると言う保証はない。そのような場合には、クロックＣ１によりタイムスタンプＴ１が施される必要があろう。図２が示すのが丁度そのような場合で、そこではマスター選出開始メッセージｍｓｔａｒｔの送受信が行われている間に他のクロックＣ２とＣ３の内の１つがクロックＣ１に追いつきさらに追い越してしまっている。
【００５０】
選ばれたマスタークロックＣ１、つまり、その指定レジスター内にＭＣＧビット及びマスタークロックビット両方のビット設定を持つクロックは、その後ＭＣＧ内の他のクロックＣｐ（ｐ≠１）のそれぞれに対してクロック同期化エラーを決定する。これを可能にする１つの方法は、それらクロックのそれぞれからのタイムスタンプＴｐ（ｐ≠１）をそれ自身のタイムスタンプＴ１からただ単に引き算することである。もし誤差が過度であったならば、すなわちたいてい０に置かれるだろうと前もって決定された幅より外だったら、その後問題のクロックＴｐは故障とみなされる。例えクロックＣ１がマスターに選ばれなかったとしても、クロックＣ１を含むＭＣＧ内の全てのクロックがタイムスタンプを施しそのやり取りをした場合にのみこのステップは実行される。実際、ＭＣＧ内の各クロック、又は、ＭＣＧ内の各クロック及びＭＣＳＧ内の各クロックがこの判定を行うこともまた可能である。しかしながら、マスタークロックＣ１、つまりその指定レジスター内にＭＣＧビット及びマスタークロックビット両方のビット設定を持つクロックはその後、図２に示されるようにＣＡＮプロトコルのアトミック放送の機能性を用いて分類メッセージＭαシステム内の他の全てのクロックに送る。分類メッセージＭα優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。分類メッセージＭαの内容は、Ｎ個のクロックの内のどれが次のマスター選出周期のためにＭＣＧになるのかを識別する。マスタークロックは、マスター選出開始メッセージに対してタイムスタンプを送るそれらのクロックのリストをただ単に編集し、過度なクロック同期化エラーを持つと判定されたものを全て除外する。そして、それらをＭＣＳＧから取った同じ数のクロックと差し替える。簡単に言えば、ＭＣＳＧから優先順位が最も高いクロックが選ばれる。これは図３の状態Ｓ５ａにより示される。修正されたクロックのリストは分類メッセージＭαの一部として送られるが、即座には作用しない。この状態は図３の状態Ｓ５に示される。
【００５１】
分類メッセージＭαは、ＭＣＧ内の他のクロックそれぞれ、つまりその指定レジスター内にＭＣＧビット設定を持つ他のクロックそれぞれにも指示を出して、分類メッセージＭαを受信した時刻にタイムステップを施すようにさせる。分類メッセージＭαを受信したことはＣＡＮバス上の認識ビットにより認識される。クロックＣ１は認識ビットを発見すると、それもまたタイムスタンプを施す。従って、再度Ｋ個のタイムスタンプがおおむね同時に施され、図２に示されるようにそれぞれがローカル時刻Ｔα１、Ｔα２、・・・  Ｔαｋを表している。
【００５２】
次に、マスタークロックＣ１、つまりその指定レジスター内にＭＣＧビット及びマスタークロックビット両方のビット設定を持つクロックは、図２に示されるようにＣＡＮプロトコルのアトミック放送の機能性を用いて同期化メッセージＭβをシステム内の他の全てのクロックに送る。同期化メッセージＭβは優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。同期化メッセージＭβは、同期化メッセージＭαが受信された時刻にマスタークロックＣ１により施されたタイムスタンプＴα１を含む。この状態は図３の状態Ｓ６に示される。ＭＣＧ内の他のＫ−１個のクロックＣｐ ｐ≠1はそれぞれ、その後自身のタイムスタンプＴα ｐ ｐ≠１をマスタークロックにより送られたタイムスタンプＴα１から引き算して自身のクロック同期化エラーを計算し、それによって自身を修正する。これは図３の状態Ｓ７により示される。
【００５３】
この時点を過ぎて初めて、分類メッセージＭαの内容が実行される。現時点でＭＣＧにあるクロック、つまり、その指定レジスター内にＭＣＧのビット設定を持つクロックで、しかし分類メッセージＭαではＭＣＧに属すると認識されていないものは、その指定レジスター内のＭＣＧビットをリセットし、故障ビットを設定する。現時点ではＭＣＧにないクロック、つまり、その指定レジスター内にＭＣＧのビット設定を持たないクロックで、しかし分類メッセージＭαではＭＣＧに属すると認識されているものは、その後その指定レジスター内に故障ビットがないか検査する。もしそのビットに問題がなかったならば、それは、図２に示されるようにＣＡＮプロトコルのアトミック放送の機能性を用いて承諾メッセージ（ａｎ  ａｃｃｅｐｔａｎｃｅ  ｍｅｓｓａｇｅ）ｍａｃｋを送る。承諾メッセージｍａｃｋは優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。他方で、もし故障ビットが設定されるならば、それは図２に示されるようにＣＡＮプロトコルのアトミック放送の機能性を用いて拒否メッセージ（ａ  ｒｅｊｅｃｔｉｏｎ  ｍｅｓｓａｇｅ）ｍａｃｋを送る。同期化メッセージｍａｃｋは優先順位「０」と共に送信され、従って、次のバス調停ラウンドで送信待ちしている他のどのメッセージよりも優先権を持つ。拒否メッセージの送信により、次に優先順位が高いクロックで現時点ではＭＣＧに入っていないものがその指定レジスター内の故障ビットを検査するようにさせる。もしそのビットに問題がなかったならば、それは承諾メッセージｍａｃｋを送るが、もし故障ビットが設定されるならば、それは拒否メッセージｍａｃｋを送る。その過程は代わりが見つかるまで続く。これは図３の状態Ｓ８により示される。代わりとなったものはその指定レジスター内にＭＣＧビットを設定し、従って、ＭＣＧを再編成する。これは図３の状態Ｓ９により示される。全過程はその後スタート時点である状態Ｓ１に戻る。
【００５４】
補欠クロックの選出と精査を遂行し得る方法は他にもある。ＣＡＮバス上の全てのトラフィックは公開のものなので、各クロックは既に故障が見つかったクロックの記録を保持していることもあり得る。この記録を用いれば、ＭＣＧ内で別のクロックの故障が生じた場合にマスタークロックが優先順位は高いが故障のあるクロックを補欠クロックに指定しないようにすることが可能である。そのような場合、安全性の再確認として行われることもあろうが、指定を受けた補欠クロックはそれ自身の故障ビットを検査する必要はない。
【００５５】
ＭＣＧに入っていないクロックもまたマスター選出開始メッセージｍｓｔａｒｔの受信にタイムスタンプを施すこともあり得る。これによりそれらのクロックが選出されたマスタークロックと比べて自身のクロック同期化エラーを決定することができるし、それらのエラーが過度かどうかを判定することができる。その情報はそれらが補欠クロックに指定された際に承諾したり拒否したりするために用いることができ、最初の段階で故障クロックがＭＣＧに指定されるのを防ぐ。
【００５６】
前述された諸段階は周期的に実行され、毎回新しいマスターが選ばれる。そして、前回のマスターは自身の指定レジスター内のマスタークロックビットをリセットする。
【００５７】
本発明の実施は多くのメリットを提供する。ＭＣＧからマスタークロックを選出するためのメカニズムはたった３個の候補クロックを必要とするだけの非常に単純なものである。望ましいレベルの耐故障性は適切な数の補欠クロックを選ぶことにより獲得できる。さらに、その方法は費用効果の高いものである。と言うのは、故障クロックをシステムから除外する必要はなく、故障から回復したクロックは簡単にシステムに復帰することができるからである。
【００５８】
本申請に関連したこの明細書と同時又はこれに先駆けて提出された全ての書類はこの明細書と共に公の審査を受けるものである。前記の全ての文書の内容はこの中に言及される。
【００５９】
この明細書（添付の特許請求の範囲及び要約書と図面を含む）で明らかにされた全ての特徴や、または同様に明らかにされた方法若しくは過程における全ての段階は、いかなる組み合わせでも結びつけ得る。だたし、前述の特徴及び段階、又は特徴若しくは段階の少なくともいくつかが相互に排他的な組み合わせを除く。
【００６０】
この明細書（添付の特許請求の範囲及び要約書と図面を含む）で明らかにされた各特徴は、特に言及がない限り、同一又は同等か同様の目的に資する他の特徴と入れ代えられ得る。従って、特に言及がない限り、明らかにされた特徴はそれぞれ同等または同様の特徴の一般的な一連の事例からの１例だけである。
【００６１】
本発明はいかなる先行実施の詳細に限定されるものではない。本発明はこの明細書（添付の特許請求の範囲および要約書と図面を含む）で明らかにされた特徴の内いかなる新しい点、又はいかなる新しい組み合わせにも、あるいは明らかにされた方法又は過程の諸段階の内のいかなる新しい点、又はいかなる新しい組み合わせにも広がるものである。
【図面の簡単な説明】
【００６２】
【図１ａ】本発明の一実施形態に係るクロック・クラスタリングスキームを説明する図である。
【図１ｂ】本発明の一実施形態に係るクロック・クラスタリングスキームを説明する図である。
【図２】本発明の一実施形態に係るクロック同期化の方法を示すタイムチャートを示す図である。
【図３】本発明の一実施形態に係るクロック同期化の過程を示す状態遷移図である。
【図１ａ】
2005513909.tif 000003
【図１ｂ】
2005513909.tif 000004
【図２】
2005513909.tif 000005
【図３】
2005513909.tif 000006
【国際調査報告】
2005513909.tif 000007
2005513909.tif 000008
2005513909.tif 000009
2005513909.tif 000010
2005513909.tif 000011