説明

コンピュータグラフィックスデータの処理方法とその処理装置

【課題】パーフラグメントユニットの外部メモリアクセス時間を短縮させうるコンピュータグラフィックスデータの処理方法及びその処理装置とを提供する。
【解決手段】パーフラグメントユニット(PerFragment unit)の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ(depth)テストを前記パーフラグメントユニットを用いて実行する段階と、前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータグラフィックスデータの処理技術に係り、より詳細には、深さ/ステンシルテストの途中に次のパイプラインに使われるカラー値をプリフェッチすることができるコンピュータグラフィックスデータの処理方法とその処理装置に関する。
【背景技術】
【0002】
3次元グラフィックスアクセラレータ(3D graphics accelerator)を設計する時、3次元グラフィックスアクセラレータの外部メモリ装置(または、フレームバッファ)へのアクセスに必要な時間(以下、“外部メモリアクセス時間”と言う)は、リアルタイムレンダリング(rendering)性能に最も大きな影響を与える。
【0003】
図1は、一般的な3次元グラフィックスアクセラレータのブロック図を表わし、図2は、図1に示すパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす。
3次元グラフィックスアクセラレータが外部メモリ装置からテクスチャリング(texturing)、アルファブレンディング(alpha blending)、及び深さテスト(depth test)などを実行するために必要なデータを読み取る間、3次元グラフィックスアクセラレータのグラフィックスパイプラインはストール(stall)する。このストール時間を減らすためには外部メモリアクセス時間を減らさなければならない。
【0004】
このようにクリティカルな外部メモリアクセス時間を減らすために3次元グラフィックスアクセラレータは、テクスチャキャッシュメモリ、Zキャッシュメモリ(または、深さ/ステンシルキャッシュメモリ)、及びカラーキャッシュメモリなどを使う。
特に、フラグメントプロセッシングを実行するパーフラグメントユニットは、深さテストとアルファブレンディングを実行するために外部メモリ装置と多くアクセスする。したがって、3次元グラフィックスアクセラレータは、Zキャッシュメモリとカラーキャッシュメモリなどを使う。
【0005】
最近、3次元グラフィックスアクセラレータのような3次元グラフィックスアプリケーションでリアルタイムでシーン(scene)をレンダリングする時、より自然でスムースな画像を得るために多様なテクスチャとさまざまな方法のカラーブレンディングが使われる。また、リアルタイムレンダリングの時に3次元グラフィックスアクセラレータの性能を高めるために多様なキャッシュメモリが使われる。例えば、テクスチャフィルタリングのためのテクスチャキャッシュメモリ、アルファブレンディングのためのカラーキャッシュメモリ、及び深さテストやステンシルテストのための深さ/ステンシルキャッシュメモリなどが使われる。
【0006】
3次元グラフィックスアクセラレータが外部メモリ装置をアクセスする時、長いレイテンシ(latency)のために3次元グラフィックスアクセラレータのグラフィックスパイプラインのストールが長くなる現象を防止するためにキャッシュメモリが使われる。特に、パーフラグメントユニットは、外部メモリ装置を多くアクセスする。したがって、深さ/ステンシルキャッシュメモリ、そして、カラーキャッシュメモリの性能の向上は、3次元グラフィックスアクセラレータの性能の向上に最も大きな影響を及ぼす。
【0007】
3次元グラフィックスアクセラレータでのパーフラグメントユニット(PerFragment unit)は、パイプライン処理、すなわち、シザーテスト(scissor test)、アルファテスト、深さ/ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ/ステンシル値書き込み、カラー値読み出し、アルファブレンディング、論理演算、ディザリング(dithering)/カラーフォーマット変換、及びカラー値書き込みなどの演算を順次に実行する。このようなシーケンスが進行して生成されたピクセルカラーは、外部メモリ装置(または、フレームバッファ)に保存される。
【0008】
外部メモリアクセス観点で見れば、深さテストの時に従来のパーフラグメントユニットは、該当のピクセルに対する深さ値/ステンシル値をキャッシュコントローラの深さ/ステンシルキャッシュメモリ(キャッシュヒット(cache hit)の場合)から、またはフレームバッファの深さ/ステンシルメモリ(キャッシュミス(cache miss)の場合)から読み出して深さテスト、ステンシルテスト、及びステンシル演算などを実行し、深さ/ステンシルテストがパスである場合、新たな深さ値を深さ/ステンシルメモリに保存する。
【0009】
次に、パイプラインを通じて、パーフラグメントユニットは、該当のピクセルのカラー値をキャッシュコントローラのカラーキャッシュメモリ(キャッシュヒットの場合)から、またはフレームバッファのカラーメモリ(キャッシュミスの場合)から読み出してアルファブレンディング、論理演算、ディザリング、及びカラーフォーマット変換などを実行し、実行結果によるカラー値をカラーメモリに保存する。
【0010】
深さテストのためにパーフラグメントユニットは、深さ/ステンシルキャッシュメモリ(キャッシュヒットの時)から、または深さ/ステンシルメモリ(キャッシュミスの時)から深さ値/ステンシル値を読み出す間、パーフラグメントユニットのパイプラインはストールされ、深さ/ステンシルテストが実行された後のアルファブレンディングのためにパーフラグメントユニットがカラーキャッシュメモリ(キャッシュヒットの時)から、またはカラーメモリ(キャッシュミスの時)からカラー値を読み出す間、パーフラグメントユニットのパイプラインは再びストールされる。
【0011】
一般的に、3次元グラフィックスアクセラレータの外部メモリ装置は、初期アクセスレイテンシーが比較的長いDRAM、例えば、SDRAM、DDR SDRAM、mobile DDR SDRAMなどを使う。したがって、外部メモリアクセスによるパイプラインのストールは、3次元グラフィックスアクセラレータの性能に大きな影響を及ぼす。
従来の3次元グラフィックスアクセラレータは、深さ/ステンシルテストに対するすべての演算が終わった後にカラーブレンディングのためのカラー演算を実行するためにパーフラグメントユニットのストールは相当長くなって3次元グラフィックスアクセラレータの性能が低下するという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【0012】
そこで、本発明は上記従来の3次元グラフィックスアクセラレータにおける問題点に鑑みてなされたものであって、本発明の目的は、パーフラグメントユニットの外部メモリアクセス時間を短縮させうるコンピュータグラフィックスデータの処理方法及びその処理装置とを提供することにある。
また、本発明の他の目的は、カラーブレンディング時の性能を高めうるコンピュータグラフィックスデータの処理方法とその処理装置とを提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理方法は、パーフラグメントユニット(perfragment unit)の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ(depth)テストを前記パーフラグメントユニットを用いて実行する段階と、前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とする。
【0014】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、キャッシュコントローラを用いて前記パーフラグメントユニットから出力された前記現在のフラグメントの深さアドレス(depth address)とアドレス変換情報とに基づいてプリフェッチカラーアドレス(prefetch color address)を発生させる段階と、前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、前記比較の結果、キャッシュミス(cache miss)である場合、前記プリフェッチカラーアドレスに対応するカラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階とを含むことが好ましい。
前記キャッシュコントローラは、前記パーフラグメントユニットから出力されたカラー演算の存在(existence of a color operation)の如何、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることが好ましい。
前記キャッシュコントローラは、以前のフラグメントの深さテスト結果、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることが好ましい。
【0015】
また、上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理方法は、キャッシュコントローラを用いて、パーフラグメントユニットから出力されたカラー演算制御信号を受信する段階と、前記パーフラグメントユニットによって現在のフラグメントに対する深さテストまたはステンシル(stencil)テストが実行される間、前記キャッシュコントローラは、受信されたカラー演算制御信号とプリフェッチカラーアドレスとに基づいて前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とする。
【0016】
前記カラー演算制御信号は、ブレンディング演算(blending operation)の実行を指示する信号、又は以前のフラグメントの深さテストの結果を指示する信号であることが好ましい。
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記キャッシュコントローラを用いて前記現在のフラグメントの深さアドレスとアドレス変換情報とに基づいて前記プリフェッチカラーアドレスを生成させる段階と、前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、前記比較結果に基づいてキャッシュミスが起きた時、前記プリフェッチカラーアドレスを前記外部メモリ装置に出力する段階と、前記キャッシュメモリコントローラを用いて前記プリフェッチカラーアドレスに対応する前記カラー値を前記外部メモリ装置から受信して前記キャッシュメモリに保存する段階とを含むことが好ましい。
前記アドレス変換情報は、深さ値精度(precision)、ステンシル値精度、前記外部メモリ装置の深さメモリのオフセット、または前記外部メモリ装置のカラーメモリのオフセットのうちの少なくとも一つを含むことが好ましい。
【0017】
上記目的を達成するためになされた本発明によるコンピュータグラフィックスデータの処理装置は、コンピュータグラフィックスデータの現在のフラグメントに対する深さテストを実行するパーフラグメントユニットと、前記パーフラグメントユニットと接続され、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントに対するカラー値を外部メモリ装置からプリフェッチし、該プリフェッチしたカラー値を保存するキャッシュメモリを含むキャッシュコントローラとを有することを特徴とする。
【0018】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒット(cache hit)かキャッシュミス(cache miss)かどうかを判別し、前記キャッシュミスが起こった時、前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するように制御するための判別ブロックとを含むことが好ましい。
前記キャッシュコントローラは、前記パーフラグメントユニットから出力された前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、以前のフラグメントに対する深さテストの結果を保存するための保存装置と、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことが好ましい。
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、以前のフラグメントに対する深さテストの結果を保存するための保存装置と、前記プリフェッチカラーアドレス発生器と接続され、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果と前記パーフラグメントユニットから出力されたカラーブレンディング実行(color blending performance)に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことが好ましい。
【0019】
前記コンピュータグラフィックスデータの処理装置は、3次元グラフィックスアクセラレータ(3D graphics accelerator)またはコンピュータシステムであることが好ましい。
前記キャッシュコントローラは、前記判別ブロックと接続され、前記判別ブロックから出力された前記プリフェッチカラーアドレスと前記キャッシュメモリから出力されたカラーアドレスとの間の優先順位(priority)を仲裁(arbitrate)するための仲裁器をさらに含むことが好ましい。
【発明の効果】
【0020】
本発明に係るコンピュータグラフィックスデータの処理方法とその処理装置によれば、パーフラグメントユニットで深さテストを実行する間、次のパイプラインで使われるカラー値を予めプリフェッチできるので、カラーブレンディング演算の時にカラーキャッシュコントローラで発生するキャッシュミスの発生を減少させうるという効果がある。
【0021】
また、現在のフラグメントに対する深さ/ステンシル値読み出し、深さテスト、ステンシルテスト、ステンシル演算、深さ値書き込みなどが実行される間、現在のフラグメントに対するカラー値を予めプリフェッチできるので、パーフラグメントユニットのパイプラインのストールを著しく減らしうるという効果がある。
したがって、3次元グラフィックスパイプラインでストールが多発する部分の中の一つであるパーフラグメントユニットのカラーメモリの外部メモリアクセス時間を隠蔽して(
hide)全体的な3次元グラフィックスパイプラインの性能を向上させうるという効果がある。
【0022】
特に、マルチアウトスタンディングトランザクションを支援するシステムバスを使えば、キャッシュコントローラは、パーフラグメントユニットから出力された深さアドレスと同時にカラーアドレスとを発生させ、カラーアドレスに対応するカラー値がカラーキャッシュメモリに保存されていない場合にカラーアドレスをシステムバスに直ちに出力してメモリサブシステムがDRAMバンクインターリーブを通じる効率的なメモリアクセスが可能になるように支援する。したがって、効果的な外部メモリアクセスでパーフラグメントユニットのメモリアクセスレイテンシーを減らしうるという効果がある。
【発明を実施するための最良の形態】
【0023】
次に、本発明に係るコンピュータグラフィックスデータの処理方法とその処理装置を実施するための最良の形態の具体例を図面を参照しながら説明する。
【0024】
図3は、本発明の実施形態によるパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす。図3を参照すると、コンピュータシステム10は、パーフラグメントユニット20、キャッシュコントローラ30、及び外部メモリ装置であるフレームバッファ60を備える。
【0025】
3次元グラフィックスアクセラレータのようなコンピュータグラフィックスデータの処理装置は、パーフラグメントユニット20とキャッシュコントローラ30とを含む。本発明によるコンピュータグラフィックスデータの処理装置は、図1に示したジオメトリエンジン、ラスタライザ、フラグメントシェーダ、及びテクスチャユニットをさらに備えられうる。
【0026】
パーフラグメントユニット20は、シザーテスト、アルファテスト、深さ/ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ/ステンシル値書き込み、カラー値読み出し、アルファブレンディング、論理演算、ディザリング/カラーフォーマット変換、及びカラー値書き込みのうちから少なくとも複数個を順次に実行できる。
キャッシュコントローラ30は、ロジック回路33と深さ/ステンシルキャッシュメモリ35とを備える深さ/ステンシルキャッシュコントローラ33、プリフェッチブロック37、及びロジック回路49とカラーキャッシュメモリ51とを備えるカラーキャッシュコントローラ47を備える。キャッシュコントローラ30は、仲裁器53をさらに備えられうる。
【0027】
現在のフラグメント(または、現在のピクセル)に対する深さ値の読み出し動作の時、パーフラグメントユニット20は、深さ値の読み出し動作を行うために深さ値要求(depth value request)、深さアドレス、及び読み出し命令を含む複数の信号DREQをキャッシュコントローラ30の深さ/ステンシルキャッシュコントローラ31に出力する。深さ/ステンシルキャッシュコントローラ31のロジック回路33は、深さ要求、深さアドレス、及び読み出し命令を含む複数の信号DREQに応答して深さ/ステンシルキャッシュメモリ35に保存されたタグ(tag)と受信された深さアドレスとを比較する。
【0028】
深さアドレスに対応するデータ(または、深さ値)が深さ/ステンシルキャッシュメモリ35に保存されている場合(すなわち、キャッシュヒットの時)、深さ/ステンシルキャッシュコントローラ31のロジック回路33は、深さアドレスに対応するデータを深さ/ステンシルキャッシュメモリ35から読み出し、該読み出されたデータDDATAをパーフラグメントユニット20に出力する。
【0029】
しかし、深さアドレスに対応するデータが深さ/ステンシルキャッシュメモリ35に保存されていない場合(すなわち、キャッシュミスの時)、深さ/ステンシルキャッシュコントローラ31のロジック回路33は、深さアドレスに対応するデータをフレームバッファ60の深さ/ステンシルメモリ61から読み出し、該読み出されたデータDDATAをパーフラグメントユニット20に出力する。パーフラグメントユニット20は、深さアドレスに対応するデータDDATAをキャッシュコントローラ30から受信するまでストールされる。
【0030】
パーフラグメントユニット20が、ステンシルテストのためにステンシルデータ(または、ステンシル値)を深さ/ステンシルキャッシュメモリ35または深さ/ステンシルメモリ61から読み出す動作は、深さテストのために深さデータ(または、深さ値)を深さ/ステンシルキャッシュメモリ35または深さ/ステンシルメモリ61から読み出す動作と類似しているので、これについての詳細な説明は省略する。
【0031】
現在のフラグメントの深さ値またはステンシル値を受信したパーフラグメントユニット20は、現在のフラグメントに対する深さテストまたはステンシルテストを実行する。
パーフラグメントユニット20によって現在のフラグメントに対する深さテストやステンシルテストが実行される間、キャッシュコントローラ30は、現在のフラグメントに対するカラー値(または、カラーデータ)を外部メモリ装置であるフレームバッファ60のカラーメモリ63からカラーキャッシュメモリ51にプリフェッチする。
【0032】
すなわち、パーフラグメントユニット20によって現在のフラグメントに対する深さ/ステンシル値読み出し、ステンシルテスト、深さテスト、ステンシル演算、深さ/ステンシル値書き込みなどが実行されている間、キャッシュコントローラ30は、現在のフラグメントのカラー値をブレンディング演算が実行される前に先にプリフェッチできるので、ブレンディング演算が実行される時にカラーキャッシュコントローラ47で発生するキャッシュミスは相当減少する。
すなわち、カラーキャッシュコントローラ47で発生するヒット比率が相当増加する。したがって、コンピュータグラフィックスデータの処理装置のパイプラインがストールされる時間が相当減少するので、コンピュータグラフィックスデータの処理装置の3次元レンダリング性能は向上する。
【0033】
特に、マルチプルアウトスタンディングトランザクション(multiple outstanding transaction)を支援するバスを備えるシステム構造では、以前の要求が外部メモリ装置(例えば、DRAM)で処理される前に次の要求をすることができる。したがって、本発明によるキャッシュコントローラ30が深さキャッシュミスの時にカラーキャッシュミス要求を予め出力すれば、外部メモリ装置の初期設定時間が短縮されるので、キャッシュコントローラ30はさらに早い時間でカラー値を予めプリフェッチできる。
したがって、本発明によるキャッシュコントローラ30は、システムのメモリコントローラがバンクインターリーブを通じて複数のバンクを備える外部メモリ装置に効果的にデータを要求して初期外部メモリアクセス時間を隠蔽する(hide)。
【0034】
深さキャッシュミスは、深さアドレスに対応する深さ値が深さ/ステンシルキャッシュメモリ35に保存されていない場合に発生し、カラーキャッシュミス要求は、深さアドレスに関連したプリフェッチカラーアドレスに対応するカラー値またはカラーアドレスに対応するカラー値がカラーキャッシュメモリ51に保存されていない場合、プリフェッチカラーアドレスに対応するカラー値またはカラーアドレスに対応するカラー値をカラーメモリ63に要求する時に発生する。また、深さ/ステンシルキャッシュコントローラ31のロジック回路33は、深さアドレスZADDをプリフェッチカラーアドレス発生器39に伝送する。
【0035】
プリフェッチカラーアドレス発生器39は、現在、深さテストが実行中である時の現在のフラグメントに対する深さアドレスZADDとアドレス変換情報ACIに基づいてプリフェッチカラーアドレスCPADDを発生させる。プリフェッチカラーアドレスCPADDは、現在、深さテスト/ステンシルテストが実行中である時のフラグメントのカラー値をカラーメモリ63からプリフェッチするためのアドレスである。
【0036】
例えば、パーフラグメントユニット20から出力されたアドレス変換情報ACIは、深さ値精度(depth value precision)、ステンシル値精度、カラーメモリ63のフォーマット、深さ/ステンシルメモリ61のオフセット、またはカラーメモリ63のオフセットのうちの少なくとも一つを含む。
深さ/ステンシルメモリ61は、深さ/ステンシルバッファとも言い、カラーメモリ63はカラーバッファとも言う。
また、アドレス変換情報ACIは、フレームバッファ60のフォーマットと深さ/ステンシルメモリ61の大きさについての情報であり得る。そして、アドレス変換情報ACIは、フレームバッファ60のメモリマップ(map)についての情報でもあり得る。
【0037】
【表1】

【0038】
表1を参照すると、深さ/ステンシル値精度が32ビットであり、カラーメモリ63のフォーマットが32ビットである場合、プリフェッチカラーアドレス発生器39は、深さ/ステンシルメモリ61のオフセット(または、ベースアドレス)をカラーメモリ63のオフセット(または、ベースアドレス)に変換して深さアドレスZADDからプリフェッチカラーアドレスCPADDを発生させる。
【0039】
しかし、カラーメモリ63のフォーマットが16ビットである場合、プリフェッチカラーアドレス発生器39は、カラーメモリ63のオフセットを除外した残りの部分を1ビットライトシフト(1 bit right shift)させて深さアドレスZADDからプリフェッチカラーアドレスCPADDを発生させる。
【0040】
プリフェッチカラーアドレスCPADDは、ベースアドレスとピクセルアドレスとを含む。したがって、プリフェッチカラーアドレス発生器39は、深さアドレスZADDとアドレス変換情報ACIとを受信し、深さ/ステンシルメモリ61のオフセットをカラーメモリ63のオフセットに変換して、深さ/ステンシル値精度とカラーメモリ63のフォーマットとの差に基づいてプリフェッチカラーアドレスCPADDを発生させる。表1は、説明の便宜上、例示的なものであって多様な変形が可能である。
【0041】
判別ブロック41は、カラーキャッシュメモリ51に保存されたタグとプリフェッチカラーアドレスCPADDとに基づいてキャッシュヒットまたはキャッシュミスが起こったかどうかを判別し、キャッシュミスの時にプリフェッチカラーアドレスCPADDをカラーメモリ63に伝送することを制御する。キャッシュヒットである場合、カラーキャッシュメモリ51には、プリフェッチカラーアドレスCPADDに対応するカラー値が保存されているので、カラー値をプリフェッチする必要がない。
【0042】
キャッシュコントローラ30は、保存装置43と伝送制御ブロック45とをさらに備えられうる。保存装置43は、以前のフラグメント(または、以前のピクセル)に対する深さテストの結果を保存する。以前のフラグメントに対する深さテストが失敗(fail)である場合、現在のフラグメントに対するカラー値をプリフェッチする必要がない、なぜならば、パイプラインプロセスに従って、以前のフラグメントに対する深さテストが失敗した場合、現在のフラグメントに対する深さテストも失敗である可能性が高いためである。深さテストが失敗して該当のフラグメントがパイプラインで消えれば、該当のフラグメントに対するカラー演算を実行する必要がないために該当のフラグメントのカラー値をプリフェッチする必要がない。
【0043】
伝送制御ブロック45は、カラー値がプリフェッチされたかどうかを判定する。ユーザーが処理装置に対し、例えば、カラー演算、アルファブレンディング演算や論理演算などを実行しないようにプログラムする場合、キャッシュコントローラ30は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。また、プリフェッチカラーアドレスCPADDに対応するカラー値がカラーキャッシュメモリ51に保存されている場合、キャッシュコントローラ30は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。
【0044】
また、以前のフラグメントに対する深さテストが失敗した場合、現在のフラグメントに対する深さテストも失敗である可能性が高いために、キャッシュコントローラ30は、深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をプリフェッチする必要がない。
【0045】
したがって、伝送制御ブロック45は、パーフラグメントユニット20から出力されたカラー演算の存在(演算実行の如何)(BI)、保存装置43から出力された以前のフラグメントに対する深さテストの結果の成功か失敗かの如何、または判別ブロック41から出力されたキャッシュミスの存在の如何のうちの少なくとも一つに基づいてプリフェッチカラーアドレスCPADDをフレームバッファ60のカラーメモリ63に伝送するかどうかを制御する。プリフェッチカラーアドレスCPADDは、判別ブロック41から出力されることもあり、伝送制御ブロック45から出力されることもある。
【0046】
したがって、カラーメモリ63は、プリフェッチカラーアドレスCPADDに対応するカラー値をカラーキャッシュコントローラ47のロジック回路49に出力する。ロジック回路49は、カラー値をカラーキャッシュメモリ51に保存する。したがって、パーフラグメントユニット20は、ブレンディング演算の時にカラーキャッシュメモリ51に保存されたカラー値を使うことができるので、ブレンディング演算の時にパイプラインがストールされる時間を相当短縮させうる効果がある。
【0047】
図4は、本発明の実施形態によるカラー値をプリフェッチする過程を説明するためのフローチャートである。図3と図4とを参照してカラー値をプリフェッチする過程を詳しく説明すれば、以下のようである。
キャッシュコントローラ30は、深さアドレスZADD、以前のフラグメントに対する深さテストの結果、またはブレンディング演算や論理演算(LOP)の実行の如何を表わすカラー演算制御信号(BI)をパーフラグメントユニット20から受信する(ステップS10)。
【0048】
パーフラグメントユニット20がブレンディング演算や論理演算を実行したかどうかを判別し(ステップS20)、パーフラグメントユニット20がブレンディング演算や論理演算を実行しない場合、キャッシュコントローラ30は、パーフラグメントユニット20から出力されたカラー演算制御信号(BI)に基づいて現在のフラグメントに対するカラー値をカラーメモリ63からカラーキャッシュメモリ51にプリフェッチしない(ステップS21)。
【0049】
ブレンディング演算や論理演算が実行された時、以前のフラグメントに対する深さテストが失敗かどうかを判別する(ステップS30)、以前のフラグメントに対する深さテストが失敗である場合、キャッシュコントローラ30は、現在のフラグメントに対するカラー値をカラーメモリ63からカラーキャッシュメモリ51にプリフェッチしない(ステップS31)。
【0050】
ブレンディング演算や論理演算が実行され、以前のフラグメントに対する深さテストが失敗ではない場合、キャッシュコントローラ30のプリフェッチカラーアドレス発生器39は、パーフラグメントユニット20から出力された深さアドレスZADDとアドレス変換情報ACIとに基づいてプリフェッチカラーアドレスCPADDを発生させる(ステップS40)。
【0051】
キャッシュコントローラ30の判別ブロック41は、キャッシュヒットまたはキャッシュミスが起きたかどうかを判別するためにプリフェッチカラーアドレスCPADDを受信し、カラーキャッシュメモリ51に保存されたタグと受信されたプリフェッチカラーアドレスCPADDとを比較し(ステップS50)、キャッシュヒットかキャッシュミスかどうかを判別する(ステップS60)。キャッシュヒットである場合、キャッシュコントローラ30は、現在のフラグメントに対するカラー値をカラーメモリ63からカラーキャッシュメモリ51にプリフェッチしない(ステップS61)。
【0052】
キャッシュヒットが起こらない、つまり、キャッシュミスである場合、プリフェッチカラーアドレスCPADDとカラーアドレスCADDとの間の優先順位の判定がなされ(ステップS100)、それにより、キャッシュコントローラ30は、パーフラグメントユニット20によって深さテストやステンシルテストが進行中である現在のフラグメントに対するカラー値をカラーメモリ63からカラーキャッシュメモリ51にプリフェッチし始める(ステップS110)。プリフェッチカラーアドレスCPADDに対応するカラー値でカラーキャッシュメモリ51がいっぱいになったかどうかを判定し(ステップS120)、プリフェッチカラーアドレスCPADDに対応するカラー値でカラーキャッシュメモリ51がいっぱいになった場合、カラー値のプリフェッチは完了する。
【0053】
カラーキャッシュコントローラ47のロジック回路49は、パーフラグメントユニット20から出力されたカラーアドレスCADDを受信し(ステップS70)、カラーキャッシュメモリ51に保存されたカラー値のタグと受信されたカラーアドレスCADDとを比較する(ステップS80)。比較の結果、キャッシュヒットかどうかを判別し(ステップS90)、キャッシュヒットが発生した場合、カラーキャッシュコントローラ47のロジック回路49は、カラーアドレスCADDに対応するカラー値をカラーキャッシュメモリ51から読み出し、これをパーフラグメントユニット20に出力する(ステップS91)。
【0054】
しかし、キャッシュヒットが起こらない、つまり、キャッシュミスが発生した場合、カラーキャッシュコントローラ47のロジック回路49は、カラーメモリ63からカラーアドレスCADDに対応するカラー値を読み出し、読み出されたカラー値CDATAをカラーキャッシュメモリ51に保存すると同時にパーフラグメントユニット20に出力する。しかし、プリフェッチカラーアドレスCPADDとカラーアドレスCADDとが同時に出力された場合、仲裁器53が、キャッシュコントローラ30のプリフェッチカラーアドレスCPADDとカラーキャッシュコントローラ47のカラーアドレスCADDとの間の優先順位を仲裁する(ステップS100)。
【0055】
例えば、深さ/ステンシル値読み出し時点ではカラーキャッシュコントローラ47がキャッシュヒットを発生させたが、パイプライン処理が実行されている途中にカラーキャッシュメモリ51に保存されたカラー値が変わって、カラー値読み出し時点でカラーキャッシュコントローラ47がキャッシュミスを発生させると同時にプリフェッチブロック37が深さ値に対応するカラー値をプリフェッチしようとする場合、カラーキャッシュコントローラ47は、カラーアドレスCADDを発生させ、同時に、プリフェッチブロック37は、プリフェッチカラーアドレスCPADDを発生させる。
【0056】
このとき、仲裁器53は、カラーアドレスCADDとプリフェッチカラーアドレスCPADDとの間で優先順位を判別、決定する。この場合、仲裁器53は、カラーアドレスCADDをプリフェッチカラーアドレスCPADDより先に処理する。
【0057】
一般的に、現在のフラグメントの深さ値が以前のフラグメントの深さ値より小さな場合、パーフラグメントユニット20は、現在のフラグメントの深さ値を深さ/ステンシルキャッシュメモリ35に保存し、現在のフラグメントの深さ値が以前のフラグメントの深さ値より大きい場合、パーフラグメントユニット20は、現在のフラグメントの深さ値を捨てる。しかしながら、ユーザーが多様な深さテストのモード以外の他のモードを選択したならば、選択されたモードによって深さテストが実行される。
【0058】
現在のフラグメントに対する深さテスト/ステンシルテストがすべてパスである場合、パーフラグメントユニット20は、現在のフラグメントを次のパイプラインに伝送する。
したがって、パーフラグメントユニット20は、現在のフラグメントに関連するカラー要求、カラーアドレス、及び読み出し命令を含む多様な信号(CREQ)をカラーキャッシュコントローラ37に出力する。
【0059】
パーフラグメントユニット20は、カラーアドレスCADDに対応するカラー値CDATAをカラーキャッシュメモリ51から読み出す。パーフラグメントユニット20によって現在のフラグメントに対する深さテストが実行されている間にキャッシュコントローラ30は、現在のフラグメントの深さ値に対応するカラー値を予め読み出してカラーキャッシュメモリ51に保存しているので、キャッシュコントローラ30は、ブレンディング演算の時にキャッシュヒット比率を高めることができる。
パーフラグメントユニット20は、カラーキャッシュメモリ51から読み出したカラー値に関してアルファブレンディング、論理演算、ディザリング/カラーフォーマット変換を実行し、その実行結果によるカラー値WCDATAをカラーキャッシュメモリ51に保存する。
【0060】
本発明の実施形態によるコンピュータグラフィックスデータの処理方法は、コンピュータシステムで実行しうるプログラムで作成可能である。また、プログラムを記録したコンピュータから読み取り可能な記録媒体から読み出された該当のプログラムは、デジタルコンピュータシステムで実行可能である。記録媒体には、磁気的記録媒体(例えば、ハードディスク)、電子的記録媒体(例えば、半導体チップ、マイクロプロセッサなど)、光学的記録媒体(例えば、CD−ROM、DVD)のような媒体を含む。
【0061】
また、コンピュータで読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に類推されうる。
【0062】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【0063】
本発明の実施形態によるコンピュータグラフィックスデータの処理方法と装置は、3次元グラフィックスアクセラレータまたはコンピュータシステムで使われうる。
【図面の簡単な説明】
【0064】
【図1】一般的な3次元グラフィックスアクセラレータの機能ブロック図である。
【図2】図1に示したパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす図面である。
【図3】本発明の実施形態によるパーフラグメントユニットとキャッシュコントローラとのパイプライン過程を表わす図面である。
【図4】本発明の実施形態によるカラー値をプリフェッチする過程を説明するためのフローチャートである。
【符号の説明】
【0065】
10 コンピュータシステム
20 パーフラグメントユニット
30 キャッシュコントローラ
31 深さ/ステンシルキャッシュコントローラ
33 ロジック回路
35 深さ/ステンシルキャッシュメモリ
37 プリフェッチブロック
39 プリフェッチカラーアドレス発生器
41 判別ブロック
43 保存装置
45 伝送制御ブロック
47 カラーキャッシュコントローラ
49 ロジック回路
51 カラーキャッシュメモリ
53 仲裁器
60 フレームバッファ(外部メモリ装置)
61 深さ/ステンシルメモリ
63 カラーメモリ


【特許請求の範囲】
【請求項1】
パーフラグメントユニット(PerFragment unit)の外部メモリアクセス時間を短縮するためのコンピュータグラフィックスデータの処理方法であって、
前記コンピュータグラフィックスデータの現在のフラグメントに対する深さ(depth)テストを前記パーフラグメントユニットを用いて実行する段階と、
前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とするコンピュータグラフィックスデータの処理方法。
【請求項2】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、キャッシュコントローラを用いて前記パーフラグメントユニットから出力された前記現在のフラグメントの深さアドレス(depth address)とアドレス変換情報とに基づいてプリフェッチカラーアドレス(prefetch color address)を発生させる段階と、
前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、
前記比較の結果、キャッシュミス(cache miss)である場合、前記プリフェッチカラーアドレスに対応するカラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階とを含むことを特徴とする請求項1に記載のコンピュータグラフィックスデータの処理方法。
【請求項3】
前記キャッシュコントローラは、前記パーフラグメントユニットから出力されたカラー演算の存在(existence of a color operation)の如何、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。
【請求項4】
前記キャッシュコントローラは、以前のフラグメントの深さテスト結果、前記深さアドレス、及び前記アドレス変換情報に基づいて前記プリフェッチカラーアドレスを発生させることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。
【請求項5】
キャッシュコントローラを用いて、パーフラグメントユニットから出力されたカラー演算制御信号を受信する段階と、
前記パーフラグメントユニットによって現在のフラグメントに対する深さテストまたはステンシル(stencil)テストが実行される間、前記キャッシュコントローラは、受信されたカラー演算制御信号とプリフェッチカラーアドレスとに基づいて前記現在のフラグメントのカラー値を外部メモリ装置からキャッシュメモリにプリフェッチする段階とを有することを特徴とするコンピュータグラフィックスデータの処理方法。
【請求項6】
前記カラー演算制御信号は、ブレンディング演算(blending operation)の実行を指示する信号、又は以前のフラグメントの深さテストの結果を指示する信号であることを特徴とする請求項5に記載のコンピュータグラフィックスデータの処理方法。
【請求項7】
前記カラー値を前記外部メモリ装置から前記キャッシュメモリにプリフェッチする段階は、前記キャッシュコントローラを用いて前記現在のフラグメントの深さアドレスとアドレス変換情報とに基づいて前記プリフェッチカラーアドレスを生成させる段階と、
前記キャッシュコントローラを用いて前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとを比較する段階と、
前記比較結果に基づいてキャッシュミスが起きた時、前記プリフェッチカラーアドレスを前記外部メモリ装置に出力する段階と、
前記キャッシュメモリコントローラを用いて前記プリフェッチカラーアドレスに対応する前記カラー値を前記外部メモリ装置から受信して前記キャッシュメモリに保存する段階とを含むことを特徴とする請求項5に記載のコンピュータグラフィックスデータの処理方法。
【請求項8】
前記アドレス変換情報は、深さ値精度(precision)、ステンシル値精度、前記外部メモリ装置の深さメモリのオフセット、または前記外部メモリ装置のカラーメモリのオフセットのうちの少なくとも一つを含むことを特徴とする請求項5に記載のコンピュータグラフィックスデータの処理方法。
【請求項9】
コンピュータグラフィックスデータの現在のフラグメントに対する深さテストを実行するパーフラグメントユニットと、
前記パーフラグメントユニットと接続され、前記パーフラグメントユニットによって前記現在のフラグメントに対する前記深さテストが実行される間、前記現在のフラグメントに対するカラー値を外部メモリ装置からプリフェッチし、該プリフェッチしたカラー値を保存するキャッシュメモリを含むキャッシュコントローラとを有することを特徴とするコンピュータグラフィックスデータの処理装置。
【請求項10】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒット(cache hit)かキャッシュミス(cache miss)かどうかを判別し、前記キャッシュミスが起こった時、前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するように制御するための判別ブロックとを含むことを特徴とする請求項9に記載のコンピュータグラフィックスデータの処理装置。
【請求項11】
前記キャッシュコントローラは、前記パーフラグメントユニットから出力された前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
以前のフラグメントに対する深さテストの結果を保存するための保存装置と、
前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、
前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことを特徴とする請求項9に記載のコンピュータグラフィックスデータの処理装置。
【請求項12】
前記キャッシュコントローラは、前記現在のフラグメントに対する深さアドレスとアドレス変換情報とに基づいてプリフェッチカラーアドレスを発生させるためのプリフェッチカラーアドレス発生器と、
以前のフラグメントに対する深さテストの結果を保存するための保存装置と、
前記プリフェッチカラーアドレス発生器と接続され、前記キャッシュメモリに保存されたタグと前記プリフェッチカラーアドレスとに基づいてキャッシュヒットかキャッシュミスかどうかを判別するための判別ブロックと、
前記判別ブロックに接続され、前記保存装置から出力された前記深さテストの結果と前記判別ブロックの判別結果と前記パーフラグメントユニットから出力されたカラーブレンディング実行(color blending performance)に基づいて前記プリフェッチカラーアドレスを前記外部メモリ装置に伝送するか否かを制御するための伝送制御ブロックとを含むことを特徴とする請求項9に記載のコンピュータグラフィックスデータの処理装置。
【請求項13】
前記コンピュータグラフィックスデータの処理装置は、3次元グラフィックスアクセラレータ(3D graphics accelerator)またはコンピュータシステムであることを特徴とする請求項9に記載のコンピュータグラフィックスデータの処理装置。
【請求項14】
前記キャッシュコントローラは、前記判別ブロックと接続され、前記判別ブロックから出力された前記プリフェッチカラーアドレスと前記キャッシュメモリから出力されたカラーアドレスとの間の優先順位(priority)を仲裁(arbitrate)するための仲裁器をさらに含むことを特徴とする請求項9に記載のコンピュータグラフィックスデータの処理装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−47124(P2008−47124A)
【公開日】平成20年2月28日(2008.2.28)
【国際特許分類】
【出願番号】特願2007−210771(P2007−210771)
【出願日】平成19年8月13日(2007.8.13)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【Fターム(参考)】