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