JP3547277B2 - グラフィックス処理装置 - Google Patents
グラフィックス処理装置 Download PDFInfo
- Publication number
- JP3547277B2 JP3547277B2 JP01091897A JP1091897A JP3547277B2 JP 3547277 B2 JP3547277 B2 JP 3547277B2 JP 01091897 A JP01091897 A JP 01091897A JP 1091897 A JP1091897 A JP 1091897A JP 3547277 B2 JP3547277 B2 JP 3547277B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- point
- floating
- fixed
- point data
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、3Dグラフィックスなどのグラフィックス処理を行うグラフィックス処理装置に関し、特に、その高速化の技術に関するものである。
【0002】
【従来の技術】
従来のグラフィックス処理装置としては、たとえば、特開平8−161525号公報記載の装置などが知られている。
【0003】
これらの従来のグラフィックス処理装置は、通常、座標変換、クリッピング処理等の幾何学的計算をおこなうジオメトリ部と、直線や三角形等の図形を画素に変換し描画の処理を行うレンダリング部から構成される。
【0004】
このようなグラフィックス処理装置において、3Dの各種グラフィックスデータから、これを投影した画像を生成する場合には、まず、ジオメトリ部で、3次元形状の2次元座標への透視変換、クリッピングの処理、光源に対する輝度の計算等を行い、次にレンダリング部で、ジオメトリ部が3次元形状を2次元座標に投影変換した図形データである直線や三角形等のデータを画素に展開して、Z比較やアルファブレンド等の演算を行い、フレームメモリに画像を格納する。
【0005】
このようなグラフィックス処理装置において、通常、ジオメトリ部は一つのプロセッサチップとして実現されており、このジオメトリ部における演算は、数値の範囲を限定されたり演算精度が落ちないように、各データを浮動小数点数として取り扱って行われている。
【0006】
一方、レンダリング部も、通常、一つのプロセッサチップとして実現されるが、その演算は、各データを固定小数点数として取り扱って行われている。これは、回路規模や演算速度の点で、レンダリング部の行う演算を浮動小数点数で行うことが困難であるなどの理由によるものである。
【0007】
また、レンダリング部内において取り扱う固定小数点数の小数点のビット位置は、データの種類によって異なるのが通常である。これは、データの種別毎に、良質な画像の生成のために要求される精度が異なることなどによるものである。
【0008】
このように、従来のグラフィックス処理装置では、ジオメトリ部は浮動小数点数でデータを取り扱い、レンダリング部では固定小数点数でデータを取り扱うというように、両者で取り扱うデータの数表現が異なっていた。そこで、従来は、ジオメトリ部において、演算後のデータの浮動小数点数から固定少数点数への変換を行い、固定小数点数に変換したデータをレンダリング部に渡すようにしていた。たとえば、前掲の特開平8−161525号公報記載の装置では、浮動小数点数に4096を乗じた数を整数表現で表すことにより、この整数表現で表されたデータが、小数部12ビットの固定小数点数として正しく数を表すようにしている。
【0009】
【発明が解決しようとする課題】
このように、従来のグラフィックス処理装置では、ジオメトリ部において浮動小数点数から固定小数点数への変換を行う必要があった。また、この固定小数点数への変換の内容は、レンダリングが必要とする固定小数点数の小数点のビット位置がデータの種類によって異なるために、データの種類毎に異なるものとなっていた。
【0010】
ここで、このようにジオメトリ部で浮動小数点数から固定小数点数への変換を行うことは、ジオメトリ部の負担を重くし、また、この間、ジオメトリ部の演算器が浮動小数点数から固定小数点数への変換に使用されるため、ジオメトリ部は、座標変換などの本来の処理を行えず、グラフィックス処理装置全体のスループットを低下させる。また、ジオメトリ部をプログラムで動作させる場合には、データの種類毎に異なった浮動小数点数から固定小数点数への変換の手順をプログラム中に定義せねばならない。
【0011】
そこで、本発明は、浮動小数点数から固定小数点数への変換のために要する処理速度の低下を削減することのできるグラフィックス処理装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
前記目的達成のために本発明は、描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有することを特徴とする特徴とするグラフィックス処理装置を提供する。
【0013】
このような本発明に係るグラフィック処理装置によれば、プロセッサとレンダリング部の間に、浮動小数点データの固定小数点データへの変換を行うデータ変換器を設けたので、パイプライン式に、プロセッサの処理と浮動小数点データから固定小数点データへの変換を行え、高速なグラフィックス処理が可能となる。また、個々の浮動小数点データ毎に、これを変換する固定小数点データの小数点のビット位置を変更できるので、多種多様なデータに対応可能である。
【0014】
【発明の実施の形態】
以下、本発明に係るグラフィックス処理装置の実施形態について説明する。
【0015】
まず、第一の実施形態について説明する。
【0016】
図1に、本実施形態に係るグラフィックス処理装置の構成を示す。
【0017】
図示するように、本実施形態に係るグラフィックス処理装置は、ジオメトリプロセッサ50、データ変換器100、レンダリングプロセッサ500、フレームメモリ600から構成される。
【0018】
また、データ変換器100は、コントロール部400、スケールファクタ部300、フォーマット変換部200から構成される。
【0019】
ここで、図2に図1に示したグラフィックス処理装置を適用したコンピュータの構成を示す。
【0020】
図示するように、本コンピュータにおいて、バス14を介して、CPU10、メモリ20、外部記憶装置12、キーボードやマウスやペン入力タブレットなどの入力装置13が連結されている。また、バス14上には拡張カードを搭載するためのスロット15が設けられており、拡張カードとして実現された本グラフィックス処理装置100が、このスロットを介してバス14に接続している。また、グラフィックス処理装置には、表示装置であるCRT700が接続されている。
【0021】
このような構成において、CPU10はメモリ14から読み出したアプリケーションを実行し、三角形、直線といったグラフィックス・コマンドと浮動小数点数で与えられる頂点座標、法線ベクトル、テクスチャ等からなるグラフィックスデータを生成し、システムバスを介してジオメトリプロセッサ50に与える。
【0022】
ジオメトリプロセッサ50は前記グラフィックスデータに対し、座標変換、クリッピングの処理、光源に対する輝度の計算等を行い、三角形や直線といったコマンドと、ジオメトリ処理後の座標、輝度データを、スケールファクタと浮動小数点データ列からなる図形データに変換し、データ変換部100に出力する。
【0023】
データ変換器100は、ジオメトリプロセッサ50から渡された図形データを、固定小数点データ列に変換した描画データをレンダリングプロセッサ500に渡す。
【0024】
レンダリングプロセッサ500は、データ変換部100が図形データを固定小数点数に変換した描画データが示す直線や三角形等のデータを画素に展開して、フレームメモリ600との間でZ比較、アルファブレンド等の演算を行い、フレームメモリ600に演算結果として得られる画素を格納する処理を行う。
【0025】
フレームメモリ600は常時読み出され、表示装置であるCRT700にフレームメモリ600の内容が表示される。
【0026】
なお、本実施形態に係るグラフィックス処理装置は、図2に示したものの他、ゲーム装置や図2以外の構成をとるコンピュータやワードプロセッサなど多種多様な装置に適用することができる。
【0027】
以下、グラフィックス処理装置の詳細について、本発明の最も特徴的部位であるデータ変換器100を中心に説明する。
【0028】
まず、データ変換器100にジオメトリプロセッサ50から入力する図形データと、データ変換器100からレンダリングプロセッサ500に出力する描画データについて説明する。
【0029】
図3に示すように、ジオメトリプロセッサ50からデータ変換器100に与える図形データは、コマンドコード、スケールデータ、浮動小数点データ1から8で構成されている。
【0030】
例えば、直線の図形データは、
コマンドコードに直線の描画コマンドと転送数7とアドレスが入り、
スケールデータに浮動小数点データ1から7を固定小数点データ1から7に変換する際に使用するスケールファクタが入り、
浮動小数点データ1に浮動小数点データの始点X座標が入り、
浮動小数点データ2に浮動小数点データの始点のY座標が入り、
浮動小数点データ3に浮動小数点データの終点のX座標が入り、
浮動小数点データ4に浮動小数点データの終点のX座標が入り、
浮動小数点データ5に浮動小数点データの輝度Rが入り、
浮動小数点データ6に浮動小数点データの輝度Gが入り、
浮動小数点データ7に浮動小数点データの輝度Bが入る。
【0031】
図3に示すように、データ変換器100は、このような図形データを受け取り、コマンドコードと、浮動小数点データ1から8を固定小数点データに変換した固定小数点データ1から8を、描画データとしてレンダリングプロセッサ500に渡す。
【0032】
たとえば、上記直線の図形データを変換した描画データは、
コマンドコードに直線の描画コマンドと転送数7とアドレスが入り、
固定小数点データ1に固定小数点データの始点X座標が入り、
固定小数点データ2に固定小数点データの始点のY座標が入り、
固定小数点データ3に固定小数点データの終点のX座標が入り、
固定小数点データ4に固定小数点データの終点のX座標が入り、
固定小数点データ5に固定小数点データの輝度Rが入り、
固定小数点データ6に固定小数点データの輝度Gが入り、
固定小数点データ7に固定小数点データの輝度Bが入ることになる。
【0033】
ここで、図4に、以上に示したデータ変換器100の入出力データのフォーマットを示す。
【0034】
コマンドコードは、オペレーション・コード、その他の制御コード、転送数、アドレスで構成される。オペレーション・コードはレンダリングプロセッサ500に指示する動作内容を記し、転送数はレンダリングプロセッサ500に渡す固定小数点数のデータ数を記し、アドレスは、図形データの書き込み先のレンダリングプロセッサ500のレジスタを記す。その他の制御コードには、必要に応じて、ジオメトリプロセッサ50から、レンダリングプロセッサ500またはデータ変換器100に伝えたい制御情報を格納する。
【0035】
次に、スケールデータはScale1からScale8まであり、各Scaleにはスケールファクタが記されている。Scale1は、図3の浮動小数点データ1及び固定小数点データ1に対応しており、Scale2は、浮動小数点データ2及び固定小数点データ2に対応し、以下、Scale3〜Scale8も同様である。ここで、例えば、Scale1の値が3であれば、これはデータ変換器100からレンダリングプロセッサ500に渡す固定小数点データ1の小数点の位置を最下位から3ビット目とすることを示しており、Scale2の値が5ならば、データ変換器100からレンダリングプロセッサ500に渡す固定小数点データ2の小数点の位置を最下位から5ビット目とすることを表している。
【0036】
次に、浮動小数点データは、公知のIEEEの単精度浮動小数点表示で、符号1ビット、指数8ビット、仮数23ビットからなる。
【0037】
最後に、固定小数点データは、符号、整数部、小数部からなり、小数点のビット位置は、スケールファクタに従って変化する。
【0038】
以下、データ変換器100の動作について説明する。
【0039】
データ変換器100において、コントロール部400は、ジオメトリプロセッサ50が生成するコマンドコード、スケールデータ、浮動小数点データからなる図形データのコマンドコードをデコードし、浮動小数点データを固定小数点データに変換するための、スケールファクタのセットと、どのスケールファクタを使うかの指示をスケールファクタ部300に与える。
【0040】
スケールファクタ部300は、コントロール部400からスケールファクタ列のセットと、どのスケールファクタを使うかの指示を行う制御信号に従って動作し、フォーマット変換部200にスケールファクタ、すなわち固定小数点数の小数点のビット位置を与える。
【0041】
フォーマット変換部200は、スケールファクタ部300から受け取ったスケールファクタに対応するように、ジオメトリプロセッサ50からの浮動小数点データを固定小数点データに変換し、レンダリングプロセッサ500に与える。
【0042】
以下、各部の詳細について説明する。
【0043】
図5に、コントロール部400の構成を示す。
【0044】
コントロール部400は、データ変換器100の状態の管理と、ジオメトリプロセッサ50とレンダリングプロセッサ500に対して図形及び描画データの受け渡しの制御を行うシーケンサ410と、レンダリングプロセッサ500に渡す固定小数点数のデータ数を管理するカウンタ回路420と、コマンドコード中に含まれる転送数を記憶するLENレジスタ430から構成される。
【0045】
シーケンサ410が管理する状態は、データ変換器100がジオメトリプロセッサ50からコマンドコードを受けている状態と、スケールデータを受けている状態と、浮動小数点データ1から8を受けている状態がある。
【0046】
シーケンサ410は、コマンドコードを受けている状態では、LENレジスタ430にコマンドコード中の転送数をセットする指示を出し、カウンタ回路420に、レンダリングプロセッサ500に渡した固定小数点データ数を示すCNTレジスタの、初期化指示を出し、レンダリングプロセッサ500に描画データのうちのコマンドコードの書き込み要求DC_W信号を出し、コマンドコードをレンダリングプロセッサ500に渡す。そして、レンダリングプロセッサ500から描画データコマンドコードを受けつけたことを表す信号RP_ACC信号が返ってきたら、ジオメトリプロセッサ50にコマンドコードを受けつけたことを表す信号DC_ACC信号を出し、状態をスケールデータを受けている状態に遷移する。
【0047】
次に、シーケンサ410は、スケールデータを受けている状態では、スケールファクタ部300にスケールデータを書き込む指示SET信号を出し、ジオメトリプロセッサ50にスケールデータを受け付けたことを表す信号DC_ACC信号を出し、状態を浮動小数点データ1から8を受けている状態に遷移する。
【0048】
次に、シーケンサ410は、浮動小数点データ1から8を受けている状態では、レンダリングプロセッサ500に固定小数点データを書き込む要求DC_W信号を出し、レンダリングプロセッサ500から固定小数点データを受けつけたことを表す信号RP_ACC信号が返ってきたら、ジオメトリプロセッサ50に図形データを受けつけたことを表す信号DC_ACC信号を出す。
【0049】
また、シーケンサ410は、浮動小数点データ1から8を受けている状態において、カウンタ回路420から、コマンドコードを受けている状態に戻す指示を受けた場合は、コマンドコードを受けている状態に遷移する、受けなかった場合は、上述した浮動小数点データ1から8を受けている状態の動作を繰り返す。
【0050】
ここで、カウンタ回路420は、次のようにして、コマンドコードを受けている状態に戻す指示を出力する。
【0051】
前述したように、LENレジスタ430は、コマンドコード中の転送数を記憶するレジスタであり、シーケンサ410から、コマンドコード中の転送数をセットする指示に従い記憶し、その記憶した値をカウンタ回路420に出力する。カウンタ回路420は、CNTレジスタと比較器から構成されている。CNTレジスタは、シーケンサ410から初期化の指示を受けたらレジスタの値を0に初期化し、スケールファクタ部300にCNTレジスタの値を与え、シーケンサ410が浮動小数点データ1から8を受けている状態で、レンダリングプロセッサ500から描画データ固定小数点データを受けつけた信号RP_ACC信号が帰ってきた場合に、CNTレジスタの値をインクリメントする。そして、比較器は、インクリメントを実行したCNTレジスタの値とLENレジスタの値を比較し、CNTレジスタの値とLENレジスタの値が一致したら、シーケンサ410にコマンドコードを受けている状態に戻す指示を与える。
【0052】
次に、図6に、スケールファクタ部300の構成を示す。
【0053】
図示するように、スケールファクタ部300は、レジスタS1 311、S2 312、S3313、S4 314、S5 315、S6 316、S7 317、S8 318とセレクタから構成される。
【0054】
レジスタS1 311からS8 318は、浮動小数点データ1から8毎に、対応するスケールファクタを保持するレジスタであり、コントロール部400から書き込み指示SET信号を受けたら、ジオメトリプロセッサ50から渡される32ビットのスケールデータを4ビットずつに分配して書き込む。
【0055】
セレクタ320は、レジスタS1 311からS8 318の値をコントロール部400から入力されるカウンタ値CNT信号により1つ選択しフォーマット変換部200に出力する。これにより、図形データの浮動小数点データ1から8毎に、対応するスケールファクタをフォーマット変換部200与えることができる。
【0056】
次に、図7に、フォーマット変換部200の構成を示す。
【0057】
図示するように、フォーマット変換部200は、スケールファクタと浮動小数点数の指数からシフト量を求める指数処理部210と、浮動小数点数の仮数を右シフトして正の固定小数点数に変換する仮数シフト部230と、浮動小数点数の符号がマイナスならば仮数シフト部で求めた正の固定小数点数を負の固定小数点数に変換する符号処理部250から構成される。
【0058】
指数処理部210は、スケールファクタ部300から出力されるスケールファクタの値と浮動小数点数の指数を加算し、加算結果に対し127のオフセット値を引いてオフセット補正を行い、オフセット補正を行ったデータに対して、下位5ビットだけ抜き出してビット反転を行うことで、仮数シフト部230のシフト量を求める。
【0059】
ここで、加算結果に対し127のオフセット値を引くのは、浮動小数点数の指数にはIEEE規格で127のオフセットが付加されているからである。また、下位5ビットだけ抜き出すのは、32ビットの固定小数点数に変換するのにシフト量は5ビットの情報だけしか必要としないためである。またビット反転を行うのは、指数の値が左シフトを対象としているのを右シフトに変換するためである。
【0060】
また、指数処理部210は、スケールファクタ部300から出力されるスケールファクタの値と浮動小数点数の指数を加算した値が、定数127未満ならば、32ビットの固定小数点数に変換しようとしても値が小さく表現しきれないので、符号処理部250に固定小数点数のデータを0にクランプする指示を出力する処理も行う。
【0061】
次に、仮数シフト部230は、最上位ビットに1を入れ、ビット30〜8に浮動小数点数の仮数23ビット入れ、ビット7〜0ビットを0とした32ビットの係数を求め、この32ビットの係数を指数処理部210が求めたシフト量分右シフトを行い、正の固定小数点数に変換する。なお、32ビットの係数の最上位ビットに1を入れるのは、IEEE規格で仮数の最上位の1が省略されているためである。
【0062】
次に、符号処理部250は、浮動小数点数の符号がマイナスならば、仮数シフト部230で求めた正の固定小数点データを負の固定小数点データに変換し、さらに、指数処理部210からクランプの指示があった場合には固定小数点データを0にして、レンダリングプロセッサ500に固定小数点データを渡す。
【0063】
ここで、以下に、2.625の浮動小数点数を小数部が3ビットの固定小数点数に変換する例を示しておく。
【0064】
2.625の浮動小数点数は、符号ビットが (0)2、指数が(10000000)2、
仮数が(01110000000000000000000)2で表現される。
【0065】
指数処理部210で、小数点のビット位置と指数を加算すると(10000011)2となり、127を引いてオフセット補正を行うと(00000100)2になる。
【0066】
それから、下位5ビットを抜き出すと(00100)2になり、
ビット反転を行うと(11011)2になり、シフト量は27になる。
【0067】
仮数シフト部230の32ビットの係数は、
(10101000000000000000000000000000)2となり、
これを27ビット右シフトすると、
(00000000000000000000000000010101)2となり、正の固定小数点数を求めることができる。
【0068】
整数部である下位から4ビット以上は2を示し、また小数部である下位3ビットは、
0.625を示している。
【0069】
符号処理部250では、符号ビットが(0)2正を示しているので、正の固定小数点数を負の固定小数点数に変換を行わないで、レンダリングプロセッサ500に渡す。
【0070】
以上、本発明に係るグラフィックス処理装置の第一の実施形態について説明した。
【0071】
以下、本発明に係るグラフィックス処理装置の第二の実施形態について説明する。
【0072】
本第二実施形態に係るグラフィック処理装置の全体的な構成は、先に図1に示した構成と同様であり、また、図2に示したようにコンピュータに適用することができる。
【0073】
図8に、本第二実施形態において、データ変換器100にジオメトリプロセッサ50から入力する図形データと、データ変換器100からレンダリングプロセッサ500に出力する描画データを示す。
【0074】
図示するように、本第二実施形態の図形データは、前記第一実施形態において、データ変換器100にジオメトリプロセッサ50から入力する図形データからスケールデータを省いたものとなっている。
【0075】
次に、図9に、データ変換器100の入出力データフォーマットを示す。
【0076】
図示するように、浮動小数点データ、固定小数点データ、コマンドデータのフォーマットは、第一実施形態で説明したものと同様である。
【0077】
ここで、コマンドコードのオペレーション・コードから、ジオメトリプロセッサ50の出力する図形データの構成を特定することができる。
【0078】
例えば、オペレーション・コードが、(0001)2の場合、これは直線を描画するコマンドを意味しており、この場合、浮動小数点データ1から7は、始点X、Y座標、終点X、Y座標、輝度R、G、Bを示すことが定まっている。また、(0010)2の場合、これは三角形を描画するコマンドを意味しており、これに対して、浮動小数点データ1から5は、頂点X、Y座標、輝度R、G、Bを示すことが定まっている。なお、1個の三角形をCRT700に表示する場合、三角形の図形データを3回、レンダリングプロセッサ500に与えることになる。
【0079】
このようにオペレーションコードの値に対して、そのオペレーションコードを含むコマンドコードに続く各浮動小数点データの種別が定まる。そこで、本第二実施形態では、データ変換器100において、例えばオペレション・コードが(0001)2の場合は、浮動小数点データ1始点X座標を、小数点が最下位から3ビット目に位置する固定小数点データ1に変換を行い、浮動小数点データ2始点Y座標を、小数点が最下位から2ビット目に位置する固定小数点データ2に変換を行い、オペレション・コードが(0010)2の場合は、浮動小数点データ1頂点X座標を小数点が最下位から4ビット目に位置する固定小数点データ1に変換を行い、浮動小数点データ2頂点Y座標を小数点が最下位から2ビット目に位置する固定小数点データ2に変換を行うと言ったように、オペレーションコードと浮動小数点データの位置によって、その浮動小数点データを変換する固定小数点データの小数点のビット位置を、予め設定された対応に従って定めることにより、前記第一実施形態のようにジオメトリプロセッサ部50からスケールデータを受け取ることなく、各浮動小数点データを、そのデータの種別に応じた小数点のビット位置をもつ固定小数点数に変換する。
【0080】
以下、このような変換を行うデータ変換器100の詳細について説明する。データ変換器100の全体的な構成は、図1に示したものと同様であり、コントロール部400、スケールファクタ部300、フォーマット変換部200から構成されている。
【0081】
図10に、コントロール部400の構成を示す。
【0082】
図示するように、コントロール部400は、データ変換器100の状態の管理と、ジオメトリプロセッサ50とレンダリングプロセッサ500に対して図形及び描画データの受け渡しの制御を行うシーケンサ415と、レンダリングプロセッサ500に渡すデータの数を管理するカウンタ回路420と、コマンドコード中の転送数をオペレーション・コードから検出する転送数ルックアップテーブル435から構成される。
【0083】
シーケンサ415が管理する状態は、データ変換器がジオメトリプロセッサ50からコマンドコードを受けている状態と、浮動小数点データ1から8を受けている状態がある。
【0084】
シーケンサ415は、コマンドコードを受けている状態では、コマンドコードのオペレーションコードをCOMレジスタに記憶し、オペレーションコードの内容を転送数ルックアップテーブル435に出力し、カウンタ回路420にCNTレジスタの初期化指示を出し、レンダリングプロセッサ500に描画データコマンドコードの書き込み要求DC_W信号を出し、コマンドコードをレンダリングプロセッサ500に渡す。また、レンダリングプロセッサ500から描画データコマンドコードを受け付けたことを表す信号RP_ACC信号が返ってきたら、ジオメトリプロセッサ50に図形データを受け付けたことを表す信号DC_ACC信号を出し、状態を浮動小数点データ1から8を受けている状態に遷移する。
【0085】
次に、浮動小数点データ1から8を受けている状態では、シーケンサ415は、スケールファクタ部300にオペレーションコードが記憶されたCOMレジスタの値を与え、レンダリングプロセッサ500に固定小数点データを書き込む要求DC_W信号を出し、レンダリングプロセッサ500から固定小数点データを受け付けたことを表す信号RP_ACC信号が返ってきたら、ジオメトリプロセッサ50に浮動小数点データを受けつけたことを表す信号DC_ACC信号を出す。また、シーケンサ415は、浮動小数点データ1から8を受けている状態において、カウンタ回路420から、コマンドコードを受けている状態に戻す指示を受けた場合は、コマンドコードを受けている状態に遷移する、受けなかった場合は、上述した浮動小数点データ1から8を受けている状態の動作を繰り返す。
【0086】
転送数ルックアップテーブル435は、オペレーション・コード毎に、固定小数点データの転送数の値がL1からL16まで登録されており、その中から1つの値をシーケンサ415から出力されるCOMレジスタの値に従って、セレクタ436によりで選択し、カウンタ回路420に与える。
【0087】
例えば、L1に転送数7、L2に転送数5が登録されており、COMレジスタの値オペレーション・コードが(0001)2の場合、転送数7がカウンタ回路420に与えられ、COMレジスタの値が(0010)2の場合は、転送数5が与えられる。
【0088】
カウンタ回路420は、CNTレジスタと比較器から構成されている。CNTレジスタは、シーケンサ415から初期化の指示を受けたらレジスタの値を0に初期化し、スケールファクタ部300にCNTレジスタの値を与え、シーケンサ415が浮動小数点データ1から8を受けている状態で、レンダリングプロセッサ500から描画データ固定小数点データを受けつけた信号RP_ACC信号が帰ってきた場合に、CNTレジスタの値をインクリメントする。そして、比較器は、インクリメントを実行したCNTレジスタの値と転送数ルックアップテーブル435から送られた転送数を比較し、両者の値が一致したら、シーケンサ415にコマンドコードを受けている状態に戻す指示を与える。
【0089】
図11に、スケールファクタ部300の構成を示す。
【0090】
スケールファクタ部300は、オペレーション・コード毎にScale1からScale16までのスケールファクタを登録するテーブルを備えている。
【0091】
Scale1のテーブルに格納された複数のスケールファクタの内の一つが、コントロール部400から出力されるCOMレジスタの値COM信号に従ってセレクタ341によって1つ選択されセレクタ360に出力される。Scale2からScale16についても同様にひとつづつCOMレジスタの値COM信号に対応するスケールファクタが選択され、セレクタ360に出力される。
【0092】
次に、各セレクタ341〜356で選択されたScale1からScale16まで各数値は、セレクタ360で、コントロール部から入力されるカウンタの値CNT信号によりひとつづつ選択されフォーマット変換部200に出力される。これにより、図形データの浮動小数点データ1から8毎に、対応するスケールファクタをフォーマット変換部200与えることができる。
【0093】
フォーマット変換部200は、前述した第一実施形態のフォーマット変換部200と同様である。
【0094】
以上、本発明の第二実施形態について説明した。
【0095】
なお、本第2実施形態において、オペレーション・コードに対応して定まる転送数を格納した転送数ルックアップテーブルL1〜L16及びスケールファクタのテーブルS1〜S16の内容は、たとえば、図2のCPU10や、ジオメトリプロセッサ50から、任意の値を設定可能とするようにしてもよい。このようにすることにより、図形データの形式を適宜変更可能とすることができる。
【0096】
以下、本発明の第3の実施形態について説明する。
【0097】
本第3実施形態は、第1実施形態に係るグラフィック処理装置において、データ変換器100に、浮動小数点データを固定小数点データに変換せずに、ジオメトリプロセッサ50から受け取ったままの形式でレンダリングプロセッサ500に渡す機能を備えたものである。
【0098】
このような機能は、レンダリングプロセッサ500においても浮動小数点データとして処理するデータが存在する場合や、図12に示すように、コマンドコードにオペレーションデータとして引き続くデータ中に、浮動小数点データのみならず、コマンドコードを含むデータなどが存在する形式を採用する場合に、これらのデータを、そのままレンダリングプロセッサ500に渡す際に有効である。
【0099】
図13に、この場合のコマンドデータのフォーマットを示す。
【0100】
図13に示すように、本第3実施形態では、コマンドコードのオペレーションコードに続く、その他の制御コード中に、固定小数点に変換しないデータを示す変換制御コードを付加している。
【0101】
図中の、(00100000)2は、値(1)2の位置、すなわち前から3番目のデータは、データ変換器100において、固定小数点データに変換せずに、そのままレンダリングプロセッサ500に出力すべきことを表している。
【0102】
以下、本実施形態に係るデータ変換器100について説明する。
【0103】
データ変換器100の全体的な構成は、図1に示したものと同様であり、コントロール部400、スケールファクタ部300、フォーマット変換部200から構成されている。また、コントロール部400、スケールファクタ部300は、前述した第1実施形態で説明したものと同じものを用いることができる。
【0104】
図14に、残るフォーマット変換部200の構成を示す。
【0105】
図示するように、本実施形態に係るフォーマット変換部210は、図7に示したフォーマット変換部200の構成に、制御コード処理部290と、セレクタ291を付加したものである。
【0106】
制御コード処理部290内の制御コードレジスタには、コントロール部400のシーケンサ410が、コマンドコードを受けている状態のとき、コマンドコード中の、その他の制御コード中の変換制御コードが記憶される。
【0107】
制御コード処理部290は、通常はセレクタ291が符号処理部250が出力する固定小数点データを選択するように、セレクタ291を制御するが、コントロール部400のカウンタ回路420の出力する値が、レジスタに格納した変換制御コードがデータを変換しないことを表す位置の値(変換制御コードが(00100001)2であれば3と8)と同じになったときには、セレクタ291が、ジオメトリプロセッサ50から受け取った固定小数点データを選択するように、セレクタ291を制御する。
【0108】
以上、本発明の第3の実施形態について説明した。
【0109】
なお、第2実施形態で説明したグラフィックス処理装置において、データ変換器100のフォーマット変換部200を図4に示したように構成することにより、本第3実施形態を、第1実施形態への適用と同様にして第2実施形態に適用することもできる。
【0110】
以上、説明した各実施形態によれば、データ変換器100を、ジオメトリプロセッサ50とレンダリングプロセッサ500の間に設け、パイプライン式に、ジオメトリプロセッサ10の処理と浮動小数点データから固定小数点データへの変換を行うので、高速なグラフィックス処理が可能となる。また、データ種別毎に小数点のビット位置を任意に制御したり、また、浮動小数点数から固定小数点数への変換を行わないようにすることができるので、多種多様なデータに対応可能である。
【0111】
【発明の効果】
以上のように、本発明によれば、浮動小数点数から固定小数点数への変換のために要する処理速度の低下を削減することのできるグラフィックス処理装置を提供することができる。
【図面の簡単な説明】
【図1】グラフィックス処理装置の構成を示すブロック図である。
【図2】グラフィックス処理装置を適用したコンピュータの構成を示すブロック図である。
【図3】本発明の第1実施形態に係るデータ変換器の入出力データを示す図である。
【図4】本発明の第1実施形態に係るデータ変換器の入出力データフォーマットを示す図である。
【図5】本発明の第1実施形態に係るコントロール部の構成を示すブロック図である。
【図6】本発明の第1実施形態に係るスケールファクタ部の構成を示すブロック図である。
【図7】本発明の第1実施形態に係るフォーマット変換部の構成を示すブロック図である。
【図8】本発明の第2実施形態に係るデータ変換器の入出力データを示す図である。
【図9】本発明の第2実施形態に係るデータ変換器の入出力データフォーマットを示す図である。
【図10】本発明の第2実施形態に係るコントロール部の構成を示すブロック図である。
【図11】本発明の第2実施形態に係るスケールファクタ部の構成を示すブロック図である。
【図12】本発明の第3実施形態に係るデータ変換器の入出力データを示す図である。
【図13】本発明の第3実施形態に係るコマンドデータのフォーマットを示す図である。
【図14】本発明の第3実施形態に係るフォーマット変換部の構成を示すブロック図である。
【符号の説明】
10・・・CPU、50・・・ジオメトリプロセッサ、100・・・データ変換器、200・・・フォーマット変換部、210・・・指数処理部、230・・・仮数シフト部、250・・・符号処理部、290・・・制御コード処理部、291・・・セレクタ、300・・・スケールファクタ部、311〜318・・・レジスタS1〜S8、320・・・セレクタ、341〜356・・・セレクタ、360・・・セレクタ。400・・・コントロール部、410・・・シーケンサ、415・・・シーケンサ、435・・・転送数ルックアップテーブル、436・・・セレクタ、420・・・カウンタ回路、430・・・LENレジスタ、500・・・レンダリグプロセッサ、600・・・フレームメモリ、700・・・CRT、
Claims (5)
- 描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有し、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、個々の浮動小数点データを変換すべき固定小数点データの小数点のビット位置を指定するスケールファクタデータを出力し、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データについて、前記プロセッサが出力する前記図形データに含まれるスケールファクタデータが指定する小数点のビット位置とすること
を特徴とするグラフィックス処理装置。 - 描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有し、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、前記浮動小数点データ列が特定する図形の種別を表すコマンドを出力し、
前記データ変換器は、図形データに含まれる各浮動小数点データを変換する固定小数点データの小数点のビット位置を、前記コマンド毎に対応して記憶するスケールファクタテーブルを備え、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データと同じ図形データに含まれる前記コマンドに対応して前記スケールファクタテーブルに記憶された、小数点のビット位置とすること
を特徴とするグラフィックス処理装置。 - 請求項2記載のグラフィックス処理装置であって、
前記データ変換器のスケールファクタテーブルは、図形データに含まれる各浮動小数点データを変換する固定小数点データの小数点のビット位置を、浮動小数点データの図形データ中の位置と前記コマンド毎に対応して記憶するスケールファクタテーブルを備え、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データと同じ図形データに含まれる前記コマンドと当該浮動小数点データの図形データ中の位置に対応して前記スケールファクタテーブルに記憶された、小数点のビット位置とすること
を特徴とするグラフィックス処理装置。 - 請求項1、2または3記載のグラフィックス処理装置であって、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、前記浮動小数点データ列に含まれる浮動小数点データのうち固定小数点データに変換しない浮動小数点データを指定する制御コードを出力し、
前記データ変換器は、前記プロセッサが出力する制御コードが指定する浮動小数点データについては固定小数点データに変換せずに、前記描画データに含め前記レンダリング部に出力することを特徴とするグラフィックス処理装置。 - 請求項1、2、3または4記載のグラフィックス処理装置と、
前記レンダリング部が図形を展開して出力した画素を格納するフレームメモリと、
前記フレームメモリに格納された各画素を順次読み出し表示する表示装置とを備えたこと
を特徴とする情報処理装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01091897A JP3547277B2 (ja) | 1997-01-24 | 1997-01-24 | グラフィックス処理装置 |
CA002227531A CA2227531C (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
US09/009,588 US6049343A (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
CA002418916A CA2418916C (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
US10/391,235 US20030163502A1 (en) | 1997-01-20 | 2003-03-19 | Graphics processing unit and graphics processing system |
US11/484,812 US20060250397A1 (en) | 1997-01-20 | 2006-07-12 | Graphics processing unit and graphics processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01091897A JP3547277B2 (ja) | 1997-01-24 | 1997-01-24 | グラフィックス処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10207688A JPH10207688A (ja) | 1998-08-07 |
JP3547277B2 true JP3547277B2 (ja) | 2004-07-28 |
Family
ID=11763641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01091897A Expired - Fee Related JP3547277B2 (ja) | 1997-01-20 | 1997-01-24 | グラフィックス処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3547277B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7236995B2 (en) * | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
-
1997
- 1997-01-24 JP JP01091897A patent/JP3547277B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10207688A (ja) | 1998-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060250397A1 (en) | Graphics processing unit and graphics processing system | |
US6954204B2 (en) | Programmable graphics system and method using flexible, high-precision data formats | |
US5268995A (en) | Method for executing graphics Z-compare and pixel merge instructions in a data processor | |
US5081698A (en) | Method and apparatus for graphics display data manipulation | |
US4821209A (en) | Data transformation and clipping in a graphics display system | |
US8098257B2 (en) | Filtering unit for floating-point texture data | |
US6417858B1 (en) | Processor for geometry transformations and lighting calculations | |
JP2002008060A (ja) | データ処理方法、記録媒体及びデータ処理装置 | |
US5912830A (en) | System and method for conditionally calculating exponential values in a geometry accelerator | |
US6219062B1 (en) | Three-dimensional graphic display device | |
JP3146308B2 (ja) | マトリツクス演算回路 | |
JP3547277B2 (ja) | グラフィックス処理装置 | |
US5038309A (en) | Number conversion apparatus | |
JPH09134452A (ja) | コンピュータ・グラフィックス・ディスプレイ・システムにおける奥行きバッファ値の高速補間方法及びグラフィックス・システム | |
JPH07295787A (ja) | 演算処理装置 | |
CA2418916C (en) | Graphics processing unit and graphics processing system | |
EP0410778A2 (en) | Graphics processor having a floating point coprocessor | |
US6903750B2 (en) | Controlling an output device | |
JPH10207694A (ja) | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム | |
JP4315922B2 (ja) | コンピュータグラフィックスにおける可変精度のデータ圧縮伸長方式および該方式を用いたゲーム機 | |
US5896135A (en) | System and method for generating 3D color images with simulated light sources | |
JP2007128180A (ja) | 演算処理装置 | |
KR19990078036A (ko) | 유효한부동점제트버퍼링을구현하기위한방법및장치 | |
EP0485833A2 (en) | A method for executing graphics color saturating arithmetic instructions in a data processor | |
JPH11242585A (ja) | 除算回路およびグラフィック演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040413 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110423 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |