(57)【要約】  方法が、第１のデバイスにおいて、第２のデバイスからパケットを受信することを含む。方法はまた、検出回路において、パケットの受信を検出することをも含む。方法は、パケットの受信を検出したことに応答して、取込み回路において、パケットに対応する到着時刻タイムスタンプを取り込むことをさらに含む。方法はまた、第１のデバイスにおいて、パケットに対応する出発時刻タイムスタンプを第２のデバイスから受信することをも含む。出発時刻タイムスタンプは、パケットが第２のデバイスから送られる時刻を示す。方法は、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施することをさらに含む。
2017521027.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスにおいて、第２のデバイスからパケットを受信することと、
検出回路において、前記パケットの受信を検出することと、
前記パケットの前記受信を検出したことに応答して、取込み回路において前記パケットに対応する到着時刻タイムスタンプを取り込むことと、
前記第１のデバイスにおいて、前記パケットに対応する出発時刻タイムスタンプを前記第２のデバイスから受信することと、前記出発時刻タイムスタンプが、前記パケットが前記第２のデバイスから送られる時刻を示す、
前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとの比較を実施することと
を備える方法。
【請求項２】
前記検出回路が、第１のＯＳＩレイヤにおいて動作するように構成された第１のオープンシステム相互接続モデル（ＯＳＩ）レイヤ回路であり、前記取込み回路が、第２のＯＳＩレイヤにおいて動作するように構成された第２のＯＳＩレイヤ回路であり、前記第１のＯＳＩレイヤが前記第２のＯＳＩレイヤより下位である請求項１に記載の方法。
【請求項３】
前記第１のＯＳＩレイヤがデータリンクレイヤを含み、前記第２のＯＳＩレイヤがアプリケーションレイヤを含み、前記検出回路が、前記パケットを復号することなく前記パケットの受信を検出する請求項２に記載の方法。
【請求項４】
前記検出回路が、前記パケットの第１のビットが受信されることを検出したことに基づいて、前記パケットの受信を検出し、前記第１のビットが、前記パケットの最も早く受信されたビットである請求項１に記載の方法。
【請求項５】
前記到着時刻タイムスタンプが、第１のクロックレジスタからシャドータイムスタンプレジスタに前記到着時刻タイムスタンプをコピーすることによって取り込まれ、前記出発時刻タイムスタンプが、前記第２のデバイスの第２のクロックレジスタに対応し、前記第１のクロックレジスタがアプリケーションに関連する請求項１に記載の方法。
【請求項６】
前記比較に基づいて、前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させることをさらに備える請求項５に記載の方法。
【請求項７】
前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させることが、前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとの間の差に基づいて、前記第１のクロックレジスタの値を更新することを含む請求項５に記載の方法。
【請求項８】
前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させることが、前記到着時刻タイムスタンプおよび前記出発時刻タイムスタンプに基づいて、前記第１のクロックレジスタと前記第２のクロックレジスタとの間のオフセットを決定することを含む請求項５に記載の方法。
【請求項９】
前記検出回路が、前記パケットの前記受信を検出したことに応答して、タイムスタンプ取込み信号をアサートし、前記取込み回路が、前記タイムスタンプ取込み信号に応答して、前記到着時刻タイムスタンプを取り込む請求項１に記載の方法。
【請求項１０】
前記タイムスタンプ取込み信号が、ハードウェア信号、ソフトウェア信号、またはその両方を含む請求項９に記載の方法。
【請求項１１】
前記タイムスタンプ取込み信号が割込み信号を含む請求項９に記載の方法。
【請求項１２】
前記検出回路が、第２のパケットの送信を検出したことに応答して、第２のタイムスタンプ取込み信号をアサートし、前記タイムスタンプ取込み信号および前記第２のタイムスタンプ取込み信号が、独立した側波帯プローブ信号である請求項９に記載の方法。
【請求項１３】
前記タイムスタンプ取込み信号がエッジトリガ信号を含み、前記第１のデバイスが、オーディオソースデバイス、ビデオソースデバイス、またはその両方を含む請求項９に記載の方法。
【請求項１４】
デバイスに対するパケットの送信を検出するように構成された検出回路と、
前記検出回路に応答する取込み回路と、前記取込み回路が、前記検出回路において、前記パケットの送信を検出したことに応答して、前記パケットに対応する出発時刻タイムスタンプを取り込むように構成される、
前記デバイスから到着時刻タイムスタンプを受信するように構成された受信機と、前記到着時刻タイムスタンプが前記パケットに対応し、ここにおいて、前記到着時刻タイムスタンプが、前記パケットが前記デバイスによって受信される時刻を示す、
前記検出回路、前記受信機、および前記取込み回路に結合されたプロセッサと、前記プロセッサが、前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとを比較するように構成される、
を備える装置。
【請求項１５】
前記検出回路が、前記パケットの前記送信を検出したことに応答して、第１のタイムスタンプ取込み信号をアサートするようにさらに構成され、前記取込み回路が、前記第１のタイムスタンプ取込み信号に応答して、前記出発時刻タイムスタンプを取り込むようにさらに構成される請求項１４に記載の装置。
【請求項１６】
第１のクロックレジスタと第１のシャドータイムスタンプレジスタとをさらに備え、前記出発時刻タイムスタンプが、前記第１のクロックレジスタから前記第１のシャドータイムスタンプレジスタに前記出発時刻タイムスタンプをコピーすることによって取り込まれる請求項１４に記載の装置。
【請求項１７】
メモリをさらに備え、前記受信機が、前記メモリ内に前記到着時刻タイムスタンプを記憶するようにさらに構成され、前記プロセッサが、前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとを比較する前に、
前記メモリから前記到着時刻タイムスタンプを読み取り、
前記第１のシャドータイムスタンプレジスタから前記出発時刻タイムスタンプを読み取る
ようにさらに構成される請求項１６に記載の装置。
【請求項１８】
前記到着時刻タイムスタンプが、前記デバイスの第２のクロックレジスタに対応し、前記プロセッサが、前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとの間の差に基づいて、前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させるようにさらに構成される請求項１６に記載の装置。
【請求項１９】
前記到着時刻タイムスタンプが、前記デバイスの第２のクロックレジスタに対応し、前記プロセッサが、前記到着時刻タイムスタンプおよび前記出発時刻タイムスタンプに基づいて、前記第１のクロックレジスタと前記第２のクロックレジスタとの間のオフセットを決定することによって、前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させるようにさらに構成される請求項１６に記載の装置。
【請求項２０】
前記プロセッサが、前記デバイスに前記出発時刻タイムスタンプを送るようにさらに構成される請求項１４に記載の装置。
【請求項２１】
前記検出回路が、前記プロセッサから前記パケットを受信し、前記デバイスに送信するために送信機に前記パケットを供給するようにさらに構成され、前記検出回路が、前記送信機に前記パケットの第１のビットを供給したことに応答して、第１のタイムスタンプ取込み信号をアサートするようにさらに構成される請求項１４に記載の装置。
【請求項２２】
前記受信機が、
前記デバイスから第２のパケットを受信し、
前記デバイスから第２の出発時刻タイムスタンプを受信するようにさらに構成され、前記第２の出発時刻タイムスタンプが、前記第２のパケットが前記デバイスから送られる第２の時刻を示し、
前記検出回路が、前記受信機による前記第２のパケットの受信を検出するようにさらに構成され、
前記取込み回路が、前記検出回路において、前記第２のパケットの前記受信を検出したことに応答して、前記第２のパケットに対応する第２の到着時刻タイムスタンプを取り込むようにさらに構成され、
前記プロセッサが、前記第２の到着時刻タイムスタンプと前記第２の出発時刻タイムスタンプとを比較するようにさらに構成される請求項１４に記載の装置。
【請求項２３】
前記検出回路が、前記受信機によって前記第２のパケットの前記受信を検出したことに応答して、第２のタイムスタンプ取込み信号をアサートするようにさらに構成され、前記取込み回路が、前記第２のタイムスタンプ取込み信号に応答して、前記第２の到着時刻タイムスタンプを取り込むようにさらに構成される請求項２２に記載の装置。
【請求項２４】
第１のクロックレジスタと第２のシャドータイムスタンプレジスタとをさらに備え、前記取込み回路が、前記第１のクロックレジスタから前記第２のシャドータイムスタンプレジスタに前記第２の到着時刻タイムスタンプをコピーすることによって前記第２の到着時刻タイムスタンプを取り込むようにさらに構成される請求項２２に記載の装置。
【請求項２５】
プロセッサによって実行されるとき、
デバイスからパケットを受信することと、
検出回路において、前記パケットの受信を検出することと、
前記パケットの前記受信を検出したことに応答して、取込み回路において前記パケットに対応する到着時刻タイムスタンプを取り込むことと、
前記デバイスから前記パケットに対応する出発時刻タイムスタンプを受信することと、前記出発時刻タイムスタンプが、前記パケットが前記デバイスから送られる時刻を示す、
前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとの比較を実施することと
を備える動作を前記プロセッサに実施させる命令を記憶するコンピュータ可読記憶デバイス。
【請求項２６】
前記到着時刻タイムスタンプが、第１のクロックレジスタからシャドータイムスタンプレジスタに前記到着時刻タイムスタンプをコピーすることによって取り込まれ、前記出発時刻タイムスタンプが前記デバイスの第２のクロックレジスタに対応し、前記動作が、前記比較に基づいて、前記第１のクロックレジスタと前記第２のクロックレジスタとを同期させることをさらに備える請求項２５に記載のコンピュータ可読記憶デバイス。
【請求項２７】
複数の到着時刻タイムスタンプが、第１の複数のクロックレジスタから複数のシャドータイムスタンプレジスタに前記複数の到着時刻タイムスタンプをコピーすることによって、前記取込み回路によって取り込まれ、
前記複数の到着時刻タイムスタンプが、前記パケットの前記受信を検出したことに応答して、前記取込み回路によって取り込まれ、
前記複数の到着時刻タイムスタンプが前記到着時刻タイムスタンプを含み、
前記第１の複数のクロックレジスタが前記第１のクロックレジスタを含み、
前記複数のシャドータイムスタンプレジスタが前記シャドータイムスタンプレジスタを含む請求項２６に記載のコンピュータ可読記憶デバイス。
【請求項２８】
前記動作が、
前記デバイスから第２の複数のクロックレジスタの複数の出発時刻タイムスタンプを受信することと、前記複数の出発時刻タイムスタンプが、前記パケットが前記デバイスから送られる時刻を示す、
前記複数のシャドータイムスタンプレジスタから前記複数の到着時刻タイムスタンプを読み取ることと、
前記複数の到着時刻タイムスタンプと前記複数の出発時刻タイムスタンプとを比較することと
をさらに備え、
前記複数の出発時刻タイムスタンプが前記出発時刻タイムスタンプを含む請求項２７に記載のコンピュータ可読記憶デバイス。
【請求項２９】
第２のデバイスからパケットを受信し、
前記第２のデバイスから出発時刻タイムスタンプを受信する
ように構成された受信機と、ここにおいて、前記出発時刻タイムスタンプが前記パケットに対応し、前記出発時刻タイムスタンプが、前記パケットが前記第２のデバイスから送られる時刻を示す、
前記受信機に結合され、前記受信機による前記パケットの受信を検出するように構成された検出回路と、
前記検出回路に応答する取込み回路と、前記取込み回路が、前記検出回路において、前記受信機による前記パケットの前記受信を検出したことに応答して、到着時刻タイムスタンプを取り込むように構成される、
前記受信機および前記取込み回路に結合されたプロセッサと、前記プロセッサが、前記到着時刻タイムスタンプと前記出発時刻タイムスタンプとの比較を実施するように構成される、
を備えるデバイス。
【請求項３０】
前記検出回路が、前記受信機による前記パケットの前記受信を検出したことに応答して、タイムスタンプ取込み信号をアサートするようにさらに構成され、前記取込み回路が、前記タイムスタンプ取込み信号に応答して、前記到着時刻タイムスタンプを取り込むようにさらに構成される請求項２９に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
[0001]本願は、本願と同じ所有者の、２０１４年７月３日出願の米国仮特許出願第６２／０２０，９２５号と、２０１５年６月２９日出願の米国非仮特許出願第１４／７５４，３４３号の優先権を主張し、それらの内容は、参照によりその全体が明白に組み込まれる。
【０００２】
[0002]本開示は、一般にはネットワーククロック比較に関する。
【背景技術】
【０００３】
[0003]技術の進歩の結果、コンピューティングデバイスはより小型に、より強力になった。たとえば、小型、軽量であり、ユーザによって容易に持ち運ばれるポータブルワイヤレス電話、携帯情報端末（ＰＤＡ）、ページングデバイスなどの、ワイヤレスコンピューティングデバイスを含む様々なポータブルパーソナルコンピューティングデバイスが現在存在している。より具体的には、セルラー電話やインターネットプロトコル（ＩＰ）電話などのポータブルワイヤレス電話は、ワイヤレスネットワークを介して音声パケットとデータパケットとを通信し得る。さらに、多くのそのようなワイヤレス電話は、その中に組み込まれる他のタイプのデバイスを含む。たとえば、ワイヤレス電話はまた、デジタルスチルカメラと、デジタルビデオカメラと、デジタルレコーダと、オーディオファイルプレーヤとを含み得る。さらに、そのようなワイヤレス電話は、インターネットにアクセスするために使用され得るウェブブラウザアプリケーションなどの命令を処理し得る。ワイヤレス電話または他の電子デバイス内のメモリなどのメモリが、他のデータに加えて命令を記憶し得る。
【０００４】
[0004]コンピューティングデバイスは時々、同期動作を実施し得る。たとえば、カメラなどのビデオソースデバイスが、ビデオデータを取り込み（capture）得る。マイクロフォンなどのオーディオソースデバイスが、オーディオデータを取り込み得る。コンピューティングデバイスが、ネットワークを介してカメラからビデオデータを受信し得、（ネットワークを介して）マイクロフォンからオーディオデータを受信し得る。コンピューティングデバイスは、マルチメディアストリームを生成するためにオーディオデータとビデオデータとを組み合わせ得る。カメラは、カメラにおけるカメラクロックに基づいてオーディオデータをタイムスタンプし（timestamp）得、マイクロフォンは、マイクロフォンにおけるマイクロフォンクロックに基づいてビデオデータをタイムスタンプし得る。カメラクロックとマイクロフォンクロックとは異なり得る。たとえば、カメラクロックとマイクロフォンクロックとは、異なる値に初期化され得る。あるいは、カメラクロックとマイクロフォンクロックとが同時に同じ値に初期化される場合であっても、カメラクロックおよびマイクロフォンクロックは経時的にドリフトし（drift over time）得る。たとえば、カメラクロックおよびマイクロフォンクロックは、異なるレートで時間の変化を測定し得る。コンピューティングデバイスは、オーディオデータおよびビデオデータのタイムスタンプに基づいてオーディオデータとビデオデータとを組み合わせることによって、マルチメディアストリームを生成し得る。異なるクロックにタイムスタンプが基づくので、オーディオデータとビデオデータとは、マルチメディアストリーム内で誤って同期され得る。
【発明の概要】
【０００５】
[0005]ネットワーククロック比較のシステムおよび方法が開示される。特定の態様では、第１のデバイスが第２のデバイスに第１のパケットを送り得る。第１のパケットはタイムスタンプ同期要求であり得る。第１のデバイスにおける検出回路が、第１のパケットの送信を検出したことに応答して、第１のタイムスタンプ取込み信号をアサートし（assert a first timestamp capture signal）得る。検出回路は、第１のオープンシステム相互接続モデル（ＯＳＩ：open systems interconnection model）レイヤにおいて動作し得る。第１のＯＳＩレイヤは、物理レイヤまたはデータリンクレイヤを含み得る。（たとえば、９：００：００  ＡＭに）第１のパケットが生成され、または第２のＯＳＩレイヤによって受信されるときと、（たとえば、９：００：０２  ＡＭに）第１のパケットの第１のビットが送信されるときとの間に遅延があり得る。たとえば、送信のために上位ＯＳＩレイヤを通じて第１のＯＳＩレイヤまで通過する第１のパケットに対応する遅延があり得る。上位ＯＳＩレイヤは第２のＯＳＩレイヤを含み得る。第２のＯＳＩレイヤは、アプリケーションレイヤ、プレゼンテーションレイヤ、セッションレイヤ、トランスポートレイヤ、またはネットワークレイヤを含み得る。検出回路を下位のＯＳＩレイヤにおいて動作させることは、第１のパケットの第１のビットが送信される時刻のより近くに検出回路が第１のタイムスタンプ取込み信号をアサートすることを可能にし得る。第１のパケットの第１のビットが送信される時刻のより近くに第１のタイムスタンプ取込み信号をアサートさせることは、本明細書で説明されるように、より正確な出発時刻（たとえば、９：００  ＡＭと比較して９：００：０２  ＡＭ）を取り込むことを可能にし得る。
【０００６】
[0006]第１のデバイスにおける第１のクロックレジスタが、クロックに対応し得る。たとえば、第１のクロックレジスタの値は、周期的に更新され得る。特定の態様では、第１のクロックレジスタは、第１のデバイスにおけるプロセッサによって周期的に更新され得る。第１のデバイスにおける取込み回路（capture circuit）が、第１のクロックレジスタから第１のシャドータイムスタンプレジスタ（shadow timestamp register）に出発時刻（ＴＯＤ：time of departure）をコピーすることによって、第１のタイムスタンプ取込み信号に応答してＴＯＤを取り込み得る。第１のシャドータイムスタンプレジスタにコピーされたＴＯＤは、第１のタイムスタンプ取込み信号に応答して第１のクロックレジスタが取込み回路によって読み取られる時刻における第１のクロックレジスタのスナップショットを表し得る。第１のデバイスにおける同期モジュールは、第２のデバイスにＴＯＤを送り得る。
【０００７】
[0007]第２のデバイスは第１のパケットを受信し得る。第２のデバイスにおける検出回路が、第１のパケットが受信されたことに応答して、第２のタイムスタンプ取込み信号をアサートし得る。（たとえば、９：００：３０  ＡＭに）第１のパケットが第２のデバイスにおいて受信されるときと、（たとえば、９：０１に）第１のパケットが第１のＯＳＩレイヤから上位ＯＳＩレイヤに渡されるときとの間に遅延があり得る。たとえば、ＯＳＩレイヤを通じて上位レイヤまで通過する第１のパケットに対応する遅延があり得る。第１のＯＳＩレイヤは、物理レイヤおよび／またはデータリンクレイヤを含み得る。上位ＯＳＩレイヤは、アプリケーションレイヤ、プレゼンテーションレイヤ、セッションレイヤ、トランスポートレイヤ、またはネットワークレイヤを含み得る。検出回路を下位のＯＳＩレイヤにおいて動作させることは、第１のパケットの第１のビットが第２のデバイスにおいて受信される時刻のより近くに検出回路が第２のタイムスタンプ取込み信号をアサートすることを可能にし得る。第１のパケットの第１のビットが受信される時刻のより近くに第２のタイムスタンプ取込み信号をアサートさせることは、本明細書で説明されるように、より正確な到着時刻（たとえば、９：０１  ＡＭと比較して９：００：３０  ＡＭ）を取り込むことを可能にし得る。
【０００８】
[0008]第２のデバイスにおける第２のクロックレジスタが、クロックに対応し得る。第２のデバイスにおける取込み回路が、第２のクロックレジスタから第２のシャドータイムスタンプレジスタに到着時刻（ＴＯＡ：time of arrival）をコピーすることによって、第２のタイムスタンプ取込み信号に応答してＴＯＡを取り込み得る。第２のシャドータイムスタンプレジスタにコピーされたＴＯＡは、第２のタイムスタンプ取込み信号に応答して第２のクロックレジスタが第２のデバイスの取込み回路によって読み取られる時刻における第２のクロックレジスタのスナップショットを表し得る。
【０００９】
[0009]第２のデバイスは、第１のデバイスからＴＯＤを受信し得る。第２のデバイスにおける同期モジュールが、第２のシャドータイムスタンプレジスタからＴＯＡを読み取り得、ＴＯＡおよびＴＯＤに基づいて第１のクロックレジスタと第２のクロックレジスタとを比較し得る。たとえば、第２のデバイスは、ＴＯＡとＴＯＤとの比較に基づいて第１のクロックレジスタと第２のクロックレジスタとの間のオフセットを決定することによって、第１のクロックレジスタと第２のクロックレジスタとを同期させ得る。第２のデバイスは、第２のデバイスにおけるメモリ内にオフセットを記憶し得る。特定の態様では、第２のデバイスは、第１のデバイスから受信した第１のデータを第２のデバイスにおいて生成された第２のデータと同期させるためにオフセットを使用し得、第１のデバイスは、第１のクロックレジスタに基づいて第１のデータをタイムスタンプし、第２のデバイスは、第２のクロックレジスタに基づいて第２のデータをタイムスタンプする。たとえば、第２のデバイスは、第１のデータを第２のデータと同期させるために第１のデータのタイムスタンプにオフセットを加え得る。
【００１０】
[0010]第２のデバイスにおける同期モジュールは、第１のデバイスにＴＯＡを送り得る。たとえば、第２のデバイスにおける同期モジュールは、第１のパケットがタイムスタンプ同期要求であると決定することに基づいて、第１のデバイスにＴＯＡを送り得る。第１のデバイスはＴＯＡを受信し得る。第１のデバイスにおける同期モジュールは、第１のタイムスタンプシャドーレジスタからＴＯＤを読み取り得、ＴＯＡおよびＴＯＤに基づいて第１のクロックレジスタと第２のクロックレジスタとを比較し得る。たとえば、第１のデバイスは、ＴＯＡとＴＯＤとの比較に基づいて第１のクロックレジスタと第２のクロックレジスタとの間のオフセットを決定することによって、第１のクロックレジスタと第２のクロックレジスタとを同期させ得る。第１のデバイスは、第１のデバイスにおけるメモリ内にオフセットを記憶し得る。特定の態様では、第１のデバイスは、第１のデバイスにおいて生成された第１のデータを第２のデバイスから受信された第２のデータと同期させるためにオフセットを使用し得、第１のデバイスは、第１のクロックレジスタに基づいて第１のデータをタイムスタンプし、第２のデバイスは、第２のクロックレジスタに基づいて第２のデータをタイムスタンプする。たとえば、第１のデバイスは、第１のデータを第２のデータと同期させるために第１のデータのタイムスタンプにオフセットを加え得る。
【００１１】
[0011]特定の態様では、コンピューティングデバイスが、コンピューティングデバイスにおけるデバイスクロックを、オーディオソースデバイスにおけるマイクロフォンクロックと同期させ得る。オーディオソースデバイスはマイクロフォンを含み得る。コンピューティングデバイスは、デバイスクロックをビデオソースデバイスにおけるカメラクロックと同期させ得る。ビデオソースデバイスはカメラを含み得る。例示のために、コンピューティングデバイスは、デバイスクロックとマイクロフォンクロックとの間の第１のオフセットを決定し得、デバイスクロックとカメラクロックとの間の第２のオフセットを決定し得る。コンピューティングデバイスは、マイクロフォンからオーディオデータを受信し得、カメラからビデオデータを受信し得る。マイクロフォンは、マイクロフォンクロックに基づいてオーディオデータをタイムスタンプし得、カメラは、カメラクロックに基づいてビデオデータをタイムスタンプし得る。コンピューティングデバイスは、第１のオフセットおよび第２のオフセットに基づいてオーディオデータとビデオデータとを同期させ得る。たとえば、コンピューティングデバイスは、オーディオデータのタイムスタンプに第１のオフセットを加え得、ビデオデータのタイムスタンプに第２のオフセットを加え得る。別の例として、コンピューティングデバイスは、第１のオフセットと第２のオフセットとの差を、オーディオデータのタイムスタンプに、またはビデオデータのタイムスタンプに加え得る。
【００１２】
[0012]特定の態様では、方法が、第１のデバイスにおいて、第２のデバイスからパケットを受信することを含む。方法はまた、検出回路において、パケットの受信を検出することをも含む。方法は、パケットの受信を検出したことに応答して、取込み回路において、パケットに対応する到着時刻タイムスタンプ（time of arrival timestamp）を取り込むことをさらに含む。方法はまた、第１のデバイスにおいて、パケットに対応する出発時刻タイムスタンプ（time of departure timestamp）を第２のデバイスから受信することをも含む。出発時刻タイムスタンプは、パケットが第２のデバイスから送られる時刻を示す。方法は、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施することをさらに含む。
【００１３】
[0013]別の特定の態様では、装置が、検出回路と、取込み回路と、受信機と、プロセッサとを含む。検出回路は、デバイスへのパケットの送信を検出するように構成される。取込み回路は検出回路に応答する。取込み回路は、検出回路においてパケットの送信を検出したことに応答して、パケットに対応する出発時刻タイムスタンプを取り込むように構成される。受信機は、デバイスから到着時刻タイムスタンプを受信するように構成される。到着時刻タイムスタンプはパケットに対応する。到着時刻タイムスタンプは、パケットがデバイスによって受信される時刻を示す。プロセッサは、検出回路、受信機、および取込み回路に結合される。プロセッサは、到着時刻タイムスタンプと出発時刻タイムスタンプとを比較するように構成される。
【００１４】
[0014]別の特定の態様では、コンピュータ可読記憶デバイスが、プロセッサによって実行されるとき、デバイスからパケットを受信することと、検出回路においてパケットの受信を検出することとを含む動作をプロセッサに実施させる命令を記憶する。動作はまた、パケットの受信を検出したことに応答して、取込み回路においてパケットに対応する到着時刻タイムスタンプを取り込むことをも含む。動作は、パケットに対応する出発時刻タイムスタンプをデバイスから受信することをさらに含む。出発時刻タイムスタンプは、パケットがデバイスから送られる時刻を示す。動作はまた、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施することをも含む。
【００１５】
[0015]別の特定の態様では、デバイスは、受信機と、検出回路と、取込み回路と、プロセッサとを含む。受信機は、第２のデバイスからパケットを受信し、第２のデバイスから出発時刻タイムスタンプを受信するように構成される。出発時刻タイムスタンプはパケットに対応する。出発時刻タイムスタンプは、パケットが第２のデバイスから送られる時刻を示す。検出回路は受信機に結合され、受信機によるパケットの受信を検出するように構成される。取込み回路は検出回路に応答する。取込み回路は、検出回路において受信機によるパケットの受信を検出したことに応答して、到着時刻タイムスタンプを取り込むように構成される。プロセッサは、受信機および取込み回路に結合される。プロセッサは、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施するように構成される。
【００１６】
[0016]開示される態様のうちの少なくとも１つによってもたらされる特定の一利点は、第１のデバイスにおけるパケットの出発時刻（ＴＯＤ）と、第２のデバイスにおけるパケットの到着時刻（ＴＯＡ）とに基づく、別個のネットワークデバイスにおけるクロックの比較である。開示される技法は、比較に基づいてネットワークデバイスにわたるクロック同期を可能にし得る。開示される技法は、下位レベルＯＳＩレイヤにおいて動作する検出回路を使用してＴＯＡおよびＴＯＤ情報を取り込むことによってクロック同期を可能にし得る。以下のセクション、すなわち、図面の簡単な説明、詳細な説明、および特許請求の範囲、を含む本願全体を検討した後、本開示の別の態様、利点、および特徴が明らかとなるであろう。
【図面の簡単な説明】
【００１７】
【図１】[0017]ネットワーククロック比較を実施するように動作可能なシステムの特定の態様の図。
【図２】[0018]ネットワーククロック比較を実施するように動作可能なシステムの別の特定の態様の図。
【図３】[0019]図１〜２のシステムのうちの少なくとも１つによって実施されるネットワーククロック比較に対応するタイミング図の特定の態様。
【図４】[0020]図１〜２のシステムのうちの少なくとも１つによって実施され得るネットワーククロック比較の方法の特定の態様を示す流れ図。
【図５】[0021]図１〜２のシステムのうちの少なくとも１つによって実施され得るネットワーククロック比較の方法の別の特定の態様を示す流れ図。
【図６】[0022]図１〜５のシステムおよび方法に従ってネットワーククロック比較を実施するように動作可能なデバイスのブロック図。
【詳細な説明】
【００１８】
[0023]図１を参照すると、システムの特定の態様が図示されており、全般的に１００と示されている。システム１００は、第１のデバイス１１０と第２のデバイス１２０とを含む。システム１００が図１の２つのデバイスを含むものとして示されているが、システム１００は３つ以上のデバイスを含み得る。第１のデバイス１１０、第２のデバイス１２０、またはその両方は、同期モジュール１０２、トランシーバ１０４、検出回路１３０、取込み回路１３２、メモリ１３６、プロセッサ１３８、同期レジスタ１０８、またはそれらの組合せを含み得る。第１のデバイス１１０、第２のデバイス１２０、またはその両方のトランシーバ１０４は、送信機１９４、受信機１４４、またはその両方を含み得る。第１のデバイス１１０、第２のデバイス１２０、またはその両方は、アンテナ１４２を含み得る。第１のデバイス１１０の検出回路１３０は、第１のデバイス１１０のトランシーバ１０４を介して、第１のデバイス１１０のアンテナ１４２に結合され得、第２のデバイス１２０の検出回路１３０は、第２のデバイス１２０のトランシーバ１０４を介して、第２のデバイス１２０のアンテナ１４２に結合され得る。
【００１９】
[0024]第１のデバイス１１０の同期レジスタ１０８は、１つまたは複数の第１のクロックレジスタ１４０、１つまたは複数の第１のシャドータイムスタンプレジスタ１１８、またはそれらの組合せを含み得る。たとえば、１つまたは複数の第１のクロックレジスタ１４０は、第１のクロックレジスタ１１２を含み得、１つまたは複数の第１のシャドータイムスタンプレジスタ１１８は、第１のシャドータイムスタンプレジスタ１１６を含み得る。第２のデバイス１２０の同期レジスタ１０８は、１つまたは複数の第２のクロックレジスタ１４６、１つまたは複数の第２のシャドータイムスタンプレジスタ１２８、またはそれらの組合せを含み得る。たとえば、１つまたは複数の第２のクロックレジスタ１４６は、第２のクロックレジスタ１２２を含み得、１つまたは複数の第２のシャドータイムスタンプレジスタ１２８は、第２のシャドータイムスタンプレジスタ１２６を含み得る。
【００２０】
[0025]動作中に、同期モジュール１０２は、第２のデバイス１２０に送るためのパケット１５０を生成し得る。パケット１５０はタイムスタンプ同期要求であり得る。たとえば、パケット１５０のヘッダの特定のフィールドの特定の値は、パケット１５０がタイムスタンプ同期要求であることを示し得る。特定の態様では、同期モジュール１０２はパケット１５０を周期的に生成し得る。別の態様では、同期モジュール１０２は、プロセッサ１３８から要求を受信したことに応答して、パケット１５０を生成し得る。要求は、特定のアプリケーションによって生成され得る。特定のアプリケーションには、マルチメディア・ストリーム・ジェネレータ・アプリケーションがあり得る。さらに別の態様では、第１のデバイス１１０の同期モジュール１０２は、第２のデバイス１２０から別のタイムスタンプ同期要求を受信したことに応答して、パケット１５０を生成し得る。
【００２１】
[0026]特定の態様では、同期モジュール１０２は、第１のデバイス１１０の第１のＯＳＩレイヤにおいて動作し得る。第１のＯＳＩレイヤは、アプリケーションレイヤ、プレゼンテーションレイヤ、セッションレイヤ、トランスポートレイヤ、および／またはネットワークレイヤを含み得る。たとえば、同期モジュール１０２は、アプリケーションレイヤにおいて、第１のデバイス１１０のアプリケーションからデータを受信するように動作し得、プレゼンテーションレイヤにおいて、アプリケーションデータを暗号化するように動作し得、セッションレイヤにおいて、暗号化されたデータにセッション情報を追加することによってセッションデータを生成するように動作し得、トランスポートレイヤにおいて、セッションデータに基づいて１つまたは複数のセグメントを生成するように動作し得、ネットワークレイヤにおいて、１つまたは複数のセグメントに対応する１つまたは複数のパケットを生成するように動作し得る。
【００２２】
[0027]検出回路１３０は、第１のデバイス１１０の第２のＯＳＩレイヤにおいて動作し得る。第２のＯＳＩレイヤは、データリンクレイヤおよび／または物理レイヤを含み得る。たとえば、検出回路１３０は、データリンクレイヤにおいて、同期モジュール１０２によって生成された１つまたは複数のパケットの各々に基づいて１つまたは複数のフレームを生成するように動作し得、物理レイヤにおいて、１つまたは複数のフレームの各々に対応する１つまたは複数のビットを生成するように動作し得る。特定の態様では、検出回路１３０は、同期モジュール１０２よりも下位のＯＳＩレイヤにおいて動作し得る。たとえば、検出回路１３０はデータリンクレイヤ回路であり得、同期モジュール１０２はアプリケーションレイヤモジュールであり得る。データリンクレイヤ回路はメディアアクセスコントローラを含み得、アプリケーションレイヤモジュールは中央演算処理装置（ＣＰＵ）を含み得る。同期モジュール１０２は、検出回路１３０にパケット１５０を供給し得る。
【００２３】
[0028]下位ＯＳＩレイヤにおいて動作することは、伝送媒体が利用可能であるときを検出回路１３０が検出することを可能にし得る。たとえば、検出回路１３０は、物理レイヤにおいて、伝送媒体を監視するために送信機１９４および受信機１４４と通信することによって動作し得る。例示のために、検出回路１３０は、パケット１５０を送信するために伝送媒体が利用可能であるかどうかを決定し得る。たとえば、検出回路１３０は、伝送媒体が利用可能であるかどうかを決定するために搬送波検知（carrier sensing）を使用し得る。検出回路１３０は、媒体アクセスコントローラを含み得る。特定の態様では、第１のデバイス１１０の検出回路１３０は、第１のデバイス１１０の受信機１４４を介して信号を受信し得、信号が搬送波を示すかどうかを決定し得る。搬送波は、ネットワーク１９０の別のノードからのものであり得る。第１のデバイス１１０の検出回路１３０は、第１のデバイス１１０の受信機１４４から受信した信号が搬送波を示すと決定したことに応答して、伝送媒体が利用できないと決定し得る。あるいは、第１のデバイス１１０の検出回路１３０は、第１のデバイス１１０の受信機１４４から受信した信号が搬送波を示さないと決定したことに応答して、伝送媒体が利用可能であると決定し得る。
【００２４】
[0029]検出回路１３０は、伝送媒体が利用できないと決定したことに応答して、特定の持続時間にわたってパケット１５０を送信することを控え得る。特定の持続時間はデフォルト値に対応し得る。検出回路１３０は、特定の持続時間の後、伝送媒体が利用可能であるかどうかを決定し得る。
【００２５】
[0030]検出回路１３０は、伝送媒体が利用可能であると決定したことに応答して、パケット１５０の少なくとも第１のビットを送信機１９４に供給し得る。検出回路１３０は、パケット１５０の送信に応答して、第１のタイムスタンプ取込み信号１１４を生成し得る。たとえば、検出回路１３０は、パケット１５０の少なくとも第１のビットを送信機１９４に供給したことに応答して、パケット１５０の送信を検出し得る。例示のために、検出回路１３０は、パケット１５０の第１のビットを送信機１９４に供給したことに応答して、第１のタイムスタンプ取込み信号１１４をアサートし得る。第１のデバイス１１０の送信機１９４は、第１のデバイス１１０のアンテナ１４２を介して、パケット１５０の第１のビットを送信し得る。
【００２６】
[0031]第１のクロックレジスタ１１２の値はクロックを表し得る。たとえば、第１のクロックレジスタ１１２の値は周期的に更新され得る。特定の態様では、プロセッサ１３８は第１のクロックレジスタ１１２を周期的に更新し得る。第１のデバイス１１０の取込み回路１３２は、第１のタイムスタンプ取込み信号１１４に応答して、出発時刻タイムスタンプ１５２を取り込み得る。第１のタイムスタンプ取込み信号１１４はエッジトリガ信号（edge-triggered signal）であり得る。たとえば、検出回路１３０は、取込み回路１３２の入力を第１の状態（たとえば、論理０）から第２の状態（たとえば、論理１）に遷移させ得る。取込み回路１３２は、遷移を検出したことに応答して、第１のタイムスタンプ取込み信号１１４がアサートされることを検出し得る。特定の実装では、第１のタイムスタンプ取込み信号１１４が、ある論理状態と別の論理状態との間で切り換えられ（toggled）得る。たとえば、取込み回路１３２は、取込み回路１３２の入力が第２の状態に対応する間、第１のタイムスタンプ取込み信号１１４がアサートされることを検出し得る。
【００２７】
[0032]特定の態様では、第１のタイムスタンプ取込み信号１１４は、ハードウェア信号、ソフトウェア信号、またはその両方を含み得る。たとえば、検出回路１３０は、ハードウェア信号に対応する割込み要求（たとえば、ＩＲＱ）を取込み回路１３２に送り得、ソフトウェア割込みに対応する例外を生成し得、またはその両方を行い得る。取込み回路１３２は、割込み要求を受信し得、例外を検出し得、またはその両方を行い得る。特定の態様では、取込み回路１３２は、ハードウェア信号、ソフトウェア信号、またはその両方に応答して、割込みハンドラを実行し得る。割込みハンドラは、ハードウェア信号、ソフトウェア信号、またはその両方に応答して、実行しているプロセスを一時的に停止し得る。たとえば、取込み回路１３２は、スレッド実行を停止し得、ＴＯＤタイムスタンプ１５２を取り込むことに続いてスレッド実行を再開するためにスレッド状態を保存し得る。特定の態様では、取込み回路１３２は、ハードウェア信号、ソフトウェア信号、またはその両方に応答して、実行しているプロセスを終了し得る。
【００２８】
[0033]取込み回路１３２は、第１のデバイス１１０の１つまたは複数のＯＳＩレイヤにおいて動作し得る。１つまたは複数のＯＳＩレイヤは、アプリケーションレイヤ、プレゼンテーションレイヤ、セッションレイヤ、トランスポートレイヤ、および／またはネットワークレイヤを含み得る。たとえば、取込み回路１３２は、第１のデバイス１１０のアプリケーションとデータを交換するためにアプリケーションレイヤにおいて動作し得、検出回路１３０とパケットを交換するためにネットワークレイヤにおいて動作し得る。例示のために、取込み回路１３２は、アプリケーションから第１のデータを受信し得、第１のデータに基づいて第１のパケットを生成し得、検出回路１３０に第１のパケットを供給し得、検出回路１３０から第２のパケットを受信し得、第２のパケットに基づいて第２のデータを生成し得、アプリケーションに第２のデータを供給し得、またはそれらの組合せであり得る。特定の態様では、取込み回路１３２はアプリケーションレイヤ回路であり得る。アプリケーションレイヤ回路は、ＣＰＵまたはＣＰＵの構成要素を含み得る。特定の実装では、検出回路１３０は、第１のＯＳＩレイヤにおいて動作する第１のＯＳＩレイヤ回路を含み得、取込み回路１３２は、第２のＯＳＩレイヤにおいて動作する第２のＯＳＩレイヤ回路を含み得る。第１のＯＳＩレイヤは、第２のＯＳＩレイヤよりも下位であり得る。第１のＯＳＩレイヤはデータリンクレイヤを含み得、第２のＯＳＩレイヤはアプリケーションレイヤを含み得る。特定の態様では、取込み回路１３２はプロセッサ１３８に結合され、またはプロセッサ１３８内に含まれ得る。
【００２９】
[0034]第１のデバイス１１０の取込み回路１３２は、第１のクロックレジスタ１１２から第１のシャドータイムスタンプレジスタ１１６にＴＯＤタイムスタンプ１５２をコピーすることによって、ＴＯＤタイムスタンプ１５２を取り込み得る。たとえば、第１のシャドータイムスタンプレジスタ１１６内に記憶されたＴＯＤタイムスタンプ１５２は、取込み回路１３２が第１のクロックレジスタ１１２から値を読み取る時刻における第１のクロックレジスタ１１２の値のスナップショットであり得る。第１のデバイス１１０の同期モジュール１０２は、第２のデバイス１２０にＴＯＤタイムスタンプ１５２を送り得る。たとえば、第１のデバイス１１０の同期モジュール１０２は、第１のシャドータイムスタンプレジスタ１１６からＴＯＤタイムスタンプ１５２を読み取り得、ネットワーク１９０を介して第２のデバイス１２０にＴＯＤタイムスタンプ１５２を送り得る。第１のクロックレジスタ１１２は第１の解像度（たとえば、６０メガヘルツ）を有し得、第２のクロックレジスタ１２２などの別のクロックレジスタは第２の解像度（たとえば、１００メガヘルツ）を有し得る。特定の実装では、同期モジュール１０２は、第１の解像度と第２の解像度と間の差に対応するクロックドメイン同期誤差（clock domain synchronization error）に基づいてＴＯＤタイムスタンプ１５２を更新し得る。特定の態様では、ＴＯＤタイムスタンプ１５２は、プラスまたはマイナス１０ナノ秒などのクロックドメイン同期誤差を示し得る。
【００３０】
[0035]特定の態様では、ＴＯＤタイムスタンプ１５２はグレイコーディングされ（grey-coded）得る。グレイコーディングでは、第１の値を表す変数の単一ビットが更新され得、その結果、変数はその代わりに次の値を表す。たとえば、グレイコーディングでは、第１の値「１」が第１のビット「０１」によって表され得、次の値「２」が第２のビット「１１」によって表され得、したがって、第１のビットは第２のビットとは単一のビット位置値（single bit position value）だけ異なる。
【００３１】
[0036]特定の態様では、第１のデバイス１１０の取込み回路１３２は、第１のシャドータイムスタンプレジスタ１１６にＴＯＤタイムスタンプ１５２をコピーすることに続いて、取り込まれたステータスを第１のデバイス１１０の同期モジュール１０２に送り得る。取り込まれたステータスは、出発時刻（ＴＯＤ）タイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２）が第１のシャドータイムスタンプレジスタ１１６にコピーされることを示し得る。取り込まれたステータスはまた、パケット１５０が第２のデバイス１２０に送られる時刻にＴＯＤタイムスタンプ１５２が対応することをも示し得る。この態様では、第１のデバイス１１０の同期モジュール１０２は、取り込まれたステータスを受信したことに応答して、第２のデバイス１２０にＴＯＤタイムスタンプ１５２を送り得る。
【００３２】
[0037]第２のデバイス１２０は、ネットワーク１９０を介して第１のデバイス１１０からパケット１５０を受信し得る。たとえば、第２のデバイス１２０の受信機１４４は、第２のデバイス１２０のアンテナ１４２を介してパケット１５０を受信し得る。特定の実装では、検出回路１３０は、パケット１５０を復号することなくパケット１５０の受信を検出する。たとえば、検出回路１３０は、パケット１５０の第１のビットが受信されることを検出したことに応答して、パケット１５０の受信を検出し、第１のビットは、パケット１５０の最も早く受信されたビットである。特定の実装では、第２のデバイス１２０の検出回路１３０は、パケット１５０の少なくとも第１のビットが受信されることを検出したことに応答して、第２のタイムスタンプ取込み信号１３４をアサートする。たとえば、第２のデバイス１２０の検出回路１３０は、第１のビットが第２のデバイス１２０の受信機１４４によって受信されることを検出したことに応答して、第２のタイムスタンプ取込み信号１３４をアサートし得る。例示のために、第２のデバイス１２０の検出回路１３０は、第１の時刻において、伝送媒体が利用可能であることを検出し得、第２の時刻において、伝送媒体上の搬送波信号を検出し得る。搬送波信号は、ネットワーク１９０の別のノードからのものであり得る。第２のデバイス１２０の検出回路１３０は、第２の時刻において、第２のタイムスタンプ取込み信号１３４をアサートし得る。
【００３３】
[0038]特定の実装では、第２のデバイス１２０の取込み回路１３２は、第２のタイムスタンプ取込み信号１３４に応答して、到着時刻（ＴＯＡ）タイムスタンプ１２４を取り込む。たとえば、第２のデバイス１２０の取込み回路１３２は、ＴＯＡタイムスタンプ１２４を第２のクロックレジスタ１２２から第２のシャドータイムスタンプレジスタ１２６にコピーし得る。第２のシャドータイムスタンプレジスタ１２６内に記憶されたＴＯＡタイムスタンプ１２４は、取込み回路１３２が第２のクロックレジスタ１２２からＴＯＡタイムスタンプ１２４を読み取る時刻における第２のクロックレジスタ１２２の値のスナップショットであり得る。第２のデバイス１２０の同期モジュール１０２は、第２のシャドータイムスタンプレジスタ１２６からＴＯＡタイムスタンプ１２４を読み取り得、ネットワーク１９０を介して第１のデバイス１１０にＴＯＡタイムスタンプ１２４を送り得る。
【００３４】
[0039]クロックレジスタ１１２、１２２は、異なる解像度を有し得る。たとえば、第１のクロックレジスタ１１２は６０メガヘルツの解像度を有し得、第２のクロックレジスタ１２２は１００メガヘルツの解像度を有し得る。特定の実装では、第２のデバイス１２０の同期モジュール１０２は、クロックドメイン同期誤差に基づいてＴＯＡタイムスタンプ１２４を更新し得る。クロックドメイン同期誤差は、クロックレジスタ１１２、１２２の解像度間の差に対応し得る。特定の態様では、ＴＯＡタイムスタンプ１２４はクロックドメイン同期誤差（たとえば、プラスまたはマイナス１０ナノ秒）を示し得る。特定の態様では、ＴＯＡタイムスタンプ１５４はグレイコーディングされ得る。
【００３５】
[0040]特定の態様では、第２のデバイス１２０の取込み回路１３２は、第２のシャドータイムスタンプレジスタ１２６にＴＯＡタイムスタンプ１２４をコピーすることに続いて、取り込まれたステータスを第２のデバイス１２０の同期モジュール１０２に送り得る。取り込まれたステータスは、到着時刻（ＴＯＡ）タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４）が第２のシャドータイムスタンプレジスタ１２６にコピーされることを示し得る。取り込まれたステータスはまた、パケット１５０が第１のデバイス１１０によって受信される時刻にＴＯＡタイムスタンプ１２４が対応することをも示し得る。この態様では、第２のデバイス１２０の同期モジュール１０２は、取り込まれたステータスを受信したことに応答して、第１のデバイス１１０にＴＯＡタイムスタンプ１２４を送り得る。
【００３６】
[0041]特定の態様では、第１のデバイス１１０にＴＯＡタイムスタンプ１２４を送る前に、第２のデバイス１２０の同期モジュール１０２は、パケット１５０のヘッダの特定のフィールドの特定の値に基づいて、第２のシャドータイムスタンプレジスタ１２６内のＴＯＡタイムスタンプ１２４を保持するか、それとも廃棄するかを決定し得る。たとえば、第２のデバイス１２０の同期モジュール１０２は、パケット１５０がタイムスタンプ同期要求であることを特定の値が示すと決定したことに応答して、ＴＯＡタイムスタンプ１２４を保持し得る。別の例として、第２のデバイス１２０の同期モジュール１０２は、パケット１５０が誤って受信されると決定したことに応答して、第１のデバイス１１０がパケット１５０の受信側（recipient）として示されないと決定したことに応答して、パケット１５０がタイムスタンプ同期要求ではないと特定の値が示すと決定したことに応答して、またはそれらの組合せに応答して、ＴＯＡタイムスタンプ１２４を廃棄し得る。特定の態様では、第２のデバイス１２０の同期モジュール１０２は、第２のシャドータイムスタンプレジスタ１２６を利用可能とマークすることによって、ＴＯＡタイムスタンプ１２４を廃棄し得る。特定の態様では、第２のデバイス１２０の同期モジュール１０２は、パケット１５０が無効な誤り訂正コード（invalid error correction code）を含むと決定したことに応答して、パケット１５０が誤って受信されると決定し得る。
【００３７】
[0042]第１のデバイス１１０の同期モジュール１０２は、第２のデバイス１２０からＴＯＡタイムスタンプ１２４を受信し得る。たとえば、第１のデバイス１１０の受信機１４４は、第１のデバイス１１０のアンテナ１４２を介してＴＯＡタイムスタンプ１２４を受信し得る。第１のデバイス１１０の受信機１４４は、第１のデバイス１１０のメモリ１３６内にＴＯＡタイムスタンプ１２４を記憶し得る。
【００３８】
[0043]第２のデバイス１２０の同期モジュール１０２は、第１のデバイス１１０からＴＯＤタイムスタンプ１５２を受信し得る。たとえば、第２のデバイス１２０の受信機１４４は、第２のデバイス１２０のアンテナ１４２を介してＴＯＤタイムスタンプ１５２を受信し得る。第２のデバイス１２０の受信機１４４は、第２のデバイス１２０のメモリ１３６内にＴＯＤタイムスタンプ１５２を記憶し得る。
【００３９】
[0044]第１のデバイス１１０、第２のデバイス１２０、またはその両方の同期モジュール１０２は、ＴＯＡタイムスタンプ１２４とＴＯＤタイムスタンプ１５２とを比較し得る。第１のデバイス１１０、第２のデバイス１２０、またはその両方の同期モジュール１０２は、比較に基づいて第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させ得る。特定の態様では、同期モジュール１０２は、ＴＯＡタイムスタンプ１２４とＴＯＤタイムスタンプ１５２との間の差に基づいて第１のクロックレジスタ１１２と第２のクロックレジスタ１２２との間のオフセットを決定することによって、第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させ得る。同期モジュール１０２は、メモリ１３６内にオフセットを記憶し得る。たとえば、第１のデバイス１１０の同期モジュール１０２は、第１のデバイス１１０のメモリ１３６内にオフセットを記憶し得る。別の例として、第２のデバイス１２０の同期モジュール１０２は、第２のデバイス１２０のメモリ１３６内にオフセットを記憶し得る。
【００４０】
[0045]第１のデバイス１１０の同期モジュール１０２は、第１のデバイス１１０において生成された第１のデータを第２のデバイス１２０から受信された第２のデータと同期させるためにオフセットを使用し得、第１のデバイス１１０は、第１のクロックレジスタ１１２に基づいて第１のデータをタイムスタンプし、第２のデバイス１２０は、第２のクロックレジスタ１２２に基づいて第２のデータをタイムスタンプする。たとえば、第１のデバイス１１０は、第１のデータを第２のデータと同期させるために第１のデータのタイムスタンプにオフセットを加え得る。同様に、第２のデバイス１２０の同期モジュール１０２は、第１のデバイス１１０から受信された第１のデータを第２のデバイス１２０において生成された第２のデータと同期させるためにオフセットを使用し得、第１のデバイス１１０は、第１のクロックレジスタ１１２に基づいて第１のデータをタイムスタンプし、第２のデバイス１２０は、第２のクロックレジスタ１２２に基づいて第２のデータをタイムスタンプする。たとえば、第２のデバイス１２０は、第１のデータを第２のデータと同期させるために第１のデータのタイムスタンプにオフセットを加え得る。
【００４１】
[0046]代替態様では、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、ＴＯＡタイムスタンプ１２４およびＴＯＤタイムスタンプ１５２に基づいて第１のクロックレジスタ１１２（または第２のクロックレジスタ１２２）の値を更新することによって、第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させ得る。たとえば、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、ＴＯＡタイムスタンプ１２４とＴＯＤタイムスタンプ１５２との間の差に基づいてオフセットを決定し得、第１のクロックレジスタ１１２（または第２のクロックレジスタ１２２）の値にオフセットを加え得る。この態様では、第１のデバイス１１０および第２のデバイス１２０のうちの一方はスレーブデバイスであり得、第１のデバイス１１０および第２のデバイス１２０のうちの他方はマスタデバイスであり得る。たとえば、第１のデバイス１１０は、第２のデバイス１２０の第２のクロックレジスタ１２２と同期させるために第１のクロックレジスタ１１２の値を更新するスレーブデバイスであり得る。別の例として、第１のデバイス１１０はマスタデバイスであり得、第２のデバイス１２０は、第１のデバイス１１０の第１のクロックレジスタ１１２と同期させるために第２のクロックレジスタ１２２の値を更新し得る。
【００４２】
[0047]特定の態様では、ＴＯＡタイムスタンプ１２４およびＴＯＤタイムスタンプ１５２に基づくクロックレジスタ１１２および１２２の同期は、第１のデバイス１１０から第２のデバイス１２０にパケット１５０を送信することに関する送信待ち時間の原因であり（account for a transmission latency）得る。たとえば、第１のクロックレジスタ１１２は、パケット１５０の第１のビットが送信されるとき、第１の送信側クロック値（first sender clock value）（たとえば、２００時間単位（200 time units））を示し得、ＴＯＤタイムスタンプ１５２は第１の送信側クロック値（たとえば、２００時間単位）を示し得る。パケット１５０の第１のビットが、第１のデバイス１１０から第２のデバイス１２０へのパケット１５０の送信に関する送信待ち時間に対応する、第２のデバイス１２０によって受信されるとき、第１のクロックレジスタ１１２は、第２の送信側クロック値（たとえば、３００時間単位）を示し得る。
【００４３】
[0048]第２のクロックレジスタ１２２は、パケット１５０の第１のビットが第１のデバイス１１０によって送信されるとき、第１の受信側クロック値（first receiver clock value）（たとえば、５００時間単位）を示し得、パケット１５０の第１のビットが第２のデバイス１２０によって受信されるとき、第２の受信側クロック値（たとえば、６００時間単位）を示し得る。ＴＯＡタイムスタンプ１２４は第２の受信側値（たとえば、６００時間単位を示し得る。
【００４４】
[0049]第２のクロックレジスタ１２２が第１の受信側クロック値を示したとき、第１のクロックレジスタ１１２が第１の送信側クロック値を示し、第２のクロックレジスタ１２２が第２の受信側クロック値を示したとき、第１のクロックレジスタ１１２が第２の送信側クロック値を示したとしても、同期モジュール１０２は、ＴＯＤタイムスタンプ１５２およびＴＯＡタイムスタンプ１２４によってそれぞれ示される第１の送信側クロック値（たとえば、２００時間単位）および第２の受信側クロック値（たとえば、６００時間単位）に基づいて、第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させ得る。
【００４５】
[0050]第１の送信側クロック値および第２の受信側クロック値に基づいて第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させることは、送信待ち時間の原因であり得る。たとえば、第２のデバイス１２０の同期モジュール１０２は、第１の送信側クロック値および第２の受信側クロック値に基づいてオフセット（たとえば、６００−２００＝４００時間単位）を決定し得る。第１のデバイス１１０が第１のクロックレジスタ１１２の特定の送信側時刻（sender time）（たとえば、１０００時間単位）においてメッセージを送るべきであることを示す通知を第１のデバイス１１０が第２のデバイス１２０に送る場合、第２のデバイス１２０は、オフセットに基づいて第２のクロックレジスタ１２２の特定の受信側時刻（receiver time）（たとえば、１４００時間単位）においてメッセージを予期し得る。オフセットが送信待ち時間を考慮に入れるので、特定の受信側時刻は、メッセージが第１のデバイス１１０によって送信されるときの第２のクロックレジスタ１２２の値（たとえば、１３００時間単位）よりも高くなり得る、メッセージが第２のデバイス１２０によって受信されるときの第２のクロックレジスタ１２２の値、に対応し得る。
【００４６】
[0051]特定の態様では、第１のデバイス１１０および第２のデバイス１２０によって実施される動作は、単一のデバイスによって実施され得る。たとえば、第１のデバイス１１０は、本明細書で説明されるように、パケット１５０に対応するＴＯＤタイムスタンプ１５２を生成し得、別のデバイス（たとえば、第２のデバイス１２０または第３のデバイス）から受信された別のパケットに対応するＴＯＡタイムスタンプを生成し得る。例示のために、第１のデバイス１１０の検出回路１３０は、他のパケットを受信したことに応答して、別のタイムスタンプ取込み信号をアサートし得る。
【００４７】
[0052]第１のタイムスタンプ取込み信号１１４および他のタイムスタンプ取込み信号は、独立した側波帯プローブ信号（independent sideband probe signals）であり得る。たとえば、検出回路１３０は、パケットの送信に応答して第１の側波帯プローブ信号をアサートし得、パケットを受信したことに応答して第２の側波帯プローブ信号をアサートし得る。例示のために、検出回路１３０は、パケット１５０の送信に応答して第１のタイムスタンプ取込み信号１１４をアサートし得、他のパケットを受信したことに応答して他のタイムスタンプ取込み信号をアサートし得る。取込み回路１３２は、どの側波帯プローブ信号がアサートされるかに基づいて、到着時刻タイムスタンプが取り込まれるべきか、それとも出発時刻タイムスタンプが取り込まれるべきかを決定し得る。たとえば、第１の側波帯プローブ信号は、出発時刻タイムスタンプが取り込まれるべきであることを取込み回路１３２に示し得る。別の例として、第２の側波帯プローブ信号は、到着時刻タイムスタンプが取り込まれるべきであることを取込み回路１３２に示し得る。
【００４８】
[0053]第１のデバイス１１０の取込み回路１３２は、他のタイムスタンプ取込み信号に応答して、別のＴＯＡタイムスタンプを取り込み得る。たとえば、第１のデバイス１１０の取込み回路１３２は、１つまたは複数の第１のクロックレジスタ１４０ののうちのクロックレジスタ（たとえば、第１のクロックレジスタ１１２）から、１つまたは複数の第１のシャドータイムスタンプレジスタ１１８の別のシャドータイムスタンプレジスタに、別のＴＯＡタイムスタンプをコピーし得る。
【００４９】
[0054]第１のデバイス１１０の受信機１４４は、他のデバイスから別のＴＯＤタイムスタンプを受信し得、その別のＴＯＤタイムスタンプをメモリ１３６内に記憶し得る。同期モジュール１０２は、その別のＴＯＤタイムスタンプをメモリ１３６から読み取り得、その別のシャドータイムスタンプレジスタからその別のＴＯＡタイムスタンプを読み取り得、その別のＴＯＡタイムスタンプとそのＴＯＤタイムスタンプとを比較し得る。同期モジュール１０２は、比較に基づいて、第１のクロックレジスタ１１２と、他のデバイスにおける別のクロックレジスタとを同期させ得る。同期モジュール１０２は、他のデバイスにＴＯＡタイムスタンプを送り得る。同様に、第２のデバイス１２０は、本明細書で説明されるように、パケット１５０に対応するＴＯＡタイムスタンプ１２４を生成し得、別のデバイス（たとえば、第１のデバイス１１０または第３のデバイス）に送られる別のパケットに対応するＴＯＤタイムスタンプを生成し得る。
【００５０】
[0055]特定の態様では、第１のクロックレジスタ１１２および第２のクロックレジスタ１２２は、第１のアプリケーションに対応し得る。第１のアプリケーションはマルチメディアストリーム生成アプリケーションを含み得る。たとえば、第２のデバイス１２０におけるマルチメディアストリーム生成アプリケーションは、オーディオデータを生成し得、第２のクロックレジスタ１２２に基づいてオーディオデータをタイムスタンプし得る。第１のデバイス１１０におけるマルチメディアストリーム生成アプリケーションは、ビデオデータを生成し得、第１のクロックレジスタ１１２に基づいてビデオデータをタイムスタンプし得る。第１のデバイス１１０は、第２のデバイス１２０から受信されたオーディオデータを第１のデバイス１１０において生成されたビデオデータと同期させるために、第１のクロックレジスタ１１２と第２のクロックレジスタ１２２とを同期させ得る。
【００５１】
[0056]特定の態様では、１つまたは複数の第１のクロックレジスタ１４０のうちの別の第１のクロックレジスタと、１つまたは複数の第２のクロックレジスタ１４６のうちの別の第２のクロックレジスタとは、第２のアプリケーションに対応し得る。第２のアプリケーションはビデオゲーミングアプリケーションを含み得る。たとえば、第１のデバイスにおけるビデオゲーミングアプリケーションは、第１のユーザに対応する第１のユーザデータを生成し得、その別の第１のクロックレジスタに基づいて第１のユーザデータをタイムスタンプし得る。第２のデバイスにおけるビデオゲーミングアプリケーションは、第２のユーザに対応する第２のユーザデータを生成し得、その別の第２のクロックレジスタに基づいて第２のユーザデータをタイムスタンプし得る。第１のデバイス１１０は、第１のデバイス１１０において生成された第１のユーザデータを、第２のデバイスから受信された第２のユーザデータと同期させるために、その別の第１のクロックレジスタと、その別の第２のクロックレジスタとを同期させ得る。
【００５２】
[0057]特定の態様では、第１のデバイス１１０は、パケット１５０に基づいて、第１のデバイスにおける複数のクロックレジスタ（たとえば、第１のクロックレジスタ１１２およびその別の第１のクロックレジスタ）を、第２のデバイスにおける複数のクロックレジスタ（たとえば、第２のクロックレジスタ１２２およびその別の第２のクロックレジスタ）と同期させ得る。特定の態様では、第１のデバイスにおける複数のクロックレジスタの各クロックレジスタと、第２のデバイスにおける複数のクロックレジスタの対応するクロックレジスタとは、特定のアプリケーションに対応し得る。たとえば、第１のクロックレジスタ１１２および第２のクロックレジスタ１２２は第１のアプリケーションに対応し得、第１のクロックレジスタ１４０のうちの別の第１のクロックレジスタおよび第２のクロックレジスタ１４６のうちの別の第２のクロックレジスタは、第２のアプリケーションに対応し得る。特定の態様では、第１のアプリケーションはマルチメディアアプリケーションを含み得、第２のアプリケーションはゲーミングアプリケーションを含み得る。特定の態様では、第１のデバイス１１０における複数のクロックレジスタのうちの１つまたは複数は別個の値を有し得、１つまたは複数のクロックレジスタの値が変更される別個のレートを有し得、あるいはその両方であり得る。特定の態様では、第２のデバイス１２０における複数のクロックレジスタのうちの１つまたは複数は別個の値を有し得、１つまたは複数のクロックレジスタの値が変更される別個のレートを有し得、あるいはその両方であり得る。
【００５３】
[0058]第１のデバイス１１０は、第１のデバイス１１０における複数のクロックレジスタの各々のＴＯＡタイムスタンプを、第２のデバイス１２０における複数のクロックレジスタの対応するクロックレジスタのＴＯＤタイムスタンプと比較し得る。第１のデバイス１１０における複数のクロックレジスタの各々のＴＯＡタイムスタンプは、パケット１５０が第１のデバイス１１０によって受信される時刻に対応し得る。第２のデバイス１２０における複数のクロックレジスタの各々のＴＯＤタイムスタンプは、パケット１５０が第２のデバイス１２０によって送られる時刻に対応し得る。たとえば、第１のデバイス１１０の取込み回路１３２は、第１のタイムスタンプ取込み信号１１４に応答して、複数のＴＯＡタイムスタンプを取り込み得る。たとえば、第１のデバイス１１０の取込み回路１３２は、１つまたは複数の第１のクロックレジスタ１４０のうちの複数の第１のクロックレジスタから、１つまたは複数の第１のシャドータイムスタンプレジスタ１１８のうちの複数の第１のシャドータイムスタンプレジスタに複数のＴＯＡタイムスタンプをコピーし得る。複数のＴＯＡタイムスタンプはＴＯＡタイムスタンプ１２４を含み得、複数の第１のクロックレジスタは第１のクロックレジスタ１１２を含み得、複数の第１のシャドータイムスタンプレジスタは第１のシャドータイムスタンプレジスタ１１６を含み得る。
【００５４】
[0059]特定の態様では、第２のデバイス１２０の取込み回路１３２は、第２のタイムスタンプ取込み信号１３４に応答して、複数のＴＯＤタイムスタンプを取り込み得る。たとえば、第２のデバイス１２０の取込み回路１３２は、１つまたは複数の第２のクロックレジスタ１４６のうちの複数の第２のクロックレジスタから、１つまたは複数の第２のシャドータイムスタンプレジスタ１２８のうちの複数の第２のシャドータイムスタンプレジスタに複数のＴＯＤタイムスタンプをコピーし得る。複数のＴＯＤタイムスタンプはＴＯＤタイムスタンプ１５２を含み得、複数の第２のクロックレジスタは第２のクロックレジスタ１２２を含み得、複数の第２のシャドータイムスタンプレジスタは第２のシャドータイムスタンプレジスタ１２６を含み得る。
【００５５】
[0060]第１のデバイス１１０の受信機１４４は、第２のデバイス１２０から複数のＴＯＤタイムスタンプを受信し得、第１のデバイス１１０のメモリ１３６内にその複数のＴＯＤタイムスタンプを記憶し得る。第２のデバイス１２０の受信機１４４は、第１のデバイス１１０から複数のＴＯＡタイムスタンプを受信し得、第２のデバイス１２０のメモリ１３６内にその複数のＴＯＡタイムスタンプを記憶し得る。
【００５６】
[0061]第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、複数のＴＯＡタイムスタンプおよび複数のＴＯＤタイムスタンプに基づいて、複数の第１のクロックレジスタを複数の第２のクロックレジスタと同期させ得る。たとえば、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、複数のＴＯＡタイムスタンプと複数のＴＯＤタイムスタンプとの間の差に対応する複数のオフセットを決定し得、第１のデバイス１１０（または第２のデバイス１２０）のメモリ１３６内に複数のオフセットを記憶し得る。別の例として、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、複数のＴＯＡタイムスタンプと複数のＴＯＤタイムスタンプとの間の差に基づいて、複数の第１のクロックレジスタ（または複数の第２のクロックレジスタ）の値を更新し得る。
【００５７】
[0062]システム１００は、パケット１５０が第１のデバイス１１０によって送信される時刻に対応するＴＯＤタイムスタンプ１５２と、パケット１５０が第２のデバイス１２０によって受信される時刻に対応するＴＯＡタイムスタンプ１２４との比較を可能にし得る。第１のデバイス１１０の検出回路１３０によって取り込まれるＴＯＤタイムスタンプ１５２は正確であり得る。なぜならば、ＴＯＤタイムスタンプ１５２は、パケット１５０の第１のビットが第１のデバイス１１０のトランシーバ１０４によって送信される時刻に対応し得るからである。第２のデバイス１２０の検出回路１３０によって取り込まれるＴＯＡタイムスタンプ１２４は正確であり得る。なぜならば、ＴＯＡタイムスタンプ１２４は、パケット１５０の第１のビットが第２のデバイス１２０のトランシーバ１０４によって受信される時刻に対応し得るからである。システム１００は、比較に基づいて、第１のデバイス１１０の第１のクロックレジスタ１１２と、第２のデバイス１２０の第２のクロックレジスタ１２２との同期を可能にし得る。
【００５８】
[0063]図２を参照すると、システムの特定の態様の図が示されており、全般的に２００と示されている。特定の態様では、システム２００は図１のシステム１００に対応し得る。システム２００は、第１のデバイス１１０と、第２のデバイス１２０とを含む。
【００５９】
[0064]動作中に、第１のデバイス１１０の図１の同期モジュール１０２は、タイムスタンプ同期要求を受信し得る。タイムスタンプ同期要求は管理フレームに対応し得る。タイムスタンプ同期要求は、第１のデバイス１１０におけるソフトウェアまたはハードウェアによって生成され得る。タイムスタンプ同期要求に応答して、第１のデバイス１１０の同期モジュール１０２は、イベントメッセージ２３０（たとえば、図１のパケット１５０）を生成し得、第２のデバイス１２０にイベントメッセージ２３０（たとえば、パケット１５０）を送り得る。第１のデバイス１１０の図１の検出回路１３０は、図１を参照して説明されたように、イベントメッセージ２３０（たとえば、パケット１５０）の第１のビットの送信に応答して、第１のタイムスタンプ取込み信号１１４をアサートし得る。
【００６０】
[0065]第１のデバイス１１０の図１の取込み回路１３２は、図１を参照して説明されたように、第１のタイムスタンプ取込み信号１１４に応答して、出発時刻（ＴＯＤ）タイムスタンプ１５２を取り込み得る。たとえば、第１のデバイス１１０の取込み回路１３２は、第１のクロックレジスタ１１２から第１のシャドータイムスタンプレジスタ１１６にＴＯＤタイムスタンプ１５２をコピーし得る。第１のデバイス１１０の取込み回路１３２はまた、第１のタイムスタンプ取込み信号１１４に応答して別のＴＯＤタイムスタンプを取り込み得る。たとえば、取込み回路１３２は、第３のクロックレジスタ２０４から第３のシャドータイムスタンプレジスタ２２４にその別のＴＯＤタイムスタンプをコピーし得る。１つまたは複数の第１のクロックレジスタ１４０は第３のクロックレジスタ２０４を含み得、１つまたは複数の第１のシャドータイムスタンプレジスタ１１８は第３のシャドータイムスタンプレジスタ２２４を含み得る。
【００６１】
[0066]第２のデバイス１２０はイベントメッセージ２３０（たとえば、パケット１５０）を受信し得る。第２のデバイス１２０の検出回路１３０は、図１を参照して説明されたように、イベントメッセージ２３０の第１のビットが第２のデバイス１２０によって受信されたことに応答して、第２のタイムスタンプ取込み信号１３４を生成し得る。第２のデバイス１２０の取込み回路１３２は、第２のタイムスタンプ取込み信号１３４に応答して、ＴＯＡタイムスタンプ１２４を取り込み得る。たとえば、第２のデバイス１２０の取込み回路１３２は、第２のクロックレジスタ１２２から第２のシャドータイムスタンプレジスタ１２６にＴＯＡタイムスタンプ１２４をコピーし得る。第１のデバイス１１０の同期モジュール１０２は、第１のシャドータイムスタンプレジスタ１１６からＴＯＤタイムスタンプ１５２を読み取り得、第３のシャドータイムスタンプレジスタ２２４から他のＴＯＤタイムスタンプを読み取り得、ＴＯＤタイムスタンプ１５２、他のＴＯＤタイムスタンプ、またはその両方を第２のデバイス１２０に送り得る。第２のデバイス１２０は、第２のシャドータイムスタンプレジスタ１２６からＴＯＡタイムスタンプ１２４を読み取り得、第１のデバイス１１０にＴＯＡタイムスタンプ１２４を送り得る。
【００６２】
[0067]図２に示される態様では、第１のデバイス１１０および第２のデバイス１２０は、第１のデバイス１１０における複数の第１のクロックレジスタ（たとえば、第１のクロックレジスタ１１２および第３のクロックレジスタ２０４）を、第２のデバイス１２０の第２のクロックレジスタ１２２と同期させ得る。たとえば、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、ＴＯＤタイムスタンプ１５２およびＴＯＡタイムスタンプ１２４に基づいて、第１のクロックレジスタ１１２と第２のクロックレジスタ１２２との間の第１のオフセットを決定し得、他のＴＯＤタイムスタンプおよびＴＯＡタイムスタンプ１２４に基づいて、第３のクロックレジスタ２０４と第２のクロックレジスタ１２２との間の第２のオフセットを決定し得る。第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、第１のデバイス１１０（または第２のデバイス１２０）において生成された第１のデータの第１のタイムスタンプを、第２のデバイス１２０（または第１のデバイス１１０）から受信された第２のデータの第２のタイムスタンプと同期させ得る。たとえば、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、第１のタイムスタンプに、または第２のタイムスタンプにオフセットを加え得る。別の例として、第１のデバイス１１０の同期モジュール１０２は、ＴＯＤタイムスタンプ１５２とＴＯＡタイムスタンプ１２４との間の差に基づいて第１のクロックレジスタ１１２の値を更新し得、他のＴＯＤタイムスタンプとＴＯＡタイムスタンプ１２４との間の差に基づいて第３のクロックレジスタ２０４の値を更新し得る。
【００６３】
[0068]したがって、システム２００は、イベントメッセージ２３０が第１のデバイス１１０から送信される時刻に対応する第１のデバイス１１０における複数のＴＯＤタイムスタンプと、イベントメッセージ２３０が第２のデバイス１２０によって受信される時刻に対応する第２のデバイス１２０におけるＴＯＡタイムスタンプとの比較を可能にし得る。複数のＴＯＤタイムスタンプは、イベントメッセージ２３０の第１のビットが送信されるときに対応し得、ＴＯＡタイムスタンプは、イベントメッセージ２３０の第１のビットが受信されるときに対応し得、その結果、正確な比較が得られる。システム２００は、正確な比較に基づくクロック同期を可能にし得る。
【００６４】
[0069]図３を参照すると、タイミング図の特定の態様が示されており、全般的に３００と示されている。タイミング図３００は、図１〜２のシステム１００〜２００のうちの少なくとも１つによって実施されるネットワーククロック比較に対応し得る。
【００６５】
[0070]タイミング図３００に示されるように、第１のクロックレジスタ１１２、第２のクロックレジスタ１２２、および第３のクロックレジスタ２０４は別個の値を有し得、別個のレートで動作し得る。たとえば、第１のクロックレジスタ１１２の値は第１の周期的間隔で更新され得、第２のクロックレジスタ１２２の値は第２の周期的間隔で更新され得、第３のクロックレジスタの値は第３の周期的間隔で更新され得る。
【００６６】
[0071]動作中に、図１の第１のデバイス１１０の検出回路１３０は、図１〜２を参照して説明されたように、イベントメッセージ２３０（たとえば、パケット１５０）の送信に応答して、第１のタイムスタンプ取込み信号１１４をアサートし得る。図１を参照して説明されたように、第１のタイムスタンプ取込み信号１１４はエッジトリガ信号であり得る。たとえば、タイミング図３００の遷移３０２は、第１のタイムスタンプ取込み信号１１４に対応し得る。第１のデバイス１１０の取込み回路１３２は、図１〜２を参照して説明されたように、第１のタイムスタンプ取込み信号１１４に応答して、第１のクロックレジスタ１１２から第１のシャドータイムスタンプレジスタ１１６にＴＯＤタイムスタンプ１５２（たとえば、４）をコピーし得る。第１のデバイス１１０の取込み回路１３２は、図２を参照して説明されたように、第１のタイムスタンプ取込み信号１１４に応答して、第３のクロックレジスタ２０４から第３のシャドータイムスタンプレジスタ２２４に別のＴＯＤタイムスタンプ（たとえば、２０）をコピーし得る。
【００６７】
[0072]特定の態様では、遷移３０２は、図１の第２のデバイス１２０の第２のタイムスタンプ取込み信号１３４に対応し得る。たとえば、遷移３０２は、図２を参照して説明されたように、イベントメッセージ２３０を受信したことに応答して第２のデバイス１２０の検出回路１３０によってアサートされる第２のタイムスタンプ取込み信号１３４に対応し得る。図１の第２のデバイス１２０の取込み回路１３２は、図１〜２を参照して説明されたように、第２のタイムスタンプ取込み信号１３４に応答して、ＴＯＡタイムスタンプ１２４を取り込み得る。たとえば、取込み回路１３２は、第２のクロックレジスタ１２２から第２のシャドータイムスタンプレジスタ１２６にＴＯＡタイムスタンプ１２４（たとえば、２６）をコピーし得る。
【００６８】
[0073]第１のシャドータイムスタンプレジスタ１１６、第２のシャドータイムスタンプレジスタ１２６、および第３のシャドータイムスタンプレジスタ２２４の値は、それぞれ、第１のクロックレジスタ１１２、第２のクロックレジスタ１２２、および第３のクロックレジスタ２０４の値のスナップショットであり得る。スナップショットは遷移３０２に関する時刻に対応し得る。特定の態様では、第１のデバイス１１０（または第２のデバイス１２０）の同期モジュール１０２は、待ち時間問題なしに、または待ち時間問題が低減されて（with no or reduced latency concerns）、第１のシャドータイムスタンプレジスタ１１６、第２のシャドータイムスタンプレジスタ１２６、および／または第３のシャドータイムスタンプレジスタ２２４の値を比較し得る。たとえば、第１のシャドータイムスタンプレジスタ１１６、第２のシャドータイムスタンプレジスタ１２６、および第３のシャドータイムスタンプレジスタ２２４の値は、別個の時刻に読み取られ得、それでも、遷移３０２に対応する実質的に同様の取込み時刻を表し得る。
【００６９】
[0074]したがって、タイミング図３００は、イベントメッセージが第１のデバイスによって送信される時刻に対応するＴＯＤタイムスタンプと、イベントメッセージが第２のデバイスによって受信される時刻に対応するＴＯＡタイムスタンプとの比較に対応し得る。
【００７０】
[0075]図４を参照すると、ネットワーククロック比較の方法の特定の態様が示されており、全般的に４００と示されている。特定の態様では、方法４００は、図１〜２のシステム１００〜２００のうちの少なくとも１つによって実施され得る。
【００７１】
[0076]方法４００は、４０２で、第１のデバイスにおいて、第２のデバイスからパケットを受信することを含む。たとえば、図１の第２のデバイス１２０は、図１を参照して説明されたように、第１のデバイス１１０からパケット１５０を受信し得る。
【００７２】
[0077]方法４００はまた、４０４で、検出回路において、パケットの受信を検出することをも含む。たとえば、図１の第２のデバイス１２０の検出回路１３０は、図１を参照して説明されたように、パケット１５０の受信を検出し得る。検出回路１３０は、第１のデバイス１１０からパケット１５０を受信したことに応答して、第２のタイムスタンプ取込み信号１３４をアサートし得る。
【００７３】
[0078]方法４００は、４０６で、パケットの受信を検出したことに応答して、取込み回路において、パケットに対応する到着時刻タイムスタンプを取り込むことをさらに含む。たとえば、図１の第２のデバイス１２０の取込み回路１３２は、図１を参照して説明されたように、検出回路１３０がパケット１５０の受信を検出したことに応答して、ＴＯＡタイムスタンプ１２４を取り込み得る。取込み回路１３２は、第２のタイムスタンプ取込み信号１３４に応答して、ＴＯＡタイムスタンプ１２４を取り込み得る。
【００７４】
[0079]方法４００はまた、４０８で、第２のデバイスからパケットに対応する出発時刻タイムスタンプを受信することをも含む。出発時刻タイムスタンプは、パケットが第２のデバイスから送られる時刻を示し得る。たとえば、図１の第２のデバイス１２０は、図１を参照して説明されたように、第１のデバイス１１０からパケット１５０に対応するＴＯＤタイムスタンプ１５２を受信し得る。ＴＯＤタイムスタンプ１５２は、図１を参照して説明されたように、パケット１５０が第１のデバイス１１０から送られる時刻を示し得る。
【００７５】
[0080]方法４００は、４１０で、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施することをさらに含む。たとえば、図１の第２のデバイス１２０の同期モジュール１０２は、図１を参照して説明されたように、ＴＯＡタイムスタンプ１２４とＴＯＤタイムスタンプ１５２とを比較し得る。
【００７６】
[0081]したがって、方法４００は、第２のデバイス１２０の同期モジュール１０２が、パケット１５０が第１のデバイス１１０によって送信される時刻に対応するＴＯＤタイムスタンプ１５２と、パケット１５０が第２のデバイス１２０によって受信される時刻に対応するＴＯＡタイムスタンプ１２４とを比較することを可能にし得る。
【００７７】
[0082]図４の方法４００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、ＣＰＵなどの処理デバイス、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せを使用して実装され得る。一例として、図４の方法４００は、図６に関連して説明されるように、命令を実行するプロセッサを使用して実施され得る。
【００７８】
[0083]図５を参照すると、ネットワーククロック比較の方法の特定の態様が示されており、全般的に５００と示されている。特定の態様では、方法５００は、図１〜２のシステム１００〜２００のうちの少なくとも１つによって実施され得る。
【００７９】
[0084]方法５００は、５０２で、第１のデバイスから第２のデバイスにパケットを送ることを含む。たとえば、図１の第１のデバイス１１０は、図１を参照して説明されたように、第２のデバイス１２０にパケット１５０を送り得る。
【００８０】
[0085]方法５００はまた、５０４で、検出回路において、パケットの送信を検出することをも含む。たとえば、図１の第１のデバイス１１０の検出回路１３０は、図１を参照して説明されたように、パケット１５０の送信を検出し得る。検出回路１３０は、パケット１５０の送信を検出したことに応答して、第１のタイムスタンプ取込み信号１１４をアサートし得る。
【００８１】
[0086]方法５００は、５０６で、パケットの送信を検出したことに応答して、取込み回路において、パケットに対応する出発時刻タイムスタンプを取り込むことをさらに含む。たとえば、図１の第１のデバイス１１０の取込み回路１３２は、図１を参照して説明されたように、検出回路１３０がパケットの送信を検出したことに応答して、ＴＯＤタイムスタンプ１５２を取り込み得る。取込み回路１３２は、第１のタイムスタンプ取込み信号１１４に応答して、ＴＯＤタイムスタンプ１５２を取り込み得る。
【００８２】
[0087]方法５００はまた、５０８で、第１のデバイスにおいて、第２のデバイスからパケットに対応する到着時刻タイムスタンプを受信することをも含む。到着時刻タイムスタンプは、パケットが第２のデバイスによって受信される時刻を示し得る。たとえば、図１の第１のデバイス１１０の受信機１４４は、図１を参照して説明されたように、第２のデバイス１２０から到着時刻（ＴＯＡ）タイムスタンプ１２４を受信し得る。ＴＯＡタイムスタンプ１２４は、図１を参照して説明されたように、パケット１５０が第２のデバイス１２０によって受信される時刻を示し得る。
【００８３】
[0088]方法５００は、５１０で、到着時刻タイムスタンプと出発時刻タイムスタンプとの比較を実施することをさらに含む。たとえば、図１の第１のデバイス１１０の同期モジュール１０２は、図１を参照して説明されたように、ＴＯＡタイムスタンプ１２４とＴＯＤタイムスタンプ１５２とを比較し得る。
【００８４】
[0089]したがって、方法５００は、第１のデバイス１１０の同期モジュール１０２が、パケット１５０が第１のデバイス１１０によって送信される時刻に対応するＴＯＤタイムスタンプ１５２と、パケット１５０が第２のデバイス１２０によって受信される時刻に対応するＴＯＡタイムスタンプ１２４とを比較することを可能にし得る。
【００８５】
[0090]図５の方法５００は、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理デバイス、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せを使用して実装され得る。一例として、図５の方法５００は、図６に関連して説明されるように、命令を実行するプロセッサを使用して実施され得る。
【００８６】
[0091]図６を参照すると、ワイヤレス通信デバイスの特定の例示的態様のブロック図が示されており、全般的に６００と示されている。特定の態様では、デバイス６００は、図１の第１のデバイス１１０、第２のデバイス１２０、またはその両方に対応し得る。
【００８７】
[0092]デバイス６００は、メモリ１３６に結合されたプロセッサ１３８を含む。プロセッサ１３８はＤＳＰまたはＣＰＵを含み得る。プロセッサ１３８は、同期モジュール１０２、同期レジスタ１０８、検出回路１３０、取込み回路１３２、またはそれらの組合せに結合され得、またはそれらを含み得る。プロセッサ１３８は、トランシーバ１０４を介してアンテナ１４２に結合され得る。特定の態様では、トランシーバ１０４は、受信機１４４、送信機１９４、またはその両方を含み得、またはそれらに結合され得る。特定の態様では、同期モジュール１０２、取込み回路１３２、検出回路１３０、受信機１４４、送信機１９４、またはそれらの組合せは、図１〜５を参照して説明された方法および動作のうちの少なくとも一部を実施し得る。
【００８８】
[0093]検出回路１３０は、パケット（たとえば、図１のパケット１５０）の第１のビットがトランシーバ１０４によって受信または送信されることを検出し得る。検出回路１３０は、タイムスタンプ取込み信号（たとえば、図１の第１のタイムスタンプ取込み信号１１４または第２のタイムスタンプ取込み信号１３４）をアサートし得る。取込み回路１３２は、タイムスタンプ取込み信号（たとえば、第１のタイムスタンプ取込み信号１１４または第２のタイムスタンプ取込み信号１３４）に応答して、タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）を取り込み得る。たとえば、取込み回路１３２は、同期レジスタ１０８のクロックレジスタ（たとえば、図１の第１のクロックレジスタ１１２または第２のクロックレジスタ１２２）から、同期レジスタ１０８のシャドータイムスタンプレジスタ（たとえば、図１の第１のシャドータイムスタンプレジスタ１１６または第２のシャドータイムスタンプレジスタ１２６）に、タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）をコピーし得る。受信機１４４は、別のデバイス（たとえば、第１のデバイス１１０または第２のデバイス１２０）から、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）を受信し得、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）をメモリ１３６内に記憶し得る。同期モジュール１０２は、シャドータイムスタンプレジスタ（たとえば、第１のシャドータイムスタンプレジスタ１１６または第２のシャドータイムスタンプレジスタ１２６）からタイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）を読み取り得、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）をメモリ１３６から読み取り得る。同期モジュール１０２は、タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）と、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）とを比較し得る。特定の態様では、同期モジュール１０２は、図１を参照して説明されたように、比較に基づいてクロック同期を実施し得る。
【００８９】
[0094]特定の態様では、同期モジュール１０２、取込み回路１３２、検出回路１３０、受信機１４４、送信機１９４、またはそれらの組合せは、１つまたは複数のプロセッサ（たとえば、プロセッサ１３８）などを介して、オンチップで実装され得る。たとえば、取込み回路１３２および検出回路１３０は、単一のチップまたは別個のチップ上で実装され得る。特定の態様では、メモリ１３６は、同期モジュール１０２、取込み回路１３２、検出回路１３０、受信機１４４、送信機１９４、またはそれらの組合せの動作をプロセッサ１３８に実施させるようにプロセッサ１３８によって実行可能であるコンピュータ実行可能命令６５６を記憶するコンピュータ可読記憶デバイスであり得る。たとえば、プロセッサ１３８は、図１を参照して説明されたように、パケット（たとえば、パケット１５０）の第１のビットの送信に応答して、またはパケット（たとえば、パケット１５０）の第１のビットが受信されたことに応答して、タイムスタンプ取込み信号（たとえば、第１のタイムスタンプ取込み信号１１４または第２のタイムスタンプ取込み信号１３４）をアサートし得、タイムスタンプ取込み信号に応答して、タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）を取り込み得、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）を受信し得、タイムスタンプ（たとえば、ＴＯＡタイムスタンプ１２４またはＴＯＤタイムスタンプ１５２）と、対応するタイムスタンプ（たとえば、ＴＯＤタイムスタンプ１５２またはＴＯＡタイムスタンプ１２４）とを比較し得、比較に基づいてクロック同期を実施し得、またはそれらの組合せを実施し得る。
【００９０】
[0095]図６はまた、プロセッサ１３８に、およびディスプレイ６２８に結合されるディスプレイコントローラ６２６をも示す。コーダ／デコーダ（コーデック）６３４もプロセッサ１３８に結合され得る。スピーカ６３６およびマイクロフォン６３８がコーデック６３４に結合され得る。マイクロフォン６３８はオーディオソースデバイスを含み得る。
【００９１】
[0096]特定の態様では、プロセッサ１３８、ディスプレイコントローラ６２６、メモリ１３６、コーデック６３４、同期モジュール１０２、同期レジスタ１０８、取込み回路１３２、検出回路１３０、およびトランシーバ１０４が、システムインパッケージ（system-in-package）またはシステムオンチップ（system-on-chip）・デバイス６２２内に含まれる。特定の態様では、入力デバイス６３０および電源６４４が、システムオンチップ・デバイス６２２に結合される。入力デバイス６３０はビデオソースデバイスを含み得る。さらに、特定の態様では、図６に示されるように、ディスプレイ６２８、入力デバイス６３０、スピーカ６３６、マイクロフォン６３８、アンテナ１４２、および電源６４４は、システムオンチップ・デバイス６２２の外部にある。しかしながら、ディスプレイ６２８、入力デバイス６３０、スピーカ６３６、マイクロフォン６３８、アンテナ１４２、および電源６４４の各々は、インターフェースやコントローラなどのシステムオンチップ・デバイス６２２の構成要素に結合され得る。
【００９２】
[0097]本明細書で開示される態様に関連して説明された様々な例示的論理ブロック、構成、モジュール、回路、アルゴリズムステップが、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組合せとして実装され得ることを当業者ならさらに理解されよう。様々な例示的構成要素、ブロック、構成、モジュール、回路、およびステップが、その機能の観点で上記で一般的に説明された。そのような機能がハードウェアとして実装されるか、それともプロセッサ実行可能命令として実装されるかは、特定の応用例と、システム全体に課される設計制約とに依存する。当業者は、特定のアプリケーションごとに様々な方式で記載の機能を実装し得るが、そのような実装決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００９３】
[0098]本明細書で開示される態様に関連して説明された方法またはアルゴリズムのステップは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェアモジュールで、またはその２つの組合せで具現され得る。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、取外し可能ディスク、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、または当技術分野で周知の任意の他の形態の非一時的記憶媒体内に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込み得るようにプロセッサに結合される。代替実施形態では、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はＡＳＩＣ内にあり得る。ＡＳＩＣはコンピューティングデバイスまたはユーザ端末内にあり得る。代替実施形態では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に別個の構成要素としてあり得る。
【００９４】
[0099]開示される態様の先の説明は、開示される態様を当業者が作成または使用することを可能にするように提供される。これらの態様に対する様々な修正が当業者には直ちに明らかとなり、本明細書で定義される原理は、本開示の範囲から逸脱することなく他の態様に適用され得る。したがって、本開示は、本明細書で示される態様に限定されないものとし、以下の特許請求の範囲で定義される原理および新規な特徴に適合する、可能な最も広い範囲が与えられるべきである。
【図１】
2017521027.tif 000003
【図２】
2017521027.tif 000004
【図３】
2017521027.tif 000005
【図４】
2017521027.tif 000006
【図５】
2017521027.tif 000007
【図６】
2017521027.tif 000008
【国際調査報告】
2017521027.tif 000009
2017521027.tif 000010
2017521027.tif 000011
2017521027.tif 000012