マルチテクスチャリングのための動的に構成可能なテクスチャキャッシュ
テクスチャキャッシュを動的に構成するための技術を開示する。三次元(3D)グラフィックスパイプラインのテクスチャマッピング処理の間に、バッチがシングルテクスチャマッピングに対するものである場合には、テクスチャキャッシュは、nウェイのセットアソシエイティブテクスチャキャッシュとして構成される。しかしながら、バッチがマルチテクスチャマッピングに対するものである場合には、nウェイのセットアソシエイティブテクスチャキャッシュは、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割され、ここで、nとMは1より大きい整数であり、nはMによって割り切れる。
【発明の詳細な説明】
【分野】
【0001】
本開示は、一般的にグラフィックスに関連し、より詳細には、テクスチャキャッシュを動的に構成するための技術に関連する。
【背景】
【0002】
テクスチャマッピングは、コンピュータ生成されたシーンにリアル感を付け加えるための3Dグラフィックスパイプラインにおける、最も成功しており、人気のある技術の内の1つである。テクスチャマッピング(TM)プロセスの特性が、複数のテクスチャルックアップを含むので、一般的なテクスチャマッピング(TM)プロセスは、高度にメモリアクセス集中的である。頻繁なテクスチャルックアップは、メモリバス上でのボトルネックをもたらす。この問題に対処するために、テクスチャキャッシュが使用されることが多い。テクスチャキャッシュは、外部メモリ源(例えば、オフチップメモリ)からテクスチャをフェッチすることの冗長性をなくす働きをし、三角形のラスタ化の自然な空間局所性を利用する。
【0003】
グラフィックスアプリケーションは、一般的にバッチモードで描画コマンドを送る。バッチモードでは、すべてのピクセルが、バッチ中で、同一のコンテクスト状態レジスタを共有する。シングルテクスチャバッチ中で、すべてのピクセルは、1つのシングルテクスチャマップからテクセル(texels)をフェッチする。しかしながら、マルチテクスチャバッチモードにおいて、異なる複数のテクスチャが、1つのキャッシュ内部に記憶されている場合、コンフリクトミスが発生する可能性が非常に高い。2つのテクスチャマップが同一のキャッシュラインに割り当てられている、または、割り振られている場合、これらの2つのテクスチャマップは互いに繰り返し参照することになり、冗長なメモリトラフィックを生み出すだろう。
【0004】
以上のことを鑑みると、異なるテクスチャマップに対して1つのキャッシュを使用することは、電力とピクセルパフォーマンスを減少させる。
【0005】
したがって、テクスチャキャッシュを動的に構成するための技術に対する技術的な需要がある。
【発明の概要】
【0006】
テクスチャキャッシュを動的に構成するための技術をここで説明する。1つの実施形態では、動的に構成可能なキャッシュを持つグラフィックス処理ユニットを具備するワイヤレス装置が提供される。動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ。ここで、nとMは1より大きい整数であり、nはMによって割り切れる。ワイヤレス装置は、グラフィックス処理ユニットに結合されているメモリも具備する。
【0007】
別の観点では、グラフィックス処理ユニットは、選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバを含む。ユニットはまた、シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュも含み、ここで、nとMは1より大きい整数であり、nはMによって割り切れる。
【0008】
さらに別の観点では、コンピュータ読取可能媒体を備えるコンピュータプログラム製品は、コンピュータに選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを機械に決定させる命令を持つ。命令は、機械に、シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成させる。命令はまた、機械に、マルチテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割させ、ここで、nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応する。
【0009】
本開示のさまざまな観点と実施形態を以下でさらに詳細に説明する。
【0010】
本発明の観点と実施形態とは同じ参照符号が全体に渡って対応的に同定する図面と共に考慮されたとき以下に述べる詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【0011】
【図1】図1は、ワイヤレス装置のブロック図を示す。
【図2】図2は、グラフィックス処理ユニットの一般的なブロック図を示す。
【図3A】図3Aは、従来の3次元(3D)パイプラインを示す。
【図3B】図3Bは、従来のピクセルレンダリングステージを示す。
【図4】図4は、動的に構成可能なテクスチャキャッシュの一般的なブロック図を示す。
【図5A】図5Aは、シングルテクスチャモード中のピクセルバッチを示す。
【図5B】図5Bは、マルチテクスチャモード中のピクセルバッチを示す。
【図6A】図6Aは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図6B】図6Bは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図7A】図7Aは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図7B】図7Bは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図8】図8は、メインメモリ中に記憶されたアプリケーションの一般的なブロック図を示す。
【詳細な説明】
【0012】
語“例示的”はここでは“例、事例、または実例として機能”することを意味させるために使用される。“例示的”としてここで説明されている任意の実施形態または設計は、他の実施形態または設計に対して好ましいまたは有利なものとして解釈される必要性はない。
【0013】
多くのゲームアプリケーションは、2次元(2D)空間(例えば、ディスプレイスクリーン)に3Dオブジェクトを表示する、3次元(3D)グラフィックスアプリケーションを必要とする。2Dグラフィックスにおけるピクセルは、位置、色、および輝度のプロパティを持つ一方、3Dピクセルは、仮想上のZ軸に存在するポイントを示す深度プロパティを加える。3Dピクセルとして作成されたテクスチャは、それ自身の深度値とともにそれぞれ結合される。
【0014】
ワイヤレス通信、コンピューティング、ネットワーキング、パーソナルエレクトロニクス等に対して、ここで説明した技術を使用してもよい。ワイヤレス通信に対する技術の例示的な使用について、以下で説明する。
【0015】
図1は、ワイヤレス通信システムにおける、ワイヤレス装置10の実施形態のブロック図を示す。ワイヤレス装置10は、セルラ電話機またはカメラ付き電話機、端末、ハンドセット、パーソナルデジタルアシスタント(PDA)、あるいは、他の何らかの装置であってもよい。ワイヤレス通信システムは、コード分割多重アクセス(CDMA)システム、移動体通信のための国際システム(GSM)システム、または、他の何らかのシステムであってもよい。
【0016】
ワイヤレス装置10は、受信パスと送信パスとを介した、2分割性通信を提供することができる。受信パスにおいて、基地局によって送信された信号が、アンテナ12によって受信され、受信機(RCVR)14に提供される。受信機14は、受信信号を調整してデジタル化し、さらなる処理のためにデジタルセクション20にサンプルを提供する。送信パスにおいて、送信機(TMTR)16は、送信されることになるデータをデジタルセクション20から受取り、データを処理して調整し、変調された信号を生成させ、変調された信号は、アンテナ12を介して基地局へと送信される。
【0017】
デジタルセクション20は、さまざまな処理、インターフェース、およびメモリユニット、例えば、モデムプロセッサ22、ビデオ信号プロセッサ24、制御装置/プロセッサ26、ディスプレイプロセッサ28、ARM/DSP32、グラフィックス処理ユニット(GPU)34、内部メモリ36、外部バスインターフェース(EBI)38を備える。モデムプロセッサ22は、データ送信と受信のための処理(例えば、エンコーディング、変調、復調、およびデコーディング)を実行する。ビデオプロセッサ24は、キャムコーダ、ビデオ再生、およびビデオ会議のようなビデオアプリケーション用の、ビデオコンテンツ(例えば、静止画、ビデオ動画、テキスト動画)上で処理を実行する。制御装置/プロセッサ26は、デジタルセクション20内のさまざまな処理およびインターフェースユニットの動作を指示してもよい。ディスプレイプロセッサ28は、ディスプレイユニット30上で、ビデオ、グラフィックス、およびテキストの表示を容易にさせるための処理を実行する。ARM/DSP32は、ワイヤレスデバイス10のためのさまざまなタイプの処理を実行してもよい。グラフィックス処理ユニット34は、グラフィックス処理を実行する。
【0018】
デジタルセクション20中の任意のプロセッサ、例えば、グラフィックス処理ユニット34に対して、ここで説明した技術を使用してもよい。内部メモリ36は、デジタルセクション20内のさまざまなユニットに対するデータおよび/または命令を記憶する。EBI38は、バスまたはデータラインDLを通して、デジタルセクション20(例えば、内部メモリ36)と、メインメモリ40との間のデータの転送を容易にさせる。
【0019】
デジタルセクション20は、1つ以上のDSP、マイクロプロセッサ、RISC等で実現されてもよい。デジタルセクション20はまた、1つ以上の特定用途向け集積回路(ASIC)、または、他の任意のタイプの集積回路(IC)で製造されていてもよい。
【0020】
ここで説明した技術を、さまざまなハードウェアユニットで実現してもよい。例えば、ASIC、DSP、RISC、ARM、デジタル信号処理装置(DSPD)、プログラム可能論理装置(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)、プロセッサ、制御装置、マイクロ制御装置、マイクロプロセッサ、および、他の電子ユニットで技術を実現してもよい。
【0021】
図2は、一般的に34として表した、グラフィックス処理ユニットGPUの一般的なブロック図を示す。GPU34は、3次元(3D)スイッチドライバ42と、動的に構成可能なテクスチャキャッシュ44とを備える。3Dスイッチドライバ42は、キャッシュ44を再構成させるためのスイッチング制御信号SW1を提供する。GPU34はまた、後で詳細に説明することになる3Dグラフィックスパイプライン60を備える。さらに、GPU34は、フェッチ制御装置48を持つプロセッサ46を備える。フェッチ制御装置48は、1つ以上のテクスチャマップTMから要求されたテクスチャデータをフェッチするためのコマンドを生成するように機能する。
【0022】
図8は、メインメモリ40中に記憶されたアプリケーションA1・・・AZを示す。記憶されたアプリケーションA1・・・AZは、ゲームアプリケーション、または他のグラフィックスアプリケーションを含んでもよい。それぞれのアプリケーションは、それとともに、テクスチャタイプTTと、1つ以上のテクスチャマップTMを関係付けしている。操作において、選択されたアプリケーションに依拠して、3Dスイッチドライバ42は、選択されたアプリケーションを構文解析し、選択されたアプリケーションに対して、どのテクスチャ(シングルまたはマルチプルテクスチャ)タイプTTがイネーブルされているかを決定する。この後で、3Dスイッチドライバ42は、スイッチ制御信号SW1を生成させて、シングルテクスチャモードまたはマルチテクスチャモードに対して、キャッシュ44を再構成させる。テクスチャマッピングは、少なくとも1つのテクスチャマップTMを介して、2Dテクスチャ画像を3Dオブジェクトの表面にマップするシェーディング技術である。2Dテクスチャ画像は、メイン(外部)メモリ40に記憶されている。テクスチャ画像の個別のエレメントをテクセルと呼ぶ。
【0023】
また、図3Aと3Bとを参照して、一般的に、それぞれ、60と64として表す、従来の3Dグラフィックスパイプラインと、ピクセルレンダリングステージとの実施形態を示す。3Dグラフィックスパイプライン60は、ディスプレイユニット30上での3D表現の全体のタスクを、少なくとも2つのパイプラインステージに分ける。すなわち、頂点処理ステージ62と、ピクセルレンダリングステージ64とである。操作において、頂点処理ステージ62は、オープンGL(登録商標)または、オープンGLのESにおいて現在実装されているすべての機能、または、機能のサブセットを含んでもよい。
【0024】
ピクセルレンダリングステージ64は、ラスタ化、混色、テクスチャアプリケーション動作66と、隠れ表面除去動作68とを含む。それにもかかわらず、ピクセルレンダリングステージ64は、オープンGLまたは、オープンGLのESによって規定されている他の動作を含んでもよい。ピクセルレンダリングステージ64は、頂点処理ステージ62からの3Dオブジェクトについての情報を、ディスプレイユニット30上で表示することができるビットマップへと変換する。ピクセルレンダリングステージ64は、入力された3つの組を処理して、3Dグラフィックス画像のピクセル表現を生成する。ラスタ化、混色、テクスチャアプリケーション動作66の間に、テクスチャマッピングエンジン66Aは、テクスチャリング動作を実行する。
【0025】
図4を参照して、動的に構成可能なテクスチャキャッシュ44の一般的なブロック図を示す。GPU34の動的に構成可能なテクスチャキャッシュ44は、選択されているアプリケーションにおいて、シングルテクスチャマッピングがイネーブルされているときには、シングルテクスチャモード100で、選択されているアプリケーションにおいて、マルチテクスチャマッピングがイネーブルされているときには、マルチテクスチャモード200での内の1つで動作するように動的に構成可能/再構成可能である。シングルテクスチャモード100で、動的に構成可能なテクスチャキャッシュ44の概念図は、図6A−6Bにおいて最もよく分かる。シングルテクスチャモード100での、動的に構成可能なテクスチャキャッシュ44は、nウェイ(n-way)のセットアソシエイティブキャッシュである。例示的な実施形態において、nは偶数である。説明する実施形態では、nは4に等しい。例示的な実施形態では、4ウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャルックアップを取り扱うための、およそ4KBのサイズを持ち、それぞれのキャッシュラインは128ビットワイドである。シングルテクスチャモード100中で、動的に構成可能なテクスチャキャッシュ44は、パスごとに最大2つのテクスチャをサポートするように設計されている。
【0026】
説明の目的で、それぞれのピクセルに対する、パス手段ごとの2つのテクスチャは、複数のパスを通過することなく、そのトップにおいて、2つの異なるテクスチャマップからテクセルが同時にマッピングされている。例えば、キャッシュが、シングルテクスチャマッピングだけをサポートする場合、マルチテクスチャマッピング効果を達成するために、それぞれのピクセル上で、シングルテクスチャマッピングを複数回実行されなければならない。したがって、複数のパスを通過することなく、それぞれのピクセルに対する、パス手段ごとのマルチプルテクスチャは、複数の(異なる)テクスチャマップからテクセルが同時にマッピングされている。
【0027】
ここで、図5Aを参照して、シングルテクスチャモードのための一般的にBとして表すバッチのブロック図を示す。グラフィックスアプリケーションは、一般的に描画コマンドをバッチモードで送り、バッチB中の、PIXELB1、PIXELB2、・・・PIXELBXとして表した、すべてのピクセルは、同一のコンテクスト状態レジスタ50を共有する(ここで、Xは、バッチ中のピクセルの数に等しい)。
【0028】
テクスチャタイプTTによって決定されるように、シングルテクスチャモードにおいて、すべてのピクセルPIXELB1、PIXELB2、・・・PIXELBXは、単一のテクスチャマップTMからテクセルをフェッチする。テクスチャマップTMは、1つのシングルテクスチャマップである。2つのテクスチャ(マルチテクスチャモード)バッチにおいて、それぞれのピクセルPIXELB1、PIXELB2、・・・PIXELBXは、2つの異なるテクスチャマップからテクセルをフェッチする(ここで、Xは、バッチ中のピクセルの数に等しい)。
【0029】
例示的な実施形態において、あらゆるピクセルPIXELB1、PIXELB2、・・・PIXELBXは、ピクセルに対するテクスチャアドレスと、他の情報とを生成させる。ピクセルのテクスチャアドレスは、対応するタグとインデックスとを持ち、これらは、それぞれTAG_INと、INDEX[3:0]として表される。コンポーネント[3:0]は、アドレッシングフォーマットに対応している。ここで、“[3:0]”は、4桁(0,1,2,3)のバイナリアドレスを表す呼び方である。したがって、(例示的な実施形態の)インデックスは、24距離のアドレスを持つ。インデックスを使用して、タグラム1020,1021,1022,1023にアクセスする(図6A)。タグラム1020,1021,1022,1023の添字もまた、ウェイに対応する。0の添字は、ウェイ0に対応し、添字1はウェイ1に対応し、添字2はウェイ2に対応し、そして、添字3すなわち(n−1)はウェイ3(n−1)に対応する。
【0030】
図6A−6Bにおいて、シングルテクスチャモード100で、動的に構成可能なテクスチャキャッシュ44の概念図を示した。キャッシュのセットアソシエイティブは、4ウェイ(n=4)である。したがって、1つのインデックス、INDEX[3:0]によって選択されることになる、4つのエントリまたはキャッシュラインがある。図6Aにおいて最もよく分かるように、シングルテクスチャモード100でのキャッシュ44は、n−キャッシュブロックを含み、ここでそれぞれのブロックは、ウェイタグラム1020、1021、1022、または1023と、ウェイ有効ビットインジケータ1040、1041、1042、または1043とを含む。図6Bにおいて最もよく分かるように、それぞれのブロックは、ウェイデータラム1200、1201、1202、または1203をさらに含む。それぞれのブロックはまた、完全な“キャッシュライン”を表す。
【0031】
動的に構成可能なテクスチャキャッシュ44は、nの“キャッシュライン”によって構成される。それぞれのキャッシュラインは、インデックスにより選択される。キャッシュ44は、3Dハードワイヤードパイプラインと、メイン(外部)メモリ40との間のメモリ階層のレベルである。3Dグラフィックスパイプライン60が、メイン(外部)メモリ40にテクセルをリードバックするようにアドレスを送るとき、3Dグラフィックスパイプライン60は、最初に、データ(テクセル)が動的に構成可能なテクスチャキャッシュ44の内部にあるか否かをチェックする。アドレスは、キャッシュラインを選択するために使用され、INDEX[3:0]として表されるインデックスと、キャッシュのタグフィールドの値と比較するのに使用され、TAG_INとして表されるタグフィールドとに分けられる。一致が存在する場合、このことは、キャッシュ44内部にコンテンツが存在すること、特に、キャッシュラインが一致するものを持っていることを意味する。
【0032】
一般的なキャッシュにおいて、それぞれのキャッシュラインは、有効ビットインジケータを持つ。例示的な実施形態では、有効ビットの値は、(1)Valid_Bit=“1”と、(2)Valid_Bit=“0”とを含み、(1)Valid_Bit=“1”は、このキャッシュライン中に記憶されている有効なコンテンツがあることを意味し、(2)Valid_Bit=“0”は、キャッシュラインが空であることを意味する。有効ビットは、レジスタによって実現され、信号をリセットすることによって、“0”に初期化される。
【0033】
有効ビットインジケータは、各ウェイタグラム1020、1021、1022、および1023にそれぞれ関係付けられている。したがって、ウェイ0タグラム1020は、有効ビットインジケータ1040に関係付けられている。ウェイ1タグラム1021は、有効ビットインジケータ1041に関係付けられている。ウェイ2タグラム1022は、有効ビットインジケータ1042に関係付けられている。ウェイ3タグラム1023は、有効ビットインジケータ1043に関係付けられている。有効ビットインジケータは、キャッシュ44中の所定のエントリが、有効なデータを含んでいることを示す。ウェイ有効ビットインジケータ1040、1041、1042、および1043は、それぞれ、ラインL30、L31、L32、およびL33上で、出力を生み出す。
【0034】
それぞれのウェイタグラム1020、1021、1022、および1023は、3つの入力を受け取る。ラインL2上の第1の入力は、バッチB中のそれぞれのピクセルに対する、TAG_INであり、太線で示した。L4上の第2の入力は、インデックスであり、INDEX[3:0]として表し、2つの点によって後続される破線として示した。インデックスを使用して、ウェイタグラム1020、1021、1022、および1023にアクセスする。それぞれのウェイタグラム1020、1021、1022、および1023の第3の入力は、点線で示したウェイ更新デコーダ112からの、点線で示されたものである。ウェイ更新デコーダ112は、ウェイ選択器106から、ラインL10上で入力を受け取る。
【0035】
以下の説明から分かることになるように、ラインL4上のインデックスINDEX[3:0]は、キャッシュラインの1つのウェイタグラム1020,1021,1022,および1023を選択し、次にこれが、対応する出力ラインL20、L21、L22、またはL23上で、記憶されているタグ値を出力する。
【0036】
ウェイ選択器106は、ウェイ選択ビット108を含む。ウェイ選択ビット108の出力は、ウェイ更新デコーダ112による処理のためにラインL10に供給される。ウェイ選択ビット108の出力は、また、累積器110にも供給され、累積器110は、ウェイ選択ビット108の出力に対して1を加える。(106とラベル付けされたボックス中の)番号2は、2ビット信号を表す。ラインL8上の出力は、ウェイ選択ビット108に、ループバックされる。ウェイ更新デコーダ112は、点線として示したように、ラインL12、L14、L16、およびL18上で、制御ビットを出力して、nウェイのアソシエイティブセットの内の1つを選択する。ウェイ更新デコーダ112は、ラインL10上で2ビット信号を受け取り、1ビット信号を生成して、nブロック、すなわち、ウェイタグラム1020、1021、1022、および1023、ならびに/あるいは、図6Bに示したキャッシュラインのウェイデータラムの内の任意のものを選択する。
【0037】
キャッシュ44中でミスが発生するとき、要求されたデータは、1つのキャッシュラインに進むべきであり、そのキャッシュラインを占めているデータが置換されなければならない。nウェイのアソシエイティブキャッシュにおいて、n個のデータラム1200、1201、1202、および1203の選択を使用して、要求されたデータを置換する。ウェイ選択器106は、nウェイの内の、どのキャッシュラインを置換すべきかをピックアップする。
【0038】
ウェイ有効ビットインジケータ1040、1041、1042、および1043の出力は、それぞれラインL30、L31、L32、およびL33上に出力を生み出し、これらは、比較器1140、1141、1142、および1143にそれぞれ送られる。加えて、ウェイタグラム1020、1021、1022、および1023からの、ラインL20、L21、L22、およびL23上の出力は、それぞれ比較器1140、1141、1142、および1143に送られる。比較器1140、1141、1142、および1143はまた、ラインL2からの入力として、TAG_INを受け取る。
【0039】
比較器1140、1141、1142、および1143による比較は、タグラム1020、1021、1022、および1023からの、それぞれラインL20、L21、L22、およびL23上の、4つの(n=4の)可能性あるタグコンテンツと、到来しているピクセルのタグTAG_INとの間で実行される。比較器1140、1141、1142、および1143からの4つの比較の内の1つが一致の結果をもたらす場合、このような一致はキャッシュヒットを暗示する。したがって、オペランド116からのラインL50上の出力は、キャッシュヒットを表す。例として、オペランド116は、ANDゲートとして表される。そうではなく、何の一致もない場合、オペランド116からのラインL50上の出力は、キャッシュミスを表す。比較器1140、1141、1142、および1143が、ラインL40、L41、L42、およびL43上で、それらの比較の結果をそれぞれ出力し、これらは、オペランドゲート116の入力に供給される。オペランドゲート116はまた、アクティブビットを表すラインL6上でも入力を受け取る。オペランド116からの、ラインL50上の出力がミスを表している場合、出力は、フェッチ制御装置48に送られるフェッチ要求である。フェッチ制御装置48は、次に、バスまたはデータラインDLを介して通信して、メイン(外部)メモリ40から必要なテクスチャマップデータを取得する。
【0040】
しかしながら、ラインL30、L31、L32、L33の内の任意の1つ上の有効ビットが、“0”である場合、その有効ビットに関係する比較は使用されない。
【0041】
図6Bを特に参照して、キャッシュラインまたはブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム1200、1201、1202、または1203から、それぞれラインL70、L71、L72、またはL73の内の1つ上で読み出される。ラインL70、L71、L72、またはL73上の出力テクスチャデータが、マルチプレクサ122に送られる。マルチプレクサ122からの出力は、ラインL80上でテクスチャマッピングエンジン66Aに送られる。
【0042】
ウェイ選択器106からのラインL10上での出力を使用して、マルチプレクサ122を制御する。それぞれのウェイデータラム1200、1201、1202、または1203が、メイン(外部)メモリ40からラインL1上で、対応するテクスチャマップデータを代入される。
【0043】
ラインL6上のアクティブビットは、3Dグラフィックスパイプライン60において、特に使用される。ピクセルがテクスチャルックアップを必要としないときもある。この特定のケースにおいて、ラインL6上のアクティブビットはまた、“0”に設定される。したがって、キャッシュ44は、このピクセルを操作しないだろう。
【0044】
テクスチャマッピングエンジン66Aが、マルチテクスチャモードであるとき、バッチB中で、PIXELB1、PIXELB2、・・・PIXELBX、として示したピクセルは、複数の異なるテクスチャマップTMからテクセルをフェッチする。
【0045】
ここで、図5Bを参照して、マルチテクスチャモードでのバッチのブロック図を示す。例示的な実施形態では、マルチテクスチャモードは、2つのテクスチャマップに関連する。それにもかかわらず、2つ以上のテクスチャマップを使用してもよい。2つのテクスチャバッチに対して、ピクセルPIXELB1、PIXELB2、・・・PIXELBXのそれぞれは、2つの異なるテクスチャマップからテクセルをフェッチする(ここで、Xは、バッチ中のピクセルの数に等しい)。あらゆるピクセルPIXELB1、PIXELB2、・・・PIXELBXは、第1のテクスチャアドレスフィールド0と、第2のテクスチャアドレスフィールド1と、他のピクセル情報のためのフィールドとを生成する。第1のテクスチャアドレスフィールド0は、サブキャッシュC0に対する、Tex0 TAG_INと、Tex0 INDEX[3:0]として表されるタグとインデックスを持つ。第2のテクスチャアドレスフィールド1は、サブキャッシュC1に対する、Tex1 TAG_INと、Tex1 INDEX[3:0]として表されるタグとインデックスを持つ。インデックス、Tex0 INDEX[3:0]を使用して、サブキャッシュC0のTex0ウェイタグラム20200、20201(図7A)にアクセスする。インデックス、Tex1 INDEX[3:0]を使用して、サブキャッシュC1のTex1ウェイタグラム20210、20211(図7A)にアクセスする。
【0046】
図7A−7Bにおいて、マルチテクスチャモード200での動的に構成可能なテクスチャキャッシュ44の概念図を示す。図6A−6Bのキャッシュのセットアソシエイティブが4ウェイ(n=4)であるものは、2つの2ウェイのセットアソシエイティブサブキャッシュC0とC1とを作成するために、スプリットまたは分割されている。したがって、サブキャッシュC0中の1つのインデックス、Tex0 INDEX[3:0]によって選び出されることになる2つのエントリがある。同様に、サブキャッシュC1中の1つのインデックス、Tex1 INDEX[3:0]によって選び出されることになる2つのエントリがある。サブキャッシュC0は、2ウェイ“ウェイ0”と“ウェイ1”とを含む。サブキャッシュC0は、少なくとも2つのキャッシュブロック、ウェイ0とウェイ1とを持つ。ウェイ0ブロックは、Tex0 ウェイ0タグラム20200を含み、ウェイ1ブロックは、Tex0 ウェイ1タグラム20201を含む。それぞれのブロック、ウェイ0とウェイ1は、ウェイ0の有効ビットインジケータ20400と、ウェイ1の有効ビットインジケータ20401とをさらに含む(ここで、添字の第1桁は、テクスチャマップを表し、第2桁は、ウェイを表す)。サブキャッシュC1は、2ウェイ(“ウェイ0”と“ウェイ1”)を含む。サブキャッシュC1は、2つのブロック、ウェイ0のブロックとウェイ1のブロックとを持つ。ウェイ0のブロックは、Tex1 ウェイ0のタグラム20200を含み、ウェイ1のブロックは、Tex1 ウェイ1のタグラム20211を持つ。サブキャッシュC1のウェイ0のブロックは、ウェイ0の有効ビットインジケータ20410をさらに含み、ウェイ1のブロックは、ウェイ1の有効ビットインジケータ20411を持つ。
【0047】
有効ビットインジケータは、サブキャッシュC0またはC1への所定のエントリが、有効データを含むことを示す。ウェイ0の有効ビットインジケータ20400と20401とは、それぞれラインL300、L310上で出力を生み出す。ウェイ1の有効ビットインジケータ20410と20411とは、それぞれラインL301、L311上で出力を生み出す。
【0048】
サブキャッシュC0のタグラム20200、20201のそれぞれは、3つの入力を受け取る。第1の入力は、バッチB中のそれぞれのピクセルに対する、ラインL20上のTex0 TAG_INであり、太線で示した。第2の入力は、L40上のインデックス、Tex0 INDEX[3:0]であり、2つの点によって後続される破線として示した。インデックスを使用して、タグラム20200、20201にアクセスする。それぞれのウェイタグラム20200、20201に対する第3の入力は、ウェイ選択器1060からの、ラインL100上のものである。
【0049】
有効ビットインジケータ20400と20401の出力は、それぞれラインL300、L310上で出力を生み出し、これらは、比較器21400と21401とにそれぞれ送られる。さらに、サブキャッシュC0のタグラム20200,20201からのラインL200、L210上の出力は、比較器21400と21401とにそれぞれ送られる。比較器21400と21401とはまた、Tex0 TAG_INを受け取る。
【0050】
しかしながら、ラインL300、L310、L301、またはL311の任意の1つ上の有効ビットが、“0”である場合、その有効ビットに関係する比較は使用されない。さらに、ラインL6上のアクティブビットは、3Dグラフィックスパイプライン60において、特に使用され、上に説明したのと同様な方法で機能する。
【0051】
比較器21400、21401による比較は、サブキャッシュC0の2ウェイのタグラム20200、20201からの、それぞれラインL200、L210上での、2つの可能性あるタグコンテンツと、到来しているピクセルのタグTex0 TAG_INとの間で実行される。比較器21400、21401からの2つの比較の内の1つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、オペランド2160からのラインL500上の出力は、サブキャッシュヒットを表す。例として、オペランド2160は、ANDゲートとして表される。そうではない場合、オペランド2160からのラインL500上の出力は、キャッシュミスを表す。比較器21400、21401がラインL400、L410上で、それぞれの比較の結果を出力し、これらは、オペランドゲート2160の入力に供給される。オペランドゲート2160はまた、ラインL6上で、アクティブビットを表す入力を受け取る。
【0052】
サブキャッシュC1のタグラム20210、20211のそれぞれは、3つの入力を受け取る。第1の入力は、バッチB中のそれぞれのピクセルに対する、ラインL21上のTex1 TAG_INであり、太線で示した。第2の入力は、L41上のインデックス、Tex1 INDEX[3:0]であり、2つの点によって後続される破線として示した。インデックスを使用して、タグラム20210、20211にアクセスする。それぞれのタグラム20210、20211の第3の入力は、ウェイ選択器1061からの、ラインL101上のものである。
【0053】
有効ビットインジケータ20410と20411の出力は、それぞれラインL301、L311上で出力を生み出し、これらは、比較器21410と21411にそれぞれ送られる。さらに、サブキャッシュC1のタグラム20210,20211からのラインL201、L211上の出力は、比較器21410と21411にそれぞれ送られる。比較器21410と21411はまた、Tex1 TAG_INを受け取る。
【0054】
比較器21410、21411による比較は、サブキャッシュC1の2ウェイのタグラム20210、20211からの、それぞれラインL201、L211上の、2つの可能性あるタグコンテンツと、到来しているピクセルのタグTex1 TAG_INとの間で実行される。比較器21410、21411からの2つの比較の内の1つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、ANDゲート2161からのラインL501上の出力は、サブキャッシュヒットを表す。そうではない場合、オペランドゲート2161からのラインL501上の出力は、サブキャッシュミスを表す。比較器21410、21411がラインL401、L411上で、それぞれの比較の結果を出力し、これらは、オペランドゲート2161の入力に供給される。オペランドゲート2161はまた、ラインL6上で、アクティブビットを表す入力を受け取る。
【0055】
最終ステージにおいて、サブキャッシュC0とサブキャッシュC1の出力は、マルチプレクサ218に入力される。マルチプレクサ218は、ラインL500、L511上の出力をマルチプレクスして、ラインL60上に、新しいマルチプレクスされた出力を形成する。ラインL60上の出力は、フェッチ制御装置48に送られるフェッチ要求を表す。マルチプレクスされた出力は、一度に、1つのフェッチ要求を送る。
【0056】
特に図7Bを参照して、サブキャッシュC0またはC1のキャッシュラインすなわちブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム22000、22001、または、22010、22011から、それぞれラインL700、L710、またはL701、またはL701の内の1つ上で読み出される。サブキャッシュC0中のラインL700、L710上の出力テクスチャデータが、マルチプレクサ2220に送られる。サブキャッシュC1中のラインL701、L711上の出力テクスチャデータが、マルチプレクサ2221に送られる。マルチプレクサ2220と2221からの出力は、それぞれラインL800とL801上で、複数のテクスチャマップとして、テクスチャマッピングエンジン66Aに送られる。
【0057】
ウェイ選択器2060からのラインL100上の出力を使用して、マルチプレクサ2220を制御する。同様に、ウェイ選択器2061からのラインL101上の出力を使用して、マルチプレクサ2221を制御する。それぞれのウェイデータラム2200、2201、1203が、ラインL1上で、メイン(外部)メモリ40から対応するテクスチャマップデータを代入される。2100、2101として表したインバータは、フィードバックラインL80、L81上で送られたビットを反転する。フィードバックラインL80、L81は、それぞれ、ウェイ選択器2060、2061のTex0ウェイ選択ビット2080と、Tex1ウェイ選択ビット2081とに対して、反転されたビットをループバックするように結合されている。
【0058】
上記の実施形態は、動的に構成可能なテクスチャキャッシュ44を、容易に構成可能にすることで、1つのキャッシュを使用して、シングルテクスチャモード100またはマルチテクスチャモード200の内の1つにおいて、テクスチャマッピングエンジン66Aを最適化させている。さらに、コンフリクトミスは、一般的に発生しない。さらに、2つ以上(M=2)のテクスチャマップTMは、互いに繰り返し参照することなく、および/または、冗長なメモリトラフィックを生成させることがないだろう。
【0059】
動的に構成可能なテクスチャキャッシュ44のあらゆる可能な構成(例えば、再構成可能なnウェイのセットアソシエイティブテクスチャキャッシュ)を説明することは難しい。しかしながら、マルチテクスチャモード200であるとき、キャッシュ44は、それぞれのテクスチャマップに専用の、n/M個のセットアソシエイティブテクスチャサブキャッシュを持つように構成すべきである。nとMは、1より大きい整数であり、nはMによって割ることができる。Mの値は、テクスチャマップの数であってもよい。この例において、Mは、2つのサブキャッシュを提供する2であり、それぞれのサブキャッシュは、2つのテクスチャマップのそれぞれのもの専用である。
【0060】
1つ以上の例示的な実施形態において、説明した機能を、ハードウェアや、ソフトウェアや、ファームウェアや、または、これらの任意の組み合わせによって実現してもよい。ソフトウェアで実現される場合、機能を、コンピュータ読取可能媒体中の1つ以上の命令またはコードとして記憶させてもよく、あるいは、コンピュータ読取可能媒体上で送信してもよい。コンピュータ読取可能媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にさせる任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であってもよい。例として、これらに制限される訳ではないが、このようなコンピュータ読取可能媒体は、RAM、ROM、EEPROM、CD−ROM、および他の光学ディスク、磁気ディスクストレージまたは磁気ストレージ装置、あるいは、所望のプログラムコードを命令またはデータ構造の形態で搬送または記憶するのに使用されることができ、かつ、コンピュータによってアクセスされることができる、他の任意の媒体を含むことができる。また、任意の接続は、厳密にコンピュータ読取可能媒体として呼ばれる。例えば、ソフトウェアが、ウェブサイト、サーバ、または、他の遠隔源から、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線(DSL)、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術を使用して送られる場合、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線(DSL)、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術は、媒体の定義に含まれるものとする。ディスク(diskとdisc)は、ここで使用するように、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク、ブルーレイ(登録商標)ディスクを含み、ここで、ディスク(disk)は、通常は、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記のものの組み合わせがまた、コンピュータ読取可能媒体の範囲内に含まれるだろう。
【0061】
開示した実施形態のこれまでの記述は、当業者が本発明を製作または使用できるように提供した。これらの実施形態に対するさまざま改良は当業者に容易に明らかとなり、ここに定義された一般的な原理は、本発明の精神および範囲を逸脱することなく、他の実施形態に適用されてもよい。したがって、本発明はここに示された実施形態に限定されることを意図しているものではなく、ここで開示されている原理および新しい特徴と一致した最も広い範囲に一致させるべきである。
【分野】
【0001】
本開示は、一般的にグラフィックスに関連し、より詳細には、テクスチャキャッシュを動的に構成するための技術に関連する。
【背景】
【0002】
テクスチャマッピングは、コンピュータ生成されたシーンにリアル感を付け加えるための3Dグラフィックスパイプラインにおける、最も成功しており、人気のある技術の内の1つである。テクスチャマッピング(TM)プロセスの特性が、複数のテクスチャルックアップを含むので、一般的なテクスチャマッピング(TM)プロセスは、高度にメモリアクセス集中的である。頻繁なテクスチャルックアップは、メモリバス上でのボトルネックをもたらす。この問題に対処するために、テクスチャキャッシュが使用されることが多い。テクスチャキャッシュは、外部メモリ源(例えば、オフチップメモリ)からテクスチャをフェッチすることの冗長性をなくす働きをし、三角形のラスタ化の自然な空間局所性を利用する。
【0003】
グラフィックスアプリケーションは、一般的にバッチモードで描画コマンドを送る。バッチモードでは、すべてのピクセルが、バッチ中で、同一のコンテクスト状態レジスタを共有する。シングルテクスチャバッチ中で、すべてのピクセルは、1つのシングルテクスチャマップからテクセル(texels)をフェッチする。しかしながら、マルチテクスチャバッチモードにおいて、異なる複数のテクスチャが、1つのキャッシュ内部に記憶されている場合、コンフリクトミスが発生する可能性が非常に高い。2つのテクスチャマップが同一のキャッシュラインに割り当てられている、または、割り振られている場合、これらの2つのテクスチャマップは互いに繰り返し参照することになり、冗長なメモリトラフィックを生み出すだろう。
【0004】
以上のことを鑑みると、異なるテクスチャマップに対して1つのキャッシュを使用することは、電力とピクセルパフォーマンスを減少させる。
【0005】
したがって、テクスチャキャッシュを動的に構成するための技術に対する技術的な需要がある。
【発明の概要】
【0006】
テクスチャキャッシュを動的に構成するための技術をここで説明する。1つの実施形態では、動的に構成可能なキャッシュを持つグラフィックス処理ユニットを具備するワイヤレス装置が提供される。動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ。ここで、nとMは1より大きい整数であり、nはMによって割り切れる。ワイヤレス装置は、グラフィックス処理ユニットに結合されているメモリも具備する。
【0007】
別の観点では、グラフィックス処理ユニットは、選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバを含む。ユニットはまた、シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュも含み、ここで、nとMは1より大きい整数であり、nはMによって割り切れる。
【0008】
さらに別の観点では、コンピュータ読取可能媒体を備えるコンピュータプログラム製品は、コンピュータに選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを機械に決定させる命令を持つ。命令は、機械に、シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成させる。命令はまた、機械に、マルチテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割させ、ここで、nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応する。
【0009】
本開示のさまざまな観点と実施形態を以下でさらに詳細に説明する。
【0010】
本発明の観点と実施形態とは同じ参照符号が全体に渡って対応的に同定する図面と共に考慮されたとき以下に述べる詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【0011】
【図1】図1は、ワイヤレス装置のブロック図を示す。
【図2】図2は、グラフィックス処理ユニットの一般的なブロック図を示す。
【図3A】図3Aは、従来の3次元(3D)パイプラインを示す。
【図3B】図3Bは、従来のピクセルレンダリングステージを示す。
【図4】図4は、動的に構成可能なテクスチャキャッシュの一般的なブロック図を示す。
【図5A】図5Aは、シングルテクスチャモード中のピクセルバッチを示す。
【図5B】図5Bは、マルチテクスチャモード中のピクセルバッチを示す。
【図6A】図6Aは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図6B】図6Bは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図7A】図7Aは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図7B】図7Bは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図8】図8は、メインメモリ中に記憶されたアプリケーションの一般的なブロック図を示す。
【詳細な説明】
【0012】
語“例示的”はここでは“例、事例、または実例として機能”することを意味させるために使用される。“例示的”としてここで説明されている任意の実施形態または設計は、他の実施形態または設計に対して好ましいまたは有利なものとして解釈される必要性はない。
【0013】
多くのゲームアプリケーションは、2次元(2D)空間(例えば、ディスプレイスクリーン)に3Dオブジェクトを表示する、3次元(3D)グラフィックスアプリケーションを必要とする。2Dグラフィックスにおけるピクセルは、位置、色、および輝度のプロパティを持つ一方、3Dピクセルは、仮想上のZ軸に存在するポイントを示す深度プロパティを加える。3Dピクセルとして作成されたテクスチャは、それ自身の深度値とともにそれぞれ結合される。
【0014】
ワイヤレス通信、コンピューティング、ネットワーキング、パーソナルエレクトロニクス等に対して、ここで説明した技術を使用してもよい。ワイヤレス通信に対する技術の例示的な使用について、以下で説明する。
【0015】
図1は、ワイヤレス通信システムにおける、ワイヤレス装置10の実施形態のブロック図を示す。ワイヤレス装置10は、セルラ電話機またはカメラ付き電話機、端末、ハンドセット、パーソナルデジタルアシスタント(PDA)、あるいは、他の何らかの装置であってもよい。ワイヤレス通信システムは、コード分割多重アクセス(CDMA)システム、移動体通信のための国際システム(GSM)システム、または、他の何らかのシステムであってもよい。
【0016】
ワイヤレス装置10は、受信パスと送信パスとを介した、2分割性通信を提供することができる。受信パスにおいて、基地局によって送信された信号が、アンテナ12によって受信され、受信機(RCVR)14に提供される。受信機14は、受信信号を調整してデジタル化し、さらなる処理のためにデジタルセクション20にサンプルを提供する。送信パスにおいて、送信機(TMTR)16は、送信されることになるデータをデジタルセクション20から受取り、データを処理して調整し、変調された信号を生成させ、変調された信号は、アンテナ12を介して基地局へと送信される。
【0017】
デジタルセクション20は、さまざまな処理、インターフェース、およびメモリユニット、例えば、モデムプロセッサ22、ビデオ信号プロセッサ24、制御装置/プロセッサ26、ディスプレイプロセッサ28、ARM/DSP32、グラフィックス処理ユニット(GPU)34、内部メモリ36、外部バスインターフェース(EBI)38を備える。モデムプロセッサ22は、データ送信と受信のための処理(例えば、エンコーディング、変調、復調、およびデコーディング)を実行する。ビデオプロセッサ24は、キャムコーダ、ビデオ再生、およびビデオ会議のようなビデオアプリケーション用の、ビデオコンテンツ(例えば、静止画、ビデオ動画、テキスト動画)上で処理を実行する。制御装置/プロセッサ26は、デジタルセクション20内のさまざまな処理およびインターフェースユニットの動作を指示してもよい。ディスプレイプロセッサ28は、ディスプレイユニット30上で、ビデオ、グラフィックス、およびテキストの表示を容易にさせるための処理を実行する。ARM/DSP32は、ワイヤレスデバイス10のためのさまざまなタイプの処理を実行してもよい。グラフィックス処理ユニット34は、グラフィックス処理を実行する。
【0018】
デジタルセクション20中の任意のプロセッサ、例えば、グラフィックス処理ユニット34に対して、ここで説明した技術を使用してもよい。内部メモリ36は、デジタルセクション20内のさまざまなユニットに対するデータおよび/または命令を記憶する。EBI38は、バスまたはデータラインDLを通して、デジタルセクション20(例えば、内部メモリ36)と、メインメモリ40との間のデータの転送を容易にさせる。
【0019】
デジタルセクション20は、1つ以上のDSP、マイクロプロセッサ、RISC等で実現されてもよい。デジタルセクション20はまた、1つ以上の特定用途向け集積回路(ASIC)、または、他の任意のタイプの集積回路(IC)で製造されていてもよい。
【0020】
ここで説明した技術を、さまざまなハードウェアユニットで実現してもよい。例えば、ASIC、DSP、RISC、ARM、デジタル信号処理装置(DSPD)、プログラム可能論理装置(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)、プロセッサ、制御装置、マイクロ制御装置、マイクロプロセッサ、および、他の電子ユニットで技術を実現してもよい。
【0021】
図2は、一般的に34として表した、グラフィックス処理ユニットGPUの一般的なブロック図を示す。GPU34は、3次元(3D)スイッチドライバ42と、動的に構成可能なテクスチャキャッシュ44とを備える。3Dスイッチドライバ42は、キャッシュ44を再構成させるためのスイッチング制御信号SW1を提供する。GPU34はまた、後で詳細に説明することになる3Dグラフィックスパイプライン60を備える。さらに、GPU34は、フェッチ制御装置48を持つプロセッサ46を備える。フェッチ制御装置48は、1つ以上のテクスチャマップTMから要求されたテクスチャデータをフェッチするためのコマンドを生成するように機能する。
【0022】
図8は、メインメモリ40中に記憶されたアプリケーションA1・・・AZを示す。記憶されたアプリケーションA1・・・AZは、ゲームアプリケーション、または他のグラフィックスアプリケーションを含んでもよい。それぞれのアプリケーションは、それとともに、テクスチャタイプTTと、1つ以上のテクスチャマップTMを関係付けしている。操作において、選択されたアプリケーションに依拠して、3Dスイッチドライバ42は、選択されたアプリケーションを構文解析し、選択されたアプリケーションに対して、どのテクスチャ(シングルまたはマルチプルテクスチャ)タイプTTがイネーブルされているかを決定する。この後で、3Dスイッチドライバ42は、スイッチ制御信号SW1を生成させて、シングルテクスチャモードまたはマルチテクスチャモードに対して、キャッシュ44を再構成させる。テクスチャマッピングは、少なくとも1つのテクスチャマップTMを介して、2Dテクスチャ画像を3Dオブジェクトの表面にマップするシェーディング技術である。2Dテクスチャ画像は、メイン(外部)メモリ40に記憶されている。テクスチャ画像の個別のエレメントをテクセルと呼ぶ。
【0023】
また、図3Aと3Bとを参照して、一般的に、それぞれ、60と64として表す、従来の3Dグラフィックスパイプラインと、ピクセルレンダリングステージとの実施形態を示す。3Dグラフィックスパイプライン60は、ディスプレイユニット30上での3D表現の全体のタスクを、少なくとも2つのパイプラインステージに分ける。すなわち、頂点処理ステージ62と、ピクセルレンダリングステージ64とである。操作において、頂点処理ステージ62は、オープンGL(登録商標)または、オープンGLのESにおいて現在実装されているすべての機能、または、機能のサブセットを含んでもよい。
【0024】
ピクセルレンダリングステージ64は、ラスタ化、混色、テクスチャアプリケーション動作66と、隠れ表面除去動作68とを含む。それにもかかわらず、ピクセルレンダリングステージ64は、オープンGLまたは、オープンGLのESによって規定されている他の動作を含んでもよい。ピクセルレンダリングステージ64は、頂点処理ステージ62からの3Dオブジェクトについての情報を、ディスプレイユニット30上で表示することができるビットマップへと変換する。ピクセルレンダリングステージ64は、入力された3つの組を処理して、3Dグラフィックス画像のピクセル表現を生成する。ラスタ化、混色、テクスチャアプリケーション動作66の間に、テクスチャマッピングエンジン66Aは、テクスチャリング動作を実行する。
【0025】
図4を参照して、動的に構成可能なテクスチャキャッシュ44の一般的なブロック図を示す。GPU34の動的に構成可能なテクスチャキャッシュ44は、選択されているアプリケーションにおいて、シングルテクスチャマッピングがイネーブルされているときには、シングルテクスチャモード100で、選択されているアプリケーションにおいて、マルチテクスチャマッピングがイネーブルされているときには、マルチテクスチャモード200での内の1つで動作するように動的に構成可能/再構成可能である。シングルテクスチャモード100で、動的に構成可能なテクスチャキャッシュ44の概念図は、図6A−6Bにおいて最もよく分かる。シングルテクスチャモード100での、動的に構成可能なテクスチャキャッシュ44は、nウェイ(n-way)のセットアソシエイティブキャッシュである。例示的な実施形態において、nは偶数である。説明する実施形態では、nは4に等しい。例示的な実施形態では、4ウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャルックアップを取り扱うための、およそ4KBのサイズを持ち、それぞれのキャッシュラインは128ビットワイドである。シングルテクスチャモード100中で、動的に構成可能なテクスチャキャッシュ44は、パスごとに最大2つのテクスチャをサポートするように設計されている。
【0026】
説明の目的で、それぞれのピクセルに対する、パス手段ごとの2つのテクスチャは、複数のパスを通過することなく、そのトップにおいて、2つの異なるテクスチャマップからテクセルが同時にマッピングされている。例えば、キャッシュが、シングルテクスチャマッピングだけをサポートする場合、マルチテクスチャマッピング効果を達成するために、それぞれのピクセル上で、シングルテクスチャマッピングを複数回実行されなければならない。したがって、複数のパスを通過することなく、それぞれのピクセルに対する、パス手段ごとのマルチプルテクスチャは、複数の(異なる)テクスチャマップからテクセルが同時にマッピングされている。
【0027】
ここで、図5Aを参照して、シングルテクスチャモードのための一般的にBとして表すバッチのブロック図を示す。グラフィックスアプリケーションは、一般的に描画コマンドをバッチモードで送り、バッチB中の、PIXELB1、PIXELB2、・・・PIXELBXとして表した、すべてのピクセルは、同一のコンテクスト状態レジスタ50を共有する(ここで、Xは、バッチ中のピクセルの数に等しい)。
【0028】
テクスチャタイプTTによって決定されるように、シングルテクスチャモードにおいて、すべてのピクセルPIXELB1、PIXELB2、・・・PIXELBXは、単一のテクスチャマップTMからテクセルをフェッチする。テクスチャマップTMは、1つのシングルテクスチャマップである。2つのテクスチャ(マルチテクスチャモード)バッチにおいて、それぞれのピクセルPIXELB1、PIXELB2、・・・PIXELBXは、2つの異なるテクスチャマップからテクセルをフェッチする(ここで、Xは、バッチ中のピクセルの数に等しい)。
【0029】
例示的な実施形態において、あらゆるピクセルPIXELB1、PIXELB2、・・・PIXELBXは、ピクセルに対するテクスチャアドレスと、他の情報とを生成させる。ピクセルのテクスチャアドレスは、対応するタグとインデックスとを持ち、これらは、それぞれTAG_INと、INDEX[3:0]として表される。コンポーネント[3:0]は、アドレッシングフォーマットに対応している。ここで、“[3:0]”は、4桁(0,1,2,3)のバイナリアドレスを表す呼び方である。したがって、(例示的な実施形態の)インデックスは、24距離のアドレスを持つ。インデックスを使用して、タグラム1020,1021,1022,1023にアクセスする(図6A)。タグラム1020,1021,1022,1023の添字もまた、ウェイに対応する。0の添字は、ウェイ0に対応し、添字1はウェイ1に対応し、添字2はウェイ2に対応し、そして、添字3すなわち(n−1)はウェイ3(n−1)に対応する。
【0030】
図6A−6Bにおいて、シングルテクスチャモード100で、動的に構成可能なテクスチャキャッシュ44の概念図を示した。キャッシュのセットアソシエイティブは、4ウェイ(n=4)である。したがって、1つのインデックス、INDEX[3:0]によって選択されることになる、4つのエントリまたはキャッシュラインがある。図6Aにおいて最もよく分かるように、シングルテクスチャモード100でのキャッシュ44は、n−キャッシュブロックを含み、ここでそれぞれのブロックは、ウェイタグラム1020、1021、1022、または1023と、ウェイ有効ビットインジケータ1040、1041、1042、または1043とを含む。図6Bにおいて最もよく分かるように、それぞれのブロックは、ウェイデータラム1200、1201、1202、または1203をさらに含む。それぞれのブロックはまた、完全な“キャッシュライン”を表す。
【0031】
動的に構成可能なテクスチャキャッシュ44は、nの“キャッシュライン”によって構成される。それぞれのキャッシュラインは、インデックスにより選択される。キャッシュ44は、3Dハードワイヤードパイプラインと、メイン(外部)メモリ40との間のメモリ階層のレベルである。3Dグラフィックスパイプライン60が、メイン(外部)メモリ40にテクセルをリードバックするようにアドレスを送るとき、3Dグラフィックスパイプライン60は、最初に、データ(テクセル)が動的に構成可能なテクスチャキャッシュ44の内部にあるか否かをチェックする。アドレスは、キャッシュラインを選択するために使用され、INDEX[3:0]として表されるインデックスと、キャッシュのタグフィールドの値と比較するのに使用され、TAG_INとして表されるタグフィールドとに分けられる。一致が存在する場合、このことは、キャッシュ44内部にコンテンツが存在すること、特に、キャッシュラインが一致するものを持っていることを意味する。
【0032】
一般的なキャッシュにおいて、それぞれのキャッシュラインは、有効ビットインジケータを持つ。例示的な実施形態では、有効ビットの値は、(1)Valid_Bit=“1”と、(2)Valid_Bit=“0”とを含み、(1)Valid_Bit=“1”は、このキャッシュライン中に記憶されている有効なコンテンツがあることを意味し、(2)Valid_Bit=“0”は、キャッシュラインが空であることを意味する。有効ビットは、レジスタによって実現され、信号をリセットすることによって、“0”に初期化される。
【0033】
有効ビットインジケータは、各ウェイタグラム1020、1021、1022、および1023にそれぞれ関係付けられている。したがって、ウェイ0タグラム1020は、有効ビットインジケータ1040に関係付けられている。ウェイ1タグラム1021は、有効ビットインジケータ1041に関係付けられている。ウェイ2タグラム1022は、有効ビットインジケータ1042に関係付けられている。ウェイ3タグラム1023は、有効ビットインジケータ1043に関係付けられている。有効ビットインジケータは、キャッシュ44中の所定のエントリが、有効なデータを含んでいることを示す。ウェイ有効ビットインジケータ1040、1041、1042、および1043は、それぞれ、ラインL30、L31、L32、およびL33上で、出力を生み出す。
【0034】
それぞれのウェイタグラム1020、1021、1022、および1023は、3つの入力を受け取る。ラインL2上の第1の入力は、バッチB中のそれぞれのピクセルに対する、TAG_INであり、太線で示した。L4上の第2の入力は、インデックスであり、INDEX[3:0]として表し、2つの点によって後続される破線として示した。インデックスを使用して、ウェイタグラム1020、1021、1022、および1023にアクセスする。それぞれのウェイタグラム1020、1021、1022、および1023の第3の入力は、点線で示したウェイ更新デコーダ112からの、点線で示されたものである。ウェイ更新デコーダ112は、ウェイ選択器106から、ラインL10上で入力を受け取る。
【0035】
以下の説明から分かることになるように、ラインL4上のインデックスINDEX[3:0]は、キャッシュラインの1つのウェイタグラム1020,1021,1022,および1023を選択し、次にこれが、対応する出力ラインL20、L21、L22、またはL23上で、記憶されているタグ値を出力する。
【0036】
ウェイ選択器106は、ウェイ選択ビット108を含む。ウェイ選択ビット108の出力は、ウェイ更新デコーダ112による処理のためにラインL10に供給される。ウェイ選択ビット108の出力は、また、累積器110にも供給され、累積器110は、ウェイ選択ビット108の出力に対して1を加える。(106とラベル付けされたボックス中の)番号2は、2ビット信号を表す。ラインL8上の出力は、ウェイ選択ビット108に、ループバックされる。ウェイ更新デコーダ112は、点線として示したように、ラインL12、L14、L16、およびL18上で、制御ビットを出力して、nウェイのアソシエイティブセットの内の1つを選択する。ウェイ更新デコーダ112は、ラインL10上で2ビット信号を受け取り、1ビット信号を生成して、nブロック、すなわち、ウェイタグラム1020、1021、1022、および1023、ならびに/あるいは、図6Bに示したキャッシュラインのウェイデータラムの内の任意のものを選択する。
【0037】
キャッシュ44中でミスが発生するとき、要求されたデータは、1つのキャッシュラインに進むべきであり、そのキャッシュラインを占めているデータが置換されなければならない。nウェイのアソシエイティブキャッシュにおいて、n個のデータラム1200、1201、1202、および1203の選択を使用して、要求されたデータを置換する。ウェイ選択器106は、nウェイの内の、どのキャッシュラインを置換すべきかをピックアップする。
【0038】
ウェイ有効ビットインジケータ1040、1041、1042、および1043の出力は、それぞれラインL30、L31、L32、およびL33上に出力を生み出し、これらは、比較器1140、1141、1142、および1143にそれぞれ送られる。加えて、ウェイタグラム1020、1021、1022、および1023からの、ラインL20、L21、L22、およびL23上の出力は、それぞれ比較器1140、1141、1142、および1143に送られる。比較器1140、1141、1142、および1143はまた、ラインL2からの入力として、TAG_INを受け取る。
【0039】
比較器1140、1141、1142、および1143による比較は、タグラム1020、1021、1022、および1023からの、それぞれラインL20、L21、L22、およびL23上の、4つの(n=4の)可能性あるタグコンテンツと、到来しているピクセルのタグTAG_INとの間で実行される。比較器1140、1141、1142、および1143からの4つの比較の内の1つが一致の結果をもたらす場合、このような一致はキャッシュヒットを暗示する。したがって、オペランド116からのラインL50上の出力は、キャッシュヒットを表す。例として、オペランド116は、ANDゲートとして表される。そうではなく、何の一致もない場合、オペランド116からのラインL50上の出力は、キャッシュミスを表す。比較器1140、1141、1142、および1143が、ラインL40、L41、L42、およびL43上で、それらの比較の結果をそれぞれ出力し、これらは、オペランドゲート116の入力に供給される。オペランドゲート116はまた、アクティブビットを表すラインL6上でも入力を受け取る。オペランド116からの、ラインL50上の出力がミスを表している場合、出力は、フェッチ制御装置48に送られるフェッチ要求である。フェッチ制御装置48は、次に、バスまたはデータラインDLを介して通信して、メイン(外部)メモリ40から必要なテクスチャマップデータを取得する。
【0040】
しかしながら、ラインL30、L31、L32、L33の内の任意の1つ上の有効ビットが、“0”である場合、その有効ビットに関係する比較は使用されない。
【0041】
図6Bを特に参照して、キャッシュラインまたはブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム1200、1201、1202、または1203から、それぞれラインL70、L71、L72、またはL73の内の1つ上で読み出される。ラインL70、L71、L72、またはL73上の出力テクスチャデータが、マルチプレクサ122に送られる。マルチプレクサ122からの出力は、ラインL80上でテクスチャマッピングエンジン66Aに送られる。
【0042】
ウェイ選択器106からのラインL10上での出力を使用して、マルチプレクサ122を制御する。それぞれのウェイデータラム1200、1201、1202、または1203が、メイン(外部)メモリ40からラインL1上で、対応するテクスチャマップデータを代入される。
【0043】
ラインL6上のアクティブビットは、3Dグラフィックスパイプライン60において、特に使用される。ピクセルがテクスチャルックアップを必要としないときもある。この特定のケースにおいて、ラインL6上のアクティブビットはまた、“0”に設定される。したがって、キャッシュ44は、このピクセルを操作しないだろう。
【0044】
テクスチャマッピングエンジン66Aが、マルチテクスチャモードであるとき、バッチB中で、PIXELB1、PIXELB2、・・・PIXELBX、として示したピクセルは、複数の異なるテクスチャマップTMからテクセルをフェッチする。
【0045】
ここで、図5Bを参照して、マルチテクスチャモードでのバッチのブロック図を示す。例示的な実施形態では、マルチテクスチャモードは、2つのテクスチャマップに関連する。それにもかかわらず、2つ以上のテクスチャマップを使用してもよい。2つのテクスチャバッチに対して、ピクセルPIXELB1、PIXELB2、・・・PIXELBXのそれぞれは、2つの異なるテクスチャマップからテクセルをフェッチする(ここで、Xは、バッチ中のピクセルの数に等しい)。あらゆるピクセルPIXELB1、PIXELB2、・・・PIXELBXは、第1のテクスチャアドレスフィールド0と、第2のテクスチャアドレスフィールド1と、他のピクセル情報のためのフィールドとを生成する。第1のテクスチャアドレスフィールド0は、サブキャッシュC0に対する、Tex0 TAG_INと、Tex0 INDEX[3:0]として表されるタグとインデックスを持つ。第2のテクスチャアドレスフィールド1は、サブキャッシュC1に対する、Tex1 TAG_INと、Tex1 INDEX[3:0]として表されるタグとインデックスを持つ。インデックス、Tex0 INDEX[3:0]を使用して、サブキャッシュC0のTex0ウェイタグラム20200、20201(図7A)にアクセスする。インデックス、Tex1 INDEX[3:0]を使用して、サブキャッシュC1のTex1ウェイタグラム20210、20211(図7A)にアクセスする。
【0046】
図7A−7Bにおいて、マルチテクスチャモード200での動的に構成可能なテクスチャキャッシュ44の概念図を示す。図6A−6Bのキャッシュのセットアソシエイティブが4ウェイ(n=4)であるものは、2つの2ウェイのセットアソシエイティブサブキャッシュC0とC1とを作成するために、スプリットまたは分割されている。したがって、サブキャッシュC0中の1つのインデックス、Tex0 INDEX[3:0]によって選び出されることになる2つのエントリがある。同様に、サブキャッシュC1中の1つのインデックス、Tex1 INDEX[3:0]によって選び出されることになる2つのエントリがある。サブキャッシュC0は、2ウェイ“ウェイ0”と“ウェイ1”とを含む。サブキャッシュC0は、少なくとも2つのキャッシュブロック、ウェイ0とウェイ1とを持つ。ウェイ0ブロックは、Tex0 ウェイ0タグラム20200を含み、ウェイ1ブロックは、Tex0 ウェイ1タグラム20201を含む。それぞれのブロック、ウェイ0とウェイ1は、ウェイ0の有効ビットインジケータ20400と、ウェイ1の有効ビットインジケータ20401とをさらに含む(ここで、添字の第1桁は、テクスチャマップを表し、第2桁は、ウェイを表す)。サブキャッシュC1は、2ウェイ(“ウェイ0”と“ウェイ1”)を含む。サブキャッシュC1は、2つのブロック、ウェイ0のブロックとウェイ1のブロックとを持つ。ウェイ0のブロックは、Tex1 ウェイ0のタグラム20200を含み、ウェイ1のブロックは、Tex1 ウェイ1のタグラム20211を持つ。サブキャッシュC1のウェイ0のブロックは、ウェイ0の有効ビットインジケータ20410をさらに含み、ウェイ1のブロックは、ウェイ1の有効ビットインジケータ20411を持つ。
【0047】
有効ビットインジケータは、サブキャッシュC0またはC1への所定のエントリが、有効データを含むことを示す。ウェイ0の有効ビットインジケータ20400と20401とは、それぞれラインL300、L310上で出力を生み出す。ウェイ1の有効ビットインジケータ20410と20411とは、それぞれラインL301、L311上で出力を生み出す。
【0048】
サブキャッシュC0のタグラム20200、20201のそれぞれは、3つの入力を受け取る。第1の入力は、バッチB中のそれぞれのピクセルに対する、ラインL20上のTex0 TAG_INであり、太線で示した。第2の入力は、L40上のインデックス、Tex0 INDEX[3:0]であり、2つの点によって後続される破線として示した。インデックスを使用して、タグラム20200、20201にアクセスする。それぞれのウェイタグラム20200、20201に対する第3の入力は、ウェイ選択器1060からの、ラインL100上のものである。
【0049】
有効ビットインジケータ20400と20401の出力は、それぞれラインL300、L310上で出力を生み出し、これらは、比較器21400と21401とにそれぞれ送られる。さらに、サブキャッシュC0のタグラム20200,20201からのラインL200、L210上の出力は、比較器21400と21401とにそれぞれ送られる。比較器21400と21401とはまた、Tex0 TAG_INを受け取る。
【0050】
しかしながら、ラインL300、L310、L301、またはL311の任意の1つ上の有効ビットが、“0”である場合、その有効ビットに関係する比較は使用されない。さらに、ラインL6上のアクティブビットは、3Dグラフィックスパイプライン60において、特に使用され、上に説明したのと同様な方法で機能する。
【0051】
比較器21400、21401による比較は、サブキャッシュC0の2ウェイのタグラム20200、20201からの、それぞれラインL200、L210上での、2つの可能性あるタグコンテンツと、到来しているピクセルのタグTex0 TAG_INとの間で実行される。比較器21400、21401からの2つの比較の内の1つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、オペランド2160からのラインL500上の出力は、サブキャッシュヒットを表す。例として、オペランド2160は、ANDゲートとして表される。そうではない場合、オペランド2160からのラインL500上の出力は、キャッシュミスを表す。比較器21400、21401がラインL400、L410上で、それぞれの比較の結果を出力し、これらは、オペランドゲート2160の入力に供給される。オペランドゲート2160はまた、ラインL6上で、アクティブビットを表す入力を受け取る。
【0052】
サブキャッシュC1のタグラム20210、20211のそれぞれは、3つの入力を受け取る。第1の入力は、バッチB中のそれぞれのピクセルに対する、ラインL21上のTex1 TAG_INであり、太線で示した。第2の入力は、L41上のインデックス、Tex1 INDEX[3:0]であり、2つの点によって後続される破線として示した。インデックスを使用して、タグラム20210、20211にアクセスする。それぞれのタグラム20210、20211の第3の入力は、ウェイ選択器1061からの、ラインL101上のものである。
【0053】
有効ビットインジケータ20410と20411の出力は、それぞれラインL301、L311上で出力を生み出し、これらは、比較器21410と21411にそれぞれ送られる。さらに、サブキャッシュC1のタグラム20210,20211からのラインL201、L211上の出力は、比較器21410と21411にそれぞれ送られる。比較器21410と21411はまた、Tex1 TAG_INを受け取る。
【0054】
比較器21410、21411による比較は、サブキャッシュC1の2ウェイのタグラム20210、20211からの、それぞれラインL201、L211上の、2つの可能性あるタグコンテンツと、到来しているピクセルのタグTex1 TAG_INとの間で実行される。比較器21410、21411からの2つの比較の内の1つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、ANDゲート2161からのラインL501上の出力は、サブキャッシュヒットを表す。そうではない場合、オペランドゲート2161からのラインL501上の出力は、サブキャッシュミスを表す。比較器21410、21411がラインL401、L411上で、それぞれの比較の結果を出力し、これらは、オペランドゲート2161の入力に供給される。オペランドゲート2161はまた、ラインL6上で、アクティブビットを表す入力を受け取る。
【0055】
最終ステージにおいて、サブキャッシュC0とサブキャッシュC1の出力は、マルチプレクサ218に入力される。マルチプレクサ218は、ラインL500、L511上の出力をマルチプレクスして、ラインL60上に、新しいマルチプレクスされた出力を形成する。ラインL60上の出力は、フェッチ制御装置48に送られるフェッチ要求を表す。マルチプレクスされた出力は、一度に、1つのフェッチ要求を送る。
【0056】
特に図7Bを参照して、サブキャッシュC0またはC1のキャッシュラインすなわちブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム22000、22001、または、22010、22011から、それぞれラインL700、L710、またはL701、またはL701の内の1つ上で読み出される。サブキャッシュC0中のラインL700、L710上の出力テクスチャデータが、マルチプレクサ2220に送られる。サブキャッシュC1中のラインL701、L711上の出力テクスチャデータが、マルチプレクサ2221に送られる。マルチプレクサ2220と2221からの出力は、それぞれラインL800とL801上で、複数のテクスチャマップとして、テクスチャマッピングエンジン66Aに送られる。
【0057】
ウェイ選択器2060からのラインL100上の出力を使用して、マルチプレクサ2220を制御する。同様に、ウェイ選択器2061からのラインL101上の出力を使用して、マルチプレクサ2221を制御する。それぞれのウェイデータラム2200、2201、1203が、ラインL1上で、メイン(外部)メモリ40から対応するテクスチャマップデータを代入される。2100、2101として表したインバータは、フィードバックラインL80、L81上で送られたビットを反転する。フィードバックラインL80、L81は、それぞれ、ウェイ選択器2060、2061のTex0ウェイ選択ビット2080と、Tex1ウェイ選択ビット2081とに対して、反転されたビットをループバックするように結合されている。
【0058】
上記の実施形態は、動的に構成可能なテクスチャキャッシュ44を、容易に構成可能にすることで、1つのキャッシュを使用して、シングルテクスチャモード100またはマルチテクスチャモード200の内の1つにおいて、テクスチャマッピングエンジン66Aを最適化させている。さらに、コンフリクトミスは、一般的に発生しない。さらに、2つ以上(M=2)のテクスチャマップTMは、互いに繰り返し参照することなく、および/または、冗長なメモリトラフィックを生成させることがないだろう。
【0059】
動的に構成可能なテクスチャキャッシュ44のあらゆる可能な構成(例えば、再構成可能なnウェイのセットアソシエイティブテクスチャキャッシュ)を説明することは難しい。しかしながら、マルチテクスチャモード200であるとき、キャッシュ44は、それぞれのテクスチャマップに専用の、n/M個のセットアソシエイティブテクスチャサブキャッシュを持つように構成すべきである。nとMは、1より大きい整数であり、nはMによって割ることができる。Mの値は、テクスチャマップの数であってもよい。この例において、Mは、2つのサブキャッシュを提供する2であり、それぞれのサブキャッシュは、2つのテクスチャマップのそれぞれのもの専用である。
【0060】
1つ以上の例示的な実施形態において、説明した機能を、ハードウェアや、ソフトウェアや、ファームウェアや、または、これらの任意の組み合わせによって実現してもよい。ソフトウェアで実現される場合、機能を、コンピュータ読取可能媒体中の1つ以上の命令またはコードとして記憶させてもよく、あるいは、コンピュータ読取可能媒体上で送信してもよい。コンピュータ読取可能媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にさせる任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であってもよい。例として、これらに制限される訳ではないが、このようなコンピュータ読取可能媒体は、RAM、ROM、EEPROM、CD−ROM、および他の光学ディスク、磁気ディスクストレージまたは磁気ストレージ装置、あるいは、所望のプログラムコードを命令またはデータ構造の形態で搬送または記憶するのに使用されることができ、かつ、コンピュータによってアクセスされることができる、他の任意の媒体を含むことができる。また、任意の接続は、厳密にコンピュータ読取可能媒体として呼ばれる。例えば、ソフトウェアが、ウェブサイト、サーバ、または、他の遠隔源から、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線(DSL)、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術を使用して送られる場合、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線(DSL)、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術は、媒体の定義に含まれるものとする。ディスク(diskとdisc)は、ここで使用するように、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク、ブルーレイ(登録商標)ディスクを含み、ここで、ディスク(disk)は、通常は、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記のものの組み合わせがまた、コンピュータ読取可能媒体の範囲内に含まれるだろう。
【0061】
開示した実施形態のこれまでの記述は、当業者が本発明を製作または使用できるように提供した。これらの実施形態に対するさまざま改良は当業者に容易に明らかとなり、ここに定義された一般的な原理は、本発明の精神および範囲を逸脱することなく、他の実施形態に適用されてもよい。したがって、本発明はここに示された実施形態に限定されることを意図しているものではなく、ここで開示されている原理および新しい特徴と一致した最も広い範囲に一致させるべきである。
【特許請求の範囲】
【請求項1】
グラフィックス処理ユニットにおいて、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュと
を具備し、
nとMは1より大きい整数であり、nはMによって割り切れる、グラフィックス処理ユニット。
【請求項2】
nは4であり、Mは2である、請求項1記載のグラフィックス処理ユニット。
【請求項3】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項1記載のグラフィックス処理ユニット。
【請求項4】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項3記載のグラフィックス処理ユニット。
【請求項5】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項3記載のグラフィックス処理ユニット。
【請求項6】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項5記載のグラフィックス処理ユニット。
【請求項7】
集積回路において、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュと
を具備し、
nとMは1より大きい整数であり、nはMによって割り切れる集積回路。
【請求項8】
nは4であり、Mは2である、請求項7記載の集積回路。
【請求項9】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項7記載の集積回路。
【請求項10】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項9記載の集積回路。
【請求項11】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項9記載の集積回路。
【請求項12】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項11記載の集積回路。
【請求項13】
プロセッサにおいて、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持ち、
nとMは1より大きい整数であり、nはMによって割り切れるプロセッサ。
【請求項14】
nは4であり、Mは2である、請求項13記載のプロセッサ。
【請求項15】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項13記載のプロセッサ。
【請求項16】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項15記載のプロセッサ。
【請求項17】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項15記載のプロセッサ。
【請求項18】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項17記載のプロセッサ。
【請求項19】
ワイヤレス装置において、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持ち、
nとMは1より大きい整数であり、nはMによって割り切れるワイヤレス装置。
【請求項20】
nは4であり、Mは2である、請求項19記載のワイヤレス装置。
【請求項21】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項19記載のワイヤレス装置。
【請求項22】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項21記載のワイヤレス装置。
【請求項23】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項21記載のワイヤレス装置。
【請求項24】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項23記載のワイヤレス装置。
【請求項25】
コンピュータ読取可能媒体を備えるコンピュータプログラム製品において、
前記コンピュータ読取可能媒体は、コンピュータに
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定させ、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成させ、
前記マルチテクスチャマッピングがイネーブルされているときには、前記nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割させる
ための命令を有し、
nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応するコンピュータプログラム製品。
【請求項26】
方法において、
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定することと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成することと、
前記マルチテクスチャマッピングがイネーブルされているときには、前記nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割することと
を含み、
nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応する方法。
【請求項1】
グラフィックス処理ユニットにおいて、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュと
を具備し、
nとMは1より大きい整数であり、nはMによって割り切れる、グラフィックス処理ユニット。
【請求項2】
nは4であり、Mは2である、請求項1記載のグラフィックス処理ユニット。
【請求項3】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項1記載のグラフィックス処理ユニット。
【請求項4】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項3記載のグラフィックス処理ユニット。
【請求項5】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項3記載のグラフィックス処理ユニット。
【請求項6】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項5記載のグラフィックス処理ユニット。
【請求項7】
集積回路において、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持つ、動的に構成可能なキャッシュと
を具備し、
nとMは1より大きい整数であり、nはMによって割り切れる集積回路。
【請求項8】
nは4であり、Mは2である、請求項7記載の集積回路。
【請求項9】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項7記載の集積回路。
【請求項10】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項9記載の集積回路。
【請求項11】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項9記載の集積回路。
【請求項12】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項11記載の集積回路。
【請求項13】
プロセッサにおいて、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持ち、
nとMは1より大きい整数であり、nはMによって割り切れるプロセッサ。
【請求項14】
nは4であり、Mは2である、請求項13記載のプロセッサ。
【請求項15】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項13記載のプロセッサ。
【請求項16】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項15記載のプロセッサ。
【請求項17】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項15記載のプロセッサ。
【請求項18】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項17記載のプロセッサ。
【請求項19】
ワイヤレス装置において、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュに対応する第1の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、1組のn/Mウェイのセットアソシエイティブサブキャッシュに対応する第2の構成を持ち、
nとMは1より大きい整数であり、nはMによって割り切れるワイヤレス装置。
【請求項20】
nは4であり、Mは2である、請求項19記載のワイヤレス装置。
【請求項21】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの1つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの1つのテクスチャマップに対して専用である、請求項19記載のワイヤレス装置。
【請求項22】
前記nウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するn−キャッシュブロックと、前記n−キャッシュブロックのすべてのn−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記n−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項21記載のワイヤレス装置。
【請求項23】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する1つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項21記載のワイヤレス装置。
【請求項24】
前記1組のn/Mウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項23記載のワイヤレス装置。
【請求項25】
コンピュータ読取可能媒体を備えるコンピュータプログラム製品において、
前記コンピュータ読取可能媒体は、コンピュータに
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定させ、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成させ、
前記マルチテクスチャマッピングがイネーブルされているときには、前記nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割させる
ための命令を有し、
nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応するコンピュータプログラム製品。
【請求項26】
方法において、
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定することと、
前記シングルテクスチャマッピングがイネーブルされているときには、nウェイのセットアソシエイティブテクスチャキャッシュを構成することと、
前記マルチテクスチャマッピングがイネーブルされているときには、前記nウェイのセットアソシエイティブテクスチャキャッシュを、1組のM個のn/Mウェイのセットアソシエイティブサブキャッシュへと分割することと
を含み、
nとMは1より大きい整数であり、nはMによって割り切れ、Mはテクスチャマップの数に対応する方法。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5A】
【図5B】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図2】
【図3A】
【図3B】
【図4】
【図5A】
【図5B】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【公表番号】特表2010−519651(P2010−519651A)
【公表日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2009−550990(P2009−550990)
【出願日】平成20年2月20日(2008.2.20)
【国際出願番号】PCT/US2008/054452
【国際公開番号】WO2008/103750
【国際公開日】平成20年8月28日(2008.8.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公表日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願日】平成20年2月20日(2008.2.20)
【国際出願番号】PCT/US2008/054452
【国際公開番号】WO2008/103750
【国際公開日】平成20年8月28日(2008.8.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]