JP5918849B2 - ネットワークトンネルを通してデータを転送するための方法および装置 - Google Patents

ネットワークトンネルを通してデータを転送するための方法および装置 Download PDF

Info

Publication number
JP5918849B2
JP5918849B2 JP2014509418A JP2014509418A JP5918849B2 JP 5918849 B2 JP5918849 B2 JP 5918849B2 JP 2014509418 A JP2014509418 A JP 2014509418A JP 2014509418 A JP2014509418 A JP 2014509418A JP 5918849 B2 JP5918849 B2 JP 5918849B2
Authority
JP
Japan
Prior art keywords
network
thunderbolt
data
relay
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014509418A
Other languages
English (en)
Other versions
JP2014517588A (ja
Inventor
ニール ディー. ワーレン,
ニール ディー. ワーレン,
ジュニア., ジロー ダブリュー. ジョーンズ,
ジュニア., ジロー ダブリュー. ジョーンズ,
レイモンド ビー. モンターニュ,
レイモンド ビー. モンターニュ,
マシュー エックス. モーラ,
マシュー エックス. モーラ,
ブレット ディー. ジョージ,
ブレット ディー. ジョージ,
マイケル ダブリュー. マーフィー,
マイケル ダブリュー. マーフィー,
ウィリアム ピー. コーネリアス,
ウィリアム ピー. コーネリアス,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2014517588A publication Critical patent/JP2014517588A/ja
Application granted granted Critical
Publication of JP5918849B2 publication Critical patent/JP5918849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Description

[優先権]
本願は、2011年5月2日に出願された「ネットワークトンネルを通してデータを転送するための方法および装置」という名称の同時係属の米国仮特許出願第61/481,641号に対する優先権を主張する、2012年5月2日に本願と共に同時に出願された同じ名称の米国特許出願第13/462,603号に対する優先権を主張するものであり、上記を全体として参照により本願に援用する。
[技術分野]
本発明は、一般に、コンピュータ制御のデバイス、ネットワーク、およびバスに関する。詳細には、例示する一態様において、本発明は、ネットワークトンネルを通してデータを効率的に転送することを対象とする。
データネットワーキングの文脈において、「トンネル」とは、(中継ネットワークすなわちベアラネットワークに固有の)中継プロトコルの中に(ネットワーク化された諸要素(エレメント)によって共有される)ネットワークプロトコルを組み込んだ、ネットワーク化された諸要素間のネットワーク通信チャネルのことである。トンネリングは、物理的に結合できないサブネットワーク間を論理的に接続するのによく利用される。例えば、プライベートネットワーク同士が公衆ネットワークを通してセキュアなトンネルを確立し、共用の仮想プライベートネットワークを構築することができる。また、トンネリングは、複数のネットワークプロトコルを共通の転送に組み込むことにも利用される。例えば、初期のThunderbolt(商標)高速データバスは、PCI−Express(商標)(Peripheral Component Interconnect Express)およびDisplayPort(商標)のデータを単一のコスト効率の良いインタフェースを介して同時にサポートすることができる。
Thunderboltインタフェースの現行の実装は、単一のシリアルデータインタフェースの中で、PCI Express(PCIe)トンネルと、DisplayPort(DP)トンネルと、汎用のNative Host Interface(NHI)/User Transport Interface(UTI)トンネルとを提供している。動作中には、PCIeストリームとDPストリームとがThunderboltパケットへとパケット化されて転送される。それらのパケットは一緒にインタリーブされて、共用のThunderbolt接続を介して送信され、次いで、受信器で、それらの個々の構成ストリームへとデインタリーブされる。PCIeデータストリームもDPデータストリームもいずれも送信中は変更されないため、結果として生じるストリームは元々、既存のPCI ExpressおよびDisplayPortのハードウェアおよびソフトウェアと互換性がある。
しかし、周知のとおり、各バスプロトコルの性能と機能性とは多種多様である。例えば、PCIeは、所与のデータストリームについて帯域幅を予約する方途を提供していない。その代わり、PCIeの仕様はトラヒックのクラスと仮想チャネルとを定義しており、それらを用いて、典型的なPCIeシステムの範囲内でトランザクションを優先させることができる。残念ながら、これらの性能は現行のThunderbolt解決策には含まれておらず、既存のThunderboltトランシーバは、PCIeプロトコルの範囲内で用いられる仮想チャネルもトラヒッククラスもサポートしていない。その代わり、Thunderboltトランシーバは、Converged Input/Output(CIO)レイヤでトラヒックを優先させることが出来るだけである(本書では、Converged Input/Output(CIO)プロトコルとは、Thunderboltトランシーバ用の中継プロトコルである)。例えば、Thunderboltトランシーバは、DPトラヒックをPCIeトラヒックより優先させることが出来るだけである。
さらに、Thunderboltのホットプラグ可能な転送は、USB(Universal Serial Bus)デバイスやFireWire(商標)デバイスと同様の、一般的でユビキタスなハードウェアインタフェースおよびソフトウェアインタフェースを提供することが理想であろう。これらの目的を達するために、現行の研究は、Thunderboltデバイス用の特別なデバイスドライバの使用を最小限に抑えて、顧客にも開発者にも同様に「透明(トランスペアレント)な」操作を提供することを目指している。
従って、Thunderbolt転送技術と共に用いるために、トンネルされるPCIeストリームの範囲内で所定のタイプのトラヒックを優先させるための解決策が必要である。理想的には、そのような解決策は、特別なソフトウェア構成またはハードウェア構成を必要とせず、効果的にユーザに透明であるべきである。より一般的には、トンネルされるデータネットワークの範囲内で所定のプロトコル固有の性能を可能にするような解決策が必要である。
本発明は、特に、ネットワークトンネルを通してデータを効率的に転送するための方法および装置を提供することによって前述の必要性を満たすものである。
本発明の一態様において、ネットワーク内に優先的なデバイスクラスを実装するための方法を開示する。一実施形態では、この方法は、ネットワーク内で1つ以上のデバイスクラスを発見することと、その1つ以上のデバイスクラスに1つ以上のリソースを割り振ることと、その1つ以上の発見されたデバイスクラスからのデータトラヒックをその1つ以上の割り振られた中継リソースに従ってルーティングすることとを含んでいる。
本発明の第2の態様において、中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法を開示する。一実施形態では、この方法は、中継パラメータを抽出することと、抽出された中継パラメータに少なくとも部分的に基づいてネットワークパラメータを判定することと、判定されたネットワークプロトコルパラメータに少なくとも部分的に基づいて動作することとを含んでいる。
本発明の第3の態様において、コンピュータ可読記憶装置を開示する。一実施形態では、この装置は、少なくとも1つのコンピュータプログラムがそこに記憶された記憶媒体を含んでいる。その少なくとも1つのプログラムは、実行された場合には、(i)1つ以上のデバイスクラスを発見し、(ii)発見された1つ以上のデバイスクラスのうちの少なくとも1つに1つ以上の中継リソースを割り振り、および/または、(iii)1つ以上の割り振られた中継リソースに従ってデータをルーティングするように構成されている。
別の実施形態では、その少なくとも1つのプログラムは、実行された場合には、(i)中継パラメータを抽出し、(ii)その抽出された中継パラメータからネットワークパラメータを判定し、および/または、(iii)判定されたネットワークパラメータに従って動作するように構成されている。
本発明の第4の態様において、1つ以上のトンネルされるストリームを持つ1つ以上のタイプのトラヒックを優先させるように構成されたコンピュータ制御の装置を開示する。一実施形態では、この装置はコンピュータを備えており、それらのトンネルされるストリームは、Thunderboltインタフェースを跨いでトンネルされる。
本発明の第5の態様において、1つ以上のトンネルされるストリームを持つ1つ以上のタイプのトラヒックを転送するためのシステムを開示する。一実施形態では、このシステムは、送信デバイスと、受信デバイスと、間に挿入された少なくとも1つのベアラ媒体とを備えている。
本発明の第6の態様において、ネットワーク内でデータトラヒックを優先させる方法を開示する。一実施形態では、この方法は、1つ以上の優先的なクラスに関連する1つ以上のデバイスをネットワーク内で発見することと、その1つ以上の優先的なクラスに1つ以上の中継リソースを割り振ることと、その1つ以上の優先的なクラスに関連するデータだけをその対応する割り振られた1つ以上の中継リソースを経てルーティングすることとを含んでいる。
一変形形態では、その1つ以上の優先的なクラスは、1つ以上のマルチメディアデータタイプに基づいている。例えば、その1つ以上のマルチメディアデータタイプには、音声データが含まれてもよい。別のそのような変形形態では、その1つ以上の優先的なクラスは、デバイスタイプに基づいている。例えば、その1つ以上のデバイスタイプには、音声デバイスおよび非音声デバイスが含まれていてもよい。別の変形形態では、その1つ以上の送信リソースには、ダイレクトメモリアクセス(DMA)物理リソースが含まれる。例えば、DMA物理リソースは、Native Host Interface(NHI)を介してホストインタフェースに接続されるか、または代わりに、DMA物理リソースは、User Transport Interface(UTI)を介して周辺機器のインタフェースに接続される。
別の変形形態では、1つ以上の発見されたデバイスの各々が、共通の時刻基準を共有する。
本発明の第7の態様において、ネットワーク内でデータトラヒックを優先させるように構成された装置を開示する。一実施形態では、この装置は、1つ以上のネットワークインタフェースと、プロセッサと、そこに記憶された少なくとも1つのコンピュータプログラムを含む非一時的なコンピュータ可読媒体であって、その少なくとも1つのコンピュータプログラムがプロセッサ上で実行された場合には、ネットワーク内で1つ以上の優先的なクラスに関連する1つ以上のピアデバイスを発見し、その1つ以上の優先的なクラスに1つ以上の中継リソースを割り振り、そして、1つ以上の優先的なクラスに関連するデータだけをその対応する割り振られた1つ以上の中継リソースを経てルーティングするように構成された少なくとも1つのコンピュータプログラムを含む非一時的なコンピュータ可読媒体とを含んでいる。
一変形形態では、その1つ以上のネットワークインタフェースには、Thunderbolt対応のネットワークインタフェースが含まれる。または代わりに、その1つ以上のネットワークインタフェースには、Peripheral Component Interconnect Express(PCIe)対応のネットワークインタフェースが含まれる。別の変形形態では、その1つ以上のネットワークインタフェースには、DisplayPort対応のネットワークインタフェースが含まれる。
一変形形態では、その1つ以上の送信リソースには、ダイレクトメモリアクセス(DMA)物理リソースが含まれる。別の変形形態では、その1つ以上の送信リソースには、専用のメモリバッファが含まれる。
本発明の第8の態様において、優先的なクラスのデバイスをネットワーク内に実装するためのシステムを開示する。一実施形態では、この方法は、ネットワークの1つ以上のデバイスについて同期マスタデバイスを決定することと、その同期マスタデバイスによって提供される同期情報に基づいて時刻基準を導出することと、1つ以上のデバイスによってサポートされるデータタイプに1つ以上の中継リソースを割り振ることとを含んでおり、ここで1つ以上の中継リソースは、導出された時刻基準に同期している。
一変形形態では、ネットワークは、複数の同期マスタデバイスを含んでおり、ここで各同期マスタデバイスは、ネットワークセグメントに関連付けられている。そのような一システムでは、それらの複数の同期マスタデバイスは、1つ以上の境界デバイスを介して同期情報を中継する。
一変形形態では、ネットワークは、1つ以上のThunderbolt対応のデバイスを含んでいる。
別の変形形態では、1つ以上の送信リソースには、ダイレクトメモリアクセス(DMA)物理リソースが含まれる。
本発明のその他の特徴および利点は、当業者であれは、添付図面および以下の例示的な実施形態の詳細記述を参照すれば即座に認識するであろう。
例示的な先行技術のThunderbolt(商標)トランシーバデバイスを示す機能ブロック図である。 図1の先行技術のThunderbolt(商標)トランシーバデバイスの複数の接続性性能に関わる1つの例示的な使用シナリオを示す機能ブロック図である。 本発明に従って優先的なクラスのデバイスをネットワーク内に実装するための方法の例示的な一実施形態の論理的フロー図である。 本発明に従って中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法の例示的な一実施形態の論理的フロー図である。 本発明の各種の方法および態様を実装するのに有用なコンピュータ制御の装置の例示的な一実施形態を示す図である。 本発明によるThunderbolt(商標)トランシーバデバイスの、実装に特化した一実施形態を示すブロック図である。 図6のThunderboltデバイスによって提供される基準時刻から同期された音声サンプルクロックを生成するのに有用な装置の例示的な一実施形態を示すブロック図である。
これから図面を参照するが、類似した番号は全体にわたって類似した部分を表す。
概要
本発明は、特に、ネットワークトンネルを通してデータを効率的に転送するための方法および装置を提供するものである。本発明の例示的な一実施形態は、Thunderbolt対応ネットワークを経て配信する際に第1のタイプのトラヒック(例えば音声トラヒック)を他のタイプ(非音声トラヒック)より優先させるように構成される。本明細書で詳細に説明するとおり、Thunderboltデバイスは、音声性能をネットワークのピアデバイスに広告(advertise)し、またピアデバイスの音声性能を発見することになる。
本発明の第2の実施形態では、Thunderboltネットワークに関連する各音声デバイスは、Thunderbolt時刻管理ユニット(TMU)を利用してネットワークの同期を提供し、それによって音声の再構築とネットワークを通じた音声データの伝搬が改良される。ThunderboltのTMUは、すべてのThunderbolt音声デバイスに共通の非常に正確で精緻な時刻基準を提供する。
例示的な実施形態の詳細な説明
次に、本発明の例示的な実施形態について、より詳細に記述する。これらの実施形態は、主に既存のThunderbolt(商標)高速データバスならびにPCI−Express(商標)(Peripheral Component Interconnect Express)プロトコルおよびDisplayPort(商標)プロトコルに関して論じてはいるが、当業者であれば、本発明は前述の技術またはプロトコルに決して限定されないことが分かるであろう。実際、本発明の各種の態様は、1つ以上の転送技術で1つ以上のネットワークプロトコルをトンネリングさせることの可能ないかなるネットワーク内での使用にも適合することができる。
同様に、下記の議論は、音声データおよび音声データネットワークに関して提示されているが、当業者であれば、本発明は音声データに決して限定されないことが分かるであろう。実際、本発明の各種の態様は、他のデータに優先させうるいかなるデータタイプでの使用にも適合することができる。一般的な例には、マルチメディアデータ(例えば音声データ、動画像データ等)、アプリケーション特有のデータ、およびリアルタイムデータが含まれる。
本明細書では、「ネットワーク」という用語は、制限することなく、データをパケットと呼ばれる適切な大きさのグループに分けて転送するように構成されたいずれかのネットワークまたは装置のことを言う。パケットネットワークは、(パケットのシーケンスで構成される)データのストリームを一群のデバイスに配信することができる。転送の間、パケットは、バッファリングされて待ち行列に入れられ、ネットワーク内のトラヒック負荷に応じて変動性の遅延やスループットを経験することがある。パケットベースのネットワークの一般的な例には、インターネット(すなわち、世界的な相互接続コンピュータネットワークシステム)、および民間のインターネットやイントラネットなどが含まれる。
本明細書では、「ソース」という用語は、制限することなく、パケットベースのネットワークを介して転送するための情報をパケット化するように構成されたデバイスまたはインタフェースのことを言う。「宛先」、「目標」および/または「シンク」という用語は、制限することなく、パケットから情報を抽出するように構成されたデバイスまたはインタフェースのことを言う。
また、「エンドポイント」という用語は、一般に、かつ制限することなく、デバイス間の通信フローにおける情報の「ソース」および/または「宛先」であるデバイスの一部分のことを言う。同様に、本明細書では、「ノード」とは、制限することなく、パケットを受け取ったり、別のデバイスへパケットを転送したりするデバイスのことを言う。
これらの定義は、決して、限定していると解釈されるべきではなく、例えば、クライアントデバイスまたはその他のエンティティは、ネットワーク内の論理的または物理的「エンドポイント」および/または「ノード」を含んでいてもよいし、含まなくてもよい。
さらに理解されるであろうが、デバイスは、ソース、宛先およびノードの機能性を同時に実装してもよい(そして一般的にはそうである)のであって、前述の区別は、本発明の各種の態様を明確にするためだけに行われる。
さらに、一部の実施形態は、有線データバスすなわち有線接続の文脈で示されているが、本発明は、無線の選択肢またはインタフェース、例えば、IEEE Std.802.11ワイヤレスネットワークのようなWLAN、IEEE Std.802.16ワイヤレスネットワークのようなWMAN、パーソナルエリアネットワーク(PAN)、Bluetooth(商標)、赤外線、光通信リンクにも、制限することなく、等しく適用可能である。
例示的な先行技術のThunderbolt(商標)トランシーバ
図1は、本発明の各種の態様と共に使用しうる例示的な先行技術によるThunderboltトランシーバ100を示す図である。図のように、Thunderboltトランシーバは、(i)1つ以上のPCI Express(PCIe)インタフェースと、(ii)1つ以上のDisplayPort(DP)インタフェースと、(iii)1つ以上のThunderboltインタフェースと、(iv)1つ以上のUser Transport Interface(UTI)と、(v)PCIeスイッチと、(vi)Native Host Interface(NHI)と、(vii)Thunderboltスイッチとを備えている。Thunderboltトランシーバの現行の実装は、DPインタフェースをDPデータだけに限定しており、他のすべてのトラヒックはPCIeデータとして処理される。
動作中、NHIは、単一の外部PCIe接続を通してローカルホストプロセッサと通信する。ローカルホストプロセッサは、NHIの中のDirect Memory Access(DMA)エンジンを構成して、PCIeバスを介してアクセスしうるシステムメモリを読み書きすることができる。既存のThunderboltトランシーバは、すべてのThunderboltコマンドトランザクションと、制御トランザクションと、NHIを含めてすべての非DisplayPortデータフローとに用いられる1つの外部PCIe接続を有する。周辺機器は、典型的には、UTIインタフェースを使用し、これがThunderboltスイッチに接続して、UTI Thunderboltパケットにロー(raw)アクセスを提供する。図のように、図1のデバイスは、NHIとUTIとを両方有しており、そのため、ホストおよび周辺機器の操作が可能である(例えば、ホスト限定のデバイスはUTIを有しないであろうし、周辺機器限定のデバイスはNHIを有しないであろう)。
ホストプロセッサは、周辺デバイスのPCIeレジスタに自分自身のNHIインタフェースを介してアクセスすることができる。トランザクションは、Thunderboltスイッチを介して周辺デバイスへトンネルされ、そこでアクセスがUTIを通して方向付けられ、PCIeレジスタへのアクセスが行われる。同様に、周辺機器は、ホストのNHIに対する自分のUTIを介して(Thunderboltネットワークを通して)ホストにアクセスすることができる。同様に、(マルチホストシステムのための)ホスト対ホストのトランザクションが、NHI対NHIで行われてもよいし、(マルチ周辺機器システムのための)周辺機器対周辺機器のトランザクションが、UTI対UTIで行われてもよい。
図2は、先行技術による第1、第2、および第3のThunderboltトランシーバ(100A、100B、100C)の例示的な使用シナリオ200を示す図であり、各種の接続性性能を例示している。図のように、第1のデバイスが、(音声データとファイル転送とで構成される)第1のPCIeデータストリームと、第1のDPデータストリームとを受信する。第1のデバイス100Aは、第1のPCIeデータストリームと第1のDPデータストリームとをパケット化して第1のThunderbolt高速シリアルバスを経て送信し、そして、第1のThunderboltデータストリームを送信する。
第2のデバイス100Bは、第1のThunderboltデータストリームを受信し、データをアンパックして、第2のPCIeストリームと第2のDPデータストリームとを生成する。第2のDPデータストリームは、出力DPインタフェースを駆動する。第2のPCIeストリームは、さらに、その構成要素である音声データストリームとファイル転送ストリームとに分割される。音声データはUSB音声出力を駆動する。残りのファイル転送は、第2のThunderboltデータストリームへと再パックされ、第2のThunderbolt高速シリアルバス上で送信される。
第3のデバイス100Cは、第2のThunderboltデータストリームを受信し、データをアンパックして第3のPCIeストリームを生成する。第3のPCIeストリームは、ファイル転送を駆動する。
音声ネットワーキング
前述のとおり、DPインタフェースはDPデータだけを搬送し、すなわち、すべての非DPデータは、典型的には、単一のPCIeリンクを通してトンネルされる。不都合なことに、音声データが遅延して音声ストリームの中断を起こす場合があり、特に、PCIeリンクが他の非音声トラヒックによって著しく輻輳している場合にそのようになる可能性がある。また、例えばFireWireおよびUSB(Universal Serial Bus)のような他のバスプロトコルとは異なり、PCIeは、明示的に帯域幅を予約するためのメカニズムを提供していない。さらに、前述したように、先行技術のThunderboltトランシーバは、Converged Input/Output(CIO)レイヤでトラヒックを優先させることが出来るだけである(すなわち、トンネルされるPCIeパケットおよびDPパケットのインタリービング)。
従って、本発明の各種の実施形態が、前述した先行技術のトランシーバの欠点を解消するように構成される。一実施形態では、Thunderboltデバイスは、音声性能をネットワークのピアデバイスに広告して、ネットワークのピアデバイスの音声性能を発見し、それによって、デバイスが音声トラヒックを非音声トラヒックより優先させることを可能にする。第2の実施形態では、Thunderboltネットワークの各音声デバイスは、Thunderbolt時刻管理機能性を利用してネットワークの同期を提供し、それによって、有利には、音声の再構築とネットワークを通じた音声データの伝搬とがいずれも改良される。
例えば、例示的な一実装において、(本件の譲受人によって開発され配布された)MacOS X(商標)Thunderboltドライバが、すべての接続されたThunderboltデバイスを発見して、関連のデバイスクラス(かまたは、別段の指示がない場合はデフォルトクラス)を判定するように構成される。Thunderbolt Audio Classのデバイスとのトランザクションは、他のPCIeトランザクションより高い優先レベルに分類される。一部の変形形態では、補足的なタイプのデバイスクラスが存在してもよく、その各々が、他のデバイスクラスに関連する優先度(例えば、クラスまたはタイプの階層)を有していてもよい。
特に、このMacOS X Thunderbolt Audio Classドライバは、Thunderbolt Audio Classの各デバイスのリストを、例えば(i)音声用に利用可能な帯域幅、(ii)帯域幅全体、および/または(iii)消費される帯域幅といった、Thunderboltネットワークについての関連のパラメータと共に判定する。各Thunderboltデバイスは、記述子モデルを用いて自分の性能をMacOS X Thunderbolt Audio Classドライバに広告する。例えば、そのような一実施形態では、記述子は、音声デバイスのPCIeアクセス可能メモリの中のデータ構造である。音声デバイス操作の各種の態様は、MacOS X Thunderbolt Audio Classドライバによって、PCIeアクセス可能レジスタを介して制御することができる。
また、本発明の二次的な例示的な実施形態では、ThunderboltトランシーバのThunderbolt Time Management Unit(TMU)を用いて、また、音声サンプルクロック再構成の基礎として、デバイスレベルの時刻同期が行われる。Thunderbolt TMUは、すべてのThunderbolt音声デバイスに共通する非常に正確で精緻な時刻基準を提供するものだが、本発明と整合する他の時刻基準または基準ソースが用いられうることは理解されるであろう。例えば、Thunderbolt TMUの既存の実装では、デバイス同期をThunderboltネットワーク全体にわたって10ナノ秒(10ns)以内に維持することができる。
動作中、MacOS X Thunderbolt Audio Classドライバは、音声ソースデバイスを構成して、そのサンプルを指定の期限の前に別の宛先デバイスのバッファに書き込むことができる。同様に、その宛先デバイスは、期限が過ぎるまではサンプルを消費しないであろう。(TMUによって各デバイスで生成された)共有される時刻基準の精度は、非対称性について最小限考慮した上で、ソースデバイスも宛先デバイスもいずれも同じ時刻基準を使えることを保証するものである。加えて、Thunderboltネットワークの各デバイスは、バッファアンダーランおよびバッファオーバランを防ぎ、および/または、解決するため、1つ以上のサンプルバッファ(例えばデバイス自身のバッファおよび/またはピアデバイスのバッファ)を監視する。
最後に、本発明の一部の変形形態では、Thunderbolt TMUを用いて音声サンプルクロックを再構成し、それによって、同期され、再構成された高品質の音声クロック信号をネットワークの各デバイスにおいて提供する。
次に、本発明の2つの例示的実施形態についてより詳しく記述し、前述の原理をさらに説明する。
Native Host Interface(NHI)、User Transport Interface(UTI)
本発明の第1の例示的実施形態では、音声クラスデバイスに専用のConverged Input/Output(CIO)トンネルが割り振られる。各Thunderbolt Audio Classデバイスは、専用の音声クラスCIOトンネルに接続され、音声サンプルだけが、専用CIOトンネルを通って送信される。音声クラスCIOトンネルは優先的なトンネルなのだから、音声サンプルは、他のPCIeトラヒックに関係なく時間通りに宛先に到着することができる。そのような実施形態では、専用の音声クラスCIOトンネルは、Thunderbolt転送を介してNative Host Interface(NHI)/User Transport Interface(UTI)に実装される。ホストは、自分のNHIに書き込み、それが、Thunderboltネットワークを通って第1の周辺機器のUTIまでトンネリングし、第1の周辺機器のUTIがThunderboltネットワークを通って別のデバイスまで(例えば、第2の周辺機器のUTIまで、または逆にホストのNHIまで)トンネリングする。このようにして、各デバイスの任意の長い「リング」を作ることができる。ローカルホストプロセッサは、NHI DMAエンジンを構成してローカルホストプロセッサのシステムメモリとの間で音声データサンプルの読み/書きを行い、音声データサンプルは、次いで、リングネットワークを通ってトンネリングされる。
Thunderboltトランシーバの既存の実装は、UTIインタフェース毎に各方向に1つのCIOトンネルを提供するだけである。従って、既存のNHI/UTI実装には、複数の注目すべき制限がある。具体的には、単一のNHI/UTIインタフェースは、いわゆる「リング」トポロジの中の複数のデバイスにサービスできるだけであり、すなわち、各Thunderbolt Audio Classデバイスは、(たとえ自分のPCIeベースの制御接続が論理的にバスとして構成されていたとしても)音声サンプルを転送するため、1つのピアデバイスから読み取って1つのピアデバイスに書き込む。(各方向に2.5ギガ転送/秒(GT/s)で動作する)UTI信号ペアは、およそ1000個の48キロヘルツ(kHz)32ビット音声チャネルというリング毎の制限を設けてもよいが、それは単純な構成には十分であっても、複雑な構成になると瞬く間にあふれてしまう可能性がある。
利用シナリオによっては、リングトポロジが望ましい。例えば、リングトポロジは、各デバイスについて1つの着信パスと1つの発信パスとを消費するだけだから、比較的リソース効率が良い。もう1つの利点は、配信構造が単純である(すなわち、アドレス解決、バス競合等の必要がない)ため、Thunderbolt Audio Classデバイスは、パケットを(パケット全体を送信するのにかかる時間より少ない)非常な低レイテンシで通過させられるということである。
しかし、他の使用シナリオでは、リングトポロジは望ましくないことがあり、例えば、Thunderbolt Audio Classデバイスを通ったレイテンシは非常に小さくすること(0.1ミリ秒)ができても、(例えば、本発明の譲受人によって製造されるMacbook(商標)タイプのデバイスのような)他のタイプのデバイスを通ったレイテンシは、内部処理時間によって左右される可能性があるので、かなり長くなる(数ミリ秒)ことがある。リングトポロジは一方向性であるため、いずれかの2つのデバイス間の音声レイテンシは、音声サンプルデータがそのような長いレイテンシのデバイスを通って流れるのか否かに応じて著しく変動するであろう。また、レイテンシは、リングに参加するデバイスの数に応じて増大するであろうし、リングトラヒックは、デバイスがリングに追加されたりリングから削除されたりする度に中断されなければならない(トポロジが変更される度に新たなリングが形成されなければならない)。
他にも、NHI/UTI手法には、ネットワークのデバイスタイプに関連する制限がある。例えば、Macbookタイプのデバイスは、CIOパケットを送受信するのにThunderbolt NHI DMAエンジンを用いるであろう。DMA動作は、(システムメモリ内に)中間バッファの使用を必要とするが、それは、アプリケーションによっては望ましくない。
また、DMAシステムメモリは、トランザクションとしては「高価な」いわゆる「non−posted(非投函の)」PCIe readトランザクションを使ってアクセスされる。話が少し脇道に逸れるが、PCI Expressは、いわゆる「posted(通知される)」トランザクションと「non−posted(投函の)」トランザクションとをサポートする。PCIeでは、典型的なトランザクション(すなわち、non−posted readまたはwrite)は、完成Transaction Layer Packet(TLP)を使って確認応答が行われる。TLP完成パケットは、受信器(すなわち「完成器」)が要求を受信したことを送信器に対して確認するものである。read要求については、完成には、成功した場合には返信されたreadデータが、成功しなかった場合にはエラーステータスが含まれる。write要求については、完成には、成功した場合には受信の確認応答が、writeが成功しなかった場合にはエラーステータスが含まれる。対照的に、postedトランザクションは、(たとえトランザクションが成功しなくても)いかなる確認応答も提供しない。PCIeは、posted readをサポートしない。
しかし、NHI UTI手法の前述の制限は、(例えば、接続されるデバイスの数が少ないと予測される場合や、主にThunderbolt Audio Classデバイスが使用される場合など)実装シナリオによっては重要性が低いことがある。あるいは、デバイス技術の今後の進歩によって、そのような制限はまったくなくなる可能性もある(例えば、今後の進歩によって、補足的なUTIインタフェースが提供されたり、デバイスのレイテンシが改善されたりする場合など)。
PCI Express(PCIe)
本発明の第2の例示的実施形態では、各音声クラスデバイスが、ネットワークから受信されることになるすべての音声チャネルにメモリを割り振る。動作中、音声データは、PCIeトンネルを通って「プッシュ」され、すなわち、音声ストリームが、ソースデバイスによって宛先デバイスのメモリバッファに直接書き込まれる。一実装においては、writeトランザクションが「post」され、すなわち、宛先とソースデバイスとの間の確認応答転送を必要としない。一部の実施形態では、writeトランザクションはさらに、プログラムされたI/O(Direct Memory Access)を使って処理される。
このThunderbolt PCIe統合型アドレッシングモデルは、元々、ピアツーピア音声ルーティングをサポートすることができる。この機能によって、Thunderbolt PCIeデバイスは、Thunderboltネットワーク上のいかなる他のThunderbolt Audio Classデバイスにもアクセスすることができる。より一般的には、上記のリングトポロジとは異なり、Thunderboltネットワークを、いわゆる「ツリー」として物理的に構成することができ、これにより、(より直接的なルーティングを可能にする)論理的バスアドレッシングを使って、各PCIeデバイスをサポートすることができる。
また、前述のNHI/UTIのスキームとは異なり、この手法は専用のCIOリソースを必要としないので、既存のPCIe割当てを通してトンネルされてもよい。CIOリソースは、現行のデバイスの解決策では限られているが、一層の高性能が望まれる(かつ、CIOリソースが利用可能な)場合には、Thunderbolt Audio Classデバイスに、Thunderbolt PCIeツリーのうちの自らの高優先分岐を割り振ることもできる(すなわち、Thunderbolt Audio Classデバイスが、専用の論理的バスに接続される)。そのような実装が行われれば、特に、ピアツーピアのトランザクションの場合に、音声パケットが時間通りに宛先に到着する可能性は増えるであろう。
また、PCIe手法は、全面的にposted writeトランザクションを使って実行することができる。具体的には、前述のNHI UTIリングトポロジでは、各デバイスが依然として中間バッファへのPCIe readトランザクションと、中間バッファからのPCIe writeトランザクションとを実行することが必要となる。そのようなPCIe readトランザクションは、non−postedであり、すなわち、確認を必要とする。対照的に、(NHI/UTIを用いない)PCIe手法は、PCIe「posted」writeトランザクションを最大限に活用することができ、それによって、宛先デバイスからの応答が必要でないため、スループットが最大化され、レイテンシが最小化される。例えば、例示的なMacbookプロセッサは、Direct Memory Access(DMA)エンジンに関する中間バッファの使用を必要とせず、直接PCIeデバイスにサンプルを書き込むことができる。
方法
次に、本発明の一般的な方法についてより詳しく説明する。
本発明の一態様では、各デバイスが、各種の優先クラスをネットワークのピアデバイスに広告し、トンネルされるネットワークのピアデバイスの優先クラスを発見することができる。ネットワークトンネルによってサポートされる各種の優先クラスに、トンネルリソース(すなわち「中継」リソース)が割り振られる。
第2の態様では、トンネルされるネットワークの各デバイスが、1つ以上のパラメータを中継プロトコルから抽出し、各デバイスは、中継プロトコルパラメータからネットワークプロトコルパラメータを導出することができる。
次に図3を参照しながら、ネットワーク内に優先的なクラスのデバイスを実装するための方法300の例示的な一実施形態について説明する。一実施形態では、優先的なクラスはメディアタイプに基づいている。あるいは、優先的なクラスは、デバイスのアプリケーション、デバイスの性能、デバイスのタイプ等に基づいていてもよい。例えば、デバイスは、音声デバイスと非音声デバイスとに分類されてもよい。他の例では、デバイスは、(i)スループット、(ii)レイテンシ、(iii)異時性、(iv)等時性、および/または(v)信頼性に従って分類されてもよい(がそれらに限定されない)。別の例では、デバイスは、デバイスタイプ(例えば、ホストデバイス、スレーブデバイス、境界デバイス、ハブデバイス等)に従って分類されてもよい。
方法300のステップ302において、各デバイスは、トンネルされるネットワークについてのクラス発見を行う。例えば、例示的な一実施形態では、各デバイスが、ピアデバイスクラスを発見する(かまたは、別段の指定がない場合は1つ以上のデフォルトクラスを割り当てる)ように構成されたソフトウェアを実行する。デバイスは、自分の適切なデバイスクラスを、トンネルされるネットワークの他のデバイスに広告してもよい。あるいは、デバイスは、ピアデバイスにクエリを行って、それらのデバイスクラスを尋ねる。別の実装では、デバイスは、自分のデバイスクラスを中央ネットワークエンティティ(例えばネットワークマスタ、登録サービス等)に登録し、登録されたピアデバイスクラスを中央ネットワークエンティティから検索する。
例示的な一シナリオでは、各Thunderboltデバイスは、記述子モデルを用いて自分の性能を他のThunderboltデバイスに広告する。例えば、記述子は、ネットワークプロトコルを介してアクセス可能なデータ構造を含んでいてもよい。ネットワークプロトコルは、例えば、PCI Express(PCIe)であってもよい。例えば、デバイスは、Thunderboltプロトコルを介してアクセス可能なPCIeメモリの中の音声デバイスとして自分自身を識別してもよい。別のシナリオでは、1つ以上のデバイスが、ネットワーク管理エンティティであってもよく、例えば、MacOS X Thunderboltドライバが、中央ネットワークエンティティとして機能し、ネットワークについてのデバイス発見とデバイス管理とを行ってもよい。
ネットワークのすべてのデバイスが分類されると、結果として生じるデバイスおよびそれらの関連のクラスのリストが、ネットワークリストにコンパイルされ、各デバイス(またはその部分集合)に提供されてもよい。一部の実施形態では、ネットワークリストには、他の関連のパラメータ、例えば、利用可能な帯域幅全体、消費された帯域幅、帯域幅制限等が追加されてもよい。
方法300のステップ304で、1つ以上の中継リソースがネットワークの1つ以上の優先的なクラスに割り振られる。一実施形態では、ネットワークの1つ以上のクラスに専用中継リソースが割り振られる。中継リソースは、ネットワークトンネリングプロセスで用いられる物理リソースまたは仮想リソースであってよい。例えば、そのような一変形形態では、中継リソースは、論理パス、論理チャネル等を含んでいてもよい。他の場合では、中継リソースには、物理処理リソース(例えば、Direct Memory Access(DMA)等)、物理パス、物理チャネル等が含まれていてもよい。
また、データトラヒックが、例えば専用入力、メモリバッファ、専用出力のような物理リソースに割り振られてもよい。例えば、上記ですでに述べたとおり(Native Host Interface(NHI)、User Transport Interface(UTI)を参照)、音声データトラヒックが、NHI/UTI DMA物理リソースに割り振られてもよい。別の例では、上記ですでに述べたとおり(PCI Express(PCIe)を参照)、各デバイスが、内部システムメモリ内のPCIeアクセス可能メモリバッファを音声データトラヒックに割り振る。
方法300のステップ306において、優先的なトラヒックが、1つ以上の割り振られた中継リソースに従ってルーティングされる。
次に図4を参照しながら、中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法400の例示的な一実施形態について説明する。一実装において、時刻同期が、ネットワーク全体に配信される中継タイムスタンプパラメータから判定される。例えば、Thunderbolt Time Management Unit(TMU)は、音声サンプルクロック再構成のためにデバイスレベルの時刻同期を生成することができる。
方法400のステップ402において、各デバイスが、中継プロトコルパラメータを抽出する。中継プロトコルパラメータの一般例には、時刻、帯域幅、誤りチェック性能等が含まれるが、それらに限定されない。例示的な一実施形態では、各デバイスが、中継プロトコルからタイムスタンプを抽出する。別のそのような実施形態では、各デバイスが、中継ネットワークによってサポートされるネットワーク帯域幅全体を判定する。
特に注目すべきなのは、中継プロトコルが、実行されるアプリケーションやトンネルされるネットワークプロトコル等に関わらず、すべての接続されたデバイスによって共有されることである。例えば、Thunderboltネットワークのすべてのデバイスは、Thunderboltデバイスの内部時刻基準やアプリケーションソフトウェア等に関わらず、共通のThunderbolt時刻基準を共有するであろう。従って、底流を成す中継プロトコルは、有利には、Thunderbolt接続の各デバイスの動作を同期させるのに用いることができる。
ステップ404で、各デバイスは、少なくとも部分的に中継プロトコルパラメータに基づいて、ネットワークプロトコルパラメータを判定する。
話が少し脇道に逸れるが、Thunderboltトランシーバは、高度なTime Management Units(TMUs)を含んでおり、それらは、正確かつ精緻に、Thunderboltネットワーク時刻をThunderboltネットワーク上の各デバイスに伝達している。典型的な動作の間、Thunderboltネットワークのための同期マスタが選定される。同期マスタは、自分のネットワークセグメント上に常駐する各デバイスに同期情報を送信する。各デバイスは、同期情報に基づいてクロック基準をローカルに計算する。境界デバイスが、正確な時刻を他のセグメントに中継することによって、同期マスタ間の同期を可能にすることもできる。このようにして、ネットワーク全体を同期させて、許容誤差を微小化することができる。例えば、Thunderboltネットワークにおいては、いずれの2つのデバイスでも、時刻の差はわずか10ナノ秒(10ns)であろう。Thunderboltトランシーバは、Serial Time Link Protocol(STLP)と呼ばれる単純なワンワイヤのプロトコルを用いて、現在のThunderbolt時刻をプリント基板上の他のチップに伝達する。分散型ネットワーク全域でのそのような時刻同期のもう1つの例として、IEEE1588 Precision Time Protocol(PTP)がある(が、それに限定されない)。
本発明の例示的な一実施形態では、中継パラメータを用いてネットワークプロトコルパラメータが判定される。例えば、Thunderboltトランシーバでは、Thunderboltネットワーク時刻を用いてPCI Express(PCIe)ネットワークプロトコルについてのネットワーク時刻が判定される。代替的実施形態では、Thunderboltネットワーク時刻を用いてDisplayPort(DP)ネットワークプロトコルを同期させることができる。また、各デバイスは、利用可能な中継帯域幅に基づいて1つ以上のネットワークプロトコルパラメータを判定してもよい(例えば、サービス品質(QoS)、適切な符号化スキーム等)。
ステップ406では、各デバイスは、判定されたネットワークプロトコルに基づいて動作し、この場合、各デバイスについての判定されたネットワークプロトコルパラメータは、実質的に同様である。例えば、Thunderbolt動作の間、組み込まれたPCIeネットワークプロトコルは、導出されたネットワーク時刻を用いて、データの送信および/または受信をスケジュール化することができる。
また、本発明の一部の変形形態では、データ処理および/または消費を支援するのに、導出されたネットワーク時刻が用いられる。例えば、導出されたネットワーク時刻を、音声処理のための正確で精緻な時刻基準として用いることができる。そのような一実装において、導出された時刻基準は、音声データが適切な時刻にシステムメモリへの読み書きが行われることを保証する(バッファの読み取りが早すぎたり、バッファへの書き込みが遅すぎたりすると、望ましくないデータハザードが生じる可能性がある)。
他にも、導出された時刻基準についての一般的な用途には、すべての音声クロックが一致して動作することを保証するために音声サンプルクロックを測定することと、1つのデバイスから別のデバイスへの音声サンプルの転送をスケジュール化することと、音声サンプル転送のPCIe性能を監視することとが含まれるが、それらに限定されない。
例示的な装置
図5は、本発明の各種の方法および態様を実装するのに有用な装置500の例示的な実施形態を示す図である。図5の装置は、例えばデジタルシグナルプロセッサ、マイクロプロセッサ、フィールドプログラマブル論理アレー(FPGA)、または1つ以上の基板に取り付けられた複数の処理コンポーネントのような処理サブシステム502を備えている。また、処理サブシステムは、内部キャッシュメモリを備えていてもよい。処理サブシステムは、メモリを含むメモリサブシステム504と通信しており、メモリは、例えばSRAM、FlashおよびSDRAMコンポーネントを含んでいてもよい。メモリサブシステムは、当分野では周知であるように、データアクセスを容易にするために、1つ以上のDMAタイプのハードウェアを実装していてもよい。メモリサブシステムは、プロセッササブシステムによって実行可能な、コンピュータで実行可能な命令を含んでいる。
さらに、装置は、トンネル通信コントローラ506を含んでおり、これはエンドポイント間のデータトンネルを管理している。トンネル通信コントローラは、1つ以上のネットワークインタフェース510と動作可能に通信している。ネットワークインタフェースは、さらに、パケット化されたトラヒックを送信および/または受信するように構成される。一実施形態では、トンネル通信コントローラは、パケット化されたトラヒックをトンネルして、1つ以上のネットワークインタフェースから中継ネットワークを経由して配信するように構成される。トンネル通信コントローラは、パケットをインタリーブして、中継ネットワークを経て送信する。受信されたデータは、適切なパケットへとデインタリーブされて、適切なネットワークインタフェースへとルーティングされる。
通信コントローラ506は、さらに、マスタ時刻ベース508を追跡するように構成される。このマスタ時刻ベースは、例えば内部オシレータ回路(例えば、Voltage Controlled Temperature Controlled Crystal Oscillator(VCTCXO)等のような内部クロックから導出されてもよいし、あるいは、例えばSerial Time Link Protocol(STLP)、Global Positioning System(GPS)、IEEE Std.1588(Precision Time Protocol)等を提供するピアデバイスのような外部のデバイスまたはエンティティから報告されるかまたは受信されてもよい。
装置500の例示的な一実施形態では、1つ以上のネットワークインタフェース510には、少なくともPCI Express(PCIe)インタフェースとDisplayPortインタフェースとが含まれている。本発明に有用なその他のネットワークインタフェースの一般例には、Universal Serial Bus(USB)、FireWire(IEEE Std.1394)、Ethernet、High Definition Multimedia Interface(HDMI)、Digital Visual Interface(DVI)、およびDisplayPortが含まれるが、それらに限定されない。一部の変形形態では、1つ以上のネットワークインタフェースは、さらに、大規模なメモリ転送を実行するために、DMAタイプメモリおよび関連のDMAエンジンと共に使用されるように構成される。
上述したとおり、ネットワークプロトコルトラヒックは、中継ネットワーク経由で送信するためにパケット化される。パケット化されたデータは、データの不連続単位すなわちパケットとしてフォーマットされたデータである。各パケットは、少なくともルーティング情報とペイロードとを含んでいる。ルーティング情報は、例えば、ソースアドレス、宛先アドレス、誤り検出符号、およびシーケンス情報を提供する。また、所定のタイプのデータパケットは、プレゼンテーション情報を含んでいてもよく、例えば、メディアパケット(例えば音声データおよび動画データ)は、メディアが一定の順調な速度で再生されることを保証するため、関連の再生時間を有していてもよい。
本発明の一部の実施形態では、パケット化されたトラヒックは、信頼性について各種の保証を提供してもよいし、提供しなくてもよい。例えば、「non−posted」トランザクションは、明示的な確認応答(ACK)または否定応答(NAK)を提供し、「posted」トランザクションは、送信の成功または失敗に関するフィードバックをまったく提供しなくてもよい。
図5に戻ると、ユーザインタフェースサブシステム510は、処理サブシステム502に接続されており、キーパッドと、タッチスクリーン(例えば、マルチタッチインタフェース)と、音声/画像(AV)システムと、バックライトと、スピーカと、および/またはマイクロフォンとを含むがそれらに限定することなく、いかなる数の周知のI/Oを含んでいてもよい。しかし、理解されるであろうが、アプリケーションによっては、これらのコンポーネントの1つ以上が除かれることがある。
図6は、本発明の各種の方法および態様を実装する周辺機器600の1つの特定の(Thunderboltに基づく)実装を示す図である。図6の装置は、Thunderboltルータチップ604に接続された、フィールドプログラマブルゲートアレイ(FPGA)602を備えている。また、FPGAは、時刻生成論理606と音声コントローラ608とに接続されている。例示的な動作の間、フィールドプログラマブルゲートアレイ(FPGA)602は、STLPプロトコルを用いてローカルカウンタをThunderboltネットワーク時刻に同期させ、それによって、FPGA内の他の論理にタイミングサービスを提供する。このThunderbolt周辺機器宛の音声サンプルは、FPGAに接続されたRAM(random access memory)に所定の期限までにPCIeを介して書き込まれるであろう。期限が過ぎると、Thunderbolt音声コントローラ608は、サンプルをRAMから読み取って、それらをI2S出力に供給し、DA変換器を動作させる。IS(Integrated Interchip Sound(商標))インタフェースおよび関連のコンバータを動作させるための音声クロックが、Thunderbolt時刻とPCIeを介して受信したタイムスタンプとに基づいてクロックを生成するPLL(Phase Locked Loop)によって生成される。
同様に、ADCに接続されたISインタフェースは、音声PLLによって判定されるレートで作動してサンプルを生成し、サンプルは、Thunderbolt音声コントローラによってRAMに書き込まれるであろう。所定の時刻になると、コントローラは、PCIe接続を経て構成された宛先アドレスにサンプルを書き込むであろう。
図7は、同期された音声サンプルクロックをThunderbolt基準時刻から生成するための1つの具体的な解決策を示す図である。図のように、タイムスタンプがTMU702で受信され、PCIe物理レイヤ(PHY)704とクロック生成回路706とに配信される。PCIePHYは、基準時刻に基づいて、データが適切な時刻にメモリに書き込まれたり、メモリから読み出されたりすることを保証する。クロック生成回路はシステム時刻を用いて高精度のクロックを生成し、そのクロックを用いて音声データFIFOから音声信号が読み取られ、合成される。
理解されるであろうが、本発明の一部の態様は、方法のステップの特定のシーケンスに関して記述されているが、これらの記述は、本発明の方法を大まかに例示しているだけであって、具体的な応用例では必要に応じて修正されることがある。一部のステップは、状況によっては不要あるいは任意選択とされたりすることがある。また、一部のステップまたは機能性が、開示された実施形態に追加されたり、2つ以上のステップを実行する順序が変更されたりすることがある。そのような変更はすべて、本書で開示および請求が行われた本発明の中に包含されるとみなされる。
上記の詳述において、各種の実施形態に適用される本発明の新規の特徴を示し、記述し、指摘してきたが、例示されたデバイスまたはプロセスの形態および詳細における各種の省略、代用、および変更が、本発明から逸脱することなく当業者によって行われうることは、理解されるであろう。上記の記述は、本発明を実行するのに最も良いと現時点で考えられるやり方についてのものである。この記述は、決して限定することを意図されておらず、むしろ、本発明の一般原理を例示していると解釈されるべきである。本発明の範囲は、請求項に関して判定されるべきである。

Claims (18)

  1. ネットワーク内でデータトラヒックを優先させるための方法であって、
    ネットワークプロトコルを有するネットワーク内で1以上の優先クラスに関連付けられた1以上のデバイスを発見するステップと、
    前記発見に応えて、前記1以上の優先クラスに関連付けられた前記1以上のデバイスにより使用するための、前記ネットワークプロトコルとは異なる中継プロトコルの1以上の中継リソースを割り振るステップと、
    少なくとも所定の時間、前記1以上の優先クラスに関連付けられた前記1以上のデバイスのためのデータを、対応して割り振られた前記1以上の中継リソースを介してルーティングするステップと、
    を備え、
    前記データをルーティングするステップは、前記中継プロトコルの中に前記ネットワークプロトコルを組み込むステップを含み、
    少なくとも1つのネットワークプロトコルパラメータは、前記中継プロトコルの中継パラメータに少なくとも部分的に基づいて判定される
    ことを特徴とする方法。
  2. 前記1以上の優先クラスは、1以上のマルチメディアデータタイプに基づく
    ことを特徴とする請求項1に記載の方法。
  3. 前記1以上のマルチメディアデータタイプは、音声データを含む
    ことを特徴とする請求項2に記載の方法。
  4. 前記1以上の優先クラスは、1以上のデバイスタイプに基づく
    ことを特徴とする請求項1に記載の方法。
  5. 前記1以上のデバイスタイプは、音声デバイス及び/又は非音声デバイスを含む
    ことを特徴とする請求項4に記載の方法。
  6. 前記1以上の中継リソースは、ダイレクトメモリアクセス(DMA)物理リソースを含む
    ことを特徴とする請求項1に記載の方法。
  7. 前記DMA物理リソースは、Native Host Interface(NHI)を介してホストインタフェースに結合される
    ことを特徴とする請求項6に記載の方法。
  8. 前記DMA物理リソースは、User Transport Interface(UTI)を介して周辺機器インタフェースに結合される
    ことを特徴とする請求項6に記載の方法。
  9. 発見された前記1以上のデバイスの各々は、共通の時刻基準を共有する
    ことを特徴とする請求項1に記載の方法。
  10. ネットワーク内でデータトラヒックを優先させるように構成される装置であって、
    1以上のネットワークインタフェースと、
    前記1以上のネットワークインタフェースとデータ通信するプロセッサと、
    少なくとも1つのコンピュータプログラムを格納したコンピュータ可読記録媒体と、
    を備え、
    前記少なくとも1つのコンピュータプログラムは、前記プロセッサにおいて実行されると、
    ネットワーク内で1以上の優先クラスに関連付けられた1以上のピアデバイスを発見するステップと、
    前記発見に応えて、前記1以上の優先クラスに対して1以上の中継リソースを割り振るステップであって、前記割り振られた1以上の中継リソースは、前記1以上の優先クラスに関連付けられた前記1以上のピアデバイスのうちのいずれかから、前記装置内の対応する専用メモリバッファへ、ダイレクトメモリアクセス(DMA)物理リソースを介してデータをルーティングするように構成される、ステップと、
    前記1以上の優先クラスに関連付けられた前記1以上のピアデバイスから、データを、対応して割り振られた前記1以上の中継リソースを介して選択的にルーティングするステップと、
    を実行するように構成される
    ことを特徴とする装置。
  11. 前記1以上のネットワークインタフェースは、Thunderbolt準拠のネットワークインタフェースを含む
    ことを特徴とする請求項10に記載の装置。
  12. 前記1以上のネットワークインタフェースは、Peripheral Component Interconnect Express(PCIe)準拠のネットワークインタフェースを含む
    ことを特徴とする請求項10に記載の装置。
  13. 前記1以上のネットワークインタフェースは、DisplayPort準拠のネットワークインタフェースを含む
    ことを特徴とする請求項10に記載の装置。
  14. ネットワーク内でデバイスの優先クラスを実装する方法であって、
    リングネットワーク内で1以上のデバイスのクラス発見を実行するステップであって、前記リングネットワーク内の前記1以上のデバイスの各々は、1つの着信パス及び1つの発信パスだけにより特徴付けられている、ステップと、
    前記実行されたクラス発見に応えて、前記リングネットワークの1以上の中継リソースを構成するステップであって、前記リングネットワークの前記構成された1以上の中継リソースの少なくとも一部は、前記実行されたクラス発見により識別される前記発見されたクラスの少なくとも一部に関連付けられた前記1以上のデバイスのうちのいずれかのためのトラヒックをルーティングするために割り振られる、ステップと、
    前記リングネットワークの前記構成された1以上の中継リソースに従って、前記1以上のデバイスからトラヒックをルーティングするステップと、
    を備えることを特徴とする方法。
  15. 前記発見されたクラスの前記少なくとも一部を優先させるステップを更に備える
    ことを特徴とする請求項14に記載の方法。
  16. 前記構成するステップは、前記優先させるステップに少なくとも部分的に基づく
    ことを特徴とする請求項15に記載の方法。
  17. 前記優先させるステップは、前記1以上のデバイスのデバイスタイプに基づく
    ことを特徴とする請求項16に記載の方法。
  18. 前記クラス発見は、中央ネットワークエンティティに登録している前記1以上のデバイスにより少なくとも部分的に実行される
    ことを特徴とする請求項14に記載の方法。
JP2014509418A 2011-05-02 2012-05-02 ネットワークトンネルを通してデータを転送するための方法および装置 Active JP5918849B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161481641P 2011-05-02 2011-05-02
US61/481,641 2011-05-02
US13/462,603 US9015384B2 (en) 2011-05-02 2012-05-02 Methods and apparatus for transporting data through network tunnels
PCT/US2012/036192 WO2012151327A2 (en) 2011-05-02 2012-05-02 Methods and apparatus for transporting data through network tunnels
US13/462,603 2012-05-02

Publications (2)

Publication Number Publication Date
JP2014517588A JP2014517588A (ja) 2014-07-17
JP5918849B2 true JP5918849B2 (ja) 2016-05-18

Family

ID=47091025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014509418A Active JP5918849B2 (ja) 2011-05-02 2012-05-02 ネットワークトンネルを通してデータを転送するための方法および装置

Country Status (7)

Country Link
US (1) US9015384B2 (ja)
EP (1) EP2705634B1 (ja)
JP (1) JP5918849B2 (ja)
KR (1) KR101576344B1 (ja)
CN (1) CN103891223B (ja)
AU (1) AU2012250760B2 (ja)
WO (1) WO2012151327A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9117037B2 (en) * 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
MY169836A (en) * 2011-12-06 2019-05-16 Intel Corp Techniques for serial interface charging
US9697159B2 (en) * 2011-12-27 2017-07-04 Intel Corporation Multi-protocol I/O interconnect time synchronization
US9252970B2 (en) * 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
TW201405315A (zh) * 2012-07-30 2014-02-01 Acer Inc 支援雙主控裝置的資料路由系統
TWI465919B (zh) * 2012-11-14 2014-12-21 Acer Inc 採用雷霆介面之電子裝置、其連接方法及底座設備
CN103853511B (zh) * 2012-12-04 2017-02-15 宏碁股份有限公司 采用霹雳接口的电子装置、其连接方法及底座设备
US10003642B2 (en) 2013-06-28 2018-06-19 Apple Inc. Operating a cluster of peer-to-peer devices
US9558129B2 (en) * 2014-06-10 2017-01-31 Xilinx, Inc. Circuits for and methods of enabling the access to data
US9672183B2 (en) * 2014-12-01 2017-06-06 Western Digital Technologies, Inc. Integration of downstream ports in a multiple interface device
TWM516186U (zh) * 2015-08-10 2016-01-21 宏正自動科技股份有限公司 雷電分享控制裝置
US10170304B1 (en) 2017-10-25 2019-01-01 Globalfoundries Inc. Self-aligned nanotube structures
US11132319B2 (en) * 2018-01-12 2021-09-28 Intel Corporation Timer control for peripheral component interconnect express components implemented with thunderbolt controllers
US10795400B2 (en) 2018-04-30 2020-10-06 Qualcomm Incorporated Time synchronization for clocks separated by a communication link
US11259058B2 (en) * 2019-03-25 2022-02-22 Apple Inc. Use of rendered media to assess delays in media distribution systems
US20200192832A1 (en) * 2020-02-21 2020-06-18 Intel Corporation Influencing processor governance based on serial bus converged io connection management
US11831943B2 (en) * 2021-10-26 2023-11-28 Apple Inc. Synchronized playback of media content
US11785285B1 (en) * 2022-05-20 2023-10-10 Lenbrook Industries Limited Audio video receiver (AVR) architecture

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07327032A (ja) * 1994-05-31 1995-12-12 Matsushita Electric Ind Co Ltd 送信装置と受信装置
JP3546799B2 (ja) * 1994-07-25 2004-07-28 ソニー株式会社 データ送受信装置
JP3203978B2 (ja) 1994-07-25 2001-09-04 ソニー株式会社 データ送受信装置、データ受信装置及びデータ送信装置
JP2000196607A (ja) 1998-12-24 2000-07-14 Canon Inc 情報処理システム及びその制御方法並びに情報処理装置
KR100943742B1 (ko) * 2003-06-03 2010-02-23 삼성전자주식회사 Usb 트랜잭션을 무선 pan 상에서 전송하는 장치 및방법
JP4878185B2 (ja) * 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
US7859998B2 (en) * 2007-06-18 2010-12-28 Sharp Laboratories Of America, Inc. System and method for managing pre-emption of quality of service (QoS) allocations in a network
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
JP2009272912A (ja) * 2008-05-08 2009-11-19 Fujitsu Ltd Ipデータ処理装置
ES2355227B1 (es) 2009-02-23 2012-02-10 Vodafone España, S.A.U. Método para proporcionar control automático de acceso a celdas, para usuarios móviles de alta prioridad en situaciones de sobrecarga y emergencia.

Also Published As

Publication number Publication date
JP2014517588A (ja) 2014-07-17
WO2012151327A2 (en) 2012-11-08
US9015384B2 (en) 2015-04-21
WO2012151327A3 (en) 2013-03-21
KR101576344B1 (ko) 2015-12-09
AU2012250760B2 (en) 2015-11-05
AU2012250760A1 (en) 2013-10-31
CN103891223A (zh) 2014-06-25
US20120284434A1 (en) 2012-11-08
CN103891223B (zh) 2016-10-12
KR20140018368A (ko) 2014-02-12
EP2705634A2 (en) 2014-03-12
EP2705634B1 (en) 2019-10-16

Similar Documents

Publication Publication Date Title
JP5918849B2 (ja) ネットワークトンネルを通してデータを転送するための方法および装置
US11695708B2 (en) Deterministic real time multi protocol heterogeneous packet based transport
US8718065B2 (en) Transmission using multiple physical interface
US10248615B2 (en) Distributed processing in a network
TWI526024B (zh) 在一網路內用於等時資料遞送之方法及裝置
WO2015196685A1 (zh) 时钟同步方法及装置
US11792446B2 (en) Methods and apparatus to reduce audio streaming latency between audio and gigabit ethernet subsystems
Zinner et al. Application and realization of gateways between conventional automotive and IP/Ethernet-based networks
JP5930430B2 (ja) ポートのない汎用デバイス(ソフトウェアにより管理される汎用デバイス)
US7006533B2 (en) Method and apparatus for hublink read return streaming
JP2018520434A (ja) Usb2.0帯域幅予約のための方法およびシステム
US10459864B2 (en) USB isochronous transfer over a non-USB network
US20230388251A1 (en) Tightly-Coupled, Loosely Connected Heterogeneous Packet Based Transport
US8555104B2 (en) Frequency adapter utilized in high-speed internal buses
US9049041B2 (en) Method and system for distributed initiation of USB over network data plane connections
US11625353B1 (en) Prioritized parallel to serial interface
JPH11177591A (ja) 伝送媒体接続装置、伝送媒体接続制御装置、動作周期生成装置、および記録媒体
US9059865B2 (en) USB host adaptor for initiating a USB connection over a non-USB network
KR20100137326A (ko) 버스 시스템 및 그 제어 장치
US8578061B2 (en) Method and system for USB addressing by a network adaptor
US9059864B2 (en) USB device adaptor for initiating a USB connection over a non-USB network

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160112

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160408

R150 Certificate of patent or registration of utility model

Ref document number: 5918849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250