JP5311491B2 - グラフィクス頂点処理装置およびグラフィクス頂点処理方法 - Google Patents

グラフィクス頂点処理装置およびグラフィクス頂点処理方法 Download PDF

Info

Publication number
JP5311491B2
JP5311491B2 JP2009261561A JP2009261561A JP5311491B2 JP 5311491 B2 JP5311491 B2 JP 5311491B2 JP 2009261561 A JP2009261561 A JP 2009261561A JP 2009261561 A JP2009261561 A JP 2009261561A JP 5311491 B2 JP5311491 B2 JP 5311491B2
Authority
JP
Japan
Prior art keywords
microcode
instruction
instruction sequence
vertex
vertex processing
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.)
Expired - Fee Related
Application number
JP2009261561A
Other languages
English (en)
Other versions
JP2011107931A (ja
Inventor
史晃 岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solution Innovators Ltd
Original Assignee
NEC System Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2009261561A priority Critical patent/JP5311491B2/ja
Priority to US13/510,233 priority patent/US20120229482A1/en
Priority to EP10831597.9A priority patent/EP2503512B1/en
Priority to PCT/JP2010/070510 priority patent/WO2011062203A1/ja
Publication of JP2011107931A publication Critical patent/JP2011107931A/ja
Application granted granted Critical
Publication of JP5311491B2 publication Critical patent/JP5311491B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Description

本発明は、コンピュータグラフィクスにおいて、ポリゴンなどの頂点に関する演算を行うグラフィクス頂点処理装置およびグラフィクス頂点処理方法に関する。より詳しくは、マイクロコード制御によるグラフィクス頂点処理装置およびグラフィクス頂点処理方法に関する。
コンピュータグラフィクスの描画処理において、例えば3Dの画像では対象の表面を多数のポリゴンに分割し、ポリゴンの頂点の表示画面上の座標を計算するなどの頂点処理を行う。頂点処理とは座標演算の外にライティング演算、テクスチャ座標の算出、フォグ座標の生成およびポイントサイズの生成等を含む。座標演算は、例えば3次元の構造を表示する視点の移動と、表示する対象の物体の動きに伴って発生する。その他、例えばライティング演算は、各頂点のディフューズ(diffuse:光の拡散)成分とスペキュラ(specular:光の反射)成分を決定する。画像を滑らかに表示するために対象の表面を細かく分割すると、頂点処理の演算は幾何級数的に増加する。
頂点処理を行うグラフィクス頂点処理装置は、固定パイプラインによる構成とマイクロコード制御による構成に大別される。固定パイプラインによる方法は、特定の処理に対して高速に演算可能であるが、機能が固定されるため、その処理しか行えない。一方、マイクロコードによる方法は、プログラムによって処理を変えることができるため、自由な頂点処理が可能であるが、命令シーケンス内のデータ依存性により、演算器使用率が低下しやすい。
特許文献1は、2個又はそれ以上の命令を実行時に先立って並列実行するためにグループ化するスケール化可能な複合命令集合マシンにおけるマイクロコードの生成装置を提供する。特許文献1の命令群用マイクロコード生成装置では、スケール化可能な複合命令集合マシンにおけるマイクロコード生成器は、2個またはそれ以上の隣接する命令が並列に処理されるべきことを示す複合化情報に応答して動作する。個別の独立したマイクロコードは、グループ内の各々の可能な命令について制御記憶装置内に保持される。並行して実行されるべき命令群の各命令に対するマイクロコードシーケンスは、複合化情報に応答して単一のマイクロ命令シーケンスに併合装置で併合される。
頂点処理に関して、例えば特許文献2の頂点処理ユニットは、レンダリングされたイメージを定義するために使用されるレンダリングコマンドおよびレンダリングデータ(例:ジオメトリ、ライティング、シェーディング、テクスチャリング、モーション、シーンのカメラパラメータのうちの少なくとも1つ)を受け取り、各頂点に対して一又は複数の頂点プログラムを実行して、変換された頂点を作成する。頂点処理ユニットはプログラマブルであり、レンダリングアプリケーションは、頂点の特定のセットに使用する頂点プログラムを指定することができる。簡易な実施形態においては、頂点プログラムは、3次元世界の座標系から2次元のスクリーン座標系に頂点を変換する。より複雑な頂点プログラムを使用すると、様々な視覚効果を実施することができる。
特開平04−309131号公報 特表2008−512771号公報
頂点情報に処理を行うグラフィクス頂点処理装置には、固定パイプラインによる構成とマイクロコード制御による構成が存在する。固定パイプラインによる構成では、特定の定型処理フローに最適化した形でハードウェアを実装する。従って、特定の処理に対しては高速に演算可能であるが、ハードウェアの変更無しに、定型処理フロー以外の処理を行うことができない。
一方、マイクロコード制御による構成では、所定の処理を行う一連のマイクロ命令を命令シーケンスとしてグラフィクス頂点処理装置内の記憶装置に保持し、ホストコンピュータから指定された命令シーケンスを実行することで、自由な頂点処理が可能である。しかし、命令シーケンスを1つずつ順に処理するために、命令シーケンス内のデータ依存性により、演算器使用率が低下しやすいという問題があった。
マイクロコード制御によるグラフィクス頂点処理装置で演算器使用率向上を目的として、マイクロ命令の実行順序を並べ替える方法(アウトオブオーダー実行)が存在するが、命令を並べ替えるための回路が必要となるため回路規模が大きくなるという問題がある。また命令待ち行列にためられた命令の範囲内でしか命令の並べ替えができないため、部分的にしか演算器使用率を向上できないという課題がある。
本発明は、上述の事情に鑑みてなされたものであり、演算器使用率を高め、高速な演算を可能とするグラフィクス頂点処理装置およびグラフィクス頂点処理方法を提供することを目的とする。
本発明の第1の観点に係るグラフィクス頂点処理装置は、
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、
演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力して記憶するバッファと、
前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスに対応して、前記マイクロコード記憶部に記憶されているマイクロコードから、前記命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択手段と、
前記命令選択手段で選択したマイクロコードに従って、前記頂点の演算を行う演算手段と、
を備えることを特徴とする。
本発明の第2の観点に係るグラフィクス頂点処理方法は、
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、前記マイクロコードに従って、頂点の演算を行う演算手段と、を備えるグラフィックス頂点処理装置が行うグラフィックス頂点処理方法であって、
前記グラフィクス頂点処理装置が、演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力してバッファに記憶するステップと、
命令選択手段が、前記マイクロコード記憶部に記憶されたマイクロコードから、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスに対応して、該命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択ステップと、
前記演算手段が、前記命令選択ステップで選択したマイクロコードに従って、前記頂点の演算を行う演算ステップと、
を備えることを特徴とする。
本発明のグラフィクス頂点処理装置によれば、複数の頂点を並列に処理可能な複合命令シーケンスの動作を可能とし、演算器使用率を高め、高速な演算を可能とする。
本発明の実施の形態に係るグラフィクス頂点処理装置の構成例を示すブロック図である。 実施の形態に係る先頭アドレス情報とマイクロコードの作成法を説明する図である。 実施の形態に係る頂点処理の動作の例を示す図である。 命令シーケンスでマイクロ命令を並べ替えずに座標変換を行った場合の演算器使用率の例を示す図である。 複合命令シーケンスでマイクロ命令を並べ替えて座標変換を行った場合の演算器使用率の例を示す図である。 実施の形態に係る頂点処理の動作の一例を示すフローチャートである。 実施の形態の変形例に係るアドレステーブルの構成例を示す図である。 実施の形態の変形例に係る頂点処理の動作の例を示す図である。 実施の形態の変形例に係る頂点処理の動作の一例を示すフローチャートである。 本発明に係る係るグラフィクス頂点処理装置のハードウェア構成の一例を示すブロック図である。
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同じ符号を付す。
マイクロコード制御によるグラフィクス頂点処理装置において、マイクロ命令とはマイクロコード制御による演算装置の命令最小単位である。1または2以上のマイクロ命令を含むひとまとまりの処理を命令シーケンスという。複数の命令シーケンスを並列に処理するように組合せたものを複合命令シーケンスという。本発明では、命令シーケンスと複合命令シーケンスを総称してマイクロコードという。
図1は、本発明の実施の形態に係るグラフィクス頂点処理装置の構成例を示すブロック図である。グラフィクス頂点処理装置100は、頂点・命令シーケンスインデクスを受け取るFIFO型バッファ101、複数の命令シーケンスから実行するマイクロコード112を判断する命令判断ユニット102、マイクロコード112の先頭アドレス情報111を持つアドレステーブル103、マイクロ命令110のデコードを行うデコードユニット104、実行するマイクロコード112を保持するマイクロコードRAM105、マイクロコード112に従って頂点の演算を行う演算実行ユニット106で構成する。
命令判断ユニット102からアドレステーブル103へ向かう矢印は、複数の命令シーケンスインデクス107、その逆方向のアドレステーブル103から命令判断ユニット102へ向かう矢印は、先頭アドレス108を表す。また、デコードユニット104からマイクロコードRAM105へ向かう矢印は、実行アドレス109、その逆方向のマイクロコードRAM105からデコードユニット104へ向かう矢印は、マイクロ命令110を表す。
また頂点処理を行う前に、予め、ホストコンピュータにて、先頭アドレス情報111とマイクロコード112を準備する。この先頭アドレス情報111とマイクロコード112の作成法を図2を用いて説明する。
まず命令シーケンス201をそれぞれ複数連結し、さらにマイクロ命令並べ替えを行うことで、複数の命令シーケンス201を並列に処理する複合命令シーケンス202を作成する。例えば、複合命令シーケンスA−Aは、命令シーケンスAを2回連続して実行した場合と同様の出力を得ることができる。またマイクロ命令並べ替えにより並列的に命令シーケンスAが実行されるため、命令シーケンスAを1回ずつ実行するよりも複合命令シーケンスA−Aを実行する方が演算器使用率は向上し、高速に演算可能なものとなっている。また命令シーケンス201全体をマイクロ命令並べ替えの対象とできるため、マイクロ命令並べ替えの回路を付加するよりも演算器使用効率が高くなる。同様にして、他の複数の命令シーケンス201を並列に処理する複合命令シーケンス202についても作成する。
このようにして作成された命令シーケンス201と複合命令シーケンス202を、マイクロコード表203のようにマッピングしてマイクロコードRAM105に格納する。また、それぞれの命令シーケンス201、および、複合命令シーケンス202の先頭アドレス108を示すアドレステーブル204を作成する。
以上により作成された、命令シーケンス201と複合命令シーケンス202をマイクロコード112とし、またアドレステーブル204を先頭アドレス情報111として、先頭アドレス情報111とマイクロコード112を用いてグラフィクス頂点処理装置100の制御に用いる。
次に、本発明によるグラフィクス頂点処理装置100の動作を図1を用いて説明する。まずホストコンピュータは、先頭アドレス情報111をアドレステーブル103に、マイクロコード112をマイクロコードRAM105にそれぞれ設定する。その後、本グラフィクス頂点処理装置100に、頂点・命令シーケンスインデクスの入力を開始する。
入力された頂点・命令シーケンスインデクスは、一旦、FIFO型バッファ101に蓄積される。このFIFO型バッファ101は、複数の頂点・命令シーケンスインデクスを格納できる容量を持っており、入力された順に、複数の頂点・命令シーケンスインデクスを出力する。
命令判断ユニット102は、FIFO型バッファ101より出力される複数の命令シーケンスインデクス107を用いてアドレステーブル103を参照し、先頭アドレス108を取得する。このとき、参照する命令シーケンスインデクスの個数に応じた複数のアドレステーブル103から、それぞれ先頭アドレス108が得られるが、より多くの命令シーケンスインデクスを用いて得られた先頭アドレス108が選択され、デコードユニット104へ通知される。
デコードユニット104は、先頭アドレス108が通知されたときに、その先頭アドレス108を実行アドレス109として、マイクロコードRAM105を参照し、マイクロ命令110をデコードし、演算実行ユニット106に渡す。以降、命令シーケンス201が終了するまで、マイクロコード112に従って頂点の処理が行われ、処理された頂点データがグラフィック頂点処理装置100から出力される。以上が複数の命令シーケンス201から複合命令シーケンス202を選択し、実行する流れとなる。
次に連続的に頂点・命令シーケンスインデクスが入力された場合の動作例を図3を用いて説明する。ホストコンピュータが2つの命令シーケンス201を並列に処理する複合命令シーケンス202まで準備したと仮定すると、頂点1から順に頂点5までは以下のように処理が行われる。
まず時刻304のタイミングで、FIFO型バッファ101に複数の頂点・命令シーケンスインデクスが格納された状態のFIFO型バッファ301の時、命令判断ユニット102は、入力された順に頂点1および2に対応する命令シーケンスインデクスAおよびBを用いて、アドレステーブル103を参照する。
このとき先頭アドレス108として、命令シーケンスインデクスAおよびBを用いて参照した複合命令シーケンスA−Bと、命令シーケンスインデクスAだけを用いて参照した命令シーケンスAの先頭アドレス108がそれぞれ取得される。取得された2つの先頭アドレス108から、命令判断ユニット102は、より多くの命令シーケンスインデクスを用いて得られた先頭アドレス108、つまり複合命令シーケンスA−Bを選択する。その後、選択された複合命令シーケンスA−Bが実行され、頂点1および2に対する処理が行われる。
複合命令シーケンスA−Bの終了タイミングである時刻305で、FIFO型バッファ101に複数の頂点・命令シーケンスインデクスが格納されている状態のFIFO型バッファ302であれば、時刻304のタイミングと同様にして、複合命令シーケンスC−Aが選択され実行される。
このときFIFO型バッファ101に、1つしか頂点・命令シーケンスインデクスがたまっていない状態のFIFO型バッファ303であれば、その1つの命令シーケンスインデクス107から先頭アドレス108が取得され、実行される。従って、時刻306のタイミングでは命令シーケンスインデクスAを用いて参照した命令シーケンスAの先頭アドレス108が取得され、実行される。
またFIFO型バッファ101に頂点・命令シーケンスインデクスが1つも無い状態である時刻307であれば、FIFO型バッファ101に頂点・命令シーケンスインデクスがたまるまで、マイクロコード112は実行されない。以上のようにして、連続的に入力される頂点に処理を行う。
次に、命令シーケンス201として座標変換を行った場合の演算器使用率について、図4および図5を用いて説明する。図中のNOPは、no operation(何もしない)を意味する。座標変換は、与えられた座標(X,Y)に対し以下の式で表される処理を行う。aないしfは座標変換パラメータであり、座標変換結果は、座標(X’, Y’)である。
X’=a・X+b・Y+c
Y’=d・X+e・Y+f
図4は、命令シーケンスでマイクロ命令を並べ替えずに座標変換を行った場合の演算器使用率の例を示す。演算器構成を、データ返送にかかる遅延時間を表すレイテンシが2クロックで、パイプライン動作可能な加算器、乗算器を各々2つずつ持っているものとする。演算器で処理する命令が2つの場合、レイテンシが2クロックであり、パイプライン動作可能であるので、演算した出力結果を次の入力結果として処理でき、一方を処理している間に他方を配置できるので、各演算器の待ち時間がなく、演算処理をすることができる。
このような演算器構成の場合に、座標変換命令シーケンスを1つずつ実行し、2頂点の座標(X1,Y1)と座標(X2,Y2)の座標変換を行うと、各加算・乗算器の入出力は図4で示すとおり、頂点処理1と頂点処理2を順次実行すると、最短で14サイクルを要する。
図5は、複合命令シーケンスでマイクロ命令を並べ替えて座標変換を行った場合の演算器使用率の例を示す。図5に示すように、座標変換を行う命令シーケンス201を2回連続して行い、マイクロ命令110の並べ替えを行った複合命令シーケンス202を実行した場合、各加算・乗算器の入出力は連続して行われ、2頂点の座標変換が最短8サイクルで演算可能となる。
図6は、実施の形態に係る頂点処理の動作の一例を示すフローチャートである。予め、ホストコンピュータは、先頭アドレス情報111をアドレステーブル103に、マイクロコード112をマイクロコードRAM105に、それぞれ設定しておく。そしてホストコンピュータは、グラフィクス頂点処理装置100に、頂点・命令シーケンスインデクスの入力を開始する。
グラフィクス頂点処理装置100のFIFO型バッファ101は、バッファ先頭の頂点命令の読み込みを行い(ステップS11)、頂点数iに頂点数1を入力する(ステップS12)。命令判断ユニット102は、アドレステーブル103を参照し(ステップS13)、デコードユニット104は、i個の頂点の組合せのマイクロコードを設定する(ステップS14)。再度、FIFO型バッファ101は、次の頂点命令の読み込みを行う(ステップS15)。次の頂点命令があれば(ステップS16;YES)、命令判断ユニット102は、アドレステーブル103を検索する(ステップS17)。そして、(i+1)個の頂点の組合せのマイクロコードがあれば(ステップS18;YES)、頂点数iを(i+1)に入れ替えて(ステップS19)、ステップS14へ戻る。
ステップS16で次の頂点命令がなければ(ステップS16;NO)、もしくは、ステップS18で(i+1)個の頂点の組合せのマイクロコードがなければ(ステップS18;NO)、演算実行ユニット106は、i個の頂点の組合せのマイクロコードを実行する(ステップS20)。次の頂点命令があれば(ステップS21;YES)、ステップS12へ戻る。また、次の頂点命令がなければ(ステップS21;NO)、最初のステップS11へ戻り、一連の流れを繰り返し、頂点処理の動作を行う。
(実施の形態の変形例)
上述した実施の形態では、全ての組合せで複合命令シーケンス202とアドレステーブル204を作成することになるため、組合せの数によってはすべて作成するのが困難な場合や、大きな記憶装置が必要となる。そこで、少ない組合せにより、効果的に本発明を実施するための実施の形態の変形例について説明する。
図7のアドレステーブル501に示すように、それぞれの要素にオン・オフ信号を付加し、複合命令シーケンス202を作成した場合にはオン、そうで無い場合にはオフとする。これにより、命令判断ユニット102がアドレステーブル501を参照するときに、オンであればその先頭アドレス108を使用し、オフであればより優先度の低いアドレステーブル501を参照することで、すべての組合せで複合命令シーケンス202を作成せずに動作させることができ、その分、マイクロコード112の量を削減可能である。
図7のアドレステーブル501の通りにオン・オフ信号をつけた場合の動作例を図8を用いて説明する。時刻601のタイミングにおいて、FIFO型バッファ101に頂点・命令シーケンスインデクスが複数存在するが、複合命令シーケンスC−Aに対応する先頭アドレスC−Aがオフであるため、命令シーケンスCの先頭アドレスCが選択され、実行される。従って、複合命令シーケンスC−Aを作成しない場合でも、所望の頂点処理を行うことができるため、マイクロコード112の量を削減可能である。
図9は、実施の形態の変形例に係る頂点処理の動作の一例を示すフローチャートである。変形例に係る頂点処理の動作では、実施の形態に係る頂点処理の、(i+1)個の頂点の組合せのマイクロコードの有無の確認動作を、オン信号の有無の確認動作へ置き換える。
グラフィクス頂点処理装置100の変形例に係る頂点処理の動作は、基本的な動作の流れは図6に示す実施の形態に係る頂点処理の動作と等しく、ステップS16の処理まで同じである。また、ステップS16で頂点命令がない場合(ステップS16;NO)については、それ以降の動作についても実施の形態に係る頂点処理の動作に等しい。
頂点命令があれば(ステップS16;YES)、命令判断ユニット102は、アドレステーブル103を参照する(ステップS31)。より詳しくは、予めアドレステーブル103に付加して設定しておいたオン・オフ信号を参照する。参照した箇所のアドレステーブル103がオン信号であれば(ステップS32;YES)、頂点数iを(i+1)へ入れ替え(ステップS19)、ステップS14へ戻る。参照した箇所のアドレステーブル103がオン信号でなければ(ステップS32;NO)、すなわちオフ信号であれば、演算実行ユニット106は、i個の頂点の組合せのマイクロコードを実行する(ステップS20)。以降の流れについては、実施の形態に係る頂点処理の動作と同じである。
以上で説明した本実施の形態によるグラフィクス頂点処理装置を、複数、並列に接続することで、さらに高速な頂点処理が期待できる。
また、実施の形態の変形例のグラフィクス頂点処理装置によれば、全ての複合命令シーケンスを作成しない場合でも頂点処理が可能であり、マイクロコードの量を削減可能となり、記憶装置が大きくなることを防止することができる。
本実施の形態に係るグラフィクス頂点処理装置によれば、複数の頂点を並列に処理可能な複合命令シーケンスの動作を可能とし、演算器使用率を高め、高速な演算を可能とする。本実施の形態の第2の効果は、予め、複合命令シーケンスをホストコンピュータ上で作成することにより、従来、必要であったマイクロ命令並べ替えのための回路が不要となったことである。本実施の形態の第3の効果は、従来、マイクロ命令並べ替えのための回路でマイクロ命令が並べ替えらていた範囲に縛られず、複数の命令シーケンス間でマイクロ命令の並べ替えが可能となったことである。
図10は、図1に示すグラフィクス頂点処理装置のハードウェア構成の一例を示すブロック図である。グラフィクス頂点処理装置100は、図10に示すように、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36を備える。主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36はいずれも内部バス30を介して制御部31に接続されている。
制御部31はCPU(Central Processing Unit)等から構成され、外部記憶部33に記憶されている制御プログラム39に従って、グラフィクス頂点処理装置100のFIFO型バッファ101、命令判断ユニット102、アドレステーブル103、デコードユニット104、マイクロコードRAM105、演算実行ユニット106の各処理を実行する。
主記憶部32はRAM(Random−Access Memory)等から構成され、外部記憶部33に記憶されている制御プログラム39をロードし、制御部31の作業領域として用いられる。
外部記憶部33は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random−Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、グラフィクス頂点処理装置100の処理を制御部31に行わせるためのプログラムを予め記憶し、また、制御部31の指示に従って、このプログラムが記憶するデータを制御部31に供給し、制御部31から供給されたデータを記憶する。
操作部34はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス30に接続するインターフェース装置から構成されている。操作部34を介して、命令シーケンスなどが入力され、制御部31に供給される。
表示部35は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、演算結果などを表示する。
送受信部36は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェースから構成されている。送受信部36は、ネットワークを介して、グラフィクス頂点処理情報を送受信する。
図1に示すグラフィクス頂点処理装置100のFIFO型バッファ101、命令判断ユニット102、アドレステーブル103、デコードユニット104、マイクロコードRAM105、演算実行ユニット106の処理は、制御プログラム39が、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36などを資源として用いて処理することによって実行する。
その他、本発明の好適な変形として、以下の構成が含まれる。
本発明の第1の観点に係るグラフィクス頂点処理装置について、好ましくは、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを備え、前記命令選択手段は、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスから前記アドレステーブルを参照して、前記マイクロコードを選択する、ことを特徴とする。
好ましくは、前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、前記命令選択手段は、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、ことを特徴とする。
本発明の第2の観点に係るグラフィクス頂点処理方法について、好ましくは、前記命令選択ステップは、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを参照して、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスから、前記マイクロコードを選択する、ことを特徴とする。
好ましくは、前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、前記命令選択ステップは、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、ことを特徴とする。
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
FIFO型バッファ101、命令判断ユニット102、アドレステーブル103、デコードユニット104、マイクロコードRAM105、演算実行ユニット106等から構成されるグラフィクス頂点処理を行う中心となる部分は、専用の装置によらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するグラフィクス頂点処理装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでグラフィクス頂点処理装置を構成してもよい。
また、グラフィクス頂点処理装置を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合等には、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
100 グラフィクス頂点処理装置
101 FIFO型バッファ
102 命令判断ユニット
103 アドレステーブル
104 デコードユニット
105 マイクロコードRAM
106 演算実行ユニット
107 命令シーケンスインデクス
108 先頭アドレス
109 実行アドレス
110 マイクロ命令
111 先頭アドレス情報
112 マイクロコード

Claims (6)

  1. 複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、
    演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力して記憶するバッファと、
    前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスに対応して、前記マイクロコード記憶部に記憶されているマイクロコードから、前記命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択手段と、
    前記命令選択手段で選択したマイクロコードに従って、前記頂点の演算を行う演算手段と、
    を備えることを特徴とするグラフィクス頂点処理装置。
  2. それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを備え、
    前記命令選択手段は、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスから前記アドレステーブルを参照して、前記マイクロコードを選択する、
    ことを特徴とする請求項1に記載のグラフィクス頂点処理装置。
  3. 前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、
    前記命令選択手段は、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、
    ことを特徴とする請求項2に記載のグラフィクス頂点処理装置。
  4. 複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、前記マイクロコードに従って、頂点の演算を行う演算手段と、を備えるグラフィックス頂点処理装置が行うグラフィックス頂点処理方法であって、
    前記グラフィクス頂点処理装置が、演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力してバッファに記憶するステップと、
    命令選択手段が、前記マイクロコード記憶部に記憶されたマイクロコードから、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスに対応して、該命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択ステップと、
    前記演算手段が、前記命令選択ステップで選択したマイクロコードに従って、前記頂点の演算を行う演算ステップと、
    を備えることを特徴とするグラフィクス頂点処理方法。
  5. 前記命令選択手段は、前記命令選択ステップにおいて、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを参照して、前記バッファに記憶された1または2以上の連続する命令シーケンスインデクスから、前記マイクロコードを選択する、ことを特徴とする請求項4に記載のグラフィクス頂点処理方法。
  6. 前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、
    前記命令選択手段は、前記命令選択ステップにおいて、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、
    ことを特徴とする請求項5に記載のグラフィクス頂点処理方法。
JP2009261561A 2009-11-17 2009-11-17 グラフィクス頂点処理装置およびグラフィクス頂点処理方法 Expired - Fee Related JP5311491B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009261561A JP5311491B2 (ja) 2009-11-17 2009-11-17 グラフィクス頂点処理装置およびグラフィクス頂点処理方法
US13/510,233 US20120229482A1 (en) 2009-11-17 2010-11-17 Graphics vertex processing device, image processing device, graphics vertex processing method and recording medium
EP10831597.9A EP2503512B1 (en) 2009-11-17 2010-11-17 Graphics vertex processing device, image processing device, graphics vertex processing method and recording medium
PCT/JP2010/070510 WO2011062203A1 (ja) 2009-11-17 2010-11-17 グラフィクス頂点処理装置、画像処理装置、グラフィクス頂点処理方法および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009261561A JP5311491B2 (ja) 2009-11-17 2009-11-17 グラフィクス頂点処理装置およびグラフィクス頂点処理方法

Publications (2)

Publication Number Publication Date
JP2011107931A JP2011107931A (ja) 2011-06-02
JP5311491B2 true JP5311491B2 (ja) 2013-10-09

Family

ID=44059680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009261561A Expired - Fee Related JP5311491B2 (ja) 2009-11-17 2009-11-17 グラフィクス頂点処理装置およびグラフィクス頂点処理方法

Country Status (4)

Country Link
US (1) US20120229482A1 (ja)
EP (1) EP2503512B1 (ja)
JP (1) JP5311491B2 (ja)
WO (1) WO2011062203A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2529403A (en) * 2014-08-18 2016-02-24 Ibm A Method of operating a shared nothing cluster system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
US5185870A (en) * 1987-04-10 1993-02-09 Tandem Computers, Inc, System to determine if modification of first macroinstruction to execute in fewer clock cycles
JPH0776906B2 (ja) * 1989-06-30 1995-08-16 ディジタル イクイプメント コーポレーション 分類加速装置のための速度及びメモリー制御
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US5781792A (en) * 1996-03-18 1998-07-14 Advanced Micro Devices, Inc. CPU with DSP having decoder that detects and converts instruction sequences intended to perform DSP function into DSP function identifier
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US6581154B1 (en) * 1999-02-17 2003-06-17 Intel Corporation Expanding microcode associated with full and partial width macroinstructions
US6452595B1 (en) * 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US7062636B2 (en) * 2002-09-19 2006-06-13 Intel Corporation Ordering scheme with architectural operation decomposed into result producing speculative micro-operation and exception producing architectural micro-operation
US7218291B2 (en) 2004-09-13 2007-05-15 Nvidia Corporation Increased scalability in the fragment shading pipeline
JP4759614B2 (ja) * 2006-05-11 2011-08-31 パナソニック株式会社 処理装置
US20090031121A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for real-time microcode patch
JP2011138308A (ja) * 2009-12-28 2011-07-14 Sony Corp プロセッサ、コプロセッサ、情報処理システムおよびそれらにおける制御方法

Also Published As

Publication number Publication date
WO2011062203A1 (ja) 2011-05-26
US20120229482A1 (en) 2012-09-13
EP2503512A1 (en) 2012-09-26
EP2503512B1 (en) 2017-05-17
EP2503512A4 (en) 2014-11-05
JP2011107931A (ja) 2011-06-02

Similar Documents

Publication Publication Date Title
US9916674B2 (en) Baking path rendering objects into compact and efficient memory representations
KR101134241B1 (ko) 그래픽 처리 유닛에서 프레그먼트 셰이더 바이패스, 및 이를 위한 장치 및 방법
JP4759614B2 (ja) 処理装置
US9576340B2 (en) Render-assisted compression for remote graphics
JP4981923B2 (ja) 高速ピクセル・レンダリング処理
US9293109B2 (en) Technique for storing shared vertices
TWI376641B (en) Multi-threads vertex shader, graphics processing unit, and flow control method thereof
US9286647B2 (en) Pixel shader bypass for low power graphics rendering
TWI645371B (zh) 在上游著色器內設定下游著色狀態
US9418616B2 (en) Technique for storing shared vertices
JP2016524242A (ja) 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること
JP4637640B2 (ja) 図形描画装置
US9558573B2 (en) Optimizing triangle topology for path rendering
TWI633516B (zh) 曲面細分及幾何著色器的功率效率屬性處理
US20140237187A1 (en) Adaptive multilevel binning to improve hierarchical caching
TW201435581A (zh) 透過管線狀態繫結觸發的效能事件擷取
KR20200067222A (ko) 그래픽스 파이프라인에서의 인덱스들의 압축 및 압축 해제
JP5311491B2 (ja) グラフィクス頂点処理装置およびグラフィクス頂点処理方法
KR20160025894A (ko) Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US9111360B2 (en) Technique for improving the performance of a tessellation pipeline
US9406101B2 (en) Technique for improving the performance of a tessellation pipeline
GB2506727A (en) Server-rendering of graphics for remote client
US20080055307A1 (en) Graphics rendering pipeline
JP6132902B1 (ja) コンピュータグラフィック装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5311491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees