(57)【特許請求の範囲】
【請求項１】
描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有し、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、個々の浮動小数点データを変換すべき固定小数点データの小数点のビット位置を指定するスケールファクタデータを出力し、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データについて、前記プロセッサが出力する前記図形データに含まれるスケールファクタデータが指定する小数点のビット位置とすること
を特徴とするグラフィックス処理装置。
【請求項２】
描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有し、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、前記浮動小数点データ列が特定する図形の種別を表すコマンドを出力し、
前記データ変換器は、図形データに含まれる各浮動小数点データを変換する固定小数点データの小数点のビット位置を、前記コマンド毎に対応して記憶するスケールファクタテーブルを備え、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データと同じ図形データに含まれる前記コマンドに対応して前記スケールファクタテーブルに記憶された、小数点のビット位置とすること
を特徴とするグラフィックス処理装置。
【請求項３】
請求項２記載のグラフィックス処理装置であって、
前記データ変換器のスケールファクタテーブルは、図形データに含まれる各浮動小数点データを変換する固定小数点データの小数点のビット位置を、浮動小数点データの図形データ中の位置と前記コマンド毎に対応して記憶するスケールファクタテーブルを備え、
前記データ変換器の小数点位置変更手段は、前記各浮動小数点データを変換する固定小数点データの小数点のビット位置を、当該浮動小数点データと同じ図形データに含まれる前記コマンドと当該浮動小数点データの図形データ中の位置に対応して前記スケールファクタテーブルに記憶された、小数点のビット位置とすること
を特徴とするグラフィックス処理装置。
【請求項４】
請求項１、２または３記載のグラフィックス処理装置であって、
前記プロセッサは、前記図形データとして、前記浮動小数点データ列と共に、前記浮動小数点データ列に含まれる浮動小数点データのうち固定小数点データに変換しない浮動小数点データを指定する制御コードを出力し、
前記データ変換器は、前記プロセッサが出力する制御コードが指定する浮動小数点データについては固定小数点データに変換せずに、前記描画データに含め前記レンダリング部に出力することを特徴とするグラフィックス処理装置。
【請求項５】
請求項１、２、３または４記載のグラフィックス処理装置と、
前記レンダリング部が図形を展開して出力した画素を格納するフレームメモリと、
前記フレームメモリに格納された各画素を順次読み出し表示する表示装置とを備えたこと
を特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３Ｄグラフィックスなどのグラフィックス処理を行うグラフィックス処理装置に関し、特に、その高速化の技術に関するものである。
【０００２】
【従来の技術】
従来のグラフィックス処理装置としては、たとえば、特開平８−１６１５２５号公報記載の装置などが知られている。
【０００３】
これらの従来のグラフィックス処理装置は、通常、座標変換、クリッピング処理等の幾何学的計算をおこなうジオメトリ部と、直線や三角形等の図形を画素に変換し描画の処理を行うレンダリング部から構成される。
【０００４】
このようなグラフィックス処理装置において、３Ｄの各種グラフィックスデータから、これを投影した画像を生成する場合には、まず、ジオメトリ部で、３次元形状の２次元座標への透視変換、クリッピングの処理、光源に対する輝度の計算等を行い、次にレンダリング部で、ジオメトリ部が３次元形状を２次元座標に投影変換した図形データである直線や三角形等のデータを画素に展開して、Ｚ比較やアルファブレンド等の演算を行い、フレームメモリに画像を格納する。
【０００５】
このようなグラフィックス処理装置において、通常、ジオメトリ部は一つのプロセッサチップとして実現されており、このジオメトリ部における演算は、数値の範囲を限定されたり演算精度が落ちないように、各データを浮動小数点数として取り扱って行われている。
【０００６】
一方、レンダリング部も、通常、一つのプロセッサチップとして実現されるが、その演算は、各データを固定小数点数として取り扱って行われている。これは、回路規模や演算速度の点で、レンダリング部の行う演算を浮動小数点数で行うことが困難であるなどの理由によるものである。
【０００７】
また、レンダリング部内において取り扱う固定小数点数の小数点のビット位置は、データの種類によって異なるのが通常である。これは、データの種別毎に、良質な画像の生成のために要求される精度が異なることなどによるものである。
【０００８】
このように、従来のグラフィックス処理装置では、ジオメトリ部は浮動小数点数でデータを取り扱い、レンダリング部では固定小数点数でデータを取り扱うというように、両者で取り扱うデータの数表現が異なっていた。そこで、従来は、ジオメトリ部において、演算後のデータの浮動小数点数から固定少数点数への変換を行い、固定小数点数に変換したデータをレンダリング部に渡すようにしていた。たとえば、前掲の特開平８−１６１５２５号公報記載の装置では、浮動小数点数に４０９６を乗じた数を整数表現で表すことにより、この整数表現で表されたデータが、小数部１２ビットの固定小数点数として正しく数を表すようにしている。
【０００９】
【発明が解決しようとする課題】
このように、従来のグラフィックス処理装置では、ジオメトリ部において浮動小数点数から固定小数点数への変換を行う必要があった。また、この固定小数点数への変換の内容は、レンダリングが必要とする固定小数点数の小数点のビット位置がデータの種類によって異なるために、データの種類毎に異なるものとなっていた。
【００１０】
ここで、このようにジオメトリ部で浮動小数点数から固定小数点数への変換を行うことは、ジオメトリ部の負担を重くし、また、この間、ジオメトリ部の演算器が浮動小数点数から固定小数点数への変換に使用されるため、ジオメトリ部は、座標変換などの本来の処理を行えず、グラフィックス処理装置全体のスループットを低下させる。また、ジオメトリ部をプログラムで動作させる場合には、データの種類毎に異なった浮動小数点数から固定小数点数への変換の手順をプログラム中に定義せねばならない。
【００１１】
そこで、本発明は、浮動小数点数から固定小数点数への変換のために要する処理速度の低下を削減することのできるグラフィックス処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
前記目的達成のために本発明は、描画すべき図形を特定する情報を浮動小数点形式で表した浮動小数点データ列を含む図形データを出力するプロセッサと、
描画すべき図形の内容を固定小数点形式で表した固定小数点データ列を含む描画データに従って、図形を画素に展開して出力するレンダリング部とを備えたグラフィック装置であって、
前記プロセッサが出力する前記図形データに含まれる浮動小数点データを、固定小数点データに変換し、前記描画データとして前記レンダリング部に出力するデータ変換器を備え、
前記データ変換器は、浮動小数点データを変換する固定小数点データの小数点のビット位置を変更する小数点位置変更手段を有することを特徴とする特徴とするグラフィックス処理装置を提供する。
【００１３】
このような本発明に係るグラフィック処理装置によれば、プロセッサとレンダリング部の間に、浮動小数点データの固定小数点データへの変換を行うデータ変換器を設けたので、パイプライン式に、プロセッサの処理と浮動小数点データから固定小数点データへの変換を行え、高速なグラフィックス処理が可能となる。また、個々の浮動小数点データ毎に、これを変換する固定小数点データの小数点のビット位置を変更できるので、多種多様なデータに対応可能である。
【００１４】
【発明の実施の形態】
以下、本発明に係るグラフィックス処理装置の実施形態について説明する。
【００１５】
まず、第一の実施形態について説明する。
【００１６】
図１に、本実施形態に係るグラフィックス処理装置の構成を示す。
【００１７】
図示するように、本実施形態に係るグラフィックス処理装置は、ジオメトリプロセッサ５０、データ変換器１００、レンダリングプロセッサ５００、フレームメモリ６００から構成される。
【００１８】
また、データ変換器１００は、コントロール部４００、スケールファクタ部３００、フォーマット変換部２００から構成される。
【００１９】
ここで、図２に図１に示したグラフィックス処理装置を適用したコンピュータの構成を示す。
【００２０】
図示するように、本コンピュータにおいて、バス１４を介して、ＣＰＵ１０、メモリ２０、外部記憶装置１２、キーボードやマウスやペン入力タブレットなどの入力装置１３が連結されている。また、バス１４上には拡張カードを搭載するためのスロット１５が設けられており、拡張カードとして実現された本グラフィックス処理装置１００が、このスロットを介してバス１４に接続している。また、グラフィックス処理装置には、表示装置であるＣＲＴ７００が接続されている。
【００２１】
このような構成において、ＣＰＵ１０はメモリ１４から読み出したアプリケーションを実行し、三角形、直線といったグラフィックス・コマンドと浮動小数点数で与えられる頂点座標、法線ベクトル、テクスチャ等からなるグラフィックスデータを生成し、システムバスを介してジオメトリプロセッサ５０に与える。
【００２２】
ジオメトリプロセッサ５０は前記グラフィックスデータに対し、座標変換、クリッピングの処理、光源に対する輝度の計算等を行い、三角形や直線といったコマンドと、ジオメトリ処理後の座標、輝度データを、スケールファクタと浮動小数点データ列からなる図形データに変換し、データ変換部１００に出力する。
【００２３】
データ変換器１００は、ジオメトリプロセッサ５０から渡された図形データを、固定小数点データ列に変換した描画データをレンダリングプロセッサ５００に渡す。
【００２４】
レンダリングプロセッサ５００は、データ変換部１００が図形データを固定小数点数に変換した描画データが示す直線や三角形等のデータを画素に展開して、フレームメモリ６００との間でＺ比較、アルファブレンド等の演算を行い、フレームメモリ６００に演算結果として得られる画素を格納する処理を行う。
【００２５】
フレームメモリ６００は常時読み出され、表示装置であるＣＲＴ７００にフレームメモリ６００の内容が表示される。
【００２６】
なお、本実施形態に係るグラフィックス処理装置は、図２に示したものの他、ゲーム装置や図２以外の構成をとるコンピュータやワードプロセッサなど多種多様な装置に適用することができる。
【００２７】
以下、グラフィックス処理装置の詳細について、本発明の最も特徴的部位であるデータ変換器１００を中心に説明する。
【００２８】
まず、データ変換器１００にジオメトリプロセッサ５０から入力する図形データと、データ変換器１００からレンダリングプロセッサ５００に出力する描画データについて説明する。
【００２９】
図３に示すように、ジオメトリプロセッサ５０からデータ変換器１００に与える図形データは、コマンドコード、スケールデータ、浮動小数点データ１から８で構成されている。
【００３０】
例えば、直線の図形データは、
コマンドコードに直線の描画コマンドと転送数７とアドレスが入り、
スケールデータに浮動小数点データ１から７を固定小数点データ１から７に変換する際に使用するスケールファクタが入り、
浮動小数点データ１に浮動小数点データの始点Ｘ座標が入り、
浮動小数点データ２に浮動小数点データの始点のＹ座標が入り、
浮動小数点データ３に浮動小数点データの終点のＸ座標が入り、
浮動小数点データ４に浮動小数点データの終点のＸ座標が入り、
浮動小数点データ５に浮動小数点データの輝度Ｒが入り、
浮動小数点データ６に浮動小数点データの輝度Ｇが入り、
浮動小数点データ７に浮動小数点データの輝度Ｂが入る。
【００３１】
図３に示すように、データ変換器１００は、このような図形データを受け取り、コマンドコードと、浮動小数点データ１から８を固定小数点データに変換した固定小数点データ１から８を、描画データとしてレンダリングプロセッサ５００に渡す。
【００３２】
たとえば、上記直線の図形データを変換した描画データは、
コマンドコードに直線の描画コマンドと転送数７とアドレスが入り、
固定小数点データ１に固定小数点データの始点Ｘ座標が入り、
固定小数点データ２に固定小数点データの始点のＹ座標が入り、
固定小数点データ３に固定小数点データの終点のＸ座標が入り、
固定小数点データ４に固定小数点データの終点のＸ座標が入り、
固定小数点データ５に固定小数点データの輝度Ｒが入り、
固定小数点データ６に固定小数点データの輝度Ｇが入り、
固定小数点データ７に固定小数点データの輝度Ｂが入ることになる。
【００３３】
ここで、図４に、以上に示したデータ変換器１００の入出力データのフォーマットを示す。
【００３４】
コマンドコードは、オペレーション・コード、その他の制御コード、転送数、アドレスで構成される。オペレーション・コードはレンダリングプロセッサ５００に指示する動作内容を記し、転送数はレンダリングプロセッサ５００に渡す固定小数点数のデータ数を記し、アドレスは、図形データの書き込み先のレンダリングプロセッサ５００のレジスタを記す。その他の制御コードには、必要に応じて、ジオメトリプロセッサ５０から、レンダリングプロセッサ５００またはデータ変換器１００に伝えたい制御情報を格納する。
【００３５】
次に、スケールデータはＳｃａｌｅ１からＳｃａｌｅ８まであり、各Ｓｃａｌｅにはスケールファクタが記されている。Ｓｃａｌｅ１は、図３の浮動小数点データ１及び固定小数点データ１に対応しており、Ｓｃａｌｅ２は、浮動小数点データ２及び固定小数点データ２に対応し、以下、Ｓｃａｌｅ３〜Ｓｃａｌｅ８も同様である。ここで、例えば、Ｓｃａｌｅ１の値が３であれば、これはデータ変換器１００からレンダリングプロセッサ５００に渡す固定小数点データ１の小数点の位置を最下位から３ビット目とすることを示しており、Ｓｃａｌｅ２の値が５ならば、データ変換器１００からレンダリングプロセッサ５００に渡す固定小数点データ２の小数点の位置を最下位から５ビット目とすることを表している。
【００３６】
次に、浮動小数点データは、公知のＩＥＥＥの単精度浮動小数点表示で、符号１ビット、指数８ビット、仮数２３ビットからなる。
【００３７】
最後に、固定小数点データは、符号、整数部、小数部からなり、小数点のビット位置は、スケールファクタに従って変化する。
【００３８】
以下、データ変換器１００の動作について説明する。
【００３９】
データ変換器１００において、コントロール部４００は、ジオメトリプロセッサ５０が生成するコマンドコード、スケールデータ、浮動小数点データからなる図形データのコマンドコードをデコードし、浮動小数点データを固定小数点データに変換するための、スケールファクタのセットと、どのスケールファクタを使うかの指示をスケールファクタ部３００に与える。
【００４０】
スケールファクタ部３００は、コントロール部４００からスケールファクタ列のセットと、どのスケールファクタを使うかの指示を行う制御信号に従って動作し、フォーマット変換部２００にスケールファクタ、すなわち固定小数点数の小数点のビット位置を与える。
【００４１】
フォーマット変換部２００は、スケールファクタ部３００から受け取ったスケールファクタに対応するように、ジオメトリプロセッサ５０からの浮動小数点データを固定小数点データに変換し、レンダリングプロセッサ５００に与える。
【００４２】
以下、各部の詳細について説明する。
【００４３】
図５に、コントロール部４００の構成を示す。
【００４４】
コントロール部４００は、データ変換器１００の状態の管理と、ジオメトリプロセッサ５０とレンダリングプロセッサ５００に対して図形及び描画データの受け渡しの制御を行うシーケンサ４１０と、レンダリングプロセッサ５００に渡す固定小数点数のデータ数を管理するカウンタ回路４２０と、コマンドコード中に含まれる転送数を記憶するＬＥＮレジスタ４３０から構成される。
【００４５】
シーケンサ４１０が管理する状態は、データ変換器１００がジオメトリプロセッサ５０からコマンドコードを受けている状態と、スケールデータを受けている状態と、浮動小数点データ１から８を受けている状態がある。
【００４６】
シーケンサ４１０は、コマンドコードを受けている状態では、ＬＥＮレジスタ４３０にコマンドコード中の転送数をセットする指示を出し、カウンタ回路４２０に、レンダリングプロセッサ５００に渡した固定小数点データ数を示すＣＮＴレジスタの、初期化指示を出し、レンダリングプロセッサ５００に描画データのうちのコマンドコードの書き込み要求ＤＣ＿Ｗ信号を出し、コマンドコードをレンダリングプロセッサ５００に渡す。そして、レンダリングプロセッサ５００から描画データコマンドコードを受けつけたことを表す信号ＲＰ＿ＡＣＣ信号が返ってきたら、ジオメトリプロセッサ５０にコマンドコードを受けつけたことを表す信号ＤＣ＿ＡＣＣ信号を出し、状態をスケールデータを受けている状態に遷移する。
【００４７】
次に、シーケンサ４１０は、スケールデータを受けている状態では、スケールファクタ部３００にスケールデータを書き込む指示ＳＥＴ信号を出し、ジオメトリプロセッサ５０にスケールデータを受け付けたことを表す信号ＤＣ＿ＡＣＣ信号を出し、状態を浮動小数点データ１から８を受けている状態に遷移する。
【００４８】
次に、シーケンサ４１０は、浮動小数点データ１から８を受けている状態では、レンダリングプロセッサ５００に固定小数点データを書き込む要求ＤＣ＿Ｗ信号を出し、レンダリングプロセッサ５００から固定小数点データを受けつけたことを表す信号ＲＰ＿ＡＣＣ信号が返ってきたら、ジオメトリプロセッサ５０に図形データを受けつけたことを表す信号ＤＣ＿ＡＣＣ信号を出す。
【００４９】
また、シーケンサ４１０は、浮動小数点データ１から８を受けている状態において、カウンタ回路４２０から、コマンドコードを受けている状態に戻す指示を受けた場合は、コマンドコードを受けている状態に遷移する、受けなかった場合は、上述した浮動小数点データ１から８を受けている状態の動作を繰り返す。
【００５０】
ここで、カウンタ回路４２０は、次のようにして、コマンドコードを受けている状態に戻す指示を出力する。
【００５１】
前述したように、ＬＥＮレジスタ４３０は、コマンドコード中の転送数を記憶するレジスタであり、シーケンサ４１０から、コマンドコード中の転送数をセットする指示に従い記憶し、その記憶した値をカウンタ回路４２０に出力する。カウンタ回路４２０は、ＣＮＴレジスタと比較器から構成されている。ＣＮＴレジスタは、シーケンサ４１０から初期化の指示を受けたらレジスタの値を０に初期化し、スケールファクタ部３００にＣＮＴレジスタの値を与え、シーケンサ４１０が浮動小数点データ１から８を受けている状態で、レンダリングプロセッサ５００から描画データ固定小数点データを受けつけた信号ＲＰ＿ＡＣＣ信号が帰ってきた場合に、ＣＮＴレジスタの値をインクリメントする。そして、比較器は、インクリメントを実行したＣＮＴレジスタの値とＬＥＮレジスタの値を比較し、ＣＮＴレジスタの値とＬＥＮレジスタの値が一致したら、シーケンサ４１０にコマンドコードを受けている状態に戻す指示を与える。
【００５２】
次に、図６に、スケールファクタ部３００の構成を示す。
【００５３】
図示するように、スケールファクタ部３００は、レジスタＳ１  ３１１、Ｓ２  ３１２、Ｓ３３１３、Ｓ４  ３１４、Ｓ５  ３１５、Ｓ６  ３１６、Ｓ７  ３１７、Ｓ８  ３１８とセレクタから構成される。
【００５４】
レジスタＳ１  ３１１からＳ８  ３１８は、浮動小数点データ１から８毎に、対応するスケールファクタを保持するレジスタであり、コントロール部４００から書き込み指示ＳＥＴ信号を受けたら、ジオメトリプロセッサ５０から渡される３２ビットのスケールデータを４ビットずつに分配して書き込む。
【００５５】
セレクタ３２０は、レジスタＳ１  ３１１からＳ８  ３１８の値をコントロール部４００から入力されるカウンタ値ＣＮＴ信号により１つ選択しフォーマット変換部２００に出力する。これにより、図形データの浮動小数点データ１から８毎に、対応するスケールファクタをフォーマット変換部２００与えることができる。
【００５６】
次に、図７に、フォーマット変換部２００の構成を示す。
【００５７】
図示するように、フォーマット変換部２００は、スケールファクタと浮動小数点数の指数からシフト量を求める指数処理部２１０と、浮動小数点数の仮数を右シフトして正の固定小数点数に変換する仮数シフト部２３０と、浮動小数点数の符号がマイナスならば仮数シフト部で求めた正の固定小数点数を負の固定小数点数に変換する符号処理部２５０から構成される。
【００５８】
指数処理部２１０は、スケールファクタ部３００から出力されるスケールファクタの値と浮動小数点数の指数を加算し、加算結果に対し１２７のオフセット値を引いてオフセット補正を行い、オフセット補正を行ったデータに対して、下位５ビットだけ抜き出してビット反転を行うことで、仮数シフト部２３０のシフト量を求める。
【００５９】
ここで、加算結果に対し１２７のオフセット値を引くのは、浮動小数点数の指数にはＩＥＥＥ規格で１２７のオフセットが付加されているからである。また、下位５ビットだけ抜き出すのは、３２ビットの固定小数点数に変換するのにシフト量は５ビットの情報だけしか必要としないためである。またビット反転を行うのは、指数の値が左シフトを対象としているのを右シフトに変換するためである。
【００６０】
また、指数処理部２１０は、スケールファクタ部３００から出力されるスケールファクタの値と浮動小数点数の指数を加算した値が、定数１２７未満ならば、３２ビットの固定小数点数に変換しようとしても値が小さく表現しきれないので、符号処理部２５０に固定小数点数のデータを０にクランプする指示を出力する処理も行う。
【００６１】
次に、仮数シフト部２３０は、最上位ビットに１を入れ、ビット３０〜８に浮動小数点数の仮数２３ビット入れ、ビット７〜０ビットを０とした３２ビットの係数を求め、この３２ビットの係数を指数処理部２１０が求めたシフト量分右シフトを行い、正の固定小数点数に変換する。なお、３２ビットの係数の最上位ビットに１を入れるのは、ＩＥＥＥ規格で仮数の最上位の１が省略されているためである。
【００６２】
次に、符号処理部２５０は、浮動小数点数の符号がマイナスならば、仮数シフト部２３０で求めた正の固定小数点データを負の固定小数点データに変換し、さらに、指数処理部２１０からクランプの指示があった場合には固定小数点データを０にして、レンダリングプロセッサ５００に固定小数点データを渡す。
【００６３】
ここで、以下に、２．６２５の浮動小数点数を小数部が３ビットの固定小数点数に変換する例を示しておく。
【００６４】
２．６２５の浮動小数点数は、符号ビットが  （０）２、指数が（１０００００００）２、
仮数が（０１１１０００００００００００００００００００）２で表現される。
【００６５】
指数処理部２１０で、小数点のビット位置と指数を加算すると（１０００００１１）２となり、１２７を引いてオフセット補正を行うと（０００００１００）２になる。
【００６６】
それから、下位５ビットを抜き出すと（００１００）２になり、
ビット反転を行うと（１１０１１）２になり、シフト量は２７になる。
【００６７】
仮数シフト部２３０の３２ビットの係数は、
（１０１０１０００００００００００００００００００００００００００）２となり、
これを２７ビット右シフトすると、
（０００００００００００００００００００００００００００１０１０１）２となり、正の固定小数点数を求めることができる。
【００６８】
整数部である下位から４ビット以上は２を示し、また小数部である下位３ビットは、
０．６２５を示している。
【００６９】
符号処理部２５０では、符号ビットが（０）２正を示しているので、正の固定小数点数を負の固定小数点数に変換を行わないで、レンダリングプロセッサ５００に渡す。
【００７０】
以上、本発明に係るグラフィックス処理装置の第一の実施形態について説明した。
【００７１】
以下、本発明に係るグラフィックス処理装置の第二の実施形態について説明する。
【００７２】
本第二実施形態に係るグラフィック処理装置の全体的な構成は、先に図１に示した構成と同様であり、また、図２に示したようにコンピュータに適用することができる。
【００７３】
図８に、本第二実施形態において、データ変換器１００にジオメトリプロセッサ５０から入力する図形データと、データ変換器１００からレンダリングプロセッサ５００に出力する描画データを示す。
【００７４】
図示するように、本第二実施形態の図形データは、前記第一実施形態において、データ変換器１００にジオメトリプロセッサ５０から入力する図形データからスケールデータを省いたものとなっている。
【００７５】
次に、図９に、データ変換器１００の入出力データフォーマットを示す。
【００７６】
図示するように、浮動小数点データ、固定小数点データ、コマンドデータのフォーマットは、第一実施形態で説明したものと同様である。
【００７７】
ここで、コマンドコードのオペレーション・コードから、ジオメトリプロセッサ５０の出力する図形データの構成を特定することができる。
【００７８】
例えば、オペレーション・コードが、（０００１）２の場合、これは直線を描画するコマンドを意味しており、この場合、浮動小数点データ１から７は、始点Ｘ、Ｙ座標、終点Ｘ、Ｙ座標、輝度Ｒ、Ｇ、Ｂを示すことが定まっている。また、（００１０）２の場合、これは三角形を描画するコマンドを意味しており、これに対して、浮動小数点データ１から５は、頂点Ｘ、Ｙ座標、輝度Ｒ、Ｇ、Ｂを示すことが定まっている。なお、１個の三角形をＣＲＴ７００に表示する場合、三角形の図形データを３回、レンダリングプロセッサ５００に与えることになる。
【００７９】
このようにオペレーションコードの値に対して、そのオペレーションコードを含むコマンドコードに続く各浮動小数点データの種別が定まる。そこで、本第二実施形態では、データ変換器１００において、例えばオペレション・コードが（０００１）２の場合は、浮動小数点データ１始点Ｘ座標を、小数点が最下位から３ビット目に位置する固定小数点データ１に変換を行い、浮動小数点データ２始点Ｙ座標を、小数点が最下位から２ビット目に位置する固定小数点データ２に変換を行い、オペレション・コードが（００１０）２の場合は、浮動小数点データ１頂点Ｘ座標を小数点が最下位から４ビット目に位置する固定小数点データ１に変換を行い、浮動小数点データ２頂点Ｙ座標を小数点が最下位から２ビット目に位置する固定小数点データ２に変換を行うと言ったように、オペレーションコードと浮動小数点データの位置によって、その浮動小数点データを変換する固定小数点データの小数点のビット位置を、予め設定された対応に従って定めることにより、前記第一実施形態のようにジオメトリプロセッサ部５０からスケールデータを受け取ることなく、各浮動小数点データを、そのデータの種別に応じた小数点のビット位置をもつ固定小数点数に変換する。
【００８０】
以下、このような変換を行うデータ変換器１００の詳細について説明する。データ変換器１００の全体的な構成は、図１に示したものと同様であり、コントロール部４００、スケールファクタ部３００、フォーマット変換部２００から構成されている。
【００８１】
図１０に、コントロール部４００の構成を示す。
【００８２】
図示するように、コントロール部４００は、データ変換器１００の状態の管理と、ジオメトリプロセッサ５０とレンダリングプロセッサ５００に対して図形及び描画データの受け渡しの制御を行うシーケンサ４１５と、レンダリングプロセッサ５００に渡すデータの数を管理するカウンタ回路４２０と、コマンドコード中の転送数をオペレーション・コードから検出する転送数ルックアップテーブル４３５から構成される。
【００８３】
シーケンサ４１５が管理する状態は、データ変換器がジオメトリプロセッサ５０からコマンドコードを受けている状態と、浮動小数点データ１から８を受けている状態がある。
【００８４】
シーケンサ４１５は、コマンドコードを受けている状態では、コマンドコードのオペレーションコードをＣＯＭレジスタに記憶し、オペレーションコードの内容を転送数ルックアップテーブル４３５に出力し、カウンタ回路４２０にＣＮＴレジスタの初期化指示を出し、レンダリングプロセッサ５００に描画データコマンドコードの書き込み要求ＤＣ＿Ｗ信号を出し、コマンドコードをレンダリングプロセッサ５００に渡す。また、レンダリングプロセッサ５００から描画データコマンドコードを受け付けたことを表す信号ＲＰ＿ＡＣＣ信号が返ってきたら、ジオメトリプロセッサ５０に図形データを受け付けたことを表す信号ＤＣ＿ＡＣＣ信号を出し、状態を浮動小数点データ１から８を受けている状態に遷移する。
【００８５】
次に、浮動小数点データ１から８を受けている状態では、シーケンサ４１５は、スケールファクタ部３００にオペレーションコードが記憶されたＣＯＭレジスタの値を与え、レンダリングプロセッサ５００に固定小数点データを書き込む要求ＤＣ＿Ｗ信号を出し、レンダリングプロセッサ５００から固定小数点データを受け付けたことを表す信号ＲＰ＿ＡＣＣ信号が返ってきたら、ジオメトリプロセッサ５０に浮動小数点データを受けつけたことを表す信号ＤＣ＿ＡＣＣ信号を出す。また、シーケンサ４１５は、浮動小数点データ１から８を受けている状態において、カウンタ回路４２０から、コマンドコードを受けている状態に戻す指示を受けた場合は、コマンドコードを受けている状態に遷移する、受けなかった場合は、上述した浮動小数点データ１から８を受けている状態の動作を繰り返す。
【００８６】
転送数ルックアップテーブル４３５は、オペレーション・コード毎に、固定小数点データの転送数の値がＬ１からＬ１６まで登録されており、その中から１つの値をシーケンサ４１５から出力されるＣＯＭレジスタの値に従って、セレクタ４３６によりで選択し、カウンタ回路４２０に与える。
【００８７】
例えば、Ｌ１に転送数７、Ｌ２に転送数５が登録されており、ＣＯＭレジスタの値オペレーション・コードが（０００１）２の場合、転送数７がカウンタ回路４２０に与えられ、ＣＯＭレジスタの値が（００１０）２の場合は、転送数５が与えられる。
【００８８】
カウンタ回路４２０は、ＣＮＴレジスタと比較器から構成されている。ＣＮＴレジスタは、シーケンサ４１５から初期化の指示を受けたらレジスタの値を０に初期化し、スケールファクタ部３００にＣＮＴレジスタの値を与え、シーケンサ４１５が浮動小数点データ１から８を受けている状態で、レンダリングプロセッサ５００から描画データ固定小数点データを受けつけた信号ＲＰ＿ＡＣＣ信号が帰ってきた場合に、ＣＮＴレジスタの値をインクリメントする。そして、比較器は、インクリメントを実行したＣＮＴレジスタの値と転送数ルックアップテーブル４３５から送られた転送数を比較し、両者の値が一致したら、シーケンサ４１５にコマンドコードを受けている状態に戻す指示を与える。
【００８９】
図１１に、スケールファクタ部３００の構成を示す。
【００９０】
スケールファクタ部３００は、オペレーション・コード毎にＳｃａｌｅ１からＳｃａｌｅ１６までのスケールファクタを登録するテーブルを備えている。
【００９１】
Ｓｃａｌｅ１のテーブルに格納された複数のスケールファクタの内の一つが、コントロール部４００から出力されるＣＯＭレジスタの値ＣＯＭ信号に従ってセレクタ３４１によって１つ選択されセレクタ３６０に出力される。Ｓｃａｌｅ２からＳｃａｌｅ１６についても同様にひとつづつＣＯＭレジスタの値ＣＯＭ信号に対応するスケールファクタが選択され、セレクタ３６０に出力される。
【００９２】
次に、各セレクタ３４１〜３５６で選択されたＳｃａｌｅ１からＳｃａｌｅ１６まで各数値は、セレクタ３６０で、コントロール部から入力されるカウンタの値ＣＮＴ信号によりひとつづつ選択されフォーマット変換部２００に出力される。これにより、図形データの浮動小数点データ１から８毎に、対応するスケールファクタをフォーマット変換部２００与えることができる。
【００９３】
フォーマット変換部２００は、前述した第一実施形態のフォーマット変換部２００と同様である。
【００９４】
以上、本発明の第二実施形態について説明した。
【００９５】
なお、本第２実施形態において、オペレーション・コードに対応して定まる転送数を格納した転送数ルックアップテーブルＬ１〜Ｌ１６及びスケールファクタのテーブルＳ１〜Ｓ１６の内容は、たとえば、図２のＣＰＵ１０や、ジオメトリプロセッサ５０から、任意の値を設定可能とするようにしてもよい。このようにすることにより、図形データの形式を適宜変更可能とすることができる。
【００９６】
以下、本発明の第３の実施形態について説明する。
【００９７】
本第３実施形態は、第１実施形態に係るグラフィック処理装置において、データ変換器１００に、浮動小数点データを固定小数点データに変換せずに、ジオメトリプロセッサ５０から受け取ったままの形式でレンダリングプロセッサ５００に渡す機能を備えたものである。
【００９８】
このような機能は、レンダリングプロセッサ５００においても浮動小数点データとして処理するデータが存在する場合や、図１２に示すように、コマンドコードにオペレーションデータとして引き続くデータ中に、浮動小数点データのみならず、コマンドコードを含むデータなどが存在する形式を採用する場合に、これらのデータを、そのままレンダリングプロセッサ５００に渡す際に有効である。
【００９９】
図１３に、この場合のコマンドデータのフォーマットを示す。
【０１００】
図１３に示すように、本第３実施形態では、コマンドコードのオペレーションコードに続く、その他の制御コード中に、固定小数点に変換しないデータを示す変換制御コードを付加している。
【０１０１】
図中の、（００１０００００）２は、値（１）２の位置、すなわち前から３番目のデータは、データ変換器１００において、固定小数点データに変換せずに、そのままレンダリングプロセッサ５００に出力すべきことを表している。
【０１０２】
以下、本実施形態に係るデータ変換器１００について説明する。
【０１０３】
データ変換器１００の全体的な構成は、図１に示したものと同様であり、コントロール部４００、スケールファクタ部３００、フォーマット変換部２００から構成されている。また、コントロール部４００、スケールファクタ部３００は、前述した第１実施形態で説明したものと同じものを用いることができる。
【０１０４】
図１４に、残るフォーマット変換部２００の構成を示す。
【０１０５】
図示するように、本実施形態に係るフォーマット変換部２１０は、図７に示したフォーマット変換部２００の構成に、制御コード処理部２９０と、セレクタ２９１を付加したものである。
【０１０６】
制御コード処理部２９０内の制御コードレジスタには、コントロール部４００のシーケンサ４１０が、コマンドコードを受けている状態のとき、コマンドコード中の、その他の制御コード中の変換制御コードが記憶される。
【０１０７】
制御コード処理部２９０は、通常はセレクタ２９１が符号処理部２５０が出力する固定小数点データを選択するように、セレクタ２９１を制御するが、コントロール部４００のカウンタ回路４２０の出力する値が、レジスタに格納した変換制御コードがデータを変換しないことを表す位置の値（変換制御コードが（００１００００１）２であれば３と８）と同じになったときには、セレクタ２９１が、ジオメトリプロセッサ５０から受け取った固定小数点データを選択するように、セレクタ２９１を制御する。
【０１０８】
以上、本発明の第３の実施形態について説明した。
【０１０９】
なお、第２実施形態で説明したグラフィックス処理装置において、データ変換器１００のフォーマット変換部２００を図４に示したように構成することにより、本第３実施形態を、第１実施形態への適用と同様にして第２実施形態に適用することもできる。
【０１１０】
以上、説明した各実施形態によれば、データ変換器１００を、ジオメトリプロセッサ５０とレンダリングプロセッサ５００の間に設け、パイプライン式に、ジオメトリプロセッサ１０の処理と浮動小数点データから固定小数点データへの変換を行うので、高速なグラフィックス処理が可能となる。また、データ種別毎に小数点のビット位置を任意に制御したり、また、浮動小数点数から固定小数点数への変換を行わないようにすることができるので、多種多様なデータに対応可能である。
【０１１１】
【発明の効果】
以上のように、本発明によれば、浮動小数点数から固定小数点数への変換のために要する処理速度の低下を削減することのできるグラフィックス処理装置を提供することができる。
【図面の簡単な説明】
【図１】グラフィックス処理装置の構成を示すブロック図である。
【図２】グラフィックス処理装置を適用したコンピュータの構成を示すブロック図である。
【図３】本発明の第１実施形態に係るデータ変換器の入出力データを示す図である。
【図４】本発明の第１実施形態に係るデータ変換器の入出力データフォーマットを示す図である。
【図５】本発明の第１実施形態に係るコントロール部の構成を示すブロック図である。
【図６】本発明の第１実施形態に係るスケールファクタ部の構成を示すブロック図である。
【図７】本発明の第１実施形態に係るフォーマット変換部の構成を示すブロック図である。
【図８】本発明の第２実施形態に係るデータ変換器の入出力データを示す図である。
【図９】本発明の第２実施形態に係るデータ変換器の入出力データフォーマットを示す図である。
【図１０】本発明の第２実施形態に係るコントロール部の構成を示すブロック図である。
【図１１】本発明の第２実施形態に係るスケールファクタ部の構成を示すブロック図である。
【図１２】本発明の第３実施形態に係るデータ変換器の入出力データを示す図である。
【図１３】本発明の第３実施形態に係るコマンドデータのフォーマットを示す図である。
【図１４】本発明の第３実施形態に係るフォーマット変換部の構成を示すブロック図である。
【符号の説明】
１０・・・ＣＰＵ、５０・・・ジオメトリプロセッサ、１００・・・データ変換器、２００・・・フォーマット変換部、２１０・・・指数処理部、２３０・・・仮数シフト部、２５０・・・符号処理部、２９０・・・制御コード処理部、２９１・・・セレクタ、３００・・・スケールファクタ部、３１１〜３１８・・・レジスタＳ１〜Ｓ８、３２０・・・セレクタ、３４１〜３５６・・・セレクタ、３６０・・・セレクタ。４００・・・コントロール部、４１０・・・シーケンサ、４１５・・・シーケンサ、４３５・・・転送数ルックアップテーブル、４３６・・・セレクタ、４２０・・・カウンタ回路、４３０・・・ＬＥＮレジスタ、５００・・・レンダリグプロセッサ、６００・・・フレームメモリ、７００・・・ＣＲＴ、
【図１】
0003547277.tif 000002
【図２】
0003547277.tif 000003
【図３】
0003547277.tif 000004
【図４】
0003547277.tif 000005
【図５】
0003547277.tif 000006
【図６】
0003547277.tif 000007
【図７】
0003547277.tif 000008
【図８】
0003547277.tif 000009
【図９】
0003547277.tif 000010
【図１０】
0003547277.tif 000011
【図１１】
0003547277.tif 000012
【図１２】
0003547277.tif 000013
【図１３】
0003547277.tif 000014
【図１４】
0003547277.tif 000015