(57)【特許請求の範囲】
【請求項１】
マルチプロトコルのトンネリングの方法であって、
周辺機器がコンピュータ装置に接続されることに応答して、前記コンピュータ装置のマルチプロトコル相互接続のスイッチングファブリックの複数のポート間に第１の通信パスを確立する段階であり、前記複数のポートはそれぞれ複数のプロトコルのうちのいずれかを実装する、段階と、
前記第１の通信パスを確立する段階の後に、前記スイッチングファブリックの前記複数のポートのうちの前記周辺機器のプロトコルを実装するポートとプロトコルに固有のコントローラとの間に第２の通信パスを確立する段階と、
前記マルチプロトコル相互接続によって、前記第１の通信パスおよび前記第２の通信パスを介して前記周辺機器から前記プロトコルに固有のコントローラへと、前記周辺機器のプロトコルの複数のパケットをルーティングする段階と
を備える方法。
【請求項２】
前記周辺機器は第１の周辺機器を備え、前記プロトコルは第１のプロトコルを含み、前記プロトコルに固有のコントローラは第１のプロトコルに固有のコントローラを備え、
前記方法は、前記第１のプロトコルと異なる第２のプロトコルについて、前記マルチプロトコルの相互接続によって、第２の周辺機器から第２のプロトコルに固有のコントローラへと、前記第２の周辺機器の第２のプロトコルの複数のパケットをルーティングする段階を更に備える、請求項１に記載の方法。
【請求項３】
前記第２のプロトコルの前記複数のパケットをルーティングする段階は、前記第１の通信パスを介して前記第２のプロトコルの前記複数のパケットをルーティングする段階を備える、請求項２に記載の方法。
【請求項４】
前記第１のプロトコルの前記複数のパケットをルーティングする段階および前記第２のプロトコルの前記複数のパケットをルーティングする段階は、同時に行われる、請求項２または３に記載の方法。
【請求項５】
前記周辺機器は第１の周辺機器を備え、前記プロトコルは第１のプロトコルを含み、
前記方法は、前記第１のプロトコルと同一の第３のプロトコルについて、前記マルチプロトコルの相互接続によって、第３の周辺機器から前記プロトコルに固有のコントローラへと、前記第３の周辺機器の第３のプロトコルの複数のパケットをルーティングする段階を更に備える、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１のプロトコルの前記複数のパケットをルーティングする段階および前記第３のプロトコルの前記複数のパケットをルーティングする段階は、同時に行われる、請求項５に記載の方法。
【請求項７】
前記マルチプロトコルの相互接続から前記コンピュータ装置のＩ／Ｏドライバに、第１のホットプラグ表示を提供する段階を更に備え、
前記第１の通信パスを確立する段階は、前記第１のホットプラグ表示に少なくとも部分的に基いて行われる、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記プロトコルに固有のコントローラからそれぞれのプロトコルに固有のドライバに、第２のホットプラグ表示を提供する段階を更に備え、
前記第２の通信パスを確立する段階は、前記第２のホットプラグ表示に少なくとも部分的に基いて行われる、請求項７に記載の方法。
【請求項９】
前記プロトコルは、ＵＳＢプロトコル、ＤｉｓｐｌａｙＰｏｒｔプロトコル、ＨＤＭＩ（登録商標）プロトコル、またはＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）プロトコルを含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
装置にマルチプロトコルのトンネリングを実行させるためのプログラムであって、
周辺機器が前記装置に接続されることに応答して、コンピュータ装置のマルチプロトコルの相互接続のスイッチングファブリックの複数のポート間に第１の通信パスを確立する手順であり、前記複数のポートはそれぞれ複数のプロトコルのうちのいずれかを実装する、手順と、
前記第１の通信パスを確立する手順の後に、前記スイッチングファブリックの前記複数のポートのうちの前記周辺機器のプロトコルを実装するポートとプロトコルに固有のコントローラとの間に第２の通信パスを確立する手順と、
前記マルチプロトコルの相互接続によって、前記第１の通信パスおよび第２の通信パスを介して前記周辺機器から前記プロトコルに固有のコントローラへと、前記周辺機器のプロトコルの複数のパケットをルーティングする手順と
を行わせる、プログラム。
【請求項１１】
前記周辺機器は第１の周辺機器を備え、前記プロトコルは第１のプロトコルを含み、前記プロトコルに固有のコントローラは第１のプロトコルに固有のコントローラを備え、
前記装置に、前記第１のプロトコルと異なる第２のプロトコルについて、前記マルチプロトコルの相互接続によって、第２の周辺機器から第２のプロトコルに固有のコントローラへと、前記第２の周辺機器の第２のプロトコルの複数のパケットをルーティングする手順を実行させる、
請求項１０に記載のプログラム。
【請求項１２】
前記第１のプロトコルの前記複数のパケットをルーティングする手順および前記第２のプロトコルの前記複数のパケットをルーティングする手順は、同時に行われる、請求項１１に記載のプログラム。
【請求項１３】
前記周辺機器は第１の周辺機器を備え、前記プロトコルは第１のプロトコルを含み、
前記装置に、前記第１のプロトコルと同一の第３のプロトコルについて、前記マルチプロトコルの相互接続によって、第３の周辺機器から前記プロトコルに固有のコントローラへと、前記第３の周辺機器の第３のプロトコルの複数のパケットをルーティングする手順を更に含む、請求項１０から１２のいずれか一項に記載のプログラム。
【請求項１４】
前記マルチプロトコルの相互接続から前記コンピュータ装置のＩ／Ｏドライバに、第１のホットプラグ表示を提供する手順を更に含み、
前記第１の通信パスを確立する手順は、前記第１のホットプラグ表示に少なくとも部分的に基いて行われる、請求項１０〜１３のいずれか一項に記載のプログラム。
【請求項１５】
マルチプロトコルのトンネリングのシステムであって、
複数のスイッチを有するスイッチングファブリックを有するマルチプロトコルの相互接続を含むＩ／Ｏ複合体と、
前記Ｉ／Ｏ複合体と動作可能に結合された１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサと動作可能に結合され、複数のプログラミング命令を記憶したコンピュータ読取可能な非一時的記憶媒体と、
前記Ｉ／Ｏ複合体および前記１つまたは複数のプロセッサに動作可能に連結された表示装置とを備え、
前記コンピュータ読取可能な非一時的記憶媒体は、前記複数のプログラミング命令の実行に応答して、前記システムが、
周辺機器が前記システムに接続されることに応答して、コンピュータ装置のマルチプロトコルの相互接続の前記スイッチングファブリックの複数のポート間に第１の通信パスを確立し、前記複数のポートはそれぞれ複数のプロトコルのうちのいずれかを実装し、
前記第１の通信パスの前記確立の後に、前記スイッチングファブリックの前記複数のポートのうちの前記周辺機器のプロトコルを実装するポートとプロトコルに固有のコントローラとの間に第２の通信パスを確立し、
前記マルチプロトコルの相互接続によって、前記第１の通信パスおよび第２の通信パスを介して前記周辺機器から前記プロトコルに固有のコントローラへと、前記周辺機器のプロトコルの複数のパケットをルーティングすることを可能にする、
システム。
【請求項１６】
前記システムは、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、サーバ、セットトップボックス、デジタル記録装置、ゲームコンソール、スマートフォン、携帯情報端末、携帯電話、デジタルメディアプレーヤ、およびデジタルカメラから選択される、請求項１５に記載のシステム。
【請求項１７】
バスによって前記Ｉ／Ｏ複合体に動作可能に結合され、無線ネットワークの１つまたは複数のコンポーネントとの無線通信リンクを確立する１つまたは複数のアンテナを更に備える、請求項１５または１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、概ねコンピュータ装置のマルチプロトコルのＩ／Ｏ相互接続全体におけるマルチプロトコルのトンネリングに関する。
【背景技術】
【０００２】
従来のコンピュータプラットフォームアーキテクチャは様々なホストコントローラを含み、コンピュータプラットフォームとコンピュータプラットフォームに接続された周辺機器との間に異なるタイプのいくつかのＩ／Ｏを実装する。通常、これらのコンピュータプラットフォームは、プロトコルに固有のプラグおよびケーブルを介して周辺機器に接続するプロトコルに固有の接続インターフェースを含む。例えば、コンピュータはＵＳＢに固有の接続インターフェースを介して周辺機器に接続するＵＳＢに固有のコントローラ、ディスプレイに固有の接続インターフェースを介して周辺機器に接続するディスプレイに固有のコントローラ（例えばＤｉｓｐｌａｙＰｏｒｔ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）に固有の接続インターフェースを介して周辺機器に接続するＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）コントローラ等のうちの１つまたは複数を含むことがある。
【図面の簡単な説明】
【０００３】
本開示の実施形態は限定ではなく例示的な実施形態によって説明され、添付の図面に図示され、同様の参照は類似の要素を表す。
【図１】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータ装置を記載する。
【図２】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータシステムの実施形態を記載する。
【図３】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続のスイッチングファブリックの実施形態を記載する。
【図４】本開示の様々な実施形態による、Ｉ／Ｏ複合体のマルチプロトコル相互接続アーキテクチャ用プロトコルスタックの実施形態を記載する。
【図５】本開示の様々な実施形態による、Ｉ／Ｏ複合体のマルチプロトコル相互接続アーキテクチャ用プロトコルスタックの実装の実施形態を記載する。
【図６Ａ】本開示の様々な実施形態による、スイッチのドメインの物理トポロジの実施形態を記載する。
【図６Ｂ】本開示の様々な実施形態による、図６Ａのドメインを管理するスパニングツリーの実施形態を記載する。
【図７】本開示の様々な実施形態による、ドメイン内のスパニングツリーの実施形態を記載する。
【図８】本開示の様々な実施形態による、ドメイン内の構成パケットをルーティングするルートストリングのフォーマットの実施形態を記載する。
【図９】本開示の様々な実施形態による、トポロジＩＤ構成レジスタのフォーマットの実施形態を記載する。
【図１０】本開示の様々な実施形態による、多重ドメイン間で確立し得る接続の実施形態を記載する。
【図１１】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ複合体および相互接続の実施形態を記載する。
【図１２】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ複合体および相互接続の実施形態を記載する。
【図１３】共に本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続に接続したマルチプロトコルのトンネリングＩ／Ｏ相互接続を含むデバイス（例えば周辺機器）の実施形態を記載する。
【図１４】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を構成する方法の流れ図である。
【図１５】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータ装置を運用する方法の流れ図である。
【図１６】本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含む、コンピュータ装置のホットプラグ接続法の流れ図である。
【図１７】本開示の実施形態による、装置にマルチプロトコルのトンネリングの（例えば図１４、図１５、および図１７の方法の）いくつかまたは全ての態様を実施させるように構成したプログラミング命令を有する製造物を記載する。
【発明を実施するための形態】
【０００４】
例示的な実施形態の様々な態様は、当業者が当業他者に作業の要旨を伝達するために共通に使用する用語を用いて説明する。しかし、説明される態様のいくつかのみを用いて別の実施形態を実施してもよいことは当業者には明らかであろう。説明上、具体的な数、材料、および構成は例示的な実施形態の完全な理解を提供するべく記述される。しかし、個別の詳細を用いずに別の実施形態を実施してもよいことは当業者には明らかであろう。他の例において、例示的な実施形態を不明瞭にしないように周知の特徴を省き、または単純化する。
【０００５】
更に、様々な動作は例示的な実施形態を理解するのに最も役立つ態様で順次、個別の複数の動作として記載される。しかし、説明の順序はこれらの動作が必ず順序に依存することを示唆するものとして解釈されるべきではない。具体的には、これらの動作を提示の順序で行う必要はない。更に、本開示の範囲内の方法は、説明するよりも多いか、または少ない段階を含むとしてもよい。
【０００６】
文言「いくつかの実施形態において」は繰り返して用いられる。一般に、当該文言は同一の実施形態を指さないが、その場合もある。用語「備える」、「有する」、および「含む」は、文脈が別途指示しない限り、同義である。文言「Ａおよび／またはＢ」は（Ａ）、（Ｂ）、または（ＡおよびＢ）を意味する。文言「Ａ／Ｂ」は文言「Ａおよび／またはＢ」と同様に、（Ａ）、（Ｂ）、または（ＡおよびＢ）を意味する。文言「Ａ、Ｂ、およびＣのうちの少なくとも１つ」は（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）を意味する。文言「（Ａ）Ｂ」は（Ｂ）または（ＡおよびＢ）を意味し、すなわちＡは任意選択である。
【０００７】
図１は、様々な実施形態によるマルチプロトコルのトンネリングＩ／Ｏ相互接続１０８を含むコンピュータ装置１００を記載する。多くの実施形態において、コンピュータ装置１００は１つまたは複数のプロセッサ１０２を含んでもよい。異なる実施形態において、１つまたは複数のプロセッサ１０２は１つのコアまたはマルチコアを含んでもよい。いくつかの実施形態において、装置１００はマルチプロセッサシステム（図示せず）であってもよく、この場合、プロセッサの各々は１つのコアまたはマルチコアを有する。
【０００８】
図１に示すように、１つまたは複数のプロセッサ１０２は、１つまたは複数のリンク（例えば相互接続、バス等）を介してシステムメモリ１０４に動作可能に結合してもよい。システムメモリ１０４は、１つまたは複数のプロセッサ１００がプログラムおよびオペレーティングシステムを動作させ、実行するために使用する情報を記憶可能としてもよい。異なる実施形態において、システムメモリ１０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の方式のような、使用可能な任意のタイプの読取可能かつ書込み可能なメモリであってもよい。
【０００９】
先に実装されたコンピュータ装置では、周辺機器をコンピュータシステムに接続するＩ／Ｏリンクはプロトコルに固有のコネクタポートについてプロトコルに固有であり、プロトコルに固有のコネクタポートは、プロトコルに固有のケーブルを用いて、プロトコルに固有のコネクタポート（すなわち、ＵＳＢキーボードデバイスはＵＳＢポートにプラグ接続され、ルーターデバイスはＬＡＮ／イーサネット（登録商標）ポートにプラグ接続される、等である）に互換性のある周辺機器を取り付けることを可能にする。任意の単一コネクタポートは、互換性のあるプラグおよび互換性のあるプロトコルを有する周辺機器に限定される。一度互換性のある周辺機器をコネクタポートにプラグ接続すると、周辺機器とプロトコルに固有のコントローラとの間に通信リンクが確立される。
【００１０】
図１に示す実施形態において記載するコンピュータ装置では、１つまたは複数のプロセッサ１０２はＩ／Ｏ複合体１０６に動作可能に結合されるとしてもよく、Ｉ／Ｏ複合体１０６は、１つまたは複数のＩ／Ｏリンクを制御するように構成した１つまたは複数のマルチプロトコルのＩ／Ｏ相互接続１０８を収容し、１つまたは複数のＩ／Ｏリンクは、１つまたは複数のプロセッサ１０２が１つまたは複数のＩ／Ｏ周辺機器１１０と通信することを可能にするとしてもよい。マルチプロトコル機能を提供するために、少なくとも部分的に、Ｉ／Ｏ相互接続１０８は、複数のＩ／Ｏプロトコルを通すように構成したマルチプロトコルのスイッチングファブリック１１４を含んでもよい。様々な実施形態において、マルチプロトコルのスイッチングファブリック１１４は複数のクロスバースイッチを備えてもよい。Ｉ／Ｏ周辺機器１１０の例としては、デバイスの中でもとりわけ、表示装置、キーボードデバイス、拡張ポート、デスクトップもしくはモバイルコンピュータシステム、またはルーターが挙げられ得る。
【００１１】
プロトコルに固有でないコネクタポート１１２は、デバイス１１０のコネクタポート１１２（図示せず）を有するＩ／Ｏ相互接続１０８を結合するように構成し、単一の物理的コネクタポート１１２を介して複数のデバイスタイプをコンピュータシステム１００に取り付けることを可能にしてもよい。更に、デバイス１１０とＩ／Ｏ複合体１０６との間のＩ／Ｏリンクは、複数のＩ／Ｏプロトコル（例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）、ＵＳＢ、ＤｉｓｐｌａｙＰｏｒｔ、ＨＤＭＩ（登録商標）等）を同時に通すように構成してもよい。様々な実施形態において、コネクタポート１１２はポート間、またはアップストリーム方向とダウンストリーム方向との間の帯域幅を共有することなく、両方向にフル帯域幅のリンクを提供してもよい。様々な実施形態において、Ｉ／Ｏ相互接続１０８とデバイス１１０との間の接続は電気的接続、光学的接続、または両方をサポートしてもよい。
【００１２】
装置１００はスタンドアロンデバイスであってもよく、またはデスクトップコンピューティングデバイス、モバイルコンピューティングデバイス（例えばラップトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、タブレット、ネットブック等）、携帯電話、スマートフォン、携帯情報端末、サーバ、ワークステーション、セットトップボックス、デジタル記録装置、ゲームコンソール、デジタルメディアプレーヤ、およびデジタルカメラ等、様々なコンピューティングデバイスおよび／または民生用電子デバイス／器具を含むが、これらに限定されない様々なシステム内に組み込まれてもよい。例示のシステム２００のブロック図は図２に示す。システム２００は、１つまたは複数のプロセッサ２０２、システムメモリ２０４、およびＩ／Ｏ複合体２０６を備え、これらの全てはバス１１５によって動作可能に結合するとしてもよい。Ｉ／Ｏ複合体２０６は１つまたは複数のマルチプロトコルのＩ／Ｏ相互接続２０８を含んでもよく、それらの各々はスイッチングファブリック２１４を含み、１つまたは複数のプロセッサ２０２が１つまたは複数のＩ／Ｏ周辺機器２１０と通信することを可能にする１つまたは複数のＩ／Ｏリンクを制御する。様々な実施形態において、システム２００は、より多いかまたはより少ないコンポーネント、ならびに／もしくは異なるアーキテクチャを有してもよい。
【００１３】
システム２００は、通信用インターフェース２１７を含み、通信用インターフェース２１７はバス２１５に動作可能に結合され、システム２００用のインターフェースを提供し、１つまたは複数のネットワークを介して、および／またはその他の任意の好適なデバイスを用いて通信するとしてもよい。通信用インターフェース２１７は、任意の好適なハードウェアおよび／またはファームウェアを含むとしてもよい。一実施形態のための通信用インターフェース２１７は、例えばネットワークアダプタ、無線ネットワークアダプタ、電話モデム、及び／または無線モデムを含むとしてもよい。無線通信については、一実施形態のための通信用インターフェース２１７は、１つまたは複数のアンテナ２２１を有する無線ネットワークインターフェースコントローラ２１９を含み、無線ネットワークの１つまたは複数のコンポーネントとの無線通信リンクを確立および維持するとしてもよい。システム２００は、１つまたは複数の無線ネットワークの規格および／またはプロトコルのうちの任意のものにより、無線ネットワークのうちの１つまたは複数のコンポーネントと無線で通信してもよい。
【００１４】
システム１００は、例えばブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、または他の好適な表示装置等の表示装置２２３を含み、表示装置２２３は情報を表示するためにバス２１５に動作可能に結合されるとしてもよい。様々な実施形態において、表示装置２２３はシステム２００と相互接続された周辺機器であってもよい。これらの実施形態の様々なものにおいて、そのような表示装置はマルチプロトコルポート２１２によってＩ／Ｏ複合体２０６と相互接続してもよい。
【００１５】
本明細書に説明するように、複数のＩ／Ｏプロトコルを通すことができるＩ／Ｏ相互接続を提供すべく、本明細書に説明される様々なＩ／Ｏ相互接続のうちの１つまたは複数は、とりわけ、図３に示す複数のクロスバースイッチを備えるマルチプロトコルのスイッチングファブリック３１４を含むとしてもよい。マルチプロトコルのスイッチングファブリック３１４は、本明細書に説明される他のマルチプロトコルのスイッチングファブリックと類似してもよい。一般に、スイッチ３１６ａ、３１６ｂは、任意の入力ポートから任意の出力ポートへとパケットをルーティングする能力を有する複数のポート３２０ａ、３２０ｂ、３２２ａを備えるデバイスである。様々な実施形態において、スイッチ３１６ａ、３１６ｂは任意の数のポート３２０ａ、３２０ｂ、３２２ａを備え、その各々は内部制御ポート３２６ａ、３２６ｂを更に含むとしてもよい。本明細書でより詳細に説明するように、スイッチ３１６ａ、３１６ｂはそれぞれ、マルチプロトコルのスイッチングファブリック３１４全体で時間を配分および同期化するときに使用すべく、時間管理ユニット３３０ａ、３３０ｂを任意選択で含んでもよい。
【００１６】
スイッチ３１６ａは単一の光学的リンクまたは電気的リンクに接続するように構成したヌルポート３２０を含む第１のタイプのスイッチを表すとしてもよいが、一方でアダプタポート３２２ａは１つまたは複数のマッピングされたＩ／Ｏプロトコルリンクに接続するとしてもよい。アダプタポート３２２ａは、マッピングされたＩ／Ｏプロトコルのエンティティをマルチプロトコルのスイッチングファブリック３１４に接続するように用いてもよい。本明細書で使用するように、用語「アダプタ」はマッピングされたＩ／Ｏプロトコルパケットを、マルチプロトコルのスイッチングファブリック３１４を介して流れるＩ／Ｏパケットにカプセル化するスイッチポートに構築することができる、プロトコル適合機能を指すものとして使用してもよい。
【００１７】
スイッチ３１６ｂは、単一の光学的または電気的リンクに接続するように構成したヌルポート３２０ｂ（ヌルポート３２０ａと同様の）のみを含む第２のタイプのスイッチを表すとしてもよい。
【００１８】
図３に図示するスイッチ３１６ａ、３１６ｂはそれぞれ、４つのアダプタポート３２２ａ、および４つのヌルポート３２０ａ、３２０ｂを含むが、ポート３２０ａ、３２０ｂ、３２２ａの実際の数は示すものよりも少ないか、または多くてもよい。スイッチ３１６ａとスイッチ３１６ｂとの間に接続性を提供するべく、一般に、スイッチ実装は少なくとも１つのヌルポートおよび少なくとも１つのアダプタポート、または少なくとも２つのヌルポートのいずれかを最低限含む。
【００１９】
様々な実施形態において、マルチプロトコルのスイッチングファブリック３１４は、１つまたは複数の第１のタイプのスイッチ３１６ａおよび１つまたは複数の第２のタイプのスイッチ３１６ｂを備えるとしてもよい。
【００２０】
本開示の範囲内において、スイッチングファブリックのアダプタポート間に様々なマルチプロトコルのトンネリングを実装するべく、接続マネージャー（図示せず）を提供するとしてもよい。接続マネージャーは、ソフトウェアまたはファームウェア内で、Ｉ／Ｏ複合体内の論理として、システムＢＩＯＳの一部として、またはコンピュータ装置、またはＩ／Ｏ複合体が含まれるシステム上で走るオペレーティングシステム内で実装するとしてもよい。
【００２１】
Ｉ／Ｏ複合体のマルチプロトコル相互接続アーキテクチャ用の例示的なプロトコルスタックは、図４に示す。電気的および光学的サブレイヤ、論理サブレイヤ、トランスポート層、およびフレーム層はＩ／Ｏ複合体のベースのマルチプロトコル相互接続アーキテクチャを定義し、物理層は、電気的サブレイヤ、光学的サブレイヤ、および論理サブレイヤを備えるとしてもよい。マッピングされたプロトコル層は、マルチプロトコル相互接続アーキテクチャへの個別のＩ／Ｏプロトコルのマッピングを記載し得る。
【００２２】
様々な実施形態で、図３および図４を参照すると、トランスポート層は、マルチプロトコルのスイッチングファブリック３１４のスイッチ３１６ａ、３１６ｂの全てのポート３２０ａ、３２０ｂ、３２２ａによって実装するとしてもよく、物理層は全てのヌルポート３２０ａ、３２０ｂによって実装するとしてもよく、アダプタポート３２２ａは単一のマッピングされたプロトコル層またはフレーム層を実装するとしてもよい。
【００２３】
プロトコル階層化の例示的な実装を図５に示す。示す例において、２つのプロトコルはスイッチ５１６ａ、５１６ｂ、５１６ｃ、５１６ｄを用いて実装する。スイッチ５１６ａ、５１６ｂ、５１６ｃ、５１６ｄの各々は、制御ポート５２６ａ、５２６ｂ、５２６ｃ、５２６ｄ、および時間管理ユニット５３０ａ、５３０ｂ、５３０ｃ、５３０ｄを含む。
【００２４】
示すように、アダプタポート５２２ａ１、５２２ｃは第１のプロトコル層（またはフレーム層）「プロトコル１」を実装し、アダプタポート５２２ａ２、５２２ｄは第２のプロトコル層（またはフレーム層）「プロトコル２」を実装する。全てのポートはトランスポート層を実装するが、一方で物理層は全てのヌルポート５２０ａ、５２０ｂ、５２０ｃ、５２０ｄによって実装する。
【００２５】
従って、スイッチのポート間のリンク（例えばリンク５３２）は、マルチプロトコルのスイッチングファブリックのアダプタポート間のファブリックを横断する複数のパスによって有効に共有することができる。様々な実施形態において、マルチプロトコル相互接続アーキテクチャは接続指向であり、従って、パスは、データ転送を行う前に、エンドツーエンドで構成するとしてもよい。パスはマルチプロトコルのスイッチングファブリックを介して１つまたは複数のリンクを横断するとしてもよく、各ホップ、パスは全てのパケットのヘッダーで運ばれ得るローカルに一意な識別子を割り当てられてもよく、全てのパケットはパスに関連付けられる。様々な実施形態において、パスに属するパケットはマルチプロトコルのスイッチングファブリック内で再度順序付けられない場合がある。バッファ割振り（フロー制御）およびサービスの品質は１パス毎のベースで実装してもよい。従って、パスは、マルチプロトコルのスイッチングファブリック全体でマッピングされたＩ／Ｏプロトコルのための仮想ワイヤセマンティクスを提供するとしてもよい。
【００２６】
様々な実施形態において、スイッチ（ドメイン）の集合の物理トポロジは任意に相互接続したグラフであってもよい。図６Ａはスイッチ１〜６のドメインの物理トポロジの例を示す。ドメインは運用のコンセプトというよりはむしろ管理のコンセプトであることに留意されたい。様々な実施形態において、先に説明したように、接続マネージャーはスイッチングファブリックのドメインを構成してもよい。更なる管理のために、マルチプロトコル装置はスパニングツリーを作成するように構成してもよい（例えば接続マネージャーによって）。図６Ｂは図６Ａのドメインを管理するために作成された例示的なスパニングツリーを示し、スパニングツリーの上部のスイッチ１はルートスイッチと呼ばれることがある。
【００２７】
スパニングツリーは好適な任意の数のレベルを含むとしてもよいことに留意されたい。様々な実施形態において、スパニングツリーのレベルの最大数は７である場合がある。
【００２８】
図７はドメイン内のスパニングツリーの例を示す。ドメイン内のスイッチのそれぞれに対する一意なトポロジＩＤの例示的な割り当ても示す。例えば、スイッチＪは０、４、１、１、２、１、８のトポロジＩＤを有する。様々な実施形態において、一意なトポロジＩＤはドメインのあらゆるスイッチに割り当てるとしてもよく、各トポロジＩＤはドメインのスパニングツリー内のスイッチ位置を表すとしてもよい。様々な実施形態において、トポロジＩＤの割り当ては初期化中に接続マネージャーによって行ってもよく、そのときにドメインは到達可能なスイッチを列挙して作成してもよく、トポロジＩＤは各スイッチについて割り当ててもよい。
【００２９】
図７に示すように、ドメインは７つのレベル（レベル０〜６）を含み、スイッチのそれぞれのトポロジＩＤは７つのポート番号のシーケンスであり、ルートスイッチから自身に向かうパス上のツリーの各レベルにおけるイグレスポートを表す。Ｘの深度におけるスイッチのトポロジＩＤ（この例ではＸは０〜６である）は、レベル０〜Ｘ‐１についてはゼロでないポート番号を含むとしてもよい。深度Ｘでのポート番号は０としてもよく、深度Ｘにおけるスイッチの制御ポートを示す。深度Ｘ＋１〜６のポート番号は、「考慮しない」ものとして扱うとしてもよく、０に設定してもよい。従って、以下に示す例において、ルートスイッチにおける制御ポートは０、０、０、０、０、０のトポロジＩＤを有する。
【００３０】
様々な実施形態において、ダウンストリームを流れる構成パケットのルーティング（スパニングツリーに対して）は、対象スイッチのトポロジＩＤに基くとしてもよい。構成パケットはトランスポート層パケットのヘッダーでルーティングしてもよい。様々な実施形態において、アップストリームを流れる構成パケットはトポロジＩＤを用いなくてもよく、簡単に言えば、各スイッチのアップストリームポートを介して転送するとしてもよい。通常、あらゆる構成パケットは自身のペイロードに含まれるルートストリングを運ぶ。ルートストリングの例示的なフォーマットを図８に示す。示すように、ルートストリングは本質的にはスイッチのトポロジＩＤであり、スイッチに対して構成要求を送信し、またはスイッチから構成応答が出されるとしてもよい。ルートストリングのＭＳＢビット（ＣＭビット）は、構成メッセージがダウンストリームを（接続マネージャーからスイッチに）流れるときに０に設定し、メッセージがアップストリーム方向に流れるときに１に設定するとしてもよい。
【００３１】
様々な実施形態において、各スイッチは接続マネージャーにより、自身のトポロジＩＤおよびスパニングツリー内のレベルと共に構成するとしてもよい。また、各スイッチは、ハードウェアストラッピングまたは他の類似のメカニズムにより、アップストリームをドメインの接続マネージャーに向けさせるポート番号と共に構成するとしてもよい。様々な実施形態において、トポロジＩＤ、深度（ツリー内の）、およびポートに向かうアップストリームは、列挙する間に接続マネージャーによって初期化されるあらゆるスイッチのスイッチ構成スペース内の構成レジスタであってもよい。トポロジＩＤ構成レジスタの例示的なフォーマットを図９に示す。図示する例において、トポロジＩＤのＭＳＢは有効なフラッグであってもよく、有効なフラッグは接続マネージャーにより、リセット時に０に設定され、トポロジＩＤが初期化されるときには１に設定されるとしてもよい。トポロジＩＤの予約したビットは０に設定されるとしてもよい。
【００３２】
ツリーを下に流れる構成パケットは、１つまたは複数の規則に従ってスイッチの制御ポートによりルーティングするとしてもよい。例えば、様々な実施形態で、スイッチの制御ポートには、ツリー内での構成レベルに対応するルートストリングからポートを抽出するように要求するとしてもよい。様々な実施形態において、ポートが０である場合、制御ポートにパケットを消費するように要求するとしてもよい。様々な実施形態において、ポートがゼロでない場合、制御ポートにルートストリングから抽出したポートに一致するスイッチポートを介してパケットを転送するように要求するとしてもよい。
【００３３】
様々な実施形態において、スパニングツリーを上に流れる構成パケットは簡単に言えば、ポートに向かう構成アップストリームを介して転送してもよい。
【００３４】
多重ドメインは、様々な実施形態において相互接続されるとしてもよい。図１０は多重ドメイン間で確立され得る例示的接続を示す。示すように、ドメイン１のスイッチ１〜６は、ドメイン２のスイッチＡ〜Ｅと相互接続されるとしてもよい。
【００３５】
様々な実施形態において、ドメイン間リンクは、接続マネージャーが電源をオンにした後にトポロジの初期検出を行うとき、またはホットプラグイベントを処理することによるかのいずれかで検出するとしてもよい。リンク全体でスイッチのスイッチ構成スペースを読み取ると、エラーパケットが生じて送信され、トポロジＩＤフィールドが以前に割り当てられたことを示す場合に、リンクはドメイン間リンクとなるように指定するとしてもよい。ドメイン間リンクを検出すると、接続マネージャーはシステムソフトウェアに通知するとしてもよい。通知を配信するために用いるメカニズムは、実装により定義してもよい。
【００３６】
様々な実施形態において、トランスポート層は、ドメイン間リンクによって接続されるドメインの２つの接続マネージャー間のドメイン間構成パケットのルーティングを定義するのみであってもよい。多重ドメイン全体での構成パケットのルーティングは、システムソフトウェアによって制御するとしてもよい。ドメインがデージーチェーン接続されるとき、元のドメインから進む構成パケットは、ターゲットドメインへのパスに沿うあらゆるドメインの接続マネージャーに配信するとしてもよい。中間ドメインの接続マネージャーは、ターゲットドメインに向かうドメイン間リンク全体でパケットを中継する役割を担い得るシステムソフトウェアに、構成パケットを渡すとしてもよい。
【００３７】
ドメイン間要求パケットのルーティングは１つまたは複数の規則に従ってもよい。例えば、様々な実施形態で、元のドメイン上のシステムソフトウェアは、ドメイン間リンクに接続するドメインのイグレスポートを指し示すルートストリングで要求パケットを形成するとしてもよく、パケットはドメイン間リンクを介して転送しなければならず、ＣＭビットは０に設定するとしてもよい。パケットがドメイン内の各ホップにおけるルートストリングに基いてルーティングされ、かつ、ドメイン間リンク全体でイグレスポートを介して転送されるように要求するとしてもよい。受信ドメインのイングレスポートで、制御ポートは、パケットが受信されたイングレスポートを指し示すルートストリングを再マッピングするとしてもよく、ＣＭビットを１に設定してもよい。様々な実施形態において、その後、他のドメイン内構成パケットと同様に、パケットが受信ドメインの接続マネージャーにルーティングされるように要求してもよい。パケットが受信ドメインの接続マネージャーによってシステムソフトウェアに配信されるように要求してもよい。
【００３８】
ドメイン間応答パケットのルーティングは、１つまたは複数の上記の段階に従うとしてもよい。様々な実施形態において、応答パケットを確立するシステムソフトウェアは、対応する要求パケットでのルートストリングを用いてもよく、ＣＭビットは０に設定される。
【００３９】
様々な実施形態において、トランスポート層は、マルチプロトコルのスイッチングファブリックを通したフローに対する階層状の信用ベースのフロー制御スキームを使用して、輻輳による受信バッファの過剰なフローを阻止または最小化するとしてもよい。様々な実施形態において、フロー制御スキームは、受信機が１パス毎の専用バッファから複数のパスが動的に共有する共有バッファプールに及ぶ、様々なバッファ割振り戦略を実装することを可能にしてもよい。様々な実施形態において、フロー制御は１パス毎のベースでオフにするとしてもよい。１つのパスについてフロー制御をオフにするとき、当該パスに、各リンクで少なくとも１つの最大サイズのトランスポート層パケット保持することができる受信バッファを提供するように要求するとしてもよい。
【００４０】
図１１は、様々な実施形態による、例示的なＩ／Ｏ複合体１１０６を示す。Ｉ／Ｏ複合体１１０６は、デバイス１１１０と結合するように構成したＩ／Ｏ相互接続１１０８を含む図１のＩ／Ｏ複合体１０６に類似してもよい。デバイス１１１０は、１つまたは複数のＩ／Ｏプロトコル（例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）、ＵＳＢ、ＤｉｓｐｌａｙＰｏｒｔ、ＨＤＭＩ（登録商標）等）を用いて構成してもよい。
【００４１】
様々な実施形態において、Ｉ／Ｏ複合体１１０６は、トンネルしたＩ／ＯプロトコルのＯＳソフトウェアスタックにトランスペアレントな態様で共通のリンクを介して複数のＩ／Ｏプロトコルをトンネルすべく、Ｉ／Ｏ相互接続１１０８を介してデバイス１１１０を１つまたは複数のプロトコルに固有のコントローラ１１０９ａ、１１０９ｂ，...，１１０９ｎに接続するように構成するとしてもよい。その後、プロトコルに固有のコントローラ１１０９ａ、１１０９ｂ，...，１１０９ｎは、デバイス１１１０がプロトコルに固有のコントローラ１１０９ａ、１１０９ｂ，...，１１０９ｎに直接接続される場合と同様に、デバイス１１１０を構成するＯＳ内のそれぞれのプロトコルに固有のドライバと通信するように構成するとしてもよい。
【００４２】
図１２は、トンネルしたＩ／Ｏプロトコルのオペレーティングシステムソフトウェアスタックにトランスペアレントな態様で、共通のリンクを介して複数のＩ／Ｏプロトコルをトンネルするように構成したマルチプロトコル装置（例えば図１の装置１００等）の例示的なハードウェアおよびソフトウェア実装を示す。様々な実施形態において、マルチプロトコル装置は、マルチレベルのホットプラグシグナリングスキームを使用して、ソフトウェアトランスペアレントな態様で、共通の相互接続を介して複数のＩ／Ｏプロトコルのトンネリングをサポートするとしてもよい。
【００４３】
図１２に示す実装のために、Ｉ／Ｏホットプラグ表示は、デバイス１２１０を装置１２００のプロトコルに固有でないコネクタポート１２１２にプラグ接続するとき、Ｉ／Ｏ相互接続１２０８によってＯＳ内のＩ／Ｏドライバに（または埋め込みＩ／Ｏファームウェアに）送信するとしてもよい。次いで、ホットプラグ表示は、ＯＳ／ファームウェア内のＩ／Ｏドライバ１２１３によって処理し、Ｉ／Ｏ相互接続１２０８とデバイス１２１０との間に確立される通信パスをもたらすとしてもよい。様々な実施形態において、通信パスを確立する段階は、ドメイン内のソースアダプタと行先アダプタとの間に１つまたは複数のパスを構成する段階を含むとしてもよい（別により詳細に説明する）。一度パスを確立すると、関連するプロトコル固有のコントローラ１２０９ａ、１２０９ｂ，...，１２０９ｎがＯＳ／ファームウェア内のそれぞれのプロトコルに固有のドライバ１２１１ａ、１２１１ｂ，...，１２１１ｎにプロトコルに固有のホットプラグ表示を送信し得る、マッピングされたＩ／Ｏプロトコルに固有の構成を実行するとしてもよい。その後、プロトコルに固有のドライバ１２１１ａ、１２１１ｂ，...，１２１１ｎは、デバイス１２１０がプロトコルに固有のコントローラ１２０９ａ、１２０９ｂ，...，１２０９ｎに直接接続されるのと同様に、関連するプロトコル固有のコントローラ１２０９ａ、１２０９ｂ，...，１２０９ｎを構成するとしてもよい。この時点で、周辺機器１２１０はシステムソフトウェアに可視となり、アプリケーションによって使用ように構成するとしてもよい。
【００４４】
様々な実施形態において、装置１２００は、デバイス１２１０をポート１２１２から切断すると、逆シーケンスのイベントが発生し得るように構成してもよい。具体的には、プロトコルに固有のドライバ１２１１ａ、１２１１ｂ，...，１２１１ｎはプロトコルに固有のアンプラグイベントを処理するとしてもよく、次いでプロトコルに固有の処理後に、Ｉ／Ｏドライバ１２１３はＩ／Ｏアンプラグイベントを処理するとしてもよい。
【００４５】
本明細書に記載する周辺機器（例えばデバイス１１０、２１０、１１１０、または１２１０）は、先に注記したように、様々なタイプのデバイスのうちの任意の１つであってもよい。様々な実施形態において、周辺機器は拡張ポート（または他のマルチプロトコルの周辺機器）であってもよく、拡張ポートに１つまたは複数の他のデバイスが１つまたは複数のＩ／Ｏプロトコルを用いて結合されるとしてもよい。例えば、周辺機器が拡張ポートである実施形態については、デバイスはＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）デバイスおよびＤｉｓｐｌａｙＰｏｒｔデバイスと同時に結合するとしてもよく、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）デバイスおよびＤｉｓｐｌａｙＰｏｒｔデバイスは拡張ポートデバイスを介してＩ／Ｏ複合体と結合するとしてもよい。別の例において、周辺機器はモバイルまたはデスクトップコンピュータシステムであってもよく、１つまたは複数の他のデバイスは、モバイルまたはデスクトップコンピュータシステムと、そして周辺機器を介してＩ／Ｏ複合体と結合するとしてもよい。様々な実施形態において、複数の周辺機器はデバイスを一緒にデージーチェーン接続して、一緒に結合するとしてもよい。
【００４６】
様々な実施形態において、周辺機器および／または周辺機器に結合した他のデバイスは、本明細書に記載するＩ／Ｏ相互接続１０８、２０８、１１０８、１２０８のうちの１つまたは複数に類似するＩ／Ｏ相互接続も含むとしてもよい。例えば図１３に示すように、マルチプロトコルの相互接続１３０１を含むデバイス１３１０は、マルチプロトコルのスイッチングファブリック１３０３を同様に含み、マルチプロトコルの相互接続１３０８およびスイッチングファブリック１３１４をやはり含むコンピュータ装置１３００と相互接続するように構成するとしてもよい。他の１つまたは複数の周辺機器１３０５ａ、１３０５ｂ，...，１３０５ｎは、１つまたは複数の対応するプロトコルに固有でないポート１３１２を介してＩ／Ｏ相互接続１３０１と相互接続してもよい。
【００４７】
図１４は、本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を構成する例示的な方法１４００の流れ図である。方法１４００は、ブロック１４０２〜１４１０が例示する１つまたは複数の機能、動作、またはアクションを含むとしてもよい。
【００４８】
方法１４００の処理は、プロトコルに固有でないコントローラのスイッチングファブリックの複数のスイッチを識別し、ブロック１４０２から開始することができる。
【００４９】
方法１４００は、複数のスイッチのスパニングツリー表現を作成し、ブロック１４０４に進むことができる。
【００５０】
方法１４００は、スパニングツリーの複数のスイッチのスイッチに一意な識別（ＩＤ）を割り当て、ブロック１４０６に進むことができる。様々な実施形態において、ＩＤはスパニングツリー内のスイッチの相対的位置を表すことができる。
【００５１】
方法１４００は、スイッチのそれぞれの１つまたは複数のレジスタにおけるスイッチ（スパニングツリー内）のＩＤおよび深度を記憶して、ブロック１４０８に進むことができる。
【００５２】
方法１４００は、それぞれのＩＤに少なくとも部分的に基いて、構成パケットをスパニングツリーを介してスイッチにルーティングして、ブロック１４１０に進むことができる。
【００５３】
図１５は、本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータ装置を操作する例示的な方法の流れ図である。方法１５００は、ブロック１５０２〜１５２２が例示する１つまたは複数の機能、動作、またはアクションを含むとしてもよい。
【００５４】
方法１５００の処理は、周辺機器がマルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータ装置のプロトコルに固有でないポートにプラグ接続されたかどうかを判断して、ブロック１５０２から開始することができる。プラグ接続は、プロトコルに固有でないポートと直接に結合する周辺機器、および／またはプロトコルに固有でないポートと直接に結合する、他のいくつかの周辺機器に直接に結合するターゲット周辺機器を指すことがある。後者の実施形態において、１つまたは複数の他の周辺機器は、ターゲット周辺機器とプロトコルに固有でないポートとの間に動作可能に配置するとしてもよい。周辺機器がプラグ接続されていない場合、ブロック１５０２の処理を反復するとしてもよい。様々な実施形態において、コンピュータ装置は、周辺機器がいつプラグ接続（例えばホットプラグ接続）されたかを表示する割込み信号を発するように構成するとしてもよい。
【００５５】
方法１５００の処理は、データパケットを受信したかどうかを判断してブロック１５０４に進むことができる。データパケットを受信しない場合、ブロック１５０４の処理を反復するとしてもよい。様々な実施形態において、データパケットを周辺機器またはコンピュータ装置内部から受信するとしてもよい。様々な実施形態において、コンピュータ装置内のデータパケットは、マルチプロトコルのトンネリングＩ／Ｏ相互接続により、コンピュータ装置のプロトコルに固有のコントローラ（「ホストプロトコルに固有なコントローラ」）から受信するとしてもよい。
【００５６】
方法１５００の処理は、データパケットを周辺機器またはホストプロトコルに固有のコントローラから受信したかどうかを判断して、ブロック１５０６に進むことができる。データパケットを受信しなかった場合、ブロック１５０６の処理を反復するとしてもよい。
【００５７】
周辺機器からデータパケットを受信した場合、方法１５００の処理は第１のプロトコルのパケットを、Ｉ／Ｏ相互接続のスイッチングファブリックを介してルーティングされるように構成した第１のトランスポート層パケット内にカプセル化して、ブロック１５０８に進むことができる。様々な実施形態において、第１のプロトコルと異なる第２のプロトコルのパケットは、スイッチングファブリックを介してルーティングする第２のトランスポート層パケット内にもカプセル化するとしてもよい。
【００５８】
方法１５００の処理は、Ｉ／Ｏ相互接続のスイッチングファブリックを介して第１および第２のトランスポート層パケットを同時にルーティングして、ブロック１５１０に進むことができる。
【００５９】
方法１５００の処理は、トランスポート層パケットをデカプセル化して、ブロック１５１２に進むことができる。様々な実施形態において、デカプセル化はスイッチングファブリックのスイッチのアダプタポートで行うとしてもよい。
【００６０】
方法１５００の処理は、コンピュータ装置の異なるホストプロトコルに固有なコントローラにデカプセル化したパケットをルーティングして、ブロック１５１４に進むことができる。
【００６１】
データパケットを周辺機器から受信した場合、方法１５００の処理は、第１のプロトコルのパケットを、Ｉ／Ｏ相互接続のスイッチングファブリックを介してルーティングされるように構成した第１のトランスポート層パケット内にカプセル化してブロック１５０６からブロック１５１６に進むことができる。様々な実施形態において、第１のプロトコルと異なる第２のプロトコルのパケットも、スイッチングファブリックを介してルーティングする第２のトランスポート層パケットにカプセル化するとしてもよい。
【００６２】
方法１５００の処理は、Ｉ／Ｏ相互接続のスイッチングファブリックを介して第１および第２のトランスポート層パケットを同時にルーティングして、ブロック１５１８に進むことができる。
【００６３】
方法１５００の処理は、トランスポート層パケットをデカプセル化してブロック１５２０に進むことができる。様々な実施形態において、デカプセル化は、スイッチングファブリックのスイッチのアダプタポートで行うとしてもよい。
【００６４】
方法１５００の処理は、コンピュータ装置のプロトコルに固有でないポートを介して周辺機器にデカプセル化したパケットをルーティングして、ブロック１５２２に進むことができる。
【００６５】
図１６は、本開示の様々な実施形態による、マルチプロトコルのトンネリングＩ／Ｏ相互接続を含むコンピュータ装置をホットプラグ接続する例示的な方法の流れ図である。方法１６００は、ブロック１６０２〜１６０６が例示する１つまたは複数の機能、動作、またはアクションを含むとしてもよい。
【００６６】
方法１６００の処理は、コンピュータ装置に接続された周辺機器に応答してコンピュータ装置のマルチプロトコルの相互接続のスイッチングファブリックのポート間に第１の通信パスを確立して、ブロック１６０２から開始することができる。様々な実施形態において、周辺機器は、プラグまたは類似のコネクタによってコンピュータ装置に接続することができる。様々な実施形態において、周辺機器は、コンピュータ装置のプロトコルに固有でないポートでコンピュータ装置に直接接続するとしてよく、および／またはターゲット周辺装置は、プロトコルに固有でないポートと直接結合されたいくつかの他の周辺機器に直接結合されるとしてもよい。後者の実施形態において、１つまたは複数の他の周辺機器は、ターゲット周辺装置とプロトコルに固有でないポートとの間に動作可能に配置するとしてもよい。
【００６７】
様々な実施形態において、第１の通信パスの確立は、マルチプロトコルの相互接続がコンピュータ装置のＩ／Ｏドライバに送信した第１のホットプラグ表示に少なくとも部分的に基いて行うとしてもよい。
【００６８】
方法１６００の処理は、スイッチングファブリックとコンピュータ装置のプロトコルに固有のコントローラとの間に第２の通信パスを確立して、ブロック１６０４に進むことができる。
【００６９】
様々な実施形態において、第２の通信パスの確立は、プロトコルに固有のコントローラがそれぞれのプロトコルに固有のドライバに送信した第２のホットプラグ表示に少なくとも部分的に基いて行うとしてもよい。
【００７０】
方法１６００の処理は、マルチプロトコルの相互接続によって、第１および第２の通信パスを介して周辺機器からプロトコルに固有のコントローラへと、周辺機器のプロトコルのパケットをルーティングし、ブロック１６０６に進むことができる。
【００７１】
様々な実施形態において、プロトコルは第１のプロトコルであってもよく、方法１６００は、マルチプロトコルの相互接続によって、他の周辺機器から第２のプロトコルに固有のコントローラへと、別の周辺機器の第２のプロトコルのパケットをルーティングする段階を更に備えるとしてもよい。第２のプロトコルのパケットをルーティングする段階は、第１の通信パスを介して第２のプロトコルのパケットをルーティングする段階を含むとしてもよい。第１のプロトコルのパケットをルーティングする段階および第２のプロトコルのパケットをルーティングする段階は、本明細書に記載するように同時に行うとしてもよい。第１のプロトコルおよび第２のプロトコルは、同一または異なるプロトコルであってもよい。
【００７２】
様々な実施形態において、ブロック１６０２〜１６０６が例示する機能、動作、またはアクションの１つまたは複数は、図１４および図１５に例示する機能、動作、またはアクションの１つまたは複数と共に行うとしてもよい。例えば、様々な実施形態において、ブロック１６０２および１６０４は、図１５に記載する方法のブロック１５０６とブロック１５０８との間で行うとしてもよい。
【００７３】
様々な実施形態において、製造物を使用し、本明細書に開示する１つまたは複数の方法を実装するとしてもよい。図１７は例示的な製造物１７００を記載する。示すように、製造物１７００は、コンピュータ読取可能な非一時的記憶媒体１７０２および記憶媒体１７０２を含むとしてもよい。記憶媒体１７０２は装置に、本開示の実施形態によるマルチプロトコルのトンネリングのいくつかまたは全ての態様を実施させるように構成したプログラミング命令１７０４を含むとしてもよい。
【００７４】
記憶媒体１７０２は、フラッシュメモリ、光学ディスク、または磁気ディスクを含むがこれらに限定されない、当技術分野で既知の広範な持続性記憶媒体を表し得る。具体的には、プログラミング命令１７０４は、装置が、装置による実行に応答して本明細書に記載する様々な動作を行うことを可能にするとしてもよい。例えば、記憶媒体１７０２は、本開示の実施形態により、例えば図１４、図１５、および図１７の方法のマルチプロトコルのトンネリングのいくつかまたは全ての態様を装置に実施させるように構成したプログラミング命令１７０４を含むとしてもよい。
【００７５】
様々な例示的方法、装置、システム、および製造物を本明細書で説明したが、本開示が包含する範囲はこれらに限定されるものではない。むしろ、本開示は字義通りまたは均等論の下で添付の特許請求の範囲内にほぼ含まれる全ての方法、装置、製造物を包含する。例えば、上記はコンポーネントの中でもとりわけ、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む例示的なシステムを開示するが、そのようなシステムは例示的であるのみであり、限定的とはみなされるべきでないことに留意されたい。具体的には、開示されるハードウェアコンポーネント、ソフトウェアコンポーネント、および／またはファームウェアコンポーネントのいずれかまたは全ては、ハードウェアのみで、ソフトウェアのみで、ファームウェアのみで、またはハードウェア、ソフトウェア、および／またはファームウェアのいくつかを組み合わせて実施し得ることを企図する。
【図１】
0005881264.tif 000002
【図２】
0005881264.tif 000003
【図３】
0005881264.tif 000004
【図４】
0005881264.tif 000005
【図５】
0005881264.tif 000006
【図６Ａ】
0005881264.tif 000007
【図６Ｂ】
0005881264.tif 000008
【図７】
0005881264.tif 000009
【図８】
0005881264.tif 000010
【図９】
0005881264.tif 000011
【図１０】
0005881264.tif 000012
【図１１】
0005881264.tif 000013
【図１２】
0005881264.tif 000014
【図１３】
0005881264.tif 000015
【図１４】
0005881264.tif 000016
【図１５】
0005881264.tif 000017
【図１６】
0005881264.tif 000018
【図１７】
0005881264.tif 000019