(57)【要約】複数個の演算回路間の接続を電気的に変更することで、各種の演算に対応でき、かつ開発時点で想定されていなかった演算方式にも容易に対応できる、かつ、３次元グラフィックにおいて、実時間での描画に十分な描画能力を有する演算装置および画像処理装置であって、レジスタファイル（ＲＦ）２０１１と、演算器プール２０１２を有する演算装置２０１であって、演算器プール２０１２は、データバスＢＳによりレジスタファイル２０１１とのデータの授受を行う少なくとも一つの演算部２０１２１〜２０１２４を有し、各演算部２０１２１〜２０１２４は、複数の演算器（加算器、乗算器、乗加算器等）ＯＰ１〜ＯＰ８と、演算器ＯＰ１〜ＯＰ８との間に電気的な接続を変更可能、レジスタファイル２０１１と演算器ＯＰとの間に存在する接続回路網ＣＣＮを含む。
2003009125.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を有する演算装置であって、
制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網
を有する演算装置。
【請求項２】
上記接続回路網は、制御信号を受けて連続してデータを入力し、ツリー状のデータフローグラフで表現される演算を実行可能な演算回路を構成する
請求項１記載の演算装置。
【請求項３】
上記接続回路網は、データバス上の所望の位置にセレクタを有し、２ｎ本の入力データバスがある場合、ｎ−２個の演算器は、入力データバス一対と、前段の演算器の出力をセレクタで選択して自段の演算器に入力するように演算回路を構成する
請求項１記載の演算装置。
【請求項４】
上記接続回路網は、上記ｎ個以外の少なくとも１個の演算器は、２ｎ−ｎ本の入力データバスのデータすべてと、前段の出力を選択して自段の演算器に入力するように演算回路を構成する
請求項３記載の演算装置。
【請求項５】
再構成可能な上記データバスを使用してパイプライン処理を行う際に、制御信号を受けて演算器間の電気的接続を変更することが可能な制御回路
を有する請求項１記載の演算装置。
【請求項６】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える
請求項５記載の演算装置。
【請求項７】
上記制御回路、接続網の個々の接続点に対応して設けられ、各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項５記載の演算装置。
【請求項８】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各演算器に対応して設けたれた各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替え、
接続網の個々の接続点に対応して設けられた各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点を制御の切り替える
請求項５記載の演算装置。
【請求項９】
上記制御回路は、現在の制御情報（現制御情報）と、次に行うべき制御に関する情報（次制御情報）の２つを保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な制御信号と同期して送られ、
上記制御回路は、最終データであることが識別された場合、現在実行中の演算が完了すると、現制御情報を次制御情報で書き換える
請求項５記載の演算装置。
【請求項１０】
上記制御回路は、現在の制御情報（現制御情報）と現在実行中の演算を識別するための情報（現識別情報）と、次に行うべき制御に関する情報（次制御情報）と、次に実行する演算を識別するための情報（次識別情報）を保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な情報、およびそのデータが一の演算処理に対するものか、他の演算処理に対するものかを識別可能な情報を示す制御信号と同期して送られ、
上記制御回路は、送られてきたデータが、最終データであり、かつ現識別情報で示される演算に対するものであることが識別された場合、現在実行中の演算が完了すると、現制御情報、現識別情報をそれぞれ次制御情報、次識別情報で書き換える
請求項５記載の演算装置。
【請求項１１】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項１記載の演算装置。
【請求項１２】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項５記載の演算装置。
【請求項１３】
レジスタファイルと、
演算器プールとを有し、
上記演算器プールは、データバスによりレジスタファイルとのデータの授受を行う少なくとも一つの演算部を有し、
上記演算部は、複数の演算器と、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網とを含む
演算装置。
【請求項１４】
上記接続回路網は、制御信号を受けて連続してデータを入力し、ツリー状のデータフローグラフで表現される演算を実行可能な演算回路を構成する
請求項１３記載の演算装置。
【請求項１５】
上記接続回路網は、データバス上の所望の位置にセレクタを有し、２ｎ本の入力データバスがある場合、ｎ−２個の演算器は、入力データバス一対と、前段の演算器の出力をセレクタで選択して自段の演算器に入力するように演算回路を構成する
請求項１３記載の演算装置。
【請求項１６】
上記接続回路網は、上記ｎ個以外の少なくとも１個の演算器は、入力データすべてと、前段の出力を選択して次段の演算器に入力するように演算回路を構成する
請求項１３記載の演算装置。
【請求項１７】
再構成可能な上記データバスを使用してパイプライン処理を行う際に、制御信号を受けて演算器間の電気的接続を変更することが可能な制御回路
を有する請求項１３記載の演算装置。
【請求項１８】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える
請求項１７記載の演算装置。
【請求項１９】
記制御回路、接続網の個々の接続点に対応して設けられ、各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項１７記載の演算装置。
【請求項２０】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各演算器に対応して設けたれた各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替え、
接続網の個々の接続点に対応して設けられた各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項１７記載の演算装置。
【請求項２１】
上記制御回路は、現在の制御情報（現制御情報）と、次に行うべき制御に関する情報（次制御情報）の２つを保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な制御信号と同期して送られ、
上記制御回路は、最終データであることが識別された場合、現在実行中の演算が完了すると、現制御情報を次制御情報で書き換える
請求項１７記載の演算装置。
【請求項２２】
上記制御回路は、現在の制御情報（現制御情報）と現在実行中の演算を識別するための情報（現識別情報）と、次に行うべき制御に関する情報（次制御情報）と、次に実行する演算を識別するための情報（次識別情報）を保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な情報、およびそのデータが一の演算処理に対するものか、他の演算処理に対するものかを識別可能な情報を示す制御信号と同期して送られ、
上記制御回路は、送られてきたデータが、最終データであり、かつ現識別情報で示される演算に対するものであることが識別された場合、現在実行中の演算が完了すると、現制御情報、現識別情報をそれぞれ次制御情報、次識別情報で書き換える
請求項１７記載の演算装置。
【請求項２３】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項１３記載の演算装置。
【請求項２４】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項１７記載の演算装置。
【請求項２５】
複数の演算ユニットと、
上記複数の演算ユニット間を所望の形態で相互に接続するクロスバー回路と、を有し、
上記複数の演算ユニットの各々は、
入力データに対して所望の演算を行う演算パイプと、
隣接する演算ユニットの演算結果データまたは外部からの供給データのうちの一方を選択し、上記演算パイプに入力させるセレクタと、
上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を隣接の演算ユニットに転送するストリームレジスタと、
を少なくとも有する演算装置。
【請求項２６】
上記演算ユニットは、上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を上記クロスバー回路に転送する第２のストリームレジスタを含む
請求項２５記載の演算装置。
【請求項２７】
上記演算ユニットに入力されるデータは、グラフィックス処理に関するデータまたは画像処理に関するデータである
請求項２５記載の演算装置。
【請求項２８】
上記演算ユニットに入力されるデータは、グラフィックス処理に関するデータまたは画像処理に関するデータである
請求項２６記載の演算装置。
【請求項２９】
少なくとも画像データを記憶する記憶回路と、
上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路と
を有し、
上記ロジック回路は、複数の演算器を有し、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網を有する演算装置を含む
画像処理装置。
【請求項３０】
上記接続回路網は、制御信号を受けて連続してデータを入力し、ツリー状のデータフローグラフで表現される演算を実行可能な演算回路を構成する
請求項２９記載の画像処理装置。
【請求項３１】
上記接続回路網は、データバス上の所望の位置にセレクタを有し、２ｎ本の入力データバスがある場合、ｎ−２個の演算器は、入力データバス一対と、前段の演算器の出力をセレクタで選択して自段の演算器に入力するように演算回路を構成する
請求項２９記載の画像処理装置。
【請求項３２】
上記接続回路網は、上記ｎ個以外の少なくとも１個の演算器は、入力データすべてと、前段の出力を選択して自段の演算器に入力するように演算回路を構成する
請求項３１記載の画像処理装置。
【請求項３３】
再構成可能な上記データバスを使用してパイプライン処理を行う際に、制御信号を受けて演算器間の電気的接続を変更することが可能な制御回路
を有する請求項２９記載の演算装置。
【請求項３４】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える
請求項３３記載の演算装置。
【請求項３５】
上記制御回路、接続網の個々の接続点に対応して設けられ、各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項３３記載の画像処理装置。
【請求項３６】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各演算器に対応して設けられた各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替え、
接続網の個々の接続点に対応して設けられた各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項３３記載の画像処理装置。
【請求項３７】
上記制御回路は、現在の制御情報（現制御情報）と、次に行うべき制御に関する情報（次制御情報）の２つを保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な制御信号と同期して送られ、
上記制御回路は、最終データであることが識別された場合、現在実行中の演算が完了すると、現制御情報を次制御情報で書き換える
請求項３３記載の画像処理装置。
【請求項３８】
上記制御回路は、現在の制御情報（現制御情報）と現在実行中の演算を識別するための情報（現識別情報）と、次に行うべき制御に関する情報（次制御情報）と、次に実行する演算を識別するための情報（次識別情報）を保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な情報、およびそのデータが一の演算処理に対するものか、他の演算処理に対するものかを識別可能な情報を示す制御信号と同期して送られ、
上記制御回路は、送られてきたデータが、最終データであり、かつ現識別情報で示される演算に対するものであることが識別された場合、現在実行中の演算が完了すると、現制御情報、現識別情報をそれぞれ次制御情報、次識別情報で書き換える
請求項３３記載の画像処理装置。
【請求項３９】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項２９記載の画像処理装置。
【請求項４０】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項３３記載の画像処理装置。
【請求項４１】
少なくとも画像データを記憶する記憶回路と、
上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路と
を有し、
上記ロジック回路は、レジスタファイルと、演算器プールとを有し、
上記演算器プールは、データバスによりレジスタファイルとのデータの授受を行う少なくとも一つの演算部を有し、上記演算部は、複数の演算器と、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網とを含む演算装置
を有する画像処理装置。
【請求項４２】
上記接続回路網は、制御信号を受けて連続してデータを入力し、ツリー状のデータフローグラフで表現される演算を実行可能な演算回路を構成する
請求項４１記載の画像処理装置。
【請求項４３】
上記接続回路網は、データバス上の所望の位置にセレクタを有し、２ｎ本の入力データバスがある場合、ｎ−２個の演算器は、入力データバス一対と、前段の演算器の出力をセレクタで選択して自段の演算器に入力するように演算回路を構成する
請求項４１記載の画像処理装置。
【請求項４４】
上記接続回路網は、上記ｎ個以外の少なくとも１個の演算器は、入力データすべてと、前段の出力を選択して自段の演算器に入力するように演算回路を構成する
請求項４３記載の画像処理装置。
【請求項４５】
再構成可能な上記データバスを使用してパイプライン処理を行う際に、制御信号を受けて演算器間の電気的接続を変更することが可能な制御回路
を有する請求項３１記載の演算装置。
【請求項４６】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える
請求項４５記載の演算装置。
【請求項４７】
上記制御回路、接続網の個々の接続点に対応して設けられ、各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項４５記載の画像処理装置。
【請求項４８】
上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各演算器に対応して設けられた各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替え、
接続網の個々の接続点に対応して設けられた各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える
請求項４５記載の画像処理装置。
【請求項４９】
上記制御回路は、現在の制御情報（現制御情報）と、次に行うべき制御に関する情報（次制御情報）の２つを保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な制御信号と同期して送られ、
上記制御回路は、最終データであることが識別された場合、現在実行中の演算が完了すると、現制御情報を次制御情報で書き換える
請求項４５記載の画像処理装置。
【請求項５０】
上記制御回路は、現在の制御情報（現制御情報）と現在実行中の演算を識別するための情報（現識別情報）と、次に行うべき制御に関する情報（次制御情報）と、次に実行する演算を識別するための情報（次識別情報）を保持し、
演算データは、当該演算データが演算に使用する最終データであることが識別可能な情報、およびそのデータが一の演算処理に対するものか、他の演算処理に対するものかを識別可能な情報を示す制御信号と同期して送られ、
上記制御回路は、送られてきたデータが、最終データであり、かつ現識別情報で示される演算に対するものであることが識別された場合、現在実行中の演算が完了すると、現制御情報、現識別情報をそれぞれ次制御情報、次識別情報で書き換える
請求項４５記載の画像処理装置。
【請求項５１】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項４１記載の画像処理装置。
【請求項５２】
入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである
請求項４５記載の画像処理装置。
【請求項５３】
グラフィックス処理機能および画像処理機能を有する画像処理装置であって、
画像に関するデータを記憶するメモリと、
グラフィックス処理時には、少なくとも色に関するデータを含むグラフィックスピクセルデータを生成し、画像処理時には、少なくとも上記メモリに記憶されているデータを読み出すためのソースアドレスを生成する処理ユニットと、
上記処理ユニットで生成されたデータに基づいて所定のグラフィックス処理または画像処理を行うコア部と、
を有し、
上記コア部は、
複数の演算ユニットと、
上記複数の演算ユニット間および上記メモリと演算ユニット間を所望の形態で相互に接続するクロスバー回路と、を有し、
上記複数の演算ユニットの各々は、
入力データに対して所望の演算を行う演算パイプと、
隣接する演算ユニットの演算結果データまたは外部からの供給データのうちの一方を選択し、上記演算パイプに入力させるセレクタと、
上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を隣接の演算ユニットに転送するストリームレジスタと、
を少なくとも有する
画像処理装置。
【請求項５４】
上記演算ユニットは、上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を上記クロスバー回路に転送する第２のストリームレジスタを含む
請求項５３記載の画像処理装置。
【請求項５５】
上記複数の演算ユニットを含む演算ブロックを複数有し、
複数の演算ブロックの各々は、担当する演算処理が割り当てられて固定化されている
請求項５３記載の画像処理装置。
【請求項５６】
上記複数の演算ユニットを含む演算ブロックを複数有し、
複数の演算ブロックの各々は、担当する演算処理が割り当てられて固定化されている
請求項５４記載の画像処理装置。
【発明の詳細な説明】
技術分野
本発明は、たとえばグラフィックス描画処理を行う画像処理装置に適用され、描画する画素の値を演算する演算装置、およびそれを用いた画像処理装置に関するものである。
背景技術
種々のＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、３次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような３次元コンピュータグラフィックスでは、各画素（ピクセル）に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ（フレームバッファ）のアドレスに書き込むレンダリング（Ｒｅｎｄｅｒｉｎｇ）処理を行う。
レンダリング処理の手法の一つに、ポリゴン（Ｐｏｌｙｇｏｎ）レンダリングがある。この手法では、立体モデルを三角形の単位図形（ポリゴン）の組み合わせとして表現しておき、このポリゴンを単位として描画を行うことで、表示画面の色を決定する。
ポリゴンレンダリングでは、物理座標系における三角形の各頂点についての、座標（ｘ，ｙ，ｚ）と、色データ（Ｒ，Ｇ，Ｂ）と、張り合わせのイメージパターンを示すテクスチャデータの同次座標（ｓ，ｔ）および同次項ｑの値とを入力し、これらの値を三角形の内部で補間する処理が行われる。
ここで、同次項ｑは、実際のテクスチャバッファのＵＶ座標系における座標、すなわち、テクスチャ座標データ（ｕ，ｖ）は、同次座標（ｓ，ｔ）を同次項ｑで除算した「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じたものとなる。
図１は、３次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
この３次元コンピュータグラフィックスシステムにおいては、グラフィックス描画等のデータは、メインプロセッサ１のメインメモリ２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路３からメインバス４を介してレンダリングプロセッサ５ａ、フレームバッファメモリ５ｂを有するレンダリング回路５に与えられる。
レンダリングプロセッサ５ａには、表示するためのデータを保持することを目的とするフレームバッファメモリ５ｂと、描画する図形要素（たとえば三角形）の表面に張り付けるテクスチャデータを保持しているテクスチャメモリ６が結合されている。
そして、レンダリングプロセッサ５ａによって、図形要素毎に表面にテクスチャを張り付けた図形要素を、フレームバッファメモリ５ｂに描画するという処理が行われる。
フレームバッファメモリ５ｂとテクスチャメモリ６は、一般的にＤＲＡＭにより構成される。
そして、図１のシステムにおいては、フレームバッファメモリ５ｂとテクスチャメモリ６は、物理的に別々のメモリシステムとして構成されている。
ところが、３次元グラフィックス描画処理画像処理装置においては、画像データのメモリへの書き込みや読み出し、画面表示のための読み出しなどメモリへのアクセスは頻繁に行われる。また、描画性能を出すためにはメモリのバス幅を広くとることが必要となる。
そのため、グラフィックス描画画像処理装置とメモリは別々に配置されていたものが配線数の増加により物理的に不可能となり、ＤＲＡＭとロジック回路を同一チップ内に混載させるようになった。
ところが、上述したような３次元コンピュータグラフィックス描画画像処理装置においては、描画する画素の値を種々の演算を行って算出している。
この画素の値の演算方法としては、種々のものが使用、提案されている。
しかし、従来の３次元コンピュータグラフィックス描画画像処理装置では、演算を実行する回路の構成がＬＳＩ製造時点で限定されてしまい、開発時点で想定していない演算方式を適用しようとしても、非常に困難であるか、あるいは不可能である。
他方、マイクロプロセッサのように汎用性の高い演算装置を使用して、３次元コンピュータグラフィックスを描画することは可能であるが、将来普及が予想されているＨＤＴＶ等を考えた場合、所望の映像を実時間で描画するには、単位時間あたりの描画能力が十分ではなく、実時間での描画は非常に困難である。
発明の開示
本発明の第１の目的は、複数個の演算回路間の接続を電気的に変更することで、各種の演算に対応でき、かつ開発時点で想定されていなかった演算方式にも容易に対応できる演算装置を提供することにある。
また、本発明の第２の目的は、３次元グラフィックスにおいて、実時間での描画に十分な描画能力を有する画像処理装置を提供することにある。
上記目的を達成するため、本発明の第１の観点に係る演算装置は、複数の演算器を有する演算装置であって、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網を有する。
また、本発明の第２の観点に係る演算装置は、レジスタファイルと、演算器プールとを有し、上記演算器プールは、データバスによりレジスタファイルとのデータの授受を行う少なくとも一つの演算部を有し、上記演算部は、複数の演算器と、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網とを含む。
本発明の第３の観点に係る演算装置は、複数の演算ユニットと、上記複数の演算ユニット間を所望の形態で相互に接続するクロスバー回路と、を有し、上記複数の演算ユニットの各々は、入力データに対して所望の演算を行う演算パイプと、隣接する演算ユニットの演算結果データまたは外部からの供給データのうちの一方を選択し、上記演算パイプに入力させるセレクタと、上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を隣接の演算ユニットに転送するストリームレジスタと、を少なくとも有する。
また、本発明の第４の観点に係る画像処理装置は、少なくとも画像データを記憶する記憶回路と、上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路とを有し、上記ロジック回路は、複数の演算器を有し、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網を有する演算装置を含む。
また、本発明の第５の観点に係る画像処理装置は、少なくとも画像データを記憶する記憶回路と、上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路とを有し、上記ロジック回路は、レジスタファイルと、演算器プールとを有し、上記演算器プールは、データバスによりレジスタファイルとのデータの授受を行う少なくとも一つの演算部を有し、上記演算部は、複数の演算器と、制御信号に応じて再構成可能なデータパスを複数有し、上記演算器を、電気的な接続網で接続し、複数個の演算器間の電気的接続を確立して複数の演算器からなる演算回路を構成する接続回路網とを含む演算装置を有する。
また、本発明の第６の観点に係る画像処理装置は、グラフィックス処理機能および画像処理機能を有する画像処理装置であって、画像に関するデータを記憶するメモリと、グラフィックス処理時には、少なくとも色に関するデータを含むグラフィックスピクセルデータを生成し、画像処理時には、少なくとも上記メモリに記憶されているデータを読み出すためのソースアドレスを生成する処理ユニットと、上記処理ユニットで生成されたデータに基づいて所定のグラフィックス処理または画像処理を行うコア部と、を有し、上記コア部は、複数の演算ユニットと、上記複数の演算ユニット間および上記メモリと演算ユニット間を所望の形態で相互に接続するクロスバー回路と、を有し、上記複数の演算ユニットの各々は、入力データに対して所望の演算を行う演算パイプと、隣接する演算ユニットの演算結果データまたは外部からの供給データのうちの一方を選択し、上記演算パイプに入力させるセレクタと、上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を隣接の演算ユニットに転送するストリームレジスタと、を少なくとも有する。
好適には、上記演算ユニットは、上記クロスバー回路を通して供給されたデータを上記演算パイプに入力させ、当該演算パイプの演算結果を上記クロスバー回路に転送する第２のストリームレジスタを含む。
また、第６の観点では、上記複数の演算ユニットを含む演算ブロックを複数有し、複数の演算ブロックの各々は、担当する演算処理が割り当てられて固定化されている。
本発明では、上記接続回路網は、制御信号を受けて連続してデータを入力し、ツリー状のデータフローグラフで表現される演算を実行可能な演算回路を構成する。
また、本発明では、上記接続回路網は、データバス上の所望の位置にセレクタを有し、２ｎ本の入力データバスがある場合、ｎ−２個の演算器は、入力データバス一対と、前段の演算器の出力をセレクタで選択して自段の演算器に入力するように演算回路を構成する。
また、本発明では、上記接続回路網は、上記ｎ個以外の少なくとも１個の演算器は、入力データすべてと、前段の出力を選択して自段の演算器に入力するように演算回路を構成する。
また、本発明では、再構成可能な上記データバスを使用してパイプライン処理を行う際に、制御信号を受けて演算器間の電気的接続を変更することが可能な制御回路を有する。
また、本発明では、上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える。
好適には、上記制御回路、接続網の個々の接続点に対応して設けられ、各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点を制御を切り替える。
好適には、上記制御回路は、個々の演算器および接続網の個々の接続点に対応してそれぞれ設けられ、各演算器に対応して設けられた各制御回路は、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替え、接続網の個々の接続点に対応して設けられた各制御回路は、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、自動的に接続点の制御を切り替える。
また、本発明では、上記制御回路は、現在の制御情報（現制御情報）と、次に行うべき制御に関する情報（次制御情報）の２つを保持し、演算データは、当該演算データが演算に使用する最終データであることが識別可能な制御信号と同期して送られ、上記制御回路は、最終データであることが識別された場合、現在実行中の演算が完了すると、現制御情報を次制御情報で書き換える。
また、本発明では、上記制御回路は、現在の制御情報（現制御情報）と現在実行中の演算を識別するための情報（現識別情報）と、次に行うべき制御に関する情報（次制御情報）と、次に実行する演算を識別するための情報（次識別情報）を保持し、演算データは、当該演算データが演算に使用する最終データであることが識別可能な情報、およびそのデータが一の演算処理に対するものか、他の演算処理に対するものかを識別可能な情報を示す制御信号と同期して送られ、上記制御回路は、送られてきたデータが、最終データであり、かつ現識別情報で示される演算に対するものであることが識別された場合、現在実行中の演算が完了すると、現制御情報、現識別情報をそれぞれ次制御情報、次識別情報で書き換える。
また、本発明では、入力されるデータは、少なくとも描画する対象の表面に関する情報、表面にあたる光に関する情報、過去の演算結果のいずれかである。
本発明によれば、演算器（加算器、乗算器、乗加算器等）を、電気的な接続網で接続し、複数個の演算器からなる演算回路を構成する。
このようにして構成された演算回路に対して、連続してデータを入力し、演算を行うことが可能となる。
また、ツリー状のデータフローグラフで表現される演算を、効率よくかつ少ない回路規模で実現できる接続網を使用して演算回路を構成することができる。
また、本発明によれば、演算回路を使用して、演算をパイプライン状に実行している際に、演算器間の電気的接続を変更する。
このように動的に演算器間の構成を変更することで、遅滞なく異なる演算が行える。
また、個々の演算器に付加されている制御回路が、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える。
また、接続網の個々の接続点に対し付与された制御回路が、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、個々の制御回路が自動的に接続点の制御を切り替える。
発明を実施するための最良の形態
以下、第１の実施形態として、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などのディスプレイ上に高速に表示するグラフィックス処理機能を有する３次元コンピュータグラフィックスシステムとしての画像処理装置について説明する。そしてその後、第２の実施形態として、同様のシステムにおいてグラフィックス処理機能および画像処理機能を有し、複数の処理データを共有して並列処理を行う画像処理装置について説明する。
第１実施形態
図２は、本発明に係る演算装置を採用可能な画像処理装置の第１の実施形態を示すシステム構成図である。本第１の実施形態に係る画像処理装置１０は、グラフィックス処理機能を有する３次元コンピュータグラフィックスシステムとして構成されている。
３次元コンピュータグラフィックスシステムは、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各ピクセルの色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステムでは、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
図２に示すように、３次元コンピュータグラフィックスシステムとしての画像処理装置１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、および本発明に係る演算装置を含む３次元グラフィックス描画装置としてのレンダリング回路１４がメインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ１１は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックスデータを読み出し、このグラフィックスデータに対してクリッピング（Ｃｌｉｐｐｉｎｇ）処理、ライティング（Ｌｉｇｈｔｉｎｇ）処理などのジオメトリ（Ｇｅｏｍｅｔｒｙ）処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１を、メインバス１５を介してレンダリング回路１４に出力する。
Ｉ／Ｏインタフェース回路１３は、必要に応じて、外部から動きに係る制御情報、色に係る演算情報、あるいはポリゴンレンダリングデータ等を入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
レンダリング回路１４に入力されるポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
αデータは、これから描画するピクセルと、レンダリング回路１４のディスプレイバッファに既に記憶されているピクセルとのＲ，Ｇ，Ｂデータのブレンド（混合）係数を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じてテクスチャ座標データ（ｕ，ｖ）が得られる。テクスチャバッファに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
Ｆデータは、フォグのα値を示している。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータを含んでいる。
以下、本発明に係る演算装置を含むレンダリング回路１４について詳細に説明する。
図２に示すように、レンダリング回路１４は、ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）セットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリインタフェース（Ｉ／Ｆ）回路１４４、ＣＲＴコントロール回路１４５、ＲＡＭＤＡＣ回路１４６、ＤＲＡＭ１４７およびＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）１４８を有する。
本実施形態におけるレンダリング回路１４は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するＤＲＡＭ１４７とが混載されている。
本第１の実施形態では、まず、本発明に係る演算装置を適用した３次元グラフィックス描画装置（レンダリング回路１４）の基本的な構成および機能について説明する。
そしてその後、ＤＲＡＭ１４７、ＤＤＡセットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリＩ／Ｆ回路１４４、ＣＲＴコントロール回路１４５、およびＲＡＭＤＡＣ回路１４６の機能について順を追って説明する。
図３は、本発明に係る演算装置を適用した３次元グラフィックス描画装置の基本的な構成を示すブロック図である。
本３次元グラフィックス描画装置２００は、図３に示すように、演算装置２０１、大容量メモリ（ＬＳＩ上ではＤＲＡＭ）２０２、および外部機器とのインターフェース、メモリ２０２へのリード・ライトを制御する制御回路２０３を有する。
これらの構成要素を図２のレンダリング回路１４の構成要素と対応付けると、図３の演算装置２０１は図２のテクスチャエンジン回路１４３に含まれ、メモリ２０２は、ＤＲＡＭ１４７に相当し、制御回路２０３はＤＤＡセットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリＩ／Ｆ回路１４４、ＣＲＴコントロール回路１４５、およびＲＡＭＤＡＣ１４６回路を含む。
制御回路２０３は、外部のＩ／Ｏインターフェース１３から入力されたデータ、またはメモリ２０２に格納されたデータを必要に応じて演算装置２０１に入力し、演算装置２０１から出力されるデータをメモリ２０２に格納する。
このデータは主として、演算の中間データや描画する画素値である。
また、制御回路２０３は、たとえばメモリ２０２の内容を外部インターフェースを経由して出力する。
出力先としてはＴＶ，ＬＣＤディスプレイなどの表示装置であり、本ＬＳＩに接続される場合も、外部に接続された装置を経由して表示する場合もある。
演算装置２０１
演算装置２０１は、制御回路２０３から入力されるデータ、たとえば描画する対象の表面に関する情報（面の方向、色、反射率、模様（テクスチャ）等）、表面にあたる光に関する情報（入射方向、強さなど）、過去の演算結果（演算の中間値）等が一般的である。
演算装置２０１は、複数の演算器を有し、たとえば制御回路２０３やメインプロセッサ１１等の外部回路からの制御により演算経路を再構成可能な演算装置であって、所望の演算を実現するように、内部の演算器間の電気的接続を確立し、制御回路２０３から入力されたデータを、演算器と電気的接続網（インターコネクト）から形成される一連の演算器のデータパスに入力することで演算を行い、演算結果を出力する。
すなわち、演算装置２０１は、再構成可能なデータパスをたとえば複数有し、演算器（加算器、乗算器、乗加算器等）を、電気的な接続網で接続し、複数個の演算器からなる演算回路を構成する。
そして、演算装置２０１は、このようにして再構成された演算回路に対して、連続してデータを入力し、演算を行うことが可能であり、たとえば２入力１出力の逆二分木状のデータフローグラフで表現される演算を、効率よくかつ少ない回路規模で実現できる接続網を使用して演算回路を構成することが可能である。
図４は、演算装置２０１の構成例を示すブロック図である。
本演算装置２０１は、図４に示すように、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）構造を有するレジスタファイル（ＲＦ）２０１１と、演算器プール２０１２を有する。
演算器プール２０１２は、データバスＢＳによりレジスタファイル２０１１とのデータの授受を行う少なくとも一つの（図４の例では４つの）演算部２０１２１〜２０１２４を有する。
各演算部２０１２１〜２０１２４は、複数（図４の例では８個）の演算器（加算器、乗算器、乗加算器等）ＯＰ１〜ＯＰ８と、演算器ＯＰ１〜ＯＰ８との間に電気的な接続を変更可能な接続回路網ＣＣＮを含む。
すなわち、演算装置２０１の基本的な構成は、レジスタファイル２０１１と演算器ＯＰとの間に接続回路網ＣＣＮが存在することである。
また、レジスタファイル２０１１と接続回路網ＣＮＮの間に、値を変換するための回路が存在しても良い。
このように、レジスタファイルを独立して持たせることで、回路量を削減できる。
また、たとえば各グループに１つのレジスタファイルを持つ。
図４の例では、各演算部２０１２１〜２０１２４は、データバスＢＳを介して個別にレジスタファイル２０１１とのデータの授受を行うような構成となっている。ただし、たとえば他の信号ラインで各演算部２０１２１〜２０１２４間を接続して、一の演算部の演算結果を他の演算部で用いて演算を行うように構成する等の態様も可能である。
図５は、本発明に係る接続回路網ＣＣＮの第１の構成例を示す図である。
接続回路網ＣＣＮの構成の特徴は、たとえば２ｎ本の入力バスがある場合、２個の演算器に対してはレジスタファイル２０１１からの一対を入力し、ｎ−２個の演算器に対しては、レジスタファイル２０１１からの一対の入力と、前段（左側）の演算器の出力をセレクタで選択して自段の演算器に入力する。そして、残りの演算器に対しては、レジスタファイル２０１１からの入力バスＬ１１，Ｌ１２を除く入力すべてと、前段（左側）の出力を選択して演算器に入力する。
図５の接続回路網ＣＣＮは、４対、８本の入力バスＬ１１，Ｌ１２、Ｌ２１，Ｌ２２、Ｌ３１，Ｌ３２、およびＬ４１，Ｌ４２を有する構成例である。
図５において、入力バスの所定の交差点において示す黒丸がセレクタを表している。図６に各セレクタの構成例を示す。
なお、図中の線は、束線（２本以上の信号線の集まり）を示している。
また図５は、７つの演算器ＯＰ１〜ＯＰ７を有する構成例を示しており、並列に配置された演算器の入力から出力までをステージＳＴＧ１〜ＳＴＧ７（最終のステージ７の演算器ＯＰ７の出力はレジスタファイルにデータが送られる）として次のような構成となっている。
すなわち、第１ステージＳＴＧ１では、演算器ＯＰ１の入力に対して一対の入力バスＬ１１，Ｌ１２が接続され、演算器ＯＰ１の出力が次段以降（図５の例では第３ステージＳＴＧ３の入力側）に接続されている。
第２ステージＳＴＧ２では、演算器ＯＰ２の入力に対して一対の入力バスＬ２１，Ｌ２２が接続され、演算器ＯＰ２の出力が第３ステージＳＴＧ３の入力側に接続されている。
第３ステージＳＴＧ３では、演算器ＯＰ３の入力に対して一対の入力バスＬ３１，Ｌ３２が接続され、演算器ＯＰ３の出力が第４ステージＳＴＧ４の入力側に接続されている。そして、入力バスＬ３１，Ｌ３２に対して第１ステージＳＴＧ１の演算器ＯＰ１の出力ラインおよび第２ステージＳＴＧ２の演算器ＯＰ２の出力ラインが交差しており、これら４つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第４ステージＳＴＧ４では、演算器ＯＰ４の入力に対して一対の入力バスＬ４１，Ｌ４２が接続され、演算器ＯＰ４の出力が第５ステージＳＴＧ５の入力側に接続されている。そして、入力バスＬ４１，Ｌ４２に対して第１ステージＳＴＧ１の演算器ＯＰ１の出力ライン、第２ステージＳＴＧ２の演算器ＯＰ２の出力ラインおよび第３ステージＳＴＧ３の演算器ＯＰ３の出力ラインが交差しており、これら６つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第５ステージＳＴＧ５では、演算器ＯＰ５に対してレジスタファイル２０１１からの入力バスＬ２１〜Ｌ４２を介する複数の入力と、第１〜第４ステージＳＴＧ１〜ＳＴＧ４の出力を選択して入力されるように、入力バスＬ４２と入力バスＬ２１，Ｌ２２、Ｌ３１，Ｌ３２、Ｌ４１との１０個の交差点、並びに、第１ステージＳＴＧ１の演算器ＯＰ１の出力ライン、第２ステージＳＴＧ２の演算器ＯＰ２の出力ライン、第３ステージＳＴＧ３の演算器ＯＰ３の出力ライン、および第４ステージＳＴＧ４の演算器ＯＰ４の出力ラインが交差する８つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第６ステージＳＴＧ６では、演算器ＯＰ６に対してレジスタファイル２０１１からの入力バスＬ２１〜Ｌ４２を介する複数の入力と、第１〜第５ステージＳＴＧ１〜ＳＴＧ５の出力を選択して入力されるように、入力バスＬ４２と入力バスＬ２１，Ｌ２２、Ｌ３１，Ｌ３２、Ｌ４１との１０個の交差点、並びに、第１ステージＳＴＧ１の演算器ＯＰ１の出力ライン、第２ステージＳＴＧ２の演算器ＯＰ２の出力ライン、第３ステージＳＴＧ３の演算器ＯＰ３の出力ライン、第４ステージＳＴＧ４の演算器ＯＰ４の出力ライン、および第５ステージＳＴＧ５の演算器ＯＰ５の出力ラインが交差する１０個の交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第７ステージＳＴＧ７では、演算器ＯＰ７に対してレジスタファイル２０１１からの入力バスＬ２１〜Ｌ４２を介する複数の入力と、第１〜第６ステージＳＴＧ１〜ＳＴＧ６の出力を選択して入力されるように、入力バスＬ４２と入力バスＬ２１，Ｌ２２、Ｌ３１，Ｌ３２、Ｌ４１との１０個の交差点、並びに、第１ステージＳＴＧ１の演算器ＯＰ１の出力ライン、第２ステージＳＴＧ２の演算器ＯＰ２の出力ライン、第３ステージＳＴＧ３の演算器ＯＰ３の出力ライン、第４ステージＳＴＧ４の演算器ＯＰ４の出力ライン、第５ステージＳＴＧ５の演算器ＯＰ５の出力ライン、および第６ステージＳＴＧ６の演算器ＯＰ６の出力ラインが交差する１２個の交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
図７は、本発明に係る接続回路網ＣＣＮの第２の構成例を示す図である。
この第２の構成例が図５の第１の構成例と異なる点は、いわゆる完全クロスバ型としたことにある。
図５および図７からわかるように、第１の構成例の方が、データフローグラフ構築の自由度を保ちつつ、回路量を削減できる（セレクタを少なくできる）。
図８は、本発明に係る接続回路網ＣＣＮの第３の構成例を示す図である。
図８の接続回路網ＣＣＮは、４対、８本の入力バスＬ１１，Ｌ１２、Ｌ２１，Ｌ２２、Ｌ３１，Ｌ３２、およびＬ４１，Ｌ４２を有し、かつ８つの演算器ＯＰ１〜ＯＰ８を有する構成例を示している。そして、並列に配置された演算器の入力から出力までをステージＳＴＧ１〜ＳＴＧ８（最終のステージ８の演算器ＯＰ８の出力はレジスタファイルにデータが送られる）として次のような構成となっている。
図８において、入力バスの所定の交差点において示す黒丸および白丸がセレクタを表している。図９および図１０に白丸の各セレクタの構成例を示す。
なお、図中の線は、束線（２本以上の信号線の集まり）を示している。
すなわち、第１ステージＳＴＧ１では、演算器ＯＰ１の入力に対して一対の入力バスＬ１１，Ｌ１２が接続され、演算器ＯＰ１の出力が入力バスＬ１１に設けられた白丸のセレクタに接続されている。
第２ステージＳＴＧ２では、演算器ＯＰ２の入力に対して一対の入力バスＬ２１，Ｌ２２が接続され、演算器ＯＰ２の出力が入力バスＬ１２に設けられた白丸のセレクタに接続されている。
第３ステージＳＴＧ３では、演算器ＯＰ３の入力に対して一対の入力バスＬ３１，Ｌ３２が接続され、演算器ＯＰ３の出力が入力バスＬ２１に設けられた白丸のセレクタに接続されている。そして、入力バスＬ３１，Ｌ３２と入力バスＬ１１，Ｌ１２との４つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第４ステージＳＴＧ４では、演算器ＯＰ４の入力に対して一対の入力バスＬ４１，Ｌ４２が接続され、演算器ＯＰ４の出力が入力バスＬ２２に設けられた白丸のセレクタに接続されている。そして、入力バスＬ４１，Ｌ４２と入力バスＬ１１，Ｌ１２，Ｌ２１との６つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第５ステージＳＴＧ５では、演算器ＯＰ５の入力に対して２分岐させた入力バスＬ４２が接続され、演算器ＯＰ５の出力が入力バスＬ３１に設けられた白丸のセレクタに接続されている。そして、２つの入力バスＬ４２と入力バスＬ１１，Ｌ１２，Ｌ２１，Ｌ２２との８つの交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第６ステージＳＴＧ６では、演算器ＯＰ６の入力に対して２分岐させた入力バスＬ４２が接続され、演算器ＯＰ６の出力が入力バスＬ３２に設けられた白丸のセレクタに接続されている。そして、２つの入力バスＬ４２と入力バスＬ１１，Ｌ１２，Ｌ２１，Ｌ２２，Ｌ３１，Ｌ３２，Ｌ４１との１４個の交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第７ステージＳＴＧ７では、演算器ＯＰ７の入力に対して２分岐させた入力バスＬ４２が接続され、演算器ＯＰ７の出力が入力バスＬ４１に設けられた白丸のセレクタに接続されている。そして、２つの入力バスＬ４２と入力バスＬ１１，Ｌ１２，Ｌ２１，Ｌ２２，Ｌ３１，Ｌ３２，Ｌ４１との１４個の交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
第８ステージＳＴＧ８では、演算器ＯＰ８の入力に対して２分岐させた入力バスＬ４２が接続され、演算器ＯＰ７の出力が入力バスＬ４２に設けられた白丸のセレクタに接続されている。そして、２つの入力バスＬ４２と入力バスＬ１１，Ｌ１２，Ｌ２１，Ｌ２２，Ｌ３１，Ｌ３２，Ｌ４１との１４個の交差点にぞれぞれ図６に示すセレクタＳＬＣが配置されている。
図１１は、本発明に係る接続回路網ＣＣＮの第４の構成例を示す図である。
本第４の構成例が図５の第１の構成例と異なる点は、各演算器ＯＰ１〜ＯＰ７の出力にセレクタを設けて、選択的にあらかじめ設定された少なくとも一つのテーブル参照部ＴＢＬに入力させ、テーブル参照部ＴＢＬの出力をセレクタで選択して、入力ラインＬ１１〜Ｌ４２に帰還させるようにしたことにある。
このような構成をとることにより、対数や指数の演算が可能となる。
演算実行の概略
ここで、本発明に係る演算装置２０１の演算実行の概略について、図１２および図１３に関連付けて説明する。
たとえばデータＡ，Ｂ，Ｃ，Ｄをレジスタファイル２０１１から読み、次式のＹに相当する値をレジスタファイル２０１１に書き込むという演算を複数回行う。
Ｙ［ｉ］＝（Ａ［ｉ］＋Ｂ［ｉ］）×（Ｃ［ｉ］＋Ｄ［ｉ］）…  （１）
図１２は、式（１）に示す演算のデータフローグラフを示す。
演算の実行
演算１を実行する機能を有する演算器ＯＰ１と、データＡに相当する値が出力されるレジスタファイル２０１１の出力を、枝０に相当する電気的接続経路である接続０で接続する。
同様に、枝１〜３に相当する接続１から３により、レジスタファイル２０１１のデータＢに相当する出力を演算器ＯＰ１に、データＣ，Ｄに相当する出力を演算器ＯＰ２に接続する。
演算器ＯＰ１の出力を枝４に相当する接続４で、また演算器ＯＰ２の出力を枝５に相当する接続５で、それぞれ演算３を実行する機能を有する演算器ＯＰ３の入力に接続する。
演算器ＯＰ３の出力を、枝６に相当する接続６を経由してレジスタファイル２０１１に入力し、Ｙに相当する値を書き込む経路を確立する。
このようにして、レジスタファイル、演算器の電気的接続を実現し、レジスタファイルから、Ａ［ｉ］，Ｂ［ｉ］，Ｃ［ｉ］，Ｄ［ｉ］に相当するデータを順次読み出し、演算を実行することで、複数個のＡ〜Ｄに対する演算が効率よく実現される。
このようにして実現される演算装置２０１では、演算器間の電気的接続を変更することで、異なる演算に容易に対応できる。
図５の構成の場合、演算器ＯＰ１〜ＯＰ３が用いられ、接続０および接続１は入力バスＬ１１，Ｌ１２に相当し、接続２および接続３は入力バスＬ２１，Ｌ２２に相当する。
図５中に示すセレクタＳＬＣ１で演算器ＯＰ１の演算結果を演算器ＯＰ３に入力させる接続４を形成し、セレクタＳＬＣ２で演算器ＯＰ２の演算結果を演算器ＯＰ３に入力させる接続５を形成する。
そして、演算器ＯＰ３の演算結果をそのままレジスタファイル２０１１に出力するための接続６を形成する。
以上の演算は、図１４に示すようなパイプライン処理で実行される。
なお、図１４（Ａ）はクロックを示し、図１４（Ｂ）のＲＲはレジスタファイル２０１１からデータＡ〜Ｄの読み出し処理を示し、図１４（Ｃ），（Ｅ），（Ｇ）のＩＣは接続網ＣＣＮ経由でのデータ転送処理を示し、図１４（Ｄ）のＡｄｄ１／０は演算器ＯＰ１、ＯＰ２による演算処理を示し、図１４（Ｆ）のｍｕｌは演算器ＯＰ３よる演算処理を示し、図１４（Ｈ）のＷＢはレジスタファイル２０１１への演算結果の書き込み処理を示している。
本発明に係る演算装置２０１は、上述したようにデータパスを動的に再構築可能である。
これにより、演算装置２０１は、演算回路を使用して、演算をパイプライン状に実行している際に、演算器間の電気的接続を変更することが可能である。
また、前記のように動的に演算器間の構成を変更することで、遅滞なく異なる演算が行える。
また、演算装置２０１は、個々の演算器に対して付加されている制御回路が、次に行うべき演算に関する情報を保持し、一連の演算の終了を検出した際に、自動的に次の演算に向けた制御に切り替える機能を有する。
そして、演算装置２０１では、接続網ＣＣＮの個々の接続点に対し付与された制御回路が、次にとるべき接続構成に関する情報を保持し、一連のデータ転送の終了を検出した際に、個々の制御回路が自動的に接続点の制御を切り替える機能を有する。
次に、動的再構築の実現方法について説明する。
動的再構築の実現方法１
まず、図１５および図１６に関連付けて動的再構築の第１の実現方法について説明する。
この場合、図１５に示すように、各演算器ＯＰに対する制御回路３０１は、現在の制御情報（現制御情報）ＣＩＦＭと、次に行うべき制御に関する情報（次制御情報）ＮＩＦＭの２つを保持する。
そして、演算データＯＰＤＴは、それが演算に使用する最終データであることが識別可能な制御信号ＣＴＬと同期して送られてくる。
制御回路３０１は、最終データであることが識別された場合、現在実行中の演算の完了と同時に、現制御情報ＣＩＦＭを次制御情報ＮＩＦＭで書き換える。
これにより、演算回路の制御を変更することが可能であり、異なる演算を実行することが可能となる。
接続回路網ＣＣＮに関しても同様であり、図１５に示すように、制御信号ＣＴＬにより最終データであることが識別された場合、制御回路３０１は、現在実行中のデータ転送の完了と同時に、現制御情報ＣＩＦＭを次制御情報ＮＩＦＭで書き換える。
これにより、接続回路網の制御を変更することが可能であり、異なる電気的接続を実現することが可能となる。
次に、図１７〜図１９に関連付けて動的再構築の第２の実現方法について説明する。
動的再構築の実現方法２
前述したような、演算器（演算回路）と接続回路網からなる演算装置を使用して、異なる演算を連続して実行する場合、図１７に示すように、演算１と演算２が時間的に重複する区間（演算１と演算２の重複区間）が生じる。
この間、演算回路と接続回路網上には異なる演算に対するデータが同時に存在する。
この区間では、演算１の最終データが、演算回路上に存在する一方で、一部の回路は演算２に対応する制御が行われている。
そのため、演算１の最終データが、演算２を行っている演算器または、演算２に対応する制御となっている接続網制御回路に到達した場合、それらが演算の終了と認識して演算２に対する制御から演算３に対する制御に切り替わり、以後の残りの演算２に対する演算が正常に行われない可能性がある。
これに対処した動的再構築の実現例を以後述べる。
この場合、図１８に示すように、各演算器ＯＰに対する制御回路３０２は、現在の制御情報（現制御情報）ＣＩＦＭと現在実行中の演算を識別するための情報（現識別情報）ＣＤＳＣと、次に行うべき制御に関する情報（次制御情報）ＮＩＦＭと、次に実行する演算を識別するための情報（次識別情報）ＮＤＳＣを保持する。
演算データＯＰＤＴは、それが、演算に使用する最終データであることが識別可能な情報、およびそのデータが演算１に対するものか、演算２に対するものかを識別可能な情報を示す制御信号ＣＴＬと同期して送られてくる。
制御回路３０２は、送られてきたデータが、最終データであり、かつ現識別情報ＣＤＳＣで示される演算に対するものであることが識別された場合、現在実行中の演算の完了と同時に、現制御情報ＣＩＦＭ、現識別情報ＣＤＳＣをそれぞれ次制御情報ＮＩＦＭ、次識別情報ＮＤＳＣで書き換える。
これにより、継続して入力されてくるデータに対し、異なる演算に適切なタイミングで切り替えることが可能となる。
接続回路網ＣＣＮに関しても同様であり、図１９に示すように、現在実行中のデータ転送の完了と同時に、現制御情報ＣＩＦＭ、現識別情報ＣＤＳＣをそれぞれ次制御情報ＮＩＦＭ、次識別情報ＮＤＳＣで書き換える。
これにより、継続して入力されてくるデータに対し、異なる電気的接続に適切なタイミングで切り替えることが可能となる。
次に、本発明に係る演算装置２０１において、実際に拡散による画素色への寄与成分を形成する場合について図２０および図２１に関連付けて説明する。
図２０は、演算装置２０１における演算部２０１２１をデータバスＢＳと異なる信号ラインにより３つの演算部２０１２２〜２０１２４を並列に接続した構成を有する演算器プール２０１２のマッピングを示す図である。
演算部２０１２１Ａ，２０１２２Ａが図５と異なる点は、前段の演算器の出力を次段の演算器の入力に直接入力されていることにある。この例では、演算部２０１２１Ａ，２０１２２Ｂの演算器ＯＰ２〜ＯＰ７は３入力１出力の構成を有している。
なお、図２０では、図面の簡単化のため、演算部２０１２３，２０１２４は省略している。
図２１は、拡散光成分の計算に対するデータフロー図である。
ここでは、次の計算を行う。
Ｙ｜＝（｜Ｌ・Ｎ｜）×｜Ｋｄ×｜Ｃｄ                  …（２）
ここで、｜Ｃｄは拡散光の色を表すベクタ値、｜Ｋｄは反射率を表すベクタ値、｜Ｌは拡散光の入射方向を示すベクトル、Ｎ｜は描画する画素の法線ベクトルをそれぞれ表している。
▲１▼スカラ値×ベクタ値の例
上記式（２）で（｜Ｌ・Ｎ｜）はベクタ｜ＬとＮ｜の内積であり、次式で求まるスカラ値となる。
（｜Ｌ・Ｎ｜）＝｜Ｌｘ×Ｎ｜ｘ＋｜Ｌｙ×Ｎ｜ｙ＋｜Ｌｚ×Ｎ｜ｚ                                                    …（３）
この値を｜Ｋｄ，｜Ｃｄの各色成分毎の積の各々に対して乗じて求める。
（｜Ｌ・Ｎ｜）をＤとおくと、色の３原色ＲＧＢ（ｒｇｂ）について拡散色成分を演算部２０１２２〜２０１２４で計算する。
Ｙ｜ｒ＝Ｄ×（｜Ｋｄｒ×｜Ｃｄｒ）
Ｙ｜ｇ＝Ｄ×（｜Ｋｄｇ×｜Ｃｄｇ）
Ｙ｜ｂ＝Ｄ×（｜Ｋｄｂ×｜Ｃｄｂ）
上記の例では、各演算部２０１２１Ａ〜１２１２４Ａの第１〜第３のステージの３つの演算器ＯＰ１〜ＯＰ３を用いて演算を行っている。図２０において、太線で示すラインがデータの入出力経路である。
具体的には、演算部２０１２１Ａにおいて、ＬおよびＮのｘ成分Ｌｘ，Ｎｘが演算器ＯＰ１に入力されて乗算され、この乗算結果Ｌｘ・Ｎｘが演算器ＯＰ２に入力される。演算器ＯＰ２には、ＬおよびＮのｙ成分Ｌｙ，Ｎｙが入力されて乗算され、この乗算結果Ｌｙ・Ｎｙに演算器ＯＰ１の乗算結果Ｌｘ・Ｎｘが加算され、この加算結果（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ）が演算器ＯＰ３に入力される。演算器ＯＰ３には、ＬおよびＮのｚ成分Ｌｙ，Ｎｚが入力されて乗算され、この乗算結果Ｌｚ・Ｎｚに演算器ＯＰ１の演算結果（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ）が加算され、この加算結果（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ＋Ｌｚ・Ｎｚ）が他の演算部２０１２２Ａ，２０１２３Ａ，２０１２４Ａに出力され、それぞれ各演算部２０１２２Ａ，２０１２３Ａ，２０１２４Ａの演算器ＯＰ３に入力される。
演算部２０１２２Ａにおいては、拡散光の色のｒ成分Ｃｄｒと反射率のｒ成分Ｋｄｒが演算器ＯＰ１に入力されて乗算され、この乗算結果Ｃｄｒ・Ｋｄｒが演算器ＯＰ３に入力される。演算器ＯＰ３には演算部２０１２１Ａの演算器ＯＰ３の出力（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ＋Ｌｚ・Ｎｚ）が入力されており、演算器ＯＰ１の出力Ｃｄｒ・Ｋｄｒとが乗算されて輝度Ｙのｒ成分Ｙｒが生成され、レジスタファイル２０１１に出力される。
演算部２０１２３Ａにおいては、拡散光の色のｇ成分Ｃｄｇと反射率のｇ成分Ｋｄｇが演算器ＯＰ１に入力されて乗算され、この乗算結果Ｃｄｇ・Ｋｄｇが演算器ＯＰ３に入力される。演算器ＯＰ３には演算部２０１２１Ａの演算器ＯＰ３の出力（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ＋Ｌｚ・Ｎｚ）が入力されており、演算器ＯＰ１の出力Ｃｄｇ・Ｋｄｇとが乗算されて輝度Ｙのｇ成分Ｙｇが生成され、レジスタファイル２０１１に出力される。
演算部２０１２４Ａにおいては、拡散光の色のｂ成分Ｃｄｂと反射率のｂ成分Ｋｄｂが演算器ＯＰ１に入力されて乗算され、この乗算結果Ｃｄｂ・Ｋｄｂが演算器ＯＰ３に入力される。演算器ＯＰ３には演算部２０１２１Ａの演算器ＯＰ３の出力（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ＋Ｌｚ・Ｎｚ）が入力されており、演算器ＯＰ１の出力Ｃｄｂ・Ｋｄｂとが乗算されて輝度Ｙのｂ成分Ｙｂが生成され、レジスタファイル２０１１に出力される。
次に、一つの接続回路網において、演算回路の動的な再構築について、図２２および図２３に関連付けて説明する。
なお、ここでは、図８の接続回路網ＣＣＮを例に説明する。
まず、プライマリのｒ，ｇ，ｂ成分Ｐｒ，Ｐｇ，Ｐｂを生成する場合には、レジスタファイル２０１１から、プライマリカラーのｒ成分ＰＣｒとアンビエントのｒ成分ＡＭｒが演算器ＯＰ１に入力され、プライマリカラーのｇ成分ＰＣｇとアンビエントのｇ成分ＡＭｇが演算器ＯＰ２に入力され、プライマリカラーのｂ成分ＰＣｂとアンビエントのｂ成分ＡＭｂが演算器ＯＰ３に入力され、各演算器ＯＰ１，ＯＰ２，ＯＰ３の演算結果がレジスタファイル２０１１に転送されるように各セレクタの制御が行われる。さらに、演算器ＯＰ１，ＯＰ２，ＯＰ３においては、入力された２つのデータに対して加算を行うように制御される。
そして、演算器ＯＰ１において、プライマリカラーのｒ成分ＰＣｒとアンビエントのｒ成分ＡＭｒが加算され、この加算結果ＰＣｒ＋ＡＭｒがＰｒとしてレジスタファイル２０１１に転送される。同様に、演算器ＯＰ２において、プライマリカラーのｇ成分ＰＣｇとアンビエントのｇ成分ＡＭｇが加算され、この加算結果ＰＣｇ＋ＡＭｇがＰｇとしてレジスタファイル２０１１に転送される。演算器ＯＰ３において、プライマリカラーのｂ成分ＰＣｂとアンビエントのｂ成分ＡＭｂが加算され、この加算結果ＰＣｂ＋ＡＭｂがＰｂとしてレジスタファイル２０１１に転送される。
次に、拡散光の入射方向を示すベクトルＬと、描画する画素の法線ベクトルＮとの内積を求める場合には、ＬおよびＮのｘ成分Ｌｘ，Ｎｘが演算器ＯＰ１に入力され、演算器ＯＰ１の出力が演算器ＯＰ４に入力され、ＬおよびＮのｙ成分Ｌｙ，Ｎｙが演算器ＯＰ２に入力され、演算器ＯＰ２の出力が演算器ＯＰ４に入力され、ＬおよびＮのｚ成分Ｌｚ，Ｎｚが演算器ＯＰ３に入力され、演算器ＯＰ３の出力が演算器ＯＰ５に入力され、演算器ＯＰ４の出力が演算器ＯＰ５に入力され、演算器ＯＰ５の出力がレジスタファイル２０１１に転送されるように、各セレクタが制御される。さらに、演算器ＯＰ１，ＯＰ２，ＯＰ３においては、入力された２つのデータに対して乗算を行うように制御され、演算器ＯＰ４，ＯＰ５においては、入力された２つのデータに対して加算を行うように制御される。
そして、演算器ＯＰ１において、ＬおよびＮのｘ成分Ｌｘ，Ｎｘが乗算され、この乗算結果Ｌｘ・Ｎｘが演算器ＯＰ４に入力される。演算器ＯＰ２にいては、ＬおよびＮのｙ成分Ｌｙ，Ｎｙが乗算され、この乗算結果Ｌｙ・Ｎｙが演算器ＯＰ４に入力される。演算器ＯＰ３においては、ＬおよびＮのｚ成分Ｌｙ，Ｎｚが乗算され、この乗算結果Ｌｚ・Ｎｚが演算器ＯＰ５に入力される。演算器ＯＰ４においては、演算器ＯＰ１の出力Ｌｘ・Ｎｘと演算器ＯＰ２の出力Ｌｙ・Ｎｙが加算され、この演算結果（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ）が演算器ＯＰ５に入力される。演算器ＯＰ５においては、演算器ＯＰ４の出力（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ）と演算器ＯＰ３の出力Ｌｚ・Ｎｚ）が加算され、この加算結果（Ｌｘ・Ｎｘ＋Ｌｙ・Ｎｙ＋Ｌｚ・Ｎｚ）、すなわち所望の演算結果Ｎ・Ｌがレジスタファイル２０１１に転送される。
以上が本発明に係る演算装置２０１の構成および機能である。
以下に、ＤＲＡＭ１４７、ＤＤＡセットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリＩ／Ｆ回路１４４、ＣＲＴコントロール回路１４５、およびＲＡＭＤＡＣ回路１４６の機能について順を追って説明する。
ＤＲＡＭ１４７
ＤＲＡＭ１４７は、テクスチャバッファ１４７ａ、ディスプレイバッファ１４７ｂ、ｚバッファ１４７ｃおよびテクスチャＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）バッファ１４７ｄとして機能する。
また、ＤＲＡＭ１４７は、同一機能を有する複数（４個あるいは８個等）のモジュールに分割されている。
本実施形態においては、ＤＲＡＭ１４７は、たとえば図２４に示すように、４つのＤＲＡＭモジュール１４７１〜１４７４に分割されている。ＤＲＡＭモジュール１４７１〜１４７４の各々は、たとえば５１２のページアドレス（行アドレス）を有する。
メモリＩ／Ｆ回路１４４には、各ＤＲＡＭモジュール１４７１〜１４７４に対応したメモリコントローラ１４４１〜１４４４、並びにこれらメモリコントローラ１４４１〜１４４４にデータを分配するディストリビュータ１４４５が設けられている。
そして、メモリＩ／Ｆ回路１４４は、各ＤＲＡＭモジュール１４７１〜１４７４に対して、図２４に示すように、ピクセルデータを、表示領域において隣接した部分は、異なるＤＲＡＭモジュールとなるように配置する。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのＤＲＡＭモジュールの動作確率は非常に高くなっている。
また、ＤＲＡＭ１４７には、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャＣＬＵＴバッファ１４７ｄに格納されている。
インデックスおよびカラールックアップテーブル値は、テクスチャ処理に使われる。すなわち、通常はＲ，Ｇ，Ｂそれぞれ８ビットの合計２４ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば２５６色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデータとすることが可能となる。
これにより、テクスチャデータの圧縮が可能となり、内蔵ＤＲＡＭ１４７の効率良い利用が可能となる。
さらにＤＲＡＭ１４７には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、メモリブロックの先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。これにより、テクスチャデータを効率よく格納できることになる。
以下に、本実施形態に係る同一半導体チップ内に混載されるレンダリング回路１４のロジック回路とＤＲＡＭ１４７およびＳＲＡＭ１４８等からなる２次メモリとの好適な構成、配置および配線方法について、図２５および図２６に関連付けて説明する。
後述するように描画処理においては、最終的にはピクセルの一つ一つのアクセスにまで集約されてくることになる。したがって、ピクセル一つ一つの処理が同時並行処理されることにより、描画性能は並行処理の数だけ増加できることが理想である。
そのために、本３次元コンピュータグラフィックスシステムにおけるメモリシステムを構成するメモリＩ／Ｆ回路１４４においても、同時並行処理が行える構成がとられている。
グラフィックス描画処理においては、ピクセルを書き込む処理等を行う処理回路は、ＤＲＡＭと頻繁にデータのやりとりを行う必要がある。
そのため、本実施形態では、図２５に示すように、ピクセル処理を制御する機能ブロックであるピクセル処理モジュール１４４６，１４４７，１４４８，１４４９をメモリコントローラから物理的に分離し、かつ、これらピクセル処理モジュール１４４６，１４４７，１４４８，１４４９を対応するＤＲＡＭモジュール１４７１，１４７２，１４７３，１４７４の近くに配置（近接配置）している。
ピクセル処理モジュール１４４６，１４４７，１４４８，１４４９は、（Ｒ，Ｇ，Ｂ）カラーのリード（Ｒｅａｄ）／モディファイ（Ｍｏｄｉｆｙ）／ライト（Ｗｒｉｔｅ）処理および、隠面処理のための以前に描画している深さ（奥行き）データと、今から描画しようとしているデータの深さを比較して、その結果により書き戻したりする作業に関する処理を全て行う。
これら作業をすべてピクセル処理モジュール１４４６，１４４７，１４４８，１４４９で行うことで、ＤＲＡＭモジュール１４７１，１４７２，１４７３，１４７４との配線長が短いモジュール内で、ＤＲＡＭとのやりとりを完結することが可能となる。
そのため、ＤＲＡＭとの配線数、すなわち、転送のビット数を多くとっても、面積に対する配線が占める割合を、少なく抑えることができることから、動作速度向上および、配線面積の縮小化が可能となっている。
ディストリビュータ等を含むＤＲＡＭ間制御モジュール１４５０に関しては、描画処理としての、ＤＤＡセットアップ回路１４１のＤＤＡセットアップ演算、トライアングルＤＤＡ回路１４２のトライアングルＤＤＡ演算、テクスチャエンジン回路１４３のテクスチャ貼り付け、並びに、ＣＲＴコントロール回路１４５による表示処理等に比較して、それぞれのＤＲＡＭモジュール（ＤＲＡＭ＋ピクセル処理）との関連も強く、ＤＲＡＭモジュール１４７１，１４７２，１４７３，１４７４との間の信号線が最も多くなるところである。
そのため、ＤＲＡＭ間制御モジュール１４５０は、それぞれのＤＲＡＭモジュール１４７１，１４７２，１４７３，１４７４の中心付近に配置して、最長配線長ができるだけ短くなるように考慮している。
また、ピクセル処理モジュール１４４６，１４４７，１４４８，１４４９とＤＲＡＭ間制御モジュール１４５０との接続のための信号入出力端子については、図３に示すように、それぞれのピクセル処理モジュール１４４６，１４４７，１４４８，１４４９における入出力端子を同じにするのではなく、個々のピクセル処理モジュールと、ＤＲＡＭ間制御モジュール１４５０間が最適（最短）に配線されるように、個々のピクセル処理モジュールにおける信号の入出力端子位置を調整してある。
具体的には、ピクセル処理モジュール１４４６は、図２５においてモジュール下縁部の右端側に入出力端子Ｔ１４４６ａが形成されている。そして、この入出力端子Ｔ１４４６ａがＤＲＡＭ間制御モジュール１４５０の上縁部の左端側に形成された入出力端子Ｔ１４５０ａと対向するように配置されて、両端子Ｔ１４４６ａおよびＴ１４５０ａが最短距離をもって接続されている。
そして、ピクセル処理モジュール１４４６には、図２５において上縁部の中央部にＤＲＡＭモジュール１４７１との接続用入出力端子Ｔ１４４６ｂが形成されている。
ピクセル処理モジュール１４４７は、図２５においてモジュール下縁部の左端側に入出力端子Ｔ１４４７ａが形成されている。そして、この入出力端子Ｔ１４４７ａがＤＲＡＭ間制御モジュール１４５０の上縁部の右端側に形成された入出力端子Ｔ１４５０ｂと対向するように配置されて、両端子Ｔ１４４７ａおよびＴ１４５０ｂが最短距離をもって接続されている。
そして、ピクセル処理モジュール１４４７には、図２５において上縁部の中央部にＤＲＡＭモジュール１４７２との接続用入出力端子Ｔ１４４７ｂが形成されている。
ピクセル処理モジュール１４４８は、図２５においてモジュール上縁部の右端側に入出力端子Ｔ１４４８ａが形成されている。そして、この入出力端子Ｔ１４４８ａがＤＲＡＭ間制御モジュール１４５０の下縁部の左端側に形成された入出力端子Ｔ１４５０ｃと対向するように配置されて、両端子Ｔ１４４８ａおよびＴ１４５０ｃが最短距離をもって接続されている。
そして、ピクセル処理モジュール１４４８には、図２５において下縁部の中央部にＤＲＡＭモジュール１４７３との接続用入出力端子Ｔ１４４８ｂが形成されている。
ピクセル処理モジュール１４４９は、図２５においてモジュール上縁部の左端側に入出力端子Ｔ１４４９ａが形成されている。そして、この入出力端子Ｔ１４４９ａがＤＲＡＭ間制御モジュール１４５０の下縁部の右端側に形成された入出力端子Ｔ１４５０ｄと対向するように配置されて、両端子Ｔ１４４９ａおよびＴ１４５０ｄが最短距離をもって接続されている。
そして、ピクセル処理モジュール１４４９には、図２５において下縁部の中央部にＤＲＡＭモジュール１４７４との接続用入出力端子Ｔ１４４９ｂが形成されている。
なお、ピクセル処理モジュール１４４６，１４４７，１４４８，１４４９は、各ＤＲＡＭモジュール１４７１，１４７２，１４７３，１４７４からＤＲＡＭ間制御モジュール１４５０に至る経路を、上記のようにして最適な長さにしても、処理速度要求が満足できない処理に関しては、たとえばレジスタで分断した少なくとも１段のパイプライン処理をとり得、所望の処理速度を達成できるように構成されている。
また、本実施形態に係るＤＲＡＭモジュール１４７１〜１４７４は、たとえば図２６に示すように構成されている。なお、ここでは、ＤＲＡＭモジュール１４７１を例に説明するが、他のＤＲＡＭモジュール１４７２〜１４７４も同様の構成を有することから、その説明は省略する。
ＤＲＡＭモジュール１４７１は、図２６に示すように、メモリセルがマトリクス状に配置され、ロウアドレスＲＡ、カラムアドレスＣＡに基づいて選択される図示しないワード線およびビット線を通してアクセスされるＤＲＡＭコア１４８０、ロウデコーダ１４８１、センスアンプ１４８２、カラムＲ／Ｗデコーダ１４８３、およびＳＲＡＭ等からなるいわゆるキャッシュメモリと同様の機能を備えた２次メモリ１４８４を有している。
本実施形態のように、ＤＲＡＭモジュール毎に、グラフィックス描画におけるピクセル処理を制御する機能ブロックとしてのピクセル処理モジュール１４４６〜１４４９と、ＤＲＡＭモジュールの２次メモリ１４８４とがＤＲＡＭモジュールに近接配置されている。
そして、この場合、ＤＲＡＭのいわゆる長辺方向が、ＤＲＡＭコア１４８０のカラム方向になるように配置されている。
図２６の構成においてランダムな読み出し（リード）に関して見てみると、ピクセル処理モジュール１４４６から制御信号と必要なアドレス信号Ｓ１４４６が、アドレス制御パスからＤＲＡＭモジュール１４７１に供給され、それをもとに、ロウアドレスＲＡとカラムアドレスＣＡが生成され、所望のロウに相当するＤＲＡＭのデータがセンスアンプ１４８２を通して読み出される。
センスアンプ１４８２を通ったデータは所望のカラムアドレスＣＡに従って、カラムデコーダにて必要なカラムが集約され、ランダムアクセスポートから所望のロウ／カラムに対応した、ＤＲＡＭのデータＤ１４７１がパスを介してピクセル処理モジュール１４４６に転送される。
２次メモリにデータを書き込む場合は、ピクセル処理モジュール１４４６から制御信号と必要なアドレス信号Ｓ１４４６が、アドレス制御パスからＤＲＡＭモジュール１４７１に供給され、それをもとにロウアドレスのみが生成され、１ロウ分のデータが一気にＤＲＡＭからＳＲＡＭ１４８等からなる２次メモリ１４８４に書き込まれる。
この場合、ＤＲＡＭのいわゆる長辺方向が、ＤＲＡＭコア１４８０のカラム方向になるように配置されていることから、ロウ方向に配置する場合に比較して、ロウアドレス指定のみで、そのロウアドレスに対応している１ロウ分のデータを、一度に２次メモリ１４８４にロードできるビット数が格段に増加する。
また、テクスチャ処理モジュールとしてのテクスチャエンジン回路１４３への２次メモリ（ＳＲＡＭ）１４８４からのデータＤ１４８４の読み込みは、テクスチャエンジン回路１４３から、制御信号と必要なアドレス信号が、アドレス制御パスからＤＲＡＭに供給され、それに対応したデータＤ１４８４がデータパスを介してテクスチャエンジン回路１４３へ転送される。
また、本実施形態においては、図２６に示すように、ピクセル処理モジュールとＤＲＡＭモジュールの２次メモリとが、それぞれ互いにＤＲＡＭモジュールの長辺側の同一側に近接配置されている。
これにより、ピクセル処理モジュールとＤＲＡＭモジュールの２次メモリへのデータは、同一のセンスアンプを使うことができるため、ＤＲＡＭコア１４８０の面積増加を最小限に抑えて２ポート化することが可能となっている。
メモリＩ／Ｆ回路１４４
メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３から入力したピクセルデータＳ１４３に対応するｚデータと、ｚバッファ１４７ｃに記憶されているｚデータとの比較を行い、入力したピクセルデータＳ１４３によって描画される画像が、前回、ディスプレイバッファ１４７ｂに書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データＳ１４３に対応するｚデータでｚバッファ１４７ｃに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４４は、（Ｒ，Ｇ，Ｂ）データをディスプレイバッファ１４７ｂに書き込む（打ち込む）。
なお、メモリＩ／Ｆ回路１４４によるＤＲＡＭ１４７に対してのアクセスは、１６ピクセルについて同時に行われる。
ＤＤＡセットアップ回路１４１
ＤＤＡセットアップ回路１４１は、後段のトライアングルＤＤＡ回路１４２において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各ピクセル（画素）の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１４１は、算出した変分データＳ１４１をトライアングルＤＤＡ回路１４２に出力する。
ＤＤＡセットアップ回路１４１の機能について図２７に関連付けてさらに説明する。
上述したように、ＤＤＡセットアップ回路１４１の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報（色、テクスチャ座標）の与えられた三頂点により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎データを算出することである。
なお、三角形の各頂点データは、たとえばｘ，ｙ座標が１６ビット、ｚ座標が２４ビット、ＲＧＢカラー値が各１２ビット（＝８＋４）、ｓ，ｔ，ｑテクスチャ座標は各３２ビット浮動少数値（ＩＥＥＥフォーマット）で構成される。
三角形の描画は水平ラインの描画に集約されるが、そのために水平ラインの描画開始点における最初の値を求める必要がある。
この水平ラインの描画においては、一つの三角形の中でその描画方向は一定にする。たとえば左から右へ描画する場合は、左側の辺におけるＹ方向変位に対するＸおよび上記各種の変分を算出しておいて、それを用いて頂点から次の水平ラインに移った場合の最も左の点のｘ座標と、上記各種情報の値を求める（辺上の点はＹ，Ｘ両方向に変化するのでＹ方向の傾きのみでは計算できない。）。
右側の辺に関しては終点の位置がわかればよいので、Ｙ方向変位に対するｘの変分のみを調べておけばよい。
水平ラインの描画に関しては、水平方向の傾きは同一三角形内では均一なので、上記各種情報の傾きを算出しておく。
与えられた三角形をＹ方向にソートして最上位の点をＡとする。次に残りの２頂点のＸ方向の位置を比較して右側の点をＢとする。こうすることで、処理の場合分け等が２通り程度にできる。
トライアングルＤＤＡ回路１４２
トライアングルＤＤＡ回路１４２は、ＤＤＡセットアップ回路１４１から入力した変分データＳ１４１を用いて、三角形内部の各ピクセルにおける線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データを算出する。
トライアングルＤＤＡ回路１１は、各ピクセルの（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データとを、ＤＤＡデータ（補間データ）Ｓ１４２としてテクスチャエンジン回路１４３に出力する。
たとえば、トライアングルＤＤＡ回路１４２は、並行して処理を行う矩形内に位置する８（＝２×４）ピクセル（画素）分のＤＤＡデータＳ１４２をテクスチャエンジン回路１４３に出力する。
トライアングルＤＤＡ回路１４２の機能について図２８に関連付けてさらに説明する。
上述したように、ＤＤＡセットアップ回路１４１により、三角形の各辺と水平方向における先出の各種情報の傾き情報が準備され、この情報を受けたトライアングルＤＤＡ回路１４２の基本的処理は、三角形の辺上の各種情報の補間処理による水平ラインの初期値の算出と、水平ライン上での各種情報の補間処理である。
ここで最も注意しなければならないことは、補間結果の算出は、ピクセル中心における値を算出する必要があるということである。
その理由は、算出する値がピクセル中心からはずれたところを求めていては、静止画の場合はさほど気にならないが、動画にした場合には、画像の揺らぎが目立つようになるからである。
最初の水平ライン（当然ピクセル中心を結んだライン）の一番左側における各種情報は、辺上の傾きに頂点からその最初の水平ラインまでの距離をかけてやることで求めることができる。
次のラインにおける開始位置での各種情報は、辺上の傾きを足してゆくことで算出できる。
水平ラインにおける最初のピクセルでの値は、ラインの開始位置における値に、最初のピクセルまでの距離と水平方向の傾きをかけた値を足すことで算出できる。水平ラインにおける次のピクセルにおける値は、最初のピクセルの値に対してつぎつぎに水平方向の傾きを足し込んでゆけば算出できる。
次に、頂点のソートについて図２９に関連付けて説明する。
頂点をあらかじめソートしておくことで、以降の処理の場合分けを最大限に減らし、かつ、補間処理においてもできるだけ一つの三角形の内部においては、矛盾が生じにくくすることができる。
ソートのやり方としては、まずすべての与えられた頂点をＹ方向にソートして、最上位の点と最下位の点を決めそれぞれＡ点、Ｃ点とする。残りの点はＢ点とする。
このようにすることで、Ｙ方向に最も長く伸びた辺が辺ＡＣとなり、最初に辺ＡＣと辺ＡＢを用いてその二つの辺で挟まれた領域の補間処理を行い、次に辺ＡＣはそのままで、辺ＡＢに変えて辺ＢＣと辺ＡＣで挟まれた領域の補間を行うという処理になる。また、Ｙ方向のピクセル座標格子上への補正に関しても、辺ＡＣと辺ＢＣについて行っておけばよいこともわかる。
このようにして、ソート後の処理に場合分けが不必要になることで、データを単純に流すだけの処理で可能となりバグも発生しにくくなるし、構造もシンプルになる。
また、一つの三角形の中で補間処理の方向が辺ＢＣ上を開始点として一定にできるため、水平方向の補間（Ｓｐａｎ）の方向が一定となり、演算誤差があったとしても辺ＢＣから他の辺に向かって誤差が蓄積されるかたちとなり、その蓄積の方向が一定となるため、隣接する辺同士での誤差は目立たなくなる。
次に、水平方向の傾き算出について図３０に関連付けて説明する。
三角形内における各種変数（ｘ，ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）の（ｘ，ｙ）に対する傾き（変数分）は、線形補間であることから一定となる。
したがって、水平方向の傾き、すなわち、各水平ライン（Ｓｐａｎ）上での傾きはどのＳｐａｎにおいても、一定となるので、各Ｓｐａｎの処理に先立ってその傾きを求めておくことになる。
三角形の与えられた頂点をＹ方向にソートした結果、辺ＡＣが最も長く伸びた辺と再定義されているので、頂点Ｂを水平方向に伸ばしたラインと辺ＡＣの交点が必ず存在するのでその点をＤとする。
後は単純に点Ｂと点Ｄの間の変分を求めるようなことを行えば、水平方向すなわちｘ方向の傾きを求めることができる。
具体的には、Ｄ点でのｘおよびｚ座標は次式のようになる。
ｘｄ＝｛（ｙｄ−ｙａ）／（ｙｃ−ｙａ）｝・（ｘｃ−ｘａ）
ｚｄ＝｛（ｙｄ−ｙａ）／（ｙｃ−ｙａ）｝・（ｚｃ−ｚａ）
これに基づいて、変数ｚのｘ方向の傾きを求めると、次のようになる。
Δｚ／Δｘ＝（ｚｄ−ｚｂ）／（ｘｄ−ｘｂ）
＝〔｛（ｙｄ−ｙａ）／（ｙｃ−ｙａ）｝・（ｚｃ−ｚａ）−ｚｂ〕
／〔｛（ｙｄ−ｙａ）／（ｙｃ−ｙａ）｝・（ｘｃ−ｘａ）−ｘｂ〕
＝｛ｚｂ（ｙｃ−ｙａ）−（ｚｃ−ｚａ）（ｙｃ−ｙａ）｝
／｛ｘｂ（ｙｃ−ｙａ）−（ｚｃ−ｚａ）（ｙｃ−ｙａ）｝
次に、頂点データの補間手順の一例について、図３１Ａ，３１Ｂおよび図３２に関連付けて説明する。
頂点のソート、水平方向の傾き算出、各辺上での傾きの算出処理を経て、それらの結果を使って補間処理を行う。
Ｂ点の位置によって、Ｓｐａｎでの処理の向きは２通りに別れる。これは、一つの三角形の内部での補間における各Ｓｐａｎ同士での誤差の蓄積方向を、一定にすることで、できるだけ不具合が発生しないようにするために、Ｙ方向に最も長く伸びた辺を常に始点として、処理するようにしようとしているからである。
Ｂ点がＡ点と同じ高さにあった場合には、前半の処理はスキップされることになる。よって、場合分けというよりは、スキップが可能な機構を設けておくだけで処理としてはすっきりしたものとできる。
複数のＳｐａｎを同時処理することで、処理能力をあげようとした場合には、Ｙ方向における傾きを求めたくなるが、頂点のソートからやり直す必要があることになる。しかしながら、補間処理の前処理だけでことが済むために、全体としての処理系は簡単にできる。
具体的には、Ｂ点がＡ点と同じ高さでない場合には、ＡＣ，ＡＢのＹ方向補正（画素（ピクセル）格子上の値算出）を行い（ＳＴ１，ＳＴ２）、ＡＣ辺上の補間およびＡＢ辺上の補間を行う（ＳＴ３）。
そして、ＡＣ水平方向の補正およびＡＣ辺からＡＢ辺方向の水平ライン（Ｓｐａｎ）上を補間する（ＳＴ４）。
以上のステップＳＴ３，ＳＴ４の処理をＡＢ辺の端点まで行う（ＳＴ５）。
ＡＢ辺の端点までステップＳＴ２〜ＳＴ４の処理が終了した場合、あるいはステップＳＴ１においてＢ点がＡ点が同じ高さであると判別した場合には、ＢＣのＹ方向補正（画素格子上の値算出）を行い（ＳＴ６）、ＡＣ辺上の補間およびＢＣ辺上の補間を行う（ＳＴ７）。
そして、ＡＣ水平方向の補正およびＡＣ辺からＢＣ辺方向の水平ライン（Ｓｐａｎ）上を補間する（ＳＴ８）。
以上のステップＳＴ７，ＳＴ８の処理をＢＣ辺の端点まで行う（ＳＴ９）。
テクスチャエンジン回路１４３
テクスチャエンジン回路１４３は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ１４７ａからの（Ｒ，Ｇ，Ｂ）データの読み出し処理等を順にパイプライン方式で行う。
なお、テクスチャエンジン回路１４３は、たとえば所定の矩形内に位置する８ピクセルについての処理を同時に並行して行う。
テクスチャエンジン回路１４３は、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４３には、たとえば図示しない除算回路が８個設けられており、８ピクセルについての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。
また、テクスチャエンジン回路１４３は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４３は、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはＤＲＡＭ１４７に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはテクスチャバッファ１４７ａに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８を得る。
ここで、ＳＲＡＭ１４８には、テクスチャバッファ１４７ａに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路１４３は、読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとを、それぞれかけあわせるなどして、ピクセルデータＳ１４３を生成する。
テクスチャエンジン回路１４３は、このピクセルデータＳ１４３をメモリＩ／Ｆ回路１４４に出力する。
なお、テクスチャバッファ１４７ａには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
テクスチャエンジン回路１４３は、フルカラー方式の場合には、テクスチャバッファ１４７ａから読み出した（Ｒ，Ｇ，Ｂ）データを直接用いる。
一方、テクスチャエンジン回路１４３は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル（ＣＬＵＴ）をテクスチャＣＬＵＴバッファ１４７ｄから読み出して、内蔵するＳＲＡＭに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ１４７ａから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
ＣＲＴコントロール回路１４５
ＣＲＴコントロール回路１４５は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示するアドレスを発生し、ディスプレイバッファ１４７ｂから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。この要求に応じて、メモリＩ／Ｆ回路１４４は、ディスプレイバッファ１４７ｂから一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４５は、ディスプレイバッファ１４７ｂから読み出した表示データを記憶するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１４６に、ＲＧＢのインデックス値を出力する。
ＲＡＭＤＡＣ回路１４６
ＲＡＭＤＡＣ回路１４６は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４５から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１４６は、この生成されたＲ，Ｇ，Ｂデータを図示しないＣＲＴに出力する。
次に、図２の３次元コンピュータグラフィックスシステムの全体の動作を説明する。
３次元コンピュータグラフィックスシステム１０においては、グラフィックス描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、描画しようとしているピクセルと対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のＤＤＡセットアップ回路１４１に入力される。
ＤＤＡセットアップ回路１４１においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データＳ１４１が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データＳ１４１としてトライアングルＤＤＡ回路１４２に出力される。
トライアングルＤＤＡ回路１４２においては、変分データＳ１４１を用いて、、三角形内部の各ピクセルにおける線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４２として、トライアングルＤＤＡ回路１４２からテクスチャエンジン回路１４３に出力される。
テクスチャエンジン回路１４３においては、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
次に、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４を介して、テクスチャエンジン回路１４３からＳＲＡＭ１４８に、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８に記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８が読み出される。
次に、テクスチャエンジン回路１４３において、読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとが、かけあわされ、ピクセルデータＳ１４３として生成される。
このピクセルデータＳ１４３は、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に出力される。
フルカラーの場合には、テクスチャバッファ１４７ａからのデータ（Ｒ，Ｇ，Ｂ）を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル（Ｃｏｌｏｒ  Ｉｎｄｅｘ  Ｔａｂｌｅ）のデータが、テクスチャＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）バッファ１４７ｄより、ＳＲＡＭ等で構成される一時保管バッファへ転送され、この一時保管バッファのＣＬＵＴを用いてカラーインデックスから実際のＲ，Ｇ，Ｂカラーが得られる。
なお、ＣＬＵＴがＳＲＡＭで構成された場合は、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際のＲ，Ｇ，Ｂカラーが出てくるといった使い方となる。
そして、メモリＩ／Ｆ回路１４４において、テクスチャエンジン回路１４３から入力したピクセルデータＳ１４３に対応するｚデータと、ｚバッファ１４７ｃに記憶されているｚデータとの比較が行われ、入力したピクセルデータＳ１４３によって描画される画像が、前回、ディスプレイバッファ１４７ｂに書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データＳ１４３に対応するｚデータでｚバッファ１４７ｃに記憶されたｚデータが更新される。
次に、メモリＩ／Ｆ回路１４４において、（Ｒ，Ｇ，Ｂ）データがディスプレイバッファ１４７ｂに書き込まれる。
メモリＩ／Ｆ回路１４４においては、今から描画しようとしているピクセルにおけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読み出し要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
描画においても同様に、今から描画しようとしているピクセルアドレスに対応するピクセルデータを格納しているメモリブロックに対して、該当アドレスからピクセルデータがモディファイ書き込み（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
隠れ面処理を行う場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
このようなメモリＩ／Ｆ回路１４４に基づくＤＲＡＭ１４７とのデータのやり取りにおいては、それまでの処理が複数並行処理される。これにより、描画性能を向上させることができる。
特に、トライアングルＤＤＡ回路１４２とテクスチャエンジン１４３の部分を並列実行形式で、同じ回路に設ける（空間並列）か、または、パイプラインを細かく挿入する（時間並列）ことで、部分的に動作周波数を増加させるという手段により、複数ピクセルの同時算出が行われる。
また、ピクセルデータは、メモリＩ／Ｆ回路１４４の制御のもと、表示領域において隣接した部分は、異なるＤＲＡＭモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。このため、それぞれのＤＲＡＭモジュールの動作確率は非常に高い。
そして、図示しないＣＲＴに画像を表示する場合には、ＣＲＴコントロール回路１４５において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４４へ表示データ転送の要求が出される。
メモリＩ／Ｆ回路１４４では、その要求に従い、一定のまとまった固まりで、表示データがＣＲＴコントロール回路１４５に転送される。
ＣＲＴコントロール回路１４５では、図示しないディスプレイ用ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）等にその表示データが貯えられ、一定の間隔でＲＡＭＤＡＣ１４６へＲＧＢのインデックス値が転送される。
ＲＡＭＤＡＣ１４６においては、ＲＡＭ内部にＲＧＢのインデックスに対するＲＧＢ値が記憶されていて、インデックス値に対するＲＧＢ値が図示しないＤ／Ａコンバータへ転送される。
そして、Ｄ／Ａコンバータでアナログ信号に変換されたＲＧＢ信号がＣＲＴへ転送される。
以上説明したように、本第１の実施形態によれば、レジスタファイル（ＲＦ）２０１１と、演算器プール２０１２を有する演算装置２０１であって、演算器プール２０１２は、データバスＢＳによりレジスタファイル２０１１とのデータの授受を行う少なくとも一つの演算部２０１２１〜２０１２４を有し、各演算部２０１２１〜２０１２４は、複数の演算器（加算器、乗算器、乗加算器等）ＯＰ１〜ＯＰ８と、演算器ＯＰ１〜ＯＰ８との間に電気的な接続を変更可能、レジスタファイル２０１１と演算器ＯＰとの間に存在する接続回路網ＣＣＮを含むことから、各種の演算に対応でき、かつ開発時点で想定されていなかった演算方式にも容易に対応できる、かつ、３次元グラフィックにおいて、実時間での描画に十分な描画能力を発揮することができる。
また、複数に分割されたＤＲＡＭモジュール１４７１〜１４７４を、グラフィックス描画処理等を行うロジック回路部分の周辺部に配置したことから、同時にアクセスしなければならない場合に比較して、一回のアクセスでのビット線に占める有効データの割合が増加し、また、それぞれのＤＲＡＭモジュール１４７１〜１４７４からロジック回路部分までの距離が均一になり、固めて一方向に並べる場合に比較して、最も長くなるパス配線の長さを短くできる。そのため、全体での動作速度を向上できる利点がある。
また、ＤＲＡＭモジュール１４７１〜１４７４毎に、グラフィックス描画におけるピクセル処理を制御する機能ブロックとしてのピクセル処理モジュール１４４６〜１４４９を近接配置したので、グラフィックス描画において非常に回数多く行われる、リード（Ｒｅａｄ）／モディファイ（Ｍｏｄｉｆｙ）／ライト（Ｗｒｉｔｅ）処理が非常に短い配線領域で可能となる。このため、動作速度を飛躍的に向上させることができる。
また、ピクセル処理モジュールとＤＲＡＭモジュールの２次メモリとを、それぞれ互いにＤＲＡＭモジュールの長辺側の同一側に近接配置したので、ピクセル処理モジュールから２次メモリへのデータ転送を非常に幅の広いパスで行っても、いわゆるクロストーク（Ｃｒｏｓｓ  Ｔａｌｋ）の影響も少なく、当然配線長も短いため、動作速度が向上する。また、配線が占める面積も小さくなる。
また、ピクセル処理モジュールと２次メモリへのデータは、同一のセンスアンプを使うことができる。このため、ＤＲＡＭコアの面積増加を最小限に抑えてポート化することが可能となる。
また、ピクセル処理モジュール１４４６〜１４４９は、その内部に少なくとも１段以上の、パイプライン制御が行われることから、その他の描画処理を行う中央に配置されるブロックまでの距離が、平均的に長くなったとしても、データを処理するスループットに影響を与えなくできるため、処理速度が向上する。
さらに、半導体チップ内部に内蔵されたＤＲＡＭ１４７に、表示データと少なくとも一つの図形要素が必要とするテクスチャデータを記憶させた構成を有することから、表示領域以外の部分にテクスチャデータを格納できることになり、内蔵ＤＲＡＭの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、アーキテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているＤＲＡＭのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、ＤＲＡＭにおいても特殊な処理を組み込むことが可能となる。
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるＤＲＡＭのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュールが同時に処理できる確率が増加し、描画性能の向上が可能となる。
また、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値を内蔵ＤＲＡＭ１４７内部に格納するので、テクスチャデータの圧縮が可能となり、内蔵ＤＲＡＭの効率良い利用が可能となる。
また、描画しようとしている物体の奥行き情報を、内蔵のＤＲＡＭに格納するので、描画と同時並行的に隠れ面処理を行うことが可能となる。
描画を行って、通常はそれを表示しようとするわけだが、ユニファイドメモリとして、テクスチャデータと表示データを同一のメモリシステムに同居させることができることから、直接表示に使わずに、描画データをテクスチャデータとして使ってしまうということも可能となる。
このようなことは、必要なときに必要なテクスチャデータを、描画によって作成する場合に有効となり、これもテクスチャデータを膨らませないための効果的な機能となる。
また、チップ内部にＤＲＡＭを内蔵することで、その高速なインターフェース部分がチップの内部だけで完結することになるため、大きな付加容量のＩ／Ｏバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
なお、本発明は上述した実施形態には限定されない。
また、上述した図２に示す３次元コンピュータグラフィックスシステムとしての画像処理装置１０では、ＳＲＡＭ１４８を用いる構成を例示したが、ＳＲＡＭ１４８を設けない構成にしてもよい。
さらに、図２に示す３次元コンピュータグラフィックスシステムとしての画像処理装置１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
第２実施形態
図３３は、本発明に係る演算装置を採用可能な画像処理装置の第２の実施形態を示すブロック構成図である。本第２の実施形態に係る画像処理装置４００は、グラフィックス処理機能および画像処理機能を有し、複数の処理データを共有して並列処理を行う画像処理装置として構成されている。
この画像処理装置４００は、図２のグラフィックスシステムに対応付けると、レンダリング回路１４の部分に相当する。
本画像処理装置４００は、図３３に示すように、処理ユニットとしての第１のグラフィックスユニット（Ｌ１ＣＧ）４０１、コア部４０２、キャッシュ（たとえばＳＲＡＭ）４０３−１〜４０３−ｍ、およびＥＤＲＡＭ４０４を有している。
第１のグラフィックスユニット４０１は、グラフィックス処理の場合、三角形の頂点データに基づいてラスタライゼーションを行い、生成したピクセルデータをコア部４０２に供給する。
第１のグラフィックスユニット４０１において生成されるピクセルデータには、プライマリカラー（Ｐｒｉｍａｒｙ  Ｃｏｌｏｒ：ＰＣ）、セカンダリカラー（Ｓｅｃｏｎｄａｒｙ  Ｃｏｌｏｒ：ＳＣ）、アンビエント（Ａｍｂｉｅｎｔ）、拡散係数、スペキュラ係数、シャイニネ係数、テクスチャ座標、ライトベクトル、ハーフベクトル等の各種データが含まれる。
第１のグラフィックスユニット４０１は、画像処理の場合には、たとえば図２のメインバス１５を介して図示しない上位装置、たとえば図２のメインプロセッサ１１から供給されたＥＤＲＡＭ４０４から画像データを読み出すためのソースアドレスおよび画像処理結果を書き込むためのデスティネーションアドレスの生成に必要なコマンドやデータ、たとえば探索矩形領域の幅、高さデータ、ブロックサイズデータを入力し、入力データに基づいて、ソースアドレスを生成するとともに、デスティネーションアドレス（Ｘｄ，Ｙｄ）を生成し、コア部４０２に供給する。
第１のグラフィックスユニット４０１は、図２のレンダリング回路１４のＤＤＡセットアップ回路１４１とトライアングルＤＤＡ回路１４２の機能を併せ持つ。
すなわち、第１のグラフィックスユニット４０１は、いわゆるラスタライゼーションに必要な各種データ（ｚ，テクスチャ座標、カラーなど）の傾き等のＤＤＡパラメータの算出を行う機能を有する。
具体的には、物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各ピクセル（画素）の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。そして、算出した変分データを用いて、三角形内部の各ピクセルにおける線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データを算出する。
第１のグラフィックスユニット４０１は、各ピクセルの（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ，α，Ｆ）データとを算出する。
コア部４０２は、本発明に係る演算装置を適用した演算処理部であり、コア４０２は第１のグラフィックスユニット４０１により各種データが供給される。
コア部４０２は、ストリームデータに対して演算処理を行う以下の機能ユニットを有している。
すなわち、コア部４０２は、第２のグラフィックスユニット（Ｌ２ＣＧ）４０２１、複数（ｋ個、ｋはたとえば４または８）の演算ユニット（ＯＰＵ）を並列に配置した複数（たとえばｍ個）の演算ユニット群４０２２−１〜４０２２−ｍを有している。
コア部４０２は、たとえばデータフローグラフ（Ｄａｔａ  Ｆｌｏｗ  Ｇｒａｐｈ：ＤＦＧ）に応じてこれらの機能ユニット間の接続を切り替えることにより様々なアルゴリズムに対応する。
さらに、コア部４０２は、一つの演算ユニットＯＰＵに対して２個ずつで、２ｋ個のＦＩＦＯレジスタ（ＦＩＦＯ  ＲＥＧ）構造のストリームレジスタＳＲを有し、各演算ユニット群４０２２−１〜４０２２−ｍに対応して配置されたｍ個のストリームレジスタ群４０２３−１〜４０２３−ｍ、および各ストリームレジスタ群４０２３−１〜４０２３−ｍに対応して配置されたクロスバー回路（Ｘ−ｂａｒ）４０２４−１〜４０２４−ｍを有している。
そして、コア部４０２は、図３４に示すように、演算ユニット群４０２２−１、ストリームレジスタ群４０２３−１、クロスバー回路４０２４−１、およびＳＲＡＭキャッシュ４０３−１を含めてＯＰＵブロックＢＬＫ１が構成されている。同様に、演算ユニット群４０２２−２、ストリームレジスタ群４０２３−２、クロスバー回路４０２４−２、およびＳＲＡＭキャッシュ４０３−２を含めてＯＰＵブロックＢＬＫ２が構成されている。そして、演算ユニット群４０２２−ｍ、ストリームレジスタ群４０２３−ｍ、クロスバー回路４０２４−ｍ、およびＳＲＡＭキャッシュ４０３−ｍを含めてＯＰＵブロックＢＬＫｍが構成されている。
このように、コア部４０２においては、一つの第２のグラフィックスユニット４０２１に対してｍ個のＯＰＵブロックＢＬＫ１〜ＢＬＫｍが並列に配置されている。
第２のグラフィックスユニット４０２１は、図２のレンダリング回路１４のテクスチャエンジン回路１４３の機能を併せ持つ。
すなわち、第２のグラフィックスユニット４０２１は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ１４７ａからの（Ｒ，Ｇ，Ｂ）データの読み出し処理等を順にパイプライン方式で行う。
具体的には、第２のグラフィックスユニット４０２１は、（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
第２のグラフィックスユニット４０２１は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、第２のグラフィックスユニット４０２１は、メモリＩ／Ｆ回路（たとえばＥＤＲＡＭ４０４に含まれる）を介して、ＳＲＡＭキャッシュ４０３−１〜４０３−ｍあるいはＥＤＲＡＭ４０４に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路を介して、ＳＲＡＭキャッシュ４０３−１〜４０３−ｍあるいはＥＤＲＡＭ４０４から、テクスチャバッファ１４７ａに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データを得る。
第２のグラフィックスユニット４０２１は、グラフィックス処理に関連するものとして、パースペクティブコレクション（Ｐｅｒｓｐｅｃｔｉｖｅ  Ｃｏｒｒｅｃｔｉｏｎ）、ＭＩＰＭＡＰレベル算出等の機能を有する。
第２のグラフィックスユニット４０２１は、第一のグラフィックスユニット４０１により供給された正規化テクセル座標（ｓ，ｔ，ｑ）および／または演算ユニット群４０２２−１〜４０２２−ｍ内の演算ユニットＯＰＵにより供給された正規化テクセル座標（ｓ，ｔ）に基づいて、パースペクティブコレクション、ＬＯＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出、立体マップ（Ｃｕｂｅ  Ｍａｐ）の面選択やテクスチャ座標データ（ｕ，ｖ）の算出処理を行い、たとえばテクスチャ座標データ（ｕ，ｖ）およびＬＯＤデータ（ｌｏｄ）を含むグラフィックスデータをメモリＩ／Ｆ回路に対し出力する。
演算ユニット群４０２２−１〜４０２２−ｍを構成する各演算ユニットＯＰＵは、ストリームデータ処理を行う機能ユニットであって、内部に複数の演算器およびセレクタを有する。
各演算ユニット群４０２２−１〜４０２２−ｍを構成する各演算ユニットＯＰＵ内の演算パイプに対しては、描画対象に関する情報や演算ユニット群あるいは隣接の演算ユニットＯＰＵにおける演算結果が、たとえばクロスバー回路４０２４−１〜４０２４−ｍにより所望のストリームレジスタＳＲに設定された後、クロスバー回路４０２４−１〜４０２４−ｍを介さず、ストリームレジスタ群４０２３−１〜４０２３−ｍを介して直接的に供給される。
演算ユニット群４０２２−１〜４０２２−ｍに入力されるデータとしては、たとえば描画する対象の表面に関する情報（面の方向、色、反射率、模様（テクスチャ）等）、表面にあたる光に関する情報（入射方向、強さなど）、過去の演算結果（演算の中間値）等が一般的である。
各演算ユニットＯＰＵは、複数の演算器を有し、たとえば外部からの制御により演算経路を再構成可能な演算ユニットであって、所望の演算を実現するように、内部の演算器間の電気的接続を確立し、入力されたデータを、演算器と電気的接続網（インターコネクト）から形成される一連の演算器のデータパスに入力することで演算を行い、演算結果を出力する。
すなわち、演算ユニットＯＰＵは、再構成可能なデータパスをたとえば複数有し、演算器（加算器、乗算器、乗加算器等）を、電気的な接続網で接続し、複数個の演算器からなる演算回路を構成する。
そして、演算ユニットＯＰＵは、このようにして再構成された演算回路に対して、連続してデータを入力し、演算を行うことが可能であり、たとえばツリー状のＤＦＧ（データフローグラフ）で表現される演算を、効率よくかつ少ない回路規模で実現できる接続網を使用して演算回路を構成することが可能である。
図３５は、演算ユニット群４０２２−１（〜４０２２−ｍ）の演算ユニットＯＰＵの具体的な構成例を示す回路図である。
なお、図３５の構成では、各演算ユニットＯＰＵに対応して設けられている２個のストリームレジスタＳＲ１，ＳＲ２は、演算ユニットＯＰＵに内蔵され、一体的に構成されている。
各演算ユニットＯＰＵは、図３５に示すように、演算パイプ５０１と、３つの２入力セレクタ５０２〜５０４、並びにストリームレジスタＳＲ１，ＳＲ２を有している。
演算ユニットＯＰＵ内の２入力セレクタ５０２〜５０４は、ＯＰＵ内またはＯＰＵブロック内に存在する図示しない制御レジスタに設定されたデータにより制御される。制御レジスタの値は、所望の演算を実行するようなデータ伝播経路を実現する値がセットされる。
演算パイプ５０１は、再構成可能なデータパスをたとえば複数有し、演算器（加算器、乗算器、乗加算器等）を、電気的な接続網で接続し、複数個の演算器からなる演算回路を構成する。
演算パイプ５０１の出力はセレクタ５０３，５０４の一方の入力に供給される。セレクタ５０２の一方の入力は、第１のグラフィックスユニット４０１あるいは第２のグラフィックスユニット４０２によるデータが供給され、他方の入力には隣接（図３５の例では右隣）の演算ユニットＯＰＵのストリームレジスタＳＲ１の出力が供給される。セレクタ５０２の出力はセレクタ５０３の他方の入力およびセレクタ５０４の他方の入力に供給される。セレクタ５０３の出力がストリームレジスタＳＲ１の一方の入力ポートに供給され、セレクタ５０４の出力がストリームレジスタＳＲ２の一方の入力ポートに供給される。
ストリームレジスタＳＲ１の他方の入力ポートにはクロスバー回路４０２４−１（４０２４−２〜４０２４−ｍ）を介したデータが供給され、一方の出力ポートから保持データが演算パイプ５０１に供給され、他方の出力ポートから保持データが第２のグラフィックスユニット４０２１および隣接（図３５の例では左隣）の演算ユニットＯＰＵのセレクタ５０２に供給される。
ストリームレジスタＳＲ２の他方の入力ポートにはクロスバー回路４０２４−１（４０２４−２〜４０２４−ｍ）を介したデータが供給され、一方の出力ポートから保持データが演算パイプ５０１に供給され、他方の出力ポートから保持データがクロスバー回路４０２４−１（４０２４−２〜４０２４−ｍ）に供給される。
演算ユニット５０１は、基本演算として、減算、乗算、加算、およびアキュムレト（Ａｃｃ）等の演算処理を組み合わせて、たとえば以下の各種演算処理を行う。
・（Ａ±Ｂ）×Ｃ±Ｂ
・（Ａ±Ｂ）×Ｃ±Ａｃｃ
・（Ａ±Ｂ）２±Ａｃｃ
・Ａ±Ｂ±Ｃ
・Ａ±Ｂ±Ａｃｃ
・Ａ×Ｂ
・論理演算（たとえばＡＮＤ，ＯＲ，ＮＯＴ）
・ソースオペランドへの定数設定（１〜２個）
・クランプ（Ｃｌａｍｐ）／サチュレーション（Ｓａｔｕｒａｔｉｏｎ）
・ソースデータの１，２ビット左シフト
・演算結果の算術１，２，８ビット右シフト
図３６は、上記の各種演算処理を行う演算パイプの具体的な構成例を示す回路図である。
演算パイプ５０１は、図３６に示すように、加減算器６０１、ＰＰＧ（Ｐａｒｔｉａｌ  Ｐｒｏｄｕｃｔ  Ｇｅｎｅｒａｔｏｒ）／ＣＳＡ（Ｃａｒｒｙ  Ｓａｖｅ  Ａｄｄｅｒ）６０２、加減算器６０３、論理演算器６０４、アキュムレータ６０５、左シフタ（Ｌ−Ｓｈｉｆｔ）６０６、右シフタ（Ｒ−Ｓｈｉｆｔ）６０７、クランプ（Ｃｌａｍｐ）／サチュレーション（Ｓａｔ）回路６０８、３入力セレクタ６０９〜６１３、４入力セレクタ６１４，６１５、および２入力セレクタ６１６〜６２０を有している。
演算パイプ５０１内の３入力セレクタ６０９〜６１３、４入力セレクタ６１４，６１５、および２入力セレクタ６１６〜６２０は、演算ユニットＯＰＵまたはＯＰＵブロック内に存在する図示しない制御レジスタの設定データにより制御される。
この演算パイプ５０１においては、３入力セレクタ６０９〜６１１に対して、セレクタ５０２の出力、ストリームレジスタＳＲ１の１出力、およびストリームレジスタＳＲ２の出力が供給され、演算パイプ５０１の演算結果であるクランプ（Ｃｌａｍｐ）／サチュレーション（Ｓａｔ）回路６０８の出力がセレクタ５０３，５０４に供給される。
左シフタ（Ｌ−Ｓｈｉｆｔ）６０６では、セレクタ６１２により選択されるパラメータ０，１，２に応じて２ｎの演算が行われる。また、右シフタ（Ｒ−Ｓｈｉｆｔ）６０７では、セレクタ６１５により選択されるパラメータ０，１，２，８に応じて１／２ｎの演算が行われる。
３入力セレクタ６０９の出力は加減算器６０１および２入力セレクタ６１９の一方の入力に供給される。３入力セレクタ６１０の出力は２入力セレクタ６１６，６２０、および４入力セレクタ６１４の第１入力に供給される。３入力セレクタ６１１の出力は左シフタ（Ｌ−Ｓｈｉｆｔ）６０６に供給される。また、２入力セレクタ６１７の一方の入力に選択データのＭＳＢ８ビットが、他方の入力にＬＳＢの８ビットが入力される。セレクタ６１８の一方の入力のＭＳＢの８ビットにはセレクタ６１７から出力される８ビットの値が入力され、同入力のＬＳＢの８ビットには、セレクタ６１１の出力のＬＳＢの８ビットが入力される。
２入力セレクタ６１６の他方の入力にはパラメータ０が供給され、その出力が加減算器６０１の他方の入力に供給される。加減算器６０１の出力は２入力セレクタ６１８の他方の入力およびＰＰＧ／ＣＳＡ６０２の一方の入力に供給され、セレクタ６１８の出力がＰＰＧ／ＣＳＡ６０２の他方の入力に供給される。ＰＰＧは乗算の為の部分積を生成する。この部分積をワラス等で知られるツリー状に構成したＣＳＡで加算していくことで、一方の出力にキャリー出力が出力され、他方の出力にサム出力が出力される。この二つの出力を加減算器６０３で加算することにより乗算結果が得られる。
ＰＰＧ／ＣＳＡ６０２の一方の出力（キャリー出力）が２入力セレクタ６１９の他方の入力に供給され、他方の出力が２入力セレクタ６２０の他方の入力（サム出力）に供給される。
４入力セレクタ６１４の第２入力にはパラメータ０が供給され、第３入力に左シフタ（Ｌ−Ｓｈｉｆｔ）６０６の出力が供給され、第４入力にアキュムレータ６０５の出力が供給される。
２入力セレクタ６１９の出力が加減算器６０３の第１入力および論理演算器６０４の一方の入力に供給され、２入力セレクタ６２０の出力が加減算器６０３の第２入力および論理演算器６０４の他方の入力に供給され、４入力セレクタ６１４の出力が加減算器６０３の第３入力に供給される。
加減算器６０３の出力がアキュムレータ６０５および３入力セレクタ６１３の第１入力に供給され、論理演算器６０４の出力が３入力セレクタ６１３の第２入力に供給され、セレクタ６１３の第３入力にアキュムレータ６０５の出力が供給される。
そして、セレクタ６１３の出力が右シフタ（Ｒ−Ｓｈｉｆｔ）６０７に供給され、右シフタ（Ｒ−Ｓｈｉｆｔ）６０７の出力が（Ｃｌａｍｐ）／サチュレーション（Ｓａｔ）回路６０８に供給される。
図３７は、ストリームレジスタＳＲの具体的な構成例を示す図であり、図３８Ａ，図３８Ｂは、ストリームレジスタの動作を説明するための図である。なお、図３８Ａは演算結果が出力されない場合の例であり、図３８Ｂは演算結果が出力される場合の例である。
ストリームレジスタＳＲは、ソースデータと演算結果の格納の両方に用いられる。これにより、ＦＩＦＯエントリの有効活用を図っている。
ストリームレジスタＳＲは、図３７に示すように、入力側（ライト側）には２つの入力（ライト）ポートである第１入力ポートＰＴＩ１および第２入力ポートＰＴＩ２を有している。同様に、ストリームレジスタＳＲは、出力側（リード側）には２つの出力（リード）ポートである第１出力ポートＰＴＯ１および第２出力ポートＰＴＯ２を有している。
第１入力ポートＰＴＩ１は、セレクタ５０３，５０４を介した演算パイプ５０１の演算結果または隣接の演算ユニットＯＰＵからの直接フォワーディングのライトを行う。第２入力ポートＰＴＩ２は、クロスバー回路４０２４−１（〜４０２４−ｍ）からのデータのライトを行う。
また、第１出力ポートＰＴＯ１は、演算パイプ５０１側へソースデータを読み出す。第２出力ポートＰＴＯ２は、ポインタの操作により演算結果をリード（リザルトフォワーディング）し、また、ソースデータをリード（ソースフォワーディング）する。
ストリームレジスタＳＲの記憶領域本体の動作としては、図３８Ａ，図３８Ｂに示すように、ソースデータが読まれた空いた領域に演算結果を書き込む。そして、入力ＦＩＦＯ兼出力ＦＩＦＯとして機能する。
図３８Ａ，図３８Ｂ中、左からＦＩＦＯ内の所定領域を指している矢印のうち、図中、上側に記載されている矢印は第１入力ポートＰＴＩ１からのライト動作を示し、下側に記載されている矢印は第２入力ポートＰＴＩ２からのライト動作を示している。
また、ＦＩＦＯ内の所定領域から図中右側に出力しているように記載されている矢印のうち上側に記載されている矢印が第１出力ポートＰＴＯ１へのリード動作を示し、下側に記載されている矢印が第２出力ポートＰＴＯ２からのリード動作を示している。
図３９は、クロスバー回路の構成例を示す回路図である。
この例では、１つのＯＰＵブロックに４個の演算ユニットＯＰＵが配置されている場合を示している。図３９においても、演算ユニットＯＰＵ内にストリームレジスタＳＲが内蔵されている。
クロスバー回路は、コア部４０１が、ＤＦＧに応じて機能ユニット間の接続を替えることにより様々なアルゴリズムに対応可能なように、この接続切り替えを実現する。
このクロスバー回路４０２４は、隣接のＯＰＵブロックのクロスバー回路からのデータの入力ラインＬ１０１，各ＯＰＵからの出力データの供給ラインＬ１０２〜Ｌ１０５、図４３に示されるクロスバー回路への下方からのデータ供給ラインＬ１０６〜Ｌ１１３、並びに、隣接のＯＰＵブロックのクロスバー回路とのデータ授受ラインＬ１１４と，各ＯＰＵに対する出力ラインＬ１１５〜Ｌ１２２が配線され、図中、縦方向に配線されたラインＬ１０１〜Ｌ１１３と横方向に配線されたラインＬ１１４〜Ｌ１２２との全交差点に、第１のデータ選択回路（黒丸で示している）ＤＳＬ１が配置されている。
また、ラインＬ１１５〜Ｌ１２２には、伝播データを対応する演算ユニットＯＰＵに入力させる第２のデータ選択回路（白丸で示している）ＤＳＬ２が配置されている。
図４０は、第１のデータ選択回路ＤＳＬ１の構成例を示す回路図である。
図４０中、ｂ０〜ｂ１５は束線入力の各ビットを示し、縦方向に配線された各ビットラインＢ０〜Ｂ１５と横方向に配線されたラインＢＬ０〜ＢＬ１５とが、選択信号ＳＥＬに応じて導通制御されるスイッチＳＷ０〜ＳＷ１５により接続されている。
この第１のデータ選択回路ＤＳＬ１では、選択信号ＳＥＬがアクティブのときの全スイッチＳＷ０〜ＳＷ１５が導通状態となり、ビットデータｂ０〜ｂ１５がラインＢ０〜Ｂ１５からラインＢＬ０〜ＢＬ１５に伝播され、転送される。
また、図４１は、第２のデータ選択回路ＤＳＬ２の構成例を示す回路図である。
第２のデータ選択回路ＤＳＬ２は、図４１に示すように、ラインＢＬ０〜ＢＬ１５を伝播された束線入力を無条件にビットデータｏｂ０〜ｏｂ１５として対応する演算ユニットＯＰＵに入力させる。
たとえばテクスチャデータ等はメモリから出力された順で演算に使用されるとは限らないことから、図４２に示すように、上述した構成を有するクロスバー回路２０２４−１〜２０２４−ｍを制御して、各入力データｐ０〜ｐ７を適切な演算ユニットＯＰＵの入力へと伝播させる。
図４３および図４４は、キャッシュの構成、機能を説明するための図であって、図４３はリード系を示し、図４４はライト系を示している。
図４３および図４４に示すようにキャッシュ４０３−１〜４０３−ｍは、図２のＳＲＡＭ１４８に相当するテクスチャメモリＴＥＸＭと、図２のメモリＩ／Ｆ回路１４４内（あるいはＥＤＲＡＭの制御系内）に存在するバッファメモリＢＵＦＭにより構成される。
図４３は、キャッシュ４０３−１〜４０３−ｍに格納されているＥＤＲＡＭ４０４のフレームバッファのキャッシュまたは第１のグラフィックスユニット４０１からのＤＤＡ入力であるカラー値やベクタ値、他のＯＰＵブロックでバイリニアフィルタリングされた後のテクスチャ値等が読み出され、クロスバー回路４０２４に入力される経路を示している。
図中の３段接続されたセレクタＳＬＣ１０１〜ＳＬＣ１０３，ＳＬＣ１０４〜ＳＬＣ１０６，ＳＬＣ１０７〜ＳＬＣ１０９，ＳＬＣ１１０〜ＳＬＣ１１２は、図２におけるメモリＩ／Ｆ回路１４４の一部として設けられ、同回路内に存在する図示しない制御レジスタの設定データによりデータ、具体的には、テクスチャメモリＴＥＸＭのデータか、バッファメモリＢＵＦＭのデータか、ＥＤＲＡＭ４０４からの読み出しデータか、ＤＤＡデータかを選択するように制御される。
そして、選択データがクロスバー回路４０２４に供給される。
また、他のＯＰＵブロックからのデータやフィルタ係数とＤＤＡ入力との選択をするセレクタＳＬＣ１１３〜ＳＬＣ１１６が設けられている。セレクタＳＬＣ１１３〜ＳＬＣ１１６も、図示しない制御レジスタの設定データにより制御される。
また、図４４に示すライト系に関しては、ＥＤＲＡＭ４０４からの読み出しデータは、テクスチャ読み出しの場合には、テクスチャメモリＴＥＸＭに書き込まれる。
フレームバッファＦＢやｚバッファの場合には、バッファメモリＢＵＦＭに書き込まれる。
また、データバッファとして使用する場合には、各ＯＰＵブロックが担当する役割に応じて第１のグラフィックスユニット４０１からのＤＤＡ入力であるカラー値やベクタ値、他のＯＰＵブロックで４近傍フィルタリングされた後のテクスチャ値等が格納される。
図中の３段接続されたセレクタＳＬＣ１２１〜ＳＬＣ１２３，ＳＬＣ１２４〜ＳＬＣ１２６，ＳＬＣ１２７〜ＳＬＣ１２９，ＳＬＣ１３０〜ＳＬＣ１３２は、図２におけるメモリＩ／Ｆ回路１４４の一部として設けられ、同回路内に存在する図示しない制御レジスタの設定データにより制御され、選択データがバッファメモリＢＵＦＭに供給される。
以上の構成を有するコア部４０２においては、たとえばグラフィックス処理時に、クロスバー回路４０２４を介して所望のストリームレジスタＳＲに設定され、ストリームレジスタＳＲから直接的に入力された演算ユニットＯＰＵにおける演算結果データ、並びに、第１のグラフィックスユニット４０１により所望のストリームレジスタＳＲに設定され、ストリームレジスタＳＲから直接的に入力されたプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、Ｆｏｇ係数（Ｆ）に基づいて、たとえばピクセルシェーダ（ＰｉｘｅｌＳｈａｄｅｒ）のような演算を行い、色データ（ＦＲ１，ＦＧ１，ＦＢ１）および混合値（ブレンド値：ＦＡ１）を求める。
このデータ（ＦＲ１，ＦＧ１，ＦＢ１，ＦＡ１）は、たとえば第２のグラフィックスユニット４０２１に別個に設けられたライトユニットＷＵに転送される。
また、コア部４０２においては、グラフィックス処理時には、たとえば以下の処理を行う。
たとえば第２のグラフィックスユニット４０２１から直接的に供給された（ｓ１，ｔ１，ｌｏｄ１），（ｓ２，ｔ２，ｌｏｄ２）の値に基づいて、テクスチャアクセスのための（ｕ，ｖ）アドレス計算を行い、アドレスデータ（ｕｉ，ｖｉ，ｌｏｄｉ）に基づいて４近傍フィルタリングを行うための４近傍の（ｕ，ｖ）座標、すなわち、（ｕ０，ｖ０），（ｕ１，ｖ１），（ｕ２，ｖ２），（ｕ３，ｖ３）を計算して、所望のテクセルデータをたとえばキャッシュを通して読み出す。
また、コア部４０２では、係数生成のためのデータ（ｕｆ，ｖｆ，ｌｏｄｆ）に基づいてテクスチャフィルタ係数Ｋを計算する。
そして、各演算ユニットＯＰＵにおいて、色データ（ＴＲ，ＴＧ，ＴＢ）および混合値（ブレンド値：ＴＡ）を求める。
一方、コア部４０２は、画像処理時には、たとえば以下の処理を行う。
たとえば第１のグラフィックスユニット４０１で生成されたソースアドレスに基づいて、たとえばキャッシュＴＥＸＭおよび／またはリードライトキャッシュＢＵＦＭを介して、ＥＤＲＡＭ４０４に格納されている画像データを読み出し、読み出しデータに対して演算ユニットＯＰＵにおいて所定の演算処理を行って、演算結果をたとえばライトユニットＷＵに転送する。
ライトユニットＷＵは、グラフィックス処理の場合には、ソースデータ、具体的には色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）と、キャッシュからのデスティネーション色データ（ＲＧＢ）および混合値データ（Ａ）、並びに奥行きデータ（Ｚ）に基づいて、αブレンディング、各種テスト、ロジカルオペレーションといったグラフィックス処理のピクセル書き込みに必要な演算を行い、演算結果をキャッシュに書き戻す。
また、ライトユニットＷＵは、画像処理の場合には、演算ユニットＯＰＵによる演算結果のデータを、たとえば直接的に入力したデスティネーションアドレスに、キャッシュを介してＥＤＲＡＭ４０４に格納する。
以下、本第２の実施形態の特徴である演算処理部としてのコア部４０１におけるＯＰＵブロックにおける動的再構成（リコンフィギュラブル）の処理、フィルタリングの概要、並列演算処理等について、図４５Ａ，図４５Ｂ〜図５６に関連付けて順を追って説明する。
リコンフィギュラブルの演算処理について、まず、図４５Ａ，図４５Ｂに関連付けて説明する。
この例では、図４５Ａの演算ユニットＯＰＵ２，ＯＰＵ３が、図４５Ｂのツリーの上段の２つの演算（ここでは乗算）に対応する演算を行う。
この例において、クロスバー回路４０２４内のスイッチおよび演算ユニットＯＰＵ内のセレクタを切り替えて図４５Ａに示すようなデータ転送経路を確立する。
この場合、ＳＲＡＭキャッシュ４０３からツリーへの入力に対応する２つのデータがそれぞれ読み出され、クロスバー回路４０２４を介し、さらに各演算ユニットＯＰＵ２，ＯＰＵ３のストリームレジスタＳＲ１，ＳＲ２を通して各演算パイプ５０１に供給される。各演算ユニットＯＰＵ２，ＯＰＵ３の各演算パイプ５０１では、乗算が行われる。
演算ユニットＯＰＵ２の演算結果は、セレクタ５０３を介し、ストリームレジスタＳＲ１を介して、演算ユニットＯＰＵ１に入力される。演算ユニットＯＰＵ１では、この入力データがセレクタ５０２で選択されて演算パイプ５０１に供給される。
演算ユニットＯＰＵ３の演算結果は、セレクタ５０４を介し、ストリームレジスタＳＲ２を介して、さらにクロスバー回路４０２４を介して演算ユニットＯＰＵ１に入力される。演算ユニットＯＰＵ１では、この入力データがストリームレジスタＳＲ２を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ１には、ＳＲＡＭ４０３から読み出されたデータがクロスバー回路４０２４を介して入力され、ストリームレジスタＳＲ１を介して演算パイプ５０１に供給される。そして、演算ユニットＯＰＵ１の演算パイプ５０１では、ツリーの下段の演算（ここでは加算）に対応する演算が行われる。すなわち、演算ユニットＯＰＵ２，ＯＰＵ３の乗算結果と、ＥＤＲＡＭ４０４からの読み出しデータの加算が行われ、その結果が、セレクタ５０４、さらにストリームレジスタＳＲ２を介し、クロスバー回路４０２４を通さずにＥＤＲＡＭ４０４に格納される。
また、図４６および図４７は、コンボリューションフィルタリング処理についての説明図である。
コンボリューションフィルタリング処理は、基本的には、図４６に示すように、フィルタ係数行列ＩＭ１の各要素であるフィルタ係数ＣＯＦを演算ユニットに供給する。
また、ＥＤＲＡＭ４０４の演算の対象となる画像領域ＡＲから（直下のメモリ）から画素値を読み出す（図中１で示す）。以下後続する２〜４で示す画素値を読み出し、シフトインして演算ユニットＯＰＵに供給する。この場合、カーネルサイズ−１個のデータをシフトインすれば１ライン分の計算が完了する。
図４７は、２つの演算ユニットＯＰＵ１，ＯＰＵ２を用いた場合の例である。基本的には図４６の場合と同様であるが、演算ユニットＰＯＵ２では、１画素ずれた位置での計算を行う。
演算ユニットＯＰＵが３個以上の場合も１画素ずつずれた位置で演算を実行することになる。
次に、コンボリューションフィルタリング処理に対応した並列演算の例について図４８Ａ、図４８Ｂ、図４９に関連付けて説明する。この例では、演算ユニットはＯＰＵ１〜ＯＰＵ６の６個を例として示している。
この例においても、クロスバー回路４０２４内のスイッチおよび演算ユニットＯＰＵ内のセレクタを切り替えて図４８Ａ，図４８Ｂ，および図４９に示すようなデータ転送経路を確立する。
並列演算の場合には、図４８Ａに示すように、ＥＤＲＡＭ４０４（あるいはＳＲＡＭキャッシュ）の各演算ユニットＯＰＵ１〜ＯＰＵ６の直下の位置にあるメモリ上の画像データがクロスバー回路４０２４を介して一度に読み出される（図中、太線の矢印）。各演算ユニットＯＰＵ１〜ＯＰＵ６では、ストリームレジスタＳＲ１を介して演算パイプ５０１に読み出しデータが供給される。
また、メモリからフィルタ係数データが読み出され、クロスバー回路４０２４を介して所望の演算ユニットＯＰＵ１〜ＯＰＵ６に供給される。各演算ユニットＯＰＵ１〜ＯＰＵ６では、ストリームレジスタＳＲ２を介して演算パイプ５０１に係数データが供給される。
各演算ユニットＯＰＵ１〜ＯＰＵ６では、所望の演算が行われた後、図４８Ｂに示すように、演算ユニットＯＰＵ６側からＯＰＵ１に向かって順に、セレクタ５０３、ストリームレジスタＳＲ１、および隣接ユニットのセレクタ５０２を介してソースフォワーディングされ、ＯＰＵブロック全体で画像データがシフトされる。
メモリから継続する画像データおよびフィルタ係数が読み出され、クロスバー回路４０２４を介して所望の演算ユニットＯＰＵ１〜ＯＰＵ６に供給される。各演算ユニットＯＰＵ１〜ＯＰＵ６では、ストリームレジスタＳＲ２を介して演算パイプ５０１に係数等のデータが供給される。
図４９は、以下の演算を行う場合の並列演算処理を示している。
Ｈ（ｎ）＝（２×Ｐ（２ｎ＋１）−（Ｐ（２ｎ）＋Ｐ（２ｎ＋２）））／２
Ｌ（ｎ）＝（４×Ｐ（２ｎ）＋Ｈ（ｎ−１）＋（Ｈ（ｎ）））／４
この場合には、図４９に示すように、たとえばＥＤＲＡＭ４０４（あるいはＳＲＡＭキャッシュ）の画像データＰ（２ｎ−１），Ｐ（２ｎ），Ｐ（２ｎ＋１），Ｐ（２ｎ＋２），Ｐ（２ｎ＋３），Ｐ（２ｎ＋４）がクロスバー回路４０２４を介して各演算ユニットＯＰＵ１〜ＯＰＵ６に読み出される（図中、太線の矢印）。ただし、データＰ（２ｎ）は、演算ユニットＯＰＵ２およびＯＰＵ３に供給される。
演算ユニットＯＰＵ４に入力されたデータＰ（２ｎ＋２）は、ストリームレジスタＳＲ１を介して隣接の演算ユニットＯＰＵ３に供給され、セレクタ５０２を通して演算パイプ５０１に供給される。また、演算ユニットＯＰＵ３に入力されたデータＰ（２ｎ）はストリームレジスタＳＲ１を介して演算パイプ５０１に供給され、データＰ（２ｎ＋１）はストリームレジスタＳＲ２を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ３の演算パイプ５０１では、データＰ（２ｎ＋１）を２倍する第１の演算と、データＰ（２ｎ）とＰ（２ｎ＋２）とを加算する第２の演算が行われ、第１の演算結果２×Ｐ（２ｎ＋１）から第２の演算結果（Ｐ（２ｎ）＋Ｐ（２ｎ＋２）を減算する第３の演算が行われる。そして、第４の演算として右シフタにて１ビットシフトして第３の演算結果が２分の１されてＨ（ｎ）が求められる。
演算ユニットＯＰＵ３の演算結果は、セレクタ５０３を介し、ストリームレジスタＳＲ１を介して、演算ユニットＯＰＵ２に入力される。演算ユニットＯＰＵ２では、この入力データがセレクタ５０２で選択されて演算パイプ５０１に供給される。また、演算ユニットＯＰＵ２に入力されたデータＰ（２ｎ）はストリームレジスタＳＲ１を介して演算パイプ５０１に供給される。また、演算ユニットＯＰＵ１の演算結果であるＨ（ｎ−１）がクロスバー回路２０４２を介して演算ユニットＯＰＵ２に入力され、ストリームレジスタＳＲ２を介して演算演算パイプ５０１に供給される。
演算ユニットＯＰＵ２の演算パイプ５０１では、データＰ（２ｎ）を４倍する第１の演算と、データＨ（ｎ−１）とＨ（ｎ）とを加算する第２の演算が行われ、第１の演算結果４×Ｐ（２ｎ）と第２の演算結果（Ｈ（ｎ−１）＋Ｈ（ｎ））を加算する第３の演算が行われる。そして、第４の演算として右シフタにて２ビットシフトして第３の演算結果が４分の１されてＬ（ｎ）が求められる。
次に、演算ユニット群が担当する演算対象を固定化してグラフィックス処理を行う場合の例について説明する。
図５０は、演算ユニット群が担当する演算対象を固定化してグラフィックス処理を行う場合のコア部の構成例を示す図である。
この例では、１つの第１のグラフィックスユニット４０１に対して４つのコア部４０２Ａ〜４０２Ｄが並列に配置されている。そして、各コア部４０２Ａ〜４０２Ｄの各々で、１ピクセルパイプを構成する。
各コア部４０２Ａ〜４０２Ｄにおいては、第２のグラフィックスユニット４０２１−Ａ〜４０２１−Ｄに対してそれぞれ、複数のＯＰＵブロックを含む演算担当が固定化された演算ブロック（ＯＰＵｓ）４０２２Ａ−１〜４０２２Ａ−４、４０２２Ｂ−１〜４０２２Ｂ−４、４０２２Ｃ−１〜４０２２Ｃ−４、４０２２Ｄ−１〜４０２２Ｄ−４が並列に配置されている。
なお、以下では、コア部４０２Ａを例に説明する。
図５０の例では、コア部４０２Ａに配置された４つの演算部ブロック４０２２Ａ−１〜４０２２Ａ−４のうち、演算ブロック４０２２Ａ−２，４０２２Ａ−３の２つが色計算担当として固定化され、演算ブロック４０２２Ａ−１，４０２２Ａ−４の２つがフィルタ担当として固定化されている。
このように担当を固定化することで、第２のグラフィックスユニット４０２１内のデータ転送経路を固定化でき、回路量を最低限にすることができる。すなわち、固定化することで、各種グラフィックスデータを各ＯＰＵブロックに適時分配する必要がなく、回路が簡単化できる。
以下、色計算担当の演算ブロック４０２２Ａ−２，４０２２Ａ−３とフィルタ担当の演算ブロック４０２２Ａ−１，４０２２Ａ−４の処理例を図５１〜図５６に関連付けて説明する。なお、以下の説明では、各演算ブロックは、８個の演算ユニットＯＰＵ１〜ＯＰＵ８により構成されているものとする。
まず、色計算担当の演算ブロック４０２２Ａ−２（４０２２Ａ−３）について図５１〜図５４に関連付けて説明する。
色計算担当の演算ブロック４０２２Ａ−２（４０２２Ａ−３）においては、概念的には、図５１に示すように、テクスチャデータＴ．ｒ，ｇ、Ｔ．ｂ，ａが所定の演算ユニット、たとえばＯＰＵ７，ＯＰＵ８に供給されるとともに、ＤＤＡ入力としてプライマリカラー（ＰＣ）、セカンダリカラー（ＳＣ）、アンビエント（Ａｍｂｉｅｎｔ）、拡散係数、スペキュラ係数、シャイニネ係数、テクスチャ座標、ライトベクトル、ハーフベクトル等の各種データが所望の演算ユニットＯＰＵ１〜ＯＰＵ６供給される。そして、色計算結果Ｐ．ｒ，ｇおよびＰ．ｂ，ａがライトユニットＷＵに転送される。
図５２および図５３は色計算演算ブロックにおける具体的な処理例について説明するための図である。
色計算演算ブロックにおいては、ライトマップ（ｌｉｇｈｔ  ｍａｐ）から得られるライトベクトルと、法線マップから得られる法線ベクトルの内積を求め（図５２）、求めた内積にプライマリカラーを乗算してピクセルの色Ｐ．ｒ，ｇおよびＰ．ｂ，ａを求める（図５３）。
この例においても、クロスバー回路４０２４内のスイッチおよび演算ユニットＯＰＵ内のセレクタを切り替えて図５２および図５３に示すようなデータ転送経路を確立する。
具体的には、図５２に示すように、法線マップデータｔｅｘ（ｎｍａｐ）．ｘがクロスバー回路２０２４を介して演算ユニットＯＰＵ８に入力され、法線マップデータｔｅｘ（ｎｍａｐ）．ｙがクロスバー回路２０２４を介して演算ユニットＯＰＵ７に入力され、法線マップデータｔｅｘ（ｎｍａｐ）．ｚがクロスバー回路２０２４を介して演算ユニットＯＰＵ６に入力される。
また、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｘがクロスバー回路２０２４を介して演算ユニットＯＰＵ８に入力され、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｙがクロスバー回路２０２４を介して演算ユニットＯＰＵ７に入力され、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｚがクロスバー回路２０２４を介して演算ユニットＯＰＵ６に入力される。
演算ユニットＯＰＵ８に入力された法線マップデータｔｅｘ（ｎｍａｐ）．ｘは、ストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｘはストリームレジスタＳＲ１を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ８の演算パイプ５０１では、法線マップデータｔｅｘ（ｎｍａｐ）．ｘとライトデータｔｅｘ（ｌｉｇｈｔ）．ｘとが乗算される。演算ユニットＯＰＵ８の演算結果〔ｔｅｘ（ｎｍａｐ）．ｘ×ｔｅｘ（ｌｉｇｈｔ）．ｘ〕は、セレクタ５０３を介し、ストリームレジスタＳＲ１を介して、演算ユニットＯＰＵ７に入力される。演算ユニットＯＰＵ７では、この入力データがセレクタ５０２で選択されて演算パイプ５０１に供給される。また、演算ユニットＯＰＵ７に入力された法線マップデータｔｅｘ（ｎｍａｐ）．ｙは、ストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｙはストリームレジスタＳＲ１を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ７の演算パイプ５０１では、法線マップデータｔｅｘ（ｎｍａｐ）．ｙとライトデータｔｅｘ（ｌｉｇｈｔ）．ｙとを乗算する第１の演算が行われ、第１の演算結果〔ｔｅｘ（ｎｍａｐ）．ｙ×ｔｅｘ（ｌｉｇｈｔ）．ｙ〕とフォワードインデータ〔ｔｅｘ（ｎｍａｐ）．ｘ×ｔｅｘ（ｌｉｇｈｔ）．ｘ〕を加算する第２の演算が行われる。演算ユニットＯＰＵ７の演算結果〔ｔｅｘ（ｎｍａｐ）．ｘ×ｔｅｘ（ｌｉｇｈｔ）．ｘ＋ｔｅｘ（ｎｍａｐ）．ｙ×ｔｅｘ（ｌｉｇｈｔ）．ｙ〕は、セレクタ５０３を介し、ストリームレジスタＳＲ１を介して、演算ユニットＯＰＵ６に入力される。演算ユニットＯＰＵ６では、この入力データがセレクタ５０２で選択されて演算パイプ５０１に供給される。また、演算ユニットＯＰＵ６に入力された法線マップデータｔｅｘ（ｎｍａｐ）．ｚは、ストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、ライトデータｔｅｘ（ｌｉｇｈｔ）．ｚはストリームレジスタＳＲ１を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ６の演算パイプ５０１では、法線マップデータｔｅｘ（ｎｍａｐ）．ｚとライトデータｔｅｘ（ｌｉｇｈｔ）．ｚとを乗算する第１の演算が行われ、第１の演算結果〔ｔｅｘ（ｎｍａｐ）．ｚ×ｔｅｘ（ｌｉｇｈｔ）．ｚ〕とフォワードインデータ〔ｔｅｘ（ｎｍａｐ）．ｘ×ｔｅｘ（ｌｉｇｈｔ）．ｘ＋ｔｅｘ（ｎｍａｐ）．ｙ×ｔｅｘ（ｌｉｇｈｔ）．ｙ〕を加算する第２の演算が行われる。演算ユニットＯＰＵ７の演算結果〔ｔｅｘ（ｎｍａｐ）．ｘ×ライトデータｔｅｘ（ｌｉｇｈｔ）．ｘ＋ｔｅｘ（ｎｍａｐ）．ｙ×ライトデータｔｅｘ（ｌｉｇｈｔ）．ｙ＋ｔｅｘ（ｎｍａｐ）．ｚ×ｔｅｘ（ｌｉｇｈｔ）．ｙ〕ｚ〕、すなわちライトベクトルと法線ベクトルの内積値は、セレクタ５０４を介し、ストリームレジスタＳＲ２を介して、さらにクロスバー回路４０２４を通して図５３に示すように、演算ユニットＯＰＵ１およびＯＰＵ２に供給される。
そして、演算ユニットＯＰＵ１においては、プライマリカラーＰＣ．ｒ，ｇがセレクタ５０２を介して演算パイプ５０１に供給され、内積値がストリームレジスタＳＲ２を介して演算パイプ５０１に供給される。そして、演算パイプ５０１において、プライマリカラーＰＣ．ｒ，ｇと内積値とが乗算されて色データＰ．ｒ，ｇが求められ、セレクタ５０３、ストリームレジスタＳＲ１を介して第２のグラフィックスユニット４０２１−ＡのライトユニットＷＵに転送される。
演算ユニットＯＰＵ２においては、プライマリカラーＰＣ．ｂ，ａがセレクタ５０２を介して演算パイプ５０１に供給され、内積値がストリームレジスタＳＲ２を介して演算パイプ５０１に供給される。そして、演算パイプ５０１において、プライマリカラーＰＣ．ｂ，ａと内積値とが乗算されて色データＰ．ｂ，ａが求められ、セレクタ５０３、ストリームレジスタＳＲ１を介して第２のグラフィックスユニット４０２１−ＡのライトユニットＷＵに転送される。
また、図５４は、単純にプライマリカラーとテクスチャをブレンドする場合の演算処理例を示す図である。
この例においても、クロスバー回路４０２４内のスイッチおよび演算ユニットＯＰＵ内のセレクタを切り替えて図５４に示すようなデータ転送経路を確立する。
この場合、演算ユニットＯＰＵ５〜ＯＰＵ８で計算が行われる。演算ユニットＯＰＵ５〜ＯＰＵ８には共通にテクスチャデータＴｅｘ．ｂ，ａが供給され、演算ユニットＯＰＵ８にプライマリカラーＰＣ．ｂ，ａが供給され、演算ユニットＯＰＵ６にプライマリカラーＰＣ．ｒ，ｇが供給され、演算ユニットＯＰＵ５にはテクスチャデータＴｅｘ．ｒ，ｇが供給される。
演算ユニットＯＰＵ８の演算パイプ５０１における演算結果Ｐｃ．ｂ×（１−Ｔｅｘ．ａ）＝ｏｕｔ．ｂおよびＰｃ．ａ×（１−Ｔｅｘ．ａ）＝ｏｕｔ．ａが演算ユニットＯＰＵ７にフォワードインデータとして供給される。
演算ユニットＯＰＵ７の演算パイプ５０１において、ブレンド後の色データＰｂ，ａ、具体的には、〔Ｔｅｘ．ｂ×Ｔｅｘ．ａ＋ｏｕｔ．ｂ〕および〔Ｔｅｘ．ａ×Ｔｅｘ．ａ＋ｏｕｔ．ａ〕が第２のグラフィックスユニット４０２１−ＡのライトユニットＷＵに転送される。
また、演算ユニットＯＰＵ６の演算パイプ５０１における演算結果Ｐｃ．ｒ×（１−Ｔｅｘ．ａ）＝ｏｕｔ．ｒおよびＰｃ．ｇ×（１−Ｔｅｘ．ａ）＝ｏｕｔ．ｇが演算ユニットＯＰＵ５にフォワードインデータとして供給される。
演算ユニットＯＰＵ５の演算パイプ５０１において、ブレンド後の色データＰｒ，ｇ、具体的には、〔Ｔｅｘ．ｒ×Ｔｅｘ．ａ＋ｏｕｔ．ｒ〕および〔Ｔｅｘ．ｇ×Ｔｅｘ．ａ＋ｏｕｔ．ｇ〕が第２のグラフィックスユニット４０２１−ＡのライトユニットＷＵに転送される。
次に、フィルタ担当の演算ブロック４０２２Ａ−１（４０２２Ａ−４）について図５５，図５６に関連付けて説明する。
色計算担当の演算ブロック４０２２Ａ−１（４０２２Ａ−４）においては、図５５に示すように、色計算データＰ．ｒ，ｇおよびＰ．ｂ，ａがライトユニットＷＵに供給される。また、ライトユニットＷＵにはフレームバッファから読み出した画素値が供給される。図５５の例では、演算ユニットＯＰＵ１，ＯＰＵ２は使用されない。
演算ユニットＯＰＵ８にデータＴ３．ｂ，ａ、Ｔ４．ｂ，ａおよび係数Ｖｆが供給され、演算ユニットＯＰＵ７にデータＴ１．ｂ，ａ、Ｔ２．ｂ，ａ、および係数Ｕｆが供給され、演算ユニットＯＰＵ８の演算結果と演算ユニットＯＰＵ７の演算結果が演算ユニットＯＰＵ６に供給される。演算ユニットＯＰＵ６では、係数Ｕｆおよび演算ユニットＯＰＵ８，ＯＰＵ７の演算結果に基づいてテクスチャデータＴ．ｂ，ａが計算される。
また、演算ユニットＯＰＵ５にデータＴ３．ｒ，ｇ、Ｔ４．ｒ，ｇおよび係数Ｖｆが供給され、演算ユニットＯＰＵ４にデータＴ１．ｒ，ｇ、Ｔ２．ｒ，ｇ、および係数Ｕｆが供給され、演算ユニットＯＰＵ５の演算結果と演算ユニットＯＰＵ４の演算結果が演算ユニットＯＰＵ３に供給される。演算ユニットＯＰＵ３では、係数Ｕｆおよび演算ユニットＯＰＵ５，ＯＰＵ４の演算結果に基づいてテクスチャデータＴ．ｒ，ｇが計算される。
また、ライトユニットＷＵは、フレームバッファから読み出した画素値と色計算データＰ．ｒ，ｇおよびＰ．ｂ，ａとのブレンド処理を行う。そして、色データおよび混合値データ（ａ）、並びに奥行きデータ（Ｚ）に基づいて、αブレンディング、Ｚテスト、ステンシルテストを行い、テストをパスした場合にフレームバッファにピクセル値を書き込む。
図５６は、フィルタ処理演算ブロックにおける具体的な処理例について説明するための図である。
この例は、４近傍フィルタリング処理を行う場合である。なお、ここでは、演算ユニットＯＰＵ６〜ＯＰＵ８の処理について説明する。演算ユニットＯＰＵ３〜ＯＰＵ５の処理については、演算ユニットＯＰＵ６〜ＯＰＵ８と同様に行われることからその説明は省略する。
この例においても、クロスバー回路４０２４内のスイッチおよび演算ユニットＯＰＵ内のセレクタを切り替えて図５６に示すようなデータ転送経路を確立する。
上述したように、演算ユニットＯＰＵ８には、データＴ３．ｂ，ａ、Ｔ４．ｂ，ａがクロスバー回路４０２４を介して供給され、係数Ｖｆが供給される。データＴ３．ｂ，ａはストリームレジスタＳＲ１を介して演算パイプ５０１に供給され、データＴ４．ｂ，ａはストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、係数Ｖｆはセレクタ５０２を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ８の演算パイプ５０１においては、データＴ３．ｂ，ａからＴ４．ｂ，ａを減算する第１の演算が行われ、この減算結果〔Ｔ３．ｂ，ａ−Ｔ４．ｂ，ａ〕に対して係数Ｖｆを乗算する第２の演算が行われ、さらにこの乗算結果〔（Ｔ３．ｂ，ａ−Ｔ４．ｂ，ａ）×Ｖｆ〕にＴ４．ｂ，ａが加算する第３の演算が行われる。そして、この演算結果〔（Ｔ３．ｂ，ａ−Ｔ４．ｂ，ａ）×Ｖｆ＋Ｔ４．ｂ，ａ〕＝ｏｕｔ２．ｂ，ａがセレクタ５０４、ストリームレジスタＳＲ２を介し、さらにクロスバー回路４０２４を介して演算ユニットＯＰＵ６に供給される。
演算ユニットＯＰＵ７には、データＴ１．ｂ，ａ、Ｔ２．ｂ，ａがクロスバー回路４０２４を介して供給され、係数Ｖｆが供給される。データＴ１．ｂ，ａはストリームレジスタＳＲ１を介して演算パイプ５０１に供給され、データＴ２．ｂ，ａはストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、係数Ｖｆはセレクタ５０２を介して演算パイプ５０１に供給される。
演算ユニットＯＰＵ７の演算パイプ５０１においては、データＴ１．ｂ，ａからＴ２．ｂ，ａを減算する第１の演算が行われ、この減算結果〔Ｔ１．ｂ，ａ−Ｔ２．ｂ，ａ〕に対して係数Ｖｆを乗算する第２の演算が行われ、さらにこの乗算結果〔（Ｔ１．ｂ，ａ−Ｔ２．ｂ，ａ）×Ｖｆ〕にＴ２．ｂ，ａが加算する第３の演算が行われる。そして、この演算結果〔（Ｔ１．ｂ，ａ−Ｔ２．ｂ，ａ）×Ｖｆ＋Ｔ２．ｂ，ａ〕＝ｏｕｔ１．ｂ，ａがセレクタ５０４、ストリームレジスタＳＲ２を介し、さらにクロスバー回路４０２４を介して演算ユニットＯＰＵ６に供給される。
演算ユニットＯＰＵ６においては、演算結果ｏｕｔ１．ｂ，ａがストリームレジスタＳＲ１を介して演算パイプ５０１に供給され、演算結果ｏｕｔ２．ｂ，ａがストリームレジスタＳＲ２を介して演算パイプ５０１に供給され、セレクタ５０１を介して係数Ｕｆが供給される。
演算ユニットＯＰＵ６の演算パイプ５０１においては、演算結果データｏｕｔ１．ｂ，ａからｏｕｔ２．ｂ，ａを減算する第１の演算が行われ、この減算結果〔ｏｕｔ１．ｂ，ａ−ｏｕｔ２．ｂ，ａ〕に対して係数Ｕｆを乗算する第２の演算が行われ、さらにこの乗算結果〔（ｏｕｔ１．ｂ，ａ−ｏｕｔ２．ｂ，ａ）×Ｕｆ〕にｏｕｔ２．ｂ，ａを加算する第３の演算が行われる。そして、この演算結果〔（ｏｕｔ１．ｂ，ａ−ｏｕｔ２．ｂ，ａ）×Ｕｆ〕＋ｏｕｔ２．ｂ，ａ〕＝Ｔ．ｂ，ａがセレクタ５０３、ストリームレジスタＳＲ１を介して第２のグラフィックスユニット４０２１−Ａに転送される。
以上のように、本第２の実施形態に係る画像処理装置によれば、大量の演算器を効率よく利用することが可能で、アルゴリズムの自由度が高く、柔軟性が高く、しかも回路規模の増大、コスト増を招くことなく、複雑な処理を高スループットで処理することができる。
また、コア部４０２は、分岐のないデータフローグラフで表現されるアルゴリズムを実行し、ＤＦＧのノードとエッジは、演算器や演算ユニットとその接続関係と見ることができることができる。したがって、コア部は、実行するＤＦＧに応じて、演算リソース間の接続を動的に切り替える、いわゆる動的再構成可能なハードウェアであり、演算器で実行する機能やそれらの接続関係が処理ユニットのマイクロプログラムに相当し、ストリームデータの各要素に適用されるＤＦＧは同じであるので、命令発行のバンド幅を低くおさえることができる。
また、コア部４０２は、演算機能の指定や演算器間接続の切り替え制御は、データドリブンであり、分散自立型制御といえる。
このような動的スケジューリングを採用することにより、ＤＦＧが切り替わる際に、エピローグ／プロローグのオーバーラップが可能であり、ＤＦＧの切り替えのオーバーヘッドを低減することができる。
また、ＤＦＧの規模が大きくなるとアルゴリズムを内部演算リソースに一度にマッピングすることができなくなる。このような場合には、複数のサブＤＦＧ（ｓｕｂ−ＤＦＧ）に分割する必要がある。
複数のサブＤＦＧに分けて実行する方法として、サブＤＦＧ間の中間値をメモリに格納するマルチパス手法があげられる。この方法では、パス数が増大するとメモリバンド幅を消費し性能低下を招く。
コア部は、前述するように演算器や演算ユニット間のストリームデータの受け渡しをＦＩＦＯ型のストリームレジスタを介して行うことから、ＤＦＧ分割実行時に、このレジスタファイルを介して中間値を渡すことが可能で、マルチパスの回数を低減することができる。
ＤＦＧの分割そのものは、コンパイラにより静的に行われるが、分割されたＤＦＧの実行制御はハードウエアが行うのでソフトウエアへの負担が軽いという利点がある。
産業上の利用可能性
本発明に係る演算装置および画像処理装置は、各種の演算に対応でき、かつ開発時点で想定されていなかった演算方式にも容易に対応できる、かつ、３次元グラフィックスにおいて、実時間での描画に十分な描画能力を発揮することができることから、たとえばグラフィックス処理機能および画像処理機能を有し、複数の処理データを共有して並列処理を行う画像処理システム等に適用可能である。
【図面の簡単な説明】
図１は、３次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
図２は、本発明に係る３次元コンピュータグラフィックスシステムの構成を示すブロック図である。
図３は、本発明に係る演算装置を適用した３次元グラフィックス描画装置の基本的な構成を示すブロック図である。
図４は、本発明に係る演算装置の構成例を示すブロック図である。
図５は、本発明に係る接続回路網ＣＣＮの第１の構成例を示す図である。
図６は、本発明に係るセレクタの構成例を示す図である。
図７は、本発明に係る接続回路網ＣＣＮの第２の構成例を示す図である。
図８は、本発明に係る接続回路網ＣＣＮの第３の構成例を示す図である。
図９は、本発明に係るセレクタの他の構成例を示す図である。
図１０は、本発明に係るセレクタの他の構成例を示す図である。
図１１は、本発明に係る接続回路網ＣＣＮの第４の構成例を示す図である。
図１２は、本発明に係る演算装置の演算実行の概略についての説明図であって、演算のデータフローグラフを示す図である。
図１３は、本発明に係る演算装置の演算実行の概略についての説明図である。
図１４は、本発明に係る演算装置のパイプライン処理の説明図である。
図１５は、本発明に係る演算装置の動的再構築の第１の実現方法について説明するための図である。
図１６は、本発明に係る演算装置の動的再構築の第１の実現方法について説明するための図である。
図１７は、本発明に係る演算装置の動的再構築の第２の実現方法について説明するための図である。
図１８は、本発明に係る演算装置の動的再構築の第２の実現方法について説明するための図である。
図１９は、本発明に係る演算装置の動的再構築の第２の実現方法について説明するための図である。
図２０は、本発明に係る演算装置において拡散による画素色への寄与成分を形成する場合の動作を説明するための図である。
図２１は、本発明に係る演算装置において拡散による画素色への寄与成分を形成する場合の動作を説明するための図である。
図２２は、図７の接続回路網を例とした演算装置の動的再構築の第１の具体例を説明するための図である。
図２３は、図７の接続回路網を例とした演算装置の動的再構築の第２の具体例を説明するための図である。
図２４は、本発明に係るデータ格納方法を説明するための図である。
図２５は、本発明に係る同一半導体チップ内に混載されるレンダリング回路のロジック回路とＤＲＡＭおよび２次メモリとの好適な構成、配置および配線方法を説明するための図である。
図２６は、本発明に係るＤＲＡＭモジュールの構成例を説明するするための図である。
図２７は、本発明に係るＤＤＡセットアップ回路の機能を説明するための図である。
図２８は、本発明に係るトライアングルＤＤＡ回路の機能を説明するための図である。
図２９は、本発明に係るトライアングルＤＤＡ回路の頂点のソート処理を説明するための図である。
図３０は、本発明に係るトライアングルＤＤＡ回路の水平方向の傾き算出処理を説明するための図である。
図３１Ａ，図３１Ｂは、本発明に係るトライアングルＤＤＡ回路の頂点データの補間手順を説明するための図である。
図３２は、本発明に係るトライアングルＤＤＡ回路の頂点データの補間手順を説明するためのフローチャートである。
図３３は、本発明に係る演算装置を採用可能な画像処理装置の第２の実施形態を示すブロック構成図である。
図３４は、本発明に係るコア部の具体的な構成例を説明するための図である。
図３５は、第２の実施形態に係る演算ユニット群の演算ユニットの具体的な構成例を示す回路図である。
図３６は、各種演算処理を行う演算パイプの具体的な構成例を示す回路図である。
図３７は、ストリームレジスタＳＲの具体的な構成例を示す図である。
図３８Ａ，図３８Ｂは、ストリームレジスタの動作を説明するための図である。
図３９は、クロスバー回路の構成例を示す回路図である。
図４０は、第１のデータ選択回路の構成例を示す回路図である。
図４１は、第２のデータ選択回路の構成例を示す回路図である。
図４２は、クロスバー回路を制御して、各入力データを適切な演算ユニットの入力へと伝播させる一例を示す図である。
図４３は、キャッシュの構成、機能を説明するための図であって、リード系を示し図である。
図４４は、キャッシュの構成、機能を説明するための図であって、ライト系を示し図である。
図４５Ａ，図４５Ｂは、リコンフィギュラブルの演算処理について説明するための図である。
図４６は、コンボリューションフィルタリング処理についての説明図である。
図４７は、コンボリューションフィルタリング処理についての説明図であって、１画素ずれた位置での計算を行う場合を説明するための図である。
図４８Ａ、図４８Ｂは、コンボリューションフィルタリング処理に対応した並列演算の例について説明するための図である。
図４９は、コンボリューションフィルタリング処理に対応した並列演算のさらに具体的な例について説明するための図である。
図５０は、演算ユニット群が担当する演算対象を固定化してグラフィックス処理を行う場合のコア部の構成例を示す図である。
図５１は、色計算担当の演算ブロックの演算処理を説明するための図である。
図５２は、色計算担当の演算ブロックの具体的な演算処理を説明するための図である。
図５３は、色計算担当の演算ブロックの具体的な演算処理を説明するための図である。
図５４は、色計算担当の演算ブロックの具体的な演算処理の他の例を説明するための図である。
図５５は、フィルタ担当の演算ブロックの演算処理を説明するための図である。
図５６が、フィルタ担当の演算ブロックの具体的な演算処理を説明するための図である。
符号の説明
１０…画像処理装置
１１…メインプロセッサ
１２…メインメモリ
１３…Ｉ／Ｏインターフェース回路
１４…レンダリング回路
１４１…ＤＤＡセットアップ回路
１４２…トライアングルＤＤＡ回路
１４３…テクスチャエンジン回路
１４４…メモリＩ／Ｆ回路
１４５…ＣＲＴコントローラ回路
１４６…ＲＡＭＤＡＣ回路
１４７…ＤＲＡＭ
１４７１〜１４７８…ＤＲＡＭモジュール
１４７ａ…テクスチャバッファ
１４７ｂ…ディスプレイバッファ
１４７ｃ…ｚバッファ
１４７ｄ…テクスチャＣＬＵＴバッファ
１４８…ＳＲＡＭ
１４４１〜１４４４…メモリコントローラ
１４４５…ディストリビュータ
１４４６〜１４４９…ピクセル処理モジュール
１４５０…ＤＲＡＭ間制御モジュール
１４７１〜１４７４…ＤＲＡＭモジュール
１４８０…ＤＲＡＭコア
１４８１…ロウデコーダ
１４８２…センスアンプ
１４８３…カラムデコーダ
１４８４…２次メモリ
２００…ロジック部
２０１…演算装置
２０２…制御回路
２０３…メモリ
２０１２…レジスタファイル
２０１２…演算器プール
２０１２１〜２０１２４…演算部
ＣＣＮ…接続回路網
ＯＰ１〜ＯＰ８…演算部
ＳＬＣ…セレクタ
３０１，３０２…制御回路
４００…画像処理装置
４０１…第１のグラフィックスユニット（処理ユニット）
４０２，４０２Ａ〜４０２Ｄ…コア部
４０３−１〜４０３−ｍ…キャッシュ
４０４…ＥＤＲＡＭ
４０２１…第２のグラフィックスユニット
４０２２−１〜４０２２−ｍ…演算ユニット群
４０２３−１〜４０２３−ｍ…ストリームレジスタ群
４０２４−１〜４０２４−ｍ…クロスバー回路
【図１】
2003009125.tif 000003
【図２】
2003009125.tif 000004
【図３】
2003009125.tif 000005
【図４】
2003009125.tif 000006
【図５】
2003009125.tif 000007
【図６】
2003009125.tif 000008
【図７】
2003009125.tif 000009
【図８】
2003009125.tif 000010
【図９】
2003009125.tif 000011
【図１０】
2003009125.tif 000012
【図１１】
2003009125.tif 000013
【図１２】
2003009125.tif 000014
【図１３】
2003009125.tif 000015
【図１４】
2003009125.tif 000016
【図１５】
2003009125.tif 000017
【図１６】
2003009125.tif 000018
【図１７】
2003009125.tif 000019
【図１８】
2003009125.tif 000020
【図１９】
2003009125.tif 000021
【図２０】
2003009125.tif 000022
【図２１】
2003009125.tif 000023
【図２２】
2003009125.tif 000024
【図２３】
2003009125.tif 000025
【図２４】
2003009125.tif 000026
【図２５】
2003009125.tif 000027
【図２６】
2003009125.tif 000028
【図２７】
2003009125.tif 000029
【図２８】
2003009125.tif 000030
【図２９】
2003009125.tif 000031
【図３０】
2003009125.tif 000032
【図３１Ａ】
2003009125.tif 000033
【図３１Ｂ】
2003009125.tif 000034
【図３２】
2003009125.tif 000035
【図３３】
2003009125.tif 000036
【図３４】
2003009125.tif 000037
【図３５】
2003009125.tif 000038
【図３６】
2003009125.tif 000039
【図３７】
2003009125.tif 000040
【図３８Ａ】
2003009125.tif 000041
【図３８Ｂ】
2003009125.tif 000042
【図３９】
2003009125.tif 000043
【図４０】
2003009125.tif 000044
【図４１】
2003009125.tif 000045
【図４２】
2003009125.tif 000046
【図４３】
2003009125.tif 000047
【図４４】
2003009125.tif 000048
【図４５Ａ】
2003009125.tif 000049
【図４５Ｂ】
2003009125.tif 000050
【図４６】
2003009125.tif 000051
【図４７】
2003009125.tif 000052
【図４８Ａ】
2003009125.tif 000053
【図４８Ｂ】
2003009125.tif 000054
【図４９】
2003009125.tif 000055
【図５０】
2003009125.tif 000056
【図５１】
2003009125.tif 000057
【図５２】
2003009125.tif 000058
【図５３】
2003009125.tif 000059
【図５４】
2003009125.tif 000060
【図５５】
2003009125.tif 000061
【図５６】
2003009125.tif 000062
【国際調査報告】
2003009125.tif 000063
2003009125.tif 000064
2003009125.tif 000065