(57)【要約】【課題】グラフィックス(graphics)処理装置と処理方法、及びその記録媒体を提供する。【解決手段】グラフィックス処理装置は、i(iは自然数)番目スパンのデータをレンダリングしながらフラグメント情報を出力するラスタライザとラスタライザから出力されたフラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサとプロセッサから出力された前記計算された座標に相応し、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリとを備える。また、グラフィックス処理装置は、現在スパンのデータを処理する段階と処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階とを備える。したがって、毎三角形ごとにスパンが変わる度に発生されるキャッシュミスを減少させることができるので、グラフィックス処理装置の性能が向上する。【選択図】図１
2006338658.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスデータの処理方法において、
第i(iは自然数)番目スパンのデータを処理する段階と、
前記第i番目スパンのデータが処理される間に、第(i+1)番目スパンの一番目データの座標に相応するデータを外部メモリ装置からキャッシュメモリにプリフェッチする段階と、を備えることを特徴とするコンピュータグラフィックスデータの処理方法。
【請求項２】
前記プリフェッチする段階は、
ラスタライザが前記第i番目スパンのデータを処理する間に、前記ラスタライザから出力されたフラグメント情報に基づいて前記第(i+1)番目スパンの一番目データの前記座標を計算する段階と、
前記計算された座標に相応するデータを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備えることを特徴とする請求項１に記載のコンピュータグラフィックスデータの処理方法。
【請求項３】
前記第(i+1)番目スパンの一番目データの座標を計算する段階は、
前記第i番目スパンを含む三角形のエッジの傾き、及び前記第i番目スパンのテクスチャ座標をピクセル座標で偏微分した値を求める段階と、
前記偏微分した値に基づいて前記第(i+1)番目スパンの一番目テクセルの座標を計算する段階と、を備えることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項４】
前記第(i+1)番目スパンの一番目データの座標を計算する段階は、前記第(i+1)番目スパンの一番目テクセルの座標値、一番目スパンのテクセルの座標値、一番目スパンを含む三角形のエッジの傾き、第(i+1)番目スパンの一番目テクセルの座標値を偏微分して獲得された偏微分値、及び前記第iスパンのテクセルの座標値に基づいて前記第(i+1)番目の一番目ピクセル座標を計算する段階であることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項５】
前記第(i+1)番目スパンの一番目データの座標を計算する段階は、前記第i番目スパンを含む三角形のエッジの傾きと前記第i番目スパンのピクセル座標とに基づいて前記第(i+1)番目スパンの一番目ピクセルの座標を計算する段階であることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項６】
前記第(i+1)番目スパンの一番目データの座標は、前記第i番目スパンのピクセルの座標値、第(i+1)番目スパンの一番目ピクセルの座標値、及び定数に基づいて計算されることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。
【請求項７】
前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階は、
前記キャッシュメモリが、前記外部メモリ装置をアクセスするか否かを判断する段階と、
前記判断結果に基づいて前記計算された座標を前記外部メモリ装置に出力する段階と、
前記計算された座標に相応する前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備えることを特徴とする請求項２に記載のコンピュータグラフィックスデータの処理方法。 
【請求項８】
請求項１ないし請求項7中の何れか一項に記載された方法を遂行するためのプログラムを記録したコンピュータで読むことができる記録媒体。
【請求項９】
グラフィックス処理装置において、
i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、
前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサと、を備えることを特徴とするグラフィックス処理装置。
【請求項１０】
前記グラフィックス処理装置は、前記プロセッサから出力された前記計算された座標に応じて、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリをさらに備えることを特徴とする請求項９に記載のグラフィックス処理装置。
【請求項１１】
前記フラグメント情報が現在レンダリングされている前記i番目スパンを含む三角形のエッジの傾き、及びテクスチャ座標をピクセル座標で偏微分した値である場合、前記プロセッサは前記三角形のエッジの傾き、及び前記テクスチャ座標を前記ピクセル座標で偏微分した値に基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項１０に記載のグラフィックス処理装置。
【請求項１２】
前記プロセッサは、前記(i+1)番目スパンの一番目テクセルの座標値、前記i番目スパンのテクセルの座標値、前記三角形のエッジの傾き、及び前記偏微分値に基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項１１に記載のグラフィックス処理装置。
【請求項１３】
前記プロセッサは、
前記フラグメント情報に基づいて前記(i+1)番目スパンの一番目データの座標を計算するためのアドレス発生器と、
前記アドレス発生器から出力された座標を受信して、前記キャッシュメモリの動作状態を監視して、監視結果に基づいて前記受信された座標を前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とする請求項１０に記載のグラフィックス処理装置。
【請求項１４】
前記コントローラは、前記キャッシュメモリがヒット状態または動作しない状態の時、前記受信された座標を前記キャッシュメモリに伝送することを特徴とする請求項１３に記載のグラフィックス処理装置。
【請求項１５】
前記プロセッサは、前記i番目スパンを含む三角形のエッジの傾きと前記i番目スパンのピクセル座標とに基づいて前記(i+1)番目スパンの一番目ピクセルの座標を計算することを特徴とする請求項９に記載のグラフィックス処理装置。
【請求項１６】
グラフィックス処理装置のプロセッサにおいて、
現在処理されている(i)番目スパンを含む三角形のエッジの傾き、及びテクスチャ座標をピクセル座標で偏微分した値を受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力された前記(i+1)番目スパンの一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とするグラフィックス処理装置のプロセッサ。
【請求項１７】
前記コントローラは、
前記キャッシュメモリから出力されたヒット状態を表す信号、または前記キャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目テクセルのアドレスを前記キャッシュメモリに出力することを特徴とする請求項１６に記載のグラフィックス処理装置のプロセッサ。
【請求項１８】
グラフィックス処理装置のプロセッサにおいて、
現在処理されているi番目スパンを含む三角形のエッジの傾きとピクセル座標とを受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力された前記(i+1)番目スパンの一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とするグラフィックス処理装置のプロセッサ。
【請求項１９】
前記キャッシュメモリがz/ステンシルキャッシュメモリである場合、
前記コントローラは、前記 z/ステンシルキャッシュメモリの動作状態を監視して、前記 z/ステンシルキャッシュメモリから出力されたヒット状態を表す信号、または前記z/ステンシルキャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目ピクセルの座標を前記z/ステンシルキャッシュメモリに出力することを特徴とする請求項１８に記載のグラフィックス処理装置のプロセッサ。
【請求項２０】
前記キャッシュメモリがカラーキャッシュメモリである場合、前記コントローラは前記カラーキャッシュメモリの動作状態を監視して、前記カラーキャッシュメモリから出力されたヒット状態を表す信号、または前記カラーキャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目ピクセルの座標を前記カラーキャッシュメモリに出力することを特徴とする請求項１８に記載のグラフィックス処理装置のプロセッサ。
【請求項２１】
コンピュータにおいて、
i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、
前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データのアドレスを計算して、計算されたアドレスを出力するためのプロセッサと、
外部メモリ装置と、
前記プロセッサから出力されたアドレスに応じて、前記外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリと、を備えることを特徴とするコンピュータ。
【請求項２２】
前記プロセッサは、
前記フラグメント情報に基づいて前記(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力されたアドレスを受信して、前記キャッシュメモリの動作状態を監視して、監視結果に基づいて前記受信されたアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とする請求項２１に記載のコンピュータ。
【請求項２３】
前記ラスタライザが現在レンダリングされている前記i)番目スパンを含む三角形のエッジの傾きとテクスチャ座標とをピクセル座標で偏微分した値を前記フラグメント情報として出力する場合、前記プロセッサは、前記三角形のエッジの傾きと前記テクスチャ座標をピクセル座標で偏微分した値とに基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項２１に記載のコンピュータ。
【請求項２４】
前記ラスタライザが現在レンダリングされている前記i番目スパンを含む三角形のエッジの傾きとピクセルの座標とを前記フラグメント情報として出力する場合、前記プロセッサは、前記三角形のエッジの傾きと前記ピクセル座標とに基づいて前記(i+1)番目スパンの一番目ピクセルの座標を計算することを特徴とする請求項２１に記載のコンピュータ。
【請求項２５】
グラフィックス処理装置のデータ処理方法において、
現在スパンのデータを処理する段階と、
処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階と、を備えることを特徴とするグラフィックス処理装置のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、3次元グラフィック処理に係り、より詳細には、3次元グラフィックスパイプライン(graphics pipeline)でキャッシュメモリ(cache memory)の性能を改善するために、現在スパン(span)を処理している間に、次のスパンのデータをキャッシュメモリにプリフェッチ(prefetch)するための装置、方法、及びその記録媒体に関する。
【背景技術】
【０００２】
最近、3次元グラフィックスアプリケーション(application)で実時間で場面(scene)をレンダリング(rendering)する時、より自然で柔らかい映像(image)を得るために多様なテクスチャ(texture)が使われ、多様なカラーブレンディング(color blending)が使われる。また、実時間レンダリングの時、3次元グラフィックスパイプラインの性能を高めるために多様なキャッシュメモリを使う。多様なキャッシュメモリの中で、テクスチャキャッシュメモリはテクスチャフィルタリング(texture filtering)のために使われ、カラーキャッシュメモリはアルファブレンディング(alpha blending)のために使われ、z(または、深み)/ステンシル(stencil)キャッシュメモリはz-テストやステンシルテストのために使われる。
【０００３】
3次元グラフィックスパイプラインで外部メモリ装置をアクセスする場合、レイテンシ(latency)が長くなるので、長くなったレイテンシのために3次元グラフィックスパイプラインが停止(stall)されることを防止するために多様なキャッシュメモリが使われる。したがって、キャッシュメモリの性能向上は、3次元グラフィックスパイプラインの性能向上に大きな影響を及ぼす。
【０００４】
一般的に、3次元グラフィックスパイプラインは、三角形(triangle)を基にして場面をレンダリングする。また、一つの三角形内ではスパン(span)単位で場面がレンダリングされる。
【０００５】
3次元グラフィックスパイプラインで、現在レンダリング(または、プロセッシング)されているスパンに必要なデータ(例えば、テクスチャデータ、カラーデータ、z-データ、など)を対応する外部メモリ装置から読取る時、必要なデータのアドレス(または、座標)と線形的な(linear)アドレスに該当するデータをあらかじめ読んでキャッシュメモリに貯蔵する。
【０００６】
しかし、3次元グラフィックスパイプラインが三角形を基にして場面をレンダリングする時、スパンが変わる度にキャッシュメモリはミス(miss)である確率が高い。
【０００７】
最近では、次第に高画質の3次元場面が作られ、3次元モデリングが多数の三角形を持って細分化されるために、三角形内で一つのスパンが変わる度にキャッシュミスが発生すると、キャッシュミスによって3次元グラフィックスパイプラインの停止(stall)が増加する。したがって、3次元グラフィックスパイプラインの性能が落ちる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、本発明が解決しようとする技術的な課題は、各々の三角形内でスパンが変わる度にキャッシュミスが発生されるのを減らして3次元グラフィックスパイプラインでキャッシュメモリの性能を改善するために、現在スパンを処理している途中に次のスパンの一番目データをキャッシュメモリにプリフェッチするための装置、方法、及びその記録媒体を提供することである。
【課題を解決するための手段】
【０００９】
前記技術的課題を達成するためのグラフィックス処理装置のデータ処理方法は、現在スパンのデータを処理する段階と処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階とを備える。
【００１０】
前記技術的課題を達成するためのグラフィックス処理装置のデータ処理方法は、i(iは自然数)番目スパン(span)のデータを処理する段階と、前記i番目スパンのデータを処理する間に、(i+1)番目スパンの一番目データの座標に相応するデータを外部メモリ装置からキャッシュメモリにプリフェッチする段階と、を備える。
【００１１】
前記プリフェッチする段階は、ラスタライザが前記第i番目スパン(span)のデータを処理する間に、前記ラスタライザから出力されたフラグメント情報に基づいて前記(i+1)番目スパンの一番目データの座標を計算する段階と、前記計算された座標に相応するデータを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備える。前記(i+1)番目スパンの一番目データの座標を計算する段階は、現在処理されている前記i番目スパンを含む三角形のエッジの傾きとテクスチャ座標をピクセル座標で偏微分した値に基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算する段階である。
【００１２】
また、前記(i+1)番目スパンの一番目データの座標を計算する段階は、現在処理されている前記i番目スパンを含む三角形のエッジの傾きと現在処理されている前記i番目スパンのピクセル座標とに基づいて前記(i+1)番目スパンの一番目ピクセルの座標を計算する段階である。
【００１３】
前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階は、前記キャッシュメモリが前記外部メモリ装置をアクセスするか否かを判断する段階と、 前記判断結果に基づいて前記計算された座標を前記外部メモリ装置に出力する段階と、前記計算された座標に相応する前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備える。前記各方法は、プログラムを記録したコンピュータで読むことができる記録媒体に貯蔵される。
【００１４】
前記技術的課題を達成するためのグラフィックス処理装置は、i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサと、を備える。前記グラフィックス処理装置は、前記プロセッサから出力された前記計算された座標に応じて、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリをさらに備える。
【００１５】
前記技術的課題を達成するためのグラフィックス処理装置のプロセッサは、現在処理されているi番目スパンを含む三角形のエッジの傾きとテクスチャ座標をピクセル座標で偏微分した値とを受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、前記アドレス発生器から出力された(i+1)番目スパンの一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備える。
【００１６】
前記技術的課題を達成するためのグラフィックス処理装置のプロセッサは、現在処理されているi番目スパンを含む三角形のエッジの傾きとテクスチャ座標を受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、前記アドレス発生器から出力された一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備える。
【００１７】
前記技術的課題を達成するためのコンピュータは、i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データのアドレスを計算して、計算されたアドレスを出力するためのプロセッサと、外部メモリ装置と、前記プロセッサから出力されたアドレスに応じて、前記外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリと、を備える。
【発明の効果】
【００１８】
前述したように、本発明によるグラフィックス処理装置とグラフィックス処理方法は、現在スパンを処理をする途中に次のスパンの一番目データ(例えば、テクセル、ピクセル)の座標を計算して、計算された座標に相応するデータを対応する外部メモリ装置から対応するキャッシュメモリ(例えば、テクスチャキャッシュメモリ、z/ステンシルキャッシュメモリ、カラーキャッシュメモリ、など)にプリフェッチできる。
【００１９】
したがって、本発明によるグラフィックス処理装置とグラフィックス処理方法は、毎三角形ごとに毎スパンが変わる度に発生されうるキャッシュメモリのミスペナルティー(miss penalty)を減少させることができるので、テクスチャフィルタリング、z/ステンシルテスト、またはカラーブレンディングなどの速度が増加する。
【００２０】
また、本発明によるグラフィックス処理装置とグラフィックス処理方法によれば、次のスパンの一番目データの座標に相応するデータをプリフェッチする場合でも、現在スパンのデータを処理する性能は減少しない。
【００２１】
そして、本発明によるグラフィックス処理装置とグラフィックス処理方法は、キャッシュメモリからのヒット率を向上させてミスペナルティを減らすことができるので、3次元グラフィックスパイプラインの性能が向上する。
【発明を実施するための最良の形態】
【００２２】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を充分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載された内容を参照しなければならない。以下、添付した図面を参照して本発明の望ましい実施形態を説明することで、本発明を詳細に説明する。各図面に付された同一の参照符号は同一の部材を示す。
【００２３】
図１は、本発明の一実施形態による3次元グラフィックスパイプラインの構成図を示す。図１を参照すれば、3次元グラフィックスパイプライン(グラフィックス処理装置、または、コンピュータ)１０は、ラスタライザ(rasterizer)２０、フラグメントシェーダ(fragment shader)３０、テクスチャユニット(texture unit)４０、テクスチャキャッシュメモリ(texture cache memory)４１、パーフラグメントユニット(per-fragment unit)５０、z-キャッシュメモリ５１、及びカラーキャッシュメモリ５５を備える。各キャッシュメモリ４１、５１、及び５５は、対応するプロセッサ４０と５０から生成された座標(または、アドレス)に基づいて対応する外部メモリ装置４３、５３、及び５７からデータを読取る。
【００２４】
ラスタライザ２０は、三角形の頂点の座標に対する情報(VDATA)を受信して、図５に図示したように、三角形内に含まれたスパンを順次的にレンダリングして、フラグメント情報(または、現在処理中のスパンのデータに連関する情報)をフラグメントシェーダ３０に出力する。具現方式によっては、ラスタライザ２０は、フラグメント情報をテクスチャユニット４０とパーフラグメントユニット５０とに直接出力できる。フラグメントシェーダ３０は、OpenGLシェーディング言語で作成されたプログラムを意味し、フラグメントプロセッサとも言う。
【００２５】
フラグメント情報は、補間を通じて生成されたカラー値、ピクセル座標(x,y)、z(深み)値、テクスチャ座標(u,v)、三角形のエッジの傾き、テクスチャ座標をピクセル座標で偏微分した値などを含む。
【００２６】
すなわち、ラスタライザ２０は、i(iは自然数)番目スパン(span)のデータを処理(または、レンダリング)する間に、現在処理されているi番目スパンのテクセルの座標(u,v)、i番目スパンを含む三角形のエッジの傾き(S)、uのx方向の偏微分値(du/dx)、uのy方向の偏微分値(du/dy)、vのx方向の偏微分値(dv/dx)、vのy方向の偏微分値(dv/dy)、ピクセル座標(x,y)、カラー値、深み値、などに対する情報をフラグメントシェーダ３０に出力する。
【００２７】
図２は、本発明の実施形態による3次元グラフィックスパイプラインで次のスパンのデータをプリフェッチする方法を示すフローチャートである。
【００２８】
図１と図２を参照すれば、各プロセッサ４０と５０は、ラスタライザ２０が i番目スパンのデータを処理する間に、ラスタライザ２０から出力された対応するフラグメント情報を受信して、受信したフラグメント情報に基づいて(i+1)番目スパンの一番目データの座標(座標を'アドレス'とも言う)を計算する(210)。
【００２９】
各キャッシュメモリ４１、５１、及び５５は、テクスチャユニット４０とパーフラグメントユニット５０の各々から出力された(i+1)番目スパンの一番目データの座標に相応するデータを対応する外部メモリ装置４３、５３、及び５７からプリフェッチする(220)。
【００３０】
すなわち、本発明によるグラフィックス処理装置１０は、i番目スパンのデータを処理する間、(i+1)番目スパンの一番目データ(例えば、テクセル、または、ピクセル)の座標に相応するデータを外部メモリ装置からあらかじめ読取ってキャッシュメモリに貯蔵する。
【００３１】
図３は、本発明の実施形態によるテクスチャユニットのブロック図を示す。図３を参照すれば、テクスチャユニット４０は、アドレス発生ブロック３１０とフィルタリングブロック３５０とを備える。アドレス発生ブロック３１０は、3次元グラフィックスパイプラインのラスタライザ２０から出力された所定のフラグメント情報に応答して、現在処理されているスパンのピクセルのテクスチャ座標と次のスパンの一番目テクセルの座標とを発生して、テクスチャキャッシュメモリ４１とインターフェースする。
【００３２】
フィルタリングブロック３５０は、テクスチャキャッシュメモリ４１から出力されたテクセルデータ(TDATA(u',v'))を受信して、受信されたテクセルデータをテクスチャフィルタリングして、フィルタリングされたデータをフラグメントシェーダ３０に出力する。アドレス発生ブロック３１０は、テクスチャアドレス発生器(texture address generator)３２０、次のスパン開始テクセルアドレス発生器(next span start texel address generator)３３０、及びテクスチャアドレスステートマシン(texture address state machine)３４０を備える。
【００３３】
テクスチャアドレス発生器３２０は、現在入力されるピクセルに対するテクセル座標を発生する。テクスチャアドレス発生器３２０は、テクスチャフィルタリングのために現在レンダリングが実行されているピクセルに対するテクセルを得るためにテクスチャの大きさ(size)、MIPMAP レベル、テクスチャ貯蔵パターン、そして、テクスチャフィルタリング方法などを考慮してテクセルアドレスを発生する。テクスチャアドレス発生器３２０は、テクスチャアドレスステートマシン３４０の動作を制御するための信号(EN)を発生する。
【００３４】
図４は、図３に図示されたテクスチャユニットが次のスパンの一番目テクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャートである。図５は、ラスタライザで実行される3次元ラスタライゼイションの順序を示す。図３ないし図５を参照すれば、次のスパン開始テクセルアドレス発生器３３０は、現在処理中のスパン(i 番目スパン)の次のスパン((i+1)番目スパン)の開始テクセルの座標(または、アドレス)を発生する。
【００３５】
次のスパン開始テクセルアドレス発生器３３０は、ラスタライザ２０から出力されたまたは、フラグメントシェーダ３０から出力されたフラグメント情報、例えば、ラスタライザ２０で現在処理されているi番目スパンを含む三角形のエッジの傾き(S)とテクスチャ座標をピクセル座標で偏微分した値を受信して(410)、数1に基づいて(i+1)番目スパンの一番目テクセルの座標(u',v')を計算する(420)。
【００３６】
【数１】
2006338658.tif 000003
【００３７】
ここで、u'とv'は (i+1)番目スパンの一番目テクセルの座標で、uとvはラスタライザ２０で現在処理されているi番目スパンのテクセルの座標で、Sは現在処理されているi番目スパンを含む三角形のエッジの傾きで、du/dxはuのx方向の偏微分値、du/dyはuのy方向の偏微分値、dv/dxはvのx方向の偏微分値、dv/dyはvのy方向の偏微分値である。
【００３８】
数１により求められた(i+1)番目スパンの一番目テクセルの座標(u',v')は、テクスチャアドレスステートマシン３４０に伝送される。
【００３９】
テクスチャアドレスステートマシン３４０は、テクスチャアドレス発生器３２０から出力された信号(EN)に応答して、テクスチャキャッシュメモリ４１がヒット状態または、テクスチャキャッシュメモリ４１で何らの動作が起きない時、(i+1)番目スパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ４１に伝送する。
【００４０】
また、テクスチャアドレスステートマシン３４０は、i番目スパンをレンダリングするためのテクセルの座標(u,v)をテクスチャキャッシュメモリ４１に伝送する。テクスチャアドレスステートマシン３４０は、テクスチャキャッシュメモリ４１の動作を制御するコントローラの機能を実行する。
【００４１】
テクスチャアドレスステートマシン３４０は、テクスチャキャッシュメモリ４１の動作状態を検査して(430)、テクスチャキャッシュメモリ４１が外部メモリ装置であるテクスチャメモリ４３をアクセスできる時、次のスパン開始テクセルアドレス発生器３３０から生成された次のスパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ４１に伝送する。現在テクスチャリングされているテクセル座標(u,v)と次のスパンの一番目テクセルの座標(u',v')とは同じタイミングで生成されるが、テクスチャアドレスステートマシン３４０は、テクスチャアドレス発生器３２０から出力された信号(EN)に応答して、現在テクスチャユニット４０が必要とするデータを先に得るために、現在テクスチャリングされているテクセル座標(u,v)に相応するデータを先に処理し、テクスチャキャッシュメモリ４１の状態を検査する。
【００４２】
もし、テクスチャキャッシュメモリ４１がミス(miss)状態である場合、すなわち、テクスチャキャッシュメモリ４１が外部メモリ装置４３をアクセスしている場合には、テクスチャアドレスステートマシン３４０は、次のスパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ４１に伝送しない(440)。しかし、テクスチャキャッシュメモリ４１が外部メモリ装置４３をアクセスしていない場合、すなわち、テクスチャキャッシュメモリ４１がヒット(HIT)状態である場合、または、テクスチャキャッシュメモリ４１が何らの動作をしない状態である場合、テクスチャアドレスステートマシン３４０は、テクスチャキャッシュメモリ４１に次のスパンの一番目テクセルの座標(u',v')を伝送する(450)。
【００４３】
したがって、テクスチャキャッシュメモリ４１は、次のスパンの一番目テクセルの座標(u',v')に相応するデータを外部メモリ装置４３から読取って貯蔵する(460)。
【００４４】
すなわち、ラスタライザ２０によってi番目スパンがレンダリングされる間、テクスチャキャッシュメモリ４１は、(i+1)番目スパンの一番目テクセルの座標に該当するデータを外部メモリ４３からプリフェッチして貯蔵している。したがって、本発明によれば、毎三角形でスパンが変わる度に発生されうるテクスチャキャッシュメモリ４１のミスペナルティ (miss penalty)が減少するので、3次元グラフィックスパイプラインの性能が相当に向上される。
【００４５】
フィルタリングブロック３５０は、テクスチャキャッシュメモリ４１から出力された(i+1)番目スパンの一番目テクセルの座標(u',v')に該当するデータ(TDATA(u',v'))を受信して、受信されたデータ(TDATA(u',v'))をフィルタリングして、一つのピクセルに該当する一つのテクセルを発生して、発生されたテクセルをフラグメントシェーダ３０に出力する。
【００４６】
ここで、テクスチャユニット４０は、該当テクスチャ座標(u,v)に対して少なくとも一つのテクセルをテクスチャキャッシュメモリ４３から読出して、読出されたテクセルをフィルタリングして一つのテクセルを生成する。フラグメントシェーダ３０は、テクスチャブレンディング(texture blending)とフォグブレンディング(fog blending)を実行するブロックである。
【００４７】
図６は、本発明の実施形態によるパーフラグメントユニットのブロック図を示す。図７は、図６に図示されたパーフラグメントユニットが次のスパンの一番目ピクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャートである。
【００４８】
図６及び図７を参照すれば、パーフラグメントユニット５０は、次のスパン開始値アドレス生成器(next span start value address generator)６１０、z-アドレスステートマシン(z(depth) address state machine)６３０、及びカラーアドレスステートマシン(color address state machine)６５０を備える。z-アドレスステートマシン６３０とカラーアドレスステートマシン６５０の各々は、対応するキャッシュメモリ５１と５５の動作を制御するコントローラの機能を実行する。
【００４９】
パーフラグメントユニット５０は、ラスタライザ２０から出力されたフラグメント情報のアルファ値とテクスチャユニット４０によってフィルタリングされたテクセルのアルファ値とをテストする。ここで、アルファ値は透明度を示す値である。z/ステンシルキャッシュメモリ５１とカラーキャッシュメモリ５５の各々は、次のスパンの一番目開始値アドレスに相応するデータを対応する外部メモリ装置５３と５７からプリフェッチする。
【００５０】
次のスパン開始値アドレス生成器６１０は、ラスタライザ２０で現在処理されているi番目スパンを含む三角形のエッジの傾き(S)と現在処理されているi番目スパンのピクセル座標(x,y)を受信して(710)、数2に基づいて現在処理中のスパン(i番目スパン)の次のスパン((i+1)番目スパン)の一番目ピクセルの座標(x',y')を計算する(720)。
【００５１】
【数２】
2006338658.tif 000004
【００５２】
ここで、xとyは現在処理されているi番目スパンのピクセルの座標で、x'とy'は(i+1)番目スパンの一番目ピクセルの座標で、bは定数である。
【００５３】
次のスパン開始値アドレス生成器６１０は、数2に表示された4個の変数の中で3個の変数(S,x,及びy)を既に知っているために、定数bを計算できる。そして、計算された定数bに基づいて(i+1)番目スパンの一番目ピクセルの座標(x',y')を計算する。
【００５４】
z-アドレスステートマシン６３０は、次のスパン開始値アドレス生成器６１０から出力された(i+1)番目スパンの一番目ピクセルの座標(x',y')を受信して、z/ステンシルキャッシュメモリ５１の状態を検査する。
【００５５】
z-アドレスステートマシン６３０は、z/ステンシルキャッシュメモリ５１が外部メモリ装置５３をアクセスするか否かを判断する(730)。
【００５６】
もし、z/ステンシルキャッシュメモリ５１が外部メモリ装置５３をアクセスする場合(例えば、z/ステンシルキャッシュメモリ５１がミス状態である場合)、z-アドレスステートマシン６３０は、次のスパン開始値アドレス生成器６１０から出力された一番目ピクセルの座標(x',y')をz/ステンシルキャッシュメモリ５１に伝送しない(740)。
【００５７】
しかし、z/ステンシルキャッシュメモリ５１が外部メモリ装置５３をアクセスしない場合(例えば、z/ステンシルキャッシュメモリ５１がヒット状態とかz/ステンシルキャッシュメモリ５１が何らの動作をしない場合)、z-アドレスステートマシン６３０は、次のスパン開始値アドレス生成器６１０から生成された一番目ピクセルの座標(x',y')をz/ステンシルキャッシュメモリ５１に出力する(750)。z/ステンシルキャッシュメモリ５１は、一番目ピクセルの座標(x',y')に応答して、一番目ピクセルの座標(x',y')に相応するz/ステンシルデータ(ZDATA(x',y'))を外部メモリ装置５３からプリフェッチする(760)。
【００５８】
カラーアドレスステートマシン６３０は、次のスパン開始値アドレス生成器６１０から出力された(i+1)番目スパンの一番目ピクセルの座標(x',y')を受信して、カラーキャッシュメモリ５５の状態を検査する。カラーアドレスステートマシン６５０は、カラーキャッシュメモリ５５が外部メモリ装置５７をアクセスするか否かを判断する(730)。
【００５９】
もし、カラーキャッシュメモリ５５が外部メモリ装置５７をアクセスする場合(例えば、カラーキャッシュメモリ５５がミス状態である場合)、カラーアドレスステートマシン６５０は、次のスパン開始値アドレス生成器６１０から生成された一番目ピクセルの座標(x',y')をカラーキャッシュメモリ５７に伝送しない(740)。
【００６０】
しかし、カラーキャッシュメモリ５５が外部メモリ装置５７をアクセスしない場合(例えば、カラーキャッシュメモリ５５がヒット状態とかカラーキャッシュメモリ５５が何らの動作をしない場合)、カラーアドレスステートマシン６５０は、次のスパン開始値アドレス生成器６１０から生成された一番目ピクセルの座標(x',y')をカラーキャッシュメモリ５５に出力する(750)。カラーキャッシュメモリ５５は、一番目ピクセルの座標(x',y')に応答して、一番目ピクセルの座標(x',y')に相応するカラーデータ(CDATA(x',y')を外部メモリ装置５７からプリフェッチする(760)。
【００６１】
パーフラグメントユニット５０は、アルファテスト、深み値読み取り演算、z/ステンシルテスト、z/ステンシルテスト実行結果による深み値書き取り演算、カラー値読み取り演算、アルファブレンディングなどを実行する。したがって、本発明によるグラフィックス処理装置(例えば、3次元加速器)は、毎三角形でスパンが変わる度に発生されうるz/ステンシルキャッシュメモリ５１、カラーキャッシュメモリ５５のミスペナルティ(miss penalty)を減少させることができるので、3次元グラフィックスパイプラインの性能が向上する。
【００６２】
本発明の実施形態は、コンピュータシステムで実行できるプログラムで作成可能である。また、プログラムを記録したコンピュータで読むことができる記録媒体から読出された該当プログラムは、デジタルコンピュータシステムで実行されうる。記録媒体には、マグネチック貯蔵媒体(例えば、ロム、フロッピー（登録商標）ディスク、ハードディスクなど)、光学的記録媒体(例えば、シーディーロム、ディーブイディーなど)及びキャリアウエーブ(例えば、インターネットを通じる伝送)のような媒体を含む。本発明は、図面に図示された一実施形態を参考に説明されたが、これは例示的なものに過ぎず、当業者ならばこれより多様な変形及び均等な他の実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、添付した特許請求範囲の技術的思想によって決まるべきである。
【産業上の利用可能性】
【００６３】
本発明は、コンピュータのようなグラフィックス処理装置に適用可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態よる3次元グラフィックスパイプラインの構成図。
【図２】図１に図示された3次元グラフィックスパイプラインで次のスパンのデータをプリフェッチする方法を示すフローチャート。
【図３】本発明の実施形態によるテクスチャユニットのブロック図。
【図４】図３に図示されたテクスチャユニットが次のスパンの一番目テクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャート。
【図５】ラスタライザで実行される3次元ラスタライゼイションの順序を示す図。
【図６】本発明の実施形態によるパーフラグメントユニットのブロック図。
【図７】図６に図示されたパーフラグメントユニットが次のスパンの一番目ピクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャート。
【符号の説明】
【００６５】
１０：3次元グラフィックスパイプライン
２０：ラスタライザ(rasterizer)
３０：フラグメントシェーダ(fragment shader)
４０：テクスチャユニット(texture unit)
４１：テクスチャキャッシュメモリ(texture cache memory)
５０：パーフラグメントユニット(per-fragment unit)
５１：z-キャッシュメモリ
５５：カラーキャッシュメモリ
４３，５３，５７： 外部メモリ装置
３１０：アドレス発生ブロック
３２０：テクスチャアドレス発生器(texture address generator)
３３０：次のスパン開始テクセルアドレス発生器(next span start texel address generator)
３４０：テクスチャアドレスステートマシン(texture address state machine)
３５０：フィルタリングブロック
６１０：次のスパン開始値アドレス生成器(next span start value address generator)
６３０：z-アドレスステートマシン(z(depth) address state machine)
６５０：カラーアドレスステートマシン(color address state machine)
【図１】
2006338658.tif 000005
【図２】
2006338658.tif 000006
【図３】
2006338658.tif 000007
【図４】
2006338658.tif 000008
【図５】
2006338658.tif 000009
【図６】
2006338658.tif 000010
【図７】
2006338658.tif 000011