(57)【要約】  グラフィックス処理ユニット（ＧＰＵ）は、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行し得る。ＧＰＵは、さらに、３Ｄグラフィックス処理を実行する際に使用されないＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行し得る。
2018514855.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理のための方法であって、
グラフィックス処理ユニット（ＧＰＵ）によって、前記ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行することと、
前記ＧＰＵによって、前記３Ｄグラフィックス処理を実行する際に使用されない前記ＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行することと
を備える、方法。
【請求項２】
前記ＧＰＵによって、前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵによって、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行することを備える、請求項１に記載の方法。
【請求項４】
前記ＧＰＵによって、前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記ＧＰＵによって、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１に記載の方法。
【請求項６】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１に記載の方法。
【請求項７】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
請求項１に記載の方法。
【請求項８】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、前記ＧＰＵによって、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
請求項１に記載の方法。
【請求項９】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵのテクスチャプロセッサによって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、前記ＧＰＵによって、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサと前記テクスチャプロセッサとを備える、
請求項１に記載の方法。
【請求項１０】
２次元（２Ｄ）グラフィックス動作を記憶するように構成されたメモリと、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット（ＧＰＵ）と、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して前記２Ｄグラフィックス動作を実行するようにさらに構成された、
を備える、コンピューティングデバイス。
【請求項１１】
前記ＧＰＵが、
前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定する
ようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１２】
前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行するようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１３】
前記ＧＰＵが、
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
を行うようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１４】
前記ＧＰＵが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１５】
前記ＧＰＵが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１６】
前記ＧＰＵが、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１７】
前記ＧＰＵが、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１８】
前記ＧＰＵが、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１９】
グラフィックス処理のための装置であって、
第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するための手段と、
前記３Ｄグラフィックス処理を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行するための手段と
を備える、装置。
【請求項２０】
実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定するための手段
をさらに備える、請求項１９に記載の装置。
【請求項２１】
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存するための手段と、
前記２Ｄグラフィックス動作を実行するためにコンテキストを切り替えるための手段と、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記コンテキストを切り替えるための手段と
をさらに備える、請求項１９に記載の装置。
【請求項２２】
前記２Ｄグラフィックス動作を実行するための前記手段が、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するための手段を含み、
ここにおいて、前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１９に記載の装置。
【請求項２３】
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１９に記載の装置。
【請求項２４】
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１９に記載の装置。
【請求項２５】
前記２Ｄグラフィックス動作を実行するための前記手段が、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行するための手段と、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１９に記載の装置。
【請求項２６】
前記２Ｄグラフィックス動作のための前記手段が、ピクセルのブロックをスケーリングするためにスケーリング動作を実行するための手段と、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
請求項１９に記載の装置。
【請求項２７】
グラフィックス処理ユニット（ＧＰＵ）であって、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを備え、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して２次元（２Ｄ）グラフィックス動作を実行するようにさらに構成された、
ＧＰＵ。
【請求項２８】
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンするようにさらに構成された、請求項２７に記載のＧＰＵ。
【請求項２９】
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンすることが、
１つまたは複数のシェーダプロセッサをパワーダウンすることを
をさらに備える、請求項２８に記載のＧＰＵ。
【請求項３０】
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をクロックゲートする
ようにさらに構成された、請求項２７に記載のＧＰＵ。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、２０１５年３月３１日に出願された米国仮出願第６２／１４１，０９５号の利益を主張する。
【０００２】
[0002]本開示は、２次元（２Ｄ）および３次元（３Ｄ）画像のグラフィックス処理に関する。
【背景技術】
【０００３】
[0003]グラフィックス処理ユニット（ＧＰＵ：graphics processing unit）は、２Ｄならびに３Ｄ画像をレンダリングするために使用される特殊なハードウェアユニットである。ソフトウェアアプリケーションは、２Ｄグラフィックス動作ならびに３Ｄグラフィックス動作の混合を呼び出し（invoke a mixture of）得る。したがって、ＧＰＵは、２Ｄグラフィックスおよび３Ｄグラフィックスを処理し、レンダリングするために別個のグラフィックスハードウェアを含む必要があり得る。
【発明の概要】
【０００４】
[0004]概して、本開示の態様は、３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理を実行すること、ならびに２Ｄグラフィックスパイプラインに従って２Ｄグラフィックス処理を実行することを行うように構成されたＧＰＵを対象とする。ＧＰＵは、３Ｄグラフィックスパイプラインに従ってグラフィックス処理を実行するために使用され得る３Ｄハードウェアユニットのセットを含み得る。３Ｄハードウェアユニットのセットは、シェーダプロセッサ（shader processors）、テクスチャプロセッサ（texture processors）、キャッシュなどを含み得る。ＧＰＵは、２Ｄグラフィックスパイプラインに従って２Ｄグラフィックス処理をも実行するために、専用２Ｄグラフィックスハードウェアユニットのセットとともにそれらの３Ｄハードウェアユニットのサブセットを利用し得る。２Ｄハードウェアユニットのセットは、ダイレクトメモリアクセス（ＤＭＡ）転送を実行するための回路、メモリへの読取りおよび書込みを制御するためのハードウェアユニットなどを含み得る。３Ｄハードウェアユニットのサブセットと一緒に専用２Ｄグラフィックスハードウェアユニットのセットを利用することによって、ＧＰＵは、２Ｄグラフィックス処理の性能を増加させ得、さらに、特殊な２Ｄハードウェアユニットに専用であるＧＰＵの物理的エリアを最小限に抑えながら、２Ｄグラフィックス処理実行中に電力消費を減少させ得る。
【０００５】
[0005]一態様では、本開示は、グラフィックス処理のための方法を対象とする。本方法は、グラフィックス処理ユニット（ＧＰＵ）によって、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行することを含み得る。本方法は、ＧＰＵによって、３Ｄグラフィックス処理を実行する際に使用されないＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、ＧＰＵの第１の複数のグラフィックス処理モジュールのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行することをさらに含み得る。
【０００６】
[0006]別の態様では、本開示はデバイスを対象とする。本デバイスはメモリを含み得る。本デバイスは、第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット（ＧＰＵ）をさらに含み得、ここにおいて、ＧＰＵは、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、ＧＰＵは、ＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して２次元（２Ｄ）グラフィックス動作を実行するようにさらに構成される。
【０００７】
[0007]別の態様では、本開示は、グラフィックス処理のための装置を対象とする。本装置は、第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するための手段を含み得る。本装置は、３Ｄグラフィックス処理を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行するための手段をさらに含み得る。
【０００８】
[0008]別の態様では、本開示はグラフィックス処理ユニット（ＧＰＵ）を対象とする。本ＧＰＵは、第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含み得、ここにおいて、ＧＰＵは、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、ＧＰＵは、ＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して２次元（２Ｄ）グラフィックス動作を実行するようにさらに構成される。
【０００９】
[0009]本開示の１つまたは複数の態様の詳細が添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]本開示の１つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図。
【図２】[0011]図１の例示的なプロセッサ、例示的なＧＰＵ、および例示的なシステムメモリの例示的な実装形態を示すブロック図。
【図３Ａ】[0012]図２のＧＰＵの動作モードをさらに詳細に示すブロック図。
【図３Ｂ】図２のＧＰＵの動作モードをさらに詳細に示すブロック図。
【図３Ｃ】図２のＧＰＵの動作モードをさらに詳細に示すブロック図。
【図３Ｄ】図２のＧＰＵの動作モードをさらに詳細に示すブロック図。
【図４】[0013]本開示の例に従って構成されたＧＰＵの例示的な動作を示すフローチャート。
【詳細な説明】
【００１１】
[0014]概して、本開示の態様は、３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理を実行すること、ならびに２Ｄグラフィックスパイプラインに従って２Ｄグラフィックス処理を実行することを行うように構成されたプロセッサ（たとえば、ＧＰＵ）を対象とする。ＧＰＵは、２Ｄグラフィックス処理を実行することに専用であるハードウェアモジュールと一緒に、３Ｄグラフィックス処理を実行するために使用されるハードウェアモジュールの一部分を使用して２Ｄグラフィックス処理を実行し得る。
【００１２】
[0015]３Ｄグラフィックス処理は、２Ｄ画像を生成するために幾何学的データの３Ｄ表現を処理することを含み得る。たとえば、ＧＰＵは、ＧＰＵが、３Ｄ画像の２Ｄ表現をレンダリングするためにステップのシーケンスを介して３Ｄ画像を表すプリミティブ（primitives）を処理し得る、３Ｄグラフィックスパイプラインを通して、三角形、線、点などのプリミティブによって表される３Ｄ画像を処理し得る。２Ｄグラフィックス処理は、線、長方形、または多角形などの２Ｄ幾何学的形状を描きレンダリングすること、ビットブロック転送（ｂｉｔＢＬＴ）として知られるプロセスにおいてあるビットマップから別のビットマップにピクセルのブロックをコピーすること、メモリ間で（たとえば、グラフィックスメモリおよびシステムメモリにならびに／またはそれらから）ピクセルのブロックを移動すること、ビットブロックのためのスケーリング動作、ビットブロックのためのブレンディング動作、ビットマップのピクセルのブロックに対する他の動作、ピクセルのブロックにデフォルト値を書き込むクリア動作（clear operations）など、１つまたは複数の２Ｄグラフィックス動作を実行することを含み得る。
【００１３】
[0016]ＧＰＵは、３Ｄグラフィックス処理を実行するためのハードウェアモジュールのセットならびに２Ｄグラフィックス動作を実行するためのハードウェアモジュールの別個のセットを含み得る。たとえば、ＧＰＵは、３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するためにのみ使用されるシェーダプロセッサ、テクスチャプロセッサなどのハードウェアモジュールを含み得る。ＧＰＵは、２Ｄグラフィックス処理を実行するためにのみ使用される専用２Ｄグラフィックスエンジンなどのハードウェアモジュールをも含み得る。このようにして、ＧＰＵは、２Ｄグラフィックス処理のために最適化された専用ハードウェア論理ならびに３Ｄグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことによって、２Ｄグラフィックス処理と３Ｄグラフィックス処理の両方を最適化し得る。
【００１４】
[0017]しかしながら、２Ｄグラフィックス処理のための最適化された専用ハードウェア論理ならびに３Ｄグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことは、ＧＰＵが、大量の物理的エリアを、別個の専用ハードウェアモジュールを収容するために専用することを必要とし得る。モバイルフォン、タブレットなど、モバイルデバイスでは、モバイルデバイスの物理的制約が、ＧＰＵが、２Ｄグラフィックス処理のために最適化された専用ハードウェア論理ならびに３Ｄグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことを非実用的なもの（impractical）にし得る。したがって、いくつかの例では、ＧＰＵは、２Ｄグラフィックス処理と３Ｄグラフィックス処理の両方を実行し得るハードウェアモジュールのセットを含み得る。たとえば、ＧＰＵは、３Ｄグラフィックスパイプラインを実行するようにも構成されたハードウェアモジュールを使用して２Ｄグラフィックスパイプラインを実行するように構成され得る。２Ｄグラフィックス処理と３Ｄグラフィックス処理の両方を実行し得るハードウェアモジュールのみを含むことによって、そのようなハードウェアモジュールはＧＰＵ上のより少ない物理的エリアを占め得る。
【００１５】
[0018]３Ｄグラフィックス処理を実行するようにも構成されたハードウェアモジュールを使用して２Ｄグラフィックス処理を実行することは、いくつかの場合には、２Ｄグラフィックス処理を実行するためにのみ使用される専用２Ｄグラフィックスエンジン上でそのような２Ｄグラフィックス処理を実行するよりも潜在的に比較的効率的でないことがある。さらに、３Ｄグラフィックス処理は２Ｄグラフィックス処理よりも計算量的に複雑であり得るので、３Ｄグラフィックス処理を実行するように構成されたハードウェアモジュールは、２Ｄグラフィックス処理を実行するように構成された専用ハードウェアモジュールよりも強力で複雑であり得る。したがって、３Ｄグラフィックス処理を実行するようにも構成されたハードウェアモジュールを使用して２Ｄグラフィックス処理を実行することはまた、２Ｄグラフィックス処理を実行するように構成された専用ハードウェアモジュール上でそのような２Ｄグラフィックス処理を実行するよりも多くの電力を消費し得る。
【００１６】
[0019]上記で説明された状況に鑑みて、本開示は、ＧＰＵが、電力消費、ならびに様々なハードウェアユニットによって占められる（taken up）ＧＰＵの物理的エリアの両方を最小限に抑えながら、より効率的に２Ｄグラフィックス処理を実行するためのデバイスおよび技法について説明する。本開示のいくつかの例では、ＧＰＵは、３Ｄグラフィックス処理を実行するように構成されたハードウェアモジュールの一部分、ならびに２Ｄグラフィックス処理を実行するように構成された専用ハードウェアモジュールの組合せを使用して２Ｄグラフィックス処理を実行し得る。実行されるべき２Ｄグラフィックス動作に応じて、ＧＰＵは、２Ｄグラフィックス動作を実行するために、３Ｄグラフィックス処理を実行するように構成されたハードウェアモジュールの異なる一部を使用し得る。特定の２Ｄグラフィックス動作を実行しながら、ＧＰＵはまた、指定された２Ｄグラフィックス動作を実行するために使用されない３Ｄグラフィックス処理を実行するように構成されたハードウェアモジュールの一部をクロックゲートする（clock gate）か、またはオフにし（turn off）得る。
【００１７】
[0020]本開示の態様によれば、ＧＰＵは、第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含み得る。ＧＰＵは、第１の複数のグラフィックス処理ハードウェアユニットを使用して３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され得る。ＧＰＵは、３Ｄグラフィックス処理を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２Ｄグラフィックス動作を実行するようにさらに構成され得る。
【００１８】
[0021]図１は、本開示の１つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図である。図１に示されているように、コンピューティングデバイス２は、限定はしないが、ビデオデバイス、メディアプレーヤ、セットトップボックス、携帯電話およびいわゆるスマートフォンなどのワイヤレスハンドセット、携帯情報端末（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、タブレットコンピューティングデバイスなどを含むコンピューティングデバイスであり得る。図１の例では、コンピューティングデバイス２は、中央処理ユニット（ＣＰＵ）６と、システムメモリ１０と、ＧＰＵ１２とを含み得る。コンピューティングデバイス２はまた、ディスプレイプロセッサ１４と、トランシーバモジュール３と、ユーザインターフェース４と、ディスプレイ８とを含み得る。トランシーバモジュール３とディスプレイプロセッサ１４とは両方とも、ＣＰＵ６および／またはＧＰＵ１２と同じ集積回路（ＩＣ）の一部であり得るか、両方ともＣＰＵ６および／またはＧＰＵ１２を含む１つまたは複数のＩＣの外部にあり得るか、あるいはＣＰＵ６および／またはＧＰＵ１２を含むＩＣの外部にあるＩＣ中に形成され得る。
【００１９】
[0022]コンピューティングデバイス２は、明快のために図１に示されていない追加のモジュールまたはユニットを含み得る。たとえば、コンピューティングデバイス２は、コンピューティングデバイス２がモバイルワイヤレス電話である例において電話通信を実現するために、そのいずれも図１に示されていないスピーカーおよびマイクロフォンを含み、またはコンピューティングデバイス２がメディアプレーヤである例においてスピーカーを含み得る。コンピューティングデバイス２はまた、ビデオカメラを含み得る。さらに、コンピューティングデバイス２に示されている様々なモジュールおよびユニットは、コンピューティングデバイス２のあらゆる例において必要であるとは限らない。たとえば、ユーザインターフェース４およびディスプレイ８は、コンピューティングデバイス２が、デスクトップコンピュータ、あるいは外部ユーザインターフェースまたはディスプレイとインターフェースをとるように装備された他のデバイスである例において、コンピューティングデバイス２の外部にあり得る。
【００２０】
[0023]ユーザインターフェース４の例としては、限定はしないが、トラックボール、マウス、キーボード、および他のタイプの入力デバイスがある。ユーザインターフェース４はまた、タッチスクリーンであり得、ディスプレイ８の一部として組み込まれ得る。トランシーバモジュール３は、ネットワーク上でコンピューティングデバイス２と別のデバイスとの間のワイヤレスまたはワイヤード通信を可能にするための回路を含み得る。トランシーバモジュール３は、ワイヤードまたはワイヤレス通信のための変調器、復調器、増幅器および他のそのような回路を含み得る。
【００２１】
[0024]ＣＰＵ６は、実行のためのコンピュータプログラムの命令を処理するように構成された中央処理ユニット（ＣＰＵ）など、マイクロプロセッサであり得る。ＣＰＵ６は、コンピューティングデバイス２の動作を制御する汎用プロセッサまたは専用プロセッサを備え得る。ユーザは、ＣＰＵ６に１つまたは複数のソフトウェアアプリケーションを実行させるためにコンピューティングデバイス２に入力を与え得る。ＣＰＵ６上で実行するソフトウェアアプリケーションは、たとえば、オペレーティングシステム、ワードプロセッサ・アプリケーション、電子メールアプリケーション、スプレッドシート・アプリケーション、メディアプレーヤ・アプリケーション、ビデオゲーム・アプリケーション、グラフィカル・ユーザインターフェース・アプリケーション、または別のプログラムを含み得る。さらに、ＣＰＵ６は、ＧＰＵ１２の動作を制御するためのＧＰＵドライバ２２を実行し得る。ユーザは、ユーザインターフェース４を介してコンピューティングデバイス２に結合されたキーボード、マウス、マイクロフォン、タッチパッド、または別の入力デバイスなどの１つまたは複数の入力デバイス（図示せず）を介して、コンピューティングデバイス２に入力を与え得る。
【００２２】
[0025]ＣＰＵ６上で実行するソフトウェアアプリケーションは、ディスプレイ８へのグラフィックスデータのレンダリングを行わせるようにＧＰＵ１２に命令する１つまたは複数のグラフィックスレンダリング命令を含み得る。命令は、３Ｄグラフィックスを処理するための命令、ならびに２Ｄグラフィックスを処理するための命令を含み得る。いくつかの例では、ソフトウェア命令は、たとえば、オープングラフィックスライブラリ（ＯｐｅｎＧＬ：Open Graphics Library（商標登録））アプリケーション・プログラミング・インターフェース（ＡＰＩ）、オープングラフィックスライブラリ組込みシステムズ（ＯｐｅｎＧＬ  ＥＳ：Open Graphics Library Embedded Systems）ＡＰＩ、Ｄｉｒｅｃｔ３Ｄ  ＡＰＩ、Ｘ３Ｄ  ＡＰＩ、ＲｅｎｄｅｒＭａｎ  ＡＰＩ、ＷｅｂＧＬ  ＡＰＩ、オープンコンピューティング言語（ＯｐｅｎＣＬ（商標登録））あるいは任意の他の公開またはプロプライエタリ規格ＧＰＵ計算ＡＰＩ（GPU compute API）など、グラフィックスＡＰＩに準拠し得る。グラフィックスレンダリング命令を処理するために、ＣＰＵ６は、ＧＰＵ１２にグラフィックスデータのレンダリングの一部または全部を実行させるために、１つまたは複数のグラフィックスレンダリングコマンドをＧＰＵ１２に（たとえば、ＧＰＵドライバ２２を通して）発行し得る。いくつかの例では、レンダリングされるべきグラフィックスデータは、グラフィックスプリミティブ（graphics primitives）のリスト、たとえば、点、線、三角形、四角形、三角形ストリップ（triangle strips）などを含み得る。
【００２３】
[0026]ＧＰＵ１２は、１つまたは複数のグラフィックスプリミティブをディスプレイ８にレンダリングするためにグラフィックス動作を実行するように構成され得る。したがって、ＣＰＵ６上で実行しているソフトウェアアプリケーションのうちの１つがグラフィックス処理を必要とするとき、ＣＰＵ６は、ディスプレイ８にレンダリングするためのグラフィックスコマンドおよびグラフィックスデータをＧＰＵ１２に与え得る。グラフィックスデータは、たとえば、描画コマンド、状態情報、プリミティブ情報、テクスチャ情報などを含み得る。ＧＰＵ１２は、いくつかの事例では、複雑なグラフィック関係動作の、ＣＰＵ６よりも効率的な処理を行う高度並列構造を用いて構築され（built with）得る。たとえば、ＧＰＵ１２は、複数の頂点（vertices）またはピクセル上で並列様式で動作するように構成された、シェーダユニットなど、複数の処理要素を含み得る。ＧＰＵ１２の高度並列性質（highly parallel nature）は、いくつかの事例では、ＣＰＵ６を使用して直接ディスプレイ８にシーンを描画するよりも速く、ＧＰＵ１２が、グラフィックス画像（たとえば、ＧＵＩ、ならびに２次元（２Ｄ）および／または３次元（３Ｄ）グラフィックスシーン）をディスプレイ８上に描画することを可能にし得る。
【００２４】
[0027]ＧＰＵ１２は、いくつかの事例では、コンピューティングデバイス２のマザーボードに組み込まれ得る。他の事例では、ＧＰＵ１２は、コンピューティングデバイス２のマザーボード中のポート中に設置されたグラフィックスカード上に存在し得るか、または場合によっては、コンピューティングデバイス２と相互動作するように構成された周辺デバイス内に組み込まれ得る。いくつかの例では、ＧＰＵ１２は、システムオンチップ（ＳＯＣ）などにおいて、ＣＰＵ６とともにオンチップであり得る。ＧＰＵ１２は、１つまたは複数のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、あるいは他の等価な集積またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得る。ＧＰＵ１２はまた、１つまたは複数のプロセッサコアを含み得、したがって、ＧＰＵ１２はマルチコアプロセッサと呼ばれることがある。
【００２５】
[0028]いくつかの例では、グラフィックスメモリ４０はＧＰＵ１２の一部であり得る。したがって、ＧＰＵ１２は、バスを使用することなしに、グラフィックスメモリ４０からデータを読み取り、グラフィックスメモリ４０にデータを書き込み得る。言い換えれば、ＧＰＵ１２は、オフチップメモリの代わりに、ローカルストレージを使用してデータをローカルに処理し得る。そのようなグラフィックスメモリ４０は、オンチップメモリと呼ばれることがある。これは、ＧＰＵ１２が、大量のバストラフィックおよび帯域幅のための関連する競合を経験し得る、バスを介したデータの読取りおよび書込みを行う必要をなくすことによって、ＧＰＵ１２がより効率的な様式で動作することを可能にする。しかしながら、いくつかの事例では、ＧＰＵ１２は、別個のメモリを含まず、代わりにバスを介してシステムメモリ１０を利用し得る。グラフィックスメモリ４０は、たとえば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気データ媒体または光記憶媒体など、１つまたは複数の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
【００２６】
[0029]いくつかの例では、ＧＰＵ１２は、十分に形成された画像をシステムメモリ１０に記憶し得る。ディスプレイプロセッサ１４は、システムメモリ１０および／または出力バッファ１６から画像を取り出し、ディスプレイ８のピクセルに、画像を表示するために点灯（illuminate）させる値を出力し得る。ディスプレイ８は、ＧＰＵ１２によって生成された画像コンテンツを表示するコンピューティングデバイス２のディスプレイであり得る。ディスプレイ８は、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオードディスプレイ（ＯＬＥＤ）、陰極線管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスであり得る。
【００２７】
[0030]本開示の態様によれば、ＧＰＵ１２は、第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含み得る。ＧＰＵ１２は、第１の複数のグラフィックス処理ハードウェアユニットを使用して３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され得る。ＧＰＵ１２は、３Ｄグラフィックス処理を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、ＧＰＵ１２の第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２Ｄグラフィックス動作を実行するようにさらに構成され得る。
【００２８】
[0031]図２は、図１のＣＰＵ６、ＧＰＵ１２、およびシステムメモリ１０の例示的な実装形態を示すブロック図である。図２に示されているように、ＣＰＵ６は、少なくとも１つのソフトウェアアプリケーション１８とＧＰＵドライバ２２とを実行し得、それらの各々は１つまたは複数のソフトウェアアプリケーションまたはサービスであり得る。
【００２９】
[0032]ＣＰＵ６およびＧＰＵ１２にとって利用可能なメモリは、システムメモリ１０と出力バッファ１６とを含み得る。出力バッファ１６はシステムメモリ１０の一部であり得るか、またはシステムメモリ１０とは別個であり得る。出力バッファ１６は、ピクセルデータなど、レンダリングされた画像データ、ならびに他のデータを記憶し得る。出力バッファ１６はフレームバッファと呼ばれることもある。
【００３０】
[0033]グラフィックスメモリ４０は、ＧＰＵ１２の集積回路チップに物理的に組み込まれたオンチップストレージまたはメモリを含み得る。グラフィックスメモリ４０がオンチップである場合、ＧＰＵ１２は、システムバスを介してシステムメモリ１０から値を読み取るかまたはシステムメモリ１０に値を書き込むよりも速く、グラフィックスメモリ４０から値を読み取るかまたはグラフィックスメモリ４０に値を書き込むことが可能であり得る。
【００３１】
[0034]出力バッファ１６は、ＧＰＵ１２のための宛先ピクセルを記憶する。各宛先ピクセルは、一意のスクリーンピクセルロケーションに関連付けられ得る。いくつかの例では、出力バッファ１６は、各宛先ピクセルについての色成分と宛先アルファ値とを記憶し得る。たとえば、出力バッファ１６は、各ピクセルについての赤、緑、青、アルファ（ＲＧＢＡ）成分を記憶し得、ここで、「ＲＧＢ」成分は色値に対応し、「Ａ」成分は宛先アルファ値（たとえば、画像合成のための不透明度値（opacity value））に対応する。出力バッファ１６とシステムメモリ１０とが別個のメモリユニットであるものとして示されているが、他の例では、出力バッファ１６はシステムメモリ１０の一部であり得る。さらに、出力バッファ１６はまた、ピクセル以外の好適なデータを記憶することが可能であり得る。
【００３２】
[0035]ソフトウェアアプリケーション１８は、ＧＰＵ１２の機能を利用する任意のアプリケーションであり得る。たとえば、ソフトウェアアプリケーション１８は、ＧＵＩアプリケーション、オペレーティングシステム、ポータブルマッピング・アプリケーション、エンジニアリングまたは芸術アプリケーションのためのコンピュータ支援設計プログラム、ビデオゲーム・アプリケーション、あるいは２Ｄまたは３Ｄグラフィックスを使用する別のタイプのソフトウェアアプリケーションであり得る。
【００３３】
[0036]ソフトウェアアプリケーション１８は、グラフィカルユーザインターフェース（ＧＵＩ）および／またはグラフィックスシーンをレンダリングするようにＧＰＵ１２に命令する１つまたは複数の描画命令を含み得る。たとえば、描画命令は、ＧＰＵ１２によってレンダリングされるべき１つまたは複数のグラフィックスプリミティブのセットを定義する命令を含み得る。いくつかの例では、描画命令は、ＧＵＩにおいて使用される複数のウィンドウ処理表面（windowing surfaces）の全部または一部をまとめて定義し得る。さらなる例では、描画命令は、アプリケーションによって定義されるモデル空間または世界空間内に１つまたは複数のグラフィックスオブジェクトを含むグラフィックスシーンの全部または一部をまとめて定義し得る。
【００３４】
[0037]ソフトウェアアプリケーション１８は、１つまたは複数のグラフィックスプリミティブを表示可能なグラフィックス画像にレンダリングするための１つまたは複数のコマンドをＧＰＵ１２に発行するために、ＧＰＵドライバ２２を呼び出し得る。たとえば、ソフトウェアアプリケーション１８は、プリミティブ定義をＧＰＵ１２に与えるためにＧＰＵドライバ２２を呼び出し得る。いくつかの事例では、プリミティブ定義は、たとえば、三角形、長方形、三角形ファン（triangle fans）、三角形ストリップなどの描画プリミティブのリストの形式でＧＰＵ１２に与えられ得る。プリミティブ定義は、レンダリングされるべきプリミティブに関連付けられた１つまたは複数の頂点を指定する頂点仕様（vertex specifications）を含み得る。頂点仕様は、各頂点についての位置座標を含み、いくつかの事例では、たとえば、色属性、法線ベクトル（normal vectors）、およびテクスチャ座標など、頂点に関連付けられた他の属性を含み得る。プリミティブ定義はまた、プリミティブタイプ情報（たとえば、三角形、長方形、三角形ファン、三角形ストリップなど）、スケーリング情報、回転情報などを含み得る。
【００３５】
[0038]ＧＰＵドライバ２２は、ドライバプログラミングのために低オーバーヘッド２Ｄグラフィックスコマンドを与え得る。ＧＰＵドライバ２２はまた、ソフトウェアレベルにおける２Ｄおよび３Ｄグラフィックス動作同期のためのより少ないポーリングおよび待機に対してライトな（light）２Ｄおよび３Ｄグラフィックス動作同期機構を与え得る。
【００３６】
[0039]ソフトウェアアプリケーション１８によってＧＰＵドライバ２２に発行された命令に基づいて、ＧＰＵドライバ２２は、プリミティブをレンダリングするためにＧＰＵ１２が実行すべき１つまたは複数の動作を指定する１つまたは複数のコマンドを構築し（formulate）得る。ＧＰＵ１２がＣＰＵ６からコマンドを受信したとき、ＧＰＵ１２は、コマンドを復号し、コマンド中で指定された動作を実行するように３Ｄグラフィックス処理パイプラインを構成するために、プロセッサクラスタ４６と３Ｄグラフィックスハードウェアユニット２９とを使用して３Ｄグラフィックス処理パイプラインを実行し得る。たとえば、３Ｄグラフィックス処理パイプライン中の入力アセンブラが、プリミティブデータを読み取り、３Ｄグラフィックス処理パイプライン中の他の３Ｄグラフィックスパイプラインステージによる使用のためにそのデータをプリミティブにアセンブルし得る。指定された動作を実行した後に、３Ｄグラフィックス処理パイプラインは、レンダリングされたデータを、ディスプレイデバイスに関連付けられた出力バッファ１６に出力する。いくつかの例では、３Ｄグラフィックス処理パイプラインは固定機能論理を含み、および／またはプログラマブルシェーダコア上で実行され得る。
【００３７】
[0040]いくつかの例では、３Ｄグラフィックス処理パイプラインは、頂点シェーダステージ、ハルシェーダステージ（a hull shader stage）、ドメインシェーダステージ、ジオメトリシェーダステージ、およびピクセルシェーダステージのうちの１つまたは複数を含み得る。３Ｄグラフィックス処理パイプラインのこれらのステージはシェーダステージと見なされ得る。これらのシェーダステージは、ＧＰＵ１２中のプロセッサクラスタ４６上で実行する１つまたは複数のシェーダプログラムとして実装され得る。
【００３８】
[0041]プロセッサクラスタ４６は、１つまたは複数のプログラマブル処理ユニットおよび／または１つまたは複数の固定機能処理ユニットを含み得る。プログラマブル処理ユニットは、たとえば、ＣＰＵ６からＧＰＵ１２上にダウンロードされた１つまたは複数のシェーダプログラムを実行するように構成されたプログラマブルシェーダユニットを含み得る。いくつかの例では、プログラマブルシェーダユニットは、「シェーダプロセッサ」または「ユニファイドシェーダ（unified shaders）」と呼ばれることがあり、グラフィックスをレンダリングするためにジオメトリ、頂点、ピクセル、または他のシェーディング動作を実行し得る。シェーダユニットはそれぞれ、フェッチおよび復号動作のための１つまたは複数の構成要素と、算術計算を行うための１つまたは複数のＡＬＵと、１つまたは複数のメモリと、キャッシュと、レジスタとを含み得る。
【００３９】
[0042]シェーダプログラムは、いくつかの例では、ＯｐｅｎＧＬシェーディング言語（ＧＬＳＬ）、高レベルシェーディング言語（ＨＬＳＬ）、グラフィックスのためのＣ（Ｃｇ）シェーディング言語など、高レベルシェーディング言語で書き込まれたプログラムのコンパイルされたバージョンであり得る。いくつかの例では、プログラマブルシェーダユニットは、並列に動作するように構成された複数の処理ユニット、たとえば、ＳＩＭＤパイプラインを含み得る。プログラマブルシェーダユニットは、シェーダプログラム命令を記憶するプログラムメモリと、実行状態レジスタ、たとえば、実行されているプログラムメモリ中の現在の命令またはフェッチされるべき次の命令を示すプログラムカウンタレジスタとを有し得る。プロセッサクラスタ４６中のプログラマブルシェーダユニットは、たとえば、頂点シェーダユニット、ピクセルシェーダユニット、ジオメトリシェーダユニット、ハルシェーダユニット（hull shader units）、ドメインシェーダユニット、計算シェーダユニット、および／またはユニファイドシェーダユニットを含み得る。
【００４０】
[0043]ＧＰＵ１２は、グラフィックス処理パイプライン中の頂点シェーダステージ、ハルシェーダステージ、ドメインシェーダステージ、ジオメトリシェーダステージ、およびピクセルシェーダステージのうちの１つまたは複数を実行するためのコマンドをプログラマブルシェーダユニットに送ることによって、頂点シェーディング、ハルシェーディング、ドメインシェーディング、ジオメトリシェーディング、ピクセルシェーディングなどの様々なシェーディング動作を実行するようにプログラマブルシェーダユニットを指定し得る。いくつかの例では、ＧＰＵドライバ２２は、ＣＰＵ６上で実行しているコンパイラに、１つまたは複数のシェーダプログラムをコンパイルさせ、コンパイルされたシェーダプログラムを、ＧＰＵ１２内に含まれているプログラマブルシェーダユニット上にダウンロードさせ得る。
【００４１】
[0044]固定機能処理ユニットは、いくつかの機能を実行するためにハード・ワイヤードの（hard-wired）ハードウェアを含み得る。固定機能ハードウェアは、１つまたは複数の制御信号を介して、たとえば、異なる機能を実行するように構成可能であり得るが、固定機能ハードウェアは、一般に、ユーザによってコンパイルされたプログラムを受信することが可能であるプログラムメモリを含まない。いくつかの例では、プロセッサクラスタ４６中の固定機能処理ユニットは、たとえば、深度テスト、シザーテスト（scissors testing）、アルファブレンディング（alpha blending）など、ラスタ動作（raster operations）を実行する、たとえば、処理ユニットを含み得る。
【００４２】
[0045]３Ｄグラフィックスハードウェアユニット２９は、３Ｄグラフィックスパイプラインを通して３Ｄグラフィカルオブジェクトをレンダリングするための３Ｄグラフィックス動作を処理するために、プロセッサクラスタ４６による３Ｄグラフィックスパイプラインの実行を介して３Ｄ処理をサポートするように構成された追加のハードウェアユニットを含み得る。たとえば、３Ｄグラフィックスハードウェアユニット２９は、メモリアービトレーションブロック（memory arbitration blocks）、キャッシュ、レジスタ、プロセッサクラスタ４６を制御するためのハードウェアなどを含み得る。
【００４３】
[0046]ソフトウェアアプリケーション１８によってＧＰＵドライバ２２に発行された命令に基づいて、ＧＰＵドライバ２２は、ＧＰＵ１２が実行すべき１つまたは複数の２Ｄグラフィックス動作を指定する１つまたは複数のコマンドをも構築し（formulate）得る。ソフトウェアアプリケーション１８は、ビットマップなど、２Ｄ平面上に線、長方形、多角形などの幾何学的形状をレンダリングするために、またはある平面から別の平面にピクセルをコピーするために、２Ｄグラフィックス動作を実行するための１つまたは複数のコマンドをＧＰＵ１２に発行するために、ＧＰＵドライバ２２を呼び出し得る。２Ｄグラフィックス中の描画は、描画中のジオメトリを定義するために使用される、パス（paths）から構成され得る。パスは、描画表面上のペンまたはペイントブラシ（paint brush）の持続時間を定義し、ストロークされ（stroked）（すなわち、線を用いてパスの形状の輪郭を定義し）、および／または充填され（filled）得る（すなわち、形状の内部に色、グラディエント、および／またはテクスチャを適用する）。ビットマップは、属性を有し得るピクセルを表し得る。基本的な２Ｄグラフィックスのための属性は、各ピクセルについて、色値およびソースバッファのための座標のペアを含み得る。
【００４４】
[0047]１つの一般的な２Ｄグラフィックス動作は、ビットブロック転送（ｂｉｔＢＬＴ）機能であり、それは、システムメモリ１０からグラフィックスメモリ４０への、グラフィックスメモリから出力バッファ１６への、システムメモリ１０中のメモリロケーションの第１のブロックからシステムメモリ１０中のメモリロケーションの第２のブロックへのなどの、ソースメモリロケーションから宛先メモリロケーションへのピクセルデータの長方形ブロックの転送など、ソースデバイスコンテキストから宛先デバイスコンテキストへのビット（たとえば、色データ、ピクセルデータなど）のブロック転送を実行する機能である。たとえば、ＧＰＵ１２は、ディスプレイ８による表示のために、システムメモリ１０またはグラフィックスメモリ４０から出力バッファ１６に画像または表面を表すビットのブロックを転送するためにｂｉｔＢＬＴ機能を実行し得る。
【００４５】
[0048]ＢｉｔＢＬＴ機能は、時々、データブロック転送だけでなく、データに対して実行される動作をも伴い得る。たとえば、データブロックがあるメモリロケーションから別のメモリロケーションに転送されている間、ＧＰＵ１２はそのデータブロックに透過動作（transparency operation）を適用し得る。ラスタ動作（ＲＯＰ）、スケーリングおよびフィルタ処理動作、縮小動作（shrinking operations）、アルファブレンディング動作、および色変換動作など、他の動作が、ＧＰＵ１２に発行されたコマンドに応じて、同様に実行され得る。ＧＰＵ１２は、ｂｉｔＢＬＴ動作を実行しながら、これらの動作の任意の組合せを実行し得る。
【００４６】
[0049]たとえば、ソフトウェアアプリケーション１８は、ピクセルのブロックを転送するためにｂｉｔＢＬＴ機能をコールし得る。ソフトウェアアプリケーション１８は、転送されるべきビットのソースブロックと、ビットの宛先ブロックと、ビットのブロックに対して実行されるべき１つまたは複数のラスタ動作とを示し得る。たとえば、１つまたは複数のラスタ動作は、ビットのソースブロックの色データが、それの最終色を実現するために宛先長方形のためのビットの宛先ブロックの色データとどのように組み合わせられるべきであるかを示し得る。ＧＰＵドライバ２２は、次に、ＧＰＵ１２に、指定されたｂｉｔＢＬＴ機能を実行するためのコマンドを発行し得る。
【００４７】
[0050]ＧＰＵ１２は、専用２Ｄグラフィックスハードウェアモジュールと一緒に３Ｄパイプラインに従って３Ｄ動作を実行するために使用されるＧＰＵ１２のハードウェアモジュールの組合せを使用して２Ｄグラフィックス動作を実行し得る。たとえば、ＧＰＵ１２は、ｂｉｔＢＬＴ動作のデータブロック転送を実行するために、専用２Ｄグラフィックスハードウェア論理を含む、２Ｄグラフィックスハードウェアユニット２８を使用し得、データブロックに対するラスタ動作、スケーリング動作、ブレンディング動作、および／または色変換動作を実行するために、プロセッサクラスタ４６のプログラマブル処理ユニット２４および固定機能処理ユニット２６のうちの１つまたは複数を使用し得る。
【００４８】
[0051]ＧＰＵ１２が、３Ｄ動作を実行するために使用されるＧＰＵ１２中のハードウェアモジュールの一部分（すなわち、すべてよりも少ない）を使用して２Ｄグラフィックス動作を実行する場合、ＧＰＵ１２は、電力使用量を減少させるために、２Ｄグラフィックス動作を実行するために使用されないＧＰＵ１２中のハードウェアモジュールをパワーダウン（power down）またはクロックゲートし得る。ＧＰＵドライバ２２は、２Ｄグラフィックス動作を呼び出すためにソフトウェアアプリケーション１８によってコールされた２Ｄグラフィックス機能に基づいて、そのＧＰＵ１２が、２Ｄグラフィックス動作を実行するために３Ｄグラフィックスハードウェアユニット２９およびプロセッサクラスタ４６のどの部分を使用し得るか、ならびにそのＧＰＵ１２が、呼び出された２Ｄグラフィックス動作を実行するために３Ｄグラフィックスハードウェアユニット２９およびプロセッサクラスタ４６のどの部分を使用せず、したがって、どの部分が電源切断（power off）またはクロックゲートされ得るかを決定し得る。
【００４９】
[0052]たとえば、ソフトウェアアプリケーション１８が、透過動作、ラスタ動作、スケーリング動作、縮小動作、アルファブレンディング動作、色変換動作などの、動作をもビットブロックに適用する、ビットブロックを転送するためのｂｉｔＢＬＴ動作を呼び出す場合、ＧＰＵドライバ２２は、ソフトウェアアプリケーション１８によって発行された２Ｄグラフィックス動作に少なくとも部分的に基づいて、およびより詳細には、ビットブロックに適用されるべき動作に少なくとも部分的に基づいて、ＧＰＵ１２の複数の動作モードの中からＧＰＵ１２の動作モードを決定し得る。
【００５０】
[0053]ＧＰＵ１２の動作モードの各々について、ＧＰＵドライバ２２は、３Ｄグラフィックス処理を実行するためにＧＰＵ１２によって使用されるハードウェアの一部分（すなわち、３Ｄグラフィックスハードウェアユニット２９およびプロセッサクラスタ４６の一部）を有効にするようにＧＰＵ１２に指示し得、したがって、ＧＰＵ１２は、２Ｄグラフィックス動作を実行するために２Ｄグラフィックスハードウェアユニット２８と一緒にハードウェアのその部分を使用し得る。ＧＰＵドライバ２２はまた、２Ｄグラフィックス動作を実行するためにＧＰＵによって使用されない、３Ｄグラフィックス処理を実行するためにＧＰＵ１２によって使用されるハードウェアの一部分を無効に（すなわち、電源切断またはクロックゲート）し得る。たとえば、ある動作モードでは、ＧＰＵドライバ２２は、ＧＰＵ１２に、２Ｄグラフィックス動作を実行するために固定機能処理ユニット２６を有効にさせ得るが、ＧＰＵ１２が２Ｄグラフィックス動作を実行するためにプログラマブル処理ユニット２４を使用しないので、ＧＰＵ１２にプログラマブル処理ユニット２４を電源切断させ得る。
【００５１】
[0054]ＧＰＵドライバ２２は、ソフトウェアアプリケーション１８によってＧＰＵドライバ２２に発行された命令に基づいて、ＧＰＵ１２による実行のための動作のセットを定義するコマンドストリームを生成し得る。ＧＰＵドライバ２２は、閲覧可能コンテンツ（viewable content）をディスプレイ８上に表示させる、ＧＰＵ１２によって実行されるべきコマンドストリームを生成し得る。たとえば、ＧＰＵドライバ２２は、ディスプレイ８における表示のために出力バッファ１６に記憶され得るグラフィックスデータをレンダリングするための命令をＧＰＵ１２に対して与えるコマンドストリームを生成し得る。この例では、ＧＰＵドライバ２２は、ＧＰＵ１２によって実行されるコマンドストリームを生成し得る。
【００５２】
[0055]ＧＰＵ１２は、ＧＰＵドライバ２２からコマンドストリームを受信し得るコマンドプロセッサ３０を含み得る。コマンドプロセッサ３０は、１つまたは複数のコマンドストリームを受信および処理するように構成されたハードウェアおよびソフトウェアの任意の組合せであり得る。したがって、コマンドプロセッサ３０はストリームプロセッサである。いくつかの例では、コマンドプロセッサ３０の代わりに、他の好適なストリームプロセッサが、１つまたは複数のコマンドストリームを受信および処理するために、および本明細書で開示される技法を実行するために、コマンドプロセッサ３０の代わりに使用可能であり得る。一例では、コマンドプロセッサ３０はハードウェアプロセッサであり得る。図２に示されている例では、コマンドプロセッサ３０はＧＰＵ１２中に含まれ得る。他の例では、コマンドプロセッサ３０は、ＣＰＵ６およびＧＰＵ１２とは別個であるユニットであり得る。コマンドプロセッサ３０はまた、それがコマンドおよび／または動作のストリームを受信するように構成された任意のプロセッサであり得ることを示すために、ストリームプロセッサ、コマンド／ストリームプロセッサなどとして知られ得る。
【００５３】
[0056]コマンドプロセッサ３０は、ＧＰＵ１２による実行のために１つまたは複数のコマンドストリーム中に含まれる動作をスケジュールすることを含む、１つまたは複数のコマンドストリームを処理し得る。詳細には、コマンドプロセッサ３０は、１つまたは複数のコマンドストリームを処理し、プロセッサクラスタ４６による実行のために１つまたは複数のコマンドストリーム中の動作をスケジュールし得る。動作中、ＧＰＵドライバ２２は、コマンドプロセッサ３０に、ＧＰＵ１２によって実行されるべき一連の動作を備えるコマンドストリームを送り得る。コマンドプロセッサ３０は、コマンドストリームを備える動作のストリームを受信し得、コマンドストリーム中の動作の順序に基づいてコマンドストリームの動作を連続的に処理し得、２Ｄグラフィックスハードウェアユニット２８、３Ｄグラフィックスハードウェアユニット２９、プロセッサクラスタ４６のうちの１つまたは複数による実行のためにコマンドストリーム中の動作をスケジュールし得る。
【００５４】
[0057]上記で説明されたように、ソフトウェアアプリケーション１８は、２Ｄグラフィックス動作ならびに３Ｄグラフィックス動作の両方を実行するための命令を発行し得る。ＧＰＵドライバ２２は、２Ｄグラフィックス動作および３Ｄグラフィックス動作を呼び出すために、ソフトウェアアプリケーション１８に対して、ＧＰＵ１２への同じインターフェースを与え得、ＧＰＵドライバ２２は、２Ｄグラフィックス動作ならびに３Ｄグラフィックス動作の両方を含むコマンドストリームを生成し得る。一例では、ＧＰＵドライバ２２は、第１のコマンドストリームが２Ｄグラフィックス動作のみを含み得、第２のコマンドストリームが３Ｄグラフィックス動作のみを含み得るように、２Ｄグラフィックス動作と３Ｄグラフィックス動作とを別個のコマンドストリームに分離し得る。別の例では、ＧＰＵドライバ２２は、２Ｄグラフィックス動作および３Ｄグラフィックス動作がソフトウェアアプリケーション１８によって呼び出された順序で、単一のコマンドストリーム中に２Ｄグラフィックス動作と３Ｄグラフィックス動作の両方を含め得る。
【００５５】
[0058]コマンドプロセッサ３０は、２Ｄグラフィックス動作を実行することと３Ｄグラフィックス動作を実行することとの間で切り替えることによって２Ｄグラフィックス動作と３Ｄグラフィックス動作の両方を処理することが可能であり得る。たとえば、ＧＰＵドライバ２２は、３Ｄグラフィックス動作を処理することから２Ｄグラフィックス動作を処理することに切り替えるようにコマンドプロセッサ３０に指示し得る。コマンドプロセッサ３０は、３Ｄグラフィックス動作を処理することから２Ｄグラフィックス動作を処理することに切り替えるためのコマンドをＧＰＵドライバ２２から受信したことに応答して、コンテキスト切替えを実行し得る。コマンドプロセッサ３０は３Ｄグラフィックス動作の処理を中断し得、３Ｄグラフィックス動作の処理を中断すると、２Ｄグラフィックス動作の処理を開始し得る。
【００５６】
[0059]コマンドプロセッサ３０は、ＧＰＵ１２中のコンテキストレジスタに３Ｄグラフィックス動作のコンテキスト情報を保存することを含む３Ｄグラフィックス動作のＧＰＵ１２の処理を中断し得る。たとえば、後の時点において、コマンドプロセッサ３０が３Ｄグラフィックス動作を処理することへの切替え復帰を実行するとき、コマンドプロセッサ３０が、３Ｄグラフィックスパイプラインを完全にフラッシュする（flush）必要なしに３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス動作の処理を再開するためにコンテキストレジスタ中に保存された構成情報を利用し得るように、コマンドプロセッサ３０は、色フォーマット、メモリアドレス、シェーダ命令、３Ｄグラフィックスパイプライン状態情報など、３Ｄグラフィックスパイプラインのための構成情報を保存し得る。たとえば、ＧＰＵ１２が、３Ｄグラフィックスパイプラインを完全にフラッシュすることなしに３Ｄグラフィックス動作の処理を再開し得るように、コマンドプロセッサ３０は、色フォーマット、メモリアドレス、シェーダ命令、３Ｄグラフィックスパイプライン構成情報などを復元し得る。同様に、コマンドプロセッサ３０は、ＧＰＵ１２中のコンテキストレジスタに２Ｄグラフィックス動作を処理するためのコンテキスト情報を保存し、３Ｄグラフィックス動作を処理するために切替えを実行することによって、２Ｄグラフィックス動作のＧＰＵ１２の処理を中断し得る。
【００５７】
[0060]コマンドプロセッサ３０は、上記で説明されたように切替えることを実行することによって、ＧＰＵ１２が、２Ｄおよび３Ｄグラフィックス動作がソフトウェアアプリケーション１８によって呼び出された順序でソフトウェアアプリケーション１８によって発行された２Ｄグラフィックス動作ならびに３Ｄグラフィックス動作を処理することを可能にし得る。コンテキストレジスタに構成情報を保存することによって、コマンドプロセッサ３０は、ＧＰＵ１２が２Ｄグラフィックス処理と３Ｄグラフィックス処理との間でシームレスに切り替えることを可能にし得る。
【００５８】
[0061]いくつかの例では、ＧＰＵ１２は、コンテキスト切替えを実行することなしに２Ｄグラフィックス動作を実行することと３Ｄグラフィックス動作を実行することとの間でスムーズに切り替えることが可能であり得る。ＧＰＵ１２は、別個の、２Ｄグラフィックス動作のための状態情報を記憶するための２Ｄ状態レジスタと、３Ｄグラフィックスパイプライン構成情報、色フォーマット、メモリアドレス、シェーダ命令など、３Ｄグラフィックス動作のための状態情報を記憶するための３Ｄ状態レジスタとを含み得る。２Ｄグラフィックス動作と３Ｄグラフィックス動作との間で切り替えるときに、ＧＰＵドライバ２２および／またはＧＰＵ１２は、ＧＰＵ１２が２Ｄグラフィックス動作を実行することと３Ｄグラフィックス動作を実行することとの間でスムーズに切り替えることが可能であり得るように、適切な状態レジスタに状態情報を保存し得る。したがって、２Ｄおよび３Ｄステージレジスタは、ＧＰＵ１２が、３Ｄグラフィックスパイプラインを完全にフラッシュすることなしに２Ｄグラフィックス処理と３Ｄグラフィックス処理との間でシームレスに切り替えることを可能にし得る。
【００５９】
[0062]図３Ａ〜図３Ｄは、ＧＰＵ１２の動作モードをさらに詳細に示すブロック図である。上記で説明されたように、ＧＰＵドライバ２２は、ソフトウェアアプリケーション１８によって呼び出されたグラフィックス動作に基づいて、ＧＰＵ１２のための複数の動作モードの中から動作モードを決定し得る。図３Ａ〜図３Ｄの各々は、ソフトウェアアプリケーション１８によって呼び出されたＧＰＵ１２が実行する動作に基づいてＧＰＵドライバ２２によって決定されるＧＰＵ１２のための１つの例示的な動作モードを示し得る。図３Ａ〜図３Ｄでは、例示的なグラフィックス動作を実行する際にパワーアップされ（powered up）、使用される構成要素は陰影を付けられ、パワーダウンおよび／またはクロックゲートされる構成要素は、それらが例示的なグラフィックス動作を実行する際に使用されないので陰影を付けられない。図３Ａに示されているように、ＧＰＵ１２は、ビットブロック転送動作ならびにメモリリゾルブおよびアンリゾルブ動作（memory resolve and unresolved operations）を実行するために第１のモードで動作し得る。
【００６０】
[0063]ＧＰＵ１２は、コマンドプロセッサ（ＣＰ）３０と、２Ｄ制御センター３２と、２Ｄ  ２Ｄラスタおよびタイル（tile）アドレス生成器（ＲＡＳ＿２Ｄ）３４と、３Ｄ制御センター３６と、３Ｄラスタユニット（ＲＡＳ＿３Ｄ）３８と、低解像度Ｚ（ＬＲＺ）ブロック３９と、プロセッサクラスタ４６と、データ組合せバッファ（data combine buffer）５６と、グラフィックスメモリ（ＧＭＥＭ）４０と、メモリアービトレーションブロック（ＭＡＲＢ）６０と、レベル２（Ｌ２）キャッシュ６２と、メモリバスインターフェース（バスＩ／Ｆ）６４とを含み得る。プロセッサクラスタ４６は複数のプロセッサを含み得、ここで、プロセッサクラスタ４６の各プロセッサは、シェーダプロセッサ（ＳＰ）５０と、テクスチャプロセッサ（ＴＰ）５２と、深度プロセッサ（ＺＰＲＯＣ）４４と、ピクセルサンプラー４５と、色プロセッサ（ＣＰＲＯＣ）４８と、ピクセルレベル１（Ｌ１）キャッシュ４２とを含む。
【００６１】
[0064]２Ｄ制御センター３２は、コマンドプロセッサ３０から２Ｄ描画コマンドを受信し得、ブロックごとにまたはクワッド（quad）ごとにソース読取り要求と宛先読取り要求とを生成し得る。２Ｄ制御センター３２はまた、ピクセルＬ１キャッシュ４２、オンチップグラフィックスメモリ４０、およびシステムメモリ１０との間でデータを読み取り、および書き込み得る。２Ｄ制御センター３２はまた、ピクセルＬ１キャッシュ４２および深度プロセッサ４４、ピクセルサンプラー４５、および色プロセッサ４８にグラフィカルデータのブロックまたはクワッド（たとえば、２ｘ２ピクセル）を分配し得、ピクセルＬ１キャッシュ４２および深度プロセッサ４４、ピクセルサンプラー４５、および色プロセッサ４８からのブロックまたはクワッド書込みを案内し得る。
【００６２】
[0065]３Ｄ制御センター３６は、コマンドプロセッサ３０から３Ｄ描画コマンドを受信し得、３Ｄグラフィックスパイプラインに従って３Ｄ描画コマンドを実行するために、３Ｄラスタユニット３８、ＬＲＺブロック３９、プロセッサクラスタ４６、ならびにプロセッサクラスタ４６中に含まれるシェーダプロセッサ５０、テクスチャプロセッサ５２、深度プロセッサ４４、ピクセルサンプラー４５、色プロセッサ４８、およびピクセルＬ１キャッシュ４２を制御し得る。
【００６３】
[0066]ＬＲＺブロック３９は、個々のピクセルの比較的高い解像度深度テストの代わりに、ピクセルのブロックの低解像度深度テストを実行することによって、プリミティブの可視性テスト（visibility tests）を実行するためにビニングパス（binning pass）中になど、ある時点においてピクセルのブロックの深度テストを加速するために使用され得る。深度プロセッサ４４は、ＧＰＵ１２がピクセルシェーディングを実行した後になど、３Ｄグラフィックスレンダリング中のピクセルレベル深度テストなど、深度関係処理を実行し得る。ピクセルサンプラー４５はサンプリング関係動作を実行し得る。色プロセッサ４８は、グラフィックスパイプラインを通してプリミティブの処理中に、ピクセルフォーマット変換ならびにピクセルブレンディングを実行し得る。シェーダプロセッサ５０は、処理のためにテクスチャデータをテクスチャプロセッサ５２に送り得る。テクスチャプロセッサ５２はテクスチャデータに対して動作し得、さらなる処理のためにテクスチャデータに対する動作の結果をシェーダプロセッサ５０に送り得る。ピクセルＬ１キャッシュ４２は、出力バッファ１６のピクセル色および深度データをキャッシュし得る。データ組合せバッファ５６は、プロセッサクラスタ４６の色キャッシュユニット４２間で共有されたデータを組み合わせる先入れ先出し（ＦｉＦｏ：first-in-first-out）スタックであり得る。
【００６４】
[0067]ソフトウェアアプリケーション１８は、ソースロケーション（すなわち、表面のピクセルのソースブロック）から宛先ロケーション（destination location）（すなわち、表面のピクセルの宛先ブロック）にビットブロックを単に転送するｂｉｔＢＬＴ動作を呼び出し得る。ＧＰＵドライバ２２は、ソフトウェアアプリケーションによって呼び出された２Ｄグラフィックス動作に基づいて、ＧＰＵ１２のための動作モードを決定し得る。図３Ａに示されているように、ＧＰＵドライバ２２は、ソースロケーションから宛先ロケーションにビットブロックを転送するｂｉｔＢＬＴ動作を実行するために、ＧＰＵ１２のための第１の動作モードを決定し得る。第１の動作モードでは、ＧＰＵ１２は、コマンドプロセッサ３０と、２Ｄ制御センター３２と、２Ｄラスタおよびタイルアドレス生成器３４と、Ｌ１キャッシュユニット４２と、データ組合せバッファ５６と、グラフィックスメモリ４０と、メモリバスインターフェース６４とを有効にし得る。第１の動作モードでは、ＧＰＵ１２はまた、３Ｄ制御センター３６と、３Ｄラスタユニット３８と、ＬＲＺブロック３９と、シェーダプロセッサ５０と、テクスチャプロセッサ５２と、深度プロセッサ４４と、ピクセルサンプラー４５と、色プロセッサ４８と、メモリアービトレーションブロック６０と、Ｌ２キャッシュ６２とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
【００６５】
[0068]ｂｉｔＢＬＴ動作を実行するために、コマンドプロセッサ３０は、ｂｉｔＢＬＴ動作を実行するためにＧＰＵドライバ２２から受信されたコマンドを復号し得、２Ｄグラフィックス動作を２Ｄ制御センター３２に通信し得る。２Ｄ制御センター３２は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、ピクセルＬ１キャッシュ４２、データ組合せバッファ５６、グラフィックスメモリ４０、および／またはシステムメモリ１０内に記憶された１つまたは複数の表面、のうちのいずれかであり得る。ｂｉｔＢＬＴ動作のソースロケーションまたは宛先ロケーションがシステムメモリ１０である場合、ＧＰＵ１２は、メモリバスインターフェース６４を介してシステムメモリ１０にアクセスし得る。ＧＰＵ１２は、２Ｄ制御センター３２によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
【００６６】
[0069]ビットブロック転送動作が、２Ｄ制御センター３２など、専用２Ｄグラフィックス処理ハードウェアモジュールを使用して実行されるので、ビットブロック転送動作の実行は、３Ｄグラフィックス処理ハードウェアモジュールの３Ｄデータ経路によって制限されない。したがって、ビットブロック動作は、メモリロケーション間でビットブロックをより効率的に転送するためにメモリインターフェースを飽和させることが可能であり得る。
【００６７】
[0070]図３Ｂに示されているように、ＧＰＵ１２は、ブレンディング動作とともに簡易なビットブロック転送動作を実行するために第２のモードで動作し得る。ブレンディング動作の例としては、アルファブレンディング、合成（compositing）、オーバーレイ、ポーターダフ（Porter-Duff）合成などがあり得る。ソフトウェアアプリケーション１８は、ソースロケーションから宛先ロケーションにビットブロックを転送するｂｉｔＢＬＴ動作、ならびにソースロケーションからのビットブロックの色を宛先ロケーションにおけるビットブロックの色とブレンドするためのブレンディング動作、を呼び出し得る。ＧＰＵドライバ２２は、ソフトウェアアプリケーションによって呼び出された２Ｄグラフィックス動作に基づいて、ＧＰＵ１２のための動作モードを決定し得る。図３Ｂに示されているように、ＧＰＵドライバ２２は、ソースロケーションから宛先ロケーションにビットブロックを転送するｂｉｔＢＬＴ動作と、ソースロケーションからのビットブロックを宛先ロケーションにおけるビットブロックとブレンドするブレンディング動作とを実行するために、ＧＰＵ１２のための第２の動作モードを決定し得る。第２の動作モードでは、ＧＰＵ１２は、コマンドプロセッサ３０と、２Ｄ制御センター３２と、２Ｄラスタおよびタイルアドレス生成器３４と、色プロセッサ４８と、ピクセルＬ１キャッシュ４２と、データ組合せバッファ５６と、グラフィックスメモリ４０と、メモリバスインターフェース６４とを有効にし得る。第２の動作モードでは、ＧＰＵ１２はまた、３Ｄ制御センター３６と、３Ｄラスタユニット３８と、ＬＲＺブロック３９と、シェーダプロセッサ５０と、テクスチャプロセッサ５２と、深度プロセッサ４４と、ピクセルサンプラー４５と、メモリアービトレーションブロック６０と、Ｌ２キャッシュ６２とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
【００６８】
[0071]ブレンディング動作とともにｂｉｔＢＬＴ動作を実行するために、コマンドプロセッサ３０は、ｂｉｔＢＬＴ動作およびブレンディング動作を実行するためにＧＰＵドライバ２２から受信されたコマンドを復号し得、２Ｄグラフィックス動作を２Ｄ制御センター３２に通信し得る。２Ｄ制御センター３２は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、色キャッシュユニット４２、データ組合せバッファ５６、グラフィックスメモリ４０、および／またはシステムメモリ１０のうちのいずれかであり得る。ｂｉｔＢＬＴ動作のソースロケーションまたは宛先ロケーションがシステムメモリ１０である場合、ＧＰＵ１２は、メモリバスインターフェース６４を介してシステムメモリ１０にアクセスし得る。ＧＰＵ１２は、２Ｄ制御センター３２によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
【００６９】
[0072]ＧＰＵ１２は、ソースロケーションからのビットブロックの色情報と、色情報をキャッシュし得るピクセルＬ１キャッシュ４２からの宛先ロケーションのビットブロックの色情報とを取り出し得る。色プロセッサ４８は、ソースロケーションからのそれぞれのビットブロックと宛先ロケーションのビットブロックとについての色情報を受信し得る。色プロセッサ４８は任意の必要な色フォーマット変換を実行し得、ＧＰＵドライバ２２によって指定されたブレンディング動作に従って、アルファブレンディングなど、色のブレンディングを実行し得る。たとえば、色プロセッサ４８は非線形色空間から線形色空間に色フォーマットを変換し得、またはその逆も同様であり、あるいは、ＹＵＶからＲＧＢＡになど、任意の色フォーマットから任意の他の色フォーマットに色フォーマットを変換し得る。ＧＰＵ１２は、宛先ロケーションにおいて、ブレンドされた色で、得られたビットブロックを書き込み得る。
【００７０】
[0073]図３Ｃに示されているように、ＧＰＵ１２は、スケーリングおよびフィルタ処理動作とともに簡易なビットブロック転送動作を実行するために第３のモードで動作し得る。たとえば、ＧＰＵ１２は、グラフィカル壁紙（graphical wallpapers）またはピクセルの他のブロックをダウンスケールまたはアップスケールするために、ビットブロックをスケーリングおよびフィルタ処理し得る。ソフトウェアアプリケーション１８は、ソースロケーションから宛先ロケーションにビットブロックを転送するｂｉｔＢＬＴ動作、ならびにソースロケーションからのビットブロックをスケーリングするスケーリング動作を呼び出し得る。ＧＰＵドライバ２２は、ソフトウェアアプリケーションによって呼び出された２Ｄグラフィックス動作に基づいて、ＧＰＵ１２のための動作モードを決定し得る。図３Ｃに示されているように、ＧＰＵドライバ２２は、ソースロケーションから宛先ロケーションにビットブロックを転送するｂｉｔＢＬＴ動作とスケーリング動作とを実行するために、ＧＰＵ１２のための第３の動作モードを決定し得る。第３の動作モードでは、ＧＰＵ１２は、コマンドプロセッサ３０と、２Ｄ制御センター３２と、３Ｄラスタユニット３８と、ピクセルサンプラー４５と、色プロセッサ４８と、ピクセルＬ１キャッシュ４２と、テクスチャプロセッサ５２と、データ組合せバッファ５６と、グラフィックスメモリ４０と、メモリアービトレーションブロックと、Ｌ２キャッシュ６２と、メモリバスインターフェース６４とを有効にし得る。第３の動作モードでは、ＧＰＵ１２はまた、２Ｄ制御センター３２と、２Ｄラスタおよびタイルアドレス生成器３４と、ＬＲＺブロック３９と、シェーダプロセッサ５０と、深度プロセッサ４４とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
【００７１】
[0074]スケーリングおよびフィルタ処理動作とともにｂｉｔＢＬＴ動作を実行するために、コマンドプロセッサ３０は、ｂｉｔＢＬＴ動作ならびにスケーリングおよびフィルタ処理動作を実行するためにＧＰＵドライバ２２から受信されたコマンドを復号し得、２Ｄグラフィックス動作を３Ｄラスタユニット３８に通信し得る。３Ｄラスタユニット３８は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、ピクセルＬ１キャッシュ４２、データ組合せバッファ５６、グラフィックスメモリ４０、および／またはシステムメモリ１０のうちのいずれかであり得る。ｂｉｔＢＬＴ動作のソースロケーションまたは宛先ロケーションがシステムメモリ１０である場合、ＧＰＵ１２は、メモリバスインターフェース６４を介してシステムメモリ１０にアクセスし得る。ＧＰＵ１２は、３Ｄラスタユニット３８によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
【００７２】
[0075]３Ｄラスタユニット３８はまた、ビットブロックのスケーリングおよびフィルタ処理を実行するようにテクスチャプロセッサ５２に指示し得る。Ｌ２キャッシュ６２は、スケーリングおよびフィルタ処理されるべきビットブロックをキャッシュし得る。テクスチャプロセッサ５２は、Ｌ２キャッシュ６２からビットブロックを読み取り得、ビットブロックのスケーリングおよびフィルタ処理を実行し得、ＧＰＵ１２が、得られたスケーリングおよびフィルタ処理されたビットブロックを宛先ロケーションに書き込み得るように、スケーリングおよびフィルタ処理されたビットブロックを色プロセッサ４８を通して送り得る。
【００７３】
[0076]図３Ｄに示されているように、ＧＰＵ１２は、シェーダプロセッサ５０を利用し得る追加の２Ｄグラフィックス処理を実行するために、第４のモードで動作し得る。ＧＰＵ１２は、任意の変換を用いた追加の２Ｄ画像レンダリング、ならびにグラディエントおよびラジカルシェーディング（radical shading）を含むシェーダ画像レンダリングを実行するために、第４のモードで動作し得る。図３Ｄに示されているように、ＧＰＵ１２は、シェーダプロセッサ５０を有効にし得、これらのグラフィックス動作を実行する際にシェーダプロセッサ５０を使用し得る。さらに、ＧＰＵ１２はまた、３Ｄグラフィックス処理パイプラインに従って３Ｄグラフィックス処理動作を実行するために、第４のモードで動作し得る。
【００７４】
[0077]図３Ａ〜図３Ｄに示されているように、図３Ａによって示されている第１の動作モードでのＧＰＵ１２の機能は、それぞれ、図３Ｂ、図３Ｃ、および図３Ｄによって示されている第２、第３、および第４の動作モードでのＧＰＵ１２の機能のサブセットである。同様に、図３Ｂによって示されている第２の動作モードでのＧＰＵ１２の機能は、それぞれ、図３Ｃ、および図３Ｄによって示されている第３、および第４の動作モードでのＧＰＵ１２の機能のサブセットである。さらに、図３Ｃによって示されている第３の動作モードでのＧＰＵ１２の機能は、図３Ｄによって示されている第４の動作モードでのＧＰＵ１２の機能のサブセットである。このようにして、第２、第３、または第４動作モードでのＧＰＵ１２は、第１のモードでのＧＰＵ１２の機能を実行することが依然として可能であり得、第３または第４の動作モードでのＧＰＵ１２は、第２のモードでのＧＰＵ１２の機能を依然として実行することが可能であり得、第４の動作モードでのＧＰＵ１２は、第３のモードでのＧＰＵ１２の機能を依然として実行することが可能であり得る。
【００７５】
[0078]図４は、ＧＰＵ１２の例示的な動作をさらに詳細に示すフローチャートである。図４に示されているように、ＧＰＵ１２は、ＧＰＵ１２の第１の複数のグラフィックス処理ハードウェアユニットを使用して３Ｄグラフィックスパイプラインに従ってグラフィックス処理を実行する（４０２）。ＧＰＵ１２は、３Ｄグラフィックス処理を実行する際に使用されないＧＰＵ１２の第２の複数のグラフィックス処理ハードウェアユニットと、ＧＰＵ１２の第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２Ｄグラフィックス動作をさらに実行する（４０４）。
【００７６】
[0079]いくつかの例では、ＧＰＵ１２は、ＧＰＵ１２によって実行されるべき２Ｄグラフィックス動作に少なくとも部分的に基づいて、２Ｄグラフィックス動作を実行する際に使用される第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットを決定し得る。いくつかの例では、ＧＰＵ１２は、３Ｄグラフィックスパイプラインに従って３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存し得る。ＧＰＵ１２は、さらに、２Ｄ動作を実行するためにＧＰＵ１２のコンテキストを切り替え得る。２Ｄ動作を実行することの後に、ＧＰＵ１２は、保存されたコンテキスト情報に少なくとも部分的に基づいて３Ｄグラフィカル処理の実行を再開する（resume performance of）ためにＧＰＵ１２のコンテキストを切り替え得る。
【００７７】
[0080]いくつかの例では、２次元グラフィックス動作は、ソースロケーションから宛先ロケーションにビットブロックを転送するためにビットブロック転送動作を備える。いくつかの例では、２次元グラフィックス動作は、ソースビットブロックを宛先ロケーションにおける宛先ビットブロックとブレンドするためにブレンディング動作をさらに備える。いくつかの例では、２次元グラフィックス動作は、ビットブロックをスケーリングおよびフィルタ処理するためにスケーリング動作をさらに備える。
【００７８】
[0081]いくつかの例では、ＧＰＵ１２によって、２Ｄグラフィックス動作を実行することは、宛先ロケーションにデフォルト値を書き込むためにＧＰＵ１２がクリア動作を実行することを含む。第２の複数のグラフィックス処理ハードウェアユニットはピクセルレベル１キャッシュ４２を備える。いくつかの例では、ＧＰＵ１２によって、２Ｄグラフィックス動作を実行することは、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにＧＰＵ１２がビットブロック転送動作を実行することを含む。第２の複数のグラフィックス処理ハードウェアユニットはピクセルレベル１キャッシュ４２を備える。
【００７９】
[0082]いくつかの例では、ＧＰＵ１２によって、２Ｄグラフィックス動作を実行することは、ＧＰＵ１２の色プロセッサ４８によって、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともに（with blending operation）ビットブロック転送を実行することを含む。第２の複数のグラフィックス処理ハードウェアユニットはピクセルレベル１キャッシュ４２を備え、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ４８を備える。いくつかの例では、ＧＰＵ１２によって、２Ｄグラフィックス動作を実行することは、ＧＰＵ１２の色プロセッサ４８によって、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ＧＰＵ１２によって、ピクセルのフォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含む。第２の複数のグラフィックス処理ハードウェアユニットはピクセルレベル１キャッシュ４２を備え、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ４８を備える。いくつかの例では、ＧＰＵ１２によって、２Ｄグラフィックス動作を実行することは、ＧＰＵ１２のテクスチャプロセッサ５２によって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ＧＰＵ１２によって、ピクセルのスケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含む。第２の複数のグラフィックス処理ハードウェアユニットはピクセルレベル１キャッシュ４２を備え、第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ４８とテクスチャプロセッサ５２とを備える。
【００８０】
[0083]いくつかの例では、ＧＰＵ１２は、２Ｄグラフィックス動作を実行する際に使用されないＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンし得る。いくつかの例では、２Ｄグラフィックス動作を実行する際に使用されないＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットをパワーダウンすることは、ＧＰＵ１２によって、ＧＰＵ１２の１つまたは複数のシェーダプロセッサをパワーダウンすることをさらに含み得る。
【００８１】
[0084]いくつかの例では、ＧＰＵ１２の第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットは、ＧＰＵ１２の第１の複数のグラフィックス処理ハードウェアユニットのすべてよりも少ないグラフィックス処理ハードウェアユニットを含む。
【００８２】
[0085]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体と、コンピュータデータ記憶媒体とを含み得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイスを備えることができる。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００８３】
[0086]コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデック（combined codec）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【００８４】
[0087]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【００８５】
[0088]本開示の様々な態様が説明された。これらおよび他の態様は、以下の特許請求の範囲内に入る。
【図１】
2018514855.tif 000003
【図２】
2018514855.tif 000004
【図３Ａ】
2018514855.tif 000005
【図３Ｂ】
2018514855.tif 000006
【図３Ｃ】
2018514855.tif 000007
【図３Ｄ】
2018514855.tif 000008
【図４】
2018514855.tif 000009
【手続補正書】
【提出日】平成29年11月29日(2017.11.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グラフィックス処理のための方法であって、
グラフィックス処理ユニット（ＧＰＵ）によって、前記ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス動作を実行することと、
前記ＧＰＵによって、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットによって実行される前記３Ｄグラフィックス動作を含む、任意の３Ｄグラフィックス動作を実行する際に使用されない前記ＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行することと
を備える、方法。
【請求項２】
前記ＧＰＵによって、前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵによって、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行することを備える、請求項１に記載の方法。
【請求項４】
前記ＧＰＵによって、前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス動作に関連付けられたコンテキスト情報を保存することと、
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記ＧＰＵによって、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル動作の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１に記載の方法。
【請求項６】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１に記載の方法。
【請求項７】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
請求項１に記載の方法。
【請求項８】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、前記ＧＰＵによって、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
請求項１に記載の方法。
【請求項９】
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵのテクスチャプロセッサによって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、前記ＧＰＵによって、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサと前記テクスチャプロセッサとを備える、
請求項１に記載の方法。
【請求項１０】
２次元（２Ｄ）グラフィックス動作を記憶するように構成されたメモリと、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット（ＧＰＵ）と、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス動作を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットによって実行される前記３Ｄグラフィックス動作を含む、任意の３Ｄグラフィックス動作を実行する際に使用されない前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して前記２Ｄグラフィックス動作を実行するようにさらに構成された、
を備える、コンピューティングデバイス。
【請求項１１】
前記ＧＰＵが、
前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定する
ようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１２】
前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行するようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１３】
前記ＧＰＵが、
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス動作に関連付けられたコンテキスト情報を保存することと、
前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル動作の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
を行うようにさらに構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１４】
前記ＧＰＵが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１５】
前記ＧＰＵが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１６】
前記ＧＰＵが、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１７】
前記ＧＰＵが、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１８】
前記ＧＰＵが、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
請求項１０に記載のコンピューティングデバイス。
【請求項１９】
グラフィックス処理のための装置であって、
第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス動作を実行するための手段と、
前記第１の複数のグラフィックス処理ハードウェアユニットによって実行される前記３Ｄグラフィックス動作を含む、任意の３Ｄグラフィックス動作を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行するための手段と
を備える、装置。
【請求項２０】
実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定するための手段
をさらに備える、請求項１９に記載の装置。
【請求項２１】
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス動作に関連付けられたコンテキスト情報を保存するための手段と、
前記２Ｄグラフィックス動作を実行するためにコンテキストを切り替えるための手段と、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル動作の実行を再開するために前記コンテキストを切り替えるための手段と
をさらに備える、請求項１９に記載の装置。
【請求項２２】
前記２Ｄグラフィックス動作を実行するための前記手段が、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するための手段を含み、
ここにおいて、前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１９に記載の装置。
【請求項２３】
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
請求項１９に記載の装置。
【請求項２４】
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１９に記載の装置。
【請求項２５】
前記２Ｄグラフィックス動作を実行するための前記手段が、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行するための手段と、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
請求項１９に記載の装置。
【請求項２６】
前記２Ｄグラフィックス動作のための前記手段が、ピクセルのブロックをスケーリングするためにスケーリング動作を実行するための手段と、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
請求項１９に記載の装置。
【請求項２７】
グラフィックス処理ユニット（ＧＰＵ）であって、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを備え、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス動作を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットによって実行される前記３Ｄグラフィックス動作を含む、任意の３Ｄグラフィックス動作を実行する際に使用されない前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して２次元（２Ｄ）グラフィックス動作を実行するようにさらに構成された、
ＧＰＵ。
【請求項２８】
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンするようにさらに構成された、請求項２７に記載のＧＰＵ。
【請求項２９】
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンすることが、
１つまたは複数のシェーダプロセッサをパワーダウンすることを
をさらに備える、請求項２８に記載のＧＰＵ。
【請求項３０】
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をクロックゲートする
ようにさらに構成された、請求項２７に記載のＧＰＵ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
[0088]本開示の様々な態様が説明された。これらおよび他の態様は、以下の特許請求の範囲内に入る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
グラフィックス処理のための方法であって、
グラフィックス処理ユニット（ＧＰＵ）によって、前記ＧＰＵの第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行することと、
前記ＧＰＵによって、前記３Ｄグラフィックス処理を実行する際に使用されない前記ＧＰＵの第２の複数のグラフィックス処理ハードウェアユニットと、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行することと
を備える、方法。
［Ｃ２］
前記ＧＰＵによって、前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定すること
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵによって、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記ＧＰＵによって、前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記ＧＰＵによって、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１に記載の方法。
［Ｃ６］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１に記載の方法。
［Ｃ７］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行することを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
Ｃ１に記載の方法。
［Ｃ８］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵの色プロセッサによって、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、前記ＧＰＵによって、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
Ｃ１に記載の方法。
［Ｃ９］
前記ＧＰＵによって、前記２Ｄグラフィックス動作を実行することが、前記ＧＰＵのテクスチャプロセッサによって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、前記ＧＰＵによって、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサと前記テクスチャプロセッサとを備える、
Ｃ１に記載の方法。
［Ｃ１０］
２次元（２Ｄ）グラフィックス動作を記憶するように構成されたメモリと、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット（ＧＰＵ）と、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して前記２Ｄグラフィックス動作を実行するようにさらに構成された、
を備える、コンピューティングデバイス。
［Ｃ１１］
前記ＧＰＵが、
前記ＧＰＵによって実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定する
ようにさらに構成された、Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１２］
前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記２Ｄ動作を実行するようにさらに構成された、Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１３］
前記ＧＰＵが、
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記２Ｄグラフィックス動作を実行するために前記ＧＰＵのコンテキストを切り替えることと、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記ＧＰＵの前記コンテキストを切り替えることと
を行うようにさらに構成された、Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１４］
前記ＧＰＵが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１５］
前記ＧＰＵが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１６］
前記ＧＰＵが、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１７］
前記ＧＰＵが、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１８］
前記ＧＰＵが、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
Ｃ１０に記載のコンピューティングデバイス。
［Ｃ１９］
グラフィックス処理のための装置であって、
第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するための手段と、
前記３Ｄグラフィックス処理を実行する際に使用されない第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットとを使用して２次元（２Ｄ）グラフィックス動作を実行するための手段と
を備える、装置。
［Ｃ２０］
実行されるべき前記２Ｄグラフィックス動作に少なくとも部分的に基づいて、前記２Ｄグラフィックス動作を実行する際に使用される前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットを決定するための手段
をさらに備える、Ｃ１９に記載の装置。
［Ｃ２１］
前記３Ｄグラフィックスパイプラインに従って前記３Ｄグラフィックス処理に関連付けられたコンテキスト情報を保存するための手段と、
前記２Ｄグラフィックス動作を実行するためにコンテキストを切り替えるための手段と、
前記２Ｄグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記３Ｄグラフィカル処理の実行を再開するために前記コンテキストを切り替えるための手段と
をさらに備える、Ｃ１９に記載の装置。
［Ｃ２２］
前記２Ｄグラフィックス動作を実行するための前記手段が、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するための手段を含み、
ここにおいて、前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１９に記載の装置。
［Ｃ２３］
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備える、
Ｃ１９に記載の装置。
［Ｃ２４］
前記２Ｄグラフィックス動作を実行するための前記手段が、ソースロケーションからのピクセルの第１のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するための手段を含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
Ｃ１９に記載の装置。
［Ｃ２５］
前記２Ｄグラフィックス動作を実行するための前記手段が、第１の色フォーマットから第２の色フォーマットへのピクセルのブロックのフォーマット変換を実行するための手段と、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
Ｃ１９に記載の装置。
［Ｃ２６］
前記２Ｄグラフィックス動作のための前記手段が、ピクセルのブロックをスケーリングするためにスケーリング動作を実行するための手段と、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第２の複数のグラフィックス処理ハードウェアユニットがレベル１キャッシュを備え、
前記第１の複数のグラフィックス処理ハードウェアユニットのうちの前記１つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
Ｃ１９に記載の装置。
［Ｃ２７］
グラフィックス処理ユニット（ＧＰＵ）であって、
第１の複数のグラフィックス処理ハードウェアユニットと第２の複数のグラフィックス処理ハードウェアユニットとを備え、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第１の複数のグラフィックス処理ハードウェアユニットを使用して３次元（３Ｄ）グラフィックスパイプラインに従って３Ｄグラフィックス処理を実行するように構成され、ここにおいて、前記ＧＰＵが、前記ＧＰＵの前記第２の複数のグラフィックス処理ハードウェアユニットと、前記第１の複数のグラフィックス処理ハードウェアユニットのうちの１つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して２次元（２Ｄ）グラフィックス動作を実行するようにさらに構成された、
ＧＰＵ。
［Ｃ２８］
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンするようにさらに構成された、Ｃ２７に記載のＧＰＵ。
［Ｃ２９］
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンすることが、
１つまたは複数のシェーダプロセッサをパワーダウンすることを
をさらに備える、Ｃ２８に記載のＧＰＵ。
［Ｃ３０］
前記ＧＰＵが、
前記２Ｄグラフィックス動作を実行するために使用されない前記第１の複数のグラフィックス処理ハードウェアユニットの一部をクロックゲートする
ようにさらに構成された、Ｃ２７に記載のＧＰＵ。
【国際調査報告】
2018514855.tif 000010
2018514855.tif 000011
2018514855.tif 000012
2018514855.tif 000013
2018514855.tif 000014