(57)【要約】【解決手段】  多重プロセッサアーキテクチャ及び方法の実施形態がここに開示される。実施形態は、外部ブリッジ集積回路（ＩＣ）アーキテクチャの使用に対する代替案を提供する。例えば、実施形態は、多重プロセッサが外部ブリッジＩＣを必要とすることなしに１つの周辺インタフェーススロットを使用することができるように、周辺バスを多重化する。実施形態は既知のバスプロトコルと共に使用可能である。【選択図】図２
2012504835.tif 000002
【特許請求の範囲】
【請求項１】
周辺コンポーネントバスに結合される周辺コンポーネントコネクタと、
複数の周辺コンポーネントが前記周辺コンポーネントバスにとって前記周辺コンポーネントコネクタに結合される１つの周辺デバイスとして見えるように、複数のそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して前記周辺コンポーネントコネクタに直接的に結合される前記複数の周辺コンポーネントとを備えたシステム。
【請求項２】
前記複数の周辺コンポーネントは更にそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して互いに直接的に結合されている請求項１のシステム。
【請求項３】
前記複数の周辺コンポーネントの少なくとも１つはグラフィックス処理ユニット（ＧＰＵ）である請求項１のシステム。
【請求項４】
前記周辺コンポーネントコネクタは周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））スロットであり、前記周辺コンポーネントバスはＰＣＩｅ（登録商標）バスである請求項１のシステム。
【請求項５】
前記各周辺コンポーネントは前記周辺コンポーネントコネクタを介して送信された全てのデータを受信し且つどのデータが適用可能であるかを決定するように構成されている請求項２のシステム。
【請求項６】
前記各周辺コンポーネントはそれによって受信された全てのデータを残りの周辺コンポーネントへ転送する請求項２のシステム。
【請求項７】
前記周辺コンポーネントの各々はアドレスに基いてアクセスされる請求項１のシステム。
【請求項８】
複数のプロセッサを周辺バスに対して前記バスの送信／受信（ＴＸ／ＲＸ）レーンのそれぞれのグループを介して結合することと、
前記複数のプロセッサの前記バスに結合されていない各他のＴＸ／ＲＸレーンに前記複数のプロセッサを結合することと、
各々がアドレス可能な前記複数のプロセッサへデータを直接的に前記バスから送信することと、
前記プロセッサの間でデータを直接的に送信することとを備えた多重プロセッサ方法。
【請求項９】
前記複数のプロセッサはグラフィックス処理ユニット（ＧＰＵ）を備えている請求項８の方法。
【請求項１０】
前記複数のプロセッサは複数のＧＰＵを備えており、前記周辺バスは前記ＧＰＵが直接的に結合される周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））バスを備えている請求項８の方法。
【請求項１１】
それぞれのＴＸ／ＲＸレーンを介して互いに直接的に通信するように前記ＧＰＵを結合することを更に備えた請求項１０の方法。
【請求項１２】
ＧＰＵが前記バスからデータを受信すると共に前記データを他のＧＰＵへ送信することを更に備えた請求項１１の方法。
【請求項１３】
回路を製造することを可能にするように適合させられるコンピュータ可読命令を記憶しているコンピュータ可読媒体であって、前記回路は、
周辺コンポーネントバスに結合される周辺コンポーネントコネクタと、
複数の周辺コンポーネントが前記周辺コンポーネントバスにとって前記周辺コンポーネントコネクタに結合される１つの周辺デバイスとして見えるように、複数のそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して前記周辺コンポーネントコネクタに直接的に結合される前記複数の周辺コンポーネントとを備えており、
前記複数の周辺コンポーネントは更にそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して互いに直接的に結合されているコンピュータ可読媒体。
【請求項１４】
前記命令はハードウエア記述言語命令を備えている請求項１３のコンピュータ可読媒体。
【請求項１５】
その上に記憶された命令を有するコンピュータ可読媒体であって、前記命令は多重プロセッサシステム内で実行されるときに方法を実行させ、前記方法は、
複数のプロセッサを周辺バスに対して前記バスの送信／受信（ＴＸ／ＲＸ）レーンのそれぞれのグループを介して結合することと、
前記複数のプロセッサの前記バスに結合されていない各他のＴＸ／ＲＸレーンに前記複数のプロセッサを結合することと、
各々がアクセス可能な前記複数のプロセッサへデータを直接的に前記バスから送信することと、
前記プロセッサの間でデータを直接的に送信することとを備えているコンピュータ可読媒体。
【請求項１６】
前記複数のプロセッサはグラフィックス処理ユニット（ＧＰＵ）を備えている請求項１５のコンピュータ可読媒体。
【請求項１７】
前記複数のプロセッサは複数のＧＰＵを備えており、前記周辺バスは前記ＧＰＵが直接的に結合される周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））バスを備えている請求項１５のコンピュータ可読媒体。
【請求項１８】
前記方法はそれぞれのＴＸ／ＲＸレーンを介して互いに直接的に通信するように前記ＧＰＵを結合することを更に備えている請求項１７のコンピュータ可読媒体。
【請求項１９】
前記方法はＧＰＵが前記バスからデータを受信すると共に前記データを他のＧＰＵへ送信することを更に備えている請求項１８のコンピュータ可読媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００８年１０月３日付け出願の米国出願Ｎｏ．１２／２４５，６８６の利益を主張する。本出願はまた、米国出願Ｎｏ．１２／２４５，６８６の部分継続である２００８年１２月１９日付け出願の米国出願Ｎｏ．１２／３４０，５１０の利益を主張する。これら両出願はそれらの全てを参照のためにここに組み込まれる。
【技術分野】
【０００２】
本発明は、コンピュータ及び他のデジタルシステムにおけるデータ転送の分野のものである。
【背景技術】
【０００３】
コンピュータ及び他のデジタルシステムがより複雑且つより高性能になるのに従い、システムコンポーネント又は要素の間でのデータの転送を強化する方法及びハードウエアは、継続的に進化している。転送されるべきデータは、データを表す信号、命令、又は任意の他の信号を含む。データ転送の速度及び効率は、グラフィックスアプリケーションのような極端にデータ集約型のアプリケーションを実行するシステムにおいて特に重要な意味をもつ。典型的なシステムにおいては、グラフィックス処理能力は、中央処理ユニット（ＣＰＵ）能力の一部として提供されるか、あるいはＣＰＵと通信すると共にビデオゲーム等のようなアプリケーションのためのグラフィックスデータを処理することを支援するグラフィックス処理ユニット（ＧＰＵ）のような別個の特定目的プロセッサによって提供される。１つ以上のＧＰＵが１つのシステムに含まれているであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の多重ＧＰＵシステムにおいては、ブリッジされたホストインタフェース（例えばＰＣＩエクスプレス（ＰＣＩｅ（登録商標））バス）は、ピアトゥーピア(peer to peer)トラフィックとホストトラフィックの間で帯域を共有する必要がある。トラフィックは主としてメモリデータ転送からなるが、しばしば命令を含むことがある。図１はルート１０２を含む従来システム１００のブロック図である。典型的なルート１０２はコンピュータチップセットであり、コンピュータチップセットは、中央処理ユニット（ＣＰＵ）、ホストブリッジ１０４、並びに２つのエンドポイントＥＰ０＿１０６ａ及びＥＰ１＿１０６ｂを含んでいる。エンドポイントはバスエンドポイントであり、そして種々の周辺コンポーネント、例えばグラフィックス処理ユニット（ＧＰＵ）のような特定目的プロセッサであってよい。ルート１０２は、周辺コンポーネントと通信するために１つ以上のバスによってブリッジ１０４と結合される。幾つかの周辺コンポーネントエンドポイント（例えばＧＰＵ）は、それらの機能に関連する多量のデータに起因して、バス上で比較的大きな帯域を必要とする。コンポーネントの数を減らし且つコンポーネント間での効率的なデータ転送をも提供するアーキテクチャを提供することが望ましいであろう。例えばブリッジ集積回路（ＩＣ）のコストは比較的に高い。また、典型的なブリッジＩＣのサイズは、追加的なプリント配線板面積を必要とし且つ層数を増やしてしまうであろうグラフィックス処理ユニット（ＧＰＵ）のサイズに匹敵する。ブリッジＩＣはまた、電力、ストラップ(straps)、クロック及び場合によってはリードオンリメモリ（ＲＯＭ）に対する追加的な周囲のコンポーネントをも必要とする。
【図面の簡単な説明】
【０００５】
【図１】図１は周辺コンポーネントを伴う従来技術の処理システムのブロック図である。
【図２】図２は実施形態に従い多重化周辺コンポーネントバスを伴う多重プロセッサシステムの部分部分のブロック図である。
【図３】図３は実施形態に従い周辺コンポーネントを伴う処理システムの部分部分のブロック図である。
【図４】図４は実施形態に従い周辺コンポーネントを伴う処理システムのより詳細なブロック図である。
【図５】図５は１つのバスエンドポイントが内部ブリッジを含む実施形態のブロック図である。
【図６】図６は各々が内部ブリッジを含む２つより多いバスエンドポイントを含む実施形態のブロック図である。
【図７】図７は実施形態に従いシステム内の種々のコンポーネントの視点からのメモリ空間の見え方を示すブロック図である。
【発明を実施するための形態】
【０００６】
多重プロセッサアーキテクチャ及び方法の実施形態がここに説明される。実施形態は、外部ブリッジ集積回路（ＩＣ）アーキテクチャの使用の代替案を提供する。例えば、実施形態は、多重プロセッサが外部ブリッジＩＣを必要とすることなしに１つの周辺インタフェーススロットを使用することができるように、周辺バスを多重化する。他の実施形態は、少なくとも１つのバスエンドポイントの内部にあるホストバスブリッジを介してバスルートと結合される多重バスエンドポイントを伴うシステムを含む。また、これらのバスエンドポイントは互いに直接的に結合される。実施形態は既知のバスプロトコルと共に使用可能である。
【０００７】
図２は実施形態に従い多重化された周辺コンポーネントバスを伴う多重プロセッサシステム７００の部分部分のブロック図である。この例示的なシステムにおいては、２つのＧＰＵ、即ちマスターＧＰＵ７０２Ａ及びスレーブＧＰＵ７０２Ｂがある。各ＧＰＵ７０２は、１６個の周辺コンポーネント相互接続エクスプレス(peripheral component interconnect express)（ＰＣＩｅ（登録商標））送信（ＴＸ）レーン(lanes)及び１６個のＰＣＩｅ（登録商標）受信（ＲＸ）レーンを有している。ＧＰＵ７０２の各々は、各自のデータリンク層７０６及び各自の物理層（ＰＨＹ）７０４を含む。ＧＰＵ７０２ＡのＴＸ／ＲＸレーンの８つは、Ｘ１６＿ＰＣＩｅ（登録商標）コネクタ又はスロット７０８のＴＸ／ＲＸレーンの半分に接続される。ＧＰＵ７０２ＢのＴＸ／ＲＸレーンの８つは、Ｘ１６＿ＰＣＩｅ（登録商標）コネクタ又はスロット７０８のＴＸ／ＲＸレーンの残りに接続される。ＧＰＵ７０２Ａ及びＧＰＵ７０２Ｂの各々の残りのＴＸ／ＲＸレーンは互いに接続され、これらのＧＰＵ７０２の間での直接的な高速接続を提供している。
【０００８】
ＰＣＩｅ（登録商標）ｘ１６スロット７０８（通常は１つのＧＰＵまで行く）は、２つの部分に分割される。スロットの半分はＧＰＵ７０２Ａに接続され、そして他の半分はＧＰＵ７０２Ｂに接続される。各ＧＰＵ７０２は、基本的にはデータの他の半分を他のＧＰＵ７０２へエコーバックする(echoes back)。即ち、いずれか一方のＧＰＵによって受信されたデータは他方に転送される。各ＧＰＵ７０２はＰＣＩｅ（登録商標）バスによって受信されたデータの全てを確かめて、各ＧＰＵ７０２は、要求又は命令に応答することになっているかどうかを内部で決定する。各ＧＰＵ７０２は次いで、適切に応答するか、あるいは何もしない。幾つかのデータ又は命令、例えば「リセット」が全てのＧＰＵ７０２に対して適用可能である。
【０００９】
システムレベルの視点からは、あるいは周辺バスの観点からは、ＰＣＩｅ（登録商標）バス上には唯一のＰＣＩｅ（登録商標）ロード（デバイス）がある。ＧＰＵ７０２Ａ又はＧＰＵ７０２Ｂのいずれか一方がアドレスに基いてアクセスされる。例えば、アドレスドメインアクセス(Address Domain Access)に対しては、ＧＰＵ７０２Ａがアドレスドメインの一方の半分に割り当てられてよく、そしてＧＰＵ７０２Ｂが他の半分に割り当てられてよい。システムはマスター／スレーブモード又は単一／多重ＧＰＵモードで動作することができ、またモードはストラップ(straps)によって識別され得る。
【００１０】
種々のデータパスが参照番号によって識別される。基準クロック（ＲＥＦ＿ＣＬＫ）パスは７１１で示される。８レーンＲＸ−２パスは７０９で示される。８レーンＲＸ−１パスは７１３で示される。８レーンＴＸ−１パスは７１５で示される。制御信号７１０はストラップのような非ＰＣＩｅ（登録商標）信号である。各ＧＰＵ７０２内の（ＰＨＹ）７０４はデータを適切なレーン又はチャネルにそのまま繰り返す（echoes）。レーン接続は順序どおりに行われてよく、それによりシリコン設計を最適化し且つ／又はＰＣＩｅ（登録商標）スロットを１６レーン内で支持することが支援される。２つのＧＰＵがシステムの例として示されているが、アーキテクチャはｎ−ＧＰＵまで拡大可能である。また、ＧＰＵ７０２は上述のように結合され得る周辺コンポーネントの１つの例である。システム内で周辺コンポーネントバスと通常は通信する任意の他の周辺コンポーネントは、同様にして結合され得る。
【００１１】
図３は実施形態に従い周辺コンポーネントを伴う処理システム２００の部分部分のブロック図である。システム２００は、図１のバスルート１０２と同様なバスルート２０２を含む。実施形態におけるバスルート２０２は、ＣＰＵ及びシステムメモリを含むチップセットである。ルート２０２は、内部ブリッジ２０５ａを含むエンドポイントＥＰ０＿２０６ａにバス２０９を介して結合される。実施形態におけるバス２０９はＰＣＩエクスプレス（ＰＣＩｅ（登録商標））バスであるが、実施形態はこれに限定されない。ＥＰ０＿２０６ａは他のエンドポイントＥＰ１＿２０６ｂに結合される。ＥＰ１＿２０６ｂは内部ブリッジ２０５ｂを含む。ＥＰ０＿２０６ａ及びＥＰ１＿２０６ｂは、バス２０７を介してそれらのそれぞれのブリッジと直通である。ＥＰ１＿２０６ｂは、そのブリッジ２０５ｂを通ってルート２０２にバス２１１を介して結合される。エンドポイントＥＰ０＿２０６ａ及びＥＰ１＿２０６ｂは、それぞれローカルメモリ２０８ａ及び２０８ｂを含む。ルート２０２から見ると、バス２０９及び２１１は、それぞれ標準的双方向点対点(point to point)データリンクの送信レーン及び受信レーンを構成している。
【００１２】
実施形態においては、ＥＰ０＿２０６ａ及びＥＰ１＿２０６ｂは同一のものである。以下に更に説明するように、種々の実施形態においてはブリッジ２０５ｂは必要ないが、２つの異なるバージョンを製造するよりもむしろＧＰＵの１つのバージョンのようなエンドポイントの１つのバージョンを有する目的でブリッジ２０５ｂが含まれている。尚、ＥＰ０はバス２０９及び２０７を介してそれを直接的にルート２０２に接続することによってスタンドアロンで用いられてよく、また同様にＥＰ１はバス２０７及び２１１を介してそれを直接的にルート２０２に接続することによってスタンドアロンで用いられてよい。
【００１３】
ブリッジ２０５を含むことは、ＥＰ０及びＥＰ１の両方が存在する場合に、図１のブリッジ１０４のような外部ブリッジの必要性を排除する。図１の「Ｙ」又は「Ｔ」フォーメーションとは対照的に、システム２００はループにおいてデータを移動させる（ここでの場合、時計回り方向）。左エンドポイントＥＰ０はデータを直接的に右エンドポイントＥＰ１へ送ることができる。ＥＰ１からＥＰ０へのリターンパスはルート２０２を経由する。従って、ルートは、ＥＰ１から入ってきたパケットのデータをＥＰ０へ反映する能力を有する。つまり、アーキテクチャは、ルートトランザクションへのエンドポイントに対して用いられるようなワイヤの同一対上で見かけ上ピアトゥーピアトランザクションを提供する。
【００１４】
ＥＰ０＿２０６ａ及びＥＰ１＿２０６ｂはまた、従来の構成において動作するように構成可能である。即ち、ＥＰ０＿２０６ａ及びＥＰ１＿２０６ｂは、バス２０９及び２１１を介してルート２０２と直接的に通信するように各々構成可能であり、このような構成においては、バス２０９及び２１１は各々双方向的である。
【００１５】
図４は実施形態に従い周辺コンポーネントを伴う処理システムの更に詳細なブロック図である。システム３００はシステム２００と同様であるが、付加的な詳細が示されている。システム３００はシステムメモリ３０３に結合されるバスルート３０２を含む。バスルート３０２は更に、バス３０９を介してエンドポイント３０５ａに結合される。特定の実施形態を例示する目的で、エンドポイント３０５ａ及び３０５ｂはＧＰＵであるが、実施形態はこれに限定されない。ＧＰＵ０＿３０５ａは多重クライアントを含む。クライアントは、シェーダ(shader)ユニット及び復号器ユニットのようなタスクを実行する論理を含む。クライアントはバスインタフェース（Ｉ／Ｆ）論理を介して内部ブリッジと結合されており、バスインタフェース論理は、ＧＰＵによって実行されるリード(read)動作及びライト(write)動作の全てを制御する。
【００１６】
ＧＰＵ０＿３０５ａは、ＧＰＵ０＿３０５ａの内部ブリッジからＧＰＵ１＿３０５ｂの内部ブリッジに至るバス３０７を介してＧＰＵ１＿３０５ｂと結合される。実施形態においては、ＧＰＵ１＿３０５ｂはＧＰＵ０＿３０５ａと同一であり、そして多重クライアント、内部ブリッジ及びＩ／Ｆ論理を含む。各ＧＰＵは典型的には、しばしばＧＤＤＲ＿ＤＲＡＭとして実装される専用のローカルメモリに接続される。ＧＰＵ１＿３０５ｂはバス３１１を介してバスルート３０２に結合される。１つの実施形態においては、矢印が示すように、データ並びにリード要求及び完了のような他のメッセージは、バスルート３０２からＧＰＵ０＿３０５ａを経てＧＰＵ１＿３０５ｂへと時計回りループにおいて流れる。
【００１７】
他の実施形態においては、ＧＰＵ３０５の１つはブリッジを含まない。更に他の実施形態においては、データは時計回りではなく反時計回りに流れる。
【００１８】
１つの実施形態においては、データ経路を決定するプロトコルは、図１のアーキテクチャと同じようなアーキテクチャを出現させるような方法で通信される。特に、ＧＰＵ１＿３０５ｂ内のブリッジは、上流ポートとしてのＧＰＵ０＿３０５ａ内のブリッジへのリンク上に出現する必要がある一方で、ＧＰＵ０＿３０５ａ内のブリッジ上での対応する配設位置は、下流ポートとしてのルート３０２へのリンク３０９上に出現する必要がある。また、２つのリンクの物理的な経路付けが異なるとしても、組み込まれたブリッジは、その出て行くリンクを、その入ってくるリンク上で受ける全ての要求に対するリターンパスとしてとらえることができなければならない。このことは、各ＧＰＵに対するチェインモード構成ストラップ(Chain Mode configuration strap)の状態を設定することによって達成される。ストラップがゼロに設定されている場合、ブリッジは、送信リンク及び受信リンクの両方が上流ポート、即ちルートコンプレックス又はブリッジデバイスのいずれかに向かっていると推定する。ストラップが１に設定されている場合、ブリッジは、デイジーチェイン(daisy-chain)構造を推定する。
【００１９】
他の実施形態においては、ルートのピアトゥーピアブリッジング機能は、ＧＰＵ１＿３０５ｂがデータをシステムメモリ３０３又はバッファのどちらに書き込むかに従う２ステッププロセスである。次いで別の動作として、ＧＰＵ０＿３０５ａがバスルート３０２を介してデータを読み戻す。
【００２０】
バスルート３０２は、内部ブリッジがあたかも外部ブリッジ（図１におけるような）であるかのように、要求に通常通り応答する。実施形態においては、ＧＰＵ０＿３０５ａのブリッジは能動的に構成される一方で、ＧＰＵ１＿３０５ｂのブリッジは配線に見えるように構成され、そしてデータを単純に通過させる。これにより、バスルート３０２は、バス３０９及び３１１を標準的な周辺機器相互接続バスとして見ることができる。バスルートがＧＰＵ０＿３０５ａのブリッジから読み出す場合、このブリッジは、ＧＰＵ１＿３０５ｂを通過するようにデータを送り、そしてデータがあたかもＧＰＵ０＿３０５ａから直接的に来たかのようにバスルート３０２へデータを戻す。
【００２１】
図５は多重バスエンドポイントの１つが内部ブリッジを含むシステム４００のブロック図である。システム４００は、バスルート４０２と、ブリッジ４０５ａを含むＥＰ０＿４０６ａとを含む。ＥＰ０＿４０６ａは、ブリッジ４０５ａを経由してバス４０９を介してルート４０２と結合され、そしてブリッジ４０５ａを経由してバス４０７を介してＥＰ１＿４０６ｂとも結合されている。エンドポイントＥＰ０＿４０６ａ及びＥＰ１＿４０６ｂは、それぞれローカルメモリ４０８ａ及び４０８ｂを含む。
【００２２】
図６は各々が内部ブリッジを含む２つより多いバスエンドポイントを含むシステム５００のブロック図である。システム５００は、バスルート５０２と、ブリッジ５０５ａ及びローカルメモリ５０８ａを含むＥＰ０＿５０６ａとを含む。システム５００は更に、ブリッジ５０５ｂ及びローカルメモリ５０８ｂを含むＥＰ１＿５０６ｂと、ブリッジ５０５ｃ及びローカルメモリ５０８ｃを含むＥＰ２＿５０６ｃとを含む。
【００２３】
ＥＰ０＿５０６ａは、ブリッジ５０５ａを経由してバス５０９を介してルート５０２と結合され、またバス５０７ａを介してブリッジ５０５ｂを経由してＥＰ１＿５０６ｂとも結合される。ＥＰ１＿５０６ｂは、バス５０７ｂを介してブリッジ５０５ｃを経由してＥＰ２＿５０６ｃと結合される。他の実施形態は、リング構成内へ追加される追加的なエンドポイントを含む。他の実施形態においては、システムは２つより多いエンドポイント５０６を含むが、最も右側のエンドポイントは内部ブリッジを含まない。更に他の実施形態においては、データのフローは、図に示されるような時計回りとは反対の反時計回りである。
【００２４】
再び図４を参照すると、実施形態に従い内部ブリッジ上には２つの論理ポートがある。１つのポートはＧＰＵ０＿３０５ａのブリッジ内で「オン」であり、また１つのポートはＧＰＵ１＿３０５ｂのブリッジ内で「オフ」である。バスルート３０２は、バス３０９上で要求を送ることによって、ライト動作を実行することができる。標準的なアドレシングスキームは、バスＩ／Ｆへ要求を送るようにブリッジに示す。要求がＧＰＵ１＿３０５ｂに対するものである場合には、ブリッジは要求をバス３０７へ経路付ける。従って、実施形態においては、ＧＰＵ０＿３０５ａ及びＧＰＵ１＿３０５ｂのそれぞれの内部ブリッジは異なるようにプログラムされてよい。
【００２５】
図７はバスアドレス範囲の分割及び種々のコンポーネントの視点から見えるメモリ空間を示すブロック図である。図４もまた参照すると、６０２はバスルート即ちホストプロセッサ３０２の視点からのメモリの見え方である。６０４はＧＰＵ０＿３０５ａ内部ブリッジの視点からのメモリの見え方である。６０６はＧＰＵ１＿３０５ｂ内部ブリッジの視点からのメモリの見え方である。バスアドレス範囲は、ＧＰＵ０＿３０５ａ、ＧＰＵ１＿３０５ｂ、及びシステム３０２のメモリ空間のための複数の範囲に分割されている。ＧＰＵ０＿３０５ａブリッジは、ＧＰＵ０＿３０５ａ範囲に入ってくる要求がそれ自身のローカルメモリへ経路付けられるようにセットアップされる。ルートから又はＧＰＵ０＿３０５ａそれ自身からＧＰＵ１＿３０５ｂ又はシステム３０２の範囲への入ってくる要求は、ＧＰＵ０＿３０５ａの出力ポートへ経路付けられる。ＧＰＵ１＿３０５ｂブリッジは、ＧＰＵ１＿３０５ｂ範囲へ入ってくる要求がそれ自身のローカルメモリへ経路付けられるように、少し異なるようにセットアップされる。ＧＰＵ０＿３０５ａから又はＧＰＵ１＿３０５ｂそれ自身からルート又はＧＰＵ０＿３０５ａの範囲への要求は、ＧＰＵ１＿３０５ｂの出力ポートへ経路付けられる。
【００２６】
ホストはバストポロジ(bus topology)を図１のトポロジと同様であるとみなす。ＧＰＵ１＿３０５ｂは、ホストプロセッサ３０２へのそれ自身の要求をそれ自身のブリッジを経由して作成することができ、そして要求はホストプロセッサ３０２へと通過するであろう。ホストプロセッサ３０２が要求を返送しているとき、それはＧＰＵ０＿３０５ａのブリッジを通過し、ＧＰＵ０＿３０５ａのブリッジは、要求及びデータが何処に経路付けられるべきかを決定するための論理を有している。
【００２７】
ＧＰＵ１＿３０５ｂからＧＰＵ０＿３０５ａへのライト動作は、２つの経路で実行され得る。ＧＰＵ１＿３０５ｂはデータをシステムメモリ３０３内のメモリロケーションへ送る。次いで別個に、ＧＰＵ０＿３０５ａは、データがシステムメモリ３０３内にあることを知った後に、データを読む。
【００２８】
リードデータ要求及び他の分割トランザクション動作に対する完了メッセージは、配線内を要求と同じ方向に進行する必要がある。従って、上述のアドレスベースの要求経路付けに加えて、デバイスベースの経路付けが同様な様態でセットアップされる必要がある。例えば、ＧＰＵ０＿３０５ａの内部ブリッジは、要求及び完了メッセージの両方に対する経路がバス３０７であることを認識する。
【００２９】
実施形態は、軽負荷の利用の場合における電力使用を改善する電力管理を含む。例えば少ないグラフィックス処理を伴う利用の場合、ＧＰＵ１＿３０５ｂの論理は電源を切られ、そしてＧＰＵ１＿３０５ｂにおけるブリッジング機能は、入力ポートから出力ポートへの単純な通過機能へと低下させられる。また、ＧＰＵ０＿３０５ａの機能は、入力ポートから出力ポートへ経路付けられる転送を処理しないように低下させられる。実施形態においては、ＧＰＵ１＿３０５ｂにおけるブリッジング機能に対しては、別個の電力供給がある。ソフトウエアは、電力を落とすべき状態を検出する。実施形態は、デバイスの論理の休止とは独立して電源を落とされるべきブリッジのための別個の電力レギュレータ及び／又は別個の内部電力源を含む。
【００３０】
上述の電力管理を含まない実施形態においてさえも、外部ブリッジ（図１におけるような）が必要でないので、システム基板面積が節約される。外部ブリッジに必要なボード面積及び電力並びにそのピンが節約される。一方、ＧＰＵの各々がそれ自身の内部ブリッジを有する必要がない。他の実施形態においては、図５を参照して説明したように、ＧＰＵ１＿３０５ｂは内部ブリッジを有していない。
【００３１】
システム３００のアーキテクチャは、拡張回路基板のための多重スロットを含むシステムにおいて実用的である。代替的には、システム３００はモバイルデバイス上でのような半田付けされたシステムである。
【００３２】
バス３０７、３０９及び３１１は、ＰＣＩｅ（登録商標）バス又は任意の他の同様な周辺機器相互接続バスであってよい。
【００３３】
ここに説明される任意の回路は、製造プロセスの制御又は関連する回路を製造するために後で用いられるであろうマスクワークを通して実装され得る。そのような製造プロセス制御及びマスクワーク生成は、当業者にとって既知であり、また、例えばＶｅｒｉｌｏｇ、ＶＨＤＬ又は他のハードウエア記述言語での命令を含むコンピュータ可読媒体上のコンピュータ命令の記憶を含む。
【００３４】
本発明の実施形態は、周辺コンポーネントバスに結合される周辺コンポーネントコネクタと、複数の周辺コンポーネントが周辺コンポーネントバスにとって周辺コンポーネントコネクタに結合される１つの周辺デバイスとして見えるように、複数のそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して周辺コンポーネントコネクタに直接的に結合される複数の周辺コンポーネントとを備えたシステムを含む。
【００３５】
実施形態においては、複数の周辺コンポーネントは更にそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して互いに直接的に結合されている。
【００３６】
実施形態においては、複数の周辺コンポーネントの少なくとも１つはグラフィックス処理ユニット（ＧＰＵ）である。
【００３７】
実施形態においては、周辺コンポーネントコネクタは周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））スロットであり、周辺コンポーネントバスはＰＣＩｅ（登録商標）バスである。
【００３８】
実施形態においては、各周辺コンポーネントは前記周辺コンポーネントコネクタを介して送信された全てのデータを受信し且つどのデータが適用可能であるかを決定するように構成されている。
【００３９】
実施形態においては、各周辺コンポーネントはそれによって受信された全てのデータを残りの周辺コンポーネントへ転送する。
【００４０】
実施形態においては、周辺コンポーネントの各々はアドレスに基いてアクセスされる。
【００４１】
本発明の実施形態は、複数のプロセッサを周辺バスに対してバスの送信／受信（ＴＸ／ＲＸ）レーンのそれぞれのグループを介して結合することと、複数のプロセッサのバスに結合されていない各他のＴＸ／ＲＸレーンに複数のプロセッサを結合することと、各々がアドレス可能な複数のプロセッサへデータを直接的にバスから送信することと、プロセッサの間でデータを直接的に送信することとを備えた多重プロセッサ方法を含む。
【００４２】
実施形態においては、複数のプロセッサはグラフィックス処理ユニット（ＧＰＵ）を備えている。
【００４３】
実施形態においては、複数のプロセッサは複数のＧＰＵを備えており、周辺バスはＧＰＵが直接的に結合される周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））バスを備えている。
【００４４】
実施形態においては、それぞれのＴＸ／ＲＸレーンを介して互いに直接的に通信するようにＧＰＵを結合することを更に備えている。
【００４５】
実施形態においては、ＧＰＵがバスからデータを受信すると共にデータを他のＧＰＵへ送信することを更に備えている。
【００４６】
本発明の実施形態は、回路を製造することを可能にするように適合させられるコンピュータ可読命令を記憶しているコンピュータ可読媒体を含み、回路は、周辺コンポーネントバスに結合される周辺コンポーネントコネクタと、複数の周辺コンポーネントが周辺コンポーネントバスにとって周辺コンポーネントコネクタに結合される１つの周辺デバイスとして見えるように、複数のそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して周辺コンポーネントコネクタに直接的に結合される複数の周辺コンポーネントとを備えており、複数の周辺コンポーネントは更にそれぞれの送信／受信（ＴＸ／ＲＸ）レーンを介して互いに直接的に結合されている。
【００４７】
実施形態においては、命令はハードウエア記述言語命令を備えている。
【００４８】
本発明の実施形態は、その上に記憶された命令を有するコンピュータ可読媒体を含み、命令は多重プロセッサシステム内で実行されるときに方法を実行させ、方法は、複数のプロセッサを周辺バスに対してバスの送信／受信（ＴＸ／ＲＸ）レーンのそれぞれのグループを介して結合することと、複数のプロセッサのバスに結合されていない各他のＴＸ／ＲＸレーンに複数のプロセッサを結合することと、各々がアクセス可能な複数のプロセッサへデータを直接的にバスから送信することと、プロセッサの間でデータを直接的に送信することとを備えている。
【００４９】
実施形態においては、複数のプロセッサはグラフィックス処理ユニット（ＧＰＵ）を備えている。
【００５０】
実施形態においては、複数のプロセッサは複数のＧＰＵを備えており、周辺バスはＧＰＵが直接的に結合される周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ（登録商標））バスを備えている。
【００５１】
実施形態においては、方法はそれぞれのＴＸ／ＲＸレーンを介して互いに直接的に通信するようにＧＰＵを結合することを更に備えている。
【００５２】
実施形態においては、方法はＧＰＵがバスからデータを受信すると共にデータを他のＧＰＵへ送信することを更に備えている。
【００５３】
本発明の実施形態は、バスルートを備えたシステムを含み、バスルートは、バスを介して周辺コンポーネントと通信するように構成可能な中央処理ユニットと、バスルートに直接的に結合され且つ更に第２の周辺コンポーネントに直接的に結合される第１の周辺コンポーネントとを備えており、第１の周辺コンポーネントは、データを受信しデータを送信するように構成可能な内部ブリッジを備えており、受信すること及び送信することは、第１の周辺コンポーネントと第２の周辺コンポーネントの間での直接の通信を備えている。
【００５４】
実施形態においては、第１の周辺コンポーネント及び第２の周辺コンポーネントは各々更に、データを送信及び受信するためにバスルートと直接的に通信するように構成可能である。
【００５５】
実施形態においては、受信すること及び送信することは更に、バスルートを介して第２の周辺コンポーネントから第１の周辺コンポーネントへ要求及びデータを送信することを備えている。
【００５６】
実施形態においては、受信すること及び送信することは更に、第１の周辺コンポーネントの第２の周辺コンポーネントへの内部ブリッジを介して第１の周辺コンポーネントから第２の周辺コンポーネントへ要求又はデータを送信することを備えている。
【００５７】
実施形態においては、バスルートはライト動作を実行するように構成可能であり、第２の周辺コンポーネントへのライト動作は、バスルートが第１の周辺コンポーネントの内部ブリッジへライト要求を送信することと、第１の周辺コンポーネントの内部ブリッジがライト要求を第２の周辺コンポーネントへ直接的に送信することとを備えている。
【００５８】
実施形態においては、ライト要求は第２の周辺コンポーネントの内部バスインタフェースによって受信される。
【００５９】
実施形態においては、バスルートはライト動作を実行するように構成可能であり、第１の周辺コンポーネントへのライト動作は、バスルートがブリッジへライト要求を送信することと、ブリッジがライト要求を第１の周辺コンポーネントの内部バスインタフェースへ送信することとを備えている。
【００６０】
実施形態においては、バスルートはリード動作を実行するように構成可能であり、第１の周辺コンポーネントへのリード動作は、バスルートがブリッジへリード要求を送信することと、ブリッジがリード要求を第１の周辺コンポーネントの内部バスインタフェースへ送信することとを備えている。
【００６１】
実施形態においては、バスルートはリード動作を実行するように構成可能であり、第２の周辺コンポーネントへのリード動作は、バスルートがブリッジへリード要求を送信することと、ブリッジがリード要求を第２の周辺コンポーネントへ直接的に送信することとを備えている。
【００６２】
実施形態においては、ブリッジは、受信したライト要求、受信したリード要求、及び受信したデータに対して経路付けを決定するように構成可能な論理を備えている。
【００６３】
実施形態においては、第２の周辺コンポーネントは、データを受信しデータを送信するように構成可能であり更にデータを受信しデータを送信するために内部ブリッジが使用されない場合に電源を落とされるように構成可能な内部ブリッジを備えている。
【００６４】
実施形態においては、第２の周辺コンポーネントは更に、内部ブリッジの使用のための専用の電力源を備えている。
【００６５】
実施形態においては、第１の周辺コンポーネント及び第２の周辺コンポーネントは各々グラフィックス処理ユニット（ＧＰＵ）を備えている。
【００６６】
実施形態においては、第１の周辺コンポーネント及び第２の周辺コンポーネントの各々は更に、それぞれのバスインタフェースに結合されるそれぞれ複数のクライアントを備えており、クライアントは、シェーダユニット及び符号器／復号器ユニットを備えたビデオ処理論理を備えている。
【００６７】
本発明の実施形態は、多重プロセッサシステムにおける通信の方法を含み、方法はバスルートが要求を直接的に第１の周辺コンポーネントへ送信することを備えており、要求はリード要求及びライト要求を備えており、第１の周辺コンポーネントは第１の周辺コンポーネントの内部ブリッジ内の第１のバスを介して要求を受信し、内部ブリッジは要求に対して適切な経路付けを決定し、適切な経路付けは、第２の周辺コンポーネントに向けられている要求をブリッジから直接的に第２の周辺コンポーネントのバスインタフェースへ第２のバスを介して経路付けることと、第１の周辺コンポーネントに向けられている要求を第１の周辺コンポーネントのバスインタフェースへ経路付けることとを備えている。
【００６８】
実施形態においては、第２のコンポーネントが第３のバスを介してデータを直接的にバスルートへ送信することによってリード要求に応答することを更に備えている。
【００６９】
実施形態においては、第２の周辺コンポーネントが第２の周辺コンポーネントの内部ブリッジ内で要求を受信することを更に備えている。
【００７０】
実施形態においては、第１の周辺コンポーネントがリード要求を第２の周辺コンポーネントへ第２のバスを介して送信することと、第２の周辺コンポーネントがリード要求に応答してデータをバスルートへ第３のバスを介して送信することと、バスルートがデータをブリッジへ第１のバスを介して送信することとを更に備えている。
【００７１】
本発明の実施形態は、その上に記憶された命令を有するコンピュータ可読媒体でを含み、命令は多重プロセッサシステム内で実行されるときに方法を実行させ、方法は、バスルートが要求を直接的に第１の周辺コンポーネントへ送信することを備えており、要求はリード要求及びライト要求を備えており、第１の周辺コンポーネントは第１の周辺コンポーネントの内部ブリッジ内の第１のバスを介して要求を受信し、内部ブリッジは要求に対して適切な経路付けを決定し、適切な経路付けは、第２の周辺コンポーネントに向けられている要求をブリッジから直接的に第２の周辺コンポーネントのバスインタフェースへ第２のバスを介して経路付けることと、第１の周辺コンポーネントに向けられている要求を第１の周辺コンポーネントのバスインタフェースへ経路付けることとを備えている。
【００７２】
実施形態においては、方法は、第２のコンポーネントが第３のバスを介してデータを直接的にバスルートへ送信することによってリード要求に応答することを更に備えている。
【００７３】
実施形態においては、方法は、第２の周辺コンポーネントが第２の周辺コンポーネントの内部ブリッジ内で要求を受信することを更に備えている。
【００７４】
実施形態においては、方法は更に、第１の周辺コンポーネントがリード要求を第２の周辺コンポーネントへ第２のバスを介して送信することと、第２の周辺コンポーネントがリード要求に応答してデータをバスルートへ第３のバスを介して送信することと、バスルートがデータをブリッジへ第１のバスを介して送信することとを備えている。
【００７５】
実施形態においては、命令は、方法を実行するための特定用途向け集積回路（ＡＳＩＣ）を生成するために使用可能なハードウエア記述言語命令を備えている。
【００７６】
上述の実施形態の側面は、任意の種類の回路内にプログラムされる機能性として実装されてよく、そのような回路は、限定はされないが、プログラム可能論理デバイス（ＰＬＤ）、例えばフィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、プログラム可能アレイ論理（ＰＡＬ）デバイス、電気的にプログラム可能な論理及びメモリデバイス、並びに標準的なセルベースのデバイスの他に、特定用途向け集積回路（ＡＳＩＣ）及び完全に特別注文の集積回路を含む。実施形態の側面を実装するための幾つかの他の可能性は、メモリを伴うマイクロコントローラ（例えば電気的に消去可能なプログラム可能リードオンリメモリ（ＥＥＰＲＰＭ）、フラッシュメモリ等）、組み込み型マイクロプロセッサ、ファームウエア、ソフトウエア、等を含む。また、実施形態の側面は、ソフトウエアベースの回路エミュレーション、個別論理（シーケンシャル及び組み合わせの）、特別注文デバイス、ファジー（ニューラル）論理、量子デバイス、及び上述のデバイス種類の任意の混成を有するマイクロプロセッサ内で具現化され得る。言うまでもなく、基本となるデバイス技術は、種々のコンポーネント種類、例えば相補型金属酸化物半導体（ＣＭＯＳ）のような金属酸化物半導体電界効果トランジスタ（ＭＯＳＦＥＴ）、エミッタ結合論理（ＥＣＬ）のようなバイポーラ技術、ポリマー技術（例えば、シリコン共役ポリマー（silicon-conjugated polymer）及び金属共役ポリマー金属（metal-conjugated polymer-metal）の構造）、アナログ及びデジタル混合、等において提供され得る。
【００７７】
明細書及び特許請求の範囲において使用される「プロセッサ」の用語は、プロセッサコア、又はプロセッサの一部分を含む。また、１つ以上のＧＰＵ及び１つ以上のＣＰＵは、通常ここでは別々に参照されるが、実施形態においては、ＧＰＵ及びＣＰＵの両方が単一の集積回路パッケージ内に又は単一のモノリシックダイ上に含まれる。従って、単一のデバイスが特許請求の範囲に記載された方法をそのような実施形態において実行する。
【００７８】
明細書及び特許請求の範囲を通して、「備える(comprise)」、「備えている(comprising)」等の語は、文脈が明らかに別のものを必要としていない限り、排他的又は網羅的な意味とは対照的な包括的な意味、即ち、「限定されないが、〜を含んでいる(including, but not limited to)」の意味で解釈されるべきである。単数又は複数を使用する語はまた、複数又は単数をそれぞれ含む。また、「ここに」、「以下に」、「上記の、上述の」、「以下の」という語及び同様の意味の語がこの出願で用いられる場合、それらの語は、この出願のいずれか特定の部分ではなくこの出願を全体として参照している。「又は、若しくは、あるいは(or)」の語が、２つ又はそれより多い項目のリストを参照して用いられている場合、当該語は、当該語の以下の解釈、即ちリスト内の任意の項目、リスト内の全ての項目、及びリスト内の項目の任意の組み合わせの全てを網羅する。
【００７９】
方法及びシステムの例示された実施形態の上記説明は、網羅的であることを意図されておらず、あるいは開示される厳密な形態に本発明を限定することを意図されていない。方法及びシステムの具体的な実施形態、及び方法及びシステムのための例が例示を目的としてここに説明されるが、関連分野を含む当業者が認識するであろうように、種々の均等な修正が本発明の範囲内で可能である。ここに提供される開示の教示は、上述のようなグラフィック処理又はビデオ処理を含むシステムに対してのみだけでなく、他のシステムにも適用することができる。開示される種々の動作は、極めて広範な種類のアーキテクチャにおいて実行することができ、また説明したのとは異なるように分散させられてよい。また、多くの構成がここに説明されるが、いずれも限定的又は排他的であることは意図されていない。
【００８０】
他の実施形態においては、ここに説明されるハードウエア及びソフトウエア能力の幾つか又は全ては、プリンタ、カメラ、テレビジョン、デジタル多用途ディスク（ＤＶＤ）プレーヤ、ＤＶＲ若しくはＰＶＲ、ハンドヘルドデバイス、携帯電話、又は幾つかの他のデバイス内にあってよい。上述の種々の実施形態の要素及び作用は、更なる実施形態を提供するために組み合わされ得る。これらの及び他の変更は、上述の詳細な説明を考慮して方法及びシステムに対してなされ得る。
【００８１】
一般に、以下の特許請求の範囲では、使用される用語は、明細書及び特許請求の範囲に開示される特定の実施形態に方法及びシステムを限定するように解釈されるべきではない一方で、特許請求の範囲の下で動作するあらゆる処理システム及び方法を含むように解釈されるべきである。従って、方法及びシステムは開示によって限定されるものではなく、その代わり、方法及びシステムの範囲はもっぱら特許請求の範囲によって決定されることになる。
【００８２】
方法及びシステムの特定の側面が特定の請求項の形態で以下に提供されるが、発明者らは、方法及びシステムの種々の側面を任意の数の請求項の形態で検討している。例えば、方法及びシステムの１つの側面のみがコンピュータ可読媒体において具現化されるものとして記載されているかもしれないが、他の側面も同様にコンピュータ可読媒体において具現化され得る。そのようなコンピュータ可読媒体は、コンピュータデバイス（例えばパーソナルコンピュータ、パーソナルデジタルアシスタント、ＰＶＲ、モバイルデバイス等）によって実行されることになる命令、又は実行されたときにデバイス（ＧＰＵ、ＡＳＩＣ等）を作り出すように設計されている命令（例えばＶｅｒｉｌｏｇ又はハードウエア記述言語）若しくは動作させられたときに上述の側面を実行するソフトウエアアプリケーションであってよい命令を記憶していてよい。特許請求の範囲に記載された発明は、ＧＤＳＩＩデータ（又はその均等なもの）を生成するために作成され、記憶され、合成され、そして使用されるコンピュータコード（例えばＨＤＬ、Ｖｅｒｉｌｏｇ等）において具現化されてよい。このデータに基いて次いでＡＳＩＣを製造することができる。
【００８３】
従って、本発明者らは、本出願の出願後に追加的な請求項を加えて方法及びシステムの他の側面に対するそのような追加的な請求項の形態を追求する権利を留保する。
【図１】
2012504835.tif 000003
【図２】
2012504835.tif 000004
【図３】
2012504835.tif 000005
【図４】
2012504835.tif 000006
【図５】
2012504835.tif 000007
【図６】
2012504835.tif 000008
【図７】
2012504835.tif 000009
【国際調査報告】
2012504835.tif 000010
2012504835.tif 000011