説明

モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム

協働して、様々なアプリケーションのための写実的なグラフィックス能力をサポートする強力で高度にスケーラブルな視覚化解決法を提供するグラフィック処理ユニット(GPU)の多数のコアのクラスタをサポートする、モノリシック・シリコン・チップ上に実現された高性能のグラフィックス処理及び表示システム・アーキテクチャである。本発明は、種々の並列レンダリング技術を動的に管理し、主グラフィックス・アプリケーションの適応処理を可能にすることによって、グラフィックス・パイプラインに沿ったレンダリング・ボトルネックを排除する。

【発明の詳細な説明】
【背景技術】
【0001】
過去数十年にわたって、グラフィックス・アーキテクチャ分野における研究及び開発の大部分は、3次元(3D)コンピュータ・グラフィックス・レンダリングの性能を改善する方法に関するものであった。グラフィックス・アーキテクチャは、汎用コンピュータ・アーキテクチャを推進した半導体技術と同じ進歩によって推進される。パイプライン化及び並列処理を含む同じ加速技術の多くが、この分野において用いられてきた。しかしながら、グラフィックス・レンダリング・アプリケーションにより、特別の要求が課され、新しい機会が利用できるようになる。例えば、画像表示は、一般に、多数の反復計算を必要とするので、汎用計算より容易に超並列処理を利用することができる。
高性能のグラフィックス・システムにおいては、計算数が単一の処理ユニットの能力をはるかに超えるので、並列システムが、グラフィックス・アーキテクチャの基準になった。グラフィックス計算を行うために、シリコン・ベースのグラフィックス処理ユニット(GPU)において、今日、非常に高レベルの並列処理が利用されている。
【0002】
典型的には、これらの計算は、グラフィック・システムの一部である、ビデオ・メモリがサポートするグラフィックス・パイプラインによって実行される。図1Aは、CPU(111)、システム・メモリ(112)、I/Oチップセット(113)、高速CPU−GPUバス(114)(例えば、PCIエキスプレス(PCI express)16x)、シングルGPUに基づいたビデオ(グラフィック)カード(115)、及びディスプレイ(116)から構成される、PCアーキテクチャの一部のような従来のグラフィック・システムのブロック図を示す。図1Bに示されるようなシングルGPUグラフィック・パイプラインは、2つの主要部分、すなわち3Dグラフィックス・プリミティブ(例えば、多角形)を処理するための幾何学的サブシステムと、ピクセル値を計算するためのピクセル・サブシステムとに分解される。これらの2つの部分は、並行処理の増大のために一貫して設計される。
【0003】
幾何学的サブシステムにおいて、グラフィックス・データベースは、規則正しく、一般に、ほぼ同一の処理を受ける多数のプリミティブからなるので、自然の並行処理は、データを別個のストリームにパーティション化し、これらを独立して処理するというものである。ピクセル・サブシステムにおいて、ピクセルは、多くの方法で並行して生成できるため、画像並行処理は、長い間、高速ラスター化アーキテクチャのための魅力的な手法であった。従来技術における並列性の高いグラフィック処理ユニット・チップ(GPU)の一例が、図2A(ATIによる「3D Architecture White Paper」から取られた)に示される。幾何学的サブシステムは、6個の並列パイプからなり、ピクセル・サブシステムは、16個の並列パイプを有する。
【0004】
しかしながら、図2Bに示されるように、これらの2つのサブシステム間の「収束段階」221は、全データ・ストリーム帯域幅を処理する必要があるので、非常に問題がある。ピクセル・サブシステムにおいては、変換されクリップされたプリミティブの多数のストリームを、ラスター化を行っているプロセッサに向けなければならない。このことは、異なるプロセッサが異なるスクリーン領域に割り当てられる間、空間的情報に基づいてプリミティブを分類することを必要とする場合がある。並列ピクセル段階における第2の問題は、それらのデータが並列プロセッサを通るとき、データの順序が変わり得ることである。例えば、1つのプロセッサは、別のプロセッサが単一の大きいプリミティブを変換する前に2つの小さいプリミティブを変換することがある。別のウィンドウの代わりにあるウィンドウを更新する、又はダブル・バッファ間で切り替えるためのコマンドのような特定のグローバル・コマンドは、コマンドの前後にデータを同期させることが必要である。幾何学段階とピクセル段階の間のこの収束段階は、シングルGPUにおける並列処理を制限する。
【0005】
並列処理のレベルを向上させる典型的な技術は、多数のGPUカード、又はカード上の多数のGPUチップを使用するものであり、ここで、シングル・コアGPUにおける収束制限を超えて、レンダリング性能が、さらに改善される。この技術は、今日、幾つかの学問研究(例えば、スタンフォード大学によるクロム並列グラフィックス・システム)及び商品(例えば、SLI−Nvidia、CrossfireによるデュアルGPUシステム−ATIによるデュアルGPU)によって実施されている。図3は、Nvidia SLI技術に基づいた商業的なデュアルGPUシステム、Asus A8N−SLIを示す。
【0006】
並列化は、グラフィック・システムにおけるボトルネックを軽減することによって、性能を向上させることができる。図2Cは、バス転送、幾何学的処理、及びフラグメント・フィル・バウンド処理のセグメント化された段階に分解される、グラフィック・パイプラインにおける典型的なボトルネックを示す。所定のパイプラインは、上記の段階の1つの最も弱いリンクと同じ強さにすぎず、よって、主要なボトルネックが全体の処理能力を決定する。図2Cに示されるように、パイプライン・ボトルネックは、(231)幾何学的形状、テクスチャ、アニメーション、及びメタデータ転送、(232)幾何学的データのメモリ制限、(233)テクスチャ・データのメモリ制限、(234)幾何学的変換、及び(235)フラグメント・レンダリングに起因する。
【0007】
時分割(各GPUが、次の連続するフレームを与える)、画像分割(各GPUが、各フレームのピクセルのサブセットを与える)、及びオブジェクト分割(各GPUが、幾何学的形状及びテクスチャを含む全体のデータのサブセットを与える)、並びにこれらの派生物及び組み合わせのような、GPUを並列化するための異なる方法がある。有望ではあるが、GPUチップのクラスタを並列化するこの手法は、GPU間の通信の制限された帯域幅、機械的複雑さ(例えば、サイズ、パワー、及び熱)、コンポーネントの冗長性、及び高いコストのような幾つかの固有の問題に悩む。
したがって、こうした従来技術の装置及び方法の短所及び欠点を回避する、高速のグラフィックス処理及び表示のための改善された方法及び装置に対する、当該技術分野における大きな必要性がある。
【発明の開示】
【0008】
したがって、本発明の主な目的は、従来技術の装置及び方法の短所及び欠点を回避する、高速グラフィックス処理及び表示のための新規な方法及び装置を提供することである。
本発明の別の目的は、無制限のグラフィックス並列処理を用いて、多数のグラフィックス・コアを有する新規なグラフィックス処理及び表示システムを提供し、シングルGPUシステムの固有の収束ボトルネックを回避することである。
【0009】
本発明の別の目的は、最良のグラフィックス性能を保証する新規なグラフィックス処理及び表示システムを提供し、マルチ・チップ・システム、制限された帯域幅のGPU間通信、機械的複雑さ(サイズ、パワー、及び熱)、コンポーネントの冗長性、及び高コストの欠点をなくすることである。
本発明の別の目的は、単一のシリコン・チップにおいて多数のグラフィック・コアを並列化することによって、増幅されたグラフィックス処理及び表示パワーを有する新規なグラフィックス処理及び表示システムを提供することである。
【0010】
本発明の別の目的は、無制限の数の多数のグラフィック・コアを有するシリコン・チップ上に実現される新規なグラフィックス処理及び表示システムを提供することである。
本発明の別の目的は、多数のグラフィック・コアのクラスタを用いるシリコン・チップ上に実現される新規なグラフィックス処理及び表示システムを提供することである。
【0011】
本発明の別の目的は、多数のグラフィック・コア又はパイプを有するシリコン・チップ(すなわち、マルチ・パイプ・システム・オン・チップ、又はMP−SOC)上に実現される新規なグラフィックス処理及び表示システムを提供し、高い並列性のグラフィックス表示性能を達成するためのアーキテクチャの柔軟性を提供することである。
本発明の別の目的は、多数のグラフィック・コアを有するシリコン・チップ上に実現され、その幾何学的形状及びピクセル処理サブシステムの両方の中で異なるモードの並列処理を適応的にサポートする、新規なグラフィックス処理及び表示システムを提供することである。
【0012】
本発明の別の目的は、多数のGPUコアを有するシリコン・チップ上に実現され、高度なグラフィックス処理及び表示性能のための適応性を提供する、新規なグラフィックス処理及び表示システムを提供することである。
本発明の別の目的は、頂点(すなわち、3Dの多角形幾何学形状)処理及びフラグメント処理のグラフィック・パイプラインのボトルネックが、トランスペアレントにかつインテリジェントに解決される、新規なグラフィックス処理及び表示システムを提供することである。
【0013】
本発明の別の目的は、データ及びグラフィック・コマンドのインテリジェントな分解のための方法及びシステムを提供し、状態機械のようなグラフィック・ライブラリの基本的特徴を保持し、グラフィック標準を堅く守ることである。
本発明の別の目的は、多数のグラフィック・コアを有するシリコン・チップ上に実現されるグラフィックス処理及び表示システムをサポートする新しいPCIグラフィックス・カードを提供し、最良の並列性能を達成するためのアーキテクチャ上の柔軟性を提供することである。
【0014】
本発明の別の目的は、改善されたグラフィックス処理及び表示能力を有し、多数のグラフィック・コアを備えたシリコン・チップを有するグラフィックス・カードを使用し、最良の並列性能を達成するためのアーキテクチャ上の柔軟性を提供するコンピュータ・システムを提供することである。
本発明の別の目的は、ビデオ・ゲーム、仮想現実、科学的視覚化を含むアプリケーション、及び写実的なグラフィックス表示能力を必要とする又は要求する他の対話式アプリケーションによって必要とされる、改善されたグラフィックス処理及び表示性能を有するコンピュータ・システムを提供することである。
本発明のこれら及び他の目的及び利点は、以下に明らかになるであろう。
【発明を実施するための最良の形態】
【0015】
本発明の目的を実施する方法をより完全に理解するために、簡単に下記に説明される添付の図面と共に、例証となる実施形態の以下の詳細な説明を読むことができる。
引用により本明細書に組み込まれるWIPO公開番号WO2005/050557 A2号として発行された、出願人の従来のPCT出願第PCT/IL04/001069号において教示された技術は、高性能でスケーラブルな視覚化解決法、多数の並列化モードを用いるオブジェクト分割分解アルゴリズム、及び適応並列化モードの管理を提供するために、市販のGPUチップを張り合わせる(並行して機能する)ように働く、ハードウェア・ハブ・ドライバ及びソフトウェア・ハブ・ドライバから構成されるグラフィックス・スケーラブル・ハブ・アーキテクチャの使用を教示する。同じく、引用により本明細書に組み込まれるWIPO公開番号WO2004/070652 A2号として発行されたPCT出願第PCT/IL2004/000079号は、オブジェクト分割並列処理の一部として、高速かつ安価なフレーム・バッファの再構成を提供するために、共用の意思決定に基づいた画像機構の構成の使用も教示する。
【0016】
上記に特定された出願人のPCT出願において教示される手法は、多数の利益及び利点、すなわち、市販のGPUを使用することによって、既存のアプリケーションに対してトランスペアレントに強力な並列システムを構成する能力を有する。しかしながら、多くのアプリケーションにおいては、代替的な手法を用いて、すなわち、高性能、高フレーム・レートの安定性のグラフィック解決法を比較的低コストで既存のグラフィック・アプリケーションに対してトランスペアレントに送信するために、モノリシック・シリコン・チップ上に実現された強力なグラフィックス処理及び表示システムを用いる、グラフィックス処理及び表示アーキテクチャをPCに提供することによって、従来のグラフィック・システムにおけるこうした利点を提供することが望ましい。
【0017】
この新規な代替的手法の利点は、多数のGPUクラスタのVSLIベースの小型化、高帯域幅のGPU間通信、低電力及び熱損失、コンポーネントの非冗長性、及び低コストを含む。ここで、この代替的手法の実施についての詳細が下記に説明される。
【0018】
一般に、ここに開示される本発明は、好ましくはモノリシック構成のシングル・チップ上に実現された多数のグラフィック・パイプライン・アーキテクチャとして、半導体レベル上のグラフィックス機能を並列化するための改善された方法及び手段を教示する。表現の都合上、こうしたデバイスは、ここでは「マルチ・パイプ・システム・オン・チップ」すなわち「MP−SOC」と呼ばれる。「シリコン・チップ上の」このシステムは、異なる並列化スキームを可能にする、柔軟なトポロジーで組織されたGPU駆動型パイプライン・コアのクラスタを含む。理論的には、パイプライン・コアの数は無制限であり、シリコン領域の考慮事項によってのみ制限される。MP−SOCは、ホストCPUに常駐しているソフトウェア・ドライバ・モードによって駆動される。種々の並列化スキームにより性能の最適化が可能になる。これらのスキームは、時分割、画像分割、オブジェクト分割、及びこれらの派生物である。
本発明の例証となる実施形態は、マルチGPUチップの利点を享受する、すなわち、シングルGPUの収束制限をバイパスすると同時に、GPU間の通信の制限された帯域幅、機械的複雑さ(サイズ、パワー、及び熱)、コンポーネントの冗長性、及び高コストのようなマルチGPUシステムの固有の問題を除去する。
【0019】
図4Aに示されるように、本実施形態の物理的グラフィック・システムが、従来のマザーボード(418)、及びMP−SOCベースのグラフィック・カード(415)から構成される。マザーボードは、CPU(411)、システム・メモリ(412)、I/Oチップセット(413)であり、他の非グラフィック・コンポーネントでもある通常の組のコンポーネントを支持する(PCマザーボード上に常駐する完全な組のコンポーネントについては、図1Aを参照されたい)。MP−SOCチップ(416)に基づいたプリント回路グラフィック・カードは、PCIエキスプレス(PCI express)16×レーン・コネクタ(414)を介して、マザーボードに接続される。カードはまた、少なくとも1つのスクリーン(417)への出力も有する。MP−SOCグラフィック・カードは、マザーボード上の従来のシングルGPUグラフィック・カードに取って代わるものである。MP−SOCグラフィック・カードが従来のPCシステム内に統合される方法は、図4Aを図1Aと比較することにより明らかになる。単に、シングルGPUグラフィック・カード(図1Aにおいて丸で囲まれた)を本発明のMP−SOCベースのカードと置き換え、そのドライバをホストCPU(419)上のマルチ・パイプ・ソフト・ドライバと置き換えることによって、本発明のシステムは、ここに説明される利益及び利点の全てを有するものとして実現される。この変更は、改善された性能の他に、ユーザ及びアプリケーションに対して完全にトランスペアレントである。
【0020】
図4Bは、本発明の可能な物理的実装を示す。MP−SOC(422)が取り付けられる標準形式のPCカード(421)は、PCIエキスプレス・16×・レーン・コネクタ(423)を介して、ホスト・コンピュータ・システムのマザーボードに接続される。表示スクリーンは、標準DVIコネクタ(424)を介して接続される。MP−SOC上の多数のパイプラインは、大きい電力を消費すると予想され、PCIエキスプレス・コネクタを介する標準的な電源は十分ではないので、専用電源ケーブル(425)を介して、補助電源がカードに供給される。
【0021】
図4Cは、MP−SOCベースのカードが接続されるマザーボード上のPCIエキスプレス・コネクタ(431)を示す。PC上へのMP−SOCの標準的な物理的実装は、従来技術のGPU駆動型ビデオ・グラフィックス・カードと容易かつ自然に置き換えられることを強調すべきである。
【0022】
図4D及び図4Eは、半導体デバイスの物理的実装をさらに説明するために、MP−SOCチップの技術者の概念を説明する。図4Dは、可能なMP−SOCシリコン配置を示す。この例においては、4つの市販のグラフィック・パイプライン・コアがある。コアの数は、シリコン領域の制限を除いて如何なる数にも拡大縮小することができる。MP−SOCの機能ユニットについての詳細な説明が下記に与えられる。図4Eは、MP−SOCチップの可能なパッキング及び外観を示す。前述のように、このチップは、他の周辺コンポーネント(例えば、メモリ・チップ、バス・チップ等)と共に、標準的なサイズのPCB(プリント基板)上に取り付けられ、PCシステム内の唯一のグラフィック・カードとして用いられ、従来技術のビデオ・グラフィックス・カードと置き換わることを意図する。MP−SOCベースのカードの製造は、グラフィック・カード製造業者(例えば、AsusTech、Gigabyteなど)によって行うことができる。
【0023】
図5に示されるように、マルチ・パイプSOCアーキテクチャは、次のコンポーネントからなる。すなわち、
・CPUバス(例えば、16レーンのPCIエキスプレス)上に配置されたルーティング・センタ。このルーティング・センタは、グラフィック・パイプライン・コアの間でCPUから来るグラフィックス・データ・ストリームを分散させ、次に、与えられた結果(フレーム・バッファ)をコアから合成ユニットに集める。このデータ分散方法は、現在の並列化モードに応じて、制御ユニットにより命令される。
・合成ユニットが、進行中の並列化モードに従って、部分的なフレーム・バッファを再構成する。
・制御ユニットは、CPUに常駐するソフト・マルチ・パイプ・ドライバの制御下にある。この制御ユニットは、並列化モードに従ってMP−SOCシステム全体の構成及び機能を担当する。
・内部メモリ及び外部メモリを有する処理要素(PE)、及び随意的なキャッシュ・メモリ。このPEは、アーキテクチャ上の必要性に応じて、如何なる種類のプロセッサ・オン・チップとすることができる。PEのために働くことに加えて、キャッシュ及びメモリは、テクスチャ、頂点オブジェクト等のような全てのパイプライン・コアに共通なグラフィックス・データをキャッシュに入れるために用いることができる。
・多数のGPU駆動型パイプライン・コア。これらのコアは、独自に設計されたものにしてもよいが、そうする必要はない。これらは、本来、通常のシングル・コアGPUとして設計される。
・プロファイリング機能ユニット。このユニットは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、パイプライン・コアの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度のようなベンチマーク・データを、マルチ・パイプ・ドライバに送る。
・単一又は多数のスクリーンを実行することができる表示インターフェース。
【0024】
図6に示されるように、システムのソフトウェアが、グラフィック・アプリケーション、グラフィックス・ライブラリ(例えば、グラフィック標準OpenGL又はDirectX)、及び独自ソフト・ドライバ(マルチ・パイプ・ドライバ)を含む。一般的なグラフィックス・アプリケーションは、MP−SOC上で実行するために、変更も、特別なポーティングの努力も必要としない。
【0025】
図7は、本発明の実施形態による、マルチ・パイプ・ドライバの主なタスクを示す機能ブロック図を示す。マルチ・パイプ・ドライバは、少なくとも次の動作を行う。すなわち、
・一般的なGPUドライバ。オペレーティング・システム、グラフィック・ライブラリ(例えば、OpenGL又はDirectX)との対話及びGPUの制御と関連した一般的なGPUドライバの全ての機能を実行する。
・分散されたグラフィック機能制御。このモジュールは、並列化ポリシー管理に従って、異なる並列化モードを実行することに関連した全ての機能を実行する。以下により詳細に説明されるように、各々のモードにおいて、データは、パイプラインの間で様々に分散され、再構成される。
・状態の監視。グラフィック・ライブラリ(例えば、OpenGL及びGorectX)は、状態機械である。並列化では、グラフィック・システム全体にわたってまとまった状態に保持されなければならない。このことは、グラフィック・パイプラインにわたって有効な状態を保持するために、状態コマンド及びデータの一部を全てのパイプラインに対して多重化する必要があると同時に、入ってくるコマンドの全てを連続的に分析することによって行われる。特別な問題が、フラッシュ(Flush)、スワップ(Swap)、アルファ・ブレンディング(Alpha blending)のようなブロッキング操作といわれるクラスによりもたらされ、このことは、グラフィック・システム全体に影響を与え、システムをブロッキング・モードに設定する。ブロッキング操作は、これらが、合成された有効FBデータを必要とすること、よって、本発明の並列設定において、全てのパイプライン・コアへの影響を有するという点で、例外的なものである。ブロッキング操作の処理についてのより詳細な説明が以下に与えられる。
・アプリケーション・プロファイリング・分析モジュール。このモジュールは、実行中のアプリケーションのリアルタイム・プロファイリング及び分析を行う。このモジュールは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、グラフィック・パイプラインの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度のような、システム内のアプリケーション・パラメータを連続的に監視する。プロファイラ・モジュールは、ボトルネックを引き起こすグラフィックス・システム内の問題領域を特定する。プロファイラ・モジュールは、マルチ・パイプ・コアのレジスタ、MP−SOC制御ユニットのレジスタ、及びグラフィックAPIコマンド(例えば、OpenGL、DirectX)からの入力を必要とする。
・並列化ポリシー管理は、上記のプロファイリング及び分析に基づいて、フレームごとに、実行されるべき並列化モードを決定する。次に、この決定は、MP−SOC内の制御ユニットによって実行される。
【0026】
本発明の主要な特徴は、性能ボトルネックの改善を可能にするトポロジーの柔軟性である。こうした柔軟性は、ルーティング・センタ及び合成ユニットにおける異なるマージング・スキームによって、グラフィック・パイプラインのクラスタを再構成することによって得られる。異なる並列化スキームは、異なる性能ボトルネックに影響を与える。したがって、対応する並列化スキームを用いることによって、プロファイリング・モジュールによって特定されるボトルネックを取り除くことができる。
【0027】
図7Bのフローチャートは、3つの並列化モード、すなわちオブジェクト分割、画像分割、及び時分割を実行する機構を説明する。この機構は、MP−SOCユニットを有するソフト・ドライバ・モジュールの活動を組み合わせる。フローチャートのサイクルは、1つのフレームである。以下に説明されるように、これが好ましい並列化モードであるので、手始めのモードは、オブジェクト分割(OD)である。アプリケーションのプロファイリング及び分析は、ソフト・プロファイリング及び分析モジュール(S−PA)の制御下で常にオンである。並列化ポリシー管理(S−PPM)モジュールが最適なモードについてチェックするあらゆるフレームは、3つの並列化モードから選択される。
【0028】
オブジェクト分割(OD)経路が取られたと仮定する。分散されたグラフィック機能制御(S−DGFC)モジュールは、幾何学的データの分散及び使用中の合成アルゴリズムによって特徴付けられる、ODについてのシステム全体を構成する。この構成が、図8に示され、後で詳細に説明される。S−DGFCモジュールは、幾何学的データをパーティションに分解し、各々が、レンダリングのために、ルーティング・ユニット(C−RC)によって異なるGPU駆動型パイプ・コア(C−PC)に送られる。図11に示され、以下に詳細に説明されるように、レンダリングされたデータ・ストリームは、コマンドのブロックについて、状態監視(S−SM)モジュールにより監視される。レンダリングが完了すると、全てのフレーム・バッファが、制御ユニット(C−Ctrl)によって合成ユニット(C−CU)に移動され、奥行き試験(以下に詳細に説明されるような)に基づいて全てのバッファを合成し1つにする。表示インターフェース・ユニット(C−DI)によって、最後のFBがディスプレイに移動される。フレームの終わりに、S−PA及びS−PPMモジュールは、並列化モード変更の選択肢を試験する。同じモードにとどまる決定行われた場合には、別のデータ・パーティションで新しいODフレームが開始される。他の場合には、S−PA及びS−PPMモジュールによって、最適なモードについての新たな試験が行われる。
【0029】
フローチャートの左の経路は、画像分割(ID)操作である。S−DGFCによって設定されるようなID構成も図9に示され、後に詳細に説明される。これは、全てのパイプ・コア間で同じデータをブロードキャストすること、及び、画像ベースの合成アルゴリズムによって特徴付けられる。パイプ・コア間の画像のパーティション化は、S−DGFCによって行われる。データは、ルーティング・センタによってブロードキャストされ、次に、パイプ・コア(C−PC)においてレンダリングされ、各々のものに、画像の別の部分が指定される。レンダリングが遂行されると、C−Ctrlは、完全な画像の再構成のために、部分的なFBを合成ユニット(C−CU)に移動させる。次に、C−DIは、FBをディスプレイに移動させる。最後に、S−PS及びS−PPMモジュールによって、変更試験が行われる。結果を保留しながら、新しいフレームがIDモードを続行するか、又は別のモードに切り替わる。
【0030】
時分割モードは、GPU駆動型パイプ・コアの間でフレームを交互させる。時分割モードは、S−DFCモジュールによって交互されるように設定され、各々のコアは、S−DGFCによってフレーム・データが指定され、C−RCユニットによって移送される。各々のコア(C−PC)は、フレームを一列に生成する。次に、C−Ctrlが、合成ユニットを介して、成熟したFBを表示インターフェースに、そしてディスプレイに移動させる。実際には、このモードの合成ユニットは、単にトランジットとして働く。最終的には、前の他のモードと同じように、S−PA及びS−PPMモジュールによるモード変更試験がある。
【0031】
図8は、オブジェクト分割の並列化スキームについて説明する。ソフト・ドライバ、具体的には、分散されたグラフィック機能制御モジュールは、シーンの多角形データをN個の部分的ストリームに分解する(Nは、関係するパイプライン・コアの数である)。データ全体は、GPUドライバ・モジュールによって、MP−SOCルーティング・センタに送られ、ここで、各々がおよそ1/Nの多角形であるソフト・ドライバのパーティションに応じて、レンダリングのためにデータをN個のパイプライン・コアに分散させる。パイプライン・コアにおけるレンダリングは、ソフト・ドライバ(図11及び以下に詳細に説明される)の状態監視モジュールの監視下で行われる。結果として得られる完全なフレーム・バッファが、合成ユニット内に集められる。これらは、可視ピクセルの最後の組を見つけるために、ピクセルごとに奥行きが合成される。各々のx−y座標において、合成機構によって全ての隠されたピクセルが排除される。最後のフレーム・バッファが、ディスプレイに移動される。
【0032】
図9は、ソフト・ドライバのプロファイリング及び分析モジュールにおけるプロファイリング、分析、及び意思決定の結果として、並列化ポリシー管理モジュールによって選択される画像分割並列化スキームについて説明する。各々のパイプライン・コアに、スクリーンの固有の1/N部分が指定される。完全な多角形データが、GPUドライバ・モジュール及びルーティング・センタを介して、パイプライン・コアの各々に送られる。パイプライン・コア内の並列レンダリングにより、各々に部分的なフレーム・バッファがもたらされる。画像セグメントは、単の一画像への2Dマージングのために合成ユニットに移動され、ディスプレイに移動される。
【0033】
図10は、ソフト・ドライバのプロファイリング及び分析モジュールにおけるプロファイリング、分析、及び意思決定の結果として、並列化ポリシー管理モジュールによって選択される時分割並列化スキームについて説明する。分散されたグラフィック機能制御モジュールは、GPUドライバ・モジュールにより、フレームをNサイクルに分割し(N=コアの数)、多角形データ全体をレンダリングするために、N個のフレームの各コアのタイム・スロットを可能にする。したがって、シーン多角形データは、ルータを介して、一度に異なるパイプライン・コアに分散される。各コアは、Nサイクルの間レンダリングを実行し、単一のフレームについて、完全なフレーム・バッファをディスプレイに出力する。合成ユニットは、ここでは、全てのパイプライン・コアの間でディスプレイへのアクセスを交互に行わせる単一のスイッチとして機能する。
異なる並列化スキームは、異なる性能ボトルネックを解決する。したがって、適時に適切なスキームを適用することによって、ボトルネックを識別し、次にこれを排除する(低減させる)必要がある。
【0034】
図7Bに示されるように、プロファイラは、ボトルネックを生じさせるグラフィックス・システム内の問題領域を識別する。このことは、ドライバのアプリケーション・プロファイリング及び分析モジュールにおいて実施される。プロファイラ・モジュールは、グラフィックAPIコマンド(例えば、OpenGL、DirectX、その他)の使用、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各GPUの作業負荷、GPUの間の負荷平衡、転送されたデータ容量、及び奥行き複雑度等のような入力を必要とする。これらのデータ・タイプは、MP−SOCベースのグラフィックス・システム内の次のソースから集められる。すなわち、
1.MP−SOCにおけるプロファイリング機能
2.ドライバ
3.パイプライン・コア
4.チップセット・アーキテクチャ性能(CHAP)カウンタ
5.
典型的に、性能データは、フレーム時間ベースで取り出されるが、周期性をプロファイラの構成属性とすることもでき、或いは、性能データを取り出す前に検知するようにプロファイラが設計される検知された構成イベントに基づいて、周期性を設定することができる。
【0035】
好ましい並列化方法の選択の結果もたらされる分析は、明確な場合には(以下に説明される)、より多くのボトルネックを減少させるという点で、オブジェクト分割方法が他の分割方法に取って代わるという仮定に基づいている。各パイプライン・コアにおけるフラグメント/フィル・バウンド処理だけを減少させる画像分割とは対照的に、オブジェクト分割は、パイプラインにわたる全てのボトルネックを実際に軽減させる。すなわち、(i)各パイプラインにおいて、幾何学的形状(すなわち、多角形、線、点等)変換処理の負荷が軽減され、多角形の1/Nだけを処理する(Nは、関係するパイプライン・コアの数)、(ii)より少ない多角形がラスター化機構に供給されるので、フィル・バウンド処理が低減される、(iii)より少ない幾何学的メモリしか必要としない。(iv)より少ないテキスチャ・メモリしか必要としない。
【0036】
時分割方法は、フレーム生成ごとにより多くの時間、各パイプライン・コアを許容することによってボトルネックを軽減するが、この方法は、CPUボトルネックのような深刻な問題に悩み、パイプライン・コアは、互いに利用できないフレーム・バッファを生成し、パイプラインの待ち時間がよくある。したがって、この方法は、全てのアプリケーションには適していない。その結果として、ボトルネックを解決するものとしての優位性のために、オブジェクト分割が主要な並列化モードになる。
【0037】
以下のオブジェクト分割アルゴリズムは、多数のグラフィック・パイプライン・コアの間で多角形を分散させる。一般的なアプリケーションは、グラフィック・データのブロック(各々のブロックは、単一の頂点操作、又はバッファ・ベースの操作(頂点アレイ)のような幾何学的操作のリストからなる)を含むグラフィック・コールのストリームを生成する。典型的には、分解アルゴリズムが、パイプライン・コア間のデータを分割し、ブロックを基本データ単位として保護する。幾何学的操作は、データ・ブロックにアタッチされ、データを処理する方法を命令する。ブロックは、指定されたGPUに向けられる。しかしながら、グラフィック・システム全体に影響を与え、システムをブロッキング・モードに設定する、フラッシュ、スワップ、アルファ・ブレンディングのようなブロッキング操作のグループに属する操作がある。ブロッキング操作は、これらが、合成された有効FBデータを必要とすること、よって、本発明の並列設定において、全てのパイプライン・コアへの影響を有するという点で、例外的なものである。したがって、ブロッキング操作の1つが出されるたびに、全てのパイプライン・コアを同期させなければならない。各フレームは、フレームを修了させる少なくとも2つのブロッキング操作、すなわちフラッシュ及びスワップを有する。
【0038】
図11は、本発明の例証となる実施形態による、多数のGPU駆動型パイプライン・コアの間で多角形を分散させるためのアルゴリズムについて説明するフローチャートを示す。フレーム活動は、GPUの間でデータ・ブロックを分散させることで始まる。ステップ1112において、各々のグラフィック操作は、ブロッキング・モードの試験が行われる。ステップ1113において、通常の経路(非ブロッキング経路)において、データは、指定されたパイプライン・コアに再指向される。このループは、ブロッキング操作が検知されるまで繰り返される。
【0039】
ブロッキング操作が検知されると、ステップ1114において、少なくとも次のシーケンスによって、すなわち、
レンダリングを終了させ、パイプライン・コア内の内部パイプラインをクリーンにする(フラッシング)ために、フラッシュ操作を行い、
全てのFBのコンテンツを単一のFBにマージするために合成を行い、
単一のFBを再び全てのパイプライン・コアに伝送し、継続のための共通の基盤を形成する、
ことによって、全てのパイプライン・コアを同期させなければならない。
【0040】
スワップ操作は、ダブル・バッファリング機構を作動させ、前後のカラー・バッファをスワップする。ステップ1115においてスワップが検知された場合、このことは、パイプライン0を除いた全てのパイプライン・コアにおいて、構成されたフレームを終了させなければならないことを意味する。全てのパイプライン・コアは、コンテンツを格納するように指定されたFBの最終的な構成されたコンテンツを有するが、ステップ1116において、スクリーン(パイプライン0)に接続されたものだけが、画像を表示する。
【0041】
別の場合は、シーンに全体的に適用され、全てのパイプライン・コアにブロードキャストスされることが必要な操作である。透明性のためのアルファ・ブレンディングのような他のブロッキング操作の1つが識別される場合には、ステップ1114において、全てのパイプライン・コアが以前のようにフラッシュされ、共通のFBにマージされる。このとき、スワップ操作は検知されず(ステップ1115)、したがって、全てのパイプライン・コアは同じデータを有し、ブロッキング・モードがオンである限り(ステップ1117)、これらの全てが同じデータを処理し続ける(ステップ1118)。ステップ1117において、ブロック・モードの終わりが検知された場合には、パイプライン・コアは、指定されたデータの作業に戻る(ステップ1113)。
【0042】
オブジェクト分割の相対的な利点は、シーンの奥行き複雑度に大きく依存する。奥行き複雑度は、奥行き試験の結果としてのフラグメント交換の数(あらゆるピクセル上に描画される多角形の数)である。フラグメント交換がない(例えば、シーンの全ての多角形が同じ奥行きレベルに位置する)理想的な場合には、フィルは、減少した数の多角形に従って減少される(2つのパイプライン・コアと同様に)。しかしながら、奥行き複雑度が大きくなると、オブジェクト分割の利点は低下し、例えば、少数の多角形及び大量のテクスチャを有するアプリケーションなど、場合によっては、画像分割がより良好に行われることさえあり得る。
【0043】
さらに、本発明は、前の処理段階によって示される負荷に基づいて、オブジェクト分割法を、画像及び時間領域における画像分割及び時分割方法と組み合わせる動的負荷平衡技術を導入する。3つの並列化方法の全てを統一されたフレームワークに組み合わせることにより、グラフィック・システムのフレーム・レートの安定性が動的に増大される。
【0044】
図12は、本発明の実施形態による、8つのパイプライン・コアを用いるシステムのサンプル構成を開示する。上記のサンプル構成によると、平衡型グラフィック・アプリケーションが想定される。時分割並列処理のために、パイプライン・コアは、2つのグループに分割される。1、2、3及び4と索引付けされたパイプライン・コアは、偶数のフレームを処理するように構成され、5、6、7及び8と索引付けされたパイプライン・コアは、奇数のフレームを処理するように構成されている。各グループ内で、2つのパイプライン・コア・サブグループが、画像分割のために設定され、小さい索引(それぞれ、1、2及び5、6)を有するパイプライン・コアは、スクリーンの半分を処理するように構成され、大きい高い索引のパイプライン・コア(それぞれ、3、4及び7、8)は、もう半分を処理するように構成されている。最終的に、オブジェクト分割の場合、1、3、5及び7で索引付けされたパイプライン・コアにはオブジェクトの半分が与えられ、2、4、6及び8で索引付けされたパイプライン・コアにはオブジェクトのもう半分が与えられる。
【0045】
ある時点で、前のフレームにおいて示されたボトルネックがパイプラインのラスタ段階で生じたことをシステムが検知した場合には、このことは、フラグメント処理がフレームをレンダリングするのにかかる時間を左右すること、及び、構成が不均衡であることを意味する。その時点で、パイプライン・コアは再構成され、その結果、各々のパイプライン・コアは、それぞれのフレーム内でスクリーンの四半分をレンダリングする。パイプライン・コア1、2、3、4と5、6、7、8との間の、時分割のための最初のパーティションは、依然として保持されるが、パイプライン・コア2及びパイプライン・コア5は、それぞれ偶数フレーム及び奇数フレーム内のスクリーンの第1の四半分をレンダリングするように構成される。パイプライン・コア1及び6は第2の四半分をレンダリングし、パイプライン・コア4及び7は第3の四半分をレンダリングし、パイプライン・コア3及び8は第4の四半分をレンダリングする。オブジェクト分割は含まれない。
【0046】
さらに、ある時点で、前のフレームにおいて示されたボトルネックがパイプの幾何学的形状段階で生じたことをシステムが検知した場合、パイプライン・コアは再構成され、その結果、各々のパイプライン・コアは、それぞれのフレーム内の幾何学的データの四半分を処理する。つまり、パイプライン・コア3及び5は、それぞれ偶数フレーム及び奇数フレームにおける多角形の第1の四半分を処理するように構成される。パイプライン・コア1及び7は、第2の四半分をレンダリングし、パイプライン・コア4及び6は、第3の四半分をレンダリングし、パイプライン・コア2及び8は、第4の四半分をレンダリングする。画像分割は含まれない。
【0047】
フレームごとに、(時分割モード、画像分割モード、及びオブジェクト分割モードである)3つの並列化モードの全てを組み合わせるために、8つのパイプライン・コアを用いることは十分であることに留意すべきである。8より大きいパイプライン・コアの数を用いることによっても、3つのモードの全てを組み合わせることが可能になるが、非対称的な方法である。時分割サイクルにおいて、フレーム・カウント内に柔軟性も存在する。上記の例において、8つのパイプライン・コアのクラスタは、各グループがフレームを処理する2つのグループに分解された。しかしながら、時分割モードにおけるフレームの数を、例えば3又は4フレームなど、2フレームより長いシーケンスに拡張することも可能である。
【0048】
より少数のパイプライン・コアを用いることは、並列化モードの組み合わせを可能にするが、2つのモードの組み合わせだけである。例えば、4つのパイプライン・コアだけを用いることは、時分割モードなしで、画像分割モード及びオブジェクト分割モードの組み合わせを可能にする。このことは、左のクラスタであるパイプライン・コア1〜4のグループを用いる、図12から明らかに理解される。同様に、上部クラスタを構成するパイプライン・コア1、2、5及び6のグループは、オブジェクト分割モード及び時分割モードの両方を使用する。最後に、中間クラスタを構成するパイプライン・コア2、4、5及び6のグループは、画像分割モード及び時分割モードを使用する。
【0049】
上記の実施形態と同様に、並列化モード間の如何なる組み合わせも、グラフィック負荷を均等に平衡させるようにスケジュール設定できることに留意すべきである。
本発明によると、全てのパイプライン・コア間の並列化処理は、各フレームの処理性能を最適化するために、オブジェクト分割モード、又は画像分割モード、又は時分割モード、或いはこれらのいずれかの組み合わせに基づくことができることにも留意すべきである。
並列化モードにおける決定は、上記のプロファイリング及び分析に基づいて、フレームごとに行われる。上述され、図8、図9、図10、及び図12に示されるように、次に、並列化モードにおける決定は、並列化スキームの再構成によって実行される。
【0050】
上に詳細に説明されるMP−SOCアーキテクチャは、様々な種類のグラフィックス処理及び表示システムにおいて用いるために容易に適用することができる。本発明の例証となる実施形態が、PCタイプのコンピュータ・システムと共に説明されたが、本発明は、モバイル・コンピュータ装置、内蔵システム、及び写実的な品質のグラフィック視覚化をサポートする科学及び産業上のコンピュータ・システムを含む、様々な種類のシステムにおけるグラフィック性能を改善するために用い得ることが理解される。
【0051】
本発明の例証となる実施形態において説明されたグラフィックス処理及び表示技術は、ここに説明された新規な教示の利点を有する、当業者には容易に明らかになるであろう種々の方法で変更できることが理解される。本発明の例証となる実施形態のこうした変更及び変形の全ては、ここに添付される本発明の特許請求の範囲によって定義されるような本発明の精神及び範囲内に含まれると考えられる。
【図面の簡単な説明】
【0052】
【図1A】従来のシングルGPUグラフィック・カードが丸で囲まれて示される、従来技術の標準的なPCアーキテクチャの概略図である。
【図1B】間のデータ収束ストリームが性能を著しく制限する重大なシステム・ボトルネックを示す、幾何学的形状及びピクセル処理サブシステムを有する、シングルGPUを用いる従来技術のグラフィックス・システムの簡単化されたブロック図である。
【図2A】幾何学的サブシステムが6個の並列パイプからなり、ピクセル・サブシステムが16個の並列パイプからなる、典型的な従来技術のATI X800グラフィック処理ユニット・チップ(GPU)における高い並列性を示す概略図である。
【図2B】幾何学的形状と内部のピクセル並列エンジンとの間のボトルネック収束段階(セットアップ・エンジン)を示す、従来技術のグラフィック処理ユニット(GPU)チップ(例えば、ATI X800)の内部の概略図である。
【図2C】内部に存在するデータ・ボトルネック問題を示す、従来のグラフィックス・パイプラインの概略図である。
【図3】従来技術のデュアルGPU駆動型ビデオ・グラフィックス・カードの写真である。
【図4A】本発明の原子によるマルチ・パイプ・システム・オン。チップ(MP−SOC)を用いるプリント回路グラフィックス・カードを使用するコンピュータ・システムの概略的なシステム・ブロック図であり、このシステム・ブロックは、CPU、I/Oチップセット、システム・メモリ、MP−SOCに基づいたグラフィック・カード、及び表示スクリーンを示す。
【図4B】プリント回路(PC)ビデオ・グラフィックス・ボード上に取り付けられた、本発明のMP−SOCを物理的に実装する概略図である。
【図4C】本発明のMP−SOCベースのPCグラフィックス・ボードが相互接続された、マザーボード上の標準的なPCIエキスプレス・グラフィックス・スロットの写真である。
【図4D】本発明の原理による、4つのGPU駆動型パイプライン・コアを含む例示的なMP−SOCシリコン配置の概略図である。
【図4E】本発明のMP−SOCの例示的なパッキングの概略図である。
【図5】本発明の例証となる実施形態による、MP−SOCアーキテクチャの概略的なブロック図である。
【図6】本発明の例証となる実施形態による、MP−SOCベースのコンピュータ・システムのソフトウェア・ブロック図である。
【図7A】本発明の例証となる実施形態の、MP−SOCベース・システムのマルチ・パイプ・ソフトウェア・ドライバを含むモジュールをさらに示す概略的なブロック図である。
【図7B】本発明のMP−SOCベースの装置及びシステム内で、3つの並列化モード(すなわち、オブジェクト分割、画像分割、及び時分割)を実行する機構によって実行される段階を示すフローチャートである。
【図8】本発明のMP−SOCシステムのオブジェクト分割構成を示す概略図である。
【図9】本発明のMP−SOCシステムの画像分割構成を示す概略図である。
【図10】本発明のMP−SOCシステムの時分割構成を示す概略図である。
【図11】本発明のMP−SOCベース・システムに沿って多数のGPU駆動型パイプライン・コアの間で多角形を分散させるためのプロセスを示すフローチャートである。
【図12】本発明の原理による、並列化モードの組み合わせとして配置された8つのGPU駆動型パイプライン・コアの例を示す。

【特許請求の範囲】
【請求項1】
各々が、1つ又はそれ以上の並列化モードを用いて画像処理の並列化をサポートし、かつ、少なくとも1つのコンピュータ・スクリーン上に画像を表示するための手段を有し、(i)グラフィックス・コマンドを出すための1つ又はそれ以上のソフトウェア・アプリケーションと、(ii)前記グラフィックス・コマンドを実施するのに用いられるデータを格納するための1つ又はそれ以上のグラフィック・ライブラリ(すなわち、OpenGL及びDirectX)である状態機械と、(iii)前記GPU駆動型パイプライン・コアが前記グラフィック・ライブラリと対話するのを可能にするためのマルチ・パイプ・ドライバとをサポートしているコンピュータ・システムと接続するように適合されている、グラフィック処理ユニットを備えた多数のGPU駆動型パイプライン・コアを有する、グラフィックス処理及び表示システムを実装するモノリシック構成のシリコン・チップであって、前記マルチ・パイプ・ドライバは、(1)前記コンピュータ・システムのオペレーティング・システム(OS)及びグラフィック・ライブラリ(例えば、OpenGL又はDirectX)との対話に関連した一般的なGPUドライバラリの機能を実行するためのGPUドライバ・ユニット、(2)並列化ポリシー管理に従って異なる並列化モードを実行することに関連した機能を実行するための分散されたグラフィック機能制御モジュール、(3)前記GPU駆動型グラフィック・パイプライン・コアにわたって有効な状態を保持するように、特定の状態コマンド及び該GPU駆動型パイプライン・コアの全データの一部を転送する、状態コマンドを含む全ての入ってくるコマンドを連続的に分析するための状態監視ドライバ・モジュール、(4)データ・ボトルネックを引き起こす可能性が高い前記グラフィックス・システム内の問題領域を識別するために、該コンピュータ・システムにおいてアプリケーション・パラメータのリアルタイムな連続的監視を実行するための、(i)該多数のGPU駆動型パイプライン・コアのレジスタ、(ii)制御ユニットのレジスタ、及び(iii)グラフィックAPIコマンドからの入力を用いる、アプリケーション・プロファイリング及び分析ドライバ・モジュールと、(5)前記アプリケーション・プロファイリング及び分析ドライバ・モジュールの結果を用いて、該GPU駆動型パイプライン・コアの前記並列化モードをフレームごとに決定し、こうした決定をMP−SOCの前記制御ユニットによって実行するための並列化ポリシー管理ドライバ・モジュールとを含む、前記シリコン・チップが、
前記多数のGPU駆動型パイプライン・コアと、
前記GPU駆動型パイプライン・コアの間でCPUから来るグラフィックス・データ・ストリームを分散させ、該パイプライン・コアからの与えられた結果(フレーム・バッファ)を合成ユニットに集めるための、CPUバス上に配置されたルーティング・センタと、
を備え、
前記データを分散する方法は、前記制御ユニットによって命令され、かつ、前記現在の並列化モードによって決まり、
前記進行中の並列化モードに従って部分的なフレーム・バッファを再構成するための合成ユニットと、
前記選択された並列化モードに従って、前記グラフィックス処理及び表示システムの構成及び機能を制御するための制御ユニットと、
内部メモリ又は外部メモリを有する処理要素(PE)と、
ベンチマーク・データを前記マルチ・パイプ・ドライバに送るためのプロファイリング機能ユニットと、
単一の又は多数の表示スクリーンを実行するための表示インターフェースと、
が設けられたことを特徴とするシリコン・チップ。
【請求項2】
前記処理要素のために働き、かつ、前記GPU駆動型パイプライン・コアに共通のグラフィックス・データをキャッシュに入れるためのキャッシュ・メモリをさらに備えることを特徴とする請求項1に記載のシリコン・チップ。
【請求項3】
前記グラフィックス・データは、テクスチャ及び頂点オブジェクトからなる群から選択されることを特徴とする請求項2に記載のシリコン・チップ。
【請求項4】
前記ベンチマーク・データは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、グラフィック・パイプラインの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度からなる群から選択されるデータを含むことを特徴とする請求項1に記載のシリコン・チップ。
【請求項5】
前記グラフィック・ライブラリは、OpenGL及びDirectXからなる群から選択されることを特徴とする請求項1に記載のシリコン・チップ。
【請求項6】
前記GPU駆動型パイプライン・コアの数は、アーキテクチャ上の制限を有さないことを特徴とする請求項1に記載のシリコン・チップ。
【請求項7】
前記GPU駆動型パイプライン・コアは、性能ボトルネックを解決するために異なる並列化モードで組織されることを特徴とする請求項1に記載のシリコン・チップ。
【請求項8】
前記並列化モードは、オブジェクト分割モード、画像分割モード、及び時分割モードを含むことを特徴とする請求項7に記載のシリコン・チップ。
【請求項9】
前記ベンチマーク・データは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、パイプライン・コアの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度を含むことを特徴とする請求項1に記載のシリコン・チップ。
【請求項10】
前記コンピュータ・システムの前記マザーボードに接続することができるグラフィックス・カード上に実現されることを特徴とする請求項1に記載のシリコン・チップ。
【請求項11】
CPUバスを有するコンピュータ・システムのマザーボードに接続するためのグラフィクス・カードであって、前記グラフィックス・カードは、
(a)多数のGPU駆動型パイプライン・コアと、
(b)前記GPU駆動型パイプライン・コアの間で、前記CPUから来るグラフィックス・データ・ストリームを分散させ、該パイプライン・コアからの与えられた結果(フレーム・バッファ)を前記合成ユニットに集めるための、前記CPUバス上に配置されたルーティング・センタと、
(c)前記進行中の並列化モードに従って前記部分的なフレーム・バッファを再構成しりための合成ユニットと、
(d)時間内の任意の時点で選択された並列化モードに従って前記グラフィックス処理及び表示システムの構成及び機能を制御するための制御ユニットと、
(e)内部メモリ又外部メモリを有する処理要素(PE)と、
(f)ベンチマーク・データを前記マルチ・パイプ・ドライバに送るためのプロファイリング機能ユニットと、
(g)単一又は多数の表示スクリーンを実行するための表示インターフェースと、
を含むグラフィックス処理及び表示サブシステムを実装するモノリシック構成のシリコン・チップを備えることを特徴とするグラフィックス・カード。
【請求項12】
前記グラフィックス・データ・ストリームは、前記制御ユニットの制御下で、前記現在の並列化モードに応じて、前記GPU駆動型パイプライン・コアの間で分散されることを特徴とする請求項11に記載のグラフィックス・カード。
【請求項13】
前記シリコン・チップは、各々が、1つ又それ以上の並列化モードを用いて画像処理の並列化をサポートし、かつ、少なくとも1つのコンピュータ・スクリーン上に画像を表示するための手段を有し、(i)グラフィックス・コマンドを出すための1つ又はそれ以上のソフトウェア・アプリケーションと、(ii)前記グラフィックス・コマンドを実施するのに用いられるデータを格納するための1つ又はそれ以上のグラフィック・ライブラリ(すなわち、OpenGL及びDirectX)である状態機械と、(iii)前記GPU駆動型パイプライン・コアが前記グラフィック・ライブラリと対話するのを可能にするためのマルチ・パイプ・ドライバとをサポートしているコンピュータ・システムと接続するように適合されている、コンピュータ・システムと対話するように適合されている、グラフィック処理ユニット(GPU)を備えた多数のGPU駆動型パイプライン・コアを有することを特徴とする請求項11に記載のグラフィックス・カード。
【請求項14】
前記マルチ・パイプ・ドライバは、
(1)前記コンピュータ・システムのオペレーティング・システム(OS)及びグラフィック・ライブラリとの対話と関連した一般的なGPUドライバの機能を実行するためのGPUドライバ・ユニットと、
(2)並列化ポリシー管理に従って異なる並列化モードを実行することに関連した機能を実行するための分散されたグラフィック機能制御モジュールと、
(3)前記GPU駆動型グラフィック・パイプライン・コアにわたって有効な状態を保持するように、特定の状態コマンドを転送する状態コマンド及び該GPU駆動型パイプライン・コアの全データの一部を転送する、状態コマンドを含む全ての入ってくるコマンドを連続的に分析するための状態監視ドライバ・モジュールと、
(4)データ・ボトルネックを引き起こす可能性が高い前記グラフィックス・システム内の問題領域を識別するために、該コンピュータ・システムにおいてアプリケーション・パラメータのリアルタイムの連続的監視を実行するための、(i)前記多数のGPU駆動型パイプライン・コアのレジスタと、(ii)前記制御ユニットのレジスタと、(iii)グラフィックAPIコマンドとからの入力を用いる、アプリケーション・プロファイリング及び分析ドライバ・モジュールと、
(5)前記アプリケーション・プロファイリング及び分析ドライバ・モジュールの結果を用いて、該GPU駆動型パイプライン・コアの前記並列化モードをフレームごとに決定し、こうした決定をMP−SOCの該制御ユニットによって実行するための並列化ポリシー管理ドライバ・モジュールと、
を含むことを特徴とする請求項12に記載のグラフィックス・カード。
【請求項15】
前記処理要素のために働き、かつ、前記GPU駆動型パイプライン・コアに共通のグラフィックス・データをキャッシュに入れるためのキャッシュ・メモリをさらに備えることを特徴とする請求項11に記載のグラフィックス・カード。
【請求項16】
前記グラフィックス・データは、テクスチャ及び頂点オブジェクトからなる群から選択されることを特徴とする請求項15に記載のグラフィックス・カード。
【請求項17】
前記ベンチマーク・データは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、グラフィック・パイプラインの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度からなる群から選択されるデータを含むことを特徴とする請求項4に記載のグラフィックス・カード。
【請求項18】
前記グラフィック・ライブラリは、OpenGL及びDirectXからなる群から選択されることを特徴とする請求項11に記載のグラフィックス・カード。
【請求項19】
前記GPU駆動型パイプライン・コアの数は、アーキテクチャ上の制限を有さないことを特徴とする請求項11に記載のグラフィックス・カード。
【請求項20】
前記GPU駆動型パイプライン・コアは、性能ボトルネックを解決するために異なる並列化モードで組織されることを特徴とする請求項11に記載のグラフィックス・カード。
【請求項21】
前記並列化モードは、オブジェクト分割モード、画像分割モード、及び時分割モードを含むことを特徴とする請求項11に記載のグラフィックス・カード。
【請求項22】
1つ又はそれ以上の表示スクリーン上に画像を表示するためのコンピュータ・システムであって、
CPUバスと、
(a)多数のGPU駆動パイプライン・コアと、
(b)前記GPU駆動型パイプライン・コアの間で、前記CPUから来る前記グラフィックス・データ・ストリームを分散させ、次に、該パイプライン・コアからの与えられた結果(フレーム・バッファ)を前記合成ユニットに集めるための、前記CPUバス上に配置されたルーティング・センタと、
を含む、グラフィックス処理及び表示サブシステムを実装するためのモノリシック構成のシリコン・チップとを有するマザーボードを備え、
前記データを分散する方法は、前記制御ユニットによって命令され、かつ、現在の並列化モードによって決まり、
前記進行中の並列化モードに従って部分的なフレーム・バッファを再構成するための合成ユニットと、
時間内の任意の時点で選択された並列化モードに従って、前記グラフィックス処理及び表示システムの構成及び機能を制御するための制御ユニットと、
内部メモリ又外部メモリを有する処理要素(PE)と、
ベンチマーク・データを前記マルチ・パイプ・ドライバに送るためのプロファイリング機能ユニットと、
単一又は多数の表示スクリーンを実行するための表示インターフェースと、
が設けられたことを特徴とするコンピュータ・システム。
【請求項23】
前記グラフィックス・データ・ストリームは、前記制御ユニットの制御下で、前記現在の並列化モードに応じて、前記GPU駆動型パイプライン・コアの間で分散されることを特徴とする請求項22に記載のコンピュータ・システム。
【請求項24】
前記シリコン・チップは、各々が、1つ又それ以上の並列化モードを用いて画像処理の並列化をサポートし、かつ、少なくとも1つのコンピュータ・スクリーン上に画像を表示するための手段を有し、(i)グラフィックス・コマンドを出すための1つ又はそれ以上のソフトウェア・アプリケーションと、(ii)前記グラフィックス・コマンドを実施するのに用いられるデータを格納するための1つ又はそれ以上のグラフィック・ライブラリ(すなわち、OpenGL及びDirectX)である状態機械と、(iii)前記GPU駆動型パイプライン・コアが前記グラフィック・ライブラリと対話するのを可能にするためのマルチ・パイプ・ドライバとをサポートしているコンピュータ・システムと接続するように適合されている、グラフィック処理ユニット(GPU)を備えた多数のGPU駆動型パイプライン・コアを有することを特徴とする請求項22に記載のコンピュータ・システム。
【請求項25】
前記マルチ・パイプ・ドライバは、
(1)前記コンピュータ・システムのオペレーティング・システム(OS)及びグラフィック・ライブラリとの対話と関連した一般的なGPUドライバの機能を実行するためのGPUドライバ・ユニットと、
(2)並列化ポリシー管理に従って異なる並列化モードを実行することに関連した機能を実行するための分散されたグラフィック機能制御モジュールと、
(3)前記GPU駆動型グラフィック・パイプライン・コアにわたって有効な状態を保持するように、特定の状態コマンドを転送する状態コマンド及び該GPU駆動型パイプライン・コアの全データの一部を転送する、状態コマンドを含む全ての入ってくるコマンドを連続的に分析するための状態監視ドライバ・モジュールと、
(4)データ・ボトルネックを引き起こす可能性が高い前記グラフィックス・システム内の問題領域を識別するために、該コンピュータ・システムにおいてアプリケーション・パラメータのリアルタイムの連続的監視を実行するための、(i)前記多数のGPU駆動型パイプライン・コアのレジスタと、(ii)前記制御ユニットのレジスタと、(iii)グラフィックAPIコマンドとからの入力を用いる、アプリケーション・プロファイリング及び分析ドライバ・モジュールと、
(5)前記アプリケーション・プロファイリング及び分析ドライバ・モジュールの結果を用いて、該GPU駆動型パイプライン・コアの前記並列化モードをフレームごとに決定し、こうした決定をMP−SOCの該制御ユニットによって実行するための並列化ポリシー管理ドライバ・モジュールと、
を含むことを特徴とする請求項24に記載のコンピュータ・システム。
【請求項26】
前記処理要素のために働き、かつ、前記GPU駆動型パイプライン・コアに共通のグラフィックス・データをキャッシュに入れるためのキャッシュ・メモリをさらに備えることを特徴とする請求項22に記載のコンピュータ・システム。
【請求項27】
前記グラフィックス・データは、テクスチャ及び頂点オブジェクトからなる群から選択されることを特徴とする請求項22に記載のコンピュータ・システム。
【請求項28】
前記ベンチマーク・データは、メモリ速度、バイトでのメモリ使用量、与えられた総ピクセル数、幾何学的データ入力レンダリング、フレーム・レート、各パイプライン・コアの作業負荷、グラフィック・パイプラインの間の負荷平衡、転送されたデータ容量、テクスチャ・カウント、及び奥行き複雑度からなる群から選択されるデータを含むことを特徴とする請求項22に記載のコンピュータ・システム。
【請求項29】
前記グラフィック・ライブラリは、OpenGL及びDirectXからなる群から選択されることを特徴とする請求項22に記載のコンピュータ・システム。
【請求項30】
前記GPU駆動型パイプライン・コアの数は、アーキテクチャ上の制限を有さないことを特徴とする請求項22に記載のコンピュータ・システム。
【請求項31】
前記GPU駆動型パイプライン・コアは、性能ボトルネックを解決するために異なる並列化モードで組織されることを特徴とする請求項22に記載のコンピュータ・システム。
【請求項32】
前記並列化モードは、オブジェクト分割モード、画像分割モード、及び時分割モードを含むことを特徴とする請求項22に記載のコンピュータ・システム。
【請求項33】
シングルGPUシステムの固有の収束ボトルネックを回避する、制限されていないグラフィックス並列処理を用いる、多数のグラフィックス・コアを有することを特徴とするグラフィックス処理及び表示システム。
【請求項34】
最良のグラフィックス性能を保証し、マルチ・チップ・システムの欠点、GPU間の通信の制限された帯域幅、機械的複雑さ(サイズ、パワー、及び熱)、コンポーネントの冗長性、及び高コストを排除することを特徴とするグラフィックス処理及び表示システム。
【請求項35】
単一のシリコン・チップ内の多数のグラフィックス・コアを並列化することによって、増幅されたグラフィックス処理及び表示パワーを有することを特徴とするグラフィックス処理及び表示システム。
【請求項36】
制限されていない数の多数のグラフィックス・コアを有するシリコン・チップ上に実現されることを特徴とするグラフィックス処理及び表示システム。
【請求項37】
多数のグラフィックス・コアのクラスタを用いるシリコン・チップ上に実現されることを特徴とするグラフィックス処理及び表示システム。
【請求項38】
多数のグラフィック・コア又パイプを有するシリコン・チップ(すなわち、マルチ・パイプ・システム・オン・チップ、又はMP−SOC)上に実現され、高い並列性のグラフィックス表示性能を達成するためのアーキテクチャ上の柔軟性を提供することを特徴とするグラフィックス処理及び表示システム。
【請求項39】
多数のグラフィック・コアを有するシリコン・チップ上に実現され、その幾何学的形状及びピクセル処理サブシステムの両方の中で異なる並列化モードを適応的にサポートすることを特徴とするグラフィックス処理及び表示システム。
【請求項40】
多数のグラフィック・コアを有するシリコン・チップ上に実現され、高度なグラフィックス処理及び表示性能のための適合性を提供することを特徴とするグラフィックス処理及び表示システム。
【請求項41】
頂点(すなわち、3D多角形形状)処理及びフラグメント処理のグラフィック・パイプライン・ボトルネックが、トランスペアレントにかつインテリジェントに解決されることを特徴とするグラフィックス処理及び表示システム。
【請求項42】
データ及びグラフィック・コマンドをインテリジェントに分解する方法であって、状態機械のようなグラフィック・ライブラリの基本的特徴を保持し、グラフィック標準を堅く守るステップを含むことを特徴とする方法。
【請求項43】
多数のグラフィック・コアを有し、最良の並列性能を達成するためのアーキテクチャ上の柔軟性を提供するシリコン・チップ上に実現されるグラフィックス処理・表示システムをサポートすることを特徴とするビデオ・グラフィックス・カード。
【請求項44】
多数のグラフィック・コアを有するグラフィックス・カードを利用し、最良の並列性能を達成するためのアーキテクチャ上の柔軟性を提供する、写実的なグラフィックス処理・表示能力を有することを特徴とするコンピュータ・システム。
【請求項45】
ビデオ・ゲーム、仮想現実、科学的視覚化を含むアプリケーション、及び写実的なグラフィックス表示能力を必要とする又は要求する他の対話式アプリケーションによって必要とされるグラフィックス処理・表示性能を有することを特徴とするコンピュータ・システム。

【図1B】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図4E】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図1A】
image rotate

【図3】
image rotate


【公表番号】特表2008−538620(P2008−538620A)
【公表日】平成20年10月30日(2008.10.30)
【国際特許分類】
【出願番号】特願2007−552758(P2007−552758)
【出願日】平成18年1月25日(2006.1.25)
【国際出願番号】PCT/IB2006/001529
【国際公開番号】WO2006/117683
【国際公開日】平成18年11月9日(2006.11.9)
【出願人】(507251206)ルーシッド インフォメイション テクノロジー リミテッド (1)
【Fターム(参考)】