(57)【要約】【課題】演算器使用率を高め、高速な演算を可能とするグラフィクス頂点処理装置およびグラフィクス頂点処理方法を提供する。【解決手段】マイクロコードＲＡＭ１０５は、複数の命令シーケンスを連結して、複数の命令シーケンスを並列に処理するようにマイクロ命令１１０を並べ替えた複合命令シーケンスを含むマイクロコード１１２を記憶する。ＦＩＦＯ型バッファ１０１は、演算の対象である頂点の情報と、演算の内容を識別する命令シーケンスインデクス１０７とを入力して記憶する。命令判断ユニット１０２は、ＦＩＦＯ型バッファ１０１に記憶された連続する命令シーケンスインデクスに対応して、マイクロコード１１２から、命令シーケンスインデクス１０７の連続する数に対応するマイクロコード１１２を選択する。演算実行ユニット１０６は、命令判断ユニット１０２で選択したマイクロコード１１２に従って、頂点の演算を行う。【選択図】図１
2011107931.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、
演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力して記憶するバッファと、
前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスに対応して、前記マイクロコード記憶部に記憶されているマイクロコードから、前記命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択手段と、
前記命令選択手段で選択したマイクロコードに従って、前記頂点の演算を行う演算手段と、
を備えることを特徴とするグラフィクス頂点処理装置。
【請求項２】
それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを備え、
前記命令選択手段は、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスから前記アドレステーブルを参照して、前記マイクロコードを選択する、
ことを特徴とする請求項１に記載のグラフィクス頂点処理装置。
【請求項３】
前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、
前記命令選択手段は、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、
ことを特徴とする請求項２に記載のグラフィクス頂点処理装置。
【請求項４】
演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力してバッファに記憶するステップと、
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含み、マイクロコード記憶部に記憶されたマイクロコードから、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスに対応して、該命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択ステップと、
前記命令選択ステップで選択したマイクロコードに従って、前記頂点の演算を行う演算ステップと、
を備えることを特徴とするグラフィクス頂点処理方法。
【請求項５】
前記命令選択ステップは、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを参照して、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスから、前記マイクロコードを選択する、ことを特徴とする請求項４に記載のグラフィクス頂点処理方法。
【請求項６】
前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、
前記命令選択ステップは、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、
ことを特徴とする請求項５に記載のグラフィクス頂点処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィクスにおいて、ポリゴンなどの頂点に関する演算を行うグラフィクス頂点処理装置およびグラフィクス頂点処理方法に関する。より詳しくは、マイクロコード制御によるグラフィクス頂点処理装置およびグラフィクス頂点処理方法に関する。
【背景技術】
【０００２】
コンピュータグラフィクスの描画処理において、例えば３Ｄの画像では対象の表面を多数のポリゴンに分割し、ポリゴンの頂点の表示画面上の座標を計算するなどの頂点処理を行う。頂点処理とは座標演算の外にライティング演算、テクスチャ座標の算出、フォグ座標の生成およびポイントサイズの生成等を含む。座標演算は、例えば３次元の構造を表示する視点の移動と、表示する対象の物体の動きに伴って発生する。その他、例えばライティング演算は、各頂点のディフューズ（diffuse：光の拡散）成分とスペキュラ（specular：光の反射）成分を決定する。画像を滑らかに表示するために対象の表面を細かく分割すると、頂点処理の演算は幾何級数的に増加する。
【０００３】
頂点処理を行うグラフィクス頂点処理装置は、固定パイプラインによる構成とマイクロコード制御による構成に大別される。固定パイプラインによる方法は、特定の処理に対して高速に演算可能であるが、機能が固定されるため、その処理しか行えない。一方、マイクロコードによる方法は、プログラムによって処理を変えることができるため、自由な頂点処理が可能であるが、命令シーケンス内のデータ依存性により、演算器使用率が低下しやすい。
【０００４】
特許文献１は、２個又はそれ以上の命令を実行時に先立って並列実行するためにグループ化するスケール化可能な複合命令集合マシンにおけるマイクロコードの生成装置を提供する。特許文献１の命令群用マイクロコード生成装置では、スケール化可能な複合命令集合マシンにおけるマイクロコード生成器は、２個またはそれ以上の隣接する命令が並列に処理されるべきことを示す複合化情報に応答して動作する。個別の独立したマイクロコードは、グループ内の各々の可能な命令について制御記憶装置内に保持される。並行して実行されるべき命令群の各命令に対するマイクロコードシーケンスは、複合化情報に応答して単一のマイクロ命令シーケンスに併合装置で併合される。
【０００５】
頂点処理に関して、例えば特許文献２の頂点処理ユニットは、レンダリングされたイメージを定義するために使用されるレンダリングコマンドおよびレンダリングデータ（例：ジオメトリ、ライティング、シェーディング、テクスチャリング、モーション、シーンのカメラパラメータのうちの少なくとも１つ）を受け取り、各頂点に対して一又は複数の頂点プログラムを実行して、変換された頂点を作成する。頂点処理ユニットはプログラマブルであり、レンダリングアプリケーションは、頂点の特定のセットに使用する頂点プログラムを指定することができる。簡易な実施形態においては、頂点プログラムは、３次元世界の座標系から２次元のスクリーン座標系に頂点を変換する。より複雑な頂点プログラムを使用すると、様々な視覚効果を実施することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−３０９１３１号公報
【特許文献２】特表２００８−５１２７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
頂点情報に処理を行うグラフィクス頂点処理装置には、固定パイプラインによる構成とマイクロコード制御による構成が存在する。固定パイプラインによる構成では、特定の定型処理フローに最適化した形でハードウェアを実装する。従って、特定の処理に対しては高速に演算可能であるが、ハードウェアの変更無しに、定型処理フロー以外の処理を行うことができない。
【０００８】
一方、マイクロコード制御による構成では、所定の処理を行う一連のマイクロ命令を命令シーケンスとしてグラフィクス頂点処理装置内の記憶装置に保持し、ホストコンピュータから指定された命令シーケンスを実行することで、自由な頂点処理が可能である。しかし、命令シーケンスを１つずつ順に処理するために、命令シーケンス内のデータ依存性により、演算器使用率が低下しやすいという問題があった。
【０００９】
マイクロコード制御によるグラフィクス頂点処理装置で演算器使用率向上を目的として、マイクロ命令の実行順序を並べ替える方法（アウトオブオーダー実行）が存在するが、命令を並べ替えるための回路が必要となるため回路規模が大きくなるという問題がある。また命令待ち行列にためられた命令の範囲内でしか命令の並べ替えができないため、部分的にしか演算器使用率を向上できないという課題がある。
【００１０】
本発明は、上述の事情に鑑みてなされたものであり、演算器使用率を高め、高速な演算を可能とするグラフィクス頂点処理装置およびグラフィクス頂点処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の観点に係るグラフィクス頂点処理装置は、
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含む、マイクロコードを記憶するマイクロコード記憶部と、
演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力して記憶するバッファと、
前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスに対応して、前記マイクロコード記憶部に記憶されているマイクロコードから、前記命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択手段と、
前記命令選択手段で選択したマイクロコードに従って、前記頂点の演算を行う演算手段と、
を備えることを特徴とする。
【００１２】
本発明の第２の観点に係るグラフィクス頂点処理方法は、
演算の対象である頂点の情報と、該演算の内容を識別する命令シーケンスインデクスとを入力してバッファに記憶するステップと、
複数の命令シーケンスを連結して、該複数の命令シーケンスを並列に処理するように該複数の命令シーケンスのマイクロ命令を並べ替えた複合命令シーケンスを含み、マイクロコード記憶部に記憶されたマイクロコードから、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスに対応して、該命令シーケンスインデクスの連続する数に対応するマイクロコードを選択する命令選択ステップと、
前記命令選択ステップで選択したマイクロコードに従って、前記頂点の演算を行う演算ステップと、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明のグラフィクス頂点処理装置によれば、複数の頂点を並列に処理可能な複合命令シーケンスの動作を可能とし、演算器使用率を高め、高速な演算を可能とする。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るグラフィクス頂点処理装置の構成例を示すブロック図である。
【図２】実施の形態に係る先頭アドレス情報とマイクロコードの作成法を説明する図である。
【図３】実施の形態に係る頂点処理の動作の例を示す図である。
【図４】命令シーケンスでマイクロ命令を並べ替えずに座標変換を行った場合の演算器使用率の例を示す図である。
【図５】複合命令シーケンスでマイクロ命令を並べ替えて座標変換を行った場合の演算器使用率の例を示す図である。
【図６】実施の形態に係る頂点処理の動作の一例を示すフローチャートである。
【図７】実施の形態の変形例に係るアドレステーブルの構成例を示す図である。
【図８】実施の形態の変形例に係る頂点処理の動作の例を示す図である。
【図９】実施の形態の変形例に係る頂点処理の動作の一例を示すフローチャートである。
【図１０】本発明に係る係るグラフィクス頂点処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同じ符号を付す。
【００１６】
マイクロコード制御によるグラフィクス頂点処理装置において、マイクロ命令とはマイクロコード制御による演算装置の命令最小単位である。１または２以上のマイクロ命令を含むひとまとまりの処理を命令シーケンスという。複数の命令シーケンスを並列に処理するように組合せたものを複合命令シーケンスという。本発明では、命令シーケンスと複合命令シーケンスを総称してマイクロコードという。
【００１７】
図１は、本発明の実施の形態に係るグラフィクス頂点処理装置の構成例を示すブロック図である。グラフィクス頂点処理装置１００は、頂点・命令シーケンスインデクスを受け取るＦＩＦＯ型バッファ１０１、複数の命令シーケンスから実行するマイクロコード１１２を判断する命令判断ユニット１０２、マイクロコード１１２の先頭アドレス情報１１１を持つアドレステーブル１０３、マイクロ命令１１０のデコードを行うデコードユニット１０４、実行するマイクロコード１１２を保持するマイクロコードＲＡＭ１０５、マイクロコード１１２に従って頂点の演算を行う演算実行ユニット１０６で構成する。
【００１８】
命令判断ユニット１０２からアドレステーブル１０３へ向かう矢印は、複数の命令シーケンスインデクス１０７、その逆方向のアドレステーブル１０３から命令判断ユニット１０２へ向かう矢印は、先頭アドレス１０８を表す。また、デコードユニット１０４からマイクロコードＲＡＭ１０５へ向かう矢印は、実行アドレス１０９、その逆方向のマイクロコードＲＡＭ１０５からデコードユニット１０４へ向かう矢印は、マイクロ命令１１０を表す。
【００１９】
また頂点処理を行う前に、予め、ホストコンピュータにて、先頭アドレス情報１１１とマイクロコード１１２を準備する。この先頭アドレス情報１１１とマイクロコード１１２の作成法を図２を用いて説明する。
【００２０】
まず命令シーケンス２０１をそれぞれ複数連結し、さらにマイクロ命令並べ替えを行うことで、複数の命令シーケンス２０１を並列に処理する複合命令シーケンス２０２を作成する。例えば、複合命令シーケンスＡ−Ａは、命令シーケンスＡを２回連続して実行した場合と同様の出力を得ることができる。またマイクロ命令並べ替えにより並列的に命令シーケンスＡが実行されるため、命令シーケンスＡを１回ずつ実行するよりも複合命令シーケンスＡ−Ａを実行する方が演算器使用率は向上し、高速に演算可能なものとなっている。また命令シーケンス２０１全体をマイクロ命令並べ替えの対象とできるため、マイクロ命令並べ替えの回路を付加するよりも演算器使用効率が高くなる。同様にして、他の複数の命令シーケンス２０１を並列に処理する複合命令シーケンス２０２についても作成する。
【００２１】
このようにして作成された命令シーケンス２０１と複合命令シーケンス２０２を、マイクロコード表２０３のようにマッピングしてマイクロコードＲＡＭ１０５に格納する。また、それぞれの命令シーケンス２０１、および、複合命令シーケンス２０２の先頭アドレス１０８を示すアドレステーブル２０４を作成する。
【００２２】
以上により作成された、命令シーケンス２０１と複合命令シーケンス２０２をマイクロコード１１２とし、またアドレステーブル２０４を先頭アドレス情報１１１として、先頭アドレス情報１１１とマイクロコード１１２を用いてグラフィクス頂点処理装置１００の制御に用いる。
【００２３】
次に、本発明によるグラフィクス頂点処理装置１００の動作を図１を用いて説明する。まずホストコンピュータは、先頭アドレス情報１１１をアドレステーブル１０３に、マイクロコード１１２をマイクロコードＲＡＭ１０５にそれぞれ設定する。その後、本グラフィクス頂点処理装置１００に、頂点・命令シーケンスインデクスの入力を開始する。
【００２４】
入力された頂点・命令シーケンスインデクスは、一旦、ＦＩＦＯ型バッファ１０１に蓄積される。このＦＩＦＯ型バッファ１０１は、複数の頂点・命令シーケンスインデクスを格納できる容量を持っており、入力された順に、複数の頂点・命令シーケンスインデクスを出力する。
【００２５】
命令判断ユニット１０２は、ＦＩＦＯ型バッファ１０１より出力される複数の命令シーケンスインデクス１０７を用いてアドレステーブル１０３を参照し、先頭アドレス１０８を取得する。このとき、参照する命令シーケンスインデクスの個数に応じた複数のアドレステーブル１０３から、それぞれ先頭アドレス１０８が得られるが、より多くの命令シーケンスインデクスを用いて得られた先頭アドレス１０８が選択され、デコードユニット１０４へ通知される。
【００２６】
デコードユニット１０４は、先頭アドレス１０８が通知されたときに、その先頭アドレス１０８を実行アドレス１０９として、マイクロコードＲＡＭ１０５を参照し、マイクロ命令１１０をデコードし、演算実行ユニット１０６に渡す。以降、命令シーケンス２０１が終了するまで、マイクロコード１１２に従って頂点の処理が行われ、処理された頂点データがグラフィック頂点処理装置１００から出力される。以上が複数の命令シーケンス２０１から複合命令シーケンス２０２を選択し、実行する流れとなる。
【００２７】
次に連続的に頂点・命令シーケンスインデクスが入力された場合の動作例を図３を用いて説明する。ホストコンピュータが２つの命令シーケンス２０１を並列に処理する複合命令シーケンス２０２まで準備したと仮定すると、頂点１から順に頂点５までは以下のように処理が行われる。
【００２８】
まず時刻３０４のタイミングで、ＦＩＦＯ型バッファ１０１に複数の頂点・命令シーケンスインデクスが格納された状態のＦＩＦＯ型バッファ３０１の時、命令判断ユニット１０２は、入力された順に頂点１および２に対応する命令シーケンスインデクスＡおよびＢを用いて、アドレステーブル１０３を参照する。
【００２９】
このとき先頭アドレス１０８として、命令シーケンスインデクスＡおよびＢを用いて参照した複合命令シーケンスＡ−Ｂと、命令シーケンスインデクスＡだけを用いて参照した命令シーケンスＡの先頭アドレス１０８がそれぞれ取得される。取得された２つの先頭アドレス１０８から、命令判断ユニット１０２は、より多くの命令シーケンスインデクスを用いて得られた先頭アドレス１０８、つまり複合命令シーケンスＡ−Ｂを選択する。その後、選択された複合命令シーケンスＡ−Ｂが実行され、頂点１および２に対する処理が行われる。
【００３０】
複合命令シーケンスＡ−Ｂの終了タイミングである時刻３０５で、ＦＩＦＯ型バッファ１０１に複数の頂点・命令シーケンスインデクスが格納されている状態のＦＩＦＯ型バッファ３０２であれば、時刻３０４のタイミングと同様にして、複合命令シーケンスＣ−Ａが選択され実行される。
【００３１】
このときＦＩＦＯ型バッファ１０１に、１つしか頂点・命令シーケンスインデクスがたまっていない状態のＦＩＦＯ型バッファ３０３であれば、その１つの命令シーケンスインデクス１０７から先頭アドレス１０８が取得され、実行される。従って、時刻３０６のタイミングでは命令シーケンスインデクスＡを用いて参照した命令シーケンスＡの先頭アドレス１０８が取得され、実行される。
【００３２】
またＦＩＦＯ型バッファ１０１に頂点・命令シーケンスインデクスが１つも無い状態である時刻３０７であれば、ＦＩＦＯ型バッファ１０１に頂点・命令シーケンスインデクスがたまるまで、マイクロコード１１２は実行されない。以上のようにして、連続的に入力される頂点に処理を行う。
【００３３】
次に、命令シーケンス２０１として座標変換を行った場合の演算器使用率について、図４および図５を用いて説明する。図中のＮＯＰは、ｎｏ  ｏｐｅｒａｔｉｏｎ（何もしない）を意味する。座標変換は、与えられた座標（Ｘ，Ｙ）に対し以下の式で表される処理を行う。ａないしｆは座標変換パラメータであり、座標変換結果は、座標（Ｘ’， Ｙ’）である。
Ｘ’＝ａ・Ｘ＋ｂ・Ｙ＋ｃ
Ｙ’＝ｄ・Ｘ＋ｅ・Ｙ＋ｆ
【００３４】
図４は、命令シーケンスでマイクロ命令を並べ替えずに座標変換を行った場合の演算器使用率の例を示す。演算器構成を、データ返送にかかる遅延時間を表すレイテンシが２クロックで、パイプライン動作可能な加算器、乗算器を各々２つずつ持っているものとする。演算器で処理する命令が２つの場合、レイテンシが２クロックであり、パイプライン動作可能であるので、演算した出力結果を次の入力結果として処理でき、一方を処理している間に他方を配置できるので、各演算器の待ち時間がなく、演算処理をすることができる。
【００３５】
このような演算器構成の場合に、座標変換命令シーケンスを１つずつ実行し、２頂点の座標（Ｘ１，Ｙ１）と座標（Ｘ２，Ｙ２）の座標変換を行うと、各加算・乗算器の入出力は図４で示すとおり、頂点処理１と頂点処理２を順次実行すると、最短で１４サイクルを要する。
【００３６】
図５は、複合命令シーケンスでマイクロ命令を並べ替えて座標変換を行った場合の演算器使用率の例を示す。図５に示すように、座標変換を行う命令シーケンス２０１を２回連続して行い、マイクロ命令１１０の並べ替えを行った複合命令シーケンス２０２を実行した場合、各加算・乗算器の入出力は連続して行われ、２頂点の座標変換が最短８サイクルで演算可能となる。
【００３７】
図６は、実施の形態に係る頂点処理の動作の一例を示すフローチャートである。予め、ホストコンピュータは、先頭アドレス情報１１１をアドレステーブル１０３に、マイクロコード１１２をマイクロコードＲＡＭ１０５に、それぞれ設定しておく。そしてホストコンピュータは、グラフィクス頂点処理装置１００に、頂点・命令シーケンスインデクスの入力を開始する。
【００３８】
グラフィクス頂点処理装置１００のＦＩＦＯ型バッファ１０１は、バッファ先頭の頂点命令の読み込みを行い（ステップＳ１１）、頂点数ｉに頂点数１を入力する（ステップＳ１２）。命令判断ユニット１０２は、アドレステーブル１０３を参照し（ステップＳ１３）、デコードユニット１０４は、ｉ個の頂点の組合せのマイクロコードを設定する（ステップＳ１４）。再度、ＦＩＦＯ型バッファ１０１は、次の頂点命令の読み込みを行う（ステップＳ１５）。次の頂点命令があれば（ステップＳ１６；ＹＥＳ）、命令判断ユニット１０２は、アドレステーブル１０３を検索する（ステップＳ１７）。そして、（ｉ＋１）個の頂点の組合せのマイクロコードがあれば（ステップＳ１８；ＹＥＳ）、頂点数ｉを（ｉ＋１）に入れ替えて（ステップＳ１９）、ステップＳ１４へ戻る。
【００３９】
ステップＳ１６で次の頂点命令がなければ（ステップＳ１６；ＮＯ）、もしくは、ステップＳ１８で（ｉ＋１）個の頂点の組合せのマイクロコードがなければ（ステップＳ１８；ＮＯ）、演算実行ユニット１０６は、ｉ個の頂点の組合せのマイクロコードを実行する（ステップＳ２０）。次の頂点命令があれば（ステップＳ２１；ＹＥＳ）、ステップＳ１２へ戻る。また、次の頂点命令がなければ（ステップＳ２１；ＮＯ）、最初のステップＳ１１へ戻り、一連の流れを繰り返し、頂点処理の動作を行う。
【００４０】
（実施の形態の変形例）
上述した実施の形態では、全ての組合せで複合命令シーケンス２０２とアドレステーブル２０４を作成することになるため、組合せの数によってはすべて作成するのが困難な場合や、大きな記憶装置が必要となる。そこで、少ない組合せにより、効果的に本発明を実施するための実施の形態の変形例について説明する。
【００４１】
図７のアドレステーブル５０１に示すように、それぞれの要素にオン・オフ信号を付加し、複合命令シーケンス２０２を作成した場合にはオン、そうで無い場合にはオフとする。これにより、命令判断ユニット１０２がアドレステーブル５０１を参照するときに、オンであればその先頭アドレス１０８を使用し、オフであればより優先度の低いアドレステーブル５０１を参照することで、すべての組合せで複合命令シーケンス２０２を作成せずに動作させることができ、その分、マイクロコード１１２の量を削減可能である。
【００４２】
図７のアドレステーブル５０１の通りにオン・オフ信号をつけた場合の動作例を図８を用いて説明する。時刻６０１のタイミングにおいて、ＦＩＦＯ型バッファ１０１に頂点・命令シーケンスインデクスが複数存在するが、複合命令シーケンスＣ−Ａに対応する先頭アドレスＣ−Ａがオフであるため、命令シーケンスＣの先頭アドレスＣが選択され、実行される。従って、複合命令シーケンスＣ−Ａを作成しない場合でも、所望の頂点処理を行うことができるため、マイクロコード１１２の量を削減可能である。
【００４３】
図９は、実施の形態の変形例に係る頂点処理の動作の一例を示すフローチャートである。変形例に係る頂点処理の動作では、実施の形態に係る頂点処理の、（ｉ＋１）個の頂点の組合せのマイクロコードの有無の確認動作を、オン信号の有無の確認動作へ置き換える。
【００４４】
グラフィクス頂点処理装置１００の変形例に係る頂点処理の動作は、基本的な動作の流れは図６に示す実施の形態に係る頂点処理の動作と等しく、ステップＳ１６の処理まで同じである。また、ステップＳ１６で頂点命令がない場合（ステップＳ１６；ＮＯ）については、それ以降の動作についても実施の形態に係る頂点処理の動作に等しい。
【００４５】
頂点命令があれば（ステップＳ１６；ＹＥＳ）、命令判断ユニット１０２は、アドレステーブル１０３を参照する（ステップＳ３１）。より詳しくは、予めアドレステーブル１０３に付加して設定しておいたオン・オフ信号を参照する。参照した箇所のアドレステーブル１０３がオン信号であれば（ステップＳ３２；ＹＥＳ）、頂点数ｉを（ｉ＋１）へ入れ替え（ステップＳ１９）、ステップＳ１４へ戻る。参照した箇所のアドレステーブル１０３がオン信号でなければ（ステップＳ３２；ＮＯ）、すなわちオフ信号であれば、演算実行ユニット１０６は、ｉ個の頂点の組合せのマイクロコードを実行する（ステップＳ２０）。以降の流れについては、実施の形態に係る頂点処理の動作と同じである。
【００４６】
以上で説明した本実施の形態によるグラフィクス頂点処理装置を、複数、並列に接続することで、さらに高速な頂点処理が期待できる。
【００４７】
また、実施の形態の変形例のグラフィクス頂点処理装置によれば、全ての複合命令シーケンスを作成しない場合でも頂点処理が可能であり、マイクロコードの量を削減可能となり、記憶装置が大きくなることを防止することができる。
【００４８】
本実施の形態に係るグラフィクス頂点処理装置によれば、複数の頂点を並列に処理可能な複合命令シーケンスの動作を可能とし、演算器使用率を高め、高速な演算を可能とする。本実施の形態の第２の効果は、予め、複合命令シーケンスをホストコンピュータ上で作成することにより、従来、必要であったマイクロ命令並べ替えのための回路が不要となったことである。本実施の形態の第３の効果は、従来、マイクロ命令並べ替えのための回路でマイクロ命令が並べ替えらていた範囲に縛られず、複数の命令シーケンス間でマイクロ命令の並べ替えが可能となったことである。
【００４９】
図１０は、図１に示すグラフィクス頂点処理装置のハードウェア構成の一例を示すブロック図である。グラフィクス頂点処理装置１００は、図１０に示すように、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５および送受信部３６を備える。主記憶部３２、外部記憶部３３、操作部３４、表示部３５および送受信部３６はいずれも内部バス３０を介して制御部３１に接続されている。
【００５０】
制御部３１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部３３に記憶されている制御プログラム３９に従って、グラフィクス頂点処理装置１００のＦＩＦＯ型バッファ１０１、命令判断ユニット１０２、アドレステーブル１０３、デコードユニット１０４、マイクロコードＲＡＭ１０５、演算実行ユニット１０６の各処理を実行する。
【００５１】
主記憶部３２はＲＡＭ（Random−Access Memory）等から構成され、外部記憶部３３に記憶されている制御プログラム３９をロードし、制御部３１の作業領域として用いられる。
【００５２】
外部記憶部３３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random−Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、グラフィクス頂点処理装置１００の処理を制御部３１に行わせるためのプログラムを予め記憶し、また、制御部３１の指示に従って、このプログラムが記憶するデータを制御部３１に供給し、制御部３１から供給されたデータを記憶する。
【００５３】
操作部３４はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス３０に接続するインターフェース装置から構成されている。操作部３４を介して、命令シーケンスなどが入力され、制御部３１に供給される。
【００５４】
表示部３５は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、演算結果などを表示する。
【００５５】
送受信部３６は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェースまたはＬＡＮ（Local Area Network）インタフェースから構成されている。送受信部３６は、ネットワークを介して、グラフィクス頂点処理情報を送受信する。
【００５６】
図１に示すグラフィクス頂点処理装置１００のＦＩＦＯ型バッファ１０１、命令判断ユニット１０２、アドレステーブル１０３、デコードユニット１０４、マイクロコードＲＡＭ１０５、演算実行ユニット１０６の処理は、制御プログラム３９が、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５および送受信部３６などを資源として用いて処理することによって実行する。
【００５７】
その他、本発明の好適な変形として、以下の構成が含まれる。
【００５８】
本発明の第１の観点に係るグラフィクス頂点処理装置について、好ましくは、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを備え、前記命令選択手段は、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスから前記アドレステーブルを参照して、前記マイクロコードを選択する、ことを特徴とする。
【００５９】
好ましくは、前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、前記命令選択手段は、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、ことを特徴とする。
【００６０】
本発明の第２の観点に係るグラフィクス頂点処理方法について、好ましくは、前記命令選択ステップは、それぞれのマイクロコードに含まれる命令シーケンスを識別するインデクスと、前記マイクロコード記憶部に記憶された前記マイクロコードを識別する符号を有するアドレステーブルを参照して、前記バッファに記憶された１または２以上の連続する命令シーケンスインデクスから、前記マイクロコードを選択する、ことを特徴とする。
【００６１】
好ましくは、前記アドレステーブルは、前記マイクロコードのインデクスごとに、前記マイクロコード記憶部に記憶されているマイクロコードと前記マイクロコード記憶部に記憶されていないマイクロコードとを区別するフラグを含み、前記命令選択ステップは、前記アドレステーブルのフラグを参照して、前記マイクロコードを選択する、ことを特徴とする。
【００６２】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００６３】
ＦＩＦＯ型バッファ１０１、命令判断ユニット１０２、アドレステーブル１０３、デコードユニット１０４、マイクロコードＲＡＭ１０５、演算実行ユニット１０６等から構成されるグラフィクス頂点処理を行う中心となる部分は、専用の装置によらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するグラフィクス頂点処理装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでグラフィクス頂点処理装置を構成してもよい。
【００６４】
また、グラフィクス頂点処理装置を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合等には、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００６５】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【符号の説明】
【００６６】
１００  グラフィクス頂点処理装置
１０１  ＦＩＦＯ型バッファ
１０２  命令判断ユニット
１０３  アドレステーブル
１０４  デコードユニット
１０５  マイクロコードＲＡＭ
１０６  演算実行ユニット
１０７  命令シーケンスインデクス
１０８  先頭アドレス
１０９  実行アドレス
１１０  マイクロ命令
１１１  先頭アドレス情報
１１２  マイクロコード
【図１】
2011107931.tif 000003
【図２】
2011107931.tif 000004
【図３】
2011107931.tif 000005
【図４】
2011107931.tif 000006
【図５】
2011107931.tif 000007
【図６】
2011107931.tif 000008
【図７】
2011107931.tif 000009
【図８】
2011107931.tif 000010
【図９】
2011107931.tif 000011
【図１０】
2011107931.tif 000012