(57)【特許請求の範囲】
【請求項１】
第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の第１の時間デュレーションが非予定データ伝送を実行するのに十分であるか否か判断すること、
前記第１の時間デュレーションが前記非予定データ伝送を実行するのに不十分であると判断したことに応答して、前記第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の前記第１の時間デュレーションを大きくするように前記第１予定データ伝送のスタートを早めること、
前記早められた第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の大きくされた前記第１の時間デュレーションが前記非予定データ伝送を実行するのに十分であるか否か判断すること、
前記大きくされた第１の時間デュレーションが前記非予定データ伝送を実行するのに不十分であると判断したことに応答して、前記第２予定データ伝送の終わりと第３予定データ伝送の始まりとの間の第２の時間デュレーションを大きくするように前記第２予定データ伝送のスタートを早めること、および
前記早められた第２予定データ伝送の前記終わりと前記第３予定データ伝送の前記始まりとの間の大きくされた前記第２の時間デュレーションの間に前記非予定データ伝送を実行すること
を含む、
方法。
【請求項２】
前記第２予定データ伝送の前記終わりと前記第３予定データ伝送の前記始まりとの間の前記大きくされた第２時間デュレーションの間に第２非予定データ伝送を、前記大きくされた第２時間デュレーションが前記第２非予定データ伝送を実行するのに十分であると判断したことに応答して、実行することを更に含む、請求項１に記載の方法。
【請求項３】
前記大きくされた第１の時間デュレーションは前記非予定データ伝送を実行するのに十分であると判断したことに応答して、前記早められた第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の前記大きくされた第１の時間デュレーションの間に前記非予定データ伝送を実行すること
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記早められた第２予定データ伝送の前記終わりと前記第３予定データ伝送の前記始まりとの間の前記大きくされた第２の時間デュレーションは、前記早められた第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の前記大きくされた第１の時間デュレーションより大きい、請求項１から３のいずれか１つに記載の方法。
【請求項５】
前記大きくされた第１の時間デュレーションの間に前記非予定データ伝送を実行することは、前記非予定データ伝送を、前記大きくされた第１の時間デュレーションに遭遇するまで遅延させることを含む、請求項１から請求項４のいずれか１つに記載の方法。
【請求項６】
前記第１予定データ伝送は第１の時間センシティブなデータを含み、前記第２予定データ伝送は第２の時間センシティブなデータを含み、前記非予定データ伝送は非時間センシティブなデータを含む、請求項１から請求項５のいずれか１つに記載の方法。
【請求項７】
前記第１の時間センシティブなデータおよび前記第２の時間センシティブなデータはＩＥＥＥ１７２２規格に従って伝送されるべくパケット化される、請求項６に記載の方法。
【請求項８】
前記第１予定データ伝送の前記スタートを早めることは、前記第１予定データ伝送の前記スタートを約１３マイクロ秒、もしくは約１３マイクロ秒より早める、請求項１から請求項７のいずれか１つに記載の方法。
【請求項９】
第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の第１の時間デュレーションが非予定データ伝送を実行するのに十分であるか否か判断する段階、
前記第１の時間デュレーションが前記非予定データ伝送を実行するのに不十分であると判断したことに応答して、前記第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の前記第１の時間デュレーションを大きくするように前記第１予定データ伝送のスタートを早める段階と、
前記早められた第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の大きくされた前記第１の時間デュレーションが前記非予定データ伝送を実行するのに十分であるか否か判断する段階と、
前記大きくされた第１の時間デュレーションが前記非予定データ伝送を実行するのに不十分であると判断したことに応答して、前記第２予定データ伝送の終わりと第３予定データ伝送の始まりとの間の第２の時間デュレーションを大きくするように前記第２予定データ伝送のスタートを早める段階と、
前記早められた第２予定データ伝送の前記終わりと前記第３予定データ伝送の前記始まりとの間の前記大きくされた第２の時間デュレーションの間に前記非予定データ伝送を実行する段階と
をコンピュータに実行させるためのプログラム。
【請求項１０】
前記第２予定データ伝送の前記終わりと前記第３予定データ伝送の前記始まりとの間の前記大きくされた第２時間デュレーションの間に第２非予定データ伝送を、前記大きくされた第２時間デュレーションが前記第２非予定データ伝送を実行するのに十分であると判断したことに応答して、実行する段階をさらに前記コンピュータに実行させる、請求項９に記載のプログラム。
【請求項１１】
前記大きくされた第１の時間デュレーションが前記非予定データ伝送を実行するのに十分であると判断したことに応答して、前記早められた第１予定データ伝送の前記終わりと前記第２予定データ伝送の前記始まりとの間の前記大きくされた第１の時間デュレーションの間に前記非予定データ伝送を実行する段階をさらに前記コンピュータに実行させる、請求項９または１０に記載のプログラム。
【請求項１２】
前記第１予定データ伝送の前記始まりと前記第２予定データ伝送の前記始まりとは時間アウェアなマルチメディアネットワークの伝送時間に生じるように予定される、請求項９から１１のいずれか１つに記載のプログラム。
【請求項１３】
前記第１予定データ伝送の前記スタートは前記非予定データ伝送のデュレーションに基づいて早められる、請求項９から請求項１２のいずれか１つに記載のプログラム。
【請求項１４】
非時間センシティブなデータは１５４２バイトまたは１５４２バイトより少ないデータを含む、請求項１３に記載のプログラム。
【請求項１５】
時間センシティブなデータを記憶する第１キュー、
非時間センシティブなデータを記憶する第２キュー、
前記時間センシティブなデータのパケットおよび前記非時間センシティブなデータのパケットをそれぞれ前記第１キューおよび前記第２キューから伝送するネットワークインターフェース、ならびに
データアービタを含み、
前記データアービタは、
時間センシティブなデータの第１パケットの予定伝送が終わる時と時間センシティブなデータの第２パケットの予定伝送が始まる時との間の第１の時間デュレーションが非時間センシティブなデータのパケットの伝送を実行するのに十分であるか否か判断し、
前記第１の時間デュレーションが非時間センシティブなデータの前記パケットの前記伝送を実行するには不十分であると判断したことに応答して、時間センシティブなデータの前記第１パケットの前記予定伝送が終わる時と時間センシティブなデータの前記第２パケットの前記予定伝送が始まる時との間の前記第１の時間デュレーションを大きくするように時間センシティブなデータの前記第１パケットの前記予定伝送のスタートを早め、
早められた前記第１パケットの前記予定伝送の前記終わりと前記第２パケットの前記予定伝送の前記始まりとの間の大きくされた前記第１の時間デュレーションが前記非時間センシティブなデータの前記パケットの前記伝送を実行するのに十分であるか否か判断し、
前記大きくされた第１の時間デュレーションが前記非時間センシティブなデータの前記パケットの前記伝送を実行するのに不十分であると判断したことに応答して、前記第２パケットの前記予定伝送の終わりと時間センシティブなデータの第３パケットの予定伝送の始まりとの間の第２の時間デュレーションを大きくするように前記第２パケットの前記予定伝送のスタートを早め、
時間センシティブなデータの早められた前記第２パケットの前記予定伝送が終わる時と時間センシティブなデータの前記第３パケットの前記予定伝送が始まる時との間の大きくされた前記第２の時間デュレーションの間に前記非時間センシティブなデータの前記パケットの前記伝送を実行する、
システム。
【請求項１６】
前記システムはメディアホストデバイスのイーサネット（登録商標）コントローラとして具体化されて、時間センシティブなデータの前記パケットを１つのメディアクライアントデバイスまたは１より多いメディアクライアントデバイスへ前記ネットワークインターフェースを介して伝送する、請求項１５に記載のシステム。
【請求項１７】
時間センシティブなデータの前記第１パケットの前記予定伝送の前記スタートを早める時間量をセットするように構成可能な前記データアービタと関連するプログラマブルな制御レジスタを更に含む、請求項１５または請求項１６に記載のシステム。
【請求項１８】
前記ネットワークインターフェースはＩＥＥＥ１７２２規格に準拠して動作するように構成された有線ネットワークインターフェースである、請求項１５から請求項１７のいずれか１つに記載のシステム。
【請求項１９】
時間センシティブなデータの前記パケットはオーディオ−ビデオブリッジング（ＡＶＢ）データのパケットであり、非時間センシティブなデータの前記パケットは非ＡＶＢデータのパケットである、請求項１５から請求項１８のいずれか１つに記載のシステム。
【請求項２０】
前記システムはシステムオンチップとして具体化される、請求項１５から請求項１９のいずれか１つに記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願との相互参照］
本開示は、２０１１年１１月３日に出願された米国特許仮出願第６１／５５５，４５３号の優先権を主張し、その開示の全体が参照により本書に組み込まれる。
【背景技術】
【０００２】
本書において提供される背景記載は、開示の背景を一般的に提示することを目的とする。現在名前が挙げられている発明者の仕事は、それがこの背景技術の項に記載されている限り、そうでなければ出願時に従来技術と見なされないかもしれない該記載の側面と同じく、本開示と対照して明示的にも暗黙的にも従来技術とは認められない。
【０００３】
通信ネットワークは、ユーザがマルチメディアデータを種々の計算および電子デバイスに配布あるいはストリーミングすることを可能にする。これらの通信ネットワークは、１つまたは１より多いリモートデバイスを介してのマルチメディアデータの同期プレゼンテーションを可能にする時間アウェアな（ｔｉｍｅ−ａｗａｒｅ）ネットワークであり得る。時間アウェアなネットワークのタイミング制約への準拠は、普通、マルチメディアデータを予定された間隔を置いて伝送することによって達成される。これらの予定された伝送は、同期プレゼンテーションを可能にするためにリモートデバイスへのマルチメディアデータの適時配達を保証するように意図される。
【０００４】
しかし、たいていの通信ネットワークおよびデバイスは、非予定時に発生する可能性のある他のタイプのデータをも伝える。これらの他のタイプのデータの非予定伝送は、マルチメディアデータの予定伝送を妨げ、あるいは干渉することがあり得る。例えば、該他のタイプのデータの進行中の伝送は、マルチメディアデータの予定伝送の開始を妨げるかもしれない。予定伝送が妨げられると、該他のデータの進行中の伝送が完了するまで、時間アウェアなネットワークでのマルチメディアデータの伝達を遅延させるかもしれない。しかし、マルチメディアデータの伝送の遅延は、時間アウェアなネットワークのタイミング制約に違反し、マルチメディアデータの同期プレゼンテーションを混乱させ、あるいは爾後のネットワーク通信を損なうかもしれない。
【発明の概要】
【０００５】
この概要は、詳細な説明および図面において更に記述される主題を紹介するために提供される。従って、この概要は、本質的フィーチャを記述すると見なされるべきではなく、請求項に記載された主題の範囲を限定するために用いられるべきではない。
【０００６】
第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに十分であるか否か判断するための方法が記述される。該時間デュレーションが該非予定データ伝送を実行するのに十分ではないという判断に応答して、該第１予定データ伝送のスタートは、該第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の時間デュレーションを実際上大きくするように早められる。その後、該非予定データ伝送は、早められた第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の大きくされた時間デュレーションの間に実行される。
【０００７】
予定データ伝送に先行する時間デュレーションと該予定データ伝送に続く時間デュレーションとが、もし組み合わされたとすれば、非予定データ伝送を実行するのに十分であるか否か判断する他の方法が記載される。もし組み合わされたそれらの時間デュレーションが非予定データ伝送を実行するのに十分であるならば、該予定データ伝送のスタートは実際上該時間デュレーションを組み合わせるように早められる。もし組み合わされたそれらの時間デュレーションが該非予定データ伝送を実行するのに十分ではなければ、該予定データ伝送および次の予定データ伝送のスタートは、該次の予定データ伝送に続く時間デュレーションを大きくするために早められ、該次の予定データ伝送に続く該大きくされた時間デュレーションは該組み合された時間デュレーションより大きい。該非予定データ伝送は、その後、該組み合された時間デュレーションの間に、または該早められた次の予定データ伝送に続く該大きくされた時間デュレーションの間に実行される。
【０００８】
時間センシティブなデータの第１パケットの予定伝送が終わる時と時間センシティブなデータの第２パケットの予定伝送が始まる時との間の時間デュレーションが非時間センシティブなデータのパケットの伝送を実行するのに十分であるか否か判断するデータアービタを含むシステムオンチップ（Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ（ＳｏＣ））が記載される。該データアービタは、時間センシティブなデータの第１パケットの予定伝送が終わる時と時間センシティブなデータの第２パケットの予定伝送が始まる時との間の時間デュレーションを、もし該時間デュレーションが非時間センシティブなデータのパケットの伝送を実行するのに十分でなければ、実際上大きくするように時間センシティブなデータの第１パケットの予定伝送のスタートを早める。該データアービタは、その後、時間センシティブなデータの第１パケットの該早められた予定伝送が終わる時と時間センシティブなデータの第２パケットの予定伝送が始まる時との間の該大きくされた時間デュレーションの間に非時間センシティブなデータの該パケットの伝送を実行する。
【０００９】
添付図面および以下の記載において１つ以上の実装形態の詳細が明らかにされる。他のフィーチャおよび利点は該記載および図面から明らかになるであろう。
【００１０】
図面において、参照番号の左端の数字は、その参照番号が初めて現れた図を特定する。該記載および図面において異なる例に使用された同じ参照番号は同様のエレメントを示す。
【図面の簡単な説明】
【００１１】
【図１】１つ以上の側面に従うネットワークデバイスを有する動作環境を示す。
【００１２】
【図２】１つ以上の側面に従って通信する図１のネットワークデバイスの例を示す。
【００１３】
【図３】予定データ伝送のスタートを早める方法を示す。
【００１４】
【図４】１つ以上の側面に従うデータ伝送のタイムライン例を示す。
【００１５】
【図５】複数の予定データ伝送のスタートを早める方法を示す。
【００１６】
【図６】１つ以上の側面に従うデータ伝送の他の１つのタイムライン例を示す。
【００１７】
【図７】１つ以上の側面に従うオーディオ−ビデオブリッジング（ａｕｄｉｏ−ｖｉｄｅｏ  ｂｒｉｄｇｉｎｇ（ＡＶＢ））データをプリローンチする方法を示す。
【００１８】
【図８】本書に記載されている技術の側面を実装するためのシステムオンチップ（ＳｏＣ）環境を示す。
【発明を実施するための形態】
【００１９】
予定された間隔を置いて時間センシティブなデータパケットを伝送するための在来の技術は、大きな非予定データ伝送の伝送をブロックするかあるいは非予定データ伝送が時間センシティブなデータパケットの予定伝送を妨げもしくは遅延させることを許すことができる。しかし、予定伝送を遅延させることは、時間アウェアなネットワークのタイミング制約に違反し、あるいは時間センシティブなパケットと関連する時間ベースの機能性を混乱させるかもしれない。この開示は、時間センシティブなデータ伝送のアービトレーションのための装置および技術を記載する。第１予定データ伝送のスタートは、第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の時間デュレーションを実際上大きくするように、早められ得る。その後、非予定データ伝送は、該早められた第１予定伝送の終わりと第２予定伝送の始まりとの間の該大きくされた時間デュレーションの間に実行され得る。そのようにすることによって、両方のタイプの伝送のための通信帯域幅は、予定データ伝送を遅延させることなく、保存され得る。
【００２０】
次のディスカッションは、動作環境、該動作環境において使用され得る技術、および該動作環境のコンポーネントが具体化され得るシステムオンチップ（ＳｏＣ）を記載する。以下のディスカッションにおいて、単なる例として該動作環境が言及される。
【００２１】
動作環境
図１は、マルチメディアホストデバイス１０２（ホストデバイス１０２）およびマルチメディアクライアントデバイス１０４（クライアントデバイス１０４）を有する例としての動作環境１００を示し、それらの各々はネットワーク化されていて、通信リンク１０６を介してデータ、パケット、および／またはフレームを伝達することができる。通信リンク１０６は有線通信リンク、無線通信リンク、あるいはそれらの任意の適切な組み合わせであり得る。例えば、通信リンク１０６は、全体としてあるいは部分的にローカルエリアネットワーク（ｌｏｃａｌ−ａｒｅａ−ｎｅｔｗｏｒｋ（ＬＡＮ））、光ファイバネットワーク、無線ローカルエリアネットワーク（ｗｉｒｅｌｅｓｓ  ｌｏｃａｌ−ａｒｅａ−ｎｅｔｗｏｒｋ（ＷＬＡＮ））、または短範囲無線ネットワークとして実装され得る。通信リンク１０６は、後述されるように、時間アウェアなネットワークを介しても実装され得る。ホストデバイス１０２はスマートフォン１０８、タブレットコンピュータ１１０、ラップトップコンピュータ１１２、およびセットトップボックスデバイス１１４（セットトップボックス１１４）を含む。図示されてはいないけれども、デスクトップコンピュータ、サーバ、メディアサーバ、ネットワークアタッチトストレージデバイス（ｎｅｔｗｏｒｋ−ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ（ＮＡＳデバイス））、モバイルインターネットデバイス（ｍｏｂｉｌｅ−ｉｎｔｅｒｎｅｔ  ｄｅｖｉｃｅ（ＭＩＤ））、ゲームコンソール、ルータ、モバイルホットスポット、アクセスポイント、などの、他の構成のホストデバイス１０２も考えられる。
【００２２】
各ホストデバイス１０２は、例えば第３世代パートナーシッププロジェクトロングタームエボリューション（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ  Ｌｏｎｇ−Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ（３ＧＰＰＬＴＥ））、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＩＥＥＥ８０２．１１−２００７、ＩＥＥＥ８０２．１１ｎ、などの種々の無線通信プロトコルを処理する通信インターフェースを提供するために無線トランスミッタ１１６および無線レシーバ１１８を含み得る。トランスミッタ１１６およびレシーバ１１８は、別々（示されている）でも組み合わされ（示されていない）ても良くて、ファームウェアもしくはソフトウェアと組み合わされるかあるいはそれらとは別のハードウェアであり得る。ホストデバイス１０２は、ＩＥＥＥ１７２２、ＩＥＥＥ８０２．３ｂｈ、ＩＥＥＥ８０２．１ＡＳ、ＩＥＥＥ８０２．１Ｑａｔ、ＩＥＥＥ８０２．１Ｑａｖ、などの種々の有線通信プロトコルを処理する通信インターフェースを提供するための有線ネットワークインターフェース１２０も含む。有線ネットワークインターフェース１２０は、メディアアクセスコントローラ（ｍｅｄｉｕｍ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ（ＭＡＣ））と、ファームウェアもしくはソフトウェアと組み合わされるかあるいはそれらとは別のハードウェアであり得る物理層（ｐｈｙｓｉｃａｌ  ｌａｙｅｒ（ＰＨＹ））とから構成されるなど、任意の適切な仕方で構成され得る。
【００２３】
これらの種々の通信プロトコルは、後述される時間アウェアなネットワークを定義し、あるいはそれに従って動作することができる。代わりにあるいは更に、有線または無線通信プロトコルの側面は、本書において提示される思想の趣旨から逸脱することなく他の任意の通信プロトコルのフィーチャと組み合わされ、あるいは該フィーチャを改変するために使用されることができる。例えば、有線通信プロトコルのフィーチャは、無線ネットワークを介して本書に記載の１つ以上の側面を実装するために無線通信インターフェースを介して実装され得る。
【００２４】
ホストデバイス１０２は、１つまたは複数のプロセッサ１２２およびコンピュータ可読ストレージ媒体１２４（ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉａ（ＣＲＭ１２４））をも含む。プロセッサ１２２は、シリコン、ポリシリコン、高Ｋ誘電体、銅、などの種々の材料から構成される単一コアまたは複数コアプロセッサであり得る。ＣＲＭ１２４は、アプリケーションのデータおよび／またはホストデバイス１０２のオペレーティングシステムを記憶するのに役立つランダムアクセスメモリ（ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ（ＲＡＭ））、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、不揮発性ＲＡＭ（ＮＶＲＡＭ）、読み出し専用メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ（ＲＯＭ））、またはフラッシュメモリなどの任意の適切なメモリまたはストレージデバイスを含み得る。
【００２５】
ＣＲＭ１２４はマルチメディアデータ１２６およびデータアービタ１２８を含み、これらは、一実装形態においては、（示されているように）ＣＲＭ１２４上に具体化される。代わりにあるいは更に、データアービタ１２８は、全体としてあるいは部分的に、ホストデバイス１０２の他のコンポーネント（例えば、有線ネットワークインターフェース１２０）と統合されたあるいは該コンポーネントとは別のハードウェアロジックまたは回路として実装され得る。データアービタ１２８がどのように実装され使用されるかはさまざまであって後述される。マルチメディアデータ１２６は、オーディオデータ、ビデオデータ、あるいはそれらの組み合わせなど、任意の適切なタイプのデータを含み得る。マルチメディアデータは時間センシティブなデータであり得、その伝達は、関係するネットワークの時間またはタイミング制約にセンシティブである。マルチメディアデータ１２６は、ＩＥＥＥ１７２２−２０１１のセクション３またはセクション５などの任意の適切な通信プロトコルまたは規格に従って伝達され得る。例えば、マルチメディアデータ１２６は、同期プレゼンテーションのために時間ベースのネットワークを介してクライアントデバイス１０４に伝達されるオーディオ−ビデオブリッジング（ＡＶＢ）データであり得る。代わりにあるいは更に、マルチメディアデータ１２６は、任意の適切なレイヤ２トランスポートプロトコル（例えば、ＩＥＥＥ１７２２）に従うストリーミングのためにオーディオ／ビデオトランスポートプロトコル（ａｕｄｉｏ／ｖｉｄｅｏ  ｔｒａｎｓｐｏｒｔ  ｐｒｏｔｏｃｏｌ（ＡＶＴＰ））データまたはフレームとしてフォーマットされ得る。
【００２６】
クライアントデバイス１０４は、インターネット−プロトコル（ｉｎｔｅｒｎｅｔ−ｐｒｏｔｏｃｏｌ（ＩＰ））対応のテレビジョン１３０（ＩＰＴＶ１３０）、プロジェクタ１３２、および無線スピーカ１３４を含む。考えられるクライアントデバイス１０４の他の実装形態は、モニタ、ビデオカメラ、デジタルピクチャーフレーム、ＬＣＤベースのディスプレイ、トランスデューサ、サブウーファー、人間入力デバイス、などの、種々の周辺装置および／またはメディアデバイスを含む。各クライアントデバイス１０４は、通信リンク１０６を介してホストデバイス１０２から受け取られたマルチメディアデータ１２６をレンダリングし、デコードし、および／または提示し得る。例えば、ＩＰＴＶ１３０およびスピーカ１３４は、セットトップボックス１１４から受け取られたマルチメディアデータ１２６を使用して同期化されたマルチメディアコンテンツをユーザに提示することができる。
【００２７】
各クライアントデバイス１０４は無線トランシーバ１３６を含むことができ、これは、上であるいは本書の別の個所で言及されるものなどの種々の無線通信プロトコルを処理する通信インターフェースを提供する。単一のトランシーバとして示されているけれども、無線トランシーバ１３６は、別々のトランスミッタおよびレシーバとして実装され得、ファームウェアもしくはソフトウェアと組み合わされたかあるいはこれらとは別のハードウェアであり得る。
【００２８】
クライアントデバイス１０４は、上であるいは本書の別の個所で言及されるものなどの種々の有線通信プロトコルを処理する通信インターフェースを提供するためのクライアント有線ネットワークインターフェース１３８（クライアント有線ネットワークＩ／Ｆ１３８）をも含む。クライアント有線ネットワークＩ／Ｆ１３８は、ファームウェアもしくはソフトウェアと組み合わされるかあるいはこれらとは別のハードウェアであり得るメディアアクセスコントローラ（ＭＡＣ）および物理層（ＰＨＹ）から構成されるなど、任意の適切な仕方で構成され得る。
【００２９】
クライアントデバイス１０４は、１つまたは複数のクライアントプロセッサ１４０と、クライアントコンピュータ可読ストレージ媒体１４２（クライアントＣＲＭ１４２）と、一実装形態ではクライアントＣＲＭ１４２上で具体化されるマルチメディアプレゼンテーションモジュール１４４（プレゼンテーションモジュール１４４）とをも含む。クライアントＣＲＭ１４２は、アプリケーションのデータおよび／またはクライアントデバイス１０４のオペレーティングシステムを記憶するのに役立つＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＥＥＰＲＯＭ、ＲＯＭまたはフラッシュメモリなどの任意の適切なメモリまたはストレージデバイスを含み得る。
【００３０】
プレゼンテーションモジュール１４４は、１つまたは１より多いクライアントデバイス１０４によるマルチメディアコンテンツの同期プレゼンテーションを可能にし得る。例えば、プレゼンテーションモジュール１４４は、マルチメディアデータ１２６をホストデバイス１０２から受け取ってクライアントデバイス１０４における該マルチメディアデータ１２６のレンダリングを同期化することができる。プレゼンテーションモジュール１４４は、更にマルチメディアデータ１２６からタイミング情報を抽出し、それはクライアントデバイス１０４におけるマルチメディアデータ１２６のレンダリングまたはプレゼンテーションを同期化するのに役立ち得る。
【００３１】
クライアントデバイス１０４は、視覚的におよび／または聴覚的に認識できるマルチメディアコンテンツを提示するディスプレイ１４６および／または１つもしくは複数のスピーカ１４８をも含み得る。クライアントデバイス１０４のレンダリングまたはデコードされたマルチメディアデータ１２６は、ディスプレイ１４６またはスピーカ１４８を介してマルチメディアコンテンツとして提示され得る。例えば、無線スピーカ１３４は、マルチメディアデータ１２６のストリーム（例えば、オーディオデータ）を、１つまたは１より多い内部スピーカ１４８を介して提示される音楽としてデコードし得る。
【００３２】
図２は、ホストデバイス１０２の有線ネットワークインターフェース１２０を含むデバイス環境２００の例を示し、これは時間アウェアなネットワーク２０２を介してマルチメディアデータ１２６（示されていない）をＩＰＴＶ１３０および無線スピーカ１３４にストリーミングしている。この特定の例では、時間アウェアなネットワーク２０２との通信は通信リンク１０６−１、１０６−２、および１０６−３を介して実行され、これらは上記のように有線または無線リンクであり得る。時間アウェアなネットワーク２０２は、ＩＥＥＥ１７２２、ＩＥＥＥ８０２．３ｂｈ、ＩＥＥＥ８０２．１ＡＳ、ＩＥＥＥ８０２．１Ｑａｔ、ＩＥＥＥ８０２．１Ｑａｖ、などの任意の適切な通信プロトコルを実装することができる。時間アウェアなネットワーク２０２は、１つまたは１より多いクライアントデバイス１０４が同期機能を実行することを可能にする。例えば、時間アウェアなネットワーク２０２は、ＩＰＴＶ１３０および無線スピーカ１３４によるマルチメディアデータの同期プレゼンテーションを可能にし得る。
【００３３】
本例のコンテキストにおいては、有線ネットワークインターフェース１２０は通信リンク１０６−１を介して時間アウェアなネットワーク２０２の向こうへマルチメディアデータ１２６をストリーミングする。代わりにあるいは更に、マルチメディアデータ１２６は、無線トランスミッタ１１６および無線レシーバ１１８により提供されるものなどの、無線通信インターフェースによりストリーミングされ得る。有線ネットワークインターフェース１２０は、時間センシティブなデータキュー２０４（ＴＳデータキュー２０４）、非時間センシティブなデータキュー２０６（非ＴＳデータキュー２０６）、データアービタ１２８、および伝送バッファ２０８を含み得る。
【００３４】
ＴＳデータキュー２０４はパケット化マルチメディアデータ１２６などの時間センシティブなデータパケットを受け取りおよび／または記憶するためのバッファを含み得る。非ＴＳデータキュー２０６は、インターネット閲覧、電子メール、データアプリケーション、バックグラウンドプログラム、通信リンクステータス／制御情報などと関連するデータパケットなどの、非時間センシティブなデータパケットを受け取りおよび／または記憶するためのバッファを含み得る。ＴＳデータキュー２０４および非ＴＳデータキュー２０６のいずれかまたは両方からのデータパケットは、通信リンク１０６を介して伝送されるべく伝送バッファ２０８に送られ得る。伝送バッファ２０８は、通信リンク１０６−１を介して時間アウェアなネットワーク２０２にデータパケットをストリーミングするように構成された先入れ先出し（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ（ＦＩＦＯ））バッファであり得る。
【００３５】
データアービタ１２８は、ＴＳデータキュー２０４および非ＴＳデータキュー２０６から伝送バッファ２０８へのデータパケットのフローを制御しあるいは影響を及ぼすことができる。データアービタ１２８は、ＴＳデータパケットのサイズ、それぞれのＴＳデータパケットを伝送するために消費される時間の量、および／またはＴＳデータパケットが時間アウェアなネットワーク２０２を介して伝送されるスケジュールなどの、ＴＳデータキュー２０４のデータパケットに関連する種々のパラメータを認識することもできる。代わりにあるいは更に、データアービタ１２８は、非ＴＳデータキュー２０６内のデータパケットのサイズおよび非ＴＳデータキュー２０６のデータパケットを伝送するために消費される時間の量を認識することができる。少なくとも或る場合には、データアービタ１２８は、非ＴＳデータキュー２０６からのデータパケットの伝送との競合を避けるためにＴＳデータキュー２０４からのデータパケットの予定伝送を早めることができる。
【００３６】
或る場合には、データアービタ１２８は、所定のまたは設定可能な時間量に基づいてＴＳデータキュー２０４からのデータパケットの予定伝送を早める（例えば、プリローンチする）ように構成される。そのような場合には、データアービタ１２８のプログラマブルなレジスタは、ＡＶＢデータパケットの予定伝送を約１３マイクロ秒早めるようにセットされ得る。これは、最大サイズの非ＡＶＢデータパケットがＡＶＢデータパケットの伝送を遅延させたりブロックしたりすることなく伝送されることを可能にするために有効であり得る。データアービタ１２８を実装し使用するさらなる方法および代わりの方法はさまざまであり、後述される。
【００３７】
時間センシティブなデータ伝送のアービトレーションのための技術
次のディスカッションは、時間センシティブなデータ伝送のアービトレーションのための技術を記述する。これらの技術は、ホストデバイス１０２上で具体化される図１のデータアービタ１２８などの、先に記載された環境またはエンティティを用いて実行され得る。これらの技術は、図３、５、および７に示されている方法を含み、その各々は１つ以上のエンティティにより実行される動作のセットとして示されている。これらの方法は、動作を実行するために示されている順序に必ずしも限定されない。更に、これらの方法は、同じエンティティにより、別々のエンティティにより、あるいはそれらの何らかの組み合わせにより実行されるのかを問わず、全体としてあるいは部分的に、互いに関連して用いられ得る。次のディスカッションのいろいろな部分で、図１の動作環境１００および図２のエンティティが例として言及される。そのような言及は、動作環境１００に限定されるのではなくて種々の例のうちの１つを説明するものと解されるべきである。
【００３８】
図３は、図１のデータアービタ１２８により実行され得る動作を含む、予定データ伝送のスタートを早める方法３００を描いている。
【００３９】
３０２で、第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに十分であるか否かが判断される。該第１予定データ伝送または該第２予定データ伝送は、時間アウェアなネットワークを介して伝送されるマルチメディアデータなどの時間センシティブなデータの伝送であり得る。該非予定データ伝送は、インターネットブラウザデータまたはネットワーク対応アプリケーションと関連するデータなどの、非時間センシティブなデータのためのものであり得る。該予定データ伝送は、規則的なあるいは周期的な間隔を置いてスタートするように予定され得る。
【００４０】
一例として、図２のコンテキストにおいて有線ネットワークインターフェース１２０を考察すると、これはマルチメディアデータ１２６をＩＰＴＶ１３０および無線スピーカ１３４にストリーミングする有線ネットワークインターフェース１２０を示している。ここで、ＴＳデータキュー２０４はマルチメディアデータ１２６のパケットの形の時間センシティブなデータを含み、非ＴＳデータキュー２０６はインターネット閲覧データのパケットを含むと仮定する。更に、ＴＳデータキュー２０４の時間センシティブなデータのパケットは特定の時間に伝送されるように予定されるということも仮定する。
【００４１】
本例のコンテキストにおいて、図４のタイムライン４００を考察する。タイムライン４００はＴＳデータパケット４０２、４０４、４０６、および４０８を含み、これらはそれぞれのローンチ時間ＴＬａｕｎｃｈ０４１０、ＴＬａｕｎｃｈ１４１２、ＴＬａｕｎｃｈ２４１４、およびＴＬａｕｎｃｈ３４１６に予定される。タイムライン４００は非ＴＳデータパケット４１８（例えば、インターネット閲覧データのパケット）も含み、それの伝送は予定されないけれども、早くも現在時間ＴＣｕｒｒｅｎｔ４２０に起こり得るであろう。しかし、ＴＣｕｒｒｅｎｔ４２０とＴＬａｕｎｃｈ０４１０との間のタイミングギャップ０４２２（Ｇａｐ０４２２）は、ＴＳデータパケット４０２の伝送を遅延させてタイミング違反４２４を生じさせるという結果をもたらすことなく非ＴＳデータパケット４１８を伝送するには不十分であるということに留意するべきである。
【００４２】
ここで有線ネットワークインターフェース１２０のデータアービタ１２８は、ＴＳデータパケット４０２とＴＳデータパケット４０４との間のタイミングギャップ１４２６（Ｇａｐ１４２６）が非ＴＳデータパケット４１８を伝送するのに十分であるか否か判断する。或る場合には、データアービタ１２８は、他の１つのＴＳデータパケットの伝送を遅延させるなどのもう１つのタイミング違反を引き起こすことなく非ＴＳデータパケット４１８がＧａｐ１４２６の間に伝送され得るか否か判断する。本例のコンテキストにおいては、データアービタ１２８は、Ｇａｐ１４２６は非ＴＳデータパケット４１８を伝送するのに不十分であると判断する。具体的には、非ＴＳデータパケット４１８の伝送により消費される時間デュレーションはＧａｐ１４２６より大きい。
【００４３】
動作３０２から、方法３００は動作３０４または動作３０６に進むことができる。方法３００は、第１予定伝送の終わりと第２予定伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに十分であるならば、動作３０４に進む。方法３００は、第１予定伝送の終わりと第２予定伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに不十分であるならば、動作３０６に進む。
【００４４】
３０４で、非予定データ伝送は、第１予定伝送の終わりと第２予定伝送の始まりとの間の時間デュレーションの間に実行される。或る場合には、該非予定データパケットの伝送は、該時間デュレーションに遭遇するまで遅延させられる。これは、該非予定データパケットの伝送が他の予定データ伝送を遅延させることを防止するために有効であり得る。
【００４５】
３０６で、第１予定データ伝送のスタートは、第１予定データ伝送の終わりと第２予定データ伝送の始まりとの間の時間デュレーションを実際上大きくするように、早められる。或る場合には、第１予定データ伝送のスタートは現在の時間まで早められ得る。他の場合には、第１予定データ伝送のスタートは、非予定データ伝送の長さに基づいて早められ得る。例えば、該データ伝送のスタートは、第２予定データ伝送のスタートとの潜在的タイミング違反が回避されるように該時間デュレーションを十分に大きくするように早められ得る。第１予定データパケットのスタートは、非時間センシティブなデータパケットを伝送することにより消費される時間の量だけ早められ得る。例えば、非センシティブなデータパケットのサイズは約１５２２バイトであり得、これは１２５ＭＨｚで伝送するには約１３マイクロ秒を消費する。ギガビット−イーサネット（登録商標）（Ｇｉｇａｂｉｔ−Ｅｔｈｅｒｎｅｔ（登録商標）（ＧＥ））の場合、干渉する非ＡＶＢデータパケットの最大サイズは、伝送に１２．３３６マイクロ秒を消費する１５４２バイトであり得る（１５４２バイト＊８ビット＊１ｎｓ＝１２．３３６マイクロ秒）。従って、非ＡＶＢデータパケットの伝送を収容するために予定データ伝送は約１３マイクロ秒早められ得る。
【００４６】
進行中の例を続けると、データアービタ１２８は、図４のタイムライン４２８により示されているように、ＴＳデータパケット４０２の伝送のスタートをＴＣｕｒｒｅｎｔ４２０まで早める。そのようにすることによって、データアービタ１２８はＧａｐ１４２６をＧａｐ１Δ４３０まで大きくすることができ、これは非ＴＳデータパケット４１８を伝送するために十分に長い。
【００４７】
３０８で、該非予定データは、早められた第１予定伝送の終わりと第２予定伝送の始まりとの間の大きくされた時間デュレーションの間に伝送される。該非予定データパケットの伝送は、伝送バッファまたはＦＩＦＯバッファなどの、ネットワークインターフェースのコンポーネントを介しての伝送を引き起こしあるいは開始することを含み得る。該大きくされた時間デュレーションの間の該非予定データパケットの伝送は、該大きくされた時間デュレーションに遭遇するまで該非予定データパケットの伝送を遅延させることを含み得る。
【００４８】
本例のコンテキストにおいては、図４のタイムライン４２８により示されているように、データアービタ１２８はＧａｐ１Δ４３０の間に非ＴＳデータパケット４１８の伝送を開始する。ＴＳデータパケット４０２の伝送のスタートを早めればＴＳデータパケット４０２−４０８のどれをも遅延させずに非ＴＳデータパケット４１８を伝送できるということに留意するべきである。本例を締めくくると、ＴＳデータパケット４０２は時間アウェアなネットワーク２０２を介してＩＰＴＶ１３０および無線スピーカ１３４に伝送される。その後、それぞれのデバイスのプレゼンテーションモジュール１４４は、ＴＳデータパケット４０２（および、マルチメディアデータ１２６のストリームの次のＴＳデータパケット）をデコードして、同期マルチメディアコンテンツを提示する。
【００４９】
図５は、図１のデータアービタ１２８により実行され得る動作を含む、複数の予定データ伝送のスタートを早める方法５００を描いている。
【００５０】
５０２で、予定データ伝送に先行する時間デュレーションと該予定データ伝送に続く時間デュレーションとが、もし組み合わされたとすれば、非予定データ伝送を実行するのに十分であるか否かが判断される。該予定データ伝送に先行する時間デュレーションは、現在の時間から予定データ伝送のスタートまでの時間デュレーションであり得る。該予定データ伝送に続く時間デュレーションは、該予定伝送の終わりから次の予定データ伝送のスタートまでの時間デュレーションであり得る。
【００５１】
該予定データ伝送または該次の予定データ伝送は、時間アウェアなネットワークを介して伝送されるマルチメディアデータなどの、時間センシティブなデータの伝送であり得る。該非予定データ伝送は、インターネットブラウザデータまたはネットワーク対応アプリケーションと関連するデータなどの、非時間センシティブなデータのためのものであり得る。該予定データ伝送は、規則的なあるいは周期的な間隔を置いてスタートするように予定され得る。
【００５２】
他の１つの例として、もう一度図２のコンテキストで有線ネットワークインターフェース１２０を考察すると、ここで有線ネットワークインターフェース１２０はマルチメディアデータ１２６をＩＰＴＶ１３０および無線スピーカ１３４にストリーミングする。ここでＴＳデータキュー２０４はマルチメディアデータ１２６のパケットの形の時間センシティブなデータを含み、非ＴＳデータキュー２０６はインターネット閲覧データのパケットを含むと仮定する。更に、ＴＳデータキュー２０４の時間センシティブなデータのパケットは特定の時間に伝送されるように予定されるということも仮定する。
【００５３】
本例のコンテキストにおいては、それぞれのローンチ時間ＴＬａｕｎｃｈ０６１０、ＴＬａｕｎｃｈ１６１２、ＴＬａｕｎｃｈ２６１４、およびＴＬａｕｎｃｈ３６１６に予定されているＴＳデータパケット６０２、６０４、６０６、および６０８を含む図６のタイムライン６００を考察する。タイムライン６００は非ＴＳデータパケット６１８（例えば、電子メールデータのパケット）をも含み、その伝送は予定されないけれども早くも現在時間ＴＣｕｒｒｅｎｔ６２０に起こり得るであろう。しかし、ＴＳデータパケット６０２間の先行するタイミングギャップ１６２４（Ｇａｐ１６２４）、およびタイミングギャップ０６２２（Ｇａｐ０６２２）は、別々でも組み合わされたとしても、ＴＳデータパケット６０２の伝送を遅延させたりブロックしたりすることなく非ＴＳデータパケット６１８を伝送するのに十分であるということに留意するべきである。
【００５４】
ここで有線ネットワークインターフェース１２０のデータアービタ１２８は、Ｇａｐ０６２２およびＧａｐ１６２４が非ＴＳデータパケット６１８を伝送するのに十分であるか否か判断する。或る場合には、データアービタ１２８は、ＴＳデータパケット６０２の伝送を早めることにより組み合わされたならばＧａｐ０６２２およびＧａｐ１６２４の間に非ＴＳデータパケット６１８が伝送され得るか否か判断する。本例のコンテキストにおいては、データアービタ１２８は、Ｇａｐ０６２２およびＧａｐ１６２４が非ＴＳデータパケット６１８を伝送するには不十分であると判断し、このことは図６のタイムライン６２６により示される。ここで、非ＴＳデータパケット６１８の伝送デュレーションはＧａｐ１Δ６２８を超え、タイミング違反６３０を生じさせる。
【００５５】
動作５０２から、方法５００は動作５０４または動作５０６に進むことができる。方法５００は、予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションが該非予定データ伝送を実行するのに十分であるならば、動作５０４に進むことができる。方法５００は、該予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションが該非予定データ伝送を実行するのに不十分であるならば、動作５０６に進むことができる。
【００５６】
５０４で、予定データ伝送のスタートは、該予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションを実際上組み合わせるように、早められる。これは、該非予定データ伝送を実行するのに十分に該予定データ伝送に続く時間デュレーションを大きくするために有効である。或る場合には、該予定データ伝送のスタート時間量は、通信プロトコルのタイミング制約により上限を定められあるいは限定される。例えば、ＡＶＢデータパケットの伝送のスタート時間量は、ＩＥＥＥ１７２２により規定されている最大タイミング不確定性（例えば、１２５マイクロ秒）を超えることができない。
【００５７】
５０６で、該予定データ伝送および次の予定データ伝送のスタートは、該次の予定データ伝送に続く時間デュレーションを実際上大きくするように早められる。或る場合には、該次の予定データ伝送のスタートは、該早められた予定データ伝送の終わりの直ぐ後に続くように早められる。その早められた次の予定データ伝送に続く大きくされた時間デュレーション（例えば、Ｇａｐ２Δ６３６）は、早められた予定データ伝送に続く時間デュレーション（Ｇａｐ１Δ６２８）より大きくなり得る。
【００５８】
進行中の例を続けると、データアービタ１２８はＴＳデータパケット６０２およびＴＳデータパケット６０４の伝送のスタートを早める。ここで、図６のタイムライン６３４により示されるように、ＴＳデータパケット６０２のスタートはＴＣｕｒｒｅｎｔ４２０まで早められる。ＴＳデータパケット６０４のスタートは、早められたＴＳデータパケット６０２の終わりに直ぐ続くように早められる。そのようにすることによって、データアービタ１２８はＧａｐ２６３２をＧａｐ２Δ６３６まで大きくすることができ、これは非ＴＳデータパケット６１８を伝送するのに十分に長い。
【００５９】
５０８で、該非予定データは、早められた第１予定伝送の終わりと第２予定伝送の始まりとの間の大きくされた時間デュレーションの間に伝送される。該非予定データパケットの伝送は、伝送バッファまたはＦＩＦＯバッファなどのネットワークインターフェースのコンポーネントを介しての伝送を引き起こすことあるいは開始することを含み得る。大きくされた時間デュレーションの間の該非予定データパケットの伝送は、その大きくされた時間デュレーションに遭遇するまで該非予定データパケットの伝送を遅延させることを含み得る。
【００６０】
本例のコンテキストにおいては、図６のタイムライン６３４により示されているように、データアービタ１２８はＧａｐ２Δ６３６の間にＴＳデータパケット６１８の伝送を開始する。ＴＳデータパケット６０２およびＴＳデータパケット６０４の伝送のスタートを早めることにより、ＴＳデータパケット６０２−６０８のどれをも遅延させることなく非ＴＳデータパケット６１８を伝送することが可能になることに留意するべきである。本例を締めくくると、ＴＳデータパケット６０２およびＴＳデータパケット６０４は時間アウェアなネットワーク２０２を介してＩＰＴＶ１３０および無線スピーカ１３４に伝送される。その後、それぞれのデバイスのプレゼンテーションモジュール１４４はＴＳデータパケット６０２およびＴＳデータパケット６０４（ならびにマルチメディアデータ１２６のストリームの次のＴＳデータパケット）をデコードして同期マルチメディアコンテンツを提示する。
【００６１】
図７は、図１のデータアービタ１２８により実行され得る１つ以上の動作を含む、データをプリローンチする方法７００を描いている。
【００６２】
７０２で、現在時間と次のオーディオ−ビデオブリッジングデータローンチ時間（ＡＶＢローンチ時間）との間の時間ギャップが非ＡＶＢデータパケットを伝送するのに十分であるか否か判断される。該ＡＶＢローンチ時間は、ＩＥＥＥ１７２２準拠ネットワークなどの、時間アウェアなネットワークを介してＡＶＢデータを伝送するために準拠して予定され得る。ＩＥＥＥ１７２２のコンテキストにおいては、ＡＶＢローンチ時間は、ＡＶＢプレゼンテーション時間マイナスＡＶＢ最大伝送時間（例えば、ネットワーク待ち時間）として計算され得る。
【００６３】
動作７０２から、方法７００は動作７０４または動作７０６に進むことができる。方法７００は、現在時間と次のＡＶＢローンチ時間との間の時間ギャップが非ＡＶＢデータパケットを伝送するのに十分であるならば、動作７０４に進む。方法７００は、現在時間と次のＡＶＢローンチ時間との間の時間ギャップが非ＡＶＢデータパケットを伝送するのに不十分であるならば、動作７０６に進む。７０４で、該非ＡＶＢデータパケットは、現在時間と次のＡＶＢローンチ時間との間の時間ギャップの間に伝送される。
【００６４】
７０６で、次の２つのＡＶＢデータパケット伝送の間の次の時間ギャップが該非ＡＶＢデータパケットを伝送するのに十分であるか否か判断される。該次の２つのＡＶＢデータパケット伝送は、次の２つのＡＶＢローンチ時間にスタートするように予定され得る。該時間ギャップは、該２つのＡＶＢデータパケット伝送のうちの第１のものの終わりと該ＡＶＢデータパケット伝送のうちの第２のもののスタートとの間の時間デュレーションであり得る。従って、該次の時間ギャップの長さあるいはデュレーションを判断するときに、それぞれのＡＶＢデータパケットの長さが考慮され得る。
【００６５】
動作７０６から、方法７００は動作７０８または動作７１０に進むことができる。方法７００は、該次の２つのＡＶＢデータパケット伝送の間の該次の時間ギャップが該非ＡＶＢデータパケットを伝送するのに十分であるならば、動作７０８に進む。方法７００は、該次の２つのＡＶＢデータパケット伝送の間の該次の時間ギャップが該非ＡＶＢデータパケットを伝送するのに不十分であるならば、動作７１０に進む。７０８で、該非ＡＶＢデータパケットは、該次の２つのＡＶＢデータパケット伝送の間の該次の時間ギャップの間に伝送される。或る場合には、該非ＡＶＢデータパケットの伝送は、該次の時間ギャップに遭遇するまで遅延させられる。該次の時間ギャップの間に該非ＡＶＢデータパケットを伝送することは、該非ＡＶＢデータパケットが該ＡＶＢデータパケットのいずれかの予定伝送を遅延させたり、それに干渉したりすることを防止するのに有効であり得る。
【００６６】
７１０で、次の２つのＡＶＢデータパケット伝送の間の次の時間ギャップを広げるためにＡＶＢデータパケットがプリローンチされる。該ＡＶＢデータパケットのプリローンチは、該次の予定ＡＶＢデータパケットを現在時間または次の利用可能な伝送時間にプリローンチすることができる。該ＡＶＢデータパケットは、該非ＡＶＢデータパケットを伝送するのに役立つ時間デュレーションによりプリローンチされ得るが、それは約１３マイクロ秒以下であり得る。
【００６７】
７１２で、２つのＡＶＢデータパケット伝送の間の広げられた時間ギャップが該非ＡＶＢデータパケットを伝送するのに十分であるか否か判断される。該２つのＡＶＢデータパケット伝送の間の該広げられた時間ギャップは、第１のプリローンチされるＡＶＢデータパケット伝送の終わりと第２のＡＶＢデータパケット伝送のスタートとの間の時間デュレーションであり得る。該第２のＡＶＢデータパケット伝送のスタートは、該第１のＡＶＢデータパケット伝送についてのＡＶＢローンチ時間に続くＡＶＢローンチ時間に生じるように予定され得る。
【００６８】
動作７１２から、方法７００は動作７１４または動作７１６に進むことができる。方法７００は、次の２つのＡＶＢデータパケット伝送の間の広げられた時間ギャップが該非ＡＶＢデータパケットを伝送するのに十分であるならば、動作７１４に進む。方法７００は、次の２つのＡＶＢデータパケット伝送の間の広げられた時間ギャップが該非ＡＶＢデータパケットを伝送するのに不十分であるならば、動作７１６に進む。７１４で、該非ＡＶＢデータパケットは、該次の２つのＡＶＢデータパケット伝送の間の広げられた時間ギャップの間に伝送される。これは、該非ＡＶＢデータパケットが該ＡＶＢデータパケットのいずれかの予定伝送を遅延させたり、それに干渉したりすることを防止するために有効であり得る。
【００６９】
７１６で、２つのＡＶＢデータパケット伝送の間の他の１つの次の時間ギャップを大きくするために他の１つのＡＶＢデータパケットがプリローンチされる。これは、第２のＡＶＢデータパケット伝送の終わりと第３のＡＶＢデータパケット伝送のスタートとの間の時間ギャップを広げるために有効な、次の２つのＡＶＢデータパケット伝送のうちの第２のものをプリローンチすることを含み得る。或る場合には、該第２のＡＶＢデータパケットは、第１のＡＶＢデータパケットがプリローンチされた後直ぐにプリローンチされ得る。これは、次の時間ギャップ（例えば、第２および第３のＡＶＢデータパケット伝送の間の時間ギャップ）を、先行する広げられた時間ギャップ（例えば、第１および第２のＡＶＢデータパケット伝送の間の広げられた時間ギャップ）より大きくするために有効であり得る。動作７１６から、方法７００は、第２のＡＶＢデータパケット伝送と第３のＡＶＢデータパケット伝送との間の広げられた次の時間ギャップが該非ＡＶＢデータパケットを伝送するのに十分であるか否か判断するために動作７１２に戻る。
【００７０】
方法７００は、該非ＡＶＢデータパケットがＡＶＢデータパケット伝送間のギャップの間に伝送されるまで動作７１２、７１４、および／または７１６を反復実行することができる。他の１つのＡＶＢデータパケットをプリローンチすることの各々の反復は、該プリローンチされるＡＶＢデータパケットの終わりと次のＡＶＢデータパケットのスタートとの間の次の時間ギャップが先行する時間ギャップより広くなるという結果をもたらし得る。或る場合には、方法７００の反復は、ＩＥＥＥ１７２２の最大タイミング不確定性スレショルド（例えば、１２５マイクロ秒）などの、ＡＶＢデータパケットがプリローンチされ得る最大時間量により限定され得る。従って、該非ＡＶＢデータパケットの伝送は、どのＡＶＢデータパケットの予定伝送をも遅延させたり、それに干渉したりすることなく、成し遂げられ得る。
【００７１】
システムオンチップ
図８はシステムオンチップ（ＳｏＣ）８００を示し、これは上記のいろいろな側面を実施することができる。ＳｏＣは、ビデオゲームコンソール、ＩＰ対応テレビジョン、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、リモートコントロール、タブレットコンピュータ、サーバ、ネットワーク対応プリンタ、セットトップボックス、プリンタ、スキャナ、カメラ、ピクチャーフレーム、および／または、時間センシティブなデータを伝達し得る任意の他のタイプのデバイスなど、任意の適切なデバイスにおいて実装され得る。
【００７２】
ＳｏＣ８００は、上に列挙されたデバイスのうちのいずれかなどのデバイスに通信結合を提供するために必要とされる電子回路、マイクロプロセッサ、メモリ、入力−出力（Ｉ／Ｏ）論理制御、通信インターフェースおよびコンポーネント、他のハードウェア、ファームウェア、および／またはソフトウェアと統合され得る。ＳｏＣ８００は、該ＳｏＣの種々のコンポーネントを該コンポーネント間のデータ通信のために結合させる統合データバス（示されていない）をも含むことができる。ＳｏＣ８００を含む有線または無線通信デバイスは、いろいろなコンポーネントの多くの組み合わせを伴って実装されることもできる。或る場合には、これらのいろいろなコンポーネントは、有線または無線接続を介して本書に記載の思想を実施するように構成され得る。
【００７３】
この例では、ＳｏＣ８００は、入力−出力（Ｉ／Ｏ）論理制御８０２（例えば、電子回路を含む）およびマイクロプロセッサ８０４（例えば、マイクロコントローラまたはデジタル信号プロセッサのいずれか）などの種々のコンポーネントを含む。ＳｏＣ８００は、メモリ８０６をも含み、これは任意のタイプのＲＡＭ、短待ち時間不揮発性メモリ（例えば、フラッシュメモリ）、ＲＯＭ、および／または他の適切な電子データストレージであり得る。ＳｏＣ８００は、メモリ８０６により維持されてマイクロプロセッサ８０４により実行されるコンピュータ実行可能な命令であり得るオペレーティングシステム８０８などの種々のファームウェアおよび／またはソフトウェアをも含むことができる。ＳｏＣ８００は、予定データ伝送のスタートを早める時間量を指定するためのものなどの、種々のプログラマブルな制御レジスタ（示されていない）をも含み得る。ＳｏＣ８００は、他の種々の通信インターフェースおよびコンポーネント、通信コンポーネント、他のハードウェア、ファームウェア、および／またはソフトウェアをも含むことができる。
【００７４】
ＳｏＣ８００は、ＴＳデータキュー２０４、非ＴＳデータキュー２０６、データアービタ１２８、および伝送バッファ２０８（上記のように異種のあるいは組み合わされたコンポーネントとして具体化される）を含む。これらの種々のコンポーネント、機能、および／またはエンティティ、およびそれらの対応する機能性の例は、図１および図２に示されている環境１００のそれぞれのコンポーネントと関連して記述される。
【００７５】
データアービタ１２８は、独立にあるいは他のエンティティと組み合わされて、本書に記載の種々の実施態様および／またはフィーチャを実施するためにメモリ８０６により維持されてマイクロプロセッサ８０４により実行されるコンピュータ実行可能な命令として実装されることができる。データアービタ１２８は、Ｉ／Ｏ論理コントローラ８０２またはＳｏＣ８００内の任意のパケットベースのインターフェースのうちの一方または両方と統合されるなど、ＳｏＣの他のエンティティと一体としても設けられ得る。代わりにあるいは更に、データアービタ１２８および他のコンポーネントは、Ｉ／Ｏ論理制御８０２および／またはＳｏＣ８００の他の信号処理および制御回路と関連して実装されるハードウェア、ファームウェア、固定論理回路、またはそれらの任意の組み合わせとして実装され得る。
【００７６】
主題は、構造上のフィーチャおよび／または方法論的動作に特有の用語で記述されているけれども、添付されている請求項において定義される主題は、該フィーチャまたは動作が示されおよび／または実行される順序を含めて、上記の特定のフィーチャまたは動作に必ずしも限定されない。
【図１】
0006045085.tif 000002
【図２】
0006045085.tif 000003
【図３】
0006045085.tif 000004
【図４】
0006045085.tif 000005
【図５】
0006045085.tif 000006
【図６】
0006045085.tif 000007
【図７】
0006045085.tif 000008
【図８】
0006045085.tif 000009