(57)【特許請求の範囲】
【請求項１】
分散システムであって、
第１の通信リンクと第２の通信リンクとの間の通信を可能にする通信装置と、
前記第２の通信リンクを通して遅延パケットおよびフォローアップ・パケットを転送するスレーブノードであって、該フォローアップ・パケットは、該遅延パケットが転送されたときのスレーブノード内のローカル時間を示す第１のタイムスタンプを含む、スレーブノードと、
前記通信装置を通して、前記第１の通信リンクを通して、前記遅延パケットおよび前記フォローアップ・パケットを受け取り、該遅延パケットが受け取られるときにマスターノード内のローカルクロックから第１の時間値を取得し、前記第１のタイムスタンプおよび該第１の時間値を使用して前記スレーブノードから該マスターノードへの遅延パケットの転送の際の見掛けの遅延を求め、較正パケット内の該見掛けの遅延を該スレーブノードに転送するマスターノードであって、該スレーブノードは、該見掛けの遅延を使用して該マスターノードと該スレーブノードとの間のタイミングデータ・パケットの転送の際の遅延を求める、マスターノードと、
を備える分散システム。
【請求項２】
前記スレーブノードが、
該スレーブノードから前記マスターノードへの遅延パケットの転送の際の見掛けの遅延、および該マスターノードから該スレーブノードへのタイミングデータ・パケットの転送の際の見掛けの遅延の平均を計算することによって遅延を求める、
ことを特徴とする請求項１に記載の分散システム。
【請求項３】
前記スレーブノードが、
前記タイミングデータ・パケットを受け取り、該タイミングデータ・パケットが受け取られたとき該スレーブノード内のローカルクロックから第２の時間値を取得し、該タイミングデータ・パケットが転送されたときの該マスターノード内のローカル時間を示す第２のタイムスタンプを含む該マスターノードからの該タイミングデータ・パケットに対応したフォローアップ・パケットを受け取り、該第２のタイムスタンプおよび該第２の時間値を使用して該マスターノードから該スレーブノードへの該タイミングデータ・パケットの転送の際の見掛けの遅延を計算することによって、該マスターノードから該スレーブノードへの該タイミングデータ・パケットの転送の際の見掛けの遅延を求める、
ことを特徴とする請求項２に記載の分散システム。
【請求項４】
前記遅延パケットが、
該遅延パケットを示すフラグをもつタイミングデータ・パケットであり、前記第１の通信リンクおよび前記第２の通信リンクに結合される１組の付加のノードは、該フラグをもつタイミングデータ・パケットをマスターおよびスレーブクロックの選択のために使用しないようにする、
ことを特徴とする請求項１に記載の分散システム。
【請求項５】
前記通信装置が、
該通信装置に関連するジッターによって引き起こされる前記マスターノード内のローカルクロックと前記スレーブノード内のローカルクロックとの間の同期誤差を求めるための手段を備える、
ことを特徴とする請求項１に記載の分散システム。
【請求項６】
前記通信装置が、
前記第１および前記第２の通信リンクを通して、前記マスターノードおよび前記スレーブノードに対し前記同期誤差を伝えるための手段をさらに含む、
ことを特徴とする請求項５に記載の分散システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、分散システムの分野に関連する。特に、この発明は、分散システムにおける時間同期の構造に関連する。
【０００２】
【従来の技術】
分散制御システムは、一般に、１つまたは複数のネットワーク通信リンクを介して相互接続されるノードの集まりとして構成される。これらのネットワーク通信リンクは、イーサネット(Ethernet)のようなパッケージ化されたリンク、または分散制御システム・アプリケーションに適応する１つまたは複数の多様な他のパッケージ化されたリンクでありうる。
【０００３】
分散制御システムは、一般に、分散ノード内のタイミングの高精度な制御によって利益を得る。Eidson他の米国特許第5,566,180号の明細書は、分散ノード内のローカルクロックを同期することによって分散ノード内のタイミングの高精度な制御を提供する方法および装置を示している。Eidson他によって示される技法は、マスタークロック/スレーブクロック同期プロトコルを使用する。
【０００４】
【発明が解決しようとする課題】
起動時、および新しいノードが取り付けられ、取り除かれ、または一時的にディスエーブルされるとき、どれがマスターノードであり、どれがスレーブノードであるかを分散ノードが自動的に選択することを可能にする技法を提供することが望まれる。これは、分散システムを維持するために必要とされる管理上のオーバヘッドを低減する。さらに、そのようなマスターおよびスレーブノードの自動選択が分散システム内の通信に極めてわずかしか影響を及ぼさないことが望ましい。
【０００５】
【課題を解決するための手段】
クロック同期のために使用されるマスターおよびスレーブクロックの自動選択のための機構をもつ分散システムが開示される。分散システムは、それぞれがローカルクロックおよび該ローカルクロックに関係する１組の情報を有する第１ノードおよび第２ノードを含む１組のノードを含む。第１ノードは、通信リンクで、第１ノード内のローカルクロックに関係する情報を運ぶパケットを転送する。第２ノードは、通信リンクからパケットを受け取り、第２ノード内のローカルクロックが第１ノードのローカルクロックの時間値を同期させるマスタークロックであるか、または第１ノード内のローカルクロックからの時間値に同期するスレーブクロックであるかを判断する。第２ノードは、この判断を、パケット内の情報を第２ノード内のローカルクロックに関係する情報と比較することによって行なう。
【０００６】
さらに、ノードの異なるサブネットを接続する境界ノード内のマスターおよびスレーブクロックの自動選択が開示される。加えて、クロック同期遅延を求めるための機構、および通信装置に関連するジッターを報告するための機構が開示される。
【０００７】
この技法は、多数の側面を有する構造のためわずかに異なる境界ノードについては多少の修正があるが、それぞれのノード内で実質的に同じコード・セットが実行されることを可能にする。さらにこれらの技法は、最小限のネットワーク・トラフィックを提供し、システム内の個々のノードの出現または消滅について容認し、補正する。
【０００８】
この発明の他の機能および利点は、後に続く詳細な説明から明らかになるであろう。
【０００９】
この発明を、特定の典型的な実施例に関して図面を参照して説明する。
【００１０】
【発明の実施の形態】
図1は、通信リンク12に結合される１組のノード20-24の間のクロック同期に使用するマスターおよびスレーブクロックの自動選択のための技法を具体化する分散システム10を示す。ノード20-24は、１組のローカルクロック30-34を含む。ローカルクロック30-34は、それぞれのノード20-24についてローカル時間を保持する。
【００１１】
それぞれのノード20-24は、ローカルクロック30-34を同期させるためのあらかじめ決められた同期プロトコルを支援する要素を含む。あらかじめ決められた同期プロトコルに従って、ノード20-24の１つは、分散システム10のマスタークロックとして機能し、ノード20-24の残りのものは、スレーブクロックとして機能する。マスタークロックであるノード20-24の１つは、タイミングデータ・パケットを周期的に生成し、それを通信リンク12を介して転送する。スレーブクロックであるノード20-24のそれぞれは、タイミングデータ・パケットを受け取り、それに応じてそのローカルクロック30-34からローカル時間値をラッチする。マスタークロックであるノード20-24は、それぞれのタイミングデータ・パケットについてフォローアップ・パケットを生成し、それを通信リンク12を通して転送する。それぞれのフォローアップ・パケットはタイムスタンプを含む。スレーブクロックであるそれぞれのノードは、フォローアップ・パケットを受け取り、ラッチされたローカル時間値とタイムスタンプを比較する。スレーブクロックであるそれぞれのノードは、タイムスタンプとラッチされたローカル時間値の間の差を使用して、そのローカルクロック30-34を調整する。
【００１２】
１つの実施例で、あらかじめ決められた同期プロトコルおよびノード20-24内で実現される関連する機構は、米国特許第5,566,180号の明細書に記述されるものである。例えば、それぞれのノード20-24は、タイミングデータ・パケットが認識されるときにローカル時間値をラッチするための回路を含むことができる。それぞれのスレーブクロックは、通信リンク12を通して転送されるタイミングデータ・パケットの送受信時間の計算に基づいて、それぞれのローカルクロック30-34を調整するための回路を含むことができる。記憶された時間値の調整は、十分な安定性をもつ発振器によって駆動されるカウンタとしてそれぞれのローカルクロック30-34を実現することによって達成することができる。カウンタの最下位の数ビットは、加算器として実現することができ、計算の結果に従って発振器期間のインクリメントを時折増加させ、または減少させて、ローカルクロックを効果的に速めたり、遅くすることができる。
【００１３】
ノード20-24は、分散システム10内のどんなタイプのノードでもよい。例えば、ノード20-24の任意の１つまたは複数は、分散制御システムの中のセンサ・ノード、アクチュエータ・ノード、アプリケーション・コントローラ・ノード、またはこれらの組み合わせでありうる。ノード20-24の任意の１つまたは複数は、クロック調整パラメータを計算するために使用されるプロセッサを有するパーソナル・コンピュータのようなコンピュータシステムでありうる。
【００１４】
通信リンク12は、１つまたは複数の多様な通信機構によって実現することができる。１つの実施例で、通信リンク12は、イーサネット・コミュニケーション・ネットワークである。別の実施例で、通信リンク12は、プロセス制御環境に特化したLonTalkフィールドレべル制御バスである。別の実施例で、通信リンク12は、時分割多重アクセス(TDMA)またはトークンリング・プロトコルによって実現することもできる。これらは、いくつかの例を挙げている。
【００１５】
ノード20-24は、どのノード20-24が分散システム10のマスタークロックとして機能するかを判断するための方法を実現する。これらの方法は、ノード20-24に含まれる１組のローカルクロック情報40-44を使用する。ローカルクロック情報40-44は、それぞれローカルクロック30-32に関係する情報を提供する。
【００１６】
それぞれのノード20-24は、最初に、それがマスタークロックであるとして、通信リンク12を介してタイミングデータ・パケットを転送し始める。それぞれのタイミングデータ・パケットは、発信ノード20-24からローカルクロック情報40-44を運ぶ。タイミングデータ・パケットに応答して、ノード20-24は、タイミングデータ・パケットに含まれるローカルクロック情報を、対応するローカルクロック情報40-44と比較して、「より良い」マスタークロックが伝送しているかどうか判断する。より良いマスタークロックがノードによって検出される場合、そのノードは、スレーブクロックの役目を負い、タイミングデータ・パケットの生成を止める。
【００１７】
例えば、起動時、ノード20は、それが分散システム10のマスタークロックであるとする。これは、分散システム10の初期化の間、またはノード20がインストールされたとき、または除去、通信の失敗もしくは途絶等の後に再起動するときでありうる。マスタークロックとして、ノード20は、タイミングデータ・パケット50のようなタイミングデータ・パケットを周期的に生成し、それを通信リンク12を介して転送する。タイミングデータ・パケット50は、ローカルクロック情報40から得られる１組のマスタークロック情報52を運ぶ。ノード22-24は、タイミングデータ・パケット50を受け取り、マスタークロック情報52をローカルクロック情報42-44とそれぞれ比較して、分散システム10のマスタークロックを選択する目的でノード20がより良いクロックをもつかどうか判断する。
【００１８】
ローカルクロック情報40は、ローカルクロック30が基準時間ソースによって駆動されているかどうかの指示を含むことができる。基準時間ソースは、全地球測位システム(GPS)受信器、WWVのような無線放送時間ソース、またはノード20に関連する原子時計でありうる。ローカルクロック情報40は、ローカルクロック30が機能するものであり、かつ仕様の範囲にあるものとしてあらわれるかどうかの指示を含むことができる。
【００１９】
ローカルクロック情報40は、ローカルクロック30がGPS受信器のような基準クロックに由来するかどうかの指示を含むことができる。例えば、ローカルクロック30は、基準時間ソースに同期された原子時計のような非常に正確なクロックでありうる。そうであれば、ローカルクロック30の精度は、基準クロックとの通信が途絶えた後でさえ、それが高い精度で基準クロックに由来する時間を維持することを可能にする。
【００２０】
ローカルクロック情報40は、精度の評価および/またはローカルクロック30に関連するジッターを含むことができる。ローカルクロック情報40は、ローカルクロック30に関連するユニークな識別子(unique identifier)を含むことができる。ローカルクロック情報40は、ローカルクロック30が複数のサブネットをリンクする境界ノード内の境界クロックであるかどうかの指示を含むことができる。
【００２１】
図2は、どのノード20-24が分散システム10のマスタークロックとして機能するかを判断するための方法の一実施例を示す。図示される方法ステップは、それぞれのノード20-24内で実現され、ノード24に関して説明する。
【００２２】
ステップ60で、ノード24は、通信リンク12上でタイミングデータ・パケット(timing data packet:TDP)の検出を待つ。ステップ62で、TDPが、あらかじめ決められたタイムアウト間隔内に検出されない場合、制御はステップ64へ進む。そうでなければ、制御はステップ72へ進む。
【００２３】
ステップ64で、ノード24は、まだマスタークロックの役目になければマスタークロックの役目を負い、通信リンク12上に規則的な間隔でTDPを発行し始める。ノード24によって発行されるそれぞれのTDPは、受信ノード20-22によってどれがより良いマスタークロックであるかを評価する際に使用されるマスタークロック情報としてローカルクロック情報44を運ぶ。ノード24はステップ60に戻り、より良いマスタークロックでありうるノード20-22の１つからのTDPを検出する。
【００２４】
ステップ72で、ノード24は、ステップ60で検出されたTDPが新しいマスタークロックから発信されたかどうかを判断する。新しいマスタークロックとは、あらかじめ決められた数よりも少ない数のTDPを以前に発行したマスタークロックであり、これらのTDPは、ノード24によって検出されたものである。ノード24は、TDPに含まれるUIDの記録を取り、記録されたUIDに関連するカウントを記録することによって、特定のマスタークロックからTDPが既に受け取られているか判断することができる。ステップ72で新しいマスタークロックである場合、ステップ60で検出されたTDPのUIDは、記録を取られ、そのUIDに関連するカウントがインクリメントされる。そのTDPは無視され、制御はステップ60に戻って他のTDPを検出する。それが新しいマスタークロックでない場合、制御はステップ66へ進む。
【００２５】
ステップ66で、ノード24は、ローカルクロック44またはステップ60で検出されたTDPを発信したノードのローカルクロックが最も良いマスタークロックであるかどうか判断する。以下で、ステップ60で検出されたTDPはタイミングデータ・パケット50であるとする。ステップ66で、ノード24は、優先順位付けされた規則セットを使用してマスタークロック情報52をローカルクロック情報44と比較することによって、最良のマスタークロックを判断する。
【００２６】
１つの実施例で、優先順位付けされた規則セットは、マスタークロック情報52またはローカルクロック情報44が基準時間ソースを示すかどうかの判断を伴う第１規則を含む。マスタークロック情報52が基準時間ソースを示し、ローカルクロック情報44が示さない場合、ローカルクロック34は、最良のマスタークロックでない。ローカルクロック情報44が基準時間ソースを示し、マスタークロック情報52が示さない場合、ステップ66で、ローカルクロック34は、最良のマスタークロックである。マスタークロック情報52およびローカルクロック情報44が共に基準時間ソースを示す場合、ステップ66で、基準クロックのあらかじめ決められた階層に従って最良の基準時間ソースが選択される。例えば、GPS時間ソースは、WWV時間ソースなどより上位でありうる。第１規則が、どれが最も良いマスタークロックであるかを解明できない場合、ステップ66で第２規則が使用される。
【００２７】
実施例で、第２規則は、マスタークロック情報52またはローカルクロック情報44が由来する時間ソースを示すかどうかの判断を伴う。マスタークロック情報52が由来する時間ソースを示し、ローカルクロック情報44が示さない場合、ローカルクロック34は、最良のマスタークロックでない。ローカルクロック情報44が由来する時間ソースを示し、マスタークロック情報52が示さない場合、ステップ66で、ローカルクロック34は、最良のマスタークロックである。第２規則が、どれが最良のマスタークロックであるか解明できない場合、ステップ66で第３規則が使用される。
【００２８】
実施例で、第３規則は、マスタークロック情報52またはローカルクロック情報44が境界クロックを示すかどうかの判断を伴う。マスタークロック情報52が境界クロックを示し、ローカルクロック情報44が示さない場合、ローカルクロック34は、最良のマスタークロックでない。ローカルクロック情報44が境界クロックを示し、マスタークロック情報52が示さない場合、ローカルクロック34は、ステップ66で最良のマスタークロックである。第３規則が、どれが最良のマスタークロックであるか解明できない場合、第４規則がステップ66で使用される。
【００２９】
実施例で、第４規則は、マスタークロック情報52またはローカルクロック情報44がより良いクロック精度を示すかどうかの判断を伴う。マスタークロック情報52がローカルクロック情報44より良い精度を示す場合、ローカルクロック34は、最良のマスタークロックでない。ローカルクロック情報44がマスタークロック情報52より良い精度を示す場合、ローカルクロック34は、ステップ66で最良のマスタークロックである。第４規則が、どれが最良のマスタークロックであるか解明できない場合、第５規則がステップ66で使用される。
【００３０】
実施例で、第５規則は、タイ・ブレーカー(同点決勝)である。例えば、ステップ66で、マスタークロック情報52およびローカルクロック情報44の中に示される最も低いUIDをもつクロックを最良のマスタークロックとして選択することができる。
【００３１】
図3は、通信リンク90に結合される１組のノード80-84を有する１つのサブネット、および通信リンク12に結合されるノード20-24を含む別のサブネットを含む分散システム100を示す。分散システム100は、通信リンク90-12の間に結合される境界ノード92を含む。境界ノード92の第１の側面は、通信リンク12のサブネットに対応し、第２の側面は、通信リンク90のサブネットに対応する。境界ノードは、概して、n個のサブネットにリンクするためのn個の側面をもつ。
【００３２】
境界ノード92は、境界ノード92の第１または第２の側面で、または第１および第２の両方の側面で、マスタークロックの役目を負うことができる境界クロック94を含む。さらに、境界クロック94は、境界ノード92の第１または第２の側面でスレーブクロックの役目を負うこともできる。境界ノード内の境界クロックは、概して、多くともその側面のうちの１つでスレーブクロックの役目を負う。
【００３３】
境界ノード92は、方法ステップ60-72を実現し、その第１および第２の両方の側面で別々に最良のマスタークロックの選択に参画する。境界ノード92は、第１の側面でどれが最良のマスタークロックであるかを判断するとき、通信リンク12を介して、１組の境界クロック情報96を運ぶタイミングデータ・パケットを転送する。同様に、境界ノード92は、第２の側面でどれが最良のマスタークロックであるかを判断するとき、通信リンク90を介して、境界クロック情報96を運ぶタイミングデータ・パケットを転送する。
【００３４】
境界ノード92は、境界クロック94が(もしあれば)どちらの側面でスレーブクロックの役目を負うかに依存して、第１または第２の側面から境界クロック94を調整するための回路を含む。さらに、境界ノード92は、タイミングデータ・パケットおよびフォローアップ・パケットを使用して、境界クロック94がどちら側でマスタークロックの役目を負うかに依存して第１および/または第２の側面に時間値を分配するための回路を含む。
【００３５】
境界クロック94が、境界ノード92の側面のうち１つの側面でスレーブクロックの役目を負う場合、それは、残りのサブネット上の最良のマスターを判断するとき、そのスレーブ側の最良のクロックから残りのサブネットに対しマスタークロック情報を分配する。例えば、境界ノード92の第１の側面のサブネット上の最良のクロックは、ノード20内のローカルクロック30であるとする。この結果、境界クロック94は、ローカルクロック30に対してスレーブクロックの役目を負い、通信リンク12上のタイミングデータ・パケット50および対応するフォローアップ・パケットを使用して、分配される時間値に同期するようにその時間を調整する。そのような条件の下で、境界ノード92が、通信リンク90を通してタイミングデータ・パケットを転送するとき、それは、タイミングデータ・パケット内にノード20からのマスタークロック情報52を含む。その結果、境界クロック94は、境界クロック情報96ではなくローカルクロック30に関連するクロック情報に基づいて、境界ノード92の第２の側面でマスタークロックの役目を負うことができる。これは、境界クロック94が、他方のサブネット上のマスタークロックとしてその適性を評価するため、それに対しスレーブである一方のサブネット上の最良のマスタークロックの特性を受け継ぐことを可能にする。
【００３６】
図4は、１対のノード120-122間のタイミングデータ・パケットの転送に関連する遅延を求めるための構成を示す。遅延は、一対の通信リンク110-112の伝搬遅延および介在する通信装置114に関連する遅延を含む。１つの実施例で、通信装置114は、中継器(レピータ)であり、他の実施例では、ゲートウェイ、ルータ、スイッチング・ハブ、または同様の装置でありうる。図示される構成は、この遅延の補正、および対応する１対のローカルクロック124-126の間の時間同期の精度の改善を可能にする。
【００３７】
ノード120はマスタークロックであり、ノード122はスレーブクロックであり、この遅延は、ノード120-122間で対称であるとする。初めに、米国特許第5,566,180号の明細書に記述される通常の同期プロトコルを走らせて、ローカルクロック124-126間の同調(syntonization)を達成する。同調は、ローカルクロック124-126が、同じ時間を保持しないが実質的に同じ速さで走ることを意味する。従って、ノード120-122は、タイミングデータ・パケットが伝送され受信されるときにローカルクロック124-126からローカル時間値を取得する時間パケット認識部(リコグナイザ)を含む。ノード120-122はさらに、タイミングデータ・パケットおよびフォローアップ・パケットを生成するための手段と、フォローアップ・パケットで運ばれるタイムスタンプとローカルクロック124-126から取得される時間値との間の差を計算するための処理手段と、計算された差に応じてローカルクロック124-126を調整するための手段を含む。
【００３８】
ノード120は、タイミングデータ・パケット130を生成し、それを通信リンク110を通して転送する。そしてノード120は、タイムスタンプ134を運ぶフォローアップ・パケット132を生成する。タイムスタンプ134は、タイミングデータ・パケット130が生成されたときローカルクロック124からサンプリングされた時間値である。タイミングデータ・パケット130は、通信リンク112を介して受信されるとき、ノード122にローカルクロック126から時間値をサンプリングさせる。ノード122は、ローカルクロック126からサンプリングされた時間値とタイムスタンプ134との間の差を計算することによって、ノード120からノード122までの見掛けの遅延(D1)を求める。
【００３９】
その後、ノード122は、通信リンク112を通して遅延パケット136、それからフォローアップ・パケット138を転送する。フォローアップ・パケット138は、遅延パケット136が生成されたときにローカルクロック126からサンプリングされた時間値であるタイムスタンプ140を運ぶ。１つの実施例で、遅延パケット136は、特別な遅延フラグ・セットを有するタイミングデータ・パケットである。遅延フラグは、他のノードに対し、遅延パケット136がスレーブクロックによって無視されるべきであって、最良のマスタークロックを判断するために使用されるべきではないことを示す。
【００４０】
遅延パケット136は、通信リンク110を通して受信されるとき、ノード120にローカルクロック124から時間値をサンプリングさせる。ノード120は、遅延パケット136が受信されたときローカルクロック124からサンプリングされた時間値とタイムスタンプ140との間の差を計算することによって、ノード122からノード120までの見掛けの遅延(D2)を求める。
【００４１】
その後、ノード120は、通信リンク110を通して較正パケット142を転送する。較正パケット142は、見掛けの遅延D2に等しい遅延144を運ぶ。ノード122は、通信リンク112を通して較正パケット142を受信し、D1およびD2の平均を計算することによってノード120と122の間の遅延全体を求める。遅延全体は、ノード122がローカルクロック126を調整するときスレーブクロックとして使用され、ノード120と122の間の遅延を補正する。
【００４２】
１つの実施例で、ノード120-122は、前述した較正プロシージャを周期的に実施して、遅延の時間変化について補正する。すべてのスレーブクロックが同じ時間に較正して、過度のネットワークトラフィックを引き起こすことのないように、異なるスレーブクロック内の較正プロシージャは、ずらすことができる。スレーブクロックは、ノード・リセット後に第１の較正シーケンスを始めるように、乱数発生器を使用してずらすことができる。
【００４３】
図５は、通信装置１１４によって引き起こされるジッターの量を求め、報告するための機構を含む通信装置１１４の実施例を示す。図示される構成は、報告されるジッターの補正、およびローカルクロック１２４−１２６間の時間同期の精度の改善を可能にする。
【００４４】
通信装置１１４は、通信リンク１１０−１１２および通信リンク252のような追加の通信リンクにインタフェースする１組の物理的インタフェース（ＰＨＹ）回路２１０−２１４を含む。ＰＨＹ回路２１０−２１４は、通信リンク１１０−１１２および２５２を通して受信される伝送からデータおよびクロック信号を回復し、回復されたデータおよびクロック信号を１組のフレーム開始検出器２０２−２０６および中継器回路230へ提供する。
【００４５】
フレーム開始検出器202-206の１つは、通信リンク110-112および252の対応する１つで到来パケットの開始を検出し、対応するフリップフロップ220-224をセットする。フリップフロップ220-224のセットされた１つは、論理和ゲート234を通してカウンタ240を開始させる。残りのフレーム開始検出器202-206は、対応する通信リンク110-112および252上の出発パケットの開始を検出し、対応するフリップフロップ220-224をセットする。フリップフロップ220-224のすべてがセットされると、カウンタ240は、論理積ゲート232を使用して止められる。その後、カウンタ240は、通信装置114へのパケットのエントリ時間と、最後に中継されたパケットが通信装置ll4から送り出される時間との間の差を示すカウントを保有する。
【００４６】
例えば、フレーム開始検出器202は、通信リンク110を通して受信されるタイミングデータ・パケット130の開始を検出し、フリップフロップ220をセットし、カウンタ240を開始させる。中継器回路230は、PHY回路212および214を使用して、通信リンク112および252を介してタイミングデータ・パケット130を再び伝送する。フレーム開始検出器204-206は、通信リンク112および252上の出発タイミングデータ・パケット130の開始を検出し、フリップフロップ222-224をセットする。フリップフロップ222-224のうち出発タイミングデータ・パケット130によって最後にセットされるものが、カウンタ240を止める。  中継器114は、カウンタ240から得られるカウントの統計的測定を実施することができるマイクロプロセッサ242を含む。マイクロプロセッサ242は、中継器114によって扱われるノードとの通信能力をもつ。マイクロプロセッサ242は、ノードに向けられる伝送データを提供し、信号ライン250を通してノードから受信されるデータを取得する。マイクロプロセッサ242は、中継器114によって扱われるノードに対し、その統計的測定の結果を提供することができる。
【００４７】
前述のこの発明の詳細な説明は、説明の目的で与えられるものであり、この発明を開示された厳密な実施例に限定するものではない。
【００４８】
本発明は例として次の実施態様を含む。
【００４９】
（１）分散システムであって、
通信リンク(12)に結合される第１ノードを備え、該第１ノードは、ローカルクロックおよび該ローカルクロックに関係する１組の情報を有し、該第１ノードは、該情報(52)を運ぶパケット(50)を該通信リンク(12)で転送し、
上記通信リンク(12)に結合される第２ノードを備え、該第２ノードは、ローカルクロックおよび該第２ノードのローカルクロックに関係する１組の情報を有し、該第２ノードは、該通信リンク(12)でパケット(50)を受け取り、該パケット(50)内の情報(52)を該第２ノード内のローカルクロックに関係する情報と比較することによって、該第２ノードのローカルクロックが上記第１ノードのローカルクロック内の時間値を同期するマスタークロックであるか、または該第１ノード内のローカルクロックからの時間値に同期するスレーブクロックであるかを判断する、
分散システム。
【００５０】
（２）上記ローカルクロックに関係する情報は、該ローカルクロックが基準クロックに由来するかどうかの指示を含む、上記(1)に記載の分散システム。
【００５１】
（３）上記ローカルクロックに関係する情報は、該ローカルクロックが機能するものであり、かつ仕様の範囲にあるものとしてあらわれるかどうかの指示を含む、上記(1)に記載の分散システム。
【００５２】
（４）上記ローカルクロックに関係する情報は、該ローカルクロックが基準クロックに由来するかどうかの指示を含む、上記(1)に記載の分散システム。
【００５３】
（５）上記ローカルクロックに関係する情報は、該ローカルクロックに関連する精度の評価を含む、上記(1)に記載の分散システム。
【００５４】
（６）上記ローカルクロックに関係する情報は、該ローカルクロックに関連するユニークな名前を含む、上記(1)に記載の分散システム。
【００５５】
（７）上記ローカルクロックに関係する情報は、該ローカルクロックが、１組のサブネットをリンクする境界ノード内の境界クロックであるかどうかの指示を含む、上記(1)に記載の分散システム。
【００５６】
（８）上記第２ノードは、上記情報を評価するための優先順位付けされた規則セットを使用して、上記パケット(50)内の情報(52)を該第２ノード内のローカル情報と比較する、上記(1)に記載の分散システム。
【００５７】
（９）上記パケットが、あらかじめ決められたタイムアウト間隔の間に上記通信リンク(12)上で検出されない場合、上記第２ノードはマスタークロックである、上記(1)に記載の分散システム。
【００５８】
（１０）上記第２ノードは、初めに、上記第１ノード内のローカルクロックに関係する情報を運ぶパケットのあらかじめ決められた数を無視する、上記(1)に記載の分散システム。
【００５９】
（１１）さらに、第２通信リンク(90)に結合される第３ノードを備え、該第３ノードは、ローカルクロックおよび該第３ノードのローカルクロックに関係する１組の情報を有し、該第３ノードは、該情報を運ぶパケットを該第２通信リンク(90)で転送し、
上記通信リンク(12)および上記第２通信リンク(90)に結合される境界ノード(92)を備え、該境界ノード(92)は、境界クロック(94)および該境界クロック(94)に関係する１組の情報(96)を有し、該境界ノード(92)は、該通信リンク(12)上でパケットを受け取り、該パケット内の情報を該境界クロック(94)に関係する情報(96)と比較することによって、該境界クロック(94)が上記第１ノードのローカルクロック内の時間値を同期するマスタークロックであるか、または該第１ノード内のローカルクロックからの時間値に同期するスレーブクロックであるかを判断し、該境界ノード(92)は、該第２通信リンク(90)上でパケットを受け取り、該第２通信リンク(90)を通して転送される該パケット内の情報を上記境界クロック(94)に関係する情報(96)と比較することによって、該境界クロック(94)が上記第３ノードのローカルクロック内の時間値を同期するマスタークロックであるか、または上記第３ノード内のローカルクロックからの時間値に同期するスレーブクロックであるかを判断する、
上記(1)に記載の分散システム。
【００６０】
（１２）上記パケットが、あらかじめ決められたタイムアウト間隔の間に上記通信リンク(12)上で検出されない場合、上記境界ノード(92)は、該通信リンク(12)上のマスタークロックである、上記(11)に記載の分散システム。
【００６１】
（１３）上記パケットが、あらかじめ決められたタイムアウト間隔の間に上記第１通信リンク(12)上で検出されない場合、上記境界ノード(92)は、上記第２通信リンク(90)上のマスタークロックである、上記(11)に記載の分散システム。
【００６２】
（１４）上記境界クロック(94)に関係する情報(96)は、上記通信リンク(12)上のマスタークロックから導かれる、上記(11)に記載の分散システム。
【００６３】
（１５）上記境界クロック(94)に関係する情報(96)は、上記第２通信リンク(90)上のマスタークロックから導かれる、上記(11)に記載の分散システム。
【００６４】
（１６）分散システムであって、第１通信リンク（１１０）と第２通信リンク（１１２）の間の通信を可能にする通信装置（１１４）と、上記第２通信リンク（１１２）を通して遅延パケット（１３６）およびフォローアップ・パケット（１３８）を転送するスレーブノードであって、該フォローアップ・パケット（１３８）は、該遅延パケット（１３６）が転送されたときのスレーブノード内のローカル時間を示すタイムスタンプ（１４０）を含む、スレーブノードと、上記通信装置（１１４）を通して、上記第１通信リンク（１１０）を通して、上記遅延パケット（１３６）および上記フォローアップ・パケット（１３８）を受け取り、該遅延パケット（１３６）が受け取られるときにマスターノード内のローカルクロックから時間値を取得し、上記タイムスタンプ（１４０）および該時間値を使用して上記スレーブノードから該マスターノードへの遅延パケット（１３６）の転送の際の見掛けの遅延（１４４）を求め、較正パケット（１４２）内の該見掛けの遅延（１４４）を該スレーブノードに転送するマスターノードであって、該スレーブノードは、該見掛けの遅延（１４４）を使用して該マスターノードと該スレーブノードとの間のタイミングデータ・パケット（１３０）の転送の際の遅延を求める、マスターノードと、を備える分散システム。
【００６５】
（１７）上記スレーブノードは、該スレーブノードから上記マスターノードへの遅延パケット(136)の転送の際の見掛けの遅延(144)、および該マスターノードから該スレーブノードへのタイミングデータ・パケットの転送の際の見掛けの遅延(144)の平均を計算することによって遅延を求める、上記(16)に記載の分散システム。
【００６６】
（１８）上記スレーブノードは、上記タイミングデータ・パケット(130)を受け取り、該タイミングデータ・パケット(130)が受け取られたとき該スレーブノード内のローカルクロックから第２時間値を取得し、該タイミングデータ・パケット(130)が転送されたときの該マスターノード内のローカル時間を示す第２タイムスタンプを含む該マスターノードからの該タイミングデータ・パケット(130)に対応したフォローアップ・パケット(138)を受け取り、該第２タイムスタンプおよび該第２時間値を使用して該マスターノードから該スレーブノードへの該タイミングデータ・パケット(130)の転送の際の見掛けの遅延(144)を計算することによって、該マスターノードから該スレーブノードへの該タイミングデータ・パケット(130)の転送の際の見掛けの遅延(144)を求める、上記(17)に記載の分散システム。
【００６７】
（１９）上記遅延パケット(136)は、該遅延パケット(136)を示すフラグをもつタイミングデータ・パケットであり、上記第１および上記第２通信リンク(110-112)に結合される１組の付加のノードは、該フラグをもつタイミングデータ・パケットをマスターおよびスレーブクロックの選択のために使用しないようにする、上記(16)に記載の分散システム。
【００６８】
（２０）上記通信装置（１１４）は、該通信装置（１１４）に関連するジッターによって引き起こされる上記マスターノード内のローカルクロックと上記スレーブノード内のローカルクロックとの間の同期誤差を求めるための手段を備える、上記（１６）に記載の分散システム。
【００６９】
（２１）上記通信装置（１１４）はさらに、上記第１および上記第２通信リンク（１１０−１１２）を通して、上記マスターノードおよび上記スレーブノードに対し上記同期誤差を伝えるための手段を含む、上記（２０）に記載の分散システム。
【００７０】
【発明の効果】
本発明によれば、分散制御システムにおいて、それぞれのノードは、クロック同期のためどれがマスタークロックであり、どれがスレーブクロックであるかを自動的に判断し、タイミングの高精度な制御を図ることができる。
【図面の簡単な説明】
【図１】クロック同期に関して使用されるマスターおよびスレーブクロックの自動選択のための技法を具体化する分散システムを示す図。
【図２】複数のノードのうちどれが分散システムのマスタークロックとして機能するかを判断するための方法の一実施例を示す図。
【図３】境界ノードに結合されるサブネットを含む分散システムを示す図。
【図４】一対のノード間のタイミングデータ・パケットの転送に関連する遅延を求めるための構成を示す図。
【図５】通信装置内に生じるジッターの量を求め、報告するための機構を含む通信装置を示す図。
【符号の説明】
１０            分散制御システム
２０,２２,２４    ノード
３０,３２,３４    ローカルクロック
４０,４２,４６    ローカルクロック情報
５０            タイミングデータ・パケット
５２            マスタークロック情報
【図１】
0004227708.tif 000002
【図２】
0004227708.tif 000003
【図３】
0004227708.tif 000004
【図４】
0004227708.tif 000005
【図５】
0004227708.tif 000006