(57)【要約】  マスタノードとスレーブノード間のクロック同期精度を安定的に計測する。  スレーブノードが、マスタノードから送信されてきたパケットを用いて、自身のクロックを前記マスタノードのクロックに同期させるスレーブノードが、前記送信されてきたパケットを用いて前記スレーブノードのクロックを再生し、前記送信されてきたパケットの情報及び前記再生により得られた前記スレーブノードのクロックを蓄積し、前記蓄積した情報に基づいてクロック同期を行う。
2009035091.tif 000002
【特許請求の範囲】
【請求項１】
マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いてスレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするスレーブノード。
【請求項２】
前記送信されてきたパケットの中から閾値以下の遅延ジッタを含んだタイムスタンプパケットのみを通過させるパケットフィルタと、
前記パケットフィルタを通過したタイムスタンプパケットに基づいてスレーブノードのクロックを再生するＰＬＬと、
タイムスタンプパケットを蓄積するとともに蓄積データを再生クロックで取り出すパケットバッファと、
前記パケットバッファにおいて蓄積した蓄積データ量の最大値を監視し、前記パケットフィルタにおける閾値を動かす量と方向を計算する精度監視手段と、
前記精度監視手段における計算結果に基づいて、前記パケットフィルタにおける閾値を増減する、閾値制御手段と、
を更に備えることを特徴とする請求項１記載のスレーブノード。
【請求項３】
現在のクロック同期精度を算出する同期精度算出手段と、
算出されたクロック同期精度に関する情報を外部モニタに表示する表示手段と、
を更に備えることを特徴とする請求項２に記載のスレーブノード。
【請求項４】
前記パケットフィルタにおける各パケットの遅延ジッタは、
タイムスタンプパケットに記載の情報に基づいて各パケットの転送遅延時間を逐次計測し、その最小値を求めることでネットワークの固定遅延を導出するとともに、導出された固定遅延を各パケットの転送遅延時間から差し引くことで算出されていることを特徴とする請求項２又は３に記載のスレーブノード。
【請求項５】
前記精度監視手段は、バッファ蓄積量の最大値が理想値と比較してどれだけズレているかを計算するとともに、前回計算したズレと比較して、ズレ量が大きくなったのか、小さくなったのかを判別することにより、パケットフィルタにおける閾値を動かす方向を決定することを特徴とする請求項２乃至４の何れか１項に記載のスレーブノード。
【請求項６】
前記閾値調整手段は、前記パケットフィルタの閾値の調整量に対応させて、クロック同期の所要時間が均一となるように前記位相同期手段における時定数を調整することを特徴とする請求項２乃至５の何れか１項に記載のスレーブノード
【請求項７】
前記精度算出手段は、
前記精度監視手段で計算されたズレ量に基づいて、以下の数式
【数１】
2009035091.tif 000008
但し、
バッファの蓄積量の最大値のズレ量  ＝  Ｄｅｖｉａｔｉｏｎ［ｎ］  ［bit］
精度監視部でバッファの蓄積量の最大値を観測する時間幅  ＝  Ｔ  ［second］
タイムスタンプパケットのビットレート  ＝  Ｂ  ［bit per second］
或る係数  ＝  Ｃ
によりクロック同期精度を算出することを特徴とする請求項２乃至６の何れか１項に記載のスレーブノード。
【請求項８】
前記精度算出手段は、
前記同期精度監視手段で計算されたズレ量に基づいて、以下の数式
【数２】
2009035091.tif 000009
但し、
バッファの蓄積量の最大値のズレ量  ＝  Ｄｅｖｉａｔｉｏｎ［ｉ］  ［bit］
精度監視部でバッファの蓄積量の最大値を観測する時間幅  ＝  Ｔ  ［second］
タイムスタンプパケットのビットレート  ＝  Ｂ  ［bit per second］
或る係数  ＝  Ｃ
によりクロック同期精度を算出することを特徴とする請求項２乃至６の何れか１項に記載のスレーブノード。
【請求項９】
前記マスタノードから送信された前記パケットを受信するパケット受信手段と、
受信した前記パケットを用いてスレーブノードのクロックを再生するＰＬＬと、
前記パケットの到着状況並びに出力状況を管理するパケットカウンタと、
前記パケットカウンタのカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測手段と、
を更に備えることを特徴とする請求項１記載のスレーブノード。
【請求項１０】
前記マスタノードから送信されたパケットとはタイムスタンプパケットであり当該タイムスタンプパケットを受信するパケット受信手段と、
受信した前記タイムスタンプパケットを基にスレーブノードのクロックを再生するＰＬＬと、
前記タイムスタンプパケットの到着状況並びに出力状況を管理するパケットカウンタと、
前記パケットカウンタのカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測手段と
を更に備えることを特徴とする請求項１記載のスレーブノード。
【請求項１１】
閾値以下のジッタを含んだタイムスタンプパケットのみを通過させるパケットフィルタを更に備えることを特徴とする請求項１０に記載のスレーブノード。
【請求項１２】
前記パケットカウンタは、前記パケットの到着時に所定のカウンタ値が加算され、通常時には一定速度でカウンタ値が減算されることを特徴とする請求項９乃至１１の何れか１項に記載のスレーブノード。
【請求項１３】
前記パケットカウンタは、前記パケットの到着時に格納されるタイムスタンプ値と一つ前に到着した前記パケットに格納されるタイムスタンプ値の差分が所定の値のＮ（Ｎは１以上の自然数）倍である時に、所定のカウンタ値のＮ倍の値が加算され、通常時には一定速度でカウンタ値が減算されることを特徴とする請求項９乃至１１の何れか１項に記載のスレーブノード。
【請求項１４】
前記同期精度計測手段が、
前記パケットカウンタに前記パケットが到着した時に前記所定のカウンタ値を加算した後の値を到着時カウンタ値とし、所定の計測時間の間での前記到着時カウンタ値の最大値を検出し、基準値に対する前記カウンタ最大値の変動量を算出するカウンタ最大値監視手段と、
前記変動量を基に前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度算出手段と、
を備えることを特徴とする請求項１２又は１３に記載のスレーブノード。
【請求項１５】
前記同期精度計測手段が、
前記パケットカウンタに前記パケットが到着した時に前記所定のカウンタ値を加算する前の値を到着時カウンタ値とし、所定の計測時間の間での前記到着時カウンタ値の最大値を検出し、基準値に対する前記カウンタ最大値の変動量を算出するカウンタ最大値監視手段と、
前記変動量を基に前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度算出手段と、
を備えることを特徴とする請求項１２又は１３に記載のスレーブノード。
【請求項１６】
前記パケットカウンタは、前記パケットの到着時に所定のカウンタ値が減算され、通常時には一定速度でカウンタ値が加算されることを特徴とする請求項９乃至１１の何れか１項に記載のスレーブノード。
【請求項１７】
前記パケットカウンタは、前記パケットの到着時に格納されるタイムスタンプ値と一つ前に到着した前記パケットに格納されるタイムスタンプ値の差分が所定の値のＮ（Ｎは１以上の自然数）倍である時に、所定のカウンタ値のＮ倍の値が減算され、通常時には一定速度でカウンタ値加算がされることを特徴とする請求項９乃至１１の何れか１項に記載のスレーブノード。
【請求項１８】
前記同期精度計測手段が、
前記パケットカウンタに前記パケットが到着した時に前記所定のカウンタ値を減算した後の値を到着時カウンタ値とし、所定の計測時間の間での前記到着時カウンタ値の最小値を検出し、基準値に対する前記カウンタ最小値の変動量を算出するカウンタ最小値監視手段と、
前記変動量を基に前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度算出手段と、
を備えることを特徴とする請求項１６又は１７に記載のスレーブノード。
【請求項１９】
前記同期精度計測手段が、
前記パケットカウンタに前記パケットが到着した時に前記所定のカウンタ値を減算する前の値を到着時カウンタ値とし、所定の計測時間の間での前記到着時カウンタ値の最小値を検出し、基準値に対する前記カウンタ最小値の変動量を算出するカウンタ最小値監視手段と、
前記変動量を基に前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度算出手段と、
を備えることを特徴とする請求項１６又は１７に記載のスレーブノード。
【請求項２０】
前記同期精度計測手段は、
前記カウンタ最大値監視手段により算出された前記カウンタ最大値の変動量に基づいて、以下の数式
【数３】
2009035091.tif 000010
但し、
カウンタ最大値の変動量＝Ｄｅｖｉａｔｉｏｎ  ［bit］
インターバル＝Ｔ  ［sec］
前記タイムスタンプパケットのビットレート＝Ｂ  ［bps］
によってクロック同期精度を算出することを特徴とする請求項１０乃至１９の何れか１項に記載のスレーブノード。
【請求項２１】
前記同期精度計測手段は、
前記カウンタ最大値監視手段により算出された前記カウンタ最大値の変動量に基づいて、以下の数式
【数４】
2009035091.tif 000011
但し、
インターバルｉにおけるカウンタ最大値の変動量＝Ｄｅｖｉａｔｉｏｎ［ｉ］  ［bit］
インターバル＝Ｔ  ［sec］
前記タイムスタンプパケットのビットレート＝Ｂ  ［bps］
クロック同期精度を算出するために使用するＤｅｖｉａｔｉｏｎ［ｉ］のサンプル数（インターバル回数）＝Ｎ
によってクロック同期精度を算出することを特徴とする請求項１０乃至１９の何れか１項に記載のスレーブノード。
【請求項２２】
算出したクロック同期精度の結果に基づき、同期精度を向上するために前記ＰＬＬや前記パケットフィルタのパラメータを調整するパラメータ制御手段を更に備えることを特徴とする請求項１乃至２１の何れか１項に記載のスレーブノード。
【請求項２３】
前記スレーブノードに送信する前記パケットを生成し、生成した前記パケットをスレーブノードに対して送信するマスタノードと、
前記請求項１乃至２２の何れか１項に記載のスレーブノードと、
を備えることを特徴とするクロック同期システム。
【請求項２４】
スレーブノードが、マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いて前記スレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするクロック同期方法。
【請求項２５】
パケットフィルタを用いて、前記送信されてきたパケットの中から閾値以下の遅延ジッタを含んだタイムスタンプパケットのみを通過させる第１のステップと、
ＰＬＬを用いて、前記第１のステップにおいて通過したタイムスタンプパケットに基づいてクロック同期方法のクロックを再生する第２のステップと、
パケットバッファを用いて、タイムスタンプパケットを蓄積するとともに蓄積データを再生クロックで取り出す第３のステップと、
前記第３のステップにおいて蓄積した蓄積データ量の最大値を監視し、前記第１のステップにおける閾値を動かす量と方向を計算する精度監視ステップと、
前記精度監視ステップにおける計算結果に基づいて、前記第１のステップにおける閾値を増減する、閾値制御ステップと、
を更に備えることを特徴とする請求項２４記載のクロック同期方法。
【請求項２６】
前記マスタノードから送信された前記パケットを受信するパケット受信ステップと、
ＰＬＬを用いて、受信した前記パケットを用いて前記スレーブノードのクロックを再生する第１のステップと、
パケットカウンタを用いて、前記パケットの到着状況並びに出力状況を管理する第２のステップと、
前記第２のステップにおけるカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測ステップと、
を更に備えることを特徴とする請求項２４記載のクロック同期方法。
【請求項２７】
前記マスタノードから送信されたパケットとはタイムスタンプパケットであり当該タイムスタンプパケットを受信するパケット受信ステップと、
ＰＬＬを用いて、受信した前記タイムスタンプパケットを基に前記スレーブノードのクロックを再生する第１のステップと、
パケットカウンタを用いて、前記タイムスタンプパケットの到着状況並びに出力状況を管理する第２のステップと、
前記第２のステップにおけるカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測ステップと
を更に備えることを特徴とする請求項２４記載のクロック同期方法。
【請求項２８】
コンピュータを、
マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いて前記スレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするスレーブノードとして機能させることを特徴とするクロック同期プログラム。
【請求項２９】
コンピュータを、
前記送信されてきたパケットの中から閾値以下の遅延ジッタを含んだタイムスタンプパケットのみを通過させるパケットフィルタと、
前記パケットフィルタを通過したタイムスタンプパケットに基づいてスレーブノードのクロックを再生するＰＬＬと、
タイムスタンプパケットを蓄積するとともに蓄積データを再生クロックで取り出すパケットバッファと、
前記パケットバッファにおいて蓄積した蓄積データ量の最大値を監視し、前記パケットフィルタにおける閾値を動かす量と方向を計算する精度監視手段と、
前記精度監視手段における計算結果に基づいて、前記パケットフィルタにおける閾値を増減する、閾値制御手段と、
を更に備えるスレーブノードとして機能させることを特徴とする請求項２８記載のクロック同期プログラム。
【請求項３０】
コンピュータを、
前記マスタノードから送信された前記パケットを受信するパケット受信手段と、
受信した前記パケットを用いてスレーブノードのクロックを再生するＰＬＬと、
前記パケットの到着状況並びに出力状況を管理するパケットカウンタ手段と、
前記パケットカウンタ手段のカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測手段と、
を更に備えるスレーブノードとして機能させることを特徴とする請求項２８記載のクロック同期プログラム。
【請求項３１】
コンピュータを、
前記マスタノードから送信されたパケットとはタイムスタンプパケットであり当該タイムスタンプパケットを受信するパケット受信手段と、
受信した前記タイムスタンプパケットを基にスレーブノードのクロックを再生するＰＬＬと、
前記タイムスタンプパケットの到着状況並びに出力状況を管理するパケットカウンタ手段と、
前記パケットカウンタ手段のカウンタ値を監視することにより前記マスタノードと前記スレーブノード間のクロック同期精度を算出する同期精度計測手段と
を更に備えるスレーブノードとして機能させることを特徴とする請求項２８記載のクロック同期プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットネットワークを介して、該当する装置間のクロック同期精度を計測するためのシステム、その方法及びそのプログラムに関する。
【背景技術】
【０００２】
ネットワークを転送されるデータ量の増大に伴い、通信事業者にとって、高速データ通信網を安価に実現する必要性が増している。そのため、時分割多重（ＴＤＭ：Time Division Multiplexing）方式を用いた高コストなネットワークからインターネットプロトコル方式（以下、「ＩＰ方式」と記載する。）を用いた低コストかつ高効率なネットワークへの移行が進められつつある。【０００３】
ネットワークを転送されるトラヒックの中には、送信ノード側と受信ノード側で正確なクロック同期が求められるものがある。例えば、音声やビデオなどのリアルタイムデータを高品質にやり取りするためには、予め決められたタイミングでデータを再生する必要があり、そのために安定したクロック同期が必要となる。【０００４】
また、他の例としては、モバイルネットワークサービスでは、セル間のハンドオーバを滞りなく実現するために正確なクロック同期が求められている。具体的には、モバイルネットワーク上の各基地局装置は無線ネットワーク制御装置との間で、５０［ｐｐｂ：parts per billion］という非常に高精度でのクロック同期が求められている。サービス中にもしも基地局装置のクロック同期精度が、この５０［ｐｐｂ］という要求値を超えてしまうと、セル間のハンドオーバが失敗してしまう可能性があり、データが欠落し、通信品質が劣化する恐れがある。【０００５】
この点、ＴＤＭ方式ベースのネットワークでは、受信ノードが伝送路を介して送信ノードのクロック情報を抽出することができるため、送受信ノード間で高精度のクロック同期を実現することが可能だった。これに対して、ＩＰ方式におけるＩＰネットワークでは、ネットワーク内でデータが非同期に転送されるため、受信側ノードでのデータの到着間隔には揺らぎが発生する。そのため、受信データから高精度のクロック情報を抽出することは困難である。よって、受信側ノードが送信側のクロックを再生する必要がある。【０００６】
上述したＩＰネットワークのようなパケットネットワークを介して高精度のクロック再生を実現する技術として、タイムスタンプ方式が提案されている。タイムスタンプ方式の構成について図１を参照して説明する。【０００７】
図１を参照すると、マスタノード１００とスレーブノード１１０がパケットネットワーク１３０を介して相互に接続されている。そして、タイムスタンプ方式では、送信側ノードにあたるマスタノード１００がタイムスタンプ（以下、「ＴＳ」と記載する。）を格納したＴＳパケットを、受信側ノードにあたるスレーブノード１１０に向けて送信する。【０００８】
ＴＳパケットは、パケットネットワーク１３０を経由して、スレーブノード１１０に到着する（図１上部分参照）。ＴＳパケットを受信したスレーブノード１１０は、格納されたＴＳ情報を利用して自身のクロックを調整することにより、マスタノード１００のクロックと同期する。次に、図１の下部分を用いてスレーブノード１１０の構成を説明しながら、より詳細にクロック同期の動作を説明する。【０００９】
スレーブノード１１０は位相同期ループ（ＰＬＬ：Phase-locked loop）（以下及び図面では、「ＰＬＬ」と表記する。）１４０を有し、自身のクロックから生成するＴＳとマスタノード１００から受信したＴＳとの差分を計算し、ＰＬＬ１４０において、その差分を基に自身のクロックを調整することにより、クロック同期を実現する。【００１０】
ＰＬＬ１４０は、位相比較器１４１、ループフィルタ（ＬＰＦ：Low Pass Filter）１４２、比例・積分（ＰＩ：Proportion・Integration）回路（以下及び図面では、「ＰＩ制御器」と表記する。）１４３、電圧制御発振器（ＶＣＯ：Voltage Controlled Oscillator）１４４及びカウンタ１４５の５つの機能から構成されている。【００１１】
位相比較器１４１は、受信ＴＳと自身のクロックから生成するＴＳとの差分信号を計算する。この差分信号はＬＰＦ１４２に入力され、ジッタやノイズが除去される。ＬＰＦ１４２において平滑化された差分信号は、ＰＩ制御器１４３に入力される。ＰＩ制御器１４３では、差分信号を最終的にゼロに収束させる制御信号を計算し、ＶＣＯ１４４に出力する。ＶＣＯ１４４はＰＩ制御器１４３からの制御信号によって決定される周波数のクロックを出力する。これにより、スレーブ側のクロックが調整される。また、カウンタ１４５は調整されたクロックに基づき、スレーブ側のＴＳを生成し、位相比較器１４１に渡す。【００１２】
上述のようなＰＬＬ１４０の動作により、スレーブノード１１０では、パケットネットワーク１３０を経由した場合であっても、マスタノード１００のクロックを再生し、マスタノード１００と同期することができる（例えば特許文献１参照）。
【特許文献１】特開２００４−２４８１２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ここで、クロック同期精度が最良となるケースとは、マスタ・スレーブノード間には一定の固定遅延のみが存在し、タイムスタンプが定期的にスレーブノード側に到着するようなケースである。しかしながら、このようなケースはパケットネットワークではありえない。パケットネットワークでは不可避的に遅延変動が存在し、タイムスタンプの到着時間にジッタがもたらされるためである。そのため、クロック同期を図ることは非常に難しくなる。【００１４】
ここで、スレーブノード側でジッタのように見える要因としては、主に２つの要因が存在する。まず第１の要因として、マスタ・スレーブノード間のクロックドリフトが挙げられるが、第２の要因と比較すると、その影響は軽微である。【００１５】
第２の要因は、前述したネットワークの遅延変動であり、これはタイムスタンプの到着時間に非常に大きなジッタをもたらす。ちなみに、遅延変動の発生原因は、転送パケットがスイッチのキューでランダムに待たされることに起因する。【００１６】
この点、ある程度のジッタであればＰＬＬのＬＰＦで吸収できる。しかし、許容値を超えるようなジッタが入ってきた場合にはＬＰＦでは吸収しきれず同期精度が劣化してしまう。【００１７】
図２では、ジッタの大きなパケットが入ってきたときにクロック同期精度が劣化する様子を示している。【００１８】
したがって、クロック同期精度を維持するには、図３に示されるように、ＰＬＬの前段にパケットフィルタを設けるという方法が、解決方法の１つとして考えられる。そして、許容値（閾値）を超えるジッタを含んだタイムスタンプを阻止するとともに、許容値（閾値）以下のタイムスタンプのみを通過させ、クロック同期に利用するといった対策をとる。【００１９】
しかし、タイムスタンプを阻止すると、その間、ＰＬＬは不安定な自走状態となる。このような自走状態に陥ると温度ドリフトやエージングによって、クロックが変動するという問題が生じる。ＰＬＬの温度ドリフトは、水晶発振回路に温度補償回路を付加することにより高安定化を図った温度補償型水晶発振器（ＴＣＸＯ）でさえ非常に大きいものである（〜３０００ｐｐｂ／℃）。そのため、タイムスタンプを連続的にフィルタし続けてしまうと、この温度ドリフトの影響が顕在化し、同期外れを引き起こす危険性がある。【００２０】
このように、安定したクロック同期を実現するということは、ネットワークの遅延変動や自走状態に陥ることを原因とする温度ドリフトの影響が複雑に絡んだトレードオフ問題であり、解決するのが非常に難しい問題である。【００２１】
このトレードオフ問題を解決するには、遅延変動による精度劣化と、温度ドリフトによる精度劣化の関係を把握し、両者の影響を最小化できる条件を導き出す必要がある。
また、上述の問題とは別の問題も存在する。この点について以下で説明をする。【００２２】
前述したＩＰ方式におけるモバイルネットワークの例のように、サービスによっては、要求される同期精度が定義されるということがある。このことから、マスタノード／スレーブノード間でクロック同期制御を行なっている際に、現在の同期精度を把握することが重要である。ここで、同期精度はマスタノードのクロックとスレーブノードのクロックのズレを基に計測される。【００２３】
この点について、まず実験室での環境を例として説明する。実験室の環境では、図１９に示すようにマスタノード１００とスレーブノード１１０を測定器２００に接続する系を構成する。これにより、測定器はマスタノードとスレーブノードと直接接続されていることになり、各々のクロックを取得可能である。そして、両者のずれから同期精度を計測することが可能である。なお、パケットネットワークを模擬するためにマスタノード１００／スレーブノード１１０の間にネットワークエミュレータを接続することもありうる。【００２４】
しかしながら、実際のフィールドにマスタノード、スレーブノードを設置し、サービスを行なっている状況下では、一般的にはマスタノードとスレーブノードは物理的に離れた場所に設置されるため、両者を直接測定器に接続する系を構築することは困難である。そのため、同期精度を計測することも困難である。【００２５】
このような状況下で同期精度を測定する一つの方法としては、グローバル・ポジショニング・システム（ＧＰＳ：Global Positioning System）を用いる方法がある。すなわち、マスタノードとスレーブノードはＧＰＳから配信される時刻情報を受信し、ＧＰＳに対して同期を取る。これにより、スレーブノードはＧＰＳからの配信情報をマスタとしてそれとの差分から、同期精度を計測する方法である。この方法では、マスタノードとスレーブノードが物理的に離れた場所に設置されていても、外部のＧＰＳの情報を共通のマスタ情報として利用することで、同期精度を計測することができる。一方で、各ノードにＧＰＳ機能を搭載しなければいけないため、コストが上がるという課題がある。更に高精度の同期精度を得るためにはその分、精度の高いＧＰＳが必要となることからより一層のコストが掛かるという課題がある。【００２６】
また、各ノードが設置される建物の立地や構造、周辺環境等により電波が届かない若しくは届きにくい場合には、ＧＰＳが利用できないため、この方法では同期精度を計測できない場合もある、という課題も存在する。【００２７】
そこで、本発明はネットワークの遅延変動の影響を低減するとともに、自走状態中の温度ドリフトの影響を抑え、正確なクロック同期を実現できる、クロック同期精度モニタを用いたクロック同期システム及びクロック同期方法並びにそのプログラムを提供することを目的とする。【００２８】
また、本発明はマスタノード／スレーブノード間のクロック同期精度を安価かつ安定的に計測することができるクロック同期精度計測システム及び同期精度計測方法並びにそのプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【００２９】
本発明によれば、スレーブノードが、マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いて前記スレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするスレーブノードが提供される。【００３０】
更に、本発明によれば、スレーブノードが、マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いて前記スレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするクロック同期方法が提供される。【００３１】
更に、本発明によれば、コンピュータを、スレーブノードが、マスタノードから送信されてきたパケットを受信し、前記受信したパケットを用いて前記スレーブノードのクロックを再生し、前記受信したパケットに含まれる情報及び前記再生により得られた前記スレーブノードのクロックに関する情報を蓄積し、前記蓄積した情報に基づいてクロック同期を行うことを特徴とするスレーブノードとして機能させることを特徴とするクロック同期プログラムが提供される。
【発明の効果】
【００３２】
本発明によれば、ネットワークの遅延変動と自走状態中の温度ドリフトの影響を監視しながら、両者の影響を最小化できるフィルタ閾値を導出することから、安定して動作するクロック同期を実現することが可能となる。【００３３】
さらに、本発明によれば、スレーブノードで管理するＴＳパケットの送受信ビットカウント数の最大値に基づき現在のクロック同期精度を算出することができることから、サービス提供中においても、マスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。
【図面の簡単な説明】
【００３４】
【図１】タイムスタンプ方式を用いた関連する技術のネットワーク構成並びにスレーブノード構成を示す図である。
【図２】タイムスタンプ方式を用いた関連する技術のネットワークにおいてジッタの大きなパケットが入ってきたときにクロック同期精度が劣化する様子を示す図である。
【図３】タイムスタンプ方式を用いた関連する技術のネットワークにおいてパケットフィルタを備えた構成を示す図である。
【図４】本発明の第１の実施形態の基本的構成を表す図である。
【図５】本発明の第１の実施形態における各パケットの遅延時間を示す図である。
【図６】本発明の第１の実施形態におけるパケットフィルタ３０１の閾値とクロック同期精度の関係を示す図である。
【図７】本発明の第１の実施形態におけるスレーブ側クロックがマスタ側クロックに正確に同期しており、かつネットワークの遅延ジッタが常に０の場合のバッファ３０３の蓄積量を表す図である。
【図８】本発明の第１の実施形態におけるスレーブ側クロックがマスタ側クロックに正確に同期しているが、遅延ジッタが存在する場合のバッファ３０３の蓄積量を表す図である。
【図９】ス本発明の第１の実施形態におけるレーブ側クロックがマスタ側クロックに同期しておらず、かつ遅延ジッタが存在する場合のバッファ３０３の蓄積量を表す図である。
【図１０】本発明の第１の実施形態における閾値の制御アルゴリズムについて示す図である。
【図１１】本発明の第１の実施形態における閾値を最適な値に追い込むためのシーケンスを表す図である。
【図１２】本発明の第１の実施形態の有効性を示すために行ったシミュレーションモデルを示す図である。
【図１３】本発明の第１の実施形態と従来方式のクロック同期精度を比較する図である。
【図１４】本発明の第２の実施形態の構成を表す図である。
【図１５】Pseudo-Wire Emulation Edge to Edgeの構成を示す図である。
【図１６】本発明の第３の実施形態の構成を表す図である。
【図１７】本発明の第３の実施形態の変形例の構成を表す図である
【図１８】本発明の実施形態において算出された同期精度と、実際の同期精度との関連性を示す図である。
【図１９】マスタノード／スレーブノード間のクロック同期精度を測定する網構成例を示す図である。
【図２０】本発明の第４の実施形態の基本的な構成を示す図である。
【図２１】本発明の第４の実施形態においてスレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおけるジッタがない場合のパケットカウンタ３１３のカウンタ値を示す図である。
【図２２】本発明の第４の実施形態においてスレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおけるジッタがある場合のパケットカウンタ３１３のカウンタ値を示す図である。
【図２３】本発明の第４の実施形態においてスレーブノードのクロックがマスタノードのクロックに同期しておらず、パケットネットワークにおけるジッタがある場合のパケットカウンタ３１３のカウンタ値を示す図である。
【図２４】Time Interval Errorについて示す図である。
【図２５】本発明の第４の実施形態において同期精度計測部３１４の詳細構成を含む本発明の実施形態の基本的な構成を示す図である。
【図２６−１】本発明の第４の実施形態において式３を用いる場合の同期精度計測部３１４の処理フローを示す図である。
【図２６−２】本発明の第４の実施形態において式４及び式５を用いる場合の同期精度計測部３１４の処理フローを示す図である。
【図２７】本発明の第５の実施形態において、クロック同期制御として、タイムスタンプ方式にパケットフィルタ機能を併用した場合のスレーブノードの構成図である。
【図２８】本発明の第５の実施形態において、クロック同期制御として、適応クロック方式を用いた場合のスレーブノードの構成図である。
【図２９】本発明の第５の実施形態におけるスレーブノードの応用例を示す図である。
【図３０】本発明の第４の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じたパケットカウンタ５３０のカウンタ値の増減状況を示す図である。
【図３１】本発明の第６の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じたパケットカウンタ５３０のカウンタ値の増減状況を示す図である。
【図３２−１】本発明の第６の実施形態において式３を用いる場合の同期精度計測部５４０の処理フローを示す図である。
【図３２−２】本発明の第６の実施形態において式４及び式５を用いる場合の同期精度計測部５４０の処理フローを示す図である。
【図３３】本発明の第７の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じた減算／加算パケットカウンタ３４３０のカウンタ値の増減状況を示す図である。
【図３４】本発明の第７の実施形態において同期精度計測部３４４０の詳細構成を含むスレーブノードの構成を示す図である。
【図３５−１】本発明の第７の実施形態において式３を用いる場合の同期精度計測部３４４０の処理フローを示す図である。
【図３５−２】本発明の第７の実施形態において式４及び式５を用いる場合の同期精度計測部３４４０の処理フローを示す図である。
【図３６】本発明の第８の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じた減算／加算パケットカウンタ３４３０のカウンタ値の増減状況を示す図である。
【図３７−１】本発明の第８の実施形態において式３を用いる場合の同期精度計測部３４４０の処理フローを示す図である。
【図３７−２】本発明の第８の実施形態において式４及び式５を用いる場合の同期精度計測部３４４０の処理フローを示す図である。
【図３８】本発明の第９の実施形態におけるスレーブノードの構成を示す図である。
【図３９】本発明の第９の実施形態におけるパケットカウンタ制御部３８０１の処理フローを示す図である。
【図４０】本発明の第９の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じたパケットカウンタ５３０のカウンタ値の増減状況を示す図である。
【図４１】本発明の第９の実施形態におけるＴＳパケットの到着タイミング並びにそれに応じたパケットカウンタ５３０のカウンタ値の増減状況を示す図である。
【符号の説明】
【００３５】
１１、１２、１００、４００  マスタノード
１３０  パケットネットワーク
３１、３２、１１０、５００、６１０、７１０、８１０、９１０、１０１０  スレーブノード
４０  第１のＴＤＭ装置
４１  第２のＴＤＭ装置
５０、５１  ＴＤＭネットワーク
１１１  ＲＴＰ  Ｅｎｃａｐ
１１２  ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ
１１３  クロック部
１１４  ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ
１１５  ＲＴＰ  Ｄｅｃａｐ
１１６  バッファ
１２０  ＴＳパケット
２００  測定器
１４１、５２１、３０２１  位相比較器
１４２、５２２、３０２２  ＬＰＦ
１４３、５２３、３０２３  ＰＩ制御器
１４４、５２４、３０２４  ＶＣＯ
１４５、５２５、３０２５  カウンタ
３０１、３１５、３２１  パケットフィルタ
３０２、３１６、３２２、５２０  ＰＬＬ
３０３、３１７、３２３  バッファ
３０４、３１８、３２４  精度監視部
３０５、３１９、３２５  閾値制御部
３１１  ＲＴＰ  Ｅｎｃａｐ
３１２  ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ
３１３  ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ
３１４  ＲＴＰ  Ｄｅｃａｐ
３２６、５４２  同期精度算出部
３２７、５４３  表示部
４１０  ＴＳパケット生成部
４２０  ＴＳパケット送信部
５１０  ＴＳパケット受信部
５３０  パケットカウンタ
５４０、９３０  同期精度計測部
５４１  カウンタ最大値モニタ部
６１１  パケットフィルタ
７１１  パラメータ制御部
８１１  パケット受信部
８１２  パケットバッファ
８１３  キュー長監視部
８１４  クロック再生部
９２０  減算／加算パケットカウンタ
９３１  カウンタ最小値監視部
１０１１  パケットカウンタ制御部
【発明を実施するための最良の形態】
【００３６】
次に、本発明の特徴と実現形態を説明するために、以下において、図面を参照して具体的な実施形態を述べる。【００３７】
しかしながら、これらの図面および説明は、あくまで本発明の典型的な実施形態を例示しているのみである。そのため、以下の説明は本発明の範囲を限定するものではないことを理解されたい。
［発明を実施するための第１の実施形態］【００３８】
本発明を実施するための第１の実施形態について、図面を参照して詳細に説明する。
＜構成＞【００３９】
図４の上部分を参照すると、本発明の第１の実施形態は、パケットネットワーク２０と、マスタノード１０とスレーブノード３０を有する。
＜マスタノード＞【００４０】
マスタノード１０はクロック同期のためのＴＳが付いたパケットをスレーブノード３０に定期的に送信する。【００４１】
ここで、ＴＳはマスタノード１０のクロックを基にして生成される。ＴＳの値は、たとえば、パケット毎に１ずつ増加するようなものである。
＜スレーブノード＞【００４２】
スレーブノード３０は、パケットフィルタ３０１と、ＰＬＬ３０２と、バッファ３０３と、精度監視部３０４と、閾値制御部３０５とを有する。
スレーブノード３０はＴＳが付いたパケットをマスタノード１０から受信する。【００４３】
受信したパケットはパケットフィルタ３０１及びバッファ３０３に送られる。パケットフィルタ３０１はパケットのＴＳをチェックし、そのパケットが受けた遅延ジッタが閾値の範囲内に収まっているかどうかをチェックする。もしも閾値を超えているのであれば、パケットを廃棄する。一方、遅延ジッタが閾値以内であれば、ＴＳをＰＬＬ３０２に渡す。【００４４】
ここで、各パケットの遅延ジッタ（Ｄｖａｒ）を知るために、パケットフィルタ３０１は、到着パケットの遅延時間を常にモニタリングしている。【００４５】
図５は、各パケットの遅延時間を示している。各パケットの遅延時間は遅延ジッタ成分（Ｄｖａｒ）だけでなく、固定遅延成分（Ｄｆｉｘ）も含んでいる。このため、各パケットが受けた遅延ジッタを知るには、固定遅延成分（Ｄｆｉｘ）の影響を除去する必要がある。【００４６】
具体的には、パケットフィルタ３０１は、この固定遅延成分（Ｄｆｉｘ）を把握するために、ある決められた時間（例えば１０分間）におけるパケットの遅延時間をモニタリングし、その最小値を固定遅延成分（Ｄｆｉｘ）とみなす。【００４７】
そして、固定遅延成分（Ｄｆｉｘ）を求めた後は、その後に受信したパケットの遅延時間から固定遅延成分（Ｄｆｉｘ）を差し引き、遅延ジッタ（Ｄｖａｒ）を求めるという手段を用いる。【００４８】
ＰＬＬ３０２は、位相比較器３０２１、ＬＰＦ３０２２、ＰＩ制御器３０２３、ＶＣＯ３０２４、カウンタ３０２５を有する。【００４９】
位相比較器３０２１は受信ＴＳとカウンタ３０２５の出力信号間の差分信号を計算し、ＬＰＦ３０２２に出力する。【００５０】
ＬＰＦ３０２２はこの差分信号を平準化し、ジッタやノイズを抑圧するとともに、その結果をＰＩ制御器３０２３に出力する。【００５１】
ＰＩ制御器３０２３はこの差分信号が最終的にゼロとなるような制御信号を生成し、ＶＣＯ３０２４に出力する。【００５２】
ＶＣＯ３０２４は制御信号によって決定される周波数のクロックを生成し、カウンタ３０２５に出力する。【００５３】
カウンタ３０２５はクロックを基にＴＳを生成し、位相比較器３０２１に出力する。【００５４】
バッファ３０３は、受信パケットをバッファに蓄積するとともに、ＶＣＯ３０２４のクロックで決まるスピードでバッファに蓄積されているデータを取り出していく。【００５５】
精度監視部３０４は、バッファの蓄積量をモニタし、ある時間範囲内における最大値を求める。そして、この最大値の理想値からのズレを基に、フィルタの閾値を動かす量と方向を計算し、閾値制御部３０５に出力する。【００５６】
閾値制御部３０５は、受け取った信号を基にパケットフィルタ３０１の閾値を制御する。制御アルゴリズムとしては、閾値が最適値にだんだん近づいていくように、閾値を調整していく。
次に、第１の実施形態の最適な閾値の設定について詳細に説明する。【００５７】
高精度なクロック同期を実現するには、前述したように、ネットワークの遅延変動による精度劣化と、自走状態の温度ドリフトによる精度劣化のトレードオフ関係を把握し、両者の影響を最小化できる条件を導き出す必要がある。【００５８】
まず、このトレードオフの関係を説明するために、図６にパケットフィルタ３０１の閾値とクロック同期精度の関係を示す。【００５９】
例えば、温度ドリフトが小さい場合の関係が図６に示されている。パケットフィルタ３０１の閾値を小さくすると、ネットワークの遅延変動の影響を抑圧できるが、パケットが連続的にフィルタリングされる確率が高まるので、ＰＬＬ３０２が自走状態に陥る時間が長くなる。しかし、温度ドリフトが小さければ、自走状態時間が長くなっても同期精度は劣化しない。このため、自走状態の温度ドリフトが小さい場合には、パケットフィルタ３０１の閾値を小さくし、ジッタを含んだＴＳをフィルタすればするほど、同期精度が良くなる。【００６０】
一方、温度ドリフトが中程度の場合の関係が図６に示されている。この場合、パケットフィルタの閾値をあまり小さくしすぎると、自走状態中の温度ドリフトによる精度劣化が顕著に見えてきてしまうので、閾値を若干大きめな値にして、自走状態に陥る時間を短くしてやる必要がある。
さらに、温度ドリフトが大きい場合の関係傾向が図６に示されている。【００６１】
この場合、パケットフィルタの閾値をかなり大きくしないと、自走状態中の温度ドリフトによる精度劣化が顕著に見えてきてしまう。そのため、閾値を大きな値にして、自走状態に陥る時間をほぼゼロにする必要がある。【００６２】
このように、クロック同期精度を最大にするパケットフィルタ３０１の最適値な閾値が存在する。そして、最適な閾値のときに、遅延変動と温度ドリフトによる精度劣化の影響を最小化できる。【００６３】
すなわち、高精度なクロック同期を実現するという目的を達成するには、パケットフィルタ３０１の最適な閾値を導出する必要がある。【００６４】
しかしながら、現在のクロック同期精度がどの程度なのか分からないと、閾値をどう制御したら良いのか分からないので、最適値を見つけることはできない。【００６５】
本発明の第１の実施の形態では、現在のクロック同期精度をモニタするために、精度監視部３０４が存在する。クロック同期精度をモニタリングするために、精度監視部３０４はバッファ３０３の状態を常に監視している。
次に、本発明の同期精度の検出原理を以下で説明する。【００６６】
図７は、スレーブ側クロックがマスタ側クロックに正確に同期しており、かつネットワークの遅延ジッタが常にゼロの場合のバッファ３０３の蓄積量を表している。横軸は経過時間であり、縦軸はバッファの蓄積量である。【００６７】
また、図８は、クロックは正確に同期しているが、遅延ジッタが存在する場合のバッファ３０３の蓄積量を表している。【００６８】
一方、図９は、クロックが同期しておらず、かつ遅延ジッタが存在する場合のバッファ３０３の蓄積量を表している。なお、図９はスレーブ側クロックが遅れている場合である。【００６９】
図７を見ると分かるように、同期していて、かつ遅延ジッタがない場合、バッファは一定間隔で増加・減少を繰り返す。【００７０】
バッファ占有率が増加するのはパケットが到着した時であり、パケットのデータサイズ分だけ一気に増加する。【００７１】
一方、バッファ占有率が減少するのはＶＣＯ３０２４のクロックスピードでバッファに貯まっているデータを引き抜いているためであり、なだらかに減少していく。【００７２】
一方、図８は遅延ジッタが存在するケースである。遅延ジッタにより、パケットが到着する間隔がバラバラになるのでバッファ占有率が増加するタイミングもバラバラとなる。この影響により、バッファの下限値は一定値とならず、ランダムとなる。【００７３】
しかしながら、ある時間幅毎のバッファの上限値を調べてみると（例えば１０秒毎）、その上限値は一定となっている。バッファが上限値に達するのは、パケットネットワークで遅延ジッタを受けなかったパケットが到着したときである。このように長い目で見れば、バッファの上限値が一定に留まっていることが分かる。【００７４】
一方、図９はクロック同期が外れているケースである（スレーブ側クロックがマスタ側クロックよりも遅れている場合である。）。【００７５】
この場合、バッファの上限値は一定に留まらない。例えば、送信側クロックが１Ｍｂｐｓで、受信側クロックが０．９Ｍｂｐｓであるケースを考えてみる。この場合、両者のクロックに０．１Ｍｂｐｓのズレがあるので、１秒経つ毎に０．１Ｍｂｉｔずつバッファ蓄積量が増加していき、バッファの上限値が一定に留まらない。【００７６】
以上のことから、バッファの上限値をモニタし、上限値のズレ具合を検出することで、クロック同期が正確に行われているかどうかをチェックすることが出来る。【００７７】
このように、クロック同期精度が求めることが出来たら、閾値を最適な値に制御することは困難ではない。
次に、図１０を用いて閾値の制御アルゴリズムの要点を示す。【００７８】
ここでは、例として、ある時刻［ｎ−１］の閾値を３０μｓにして、そのときのクロック同期精度を上記の方法で求める。【００７９】
次に、時刻［ｎ］で閾値を５０μｓに上げてみて、そのときのクロック同期精度を同様に求める。【００８０】
そして、これら２つのクロック同期精度を比較してみると、閾値を上げたほうが良いのかどうかを判別できる。【００８１】
もし、時刻［ｎ］の時の方がクロック同期精度が良くなるのであれば、閾値を５０μｓよりさらに上げてみるという処理を行う。【００８２】
逆に、時刻［ｎ］の時の方がクロック同期精度が悪くなるのであれば、閾値を３０μｓより下げてみるという処理を行う。
以上の処理を繰り返すことにより、閾値を最適な値に追い込むことができる。
＜動作＞【００８３】
精度監視部３０４は、以上の処理を実行するために、図１１に示されるシーケンスで動作する。【００８４】
１：バッファ３０３の蓄積量を監視し、ある時間内におけるバッファの最大値を求める（ステップＳ１０１）。
（ｂｕｆｆｅｒ＿ｍａｘ  ［ｎ］）
２：バッファの最大値と理想値のズレの絶対値を計算する（ステップＳ１０３）。【００８５】
Ｄｅｖｉａｔｉｏｎ  ［ｎ］  ＝  ａｂｓ  （ｂｕｆｆｅｒ＿ｍａｘ  ［ｎ］  −  ｉｄｅａｌ）【００８６】
ここで理想値としては、これまでの最大値の平均値や、前回の最大値、そしてあらかじめ決められた固定値などの値を用いることとする。このステップにおいて算出されたズレは現在のクロック同期精度の悪さを表す数値である。
３：ステップＳ１０３において算出されたズレ（Ｄｅｖｉａｔｉｏｎ  ［ｎ］）と、前回算出されたズレ（Ｄｅｖｉａｔｉｏｎ  ［ｎ−１］）を比較し、どちらが大きいかチェックする（ステップＳ１０５）。
ここで、現在と過去のクロック同期精度を比較していることとなる。【００８７】
４：もし、過去の同期精度の方が良い値である場合には、フィルタ閾値を動かす方向を反転する（ステップＳ１０７）。なお、この動作はｓｉｇｎの値を反転させることにより行う。ここで、ｓｉｇｎは閾値を動かす方向を決定する値である。【００８８】
５：最後に閾値制御部に、  ｓｉｇｎ×Ｄｅｖｉａｔｉｏｎ  ［ｎ］  を出力する（ステップＳ１０９）。これによりズレの量だけ、フィルタ閾値を変化させることができる。【００８９】
ここで、ズレの絶対値（Ｄｅｖｉａｔｉｏｎ  ［ｎ］）は上述したようにクロック同期精度と密接に関連した量を示しており、このＤｅｖｉａｔｉｏｎ  ［ｎ］がゼロとなれば正確なクロック同期を実現できたことになる。【００９０】
次に、閾値制御部３０５は、このＤｅｖｉａｔｉｏｎ  ［ｎ］がゼロとなるように、すなわちクロック同期精度が最良となるようにパケットフィルタ３０１の閾値を制御する。【００９１】
パケットフィルタ３０１の閾値を最適値に追い込むために、閾値制御部３０５をＰＩ制御器から構成されるシステムとしても良い。この場合、精度監視部３０４からの出力データをＰＩ制御器である閾値制御部３０５に入力する。次に、Ｄｅｖｉａｔｉｏｎ  ［ｎ］を最終的にゼロに追い込むように、閾値の制御信号を生成する。そして、この制御信号を基にして、パケットフィルタの閾値を制御する。【００９２】
以上のように、バッファの蓄積量を基にして、現在の同期精度をモニタするとともに、この結果を基にパケットフィルタの閾値を調整することにより、クロック同期精度を最大にする最適値な閾値を求めることができる。【００９３】
なお、本発明の第１の実施形態のうち、スレーブノード３０のＰＬＬ３０２の動作は関連技術として上述したＴＳ方式と全く同じなので説明を省略する。【００９４】
ただし、パケットフィルタ３０５の閾値を小さくすると、有効なパケット数が減少するので、クロック同期までにかかる所要時間が長くなる。そして、上述したようにクロック同期までにかかる所要時間が伸びると、温度ドリフトの影響を受けやすくなるので、クロック同期システムの動作が不安定になりやすいという側面もある。【００９５】
そこで、この問題を回避するためにも、閾値制御部３０５はパケットフィルタの閾値を制御するだけでなく、ＰＬＬの時定数も制御することが望ましい。具体的には、閾値を小さくしたときはＬＰＦの値をカットオフ周波数を高くし、閾値を大きくしたときはＬＰＦの値をカットオフ周波数を低くする、といった制御を行うことが望ましい。【００９６】
図１２に、第１の実施形態の有効性を示すために行ったシミュレーションモデルを示す。【００９７】
パケットネットワークの遅延ジッタとしては平均０で分散５μｓの正規分布を用いた。また、自走状態中のドリフトとしては、正弦波上のドリフトを用いた。【００９８】
図１３は、第１の実施形態と従来方式のクロック同期精度を比較している。Ｘ軸は正弦波上のドリフトの振幅であり、Ｙ軸はクロック同期精度である。【００９９】
図１３を見ると分かるように、従来方式と比較して、第１の実施形態はクロック同期精度を８５％程度改善することができている。【０１００】
したがって、本実施形態によりネットワークの遅延変動や自走状態中のクロックドリフトの影響を抑え、正確なクロック同期を実現できることが示されたといえる。
＜効果＞
次に、本発明を実施するための第１の実施の形態の効果について説明する。【０１０１】
本発明を実施するための第１の実施形態では、バッファの蓄積量の変化から現在のクロック同期精度をモニタするとともに、クロック同期精度が改善されるようにパケットフィルタの閾値を調整することにより、遅延変動やクロックドリフトを抑えて正確なクロック同期を実現できることから本発明の目的を達成することができる。
［発明を実施するための第２の実施形態］【０１０２】
本発明の第２の実施形態は、ＴＤＭデータをパケットネットワークでカプセル化して転送するというネットワーク構成において、スレーブノード側で遅延変動やクロックドリフトを抑えて正確なクロックを再生できる実施形態である。このネットワーク構成は、ＲＦＣ４１９７やＲＦＣ４５５３などで標準化が進んでいるＰＷＥ３（Pseudo-Wire Emulation Edge to Edge）の構成である。ＰＷＥ３の概略を図１５に示す。【０１０３】
ＰＷＥ３では図１５の上側に示すようなＴＤＭ装置間での通信のＴＤＭネットワークの間にマスタノード及びスレーブノードを設置する。そして、マスタノードとスレーブノード間の通信はパケットネットワークで行われる。【０１０４】
次に、本発明を実施するための第２の実施形態について、図面を参照して詳細に説明する。
＜構成＞【０１０５】
図１４を参照すると、本発明の第２の実施形態は、マスタノード１１とスレーブノード３１と第１のＴＤＭ装置４０と第２のＴＤＭ装置４１とパケットネットワーク２０とＴＤＭネットワーク５０とＴＤＭネットワーク５１を有する。【０１０６】
第１のＴＤＭ装置４０と第２のＴＤＭ装置４１は、ＴＤＭネットワークを介してＴＤＭフレームを送受信する。【０１０７】
マスタノード１１とスレーブノード３１は、ＴＤＭネットワークからＴＤＭフレームを受け取ると、パケットヘッダでカプセル化し、パケットネットワーク２０に送信する。【０１０８】
また、マスタノード１１とスレーブノード３１は、パケットネットワーク２０からパケットを受け取ると、パケットヘッダをデカプセル化し、ＴＤＭネットワークに送信する。【０１０９】
すなわち、末端の装置は第１のＴＤＭ装置４０及び第２のＴＤＭ装置４１であるが、その間はＴＤＭネットワークではなく、パケットネットワークで中継転送されているというネットワーク構成である。
＜マスタノード＞【０１１０】
図１４を参照すると、マスタノード１１はＲＴＰ  Ｅｎｃａｐ１１１と、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ１１２と、クロック部１１３と、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ１１４と、ＲＴＰ  Ｄｅｃａｐ１１５と、バッファ１１６とを有している。【０１１１】
マスタノード１１は、第１のＴＤＭ装置４０からＴＤＭフレームを受け取ると、まずＲＴＰ  Ｅｎｃａｐ  １１１においてＲＴＰヘッダを付ける。【０１１２】
このＲＴＰヘッダにはＴＳが含まれており、ＴＳの値はクロック部１１３によって制御されている。【０１１３】
次に、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ１１２においてこのパケットにＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔヘッダを付けた後、パケットネットワーク２０に送出する。【０１１４】
また、マスタノード１１は、パケットネットワーク２０からパケットを受け取ると、まずＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ１１４においてＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔヘッダを外す。【０１１５】
次に、ヘッダを外したパケットをバッファ１１６に格納し、ネットワークの遅延ジッタを吸収するとともに、パケットの順序補正などを行なう。そして、このパケットは、クロック部１１３によって制御されたタイミングでＲＴＰ  Ｄｅｃａｐ１１５に渡される。【０１１６】
そして最後に、ＲＴＰ  Ｄｅｃａｐ１１５において、このパケットのＲＴＰヘッダを外した後、ＴＤＭネットワーク５０に送出する。
＜スレーブノード＞【０１１７】
図１４を参照すると、スレーブノード３１はＲＴＰ  Ｅｎｃａｐ３１１と、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ３１２と、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ３１３と、ＲＴＰ  Ｄｅｃａｐ３１４と、パケットフィルタ３１５と、ＰＬＬ３１６と、バッファ３１７と、精度監視部３１８、閾値制御部３１９とを有している。【０１１８】
スレーブノード３１は、パケットネットワーク２０からパケットを受け取ると、まずＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｄｅｃａｐ３１３においてＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔヘッダを外す。【０１１９】
次に、このパケットをバッファ３１７に格納し、ネットワークの遅延ジッタを吸収するとともに、パケットの順序補正などを行なう。そして、このパケットは、ＰＬＬ３１６で再生されたクロックによって制御されるタイミングでＲＴＰ  Ｄｅｃａｐ３１４に渡される。【０１２０】
そして最後に、ＲＴＰ  Ｄｅｃａｐ３１４において、このパケットのＲＴＰヘッダを外した後、ＴＤＭネットワーク５１に送出する。【０１２１】
ここで、スレーブノード３１におけるＰＬＬ３１６と、バッファ３１７と、精度監視部３１８と、閾値制御部３１９の構成及び動作は第１の実施形態と全く同じであるため、説明を省略する。【０１２２】
また、スレーブノード３１は、第２のＴＤＭ装置４１からＴＤＭフレームを受け取ると、まずＲＴＰ  Ｅｎｃａｐ３１１においてＲＴＰヘッダを付ける。このＲＴＰヘッダにはＴＳが含まれており、その値はＰＬＬ３１６で再生されたクロックによって制御されている。次に、ＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ  Ｅｎｃａｐ３１２においてこのパケットにＵＤＰ／ＩＰ／Ｅｔｈｅｒｎｅｔヘッダを付けた後、パケットネットワークに送出する。
＜動作＞【０１２３】
次に、本発明の第２の実施形態の動作について説明する。本発明の第２の実施形態は、ＴＤＭデータをカプセル化してパケットネットワークで転送するＰＷＥ３において、ＲＴＰヘッダのＴＳから遅延変動やクロックドリフトを抑えて正確なクロックを再生できる方法である。【０１２４】
これは、第１の実施の形態同期システムを活用することで達成でき、前述したように図１２のような構成となる。クロック同期システムの動作は第１の実施形態と全く同じであるため、説明を省略する。
＜効果＞
次に、本発明を実施するための第２の実施形態の効果について説明する。【０１２５】
本発明を実施するための第２の実施形態では、ＴＤＭデータをパケットネットワークでカプセル化して転送するＰＷＥ３において、バッファの蓄積量の変化から現在のクロック同期精度を算出するとともに、クロック同期精度が改善されるようにパケットフィルタの閾値を調整することにより、遅延変動やクロックドリフトを抑えて正確なクロック同期を実現できるので、本発明の目的を達成することができる。
［発明を実施するための第３の実施形態］【０１２６】
本発明を実施するための第３の実施形態について、図面を参照して詳細に説明する。
＜構成＞【０１２７】
図１６を参照すると本発明の第３の実施形態は、マスタノード１２とスレーブノード３２とパケットネットワーク２０を有する。
＜マスタノード＞
マスタノードの構成は、第１の実施形態と全く同じであるため、説明を省略する。
＜スレーブノード＞【０１２８】
図１６を参照すると、スレーブノード３２は第１の実施形態のスレーブノード１０の構成に加えて、同期精度算出部３２６と表示部３２７とを備えている。【０１２９】
同期精度算出部３２６は、精度監視部３２４から制御信号を受信し、現在の同期精度情報を算出するとともに、算出された同期精度情報を表示部３２７に渡す。【０１３０】
表示部３２７は、同期精度算出部３２６から渡された同期精度情報を外部に表示する部分である。
その他の部分の構成は第１の実施形態と全く同じであるため、説明を省略する。
＜動作＞
次に、第３の実施形態の動作について詳細に説明する。【０１３１】
本発明の第３の実施の形態は、現在のクロック同期精度をユーザに伝える方法である。【０１３２】
ここで、同期精度算出部３２６と表示部３２７以外の動作は、第１の実施の形態と同じであるため、説明を省略する。
図１６を参照すると、同期精度算出部は、精度監視部から制御信号を受け取る。【０１３３】
この制御信号は、第１の実施形態の図１１で説明したように、ｓｉｇｎ×Ｄｅｖｉａｔｉｏｎ［ｎ］  となっている。同期精度算出部は、このＤｅｖｉａｔｉｏｎの値を基に、同期精度を算出する。【０１３４】
算出方法の例として、
・バッファの蓄積量の最大値のズレ量  ＝  Ｄｅｖｉａｔｉｏｎ［ｎ］  ［ｂｉｔ］
・精度監視部でバッファの蓄積量の最大値を観測する時間幅  ＝  Ｔ  ［ｓｅｃｏｎｄ］
・ＴＳパケットのビットレート  ＝  Ｂ  ［ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ］
・或る係数  ＝  Ｃ
と表記した場合、同期精度算出部はクロック同期精度を以下の数式を用いて算出することができる。【０１３５】
【数１】
2009035091.tif 000003
【０１３６】
または、Ｔｅｌｃｏｒｄｉａの国際規格で決められているＦＦＯ（Fractional Frequency Offset）の定義にのっとり、以下の数式を用いて同期精度を算出することもできる。【０１３７】
【数２】
2009035091.tif 000004
【０１３８】
図１８には、このようにして算出されたクロック同期精度（measured accuracy）が、実際のクロック同期精度（Reference Accuracy）とどの程度一致しているかを示している。図１８から、両者はかなり良く一致していることが分かる。同期精度算出部３２６は、このように計算されたクロック同期精度を表示部３２７に渡す。【０１３９】
表示部は、渡されたクロック同期精度情報を外部のモニタやランプなどに表示して、ユーザにその旨を通知する。【０１４０】
以上の説明では、同期精度モニタ３２７と、閾値制御機能を備えた閾値制御部３２６とを組み合わせた構成例を説明したが、同期精度モニタ３２７は閾値制御部３２６がなくても正常に動作する。この場合の構成を図１７に示している。同期精度モニタの動作原理は上に述べたものと同じであるため、省略する。
＜効果＞
次に、本発明を実施するための第３の実施形態の効果について説明する。【０１４１】
本発明を実施するための第３の実施形態では、精度監視部のデータを基に現在の同期精度情報を算出し、同期精度モニタに表示する。これにより、ユーザが現在の同期精度を把握できるとともに、遅延変動やクロックドリフトを抑えて正確なクロック同期を実現できるので、本発明の目的を達成することができる。【０１４２】
次に、本発明を実施するための第４の実施形態について、図面を参照して詳細に説明する。
＜構成の説明＞【０１４３】
図２０の上部分を参照すると、本発明の第４の実施形態は、マスタノード４００とスレーブノード５００とパケットネットワーク１３０とを有する。更に、マスタノード４００、スレーブノード５００は以下の各部を有する。
＜マスタノード＞【０１４４】
マスタノード４００は、ＴＳパケット生成部４１０と、ＴＳパケット送信部４２０とを有する。【０１４５】
ＴＳパケット生成部４１０は、クロック同期を行なうためのＴＳが格納されたＴＳパケットを生成する。ここで、ＴＳとはノード間でクロック同期を行なうための数値であってマスタノード４００のクロックを基にして生成される時間情報を示す数値である。ＴＳとしては、例えば、マスタノード４００のクロックの最小時間単位（例えば１２５ｕｓｅｃ）に１ずつ増加する数値を用いることが可能である。【０１４６】
ＴＳパケット送信部４２０は、ＴＳパケット生成部４１０で生成されたＴＳパケットを受け取り、受け取ったＴＳパケットをスレーブノード５１０に対して、定期的に送信する。
＜スレーブノード＞【０１４７】
スレーブノード５１０は、ＴＳパケット受信部５１０と、ＰＬＬ５２０と、パケットカウンタ５３０と、同期精度計測部５４０とを有する。【０１４８】
ＴＳパケット受信部５１０は、マスタノード４００からパケットネットワーク１３０を経由して転送されてきたＴＳパケットを受信する。受信したＴＳパケットは受信ＴＳを付加された上で、ＰＬＬ３１２とパケットカウンタ５３０に送られる。【０１４９】
ＰＬＬ５２０は、位相比較器５２１、ＬＰＦ５２２、ＰＩ制御器５２３、ＶＣＯ５２４、カウンタ５２５を有する。なお、パケットカウンタ５３０と、同期精度計測部５４０の内部構成は後述する。【０１５０】
位相比較器５２１は、ＴＳパケット受信部５１０から受信したＴＳパケットに格納されている受信ＴＳとカウンタ５２５で生成されるＴＳ（以下、「カウンタＴＳ」と表記する。）の差分信号を計算し、ＬＰＦ５２２に出力する。【０１５１】
ＬＰＦ５２２は差分信号を平準化し、ジッタやノイズを抑圧するとともに、その結果をＰＩ制御器５２３に出力する。【０１５２】
ＰＩ制御器５２３はこの平準化された差分信号が最終的にゼロとなるような制御信号を生成し、ＶＣＯ５２４に出力する。【０１５３】
ＶＣＯ５２４は、ＰＩ制御器５２３から入力された制御信号によって決定される周波数のクロックを生成し、カウンタ５２５に出力する。【０１５４】
カウンタ５２５は、ＶＣＯ５２４から入力されたクロックを基にカウンタＴＳを生成し、位相比較器５２１に転送する。【０１５５】
パケットカウンタ５３０は、ＴＳパケット受信部５１０からＴＳパケットを受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ５２４で決定される周波数に従い、カウンタの値を減少させる。なお、パケットカウンタ５３０はパケットバッファであってもよい。パケットバッファの場合、ＴＳパケット受信部５１０からＴＳパケットを受信すると、パケットをバッファに蓄積し、同時にＶＣＯ５２４で決定される周波数に従い、蓄積しているパケットを出力する。【０１５６】
同期精度計測部５４０は、パケットカウンタ５３０のカウンタ値をモニタし、ある期間（インターバル）におけるカウンタ値の最大値を計測する。そして、この最大値を基にクロック同期精度を計測する。
＜動作の説明＞
＜同期精度の算出方法の説明＞【０１５７】
本実施の形態の動作を説明する前に、まず本実施形態における同期精度算出方法について説明する。【０１５８】
前述の構成の部分で説明したように、本システムでは、スレーブノード５１０では、マスタノード４００から受信したＴＳパケットに格納されるＴＳ値とスレーブノード５１０自身のクロックから生成されるＴＳ値の差分を基にＰＬＬ３１２の各部が作用し、マスタノード４００／スレーブノード５１０間のクロックを同期する。このクロック同期制御を行なっている際に現在の同期精度を計測するのが同期精度計測部５４０である。以下では、同期精度計測部５４０における同期精度の計測方法について説明する。【０１５９】
本発明の同期精度の計測法では、クロック同期の状況とカウンタ値の関係に関する以下の原理を用いている。【０１６０】
図２１は、スレーブ側クロックがマスタ側クロックに正確に同期しており、かつネットワークのジッタが常にゼロである場合における、パケットカウンタ５３０のカウンタ値を表している。横軸方向が経過時間であり、縦軸方向がカウンタ値である。【０１６１】
また、図２２は、マスタ／スレーブ間のクロックは正確に同期しているが、ネットワーク内のジッタが存在する場合のカウンタ値を表している。図２１同様に横軸方向が経過時間であり、縦軸方向がカウンタ値である。【０１６２】
さらに、図２３は、マスタ／スレーブ間のクロックが同期しておらず、かつ、ネットワーク内のジッタが存在する場合のカウンタ値を表している。図２１同様に横軸方向が経過時間であり、縦軸方向がカウンタ値である。なお、図２３では、マスタ／スレーブ間のクロックが同期していない例として、スレーブ側クロックが遅れている場合を示している。
以下これらの図について詳細に説明する。【０１６３】
図２１のマスタ／スレーブ間で同期していて、かつネットワークのジッタがない場合、カウンタ値の最大値は一定値となっている。【０１６４】
パケットカウンタ５３０にＴＳパケットが到着すると、所定の値分カウンタ値が増加する。一方で、カウンタ値は、ＶＣＯ５２４の速度に従い減算される。この例では、ＶＣＯ５２４の減算速度は、パケット到着間隔で１つのパケット分のカウンタ値が減算されている。マスタ／スレーブが同期しているため、パケット到着間隔の一定間隔でカウンタ値の増加、減少を繰り返し、増加した時のカウンタ最大値は一定となっている。【０１６５】
次に、図２２は、マスタ／スレーブ間は同期していて、ネットワークにジッタが存在するケースである。ジッタにより、パケット到着が遅れることにより、遅れた分だけ減算量が増し、カウンタ値の下限値はより小さくなっている。そのため、パケット到着時のカウンタ値は他よりも小さくなっている箇所がある。しかしながら、ジッタを受けないパケットが到着した時は本来到達すべき値までカウンタ値が達している。あるインターバル（例えば１０秒間）において、その間にジッタを受けないパケットが一つは到着すると考えると、カウンタ値最大値は一定になる。まとめると、ネットワーク内でジッタがある場合であっても、マスタ／スレーブ間が同期さえしていれば、あるインターバル（ジッタを受けないパケットが一つは到着すると考えられる長さの時間）でカウンタ最大値をモニタすると、その値は一定となる。【０１６６】
続いて、図２３は、マスタ／スレーブ間の同期が取れていないケース（スレーブ側クロックがマスタ側クロックよりも遅れているケース）である。図２２の例と同様に、ジッタの影響でパケット到着が遅れることにより、パケット到着時のカウンタ値が最大値に達しない箇所がある。しかしながら、ジッタを受けないパケットが到着した時は最大値まで達している。図２２との差分としては、インターバル毎のカウンタ最大値が変動している点である。この例ではスレーブ側クロックがマスタ側クロックよりも遅れている。すなわち、パケットカウンタの減算スピードが増加スピードよりも遅いため、カウンタ値が溜まっていく。そのため、インターバル毎のカウンタ最大値が変動している（今回の例では増加している）。【０１６７】
以上の３つのケースより、カウンタ最大値をモニタし、インターバル毎の最大値の変動からマスタ／スレーブ間のクロックが同期しているか、していないが分かる。すなわち、カウンタ最大値が一定であれば同期しており、変動していれば同期していないということが分かる。そして、変動している時の変動量を基にして、その時の同期精度を算出することができる。以降では、変動量を基にした同期精度算出方法について説明する。【０１６８】
本発明では、カウンタ最大値の変動量を基にした同期精度算出方法を２つ例示する。
＜第１の算出方法＞【０１６９】
クロック同期精度は、一般的な考え方に従うと、ある時間間隔における「総クロック数に対するずれたクロック数の割合」と考えられる。例えば、１０＾９クロックのインターバル時間の間に１クロックのずれが生じたとしたら、クロック同期精度は１／１０＾９＝１０＾−９＝１ｐｐｂとなる。【０１７０】
これを先に説明したカウンタ最大値の変動量に置き直して考えると、ある時間間隔における「総データ処理量に対するずれたデータ量の割合」と考えられる。
・カウンタ最大値の変動量  ＝  Ｄｅｖｉａｔｉｏｎ  ［ｂｉｔ］
・インターバル  ＝  Ｔ  ［ｓｅｃ］
・ＴＳパケットのビットレート  ＝  Ｂ  ［ｂｐｓ］
と表記した場合、クロック同期精度（ＦＦＯ）は以下の式で求めることができる。【０１７１】
【数３】
2009035091.tif 000005
＜第２の算出方法＞【０１７２】
第２の算出方法は、Ｔｅｌｃｏｒｄｉａ  ＧＲ１２４４で定義されている同期精度の算式に基づいて算出する方法である。ＧＲ１２４４では、クロック同期精度ＦＦＯのパラメータは以下の通りである。
・ｘ［ｉ］：Ｔｉｍｅ  Ｉｎｔｅｒｖａｌ  Ｅｒｒｏｒ（ＴＩＥ）（単位：ナノ秒）
・Ｉｎｔｅｒｖａｌ：インターバル（単位：秒）【０１７３】
・Ｎ：いくつのインターバルからＦＦＯを求めるかのサンプル数（インターバル回数）【０１７４】
そしてＧＲ１２４４では、クロック同期精度（ＦＦＯ）は以下の式で定義されている。【０１７５】
【数４】
2009035091.tif 000006
【０１７６】
この式では、Ｎ回のインターバルにおけるＴＩＥという値からクロック同期精度ＦＦＯを算出することとしている。ここで、ＴＩＥとは、図２４に示すように、インターバルにおいて到着した各パケットの位相ずれの値である。図２４では、スレーブ側におけるあるトラヒックの理想状態（マスタに同期している状態）でのパケットの引き抜きタイミング（上部）と実際の引き抜きタイミング（下部）を示している。この例では、実際の引き抜きタイミングは理想状態に対してパケットあたり０．１という大きさで遅れている。このタイミングのずれがインターバルの間にどれだけ生じているかがｘ［ｉ］＝ＴＩＥとなる。図２４の例では、各インターバルで０．４となる。【０１７７】
スレーブノードにおいては、理想状態のタイミングを知ることができないため、本発明では、このＴＩＥの値をカウンタ最大値の変動量から求める。カウンタ最大値の変動とは、インターバルにおいて到着したパケットの位相ずれの結果として生じた変動ビット数と考えられる。そこで、この変動量をＴＳのビットレートで割ることにより、変動したビット量が要した遅延量となるので、この値がＴＩＥ（＝ｘ［ｉ］）となる。【０１７８】
【数５】
2009035091.tif 000007
【０１７９】
このＴＩＥの値を、上記したＧＲ１２４４の式４におけるｘ［ｉ］に代入することにより、クロック同期精度（ＦＦＯ）を算出することができる。【０１８０】
以上説明した２つの方法により、カウンタ最大値の変動量を基にして同期精度を算出することができる。
＜ノードの動作の説明＞【０１８１】
以降では、スレーブノードの動作について説明する。第１の算出方法を用いる場合と、第２の算出方法を用いる場合とでは、ＦＦＯを算出する式の差を除いて、ノードの動作は共通部分が多いので、共通に説明し、差分がある部分については個別に説明する。【０１８２】
図２５は、パケットカウンタ５３０及び同期精度計測部５４０の詳細な構成を含むスレーブノード５１０の構成を示している。【０１８３】
パケットカウンタ５３０は、カウンタを有しており、前述のようにＴＳパケット受信部５１０からＴＳパケットを受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ５２４で決定される周波数に従い、カウンタの値を減少させる。【０１８４】
同期精度計測部５４０は、カウンタ最大値監視部５４１と同期精度算出部５４２と表示部５４３とを有している。【０１８５】
図２６−１及び図２６−２に、同期精度計測部５４０の処理フローを示す。図２５、図２６−１及び図２６−２を用いて同期精度計測部５４０の動作を説明する。はじめに図２６−１を参照して第１の算出方法を用いる場合を説明する。【０１８６】
まず、カウンタ最大値監視部５４１はパケットカウンタ５３０のカウンタ値を監視している。そして、インターバルｔにおけるカウンタ値の最大値  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求める（ステップＳ２０１）。【０１８７】
続いて、カウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求めたカウンタ最大値監視部５４１はそのインターバルにおけるカウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］とカウンタ基準値  Ｃｏｕｎｔｅｒ＿Ｒｅｆとの差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を算出する（ステップＳ２０２）。この際の数式は以下の通りである。【０１８８】
Ｄｅｖｉａｔｉｏｎ［ｔ］  ＝  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］  −  Ｃｏｕｎｔｅｒ＿Ｒｅｆ【０１８９】
この差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］は、上述までの記載で言うところのカウンタ最大値の変動量のことである。なお、カウンタ基準値  Ｃｏｕｎｔｅｒ＿Ｒｅｆとは、測定開始時のカウンタ値、予め決められたカウンタ値又はその双方である。【０１９０】
その後、差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を求めたカウンタ最大値監視部５４１は、Ｄｅｖｉａｔｉｏｎ［ｔ］を同期精度算出部５４２に通知する（ステップＳ２０３）。【０１９１】
次に、同期精度算出部５４２は受け取ったＤｅｖｉａｔｉｏｎ［ｔ］の値を式３に代入して、クロック同期精度ＦＦＯを計算する（ステップＳ２０４）。【０１９２】
そして、クロック同期精度ＦＦＯを算出した同期精度算出部５４２は算出結果を表示部５４３に通知する（ステップＳ２０５）。【０１９３】
最後に、表示部５４３はクロック同期精度ＦＦＯを例えば外部のモニタを介して、ユーザに結果を表示するステップＳ２０６）。【０１９４】
続いて、図２６−２を参照して第２の算出方法を用いた場合を説明する。上述の第１の算出方法を用いた場合との差分は、ステップＳ２０４がステップＳ２０４’に変更されている点である。【０１９５】
ステップＳ２０４’では、同期精度算出部５４２は受け取ったＤｅｖｉａｔｉｏｎ［ｔ］の値が、上記した式４を用いてＦＦＯを算出するのに必要なサンプル数であるＮ個揃ったら、式４を用いて、クロック同期精度ＦＦＯを計算する。他のステップの動作は算出法１を用いた場合と共通である。
＜効果＞【０１９６】
以上説明したように、本発明によれば、スレーブノードにおいて、ＴＳパケットの到着状況並びに出力状況を管理するパケットカウンタの最大値をインターバル毎に管理し、最大値の変動量を基にして、現在のクロック同期精度を算出することができる。これにより、サービス提供中において、マスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。【０１９７】
特に、スレーブノードにおける処理で精度を計測することができることから、実運用ネットワークでの適用も可能であり、マスタ／スレーブノードが物理的に別の場所に設置される実フィールドでの精度計測が困難であるという課題を解決できる。また、スレーブノードにおけるカウンタ値のモニタ情報から精度を算出できるため、ＧＰＳのような特別な装置を具備する必要もない。そのため、安価に実現可能であると共に、装置の設置場所等のサービス提供に対する特別な制限もないことから、安定的に実現可能であるという効果がある。
［第５の実施の形態］【０１９８】
本発明を実施するための他の実施形態について、図面を参照して詳細に説明する。実施の形態４では、マスタ／スレーブノード間のクロック同期方法として、タイムスタンプ方式を用いる場合について説明した。本実施の形態では、他のクロック同期方法を用いた場合について説明する。
＜第一の例＞
＜構成の説明＞【０１９９】
本実施形態の最初の例として、クロック同期方法にタイムスタンプ方式の応用例として、パケットフィルタ機能を併用した例について説明する。【０２００】
本発明の第５の実施形態の全体構成は第４の実施形態の構成と比較して、スレーブノード５１０がスレーブノード６１０として、図２７に示す構成に変更される。また、マスタノードの具体的構成は第１の実施形態と同様である。
＜スレーブノード＞【０２０１】
スレーブノード６１０は、図２０のスレーブノード５１０の構成に加えて、パケットフィルタ６１１を有する。【０２０２】
パケットフィルタ６１１は、ＴＳパケット受信部５１０から受信するＴＳパケットのＴＳからそのパケットが受けたジッタを算出する。そして、パケットフィルタ６１１は、算出したジッタの大小により、ＰＬＬ５２１に転送するＴＳパケットを選択する。すなわち、予め転送する対象を決定するための閾値が決められており、ジッタが閾値未満のＴＳパケットはＰＬＬ５２１に送り、閾値以上のＴＳパケットは廃棄する。これにより、ＰＬＬ５２１により行なわれるクロック同期制御へのジッタの影響を低減する効果がある。
ＰＬＬ５２１の各部の構成は、実施の形態１と同様である。
＜動作の説明＞【０２０３】
図２７において、タイムスタンプ方式にパケットフィルタ機能が併用された時の、クロック同期精度を求めるためのスレーブノードの動作について説明する。
【０２０４】
ＴＳパケット受信部５１０は、マスタノード４００からパケットネットワーク１３０を経由して転送されてきたＴＳパケットを受信する。受信したＴＳパケットはパケットフィルタ６１１とパケットカウンタ部５３０に送られる。【０２０５】
パケットフィルタ６１１は受信したＴＳパケットのＴＳからそのパケットが受けたジッタを算出し、ジッタが閾値未満のＴＳパケットはＰＬＬ３１２に送り、閾値以上のＴＳパケットは廃棄する。ＰＬＬ３１２に送られたＴＳパケットは、第４の実施形態と同様に、位相比較器５２１で受信ＴＳとカウンタ５２５で生成されるＴＳの差分信号を計算し、ＬＰＦ５２２に出力され、ＬＰＦ５２２では差分信号が平準化され、その結果はＰＩ制御器５２３に出力される。【０２０６】
ＰＩ制御器５２３は平準化された差分信号が最終的にゼロとなるような制御信号を生成し、制御信号をＶＣＯ５２４に出力し、ＶＣＯ５２４は入力された制御信号によって決定される周波数のクロックを生成して、カウンタ５２５に出力する。【０２０７】
カウンタ５２５はクロックを基にＴＳを生成し、位相比較器５２１に出力する。このフィードバック処理が繰り返されることにより、生成ＴＳと受信ＴＳの差分がゼロに近づき、スレーブノード６１０のクロックはマスタノード４００のクロックに同期される。パケットフィルタ１００１において、ジッタが大きいＴＳパケットがフィルタされることにより、ジッタの影響が低減され、同期精度が高まるという効果が期待される。【０２０８】
スレーブノード６１０の同期精度計測部５４０は第４の実施形態における図２５と同様の構成からなり、カウンタ最大値監視部５４１と同期精度算出部５４２と表示部５４３を有する。
第５の実施形態の同期精度計測部５４０の動作を再度図２６を参照して説明する。【０２０９】
カウンタ最大値監視部５４１はパケットカウンタ５３０のカウンタ値を監視している。そして、インターバルｔにおけるカウンタ値の最大値  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求める。カウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求めると、カウンタ最大値監視部５４２はそのインターバルにおけるカウンタ最大値とカウンタ基準値  Ｃｏｕｎｔｅｒ＿Ｒｅｆとの差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を算出する。【０２１０】
Ｄｅｖｉａｔｉｏｎ［ｔ］  ＝  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］  −  Ｃｏｕｎｔｅｒ＿Ｒｅｆ差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を求めたカウンタ最大値監視部５４１は、Ｄｅｖｉａｔｉｏｎ［ｔ］を同期精度算出部５４２に通知する。同期精度算出部５４２は受け取ったＤｅｖｉａｔｉｏｎ［ｔ］の値を基に前述の式３又は式４及び式５を用いて、クロック同期精度ＦＦＯを計算する。クロック同期精度ＦＦＯを算出した同期精度算出部５４２は結果を表示部５４３に通知する。表示部５４３はクロック同期精度ＦＦＯを例えば外部のモニタを介して、ユーザに結果を表示する。【０２１１】
以上説明したように、クロック同期方法として、タイムスタンプ方式にパケットフィルタ機能が併用される場合においても、同期精度計測部５４０はＴＳパケット受信部５１０から受信するＴＳパケットの到着状況並びに出力状況を管理するパケットカウンタ５３０の最大値をインターバル毎に管理し、最大値の変動量を基にして、現在のクロック同期精度を算出することができる。これにより、ユーザがサービス中のマスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。【０２１２】
また、現在のクロック同期精度を計測する中で、同期精度が要求値を満たしていないことを検出する場合もある。そのような場合には、例えば、図２８に示すように、同期精度情報を利用してクロック同期制御に働きかけを行ない、同期精度改善を図ることも可能である。【０２１３】
図２８に示すスレーブノード６１０では、図２７で説明したスレーブノード７１０の構成に対して、パラメータ制御部７１１が追加されている。パラメータ制御部７１１は同期精度算出５４２が算出した現在のクロック同期精度の情報を基にして、パケットフィルタ６１１のフィルタ閾値を調整したり、ＰＬＬ５２０におけるＬＰＦ５２２やＰＩ制御器５２３のパラメータを調整したりすることにより、同期精度の改善を図る。
＜第二の例＞
＜構成の説明＞【０２１４】
第５の実施形態における変形例として、クロック同期方法として、非特許文献１で述べられ、利用が広がっている適応クロック法（Adaptive clock method）を用いる場合の例について説明する。【０２１５】
第４の実施形態と比較して、スレーブノード５１０がスレーブノード８１０として、図２９に示す構成に変更される。
＜スレーブノード＞【０２１６】
スレーブノード８１０は、図２０のスレーブノード５１０の構成と比較するとＰＬＬ５２０に変わって、パケットバッファ８１２、キュー長監視部８１３、クロック再生部８１４を有する。また、ＴＳパケット受信部５１０がパケット受信部８１１に置き換えられている。【０２１７】
パケット受信部８１１は、マスタノード４００から送られてくるパケットを受信し、パケットバッファ８１２、パケットカウンタ５３０に転送する。マスタノード４００から送られてくるパケットがＴＳパケットでないので、ＴＳパケット受信部５１０をパケット受信部８１１としている。マスタノード４００から送られてくるパケットはＴＳパケットではないものの、同一サイズのパケットが同一間隔で送られてくることを前提としている。【０２１８】
パケットバッファ８１２は、パケット受信部８１１から送られたパケットを格納し、クロック再生部８１４から指示される速度でパケットを出力する。【０２１９】
キュー長監視部８１３は、パケットバッファ８１２のバッファ蓄積量を監視する。そして、バッファ蓄積量とバッファ基準値との大小関係をクロック再生部８１４に通知する。【０２２０】
クロック再生部８１４は、バッファ蓄積量がバッファ基準値と同一になるよう、クロック周波数を調整する。【０２２１】
パケットカウンタ５３０は、パケット受信部８１１からパケットを受信すると、カウンタの値を所定の値分だけ増加させる。同時にクロック再生部８１４で決定される周波数に従い、カウンタの値を減少させる。【０２２２】
同期精度計測部５４０は、第４の実施形態と同様に、パケットカウンタ５３０のカウンタ値をモニタし、ある期間（インターバル）におけるカウンタ値の最大値を計測する。そして、この最大値を基にクロック同期精度を計測する。
＜動作の説明＞【０２２３】
図２９において、クロック同期方法として、適応クロック方式が用いられた時の、クロック同期精度を求めるためのスレーブノードの動作について説明する。【０２２４】
パケット受信部８１１は、パケットを受信すると、パケットバッファ８１２とパケットカウンタ５３０に転送する。【０２２５】
受信パケットを格納するパケットバッファ８１２のバッファ蓄積量をキュー長監視部８１３はモニタしている。バッファ蓄積量がバッファ基準値に対して、同一か、大きいか、小さいかを判断し、クロック再生部８１４に通知する。なおこの判断は、ある時点でのバッファ蓄積量に基づいて判断してもよく、またある一定時間の平均値に基づいて判断してもよい。【０２２６】
クロック再生部８１４は、パケットバッファ８１２のバッファ蓄積量が基準値を保持するように読み出しクロックｆ２を制御する。すなわち、バッファ蓄積量が基準値と同等になる場合、再生クロックｆ２がマスタノード４００のクロックｆ１と同期していると考える。その考えのもと、バッファ蓄積量が基準値と同一の時は、再生クロックｆ２を前の状態のままとする。バッファ蓄積量が基準値より小さい場合には、ｆ２＞ｆ１と判断し、ｆ２のクロック周波数を低く調整する。逆に、バッファ蓄積量が基準値より大きい場合には、ｆ２＜ｆ１と判断し、ｆ２のクロック周波数を高く調整する。【０２２７】
パケットバッファ８１２、キュー長監視部８１３、クロック再生部８１４による前述の動作によりマスタノード４００とスレーブノード８１０のクロックを同期させる処理が行なわれる。これに対して、同期精度計測部５４０が現在のクロック同期精度を計測する。【０２２８】
同期精度計測部５４０は、第４の実施形態における図２５と同様の構成からなり、カウンタ最大値監視部５４１と同期精度算出部５４２と表示部５４３を有する。【０２２９】
パケットカウンタ５３０はパケット受信部８１１からパケットの受信を通知されると、第４の実施形態の時と同様に、カウンタの値を所定の値分だけ増加させる。同時にクロック再生部８１４で決定される周波数に従い、カウンタの値を減少させる。【０２３０】
このパケットカウンタ５３０の動きに対して、同期精度計測部５４０は第４の実施形態のときと同様の処理により、クロック同期精度を計測する。【０２３１】
第５の実施形態の同期精度計測部５４０の動作を再度図２６−１及び図２６−２を参照して説明する。【０２３２】
カウンタ最大値監視部５４１はパケットカウンタ５３０のカウンタ値を監視している。そして、インターバルｔにおけるカウンタ値の最大値  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求める。カウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求めると、カウンタ最大値監視部５４２はそのインターバルにおけるカウンタ最大値とカウンタ基準値  Ｃｏｕｎｔｅｒ＿Ｒｅｆとの差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を算出する。【０２３３】
Ｄｅｖｉａｔｉｏｎ［ｔ］  ＝  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］  −  Ｃｏｕｎｔｅｒ＿Ｒｅｆ差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を求めたカウンタ最大値監視部５４１は、Ｄｅｖｉａｔｉｏｎ［ｔ］を同期精度算出部５４２に通知する。同期精度算出部５４２は受け取ったＤｅｖｉａｔｉｏｎ［ｔ］の値を基に前述の式３又は式４と式５を用いて、クロック同期精度ＦＦＯを計算する。クロック同期精度ＦＦＯを算出した同期精度算出部５４２は結果を表示部５４３に通知する。表示部５４３はクロック同期精度ＦＦＯを例えば外部のモニタを介して、ユーザに結果を表示する。【０２３４】
以上説明したように、クロック同期方法として、適応クロック法を用いる場合においても、同期精度計測部５４０はパケット受信部８１１から受信するパケットの到着状況並びに出力状況を管理するパケットカウンタ５３０の最大値をインターバル毎に管理し、最大値の変動量を基にして、現在のクロック同期精度を算出することができる。これにより、ユーザがサービス中のマスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。【０２３５】
本実施の形態で説明した２つの例から分かるように、本発明で提案するクロック同期精度計測方法はクロック同期方法に依存せず、マスタノードからスレーブノードに対して、定期的に同サイズのパケットが送信される条件の下であれば動作可能である。第４の実施形態と同様に、クロック同期制御の処理と並列に、パケットカウンタ５３０に対して定期的にパケットが入力され、同期精度計測部５４０がパケットカウンタ値の最大値をインターバル毎に管理し、最大値の変動量を基にして、クロック同期精度を算出する。特に、スレーブノードにおける処理で実現可能であることから、実運用ネットワークにおいて、安価かつ安定的にクロック同期精度の計測が可能であるという効果がある。
［発明を実施するための第６の実施形態］【０２３６】
本発明を実施するための他の実施形態について、図面を参照して詳細に説明する。実施形態４及び実施形態５では、同期精度を算出する際に、図２０に示すスレーブノード５００が有しているパケットカウンタ５３０のカウンタ値の最大値を監視し、最大値の変動量から同期精度を算出していた。本実施形態では、この最大値の監視方法を変更した場合の同期精度算出方法について説明する。【０２３７】
まず、図３０を用いて、実施形態４のパケットカウンタ５３０におけるＴＳパケット１２０の到着状況とそれに対応するカウンタ値の増減状況について、改めて説明する。この図３０は図２３に相当するものであり、ＴＳパケット１２０の到着タイミングを追記したものである。なお、以下の説明及び図中では、ＴＳパケットを識別する符号として「Ｐ」を用いる。また、或るタイミングにおけるカウンタ値を識別する符号として「Ｃ」を用いる。また、カウンタ値の推移、最大値及び最小値を表す線を識別する符号として「Ｌ」を用いる。【０２３８】
図３０では、ＴＳパケットＰ１０〜Ｐ２０の到着に伴うカウンタ値変動の推移を示す線であるＬ１、パケット到着時のカウンタ値Ｃ１０〜Ｃ２０が示されている。加えて、図３０では、カウンタ値Ｃ１０〜Ｃ２０の中のインターバル毎のカウンタ最大値のラインであるＬ３が示されている。ＴＳパケットは、パケットネットワークの特性上、ネットワーク内でランダムに遅延が付加されている。今回の例では、ＴＳパケットＰ１０、Ｐ１１、Ｐ１５、Ｐ１７、Ｐ１９、Ｐ２０には遅延が付加されていないものとする。また、ＴＳパケットＰ１２、Ｐ１３、Ｐ１４、Ｐ１６、Ｐ１８には遅延が付加されているものとする。図３０では、横軸方向が経過時間を、縦軸方向がカウンタ値を示している。【０２３９】
上述したように実施形態４では、パケットカウンタ５３０が、ＴＳパケット１２０を受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ５２４で決定される周波数に従い、カウンタの値を減少させている。図３０を用いて、カウンタ値の取り扱いをより詳細に見てみると、到着パケットのカウンタ増加分を加算した後のカウンタ値をパケット到着時のカウンタ値Ｃ１０〜Ｃ２０としている。そして、このパケット到着時カウンタ値Ｃ１０〜Ｃ２０を参照して、インターバル内のカウンタ最大値を監視している。例えば、インターバルＸでは、到着時カウンタ値Ｃ１０〜Ｃ１４の中で最大となっている到着時カウンタ値Ｃ１０、Ｃ１１の値をカウンタ最大値としている。同様に、インターバルＸ＋１では、到着時カウンタ値Ｃ１５〜Ｃ２０の中で最大となっている到着時カウンタ値Ｃ１７、Ｃ１９、Ｃ２０の値をカウンタ最大値としている。【０２４０】
以上、図３０を用いて説明した実施形態４におけるカウンタ値の参照方法に対して、本実施形態では、到着時カウンタ値として参照する値を変更する。この点について図３１を用いて以下説明する。【０２４１】
図３１において、到着するＴＳパケットＰ１０〜Ｐ２０とその到着タイミングは図３０と同様である。図３０に示したように実施形態４では到着時カウンタ値をカウンタ増加分加算後のＣ１０〜Ｃ２０としていたのに対して、本実施形態では、カウンタ増加分加算前のＣ３０〜Ｃ４０としている。到着時カウンタ値をカウンタ増加分加算前のＣ３０〜Ｃ４０としているため、カウンタ最大値Ｌ４も到着時カウンタ値Ｃ３０〜Ｃ４０の中の最大値となる。ここで、カウンタ最大値Ｌ４は、到着時のカウンタ値として参照するカウンタ増加分加算前の到着時カウンタ値Ｃ３０〜Ｃ４０の中の最大値であり、カウンタ値の推移を示すＬ１の中の最大値を示しているわけではない。【０２４２】
既に説明しているように、パケットカウンタ５３０が、パケット到着時に増加するカウンタ増加量は１パケット分で一定である。そのため、到着時のカウンタ値として参照する値を、実施形態４のカウンタ増加分加算後の値から本実施形態のカウンタ増加分加算前の値に変更したとしても、到着時カウンタ値は１パケット分差し引いた値にシフトするだけであり、インターバル毎の最大値の変動量という点では同一値となる。【０２４３】
このことから、本実施形態６では、到着時カウンタ値を到着パケットのカウンタ増加分を加算する前の値として、インターバル毎の最大値を監視し、その最大値の変動量から同期精度を求めることとする。【０２４４】
カウンタ最大値の監視方法を変更したとしても、インターバル毎の最大値の変動量は実施形態４と同一値となる。そのため、スレーブノード５００の動作としては、インターバル毎のカウンタ最大値を求める部分が実施形態４からの変更点となる。一方、インターバル毎の最大値の変動量から同期精度を求める部分は実施形態４と同様となる。【０２４５】
具体的には、図２６で説明した実施形態４における同期精度計測部５４０の処理フローに関して、ステップＳ２０１のみがステップＳ３０１に変更となり、その後は同様の処理となる。ステップＳ３０１における処理内容としては、図３２−１、２のステップＳ２０１と同様に、カウンタ最大値監視部５４１はパケットカウンタ５３０のカウンタ値を監視している。そして、カウンタ値の増減状況の中で、特にパケット増加分を加算する前の値を監視し、インターバルｔにおけるパケット増加分加算前の値の中の最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求める（ステップＳ３０１）。その後のステップＳ２０２〜Ｓ２０６は図２６と同様の処理である。
＜効果＞【０２４６】
以上説明したように、本発明によれば、スレーブノードにおいて、パケットカウンタのカウンタ値の増減状況の中で特にパケット到着時の増加分を加算する前の値を監視し、その値の中の最大値をインターバル毎に管理し、最大値の変動量を基にして、現在のクロック同期精度を算出することができる。本実施形態で説明したカウンタ最大値の監視方法は、実施形態４で説明した方法と比較して、取得する最大値がパケット増加分を差し引いた値となるため、インターバル毎の最大値の変動量としては、実施形態４で求める値と同一になる。そのため、最大値の変動量を基に求める同期精度は同じ値を得ることができる。これにより、サービス提供中において、マスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果を奏する。
［発明を実施するための第７の実施形態］【０２４７】
本発明を実施するための他の実施形態について、図面を参照して詳細に説明する。実施形態４や実施形態６では、同期精度を算出する際に、図２５のスレーブノード５００におけるパケットカウンタ５３０は「ＴＳパケット受信部５１０からＴＳパケットを受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ５２４で決定される周波数に従い、カウンタの値を減少させる。」という動作を行っていた。そして、実施形態４ではカウンタ増加分の加算後、実施形態６では加算前、の値を到着時カウンタ値として、その中の最大値を監視し、その変動量から同期精度を算出していた。本実施形態では、パケットカウンタ５３０の動作を上述の実施形態４及び実施形態６から変更した場合の同期精度算出方法について説明する。【０２４８】
実施形態４や実施形態６におけるパケットカウンタ５３０は、本実施形態７では、減算／加算パケットカウンタ９２０に変更される。減算／加算パケットカウンタ９２０の動作は、「ＴＳパケット受信毎にカウンタ値を所定の値だけ減算し、通常時はＶＣＯ５２４の速度に従いカウンタ値を加算させる。」という動作に変更される。【０２４９】
図３３は、本実施形態における実施形態６の図３１に相当する図である。カウンタ値の推移Ｌ５は減算／加算パケットカウンタ９２０のカウンタ値の増減状況を示している。到着するＴＳパケットＰ１０〜Ｐ２０とその到着タイミングは図３１と同様となっている。本実施形態では、パケット到着時のカウンタ値の扱いとして、カウンタ減少分減算後の値を到着時カウンタ値Ｃ５０〜Ｃ６０としている。【０２５０】
実施形態４乃至６では、遅延ゼロのパケットが到着した時にカウンタ値は最大値となり、遅延が付加されたパケットが到着した時の到着時カウンタ値は遅延量に応じて最大値からカウンタ値が減少していた。これに対して、本実施形態７では、減算／加算パケットカウンタ９２０のカウンタ値の加算／減算方法が変更される。そのため、遅延ゼロのパケットが到着した時のカウンタ値はカウンタ最小値Ｌ６となる。また、遅延が付加されたパケットが到着した時の到着時カウンタ値Ｃ５０〜Ｃ６０は遅延量に応じてカウンタ最小値Ｌ６からカウンタ値が増加する。カウンタ最小値Ｌ６の変化は図２３に示す実施形態４の動きや、実施形態６の説明の際に示したカウンタ最大値Ｌ３及びＬ４と逆の動きとなる。すなわち、スレーブノード５００の速度が遅い場合、図Ｃ１１のカウンタ最大値Ｌ３、Ｌ４や図２３のカウンタ最大値は徐々に増加していたのに対して、図３３ではカウンタ最小値Ｌ６は徐々に減少する。【０２５１】
減算／加算パケットカウンタ９２０の動作はパケットカウンタ５３０の動作に対して、カウンタ値の増加、減少の動きが逆になるものの、インターバル毎の減算／加算パケットカウンタ９２０の最小値の変動量は、パケットカウンタ５３０の最大値の変動量と同一値となる。ただし、変動量の符号はプラスマイナスが逆になるため、その点に関しての処理が必要である。この処理については図３５−１及び図３５−２を用いて後述の処理フローで説明する。以上説明したように実施形態４及び実施形態６と同じく本実施形態も変動量が同一である。そのため、変動量から算出される同期精度についても実施形態４及び実施形態６と同一の精度を求めることができる。【０２５２】
次に、本実施形態の構成について説明する。本実施形態は、パケットカウンタの動作が変更になることに伴い、図２５に記載したスレーブノード５００の構成が図３４のスレーブノード９１０に記載するように変更される。具体的には、パケットカウンタ５３０が減算／加算パケットカウンタ９２０に、同期精度計測部５４０が同期精度計測部９３０に、カウンタ最大値監視部５４１がカウンタ最小値監視部９３１にそれぞれ変更となる。【０２５３】
また、スレーブノードの動作としては、実施形態４においてインターバル毎のカウンタ最大値を求めていた処理がインターバル毎のカウンタ最小値を求める処理に変更となる。一方、それ以降の変動量から同期精度を求める部分は実施形態４と同様となる。
同期精度計測部９３０の処理フローを図３５−１及び図３５−２に示す。【０２５４】
ステップＳ３０１では、カウンタ最小値監視部９３１は減算／加算パケットカウンタ９２０のカウンタ値を監視している。具体的には、カウンタ値の増減状況の中で、特にパケット減少分を減算した後の値を監視し、インターバルｔにおけるパケット減少分減算後の値の中の最小値Ｃｏｕｎｔｅｒ＿Ｍｉｎ［ｔ］を求める（ステップＳ３０１）。【０２５５】
続いて、カウンタ最小値Ｃｏｕｎｔｅｒ＿Ｍｉｎ［ｔ］を求めたカウンタ最小値監視部９３１はそのインターバルにおけるカウンタ最小値Ｃｏｕｎｔｅｒ＿Ｍｉｎ［ｔ］とカウンタ基準値Ｃｏｕｎｔｅｒ＿Ｒｅｆとの差分量Ｄｅｖｉａｔｉｏｎ［ｔ］を算出する（ステップＳ３０２）。この際の数式は以下の通りである。【０２５６】
Ｄｅｖｉａｔｉｏｎ［ｔ］  ＝  Ｃｏｕｎｔｅｒ＿Ｒｅｆ  −  Ｃｏｕｎｔｅｒ＿Ｍｉｎ［ｔ］【０２５７】
この差分量Ｄｅｖｉａｔｉｏｎ［ｔ］は、上述までの記載で言うところのカウンタ最小値の変動量のことである。なお、カウンタ基準値Ｃｏｕｎｔｅｒ＿Ｒｅｆとは、測定開始時のカウンタ値或いは予め決められたカウンタ値である。前述のように、変動量の符号がパケットカウンタ５３０と減算／加算パケットカウンタ９２０でプラスマイナスが逆になることに伴い、式も一部変更となっている。【０２５８】
その後、差分量  Ｄｅｖｉａｔｉｏｎ［ｔ］を求めたカウンタ最小値監視部９３１は、Ｄｅｖｉａｔｉｏｎ［ｔ］を同期精度算出部５４２に通知する（ステップＳ３０３）。【０２５９】
続くステップＳ２０４以降の動作は、図２６−１及び図２６−２に示す実施形態４の動作と同様である。
＜効果＞【０２６０】
以上説明したように、本発明によれば、スレーブノードのパケットカウンタの動作として、パケットが到着すると１パケット分のカウンタ値を減算し、一方で、通常時はＶＣＯ５２４の速度に従いカウンタ値は加算されるという動作を行なう。その上で、カウンタ値の増減状況の中で特にパケット到着時の減少分を減算した後の値を監視し、その監視した値の中の最小値をインターバル毎に管理し、最小値の変動量を基にして、現在のクロック同期精度を算出することができる。本実施形態で説明したカウンタ最小値の監視方法は、実施形態４で説明した方法と比較して、カウンタ値の増加、減少が逆になるだけで、インターバル毎の最小値の変動量としては、実施形態４で求める最大値の変動量と同一になる。そのため、最小値の変動量を基に求める同期精度は同じ値を得ることができる。これにより、サービス提供中において、マスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。
［発明を実施するための第８の実施形態］【０２６１】
本発明を実施するための他の実施形態について、図面を参照して詳細に説明する。実施の形態７では、同期精度を算出する際に、図３４のスレーブノード９１０における減算／加算パケットカウンタ９２０のカウンタ値の最小値を監視し、その変動量から同期精度を算出していた。本実施形態では、最小値の監視方法を変更した場合の同期精度算出方法について説明する。【０２６２】
図３３で説明した実施形態７におけるカウンタ値の参照方法に対して、本実施形態８では、到着時カウンタ値として参照する値を変更する。図３６を用いて説明する。【０２６３】
図３６において、到着するＴＳパケットＰ１０〜Ｐ２０とその到着タイミングは図３３と同様である。実施形態７の図３３では到着時カウンタ値をカウンタ減少分減算後のＣ５０〜Ｃ６０としていたのに対して、本実施形態では、カウンタ減少分減算前のＣ７０〜Ｃ８０としている。到着時カウンタ値をカウンタ減少分減算前のＣ７０〜Ｃ８０としているため、カウンタ最小値Ｌ８も到着時カウンタ値Ｃ７０〜Ｃ８０の中の最小値となる（ここでは、カウンタ最小値Ｌ８は、到着時のカウンタ値として参照するカウンタ減少分減算前の到着時カウンタ値Ｃ７０〜Ｃ８０の中の最小値であり、カウンタ値の推移を示すＬ８の中の最小値を示しているわけではない）。【０２６４】
既に説明しているように、減算／加算パケットカウンタ９２０の動作としては、パケット到着時のカウンタ減少量は１パケット分で一定である。そのため、到着時のカウンタ値として参照する値を、実施形態７のカウンタ減少分減算後の値から本実施形態のカウンタ減少分減算前の値に変更したとしても、到着時カウンタ値は１パケット分差し引いた値にシフトするだけであり、インターバル毎の最小値の変動量という点では同一値となる。【０２６５】
このことから、本実施形態では、到着時カウンタ値を到着パケットのカウンタ減少分を減算する前の値として、インターバル毎の最小値を監視し、その最小値の変動量から同期精度を求めることとする。【０２６６】
カウンタ最小値の監視方法を変更したとしても、インターバル毎の最小値の変動量は実施形態７の場合と同一値となる。そのため、スレーブノード９１０の動作としては、インターバル毎のカウンタ最小値を求める部分のみが変更となり、インターバル毎の最小値の変動量から同期精度を求める部分は実施形態７と同様となる。【０２６７】
具体的には、図３５−１及び図３５−２で説明した実施形態７における同期精度計測部９３０の処理フローに関して、図３５−１及び図３５−２のステップＳ３０１が図３７−１及び図３７−２のステップＳ４０１へ変更となる。その後の動作は、図３５−１及び図３５−２と同様の動作となる。【０２６８】
処理内容としては、図３７−１及び図３７−２のステップＳ４０１に示すように、カウンタ最小値監視部９３１は減算／加算パケットカウンタ９２０のカウンタ値を監視している。カウンタ値の増減状況の中で、特にパケット減少分を減算する前の値を監視し、インターバルｔにおけるパケット減少分減算前の値の中の最小値Ｃｏｕｎｔｅｒ＿Ｍｉｎ［ｔ］を求める（ステップＳ４０１）。その後のステップＳ３０２〜Ｓ２０６は図３５−１及び図３５−２と同様の処理である。
＜効果＞【０２６９】
以上説明したように、本発明によれば、スレーブノードにおいて、パケットカウンタのカウンタ値の増減状況の中で特にパケット到着時の減少分を減算する前の値を監視し、その値の中の最小値をインターバル毎に管理する。そして、最小値の変動量を基にして、現在のクロック同期精度を算出することができる。本実施形態で説明したカウンタ最小値の監視方法は、実施形態７で説明した方法と比較して、取得する最小値がパケット減少分を足した値となるため、インターバル毎の最小値の変動量としては、実施形態７で求める値と同一になる。そのため、最小値の変動量を基に求める同期精度は同じ値を得ることができる。これにより、サービス提供中において、マスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。
［発明を実施するための第９の実施形態］【０２７０】
本発明を実施するための他の実施形態について、図面を用いて詳細に説明する。本実施の形態では、パケットネットワーク１３０でＴＳパケット１２０が廃棄される場合に、その廃棄についての対応を考慮した同期精度算出方法について説明する。【０２７１】
本来到着するべきであるＴＳパケット１２０がパケットネットワーク１３０で廃棄される場合、カウンタ値が１パケット分減る方向にシフトしてしまうという問題がある。【０２７２】
この問題に対応するために、ＴＳパケット１２０に格納されるＴＳ値を利用する。既に説明しているように、ＴＳとはノード間でクロック同期を行なうための数値であってマスタノード４００のクロックを基にして生成される時間情報を示す値である。従って、マスタノード４００がとある時間に送信したＴＳパケット１２０とその次に送信したＴＳパケット１２０に格納されるＴＳ値の差分は送信間隔を示す。ここで、マスタノード４００は一定の等しい間隔でＴＳパケット１２０を送信することを前提としている。そのため、マスタノード４００が送信する隣接のＴＳパケット１２０のＴＳ値の差分は一定値（ここでは、例としてこの一定値を「Ｔ」と表記する。）となる。このことを利用すると、スレーブノード５００において、到着するＴＳパケット１２０毎に格納されるＴＳ値の差分を見てみると、パケットネットワーク１３０においてパケット廃棄がない場合の差分はＴとなる。一方、パケットネットワーク１３０において例えば１パケット廃棄された場合は、到着間隔は２倍になるため、差分は２Ｔとなり、廃棄が生じたことが分かる。即ち、スレーブノード５００において受信したＴＳパケット１２０と一つ前に受信したＴＳパケット１２０のＴＳ値の差分を計算することにより、パケット廃棄の有無を判断できる。【０２７３】
このような処理を行なうために、本実施形態におけるスレーブノード５００の構成は図３８に示すように、パケットカウンタ制御部１０１１が追加され、スレーブノード１０１０となる。
パケットカウンタ制御部１０１１の処理フローを図３９に示す。【０２７４】
パケットカウンタ制御部１０１１は、ＴＳパケット受信部５１０からＴＳパケット１２０を受信すると、格納される受信ＴＳ値：ＴＳｍ（ｔ）を抽出するとともに値を保持する（ステップＳ５０１）。【０２７５】
パケットカウンタ制御部１０１１は、受信ＴＳ値を抽出すると、今回受信したＴＳパケット１２０の受信ＴＳ値：ＴＳｍ（ｔ）と一つ前に受信したＴＳパケット１２０の受信ＴＳ値：ＴＳｍ（ｔ−１）との差分Δを計算する（ステップＳ５０２）。【０２７６】
そして差分Δを到着間隔に相当するＴＳ値：Ｔで割った数Ｘを計算する（ステップＳ５０３）。【０２７７】
パケットカウンタ５３０のカウンタの値を、Ｘ×所定の数だけ増加させる（ステップＳ５０４）。【０２７８】
この処理フローに従うと、パケット廃棄がない場合は、これまで通り所定の数だけカウンタ値を増加させ、パケット廃棄があった場合は、Ｘ×所定の数だけカウンタ値を増加させる。この処理により、カウンタ値のレベルはシフトすることなく、保持される。【０２７９】
図３０で説明した実施形態４のカウンタ値の増減状況においてパケット廃棄が発生した場合について、図４０及び図４１に示した。この場合に本実施形態で説明した処理を行なった場合の数値例を説明する。【０２８０】
図３０のパケット到着状況において、ＴＳパケットＰ１３、Ｐ１８、Ｐ１９が廃棄されている。ＴＳパケット到着間隔に相当するＴＳ値をＴ＝１０００としている。【０２８１】
図４１に各ＴＳパケットＰ１０〜Ｐ２０に格納される受信ＴＳ値：ＴＳｍ（ｔ）、一つ前に到着したＴＳパケットの受信ＴＳ値との差分Δ、差分Δをパケット到着間隔に相当するＴＳ値（Ｔ＝１０００）で割った数Ｘの値を記載している。【０２８２】
一つ前のＴＳパケットが廃棄されていないＴＳパケット（例えば、ＴＳパケットＰ１１、Ｐ１２）はΔ＝１０００であり、Ｘ＝１０００／１０００＝１となるため、これまで通り、所定のカウンタ値を加算する。【０２８３】
一方、ＴＳパケットＰ１３が廃棄されているため、その次に到着したＴＳパケットＰ１４については、受信ＴＳ：ＴＳｍ（ｔ）＝１４０００であり、ひとつ前の到着パケットの受信ＴＳ：ＴＳｍ（ｔ−１）＝１２０００との差分は、Δ＝１４０００−１２０００＝２０００となる。そのため、Ｘ＝２０００／１０００＝２となるため、２パケット分のカウンタ値を加算することになる。【０２８４】
同様に、ＴＳパケットＰ１８、Ｐ１９が廃棄されているため、その次に到着したＴＳパケットＰ２０については、受信ＴＳ：ＴＳｍ（ｔ）＝２００００であり、ひとつ前の到着パケットの受信ＴＳ：ＴＳｍ（ｔ−１）＝１７０００との差分は、Δ＝２００００−１７０００＝３０００となる。そのため、Ｘ＝３０００／１０００＝３となるため、３パケット分のカウンタ値を加算する。【０２８５】
このように、パケット廃棄発生後に到着したパケットの受信ＴＳ値からパケット廃棄を検出し、廃棄パケットの分を含めてＴＳ値を加算することにより、カウンタ値のレベルを保持することができるため、パケット廃棄が発生したとしてもこれまでと同様にクロック同期精度を算出することができる。【０２８６】
なお、本実施形態９では、実施形態４においてパケット廃棄が発生した場合を例に挙げて、パケット廃棄対応を説明した。ここで説明した受信ＴＳ値からパケット廃棄を検出し、廃棄パケットの分を含めてＴＳ値を加算する方法は、実施形態６にはそのまま適用可能である。【０２８７】
また、本実施形態と、上述の実施形態７及び実施形態８組み合わせるようにしてもよい。この場合、図３８におけるパケットカウンタ５３０を減算／加算パケットカウンタ９２０に置き換える。そしてステップＳ５０４において減算／加算パケットカウンタ９２０のカウンタの値を、Ｘ×所定の数だけ減算させるようにする。即ち、パケット廃棄がない場合は、これまで通り所定の数だけカウンタ値を減算させ、パケット廃棄があった場合は、Ｘ×所定の数だけカウンタ値を減算させる。この処理により、カウンタ値のレベルはシフトすることなく、保持される。【０２８８】
以上説明したように、本発明の実施形態によれば、スレーブノードにおいて、ＴＳパケットの到着状況並びに出力状況を管理するパケットカウンタの最大値をインターバル毎に管理し、最大値の変動量を基にして、現在のクロック同期精度を算出することができる。これにより、ユーザがサービス中のマスタ／スレーブノード間の現在のクロック同期精度を把握することができるという効果がある。【０２８９】
特に、スレーブノードにおける処理で精度を計測することができることから、実運用ネットワークでの適用も可能であり、マスタ／スレーブノードが物理的に別の場所に設置される実フィールドでの精度計測が困難という課題を解決できる。また、スレーブノードにおけるカウンタ値のモニタ情報から算出できるため、ＧＰＳのような特別な装置を具備する必要もないため、安価に実現可能であると共に、装置の設置場所等のサービス提供に対する特別な制限もないため、安定的に実現可能であるという効果がある。【０２９０】
なお、本発明の実施形態である、パケットネットワークにおけるクロック同期精度モニタを用いたクロック同期システム、スレーブノード及びマスタノードのそれぞれは、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。【０２９１】
本願は、日本の特願２００７−２３９４１５（２００７年９月１４日に出願）及び日本の特願２００８−１７２５７８（２００８年７月１日に出願）に基づいたものであり、又、特願２００７−２３９４１５及び特願２００８−１７２５７８に基づくパリ条約の優先権を主張するものである。特願２００７−２３９４１５及び特願２００８−１７２５７８の開示内容は、特願２００７−２３９４１５及び特願２００８−１７２５７８を参照することにより本明細書に援用される。【０２９２】
本発明の代表的な実施形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
【産業上の利用可能性】
【０２９３】
本発明は、ネットワークを介して接続された装置間のクロック同期精度の計測といった用途に好適である。
【図１】
2009035091.tif 000012
【図２】
2009035091.tif 000013
【図３】
2009035091.tif 000014
【図４】
2009035091.tif 000015
【図５】
2009035091.tif 000016
【図６】
2009035091.tif 000017
【図７】
2009035091.tif 000018
【図８】
2009035091.tif 000019
【図９】
2009035091.tif 000020
【図１０】
2009035091.tif 000021
【図１１】
2009035091.tif 000022
【図１２】
2009035091.tif 000023
【図１３】
2009035091.tif 000024
【図１４】
2009035091.tif 000025
【図１５】
2009035091.tif 000026
【図１６】
2009035091.tif 000027
【図１７】
2009035091.tif 000028
【図１８】
2009035091.tif 000029
【図１９】
2009035091.tif 000030
【図２０】
2009035091.tif 000031
【図２１】
2009035091.tif 000032
【図２２】
2009035091.tif 000033
【図２３】
2009035091.tif 000034
【図２４】
2009035091.tif 000035
【図２５】
2009035091.tif 000036
【図２６−１】
2009035091.tif 000037
【図２６−２】
2009035091.tif 000038
【図２７】
2009035091.tif 000039
【図２８】
2009035091.tif 000040
【図２９】
2009035091.tif 000041
【図３０】
2009035091.tif 000042
【図３１】
2009035091.tif 000043
【図３２−１】
2009035091.tif 000044
【図３２−２】
2009035091.tif 000045
【図３３】
2009035091.tif 000046
【図３４】
2009035091.tif 000047
【図３５−１】
2009035091.tif 000048
【図３５−２】
2009035091.tif 000049
【図３６】
2009035091.tif 000050
【図３７−１】
2009035091.tif 000051
【図３７−２】
2009035091.tif 000052
【図３８】
2009035091.tif 000053
【図３９】
2009035091.tif 000054
【図４０】
2009035091.tif 000055
【図４１】
2009035091.tif 000056
【国際調査報告】
2009035091.tif 000057
2009035091.tif 000058
2009035091.tif 000059
2009035091.tif 000060