(57)【要約】  テクスチャキャッシュを動的に構成するための技術を開示する。三次元（３Ｄ）グラフィックスパイプラインのテクスチャマッピング処理の間に、バッチがシングルテクスチャマッピングに対するものである場合には、テクスチャキャッシュは、ｎウェイのセットアソシエイティブテクスチャキャッシュとして構成される。しかしながら、バッチがマルチテクスチャマッピングに対するものである場合には、ｎウェイのセットアソシエイティブテクスチャキャッシュは、１組のＭ個のｎ／Ｍウェイのセットアソシエイティブサブキャッシュへと分割され、ここで、ｎとＭは１より大きい整数であり、ｎはＭによって割り切れる。【選択図】図２
2010519651.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理ユニットにおいて、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持つ、動的に構成可能なキャッシュと
を具備し、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れる、グラフィックス処理ユニット。
【請求項２】
ｎは４であり、Ｍは２である、請求項１記載のグラフィックス処理ユニット。
【請求項３】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの１つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの１つのテクスチャマップに対して専用である、請求項１記載のグラフィックス処理ユニット。
【請求項４】
前記ｎウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するｎ−キャッシュブロックと、前記ｎ−キャッシュブロックのすべてのｎ−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記ｎ−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項３記載のグラフィックス処理ユニット。
【請求項５】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する１つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項３記載のグラフィックス処理ユニット。
【請求項６】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項５記載のグラフィックス処理ユニット。
【請求項７】
集積回路において、
選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバと、
前記シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、前記マルチテクスチャマッピングがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持つ、動的に構成可能なキャッシュと
を具備し、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れる集積回路。
【請求項８】
ｎは４であり、Ｍは２である、請求項７記載の集積回路。
【請求項９】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの１つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの１つのテクスチャマップに対して専用である、請求項７記載の集積回路。
【請求項１０】
前記ｎウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するｎ−キャッシュブロックと、前記ｎ−キャッシュブロックのすべてのｎ−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記ｎ−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項９記載の集積回路。
【請求項１１】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する１つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項９記載の集積回路。
【請求項１２】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項１１記載の集積回路。
【請求項１３】
プロセッサにおいて、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持ち、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れるプロセッサ。
【請求項１４】
ｎは４であり、Ｍは２である、請求項１３記載のプロセッサ。
【請求項１５】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの１つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの１つのテクスチャマップに対して専用である、請求項１３記載のプロセッサ。
【請求項１６】
前記ｎウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するｎ−キャッシュブロックと、前記ｎ−キャッシュブロックのすべてのｎ−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記ｎ−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項１５記載のプロセッサ。
【請求項１７】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する１つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項１５記載のプロセッサ。
【請求項１８】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項１７記載のプロセッサ。
【請求項１９】
ワイヤレス装置において、
動的に構成可能なキャッシュを持つグラフィックス処理ユニットと、
前記グラフィックス処理ユニットに結合されているメモリと
を具備し、
前記動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持ち、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れるワイヤレス装置。
【請求項２０】
ｎは４であり、Ｍは２である、請求項１９記載のワイヤレス装置。
【請求項２１】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちの、それぞれの１つのサブキャッシュは、前記マルチテクスチャマッピングの間には、それぞれの１つのテクスチャマップに対して専用である、請求項１９記載のワイヤレス装置。
【請求項２２】
前記ｎウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャデータを記憶するように機能するｎ−キャッシュブロックと、前記ｎ−キャッシュブロックのすべてのｎ−タグ出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンドを生成させるオペランドと、前記要求されたテクスチャデータを前記ｎ−キャッシュブロックから出力するように機能するマルチプレクサとを備える、請求項２１記載のワイヤレス装置。
【請求項２３】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、対応する１つのテクスチャマップに対するテクスチャデータを記憶するように機能する複数のサブキャッシュブロックと、前記複数のサブキャッシュブロックのすべての出力が、要求されたテクスチャデータに対する失敗を表すときに、フェッチコマンド出力を生成させるオペランドとを備え、
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュは、前記それぞれのサブキャッシュの前記フェッチコマンド出力をマルチプレクスするマルチプレクサを備える、請求項２１記載のワイヤレス装置。
【請求項２４】
前記１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュのうちのそれぞれのサブキャッシュは、前記要求されたデータを前記複数のサブキャッシュブロックから出力するように機能するマルチプレクサをさらに備える、請求項２３記載のワイヤレス装置。
【請求項２５】
コンピュータ読取可能媒体を備えるコンピュータプログラム製品において、
前記コンピュータ読取可能媒体は、コンピュータに
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定させ、
前記シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュを構成させ、
前記マルチテクスチャマッピングがイネーブルされているときには、前記ｎウェイのセットアソシエイティブテクスチャキャッシュを、１組のＭ個のｎ／Ｍウェイのセットアソシエイティブサブキャッシュへと分割させる
ための命令を有し、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れ、Ｍはテクスチャマップの数に対応するコンピュータプログラム製品。
【請求項２６】
方法において、
選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを決定することと、
前記シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュを構成することと、
前記マルチテクスチャマッピングがイネーブルされているときには、前記ｎウェイのセットアソシエイティブテクスチャキャッシュを、１組のＭ個のｎ／Ｍウェイのセットアソシエイティブサブキャッシュへと分割することと
を含み、
ｎとＭは１より大きい整数であり、ｎはＭによって割り切れ、Ｍはテクスチャマップの数に対応する方法。
【発明の詳細な説明】
【分野】
【０００１】
本開示は、一般的にグラフィックスに関連し、より詳細には、テクスチャキャッシュを動的に構成するための技術に関連する。
【背景】
【０００２】
テクスチャマッピングは、コンピュータ生成されたシーンにリアル感を付け加えるための３Ｄグラフィックスパイプラインにおける、最も成功しており、人気のある技術の内の１つである。テクスチャマッピング（ＴＭ）プロセスの特性が、複数のテクスチャルックアップを含むので、一般的なテクスチャマッピング（ＴＭ）プロセスは、高度にメモリアクセス集中的である。頻繁なテクスチャルックアップは、メモリバス上でのボトルネックをもたらす。この問題に対処するために、テクスチャキャッシュが使用されることが多い。テクスチャキャッシュは、外部メモリ源（例えば、オフチップメモリ）からテクスチャをフェッチすることの冗長性をなくす働きをし、三角形のラスタ化の自然な空間局所性を利用する。
【０００３】
グラフィックスアプリケーションは、一般的にバッチモードで描画コマンドを送る。バッチモードでは、すべてのピクセルが、バッチ中で、同一のコンテクスト状態レジスタを共有する。シングルテクスチャバッチ中で、すべてのピクセルは、１つのシングルテクスチャマップからテクセル（texels）をフェッチする。しかしながら、マルチテクスチャバッチモードにおいて、異なる複数のテクスチャが、１つのキャッシュ内部に記憶されている場合、コンフリクトミスが発生する可能性が非常に高い。２つのテクスチャマップが同一のキャッシュラインに割り当てられている、または、割り振られている場合、これらの２つのテクスチャマップは互いに繰り返し参照することになり、冗長なメモリトラフィックを生み出すだろう。
【０００４】
以上のことを鑑みると、異なるテクスチャマップに対して１つのキャッシュを使用することは、電力とピクセルパフォーマンスを減少させる。
【０００５】
したがって、テクスチャキャッシュを動的に構成するための技術に対する技術的な需要がある。
【発明の概要】
【０００６】
テクスチャキャッシュを動的に構成するための技術をここで説明する。１つの実施形態では、動的に構成可能なキャッシュを持つグラフィックス処理ユニットを具備するワイヤレス装置が提供される。動的に構成可能なキャッシュは、シングルテクスチャマッピングモードがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、マルチテクスチャマッピングモードがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持つ。ここで、ｎとＭは１より大きい整数であり、ｎはＭによって割り切れる。ワイヤレス装置は、グラフィックス処理ユニットに結合されているメモリも具備する。
【０００７】
別の観点では、グラフィックス処理ユニットは、選択されたアプリケーションに対して、シングルテクスチャマッピングがイネーブルされているか、または、マルチテクスチャマッピングがイネーブルされているかを決定するように動作可能なドライバを含む。ユニットはまた、シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュに対応する第１の構成を持ち、マルチテクスチャマッピングがイネーブルされているときには、１組のｎ／Ｍウェイのセットアソシエイティブサブキャッシュに対応する第２の構成を持つ、動的に構成可能なキャッシュも含み、ここで、ｎとＭは１より大きい整数であり、ｎはＭによって割り切れる。
【０００８】
さらに別の観点では、コンピュータ読取可能媒体を備えるコンピュータプログラム製品は、コンピュータに選択されたアプリケーションが、イネーブルされているシングルテクスチャマッピングを持つか、または、イネーブルされているマルチテクスチャマッピングを持つかを機械に決定させる命令を持つ。命令は、機械に、シングルテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュを構成させる。命令はまた、機械に、マルチテクスチャマッピングがイネーブルされているときには、ｎウェイのセットアソシエイティブテクスチャキャッシュを、１組のＭ個のｎ／Ｍウェイのセットアソシエイティブサブキャッシュへと分割させ、ここで、ｎとＭは１より大きい整数であり、ｎはＭによって割り切れ、Ｍはテクスチャマップの数に対応する。
【０００９】
本開示のさまざまな観点と実施形態を以下でさらに詳細に説明する。
【００１０】
本発明の観点と実施形態とは同じ参照符号が全体に渡って対応的に同定する図面と共に考慮されたとき以下に述べる詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】図１は、ワイヤレス装置のブロック図を示す。
【図２】図２は、グラフィックス処理ユニットの一般的なブロック図を示す。
【図３Ａ】図３Ａは、従来の３次元（３Ｄ）パイプラインを示す。
【図３Ｂ】図３Ｂは、従来のピクセルレンダリングステージを示す。
【図４】図４は、動的に構成可能なテクスチャキャッシュの一般的なブロック図を示す。
【図５Ａ】図５Ａは、シングルテクスチャモード中のピクセルバッチを示す。
【図５Ｂ】図５Ｂは、マルチテクスチャモード中のピクセルバッチを示す。
【図６Ａ】図６Ａは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図６Ｂ】図６Ｂは、シングルテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図７Ａ】図７Ａは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図７Ｂ】図７Ｂは、マルチテクスチャモード中の動的に構成可能なテクスチャキャッシュの概念図を示す。
【図８】図８は、メインメモリ中に記憶されたアプリケーションの一般的なブロック図を示す。
【詳細な説明】
【００１２】
語“例示的”はここでは“例、事例、または実例として機能”することを意味させるために使用される。“例示的”としてここで説明されている任意の実施形態または設計は、他の実施形態または設計に対して好ましいまたは有利なものとして解釈される必要性はない。
【００１３】
多くのゲームアプリケーションは、２次元（２Ｄ）空間（例えば、ディスプレイスクリーン）に３Ｄオブジェクトを表示する、３次元（３Ｄ）グラフィックスアプリケーションを必要とする。２Ｄグラフィックスにおけるピクセルは、位置、色、および輝度のプロパティを持つ一方、３Ｄピクセルは、仮想上のＺ軸に存在するポイントを示す深度プロパティを加える。３Ｄピクセルとして作成されたテクスチャは、それ自身の深度値とともにそれぞれ結合される。
【００１４】
ワイヤレス通信、コンピューティング、ネットワーキング、パーソナルエレクトロニクス等に対して、ここで説明した技術を使用してもよい。ワイヤレス通信に対する技術の例示的な使用について、以下で説明する。
【００１５】
図１は、ワイヤレス通信システムにおける、ワイヤレス装置１０の実施形態のブロック図を示す。ワイヤレス装置１０は、セルラ電話機またはカメラ付き電話機、端末、ハンドセット、パーソナルデジタルアシスタント（ＰＤＡ）、あるいは、他の何らかの装置であってもよい。ワイヤレス通信システムは、コード分割多重アクセス（ＣＤＭＡ）システム、移動体通信のための国際システム（ＧＳＭ）システム、または、他の何らかのシステムであってもよい。
【００１６】
ワイヤレス装置１０は、受信パスと送信パスとを介した、２分割性通信を提供することができる。受信パスにおいて、基地局によって送信された信号が、アンテナ１２によって受信され、受信機（ＲＣＶＲ）１４に提供される。受信機１４は、受信信号を調整してデジタル化し、さらなる処理のためにデジタルセクション２０にサンプルを提供する。送信パスにおいて、送信機（ＴＭＴＲ）１６は、送信されることになるデータをデジタルセクション２０から受取り、データを処理して調整し、変調された信号を生成させ、変調された信号は、アンテナ１２を介して基地局へと送信される。
【００１７】
デジタルセクション２０は、さまざまな処理、インターフェース、およびメモリユニット、例えば、モデムプロセッサ２２、ビデオ信号プロセッサ２４、制御装置／プロセッサ２６、ディスプレイプロセッサ２８、ＡＲＭ／ＤＳＰ３２、グラフィックス処理ユニット（ＧＰＵ）３４、内部メモリ３６、外部バスインターフェース（ＥＢＩ）３８を備える。モデムプロセッサ２２は、データ送信と受信のための処理（例えば、エンコーディング、変調、復調、およびデコーディング）を実行する。ビデオプロセッサ２４は、キャムコーダ、ビデオ再生、およびビデオ会議のようなビデオアプリケーション用の、ビデオコンテンツ（例えば、静止画、ビデオ動画、テキスト動画）上で処理を実行する。制御装置／プロセッサ２６は、デジタルセクション２０内のさまざまな処理およびインターフェースユニットの動作を指示してもよい。ディスプレイプロセッサ２８は、ディスプレイユニット３０上で、ビデオ、グラフィックス、およびテキストの表示を容易にさせるための処理を実行する。ＡＲＭ／ＤＳＰ３２は、ワイヤレスデバイス１０のためのさまざまなタイプの処理を実行してもよい。グラフィックス処理ユニット３４は、グラフィックス処理を実行する。
【００１８】
デジタルセクション２０中の任意のプロセッサ、例えば、グラフィックス処理ユニット３４に対して、ここで説明した技術を使用してもよい。内部メモリ３６は、デジタルセクション２０内のさまざまなユニットに対するデータおよび／または命令を記憶する。ＥＢＩ３８は、バスまたはデータラインＤＬを通して、デジタルセクション２０（例えば、内部メモリ３６）と、メインメモリ４０との間のデータの転送を容易にさせる。
【００１９】
デジタルセクション２０は、１つ以上のＤＳＰ、マイクロプロセッサ、ＲＩＳＣ等で実現されてもよい。デジタルセクション２０はまた、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、または、他の任意のタイプの集積回路（ＩＣ）で製造されていてもよい。
【００２０】
ここで説明した技術を、さまざまなハードウェアユニットで実現してもよい。例えば、ＡＳＩＣ、ＤＳＰ、ＲＩＳＣ、ＡＲＭ、デジタル信号処理装置（ＤＳＰＤ）、プログラム可能論理装置（ＰＬＤ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、プロセッサ、制御装置、マイクロ制御装置、マイクロプロセッサ、および、他の電子ユニットで技術を実現してもよい。
【００２１】
図２は、一般的に３４として表した、グラフィックス処理ユニットＧＰＵの一般的なブロック図を示す。ＧＰＵ３４は、３次元（３Ｄ）スイッチドライバ４２と、動的に構成可能なテクスチャキャッシュ４４とを備える。３Ｄスイッチドライバ４２は、キャッシュ４４を再構成させるためのスイッチング制御信号ＳＷ１を提供する。ＧＰＵ３４はまた、後で詳細に説明することになる３Ｄグラフィックスパイプライン６０を備える。さらに、ＧＰＵ３４は、フェッチ制御装置４８を持つプロセッサ４６を備える。フェッチ制御装置４８は、１つ以上のテクスチャマップＴＭから要求されたテクスチャデータをフェッチするためのコマンドを生成するように機能する。
【００２２】
図８は、メインメモリ４０中に記憶されたアプリケーションＡ１・・・ＡＺを示す。記憶されたアプリケーションＡ１・・・ＡＺは、ゲームアプリケーション、または他のグラフィックスアプリケーションを含んでもよい。それぞれのアプリケーションは、それとともに、テクスチャタイプＴＴと、１つ以上のテクスチャマップＴＭを関係付けしている。操作において、選択されたアプリケーションに依拠して、３Ｄスイッチドライバ４２は、選択されたアプリケーションを構文解析し、選択されたアプリケーションに対して、どのテクスチャ（シングルまたはマルチプルテクスチャ）タイプＴＴがイネーブルされているかを決定する。この後で、３Ｄスイッチドライバ４２は、スイッチ制御信号ＳＷ１を生成させて、シングルテクスチャモードまたはマルチテクスチャモードに対して、キャッシュ４４を再構成させる。テクスチャマッピングは、少なくとも１つのテクスチャマップＴＭを介して、２Ｄテクスチャ画像を３Ｄオブジェクトの表面にマップするシェーディング技術である。２Ｄテクスチャ画像は、メイン（外部）メモリ４０に記憶されている。テクスチャ画像の個別のエレメントをテクセルと呼ぶ。
【００２３】
また、図３Ａと３Ｂとを参照して、一般的に、それぞれ、６０と６４として表す、従来の３Ｄグラフィックスパイプラインと、ピクセルレンダリングステージとの実施形態を示す。３Ｄグラフィックスパイプライン６０は、ディスプレイユニット３０上での３Ｄ表現の全体のタスクを、少なくとも２つのパイプラインステージに分ける。すなわち、頂点処理ステージ６２と、ピクセルレンダリングステージ６４とである。操作において、頂点処理ステージ６２は、オープンＧＬ（登録商標）または、オープンＧＬのＥＳにおいて現在実装されているすべての機能、または、機能のサブセットを含んでもよい。
【００２４】
ピクセルレンダリングステージ６４は、ラスタ化、混色、テクスチャアプリケーション動作６６と、隠れ表面除去動作６８とを含む。それにもかかわらず、ピクセルレンダリングステージ６４は、オープンＧＬまたは、オープンＧＬのＥＳによって規定されている他の動作を含んでもよい。ピクセルレンダリングステージ６４は、頂点処理ステージ６２からの３Ｄオブジェクトについての情報を、ディスプレイユニット３０上で表示することができるビットマップへと変換する。ピクセルレンダリングステージ６４は、入力された３つの組を処理して、３Ｄグラフィックス画像のピクセル表現を生成する。ラスタ化、混色、テクスチャアプリケーション動作６６の間に、テクスチャマッピングエンジン６６Ａは、テクスチャリング動作を実行する。
【００２５】
図４を参照して、動的に構成可能なテクスチャキャッシュ４４の一般的なブロック図を示す。ＧＰＵ３４の動的に構成可能なテクスチャキャッシュ４４は、選択されているアプリケーションにおいて、シングルテクスチャマッピングがイネーブルされているときには、シングルテクスチャモード１００で、選択されているアプリケーションにおいて、マルチテクスチャマッピングがイネーブルされているときには、マルチテクスチャモード２００での内の１つで動作するように動的に構成可能／再構成可能である。シングルテクスチャモード１００で、動的に構成可能なテクスチャキャッシュ４４の概念図は、図６Ａ−６Ｂにおいて最もよく分かる。シングルテクスチャモード１００での、動的に構成可能なテクスチャキャッシュ４４は、ｎウェイ（n-way）のセットアソシエイティブキャッシュである。例示的な実施形態において、ｎは偶数である。説明する実施形態では、ｎは４に等しい。例示的な実施形態では、４ウェイのセットアソシエイティブテクスチャキャッシュは、テクスチャルックアップを取り扱うための、およそ４ＫＢのサイズを持ち、それぞれのキャッシュラインは１２８ビットワイドである。シングルテクスチャモード１００中で、動的に構成可能なテクスチャキャッシュ４４は、パスごとに最大２つのテクスチャをサポートするように設計されている。
【００２６】
説明の目的で、それぞれのピクセルに対する、パス手段ごとの２つのテクスチャは、複数のパスを通過することなく、そのトップにおいて、２つの異なるテクスチャマップからテクセルが同時にマッピングされている。例えば、キャッシュが、シングルテクスチャマッピングだけをサポートする場合、マルチテクスチャマッピング効果を達成するために、それぞれのピクセル上で、シングルテクスチャマッピングを複数回実行されなければならない。したがって、複数のパスを通過することなく、それぞれのピクセルに対する、パス手段ごとのマルチプルテクスチャは、複数の（異なる）テクスチャマップからテクセルが同時にマッピングされている。
【００２７】
ここで、図５Ａを参照して、シングルテクスチャモードのための一般的にＢとして表すバッチのブロック図を示す。グラフィックスアプリケーションは、一般的に描画コマンドをバッチモードで送り、バッチＢ中の、ＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXとして表した、すべてのピクセルは、同一のコンテクスト状態レジスタ５０を共有する（ここで、Ｘは、バッチ中のピクセルの数に等しい）。
【００２８】
テクスチャタイプＴＴによって決定されるように、シングルテクスチャモードにおいて、すべてのピクセルＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXは、単一のテクスチャマップＴＭからテクセルをフェッチする。テクスチャマップＴＭは、１つのシングルテクスチャマップである。２つのテクスチャ（マルチテクスチャモード）バッチにおいて、それぞれのピクセルＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXは、２つの異なるテクスチャマップからテクセルをフェッチする（ここで、Ｘは、バッチ中のピクセルの数に等しい）。
【００２９】
例示的な実施形態において、あらゆるピクセルＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXは、ピクセルに対するテクスチャアドレスと、他の情報とを生成させる。ピクセルのテクスチャアドレスは、対応するタグとインデックスとを持ち、これらは、それぞれＴＡＧ＿ＩＮと、ＩＮＤＥＸ［３：０］として表される。コンポーネント［３：０］は、アドレッシングフォーマットに対応している。ここで、“［３：０］”は、４桁（０，１，２，３）のバイナリアドレスを表す呼び方である。したがって、（例示的な実施形態の）インデックスは、２4距離のアドレスを持つ。インデックスを使用して、タグラム１０２0，１０２1，１０２2，１０２3にアクセスする（図６Ａ）。タグラム１０２0，１０２1，１０２2，１０２3の添字もまた、ウェイに対応する。０の添字は、ウェイ０に対応し、添字１はウェイ１に対応し、添字２はウェイ２に対応し、そして、添字３すなわち（ｎ−１）はウェイ３（ｎ−１）に対応する。
【００３０】
図６Ａ−６Ｂにおいて、シングルテクスチャモード１００で、動的に構成可能なテクスチャキャッシュ４４の概念図を示した。キャッシュのセットアソシエイティブは、４ウェイ（ｎ＝４）である。したがって、１つのインデックス、ＩＮＤＥＸ［３：０］によって選択されることになる、４つのエントリまたはキャッシュラインがある。図６Ａにおいて最もよく分かるように、シングルテクスチャモード１００でのキャッシュ４４は、ｎ−キャッシュブロックを含み、ここでそれぞれのブロックは、ウェイタグラム１０２0、１０２1、１０２2、または１０２3と、ウェイ有効ビットインジケータ１０４0、１０４1、１０４2、または１０４3とを含む。図６Ｂにおいて最もよく分かるように、それぞれのブロックは、ウェイデータラム１２０0、１２０1、１２０2、または１２０3をさらに含む。それぞれのブロックはまた、完全な“キャッシュライン”を表す。
【００３１】
動的に構成可能なテクスチャキャッシュ４４は、ｎの“キャッシュライン”によって構成される。それぞれのキャッシュラインは、インデックスにより選択される。キャッシュ４４は、３Ｄハードワイヤードパイプラインと、メイン（外部）メモリ４０との間のメモリ階層のレベルである。３Ｄグラフィックスパイプライン６０が、メイン（外部）メモリ４０にテクセルをリードバックするようにアドレスを送るとき、３Ｄグラフィックスパイプライン６０は、最初に、データ（テクセル）が動的に構成可能なテクスチャキャッシュ４４の内部にあるか否かをチェックする。アドレスは、キャッシュラインを選択するために使用され、ＩＮＤＥＸ［３：０］として表されるインデックスと、キャッシュのタグフィールドの値と比較するのに使用され、ＴＡＧ＿ＩＮとして表されるタグフィールドとに分けられる。一致が存在する場合、このことは、キャッシュ４４内部にコンテンツが存在すること、特に、キャッシュラインが一致するものを持っていることを意味する。
【００３２】
一般的なキャッシュにおいて、それぞれのキャッシュラインは、有効ビットインジケータを持つ。例示的な実施形態では、有効ビットの値は、（１）Ｖａｌｉｄ＿Ｂｉｔ＝“１”と、（２）Ｖａｌｉｄ＿Ｂｉｔ＝“０”とを含み、（１）Ｖａｌｉｄ＿Ｂｉｔ＝“１”は、このキャッシュライン中に記憶されている有効なコンテンツがあることを意味し、（２）Ｖａｌｉｄ＿Ｂｉｔ＝“０”は、キャッシュラインが空であることを意味する。有効ビットは、レジスタによって実現され、信号をリセットすることによって、“０”に初期化される。
【００３３】
有効ビットインジケータは、各ウェイタグラム１０２0、１０２1、１０２2、および１０２3にそれぞれ関係付けられている。したがって、ウェイ０タグラム１０２0は、有効ビットインジケータ１０４0に関係付けられている。ウェイ１タグラム１０２1は、有効ビットインジケータ１０４1に関係付けられている。ウェイ２タグラム１０２2は、有効ビットインジケータ１０４2に関係付けられている。ウェイ３タグラム１０２3は、有効ビットインジケータ１０４3に関係付けられている。有効ビットインジケータは、キャッシュ４４中の所定のエントリが、有効なデータを含んでいることを示す。ウェイ有効ビットインジケータ１０４0、１０４1、１０４2、および１０４3は、それぞれ、ラインＬ３０、Ｌ３１、Ｌ３２、およびＬ３３上で、出力を生み出す。
【００３４】
それぞれのウェイタグラム１０２0、１０２1、１０２2、および１０２3は、３つの入力を受け取る。ラインＬ２上の第１の入力は、バッチＢ中のそれぞれのピクセルに対する、ＴＡＧ＿ＩＮであり、太線で示した。Ｌ４上の第２の入力は、インデックスであり、ＩＮＤＥＸ［３：０］として表し、２つの点によって後続される破線として示した。インデックスを使用して、ウェイタグラム１０２0、１０２1、１０２2、および１０２3にアクセスする。それぞれのウェイタグラム１０２0、１０２1、１０２2、および１０２3の第３の入力は、点線で示したウェイ更新デコーダ１１２からの、点線で示されたものである。ウェイ更新デコーダ１１２は、ウェイ選択器１０６から、ラインＬ１０上で入力を受け取る。
【００３５】
以下の説明から分かることになるように、ラインＬ４上のインデックスＩＮＤＥＸ［３：０］は、キャッシュラインの１つのウェイタグラム１０２0，１０２1，１０２2，および１０２3を選択し、次にこれが、対応する出力ラインＬ２０、Ｌ２１、Ｌ２２、またはＬ２３上で、記憶されているタグ値を出力する。
【００３６】
ウェイ選択器１０６は、ウェイ選択ビット１０８を含む。ウェイ選択ビット１０８の出力は、ウェイ更新デコーダ１１２による処理のためにラインＬ１０に供給される。ウェイ選択ビット１０８の出力は、また、累積器１１０にも供給され、累積器１１０は、ウェイ選択ビット１０８の出力に対して１を加える。（１０６とラベル付けされたボックス中の）番号２は、２ビット信号を表す。ラインＬ８上の出力は、ウェイ選択ビット１０８に、ループバックされる。ウェイ更新デコーダ１１２は、点線として示したように、ラインＬ１２、Ｌ１４、Ｌ１６、およびＬ１８上で、制御ビットを出力して、ｎウェイのアソシエイティブセットの内の１つを選択する。ウェイ更新デコーダ１１２は、ラインＬ１０上で２ビット信号を受け取り、１ビット信号を生成して、ｎブロック、すなわち、ウェイタグラム１０２0、１０２1、１０２2、および１０２3、ならびに／あるいは、図６Ｂに示したキャッシュラインのウェイデータラムの内の任意のものを選択する。
【００３７】
キャッシュ４４中でミスが発生するとき、要求されたデータは、１つのキャッシュラインに進むべきであり、そのキャッシュラインを占めているデータが置換されなければならない。ｎウェイのアソシエイティブキャッシュにおいて、ｎ個のデータラム１２０0、１２０1、１２０2、および１２０3の選択を使用して、要求されたデータを置換する。ウェイ選択器１０６は、ｎウェイの内の、どのキャッシュラインを置換すべきかをピックアップする。
【００３８】
ウェイ有効ビットインジケータ１０４0、１０４1、１０４2、および１０４3の出力は、それぞれラインＬ３０、Ｌ３１、Ｌ３２、およびＬ３３上に出力を生み出し、これらは、比較器１１４0、１１４1、１１４2、および１１４3にそれぞれ送られる。加えて、ウェイタグラム１０２0、１０２1、１０２2、および１０２3からの、ラインＬ２０、Ｌ２１、Ｌ２２、およびＬ２３上の出力は、それぞれ比較器１１４0、１１４1、１１４2、および１１４3に送られる。比較器１１４0、１１４1、１１４2、および１１４3はまた、ラインＬ２からの入力として、ＴＡＧ＿ＩＮを受け取る。
【００３９】
比較器１１４0、１１４1、１１４2、および１１４3による比較は、タグラム１０２0、１０２1、１０２2、および１０２3からの、それぞれラインＬ２０、Ｌ２１、Ｌ２２、およびＬ２３上の、４つの（ｎ＝４の）可能性あるタグコンテンツと、到来しているピクセルのタグＴＡＧ＿ＩＮとの間で実行される。比較器１１４0、１１４1、１１４2、および１１４3からの４つの比較の内の１つが一致の結果をもたらす場合、このような一致はキャッシュヒットを暗示する。したがって、オペランド１１６からのラインＬ５０上の出力は、キャッシュヒットを表す。例として、オペランド１１６は、ＡＮＤゲートとして表される。そうではなく、何の一致もない場合、オペランド１１６からのラインＬ５０上の出力は、キャッシュミスを表す。比較器１１４0、１１４1、１１４2、および１１４3が、ラインＬ４０、Ｌ４１、Ｌ４２、およびＬ４３上で、それらの比較の結果をそれぞれ出力し、これらは、オペランドゲート１１６の入力に供給される。オペランドゲート１１６はまた、アクティブビットを表すラインＬ６上でも入力を受け取る。オペランド１１６からの、ラインＬ５０上の出力がミスを表している場合、出力は、フェッチ制御装置４８に送られるフェッチ要求である。フェッチ制御装置４８は、次に、バスまたはデータラインＤＬを介して通信して、メイン（外部）メモリ４０から必要なテクスチャマップデータを取得する。
【００４０】
しかしながら、ラインＬ３０、Ｌ３１、Ｌ３２、Ｌ３３の内の任意の１つ上の有効ビットが、“０”である場合、その有効ビットに関係する比較は使用されない。
【００４１】
図６Ｂを特に参照して、キャッシュラインまたはブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム１２０0、１２０1、１２０2、または１２０3から、それぞれラインＬ７０、Ｌ７１、Ｌ７２、またはＬ７３の内の１つ上で読み出される。ラインＬ７０、Ｌ７１、Ｌ７２、またはＬ７３上の出力テクスチャデータが、マルチプレクサ１２２に送られる。マルチプレクサ１２２からの出力は、ラインＬ８０上でテクスチャマッピングエンジン６６Ａに送られる。
【００４２】
ウェイ選択器１０６からのラインＬ１０上での出力を使用して、マルチプレクサ１２２を制御する。それぞれのウェイデータラム１２０0、１２０1、１２０2、または１２０3が、メイン（外部）メモリ４０からラインＬ１上で、対応するテクスチャマップデータを代入される。
【００４３】
ラインＬ６上のアクティブビットは、３Ｄグラフィックスパイプライン６０において、特に使用される。ピクセルがテクスチャルックアップを必要としないときもある。この特定のケースにおいて、ラインＬ６上のアクティブビットはまた、“０”に設定される。したがって、キャッシュ４４は、このピクセルを操作しないだろう。
【００４４】
テクスチャマッピングエンジン６６Ａが、マルチテクスチャモードであるとき、バッチＢ中で、ＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBX、として示したピクセルは、複数の異なるテクスチャマップＴＭからテクセルをフェッチする。
【００４５】
ここで、図５Ｂを参照して、マルチテクスチャモードでのバッチのブロック図を示す。例示的な実施形態では、マルチテクスチャモードは、２つのテクスチャマップに関連する。それにもかかわらず、２つ以上のテクスチャマップを使用してもよい。２つのテクスチャバッチに対して、ピクセルＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXのそれぞれは、２つの異なるテクスチャマップからテクセルをフェッチする（ここで、Ｘは、バッチ中のピクセルの数に等しい）。あらゆるピクセルＰＩＸＥＬB1、ＰＩＸＥＬB2、・・・ＰＩＸＥＬBXは、第１のテクスチャアドレスフィールド０と、第２のテクスチャアドレスフィールド１と、他のピクセル情報のためのフィールドとを生成する。第１のテクスチャアドレスフィールド０は、サブキャッシュＣ０に対する、Ｔｅｘ０ ＴＡＧ＿ＩＮと、Ｔｅｘ０ ＩＮＤＥＸ［３：０］として表されるタグとインデックスを持つ。第２のテクスチャアドレスフィールド１は、サブキャッシュＣ１に対する、Ｔｅｘ１ ＴＡＧ＿ＩＮと、Ｔｅｘ１ ＩＮＤＥＸ［３：０］として表されるタグとインデックスを持つ。インデックス、Ｔｅｘ０ ＩＮＤＥＸ［３：０］を使用して、サブキャッシュＣ０のＴｅｘ０ウェイタグラム２０２00、２０２01（図７Ａ）にアクセスする。インデックス、Ｔｅｘ１ ＩＮＤＥＸ［３：０］を使用して、サブキャッシュＣ１のＴｅｘ１ウェイタグラム２０２10、２０２11（図７Ａ）にアクセスする。
【００４６】
図７Ａ−７Ｂにおいて、マルチテクスチャモード２００での動的に構成可能なテクスチャキャッシュ４４の概念図を示す。図６Ａ−６Ｂのキャッシュのセットアソシエイティブが４ウェイ（ｎ＝４）であるものは、２つの２ウェイのセットアソシエイティブサブキャッシュＣ０とＣ１とを作成するために、スプリットまたは分割されている。したがって、サブキャッシュＣ０中の１つのインデックス、Ｔｅｘ０ ＩＮＤＥＸ［３：０］によって選び出されることになる２つのエントリがある。同様に、サブキャッシュＣ１中の１つのインデックス、Ｔｅｘ１ ＩＮＤＥＸ［３：０］によって選び出されることになる２つのエントリがある。サブキャッシュＣ０は、２ウェイ“ウェイ０”と“ウェイ１”とを含む。サブキャッシュＣ０は、少なくとも２つのキャッシュブロック、ウェイ０とウェイ１とを持つ。ウェイ０ブロックは、Ｔｅｘ０ ウェイ０タグラム２０２00を含み、ウェイ１ブロックは、Ｔｅｘ０ ウェイ１タグラム２０２01を含む。それぞれのブロック、ウェイ０とウェイ１は、ウェイ０の有効ビットインジケータ２０４00と、ウェイ１の有効ビットインジケータ２０４01とをさらに含む（ここで、添字の第１桁は、テクスチャマップを表し、第２桁は、ウェイを表す）。サブキャッシュＣ１は、２ウェイ（“ウェイ０”と“ウェイ１”）を含む。サブキャッシュＣ１は、２つのブロック、ウェイ０のブロックとウェイ１のブロックとを持つ。ウェイ０のブロックは、Ｔｅｘ１ ウェイ０のタグラム２０２00を含み、ウェイ１のブロックは、Ｔｅｘ１ ウェイ１のタグラム２０２11を持つ。サブキャッシュＣ１のウェイ０のブロックは、ウェイ０の有効ビットインジケータ２０４10をさらに含み、ウェイ１のブロックは、ウェイ１の有効ビットインジケータ２０４11を持つ。
【００４７】
有効ビットインジケータは、サブキャッシュＣ０またはＣ１への所定のエントリが、有効データを含むことを示す。ウェイ０の有効ビットインジケータ２０４00と２０４01とは、それぞれラインＬ３０0、Ｌ３１0上で出力を生み出す。ウェイ１の有効ビットインジケータ２０４10と２０４11とは、それぞれラインＬ３０1、Ｌ３１1上で出力を生み出す。
【００４８】
サブキャッシュＣ０のタグラム２０２00、２０２01のそれぞれは、３つの入力を受け取る。第１の入力は、バッチＢ中のそれぞれのピクセルに対する、ラインＬ２0上のＴｅｘ０ ＴＡＧ＿ＩＮであり、太線で示した。第２の入力は、Ｌ４0上のインデックス、Ｔｅｘ０ ＩＮＤＥＸ［３：０］であり、２つの点によって後続される破線として示した。インデックスを使用して、タグラム２０２00、２０２01にアクセスする。それぞれのウェイタグラム２０２00、２０２01に対する第３の入力は、ウェイ選択器１０６0からの、ラインＬ１０0上のものである。
【００４９】
有効ビットインジケータ２０４00と２０４01の出力は、それぞれラインＬ３０0、Ｌ３１0上で出力を生み出し、これらは、比較器２１４00と２１４01とにそれぞれ送られる。さらに、サブキャッシュＣ０のタグラム２０２00，２０２01からのラインＬ２０0、Ｌ２１0上の出力は、比較器２１４00と２１４01とにそれぞれ送られる。比較器２１４00と２１４01とはまた、Ｔｅｘ０ ＴＡＧ＿ＩＮを受け取る。
【００５０】
しかしながら、ラインＬ３０0、Ｌ３１0、Ｌ３０1、またはＬ３１1の任意の１つ上の有効ビットが、“０”である場合、その有効ビットに関係する比較は使用されない。さらに、ラインＬ６上のアクティブビットは、３Ｄグラフィックスパイプライン６０において、特に使用され、上に説明したのと同様な方法で機能する。
【００５１】
比較器２１４00、２１４01による比較は、サブキャッシュＣ０の２ウェイのタグラム２０２00、２０２01からの、それぞれラインＬ２０0、Ｌ２１0上での、２つの可能性あるタグコンテンツと、到来しているピクセルのタグＴｅｘ０ ＴＡＧ＿ＩＮとの間で実行される。比較器２１４00、２１４01からの２つの比較の内の１つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、オペランド２１６0からのラインＬ５０0上の出力は、サブキャッシュヒットを表す。例として、オペランド２１６0は、ＡＮＤゲートとして表される。そうではない場合、オペランド２１６0からのラインＬ５０0上の出力は、キャッシュミスを表す。比較器２１４00、２１４01がラインＬ４０0、Ｌ４１0上で、それぞれの比較の結果を出力し、これらは、オペランドゲート２１６0の入力に供給される。オペランドゲート２１６0はまた、ラインＬ６上で、アクティブビットを表す入力を受け取る。
【００５２】
サブキャッシュＣ１のタグラム２０２10、２０２11のそれぞれは、３つの入力を受け取る。第１の入力は、バッチＢ中のそれぞれのピクセルに対する、ラインＬ２1上のＴｅｘ１ ＴＡＧ＿ＩＮであり、太線で示した。第２の入力は、Ｌ４1上のインデックス、Ｔｅｘ１ ＩＮＤＥＸ［３：０］であり、２つの点によって後続される破線として示した。インデックスを使用して、タグラム２０２10、２０２11にアクセスする。それぞれのタグラム２０２10、２０２11の第３の入力は、ウェイ選択器１０６1からの、ラインＬ１０1上のものである。
【００５３】
有効ビットインジケータ２０４10と２０４11の出力は、それぞれラインＬ３０1、Ｌ３１1上で出力を生み出し、これらは、比較器２１４10と２１４11にそれぞれ送られる。さらに、サブキャッシュＣ１のタグラム２０２10，２０２11からのラインＬ２０1、Ｌ２１1上の出力は、比較器２１４10と２１４11にそれぞれ送られる。比較器２１４10と２１４11はまた、Ｔｅｘ１ ＴＡＧ＿ＩＮを受け取る。
【００５４】
比較器２１４10、２１４11による比較は、サブキャッシュＣ１の２ウェイのタグラム２０２10、２０２11からの、それぞれラインＬ２０1、Ｌ２１1上の、２つの可能性あるタグコンテンツと、到来しているピクセルのタグＴｅｘ１ ＴＡＧ＿ＩＮとの間で実行される。比較器２１４10、２１４11からの２つの比較の内の１つが一致の結果をもたらす場合、このような一致はサブキャッシュヒットを暗示する。したがって、ＡＮＤゲート２１６1からのラインＬ５０1上の出力は、サブキャッシュヒットを表す。そうではない場合、オペランドゲート２１６1からのラインＬ５０1上の出力は、サブキャッシュミスを表す。比較器２１４10、２１４11がラインＬ４０1、Ｌ４１1上で、それぞれの比較の結果を出力し、これらは、オペランドゲート２１６1の入力に供給される。オペランドゲート２１６1はまた、ラインＬ６上で、アクティブビットを表す入力を受け取る。
【００５５】
最終ステージにおいて、サブキャッシュＣ０とサブキャッシュＣ１の出力は、マルチプレクサ２１８に入力される。マルチプレクサ２１８は、ラインＬ５０0、Ｌ５１1上の出力をマルチプレクスして、ラインＬ６０上に、新しいマルチプレクスされた出力を形成する。ラインＬ６０上の出力は、フェッチ制御装置４８に送られるフェッチ要求を表す。マルチプレクスされた出力は、一度に、１つのフェッチ要求を送る。
【００５６】
特に図７Ｂを参照して、サブキャッシュＣ０またはＣ１のキャッシュラインすなわちブロックの任意のものによるキャッシュヒットがある場合、要求されたテクスチャデータが、対応するウェイデータラム２２０00、２２０01、または、２２０10、２２０11から、それぞれラインＬ７０0、Ｌ７１0、またはＬ７０1、またはＬ７０1の内の１つ上で読み出される。サブキャッシュＣ０中のラインＬ７０0、Ｌ７１0上の出力テクスチャデータが、マルチプレクサ２２２0に送られる。サブキャッシュＣ１中のラインＬ７０1、Ｌ７１1上の出力テクスチャデータが、マルチプレクサ２２２1に送られる。マルチプレクサ２２２0と２２２1からの出力は、それぞれラインＬ８０0とＬ８０1上で、複数のテクスチャマップとして、テクスチャマッピングエンジン６６Ａに送られる。
【００５７】
ウェイ選択器２０６0からのラインＬ１０0上の出力を使用して、マルチプレクサ２２２0を制御する。同様に、ウェイ選択器２０６1からのラインＬ１０1上の出力を使用して、マルチプレクサ２２２1を制御する。それぞれのウェイデータラム２２０0、２２０1、１２０3が、ラインＬ１上で、メイン（外部）メモリ４０から対応するテクスチャマップデータを代入される。２１０0、２１０1として表したインバータは、フィードバックラインＬ８0、Ｌ８1上で送られたビットを反転する。フィードバックラインＬ８0、Ｌ８1は、それぞれ、ウェイ選択器２０６0、２０６1のＴｅｘ０ウェイ選択ビット２０８0と、Ｔｅｘ１ウェイ選択ビット２０８1とに対して、反転されたビットをループバックするように結合されている。
【００５８】
上記の実施形態は、動的に構成可能なテクスチャキャッシュ４４を、容易に構成可能にすることで、１つのキャッシュを使用して、シングルテクスチャモード１００またはマルチテクスチャモード２００の内の１つにおいて、テクスチャマッピングエンジン６６Ａを最適化させている。さらに、コンフリクトミスは、一般的に発生しない。さらに、２つ以上（Ｍ＝２）のテクスチャマップＴＭは、互いに繰り返し参照することなく、および／または、冗長なメモリトラフィックを生成させることがないだろう。
【００５９】
動的に構成可能なテクスチャキャッシュ４４のあらゆる可能な構成（例えば、再構成可能なｎウェイのセットアソシエイティブテクスチャキャッシュ）を説明することは難しい。しかしながら、マルチテクスチャモード２００であるとき、キャッシュ４４は、それぞれのテクスチャマップに専用の、ｎ／Ｍ個のセットアソシエイティブテクスチャサブキャッシュを持つように構成すべきである。ｎとＭは、１より大きい整数であり、ｎはＭによって割ることができる。Ｍの値は、テクスチャマップの数であってもよい。この例において、Ｍは、２つのサブキャッシュを提供する２であり、それぞれのサブキャッシュは、２つのテクスチャマップのそれぞれのもの専用である。
【００６０】
１つ以上の例示的な実施形態において、説明した機能を、ハードウェアや、ソフトウェアや、ファームウェアや、または、これらの任意の組み合わせによって実現してもよい。ソフトウェアで実現される場合、機能を、コンピュータ読取可能媒体中の１つ以上の命令またはコードとして記憶させてもよく、あるいは、コンピュータ読取可能媒体上で送信してもよい。コンピュータ読取可能媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にさせる任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であってもよい。例として、これらに制限される訳ではないが、このようなコンピュータ読取可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、および他の光学ディスク、磁気ディスクストレージまたは磁気ストレージ装置、あるいは、所望のプログラムコードを命令またはデータ構造の形態で搬送または記憶するのに使用されることができ、かつ、コンピュータによってアクセスされることができる、他の任意の媒体を含むことができる。また、任意の接続は、厳密にコンピュータ読取可能媒体として呼ばれる。例えば、ソフトウェアが、ウェブサイト、サーバ、または、他の遠隔源から、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線（ＤＳＬ）、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術を使用して送られる場合、同軸ケーブル、光ファイバーケーブル、撚線対、デジタル加入者回線（ＤＳＬ）、または、赤外線、無線、マイクロウェーブのようなワイヤレス技術は、媒体の定義に含まれるものとする。ディスク（ｄｉｓｋとｄｉｓｃ）は、ここで使用するように、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、デジタル汎用ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、ブルーレイ（登録商標）ディスクを含み、ここで、ディスク（ｄｉｓｋ）は、通常は、磁気的にデータを再生し、ディスク（ｄｉｓｃ）は、レーザーで光学的にデータを再生する。上記のものの組み合わせがまた、コンピュータ読取可能媒体の範囲内に含まれるだろう。
【００６１】
開示した実施形態のこれまでの記述は、当業者が本発明を製作または使用できるように提供した。これらの実施形態に対するさまざま改良は当業者に容易に明らかとなり、ここに定義された一般的な原理は、本発明の精神および範囲を逸脱することなく、他の実施形態に適用されてもよい。したがって、本発明はここに示された実施形態に限定されることを意図しているものではなく、ここで開示されている原理および新しい特徴と一致した最も広い範囲に一致させるべきである。
【図１】
2010519651.tif 000003
【図２】
2010519651.tif 000004
【図３Ａ】
2010519651.tif 000005
【図３Ｂ】
2010519651.tif 000006
【図４】
2010519651.tif 000007
【図５Ａ】
2010519651.tif 000008
【図５Ｂ】
2010519651.tif 000009
【図６Ａ】
2010519651.tif 000010
【図６Ｂ】
2010519651.tif 000011
【図７Ａ】
2010519651.tif 000012
【図７Ｂ】
2010519651.tif 000013
【図８】
2010519651.tif 000014
【国際調査報告】
2010519651.tif 000015
2010519651.tif 000016
2010519651.tif 000017