(57)【要約】【解決手段】  本開示は、１以上の共有算術論理演算ユニット（ＡＬＣ）を使用するグラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプラインを記述する。ＡＬＵの共有を容易にするために、開示されたＧＰＵパイプラインのステージは、従来のＧＰＵパイプラインに対して再配置されてもよい。さらに、ＧＰＵパイプラインのステージを再配置することによって、効率は、画像処理において得られてもよい。従来のＧＰＵパイプラインと異なり、例えば、属性勾配セットアップステージは、パイプライン中で非常に後に位置されることができ、属性補間ステージは、属性勾配セットアップステージの直後に続いてもよい。これは、属性勾配ステージ及び属性補間ステージによるＡＬＵの共有を可能にする。ＧＰＵパイプラインに関するいくつかの他の方法及び特徴は、同様に記述され、これは、パフォーマンスを向上させ、追加処理効率を場合により得てもよい。【選択図】    図１
2010507175.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプライン中で画像用の画像データを受信することと、
属性勾配セットアップステージ及び属性補間ステージに共有算術論理演算ユニットを使用して、前記ＧＰＵパイプライン中で前記画像データを処理することと、
を具備する方法。
【請求項２】
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項１の方法。
【請求項３】
前記共有算術論理演算ユニットは、第１の共有算術論理演算ユニットを有し、
前記方法は、
三角形セットアップステージに第２の共有算術論理演算ユニットを使用することと、
Ｚ勾配セットアップステージに前記第２の共有算術論理演算ユニットを使用することと、
をさらに具備する、請求項１の方法。
【請求項４】
前記三角形セットアップステージ及び前記Ｚ勾配セットアップステージに相互動作のための共有参照テーブルを使用することをさらに備える請求項３の方法。
【請求項５】
前記Ｚ勾配セットアップステージは、前記ＧＰＵパイプライン中で前記三角形セットアップステージの直後に続き、
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項４の方法。
【請求項６】
前記属性勾配セットアップ及び属性補間ステージは、前記ＧＰＵパイプライン中で隠れプリミティブ及びピクセル破棄ステージの後に続く、請求項５の方法。
【請求項７】
前記隠れプリミティブ及びピクセル破棄ステージは、前記ＧＰＵパイプライン中で前記Ｚ勾配セットアップ及び三角形セットアップステージの後に続く、請求項６の方法。
【請求項８】
前記ＧＰＵパイプラインに結合された拡張頂点キャッシュ中に前記画像データ中の頂点に関する属性を格納することと、
前記画像データ中の前記頂点の各々に関して、前記頂点を特定する頂点座標、及び前記拡張頂点キャッシュ中での前記属性の格納先を示す頂点キャッシュインデックス値に基づいて、前記ＧＰＵパイプライン中で前記画像データを処理することと、
をさらに備える請求項１の方法。
【請求項９】
実行時に、機械に、
グラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプライン中で画像用の画像データを受信させ、
属性勾配セットアップステージ及び属性補間ステージに共有算術論理演算ユニットを使用して、前記ＧＰＵパイプライン中で前記画像データ処理させる命令を具備するコンピュータ読取可能媒体。
【請求項１０】
前記機械は、プログラマブルプロセッサを有する、請求項９のコンピュータ読取可能媒体。
【請求項１１】
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項９のコンピュータ読取可能媒体。
【請求項１２】
前記共有算術論理演算ユニットは、第１の共有算術論理演算ユニットを有し、
前記命令は、実行時に、前記機械に、
三角形セットアップステージに第２の共有算術論理演算ユニットを使用させ、
Ｚ勾配セットアップステージに前記第２の共有算術論理演算ユニットを使用させる、請求項１０のコンピュータ読取可能媒体。
【請求項１３】
前記命令は、実行時に、前記機械に、前記三角形セットアップステージ及び前記Ｚ勾配セットアップステージに相互動作のための共有参照テーブルを使用させる、請求項１２のコンピュータ読取可能媒体。
【請求項１４】
前記Ｚ勾配セットアップステージは、前記ＧＰＵパイプライン中で前記三角形セットアップステージの直後に続き、
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項１３のコンピュータ読取可能媒体。
【請求項１５】
前記属性勾配セットアップ及び属性補間ステージは、前記ＧＰＵパイプライン中で隠れプリミティブ及びピクセル破棄ステージの後に続く、請求項１４のコンピュータ読取可能媒体。
【請求項１６】
前記隠れプリミティブ及びピクセル破棄ステージは、前記ＧＰＵパイプライン中で前記Ｚ勾配セットアップ及び三角形セットアップステージの後に続く、請求項６のコンピュータ読取可能媒体。
【請求項１７】
前記命令は、実行時に、前記機械に、
前記ＧＰＵパイプラインに結合された拡張頂点キャッシュ中に前記画像データ中の頂点に関する属性を格納させ、
前記画像データ中の前記頂点毎に、前記頂点を特定する頂点座標、及び前記拡張頂点キャッシュ中での前記属性の格納先を示す頂点キャッシュインデックス値に基づいて、前記ＧＰＵパイプライン中で前記画像データを処理させる、請求項９の方法。
【請求項１８】
画像用の画像データを受信し、属性勾配セットアップステージ及び属性補間ステージを含む複数のステージ間で、前記画像データを処理するグラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプラインと、
前記属性勾配セットアップステージ及び前記属性補間ステージの両方に関連する属性勾配セットアップ及び属性補間を実行する共有算術論理演算ユニットと、
を具備する装置。
【請求項１９】
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項１８の装置。
【請求項２０】
前記共有算術論理演算ユニットは、第１の共有算術論理演算ユニットを有し、
前記装置は、三角形セットアップステージ及びＺ勾配セットアップステージの両方に使用する第２の共有算術論理演算ユニットをさらに備える、請求項１８の装置。
【請求項２１】
前記三角形セットアップステージ及び前記Ｚ勾配セットアップステージに使用される相互動作のための共有参照テーブルをさらに備える、請求項２０の装置。
【請求項２２】
前記Ｚ勾配セットアップステージは、前記ＧＰＵパイプライン中で前記三角形セットアップステージの直後に続き、
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く、請求項２１の装置。
【請求項２３】
前記属性勾配セットアップ及び属性補間ステージは、前記ＧＰＵパイプライン中で隠れプリミティブ及びピクセル破棄ステージの後に続く、請求項２２の方法。
【請求項２４】
前記隠れプリミティブ及びピクセル破棄ステージは、前記ＧＰＵパイプライン中で前記Ｚ勾配セットアップ及び三角形セットアップステージの後に続く、請求項２３の装置。
【請求項２５】
前記ＧＰＵパイプラインに結合された拡張頂点キャッシュをさらに備え、
前記画像データ中の頂点に関する属性は、前記拡張頂点キャッシュに格納され、前記画像は、前記画像データ中の前記頂点毎に、前記頂点を特定する頂点座標、及び前記拡張頂点キャッシュ中での前記属性の格納先を示す頂点キャッシュインデックス値に基づいて処理される、請求項１８の装置。
【請求項２６】
画像用の画像データを受信する手段と、
属性勾配セットアップステージ及び属性補間ステージ中で前記画像データを処理する手段と、
共有算術論理演算ユニットを使用して属性補間ステージ中で前記画像データを処理する手段と、
を具備する装置。
【請求項２７】
三角形セットアップステージに他の共有算術論理演算ユニットを使用する手段と、
Ｚ勾配セットアップステージに前記他の共有算術論理演算ユニットを使用する手段と、
をさらに備える請求項２６の装置。
【請求項２８】
前記三角形セットアップステージ及び前記Ｚ勾配セットアップステージに相互動作のための共有参照テーブルを使用する手段をさらに備える請求項２７の装置。
【請求項２９】
前記処理する手段は、グラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプラインを有し、
前記Ｚ勾配セットアップステージは、前記ＧＰＵパイプライン中で前記三角形セットアップステージの直後に続き、
前記属性補間ステージは、前記ＧＰＵパイプライン中で前記属性勾配セットアップステージの直後に続く請求項２８の装置。
【請求項３０】
前記属性勾配セットアップ及び属性補間ステージは、前記ＧＰＵパイプライン中で隠れプリミティブ及びピクセル破棄ステージの後に続き、
前記隠れプリミティブ及びピクセル破棄ステージは、前記ＧＰＵパイプライン中で前記Ｚ勾配セットアップ及び三角形セットアップステージの後に続く、請求項２２の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス・プロセッシング・ユニットに関し、特に、画像を処理するためのマルチステージパイプライン型構成を有するグラフィックス・プロセッシング・ユニットに関する。
【背景技術】
【０００２】
グラフィックス・プロセッシング・ユニット（ＧＰＵ）は、電子化されたグラフィックスを処理してディスプレイ上に表示するために利用される専用グラフィックスレンダリング装置である。ＧＰＵは、一連の複雑なグラフィックス関連アルゴリズムに関して一般的な汎用中央演算処理装置（ＣＰＵ）より効率的な処理を提供する高度並列構造を有して作られる。例えば、複雑なアルゴリズムは、三次元の電子化されたグラフィックスの表示に相当してもよい。ＣＰＵを使用してディスプレイに画像を直接描画するのより高速に複雑な三次元画像をディスプレイ上に作成するために、ＧＰＵは、点、線及び三角形等の形成のように、多数の所謂「プリミティブ（primitive）」グラフィックス処理を実行することができる。
【０００３】
頂点シェーディング及びピクセルシェーディングは、光吸収及び拡散、テクスチャマッピング、光反射及び屈折、シャドーイング、表面ディスプレイスメント、並びに後処理エフェクトのように、電子化された画像の最終表面特性を決定するためにビデオゲーム産業でよく利用される。ＧＰＵは、一般に、複数のパイプラインステージ、例えば、１以上のシェーダステージ、セットアップステージ、ラスタライザステージ及び補間ステージ等を含む。  
頂点シェーダは、例えば、一般に画像に関するジオメトリのように、画像データに適用され、この頂点シェーダは、画像データ中の頂点の頂点座標及び属性を生成する。頂点属性は、頂点に関連した色、法線、テクスチャ座標を含んでもよい。１以上のプリミティブセットアップ及び破棄モジュールは、点、線又は三角形のようなプリミティブ形状を形成し、画像データ中の頂点に基づいて隠れプリミティブ形状又は表に出ないプリミティブ形状を破棄してもよい。属性セットアップモジュールは、画像データのプリミティブ形状内で属性の勾配を計算する。属性勾配値が計算されると、画像データのプリミティブ形状は、ピクセルに変換されることができ、ピクセル破棄は、隠れプリミティブ形状に対して実行されることができる。
【０００４】
属性補間器は、次に、属性勾配値に基づいて画像データのプリミティブ形状内のピクセル上で属性を補間し、ピクセルレンダリングのためにフラグメントシェーダに補間した属性値を送信する。フラグメントシェーダの結果は、ディスプレイ上の処理された画像の表示のために後処理ブロック及びフレームバッファに出力される。この工程は、ＧＰＵパイプラインの連続ステージに沿って実行される。
【発明の概要】
【０００５】
一般に、本開示は、１以上の共有算術演算処理ユニット（ＡＬＵ）を使用するグラフィックス・プロセッシング・ユニット（ＧＰＵ）パイプラインを記述する。上記ＡＬＵの共有を容易にするために、開示されたＧＰＵパイプラインのステージは、従来のＧＰＵパイプラインに対して再配置されることができる。さらに、ＧＰＵパイプラインのステージの再配置によって、効率は、画像処理において得られることができる。ＧＰＵパイプラインに関するいくつかの他の技術及び特徴は、同様に記述され、これは、パフォーマンスを向上させることができ、場合により追加処理効率を得ることができる。例えば、拡張頂点キャッシュは、ＧＰＵパイプラインに関して同様に記述され、これは、ＧＰＵパイプラインの連続ステージを介して転送される必要があるデータ量を大幅に低減することができる。
【０００６】
一実施形態では、本開示は、ＧＰＵパイプライン中の画像用の画像データを受信することと、属性勾配セットアップステージ及び属性補間ステージに共有算術演算処理ユニットを使用してＧＰＵパイプライン中で前記画像データを処理することと、を具備する方法を提供する。
【０００７】
他の実施形態では、本開示は、画像用の画像データを受信し、属性勾配セットアップステージ及び属性補間ステージを含む複数のステージ中で前記画像データを処理するＧＰＵパイプラインと、前記属性勾配セットアップステージ及び属性補間ステージの両方に関連する属性勾配セットアップ及び属性補間を実行する共有算術演算処理ユニットと、を具備する装置を提供する。
【０００８】
他の実施形態では、本開示は、画像用の画像データを受信する手段と、共有算術演算処理ユニットを使用して属性勾配セットアップステージ中で前記画像データを処理する手段と、共有算術演算処理ユニットを使用して属性補間ステージ中で前記画像データを処理する手段と、を具備する装置を提供する。
【０００９】
本明細書に記述される技術は、ハードウェア、ソフトウェア、ファームウェア、又はいかなるその組み合わせにより実現されてもよい。ソフトウェアにより実現される場合、方法は、本明細書に記述された１以上の方法を実行するプロセッサ等の機械で実行される命令を有するコンピュータ読取可能媒体によって全体的又は部分的に実現されてもよい。
【００１０】
従って、本開示は、実行時に機械に、ＧＰＵパイプライン中の画像用の画像データを受信させ、属性勾配セットアップステージ及び共有算術演算処理ユニット用の共有算術演算処理ユニットを使用して、前記ＧＰＵパイプライン中の前記画像データを処理させる命令を具備するコンピュータ読取可能媒体を同様に意図する。
【００１１】
１以上の実施形態の詳細は、添付の図面及び以下の説明に示される。本発明における他の特徴、オブジェクト及び利益は、説明及び図面から、並びに請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、１以上の共有算術演算処理ユニット（ＡＬＵ）及び拡張頂点キャッシュを使用するグラフィックス・プロセッシング・ユニット（ＧＰＵ）を含む典型的な装置を示すブロック図である。
【図２】図２は、従来のＧＰＵパイプラインを示すブロック図である。
【図３】図３は、本発明の一実施形態に従って典型定なＧＰＵを示すブロック図である。
【図４】図４は、本発明の他の実施形態に従って典型定なＧＰＵを示すブロック図である。
【図５】図５は、本発明の実施形態に従ってＧＰＵパイプライン中で実行されることができる方法を示すフローチャートである。
【図６】図６は、本発明の実施形態に従ってＧＰＵパイプライン中で実行されることができる方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、電子化された画像を処理するためのＧＰＵパイプライン１８を含むグラフィックス・プロセッシング・ユニット（ＧＰＵ）１４を含む典型的な装置１０を示すブロック図である。本開示に従って、ＧＰＵパイプライン１８は、ＧＰＵ１４の複雑さを低減し、且つ画像処理の効率を上げるために、１以上の共有算術演算処理ユニット（ＡＬＵ）１５を利用する。さらに、ＧＰＵパイプラインは、ＧＰＵパイプライン１８を介して伝達されるデータ量を低減するために拡張頂点キャッシュ１６を備えることができる。より詳細に以下に記述されるように、ＧＰＵパイプライン１８のステージは、従来のＧＰＵパイプラインに対して再配置されることができ、これは、画像処理の工程を改善し、共有ＡＬＵ１５の使用を容易にすることができる。しかしながら、いくつかのステージは、従来のＧＰＵパイプラインのステージで使用されるものと同種の専用（非共有）ＡＬＵを依然として使用してもよい。
【００１４】
図１の例では、装置１０は、コントローラ１２、ＧＰＵ１４及びディスプレイ２０を含む。装置１０は、複数の他の構成要素（図示せず）をさらに含んでもよい。例えば、装置１０が無線通信装置を有してもよく、ディスプレイ２０がこの無線通信装置内のディスプレイを含んでもよい。他の例として、装置１０がデスクトップ又はノート型コンピュータを有してもよく、ディスプレイ２０が専用モニター又はコンピュータのディスプレイを含んでもよい。装置１０は、通信回線に接続された通信装置、又は主には通信向けではない装置を有してもよい。他の例として、装置１０は、ディスプレイ２０を含む携帯情報端末（ＰＤＡ）、携帯型ビデオゲーム装置、ゲーム機又はテレビ装置を有してもよい。種々の実施形態では、電子化されたビデオ画像は、ビデオ又はビデオオブジェクトを生成するビデオサーバ、或いは格納されたビデオ又はビデオオブジェクトを取り出すビデオアーカイブのように、遠隔装置から、或いはローカル装置から得ることができる。
【００１５】
コントローラ１２は、ＧＰＵ１４の動作を制御する。コントローラ１２は、ＧＰＵ１４用の特定コントローラ、又は装置１０の全体的な動作を制御するさらに一般的なコントローラであってもよい。本明細書に記述された技術に従って、ＧＰＵ１４は、共有ＡＬＵ１５を備え、この共有ＡＬＵ１５にアクセスするＧＰＵパイプライン１８を含む。さらに、ＧＰＵ１４は、ＧＰＵパイプライン１８に結合された拡張頂点キャッシュ１６を含むことができる。さらに、共有ＡＬＵは、画像処理の効率を上げることができ、拡張頂点キャッシュ１６の結合は、ＧＰＵ１４中のＧＰＵパイプライン１８を通過するデータ量を低減することができる。ＧＰＵパイプライン１８は、共有ＡＬＵ１５及び拡張頂点キャッシュ１６の使用を容易にするために非従来の方法で配置されることができる。
【００１６】
ＧＰＵ１４は、装置１０中でコントローラ１２から、ジオメトリデータ及びレンダリングコマンドのような画像用の画像データを受信する。画像データは、複雑な二次元又は三次元の電子化されたグラフィックスの表示に相当してもよい。ＧＰＵ１４は、画像データを処理して、例えば、ディスプレイ２０を介して装置１０のユーザーに画像エフェクト（image effects）、背景画像又はビデオゲーム画像を提示する。画像は、一連のビデオフレーム中のビデオフレームとして形成されてもよい。ディスプレイ２０は、液晶ディスプレイ（ＬＣＤ）、ブラウン管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、或いは装置１０に一体化又は結合された他のタイプのディスプレイを含んでもよい。
【００１７】
いくつかの場合では、コントローラ１２は、装置１０中で作動するアプリケーションから画像データを受信してもよい。例えば、装置１０は、内部ハードドライブ又は着脱可能なデータ記憶装置から受信された画像データに基づいてビデオゲームアプリケーションを作動するコンピュータ装置を備えてもよい。他の場合では、コントローラ１２は、装置１０外部で作動するアップリケーションから画像データを受信してもよい。例えば、装置１０は、インターネットのような有線又は無線ネットワークを介して外部サーバから受信された画像データに基づいて、ビデオゲームアップリケーションを作動するコンピュータ装置を備えてもよい。画像データは、ストリーミング媒体又はブロードキャスト媒体を介して受信されてもよく、それらは、有線、無線又は両方の組み合せであってもよい。
【００１８】
装置１０のユーザーが画像エフェクトをトリガーし、背景画像を選定し、或いはビデオゲームを開始すると、コントローラ１２は、アップリケーションから対応する画像データを受信し、画像処理用のＧＰＵ１４へ画像データを伝達する。ＧＰＵ１４は、画像データを処理して、ディスプレイ２０上での表示用の対応する画像を用意する。例えば、ＧＰＵ１４は、受信された画像データによりディスプレイ２０上に表示される三次元画画像を作成するために、点、線及び三角形等の形成のように、多数のプリミティブグラフィックス処理を実行することができる。
【００１９】
本明細書に記述された技術に従って、ＧＰＵパイプライン１８は、画像用の画像データを受信し、拡張頂点キャッシュ１６中に画像データ中の頂点に関する属性を格納する。ＧＰＵパイプライン１８は、ＧＰＵパイプライン１８に沿って他の処理ステージに、頂点を特定する頂点座標、及び拡張頂点キャッシュ１６中での各頂点に関する属性の格納先を示す属性頂点キャッシュインデックスを渡すだけである。いくつかの実施形態では、ＧＰＵパイプライン１８は、拡張頂点キャッシュ１６中に頂点座標を一時的に格納する。このように、ＧＰＵパイプライン１８は、ステージ間での頂点属性の転送で動きを阻害されることなく、増大したスループットをサポートすることができ、さらに、ステージ間のストレージバッファは、除去されることができ、即ち、サイズにおいて可能な限り縮小されることができる。頂点座標は、例えば、画像データ中の頂点の位置を特定するＸ、Ｙ及びＺ（幅、高さ及び深度）座標、並びに画像データに関する投影（perspective）パラメータを含むＷ座標を有する四次元座標系に基づいて、画像データ中の頂点を特定する。頂点属性は、例えば、頂点に関連する色、法線、及びテクスチャ座標を含むことができる。
【００２０】
さらに、本開示に従って、ＧＰＵパイプライン１８中での画像データの処理中に、１以上の共有ＡＬＵ１５は、異なるステージに使用される。一例として、１つの共有ＡＬＵは、三角形セットアップステージ及びＺ勾配セットアップステージの両方に対して使用されることができる。相互作動のための共有参照テーブルは、これら三角形セットアップ及びＺ勾配セットアップステージに対して同様に使用されてもよい。他の例として、１つの共有ＡＬＵは、属性勾配セットアップステージ及び属性補間ステージの両方に対して使用されることができる。従来のＧＰＵパイプラインと異なり、属性勾配セットアップステージは、パイプライン中で非常に後方に位置されることができ、属性補間ステージは、属性勾配セットアップステージの直後に続いてもよい。これは、ＡＬＵの共有を可能にし、破棄された隠れプリミティブ（hidden primitive）に関して属性勾配セットアップが回避されることができる追加利益を有することができる。従来のＧＰＵパイプラインは、対照的に、一般に隠れプリミティブ破棄の前に属性勾配セットアップを実行し、これは、本開示の技術によって回避されることができる非効率性を与える。
【００２１】
ＧＰＵ１４中のＧＰＵパイプライン１８は、頂点シェーダステージ、三角形セットアップ及びＺ勾配セットアップのようないくつかのプリミティブセットアップステージ、ラスタライザステージ、プリミティブ破棄ステージ、属性勾配セットアップステージ、属性補間ステージ及びフラグメントシェーダステージを含むいくつかのステージを含む。より多数のステージ、又はより少数のステージが他の実施形態において含まれてもよい。ＧＰＵパイプラインの異なるステージの種々のものは、本開示においてパイプラインの「モジュール」と称されてもよい。
【００２２】
いかなる場合にも、種々のプリミティブセットアップステージ及びプリミティブ破棄ステージは、プリミティブを形成するために頂点座標を単に利用するだけであり、画像に不必要なプリミティブのサブセットを破棄することができる。プリミティブは、点、線、三角形及び他のポリゴンを含む最も単純なタイプの幾何学図形であり、画像データ中の１以上の頂点で形成されることができる。プリミティブ又はプリミティブの一部分が画像フレーム中で見えない（例えば、オブジェクトの裏側に位置される）場合、或いは画像フレーム中で隠れる（例えば、他のオブジェクトの後方に位置される又は透明である）場合、プリミティブ又はプリミティブの一部分は、画像の特定フレームの処理中に考慮から除外される。これは、隠れプリミティブ及びピクセル破棄（hidden primitive and pixel rejection）ステージの目的である。
【００２３】
属性勾配セットアップ及び属性補間ステージは、頂点属性を利用して属性勾配値を計算し、且つこの属性勾配値に基づいて属性を補間することができる。本開示に記述された技術は、ＧＰＵパイプライン１８中で属性補間の直前に属性勾配の計算集中セットアップ（computationally intensive setup）を配置する（defer）。これは、属性勾配セットアップ及び属性補間ステージの両方による共有ＡＬＵの使用を可能にする。頂点属性は、ＧＰＵパイプライン１８中の属性補間前の最終ステップのうちの１つの属性勾配セットアップのために拡張頂点キャッシュ１６から読み出されることができる。このように、プリミティブセットアップ及びプリミティブ破棄の後まで、頂点属性は、ＧＰＵパイプライン１８に導入されず、これは、破棄されたプリミティブに対して属性勾配セットアップが回避可能な限りにおいて効率を上げる。
【００２４】
さらに、拡張頂点キャッシュ１６中に画像データ中の頂点に関する属性を格納することによって、ＧＰＵパイプライン１８は、より効率的にされることができる。特に、拡張頂点キャッシュ１６は、ＧＰＵパイプライン１８を介して大量の属性データを渡す必要を除去することができ、多数の属性を含むプリミティブに関してＧＰＵパイプライン１８中のボトルネックを本質的に解消することができる。さらに、ＧＰＵパイプライン１８中で属性補間の直前に属性勾配セットアップを配置することは、ＧＰＵパイプライン１８中で画像処理速度を向上させることができる。特に、画像に不必要なプリミティブのサブセットの破棄のさらに後方にＧＰＵパイプライン１８中で属性勾配セットアップを配置することは、属性勾配セットアップが画像に必要なプリミティブのサブセットに対して実行されるだけではあるが、計算及び電力消費を本質的に低減することができる。
【００２５】
ディスプレイ２０は、無線又は有線接続のいずれかで装置１０に結合されることができる。例えば、装置１０は、無線通信サービスプロバイダのサーバ又は他のコンピュータ装置を有することができ、ディスプレイ２０は、無線通信装置内に含まれてもよい。この場合、例として、ディスプレイ２０は、移動体電話、衛星無線電話、無線通信カードを有するポータブルコンピュータ、無線通信能力を有する携帯情報端末（ＰＤＡ）、又は無線通信可能な種々の装置中のディスプレイを含んでもよい。他の例として、装置１０は、有線ネットワークを介してディスプレイ２０に結合されるサーバ又は他のコンピュータ装置を有することができ、ディスプレイ２０は、有線通信装置、又は主としては通信向けではない装置内に含まれてもよい。
【００２６】
図２は、従来のＧＰＵパイプライン２２を示すブロック図である。図２のＧＰＵパイプライン２２は、次の順序で、コマンドエンジン２４、頂点シェーダ２６、三角形セットアップモジュール２８、Ｚ勾配セットアップモジュール２９、属性勾配セットアップモジュール３０、ラスタライザ３１、隠れプリミティブ及びピクセル破棄モジュール３２、属性補間器３４、フラグメントシェーダ３６及びポストプロセッサ３８を含む。頂点シェーダ２６、三角形セットアップモジュール２８、Ｚ勾配セットアップモジュール２９、属性勾配セットアップモジュール３０、ラスタライザ３１、隠れプリミティブ及びピクセル破棄モジュール３２、属性補間回路３４及びフラグメントシェーダ３６の各々は、専用の算術演算処理ユニット（ＡＬＵ）を含み、夫々要素２５Ａ−２５Ｈと称される。
【００２７】
コマンドエンジン２４は、従来のＧＰＵパイプライン２２が備わっている装置のコントローラから画像用の画像データを受信する。画像データは、複雑な二次元又は三次元の電子化されたグラフィックスの表示に相当してもよい。コマンドエンジン２４は、他の処理ステージへＧＰＵパイプライン２２に沿って画像データを渡す。特に、画像データの属性及び座標の全ては、ＧＰＵパイプライン２２に沿ってステージからステージへ渡される。各ステージは、夫々のＡＬＵを使用し、いずれかのボトルネックが生じる場合、画像処理は、その各ステージでストールされる。
【００２８】
図３は、図１のＧＰＵ１４の典型的な実施形態であり、ＧＰＵパイプライン１８Ａを含むＧＰＵ１４Ａを示すブロック図である。ＡＬＵ４５Ａ、５５Ａ、４５Ｂ、４５Ｃ、５５Ｂ及び４５Ｄのセット、並びに拡張頂点キャッシュ１６Ａは、ＧＰＵパイプライン１８Ａに結合される。ＧＰＵ１４Ａ中の拡張頂点キャッシュ１６Ａは、ＧＰＵ１４Ａ中でＧＰＵパイプライン１８Ａを介して渡すデータ量を低減することができる。さらに、ＡＬＵ５５Ａ及び５５Ｂは共有ＡＬＵであり、夫々がＧＰＵパイプライン１８Ａ中で２つの異なる連続ステージによって使用される。特に、ＧＰＵパイプライン１８Ａのステージは、図２の従来のＧＰＵパイプライン２２に対して再配置されており、これは、属性勾配セットアップモジュール５２及び属性補間器５４によってＡＬＵ５５Ｂの共有を容易にすることができる。さらに、隠れプリミティブ及びピクセル破棄モジュール５０の後方に属性勾配セットアップモジュール５２が実行されることから、効率が得られる。即ち、属性勾配セットアップは、いかなる隠れプリミティブ又は破棄プリミティブに関して回避されることができる。
【００２９】
図３に示された実施形態では、ＧＰＵパイプライン１８Ａは、コマンドエンジン４２、頂点シェーダ４４、三角形セットアップモジュール４６、Ｚ勾配セットアップモジュール４７、ラスタライザ４８、隠れプリミティブ及びピクセル破棄モジュール５０、属性勾配セットアップモジュール５２、属性補間器５４、フラグメントシェーダ５６並びにポストプロセッサ５８を含む。さらに、属性勾配セットアップモジュール５２が隠れプリミティブ及びピクセル破棄モジュール５０の後に続く場合、これらステージの順序は、非従来である。属性補間器５４は、属性勾配セットアップモジュール５２の直後に続く。三角形セットアップモジュール４６及びＺ勾配セットアップモジュール４７は、プリミティブセットアップモジュールと総称されてもよく、いくつかの場合では、他のタイプのプリミティブセットアップが同様に使用されてもよい。
【００３０】
コマンドエンジン４２は、装置１０のコントローラ１２から画像用の画像データを受信し、この画像データがレンダリングコマンドを含むことができる。画像データは、複雑な二次元又は三次元の電子化されたグラフィックスの表示に相当してもよい。コマンドエンジン４２は、このデータのサブセット、即ち、拡張頂点キャッシュ１６Ａに含まれていない画像データの頂点（「ミスされた頂点（missed vertices）」）に関する情報を頂点シェーダ４４へ渡す。コマンドエンジン４２は、プリミティブセットアップ及び破棄モジュール４６へミスされた頂点に関する頂点キャッシュインデックス情報を渡すだろう。コマンドエンジン４２は、拡張頂点キャッシュ１６Ａに既に含まれている画像データの頂点（「ヒットされた頂点（hit vertices）」）に関する頂点キャッシュインデックス情報をプリミティブセットアップ及び破棄モジュール４６に直接渡す。ヒットされた頂点に関する頂点データは、一般に、頂点シェーダ４４に送信されない。画像データ中のヒット及びミスされた頂点の早期処理は、以下にさらに詳細に記述される。
【００３１】
ＧＰＵパイプライン１８Ａは、いくつかのステージを含むが、本開示の技術が例証されたものより多数のステージ又はより少数のステージを有するパイプライン中で作動してもよい。頂点シェーダ４４は、画像データ中のミスされた頂点に適用され、画像データ中のミスされた頂点において画像の表面特性を決定する。このように、頂点シェーダ４４は、画像データ中のミスされた頂点の各々の頂点座標及び属性を生成する。頂点シェーダ４４は、次に、拡張頂点キャッシュ１６Ａにミスされた頂点に関する属性を格納する。このように、属性は、ＧＰＵパイプライン１８Ａに沿って渡される必要はないが、ＧＰＵパイプライン１８Ａの個々のステージによって、必要に応じて、拡張頂点キャッシュ１６Ａからアクセスされることができる。ヒットされた頂点の各々の頂点座標及び属性が予め生成されて拡張頂点キャッシュ１６Ａに格納されることができることから、頂点シェーダ４４は、画像データ中のヒットされた頂点の各々に適用されない。
【００３２】
頂点座標は、例えば、画像データ中の頂点の位置を特定するＸ、Ｙ及びＺ（幅、高さ及び深度）座標、及び画像データに関する投影パラメータを含むＷ座標を有する四次元座標系に基づいて画像データ（画像中のジオメトリ等）中の頂点を特定する。頂点属性は、例えば、頂点に関連する色、法線及びテクスチャ座標を含むことができる。拡張頂点キャッシュ１６Ａは、属性及びプリミティブタイプの異なる数に関して簡単に構成されてもよい。画像データ中のヒット及びミスされた頂点の両方に関する頂点座標及び属性の拡張頂点キャッシュ１６Ａ中での格納先を示す頂点キャッシュインデックス値は、次に、コマンドエンジン４２及びプリミティブセットアップ及び破棄モジュール４６間に配置されたバッファ（図示せず）に格納される。
【００３３】
三角形セットアップ４６及びＺ勾配セットアップ４７は、典型的なプリミティブセットアップステージであるが、追加プリミティブセットアップステージが含まれてもよい。共有ＡＬＵ５５Ａは、三角形セットアップ４６及びＺ勾配セットアップ４７の両方によって使用される。異なるステージは、各自の画像を処理するために頂点座標又は頂点属性のいずれかを使用する。例えば、三角形セットアップ４６、Ｚ勾配セットアップ４７、ラスタライザ４８、及び隠れプリミティブ及びピクセル破棄モジュール５０は、単に頂点座標を利用するだけである。しかしながら、属性勾配セットアップモジュール５２及び属性補間器５４は、頂点属性を利用する。従って、本開示によれば、属性勾配セットアップモジュール５２は、ＧＰＵパイプライン１８Ａ中に属性補間器５４の直前に配置される。頂点属性は、属性補間器５４を使用して属性を補間する前に、ＧＰＵパイプライン１８Ａの最後のステップのうちの１つの属性勾配セットアップモジュール５２のために拡張頂点キャッシュ１６Ａから取り出されてもよい。このように、隠れプリミティブ及びピクセル破棄モジュール５０の後から属性補間器５４の直前まで、頂点属性は、ＧＰＵパイプライン１８Ａに導入されず、これが効率において重要な利得を提供する。
【００３４】
さらに、属性補間器５４が属性勾配セットアップモジュール５２の直後に続くことから、これら各ステージは、ＡＬＵ５５Ｂを共有することができる。大きいサイズのプリミティブにおいて、ＡＬＵ５５Ｂは、補間のために主に利用されるだろう。或いは、プリミティブが小さい場合、ＡＬＵ５５Ｂは、属性セットアップに主に使用されるだろう。比較的小さいＡＬＵ５５Ｂは、勾配セットアップ中の実行速度を犠牲にして電力消費を低減することができるが、比較的大きいＡＬＵ５５Ｂは、特に勾配セットアップのための処理速度を促進することができる。
【００３５】
さらに、拡張頂点キャッシュ１６Ａ中の画像データの頂点に関する頂点属性を格納するによって、装置１０は、ＧＰＵパイプライン１８Ａを通過する大きなデータ量を除去することができ、これは、ＧＰＵパイプライン１８Ａに含まれる内部データバスの幅を低減する。データ移動量の低減によって、これらの技術は、ＧＰＵ１８Ａ中の電力消費をさらに低減することができる。さらに、コマンドエンジン４２とプリミティブセットアップ及び破棄モジュール４６との間に配置されるバッファを例外として、処理ステージの各々の間に配置されるバッファは、装置１０中でＧＰＵ１４Ａのエリアを縮小するために、ＧＰＵパイプライン１８Ａから除去されることができる。
【００３６】
プリミティブセットアップモジュール４６及び４７（及び場合により他のタイプのプリミティブセットアップ）は、画像データ中の各頂点の属性に関する頂点キャッシュインデックス値を受信する。プリミティブセットアップモジュール４６及び４７は、次に、頂点キャッシュインデックス値を使用して、画像データ中の各頂点の頂点座標を取り出す。プリミティブセットアップモジュール４６及び４７は、画像データ中の１以上の頂点で夫々のプリミティブを形成する。プリミティブは、最も単純なタイプの幾何学図形であり、点、線、三角形及び他の多角形を含んでもよい。本開示に従って、三角形セットアップ２８及びＺ勾配セットアップ２９は、効率を促進するためにＡＬＵ５５Ａを共有することができる。三角形セットアップ２８及びＺ勾配セットアップ２９は、追加効率のために相互動作のための参照テーブルを共有してもよい。Ｚ勾配は、Ｘ方角又はＹ方角のいずれかにおいて三角形上で２つの隣接ピクセルの２つのＺ座標の差分を指す。Ｚ勾配セットアップは、三角形における３つのオリジナルのＺの値及びＸＹ座標を使用して、２つのＺの値の差を計算するために使用される。
【００３７】
いくつかの場合では、プリミティブセットアップモジュール４６及び４７が、画像データ中の頂点のＸＹ座標を使用してシザリング及び背面カリングを実行することによっていくつかのプリミティブを破棄してもよい。プリミティブ及びプリミティブの一部分が画像フレーム中で見えない場合、シザリング及び背面カリングは、画像の特定フレームの処理中にプリミティブ及びプリミティブの一部分を考慮から除去する。例えば、このプリミティブ及びプリミティブの一部分は、画像フレーム中のオブジェクトの裏側に位置されることができる。プリミティブセットアップモジュール４６及び４７は、破棄されたプリミティブに関連する属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ａに要求することができる。画像データ、プリミティブに関連する頂点座標、及びＧＰＵパイプライン１８Ａを介してプリミティブ中の各頂点に関する頂点キャッシュインデックス値を単に移動させることによって、装置１０は、多数の属性を含むプリミティブに関してＧＰＵパイプライン１８Ａ中でボトルネックを本質的に除去することができる。
【００３８】
ラスタライザ４８は、プリミティブ中の頂点のＸＹ座標、及びプリミティブに含まれるピクセル数に基づいて、画像データに関するプリミティブをピクセルに変換する。隠れプリミティブ及びピクセル破棄モジュール５０は、プリミティブ中の頂点のＺ座標に基づいて、早期深度及びステンシルテストを使用して、追加の隠れプリミティブ及びプリミティブ中の隠れピクセルを破棄する。隠れプリミティブ及びピクセル破棄モジュール５０がプリミティブ中の全てのピクセルを破棄する場合、プリミティブは、自動的に破棄される。プリミティブ又はプリミティブ中のピクセルが画像フレーム中の他のオブジェクトの後方に位置されるか、画像フレーム中で透明である場合、プリミティブ又はプリミティブ中のピクセルは、隠れを考慮され、画像の特定フレームの処理中に考慮から除外されることができる。隠れプリミティブ及びピクセル破棄モジュール５０は、破棄されたプリミティブに関連する属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ａに要求してもよい。
【００３９】
一般に、プリミティブの大きな割合は、プリミティブセットアップ及び破棄モジュール４６，４７によって実行されるシザリング及び背面カリング、並びに隠れプリミティブ及びピクセル破棄モジュール５０によって実行される早期深度及びステンシルテストにより破棄される。従って、隠れプリミティブ及びピクセル破棄５０の後まで属性勾配セットアップステージ５２を遅らせることによって、隠されている、且つ画像に不必要であるとして破棄されるプリミティブのサブセットに関連する属性に関して計算が除去されることができる。
【００４０】
属性勾配セットアップモジュール５２は、プリミティブ中の各頂点に関する頂点キャッシュインデックス値を使用して、拡張頂点キャッシュ１６Ａから頂点属性を取り出す。属性勾配セットアップモジュール５２は、画像データのプリミティブに関連する属性の勾配を計算する。属性勾配は、水平（Ｘ）方角又は垂直（Ｙ）方角のいずれかに移動するプリミティブ中の第１のピクセルの属性値及び第２のピクセルの属性値間の差分を有する。属性勾配セットアップモジュール５２が画像データのプリミティブ中の全ての頂点の属性の勾配を計算した後に、属性勾配セットアップモジュール５２は、プリミティブ中の頂点の属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ａに要求することができる。
【００４１】
属性勾配値が計算されると、属性補間器５４は、属性勾配値に基づいて、プリミティブ中のピクセル上で属性を補間する。さらに、同一ＡＬＵ５５Ｂは、属性勾配セットアップステージ５２及び属性補間ステージ５４中で使用される。補間された属性値は、プリミティブのピクセルレンダリングを実行するためにフラグメントシェーダ５６に入力される。フラグメントシェーダ５６は、画像データのためにプリミティブ中のピクセルにおいて画像の表面特性を決定する。フラグメントシェーダ５６の結果は、次に、ディスプレイ２０上の処理された画像の表示のためにポストプロセッサ５８に出力される。
【００４２】
いくつかの場合では、頂点シェーダ４４は、画像データ中のミスされた頂点に適用されなくてもよい。画像データ中の全ての頂点の頂点座標及び属性がＧＰＵパイプライン１８Ａ外部で決定されることを前提とされてもよい。従って、ミスされた頂点を使用して形成されたプリミティブは、ミスされた頂点の属性を計算するために頂点シェーダ４４を必要としない。この場合、拡張頂点キャッシュ１６Ａは、拡張頂点バッファとして機能することができる。コマンドエンジン４２は、拡張頂点バッファ中の属性のための格納先を特定する頂点インデックス値を割り当てることができ、拡張頂点バッファに画像データ中の各頂点の所定の頂点座標及び属性を送信することができる。
【００４３】
図４は、図１のＧＰＵ１４の他の典型的な実施形態であり、ＧＰＵパイプライン１８Ｂ、及びＧＰＵパイプライン１８Ｂに結合される拡張頂点キャッシュ１６Ｂを含むＧＰＵ１４Ｂを示すブロック図である。例証された実施形態では、ＧＰＵパイプライン１８Ｂは、コマンドエンジン６２、頂点シェーダ６４、三角形セットアップモジュール６６、及びＺ勾配セットアップモジュール６７（モジュール６６及び６７がプリミティブセットアップモジュールと総称される）、ラスタライザ６８、隠れプリミティブ及びピクセル破棄モジュール７０、属性勾配セットアップモジュール７２、属性補間器７４、フラグメントシェーダ７６及びポストプロセッサ７８を含む。図４に示されたＧＰＵ１４Ｂは、画像データ中の頂点の初期処理を除いて、図３に示されたＧＰＵ１４Ａと略同様に作動してもよい。異なるステージは、夫々ＡＬＵ６５Ａ、７５Ａ、６５Ｂ、６５Ｃ、７５Ｂ及び６５Ｄを利用する。特に、ＡＬＵ７５Ａ及び７５Ｂは、ＧＰＵパイプライン１８Ｂの２つの異なるステージに共有される。
【００４４】
コマンドエンジン６２は、装置１０のコントローラ１２から画像用の画像データを受信し、この画像データがジオメトリ及びレンダリングコマンドを含む。コマンドエンジン６２は、他の処理ステージへＧＰＵパイプライン１８Ｂに沿って画像データを渡す。換言すれば、コマンドエンジン６２は、頂点シェーダ６４に画像データ中の全ての頂点に関する情報を渡す。
【００４５】
図４の実施形態では、頂点シェーダ６４は、画像データ中の全ての頂点に適用される。頂点シェーダ６４は、画像データに適用され、画像データ中の頂点において画像の表面特性を決定する。このように、頂点シェーダ６４は、画像データ中の各頂点の頂点座標及び属性を生成する。頂点シェーダ６４は、次に、拡張頂点キャッシュ１６Ｂ中に属性だけを格納する。頂点シェーダ６４は、ＧＰＵパイプライン１８Ｂに沿って、画像データ中の各頂点に関する拡張頂点キャッシュ１６Ｂ中での属性の格納先を示す頂点座標及び頂点キャッシュインデックス値を渡す。
【００４６】
頂点シェーダ６４が画像データ中の頂点に関する頂点座標及び頂点キャッシュインデックス値をプリミティブセットアップ及び破棄モジュール６６に直接渡すので、各処理ステージの間に配置される全てのバッファは、ＧＰＵパイプライン１８Ｂから取り除かれることができる。プリミティブセットアップモジュール６６及び６７は、画像データ中の１以上の頂点でプリミティブを形成する。これらのプリミティブセットアップモジュール６６及び６７は、１以上のＡＬＵを共有することができる。プリミティブセットアップ及び破棄モジュール６６は、破棄されたプリミティブに関連する属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ｂに要求することができる。
【００４７】
ラスタライザ６８は、プリミティブ中の頂点のＸＹ座標、及びプリミティブに含まれるピクセル数に基づいて、画像データに関するプリミティブをピクセルに変換する。隠れプリミティブ及びピクセル破棄モジュール７０は、プリミティブ中の頂点のＺ座標に基づいて、早期深度及びステンシルテストを使用して、隠れプリミティブ及びプリミティブ中の隠れピクセルを破棄する。隠れプリミティブ及びピクセル破棄モジュール７０は、破棄されたプリミティブに関連する属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ｂに要求してもよい。
【００４８】
属性勾配セットアップモジュール７２は、プリミティブ中の頂点の各々の頂点キャッシュインジケータ値を使用して、拡張頂点キャッシュ１６Ｂから頂点属性を取り出す。属性勾配セットアップモジュール７２は、画像データのプリミティブに関連する属性の勾配を計算する。属性勾配セットアップモジュール７２が画像データのためにプリミティブ中の全ての頂点の属性の勾配を計算した後に、属性勾配セットアップモジュール７２は、プリミティブ中の頂点の属性のための格納スペースを開放するように拡張頂点キャッシュ１６Ｂに要求してもよい。
【００４９】
属性勾配値が計算されると、属性補間器７４は、属性勾配セットアップモジュール７２と１以上のＡＬＵを共有するにより、属性勾配値に基づいてプリミティブ中のピクセル上で属性を補間する。補間された属性値は、次に、プリミティブのピクセルレンダリングを実行するためにフラグメントシェーダ７６を入力される。フラグメントシェーダ７６は、画像データのプリミティブ中のピクセルにおいて画像の表面特性を決定する。フラグメントシェーダ７６の結果は、ディスプレイ２０上の処理された画像の表示のためにポストプロセッサ７８に出力されるだろう。
【００５０】
図５は、拡張頂点キャッシュを使用して、ＧＰＵ中で画像を処理する典型的な動作を示すフローチャートである。図５の動作は、図１のＧＰＵ１４を参照して記述されるが、同様の技術が他のＧＰＵで使用されてもよい。拡張頂点キャッシュ１６は、装置１０の製造中にＧＰＵ１４中に作製され、ＧＰＵパイプライン１８に結合されることができる（８０）。拡張頂点キャッシュ１６は、異なる数の属性及びプリミティブタイプのために容易に形成されてもよい。
【００５１】
ＧＰＵ１４は、装置１０のコントローラ１２から画像用の画像データを受信し（８２）、この画像データがレンダリングコマンド及びジオメトリを含むことができる。画像データは、複雑な二次元又は三次元の電子化されたグラフィックスの表示に相当することができる。装置１０に結合されたディスプレイ２０上への表示用の画像を処理するために、ＧＰＵ１４は、ＧＰＵパイプライン１８に画像データを送信する。ＧＰＵパイプライン１８は、拡張頂点キャッシュ１６中に画像データ中の頂点に関する属性を格納する（８４）。いくつかの実施形態では、ＧＰＵパイプライン１８は、拡張頂点キャッシュ１６中に画像データ中の頂点に関する頂点座標を一時的に格納する。
【００５２】
ＧＰＵパイプライン１８は、次に、拡張頂点キャッシュ１６中の各頂点に関して、頂点を特定する頂点座標、及び属性の格納先を示す頂点キャッシュインデックス値をＧＰＵパイプライン１８に沿って他の処理ステージに送信する（８６）。ＧＰＵパイプライン１８は、画像データ中の各頂点に関する頂点座標及び頂点キャッシュインデックス値に基づいて画像を処理する（８８）。この処理中に、ＧＰＵパイプライン１８は、ＧＰＵパイプライン１８に沿って１以上のＡＬＵ１８を再使用する（８９）。具体的には、本開示に従って、共有ＡＬＵは、属性勾配セットアップステージ及び属性補間ステージに使用されることができる。ＧＰＵパイプラインの非従来の順序は、ＡＬＵを共有するために属性勾配セットアップステージ及び属性補間ステージにおける能力を促進することができる。
【００５３】
図６は、共有ＡＬＵを使用して、ＧＰＵパイプラインで画像を処理する他の典型的な動作を示すフローチャートである。説明の目的で、図６に示される動作は、図３のＧＰＵ１４Ａを参照して記述されるが、同様の技術が他のＧＰＵで使用されることができる。コマンドエンジン４２は、画像用の画像データを受信し、この画像データがジオメトリ及びレンダリングコマンドを含み、ＧＰＵパイプライン１８Ｂに沿って画像データを渡す。図６に示されるように、頂点シェーダ４４は、第１のＡＬＵ４５Ａを使用して頂点シェーディングを実行する（９１）。三角形セットアップモジュール４６は、第２のＡＬＵ５５Ａを使用して、あらゆる三角形プリミティブに対して三角形セットアップを実行する（９２）。Ｚ勾配セットアップモジュール４７が第２のＡＬＵ５５Ａを使用してＺ勾配セットアップを実行する場合、第２のＡＬＵ５５Ａは、他のステージによって再使用される（９３）。ラスタライザは、次に、第３のＡＬＵ４５Ｂを使用してラスタライジングを実行する（９４）。
【００５４】
隠れプリミティブ及びピクセル破棄モジュール５０は、最終画像において不可視となるプリミティブを除去するために、第４のＡＬＵ４５Ｃを使用して早期深度／ステンシルテストを実行する（９５）。このような不可視なプリミティブは、例えば、他のオブジェクト又は形状によって覆われてもよく、少しも画質を犠牲にすることなく画像から除去されることができる。属性勾配セットアップモジュールは、属性勾配セットアップのために第５のＡＬＵ５５Ｂを使用する（９６）が、これは、特に破棄されたプリミティブに対して起こらない。属性補間器５４は、次に、あらゆる補間を実行するために、属性勾配セットアップにも使用された第５のＡＬＵ５５Ｂを使用する（９７）。フラグメントシェーダ５６は、フラグメントシェーディングを実行し（９８）、ポストプロセッサ５８は、画像表示の前に全ての最終の後処理を実行する（９９）。上述のように、拡張頂点キャッシュ１６Ａは、ＧＰＵパイプライン１８Ａに沿って実行されて、複雑さを低減し、且つ各ステージを介して大きなデータ量を伝達する必要を取り除くことができる。代わりに、画像データの一部分を必要とする各ステージは、拡張頂点キャッシュ１６Ａ中に格納された上記データにアクセスすることができる。
【００５５】
種々の実施形態が記述された。しかしながら、これら実施形態に対して種々の変更が可能であり、本明細書に提示された原理が他の実施形態に同様に適用されてもよい。本明細書に記述された技術及び方法は、ハードウェア、ソフトウェア、及び／又はファームウェアにより実現されてもよい。上記方法の種々のタスクは、１以上の論理素子アレイ、マイクロプロセッサ、内蔵コントローラ、又は統合されたプロセッサコアで実行可能な命令のセットとして実行されてもよい。一例では、１以上の上記タスクは、所謂携帯電話のようなパーソナル通信装置の種々の装置の動作を制御するように構成されるチップセット中での実行のために用意される。
【００５６】
種々の例では、本会時に記述される技術は、汎用マイクロプロセッサ、デジタル・シグナル・プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又は他の同等の論理装置中で実行されてもよい。ソフトウェアでの実行では、この技術は、コンピュータ読取可能媒体、例えば、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル・リード・オンリー・メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ等上の命令として具現化されてもよい。この命令は、プログラマブルプロセッサ等の機械に本開示に記述された技術を実行させる。
【００５７】
さらなる例として、実施形態は、ハードワイヤード（hard-wired）回路により部分的又は全体的に実現されてもよく、特定用途向け集積回路に作られた回路構成により部分的又は全体的に実現されてもよく、若しくは、不揮発性記憶装置にロードされるファームウェアプログラム、或いは機械読取可能コードとしてデータ記憶媒体から、又はデータ記憶媒体へロードされるソフトウェアプログラムによって部分的又は全体的に実行されてもよく、このようなコードは、マイクロプロセッサ又は他のデジタル・シグナル・プロセッサユニット等の論理素子アレイで実行可能な命令である。データ記憶媒体は、半導体メモリ（制限することなしに動的又は静的なＲＡＭ、ＲＯＭ、及び／又はフラッシュＲＡＭを含んでもよい）、強誘電体メモリ、オボニック（ovonic）メモリ、高分子メモリ、位相変化メモリ、或いは磁気ディスク又は光ディスク等のディスク媒体のような記憶素子アレイであってもよい。
【００５８】
本開示では、種々の技術は、拡張頂点キャッシュ及び１つ以上の共有ＡＬＵを使用して、ＧＰＵで画像を処理することに関して記述された。この技術は、多数の属性を含むプリミティブのためにＧＰＵパイプライン中のボトルネックを本質的に除去することができ、本質的にＡＬＵのアイドル時間を本質的に低減する効率的な処理を促進することができる。さらに、この技術は、ＧＰＵパイプライン中の属性補間の直前に属性勾配セットアップを配置することによりＧＰＵパイプライン中の画像処理速度を向上させる。特に、画像に不必要なプリミティブのサブセットの破棄の後までＧＰＵパイプライン中の属性勾配セットアップを遅らせることは、属性勾配セットアップが画像に必要なプリミティブのサブセットに対して実行されるだけではあろうが、計算と電力消費を本質的に低減する。ステージのこの配置は、属性勾配セットアップ及び属性補間ステージによるＡＬＵ共有を同様に促進する。これら実施形態及び他の実施形態は、以下の請求項の範囲内にある。
【図１】
2010507175.tif 000003
【図２】
2010507175.tif 000004
【図３】
2010507175.tif 000005
【図４】
2010507175.tif 000006
【図５】
2010507175.tif 000007
【図６】
2010507175.tif 000008
【手続補正書】
【提出日】平成21年8月26日(2009.8.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
プリミティブセットアップモジュール４６及び４７（及び場合により他のタイプのプリミティブセットアップ）は、画像データ中の各頂点の属性に関する頂点キャッシュインデックス値を受信する。プリミティブセットアップモジュール４６及び４７は、次に、頂点キャッシュインデックス値を使用して、画像データ中の各頂点の頂点座標を取り出す。プリミティブセットアップモジュール４６及び４７は、画像データ中の１以上の頂点で夫々のプリミティブを形成する。プリミティブは、最も単純なタイプの幾何学図形であり、点、線、三角形及び他の多角形を含んでもよい。本開示に従って、三角形セットアップ４６及びＺ勾配セットアップ４７は、効率を促進するためにＡＬＵ５５Ａを共有することができる。三角形セットアップ４６及びＺ勾配セットアップ４７は、追加効率のために相互動作のための参照テーブルを共有してもよい。Ｚ勾配は、Ｘ方角又はＹ方角のいずれかにおいて三角形上で２つの隣接ピクセルの２つのＺ座標の差分を指す。Ｚ勾配セットアップは、三角形における３つのオリジナルのＺの値及びＸＹ座標を使用して、２つのＺの値の差を計算するために使用される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
ＧＰＵパイプライン１８は、次に、拡張頂点キャッシュ１６中の各頂点に関して、頂点を特定する頂点座標、及び属性の格納先を示す頂点キャッシュインデックス値をＧＰＵパイプライン１８に沿って他の処理ステージに送信する（８６）。ＧＰＵパイプライン１８は、画像データ中の各頂点に関する頂点座標及び頂点キャッシュインデックス値に基づいて画像を処理する（８８）。この処理中に、ＧＰＵパイプライン１８は、ＧＰＵパイプライン１８に沿って１以上のＡＬＵ１５を再使用する（８９）。具体的には、本開示に従って、共有ＡＬＵは、属性勾配セットアップステージ及び属性補間ステージに使用されることができる。ＧＰＵパイプラインの非従来の順序は、ＡＬＵを共有するために属性勾配セットアップステージ及び属性補間ステージにおける能力を促進することができる。
【国際調査報告】
2010507175.tif 000009
2010507175.tif 000010