(57)【要約】  本発明の一実施形態は、複数のソースから得られる、時刻及び周波数のデータの有効性を自発的に確認し、クライアントクロックとソースとの間の周波数差の適切な推定値を生成する方法、を記載する。この方法は、プロトコルデータユニットの有効性確認ステップと、オフセット測定ステップと、最小オフセットフィルタリングステップと、周波数フィルタリングステップとを含んでいる。これらのステップによって、パケット遅延変動のマイナスの影響を減少させることができ、対象のソースの周波数推定値と、関連付けられる有効性ステータスとを求める。結果として、パケットネットワークにおいてローカルクロックの品質制御が、従来技術の手法よりも大幅に低いコスト及び低い複雑さレベルにて達成される。【選択図】  図３Ａ
2009525710.tif 000002
【特許請求の範囲】
【請求項１】
サーバクロックから受信される時刻及び周波数の情報の有効性を自発的に確認し、クライアントクロックと前記サーバクロックとの間の周波数推定値を生成する方法であって、
少なくとも２つのプロトコルデータユニット（ＰＤＵ）を受信するステップであり、ＰＤＵのそれぞれが複数のタイムスタンプを含んでいる、ステップと、
ＰＤＵのそれぞれから前記複数のタイムスタンプを取り出すステップと、
ＰＤＵのそれぞれについてオフセット測定を実行して、ＰＤＵのそれぞれについて前記クライアントクロックと前記サーバクロックとの間の時刻オフセットを計算するステップであり、オフセット測定のそれぞれが、前記オフセット測定が実行される前記ＰＤＵに関連付けられる少なくとも２つの前記タイムスタンプに基づいている、ステップと、
前記時刻オフセットに対して最小オフセットフィルタリング（ＭＯＦ）を実行して、無効なタイムスタンプデータに基づいている時刻オフセットを取り除くステップと、
前記フィルタリングされた時刻オフセットに対して周波数推定フィルタリング（ＦＥＦ）を実行して前記周波数推定値を生成し、前記周波数推定値をＭｉＦＬＬに供給して、任意の指定される時刻測定間隔に対して前記クライアントクロックにおける良好な安定性を達成するステップと、
を含んでいる、方法。
【請求項２】
前記複数のタイムスタンプが、
前記クライアントクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ１と、ネットワークを通じて前記クライアントに接続されている前記サーバクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ２と、前記サーバクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ３と、前記クライアントクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ４と、から成る群のうちの少なくとも２つ、を備えており、
「エポック」が時間間隔を意味している、請求項１に記載の方法。
【請求項３】
前記周波数推定値が、チャネルの関連付けられる有効性フラグと一緒に出力され、前記チャネルが、前記サーバクロックと、前記サーバクロックから前記クライアントクロックまでの関連付けられる経路と、を含んでいる、請求項１に記載の方法。
【請求項４】
前記最小オフセットフィルタリングステップが、
ステップ１：現在の（インデックスｎの）サンプルをＭＯＦバッファに加え、最も古いインデックスのサンプルを削除する。
ステップ２：少なくともｂｕｆｍｉｎｉ個の入力が有効であることを確認する。有効ではない場合、現在のＯｕｔ＿Ｖａｌｉｄｉ［ｎ］をＦＡＬＳＥに設定して終了する。
ステップ３：傾斜していないバッファエントリを更新する。
ステップ３ａ：新しい傾斜係数を、
【数１】
2009525710.tif 000004
によって計算する（この式において、ＮＣＯｓｙｓｔは、ローカル発振器に現在適用されている、システム全体のわずかな周波数補正（単位：ｐｐｂ）であり、τ０は、オフセットサンプル間の間隔（秒）である）。
ステップ３ｂ：累積傾斜（ｃｔｉｌｔ）を０に初期化する。
ステップ３ｃ：循環バッファに対して次のように演算する。現在のサンプルは、ｎ  ｍｏｄｕｌｏ  Ｎであり、最も古いサンプルは、（ｎ−Ｎ＋ｌ）  ｍｏｄｕｌｏ  Ｎである。インデックスｊ＝（ｎ−Ｎ＋ｌ）  ｍｏｄｕｌｏ  Ｎに設定する。
ステップ３ｄ：δｕｔｍｉ［ｊ］＝δｍｉ［ｊ］＋ｃｔｉｌｔ
ステップ３ｅ：ｃｔｉｌｔ＝ｃｔｉｌｔ＋ｔｉｌｔｉ
ステップ３ｆ：ｊ＝ｎ  ｍｏｄｕｌｏ  Ｎであるならば、ステップ３を終了する。
ステップ３ｇ：ｊ＝（ｊ＋１）  ｍｏｄｕｌｏ  Ｎであるならば、ステップ３ｄに進む。
ステップ４：時刻ｎにおける現在の最小の測定オフセット値を更新する。
ステップ４ａ：傾斜していない（ｉｎ＿ｖａｌｉｄがＴＲＵＥに設定されている）一連のエントリの中を探索し、最小エントリのインデックスｊｆｌｏｏｒを求める。値が同じである場合、より新しいエントリを優先させる。
ステップ４ｂ：δｍｉ［ｊｆｌｏｏｒ］＜δｍｉｎｉ［（ｎ−ｌ）  ｍｏｄｕｌｏ  Ｎ］ならば、δｍｉｎｉ［（ｎ）  ｍｏｄｕｌｏ  Ｎ］＝δｍｉ［ｊｆｌｏｏｒ］
ステップ４ｃ：それ以外の場合、δｍｉｎｉ［（ｎ）  ｍｏｄｕｌｏ  Ｎ］＝δｍｉｎｉ［（ｎ−１）  ｍｏｄｕｌｏ  Ｎ］（１−ｓｌｅｗｍｏｆ）＋δｍｉ［ｊｆｌｏｏｒ］ｓｌｅｗｍｏｆ、
を含んでいる、請求項１に記載の方法。
【請求項５】
前記周波数推定フィルタリングステップが、
ステップ１：現在の（インデックスｎの）サンプルをＦＥＦバッファに加え、最も古いインデックスのサンプルを削除する。
ステップ２：入力データが有効である場合、ｏｓｍｉｎｉ［ｎ］パラメータを次のように更新する。
δｓｍｉｎｉ［ｎ］＝［δｓｍｉｎｉ［ｎ−１］（（τｓｆ／τ０）−１）＋δｍｉｎｉ［ｎ］］／（τｓｆ／τ０）
ステップ３：平滑化後の周波数推定値に変換する。
ステップ３ａ：最も新しいＩｎ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］エントリと最も古いＩｎ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］エントリの両方が有効であるならば、次のように周波数推定値に変換する。
ｆｓｍｉｎｉ［ｎ］＝［δｓｍｉｎｉ［ｎ］−δｓｍｉｎｉ［ｎ−Ｍ］］／（Ｍτ０）
現在のエントリＯｕｔ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］：をＴＲＵＥに設定する。
ステップ３ｂ：それ以外の場合、現在のエントリＯｕｔ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］：をＦＡＬＳＥに設定する。
ステップ４：Ｏｕｔ＿ＦＥＦ＿ＶａｌｉｄがＴＲＵＥである場合、ｆｅｓｔｉ［ｎ］パラメータを次のように更新する。
ｆｅｓｔｉ［ｎ］＝［ｆｅｓｔｉ［ｎ−１］（（ｒｅｓｔ  τｓｆ／τ０）−１）＋ｆｓｍｉｎｉ［ｎ］］／（ｒｅｓｔ  τｓｆ／τ０）
を含んでいる、請求項１に記載の方法。
【請求項６】
前記周波数推定フィルタリングステップの出力に周波数クラスタリング（ＦＣ）を適用して、与えられたタイムエポックの間の前のチャネル挙動との整合性のない周波数推定値の外れ値を削除する、更なるステップ、
を含んでいる、請求項１に記載の方法。
【請求項７】
前記周波数クラスタリングアルゴリズムが、
ステップ１：Ｃｌｕｓｔｅｒ＿ＶａｌｉｄフラグのすべてをＴＲＵＥに初期化する。
ステップ２：ｍを計算する。ｍは、Ｉｎ＿Ｖａｌｉｄ及びＣｌｕｓｔｅｒ＿Ｖａｌｉｄの両方がＴＲＵＥである要素の数である。
ステップ３：候補のクラスタの重心を計算する。
ステップ３ａ：ｍ個のセットの中の有効なチャネルのそれぞれについて、ｗｉ［ｎ］＝ｗｒｉ［ｎ］／Σｗｒｉ［ｎ］（ｍ個の有効なチャネル全体の合計）として重みを計算する。この式において、ｗｒｉ［ｎ］＝１／σ２ｉ［ｎ−１］であり、σ２ｉ［ｎ］の計算については後述する。
ステップ３ｂ：３ａの重みを使用して、クラスタの加重平均を次式として計算する。
ｆｃａｖｇ［ｎ］＝Σｆｉ［ｎ］ｗｉ［ｎ］（ｍ個の有効なチャネル全体の合計）
ステップ４：有効なチャネルのそれぞれについて、以下を行う。
ステップ４ａ：クラスタの外れ値のしきい値を、Ｔｃｉ［ｎ］＝ｐσ２ｉ［ｎ−１］［ｌ＋ｌ／ｍ］として計算する。この式において、ｐは一定の百分率係数であり、通常では［１＜ｐ＜３］である。
ステップ４ｂ：距離がしきい値を超える場合（｜ｆｉ［ｎ］−ｆｃａｖｇ［ｎ］｜＞Ｔｃｉ［ｎ］）、Ｃｌｕｓｔｅｒ＿Ｖａｌｉｄｉ［ｎ］をＦＡＬＳＥに設定する。
ステップ５：再びｍを計算する。変化していない場合、クラスタリングは完了であり、変化している場合、ステップ３に進む。
を含んでいる、請求項６に記載の方法。
【請求項８】
アラン分散推定値を計算及び更新する更なるステップであり、前記タイムエポックの最後において前記ＦＣアルゴリズムが完了した後に有効であると判定される、前記クライアントクロックに達している一連のチャネル、について、前記アラン分散推定値が更新される、ステップ
を含んでいる、請求項６に記載の方法。
【請求項９】
サーバクロックから受信される時刻及び周波数の情報の有効性を自発的に確認し、クライアントクロックと前記サーバクロックとの間の周波数推定値を生成するコンピューティングデバイスであって、
メモリと、
前記メモリに結合されており、同期要素を有するプロセッサと、
を備えており、
前記同期要素が、
クロックユニットと、
周波数推定値生成ユニットと
を備え、
前記周波数推定値生成ユニットが、
少なくとも２つのプロトコルデータユニット（ＰＤＵ）を受信するステップであり、ＰＤＵのそれぞれが複数のタイムスタンプを含んでいる、ステップと、
ＰＤＵのそれぞれから前記複数のタイムスタンプを取り出すステップと、
ＰＤＵのそれぞれについてオフセット測定を実行して、ＰＤＵのそれぞれについて前記クライアントクロックと前記サーバクロックとの間の時刻オフセットを計算するステップであり、オフセット測定のそれぞれが、前記オフセット測定が実行される前記ＰＤＵに関連付けられる少なくとも２つの前記タイムスタンプに基づいている、ステップと、
前記時刻オフセットに対して最小オフセットフィルタリングを実行して、無効なタイムスタンプデータに基づいている時刻オフセットを取り除くステップと、
前記フィルタリングされた時刻オフセットに対して周波数推定フィルタリングを実行して前記周波数推定値を生成し、前記周波数推定値をＭｉＦＬＬに供給して、任意の指定される時刻測定間隔に対して前記クライアントクロックにおける良好な安定性を達成するステップと
を実行するように構成されている、コンピューティングデバイス。
【請求項１０】
前記複数のタイムスタンプが、
前記クライアントクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ１と、ネットワークを通じて前記クライアントに接続されている前記サーバクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ２と、前記サーバクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ３と、前記クライアントクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ４と、から成る群のうちの少なくとも２つ、を備えており、
「エポック」が時間間隔を意味している、
請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記周波数推定値生成ユニットが、チャネルの周波数推定値と、関連付けられる有効性フラグとを出力するように構成されており、前記チャネルが、前記サーバクロックと、前記サーバクロックから前記クライアントクロックまでの関連付けられる経路と、を含んでいる、請求項９に記載のコンピューティングデバイス。
【請求項１２】
前記周波数推定値生成ユニットが、
前記周波数推定フィルタリングステップの出力に周波数クラスタリング（ＦＣ）を適用して、与えられたタイムエポックの間の前のチャネル挙動との整合性のない周波数推定値の外れ値を削除するステップ、
を含んでいるように更に構成されている、請求項９に記載のコンピューティングデバイス。
【請求項１３】
前記サーバが、
パケットベースのタイミング情報を提供することのできるマルチキャストＮＴＰサーバであって、サーバとクライアントとの間がＮ対Ｍの対応関係である（Ｎ及びＭは１に等しいか１より大きい任意の整数）、前記マルチキャストＮＴＰサーバ
を備えている、請求項９に記載のコンピューティングデバイス。
【請求項１４】
前記サーバが、
パケットベースのタイミング情報を提供することのできるマルチキャストＰＴＰサーバであって、サーバとクライアントとの間がＮ対Ｍの対応関係である（Ｎ及びＭは１に等しいか１より大きい任意の整数）、前記マルチキャストＰＴＰサーバ
を備えている、請求項９に記載のコンピューティングデバイス。
【請求項１５】
サーバクロックから受信される時刻及び周波数の情報の有効性を自発的に確認し、クライアントクロックと前記サーバクロックとの間の周波数推定値を生成するように、所定の方法によって、コンピュータシステムを制御するための命令、を含んでいるコンピュータ可読記憶媒体であって、
前記方法が、
少なくとも２つのプロトコルデータユニット（ＰＤＵ）を受信するステップであり、ＰＤＵのそれぞれが複数のタイムスタンプを含んでいる、ステップと、
ＰＤＵのそれぞれから前記複数のタイムスタンプを取り出すステップと、
ＰＤＵのそれぞれについてオフセット測定を実行して、ＰＤＵのそれぞれについて前記クライアントクロックと前記サーバクロックとの間の時刻オフセットを計算するステップであり、オフセット測定のそれぞれが、前記オフセット測定が実行される前記ＰＤＵに関連付けられる少なくとも２つの前記タイムスタンプに基づいている、ステップと、
ＰＤＵのそれぞれの前記オフセット測定の結果を格納するステップと、
前記格納されている時刻オフセットに対して最小オフセットフィルタリング（ＭＯＦ）を実行して、無効なタイムスタンプデータに基づいている時刻オフセットを取り除くステップと、
前記ＭＯＦの結果を格納するステップと、
前記格納されているフィルタリングされた時刻オフセットに対して周波数推定フィルタリング（ＦＥＦ）を実行して前記周波数推定値を生成するステップと、
前記周波数推定値をＭｉＦＬＬへの入力として使用するか否かをユーザが決定することができるように、前記ユーザに周波数推定値を表示するステップと
を含んでいる、コンピュータ可読記憶媒体。
【請求項１６】
前記複数のタイムスタンプが、
前記クライアントクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ１と、ネットワークを通じて前記クライアントに接続されている前記サーバクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ２と、前記サーバクロックから発信される前記ＰＤＵの送信発信エポックの最良の推定値を含んでいるタイムスタンプＴ３と、前記クライアントクロックに着信する前記ＰＤＵの受信着信エポックの最良の推定値を含んでいるタイムスタンプＴ４と、から成る群のうちの少なくとも２つ、を備えており、
「エポック」が時間間隔を意味している、
請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記周波数推定値が、前記チャネルの関連付けられる有効性フラグと一緒に表示され、チャネルが、サーバクロックと、前記サーバクロックから前記クライアントクロックまでの関連付けられる経路と、を意味する、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記周波数推定フィルタリングステップの出力に周波数クラスタリング（ＦＣ）アルゴリズムを適用して、与えられたタイムエポックの間の前のチャネル挙動との整合性のない周波数推定値の外れ値を削除する、更なるステップを含んでいる、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記サーバが、
パケットベースのタイミング情報を提供することのできるマルチキャストＮＴＰサーバであって、サーバとクライアントとの間がＮ対Ｍの対応関係である（Ｎ及びＭは１に等しいか１より大きい任意の整数）、前記マルチキャストＮＴＰサーバ
を備えている、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記サーバが、
パケットベースのタイミング情報を提供することのできるマルチキャストＰＴＰサーバであって、サーバとクライアントとの間がＮ対Ｍの対応関係である（Ｎ及びＭは１に等しいか１より大きい任意の整数）、前記マルチキャストＰＴＰサーバ
を備えている、請求項１５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明の実施形態は、通信ネットワーク内に配置されているネットワーク要素のクロックを制御する方法に関し、より詳細には、パケットネットワークにおける高度なクロック制御に関する。
【発明の背景】
【０００２】
[0002]多くの電気通信アプリケーションにおいては、ネットワーク内の要素のそれぞれが自身のクロック（本文書においては「クライアントクロック」と称する）を有し、このクロックはネットワーク内の他のクロックとは独立して動作している。一般に、水晶発振器がネットワーク要素におけるクライアントクロックとして機能し、ローカルな時刻系（タイムスケール）の生成をサポートするための周波数を提供する。水晶発振器は、短期の測定間隔に対しては良好な周波数安定性を提供するが、中期及び長期の周波数安定性は、電気通信規格を満たさない。従って、外部の追跡可能なクロック源に対してクライアントクロックをチェックして補正しなければならない。更に、ネットワーク内の要素が極めて多い場合、要素それぞれのクロックは、あらゆる測定間隔に対して良好な周波数安定性を提供することのみならず、要素あたり最小のコストにおいてネットワーク全体にわたり再現可能である（ｒｅｐｒｏｄｕｃｉｂｌｅ）ことも要求される。
【０００３】
[0003]クライアントネットワーク要素におけるクライアントクロックにタイミング情報を提供する手段はいくつか存在する。従来の電気通信ネットワークにおいては、ネットワーク要素は、時分割多重方式（ＴＤＭ）リンク（例えば、Ｔ１、ＳＯＮＥＴ）を利用しており、このリンクは、本質的に、高い信頼性の周波数情報を物理層においてサーバからクライアントに伝えることができる。しかしながら、次世代のネットワークは、パケット交換型インフラストラクチャ（このようなネットワークを本文書では「パケットネットワーク」と称する）をベースとし、ネットワーク要素を相互接続している物理媒体が、物理層において周波数情報をもはや伝送することができないという状況が起こり得る。従って、タイミング情報を伝送するための、パケットベースの方法が必要である。図１は、ネットワーク要素１００において利用可能な様々なタイミングソースを示している。タイミングソースとしては、ネットワークタイムプロトコル（ＮＴＰ：Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）サーバ１１０、高精度タイムプロトコル（ＰＴＰ：Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｉｎｇ  Ｐｒｏｔｏｃｏｌ）サーバ１２０、直接リンクソース１３０、マルチキャストＮＴＰサーバ１４０、マルチキャストＰＴＰサーバ１５０、リアルタイムプロトコル（ＲＴＰ：Ｒｅａｌ−Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）サーバ１６０が挙げられる。ＮＴＰサーバ１１０及びＰＴＰサーバ１２０では、それぞれ、ＩＰ−ＷＡＮ  １１５及びＬＡＮ１２５を通じてタイミング情報を伝送するためのパケットベースの方法が可能である。本文書において使用する用語「ＮＴＰサーバ」及び「ＰＴＰサーバ」は、特に明記しない限りは、サーバがユニキャストモードにおいて動作し、サーバとクライアントとの間に確実な一対一の対応関係が存在し、ある程度の追跡可能性が確保されることを意味する。直接リンクソース１３０は、例えば、全地球測位システム  （ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓａｔｅｌｌｉｔｅ）、建物内統合タイミング供給源（ＢＩＴＳ：Ｂｕｉｌｄｉｎｇ  Ｉｎｔｅｇｒａｔｅｄ  Ｔｉｍｉｎｇ  Ｓｕｐｐｙ）、ＳＯＮＥＴ、ＳＤＨ、ＰＤＨなど、タイミング情報を直接リンク１３５を介してネットワーク要素に提供するソースである。マルチキャストＮＴＰサーバ１４０及びマルチキャストＰＴＰサーバ１５０は、サーバとクライアントとの間がＮ対Ｍの対応関係であり（Ｎ及びＭは１に等しいか１より大きい任意の整数であり、Ｎ＜＜Ｍ）、パケットベースのタイミング情報を提供することのできるマルチキャストサーバである。
【０００４】
[0004]ネットワーク要素１００において様々なタイミングソースを利用することができる場合でも、あらゆる場合にすべてのタイミングソースが利用可能であるわけではない。更に、タイミングソースの周波数安定性は、電気通信規格を常に満たすわけではない。米国特許第５，７５１，７７７号明細書及び米国特許第５，９４３，３８１号明細書（これらは本文書に参考とすることにより組み込まれている）に開示されている複数入力周波数同期ループ（ＭｉＦＬＬ：Ｍｕｌｔｉｐｌｅ  ｉｎｐｕｔｓ  Ｆｒｅｑｕｅｎｃｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）では、一次入力及び二次入力（ｐｒｉｍａｒｙ  ａｎｄ  ｓｅｃｏｎｄａｒｙ  ｔｉｅｒ  ｉｎｐｕｔｓ）を最適に組み合わせることによって、任意の指定される時刻測定間隔に対して良好な安定性のクライアントクロックを達成する。「一次入力」は、高い信頼性の既知のタイミングソース（例えば、ＮＴＰサーバ１１０、ＰＴＰサーバ１２０、或いは直接リンクソース１３０）から、検証可能な（追跡可能な）経路を通じて入ってくるタイミング情報を意味する。「二次入力」は、ローカルの発振器と同一又はそれより上位の階層ではあるが明確に検証可能ではないソースから発信される。二次入力としては、マルチキャストＮＴＰサーバ１４０、マルチキャストＰＴＰサーバ１５０を使用することができ、その場合、更なるクライアントトランザクションの負荷が一次ソースに加わることなく、低コスト、低出力のローカル発振器によって時刻及び周波数の情報を取り出すことができる。
【０００５】
[0005]しかしながら、マルチキャストＮＴＰ、マルチキャストＰＴＰのフローから時刻及び周波数の情報を取り出すときには、いくつかの問題が生じる。第１に、これらのフローが、高い信頼性のサーバクロックから発信されていることが常に既知であるわけではない。第２に、実際には、フローのパケットのそれぞれに、大きなランダム成分を含んだ様々な遅延が生じる（「パケット遅延変動（ＰＤＶ）」と称される現象）。結果として、正確ではないデータがＭｉＦＬＬに送られることがあり、クライアントクロックのパフォーマンスが低下する。
【０００６】
[0006]上記に説明したように、この技術分野においては、高い信頼性のデータのみがＭｉＦＬＬに送られるように、複数のソースから得られる時刻及び周波数のデータの有効性を自発的に確認し、ＰＤＶの影響を減少させることによってクライアントクロックとタイミングソースとの間の周波数差の適切な推定値を生成する手法及び装置、が求められている。
【発明の概要】
【０００７】
[0007]本発明の一実施形態は、サーバクロックから受信される時刻及び周波数の情報の有効性を自発的に確認し、クライアントクロックとサーバクロックとの間の周波数推定値を生成する方法、を記載する。この方法は、少なくとも２つのプロトコルデータユニット（ＰＤＵ）を受信するステップであって、ＰＤＵのそれぞれが複数のタイムスタンプを含んでいる、ステップと、ＰＤＵのそれぞれから複数のタイムスタンプを取り出すステップと、ＰＤＵのそれぞれについてオフセット測定を実行して、ＰＤＵのそれぞれについてクライアントクロックとサーバクロックとの間の時刻オフセットを計算するステップであって、オフセット測定のそれぞれが、そのオフセット測定が実行されるＰＤＵに関連付けられる少なくとも２つのタイムスタンプに基づいている、ステップと、を含んでいる。更に、この方法は、時刻オフセットに対して最小オフセットフィルタリング（ＭＯＦ：ｍｉｎｉｍｕｍ  ｏｆｆｓｅｔ  ｆｉｌｔｅｒｉｎｇ）を実行して、無効なタイムスタンプデータに基づいている時刻オフセットを取り除くステップと、フィルタリングされた時刻オフセットに対して周波数推定フィルタリング（ＦＥＦ：ｆｒｅｑｕｅｎｃｙ  ｅｓｔｉｍａｔｅ  ｆｉｌｔｅｒｉｎｇ）を実行して周波数推定値を生成し、この周波数推定値をＭｉＦＬＬに供給して、任意の指定される時刻測定間隔に対してクライアントクロックにおける良好な安定性を達成するステップと、を含んでいる。
【０００８】
[0008]開示した方法の１つの利点は、より信頼性の低いタイミングソース（例えば、マルチキャストＮＴＰサーバ、マルチキャストＰＴＰサーバ）を使用して一次ソースを補足することによって、クライアントクロックの制御を達成することができることである。開示した方法はアルゴリズムを含んでおり、このアルゴリズムは、マルチキャストＮＴＰサーバ、マルチキャストＰＴＰサーバから得られる測定データをクロスチェックし（ｃｒｏｓｓ−ｃｈｅｃｋ）、チャネルの有効性を自発的に確立し、チャネルからの現在の周波数推定値をＭｉＦＬＬアルゴリズムにおいて使用することができるかを結論する。結果として、一次ソースに負荷が加わることなく、低コスト、低出力の発振器によって、クライアントクロック側で時刻及び周波数の情報を取り出すことができ、これにより、サーバ及びクライアントの両方のコストが低減する。
【０００９】
[0009]以下では、上に記載した本発明の特徴を詳しく理解することができるように、上に簡潔に要約した本発明について、実施形態を参照しながら更に具体的に説明する。いくつかの実施形態は、添付の図面に図解してある。しかしながら、添付の図面は本発明の一般的な実施形態のみを示したものであり、従って、本発明の範囲を制限するようには解釈されないものとする。本発明は、同等の効果を備えた別の実施形態もその範囲に含むものとする。
【詳細な説明】
【００１０】
[0017]本発明は、米国特許第５，７５１，７７７号明細書及び米国特許第５，９４３，３８１号明細書（これら両文書の内容全体は、あらゆる目的のため本文書に参考とすることにより組み込まれている）の教示内容を改良する。
【００１１】
[0018]図２は、本発明の一実施形態による、タイムスタンプの概念を示している。一次ソース及び二次ソースのいずれも、図２に示したタイムスタンピングプロセスの変形形態を利用する。図示したように、時刻測定プロセスでは、タイムライン（ｔｉｍｅｌｉｎｅ）２００に沿った４つのタイムスタンプが関連しており、タイムスタンプのそれぞれを以下のように定義する。
Ｔ１は、クライアント２１０のクロックから発信されるプロトコルデータユニット（ＰＤＵ）の送信発信エポック（ｔｒａｎｓｍｉｔ  ｏｒｉｇｉｎａｔｉｎｇ  ｅｐｏｃｈ）の最良の推定値を表しているタイムスタンプである。
Ｔ２は、サーバ２２０のクロックに着信するＰＤＵの受信着信エポック（ｒｅｃｅｉｖｅ  ｔｅｒｍｉｎａｔｉｏｎ  ｅｐｏｃｈ）の最良の推定値を表しているタイムスタンプである。
Ｔ３は、サーバ２２０のクロックから発信されるＰＤＵの送信発信エポックの最良の推定値を表しているタイムスタンプである。
Ｔ４は、クライアント２１０のクロックに着信するＰＤＵの受信着信エポックの最良の推定値を表しているタイムスタンプである。
タイムスタンプのそれぞれは、プロトコルトランザクションにおける重要なエポックを表している。正確なタイムスタンプは、一般には、１つのパケット、より一般的には１つのＰＤＵにおいて伝えられ、例外として、ＰＴＰでは、正確なタイムスタンプを有するフォローアップパケットの概念がサポートされる。クライアントクロックにおいてＰＤＵが受信された時点で、そのタイムスタンプを使用して、クライアントクロックと、サーバにおける発信元ソースクロックとの間の周波数差の推定値（本文書においては「周波数推定値」と称する）を生成する。更に、以下の説明において、用語「チャネル」は、特定のサーバクロック及び関連付けられる経路を意味する目的で使用しており、用語「外れ値」は、無効であると判定されるタイミングソースを意味する目的で使用している。
【００１２】
[0019]図３Ａは、本発明の一実施形態による、周波数推定値生成プロセスを示している。タイムスタンプ３０５をＭｉＦＬＬ  ＰＤＵ測定プロセス３１０に供給し、このプロセス３１０において、ＰＤＶに起因する誤差成分をフィルタリングし（図３Ｂにおいて更に詳しく説明する）、出力３７５を生成する。出力３７５は、以降の図において更に詳しく説明するように、サーバ２２０に関連付けられるチャネルの周波数推定値及び関連付けられる有効性フラグとする、或いは、周波数推定値及び関連付けられる有効性フラグと、除去された周波数外れ値とすることができる。トランザクションにおけるタイムスタンプはトランザクションのタイプ（一方向トランザクション又は双方向トランザクション）に依存するため、ＰＤＵの中に４つのタイムスタンプＴ１〜Ｔ４のすべてが常に存在するわけではないことが、当業者には認識されるであろう。例えば、二次入力（例えば、マルチキャストＮＴＰ、マルチキャストＰＴＰ、ＲＴＰ）においては、トランザクションは一方向フローの結果であり、従って、ＰＤＵにはＴ１及びＴ２のみが存在する。それに対して、一次入力においては（例えば、ユニキャストＮＴＰ、ユニキャストＰＴＰ）、タイムスタンプセットは４つのタイムスタンプすべてから構成されうる。具体的には、ユニキャストＮＴＰの場合、トランザクションごとに４つのタイムスタンプすべてが存在するが、ユニキャストＰＴＰの場合、Ｎ個のトランザクションごとに１回のみ、４つのタイムスタンプすべてが存在し、それ以外のトランザクションにおいてはタイムスタンプＴ１及びＴ２のみが存在する。
【００１３】
[0020]図３Ｂは、本発明の一実施形態による、ＭｉＦＬＬ  ＰＤＵ測定プロセス３１０のステップを示している。このプロセスはステップ３２０から始まり、このステップ３２０において、ＰＤＵの有効性確認を実行する。このステップは、パケットが正しく形成されているか、パケットに誤りが存在していないか、及び、予測されるアドレスをパケットが有するか、を評価する標準的なステップである。オプションとして、ステップ３２０では、パケットが認証をパスするかをチェックするすることができる。
【００１４】
[0021]ＰＤＵの有効性が確認された時点で、タイムスタンプデータ３２５をステップ３３０に供給し、このステップ３３０においては、オフセットの測定を実行する。マルチキャストの一方向測定の場合のオフセット測定では、一般には伝搬遅延の補正がサポートされないが、双方向測定では、経路における遅延の非対称性によって制限される時刻精度での補正が行われる。一方向伝送動作（例えば、サーバ２２０のクロックから発信されてクライアント２１０のクロックに着信するパケットフロー又はＰＤＵフロー）の場合のオフセット測定は、単純である。この場合、発信側のタイムスタンプＴ３を、サーバ側の時刻（サーバの時刻系）に基づいて記録する一方で、着信側のタイムスタンプＴ４を、クライアント側の時刻（クライアントの時刻系）に基づいて記録する。トランザクションｎの測定オフセットδｍは、次のように計算することができる。
δｍ（ｎ）＝Ｔ４（ｎ）−Ｔ３（ｎ）
このオフセット測定にはいくつか重要な性質がある。第１の性質として、オフセット測定は一方向のパケット遅延によってバイアスが生じる。このパケット遅延は、一方向測定によって推定することができない。第２に、パケット遅延によるバイアスは、比較的短い時間枠において、より小さい値によって測定値を加重することによって、最小にすることができる。輻輳していないネットワークのパケットフローモデルでは、ネットワークの最小の遅延下限（ｍｉｎｉｍｕｍ  ｄｅｌａｙ  ｆｌｏｏｒ）（ステップ３４０において更に詳しく説明する）を確立することができるという概念がサポートされる。第３に、残留バイアスは、何らかの別の手段（例えば、逆方向に関連付けられるタイムスタンプを使用する）によって一方向遅延を推定することによって減少させることができ、或いは、周波数オフセットとしての周波数推定値が、単に位相オフセットの変化の割合（一定の位相バイアス誤差の場合には０）である場合、無視することができる。
【００１５】
[0022]ステップ３３０から、オフセット及び有効性のデータ３３５をステップ３４０に供給し、ステップ３４０においては、最小オフセットフィルタ（ＭＯＦ）によって、オフセットデータを前処理して、遅延下限付近に集中しているデータを取り出す。このステップにより、結果としてのクライアントクロックのパフォーマンスが大幅に向上する。パケットネットワークの１つの特性として、パケット遅延の変動が、「下限」を有する分布関数である。下限とは、本文書においては、与えられた経路においてパケット又はＰＤＵに生じうる最小の遅延として定義する。下限は、あるパケットがリソースを必要とするとき、（フローに関与するすべての機器（送信元要素、送信先要素、及び中間要素を含む）における）出力キュー及びシステムキューの両方がそれらのほぼ最小状態にある条件と考えることができる。輻輳していない負荷条件下では、パケットの総数のうちの一部は、たとえそれ以外のパケットに大幅に長い遅延が生じても、この下限において、又は下限付近でネットワークを伝わる。原理的には、下限ベースの伝送ノイズは、次の４つの要因に限定される最小値を有する。第１の要因は、物理層伝搬時の「光速」遅延である。第２の要因は、タイムスタンプの解像度である。第３の要因は、ＴＤＭベースの伝送を通じてのマッピング遅延である。第４の制限要因は、その他の小さな遅延変動メカニズム（例えば、物理層のクロックジッター、バックプレーンのクロックドメインジッター）である。
【００１６】
[0023]ステップ３４０のＭＯＦアルゴリズムは、タイムエポックｎにおけるチャネルのそれぞれに関連付けられるデータと、チャネル測定の特性データとを利用する。タイムエポックｎにおけるチャネルのそれぞれに関連付けられるデータは、以下のとおりである。
δｍｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する測定オフセット推定値
δｕｔｍｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、傾斜していない（ｕｎ−ｔｉｌｔｅｄ）測定オフセット推定値
δｍｉｎｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する最小の測定オフセット推定値
Ｉｎ＿Ｖａｌｉｄｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの入力有効性フラグ
Ｏｕｔ＿Ｖａｌｉｄｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの出力有効性フラグ
これら５つのデータ要素は、ＭＯＦ入力バッファに維持する。バッファエントリのそれぞれを、タイムエポックインデックス（ｎ）によってインデックス化する。最も新しいＮ個のサンプルに対して効率的に動作させるためには、循環バッファを実施することが好ましい。初期化条件は、バッファ内のすべてのエントリについてＩｎ＿Ｖａｌｉｄ［ｊ］及びＯｕｔ  Ｖａｌｉｄ［ｊ］がＦＡＬＳＥである。
【００１７】
[0024]ステップ３４０のＭＯＦアルゴリズム用のチャネル測定の特性データは、次のように定義する。
ｂｉ：入力オフセットバッファのサイズ係数。バッファの深さは２ｂｉ（＝Ｎ）個の要素
ｒｅｓｉ：測定におけるタイムスタンプのネイティブ解像度（Ｉｓｂあたりのナノ秒）
ｂｕｆｍｉｎｉ：有効な出力を処理するために必要な有効なバッファエントリの最小数
ｔｉｌｔｉ：連続するオフセットサンプル間の推定傾斜（単位は測定のネイティブ解像度）
ｓｌｅｗｍｏｆ：外れ値に起因する下限からの逸脱を抑制するためのスルー制限係数（ｓｌｅｗ  ｌｉｍｉｔｉｎｇ  ｆａｃｔｏｒ）（０＜ｓｌｅｗｍｏｆ＜１）
【００１８】
[0025]上に定義した変数を使用すると、ステップ３４０のＭＯＦアルゴリズムは以下のとおりである。
ステップ１：現在の（インデックスｎの）サンプルをＭＯＦバッファに加え、最も古いインデックスのサンプルを削除する。
ステップ２：少なくともｂｕｆｍｉｎｉ個の入力が有効であることを確認する。有効ではない場合、現在のＯｕｔ＿Ｖａｌｉｄｉ［ｎ］をＦＡＬＳＥに設定して終了する。
ステップ３：傾斜していないバッファエントリを更新する。
ステップ３ａ：新しい傾斜係数を、
【数１】
2009525710.tif 000003
によって計算する。この式において、ＮＣＯｓｙｓｔは、ローカル発振器に現在適用されている、システム全体のわずかな周波数補正（ｏｖｅｒａｌｌ  ｓｙｓｔｅｍ  ｆｒａｃｔｉｏｎａｌ  ｆｒｅｑｕｅｎｃｙ  ｃｏｒｒｅｃｔｉｏｎ）（単位：ｐｐｂ）であり、τ０は、オフセットサンプル間の間隔（秒）である。
ステップ３ｂ：累積傾斜（ｃｔｉｌｔ）を０に初期化する。
ステップ３ｃ：循環バッファに対して以下のように演算する。現在のサンプルは、ｎ  ｍｏｄｕｌｏ  Ｎであり、最も古いサンプルは、（ｎ−Ｎ＋ｌ）  ｍｏｄｕｌｏ  Ｎである。インデックスｊ＝（ｎ−Ｎ＋ｌ）  ｍｏｄｕｌｏ  Ｎに設定する。
ステップ３ｄ：δｕｔｍｉ［ｊ］＝δｍｉ［ｊ］＋ｃｔｉｌｔ
ステップ３ｅ：ｃｔｉｌｔ＝ｃｔｉｌｔ＋ｔｉｌｔｉ
ステップ３ｆ：ｊ＝ｎ  ｍｏｄｕｌｏ  Ｎであるならば、ステップ３を終了する。
ステップ３ｇ：ｊ＝（ｊ＋１）  ｍｏｄｕｌｏ  Ｎであるならば、ステップ３ｄに進む。
ステップ４：時刻ｎにおける現在の最小の測定オフセット値を更新する。
ステップ４ａ：傾斜していない一連のエントリ（ｉｎ＿ｖａｌｉｄがＴＲＵＥに設定されているエントリ）の中を探索し、最小エントリのインデックスｊｆｌｏｏｒを求める。値が同じである場合、より新しいエントリを優先させる。
ステップ４ｂ：δｍｉ［ｊｆｌｏｏｒ］＜δｍｉｎｉ［（ｎ−ｌ）  ｍｏｄｕｌｏ  Ｎ］ならば、δｍｉｎｉ［（ｎ）  ｍｏｄｕｌｏ  Ｎ］＝δｍｉ［ｊｆｌｏｏｒ］
ステップ４ｃ：それ以外の場合、δｍｉｎｉ［（ｎ）  ｍｏｄｕｌｏ  Ｎ］＝δｍｉｎｉ［（ｎ−１）  ｍｏｄｕｌｏ  Ｎ］（１−ｓｌｅｗｍｏｆ）＋δｍｉ［ｊｆｌｏｏｒ］ｓｌｅｗｍｏｆ
【００１９】
[0026]ステップ３４０から、最小オフセットデータ３４５をステップ３５０に供給し、このステップ３５０においては、周波数推定フィルタ（ＦＥＦ）が、線形フィルタリングプロセスを実行し、ローカル発振器に関連する、特定の入力チャネルの位相遅延の変化の割合（わずかな周波数誤差（ｆｒａｃｔｉｏｎａｌ  ｆｒｅｑｕｅｎｃｙ  ｅｒｒｏｒ））を生成する。ＦＥＦアルゴリズムの出力３７５は、現在のチャネルの周波数推定値及び関連付けられる有効性フラグである。別の線形フィルタ構造も、本発明の基本的な範囲から逸脱することなく使用することができることが、当業者には認識されるであろう。この実施形態に提示したＦＥＦアルゴリズムは、演算の計算効率が高い。
【００２０】
[0027]ステップ３５０のＦＥＦアルゴリズムは、タイムエポックｎにおけるチャネルのそれぞれに関連付けられるデータと、ＦＥＦデータとを利用する。タイムエポックｎにおけるチャネルのそれぞれに関連付けられるデータは、以下のとおりである。
δｓｍｉｎｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する、平滑化後の最小の測定オフセット推定値
ｆｓｍｉｎｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する、平滑化後の最小の周波数推定値
ｆｅｓｔｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する、出力周波数推定値
Ｉｎ＿ＦＥＦ＿Ｖａｌｉｄｊ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの入力有効性フラグ
Ｏｕｔ＿ＦＥＦ＿Ｖａｌｉｄｊ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの出力有効性フラグ
上に定義した５つのデータ要素は、ＦＥＦバッファに維持する。バッファエントリのそれぞれを、タイムエポックインデックス（ｎ）によってインデックス化する。最も新しいＮ個のサンプルに対して効率的に動作させるためには、循環バッファを実施することが好ましい。初期化条件はＩｎ＿ＦＥＦ＿Ｖａｌｉｄ［ｊ］であり、Ｏｕｔ＿ＦＥＦ＿Ｖａｌｉｄ［ｊ］は、バッファ内のすべてのエントリに対してＦＡＬＳＥである。
【００２１】
[0028]ステップ３５０のＦＥＦアルゴリズムのＦＥＦデータは、次のように定義する。
ｂｉ：ＦＥＦバッファのサイズ係数。バッファの深さは２ｂｉ（Ｍ）個の要素
τｓｆ：第１段周波数フィリタングの平滑化時定数
ｒｅｓｔ：第２段周波数平滑化フィルタの時定数を制御するための比パラメータ
【００２２】
[0029]上に定義した変数を使用すると、ステップ３５０のＦＥＦアルゴリズムは以下のとおりである。
ステップ１：現在の（インデックスｎの）サンプルをＦＥＦバッファに加え、最も古いインデックスのサンプルを削除する。
ステップ２：入力データが有効である場合、ｏｓｍｉｎｉ［ｎ］パラメータを次のように更新する。
δｓｍｉｎｉ［ｎ］＝［δｓｍｉｎｉ［ｎ−１］（（τｓｆ／τ０）−１）＋δｍｉｎｉ［ｎ］］／（τｓｆ／τ０）
ステップ３：平滑化後の周波数推定値に変換する。
ステップ３ａ：最も新しいＩｎ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］エントリと最も古いＩｎ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］エントリの両方が有効であるならば、次のように周波数推定値に変換する。
ｆｓｍｉｎｉ［ｎ］＝［δｓｍｉｎｉ［ｎ］−δｓｍｉｎｉ［ｎ−Ｍ］］／（Ｍτ０）
現在のエントリＯｕｔ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］：をＴＲＵＥに設定する。
ステップ３ｂ：それ以外の場合、現在のエントリＯｕｔ＿ＦＥＦ＿Ｖａｌｉｄｉ［ｎ］：をＦＡＬＳＥに設定する。
ステップ４：Ｏｕｔ＿ＦＥＦ＿ＶａｌｉｄがＴＲＵＥである場合、ｆｅｓｔｉ［ｎ］パラメータを次のように更新する。
ｆｅｓｔｉ［ｎ］＝［ｆｅｓｔｉ［ｎ−１］（（ｒｅｓｔ  τｓｆ／τ０）−１）＋ｆｓｍｉｎｉ［ｎ］］／（ｒｅｓｔ  τｓｆ／τ０）
【００２３】
[0030]図３Ｃは、本発明の別の実施形態による、ＭｉＦＬＬ  ＰＤＵ測定プロセス３１０のステップを示している。この実施形態においては、ステップ３２０、ステップ３３０、ステップ３４０、及びステップ３５０は、図３Ｂにおいて説明したとおりであり、ステップ３６０が追加されている。ステップ３５０から、周波数推定値３５５をステップ３６０に供給し、このステップ３６０において、周波数クラスタリング（ＦＣ）アルゴリズムが、前のチャネル挙動との整合性のない周波数推定値の外れ値がクライアント出力周波数に悪影響を及ぼしうる前に、これらの外れ値を検出して削除する。このとき、個々のサーバクロック及び関連付けられる経路に関連付けられる周波数推定値が、与えられたタイムエポックｎにおいて同程度であるべきものと予測される。推定値が同程度であるべきことは、次の３つの想定に基づく。第１の想定として、ローカル発振器の周波数オフセットは、与えられたタイムエポックにおける測定値のすべてに共通している。第２の想定として、周波数推定プロセスではＰＤＶによって有限の誤差が生じる。第３の想定として、ソースクロックは、通常では、経路の影響と比較して本質的に大きくはないバイアスを伴って動作する。実際には、周波数クラスタ内の要素間の最も大きな距離はＰＤＶによって生じる。従って、ＦＣアルゴリズムは、定常状態においてチャネル間でのＰＤＶの差を吸収する役割を果たす。更に、ＦＣアルゴリズムは、周波数推定値の下層の安定性の漸次変化を吸収する。従って、実世界の影響（負荷或いは経路の変化）があらかじめ予期されている。言い換えれば、周波数外れ値を検出して削除するＦＣアルゴリズムは、検出可能な外れ値を排除するファイアウォールとみなすことができる。このファイアウォール内のノイズの影響を排除することはできないが、本アルゴリズムのＭｉＦＬＬセクションにおける加重を含んだ演算は、この影響を最小化するように設計されている。
【００２４】
[0031]ステップ３６０のＦＣアルゴリズムは、タイムエポックｎにおけるチャネルのそれぞれに関連付けられるデータを利用する。これらのデータは次のように定義する。
ｆｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連する周波数誤差推定値
σ２ｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの、ローカル発振器に関連するアラン分散推定（）
Ｉｎ＿Ｖａｌｉｄｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルの入力有効性フラグ
Ｃｌｕｓｔｅｒ＿Ｖａｌｉｄｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルのクラスタ有効性フラグ
αｃｉ［ｎ］：時刻インデックスｎにおけるｉ番目のチャネルクラスタのアラン分散フィルタの平滑化係数（０＜αｍｉｎ＜αｃ＜αｍａｘ＜１）
【００２５】
[0032]上に定義した変数を使用すると、ステップ３６０のＦＣアルゴリズムは以下のとおりである。
ステップ１：Ｃｌｕｓｔｅｒ＿ＶａｌｉｄフラグのすべてをＴＲＵＥに初期化する。
ステップ２：ｍを計算する。ｍは、Ｉｎ＿Ｖａｌｉｄ及びＣｌｕｓｔｅｒ＿Ｖａｌｉｄの両方がＴＲＵＥである要素の数である。
ステップ３：候補のクラスタの重心を計算する。
ステップ３ａ：ｍ個のセットの中の有効なチャネルのそれぞれについて、ｗｉ［ｎ］＝ｗｒｉ［ｎ］／Σｗｒｉ［ｎ］（ｍ個の有効なチャネル全体の合計）として重みを計算する。この式において、ｗｒｉ［ｎ］＝１／σ２ｉ［ｎ−１］であり、σ２ｉ［ｎ］の計算については後述する。
ステップ３ｂ：３ａの重みを使用して、クラスタの加重平均を次式として計算する。
ｆｃａｖｇ［ｎ］＝Σｆｉ［ｎ］ｗｉ［ｎ］（ｍ個の有効なチャネル全体の合計）
ステップ４：有効なチャネルのそれぞれについて、以下を行う。
ステップ４ａ：クラスタの外れ値のしきい値を、Ｔｃｉ［ｎ］＝ｐσ２ｉ［ｎ−１］［ｌ＋ｌ／ｍ］として計算する。この式において、ｐは一定の百分率係数であり、通常では［１＜ｐ＜３］である。
ステップ４ｂ：距離がしきい値を超える場合（｜ｆｉ［ｎ］−ｆｃａｖｇ［ｎ］｜＞Ｔｃｉ［ｎ］）、Ｃｌｕｓｔｅｒ＿Ｖａｌｉｄｉ［ｎ］をＦＡＬＳＥに設定する。
ステップ５：再びｍを計算する。変化していない場合、クラスタリングは完了であり、変化している場合、ステップ３に進む。
【００２６】
[0033]アラン分散推定値の計算は、ＦＣアルゴリズムをサポートするうえで必要である。アラン分散は、実世界のランダムな周波数のプロセスの周波数安定性を推定するための指標である。本明細書に説明したように、周波数推定値サンプルｆｉ［ｎ］は、自由に動作している（ｆｒｅｅ−ｒｕｎｎｉｎｇ）ローカル発振器に関連する値である。ＭｉＦＬＬアルゴリズムは、ローカル発振器を自由動作状態で動作させ得ることに基づいている。発振器をバラクタによって操作する（ｖａｒａｃｔｏｒ−ｓｔｅｅｒ）必要はなく、バラクタによって操作すると、ノイズ及び非線形の影響が生じる。バラクタによる操作を使用するときには、操作の補正の推定値を用いて自由動作時のデータを取得することにより、ＭｉＦＬＬアルゴリズムは容易に拡張される。システムの最終的な出力は、通常では、ローカル発振器における開ループ（自由動作）誤差が補正されるようにデジタル周波数合成によって達成される。原理的には、分散推定値には、周波数推定に使用する積分時間における発振器ノイズによってバイアスが生じる。実際には、あらゆる場合において、この余分な発振器ノイズはチャネルのノイズと比較して極めて小さく、ローカル発振器を、短期の入力ノイズを計算するための基準として使用することができる。
【００２７】
[0034]アラン分散推定値は、時刻ｎにおいてクラスタリングアルゴリズムが完了した後に更新するのみである。有効なｍ個のチャネルセットのみを更新する。チャネルのアラン分散サンプルは次のように構築する。
Ｓｉ［ｎ］＝（ｆｉ［ｎ］−ｆｉ［ｎ−ｌ］）／２
アラン分散を次のように更新する。
σ２ｉ［ｎ］＝（１−αｃｉ［ｎ］）σ２ｉ［ｎ−１］＋αｃｉ［ｎ］Ｓ２ｉ［ｎ］
本明細書中で前述したように、αｃｉ［ｎ］は、時刻インデックスｎにおけるｉ番目のチャネルクラスタのアラン分散フィルタの平滑化係数である。この平滑化係数は、推定器の信頼区間について、ノイズレベルが徐々に変化するように推定器の応答性を調整する。この挙動は、大域的最大値及び大域的最小値によって制約される（０＜αｃｉ［ｎ］＜αｃ＜αｍａｘ＜１）。最初に収束をサポートするため、以下のように、αｃｉをαｍａｘに設定し、αｍｉｎまで徐々に減少させる。
αｃｉ［ｎ］＝（１−αｃ）αｃｉ［ｎ−１］＋ａｃαｃｉ［ｎ］
この式において、ａｃは、システムの大域的適合化係数である。
チャネルの再初期化時には、αｃｉをαｍａｘに設定し、σ２ｉ［ｎ］を大域的最大レベルσ２ｃｍａｘに設定する。システムの起動時にはすべてのチャネルを初期化する必要がある。更に、無効な条件（入力又はクラスタのいずれか）がしばらく続いた後には、チャネルを再初期化すべきである。
【００２８】
[0035]図４は、本発明の１つ以上の態様を実施するように構成されている同期要素４００の概念図である。図示したように、同期要素４００は、クロックユニット４１０と、周波数推定値生成ユニット４３０と、ネットワークプロトコルスタック４６０と、メディアアクセスコントローラ（ＭＡＣ）４７０と、物理層（ＰＨＹ）４８０とを含んでいる（ただしこれらに限定されない）。同期要素４００は、送信出力（ＴＸ）４８５を通じてパケットを送信し、受信入力（ＲＸ）４９５を通じてパケットを受信する。クロックユニット４１０は、タイムスタンプを生成するタイムスタンプユニット（ＴＳＵ）４１５と、クライアントクロック４２５とを含んでいる（ただしこれらに限定されない）。周波数推定値生成ユニット４３０は、ポートインタフェース４３５と、タイムスタンプインタフェース４４５と、クロックインタフェース４５５とを含んでいる（ただしこれらに限定されない）。周波数推定値生成ユニット４３０は、クライアントクロック４２５及びハードウェアＴＳＵ  ４１５に結合されており、本明細書の中で説明したアルゴリズムを実施する。ポートインタフェース４３５は、マルチキャストＮＴＰメッセージ及びマルチキャストＰＴＰメッセージを送出する、若しくは受信する、又はその両方を行うために使用される。タイムスタンプインタフェース４４５は、タイムスタンプを送出する、若しくは受信する、又はその両方を行うために使用される。特定の実施形態では、タイムスタンプインタフェース４４５とポートインタフェース４３５とを統合して、１つの結合されたインタフェースとすることができる。クロックインタフェース４５５は、周波数推定値生成ユニット４３０において生成された結果に従って、ローカルクロック４２５を読み取って修正するために使用される。同期要素４００は、タイムスタンピングユニットとローカルクロックとを含んでいる任意のプロセッサにおいて実施することができる。
【００２９】
[0036]図５は、本発明の１つ以上の態様を実施するように構成されているコンピューティングデバイス５００を示している。図示したように、コンピューティングデバイス５００は、プロセッサ５１０と、メモリ５１５と、アプリケーション回路５２０とを含んでいる。メモリ５１５及びアプリケーション回路５２０は、プロセッサ５１０に結合されている。プロセッサ５１０は、同期要素４００を含んでいる。同期要素４００は、本明細書の中で説明したアルゴリズムを実行し、コンピューティングデバイス５００内のクライアントクロック４２５を、ネットワーク上の最も正確なサーバクロックに同期させることができる。コンピューティングデバイス５００は、タイミング信号を生成するためのクライアントクロックを必要とするアプリケーション回路を含んでいる任意のタイプのコンピューティングデバイスとすることができる。コンピューティングデバイスの例としては、パーソナルコンピュータ、データセンターサーバ、ルータ、ＩＰ電話装置、携帯電話、携帯情報端末が挙げられる（ただしこれらに限定されない）。予想される実現形態は、タイムスタンプ及びクロックのサポートを内蔵した埋込み型のコンピューティングデバイスである。このようなコンピューティングデバイスの一般的な用途は、電気通信アプリケーション及び産業アプリケーション（例えば、ＤＳＬ集約装置、パッシブ光ネットワークＯＮＵ、ワイヤレス基地局及びアクセスポイント）において要求されるクライアントの同期である。
【００３０】
[0037]本発明によると、コンピューティングデバイスは以下を行うことができる。
−  様々なタイミングソースから時刻及び周波数の情報を受信する。
−  以下のステップを実行することによって、様々なタイミングソースから受信されるデータをクロスチェックし、クライアントクロックとタイミングソースのそれぞれとの間の適切な周波数差を生成し、タイミングソースそれぞれの有効性を自発的に確立する。
○ＰＤＵの有効性確認
○オフセットの測定
○最小オフセットフィルタリング
○周波数フィルタリング
○周波数クラスタリング
−  最も信頼性の高い一次入力及び二次入力をＭｉＦＬＬに提供する。
−  任意の指定される時刻測定間隔に対して良好な安定性のクライアントクロックを達成する。
【００３１】
[0038]開示した方法の１つの利点は、より信頼性のタイミングソース（例えば、マルチキャストＮＴＰサーバ、マルチキャストＰＴＰサーバ）を使用して一次ソースを補足することによって、クライアントクロックの制御を達成することができることである。開示した方法はアルゴリズムを含んでおり、このアルゴリズムは、マルチキャストＮＴＰサーバ、マルチキャストＰＴＰサーバから得られる測定データをクロスチェックし、チャネルの有効性を自発的に確立し、チャネルからの現在の周波数推定値をＭｉＦＬＬアルゴリズムにおいて使用することができるかを結論する。結果として、一次ソースに負荷が加わることなく、低コスト、低出力の発振器によって、クライアントクロック側で時刻及び周波数の情報を取り出すことができ、これにより、サーバ及びクライアントの両方のコストが低減する。更には、開示した方法においては、利用可能な様々なタイミングソースを「有効性」及び「適切性」に基づいて分類し、全体的な解決策において使用できるようにこれらを適切に加重する。このような分類により、最も信頼性の高い一次入力及び二次入力のみがＭｉＦＬＬに供給されるため、ＭｉＦＬＬアルゴリズムの結果が向上する。更には、開示した方法では、短期、中期、及び長期の測定間隔に対して良好な安定性を有し、ネットワーク全体にわたり容易に再現可能であるクライアントクロックが可能になる。
【００３２】
[0039]本発明は、ハードウェア又はソフトウェアに実施することができ、ソフトウェアは、コンピュータシステムにおいて使用するプログラム製品として提供される。プログラム製品の（１つ以上の）プログラムは、（本文書に記載した方法を含んでいる）実施形態の機能を定義しており、様々なコンピュータ可読記憶媒体に含めることができる。コンピュータ可読記憶媒体の実例としては、（ｉ）情報が永久的に格納される書き込み不可能の記憶媒体（例えば、コンピュータ内の読み取り専用メモリデバイス（例：ＣＤ−ＲＯＭドライブによって読み取ることのできるＣＤ−ＲＯＭディスク））、（ｉｉ）変更可能な情報が格納される書き込み可能の記憶媒体（例えば、ディスクドライブ内のフロッピーディスク、ハードディスクドライブ）が挙げられる（ただしこれらに制限されない）。このようなコンピュータ可読記憶媒体は、本発明の機能を命令するコンピュータ可読命令を担持しているとき、本発明の実施形態である。
【００３３】
[0040]ここまでの説明は本発明の実施形態についてのものであるが、本発明の別の更なる実施形態を、本発明の基本的な範囲から逸脱することなく創案することができる。
【図面の簡単な説明】
【００３４】
【図１】ネットワーク要素において利用可能である様々なタイミングソースを示している。
【図２】本発明の一実施形態による、タイムスタンプの概念を示している。
【図３Ａ】本発明の一実施形態による、周波数推定値生成プロセスを示している。
【図３Ｂ】本発明の一実施形態による、ＭｉＦＬＬ  ＰＤＵ測定プロセスのステップを示している。
【図３Ｃ】本発明の別の実施形態による、ＭｉＦＬＬ  ＰＤＵ測定プロセスのステップを示している。
【図４】本発明の１つ以上の態様を実施するように構成されている同期要素の概念図である。
【図５】本発明の１つ以上の態様を実施するように構成されているコンピューティングデバイスを示している。
【図１】
2009525710.tif 000005
【図２】
2009525710.tif 000006
【図３Ａ】
2009525710.tif 000007
【図３Ｂ】
2009525710.tif 000008
【図３Ｃ】
2009525710.tif 000009
【図４】
2009525710.tif 000010
【図５】
2009525710.tif 000011
【国際調査報告】
2009525710.tif 000012