JP2016184810A - 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム - Google Patents

同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム Download PDF

Info

Publication number
JP2016184810A
JP2016184810A JP2015063044A JP2015063044A JP2016184810A JP 2016184810 A JP2016184810 A JP 2016184810A JP 2015063044 A JP2015063044 A JP 2015063044A JP 2015063044 A JP2015063044 A JP 2015063044A JP 2016184810 A JP2016184810 A JP 2016184810A
Authority
JP
Japan
Prior art keywords
message
synchronization
transmission
sending
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015063044A
Other languages
English (en)
Other versions
JP6516216B2 (ja
Inventor
橋本 直也
Naoya Hashimoto
直也 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Solutions Inc.
Original Assignee
Seiko Solutions Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Solutions Inc. filed Critical Seiko Solutions Inc.
Priority to JP2015063044A priority Critical patent/JP6516216B2/ja
Priority to PCT/JP2016/052226 priority patent/WO2016152237A1/ja
Publication of JP2016184810A publication Critical patent/JP2016184810A/ja
Application granted granted Critical
Publication of JP6516216B2 publication Critical patent/JP6516216B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electric Clocks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】時刻同期パケットの送信と時刻同期パケット以外のパケットの送信とで別々のIPアドレスを用いる必要無しに、GMC(グランドマスタークロック装置)における時刻同期パケットの送信間隔の揺らぎを低減させられるようにする。
【解決手段】時刻情報を含む同期メッセージを送出する同期メッセージ送出装置であって、前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出部と、前記同期メッセージの送出タイミングか否かを判定するスケジューラ部と、を備え、前記送出部は、前記スケジューラ部が同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出する。
【選択図】図18

Description

本発明は、同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラムに関する。
Ethernet(登録商標)をはじめとする非同期ネットワークにおいて、時刻同期手段としてIEEE1588v2(プレシジョンタイムプロトコル(Precision Time Protocol)。以下、PTPと称する)が知られている。PTPでは、グランドマスタークロック(Grandmaster Clock;GMC)はGNSS(Global Navigation Satellite System(s)、全地球航法衛星システム)等から得た極めて精度の高い時刻情報を、PTPにて規定されているフォーマットの時刻同期パケットに打刻し、時刻同期対象装置であるスレーブに対し送信する。スレーブは、GMCからのパケットを受信し、PTPの規定にて決められた演算をすることで、GMCと同期した周波数、位相、及び、絶対時刻情報を得ることができる。
PTPにてGMCとスレーブとの時刻同期を取る際、ネットワークにおける伝送時間の遅延及び揺らぎと、GMCにおける時刻同期パケットの送信間隔の揺らぎとが、時刻同期の精度を低下させる要因となる。
これらのうち、ネットワークにおける伝送時間の遅延及び揺らぎに関しては、IEEE1588v2にてトランスペアレントクロック(Transparent Clock、TC)やバウンダリークロック(Boundary Clock、BC)を用いた対応策が提案されている。
また、時刻同期の精度の向上に関連して、特許文献1に記載の時刻同期システムは、時刻同期パケットの通信を行って時刻同期の処理を行う時刻同期処理部と時刻同期以外の処理を行うメイン処理部とを有し、時刻同期処理部とメイン処理部とに異なるIPアドレスを付与したマスタと、マスタのうちメイン処理部と通信を行うときにはメイン処理部のIPアドレスに通常パケットの通信を行い、時刻同期の通信を行うときには時刻同期処理部のIPアドレスに時刻同期パケットの通信を行う複数のスレーブと、マスタとスレーブとの間を接続し、IPアドレスごとに通信されるパケットを振り分け、IPアドレスごとに第1バッファ、第2バッファを設けた中継装置と、を備えている。
特許文献1では、かかる構成により、パケットが集中したときでも、ネットワーク遅延のバラツキを減少させることで、時刻同期精度を向上させる、とされている。
特開2013−143748号公報
GMCとスレーブとの時刻同期の精度を高めるためには、GMCにおける時刻同期パケットの送信間隔の揺らぎについても対応策が求められる。特に、時刻同期パケットの送信タイミングが到来したときにGMCが時刻同期パケット以外のパケットを送信中であった場合、送信中のパケットの送信完了を待って時刻同期パケットを送信することで時刻同期パケットの送信に遅延が生じ、また、時刻同期パケットの送信間隔に揺らぎが生じる。
かかる同期パケットの送信遅延及び送信間隔の揺らぎへの対策として、特許文献1に記載の技術を用いて、同期パケットと同期パケット以外のパケットとを別々のIPアドレスにて送信する方法が考えられる。しかしながら、この方法では、GMCに複数のIPアドレスを割り当てる必要があり、IPアドレスの管理が煩雑になる。
本発明は、時刻同期パケットの送信と時刻同期パケット以外のパケットの送信とで別々のIPアドレスを用いる必要無しに、GMC(グランドマスタークロック装置)における時刻同期パケットの送信間隔の揺らぎを低減させることができる同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラムを提供する。
本発明の第1の態様によれば、同期メッセージ送出装置は、時刻情報を含む同期メッセージを送出する同期メッセージ送出装置であって、前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出部と、前記同期メッセージの送出タイミングか否かを判定するスケジューラ部と、を備え、前記送出部は、前記スケジューラ部が同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出する。
同一の時刻同期対象機器に対する同期メッセージ送信間隔の最小値として規定されている間隔毎にカウントする第1カウンターと、前記同一の時刻同期対象機器に対する同期メッセージ送信間隔の最小値を時刻同期対象機器の数でさらに分割した間隔毎にカウントする第2カウンターとを備え、前記スケジューラ部は、前記第2カウンターが示す時刻同期対象機器に対して同期メッセージを送出するタイミングか否かを前記第1カウンターの値に基づいて判定し、前記送出部は、前記スケジューラ部が同期メッセージを送出するタイミングであると判定すると当該同期メッセージを送出する、ようにしてもよい。
本発明の第2の態様によれば、時刻同期システムは、同期メッセージ送出装置と、時刻同期対象装置とを備え、前記同期メッセージ送出装置は、時刻情報を含む同期メッセージを送出する同期メッセージ送出装置であって、前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出部と、前記同期メッセージの送出タイミングか否かを判定するスケジューラ部と、を備え、前記送出部は、前記スケジューラ部が同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出し、前記時刻同期対象装置は、前記同期メッセージ送出装置が送出する前記同期メッセージに基づいて、当該同期メッセージ送出装置との時刻同期を行う。
本発明の第3の態様によれば、同期メッセージ送出方法は、時刻情報を含む同期メッセージを送出する同期メッセージ送出装置の同期メッセージ送出方法であって、前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出ステップと、前記同期メッセージの送出タイミングか否かを判定する判定ステップと、を有し、前記送出ステップでは、前記判定ステップにて前記同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出する。
本発明の第4の態様によれば、プログラムは、時刻情報を含む同期メッセージを送出する同期メッセージ送出装置を制御するコンピュータに、前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出ステップと、前記同期メッセージの送出タイミングか否かを判定する判定ステップと、を実行させ、前記送出ステップでは、前記判定ステップにて前記同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出させるためのプログラムである。
本発明によれば、時刻同期パケットの送信と時刻同期パケット以外のパケットの送信とで別々のIPアドレスを用いる必要無しに、GMCにおける時刻同期パケットの送信間隔の揺らぎを低減させることができる。
本発明の一実施形態における時刻同期システムの装置構成を示す概略構成図である。 IEEE1588v2時刻同期プロセスにおける階層構造を示す説明図である。 従来のグランドマスタークロック装置の構成例を示す概略ブロック図である。 従来のグランドマスタークロック装置が送出する同期メッセージにおける遅延および揺らぎの例を示す説明図である。 同実施形態の時刻同期プロセスにおける階層構造を示す説明図である。 同実施形態におけるグランドマスタークロック装置の構成例を示す概略ブロック図である。 同実施形態におけるグランドマスタークロック装置が送出する同期メッセージにおける遅延の例を示す説明図である。 IEEE1588v2の同期メッセージのフォーマットを示す説明図である。 同実施形態におけるグローバルプロファイル記憶部が記憶するグローバルプロファイルのデータ構造の例を示す説明図である。 同実施形態におけるSMIDプロファイル記憶部が記憶するSMIDプロファイルのデータ構造の例を示す説明図である。 同実施形態におけるSMIDテーブル記憶部が記憶するSMIDテーブルのデータ構造の例を示す説明図である。 同実施形態におけるMAC部の機能構成を示す概略ブロック図である。 同実施形態における同期メッセージのデータ構造の例を示す説明図である。 同実施形態で、複数のスレーブ装置が存在するネットワークにおける同期メッセージの送出間隔の例を示す説明図である。 同実施形態におけるSMIDテーブルのデータ構造の例を示す説明図である。 同実施形態におけるスケジューラの動作の例を示す説明図である。 同実施形態における同期メッセージ送出時のデータの流れの例を示す説明図である。 同実施形態において、強制廃棄方式の場合にSync送出部が行う動作の例を示す説明図である。 同実施形態において、高優先送出方式の場合にSync送出部が行う動作の例を示す説明図である。 同実施形態において、送信時刻予約方式の場合にSync送出部が行う動作の例を示す説明図である。 同実施形態において、送信時刻予約方式にて送信待ち受けがどの程度発生するかを示す説明図である。
以下、本発明の実施形態を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態における時刻同期システムの装置構成を示す概略構成図である。同図において、時刻同期システム1は、グランドマスタークロック(Grandmaster Clock)装置100と、アンテナ200と、トランスペアレントクロック(Transparent Clock)装置300と、1つ以上のスレーブ(Slave)装置400とを備える。
グランドマスタークロック装置100とトランスペアレントクロック装置300とは、ネットワーク810を介して接続されている。トランスペアレントクロック装置300とスレーブ装置400とも、ネットワーク810を介して接続されている。トランスペアレントクロック装置300とスレーブ装置400とが、ネットワーク810に加えてL2スイッチ820を介して接続されていてもよい。グランドマスタークロック装置100及びスレーブ装置400との関係では、トランスペアレントクロック装置300、L2スイッチ820及びネットワーク810が、グランドマスタークロック装置100とスレーブ装置400とを接続する通信経路800に含まれる。
また、アンテナ200は測位システム900から得られる測位情報を受信し、アンテナ200はグランドマスタークロック装置100に接続されている。
ネットワーク810は、例えばEthernet(登録商標)による通信ネットワークなど、非同期の通信ネットワークである。
測位システム900は、衛星を用いた測位システム(Global Navigation Satellite System;GNSS、全地球航法衛星システム)である。測位システム900の例として、GPS(Global Positioning System)、QZSS(Quasi Zenith Satellite System)又はGLONASS(Global Navigation Satellite System)を上げることができるが、これに限らない。測位システム900は、測位の原理として高精度の時刻と衛星の航法情報を元に三角測量を行うシステムであり、地上に設置された数台のセシウム原子時計と時刻が一致するように、常に時刻情報の補正を行っている。時刻同期システム1では、測位システム900を時刻源として利用する。具体的には、時刻同期システム1は、測位システム900の人工衛星が送信する高精度の時刻情報を利用して時刻を検出する。
アンテナ200は、測位システム900の衛星が送信する測位情報を受信し、得られた測位情報をグランドマスタークロック装置100へ出力する。
グランドマスタークロック装置100は、時刻同期システム1の中枢となる時刻同期源であり、アンテナ200を介して測位システム900から受信した測位情報に基づいて時刻を検出し、検出した時刻に基づいて、時刻同期パケットの形式による時刻情報を生成してスレーブ装置400の各々へ送信する。グランドマスタークロック装置100は、時刻同期対象であるスレーブ装置400の時刻を測位システム900の時刻に同期させることを目的として、時刻情報のスレーブ装置400への送信を行う。なお、送信を送出とも称する。グランドマスタークロック装置100は、同期メッセージ送出装置の例に該当する。
トランスペアレントクロック装置300、L2スイッチ820は、いずれも、グランドマスタークロック装置100とスレーブ装置400との通信を中継する。
トランスペアレントクロック装置300は、グランドマスタークロック装置100からの時刻同期パケットを受信して送信先のスレーブ装置400へ送信する。その際、トランスペアレントクロック装置300は、送信時刻から受信時刻を減算してトランスペアレントクロック装置300内での遅延時間を算出し、算出した遅延時間を時刻同期パケット内に書き込む(打刻する)。当該時刻同期パケットを受信したスレーブ装置400では、時刻同期パケット内に書き込まれた遅延時間に基づく補正を行うことで、時刻同期に対するトランスペアレントクロック装置300における伝送時間の遅延(Delay)や揺らぎ(Jitter)の影響を低減させることができる。
一方、L2スイッチ820は、一般的な多ポートスイッチであり、時刻同期パケットの識別等の処理は行わない。時刻同期パケットがL2スイッチ820を通過するのに要する時間は、通信経路800における伝送時間の遅延や揺らぎの一因となる。
スレーブ装置400は、時刻同期システム1における時刻同期対象の装置である。スレーブ装置400は、通信経路800を介してグランドマスタークロック装置100から受信した時刻同期パケットを用いて、スレーブ装置400内部の時刻をグランドマスタークロック装置100内部の時刻に同期させる処理を行う。ここでいう装置内部の時刻とは、当該装置が備えるクロックを時刻同期パケットにて補正したものである。
図1に示す装置構成は、従来の時刻同期システムにおける装置構成と同様である。本実施形態において特別な装置を追加する必要は無く、後述するようにグランドマスタークロック装置100内部の構成が従来の時刻同期システムの場合と異なる。
また、時刻同期対象であるスレーブ装置400を識別するために、グランドマスタークロック装置100がスレーブ装置400にSMID(SYNC mesage ID)を付与する。SMIDは、スレーブ装置400毎に固有の値を有する整数の通し番号である。
但し、SMIDはスレーブ装置400内に保管されるものではなく、グランドマスタークロック装置100が、スレーブ装置400を識別するためにグランドマスタークロック装置100内部に記憶しておく。
本実施形態では、グランドマスタークロック装置100に、最大500台のスレーブ装置400を登録可能である場合を例に説明する。グランドマスタークロック装置100は、500台のスレーブ装置400に対して0〜499のSMIDを付与する。
但し、グランドマスタークロック装置100に登録可能なスレーブ装置400の台数は500台以下に限らない。グランドマスタークロック装置100が、1000台のslaveに対し時刻同期を実施する場合は、500台の場合よりもSMIDビットを1ビット増やすことで、SMIDを容易にスケールアップすることができる。なお、一台のグランドマスタークロック装置100が大量のスレーブ装置400を時刻同期する場合、通信経路800構成が複雑になり、トランスペアレントクロック装置300など時刻同期をサポートしたスイッチ以外のL2スイッチ820が多段に挟まる可能性がある点について留意が必要である。
なお、グランドマスタークロック装置100とスレーブ装置400との接続関係は、図1に示すものに限らない。例えば、グランドマスタークロック装置100とスレーブ装置400とが1対1で接続されていてもよい。また、グランドマスタークロック装置100とスレーブ装置400とが、トランスペアレントクロック装置300やL2スイッチ820を介さずに、単にネットワーク810を介して接続されていてもよい。
ここで、図2〜4を参照して、IEEE1588v2時刻同期プロセスによるグランドマスタークロック装置における時刻同期パケットの送信間隔の揺らぎについて説明する。一般には、グランドマスタークロック装置はIEEE1588v2時刻同期プロセスに従って動作する。
図2は、IEEE1588v2時刻同期プロセスにおける階層構造を示す説明図である。同図において、グランドマスタークロック装置1100とスレーブ装置1400とが示されており、グランドマスタークロック装置1100とスレーブ装置1400とは通信経路1800で接続されている。
また、グランドマスタークロック装置1100、スレーブ装置1400とも、5層の階層構造をなすプロトコルに従って動作する。5つの階層構造は下位から順に物理層(PHY層)、メディアアクセスコントローラ(Media Access Controller;MAC)層、インターネットプロトコル(Internet Protocol;IP)層、ユーザデータグラムプロトコル(User Datagram Protocol;UDP)層、プレシジョンタイムプロトコル(Precision Time Protocol;PTP)層である。メディアアクセスコントローラ層にはタイムスタンプユニット(Timestamp Unit;TSU)が含まれる。
グランドマスタークロック装置1100は時刻同期源であり、スレーブ装置1400は時刻同期対象である。グランドマスタークロック装置1100、スレーブ装置1400ともに、時刻同期に必要なプロトコルであるPTP層は最上位層に位置し、通常はCPU(Central Processing Unit、中央処理装置)にて処理が行われる。時刻同期パケットに関しても、PTP層の処理において一定間隔でスケジュールされたタイミングにて下位層に伝達される。
UDP層、IP層は、いずれもプロトコルスタック層であり、OS(Operating System)に実装される。PTP層にて生成される時刻同期パケットはUDPパケットであることから、通常、UDP層およびIP層を経由して更に下位層へと伝達される。
MAC層は、PTP層、UDP層およびIP層のプロトコルスタックによってカプセル化されたPTPパケットにMACアドレス情報の付与、FCS(Frame Check Sequence)演算処理等の処理を行い、また、物理層とのインタフェースとして機能する。また、MAC層に含まれるタイムスタンプユニットは、PTP層の重要な要素であるタイムスタンプを実施する。
IEEE1588v2が他の時刻同期方式に対して優位な点として、MAC層にタイムスタンプユニットを有することが挙げられる。これにより、PTP層から発行されたPTPパケットは、タイムスタンプの打刻に関して、MAC層より上位のPTP層、UDP層及びIP層における遅延(Delay)や揺らぎ(Jitter)の影響を受けない。
一方、従来のグランドマスタークロック装置では、パケットの送信タイミングについて、PTP層、UDP層およびIP層における遅延(Delay)や揺らぎ(Jitter)の影響を受ける。この点について図3を参照して説明する。
図3は、従来のグランドマスタークロック装置の構成例を示す概略ブロック図である。
同図において、グランドマスタークロック装置1100は、GNSS同期型周波数発振器(GNSSDO)1110と、物理層チップ(PHY)1120と、メディアアクセスコントローラ(Media Access Controller;MAC)部1130と、水晶振動子1150と、メインメモリ1160と、CPU(Central Processing Unit、中央処理装置)1170とを備える。GNSS同期型周波数発振器1110は、GNSS受信機1111と、クロック調整器1112と、水晶振動子1113とを備える。MAC部1130は、受信タイムスタンプユニット(Receive Timestamp Unit;RTSU)1131と、受信FIFO(First-in First-out)1132と、送信FIFO1133と、送信タイムスタンプユニット(Transmit Timestamp Unit;TTSU)1137と、プレシジョンタイムカウンターユニット(Precision Time Counter Unit;PRTCU)1142とを備える。CPU1170は、ハードウェア(HW)アクセス部1171と、ドライバ1172と、OS(Operating System)カーネル1173と、GNSS管理デーモン(GNSSD)1174と、プロトコルスタック1175と、Delayreq送出処理部1176と、Sync送出処理部1177と、スケジューラ(Scheduler)1178とメモリコントローラ1181とを備える。
CPU1170は、グランドマスタークロック装置1100が備える記憶デバイスからプログラムを読み出して実行することで、CPU1170内の各部を実現する。一方、GNSS同期型周波数発振器1110、物理層チップ1120、及びMAC部1130は、ハードウェアにて構成されている。
また、物理層チップ1120が物理層の処理を実行し、MAC部1130がMAC層の処理を実行し、CPU1170が、IP層、UDP層及びPTP層の処理を実行する。
グランドマスタークロック装置1100は、測位システムからの測位情報を受信するためのアンテナ(ANT)1200と接続されている。具体的には、アンテナ1200は、同軸ケーブルにてGNSS同期型周波数発振器1110と接続されており、受信した測位情報から抽出した時刻情報をGNSS同期型周波数発振器1110へ出力する。
GNSS同期型周波数発振器1110は、アンテナ1200から得たGNSSの信号から、ToD(Time Of Day、年・月・日・時・分・秒の時刻情報)、1PPS(正確な毎一秒を通知するパルス信号)、及び、125メガヘルツ(MHz)周波数信号を取得してグランドマスタークロック装置1100内部に提供する。
GNSS受信機1111はアンテナ1200にて受信するGNSS信号から時刻情報、及び、GNSSの航法情報を抽出する。そして、GNSS受信機1111は、GNSSの航法情報と、定期的にGNSSから送付される時刻情報とに基づいて、三角測量の原理で衛星の現在位置(衛星とグランドマスタークロック装置1100との相対位置)の特定を行う。現在位置が確定すると、GNSS受信機1111は、時刻情報の換算を実施する。
GNSSに含まれる時刻情報は、地上に配置されたセシウム原子時計により定期的に補正されているためGNSS信号から得られた時刻情報は非常に正確な時刻を示す。GNSS信号から得られた時刻情報は、いわば、この世で唯一の絶対時刻に同期していると見做すことができる。時刻情報は同時に周波数と位相に関する情報であるため、クロック調整器1112は、毎秒のパルスの投入を受けて水晶振動子1113に対して補正をかける。これにより、クロック調整器1112は、水晶振動子1113の周波数が125メガヘルツに高精度に一致するように補正をかける。なお、本実施形態では125メガヘルツを基本周波数とする場合を例に説明しているが、10メガヘルツまたは25メガヘルツ等、基本周波数を予め決定した周波数に置き換えることが可能である。
MAC部1130において、受信タイムスタンプユニット1131は、受信パケット(グランドマスタークロック装置1100が受信したパケット)に受信時刻を書き込む(受信タイムスタンプを打刻する)。
受信FIFO1132は、受信パケットを一時的に格納する。
送信FIFO1133は、送信パケット(グランドマスタークロック装置1100が送信するパケット)を一時的に格納する。
送信タイムスタンプユニット1137は、送信パケットに送信時刻を書き込む(送信タイムスタンプを打刻する)。
水晶振動子1150は、水晶振動子1113よりも周波数精度が低い水晶振動子である。水晶振動子1150は、CPU1170の基準クロックとして用いられる。
メインメモリ1160は、グランドマスタークロック装置1100が備える記憶デバイスを用いて構成され、各種情報を記憶する。
CPU1170において、ハードウェアアクセス部1171は、バスとドライバ1172とを接続し、ドライバ1172がハードウェアを制御する。バスは、一般にPCIバスまたはローカルバスにて提供される。
CPU1170は、ハードウェアアクセス部1171を経由してToDの取得及び送受信パケットのハンドリングを行う。送受信パケットのハンドリングにおいて、CPU1170は、送信パケットについては、OSカーネル1173から指示のあったメインメモリアドレスをメインメモリコントローラ1181に出力して、メインメモリ1160から送信パケット情報を読み込む。そして、CPU1170は、読み込んだ送信パケット情報をMAC部1130に出力する。CPU1170は、受信パケットについては送信パケットの場合と逆に、MAC部1130から受信したパケットを、メインメモリ1160の、OSカーネル1173が指示したメインメモリアドレスに蓄積する。
ここで、送受信パケット処理ではDMA(ダイレクトメモリアクセス)を利用してCPU1170の演算ユニットを利用することなく、メインメモリ1160およびメインメモリコントローラ1181とMAC部1130とで直接実施する方式が主流である。図3に示すグランドマスタークロック装置1100では、メモリコントローラ1181内にDMAが内蔵されており、このDMAを利用して送受信パケット処理を行う。
OSカーネル1173は、Linux(登録商標)やUNIX(登録商標)、windowsなどオペレーティングシステムの中枢であり、各種プロセスの実行管理を行うスケジューラ1178の制御やメモリ空間の割り当てなどを行う。
GNSSD1174は、GNSS同期型周波数発振器1110を制御する制御デーモンであり、GNSSから得たToD情報を元に、MAC部1130のプレシジョンタイムカウンターユニット1142の秒粒度以上の時刻合わせ、および、GNSS同期型周波数発振器1110の状態監視を実施する。具体的には、GNSSD1174は、GNSS同期型周波数発振器1110が前回行った時刻合わせ(水晶振動子1113の発振の補正)に基づいて時刻合わせを行う。そして、GNSSD1174は、GNSS電波の受信状況などによりGNSS同期型周波数発振器1110内の水晶振動子1113が自走状態(Holdover)になったことなどの状態変化を管理し、各プロセスからの被参照処理を実施する。
プロトコルスタック1175は、UDP、IPの各層の処理を実施する。プロトコルスタック1175は、OSカーネル1173と共にコンパイルされて実装されるか、あるいは、追加で導入することが可能である。ユーザがプロトコルスタック1175を実装する負担を軽減させるために、一般的には標準的なプロトコルが、OSカーネル1173と共にコンパイルされて実装されている。
スケジューラ1178は、上記のような各種プロセスの実行管理を行う。
Sync送出処理部1177は、スレーブ装置1400とPTPプロトコルにて事前に取り決め(ネゴシエーション)を行った同期間隔(Sync間隔、Sync interval)を基に、スケジューラ1178に対し、送信対象となるスレーブ装置のID(以下、スレーブIDと称する)を登録する。スケジューラ1178は、一定の粒度(例えば500us)にてスレーブID領域(スレーブ装置のIDが登録された領域)を参照し、スレーブIDが存在すれば、Sync送出処理部1177にスレーブIDを伝達する。Sync送出処理部1177は、当該スレーブIDに関する同期メッセージ(Synchronous message(Sync message))を時刻同期パケットにて生成し、プロトコルスタック1175に対して付加情報と共に出力する。
ここでスケジューラ1178の粒度が時刻同期システムに関して大きな問題となり得る。例えば、500usの粒度で同期メッセージを送出する時刻同期システムにおいて、1秒間に128個の同期メッセージを送出したい場合、正しい間隔は1/128=7,812マイクロ秒(μs)であり、500usの近傍である数値は8,000マイクロ秒又は7,500マイクロ秒となる。8,000マイクロ秒、7,500マイクロ秒のいずれも、正しい間隔である7,812マイクロ秒と差があり、この差によって揺らぎ(Jitter)が発生する。
また、CPU1170が、GNSSから抽出された時刻と同期する高精度の水晶振動子1113と同期していないこともjitterや一方向へのdelayを発生させる要因となり得る。さらにCPU1170は様々なプロセスを実行しているため、スケジューラ1178が指定する時刻にSync送出処理(同期メッセージの送出処理)を開始できる保証が無い。さらにSync送出タイミング(同期メッセージの送出タイミング)が到来した際に、既に同期メッセージ以外の一般メッセージのパケットの送信処理を実施していた場合には、その送出処理終了を待つ必要が生じる。
ここで、一般メッセージは、例えば、CPU1170において送出処理を実施する、例えば管理メッセージや後述するdelayrespメッセージなど、同期メッセージ以外のメッセージを示す。
Delayreq送出処理部1176は、グランドマスタークロック装置1100が、スレーブ装置からdelayreqメッセージ(delayreq message)を受信すると、受信時刻を記録し、記録した受信時刻をdelayrespメッセージ内に記録する。そして、Delayreq送出処理部1176は、IEEE1588v2規定のフォーマットにて、delayreqメッセージを送出したスレーブ装置に対してdelayrespメッセージ(delayresp message)を送出する処理を行う。このdelayrespメッセージは、スレーブ装置がネットワーク遅延時間を算出するのに用いられる。
上記のように、CPU処理には多数の揺らぎ要因があり、正確なSync interval(同期メッセージの送出間隔)を保つのは困難である。一方、MAC部1130は、受信FIFO1132及び送信FIFO1133と、GNSSと同等の正確な時刻源であるプレシジョンタイムカウンターユニット1142とによって、受信タイムスタンプユニット1131および送信タイムスタンプユニット1137にてPTPパケットに対し正確な時刻を打刻する。
物理層チップ(PHY)1120は、ネットワークを介してスレーブ装置1400と通信を行う。
図4は、従来のグランドマスタークロック装置が送出する同期メッセージにおける遅延および揺らぎの例を示す説明図である。同図において、横軸は時刻を表しており、図に向かって右側ほど後の時刻を示している。また、同図の縦には、同期メッセージ送出経路における各部を示している。
図4において、Sync送出処理部1177は、毎正秒(1PPS)等間隔で同期メッセージを送出するものとしてスレーブ装置1400とネゴシエーションしており、スケジューラ1178に対して1秒毎のタイミングで同期メッセージIDを書き込む。
なお、図4では、同期メッセージの送出間隔が1PPSである場合の例を示しているため、図3を参照して説明した粒度の問題については言及しない。
スケジューラ1178は、CPUの基準クロックである低精度の水晶振動子1150にて動作するため、スケジューラ1178の動作は絶対時刻軸に対して揺らぎを有する。すなわち、水晶振動子1150によるクロックの誤差により、スケジューラ1178が示す同期メッセージの送出タイミングは、1秒間隔に対して誤差を含み得る。
次に、スケジューラ1178が同期メッセージの送出タイミングを検出すると、Sync送出処理部1177が送出タイミングとなった同期メッセージをメインメモリ1160へと書き込む。この際、メインメモリ1160への書込による遅延が生じる。また、同期メッセージの書込中に他のプロセスが同一のメインメモリに対してアクセスすると、揺らぎ(Jitter)が発生し得る。
メインメモリ1160に格納された同期メッセージは、高精度の水晶振動子1113にて動作するMAC1130内のTTSU1137によって、グランドマスタークロック装置1100からの正確な送出時刻を打刻される。そして、送出時刻を打刻された同期メッセージは、グランドマスタークロック装置1100から送出される。
ここで、ネットワーク遅延をΔdelayi(iは、正整数)と表記すると、スレーブ装置1400に到達するパケットの到着時刻は、図中に示した「Δdelay1+100ns」、「Δdelay2+300,500ns」、・・・のように分散する。特に、ネットワーク遅延の揺らぎが小さい場合、グランドマスタークロック装置1100内で発生した揺らぎ成分が、同期メッセージの到着間隔に大きな影響を及ぼす。
また、図3を参照して説明した粒度の問題の問題が生じると、同期メッセージのスレーブ装置1400への到着間隔の精度がさらに低下する。
図5は、本実施形態の時刻同期プロセスにおける階層構造を示す説明図である。同図において、グランドマスタークロック装置100とスレーブ装置400とが示されており、グランドマスタークロック装置100とスレーブ装置400とは通信経路800で接続されている。
また、グランドマスタークロック装置100、スレーブ装置400とも、5層の階層構造をなすプロトコルに従って動作する。5つの階層構造は下位から順に物理層(PHY層)、メディアアクセスコントローラ(Media Access Controller;MAC)層、インターネットプロトコル(Internet Protocol;IP)層、ユーザデータグラムプロトコル(User Datagram Protocol;UDP)層、プレシジョンタイムプロトコル(Precision Time Protocol;PTP)層である。メディアアクセスコントローラ層にはタイムスタンプユニット(Timestamp Unit;TSU)が含まれる。
グランドマスタークロック装置100は時刻同期源であり、スレーブ装置400は時刻同期対象である。スレーブ装置400は時刻同期に必要なプロトコルであるPTPを最上位層にてCPUを用いて処理する。
一方、グランドマスタークロック装置100は、同期メッセージの送出処理を、CPUからプロファイルで指定された間隔、及び、スレーブ装置400に関する情報などに基づいて、MAC層内のプロセスにて実行する。このように、グランドマスタークロック装置100は、同期メッセージの送出処理をCPUから分離して実行する。
PTPはUDPパケットであることから、通常、OSに実装されたUDP、IPプロトコルスタックを経由して更に下位層へと伝達される。一方、同期メッセージに特化した場合、そのパケットのサイズ及びフィールド位置は全てのスレーブ装置400に対し一定であり、相手アドレスがスレーブ装置400毎に異なり、シーケンス番号やUDPチェックサム等が送信時に一意に決定するデータとなる。
グランドマスタークロック装置100は、MAC層において、PTP、UDP及びIPの各プロトコルスタックが出力する情報をプロファイルとして記憶する。その際、MAC層では、グローバルプロファイル、SMIDプロファイル(同期メッセージプロファイル)、SMテーブル(同期メッセージテーブル)に分割して記憶する。後述するように、グローバルプロファイルは、全てのスレーブ装置400に対して一定のデータを纏めたものである。また、SMIDプロファイルは、スレーブ装置400毎に異なるデータを纏めたものである。SMIDテーブルは、送信時に一意に決定するデータ(同期メッセージ毎に値が異なるデータ)を纏めたものである。
そして、グランドマスタークロック装置100はMAC層において、GNSSを起源とする極めて高精度のクロックによってスケジュールされた時刻に同期メッセージを送出することで、CPU層での処理による送出タイミングの揺らぎを排除し、一定の遅延のみで同期メッセージ送出を実現する。
図6は、本実施形態におけるグランドマスタークロック装置の構成例を示す概略ブロック図である。
同図において、グランドマスタークロック装置100は、GNSS同期型周波数発振器(GNSSDO)110と、物理層チップ(PHY)120と、メディアアクセスコントローラ(Media Access Controller;MAC)部130と、水晶振動子150と、メインメモリ160と、CPU(Central Processing Unit、中央処理装置)170とを備える。GNSS同期型周波数発振器110は、GNSS受信機111と、クロック調整器112と、水晶振動子113とを備える。MAC部130は、受信タイムスタンプユニット(Receive Timestamp Unit;RTSU)131と、受信FIFO(First-in First-out)132と、送信FIFO133と、Syncプロファイル記憶部134と、Sync生成部135と、Sync送出部136と、送信タイムスタンプユニット(Transmit Timestamp Unit;TTSU)137と、スケジューラ(Scheduler)141と、プレシジョンタイムカウンターユニット(Precision Time Counter Unit;PRTCU)142とを備える。なお、MAC部130の、より詳細な構成については後述する。
CPU170は、ハードウェア(HW)アクセス部171と、ドライバ172と、OS(Operating System)カーネル173と、GNSS管理デーモン(GNSSD)174と、プロトコルスタック175と、Delayreq送出処理部176と、Sync登録処理部177と、メモリコントローラ181とを備える。
CPU170は、グランドマスタークロック装置100が備える記憶デバイスからプログラムを読み出して実行することで、CPU170内の各部を実現する。一方、GNSS同期型周波数発振器110、物理層チップ120、及びMAC部130は、ハードウェアにて構成されている。
また、物理層チップ120が物理層の処理を実行し、MAC部130がMAC層の処理を実行し、CPU170が、IP層、UDP層及びPTP層の処理を実行する。
GNSS同期型周波数発振器110の構成及び機能は、図3のGNSS同期型周波数発振器1110の構成及び機能と同様であり、説明を省略する。
MAC部130において、受信タイムスタンプユニット131、送信タイムスタンプユニット137の機能は、それぞれ図3の受信タイムスタンプユニット1131、送信タイムスタンプユニット1137の機能と同様であり、説明を省略する。
また、水晶振動子150、メインメモリ160の機能も、それぞれ図3の水晶振動子1150、メインメモリ1160の機能と同様であり、説明を省略する。
CPU170は、図3のSync送出処理部1177及びスケジューラ1178に代えてSync登録処理部177を備える点以外は、図3のCPU1170と同様である。なお、CPU170もOSのスケジューラ機能を実行するが、同期メッセージの送出において、当該機能を直接には使用しないので、図6にはCPUのスケジューラを記載していない。CPU170は、一般メッセージ生成部の例に該当し、図6のCPU1170と同様、一般メッセージを生成する。
Sync登録処理部177は、スレーブ装置400とネゴシエーションを行った同期メッセージ間隔及び相手先アドレスなどを、ハードウェアアクセス部171を経由してMAC部130へと通知する。これにより、同期メッセージの送出に際してCPU170のスケジューラ機能を用いる必要が無くなる。このため、同期メッセージの送出において、低精度の水晶振動子150に起因する送出タイミングの揺らぎや、スケジューラ粒度に起因する送出タイミングの揺らぎが生じない。
またCPU170が、定期的な同期メッセージ送出処理から解放されることによりGNSSD処理,Delayreq送出処理など他処理に多くの時間を割くことが可能となり装置のパフォーマンス向上が期待できる。Delayreq送出処理部176の機能は、図3のDelayreq送出処理部1176の機能と同様であり、説明を省略する。
MAC部130は、Sync登録処理部177から指示を受け、Syncプロファイル記憶部134に、スレーブ装置400毎のSync特性を格納する。具体的には、MAC部130は、Sync interval(同期メッセージの送出間隔)、スレーブ装置400に至るアドレス情報、及び、同期メッセージを構成する各要素を取得し、Syncプロファイル記憶部134内の3つの要素に分解し格納する。3つの要素については後述する。
MAC部130は、さらにスケジューラ141を有し、スケジューラ141は、後述するようにSMIDを有する。SMIDは、7,812,500ナノ秒をさらに500分割した15,625ナノ秒間隔でカウントアップする。
スケジューラ141は、毎秒パルスである1PPS受信後はSMIDをカウントアップし、現時刻において送出すべき同期メッセージが存在するか否かをSMID_tabel内のnextIntervalとSYNCID counterとを比較することにより判定する。nextIntervalとSYNCID counterとが等しいと判定した場合、スケジューラ141は、sync送出パルス(Transmit pulse)をSync送出部136に対して出力する。
スケジューラ141は、スケジューラ部の例に該当する。
Sync生成部135は、CPU170のSync登録処理部177が予め設定した、同期メッセージを構成する3つの要素をマージ処理して同期メッセージを生成し得られた同期メッセージをSync送出部136に提示する。Sync生成部135は同期メッセージ生成部の例に該当する。
Sync送出部136は、後述する3方式のいずれかにより、同期メッセージの送出を行う。Sync送出部136は、送出部の例に該当する。
なお、同期メッセージの送信を行う部分はMAC部130に限らない。例えば、MAC部130とは別のFPGAにて同期メッセージの送信を行う部分を構成するようにしてもよい。この場合、下位側の層から順に物理層チップ、FPGA、MACという構成になり、FPGAでタイムスタンプの打刻を行う。
図7は、本実施形態におけるグランドマスタークロック装置が送出する同期メッセージにおける遅延の例を示す説明図である。同図において、横軸は時刻を表しており、図に向かって右側ほど後の時刻を示している。また、同図の縦には、同期メッセージ送出経路における各部を示している。
図7において、Sync登録処理部177は、毎正秒(1PPS)等間隔で同期メッセージを送出するものとしてスレーブ装置400とネゴシエーションしており、MAC部130のSyncプロファイル記憶部134に、送信間隔、同期メッセージを構成する各要素を登録する。CPU170が同期メッセージの送出に関して行う処理は、Syncプロファイル記憶部134への登録処理に限定される。これにより、CPU170は、その他のPTP処理並びに装置管理に必要なプロセスの実行に専念することができる。
1PPSでの同期メッセージの送出は、SYNCプロファイル記憶部134に登録され、しかも後述するSMID(Sync message ID)単位でプロファイルを管理する。MAC部130では、GNSSを起源とする高精度の水晶振動子113によって内部の論理回路が動作する。MAC部130は、SMIDを定期監視するとともに、送出すべきSMIDが存在する場合に同期メッセージを組み立て、送出を実施する。
Sync送出部136は、後述する3つのルールのいずれかに基づいて同期メッセージの送出処理を行う。特に、後述する強制廃棄方式および送信時刻予約方式では、毎正秒に同期メッセージを送出することが可能となる。従ってグランドマスタークロック装置100における同期メッセージ送出タイミングの揺らぎ成分が無くなり、スレーブ装置400に対して通信経路における遅延成分や揺らぎ成分のみで同期メッセージを伝達することが可能になる。特に、通信経路における遅延成分Δdelayi(iは正整数)が一定である場合、同期メッセージが正確に一定間隔でスレーブ装置400に到達する。このように、CPUにおける揺らぎ成分を排除することで、スレーブ装置400における時刻精度の向上と時刻同期時間の短縮を図ることか可能となる。
図8は、IEEE1588v2の同期メッセージのフォーマットを示す説明図である。同図では、横方向に32ビット(bit)、つまり4バイト(BYTE)を示しており、左端のビットから回線に送出される。
また、同図の下方向に向けては、32ビットの集合が連続したデータとして表しており、上の行のデータから下の行のデータへと順に、回線に送信される。
また、同図の左端に記載している1、5、9、・・・は、32ビットの集合の左端、すなわち、ネットワークに最初に送出されるバイト位置を示している。例えば、上から1行目の左端のビットは、1バイト目に含まれており、上から2行目の左端のビットは、5バイト目に含まれている。
図8に示されるように、同期メッセージはFCS(Frame Check Sequence)を含まない場合で86バイトの固定長である。VLAN tagなどでその長さが変更になる可能性はあるが、グランドマスタークロック装置100内において固定長となる。
同期メッセージは複数のプロトコルにて構成される。
Ether headerはEthernet(登録商標)を伝搬するすべてのパケットに付与される領域であり、宛先MACアドレスであるMAC−DA、送信元MACアドレス(グランドマスタークロック装置100のMACアドレス)であるMAC−SA、継続するプロトコル種別を示すEtherTypeで構成される。なお同期メッセージの場合はIPv4であるため、Ethertype=0x0800で固定である。
IP headerはIPのバージョン番号(version、=4)、IPヘッダ長(length、=5)、サービス・タイプ(TOS)、データグラム長(data length、=72)、ID(ランダム値)、フラグフィールド(flag)およびフラグメントオフセット(fragment offset、=0x00)、TTL(=1)、プロトコル番号(protocol No、=17:UDP)、ヘッダチェックサム(header checksum、IPヘッダ部のチェックサム値、計算方式はRFC1071にて規定されている)で構成される。
UDP headerは、送信元(グランドマスタークロック装置100)UDPポート番号(UDP-SP、=319:IEEE1588v2にて規定されている固定値)、相手先(スレーブ装置400)UDPポート番号(UDP-DP、=319:IEEE1588v2にて規定されている固定値)、UDPパケット長(UDP-length、=52)、UDPチェックサム(UDP-checksum、UDP疑似ヘッダ12byte+UDPヘッダ+UDPペイロード)の3つの部分の1の補数の和によって算出される値である。なおUDPチェックサムの値を0とすることで、相手先装置にてUDPチェックサム計算が無効化されチェックが実施されない。グランドマスタークロック装置の実装においてはタイムスタンプがリアルタイムに変化するため、UDPチェックサム領域を0とする実装が簡易であり多くグランドマスタークロック装置やソフトウェアベースのグランドマスタークロック装置に実装されている、しかしながらネットワーク上もしくは装置内の何らかの問題で時刻同期において最も重要なタイムスタンプの信頼度を損なうことは望ましくない。そこで、グランドマスタークロック装置100は、パケット毎にUDPチェックサムを演算し、UDPチェックサム領域内に格納する。
PTP headerは、IEEE1588v2にて規定された時刻同期パケット用のヘッダフォーマットであり同期メッセージも含まれる。Transmitspecificは今後の拡張のためにグランドマスタークロック装置100の管理者が自由に設定可能な4ビット値である(default=1)。メッセージタイプ(MessageType)は同期メッセージである(=0)。versionPTPは本願ではPTPv2を前提としているため(=2)である。
message lengthは、同期メッセージの場合(=44)固定である。domain Numberは、グランドマスタークロック装置が所属する時刻同期グループ=ドメインをグランドマスタークロック装置の管理者が設定する。FlagFieldはグランドマスタークロック装置の特性を設定するフィールドでありグランドマスタークロック装置の管理者が設定する。correction Fieldは、グランドマスタークロック装置では使用しない領域である。clockIdentityは、グランドマスタークロック装置を一意に示す識別子でありネットワーク上に複数のグランドマスタークロック装置が存在する場合等に有効な領域であるIEEE1588v2において、MACSAつまりネットワーク上に1個しか存在しないMACアドレスを3バイト毎に分割し、その間にFF−FFを挿入することで計8バイトとすることが規定されている。sourcePortIDはグランドマスタークロック装置の何番目のポートから出力されたメッセージであるかを示す領域である。sequenceIDは同期メッセージの送信に対しシーケンシャルに振られる番号であり、単一のスレーブ装置から見た場合、1ずつインクリメント(increment)するように見える。このIDにおいて同期メッセージの抜けを発見し何らかの対処をすることが可能となる。また経路によるIDの逆転など時刻同期を阻害する要因を削除することが可能となる。controlFieldは同期メッセージを表す(=0)。logMessagePeriodは、通常は0である。同期メッセージ payloadは同期メッセージの場合、originTimestampで構成される。originTimestampは、48ビットの秒領域と、32ビットのナノ秒領域で構成され、originTimestampは同期メッセージがグランドマスタークロック装置100から送出される際にGNSSを起源とする絶対時刻を打刻する領域である。以上のように同期メッセージが送付したい情報である時刻情報以外にも多数の情報を送付する必要がある。また、図8では、生成する情報を4種類に分類している。第1は、同一のグランドマスタークロック装置から送信する全ての同期メッセージで同一の値になる領域である。第2は、同一のグランドマスタークロック装置から送付され、かつ、同一のスレーブ装置に送出する同期メッセージで同一の値となる領域である。第3は、同期メッセージ毎に異なる値を有する領域である。第4は、リザーブ領域であり将来の拡張用である。
図9は、Syncプロファイル記憶部134(グローバルプロファイル記憶部134−1)が記憶するグローバルプロファイル(Gloval profile)のデータ構造の例を示す説明図である。
グローバルプロファイルは、図8に示す各領域のうち、同一のグランドマスタークロック装置から送信する全ての同期メッセージで同一の値になる領域(第1の領域)のデータを纏めたものである。
図9に示す48バイトは、リザーブ領域(RSVD)も含めて常に同一の値(各同期メッセージに共通の値)であり、Syncプロファイル記憶部134は、1つのグローバルプロファイルを記憶する。単一のメモリ領域で管理することは装置コストの面から有効な手段である。
例外は、ID(random value)領域であり、ID(random value)領域の値は毎パケット異なる。ID(random value)領域の値は文字通りランダムであり一意の値をGloval profile内に保持する必要は無い。ただし、図9の例では、ランダム値を生成するseed値(初期値)を設定するなどの利用のために領域を確保している。なお、ID(random value)領域のランダム値生成方式として、公知のランダム値生成方式を用いることができる。
図10は、Syncプロファイル記憶部134(SMIDプロファイル記憶部134−2)が記憶するSMIDプロファイル(SMID_profile)のデータ構造の例を示す説明図である。
SMIDプロファイルは、図8に示す各領域のうち、同一のグランドマスタークロック装置から送出され、かつ、同一のスレーブ装置に送出される同期メッセージで同一の値となる領域(第2の領域)のデータを纏めたものである。なお、図10に示すように、リザーブ領域(RSVD)を含んでいる。
Syncプロファイル記憶部134は、スレーブ装置400毎にSMIDプロファイルを記憶する。図10に示すSMIDプロファイルは、28バイトで構成されている。500個のスレーブ装置400を時刻同期する場合、Syncプロファイル記憶部134は、28×500=14,000バイトの領域を用いてSMIDプロファイルを記憶する。
図11は、Syncプロファイル記憶部134(SMIDテーブル記憶部134−3)が記憶するSMIDテーブル(SMID_table)のデータ構造の例を示す説明図である。
SMIDテーブルは、図8に示す各領域のうち、同期メッセージ毎に異なる値を有する領域(第3の領域)のデータを纏めたものである。なお、図11に示すように、リザーブ領域(RSVD)を含んでいる。
図11に示すSMIDテーブルは、8バイトで構成されている。500個のスレーブ装置400を時刻同期する場合、Syncプロファイル記憶部134は、8×500=4,000バイトの領域を用いてSMIDテーブルを記憶する。
以上より、Syncプロファイル記憶部134がGloval profile、SMIDプロファイル、及びSMIDテーブルを記憶するのに必要な記憶容量は式(1)で求めることができる。
48+14,000+4,000=18,048(バイト) ・・・ (1)
約18キロバイト(k BYTE)の領域は昨今のメモリ技術においては極めて小さく、ASICやFPGA内に搭載するにあたって障害とならない。
図12は、MAC部130の機能構成を示す概略ブロック図である。同図において、MAC部130は、受信タイムスタンプユニット(RTSU)131と、受信FIFO132と、送信FIFO133と、Syncプロファイル記憶部134と、Sync生成部135と、Sync送出部136と、送信タイムスタンプユニット(TTSU)137と、SYNCメッセージFIFO139と、スケジューラ141と、プレシジョンタイムカウンターユニット(PRTCU)142とを備える。Syncプロファイル記憶部134は、グローバルプロファイル記憶部134−1と、SIMDプロファイル記憶部134−2と、SMIDテーブル記憶部134−3とを備える。
MAC部130は、GNSSを起源とする高精度の1PPS(秒パルス)および125メガヘルツのクロック信号を受信する。そして、MAC部130の内部の各プロセスは、125メガヘルツにて極めて正確なタイミングで動作を行う。またToDは日付および時刻情報である。
プレシジョンタイムカウンターユニット142は、装置内時刻源であり、現在時刻の年月日時分秒の情報を48ビットで記憶するSec領域と、125メガヘルツの逆数である8ナノ秒を最小単位として秒未満の時刻情報を30ビットで記憶するNsec領域とを有する。プレシジョンタイムカウンターユニット142は、ToDを取得して秒情報を確定し、125MHzの逆数である8nsにてNsec領域をカウントアップする。また、プレシジョンタイムカウンターユニット142は、1PPSパルスにてNsecカウンターを0リセットし毎正秒にてNsecを微調整する機構を有する。プレシジョンタイムカウンターユニット142によって生成された秒情報、ナノ秒情報は受信タイムスタンプユニット(RTSU)131及び送信タイムスタンプユニット(TTSU)137に通知され同期メッセージ生成時にoriginalTimestamp領域に打刻される。
Syncプロファイル記憶部134はDPRAM(デュアルポートRAM)にて構成されている。これにより、CPU170とMAC部130の各プロセスとが、非同期にSyncプロファイル領域134にアクセスすることによる待ち合わせを排除することができる。Syncプロファイル記憶部134は、図9、図10及び図11にて前述したグローバルプロファイル、SMIDプロファイル<0〜499>およびSMIDテーブル<0〜499>を記憶するメモリ空間である。具体的には、グローバルプロファイル記憶部134−1は、グローバルプロファイルを記憶する。SMIDプロファイル記憶部134−2は、SMIDプロファイルを記憶する。SMIDテーブル記憶部134−3は、SMIDテーブルを記憶する。
Syncプロファイル記憶部134へのアクセスでは、CPU170が、アドレス(ADDR)およびデータ(DATA)を指定して各データの書込を行う。CPU170が書き込んだデータは、MAC部130の各プロセスからは固定値として扱われる。また、リード機能を利用することで現在の同期メッセージの送出状態を監視することが可能である。
受信FIFO132は、物理層チップ120がネットワーク810から受信したPTPおよびPTP以外のパケットを記憶するメモリ空間である。受信FIFO132は、受信タイムスタンプユニット131から到達した受信データを、DataEnable(データ有りを示す信号)がアサート(assert)されている間FIFO形式で格納する。また、受信FIFO132はEmptyFlagを有し、データが存在する場合、EmptyFlagをネゲート(negate)する。これにより、有効な受信データが存在することをCPU170に伝達することができる。
CPU170は、EmptyFlagを定期的に監視し(低精度の水晶振動子150を用いた)CPUクロックに同期して、受信DATAのCPU170への取込処理を行う。なお、CPU170が取得するデータは、PTP以外にも様々なものがあってもよい。
送信FIFO133は、CPU170がMAC部130へ出力するパケットを保存するメモリ空間である。CPU170がMAC部130へ出力するパケットは、同期メッセージ以外のパケット(一般メッセージのパケット)である。CPU170は、FullFlagがネゲートされている場合に、送信DATAを送信FIFO133に対して出力する。一方、FullFlagがアサートされている場合、CPU170はパケット送出処理を行わず、送出すべきデータをメインメモリ等に保管する。送信FIFO133はまた、EmptyFlag、ReadPulse、送信DATAの各パスにてSync送出部136と接続される。
Sync送出部136は、同期メッセージが存在しない場合にはReadPulse(FIFOからデータを読み込むための信号)を出力し、送信DATAの読み込みを実行する。
SYNCメッセージFIFO139は、同期メッセージのみが格納される領域でありSync生成部135が生成した同期メッセージを格納する。SYNCメッセージFIFO139が格納する同期メッセージは、常に1個以下である。また、SYNCメッセージFIFO139は、EmptyFlag、ReadPulse、送信DATAにてSync送出部136と接続される。SYNCメッセージFIFO139は、EmptyFlag(データ無しを示す信号)がアサートされた際にSync送出部136のルールに従っていずれかの時刻タイミング後にReadPulseに従って送信DATAを送出する。
スケジューラ141は、1秒/128でカウントアップするSYNCIDを備える。SYNCIDは、同期メッセージ送出におけるSyncIntervalと対応する。
また、スケジューラ141は、SYNCIDの1サイクルをさらに500に分割したタイミングでカウントアップするカウンターであるSMIDを備える。
また、スケジューラ141は、SMIDの値を、SMIDテーブルのアドレス及びSMIDプロファイルのアドレスへと変換し、アドレス情報をSyncプロファイルに設定する。スケジューラ141は、アドレスが決定したSMIDテーブルから、nextInterval情報、syncIntervalおよびsequenceIDを読み出す。nextIntervalがSYNCIDと一致した場合、スケジューラ141は、同期メッセージを送出するタイミングであると判定し、TransmitPulseをSync生成部135およびSync送出部136に対して出力する。また、nextIntervalがSYNCIDと一致した場合、スケジューラ141は、nextIntervalの値とsequenceIDの値とを更新する。具体的には、スケジューラ141は、nextIntervalの値を、syncIntervalの値から算出した次回の送出タイミングに更新する。また、スケジューラ141は、sequenceIDに1をインクリメントした数値をSMIDテーブルに対して書き込む。
ここで、nextIntervalは、スレーブ装置400毎に設定されている同期メッセージ送出間隔に対応するための情報である。同期メッセージ送出間隔が128PPSに設定されているスレーブ装置400に対しては、グランドマスタークロック装置100は、SyncIDが1インクリメントする間隔と同じ間隔で同期メッセージを送出すればよい。一方、同期メッセージ送出間隔が64PPSに設定されているスレーブ装置400に対しては、グランドマスタークロック装置100は、SyncIDが2インクリメントする間隔と同じ間隔で同期メッセージを送出する必要がある。
そこで、スケジューラ141はスレーブ装置400毎にSyncプロファイル記憶部134に格納しているnextIntervalとSMIDとを比較する。nextIntervalの値とSMIDの値とが同じであると判定した場合、スケジューラ141は、同期メッセージを送出するタイミングが到来したと判定する。
さらに、スケジューラ141は、スレーブ装置400毎にSyncプロファイル記憶部134に格納しているsyncIntervalから次回の送出タイミングを算出しnextIntervalに書き込む。128PPSが規格上の最小間隔であるため、算出式を128÷SyncIntervalとし、現在のnextInterval値に上記算出結果を加算することとする。
例えば、同期メッセージ送出間隔が64PPSに設定されているスレーブ装置400の場合、128÷64=2となり、nextIntervalに記憶されていた値に2を加算しnextInterval領域への書き込み(更新)を行う。
また、同期メッセージ送出間隔が32PPSに設定されているスレーブ装置400の場合、128÷32=4となり、nextIntervalに記憶されていた値に4を加算しnextInterval領域への書き込み(更新)を行う。
Sync生成部135は、スケジューラ141からのTransmit pulseを受信すると、SMIDテーブルおよびSMIDプロファイルからデータを読み出す。なお、アドレスについては既にスケジューラ141にて決定しているため、読み出す必要は無い。また、Sync生成部135は、全ての同期メッセージに共通のグローバルプロファイルを読み出し、図8にて示した同期メッセージを組み立てる。組み立て処理は単純なフィールドの移動のみで完了する。またID領域に関してはランダムの値が期待されるので、Sync生成部135は、ランダム値ジェネレータにてランダム値を挿入する。Sync生成部135が用いるランダム値ジェネレータは、ランダム値を生成可能なものであればよく、公知のランダム値ジェネレータを用いることができる。
Sync生成部135は、同期メッセージの組み立てが完了すると、直ちに当該同期メッセージをSYNCメッセージFIFO139へ出力する。
Sync送出部136は、同期メッセージ送信ルール(Sync transmit rule)をCPU170から設定可能なレジスタ領域を有する。当該レジスタにて、(1)強制廃棄方式(Discard)、(2)高優先送出方式(H.Priority)、(3)送信時刻予約方式(Reserved)の3種の送出方式のいずれかを設定可能である。同期メッセージ送信ルールの設定は、例えば、グランドマスタークロック装置100の管理者が、グランドマスタークロック装置100を適用するネットワークの特性を考慮して行う。
(1)強制廃棄方式では、同期メッセージの送出タイミングが到来すると、現在送信中の全ての同期メッセージ以外のパケット(一般メッセージのパケット。以後、CPUパケットと称する)の送出を中断して同期メッセージを送出する方式である。送出を中断したパケットについては、当該パケットの終了まで廃棄処理を行う。
相手装置はエラーを検知するが上位層による再送が期待できる場合に、特に有効な方式である。
(2)高優先送出方式では、同期メッセージの送出タイミングが到来すると、現在送信中のCPUパケットが完了するのを待ち、次回の送出では必ず同期メッセージを送出する。仮にCPUパケットが連続して発行されている場合においても最優先で同期メッセージを送信する。
(3)送信時刻予約方式では、CPUパケットの最大値がEthernet(登録商標)の規定で1518バイトと決まっていることに着目して、同期メッセージの送出タイミングから1518バイト分前(実際にはIFGやFCSが存在するため1542オクテット(octet)時間前)の時刻になると、新たなCPUパケットの送出を抑制する。これにより、1542オクテット経過後に、確実に同期メッセージを送出することができる。なお、1542オクテットは一般メッセージの送出に要する時間として規定されている規定時間の例に該当する。また、CPUパケットは、同期メッセージ及び一般メッセージの例に該当する。
送信時刻予約方式では、1542オクテット時間が経由した時点で同期メッセージの送出を開始することで、メッセージの送出間隔は常に一定となる。時刻同期においては、メッセージの到着速度は問題ではなく、メッセージの間隔ならびにメッセージ内のタイムスタンプの正確度が重要であるため、送信時刻予約方式が有効である。また、送信時刻予約方式では同期メッセージが存在する場合にのみCPUパケットの送出を停止するため、スレーブ装置400の台数が少ない場合など、同期メッセージの送出間隔(Sync interval)が長い場合でも、CPUメッセージを効率的に送出することができる。
なお、ここでは一般メッセージの送出に要する最長時間を規定時間としているが、これに限らず、規定時間は一般メッセージの送出に要する時間であればよい。この場合でも、同期メッセージの送出間隔は一定となる。
受信タイムスタンプユニット131は、受信した時刻同期パケットに対し、プレシジョンタイムカウンターユニット142から得た時刻情報を打刻する処理を行う。
送信タイムスタンプユニット137は、送信する時刻同期パケットに対し、プレシジョンタイムカウンターユニット142から得た時刻情報を打刻する処理を行う。
受信タイムスタンプユニット131、送信タイムスタンプユニット137共に、時刻同期パケットを認識して時刻情報を打刻する。同期メッセージも時刻同期パケットであることから、送信タイムスタンプユニット137は、同期メッセージにも正確な時刻情報を打刻する。
物理層チップ120は、ネットワーク810の物理インタフェースと、MAC部130の物理インタフェースとの変換処理を行う。
図13は、同期メッセージのデータ構造の例を示す説明図である。同図に向かって左がMSBであり、ネットワーク810に対して最初に送信されるデータである。Ethernet(登録商標)の規定でインターフレームギャップ(IFG)は最低12オクテット必要である。インターフレームギャップは、フレーム間を分離するために設けられている。
preamble+FSDは7オクテットのpreambleと1オクテットのFSD(フレームスタートデリミタ)にて構成されている。preamble+FSDは、それ以後、Etherパケットのペイロードがスタートすることを示すフラグ領域である。
IEEE1588v2同期メッセージ(Sync messasge)は、IEEE1588v2にて規定されたフォーマットの同期メッセージが格納される領域である。IEEE1588v2同期メッセージは、図8で示した複数の要素によって構成され、時刻情報をグランドマスタークロック装置100からスレーブ装置400に対して伝達する。IEEE1588v2同期メッセージのサイズは固定長であり、UDPで同期メッセージを構成す場合は86バイトである。
FCSはフレームチェックシーケンスであり、Etherパケットのデータ領域から一意に算出されるチェックサム領域である。FCSは、伝送路上で何らかの障害が発生し、パケットのデータ領域を信頼できない場合に、当該パケットを破棄できるように設けられている。また、FCSは回線の品質を示す指標として用いられることもある。
同期メッセージの要素を全て合わせると110オクテットのサイズとなる。また1オクテットは8ビットにて構成されるため、110オクテットは880ビットとなる。ここで880ビットがどの程度帯域に対する影響を及ぼすかを換算するために、10ギガビット毎秒(Gbps)、1ギガビット毎秒それぞれの回線レートで送信した場合のパケット占有時間を算出すると、10ギガビット毎秒の場合は88ナノ秒、1ギガビット毎秒の場合は880ナノ秒となる。ここで、同期メッセージは秒間最大128回発行可能であることがITU−T G.8265で規定されており、1秒/128回=7,812,500ナノ秒の間隔となる。従って、単一のスレーブ装置400に対して時刻同期を行う場合、10ギガビット毎秒、1ギガビット毎秒のいずれの回線レートにおいても問題なく同期メッセージを送出可能である。
図14は、複数のスレーブ装置400が存在するネットワークにおける同期メッセージの送出間隔の例を示す説明図である。同図では、同期メッセージの送信間隔のワーストケースを示している。具体的には、最もネットワーク帯域がひっ迫する場合の例を示している。上記のように、各同期メッセージは、最短で7,812,500ナノ秒の間隔となる。図14では、この同期メッセージを500個のスレーブ装置400に対して送出するケースを示している。
7,812,500ナノ秒をさらにスレーブ装置400の数である500に分割する。1つのスレーブ装置400に割り当て可能な同期メッセージの送信間隔は、7,812,500ナノ秒÷500=15,625ナノ秒である。この15,625ナノ秒を同期メッセージに関する最小時間間隔として定義する。図13を参照して説明したパケット占有時間のうち、回線速度が最も低速であり1つの同期メッセージの送信時間が最長となる1ギガビット毎秒においても、15,625ナノ秒>880ナノ秒となる。従って、同期メッセージに着目した場合、帯域を確保可能である。ただし、同期メッセージ以外の通信量に応じて、グランドマスタークロック装置100が一度に制御するスレーブ装置400の数×各スレーブ装置400のSYNC intervalの積を適切な値に配分することが必要である。なお、SYNC intervalは、スレーブ装置400毎に設定可能である。
図14では、1秒の最初に1番目のSyncスロットにSyncID0を割り当て、最大127までSyncIDがカウントアップする。SyncIDは、127となった後0になる。また同期メッセージを送出するタイミングを生成するためにSMIDを導入し、各SMIDと対応付けて、スレーブ装置400に関する情報を格納するエリアを設ける。
SMIDは0〜499の正整数の値をとり、15,625ナノ秒でカウントアップする構成とする。なお、同一のスレーブ装置400に対する同期メッセージ情報には、必ず同一のSMIDを対応付ける必要がある。どのSMIDを利用するかは例えば、グランドマスタークロック装置100の管理者が決定する。同期メッセージ間隔を一定にするために1つのスレーブ装置400に対応するSMIDは一意である必要がある。
なお、SyncIDは、第1カウンターの例に該当する。SMIDは、第2カウンターの例に該当する。
図15は、SMIDテーブルのデータ構造の例を示す説明図である。
SMIDテーブルはSMIDを登録する11ビットの領域と、同期メッセージの送信間隔であるSyncInterval領域と、当該SMIDに該当する同期メッセージを送出した際に次回の送出タイミングを決定するためのNextIntervalと、1ずつデータがインクリメントされるsequenceIDとを含んで構成される。NextIntervalは、128÷SyncIntervalによって決定される値であり同期メッセージの送出後にアップデートされる。sequenceIDは読み込んだ値に1インクリメントして書き込まれるだけである。スレーブ装置400では、このsequenceIDを用いてSYNC messgeの抜けや順序逆転が生じていないことを確認するために利用する。
図16は、スケジューラ141の動作の例を示す説明図である。スケジューラ141はハードウェアで構成されており、図16のステップS101〜S110の処理と、ステップS120〜S130の処理とを並列に実行する。
プレシジョンタイムカウンターユニット142からの毎秒パルスを取得すると、スケジューラ141は、ステップS101を実行する。ステップS101では、スケジューラ141は、SyncID、SMID、SMID.counterの3つのカウンターの0クリアを実行する。SMID.counterは、SMIDを1インクリメントするタイミングを検出するためのカウンターである。
ステップS102では、スケジューラ141は、同期メッセージを送信するタイミングが到来したか否かを判定する。具体的には、スケジューラ141は、SMID.counterの値が、SMIDの時刻境界である15,625ナノ秒か否かを判定する。SMID.counterの値が時刻境界であることは、同期メッセージを送信するタイミングであることを示している。
時刻境界であると判定した場合(ステップS102:YES)、ステップS103にて、スケジューラ141は、SMIDを1インクリメントする。これにより、次のSMIDの処理へと移行する。
ステップS104では、スケジューラ141は、SMID.counterを0クリアし、ステップS120での処理のためにSMIDpulseを発生させる。このSMIDpulseは同期メッセージを送出する最小周期(128PPS)が経過したことを示している。ステップS104の後、ステップS105へ遷移する。
一方、ステップS102において、SMID.counterが15,625ナノ秒に達していないと判定した場合(ステップS102:NO)、スケジューラ141は、ステップS110にて、SMID.counterを1インクリメントし、ステップS102へ遷移する。
ステップS105では、スケジューラ141は、SMIDがその最大値である499に達したか否かを判定する。
SMIDが499に達していないと判定した場合(ステップS105:NO)、まだ未処理のSMIDが存在するためステップS102へ遷移する。
一方、SMIDが499に達していると判定した場合(ステップS105:YES)、全てのSMID処理を完了したことを意味するので、スケジューラ141は、ステップS106にて、SMID=0つまり初期値に設定する。
ステップS107では、スケジューラ141は、SyncIDを1インクリメントする。これにより、次のSyncIDの処理へ進む。
ステップS108では、スケジューラ141は、全てのSyncID処理が完了したか否かを判定する。具体的には、スケジューラ141は、SyncIDが127か否かを判定する。
SyncIDが127であると判定した場合(ステップS108:YES)、ステップS109にて、スケジューラ141は、SyncID=0とする。ステップS109の後、ステップS102へ遷移する。
一方、ステップS108において、SyncIDが127以外であると判定した場合(ステップS108:No)、処理すべきSyncIDが存在するため、ステップS102へ遷移する。
ステップS120では、スケジューラ141は、SMIDpulseが発生しているか、つまり同期メッセージ送出タイミングが到来しているか否かを判定する。
同期メッセージ送出タイミングが到来していると判定した場合(ステップS120:YES)、ステップS121へ遷移する。
ステップS121では、スケジューラ141は、DPRAMのアドレスを、該SMIDが格納されている先頭アドレスへと変換する。
ステップS122では、スケジューラ141は、先頭アドレスが確定したオフセット値を元にNextIntervalを取得する。
ステップS123では、スケジューラ141は、ステップS122で取得したNextIntervalとSyncIDとが同じか否かを判定する。同じではないと判定した場合(ステップS123:No)、ステップS120へ遷移する。これにより、SMIDpulse待ち状態になる。
一方、SyncIDとNextIntervalとが同じであると判定した場合(ステップS123:Yes)、同期メッセージを送出するタイミングであり、ステップS124へ遷移する。
ステップS124では、スケジューラ141は、SMIDテーブルよりSyncIntervalを読み込む。
ステップS125では、スケジューラ141は、現在のNextIntervalを更新するために128÷SyncIntervalを演算する。
ステップS126では、スケジューラ141は、NextIntervalに128÷SyncIntervalを加算した値をSMIDテーブルに書き込む。なお、加算の結果、NextIntervalの値が127よりも大きくなった場合は、当該値から128を減算した値を、SMIDテーブルに書き込む。
ステップS127では、スケジューラ141は、SMIDテーブルからsequenceIDを読み込む。
sequenceIDは1ずつインクリメントされることがIEEE1588v2にて規定されているため、ステップS128では、スケジューラ141は、sequenceIDのインクリメント処理を行う。
ステップS129では、スケジューラ141は、sequenceIDをSMIDテーブルへ書き戻す。
以上で一連の同期メッセージに関する処理が完了したので、ステップS130において、スケジューラ141は、同期メッセージ送信PulseをSync生成部に送信し、ステップS120へ遷移する。
図17は、同期メッセージ送出時のデータの流れの例を示す説明図である。
同図において、送信FIFO133は、グランドマスタークロック装置100からの全ての送信パケットのうち同期メッセージ以外のパケット(CPUパケット)が一時格納されるFIFOメモリである。
各パケットでは、パケット情報に加えてSOF(スタートオブフレーム)、EOF(エンドオブフレーム)を前後に付けることでパケット間の切れ目を明確にしている。
TFIFO.EmptyFlagは送信FIFO133が空の状態を通知するフラグである。
TFIFO.ReadPulseは、FIFOのリード側のビット幅(以後1ライン)を読み込むための1クロック(CLK)のパルス信号である。連続してデータを送出する場合は、TFIFO.ReadPulseを連続してアサートする場合もある。
TFIFO.DATAは、TFIFO.ReadPulseのパルス信号の1サイクル後に出力される、EOF、SOFもしくは同期メッセージ以外のパケットデータである。
SYNCメッセージFIFO139は、同期メッセージが格納される領域である。具体的には、SYNC生成部135が生成した同期メッセージが、SYNCメッセージFIFO139に格納される。
SFIFO.EmptyFlagは、同期メッセージの有無を示すフラグである。
SFIFO.ReadPulseは、TFIFO.ReadPulseと同一の動作をSYNCメッセージFIFOに対して行うリードパルスである。
SFIFO.DATAはリードパルスの1サイクル後に出力される、同期メッセージを構成する1ラインのデータである。
Sync送出部136は、(1)強制廃棄方式、(2)高優先送出方式、(3)送信時刻予約方式のいずれかを選択するSync Transmit rule ID領域を有する。そして、SYNC送出部136は、Sync Transmit rule ID領域に設定されているルールに従って送信FIFO133もしくはSYNCメッセージFIFO139の何れかからパケットデータを読み出す。そして、Sync送出部136は、送信データと、送信データが有効であることを示すDataEnableとを、後段の処理ブロックである送信タイムスタンプユニット137へ出力する。
図18は、強制廃棄方式の場合にSync送出部136が行う動作の例を示す説明図である。
ステップS201では、Sync送出部136は、カウンター等のリセットを行い、OSからのSYNC送信開始信号を待ち受ける。
次に、ステップS202へ遷移し、SYNC送出部136は、DataEnable=0を設定する。以上が前処理である。
ステップS203では、SYNC送出部136は、SFIFO.EmptyFlagを参照して同期メッセージの有無を判定する。同期メッセージが存在すると判定した場合(ステップS203:Not Empty)、ステップS204へ遷移し、と進み、送信データとして、同期メッセージであるSFIFO.DATAを選択する。
S205にて、SYNC送出部136は、DataEnable=1を設定する。
その後、ステップS203へと進み、同期メッセージの送出完了まで送出処理を継続する。
一方、ステップS203において同期メッセージが存在しないと判定した場合(ステップS203:Empty)、ステップS210へと進み、TFIFO.EmptyFlagを参照して送信FIFO133が空か否かを判定する。
送信FIFO133が空であると判定した場合(ステップS210:Empty)、ステップS202へ遷移する。
一方、送信FIFO133が空でないと判定した場合(ステップS210:Not Empty)、ステップS211へ遷移し、SYNC送出部136は、送信データ=TFIFO.DATAとする。
ステップS212では、SYNC送出部136は、DATAEnable=1とし同期メッセージ以外のパケット送信処理(すなわち、CPUパケットの送信処理)を実行する。
ステップS213では、SYNC送出部136は、SFIFO.EmptyFlagを参照して同期メッセージの有無を判定する。
同期メッセージが存在しないと判定した場合(ステップS213:Empty)、SYNC送出部136は、同期メッセージ以外のパケット送出処理を継続する。
一方、同期メッセージが存在すると判定した場合(ステップS213:Not Empty)、ステップS204とステップS213とに処理を分岐する。なお、ステップS204以降の処理とステップS213以降の処理をと同時並行処理にて実行する。
ステップS214において、SYNC送出部136は、送信FIFO133のデータを廃棄する(TFIFO.DATA=廃棄)。
ステップS215において、SYNC送出部136は、送信FIFO133からのデータリードは継続処理する。
ステップS216において、SYNC送出部136は、送信FIFO133から読み出したデータがEOF(TFIFO.DATA=EOF)か否かを判定する。
EOFであったと判定した場合(ステップS216:EOF)、ステップS203へ遷移する
一方、EOF以外であったと判定した場合(ステップS216:Not EOF)、ステップS214へ遷移する。この場合、送信FIFO133から1パケットのデータを読み出すまで(EOFまで)、ステップS214〜S216のループにて廃棄処理を継続する。
図19は、高優先送出方式の場合にSync送出部136が行う動作の例を示す説明図である。
ステップS301では、Sync送出部136は、カウンター等のリセットを行い、OSからのSYNC送信開始信号を待ち受ける。
ステップS302では、SYNC送出部136は、DataEnable=0とする。
ステップS303では、SYNC送出部136は、SFIFO.EmptyFlagを参照して同期メッセージが存在するか否かを判定する。同期メッセージが存在すると判定した場合(ステップS303:Not Empty)、ステップS304〜S305にて同期メッセージの送信を実施する。
一方、ステップS303において同期メッセージが存在しないと判定した場合(ステップS303:Empty)、ステップS310へ遷移する。
ステップS310では、SYNC送出部136は、TFIFO.EmptyFlagを参照して送信FIFO133にデータ(同期メッセージ)が存在するか否かを判定する。送信FIFO133が空である(同期メッセージが存在しない)と判定した場合(ステップS310:Empty)、ステップS303へと移行する。
一方、送信FIFO133にデータが存在すると判定した場合(ステップS310:Not Empty)、ステップS311、S312及びS313にて一般メッセージを送出処理する。
ステップS313では、SYNC送出部136は、TFIFO.DATAを参照してEOFか否かを判定する。EOFであると判定した場合(ステップS313:EOF)、ステップS302へ遷移する。
一方、EOF以外であると判定した場合(ステップS313:Not EOF)、ステップS310へ遷移する。
図20は、送信時刻予約方式の場合にSync送出部136が行う動作の例を示す説明図である。
送信時刻予約方式では、同期メッセージを、IPv4の最大パケットサイズである1542オクテット時間待ちの後に送出開始する。同期メッセージが存在するwait状態ではWaitFlag=1となる。WaitFlagは、通常パケット(CPUパケット)の送出開始時にのみ評価が実施され、WaitFlag=1の場合は、通常パケットは送信抑制状態となる。一方、通常パケットの送信中にはWaitFlagの評価は行われない。また、送信時刻予約方式では、同期メッセージの状態監視と、WaitFlagの操作とを行う第1のルーチンと、通常パケットの送信開始時にWaitFlag=0であれば送出を開始する第2のルーチンとが同時に実行される。
図20の処理において、ステップS401、ステップS420のそれぞれでは、Sync送出部136は、カウンター等のリセットを行い、OSからのSYNC送信開始信号を待ち受ける。なお、ステップS401のSTART1ステートと、ステップS420のSTART2ステートは同時に開始されるものとする。
ステップS402では、SYNC送出部136は、DataEnable=0とする。
ステップS403では、SYNC送出部136は、WaitFlag=0とする。
ステップS404では、SYNC送出部136は、SFIFO.EmptyFlagを参照し、同期メッセージが存在するか否かを判定する。
同期メッセージが存在すると判定した場合(ステップS404:Not Empty)、ステップS405へ遷移する。
一方、同期メッセージが存在しない(SYNCメッセージFIFO139が空である)と判定した場合(ステップS404:Empty)、ステップS404へ遷移する。すなわち、ステップS404を再評価するループ処理を実行する。
ステップS405では、SYNC送出部136は、SendWait=1542を代入し、処理をステップS406へと進める。
ステップS406では、SYNC送出部136は、WaitFlag=1をセットし処理をステップS407へと進める。
ステップS407では、SYNC送出部136は、SendWaitを1減算する。
ステップS408では、SYNC送出部136は、SendWaitが0か否かを判定する。SendWaitが0でないと判定した場合(ステップS408:No)、ステップS407へ遷移する。この場合、SendWait=0となるまでステップS407〜S408のループ処理を実行する。
ステップS408においてSendWait=0となったと判定した場合(ステップS408:Yes)、ステップS409へ遷移する。
ステップS409では、SYNC送出部136は、送信データとして同期メッセージを選択する(送信データ=SFIFO.DATA)。
ステップS410では、SYNC送出部136は、DataEnable=1とする。
ステップS411では、SYNC送出部136は、SFIFO.EmptyFlagを参照して送信FIFO133が空か否かを判定する。
送信FIFO133が空であると判定した場合(ステップS411:Empty)、ステップS402遷移する。
一方、送信FIFO133が空でない(同期メッセージが存在する)と判定した場合(ステップS411:Not Empty)、ステップS408へと遷移する。この場合、同期メッセージの送信を継続する。
ステップS421では、SYNC送出部136は、TFIFO.EmptyFlagを参照して送信FIFO133が空か否かを判定する。
送信FIFO133が空であると判定した場合(ステップS421:Empty)、ステップS421へ遷移する。すなわち、ステップS421を再評価するループ処理を実行する。
一方、送信FIFO133が空でないと判定した場合(ステップS421:Not Empty)、すなわち一般メッセージが存在すると判定した場合は、ステップS422へ遷移する。
ステップS422では、SYNC送出部136は、WaitFlagが0か否かを判定する。WaitFlagが0でない(WaitFlag=1)と判定した場合(ステップs422:No)、すなわち同期メッセージの送出待ち時間となっている場合、ステップS421へ遷移する。
WaitFlag=0であると判定した場合(ステップS422:Yes)、すなわち同期メッセージの送出待ち時間ではないと判定した場合、ステップS423へと進む。
ステップS423において、SYNC送出部136は、送信データとして、一般メッセージであるTFIFO.DATAを選択する。
ステップS424において、DataEnable=1とする。
その後、ステップS425において、SYNC送出部136は、TFIFO.DATA=EOFか否かを判定する。
EOFであると判定した場合(ステップS425:EOF)、ステップS426へ遷移する。一方、EOF以外であると判定した場合(ステップS425:Not EOF)、ステップS423へ遷移する。この場合、CPUパケット(同期メッセージ以外のパケット)の送出を継続する。
ステップS426では、SYNC送出部136は、DataEnable=0をセットし、ステップS421へ遷移する。
図21は、送信時刻予約方式にて送信待ち受けがどの程度発生するかを示す説明図である。
同図に示すパケットの構成要素は図13の場合と同様であり、説明を省略する。
図21において、SMIDslot長とは、秒間128発の同期メッセージを500台のslaveに送信することを想定した場合に、1つの同期メッセージに割り当てることが可能な時間間隔である。SMIDslot長=15,625nsは、同期メッセージ送信間隔の最小値が15,625ナノ秒であることを表す。
また1542オクテットのパケットはIPv4の最大パケット長を有するパケットを示している。1542オクテットは、12336ビットであり、回線速度が10Gbpsの場合、送信に要する時間は1234ナノ秒である。また、回線速度が10Gbpsの場合、当該パケットの送信に要する時間は12336ナノ秒である。いずれも、15625ナノ秒よりも短く、同期メッセージ送信間隔にて送信可能である。
以上のように、Sync送出部136は、スケジューラ141が同期メッセージの送出タイミングであると判定すると、同期メッセージ以外メッセージである一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、同期メッセージを送出する。
これにより、Sync送出部136は、同期メッセージの送出タイミング到来時に、一般メッセージを送出中であっても直ちに同期メッセージを送出することができる。この点において、グランドマスタークロック装置100は、同期メッセージ(例えば、時刻同期パケット)の送信と一般メッセージ(例えば、時刻同期パケット以外のパケット)の送信とで別々のネットワークアドレス(例えば、IPアドレス)を用いる必要無しに、同期メッセージの送出間隔の揺らぎを低減させることができる。
また、SyncIDは、同一のスレーブ装置400に対する同期メッセージ送信間隔の最小値として規定されている間隔毎にカウント(1インクリメント)する。SMIDは、同一のスレーブ装置400に対する同期メッセージ送信間隔の最小値を時刻同期対象機器の数でさらに分割した間隔毎にカウント(1インクリメント)する。そして、スケジューラ141は、SMIDが示すスレーブ装置400に対して同期メッセージを送出するタイミングか否かをSyncIDの値に基づいて判定する。
これにより、スケジューラ141は、SyncIDの値と、SMIDが示すスレーブ装置400に対応付けられた値とを比較するという簡単な処理で、同期メッセージ送出タイミングを検出することができる。
なお、以上では図12に示すように、同期メッセージ送出タイミングの検出と、同期メッセージの生成と、同期メッセージおよび一般メッセージの送出と、の各処理をMAC部130が行う場合を例に説明したが、これらの処理の全部または一部をCPU170(図6)が行うようにしてもよい。例えば、OSカーネル173が、これらの処理の全部または一部を行うようにしてもよい。
なお、同期メッセージの送出タイミングにおいてスケジューラ部141が一般メッセージの送出を中断した場合、当該一般メッセージを必ずFCS(Frame Check Sequence)エラーとするようにしてもよい。この場合、グランドマスタークロック装置100に隣接するスイッチにて当該一般メッセージを破棄するようにしてもよい。
あるいは、当該一般メッセージのFCSをあえて正確なFCSとすることにより、当該一般メッセージの送信先の装置の上位層(IP層)にて当該一般メッセージを破棄するようにしてもよい。この場合、当該一般メッセージが正常なものとして送信先の装置まで到達するため、当該一般メッセージを中継するスイッチのエラーカウンタがカウントアップされることが無くなる。これにより、広域Ethernet(登録商標)などでエラーパケットが頻発してキャリアから苦情を申告されるといった事態を回避し得る。
なお、本発明は、いろいろな時刻同期の場面に適用可能である。例えば、以下に本発明を適用するようにしてもよい。
1.携帯基地局間の時刻同期、周波数同期に用いる本願記載のGMC装置
2.センサーネットワークの各センサの時刻、周波数同期に用いる本願記載のGMC装置
3.電力変電所の保護リレー装置の作動時刻同期に用いる本願記載のGMC装置
4.オーディオ、ビデオなどAV分野におけるカメラ、記録機器、映像、ビデオ信号伝送装置、管理コンソール、サーバ群の時刻と、周波数の同期に用いつ本願記載のGMC装置
5.自動車内ネットワークにおける時刻、周波数同期に用いる本願記載のGMC装置
7.SDN,NFVなど複数装置で構成され中央集権設定が実行される環境における時刻、周波数同期に用いる本願記載のGMC装置
なお、グランドマスタークロック装置100の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
100 グランドマスタークロック装置
110 GNSS同期型周波数発振器
111 GNSS受信機
112 クロック調整器
113 水晶振動子
120 物理層チップ
130 メディアアクセスコントローラ部
131 受信タイムスタンプユニット
132 受信FIFO
133 送信FIFO
134 Syncプロファイル記憶部
134−1 グローバルプロファイル記憶部
134−2 SMIDプロファイル記憶部
134−3 SMIDテーブル記憶部
135 Sync生成部
136 Sync送出部
137 送信タイムスタンプユニット
139 Sync message FIFO
141 スケジューラ
142 プレシジョンタイムカウンターユニット
150 水晶振動子
160 メインメモリ
170 CPU
171 ハードウェアアクセス部
172 ドライバ
173 OSカーネル
174 GNSS管理デーモン
175 プロトコルスタック
176 Delayreq送出処理部
177 Sync登録処理部
181 メモリコントローラ

Claims (5)

  1. 時刻情報を含む同期メッセージを送出する同期メッセージ送出装置であって、
    前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出部と、
    前記同期メッセージの送出タイミングか否かを判定するスケジューラ部と、
    を備え、
    前記送出部は、前記スケジューラ部が同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出する、
    同期メッセージ送出装置。
  2. 同一の時刻同期対象機器に対する同期メッセージ送信間隔の最小値として規定されている間隔毎にカウントする第1カウンターと、
    前記同一の時刻同期対象機器に対する同期メッセージ送信間隔の最小値を時刻同期対象機器の数でさらに分割した間隔毎にカウントする第2カウンターと
    を備え、
    前記スケジューラ部は、前記第2カウンターが示す時刻同期対象機器に対して同期メッセージを送出するタイミングか否かを前記第1カウンターの値に基づいて判定し、
    前記送出部は、前記スケジューラ部が同期メッセージを送出するタイミングであると判定すると当該同期メッセージを送出する、
    請求項1に記載の同期メッセージ送出装置。
  3. 同期メッセージ送出装置と、時刻同期対象装置とを備え、
    前記同期メッセージ送出装置は、
    時刻情報を含む同期メッセージを送出する同期メッセージ送出装置であって、
    前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出部と、
    前記同期メッセージの送出タイミングか否かを判定するスケジューラ部と、
    を備え、
    前記送出部は、前記スケジューラ部が同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出し、
    前記時刻同期対象装置は、
    前記同期メッセージ送出装置が送出する前記同期メッセージに基づいて、当該同期メッセージ送出装置との時刻同期を行う、
    時刻同期システム。
  4. 時刻情報を含む同期メッセージを送出する同期メッセージ送出装置の同期メッセージ送出方法であって、
    前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出ステップと、
    前記同期メッセージの送出タイミングか否かを判定する判定ステップと、
    を有し、
    前記送出ステップでは、前記判定ステップにて前記同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出する、
    同期メッセージ送出方法。
  5. 時刻情報を含む同期メッセージを送出する同期メッセージ送出装置を制御するコンピュータに、
    前記同期メッセージ、及び、前記同期メッセージ以外のメッセージである一般メッセージを送出する送出ステップと、
    前記同期メッセージの送出タイミングか否かを判定する判定ステップと、
    を実行させ、
    前記送出ステップでは、前記判定ステップにて前記同期メッセージの送出タイミングであると判定すると、前記一般メッセージを送出中である場合は、当該一般メッセージの送出を中断して、前記同期メッセージを送出させる
    ためのプログラム。
JP2015063044A 2015-03-25 2015-03-25 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム Active JP6516216B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015063044A JP6516216B2 (ja) 2015-03-25 2015-03-25 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム
PCT/JP2016/052226 WO2016152237A1 (ja) 2015-03-25 2016-01-27 同期メッセージ送出装置、時刻同期システムおよび同期メッセージ送出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015063044A JP6516216B2 (ja) 2015-03-25 2015-03-25 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016184810A true JP2016184810A (ja) 2016-10-20
JP6516216B2 JP6516216B2 (ja) 2019-05-22

Family

ID=57243231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015063044A Active JP6516216B2 (ja) 2015-03-25 2015-03-25 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6516216B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021164056A (ja) * 2020-03-31 2021-10-11 アンリツ株式会社 ネットワーク試験器
CN117061439A (zh) * 2023-10-10 2023-11-14 长沙先度科技有限公司 一种tsn实时以太网交换机的数据处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5834650A (ja) * 1981-08-24 1983-03-01 Hitachi Ltd パケット送受信方式
JP2004186877A (ja) * 2002-12-02 2004-07-02 Ntt Docomo Inc 無線アクセスネットワークシステム、無線通信方法、同期サーバ及びノード装置
JP2007134873A (ja) * 2005-11-09 2007-05-31 National Institute Of Information & Communication Technology 高精度時刻同期処理装置およびそのプログラム,ならびにネットワーク混雑度警告装置およびそのプログラム
JP2013074527A (ja) * 2011-09-28 2013-04-22 Fujitsu Ltd 伝送装置、伝送システム及び通信制御方法
JP2013521692A (ja) * 2010-03-05 2013-06-10 サムスン エレクトロニクス カンパニー リミテッド 通信システムでの通信階層とサブ階層との相互作用を介した通信システムの正確なクロック同期化のための方法及びシステム
JP2013121144A (ja) * 2011-12-08 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> パケット制御方法及びパケット制御装置
JP2013143748A (ja) * 2012-01-12 2013-07-22 Yokogawa Electric Corp 時刻同期システム
JP2013179392A (ja) * 2012-02-28 2013-09-09 Mitsubishi Electric Corp 通信装置及び通信方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5834650A (ja) * 1981-08-24 1983-03-01 Hitachi Ltd パケット送受信方式
JP2004186877A (ja) * 2002-12-02 2004-07-02 Ntt Docomo Inc 無線アクセスネットワークシステム、無線通信方法、同期サーバ及びノード装置
JP2007134873A (ja) * 2005-11-09 2007-05-31 National Institute Of Information & Communication Technology 高精度時刻同期処理装置およびそのプログラム,ならびにネットワーク混雑度警告装置およびそのプログラム
JP2013521692A (ja) * 2010-03-05 2013-06-10 サムスン エレクトロニクス カンパニー リミテッド 通信システムでの通信階層とサブ階層との相互作用を介した通信システムの正確なクロック同期化のための方法及びシステム
JP2013074527A (ja) * 2011-09-28 2013-04-22 Fujitsu Ltd 伝送装置、伝送システム及び通信制御方法
JP2013121144A (ja) * 2011-12-08 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> パケット制御方法及びパケット制御装置
JP2013143748A (ja) * 2012-01-12 2013-07-22 Yokogawa Electric Corp 時刻同期システム
JP2013179392A (ja) * 2012-02-28 2013-09-09 Mitsubishi Electric Corp 通信装置及び通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021164056A (ja) * 2020-03-31 2021-10-11 アンリツ株式会社 ネットワーク試験器
JP7244453B2 (ja) 2020-03-31 2023-03-22 アンリツ株式会社 ネットワーク試験器
CN117061439A (zh) * 2023-10-10 2023-11-14 长沙先度科技有限公司 一种tsn实时以太网交换机的数据处理方法
CN117061439B (zh) * 2023-10-10 2023-12-12 长沙先度科技有限公司 一种tsn实时以太网交换机的数据处理方法

Also Published As

Publication number Publication date
JP6516216B2 (ja) 2019-05-22

Similar Documents

Publication Publication Date Title
JP5811794B2 (ja) 通信装置
US8879586B2 (en) Inband timestamping
EP3163786B1 (en) Clock synchronization method and apparatus
US11050501B2 (en) Performing PHY-level hardware timestamping and time synchronization in cost-sensitive environments
US7835402B2 (en) Synchronization module
US8370675B2 (en) Precise clock synchronization
US8107502B2 (en) Method and apparatus for monitoring packet networks
CN101977104B (zh) 基于ieee1588精确时钟同步协议系统及其同步方法
EP1525693B1 (en) Clock synchronizing method over fault-tolerant etherent
US8385212B2 (en) Method and apparatus for finding latency floor in packet networks
JP6516217B2 (ja) 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム
CN101496322A (zh) 一致的分布式时间戳计数器
JP5127482B2 (ja) タイミング同期方法、同期装置、同期システム及び同期プログラム
EP3930266A1 (en) Packet scheduling system with desired physical transmission time for packets
EP3174237B1 (en) Time synchronization method and apparatus for network devices and time synchronization server
WO2010057398A1 (zh) 透传时钟的实现装置和方法
WO2015117501A1 (zh) 一种时间同步方法、可编程逻辑器件、单板及网元
CN105027489B (zh) 精确时钟协议同步方法和节点
CN111726189A (zh) 基于时间戳标记电路的双核系统时钟同步方法及装置
US20190166062A1 (en) System and method for scheduling communications
CN110572230A (zh) 一种用于实现时间同步的修正方法及装置
WO2016152237A1 (ja) 同期メッセージ送出装置、時刻同期システムおよび同期メッセージ送出方法
US9065748B2 (en) Symmetrical latency with TDM circuit emulated service
JP6516216B2 (ja) 同期メッセージ送出装置、時刻同期システム、同期メッセージ送出方法およびプログラム
EP3163788A1 (en) Communication system, communication method, and communication program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190408

R150 Certificate of patent or registration of utility model

Ref document number: 6516216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250