(57)【特許請求の範囲】
【請求項１】
スレーブノードのクロックをマスタノードのクロックに同期させるクロック同期システムであって、
前記マスタノードは、タイムスタンプを含むパケットをスレーブノードに対して送信するパケット送信手段を備え、
前記スレーブノードは、前記マスタノードから送信された前記パケットを受信するパケット受信手段と、
前記パケットの受信時におけるスレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正し、且つ、前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行うパケットフィルタ手段と、
前記パケットフィルタ手段において採用された前記パケットに含まれるタイムスタンプに基づいて前記スレーブノードのクロックを出力する位相同期手段と、
を備えることを特徴とするクロック同期システム。
【請求項２】
前記パケットフィルタ手段は、
前記マスタノードと前記スレーブノード間の同期精度と、あらかじめ設定された同期精度計測間隔と、あらかじめ設定された前記マスタノードのクロックにおいて単位時間あたりに進むタイムスタンプとを積算することで前記タイムスタンプずれを算出することを特徴とする請求項１記載のクロック同期システム。
【請求項３】
前記パケットフィルタ手段は、
前記パケット受信手段が前記マスタノードからのパケットの受信時におけるスレーブノードのクロックのタイムスタンプに対して、前記タイムスタンプずれを加算することで、前記スレーブノードのクロックのタイムスタンプを補正し、前記補正したスレーブノードのクロックのタイムスタンプと前記受信したパケットに格納されているタイムスタンプとの差分を遅延として、フィルタ処理を行うことを特徴とする請求項１または２に記載のクロック同期システム。
【請求項４】
前記パケットフィルタ手段は、
前記パケットの遅延に関する閾値から、前記タイムスタンプずれを減算して前記パケットの遅延に関する閾値を補正し、前記補正したパケットの遅延に関する閾値を用いてフィルタ処理を行うことを特徴とする請求項１または２に記載のクロック同期システム。
【請求項５】
前記パケットフィルタ手段は、
前記パケット受信手段で受信したパケットの中で前記パケットの遅延に関する閾値を超過した遅延を含むパケットのタイムスタンプを採用せず、前記パケットの遅延に関する閾値以下の遅延を含むパケットのタイムスタンプを採用することを特徴とする請求項１乃至４の何れか１項に記載のクロック同期システム。
【請求項６】
自ノードのクロックをマスタノードのクロックに同期させるノードであって、
前記マスタノードからネットワークを介してタイムスタンプを含むパケットを受信するパケット受信手段と、
前記パケットの受信時における自ノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと自ノードとが同期状態にあるときの自ノードのクロックのタイムスタンプと、前記マスタノードと自ノードとが同期状態にないときの自ノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正し、且つ、前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行うパケットフィルタ手段と、
前記パケットフィルタ手段において採用された前記パケットに含まれるタイムスタンプに基づいて自ノードのクロックを出力する位相同期手段と、
を備えることを特徴とするノード。
【請求項７】
前記マスタノードと自ノード間の同期精度と、あらかじめ設定した同期精度計測間隔と、あらかじめ設定された前記マスタノードのクロックにおいて単位時間あたりに進むタイムスタンプとを積算することで前記タイムスタンプずれを算出することを特徴とする請求項６記載のノード。
【請求項８】
前記パケットフィルタ手段は、
前記パケット受信手段が前記マスタノードからのパケット受信時における自ノードのクロックのタイムスタンプに対して、前記タイムスタンプずれを加算することで、自ノードのクロックのタイムスタンプを補正し、前記補正した自ノードのクロックのタイムスタンプと前記受信したパケットに格納されているタイムスタンプとの差分を遅延として、フィルタ処理を行うことを特徴とする請求項６または７に記載のノード。
【請求項９】
前記パケットフィルタ手段は、
前記パケットの遅延に関する閾値から、前記タイムスタンプずれを減算して前記パケットの遅延に関する閾値を補正し、前記補正したパケットの遅延に関する閾値を用いてフィルタ処理を行うことを特徴とする請求項６または７に記載のノード。
【請求項１０】
前記パケットフィルタ手段は、前記パケット受信手段で受信したパケットの中で前記パケットの遅延に関する閾値を超過した遅延を含むパケットのタイムスタンプを採用せず、前記パケットの遅延に関する閾値以下の遅延を含むパケットのタイムスタンプを採用することを特徴とする請求項６乃至９の何れか１項に記載のノード。
【請求項１１】
スレーブノードのクロックをマスタノードのクロックに同期させるクロック同期方法であって、
ネットワークを介してタイムスタンプを含むパケットを受信し、
前記パケットの受信時における前記スレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、
前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正し、
前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理をし、
前記パケットフィルタステップにおいて採用された前記パケットに含まれるタイムスタンプに基づいて前記スレーブノードのクロックを出力する、
ことを特徴とするクロック同期方法。
【請求項１２】
前記マスタノードと前記スレーブノード間の同期精度と、あらかじめ設定された同期精度計測間隔と、あらかじめ設定された前記マスタノードのクロックにおいて単位時間あたりに進むタイムスタンプ値とを積算することで前記タイムスタンプずれを算出する、
ことを特徴とする請求項１１記載のクロック同期方法。
【請求項１３】
スレーブノードのクロックをマスタノードのクロックに同期させるプログラムであって、
前記マスタノードからネットワークを介してタイムスタンプを含むパケットを受信するパケット受信処理と、
前記パケットの受信時におけるスレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正して、該補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行うパケットフィルタ処理と、
前記パケットフィルタ処理ステップにおいて採用された前記パケットに含まれるタイムスタンプに基づいて前記スレーブノードのクロックを出力させる位相同期処理と、
をコンピュータによって実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットネットワークを介して装置間のクロックを同期させるシステム、装置、方法、プログラムに関し、より詳細には、装置間のクロック同期精度を向上させるクロック同期システム、装置、方法およびそのプログラムに関する。
【背景技術】
【０００２】
ネットワーク内で転送されるデータ量の増大に伴い、通信事業者にとって、高速データ通信網を安価に実現する必要性が増している。そのため、時分割多重（Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ：  ＴＤＭ）方式を用いた高コストなネットワークからインターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：  ＩＰ）方式を用いた低コストかつ高効率なネットワークへの移行が進められつつある。【０００３】
ネットワーク内で転送されるトラヒックの中には、送信ノード側と受信ノード側で正確なクロック同期が必要とされるものがある。例えば音声やビデオなどのリアルタイムデータを高品質にやり取りするためには、あらかじめ決められたタイミングでデータを再生する必要があり、そのために正確なクロックが必要となる。【０００４】
また、他の例としては、モバイルネットワークサービスでは、セル間のハンドオーバを滞りなく実現するために正確なクロック同期が求められている。具体的には、モバイルネットワーク上の各基地局装置は無線ネットワーク制御装置との間で、５０  ｐａｒｔｓ  ｐｅｒ  ｂｉｌｌｉｏｎ（ｐｐｂ）という非常に高精度のクロック同期が求められている。サービス中に基地局装置のクロック同期精度がこの要求値を超えてしまうと、セル間のハンドオーバが失敗してしまう可能性があり、データが欠落し、通信品質が劣化する恐れがある。【０００５】
一般的なＴＤＭ方式を用いたネットワークでは、受信ノードは伝送路を介して送信ノードのクロック情報を抽出することができるため、送受信ノード間で高精度のクロック同期を実現可能だった。これに対して、ＩＰ方式を用いたネットワーク内では、データは非同期に転送される。そのため、受信側ノードでのデータの到着間隔には揺らぎがあり、受信データから高精度のクロック情報を抽出することは困難であった。よって、受信側ノードは送信側ノードのクロックの間隔を何らかの方法で求め、送信側ノードにクロックの間隔を合わせる必要がある。このように、送信側ノードのクロックの間隔に受信側ノードのクロックの間隔を合わせることを、受信側ノードが送信側ノードのクロックを再生するという。【０００６】
ＩＰネットワーク等に代表されるパケットネットワークを介して高精度のクロック再生を実現する技術として、タイムスタンプ方式が提案されている。このタイムスタンプ方式については、例えば特許文献１に記載されている。タイムスタンプ方式の構成図を図１に示す。図１は、送信側ノードであるマスタノード１００が、パケットネットワーク１３０を介して受信側ノードであるスレーブノード１１０へパケット１２０を送信する様子を表している。なお、マスタノード１００からパケットネットワーク１３０までの区間及びパケットネットワーク１３０からスレーブノード１１０までの区間は、ともにＴＤＭ方式を用いたネットワークにより接続されている。以下、図１の構成において、パケットネットワーク１３０を介し、その入口側エッジに位置するマスタノードと出口側エッジに位置するスレーブノードとのＴＤＭフローの同期制御を行うためにタイムスタンプ方式を使用する。【０００７】
タイムスタンプ方式では、送信側ノードにあたるマスタノード１００がタイムスタンプ（以下、「ＴＳ」と称呼する。）を格納したパケット１２０を受信側ノードにあたるスレーブノード１１０に向けて送信する。ここで、ＴＳとはマスタノード１００またはスレーブノード１１０のクロックを基にして生成される時間情報を示す値である。例えば、マスタノード１００のクロックの最小時間単位（例えば１２５ｕｓｅｃ）に１ずつ増加する数値であり、この最小時間単位の数値がクロックの幅であるといえる。以下、クロックが同期しているとは、マスタノードのクロック幅と、スレーブノードのクロック幅が等しいことをいう。なお、前述のクロックの最小時間単位をクロックの速度と捉えることもできる。この場合にはマスタノードのクロックの速度とスレーブノードのクロックの速度が等しいときに同期しているといえる。【０００８】
図１において、パケット１２０は、マスタノード１００からある一定間隔で送信されるパケット群であり、マスタノードから送信された順にパケット１２０−１、１２０−２、１２０−３、１２０−４、１２０−５となっている。パケット１２０の各パケットは、送信される時のマスタノードにおけるＴＳを格納しており、パケット１２０−１のＴＳは１、パケット１２０−２のＴＳは２、パケット１２０−３のＴＳは３、パケット１２０−４のＴＳは４、パケット１２０−５のＴＳは５となっている。【０００９】
その後、パケット１２０はパケットネットワーク１３０を経由して、スレーブノード１１０に到着する（図１上部分参照）。スレーブノード１１０は、マスタノード１００から受信したパケット１２０の間隔に合わせてクロック幅を調整することで、スレーブノード１１０のクロックをマスタノード１００のクロックに同期させようとする。例えば、図１のマスタノード１００のクロックにおいて、ＴＳが１２５ｕｓｅｃごとに１ずつ増加する場合を考える。つまり、マスタノード１００のクロック幅は１２５ｕｓｅｃとなっている。しかし、スレーブノード１１０のクロック幅は必ずしも１２５ｕｓｅｃとは限らず、異なっている可能性がある。このとき、図１においてパケット１２０−１とパケット１２０−２のＴＳは、それぞれ１と２であり、両パケットの間隔はＴＳにして１であり、マスタノード１００のクロック幅である１２５ｕｓｅｃに等しい。【００１０】
仮に、マスタノード１００がスレーブノード１１０へパケット１２０を送信する際に遅延が生じなかったとすると、スレーブノード１１０に到着した際の、スレーブノードのクロックにおけるＴＳは、それぞれパケット１２０−１が１、パケット１２０−２が２となる。このとき、スレーブノード１１０は、パケット１２０−１とパケット１２０−２のＴＳの差分である１を、マスタノード１００のクロックの最小時間単位、つまり１２５ｕｓｅｃであると認識する。したがって、スレーブノード１１０は、スレーブノード１１０のクロック幅がマスタノード１００のクロック幅（この例では１２５ｕｓｅｃ）と異なる場合でも、マスタノード１００のクロック幅（この例では１２５ｕｓｅｃ）に合わせることで同期をとることができる。【００１１】
しかし、実際にはパケット１２０がパケットネットワーク１３０を経由したことによりスレーブノード１１０における受信タイミングに遅延が生じる。パケットネットワーク１３０を通過し、スレーブノード１１０に到着した際のスレーブノードのクロックにおけるＴＳが、それぞれパケット１２０−１が１、パケット１２０−２が３であったとする。このとき、パケット１２０−２はＴＳにして１遅れたこととなる。このような場合に、スレーブノード１１０はパケット１２０−１とパケット１２０−２のＴＳの差分である２を、マスタノード１００のクロックの最小時間単位で、その値は２５０ｕｓｅｃだと認識してしまう。よってスレーブノード１１０は、クロックの最小時間単位が２５０ｕｓｅｃとなるようにクロック幅の調整を行う。その結果、マスタノード１００のクロック幅が１２５ｕｓｅｃであるのに対し、スレーブノード１１０のクロック幅は２５０ｕｓｅｃとなり、クロック幅が異なってしまう。このとき、マスタノード１００とスレーブノード１１０は同期していない状態であるという。【００１２】
したがって、パケットネットワーク１３０を経由したパケット１２０がスレーブノード１１０に到着する間隔は、マスタノード１００から送信された直後の間隔とは異なっている。そのため、スレーブノード１１０において、受信したパケット１２０のＴＳから換算したクロックの間隔をそのままマスタノード１００のクロックの間隔として制御を行うことはできない。そこで、パケット１２０を受信したスレーブノード１１０は、前述のように、格納されたＴＳを利用して自身のクロックを調整することにより、マスタノード１００のクロックと同期するという方法がＴＳ方式である。スレーブノード１１０の構成を説明しながら、より詳細にＴＳ方式におけるクロック同期の動作を説明する。【００１３】
スレーブノード１１０は、パケット受信部１４６と位相同期ループ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ：  ＰＬＬ）１４０を有している。パケット受信部１４６は、マスタノード１００からパケットネットワーク１３０を経由して転送されてきたパケット１２０を受信する。受信したパケット１２０はＰＬＬ１４０に送られる。ＰＬＬ１４０は、マスタノード１００からパケット１２０を受信したときにスレーブノード１１０のクロックをもとに生成するＴＳ（以下、「生成ＴＳ」と称呼する。）とマスタノード１００から受信したパケット１２０のＴＳ（以下、「受信ＴＳ」と称呼する。）との差分を計算し、ＰＬＬ１４０において、その差分を元に自身のクロックを調整することにより、クロック同期を実現する。ＰＬＬ１４０の構成の一例としては、図１に示したように、位相比較器１４１、ローパスフィルタ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ：  ＬＰＦ）１４２、比例・積分（Ｐｒｏｐｏｒｔｉｏｎ・Ｉｎｔｅｇｒａｔｉｏｎ：  ＰＩ）回路１４３、電圧制御発振器（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌ  Ｏｓｃｉｌｌａｔｏｒ：  ＶＣＯ）１４４、カウンタ１４５からなる構成が挙げられる。【００１４】
位相比較器１４１は、受信ＴＳとスレーブノード１１０のクロックから生成するＴＳとの差分信号を計算する。この差分信号はＬＰＦ１４２に入力される。ＬＰＦ１４２では、特定の閾値よりも高い周波数信号を減衰させて遮断し、低域周波数のみを信号として通過させることで、パケットネットワーク１３０を通過することにより差分信号に生じるジッタやノイズが除去される。ＬＰＦ１４２において平滑化された差分信号は、ＰＩ回路１４３に入力される。ＰＩ回路１４３では、差分信号を最終的にゼロに収束させる制御信号を計算し、ＶＣＯ１４４に出力する。ＶＣＯ１４４はＰＩ回路１４３からの制御信号によって決定される周波数のクロックを出力する。これにより、スレーブ側のクロックの幅（間隔）が調整される。また、カウンタ１４５は調整されたクロックに基づき、スレーブ側のＴＳを生成し、位相比較器１４１に渡す。このようなＰＬＬ１４０の動作により、スレーブノード１１０では、パケットネットワーク１３０を経由しても、マスタノード１００のクロックを再生し、マスタノード１００と同期することができる。【００１５】
パケットネットワークを介し、その入口側エッジに位置するマスタノードと出口側エッジに位置するスレーブノードが、以上説明した構成を有することにより、パケットネットワークを経由するＴＤＭフローの同期制御を行うことができる。【００１６】
現実的なネットワークにおいては、データがパケットネットワーク内で転送される際にルータやスイッチにおいてキューイング遅延を受けてしまう。特許文献２にも紹介されているように、一般に、ネットワーク内で発生する遅延量Ｄは、パケットがスレーブノードに到着したときにスレーブノードのクロックに基づき生成したＴＳ（生成ＴＳ：Ｔｓ）と受信したパケットに格納されているＴＳ（受信ＴＳ：Ｔｍ）との差分で求めるものである。したがって、揺らぎのあるネットワークを通過したことによってスレーブノードに到着するパケットの到着する時刻には、受信ＴＳに対して、実際にスレーブノードにパケットが到着するＴＳまでの間に遅延が生じており、中にはスレーブノードに到着するまでの遅延量が大きいパケットも存在する。スレーブノード内のＬＰＦにより、発生する遅延量のランダム性を平準化する処理が行われ、その影響を軽減する処理が施される。しかし、ネットワークの輻輳等が原因で遅延量が大きいパケットが到着し、ＬＰＦにおいて遅延の影響を十分に軽減できない場合には、クロック同期回路に対してある種のノイズが入力されることになり、同期精度の劣化をもたらしてしまう。これを回避するために、マスタノードからスレーブノードに到着したパケットの遅延量に応じてパケットのフィルタ処理を行う、パケットフィルタ機能を用いることが行われている。このパケットフィルタ機能については、例えば特許文献３に記載されている。【００１７】
図２は、遅延量の分布の一例を示している。この例では遅延量がほぼゼロから数１００μ秒まで分布している。パケットフィルタ機能では、遅延量に関して閾値を設定し、遅延量がこの閾値よりも小さいパケットのＴＳは採用し、大きいパケットのＴＳは採用しないというフィルタ処理を行う。【００１８】
このように、遅延量が閾値を超過するパケットのＴＳを選択的に用いることにより、遅延量が小さいパケットのＴＳのみを用いてクロック同期制御を行うことが可能になるため、同期精度の向上が期待できる。【００１９】
図３は、パケットフィルタ部を備えたスレーブノード３１０を示している。図１におけるスレーブノード１１０に対して、パケットフィルタ部３５０が追加されている。パケットフィルタ部３５０は、マスタノードから到着したパケットをパケット受信部１４６から受信し、パケットに格納されている受信ＴＳ（以下、「Ｔｍ」と称呼する。）と、パケットが到着したときにスレーブノード自身で生成したＴＳ（以下、「Ｔｓ」と称呼する。）とから遅延量Ｄを求める。遅延量Ｄが所定の閾値Ｄｔｈよりも小さい場合にそのパケットのＴＳを採用し、大きい場合にはそのパケットのＴＳを採用しない。パケットのＴＳを採用した場合には、そのパケットのＴＳをＰＬＬ１４０に渡す、という処理を行う。【００２０】
図４は、パケットフィルタ機能を使用する際のパケットのタイミングフローを示している。時間軸４０１はマスタノードにおける、スレーブノードへのパケット送信タイミングを示す時間軸を示している。この例では、パケット４０５が送信されている。また、時間軸４０１の下部にマスタノードにおけるクロック４０２（以下、「マスタクロック４０２」と称呼する。）が示されている。マスタノードにおいては、パケット４０５がマスタクロック４０２のＴＳが５５のタイミングで送信されている。そのためパケット４０５にはＴＳとして５５という値が格納されている。【００２１】
続いて、その下部にはスレーブノードにおける時間軸４０３とスレーブノードのクロック４０４（以下、「スレーブクロック４０４」と称呼する。）が示されている。この例では、ある同じ時刻において、マスタクロック４０２のＴＳと、スレーブクロック４０４のＴＳとは異なっている。一例として、マスタクロック４０２のＴＳが７０のとき、スレーブクロック４０４は６７、といったようにＴＳが異なっている。同時刻のときにＴＳは違うものの、マスタクロック４０２とスレーブクロック４０４のクロック幅は同一である。このスレーブクロック４０４のような状態のクロックを以下、「同期状態のスレーブクロック」と呼称する。スレーブクロックが同期状態であるためには、スレーブクロックのクロック幅と、マスタクロックのクロック幅とが一致していることが必要である。以下、同期状態のスレーブノードのクロック（図４では「スレーブクロック４０４」と表記する。）を基準として、ＴＳ方式におけるマスタクロックと同期していないスレーブクロックの動作について説明する。【００２２】
仮に、パケットネットワークを介さずネットワークがＴＤＭ方式のみで構成されていたならば、ネットワークに揺らぎがないため、マスタノードがマスタクロック４０２のＴＳが５５のときに送信したパケット４０５は、スレーブノードにおいて、スレーブクロック４０４でもＴＳが５５のときに到着する。パケット４０６は、このネットワークに遅延がないと仮定したときのＴＳ（５５）で到着したパケットを示している。しかし、マスタ／スレーブ間においてパケットネットワークでは遅延量Ｄ（図４の例では遅延量Ｄ＝４）が付加されることにより、パケットはスレーブクロック４０４のタイミング５９で到着している。パケット４０７は、パケットネットワークを経由し、遅延量４が付加されたことでスレーブクロック４０４において前述のＴＳが５９のとき到着したパケットを示している。以下、マスタスレーブが送信したパケットが、スレーブノードに到着したときのスレーブノードのクロックのタイムスタンプの値をパケットの到着タイミングと呼ぶ。【００２３】
上述したように、遅延量Ｄは、一般的に生成ＴＳと受信ＴＳとの差分によって求める。すなわち、遅延量＝生成ＴＳ−受信ＴＳ（Ｄ＝Ｔｓ−Ｔｍ）で表される。【００２４】
図４の例では、Ｄ＝Ｔｓ（＝５９）−Ｔｍ（＝５５）＝４となる。閾値Ｄｔｈ＝８と設定されているので、遅延量Ｄが０≦Ｄ≦Ｄｔｈを満たしているため、パケットのＴＳを採用する。Ｄ＞Ｄｔｈのパケットが到着した場合には、パケットのＴＳを採用しないこととなる。【００２５】
このように、受信ＴＳと生成ＴＳの差分から遅延量Ｄを求め、閾値Ｄｔｈからなる条件でフィルタ処理を実行することにより、遅延量が閾値Ｄｔｈよりも大きいパケットのＴＳを採用せず、閾値Ｄｔｈよりも小さいパケットのＴＳのみを選択的に採用してクロック同期制御を行うことが可能となる。【００２６】
上述した、図４を用いて説明した方法により、パケットフィルタ機能を用いてクロック同期制御を行うことが可能である。しかしながら、図４ではマスタクロック４０２とスレーブクロック４０４が完全に同期していて、スレーブクロック４０４が同期状態である場合を例として説明したが、現実には完全に同期している状況ではなく、同期していない状況から同期制御をかけることにより同期させることを目的としている。マスタノードのクロックとスレーブノードのクロックが同期していない場合には、下に示すような課題がある。【００２７】
図５は、図４で示したタイミングフローにマスタクロック４０２とスレーブノードのクロック５０１（以下、「スレーブクロック５０１」と称呼する。）が同期していない場合、特にスレーブクロック５０１のクロック幅が、マスタクロック４０２より小さい場合のタイミングフローを追加した図である。【００２８】
図５では、図４で示したマスタノードの時間軸４０１、マスタクロック４０２、スレーブノードの時間軸４０３、同期状態であるスレーブクロック４０４に加えて、スレーブノードがマスタノードに同期していない場合のスレーブクロック５０１が追加されている。この例では、スレーブクロック５０１は、スレーブクロック４０４に対して、クロック幅が小さい。よってスレーブノードはマスタノードに同期していない。【００２９】
図５では、マスタノードが受信ＴＳ、Ｔｍ＝５５を格納するパケット４０５をスレーブノードに送信する例を示している。スレーブノードは、仮にスレーブクロックが同期状態であるならば、パケット４０５を受信するタイミングは、パケット４０６として図示されているようにスレーブクロック４０４においてＴＳが５５のときとなる。ここで、同期状態でないスレーブクロック５０１においてのＴＳが５５のときのタイミング（パケット５０６）と、同期状態であるスレーブクロック４０４におけるＴＳが５５のときのタイミング（パケット４０６）との間でずれが生じている。以下、図４及び図５を参照して具体的に説明する。【００３０】
図４で説明したように、同期状態のスレーブクロック４０４においては、遅延量Ｄが含まれていない場合のパケット４０６の到着タイミングでの生成ＴＳの値はＴｓ＝５５で、実際に遅延量Ｄ（図４の例ではＤ＝４）が含まれる場合のパケット４０７の到着タイミングにおける生成ＴＳの値はＴｓ＝５９となっていた。【００３１】
スレーブクロック４０４は同期状態ではあるものの、前述したように、ある同じ時刻において、マスタクロック４０２のＴＳと、スレーブクロック４０４のＴＳは異なっている。一例として、マスタクロック４０２のＴＳが７０のとき、スレーブクロック４０４のＴＳは６７、といったようにＴＳが異なっている。【００３２】
同様に、図５においては、同期状態であるスレーブクロック４０４において、マスタノードからパケットを受信したＴＳ値５５（パケット４０６として図示）の時刻では、同期状態でないスレーブクロック５０１のＴＳ値は６４となっている。【００３３】
遅延量Ｄが含まれていない場合、生成ＴＳは受信ＴＳと等しくなるため、スレーブクロック４０４において遅延量Ｄが含まれていない場合（パケット４０６）の生成ＴＳはＴｓ＝５５であることを考慮すると、スレーブクロック５０１の下でのパケット５０６の到着タイミングはスレーブクロック４０４の下でのパケット４０６の到着タイミングに対して、ＴＳとして、５５−６４＝−９というずれが存在していることが分かる。つまり、スレーブクロック５０１における生成ＴＳがＴｓ＝５５であるパケット５０６は、スレーブクロック４０４におけるパケット４０６から−９シフトしている。このずれは、スレーブクロック５０１がマスタクロック４０２に同期していないことが原因で生じている。このように、ある時刻において、スレーブノードのクロックにおけるＴＳが、同期状態でのスレーブノードのクロックにおけるＴＳと異なることを、本発明では「タイムスタンプずれ（以下、「ＴＳずれ」と称呼する。）」と定義し、その値をΔで表す。上述の図５の例では、ＴＳずれΔは−９となっている。そして、スレーブノードのクロックがＴＳずれを含んでいることにより、適切なパケットフィルタ処理を行うことができないという問題がある。以下で具体的に説明する。【００３４】
図４で説明したように、同期状態では、パケット４０７の遅延量Ｄは、Ｄ＝Ｔｓ−Ｔｍ＝５９−５５＝４で、閾値Ｄｔｈ＝８と設定されている場合、０≦Ｄ≦Ｄｔｈを満たしているため、パケット４０７のＴＳは採用となった。【００３５】
これに対して、図５のようにマスタノードとスレーブノードが同期していない場合、スレーブノードに到着したパケット４０７の到着タイミングの生成ＴＳはＴｓ＝６９であるため、Ｄ＝Ｔｓ−Ｔｍ＝６９−５５＝１４となる。図５の例では、閾値Ｄｔｈ＝８と設定されているため、遅延量Ｄが、Ｄ＞Ｄｔｈとなり、遅延量が閾値よりも大きいと判断され、このパケット４０７のＴＳは採用されない。これはスレーブクロック５０１がスレーブクロック４０４に対してＴＳずれΔを含んでいる（この例ではΔ＝−９）ため、スレーブクロック４０４におけるパケット４０６の到着タイミングに対するスレーブクロック５０１におけるパケット４０７の到着タイミングの遅延量を適切に求めることができないからである。そのため、本来、パケットの到着に遅延がなければ採用するはずのＴＳを採用しないこととなってしまい、適切なパケットフィルタ処理を行うことができないという問題が生じる。【００３６】
スレーブノードのクロック幅がマスタノードのクロック幅に比べ大きい場合も同様の課題があることを、図６を参照して説明する。図６は、図５におけるスレーブノードのクロックであるスレーブクロック５０１をスレーブクロック６０１に変更したものである。スレーブクロック６０１は、スレーブノードがマスタノードに同期しておらず、スレーブクロック６０１はスレーブクロック４０４に対して、クロック幅が大きくなっている。【００３７】
スレーブクロック６０１において、遅延量Ｄが含まれる場合、パケット４０７の到着タイミングにおける生成ＴＳはＴｓ＝５２となっている。一方、同期状態のスレーブクロック４０４において、遅延量Ｄが含まれていないと仮定した場合（パケット４０６、ＴＳが５５）にパケット４０６が到着した時刻と同じ時刻には、同期状態でないスレーブクロック６０１のＴＳは、４９となっている。【００３８】
遅延量Ｄが含まれていない場合、生成ＴＳは受信ＴＳと等しくなるため、スレーブクロック４０４において生成ＴＳはＴｓ＝５５であることを考慮すると、スレーブクロック６０１の下でのパケット６０６の到着タイミングからスレーブクロック４０４の下でのパケット４０６の到着タイミングまで、ＴＳとして、５５−４９＝＋６というＴＳずれが存在していることが分かる。つまり、スレーブクロック６０１におけるパケット６０６の到着タイミングは５５であり、スレーブクロック４０４におけるパケット４０６の到着タイミングから＋６シフトしている。このずれは、スレーブクロック５０１がマスタクロック４０２に同期していないことが原因で生じている。このずれがパケットフィルタに及ぼす影響を以下に具体的に示す。【００３９】
図４で説明したように、同期状態では、パケット４０７は、Ｄ＝Ｔｓ−Ｔｍ＝５９−５５＝４で、閾値Ｄｔｈ＝８と設定されている場合、０≦Ｄ≦Ｄｔｈを満たしているため、採用となった。【００４０】
一方、図６のようにマスタノードとスレーブノードが同期していない場合、パケット４０７の到着タイミングでの生成ＴＳはＴｓ＝５２であるため、Ｄ＝Ｔｓ−Ｔｍ＝５２−５５＝−３となる。遅延量Ｄ＜０となり、０≦Ｄ≦Ｄｔｈを満たさないため、パケット４０７のＴＳは採用されない。これはスレーブクロック６０１がスレーブクロック４０４に対して、ＴＳずれΔを含んでいる（この例ではΔ＝＋６）ため、スレーブクロック４０４におけるパケット４０６の到着タイミングに対するスレーブクロック６０１におけるパケット４０７の到着タイミングの遅延量を適切に求めることができないからである。そのため、前述の図５の例と同様に、本来パケットの到着に遅延がなければ採用するはずのＴＳを採用しないこととなってしまい、適切なパケットフィルタ処理を行うことができない。その結果、マスタクロックとスレーブクロックとの同期をとることができないという問題が生じる。【００４１】
【特許文献１】特開２００４−２４８１２３号公報
【特許文献２】特開２００４−２７４７８６号公報
【特許文献３】特開２００７−１０４３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００４２】
上述のように、マスタノードとスレーブノードのクロックが同期していない場合、スレーブクロックは同期している状態のスレーブクロックに対してＴＳずれΔを含んでしまう。そのため、スレーブノードにパケットが到着したタイミングで生成される生成ＴＳ（Ｔｓ）にもＴＳずれΔが含まれるので、スレーブノード側で遅延量を適切に算出することができない。その結果として、パケットフィルタ処理を行う際、遅延量が所定の閾値を超過するパケットのＴＳを適切に採用するフィルタ処理を行うことができず、その結果としてマスタクロックとスレーブクロックとの同期をとることができないという課題がある。【００４３】
本発明の目的は、上述した課題である、パケットネットワークを介してマスタノードがスレーブノードへパケットを送信し、スレーブノード側でパケットフィルタ処理を行う際、遅延量が所定の閾値を超過するパケットのＴＳを適切に採用するフィルタ処理を行うことができず、その結果としてマスタクロックとスレーブクロックとの同期をとることができないという課題を解決するためのクロック同期システム、方法、装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００４４】
本発明のクロック同期システムは、スレーブノードのクロックをマスタノードのクロックに同期させるクロック同期システムである。前記マスタノードは、タイムスタンプを含むパケットをスレーブノードに対して送信するパケット送信手段を備えている。前記スレーブノードは、パケット受信手段と、パケットフィルタ手段と、位相同期手段とを備えている。前記パケット受信手段は、前記マスタノードから送信された前記パケットを受信する。前記パケットフィルタ手段は、前記パケットの受信時におけるスレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正して、前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行う。前記位相同期手段は、前記パケットフィルタ手段において採用された前記パケットに含まれるタイムスタンプに基づいて前記スレーブノードのクロックを出力する。
【００４５】
本発明のノードは、自ノードのクロックをマスタノードのクロックに同期させるノードである。前記ノードは、パケット受信手段と、パケットフィルタ手段と、位相同期手段を備えている。前記パケット受信手段は、前記マスタノードからネットワークを介してタイムスタンプを含むパケットを受信する。前記パケットフィルタ手段は、前記パケットの受信時における自ノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと自ノードとが同期状態にあるときの自ノードのクロックのタイムスタンプと、前記マスタノードと自ノードとが同期状態にないときの自ノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正して、前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行う。前記位相同期手段は、前記パケットフィルタ手段において採用された前記パケットに含まれるタイムスタンプに基づいて自ノードのクロックを出力する。
【００４６】
本発明のクロック同期方法は、スレーブノードのクロックをマスタノードのクロックに同期させるクロック同期方法であり、パケット受信ステップと、遅延算出ステップと、補正ステップと、パケットフィルタステップを含む。前記パケット受信ステップでは、ネットワークを介してタイムスタンプを含むパケットを受信する。前記遅延算出ステップでは、前記パケットの受信時における前記スレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出する。前記補正ステップでは、前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正する。前記パケットフィルタステップでは、前記パケット受信手段から受信した前記パケットに対して、前記補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行う。前記位相同期ステップでは、前記パケットフィルタステップにおいて採用された前記パケットに含まれるタイムスタンプに基づいて前記スレーブノードのクロックを出力する。
【００４７】
本発明のプログラムは、スレーブノードのクロックをマスタノードのクロックに同期させるプログラムであり、パケット受信処理と、パケットフィルタ処理と、位相同期処理を含む。前記パケット受信処理は、前記マスタノードからネットワークを介してタイムスタンプを含むパケットを受信する処理を実行させる。前記パケットフィルタ処理は、前記パケットの受信時におけるスレーブノードのクロックのタイムスタンプと受信した前記パケットのタイムスタンプとの差分を前記パケットの遅延の値として算出し、前記マスタノードと前記スレーブノードとが同期状態にあるときの該スレーブノードのクロックのタイムスタンプと、前記マスタノードと前記スレーブノードとが同期状態にないときの該スレーブノードのクロックのタイムスタンプとのずれであるタイムスタンプずれに基づいて前記パケットの遅延の値または前記パケットの遅延に関する閾値を補正して、該補正した前記パケットの遅延の値及び前記パケットの遅延に関する閾値に基づいてフィルタ処理を行う処理を実行させる。前記位相同期処理は、前記パケットフィルタ処理ステップにおいて採用された前記パケットに含まれるタイムスタンプに基づいてスレーブノードのクロックを出力させる処理をコンピュータによって実行させる。
【発明の効果】
【００４８】
本発明によれば、パケットネットワークを介してマスタノードからスレーブノードへパケットを送信する際に、スレーブノード側で到着したパケットの遅延量を正確に算出し、遅延量が所定の閾値を超過するパケットのＴＳを適切に採用するパケットフィルタ処理を行うことができ、マスタクロックとスレーブクロックとの同期をとることができる。
【図面の簡単な説明】
【００４９】
【図１】タイムスタンプ方式を用いた場合のネットワーク構成並びにスレーブノード構成を示す図である。
【図２】遅延の確率分布を示す図である。
【図３】パケットフィルタ機能を用いた時のスレーブノード構成を示す図である。
【図４】マスタノードとスレーブノードが同期している場合の各ノードのクロック並びにパケットの転送／到着タイミングを示す図である。
【図５】マスタノードとスレーブノードが同期せず、スレーブノードが速い場合の各ノードのクロック並びにパケットの転送／到着タイミングを示す図である。
【図６】マスタノードとスレーブノードが同期せず、スレーブノードが遅い場合の各ノードのクロック並びにパケットの転送／到着タイミングを示す図である。
【図７】マスタノードとスレーブノードが同期せず、スレーブノードが速い場合の本発明の各ノードのクロック並びにパケットの転送／到着タイミングを示す図である。
【図８】マスタノードとスレーブノードが同期せず、スレーブノードが遅い場合の本発明の各ノードのクロック並びにパケットの転送／到着タイミングを示す図である。
【図９】本発明の実施の形態のマスタノード並びにスレーブノードの構成を示す図である。
【図１０】本発明のフィルタ制御部９１４の処理フローを示す図である。
【図１１】一般的なパケットフィルタ部３５０の詳細構成図の一例である。
【図１２】本発明の第一の補正方法を用いる場合のパケットフィルタ部９１２の詳細構成図の一例である。
【図１３】本発明の第二の補正方法を用いる場合のパケットフィルタ部９１２の詳細構成図の一例である。
【図１４】スレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおける遅延がない場合のパケットカウンタ９１６のカウンタ値を示す図である。
【図１５】スレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおける遅延がある場合のパケットカウンタ９１６のカウンタ値を示す図である。
【図１６】スレーブノードのクロックがマスタノードのクロックよりも遅れており、パケットネットワークにおける遅延がある場合のパケットカウンタ９１６のカウンタ値を示す図である。
【図１７】スレーブノードのクロックがマスタノードのクロックよりも進んでおり、パケットネットワークにおける遅延がある場合のパケットカウンタ９１６のカウンタ値を示す図である。
【図１８】本発明の第一の実施の形態における遅延の補正方法を用いる場合のフローチャートである。
【図１９】本発明の第二の実施の形態における遅延の補正方法を用いる場合のフローチャートである。
【符号の説明】
【００５０】
１００、９００  マスタノード
１１０、３１０  スレーブノード
１２０（１２０−１、２、３、４、５）、４０５、４０６、４０７、５０６、６０６、７０６、８０６  パケット
１３０  パケットネットワーク
１４０  ＰＬＬ
１４１  位相比較器
１４２  ＬＰＦ
１４３  ＰＩ回路
１４４  ＶＣＯ
１４５  カウンタ
１４６  パケット受信部
３５０、９１２  パケットフィルタ部
４０１  マスタノードの時間軸
４０２  マスタクロック
４０３  スレーブノードの時間軸
４０４、５０１、６０１  スレーブクロック
９０１  パケット生成部
９０２  パケット送信部
９１４  フィルタ制御部
９１５  同期精度モニタ部
９１６  パケットカウンタ
１１００  比較器
１１０１、１１０２、１３００  減算器
１２００  加算器
【発明を実施するための最良の形態】
【００５１】
本発明を実施するための最良の形態について、図面を参照して詳細に説明する。【００５２】
＜第一の実施の形態＞
以下、本発明の第一の実施の形態について説明する。
＜実施の形態の動作概要＞
上述したように、マスタノードのクロックとスレーブノードのクロックが同期していない場合は、スレーブノードのクロックは同期している状態のスレーブクロックに対してＴＳずれΔを含んでしまう。そのため、スレーブノードにパケットが到着したタイミングで生成される生成ＴＳ（Ｔｓ）にもＴＳずれΔが含まれるので、スレーブノード側で遅延量を適切に算出することができない。その結果として、パケットフィルタ処理を行う際、遅延量が所定の閾値を超過するパケットのＴＳを適切に採用するというフィルタ処理を行うことができないという課題があった。この課題を解決するための本発明の基本的な考え方について、図７及び図８を用いて説明する。【００５３】
背景技術において上述の課題が生じる原因は、スレーブノードにおいて、同期している状態のスレーブクロックではなく、ＴＳずれΔを含むスレーブクロックの下でのタイミングに基づいてＴＳの処理を行っていることにある。そこで、本発明では、同期状態のスレーブクロックに対する、同期状態でないスレーブクロックのＴＳずれΔを考慮して、同期状態のスレーブクロックのパケットの到着タイミングに対する同期状態でないスレーブクロックのパケットの到着タイミングの遅延量、もしくは、あらかじめ設定された遅延量の閾値を補正し、スレーブクロックのパケットの到着タイミングを同期状態のスレーブクロックのパケットの到着タイミングに合わせることにより、上記課題を解決する。【００５４】
図７を用いて、具体的に説明する。図７は、図５と同様にスレーブクロック５０１のクロック幅がマスタクロック４０２のクロック幅に対して小さく、スレーブノードとマスタノードが同期していない例を示している。図５で説明したように、スレーブクロック５０１はスレーブクロック４０４に対してΔ＝−９というＴＳずれを含んでいる。同期状態のスレーブクロック４０４でのパケット４０６の到着タイミングのＴＳは５５で、これと同時刻における同期状態でないスレーブクロック５０１の下でのパケット７０６のＴＳは６４となっており、パケット４０６の到着タイミングに対して、−９シフトしている。【００５５】
本発明では、このＴＳずれΔ＝−９を同期精度モニタ機能（詳細は後述する）などから算出し、算出したΔを用いてスレーブクロック５０１におけるパケット５０６の到着タイミングを補正する。具体的には、スレーブクロック４０４におけるパケット４０６の到着タイミングと同一の到着タイミングになるよう、スレーブクロック５０１におけるパケット５０６の到着タイミングを＋９シフトする。その結果、スレーブクロック５０１におけるパケット５０６の到着タイミングは５５から６４（パケット７０６の到着タイミング）へと補正される。このパケット７０６は、その到着タイミングがスレーブクロック４０４におけるパケット４０６の到着タイミングと同一となっているパケットを示している。【００５６】
この補正処理により、同期状態のスレーブクロック４０４におけるパケット４０６の到着タイミングと同じ時刻に、同期状態でないスレーブクロック５０１においてもマスタノードからパケットが到着したものとみなすことができる（パケット７０６に相当）。補正後は、スレーブクロック５０１におけるパケット７０６の到着タイミングＴｓ＝６４を基点としてフィルタ幅Ｄｔｈを定義できるため、スレーブクロック４０４の場合と同様のフィルタ幅でパケットのフィルタ処理を行うことができる。【００５７】
図８は、図６と同様にスレーブノードのクロック幅がマスタノードのクロック幅に対して大きくなっていて、スレーブノードとマスタノードが同期していない例を示している。図６で説明したように、スレーブクロック６０１がスレーブクロック４０４に対してΔ＝＋６というＴＳずれを含んでいる。同期状態のスレーブクロック４０４でのパケット４０６の到着タイミングのＴＳは５５で、これと同時刻における同期状態でないスレーブクロック６０１の下でのパケット８０６の到着タイミングのＴＳは４９となっており、パケット４０６の到着タイミングに対して、＋６シフトしている。【００５８】
図７の例と同様に、このＴＳずれΔ＝＋６を同期精度モニタ機能などから算出し、算出したΔを用いてスレーブクロック６０１におけるパケット６０６の到着タイミングを補正する。具体的には、スレーブクロック４０４におけるパケット４０６の到着タイミングと同一の到着タイミングになるよう、スレーブクロック６０１におけるパケット６０６の到着タイミングを−６シフトする。その結果、スレーブクロック６０１におけるパケット６０６の到着タイミングは５５から４９（パケット８０６の到着タイミング）へと補正される。このパケット８０６は、その到着タイミングがスレーブクロック４０４におけるパケット４０６の到着タイミングと同一となっているパケットを示している。このパケット８０６は、その到着タイミングがスレーブクロック４０４におけるパケット４０６の到着タイミングと同一となっているパケットを示している。【００５９】
この補正処理により、同期状態のスレーブクロック４０４におけるパケット４０６の到着タイミングと同じ時刻に、同期状態でないスレーブクロック５０１においてもマスタノードからパケットが到着したものとみなすことができる（パケット７０６に相当）。補正後は、スレーブクロック６０１におけるパケット８０６の到着タイミングＴｓ＝４９を基点としてフィルタ幅Ｄｔｈを定義できるため、スレーブクロック４０４の場合と同様のフィルタ幅でパケットのフィルタ処理を行うことができる。【００６０】
以上説明した解決方法を実現するネットワークとノードの構成及び動作について、以下に説明する。【００６１】
＜構成の説明＞
図９の上部分を参照すると、本発明の実施の形態の全体構成は、マスタノード９００とスレーブノード９１０とパケットネットワーク１３０とからなる。マスタノード９００、スレーブノード９１０は以下のように構成される。【００６２】
＜マスタノード＞
マスタノード９００は、パケット生成部９０１と、パケット送信部９０２とを備える。パケット生成部９０１は、クロック同期を行うためのＴＳが格納されたパケット１２０を生成する。パケット送信部９０２は、パケット生成部８０１で生成されたパケット１２０をスレーブノード９１０に対して、定期的に送信する。【００６３】
＜スレーブノード＞
スレーブノード９１０は、パケット受信部９１１と、パケットフィルタ部９１２と、ＰＬＬ（Ｐｈａｓｅｄ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）１４０と、フィルタ制御部９１４と、同期精度モニタ部９１５と、パケットカウンタ９１６とを備える。【００６４】
パケット受信部１４６は、マスタノード９００からパケットネットワーク１３０を経由して転送されてきたパケット１２０を受信する。受信したパケット１２０はパケットフィルタ部９１２とパケットカウンタ９１６に同時に送られる（片方にはパケット１２０のコピーを送れば良い）。【００６５】
パケットフィルタ部９１２は、パケット受信部１４６から受信したパケット１２０に格納される受信ＴＳとカウンタ１４５で生成される生成ＴＳの差分から遅延量Ｄを計算し、予め設定された閾値Ｄｔｈと遅延量Ｄの比較により、受信したパケット１２０のＴＳを採用するか、廃棄するかを決定し、ＴＳを採用するパケット１２０については、ＰＬＬ１４０に送る。また、フィルタ制御９１４から受信する制御情報により、遅延量Ｄもしくは閾値Ｄｔｈを調整することにより、より適切なパケット廃棄処理を実施する。【００６６】
なお、パケットフィルタ部９１２については、マスタノード６００とのパケット１２０の送受信開始時から起動してもかまわないし、安定までの時間を短縮するために初めのうちは起動せずに全パケットを取り込み、ある程度安定してから起動してもかまわない。一般的にＰＬＬ１４０に取り込まれるパケット数が減ると、その分、安定までの時間がかかる。パケットフィルタ部９１２を起動すると遅延が一定値以上のパケットは廃棄されるため、採用パケット数は減る。しかし、遅延の大きいパケットを取り込むと上述のように同期精度が十分に得られない可能性がある。そこで、ある程度安定するまではパケットフィルタ部９１２は起動せずに全パケットを取り込み、ある程度安定したらパケットフィルタ部９１２を起動して、遅延の大きいパケットを廃棄することで、同期精度を変えることなく安定までの時間を短縮できる。【００６７】
ＰＬＬ１４０は、位相比較器１４１、ローパスフィルタ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ：  ＬＰＦ）１４２、比例・積分（Ｐｒｏｐｏｒｔｉｏｎ・Ｉｎｔｅｇｒａｔｉｏｎ：  ＰＩ）回路１４３、電圧制御発振器（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌ  Ｏｓｃｉｌｌａｔｏｒ：  ＶＣＯ）１４４、カウンタ１４５を備え、背景技術で説明した図１のスレーブノードに含まれるＰＬＬ１４０と同一の構成となっている。なお、この構成はあくまでも一例である。これとは異なる構成であっても、スレーブノード９１０自身のクロックから生成するＴＳとマスタノード９００から受信したＴＳとの差分を計算し、その差分を元にスレーブノード９１０自身のクロックを調整することができれば、その構成は本構成に制限されない。【００６８】
位相比較器１４１は、パケットフィルタ部９１２から受信したパケット１２０に格納される受信ＴＳとカウンタ１４５で生成されるＴＳの差分信号を計算し、ＬＰＦ１４２に出力する。【００６９】
ＬＰＦ１４２は差分信号を平準化し、ジッタやノイズを抑圧するとともに、その結果をＰＩ回路１４３に出力する。【００７０】
ＰＩ回路１４３はこの平準化された差分信号が最終的にゼロとなるような制御信号を生成し、ＶＣＯ１４４に出力する。【００７１】
ＶＣＯ１４４は入力された制御信号によって決定される周波数のクロックを生成し、カウンタ１４５に出力する。また、生成した周波数のクロックに従い、パケットカウンタ９１６のカウンタ値を減少する。【００７２】
カウンタ１４５はクロックを元にＴＳを生成し、位相比較器１４１ならびにパケットフィルタ部９１２に転送する。【００７３】
パケットカウンタ９１６は、パケット受信部１４６からパケット１２０を受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ１４４で決定される周波数に従い、カウンタの値を減少させる。なお、パケットカウンタ９１６はパケットバッファでもかまわない。パケットバッファの場合、パケット受信部１４６からパケット１２０を受信すると、パケット１２０をバッファに蓄積し、同時にＶＣＯ１４４で決定される周波数に従い、蓄積しているパケットを出力する。【００７４】
同期精度モニタ部９１５は、同期精度計測部９１５−１と、カウンタ値増減情報取得部９１５−２より構成される。同期精度計測部９１５−１は、マスタノード９００とスレーブノード９１０との間の同期精度を計測する。同期精度を計測する方法としては、後述するパケットカウンタを用いた方法や、同期精度を計測する機器を用いる方法など、どのような方法をとってもよい。【００７５】
ここでは、同期精度を計測する方法の一例として、パケットカウンタを用いた方法について説明する。この方法における同期精度計測部９１５−１の動作を以下で説明する。【００７６】
まず、同期精度計測部９１５−１はパケットカウンタ９１６のカウンタ値をモニタする。そして、インターバルｔにおけるカウンタ値の最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求める。【００７７】
続いて、カウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］を求めた同期精度計測部９１５−１はそのインターバルにおけるカウンタ最大値Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］とカウンタ基準値Ｃｏｕｎｔｅｒ＿Ｒｅｆとの差分量Ｄｅｖｉａｔｉｏｎ［ｔ］を算出する。この際の式は以下の通りである。【００７８】
Ｄｅｖｉａｔｉｏｎ［ｔ］  ＝  Ｃｏｕｎｔｅｒ＿Ｍａｘ［ｔ］  −  Ｃｏｕｎｔｅｒ＿Ｒｅｆ
この差分量Ｄｅｖｉａｔｉｏｎ［ｔ］は、上述のカウンタ最大値の変動量を表す。なお、カウンタ基準値Ｃｏｕｎｔｅｒ＿Ｒｅｆとは、測定開始時のカウンタ値、予め決められたカウンタ値またはその双方を示す値である。【００７９】
カウンタ値増減情報取得部９１５−２では、パケットカウンタ９１６のカウンタ値の増減状況をモニタする。その後、同期精度計測部９１５−１とカウンタ値増減情報取得部９１５−２で求めた同期精度情報及びカウンタ値増減情報をフィルタ制御部９１４に通知する。【００８０】
フィルタ制御部９１４は同期精度モニタ部９１５から受け取った同期精度情報とパケットカウンタ９１６の増減情報を基にパケットフィルタ部９１２の閾値Ｄｔｈまたはパケットフィルタ部９１２で計算する遅延量Ｄを補正するためのＴＳずれΔを計算し、その結果をパケットフィルタ部９１２に通知する。ＴＳずれΔの計算方法については、以下で述べる。【００８１】
＜動作の詳細な説明＞
前述したように、本発明では、同期状態のスレーブクロックに対する、同期状態でないスレーブクロックのＴＳずれΔを考慮して、同期状態のスレーブクロックにおけるパケットの到着タイミングに対する同期状態でないスレーブクロックにおけるパケットの到着タイミングの遅延量、もしくは、あらかじめ設定された遅延量の閾値を補正する。その後、スレーブクロックにおけるパケットの到着タイミングを同期状態のスレーブクロックの到着タイミングに合わせることにより、同期状態のスレーブクロックにおけるパケットの到着タイミングと同一のタイミングでパケットのＴＳのフィルタ処理を行うことを特徴としている。これを実現するために、図９の各部の中で特にパケットフィルタ部９１２とフィルタ制御部９１４と同期精度モニタ部９１５の動作がポイントとなる。以降では、フィルタ制御部９１４の動作を中心に各部の動作を説明する。【００８２】
フィルタ制御部９１４の処理フローを図１０に示す。フィルタ制御部９１４はステップＳ１１として、所定の間隔毎に、同期精度モニタ部９１５からマスタ／スレーブノード間の同期精度情報を受信する。また、あわせてパケットカウンタ９１６のカウンタ値の増減情報を受信する。【００８３】
ここで、同期精度モニタ部９１５の同期精度計測部９１５−１における同期精度情報の取得方法については、前述した通り特に限定しない。また、カウンタ値増減情報取得部９１５−２におけるカウンタ値の増減情報の取得方法については後ほど一例を説明する。【００８４】
上述したように、フィルタ制御部９１４は、まず、同期精度ならびにカウンタ値の増減情報を受け取る（ステップＳ１１）。続いて、フィルタ制御部９１４は、ステップＳ１２において受信した同期精度からＴＳのずれΔを計算する。【００８５】
同期精度計測部９１５−１で得られた同期精度をＸｐｐｂとする場合、マスタノードのクロックにおいて、あらかじめ設定された１ｓｅｃあたりに進むタイムスタンプ値がＬ（ＴＳ）であるとし、あらかじめ決められた同期精度を計算する間隔をＹ  ｓｅｃとすると、Ｌ×Ｙ（ＴＳ）に対してＸ  ｐｐｂの割合でずれが生じていることになるため、ＴＳずれは、以下の式で表すことができる。【００８６】
【数１】
0005440880.tif 000002
【００８７】
続いて、ステップＳ１２において、ＴＳずれΔを計算したフィルタ制御部９１４は、ステップＳ１１で受信したカウンタ値の増減情報から、ＴＳずれΔの符号を以下の（１）、（２）のように決定する（ステップＳ１３）。なお、下記（１）、（２）の詳細については、後述する。【００８８】
（１）前回同期精度を計測したときのカウンタ値に比べて、カウンタ値が増加している場合、スレーブノードのクロックはマスタノードのクロックに比べて、そのクロック幅は大きくなっている。このとき、Δの符号をプラスとし、ＴＳずれは＋Δとなる。【００８９】
（２）前回同期精度を計測したときのカウンタ値に比べて、カウンタ値が減少している場合、スレーブノードのクロックはマスタノードのクロックに比べて、そのクロック幅は小さくなっている。このとき、Δの符号をマイナスとし、ＴＳずれは−Δとなる。【００９０】
ステップＳ１３において、ＴＳずれΔの符号を決定したフィルタ制御部９１４は、最後にステップＳ１４において、ＴＳずれ量＋Δまたは−Δをパケットフィルタ部９１２に送信する。【００９１】
続いて、パケットフィルタ部９１２について説明する。背景技術の欄において説明したように、図３に示すようなパケットフィルタ部３５０では、０  ≦  Ｄ  ≦  Ｄｔｈ  の条件でパケットのフィルタ処理を実行していた。【００９２】
図３のパケットフィルタ部３５０に対して、本発明のパケットフィルタ部９１２では、フィルタ制御部９１４から受信したＴＳずれΔを用いて、マスタノードから受信したパケットのＴＳに対して補正を行う。補正の方法として、本発明では、遅延量Ｄを補正する方法と、遅延の閾値Ｄｔｈを補正する方法の２つの方法を提案する。本実施の形態においては、遅延量Ｄを補正する方法について述べる。【００９３】
本実施の形態における補正方法は、遅延量Ｄを補正する方法である。この方法のフローチャートを図１８に示す。【００９４】
まず、パケットフィルタ部９１２は、ステップＳ２１において、生成ＴＳ（Ｔｓ）にＴＳずれΔを加えることにより、ＴＳずれを考慮した遅延Ｄを求める。式としては以下の通りである。
Ｄ  ＝  （Ｔｓ  ＋  Δ）  −  Ｔｍ【００９５】
続いて、パケットフィルタ部９１２は、ステップＳ２１で求めた遅延量Ｄが０以上かつ閾値Ｄｔｈ以下であるかどうかを判定する（ステップＳ２２）。【００９６】
ここで、パケットフィルタ部９１２は、遅延量Ｄが０以上かつ閾値以下であれば（ステップＳ２２においてＹｅｓ）、ステップＳ２３に進み、パケットのＴＳを採用するという処理を行う。一方、パケットフィルタ部９１２は、遅延量ＤがステップＳ２２の条件を満たさないのであれば（ステップＳ２２においてＮｏ）、ステップＳ２４に進み、パケットのＴＳを採用しないという処理を行う。【００９７】
図７の例では、図１０のステップＳ１２に従うと、スレーブクロック５０１がマスタクロック４０２に比べてクロック幅が小さく、その分スレーブクロック５０１のＴＳ値は同時刻のマスタクロック４０２のＴＳ値と比べて大きくなっている。したがってΔの符号はマイナスとなる。よってＴＳずれは−Δ（＝−９）となる。そのため、パケット５０６の補正後の遅延Ｄは、ステップＳ２１の式により、
Ｄ  ＝  （６９  −  ９）  −  ５５  ＝  ５となる。そして、ステップＳ２２の条件、０≦Ｄ≦閾値Ｄｔｈ＝８を満たすため、ステップＳ２３に従いパケット５０６のＴＳは採用となる。一般的な方法では、Ｄ＝６９−５５＝１４となり、閾値Ｄｔｈ＝８よりも大きくなるため、ステップＳ２４に従いパケット５０６のＴＳは採用されなかった。これより、本実施の形態における補正により適切にフィルタ処理を行うことができることが分かる。【００９８】
同様に、図８の例では、図１０のステップＳ１２に従うと、スレーブクロック６０１がマスタクロック４０２に比べてクロック幅が大きく、その分スレーブクロック６０１のＴＳ値は同時刻のマスタクロック４０２のＴＳ値と比べて小さくなっている。したがってΔの符号はプラスとなる。よってＴＳずれは＋Δ（＝＋６）となる。そのため、パケット６０６の補正後の遅延量Ｄは、ステップＳ２１の式により、
Ｄ  ＝  （５２  ＋  ６）  −  ５５  ＝  ３となる。そして、ステップＳ２２の条件、０≦Ｄ≦閾値Ｄｔｈ＝８を満たすため、ステップＳ２３に従いパケット６０６のＴＳは採用となる。一般的な方法では、Ｄ＝５２−５５＝−３となり、閾値０よりも小さくなるため、ステップＳ２４に従いパケット６０６のＴＳは採用されなかった。これより、本実施の形態における補正により適切にフィルタ処理を行うことができることが分かる。【００９９】
以上をまとめると、本実施の形態における補正の方法は、遅延量Ｄを補正する方法である。その際のフィルタ条件として、以下の条件を満たす時にパケットのＴＳを採用することとする。０≦（Ｔｓ  ＋  Δ）  −  Ｔｍ  ≦Ｄｔｈ
上記補正方法を実現するためのパケットフィルタ部９１２の構成について説明する。【０１００】
はじめに、比較のために一般的なパケットフィルタ部３５０の構成を図１１に示す。パケットフィルタ部３５０は減算器１１０１と比較器１１００から構成される。減算器１１０１において、カウンタ１４５から入力される生成ＴＳ（Ｔｓ）とマスタノード１００から入力される受信ＴＳ（Ｔｍ）との差分が計算され、比較器１１００に入力される。比較器１１００では、設定インタフェース（以下、「設定ＩＦ」と称呼する。）より設定された閾値Ｄｔｈと差分情報Ｔｓ−Ｔｍとからなる以下のフィルタ条件（１）〜（３）に従い比較計算を行い、パケットのＴＳが該当するフィルタ条件に従い、フィルタ処理を行う。なお、設定ＩＦとは、例えばＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上で、同期精度を計算する間隔や閾値Ｄｔｈといった、スレーブノードの各種設定を行うためのインタフェースのことをいう。
（１）  ０  ≦  Ｔｓ  −  Ｔｍ  ≦  Ｄｔｈ
→パケットのＴＳを採用し、ＰＬＬ１４０に転送する。
（２）  Ｔｓ  −  Ｔｍ  ＜  ０
→パケットのＴＳは採用しない。
（３）
Ｄｔｈ  ＜  Ｔｓ  −  Ｔｍ
→パケットのＴＳは採用しない。【０１０１】
これに対して上記補正方法のパケットフィルタ部９１２の構成を図１２に示す。パケットフィルタ部９１２は減算器１１０１と比較器１１００と加算器１２００とから構成される。パケットフィルタ部３５０との差分は、加算器１２００において、生成ＴＳ（Ｔｓ）に対してフィルタ制御部９１４から受信するＴＳずれΔを加算する点である。この処理により、生成ＴＳの補正が行われている。加算情報（Ｔｓ＋Δ）は減算器１１０１に入力され、加算情報（Ｔｓ＋Δ）とマスタノード１００から入力される受信ＴＳ（Ｔｍ）の差分が計算され、比較器１１００に入力される。比較器１１００では、設定ＩＦより設定された閾値Ｄｔｈと差分情報（Ｔｓ＋Δ）−Ｔｍとからなる以下のフィルタ条件（１）〜（３）に従い比較計算を行い、パケットのＴＳが該当するフィルタ条件に従い、フィルタ処理を行う。
（１）  ０  ≦  （Ｔｓ  ＋  Δ）  −  Ｔｍ≦Ｄｔｈ
→パケットのＴＳを採用、ＰＬＬ１４０に転送する。
（２）
（Ｔｓ  ＋  Δ）  −  Ｔｍ  ＜  ０
→パケットのＴＳは採用しない。
（３）
Ｄｔｈ  ＜  （Ｔｓ  ＋  Δ）  −  Ｔｍ
→パケットのＴＳは採用しない。【０１０２】
最後に、カウンタ値増減情報取得部９１５−２におけるパケットカウンタ９１６のカウンタ値の増減情報取得方法について二つの例を挙げて説明する。なお、上述したように、以下に記載する取得方法は一例であり、カウンタ値の増減情報を取得する方法は、どのような方法でもかまわない。【０１０３】
＜カウンタ値増減情報取得方法：第一の方法＞
最も簡単な方法は、同期精度モニタ部９１５において同期精度情報を取得するタイミングにおけるパケットカウンタ９１６のカウンタ値を取得し、前回取得したカウンタ値と比較する方法である。また、この応用例として、同期精度情報を取得するタイミングのインターバルの間におけるカウンタ値の平均値を計算しておき、前回の平均値と比較するという方法をとっても良い。これらの方法を用いてカウンタ値の増減情報を得ることにより、マスタ側のクロックとスレーブ側のクロックの幅の大小の情報を得ることが可能である。なお、マスタクロックとスレーブクロックのクロック幅の大小関係は、マスタクロックとスレーブクロックのクロックの速度の大小関係と捉えることもできる。その場合は、クロック幅の差はクロックの速度差といえる。【０１０４】
＜カウンタ値増減情報取得方法：第二の方法＞
図９のカウンタ値増減情報取得部９１５−１のカウンタ値増減情報取得の方法として、上記の第一の方法を用いると、パケット１２０がパケットネットワーク１３０を転送される際に付加される遅延の影響により、カウンタ値の増減がクロック幅の差を正確に表さない場合があるという問題が生じる。そのため、遅延の影響を受けにくい方法について、上記の第一の方法の問題点を含めて、以下に説明する。【０１０５】
図１４は、スレーブノードのクロックがマスタノードのクロックに正確に同期しており、かつパケットネットワーク内でパケットに付加される遅延量が常に０である場合における、パケットカウンタ９１６のカウンタ値を表している。横軸方向が経過時間であり、縦軸方向がカウンタ値である。【０１０６】
また、図１５は、スレーブクロックとマスタクロックは正確に同期しているが、パケットネットワーク内でパケットに付加される遅延が存在する場合のカウンタ値を表している。【０１０７】
さらに、図１６、図１７は、スレーブクロックとマスタクロックが同期しておらず、かつ、パケットネットワーク内でパケットに付加される遅延が存在する場合のカウンタ値を表している。なお、図１６では、スレーブクロックとマスタクロックが同期していない例として、スレーブクロックのクロック幅がマスタクロックのクロック幅に比べ小さい場合を示している。また、図１７では、スレーブクロックのクロック幅がマスタクロックのクロック幅に比べ大きい場合を示している。【０１０８】
図１４に示した、スレーブクロックとマスタクロックが正確に同期していて、かつパケットネットワーク内で遅延が付加されないという場合において、カウンタ値の最大値は一定値となっている。【０１０９】
パケットカウンタ９１６にパケットが到着すると、所定の値分カウンタ値が増加する。一方で、カウンタ値は、ＶＣＯ１４４がクロックを出力する速度に従い減算される。この例では、パケットの到着する間隔に応じて、１つのパケット分の所定のカウンタ値が減算されている。図１４の例では、スレーブクロックとマスタクロックが同期しているため、パケット到着間隔の一定間隔でカウンタ値の増加と減少を繰り返し、増加した時のカウンタの最大値及び減少した時のカウンタの最小値は一定となっている。【０１１０】
次に、図１５は、スレーブクロックとマスタクロックが同期していて、パケットネットワーク内で遅延が付加される場合である。遅延が付加されるため、パケットの到着が遅れることにより、遅れた分だけカウンタ値の減算量が増し、カウンタ値の下限値は図１４の例より小さくなっている。そのため、パケット到着時のカウンタ値は図１４の例のように一定ではなく、他よりも小さくなっている箇所がある。しかしながら、遅延のないパケットが到着した時は、本来到達すべき値（カウンタの最大値）までカウンタ値が達している。あるインターバル（例えば１０秒間）において、その間に遅延が付加されないパケットが到着すると考えると、そのインターバルの間、カウンタ値の最大値は一定になる。まとめると、パケットネットワーク内で遅延が付加される場合でも、スレーブクロックとマスタクロックが同期していれば、あるインターバル（例えば、遅延のないパケットが１つは到着すると考えられる長さの時間）でカウンタ値の最大値をモニタすると、その最大値は一定となる。【０１１１】
同期精度情報を取得するインターバルの境目のタイミングにおいて受信したパケットの遅延の大きさによって、その時にカウンタ値は変動する。よって前回同期精度計測を行った時と比較した時のカウンタ値の変動量に関して、マスタクロックとスレーブクロックのクロック幅の差（速度差）に起因する差分よりも遅延量に起因する差分の影響が大きい可能性がある。したがって、マスタクロックとスレーブクロックのクロック幅の差（速度差）がカウンタ値の変動に反映されない可能性がある。【０１１２】
なお、あるインターバルにおけるカウンタ値の平均値を採用し、境目のタイミングの受信パケットのみを用いて求める方法をとることもできる。その方法によれば、遅延量による影響は前述の方法と比較して、軽減できるものの、例えば、あるインターバルにおいて遅延量が大きい傾向にあれば全体的に平均値はより低くなるというように、やはり遅延量の影響が及ぶ可能性がある。【０１１３】
続いて、図１６及び図１７は、スレーブクロックとマスタクロックの同期が取れていないケースである。図１６はスレーブクロックのクロック幅がマスタクロックのクロック幅よりも小さいケースである。図１５の例と同様に、遅延の影響でパケット到着が遅れることにより、パケット到着時にカウンタ値が最大値に達しない箇所がある。しかしながら、遅延がないパケットが到着した時は最大値まで達している。図１５との差分は、インターバル毎のカウンタ最大値が変動している点にある。この例ではスレーブクロックのクロック幅がマスタクロックのクロック幅よりも小さい。これは、スレーブクロックの出力速度がマスタクロックの出力速度よりも遅いということと同義である。したがって、スレーブノード内に存在するパケットカウンタの減算速度が増加速度よりも遅いため、カウンタ値は徐々に増加していく。よって、インターバル毎のカウンタ値の最大値は時間経過に従って増加している。【０１１４】
一方で、図１７では、スレーブクロックのクロック幅がマスタクロックのクロック幅よりも大きい場合を示している。これは、スレーブクロックの速度がマスタクロックの速度よりも速いことと同義である。よって、図１５との差分であるインターバル毎のカウンタ最大値の変動については、パケットカウンタの減算速度が増加速度よりも速いため、カウンタ値は徐々に減っていく。よって、インターバル毎のカウンタ値の最大値は時間経過に従って減少している。【０１１５】
以上の３つのケースより、カウンタ最大値をモニタし、インターバル毎の最大値の変動からスレーブクロックとマスタクロックが同期しているか、していないが分かる。すなわち、カウンタ最大値が一定であれば同期しており、変動していれば同期していないということが分かる。そして、変動している場合、カウンタ最大値が増加していれば、スレーブクロックのクロック幅がマスタクロックに比べ小さく、カウンタ最大値が減少していれば、スレーブクロックのクロック幅がマスタクロックのクロック幅に比べ大きくなっていることがわかる。この方法を用いると、遅延の影響を排除できるため、より正確に速度差の状況を把握することができる。【０１１６】
以上より、第二の方法を用いる場合は、同期精度モニタ部９１５はインターバル毎にパケットカウンタ９１６のカウンタ最大値を計測し、カウンタ最大値の増減情報をフィルタ制御部９１４に通知する。【０１１７】
カウンタ値増減情報取得部において、前述のカウンタ値増減情報取得方法を用いることにより、遅延の影響を排除することができ、マスタクロックとスレーブクロックとの間のＴＳずれをより正確に把握できる。【０１１８】
＜第一の実施の形態の効果＞
以上説明したように、本実施の形態によれば、同期精度モニタ部が取得する同期精度情報ならびにパケットカウンタのカウンタ値の増減情報を利用して、フィルタ制御部がＴＳずれを計算する。パケットフィルタ部はＴＳずれを利用して、遅延量Ｄを補正することにより、スレーブクロックの到着タイミングを同期状態のスレーブクロックの到着タイミングに補正する。この補正したタイミングの下で、スレーブノードが生成ＴＳ、受信ＴＳの処理を行うことにより、スレーブノード側で到着したパケットの遅延量を算出し、設定した閾値に応じて適切にパケットのＴＳの選択的採用を行うことが可能になる。その結果、遅延量の大きいパケットのＴＳを採用せず、遅延量の小さいパケットのＴＳのみをクロック同期回路に取り込むことにより、同期精度を向上できるという効果がある。【０１１９】
また、カウンタ値増減情報取得部において、前述のカウンタ値増減情報取得方法の第二の方法を用いることにより、遅延の影響を排除することができ、より正確にマスタクロックとスレーブクロックとの間のＴＳずれを把握できるという効果がある。【０１２０】
＜第二の実施の形態＞
以下、本発明の第二の実施の形態について説明する。本実施の形態の基本的な構成及び動作は第一の実施の形態とほぼ同様であり、相違点はパケットフィルタ部９１２における遅延量Ｄの補正方法にある。以下、その遅延量Ｄの補正方法について説明する。この補正方法のフローチャートを図１９に示す。【０１２１】
まず、パケットフィルタ部９１２は、ステップＳ３１において、受信ＴＳ（Ｔｍ）からＴＳずれΔを減算した値を、さらに生成ＴＳ（Ｔｓ）から減算することにより、ＴＳずれを考慮した遅延量Ｄを求める。式としては以下の通りである。
Ｄ  ＝  Ｔｓ  −  （Ｔｍ  −  Δ）【０１２２】
続いて、パケットフィルタ部９１２は、ステップＳ３１で求めた遅延量Ｄが０以上かつ閾値Ｄｔｈ以下であるかどうかを判定する（ステップＳ３２）。【０１２３】
ここで、パケットフィルタ部９１２は、遅延量Ｄが０以上かつ閾値以下であれば（ステップＳ３２においてＹｅｓ）、ステップＳ３３に進み、パケットのＴＳを採用するという処理を行う。一方、パケットフィルタ部９１２は、遅延量ＤがステップＳ３２の条件を満たさないのであれば（ステップＳ３２においてＮｏ）、ステップＳ３４に進み、パケットのＴＳを採用しないという処理を行う。【０１２４】
図７の例では、図１０のステップＳ１２に従うと、スレーブクロックのクロック幅がマスタクロックに比べ小さいため、Δの符号はマイナスとなる。よってＴＳずれは、第一の実施の形態と同様に、−Δ（＝−９）となる。そのため、パケット５０６の補正後の遅延量Ｄは、ステップＳ３１の式により、
Ｄ  ＝  ６９  −  （５５  −  （−９））  ＝  ６９  −  ６４  ＝  ５となる。そして、ステップＳ３２の条件、０≦Ｄ≦閾値Ｄｔｈ＝８を満たすため、ステップＳ３３に従いパケット５０６のＴＳは採用となる。一般的な方法では、Ｄ＝６９−５５＝１４となり、閾値Ｄｔｈ＝８よりも大きくなるため、ステップＳ３４に従いパケット５０６のＴＳは採用されなかった。これより、本実施の形態における補正により適切にフィルタ処理を行うことができることが分かる。【０１２５】
同様に、図８の例では、図１０のステップＳ１２に従うと、スレーブクロックのクロック幅がマスタクロックに比べ大きいため、Δの符号はプラスとなる。よってＴＳずれは、第一の実施の形態と同様、＋Δ（＝＋６）となる。そのため、パケット６０６の補正後の遅延量Ｄは、ステップＳ３１の式により、
Ｄ  ＝  ５２  −  （５５  −  ６）  ＝  ５２  −  ４９  ＝  ３
となり、ステップＳ３２の条件、０≦Ｄ≦閾値Ｄｔｈ＝８を満たすため、ステップＳ３３に従いパケット６０６のＴＳは採用となる。一般的な方法では、Ｄ＝５２−５５＝−３となり、閾値０よりも小さくなるため、ステップＳ３４に従いパケット６０６のＴＳは採用されなかった。これより、本実施の形態における補正により適切にフィルタ処理を行うことができることが分かる。【０１２６】
以上をまとめると、本実施の形態においては、第一の実施の形態とは異なる遅延量Ｄを補正する方法を用いる。その際のフィルタ条件として、以下の条件を満たす時にパケットのＴＳを採用することとする。【０１２７】
０  ≦Ｔｓ  −  （Ｔｍ  −  Δ）  ≦Ｄｔｈ
上記の補正方法を実現するためのパケットフィルタ部９１２の構成について図１２を用いて説明する。パケットフィルタ部９１２は減算器１１０１、１１０２と比較器１１００とから構成される。パケットフィルタ部３５０との差分は、減算器１１０１において、フィルタ制御部９１４から受信するＴＳずれΔと受信ＴＳとの差分を計算し、減算器１１０２で、生成ＴＳから得られた差分を減算する点である。この処理により、生成ＴＳの補正が行われている。減算情報（Ｔｍ−Δ）は減算器１１０１に入力され、減算情報（Ｔｍ−Δ）とマスタノード１００から入力される生成ＴＳ（Ｔｓ）の差分が計算され、比較器１１００に入力される。比較器１１００では、設定ＩＦより設定された閾値Ｄｔｈと差分情報Ｔｓ−（Ｔｍ−Δ）とからなる以下のフィルタ条件（１）〜（３）に従い比較計算を行い、パケットのＴＳが該当するフィルタ条件に従い、フィルタ処理を行う。
（１）
０  ≦  Ｔｓ  −  （Ｔｍ  −  Δ）≦Ｄｔｈ
→パケットのＴＳを採用、ＰＬＬ１４０に転送する。
（２）
Ｔｓ  −  （Ｔｍ  −  Δ）  ＜  ０
→パケットのＴＳは採用しない。
（３）
Ｄｔｈ  ＜  Ｔｓ  −  （Ｔｍ  −  Δ）
→パケットのＴＳは採用しない。【０１２８】
＜第二の実施の形態の効果＞
以上説明した本実施の形態によれば、第一の実施の形態と同等の効果が得られる。本実施の形態によれば、同期精度モニタ部が取得する同期精度情報ならびにパケットカウンタのカウンタ値の増減情報を利用して、フィルタ制御部がＴＳずれを計算する。パケットフィルタ部はＴＳずれを利用して、遅延量Ｄを補正することにより、スレーブクロックの到着タイミングを同期状態のスレーブクロックの到着タイミングに補正する。この補正したタイミングの下で、スレーブノードが生成ＴＳ、受信ＴＳの処理を行うことにより、スレーブノード側で到着したパケットの遅延量を算出し、設定した閾値に応じて適切にパケットのＴＳの選択的採用を行うことが可能になる。その結果、遅延量の大きいパケットのＴＳを採用せず、遅延量の小さいパケットのＴＳのみをクロック同期回路に取り込むことにより、同期精度を向上できるという効果がある。【０１２９】
＜第三の実施の形態＞
以下、本発明の第三の実施の形態について説明する。本実施の形態の基本的な構成及び動作は第一の実施の形態及び第二の実施の形態とほぼ同様である。相違点はパケットフィルタ部において遅延量Ｄを補正するのではなく、遅延量の閾値Ｄｔｈを補正するという点にある。【０１３０】
本実施の形態における補正方法は、パケットフィルタ部で閾値Ｄｔｈを補正する方法である。閾値ＤｔｈからＴＳずれΔを差し引くことにより、ＴＳずれを考慮した閾値Ｄｔｈを求めることができる。【０１３１】
図７の例では、図１０のステップＳ１２に従うと、スレーブクロックのクロック幅がマスタクロックに比べ小さいため、Δの符号はマイナスとなる。よってＴＳずれは−Δ（＝−９）となる。そのため、遅延量の閾値Ｄｔｈを補正すると、フィルタ条件は以下のようになる。【０１３２】
０  −  （−Δ）  ≦Ｄ≦Ｄｔｈ  −  （−Δ）  ⇒  ９≦Ｄ≦１７
その結果、９≦Ｄ＝６９−５５＝１４≦１７を満たすため、パケット５０６のＴＳは採用となる。一般的な方法では、Ｄ＝６９−５５＝１４となり、閾値Ｄｔｈ＝８よりも大きくなるため、ＴＳが採用されていなかったことから、本実施の形態における補正により適切にフィルタ処理を行うことができている。【０１３３】
同様に、図８の例では、図１０のステップＳ１２に従うと、スレーブクロックのクロック幅がマスタクロックに比べ大きいため、Δの符号はプラスとなる。よってＴＳずれは＋Δ（＝９）となる。そのため、遅延量の閾値Ｄｔｈを補正すると、フィルタ条件は以下のようになる。【０１３４】
０  −  （＋Δ）≦Ｄ≦Ｄｔｈ  −  （＋Δ）  ⇒  −６  ≦Ｄ≦２
その結果、−６≦Ｄ＝５２−５５＝−３≦２を満たすため、パケット６０６のＴＳは採用となる。一般的な方法では、Ｄ＝５２−５５＝−３となり、閾値０よりも小さくなるため、ＴＳが採用されていなかったことから、本実施の形態における補正により適切にフィルタ処理を行うことができている。【０１３５】
以上をまとめると、本実施の形態では、パケットフィルタ部９１２において遅延量の閾値Ｄｔｈを補正する。その際のフィルタ条件として、以下の条件を満たす時にパケットのＴＳを採用することとする。
−Δ≦Ｔｓ  −  Ｔｍ≦Ｄｔｈ  −Δ【０１３６】
本実施の形態のパケットフィルタ部９１２の構成を図１３に示す。パケットフィルタ部９１２は減算器１１０１と比較器１１００と減算器１３００とから構成される。一般的なパケットフィルタ部３５０との差分は、減算器１３００において、閾値Ｄｔｈに対してフィルタ制御部９１４から受信するＴＳずれΔを減算する点である。この動作により、間接的に生成ＴＳの補正を行っている。【０１３７】
カウンタ１４５から受信した生成ＴＳ（Ｔｓ）とパケット受信部９１１から受信した受信ＴＳ（Ｔｍ）は減算器１１０１に入力され、差分Ｔｓ−Ｔｍが計算され、比較器１１００に入力される。また、設定ＩＦより設定された閾値Ｄｔｈとフィルタ制御部９１４から入力されたＴＳずれΔが減算器１２００に入力され、差分Ｄｔｈ−Δが計算され、比較器１１００に入力される。比較器１１００では、閾値Ｄｔｈに関する差分情報Ｄｔｈ−Δと、ＴＳに関する差分情報Ｔｓ−Ｔｍとからなる以下のフィルタ条件（１）〜（３）に従い比較計算を行い、パケットのＴＳが該当するフィルタ条件に従い、フィルタ処理を行う。
（１）
−Δ≦Ｔｓ  −  Ｔｍ  ≦Ｄｔｈ  −Δ
→パケットのＴＳを採用、ＰＬＬ１４０に転送する。
（２）
Ｔｓ  −  Ｔｍ  ＜  −Δ
→パケットのＴＳは採用しない。
（３）
Ｄｔｈ  −Δ＜  Ｔｓ  −  Ｔｍ
→パケットのＴＳは採用しない。【０１３８】
＜第三の実施の形態の効果＞
以上説明した本実施の形態によれば、第一の実施の形態及び第二の実施の形態と同等の効果が得られる。本実施の形態によれば、同期精度モニタ部が取得する同期精度情報ならびにパケットカウンタのカウンタ値の増減情報を利用して、フィルタ制御部がＴＳずれを計算する。パケットフィルタ部はＴＳずれを利用して、遅延量Ｄを補正することにより、スレーブクロックの到着タイミングを同期状態のスレーブクロックの到着タイミングに補正する。この補正したタイミングの下で、スレーブノードが生成ＴＳ、受信ＴＳの処理を行うことにより、スレーブノード側で到着したパケットの遅延量を算出し、設定した閾値に応じて適切にパケットのＴＳの選択的採用を行うことが可能になる。その結果、遅延量の大きいパケットのＴＳを採用せず、遅延量の小さいパケットのＴＳのみをクロック同期回路に取り込むことにより、同期精度を向上できるという効果がある。【０１３９】
本願は、日本の特願２００８−２９６１９７（２００８年１１月２０日に出願）に基づいたものであり、又、特願２００８−２９６１９７に基づくパリ条約の優先権を主張するものである。特願２００８−２９６１９７の開示内容は、特願２００８−２９６１９７を参照することにより本明細書に援用される。  本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
【図１】
0005440880.tif 000003
【図２】
0005440880.tif 000004
【図３】
0005440880.tif 000005
【図４】
0005440880.tif 000006
【図５】
0005440880.tif 000007
【図６】
0005440880.tif 000008
【図７】
0005440880.tif 000009
【図８】
0005440880.tif 000010
【図９】
0005440880.tif 000011
【図１０】
0005440880.tif 000012
【図１１】
0005440880.tif 000013
【図１２】
0005440880.tif 000014
【図１３】
0005440880.tif 000015
【図１４】
0005440880.tif 000016
【図１５】
0005440880.tif 000017
【図１６】
0005440880.tif 000018
【図１７】
0005440880.tif 000019
【図１８】
0005440880.tif 000020
【図１９】
0005440880.tif 000021