(58)【調査した分野】(Int.Cl.,DB名)
前記第1予定データ伝送は第1の時間センシティブなデータを含み、前記第2予定データ伝送は第2の時間センシティブなデータを含み、前記非予定データ伝送は非時間センシティブなデータを含む、請求項1から請求項5のいずれか1つに記載の方法。
前記第1の時間センシティブなデータおよび前記第2の時間センシティブなデータはIEEE1722規格に従って伝送されるべくパケット化される、請求項6に記載の方法。
前記第1予定データ伝送の前記スタートを早めることは、前記第1予定データ伝送の前記スタートを約13マイクロ秒、もしくは約13マイクロ秒より早める、請求項1から請求項7のいずれか1つに記載の方法。
前記第1予定データ伝送の前記始まりと前記第2予定データ伝送の前記始まりとは時間アウェアなマルチメディアネットワークの伝送時間に生じるように予定される、請求項9から11のいずれか1つに記載のプログラム。
前記システムはメディアホストデバイスのイーサネット(登録商標)コントローラとして具体化されて、時間センシティブなデータの前記パケットを1つのメディアクライアントデバイスまたは1より多いメディアクライアントデバイスへ前記ネットワークインターフェースを介して伝送する、請求項15に記載のシステム。
時間センシティブなデータの前記第1パケットの前記予定伝送の前記スタートを早める時間量をセットするように構成可能な前記データアービタと関連するプログラマブルな制御レジスタを更に含む、請求項15または請求項16に記載のシステム。
前記ネットワークインターフェースはIEEE1722規格に準拠して動作するように構成された有線ネットワークインターフェースである、請求項15から請求項17のいずれか1つに記載のシステム。
時間センシティブなデータの前記パケットはオーディオ−ビデオブリッジング(AVB)データのパケットであり、非時間センシティブなデータの前記パケットは非AVBデータのパケットである、請求項15から請求項18のいずれか1つに記載のシステム。
【発明を実施するための形態】
【0019】
予定された間隔を置いて時間センシティブなデータパケットを伝送するための在来の技術は、大きな非予定データ伝送の伝送をブロックするかあるいは非予定データ伝送が時間センシティブなデータパケットの予定伝送を妨げもしくは遅延させることを許すことができる。しかし、予定伝送を遅延させることは、時間アウェアなネットワークのタイミング制約に違反し、あるいは時間センシティブなパケットと関連する時間ベースの機能性を混乱させるかもしれない。この開示は、時間センシティブなデータ伝送のアービトレーションのための装置および技術を記載する。第1予定データ伝送のスタートは、第1予定データ伝送の終わりと第2予定データ伝送の始まりとの間の時間デュレーションを実際上大きくするように、早められ得る。その後、非予定データ伝送は、該早められた第1予定伝送の終わりと第2予定伝送の始まりとの間の該大きくされた時間デュレーションの間に実行され得る。そのようにすることによって、両方のタイプの伝送のための通信帯域幅は、予定データ伝送を遅延させることなく、保存され得る。
【0020】
次のディスカッションは、動作環境、該動作環境において使用され得る技術、および該動作環境のコンポーネントが具体化され得るシステムオンチップ(SoC)を記載する。以下のディスカッションにおいて、単なる例として該動作環境が言及される。
【0021】
動作環境
図1は、マルチメディアホストデバイス102(ホストデバイス102)およびマルチメディアクライアントデバイス104(クライアントデバイス104)を有する例としての動作環境100を示し、それらの各々はネットワーク化されていて、通信リンク106を介してデータ、パケット、および/またはフレームを伝達することができる。通信リンク106は有線通信リンク、無線通信リンク、あるいはそれらの任意の適切な組み合わせであり得る。例えば、通信リンク106は、全体としてあるいは部分的にローカルエリアネットワーク(local−area−network(LAN))、光ファイバネットワーク、無線ローカルエリアネットワーク(wireless local−area−network(WLAN))、または短範囲無線ネットワークとして実装され得る。通信リンク106は、後述されるように、時間アウェアなネットワークを介しても実装され得る。ホストデバイス102はスマートフォン108、タブレットコンピュータ110、ラップトップコンピュータ112、およびセットトップボックスデバイス114(セットトップボックス114)を含む。図示されてはいないけれども、デスクトップコンピュータ、サーバ、メディアサーバ、ネットワークアタッチトストレージデバイス(network−attached storage device(NASデバイス))、モバイルインターネットデバイス(mobile−internet device(MID))、ゲームコンソール、ルータ、モバイルホットスポット、アクセスポイント、などの、他の構成のホストデバイス102も考えられる。
【0022】
各ホストデバイス102は、例えば第3世代パートナーシッププロジェクトロングタームエボリューション(3rd Generation Partnership Project Long−Term Evolution(3GPPLTE))、Bluetooth(登録商標)、またはIEEE802.11−2007、IEEE802.11n、などの種々の無線通信プロトコルを処理する通信インターフェースを提供するために無線トランスミッタ116および無線レシーバ118を含み得る。トランスミッタ116およびレシーバ118は、別々(示されている)でも組み合わされ(示されていない)ても良くて、ファームウェアもしくはソフトウェアと組み合わされるかあるいはそれらとは別のハードウェアであり得る。ホストデバイス102は、IEEE1722、IEEE802.3bh、IEEE802.1AS、IEEE802.1Qat、IEEE802.1Qav、などの種々の有線通信プロトコルを処理する通信インターフェースを提供するための有線ネットワークインターフェース120も含む。有線ネットワークインターフェース120は、メディアアクセスコントローラ(medium access controller(MAC))と、ファームウェアもしくはソフトウェアと組み合わされるかあるいはそれらとは別のハードウェアであり得る物理層(physical layer(PHY))とから構成されるなど、任意の適切な仕方で構成され得る。
【0023】
これらの種々の通信プロトコルは、後述される時間アウェアなネットワークを定義し、あるいはそれに従って動作することができる。代わりにあるいは更に、有線または無線通信プロトコルの側面は、本書において提示される思想の趣旨から逸脱することなく他の任意の通信プロトコルのフィーチャと組み合わされ、あるいは該フィーチャを改変するために使用されることができる。例えば、有線通信プロトコルのフィーチャは、無線ネットワークを介して本書に記載の1つ以上の側面を実装するために無線通信インターフェースを介して実装され得る。
【0024】
ホストデバイス102は、1つまたは複数のプロセッサ122およびコンピュータ可読ストレージ媒体124(computer−readable storage media(CRM124))をも含む。プロセッサ122は、シリコン、ポリシリコン、高K誘電体、銅、などの種々の材料から構成される単一コアまたは複数コアプロセッサであり得る。CRM124は、アプリケーションのデータおよび/またはホストデバイス102のオペレーティングシステムを記憶するのに役立つランダムアクセスメモリ(random−access memory(RAM))、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、不揮発性RAM(NVRAM)、読み出し専用メモリ(read−only memory(ROM))、またはフラッシュメモリなどの任意の適切なメモリまたはストレージデバイスを含み得る。
【0025】
CRM124はマルチメディアデータ126およびデータアービタ128を含み、これらは、一実装形態においては、(示されているように)CRM124上に具体化される。代わりにあるいは更に、データアービタ128は、全体としてあるいは部分的に、ホストデバイス102の他のコンポーネント(例えば、有線ネットワークインターフェース120)と統合されたあるいは該コンポーネントとは別のハードウェアロジックまたは回路として実装され得る。データアービタ128がどのように実装され使用されるかはさまざまであって後述される。マルチメディアデータ126は、オーディオデータ、ビデオデータ、あるいはそれらの組み合わせなど、任意の適切なタイプのデータを含み得る。マルチメディアデータは時間センシティブなデータであり得、その伝達は、関係するネットワークの時間またはタイミング制約にセンシティブである。マルチメディアデータ126は、IEEE1722−2011のセクション3またはセクション5などの任意の適切な通信プロトコルまたは規格に従って伝達され得る。例えば、マルチメディアデータ126は、同期プレゼンテーションのために時間ベースのネットワークを介してクライアントデバイス104に伝達されるオーディオ−ビデオブリッジング(AVB)データであり得る。代わりにあるいは更に、マルチメディアデータ126は、任意の適切なレイヤ2トランスポートプロトコル(例えば、IEEE1722)に従うストリーミングのためにオーディオ/ビデオトランスポートプロトコル(audio/video transport protocol(AVTP))データまたはフレームとしてフォーマットされ得る。
【0026】
クライアントデバイス104は、インターネット−プロトコル(internet−protocol(IP))対応のテレビジョン130(IPTV130)、プロジェクタ132、および無線スピーカ134を含む。考えられるクライアントデバイス104の他の実装形態は、モニタ、ビデオカメラ、デジタルピクチャーフレーム、LCDベースのディスプレイ、トランスデューサ、サブウーファー、人間入力デバイス、などの、種々の周辺装置および/またはメディアデバイスを含む。各クライアントデバイス104は、通信リンク106を介してホストデバイス102から受け取られたマルチメディアデータ126をレンダリングし、デコードし、および/または提示し得る。例えば、IPTV130およびスピーカ134は、セットトップボックス114から受け取られたマルチメディアデータ126を使用して同期化されたマルチメディアコンテンツをユーザに提示することができる。
【0027】
各クライアントデバイス104は無線トランシーバ136を含むことができ、これは、上であるいは本書の別の個所で言及されるものなどの種々の無線通信プロトコルを処理する通信インターフェースを提供する。単一のトランシーバとして示されているけれども、無線トランシーバ136は、別々のトランスミッタおよびレシーバとして実装され得、ファームウェアもしくはソフトウェアと組み合わされたかあるいはこれらとは別のハードウェアであり得る。
【0028】
クライアントデバイス104は、上であるいは本書の別の個所で言及されるものなどの種々の有線通信プロトコルを処理する通信インターフェースを提供するためのクライアント有線ネットワークインターフェース138(クライアント有線ネットワークI/F138)をも含む。クライアント有線ネットワークI/F138は、ファームウェアもしくはソフトウェアと組み合わされるかあるいはこれらとは別のハードウェアであり得るメディアアクセスコントローラ(MAC)および物理層(PHY)から構成されるなど、任意の適切な仕方で構成され得る。
【0029】
クライアントデバイス104は、1つまたは複数のクライアントプロセッサ140と、クライアントコンピュータ可読ストレージ媒体142(クライアントCRM142)と、一実装形態ではクライアントCRM142上で具体化されるマルチメディアプレゼンテーションモジュール144(プレゼンテーションモジュール144)とをも含む。クライアントCRM142は、アプリケーションのデータおよび/またはクライアントデバイス104のオペレーティングシステムを記憶するのに役立つRAM、SRAM、DRAM、EEPROM、ROMまたはフラッシュメモリなどの任意の適切なメモリまたはストレージデバイスを含み得る。
【0030】
プレゼンテーションモジュール144は、1つまたは1より多いクライアントデバイス104によるマルチメディアコンテンツの同期プレゼンテーションを可能にし得る。例えば、プレゼンテーションモジュール144は、マルチメディアデータ126をホストデバイス102から受け取ってクライアントデバイス104における該マルチメディアデータ126のレンダリングを同期化することができる。プレゼンテーションモジュール144は、更にマルチメディアデータ126からタイミング情報を抽出し、それはクライアントデバイス104におけるマルチメディアデータ126のレンダリングまたはプレゼンテーションを同期化するのに役立ち得る。
【0031】
クライアントデバイス104は、視覚的におよび/または聴覚的に認識できるマルチメディアコンテンツを提示するディスプレイ146および/または1つもしくは複数のスピーカ148をも含み得る。クライアントデバイス104のレンダリングまたはデコードされたマルチメディアデータ126は、ディスプレイ146またはスピーカ148を介してマルチメディアコンテンツとして提示され得る。例えば、無線スピーカ134は、マルチメディアデータ126のストリーム(例えば、オーディオデータ)を、1つまたは1より多い内部スピーカ148を介して提示される音楽としてデコードし得る。
【0032】
図2は、ホストデバイス102の有線ネットワークインターフェース120を含むデバイス環境200の例を示し、これは時間アウェアなネットワーク202を介してマルチメディアデータ126(示されていない)をIPTV130および無線スピーカ134にストリーミングしている。この特定の例では、時間アウェアなネットワーク202との通信は通信リンク106−1、106−2、および106−3を介して実行され、これらは上記のように有線または無線リンクであり得る。時間アウェアなネットワーク202は、IEEE1722、IEEE802.3bh、IEEE802.1AS、IEEE802.1Qat、IEEE802.1Qav、などの任意の適切な通信プロトコルを実装することができる。時間アウェアなネットワーク202は、1つまたは1より多いクライアントデバイス104が同期機能を実行することを可能にする。例えば、時間アウェアなネットワーク202は、IPTV130および無線スピーカ134によるマルチメディアデータの同期プレゼンテーションを可能にし得る。
【0033】
本例のコンテキストにおいては、有線ネットワークインターフェース120は通信リンク106−1を介して時間アウェアなネットワーク202の向こうへマルチメディアデータ126をストリーミングする。代わりにあるいは更に、マルチメディアデータ126は、無線トランスミッタ116および無線レシーバ118により提供されるものなどの、無線通信インターフェースによりストリーミングされ得る。有線ネットワークインターフェース120は、時間センシティブなデータキュー204(TSデータキュー204)、非時間センシティブなデータキュー206(非TSデータキュー206)、データアービタ128、および伝送バッファ208を含み得る。
【0034】
TSデータキュー204はパケット化マルチメディアデータ126などの時間センシティブなデータパケットを受け取りおよび/または記憶するためのバッファを含み得る。非TSデータキュー206は、インターネット閲覧、電子メール、データアプリケーション、バックグラウンドプログラム、通信リンクステータス/制御情報などと関連するデータパケットなどの、非時間センシティブなデータパケットを受け取りおよび/または記憶するためのバッファを含み得る。TSデータキュー204および非TSデータキュー206のいずれかまたは両方からのデータパケットは、通信リンク106を介して伝送されるべく伝送バッファ208に送られ得る。伝送バッファ208は、通信リンク106−1を介して時間アウェアなネットワーク202にデータパケットをストリーミングするように構成された先入れ先出し(first−in−first−out(FIFO))バッファであり得る。
【0035】
データアービタ128は、TSデータキュー204および非TSデータキュー206から伝送バッファ208へのデータパケットのフローを制御しあるいは影響を及ぼすことができる。データアービタ128は、TSデータパケットのサイズ、それぞれのTSデータパケットを伝送するために消費される時間の量、および/またはTSデータパケットが時間アウェアなネットワーク202を介して伝送されるスケジュールなどの、TSデータキュー204のデータパケットに関連する種々のパラメータを認識することもできる。代わりにあるいは更に、データアービタ128は、非TSデータキュー206内のデータパケットのサイズおよび非TSデータキュー206のデータパケットを伝送するために消費される時間の量を認識することができる。少なくとも或る場合には、データアービタ128は、非TSデータキュー206からのデータパケットの伝送との競合を避けるためにTSデータキュー204からのデータパケットの予定伝送を早めることができる。
【0036】
或る場合には、データアービタ128は、所定のまたは設定可能な時間量に基づいてTSデータキュー204からのデータパケットの予定伝送を早める(例えば、プリローンチする)ように構成される。そのような場合には、データアービタ128のプログラマブルなレジスタは、AVBデータパケットの予定伝送を約13マイクロ秒早めるようにセットされ得る。これは、最大サイズの非AVBデータパケットがAVBデータパケットの伝送を遅延させたりブロックしたりすることなく伝送されることを可能にするために有効であり得る。データアービタ128を実装し使用するさらなる方法および代わりの方法はさまざまであり、後述される。
【0037】
時間センシティブなデータ伝送のアービトレーションのための技術
次のディスカッションは、時間センシティブなデータ伝送のアービトレーションのための技術を記述する。これらの技術は、ホストデバイス102上で具体化される
図1のデータアービタ128などの、先に記載された環境またはエンティティを用いて実行され得る。これらの技術は、
図3、5、および7に示されている方法を含み、その各々は1つ以上のエンティティにより実行される動作のセットとして示されている。これらの方法は、動作を実行するために示されている順序に必ずしも限定されない。更に、これらの方法は、同じエンティティにより、別々のエンティティにより、あるいはそれらの何らかの組み合わせにより実行されるのかを問わず、全体としてあるいは部分的に、互いに関連して用いられ得る。次のディスカッションのいろいろな部分で、
図1の動作環境100および
図2のエンティティが例として言及される。そのような言及は、動作環境100に限定されるのではなくて種々の例のうちの1つを説明するものと解されるべきである。
【0038】
図3は、
図1のデータアービタ128により実行され得る動作を含む、予定データ伝送のスタートを早める方法300を描いている。
【0039】
302で、第1予定データ伝送の終わりと第2予定データ伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに十分であるか否かが判断される。該第1予定データ伝送または該第2予定データ伝送は、時間アウェアなネットワークを介して伝送されるマルチメディアデータなどの時間センシティブなデータの伝送であり得る。該非予定データ伝送は、インターネットブラウザデータまたはネットワーク対応アプリケーションと関連するデータなどの、非時間センシティブなデータのためのものであり得る。該予定データ伝送は、規則的なあるいは周期的な間隔を置いてスタートするように予定され得る。
【0040】
一例として、
図2のコンテキストにおいて有線ネットワークインターフェース120を考察すると、これはマルチメディアデータ126をIPTV130および無線スピーカ134にストリーミングする有線ネットワークインターフェース120を示している。ここで、TSデータキュー204はマルチメディアデータ126のパケットの形の時間センシティブなデータを含み、非TSデータキュー206はインターネット閲覧データのパケットを含むと仮定する。更に、TSデータキュー204の時間センシティブなデータのパケットは特定の時間に伝送されるように予定されるということも仮定する。
【0041】
本例のコンテキストにおいて、
図4のタイムライン400を考察する。タイムライン400はTSデータパケット402、404、406、および408を含み、これらはそれぞれのローンチ時間T
Launch0410、T
Launch1412、T
Launch2414、およびT
Launch3416に予定される。タイムライン400は非TSデータパケット418(例えば、インターネット閲覧データのパケット)も含み、それの伝送は予定されないけれども、早くも現在時間T
Current420に起こり得るであろう。しかし、T
Current420とT
Launch0410との間のタイミングギャップ
0422(Gap
0422)は、TSデータパケット402の伝送を遅延させてタイミング違反424を生じさせるという結果をもたらすことなく非TSデータパケット418を伝送するには不十分であるということに留意するべきである。
【0042】
ここで有線ネットワークインターフェース120のデータアービタ128は、TSデータパケット402とTSデータパケット404との間のタイミングギャップ
1426(Gap
1426)が非TSデータパケット418を伝送するのに十分であるか否か判断する。或る場合には、データアービタ128は、他の1つのTSデータパケットの伝送を遅延させるなどのもう1つのタイミング違反を引き起こすことなく非TSデータパケット418がGap
1426の間に伝送され得るか否か判断する。本例のコンテキストにおいては、データアービタ128は、Gap
1426は非TSデータパケット418を伝送するのに不十分であると判断する。具体的には、非TSデータパケット418の伝送により消費される時間デュレーションはGap
1426より大きい。
【0043】
動作302から、方法300は動作304または動作306に進むことができる。方法300は、第1予定伝送の終わりと第2予定伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに十分であるならば、動作304に進む。方法300は、第1予定伝送の終わりと第2予定伝送の始まりとの間の時間デュレーションが非予定データ伝送を実行するのに不十分であるならば、動作306に進む。
【0044】
304で、非予定データ伝送は、第1予定伝送の終わりと第2予定伝送の始まりとの間の時間デュレーションの間に実行される。或る場合には、該非予定データパケットの伝送は、該時間デュレーションに遭遇するまで遅延させられる。これは、該非予定データパケットの伝送が他の予定データ伝送を遅延させることを防止するために有効であり得る。
【0045】
306で、第1予定データ伝送のスタートは、第1予定データ伝送の終わりと第2予定データ伝送の始まりとの間の時間デュレーションを実際上大きくするように、早められる。或る場合には、第1予定データ伝送のスタートは現在の時間まで早められ得る。他の場合には、第1予定データ伝送のスタートは、非予定データ伝送の長さに基づいて早められ得る。例えば、該データ伝送のスタートは、第2予定データ伝送のスタートとの潜在的タイミング違反が回避されるように該時間デュレーションを十分に大きくするように早められ得る。第1予定データパケットのスタートは、非時間センシティブなデータパケットを伝送することにより消費される時間の量だけ早められ得る。例えば、非センシティブなデータパケットのサイズは約1522バイトであり得、これは125MHzで伝送するには約13マイクロ秒を消費する。ギガビット−イーサネット(登録商標)(Gigabit−Ethernet(登録商標)(GE))の場合、干渉する非AVBデータパケットの最大サイズは、伝送に12.336マイクロ秒を消費する1542バイトであり得る(1542バイト*8ビット*1ns=12.336マイクロ秒)。従って、非AVBデータパケットの伝送を収容するために予定データ伝送は約13マイクロ秒早められ得る。
【0046】
進行中の例を続けると、データアービタ128は、
図4のタイムライン428により示されているように、TSデータパケット402の伝送のスタートをT
Current420まで早める。そのようにすることによって、データアービタ128はGap
1426をGap
1Δ430まで大きくすることができ、これは非TSデータパケット418を伝送するために十分に長い。
【0047】
308で、該非予定データは、早められた第1予定伝送の終わりと第2予定伝送の始まりとの間の大きくされた時間デュレーションの間に伝送される。該非予定データパケットの伝送は、伝送バッファまたはFIFOバッファなどの、ネットワークインターフェースのコンポーネントを介しての伝送を引き起こしあるいは開始することを含み得る。該大きくされた時間デュレーションの間の該非予定データパケットの伝送は、該大きくされた時間デュレーションに遭遇するまで該非予定データパケットの伝送を遅延させることを含み得る。
【0048】
本例のコンテキストにおいては、
図4のタイムライン428により示されているように、データアービタ128はGap
1Δ430の間に非TSデータパケット418の伝送を開始する。TSデータパケット402の伝送のスタートを早めればTSデータパケット402−408のどれをも遅延させずに非TSデータパケット418を伝送できるということに留意するべきである。本例を締めくくると、TSデータパケット402は時間アウェアなネットワーク202を介してIPTV130および無線スピーカ134に伝送される。その後、それぞれのデバイスのプレゼンテーションモジュール144は、TSデータパケット402(および、マルチメディアデータ126のストリームの次のTSデータパケット)をデコードして、同期マルチメディアコンテンツを提示する。
【0049】
図5は、
図1のデータアービタ128により実行され得る動作を含む、複数の予定データ伝送のスタートを早める方法500を描いている。
【0050】
502で、予定データ伝送に先行する時間デュレーションと該予定データ伝送に続く時間デュレーションとが、もし組み合わされたとすれば、非予定データ伝送を実行するのに十分であるか否かが判断される。該予定データ伝送に先行する時間デュレーションは、現在の時間から予定データ伝送のスタートまでの時間デュレーションであり得る。該予定データ伝送に続く時間デュレーションは、該予定伝送の終わりから次の予定データ伝送のスタートまでの時間デュレーションであり得る。
【0051】
該予定データ伝送または該次の予定データ伝送は、時間アウェアなネットワークを介して伝送されるマルチメディアデータなどの、時間センシティブなデータの伝送であり得る。該非予定データ伝送は、インターネットブラウザデータまたはネットワーク対応アプリケーションと関連するデータなどの、非時間センシティブなデータのためのものであり得る。該予定データ伝送は、規則的なあるいは周期的な間隔を置いてスタートするように予定され得る。
【0052】
他の1つの例として、もう一度
図2のコンテキストで有線ネットワークインターフェース120を考察すると、ここで有線ネットワークインターフェース120はマルチメディアデータ126をIPTV130および無線スピーカ134にストリーミングする。ここでTSデータキュー204はマルチメディアデータ126のパケットの形の時間センシティブなデータを含み、非TSデータキュー206はインターネット閲覧データのパケットを含むと仮定する。更に、TSデータキュー204の時間センシティブなデータのパケットは特定の時間に伝送されるように予定されるということも仮定する。
【0053】
本例のコンテキストにおいては、それぞれのローンチ時間T
Launch0610、T
Launch1612、T
Launch2614、およびT
Launch3616に予定されているTSデータパケット602、604、606、および608を含む
図6のタイムライン600を考察する。タイムライン600は非TSデータパケット618(例えば、電子メールデータのパケット)をも含み、その伝送は予定されないけれども早くも現在時間T
Current620に起こり得るであろう。しかし、TSデータパケット602間の先行するタイミングギャップ
1624(Gap
1624)、およびタイミングギャップ
0622(Gap
0622)は、別々でも組み合わされたとしても、TSデータパケット602の伝送を遅延させたりブロックしたりすることなく非TSデータパケット618を伝送するのに十分であるということに留意するべきである。
【0054】
ここで有線ネットワークインターフェース120のデータアービタ128は、Gap
0622およびGap
1624が非TSデータパケット618を伝送するのに十分であるか否か判断する。或る場合には、データアービタ128は、TSデータパケット602の伝送を早めることにより組み合わされたならばGap
0622およびGap
1624の間に非TSデータパケット618が伝送され得るか否か判断する。本例のコンテキストにおいては、データアービタ128は、Gap
0622およびGap
1624が非TSデータパケット618を伝送するには不十分であると判断し、このことは
図6のタイムライン626により示される。ここで、非TSデータパケット618の伝送デュレーションはGap
1Δ628を超え、タイミング違反630を生じさせる。
【0055】
動作502から、方法500は動作504または動作506に進むことができる。方法500は、予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションが該非予定データ伝送を実行するのに十分であるならば、動作504に進むことができる。方法500は、該予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションが該非予定データ伝送を実行するのに不十分であるならば、動作506に進むことができる。
【0056】
504で、予定データ伝送のスタートは、該予定データ伝送に先行する時間デュレーションおよび該予定データ伝送に続く時間デュレーションを実際上組み合わせるように、早められる。これは、該非予定データ伝送を実行するのに十分に該予定データ伝送に続く時間デュレーションを大きくするために有効である。或る場合には、該予定データ伝送のスタート時間量は、通信プロトコルのタイミング制約により上限を定められあるいは限定される。例えば、AVBデータパケットの伝送のスタート時間量は、IEEE1722により規定されている最大タイミング不確定性(例えば、125マイクロ秒)を超えることができない。
【0057】
506で、該予定データ伝送および次の予定データ伝送のスタートは、該次の予定データ伝送に続く時間デュレーションを実際上大きくするように早められる。或る場合には、該次の予定データ伝送のスタートは、該早められた予定データ伝送の終わりの直ぐ後に続くように早められる。その早められた次の予定データ伝送に続く大きくされた時間デュレーション(例えば、Gap
2Δ636)は、早められた予定データ伝送に続く時間デュレーション(Gap
1Δ628)より大きくなり得る。
【0058】
進行中の例を続けると、データアービタ128はTSデータパケット602およびTSデータパケット604の伝送のスタートを早める。ここで、
図6のタイムライン634により示されるように、TSデータパケット602のスタートはT
Current420まで早められる。TSデータパケット604のスタートは、早められたTSデータパケット602の終わりに直ぐ続くように早められる。そのようにすることによって、データアービタ128はGap
2632をGap
2Δ636まで大きくすることができ、これは非TSデータパケット618を伝送するのに十分に長い。
【0059】
508で、該非予定データは、早められた第1予定伝送の終わりと第2予定伝送の始まりとの間の大きくされた時間デュレーションの間に伝送される。該非予定データパケットの伝送は、伝送バッファまたはFIFOバッファなどのネットワークインターフェースのコンポーネントを介しての伝送を引き起こすことあるいは開始することを含み得る。大きくされた時間デュレーションの間の該非予定データパケットの伝送は、その大きくされた時間デュレーションに遭遇するまで該非予定データパケットの伝送を遅延させることを含み得る。
【0060】
本例のコンテキストにおいては、
図6のタイムライン634により示されているように、データアービタ128はGap
2Δ636の間にTSデータパケット618の伝送を開始する。TSデータパケット602およびTSデータパケット604の伝送のスタートを早めることにより、TSデータパケット602−608のどれをも遅延させることなく非TSデータパケット618を伝送することが可能になることに留意するべきである。本例を締めくくると、TSデータパケット602およびTSデータパケット604は時間アウェアなネットワーク202を介してIPTV130および無線スピーカ134に伝送される。その後、それぞれのデバイスのプレゼンテーションモジュール144はTSデータパケット602およびTSデータパケット604(ならびにマルチメディアデータ126のストリームの次のTSデータパケット)をデコードして同期マルチメディアコンテンツを提示する。
【0061】
図7は、
図1のデータアービタ128により実行され得る1つ以上の動作を含む、データをプリローンチする方法700を描いている。
【0062】
702で、現在時間と次のオーディオ−ビデオブリッジングデータローンチ時間(AVBローンチ時間)との間の時間ギャップが非AVBデータパケットを伝送するのに十分であるか否か判断される。該AVBローンチ時間は、IEEE1722準拠ネットワークなどの、時間アウェアなネットワークを介してAVBデータを伝送するために準拠して予定され得る。IEEE1722のコンテキストにおいては、AVBローンチ時間は、AVBプレゼンテーション時間マイナスAVB最大伝送時間(例えば、ネットワーク待ち時間)として計算され得る。
【0063】
動作702から、方法700は動作704または動作706に進むことができる。方法700は、現在時間と次のAVBローンチ時間との間の時間ギャップが非AVBデータパケットを伝送するのに十分であるならば、動作704に進む。方法700は、現在時間と次のAVBローンチ時間との間の時間ギャップが非AVBデータパケットを伝送するのに不十分であるならば、動作706に進む。704で、該非AVBデータパケットは、現在時間と次のAVBローンチ時間との間の時間ギャップの間に伝送される。
【0064】
706で、次の2つのAVBデータパケット伝送の間の次の時間ギャップが該非AVBデータパケットを伝送するのに十分であるか否か判断される。該次の2つのAVBデータパケット伝送は、次の2つのAVBローンチ時間にスタートするように予定され得る。該時間ギャップは、該2つのAVBデータパケット伝送のうちの第1のものの終わりと該AVBデータパケット伝送のうちの第2のもののスタートとの間の時間デュレーションであり得る。従って、該次の時間ギャップの長さあるいはデュレーションを判断するときに、それぞれのAVBデータパケットの長さが考慮され得る。
【0065】
動作706から、方法700は動作708または動作710に進むことができる。方法700は、該次の2つのAVBデータパケット伝送の間の該次の時間ギャップが該非AVBデータパケットを伝送するのに十分であるならば、動作708に進む。方法700は、該次の2つのAVBデータパケット伝送の間の該次の時間ギャップが該非AVBデータパケットを伝送するのに不十分であるならば、動作710に進む。708で、該非AVBデータパケットは、該次の2つのAVBデータパケット伝送の間の該次の時間ギャップの間に伝送される。或る場合には、該非AVBデータパケットの伝送は、該次の時間ギャップに遭遇するまで遅延させられる。該次の時間ギャップの間に該非AVBデータパケットを伝送することは、該非AVBデータパケットが該AVBデータパケットのいずれかの予定伝送を遅延させたり、それに干渉したりすることを防止するのに有効であり得る。
【0066】
710で、次の2つのAVBデータパケット伝送の間の次の時間ギャップを広げるためにAVBデータパケットがプリローンチされる。該AVBデータパケットのプリローンチは、該次の予定AVBデータパケットを現在時間または次の利用可能な伝送時間にプリローンチすることができる。該AVBデータパケットは、該非AVBデータパケットを伝送するのに役立つ時間デュレーションによりプリローンチされ得るが、それは約13マイクロ秒以下であり得る。
【0067】
712で、2つのAVBデータパケット伝送の間の広げられた時間ギャップが該非AVBデータパケットを伝送するのに十分であるか否か判断される。該2つのAVBデータパケット伝送の間の該広げられた時間ギャップは、第1のプリローンチされるAVBデータパケット伝送の終わりと第2のAVBデータパケット伝送のスタートとの間の時間デュレーションであり得る。該第2のAVBデータパケット伝送のスタートは、該第1のAVBデータパケット伝送についてのAVBローンチ時間に続くAVBローンチ時間に生じるように予定され得る。
【0068】
動作712から、方法700は動作714または動作716に進むことができる。方法700は、次の2つのAVBデータパケット伝送の間の広げられた時間ギャップが該非AVBデータパケットを伝送するのに十分であるならば、動作714に進む。方法700は、次の2つのAVBデータパケット伝送の間の広げられた時間ギャップが該非AVBデータパケットを伝送するのに不十分であるならば、動作716に進む。714で、該非AVBデータパケットは、該次の2つのAVBデータパケット伝送の間の広げられた時間ギャップの間に伝送される。これは、該非AVBデータパケットが該AVBデータパケットのいずれかの予定伝送を遅延させたり、それに干渉したりすることを防止するために有効であり得る。
【0069】
716で、2つのAVBデータパケット伝送の間の他の1つの次の時間ギャップを大きくするために他の1つのAVBデータパケットがプリローンチされる。これは、第2のAVBデータパケット伝送の終わりと第3のAVBデータパケット伝送のスタートとの間の時間ギャップを広げるために有効な、次の2つのAVBデータパケット伝送のうちの第2のものをプリローンチすることを含み得る。或る場合には、該第2のAVBデータパケットは、第1のAVBデータパケットがプリローンチされた後直ぐにプリローンチされ得る。これは、次の時間ギャップ(例えば、第2および第3のAVBデータパケット伝送の間の時間ギャップ)を、先行する広げられた時間ギャップ(例えば、第1および第2のAVBデータパケット伝送の間の広げられた時間ギャップ)より大きくするために有効であり得る。動作716から、方法700は、第2のAVBデータパケット伝送と第3のAVBデータパケット伝送との間の広げられた次の時間ギャップが該非AVBデータパケットを伝送するのに十分であるか否か判断するために動作712に戻る。
【0070】
方法700は、該非AVBデータパケットがAVBデータパケット伝送間のギャップの間に伝送されるまで動作712、714、および/または716を反復実行することができる。他の1つのAVBデータパケットをプリローンチすることの各々の反復は、該プリローンチされるAVBデータパケットの終わりと次のAVBデータパケットのスタートとの間の次の時間ギャップが先行する時間ギャップより広くなるという結果をもたらし得る。或る場合には、方法700の反復は、IEEE1722の最大タイミング不確定性スレショルド(例えば、125マイクロ秒)などの、AVBデータパケットがプリローンチされ得る最大時間量により限定され得る。従って、該非AVBデータパケットの伝送は、どのAVBデータパケットの予定伝送をも遅延させたり、それに干渉したりすることなく、成し遂げられ得る。
【0071】
システムオンチップ
図8はシステムオンチップ(SoC)800を示し、これは上記のいろいろな側面を実施することができる。SoCは、ビデオゲームコンソール、IP対応テレビジョン、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、リモートコントロール、タブレットコンピュータ、サーバ、ネットワーク対応プリンタ、セットトップボックス、プリンタ、スキャナ、カメラ、ピクチャーフレーム、および/または、時間センシティブなデータを伝達し得る任意の他のタイプのデバイスなど、任意の適切なデバイスにおいて実装され得る。
【0072】
SoC800は、上に列挙されたデバイスのうちのいずれかなどのデバイスに通信結合を提供するために必要とされる電子回路、マイクロプロセッサ、メモリ、入力−出力(I/O)論理制御、通信インターフェースおよびコンポーネント、他のハードウェア、ファームウェア、および/またはソフトウェアと統合され得る。SoC800は、該SoCの種々のコンポーネントを該コンポーネント間のデータ通信のために結合させる統合データバス(示されていない)をも含むことができる。SoC800を含む有線または無線通信デバイスは、いろいろなコンポーネントの多くの組み合わせを伴って実装されることもできる。或る場合には、これらのいろいろなコンポーネントは、有線または無線接続を介して本書に記載の思想を実施するように構成され得る。
【0073】
この例では、SoC800は、入力−出力(I/O)論理制御802(例えば、電子回路を含む)およびマイクロプロセッサ804(例えば、マイクロコントローラまたはデジタル信号プロセッサのいずれか)などの種々のコンポーネントを含む。SoC800は、メモリ806をも含み、これは任意のタイプのRAM、短待ち時間不揮発性メモリ(例えば、フラッシュメモリ)、ROM、および/または他の適切な電子データストレージであり得る。SoC800は、メモリ806により維持されてマイクロプロセッサ804により実行されるコンピュータ実行可能な命令であり得るオペレーティングシステム808などの種々のファームウェアおよび/またはソフトウェアをも含むことができる。SoC800は、予定データ伝送のスタートを早める時間量を指定するためのものなどの、種々のプログラマブルな制御レジスタ(示されていない)をも含み得る。SoC800は、他の種々の通信インターフェースおよびコンポーネント、通信コンポーネント、他のハードウェア、ファームウェア、および/またはソフトウェアをも含むことができる。
【0074】
SoC800は、TSデータキュー204、非TSデータキュー206、データアービタ128、および伝送バッファ208(上記のように異種のあるいは組み合わされたコンポーネントとして具体化される)を含む。これらの種々のコンポーネント、機能、および/またはエンティティ、およびそれらの対応する機能性の例は、
図1および
図2に示されている環境100のそれぞれのコンポーネントと関連して記述される。
【0075】
データアービタ128は、独立にあるいは他のエンティティと組み合わされて、本書に記載の種々の実施態様および/またはフィーチャを実施するためにメモリ806により維持されてマイクロプロセッサ804により実行されるコンピュータ実行可能な命令として実装されることができる。データアービタ128は、I/O論理コントローラ802またはSoC800内の任意のパケットベースのインターフェースのうちの一方または両方と統合されるなど、SoCの他のエンティティと一体としても設けられ得る。代わりにあるいは更に、データアービタ128および他のコンポーネントは、I/O論理制御802および/またはSoC800の他の信号処理および制御回路と関連して実装されるハードウェア、ファームウェア、固定論理回路、またはそれらの任意の組み合わせとして実装され得る。
【0076】
主題は、構造上のフィーチャおよび/または方法論的動作に特有の用語で記述されているけれども、添付されている請求項において定義される主題は、該フィーチャまたは動作が示されおよび/または実行される順序を含めて、上記の特定のフィーチャまたは動作に必ずしも限定されない。