(57)【要約】【課題】正確かつ効率的に時刻同期することが可能な時刻同期システムを提供する。【解決手段】複数のマスタノードと、ローカルマスタクロックと時刻同期することによって、ローカルスレーブクロックに対する補正を実行するように構成されたスレーブノードとを備え、第１のマスタノードは、所定の周期で、ソースクロックノードからのタイミング同期信号と同期することによって、第１のローカルマスタクロックに対する補正を実行し、ソースクロックを基準に、第２のローカルマスタクロックが、第１のローカルマスタクロックよりも誤差が大きい場合、第２のマスタノードは、第１のローカルマスタクロックと時刻同期することによって第１の補正を実行し、第１のローカルマスタクロックを基準に、第２のローカルマスタクロックの誤差が所定の範囲内にあることを条件に、ソースクロックノードからのタイミング同期信号と同期することによって第２の補正を実行する。【選択図】図６
2018037885.tif 000002
【特許請求の範囲】
【請求項１】
時刻同期システムであって、
複数のマスタノードと、
前記複数のマスタノードのいずれかのローカルマスタクロックと時刻同期することによって、ローカルスレーブクロックに対する補正を実行するように構成されたスレーブノードと
を備え、
前記複数のマスタノードのうちの第１のマスタノードは、所定の周期で、クロックドメインで定められたソースクロックを有するソースクロックノードからのタイミング同期信号と同期することによって、前記第１のマスタノードが有する第１のローカルマスタクロックに対する補正を実行するように構成され、
前記ソースクロックを基準に、前記複数のマスタノードのうちの第２のマスタノードが有する第２のローカルマスタクロックが、前記第１のローカルマスタクロックよりも誤差が大きい場合、前記第２のマスタノードは、
前記第１のローカルマスタクロックと時刻同期することによって、前記第２のローカルマスタクロックに対する第１の補正を実行し、
前記第１のローカルマスタクロックを基準に、前記第１の補正が実行された前記第２のローカルマスタクロックの誤差が所定の範囲内にあることを条件に、前記ソースクロックノードからのタイミング同期信号と同期することによって、前記第２のローカルマスタクロックに対する第２の補正を実行する
ように構成されている
ことを特徴とする時刻同期システム。
【請求項２】
前記第１のローカルマスタクロックを基準に、前記第２の補正が実行された前記第２のローカルマスタクロックの誤差が所定の範囲内にあることを条件に、前記スレーブノードは、前記第１のローカルマスタクロックまたは前記第２のローカルマスタクロックのいずれかと時刻同期するかを判定するようにさらに構成されている、ことを特徴とする請求項１に記載の時刻同期システム。
【請求項３】
前記第１のローカルマスタクロックを基準に、前記第２の補正が実行された前記第２のローカルマスタクロックの誤差が所定の範囲内にあることを条件に、前記第２のマスタノードは、所定の周期で、前記ソースクロックノードからのタイミング同期信号と同期することによって、前記第２のローカルマスタクロックに対する第３の補正を実行するようにさらに構成されている、ことを特徴とする請求項１または２に記載の時刻同期システム。
【請求項４】
前記第２のマスタノードは、前記第１の補正を実行する前に、前記クロックドメイン外部のノードからのクロック情報と時刻同期することによって、前記第２のローカルマスタクロックに対する第４の補正を実行するようにさらに構成されている、ことを特徴とする請求項１乃至３のいずれか一項に記載の時刻同期システム。
【請求項５】
前記第２のマスタノードは、
前記第１の補正を実行する前に、
前記第１のマスタノードとメッセージを交換することによって、前記第１のマスタノードの存在を確認し、
前記第１のマスタノードの存在を確認した場合、前記第１の補正を実行する
ようにさらに構成されている、ことを特徴とする請求項１乃至４のいずれか一項に記載の時刻同期システム。
【請求項６】
前記第２のマスタノードは、
前記第１の補正を実行する前に、
前記第１のマスタノードとメッセージを交換することによって、前記第１のマスタノードの存在を確認し、
前記第１のマスタノードの存在を確認できなかった場合、前記ソースクロックノードからのタイミング同期信号と同期することによって、前記第２のローカルマスタクロックに対する第５の補正を実行する
ようにさらに構成されている、ことを特徴とする請求項１乃至５のいずれか一項に記載の時刻同期システム。
【請求項７】
前記第２のマスタノードは、
前記第１の補正を実行する前に、
前記第１のマスタノードとメッセージを交換することによって、前記第１のマスタノードの存在を確認し、
前記第１のマスタノードの存在を確認できなかった場合、異常通知を送信する
ようにさらに構成されている、ことを特徴とする請求項１乃至５のいずれか一項に記載の時刻同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻同期システムに関し、特に、ＰＴＰ（Precision Time Protocol）などの時刻同期プロトコルを利用しつつ、ブラックバースト（ＢＢ）信号などの外部同期信号と同期して、映像信号や音声信号の配信、中継、および／または再生を行う映像伝送システムおよび／または映像再生システム全体で時刻同期するシステムに関する。
【背景技術】
【０００２】
（基幹）放送局などから配信される映像信号を中継局などの受信機にマルチキャストで伝送する映像伝送システムが知られている。このような映像伝送システムでは、システムを構成する送信機／受信機など、複数の装置を設けることによって冗長化を図り、耐障害性を高めている。それらの装置の各々は、外部からの基準信号に基づいて時刻同期を行うことによって、映像信号時のタイミングを調整している。
【０００３】
上述した時刻同期の方法として、（１）マスタノードからの時刻情報（タイムスタンプ）を、スレーブノードに配信して、時刻の同期を行う方法（時計の針を合わせる方法）と、（２）ソースクロックノードから、例えば、１秒毎の周期信号である同期信号を配信して、スレーブクロックをこの周期信号に同期させる方法（時計の振り子の周期を合わせる）、とが存在する。
【０００４】
（１）の方法として、近年では、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１５８８  ＰＴＰに代表される時刻同期プロトコルにより、イーサネット（登録商標）およびＩＰネットワークなどのネットワークを介して、精度の高い時刻同期が可能になっている。ＩＥＥＥ  １５８８  ＰＴＰは、パケットベースのネットワークを介して、高精度のクロック（例えば、ナノ秒オーダーの精度）を分配するプロトコルであり、ＩＥＥＥ  １５８８−２００８（ＩＥＥＥ  １５８８ｖ２と称される）が最新バージョンである。
【０００５】
業界団体ＳＭＰＴＥ（Society of Motion Picture and Television Engineers）では、規格ＳＴ２０５９により、ＰＴＰに基づく時刻同期を前提としたクロック管理および信号生成タイミングとの関係を定義することで、グローバルクロックとして国際原子時（ＴＡＩ）を使用して、その基点時刻（エポック）からの経過時間に基づく映像タイミング生成を規定している。具体的には、グローバルな時間軸上で起点となるクロックと、映像信号の１画面（フレーム）の生成周期との関係を定めている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１８８１５９号公報
【特許文献２】特開２０１５−１８８１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩＥＥＥ  １５８８ｖ２  ＰＴＰでは、クロック分配のために階層型マスタ−スレーブ構造が採用されている。階層型マスタ−スレーブ構造は、マスタノードとスレーブノードから構成される。マスタノード（自身のローカルクロックを外部に発信する基点となるノード）は、グランドマスタクロック（ＧＭＣ：Grand Master Clock）とも称され、上述した（１）の方法によってスレーブノードに時刻情報を配信する。マスタノード自身は、グローバルなソースクロック（ＧＰＳや原子時計など）から生成される１秒間に１回（１ＰＰＳ）の基準となる信号を外部同期信号として使用する場合、上述した（２）の方法によって自身のローカルクロックを補正する。
【０００８】
スレーブノードは、オーディナリクロック（ＯＣ：Ordinary Clock）とも称され、１つまたは複数のマスタノードの中から、規定のアルゴリズムに従って最も精度が高いとみなされるベストマスタクロック（ＢＭＣ：Best Master Clock）を判定し、ＢＭＣと時刻同期する（上述した方法（１）によって）。つまり、スレーブノードは、ＢＭＣから配信される時刻情報を基準に、自身のローカルクロックを補正する。
【０００９】
方法（１）によってＢＭＣと時刻同期をしつつ、ＢＭＣと接続していないネットワークに対しては、補正したローカルクロックを伝播させるノードは境界クロック（ＢＣ：Boundary Clock）と称される。
【００１０】
スレーブノードおよびＢＣは、マスタノードのクロックを基準に時刻同期を実行するだけなので、マスタノードのクロック精度が劣る場合、自身のローカルクロックを正確に補正することができない。
【００１１】
また、スレーブノードまたはＢＣが、より精度の高いマスタノードを選択して、ＢＭＣを変更するとき、変更前後でマスタノードのローカルクロックの時刻が異なると、時刻同期によって、スレーブノードおよびＢＣでローカルクロックが補正された結果、時刻の飛びが生じたり、時計の進みが一時的に早くなったり（あるいは遅くなったり）する可能性がある。これは、周期信号の再生で、周期精度を劣化させる原因となる。
【００１２】
従って、上述した技術は、マスタノードを複数備えた冗長構成を採用する場合も、複数のマスタノード間で定められたクロックを使用することが前提である。つまり、複数のマスタノード同士は、同一のソースクロック（例えば、ＧＰＳや原子時計など）によって、完全に等しい周波数によって信号を生成し、同一の時計を有することが要求される。
【００１３】
従来のマスタノードは、１秒間に１回（１ＰＰＳ）の信号、およびその時点でのグローバルなソースクロック（ＧＰＳや原子時計など）を使用することによって、ローカルクロックを補正する。このため、ＢＢ信号が独自のソースクロックノードによって生成され、そのＢＢ信号がグローバルなソースクロックと時刻系において異なる場合、クロックの補正ができず、かつそのＢＢ信号に基づくタイミング生成もすることができない。例えば、ＢＢ信号などの独自のソースクロックが、グローバルなソースクロックと比較して、１ＰＰＭの精度で異なる周波数を有している場合、１／５０周期の映像フレームでは、２０，０００秒、すなわち、約５時間半で１フレーム分の時刻のずれが生じることになる。
【００１４】
上述した映像伝送システムでは、マスタノードが、外部同期信号としてＢＢ信号などを受信し、そのＢＢ信号をシステム全体のソースクロックとして使用しているという事情がある。一方で、このような映像伝送システムでは、全てのノードが必ずしもソースクロックノードからソースクロックを受信することができるとは限らない。かかる事情の下、システム全体で、外部同期信号と同期することによって時刻同期を実行する必要がある。
【００１５】
グローバルなソースクロックでは、任意の１ＰＰＳ信号に対応する時刻を「Time of Day」 として管理する。このため、グローバルなソースクロックを使用するマスタノードでは、任意の時刻において、上述の方法（２）によって、ローカルクロックの補正を行うことが可能である。一方で、独自のソースクロックによって作成されたＢＢ信号は、グローバルな時刻との対応関係が不明であるため、方法（２）による補正を開始する時点で設定されるべきローカルクロックの期待値が一意に決定されない。 
【００１６】
図１を参照して、ＩＥＥＥ  １５８８ｖ２  ＰＴＰを使用した時刻同期システムにおいて、冗長化した複数のマスタノードのうちの１つに障害が発生し、マスタノードとして機能しなくなるケースを考える。図１（ａ）に示す時刻同期システムには、２つのマスタノードＭＡおよびＭＢと、２つのスレーブノードＳＡおよびＳＢが存在する。スレーブノードＳＡおよびＳＢは、マスタノードＭＡおよびＭＢの双方に接続されている（簡易化を目的として、双方の中間に存在するスイッチなどの要素は省略する）。マスタノードＭＡは、ポートＡＰ１およびＡＰ２を有し、ポートＡＰ１を通じてマスタノードＭＢと通信し、ポートＡＰ２を通じてスレーブノードＳＡおよびＳＢと通信する。同じく、マスタノードＭＢは、ポートＢＰ１およびＢＰ２を有し、ポートＢＰ１を通じてマスタノードＭＡと通信し、ポートＢＰ２を通じてスレーブノードＳＡおよびＳＢと通信する。
【００１７】
マスタノードＭＡおよびＭＢは、厳密に同時刻に起動されることによって等しいローカルクロックを有することができ、その後は同一の同期信号によって、そのローカルクロックを補正・維持しているとする。スレーブノードＳＡおよびＳＢは、マスタノードＭＡおよびＭＢのうちのいずれかが自身のＢＭＣであると判定し、そのＢＭＣと時刻同期する。
【００１８】
例えば、マスタノードＭＢに障害が発生すると、マスタノードＭＢは、時刻同期システムから一旦、切り離される。障害が復旧し、マスタノードＭＢが時刻同期システムに復帰する際に、マスタノードＭＢのローカルクロックは、時刻同期システムのソースクロックと整合していないことから、マスタノードＭＡと異なる時刻を有する可能性がある。
【００１９】
上述したように、ＢＢ信号などの外部同期信号に基づいてクロックを補正している事情の下では、ＢＢ信号などはタイミング同期信号にすぎない。よって、ソースクロックノードがソースクロックとして、グローバルなクロックに正確に同期したＢＢ信号を生成している場合を除き、マスタノードＭＢのローカルクロックをマスタノードＭＡのローカルクロックと正確に一致させ、補正・再現させることができないという問題がある。
【００２０】
ここで、ＩＥＥＥ  １５８８ｖ２  ＰＴＰでは、マスタノードについての自身の状態を規定しているが、その状態遷移についてはそれぞれのノードが自律的に行ってよい。このことから、例えば、マスタノードＭＢが時刻同期システムに復帰した時点で、上述したマスタノードＭＢのポートＢＰ２の状態がＭＡＳＴＥＲ状態に遷移すると、スレーブノードＳＡおよびＳＢのいずれかが、マスタノードＭＢと時刻同期を実行してしまう可能性がある。このようなケースでは、スレーブノードのローカルクロック精度が保証されない。時刻の異なるマスタノードに時刻同期を行うと、それまでの時刻が補正により非連続に飛んだり、急激に変化したりする可能性がある。
【００２１】
マスタノードＭＢのローカルクロックをマスタノードＭＡのローカルクロックと一致させ、かつ、その情報をスレーブノードに伝達させるには、図１（ｂ）に示すように、マスタノードＭＢを前述したＢＣノードとして再起動させることが一つの方法として考えられる。この場合、ＢＣノードとなったＭＢは、まず、マスタノードＭＡとＳＬＡＶＥ状態であるポートＢＰ１を通じて、方法（１）によって時刻同期を行い、その時刻情報をＭＡＳＴＥＲ状態であるポートＢＰ２を通じてスレーブノードに伝達する。これにより、マスタノードＭＡとスレーブノードとの間の通信路が故障しても、スレーブノードはＢＣノードＭＢを経由して方法（１）による時刻同期を継続することができる。
【００２２】
しかしながら、この方法では、マスタノードＭＡが、唯一のグランドマスタクロックになるため、マスタノードＭＡが故障してしまった場合、方法（２）により時刻を補正するノードがシステムに存在しなくなり、システム動作の継続が不可能になってしまう。
【００２３】
特許文献１は、スレーブノードによる時刻同期を開示している。特許文献１に係る時刻同期方法では、スレーブノードが、スレーブノードにおける時刻をマスタノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスタノードの各々と送受信し、マスタ間の誤差を統計的な処理で修正し精度の高い時刻情報を基づいて自装置の時刻を補正する。この構成によって、中継装置内のキューイング遅延等の影響により複数のマスタノードとスレーブノードとの間の遅延時間の誤差によりスレーブノードのローカルクロックにずれが生じてしまうことを防止している。しかしながら、特許文献１に係る時刻同期方法は、複数のマスタノードが存在することを前提としており、複数のマスタノードの正確な同期を保証して上述したような課題を解決するものではない。
【００２４】
特許文献２は、スレーブノードによる時刻同期方法を開示している。特許文献２に係る時刻同期方法では、スレーブノードが、自装置における時刻をマスタノードにおける時刻に同期させるための処理である時刻同期処理を自装置との間で行う複数のマスタノードのいずれかのマスタノードの時刻源の精度の劣化を示す条件が満たされた場合に、条件が満たされたマスタノードを除く他のマスタノードを自装置が同期するマスタノードに決定する。この構成によって、複数のマスタノードのいずれかのマスタノードの時刻源の精度が劣化した場合に、スレーブノードは複数のマスタノードのうち、時刻源の精度が劣化したマスタノードに同期してしまうことを防止している。しかしながら、特許文献２に係る時刻同期方法でも、複数のマスタノードが存在することを前提としており、複数のマスタノードの正確な同期を保証するものではない。
【００２５】
本発明は、このような問題に鑑みてなされたものであり、例えば、複数のマスタノードのうちの１つのマスタノード（セカンダリマスタノード）のクロック精度が十分でない場合に、プライマリマスタノードと時刻同期し、次いで、外部同期信号と同期することによって、システム全体が正確かつ効率的に時刻同期することが可能な複数のマスタノードを有する時刻同期システムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
上記の課題を解決するために、本発明に係る時刻同期システムは、時刻同期システムであって、複数のマスタノードと、前記複数のマスタノードのいずれかのローカルマスタクロックと時刻同期することによって、ローカルスレーブクロックに対する補正を実行するように構成されたスレーブノードとを備え、前記複数のマスタノードのうちの第１のマスタノードは、所定の周期で、クロックドメインで定められたソースクロックを有するソースクロックノードからのタイミング同期信号と同期することによって、前記第１のマスタノードが有する第１のローカルマスタクロックに対する補正を実行するように構成され、前記ソースクロックを基準に、前記複数のマスタノードのうちの第２のマスタノードが有する第２のローカルマスタクロックが、前記第１のローカルマスタクロックよりも誤差が大きい場合、前記第２のマスタノードは、前記第１のローカルマスタクロックと時刻同期することによって、前記第２のローカルマスタクロックに対する第１の補正を実行し、前記第１のローカルマスタクロックを基準に、前記第１の補正が実行された前記第２のローカルマスタクロックの誤差が所定の範囲内にあることを条件に、前記ソースクロックノードからのタイミング同期信号と同期することによって、前記第２のローカルマスタクロックに対する第２の補正を実行するように構成されている、ことを特徴とする。
【発明の効果】
【００２７】
本発明に係る時刻同期システムによれば、独自のソースクロックノードによって生成された同期信号に対して、正確に時刻同期したマスタノードの逐次追加や交換が可能になり、複数のマスタノードを備えたシステムを正確に時刻同期させることができる。これにより、マスタノードの故障によってシステムの動作が継続不可能になる時間（ダウンタイム）をゼロにすることができる。
【図面の簡単な説明】
【００２８】
【図１】従来技術に従った、時刻同期システムの簡易な構成の例を示す図である。
【図２】本発明の一実施形態に係る時刻同期システムの全体構成の例を示す図である。
【図３】本発明の一実施形態に係る時刻同期システムが実行する、ＰＴＰによる時刻同期方法の処理を示す図である。
【図４】本発明の一実施形態に係る時刻同期システムを構成するマスタノードの詳細な構成の例を示す図である。
【図５】本発明の一実施形態に係る時刻同期システムを構成するスレーブノードの詳細な構成の例を示す図である。
【図６】本発明の一実施形態に従って、セカンダリマスタノートとして機能するマスタノードが実行する処理の例を示すフローチャートである。
【発明を実施するための形態】
【００２９】
＜用語の定義＞
添付図面を参照して、本発明に係る時刻同期システムを説明する。本実施形態に係る時刻同期システムでは、システム全体が同一のクロックに同期する必要があるが、その基準となるクロックを「ソースクロック」と称する。上述したソースクロックが同期される必要がある範囲を「クロックドメイン」と称し、クロックドメインは同一ネットワーク内の範囲であってもよく、または複数のサブネットワークにまたがってもよい。ソースクロックの基になる外部同期信号を送信するノードを「ソースクロックノード」と称し、クロックドメイン内にあってもよく、またはクロックドメインの外部にあってもよい。
【００３０】
また、本実施形態では、複数のマスタノードのうち、ソースクロックノードからの外部同期信号と同期し、マスタノードの中で基準クロックを有するノードをプライマリマスタノードと称し、その他のマスタノードをセカンダリマスタノードと称する。
【００３１】
以下の実施形態では、本発明に係る時刻同期システムは、映像伝送システムに適用されるが、そのような例に限定されない。本発明に係る時刻同期システムを構成するマスタノードおよびスレーブノードは、映像伝送システムを構成する送信機、受信機またはゲートウェイなどに実装される。
【００３２】
また、本実施形態では、ＩＥＥＥ  １５８８ｖ２  ＰＴＰ（以下、「ＰＴＰ」）を使用することによって時刻同期を行う例が説明されるが、使用するベースとなる時刻同期方法は、ＩＥＥＥ  １５８８ｖ２  ＰＴＰに限定されない。例えば、ソースクロックからクロックを受信するマスタノードが存在し、そのマスタノードと時刻同期するスレーブノードが存在するような任意の時刻同期方法を使用してもよい。
【００３３】
図２は、本発明の一実施形態に係る時刻同期システムの全体構成の例を示している。本発明に係る時刻同期システムは、複数のマスタノード（マスタノード１Ａ、マスタノード１Ｂ、・・・マスタノード１Ｎ（Ｎは任意の数））、複数のスレーブノード（スレーブノード２Ａ、スレーブノード２Ｂ、・・・スレーブノード２Ｎ（Ｎは任意の数））、および複数のスイッチ（スイッチ３Ａ、スイッチ３Ｂ、・・・スイッチ３Ｎ（Ｎは任意の数））を備えている。この時刻同期システムは、マスタノードが上位層、スレーブノードが下位層に位置する階層構造を形成する。
【００３４】
マスタノード１Ａ乃至１Ｎ（以下、「マスタノード１」と総称する）は、ＰＴＰによる時刻同期を行うためのグランドマスタクロックとして機能する。機器の冗長化を図るために複数のマスタノード１が備えられ、映像伝送システムでは、例えば、ゲートウェイなどにおいて実装される。
【００３５】
複数のマスタノード１Ａ乃至１Ｎのうちの任意の１つがプライマリマスタノードとして機能し、他の１つまたは複数がセカンダリマスタノードとして機能する。プライマリマスタノードは、外部のソースクロックノードからの外部同期信号と同期し（つまり、時計の振り子の周期を合わせる）、セカンダリマスタノードのそれぞれと同一の周波数を有するタイミング同期信号で同期する。つまり、プライマリマスタノードは、そのクロックドメイン内で、基準クロックとして機能する。マスタノードの各々がプライマリマスタノードまたはセカンダリマスタノードとして機能するかは、予め（静的に）定義されてもよい。
【００３６】
複数のマスタノード１のそれぞれは、相互にＡｎｎｏｕｎｃｅメッセージなどを送受信することによって、自身のクロック精度と他方のマスタノードのクロック精度とを比較し、自身がプライマリマスタノードとして機能し続けるべきか（自身がプライマリマスタノードとして機能している場合）、自身が新たなプライマリマスタノードとして機能すべきか（自身がセカンダリマスタノードとして機能している場合）を判定する。つまり、複数のマスタノード１の中で、プライマリマスタノードとして機能するマスタノード１は動的に変化する。この機能の実現には、ＰＴＰで規定されているマスタノード間のＢＭＣアルゴリズムに従ってよい。
【００３７】
マスタノード１は、ネットワーク４を介して外部のソースクロックノード５から外部同期信号を受信し、その外部同期信号と同期することによって自身のローカルクロックを補正する。この外部同期信号は、ＢＢ信号、１ＰＰＳ信号、またはＧＰＳ信号などであってもよいが、複数のマスタノード１は、必ず同一の周波数または定数比の周波数を有する外部同期信号を受信する必要がある。ある実施形態では、ネットワーク４は、ソースクロックノード５から各マスタノード１への遅延時間を等しくした等長配線経路を有するツリー状のネットワークで構成される。また、ある実施形態では、ネットワーク４は、各マスタノード１に対してそれぞれ固有の遅延を有する不均質な配線経路を有するネットワークで構成される。
【００３８】
スレーブノード２Ａ乃至２Ｎ（以下、「スレーブノード２」）と総称する）は、スイッチ３Ａ乃至３Ｎ（以下、「スイッチ３」と総称する）を介して、マスタノード１と時刻同期を行う（つまり、マスタノードから配信される時刻情報に基づいて、時計の針を合わせる）。スレーブノード２は、映像伝送システムでは、送信機または受信機などにおいて実装される。それらの機器間で同期した信号を使用するために、スレーブノード２は同期信号を出力する。この同期信号は内部のクロックから再生されるため、スレーブノード２はそれぞれローカルクロックを合わせる必要がある。このことから、スレーブノード２は、ＰＴＰで規定されているＢＭＣアルゴリズムに従って、自身のＢＭＣを判定し、そのＢＭＣとの間でＰＴＰメッセージを交換することによって時刻同期を実行する。
【００３９】
なお、本実施形態に係る時刻同期システムは、複数のスレーブノード２および複数のスイッチ３を備えているが、スレーブノード２およびスイッチ３はそれぞれ１つ以上であればよい。また、本実施形態では、マスタノード１およびスレーブノード２は、同一のネットワーク（サブネットワーク）内に存在するが、マスタノード１およびスレーブノード２は異なるサブネットワークに存在し、相互に接続されてもよい（ネットワーク４またはその他のネットワークを介して）。
【００４０】
なお、上述したように、マスタノード１および／またはスレーブノードが異なるサブネットワークに存在する場合、イーサネットまたはＩＰネットワークを介してＳｙｎｃメッセージなどの制御情報が送信されるが、それらのネットワークに限定されず、別の形態のネットワークが使用されてもよい。また、上述した制御情報を、専用のネットワーク（専用線）を介して送信してもよく、または映像信号および音声信号などを伝送するネットワークと同一のネットワークを介して送受信してもよい。
【００４１】
次に、図３を参照して、本発明の一実施形態に係る時刻同期システムが実行する、ＰＴＰによる時刻同期方法の処理の例を説明する。ここで説明する時刻同期は、任意のスレーブノード２と、そのスレーブノード２によってＢＭＣであると判定されたマスタノード１との間で、以下に示すＰＴＰメッセージを交換することによって行われる。
【００４２】
図３に示すように、マスタノード１がスレーブノード２にＡｎｎｏｕｎｃｅメッセージを送信することによって、マスタノード１とスレーブノード２との関係が確立される（ステップＳ３０１）。Ａｎｎｏｕｎｃｅメッセージは、マスタノード１のＣｌｏｃｋ  Ｃｌａｓｓ情報およびＣｌｏｃｋ  Ａｃｃｕｒａｃｙ情報を含む。Ｃｌｏｃｋ  Ｃｌａｓｓ情報は、ソースクロックの品質を表しており、Ｃｌｏｃｋ  Ａｃｃｕｒａｃｙ情報は、時刻の精度を示しており、それぞれＰＴＰで規定されている。
【００４３】
マスタノード１の送信ポートがＭＡＳＴＥＲ状態にある場合、上述したＡｎｎｏｕｎｃｅメッセージが送信される。マスタノード１の送信ポートは、グランドマスタクロックとしての状態遷移に規定されている定常状態として、ＭＡＳＴＥＲ状態およびＰＡＳＳＩＶＥ状態のいずれかを取りうるが、本発明による実施形態では、規定上では遷移し得ないＳＬＡＶＥ状態も取りうる。その状態遷移については後述する。
【００４４】
次に、マスタノード１がスレーブノード２にＳｙｎｃメッセージを送信する（ステップＳ３０２）。Ｓｙｎｃメッセージには、メッセージの送信時刻（ｔ１）が含まれ、スレーブノード２が受信すると到着時刻（ｔ２）が記録される。
【００４５】
次に、マスタノード１がスレーブノード２にＦｏｌｌｏｗ＿Ｕｐメッセージを送信する（ステップＳ３０３）。ここで、Ｓｙｎｃメッセージの送信において、メッセージの送信時刻を事前に把握するのは困難であるので、Ｓｙｎｃメッセージではｔ１の予測値が記録され、Ｆｏｌｌｏｗ＿Ｕｐメッセージでｔ１の実際の値が記録される。これによって誤差が補償される。
【００４６】
スレーブノード２がマスタノード１にＤｅｌａｙ＿Ｒｅｑメッセージを送信する（ステップＳ３０４）。Ｄｅｌａｙ＿Ｒｅｑメッセージには、メッセージの送信時刻の実際の値（ｔ３）および到着時刻（ｔ４）が記録される。
【００４７】
次に、マスタノード１がスレーブノード２にＤｅｌａｙ＿Ｒｅｓｐメッセージを送信する（ステップＳ３０５）。Ｄｅｌａｙ＿Ｒｅｓｐメッセージには、Ｄｅｌａｙ＿Ｒｅｑメッセージの実際の到着時刻（ｔ４）が記録される。
【００４８】
スレーブノード２は、ｔ１、ｔ２、ｔ３、およびｔ４を使用して、往復の遅延時間とマスタノード１のクロックとスレーブノード２とのオフセット値（マスタノード１のクロックとスレーブノード２のクロックとの間の差）を算出する。片道の遅延時間が往復の遅延時間の半分であると仮定すると、スレーブノード２のオフセット値は以下の式によって算出される。
【００４９】
ＰＴＰスレーブのクロックのオフセット値＝（ｔ２−ｔ１）−（片道の遅延時間）
式１
このような処理を１秒間に複数回繰り返すことによって、２つのクロックの同期が維持される。実際には、ＰＴＰではさらなる補正などの処理が行われ、より誤差精度の高い時刻同期が実現されるが、本明細書では、これ以上の詳細な説明は行わない。また、遅延の差を算出する方法として、上記以外にもピア遅延メカニズムと称される方法があるが、本発明の実施形態としてはどちらを使用してもよいので、本明細書ではこれ以上の説明は行わない。
【００５０】
次に、図４を参照して、本発明の一実施形態に係る時刻同期システムを構成するマスタノード１の詳細な構成の例を説明する。
【００５１】
図４に示すように、マスタノード１は、通信部１１、制御部１２、および記憶部１３を備え、それらの要素がノード内の内部バスを介してそれぞれ結合されている。マスタノード１は、プライマリマスタノードおよびセカンダリマスタノードのいずれかとして機能する。
【００５２】
通信部１１は、ネットワーク４を介して外部のソースクロックノード５から外部同期信号を受信し、スレーブノード２との間でＰＴＰメッセージを送受信するネットワークインタフェースである。ネットワーク４はスイッチ３を経由しない専用のネットワークとして実現されてもよい。
【００５３】
制御部１２は、ＣＰＵ（Central Processing Unit）であり、記憶部１３に記憶された所定のプログラムを実行することによって、制御・演算を実行し、マスタ同期部１２Ａ、外部信号同期部１２Ｂ、状態判定部１２Ｃ、およびプライマリマスタ判定部１２Ｄが機能する。なお、制御部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）、またはＦＰＧＡ（Field Programmable Gate Array）などのハードウェアを使用して実現されてもよい。
【００５４】
マスタ同期部１２Ａは、プライマリマスタノードとして機能するマスタノード１から基準クロック（タイムスタンプ）を受信し、その基準クロックに基づいて、自身のローカルクロックを補正する。マスタ同期部１２Ａによるローカルクロックの補正は、セカンダリマスタノードとして機能するマスタノード１のみによって実行され、プライマリノードとして機能するマスタノード１によっては実行されない。つまり、複数のマスタノードのうち、プライマリマスタノードとして機能する１つのマスタノード１の基準クロックに基づいて、その他のセカンダリマスタとして機能する１つまたは複数のマスタノード１が自身のローカルクロックを補正する。
【００５５】
セカンダリマスタノードとして機能するマスタノード１は、プライマリマスタノードからの基準クロックの受信を前提とし、通信部１１においてポートの状態をＳＬＡＶＥ状態に遷移させる（ＰＴＰの規格上では、この状態でポートの遷移は規定されていない）。これによって、セカンダリマスタノードとして機能するマスタノード１のローカルクロックの精度が定まらないうちに、スレーブノード２がマスタノード１のローカルクロックと時刻同期することを回避することができる。
【００５６】
マスタ同期部１２Ａによってローカルクロックを補正した結果、補正されたクロックが予め定めされた閾値以内になると、後述する外部信号同期部１２Ｂによってローカルクロックが補正される。補正クロックが予め定めされた閾値以内にあるか否かの判定は、プライマリマスタノードとして機能するマスタノード１から基準クロックを受信し、その基準クロックと補正クロックとを比較することによって行われる。このとき、ネットワーク４の構成に従って、それぞれのマスタノード１に対する外部同期信号の遅延時間が決定される。従って、ある実施形態では、それぞれのマスタノード１において、外部同期信号の固有の遅延時間によるローカルクロックのばらつきが生じないよう、基準となる遅延時間と固有の遅延時間との差をローカルクロックに加算して補正を行う。
【００５７】
外部信号同期部１２Ｂは、通信部１１によってソースクロックノードから受信した外部同期信号と同期することによって、自身のローカルクロックを補正する。つまり、複数のマスタノード１のそれぞれは、外部同期信号と同期することによって、ソースクロックに基づいて自身のローカルクロックを補正する。この時、ローカルクロックと外部同期信号の周波数ｆとの間の関係式を、表１に示すように定義する。
【００５８】
【表１】
2018037885.tif 000003
【００５９】
表１に示す関係式を使用して、同期信号の１周期が開始されるときに、ローカルクロックの時刻が、Ｔ０＋ｎ／ｆと一致するようにローカルクロックを補正する。この関係式の情報（Ｔ０やｆの変数値）は記憶部１３に保存してよい。
【００６０】
なお、本実施形態では、例えば、ソースクロックノードからのＢＢ信号などのタイミング同期信号に基づいてローカルクロックが補正されるが、そのような形式に限定されない。例えば、複数のマスタノード１のそれぞれが、同一の周波数または定数比の周波数を有する任意のタイミング同期信号と同期することによってローカルクロックを補正してもよい。これは、表１の関係式に示した周波数ｆに代わり、周波数ｆと定数比を有する周期ｆ´を使用しても関係式を維持できるためである。
【００６１】
前述したように、このとき、ネットワーク４の構成に従って、それぞれのマスタノード１に対する同期信号のタイミングの固有差が生じることがある。そこで、ある実施形態では、それぞれのマスタノード１において、外部同期信号の固有の遅延時間によるローカルクロックのばらつきが生じないよう、基準となる遅延時間と固有の遅延時間との差ｄによって、表１の条件３に示すように入力同期信号の遅延差ｄをローカルクロックに加算して補正を行う。
【００６２】
状態判定部１２Ｃは、外部信号同期部１２Ｂに基づいてローカルクロックを補正した結果、補正クロックが予め定めされた閾値以内になるか否かを判定する。そして、補正された時刻が予め定めされた閾値以内になると、通信部１１によって、自身のポートの状態をＳＬＡＶＥ状態から遷移し、グランドマスタクロックとして通常の動作状態に変更する（本発明に固有の状態遷移を実行する）。この状態情報は、例えば、記憶部１３に記憶されてもよい。補正クロックが予め定めされた閾値以内にあるか否かの判定は、補正クロックから算出される同期信号の１周期の開始時刻と、実際に入力される第１の外部同期信号の１周期の開始時刻との差に基づいて行われる。
【００６３】
状態判定部１２Ｃによる状態判定および状態遷移は、セカンダリマスタノードとして機能するマスタノード１のみによって実行し、プライマリノードとして機能するマスタノード１によっては実行されない。セカンダリノードとして機能するマスタノード１は、例えば、電源投入時または障害復旧時に、伝送システムに組み込まれることになるが、組み込み時のクロック精度は高くない。このような状態で、セカンダリノードとして機能するマスタノード１は、プライマリノードの存在を前提として、システムへの組み込み時に初期状態としてポートをＳＬＡＶＥ状態に遷移させる。そして、状態判定部１２Ｃによって、状態がＳＬＡＶＥ状態から遷移し、グランドマスタクロックとしての動作を開始する。
【００６４】
プライマリマスタ判定部１２Ｄは、ポートの状態がＭＡＳＴＥＲ状態にある場合、自身がプライマリマスタノードとして機能し続けるべきか、また、ポートの状態がＰＡＳＳＩＶＥの場合は、自身が新たなプライマリマスタノードとして機能すべきかを判定する。この判定動作では、ＰＴＰでグランドマスタノードに規定されるＢＭＣアルゴリズムを使用してよい。
【００６５】
具体的には、通信部１１によって、他のマスタノード１が発信するＡｎｎｏｕｎｃｅメッセージが定期間隔で送受信され、つまり複数のマスタノード１の間でＡｎｎｏｕｎｃｅメッセージが交換される。そして、それぞれのマスタノード１のプライマリマスタ判定部１２Ｄが、記憶部１３に記憶され、表２に示すＢＭＣ選択基準に従って、プライマリマスタノードとして機能するべきか否かを判定する。なお、自身がプライマリマスタまたはセカンダリマスタとして機能すべきかの情報は、記憶部１３に記憶されてもよい。ＢＭＣ選択基準のうち、Ｃｌｏｃｋ  ＣｌａｓｓおよびＣｌｏｃｋ  Ａｃｃｕｒａｃｙなどは動的に更新され、記憶部２３に記憶された情報が一定間隔で更新される。
【００６６】
【表２】
2018037885.tif 000004
【００６７】
このように、初期状態にあるマスタノード１は、そのポートの状態がＳＬＡＶＥ状態に遷移しているので、上述したＡｎｎｏｕｎｃｅメッセージをスレーブノード２に送信することがない。つまり、スレーブノード２は、初期状態にある（自身のクロック精度がプライマリマスタと同期していないか、または精度が劣る状態にある）マスタノード１と時刻同期することがなく、マスタノード１とスレーブノード２との間で不要なメッセージが交換されることが防止される。
【００６８】
また、初期状態にあるマスタノード１は、他のマスタノード１にＡｎｎｏｕｎｃｅメッセージを送信することがないので、マスタノード１の間で不要なメッセージが交換されることも防止される。
【００６９】
一方で、マスタ同期部１２Ａおよび外部信号同期部１２Ｂによって補正されたクロックが、予め定められた閾値の所定の範囲内に入ると、グランドマスタクロックとして機能する（ポートの状態がＳＬＡＶＥ状態からＭＡＳＴＥＲ状態かＰＡＳＳＩＶＥ状態に遷移する）。後続の動作として、プライマリマスタとして機能するマスタノード１およびセカンダリマスタとして機能するマスタノード１のそれぞれは、外部同期信号と同期し、常にソースクロックに基づいて自身のローカルクロックを補正することになる。スレーブノード２は、ＢＭＣアルゴリズムによって複数のマスタノード１のうちのいずれかをＢＭＣとして判定し、判定したＢＭＣと時刻同期を実行する。
【００７０】
なお、マスタノード１は、ソースクロックノードから外部同期信号（ＢＢ信号などであり、「第１の外部同期信号」と称する）を受信する以外に、第１の外部同期信号と別の周波数を有する別の外部同期信号（「第２の外部同期信号」と称する）（または外部基準クロック）と同期することによって、自身のローカルクロックを補正してもよい。しかしながら、一度、マスタノード１として動作を開始させると、必ず、第１の外部同期信号との時刻同期を実行する必要がある。これは、第２の外部同期信号が第１の外部同期信号と周波数において一致している保証がなく、正確にローカルクロックを補正することができないからである。
【００７１】
なお、マスタノード１として動作を開始した後、第１の外部同期信号と定数比の周波数を有する外部同期信号であれば、その外部同期信号に基づいて、正確にローカルクロックを補正することができる。したがって、第１の外部同期信号とは、ソースクロックに対して定数比の周波数を有する外部同期信号をも含む。
【００７２】
次に、図５を参照して、本発明の一実施形態に係る時刻同期システムを構成するスレーブノード２の詳細な構成の例を説明する。
【００７３】
図５に示すように、スレーブノード２は、通信部２１、制御部２２、および記憶部２３を備え、それらの要素がノード内部のバスを介してそれぞれ結合されている。
【００７４】
通信部２１は、マスタノード１（ＢＭＣ）との間でＰＴＰメッセージを送受信するネットワークインタフェースである。
【００７５】
制御部２２は、ＣＰＵであり、記憶部２３に記憶された所定のプログラムを実行することによって、制御・演算を実行し、時刻同期部２２ＡおよびＢＭＣ判定部２２Ｂが機能する。なお、制御部２２は、ＡＳＩＣ、ＰＬＤ、またはＦＰＧＡなどのハードウェアを使用して実現されてもよいことは、マスタノード１と同様である。
【００７６】
時刻同期部２２Ａは、図２で説明したＰＴＰによる時刻同期方法に従って、マスタノードとの時刻同期を実行することによって、自身のローカルクロックを補正する。
【００７７】
ＢＭＣ判定部２２Ｂは、記憶部２３に記憶され、表２で示すＢＭＣ選択基準に従って、自身のＢＭＣを判定する。ＢＭＣ選択基準のうち、Ｃｌｏｃｋ  ＣｌａｓｓおよびＣｌｏｃｋ  ＡｃｃｕｒａｃｙなどはマスタからのＡｎｎｏｕｎｃｅメッセージの情報によって動的に更新され、記憶部２３に記憶された情報が一定間隔で更新される。
【００７８】
同期信号再生部２４は、時刻同期部２２Ａによって補正される自身のローカルクロックを使用して、同期信号出力２５を再生する。同期信号の再生は、表１に示した関係式を使用して、ローカルクロックが同期信号の１周期の開始時刻と一致するときに同期信号出力２５の１周期が開始されるように行う。この関係式の情報は、マスタノードに一致するように予め記憶部２３に記憶してもよい。また、マスタノードからネットワークを介してメッセージによって伝達してもよい。
【００７９】
次に、図６のフローチャートを参照して、本発明の一実施形態に従って、複数のマスタノード１のうちの１つが、例えば、障害などにより時刻同期システムから切り離され、その後、システムに復旧する際の初期動作を実行する処理の例を説明する。図６に示す例では、複数のマスタノード１のうちの１つのマスタノード（以下、マスタノード１Ｂ）に障害が発生し、一旦、映像伝送システムから切り離された後、再度、同システムに組み込まれる状態であるとする。
【００８０】
本実施形態における時刻同期システムのソースクロックノードから受信する外部同期信号は、ＢＢ信号または１ＰＰＳ信号などの外部同期信号であるものとする。全てのマスタノード１が同一の外部同期信号を受信することが前提となり、以下、本実施形態では、この外部同期信号を「第１の外部同期信号」と称する。つまり、本時刻同期システム全体が、第１の外部同期信号と同期することになる。また、マスタノード１Ｂが映像伝送システムに組み込まれる際の初期状態として、ポート状態はＰＴＰのグランドマスタクロックには規定されていないＳＬＡＶＥ状態へ遷移できるとする。
【００８１】
まず、マスタノード１Ｂは、他のマスタノード１からプライマリマスタノードとして機能するマスタノード（以下、マスタノード１Ａ）の存在を確認する（ステップＳ６０１）。このマスタノード１Ａの存在は、マスタノード１Ａが定期的に送信しているＡｎｎｏｕｎｃｅメッセージを受信することによって確認してもよい。Ａｎｎｏｕｎｃｅメッセージは、マスタノード１ＡのＣｌｏｃｋ  Ａｃｃｕｒａｃｙ情報（クロック精度）を含むので、マスタノード１Ｂは、クロックドメイン内に十分なクロック精度を有するマスタノードが存在するかを確認することができる。
【００８２】
また、上述したように、各々のマスタノード１は、自身がプライマリマスタノードまたはセカンダリマスタノードとして機能しているかの情報を有しているので、マスタノード１Ｂが管理用メッセージを送信し、マスタノード１Ａがその管理用メッセージに応答することによって、存在を確認してもよい。この通信はスイッチ３を介してもよく、ネットワーク４に通信機能が備わっていれば、ネットワーク４を使用してもよい。
【００８３】
ステップＳ６０１における存在確認において、マスタノード１Ａの存在を確認することができた場合（ステップＳ６０２でＹｅｓ）、マスタノード１Ｂは、セカンダリマスタノードとして動作を開始する（ステップＳ６０３）ここで、ステップＳ６０３の時点で、マスタノード１Ｂのポートの状態は、マスタノード１Ａからの時間情報を受信できるＳＬＡＶＥ状態のままであることに留意されたい。
【００８４】
一方、マスタノード１Ａの存在を確認することができなかった場合、一定時間を経過していない場合（ステップＳ６０４でＮｏ）、ステップＳ６０１に戻り、処理を繰り返す。一定時間を経過している場合（ステップＳ６０４でＹｅｓ）、ステップＳ６１３で、プライマリマスタクロックとして動作する。このとき、クロックドメイン外部の任意のノード（例えば、ＧＰＳ衛星やネットワークを介して接続されたＮＴＰサーバなど）からクロック情報（タイムスタンプ）を受信し、そのクロック情報に基づいて時刻を補正してもよい。ただし、外部ノードからのクロック情報は、クロックドメインで定められたソースクロックを有しないので、マスタノード１Ｂが、プライマリマスタノードとして動作を開始してからは、ドメイン外部のノードのクロック情報に基づいてローカルクロックを補正することはできない。
【００８５】
ステップＳ６１３は、基準クロックを有するマスタノード１Ａの存在を確認することができなかった状態である。よって、外部のソースクロックノードから第１の外部同期信号を受信し、その第１の外部同期信号と１周期の開始時刻として、自身のローカルクロックを補正する。この時、補正されたクロックと第１の外部同期信号の関係が、表１に示した関係式と一致するように時刻Ｔ０を自身で決定することができる。
【００８６】
次に、ステップＳ６０５に遷移し、外部のソースクロックノードから第１の外部同期信号を受信し、その第１の外部同期信号と同期して、自身のローカルクロックの進み方を補正する（つまり、時計の振り子の周期を合わせる）。
【００８７】
ステップＳ６０６では、ステップＳ６０５においてクロックを補正した結果、補正クロックと第１の外部同期信号の関係が、表１で示した関係式と一定のレベルの精度で一致しているかを判定する。この判定は、補正クロックから算出される同期信号の１周期の開始時刻と、実際に入力される第１の外部同期信号の１周期の開始時刻との差で行う。例えば、一実施形態では、この差が１０ナノ秒で十分な精度と判定する。また別の実施形態では、１００ナノ秒の差でもシステムが許容できる、としてよい。
【００８８】
ステップＳ６０６での判定において、補正クロックが一定のレベルのクロック精度を有していると判定した場合（ステップＳ６０６でＹｅｓ）、グランドマスタクロックとして動作を開始する（ステップＳ６０７）。
【００８９】
一方、ステップＳ６０６での判定において、補正クロックが一定のレベルのクロック精度を有していないと判定した場合（ステップＳ６０６でＮｏ）、管理ノード（図示せず）などに障害メッセージを送信し（ステップＳ６０８）、処理を終了する。このような状態では、一定のレベルのクロック精度を有するマスタノードが存在しないと判定されたことになるので、マスタノード１Ｂが時刻同期システムに組み込まれることを防止することによって、システム内部に異常なクロックが生成されるのを回避する。
【００９０】
ステップＳ６０３に戻り、マスタノード１Ｂがセカンダリマスタノードとしての動作を開始した場合、プライマリマスタノードとして機能するマスタノード１Ａから基準クロック情報を受信し、その基準クロック情報に基づいて自身のローカルクロックを補正する（ステップＳ６１２）。
【００９１】
ステップＳ６１２でローカルクロックを補正した結果、補正クロックが所定のレベルのクロック精度を有している場合、ステップＳ６０５に遷移し、ポートの状態をＳＬＡＶＥ状態からグランドマスタとしての初期状態に遷移させる。そして前述の通り、第１の外部同期信号を受信し、その第１の外部同期信号と同期して、自身のローカルクロックを補正する。
【００９２】
ステップＳ６０７に戻り、グランドマスタクロックとして自身のローカルクロックが所定の精度を有している場合、ＰＴＰのＢＭＣアルゴリズムに従って、自身がプライマリマスタノードとして動作するか、セカンダリマスタノードとして動作を判定する（ステップＳ６０９）。これは外部の他のマスタノード１からのＡｎｎｏｕｎｃｅメッセージのパラメータ（優先度および精度）と自身のローカルクロックのパラメータ（優先度および精度）とを比較して行われる。
【００９３】
ステップＳ６０９でＹと判定され、プライマリマスタノードとして動作する場合は、ステップＳ６１０で、マスタノード１Ｂのポート状態がＭＡＳＴＥＲ状態に遷移する。この遷移の結果によって、マスタノード１Ｂは、スレーブノード２に対するＢＭＣの候補となり、スレーブノード２にＡｎｎｏｕｎｃｅメッセージを送信する。そして、スレーブノード２によってＢＭＣと判定された場合、ＰＴＰに従って、当該スレーブノード２と時刻同期を行う。
【００９４】
また、ステップＳ６０９でＮと判定され、セカンダリマスタノードとして動作する場合は、マスタノード１Ｂは、ステップＳ６１１に遷移し、ポートの状態がＰＡＳＳＩＶＥ状態に遷移する。
【００９５】
ステップＳ６１０またはＳ６１１によってグランドマスタクロックとしてシステムへの組み込みが終了する。その後は、ＰＴＰのＢＭＣアルゴリズムに従って、マスタノード１Ｂは、他のマスタノード（マスタノード１Ａなど）からＡｎｎｏｕｎｃｅメッセージを一定間隔で受信することによって、自身がプライマリマスタノードとして機能するべきか、自身がセカンダリマスタノードとして機能すべきかを判定する。また、マスタノード１Ｂは、ソースクロックノードからの外部同期信号と同期することによってローカルクロックを補正する。
【００９６】
マスタノード１Ｂの状態がＭＡＳＴＥＲ状態かＰＡＳＳＩＶＥ状態に遷移した後は、外部同期信号との同期による自身のローカルクロック補正が機能している限り、プライマリマスタノードあるいはセカンダリマスタノードとして機能する。外部同期信号の途絶により、ローカルクロックの精度を維持できない場合、一つの実施形態では、自身のＣｌｏｃｋＣｌａｓｓ値を精度が低い値に変更し、スレーブノード２が自信をＢＭＣの候補として選択するのを防止する。また、ある実施形態では、管理ノード（図示せず）などに障害メッセージを送信し、グランドマスタクロックとしての動作を自発的に停止する。 
【００９７】
以上のように、本実施形態に係る時刻同期システムの処理を説明した。本実施形態に係る時刻同期システムでは、初期状態にあるマスタノードは、最初にプライマリマスタノードからの基準クロックに基づいてクロックを補正し、その後、外部同期信号と同期することによってクロックを補正する。よって、従来技術と異なり、ソースクロックノードが独自のクロック源によって外部同期信号を生成している場合において、プライマリマスタノードが有する時刻と同期信号の関係式Ｔｎ＝Ｔ０＋ｎ／ｆを正確にセカンダリマスタノードに複写することが可能となる。 
【００９８】
また、初期状態にあるマスタノードのローカルクロックが、一定レベルのクロック精度を有するまでは、ポートの状態がＳＬＡＶＥ状態のままであるので、スレーブノードが、クロック精度が劣るマスタノードとの時刻同期を実行することもない。このことは、クロックドメイン全体のクロック精度を高めることになる。
【００９９】
従って、ソースクロックノードが独自のクロック源によって外部同期信号を生成している場合において、初期状態にあるマスタノードを任意にシステムに追加することが可能となり、マスタノードの増設・交換によるシステムの耐故障性と運用性を向上させてダウンタイムをゼロにすることができる。  
【０１００】
なお、図６で説明したフローチャートにおける各処理は例示的なものにすぎず、その一部が省略されてもよく、また、別の処理が追加されてもよい。さらに、各処理の順序も例示的なものにすぎず、特許請求の範囲から逸脱しない範囲でその順序は入れ替わってもよい。
【図１】
2018037885.tif 000005
【図２】
2018037885.tif 000006
【図３】
2018037885.tif 000007
【図４】
2018037885.tif 000008
【図５】
2018037885.tif 000009
【図６】
2018037885.tif 000010