JP2006338658A - グラフィックス処理装置と処理方法、及びその記録媒体 - Google Patents
グラフィックス処理装置と処理方法、及びその記録媒体 Download PDFInfo
- Publication number
- JP2006338658A JP2006338658A JP2006130639A JP2006130639A JP2006338658A JP 2006338658 A JP2006338658 A JP 2006338658A JP 2006130639 A JP2006130639 A JP 2006130639A JP 2006130639 A JP2006130639 A JP 2006130639A JP 2006338658 A JP2006338658 A JP 2006338658A
- Authority
- JP
- Japan
- Prior art keywords
- span
- data
- coordinates
- cache memory
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】グラフィックス(graphics)処理装置と処理方法、及びその記録媒体を提供する。
【解決手段】グラフィックス処理装置は、i(iは自然数)番目スパンのデータをレンダリングしながらフラグメント情報を出力するラスタライザとラスタライザから出力されたフラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサとプロセッサから出力された前記計算された座標に相応し、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリとを備える。また、グラフィックス処理装置は、現在スパンのデータを処理する段階と処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階とを備える。したがって、毎三角形ごとにスパンが変わる度に発生されるキャッシュミスを減少させることができるので、グラフィックス処理装置の性能が向上する。
【選択図】図1
【解決手段】グラフィックス処理装置は、i(iは自然数)番目スパンのデータをレンダリングしながらフラグメント情報を出力するラスタライザとラスタライザから出力されたフラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサとプロセッサから出力された前記計算された座標に相応し、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリとを備える。また、グラフィックス処理装置は、現在スパンのデータを処理する段階と処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階とを備える。したがって、毎三角形ごとにスパンが変わる度に発生されるキャッシュミスを減少させることができるので、グラフィックス処理装置の性能が向上する。
【選択図】図1
Description
本発明は、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次元グラフィックスパイプラインの性能が向上する。
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を充分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載された内容を参照しなければならない。以下、添付した図面を参照して本発明の望ましい実施形態を説明することで、本発明を詳細に説明する。各図面に付された同一の参照符号は同一の部材を示す。
図1は、本発明の一実施形態による3次元グラフィックスパイプラインの構成図を示す。図1を参照すれば、3次元グラフィックスパイプライン(グラフィックス処理装置、または、コンピュータ)10は、ラスタライザ(rasterizer)20、フラグメントシェーダ(fragment shader)30、テクスチャユニット(texture unit)40、テクスチャキャッシュメモリ(texture cache memory)41、パーフラグメントユニット(per-fragment unit)50、z-キャッシュメモリ51、及びカラーキャッシュメモリ55を備える。各キャッシュメモリ41、51、及び55は、対応するプロセッサ40と50から生成された座標(または、アドレス)に基づいて対応する外部メモリ装置43、53、及び57からデータを読取る。
ラスタライザ20は、三角形の頂点の座標に対する情報(VDATA)を受信して、図5に図示したように、三角形内に含まれたスパンを順次的にレンダリングして、フラグメント情報(または、現在処理中のスパンのデータに連関する情報)をフラグメントシェーダ30に出力する。具現方式によっては、ラスタライザ20は、フラグメント情報をテクスチャユニット40とパーフラグメントユニット50とに直接出力できる。フラグメントシェーダ30は、OpenGLシェーディング言語で作成されたプログラムを意味し、フラグメントプロセッサとも言う。
フラグメント情報は、補間を通じて生成されたカラー値、ピクセル座標(x,y)、z(深み)値、テクスチャ座標(u,v)、三角形のエッジの傾き、テクスチャ座標をピクセル座標で偏微分した値などを含む。
すなわち、ラスタライザ20は、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)、カラー値、深み値、などに対する情報をフラグメントシェーダ30に出力する。
図2は、本発明の実施形態による3次元グラフィックスパイプラインで次のスパンのデータをプリフェッチする方法を示すフローチャートである。
図1と図2を参照すれば、各プロセッサ40と50は、ラスタライザ20が i番目スパンのデータを処理する間に、ラスタライザ20から出力された対応するフラグメント情報を受信して、受信したフラグメント情報に基づいて(i+1)番目スパンの一番目データの座標(座標を'アドレス'とも言う)を計算する(210)。
各キャッシュメモリ41、51、及び55は、テクスチャユニット40とパーフラグメントユニット50の各々から出力された(i+1)番目スパンの一番目データの座標に相応するデータを対応する外部メモリ装置43、53、及び57からプリフェッチする(220)。
すなわち、本発明によるグラフィックス処理装置10は、i番目スパンのデータを処理する間、(i+1)番目スパンの一番目データ(例えば、テクセル、または、ピクセル)の座標に相応するデータを外部メモリ装置からあらかじめ読取ってキャッシュメモリに貯蔵する。
図3は、本発明の実施形態によるテクスチャユニットのブロック図を示す。図3を参照すれば、テクスチャユニット40は、アドレス発生ブロック310とフィルタリングブロック350とを備える。アドレス発生ブロック310は、3次元グラフィックスパイプラインのラスタライザ20から出力された所定のフラグメント情報に応答して、現在処理されているスパンのピクセルのテクスチャ座標と次のスパンの一番目テクセルの座標とを発生して、テクスチャキャッシュメモリ41とインターフェースする。
フィルタリングブロック350は、テクスチャキャッシュメモリ41から出力されたテクセルデータ(TDATA(u',v'))を受信して、受信されたテクセルデータをテクスチャフィルタリングして、フィルタリングされたデータをフラグメントシェーダ30に出力する。アドレス発生ブロック310は、テクスチャアドレス発生器(texture address generator)320、次のスパン開始テクセルアドレス発生器(next span start texel address generator)330、及びテクスチャアドレスステートマシン(texture address state machine)340を備える。
テクスチャアドレス発生器320は、現在入力されるピクセルに対するテクセル座標を発生する。テクスチャアドレス発生器320は、テクスチャフィルタリングのために現在レンダリングが実行されているピクセルに対するテクセルを得るためにテクスチャの大きさ(size)、MIPMAP レベル、テクスチャ貯蔵パターン、そして、テクスチャフィルタリング方法などを考慮してテクセルアドレスを発生する。テクスチャアドレス発生器320は、テクスチャアドレスステートマシン340の動作を制御するための信号(EN)を発生する。
図4は、図3に図示されたテクスチャユニットが次のスパンの一番目テクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャートである。図5は、ラスタライザで実行される3次元ラスタライゼイションの順序を示す。図3ないし図5を参照すれば、次のスパン開始テクセルアドレス発生器330は、現在処理中のスパン(i 番目スパン)の次のスパン((i+1)番目スパン)の開始テクセルの座標(または、アドレス)を発生する。
次のスパン開始テクセルアドレス発生器330は、ラスタライザ20から出力されたまたは、フラグメントシェーダ30から出力されたフラグメント情報、例えば、ラスタライザ20で現在処理されているi番目スパンを含む三角形のエッジの傾き(S)とテクスチャ座標をピクセル座標で偏微分した値を受信して(410)、数1に基づいて(i+1)番目スパンの一番目テクセルの座標(u',v')を計算する(420)。
ここで、u'とv'は (i+1)番目スパンの一番目テクセルの座標で、uとvはラスタライザ20で現在処理されているi番目スパンのテクセルの座標で、Sは現在処理されているi番目スパンを含む三角形のエッジの傾きで、du/dxはuのx方向の偏微分値、du/dyはuのy方向の偏微分値、dv/dxはvのx方向の偏微分値、dv/dyはvのy方向の偏微分値である。
数1により求められた(i+1)番目スパンの一番目テクセルの座標(u',v')は、テクスチャアドレスステートマシン340に伝送される。
テクスチャアドレスステートマシン340は、テクスチャアドレス発生器320から出力された信号(EN)に応答して、テクスチャキャッシュメモリ41がヒット状態または、テクスチャキャッシュメモリ41で何らの動作が起きない時、(i+1)番目スパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ41に伝送する。
また、テクスチャアドレスステートマシン340は、i番目スパンをレンダリングするためのテクセルの座標(u,v)をテクスチャキャッシュメモリ41に伝送する。テクスチャアドレスステートマシン340は、テクスチャキャッシュメモリ41の動作を制御するコントローラの機能を実行する。
テクスチャアドレスステートマシン340は、テクスチャキャッシュメモリ41の動作状態を検査して(430)、テクスチャキャッシュメモリ41が外部メモリ装置であるテクスチャメモリ43をアクセスできる時、次のスパン開始テクセルアドレス発生器330から生成された次のスパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ41に伝送する。現在テクスチャリングされているテクセル座標(u,v)と次のスパンの一番目テクセルの座標(u',v')とは同じタイミングで生成されるが、テクスチャアドレスステートマシン340は、テクスチャアドレス発生器320から出力された信号(EN)に応答して、現在テクスチャユニット40が必要とするデータを先に得るために、現在テクスチャリングされているテクセル座標(u,v)に相応するデータを先に処理し、テクスチャキャッシュメモリ41の状態を検査する。
もし、テクスチャキャッシュメモリ41がミス(miss)状態である場合、すなわち、テクスチャキャッシュメモリ41が外部メモリ装置43をアクセスしている場合には、テクスチャアドレスステートマシン340は、次のスパンの一番目テクセルの座標(u',v')をテクスチャキャッシュメモリ41に伝送しない(440)。しかし、テクスチャキャッシュメモリ41が外部メモリ装置43をアクセスしていない場合、すなわち、テクスチャキャッシュメモリ41がヒット(HIT)状態である場合、または、テクスチャキャッシュメモリ41が何らの動作をしない状態である場合、テクスチャアドレスステートマシン340は、テクスチャキャッシュメモリ41に次のスパンの一番目テクセルの座標(u',v')を伝送する(450)。
したがって、テクスチャキャッシュメモリ41は、次のスパンの一番目テクセルの座標(u',v')に相応するデータを外部メモリ装置43から読取って貯蔵する(460)。
すなわち、ラスタライザ20によってi番目スパンがレンダリングされる間、テクスチャキャッシュメモリ41は、(i+1)番目スパンの一番目テクセルの座標に該当するデータを外部メモリ43からプリフェッチして貯蔵している。したがって、本発明によれば、毎三角形でスパンが変わる度に発生されうるテクスチャキャッシュメモリ41のミスペナルティ (miss penalty)が減少するので、3次元グラフィックスパイプラインの性能が相当に向上される。
フィルタリングブロック350は、テクスチャキャッシュメモリ41から出力された(i+1)番目スパンの一番目テクセルの座標(u',v')に該当するデータ(TDATA(u',v'))を受信して、受信されたデータ(TDATA(u',v'))をフィルタリングして、一つのピクセルに該当する一つのテクセルを発生して、発生されたテクセルをフラグメントシェーダ30に出力する。
ここで、テクスチャユニット40は、該当テクスチャ座標(u,v)に対して少なくとも一つのテクセルをテクスチャキャッシュメモリ43から読出して、読出されたテクセルをフィルタリングして一つのテクセルを生成する。フラグメントシェーダ30は、テクスチャブレンディング(texture blending)とフォグブレンディング(fog blending)を実行するブロックである。
図6は、本発明の実施形態によるパーフラグメントユニットのブロック図を示す。図7は、図6に図示されたパーフラグメントユニットが次のスパンの一番目ピクセルの座標を計算して、計算された一番目座標に相応するデータをプリフェッチする方法を示すフローチャートである。
図6及び図7を参照すれば、パーフラグメントユニット50は、次のスパン開始値アドレス生成器(next span start value address generator)610、z-アドレスステートマシン(z(depth) address state machine)630、及びカラーアドレスステートマシン(color address state machine)650を備える。z-アドレスステートマシン630とカラーアドレスステートマシン650の各々は、対応するキャッシュメモリ51と55の動作を制御するコントローラの機能を実行する。
パーフラグメントユニット50は、ラスタライザ20から出力されたフラグメント情報のアルファ値とテクスチャユニット40によってフィルタリングされたテクセルのアルファ値とをテストする。ここで、アルファ値は透明度を示す値である。z/ステンシルキャッシュメモリ51とカラーキャッシュメモリ55の各々は、次のスパンの一番目開始値アドレスに相応するデータを対応する外部メモリ装置53と57からプリフェッチする。
次のスパン開始値アドレス生成器610は、ラスタライザ20で現在処理されているi番目スパンを含む三角形のエッジの傾き(S)と現在処理されているi番目スパンのピクセル座標(x,y)を受信して(710)、数2に基づいて現在処理中のスパン(i番目スパン)の次のスパン((i+1)番目スパン)の一番目ピクセルの座標(x',y')を計算する(720)。
ここで、xとyは現在処理されているi番目スパンのピクセルの座標で、x'とy'は(i+1)番目スパンの一番目ピクセルの座標で、bは定数である。
次のスパン開始値アドレス生成器610は、数2に表示された4個の変数の中で3個の変数(S,x,及びy)を既に知っているために、定数bを計算できる。そして、計算された定数bに基づいて(i+1)番目スパンの一番目ピクセルの座標(x',y')を計算する。
z-アドレスステートマシン630は、次のスパン開始値アドレス生成器610から出力された(i+1)番目スパンの一番目ピクセルの座標(x',y')を受信して、z/ステンシルキャッシュメモリ51の状態を検査する。
z-アドレスステートマシン630は、z/ステンシルキャッシュメモリ51が外部メモリ装置53をアクセスするか否かを判断する(730)。
もし、z/ステンシルキャッシュメモリ51が外部メモリ装置53をアクセスする場合(例えば、z/ステンシルキャッシュメモリ51がミス状態である場合)、z-アドレスステートマシン630は、次のスパン開始値アドレス生成器610から出力された一番目ピクセルの座標(x',y')をz/ステンシルキャッシュメモリ51に伝送しない(740)。
しかし、z/ステンシルキャッシュメモリ51が外部メモリ装置53をアクセスしない場合(例えば、z/ステンシルキャッシュメモリ51がヒット状態とかz/ステンシルキャッシュメモリ51が何らの動作をしない場合)、z-アドレスステートマシン630は、次のスパン開始値アドレス生成器610から生成された一番目ピクセルの座標(x',y')をz/ステンシルキャッシュメモリ51に出力する(750)。z/ステンシルキャッシュメモリ51は、一番目ピクセルの座標(x',y')に応答して、一番目ピクセルの座標(x',y')に相応するz/ステンシルデータ(ZDATA(x',y'))を外部メモリ装置53からプリフェッチする(760)。
カラーアドレスステートマシン630は、次のスパン開始値アドレス生成器610から出力された(i+1)番目スパンの一番目ピクセルの座標(x',y')を受信して、カラーキャッシュメモリ55の状態を検査する。カラーアドレスステートマシン650は、カラーキャッシュメモリ55が外部メモリ装置57をアクセスするか否かを判断する(730)。
もし、カラーキャッシュメモリ55が外部メモリ装置57をアクセスする場合(例えば、カラーキャッシュメモリ55がミス状態である場合)、カラーアドレスステートマシン650は、次のスパン開始値アドレス生成器610から生成された一番目ピクセルの座標(x',y')をカラーキャッシュメモリ57に伝送しない(740)。
しかし、カラーキャッシュメモリ55が外部メモリ装置57をアクセスしない場合(例えば、カラーキャッシュメモリ55がヒット状態とかカラーキャッシュメモリ55が何らの動作をしない場合)、カラーアドレスステートマシン650は、次のスパン開始値アドレス生成器610から生成された一番目ピクセルの座標(x',y')をカラーキャッシュメモリ55に出力する(750)。カラーキャッシュメモリ55は、一番目ピクセルの座標(x',y')に応答して、一番目ピクセルの座標(x',y')に相応するカラーデータ(CDATA(x',y')を外部メモリ装置57からプリフェッチする(760)。
パーフラグメントユニット50は、アルファテスト、深み値読み取り演算、z/ステンシルテスト、z/ステンシルテスト実行結果による深み値書き取り演算、カラー値読み取り演算、アルファブレンディングなどを実行する。したがって、本発明によるグラフィックス処理装置(例えば、3次元加速器)は、毎三角形でスパンが変わる度に発生されうるz/ステンシルキャッシュメモリ51、カラーキャッシュメモリ55のミスペナルティ(miss penalty)を減少させることができるので、3次元グラフィックスパイプラインの性能が向上する。
本発明の実施形態は、コンピュータシステムで実行できるプログラムで作成可能である。また、プログラムを記録したコンピュータで読むことができる記録媒体から読出された該当プログラムは、デジタルコンピュータシステムで実行されうる。記録媒体には、マグネチック貯蔵媒体(例えば、ロム、フロッピー(登録商標)ディスク、ハードディスクなど)、光学的記録媒体(例えば、シーディーロム、ディーブイディーなど)及びキャリアウエーブ(例えば、インターネットを通じる伝送)のような媒体を含む。本発明は、図面に図示された一実施形態を参考に説明されたが、これは例示的なものに過ぎず、当業者ならばこれより多様な変形及び均等な他の実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、添付した特許請求範囲の技術的思想によって決まるべきである。
本発明は、コンピュータのようなグラフィックス処理装置に適用可能である。
10:3次元グラフィックスパイプライン
20:ラスタライザ(rasterizer)
30:フラグメントシェーダ(fragment shader)
40:テクスチャユニット(texture unit)
41:テクスチャキャッシュメモリ(texture cache memory)
50:パーフラグメントユニット(per-fragment unit)
51:z-キャッシュメモリ
55:カラーキャッシュメモリ
43,53,57: 外部メモリ装置
310:アドレス発生ブロック
320:テクスチャアドレス発生器(texture address generator)
330:次のスパン開始テクセルアドレス発生器(next span start texel address generator)
340:テクスチャアドレスステートマシン(texture address state machine)
350:フィルタリングブロック
610:次のスパン開始値アドレス生成器(next span start value address generator)
630:z-アドレスステートマシン(z(depth) address state machine)
650:カラーアドレスステートマシン(color address state machine)
20:ラスタライザ(rasterizer)
30:フラグメントシェーダ(fragment shader)
40:テクスチャユニット(texture unit)
41:テクスチャキャッシュメモリ(texture cache memory)
50:パーフラグメントユニット(per-fragment unit)
51:z-キャッシュメモリ
55:カラーキャッシュメモリ
43,53,57: 外部メモリ装置
310:アドレス発生ブロック
320:テクスチャアドレス発生器(texture address generator)
330:次のスパン開始テクセルアドレス発生器(next span start texel address generator)
340:テクスチャアドレスステートマシン(texture address state machine)
350:フィルタリングブロック
610:次のスパン開始値アドレス生成器(next span start value address generator)
630:z-アドレスステートマシン(z(depth) address state machine)
650:カラーアドレスステートマシン(color address state machine)
Claims (25)
- コンピュータグラフィックスデータの処理方法において、
第i(iは自然数)番目スパンのデータを処理する段階と、
前記第i番目スパンのデータが処理される間に、第(i+1)番目スパンの一番目データの座標に相応するデータを外部メモリ装置からキャッシュメモリにプリフェッチする段階と、を備えることを特徴とするコンピュータグラフィックスデータの処理方法。 - 前記プリフェッチする段階は、
ラスタライザが前記第i番目スパンのデータを処理する間に、前記ラスタライザから出力されたフラグメント情報に基づいて前記第(i+1)番目スパンの一番目データの前記座標を計算する段階と、
前記計算された座標に相応するデータを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備えることを特徴とする請求項1に記載のコンピュータグラフィックスデータの処理方法。 - 前記第(i+1)番目スパンの一番目データの座標を計算する段階は、
前記第i番目スパンを含む三角形のエッジの傾き、及び前記第i番目スパンのテクスチャ座標をピクセル座標で偏微分した値を求める段階と、
前記偏微分した値に基づいて前記第(i+1)番目スパンの一番目テクセルの座標を計算する段階と、を備えることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。 - 前記第(i+1)番目スパンの一番目データの座標を計算する段階は、前記第(i+1)番目スパンの一番目テクセルの座標値、一番目スパンのテクセルの座標値、一番目スパンを含む三角形のエッジの傾き、第(i+1)番目スパンの一番目テクセルの座標値を偏微分して獲得された偏微分値、及び前記第iスパンのテクセルの座標値に基づいて前記第(i+1)番目の一番目ピクセル座標を計算する段階であることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。
- 前記第(i+1)番目スパンの一番目データの座標を計算する段階は、前記第i番目スパンを含む三角形のエッジの傾きと前記第i番目スパンのピクセル座標とに基づいて前記第(i+1)番目スパンの一番目ピクセルの座標を計算する段階であることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。
- 前記第(i+1)番目スパンの一番目データの座標は、前記第i番目スパンのピクセルの座標値、第(i+1)番目スパンの一番目ピクセルの座標値、及び定数に基づいて計算されることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。
- 前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階は、
前記キャッシュメモリが、前記外部メモリ装置をアクセスするか否かを判断する段階と、
前記判断結果に基づいて前記計算された座標を前記外部メモリ装置に出力する段階と、
前記計算された座標に相応する前記データを前記外部メモリ装置から前記キャッシュメモリに読取る段階と、を備えることを特徴とする請求項2に記載のコンピュータグラフィックスデータの処理方法。 - 請求項1ないし請求項7中の何れか一項に記載された方法を遂行するためのプログラムを記録したコンピュータで読むことができる記録媒体。
- グラフィックス処理装置において、
i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、
前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データの座標を計算して、計算された座標を出力するためのプロセッサと、を備えることを特徴とするグラフィックス処理装置。 - 前記グラフィックス処理装置は、前記プロセッサから出力された前記計算された座標に応じて、外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリをさらに備えることを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記フラグメント情報が現在レンダリングされている前記i番目スパンを含む三角形のエッジの傾き、及びテクスチャ座標をピクセル座標で偏微分した値である場合、前記プロセッサは前記三角形のエッジの傾き、及び前記テクスチャ座標を前記ピクセル座標で偏微分した値に基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項10に記載のグラフィックス処理装置。
- 前記プロセッサは、前記(i+1)番目スパンの一番目テクセルの座標値、前記i番目スパンのテクセルの座標値、前記三角形のエッジの傾き、及び前記偏微分値に基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項11に記載のグラフィックス処理装置。
- 前記プロセッサは、
前記フラグメント情報に基づいて前記(i+1)番目スパンの一番目データの座標を計算するためのアドレス発生器と、
前記アドレス発生器から出力された座標を受信して、前記キャッシュメモリの動作状態を監視して、監視結果に基づいて前記受信された座標を前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とする請求項10に記載のグラフィックス処理装置。 - 前記コントローラは、前記キャッシュメモリがヒット状態または動作しない状態の時、前記受信された座標を前記キャッシュメモリに伝送することを特徴とする請求項13に記載のグラフィックス処理装置。
- 前記プロセッサは、前記i番目スパンを含む三角形のエッジの傾きと前記i番目スパンのピクセル座標とに基づいて前記(i+1)番目スパンの一番目ピクセルの座標を計算することを特徴とする請求項9に記載のグラフィックス処理装置。
- グラフィックス処理装置のプロセッサにおいて、
現在処理されている(i)番目スパンを含む三角形のエッジの傾き、及びテクスチャ座標をピクセル座標で偏微分した値を受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力された前記(i+1)番目スパンの一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とするグラフィックス処理装置のプロセッサ。 - 前記コントローラは、
前記キャッシュメモリから出力されたヒット状態を表す信号、または前記キャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目テクセルのアドレスを前記キャッシュメモリに出力することを特徴とする請求項16に記載のグラフィックス処理装置のプロセッサ。 - グラフィックス処理装置のプロセッサにおいて、
現在処理されているi番目スパンを含む三角形のエッジの傾きとピクセル座標とを受信して、これらに基づいて(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力された前記(i+1)番目スパンの一番目データのアドレスを受信して、キャッシュメモリの動作状態を監視して、監視結果に基づいて受信された一番目データのアドレスに相応するデータを外部メモリ装置から前記キャッシュメモリにプリフェッチするために受信された一番目データのアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とするグラフィックス処理装置のプロセッサ。 - 前記キャッシュメモリがz/ステンシルキャッシュメモリである場合、
前記コントローラは、前記 z/ステンシルキャッシュメモリの動作状態を監視して、前記 z/ステンシルキャッシュメモリから出力されたヒット状態を表す信号、または前記z/ステンシルキャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目ピクセルの座標を前記z/ステンシルキャッシュメモリに出力することを特徴とする請求項18に記載のグラフィックス処理装置のプロセッサ。 - 前記キャッシュメモリがカラーキャッシュメモリである場合、前記コントローラは前記カラーキャッシュメモリの動作状態を監視して、前記カラーキャッシュメモリから出力されたヒット状態を表す信号、または前記カラーキャッシュメモリが動作しない状態を表す信号に応答して、前記(i+1)番目スパンの一番目ピクセルの座標を前記カラーキャッシュメモリに出力することを特徴とする請求項18に記載のグラフィックス処理装置のプロセッサ。
- コンピュータにおいて、
i(iは自然数)番目スパン(span)のデータをレンダリングしながらフラグメント情報を出力するラスタライザと、
前記ラスタライザから出力された前記フラグメント情報に基づいて(i+1)番目スパンの一番目データのアドレスを計算して、計算されたアドレスを出力するためのプロセッサと、
外部メモリ装置と、
前記プロセッサから出力されたアドレスに応じて、前記外部メモリ装置からプリフェッチされたデータを貯蔵するためのキャッシュメモリと、を備えることを特徴とするコンピュータ。 - 前記プロセッサは、
前記フラグメント情報に基づいて前記(i+1)番目スパンの一番目データのアドレスを計算するためのアドレス発生器と、
前記アドレス発生器から出力されたアドレスを受信して、前記キャッシュメモリの動作状態を監視して、監視結果に基づいて前記受信されたアドレスを前記キャッシュメモリに伝送するためのコントローラと、を備えることを特徴とする請求項21に記載のコンピュータ。 - 前記ラスタライザが現在レンダリングされている前記i)番目スパンを含む三角形のエッジの傾きとテクスチャ座標とをピクセル座標で偏微分した値を前記フラグメント情報として出力する場合、前記プロセッサは、前記三角形のエッジの傾きと前記テクスチャ座標をピクセル座標で偏微分した値とに基づいて前記(i+1)番目スパンの一番目テクセルの座標を計算することを特徴とする請求項21に記載のコンピュータ。
- 前記ラスタライザが現在レンダリングされている前記i番目スパンを含む三角形のエッジの傾きとピクセルの座標とを前記フラグメント情報として出力する場合、前記プロセッサは、前記三角形のエッジの傾きと前記ピクセル座標とに基づいて前記(i+1)番目スパンの一番目ピクセルの座標を計算することを特徴とする請求項21に記載のコンピュータ。
- グラフィックス処理装置のデータ処理方法において、
現在スパンのデータを処理する段階と、
処理中のデータに連関する情報に基づいて次のスパンの開始データのアドレスに相応するデータを外部メモリ装置からプリフェッチしてキャッシュメモリに貯蔵する段階と、を備えることを特徴とするグラフィックス処理装置のデータ処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050047219A KR100703709B1 (ko) | 2005-06-02 | 2005-06-02 | 그래픽스 처리장치와 처리방법, 및 그 기록 매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006338658A true JP2006338658A (ja) | 2006-12-14 |
Family
ID=37493672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006130639A Pending JP2006338658A (ja) | 2005-06-02 | 2006-05-09 | グラフィックス処理装置と処理方法、及びその記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7551178B2 (ja) |
JP (1) | JP2006338658A (ja) |
KR (1) | KR100703709B1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014515856A (ja) * | 2011-04-13 | 2014-07-03 | クゥアルコム・インコーポレイテッド | グラフィック処理のためのピクセル値圧縮 |
JP2014529143A (ja) * | 2011-09-12 | 2014-10-30 | 株式会社ソニー・コンピュータエンタテインメント | テクスチャ座標導関数を用いた高速化テクスチャ検索 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005100176A (ja) * | 2003-09-25 | 2005-04-14 | Sony Corp | 画像処理装置およびその方法 |
FR2902906A1 (fr) * | 2006-06-21 | 2007-12-28 | St Microelectronics Sa | Gestion de donnes pour un traitement d'images |
KR20080014402A (ko) * | 2006-08-11 | 2008-02-14 | 삼성전자주식회사 | 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치 |
KR101517465B1 (ko) | 2007-12-07 | 2015-05-04 | 삼성전자주식회사 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
JP2010086008A (ja) * | 2008-09-29 | 2010-04-15 | Fujitsu Microelectronics Ltd | 半導体装置、グラフィクスコントローラ、及び情報処理方法 |
KR20120066305A (ko) * | 2010-12-14 | 2012-06-22 | 한국전자통신연구원 | 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법 |
KR102048885B1 (ko) | 2013-05-09 | 2019-11-26 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법 |
KR102188543B1 (ko) | 2014-02-07 | 2020-12-08 | 삼성전자주식회사 | 그래픽 처리 장치 |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
CN109461113B (zh) * | 2018-10-11 | 2021-07-16 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05120438A (ja) | 1991-08-09 | 1993-05-18 | Sony Corp | 描画処理装置 |
KR100243179B1 (ko) * | 1994-06-30 | 2000-02-01 | 윤종용 | 그래픽 시스템의 신호처리방법 및 장치 |
KR0165464B1 (ko) * | 1995-10-31 | 1999-01-15 | 김광호 | 그래픽을 위한 스팬렌더링방법 및 장치 |
KR100221028B1 (ko) | 1996-07-23 | 1999-09-15 | 윤종용 | 그래픽 가속기 및 이를 이용한 메모리 프리패치 방법 |
US5905500A (en) * | 1997-02-19 | 1999-05-18 | Seiko Epson Corporation | Method and apparatus for adaptive nonlinear projective rendering |
US6154216A (en) * | 1997-04-30 | 2000-11-28 | Ati Technologies | Method and apparatus for decompression of a two dimensional video texture map |
US6347344B1 (en) * | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
US6445386B1 (en) * | 1999-01-15 | 2002-09-03 | Intel Corporation | Method and apparatus for stretch blitting using a 3D pipeline |
KR100291628B1 (ko) | 1999-06-19 | 2001-05-15 | 윤덕용 | 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법 |
US6433789B1 (en) * | 2000-02-18 | 2002-08-13 | Neomagic Corp. | Steaming prefetching texture cache for level of detail maps in a 3D-graphics engine |
KR100693134B1 (ko) * | 2005-04-12 | 2007-03-13 | 노키아 코포레이션 | 3차원 이미지 처리 |
-
2005
- 2005-06-02 KR KR1020050047219A patent/KR100703709B1/ko active IP Right Grant
-
2006
- 2006-03-02 US US11/365,600 patent/US7551178B2/en active Active
- 2006-05-09 JP JP2006130639A patent/JP2006338658A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014515856A (ja) * | 2011-04-13 | 2014-07-03 | クゥアルコム・インコーポレイテッド | グラフィック処理のためのピクセル値圧縮 |
JP2014529143A (ja) * | 2011-09-12 | 2014-10-30 | 株式会社ソニー・コンピュータエンタテインメント | テクスチャ座標導関数を用いた高速化テクスチャ検索 |
Also Published As
Publication number | Publication date |
---|---|
KR100703709B1 (ko) | 2007-04-06 |
KR20060125269A (ko) | 2006-12-06 |
US20060274077A1 (en) | 2006-12-07 |
US7551178B2 (en) | 2009-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006338658A (ja) | グラフィックス処理装置と処理方法、及びその記録媒体 | |
US7042462B2 (en) | Pixel cache, 3D graphics accelerator using the same, and method therefor | |
US8704826B1 (en) | Primitive re-ordering between world-space and screen-space pipelines with buffer limited processing | |
US7705846B1 (en) | Processing high numbers of independent textures in a 3-D graphics pipeline | |
US9134954B2 (en) | GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault | |
US9342919B2 (en) | Image rendering apparatus and method for preventing pipeline stall using a buffer memory unit and a processor | |
JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
US7999819B2 (en) | Systems and methods for managing texture descriptors in a shared texture engine | |
US7898551B2 (en) | Systems and methods for performing a bank swizzle operation to reduce bank collisions | |
US20110254852A1 (en) | Demand based texture rendering in a tile based rendering system | |
JP2008533628A (ja) | タイル化されたプリフェッチ及びキャッシングされたデプスバッファ | |
WO2013101150A1 (en) | A sort-based tiled deferred shading architecture for decoupled sampling | |
KR20190078086A (ko) | 프리페칭된 그래픽스 데이터를 이용하여 타일 기반 렌더링을 수행하는 방법 및 장치 | |
TW201142743A (en) | Image processing techniques | |
KR20180023856A (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
KR20110016938A (ko) | 기하 셰이더를 사용하는 테셀레이션 엔진을 위한 시스템, 방법, 및 컴퓨터 프로그램 제품 | |
US10417736B2 (en) | Graphics processing unit and method of controlling cache bypass thereof | |
US7106336B1 (en) | Method and system for deferred evaluation of transforms in graphics processors | |
US8508544B1 (en) | Small primitive detection to optimize compression and decompression in a graphics processor | |
EP4268178A1 (en) | Selective generation of miss requests for cache lines | |
WO2022047136A1 (en) | Shader core instruction to invoke depth culling | |
US20200159664A1 (en) | Low latency dirty ram for cache invalidation speed improvement | |
JP4784446B2 (ja) | 画像処理装置 | |
KR100817237B1 (ko) | 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법 | |
Fries et al. | A Modular 3D Graphics Accelerator for FPGA |