(57)【要約】【課題】パーフラグメントユニットの外部メモリアクセス時間を短縮させうるコンピュータグラフィックスデータの処理方法及びその処理装置とを提供する。【解決手段】パーフラグメントユニット（ＰｅｒＦｒａｇｍｅｎｔ  ｕｎｉｔ）の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ（ｄｅｐｔｈ）テストを前記パーフラグメントユニットを用いて実行する段階と、前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有する。【選択図】      図３
2008047124.tif 000002
【特許請求の範囲】
【請求項１】
パーフラグメントユニット（ＰｅｒＦｒａｇｍｅｎｔ  ｕｎｉｔ）の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、
前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ（ｄｅｐｔｈ）テストを前記パーフラグメントユニットを用いて実行する段階と、
前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とするコンピュータグラフィックスデータの処理方法。
【請求項２】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、キャッシュコントローラを用いて前記パーフラグメントユニットから出力された前記現在のフラグメントの深さアドレス（ｄｅｐｔｈ  ａｄｄｒｅｓｓ）とアドレス変換情報とに基づいてプリフェッチカラーアドレス（ｐｒｅｆｅｔｃｈ  ｃｏｌｏｒ  ａｄｄｒｅｓｓ）を発生させる段階と、
前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、
前記比較の結果、キャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）である場合、前記プリフェッチカラーアドレスに対応するカラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階とを含むことを特徴とする請求項１に記載のコンピュータグラフィックスデータの処理方法。
【請求項３】
前記キャッシュコントローラは、前記パーフラグメントユニットから出力されたカラー演算の存在（ｅｘｉｓｔｅｎｃｅ  ｏｆ  ａ  ｃｏｌｏｒ  ｏｐｅｒａｔｉｏｎ）の如何、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項４】
前記キャッシュコントローラは、以前のフラグメントの深さテスト結果、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項５】
キャッシュコントローラを用いて、パーフラグメントユニットから出力されたカラー演算制御信号を受信する段階と、
前記パーフラグメントユニットによって現在のフラグメントに対する深さテストまたはステンシル（ｓｔｅｎｃｉｌ）テストが実行される間、前記キャッシュコントローラは、受信されたカラー演算制御信号とプリフェッチカラーアドレスとに基づいて前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とするコンピュータグラフィックスデータの処理方法。
【請求項６】
前記カラー演算制御信号は、ブレンディング演算（ｂｌｅｎｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）の実行を指示する信号、又は以前のフラグメントの深さテストの結果を指示する信号であることを特徴とする請求項５に記載のコンピュータグラフィックスデータの処理方法。
【請求項７】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記キャッシュコントローラを用いて前記現在のフラグメントの深さアドレスとアドレス変換情報とに基づいて前記プリフェッチカラーアドレスを生成させる段階と、
前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、
前記比較結果に基づいてキャッシュミスが起きた時、前記プリフェッチカラーアドレスを前記外部メモリ装置に出力する段階と、
前記キャッシュメモリコントローラを用いて前記プリフェッチカラーアドレスに対応する前記カラー値を前記外部メモリ装置から受信して前記キャッシュメモリに保存する段階とを含むことを特徴とする請求項５に記載のコンピュータグラフィックスデータの処理方法。
【請求項８】
前記アドレス変換情報は、深さ値精度（ｐｒｅｃｉｓｉｏｎ）、ステンシル値精度、前記外部メモリ装置の深さメモリのオフセット、または前記外部メモリ装置のカラーメモリのオフセットのうちの少なくとも一つを含むことを特徴とする請求項５に記載のコンピュータグラフィックスデータの処理方法。
【請求項９】
コンピュータグラフィックスデータの現在のフラグメントに対する深さテストを実行するパーフラグメントユニットと、
前記パーフラグメントユニットと接続され、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントに対するカラー値を外部メモリ装置からプリフェッチし、該プリフェッチしたカラー値を保存するキャッシュメモリを含むキャッシュコントローラとを有することを特徴とするコンピュータグラフィックスデータの処理装置。
【請求項１０】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒット（ｃａｃｈｅ  ｈｉｔ）かキャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）かどうかを判別し、前記キャッシュミスが起こった時、前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するように制御するための判別ブロックとを含むことを特徴とする請求項９に記載のコンピュータグラフィックスデータの処理装置。
【請求項１１】
前記キャッシュコントローラは、前記パーフラグメントユニットから出力された前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
以前のフラグメントに対する深さテストの結果を保存するための保存装置と、
前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、
前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことを特徴とする請求項９に記載のコンピュータグラフィックスデータの処理装置。
【請求項１２】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
以前のフラグメントに対する深さテストの結果を保存するための保存装置と、
前記プリフェッチカラーアドレス発生器と接続され、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、
前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果と前記パーフラグメントユニットから出力されたカラーブレンディング実行（ｃｏｌｏｒ  ｂｌｅｎｄｉｎｇ  ｐｅｒｆｏｒｍａｎｃｅ）に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことを特徴とする請求項９に記載のコンピュータグラフィックスデータの処理装置。
【請求項１３】
前記コンピュータグラフィックスデータの処理装置は、３次元グラフィックスアクセラレータ（３Ｄ  ｇｒａｐｈｉｃｓ  ａｃｃｅｌｅｒａｔｏｒ）またはコンピュータシステムであることを特徴とする請求項９に記載のコンピュータグラフィックスデータの処理装置。
【請求項１４】
前記キャッシュコントローラは、前記判別ブロックと接続され、前記判別ブロックから出力された前記プリフェッチカラーアドレスと前記キャッシュメモリから出力されたカラーアドレスとの間の優先順位（ｐｒｉｏｒｉｔｙ）を仲裁（ａｒｂｉｔｒａｔｅ）するための仲裁器をさらに含むことを特徴とする請求項９に記載のコンピュータグラフィックスデータの処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックスデータの処理技術に係り、より詳細には、深さ／ステンシルテストの途中に次のパイプラインに使われるカラー値をプリフェッチすることができるコンピュータグラフィックスデータの処理方法とその処理装置に関する。
【背景技術】
【０００２】
３次元グラフィックスアクセラレータ（３Ｄ  ｇｒａｐｈｉｃｓ  ａｃｃｅｌｅｒａｔｏｒ）を設計する時、３次元グラフィックスアクセラレータの外部メモリ装置（または、フレームバッファ）へのアクセスに必要な時間（以下、“外部メモリアクセス時間”と言う）は、リアルタイムレンダリング（ｒｅｎｄｅｒｉｎｇ）性能に最も大きな影響を与える。
【０００３】
図１は、一般的な３次元グラフィックスアクセラレータのブロック図を表わし、図２は、図１に示すパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす。
３次元グラフィックスアクセラレータが外部メモリ装置からテクスチャリング（ｔｅｘｔｕｒｉｎｇ）、アルファブレンディング（ａｌｐｈａ  ｂｌｅｎｄｉｎｇ）、及び深さテスト（ｄｅｐｔｈ  ｔｅｓｔ）などを実行するために必要なデータを読み取る間、３次元グラフィックスアクセラレータのグラフィックスパイプラインはストール（ｓｔａｌｌ）する。このストール時間を減らすためには外部メモリアクセス時間を減らさなければならない。
【０００４】
このようにクリティカルな外部メモリアクセス時間を減らすために３次元グラフィックスアクセラレータは、テクスチャキャッシュメモリ、Ｚキャッシュメモリ（または、深さ／ステンシルキャッシュメモリ）、及びカラーキャッシュメモリなどを使う。
特に、フラグメントプロセッシングを実行するパーフラグメントユニットは、深さテストとアルファブレンディングを実行するために外部メモリ装置と多くアクセスする。したがって、３次元グラフィックスアクセラレータは、Ｚキャッシュメモリとカラーキャッシュメモリなどを使う。
【０００５】
最近、３次元グラフィックスアクセラレータのような３次元グラフィックスアプリケーションでリアルタイムでシーン（ｓｃｅｎｅ）をレンダリングする時、より自然でスムースな画像を得るために多様なテクスチャとさまざまな方法のカラーブレンディングが使われる。また、リアルタイムレンダリングの時に３次元グラフィックスアクセラレータの性能を高めるために多様なキャッシュメモリが使われる。例えば、テクスチャフィルタリングのためのテクスチャキャッシュメモリ、アルファブレンディングのためのカラーキャッシュメモリ、及び深さテストやステンシルテストのための深さ／ステンシルキャッシュメモリなどが使われる。
【０００６】
３次元グラフィックスアクセラレータが外部メモリ装置をアクセスする時、長いレイテンシ（ｌａｔｅｎｃｙ）のために３次元グラフィックスアクセラレータのグラフィックスパイプラインのストールが長くなる現象を防止するためにキャッシュメモリが使われる。特に、パーフラグメントユニットは、外部メモリ装置を多くアクセスする。したがって、深さ／ステンシルキャッシュメモリ、そして、カラーキャッシュメモリの性能の向上は、３次元グラフィックスアクセラレータの性能の向上に最も大きな影響を及ぼす。
【０００７】
３次元グラフィックスアクセラレータでのパーフラグメントユニット（ＰｅｒＦｒａｇｍｅｎｔ  ｕｎｉｔ）は、パイプライン処理、すなわち、シザーテスト（ｓｃｉｓｓｏｒ  ｔｅｓｔ）、アルファテスト、深さ／ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ／ステンシル値書き込み、カラー値読み出し、アルファブレンディング、論理演算、ディザリング（ｄｉｔｈｅｒｉｎｇ）／カラーフォーマット変換、及びカラー値書き込みなどの演算を順次に実行する。このようなシーケンスが進行して生成されたピクセルカラーは、外部メモリ装置（または、フレームバッファ）に保存される。
【０００８】
外部メモリアクセス観点で見れば、深さテストの時に従来のパーフラグメントユニットは、該当のピクセルに対する深さ値／ステンシル値をキャッシュコントローラの深さ／ステンシルキャッシュメモリ（キャッシュヒット（ｃａｃｈｅ  ｈｉｔ）の場合）から、またはフレームバッファの深さ／ステンシルメモリ（キャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）の場合）から読み出して深さテスト、ステンシルテスト、及びステンシル演算などを実行し、深さ／ステンシルテストがパスである場合、新たな深さ値を深さ／ステンシルメモリに保存する。
【０００９】
次に、パイプラインを通じて、パーフラグメントユニットは、該当のピクセルのカラー値をキャッシュコントローラのカラーキャッシュメモリ（キャッシュヒットの場合）から、またはフレームバッファのカラーメモリ（キャッシュミスの場合）から読み出してアルファブレンディング、論理演算、ディザリング、及びカラーフォーマット変換などを実行し、実行結果によるカラー値をカラーメモリに保存する。
【００１０】
深さテストのためにパーフラグメントユニットは、深さ／ステンシルキャッシュメモリ（キャッシュヒットの時）から、または深さ／ステンシルメモリ（キャッシュミスの時）から深さ値／ステンシル値を読み出す間、パーフラグメントユニットのパイプラインはストールされ、深さ／ステンシルテストが実行された後のアルファブレンディングのためにパーフラグメントユニットがカラーキャッシュメモリ（キャッシュヒットの時）から、またはカラーメモリ（キャッシュミスの時）からカラー値を読み出す間、パーフラグメントユニットのパイプラインは再びストールされる。
【００１１】
一般的に、３次元グラフィックスアクセラレータの外部メモリ装置は、初期アクセスレイテンシーが比較的長いＤＲＡＭ、例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ｍｏｂｉｌｅ  ＤＤＲ  ＳＤＲＡＭなどを使う。したがって、外部メモリアクセスによるパイプラインのストールは、３次元グラフィックスアクセラレータの性能に大きな影響を及ぼす。
従来の３次元グラフィックスアクセラレータは、深さ／ステンシルテストに対するすべての演算が終わった後にカラーブレンディングのためのカラー演算を実行するためにパーフラグメントユニットのストールは相当長くなって３次元グラフィックスアクセラレータの性能が低下するという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
そこで、本発明は上記従来の３次元グラフィックスアクセラレータにおける問題点に鑑みてなされたものであって、本発明の目的は、パーフラグメントユニットの外部メモリアクセス時間を短縮させうるコンピュータグラフィックスデータの処理方法及びその処理装置とを提供することにある。
また、本発明の他の目的は、カラーブレンディング時の性能を高めうるコンピュータグラフィックスデータの処理方法とその処理装置とを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理方法は、パーフラグメントユニット（ｐｅｒｆｒａｇｍｅｎｔ  ｕｎｉｔ）の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ（ｄｅｐｔｈ）テストを前記パーフラグメントユニットを用いて実行する段階と、前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とする。
【００１４】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、キャッシュコントローラを用いて前記パーフラグメントユニットから出力された前記現在のフラグメントの深さアドレス（ｄｅｐｔｈ  ａｄｄｒｅｓｓ）とアドレス変換情報とに基づいてプリフェッチカラーアドレス（ｐｒｅｆｅｔｃｈ  ｃｏｌｏｒ  ａｄｄｒｅｓｓ）を発生させる段階と、前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、前記比較の結果、キャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）である場合、前記プリフェッチカラーアドレスに対応するカラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階とを含むことが好ましい。
前記キャッシュコントローラは、前記パーフラグメントユニットから出力されたカラー演算の存在（ｅｘｉｓｔｅｎｃｅ  ｏｆ  ａ  ｃｏｌｏｒ  ｏｐｅｒａｔｉｏｎ）の如何、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることが好ましい。
前記キャッシュコントローラは、以前のフラグメントの深さテスト結果、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることが好ましい。
【００１５】
また、上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理方法は、キャッシュコントローラを用いて、パーフラグメントユニットから出力されたカラー演算制御信号を受信する段階と、前記パーフラグメントユニットによって現在のフラグメントに対する深さテストまたはステンシル（ｓｔｅｎｃｉｌ）テストが実行される間、前記キャッシュコントローラは、受信されたカラー演算制御信号とプリフェッチカラーアドレスとに基づいて前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とする。
【００１６】
前記カラー演算制御信号は、ブレンディング演算（ｂｌｅｎｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）の実行を指示する信号、又は以前のフラグメントの深さテストの結果を指示する信号であることが好ましい。
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記キャッシュコントローラを用いて前記現在のフラグメントの深さアドレスとアドレス変換情報とに基づいて前記プリフェッチカラーアドレスを生成させる段階と、前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、前記比較結果に基づいてキャッシュミスが起きた時、前記プリフェッチカラーアドレスを前記外部メモリ装置に出力する段階と、前記キャッシュメモリコントローラを用いて前記プリフェッチカラーアドレスに対応する前記カラー値を前記外部メモリ装置から受信して前記キャッシュメモリに保存する段階とを含むことが好ましい。
前記アドレス変換情報は、深さ値精度（ｐｒｅｃｉｓｉｏｎ）、ステンシル値精度、前記外部メモリ装置の深さメモリのオフセット、または前記外部メモリ装置のカラーメモリのオフセットのうちの少なくとも一つを含むことが好ましい。
【００１７】
上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理装置は、コンピュータグラフィックスデータの現在のフラグメントに対する深さテストを実行するパーフラグメントユニットと、前記パーフラグメントユニットと接続され、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントに対するカラー値を外部メモリ装置からプリフェッチし、該プリフェッチしたカラー値を保存するキャッシュメモリを含むキャッシュコントローラとを有することを特徴とする。
【００１８】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒット（ｃａｃｈｅ  ｈｉｔ）かキャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）かどうかを判別し、前記キャッシュミスが起こった時、前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するように制御するための判別ブロックとを含むことが好ましい。
前記キャッシュコントローラは、前記パーフラグメントユニットから出力された前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、以前のフラグメントに対する深さテストの結果を保存するための保存装置と、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことが好ましい。
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、以前のフラグメントに対する深さテストの結果を保存するための保存装置と、前記プリフェッチカラーアドレス発生器と接続され、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果と前記パーフラグメントユニットから出力されたカラーブレンディング実行（ｃｏｌｏｒ  ｂｌｅｎｄｉｎｇ  ｐｅｒｆｏｒｍａｎｃｅ）に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことが好ましい。
【００１９】
前記コンピュータグラフィックスデータの処理装置は、３次元グラフィックスアクセラレータ（３Ｄ  ｇｒａｐｈｉｃｓ  ａｃｃｅｌｅｒａｔｏｒ）またはコンピュータシステムであることが好ましい。
前記キャッシュコントローラは、前記判別ブロックと接続され、前記判別ブロックから出力された前記プリフェッチカラーアドレスと前記キャッシュメモリから出力されたカラーアドレスとの間の優先順位（ｐｒｉｏｒｉｔｙ）を仲裁（ａｒｂｉｔｒａｔｅ）するための仲裁器をさらに含むことが好ましい。
【発明の効果】
【００２０】
本発明に係るコンピュータグラフィックスデータの処理方法とその処理装置によれば、パーフラグメントユニットで深さテストを実行する間、次のパイプラインで使われるカラー値を予めプリフェッチできるので、カラーブレンディング演算の時にカラーキャッシュコントローラで発生するキャッシュミスの発生を減少させうるという効果がある。
【００２１】
また、現在のフラグメントに対する深さ／ステンシル値読み出し、深さテスト、ステンシルテスト、ステンシル演算、深さ値書き込みなどが実行される間、現在のフラグメントに対するカラー値を予めプリフェッチできるので、パーフラグメントユニットのパイプラインのストールを著しく減らしうるという効果がある。
したがって、３次元グラフィックスパイプラインでストールが多発する部分の中の一つであるパーフラグメントユニットのカラーメモリの外部メモリアクセス時間を隠蔽して（
ｈｉｄｅ）全体的な３次元グラフィックスパイプラインの性能を向上させうるという効果がある。
【００２２】
特に、マルチアウトスタンディングトランザクションを支援するシステムバスを使えば、キャッシュコントローラは、パーフラグメントユニットから出力された深さアドレスと同時にカラーアドレスとを発生させ、カラーアドレスに対応するカラー値がカラーキャッシュメモリに保存されていない場合にカラーアドレスをシステムバスに直ちに出力してメモリサブシステムがＤＲＡＭバンクインターリーブを通じる効率的なメモリアクセスが可能になるように支援する。したがって、効果的な外部メモリアクセスでパーフラグメントユニットのメモリアクセスレイテンシーを減らしうるという効果がある。
【発明を実施するための最良の形態】
【００２３】
次に、本発明に係るコンピュータグラフィックスデータの処理方法とその処理装置を実施するための最良の形態の具体例を図面を参照しながら説明する。
【００２４】
図３は、本発明の実施形態によるパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす。図３を参照すると、コンピュータシステム１０は、パーフラグメントユニット２０、キャッシュコントローラ３０、及び外部メモリ装置であるフレームバッファ６０を備える。
【００２５】
３次元グラフィックスアクセラレータのようなコンピュータグラフィックスデータの処理装置は、パーフラグメントユニット２０とキャッシュコントローラ３０とを含む。本発明によるコンピュータグラフィックスデータの処理装置は、図１に示したジオメトリエンジン、ラスタライザ、フラグメントシェーダ、及びテクスチャユニットをさらに備えられうる。
【００２６】
パーフラグメントユニット２０は、シザーテスト、アルファテスト、深さ／ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ／ステンシル値書き込み、カラー値読み出し、アルファブレンディング、論理演算、ディザリング／カラーフォーマット変換、及びカラー値書き込みのうちから少なくとも複数個を順次に実行できる。
キャッシュコントローラ３０は、ロジック回路３３と深さ／ステンシルキャッシュメモリ３５とを備える深さ／ステンシルキャッシュコントローラ３３、プリフェッチブロック３７、及びロジック回路４９とカラーキャッシュメモリ５１とを備えるカラーキャッシュコントローラ４７を備える。キャッシュコントローラ３０は、仲裁器５３をさらに備えられうる。
【００２７】
現在のフラグメント（または、現在のピクセル）に対する深さ値の読み出し動作の時、パーフラグメントユニット２０は、深さ値の読み出し動作を行うために深さ値要求（ｄｅｐｔｈ  ｖａｌｕｅ  ｒｅｑｕｅｓｔ）、深さアドレス、及び読み出し命令を含む複数の信号ＤＲＥＱをキャッシュコントローラ３０の深さ／ステンシルキャッシュコントローラ３１に出力する。深さ／ステンシルキャッシュコントローラ３１のロジック回路３３は、深さ要求、深さアドレス、及び読み出し命令を含む複数の信号ＤＲＥＱに応答して深さ／ステンシルキャッシュメモリ３５に保存されたタグ（ｔａｇ）と受信された深さアドレスとを比較する。
【００２８】
深さアドレスに対応するデータ（または、深さ値）が深さ／ステンシルキャッシュメモリ３５に保存されている場合（すなわち、キャッシュヒットの時）、深さ／ステンシルキャッシュコントローラ３１のロジック回路３３は、深さアドレスに対応するデータを深さ／ステンシルキャッシュメモリ３５から読み出し、該読み出されたデータＤＤＡＴＡをパーフラグメントユニット２０に出力する。
【００２９】
しかし、深さアドレスに対応するデータが深さ／ステンシルキャッシュメモリ３５に保存されていない場合（すなわち、キャッシュミスの時）、深さ／ステンシルキャッシュコントローラ３１のロジック回路３３は、深さアドレスに対応するデータをフレームバッファ６０の深さ／ステンシルメモリ６１から読み出し、該読み出されたデータＤＤＡＴＡをパーフラグメントユニット２０に出力する。パーフラグメントユニット２０は、深さアドレスに対応するデータＤＤＡＴＡをキャッシュコントローラ３０から受信するまでストールされる。
【００３０】
パーフラグメントユニット２０が、ステンシルテストのためにステンシルデータ（または、ステンシル値）を深さ／ステンシルキャッシュメモリ３５または深さ／ステンシルメモリ６１から読み出す動作は、深さテストのために深さデータ（または、深さ値）を深さ／ステンシルキャッシュメモリ３５または深さ／ステンシルメモリ６１から読み出す動作と類似しているので、これについての詳細な説明は省略する。
【００３１】
現在のフラグメントの深さ値またはステンシル値を受信したパーフラグメントユニット２０は、現在のフラグメントに対する深さテストまたはステンシルテストを実行する。
パーフラグメントユニット２０によって現在のフラグメントに対する深さテストやステンシルテストが実行される間、キャッシュコントローラ３０は、現在のフラグメントに対するカラー値（または、カラーデータ）を外部メモリ装置であるフレームバッファ６０のカラーメモリ６３からカラーキャッシュメモリ５１にプリフェッチする。
【００３２】
すなわち、パーフラグメントユニット２０によって現在のフラグメントに対する深さ／ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ／ステンシル値書き込みなどが実行されている間、キャッシュコントローラ３０は、現在のフラグメントのカラー値をブレンディング演算が実行される前に先にプリフェッチできるので、ブレンディング演算が実行される時にカラーキャッシュコントローラ４７で発生するキャッシュミスは相当減少する。
すなわち、カラーキャッシュコントローラ４７で発生するヒット比率が相当増加する。したがって、コンピュータグラフィックスデータの処理装置のパイプラインがストールされる時間が相当減少するので、コンピュータグラフィックスデータの処理装置の３次元レンダリング性能は向上する。
【００３３】
特に、マルチプルアウトスタンディングトランザクション（ｍｕｌｔｉｐｌｅ  ｏｕｔｓｔａｎｄｉｎｇ  ｔｒａｎｓａｃｔｉｏｎ）を支援するバスを備えるシステム構造では、以前の要求が外部メモリ装置（例えば、ＤＲＡＭ）で処理される前に次の要求をすることができる。したがって、本発明によるキャッシュコントローラ３０が深さキャッシュミスの時にカラーキャッシュミス要求を予め出力すれば、外部メモリ装置の初期設定時間が短縮されるので、キャッシュコントローラ３０はさらに早い時間でカラー値を予めプリフェッチできる。
したがって、本発明によるキャッシュコントローラ３０は、システムのメモリコントローラがバンクインターリーブを通じて複数のバンクを備える外部メモリ装置に効果的にデータを要求して初期外部メモリアクセス時間を隠蔽する（ｈｉｄｅ）。
【００３４】
深さキャッシュミスは、深さアドレスに対応する深さ値が深さ／ステンシルキャッシュメモリ３５に保存されていない場合に発生し、カラーキャッシュミス要求は、深さアドレスに関連したプリフェッチカラーアドレスに対応するカラー値またはカラーアドレスに対応するカラー値がカラーキャッシュメモリ５１に保存されていない場合、プリフェッチカラーアドレスに対応するカラー値またはカラーアドレスに対応するカラー値をカラーメモリ６３に要求する時に発生する。また、深さ／ステンシルキャッシュコントローラ３１のロジック回路３３は、深さアドレスＺＡＤＤをプリフェッチカラーアドレス発生器３９に伝送する。
【００３５】
プリフェッチカラーアドレス発生器３９は、現在、深さテストが実行中である時の現在のフラグメントに対する深さアドレスＺＡＤＤとアドレス変換情報ＡＣＩに基づいてプリフェッチカラーアドレスＣＰＡＤＤを発生させる。プリフェッチカラーアドレスＣＰＡＤＤは、現在、深さテスト／ステンシルテストが実行中である時のフラグメントのカラー値をカラーメモリ６３からプリフェッチするためのアドレスである。
【００３６】
例えば、パーフラグメントユニット２０から出力されたアドレス変換情報ＡＣＩは、深さ値精度（ｄｅｐｔｈ  ｖａｌｕｅ  ｐｒｅｃｉｓｉｏｎ）、ステンシル値精度、カラーメモリ６３のフォーマット、深さ／ステンシルメモリ６１のオフセット、またはカラーメモリ６３のオフセットのうちの少なくとも一つを含む。
深さ／ステンシルメモリ６１は、深さ／ステンシルバッファとも言い、カラーメモリ６３はカラーバッファとも言う。
また、アドレス変換情報ＡＣＩは、フレームバッファ６０のフォーマットと深さ／ステンシルメモリ６１の大きさについての情報であり得る。そして、アドレス変換情報ＡＣＩは、フレームバッファ６０のメモリマップ（ｍａｐ）についての情報でもあり得る。
【００３７】
【表１】
2008047124.tif 000003
【００３８】
表１を参照すると、深さ／ステンシル値精度が３２ビットであり、カラーメモリ６３のフォーマットが３２ビットである場合、プリフェッチカラーアドレス発生器３９は、深さ／ステンシルメモリ６１のオフセット（または、ベースアドレス）をカラーメモリ６３のオフセット（または、ベースアドレス）に変換して深さアドレスＺＡＤＤからプリフェッチカラーアドレスＣＰＡＤＤを発生させる。
【００３９】
しかし、カラーメモリ６３のフォーマットが１６ビットである場合、プリフェッチカラーアドレス発生器３９は、カラーメモリ６３のオフセットを除外した残りの部分を１ビットライトシフト（１  ｂｉｔ  ｒｉｇｈｔ  ｓｈｉｆｔ）させて深さアドレスＺＡＤＤからプリフェッチカラーアドレスＣＰＡＤＤを発生させる。
【００４０】
プリフェッチカラーアドレスＣＰＡＤＤは、ベースアドレスとピクセルアドレスとを含む。したがって、プリフェッチカラーアドレス発生器３９は、深さアドレスＺＡＤＤとアドレス変換情報ＡＣＩとを受信し、深さ／ステンシルメモリ６１のオフセットをカラーメモリ６３のオフセットに変換して、深さ／ステンシル値精度とカラーメモリ６３のフォーマットとの差に基づいてプリフェッチカラーアドレスＣＰＡＤＤを発生させる。表１は、説明の便宜上、例示的なものであって多様な変形が可能である。
【００４１】
判別ブロック４１は、カラーキャッシュメモリ５１に保存されたタグとプリフェッチカラーアドレスＣＰＡＤＤとに基づいてキャッシュヒットまたはキャッシュミスが起こったかどうかを判別し、キャッシュミスの時にプリフェッチカラーアドレスＣＰＡＤＤをカラーメモリ６３に伝送することを制御する。キャッシュヒットである場合、カラーキャッシュメモリ５１には、プリフェッチカラーアドレスＣＰＡＤＤに対応するカラー値が保存されているので、カラー値をプリフェッチする必要がない。
【００４２】
キャッシュコントローラ３０は、保存装置４３と伝送制御ブロック４５とをさらに備えられうる。保存装置４３は、以前のフラグメント（または、以前のピクセル）に対する深さテストの結果を保存する。以前のフラグメントに対する深さテストが失敗（ｆａｉｌ）である場合、現在のフラグメントに対するカラー値をプリフェッチする必要がない、なぜならば、パイプラインプロセスに従って、以前のフラグメントに対する深さテストが失敗した場合、現在のフラグメントに対する深さテストも失敗である可能性が高いためである。深さテストが失敗して該当のフラグメントがパイプラインで消えれば、該当のフラグメントに対するカラー演算を実行する必要がないために該当のフラグメントのカラー値をプリフェッチする必要がない。
【００４３】
伝送制御ブロック４５は、カラー値がプリフェッチされたかどうかを判定する。ユーザーが処理装置に対し、例えば、カラー演算、アルファブレンディング演算や論理演算などを実行しないようにプログラムする場合、キャッシュコントローラ３０は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。また、プリフェッチカラーアドレスＣＰＡＤＤに対応するカラー値がカラーキャッシュメモリ５１に保存されている場合、キャッシュコントローラ３０は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。
【００４４】
また、以前のフラグメントに対する深さテストが失敗した場合、現在のフラグメントに対する深さテストも失敗である可能性が高いために、キャッシュコントローラ３０は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。
【００４５】
したがって、伝送制御ブロック４５は、パーフラグメントユニット２０から出力されたカラー演算の存在（演算実行の如何）（ＢＩ）、保存装置４３から出力された以前のフラグメントに対する深さテストの結果の成功か失敗かの如何、または判別ブロック４１から出力されたキャッシュミスの存在の如何のうちの少なくとも一つに基づいてプリフェッチカラーアドレスＣＰＡＤＤをフレームバッファ６０のカラーメモリ６３に伝送するかどうかを制御する。プリフェッチカラーアドレスＣＰＡＤＤは、判別ブロック４１から出力されることもあり、伝送制御ブロック４５から出力されることもある。
【００４６】
したがって、カラーメモリ６３は、プリフェッチカラーアドレスＣＰＡＤＤに対応するカラー値をカラーキャッシュコントローラ４７のロジック回路４９に出力する。ロジック回路４９は、カラー値をカラーキャッシュメモリ５１に保存する。したがって、パーフラグメントユニット２０は、ブレンディング演算の時にカラーキャッシュメモリ５１に保存されたカラー値を使うことができるので、ブレンディング演算の時にパイプラインがストールされる時間を相当短縮させうる効果がある。
【００４７】
図４は、本発明の実施形態によるカラー値をプリフェッチする過程を説明するためのフローチャートである。図３と図４とを参照してカラー値をプリフェッチする過程を詳しく説明すれば、以下のようである。
キャッシュコントローラ３０は、深さアドレスＺＡＤＤ、以前のフラグメントに対する深さテストの結果、またはブレンディング演算や論理演算（ＬＯＰ）の実行の如何を表わすカラー演算制御信号（ＢＩ）をパーフラグメントユニット２０から受信する（ステップＳ１０）。
【００４８】
パーフラグメントユニット２０がブレンディング演算や論理演算を実行したかどうかを判別し（ステップＳ２０）、パーフラグメントユニット２０がブレンディング演算や論理演算を実行しない場合、キャッシュコントローラ３０は、パーフラグメントユニット２０から出力されたカラー演算制御信号（ＢＩ）に基づいて現在のフラグメントに対するカラー値をカラーメモリ６３からカラーキャッシュメモリ５１にプリフェッチしない（ステップＳ２１）。
【００４９】
ブレンディング演算や論理演算が実行された時、以前のフラグメントに対する深さテストが失敗かどうかを判別する（ステップＳ３０）、以前のフラグメントに対する深さテストが失敗である場合、キャッシュコントローラ３０は、現在のフラグメントに対するカラー値をカラーメモリ６３からカラーキャッシュメモリ５１にプリフェッチしない（ステップＳ３１）。
【００５０】
ブレンディング演算や論理演算が実行され、以前のフラグメントに対する深さテストが失敗ではない場合、キャッシュコントローラ３０のプリフェッチカラーアドレス発生器３９は、パーフラグメントユニット２０から出力された深さアドレスＺＡＤＤとアドレス変換情報ＡＣＩとに基づいてプリフェッチカラーアドレスＣＰＡＤＤを発生させる（ステップＳ４０）。
【００５１】
キャッシュコントローラ３０の判別ブロック４１は、キャッシュヒットまたはキャッシュミスが起きたかどうかを判別するためにプリフェッチカラーアドレスＣＰＡＤＤを受信し、カラーキャッシュメモリ５１に保存されたタグと受信されたプリフェッチカラーアドレスＣＰＡＤＤとを比較し（ステップＳ５０）、キャッシュヒットかキャッシュミスかどうかを判別する（ステップＳ６０）。キャッシュヒットである場合、キャッシュコントローラ３０は、現在のフラグメントに対するカラー値をカラーメモリ６３からカラーキャッシュメモリ５１にプリフェッチしない（ステップＳ６１）。
【００５２】
キャッシュヒットが起こらない、つまり、キャッシュミスである場合、プリフェッチカラーアドレスＣＰＡＤＤとカラーアドレスＣＡＤＤとの間の優先順位の判定がなされ（ステップＳ１００）、それにより、キャッシュコントローラ３０は、パーフラグメントユニット２０によって深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をカラーメモリ６３からカラーキャッシュメモリ５１にプリフェッチし始める（ステップＳ１１０）。プリフェッチカラーアドレスＣＰＡＤＤに対応するカラー値でカラーキャッシュメモリ５１がいっぱいになったかどうかを判定し（ステップＳ１２０）、プリフェッチカラーアドレスＣＰＡＤＤに対応するカラー値でカラーキャッシュメモリ５１がいっぱいになった場合、カラー値のプリフェッチは完了する。
【００５３】
カラーキャッシュコントローラ４７のロジック回路４９は、パーフラグメントユニット２０から出力されたカラーアドレスＣＡＤＤを受信し（ステップＳ７０）、カラーキャッシュメモリ５１に保存されたカラー値のタグと受信されたカラーアドレスＣＡＤＤとを比較する（ステップＳ８０）。比較の結果、キャッシュヒットかどうかを判別し（ステップＳ９０）、キャッシュヒットが発生した場合、カラーキャッシュコントローラ４７のロジック回路４９は、カラーアドレスＣＡＤＤに対応するカラー値をカラーキャッシュメモリ５１から読み出し、これをパーフラグメントユニット２０に出力する（ステップＳ９１）。
【００５４】
しかし、キャッシュヒットが起こらない、つまり、キャッシュミスが発生した場合、カラーキャッシュコントローラ４７のロジック回路４９は、カラーメモリ６３からカラーアドレスＣＡＤＤに対応するカラー値を読み出し、読み出されたカラー値ＣＤＡＴＡをカラーキャッシュメモリ５１に保存すると同時にパーフラグメントユニット２０に出力する。しかし、プリフェッチカラーアドレスＣＰＡＤＤとカラーアドレスＣＡＤＤとが同時に出力された場合、仲裁器５３が、キャッシュコントローラ３０のプリフェッチカラーアドレスＣＰＡＤＤとカラーキャッシュコントローラ４７のカラーアドレスＣＡＤＤとの間の優先順位を仲裁する（ステップＳ１００）。
【００５５】
例えば、深さ／ステンシル値読み出し時点ではカラーキャッシュコントローラ４７がキャッシュヒットを発生させたが、パイプライン処理が実行されている途中にカラーキャッシュメモリ５１に保存されたカラー値が変わって、カラー値読み出し時点でカラーキャッシュコントローラ４７がキャッシュミスを発生させると同時にプリフェッチブロック３７が深さ値に対応するカラー値をプリフェッチしようとする場合、カラーキャッシュコントローラ４７は、カラーアドレスＣＡＤＤを発生させ、同時に、プリフェッチブロック３７は、プリフェッチカラーアドレスＣＰＡＤＤを発生させる。
【００５６】
このとき、仲裁器５３は、カラーアドレスＣＡＤＤとプリフェッチカラーアドレスＣＰＡＤＤとの間で優先順位を判別、決定する。この場合、仲裁器５３は、カラーアドレスＣＡＤＤをプリフェッチカラーアドレスＣＰＡＤＤより先に処理する。
【００５７】
一般的に、現在のフラグメントの深さ値が以前のフラグメントの深さ値より小さな場合、パーフラグメントユニット２０は、現在のフラグメントの深さ値を深さ／ステンシルキャッシュメモリ３５に保存し、現在のフラグメントの深さ値が以前のフラグメントの深さ値より大きい場合、パーフラグメントユニット２０は、現在のフラグメントの深さ値を捨てる。しかしながら、ユーザーが多様な深さテストのモード以外の他のモードを選択したならば、選択されたモードによって深さテストが実行される。
【００５８】
現在のフラグメントに対する深さテスト／ステンシルテストがすべてパスである場合、パーフラグメントユニット２０は、現在のフラグメントを次のパイプラインに伝送する。
したがって、パーフラグメントユニット２０は、現在のフラグメントに関連するカラー要求、カラーアドレス、及び読み出し命令を含む多様な信号（ＣＲＥＱ）をカラーキャッシュコントローラ３７に出力する。
【００５９】
パーフラグメントユニット２０は、カラーアドレスＣＡＤＤに対応するカラー値ＣＤＡＴＡをカラーキャッシュメモリ５１から読み出す。パーフラグメントユニット２０によって現在のフラグメントに対する深さテストが実行されている間にキャッシュコントローラ３０は、現在のフラグメントの深さ値に対応するカラー値を予め読み出してカラーキャッシュメモリ５１に保存しているので、キャッシュコントローラ３０は、ブレンディング演算の時にキャッシュヒット比率を高めることができる。
パーフラグメントユニット２０は、カラーキャッシュメモリ５１から読み出したカラー値に関してアルファブレンディング、論理演算、ディザリング／カラーフォーマット変換を実行し、その実行結果によるカラー値ＷＣＤＡＴＡをカラーキャッシュメモリ５１に保存する。
【００６０】
本発明の実施形態によるコンピュータグラフィックスデータの処理方法は、コンピュータシステムで実行しうるプログラムで作成可能である。また、プログラムを記録したコンピュータから読み取り可能な記録媒体から読み出された該当のプログラムは、デジタルコンピュータシステムで実行可能である。記録媒体には、磁気的記録媒体（例えば、ハードディスク）、電子的記録媒体（例えば、半導体チップ、マイクロプロセッサなど）、光学的記録媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ）のような媒体を含む。
【００６１】
また、コンピュータで読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行可能である。そして、本発明を具現するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に類推されうる。
【００６２】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【００６３】
本発明の実施形態によるコンピュータグラフィックスデータの処理方法と装置は、３次元グラフィックスアクセラレータまたはコンピュータシステムで使われうる。
【図面の簡単な説明】
【００６４】
【図１】一般的な３次元グラフィックスアクセラレータの機能ブロック図である。
【図２】図１に示したパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす図面である。
【図３】本発明の実施形態によるパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす図面である。
【図４】本発明の実施形態によるカラー値をプリフェッチする過程を説明するためのフローチャートである。
【符号の説明】
【００６５】
１０      コンピュータシステム
２０      パーフラグメントユニット
３０      キャッシュコントローラ
３１      深さ／ステンシルキャッシュコントローラ
３３      ロジック回路
３５      深さ／ステンシルキャッシュメモリ
３７      プリフェッチブロック
３９      プリフェッチカラーアドレス発生器
４１      判別ブロック
４３      保存装置
４５      伝送制御ブロック
４７      カラーキャッシュコントローラ
４９      ロジック回路
５１      カラーキャッシュメモリ
５３      仲裁器
６０      フレームバッファ（外部メモリ装置）
６１      深さ／ステンシルメモリ
６３      カラーメモリ
【図１】
2008047124.tif 000004
【図２】
2008047124.tif 000005
【図３】
2008047124.tif 000006
【図４】
2008047124.tif 000007