(57)【要約】【課題】本発明は、ネットワークのノード間に時間同期化を実行する方法およびこの方法を実行する機器に関する。【解決手段】本発明に係るネットワークのノード間に時間同期化を実行する方法は、スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する段階と、スレーブノードで測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する段階と、マスターノードにおけるメッセージ送信時刻、スレーブノードにおけるメッセージ受信時刻、および推定値を用いてオフセットを計算する段階とを含む。【選択図】図５
2008178086.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークのノード間に時間同期化を実行する方法において、
スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する段階と、
前記スレーブノードで前記測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する段階と、
前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算する段階と、
を含むことを特徴とする時間同期化方法。
【請求項２】
前記スレーブノードで前記測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する前記段階は、
前記スライディング・ウィンドウの長さに該当する数だけ、最近に計算された前記測定値を維持する段階と、
前記維持された測定値の平均および以前時間単位に計算された第１推定値を用いて、前記実際の伝播時間の第２推定値を前記推定値として計算する段階と、
を含むことを特徴とする請求項１に記載の時間同期化方法。
【請求項３】
前記維持された測定値の平均を計算し、前記平均および以前時間単位に計算された第１推定値を用いて前記実際の伝播時間の第２推定値を計算する前記段階は、下記の＜数式１１＞のように前記第２推定値を計算することを特徴とする請求項２に記載の時間同期化方法。
【数１】
2008178086.tif 000013
ここで、前記ｄｋはｋ−番目の時間単位の前記測定値を、前記Ｄｋはｋ−番目の時間単位の前記推定値を、前記Ｍは前記スライディング・ウィンドウの長さを、前記Ｈ（ｚ）は前記Ｄｋの差分方程式の伝達関数をそれぞれ意味する。
【請求項４】
ネットワークのノード間に時間同期化を実行する方法において、
スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する段階と、
前記スレーブノードで前記測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する段階と、
前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算する段階と、
を含むことを特徴とする時間同期化方法。
【請求項５】
前記スレーブノードで前記測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する前記段階は、
所定の第１数だけ前記測定値を維持する段階と、
所定の第２数だけ以前時間単位に測定された第１推定値を維持する段階と、
前記維持された測定値、前記第１推定値、および前記線形デジタルフィルタを用いて前記実際の伝播時間の推定値である第２推定値を計算する段階と、
を含み、
前記線形デジタルフィルタは、複数のフィルタ係数を前記維持された測定値および前記第１推定値に付与し、その合計を前記第２推定値として計算することを特徴とする請求項４に記載の時間同期化方法。
【請求項６】
前記維持された測定値、前記第１推定値、および前記線形デジタルフィルタを用いて前記実際の伝播時間の推定値である第２推定値を計算する前記段階は、下記の＜数式１２＞のように前記第２推定値を計算することを特徴とする請求項５に記載の時間同期化方法。
【数２】
2008178086.tif 000014
ここで、前記ｄｋはｋ−番目の時間単位の前記測定値を、前記Ｄｋはｋ−番目の時間単位の前記第２推定値を、前記Ｍは前記スライディング・ウィンドウの長さを、前記Ｈ（ｚ）はフィルタ伝達関数を、前記ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は前記複数のフィルタ係数を、前記ｎは前記第１数を、前記ｍは前記第２数をそれぞれ意味する。
【請求項７】
前記ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は、下記の＜数式１３＞を満たすことを特徴とする請求項６に記載の時間同期化方法。
【数３】
2008178086.tif 000015
【請求項８】
スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する前記段階は、
前記スレーブノードで第１メッセージの送信時刻である第１タイムスタンプを前記第１メッセージに記録して前記マスターノードに送信する段階と、
前記マスターノードで前記第１メッセージの受信時刻である第２タイムスタンプを確認する段階と、
前記マスターノードで前記第１タイムスタンプ、前記第２タイムスタンプ、および前記第１メッセージに対応する第２メッセージの送信時刻である第３タイムスタンプを前記第２メッセージに記録して前記スレーブノードに送信する段階と、
前記スレーブノードで前記第２メッセージの受信時刻である第４タイムスタンプを確認し、前記第１タイムスタンプおよび前記第４タイムスタンプを用いて前記伝播時間に対する測定値を計算する段階と、
を含むことを特徴とする請求項１または４に記載の時間同期化方法。
【請求項９】
前記第１タイムスタンプおよび前記第４タイムスタンプを用いて前記伝播時間に対する測定値を計算する前記段階は、下記の＜数式１４＞のように前記測定値を計算することを特徴とする請求項８に記載の時間同期化方法。
【数４】
2008178086.tif 000016
ここで、前記ｄｋは前記測定値を、前記Ｔ１、ｋは前記第１タイムスタンプを、前記Ｔ２、ｋは前記第２タイムスタンプを、前記Ｔ３、ｋは前記第３スタンプを、前記Ｔ４、ｋは前記第４タイムスタンプを、前記ｋは前記第１タイムスタンプないし前記第４タイムスタンプがｋ−番目の時間単位に測定されたことをそれぞれ意味する。
【請求項１０】
前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算する前記段階は、下記の＜数式１５＞のように前記オフセットを計算することを特徴とする請求項１または４に記載の時間同期化方法。
【数５】
2008178086.tif 000017
ここで、前記Ｔ２は前記メッセージ受信時刻を、前記Ｔ１は前記メッセージ送信時刻を、前記Ｄ１は前記推定値をそれぞれ意味する。
【請求項１１】
ネットワークのノード間に時間同期化を実行する方法において、
スレーブノードでタイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する段階と、
前記第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する段階と、
を含むことを特徴とする時間同期化方法。
【請求項１２】
スレーブノードでタイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する前記段階は、
マスターノードでメッセージの送信時刻の第１タイムスタンプを前記メッセージに記録してスレーブノードに送信する段階と、
中継ノードで前記メッセージを受信したリンクの第１伝播時間および前記中継ノードにおける滞留時間が累積した値を前記メッセージに記録する段階と、
前記スレーブノードで前記メッセージの受信時刻である第２タイムスタンプおよび最後の中継ノードの間に存在するリンクの第２伝播時間を確認する段階と、
前記スレーブノードで前記第１タイムスタンプ、前記第２タイムスタンプ、前記累積した値、および前記第２伝播時間を用いて前記第１オフセットを計算する段階と、
を含むことを特徴とする請求項１１に記載の時間同期化方法。
【請求項１３】
前記スレーブノードで前記第１タイムスタンプ、前記第２タイムスタンプ、前記累積した値、および前記第２伝播時間を用いて前記第１オフセットを計算する前記段階は、下記の＜数式１６＞のように前記第１オフセットを計算することを特徴とする請求項１２に記載の時間同期化方法。
【数６】
2008178086.tif 000018
ここで、前記Ｔ２は前記第２タイムスタンプを、前記Ｔ１は前記第１タイムスタンプを、前記Ｒ１は前記累積した値を、前記Ｄ１は前記第２伝播時間をそれぞれ意味する。
【請求項１４】
前記第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する前記段階は、
前記第１オフセットおよび以前時間単位に測定された所定の数のオフセットを用いて、下記の＜数式１７＞のように前記第２オフセットを計算することを特徴とする請求項１１に記載の時間同期化方法。
【数７】
2008178086.tif 000019
ここで、ｕｋは前記第１オフセットを、ｙｋは前記第２オフセットを、ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は前記線形デジタルフィルタのフィルタ係数を、前記Ｈ（ｚ）はフィルタ伝達関数をそれぞれ意味する。
【請求項１５】
請求項１ないし１４のいずれか一項の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
ネットワークのノード間に時間同期化を実行するスレーブノードを構成する機器において、
タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する測定値計算部と、
前記測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する推定値計算部と、
前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算するオフセット計算部と、
を含むことを特徴とする機器。
【請求項１７】
前記推定値計算部は、
前記スライディング・ウィンドウの長さに該当する数だけ、最近に計算された前記測定値を維持する測定値維持部と、
前記維持された測定値の平均および以前時間単位に計算された第１推定値を用いて、前記実際の伝播時間の第２推定値を前記推定値として計算する第２推定値計算部と、
を含むことを特徴とする請求項１６に記載の機器。
【請求項１８】
前記第２推定値計算部は、下記の＜数式１８＞のように前記第２推定値を計算することを特徴とする請求項１７に記載の機器。
【数８】
2008178086.tif 000020
ここで、前記ｄｋはｋ−番目の時間単位の前記測定値を、前記Ｄｋはｋ−番目の時間単位の前記推定値を、前記Ｍは前記スライディング・ウィンドウの長さを、前記Ｈ（ｚ）は前記Ｄｋの差分方程式の伝達関数をそれぞれ意味する。
【請求項１９】
ネットワークのノード間に時間同期化を実行するスレーブノードを構成する機器において、
タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する測定値計算部と、
前記測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する推定値計算部と、
前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算するオフセット計算部と、
を含むことを特徴とする機器。
【請求項２０】
前記推定値計算部は、
所定の第１数だけ前記測定値を維持する測定値維持部と、
所定の第２数だけ前時間単位に測定された第１推定値を維持する第１推定値維持部と、
前記維持された測定値、前記第１推定値、および前記線形デジタルフィルタを用いて、前記実際の伝播時間の推定値である第２推定値を計算する第２推定値計算部
と、
を含み、
前記線形デジタルフィルタは、複数のフィルタ係数を前記維持された測定値および前記第１推定値に付与し、その合計を前記第２推定値として計算することを特徴とする請求項１９に記載の機器。
【請求項２１】
前記第２推定値計算部は、下記の＜数式１９＞のように前記第２推定値を計算することを特徴とする請求項２０に記載の機器。
【数９】
2008178086.tif 000021
ここで、前記ｄｋはｋ−番目の時間単位の前記測定値を、前記Ｄｋはｋ−番目の時間単位の前記第２推定値を、前記Ｍは前記スライディング・ウィンドウの長さを、前記Ｈ（ｚ）はフィルタ伝達関数を、前記ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は前記複数のフィルタ係数を、前記ｎは前記第１数を、前記ｍは前記第２数をそれぞれ意味する。
【請求項２２】
前記ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は、下記の＜数式２０＞を満たすことを特徴とする請求項２１に記載の機器。
【数１０】
2008178086.tif 000022
【請求項２３】
ネットワークのノード間に時間同期化を実行するスレーブノードを構成する機器において、
スレーブノードでタイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する第１オフセット計算部と、
前記第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する第２オフセット計算部と、
を含むことを特徴とする機器。
【請求項２４】
前記第１オフセット計算部は、
マスターノードからのメッセージを受信して前記メッセージの送信時刻である第１タイムスタンプを確認する第１タイムスタンプ確認部と、
第１伝播時間および滞留時間の累積した値を前記メッセージから確認する累積値確認部と、
前記メッセージの受信時刻である第２タイムスタンプを確認する受信時刻確認部と、
最後の中継ノード間に存在するリンクの第２伝播時間を確認する第２伝播時間確認部と、
前記第１タイムスタンプ、前記第２タイムスタンプ、前記累積した値、および前記第２伝播時間を用いて前記第１オフセットを計算する計算部と、
を含み、
前記第１伝播時間は、中継ノードで前記メッセージを受信したリンクの伝播時間であり、
前記滞留時間は、前記中継ノードにおける前記メッセージの滞留時間であることを特徴とする請求項２３に記載の機器。
【請求項２５】
前記第２オフセット計算部は、
前記第１オフセットおよび以前時間単位に測定された所定の数のオフセットを用いて、下記の＜数式２１＞のように前記第２オフセットを計算することを特徴とする請求項２３に記載の機器。
【数１１】
2008178086.tif 000023
ここで、ｕｋは前記第１オフセットを、ｙｋは前記第２オフセットを、ａｉ（１＜ｉ＜ｎ）および前記ｂｊ（０＜ｊ＜ｍ）は前記線形デジタルフィルタのフィルタ係数を、前記Ｈ（ｚ）はフィルタ伝達関数をそれぞれ意味する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークのノード間に時間同期化を実行する方法およびこの方法を実行する機器に関し、より詳細には、タイムスタンプに基づいてネットワークのノード間の時間同期化を実行することによって、ジッター（Ｊｉｔｔｅｒ）、ワンダー（Ｗａｎｄｅｒ）、および時間同期化の性能を向上させる方法および機器に関する。
【背景技術】
【０００２】
現在、ＩＥＥＥ  １５８８プロトコルおよびネットワークタイムプロトコルのように、タイムスタンプを用いてタイミングを伝達するための多数のスキームが存在している。
【０００３】
このようなすべてのスキームにおいて、ネットワークを構成するそれぞれのノードは、前記ノードのうちの１つのノードと同期化を始動する。このとき、１つのノードは、マスターと呼ばれるノード、すなわち、マスターノードに属している。また、このような方法において、タイミングは、グランドマスターと呼ばれる１つのノード、すなわち、グランドマスターノードにおいて追跡が可能（ｔｒａｃｅａｂｌｅ）である。
【０００４】
マスターノードは、マスターノードのマスターノードを除いて、マスターノードに付着したすべてのノードにタイムスタンプを含むメッセージを送信する。このとき、タイムスタンプとは、メッセージが送信される瞬間の時刻を意味するものである。それぞれのスレーブノードは、このようなタイムスタンプを受信し、スレーブノードとマスターノードと間の伝播時間（ｐｒｏｐａｇａｔｉｏｎ  ｔｉｍｅ）をタイムスタンプに加える。すなわち、スレーブノードは、メッセージを受信した時刻において、伝播時間が加えられたタイムスタンプ、すなわち、伝播時間が加えられたマスターノードにおける送信時刻を比較することで、マスターノードとの差であるオフセット（ｏｆｆｓｅｔ）を計算して同期化を実行するようになる。
【０００５】
図１は、従来技術において、ノード間の同期化方法を説明するための一例である。
【０００６】
マスターノード１０１は、スレーブノード１０２にメッセージを送信する。このとき、メッセージを送信する瞬間１０３の時刻であるタイムスタンプＴ１がメッセージに記録される。また、スレーブノードは、メッセージを受信する場合に、メッセージを受信した瞬間１０４の時刻である受信時刻Ｔ２を確認する。もし、スレーブノード１０２がマスターノード１０１からの伝播時間Ｄ１を知っていれば、スレーブノード１０２は、マスターノード１０１との差であるオフセットを「オフセット＝Ｔ２−Ｔ１−Ｄ１」のように計算できるようになり、オフセットを用いてマスターノード１０１との同期化が実行されるようになる。
【０００７】
しかし、上述した過程に基づいてオフセットを計算するためには、マスターノード１０１からの伝播時間Ｄ１をスレーブノード１０２が知る必要がある。すなわち、スレーブノード１０２は、伝播時間Ｄ１を計算しなければならない。
【０００８】
このような伝播時間を計算する方法、およびオフセットを計算するさらに他の方法については、本発明の背景として「発明の構成」において詳しく説明する。
【０００９】
上述および後述するスキームは、スレーブノードで用いられるオフセットをどのように計算するのかについて詳しく明記していない。スレーブノードで直接に調整することは可能であるが、これには過度なジッター、ワンダー、および時間同期化の不正確という結果を発生させるという問題点が生じる。多くの場合、スレーブノードにおいて、オフセットのシーケンスは、ＤＣＯ（Ｄｉｇｉｔａｌ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）を用いてろ過されるようになる。さらに低いジッターおよびワンダーを所望する場合には、アナログＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）を用いてろ過されるようになる。しかし、このようなＤＣＯおよびＰＬＬをスレーブノードで用いるスキームは、さらに高い費用を要求するようになるため、より一層厳格なアプリケーションでのみ用いられるという実情にある。
【００１０】
時間不正確の主原因の１つとしては、タイムスタンプ測定の限定された粒度に起因する。例えば、標準イーサネット（登録商標）のブリッジや端末装置は、２５ＭＨｚ発信器を要求するようになる。このような装置において、タイムスタンプ測定の粒度は４０ナノ秒である。これは、伝播時間測定においては、８０ナノ秒のエラーを発生させる恐れがあることを意味するものである。
【００１１】
このようなエラーは、ピアツーピア（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）・トランスペアレント・クロックを用いるスキームにおいて、伝播時間に累積する。Ｎ−ホップの場合、すなわち、マスターノードとスレーブノードとの間にＮ−１個のピアツーピア・トランスペアレント・クロックが存在する場合に、可能なエラーは８０Ｎナノ秒である。多数のホップの場合に、このようなエラーは急速に増加し、数百ナノ秒または１マイクロ秒を越えるという問題点が生じるようになる。このような場合に、上述したＰＬＬフィルタリングを用いてエラーを減らすこともできるが、これには多くの費用がかかるようになり、さらには、タイミング信号のためのそれぞれの保存場所を必要とするようにもなる。これは、費用がより一層増加してしまうことを意味する。したがって、高費用のＰＬＬフィルタリングを用いなくても、ジッター、ワンダー、および時間同期化の性能を向上させることができる新しい時間同期化方法が切に求められている。
【特許文献１】韓国特許出願公開第２００４−０４３０８７号公報
【特許文献２】韓国特許出願公開第２００５−０２５５８２号公報
【特許文献３】米国特許出願公開第２００４−２０２１１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、上述した従来技術の問題点を解決するために案出されたものであって、ネットワークのノード間に時間同期化を実行する方法およびこの方法を実行する機器に関する新しい技術を提案する。
【００１３】
本発明は、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均およびスライディング・ウィンドウを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることを目的とする。
【００１４】
また、本発明は、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均および一般的な線形デジタルフィルタを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることを他の目的とする。
【００１５】
また、本発明は、単方向で伝播時間を測定するシステムにおいて、所定の時間単位ごとにマスターノードからの第１オフセットを計算し、第１オフセットおよび以前時間単位に計算されたオフセットを入力値とする線形デジタルフィルタを用いて現在時間単位のオフセットである第２オフセットを計算することで、中継装置における滞留時間を考慮するとともに、ジッター、ワンダー、および時間同期化の性能を向上させることをさらに他の目的とする。
【課題を解決するための手段】
【００１６】
前記の目的を達成し、上述した従来技術の問題点を解決するために、本発明の一実施形態に係るネットワークのノード間に時間同期化を実行する方法は、スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する段階と、前記スレーブノードで前記測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する段階と、前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算する段階とを含むことを特徴とする。
【００１７】
本発明の一側によれば、前記スレーブノードで前記測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する前記段階は、前記スライディング・ウィンドウの長さに該当する数だけ、最近に計算された前記測定値を維持する段階と、前記維持された測定値の平均および以前時間単位に計算された第１推定値を用いて前記実際の伝播時間の第２推定値を計算する段階とを含むことを特徴とする。
【００１８】
本発明の他の側面によれば、前記維持された測定値の平均を計算し、前記平均および以前時間単位に計算された第１推定値を用いて前記実際の伝播時間の第２推定値を計算する前記段階は、下記の＜数式１＞のように前記第２推定値を計算することができる。
【００１９】
【数１】
2008178086.tif 000003
【００２０】
ここで、前記ｄｋはｋ−番目の時間単位の前記測定値を、前記Ｄｋはｋ−番目の時間単位の前記推定値を、前記Ｍは前記スライディング・ウィンドウの長さを、前記Ｈ（ｚ）は前記Ｄｋの差分方程式の伝達関数をそれぞれ意味するようになる。
【００２１】
本発明の他の実施形態によれば、ネットワークのノード間に時間同期化を実行する方法は、スレーブノードでタイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する段階と、前記スレーブノードで前記測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する段階と、前記マスターノードにおけるメッセージ送信時刻、前記スレーブノードにおけるメッセージ受信時刻、および前記推定値を用いてオフセットを計算する段階とを含む。このとき、前記スレーブノードで前記測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する前記段階は、所定の第１数だけ前記測定値を維持する段階と、所定の第２数だけ以前時間単位に測定された第１推定値を維持する段階と、前記維持された測定値、前記第１推定値、および前記線形デジタルフィルタを用いて前記実際の伝播時間の推定値である第２推定値を計算する段階とを含むようになり、前記線形デジタルフィルタは、複数のフィルタ係数を前記維持された測定値および前記第１推定値に付与し、その合計を前記第２推定値として計算するようになる。
【００２２】
本発明のさらに他の実施形態によれば、ネットワークのノード間に時間同期化を実行する方法は、スレーブノードでタイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する段階と、前記第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する段階とを含む。
【発明の効果】
【００２３】
本発明によれば、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均およびスライディング・ウィンドウを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【００２４】
また、本発明によれば、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均および一般的な線形デジタルフィルタを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【００２５】
また、本発明によれば、単方向で伝播時間を測定するシステムにおいて、所定の時間単位ごとにマスターノードからの第１オフセットを計算し、前記第１オフセットおよび以前時間単位に計算されたオフセットを入力値とする線形デジタルフィルタを用いて現在時間単位のオフセットである第２オフセットを計算することで、中継装置における滞留時間を考慮するとともに、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、添付の図面を参照して、本発明に係る多様な実施形態について詳しく説明する。
【００２７】
１．背景
図２は、伝播時間を計算する方法の一例である。
【００２８】
２つのノード、すなわち、スレーブノード２０１およびマスターノード２０２にそれぞれ付着したクロックの間の伝播時間は、タイムスタンプを交換するクロックによって測定される。当該クロックのうちの１つであるリクエスタは、リクエスタが第１メッセージを他のクロックに送信するときに、第１メッセージに当該第１メッセージの送信時刻Ｔ１（符号２０３）を記録する。他のクロックであるリスポンダは、第１メッセージの受信時刻Ｔ２（符号２０４）を記録する。
【００２９】
この後、リスポンダから第１メッセージに対応する第２メッセージをリクエスタに送信する。このとき、リクエスタは、第２メッセージに当該第２メッセージの送信時刻Ｔ３（符号２０５）を記録して送信する。最後に、リクエスタは、第２メッセージの受信時刻Ｔ４（符号２０６）を確認する。
【００３０】
リクエスタは、このように確認されたＴ１（符号２０３）ないしＴ４（符号２０６）を用いて、下記の＜数式２＞のように表現される伝播時間を計算することができる。
【００３１】
【数２】
2008178086.tif 000004
【００３２】
ここで、伝播時間を測定した方法は、下記の（１）ないし（４）の条件を満たすものと仮定する。
【００３３】
（１）伝播時間は対称的である。すなわち、両方向すべてにおいて同じである。
（２）伝播時間は安定的である。すなわち、４つのタイムスタンプであるＴ１ないしＴ４を得るための時間比率が一定である。
（３）マスターノードとスレーブノードとの間に周波数の差が小さい。
（４）タイムスタンプの値は正確である。
【００３４】
しかし、（１）および（２）の過程は、リクエスタとリスポンダとの間に可変遅延の原因が存在しないことを意味する。言い換えれば、マスターノードとスレーブノードとの間にネットワークスイッチ、ネットワークブリッジなどの中継装置が存在し得ないことを意味する。このような装置の存在は、ジッター、ワンダー、および時間同期化の不正確を引き起こすようになる。
【００３５】
このようなマスターノードとスレーブノードとの間にネットワークスイッチまたはネットワークブリッジが存在することで、伝播時間の変化および非対称性が発生するようになる。これを処理するための緩和法として、ネットワークスイッチまたはネットワークブリッジのような中継装置でそれぞれのメッセージの受信時刻および送信時刻をメッセージに記録する方法がある。このような方法は、中継装置においてトランスペアレント・クロックと呼ばれるクロックと時間を記録するハードウェアとを含むことが要求される。
【００３６】
トランスペアレント・クロックは、メッセージの受信時刻とメッセージの送信時刻間との差を計算する。ここで、このような差を滞留時間という。滞留時間はメッセージのフィールドに累積し、累積した値は伝播時間の変化した部分を意味する。すなわち、前記値は、スレーブノードから中継装置によって変化した伝播時間の変化量を意味するようになる。
【００３７】
図３は、スレーブノードとマスターノードとの間に中継装置が存在する場合に、伝播時間を測定する方法の一例である。
【００３８】
スレーブノード３０１は、第１メッセージをマスターノード３０２に送信し、マスターノード３０２は、第１メッセージに対応する第２メッセージをスレーブノード３０１に送信することで、上述した図２のようにＴ１ないしＴ４を測定する。このとき、第１メッセージおよび第２メッセージは、中継ノード３０３を経るようになる。中継ノード３０３は、中継ノード３０３が含むトランスペアレント・クロックを用いて中継ノード３０３における滞留時間を測定する。
【００３９】
すなわち、中継ノード３０３は、第１メッセージの受信時刻３０４と送信時刻３０５との差Ｒ１を計算し、第２メッセージの受信時刻３０６と送信時刻３０７との差Ｒ２を計算して、第１メッセージおよび第２メッセージにそれぞれ記録するようになる。これにより、スレーブノード３０１は、中継ノード３０３によって発生する伝播時間の変化量を知ることができるようになる。
【００４０】
このとき、伝播時間は、スレーブノード３０１において下記の＜数式３＞のように計算されるようになる。
【００４１】
【数３】
2008178086.tif 000005
【００４２】
このように、トランスペアレント・クロックを用いた緩和法では、スレーブノードとマスターノードとの間の伝播時間が、ネットワーク再構成後に再び測定されなければならない。これは、上述したようなメカニズムがトランスペアレント・クロックのすべてのペア間に伝播時間の測定を提供するのではなく、それぞれのスレーブノードと当該スレーブノードのマスターノード間でのみ伝播時間の測定が提供されるためである。このようなメカニズムは、ネットワークが再構成される際に、同期化の失敗を引き起こす恐れがある。
【００４３】
さらに他の緩和法として、トランスペアレント・クロック自らがトランスペアレント・クロック間の伝播時間を測定するために、メッセージを交換する方法がある。すなわち、このようなメッセージの交換は、トランスペアレント・クロックと隣り合うすべてのペア間に両方向で成されるようになる。トランスペアレント・クロックは、ピアツーピア・トランスペアレント・クロックと呼ばれる特性を有する。すなわち、マスターノードとスレーブノードがピアツーピア・トランスペアレント・クロック間で連結される際に、マスターノードが送信した時刻が記録されたメッセージをスレーブノードに送信し、それぞれのピアツーピア・トランスペアレント・クロックは、滞留時間をメッセージに累積する。また、ピアツーピア・トランスペアレント・クロック間に測定された伝播時間もメッセージに累積する。すなわち、メッセージが到着したリンクの伝播時間をメッセージに累積するようになる。
【００４４】
このとき、メッセージを受信したスレーブノードは、メッセージに記録されたマスターノードにおける送信時刻、累積した滞留時間、累積した伝播時間、およびメッセージの受信時刻を用いて、マスターノードからのオフセットをすぐに計算するようになる。
【００４５】
図４は、ピアツーピア・トランスペアレント・クロックを用いたオフセット計算方法の一例である。
【００４６】
マスターノード４０１は、スレーブノード４０２にメッセージを送信する。このとき、メッセージは、メッセージの送信時刻Ｔ１（符号４０３）を含む。メッセージが中継ノード４０４を経る際に、中継ノード４０４は、中継ノード４０４における滞留時間４０５とメッセージを受信したリンクの伝播時間４０６とを計算してメッセージに記録し、スレーブノード４０２に送信する。
【００４７】
スレーブノード４０２は、メッセージの受信時刻Ｔ２（符号４０７）および最後の中継ノードとスレーブノード４０２との間のリンクに対する伝播時間Ｄ１（符号４０８）を測定する。スレーブノード４０２は、メッセージの送信時刻Ｔ１（符号４０３）、滞留時間４０５、メッセージを受信したリンクの伝播時間４０６、伝播時間Ｄ１（符号４０８）、およびメッセージの受信時刻Ｔ２（符号（４０７）を用いてマスターノード４０１からのオフセットを計算するようになる。
【００４８】
このとき、スレーブノード４０２は、下記の＜数式４＞のようにマスターノード４０１からのオフセットを計算するようになる。
【００４９】
【数４】
2008178086.tif 000006
【００５０】
ここで、Ｒ１は、滞留時間４０５とメッセージを受信したリンクの伝播時間４０６とが累積した値を意味するものである。
【００５１】
図２および図３を用いて説明した伝播時間測定方法は、マスターノードとスレーブノードとの間にメッセージを交換しながら伝播時間を測定することでオフセットを測定する両方向方法であり、図４を用いて説明したオフセット測定方法は、マスターノードからスレーブノードに一度のメッセージ送信だけでオフセットを計算することができる単方向方法である。
【００５２】
２．本発明に係る時間同期化方法
本発明に係る時間同期化方法は、下記の（１）ないし（３）の場合に用いられるようになる。
【００５３】
（１）それぞれのスレーブノードがマスターノードとの間に存在するトランスペアレント・クロックなくマスターノードとの遅延時間を測定する。
（２）それぞれのスレーブノードがマスターノードとの遅延時間を測定し、このときに、スレーブノードとマスターノードとの間に１つまたはそれ以上のエンドツーエンド（ｅｎｄ−ｔｏ−ｅｎｄ）・トランスペアレント・クロックが存在する。
（３）スレーブノードとマスターノードとの間に１つまたはそれ以上のピアツーピア・トランスペアレント・クロックが存在し、それぞれの伝播時間が隣り合うピアツーピア・トランスペアレント・クロックのペアにおいて個別に測定される。マスターノードと１番目のピアツーピア・トランスペアレント・クロックとの伝播時間およびスレーブノードと最後のピアツーピア・トランスペアレント・クロックとの伝播時間も個別に測定される。
【００５４】
ここで、位相測定粒度が制限されたクロックを用いて安定的な伝播時間を測定するときに、伝播時間の測定値は、２つの値の間で上下する傾向がある。すなわち、測定値は、伝播時間よりも小さいクロック粒度の最大定数倍と伝播時間よりも大きいクリック粒度の最小定数倍との間の値を有する。
【００５５】
このような２つの値の間の伝播時間は、連続的な測定値の平均を用いて実際の伝播時間を測定できるようになる。また、平均を計算するためには、下記の２つの方法が用いられるようになる。
【００５６】
１つ目は、長さＭのスライディング・ウィンドウを用いる方法であり、２つ目は、一般的な線形デジタルフィルタを用いる方法である。
【００５７】
図５は、本発明の第１実施形態において、ネットワークのノード間に時間同期化を実行する方法を示したフローチャートである。
【００５８】
段階Ｓ５１０で、スレーブノードは、タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する。このとき、スレーブノードは、時間単位ごとに計算された測定値を所定の数だけ保存および維持するようになる。現在時間単位で測定値を計算するために、スレーブノードは、段階Ｓ５１０に段階Ｓ５１１ないし段階Ｓ５１４を含んで実行されるようになる。
【００５９】
段階Ｓ５１１で、スレーブノードは、第１メッセージの送信時刻である第１タイムスタンプを第１メッセージに記録してマスターノードに送信する。すなわち、スレーブノードは、伝播時間に対する測定値を計算するために、上述したように４つの時刻を必要とし、このために第１メッセージをマスターノードに送信する。このとき、第１タイムスタンプは、前記した＜数式２＞のＴ１に該当する。
【００６０】
段階Ｓ５１２で、マスターノードは、第１メッセージの受信時刻である第２タイムスタンプを確認する。このとき、第２タイムスタンプは、前記した＜数式２＞のＴ２に該当する。
【００６１】
段階Ｓ５１３で、マスターノードは、第１タイムスタンプ、第２タイムスタンプ、および第１メッセージに対応する第２メッセージの送信時刻である第３タイムスタンプを第２メッセージに記録してスレーブノードに送信する。ここで、第３タイムスタンプは、前記した＜数式２＞のＴ３に該当し、第２メッセージをスレーブノードに送信することで、第１タイムスタンプないし第３タイムスタンプを送信する。
【００６２】
段階Ｓ５１４で、スレーブノードは、第２メッセージの受信時刻である第４タイムスタンプを確認し、第１タイムスタンプおよび第４タイムスタンプを用いて伝播時間に対する測定値を計算する。このとき、第４タイムスタンプは、前記した＜数式２＞のＴ４に該当する。すなわち、スレーブノードは、下記の＜数式５＞のように測定値を計算するようになる。
【００６３】
【数５】
2008178086.tif 000007
【００６４】
ここで、ｄｋは測定値を、Ｔ１，ｋは第１タイムスタンプを、Ｔ２，ｋは第２タイムスタンプを、Ｔ３，ｋは第３スタンプを、Ｔ４，ｋは第４タイムスタンプを、ｋは第１タイムスタンプないし第４タイムスタンプがｋ−番目の時間単位に測定されたことをそれぞれ意味する。
【００６５】
段階Ｓ５２０で、スレーブノードは、測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する。長さＭのスライディング・ウィンドウは、Ｍ個の測定値を保存できるバッファを含むようになる。このとき、スライディング・ウィンドウは、最近の測定値Ｍ個をバッファに維持するようになり、Ｍ個の測定値を用いて実際の伝播時間の推定値が計算されるようになる。このように、スライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する段階Ｓ５２０については、図６を用いてさらに詳しく説明する。
【００６６】
段階Ｓ５３０で、スレーブノードは、マスターノードにおけるメッセージ送信時刻、スレーブノードにおけるメッセージ受信時刻、および推定値を用いてオフセットを計算する。このとき、スレーブノードは、オフセットを計算するために下記の＜数式６＞を用いるようになる。
【００６７】
【数６】
2008178086.tif 000008
オフセット＝Ｔ２−Ｔ１−Ｄ１
【００６８】
ここで、Ｔ２はメッセージ受信時刻を、Ｔ１はメッセージ送信時刻を、Ｄ１は推定値をそれぞれ意味する。
【００６９】
すなわち、スレーブノードにおけるメッセージ受信時刻からマスターノードにおけるメッセージ送信時刻を引けば、メッセージがスレーブノードに到達するまでの時間が残るようになる。ここで、再びスライディング・ウィンドウを用いて計算された伝播時間の測定値を除けば、スレーブノードとマスターノードとの間のタイミング差を知ることができるようになり、これを用いてスレーブノードとマスターノードとの間の時間同期化が実行されるようになる。
【００７０】
図６は、本発明の第１実施形態において、スライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する方法を示したフローチャートである。図６に示されたように、スライディング・ウィンドウを用いて推定値を計算するために、段階Ｓ６０１および段階Ｓ６０２は、図５を用いて説明した段階Ｓ５２０に含まれて実行されるようになる。
【００７１】
段階Ｓ６０１で、スレーブノードは、スライディング・ウィンドウの長さに該当する数だけ、最近に計算された測定値を維持する。上述したように、長さＭのスライディング・ウィンドウは、Ｍ個の測定値を維持できるバッファを含むようになり、バッファを用いてＭ個の測定値を維持するようになる。
【００７２】
段階Ｓ６０２で、スレーブノードは、維持された測定値の平均および以前時間単位に計算された第１推定値を用いて、実際の伝播時間の第２推定値を推定値として計算する。このとき、スレーブノードは、前記した＜数式１＞を用いて第２推定値を計算するようになる。
【００７３】
すなわち、長さＭのスライディング・ウィンドウを用いて連続的な測定値に対する平均を求め、平均と伝播時間との測定値のうちから現在の測定値および最近のＭ−１個の測定値に対する平均を用いて、前記した＜数式１＞のように第２推定値を推定値として計算するようになる。
【００７４】
前記した＜数式１＞を詳察すれば、ｄｋは伝播時間のｋ−番目の測定値、すなわち、時間単位ｋにおける測定値を意味しており、Ｄｋは、実際の伝播時間のｋ−番目の推定値、すなわち、時間単位ｋにおける推定値を意味している。すなわち、ここで、現在時間単位の推定値は第２推定値を意味しており、以前時間単位の推定値は第１推定値を意味している。
【００７５】
また、Ｍは、スライディング・ウィンドウの所定の長さである。
【００７６】
このとき、ｄｋは、制限された位相測定粒度を有するクロックを用いることでエラーが発生するため、ｄｋとｄｋ−Ｍの差を計算して差のＭに対するの比率、すなわち、最近のＭ個の測定値に対する平均および（ｋ−１）−番目の推定値であるＤｋ−１を用いて推定値Ｄｋを計算するようになる。
【００７７】
前記Ｈ（ｚ）は、推定値Ｄｋのための差分方程式に対する伝達関数を示している。
【００７８】
ここで、スライドウィンドウの長さＭは、ｄｋを変化させるサンプルの数に比べて大きい値で選択されなければならない。実際の実験によれば、Ｍが３２または３２よりもさらに大きい数で選択されたときに、優れた結果を有するようになる。
【００７９】
図７は、本発明の第２実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。図７に示されたように、機器７００は、測定値計算部７１０と、推定値計算部７２０と、オフセット計算部７３０とを含む。
【００８０】
測定値計算部７１０は、タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する。現在時間単位の測定値を計算するために、測定値計算部７１０は、第１メッセージの送信時刻である第１タイムスタンプを第１メッセージに記録してマスターノードに送信するようになる。
【００８１】
このとき、マスターノードは、第１タイムスタンプ、第１メッセージの受信時刻である第２タイムスタンプ、および第１メッセージに対応する第２メッセージの送信時刻である第３タイムスタンプを第２メッセージに記録してスレーブノードを構成する機器７００に送信するようになる。また、測定値計算部７１０は、機器７００から受信した第２メッセージの受信時刻である第４タイムスタンプを確認する。
【００８２】
この後、測定値計算部７１０は、第１タイムスタンプおよび第４タイムスタンプを用いて伝播時間に対する測定値を計算するようになる。
【００８３】
推定値計算部７２０は、測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する。このとき、推定値を計算するために、推定値計算部７２０は、測定値維持部７２１および第２推定値計算部７２２を含むようになる。
【００８４】
測定値維持部７２１は、スライディング・ウィンドウの長さに該当する数だけ最近に計算された測定値を維持する。上述したように、長さＭのスライディング・ウィンドウは、Ｍ個の測定値を維持できるバッファを含むようになり、バッファを用いてＭ個の測定値を維持するようになる。
【００８５】
第２推定値計算部７２２は、維持された測定値の平均および以前時間単位に計算された第１推定値を用いて実際の伝播時間の第２推定値を推定値として計算する。すなわち、長さＭのスライディング・ウィンドウを用いて連続的な測定値に対する平均を求め、平均と伝播時間との測定値のうちから現在の測定値および最近のＭ−１個の測定値に対する平均を用いて、前記した＜数式１＞のように第２推定値を推定値として計算するようになる。
【００８６】
前記した＜数式１＞を詳察すれば、ｄｋは伝播時間のｋ−番目の測定値、すなわち、時間単位ｋにおける測定値を意味しており、Ｄｋは実際の伝播時間のｋ−番目の推定値、すなわち、時間単位ｋにおける推定値を意味している。すなわち、ここで、現在時間単位の推定値は第２推定値を意味しており、以前時間単位の推定値は第１推定値を意味している。
【００８７】
また、Ｍは、スライディング・ウィンドウの所定の長さである。
【００８８】
このとき、ｄｋは、制限された位相測定粒度を有するクロックを用いることでエラーが発生するため、ｄｋとｄｋ−Ｍの差を計算し、当該差のＭに対するの比率、すなわち、最近のＭ個の測定値に対する平均および（ｋ−１）−番目の推定値であるＤｋ−１を用いて推定値Ｄｋを計算するようになる。
【００８９】
Ｈ（ｚ）は、推定値Ｄｋのための差分方程式に対する伝達関数を示す。
【００９０】
ここで、スライドウィンドウの長さＭは、ｄｋを変化させるサンプルの数に比べて大きい値で選択されなければならない。実際の実験によれば、Ｍが３２または３２よりもさらに大きい数で選択されたときに、優れた結果を有するようになる。
【００９１】
オフセット計算部７３０は、マスターノードにおけるメッセージ送信時刻、スレーブノードにおけるメッセージ受信時刻、および推定値を用いてオフセットを計算する。
【００９２】
このように、本発明に係る時間同期化方法およびスレーブノードを構成する機器を用いれば、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均およびスライディング・ウィンドウを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【００９３】
図８は、本発明の第３実施形態において、ネットワークのノード間時間同期化を実行する方法を示したフローチャートである。
【００９４】
段階Ｓ８１０で、スレーブノードは、タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する。このとき、現在時間単位で測定値を計算するために、スレーブノードは、段階Ｓ８１０に段階Ｓ８１１ないし段階Ｓ８１４を含んで実行するようになる。
【００９５】
段階Ｓ８１１で、スレーブノードは、第１メッセージの送信時刻である第１タイムスタンプを第１メッセージに記録してマスターノードに送信する。すなわち、スレーブノードは、伝播時間に対する測定値を計算するために、上述したように４つの時刻を必要とし、このために第１メッセージをマスターノードに送信する。このとき、第１タイムスタンプは、前記した＜数式５＞のＴ１、ｋに該当する。
【００９６】
段階Ｓ８１２で、マスターノードは、第１メッセージの受信時刻である第２タイムスタンプを確認する。このとき、第２タイムスタンプは、前記した＜数式５＞のＴ２、ｋに該当する。
【００９７】
段階Ｓ８１３で、マスターノードは、第１タイムスタンプ、第２タイムスタンプ、および第１メッセージに対応する第２メッセージの送信時刻である第３タイムスタンプを第２メッセージに記録してスレーブノードに送信する。このとき、第３タイムスタンプは、前記した＜数式５＞のＴ３、ｋに該当する。
【００９８】
段階Ｓ８１４で、スレーブノードは、第２メッセージの受信時刻である第４タイムスタンプを確認し、第１タイムスタンプおよび第４タイムスタンプを用いて伝播時間に対する測定値を計算する。このとき、第４タイムスタンプは、前記した＜数式５＞のＴ４、ｋに該当する。したがって、スレーブノードは、前記した＜数式５＞のように、時間単位ｋにおける伝播時間に対する測定値を計算できるようになる。
【００９９】
段階Ｓ８２０で、スレーブノードで測定値および線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する。このように、線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する段階Ｓ８２０については、図９を用いてさらに詳しく説明する。
【０１００】
段階Ｓ８３０で、スレーブノードは、マスターノードにおけるメッセージ送信時刻、スレーブノードにおけるメッセージ受信時刻、および推定値を用いてオフセットを計算する。このとき、スレーブノードは、オフセットを計算するために前記した＜数式９＞を用いるようになる。
【０１０１】
すなわち、スレーブノードにおけるメッセージ受信時刻からマスターノードにおけるメッセージ送信時刻を引けば、メッセージがスレーブノードに到達するまでの時間が残るようになる。ここで、再び線形デジタルフィルタを用いて計算された伝播時間の測定値を除けば、スレーブノードとマスターノードとの間のタイミング差を知ることができるようになり、これを用いてスレーブノードとマスターノードとの間の時間同期化が実行されるようになる。
【０１０２】
図９は、本発明の第３実施形態において、線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する方法を示したフローチャートである。図９に示されたように、段階Ｓ９０１ないし段階Ｓ９０３は、図８を用いて説明した段階Ｓ８２０に含まれて実行されるようになる。
【０１０３】
段階Ｓ９０１で、スレーブノードは、所定の第１数だけ測定値を維持する。ここで、第１数は、維持しようとする測定値の数に応じて変化させても良い。
【０１０４】
段階Ｓ９０２で、スレーブノードは、所定の第２数だけ以前時間単位に測定された第１推定値を維持する。ここで、第２数は、維持しようとする第１推定値の数に応じて変化させても良い。
【０１０５】
段階Ｓ９０３で、スレーブノードは、維持された測定値、第１推定値、および線形デジタルフィルタを用いて実際の伝播時間の推定値である第２推定値を計算する。このとき、線形デジタルフィルタは、複数のフィルタ係数を維持された測定値および第１推定値に付与し、その合計を第２推定値として計算するようになる。
【０１０６】
一般的な線形デジタルフィルタを用いて伝播時間の連続的に維持された測定値に対する平均を求めるために、測定値のシーケンスは、下記の＜数式７＞のように表現される一般的な線形デジタルフィルタに入力され、その結果を用いて第２推定値Ｄｋが計算されるようになる。
【０１０７】
【数７】
2008178086.tif 000009
【０１０８】
ここで、ｄｋはｋ−番目の時間単位の測定値を、Ｄｋはｋ−番目の時間単位の第２推定値を、Ｍはスライディング・ウィンドウの長さを、Ｈ（ｚ）はフィルタ伝達関数を、前記ａｉ（１＜ｉ＜ｎ）およびｂｊ（０＜ｊ＜ｍ）は複数のフィルタ係数をそれぞれ意味する。また、ここで、ｎは第１数を、ｍは第２数をそれぞれ意味する。
【０１０９】
これだけでなく、前記した＜数式７＞において、線形デジタルフィルタの出力が実際の伝播時間に収斂するために、フィルタ係数は、下記の＜数式８＞の条件を満たさなければならない。
【０１１０】
【数８】
2008178086.tif 000010
【０１１１】
ここで、線形デジタルフィルタの帯域幅は、ｄｋの変化量の離散周波数に比べて小さくなければならない。
【０１１２】
図１０は本、発明の第４実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。図１０に示されたように、機器１０００は、測定値計算部１０１０と、推定値計算部１０２０と、オフセット計算部１０３０とを含む。
【０１１３】
測定値計算部１０１０は、タイムスタンプを用いてマスターノードまでの伝播時間に対する測定値を所定の時間単位ごとに計算する。現在時間単位の測定値を計算するために、測定値計算部１０１０は、第１メッセージの送信時刻である第１タイムスタンプを第１メッセージに記録してマスターノードに送信するようになる。
【０１１４】
このとき、マスターノードは、第１タイムスタンプ、第１メッセージの受信時刻である第２タイムスタンプ、および第１メッセージに対応する第２メッセージの送信時刻である第３タイムスタンプを第２メッセージに記録し、スレーブノードを構成する機器１０００に送信するようになる。また、測定値計算部１０１０は、機器１０００で受信した第２メッセージの受信時刻である第４タイムスタンプを確認する。
【０１１５】
この後、測定値計算部１０１０は、第１タイムスタンプおよび第４タイムスタンプを用いて、伝播時間に対する測定値を計算するようになる。
【０１１６】
推定値計算部１０２０は、測定値およびスライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する。このとき、推定値を計算するために、推定値計算部１０２０は、測定値維持部１０２１と、第１推定値維持部１０２２と、第２推定値計算部１０２３とを含むようになる。
【０１１７】
測定値維持部１０２１は、所定の第１数だけ測定値を維持する。ここで、第１数は、維持しようとする測定値の数に応じて変化させても良い。
【０１１８】
第１推定値維持部１０２２は、所定の第２数だけ以前時間単位に測定された第１推定値を維持する。ここで、第２数は、維持しようとする第１推定値の数に応じて変化させても良い。
【０１１９】
第２推定値計算部１０２３は、維持された測定値、第１推定値、および線形デジタルフィルタを用いて実際の伝播時間の推定値である第２推定値を計算する。このとき、線形デジタルフィルタは、複数のフィルタ係数を維持された測定値および第１推定値に付与し、その合計を第２推定値として計算するようになる。すなわち、第２推定値計算部１０２３は、前記した＜数式７＞のように第２推定値を計算するようになる。
【０１２０】
オフセット計算部１０３０は、マスターノードにおけるメッセージ送信時刻、スレーブノードにおけるメッセージ受信時刻、および推定値を用いてオフセットを計算する。このとき、オフセット計算部１０３０は、前記した＜数式６＞のように表現されるオフセットを計算するようになる。
【０１２１】
すなわち、メッセージの受信時刻からメッセージの送信時刻を除くことで、メッセージがマスターノードからスレーブノードまで到達するのにかかった時間を計算できるようになり、前記時間から線形デジタルフィルタを用いて計算された伝播時間の推定値を除くことで、マスターノードとスレーブノードとの間のタイミング差を確認できるようになる。これを用いて、マスターノードとスレーブノードとの間の時間同期化が実行されるようになる。
【０１２２】
このように、本発明に係る時間同期化実行方法および機器を用いれば、スレーブノードで所定の時間単位ごとにタイムスタンプに基づいて伝播時間の測定値を計算し、測定値の平均および一般的な線形デジタルフィルタを用いてマスターノードからのオフセットを計算することで、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【０１２３】
図１１は、時間同期化のための両方向方法を説明するための一例である。
【０１２４】
マスターノード１１０１は、時間同期化のために、マスターノード１１０１のマスターノードを除いたすべてのスレーブノードに第１メッセージの送信時刻Ｔ１を含む第１メッセージを送信する。すべてのスレーブノードが第１メッセージを受信すれば、第１メッセージの受信時刻Ｔ２を確認する。このとき、すべてのスレーブノードがマスターノード１１０１との伝播時間を知っていれば、前記した＜数式６＞を用いて説明したように、すべてのスレーブノードとマスターノード１１０１との間のオフセットをそれぞれ計算できるようになり、これを用いて時間同期化が実行されるようになる。
【０１２５】
すべてのスレーブノードのうちの１つのスレーブノード１１０２は、伝播時間を測定するために、時間単位ｋにマスターノード１１０１に２メッセージを送信する。このとき、第２メッセージは、第２メッセージが送信される瞬間のタイムスタンプ、すなわち、送信時刻Ｔ１ｋ（符号１１０３）を含んで送信されるようになる。
【０１２６】
マスターノード１１０１は、第２メッセージを受信する場合に、第２メッセージが受信された瞬間のタイムスタンプ、すなわち、受信時刻Ｔ２ｋ（符号１１０４）を確認して、第２メッセージに対する回答メッセージである第３メッセージをスレーブノード１１０２に送信する。このとき、第３メッセージは、送信時刻Ｔ１ｋ（符号１１０３）、受信時刻Ｔ２ｋ（符号１１０４）、および第３メッセージが送信される瞬間のタイムスタンプ、すなわち、送信時刻Ｔ３ｋ（符号１１０５）を含むようになる。
【０１２７】
第３メッセージを受信したスレーブノード１１０２は、第３メッセージを受信した瞬間のタイムスタンプ、すなわち、受信時刻Ｔ４ｋ（符号１１０６）を確認し、第３メッセージが含む送信時刻Ｔ１ｋ（符号１１０３）、受信時刻Ｔ２ｋ（符号１１０４）、および送信時刻Ｔ３ｋ（符号１１０５）を確認するようになる。
【０１２８】
このように、スレーブノード１１０２は、時間単位ｋの間に送信時刻Ｔ１ｋ（符号１１０３）、受信時刻Ｔ２ｋ（符号１１０４）、送信時刻Ｔ３ｋ（符号１１０５）および、受信時刻Ｔ４ｋ（符号１１０６）を得るようになり、前記した＜数式６＞を用いることで、時間単位ｋにおける電波遅延の測定値ｄｋを計算できるようになる。
【０１２９】
この後、長さＭのスライディング・ウィンドウまたは線形デジタルフィルタを用い、複数の測定値を用いて実際の電波遅延の推定値Ｄｋを得ることができる。すなわち、長さＭのスライディング・ウィンドウを用いる場合に、スレーブノード１１０２は、Ｍ個の測定値の平均と以前時間段階との推定値Ｄｋ−１を用いて、前記した数学１のように推定値Ｄｋを計算するようになる。また、線形デジタルフィルタを用いる場合に、スレーブノード１１０２は、ｍ個の測定値とｎ個の最近の推定値、またはフィルタ係数を用いて推定値Ｄｋを計算するようになる。
【０１３０】
これだけでなく、推定値Ｄｋを用いて時間単位ｋにおけるオフセットを計算できるようになるし、上述したように、マスターノード１１０１とスレーブノード１１０２との間の時間同期化が実行されるようになる。このような過程が時間単位ごとに繰り返されることで、ネットワークに持続的な時間同期化が実行されるようになる。
【０１３１】
これまで、図５ないし図１１を用いて、スライディング・ウィンドウまたは線形デジタルフィルタを用いた両方向時間同期化方法について説明した。以後、図１２ないし図１４では、一度のメッセージ送信でマスターノードとスレーブノードとの間のオフセットを計算することができる単方向の時間同期化方法について説明する。
【０１３２】
図１２は、本発明の第５実施形態において、ネットワークのノード間の時間同期化を実行する方法を示したフローチャートである。
【０１３３】
段階Ｓ１２１０で、スレーブノードは、タイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する。このとき、図１２に示されたように、スレーブノードは、段階Ｓ１２１０に段階Ｓ１２１１ないし段階Ｓ１２１４を含んで実行するようになる。
【０１３４】
段階Ｓ１２１１で、マスターノードは、メッセージの送信時刻である第１タイムスタンプをメッセージに記録してスレーブノードに送信する。
【０１３５】
段階Ｓ１２１２で、中継ノードは、メッセージを受信したリンクの第１伝播時間および中継ノードにおける滞留時間が累積した値をメッセージに記録する。
【０１３６】
段階Ｓ１２１３で、スレーブノードは、メッセージの受信時刻である第２タイムスタンプと最後の中継ノードとの間に存在するリンクの第２伝播時間を確認する。
【０１３７】
段階Ｓ１２１４で、スレーブノードは、第１タイムスタンプ、第２タイムスタンプ、累積した値、および第２伝播時間を用いて第１オフセットを計算する。このとき、スレーブノードは、第１タイムスタンプ、第２タイムスタンプ、累積した値、および第２伝播時間を用いて第１オフセットを計算するために、下記の＜数式９＞が用いられるようになる。
【０１３８】
【数９】
2008178086.tif 000011
【０１３９】
ここで、Ｔ２は第２タイムスタンプを、Ｔ１は第１タイムスタンプを、Ｒ１は累積した値を、Ｄ１は第２伝播時間をそれぞれ意味するようになる。
【０１４０】
段階Ｓ１２２０で、スレーブノードは、第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する。このとき、スレーブノードは、第２オフセットを計算するために、第１オフセットおよび以前時間単位に測定された所定の数のオフセットを用いて、下記の＜数式１０＞のように第２オフセットを計算するようになる。
【０１４１】
【数１０】
2008178086.tif 000012
【０１４２】
ここで、ｕｋは第１オフセットを、ｙｋは第２オフセットを、ａｉ（１＜ｉ＜ｎ）およびｂｊ（０＜ｊ＜ｍ）は線形デジタルフィルタのフィルタ係数を、Ｈ（ｚ）はフィルタ伝達関数をそれぞれ意味するようになる。
【０１４３】
図１３は、本発明の第６実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。図１３に示されたように、機器１３００は、第１オフセット計算部１３１０と、第２オフセット計算部１３２０とを含む。
【０１４４】
第１オフセット計算部１３１０は、スレーブノードでタイムスタンプを用いてマスターノードからの第１オフセットを所定の時間単位ごとに計算する。第１オフセットを計算するために、第１オフセット計算部１３１０は、図１３に示されたように、マスターノードからのメッセージを受信してメッセージの送信時刻の第１タイムスタンプを確認する第１タイムスタンプ確認部１３１１と、第１伝播時間および滞留時間の累積した値をメッセージから確認する累積値確認部１３１２と、メッセージの受信時刻である第２タイムスタンプを確認する受信時刻確認部１３１３と、最後の中継ノード間に存在するリンクの第２伝播時間を確認する第２伝播時間確認部１３１４と、第１タイムスタンプ、第２タイムスタンプ、累積した値、および第２伝播時間を用いて第１オフセットを計算する計算部１３１５とを含むようになる。
【０１４５】
このとき、第１伝播時間は、中継ノードでメッセージを受信したリンクの伝播時間であり得るし、滞留時間は、中継ノードにおけるメッセージの滞留時間であり得る。また、計算部１３１５は、前記した＜数式９＞のように第１オフセットを計算するようになる。
【０１４６】
第２オフセット計算部１３２０は、第１オフセットおよび線形デジタルフィルタを用いて第２オフセットを計算する。このとき、第２オフセット計算部１３２０は、第１オフセットおよび以前時間単位に測定された所定の数のオフセットを用いて、前記した＜数式１０＞のように第２オフセットを計算するようになる。
【０１４７】
このように、本発明に係る時間同期化方法および機器を用いれば、単方向で伝播時間を測定するシステムにおいて、所定の時間単位ごとにマスターノードからの第１オフセットを計算し、第１オフセットおよび以前時間単位に計算されたオフセットを入力値とする線形デジタルフィルタを用いて現在時間単位のオフセットである第２オフセットを計算することで、中継装置における滞留時間を考慮するとともに、ジッター、ワンダー、および時間同期化の性能を向上させることができる。
【０１４８】
図１４は、時間同期化のための単方向方法を説明するための一例である。
【０１４９】
マスターノード１４０１は、時間単位ｋに時間同期化を実行するために、第１スレーブノード１４０２および第２スレーブノード１４０３を用いて第３スレーブノード１４０４にメッセージの送信時刻Ｔ１ｋ（符号１４０５）を含むメッセージを送信する。このとき、第１スレーブノード１４０２は、メッセージを受信したリンクの伝播時間１４０６および第１スレーブノード１４０２における滞留時間１４０７を確認してメッセージに累積させ、メッセージを次のノードに送信する。次のノードである第２スレーブノード１４０３も、第２スレーブノード１４０３における滞留時間１４０８およびメッセージを受信したリンクの伝播時間１４０９を確認してメッセージに累積させて次のノードに送信する。このとき、メッセージは、伝播時間１４０６、滞留時間１４０７、滞留時間１４０８、および伝播時間１４０９が累積した累積値Ｒ１ｋを含んでいる。
【０１５０】
次のノードでもあり目的地でもある第３スレーブノード１４０４は、最後の中継ノードである第２スレーブノード１４０３とのリンクに対する伝播時間Ｄ１ｋ（符号１４１０）を確認して、メッセージを受信した受信時刻Ｔ２ｋ（符号１４１１）を確認する。
【０１５１】
このとき、第３スレーブノード１４０４は、第１オフセットｕｋを計算するための前記した＜数式９＞のパラメータをすべて満たすようになる。すなわち、第３スレーブノード１４０４は、第１オフセットｕｋを計算するようになる。このように、第３スレーブノード１４０４には、時間単位ｋの間、計算された第１オフセットｕｋを最近に計算された順に従ってｍ個が維持されるようになり、以前時間単位に計算された第２オフセットもｎ個を維持する。
【０１５２】
すなわち、第３スレーブノード１４０４は、前記した＜数式１０＞を用いて、時間単位ｋにおけるオフセットである第２オフセットを計算するようになり、第２オフセットを用いて、マスターノード１４０１と第３スレーブノード１４０４との間の時間同期化が実行されるようになる。他のすべてのスレーブノードとも、同じような過程を介して時間同期化を実行できるようになるし、これを用いてネットワークの時間同期化が実行されるようになる。
【０１５３】
本発明に係る実施形態は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。前記媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。前記媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク（登録商標）および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。前記媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。前記したハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【０１５４】
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【０１５５】
【図１】従来技術において、ノード間の同期化方法を説明するための一例である。
【図２】伝播時間を計算する方法の一例である。
【図３】スレーブノードとマスターノードとの間に中継装置が存在する場合に、伝播時間を測定する方法の一例である。
【図４】ピアツーピア・トランスペアレント・クロックを用いたオフセット計算方法の一例である。
【図５】本発明の第１実施形態において、ネットワークのノード間の時間同期化を実行する方法を示したフローチャートである。
【図６】本発明の第１実施形態において、スライディング・ウィンドウを用いて実際の伝播時間の推定値を計算する方法を示したフローチャートである。
【図７】本発明の第２実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。
【図８】本発明の第３実施形態において、ネットワークのノード間の時間同期化を実行する方法を示したフローチャートである。
【図９】本発明の第３実施形態において、線形デジタルフィルタを用いて実際の伝播時間の推定値を計算する方法を示したフローチャートである。
【図１０】本発明の第４実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。
【図１１】時間同期化のための両方向方法を説明するための一例である。
【図１２】本発明の第５実施形態において、ネットワークのノード間の時間同期化を実行する方法を示したフローチャートである。
【図１３】本発明の第６実施形態において、スレーブノードを構成する機器の内部構成を説明するためのブロック図である。
【図１４】時間同期化のための単方向方法を説明するための一例である。
【符号の説明】
【０１５６】
１０１、２０２、３０２、４０１、１１０１、１４０１  マスターノード
１０２、２０１、３０１、４０２、１１０２  スレーブノード
３０３、４０４  中継ノード
７１０、１０１０  測定値計算部
７２０、１０２０  推定値計算部
７２１、１０２１  測定値維持部
７２２、１０２３  第２推定値計算部
７３０、１０３０  オフセット計算部
１０２２  第１推定維持部
１３１０  第１オフセット計算部
１３１１  第１タイムスタンプ確認部
１３１２  累積値確認部
１３１３  受信時刻確認部
１３１４  第２伝播時間確認部
１３１５  計算部
１３２０  第２オフセット計算部
１４０２  第１スレーブノード
１４０３  第２スレーブノード
１４０４  第３スレーブノード
【図１】
2008178086.tif 000024
【図２】
2008178086.tif 000025
【図３】
2008178086.tif 000026
【図４】
2008178086.tif 000027
【図５】
2008178086.tif 000028
【図６】
2008178086.tif 000029
【図７】
2008178086.tif 000030
【図８】
2008178086.tif 000031
【図９】
2008178086.tif 000032
【図１０】
2008178086.tif 000033
【図１１】
2008178086.tif 000034
【図１２】
2008178086.tif 000035
【図１３】
2008178086.tif 000036
【図１４】
2008178086.tif 000037