(57)【特許請求の範囲】
【請求項１】
時刻基準を有する複数の主装置と該複数の主装置の時計に同期する従装置を備え、パケットベースのネットワークを介して同期用パケットを交換して前記従装置の時刻を前記主装置の時刻に同期させる時刻同期装置において、
前記従装置が前記複数の主装置と前記同期用パケットを交換する手段と、
前記複数の主装置の優先順位を算出する算出手段と、
前記複数の主装置の優先順位および前記同期用パケットに基づき、前記従装置の時刻を前記主装置の時刻に同期させる同期手段と、
前記複数の主装置と従装置間の経路の経路混雑度を推定する推定手段を備え、
前記算出手段は、前記経路混雑度に基づき、前記複数の主装置の優先順位を算出する
ことを特徴とする時刻同期装置。
【請求項２】
前記同期手段は、最高の優先順位を有する主装置の同期用パケットから求めたクロック誤差を用い前記従装置の時刻を補正する、または前記複数の主装置の同期用パケットから求めたクロック誤差を前記複数の主装置の優先順位で加重平均した値を用い前記従装置の時刻を補正することを特徴とする請求項１に記載の時刻同期装置。
【請求項３】
前記同期用パケットの伝送遅延揺らぎ発生を推定する手段をさらに有し、
前記クロック誤差は、伝送遅延揺らぎが発生していないと推定された同期用パケットから求められることを特徴とする請求項２に記載の時刻同期装置。
【請求項４】
前記推定手段は、伝送遅延揺らぎが発生していないと推定された同期用パケットの個数に基づいて、経路混雑度を推定することを特徴とする請求項３に記載の時刻同期装置。
【請求項５】
前記算出手段は、前記経路混雑度および主装置の性能に基づき、最良と判断する主装置を選択するアルゴリズムを有し、
前記複数の主装置の中から、前記アルゴリズムにより最高の優先順位の主装置を選択し、
前記最高の優先順位の主装置を除く前記複数の主装置の中から、前記アルゴリズムにより次の優先順位の主装置を選択し、
前記最高および前記次の優先順位の主装置を除く前記複数の主装置の中から、前記アルゴリズムにより第３の優先順位の主装置を選択することを繰り返すことにより、前記複数の主装置の優先順位を算出することを特徴とする請求項１から４のいずれか１項に記載の時刻同期装置。
【請求項６】
前記アルゴリズムは、前記経路混雑度が少ない主装置を最良と判断する比較をData Set Comparisonアルゴリズムに挿入したものであることを特徴とする請求項５に記載の時刻同期装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数装置の時刻を、パケットベースのネットワークを介して高精度かつ高信頼に同期させる時刻同期装置に関する。
【背景技術】
【０００２】
パケットベースのネットワークを介した時刻同期プロトコルとして、例えば非特許文献１のIEEE 1588 Precision Time Protocol（ＰＴＰ）がある。同プロトコルでは、時刻基準を持つ主装置（マスタ）とそれに従属する従装置（スレーブ）が定義され、両者で定期的に時刻同期用パケットを交換することでスレーブの時刻を補正する。具体的には、マスタからスレーブに送信されるパケット（Syncメッセージ）のマスタ送信時刻とスレーブ受信時刻、およびスレーブからマスタに送信されるパケット（Delay_Reqメッセージ）のスレーブ送信時刻とマスタ受信時刻を用いて、スレーブ・クロックのマスタ・クロックに対する周波数ドリフトおよび時刻オフセットを推定して補正する。
【０００３】
ネットワークを介した時刻同期において同期精度を劣化させる原因として、以下に述べる二つの要因が挙げられる。
【０００４】
一つめの要因として、マスタ装置あるいは回線で発生する障害による、同期用パケット交換の中断が挙げられる。これに対し、図１に示すように複数台のマスタを用意することで、同期用パケットを交換していたマスタ装置かあるいは回線に障害が発生した際に、スレーブ装置は別のマスタ装置と同期用パケットを交換することで同期精度の劣化を抑えることができる。
【０００５】
IEEE 1588で規定される時刻同期プロトコルでは、複数の時刻同期装置がネットワーク上に存在する場合に、各装置の動作ステートを自動的に決定するためのBest Master Clock（ＢＭＣ）アルゴリズムが規定されている。このアルゴリズムでは、時刻同期管理用のドメイン（ＰＴＰドメイン）が定義されており、一つのＰＴＰドメインではマスタとして動作する装置は１台のみと規定されている。複数のマスタ候補装置がある場合は、各自の装置のクロック性能や意図的に設定された優先度などの情報を含むパケット（Announceメッセージ）を定期的に交換し、ＢＭＣアルゴリズムで規定される判定条件に基づいてマスタとなる装置が決定される。なおＢＭＣアルゴリズムは各装置で実行されるが、判定に用いる装置情報はAnnounceメッセージにより交換されたものであるから、best masterの判定結果はＰＴＰドメイン内のどの装置においても同一となる。
【０００６】
ＢＭＣアルゴリズムは、State Decisionアルゴリズムと、Data Set Comparisonアルゴリズムで構成される。データセット（Data set）は装置の情報（クロック精度や優先度など）をまとめたものであり、マスタ装置がAnnounceメッセージにより定期的に送信している。Announceメッセージを受信した装置は、受信メッセージのdata setと自装置のdata setをData Set Comparisonアルゴリズムにより比較し、比較対象の二つの装置のどちらが優れているかを判定する。判定の結果から、State Decisionアルゴリズムにより最も優れた装置（best master）と自装置の推奨動作ステートを決定する。
【０００７】
自らの推奨動作ステートがマスタとなった装置は、スレーブと同期用パケットの交換を開始する。推奨動作ステートがスレーブとなった装置では、同期すべきマスタ装置（best master）が決定され、そのマスタとの同期を開始する。一方、マスタとして動作しない他のマスタ候補装置はパッシブモードに移行し、同期メッセージの送受信は行わず現在のマスタ装置から定期的に送信されるAnnounceメッセージを受信し続ける。
【０００８】
現在のマスタに障害が発生するか、あるいはネットワーク経路に障害が発生した場合、当該マスタからAnnounceメッセージが届かなくなる。これにより、残りのマスタ候補装置は障害の発生を検知し、マスタ候補装置の中から新たなマスタが決定される。スレーブ装置は新たなマスタ装置と同期用パケットを交換して時刻同期を継続する。
【０００９】
同期精度を劣化させる二つめの要因として、ネットワークの混雑による同期用パケットの伝送遅延時間変動が挙げられる。非特許文献１で述べられているように、IEEE 1588において、スレーブ装置の時刻とマスタ装置の時刻のオフセットは、Syncパケットのスレーブ受信時刻と同パケットのマスタ送信時刻の時間差を求め、この時間差から同期用パケットのマスタ装置とスレーブ装置間の伝送遅延時間を減ずることで求めている。この伝送遅延時間はあらかじめ求めておく必要があり、具体的にはSyncパケットのマスタ送信時刻とスレーブ受信時刻、およびDelay_Reqパケットのスレーブ送信時刻とマスタ受信時刻から求めている。
【００１０】
このとき、同期用パケットの伝送遅延時間が一定であればスレーブは正確に時刻を補正することができる。しかし一般的なネットワークでは伝送遅延時間は変動しており、スレーブの時刻補正値には誤差が含まれる。
【００１１】
パケット伝送遅延時間が変動する原因の一つとして、伝送経路途中のスイッチで発生するパケットのキューイング遅延が挙げられる。スイッチへ時刻同期用パケットとその他のパケットが同時に到来した場合に、これらのパケットの転送先ポートが同じであるとき、送信先ポートにおいて転送待ち時間すなわちキューイング遅延が生ずる。キューイングの発生、およびキューイング遅延時間はランダムである。
【００１２】
これに対して非特許文献２では、スレーブに到来した時刻同期用パケットにキューイング遅延が生じたかどうかを、特許文献１を基にした方法で推定し、キューイング遅延が生じていないパケットのみを抽出して時刻同期処理に用いることで時刻同期精度の劣化を抑えている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１０−７４６００号公報
【非特許文献】
【００１４】
【非特許文献１】“IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems，” IEEE Standard 1588-2008.
【非特許文献２】“Improvement of synchronization accuracy in IEEE 1588 using a queuing estimation method,”Proceedings of 2009 IEEE International Symposium on Precision Clock Synchronization for Measurement, Control, and Communications, pp. 12-16.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上記で述べたように、時刻同期精度の劣化を抑えるには、マスタ装置を複数台設置し、マスタ装置あるいは回線に障害が生じた際に予備のマスタ装置と同期を継続させるのが有効である。さらに各々のマスタとスレーブ間の通信を異なる経路で行わせると、スレーブは混雑していない経路を用いて通信するマスタ装置と優先的に同期することで、時刻同期精度の劣化を抑えることができる。しかし従来方法には以下で述べる二つの問題がある。
【００１６】
一つめの問題点は、従来方法ではマスタ装置がネットワーク上に一つしか存在できず、マスタ装置や伝送路に障害が発生した際にスレーブ装置の同期精度劣化が発生することである。
【００１７】
上記で述べたように、IEEE 1588では、一つの時刻同期管理用のドメイン（ＰＴＰドメイン）ではマスタは１台しか存在することができない。現在のマスタに障害が発生するか、あるいはネットワーク経路に障害が発生するなどして、当該マスタからAnnounceメッセージが届かなくなると、残りのマスタ候補装置は障害の発生を検知し、マスタ候補装置の中から新たなマスタが決定される。このときスレーブではどの装置とも同期用パケットを送受信しない、すなわちどの装置とも同期していない状態が一定期間発生するうえに、マスタが切り替わるたびに新しいマスタと同期を確立しなおす必要があり、確立するまでの間はスレーブの時計自身の性能で動作することとなり同期精度が劣化する恐れがある。
【００１８】
二つめの問題として、各装置の動作ステートを決定するＢＭＣアルゴリズムでは、マスタ候補装置の性能のみが判定条件に用いられており、回線の混雑度を考慮していないことが挙げられる。マスタとなった装置の性能がＰＴＰドメイン内の候補装置の中で最良であったとしても、マスタとスレーブ間の経路が混雑している場合は同期精度が劣化してしまう。非特許文献２のような手法を用いることで同期精度の改善が図れるが、経路が極端に混雑したり、混雑が長時間継続したりする場合は限界がある。また、マスタ候補装置を複数設置する際に必ずしも各装置で性能に差違を持たせるとは限らず、同等の性能を有する装置が用いられることも多い。このような場合は、経路の混雑を検出し、空いている別の経路を経由して通信できるマスタとの同期を確立した方が、スレーブ装置のクロックの精度および安定度の向上が期待できる。
【００１９】
従って、以上述べた二つの問題を解決するために、本発明は、冗長機能を改善してマスタ装置を複数同時稼働させ、マスタ装置あるいは回線に障害が発生した際にも、同期精度劣化を抑制する、さらに経路の混雑を検出し、混雑が少ない経路を経由するマスタを選択し、回線混雑による同期精度劣化を抑えることが可能なネットワークを介した時刻同期装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を実現するため本発明による時刻同期装置は、時刻基準を有する複数の主装置と該複数の主装置の時計に同期する従装置を備え、パケットベースのネットワークを介して同期用パケットを交換して前記従装置の時刻を前記主装置の時刻に同期させる時刻同期装置において、前記従装置が前記複数の主装置と前記同期用パケットを交換する手段と、前記複数の主装置の優先順位を算出する算出手段と、前記複数の主装置の優先順位および前記同期用パケットに基づき、前記従装置の時刻を前記主装置の時刻に同期させる同期手段とを備える。
【００２１】
そして、前記複数の主装置と従装置間の経路の経路混雑度を推定する推定手段を備え、  前記算出手段は、前記経路混雑度に基づき、前記複数の主装置の優先順位を算出することを特徴としている。
【００２２】
また、前記同期手段は、最高の優先順位を有する主装置の同期用パケットから求めたクロック誤差を用い前記従装置の時刻を補正する、または前記複数の主装置の同期用パケットから求めたクロック誤差を前記複数の主装置の優先順位で加重平均した値を用い前記従装置の時刻を補正することも好ましい。
【００２３】
また、前記同期用パケットの伝送遅延揺らぎ発生を推定する手段をさらに有し、前記クロック誤差は、伝送遅延揺らぎが発生していないと推定された同期用パケットから求められることも好ましい。
【００２４】
また、前記推定手段は、伝送遅延揺らぎが発生していないと推定された同期用パケットの個数に基づいて、経路混雑度を推定することも好ましい。
【００２５】
また、前記算出手段は、前記経路混雑度および主装置の性能に基づき、最良と判断する主装置を選択するアルゴリズムを有し、前記複数の主装置の中から、前記アルゴリズムにより最高の優先順位の主装置を選択し、前記最高の優先順位の主装置を除く前記複数の主装置の中から、前記アルゴリズムにより次の優先順位の主装置を選択し、前記最高および前記次の優先順位の主装置を除く前記複数の主装置の中から、前記アルゴリズムにより第３の優先順位の主装置を選択することを繰り返すことにより、前記複数の主装置の優先順位を算出することも好ましい。
【００２６】
また、前記アルゴリズムは、前記経路混雑度が少ない主装置を最良と判断する比較をData Set Comparisonアルゴリズムに挿入したものであることも好ましい。
【発明の効果】
【００２７】
本発明では、複数マスタ装置を同一ネットワーク内（あるいは同一ＰＴＰドメイン内）で同時に稼働させることにより、ある一つのマスタ装置に障害が発生した場合や、マスタとスレーブ間の経路に障害が発生した場合、あるいは当該経路が混雑した場合においても、スレーブ装置が別のマスタ装置との同期を継続して自クロックの精度劣化の抑制を図ることができる。また経路混雑度の推定手段を設けるとともに、ＢＭＣアルゴリズムを用いてマスタ優先度を決定する際に経路混雑度を判定条件として採用することで、当該スレーブ装置にとって最良のマスタ装置を選択することが可能となる。これによって、スレーブ装置のクロック同期精度の向上を図ると共に、装置や経路で発生する障害や回線の輻輳による同期精度の劣化を抑えてスレーブ装置の信頼性の向上を図ることができる。
【図面の簡単な説明】
【００２８】
【図１】時刻同期装置の設置形態を示す。
【図２】本実施形態の時刻同期装置の機能構成を示す。
【図３】同期用メッセージの送受信シーケンスを示す。
【図４】同期用メッセージの送信間隔および受信間隔を示す。
【図５】パケットキューイング遅延推定の例を示す。
【図６】経路混雑度を考慮するよう変更したData Set Comparisonアルゴリズムのフローチャートを示す。
【図７】クロック制御部の構成例を示す。
【図８】ドリフト・オフセット推定部の構成例を示す。
【図９】計算機シミュレーションで想定するネットワーク構成を示す。
【図１０】シミュレーションで想定するクロス・トラフィック負荷変動（１）を示す。
【図１１】図１０のクロス・トラフィックが存在する場合の時刻同期精度シミュレート例を示す。
【図１２】図１０のクロス・トラフィックが存在場合の経路混雑度推定例を示す。
【図１３】シミュレーションで想定するクロス・トラフィック負荷変動（２）を示す。
【図１４】図１３のクロス・トラフィックが存在する場合の時刻同期精度シミュレート例を示す。
【図１５】図１３のクロス・トラフィックが存在場合の経路混雑度推定例を示す。
【発明を実施するための形態】
【００２９】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。本発明では、図１に示すように複数のマスタ装置と一台以上のスレーブ装置により構成される。各装置の代表的な構成は、図２に示すように、ネットワークインタフェース部１、タイムスタンプ処理部２、プロトコルスタック処理部３、時刻同期制御部４、クロック制御部５、ローカルクロック部６およびクロックインタフェース部７で構成される。ネットワークインタフェース部１、タイムスタンプ処理部２、およびプロトコルスタック処理部３は非特許文献１に記載されている機能と同様である。
【００３０】
時刻同期制御部４は、複数のマスタ候補装置が同時にマスタとして稼働できるようにする手段と、スレーブ装置が複数マスタの優先度を決定する手段と、スレーブ装置がマスタの優先度を決定する際に経路の混雑度を考慮する手段とを有し、クロック制御部５がスレーブ装置が複数マスタと並行して同期用パケットを交換して各々のマスタとのクロック周波数偏差およびオフセットを推定しクロック補正に用いる手段を有することにより、上記の２つの問題を解決する。以下では時刻同期プロトコルとしてIEEE 1588を用いた時刻同期装置を例に挙げて実施形態を述べる。
【００３１】
ローカルクロック部６は、必要とするクロック精度により、ルビジウム発振器、温度補償機能付き発振器（ＴＣＸＯ）、温度制御機能付き発振器（ＯＣＸＯ）などを具備する。マスタ装置では、必要に応じてＧＰＳなどの基準時刻をクロックインタフェース部７を介して取得し、クロック制御部５によりローカルクロック部６のドリフトおよびオフセットを補正して外部基準時刻に同期させる。スレーブ装置では、時刻同期制御部４およびクロック制御部５で推定したローカルクロックのマスタ装置のクロックに対するドリフト、オフセットを補正するとともに、クロックインタフェース部７でクロック信号、例えばＰＰＳ（pulse per second）信号、１０ＭＨｚクロック信号、ＴｏＤ（time of day）などを生成し、外部装置に対して出力する。
【００３２】
時刻同期制御部４では、時刻同期用パケットの送受信制御、同パケットの送受信時刻と同パケットで伝送されるＰＴＰデータを収集し、時刻同期に係る処理を行う。時刻同期用パケットに含まれるデータは非特許文献１に記述されている。時刻同期処理は、非特許文献１で述べられているような処理、すなわち、ＢＭＣアルゴリズムの実行、クロック制御部５でのドリフト・オフセット推定処理の制御などである。以下では時刻同期制御部４、クロック制御部５、ローカルクロック部６での処理について述べる。
【００３３】
本発明で用いる装置では、まずＢＭＣアルゴリズムを改良して複数装置が同時にマスタとして稼働できるようにする。本装置では、アルゴリズムを実行した結果、自ノードの推奨動作ステートがパッシブとなったノードの動作ステートを強制的にマスタに移行させることで実現する。
【００３４】
次に、マスタの優先度を決定する際に各マスタとスレーブ間の経路混雑度を考慮できるようにする。経路混雑度は、特許文献１のような手法を用いて時刻同期制御部４が推定する。本装置では経路混雑度推定を実現するために、図３に示すメッセージ・シーケンスを用いる。これは、IEEE 1588で定義されているDelay-request responseメカニズムを基にしており、SyncメッセージおよびDelay_Reqメッセージの前後にプローブパケット（probing packet）を併せて送信するシーケンスである。伝送経路途中にあるスイッチにおいてキューイングが発生すると、図４に示すようにパケット間隔が変動する。
【００３５】
図５はパケットキューイング遅延推定の一例を示したものである。同期用パケットを受信した装置ではまず、ｊ番目のパケットとその後続の（ｊ＋１）番目のパケットの送信間隔τｄｅｐ（ｊ）をそれらのパケットに含まれる送信時刻から計算し、さらに自装置で測定した受信時刻からパケットの到来間隔τａｒｒ（ｊ）を計算する。次にこのｊ番目（ただし１＜ｊ＜Ｎｐ＋１とする）のパケットについて、そのパケットの前後のパケットとの送信間隔と受信間隔を比較し、次の条件に基づいてキューイング遅延の発生の有無を推定する。
ａ−ｉ）  （τａｒｒ（ｊ−１）−τｄｅｐ（ｊ−１））＞Δτもしくは（τａｒｒ（ｊ）−τｄｅｐ（ｊ））＜−Δτであれば、ｊ番目のパケットではキューイング遅延が発生した。
ａ−ｉｉ）  上記以外の場合は、ｊ番目のパケットではキューイング遅延は発生していない。
【００３６】
Δτは判定スレッショルドであり、以降の検証では２００ナノ秒とした。この判定スレッショルドは、パケットのキューイング以外の原因で生ずるパケット間隔変化を考慮して決定する。例えば、伝送中に通過するスイッチの転送処理ジッタやスレーブ装置のタイムスタンプ処理精度を考慮する必要がある。
【００３７】
本装置では、推定確度を向上させるために、上記一度目の推定で「キューイング遅延発生」と推定したパケットを破棄し、「キューイング遅延発生せず」と推定したパケットだけで改めて推定処理を行う。キューイング遅延発生せずと推定したパケットの中でｋ番目のパケットとその後続の（ｋ＋１）番目のパケットの送信間隔と受信間隔をそれぞれτｏｒｇ（ｋ）、τｓｒｖ（ｋ）として、次の条件に基づいてキューイング遅延の発生の有無を推定する。
ｂ−ｉ）  （τｓｒｖ（ｋ−１）−τｏｒｇ（ｋ−１））＞Δτもしくは（τｓｒｖ（ｋ）−τｏｒｇ（ｋ））＜−Δτであれば、ｋ番目のパケットではキューイング遅延が発生した。
ｂ−ｉｉ）  上記以外の場合は、ｋ番目のパケットではキューイング遅延は発生していない。
【００３８】
図５の例では、５番のパケットが一度目の推定ではキューイング遅延発生せずと推定されているが、二度目の推定ではキューイング遅延発生と推定され破棄されている。時刻同期処理には、二度目の推定でキューイング遅延発生せずと推定されたパケットの中から一つを選んで用いる。
【００３９】
続いて、パケットキューイング推定の結果から経路混雑度を示す指数ｕを以下の式を用いて計算する。
【数１】
0005495323.tif 000002
上式のｎｓｒｖはキューイング遅延推定において「キューイング遅延発生せず」と判定されたパケットの個数である。またＮｐはSyncパケットあるいはDelay_Reqパケットと一緒に送信されるプローブパケットの個数である。
【００４０】
これらの推定は、スレーブ装置においてはSyncメッセージとそれに付随して送信されたプローブパケットが到来する毎に実行される。一方マスタ装置においては、スレーブからDelay_Reqメッセージとそれに付随して送信されたプローブパケットが到来する毎に実行され、推定結果はDelay_Respメッセージによりスレーブに送信される。なお本装置の時刻同期処理、すなわちSyncメッセージおよびDelay_Reqメッセージの送受信タイムスタンプを用いたクロックの周波数偏差および時刻オフセットの補正処理は、非特許文献１や非特許文献２と同様の手法を用いている。
【００４１】
上記により求めた経路混雑度をData Set Comparisonアルゴリズムに適用してマスタ優先度の決定で考慮できるようにする。経路混雑度はマスタ〜スレーブ方向ｕｍとその逆方向ｕｓの二つがあり、本装置では次式により重み付け平均した値を求める。
【数２】
0005495323.tif 000003
ｗｍ、ｗｓは重み付け係数であり、同期メッセージの送信間隔などにより決定する。以降の検証では簡単のためにｗｍ＝ｗｓとしている。この係数を以降ではestimatedPathCongestionと呼ぶ。マスタ優先度の決定では、この値をさらに過去何回かの計算値を平均して用いる。平均値を数式中ではａｖｇ［ρ］と表記し、以降の検証では過去５回の計算値を平均して用いる。データセットＡおよびデータセットＢに含まれる経路混雑度は、次の条件で比較する。
ｃ−ｉ）  ａｖｇ［ρＡ］−ａｖｇ［ρＢ］＞Δρならば、データセットＢは同Ａより良い
ｃ−ｉｉ）  ａｖｇ［ρＢ］−ａｖｇ［ρＡ］＞Δρならば、データセットＡは同Ｂより良い
ｃ−ｉｉｉ）  上記以外の場合は、データセットＡと同Ｂは同等である
Δρは判定スレッショルドであり、ａｖｇ［ρ］の推定確度、時間変動などを考慮して決定する。この比較は、従来のData Set Comparisonアルゴリズムの任意の箇所に挿入する（以下、修正ＢＭＣアルゴリズムと言う）。以降の検証では、図６に示すようにGM priority1値の比較処理の前に挿入する。
【００４２】
複数の装置を同時にマスタとして稼働させる場合、従来のbest masterに加えてこれ以降の優先度を決定しておくと、スレーブの冗長処理において便利である。本装置ではbest master以下のマスタ装置をsecond best master、third best master…と定義し、次の手順により決定する。
・修正ＢＭＣアルゴリズムを実行し、best masterとなるノードを決定する。
・自装置の推奨動作ステートがマスタでなく、かつパッシブでない場合は、上記best masterノードのデータセットを破棄し、修正ＢＭＣアルゴリズムを残りのデータセットを用いて実行する。
・上記二度目に実行した修正ＢＭＣアルゴリズムで最良と決定されたノードをsecond best masterとする。
・上記second best masterのデータセットを破棄し、自ノード以外のデータセットが残っている場合は、さらに修正ＢＭＣアルゴリズムを実行してthird best masterを決定する。以降同様に繰り返す。
【００４３】
上記手順で求められたマスタ装置の優先度順位は、以降で述べる冗長制御処理で用いられる。
【００４４】
図７にスレーブ装置のクロック制御部５の構成を示す。本装置では複数のドリフト・オフセット推定部５１を具備しており、スレーブ装置のクロック周波数ドリフトと時刻オフセットをマスタ装置毎に並行して推定する。ドリフト・オフセット推定部５１は例えば図８に示すような構成である。推定結果は冗長制御部５２に入力され、ＰＩ（proportional-integral）制御部５３への入力値を演算する。ＰＩ制御は自動制御で一般的に用いられる制御方式である。該制御部は、ドリフト補正用とオフセット補正用の二つのＰＩ制御器を具備するか、あるいはいずれか一つのＰＩ制御器と、冗長制御部５２から入力されるドリフト補正値とオフセット補正値からＰＩ制御器に入力する値を計算する機能を具備する。また、冗長制御部５２に、時刻同期制御部４からマスタ装置の優先度順位が入力される。
【００４５】
冗長制御部５２では、各マスタとの推定結果から実際に自クロックのドリフト補正量およびオフセット補正量を求める。本装置では、下記の二つの方法のいずれかを用いる。
【００４６】
一つめの方法は、best masterから推定した周波数ドリフトおよび時刻オフセットのみを自クロックの補正に用いる方法である。best masterが更新された際は、ＰＩ制御部５３に入力する値を冗長制御部で新しいbest masterのものに切り替える。このとき、ＰＩ制御部５３は初期化されず、それまでの状態が保持される。以降ではこの方法を「切替制御法」と表記する。
【００４７】
二つめの方法は、各マスタとの推定結果を、マスタ優先度を考慮して重み付け平均する方法である。優先度ｎ番目のマスタとのオフセット推定値およびドリフト推定値をそれぞれＯｎ、Ｄｎとすると、ＰＩ制御部５３に入力するドリフト補正値Ｄｗおよびオフセット補正値Ｏｗはそれぞれ次式で表される。
【数３】
0005495323.tif 000004
ここで、ｗは重み付係数である。Best masterが更新された場合も、ＰＩ制御部５３は初期化されずそれまでの状態が保持される。以降ではこの方法を「加重平均法」と呼ぶ。
【００４８】
続いて、上記装置の動作を計算機シミュレーションで検証した例を示す。ネットワークは図９に示す構成を想定し、回線速度は１００Ｍｂｐｓとした。Master#1およびMaster#2の時刻は完全に一致すると仮定した。同期用パケットの送信間隔は、SyncおよびDelay_Reqメッセージは０．５秒とし、Announceメッセージは１秒とした。SyncおよびDelay_Reqメッセージと一緒に送信するプローブパケットは２０個とし、各パケット間の送信間隔（図４のτｄｅｐ（１）、…、τｄｅｐ（ｎｐ）に相当する間隔）は１３９．０４マイクロ秒とした。回線負荷（クロス・トラフィック）をトラフィック・ジェネレータ１〜４により発生させた。クロス・トラフィックは図９に示すように、トラフィック・ジェネレータ１と同２の間と、同３と同４の間で生成した。クロス・トラフィックのフレームサイズは１５１８バイトとした。回線占有率はトラフィック・ジェネレータ１と同２の間は４０％で一定とし、同３と同４の間は後述するように時間変動するよう設定して検証した。
【００４９】
クロス・トラフィックが図１０に示すような回線占有率の時間変動となるようにしてシミュレートした場合の、スレーブ装置の時刻誤差を図１１に示す。同図には、各時刻におけるbest masterのノードも示している。またマスタからスレーブ方向の経路混雑度推定値を図１２に示す。クロス・トラフィックの時間変動に応じて経路混雑度推定値が変化しており、その結果経路混雑度が低い経路を経由して通信するマスタ装置をbest masterとしていることがわかる。冗長方式を用いた装置の時刻誤差の変動量は、冗長制御を用いない装置と比較して小さくなっていることがわかる。
【００５０】
別のシミュレーション結果として、クロス・トラフィックが図１３に示すような回線占有率の時間変動となるようにした場合の結果を図１４、図１５に示す。クロス・トラフィックの時間変動に応じてbest masterが更新され、冗長方式を用いない装置と比較して時刻誤差変動が抑えられていることがわかる。本例では、経路混雑度が急激に変動しており、このためbest master更新時に誤差変動が生じている。このような経路混雑度の急激な変動を関知した場合は、一定時間ＰＩ制御部５３への入力を停止するなどの処理を行うと時刻誤差変動の抑制が図れる。
【００５１】
なお、上記本発明の時刻同期装置では、時刻同期プロトコルの一例としてIEEE 1588を用いて説明したが、本発明はこれと同様のメカニズムを有するプロトコルに対しても適用できる。
【００５２】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。
【符号の説明】
【００５３】
１  ネットワークインタフェース部
２  タイムスタンプ処理部
３  プロトコルスタック処理部
４  時刻同期制御部
５  クロック制御部
６  ローカルクロック部
７  クロックインタフェース部
５１  ドリフト・オフセット推定部
５２  冗長制御部
５３  ＰＩ制御部
【図１】
0005495323.tif 000005
【図２】
0005495323.tif 000006
【図３】
0005495323.tif 000007
【図４】
0005495323.tif 000008
【図５】
0005495323.tif 000009
【図６】
0005495323.tif 000010
【図７】
0005495323.tif 000011
【図８】
0005495323.tif 000012
【図９】
0005495323.tif 000013
【図１０】
0005495323.tif 000014
【図１１】
0005495323.tif 000015
【図１２】
0005495323.tif 000016
【図１３】
0005495323.tif 000017
【図１４】
0005495323.tif 000018
【図１５】
0005495323.tif 000019