(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】同期制御装置、制御方法、およびプログラム
(51)【国際特許分類】
H04L 7/00 20060101AFI20241111BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2020131922
(22)【出願日】2020-08-03
【審査請求日】2023-07-31
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】鈴木 基治
【審査官】吉江 一明
(56)【参考文献】
【文献】米国特許出願公開第2015/0127978(US,A1)
【文献】特開2014-183386(JP,A)
【文献】米国特許出願公開第2015/0318941(US,A1)
【文献】特開2017-041815(JP,A)
【文献】特開2009-278436(JP,A)
【文献】特開2015-018479(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
同期制御装置であって、
第1の装置から送信される第1の時刻情報を基準として前記第1の装置と時刻同期を確立する確立手段と、
前記第1の時刻情報を基準として前記第1の装置と時刻同期を確立する複数の第2の装置であって、前記複数の第2の装置と時刻同期を確立する第3の装置へ前記第1の時刻情報に基づく第2の時刻情報を送信する前記第2の装置のそれぞれが、前記第2の時刻情報を送信することができる状態であるか否かを判定する判定手段と、
前記複数の第2の装置のうち前記第2の時刻情報を送信することができない状態であると判定された装置の代理として、前記第3の装置へ前記第2の時刻情報
の送信
を行う送信手段と、を有
し、
前記送信手段は、特定の前記第2の装置が前記第2の時刻情報を送信することができない状態であると判定された場合に、
前記同期制御装置が代理している前記第2の装置の数が所定数を超えていない場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行い、
前記同期制御装置が代理している前記第2の装置の数が前記所定数を超えている場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行わない
ことを特徴とする同期制御装置。
【請求項2】
前記判定手段は、前記第2の装置に含まれる装置から所定の信号を所定期間にわたって受信しなかった場合に、当該装置が前記第2の時刻情報を送信することができる状態でないと判定することを特徴とする請求項1に記載の同期制御装置。
【請求項3】
前記所定の信号は、IEEE(Institute of Electrical and Electronics Engineers)1588規格で規定されるPTP(Precision Time Protocol)のAnnounceパケットであることを特徴とする請求項2に記載の同期制御装置。
【請求項4】
前記送信手段は、前記第2の時刻情報を送信することができない状態である装置の代理として前記第2の時刻情報を送信する場合、当該装置が前記第2の時刻情報を送信することができたときに当該装置から受信した信号に含まれる情報を用いて前記第2の時刻情報を送信することを特徴とする請求項1から3のいずれか1項に記載の同期制御装置。
【請求項5】
前記第2の時刻情報を送信することができない状態である装置が前記第2の時刻情報を送信することができたときに当該装置から受信される信号は、IEEE(Institute of Electrical and Electronics Engineers)1588規格で規定されるPTP(Precision Time Protocol)のパケットであり、前記第2の時刻情報を送信する際に用いられる前記情報は当該パケットに含まれるdomainNumberフィールドに格納される値を含むことを特徴とする請求項4に記載の同期制御装置。
【請求項6】
前記第2の時刻情報を送信する際に用いられる前記情報は、前記第2の時刻情報を送信することができない状態である装置の属性を示す情報を含むことを特徴とする請求項4又は5に記載の同期制御装置。
【請求項7】
前記第2の装置を登録する登録手段をさらに有することを特徴とする請求項1から6のいずれか1項に記載の同期制御装置。
【請求項8】
前記第1の時刻情報を基準として前記第1の装置と時刻同期を確立し、他の装置へ前記第1の時刻情報に基づく前記第2の時刻情報を送信する第4の装置であって、前記登録手段によって登録されていない前記第4の装置に対しては、前記送信手段は、当該第4の装置が前記第2の時刻情報を送信することができない状態であっても、当該第4の装置の代理として前記第2の時刻情報を送信しないことを特徴とする請求項7に記載の同期制御装置。
【請求項9】
前記登録手段は、前記第2の装置が形成する同期ネットワークを識別する情報を、前記第2の装置の情報として登録することを特徴とする請求項7又は8に記載の同期制御装置。
【請求項10】
前記同期ネットワークを識別する情報は、IEEE(Institute of Electrical and Electronics Engineers)1588規格で規定されるPTP(Precision Time Protocol)のパケットに含まれるdomainNumberフィールドに格納される値であることを特徴とする請求項9に記載の同期制御装置。
【請求項11】
前記送信手段は、前記複数の第2の装置のうちの2つ以上の装置を含んだグループに属する前記第2の装置のうちの所定数の装置が前記第2の時刻情報を送信することができない状態である場合に、当該グループに属する前記第2の時刻情報を送信することができない装置のいずれかの代理として前記第3の装置へ前記第2の時刻情報を送信することを特徴とする請求項1から10のいずれか1項に記載の同期制御装置。
【請求項12】
第1の装置から送信される第1の時刻情報を基準として前記第1の装置と時刻同期を確立する同期制御装置によって実行される制御方法であって、
前記第1の時刻情報を基準として前記第1の装置と時刻同期を確立する複数の第2の装置であって、前記第2の装置と時刻同期を確立する第3の装置へ前記第1の時刻情報に基づく第2の時刻情報を送信する前記複数の第2の装置のそれぞれが、前記第2の時刻情報を送信することができる状態であるか否かを判定することと、
前記複数の第2の装置のうち前記第2の時刻情報を送信することができない状態である装置の代理として前記第3の装置へ前記第2の時刻情報
の送信
を行うことと、
特定の前記第2の装置が前記第2の時刻情報を送信することができない状態であると判定された場合に、
前記同期制御装置が代理している前記第2の装置の数が所定数を超えていない場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行い、
前記同期制御装置が代理している前記第2の装置の数が前記所定数を超えている場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行わないことと、
を有することを特徴とする制御方法。
【請求項13】
コンピュータを、請求項1から11のいずれか1項に記載の同期制御装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の装置を同期させるための同期制御技術に関する。
【背景技術】
【0002】
IEEE(Institute of Electrical and Electronics Engineers)1588規格において、ネットワークに接続された機器間の時間同期を確立するプロトコルが規定されている。このプロトコルは、PTP(Precision Time Protocol)と呼ばれ、ネットワーク接続された機器が、グランドマスタークロック(以下、「GMC」と呼ぶ場合がある。)によって配信された時刻同期信号を受信して、時刻同期を確立する。特許文献1には、GMCからの同期信号を受信しなくなった場合に、GMCの代わりに時刻同期信号を出力するバックアップ装置を用いる技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
PTPでは、1台のGMCを全ての機器に対する時刻同期の基準装置として動作させることができるが、1台以上のバウンダリクロック(以下、BCと呼ぶ場合がある。)を利用して、GMCの担う同期処理の負荷を分散させることもできる。BCが利用される環境において、BCが故障すると、そのBCが担っていたPTPによる同期処理を他のBCやGMCが代替的に実行する必要がある。しかしながら、あらかじめ処理が割り当てられているBCやGMCにおいて、故障したBCの代替の追加処理が発生すると、処理負荷が増大し、場合によっては同期精度に影響が出てしまいうる。
【0005】
本発明は、複数の時刻同期の基準装置が存在するシステムにおける時刻同期の劣化を防ぐ技術を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様による同期制御装置は、第1の装置から送信される第1の時刻情報を基準として前記第1の装置と時刻同期を確立する確立手段と、前記第1の時刻情報を基準として前記第1の装置と時刻同期を確立する第2の装置であって、前記第2の装置と時刻同期を確立する第3の装置へ前記第1の時刻情報に基づく第2の時刻情報を送信する前記第2の装置が、前記第2の時刻情報を送信することができる状態であるか否かを判定する判定手段と、前記第2の装置が前記第2の時刻情報を送信することができない状態である場合に、前記第2の装置の代理として前記第3の装置へ前記第2の時刻情報を送信する送信手段と、を有し、前記送信手段は、特定の前記第2の装置が前記第2の時刻情報を送信することができない状態であると判定された場合に、前記同期制御装置が代理している前記第2の装置の数が所定数を超えていない場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行い、前記同期制御装置が代理している前記第2の装置の数が前記所定数を超えている場合、前記特定の第2の装置の代理としての前記第2の時刻情報の送信を行わない。
【発明の効果】
【0007】
本発明によれば、複数の時刻同期の基準装置が存在するシステムにおける時刻同期の劣化を防ぐことが可能となる。
【図面の簡単な説明】
【0008】
【
図3】システムで実行される処理の流れの例を示す図である。
【
図4】PTPパケットの送受信の流れの例を示す図である。
【
図5A】同期制御装置によって実行される処理の流れの例を示す図である。
【
図5B】同期制御装置によって実行される処理の流れの例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
(システム構成)
図1に、本実施形態に係る時刻同期システムの構成例を示す。本システムは、IEEE(Institute of Electrical and Electronics Engineers)1588規格で規定されるPTP(Precision Time Protocol)の時刻同期システムである。一例として、本システムは、例えば、グランドマスタクロック(GMC)として動作可能な1つのタイムサーバ102、バウンダリクロック(BC)機能を有するBC装置A104~BC装置C106、および、同期制御装置200を含んで構成される。タイムサーバ102は、GPS101に同期した時刻を示す時刻情報(PTPパケット)を配信する機能を有する。タイムサーバ102から配信される時刻情報は、例えば、TCスイッチングハブA103を介して各BC装置へ配信される。
【0011】
TCスイッチングハブA103は、PTPの時刻同期処理に関してTC(Transparent Clock)機能を有したスイッチングハブである。すなわち、TCスイッチングハブA103は、PTPパケットによる時刻同期ネットワークに関して、PTPパケットの自装置内における滞留時間を補正して、時刻同期精度へ与える影響を低減する機能を有する。各BC装置は、スレーブポートとマスターポートを有し、スレーブポートを利用してタイムサーバ102とPTPパケットを用いた時刻同期処理を行う。また、各BC装置は、タイムサーバ102に同期した時刻を示す時刻情報(PTPパケット)を、マスターポートを利用して他の機器に配信する。これにより、各BC装置は、そのマスターポートを介して接続される他の装置が参加する同期ネットワークを構成し、その同期ネットワークの時刻の基準装置として機能する。例えば、BC装置A104は、第1の同期ネットワーク110を構成し、そのネットワークに参加している端末A111~端末C113がBC装置A104から配信される時刻情報に基づいて時刻同期を確立する。また、BC装置B105は、第2の同期ネットワーク120を構成し、そのネットワークに参加している端末D122および端末E123は、BC装置B105から配信される時刻情報に基づいて時刻同期を確立する。また、BC装置C106は、第3の同期ネットワーク130を構成し、そのネットワークに参加している端末群A131および端末群B132は、BC装置C106から配信される時刻情報に基づいて時刻同期を確立する。なお、同期ネットワークは様々な構成を取りうる。例えば、第1の同期ネットワーク110のように、端末A111~端末C113のそれぞれがデイジーチェーン接続されるような構成を有してもよい。また、第2の同期ネットワーク120のように、さらにTCに対応したスイッチングハブを有し、スター型で複数の機器を収容するような構成を有してもよい。また、第3の同期ネットワーク130のように、複数のポートを含んでいてもよい。また、本システムは、同期処理を必要としない端末を含んでもよく、同期処理を必要としないネットワーク(非同期ネットワーク140)を含んでもよい。
【0012】
各同期ネットワークは、PTPプロトコルのメッセージ内のdomainNumberフィールドによって識別される。一例として、タイムサーバ102が構築する同期ネットワーク100では、domainNumberフィールドに「0」が格納されるものとする。また、第1の同期ネットワーク110、第2の同期ネットワーク120、第3の同期ネットワーク130では、一例として、domainNumberフィールドに、それぞれ、「1」、「2」、「3」が格納されるものとする。
【0013】
同期制御装置200は、BC機能を有し、タイムサーバ102と時間同期を確立し、タイムサーバ102と同期した時刻を保持する。そして、同期制御装置200は、必要なタイミングで、マスターポートから、同期が確立された時刻を示す時刻情報(PTPパケット)を送信する。なお、同期制御装置200は、BC装置A104~BC装置C106が正常に動作している場合はアイドル状態となり、マスターポートから時刻情報を出力しない。
【0014】
TCスイッチングハブB107は、TCスイッチングハブA103と同様の機能を有する。また、TCスイッチングハブB107は、特定のポートから受信したパケットを、ポートを指定してブリッジする機能を有しうる。例えば、TCスイッチングハブB107は、ポート1から受信したPTPパケットをポート4およびポート5のみにブリッジするように構成されうる。また、TCスイッチングハブB107がそのような機能を有しない場合、端末(
図1においてTCスイッチングハブB107より右側の機器)において、受信後に不要なパケットを破棄するようにしてもよい。
【0015】
本実施形態では、同期制御装置200は、各BC装置から所定の信号(例えばAnnounceパケット)が受信されるのを監視する。そして、同期制御装置200は、あるBC装置からその所定の信号が受信されないまま所定の時間が経過した場合に、そのBC装置に代わり、そのBC装置が構成している同期ネットワークにおける時刻基準を与える装置としての動作を実行する。以下では、このような同期制御装置200の構成例および同期制御装置200によって実行される処理の流れの例について説明する。
【0016】
(同期制御装置の構成)
図2に、同期制御装置200の構成例を示す。同期制御装置200は、例えば、主制御部210、メモリ201、システムバス202、通信制御部220を含んで構成される。主制御部210は、同期制御装置200の全体を制御する処理部である。
【0017】
主制御部210は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの1つ以上のプロセッサを含んで構成される。なお、主制御部210は、後述する所定の処理を実行するように構成された、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)、ASIC(特定用途向け集積回路)などのハードウェアによって構成されてもよい。また、主制御部210は、同期処理に関する機能として、第1同期処理部211、第1タイマ212、バックアップ装置登録部213、バックアップ動作管理部214、第2同期処理部216、第2タイマ217、および第3タイマ215として機能する。
【0018】
第1同期処理部211は、PTPを利用したタイムサーバ102との同期処理を実行する。例えば、第1同期処理部211は、タイムサーバ102から送信されたPTPパケット(Announceパケット、Syncパケット、Follow Upパケット、Delay Responseパケット)を、後述のスレーブポート221を介して受信する。また、第1同期処理部211は、スレーブポート221を介して、Delay Requestパケットをタイムサーバ102へ送信する。これらの同期制御装置200とタイムサーバ102との間のPTPパケットの送受信は、後述のパケットインターフェース203およびパケット転送部223を介して、メモリ201を使用して行われる。第1同期処理部211は、タイムサーバ102との間でのPTPパケットの送受信により、タイムサーバ102と同期制御装置200との間のネットワークにおける遅延量や、タイムサーバ102の有する時刻と後述の時刻情報225とのオフセット量を算出する。そして、第1同期処理部211は、算出結果に基づいて、時刻情報225の補正処理や、時刻情報225の進み量の制御値の修正を実行する。なお、これらの処理は、制御インターフェース204を介して行われる。
【0019】
第1タイマ212は、タイムサーバ102が定期的に送信するSyncパケットのタイムアウトを検知するために使用される。第1タイマ212に予めセットされたタイムアウト値が経過するより前にSyncパケットが受信されることにより、タイムサーバが正常動作していることの確認(生存確認)がなされる。なお、タイムサーバ102から送信されるPTPパケットに含まれるSyncパケットの送信頻度情報を示す情報に基づく値が、第1タイマ212にセットされうる。例えば、Syncパケットに含まれるlogSyncIntervalフィールドによって示されるSyncパケットの送信頻度に基づいて、第1タイマ212にセットされる値が決定されうる。
【0020】
第2同期処理部216は、PTPのマスターとしての処理を実行する。第2同期処理部216は、例えば、Announceパケット、Syncパケット、Follow Upパケットを、後述のマスターポート222を介して送信する。また、第2同期処理部216は、マスターポート222を介して、端末からDelay Requestパケットを受信した場合には、その端末へ、Delay Responseパケットを送信する。
【0021】
第2タイマ217は、同期制御装置200が、マスターポート222を介して送信するAnnounce/Syncパケットの送信間隔を制御するためのタイマとして利用される。第2タイマ217には、例えば、システム設計者によって定められた値が予めセットされうる。例えば、システム設計者やユーザが、ネットワーク経由でTelnet/SSH(Secure Shell)を利用して同期制御装置200にログインして、第2タイマ217の値をセットしうる。また、同期制御装置200は、ユーザ操作を受け付けるためのユーザインタフェース(例えば、キーボードやモニタ)を有し、そのユーザインタフェースを介して、第2タイマ217の値の設定を受け付けてもよい。このとき、予めシステムに要求される値が第2タイマ217の値としてセットされてもよいし、実際にシステムが起動された後の各端末の同期精度に基づいて、第2タイマ217の値がセットされてもよい。ここで、例えば、各端末から出力されたPPS(Pulse Per Second)信号を利用して、各端末の同期制度が特定されうる。第2タイマ217の値は、上述のようにして外部からセットされうるが、例えば、タイムサーバ102のSyncパケットに含まれるlogSyncIntervalフィールドの値に基づいて、同期制御装置200内部でセットされてもよい。
【0022】
バックアップ装置登録部213は、同期制御装置200がバックアップ動作の対象とする装置を登録する処理を行う。本実施形態では、バックアップ装置登録部213は、例えば、BC装置A104~BC装置C106のいずれかにおいて動作に所定の不具合が発生した場合に、同期制御装置200がバックアップ動作を行うように、これらの3台のBC装置を登録する。なお、バックアップ装置登録部213によって登録されていないBC装置についてはバックアップ動作の対象としない。すなわち、同期制御装置200は、そのような装置が正常に動作しているかの確認や、代理としてのSyncパケット(時刻情報)の送信を実行しないようにしうる。バックアップ装置登録部213は、例えば、各BC装置によって出力されるSync/Announceパケットに含まれるdomainNumberを登録することによって、バックアップの対象となる装置を登録する。なお、これは一例であり、バックアップ装置登録部213は、domainNumber以外のバックアップの対象とする装置を特定可能な情報により、その装置を登録してもよい。例えば、バックアップ装置登録部213は、バックアップの対象となる装置のホスト名やIPアドレス等の、装置固有の情報によって、その装置を登録しうる。バックアップの対象となる装置の登録は、ユーザ操作により行われうる。例えば、同期制御装置200の操作を受け付けるためのGUI(Graphical User Interface)が用意されている場合、同期制御装置200は、そのGUIを介して、バックアップの対象となる装置のユーザによる指定を受け付ける。また、ユーザ操作以外に、同期制御装置200が能動的に登録を行うように構成されてもよい。同期制御装置200は、例えば、事前に設定されたトレーニング期間において、マスターポート222から受信したAnnounceパケットを解析して、domainNumberを特定する。そして、同期制御装置200は、そのdomainNumberのPTPパケットを出力するBC装置を、バックアップの対象の装置として登録しうる。なお、バックアップ装置登録部213は、バックアップの対象としない装置を登録してもよい。すなわち、登録されていない装置をバックアップの対象とするようにしてもよい。
【0023】
バックアップ動作管理部214は、バックアップ装置登録部213に登録された装置(例えばBC装置A104~BC装置C106)に対するバックアップ動作の開始・停止を管理する。例えば、バックアップ動作管理部214は、バックアップ動作開始時に第2同期処理部216を起動し、バックアップ動作停止時に第2同期処理部216の停止処理を実行する。
【0024】
第3タイマ215は、バックアップ装置登録部213に登録されたバックアップの対象の装置の数(又はそれを超える数)のタイマにより構成される。第3タイマ215は、それぞれの装置からの(例えばその装置に対応するdomainNumberが格納された)Announceパケットのタイムアウトを監視するのに用いられる。
【0025】
続いて、通信制御部220について説明する。通信制御部220は、一例として、スレーブポート221、マスターポート222、パケット転送部223、第1タイムスタンプ取得部224、時刻情報225、第2タイムスタンプ取得部226を含んで構成される。スレーブポート221は、TCスイッチングハブA103を介したタイムサーバ102との接続に使用されるポートである。タイムサーバ102から送信されたパケットがスレーブポート221を介して受信され、同期制御装置200からタイムサーバ102へ送信されるパケットは、スレーブポート221を介して送信される。マスターポート222は、TCスイッチングハブB107を介した、各PTPの端末との接続に使用されるポートである。パケット転送部223は、主制御部210によって作成されメモリ201に(一時的に)格納されたパケットを、主制御部210の指示に応じてスレーブポート221またはマスターポート222を介して外部へ送信する。また、パケット転送部223は、スレーブポート221またはマスターポート222を介して受信したパケットをメモリ201へ転送する。
【0026】
時刻情報225は、通信制御部220における時刻情報を保持する。タイムサーバ102から受信したパケットが所定のPTPパケットである場合は、時刻情報225の時刻がPTPパケットの所定フィールドに格納される。また、時刻情報225は、第1同期処理部211がタイムサーバ102への同期処理を実行した後に、算出した補正値により時刻情報を補正することができる。また、時刻情報225は、時刻情報の進み量を調整する機能を有していてもよい。例えば、複数回同期処理が実行された際に、毎回、同期制御装置200の方がタイムサーバ102より時刻が進んでいるような場合は、時刻情報225の進む速度を小さくする調整を実行する。これにより、時刻情報225が保持する時刻情報をより精密にタイムサーバ102の時刻と同期させることができる。
【0027】
第1タイムスタンプ取得部224は、スレーブポート221をPTPパケットが通過したときに時刻情報225によって示される時刻を示す値を取得して記憶する。例えば、第1タイムスタンプ取得部224は、タイムサーバ102からスレーブポート221を介してPTPパケットを受信した場合に、その受信時の時刻を示す情報を時刻情報225から取得して記憶する。また、第1タイムスタンプ取得部224は、同期制御装置200からスレーブポート221を介してタイムサーバ102へPTPパケットが送信された場合に、その送信時の時刻を示す情報を時刻情報225から取得して記憶する。第2タイムスタンプ取得部226は、マスターポート222をPTPパケットが通過したときに時刻情報225によって示される時刻を示す値を取得して記憶する。例えば、第2タイムスタンプ取得部226は、外部の装置からマスターポート222を介してPTPパケットを受信した場合に、その受信時の時刻を示す情報を時刻情報225から取得して記憶する。また、第2タイムスタンプ取得部226は、同期制御装置200からマスターポート222を介して外部の装置へPTPパケットが送信された場合に、その送信時の時刻を示す情報を時刻情報225から取得して記憶する。通信制御部220が以上の構成を有することにより、主制御部210は、例えば主制御部210に含まれるシステムクロックを用いて取得する方法等と比較して、実際のPTPパケットが送受信された時刻をより正確に取得することができる。
【0028】
(処理の流れ)
続いて、同期制御装置200によって実行される処理の流れについて説明する。
図3は、同期制御装置200のバックアップ動作の処理の流れの例を示している。本処理においては、同期制御装置200は、タイムサーバ102との間で所定の周期311で、PTPパケットを用いた同期通信を行う(S300)。この周期311は、例えば、タイムサーバ102にセットされている情報に基づいて決定される。同期制御装置200は、タイムサーバ102から送信されるSyncパケットのlogSyncInterval情報を参照することによりこの情報を知ることができる。ここで、S300におけるPTPパケットの送受信について、
図4(A)及び
図4(B)を用いて説明する。
【0029】
まず、説明を簡単にするため、
図4(A)を用いてTCスイッチングハブA103がない場合の処理の流れについて説明する。まず、タイムサーバ102は、同期を確立する装置(同期制御装置200)へ、Syncパケットを送信する(S401)。また、タイムサーバ102は、2Stepの同期処理を実行している場合には、Follow Upパケットを送信する(S402)。同期制御装置200は、Sync/Follow Upパケットを受信すると、同期処理を実行する際には、Delay Requestパケットをタイムサーバ102へ送信する(S403)。タイムサーバ102は、Delay Requestパケットを受信すると、同期制御装置200へDelay Responseパケットを送信する(S404)。ここで、タイムサーバ102は、Syncパケットを送信した時刻T1と、同期制御装置200からDelay Requestを受信した時刻T4とを同期制御装置200へ通知する。これらの時刻の情報は、例えば、それぞれFollow UpパケットおよびDelay Responseパケットで送信される。また、同期制御装置200は、Syncパケットを受信した時刻T2と、Delay Requestパケットを送信した時刻T3を記憶しておく。このように、同期制御装置200は、一連のPTPパケットの送受信によって、タイムサーバ102側で管理されている時刻T1およびT4と、同期制御装置200の時刻情報225によって示されるT2およびT3の時刻を得ることができる。
【0030】
同期制御装置200は、この4つの時刻情報より、タイムサーバ102と同期制御装置200との間の平均伝送路遅延を、((T4-T1)-(T3-T2))/2のように算出することができる。また、同期制御装置200は、タイムサーバ102と同期制御装置200との間の時刻差(すなわち、同期制御装置200の時刻補正量)は、T2-T1-平均伝送路遅延=((T2-T1)-(T4-T3))/2のように算出することができる。このようにして算出された時刻補正量が、タイムサーバ102に対する同期制御装置200のオフセット量であるため、同期制御装置200は、この値が0となるように保持している時刻の進み量を調整しうる。
【0031】
続いて、TCスイッチングハブAがタイムサーバ102と同期制御装置200との間の通信を中継する場合の処理の流れについて、
図4(B)を用いて説明する。
図4(A)の場合と同様に、タイムサーバ102は、Sync/Follow Up/DelayResponseパケットを送信し、同期制御装置200がDelay Requestパケットを送信する。
【0032】
TCスイッチングハブA103は、タイムサーバ102から受信したSyncパケットに対して、TCスイッチングハブA103内で発生したSyncパケットの滞留時間S1を特定する。そして、TCスイッチングハブA103は、Follow Upパケットにおいて、装置内で発生したパケットの滞留時間を示すCorrectionフィールドに格納されている値にその滞留時間S1を加算して、同期制御装置200へ送信する。このCorrectionフィールドは、タイムサーバ102から送信される際には「0」となっており、トランスペアレント機能を持つ機器を経由するごとに値が加算される。すなわち、Syncパケットが複数のTCスイッチングハブを経由して送信される場合は、そのTCスイッチングハブにおける滞留時間が累積的に加算される。例えば、TCスイッチングハブA103と別のTCスイッチングハブを経由して同期制御装置200へSyncパケットが転送される例について検討する。この場合、その別のTCスイッチングハブは、Correctionフィールドに「S1」が格納されたFollow Upパケットを受信する。そして、その別のTCスイッチングハブは、自装置内でSyncパケットが滞留時間Sxだけ滞留した場合、Correctionフィールドを「S1+Sx」としたFollow Upパケットを送信する。
【0033】
また、TCスイッチングハブA103は、同期制御装置200から受信したDelay Requestパケットをタイムサーバ102へ送信する際の、そのパケットの自装置内での滞留時間S2を特定する。そして、TCスイッチングハブA103は、Delay ResponseパケットのCorrectionフィールドに格納されている値に、その滞留時間S2を加算して送信する。なお、タイムサーバ102から送信された時点でのDelay ResponseパケットにおけるCorrectionフィールドは「0」に設定される。このため、TCスイッチングハブA103は、Correctionフィールドの値を「S2」としたDelay Responseパケットを同期制御装置200へ送信する。これにより、タイムサーバ102と同期制御装置200との間の平均伝送路遅延は、((T4-T1)-(T3-T2)-S1-S2)/2のように算出される。また、タイムサーバ102と同期制御装置200との間の時刻差(すなわち、同期制御装置200の時刻補正量)は、(T2-T1)-平均伝送路遅延-S1=((T2-T1)-(T4-T3)-(S1-S2))/2のように算出される。
【0034】
なお、上述の処理は、TCスイッチングハブA103が、タイムサーバ102と同期制御装置200との間の同期処理において、トランスペアレントクロックのEnd to End(E2E)モードで動作した場合の例である。説明は省略するが、TCスイッチングハブA103は、トランスペアレントクロックのPeer to Peer(P2P)モードで動作してもよい。
【0035】
図3の説明に戻り、同期制御装置200は、定期的に(例えば周期311で)、タイムサーバ102に対する時刻同期処理を行い、時刻情報225を更新する。また、同期制御装置200は、定期的に、TCスイッチングハブB107を介して、BC装置A104~BC装置C106のそれぞれのマスターポートからAnnounceパケットを受信する(S301~S303)。同期制御装置200は、このAnnounceパケットを受信したことにより、各BC装置が正常に動作していることを確認する。ここで、例えばBC装置C106に不具合が発生し、BC装置C106からのAnnounceパケットの送信がされなくなったものとする(S304)。同期制御装置200は、所定回数(
図3の例では2回)連続して、BC装置C106からAnnounceパケットが受信されるべきタイミングにおいてその受信を確認できなかった場合に、BC装置C106のためのバックアップ動作を開始する(S305)。同期制御装置200は、今までBC装置C106からAnnounceパケットを受信していたにも関わらず、そのパケットを受信できなくなったことに基づいて、BC装置C106の喪失を検知することができる。同期制御装置200は、BC装置C106のためのバックアップ動作により、BC装置C106の代理としてPTPのBC装置としての処理を開始する。同期制御装置200は、例えば、BC装置C106が利用していたdomainNumber(=3)を利用して、PTPパケット(Sync/Follow Up/Delay Responseパケット)の送信(S306)を開始する。また、同期制御装置200は、Announceパケットの送信(S307)をも開始しうる。その後、同期制御装置200は、例えば、あるタイミングにおいてBC装置C106が復帰し(S308)、BC装置C106からのAnnounceパケットを受信すると(S309)、バックアップ動作を停止する(S310)。このように、同期制御装置200は、各BC装置が正常に動作していることを確認し、正常に動作していないBC装置を検出した場合には、そのBC装置の代わりに、そのBC装置が構成していた同期ネットワークにおけるBC装置として動作する。
【0036】
続いて、同期制御装置200が実行する処理の流れの例ついて、
図5Aおよび
図5Bを用いて説明する。同期制御装置200は、上述のように、3台のBC装置(BC装置A104~BC装置C106)によってシェアされ、いずれか1台に不具合が発生した場合に、そのBC装置の代理のBC装置として動作する。本処理では、同期制御装置200は、まず、バックアップ対象とするBC装置を登録する(S501)。本実施形態では、同期制御装置200は、この処理により、BC装置A104~BC装置C106を、バックアップ対象のBC装置として登録する。同期制御装置200は、例えば、BC装置として動作するときに出力するPTPパケットに含める情報であるdomainNumberにより、各BC装置を登録しうる。すなわち、同期制御装置200は、例えば、domainNumber=1~3を用いて、BC装置A104~BC装置C106を登録する。そして、同期制御装置200は、起動指示が受け付けられるのを待ち受ける(S502)。例えば、同期制御装置200は、3台のBC装置(BC装置A104~BC装置C106)の全てが動作を開始したことを条件として起動指示を受付可能な状態に遷移する。そして、同期制御装置200は、その状態でユーザから起動指示を受け付けると(S502でYES)、3台のBC装置(BC装置A104~BC装置C106)のそれぞれについての処理を実行する(S503)。S503の処理については、
図5Bを用いて後述する。また、同期制御装置200は、タイムサーバ102との時刻同期処理を実行する(S504)。時刻同期処理では、同期制御装置200は、タイムサーバ102のSyncパケットの送信頻度に応じて動作を継続する。これにより同期制御装置200は、タイムサーバ102と時刻同期された時刻を時刻情報225に保持することができる。なお、処理を終了するユーザ操作を受け付けた場合など、処理を終了する契機が検出された場合(S505でYES)、タイムサーバ102との時刻同期処理を終了し、
図5Aの処理を終了する。
【0037】
続いて、S503の各BC装置に対する処理について、
図5Bを用いて説明する。なお、ここでは、BC装置A104についての処理(domainNumber=1の同期ネットワークに関する処理)を説明するが、BC装置B105およびBC装置C106についての処理も同様である。
【0038】
図5Bでは、まず、同期制御装置200が、処理対象のBC装置(BC装置A104)と異なる他のBC装置(BC装置B105およびBC装置C106)のバックアップ動作を実行しているか否かを判定する(S551)。すなわち、同期制御装置200は、BC装置A104以外の装置の代理としてBC装置の機能を実行しているか否かを判定する。同期制御装置200は、他のBC装置のバックアップ動作を実行している場合(S551でYES)は、BC装置A104のための処理を何もせずに、処理を終了する。これによれば、同期制御装置200が複数の同期ネットワークを同期させようとすることがなくなり、同期制御装置200の処理能力に対する負荷が高くなることを防ぐことができる。また、これにより、同期制御装置200を基準装置とする端末における同期精度の劣化を防ぐことができる。このように、同期制御装置200は、いずれかの同期ネットワークのバックアップ動作を実行している場合は、他の同期ネットワークに対するバックアップ動作を実行しないようにしうる。なお、同期制御装置200が、例えば複数のマスターポートや処理回路などの、所定数のBC装置の代理として動作するのに十分な処理機能構成を有している場合には、その所定数を超えない範囲で、複数のBC装置に対するバックアップ動作を実行してもよい。
【0039】
同期制御装置200は、他のBC装置のバックアップ動作を実行していない場合(S551でNO)、続いて、処理対象のBC装置A104のバックアップ動作を実行しているか否かを判定する(S552)。そして、同期制御装置200は、BC装置A104のバックアップ動作を実行している場合(S552でYES)、そのBC装置A104からAnnounceパケットを受信したかを判定する(S553)。同期制御装置200は、一定期間内にBC装置A104からのAnnounceパケットを受信しなかった場合(S553でNO)、そのBC装置A104のためのバックアップ動作を継続する(S556)。すなわち、一定期間内にBC装置A104からのAnnounceパケットが受信されなかった場合、同期制御装置200は、第1の同期ネットワーク110に対するBC装置が存在しない状態であると判定し、その代理として動作する。なお、同期制御装置200は、domainNumberが「1」のAnnounceパケットが受信されたか否かにより、BC装置A104からのAnnounceパケットが受信されたか否かを判定しうる。ただし、これに限られず、例えば、Announceパケットの送信元装置を特定可能な情報がそのパケット内に含まれる場合に、その情報に基づいて判定が行われてもよい。また、Announceパケットは一例であり、BC装置A104が正常動作可能な状態であるかを特定可能な他のパケットが用いられてもよい。
【0040】
一方、同期制御装置200は、BC装置A104からのAnnounceパケットを受信した場合(S553でNO)、第1の同期ネットワーク110の時刻基準を与えるBC装置の役割を、BC装置A104に戻すか否かを判定する。同期制御装置200は、例えば、IEEE1588規格のBMCA(Best Master Clock Algorithm)により、BC装置A104の優先度と同期制御装置200の優先度とを比較する(S554)。例えば、同期制御装置200は、Announceパケットに含まれる優先度を示す値、クロックの精度やばらつきなどを示す値を含んだパラメータを、自装置のパラメータと比較することで、自装置とBC装置A104のいずれの優先度が高いかを判定しうる。そして、同期制御装置200は、BCMAによる優先度の高い方の装置を、第1の同期ネットワーク110におけるBC装置として動作させると決定する。すなわち、同期制御装置200は、自装置の優先度の方がBC装置A104の優先度より高い場合(S555でYES)、BC装置A104に対するバックアップ動作を継続する(S556)。また、同期制御装置200は、自装置の優先度がBC装置A104の優先度より高くない場合(S555でNO)、第1の同期ネットワーク110の時刻基準を与える役割をBC装置A104に戻すため、バックアップ動作を停止する(S557)。この場合、同期制御装置200は、アイドル状態へと遷移する。なお、同期制御装置200は、例えばBC装置A104と異なる装置からdomainNumberが「1」のAnnounceパケットを受信した場合にも同様に、優先度の比較を実行しうる。そして、同期制御装置200は、優先度の高い方の装置が、第1の同期ネットワーク110のBC装置として動作すると決定しうる。すなわち、S553では、同期制御装置200がバックアップ動作を実行している同期ネットワークについて、その同期ネットワークのdomainNumberを含んだAnnounceパケットが受信されたかが判定されうる。
【0041】
同期制御装置200は、BC装置A104~BC装置C106(第1の同期ネットワーク110~第3の同期ネットワーク130)のバックアップ動作を実行していない場合(S552でNO)、Announceパケットの到来を監視する(S558)。この場合、同期制御装置200はアイドル状態であり、各BC装置からのAnnounceパケットを定期的に受信することにより、各BC装置が正常に動作していることを確認することができる。なお、同期制御装置200は、Announceパケットを受信した場合(S558でYES)に、そのパケットの送信元の装置とのいずれが時刻基準を与えるかを決定してもよい。すなわち、同期制御装置200は、例えば、上述のように、BMCAによる優先度の比較を実行し(S559)、自装置とAnnounceパケットの送信元の装置とのいずれの優先度が高いかを判定する(S560)。そして、同期制御装置200は、自装置の優先度の方が高いと判定した場合に(S560でYES)、Announceパケットの送信元の装置に対するバックアップ動作を開始する(S561)。例えば、同期制御装置200は、domainNumberを「1」に設定したPTPパケットの送信による時刻情報の配信を開始することにより、BC装置A104のバックアップ動作を開始する。一方、同期制御装置200は、自装置の優先度の方が高くないと判定した場合に(S560でNO)、バックアップ動作を実行することなく、アイドル状態を継続する(S562)。なお、同期制御装置200は、同期ネットワークにおいて時刻基準を与えているBC装置からAnnounceパケットを受信した場合には、優先度の比較を実行せずに、アイドル状態を維持してもよい。
【0042】
同期制御装置200は、Announceパケットを受信していない場合(S558でNO)に、そのパケットの受信がなされないまま所定時間が経過し、タイムアウトしたか否かを判定する(S563)。そして、同期制御装置200は、タイムアウトした場合(S563でYES)、タイムアウトした回数をカウントアップし、タイマをリセットする(S564)。ここでは、例えば、Announceパケットの送信周期に対応する所定時間の間に、Announceパケットが到来したか否かが判定される。このため、例えば、同期制御装置200は、Announceパケットを受信した際に都度タイマをリセットし、直前にAnnounceパケットを受信したタイミングからの経過時間を測定しうる。そして、同期制御装置200は、タイムアウトした回数が所定回数に達したか否かを判定する(S565)。これにより、同期制御装置200は、例えば通信路上でのパケットの喪失等により一時的にパケットが受信されなかったのか、BC装置A104の故障などにより所定期間以上の長期的にそのパケットが受信されない状態となったのかを判定する。なお、ここでの所定期間は、タイムアウトまでの時間長に、上述の所定回数を乗じた長さの期間でありうる。同期制御装置200は、タイムアウトした回数が所定回数に達していないと判定した場合(S565でNO)、アイドル状態を継続する(S566)。一方、同期制御装置200は、タイムアウトした回数が所定回数に達したと判定した場合(S565でYES)、バックアップ動作を開始する(S561)。すなわち、Announceパケットが長期的に受信されず、BC装置A104が時刻基準を与えることができない状態であることが想定される場合に、同期制御装置200がBC装置A104の代わりに、第1の同期ネットワーク110の時刻基準を与える。
【0043】
その後、同期制御装置200は、処理を終了するユーザ操作を受け付けた場合など、処理を終了する契機が検出された場合(S567でYES)、
図5Bの処理を終了する。なお、同期制御装置200は、例えば、複数のBC装置のそれぞれについて
図5Bの処理を継続的に(例えば時分割的に又は並行して)実行する。
【0044】
以上の処理により、同期制御装置200は、タイムサーバ102と同期され、時刻情報225に保持された時刻により、BC装置のいずれかが故障などにより時刻を配信できなくなった場合に、代理で正確な時刻を配信することができる。また、この場合に、例えばタイムサーバ102や他のBC装置の負荷が増えないため、各BC装置によって配信される時刻の精度劣化等が生じることを防ぐことができる。
【0045】
なお、システム構成は
図1の例に限られず、例えば
図6のような別の構成を有してもよい。
図6の例では、タイムサーバ102が同期ネットワークA600を形成し、BC装置AA601、BC装置AB602、BC装置BA603、BC装置BB604が、それぞれ、同期ネットワークB610~同期ネットワークE640を構成する。そして、端末AA605及び端末BB606は、それぞれが2つのスレーブポートを用いた冗長構成を有する。この場合、同期制御装置607は、同期ネットワークのペアを1つのバックアップ対象として登録しうる。例えば、同期制御装置607は、BC装置AA601およびBC装置AB602を1つのペアとして扱う。そして、同期制御装置607は、この2台のBC装置のそれぞれのAnnounceパケットを共に検出できなかった場合に、端末AA605を同期させるためのバックアップ動作を開始する。すなわち、同期制御装置607は、例えばBC装置AA601からのAnnounceパケットを受信できなかった場合であっても、BC装置AB602からのAnnounceパケットを受信で来た場合はバックアップ動作を実行しないようにしうる。端末AA605に対しては、BC装置AB602によって正確な時刻情報が提供されることが期待できるからである。なお、同期制御装置607は、バックアップ動作を実行する場合に、BC装置AA601とBC装置AB602とのいずれか1つについてのバックアップ動作を実行しうる。例えば、同期制御装置607は、BC装置AA601とBC装置AB602とのうち、これらの装置に関する情報に基づいて特定される又は事前に定められる優先度に基づいて、優先度の高い方の装置に対するバックアップ動作を実行するようにしてもよい。また、
図6の例では、2つのBC装置のペアを1つのバックアップ対象としたが、3つ以上のBC装置のグループを1つのバックアップ対象としてもよい。このとき、同期制御装置は、グループに属する複数のBC装置のうちの所定数の装置からのAnnounceパケットが受信されなかったことに応じて、バックアップ動作を実行するようにしてもよい。例えば、3台のBC装置のグループに対して、2台のBC装置からのAnnounceパケットが受信されなかった場合に、同期制御装置がバックアップ動作を実行するようにしてもよい。なお、ここでの所定数は、グループに属するBC装置の数に応じて、例えば所定の割合を超える最小の数などのように定められてもよい。また、所定数がグループに属するBC装置の総数とされることにより、グループに属するBC装置のいずれからもAnnounceパケットが受信されなかった場合にバックアップ動作が実行されるようにすることもできる。このようなグループ化により、端末AA605および端末BB606が冗長構成を有する場合に、より多くのBC装置をバックアップ対象として登録することができる。なお、
図6のシステムにおいても、同期制御装置607は、上述の場合と同様に、いずれかのBC装置からのAnnounceパケットを受信できなかった場合にバックアップ動作を開始してもよい。
【0046】
なお、同期制御装置は、バックアップ対象とする装置が出力するAnnounceパケットの内容を保持してもよい。これによれば、同期制御装置は、例えばバックアップ動作を開始する際に、保持している情報を利用することで、スレーブとして動作する端末が、同期の対象とする装置の変更を意識することなく、スムーズにバックアップを行うことができる。例えば、ここで利用される情報が、装置の属性を示すClockClass、Priority、ClockIdentity、PortNumber等の情報を含みうる。同期制御装置が、バックアップ動作時に、これらの情報を用いてPTPパケットを送信することにより、スレーブとして動作する端末が、同期先の装置ごとの複数の時刻情報を有する場合に、使用していた時刻情報を継続してアップデートすることができる。また、各端末が新しいAnnounceパケットを受信した場合、BMCAによる時刻基準を与える装置の選択処理が開始され、その間いずれの装置とも同期が更新されない場合がありうる。この場合に、同期制御装置が、バックアップ対象のBC装置によって送信されるAnnounceパケットと同じ内容のパケットを送信可能とすることで、そのような同期が更新されない期間が発生することを防ぐことができる。
【0047】
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0048】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0049】
200:同期制御装置、210:主制御部、213:バックアップ装置登録部、214:バックアップ動作管理部、220:通信制御部、225:時刻情報