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