(57)【要約】【課題】ピクセル処理に要する時間の増大を抑制可能な画像処理装置及びシェーダ装置を提供する。【解決手段】複数の頂点データに対する複数の頂点処理及びその頂点データよりデータ数が多い複数のピクセルデータに対する複数のピクセル処理のいずれかを、並列に実行するシェーダ装置２０と、頂点処理の結果を用いてポリゴンを生成し、そのポリゴンを構成するピクセルのパラメータとしてピクセルデータを生成するラスタライザ３０と、ピクセル処理の結果を用いて画像描画用データを生成するフラグメントオペレーションユニット４０とを備える。【選択図】図１
2007328581.tif 000002
【特許請求の範囲】
【請求項１】
複数の頂点データに対する複数の頂点処理及び該頂点データよりデータ数が多い複数のピクセルデータに対する複数のピクセル処理のいずれかを、並列に実行するシェーダ装置と、
前記頂点処理の結果を用いてポリゴンを生成し、該ポリゴンを構成するピクセルのパラメータとして前記ピクセルデータを生成するラスタライザと、
前記ピクセル処理の結果を用いて画像描画用データを生成するフラグメントオペレーションユニット
とを備えることを特徴とする画像処理装置。
【請求項２】
前記シェーダ装置が、
前記複数の頂点データ及び前記複数のピクセルデータのいずれかを含むエントリデータを格納するレジスタと、
前記エントリデータに含まれる前記複数の頂点データに対する頂点処理、及び前記複数のピクセルデータの一部に対するピクセル処理のいずれかを実行する統合演算ユニットと、
前記複数のピクセルデータのうちの、前記統合演算ユニットがピクセル処理を実行しないピクセルデータに対してピクセル処理を実行するピクセル演算ユニット
とを備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ピクセル演算ユニットの個数が、前記エントリデータに含まれる前記複数の頂点データと前記複数のピクセルデータとのデータ数の差と同一であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
複数の頂点データ及び該頂点データよりデータ数の多い複数のピクセルデータのいずれかを含むエントリデータを格納するレジスタと、  
前記エントリデータに含まれる前記複数の頂点データに対する頂点処理及び前記複数のピクセルデータの一部に対するピクセル処理のいずれかを実行する統合演算ユニットと、
前記複数のピクセルデータのうちの、前記統合演算ユニットがピクセル処理を実行しないピクセルデータに対してピクセル処理を実行するピクセル演算ユニット
とを備えることを特徴とするシェーダ装置。
【請求項５】
前記エントリデータにおける前記複数の頂点データの各先頭ビットの位置と、前記複数のピクセルデータのいずれかの先頭ビットの位置が同一であることを特徴とする請求項４に記載のシェーダ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に係り、特にユニファイド型シェーダ装置を有する画像処理装置に関する。
【背景技術】
【０００２】
ゲーム機の画面等に表示される３次元画像データ等の頂点の処理（以下において、「頂点処理」という。）とピクセルの処理（以下において、「ピクセル処理」という。）を物理的に同一の演算ユニットで行うユニファイド型シェーダ装置は、頂点処理とピクセル処理を物理的に別々の演算ユニットで行うセパレート型シェーダ装置に比べ、演算ユニットの稼動効率という点で有利である（例えば、非特許文献１参照。）。ここで、「頂点処理」は、３次元画像の陰影を計算して作り出すライティング演算処理、テクスチャ座標の算出処理等である。又、「ピクセル処理」は、画面上の各点の色を計算して作り出す処理等である。
【０００３】
しかし、ユニファイド型シェーダ装置は、頂点とピクセルという性格の異なる演算対象を同一の演算ユニットで処理するため、セパレート型シェーダ装置に比べて演算精度の点で不利になる場合がある。頂点処理では、一般的にＩＥＥＥ７５４準拠の３２ビット単精度浮動小数点形式（ＦＰ３２）程度のデータ形式のデータの演算で得られる演算精度が必要である。ＦＰ３２は、仮数部２３ビットを含む合計３２ビットのデータ形式である。一方、ピクセル処理では、仮数部１０ビット程度のデータ形式のデータの演算で十分実用的な演算精度が得られ、高い演算精度が要求されるアプリケーションにおいても仮数部が１５ビットのデータであれば演算精度に問題がないとされている。そのため、セパレート型シェーダ装置では、頂点処理用演算ユニットがＦＰ３２のデータに対する頂点処理を行ない、ピクセル処理用演算ユニットが２４ビット浮動小数点形式（ＦＰ２４）のデータに対するピクセル処理を行う。ＦＰ２４は、仮数部１５ビットを含む合計２４ビットのデータ形式である。
【０００４】
頂点処理とピクセル処理で同一の演算ユニットを使用するユニファイド型シェーダ装置では、頂点処理に必要な３２ビット浮動小数点形式でＦＰ２４のデータに対するピクセル処理を実行する。そのため、ユニファイド型シェーダ装置においてＦＰ２４のデータに対する演算の精度が過剰になり、ピクセル処理に要する時間が増大する問題が生じていた。
【非特許文献１】後藤弘茂、「統合ｓｈａｄｅｒが次々世代のＧＰＵアーキテクチャの鍵」、[online]、２００４年、株式会社インプレス・ウォッチ（Impress Watch）、[平成１６年９月２０日検索]、インターネット＜URL： http://pc.watch.impress.co.jp/docs/2004/0115/kaigai056.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ピクセル処理に要する時間の増大を抑制可能な画像処理装置及びシェーダ装置を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、（イ）複数の頂点データに対する複数の頂点処理及びその頂点データよりデータ数が多い複数のピクセルデータに対する複数のピクセル処理のいずれかを、並列に実行するシェーダ装置と、（ロ）頂点処理の結果を用いてポリゴンを生成し、そのポリゴンを構成するピクセルのパラメータとしてピクセルデータを生成するラスタライザと、（ハ）ピクセル処理の結果を用いて画像描画用データを生成するフラグメントオペレーションユニットとを備える画像処理装置が提供される。
【０００７】
本発明の他の態様によれば、（イ）複数の頂点データ及びその頂点データよりデータ数の多い複数のピクセルデータのいずれかを含むエントリデータを格納するレジスタと、（ロ）エントリデータに含まれる複数の頂点データに対する頂点処理及び複数のピクセルデータの一部に対するピクセル処理のいずれかを実行する統合演算ユニットと、（ハ）複数のピクセルデータのうちの、統合演算ユニットがピクセル処理を実行しないピクセルデータに対してピクセル処理を実行するピクセル演算ユニットとを備えるシェーダ装置が提供される。
【発明の効果】
【０００８】
本発明によれば、ピクセル処理に要する時間の増大を抑制可能な画像処理装置及びシェーダ装置を提供できる。
【発明を実施するための最良の形態】
【０００９】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１０】
本発明の実施の形態に係る画像処理装置は、図１に示すように、複数の頂点データに対する複数の頂点処理及びその頂点データよりデータ数が多い複数のピクセルデータに対する複数のピクセル処理のいずれかを、並列に実行するシェーダ装置２０と、頂点処理の結果を用いてポリゴンを生成し、そのポリゴンを構成するピクセルのパラメータとしてピクセルデータを生成するラスタライザ３０と、ピクセル処理の結果を用いて画像描画用データを生成するフラグメントオペレーションユニット４０とを備える。
【００１１】
図１に示した画像処理装置は、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０、データ記憶装置５０及びフレームバッファ６０を更に備える。データ記憶装置５０は、画像処理装置の処理対象である３次元画像データ等の画像データを格納する。例えば、電子データの受信或いは記憶媒体の装着が可能な図示を省略するデータ記憶装置５０のインタフェース回路を介して、電子情報伝達手段によってデータ記憶装置５０に転送された画像データ或いは記憶媒体に電子データとして格納された画像データが、データ記憶装置５０に格納される。データ記憶装置５０として、例えばシンクロナス・ダイナミック・ランダムアクセス・メモリ（ＳＤＲＡＭ）等が採用可能である。ＤＭＡＣ１０は、データ記憶装置５０の動作を制御する。フレームバッファ６０は、画像処理結果として画像描画用データを格納する。
【００１２】
以下に、図１に示した画像処理装置による画像処理方法を説明する。先ずＤＭＡＣ１０が、データ記憶装置５０から画像データとして頂点データ列ＤＡを読み出し、頂点データ列ＤＡに対する頂点処理に使用される頂点パラメータ（以下において、「入力頂点パラメータ」という。）ＤＶｉがシェーダ装置２０に転送される。
【００１３】
シェーダ装置２０は、入力頂点パラメータＤＶｉを用いて頂点単位の頂点処理を行う。頂点処理時のシェーダ装置２０の動作は後述する。シェーダ装置２０は、頂点処理の結果を出力頂点パラメータＤＶｏとしてラスタライザ３０に転送する。
【００１４】
ラスタライザ３０は、出力頂点パラメータＤＶｏを用いてポリゴンを形成し、ポリゴンを構成するピクセルのピクセルパラメータを生成する。ピクセルパラメータは、ピクセル処理時に使用される。ラスタライザ３０は、生成したピクセルパラメータを、シェーダ装置２０に転送する。
【００１５】
シェーダ装置２０は、ラスタライザ３０から転送されたピクセルパラメータ（以下において、「入力ピクセルパラメータ」という。）ＤＰｉを用いて、ピクセル単位のピクセル処理を行う。ピクセル処理時のシェーダ装置２０の動作は後述する。シェーダ装置２０は、ピクセル処理の結果を出力ピクセルパラメータＤＰｏとしてフラグメントオペレーションユニット４０に転送する。
【００１６】
フラグメントオペレーションユニット４０は、出力ピクセルパラメータＤＰｏに対してアルファ（α）ブレンド合成及びＺテスト等のフラグメント処理を行ない、画像描画用データとしてピクセルデータＤＢを生成する。αブレンド合成は、二つの画像を係数（α値）に基づき合成することによって、別々に描かれた背景とキャラクターとを合成する場合等に使用される。Ｚテストは、各ポリゴンに付加されるＺ値（視点からの距離に対応）をピクセル毎に比較するテストである。例えば、描画しようとするポリゴンのＺ値が既に描画されたポリゴンのＺ値より小さい場合は描画しようとするポリゴンは描画され、大きい場合は描画されない。フラグメントオペレーションユニット４０は、生成したピクセルデータＤＢをフレームバッファ６０に転送する。
【００１７】
フレームバッファ６０は、転送されたピクセルデータＤＢを格納する。フレームバッファ６０の図示を省略するインタフェース回路を介して、コンピュータグラフィックス描画装置等がピクセルデータＤＢをフレームバッファ６０から読み出し、ピクセルデータＤＢを用いて画像を描画する。フレームバッファ６０は、データ記憶装置５０上に構成してもよい。
【００１８】
次に、シェーダ装置２０の動作を説明する。シェーダ装置２０は、上記に説明したように、頂点処理及びピクセル処理を行うユニファイド型シェーダ装置である。以下では、シェーダ装置２０が、１つの命令で複数のデータの演算処理を行うシングル・インストラクション・マルチデータ（ＳＩＭＤ）型のアーキテクチャを採用し、且つ、シェーダ装置２０が実行する演算の入力データ数が最大３である３オペランドの場合を例示的に説明する。ここでは、シェーダ装置２０が４要素（Ｘ，Ｙ，Ｚ，Ｗ）を処理単位とし、頂点処理はＦＰ３２のデータ形式、ピクセル処理はＦＰ２４のデータ形式で実行されるとする。
【００１９】
図２（ａ）及び図２（ｂ）に、ＦＰ３２及びＦＰ２４のデータの構成例をぞれぞれ示す。図２（ａ）に示すように、ＦＰ３２は、符号１ビット、指数部８ビット及び仮数部２３ビットからなる、合計３２ビットのデータ形式である。又、図２（ｂ）に示すように、ＦＰ２４は、符号１ビット、指数部８ビット及び仮数部１５ビットからなる、合計２４ビットのデータ形式である。ＦＰ３２からＦＰ２４へのデータ形式の変換は、ＦＰ３２のデータの仮数部の下位８ビットを削除することによって、容易に行なわれる。
【００２０】
図３に、シェーダ装置２０の構成例を示す。シェーダ装置２０は、入力インタフェース２１、レジスタ２２、算術演算処理ユニット（ＡＬＵ）２３及び出力インタフェース２４を含む。
【００２１】
レジスタ２２は、複数の頂点データ及び複数のピクセルデータのいずれかを含む１エントリ分のデータ（以下において、「エントリデータ」という。）を格納する。具体的には、入力頂点パラメータＤＶｉ或いは入力ピクセルパラメータＤＰｉが、入力インタフェース２１を介してレジスタ２２に格納される。
【００２２】
ＡＬＵ２３は、レジスタ２２から入力頂点パラメータＤＶｉを読み出して頂点処理を行ない、出力頂点パラメータＤＶｏを生成する。又、ＡＬＵ２３は、レジスタ２２から入力ピクセルパラメータＤＰｉを読み出してピクセル処理を行ない、出力ピクセルパラメータＤＰｏを生成する。頂点処理の結果である出力頂点パラメータＤＶｏ及びクセル処理の結果である出力ピクセルパラメータＤＰｏは、レジスタ２２に格納される。ＡＬＵ２３の詳細な動作については後述する。レジスタ２２に格納された出力頂点パラメータＤＶｏ及び出力ピクセルパラメータＤＰｏは、出力インタフェース２４を介して、シェーダ装置２０の外部に転送される。
【００２３】
レジスタ２２に格納されるエントリデータの構成を図４に示す。図４に示すように、エントリデータのビット長は３８４ビットである。エントリデータ単位でレジスタ２２からＡＬＵ２３にデータが転送される。頂点処理されるデータがＦＰ３２の場合、３頂点分のパラメータである頂点データVertex１〜Vertex３が１エントリデータとしてレジスタ２２に格納される。頂点データVertex１〜Vertex３は、以下に説明するように４要素（Ｘ，Ｙ，Ｚ，Ｗ）の要素頂点データから構成される。
【００２４】
頂点データVertex１は、Ｘ要素頂点データVertex１（Ｘ）、Ｙ要素頂点データVertex１（Ｙ）、Ｚ要素頂点データVertex１（Ｚ）及びＷ要素頂点データVertex１（Ｗ）を含む。同様に、頂点データVertex２は、Ｘ要素頂点データVertex２（Ｘ）、Ｙ要素頂点データVertex２（Ｙ）、Ｚ要素頂点データVertex２（Ｚ）及びＷ要素頂点データVertex２（Ｗ）を含む。頂点データVertex３は、Ｘ要素頂点データVertex３（Ｘ）、Ｙ要素頂点データVertex３（Ｙ）、Ｚ要素頂点データVertex３（Ｚ）及びＷ要素頂点データVertex３（Ｗ）を含む。各要素頂点データのデータ形式は、ＦＰ３２である。つまり、頂点データVertex１〜Vertex３のビット長は、それぞれ１２８ビットである。
【００２５】
又、図４に示すように、ピクセル処理されるデータがＦＰ２４の場合、４ピクセル分のパラメータであるピクセルデータPixel１〜Pixel４が、１エントリデータとしてレジスタ２２に格納される。ピクセルデータPixel１は、Ｘ要素ピクセルデータPixel１（Ｘ）、Ｙ要素ピクセルデータPixel１（Ｙ）、Ｚ要素ピクセルデータPixel１（Ｚ）及びＷ要素ピクセルデータPixel１（Ｗ）を含む。同様に、ピクセルデータPixel２は、Ｘ要素ピクセルデータPixel２（Ｘ）、Ｙ要素ピクセルデータPixel２（Ｙ）、Ｚ要素ピクセルデータPixel２（Ｚ）及びＷ要素ピクセルデータPixel２（Ｗ）を含む。ピクセルデータPixel３は、Ｘ要素ピクセルデータPixel３（Ｘ）、Ｙ要素ピクセルデータPixel３（Ｙ）、Ｚ要素ピクセルデータPixel３（Ｚ）及びＷ要素ピクセルデータPixel３（Ｗ）を含む。各要素ピクセルデータのデータ形式は、ＦＰ２４である。したがって、ピクセルデータPixel１〜Pixel４のビット長は、それぞれ９６ビットである。
【００２６】
図４に示すように、頂点データVertex１〜Vertex３の各要素頂点データはＸ要素頂点データ、Ｙ要素頂点データ、Ｚ要素頂点データ、Ｗ要素頂点データの順にレジスタ２２に格納される。図４において、位置Ｍ１〜Ｍ３は、頂点データVertex１〜Vertex３の各符号ビットの最上位ビット（ＭＳＢ）の位置をそれぞれ示す。位置Ｍ１は３８３ビット目、位置Ｍ２は２５５ビット目、位置Ｍ３は１２７ビット目である。又、ピクセルデータPixel１〜Pixel３は、Ｘ要素ピクセルデータ、Ｙ要素ピクセルデータ、Ｚ要素ピクセルデータ及びＷ要素ピクセルデータの順にレジスタ２２に格納される。
【００２７】
更に、ピクセルデータPixel１〜Pixel３の各要素ピクセルデータは、各要素ピクセルデータのＭＳＢの位置が頂点データVertex１〜Vertex３の各要素頂点データのＭＳＢの位置と一致するようにレジスタ２２に格納される。例えば、Ｘ要素ピクセルデータPixel１（Ｘ）、Pixel２（Ｘ）、Pixel３（Ｘ）のＭＳＢの位置は、それぞれ位置Ｍ１、Ｍ２、Ｍ３である。そのため、ピクセルデータPixel１〜Pixel３の各要素ピクセルデータ間に８ビットずつの空き領域が生じる。
【００２８】
図４に示すように、各要素ピクセルデータ間の空き領域にピクセルデータPixel４が格納される。具体的には、ピクセルデータPixel１〜Pixel３の各Ｘ要素ピクセルデータの後にピクセルデータPixel４のＸ要素ピクセルデータPixel４（Ｘ）が３分の１ずつ格納される。同様に、ピクセルデータPixel１〜Pixel３の各Ｙ要素ピクセルデータの後にピクセルデータPixel４のＹ要素ピクセルデータPixel４（Ｙ）が３分の１ずつ格納され、ピクセルデータPixel１〜Pixel３の各Ｚ要素ピクセルデータの後にピクセルデータPixel４のＺ要素ピクセルデータPixel４（Ｚ）が３分の１ずつ格納され、ピクセルデータPixel１〜Pixel３の各Ｗ要素ピクセルデータの後にピクセルデータPixel４のＷ要素ピクセルデータPixel４（Ｗ）が３分の１ずつ格納される。
【００２９】
以上に説明したように、レジスタ２２は、１エントリデータ分の頂点データの総ビット数とピクセルデータの総ビット数が同一になるように、頂点データ及びピクセルデータを格納する。頂点データのビット長よりピクセルデータのビット長が短いため、エントリデータに含まれるＦＰ２４のピクセルデータの数は、ＦＰ３２の頂点データの数より多い。図４に示したように、頂点データの各先頭ビットの位置と、ピクセルデータのいずれかの先頭ビットの位置が同一であり、頂点データより多い分のピクセルデータは、分割してレジスタ２２に格納される。
【００３０】
シェーダ装置２０の動作はプログラマブルであり、シェーダ装置２０に内蔵された制御プログラムの命令に従って、ＡＬＵ２３が頂点処理或いはピクセル処理を実行する。尚、ＡＬＵ２３における処理の途中結果ＤＭは、レジスタ２２に格納される。既に述べたように、シェーダ装置２０は３オペランドアーキテクチャを採用するため、図３に示すように、レジスタ２２からＡＬＵ２３に、複数の頂点データ或いは複数のピクセルデータを含む入力データＤＴ１〜ＤＴ３が転送される。入力データＤＴ１〜ＤＴ３は、それぞれビット長が３８４ビットのエントリデータである。
【００３１】
図５に、ＡＬＵ２３の構成例を示す。図５に示すＡＬＵ２３は、ＦＰ３２のデータを処理するＳＩＭＤ型演算ユニットである統合演算ユニット２３１〜２３３、ＦＰ２４のデータを処理するＳＩＭＤ型演算ユニットであるピクセル演算ユニット２３４、及びビット選択回路２３５を備える。以下に説明するように、統合演算ユニット２３１〜２３３は、エントリデータに含まれる複数の頂点データに対する頂点処理、及びエントリデータに含まれる複数のピクセルデータの一部に対するピクセル処理のいずれかを実行する。又、ピクセル演算ユニット２３４は、エントリデータに含まれるピクセルデータのうちの、統合演算ユニット２３１〜２３３がピクセル処理を実行しないピクセルデータに対するピクセル処理を実行する。
【００３２】
レジスタ２２から転送された入力データＤＴ１、ＤＴ２及びＤＴ３は、メインデータバス１１０、１２０及び１３０を介して、統合演算ユニット２３１〜２３３及びピクセル演算ユニット２３４に入力する。統合演算ユニット２３１に接続するサブデータバス１１１、統合演算ユニット２３２に接続するサブデータバス１１２、統合演算ユニット２３３に接続するサブデータバス１１３、及びピクセル演算ユニット２３４に接続するサブデータバス１１４が、メインデータバス１１０に接続する。統合演算ユニット２３１に接続するサブデータバス１２１、統合演算ユニット２３２に接続するサブデータバス１２２、統合演算ユニット２３３に接続するサブデータバス１２３、及びピクセル演算ユニット２３４に接続するサブデータバス１２４が、メインデータバス１２０に接続する。統合演算ユニット２３１に接続するサブデータバス１３１、統合演算ユニット２３２に接続するサブデータバス１３２、統合演算ユニット２３３に接続するサブデータバス１３３、及びピクセル演算ユニット２３４に接続するサブデータバス１３４が、メインデータバス１３０に接続する。
【００３３】
図５において、各サブデータバスに付された表記［Ａ：Ｂ］は、各サブデータバスがそれぞれ接続するメインデータバス１１０、１２０、１３０のＢビット目からＡビット目のデータが各サブデータバスに転送されることを示す（以下において同様。）。図５に示すように、入力データＤＴ１の０ビット目から１２７ビット目までのデータがサブデータバス１１３を介して統合演算ユニット２３３に転送され、入力データＤＴ１の１２８ビット目から２５５ビット目までのデータがサブデータバス１１２を介して統合演算ユニット２３２に転送され、入力データＤＴ１の２５６ビット目から３８３ビット目までのデータがサブデータバス１１１を介して統合演算ユニット２３１に転送される。
【００３４】
入力データＤＴ１と同様に、入力データＤＴ２の０ビット目から１２７ビット目までのデータがサブデータバス１２３を介して統合演算ユニット２３３に転送され、入力データＤＴ２の１２８ビット目から２５５ビット目までのデータがサブデータバス１２２を介して統合演算ユニット２３２に転送され、入力データＤＴ２の２５６ビット目から３８３ビット目までのデータがサブデータバス１２１を介して統合演算ユニット２３１に転送される。そして、入力データＤＴ３の０ビット目から１２７ビット目までのデータがサブデータバス１３３を介して統合演算ユニット２３３に転送され、入力データＤＴ３の１２８ビット目から２５５ビット目までのデータがサブデータバス１３２を介して統合演算ユニット２３２に転送され、入力データＤＴ３の２５６ビット目から３８３ビット目までのデータがサブデータバス１３１を介して統合演算ユニット２３１に転送される。
【００３５】
メインデータバス１１０、１２０、１３０を介してレジスタ２２から統合演算ユニット２３１、２３２、２３３に入力データＤＴ１、ＤＴ２、ＤＴ３がそれぞれ転送されるため、各サブデータバスに付された表記［Ａ：Ｂ］は、図４に示したレジスタ２２に格納されるエントリデータのＢビット目からＡビット目のデータを示す。したがって、入力データＤＴ１〜ＤＴ３にそれぞれ含まれる頂点データVertex１或いはピクセルデータPixel１が、統合演算ユニット２３１に転送される。又、入力データＤＴ１〜ＤＴ３にそれぞれ含まれる頂点データVertex２或いはピクセルデータPixel２が、統合演算ユニット２３２に転送される。そして、入力データＤＴ１〜ＤＴ３にそれぞれ含まれる頂点データVertex３或いはピクセルデータPixel３が、統合演算ユニット２３３に転送される。統合演算ユニット２３１〜２３３は、頂点データVertex１〜Vertex３に対する頂点処理、或いはピクセルデータPixel１〜ピクセルデータPixel３に対するピクセル処理を行う。
【００３６】
又、図５に示すように、入力データＤＴ１の０ビット目から７ビット目までのデータ、３２ビット目から３９ビット目までのデータ、６４ビット目から７１ビット目までのデータ、９６ビット目から１０３ビット目までのデータ、１２８ビット目から１３５ビット目までのデータ、１６０ビット目から１６７ビット目までのデータ、１９２ビット目から１９９ビット目までのデータ、２２４ビット目から２３１ビット目までのデータ、２５６ビット目から２６３ビット目までのデータ、２８８ビット目から２９５ビット目までのデータ、３２０ビット目から３２７ビット目までのデータ、及び３５２ビット目から３５９ビット目までのデータが、サブデータバス１１４を介してピクセル演算ユニット２３４に転送される。つまり、入力データＤＴ１に含まれるピクセルデータPixel４が、サブデータバス１１４を介してピクセル演算ユニット２３４に転送される。
【００３７】
入力データＤＴ１に含まれるピクセルデータPixel４と同様に、入力データＤＴ２に含まれるピクセルデータPixel４がサブデータバス１２４を介してピクセル演算ユニット２３４に転送され、入力データＤＴ３に含まれるピクセルデータPixel４が、サブデータバス１３４を介してピクセル演算ユニット２３４に転送される。ピクセル演算ユニット２３４はピクセルデータPixel４に対するピクセル処理を実行する。
【００３８】
図６に、統合演算ユニット２３１〜２３３の構成例として、統合演算ユニット２３１のブロック図を示す。図６に示したように、統合演算ユニット２３１は、ＦＰ３２のデータを処理するＦＰ３２演算器２３１Ｘ、２３１Ｙ、２３１Ｚ及び２３１Ｗ、及び変換器２３１ａ〜２３１ｌを有する。変換器２３１ａ〜２３１ｌは、ＦＰ２４のデータの下位ビットに８ビット分のビット「０」を追加して、ＦＰ２４のデータをＦＰ３２に変換する。
【００３９】
図６に示すように、変換器２３１ａに接続するＸ要素データバス１１１Ｘ、変換器２３１ｄに接続するＹ要素データバス１１１Ｙ、変換器２３１ｇに接続するＺ要素データバス１１１Ｚ、及び変換器２３１ｊに接続するＷ要素データバス１１１Ｗが、サブデータバス１１１に接続する。変換器２３１ｂに接続するＸ要素データバス１２１Ｘ、変換器２３１ｅに接続するＹ要素データバス１２１Ｙ、変換器２３１ｈに接続するＺ要素データバス１２１Ｚ、及び変換器２３１ｋに接続するＷ要素データバス１２１Ｗが、サブデータバス１２１に接続する。変換器２３１ｃに接続するＸ要素データバス１３１Ｘ、変換器２３１ｆに接続するＹ要素データバス１３１Ｙ、変換器２３１ｉに接続するＺ要素データバス１３１Ｚ、及び変換器２３１ｌに接続するＷ要素データバス１３１Ｗが、サブデータバス１３１に接続する。変換器２３１ａ、２３１ｂ、２３１ｃは、ＦＰ３２演算器２３１Ｘに接続する。変換器２３１ｄ、２３１ｅ、２３１ｆは、ＦＰ３２演算器２３１Ｙに接続する。変換器２３１ｇ、２３１ｈ、２３１ｉは、ＦＰ３２演算器２３１Ｚに接続する。変換器２３１ｊ、２３１ｋ、２３１ｌは、ＦＰ３２演算器２３１Ｗに接続する。
【００４０】
Ｘ要素データバス１１１Ｘ及び変換器２３１ａを介して、サブデータバス１１１の９６ビット目から１２７ビット目までの３２ビットのデータがＦＰ３２演算器２３１Ｘに転送される。既に述べたように、サブデータバス１１１上を、入力データＤＴ１の２５６ビット目から３８３ビット目までの１２８ビットのデータが転送される。つまり、Ｘ要素データバス１１１Ｘを介して、入力データＤＴ１の３５２ビット目から３８３ビット目までのデータがＦＰ３２演算器２３１Ｘに転送される。したがって、入力データＤＴ１に含まれるＸ要素頂点データVertex１（Ｘ）或いはＸ要素ピクセルデータPixel１（Ｘ）が、ＦＰ３２演算器２３１Ｘに転送される。尚、変換器２３１ａにＸ要素ピクセルデータPixel１（Ｘ）が入力された場合は、変換器２３１ａは、ＦＰ２４のＸ要素ピクセルデータPixel１（Ｘ）の下位ビットに８ビット分のビット「０」を追加することによって、Ｘ要素ピクセルデータPixel１（Ｘ）のデータ形式をＦＰ３２に変換する。そして、変換器２３１ａは、ＦＰ３２にデータ形式が変換されたＸ要素ピクセルデータPixel１（Ｘ）をＦＰ３２演算器２３１Ｘに転送する。
【００４１】
同様にして、Ｘ要素データバス１２１Ｘ及び変換器２３１ｂを介して、入力データＤＴ２に含まれるＸ要素頂点データVertex１（Ｘ）或いはＦＰ３２に変換されたＸ要素ピクセルデータPixel１（Ｘ）が、ＦＰ３２演算器２３１Ｘに転送される。更に、Ｘ要素データバス１３１Ｘ及び変換器２３１ｃを介して、入力データＤＴ３に含まれるＸ要素頂点データVertex１（Ｘ）或いはＦＰ３２に変換されたＸ要素ピクセルデータPixel１（Ｘ）が、ＦＰ３２演算器２３１Ｘに転送される。ＦＰ３２演算器２３１Ｘは、入力データＤＴ１〜ＤＴ３にＸ要素頂点データVertex１（Ｘ）が含まれる場合はＸ要素頂点データVertex１（Ｘ）に対する頂点処理を行ない、ＦＰ３２に変換されたＸ要素ピクセルデータPixel１（Ｘ）が含まれる場合はＸ要素ピクセルデータPixel１（Ｘ）に対するピクセル処理を行う。
【００４２】
Ｘ要素頂点データVertex１（Ｘ）及びＸ要素ピクセルデータPixel１（Ｘ）と同様に、入力データＤＴ１〜ＤＴ３に含まれるＹ要素頂点データVertex１（Ｙ）或いはＦＰ３２に変換されたＹ要素ピクセルデータPixel１（Ｙ）がＦＰ３２演算器２３１Ｙに転送される。例えば、Ｙ要素データバス１１１Ｙを介して、サブデータバス１１１の６４ビット目から９５ビット目までの３２ビット、即ち、入力データＤＴ１の３２０ビット目から３５１ビット目までのデータがＦＰ３２演算器２３１Ｙに転送される。つまり、入力データＤＴ１に含まれるＹ要素頂点データVertex１（Ｙ）或いはＹ要素ピクセルデータPixel１（Ｙ）が、ＦＰ３２演算器２３１Ｙに転送される。ＦＰ３２演算器２３１Ｙは、入力データＤＴ１〜ＤＴ３に含まれるＹ要素頂点データVertex１（Ｙ）に対する頂点処理を行ない、ＦＰ３２に変換されたＹ要素ピクセルデータPixel１（Ｙ）に対するピクセル処理を行う。
【００４３】
又、入力データＤＴ１〜ＤＴ３に含まれるＺ要素頂点データVertex１（Ｚ）或いはＦＰ３２に変換されたＺ要素ピクセルデータPixel１（Ｚ）がＦＰ３２演算器２３１Ｚに転送される。例えば、Ｚ要素データバス１１１Ｚを介して、サブデータバス１１１の３２ビット目から６３ビット目までの３２ビット、即ち、入力データＤＴ１の２８８ビット目から３１９ビット目までのデータがＦＰ３２演算器２３１Ｚに転送される。つまり、入力データＤＴ１に含まれるＺ要素頂点データVertex１（Ｚ）或いはＺ要素ピクセルデータPixel１（Ｚ）が、ＦＰ３２演算器２３１Ｚに転送される。ＦＰ３２演算器２３１Ｚは、入力データＤＴ１〜ＤＴ３に含まれるＺ要素頂点データVertex１（Ｚ）に対する頂点処理を行ない、ＦＰ３２に変換されたＺ要素ピクセルデータPixel１（Ｚ）に対するピクセル処理を行う。
【００４４】
更に、入力データＤＴ１〜ＤＴ３に含まれるＷ要素頂点データVertex１（Ｗ）或いはＦＰ３２に変換されたＷ要素ピクセルデータPixel１（Ｗ）がＦＰ３２演算器２３１Ｗに転送される。例えば、Ｗ要素データバス１１１Ｗを介して、サブデータバス１１１の０ビット目から３１ビット目までの３２ビット、即ち、入力データＤＴ１の２５６ビット目から２８７ビット目までのデータがＦＰ３２演算器２３１Ｗに転送される。つまり、入力データＤＴ１に含まれるＷ要素頂点データVertex１（Ｗ）或いはＷ要素ピクセルデータPixel１（Ｗ）が、ＦＰ３２演算器２３１Ｗに転送される。ＦＰ３２演算器２３１Ｗは、入力データＤＴ１〜ＤＴ３に含まれるＷ要素頂点データVertex１（Ｗ）に対する頂点処理を行ない、ＦＰ３２に変換されたＷ要素ピクセルデータPixel１（Ｗ）に対するピクセル処理を行う。
【００４５】
以上に説明したように、変換器２３１ａ〜２３１ｌによってピクセルデータPixel１の各要素ピクセルデータがＦＰ３２のデータに変換される。そして、ＦＰ３２のデータとして、ピクセルデータPixel１の各要素ピクセルデータがＦＰ３２演算器２３１Ｘ、２３１Ｙ、２３１Ｚ及び２３１Ｗに転送される。統合演算ユニット２３１は、ピクセルデータPixel１の各要素ピクセルデータをＦＰ３２のデータとして演算処理し、３２ビットの演算結果を算出する。
【００４６】
上記のように統合演算ユニット２３１の構成及び動作を説明したが、統合演算ユニット２３２及び２３３の構成及び動作も統合演算ユニット２３１と同様である。統合演算ユニット２３２は、頂点データVertex２の各要素頂点データ、或いはＦＰ３２に変換されたピクセルデータPixel２の各要素ピクセルデータを演算処理する。統合演算ユニット２３３は、頂点データVertex３の各要素頂点データ或いはＦＰ３２に変換されたピクセルデータPixel３の各要素ピクセルデータを演算処理する。つまり、統合演算ユニット２３１〜２３３は、レジスタ２２から転送される入力データＤＴ１〜ＤＴ３が頂点データVertex１〜Vertex３であっても、ピクセルデータPixel１〜Pixel３であっても、ＦＰ３２のデータとして演算処理する。
【００４７】
統合演算ユニットの個数は、並列処理する頂点データのデータ数と同一になるように設定される。つまり、レジスタ２２に格納されるエントリデータに含まれる頂点データのデータ数に応じて、統合演算ユニットの個数が設定される。
【００４８】
ＦＰ３２演算器２３１Ｘ、２３１Ｙ、２３１Ｚ及び２３１Ｗによって処理された３２ビットの演算結果は、Ｘ要素データバス２０１Ｘ、Ｙ要素データバス２０１Ｙ、Ｚ要素データバス２０１Ｚ、及びＷ要素データバス２０１Ｗをそれぞれ介して、データバス２０１に転送される。統合演算ユニット２３１は、データバス２０１を介して、合計１２８ビットのデータをビット選択回路２３５に転送する。同様に、統合演算ユニット２３２及び２３３は、演算処理結果である１２８ビットのデータを、データバス２０２及び２０３を介してビット選択回路２３５にそれぞれ転送する。
【００４９】
以上の説明では、変換器２３１ａ〜２３１ｌが、ＦＰ２４のデータの下位ビットに８ビット分のビット「０」を追加して、ＦＰ２４のデータをＦＰ３２に変換する例を示した。追加するデータの値は「０」以外でもよい。尚、より一般的な場合として、頂点データの仮数部のビット数をＭｖ、ピクセルデータの仮数部のビット数をＭｐとすると、変換器２３１ａ〜２３１ｌは、ピクセルデータの下位ビットに「Ｍｖ−Ｍｐ」ビット分の任意のビットを追加する。
【００５０】
図５を参照して説明したように、入力データＤＴ１に含まれるピクセルデータPixel４は、サブデータバス１１４を介してピクセル演算ユニット２３４に転送される。このとき、サブデータバス１１４の７２ビット目から９５ビット目までを使用して、入力データＤＴ１に含まれるＸ要素ピクセルデータPixel４（Ｘ）がピクセル演算ユニット２３４に転送される。つまり、入力データＤＴ１の３５２ビット目から３５９ビット目までのデータ、２３１ビット目から２２４ビット目までのデータ、及び９６ビット目から１０３ビット目までのデータが、サブデータバス１１４の７２ビット目から９５ビット目に転送される。
【００５１】
又、入力データＤＴ１に含まれるＹ要素ピクセルデータPixel４（Ｙ）が、サブデータバス１１４の４８ビット目から７１ビット目までを使用して、ピクセル演算ユニット２３４に転送される。つまり、入力データＤＴ１の３２０ビット目から３２７ビット目までのデータ、１９２ビット目から１９９ビット目までのデータ、及び６４ビット目から７１ビット目までのデータが、サブデータバス１１４の４８ビット目から７１ビット目に転送される。
【００５２】
更に、入力データＤＴ１に含まれるＺ要素ピクセルデータPixel４（Ｚ）が、サブデータバス１１４の２４ビット目から４７ビット目までを使用して、ピクセル演算ユニット２３４に転送される。つまり、入力データＤＴ１の２８８ビット目から２９５ビット目までのデータ、１６０ビット目から１６７ビット目までのデータ、及び３２ビット目から３９ビット目までのデータが、サブデータバス１１４の２４ビット目から４７ビット目に転送される。
【００５３】
そして、入力データＤＴ１に含まれるＷ要素ピクセルデータPixel４（Ｗ）が、サブデータバス１１４の０ビット目から２３ビット目までを使用して、ピクセル演算ユニット２３４に転送される。つまり、入力データＤＴ１の２５６ビット目から２６３ビット目までのデータ、１２８ビット目から１３５ビット目までのデータ、及び０ビット目から７ビット目までのデータが、サブデータバス１１４の０ビット目から２３ビット目に転送される。
【００５４】
図７に、ピクセル演算ユニット２３４のブロック図を示す。図７に示したように、ピクセル演算ユニット２３４は、ＦＰ２４のデータを処理するＦＰ２４演算器２３４Ｘ、２３４Ｙ、２３４Ｚ及び２３４Ｗを有する。ＦＰ２４演算器２３４Ｘ、２３４Ｙ、２３４Ｚ及び２３４Ｗは、仮数部のビット長が異なるデータを処理する点以外は、図６に示したＦＰ３２演算器２３１Ｘ、２３１Ｙ、２３１Ｚ及び２３１Ｗと同一の機能を有する。
【００５５】
ＦＰ２４演算器２３４Ｘに接続するＸ要素データバス１１４Ｘ、ＦＰ２４演算器２３４Ｙに接続するＹ要素データバス１１４Ｙ、ＦＰ２４演算器２３４Ｚに接続するＺ要素データバス１１４Ｚ、及びＦＰ２４演算器２３４Ｗに接続するＷ要素データバス１１４Ｗが、サブデータバス１１４に接続する。ＦＰ２４演算器２３４Ｘに接続するＸ要素データバス１２４Ｘ、ＦＰ２４演算器２３４Ｙに接続するＹ要素データバス１２４Ｙ、ＦＰ２４演算器２３４Ｚに接続するＺ要素データバス１２４Ｚ、及びＦＰ２４演算器２３４Ｗに接続するＷ要素データバス１２４Ｗが、サブデータバス１２４に接続する。ＦＰ２４演算器２３４Ｘに接続するＸ要素データバス１３４Ｘ、ＦＰ２４演算器２３４Ｙに接続するＹ要素データバス１３４Ｙ、ＦＰ２４演算器２３４Ｚに接続するＺ要素データバス１３４Ｚ、及びＦＰ２４演算器２３４Ｗに接続するＷ要素データバス１３４Ｗが、サブデータバス１３４に接続する。
【００５６】
Ｘ要素データバス１１４Ｘを介して、サブデータバス１１４の７２ビット目から９５ビット目までの２４ビットのデータがＦＰ２４演算器２３４Ｘに転送される。既に述べたように、サブデータバス１１４の７２ビット目から９５ビット目までのデータは、入力データＤＴ１に含まれるＸ要素ピクセルデータPixel４（Ｘ）である。つまり、Ｘ要素データバス１１４Ｘを介して、入力データＤＴ１に含まれるＸ要素ピクセルデータPixel４（Ｘ）がＦＰ２４演算器２３４Ｘに転送される。
【００５７】
同様に、Ｘ要素データバス１２４Ｘを介して、入力データＤＴ２に含まれるＸ要素ピクセルデータPixel４（Ｘ）がＦＰ２４演算器２３４Ｘに転送される。更に、Ｘ要素データバス１３４Ｘを介して、入力データＤＴ３に含まれるＸ要素ピクセルデータPixel４（Ｘ）がＦＰ２４演算器２３４Ｘに転送される。ＦＰ２４演算器２３４Ｘは、入力データＤＴ１〜ＤＴ３に含まれるＸ要素ピクセルデータPixel４（Ｘ）に対するピクセル処理を行う。
【００５８】
Ｘ要素ピクセルデータPixel４（Ｘ）と同様に、入力データＤＴ１〜ＤＴ３に含まれるＹ要素ピクセルデータPixel４（Ｙ）がＦＰ２４演算器２３４Ｙに転送される。例えば、Ｙ要素データバス１１４Ｙを介して、サブデータバス１１４の４８ビット目から７１ビット目までの２４ビット、即ち、入力データＤＴ１に含まれるＹ要素ピクセルデータPixel４（Ｙ）がＦＰ２４演算器２３４Ｙに転送される。ＦＰ２４演算器２３４Ｙは、入力データＤＴ１〜ＤＴ３に含まれるＹ要素ピクセルデータPixel４（Ｙ）に対するピクセル処理を行う。
【００５９】
又、入力データＤＴ１〜ＤＴ３に含まれるＺ要素ピクセルデータPixel４（Ｚ）がＦＰ２４演算器２３４Ｚに転送される。例えば、Ｚ要素データバス１１４Ｚを介して、サブデータバス１１４の２４ビット目から４７ビット目までの２４ビット、即ち、入力データＤＴ１に含まれるＺ要素ピクセルデータPixel４（Ｚ）が、ＦＰ２４演算器２３４Ｚに転送される。ＦＰ２４演算器２３４Ｚは、入力データＤＴ１〜ＤＴ３に含まれるＺ要素ピクセルデータPixel４（Ｚ）に対するピクセル処理を行う。
【００６０】
更に、入力データＤＴ１〜ＤＴ３に含まれるＷ要素ピクセルデータPixel４（Ｗ）がＦＰ２４演算器２３４Ｗに転送される。例えば、Ｗ要素データバス１１４Ｗを介して、サブデータバス１１４の０ビット目から２３ビット目までの２４ビット、即ち、入力データＤＴ１に含まれるＷ要素ピクセルデータPixel４（Ｗ）が、ＦＰ２４演算器２３４Ｗに転送される。ＦＰ２４演算器２３４Ｗは、入力データＤＴ１〜ＤＴ３に含まれるＷ要素ピクセルデータPixel４（Ｗ）に対するピクセル処理を行う。
【００６１】
ピクセル演算ユニット２３４の個数は、レジスタ２２に格納されるエントリデータに含まれる頂点データの数とピクセルデータの数との差と同一になるように設定される。つまり、エントリデータに分割して格納されるピクセルデータのデータ数に応じて、ピクセル演算ユニットの個数が設定される。
【００６２】
ＦＰ２４演算器２３４Ｘ、２３４Ｙ、２３４Ｚ及び２３４Ｗによって処理されたそれぞれ２４ビットの演算結果は、Ｘ要素データバス２０４Ｘ、Ｙ要素データバス２０４Ｙ、Ｚ要素データバス２０４Ｚ、及びＷ要素データバス２０４Ｗをそれぞれ介して、データバス２０４に転送される。ピクセル演算ユニット２３４は、データバス２０４を介して、合計９６ビットのデータをビット選択回路２３５に転送する。
【００６３】
図５に示したビット選択回路２３５は、統合演算ユニット２３１〜２３３及びピクセル演算ユニット２３４から転送されるデータ（以下において、「処理データ」という。）が頂点処理されたデータであるか、或いはピクセル処理されたデータであるかに応じて、処理データのデータ形式が頂点処理に対応したデータ形式或いはピクセル処理に対応したデータ形式になるように、処理データについてビット選択を行う。
【００６４】
具体的には、処理データが頂点処理されたデータである場合、つまりシェーダ装置２０が頂点処理を実行する場合は、ビット選択回路２３５は、データバス２０１〜２０４を介して転送される処理データから、ピクセル演算ユニット２３４から転送されたビットを除き、統合演算ユニット２３１〜２３３から転送されたビットのみ選択する。ビット選択回路２３５は、選択したビットからなるデータを出力頂点パラメータＤＶｏとして、出力インタフェース２４を介してラスタライザ３０に転送する。
【００６５】
処理データがピクセル処理されたデータである場合、つまりシェーダ装置２０がピクセル処理を実行する場合は、ビット選択回路２３５は、統合演算ユニット２３１〜２３３から転送されたＦＰ３２の処理データの下位８ビットを削除してＦＰ２４のデータに変換する。つまり、データバス２０１〜２０３を介して転送された処理データの上位２４ビットを選択する。そして、ビット選択回路２３５は、ＦＰ２４のデータに変換した処理データ及びピクセル演算ユニット２３４から転送された処理データを出力ピクセルパラメータＤＰｏとして、出力インタフェース２４を介してフラグメントオペレーションユニット４０に転送する。
【００６６】
以上に説明したように、シェーダ装置２０は、シェーダ装置２０の動作を制御する制御プログラムの命令に応じて、頂点処理時は４要素×３頂点分の出力頂点パラメータＤＶｏを１クロックサイクルで出力し、ピクセル処理時は４要素×４ピクセル分の出力ピクセルパラメータＤＰｏを１クロックサイクルで出力する。つまり、関連技術のユニファイド型シェーダ装置がＦＰ３２の４要素からなる３ピクセル分のデータを１クロックサイクルで出力することに比べて、シェーダ装置２０は４ピクセル分のデータを並列に処理することによって、ピクセル処理の効率を３３％向上できる。その結果、シェーダ装置２０を使用することによって、ユニファイド型シェーダ装置を使用することによるピクセル処理に要する演算時間の増大を抑制できる。
【００６７】
３ピクセル分のデータを並列処理する関連技術のユニファイド型シェーダ装置に対する、上記に説明した４ピクセル分のデータを並列処理するシェーダ装置２０を実現するために必要な回路面積の増加は、ピクセル演算ユニット２３４分の回路面積である。浮動小数点演算器の回路面積は仮数部のビット長の２乗に比例すると仮定すれば、統合演算ユニット２３１〜２３３を含む回路の面積と、ピクセル演算ユニット２３４の回路の面積との比は１．０対０．１５程度である。又、一般に、シェーダ装置全体に占めるＡＬＵの面積の割合は３０％程度である。したがって、ピクセル演算ユニット２３４を付加することによるシェーダ装置２０の回路面積の増加率は、３０％×０．１５＝４．５％程度である。
【００６８】
以上では、頂点処理時もピクセル処理時も、メインデータバス１１０〜１３０の３８４ビットのバス幅をすべて有効に使用している例を説明した。つまり、以下の式（１）〜（３）が成立する場合を説明した：
Ｌｖ×Ｎｖ＝３８４    ・・・（１）
Ｌｐ×Ｎｐ＝３８４    ・・・（２）
｜Ｌｖ×Ｎｖ−Ｌｐ×Ｎｐ｜＝０    ・・・（３）
ここで、Ｌｖは頂点処理時の各浮動小数点データのビット数、Ｎｖは頂点処理時の１クロックサイクルあたりの処理データ数（４要素×並列処理数）である。又、Ｌｐはピクセル処理時の各浮動小数点データのビット数、Ｎｐはピクセル処理時の１クロックサイクルあたりの処理データ数（４要素×並列処理数）である。
【００６９】
浮動小数点データのビット数と並列処理数との組み合わせによっては、頂点処理時とピクセル処理時それぞれにおいて、メインデータバス１１０〜１３０のバス幅をすべて有効に使用できない場合がある。しかし、メインデータバス１１０〜１３０の使用されないビット数は、最大でも４×ｍａｘ（Ｌｖ、Ｌｐ）であり、以下の式（４）が成立する：
｜Ｌｖ×Ｎｖ−Ｌｐ×Ｎｐ｜＜４×ｍａｘ（Ｌｖ、Ｌｐ）    ・・・（４）
ここで、「ｍａｘ（Ｌｖ、Ｌｐ）」はビット数Ｌｖとビット数Ｌｐの大きいほうの値である。
【００７０】
以上に説明したように、図１に示した画像処理装置においては、レジスタ２２に格納されるエントリデータにおける頂点データの各先頭ビットの位置と、ピクセルデータのいずれかの先頭ビットの位置が同一になるようにする。そして、頂点データと先頭ビットの位置を一致させたピクセルデータの間に、更にピクセルデータを分割して格納することによって、エントリデータに含まれるピクセルデータのデータ数を頂点データの数より多くする。
【００７１】
その結果、図１に示した画像処理装置では、頂点処理及びピクセル処理を、それぞれの処理に必要な演算精度で同一の演算ユニットを用いて実行し、かつ制御プログラムの１回のピクセル処理命令に応じて処理されるピクセルデータの数を、１回の頂点処理命令に応じて処理される頂点データの数より多くできる。つまり、頂点処理よりピクセル処理でのスループットを高くできる。その結果、ユニファイド型シェーダ装置を採用することによって生じるピクセル処理に要する演算時間の増大が抑制される。又、上記に説明したように、４．５％程度の回路面積の増大で、演算ユニットのピクセル処理の効率が３３％程度向上する。つまり、本発明の実施の形態に係る画像処理装置によれば、ユニファイド型シェーダ装置を採用することによる回路面積増大の抑制しつつ、消費電力増大を抑制できる。
【００７２】
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。即ち、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態に係る画像処理装置の構成を示す模式図である。
【図２】本発明の実施の形態に係る画像処理装置が処理するデータの形式の構成を示す模式図であり、図２（ａ）はＦＰ３２のデータの構成例を示す模式図、図２（ｂ）はＦＰ２４のデータの構成例を示す模式図である。
【図３】本発明の実施の形態に係るシェーダ装置の構成を示す模式的なブロック図である。
【図４】本発明の実施の形態に係るレジスタに格納されるデータの構成例を示す模式図である。
【図５】本発明の実施の形態に係るＡＬＵの構成を示す模式的なブロック図である。
【図６】本発明の実施の形態に係る統合演算ユニットの構成を示す模式的なブロック図である。
【図７】本発明の実施の形態に係るピクセル演算ユニットの構成を示す模式的なブロック図である。
【符号の説明】
【００７４】
１０…ＤＭＡＣ
２０…シェーダ装置
２１…入力インタフェース
２２…レジスタ
２３…ＡＬＵ
２４…出力インタフェース
３０…ラスタライザ
４０…フラグメントオペレーションユニット
５０…データ記憶装置
６０…フレームバッファ
１１０〜１３０…メインデータバス
１１１〜１１４…サブデータバス
１２１〜１２４…サブデータバス
１３１〜１３４…サブデータバス
２０１〜２０４…データバス
２３１…統合演算ユニット
２３４…ピクセル演算ユニット
２３５…ビット選択回路
【図１】
2007328581.tif 000003
【図２】
2007328581.tif 000004
【図３】
2007328581.tif 000005
【図４】
2007328581.tif 000006
【図５】
2007328581.tif 000007
【図６】
2007328581.tif 000008
【図７】
2007328581.tif 000009