(57)【要約】【課題】キャッシュミスを減少させて、データ読み出しを高速化するための技術を提供する。【解決手段】２次テクスチャキャッシュ４００は、複数のテクスチャユニット６２０〜６ｎ０から共通して利用され、メインメモリ１０のテクスチャデータの一部を記憶する。キャッシュ制御用ＣＰＵ２００は、複数のテクスチャユニット６２０〜６ｎ０のキャッシュミスに応じて、メインメモリ１０から２次テクスチャキャッシュ４００へのリフィル動作を、２次テクスチャキャッシュ４００にスラッシングの発生を抑制するよう制御する。キャッシュ制御用ＣＰＵ２００は、複数のテクスチャユニット６２０〜６ｎ０が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィル動作の発生を抑制する。【選択図】図１
2005346215.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
前記複数の演算部のキャッシュミスに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を、前記キャッシュメモリにスラッシングの発生を抑制するよう制御する制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
複数の演算部から共通して利用され、メインメモリのデータの一部を複数のウエイで記憶するキャッシュメモリと、
前記ウエイごとに、キャッシュタグおよびエントリの状態を管理するキャッシュ管理部と、
前記複数の演算部のキャッシュミスにより発生する前記キャッシュ管理部からのリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作、および前記エントリの状態を制御する制御部と、
を備えることを特徴とする情報処理装置。
【請求項３】
前記制御部は、前記複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、前記リフィル動作の発生を抑制することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、同一のメモリアドレスへのリフィルリクエストを複数受けると、２番目以降のリフィルリクエストに対応するリフィル動作を停止することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記制御部は、同一のメモリアドレスへのリフィルリクエストを複数受けると、２番目以降のリフィルリクエストに対応するエントリロックを停止することを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記制御部は、前記キャッシュミスにより発生するリフィルリクエストが所定数累積してから、前記リフィル動作を行うことを特徴とする請求項１または２に記載の情報処理装置。
【請求項７】
複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
前記複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を制御する制御部と、を備え、
前記制御部は、前記リフィル動作の開始後、所定の時間が経過した後、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すことを特徴とする情報処理装置。
【請求項８】
複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
前記メインメモリと前記キャッシュメモリとの間に設けられる中間バッファと、
前記複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、前記メインメモリから前記中間バッファを経由して前記キャッシュメモリへのリフィル動作を制御する制御部と、を備え、
前記制御部は、前記リフィル動作により前記キャッシュメモリに渡すデータが前記中間バッファに記憶されると、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すことを特徴とする情報処理装置。
【請求項９】
複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
前記複数の演算部のキャッシュミスによるリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を制御し、前記複数の演算部の用いるテクスチャデータを予測して、前記メインメモリから前記キャッシュメモリへのプリフェッチ動作を制御する制御部と、を備え、
前記キャッシュメモリは、前記キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含むことを特徴とする情報処理装置。
【請求項１０】
前記制御部は、前記両領域を所定の条件で切り替えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
演算部から共通して利用され、メインメモリに記憶されたテクスチャデータの一部を記憶するキャッシュメモリと、
前記演算部の用いるテクスチャデータを予測し、そのテクスチャデータを含むラインを前記メインメモリから前記キャッシュメモリへプリフェッチする制御部と、
を備えることを特徴とする情報処理装置。
【請求項１２】
前記制御部は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチすることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記キャッシュメモリは、キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含むことを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記制御部は、前記両領域を所定の条件で切り替えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、前記キャッシュメモリにスラッシングの発生を抑制するよう調停する調停ステップと、
調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへのリフィルを実行するリフィルステップと、
を有することを特徴とする情報処理方法。
【請求項１６】
前記調停ステップは、前記複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、前記リフィルの発生を抑制することを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記調停ステップは、前記リフィルリクエストが所定数累積するまで、前記リフィルの発生を抑制することを特徴とする請求項１５に記載の情報処理方法。
【請求項１８】
前記キャッシュメモリに割り当てられた、キャッシュミスにより前記リフィルする領域と、エントリロックしてプリフェッチする領域とを所定の条件で切り替える切替ステップ、をさらに有することを徳用とする請求項１５に記載の情報処理方法。
【請求項１９】
キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを調停する調停ステップと、
調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへのリフィルを実行するリフィルステップと、
前記リフィルの開始後、所定の時間が経過した後、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すエントリロックステップと、
を有することを特徴とする情報処理方法。
【請求項２０】
演算部の用いるテクスチャデータを予測する予測ステップと、
予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするプリフェッチステップと、
を有することを特徴とする情報処理方法。
【請求項２１】
前記予測ステップは、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとすることを特徴とする請求項２０に記載の情報処理方法。
【請求項２２】
前記キャッシュメモリに割り当てられた、キャッシュミスによりリフィルする領域と、エントリロックして前記プリフェッチする領域とを所定の条件で切り替える切替ステップ、をさらに有することを徳用とする請求項２０に記載の情報処理方法。
【請求項２３】
キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、前記キャッシュメモリにスラッシングの発生を抑制するよう調停する調停機能と、
調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへリフィルするよう命令する機能と、
をコンピュータに発揮させることを特徴とするプログラム。
【請求項２４】
演算部の用いるテクスチャデータを予測する機能と、
予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするよう命令する機能と、
をコンピュータに発揮させることを特徴とするプログラム。
【請求項２５】
前記予測機能は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとすることを特徴とする請求項２４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメインメモリからのデータの読み出しを高速化するための技術、特に、キャッシュメモリを利用して高速化するための技術に関する。
【背景技術】
【０００２】
近年、プロセッサの動作周波数が飛躍的に向上している。これに対し、メインメモリに一般的に使用されるＤＲＡＭ（Dynamic Random Access Memory）の動作速度は、プロセッサ程に向上していないため、プロセッサの性能を活かすには工夫を要する。メインメモリへのアクセス時間を短縮するために、メインメモリとプロセッサとの間にキャッシュメモリを搭載する手法が利用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、プロセッサがアドレスを指定してキャッシュにアクセスしても、キャッシュ内に所望のデータが存在しない場合、キャッシュミスとなりメインメモリからリフィルしなければならない。このようなキャッシュミスが頻繁に発生すると、高速化に資しないばかりではなく、逆にオーバーヘッドになることもある。
【０００４】
本発明は、上記課題に鑑みてなされたものであり、その目的は、キャッシュミスを減少させて、データ読み出しを高速化する情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスに応じて、メインメモリからキャッシュメモリへのリフィル動作を、キャッシュメモリにスラッシングの発生を抑制するよう制御する制御部と、を備える。なお、「データ」にはテクスチャデータが含まれる。「演算部」にはテクスチャユニットが含まれる。「スラッシング」とは、メインメモリとキャッシュメモリとの間で、同じデータのスワップイン／スワップアウトが断続的に発生する状態をいう。
【０００６】
本発明の別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を複数のウエイで記憶するキャッシュメモリと、ウエイごとに、キャッシュタグおよびエントリの状態を管理するキャッシュ管理部と、複数の演算部のキャッシュミスにより発生する前記キャッシュ管理部からのリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作、およびエントリの状態を制御する制御部と、を備える。
【０００７】
制御部は、複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィル動作の発生を抑制してもよいし、同一のメモリアドレスへのリフィルリクエストを複数受けると、２番目以降のリフィルリクエストに対応するリフィル動作を停止してもよい。また、同一のメモリアドレスへのリフィルリクエストを複数受けると、２番目以降のリフィルリクエストに対応するエントリロックを停止してもよい。さらに、キャッシュミスにより発生するリフィルリクエストが所定数累積してから、リフィル動作を行ってもよい。
【０００８】
本発明の別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作を制御する制御部と、を備え、制御部は、リフィル動作の開始後、所定の時間が経過した後、リフィルリクエストに対応するエントリロックをキャッシュメモリに施す。
【０００９】
本発明のさらに別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、メインメモリとキャッシュメモリとの間に設けられる中間バッファと、複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、メインメモリから中間バッファを経由してキャッシュメモリへのリフィル動作を制御する制御部と、を備え、制御部は、リフィル動作によりキャッシュメモリに渡すデータが中間バッファに記憶されると、リフィルリクエストに対応するエントリロックをキャッシュメモリに施す。
【００１０】
本発明のさらに別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスによるリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作を制御し、複数の演算部の用いるテクスチャデータを予測して、メインメモリからキャッシュメモリへのプリフェッチ動作を制御する制御部と、を備え、キャッシュメモリは、キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含む。制御部は、両領域を所定の条件で切り替えてもよい。
【００１１】
本発明のさらに別の態様も情報処理装置である。この装置は、演算部から共通して利用され、メインメモリに記憶されたテクスチャデータの一部を記憶するキャッシュメモリと、演算部の用いるテクスチャデータを予測し、そのテクスチャデータを含むラインをメインメモリからキャッシュメモリへプリフェッチする制御部と、を備える。制御部は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチしてもよい。
【００１２】
本発明のさらに別の態様は情報処理方法である。この方法は、キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、キャッシュメモリにスラッシングの発生を抑制するよう調停する調停ステップと、調停されたリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィルを実行するリフィルステップと、を有する。調停ステップは、複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィルの発生を抑制してもよいし、リフィルリクエストが所定数累積するまで、リフィルの発生を抑制してもよい。
【００１３】
本発明のさらに別の態様は情報処理方法である。この方法は、キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを調停する調停ステップと、調停されたリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィルを実行するリフィルステップと、リフィルの開始後、所定の時間が経過した後、リフィルリクエストに対応するエントリロックをキャッシュメモリに施すエントリロックステップと、を有する。
【００１４】
本発明のさらに別の態様は情報処理方法である。この方法は、演算部の用いるテクスチャデータを予測する予測ステップと、予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするプリフェッチステップと、を有する。予測ステップは、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとしてもよい。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、メモリからのデータ読み出しを高速化することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、第１実施形態におけるメインメモリ１０とＧＰＵ（Graphics Processing Unit）１００の構成を示すブロック図である。メインメモリ１０は、システムのメインメモリでありＤＲＡＭ等が用いられる。本実施形態では主にテクスチャデータを記憶している。ＧＰＵ１００は、３次元グラフィック表示に必要な計算やレンダリングを行なう半導体チップである。ＧＰＵ１００には、図示しない複数のシェーダユニットに対応した複数のテクスチャユニット６２０〜６ｎ０が搭載されている。複数搭載させることにより、レンダリングの速度を向上させシーンの切り替わり等を滑らかにしている。
【００１８】
各テクスチャユニット６２０〜６ｎ０は、１次テクスチャキャッシュ６２２〜６ｎ２を備える。テクスチャユニット６２０は、図示しないシェーダユニットからテクスチャデータを指定するパラメータの入力を受け取り、１次テクスチャキャッシュ６２２に対してメインメモリ空間のアドレスを指定して、テクスチャを構成するテクセルデータを要求する。１次テクスチャキャッシュ６２２は、当該要求に対して、ヒットした場合はそのテクセルデータをテクスチャユニット６２０に渡す。ミスした場合は２次テクスチャキャッシュコントローラ５００に、２次テクスチャキャッシュ４００から当該データを読み出すよう要求する。その後、２次テクスチャキャッシュ４００から該当するアドレスのテクセルデータが読み出されるまで、そのテクスチャユニット６２０はストールする。他のテクスチャユニットも同様に動作する。
【００１９】
２次テクスチャキャッシュコントローラ５００は、２次テクスチャキャッシュ４００に蓄積されているメインメモリ１０上のテクスチャデータの管理を行う。２次テクスチャキャッシュコントローラ５００は、テクスチャユニット６２０〜６ｎ０からのリード要求に対して、メインメモリ１０上のテクスチャデータが２次テクスチャキャッシュ４００に蓄積されているか否かを判定するためのキャッシュタグを持つ。キャッシュタグは、メインメモリ１０上のアドレスの一部である。リード要求されるアドレスの一部とキャッシュタグとが一致すればキャッシュヒットとなり、一致しなければキャッシュミスとなる。
【００２０】
２次テクスチャキャッシュコントローラ５００は、テクスチャユニット６２０〜６ｎ０からリード要求されたテクスチャデータが２次テクスチャキャッシュ４００上に存在しない場合、即ちキャッシュミスの場合、キャッシュ制御用ＣＰＵ２００にリフィル要求を出す。リフィル要求は、所望のテクスチャデータをメインメモリ１０から２次テクスチャキャッシュ４００に転送するよう要求するものである。テクスチャユニット６２０〜６ｎ０からリード要求されたテクスチャデータが２次テクスチャキャッシュ４００上に存在した場合、即ちキャッシュヒットの場合、そのテクスチャデータをテクスチャユニット６２０〜６ｎ０に転送する。
【００２１】
２次テクスチャキャッシュコントローラ５００は、少なくとも２つ以上のウエイを持つ。これにより、後述するプリフェッチするウエイとリフィルするウエイを両方設けることができる。キャッシュの方式は、ダイレクトマッピング、Ｎウェイセットアソシアティブ、フルアソシアティブ等を用いることができる。Ｎウェイセットアソシアティブを採る場合、ＣＡＭ（Content Addressable Memory）を使用して、一致比較を並列に行ってもよい。２次テクスチャキャッシュコントローラ５００は、キャッシュ制御用ＣＰＵ２００から停止要求があった場合、要求があったウエイの動作を停止する。この状態で、キャッシュ制御用ＣＰＵ２００からそのウエイのキャッシュタグを書き換えることが可能になる。全てのテクスチャユニット６２０〜６ｎ０からの要求がキャッシュミスになった場合も停止状態に移行する。
【００２２】
キャッシュ制御用ＣＰＵ２００から動作再開要求があった場合、要求があったウエイの動作を再開する。停止中にメインメモリ１０から２次テクスチャキャッシュ４００へのテクスチャデータの転送が終了した場合、該当するテクスチャユニットからのリード要求を再実行し、キャッシュヒット動作で当該テクスチャユニットにテクスチャデータを転送する。
【００２３】
２次テクスチャキャッシュ４００は、メインメモリ１０上のテクスチャデータを一時的に記憶しておくための領域である。２次テクスチャキャッシュ４００は、ＥＤＲＡＭ（Embedded Dynamic Random Access Memory）上の一部の領域に構築してもよい。メインメモリ１０上のテクスチャデータは、キャッシュ制御用ＣＰＵ２００からのＤＭＡ（Direct Memory Access）コントローラ３００への命令により２次テクスチャキャッシュ４００にＤＭＡ転送される。テクスチャデータの転送は、ラインと呼ばれる１６バイト、３２バイト等の単位で行われる。この転送が終了すると、キャッシュ制御用ＣＰＵ２００が２次テクスチャキャッシュコントローラ５００内のキャッシュタグを書き換える。２次テクスチャキャッシュ４００上のテクスチャデータに対して、テクスチャユニット６２０〜６ｎ０がリード要求を出すと、２次テクスチャキャッシュコントローラ５００が自動的に該当する２次テクスチャキャッシュ４００上のテクスチャデータを１次テクスチャキャッシュ６２２〜６ｎ２に転送する。
【００２４】
ＤＭＡコントローラ３００は、キャッシュ制御用ＣＰＵ２００の命令により、アドレス信号を発生させ、メインメモリ１０から２次テクスチャキャッシュ４００にＣＰＵを介さずにテクスチャデータを転送する。
【００２５】
メインメモリ１０と２次テクスチャキャッシュ４００との間は、チップ間の転送に限らず、ネットワークを介した転送も含まれる。例えば、メインメモリ１０がインターネット上のサーバに存在し、２次テクスチャキャッシュ４００がクライアントに存在するような構成でもよい。
【００２６】
キャッシュ制御用ＣＰＵ２００は、２次テクスチャキャッシュコントローラ５００を介しての複数のリフィル要求を調停して、ＤＭＡコントローラ３００に命令を出す。図示しないＲＡＭを使用して、キャッシュ制御用プログラムを実行することにより、キャッシュ制御を行う。
【００２７】
図２は、第１実施形態におけるシステムの第１動作例を示すフローチャートである。まず前提として、以下の説明において２次テクスチャキャッシュ４００は原則的に４ウエイ構成とする。１次テクスチャキャッシュ６２２をミスしたテスクチャデータのリード要求が、テクスチャユニット６２０から２次テクスチャキャッシュコントローラ５００に到達する。２次テクスチャキャッシュコントローラ５００は、そのテクスチャデータが２次テクスチャキャッシュ４００上に存在した場合、そのデータを１次テクスチャキャッシュ６２２に転送する。存在しない場合、キャッシュ制御用ＣＰＵ２００にリフィル要求を送信する。このとき、リード要求を出したテクスチャユニット６２０へのデータ転送動作を停止する。また、キャッシュ制御用ＣＰＵ２００にはリード要求を出したテクスチャユニット６２０のＩＤ番号を送付する。
【００２８】
図２において、キャッシュ制御用ＣＰＵ２００は、２次テクスチャキャッシュコントローラ５００からのテクスチャデータのリフィル要求を受け付ける（Ｓ１０）。このリフィル要求先のアドレスが、既に受け付けられたリフィル要求のアドレスと一致しているか否かを判定する（Ｓ１２）。具体的には、両アドレスを照合すればよい。この判定処理は、既に受け付けられたリフィル要求のアドレスが登録されている場合に行う処理であり、登録されていない場合、即ち初期状態の場合にはスキップされ、ステップＳ１４に遷移する。
【００２９】
一般的に、同じアドレスへのリフィル要求が複数発生することは少ないが、本実施形態においては、それが複数発生しやすい環境にある。テクスチャユニット６２０〜６ｎ０は、処理の高速化のために、並列にテクスチャマッピングを実行する。複数のテクスチャユニット６２０〜６ｎ０はそれぞれ１次テクスチャキャッシュ６２２〜６ｎ２を備えているが、テクスチャユニット６２０〜６ｎ０からの要求は、バイリニア、トリリニア等のフィルタリング処理のため、隣接したテクセルの要求を多く含む。そのため、異なるテクスチャユニット６２０〜６ｎ０の１次テクスチャキャッシュ６２２〜６ｎ２４上に、お互いの隣接テクセルブロックの情報を重複して持たなければならいないことが多い。
【００３０】
図３は、複数のテクスチャユニット６２０〜６ｎ０によって、テクスチャマッピングしている様子を示す。複数のテクスチャユニット６２０〜６ｎ０は、４×４ピクセル等で入れ子状に分割されたフレームバッファの各領域Ａ〜Ｈにテクスチャをマッピングする。例えば、あるテクスチャユニット６２０がフレームバッファのＡ領域７２２にマッピングし、他のテクスチャユニット６４０がフレームバッファのＢ領域７２４にマッピングするといったように、並列に処理を行う。点線で示した部分は、複数のテクスチャａ〜ｌにより生成されたオブジェクトを示す。
【００３１】
フレームバッファのＡ領域７２２にマッピングするテクスチャユニット６２０は、４つのテクスチャデータｂ７０２、ｄ７０４、ｅ７０６、ｈ７０８を自ユニット内の１次テクスチャキャッシュ６２２から読み出して、マッピングする必要がある。フレームバッファのＢ領域７２４にマッピングするテクスチャユニット６４０は、３つのテクスチャデータｅ７０６、ｃ７１０、ｉ７１２を自ユニット内の１次テクスチャキャッシュ６４２から読み出して、マッピングする必要がある。ここで、テクスチャデータｅ７０６は、テクスチャユニット６２０および他のテクスチャユニット６４０の両方に用いられる。したがって、複数のテクスチャユニット６２０から２次テクスチャキャッシュコントローラ５００に同じアドレスのテクスチャデータのリード要求が時間をずらして到着する可能性がある。しかも、２次テクスチャキャッシュ４００をＥＤＲＡＭ上に構築した場合、２次テクスチャキャッシュ４００とメインメモリ１０との間のＤＭＡ転送に、大きなレイテンシーが発生する。よって、あるアドレスのテクスチャデータのリフィルが完了する前に、同じアドレスへのリフィル要求がキャッシュ制御用ＣＰＵ２００に到着する可能性が大きくなる。テクスチャユニット６２０の数を増やす程、リフィル要求が重複する可能性が高くなり、３つ以上のリフィル要求が重複する場合も発生し得る。
【００３２】
図２に戻り、ステップＳ１２において、登録されているアドレスと一致しない場合（Ｓ１２のＮ）、当該リフィル要求の対象アドレスをキャッシュ制御用ＣＰＵ２００内の図示しないレジスタ等に登録する（Ｓ１４）。次に、キャッシュ制御用ＣＰＵ２００は、ＤＭＡ転送によって置き換えられるターゲットアドレス、即ち置き換えられるウエイを決定する（Ｓ１６）。この決定には、様々なアルゴリズムの適用が考えられる。殆どのテクスチャデータが２次テクスチャキャッシュ４００の１つのウエイに載ってしまう場合であれば、１つのウエイをリフィル専用に使用してもよい。また、単にＦＩＦＯ（First-In First-Out）やＬＲＵ（Least Recently Used）を用いてもよい。
【００３３】
次に、キャッシュ制御用ＣＰＵ２００は、決定したウエイのエントリをロックする（Ｓ１８）。以下、ウエイのエントリをロックする手法について説明する。図４は、２次テクスチャキャッシュ４００および２次テクスチャキャッシュコントローラ５００の詳細を示す。２次テクスチャキャッシュ４００は、ウエイごとにライン単位でテクスチャデータをキャッシュしている。２次テクスチャキャッシュコントローラ５００は、２次テクスチャキャッシュ４００をウエイごとに管理している。各ウエイごとにバリットフラグを備え、各ウエイのバリット／インバリットを管理する。例えば、１ビットのフラグレジスタで構成する場合、１でバリット、０でインバリットといった設定が可能である。バリット状態においては、テクスチャユニット６２０〜６ｎ０から２次テクスチャキャッシュ４００内の対応するウエイへのアクセスが可能であるが、インバリット状態においては、そのアクセスがロックされる。このバリットフラグは、キャッシュ制御用ＣＰＵ２００により書き換え制御される。
【００３４】
また、２次テクスチャキャッシュコントローラ５００は、２次テクスチャキャッシュ４００にキャッシュされているテクスチャデータのメインメモリ１０空間上のアドレスの一部を、キャッシュタグとしてウエイごとに管理する。そして、リード要求に係るアドレスとキャッシュタグに係るアドレスとを比較して、キャッシュヒットかミスかを判定する。
【００３５】
図２に戻り、キャッシュ制御用ＣＰＵ２００は、リフィルするウエイをロックしたら、メインメモリ１０から２次テクスチャキャッシュ４００の当該ウエイに、上記登録したアドレスのテクスチャデータをＤＭＡ転送するようＤＭＡコントローラ３００に命令する（Ｓ２０）。ＤＭＡ転送が完了したら、２次テクスチャキャッシュコントローラ５００の対応するキャッシュタグを書き換える（Ｓ２２）。そして、そのウエイのロックを解除する。２次テクスチャキャッシュコントローラ５００は、そのウエイを再起動し、上記ＤＭＡ転送に対応したテクスチャユニット６２０〜６ｎ０のリード要求を再実行する。
【００３６】
ステップＳ１２において、登録されているアドレスと一致する場合（Ｓ１２のＹ）、リフィル用のウエイを確保するためのエントリロックを行わずに、２次テクスチャキャッシュ４００の現在のエントリ状態を維持する（Ｓ２４）。キャッシュ制御用ＣＰＵ２００は、アドレスが一致した既発のＤＭＡ転送命令に対して、リード要求を出したテクスチャユニット６２０〜６ｎ０のＩＤ番号をリンクする（Ｓ２６）。このリード要求に対応するＤＭＡ転送命令は発行しない。２次テクスチャキャッシュコントローラ５００は、リフィルされたウエイを再起動する際、リンクされたＩＤ番号のテクスチャユニット６２０〜６ｎ０のリード要求も再実行する。以下、レンダリング処理が終了するまで（Ｓ２８のＹ）、上記処理を繰り返す。
【００３７】
このように第１動作例によれば、同じアドレスのテクスチャデータを重複してリフィルして、必要以上にウエイがロックされることを防止することができる。したがって、テクスチャユニット６２０〜６ｎ０の２次テクスチャキャッシュ４００からのデータ読み出しを阻害することがない。また、無駄なリフィルを防止するため、２次テクスチャキャッシュ４００におけるスラッシングの発生を抑制することができる。
【００３８】
図５は、第１実施形態におけるシステムの第２動作例を示すフローチャートである。まず、キャッシュ制御用ＣＰＵ２００は、２次テクスチャキャッシュコントローラ５００からリフィル要求を受け付ける（Ｓ３０）。リフィル要求の発生プロセスは、第１動作例と同様である。次に、キャッシュ制御用ＣＰＵ２００は、リフィル要求の累積カウント値を保持するパラメータＲＥＱをインクリメントする（Ｓ３２）。同時に、当該リフィル要求に係るアドレスを図示しないレジスタ等に登録する（Ｓ３４）。
【００３９】
次に、パラメータＲＥＱに保持される値が所定の閾値を超えたか否かを判定する（Ｓ３６）。この所定の閾値は、テクスチャユニット６２０〜６ｎ０の数や、シーンの切り替わり方、等により最適値が異なる。つまり、複数のテクスチャユニット６２０〜６ｎ０によりあるシーンやあるオブジェクトをテクスチャマッピングする場合、一部のテクスチャユニット６２０〜６ｎ０は、そのシーンやオブジェクトの処理を終了し、次のシーンやオブジェクトの処理を開始しようとして、２次テクスチャキャッシュ４００にリード要求を出し始める。この時点において、残りのテクスチャユニット６２０〜６ｎ０は、まだ現在のシーンやオブジェクトの処理を継続している。
【００４０】
この状態において、キャッシュ制御用ＣＰＵ２００が、上記リード要求に対応するリフィル要求に対してＤＭＡコントローラ３００にＤＭＡ転送命令を発行してしまうと、上記残りのテクスチャユニット６２０〜６ｎ０が処理中の２次テクスチャキャッシュ４００上のテクスチャデータが追い出されてしまう。処理中のテクスチャデータが追い出されてしまうと、再度リフィル要求がキャッシュ制御用ＣＰＵ２００に出さなければならず、２次テクスチャキャッシュ４００がスラッシング状態となる。上記所定の閾値は、いくつのリフィル要求が累積したら次のシーンやオブジェクト用のテクスチャデータをリフィルしてよいかを、テストやシミュレーションにより求めて、設定するとよい。
【００４１】
ステップＳ３６において、パラメータＲＥＱに保持される値が所定の閾値以下の場合（Ｓ３６のＮ）、ＤＭＡ転送命令を発行せずにリフィル要求の受付を継続する（Ｓ３０）。なお、所定の閾値を超えたとき（Ｓ３６のＹ）、キャッシュ制御用ＣＰＵ２００は、ＤＭＡ転送によって置き換えられるターゲットアドレス、即ち置き換えられるウエイを決定する（Ｓ３８）。そして、決定したウエイのエントリをロックする（Ｓ４０）。リフィルするウエイをロックしたら、メインメモリ１０から２次テクスチャキャッシュ４００の当該ウエイに、上記登録したアドレスのテクスチャデータをＤＭＡ転送するようＤＭＡコントローラ３００に命令する（Ｓ４２）。ＤＭＡ転送が完了したら、２次テクスチャキャッシュコントローラ５００の対応するキャッシュタグを書き換える（Ｓ４４）。そして、そのウエイのロックを解除する。２次テクスチャキャッシュコントローラ５００は、そのウエイを再起動し、上記ＤＭＡ転送に対応したテクスチャユニット６２０〜６ｎ０のリード要求を再実行する。
【００４２】
次に、キャッシュ制御用ＣＰＵ２００は、パラメータＲＥＱを初期化する（Ｓ４６）。以下、レンダリング処理が終了するまで（Ｓ４８のＹ）、上記処理を繰り返す。上記処理において、リフィル用のウエイ数を超える数のリフィル要求が同一ライン上に集中した場合には、後から到着したリフィル要求は、保留して、リフィル処理を次回に延ばす。この場合、保留されたリフィル要求に対応したテクスチャユニットに関しては、再開の時にも停止状態としておく。
【００４３】
このように第２動作例によれば、現在のシーンやオブジェクトのテクスチャマッピングを終了し、次のシーンやオブジェクトを処理すべきテクスチャユニット６２０〜６ｎ０と、現在のシーンやオブジェクトを処理中のテクスチャユニット６２０〜６ｎ０とが併存する状態において、キャッシュ制御用ＣＰＵ２００によりリフィルのスケジューリングを行うことにより、２次テクスチャキャッシュ４００におけるスラッシングの発生を抑制することができる。また、次のシーンやオブジェクトを処理すべき複数のテクスチャユニット６２０〜６ｎ０は、それを処理するためのテクスチャデータがリフィルされたと同時に、一斉にテクスチャマッピングを開始することができる。即ち、テクスチャマッピング開始のバラツキを抑えることができる。
【００４４】
また、本実施形態は、ゲームプログラムのグラフィック処理に適用可能である。例えば、ゲームプログラムのグラフィック処理として、メインメモリ上にテクスチャデータ全体を置き、ＥＤＲＡＭ上のテクスチャデータとして利用する領域にゲームプログラムが予めテクスチャデータを転送しておき、その後投入した描画コマンドがＥＤＲＡＭからテクスチャデータを読み出すことでテクスチャマッピングを実現する手法もある。この手法は、限られたＥＤＲＡＭを有効に利用することができる。
【００４５】
ただ、この手法は、描画コマンドがメインメモリ上のどの部分のテクスチャデータを読み出すかをゲームプログラムが予め認識していることが前提となる。また、ＥＤＲＡＭのテクスチャデータ格納領域上に入りきらないような大きなテクスチャデータを用いる場合、ゲームプログラムの開発時点でテクスチャデータを分割し、ＥＤＲＡＭ上に乗り切るサイズに編集しておくことも前提となる。
【００４６】
この点、本実施形態のキャッシュ制御によれば、フォントデータのようにゲームプログラムの実行後、読み出すテクスチャデータの部分が決まる場合にも、効率を落とさずにレンダリングすることができる。また、ゲームプログラムの開発時点でＥＤＲＡＭのサイズに合わせて、テクスチャデータを変換する必要もない。
【００４７】
また、キャッシュをハードウエアでなくソフトウエアで制御することにより、グラフィックチップの外部にあるメインメモリにアクセスする場合の大きなレイテンシーに対しても、スラッシングを最小限に抑えた制御が可能となる。
【００４８】
図６は、第２実施形態におけるメインメモリ１０とＧＰＵ１００の構成を示すブロック図である。図６は、図１の構成のＤＭＡコントローラ３００と２次テクスチャキャッシュ４００との間に中間バッファ３５０が付加された構成であり、中間バッファ３５０以外の説明は、図１の説明と同様のため省略する。中間バッファ３５０は、ＤＭＡコントローラ３００によりメインメモリ１０から２次テクスチャキャッシュ４００にリフィルされるテクスチャデータを一時保存するための記憶領域である。中間バッファ３５０は、当該テクスチャデータを記憶すると、キャッシュ制御用ＣＰＵ２００にその旨を伝達する制御信号を出す。そして、その制御信号を出すと同時または所定の遅延を与えた後、記憶しているテクスチャデータを２次テクスチャキャッシュ４００に出力する。
【００４９】
図７は、第２実施形態におけるシステムの動作例を示すフローチャートである。図７のフローチャートは、図２のフローチャートと基本部分が同一のため相違点を説明する。まず、ステップＳ１６までの処理は、図２の説明と同様である。図７において、キャッシュ制御用ＣＰＵ２００は、リフィルするウエイを決定した後、そのウエイのエントリをロックせずに、メインメモリ１０から２次テクスチャキャッシュ４００の当該ウエイに、上記登録したアドレスのテクスチャデータをＤＭＡ転送するようＤＭＡコントローラ３００に命令する（Ｓ１７）。
【００５０】
ＤＭＡコントローラ３００は、この命令に従い、２次テクスチャキャッシュ４００に向けて当該テクスチャデータを送出すると、その経路の間に位置する中間バッファ３５０に、当該テクスチャデータが記憶される。中間バッファ３５０は、当該テクスチャデータを記憶すると、キャッシュ制御用ＣＰＵ２００にその旨を伝達する制御信号を出す。キャッシュ制御用ＣＰＵ２００は、この制御信号を受けると（Ｓ１９のＹ）、上記リフィルするウエイのエントリをロックする（Ｓ２１）。換言すると、この制御信号を受ける前までは、当該ウエイのエントリをロックしない。その他の処理は、図２の説明と同様である。
【００５１】
このように第２実施形態によれば、中間バッファ３５０にテクスチャデータが記憶されるまでリフィル対象となるウエイのエントリをロックしないことにより、そのテクスチャデータを要求していない他のテクスチャユニットのエントリ時間を、第１実施形態より長くすることができる。したがって、キャッシュヒット率を向上させることができ、２次テクスチャキャッシュ４００におけるスラッシングの発生を抑制することができる。本実施形態は、メインメモリ１０と２次テクスチャキャッシュ４００との系が長く、その系に大きなレイテンシーが発生する場合に特に有効である。
【００５２】
図８は、第３実施形態におけるメインメモリ１０、メインＣＰＵ２０、およびＧＰＵ１００の構成を示すブロック図である。図８は、図１の構成にメインＣＰＵ２０が付加された構成であり、メインＣＰＵ２０以外の説明は、図１の説明と同様のため省略する。メインＣＰＵ２０は、ゲームプログラム等のプログラムを実行し、そのプログラムのテクスチャマッピングを実行するテクスチャユニット６２０〜６ｎ０が次に必要なテクスチャデータを予測する。このテクスチャデータをメインメモリ１０から２次テクスチャキャッシュ４００にプリフェッチするためのＤＭＡ転送命令を生成して、キャッシュ制御用ＣＰＵ２００に出力する。キャッシュ制御用ＣＰＵ２００は、このＤＭＡ転送命令をＤＭＡコントローラ３００に発行する。
【００５３】
図９は、第３実施形態におけるシステムの第１動作例を示すフローチャートである。まず、キャッシュ制御用ＣＰＵ２００は、２次テクスチャキャッシュ４００の複数のウエイを、プリフェッチ用のウエイとリフィル用のウエイとに分ける（Ｓ５０）。図１０は、当該動作例における２次テクスチャキャッシュ４００および２次テクスチャキャッシュコントローラ５００の詳細を示す。図１０は、４つのウエイのうち、１ウエイおよび２ウエイをリフィル用ウエイに設定し、３ウエイおよび４ウエイをプリフェッチ用ウエイに設定している。
【００５４】
リフィル用ウエイは、上述したようにテクスチャユニット６２０〜６ｎ０からのリード要求に対して、キャッシュミスした場合にリフィル要求を出すウエイである。当該ウエイは、リフィル処理中にエントリロックされる。これに対して、プリフェチ用ウエイは、メインＣＰＵ２０の予測に基づき、予めテクスチャユニット６２０〜６ｎ０が必要となるテクスチャデータを２次テクスチャキャッシュ４００に読み出しておくウエイである。キャッシュミスに関係なく、キャッシュ制御用ＣＰＵ２００の制御によりエントリ期間とエントリロック期間が設定される。
【００５５】
図９に戻り、メインＣＰＵ２０またはキャッシュ制御用ＣＰＵ２００は、必要となるテクスチャデータの予測処理を行う（Ｓ５２）。この予測処理の詳細は後述する。この予測処理によって決定したテクスチャデータのメインメモリ１０上のアドレスを含むＤＭＡ転送命令をＤＭＡコントローラ３００に発行する（Ｓ５４）。このＤＭＡ転送命令によるプリフェッチは、２次テクスチャキャッシュ４００のプリフェッチ用ウエイに対して行われる。このとき、プリフェッチ用ウエイのバリッドフラグは０であり、エントリロックされている。
【００５６】
この処理と同時に、リフィル用ウエイ、キャッシュ制御用ＣＰＵ２００およびＤＭＡコントローラ３００では、リフィル処理が行われている（Ｓ５６）。このリフィル処理の詳細は、第１実施形態で詳述した。なお、図８に第２実施形態において説明した中間バッファ３５０を、ＤＭＡコントローラ３００と２次テクスチャキャッシュ４００との間に設けてもよい。これにより、エントリ期間を長くすることができる。
【００５７】
次に、キャッシュ制御用ＣＰＵ２００は、プリフェッチが完了したか否かを判定する（Ｓ５８）。プリフェッチが完了したら（Ｓ５８のＹ）、キャッシュタグの書き換えとバリッドフラグの書き換えを行う。バリッドフラグが１に書き換えられると、そのウエイへのエントリが可能となる。
【００５８】
メインＣＰＵ２０またはキャッシュ制御用ＣＰＵ２００は、プリフェッチ用ウエイとリフィル用ウエイの切替条件が成就したか否かを判定する（Ｓ６０）。この切替条件は、例えば、プリフェッチが完了した後に所定の期間が経過したとき等を条件とすることができる。また、メインＣＰＵ２０がシーンやオブジェクトの切り替わり等を把握または予測して、必要以上にウエイのエントリをロックしないように、上記切り替わり時刻にＤＭＡ転送時間を減算したタイミングで切り替てもよい。上記切り替わりに対して両ウエイの切替が早すぎると、プリフェッチしたテクスチャデータが追い出されてしまう場合もあり、このようなスラッシングを起こさないようテストやシミュレーションにより最適条件を求めてもよい。
【００５９】
切替条件が成就すると（Ｓ６０のＹ）、キャッシュ制御用ＣＰＵ２００は、プリフェッチ用ウエイとリフィル用ウエイとを切り替える（Ｓ６２）。具体的には、現在のリフィル用ウエイのバリッドフラグを０にしてエントリをロックする。以下、レンダリング処理が終了するまで（Ｓ６４のＹ）、上記処理を繰り返す。なお、本動作例は、プリフェッチ用ウエイとリフィル用ウエイとを切り替える動作を説明したが、それぞれを専用に用いてもよい。
【００６０】
次に、ステップＳ５２において説明したプリフェッチ用のテクスチャデータを予測する処理について説明する。図１１は、テクスチャデータの予測処理の第１例を示すフローチャートである。まず、キャッシュ制御用ＣＰＵ２００は、シーンの切り替わりになると（Ｓ７０のＹ）、その際にプリフェッチしたテクスチャデータを入れ替え履歴として、図示しないＲＡＭ等に記録する（Ｓ７２）。
【００６１】
キャッシュ制御用ＣＰＵ２００は、シーンの切り替わり予定時刻が近づくと（Ｓ７４のＹ）、上記入れ替え履歴を参照してプリフェッチするテクスチャデータを特定する（Ｓ７６）。例えば、シーンの切り替わりの際に常に使用されるテクスチャデータが検出できたような場合、そのテクスチャデータをプリフェッチ用のデータと特定する。この処理は、プリフェッチ用のテクスチャデータを学習的に特定する手法である。なお、オブジェクトの切り替わり等も同様に学習させてもよい。
【００６２】
また、キャッシュ制御用ＣＰＵ２００は、プリフェッチとともに、リフィルの入れ替え履歴も記録してもよい。リフィルの入れ替えを学習することにより、第１実施形態の第２動作例において説明したリフィルのタイミングを決定する閾値を、適応的に変更することもできる。例えば、同じアドレスのリフィルを短期間に繰り返す、即ちスラッシング状態が発生した場合、当該閾値を上げて、リフィルのタイミングを遅らせる等の制御を行うことができる。
【００６３】
このように予測処理の第１例によれば、学習的制御によりプリフェッチするテクスチャデータを決定することができ、ユーザ入力によりレンダリングするオブジェクトが異なる等、プログラムの解読により必要なテクスチャデータを特定することが難しいような場合でも、精度よく予測することができる。
【００６４】
図１２は、テクスチャデータの予測処理の第２例を示すフローチャートである。第２例は、地面等のテクスチャデータを予想する場合に適用することができる。まず、メインＣＰＵ２０は、実行中のプログラムから現フレーム内において設定されている視点からの視線方向、即ち角度と、その視点が移動する速度を取得する（Ｓ８０）。それを基に、次フレーム内における視点からの視線方向を予測する（Ｓ８２）。この予測した視線方向にあるオブジェクトを特定する（Ｓ８４）。このオブジェクトと視点との距離を特定する（Ｓ８６）。距離を特定すると、オブジェクトをレンダリングするために必要なテクスチャデータのＬＯＤ（Level of Detail）も特定することができる。このようにして、プリフェッチ用のテクスチャデータを特定する（Ｓ８８）。
【００６５】
このように予測処理の第２例によれば、プログラムの次に実行されるコマンドを解読しなくても、現在の状況を示すパラメータにより計算して、次に必要なテクスチャデータを予測することができる。
【００６６】
したがって第３実施形態によれば、２次テクスチャキャッシュ４００をプリフェッチ用のウエイとリフィル用のウエイとに分けて、ダブルバッファ的に使用することにより、リフィル時間を短縮することができる。
【００６７】
次に、第４実施形態について説明する。第４の実施形態のシステム構成は、図８に示した構成を適用することができる。また、テクスチャユニット６２０が１つの場合にも適用可能である。
【００６８】
図１３は、第４実施形態におけるシステムの動作例を示すフローチャートである。まず、メインＣＰＵ２０は、プログラムの実行を開始する前にスタートシーンをレンダリングするためのテクスチャデータを特定する（Ｓ９０）。これは、レンダリングを開始する前にどのオブジェクトがレンダリングされるかは解っていて、そのオブジェクト用のテクスチャデータとして何が必要なのかは解っている場合が多いことに基づく。
【００６９】
キャッシュ制御用ＣＰＵ２００は、メインＣＰＵ２０により特定されたテクスチャデータのメインメモリ１０上のアドレスを含むＤＭＡ転送命令をＤＭＡコントローラ３００に発行する（Ｓ９２）。それと同時にプリフェッチしたウエイのキャッシュタグを書き換える（Ｓ９４）。なお、本実施形態はリセット後の動作にも適用することができる。
【００７０】
このように第４実施形態によれば、レンダリング開始時のキャッシュミスを最低限に抑えることができ、２次テクスチャキャッシュ４００を効率的に使用することができる。
【００７１】
以上、実施形態をもとに本発明を説明した。なお本発明はこれらの実施形態に限定されることなく、そのさまざまな変形例もまた、本発明の態様として有効である。例えば、２次テクスチャキャッシュ４００に４つのウエイを設ける例を説明した。この点、４つに限ることなく任意に設定可能である。また、プリフェッチ用のウエイ数、リフィル用のウエイ数も任意に設定可能である。プリフェッチまたはリフィル専用のウエイを設けてもよい。
【００７２】
また、本発明のキャッシュ制御は、ＧＰＵに搭載される複数のテクスチャユニットによるテクスチャデータの読み出し処理への適用に限ることなく、複数のプロセッサにより共通のキャッシュメモリを利用する構成であれば、適用可能である。特にメインメモリとのキャッシュメモリとの系が長く、その系により大きなレイテンシーが発生する構成に有効である。例えば、インターネット上のサーバのメインメモリにアクセスして、クライアントのキャッシュメモリにデータを読み出す構成等に有効である。
【図面の簡単な説明】
【００７３】
【図１】第１実施形態におけるメインメモリとＧＰＵの構成を示すブロック図である。
【図２】第１実施形態におけるシステムの第１動作例を示すフローチャートである。
【図３】複数のテクスチャユニットによって、テクスチャマッピングしている様子を示す図である。
【図４】２次テクスチャキャッシュおよび２次テクスチャキャッシュコントローラの詳細を示す図である。
【図５】第１実施形態におけるシステムの第２動作例を示すフローチャートである。
【図６】第２実施形態におけるメインメモリとＧＰＵの構成を示すブロック図である。
【図７】第２実施形態におけるシステムの動作例を示すフローチャートである。
【図８】第３実施形態におけるメインメモリ、メインＣＰＵ、およびＧＰＵの構成を示すブロック図である。
【図９】第３実施形態におけるシステムの第１動作例を示すフローチャートである。
【図１０】図９の動作例における２次テクスチャキャッシュおよび２次テクスチャキャッシュコントローラの詳細を示す図である。
【図１１】テクスチャデータの予測処理の第１例を示すフローチャートである。
【図１２】テクスチャデータの予測処理の第２例を示すフローチャートである。
【図１３】第４実施形態におけるシステムの動作例を示すフローチャートである。
【符号の説明】
【００７４】
１０  メインメモリ、  ２０  メインＣＰＵ、  １００  ＧＰＵ、  ２００  キャッシュ制御用ＣＰＵ、  ３００  ＤＭＡコントローラ、  ３５０  中間バッファ、  ４００  ２次テクスチャキャッシュ、  ５００  ２次テクスチャキャッシュコントローラ、  ６２０〜６ｎ０  テクスチャユニット、  ６２２〜６ｎ２  １次テクスチャキャッシュ。
【図１】
2005346215.tif 000003
【図２】
2005346215.tif 000004
【図３】
2005346215.tif 000005
【図４】
2005346215.tif 000006
【図５】
2005346215.tif 000007
【図６】
2005346215.tif 000008
【図７】
2005346215.tif 000009
【図８】
2005346215.tif 000010
【図９】
2005346215.tif 000011
【図１０】
2005346215.tif 000012
【図１１】
2005346215.tif 000013
【図１２】
2005346215.tif 000014
【図１３】
2005346215.tif 000015