(57)【特許請求の範囲】
【請求項１】
ネットワーク内でデータトラヒックを優先させるための方法であって、
ネットワークプロトコルを有するネットワーク内で１以上の優先クラスに関連付けられた１以上のデバイスを発見するステップと、
前記発見に応えて、前記１以上の優先クラスに関連付けられた前記１以上のデバイスにより使用するための、前記ネットワークプロトコルとは異なる中継プロトコルの１以上の中継リソースを割り振るステップと、
少なくとも所定の時間、前記１以上の優先クラスに関連付けられた前記１以上のデバイスのためのデータを、対応して割り振られた前記１以上の中継リソースを介してルーティングするステップと、
を備え、
前記データをルーティングするステップは、前記中継プロトコルの中に前記ネットワークプロトコルを組み込むステップを含み、
少なくとも１つのネットワークプロトコルパラメータは、前記中継プロトコルの中継パラメータに少なくとも部分的に基づいて判定される
ことを特徴とする方法。
【請求項２】
前記１以上の優先クラスは、１以上のマルチメディアデータタイプに基づく
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記１以上のマルチメディアデータタイプは、音声データを含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記１以上の優先クラスは、１以上のデバイスタイプに基づく
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記１以上のデバイスタイプは、音声デバイス及び／又は非音声デバイスを含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記１以上の中継リソースは、ダイレクトメモリアクセス（ＤＭＡ）物理リソースを含む
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記ＤＭＡ物理リソースは、Ｎａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）を介してホストインタフェースに結合される
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記ＤＭＡ物理リソースは、Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）を介して周辺機器インタフェースに結合される
ことを特徴とする請求項６に記載の方法。
【請求項９】
発見された前記１以上のデバイスの各々は、共通の時刻基準を共有する
ことを特徴とする請求項１に記載の方法。
【請求項１０】
ネットワーク内でデータトラヒックを優先させるように構成される装置であって、
１以上のネットワークインタフェースと、
前記１以上のネットワークインタフェースとデータ通信するプロセッサと、
少なくとも１つのコンピュータプログラムを格納したコンピュータ可読記録媒体と、
を備え、
前記少なくとも１つのコンピュータプログラムは、前記プロセッサにおいて実行されると、
ネットワーク内で１以上の優先クラスに関連付けられた１以上のピアデバイスを発見するステップと、
前記発見に応えて、前記１以上の優先クラスに対して１以上の中継リソースを割り振るステップであって、前記割り振られた１以上の中継リソースは、前記１以上の優先クラスに関連付けられた前記１以上のピアデバイスのうちのいずれかから、前記装置内の対応する専用メモリバッファへ、ダイレクトメモリアクセス（ＤＭＡ）物理リソースを介してデータをルーティングするように構成される、ステップと、
前記１以上の優先クラスに関連付けられた前記１以上のピアデバイスから、データを、対応して割り振られた前記１以上の中継リソースを介して選択的にルーティングするステップと、
を実行するように構成される
ことを特徴とする装置。
【請求項１１】
前記１以上のネットワークインタフェースは、Ｔｈｕｎｄｅｒｂｏｌｔ準拠のネットワークインタフェースを含む
ことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記１以上のネットワークインタフェースは、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）準拠のネットワークインタフェースを含む
ことを特徴とする請求項１０に記載の装置。
【請求項１３】
前記１以上のネットワークインタフェースは、ＤｉｓｐｌａｙＰｏｒｔ準拠のネットワークインタフェースを含む
ことを特徴とする請求項１０に記載の装置。
【請求項１４】
ネットワーク内でデバイスの優先クラスを実装する方法であって、
リングネットワーク内で１以上のデバイスのクラス発見を実行するステップであって、前記リングネットワーク内の前記１以上のデバイスの各々は、１つの着信パス及び１つの発信パスだけにより特徴付けられている、ステップと、
前記実行されたクラス発見に応えて、前記リングネットワークの１以上の中継リソースを構成するステップであって、前記リングネットワークの前記構成された１以上の中継リソースの少なくとも一部は、前記実行されたクラス発見により識別される前記発見されたクラスの少なくとも一部に関連付けられた前記１以上のデバイスのうちのいずれかのためのトラヒックをルーティングするために割り振られる、ステップと、
前記リングネットワークの前記構成された１以上の中継リソースに従って、前記１以上のデバイスからトラヒックをルーティングするステップと、
を備えることを特徴とする方法。
【請求項１５】
前記発見されたクラスの前記少なくとも一部を優先させるステップを更に備える
ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記構成するステップは、前記優先させるステップに少なくとも部分的に基づく
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記優先させるステップは、前記１以上のデバイスのデバイスタイプに基づく
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記クラス発見は、中央ネットワークエンティティに登録している前記１以上のデバイスにより少なくとも部分的に実行される
ことを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権］
本願は、２０１１年５月２日に出願された「ネットワークトンネルを通してデータを転送するための方法および装置」という名称の同時係属の米国仮特許出願第６１／４８１，６４１号に対する優先権を主張する、２０１２年５月２日に本願と共に同時に出願された同じ名称の米国特許出願第１３／４６２，６０３号に対する優先権を主張するものであり、上記を全体として参照により本願に援用する。
【０００２】
［技術分野］
本発明は、一般に、コンピュータ制御のデバイス、ネットワーク、およびバスに関する。詳細には、例示する一態様において、本発明は、ネットワークトンネルを通してデータを効率的に転送することを対象とする。
【背景技術】
【０００３】
データネットワーキングの文脈において、「トンネル」とは、（中継ネットワークすなわちベアラネットワークに固有の）中継プロトコルの中に（ネットワーク化された諸要素（エレメント）によって共有される）ネットワークプロトコルを組み込んだ、ネットワーク化された諸要素間のネットワーク通信チャネルのことである。トンネリングは、物理的に結合できないサブネットワーク間を論理的に接続するのによく利用される。例えば、プライベートネットワーク同士が公衆ネットワークを通してセキュアなトンネルを確立し、共用の仮想プライベートネットワークを構築することができる。また、トンネリングは、複数のネットワークプロトコルを共通の転送に組み込むことにも利用される。例えば、初期のＴｈｕｎｄｅｒｂｏｌｔ（商標）高速データバスは、ＰＣＩ−Ｅｘｐｒｅｓｓ（商標）（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）およびＤｉｓｐｌａｙＰｏｒｔ（商標）のデータを単一のコスト効率の良いインタフェースを介して同時にサポートすることができる。
【０００４】
Ｔｈｕｎｄｅｒｂｏｌｔインタフェースの現行の実装は、単一のシリアルデータインタフェースの中で、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）トンネルと、ＤｉｓｐｌａｙＰｏｒｔ（ＤＰ）トンネルと、汎用のＮａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）／Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）トンネルとを提供している。動作中には、ＰＣＩｅストリームとＤＰストリームとがＴｈｕｎｄｅｒｂｏｌｔパケットへとパケット化されて転送される。それらのパケットは一緒にインタリーブされて、共用のＴｈｕｎｄｅｒｂｏｌｔ接続を介して送信され、次いで、受信器で、それらの個々の構成ストリームへとデインタリーブされる。ＰＣＩｅデータストリームもＤＰデータストリームもいずれも送信中は変更されないため、結果として生じるストリームは元々、既存のＰＣＩ  ＥｘｐｒｅｓｓおよびＤｉｓｐｌａｙＰｏｒｔのハードウェアおよびソフトウェアと互換性がある。
【０００５】
しかし、周知のとおり、各バスプロトコルの性能と機能性とは多種多様である。例えば、ＰＣＩｅは、所与のデータストリームについて帯域幅を予約する方途を提供していない。その代わり、ＰＣＩｅの仕様はトラヒックのクラスと仮想チャネルとを定義しており、それらを用いて、典型的なＰＣＩｅシステムの範囲内でトランザクションを優先させることができる。残念ながら、これらの性能は現行のＴｈｕｎｄｅｒｂｏｌｔ解決策には含まれておらず、既存のＴｈｕｎｄｅｒｂｏｌｔトランシーバは、ＰＣＩｅプロトコルの範囲内で用いられる仮想チャネルもトラヒッククラスもサポートしていない。その代わり、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバは、Ｃｏｎｖｅｒｇｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（ＣＩＯ）レイヤでトラヒックを優先させることが出来るだけである（本書では、Ｃｏｎｖｅｒｇｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（ＣＩＯ）プロトコルとは、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバ用の中継プロトコルである）。例えば、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバは、ＤＰトラヒックをＰＣＩｅトラヒックより優先させることが出来るだけである。
【０００６】
さらに、Ｔｈｕｎｄｅｒｂｏｌｔのホットプラグ可能な転送は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイスやＦｉｒｅＷｉｒｅ（商標）デバイスと同様の、一般的でユビキタスなハードウェアインタフェースおよびソフトウェアインタフェースを提供することが理想であろう。これらの目的を達するために、現行の研究は、Ｔｈｕｎｄｅｒｂｏｌｔデバイス用の特別なデバイスドライバの使用を最小限に抑えて、顧客にも開発者にも同様に「透明（トランスペアレント）な」操作を提供することを目指している。
【０００７】
従って、Ｔｈｕｎｄｅｒｂｏｌｔ転送技術と共に用いるために、トンネルされるＰＣＩｅストリームの範囲内で所定のタイプのトラヒックを優先させるための解決策が必要である。理想的には、そのような解決策は、特別なソフトウェア構成またはハードウェア構成を必要とせず、効果的にユーザに透明であるべきである。より一般的には、トンネルされるデータネットワークの範囲内で所定のプロトコル固有の性能を可能にするような解決策が必要である。
【発明の概要】
【０００８】
本発明は、特に、ネットワークトンネルを通してデータを効率的に転送するための方法および装置を提供することによって前述の必要性を満たすものである。
【０００９】
本発明の一態様において、ネットワーク内に優先的なデバイスクラスを実装するための方法を開示する。一実施形態では、この方法は、ネットワーク内で１つ以上のデバイスクラスを発見することと、その１つ以上のデバイスクラスに１つ以上のリソースを割り振ることと、その１つ以上の発見されたデバイスクラスからのデータトラヒックをその１つ以上の割り振られた中継リソースに従ってルーティングすることとを含んでいる。
【００１０】
本発明の第２の態様において、中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法を開示する。一実施形態では、この方法は、中継パラメータを抽出することと、抽出された中継パラメータに少なくとも部分的に基づいてネットワークパラメータを判定することと、判定されたネットワークプロトコルパラメータに少なくとも部分的に基づいて動作することとを含んでいる。
【００１１】
本発明の第３の態様において、コンピュータ可読記憶装置を開示する。一実施形態では、この装置は、少なくとも１つのコンピュータプログラムがそこに記憶された記憶媒体を含んでいる。その少なくとも１つのプログラムは、実行された場合には、（ｉ）１つ以上のデバイスクラスを発見し、（ｉｉ）発見された１つ以上のデバイスクラスのうちの少なくとも１つに１つ以上の中継リソースを割り振り、および／または、（ｉｉｉ）１つ以上の割り振られた中継リソースに従ってデータをルーティングするように構成されている。
【００１２】
別の実施形態では、その少なくとも１つのプログラムは、実行された場合には、（ｉ）中継パラメータを抽出し、（ｉｉ）その抽出された中継パラメータからネットワークパラメータを判定し、および／または、（ｉｉｉ）判定されたネットワークパラメータに従って動作するように構成されている。
【００１３】
本発明の第４の態様において、１つ以上のトンネルされるストリームを持つ１つ以上のタイプのトラヒックを優先させるように構成されたコンピュータ制御の装置を開示する。一実施形態では、この装置はコンピュータを備えており、それらのトンネルされるストリームは、Ｔｈｕｎｄｅｒｂｏｌｔインタフェースを跨いでトンネルされる。
【００１４】
本発明の第５の態様において、１つ以上のトンネルされるストリームを持つ１つ以上のタイプのトラヒックを転送するためのシステムを開示する。一実施形態では、このシステムは、送信デバイスと、受信デバイスと、間に挿入された少なくとも１つのベアラ媒体とを備えている。
【００１５】
本発明の第６の態様において、ネットワーク内でデータトラヒックを優先させる方法を開示する。一実施形態では、この方法は、１つ以上の優先的なクラスに関連する１つ以上のデバイスをネットワーク内で発見することと、その１つ以上の優先的なクラスに１つ以上の中継リソースを割り振ることと、その１つ以上の優先的なクラスに関連するデータだけをその対応する割り振られた１つ以上の中継リソースを経てルーティングすることとを含んでいる。
【００１６】
一変形形態では、その１つ以上の優先的なクラスは、１つ以上のマルチメディアデータタイプに基づいている。例えば、その１つ以上のマルチメディアデータタイプには、音声データが含まれてもよい。別のそのような変形形態では、その１つ以上の優先的なクラスは、デバイスタイプに基づいている。例えば、その１つ以上のデバイスタイプには、音声デバイスおよび非音声デバイスが含まれていてもよい。別の変形形態では、その１つ以上の送信リソースには、ダイレクトメモリアクセス（ＤＭＡ）物理リソースが含まれる。例えば、ＤＭＡ物理リソースは、Ｎａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）を介してホストインタフェースに接続されるか、または代わりに、ＤＭＡ物理リソースは、Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）を介して周辺機器のインタフェースに接続される。
【００１７】
別の変形形態では、１つ以上の発見されたデバイスの各々が、共通の時刻基準を共有する。
【００１８】
本発明の第７の態様において、ネットワーク内でデータトラヒックを優先させるように構成された装置を開示する。一実施形態では、この装置は、１つ以上のネットワークインタフェースと、プロセッサと、そこに記憶された少なくとも１つのコンピュータプログラムを含む非一時的なコンピュータ可読媒体であって、その少なくとも１つのコンピュータプログラムがプロセッサ上で実行された場合には、ネットワーク内で１つ以上の優先的なクラスに関連する１つ以上のピアデバイスを発見し、その１つ以上の優先的なクラスに１つ以上の中継リソースを割り振り、そして、１つ以上の優先的なクラスに関連するデータだけをその対応する割り振られた１つ以上の中継リソースを経てルーティングするように構成された少なくとも１つのコンピュータプログラムを含む非一時的なコンピュータ可読媒体とを含んでいる。
【００１９】
一変形形態では、その１つ以上のネットワークインタフェースには、Ｔｈｕｎｄｅｒｂｏｌｔ対応のネットワークインタフェースが含まれる。または代わりに、その１つ以上のネットワークインタフェースには、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）対応のネットワークインタフェースが含まれる。別の変形形態では、その１つ以上のネットワークインタフェースには、ＤｉｓｐｌａｙＰｏｒｔ対応のネットワークインタフェースが含まれる。
【００２０】
一変形形態では、その１つ以上の送信リソースには、ダイレクトメモリアクセス（ＤＭＡ）物理リソースが含まれる。別の変形形態では、その１つ以上の送信リソースには、専用のメモリバッファが含まれる。
【００２１】
本発明の第８の態様において、優先的なクラスのデバイスをネットワーク内に実装するためのシステムを開示する。一実施形態では、この方法は、ネットワークの１つ以上のデバイスについて同期マスタデバイスを決定することと、その同期マスタデバイスによって提供される同期情報に基づいて時刻基準を導出することと、１つ以上のデバイスによってサポートされるデータタイプに１つ以上の中継リソースを割り振ることとを含んでおり、ここで１つ以上の中継リソースは、導出された時刻基準に同期している。
【００２２】
一変形形態では、ネットワークは、複数の同期マスタデバイスを含んでおり、ここで各同期マスタデバイスは、ネットワークセグメントに関連付けられている。そのような一システムでは、それらの複数の同期マスタデバイスは、１つ以上の境界デバイスを介して同期情報を中継する。
【００２３】
一変形形態では、ネットワークは、１つ以上のＴｈｕｎｄｅｒｂｏｌｔ対応のデバイスを含んでいる。
【００２４】
別の変形形態では、１つ以上の送信リソースには、ダイレクトメモリアクセス（ＤＭＡ）物理リソースが含まれる。
【００２５】
本発明のその他の特徴および利点は、当業者であれは、添付図面および以下の例示的な実施形態の詳細記述を参照すれば即座に認識するであろう。
【図面の簡単な説明】
【００２６】
【図１】例示的な先行技術のＴｈｕｎｄｅｒｂｏｌｔ（商標）トランシーバデバイスを示す機能ブロック図である。
【図２】図１の先行技術のＴｈｕｎｄｅｒｂｏｌｔ（商標）トランシーバデバイスの複数の接続性性能に関わる１つの例示的な使用シナリオを示す機能ブロック図である。
【図３】本発明に従って優先的なクラスのデバイスをネットワーク内に実装するための方法の例示的な一実施形態の論理的フロー図である。
【図４】本発明に従って中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法の例示的な一実施形態の論理的フロー図である。
【図５】本発明の各種の方法および態様を実装するのに有用なコンピュータ制御の装置の例示的な一実施形態を示す図である。
【図６】本発明によるＴｈｕｎｄｅｒｂｏｌｔ（商標）トランシーバデバイスの、実装に特化した一実施形態を示すブロック図である。
【図７】図６のＴｈｕｎｄｅｒｂｏｌｔデバイスによって提供される基準時刻から同期された音声サンプルクロックを生成するのに有用な装置の例示的な一実施形態を示すブロック図である。
【発明を実施するための形態】
【００２７】
これから図面を参照するが、類似した番号は全体にわたって類似した部分を表す。
【００２８】
概要
本発明は、特に、ネットワークトンネルを通してデータを効率的に転送するための方法および装置を提供するものである。本発明の例示的な一実施形態は、Ｔｈｕｎｄｅｒｂｏｌｔ対応ネットワークを経て配信する際に第１のタイプのトラヒック（例えば音声トラヒック）を他のタイプ（非音声トラヒック）より優先させるように構成される。本明細書で詳細に説明するとおり、Ｔｈｕｎｄｅｒｂｏｌｔデバイスは、音声性能をネットワークのピアデバイスに広告(advertise)し、またピアデバイスの音声性能を発見することになる。
【００２９】
本発明の第２の実施形態では、Ｔｈｕｎｄｅｒｂｏｌｔネットワークに関連する各音声デバイスは、Ｔｈｕｎｄｅｒｂｏｌｔ時刻管理ユニット（ＴＭＵ）を利用してネットワークの同期を提供し、それによって音声の再構築とネットワークを通じた音声データの伝搬が改良される。ＴｈｕｎｄｅｒｂｏｌｔのＴＭＵは、すべてのＴｈｕｎｄｅｒｂｏｌｔ音声デバイスに共通の非常に正確で精緻な時刻基準を提供する。
【００３０】
例示的な実施形態の詳細な説明
次に、本発明の例示的な実施形態について、より詳細に記述する。これらの実施形態は、主に既存のＴｈｕｎｄｅｒｂｏｌｔ（商標）高速データバスならびにＰＣＩ−Ｅｘｐｒｅｓｓ（商標）（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）プロトコルおよびＤｉｓｐｌａｙＰｏｒｔ（商標）プロトコルに関して論じてはいるが、当業者であれば、本発明は前述の技術またはプロトコルに決して限定されないことが分かるであろう。実際、本発明の各種の態様は、１つ以上の転送技術で１つ以上のネットワークプロトコルをトンネリングさせることの可能ないかなるネットワーク内での使用にも適合することができる。
【００３１】
同様に、下記の議論は、音声データおよび音声データネットワークに関して提示されているが、当業者であれば、本発明は音声データに決して限定されないことが分かるであろう。実際、本発明の各種の態様は、他のデータに優先させうるいかなるデータタイプでの使用にも適合することができる。一般的な例には、マルチメディアデータ（例えば音声データ、動画像データ等）、アプリケーション特有のデータ、およびリアルタイムデータが含まれる。
【００３２】
本明細書では、「ネットワーク」という用語は、制限することなく、データをパケットと呼ばれる適切な大きさのグループに分けて転送するように構成されたいずれかのネットワークまたは装置のことを言う。パケットネットワークは、（パケットのシーケンスで構成される）データのストリームを一群のデバイスに配信することができる。転送の間、パケットは、バッファリングされて待ち行列に入れられ、ネットワーク内のトラヒック負荷に応じて変動性の遅延やスループットを経験することがある。パケットベースのネットワークの一般的な例には、インターネット（すなわち、世界的な相互接続コンピュータネットワークシステム）、および民間のインターネットやイントラネットなどが含まれる。
【００３３】
本明細書では、「ソース」という用語は、制限することなく、パケットベースのネットワークを介して転送するための情報をパケット化するように構成されたデバイスまたはインタフェースのことを言う。「宛先」、「目標」および／または「シンク」という用語は、制限することなく、パケットから情報を抽出するように構成されたデバイスまたはインタフェースのことを言う。
【００３４】
また、「エンドポイント」という用語は、一般に、かつ制限することなく、デバイス間の通信フローにおける情報の「ソース」および／または「宛先」であるデバイスの一部分のことを言う。同様に、本明細書では、「ノード」とは、制限することなく、パケットを受け取ったり、別のデバイスへパケットを転送したりするデバイスのことを言う。
【００３５】
これらの定義は、決して、限定していると解釈されるべきではなく、例えば、クライアントデバイスまたはその他のエンティティは、ネットワーク内の論理的または物理的「エンドポイント」および／または「ノード」を含んでいてもよいし、含まなくてもよい。
【００３６】
さらに理解されるであろうが、デバイスは、ソース、宛先およびノードの機能性を同時に実装してもよい（そして一般的にはそうである）のであって、前述の区別は、本発明の各種の態様を明確にするためだけに行われる。
【００３７】
さらに、一部の実施形態は、有線データバスすなわち有線接続の文脈で示されているが、本発明は、無線の選択肢またはインタフェース、例えば、ＩＥＥＥ  Ｓｔｄ．８０２．１１ワイヤレスネットワークのようなＷＬＡＮ、ＩＥＥＥ  Ｓｔｄ．８０２．１６ワイヤレスネットワークのようなＷＭＡＮ、パーソナルエリアネットワーク（ＰＡＮ）、Ｂｌｕｅｔｏｏｔｈ（商標）、赤外線、光通信リンクにも、制限することなく、等しく適用可能である。
【００３８】
例示的な先行技術のＴｈｕｎｄｅｒｂｏｌｔ（商標）トランシーバ
図１は、本発明の各種の態様と共に使用しうる例示的な先行技術によるＴｈｕｎｄｅｒｂｏｌｔトランシーバ１００を示す図である。図のように、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバは、（ｉ）１つ以上のＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）インタフェースと、（ｉｉ）１つ以上のＤｉｓｐｌａｙＰｏｒｔ（ＤＰ）インタフェースと、（ｉｉｉ）１つ以上のＴｈｕｎｄｅｒｂｏｌｔインタフェースと、（ｉｖ）１つ以上のＵｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）と、（ｖ）ＰＣＩｅスイッチと、（ｖｉ）Ｎａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）と、（ｖｉｉ）Ｔｈｕｎｄｅｒｂｏｌｔスイッチとを備えている。Ｔｈｕｎｄｅｒｂｏｌｔトランシーバの現行の実装は、ＤＰインタフェースをＤＰデータだけに限定しており、他のすべてのトラヒックはＰＣＩｅデータとして処理される。
【００３９】
動作中、ＮＨＩは、単一の外部ＰＣＩｅ接続を通してローカルホストプロセッサと通信する。ローカルホストプロセッサは、ＮＨＩの中のＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）エンジンを構成して、ＰＣＩｅバスを介してアクセスしうるシステムメモリを読み書きすることができる。既存のＴｈｕｎｄｅｒｂｏｌｔトランシーバは、すべてのＴｈｕｎｄｅｒｂｏｌｔコマンドトランザクションと、制御トランザクションと、ＮＨＩを含めてすべての非ＤｉｓｐｌａｙＰｏｒｔデータフローとに用いられる１つの外部ＰＣＩｅ接続を有する。周辺機器は、典型的には、ＵＴＩインタフェースを使用し、これがＴｈｕｎｄｅｒｂｏｌｔスイッチに接続して、ＵＴＩ  Ｔｈｕｎｄｅｒｂｏｌｔパケットにロー（ｒａｗ）アクセスを提供する。図のように、図１のデバイスは、ＮＨＩとＵＴＩとを両方有しており、そのため、ホストおよび周辺機器の操作が可能である（例えば、ホスト限定のデバイスはＵＴＩを有しないであろうし、周辺機器限定のデバイスはＮＨＩを有しないであろう）。
【００４０】
ホストプロセッサは、周辺デバイスのＰＣＩｅレジスタに自分自身のＮＨＩインタフェースを介してアクセスすることができる。トランザクションは、Ｔｈｕｎｄｅｒｂｏｌｔスイッチを介して周辺デバイスへトンネルされ、そこでアクセスがＵＴＩを通して方向付けられ、ＰＣＩｅレジスタへのアクセスが行われる。同様に、周辺機器は、ホストのＮＨＩに対する自分のＵＴＩを介して（Ｔｈｕｎｄｅｒｂｏｌｔネットワークを通して）ホストにアクセスすることができる。同様に、（マルチホストシステムのための）ホスト対ホストのトランザクションが、ＮＨＩ対ＮＨＩで行われてもよいし、（マルチ周辺機器システムのための）周辺機器対周辺機器のトランザクションが、ＵＴＩ対ＵＴＩで行われてもよい。
【００４１】
図２は、先行技術による第１、第２、および第３のＴｈｕｎｄｅｒｂｏｌｔトランシーバ（１００Ａ、１００Ｂ、１００Ｃ）の例示的な使用シナリオ２００を示す図であり、各種の接続性性能を例示している。図のように、第１のデバイスが、（音声データとファイル転送とで構成される）第１のＰＣＩｅデータストリームと、第１のＤＰデータストリームとを受信する。第１のデバイス１００Ａは、第１のＰＣＩｅデータストリームと第１のＤＰデータストリームとをパケット化して第１のＴｈｕｎｄｅｒｂｏｌｔ高速シリアルバスを経て送信し、そして、第１のＴｈｕｎｄｅｒｂｏｌｔデータストリームを送信する。
【００４２】
第２のデバイス１００Ｂは、第１のＴｈｕｎｄｅｒｂｏｌｔデータストリームを受信し、データをアンパックして、第２のＰＣＩｅストリームと第２のＤＰデータストリームとを生成する。第２のＤＰデータストリームは、出力ＤＰインタフェースを駆動する。第２のＰＣＩｅストリームは、さらに、その構成要素である音声データストリームとファイル転送ストリームとに分割される。音声データはＵＳＢ音声出力を駆動する。残りのファイル転送は、第２のＴｈｕｎｄｅｒｂｏｌｔデータストリームへと再パックされ、第２のＴｈｕｎｄｅｒｂｏｌｔ高速シリアルバス上で送信される。
【００４３】
第３のデバイス１００Ｃは、第２のＴｈｕｎｄｅｒｂｏｌｔデータストリームを受信し、データをアンパックして第３のＰＣＩｅストリームを生成する。第３のＰＣＩｅストリームは、ファイル転送を駆動する。
【００４４】
音声ネットワーキング
前述のとおり、ＤＰインタフェースはＤＰデータだけを搬送し、すなわち、すべての非ＤＰデータは、典型的には、単一のＰＣＩｅリンクを通してトンネルされる。不都合なことに、音声データが遅延して音声ストリームの中断を起こす場合があり、特に、ＰＣＩｅリンクが他の非音声トラヒックによって著しく輻輳している場合にそのようになる可能性がある。また、例えばＦｉｒｅＷｉｒｅおよびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のような他のバスプロトコルとは異なり、ＰＣＩｅは、明示的に帯域幅を予約するためのメカニズムを提供していない。さらに、前述したように、先行技術のＴｈｕｎｄｅｒｂｏｌｔトランシーバは、Ｃｏｎｖｅｒｇｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（ＣＩＯ）レイヤでトラヒックを優先させることが出来るだけである（すなわち、トンネルされるＰＣＩｅパケットおよびＤＰパケットのインタリービング）。
【００４５】
従って、本発明の各種の実施形態が、前述した先行技術のトランシーバの欠点を解消するように構成される。一実施形態では、Ｔｈｕｎｄｅｒｂｏｌｔデバイスは、音声性能をネットワークのピアデバイスに広告して、ネットワークのピアデバイスの音声性能を発見し、それによって、デバイスが音声トラヒックを非音声トラヒックより優先させることを可能にする。第２の実施形態では、Ｔｈｕｎｄｅｒｂｏｌｔネットワークの各音声デバイスは、Ｔｈｕｎｄｅｒｂｏｌｔ時刻管理機能性を利用してネットワークの同期を提供し、それによって、有利には、音声の再構築とネットワークを通じた音声データの伝搬とがいずれも改良される。
【００４６】
例えば、例示的な一実装において、（本件の譲受人によって開発され配布された）ＭａｃＯＳ  Ｘ（商標）Ｔｈｕｎｄｅｒｂｏｌｔドライバが、すべての接続されたＴｈｕｎｄｅｒｂｏｌｔデバイスを発見して、関連のデバイスクラス（かまたは、別段の指示がない場合はデフォルトクラス）を判定するように構成される。Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓのデバイスとのトランザクションは、他のＰＣＩｅトランザクションより高い優先レベルに分類される。一部の変形形態では、補足的なタイプのデバイスクラスが存在してもよく、その各々が、他のデバイスクラスに関連する優先度（例えば、クラスまたはタイプの階層）を有していてもよい。
【００４７】
特に、このＭａｃＯＳ  Ｘ  Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓドライバは、Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓの各デバイスのリストを、例えば（ｉ）音声用に利用可能な帯域幅、（ｉｉ）帯域幅全体、および／または（ｉｉｉ）消費される帯域幅といった、Ｔｈｕｎｄｅｒｂｏｌｔネットワークについての関連のパラメータと共に判定する。各Ｔｈｕｎｄｅｒｂｏｌｔデバイスは、記述子モデルを用いて自分の性能をＭａｃＯＳ  Ｘ  Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓドライバに広告する。例えば、そのような一実施形態では、記述子は、音声デバイスのＰＣＩｅアクセス可能メモリの中のデータ構造である。音声デバイス操作の各種の態様は、ＭａｃＯＳ  Ｘ  Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓドライバによって、ＰＣＩｅアクセス可能レジスタを介して制御することができる。
【００４８】
また、本発明の二次的な例示的な実施形態では、ＴｈｕｎｄｅｒｂｏｌｔトランシーバのＴｈｕｎｄｅｒｂｏｌｔ  Ｔｉｍｅ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ（ＴＭＵ）を用いて、また、音声サンプルクロック再構成の基礎として、デバイスレベルの時刻同期が行われる。Ｔｈｕｎｄｅｒｂｏｌｔ  ＴＭＵは、すべてのＴｈｕｎｄｅｒｂｏｌｔ音声デバイスに共通する非常に正確で精緻な時刻基準を提供するものだが、本発明と整合する他の時刻基準または基準ソースが用いられうることは理解されるであろう。例えば、Ｔｈｕｎｄｅｒｂｏｌｔ  ＴＭＵの既存の実装では、デバイス同期をＴｈｕｎｄｅｒｂｏｌｔネットワーク全体にわたって１０ナノ秒（１０ｎｓ）以内に維持することができる。
【００４９】
動作中、ＭａｃＯＳ  Ｘ  Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓドライバは、音声ソースデバイスを構成して、そのサンプルを指定の期限の前に別の宛先デバイスのバッファに書き込むことができる。同様に、その宛先デバイスは、期限が過ぎるまではサンプルを消費しないであろう。（ＴＭＵによって各デバイスで生成された）共有される時刻基準の精度は、非対称性について最小限考慮した上で、ソースデバイスも宛先デバイスもいずれも同じ時刻基準を使えることを保証するものである。加えて、Ｔｈｕｎｄｅｒｂｏｌｔネットワークの各デバイスは、バッファアンダーランおよびバッファオーバランを防ぎ、および／または、解決するため、１つ以上のサンプルバッファ（例えばデバイス自身のバッファおよび／またはピアデバイスのバッファ）を監視する。
【００５０】
最後に、本発明の一部の変形形態では、Ｔｈｕｎｄｅｒｂｏｌｔ  ＴＭＵを用いて音声サンプルクロックを再構成し、それによって、同期され、再構成された高品質の音声クロック信号をネットワークの各デバイスにおいて提供する。
【００５１】
次に、本発明の２つの例示的実施形態についてより詳しく記述し、前述の原理をさらに説明する。
【００５２】
Ｎａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）、Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）
本発明の第１の例示的実施形態では、音声クラスデバイスに専用のＣｏｎｖｅｒｇｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（ＣＩＯ）トンネルが割り振られる。各Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスは、専用の音声クラスＣＩＯトンネルに接続され、音声サンプルだけが、専用ＣＩＯトンネルを通って送信される。音声クラスＣＩＯトンネルは優先的なトンネルなのだから、音声サンプルは、他のＰＣＩｅトラヒックに関係なく時間通りに宛先に到着することができる。そのような実施形態では、専用の音声クラスＣＩＯトンネルは、Ｔｈｕｎｄｅｒｂｏｌｔ転送を介してＮａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）／Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）に実装される。ホストは、自分のＮＨＩに書き込み、それが、Ｔｈｕｎｄｅｒｂｏｌｔネットワークを通って第１の周辺機器のＵＴＩまでトンネリングし、第１の周辺機器のＵＴＩがＴｈｕｎｄｅｒｂｏｌｔネットワークを通って別のデバイスまで（例えば、第２の周辺機器のＵＴＩまで、または逆にホストのＮＨＩまで）トンネリングする。このようにして、各デバイスの任意の長い「リング」を作ることができる。ローカルホストプロセッサは、ＮＨＩ  ＤＭＡエンジンを構成してローカルホストプロセッサのシステムメモリとの間で音声データサンプルの読み／書きを行い、音声データサンプルは、次いで、リングネットワークを通ってトンネリングされる。
【００５３】
Ｔｈｕｎｄｅｒｂｏｌｔトランシーバの既存の実装は、ＵＴＩインタフェース毎に各方向に１つのＣＩＯトンネルを提供するだけである。従って、既存のＮＨＩ／ＵＴＩ実装には、複数の注目すべき制限がある。具体的には、単一のＮＨＩ／ＵＴＩインタフェースは、いわゆる「リング」トポロジの中の複数のデバイスにサービスできるだけであり、すなわち、各Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスは、（たとえ自分のＰＣＩｅベースの制御接続が論理的にバスとして構成されていたとしても）音声サンプルを転送するため、１つのピアデバイスから読み取って１つのピアデバイスに書き込む。（各方向に２．５ギガ転送／秒（ＧＴ／ｓ）で動作する）ＵＴＩ信号ペアは、およそ１０００個の４８キロヘルツ（ｋＨｚ）３２ビット音声チャネルというリング毎の制限を設けてもよいが、それは単純な構成には十分であっても、複雑な構成になると瞬く間にあふれてしまう可能性がある。
【００５４】
利用シナリオによっては、リングトポロジが望ましい。例えば、リングトポロジは、各デバイスについて１つの着信パスと１つの発信パスとを消費するだけだから、比較的リソース効率が良い。もう１つの利点は、配信構造が単純である（すなわち、アドレス解決、バス競合等の必要がない）ため、Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスは、パケットを（パケット全体を送信するのにかかる時間より少ない）非常な低レイテンシで通過させられるということである。
【００５５】
しかし、他の使用シナリオでは、リングトポロジは望ましくないことがあり、例えば、Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスを通ったレイテンシは非常に小さくすること（０．１ミリ秒）ができても、（例えば、本発明の譲受人によって製造されるＭａｃｂｏｏｋ（商標）タイプのデバイスのような）他のタイプのデバイスを通ったレイテンシは、内部処理時間によって左右される可能性があるので、かなり長くなる（数ミリ秒）ことがある。リングトポロジは一方向性であるため、いずれかの２つのデバイス間の音声レイテンシは、音声サンプルデータがそのような長いレイテンシのデバイスを通って流れるのか否かに応じて著しく変動するであろう。また、レイテンシは、リングに参加するデバイスの数に応じて増大するであろうし、リングトラヒックは、デバイスがリングに追加されたりリングから削除されたりする度に中断されなければならない（トポロジが変更される度に新たなリングが形成されなければならない）。
【００５６】
他にも、ＮＨＩ／ＵＴＩ手法には、ネットワークのデバイスタイプに関連する制限がある。例えば、Ｍａｃｂｏｏｋタイプのデバイスは、ＣＩＯパケットを送受信するのにＴｈｕｎｄｅｒｂｏｌｔ  ＮＨＩ  ＤＭＡエンジンを用いるであろう。ＤＭＡ動作は、（システムメモリ内に）中間バッファの使用を必要とするが、それは、アプリケーションによっては望ましくない。
【００５７】
また、ＤＭＡシステムメモリは、トランザクションとしては「高価な」いわゆる「ｎｏｎ−ｐｏｓｔｅｄ（非投函の）」ＰＣＩｅ  ｒｅａｄトランザクションを使ってアクセスされる。話が少し脇道に逸れるが、ＰＣＩ  Ｅｘｐｒｅｓｓは、いわゆる「ｐｏｓｔｅｄ（通知される）」トランザクションと「ｎｏｎ−ｐｏｓｔｅｄ（投函の）」トランザクションとをサポートする。ＰＣＩｅでは、典型的なトランザクション（すなわち、ｎｏｎ−ｐｏｓｔｅｄ  ｒｅａｄまたはｗｒｉｔｅ）は、完成Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ（ＴＬＰ）を使って確認応答が行われる。ＴＬＰ完成パケットは、受信器（すなわち「完成器」）が要求を受信したことを送信器に対して確認するものである。ｒｅａｄ要求については、完成には、成功した場合には返信されたｒｅａｄデータが、成功しなかった場合にはエラーステータスが含まれる。ｗｒｉｔｅ要求については、完成には、成功した場合には受信の確認応答が、ｗｒｉｔｅが成功しなかった場合にはエラーステータスが含まれる。対照的に、ｐｏｓｔｅｄトランザクションは、（たとえトランザクションが成功しなくても）いかなる確認応答も提供しない。ＰＣＩｅは、ｐｏｓｔｅｄ  ｒｅａｄをサポートしない。
【００５８】
しかし、ＮＨＩ  ＵＴＩ手法の前述の制限は、（例えば、接続されるデバイスの数が少ないと予測される場合や、主にＴｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスが使用される場合など）実装シナリオによっては重要性が低いことがある。あるいは、デバイス技術の今後の進歩によって、そのような制限はまったくなくなる可能性もある（例えば、今後の進歩によって、補足的なＵＴＩインタフェースが提供されたり、デバイスのレイテンシが改善されたりする場合など）。
【００５９】
ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）
本発明の第２の例示的実施形態では、各音声クラスデバイスが、ネットワークから受信されることになるすべての音声チャネルにメモリを割り振る。動作中、音声データは、ＰＣＩｅトンネルを通って「プッシュ」され、すなわち、音声ストリームが、ソースデバイスによって宛先デバイスのメモリバッファに直接書き込まれる。一実装においては、ｗｒｉｔｅトランザクションが「ｐｏｓｔ」され、すなわち、宛先とソースデバイスとの間の確認応答転送を必要としない。一部の実施形態では、ｗｒｉｔｅトランザクションはさらに、プログラムされたＩ／Ｏ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を使って処理される。
【００６０】
このＴｈｕｎｄｅｒｂｏｌｔ  ＰＣＩｅ統合型アドレッシングモデルは、元々、ピアツーピア音声ルーティングをサポートすることができる。この機能によって、Ｔｈｕｎｄｅｒｂｏｌｔ  ＰＣＩｅデバイスは、Ｔｈｕｎｄｅｒｂｏｌｔネットワーク上のいかなる他のＴｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスにもアクセスすることができる。より一般的には、上記のリングトポロジとは異なり、Ｔｈｕｎｄｅｒｂｏｌｔネットワークを、いわゆる「ツリー」として物理的に構成することができ、これにより、（より直接的なルーティングを可能にする）論理的バスアドレッシングを使って、各ＰＣＩｅデバイスをサポートすることができる。
【００６１】
また、前述のＮＨＩ／ＵＴＩのスキームとは異なり、この手法は専用のＣＩＯリソースを必要としないので、既存のＰＣＩｅ割当てを通してトンネルされてもよい。ＣＩＯリソースは、現行のデバイスの解決策では限られているが、一層の高性能が望まれる（かつ、ＣＩＯリソースが利用可能な）場合には、Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスに、Ｔｈｕｎｄｅｒｂｏｌｔ  ＰＣＩｅツリーのうちの自らの高優先分岐を割り振ることもできる（すなわち、Ｔｈｕｎｄｅｒｂｏｌｔ  Ａｕｄｉｏ  Ｃｌａｓｓデバイスが、専用の論理的バスに接続される）。そのような実装が行われれば、特に、ピアツーピアのトランザクションの場合に、音声パケットが時間通りに宛先に到着する可能性は増えるであろう。
【００６２】
また、ＰＣＩｅ手法は、全面的にｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを使って実行することができる。具体的には、前述のＮＨＩ  ＵＴＩリングトポロジでは、各デバイスが依然として中間バッファへのＰＣＩｅ  ｒｅａｄトランザクションと、中間バッファからのＰＣＩｅ  ｗｒｉｔｅトランザクションとを実行することが必要となる。そのようなＰＣＩｅ  ｒｅａｄトランザクションは、ｎｏｎ−ｐｏｓｔｅｄであり、すなわち、確認を必要とする。対照的に、（ＮＨＩ／ＵＴＩを用いない）ＰＣＩｅ手法は、ＰＣＩｅ「ｐｏｓｔｅｄ」ｗｒｉｔｅトランザクションを最大限に活用することができ、それによって、宛先デバイスからの応答が必要でないため、スループットが最大化され、レイテンシが最小化される。例えば、例示的なＭａｃｂｏｏｋプロセッサは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）エンジンに関する中間バッファの使用を必要とせず、直接ＰＣＩｅデバイスにサンプルを書き込むことができる。
【００６３】
方法
次に、本発明の一般的な方法についてより詳しく説明する。
【００６４】
本発明の一態様では、各デバイスが、各種の優先クラスをネットワークのピアデバイスに広告し、トンネルされるネットワークのピアデバイスの優先クラスを発見することができる。ネットワークトンネルによってサポートされる各種の優先クラスに、トンネルリソース（すなわち「中継」リソース）が割り振られる。
【００６５】
第２の態様では、トンネルされるネットワークの各デバイスが、１つ以上のパラメータを中継プロトコルから抽出し、各デバイスは、中継プロトコルパラメータからネットワークプロトコルパラメータを導出することができる。
【００６６】
次に図３を参照しながら、ネットワーク内に優先的なクラスのデバイスを実装するための方法３００の例示的な一実施形態について説明する。一実施形態では、優先的なクラスはメディアタイプに基づいている。あるいは、優先的なクラスは、デバイスのアプリケーション、デバイスの性能、デバイスのタイプ等に基づいていてもよい。例えば、デバイスは、音声デバイスと非音声デバイスとに分類されてもよい。他の例では、デバイスは、（ｉ）スループット、（ｉｉ）レイテンシ、（ｉｉｉ）異時性、（ｉｖ）等時性、および／または（ｖ）信頼性に従って分類されてもよい（がそれらに限定されない）。別の例では、デバイスは、デバイスタイプ（例えば、ホストデバイス、スレーブデバイス、境界デバイス、ハブデバイス等）に従って分類されてもよい。
【００６７】
方法３００のステップ３０２において、各デバイスは、トンネルされるネットワークについてのクラス発見を行う。例えば、例示的な一実施形態では、各デバイスが、ピアデバイスクラスを発見する（かまたは、別段の指定がない場合は１つ以上のデフォルトクラスを割り当てる）ように構成されたソフトウェアを実行する。デバイスは、自分の適切なデバイスクラスを、トンネルされるネットワークの他のデバイスに広告してもよい。あるいは、デバイスは、ピアデバイスにクエリを行って、それらのデバイスクラスを尋ねる。別の実装では、デバイスは、自分のデバイスクラスを中央ネットワークエンティティ（例えばネットワークマスタ、登録サービス等）に登録し、登録されたピアデバイスクラスを中央ネットワークエンティティから検索する。
【００６８】
例示的な一シナリオでは、各Ｔｈｕｎｄｅｒｂｏｌｔデバイスは、記述子モデルを用いて自分の性能を他のＴｈｕｎｄｅｒｂｏｌｔデバイスに広告する。例えば、記述子は、ネットワークプロトコルを介してアクセス可能なデータ構造を含んでいてもよい。ネットワークプロトコルは、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）であってもよい。例えば、デバイスは、Ｔｈｕｎｄｅｒｂｏｌｔプロトコルを介してアクセス可能なＰＣＩｅメモリの中の音声デバイスとして自分自身を識別してもよい。別のシナリオでは、１つ以上のデバイスが、ネットワーク管理エンティティであってもよく、例えば、ＭａｃＯＳ  Ｘ  Ｔｈｕｎｄｅｒｂｏｌｔドライバが、中央ネットワークエンティティとして機能し、ネットワークについてのデバイス発見とデバイス管理とを行ってもよい。
【００６９】
ネットワークのすべてのデバイスが分類されると、結果として生じるデバイスおよびそれらの関連のクラスのリストが、ネットワークリストにコンパイルされ、各デバイス（またはその部分集合）に提供されてもよい。一部の実施形態では、ネットワークリストには、他の関連のパラメータ、例えば、利用可能な帯域幅全体、消費された帯域幅、帯域幅制限等が追加されてもよい。
【００７０】
方法３００のステップ３０４で、１つ以上の中継リソースがネットワークの１つ以上の優先的なクラスに割り振られる。一実施形態では、ネットワークの１つ以上のクラスに専用中継リソースが割り振られる。中継リソースは、ネットワークトンネリングプロセスで用いられる物理リソースまたは仮想リソースであってよい。例えば、そのような一変形形態では、中継リソースは、論理パス、論理チャネル等を含んでいてもよい。他の場合では、中継リソースには、物理処理リソース（例えば、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）等）、物理パス、物理チャネル等が含まれていてもよい。
【００７１】
また、データトラヒックが、例えば専用入力、メモリバッファ、専用出力のような物理リソースに割り振られてもよい。例えば、上記ですでに述べたとおり（Ｎａｔｉｖｅ  Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ（ＮＨＩ）、Ｕｓｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ（ＵＴＩ）を参照）、音声データトラヒックが、ＮＨＩ／ＵＴＩ  ＤＭＡ物理リソースに割り振られてもよい。別の例では、上記ですでに述べたとおり（ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）を参照）、各デバイスが、内部システムメモリ内のＰＣＩｅアクセス可能メモリバッファを音声データトラヒックに割り振る。
【００７２】
方法３００のステップ３０６において、優先的なトラヒックが、１つ以上の割り振られた中継リソースに従ってルーティングされる。
【００７３】
次に図４を参照しながら、中継プロトコルパラメータからネットワークプロトコルパラメータを導出するための方法４００の例示的な一実施形態について説明する。一実装において、時刻同期が、ネットワーク全体に配信される中継タイムスタンプパラメータから判定される。例えば、Ｔｈｕｎｄｅｒｂｏｌｔ  Ｔｉｍｅ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ（ＴＭＵ）は、音声サンプルクロック再構成のためにデバイスレベルの時刻同期を生成することができる。
【００７４】
方法４００のステップ４０２において、各デバイスが、中継プロトコルパラメータを抽出する。中継プロトコルパラメータの一般例には、時刻、帯域幅、誤りチェック性能等が含まれるが、それらに限定されない。例示的な一実施形態では、各デバイスが、中継プロトコルからタイムスタンプを抽出する。別のそのような実施形態では、各デバイスが、中継ネットワークによってサポートされるネットワーク帯域幅全体を判定する。
【００７５】
特に注目すべきなのは、中継プロトコルが、実行されるアプリケーションやトンネルされるネットワークプロトコル等に関わらず、すべての接続されたデバイスによって共有されることである。例えば、Ｔｈｕｎｄｅｒｂｏｌｔネットワークのすべてのデバイスは、Ｔｈｕｎｄｅｒｂｏｌｔデバイスの内部時刻基準やアプリケーションソフトウェア等に関わらず、共通のＴｈｕｎｄｅｒｂｏｌｔ時刻基準を共有するであろう。従って、底流を成す中継プロトコルは、有利には、Ｔｈｕｎｄｅｒｂｏｌｔ接続の各デバイスの動作を同期させるのに用いることができる。
【００７６】
ステップ４０４で、各デバイスは、少なくとも部分的に中継プロトコルパラメータに基づいて、ネットワークプロトコルパラメータを判定する。
【００７７】
話が少し脇道に逸れるが、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバは、高度なＴｉｍｅ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔｓ（ＴＭＵｓ）を含んでおり、それらは、正確かつ精緻に、Ｔｈｕｎｄｅｒｂｏｌｔネットワーク時刻をＴｈｕｎｄｅｒｂｏｌｔネットワーク上の各デバイスに伝達している。典型的な動作の間、Ｔｈｕｎｄｅｒｂｏｌｔネットワークのための同期マスタが選定される。同期マスタは、自分のネットワークセグメント上に常駐する各デバイスに同期情報を送信する。各デバイスは、同期情報に基づいてクロック基準をローカルに計算する。境界デバイスが、正確な時刻を他のセグメントに中継することによって、同期マスタ間の同期を可能にすることもできる。このようにして、ネットワーク全体を同期させて、許容誤差を微小化することができる。例えば、Ｔｈｕｎｄｅｒｂｏｌｔネットワークにおいては、いずれの２つのデバイスでも、時刻の差はわずか１０ナノ秒（１０ｎｓ）であろう。Ｔｈｕｎｄｅｒｂｏｌｔトランシーバは、Ｓｅｒｉａｌ  Ｔｉｍｅ  Ｌｉｎｋ  Ｐｒｏｔｏｃｏｌ（ＳＴＬＰ）と呼ばれる単純なワンワイヤのプロトコルを用いて、現在のＴｈｕｎｄｅｒｂｏｌｔ時刻をプリント基板上の他のチップに伝達する。分散型ネットワーク全域でのそのような時刻同期のもう１つの例として、ＩＥＥＥ１５８８  Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（ＰＴＰ）がある（が、それに限定されない）。
【００７８】
本発明の例示的な一実施形態では、中継パラメータを用いてネットワークプロトコルパラメータが判定される。例えば、Ｔｈｕｎｄｅｒｂｏｌｔトランシーバでは、Ｔｈｕｎｄｅｒｂｏｌｔネットワーク時刻を用いてＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）ネットワークプロトコルについてのネットワーク時刻が判定される。代替的実施形態では、Ｔｈｕｎｄｅｒｂｏｌｔネットワーク時刻を用いてＤｉｓｐｌａｙＰｏｒｔ（ＤＰ）ネットワークプロトコルを同期させることができる。また、各デバイスは、利用可能な中継帯域幅に基づいて１つ以上のネットワークプロトコルパラメータを判定してもよい（例えば、サービス品質（ＱｏＳ）、適切な符号化スキーム等）。
【００７９】
ステップ４０６では、各デバイスは、判定されたネットワークプロトコルに基づいて動作し、この場合、各デバイスについての判定されたネットワークプロトコルパラメータは、実質的に同様である。例えば、Ｔｈｕｎｄｅｒｂｏｌｔ動作の間、組み込まれたＰＣＩｅネットワークプロトコルは、導出されたネットワーク時刻を用いて、データの送信および／または受信をスケジュール化することができる。
【００８０】
また、本発明の一部の変形形態では、データ処理および／または消費を支援するのに、導出されたネットワーク時刻が用いられる。例えば、導出されたネットワーク時刻を、音声処理のための正確で精緻な時刻基準として用いることができる。そのような一実装において、導出された時刻基準は、音声データが適切な時刻にシステムメモリへの読み書きが行われることを保証する（バッファの読み取りが早すぎたり、バッファへの書き込みが遅すぎたりすると、望ましくないデータハザードが生じる可能性がある）。
【００８１】
他にも、導出された時刻基準についての一般的な用途には、すべての音声クロックが一致して動作することを保証するために音声サンプルクロックを測定することと、１つのデバイスから別のデバイスへの音声サンプルの転送をスケジュール化することと、音声サンプル転送のＰＣＩｅ性能を監視することとが含まれるが、それらに限定されない。
【００８２】
例示的な装置
図５は、本発明の各種の方法および態様を実装するのに有用な装置５００の例示的な実施形態を示す図である。図５の装置は、例えばデジタルシグナルプロセッサ、マイクロプロセッサ、フィールドプログラマブル論理アレー（ＦＰＧＡ）、または１つ以上の基板に取り付けられた複数の処理コンポーネントのような処理サブシステム５０２を備えている。また、処理サブシステムは、内部キャッシュメモリを備えていてもよい。処理サブシステムは、メモリを含むメモリサブシステム５０４と通信しており、メモリは、例えばＳＲＡＭ、ＦｌａｓｈおよびＳＤＲＡＭコンポーネントを含んでいてもよい。メモリサブシステムは、当分野では周知であるように、データアクセスを容易にするために、１つ以上のＤＭＡタイプのハードウェアを実装していてもよい。メモリサブシステムは、プロセッササブシステムによって実行可能な、コンピュータで実行可能な命令を含んでいる。
【００８３】
さらに、装置は、トンネル通信コントローラ５０６を含んでおり、これはエンドポイント間のデータトンネルを管理している。トンネル通信コントローラは、１つ以上のネットワークインタフェース５１０と動作可能に通信している。ネットワークインタフェースは、さらに、パケット化されたトラヒックを送信および／または受信するように構成される。一実施形態では、トンネル通信コントローラは、パケット化されたトラヒックをトンネルして、１つ以上のネットワークインタフェースから中継ネットワークを経由して配信するように構成される。トンネル通信コントローラは、パケットをインタリーブして、中継ネットワークを経て送信する。受信されたデータは、適切なパケットへとデインタリーブされて、適切なネットワークインタフェースへとルーティングされる。
【００８４】
通信コントローラ５０６は、さらに、マスタ時刻ベース５０８を追跡するように構成される。このマスタ時刻ベースは、例えば内部オシレータ回路（例えば、Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｔｅｍｐｅｒａｔｕｒｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｃｒｙｓｔａｌ  Ｏｓｃｉｌｌａｔｏｒ（ＶＣＴＣＸＯ）等のような内部クロックから導出されてもよいし、あるいは、例えばＳｅｒｉａｌ  Ｔｉｍｅ  Ｌｉｎｋ  Ｐｒｏｔｏｃｏｌ（ＳＴＬＰ）、Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ（ＧＰＳ）、ＩＥＥＥ  Ｓｔｄ．１５８８（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）等を提供するピアデバイスのような外部のデバイスまたはエンティティから報告されるかまたは受信されてもよい。
【００８５】
装置５００の例示的な一実施形態では、１つ以上のネットワークインタフェース５１０には、少なくともＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）インタフェースとＤｉｓｐｌａｙＰｏｒｔインタフェースとが含まれている。本発明に有用なその他のネットワークインタフェースの一般例には、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）、ＦｉｒｅＷｉｒｅ（ＩＥＥＥ  Ｓｔｄ．１３９４）、Ｅｔｈｅｒｎｅｔ、Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ（ＨＤＭＩ）、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ（ＤＶＩ）、およびＤｉｓｐｌａｙＰｏｒｔが含まれるが、それらに限定されない。一部の変形形態では、１つ以上のネットワークインタフェースは、さらに、大規模なメモリ転送を実行するために、ＤＭＡタイプメモリおよび関連のＤＭＡエンジンと共に使用されるように構成される。
【００８６】
上述したとおり、ネットワークプロトコルトラヒックは、中継ネットワーク経由で送信するためにパケット化される。パケット化されたデータは、データの不連続単位すなわちパケットとしてフォーマットされたデータである。各パケットは、少なくともルーティング情報とペイロードとを含んでいる。ルーティング情報は、例えば、ソースアドレス、宛先アドレス、誤り検出符号、およびシーケンス情報を提供する。また、所定のタイプのデータパケットは、プレゼンテーション情報を含んでいてもよく、例えば、メディアパケット（例えば音声データおよび動画データ）は、メディアが一定の順調な速度で再生されることを保証するため、関連の再生時間を有していてもよい。
【００８７】
本発明の一部の実施形態では、パケット化されたトラヒックは、信頼性について各種の保証を提供してもよいし、提供しなくてもよい。例えば、「ｎｏｎ−ｐｏｓｔｅｄ」トランザクションは、明示的な確認応答（ＡＣＫ）または否定応答（ＮＡＫ）を提供し、「ｐｏｓｔｅｄ」トランザクションは、送信の成功または失敗に関するフィードバックをまったく提供しなくてもよい。
【００８８】
図５に戻ると、ユーザインタフェースサブシステム５１０は、処理サブシステム５０２に接続されており、キーパッドと、タッチスクリーン（例えば、マルチタッチインタフェース）と、音声／画像（ＡＶ）システムと、バックライトと、スピーカと、および／またはマイクロフォンとを含むがそれらに限定することなく、いかなる数の周知のＩ／Ｏを含んでいてもよい。しかし、理解されるであろうが、アプリケーションによっては、これらのコンポーネントの１つ以上が除かれることがある。
【００８９】
図６は、本発明の各種の方法および態様を実装する周辺機器６００の１つの特定の（Ｔｈｕｎｄｅｒｂｏｌｔに基づく）実装を示す図である。図６の装置は、Ｔｈｕｎｄｅｒｂｏｌｔルータチップ６０４に接続された、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）６０２を備えている。また、ＦＰＧＡは、時刻生成論理６０６と音声コントローラ６０８とに接続されている。例示的な動作の間、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）６０２は、ＳＴＬＰプロトコルを用いてローカルカウンタをＴｈｕｎｄｅｒｂｏｌｔネットワーク時刻に同期させ、それによって、ＦＰＧＡ内の他の論理にタイミングサービスを提供する。このＴｈｕｎｄｅｒｂｏｌｔ周辺機器宛の音声サンプルは、ＦＰＧＡに接続されたＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）に所定の期限までにＰＣＩｅを介して書き込まれるであろう。期限が過ぎると、Ｔｈｕｎｄｅｒｂｏｌｔ音声コントローラ６０８は、サンプルをＲＡＭから読み取って、それらをＩ２Ｓ出力に供給し、ＤＡ変換器を動作させる。Ｉ２Ｓ（Ｉｎｔｅｇｒａｔｅｄ  Ｉｎｔｅｒｃｈｉｐ  Ｓｏｕｎｄ（商標））インタフェースおよび関連のコンバータを動作させるための音声クロックが、Ｔｈｕｎｄｅｒｂｏｌｔ時刻とＰＣＩｅを介して受信したタイムスタンプとに基づいてクロックを生成するＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）によって生成される。
【００９０】
同様に、ＡＤＣに接続されたＩ２Ｓインタフェースは、音声ＰＬＬによって判定されるレートで作動してサンプルを生成し、サンプルは、Ｔｈｕｎｄｅｒｂｏｌｔ音声コントローラによってＲＡＭに書き込まれるであろう。所定の時刻になると、コントローラは、ＰＣＩｅ接続を経て構成された宛先アドレスにサンプルを書き込むであろう。
【００９１】
図７は、同期された音声サンプルクロックをＴｈｕｎｄｅｒｂｏｌｔ基準時刻から生成するための１つの具体的な解決策を示す図である。図のように、タイムスタンプがＴＭＵ７０２で受信され、ＰＣＩｅ物理レイヤ（ＰＨＹ）７０４とクロック生成回路７０６とに配信される。ＰＣＩｅＰＨＹは、基準時刻に基づいて、データが適切な時刻にメモリに書き込まれたり、メモリから読み出されたりすることを保証する。クロック生成回路はシステム時刻を用いて高精度のクロックを生成し、そのクロックを用いて音声データＦＩＦＯから音声信号が読み取られ、合成される。
【００９２】
理解されるであろうが、本発明の一部の態様は、方法のステップの特定のシーケンスに関して記述されているが、これらの記述は、本発明の方法を大まかに例示しているだけであって、具体的な応用例では必要に応じて修正されることがある。一部のステップは、状況によっては不要あるいは任意選択とされたりすることがある。また、一部のステップまたは機能性が、開示された実施形態に追加されたり、２つ以上のステップを実行する順序が変更されたりすることがある。そのような変更はすべて、本書で開示および請求が行われた本発明の中に包含されるとみなされる。
【００９３】
上記の詳述において、各種の実施形態に適用される本発明の新規の特徴を示し、記述し、指摘してきたが、例示されたデバイスまたはプロセスの形態および詳細における各種の省略、代用、および変更が、本発明から逸脱することなく当業者によって行われうることは、理解されるであろう。上記の記述は、本発明を実行するのに最も良いと現時点で考えられるやり方についてのものである。この記述は、決して限定することを意図されておらず、むしろ、本発明の一般原理を例示していると解釈されるべきである。本発明の範囲は、請求項に関して判定されるべきである。
【図１】
0005918849.tif 000002
【図２】
0005918849.tif 000003
【図３】
0005918849.tif 000004
【図４】
0005918849.tif 000005
【図５】
0005918849.tif 000006
【図６】
0005918849.tif 000007
【図７】
0005918849.tif 000008