(57)【要約】【課題】半透明物体合成を行う場合に、任意のレイヤ数での重ね合わせを行うことが、全シーンデータを流す回数を減らすことができ、シーンデータの処理部の負荷を軽減できる画像処理装置およびその方法を提供する。【解決手段】縦続接続され、対応するバッファからの読み出し奥行きデータ値とライトユニットＷＵから供給された第１の供給奥行きデータ値とを比較し、第１の供給奥行きデータが読み出し奥行きデータより大きい場合、第１の供給奥行きデータとＲＧＢαデータを次段のソート回路に供給し、読み出し奥行きデータとＲＧＢαデータを対応するバッファに書き戻し、第１の供給奥行きデータが読み出し奥行きデータより小さい場合、読み出し奥行きデータとＲＧＢαデータを次段のソート回路に供給して、前段からの第２の供給奥行きデータとＲＧＢαデータを対応するバッファに書き込むソート回路ＳＲＴ０〜ＳＲＴ３を設ける。【選択図】　　　図１４
2004005352.tif 000002
【特許請求の範囲】
【請求項１】
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理装置であって、
上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、
上記各バッファに対応して設けられ、初段から最終段に向かって縦続接続された複数のソート回路と、を有し、
上記初段のソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、比較の結果、第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、
上記２段目以降の各ソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と前段のソート回路から供給された第２の供給奥行きデータ値とを比較し、比較の結果、第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段から供給された第２の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給する
画像処理装置。
【請求項２】
上記２段目以降の各ソート回路は、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項１記載の画像処理装置。
【請求項３】
複数のバッファを含む複数のメモリバンクを有し、
同一のメモリバンクの各バッファに対応して設けられたソート回路は互いに非接続状態にあり、
それぞれ異なるメモリバンクに含まれるバッファに対応して設けられた複数のソート回路が、それぞれ並列的に縦続接続されている
請求項１記載の画像処理装置。
【請求項４】
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理装置であって、
上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、
上記複数のバッファに対応して設けられ、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較する比較部を含む複数のソート回路と、を有し、
上記各ソート回路は、初段から最終段に向かって縦続接続され、各ソート回路は、上記比較部の比較の結果、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、当該読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
画像処理装置。
【請求項５】
上記初段のソート回路は、上記第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、供給された上記第１の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項４記載の画像処理装置。
【請求項６】
上記２段目以降の各ソート回路は、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項４記載の画像処理装置。
【請求項７】
複数のバッファを含む複数のメモリバンクが多段に配置され、
同一のメモリバンクの各バッファに対応して設けられたソート回路は互いに縦続接続され、
上記各メモリバンクの各バッファに対応して設けられ、縦続接続された複数のソート回路には、前段のメモリバンクの各バッファに対応して設けられ、縦続接続された複数のソート回路のうちの最終段の出力奥行きデータが供給される
請求項４記載の画像処理装置。
【請求項８】
複数のモジュールが処理データを共有して並列処理を行う画像処理装置であって、
グローバルモジュールと、
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う複数のローカルモジュールと、を含み、
上記グローバルモジュールは、
上記複数のローカルモジュールが並列に接続され、ローカルモジュールからリクエストを受けると、上記リクエストに応じた当該リクエストを出したローカルモジュールに処理データを出力し、
上記複数のローカルモジュールは、
上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、
上記各バッファに対応して設けられ、初段から最終段に向かって縦続接続された複数のソート回路と、を有し、
上記初段のソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、比較の結果、第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、
上記２段目以降の各ソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と前段のソート回路から供給された第２の供給奥行きデータ値とを比較し、比較の結果、第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段から供給された第２の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給する
画像処理装置。
【請求項９】
複数のモジュールが処理データを共有して並列処理を行う画像処理装置であって、
グローバルモジュールと、
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う複数のローカルモジュールと、を含み、
上記グローバルモジュールは、
上記複数のローカルモジュールが並列に接続され、ローカルモジュールからリクエストを受けると、上記リクエストに応じた当該リクエストを出したローカルモジュールに処理データを出力し、
上記複数のローカルモジュールは、
上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、
上記複数のバッファに対応して設けられ、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較する比較部を含む複数のソート回路と、を有し、
上記各ソート回路は、初段から最終段に向かって縦続接続され、各ソート回路は、上記比較部の比較の結果、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、当該読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
画像処理装置。
【請求項１０】
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理方法であって、
複数の各バッファに対応した複数のソートステージを初段から最終段に向かって縦続接続し、
上記初段のソートステージでは、
対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、
第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出し奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給し、
上記２段目以降の各ソートステージでは、
対応するバッファから読み出された読み出し奥行きデータ値と前段のソートステージから供給された第２の供給奥行きデータ値とを比較し、
第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給し、
読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ、色データ、および混合値データを次段のソートステージに供給する
画像処理方法。
【請求項１１】
上記２段目以降の各ソートステージでは、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項１０記載の画像処理方法。
【請求項１２】
複数のバッファを含む複数のメモリバンクを多段に配置し、
同一のメモリバンクの各バッファに対応したソートステージは互いに非接続状態とし、
それぞれ異なるメモリバンクに含まれるバッファに対応した複数のソートステージを、それぞれ並列的に縦続接続する
請求項１０記載の画像処理方法。
【請求項１３】
描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理方法であって、
複数の各バッファに対応した複数のソートステージを初段から最終段に向かって縦続接続し、
上記各ソートステージにおいて、
対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、
第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、
第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、読み出した奥行きデータ、色データ、および混合値データを次段のソートステージに供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
画像処理方法。
【請求項１４】
上記初段のソートステージでは、上記第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、当該読み出した奥行きデータ、色データ、および混合値データを次段のソートステージに供給して、上記第１の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項１３記載の画像処理方法。
【請求項１５】
上記２段目以降の各ソートステージでは、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む
請求項１３記載の画像処理方法。
【請求項１６】
複数のバッファを含む複数のメモリバンクを多段に配置し、
同一のメモリバンクの各バッファに対応して設けられたソートステージを互いに縦続接続し、
上記各メモリバンクに対応する縦続接続された複数のソートステージには、前段のメモリバンクに対応する縦続接続された複数のソートステージのうちの最終段の出力奥行きデータを供給する
請求項１３記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の処理データを共有して並列処理を行う画像処理装置およびその方法に関するものである。
【０００２】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ　Ｄｉｆｆｅｒｅｎｔｉａｌ　Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
ところで、グラフィックスＬＳＩの性能を向上させるには、ＬＳＩの動作周波数を上げるだけではなく、並列処理の手法を利用することが有効である。並列処理の手法を大別すると以下のようになる。
第１は領域分割による並列処理法であり、第２はプリミティブレベルでの並列処理法であり、第３はピクセルレベルでの並列処理法である。
【０００９】
上記分類は並列処理の粒度に基づいており、領域分割並列処理の粒度が最もあらく、ピクセル・レベル並列処理の粒度が最も細かい。それぞれの手法の概要を以下に述べる。
【００１０】
領域分割による並列処理
画面を複数の矩形領域に分割し、複数の処理ユニットそれぞれが担当する領域を割り当てながら並列処理する手法である。
【００１１】
プリミティブレベルでの並列処理
複数の処理ユニットに別々のプリミティブ（たとえば三角形）を与えて並列動作させる手法である。
【００１２】
ピクセルレベルでの並列処理
最も粒度の細かい並列処理の手法である。
図１は、ピクセルレベルでの並列処理の手法に基づくプリミティブレベルでの並列化処理について概念的に示す図である。
図１のように、ピクセルレベルでの並列処理の手法では三角形をラスタライズする際に、２×８のマトリクス状に配列されたピクセルからなるピクセルスタンプ（Ｐｉｘｅｌ　Ｓｔａｍｐ）ＰＳと呼ばれる矩形領域単位にピクセルが生成される。
図１の例では、ピクセルスタンプＰＳ０からからピクセルスタンプＰＳ７までの合計８個のピクセルスタンプが生成されている。これらピクセルスタンプＰＳ０〜ＰＳ７に含まれる最大１６個のピクセルが同時に処理される。
この手法は、他の手法に比べ粒度が細かい分、並列処理の効率が良い。
【００１３】
【発明が解決しようとする課題】
しかしながら、上述した領域分割による並列処理の場合、各処理ユニットを効率良く並列動作させるためには、各領域に描画されるべきオブジェクトをあらかじめ分類する必要があり、シーンデータ解析の負荷が重い。
また、１フレーム分のシーンデータが全て揃った上で描画を開始するのではなく、オブジェクトデータが与えられると即描画を開始するいわゆるイミーディエートモードでの描画を行う際には並列性を引き出すことができない。
【００１４】
また、プリミティブレベルでの並列処理の場合、実際には、オブジェクトを構成するプリミティブの大きさにはバラツキがあることから、処理ユニットごとに一つのプリミティブを処理する時間に差が生じる。この差が大きくなった際には、処理ユニットが描画する領域も大きく異なり、データのローカリティが失われるので、メモリモジュールを構成するたとえばＤＲＡＭのページミスが頻発し性能が低下する。
また、この手法の場合には、配線コストが高いという問題点もある。一般に、グラフィックス処理を行うハードウェアでは、メモリのバンド幅を広げるために、複数メモリモジュールを用いてメモリインターリーブを行う。
その際、各処理ユニットと各内蔵メモリモジュールを全て結ぶ必要がある。
【００１５】
一方、ピクセルレベルでの並列処理の場合、上述したように、粒度が細かい分、並列処理の効率が良いという利点があり、実際のフィルタリングを含む処理としては図２に示すような手順で行われている。
【００１６】
すなわち、ＤＤＡパラメータ、たとえばラスタライゼーション（Ｒａｓｔｅｒｉｚａｔｉｏｎ）に必要な各種データ（Ｚ、テクスチャ座標、カラーなど）の傾き等のＤＤＡパラメータを算出する（ＳＴ１）。
次に、メモリからテクスチャデータを読み出し（ＳＴ２）、複数の演算器を含む第１の処理ユニットでサブワード再配置処理を行った後（ＳＴ３）、クロスバー回路により複数の演算器を含む第２の処理ユニットに集約する（ＳＴ４）。
次に、テクスチャフィルタリング（Ｔｅｘｔｕｒｅ　Ｆｉｌｔｅｒｉｎｇ）を行う（ＳＴ５）。この場合、第２の処理ユニットは、読み出されたテクスチャデータと、（ｕ，ｖ）アドレスは算出時に得た小数部を使って４近傍補間などのフィルタリング処理を行う。
次に、ピクセルレベルの処理（Ｐｅｒ−Ｐｉｘｅｌ　Ｏｐｅｒａｔｉｏｎ）、具体的には、フィルタリング後のテクスチャデータと、ラスタライズ後の各種データを用いて、ピクセル単位の演算を行う（ＳＴ５）。
そして、ピクセルレベルの処理における各種テストをパスしたピクセルデータを、複数のメモリモジュール上のフレームバッファおよびＺバッファに描画する（ＳＴ６）。
【００１７】
また、画像処理装置において、複数のバッファを用いて半透明物体の合成を行う場合には、グラフィックスメモリに含まれるｚバッファに記憶されているｚデータと、描画データとして供給されるピクセルデータに対応するｚデータとを比較し、供給されたピクセルデータによって書き込まれた画像により、手前（視点側）に位置するか否かを判断し、各バッファのｚデータの奥行き方向に順番を維持しながら合成する。
【００１８】
ところが、従来の画像処理装置においては、上述した半透明物体合成（Ｏｒｄｅｒ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｔｒａｎｓｐａｒｅｎｃｙ）を行う場合には、全シーンデータを流し、並列的に処理するときに、任意のレイヤ数での重ね合わせを行うことができない。
したがって、従来の画像処理装置においては、全シーンを流す回数が増大し、上位側の処理部、たとえばジオメトリ処理部の負荷が増大する等の不利益がある。
【００１９】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、半透明物体合成を行う場合に、任意のレイヤ数での重ね合わせを行うことができ、全シーンデータを流す回数を減らすことができ、ひいてはシーンデータの処理部の負荷を軽減でき、処理の高速化を図れる画像処理装置およびその方法を提供することにある。
【００２０】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点は、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理装置であって、上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、上記各バッファに対応して設けられ、初段から最終段に向かって縦続接続された複数のソート回路と、を有し、上記初段のソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、比較の結果、第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、上記２段目以降の各ソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と前段のソート回路から供給された第２の供給奥行きデータ値とを比較し、比較の結果、第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段から供給された第２の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ値、色データ、および混合値データを次段のソート回路に供給する。
【００２１】
本発明では、上記２段目以降の各ソート回路は、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００２２】
また、本発明では、複数のバッファを含む複数のメモリバンクを有し、同一のメモリバンクの各バッファに対応して設けられたソート回路は互いに非接続状態にあり、それぞれ異なるメモリバンクに含まれるバッファに対応して設けられた複数のソート回路が、それぞれ並列的に縦続接続されている。
【００２３】
本発明の第２の観点は、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理装置であって、上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、上記複数のバッファに対応して設けられ、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較する比較部を含む複数のソート回路と、を有し、上記各ソート回路は、初段から最終段に向かって縦続接続され、各ソート回路は、上記比較部の比較の結果、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、当該読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００２４】
本発明では、上記初段のソート回路は、上記第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、供給された上記第１の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００２５】
また、本発明では、上記２段目以降の各ソート回路は、対応するバッファに奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００２６】
また、本発明では、複数のバッファを含む複数のメモリバンクが多段に配置され、同一のメモリバンクの各バッファに対応して設けられたソート回路は互いに縦続接続され、上記各メモリバンクの各バッファに対応して設けられ、縦続接続された複数のソート回路には、前段のメモリバンクの各バッファに対応して設けられ、縦続接続された複数のソート回路のうちの最終段の出力奥行きデータが供給される。
【００２７】
本発明の第３の観点は、複数のモジュールが処理データを共有して並列処理を行う画像処理装置であって、グローバルモジュールと、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う複数のローカルモジュールと、を含み、上記グローバルモジュールは、上記複数のローカルモジュールが並列に接続され、ローカルモジュールからリクエストを受けると、上記リクエストに応じた当該リクエストを出したローカルモジュールに処理データを出力し、上記複数のローカルモジュールは、上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、上記各バッファに対応して設けられ、初段から最終段に向かって縦続接続された複数のソート回路と、を有し、上記初段のソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、比較の結果、第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、上記２段目以降の各ソート回路は、対応するバッファから読み出された読み出し奥行きデータ値と前段のソート回路から供給された第２の供給奥行きデータ値とを比較し、比較の結果、第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段から供給された第２の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給し、読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給する。
【００２８】
本発明の第４の観点は、複数のモジュールが処理データを共有して並列処理を行う画像処理装置であって、グローバルモジュールと、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う複数のローカルモジュールと、を含み、上記グローバルモジュールは、上記複数のローカルモジュールが並列に接続され、ローカルモジュールからリクエストを受けると、上記リクエストに応じた当該リクエストを出したローカルモジュールに処理データを出力し、上記複数のローカルモジュールは、上記色データ、混合値データ、および奥行きデータを記憶および読み出しが可能な複数のバッファと、上記複数のバッファに対応して設けられ、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較する比較部を含む複数のソート回路と、を有し、上記各ソート回路は、初段から最終段に向かって縦続接続され、各ソート回路は、上記比較部の比較の結果、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソート回路に供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、当該読み出した奥行きデータ、色データ、および混合値データを次段のソート回路に供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００２９】
本発明の第５の観点は、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理方法であって、複数の各バッファに対応した複数のソートステージを初段から最終段に向かって縦続接続し、上記初段のソートステージでは、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、第１の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出し奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給し、上記２段目以降の各ソートステージでは、対応するバッファから読み出された読み出し奥行きデータ値と前段のソートステージから供給された第２の供給奥行きデータ値とを比較し、第２の供給奥行きデータ値の方が大きい場合または小さい場合には、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給し、読み出し奥行きデータ値の方が大きい場合または小さい場合には、前段からの第２の供給奥行きデータ、色データ、および混合値データを対応するバッファに書き込み、読み出した奥行きデータ、色データ、および混合値データを次段のソートステージに供給する。
【００３０】
本発明の第６の観点は、描画すべきプリミティブに関する情報に基づいて色データ、混合値データ、および奥行きデータを含むピクセルデータを発生し、複数の奥行きデータの奥行き方向の順番を保持して、半透明物体の合成処理を行う画像処理方法であって、複数の各バッファに対応した複数のソートステージを初段から最終段に向かって縦続接続し、上記各ソートステージにおいて、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とを比較し、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合または小さい場合には、供給された第１の供給奥行きデータ値、色データ、および混合値データを次段のソートステージに供給して、読み出した奥行きデータ、色データ、および混合値データを対応するバッファに書き戻し、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合または大きい場合には、読み出した奥行きデータ、色データ、および混合値データを次段のソートステージに供給して、前段からの第２の供給奥行きデータ値、色データ、および混合値データを対応するバッファに書き込む。
【００３１】
本発明によれば、たとえば各バッファに格納されている奥行きデータ、色データ、および混合値データが対応するソート回路に読み出される。
また、初段のソート回路には、描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値、色データ、および混合値データが供給される。初段のソート回路においては、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とが比較される。
そして、比較の結果、第１の供給奥行きデータ値の方がたとえば大きい場合（または小さい場合）には、読み出した奥行きデータ、色データ、および混合値データが対応するバッファに書き戻され、供給された第１の供給奥行きデータ値、色データ、および混合値データが次段のソート回路に供給される。
また、２段目以降の各ソート回路では、対応するバッファから読み出された読み出し奥行きデータ値と前段のソート回路から供給された第２の供給奥行きデータ値とが比較される。
そして、比較の結果、第２の供給奥行きデータ値の方が大きい場合（または小さい場合）には、読み出し奥行きデータ、色データ、および混合値データを対応するバッファに書き戻され、前段からの第２の供給奥行きデータ値、色データ、および混合値データが次段のソート回路に供給される。
一方、読み出し奥行きデータ値の方が大きい場合（または小さい場合）には、前段からの第２の供給奥行きデータ値、色データ、および混合値データが対応するバッファに書き込まれ、読み出した奥行きデータ、色データ、および混合値データが次段のソート回路に供給される。
【００３２】
また、本発明によれば、たとえば各バッファに格納されている奥行きデータ、色データ、および混合値データが対応するソート回路に読み出される。
また、各ソート回路には、描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値、色データ、および混合値データが供給される。
各ソート回路においては、対応するバッファから読み出された読み出し奥行きデータ値と描画用として供給されたピクセルデータに対応する第１の供給奥行きデータ値とが比較される。
そして、比較の結果、第１の供給奥行きデータ値が読み出し奥行きデータ値より大きい場合（または小さい場合）には、供給された第１の供給奥行きデータ値、色データ、および混合値データが次段のソート回路に供給され、読み出した奥行きデータ、色データ、および混合値データが対応するバッファに書き戻される。
一方、第１の供給奥行きデータ値が読み出し奥行きデータ値より小さい場合（または大きい場合）には、読み出した奥行きデータ、色データ、および混合値データが次段のソート回路に供給され、前段からの第２の供給奥行きデータ値、色データ、および混合値データが対応するバッファに書き込まれる。
【００３３】
【発明の実施の形態】
図３は、本発明に係る画像処理装置の一実施形態を示すブロック構成図である。
【００３４】
本実施形態に係る画像処理装置１０は、図３に示すように、ストリームデータコントローラ（ＳＤＣ）１１、グローバルモジュール１２、および複数のローカルモジュール１３−０〜１３−３を有している。
【００３５】
本画像処理装置１０では、ＳＤＣ１１とグローバルモジュール１２とがデータの授受を行い、一つのグローバルモジュール１２に対して複数個ｍ、本実施形態では４個のローカルモジュール１３−０〜１３−３が並列に接続されて、複数のローカルモジュール１３−０〜１３−３で処理データを共有し並列に処理する。
そして、テクスチャリード系に関しては、他のローカルモジュールに対するメモリアクセスを必要とするが、グローバルアクセスバスの形態をとる代わりに、ルータとしての機能を有する一つのグローバルモジュール１２を介したアクセスを行う。
また、グローバルモジュール１２はグローバルキャッシュを有し、各ローカルモジュール１３−０〜１３−３はローカルキャッシュをそれぞれ有する。
すなわち、本画像処理装置１０は、キャッシュの階層として、たとえば４つのローカルモジュール１３−０〜１３−３が共有するグローバルキャッシュと、各ローカルモジュールがローカルに持つローカルキャッシュの２階層を有する。
【００３６】
以下に各構成要素の構成および機能について、図面に関連付けて順を追って説明する。
【００３７】
ＳＤＣ１１は、ＣＰＵや外部メモリとのデータの授受、並びにグローバルモジュール１２とのデータの授受を司るとともに、頂点データに対する演算、各ローカルモジュール１３−０〜１３−３の処理ユニットにおけるラスタライゼーション（Ｒａｓｔｅｒｉｚａｔｉｏｎ）に必要なパラメータの生成等の処理を行う。
【００３８】
ＳＤＣ１１における具体的な処理内容は以下の通りである。また、ＳＤＣ１１の処理手順を図４に示す。
【００３９】
ＳＤＣ１１は、まず、データが入力されると（ＳＴ１）、Ｐｅｒ−Ｖｅｒｔｅｘオペレーションを行う（ＳＴ２）。
この処理においては、３次元座標、法線ベクトル、テクスチャ座標の各頂点データが入力されると、頂点データに対する演算が行われる。代表的な演算としては、物体の変形やスクリーンへの投影などを行う座標変換の演算処理、ライティング（Ｌｉｇｈｔｉｎｇ）の演算処理、クリッピング（Ｃｌｉｐｐｉｎｇ）の演算処理がある。
ここで行われる処理は、いわゆるＶｅｒｔｅｘ　Ｓｈａｄｅｒの実行に相当する。
【００４０】
次に、ＤＤＡ（Ｄｉｇｉｔａｌ　Ｄｉｆｆｅｒｅｎｔｉａｌ　Ａｎａｌｙｚｅｒ）パラメータを計算する（ＳＴ３）。
この処理では、ラスタライゼーションに必要な各種データ（Ｚ、テクスチャ座標、カラーなど）の傾き等のＤＤＡパラメータを算出する。
【００４１】
次に、算出したＤＤＡパラメータをグローバルモジュール１２を介して全ローカルモジュール１３−０〜１３−３にブロードキャストする（ＳＴ４）。
この処理において、ブロードキャストされたパラメータは、キャッシュフィルとは別のチャネルを用いて、グローバルモジュール１２を介して各ローカルモジュール１３−０〜１３−３に渡される。ただし、グローバルキャッシュの内容には影響を与えない。
【００４２】
グローバルモジュール１２は、ルータ機能および全ローカルモジュールで共用するグローバルキャッシュ１２１を有する。
グローバルモジュール１２は、ＳＤＣ１１によるＤＤＡパラメータを並列に接続された全ローカルモジュール１３−０〜１３−３にブロードキャストする。
【００４３】
また、グローバルモジュール１２は、たとえばあるローカルモジュールからローカルキャッシュフィル（Ｌｏｃａｌ　Ｃａｃｈｅ　Ｆｉｌｌ）ＬＣＦのリクエストを受けると、図５に示すように、グローバルキャッシュのエントリーをチェックし（ＳＴ１１）、エントリーがあった場合には（ＳＴ１２）、要求されたブロックデータを読み出し（ＳＴ１３）、読み出したデータをリクエストを送出したローカルモジュールに送出し（ＳＴ１４）、エントリーがなかった場合には（ＳＴ１２）、当該ブロックデータを保持するターゲットのローカルモジュールに対してグローバルキャッシュフィル（Ｇｌｏｂａｌ　Ｃａｃｈｅ　Ｆｉｌｌ）ＧＣＦのリクエストを送り（ＳＴ１５）、その後送られてきたブロックデータでグローバルキャッシュを更新するとともに（ＳＴ１６，ＳＴ１７）、ブロックデータを読み出し（ＳＴ１３）、読み出したデータをローカルキャッシュフィルＬＤＦのリクエストを送ってきたローカルモジュールに対して送出する（ＳＴ１４）。
【００４４】
ローカルモジュール１３−０は、処理ユニット１３１−０、たとえばＤＲＡＭからなるメモリモジュール１３２−０、モジュール固有のローカルキャッシュ１３３−０、およびグローバルモジュール１２とのインターフェースを司るグローバルインターフェース（Ｇｌｏｂａｌ　Ａｃｃｅｓｓ　Ｉｎｔｅｒｆａｃｅ：ＧＡＩＦ））１３４−０を有している。
【００４５】
同様に、ローカルモジュール１３−１は、処理ユニット１３１−１、たとえばＤＲＡＭからなるメモリモジュール１３２−１、モジュール固有のローカルキャッシュ１３３−１、およびグローバルモジュール１２とのインターフェースを司るグローバルインターフェース（ＧＡＩＦ）１３４−１を有している。
ローカルモジュール１３−２は、処理ユニット１３１−２、たとえばＤＲＡＭからなるメモリモジュール１３２−２、モジュール固有のローカルキャッシュ１３３−２、およびグローバルモジュール１２とのインターフェースを司るグローバルインターフェース（ＧＡＩＦ）１３４−２を有している。
ローカルモジュール１３−３は、処理ユニット１３１−３、たとえばＤＲＡＭからなるメモリモジュール１３２−３、モジュール固有のローカルキャッシュ１３３−３、およびグローバルモジュール１２とのインターフェースを司るグローバルインターフェース（ＧＡＩＦ）１３４−３を有している。
【００４６】
各ローカルモジュール１３−０〜１３−３は、メモリモジュール１３２−０〜１３２−３が所定の大きさ、たとえば４×４の矩形領域単位にインターリーブされており、メモリモジュール１３２−０と処理ユニット１３１−０、メモリモジュール１３２−１と処理ユニット１３１−１、メモリモジュール１３２−２と処理ユニット１３１−２、およびメモリモジュール１３２−３と処理ユニット１３１−３は、担当領域は１対１に対応しており、描画系については他のローカルモジュールに対するメモリアクセスが発生しない。
一方、各ローカルモジュール１３−０〜１３−３は、テクスチャリード系に関しては、他のローカルモジュールに対するメモリアクセスを必要とするが、この場合、グローバルモジュール１２を介したアクセスを行う。
【００４７】
各ローカルモジュール１３−０〜１３−３の処理ユニット１３１−０〜１３１−３はそれぞれ、画像処理とグラフィックス処理に特徴的な、いわゆるストリーミングデータ処理を高スループットで実行するストリーミングプロセッサである。
【００４８】
各ローカルモジュール１３−０〜１３−３の処理ユニット１３１−０〜１３１−３は、たとえばそれぞれ以下のグラフィックス処理および画像処理を行う。
【００４９】
まず、処理ユニット１３１−０〜１３１−３のグラフィックス処理の概要を図６および図７のフローチャートに関連付けて説明する。
【００５０】
処理ユニット１３１（−０〜−３）は、ブロードキャストされたパラメータデータが入力されると（ＳＴ２１）、三角形が自分が担当する領域であるか否かを判断し（ＳＴ２２）、担当領域である場合には、ラスタライゼーションを行う（ＳＴ２３）。
すなわち、ブロードキャストされたパラメータを受け取ると、その三角形が自分が担当する領域、たとえば４×４ピクセルの矩形領域単位でインターリーブされた領域に属しているか否かを判断し、属している場合には、各種データ（Ｚ、テクスチャ座標、カラーなど）をラスタライズする。この場合、生成単位は、１ローカルモジュール当たり１サイクルで２×２ピクセルである。
【００５１】
次に、テクスチャ座標のパースペクティブコレクション（Ｐｅｒｓｐｅｃｔｉｖｅ　Ｃｏｒｒｅｃｔｉｏｎ）を行う（ＳＴ２４）。また、この処理ステージにはＬＯＤ（Ｌｅｖｅｌ　ｏｆ　Ｄｅｔａｉｌ）計算によるミップマップ（ＭｉｐＭａｐ）レベルの算出や、テクスチャアクセスのための（ｕ，ｖ）アドレス計算も含まれる。
【００５２】
次に、テクスチャの読み出しを行う（ＳＴ２５）。
この場合、各ローカルモジュール１３−０〜１３−３の処理ユニット１３１−０〜１３１−３は、図７に示すように、テクスチャリードの際に、まずは、ローカルキャッシュ１３３−０〜１３３−３のエントリーをチェックし（ＳＴ３１）、エントリーがあった場合には（ＳＴ３２）、必要なテクスチャデータを読み出す（ＳＴ３３）。
必要とするテクスチャ・データがローカルキャッシュ１３３−０〜１３３−３内に無い場合には、各処理ユニット１３１−０〜１３１−３は、グローバルインターフェース１３４−０〜１３４−３を通して、グローバルモジュール１２に対してローカルキャッシュフィルのリクエストを送る（ＳＴ３４）。
そして、グローバルモジュール１２は、要求されたブロックをリクエストを送出したローカルモジュールに返すが、なかった場合には上述したように（図５に関連付けて説明）、当該ブロックを保持するローカルモジュールに対してグローバルキャッシュフィルのリクエストを送る。その後ブロックデータをグローバルキャッシュにフィルするとともに、リクエストを送ってきたローカルモジュールに対してデータを送出する。
グローバルモジュール１２から要求したブロックデータが送られてくると、該当するローカルモジュールは、ローカルキャッシュを更新し（ＳＴ３５，ＳＴ３６）、処理ユニットはブロックデータを読み出す（ＳＴ３３）。
なお、ここでは、最大４テクスチャの同時処理を想定しており、読み出すテクスチャデータの数は、１ピクセルにつき１６テクセルである。
【００５３】
次に、テクスチャフィルタリング（Ｔｅｘｔｕｒｅ　Ｆｉｌｔｅｒｉｎｇ）を行う（ＳＴ２６）。
この場合、処理ユニット１３３−０〜１３３−３は、読み出されたテクスチャデータと、（ｕ，ｖ）アドレスを算出時に得た小数部を使って４近傍補間などのフィルタリング処理を行う。
【００５４】
次に、ピクセルレベルの処理（Ｐｅｒ−Ｐｉｘｅｌ　Ｏｐｅｒａｔｉｏｎ）を行う（ＳＴ２７）。
この処理においては、フィルタリング後のテクスチャデータと、ラスタライズ後の各種データを用いて、ピクセル単位の演算が行われる。ここで行われる処理は、ピクセルレベルでのライティング（Ｐｅｒ−Ｐｉｘｅｌ　Ｌｉｇｈｔｉｎｇ）などいわゆるＰｉｘｅｌ　Ｓｈａｄｅｒに相当する。また、それ以外にも以下の処理が含まれる。
すなわち、アルファテスト、シザリング、Ｚバッファテスト、ステンシルテスト、アルファブレンディング、ロジカルオペレーション、ディザリングの各処理である。
【００５５】
そして、ピクセルレベルの処理における各種テストをパスしたピクセルデータを、メモリモジュール１３２−０〜１３２−３、たとえば内蔵ＤＲＡＭメモリ上のフレームバッファおよびＺバッファに書き込まれる（ＳＴ２８：Ｍｅｍｏｒｙ
Ｗｒｉｔｅ）。
【００５６】
次に、処理ユニット１３１−０〜１３１−３の画像処理の概要を図８のフローチャートに関連付けて説明する。
【００５７】
画像処理を実行する前に、メモリモジュール１３２（−０〜−３）に画像データがロードされる。
そして、処理ユニット１３１（−０〜−３）では、画像処理に必要な読み出し（ソース：Ｓｏｕｒｃｅ）アドレスおよび書き込み（デスティネーション：Ｄｅｓｔｉｎａｔｉｏｎ）アドレスの生成に必要なコマンドやデータが入力される（ＳＴ４１）。
そして、処理ユニット１３１（−０〜−３）において、ソースアドレスおよびデスティネーションアドレスが生成される（ＳＴ４２）。
次に、ソース画像がメモリモジュール１３２（−０〜−３）から読み出され、あるいはグローバルモジュール１２から供給され（ＳＴ４３）、たとえばテンプレートマッチング等の所定の画像処理が行われる（ＳＴ４４）。
そして、必要に応じて所定の演算処理が行われ（ＳＴ４５）、その結果がメモリモジュール１３２（−０〜−３）のデスティネーションアドレスで指定された領域に書き込まれる（ＳＴ４６）。
【００５８】
各ローカルモジュール１３−０〜１３−３のローカルキャッシュ１３３−０〜１３３−３は、処理ユニット１３１−０〜１３１−３の処理に必要な描画データやテクスチャデータを格納し、処理ユニット１３１−０〜１３１−３とのデータの授受、並びにメモリモジュール１３２−０〜１３２−３とのデータの授受（書き込み、読み出し）を行う。
【００５９】
図９は、各ローカルモジュール１３−０〜１３−３のローカルキャッシュ１３３−０〜１３３−３の構成例を示すブロック図である。
【００６０】
ローカルキャッシュ１３３は、図９に示すように、リードオンリーキャッシュ（ＲＯ＄）１３３１、リードライトキャッシュ（ＲＷ＄）１３３２、リオーダバッファ（Ｒｅｏｒｄｅｒ　Ｂｕｆｆｅｒ：ＲＢ）１３３３、およびメモリコントローラ（ＭＣ）１３３４を含む。
【００６１】
リードオンリーキャッシュ１３３１は、演算処理のソース画像などを読み出すための読み出し専用キャッシュであって、たとえばテクスチャ系データ等の記憶に用いられる。
リードライトキャッシュ１３３２は、たとえばグラフィックス処理におけるリードモディファイライト（Ｒｅａｄ　Ｍｏｄｉｆｙ　Ｗｒｉｔｅ　）に代表される読み出しと書き込みの両方を必要とするオペレーションを実行するためのキャッシュであって、たとえば描画系データの記憶に用いられる。
【００６２】
リオーダバッファ１３３３は、いわゆる待ち合わせバッファであり、ローカルキャッシュに必要なデータがない場合、ローカルキャッシュフィルのリクエストを出したときに、グローバルモジュール１２に送られてくるデータの順番が異なる場合があるので、この順番を遵守し、処理ユニット１３１−０〜１３１−３に要求順に戻すようにデータの順番を調整する。
【００６３】
また、図１０は、メモリコントローラ１３３４のテクスチャ系の構成例を示すブロック図である。
このメモリコントローラ１３３４は、図１０に示すように、４つのキャッシュＣＳＨ０〜ＣＳＨ３に対応するキャッシュコントローラ１３３４０〜１３３４３と、各キャッシュコントローラ１３３４０〜１３３４３から出力されるローカルキャッシュフィルリクエストを調停しグローバルインターフェース１３４｛−０〜３｝に出力するアービタ１３３４４と、グローバルインターフェース１３４｛−０〜３｝を介して入力したグローバルキャッシュフィルリクエストを受けて、データ転送の制御を行うメモリインターフェース１３３４５を含む。
【００６４】
また、キャッシュコントローラ１３３４０〜１３３４３は、４つのピクセルＰＸ０〜ＰＸ３それぞれに対応するデータに対して４近傍補間を行う際に必要な各データの２次元アドレスＣＯｕｖ００〜ＣＯｕｖ０３、ＣＯｕｖ１０〜ＣＯｕｖ１３、ＣＯｕｖ２０〜ＣＯｕｖ２３、ＣＯｕｖ３０〜ＣＯｕｖ３３を受けてアドレスの競合をチェックし分配するコンフリクトチェッカＣＣ１０と、コンフリクトチェッカＣＣ１０で分配されたアドレスをチェックしリードオンリーキャッシュ１３３１にアドレスで示されたデータが存在するか否かを判断するタグ回路ＴＡＧ１０と、キューレジスタＱＲ１０を有している。
タグ回路ＴＡＧ１０内は後述するバンクのインターリーブに関するアドレッシングに対応する４つのタグメモリＢＸ１０〜ＢＸ１３を有し、リードオンリーキャッシュ１３３１に記憶されている。
ブロックデータのアドレスタグを保持するコンフリクトチェッカＣＣ１０で分配されたアドレスと上記アドレスタグを比較し、一致したか否かのフラグと前記アドレスをキューレジスタＱＲ１０にセットするとともに、一致しなかった場合には前記アドレスをアービタ１３３４４に送出する。
アービタ１３３４４は、キャッシュコントローラ１３３４０〜１３３４３から送出されるアドレスを受けて調停作業を行い、グローバルインターフェース（ＧＡＩＦ）１３４を介して同時に送出できるリクエストの数に応じてアドレスを選択し、ローカルキャッシュフィルリクエストとしてグローバルインターフェース（ＧＡＩＦ）１３４に出力する。
グローバルインターフェース（ＧＡＩＦ）１３４を介して送出されたローカルキャッシュフィルリクエストに対応してグローバルキャッシュ１２からデータが送られてくると、リオーダバッファ１３３３にセットされる。
キャッシュコントローラ１３３４０〜１３３４３は、キューレジスタＱＲＬ０の先頭にあるフラグをチェックし、一致したことを示すフラグがセットされていた場合には、キューレジスタＱＲＬ０の先頭にあるアドレスに基づいて、リードオンリーキャッシュ１３３１のデータを読み出し、処理ユニット１３１に与える。一方、一致したことを示すフラグがセットされていなかった場合には、対応するデータがリオーダバッファ１３３３にセットされた時点でリオーダバッファ１３３３から読み出し、キューレジスタＱＲＬ０のアドレスに基づいて当該ブロックデータでリードオンリーキャッシュ１３３１を更新するとともに、処理ユニット１３１に出力する。
【００６５】
次に、メモリモジュールとしてのＤＲＡＭと、ローカルキャッシュと、グローバルキャッシュのメモリ容量について説明する。
メモリ容量の関係は、当然のことながらＤＲＡＭ＞グローバルキャッシュ＞ローカルキャッシュであるが、その割合については、アプリケーションに依存する。
キャッシュブロックサイズとしては、キャッシュフィル時に下位階層のメモリから読み出すデータサイズに相当する。
ＤＲＡＭの特性として、ランダムアクセス時には性能が低下するが、同一行（ＲＯＷ）に属するデータの連続アクセスは速いという点をあげることができる。
【００６６】
グローバルキャッシュは、ＤＲＡＭからデータを読み出す関係上、前記連続アクセスを行う方が性能上好ましい。
したがって、キャッシュブロックのサイズを大きく設定する。
たとえば、グローバルキャッシュのキャッシュブロックのサイズはＤＲＡＭマクロの１行分をブロックサイズにすることができる。
【００６７】
一方、ローカルキャッシュの場合には、ブロックサイズを大きくすると、キャッシュに入れても、使われないデータの割合が増えることと、下位階層がグローバルキャッシュでＤＲＡＭでなく連続アクセスに必要性がないことから、ブロックサイズは小さく設定する。
ローカルキャッシュのブロックサイズとしては、メモリインターリーブの矩形領域のサイズに近い値が適当で、本実施形態の場合、４×４ピクセル分、すなわち５１２ビットとする。
【００６８】
次に、テクスチャ圧縮について説明する。
１ピクセルの処理を行うのに複数のテクスチャデータを必要とするので、テクスチャ読み出しバンド幅がボトルネックになる場合が多いが、これを軽減するためテクスチャを圧縮する方法がよく採用される。
圧縮方法には、いろいろあるが、４×４ピクセルのように小さな矩形領域単位で圧縮／伸長できる方法の場合には、グローバルキャッシュには圧縮されたままのデータを置き、ローカルキャッシュには、伸長後のデータを置くことが好ましい。
【００６９】
次に、ローカルモジュール１３−０〜１３−３の処理ユニット１３１−０〜１３１−３の具体的な構成例について説明する。
【００７０】
図１１は、本実施形態に係るローカルモジュールの処理ユニットの具体的な構成例を示すブロック図である。
【００７１】
ローカルモジュール１３（−０〜−３）の処理ユニット１３１（−０〜−３）は、図１１に示すように、ラスタライザ（Ｒａｓｔｅｒｉｚｅｒ：ＲＳＴＲ）１３１１およびコア（Ｃｏｒｅ）１３１２を有している。
これらの構成要素のうち、コア１３１２が本アーキテクチャを実現する演算処理部がであり、コア１３１２はラスタライザ１３１１によりアドレスや座標等のグラフィックス処理および画像処理のための各種データが供給される。
【００７２】
ラスタライザ１３１１は、グラフィックス処理の場合には、グローバルモジュール１２からブロードキャストされたパラメータデータを受けて、たとえば三角形が自分が担当する領域であるか否かを判断し、担当領域である場合には、入力した三角形頂点データに基づいてラスタライゼーションを行い、生成したピクセルデータをコア１３１２に供給する。
ラスタライザ１３１１において生成されるピクセルデータには、ウィンドウ座標（Ｘ，Ｙ，Ｚ）、プライマリカラー（Ｐｒｉｍａｒｙ　Ｃｏｌｏｒ：ＰＣ）（Ｒｐ，Ｇｐ，Ｂｐ，Ａｐ）、セカンダリカラー（Ｓｅｃｏｎｄａｒｙ　Ｃｏｌｏｒ：ＳＣ）（Ｒｓ，Ｇｓ，Ｂｓ，Ａｓ）、Ｆｏｇ係数（ｆ）、テクスチャ座標、法線ベクトル、視線ベクトル、ライトベクトル（（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ），（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ））等の各種データが含まれる。
なお、ラスタライザ１３１１からコア１３１２へのデータの供給ラインは、たとえばウィンドウ座標（Ｘ，Ｙ，Ｚ）の供給ラインと、他のプライマリカラー（Ｒｐ，Ｇｐ，Ｂｐ，Ａｐ）、セカンダリカラー（Ｒｓ，Ｇｓ，Ｂｓ，Ａｓ）、Ｆｏｇ係数（ｆ）、テクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、および（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）の供給ラインとは、異なる配線により形成される。
【００７３】
ラスタライザ１３１１は、画像処理の場合には、たとえばグローバルモジュール１２を介して図示しない上位装置から出力された、メモリモジュール１３２（−０〜−３）から画像データを読み出すためのソースアドレスおよび画像処理結果を書き込むためのデスティネーションアドレスの生成に必要なコマンドやデータ、たとえば探索矩形領域の幅、高さデータ（Ｗｓ，Ｈｓ）、ブロックサイズデータ（Ｗｂｋ，Ｈｂｋ）を入力し、入力データに基づいて、ソースアドレス（Ｘ１ｓ，Ｙ１ｓ）および／または（Ｘ２ｓ，Ｙ２ｓ）を生成するとともに、デスティネーションアドレス（Ｘｄ，Ｙｄ）を生成し、コア１３１２に供給する。
画像処理時のラスタライザ１３１１からコア１３１２へのデータの供給ラインは、たとえばデスティネーションアドレス（Ｘｄ，Ｙｄ）に関してはグラフィックス処理時のウィンドウ座標（Ｘ，Ｙ，Ｚ）の供給ラインが共用され、ソースアドレス（Ｘ１ｓ，Ｙ１ｓ），（Ｘ２ｓ，Ｙ２ｓ）に関してはテクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、および（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）等の供給ラインが共用される。
【００７４】
コア１３１２は、本アーキテクチャを実現する演算処理部であり、コア１３１２はラスタライザ１３１１により各種データが供給される。
コア１３１２は、ストリームデータに対して演算処理を行う以下の機能ユニットを有している。
すなわち、コア１３１２は、第１の機能ユニットとしてのグラフィックスユニット（Ｇｒａｐｈｉｃｓ　Ｕｎｉｔ　：ＧＲＵ）１３１２１、第３の機能ユニットとしてのピクセルエンジン（Ｐｉｘｅｌ　Ｅｎｇｉｎｅ：ＰＸＥ）１３１２２、および第２の機能ユニットとしてのピクセル演算プロセッサ（Ｐｉｘｅｌ　０ｐｅｒａｔｉｏｎ　Ｐｒｏｃｅｓｓｏｒ　：ＰＯＰ）群１３１２３を有している。
コア１３１２は、たとえばデータフローグラフ（Ｄａｔａ　Ｆｌｏｗ　Ｇｒａｐｈ　：　ＤＦＧ）に応じてこれらの機能ユニット間の接続を切り替えることにより様々なアルゴリズムに対応する。
さらに、コア１３１２は、レジスタユニット（Ｒｅｇｉｓｔｅｒ　Ｕｎｉｔ　：ＲＧＵ）１３１２４、およびクロスバー回路（Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ　Ｘ−Ｂａｒ　：ＩＸＢ）１３１２５を有している。
【００７５】
グラフィックスユニット（ＧＲＵ）１３１２１は、グラフィックス処理を実行する際に、専用ハードウェアを付加することがコストパフォーマンス上明らかに有利なものをハードワイヤードロジックで実装している機能ユニットである。
グラフィックスユニット１３１２１は、グラフィックス処理に関連するものとして、パースペクティブコレクション（Ｐｅｒｓｐｅｃｔｉｖｅ　Ｃｏｒｒｅｃｔｉｏｎ）、ＭＩＰＭＡＰレベル算出等の機能を実装している。
【００７６】
グラフィックスユニット１３１２１は、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介してラスタライザ１３１１により供給されたテクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、および／またはラスタライザ１３１１またはピクセルエンジン（ＰＸＥ）１３１２２により供給されたテクスチャ座標（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）データを入力し、入力データに基づいて、パースペクティブコレクション、ＬＯＤ（ＬｅｖｅｌｏｆＤｅｔａｉｌ）計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出、立方体マップ（Ｃｕｂｅ　Ｍａｐ）の面選択や正規化テクセル座標（ｓ，ｔ）の算出処理を行い、たとえば正規化テクセル座標（ｓ，ｔ）およびＬＯＤデータ（ｌｏｄ）を含むグラフィックスデータ（ｓ１，ｔ１，ｌｏｄ１）および／または（ｓ２，ｔ２，ｌｏｄ２）をピクセル演算プロセッサ（ＰＯＰ）群１３１２３に出力する。
なお、グラフィックスユニット１３１２１の出力グラフィックスデータ（ｓ１，ｔ１，ｌｏｄ１），（ｓ２，ｔ２，ｌｏｄ２）は、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を通して、あるいは図１４中、破線で示すように、別の配線で直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【００７７】
第３の機能ユニットとしてのピクセルエンジン（ＰＸＥ）１３１２２は、ストリームデータ処理を行う機能ユニットであって、内部に複数の演算器を有する。ピクセルエンジン１３１２２は、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３に比べて演算器間の接続自由度が高く、かつ演算器の機能も豊富である。
【００７８】
ピクセルエンジン（ＰＸＥ）１３１２２は、描画対象に関する情報やピクセル演算プロセッサ（ＰＯＰ）群１３１２３における演算結果を、たとえばクロスバー回路１３１２５によりレジスタユニット（ＲＧＵ）１３１２４の所望のＦＩＦＯレジスタに設定された後、クロスバー回路１３１２５を介さず、レジスタユニット（ＲＧＵ）１３１２４を介して直接的に供給される。
ピクセルエンジン（ＰＸＥ）１３１２２に入力されるデータとしては、たとえば描画する対象の表面に関する情報（面の方向、色、反射率、模様（テクスチャ）等）、表面にあたる光に関する情報（入射方向、強さなど）、過去の演算結果（演算の中間値）等が一般的である。
【００７９】
ピクセルエンジン（ＰＸＥ）１３１２２は、複数の演算器を有し、たとえば外部からの制御により演算経路を再構成可能な演算ユニットであって、所望の演算を実現するように、内部の演算器間の電気的接続を確立し、レジスタユニット（ＲＧＵ）１３１２４を介して入力されたデータを、演算器と電気的接続網（インターコネクト）から形成される一連の演算器のデータパスに入力することで演算を行い、演算結果を出力する。
【００８０】
すなわち、ピクセルエンジン１３１２２は、再構成可能なデータパスをたとえば複数有し、演算器（加算器、乗算器、乗加算器等）を、電気的な接続網で接続し、複数個の演算器からなる演算回路を構成する。
そして、ピクセルエンジン１３１２２は、このようにして再構成された演算回路に対して、連続してデータを入力し、演算を行うことが可能であり、たとえば二分木状のＤＦＧ（データフローグラフ）で表現される演算を、効率よくかつ少ない回路規模で実現できる接続網を使用して演算回路を構成することが可能である。
【００８１】
図１２は、ピクセルエンジン（ＰＸＥ）１３１２２の構成例、およびレジスタユニット（ＲＧＵ）１３１２４、クロスバー回路１３１２５との接続例を示す図である。
【００８２】
このピクセルエンジン（ＰＸＥ）１３１２２は、図１２に示すように、２または３入力ＭＡＣ（Ｍｕｌｔｉｐｌｙ　ａｎｄ　Ａｃｃｕｍｕｌａｔｏｒ）を基本とした複数（図１２の例では１６個）の演算器ＯＰ１〜ＯＰ８，ＯＰ１１〜ＯＰ１８と、１または複数（図１２の例では４個）ルックアップテーブルＬＵＴ１，ＬＵＴ２、ＬＵＴ１１，ＬＵＴ１２とを有している。
【００８３】
図１２に示すように、ピクセルエンジン（ＰＸＥ）１３１２２内の各演算器ＯＰ１〜ＯＰ８，ＯＰ１１〜ＯＰ１８の２本の入力は、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯ（Ｆｉｒｓｔ−ＩＮ　Ｆｉｒｓｔ−Ｏｕｔ）　レジスタＦＲＥＧと直結している。
同様に、ルックアップテーブルＬＵＴ１，ＬＵＴ２、ＬＵＴ１１，ＬＵＴ１２の１本の入力はレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧと直結している。
そして、各演算器ＯＰ１〜ＯＰ８，ＯＰ１１〜ＯＰ１８およびルックアップテーブルＬＵＴ１，ＬＵＴ２、ＬＵＴ１１，ＬＵＴ１２の出力は、クロスバー回路１３１２５に接続されている。
【００８４】
さらに、図１２の例では、演算器ＯＰ１の出力が演算器ＯＰ３，ＯＰ４の２入力および３入力演算器ＯＰ２の１入力にそれぞれ接続されている。同様に、演算器ＯＰ２の出力が演算器ＯＰ４の２入力および３入力演算器ＯＰ３の１入力にそれぞれ接続されている。また、演算器ＯＰ３の出力が３入力演算器ＯＰ４の１入力に接続されている。
演算器ＯＰ５の出力が演算器ＯＰ７，ＯＰ８の２入力および３入力演算器ＯＰ６の１入力にそれぞれ接続されている。同様に、演算器ＯＰ６の出力が演算器ＯＰ８の２入力および３入力演算器ＯＰ７の１入力にそれぞれ接続されている。また、演算器ＯＰ７の出力が３入力演算器ＯＰ８の１入力に接続されている。
さらに、演算器ＯＰ１１の出力が演算器ＯＰ１３，ＯＰ１４の２入力および３入力演算器ＯＰ１２の１入力にそれぞれ接続されている。同様に、演算器ＯＰ１２の出力が演算器ＯＰ１４の２入力および３入力演算器ＯＰ１３の１入力にそれぞれ接続されている。また、演算器ＯＰ１３の出力が３入力演算器ＯＰ１４の１入力に接続されている。
演算器ＯＰ１５の出力が演算器ＯＰ１７，ＯＰ１８の２入力および３入力演算器ＯＰ１６の１入力にそれぞれ接続されている。同様に、演算器ＯＰ１６の出力が演算器ＯＰ１８の２入力および３入力演算器ＯＰ１７の１入力にそれぞれ接続されている。また、演算器ＯＰ１７の出力が３入力演算器ＯＰ１８の１入力に接続されている。
【００８５】
このように、図１２のピクセルエンジン（ＰＸＥ）１３１２２内においては、演算器ＯＰ１の出力がフォワーディングパスにより演算器ＯＰ２，ＯＰ３、ＯＰ４に接続されており、演算器ＯＰ２，ＯＰ３、ＯＰ４は、演算器ＯＰ１の出力をソースオペランドとして参照可能である。
演算器ＯＰ２の出力がフォワーディングパスにより演算器ＯＰ３、ＯＰ４に接続されており、演算器ＯＰ３、ＯＰ４は、演算器ＯＰ２の出力をソースオペランドとして参照可能である。
演算器ＯＰ３の出力がフォワーディングパスにより演算器ＯＰ４に接続されており、演算器ＯＰ４は、演算器ＯＰ３の出力をソースオペランドとして参照可能である。
演算器ＯＰ５の出力がフォワーディングパスにより演算器ＯＰ６，ＯＰ７、ＯＰ８に接続されており、演算器ＯＰ６，ＯＰ７、ＯＰ８、演算器ＯＰ５の出力をソースオペランドとして参照可能である。
演算器ＯＰ６の出力がフォワーディングパスにより演算器ＯＰ７、ＯＰ８に接続されており、演算器ＯＰ７、ＯＰ８は、演算器ＯＰ６の出力をソースオペランドとして参照可能である。
演算器ＯＰ７の出力がフォワーディングパスにより演算器ＯＰ８に接続されており、演算器ＯＰ８は、演算器ＯＰ７の出力をソースオペランドとして参照可能である。
同様に、演算器ＯＰ１１の出力がフォワーディングパスにより演算器ＯＰ１２，ＯＰ１３、ＯＰ１４に接続されており、演算器ＯＰ１２，ＯＰ１３、ＯＰ１４は、演算器ＯＰ１１の出力をソースオペランドとして参照可能である。
演算器ＯＰ１２の出力がフォワーディングパスにより演算器ＯＰ１３、ＯＰ１４に接続されており、演算器ＯＰ１３、ＯＰ１４は、演算器ＯＰ１２の出力をソースオペランドとして参照可能である。
演算器ＯＰ１３の出力がフォワーディングパスにより演算器ＯＰ１４に接続されており、演算器ＯＰ１４は、演算器ＯＰ１３の出力をソースオペランドとして参照可能である。
演算器ＯＰ１５の出力がフォワーディングパスにより演算器ＯＰ１６，ＯＰ１７、ＯＰ１８に接続されており、演算器ＯＰ１６，ＯＰ１７、ＯＰ１８、演算器ＯＰ１５の出力をソースオペランドとして参照可能である。
演算器ＯＰ１６の出力がフォワーディングパスにより演算器ＯＰ１７、ＯＰ１８に接続されており、演算器ＯＰ１７、ＯＰ１８は、演算器ＯＰ１６の出力をソースオペランドとして参照可能である。
演算器ＯＰ１７の出力がフォワーディングパスにより演算器ＯＰ１８に接続されており、演算器ＯＰ１８は、演算器ＯＰ１７の出力をソースオペランドとして参照可能である。
また、ルックアップテーブルＬＵＴ１，ＬＵＴ２、ＬＵＴ１１，ＬＵＴ１２は、たとえば任意に定義可能なＲＡＭ−ＬＵＴであり、１コンテキストでは最大Ｌ（Ｌ：同時参照可能なテーブル数）個まで参照可能である。ルックアップテーブルＬＵＴ１，ＬＵＴ２、ＬＵＴ１１，ＬＵＴ１２には、たとえばｓｉｎ／ｃｏｓ等の初等関数等が保持される。
【００８６】
以上の構成において、ピクセルエンジン（ＰＸＥ）１３１２２とレジスタユニット（ＲＧＵ）１３１２４間の接続数に関しては、ピクセルエンジン（ＰＸＥ）１３１２２からクロスバー回路（ＩＢＸ）１３１２５への接続数ＣＮ１は次のようになる。
【００８７】
【数１】
ＣＮ１＝（演算器数＋同時参照可能なＬＵＴ数）×１
【００８８】
また、レジスタユニット（ＲＧＵ）１３１２４からピクセルエンジン（ＰＸＥ）１３１２２への接続数ＣＮ２は次のようになる。
【００８９】
【数２】
ＣＮ２＝演算器数×２＋同時参照可能なＬＵＴ数×１
【００９０】
以上の構成を有するピクセルエンジン（ＰＸＥ）１３１２２は、たとえばグラフィックス処理時に、クロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４の所望のＦＩＦＯレジスタに設定され、ＦＩＦＯレジスタから直接的に入力されたピクセル演算プロセッサ（ＰＯＰ）群１３１２３における演算結果データ（ＴＲ１，ＴＧ１，ＴＢ１，ＴＡ１）および（ＴＲ２，ＴＧ２，ＴＢ２，ＴＡ２）、並びに、ラスタライザ１３１１によりレジスタユニット（ＲＧＵ）１３１２４の所望のＦＩＦＯレジスタに設定され、ＦＩＦＯレジスタから直接的に入力されたプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）に基づいて、たとえばピクセルシェーダ（Ｐｉｘｅｌ　Ｓｈａｄｅｒ）のような演算を行い、色データ（ＦＲ１，ＦＧ１，ＦＢ１）および混合値（ブレンド値：ＦＡ１）を求める。
ピクセルエンジン（ＰＸＥ）１３１２２は、このデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）を、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介して、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の所定のＰＯＰ内あるいは別個に設けられたライトユニットＷＵに転送する。
【００９１】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３は、メモリバンド幅を活かした高並列の演算処理を行う機能ユニットであるＰＯＰを複数、本実施形態ではたとえば図１３に示すように、ＰＯＰ０〜ＰＯＰ３の４個を有する。
各ＰＯＰは、並列に配列されたＰＯＰＥ（Ｐｉｘｅｌ　Ｏｐｅｒａｔｉｏｎ　Ｐｒｏｃｅｓｓｉｎｇ　Ｅｌｅｍｅｎｔ）と呼ばれる複数の演算器を有している。また、メモリに対するアドレス生成機能も有する。
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３とキャッシュ間は広いバンド幅で接続されており、かつメモリアクセスのためのアドレス生成機能を内蔵しているので、演算器の演算能力を最大限引き出すだけのストリームデータの供給が可能である。
【００９２】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３は、グラフィックス処理時には、たとえば以下の処理を行う。
たとえばグラフィックスユニット（ＧＲＵ）１３１２１から直接的に供給された（ｓ１，ｔ１，ｌｏｄ１），（ｓ２，ｔ２，ｌｏｄ２）の値に基づいて、テクスチャアクセスのための（ｕ，ｖ）アドレス計算を行い、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）に基づいて４近傍フィルタリングを行うための４近傍の（ｕ，ｖ）座標、すなわち、（ｕ０，ｖ０），（ｕ１，ｖ１），（ｕ２，ｖ２），（ｕ３，ｖ３）を計算してメモリコントローラＭＣに供給して、メモリモジュール１３２から所望のテクセルデータをたとえばリードオンリーキャッシュＲＯ＄を通して各ＰＯＰＥに読み出す。
また、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３は、係数生成のためのデータ（ｕｆ，ｖｆ，ｌｏｄｆ）に基づいてテクスチャフィルタ係数Ｋを計算して各ＰＯＰＥに供給する。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰにおいて、色データ（ＴＲ，ＴＧ，ＴＢ）および混合値（ブレンド値：ＴＡ）を求め、（ＴＲ，ＴＧ，ＴＢ，ＴＡ）をクロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介してピクセルエンジン（ＰＸＥ）１３１２２に転送する。
【００９３】
一方、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３は、画像処理時には、たとえば以下の処理を行う。
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３は、たとえばラスタライザ１３１１で生成されてレジスタユニット（ＲＧＵ）１３１２４に設定され、グラフィックスユニット（ＧＲＵ）１３１２１を素通りしてクロスバー回路１３１２５を介さずに直接的に供給されたソースアドレス（Ｘ１ｓ，Ｙ１ｓ）および（Ｘ２ｓ，Ｙ２ｓ）に基づいて、たとえばリードオンリーキャッシュＲＯ＄および／またはリードライトキャッシュＲＷ＄を介して、メモリモジュール１３２にされている画像データを読み出し、読み出しデータに対して所定の演算処理を行って、演算結果をクロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介してライトユニットＷＵに転送する。
【００９４】
なお、上述した機能を有するＰＯＰのさらに具体的な構成については、後で詳述する。
【００９５】
レジスタユニット（ＲＧＵ）１３１２４は、コア１３１２内の各機能ユニットで処理されるストリームデータを格納するＦＩＦＯ構造のレジスタファイルである。
また、ハードウェアリソースの関係で、ＤＦＧを複数のサブＤＦＧ（Ｓｕｂ−ＤＦＧ）に分割して実行しなければならない場合に、サブＤＦＧ間の中間値格納バッファとしても機能する。
図１２に示すように、レジスタユニット（ＲＧＵ）１３１２４内のＦＩＦＯレジスタＦＲＥＧの出力と機能ユニットであるピクセルエンジン（ＰＸＥ）１３１２２、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各演算器の入力ポートとは、１対１に対応する。
【００９６】
クロスバー回路１３１２５は、コア１３１２が、ＤＦＧに応じて機能ユニット間の接続を替えることにより様々なアルゴリズムに対応可能なように、この接続切り替えを実現する。
上述したように、レジスタユニット（ＲＧＵ）１３１２４内のＦＩＦＯレジスタＦＲＥＧの出力と機能ユニットの入力ポートは固定で１対１に対応するが、機能ユニットの出力ポートとレジスタユニット（ＲＧＵ）１３１２４内のＦＩＦＯレジスタＦＲＥＧの入力をクロスバー回路１３１２５で切り替える。
【００９７】
図１４は、ＰＯＰ（ピクセル演算プロセッサ）とメモリ間の接続形態およびＰＯＰの構成例を示す図である。
なお、図１４の例は、各ＰＯＰ（０〜３）は、並列に配列された４個の演算器ＰＯＰＥ０〜ＰＯＰＥ３を有する場合である。
【００９８】
また、本実施形態においては、ローカルモジュール１３（−０〜−３）のメモリモジュール１３２（−０〜−３）には画像データが記憶されるが、ローカルモジュール１３（−０〜−３）は、ＰＯＰ（０〜３）とメモリモジュール１３２間にそれぞれ分割ローカルキャッシュＤ１３３（−０〜−３）を有している。
このような構成において、ＰＯＰ０〜３でピクセルレベルの並列演算処理を行う場合、画像データのアクセスには、次の２通りの方法がある。
第１は、メモリモジュール１３２に格納されている画像データを直接読み出して演算を行う方法である。
第２は、メモリモジュール１３２に格納されている画像データのうち、演算に必要とされる一部のデータをローカルキャッシュ１３３に格納し、ローカルキャッシュ１３３のデータを読み出して演算を行う方法である。
【００９９】
本実施形態においては、上述した第２の方法を採用している。
ローカルキャッシュ１３３は、ＰＯＰ（０〜３）の各ＰＯＰＥ０〜ＰＯＰＥ３に対応してそれぞれリードオンリーキャッシュＲＯ＄０〜ＲＯ＄３、並びに、リードライトキャッシュＲＷ＄０〜ＲＷ＄３が配置されている。
【０１００】
また、ローカルキャッシュ１３３は、セレクタＳＥＬ１〜ＳＥＬ１２、およびソート回路ＳＲＴ０〜ＳＲＴ３を有する。
セレクタＳＥＬ１〜ＳＥＬ４は、メモリモジュール１３２の対応するリードラインポートｐ（０）〜ｐ（３）からの３２ビット幅の読み出しデータまたは他のポートからの読み出しデータのいずれかを選択して、リードライトキャッシュＲＷ＄０〜ＲＷ＄３およびセレクタＳＥＬ９〜ＳＥＬ１２に出力する。
セレクタＳＥＬ５は、ＰＯＰのＰＯＰＥ０の演算結果またはソート回路ＳＲＴ１から出力されるピクセルに関する奥行きデータ、色（ＲＧＢ）データ、および混合値（α）データのいずれかを選択してリードライトキャッシュＲＷ＄０に供給する。また、セレクタＳＥＬ５は、リードライトポートｐ（０）からリードライトキャッシュＲＷ＄０に読み出された読み出し奥行きデータ値をソート回路ＳＲＴ０に供給する。
セレクタＳＥＬ６は、ＰＯＰのＰＯＰＥ１の演算結果またはソート回路ＳＲＴ２から出力されるピクセルに関する奥行きデータ、色（ＲＧＢ）データ、および混合値（α）データのいずれかを選択してリードライトキャッシュＲＷ＄１に供給する。また、セレクタＳＥＬ６は、リードライトポートｐ（１）からリードライトキャッシュＲＷ＄１に読み出された読み出し奥行きデータ値をソート回路ＳＲＴ１に供給する。
セレクタＳＥＬ７は、ＰＯＰのＰＯＰＥ２の演算結果またはソート回路ＳＲＴ３から出力されるピクセルに関する奥行きデータ、色（ＲＧＢ）データ、および混合値（α）データのいずれかを選択してリードライトキャッシュＲＷ＄２に供給する。また、セレクタＳＥＬ７は、リードライトポートｐ（２）からリードライトキャッシュＲＷ＄２に読み出された読み出し奥行きデータ値をソート回路ＳＲＴ２に供給する。
セレクタＳＥＬ８は、ＰＯＰのＰＯＰＥ３の演算結果またはソート回路ＳＲＴ４から出力されるピクセルに関する奥行きデータ、色（ＲＧＢ）データ、および混合値（α）データのいずれかを選択してリードライトキャッシュＲＷ＄３に供給する。また、セレクタＳＥＬ８は、リードライトポートｐ（３）からリードライトキャッシュＲＷ＄３に読み出された読み出し奥行きデータ値をソート回路ＳＲＴ３に供給する。
セレクタＳＥＬ９は、セレクタＳＥＬ１によるデータまたはグローバルモジュール１２により転送されたデータのいずれかを選択してリードオンリーキャッシュＲＯ＄０に供給する。
セレクタＳＥＬ１０は、セレクタＳＥＬ２によるデータまたはグローバルモジュール１２により転送されたデータのいずれかを選択してリードオンリーキャッシュＲＯ＄１に供給する。
セレクタＳＥＬ１１は、セレクタＳＥＬ３によるデータまたはグローバルモジュール１２により転送されたデータのいずれかを選択してリードオンリーキャッシュＲＯ＄２に供給する。
セレクタＳＥＬ１２は、セレクタＳＥＬ４によるデータまたはグローバルモジュール１２により転送されたデータのいずれかを選択してリードオンリーキャッシュＲＯ＄３に供給する。
【０１０１】
各ＰＯＰ（０〜３）は、並列に配列された４個の演算器ＰＯＰＥ０〜ＰＯＰＥ３に加えてライトユニットＷＵ、フィルタ機能ユニットＦＦＵ、出力選択回路ＯＳＬＣ、およびアドレス生成器ＡＧを有している。
【０１０２】
ライトユニットＷＵは、たとえば半透明物体合成モード時に、レジスタユニット（ＲＧＵ）１３１２４を介した描画用の第１の供給奥行きデータ値を各ソート回路ＳＲＴ０〜ＳＲＴ３に供給する。
なお、図１４の例では、ライトユニットＷＵを各ＰＯＰに設けている例を示しているが、たとえば個別に、あるいは図１５に示すように、一つのＰＯＰのみに設けて描画用の第１の供給奥行きデータ値を並列に配置された複数の分割メモリモジュールＤ１３３の各ソート回路ＳＲＴ０〜ＳＲＴ３、ＳＲＴ４〜ＳＲＴ７に供給するように構成することも可能である。
【０１０３】
なお、メモリモジュール１３２は複数のバッファＢＵＦ０〜ＢＵＦ３（図１５では、ＢＵＦ０〜ＢＵＦ７）に区分けされている。
各バッファＢＵＦ０〜ＢＵＦ３には、画像に関するデータが格納されるが、そのデータの中には、たとえば半透明物体合成モード時にも使用される奥行き深さ位置によって値が異なる奥行きデータ、並びにこれに対応する色（ＲＧＢ）データおよび混合値（α）データが格納される。
なお、以降、色（ＲＧＢ）データおよび混合値（α）データをＲＧＢαデータとして示す。
【０１０４】
ソート回路ＳＲＴ０〜ＳＲＴ３（図１５では、ＳＲＴ０〜ＳＲＴ７、以下図１４の構成に基づく）は、メモリモジュール１３２の複数のバッファＢＵＦ０〜ＢＵＦ３（図１５では、ＢＵＦ０〜ＢＵＦ７）の各ポートｐ（０）〜ｐ（３）（図１５では、ｐ（０）〜ｐ（７））にそれぞれ対応して設けられている。
ソート回路ＳＲＴ０〜ＳＲＴ３は、初段ＳＲＴ０から最終段ＳＲＴ３に向かって縦続接続され、対応するバッファＢＵＦ０〜ＢＵＦ３からリードライトキャッシュＲＷ＄０〜ＲＷ＄３（図１５では、ＲＷ＄０〜ＲＷ＄７）に読み出された読み出し奥行きデータ値と、描画用としてライトユニットＷＵからＲＧＢαデータと共に供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷとを比較する比較部を含む。
ソート回路ＳＲＴ０〜ＳＲＴ３は、比較部の比較の結果、第１の供給奥行きデータが読み出し奥行きデータより大きい場合（または小さい場合）には、供給された第１の供給奥行きデータ、ＲＧＢαデータを次段のソート回路に供給して読み出した奥行きデータとＲＧＢαデータを対応するバッファＢＵＦ０〜ＢＵＦ３に書き戻す。
一方、ソート回路ＳＲＴ０〜ＳＲＴ３は、比較部の比較の結果、第１の供給奥行きデータが読み出し奥行きデータより小さい場合（または大きい場合）には、読み出した奥行きデータとＲＧＢαデータを次段のソート回路に供給して、前段からの第２の供給奥行きデータとＲＧＢαデータを対応するバッファＢＵＦ０〜ＢＵＦ３に書き込む。
【０１０５】
また、初段のソート回路ＳＲＴ０は、第１の供給奥行きデータが読み出し奥行きデータより小さい場合（または大きい場合）には、読み出した奥行きデータとＲＧＢαデータを次段のソート回路ＳＲＴ１に供給して、供給された第１の供給奥行きデータとＲＧＢαデータをリードライトキャッシュＲＷ＄０を介して対応するバッファＢＵＦ０に書き込む。
また、２段目以降の各ソート回路ＳＲＴ１〜ＳＲＴ３は、対応するバッファＢＵＦ１〜ＢＵＦ３に奥行きデータ値が格納されていない場合には、前段からの第２の供給奥行きデータ値ＺＮＢＲとＲＧＢαデータを対応するバッファＢＵＦ１〜ＢＵＦ３に書き込む。
【０１０６】
図１６は、本実施形態に係るソート回路の具体的な構成例を示すブロック図である。
ソート回路ＳＲＴ（０〜３）は、図１６に示すように、比較部（ＣＭＰ）３０１、供給データ選択部（ＳＤＳＥＬ）３０２、および書き込みデータ選択部（ＷＤＳＥＬ）３０３を有している。
【０１０７】
比較部３０１は、対応するバッファＢＵＦ（０〜３）からリードライトキャッシュＲＷ＄（０〜３）に読み出された読み出し奥行きデータ値ＺＲＤと描画用としてライトユニットＷＵから供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷとを比較し、比較部の比較の結果、第１の供給奥行きデータ値ＺＤＲＷが読み出し奥行きデータ値ＺＲＤより大きい場合（ＺＤＲＷ＞ＺＲＤ）には、ローレベル（論理０）の制御信号ＣＴＬ３０１を供給データ選択部３０２、および書き込みデータ選択部３０３に出力する。
一方、比較部３０１は、比較部の比較の結果、第１の供給奥行きデータ値ＺＤＲＷが読み出し奥行きデータ値ＺＲＤより小さい場合（（ＺＤＲＷ＜ＺＲＤ）には、ハイレベル（論理１）の制御信号ＣＴＬ３０１を供給データ選択部３０２、および書き込みデータ選択部３０３に出力する。
【０１０８】
供給データ選択部３０２は、対応するバッファＢＵＦ（０〜３）からリードライトキャッシュＲＷ＄（０〜３）に読み出された読み出し奥行きデータ値ＺＲＤおよびＲＧＢαデータと、描画用としてライトユニットＷＵから供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷおよびＲＧＢαデータとを入力し、比較部３０１よりローレベルの制御信号ＣＴＬ３０１を受けると、第１の供給奥行きデータ値ＺＤＲＷとＲＧＢαデータを選択して次段のソート回路ＳＲＴ（１〜３）に供給し、ハイレベルの制御信号ＣＴＬ３０１を受けると、読み出した奥行きデータ値ＺＲＤとＲＧＢαデータを選択して次段のソート回路ＳＲＴ（１〜３）に供給する。
【０１０９】
書き込みデータ選択部３０３は、対応するバッファＢＵＦ（０〜３）からリードライトキャッシュＲＷ＄（０〜３）に読み出された読み出し奥行きデータ値ＺＲＤおよびＲＧＢαデータと、前段のソート回路ＳＲＴ（０〜２）による第２の供給奥行きデータ値ＺＮＢＲ（初段のソート回路ＳＲＴ０は、第１の供給奥行きデータ値ＺＤＲＷ）およびＲＧＢαデータとを受けて、比較部３０１よりローレベルの制御信号ＣＴＬ３０１を受けると、読み出した奥行きデータ値ＺＲＤとＲＧＢαデータを選択して、対応するバッファＢＵＦ０〜ＢＵＦ３に書き戻し、ハイレベルの制御信号ＣＴＬ３０１を受けると、前段からの第２の供給奥行きデータＺＮＢＲ（または第１の供給奥行きデータ値ＺＤＲＷ）とＲＧＢαデータを対応するバッファＢＵＦ０〜ＢＵＦ３に書き込む。
【０１１０】
図１７は、ソート回路を用いる半透明物体合成モード時の動作を説明するための図である。
この例では、バッファＢＵＦ０にＺ＝２５とＲＧＢαデータの奥行きデータが格納され、バッファＢＵＦ１にＺ＝３２の奥行きデータとＲＧＢαデータが格納され、バッファＢＵＦ２にＺ＝４０の奥行きデータとＲＧＢαデータが格納されていて、これらが各ソート回路ＳＲＴ０〜２に読み出されているものとする。
【０１１１】
まず、サイクル１で、描画用としてライトユニットＷＵから各ソート回路ＳＲＴ０〜ＳＲＴ３に対して、Ｚ＝２９の第１の供給奥行きデータ値ＺＤＲＷとＲＧＢαデータが供給される。
初段のソート回路ＳＲＴ０においては、比較部３０１の比較結果は、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝２５）より大きいことから、ローレベルの制御信号ＣＴＬ３０１が供給データ選択部３０２、および書き込みデータ選択部３０３に出力される。
その結果、供給データ選択部３０２では、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ１に供給される。
これと並行して、書き込みデータ選択部３０３では、読み出した奥行きデータ値ＺＲＤ（＝２５）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ０に書き戻される。
【０１１２】
２段目のソート回路ＳＲＴ１においては、比較部３０１の比較結果は、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝３２）より小さいことから、ハイレベルの制御信号ＣＴＬ３０１が供給データ選択部３０２、および書き込みデータ選択部３０３に出力される。
その結果、供給データ選択部３０２では、読み出し奥行きデータＺＲＤ（＝３２）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ２に供給される。
これと並行して、書き込みデータ選択部３０３では、前段からの第２の供給奥行きデータＺＮＢＲ（＝２９）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１に書き込まれる。
【０１１３】
３段目のソート回路ＳＲＴ２においては、比較部３０１の比較結果は、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝４０）より小さいことから、ハイレベルの制御信号ＣＴＬ３０１が供給データ選択部３０２、および書き込みデータ選択部３０３に出力される。
その結果、供給データ選択部３０２では、読み出し奥行きデータＺＲＤ（＝４０）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ２に供給される。
これと並行して、書き込みデータ選択部３０３では、前段からの第２の供給奥行きデータＺＮＢＲ（＝３２）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ２に書き込まれる。
【０１１４】
４段目のソート回路ＳＲＴ３においては、比較部３０１の比較は読み出し奥行きデータＺＲＤが無いことから、ハイレベルの制御信号ＣＴＬ３０１が供給データ選択部３０２、および書き込みデータ選択部３０３に出力される。
その結果、供給データ選択部３０２では、読み出し奥行きデータＺＲＤ（＝４０）とＲＧＢαデータが選択されるが、次段への供給は行われない。
これと並行して、書き込みデータ選択部３０３では、前段からの第２の供給奥行きデータＺＮＢＲ（＝４０）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ３に書き込まれる。
【０１１５】
このように、本画像処理装置１０においては、複数（図１４の場合には４）レイヤの半透明物体の合成（Ｏｒｄｅｒ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｔｒａｎｓｐａｒｅｎｃｙ）がハードウェアに容易に実現できる。
そして、任意のレイヤ数での重ね合わせを行うことができ、全シーンデータを流す回数を減らすことができる。その結果シーンデータの処理部の負荷を軽減でき、処理の高速化を図ることが可能となっている。
【０１１６】
また、たとえば図１８に示すように、複数のバッファを含む複数のメモリバンクＢＮＫを多段（図１８では０〜３の４段）に配置し、同一のメモリバンクの各バッファに対応して設けられたソート回路ＳＲＴ０〜ＳＲＴ３，ＳＲＴ４〜ＳＲＴ７，ＳＲＴ８〜ＳＲＴ１１，ＳＲＴ１２〜ＳＲＴ１５は互いに縦続接続し、各メモリバンクＢＮＫ０〜ＢＮＫ３の各バッファに対応して設けられ、縦続接続された複数のソート回路ＳＲＴ０〜ＳＲＴ３，ＳＲＴ４〜ＳＲＴ７，ＳＲＴ８〜ＳＲＴ１１，ＳＲＴ１２〜ＳＲＴ１５には、前段のメモリバンクＢＮＫ０〜ＢＮＫ３の各バッファに対応して設けられ、縦続接続された複数のソート回路のうちの最終段ＳＲＴ３，ＳＲＴ７，ＳＲＴ１１，ＳＲＴ１５の出力奥行きデータを供給するように構成することにより、縦４段、横４段を複合させて、１６レイヤの合成が可能となる。
【０１１７】
フィルタ機能ユニットＦＦＵは、各ＰＯＰＥ０〜ＰＯＰＥ３にレジスタＲＧＵユニット（ＲＧＵ）１３１２４にＦＩＦＯレジスタにセットされる演算用パラメータ、具体的には、フィルタ係数Ｋを各ＰＯＰＥ０〜ＰＯＰＥ３に供給する。
【０１１８】
ＰＯＰＥ０は、リードオンリーキャッシュＲＯ＄０またはリードライトキャッシュＲＷ＄０から読み出された３２ビット幅のデータおよびフィルタ機能ユニットＦＦＵによる演算パラメータを受けて所定の演算（たとえば加算）を行って、演算結果を次段のＰＯＰＥ１に出力する。また、ＰＯＰＥ０は、この所定の演算結果を出力選択回路ＯＳＬＣに出力する８ビット×４の出力ラインＯＴＬ０を有する。
また、ＰＯＰＥ０は、レジスタユニット（ＲＧＵ）１３１２４に設定され、クロスバー回路１３１２５を転送された８ビット×４の３２ビットのデータを受けて所定の演算を行い、この演算結果を分割ローカルキャッシュＤ１３３（０）のセレクタＳＥＬ５を介してリードライトキャッシュＲＷ＄０に出力する。
【０１１９】
ＰＯＰＥ１は、リードオンリーキャッシュＲＯ＄１またはリードライトキャッシュＲＷ＄１から読み出された３２ビット幅のデータおよびフィルタ機能ユニットＦＦＵによる演算パラメータを受けて所定の演算（たとえば加算）を行い、この演算結果とＰＯＰＥ０により演算結果を加算して次段のＰＯＰＥ２に出力する。また、ＰＯＰＥ１は、この所定の演算結果を出力選択回路ＯＳＬＣに出力する８ビット×４の出力ラインＯＴＬ１を有する。
また、ＰＯＰＥ１は、レジスタユニット（ＲＧＵ）１３１２４に設定され、クロスバー回路１３１２５を転送された８ビット×４の３２ビットのデータを受けて所定の演算を行い、この演算結果を分割ローカルキャッシュＤ１３３（０）のセレクタＳＥＬ６を介してリードライトキャッシュＲＷ＄１に出力する。
【０１２０】
ＰＯＰＥ２は、リードオンリーキャッシュＲＯ＄２またはリードライトキャッシュＲＷ＄２から読み出された３２ビット幅のデータおよびフィルタ機能ユニットＦＦＵによる演算パラメータを受けて所定の演算（たとえば加算）を行い、この演算結果とＰＯＰＥ１により演算結果を加算して次段のＰＯＰＥ３に出力する。また、ＰＯＰＥ２は、この所定の演算結果を出力選択回路ＯＳＬＣに出力する８ビット×４の出力ラインＯＴＬ２を有する。
また、ＰＯＰＥ２は、レジスタユニット（ＲＧＵ）１３１２４に設定され、クロスバー回路１３１４６を転送された８ビット×４の３２ビットのデータを受けて所定の演算を行い、この演算結果を分割ローカルキャッシュＤ１３３（０）のセレクタＳＥＬ７を介してリードライトキャッシュＲＷ＄２に出力する。
【０１２１】
ＰＯＰＥ３は、リードオンリーキャッシュＲＯ＄３またはリードライトキャッシュＲＷ＄３から読み出された３２ビット幅のデータおよびフィルタ機能ユニットＦＦＵによる演算パラメータを受けて所定の演算（たとえば加算）を行い、この演算結果とＰＯＰＥ２により演算結果を加算して、この演算結果（一つのＰＯＰ内の総計）を８ビット×４の出力ラインＯＴＬ３により出力選択回路ＯＳＬＣに出力する。
また、ＰＯＰＥ３は、レジスタユニット（ＲＧＵ）１３１２４に設定され、クロスバー回路１３１２５を転送された８ビット×４の３２ビットのデータを受けて所定の演算を行い、この演算結果を分割ローカルキャッシュＤ１３３（０）のセレクタＳＥＬ８を介してリードライトキャッシュＲＷ＄３に出力する。
【０１２２】
図１９は、本実施形態に係るＰＯＰＥ（０〜３）の具体的な構成例を示す回路図である。
本ＰＯＰＥは、図１９に示すように、マルチプレクサ（ＭＵＸ）４０１〜４０５、加減算器（ａｄｄｓｕｂ）４０６、乗算器（ｍｕｌ）４０７、加減算器（ａｄｄｓｕｂ）４０８、および積算レジスタ４０９を有している。
【０１２３】
マルチプレクサ４０１は、レジスタユニット（ＲＧＵ）１３１２４によるデータ、フィルタ機能ユニットＦＦＵによる演算パラメータ、リードオンリーキャッシュＲＯ＄（０〜３）、またはリードライトキャッシュＲＷ＄（０〜３）から読み出されたデータのうちの一つを選択して、加減算器４０６に供給する。
【０１２４】
マルチプレクサ４０２は、レジスタユニット（ＲＧＵ）１３１２４によるデータ、リードオンリーキャッシュＲＯ＄（０〜３）、またはリードライトキャッシュＲＷ＄（０〜３）から読み出されたデータのうちの一つを選択して、加減算器４０６に供給する。
【０１２５】
マルチプレクサ４０３は、レジスタユニット（ＲＧＵ）１３１２４によるデータ、フィルタ機能ユニットＦＦＵによる演算パラメータ、リードオンリーキャッシュＲＯ＄（０〜３）、またはリードライトキャッシュＲＷ＄（０〜３）から読み出されたデータのうちの一つを選択して、乗算器４０７に供給する。
【０１２６】
マルチプレクサ４０４は、前段のＰＯＰＥ（０〜２）の演算結果または積算レジスタ４０９の出力データのうちのいずれかを選択して加減算器４０８に供給する。
【０１２７】
マルチプレクサ４０５は、レジスタユニット（ＲＧＵ）１３１２４によるデータ、フィルタ機能ユニットＦＦＵによる演算パラメータ、リードオンリーキャッシュＲＯ＄（０〜３）、またはリードライトキャッシュＲＷ＄（０〜３）から読み出されたデータのうちの一つを選択して、加減算器４０８に供給する。
【０１２８】
加減算器４０６は、マルチプレクサ４０１の選択データとマルチプレクサ４０２の選択データを加算（減算）して、乗算器４０７に出力する。
乗算器４０７は、加減算器４０６の出力データとマルチプレクサ４０３の選択データを乗算器して、加減算器４０８に出力する。
加減算器４０８は、乗算器４０７と出力データ、マルチプレクサ４０４の選択データ、マルチプレクサ４０５の選択データを加算（減算）して積算レジスタ４０９に出力する。
そして、積算レジスタ４０９の保持されたデータが、各ＰＯＰＥの演算結果ととして、出力選択回路ＯＳＬＣおよび次段のＰＯＰＥ（１〜３）に出力される。
【０１２９】
出力選択回路ＯＳＬＣは、各ＰＯＰＥ０〜Ｐ０ＰＥ３の出力ラインＯＴＬ０〜ＯＴＬ３を転送された演算データのうちのいずれかの演算データを選択して、クロスバー回路１３１２５に出力する機能を有する。
本実施形態では、出力選択回路ＯＳＬＣは、一つのＰＯＰ内の総計を出力するＰＯＰＥ３の出力ラインＯＴＬ３を転送された演算データを選択し、クロスバー回路１３１２５に出力するように構成されている。
クロスバー回路１３１２５に出力された演算データは、レジスタユニット１３１２４に設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセルエンジン１３１２２の所定の演算器に供給される。
【０１３０】
アドレス生成器ＡＧは、図２０に示すように、メモリモジュール１３２からのデータ転送は、１列（４つのＰＯＰ分）同時に行われ、各分割ローカルキャッシュＤ１３３（０）〜Ｄ１３３（３）の各リードオンリーキャッシュＲＯ＄０〜ＲＯ＄３またはリードライトキャッシュＲＷ＄０〜ＲＷ＄３へのアクセスは、独立して行われることから、各リードオンリーキャッシュＲＯ＄０〜ＲＯ＄３またはリードライトキャッシュＲＷ＄０〜ＲＷ＄３に、メモリモジュール１３２のポートｐ（０）〜ｐ（３）から並列的に読み出されている要素データを、対応するＰＯＰＥ０〜ＰＯＰＥ３に読み出すためのキャッシュアドレスＣＡＤＲ０〜ＣＡＤＲ３をそれぞれ生成し、供給する。
アドレス生成器ＡＧは、たとえばＰＯＰＥ０の演算結果ＯＰＲ０が、ＰＯＰＥ１の演算が終了するタイミングでＰＯＰＥ１に供給され、ＰＯＰＥ１の演算結果（ＰＯＰＥ０の演算結果ＯＰＲ０を加算した結果）ＯＰＲ１が、ＰＯＰＥ２の演算が終了するタイミングでＰＯＰＥ２に供給され、ＰＯＰＥ２の演算結果（ＰＯＰＥ１の演算結果ＯＰＲ１を加算した結果）ＯＰＲ２が、ＰＯＰＥ３の演算が終了するタイミングでＰＯＰＥ３に供給されるように、各リードオンリーキャッシュＲＯ＄０〜ＲＯ＄３またはリードライトキャッシュＲＷ＄０〜ＲＷ＄３に所定タイミングをずらしてキャッシュアドレスＣＡＤＲ０〜ＣＡＤＲ３を供給する。
たとえば各ＰＯＰＥ０〜ＰＯＰＥ３に供給される要素データ数が同じであり、各ＰＯＰＥ０〜ＰＯＰＥ３で要素データを順に加算して行く場合には、アドレス供給タイミングを１アドレスずつ順にずらしてアドレス供給が行われる。
これにより、ミスのない演算を効率的に行える。すなわち、本実施形態に係るコア１３１２では、演算効率の向上が図られている。
【０１３１】
次に、メモリのデータの基づいてピクセル演算プロセッサ群１３１２３で演算処理を行い、さらにピクセルエンジン１３１２２で演算を行う場合の動作を、図２１〜図２４に関連付けて説明する。
なお、ここでは、図２２（Ａ）に示すように、縦１６、横１６の１６×１６の１６列の要素データについて演算を行う場合を例に説明する。
【０１３２】
ステップＳＴ５１
まず、ステップＳＴ５１において、メモリモジュール（ｅＤＲＡＭ）１３２からローカルキャッシュ１３３のリードオンリーキャッシュＲＯ＄０〜ＲＯ＄３へ１列（４つのＰＯＰ分）同時に転送される。
次に、図２３（Ａ），（Ｃ），（Ｅ），（Ｇ）に示すように、アドレス生成器ＡＧにより各キャッシュに独立に、かつ、１ＰＯＰ内のＰＯＰＥ０〜ＰＯＰＥ３に１アドレスずつ順にずらしてキャッシュアドレスＣＡＤＲ０〜ＣＡＤＲ３の供給が行われる。
これにより、各ＰＯＰ０〜ＰＯＰ３の各ＰＯＰＥ０〜ＰＯＰＥ３に１６個の要素データが順に読み出される。
【０１３３】
たとえば分割ローカルキャッシュＤ１３３（０）のリードオンリーキャッシュＲＯ＄０にキャッシュアドレスＣＡＤＲ００〜ＣＡＤＲ０Ｆが順に与えられ、これに応じてＰＯＰ０のＰＯＰＥ０に１列分のデータ００〜０Ｆが読み出される。
同様に、分割ローカルキャッシュＤ１３３（０）のリードオンリーキャッシュＲＯ＄１にキャッシュアドレスＣＡＤＲ１０〜ＣＡＤＲ１Ｆが順に与えられ、これに応じてＰＯＰ０のＰＯＰＥ１に１列分のデータ１０〜１Ｆが読み出される。
分割ローカルキャッシュＤ１３３（０）のリードオンリーキャッシュＲＯ＄２にキャッシュアドレスＣＡＤＲ２０〜ＣＡＤＲ２Ｆが順に与えられ、これに応じてＰＯＰ０のＰＯＰＥ２に１列分のデータ２０〜２Ｆが読み出される。
分割ローカルキャッシュＤ１３３（０）のリードオンリーキャッシュＲＯ＄３にキャッシュアドレスＣＡＤＲ３０〜ＣＡＤＲ３Ｆが順に与えられ、これに応じてＰＯＰ０のＰＯＰＥ３に１列分のデータ３０〜３Ｆが読み出される。
【０１３４】
分割ローカルキャッシュＤ１３３（１）のリードオンリーキャッシュＲＯ＄０にキャッシュアドレスＣＡＤＲ４０〜ＣＡＤＲ４Ｆが順に与えられ、これに応じてＰＯＰ１のＰＯＰＥ０に１列分のデータ４０〜４Ｆが読み出される。
同様に、分割ローカルキャッシュＤ１３３（１）のリードオンリーキャッシュＲＯ＄１にキャッシュアドレスＣＡＤＲ５０〜ＣＡＤＲ５Ｆが順に与えられ、これに応じてＰＯＰ１のＰＯＰＥ１に１列分のデータ５０〜５Ｆが読み出される。
分割ローカルキャッシュＤ１３３（１）のリードオンリーキャッシュＲＯ＄２にキャッシュアドレスＣＡＤＲ６０〜ＣＡＤＲ６Ｆが順に与えられ、これに応じてＰＯＰ１のＰＯＰＥ２に１列分のデータ６０〜６Ｆが読み出される。
分割ローカルキャッシュＤ１３３（１）のリードオンリーキャッシュＲＯ＄３にキャッシュアドレスＣＡＤＲ７０〜ＣＡＤＲ７Ｆが順に与えられ、これに応じてＰＯＰ１のＰＯＰＥ３に１列分のデータ７０〜７Ｆが読み出される。
【０１３５】
分割ローカルキャッシュＤ１３３（２）のリードオンリーキャッシュＲＯ＄０にキャッシュアドレスＣＡＤＲ８０〜ＣＡＤＲ８Ｆが順に与えられ、これに応じてＰＯＰ２のＰＯＰＥ０に１列分のデータ８０〜８Ｆが読み出される。
同様に、分割ローカルキャッシュＤ１３３（２）のリードオンリーキャッシュＲＯ＄１にキャッシュアドレスＣＡＤＲ９０〜ＣＡＤＲ９Ｆが順に与えられ、これに応じてＰＯＰ２のＰＯＰＥ１に１列分のデータ９０〜９Ｆが読み出される。
分割ローカルキャッシュＤ１３３（２）のリードオンリーキャッシュＲＯ＄２にキャッシュアドレスＣＡＤＲＡ０〜ＣＡＤＲＡＦが順に与えられ、これに応じてＰＯＰ２のＰＯＰＥ２に１列分のデータＡ０〜ＡＦが読み出される。
分割ローカルキャッシュＤ１３３（２）のリードオンリーキャッシュＲＯ＄３にキャッシュアドレスＣＡＤＲＢ０〜ＣＡＤＲＢＦが順に与えられ、これに応じてＰＯＰ２のＰＯＰＥ３に１列分のデータＢ０〜ＢＦが読み出される。
【０１３６】
分割ローカルキャッシュＤ１３３（３）のリードオンリーキャッシュＲＯ＄０にキャッシュアドレスＣＡＤＲＣ０〜ＣＡＤＲＣＦが順に与えられ、これに応じてＰＯＰ３のＰＯＰＥ０に１列分のデータＣ０〜ＣＦが読み出される。
同様に、分割ローカルキャッシュＤ１３３（３）のリードオンリーキャッシュＲＯ＄１にキャッシュアドレスＣＡＤＲＤ０〜ＣＡＤＲＤＦが順に与えられ、これに応じてＰＯＰ３のＰＯＰＥ１に１列分のデータＤ０〜ＤＦが読み出される。
分割ローカルキャッシュＤ１３３（３）のリードオンリーキャッシュＲＯ＄２にキャッシュアドレスＣＡＤＲＥ０〜ＣＡＤＲＥＦが順に与えられ、これに応じてＰＯＰ３のＰＯＰＥ２に１列分のデータＥ０〜ＥＦが読み出される。
分割ローカルキャッシュＤ１３３（３）のリードオンリーキャッシュＲＯ＄３にキャッシュアドレスＣＡＤＲＦ０〜ＣＡＤＲＦＦが順に与えられ、これに応じてＰＯＰ３のＰＯＰＥ３に１列分のデータＦ０〜ＦＦが読み出される。
【０１３７】
ステップＳＴ５２
ステップＳＴ５２において、各ＰＯＰ（０〜３）の各ＰＯＰＥ０〜ＰＯＰＥ３で、１要素が１列分（１６個）加算される。
具体的には、ＰＯＰ０のＰＯＰＥ０では、図２３（Ｂ）に示すように、データ００〜０Ｆが順次に加算され、演算結果ＯＰＲ０がＰＯＰＥ１に出力される。
ＰＯＰ０のＰＯＰＥ１では、図２３（Ｄ）に示すように、データ１０〜１Ｆが順次に加算される。
ＰＯＰ０のＰＯＰＥ２では、図２３（Ｆ）に示すように、データ２０〜２Ｆが順次に加算される。
ＰＯＰ０のＰＯＰＥ３では、図２３（Ｈ）に示すように、データ３０〜３Ｆが順次に加算される。
他のＰＯＰ１〜ＰＯＰ３においても同様に行われる。
【０１３８】
ステップＳＴ５３
ステップＳＴ５３においては、各ＰＯＰ（０〜３）の各ＰＯＰＥ０〜ＰＯＰＥ３の演算結果が加算され、１６×４要素の加算結果を得る。
具体的には、図２３（Ｂ），（Ｄ）に示すように、ＰＯＰ０のＰＯＰＥ０の演算結果ＯＰＲ０がＰＯＰＥ１に出力される。
ＰＯＰ０のＰＯＰＥ１では、図２３（Ｄ），（Ｆ）に示すように、自身の演算結果に、ＰＯＰ０のＰＯＰＥ０の演算結果ＯＰＲ０が加算され、その演算結果ＯＰＲ１がＰＯＰＥ２に出力される。
ＰＯＰ０のＰＯＰＥ２では、図２３（Ｆ），（Ｈ）に示すように、自身の演算結果に、ＰＯＰ０のＰＯＰＥ１の演算結果ＯＰＲ１が加算され、その演算結果ＯＰＲ２がＰＯＰＥ３に出力される。
そして、ＰＯＰ０のＰＯＰＥ３では、図２３（Ｈ）に示すように、自身の演算結果に、ＰＯＰ０のＰＯＰＥ２の演算結果ＯＰＲ２が加算され、その演算結果ＯＰＲ３が出力選択回路ＯＳＬＣに出力される。
他のＰＯＰ１〜ＰＯＰ３においても同様に行われる。
【０１３９】
ステップＳＴ５４
ステップＳＴ５４においては、各ＰＯＰ０〜ＰＯＰ３の出力選択回路ＯＳＬＣから総演算結果ＯＰＲ３がクロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４に転送される。
たとえば図２４に示すように、ＰＯＰ０のＰＯＰＥ３の総演算結果ＯＰＲ３は、クロスバー回路１３１２５を経由してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ１に格納される。
ＰＯＰ１のＰＯＰＥ３の総演算結果ＯＰＲ３は、クロスバー回路１３１２５を経由してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ２に格納される。
ＰＯＰ２のＰＯＰＥ３の総演算結果ＯＰＲ３は、クロスバー回路１３１２５を経由してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ３に格納される。
ＰＯＰ３のＰＯＰＥ３の総演算結果ＯＰＲ３は、クロスバー回路１３１２５を経由してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ４に格納される。
【０１４０】
ステップＳＴ５５
ステップＳＴ５５においては、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ１およびＦＲＥＧ２にセットされたＰＯＰ０とＰＯＰ１の総演算結果が、ピクセルエンジン（ＰＸＥ）１３１２２の第１の加算器ＡＤＤ１で加算され、この演算結果がクロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ５に格納される。
また、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ３およびＦＲＥＧ４にセットされたＰＯＰ２とＰＯＰ３の総演算結果が、ピクセルエンジン（ＰＸＥ）１３１２２の第２の加算器ＡＤＤ２で加算され、この演算結果がクロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ６に格納される。
そして、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧ５およびＦＲＥＧ６にセットされた第１および第２の加算器ＡＤＤ１，ＡＤＤ２の演算結果が、ピクセルエンジン（ＰＸＥ）１３１２２の第３の加算器ＡＤＤ３で加算される。
【０１４１】
ステップＳＴ５６
ステップＳＴ５６では、図２３（Ｐ）に示すように、ピクセルエンジン（ＰＸＥ）１３１２２の第３の加算器ＡＤＤ３の加算結果が一連の演算結果として出力される。
【０１４２】
図２５は、本実施形態に係る処理ユニットにおけるコアのピクセルエンジン（ＰＸＥ）１３１２２、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３、レジスタユニット（ＲＧＵ）１３１２４、並びにメモリ部分を含む動作概要を示す図である。
【０１４３】
図２５において、破線はアドレス系データの流れを、一点鎖線はリードデータの流れを、実線はライトデータの流れをそれぞれ示している。
また、レジスタユニット（ＲＧＵ）１３１２４において、ＦＲＥＧＡ１，ＦＲＥＧＡ２はアドレス系に用いられるＦＩＦＯレジスタを、ＦＲＥＧＲはリードデータに用いられるＦＩＦＯレジスタを、ＦＲＥＧＷはライトデータに用いられるＦＩＦＯレジスタをそれぞれ示している。
【０１４４】
図２５の例では、ラスタライザ１３１１によって生成されるたとえばソース（読み出し用）アドレスデータが、クロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧＡ１，ＦＲＥＧＡ２にセットされる。
そして、ＦＩＦＯレジスタＦＲＥＧＡ１にセットされたアドレスデータは、たとえばクロスバー回路１３１２５を介さずに直接的にピクセル演算プロセッサ（ＰＯＰ）１３１２３のアドレス生成器ＡＧ１に供給される。アドレス生成器ＡＧ１において読み出すべきデータのアドレスが生成され、これに基づきメモリモジュール１３２からリードオンリーキャッシュ１３３１に読み出された所望のデータがピクセル演算プロセッサ（ＰＯＰ）１３１２３の各演算器（ＰＯＰＥ）に供給される。
【０１４５】
ピクセル演算プロセッサ（ＰＯＰ）１３１２３の各演算器（ＰＯＰＥ）の演算結果がクロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧＲにセットされる。
ＦＩＦＯレジスタＦＲＥＧＲにセットされたデータは、クロスバー回路１３１２５を介さずに直接的にピクセルエンジン（ＰＸＥ）１３１２２の各演算器ＯＰに供給される。
そして、ピクセルエンジン（ＰＸＥ）１３１２２の各演算器ＯＰの演算結果がクロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧＷにセットされる。
ＦＩＦＯレジスタＦＲＥＧＷにセットされたデータは、ピクセル演算プロセッサ（ＰＯＰ）１３１２３の各演算器（ＰＯＰＥ）に供給される。
【０１４６】
また、ラスタライザ１３１１によって生成されるデスティネーション（書き込み用）アドレスデータが、クロスバー回路１３１２５を介してレジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタＦＲＥＧＡ２にセットされる。
そして、ＦＩＦＯレジスタＦＲＥＧＡ２にセットされたアドレスデータは、クロスバー回路１３１２５を介さず直接的にピクセル演算プロセッサ（ＰＯＰ）１３１２３のアドレス生成器ＡＧ２に供給される。アドレス生成器ＡＧ２において書き込むべきデータのアドレスが生成され、これに基づきピクセル演算プロセッサ（ＰＯＰ）１３１２３の各演算器（ＰＯＰＥ）の演算結果がリードライトキャッシュ１３３２に書き込まれ、さらにメモリモジュール１３２に書き込まれる。
【０１４７】
なお、図２５の例では、リードライトキャッシュ１３３２は書き込みだけを行うように記述しているが、上述したリードオンリーキャッシュ１３３１の場合と同様な動作で読み出しも行う。
【０１４８】
次に、以上の構成を有する処理ユニット１３１（−０〜−３）におけるグラフィックス処理および画像処理の場合の具体的な動作を図面に関連付けて説明する。
【０１４９】
まず、依存テクスチャ無しの場合のグラフィックス処理を図２６および図２７に関連付けて説明する。
【０１５０】
この場合、ラスタライザ１３１１において、グローバルモジュール１２からブロードキャストされたパラメータデータを受けて、たとえば三角形が自分が担当する領域であるか否かが判断され、担当領域である場合には、入力した三角形頂点データに基づいて、各ピクセルデータが生成されてコア１３１２に供給される。
具体的には、ラスタライザ１３１１において、ウィンドウ座標（Ｘ，Ｙ，Ｚ）、プライマリカラー（ＰＣ；Ｒｐ，Ｇｐ，Ｂｐ，Ａｐ）、セカンダリカラー（ＳＣ；Ｒｓ，Ｇｓ，Ｂｓ，Ａｓ）、Ｆｏｇ係数（ｆ）、テクスチャ座標や各種ベクトル（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ），（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）の各種ピクセルデータが生成される。
【０１５１】
そして、生成されたウィンドウ座標（Ｘ，Ｙ，Ｚ）は、レジスタユニット（ＲＧＵ）１３１２４の特定のＦＩＦＯレジスタを通して、直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３内に、あるいは別個に設けられたライトユニットＷＵに供給される。
また、生成された２組のテクスチャ座標データや各種ベクトル（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ），（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してグラフィックスユニット（ＧＲＵ）１２１２１に供給される。
さらに、生成されたプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してピクセルエンジン（ＰＸＥ）１３１２２に供給される。
【０１５２】
グラフィックスユニット（ＧＲＵ）１３１２１では、供給されたテクスチャ座標データや各種ベクトル（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、および（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）に基づいて、パースペクティブコレクション、ＬＯＤ（Ｌｅｖｅｌｏｆ　Ｄｅｔａｉｌ）計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出、立方体マップ（ＣｕｂｅＭａｐ）の面選択や正規化テクセル座標（ｓ，ｔ）の算出処理が行われる。
そして、グラフィックスユニット（ＧＲＵ）１３１２１で生成された、たとえば正規化テクセル座標（ｓ，ｔ）およびＬＯＤデータ（ｌｏｄ）を含む２組のデータ（ｓ１，ｔ１，ｌｏｄ１），（ｓ２，ｔ２，ｌｏｄ２）が、たとえばクロスバー回路１３１２５を通さず個別の配線を介して直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【０１５３】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、図２７に示すように、フィルタ機能ユニットＦＦＵにおいてグラフィックスユニット（ＧＲＵ）１３１２１から直接的に供給された（ｓ１，ｔ１，ｌｏｄ１），（ｓ２，ｔ２，ｌｏｄ２）の値に基づいて、テクスチャアクセスのための（ｕ，ｖ）アドレス計算が行われ、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）がアドレス生成器ＡＧに供給され、係数計算のためにデータ（ｕｆ，ｖｆ，ｌｏｄｆ）が係数生成部ＣＯＦに供給される。
【０１５４】
アドレス生成器ＡＧにおいては、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）を受けて、４近傍フィルタリングを行うための４近傍の（ｕ，ｖ）座標、すなわち、（ｕ０，ｖ０），（ｕ１，ｖ１），（ｕ２，ｖ２），（ｕ３，ｖ３）が計算され、メモリコントローラＭＣに供給される。
これにより、メモリモジュール１３２から所望のテクセルデータがたとえばリードオンリーキャッシュＲＯ＄を通して、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰＥに読み出される。
また、係数生成器ＣＯＦでは、データ（ｕｆ，ｖｆ，ｌｏｄｆ）を受けて、テクスチャフィルタ係数Ｋ（０〜３）が計算され、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の対応する各ＰＯＰＥに供給される。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰにおいて、色データ（ＴＲ，ＴＧ，ＴＢ）および混合値（ブレンド値：ＴＡ）が求められ、２組のデータ（ＴＲ１，ＴＧ１，ＴＢ１，ＴＡ１）および（ＴＲ２，ＴＧ２，ＴＢ２，ＴＡ２）が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセルエンジン（ＰＸＥ）１３１２２に供給される。
【０１５５】
ピクセルエンジン（ＰＸＥ）１３１２２では、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３によるデータ（ＴＲ１，ＴＧ１，ＴＢ１，ＴＡ１）および（ＴＲ２，ＴＧ２，ＴＢ２，ＴＡ２）、並びに、ラスタライザ１３１１によるプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）に基づいて、たとえばＰｉｘｅｌ　Ｓｈａｄｅｒの演算が行われ、色データ（ＦＲ１，ＦＧ１，ＦＢ１）および混合値（ブレンド値：ＦＡ１）が求められ、このデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３の所定のＰＯＰ内あるいは別個に設けられたライトユニットＷＵに供給される。
【０１５６】
ライトユニットＷＵでは、ラスタライザ１３１１によるウィンドウ座標（Ｘ，Ｙ，Ｚ）に基づき、たとえばリードライトキャッシュＲＷ＄を通してメモリモジュール１３２からデスティネーション色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）が読み出される。
そして、ライトユニットＷＵでは、ピクセルエンジン（ＰＸＥ）１３１２２によるデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）、およびリードライトキャッシュＲＷ＄を通してメモリモジュール１３２から読み出しデスティネーション色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）に基づいて、αブレンディング、各種テスト、ロジカルオペレーションといったグラフィックス処理のピクセル書き込みに必要な演算が行われ、演算結果がリードライトキャッシュＲＷ＄に書き戻される。
【０１５７】
次に、依存テクスチャ有りの場合のグラフィックス処理を図２８および図２７に関連付けて説明する。
【０１５８】
この場合、ラスタライザ１３１１において、ウィンドウ座標（Ｘ，Ｙ，Ｚ）、プライマリカラー（ＰＣ；Ｒｐ，Ｇｐ，Ｂｐ，Ａｐ）、セカンダリカラー（ＳＣ；Ｒｓ，Ｇｓ，Ｂｓ，Ａｓ）、Ｆｏｇ係数（ｆ）、テクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）の各種ピクセルデータが生成される。
【０１５９】
そして、生成されたウィンドウ座標（Ｘ，Ｙ，Ｚ）は、レジスタユニット（ＲＧＵ）１３１２４の特定のＦＩＦＯレジスタを通して、直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２４に供給される。
また、生成されたテクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してグラフィックスユニット（ＧＲＵ）１２１２１に供給される。
さらに、生成されたプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してピクセルエンジン（ＰＸＥ）１３１２２に供給される。
【０１６０】
グラフィックスユニット（ＧＲＵ）１３１２１では、供給されたテクスチャ座標（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）データに基づいて、パースペクティブコレクション、ＬＯＤ計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出、立方体マップ（ＣｕｂｅＭａｐ）の面選択や正規化テクセル座標（ｓ，ｔ）の算出処理が行われる。
そして、グラフィックスユニット（ＧＲＵ）１３１２１で生成された、たとえば正規化テクセル座標（ｓ，ｔ）およびＬＯＤデータ（ｌｏｄ）を含む１組のデータ（ｓ１，ｔ１，ｌｏｄ１）が、たとえばクロスバー回路１３１２５を通さず直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【０１６１】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、図２７に示すように、フィルタ機能ユニットＦＦＵにおいてグラフィックスユニット（ＧＲＵ）１３１２１から直接的に供給された（ｓ１，ｔ１，ｌｏｄ１）の値に基づいて、テクスチャアクセスのための（ｕ，ｖ）アドレス計算が行われ、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）がアドレス生成器ＡＧに供給され、係数計算のためにデータ（ｕｆ，ｖｆ，ｌｏｄｆ）が係数生成部ＣＯＦに供給される。
【０１６２】
アドレス生成器ＡＧにおいては、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）を受けて、４近傍フィルタリングを行うための４近傍の（ｕ，ｖ）座標、すなわち、（ｕ０，ｖ０），（ｕ１，ｖ１），（ｕ２，ｖ２），（ｕ３，ｖ３）が計算され、メモリコントローラＭＣに供給される。
これにより、メモリモジュール１３２から所望のテクセルデータがたとえばリードオンリーキャッシュＲＯ＄を通して、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰＥに読み出される。
また、係数生成器ＣＯＦでは、データ（ｕｆ，ｖｆ，ｌｏｄｆ）を受けて、テクスチャフィルタ係数Ｋ（０〜３）が計算され、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰＥに供給される。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰにおいて、色データ（ＴＲ，ＴＧ，ＴＢ）および混合値（ブレンド値：ＴＡ）が求められ、データ（ＴＲ１，ＴＧ１，ＴＢ１，ＴＡ１）が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセルエンジン（ＰＸＥ）１３１２２に供給される。
【０１６３】
ピクセルエンジン（ＰＸＥ）１３１２２では、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３によるデータ（ＴＲ１，ＴＧ１，ＴＢ１，ＴＡ１）、並びに、ラスタライザ１３１１によるプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）に基づいて、たとえばＰｉｘｅｌ　Ｓｈａｄｅｒの演算が行われ、テクスチャ座標（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）が生成され、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介してグラフィックスユニット（ＧＲＵ）１３１２１に供給される。
【０１６４】
グラフィックスユニット（ＧＲＵ）１３１２１では、供給されたテクスチャ座標（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）データに基づいて、パースペクティブコレクション、ＬＯＤ計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出、立方体マップ（ＣｕｂｅＭａｐ）の面選択や正規化テクセル座標（ｓ，ｔ）の算出処理が行われる。
そして、グラフィックスユニット（ＧＲＵ）１３１２１で生成された、たとえば正規化テクセル座標（ｓ，ｔ）およびＬＯＤデータ（ｌｏｄ）を含むデータ（ｓ２，ｔ２，ｌｏｄ２）が、たとえばクロスバー回路１３１２５を通さず直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【０１６５】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、図２７に示すように、フィルタ機能ユニットＦＦＵにおいてグラフィックスユニット（ＧＲＵ）１３１２１から直接的に供給された（ｓ２，ｔ２，ｌｏｄ２）の値に基づいて、テクスチャアクセスのための（ｕ，ｖ）アドレス計算が行われ、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）がアドレス生成器ＡＧに供給され、係数計算のためにデータ（ｕｆ，ｖｆ，ｌｏｄｆ）が係数生成部ＣＯＦに供給される。
【０１６６】
アドレス生成器ＡＧにおいては、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）を受けて、４近傍フィルタリングを行うための４近傍の（ｕ，ｖ）座標、すなわち、（ｕ０，ｖ０），（ｕ１，ｖ１），（ｕ２，ｖ２），（ｕ３，ｖ３）が計算され、メモリコントローラＭＣに供給される。
これにより、メモリモジュール１３２から所望のテクセルデータがたとえばリードオンリーキャッシュＲＯ＄を通して、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰＥに読み出される。
また、係数生成器ＣＯＦでは、データ（ｕｆ，ｖｆ，ｌｏｄｆ）を受けて、テクスチャフィルタ係数Ｋ（０〜３）が計算され、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰＥに供給される。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３の各ＰＯＰにおいて、色データ（ＴＲ，ＴＧ，ＴＢ）および混合値（ブレンド値：ＴＡ）が求められ、データ（ＴＲ２，ＴＧ２，ＴＢ２，ＴＡ２）が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセルエンジン（ＰＸＥ）１３１２２に供給される。
【０１６７】
ピクセルエンジン（ＰＸＥ）１３１２２では、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３によるデータ（ＴＲ２，ＴＧ２，ＴＢ２，ＴＡ２）、並びに、ラスタライザ１３１１によるプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）に基づいて、４近傍補間等の所定のフィルタリング演算処理が行われ、色データ（ＦＲ１，ＦＧ１，ＦＢ１）および混合値（ブレンド値：ＦＡ１）が求められ、このデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３の所定のＰＯＰ内あるいは別個に設けられてライトユニットＷＵに供給される。
【０１６８】
ライトユニットＷＵでは、ラスタライザ１３１１によるウィンドウ座標（Ｘ，Ｙ，Ｚ）に基づき、たとえばリードライトキャッシュＲＷ＄を通してメモリモジュール１３２からデスティネーション色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）が読み出される。
そして、ライトユニットＷＵでは、ピクセルエンジン（ＰＸＥ）１３１２２によるデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）、およびリードライトキャッシュＲＷ＄を通してメモリモジュール１３２から読み出しデスティネーション色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）に基づいて、αブレンディング、各種テスト、ロジカルオペレーションといったグラフィックス処理のピクセル書き込みに必要な演算が行われ、演算結果がリードライトキャッシュＲＷ＄に書き戻される。
【０１６９】
次に、画像処理について説明する。
【０１７０】
まず、図２９に示すようなＳＡＤ（Ｓｕｍｍｅｄ　Ａｂｓｏｌｕｔｅ　Ｄｉｆｆｅｒｅｎｃｅ）処理を行う場合の動作について、図３０に関連付けて説明する。
【０１７１】
ＳＡＤ処理では、図２９（Ａ）に示すような元画像ＯＲＩＭの１ブロック（Ｘ１ｓ，Ｙ１ｓ）に対して、図２９（Ｂ）に示すような参照画像ＲＦＩＭの探索矩形領域ＳＲＧＮ内を１ピクセルずつずらしながら、対応ブロックＢＬＫ内のＳＡＤ（絶対値差）を求めていく。
その中で、ＳＡＤが最小となるブロックの位置（Ｘ２ｓ，ｙ２ｓ）とＳＡＤ値を図２９（Ｃ）に示すように、（Ｘｄ，Ｙｄ）に格納する。
（Ｘ１ｓ，Ｙ１ｓ）はコンテキストとして図示しない上位位置からＰＯＰ内のレジスタに設定される。
【０１７２】
この場合、ラスタライザ１３１１に対して、たとえばグローバルモジュール１２を介して図示しない上位装置から出力された、メモリモジュール１３２（−０〜−３）から参照画像データを読み出すためのソースアドレスおよび画像処理結果を書き込むためのデスティネーションアドレスの生成に必要なコマンドやデータ、たとえば探索矩形領域ＳＲＧＮの幅、高さ（Ｗｓ，Ｈｓ）データ、ブロックサイズ（Ｗｂｋ，Ｈｂｋ）データが入力される。
ラスタライザ１３１１では、入力データに基づいて、メモリモジュール１３２に格納されている参照画像ＲＦＩＭのソースアドレス（Ｘ２ｓ，Ｙ２ｓ）が生成されるとともに、処理結果をメモリモジュール１３２に格納するためのデスティネーションアドレス（Ｘｄ，Ｙｄ）が生成される。
【０１７３】
生成されたデスティネーションアドレス（Ｘｄ，Ｙｄ）は、グラフィックス処理時のウィンドウ座標（Ｘ，Ｙ，Ｚ）の供給ラインが共用され、レジスタユニット（ＲＧＵ）１３１２４の特定のＦＩＦＯレジスタを通して、直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２４のライトユニットＷＵに供給される。
また、生成された参照画像ＲＦＩＭのソースアドレス（Ｘ２ｓ，Ｙ２ｓ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してグラフィックスユニット（ＧＲＵ）１２１２１に供給される。
ソースアドレス（Ｘ２ｓ，Ｙ２ｓ）は、グラフィックスユニット（ＧＲＵ）１２１２１は素通りして、たとえばクロスバー回路１３１２５を通さず直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【０１７４】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、供給されたソースアドレス（Ｘ１ｓ，Ｙ１ｓ）および（Ｘ２ｓ，Ｙ２ｓ）に基づいて、たとえばリードオンリーキャッシュＲＯ＄、リードライトキャッシュＲＷ＄を介して、メモリモジュール１３２に格納されている元画像ＯＲＩＭおよび参照画像ＲＦＩＭの各データが読み出される。
ここで、元画像ＯＲＩＭの座標はコトテキストとしてレジスタに設定される。参照画像ＲＦＩＭの座標は、たとえば４つのＰＯＰそれぞれが担当するサブブロックの座標が与えられる。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、元画像ＯＲＩＭの１ブロック（Ｘ１ｓ，Ｙ１ｓ）に対して、参照画像ＲＦＩＭの探索矩形領域ＳＲＧＮ内を１ピクセルずつずらしながら、対応サブブロックＢＬＫ内のＳＡＤ（絶対値差）が随時求められる。
そして、各サブブロックの位置位置（Ｘ２ｓ，ｙ２ｓ）と各ＳＡＤ値が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にピクセルエンジン（ＰＸＥ）１３１２２に転送される。
【０１７５】
ピクセルエンジン（ＰＸＥ）３１２２では、ブロック全体のＳＡＤが集計され、ブロックの位置（Ｘ２ｓ，ｙ２ｓ）とＳＡＤ値が、クロスバー回路１３１２５を転送されてレジスタユニット（ＲＧＵ）１３１２４の所定のＦＩＦＯレジスタに設定され、この設定データがクロスバー回路１３１２５を介さずに直接的にライトユニットＷＵに転送される。
【０１７６】
ライトユニットＷＵでは、ピクセルエンジン（ＰＸＥ）１３１２２によるブロックの位置（Ｘ２ｓ，ｙ２ｓ）とＳＡＤ値の、ラスタライザ１３１１によるデスティネーションアドレス（Ｘｄ，Ｙｄ）への格納処理が行われる。
この場合、たとえば隠面除去（Ｈｉｄｄｅｎ　Ｓｕｒｆａｃｅ　Ｒｅｍｏｖａｌ）を行う機能（Ｚ比較）を用いて、たとえばメモリモジュール１３２からリードライトキャッシュＲＷ＄に読み出されたＳＡＤ値とピクセルエンジン（ＰＸＥ）１３１２２によるＳＡＤ値が比較される。
そして、比較の結果、格納されている値よりピクセルエンジン（ＰＸＥ）１３１２２によるＳＡＤ値が小さい場合に、ピクセルエンジン（ＰＸＥ）１３１２２によるブロックの位置（Ｘ２ｓ，ｙ２ｓ）とＳＡＤ値がデスティネーションアドレス（Ｘｄ，Ｙｄ）にリードライトキャッシュＲＷ＄を介して書き込まれる（更新される）。
【０１７７】
次に、図３１に示すようなコンボリューションフィルタ（Ｃｏｎｖｏｌｕｔｉｏｎ　Ｆｉｌｔｅｒ）処理を行う場合の動作について、図３２に関連付けて説明する。
【０１７８】
コンボリューションフィルタ処理では、図３１（Ａ）に示すような対象画像ＯＢＩＭの各ピクセル（Ｘ１ｓ，Ｙ１ｓ）に対して、フィルタカーネルサイズの周辺ピクセルを読み出し、フィルタ係数を乗算したものを足し合わせ、その結果を図３１（Ｂ）に示すようにデスティネーションアドレス（Ｘｄ，Ｙｄ）に格納する。
なお、フィルタカーネル係数の格納アドレスは、コンテキストとしてＰＯＰ内のレジスタに設定する。
【０１７９】
この場合、ラスタライザ１３１１に対して、たとえばグローバルモジュール１２を介して図示しない上位装置から出力された、メモリモジュール１３２（−０〜−３）から画像データ（ピクセルデータ）を読み出すためのソースアドレスおよび画像処理結果を書き込むためのデスティネーションアドレスの生成に必要なコマンドやデータ、たとえばフィルタカーネルサイズデータ（Ｗｋ，Ｈｋ）が入力される。
ラスタライザ１３１１では、入力データに基づいて、メモリモジュール１３２に格納されている対象画像ＯＢＩＭのソースアドレス（Ｘ１ｓ，Ｙ１ｓ）が生成されるとともに、処理結果をメモリモジュール１３２に格納するためのデスティネーションアドレス（Ｘｄ，Ｙｄ）が生成される。
【０１８０】
生成されたデスティネーションアドレス（Ｘｄ，Ｙｄ）は、グラフィックス処理時のウィンドウ座標（Ｘ，Ｙ，Ｚ）の供給ラインが共用され、レジスタユニット（ＲＧＵ）１３１２４の特定のＦＩＦＯレジスタを通して、直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２４のライトユニットＷＵに供給される。
また、生成された対象画像ＯＢＩＭのソースアドレス（Ｘ１ｓ，Ｙ１ｓ）が、クロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４のＦＩＦＯレジスタを通してグラフィックスユニット（ＧＲＵ）１２１２１に供給される。
ソースアドレス（Ｘ１ｓ，Ｙ１ｓ）は、グラフィックスユニット（ＧＲＵ）１２１２１は素通りして、たとえばクロスバー回路１３１２５を通さず直接的にピクセル演算プロセッサ（ＰＯＰ）群１３１２３に供給される。
【０１８１】
ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、供給されたソースアドレス（Ｘ１ｓ，Ｙ１ｓ）に基づいて、たとえばリードオンリーキャッシュＲＯ＄を介して、メモリモジュール１３２に可能されているカーネルサイズの周辺ピクセルが読み出される。
そして、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３では、所定のフィルタ係数が読み出したデータに掛け合わさ、さらにこれらが足し合わされて、その結果である色データ（Ｒ，Ｇ，Ｂ）および混合値データ（Ａ）を含むデータ（Ｒ，Ｇ，Ｂ，Ａ）がクロスバー回路１３１２５、レジスタユニット（ＲＧＵ）１３１２４を介してライトユニットＷＵに転送される。
【０１８２】
ライトユニットＷＵでは、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３によるデータが、リードライトキャッシュＲＷ＄を介してデスティネーションアドレス（Ｘｄ，Ｙｄ）に格納される。
【０１８３】
最後に、図３のシステム構成による動作を説明する。
ここでは、テクスチャ系の処理について説明する。
【０１８４】
まず、ＳＤＣ１１において、３次元座標、法線ベクトル、テクスチャ座標の各頂点データが入力されると、頂点データに対する演算が行われる。
次に、ラスタライゼーション（Ｒａｓｔｅｒｉｚａｔｉｏｎ）に必要な各種パラメータが算出される。
そして、ＳＤＣ１１においては、算出したパラメータが、グローバルモジュール１２を介して全ローカルモジュール１３−０〜１３−３にブロードキャストされる。
この処理において、ブロードキャストされたパラメータは、後述するキャッシュフィルとは別のチャネルを用いて、グローバルモジュール１２を介して各ローカルモジュール１３−０〜１３−３に渡される。ただし、グローバルキャッシュの内容には影響を与えない。
【０１８５】
各ローカルモジュール１３−０〜１３−３では、処理ユニット１３１−０〜１３１−３において、以下の処理が行われる。
すなわち、処理ユニット１３１（−０〜３）においては、ブロードキャストされたパラメータを受け取ると、その三角形が自分が担当する領域、たとえば４×４ピクセルの矩形領域単位でインターリーブされた領域に属しているか否かが判断される。その結果、属している場合には、各種データ（Ｚ、テクスチャ座標、カラーなど）がラスタライズされる。
次に、ＬＯＤ（Ｌｅｖｅｌ　ｏｆ　Ｄｅｔａｉｌ）計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出や、テクスチャアクセスのための（ｕ，ｖ）アドレス計算が行われる。
【０１８６】
そして、次に、テクスチャの読み出しが行われる。
この場合、各ローカルモジュール１３−０〜１３−３の処理ユニット１３１−０〜１３１−３では、テクスチャリードの際に、まず、ローカルキャッシュ１３３−０〜１３３−３のエントリーがチェックされる。
その結果、エントリーがあった場合には、必要なテクスチャデータが読み出される。
必要とするテクスチャデータがローカルキャッシュ１３３−０〜１３３−３内に無い場合には、各処理ユニット１３１−０〜１３１−３では、グローバルインターフェース１３４−０〜１３４−３を通して、グローバルモジュール１２に対してローカルキャッシュフィルのリクエストが送出される。
【０１８７】
グローバルモジュール１２においては、要求されたブロックデータがグローバルキャッシュ１２１−０〜１２１−３のいずれかにあると判断されると、対応するグローバルキャッシュ１２１−０〜１２１−３のいずれかから読み出されて所定のチャネルを通してリクエストを送出したローカルモジュールに送り返される。
【０１８８】
一方、要求されたブロックデータがグローバルキャッシュ１２１−０〜１２１−３のいずれかにもないと判断されると、所望のチャネルのいずれかから当該ブロックを保持するローカルモジュールに対してグローバルキャッシュフィルのリクエストが送られる。
グローバルキャッシュフィルのリクエストを受けたローカルモジュールにおいては、メモリから該当するブロックデータが読み出され、グローバルインターフェースを通してグローバルモジュール１２に送出される。
その後、グローバルモジュール１２では、ブロックデータが所望のグローバルキャッシュにフィルされるとともに、リクエストを送ってきたローカルモジュールに対して所望のチャネルからデータが送出される。
【０１８９】
グローバルモジュール１２から要求したブロックデータが送られてくると、該当するローカルモジュールでは、ローカルキャッシュが更新され、処理ユニットによりブロックデータが読み出される。
【０１９０】
次に、ローカルモジュール１３−０〜１３−３では、読み出されたテクスチャデータと、（ｕ，ｖ）アドレスは算出時に得た小数部を使って４近傍補間などのフィルタリング処理が行われる。
次に、フィルタリング後のテクスチャデータと、ラスタライズ後の各種データを用いて、ピクセル単位の演算が行われる。
そして、ピクセルレベルの処理における各種テストをパスしたピクセルデータを、メモリモジュール１３２−０〜１３２−３、たとえば内蔵ＤＲＡＭメモリ上のフレームバッファおよびＺバッファに書き込まれる。
【０１９１】
以上説明したように、本実施形態によれば、メモリモジュール１３２の複数のバッファＢＵＦ０〜ＢＵＦ３にそれぞれ対応して設けられ、初段ＳＲＴ０から最終段ＳＲＴ３に向かって縦続接続され、対応するバッファＢＵＦ０〜ＢＵＦ３からリードライトキャッシュＲＷ＄０〜ＲＷ＄３に読み出された読み出し奥行きデータ値と描画用としてライトユニットＷＵから供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷとを比較し、比較部の比較の結果、第１の供給奥行きデータが読み出し奥行きデータより大きい場合（または小さい場合）には、第１の供給奥行きデータとＲＧＢαデータを次段のソート回路に供給して読み出し奥行きデータとＲＧＢαデータを対応するバッファＢＵＦ０〜ＢＵＦ３に書き戻し、第１の供給奥行きデータが読み出し奥行きデータより小さい場合（または大きい場合）には、読み出し奥行きデータとＲＧＢαデータを次段のソート回路に供給して、前段からの第２の供給奥行きデータとＲＧＢαデータを対応するバッファＢＵＦ０〜ＢＵＦ３に書き込むソート回路ＳＲＴ０〜ＳＲＴ３を設けたので、複数（たとえば４）レイヤの半透明物体の合成（Ｏｒｄｅｒ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｔｒａｎｓｐａｒｅｎｃｙ）がハードウェアに容易に実現できる。
そして、任意のレイヤ数での重ね合わせを行うことができ、全シーンデータを流す回数を減らすことができる。その結果シーンデータの処理部の負荷を軽減でき、処理の高速化を図ることができる利点がある。
【０１９２】
なお、上述した実施形態では、メモリモジュールの各バッファに対応してソート回路を設け、これらを縦続接続するように構成したが、本発明はこれに限定されるものではない。
たとえば、図３３（Ａ），（Ｂ）に示すように、メモリモジュールの各バッファＢＵＦ１０〜ＢＵＦ１７にそれぞれソート回路ＳＲＴ１０〜ＳＲＴ１７を配置し、半透明物体合成モード時にのみ、メモリモジュール１３２Ａ自体にソート機能を持たせ、複数のバッファを使った半透明物体の合成を行うように構成することも可能である。
【０１９３】
この場合、メモリモジュール１３２Ａにおいて、入力側からバッファＢＵＦ１０からバッファＢＵＦ１７に向かって、いわゆるバケツリレー的にＲＧＢα／Ｚデータが流れる。
そして、各段で既存データと流れてきたデータとで、奥行きデータＺの比較を行い、比較の結果、そのまま流すか、流れてきたデータをバッファに格納し、既存のデータを流すかを選択する。
これを繰り返すことで、常に奥行き方向の順番を守りながらデータが格納されていく。
【０１９４】
図３３（Ｂ）は、この場合のソート回路ＳＲＴ１０〜ＳＲＴ１７の構成例を示す図である。
このソート回路ＳＲＴ（１０〜１７）は、初段から最終段に向かって縦続接続されている。
【０１９５】
ソート回路ＳＲＴ（１０〜１７）は、図３３（Ｂ）に示すように、比較部（ＣＭＰ）４０１、およびデータ選択部（ＤＳＥＬ）４０２を有している。
【０１９６】
比較部４０１は、対応するバッファＢＵＦ（１０〜１７）から読み出された読み出し奥行きデータ値ＺＲＤと前段からの第２の供給奥行きデータ値ＺＰＲＶ（初段では描画用としてライトユニットＷＵから供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷ）とを比較し、比較部の比較の結果、第２または第１の供給奥行きデータ値ＺＰＲＶ（ＺＤＲＷ）が読み出し奥行きデータ値ＺＲＤより大きい場合（ＺＰＲＶ（ＺＤＲＷ）＞ＺＲＤ）には、ローレベル（論理０）の制御信号ＣＴＬ４０１をデータ選択部４０２に出力する。
一方、比較部４０１は、比較部の比較の結果、第２または第１の供給奥行きデータ値ＺＰＲＶ（ＺＤＲＷ）が読み出し奥行きデータ値ＺＲＤより小さい場合（（ＺＰＲＶ（ＺＤＲＷ）＜ＺＲＤ）には、ハイレベル（論理１）の制御信号ＣＴＬ３０１をデータ選択部４０２に出力する。
【０１９７】
データ選択部４０２は、対応するバッファＢＵＦ（１０〜１７）から読み出された読み出し奥行きデータ値ＺＲＤおよびＲＧＢαデータと、前段からの第２の供給奥行きデータ値ＺＰＲＶ（初段では描画用としてライトユニットＷＵから供給されたピクセルデータに対応する第１の供給奥行きデータ値ＺＤＲＷ）およびＲＧＢαデータとを入力し、比較部４０１よりローレベルの制御信号ＣＴＬ４０１を受けると、第２の供給奥行きデータ値ＺＰＲＶ（または第１の供給奥行きデータ値ＺＤＲＷ）とＲＧＢαデータを選択して次段のソート回路ＳＲＴ（１１〜１７）に供給し、読み出し奥行きデータ値ＺＲＤとＲＧＢαデータを対応するバッファＢＵＦ１０〜ＢＵＦ１７に書き戻す。
一方、データ選択部３０２は、ハイレベルの制御信号ＣＴＬ４０１を受けると、読み出し奥行きデータ値ＺＲＤとＲＧＢαデータを選択して次段のソート回路ＳＲＴ（１１〜１７に供給し、第２の供給奥行きデータ値ＺＰＲＶ（または第１の供給奥行きデータ値ＺＤＲＷ）とＲＧＢαデータを対応するバッファＢＵＦ１０〜ＢＵＦ１７に書き込む。
【０１９８】
図３４は、図３３のソート機能を有するメモリモジュールの半透明物体合成モード時の動作を説明するための図である。
この例では、バッファＢＵＦ１０にＺ＝１５とＲＧＢαデータの奥行きデータが格納され、バッファＢＵＦ１１にＺ＝２５とＲＧＢαデータの奥行きデータが格納され、バッファＢＵＦ１２にＺ＝３２とＲＧＢαデータの奥行きデータが格納され、バッファＢＵＦ１３にＺ＝４０とＲＧＢαデータの奥行きデータが格納されていて、これらが各ソート回路ＳＲＴ１０〜ＳＲＴ１３に読み出されているものとする。
【０１９９】
まず、サイクル１で、描画用としてライトユニットＷＵから各ソート回路ＳＲＴ１０に対して、Ｚ＝２９の第１の供給奥行きデータ値ＺＤＲＷとＲＧＢαデータが供給される。
初段のソート回路ＳＲＴ１０においては、比較部４０１の比較結果は、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝１５）より大きいことから、ローレベルの制御信号ＣＴＬ４０１がデータ選択部４０２に出力される。
その結果、データ選択部４０２では、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ１１に供給される。これと並行して、データ選択部４０２では、読み出し奥行きデータ値ＺＲＤ（＝１５）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１０に書き戻される。
【０２００】
２段目のソート回路ＳＲＴ１１においては、比較部４０１の比較結果は、第１の供給奥行きデータ値ＺＤＲＷ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝３２）より大きいことから、ローレベルの制御信号ＣＴＬ４０１がデータ選択部４０２に出力される。
その結果、データ選択部４０２では、第２の供給奥行きデータ値ＺＰＲＶ（＝２９）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ１２に供給される。
これと並行して、データ選択部４０２では、読み出し奥行きデータ値ＺＲＤ（＝２５）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１１に書き戻される。
【０２０１】
３段目のソート回路ＳＲＴ１２においては、比較部４０１の比較結果は、第３の供給奥行きデータ値ＺＰＲＶ（＝２９）の方が読み出し奥行きデータＺＲＤ（＝３２）より小さいことから、ハイレベルの制御信号ＣＴＬ４０１がデータ選択部４０２に出力される。
その結果、データ選択部４０２では、読み出し奥行きデータＺＲＤ（＝３２）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ１３に供給される。
これと並行して、データ選択部４０３では、前段からの第２の供給奥行きデータＺＰＲＶ（＝２９）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１２に書き込まれる。
【０２０２】
４段目のソート回路ＳＲＴ１３においては、比較部４０１の比較結果は、第２の供給奥行きデータ値ＺＰＲＶ（＝３２）の方が読み出し奥行きデータＺＲＤ（＝４０）より小さいことから、ハイレベルの制御信号ＣＴＬ４０１がデータ選択部４０２に出力される。
その結果、データ選択部４０２では、読み出し奥行きデータＺＲＤ（＝４０）とＲＧＢαデータが選択され次段のソート回路ＳＲＴ１４に供給される。
これと並行して、データ選択部４０３では、前段からの第２の供給奥行きデータＺＰＲＶ（＝３２）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１３に書き込まれる。
【０２０３】
５段目のソート回路ＳＲＴ１４においては、比較部４０１の比較は読み出し奥行きデータＺＲＤが無いことから、ハイレベルの制御信号ＣＴＬ４０１がデータ選択部４０２に出力される。
その結果、データ選択部４０２では、読み出し奥行きデータＺＲＤ（＝４０）とＲＧＢαデータが選択されるが、次段への供給は行われない。
これと並行して、データ選択部４０３では、前段からの第２の供給奥行きデータＺＰＲＶ（＝４０）とＲＧＢαデータが選択されて、対応するバッファＢＵＦ１４に書き込まれる。
【０２０４】
このように、図３３の回路においては、図３５に示すように、複数（図３３の場合には８）レイヤの半透明物体の合成（Ｏｒｄｅｒ　ＩｎｄｅｐｅｎｄｅｎｔＴｒａｎｓｐａｒｅｎｃｙ）がハードウェアに容易に実現できる。
そして、任意のレイヤ数での重ね合わせを行うことができ、全シーンデータを流す回数を減らすことができる。その結果シーンデータの処理部の負荷を軽減でき、処理の高速化を図ることが可能となっている。
【０２０５】
また、たとえば図３６に示すように、複数のバッファを含む複数のメモリバンクＢＮＫ１０，ＢＮＫ１１，・・、を配置し、同一のメモリバンクの各バッファに対応した設けられたソート回路ＳＲＴ１０〜ＳＲＴ１３，ＳＲＴ１４〜ＳＲＴ１７は互いに非接続状態とし、それぞれ異なるメモリバンクに含まれるバッファに対応して設けられた複数のソート回路、図３３の例では、ソート回路ＳＲＴ１０とＳＲＴ１４，ＳＲＴ１１とＳＲＴ１５，ＳＲＴ１２とＳＲＴ１６，ＳＲＴ１３とＳＲＴ１７とを縦続接続して、半透明物体合成動作を行うことも可能である。
【０２０６】
また、本実施形態によれば、メモリバンド幅を活かした高並列の演算処理を行う機能ユニットである複数のＰＯＰ０〜ＰＯＰ３を有し、各ＰＯＰは、並列に配列された演算器ＰＯＰＥ０〜ＰＯＰＥ３を有し、各ＰＯＰＥ０〜ＰＯＰＥ３は、キャッシュから読み出された３２ビット幅のデータおよびフィルタ機能ユニットＦＦＵによる演算パラメータを受けて所定の演算（たとえば加算）を行って演算結果を次段のＰＯＰＥに出力し、次段のＰＯＰＥは自身の演算結果に前段の演算結果を加算し、その演算結果を次段のＰＯＰＥに出力し、最終段のＰＯＰＥ３において、全ＰＯＰＥ０〜ＰＯＰＥ３の演算結果の総和を求め、各ＰＯＰは、複数のＰＯＰＥの演算出力から一つのＰＯＰＥ３の演算結果のみを選択してクロスバー回路１３１２５に出力する出力選択回路ＯＳＬＣを有するピクセル演算プロセッサ（ＰＯＰ）群１３１２３を設けたことから、クロスバー回路の小型化を図れ、処理の高速化を図ることができる。
【０２０７】
また、本実施形態においては、演算処理部としてのコア１３１２を一つだけ設けた構成例を説明したが、たとえば図３７に示すように、一つのラスタライザ１３１１に対して複数個のコア１３１２−１〜１３１２−１を並列に設ける構成を採用することも可能である。
この場合でも、各コアで実行されるＤＦＧは同一である。
また、複数のコアを設ける構成の並列化の単位としては、たとえばグラフィックス処理の場合には小矩形領域（スタンプ）単位、画像処理の場合にはブロック単位である。この場合、細かい粒度での並列処理を実現できる利点がある。
【０２０８】
また、本実施形態では、ピクセル演算プロセッサ（ＰＯＰ）群１３１２３とキャッシュ間は広いバンド幅で接続されており、かつメモリアクセスのためのアドレス生成機能を内蔵しているので、演算器の演算能力を最大限引き出すだけのストリームデータの供給が可能である。
【０２０９】
また、本実施形態では、メモリの近傍に出力データ幅を合わせた形で演算器を高密度に配置し、処理データの規則性を利用していることから、大量の演算を最低限の演算器でしかも簡単構成で実現することができ、ひいてはコスト低減を図れる利点がある。
【０２１０】
また、本実施形態によれば、ＳＤＣ１１とグローバルモジュール１２とがデータの授受を行い、一つのグローバルモジュール１２に対して複数個（本実施形態では４個）のローカルモジュール１３−０〜１３−３が並列に接続されて、複数のローカルモジュール１３−０〜１３−３で処理データを共有し並列に処理し、グローバルモジュール１２はグローバルキャッシュを有し、各ローカルモジュール１３−０〜１３−３はローカルキャッシュをそれぞれ有し、キャッシュの階層として、４つのローカルモジュール１３−０〜１３−３が共有するグローバルキャッシュと、各ローカルモジュールがローカルに持つローカルキャッシュの２階層を有することから、複数の処理装置が処理データを共有して並列処理する際に、重複アクセスを低減でき、配線本数の多いクロスバーが不要となる。その結果、設計が容易で、配線コスト、配線遅延を低減できる画像処理装置を実現できる利点がある。
【０２１１】
また、本実施形態によれば、グローバルモジュール１２と各ローカルモジュール１３−０〜１３−３との配置関係としては、図３に示すように、グローバルモジュール１２を中心として各ローカルモジュール１３−０〜１３−３をその周辺近傍に配置することから、各対応するチャネルブロックとローカルモジュールまでの距離を均一に保つことができ、配線領域を整然と並べることができ、平均配線長を短くできる。したがって、配線遅延や配線コストを低減でき、処理速度の向上を図ることができる利点がある。
【０２１２】
なお、本実施形態においては、テクスチャデータが内蔵ＤＲＡＭ上にあるケースを例に述べているが、他のケースとして、内蔵ＤＲＡＭには、カラーデータおよびｚデータのみが置かれ、テクスチャデータは外部メモリに置かれることも可能である。この場合には、グローバルキャッシュでミスが発生すると、外部ＤＲＡＭに対してキャッシュフィル要求が出されることになる。
【０２１３】
また、上述の説明では、図３の構成、すなわち、一つのグローバルモジュール１２に対して複数個（本実施形態では４個）のローカルモジュール１３−０〜１３−３が並列に接続した画像処理装置１０を例に並列処理を行う場合に特化した形態となっているが、図３の構成を一つのクラスタＣＬＳＴとして、たとえば図３７に示すように、４つのクラスタＣＬＳＴ０〜ＣＬＳＴ３をマトリクス状に配置して、各クラスタＣＬＳＴ０〜ＣＬＳＴ３のグローバルモジュール１２−０〜１２−３間でデータの授受を行うように構成することも可能である。
図３７の例では、クラスタＣＬＳＴ０のグローバルモジュール１２−０とクラスタＣＬＳＴ１のグローバルモジュール１２−１とを接続し、クラスタＣＬＳＴ１のグローバルモジュール１２−１とクラスタＣＬＳＴ３のグローバルモジュール１２−３とを接続し、クラスタＣＬＳＴ３のグローバルモジュール１２−３とクラスタＣＬＳＴ２のグローバルモジュール１２−２とを接続し、クラスタＣＬＳＴ２のグローバルモジュール１２−２とクラスタＣＬＳＴ０のグローバルモジュール１２−０とを接続している。
すなわち、複数のクラスタＣＬＳＴ０〜ＣＬＳＴ３のグローバルモジュール１２−０〜１２−３をリング状に接続している。
なお、図３７の構成の場合には、一つのＳＤＣからパラメータがＣＬＳＴ０〜ＣＬＳＴ３のグローバルモジュール１２−０〜１２−３にブロードキャストされるように構成することが可能である。
【０２１４】
このような構成を採用することにより、より精度の高い画像処理を実現でき、また、各クラスタ間の配線も単純に双方向として一系統で接続するので、各クラスタ間の負荷を均一に保つことができ、配線領域を整然と並べることができ、平均配線長を短くできる。したがって、配線遅延や配線コストを低減でき、処理速度の向上を図ることが可能となる。
【０２１５】
【発明の効果】
以上説明したように、本発明によれば、複数レイヤの半透明物体の合成（Ｏｒｄｅｒ　ＩｎｄｅｐｅｎｄｅｎｔＴｒａｎｓｐａｒｅｎｃｙ）がハードウェアに容易に実現できる。
そして、任意のレイヤ数での重ね合わせを行うことができ、全シーンデータを流す回数を減らすことができる。その結果シーンデータの処理部の負荷を軽減でき、処理の高速化を図ることが可能となっている。
【図面の簡単な説明】
【図１】ピクセルレベルでの並列処理の手法に基づくプリミティブ・レベルでの並列化処理について概念的に示す図である。
【図２】一般的な画像処理装置におけるテクスチャフィルタリングを含む処理手順を説明するための図である。
【図３】本発明に係る画像処理装置の一実施形態を示すブロック構成図である。
【図４】本実施形態に係るストリームデータコントローラ（ＳＤＣ）の主な処理を説明するためのフローチャートである。
【図５】本実施形態に係るグローバルモジュールの機能を説明するためのフローチャートである。
【図６】本実施形態に係るローカルモジュールにおける処理ユニットのグラフィックス処理を説明するための図である。
【図７】本実施形態に係るテクスチャリード時のローカルモジュールの動作を説明するためのフローチャートである。
【図８】本実施形態に係るローカルモジュールにおける処理ユニットの画像処理を説明するための図である。
【図９】本実施形態に係るローカルモジュールにおけるローカルキャッシュの構成例を示すブロック図である。
【図１０】本実施形態に係るローカルキャッシュのメモリコントローラの構成例を示すブロック図である。
【図１１】本実施形態に係るローカルモジュールの処理ユニットの具体的な構成例を示すブロック図である。
【図１２】本実施形態に係るピクセルエンジンの構成例、およびレジスタユニット（ＲＧＵ）、クロスバー回路との接続例を示す図である。
【図１３】本実施形態に係るピクセル演算プロセッサ（ＰＯＰ）群の構成例を示す図である。
【図１４】本実施形態に係るＰＯＰ（ピクセル演算プロセッサ）とメモリ間の接続形態およびＰＯＰの構成例を示す図である。
【図１５】本実施形態に係るＰＯＰ（ピクセル演算プロセッサ）とメモリ間の接続形態およびＰＯＰの他の構成例を示す図である。
【図１６】本実施形態に係るソート回路の具体的な構成例を示すブロック図である。
【図１７】ソート回路を用いる半透明物体合成モード時の動作を説明するための図である。
【図１８】本実施形態に係るソート回路を用いて縦４段、横４段を複合させて、１６レイヤの合成を可能とする回路例を示す図である。
【図１９】本実施形態に係るＰＯＰＥの具体的な構成例を示す回路図である。
【図２０】本実施形態に係るメモリからキャッシュへのデータの読み出し形態およびキャッシュから各ＰＯＰＥへのデータの読み出し形態を示す図である。
【図２１】本実施形態に係るメモリのデータに基づいてピクセル演算プロセッサ群で演算処理を行い、さらにピクセルエンジンで演算を行う場合の動作を説明するためのフローチャートである。
【図２２】本実施形態に係るメモリのデータに基づいてピクセル演算プロセッサ群で演算処理を行い、さらにピクセルエンジンで演算を行う場合の動作を説明するための図である。
【図２３】本実施形態に係るメモリのデータに基づいてピクセル演算プロセッサ群で演算処理を行い、さらにピクセルエンジンで演算を行う場合の動作を説明するためのタイミングチャートである。
【図２４】本実施形態に係るメモリのデータに基づいてピクセル演算プロセッサ群で演算処理を行い、さらにピクセルエンジンで演算を行う場合の動作を説明するためのブロック図である。
【図２５】本実施形態に係る処理ユニットにおけるコアのピクセルエンジン（ＰＸＥ）、ピクセル演算プロセッサ（ＰＯＰ）、レジスタユニット（ＲＧＵ）、並びにメモリ部分を含む動作概要を示す図である。
【図２６】本実施形態に係る処理ユニットにおける依存テクスチャ無しの場合のグラフィックス処理を説明するための図である。
【図２７】本実施形態に係る処理ユニットにおけるグラフィックス処理のピクセル演算プロセッサ（ＰＯＰ）群の具体的な動作を説明するための図である。
【図２８】本実施形態に係る処理ユニットにおける依存テクスチャ有りの場合のグラフィックス処理を説明するための図である。
【図２９】ＳＡＤ（Ｓｕｍｍｅｄ　Ａｂｓｏｌｕｔｅ　Ｄｉｆｆｅｒｅｎｃｅ）処理を説明するための図である。
【図３０】本実施形態に係る処理ユニットにおけるＳＡＤ処理を説明するための図である。
【図３１】コンボリューションフィルタ（Ｃｏｎｖｏｌｕｔｉｏｎ　Ｆｉｌｔｅｒ）処理を説明するための図である。
【図３２】本実施形態に係る処理ユニットにおけるコンボリューションフィルタ処理を説明するための図である。
【図３３】本実施形態に係るソート機能を有し、半透明物体合成モード動作を実現可能なメモリモジュールの構成例を示す図である。
【図３４】図３０のソート機能を有するメモリモジュールの半透明物体合成モード時の動作を説明するための図である。
【図３５】図３０のソート機能を有するメモリモジュールの半透明物体合成モードの効果を説明するための図である。
【図３６】本実施形態に係るソート機能を有し、半透明物体合成モード動作を実現可能なメモリモジュールの他の構成例を示す図である。
【図３７】本実施形態に係る処理ユニットにおける他の構成例（コアを複数設けた例）を示す図である。
【図３８】本発明に係る画像処理装置の他の実施形態を示すブロック構成図である。
【符号の説明】
１０，１０Ａ…画像処理装置、１１…ストリームデータコントローラ（ＳＤＣ）、１２−０〜１２−３…グローバルモジュール、１２１−０〜１２１−３…グローバルキャッシュ、１３−０〜１３−３…ローカルモジュール、１３１−０〜１３１−３…処理ユニット、１３２−０〜１３２−３…メモリモジュール、１３３−０〜１３３−３…ローカルキャッシュ、１３４−０〜１３４−３…グローバルインターフェース（ＧＡＩＦ）、ＣＬＳＴ０〜ＣＬＳＴ３…クラスタ、１３１１…ラスタライザ、１３１２，１３１２−１〜１３１２−ｎ…コア、１３１２１…グラフィックスユニット（ＧＲＵ）、１３１２２…ピクセルエンジン（ＰＸＥ）、１３１２３…ピクセル演算プロセッサ（ＰＯＰ）群、１３１２４…レジスタユニット（ＲＧＵ）、１３１２５…クロスバー回路（ＩＸＢ）、ＰＯＰＥ０〜３…演算器、ＯＳＬＣ…出力選択回路、ＳＲＴ０〜ＳＲＴ８…ソート回路、ＢＵＦ０〜ＢＵＦ７…バッファ、３０１…比較部、３０２…供給データ選択部、３０３…書き込みデータ選択部、４０１…比較部、４０２…データ選択部。
【図１】
2004005352.tif 000003
【図２】
2004005352.tif 000004
【図３】
2004005352.tif 000005
【図４】
2004005352.tif 000006
【図５】
2004005352.tif 000007
【図６】
2004005352.tif 000008
【図７】
2004005352.tif 000009
【図８】
2004005352.tif 000010
【図９】
2004005352.tif 000011
【図１０】
2004005352.tif 000012
【図１１】
2004005352.tif 000013
【図１２】
2004005352.tif 000014
【図１３】
2004005352.tif 000015
【図１４】
2004005352.tif 000016
【図１５】
2004005352.tif 000017
【図１６】
2004005352.tif 000018
【図１７】
2004005352.tif 000019
【図１８】
2004005352.tif 000020
【図１９】
2004005352.tif 000021
【図２０】
2004005352.tif 000022
【図２１】
2004005352.tif 000023
【図２２】
2004005352.tif 000024
【図２３】
2004005352.tif 000025
【図２４】
2004005352.tif 000026
【図２５】
2004005352.tif 000027
【図２６】
2004005352.tif 000028
【図２７】
2004005352.tif 000029
【図２８】
2004005352.tif 000030
【図２９】
2004005352.tif 000031
【図３０】
2004005352.tif 000032
【図３１】
2004005352.tif 000033
【図３２】
2004005352.tif 000034
【図３３】
2004005352.tif 000035
【図３４】
2004005352.tif 000036
【図３５】
2004005352.tif 000037
【図３６】
2004005352.tif 000038
【図３７】
2004005352.tif 000039
【図３８】
2004005352.tif 000040