(57)【要約】【課題】ＩＰネットワークを通じた同期メッセージ交換において高精度の時刻同期を行う。【解決手段】スレーブ装置は、グランドマスター装置との同期メッセージの交換を通じて、第１の時点において第１の時間差を取得し、第１の時間差と基準値とを結ぶ第１の直線を判定し、同期メッセージの交換を通じて、第２の時点において第２の時間差を取得し、第２の時間差と基準値とを結ぶ第２の直線を判定し、第１の直線の傾きが第２の直線の傾きよりも小さい場合、第１の直線上の第２の時点に対応する値に基づいて、グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとの間のオフセットを算出する。【選択図】図３
2020072474.tif 000002
【特許請求の範囲】
【請求項１】
ＰＴＰに従って動作するスレーブ装置であって、
グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の時間差を取得し、
前記時間差と基準値とを結ぶ直線を判定し、
前記直線上の値に基づいて、グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとの間のオフセットを算出する、
ように構成された制御装置を備えたことを特徴とするスレーブ装置。
【請求項２】
前記時間差は、第１の時点において取得された第１の時間差であり、前記直線は、第１の直線であり、
前記制御装置は、
前記同期メッセージの交換を通じて、第２の時点において、前記同期メッセージの送信時刻と受信時刻との間の第２の時間差を取得し、
前記第２の時間差と前記基準値とを結ぶ第２の直線を判定し、
前記第１の直線の傾きと前記第２の直線の傾きとを比較し、
前記比較に基づいて、前記第１の直線上の前記第２の時点に対応する値または前記第２の直線上の前記第２の時点に対応する値に基づいて、前記オフセットを算出する、
ように構成さらにされたことを特徴とする請求項１に記載のスレーブ装置。
【請求項３】
前記制御装置は、前記第１の直線の傾きが前記第２の直線の傾きよりも小さいと判定した場合、前記第１の直線上の前記第２の時点に対応する値に基づいて、前記オフセットを算出するように構成さらにされたことを特徴とする請求項２に記載のスレーブ装置。
【請求項４】
前記スレーブ装置は、第１のローカルタイムおよび第２のローカルタイムを含み、
前記制御装置は、
前記第１のローカルタイムに基づいて、前記第１の時間差および前記第２の時間差を取得し、
前記算出したオフセットに基づいて、前記第２のローカルタイムを補正する、
ようにさらに構成されたことを特徴とする請求項２または３に記載のスレーブ装置。
【請求項５】
前記制御装置は、前記第１の直線の傾きが前記第２の直線の傾きよりも大きい場合、前記第２の時間差に基づいて、前記グランドマスター装置の前記ローカルタイムと前記スレーブ装置の前記ローカルタイムとの間のオフセットを算出する、
ようにさらに構成されたことを特徴とする請求項２乃至４のいずれか一項に記載のスレーブ装置。
【請求項６】
前記基準値は、ゼロに設定される、ことを特徴とする請求項１乃至５のいずれか一項に記載のスレーブ装置。
【請求項７】
前記制御装置は、前記同期メッセージの交換を通じて、伝送遅延時間を算出するように構成され、
前記基準値は、前記算出された伝送遅延時間の最短値に所定の値を減算した値が設定される、ことを特徴とする請求項１乃至６のいずれか一項に記載のスレーブ装置。
【請求項８】
ＰＴＰに従って動作するスレーブ装置によって実行される方法であって、
グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の時間差を取得するステップと、
前記時間差と基準値とを結ぶ直線を判定するステップと、
前記直線上の値に基づいて、グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとの間のオフセットを算出するステップと、
を備えたことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、時刻同期システムに関する。
【背景技術】
【０００２】
近年、多くの分野でネットワーク経由の時刻同期をＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を用いて行う事が増えてきている。一例としては、携帯電話のネットワークとか放送用のＩＰネットワークが上げられる。一方、ネットワークについては従来のＳＤＨ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｉｇｉｔａｌ  Ｈｉｅｒａｒｃｈｙ）網からイーサネット（登録商標）をベースとしたＩＰネットワークに急速に切り替わりつつある。これにより、ＩＰネットワークを通してのＰＴＰによる時刻同期を行う事が求められてきている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ、ＩＥＥＥ  Ｓｔｄ  １５８８−２００８、ＩＥＥＥ、２００８年７月２４日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
網全体としてクロックが同期していており、ネットワーク内の遅延時間もスタッフィングによる変動範囲に収まるＳＤＨ網とは異なり、ＩＰネットワークではネットワーク内のスイッチおよびルータ内のパケットのバッファリングによる遅延時間の変動が大きく、ＰＴＰのバウンダリ  クロック（Ｂｏｕｎｄａｒｙ  ｃｌｏｃｋ）あるいはピア・ツー・ピア  トランスペアレントクロック（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  ｔｒａｎｓｐａｒｅｎｔ  ｃｌｏｃｋ）、あるいはエンド・ツー・エンド  トランスペアレントクロック（Ｅｎｄ−ｔｏ−ｅｎｄ  ｔｒａｎｓｐａｒｅｎｔ  ｃｌｏｃｋ）で動作するスイッチおよびルータから成るネットワーク上でなければ、ディレイリクエスト・レスポンスメカニズム（Ｄｅｌａｙ  ｒｅｑｕｅｓｔ−ｒｅｓｐｏｎｓｅ  ｍｅｃｈａｎｉｓｍ）と単純なオフセット計算を用いて高い精度の同期を取ることは難しい。
【０００５】
一方、通常ワイドエリアのＩＰネットワーク内には様々なベンダー、様々な世代の機器があり、時刻同期が必要なネットワーク内の全ての機器がＰＴＰのこれらの動作のいずれかをサポートしているようにネットワークを構築するのは現実的ではない。
【０００６】
本実施形態は、ネットワーク内のスイッチおよびルータがＰＴＰ未サポートのネットワークにおいて、同期メッセージ交換（Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｍｅｓｓａｇｅ  ｅｘｃｈａｎｇｅ）によって獲得したタイムスタンプを基に、より高精度の時刻同期を行う。
【課題を解決するための手段】
【０００７】
一実施形態にかかるスレーブ装置は、オーディナリークロックのＰＴＰスレーブにおいてフリーランニングが可能なローカルタイムを備え、当該ローカルタイムを基に同期メッセージ交換（Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｍｅｓｓａｇｅ  ｅｘｃｈａｎｇｅ）のタイムスタンプを作成する手段、およびに同期メッセージ交換によって獲得したタイムスタンプの差分を基に以後のタイムスタンプの差分の予測値を計算し、その予測値を用いてローカルタイムの補正を行う手段、およびタイムスタンプの実測値を基に予測値を修正する手段を備える。具体的には、スレーブ装置は、ＰＴＰに従って動作するスレーブ装置であって、グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の時間差を取得し、前記時間差と基準値とを結ぶ直線を判定し、前記直線上の値に基づいて、グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとの間のオフセットを算出する、ように構成された制御装置を備える。
【発明の効果】
【０００８】
本実施形態によれば、放送のＳＦＮ（Ｓｉｎｇｌｅ  Ｆｒｅｑｕｅｎｓｙ  Ｎｅｔｗｏｒｋ）等で必要なマイクロ秒レベルでの高精度な時刻同期を、ＰＴＰをサポートしていないＩＰネットワーク上で実現する事ができる。
【０００９】
これにより、時刻同期に高価なＧＰＳあるいはＰＴＰをサポートした専用ネットワークを用いる必要がなくなり、時刻同期に必要な機器あるいは回線に要するコストの削減に寄与し、維持メンテナンスの費用が低減される。
【図面の簡単な説明】
【００１０】
【図１】一実施形態にかかるシステム構成の概要を例示する図である。
【図２】ＰＴＰの基本的な同期メッセージ交換を示す図である。
【図３】一実施形態にかかる、同期メッセージ交換における時間差の遷移を示す図である。
【図４】一実施形態にかかる、同期メッセージ交換における時間差の遷移を示す図である。
【図５】一実施形態にかかる、同期メッセージ交換における時間差の遷移を示す図である。
【図６】一実施形態にかかるＰＴＰスレーブ装置の構成を示す図である。
【図７】一実施形態にかかるＰＴＰスレーブ装置の論理モジュールを示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態について詳細に説明する。実施形態の説明の全体を通して、同じ要素には同じ番号を付している。
【００１２】
図１は、一実施形態にかかる時刻同期システムの構成の概要を例示する図である。ＩＥＥＥ  １５８８  ＰＴＰ（以下、「ＰＴＰ」）では、クロック分配のために階層型マスタ−スレーブ構造が採用されている。階層型マスタ−スレーブ構造は、グランドマスター装置およびスレーブ装置を含む。グランドマスター装置（自身のクロックを外部に発信する基点となるノード）は、グランドマスタークロック（ＧＭＣ：Ｇｒａｎｄ  Ｍａｓｔｅｒ  Ｃｌｏｃｋ）とも称され、スレーブ装置に時刻情報を配信する。グランドマスター装置自身は、グローバルなソースクロック（ＧＰＳや原子時計など）から生成される外部同期信号を使用して、自身のマスタータイムを補正する。
【００１３】
本実施形態にかかるメッセージ交換システムは、上述したＰＴＰに従って階層型マスタ−スレーブ構造を採用する。図１に示される時刻同期システムは、概略的に、ＰＴＰグランドマスター装置１０１、ならびにＰＴＰスレーブ装置１０２、１０３、および１０４を含む。グランドマスター装置１０１と、スレーブ装置１０２、１０３、および１０４とは、イーサネット１１０１、１１０２、１１０３、および１１０４を通じてＩＰネットワーク１１０にそれぞれ接続される。ＩＰネットワーク１１０は、グランドマスター装置１０１とスレーブ装置１０２、１０３、および１０４との間で交換されるＰＴＰメッセージ（同期メッセージ）を中継する中間ノード（スイッチおよびルータなど、図示せず）を含む。スレーブ装置１０２、１０３、および１０４は各々、ＩＰネットワーク１１０を経由してグランドマスター装置１０１との間で同期メッセージ交換（Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｍｅｓｓａｇｅ  ｅｘｃｈａｎｇｅ）を行い、グランドマスター装置１０１のマスタータイムとのオフセットに基づいて自身のローカルタイムを補正する。
【００１４】
図２は、ＰＴＰの基本的な同期メッセージ交換を示す。ＰＴＰでは、以下のようにグランドマスター装置１０１とスレーブ装置１０２、１０３、および１０４との間で、スレーブ装置のローカルタイムを補正するための同期メッセージが交換される。以下の説明では、スレーブ装置１０２のみを例とする。
【００１５】
まず、グランドマスター装置１０１がスレーブ装置１０２にＳｙｎｃメッセージを送信する。Ｓｙｎｃメッセージには、Ｓｙｎｃメッセージの送信時刻（タイムスタンプ）（ｔ１）が含まれる。スレーブ装置１０２がＳｙｎｃメッセージを受信すると、Ｓｙｎｃメッセージの送信時刻（ｔ１）および到着時刻（ｔ２）（タイムスタンプ）がスレーブ装置１０２によって測定される。
【００１６】
次に、スレーブ装置１０２がグランドマスター装置１０１にＤｅｌａｙ＿Ｒｅｑメッセージを送信する。スレーブ装置１０２がＤｅｌａｙ＿Ｒｅｑメッセージを送信すると、Ｄｅｌａｙ＿Ｒｅｑメッセージの送信時刻（ｔ３）（タイムスタンプ）がスレーブ装置１０２によって測定される。
【００１７】
次に、グランドマスター装置１０１がスレーブ装置１０２にＤｅｌａｙ＿Ｒｅｓｐメッセージを送信する。Ｄｅｌａｙ＿Ｒｅｓｐメッセージには、Ｄｅｌａｙ＿Ｒｅｑメッセージの実際の到着時刻（ｔ４）（タイムスタンプ）が含まれる。スレーブ装置１０２がＤｅｌａｙ＿Ｒｅｓｐメッセージを受信すると、Ｄｅｌａｙ＿Ｒｅｑメッセージの実際の到着時刻（ｔ４）がスレーブ装置１０２によって測定される。
【００１８】
図２では、１ステップモードで行われる同期メッセージ交換を示したが、本実施形態は、２ステップモードで行われる同期メッセージ交換にも当然に適用される。２ステップモードで行われる同期メッセージ交換では、グランドマスター装置１０１がスレーブ装置１０２にＦｏｌｌｏｗ＿Ｕｐメッセージを送信する。ここで、Ｓｙｎｃメッセージの送信において、メッセージの送信時刻を事前に把握するのは困難であるので、Ｓｙｎｃメッセージではｔ１の予測値が測定され、Ｆｏｌｌｏｗ＿Ｕｐメッセージでｔ１の実際の値が測定される。これによって誤差が補償される。以下では、上述したＳｙｎｃメッセージ、Ｆｏｌｌｏｗ＿Ｕｐメッセージ、Ｄｅｌａｙ＿Ｒｅｑメッセージ、およびＤｅｌａｙ＿Ｒｅｓｐメッセージを、同期メッセージと称する。
【００１９】
ＰＴＰでは、グランドマスター装置１０１とスレーブ装置１０２との間の伝送遅延時間ｄが同期メッセージ交換の往路および復路で同じであることと仮定としている。よって、スレーブ装置１０２が測定した４つのタイムスタンプｔ１、ｔ２、ｔ３、およびｔ４に基づいて、グランドマスター装置１０１のマスタータイムとスレーブ装置１０２のローカルタイムとの間のオフセットΔｔを計算することができる。同期メッセージ交換の往復経路の遅延時間が同じと仮定しているので、式（１）乃至（４）が成立する。
【００２０】
ｔ２−ｔ１＝Δｔ＋ｄ                                                  式（１）
ｔ４−ｔ３＝Δｔ＋ｄ                                                  式（２）
｛（ｔ２−ｔ１）＋（ｔ４−ｔ３）｝／２＝ｄ                            式（３）
Δｔ＝（ｔ２−ｔ１）−ｄ                                              式（４）
【００２１】
スレーブ装置１０２は、式（１）乃至（４）に従ってオフセットΔｔを計算し、オフセットΔｔに基づいて、自身のローカルタイムを補正することができる。
【００２２】
しかし、現実的にはＩＰネットワークの伝送遅延時間はトラフィック量、あるいはトラフィックの特性により常に変化してばらついており、伝送遅延時間は往路と復路では異なる。
【００２３】
ＩＰネットワーク内の中間ノードがＰＴＰに従ってバウンダリ  クロック、ピア・ツー・ピア  トランスペアレントクロック、またはエンド・ツー・エンド  トランスペアレントクロックとして動作する場合、変動する伝送遅延時間を計測し、スレーブ装置に伝送遅延時間を通知する。中間ノードが上述した機能を実装することによって、スレーブ装置は伝送遅延時間を把握することができる。よって、オフセットΔｔの計算値が伝送遅延時間のばらつきの影響を受けない。
【００２４】
ＰＴＰ未サポートの中間ノードは、上述した伝送遅延時間をスレーブ装置に通知することができない。よって、ＰＴＰ未サポートのネットワーク上では、この伝送遅延時間のばらつきを定量化する手段がない。このため、オフセットの計算値が伝送遅延時間のばらつきの影響を受けることになり、結果として同期精度が悪化する事となる。
【００２５】
また、ＩＥＥＥ  Ｓｔｄ  １５８８−２００８に示されているＰＴＰの標準的なスレーブ装置のローカルクロックでは、補正済みローカルタイムを次の同期メッセージ交換に用いている。つまり、スレーブ装置は、ばらつきのある伝送遅延時間に基づいて、ｔ１〜ｔ４を測定し、測定したｔ１〜ｔ４に基づいて自身のローカルタイムを補正し、補正後のローカルタイムで再度、ｔ１〜ｔ４を測定することになる。従って、同期メッセージ交換に用いているローカルタイムそのものが安定せずにジッタまたはワンダーが現れる事となる。ＰＴＰ未サポートのネットワーク上においては前述した伝送遅延時間のばらつきに加え、ローカルタイムの不安定さにより同期精度がさらに悪化する事になる。
【００２６】
本実施形態では、伝送遅延時間のばらつきとローカルタイムの不安定さがオフセットΔｔの計算に与える影響を最小にし、高精度のオフセット値を得ることができる。
【００２７】
本実施形態では、スレーブ装置１０２、１０３、および１０４の各々は、２つのローカルタイムＬＴ１およびＬＴ２を有する。ローカルタイムＬＴ１は、上述したＰＴＰに従って時刻が補正されず、同期メッセージ交換（つまり、４つのタイムスタンプｔ１、ｔ２、ｔ３、およびｔ４を計算するために）にのみ用いられる（フリーランニング）。ローカルタイムＬＴ２は、上述したＰＴＰに従って、グランドマスター装置１０１のマスタータイムとのオフセットに基づいて補正される。
【００２８】
フリーランニングのローカルタイムＬＴ１を用いて同期メッセージ交換を行うことにより、上述したローカルタイムの不安定さにより同期の精度がさらに悪化する事を防止することができる。グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとのオフセットΔｔは、両方のクロックの定常的な周波数の差によるものとなる。従って、グランドマスター装置のマスタータイムとスレーブ装置のローカルタイムとのオフセットと伝送遅延時間から成る（ｔ２−ｔ１）と（ｔ４−ｔ３）は、機器の周辺温度等の影響を最低限とした一定の条件の下では、経由した時間に比例して直線的に変化する。
【００２９】
図３のグラフは、スレーブ装置のローカルクロックの周波数がグランドマスター装置のクロックの周波数よりも高いケースを例に、フリーランニングのローカルタイムＬＴ１を用いた同期メッセージ交換における時間差（ｔ２−ｔ１）と時間差（ｔ４−ｔ３）の遷移を示している。図３の上のグラフ（以下、「（ｔ２−ｔ１）グラフ」）では、縦軸は、スレーブ装置が同期メッセージを交換するときに計算する（ｔ２−ｔ１）を表す。横軸は、ｔ２を基準とした、スレーブ装置のローカルタイムＬＴ１の時間軸を表す。同様に、図３の下のグラフ（以下、「（ｔ４−ｔ２）グラフ」）では、縦軸は、スレーブ装置が同期メッセージを交換するときに計算する（ｔ４−ｔ３）を表す。横軸は、ｔ３を基準とした、スレーブ装置のローカルタイムＬＴ１の時間軸を表す。
【００３０】
以下では、時間差（ｔ２−ｔ１）および時間差（ｔ４−ｔ３）のいずれも、グランドマスター装置とスレーブ装置との間の同期メッセージ交換における同期メッセージの送信時刻と受信時刻との間の時間差を指す。
【００３１】
（ｔ２−ｔ１）グラフでは、折れ線３０１は、スレーブ装置が同期メッセージを交換するときに実測した（ｔ２−ｔ１）を表す。折れ線３０４は、実測した（ｔ２−ｔ１）に基づいて計算した伝送遅延時間ｄの実測値を表す。同様に、（ｔ４−ｔ３）グラフでは、折れ線３１１は、スレーブ装置が同期メッセージを交換するときに実測した（ｔ４−ｔ３）を表す。折れ線３１４が、実測した（ｔ４−ｔ３）に基づいて計算した伝送遅延時間ｄの実測値を表す。
【００３２】
グラフの横軸であるスレーブ装置のローカルタイムＬＴ１（ｔ２の時点を基準）が経過するに従い、直線３０２で示される（ｔ２−ｔ１）の最短値は、グランドマスター装置のクロックとスレーブ装置のローカルクロックの周波数差に従い直線的に変化していく。同様に、スレーブ装置のローカルタイムＬＴ１（ｔ３の時点を基準）が経過するに従い、直線３１２で示される（ｔ４−ｔ３）の最短値は、グランドマスター装置のクロックとスレーブ装置のローカルクロックの周波数差に従い直線的に変化していく。ここで最短値とは伝送遅延時間ｄが定常的に最短の固定値であると仮定した場合の（ｔ２−ｔ１）および（ｔ４−ｔ３）の理論値である。
【００３３】
実際の同期メッセージ交換での（ｔ２−ｔ１）、あるいは（ｔ４−ｔ３）の実測値は、伝送遅延時間ｄが折れ線３０４あるいは折れ線３１４に示すようにばらつくため、折れ線３０１あるいは折れ線３１１のように変化する。スレーブ装置のローカルタイムＬＴ１のクロック周波数がグランドマスター装置のクロック周波数よりも高いこのケースでは、常にｔ２＞ｔ１である。よって、（ｔ２−ｔ１）の実測値の絶対値は決して（ｔ２−ｔ１）の最短値を下回る事はない。
【００３４】
本実施形態では、この点に着目し、（ｔ２−ｔ１）の実測値の時系列を基に同期メッセージ交換における（ｔ２−ｔ１）の値の予測値を算出する。同様に、（ｔ４−ｔ３）の実測値の時系列を基に同期メッセージ交換における（ｔ４−ｔ３）の値の予測値を算出する。そして、（ｔ２−ｔ１）および（ｔ４−ｔ３）の実測値ではなく、予測値を用いてローカルタイムＬＴ２の補正を行う。一方で、ローカルタイムＬＴ２の補正を行う場合には、ローカルタイムＬＴ１の補正は行わず、同期メッセージの交換（つまり、（ｔ２−ｔ１）および（ｔ４−ｔ３）を実測するとき）においてローカルタイムＬＴ１を使用する。
【００３５】
図３において、同期メッセージ交換での（ｔ２−ｔ１）の実測値の時系列のなかで開始時点（図３のＴ００）の基準値ａ１と（ｔ２−ｔ１）の時系列の実測値を結んだ直線群のなかで最も傾斜が少ない直線（以下、予測値直線）の延長線（図３のＴ０１時点では直線３０５）上の値が、次の同期メッセージ交換の時点で（ｔ２−ｔ１）の予測値として使用される。設定値ａ１は、（ｔ２−ｔ１）の予測値に対する基準値とする。
【００３６】
同様に、同期メッセージ交換での（ｔ４−ｔ３）の時系列の実測値のなかで開始時点（図３のＴ００）の基準値ａ２を結んだ直線群のなかで最も傾斜が少ない直線（予測値直線）の延長線（図３のＴ０２時点では３１５）上の値が、次の同期メッセージ交換の時点で（ｔ４−ｔ３）の予測値として使用される。設定値ａ２は、（ｔ４−ｔ３）の予測値に対する基準値とする。
【００３７】
そして、同期メッセージ交換での実測値と時系列の開始時点（Ｔ００のａ１あるいはａ２）を結んだ直線の傾斜が、その時点での予測値直線の傾斜を下回らない限りは、予測値を用いてローカルタイムＬＴ２の補正を行う。つまり、ローカルタイムＬＴ２の補正において、予測値直線（直線３０５）上にある予測値が時間差（ｔ２−ｔ１）として使用され、予測値直線（直線３１５）上にある予測値が時間差（ｔ４−ｔ３）として使用されて、伝送遅延時間ｄが算出される。ここで傾斜が下回わる、すなわち傾斜が少ないとは横軸たる時間軸に対する傾斜角が小さい事の意味である。
【００３８】
図３において（ｔ２−ｔ１）グラフでは、前述したようにＴ０１の時点で、（ｔ２−ｔ１）実測値３０８とＴ００での始点であるａ１を結んだ直線３０５が最も傾斜が少ない。よって、直線３０５は、次の同期メッセージ交換での予測値直線となる。例えば、Ｔ０１の次の同期メッセージ交換を行うＴ０１１の時点では、（ｔ２−ｔ１）の実測値３０７が得られているが、基準値ａ１と実測値３０７とを結んだ直線は、直線３０５よりも傾斜角が大きい。よって、Ｔ０１１の時点で時刻補正を行う場合、直線３０５上のＴ０１１の時点でのｔ２に対応する予測値Ｅ１が時間差（ｔ２−ｔ１）として用いられる。
【００３９】
同様に（ｔ４−ｔ３）グラフでは、Ｔ０２の時点で、（ｔ４−ｔ３）実測値３１８とＴ００での始点であるａ２を結んだ直線３１５が最も傾斜が少ない（傾斜角がマイナス方向に大きい）。よって、直線３１５は、次の同期メッセージ交換での予測値直線となる。例えば、Ｔ０２の次の同期メッセージ交換を行うＴ０２１の時点では、（ｔ４−ｔ３）の実測値３１７が得られているが、基準値ａ２と実測値３１７とを結んだ直線は、直線３１５よりも傾斜角が大きい。よって、Ｔ０２１の時点で時刻補正を行う場合、直線３１５上のＴ０２１の時点でのｔ３に対応する予測値Ｅ３が時間差（ｔ２−ｔ１）として用いられる。
【００４０】
（ｔ２−ｔ１）グラフでは、さらに次の同期メッセージ交換を行うＴ０１２の時点において（ｔ２−ｔ１）の実測値３０９を得られている。実測値３０９とＴ００での始点であるａ１を結んだ直線３０６の傾斜が、Ｔ０１２の時点での予測値直線３０５の傾斜よりも小さい。よって、予測値直線を直線３０６に変更し、直線３０５上の予測値３１０ではなく、直線３０６上のＴ０１２の時点でのｔ２に対応する実測値３０９が予測値として用いられる。予測値３０９に基づいて、時間差（ｔ２−ｔ１）を算出し、ローカルタイムＬＴ２の補正を行う。
【００４１】
これ以後のローカルタイムＬＴ２の補正においては、直線３０６よりも少ない傾斜の予測値直線を形成する実測値が得られるまで、直線３０６上の予測値（例えば、図３のＴ０３の時点では、直線３０６上のＴ０３の時点でのｔ２に対応する予測値Ｅ２）を用いて時間差（ｔ２−ｔ１）を算出し、ローカルタイムＬＴ２の補正を行う。
【００４２】
上記と同様の処理を（ｔ４−ｔ３）についても行う。さらに次の同期メッセージ交換を行うＴ０２２の時点において（ｔ４−ｔ３）の実測値３１９を得られている。実測値３１９とＴ００での始点であるａ２を結んだ直線３１６の傾斜が、Ｔ０２２の時点での予測値直線３１５の傾斜よりも小さい。よって、予測値直線を直線３１６に変更し、直線３１５上の予測値３２０ではなく、直線３１６上のＴ０２２の時点でのｔ３に対応する実測値３１９が予測値として用いられる。予測値３１９に基づいて、時間差（ｔ４−ｔ３）を算出し、ローカルタイムＬＴ２の補正を行う。
【００４３】
これ以後のローカルタイムＬＴ２の補正においては、直線３１６よりも少ない傾斜の予測値直線を形成する実測値が得られるまで、直線３１６上の予測値を用いて時間差（ｔ４−ｔ３）を算出する。
【００４４】
Ｔ０２３の時点での同期メッセージ交換において（ｔ４−ｔ３）の実測値３２１が得られている。実測値３２１とＴ００での始点であるａ２を結んだ直線３２２の傾斜がその時点での予測値の直線３１６の傾斜よりも小さい。よって、予測値直線を直線３２２に変更し、直線３２２上の予測値を用いて時間差（ｔ４−ｔ３）を算出し、ローカルタイムＬＴ２の補正を行う。
【００４５】
これ以後のローカルタイムＬＴ２の補正においては、直線３２２よりも少ない傾斜の実測値が得られるまで直線３２２上の予測値を用いて時間差（ｔ４−ｔ３）を算出する。つまり、本実施形態では、スレーブ装置においてローカルタイムＬＴ２の時刻補正を行うとき、その時点までで得られた（ｔ２−ｔ１）の実測値と基準値ａ１とを結ぶ最も傾斜が小さい直線上の、その時点に対応する予測値を（ｔ２−ｔ１）として用いる。また、ローカルタイムＬＴ２の時刻補正を行うとき、その時点までで得られた（ｔ４−ｔ３）の実測値と基準値ａ２とを結ぶ最も傾斜が小さい直線上の、その時点に対応する予測値を（ｔ４−ｔ３）として用いる。
【００４６】
上述した予測値について、例えば、図３に示した予測値Ｅ１は、式（５）に従って算出することができる。
Ｅ１＝ａ１＋（Ｔ０１１−Ｔ００）×（３０８−ａ１／（Ｔ０１−Ｔ００））
式（５）
Ｔ００は、Ｔ００の時点でのｔ２（タイムスタンプ）の値であり、Ｔ０１１は、Ｔ０１１の時点でのｔ２の値であり、Ｔ０１は、Ｔ０１の時点でのｔ２の値である。
【００４７】
また、図３に示した予測値Ｅ２は、式（６）に従って算出することができる。
Ｅ２＝ａ１＋（Ｔ０３−Ｔ００）×（３０９−ａ１／（Ｔ０１２−Ｔ００））
式（６）
Ｔ００は、Ｔ００の時点でのｔ２（タイムスタンプ）の値であり、Ｔ０３は、Ｔ０３の時点でのｔ２の値であり、Ｔ０１２は、Ｔ０１２の時点でのｔ２の値である。
【００４８】
さらに、図３に示した予測値Ｅ３は、式（７）に従って算出することができる。
Ｅ３＝ａ２＋（Ｔ０２１−Ｔ００）×（３１８−ａ２／（Ｔ０２−Ｔ００））
式（７）Ｔ００は、Ｔ００の時点でのｔ３（タイムスタンプ）の値であり、Ｔ０２は、Ｔ０２の時点でのｔ３の値であり、Ｔ０２１は、Ｔ０２１の時点でのｔ３の値である。
【００４９】
実施形態にかかるスレーブ装置は、２つのモードのいずれかに従って動作する。１つ目のモードは、従来のＰＴＰに従って動作する「従来型ＰＴＰモード」である。２つ目のモードは、上述した予測値直線上の予測値を用いて（ｔ２−ｔ１）および（ｔ４−ｔ３）を算出し、ローカルタイムＬＴ２を補正し、ローカルタイムＬＴ１を補正しない処理を実行する「拡張ＰＴＰモード」である。２つのモード切り替えは、手動による切り替えであってもよく、または後述する基準値ａ１およびａ２を算出するために、伝送遅延時間のばらつきが低減してきたタイミングで自動で切り替わってもよい。
【００５０】
次にａ１およびａ２の値をどのように設定するかを説明する。図３の（ｔ２−ｔ１）グラフでのａ１は、Ｔ００の時点での（ｔ２−ｔ１）の予測値に対する基準値であり、（ｔ２−ｔ１）の最短値より少ない事を前提としている。図３の（ｔ４−ｔ３）グラフでのａ２は、Ｔ００の時点での（ｔ４−ｔ３）の予測値に対する基準値であり、（ｔ４−Ｔ３）の最短値より少ない事を前提としている。
【００５１】
（ｔ２−ｔ１）および（ｔ４−Ｔ３）の最短値を把握する事はできない。よって、基準値ａ１は、例えば、スレーブ装置が「従来型ＰＴＰモード」で動作し、所定の回数だけ同期メッセージ交換を行った結果として得られた（ｔ２−ｔ１）の最短値に所定の演算処理（例えば０．５倍等の所定の値を掛け合わせた値を減算）を行った値が設定されてもよい。この場合、スレーブ装置が「従来型ＰＴＰモード」において同期メッセージ交換を行い、伝送遅延時間ｄ（つまり、測定された（ｔ２−ｔ１））のばらつきが小さくなったと判断したときの（ｔ２−ｔ１）の最短値に所定の演算処理が行われてもよい。同様に、基準値ａ２は、スレーブ装置が「従来型ＰＴＰモード」で動作し、所定の回数だけ同期メッセージ交換を行った結果として得られた（ｔ４−ｔ３）の最短値に所定の演算処理（例えば０．５倍等の所定の値を掛け合わせた値を減算）を行った値が設定されてもよい。この場合、スレーブ装置が「従来型ＰＴＰモード」において同期メッセージ交換を行い、伝送遅延時間ｄ（つまり、測定された（ｔ４−ｔ３））のばらつきが小さくなったと判断したときの（ｔ４−ｔ３）の最短値に所定の演算処理が行われてもよい。
【００５２】
また、基準値ａ１は、例えば、スレーブ装置が「従来型ＰＴＰモード」で動作し、所定の回数だけ同期メッセージ交換を行った結果として得られた（ｔ２−ｔ１）の平均値に所定の演算処理（例えば０．５倍等の所定の値を掛け合わせた値を減算）を行った値が設定されてもよい。この場合、スレーブ装置が「従来型ＰＴＰモード」において同期メッセージ交換を行い、伝送遅延時間ｄ（つまり、測定された（ｔ２−ｔ１））のばらつきが小さくなったと判断したときの（ｔ２−ｔ１）の平均値に所定の演算処理が行われてもよい。同様に、基準値ａ２は、スレーブ装置が「従来型ＰＴＰモード」で動作し、所定の回数だけ同期メッセージ交換を行った結果として得られた（ｔ４−ｔ３）の平均値に所定の演算処理（例えば０．５倍等の所定の値を掛け合わせた値を減算）を行った値が設定されてもよい。この場合、スレーブ装置が「従来型ＰＴＰモード」において同期メッセージ交換を行い、伝送遅延時間ｄ（つまり、測定された（ｔ４−ｔ３））のばらつきが小さくなったと判断したときの（ｔ２−ｔ１）の平均値に所定の演算処理が行われてもよい。
【００５３】
上述したように、スレーブ装置が同期メッセージ交換における伝送遅延時間ｄのばらつきが小さくなったと判定した場合、上述した「従来型ＰＴＰモード」から「拡張ＰＴＰモード」に遷移してもよい。伝送遅延時間ｄのばらつきが小さくなった結果として得られる（ｔ２−ｔ１）および（ｔ４−ｔ３）の最短値または平均値から、適切なａ１およびａ２を設定することができるからである。上述した基準値ａ１およびａ２の設定、ならびにモード間の遷移は、後述するＰＴＰプロトコルエンジン６１１によって実行される。
【００５４】
別の方法としては、基準値ａ１は、０に設定されてもよい。基準値ａ２についても同様である。基準値ａ２については、そもそも、スレーブ装置のローカルタイムＬＴ１の精度が低いので、スレーブ装置のローカルクロックの周波数がグランドマスター装置のクロックの周波数よりも高い場合でも、ｔ３＞ｔ４であることがあり得る。よって、伝送遅延時間ｄの値が小さい場合に、（ｔ４−ｔ３）が（ｔ４−ｔ３）の最短値を下回る事を避けるために、ａ２は、０未満の所定の値が設定されてもよい。
【００５５】
あるいはネットワーク構成が既知の場合に、ネットワークを構成している機器の理論的な最短値の合計が基準値ａ１およびａ２に設定されてもよい。
【００５６】
上記の処理を行う事で、始点であるＴ００からの時間が経過するにつれて、（ｔ２−ｔ１）の予測値は（Ｔ２−ｔ１）の最短値に近づいていき、同期メッセージ交換での実測値のばらつきがローカルタイムの補正のためのオフセットの計算に与える影響も低減していく。（ｔ４−ｔ３）についても同様である。
【００５７】
これにより、伝送遅延時間のばらつきがオフセットの計算に与える影響を最小にし、高精度のオフセット値を得る事が可能となりＰＴＰをサポートしていないＩＰネットワーク上で高精度な時刻同期を実現する事ができる。
【００５８】
図４は、スレーブ装置のローカルクロックの周波数がグランドマスター装置のクロックの周波数よりも低いケースを例に、フリーランニングのローカルタイムＬＴ１を用いた同期メッセージ交換における時間差（ｔ２−ｔ１）の遷移を示す。考え方は、図３で説明したのと同様である。図５は、スレーブ装置のローカルタイムの周波数がグランドマスター装置のタイムの周波数よりも低いケースを例に、フリーランニングのローカルタイムＬＴ１を用いた同期メッセージ交換における時間差（ｔ４−ｔ３）の遷移を示す。考え方は、図３で説明したのと同様である。
【００５９】
図６は、図１におけるスレーブ装置１０２の構成を示す図である。スレーブ装置１０３および１０４も同様の構成を有するので、図６では、スレーブ装置１０２の構成のみを示す。スレーブ装置１０２は、プロトコル上は、ＰＴＰで定義されたオーディナリークロックのスレーブクロックとして動作する。すなわち、同期メッセージ交換でのスレーブとして動作をする。しかし、スレーブ装置１０２の構成はＩＥＥＥ  Ｓｔｄ  １５８８−２００８に示されているＰＴＰの標準的なスレーブの構成とは異なる。
【００６０】
スレーブ装置１０２は、制御装置６０１、通信装置６０２、メモリ６０３、および記憶装置６０４を含み、それらの要素が内部バスを介してそれぞれ結合されている。
【００６１】
制御装置６０１は、マイクロプロセッサであり、記憶装置６０４に記憶されたプログラムをメモリ６０３に読み出して実行する。制御装置６０１は、スレーブ装置１０２の全体を制御する。制御装置６０１は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、またはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ Ａｒｒａｙ）などのハードウェアを使用して実装されてもよい。
【００６２】
通信装置６０２は、ＩＰネットワーク１１０を介してグランドマスター装置１０１との間で同期メッセージを送受信するネットワークインタフェースである。通信装置６０２は、後述するイベントインタフェース６１８および汎用インタフェース６１９を実装する。
【００６３】
図７は、スレーブ装置１０２の論理モジュールを示す図である。スレーブ装置１０２は、論理モジュールとして、ＰＴＰプロトコルエンジン６１１、フリーラン可能ローカルタイム部６１２、タイムスタンプ発生部６１３、オフセット計算部６１４、ローカルタイム補正部６１５、時間差計算部６１６、および予測値直線設定部６１７を含む。これらの論理モジュールは、通信装置６０２に対して制御装置６０１が所定のプログラムを実行し制御すること、あるいは制御装置６０１内で所定のプログラムを実行することによって実装される。スレーブ装置１０２はまた、イーサネット１１０２に接続された単一の物理ポート上の２つの論理インタフェースであるイベントインタフェース６１８および汎用インタフェース６１９を含む。
【００６４】
イベントインタフェース６１８、は同期メッセージ交換用のインタフェースであり、同期メッセージ交換用のタイムスタンプを生成するタイムスタンプ発生部６１３に接続されている。
【００６５】
汎用インタフェース６１９は、タイムスタンプを持たないメッセージの送受信に使用され、ＰＴＰプロトコルエンジン６１１に接続されている。ＰＴＰプロトコルエンジン６１１はＰＴＰメッセージを送受信し、データセットを更新し、ポートに関連付けられたステートマシンを実行する。
【００６６】
フリーラン可能ローカルタイム部６１２は、同期メッセージ交換に用いられるローカルタイムＬＴ１を維持する。フリーラン可能ローカルタイム部６１２は、ローカルタイムＬＴ１からのクロックを基にフリーランニングが可能なカウンタである。フリーラン可能ローカルタイム部６１２は、図３に示した同期メッセージ交換用のタイムスタンプ情報（ｔ２およびｔ３）をタイムスタンプ発生部６１３に与える。図３の予測値直線の始点Ｔ００において、つまり、「従来型ＰＴＰモード」から「拡張ＰＴＰモード」に遷移するとき、ローカルタイム補正部６１５からローカルタイムＬＴ２のクロック情報（タイムスタンプ）を取り込み、その値を基にフリーランでカウントアップする。
【００６７】
タイムスタンプ発生部６１３は、イベントインタフェース６１８がグランドマスター装置１０１から同期メッセージを受信すると、図３の予測値を得るための同期メッセージ交換用（つまり、スレーブ装置１０２が「拡張ＰＴＰモード」にあるとき）にはフリーラン可能ローカルタイム部６１２からのローカルタイムＬＴ１を用いてタイムスタンプｔ２およびｔ３を生成する。タイムスタンプ発生部６１３は、通常の同期メッセージ交換、例えば、図３における予測値直線の始点Ｔ００より以前の同期メッセージ交換においては（つまり、スレーブ装置１０２が「従来型ＰＴＰモード」にあるとき）、ローカルタイム補正部６１５からのローカルタイムを用いてタイムスタンプを生成する。
【００６８】
オフセット計算部６１４は、図３の予測値を得るための同期メッセージ交換時には（つまり、スレーブ装置１０２が「拡張ＰＴＰモード」にあるとき）、予測値直線設定部６１７から渡された時間差値（（ｔ２−ｔ１）の値または（ｔ４−ｔ３）の値）を基にオフセットを計算し、ローカルタイム補正部６１５に渡す。通常の同期メッセージ交換、例えば図３における予測値直線の始点Ｔ００より以前の同期メッセージ交換においては（つまり、スレーブ装置１０２が「従来型ＰＴＰモード」にあるとき）、時間差計算部６１６から渡された時間差値を用いてオフセットを計算し、ローカルタイム補正部６１５に渡す。
【００６９】
時間差計算部６１６は、ＰＴＰプロトコルエンジン６１１から渡されたｔ１、ｔ２、ｔ３、ｔ４の値を基に時間差値（（ｔ２−ｔ１）の値または（ｔ４−ｔ３）の値）を計算し、予測値直線設定部６１７およびオフセット計算部６１４に対して、計算した時間差値およびその時間差値を与えた同期メッセージ交換用のローカルタイム情報（ｔ２またはｔ３）を渡す。
【００７０】
予測値直線設定部６１７は、図３、図４、および図５に示す時間差グラフの処理を行う機能を備え、予測値の直線（予測値直線）を設定し、その予測値の直線に基づいた時間差情報（（ｔ２−ｔ１）の値または（ｔ４−ｔ３）の値）をオフセット計算部６１４に渡す。
【００７１】
予測値直線設定部６１７は、予測値直線の始点の時間情報（図３ではＴ００）、現在の時間情報、予測値直線の始点の基準値（図３ではａ１およびａ２）、現状の予測値直線を形成している実測値（図３の予測値直線３０５の場合の時刻Ｔ０１における実測値３０８、あるいは予測値直線３１５の場合の時刻Ｔ０２における実測値３１８）とその実測値を得た同期メッセージ交換用のローカルタイム情報を保持している。
【００７２】
時間差計算部６１６から新たな時間差値と新たなローカルタイム情報を受け取った予測値直線設定部６１７は、時間差グラフ上で当該時間差値と当該スレーブ時間情報でプロットされるポイントを予測値直線の始点と結んだ直線を引いて現状の予測値直線との傾斜の比較を行う。
【００７３】
新たな時間差値と新たなローカルタイム情報で引いた直線のスレーブ時間軸に対する傾斜角が現状の予測値直線より少ない場合、当該直線を新たな予測値直線とし、新たな時間差値と新たなスレーブ時間をオフセット計算部６１４に渡す。
【００７４】
新たな時間差値と新たなローカルタイム情報で引いた直線の傾斜が現状の予測値直線より大きい場合には予測値直線の変更は行わず、新たなローカルタイムに対応する予測値直線上の値を時間差値としてオフセット計算部６１４に渡す。
【００７５】
ローカルタイム補正部６１５は、オフセット計算部６１４から渡されたオフセットを用いてローカルタイムを補正し、補正済みローカルタイム情報６２０を出力する。
【００７６】
補正済みローカルタイム情報６２０の作成に関しては、論理的な緩慢化に加え必要とあれば通常のＤＬＬあるいはＰＬＬ、ホールドオーバーのテクノロジーを用いたコントロールループがワンダーあるいはジッタの抑制のために用いられる。
【００７７】
以下、図６に示すスレーブ装置１０２の動作を説明する。
【００７８】
スレーブ装置１０２がイーサネット１１０２より受信したＰＴＰのパケットは、同期メッセージ交換用パケットの場合はイベントインタフェース６１８により受信され、そのほかのメッセージの場合には汎用インタフェース６１９により受信される。
【００７９】
イベントインタフェース６１８が受信した同期メッセージ交換用のパケットは、タイムスタンプ発生部６１３においてパケット内の時間情報の確認を受けＰＴＰプロトコルエンジン６１１に渡される。
【００８０】
汎用インタフェース６１９が受信したパケットの情報もＰＴＰプロトコルエンジン６１１に渡される。ＰＴＰプロトコルエンジン６１１は、タイムスタンプ発生部６１３あるいは汎用インタフェース６１９から渡されたパケットの情報によりデータセットを更新し、ポートに関連付けられたステートマシンを実行する。
【００８１】
タイムスタンプ発生部６１３からの情報に対しては、ＰＴＰプロトコルエンジン６１１は、同期メッセージ交換のプロトコルシーケンスを実行するとともに、その結果たるｔ１、ｔ２、ｔ３、およびｔ４の情報を時間差計算部６１６に与える。
【００８２】
時間差計算部６１６は、それらの情報を基に時間差値（（ｔ２−ｔ１）の値または（ｔ４−ｔ３）の値）を計算し、予測値直線設定部６１７およびオフセット計算部６１４に対して、計算した時間差値およびその時間差値を与えた同期メッセージ交換用のローカルタイム情報（ｔ２またはｔ３）を渡す。
【００８３】
予測値直線設定部６１７は、時間差計算部６１６より渡された時間差値とローカルタイム情報でプロットされるポイントを予測値直線の基準値と結んだ直線を引いて現状の予測値直線との傾斜の比較を行い、新たな時間差値と新たなスレーブ時間で引いた直線のスレーブ時間軸に対する傾斜角が現状の予測値直線より少ない場合、当該直線を新たな予測値直線とし、新たな時間差値と新たなローカルタイム情報をオフセット計算部６１４に渡す。
【００８４】
そうでない場合には、予測値直線の変更は行わず、新たなローカルタイム情報に対応する予測値直線上の値を時間差値としてオフセット計算部６１４に渡す。
【００８５】
傾斜の比較は、図３に示した（ｔ２−ｔ１）グラフでのＴ０１１の時点を基準にすると、例えば、以下のように行う。図３に示したように、Ｔ０１１の時点での予測値直線は直線３０５であり、実測値３０７（時間差（ｔ２−ｔ１））が得られている。直線３０５を得るための実測値が、Ｔ０１の時点で実測された実測値３０８である。よって、記憶装置６０４には、Ｔ０１の時点で実測された実測値３０８（時間差（ｔ２−ｔ１））およびＴ０１の時点でのローカルタイムＬＴ１を基準としたｔ２が記憶されている。
【００８６】
よって、予測値直線設定部６１７は、Ｔ０１１の時点での予測値直線（直線３０５）上のＴ０１１の時点でのｔ２に対応する予測値（Ｅ１）を算出し、算出した予測値Ｅ１を実測値３０７と比較する。実測値の方が小さいと、予測値直線を基準値ａ１と実測値とを結んだ直線に変更し、その時点（Ｔ０１１）の時点でのｔ２および実測値を記憶する。つまり、傾斜の比較は、第１の時点ＴＰ１で実測した第１の時間差（ｔ２−ｔ１）と第１の時点ＴＰ１でのｔ２と、第２の時点ＴＰ２で実測した第２の時間差（ｔ２−ｔ１）と第２の時点ＴＰ２でのｔ２に基づいて、第２の時間差（ｔ２−ｔ１）が、第１の時間差（ｔ２−ｔ１）と基準値ａ１とを結ぶ直線上の第２の時点ＴＰ２でのｔ２に対応する予測値（ＥＶ）よりも大きいか否かを判定することによって行われる。
ＥＶ＝ａ１＋（ＴＰ２−ＴＰ０）×（第１の時間差（ｔ２−ｔ１）−ａ１）／（ＴＰ１−Ｔ００）                                                              式（８）
ＴＰ２は、ＴＰ２の時点でのｔ２（タイムスタンプ）の値であり、ＴＰ０は、基準値ａ１に対応する時点でのｔ２の値であり、ＴＰ１は、ＴＰ１の時点でのｔ２の値である。
【００８７】
予測値ＥＶが第２の時間差（ｔ２−ｔ１）よりも小さい場合、ａ１と第２の時間差（ｔ２−ｔ１）とを結ぶ直線が予測値直線となる。一方、予測値ＥＶが第２の時間差（ｔ２−ｔ１）よりも大きい場合、ａ１と第１の時間差（ｔ２−ｔ１）とを結ぶ直線が予測値直線となる。
【００８８】
ｔ４−ｔ３についても同様に、傾斜の比較は、第１の時点ＴＰ１で実測した第１の時間差（ｔ４−ｔ３）と第１の時点ＴＰ１でのｔ２と、第２の時点ＴＰ２で実測した第２の時間差（ｔ４−ｔ３）と第２の時点ＴＰ２でのｔ２に基づいて、第２の時間差（ｔ４−ｔ３）が、第１の時間差（ｔ４−ｔ３）と基準値ａ２とを結ぶ直線上の第２の時点ＴＰ２でのｔ２に対応する予測値（ＥＶ）よりも大きいか否かを判定することによって行われる。
ＥＶ＝ａ２＋（ＴＰ２−ＴＰ０）×（第１の時間差（ｔ４−ｔ３）−ａ１）／（ＴＰ１−Ｔ００）                                                              式（９）
ＴＰ２は、ＴＰ２の時点でのｔ３（タイムスタンプ）の値であり、ＴＰ０は、基準値ａ１に対応する時点でのｔ３の値であり、ＴＰ１は、ＴＰ１の時点でのｔ３の値である。
【００８９】
予測値ＥＶが第２の時間差（ｔ４−ｔ３）よりも小さい場合、ａ２と第２の時間差（ｔ４−ｔ３）とを結ぶ直線が予測値直線となる。一方、予測値ＥＶが第２の時間差（ｔ４−ｔ３）よりも大きい場合、ａ２と第１の時間差（ｔ４−ｔ３）とを結ぶ直線が予測値直線となる。
【００９０】
オフセット計算部６１４は、高精度な時刻同期を取る場合、例えば図３の予測値直線の始点Ｔ００より以後の同期メッセージ交換（つまり、スレーブ装置１０２が「拡張ＰＴＰモード」にあるとき）においては予測値直線設定部６１７から渡された時間差値（（ｔ２−ｔ１）の値または（ｔ４−ｔ３）の値）を基にオフセットを計算し、ローカルタイム補正部６１５に渡す。
【００９１】
オフセット計算部６１４は、通常の同期メッセージ交換、例えば図３における予測値直線の始点Ｔ００より以前の同期メッセージ交換においては（つまり、スレーブ装置１０２が「従来型ＰＴＰモード」にあるとき）、時間差計算部６１６から渡された時間差値を用いてオフセットを計算し、ローカルタイム補正部６１５に渡す。
【００９２】
これにより、高精度の時刻同期を取る場合に（つまり、スレーブ装置１０２が「拡張ＰＴＰモード」にあるとき）、予測値直線を基にしたローカルタイムの補正を行い、その予備段階として通常の同期メッセージ交換を行う場合には（つまり、スレーブ装置１０２が「従来型ＰＴＰモード」にあるとき）、通常のオーディナリークロックとしてのローカルタイムの補正を行うことが可能となる。
【００９３】
ＰＴＰプロトコルエンジン６１１により同期メッセージ交換のプロトコルシーケンスが実行されると、タイムスタンプ発生部６１３は、高精度の時刻同期を取る場合には（つまり、スレーブ装置１０２が「拡張ＰＴＰモード」にあるとき）、フリーラン可能ローカルタイム部６１２からのローカルタイムを用いてタイムスタンプを生成し、通常の同期メッセージ交換においては（つまり、スレーブ装置１０２が「従来型ＰＴＰモード」にあるとき）、ローカルタイム補正部６１５からローカルタイムを用いてタイムスタンプを生成し、同期メッセージ交換に用いる。
【００９４】
これにより、高精度の時刻同期を取る場合には、安定したフリーランのローカルタイムＬＴ１によるタイムスタンプを用い、通常の同期メッセージ交換を行う場合には補正済みのローカルタイムによるタイムスタンプを用いる事が可能となる。
【００９５】
以上、説明したように本実施形態では、同期メッセージ交換で得たタイムスタンプ情報を基に次のタイムスタンプの予測値を算出し、ローカルタイムの補正に用いる。また、本実施形態では、ＰＴＰスレーブ装置において、フリーランニングのローカルタイムと、グランドマスター装置の時間に同期するように補正を行った補正済みローカルタイムの二つのローカルタイムを設ける。よって、フリーランニング可能なローカルタイムを同期メッセージ交換で用いる事により伝送遅延時間のばらつきとローカルタイムの不安定さがオフセットの計算に与える影響を最小にし、高精度の時刻同期を得る事を可能としている。
【００９６】
これにより、ネットワーク内の中間ノード（スイッチおよびルータなど）がＰＴＰ未サポートのネットワークにおいて同期メッセージ交換（Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｍｅｓｓａｇｅ  ｅｘｃｈａｎｇｅ）によって獲得したタイムスタンプを基に、より高精度の時刻同期を取ることができる。
【００９７】
本実施形態で実装される処理は、コンピュータ実行可能命令を含むコンピュータプログラムによって実行されてもよい。コンピュータ実行可能命令は、制御装置によって実行されるとき、制御装置に、本実施形態で実装される処理を実行させる。上記コンピュータプログラムは、コンピュータ可読記憶媒体に記憶されてもよい。
【００９８】
本明細書および図面において開示される実施形態は一例にすぎず、本発明の技術的範囲を定める際に、本開示の内容に限定して解釈されるべきではない。説明のため各処理を分けて記載したが、各処理を統合、連携させ、それぞれが有する処理の一部または全部を他方が行うように実装され得る。
【符号の説明】
【００９９】
１０１    ＰＴＰグランドマスター装置
１０２、１０３、１０４    ＰＴＰスレーブ装置
１１０１、１１０２、１１０３、１１０４    イーサネット
１１０    ＩＰネットワーク
６０１    制御装置
６０２    通信装置
６０３    メモリ
６０４    記憶装置
６１１    ＰＴＰプロトコルエンジン
６１２    フリーラン可能ローカルタイム部
６１３    タイムスタンプ発生部
６１４    オフセット計算部
６１５    ローカルタイム補正部
６１６    時間差計算部
６１７    予測値直線設定部
６１８    イベントインタフェース
６１９    汎用インタフェース
【図１】
2020072474.tif 000003
【図２】
2020072474.tif 000004
【図３】
2020072474.tif 000005
【図４】
2020072474.tif 000006
【図５】
2020072474.tif 000007
【図６】
2020072474.tif 000008
【図７】
2020072474.tif 000009
【手続補正書】
【提出日】令和1年12月11日(2019.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＰＴＰに従って動作するスレーブ装置であって、
第１の時点において、グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の第１の時間差を取得し、前記第１の時間差は、前記第１の時点よりも前の基準時点に対応する基準値からの第１の増分を有し、前記第１の増分は、前記基準時点から前記第１の時点までの時間に対応し、
前記第１の時点よりも後に前記同期メッセージの交換を行うときの第２の時点において、前記第１の時間差からの第２の増分を有する第２の時間差を算出し、前記第２の増分は、前記第１の増分と同一の増加率を有し、および前記第１の時点から前記第２の時点までの時間に対応し、
前記第２の時間差に基づいて、前記グランドマスター装置のマスタータイムと前記スレーブ装置のローカルタイムとの間のオフセットを算出する、
ように構成された制御装置を備えたことを特徴とするスレーブ装置。
【請求項２】
前記制御装置は、
前記第１の時点よりも後の第３の時点において、前記同期メッセージの送信時刻と受信時刻との間の第３の時間差を取得し、前記第３の時間差は、前記基準値からの第３の増分を有し、
前記基準値からの第４の増分を有する第４の時間差を算出し、前記第４の増分は、前記第１の増分と同一の増加率を有し、
前記第３の増分と前記第４の増分とを比較し、前記第３の増分および前記第４の増分は、前記基準時点から前記第３の時点までの時間に対応し、
前記第３の時点よりも後に前記同期メッセージの交換を行うときの第４の時点において、前記第３の時間差からの第５の増分を有する第５の時間差、または前記第４の時間差からの第６の増分を有する第６の時間差を算出し、前記第５の増分は、前記第３の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応し、前記第６の増分は、前記第４の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応し、
前記第５の時間差または前記第６の時間差に基づいて、前記オフセットを算出する、
ようにさらに構成されたことを特徴とする請求項１に記載のスレーブ装置。
【請求項３】
前記制御装置は、前記第３の増分が前記第４の増分よりも小さいと判定した場合、前記第５の時間差に基づいて、前記オフセットを算出するようにさらに構成されたことを特徴とする請求項２に記載のスレーブ装置。
【請求項４】
前記スレーブ装置は、第１のローカルタイムおよび第２のローカルタイムを含み、
前記制御装置は、
前記第１のローカルタイムに基づいて、前記第１の時間差を取得し、
前記算出したオフセットに基づいて、前記第２のローカルタイムを補正する、
ようにさらに構成されたことを特徴とする請求項１に記載のスレーブ装置。
【請求項５】
前記基準値は、ゼロに設定される、ことを特徴とする請求項１乃至４のいずれか一項に記載のスレーブ装置。
【請求項６】
前記制御装置は、前記同期メッセージの交換を通じて、伝送遅延時間を算出するように構成され、
前記基準値は、前記算出された伝送遅延時間の最短値に所定の値を減算した値が設定される、ことを特徴とする請求項１乃至４のいずれか一項に記載のスレーブ装置。
【請求項７】
ＰＴＰに従って動作するスレーブ装置によって実行される方法であって、
第１の時点において、グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の第１の時間差を取得するステップであって、前記第１の時間差は、前記第１の時点よりも前の基準時点に対応する基準値からの第１の増分を有し、前記第１の増分は、前記基準時点から前記第１の時点までの時間に対応する、ステップと、
前記第１の時点よりも後に前記同期メッセージの交換を行うときの第２の時点において、前記第１の時間差からの第２の増分を有する第２の時間差を算出するステップであって、前記第２の増分は、前記第１の増分と同一の増加率を有し、および前記第１の時点から前記第２の時点までの時間に対応する、ステップと、
前記第２の時間差に基づいて、前記グランドマスター装置のマスタータイムと前記スレーブ装置のローカルタイムとの間のオフセットを算出するステップと、
を備えたことを特徴とする方法。
【手続補正書】
【提出日】令和2年1月29日(2020.1.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＰＴＰに従って動作するスレーブ装置であって、
第１の時点において、グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の第１の時間差を取得し、前記第１の時間差は、前記第１の時点よりも前の基準時点に対応する基準値からの第１の増分を有し、前記第１の増分は、前記基準時点から前記第１の時点までの時間に対応し、
前記第１の時点よりも後に前記同期メッセージの交換を行うときの第２の時点において、前記第１の時間差からの第２の増分を有する第２の時間差を算出し、前記第２の増分は、前記第１の増分と同一の増加率を有し、および前記第１の時点から前記第２の時点までの時間に対応し、
前記第２の時間差に基づいて、前記グランドマスター装置のマスタータイムと前記スレーブ装置のローカルタイムとの間のオフセットを算出し、
前記第１の時点よりも後の第３の時点において、前記同期メッセージの送信時刻と受信時刻との間の第３の時間差を取得し、前記第３の時間差は、前記基準値からの第３の増分を有し、
前記基準値からの第４の増分を有する第４の時間差を算出し、前記第４の増分は、前記第１の増分と同一の増加率を有し、
前記第３の増分と前記第４の増分とを比較し、前記第３の増分および前記第４の増分は、前記基準時点から前記第３の時点までの時間に対応し、
前記第３の時点よりも後に前記同期メッセージの交換を行うときの第４の時点において、前記第３の時間差からの第５の増分を有する第５の時間差、または前記第４の時間差からの第６の増分を有する第６の時間差を算出し、前記第５の増分は、前記第３の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応し、前記第６の増分は、前記第４の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応し、
前記第５の時間差または前記第６の時間差に基づいて、前記オフセットを算出する、
ように構成された制御装置を備えたことを特徴とするスレーブ装置。
【請求項２】
前記制御装置は、前記第３の増分が前記第４の増分よりも小さいと判定した場合、前記第５の時間差に基づいて、前記オフセットを算出するようにさらに構成されたことを特徴とする請求項１に記載のスレーブ装置。
【請求項３】
前記スレーブ装置は、第１のローカルタイムおよび第２のローカルタイムを含み、
前記制御装置は、
前記第１のローカルタイムに基づいて、前記第１の時間差を取得し、
前記算出したオフセットに基づいて、前記第２のローカルタイムを補正する、
ようにさらに構成されたことを特徴とする請求項１に記載のスレーブ装置。
【請求項４】
前記基準値は、ゼロに設定される、ことを特徴とする請求項１乃至３のいずれか一項に記載のスレーブ装置。
【請求項５】
前記制御装置は、前記同期メッセージの交換を通じて、伝送遅延時間を算出するようにさらに構成され、
前記基準値は、前記算出された伝送遅延時間の最短値に所定の値を減算した値が設定される、ことを特徴とする請求項１乃至３のいずれか一項に記載のスレーブ装置。
【請求項６】
ＰＴＰに従って動作するスレーブ装置によって実行される方法であって、
第１の時点において、グランドマスター装置との同期メッセージの交換を通じて、前記同期メッセージの送信時刻と受信時刻との間の第１の時間差を取得するステップであって、前記第１の時間差は、前記第１の時点よりも前の基準時点に対応する基準値からの第１の増分を有し、前記第１の増分は、前記基準時点から前記第１の時点までの時間に対応する、ステップと、
前記第１の時点よりも後に前記同期メッセージの交換を行うときの第２の時点において、前記第１の時間差からの第２の増分を有する第２の時間差を算出するステップであって、前記第２の増分は、前記第１の増分と同一の増加率を有し、および前記第１の時点から前記第２の時点までの時間に対応する、ステップと、
前記第２の時間差に基づいて、前記グランドマスター装置のマスタータイムと前記スレーブ装置のローカルタイムとの間のオフセットを算出するステップと、
前記第１の時点よりも後の第３の時点において、前記同期メッセージの送信時刻と受信時刻との間の第３の時間差を取得するステップであって、前記第３の時間差は、前記基準値からの第３の増分を有する、ステップと、
前記基準値からの第４の増分を有する第４の時間差を算出するステップであって、前記第４の増分は、前記第１の増分と同一の増加率を有する、ステップと、
前記第３の増分と前記第４の増分とを比較するステップであって、前記第３の増分および前記第４の増分は、前記基準時点から前記第３の時点までの時間に対応する、ステップと、
前記第３の時点よりも後に前記同期メッセージの交換を行うときの第４の時点において、前記第３の時間差からの第５の増分を有する第５の時間差、または前記第４の時間差からの第６の増分を有する第６の時間差を算出するステップであって、前記第５の増分は、前記第３の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応し、前記第６の増分は、前記第４の増分と同一の増加率を有し、および前記第３の時点から前記第４の時点までの時間に対応する、ステップと、
前記第５の時間差または前記第６の時間差に基づいて、前記オフセットを算出するステップと、
を備えたことを特徴とする方法。