【実施例】
【0012】
図1は、統合マルチ転送媒体コネクタ・アーキテクチャのシステムレベルの実現形態の一実施例を表す図である。多くの実施例では、システムは、中央処理装置(CPU)100などの1つ又は複数のプロセッサを含む。他の実施例では、CPU100は1つのコア又は複数のコアを有し得る。一部の実施例では、プロセッサそれぞれが1つのコア又は複数のコアを有するマルチプロセッサ・システム(図示せず)である。
【0013】
CPU100は、1つ又は複数の高速リンク(すなわち、相互接続、バス等)を介してシステム・メモリ102に結合される。システム・メモリ102は、プログラム及びオペレーティング・システムを動作させ、実行するためにCPU100が利用する情報を記憶することができる。他の実施例では、システム・メモリ102は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の形態などの何れかの使用可能なタイプの読み取り及び書き込み可能なメモリであり得る。
【0014】
一部の実施例では、CPU100は、更に、更なる高速リンクを介して個別グラフィクス・コントローラ104に結合される。個別グラフィクス・コントローラ104は、スロット・コネクタを介してマザーボード又は前述の他の印刷回路基板に物理的に結合し得る。多くの実施例では、個別グラフィクス・コントローラは、PCIエクスプレス(登録商標)スロット・コネクタに差し込まれるPCIエクスプレス(登録商標)グラフィクス・コントローラ/カードであり得る。この場合、PCIエクスプレス(登録商標)グラフィクス・コントローラ/カードは、西暦2006年12月20日付で公表されたPCIエクスプレス(登録商標)基本仕様(Rev. 2.0)などの仕様の改訂に準拠し得る。他の実施例では、個別グラフィクス・コントローラは、PCIエクスプレス(登録商標)以外のプロトコルを利用する。一部の実施例では、CPU100は、複数の個別グラフィクス・コントローラに結合される(複数の個別グラフィクス・コントローラを有する実施例は示していない)。
【0015】
CPU100は、多くの実施例において、I/Oコンプレクス106にも結合される。I/Oコンプレクス106は、1つ又は複数のI/Oホスト・コントローラを収容し、そのそれぞれは、コンピュータ・システムに接続されたI/O周辺装置とCPU100が通信することを可能にする1つ又は複数のI/Oリンクを制御し得る。ディスプレイ108及び無線ルータ110などのI/O周辺装置は、コンピュータ・システムに接続し得るI/O周辺装置の例である。
【0016】
多くの実施例では、I/Oコンプレクス106は、個別ネットワーク・インタフェース・コントローラ(NIC)114に結合される。個別NIC114は、コンピュータ・システムの外部の1つ又は複数のネットワークと、コンピュータ・システムとの間のインタフェースを提供することができる。前述のネットワ―クは、コンピュータが、配置されたドメイン内の無線及び有線イントラネット・ネットワークなどのネットワークを含み得るか、又はインターネット自体も含み得る。
【0017】
多くの実施例では、
図1のシステムは、1つ又は複数の高速リンクを介して1つ又は複数の統合コネクタ・ポートに結合された統合マルチ転送媒体コネクタ・アーキテクチャ(UMTM)ルータ/スケジューラ116を含む。ここでは、4つの統合コネクタ・ポート(ポート118、ポート120、ポート122、及びポート124)を示す。UMTMルータ/スケジューラ116は、前述の通り、1つ又は複数のI/Oリンクを介してI/Oコンプレクス106にも結合される。前述には、汎用シリアル・バス(USB)及び/又は何れかの他の潜在的なI/OリンクなどのI/Oリンクを含む。
図1は、前述の3つのリンク(I/Oリンク126、I/Oリンク128、及びI/Oリンク130)を示す。
【0018】
UMTMルータ/スケジューラ116は、多くの実施例では、コンピュータ・システムにおけるマザーボード136上の個別部品である。他の実施例では、UMTMルータ/スケジューラは、I/Oコンプレックス106に統合し得る(前述の実施例は示していない)。
【0019】
先行して実現されたコンピュータ・システムでは、I/Oコンプレックス106に対向する、I/Oリンクの端点は、互換の周辺装置がポートに接続されることを可能にするプロトコル特有のポートになる(すなわち、USBキーボード装置がUSBポートに差し込まれる。無線ルータ装置がLAN/イーサネット(登録商標)ポートに差し込まれる等)。単一のポートは何れも、互換のプラグ及び互換のプロトコルを有する装置に制限される。互換の装置がポートに差し込まれると、通信リンクが、I/Oコンプレクスと周辺装置との間で確立される。
【0020】
図1に示す実施例において記載したコンピュータ・システムでは、I/Oリンク(126乃至130)はI/Oコンプレックス106をUMTMルータ/スケジューラ116と結合し、ルータは次いで、特有のネーティブ・ホスト・コントローラ・プロトコル・データ・パケット・フォーマットにおいて元々送出されたデータ・パケットを統合フレーム・プロトコル・データ・パケット・フォーマットにカプセル化する。UMTMルータ/スケジューラ116は次いで、標的周辺装置が接続された(すなわち、通信可能に結合された、差し込まれた等)UMTMコネクタ・ポートに統合フレーム・プロトコル・データ・パケットをルーティングする(すなわち、送信する)。よって、前述の実施例では、ディスプレイ108及び無線ルータ112などのI/O周辺装置は全て、統合フレーム・プロトコルと互換であり、UMTMコネクタ・ポート(118乃至124)の何れか1つに差し込むためにUMTMコネクタ形態的要素プラグを有する。UMTMコネクタ/プラグ形態的要素は、
図3及び以下の関連する説明において更に詳細に記載する。
【0021】
更に、UMTMルータ/スケジューラ116は、接続された周辺装置の何れかから着信される統合フレーム・プロトコル・データ・パケットを、I/Oコンプレックス内の標的化されたI/Oホスト・コントローラにネーティブなプロトコルに変換する。
【0022】
よって、コンピュータ・システムから周辺装置に送出され、周辺装置からコンピュータ・システムに送出されるI/Oデータ(例えば、ディスプレイ、ネットワーキング、USB等)は、統合フレーム・プロトコル・データ・パケット内の物理層においてパケット化され、カプセル化される。個別グラフィクス及び個別NICコントローラに関し、前述のコントローラは、そのそれぞれのプロトコル・スタックによって定義された物理層に応じてフォーマッティングされたI/Oデータを生成し、受信する。このデータは、UMTMコネクタ・ポートを介して搬送されると、統合フレーム・プロトコルによって定義されたパケット・フォーマット(すなわち、フレーム・フォーマット)内に更にカプセル化される。UMTMルータ/スケジューラ116がカプセル化及びパケット化を達成する方法の具体的な実現形態は、
図2を参照して以下に詳細に説明する。
【0023】
図1に戻れば、多くの実施例では、UMTMルータ/スケジューラ116に、個別NIC114及び個別グラフィックス・コントローラ104を直接結合する更なる専用リンクを示す。前述のリンクは、それぞれ点線リンク132及び134として示す。ディスプレイ及びネットワーク点線リンクは、ディスプレイ装置及び/又はネットワーク装置が、UMTMコネクタ・ポート(例えば、UMTMコネクタ・ポート118乃至124のうちの1つ)を介してコンピュータ・システムに差し込まれることを可能にする。リンク132及び134は、個別カードに直接接続されるポートから、先行して必要であったディスプレイ及びネットワーク結合位置を取り外す。例えば、以前は、ディスプレイ周辺装置(すなわち、フラットパネル・モニタ)は、グラフィックス・カード上のディスプレイ・ポートに直接差し込まれていた。統合コネクタ・アーキテクチャ実現形態では、ディスプレイ及びネットワーク装置は、個別グラフィックス・コントローラ104カードでなく、システム・マザーボード136上に配置され得る統合コネクタ・ポートに接続される。
【0024】
図2は、UMTMルータ/スケジューラ、及び付随するUMTMコネクタ・アーキテクチャ・ロジックの一実施例を表す。
図1におけるように、いくつかのホスト・コントローラ(ディスプレイ・コントローラ200、202、204、NIC206及び208、並びにUSBホスト・コントローラ210)に結合されたUMTMルータ/スケジューラ116を示す。更に、UMTMルータ/スケジューラ116は、いくつかのUMTMコネクタ・ポート(ポート212−220)に結合される。更に、いくつかの周辺装置がUMTMコネクタ・ポートのうちのいくつかに接続される。周辺装置1(PI)は、UMTMコネクタ・ポート212に結合された周辺装置2(P2)ディスプレイ・モニタ224に結合される。周辺装置3(P3)ディスプレイ・モニタ226及び周辺装置4(P4)無線ルータ228は、UMTMコネクタ・ポート218に結合されたUMTMハブ230に結合される。最後に、周辺装置5(P5)USBプリンタ232は統合コネクタ・ポート220に結合される。
【0025】
多くの実施例では、UMTMコネクタ・アーキテクチャは、ホスト・コントローラ(200‐210)と、接続された周辺装置(222‐230)との間のデータを交換するためにパケット交換通信を使用する。パケット交換は、ホスト・コントローラと周辺装置との間での通常のパケット伝送手法である。通常の発見プロトコルは、プラットフォームに接続された周辺装置を算出し、更に、周辺装置の何れかのホットプラグを検知するよう利用される。周辺装置が算出されると、データ転送プロトコルが、特定のホスト・コントローラと特定の周辺装置との間のアプリケーションI/Oデータを交換するために使用される。一部の実施例では、UMTMコネクタ・アーキテクチャ発見及びデータ転送プロトコルは、(USB仕様、西暦2000年4月27日付で公表されたRevision2.0に定義された)それぞれのUSB2.0プロトコルの対応部分の拡張であり得る。他の実施例では、UMTMコネクタ・アーキテクチャ発見及びデータ転送プロトコルは、何れかの他のタイプの、利用可能な、実現可能な何れかの他のタイプの装置発見及びデータ転送プロトコルの拡張であり得る。
【0026】
接続された周辺装置(222−230)の算出は、UMTMルータ/スケジューラ内のロジックによって行われる。算出ロジックは、UMTMコネクタ・ポートに接続された周辺装置のタイプ(例えば、ディスプレイ、ネットワーク装置、USB装置等)を識別し、その周辺装置に一意のアドレスを割り当てる役割を果たす。多くの実施例では、多機能装置には複数のアドレスが割り当てられる。
【0027】
多くの実施例では、周辺装置(P1乃至P5)それぞれと、当該周辺装置のI/Oデータを扱う特定のホスト・コントローラ(200乃至210のうちの1つ)との間の関連付けはバインディング・テーブル234において定義される。バインディング・テーブルは、システム・メモリ、キャッシュ、バッファ等などの、システム内の何れかのタイプのメモリにおいて実現し得る。UMTMルータ/スケジューラ116は、バインディング・テーブルを使用して、正しい統合データ・パケット(すなわち、フレーム)伝送標的を求める。バインディング・テーブルを使用すれば、伝送標的は、送出されるパケット/フレームの発生に依存する。ルータがホスト・コントローラ(すなわち、ディスプレイ・コントローラ、ネットワーク・コントローラ、I/Oコントローラ等)からデータ・パケットを受信すると、標的は、意図された標的周辺装置が結合される(すなわち、差し込まれる)ポートである。ルータが、統合コネクタ・ポートから統合コネクタ・プロトコル・データ・パケットを受け取った場合(すなわち、ポートに結合された周辺装置からデータ・パケットを発信する場合)、標的は、その周辺装置にバインドされたホスト・コントローラである。例えば、ディスプレイ・コントローラ200は、P2ディスプレイ224を標的とするディスプレイ・データのパケットを送出し、UMTMルータ/スケジューラ116はパケットを受信し、標的周辺装置(P2)を、バインディング・テーブル(例えば、P2は、ディスプレイ・コントローラ200に結合されたAリンクにバインドされている)を使用して求め、統合フレーム・プロトコル・データ・パケットにデータ・パケットをカプセル化し、UMTMコネクタ・ポート212を介してP2にパケットを送出する。多くの実施例では、周辺装置を、統合コネクタ・ポート212に結合された単一のポートから併せて鎖でつなげる(P1をP2に鎖でつなげるなど)ことが可能である。
図2は、P1がリンクF(USBホスト・コントローラ210)にバインドされ、P2がリンクA(ディスプレイ・コントローラ200)にバインドされ、P3がリンクC(ディスプレイ・コントローラ204)にバインドされ、P4がリンクD(ディスプレイ・コントローラ206)にバインドされ、P5も、リンクF(USBホスト・コントローラ210)にバインドされることを明確にするバインディング・テーブルのインスタンスを示す。
【0028】
多くの実施例では、バインディング・テーブルは、当初、システム・ブートにおいて(すなわち、システム電源がサイクリングされる時点で、又は、コンピュータのソフト再起動を制御オペレーティング・システムが実行する時点で)、UMTMルータ/スケジューラ116内の算出ロジックによって設定される。システムI/Oフローの動的スイッチングに基づいて使用モデルの変更を実現するためにシステム・ソフトウェア(オペレーティング・システム又は仮想マシン・マネージャ)により、ランタイム中に再マッピングすることも可能である。例えば、モバイル・プラットフォームでは、システムが差し込まれると、個別グラフィクス・コントローラと接続し得、バインディング情報を再マッピングすることにより、システムがバッテリ上で実行すると統合グラフィクス・コントローラに動的にスイッチングすることが可能である。
【0029】
図3は、統合光コネクタ・ポート内の変換及び伝送ロジックの実施例を表す。多くの実施例では、UMTMルータ/スケジューラ116は、ホスト・コントローラ300、302及び304に電気結合され、これは、UMMルータ/スケジューラ116にホスト・コントローラを物理的に接続する電気リンク(すなわち、相互接続、バス)を表す。例えば、ホスト・コントローラ300は、リンクAにより、UMTMルータ/スケジューラ116に電気結合される。
【0030】
UMTMルータ/スケジューラ116は、それぞれUMTMコネクタ・ポート(CP)(UMTM CP 310及び312それぞれなど)を介して、1つ又は複数の周辺装置(周辺装置306及び308など)にも結合される。UMTMコネクタ・ポートは、コンピュータ・システムに外部周辺装置が差し込まれることを可能にするよう設計される。よって、多くの実施例では、
図3におけるUMTMコネクタ・ポート310及び312より上のものは全て、コンピュータ・システムに対して内部にあり(例えば、ホスト・コントローラ)、UMTMコネクタ・ポート310及び312より下にあるものは全て、コンピュータ・システムに対して外部にある(すなわち、フラットパネル・ディスプレイ周辺装置)。
【0031】
多くの実施例では、UMTMコネクタ・ポートはそれぞれ、電気結合機構及び光学結合機構を含む。(ホスト・コントローラ300−304などの)コンピュータ・システム内の装置と、(周辺装置306及び308などの)コンピュータ・システム外の装置との間で、電気データ伝送経路(例えば、1つ又は複数の銅線)上で伝送される電気信号内で情報が流れることを可能にする。光結合機構は、光データ伝送経路を介して、コンピュータ・システム内の装置と、コンピュータ・システムに対して外部にある装置との間で、データ伝送経路の少なくとも一部分で、光信号内で情報が伝送することを可能にする。
【0032】
具体的には、UMTMコネクタ・ポート1(310)は、周辺装置306と電気データリンクDを結合するための電気結合機構314を有する。更に、光リンクEを周辺装置306に結合するためのダウンストリーム光結合316及び光リンクFを周辺装置306に結合するためのアップストリーム光結合318を含む光結合機構を有する。リンクDは、コンピュータ・システムと周辺装置306との間で、電気媒体(すなわち、リンクDを介して伝送される電気信号)内でデータ・パケットを伝送する。リンクEは、コンピュータ・システムから周辺装置306に、光伝送媒体(すなわち、リンクEを介して伝送される光信号)内でデータ・パケットを伝送し、リンクFは、周辺装置306からコンピュータ・システムに、光媒体(すなわち、リンクFを介して伝送される光信号)内でデータ・パケットを伝送する。多くの実施例では、ホスト・コントローラ(ホスト・コントローラ300,302、又は304など)は、コンピュータ・システムからのデータ・パケットの発信元であり得る。更に、多くの実施例では、周辺装置306は、周辺装置306からのデータ・パケットの発信元であり得るが、他の実施例では、周辺装置306に結合された更なる周辺装置(図示せず)は、周辺装置306からのデータ・パケットの発信元であり得る。
【0033】
多くの実施例では、周辺装置306は、UMTMコネクタ・ポート1(310)にケーブルを差し込むよう利用される周辺装置に対向するケーブルの端部においてプラグを有するUMTMケーブル320を含む。コンピュータ・システムと周辺装置306との間でデータ・パケットをそれぞれ伝送することが可能な、潜在的に複数のリンクがUMTMケーブル320内に存在している。多くの実施例では、UMTMケーブル320は、UMTMコネクタ・ポート1(310)と周辺装置との間で、電気信号内でデータ・パケットを伝送するために電気リンクGを含む。更に、多くの実施例では、UMTM CP 310から周辺装置306に、光信号内でデータ・パケットを伝送するためのダウンストリーム光リンクHを有し、周辺装置306からUMTM CP 310に光信号内でデータ・パケットを伝送するためのアップストリーム光リンクIを有する光リンクを含む。
【0034】
特に、UMTM CP 310内の電気結合及び光結合は、多くの実施例において、単純なパススルー結合機構として利用することができる。したがって、リンクDを介して、UMTMルータ/スケジューラ116から伝送される電気信号内のデータ・パケットは、電気結合314を介して直接、流れ、よって、やはり、UMTMケーブル320において電気リンクGを介して流れて、周辺装置306に到着する。
UMTM CP310の両端のリンクを効果的に結合する前述のパススルー結合機構は更に周辺装置306から、リンクGを介して、リンクDにパススルーし、UMTMルータ/スケジューラ116に到着する電気信号のパススルー伝送を行うこともできる。更に、前述の結合機能は、リンクEから(光結合316を介して)リンクHに流される光信号内、及びリンクIから(光結合318を介して)リンクFに流される光信号内に含まれるデータ・パケットについても同様に作用する。
【0035】
ダウンストリーム光リンクE及びアップストリーム光リンクFを介して伝送される光信号は、最終的に電気信号への変換を必要とする。ホスト・コントローラ300、302、及び304は、専ら、電気リンクA、B及びCそれぞれを介してデータ・パケットを送信し、受信するからである。よって、多くの実施例では、電気・光変換及び光・電気変換を実行するためのロジックを含むトランザクション変換器は、ホスト・コントローラと周辺装置との間のデータ伝送経路上の特定の位置に配置される。例えば、一部の実施例では、トランザクション変換器322は、電気リンクJ及びKに結合される。電気リンクJ及びKは、UMTMルータ/スケジューラ116にも結合される。一部の実施例では、トランザクション変換器322は、UMTM CP310内に配置され、よって、前述の実施例では、リンクE及びリンクFはもう必要でないことがあり得る。
【0036】
データ・パケットが、電気リンクJを介して電気信号内でUMTMルータ/スケジューラ116によって伝送されると、電気信号は、トランザクション変換器322に到着し、電気・光変換器324によって受け取られる。電気・光変換器324は、次いで、電気信号を光信号に変換し、伝送(Tx)レーザ326を利用して、パケットを含む光信号を、光リンクEを介し、UMTM CP310を介し、最終的に周辺装置306に向けて送信する。あるいは、データ・パケットが、光リンクIを介して光信号内で周辺装置306によって伝送されると、光信号は、UMTM CP 310をパススルーし、光リンクFを介して流れ、最終的にトランザクション変換器322に到着する。受信(Rx)光検出器328は、光信号内の伝送されたレーザ・パルスを検出することにより、信号を受け取る。Rx光検出器は、光・電気変換器330に検出情報を供給し、光・電気変換器330は次いで、光信号を電気信号に変換し、変換された電気信号をUMTMルータ/スケジューラ116に送信する。
【0037】
図3に示すようなUMTMイネーブルされたシステムは、伝送経路の高速光部分を介してコンピュータ・システム内のホスト・コントローラと通信するために拡充されたデータ・スループットを必要とする周辺装置を可能にする。しかし、光伝送経路機能を有していない、より旧い周辺装置に対する後方互換性のために、UMTMイネーブルされたシステムは更に、電気伝送経路機能のみを有するレガシー周辺装置が、コンピュータ・システムにおけるホスト・コントローラと通信することを可能にする。
【0038】
よって、
図2に関して上述したように、周辺装置の算出処理は、周辺装置が光学的に互換であるか、又は電気的に互換であるに過ぎないか否かをUMTMルータ/スケジューラ116が判定する工程を含む。特定の実施例では、
図3の周辺装置306などの装置は光学的に互換であり、電気的に互換であり得る。装置は、光学的に互換であり、電気的に互換である場合、光学経路のデータ・スループット容量がより大きいことによる、より大きな性能のために、高速光リンクを介してデータ・パケットを送出し、受信することが好ましい。
【0039】
多くの実施例では、周辺装置とUMTMルータ/スケジューラ116との間で送出されるデータ・パケットはそれぞれ、割り当てられた優先度レベルを有し得る。データ・パケットの割り当てられた優先度レベルは、データ・パケット内のデータの重要度に基づき得る。例えば、ライブ・ビデオ・フレームが、表示するために周辺装置に送出された場合、ビデオ・フレームを有するデータ・パケットの優先度レベルは通常、プリンタに送出される印刷ジョブに関する情報を有するデータ・パケットよりも高い優先度レベルのものになる。よって、ライブ・ビデオ・フレームを有するデータ・パケットは、印刷ジョブを有するデータ・パケットよりも高い優先度を有すると認められる。
【0040】
多くの実施例では、周辺装置、又は単一のUMTM CPに連鎖化された周辺装置又は周辺装置群は、別々の優先度レベルを有する複数のタイプのデータ・パケットを有し得る。よって、優先度手法を、UMTMルータ/スケジューラ116と周辺装置との間で送信され、受信されたパケットの組全体について実現することができる。よって、別々の優先度レベルの2つのデータ・パケットが、同じUMTP CPを介してUMTMルータ/スケジューラ116から1つ又は複数の周辺装置に送出された場合、多くの実施例では、UMTMルータ/スケジューラ116は、正しい伝送媒体を介してパケットをルーティングするための複数の判定を行い得る。
【0041】
例えば、周辺装置にUMTMルータ/スケジューラ116を結合する光リンクが、あまり減速することなく両方のパケットの容量を有する場合、UMTMルータ/スケジューラ116は、光リンクを介して伝送される対象のパケットをルーティングし得る。他方で、光リンクが話中であり、利用する対象の余剰帯域を有しない場合、UMTMルータ/スケジューラ116は、優先度判定をし、光リンクの両端で、より高い優先度のデータ・パケットを送出し、電気リンクの両端で、より低い優先度のデータ・パケットを送出し得る。
【0042】
特定の場合、光リンクが極めて混雑している場合、UMTMルータ/スケジューラ116は、光リンクの混雑が理由で、標的周辺装置にパケットを送出するうえで最も速いやり方であると判定された場合に電気リンクを介して、より高い優先度のパケットを送出する旨の判定を行い得る。
【0043】
多くの実施例では、データ・パケットそれぞれを指定するために利用可能な優先度レベルがいくつか存在している(すなわち、高優先度及び低優先度のみを超える)。優先度レベルの数は、UMTMルータ/スケジューラ116内の優先度システムの実現形態に基づいて変わり得、特定のデータ・パケット内で送出することができるデータのカテゴリ/タイプの数の関数であり得る。
【0044】
多くの実施例では、ディスプレイ・トラフィック及びネットワーク・トラフィックは、高優先度データ・パケットを含み得る。一方、USBトラフィック(USB1.0やUSB2.0トラフィックなど)は、低優先度データ・パケットを含み得る。更に、示した実施例は、ネットワーク、ディスプレイ、及びUSBトラフィックに限定されているが、示していない他の実施例は、ホスト・コントローラ又は他の制御装置と、互換の周辺装置との間で送出される何れかの他のタイプのトラフィックを含み得る。
【0045】
多くの実施例では、データ・パケット伝送の標的である特定のUMTM CPの場合、UMTMルータ/スケジューラ116はデータ・パケットをUMTM CPに、経路の高性能光リンク部分及び経路の低性能電気リンク部分を介して送出する。
【0046】
多くの実施例では、周辺装置308は、データ経路の高性能光リンク部分と互換でない。よって、UMTM CP312を介してコンピュータ・システムに周辺装置308を結合するUMTMケーブル332に電気リンクLのみを含む。(コネクタ・ポートの上の)UMTM CP312のコンピュータ・システム側の伝送経路は、ダウンストリーム光リンクN及びアップストリーム光リンクOを有するが、電気リンクMのみを利用することが可能である。周辺装置308が、伝送経路の高性能光部分と互換でないからである。よって、算出すると、UMTMルータ/スケジューラは、周辺装置308が、高性能光リンクと互換でない旨を認識し、それに応じて、周辺装置308との間でのデータ・パケットのスケジューリングを調節する。
【0047】
多くの実施例では、データ伝送経路の光部分及び電気部分はそれぞれ、特に、制御、アドレス、及びタイミング情報でなく、データ・パケットの伝送を表す。よって、多くの実施例では、
図3に示していないが、各電気データ伝送経路及び各光データ伝送経路は、何れかの非データ・パケット関連情報を伝送するための電線であり得る他の伝送線を含む。
【0048】
多くの実施例では、データ・パケットの全体量を収容するために十分な帯域幅が光データ経路上に存在している場合に光データ経路を介して、低優先度及び高優先度を有するデータ・パケットが全て、送出される。周辺装置が電気信号及び光信号を送出し、受信することができる前述の実施例では、UMTMルータ/スケジューラ116はまず、UMTMルータ/スケジューラ116と周辺装置306との間で伝送されるデ―タ・パケット全てを扱うための容量を光データ経路リンク(すなわち、J及びK)が有するか否かの判定を行う。肯定の場合、高優先度データ・パケット及び低優先度データ・パケットが光経路を介して伝送される。さもなければ、光経路が、最大限度の状態にある場合、UMTMルータ/スケジューラは、光信号を使用して伝送されることが可能にされるデータ・パケットがどれであり、電気信号を使用して伝送されるのがどれであるかを調停する。上記判定は、各パケットの優先度に基づき得る。別の実施例では、閾値優先度レベル以上の優先度レベルを有するデータ・パケットが光経路を介して伝送される優先度レベル閾値を利用することができる。一方、閾値レベルよりも低い優先度レベルを有するデータ・パケットは、電気経路を使用することを強制され得る。
【0049】
図4は、UMTMルータ/スケジューラ内の動作ロジックの実施例を表す。UMTMルータ/スケジューラ116は、ディスプレイ・コントローラ200乃至204、NICコントローラ206及び208、並びにUSBコントローラ210を含むいくつかのホスト・コントローラに結合される。ディスプレイ・コントローラ200乃至204から出力されるデータ・パケットは、アイソクロナス・ディスプレイ・キュー(IDQ)リング・バッファ400に供給される。NICコントローラ206及び208から出力されるデータ・パケットは、アイソクロナス・ネットワーク・キュー(INQ)リング・バッファ402に供給される。更に、USBコントローラ208から出力されるデータ・パケットは、アイソクロナスUSBキュー(IUQ)リング・バッファ404に供給される。多くの実施例では、システム・メモリ406に記憶される正常なアイソクロナスUSBキューとして実現される。別の実施例では、アイソクロナス・キューは、コンピュータ・システムにおける何れの潜在的な記憶場所においても記憶することができる。例えば、図示していないが、IDQ400及びINQ402は、UMTMルータ/スケジューラ116内に記憶することができる。図示していない他の実施例では、トランザクション・タイプ(ディスプレイ、ネットワーク、USB)毎のアイソクロナス・キューを有する代わりに、コントローラ毎にアイソクロナス・キューが存在し得る。
UMTMルータ/スケジューラ116内のスケジューリング・ロジック408は、3つのキュー(すなわち、IDQ400、INQ402、及びIUQ404)全てに対するアクセスを有する。スケジューリング・ロジック408は、UMTMプロトコル仕様毎にアイソクロナス・パイプの帯域幅スケジューリングを実現する。専用のアイソクロナス・トランザクション記述子(iTD)が、ディスプレイ及びネットワークI/Oに使用される。このiTDは、ディスプレイ又はネットワークI/O用であるかを、スケジューリング・ロジックに示すフラグを含む。ディスプレイ及びLANのiTDの場合、スケジューラは、キューからアイソクロナス・フレーム(すなわち、データ・パケット)をキュー解除し、これらを出力バッファ410に送出する。
図4に示す実施例では、1つ又は複数の周辺装置に向けてダウンストリームに送出されるトラフィック全てをバファリングする単一の出力バッファ410が存在している。図示していない他の実施例では、例えば、UMTMコネクタ・ポート毎に一出力バッファなどの複数の出力バッファが存在している。スケジューリング・ロジック408は、装置が算出されると受信される情報を利用して周辺装置毎の帯域幅要件を判定する。よって、スケジューリング・ロジックは、IDQ400、INQ402及びIUQ404を常に監視し、ホスト・コントローラ/周辺装置対毎の帯域幅要件を最も好適に満たす順に出力キューにキュー・バッファの前におけるアイソクロナス・トランザクションをスイッチングする。
【0050】
ルーティング・ロジック412は、1つ又は複数のUMTM CPに伝送されるよう待機しているトランザクションを得て、1つ又は複数の標的ポートに伝送する。上述の通り、一部の実施例では、ルーティング・ロジック412は、伝送経路の電気信号部分及び伝送経路の光信号部分を介して標的コネクタ・ポートにデータ・パケット全てを伝送する。他の実施例では、低性能電気経路伝送のみと互換の装置か、高性能光経路伝送と互換の装置かに応じて、ルーティング・ロジック412は、経路の低性能電気信号部分又は経路の高性能光信号部分を介してデータ・パケットを送出し得る。
【0051】
伝送の際、データ・パケットは、電気信号内及び光信号内の一方又は両方で、UMTM CP414、416及び418のうちの1つ又は複数に送出される。
【0052】
ルーティング・ロジック412は、ディスプレイ及びネットワークI/Oデータのパケット化及びカプセル化の役割を果たす。例えば、ディスプレイ周辺装置のディスプレイ・フレームがディスプレイ・ホスト・コントローラから送出される多くの実施例では、ルーティング・ロジックは、UMTMフレーム・プロトコル・データ・パケット(例えば、ディスプレイ・データのフレーム全体)を構築する間でディスプレイ・データの連続ストリームを保持し得る。よって、ルーティング・ロジック412は、バッファ410にストリームを記憶し、記憶されたストリーム情報から個々のフレームを構築し、完了すると、ディスプレイ周辺装置に送信し得る。
【0053】
図4は、ホスト・コントローラから周辺装置へのダウンストリーム経路のみを表示する。多くの実施例では、アップストリーム経路はバッファを何ら利用しない。むしろ、アップストリーム経路は、周辺装置からめいめいのホスト・コントローラへの直接経路が存在しているかのように扱い得る。よって、UMTMルータ/スケジューラ116のデータのアップストリーム経路の2つの要件は、ルーティング・ロジック412に、特定の標的ホスト・コントローラによって利用されるネ―ティブ・フォーマットにUMTMフレーム・フォーマットからのデータ・パケットを変換させ、経路の高性能光信号部分を周辺装置が使用している場合に信号の光対電気変換をさせるということである。
【0054】
図5は、UMTM仕様内で実現されるアイソクロナス・トランザクション記述子(iTD)リング・バッファの実施例を表す。多くの実施例では、ホスト・コントローラ・フレーム・リスト500を示す。iTDフレーム・リスト500は、個々のフレームのリスト(1−N。ここで、Nは、フレームのリストにおけるフレームの数に等しい)を含む。個別のフレームはそれぞれ、トランザクション記述子スケジュールにおける第1のトランザクション記述子に対するポインタ、又は、(円で示す)ヌル・ポインタを有する。更に、スケジューリング・ロジック(
図4の408)(すなわち、スケジューラ)が動作しているリストにおけるフレームを指し示すフレーム・リスト・ポインタ502が維持される。多くの実施例では、各フレームには、スケジューラがリスト上で動作し得る最大時間セグメントが与えられる。よって、例えば、フレーム毎時間セグメントが125μS(125マイクロ秒)である場合、125μS後、スケジューラは、現在のフレーム・リスト・ポインタ位置が指し示すリンクされたリストにおけるものの全ての実行を停止し、フレーム・リストにおける、次フレームに対するフレーム・リスト・ポインタを増やし、そのフレーム位置における実行を開始する。これは、USB2.0における現在のアイソクロナス・フレーム・リスト実現形態と同様である。
【0055】
多くの実施例では、フレーム・リストは、出力バッファ(
図4の410)に供給するリング・バッファ400、402又は404(
図4)の実現形態を含み得る。スケジューラは、フレーム・リスト・ポインタ502の現在の位置におけるフレームが指し示すリンクされたリスト内のフレーム・リストから何れかの特定のiTDを引き出し得る。何れの特定の入力リング・バッファへの供給に関しても、スケジューラは、トランザクション記述子におけるiTDフラグ・ビット504を確かめることにより、iTDのトランザクション・タイプを判定し得る。多くの実施例では、iTDトランザクション・タイプ・テーブル506は、iTDにおいて供給される値、及びそれが何を意味するか(00b=USB、01b=ディスプレイ、10b=ネットワーク)を示す。更に、特定の周辺装置が算出されると、スケジューラは、一般に、トランザクション・タイプそれぞれの帯域幅要件を設定し得る。よって、この情報により、スケジューラは、帯域幅最適化された優先度順序で出力バッファ(
図4の410)を効果的に埋めることが可能である。
【0056】
UMTMコネクション・ポートは、ディスプレイI/O、ネットワークI/O、及びレガシーUSB I/Oのコンバージェンスをサポートする。コンバージェンスは物理層において行われる。すなわち、ホスト・コントローラは、汎用フレーム・フォーマットにパケットがカプセル化されている旨を知ることなくUMTMルータ/スケジューラにデータ・パケットを送出する。よって、最上位レベルのユーザ・アプリケーションからオペレーティング・システム・カーネルまでのデータの転送を管理する既存のソフトウェア・スタックは、実際のデータ転送中は変更されない。しかし、バインディング・テーブル(
図2の234)は通常、発見時に設定される。発見時間は、一部の装置のブート処理中であり得るが、プラグアンドプレイ実現形態によって差し込まれる他の装置の場合、発見は、コンピュータ・システムの完全な動作中であってもよい。拡充されたUSBソフトウェア・スタックは、UMTM CPに接続された周辺装置全ての算出を行うことが可能である。
【0057】
算出時間では、USB汎用親ドライバは、汎用ネットワーク・クラス・ドライバ及び汎用ディスプレイ・クラス・ドライバをUSBスタック上で実現する。汎用ディスプレイ・クラス・ドライバは、(コンピュータ動作中、差し込まれた際に、又はブート時に、)差し込まれたディスプレイ周辺装置を検知することが可能である。汎用ディスプレイ・クラス・ドライバは、装置からの拡張ディスプレイ識別データ(EDID)をフェッチし、これをUSBエンドポイント・アドレスに割り当てる。汎用ディスプレイ・クラス・ドライバは次いで、グラフィックス・ソフトウェア・スタック上で実行しているディスプレイ・ミニポート・ドライバに対するソフト割り込みを発出する。この時点で、グラフィックス・ソフトウェア・スタックは、ディスプレイ周辺装置の算出及び構成を引き継ぎ得る。ディスプレイ周辺装置が算出されると、拡張されたUSBソフトウェア・スタックは、何れの更なるディスプレイ・データ転送にも関与しない。ディスプレイ・データ転送には、通常、ディスプレイ周辺装置に直接、データ・パケットを送出することができるかのように動作するディスプレイ・ホスト・コントローラ及びディスプレイ・ソフトウェア・スタックが関係する。ネットワーク・クラス・ドライバの構成は、同様に動作し、但し、代わりに、USBスタック上の汎用ネットワーク・クラス・ドライバを使用してネットワーク周辺装置を発見し、ネットワーク・スタックにネットワーク・データ転送の制御を渡す。
【0058】
図6は、UMTMハブの実施例を表す。多くの実施例では、UMTMハブは、アップストリーム方向における、UMTMコネクタまでの光経路を利用する。例えば、
図1及び
図2に示すように、システムにおいて実現されたハブを示す。ハブは、ハブ・ポートP0−P3を介してハブに結合される何れかの更なるダウンストリーム周辺装置に対する低速経路又は高速経路(すなわち、電気経路又は光経路)を供給することが可能である。したがって、ハブは2つの経路(すなわち、低速経路に限定される何れかの低性能装置(例えば、USB装置)を扱うためのトランザクション変換器を備えた電気経路、及びパッシブな光経路)を含む。パッシブな光経路は、ポート全てに対するダウンストリーム方向における光信号のパッシブな分割を行う。その結果、ダウンストリーム・トラフィックは全て、USB2.0ハブと同様にダウンストリーム・ポート(P0−P3)全てにブロードキャストされる。接続された周辺装置は、周辺装置のエンドポイント識別子に基づいて受信するトラフィックをフィルタリングし、これは、受信されたデータ・パケットに反映される。
【0059】
例えば、UMTMルータ/スケジューラから送出されたデータ・パケットは、光経路A上で光信号において到着する。信号は、トランザクション変換器602及び光分割器604において到着する。トランザクション変換器602(トランザクション変換器は、
図3に関する記載において詳細に上述している)は、光信号を電気信号に変換し、ダウンストリーム経路Yを介して、変換された電気信号においてデータ・パケットをポートP0−P3に送出する。光分割器604は、光経路Aから受信された光信号を、光経路Xを介して4つのダウンストリーム光信号に分割する。周辺装置は、アップストリームにパケットを伝送することも可能である。アップストリーム・パケットは、ハブ600に4つのポート(P0−P3)のうちの1つを介して到着すると、光逆多重化器606への経路を直接とるか、又はトランザクション変換器602を介した経路をとる。
【0060】
アップストリーム・パケット経路は、周辺装置が高性能光経路と互換であるか、低性能電気経路のみと互換であるかに基づく。アップストリーム・データ・パケットが電気経路上で伝送された場合、パケットは、電気経路X上で電気信号において戻り、電気信号は次いで、光信号に変換され、光多重化器606に送出される。アップストリーム・パケットが、高性能光経路と互換の装置から発信される場合、信号は、光経路Z上で戻され、これは、光逆多重化器606に供給される。
【0061】
データ・パケットを含む光信号が光逆多重化器606に到着すると、信号は、光経路B上で単一のアップストリーム光信号に逆多重化される。光経路Bを介してアップストリームに伝送された後、光信号はUMTMルータ/スケジューラに達し、UMTMルータ/スケジューラは次いで、特定のデータ・パケットの特定のデスティネーション・ホスト・コントローラを対象とするよう信号を多重化する。
【0062】
図7は、統合フレーム・アーキテクチャ環境においてデータ・パケットをルーティングするための処理の一実施例のフロー図である。処理は、ハードウェア、ソフトウェア、又は両方の組み合わせによって行うことができる。次に
図7に移れば、処理は、処理ロジックが、UMTMコネクタ・ポートに周辺装置が差し込まれているか否かを判定することによって開始される(処理ブロック700)。「プラグイン(差し込む)」は、統合コネクタ・ポートに結合又は接続された周辺装置を表す。別の実施例では、「プラグイン(差し込む)」は、何れの時点でも生じ得、ホットプラグが許容される完全なシステム動作中又はブート前などの何れかの時点で生じ得る。周辺装置が差し込まれていない場合、処理ブロック700が繰り返される(すなわち、UMTMコネクタ・ポートが、常にポーリングされるか、又はポーリングは、設定された期間毎に1度行われ得る)。
【0063】
次に、装置が差し込まれている旨を処理ロジックが検出すると、処理ロジックは次いで、周辺装置を算出する(ブロック702)。次いで、処理ロジックは、システムに存在しているホスト・コントローラに周辺装置をバインディングする(処理ブロック704)。周辺装置は、互換のホスト・コントローラにバインディングされる(すなわち、同じプロトコルを共有する)。
【0064】
バインディング後、処理ロジックは、データ・パケットが受信されているか否かを判定する(処理ブロック706)。データ・パケットが受信されていない場合、処理ロジックは、周辺装置において変更/修正が存在しているか否かを判定する(処理ブロック708)。
例えば、第1の周辺装置が外され、第2の周辺装置が同じ統合コネクタ・ポートに差し込まれる。周辺装置の状態において変更が存在しない場合、処理ロジックは処理ブロック706に戻り、再度、データ・パケットが受信されているかを検査する。さもなければ、変更が周辺装置で検知された場合、処理ロジックは、処理ブロック700に戻る。処理ブロック700では、統合コネクタ・ポートに周辺装置が差し込まれたかを再検査する。
【0065】
処理ブロック706に戻れば、データ・パケットが受信された場合、処理ロジックは、周辺装置又はホスト・コントローラからデータ・パケットが受信されているか否かを判定する(処理ブロック710)。データ・パケットが周辺装置から受信されている場合、データ・パケットは統合フレーム・プロトコル・データ・パケットであり、処理ロジックは、ホスト・コントローラのプロトコルと互換の1つ又は複数のネーティブ・ホスト・コントローラ・データ・パケットへの、統合コネクタ・プロトコル・データ・パケットの分解に進む(処理ブロック712)。処理ロジックは次いで、データ・パケットの優先度レベル(特に、高性能光リンクの容量に対する、処理されているパケットの現在のトラフィック・レベルに基づいて、データ・パケットが、高性能光リンクを介して伝送に指定されるほど十分に高い優先度レベルを有するか)を判定する。(処理ブロック716)。
【0066】
パケットの優先度が、高性能光リンクを使用した伝送に十分である場合、処理ロジックは、これが、周辺装置からの光伝送パケットであると認識し、パケットを搬送する信号を光信号から電気信号に変換し(処理ブロック718)、次いで、ネーティブ・ホスト・コントローラをホスト・コントローラに送信し(処理ブロック720)、最後に、別のデータ・パケットを受信するために処理ブロック706に戻る。
【0067】
処理ブロック710に戻れば、データ・パケットがホスト・コントローラからの場合、データ・パケットがホスト・コントローラのネーティブ・プロトコル・フォーマットにあり、処理ロジックは、ネーティブ・ホスト・コントローラ・データ・パケットを統合フレーム・プロトコル・データ・パケットにカプセル化する(処理ブロック714)。統合フレーム・プロトコル・データ・パケットが生成されると、処理ロジックは次いで、データ・パケットが高性能データ・パケット(処理ブロック716)であるかを確かめるよう検査する。
【0068】
高性能光リンクを使用した伝送にパケットの優先度が十分である場合、処理ロジックは、送信側ホスト・コントローラから受信された電気信号から、光リンクを介して周辺装置に伝送されるための光信号にこのパケットを変換する必要があることを認識している(処理ブロック718)。処理ロジックは次いで、統合フレーム・プロトコル・データ・パケットを、(標的周辺装置に信号をパススルーする)UMTMコネクタ・ポートに伝送する(処理ブロック722)。最後に、処理ロジックは、処理ブロック706に戻って、別のデータ・パケットを受信する。
【0069】
図8は、個別グラフィクス及びローカル・エリア・ネットワーク(LAN)カードの統合コネクタ・アーキテクチャ・スロット・コネクタの実施例を表す。現在の個別グラフィックス及びLANカードに対する修正を例証するために、
図3は、各カードのUMTMバージョンと横に並べてカ―ド毎に現在のバージョンを示す。
図3に示す例は、PCIエクスプレス(登録商標)を利用するが、何れかの他の適切なプロトコルを使用することができる。
【0070】
PCIエクスプレス(登録商標)の個別グラフィクス・カード800の現在のバージョンを示す。グラフィクス・カード800は、図示するようなスロット・コネクタ・ピン802を含む。更に、グラフィクス・カード800は、外部ディスプレイ周辺装置コネクタ804を有する。現在のPCIエクスプレス(登録商標)の個別グラフィクス・シナリオでは、CPU及びシステム・メモリからのデータは、コンピュータ・システムのマザーボード上のPCIエクスプレス(登録商標)グラフィクス・カード・スロットにグラフィクス・カード800が差し込まれると、スロット・コネクタ・ピン802に物理的に結合されるPCIエクスプレス(登録商標)リンクを介してグラフィクス・カード800に送出される。グラフィクス・カード800は次いで、この受信データを処理し、外部ディスプレイ周辺装置コネクタ804に差し込まれたディスプレイ周辺装置に送出する。
【0071】
次に、UMTM806を有する個別グラフィフィクス・カードに移ると、
図8に示す実施例では、UMTM対応グラフィクス・カード806は、現在のバージョンのグラフィクス・カード800と同様なスロット・コネクタ・ピン808を含む。外部ディスプレイ周辺装置コネクタを有する代わりに、UMTM806を有する個別グラフィクス・カードは、余分のスロット・コネクタ・ピン810を有する。UMTM806を有する個別グラフィクス・カードが、(スロット・コネクタ・ピン808から)PCIエクスプレス(登録商標)リンクからのデータを受信し、受信されたデータを処理すると、UMTM対応グラフィクス・カード806は、マザーボード上の統合コネクタ・ポートに差し込まれたディスプレイ周辺装置にデータを送出する。特に、更なるPCIエクスプレス(登録商標)リンク・レーンを介して送出されるデータは、システムにおいてUMTMルータ/スケジューラにスロット・コネクタからルーティングされる(これは、
図1でリンク132として示す)。前述の更なるリンク・レーンは、余分なスロット・コネクタ・ピン810に物理的に結合される。
【0072】
次に、
図8は、(カード上にNICが一体化された)PCIエクスプレス(登録商標)の個別LANカード812の現在のバージョンを示す。LANカード812は、図示するようなスロット・コネクタ・ピン814を含む。更に、LANカード812は、外部LAN/イーサネット(登録商標)コネクタ816を有する。現在のPCIエクスプレス(登録商標)の個別LANカード・シナリオでは、CPU及びシステム・メモリからのデータは、コンピュータ・システムのマザーボード上のPCIエクスプレス(登録商標)LANカード・スロットにLANカード812が差し込まれると、スロット・コネクタ・ピン814に物理的に結合されるPCIエクスプレス(登録商標)リンクを介してLANカード812に送出される。LANカード812は次いで、この受信データをパケット化し、LAN/イーサネット(登録商標)コネクタ816が差し込まれたネットワークを介して送出する。
【0073】
最後に、UMTM818を有する個別LANカードに移ると、
図8に示す実施例では、UMTM対応LANカード818は、現在のバージョンのLANカード812と同様なスロット・コネクタ・ピン820を含む。外部LAN/イーサネット(登録商標)コネクタを有する代わりに、UMTM818を有する個別LANカードは、余分のスロット・コネクタ・ピン810を有する。UMTM812を有する個別LANカードが、(スロット・コネクタ・ピン820から)PCIエクスプレス(登録商標)リンクからのデータを受信し、受信されたデータをパケット化すると、UMTM対応LANカード818は、マザーボード上の統合コネクタ・ポートに差し込まれたイーサネット(登録商標)ケーブルにデータを送出する。特に、更なるPCIエクスプレス(登録商標)リンク・レーンを介して送出されたデータは、システムにおいてUMTMルータ/スケジューラにスロット・コネクタからルーティングされる(これは、
図1でリンク134として示す)。前述の更なるリンク・レーンは、余分なスロット・コネクタ・ピン822に物理的に結合される。
【0074】
よって、統合マルチ転送媒体コネクタ・アーキテクチャを実現するための装置、方法、及びシステムの実施例を開示している。前述の実施例は、その特定の例示的な実施例を参照して説明している。本明細書及び特許請求の範囲記載の実施例のより広い趣旨及び範囲から逸脱しない限り、上述の実施例に種々の修正及び変更を行うことができるということは、本開示の便益を受ける者に明らかになるであろう。よって、本願の明細書及び図面は、限定的な意味合いでなく、例証の意味合いでみるものとする。