(57)【特許請求の範囲】
【請求項１】
論理回路ブロックと、表示しようとする表示データを十分保持できるだけのメモリブロックを同一チップに内蔵し、レンダリング処理を行うグラフィックス描画装置であって、
上記論理回路ブロックへの入力部に、３次元グラフィックス描画プリミティブの１頂点分以上の大きさの入力バッファを有し、
上記論理回路ブロックは、線形補間演算のための初期設定演算回路ブロック、線形補間処理回路ブロック、およびテクスチャ処理回路ブロックを含み、
外部とのデータ受け渡しのインタフェース部が、上記論理回路ブロックの片側に上記入力バッファに隣接して配置され、
上記入力バッファおよび上記インタフェース部に隣接して線形補間演算のための初期設定演算回路ブロックが配置され、
線形補間演算のための初期設定演算回路ブロックのすぐ隣に線形補間処理回路ブロックが配置され、
線形補間演算処理回路ブロックのすぐ隣にテクスチャ処理回路ブロックが配置され、
テクスチャ処理回路ブロックのブロックサイズである回路面積が、線形補間演算のための初期設定演算回路ブロックおよび線形補間処理回路ブロックそれぞれの回路面積よりも大きく設定されている
グラフィックス描画装置。
【請求項２】
表示データを十分保持できるだけのメモリブロックとグラフィックス処理を行う上記テクスチャ処理回路ブロックとの間に、グラフィックス処理を行う上記テクスチャ処理回路ブロックからは動きを制御できないレジスタが配置されている
請求項１記載のグラフィックス描画装置。
【請求項３】
上記メモリブロックは複数のブロックに分散され、当該分散ブロックは上記論理回路ブロックの周辺部に配置され、
分散させたメモリブロックへのアクセスは、表示領域の少なくとも一つの方向に対する連続アクセスで分散メモリブロックを順番にアクセスするようアドレスをインターリーブする手段を有する
請求項１または２記載のグラフィックス描画装置。
【請求項４】
ディスプレイバッファとして使用しているメモリブロックがＤＲＡＭであり、当該ＤＲＡＭの一部のポートにＳＲＡＭが直結され、
メモリブロックにおいては、上記ＤＲＡＭの行方向のアクセスで複数の列データを一度に上記ＳＲＡＭに転送する
請求項１から３のいずれか一に記載のグラフィックス描画装置。
【請求項５】
上記線形補間演算のための初期設定演算回路ブロックは、複数画素の代表的な場所の値だけを先に計算し、その他の近傍の画素の値は代表点からのすでに計算された固定値の加算により計算する
請求項１から４のいずれか一に記載のグラフィックス描画装置。
【請求項６】
上記線形補間演算のための初期設定演算回路ブロックは、注目点が三角形の内部かどうかの判定を一次式の正負判定により行う
請求項１から５のいずれか一に記載のグラフィックス描画装置。
【請求項７】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャの同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを受けてレンダリング処理を行うグラフィックス描画装置であって、
表示データと少なくとも一つの図形要素が必要とするテクスチャデータをメモリブロックと、
上記単位図形の頂点のポリゴンレンダリングデータの線形補間演算のための初期設定演算回路ブロックと、上記単位図形の頂点のポリゴンレンダリングデータを補間して、上記単位図形内に位置する画素の補間データを生成する補間処理回路ブロックと、上記補間データに含まれるテクスチャの同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、上記「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、上記メモリブロックからテクスチャデータを読み出し、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路ブロックとを少なくとも備えた論理回路ブロックと、
上記論理回路ブロックの補間処理回路ブロックへのポリゴンレンダリングデータの入力部に、３次元グラフィックス描画プリミティブの１頂点分以上の大きさの入力バッファとを有し、
上記メモリブロック、論理回路ブロック、および入力バッファが一つの半導体チップ内に混載され、
外部とのデータ受け渡しのインタフェース部が、上記論理回路ブロックの片側に上記入力バッファに隣接して配置され、
上記入力バッファおよび上記インタフェース部に隣接して線形補間演算のための初期設定演算回路ブロックが配置され、
線形補間演算のための初期設定演算回路ブロックのすぐ隣に線形補間処理回路ブロックが配置され、
線形補間演算処理回路ブロックのすぐ隣にテクスチャ処理回路ブロックが配置され、
テクスチャ処理回路ブロックのブロックサイズである回路面積が、線形補間演算のための初期設定演算回路ブロックおよび線形補間処理回路ブロックそれぞれの回路面積よりも大きく設定されている
グラフィックス描画装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路ブロックとＤＲＡＭ等の容量の大きなメモリブロックを一つの半導体チップ内に混載した、三次元グラフィックス描画を実現するグラフィックス描画装置に係り、特に、全体の性能を向上させるための、各種機能ブロックの配置関係等に関するものである。
【０００２】
【従来の技術】
グラフィックス描画画像処理装置としては、たとえば従来外部メモリを使っていた構造そのままで、ＤＲＡＭ等の大容量メモリを、描画ロジックと同一のチップに内蔵しようとしているものがある。
【０００３】
２次元グラフィックス描画処理装置としては、近年の半導体の性能に対して、比較的容易に目標の描画性能を得ることができるため、単純に以前からのグラフィックス描画処理ロジックの横に（近傍に隣接して）、汎用ＤＲＡＭと同等の制御機構を持つＤＲＡＭコアを配置し、単一のバスで両者を接続するという配線となっている。
【０００４】
また、２次元グラフィックス描画処理を行なうブロックにおいても、面積を優先させるために、ゲートアレイ等の、各処理ブロックの配置関係を考慮しない手法を使っている。
【０００５】
ところが、近年、３次元グラフィックス描画画像処理装置を構築しようとした場合には、半導体の能力を使い切っても、まだまだ性能の向上が要求されるという状況となっている。
【０００６】
【発明が解決しようとする課題】
ところで、上述したような、２次元グラフィックス描画処理ロジックにおけるように、性能優先ではなく、面積を最小にする方向で決められる場合には、各論理上のブロックを対応する物理ブロックに分割するのではなく、具体的には、図１８（Ａ）に示すように、機能ブロック１を、ホストインタフェースブロック２、入力バッファブロック３、直線描画セットアップブロック４、直線描画ブロック５、および表示制御ブロック６として分割するのではなく、図１８（Ｂ）に示すように、ロジック全体をまとめて一つのブロックとして、ゲートアレイ手法によって一つの物理ブロック８にレイアウトされる。
【０００７】
ところが、３次元グラフィックス描画処理においては、特に性能が重要視されるため、処理システムの最適なブロック分割とそれらのブロックの最適な配置が重要となっている。
【０００８】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、最適なブロック分割、並びに最適な配置を実現でき、３次元グラフィックス描画処理の性能向上を図れるグラフィックス描画装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、本発明は、論理回路ブロックと、表示しようとする表示データを十分保持できるだけのメモリブロックを同一チップに内蔵し、レンダリング処理を行うグラフィックス描画装置であって、上記論理回路ブロックへの入力部に、３次元グラフィックス描画プリミティブの１頂点分以上の大きさの入力バッファを有し、上記論理回路ブロックは、線形補間演算のための初期設定演算回路ブロック、線形補間処理回路ブロック、およびテクスチャ処理回路ブロックを含み、外部とのデータ受け渡しのインタフェース部が、上記論理回路ブロックの片側に上記入力バッファに隣接して配置され、上記入力バッファおよび上記インタフェース部に隣接して線形補間演算のための初期設定演算回路ブロックが配置され、線形補間演算のための初期設定演算回路ブロックのすぐ隣に線形補間処理回路ブロックが配置され、線形補間演算処理回路ブロックのすぐ隣にテクスチャ処理回路ブロックが配置され、テクスチャ処理回路ブロックのブロックサイズである回路面積が、線形補間演算のための初期設定演算回路ブロックおよび線形補間処理回路ブロックそれぞれの回路面積よりも大きく設定されている。
【００１４】
また、本発明では、表示データを十分保持できるだけのメモリブロックとグラフィックス処理を行う上記テクスチャ処理回路ブロックとの間に、グラフィックス処理を行う上記テクスチャ処理回路ブロックからは動きを制御できないレジスタが配置されている。
【００１５】
また、本発明では、表示データを十分保持できるだけのメモリブロックが２ポート以上のポートを有する。
【００１７】
また、本発明では、上記メモリブロックは複数のブロックに分散され、当該分散ブロックは上記論理回路ブロックの周辺部に配置され、分散させたメモリブロックへのアクセスは、表示領域の少なくとも一つの方向に対する連続アクセスで分散メモリブロックを順番にアクセスするようアドレスをインタリーブする手段を有する。
【００１８】
また、本発明では、上記線形補間演算のための初期設定演算回路ブロックは同期パイプライン方式による時間並列構造を有し、上記テクスチャ処理回路ブロックは、同じ構造の回路を複数並べる空間並列構造を有する。
【００１９】
また、本発明では、ディスプレイバッファとして使用しているメモリブロックがＤＲＡＭであり、当該ＤＲＡＭの一部のポートにＳＲＡＭが直結され、メモリブロックにおいては、上記ＤＲＡＭの行方向のアクセスで複数の列データを一度に上記ＳＲＡＭに転送する。
【００２０】
また、本発明では、上記線形補間演算のための初期設定演算回路ブロックは、複数画素の代表的な場所の値だけを先に計算し、その他の近傍の画素の値は代表点からのすでに計算された固定値の加算により計算する。
【００２１】
また、本発明では、上記線形補間演算のための初期設定演算回路ブロックは、注目点が三角形の内部かどうかの判定を一次式の正負判定により行う。
【００２２】
また、本発明では、上記線形補間演算のための初期設定演算回路ブロックは、ＡＳＩＣ手法により実装されている。
【００２３】
また、本発明では、上記線形補間処理回路ブロックは、画素を一定のまとまった範囲で処理を行い、その処理の範囲は表示メモリの形態にかかわりなく、そのページ境界には関係無く領域を設定する。
【００２４】
また、本発明では、物理的に分離されている回路ブロック間のバスの受け側にはＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファを設置し、ＦＩＦＯの満杯の手前を知らせる信号により受け側からデータの送出側に対して転送停止を行う。
【００２５】
また、本発明は、単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャの同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを受けてレンダリング処理を行うグラフィックス描画装置であって、表示データと少なくとも一つの図形要素が必要とするテクスチャデータをメモリブロックと、上記単位図形の頂点のポリゴンレンダリングデータの線形補間演算のための初期設定演算回路ブロックと、上記単位図形の頂点のポリゴンレンダリングデータを補間して、上記単位図形内に位置する画素の補間データを生成する補間処理回路ブロックと、上記補間データに含まれるテクスチャの同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、上記「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、上記メモリブロックからテクスチャデータを読み出し、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路ブロックとを少なくとも備えた論理回路ブロックと、上記論理回路ブロックの補間処理回路ブロックへのポリゴンレンダリングデータの入力部に、３次元グラフィックス描画プリミティブの１頂点分以上の大きさの入力バッファとを有し、上記メモリブロック、論理回路ブロック、および入力バッファが一つの半導体チップ内に混載され、外部とのデータ受け渡しのインタフェース部が、上記論理回路ブロックの片側に上記入力バッファに隣接して配置され、上記入力バッファおよび上記インタフェース部に隣接して線形補間演算のための初期設定演算回路ブロックが配置され、線形補間演算のための初期設定演算回路ブロックのすぐ隣に線形補間処理回路ブロックが配置され、線形補間演算処理回路ブロックのすぐ隣にテクスチャ処理回路ブロックが配置され、テクスチャ処理回路ブロックのブロックサイズである回路面積が、線形補間演算のための初期設定演算回路ブロックおよび線形補間処理回路ブロックそれぞれの回路面積よりも大きく設定されている。
【００２６】
表示しようとする表示データを十分保持できるだけのメモリ素子ブロックを同一チップに内蔵するグラフィックス描画装置において、各種処理を行なうレイアウトブロックの配置に関して、考慮することが、高い性能を実現することにとって非常に重要な点となってきている。データの転送ということが演算性能そのものよりも性能に与える影響は大きくなってきている傾向にあるわけである。
そのために、本発明においては下記のことを行う。
【００２７】
まずは、入力されるデータの処理が最適に行なわれるために、描画プリミティブ（主に三角形）の１頂点分以上の大きさの入力バッファを持つことから、ほとんどの処理は１頂点分のデータがそろった時点で開始できるようになる。
このため、次に処理できるまでの間に次の頂点のデータを並行して蓄積することが可能となり、処理の中断が減少する。
【００２８】
さらに、外部とのデータ受け渡しのインタフェース（Ｉ／Ｆ）部を論理回路ブロックの片側に配置することで、Ｉ／Ｆ部から処理ブロックまでの配線のばらつきと最大の長さの最小化が可能となる。
このことは、さらに基板上でのホストプロセッサとのインタフェース配線を等長にしやすくなるためにも、重要であり、このような配慮は高速なデータ転送には非常に重要な点となる。
【００２９】
そして、データ受け渡しのデータ入出力部のすぐ隣に線形補間演算のための初期設定演算用論理回路ブロックを配置し、線形補間演算のための初期設定演算用論理回路ブロックのすぐ隣に線形補間処理回路ブロックを配置している。
本発明に係る３次元グラフィックス描画においては、図形に模様を張りつけるためのテクスチャー処理を行うが、その処理は線形補間演算処理の直後に行われるため、その転送経路を最適にするために、線形補間演算処理回路ブロックのすぐ隣にテクスチャー処理回路ブロックを配置している。
【００３０】
表示データを十分保持できるだけのメモリ素子ブロックはチップの半分以上等、非常に大きくなる場合がほとんどあることから、表示バッファとグラフィックス処理を行うブロックの間の配線の長さそのものが比較的長くなり、また、そのばらつきも大きくなってしまう。
そのため、グラフィックス処理を行うブロックからは動きを制御できないレジスタを表示バッファへの入力または出力またはその両方に挿入配置することができるシステム構成にすることで、長くて信号転送が遅くなる配線での遅延時間を一定の範囲に固定することが可能となり、システム全体の性能を向上することができる。
【００３１】
また、表示データを十分保持できるだけのメモリブロックが２ポート以上のポートを持つように構成することで、メモリブロックそのものは大きさが大きくなるが、転送の性能を向上することが可能となる。
特に、３次元グラフィックス描画においては、表示メモリへの書き込みと、物理的には表示メモリと同一のテクスチャメモリからの読み出し、さらには、表示のための表示メモリからの読み出しがそれぞれ同時進行として行うことができることで全体の性能の向上が可能となる。
【００３２】
線形補間演算のための初期設定演算回路ブロックおよび線形補間処理回路ブロックの大きさがテクスチャ処理ブロックよりも大きくならないように全体のアーキテクチャを構成する。
【００３３】
また、メモリブロックを複数のブロックに分散させ、かつ分散ブロックを論理回路ブロックの周辺部に配置し、分散させたメモリブロックへのアクセスは、表示領域の少なくとも一つの方向に対する連続アクセスで分散メモリブロックを順番にアクセスするようアドレスをインターリーブすることにより、チップ内部の消費電力および電圧降下のばらつきが少なくなる。
また、メモリブロックがＤＲＡＭで構成される場合、メモリアクセスにおけるページブレークによる処理の中断を隠蔽することができる。
【００３４】
線形補間演算のための初期設定演算回路ブロックを同期パイプライン方式による時間並列構造、テクスチャ処理回路ブロックを、同じ構造の回路を複数並べる空間並列構造とすることにより、線形補間演算のための初期設定演算では、時間並列により、初期設定演算回路ブロックを、テクスチャ処理回路ブロックより小さくすることができる。また、メモリとのバンド幅がネックとなるテクスチャ処理では、空間並列により、メモリへのバス幅の確保が容易となる。
【００３５】
ディスプレイバッファとして使用しているメモリブロックがＤＲＡＭであり、その一部のポートにＳＲＡＭが直結され、メモリブロックにおいては、ＤＲＡＭの行方向のアクセスで複数の列データが一度にＳＲＡＭに転送される。
これにより、ＤＲＡＭのページブレークを隠蔽することができる。また、ＤＲＡＭへの他のサポートに対するアクセスの効率を向上することができる。
【００３６】
また、線形補間演算のための初期設定演算回路ブロックは、ＡＳＩＣ手法により実装され、複数画素の代表的な場所の値だけを先に計算し、その他の近傍の画素の値は代表点からのすでに計算された固定値の加算により計算し、また注目点が三角形の内部かどうかの判定を一次式の正負判定により行う。
これにより、線形補間演算部分をテクスチャ処理部分より小さく作ることができる。
【００３７】
線形補間処理回路ブロックは、画素を一定のまとまった範囲で処理を行い、その処理の範囲は表示メモリの形態にかかわりなく、そのページ境界には関係無く領域を設定することにより、実際には描画されない無駄な画素の処理を減少させることができ、目的の性能を達成するための回路規模を小さくすることができる。
【００３８】
さらに、物理的に分離されている回路ブロック間のバスの受け側にはＦＩＦＯバッファを設置し、ＦＩＦＯの満杯の手前を知らせる信号により受け側からデータの送出側に対して転送停止を行うことにより、回路ブロック間の制御信号にパイプを挿入することが可能となり、全体の動作周波数を向上することができる。
【００３９】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などのディスプレイ上に高速に表示する３次元コンピュータグラフィックスシステムについて説明する。
【００４０】
図１は、本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステム１０のシステム構成図である。
【００４１】
３次元コンピュータグラフィックスシステム１０は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステム１０では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００４２】
図１に示すように、３次元コンピュータグラフィックスシステム１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、およびレンダリング回路１４が、メインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
【００４３】
メインプロセッサ１１は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックデータを読み出し、このグラフィックデータに対して、座標変換、クリッピング（Ｃｌｉｐｐｉｎｇ）処理、ライティング（Ｌｉｇｈｔｉｎｇ）処理などのジオメトリ（Ｇｅｏｍｅｔｒｙ）処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１を、メインバス１５を介してレンダリング回路１４に出力する。
【００４４】
Ｉ／Ｏインタフェース回路１３は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
【００４５】
レンダリング回路１４に入力されるポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリンゴの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、実際のテクスチャ座標データ（ｕ，ｖ）が得られる。
レンダリング回路１４のメモリブロック（具体的には後記するテクスチャバッファ１４９ａ）に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【００４６】
以下、レンダリング回路１４について詳細に説明する。
図１に示すように、レンダリング回路１４は、ホストインタフェース（Ｉ／Ｆ）回路１４１、入力バッファ１４２、線形補間演算のための初期設定演算ブロックとしてのＤＤＡ(Digital Differential Analyzer) セットアップ回路１４３、線形補間処理ブロックとしてのトライアングルＤＤＡ回路１４４、テクスチャエンジン回路１４５、メモリインタフェース（Ｉ／Ｆ）回路１４６、ＣＲＴコントロール回路１４７、ＲＡＭＤＡＣ回路１４８、ＤＲＡＭ１４９およびＳＲＡＭ(Static RAM)１５０を有する。
【００４７】
本実施形態におけるレンダリング回路１４は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するＤＲＡＭ１４９とが混載されている。
ＤＲＡＭ１４９（およびＳＲＡＭ１５０）は、表示しようとする表示データを十分保持できるだけの大容量メモリブロックを構成し、図２に示すように、この大容量メモリブロックは、たとえば２つのブロックＡ，Ｂに分割されている。
そして、レンダリング回路１４においては、分割メモリブロックＡ，Ｂの間に、論理回路ブロックとしてのホストＩ／Ｆ１４１、入力バッファ１４２、ＤＤＡセットアップ回路１４３、トライアングルＤＤＡ回路１４４、テクスチャエンジン回路１４５、メモリＩ／Ｆ回路１４６を含むテクスチャ処理系等が配置されている。
換言すれば、分割メモリブロックＡ，Ｂは、論理回路ブロックの周辺部に配置されている。
【００４８】
以下、レンダリング回路１４の各ブロックの構成および機能、並びに論理回路ブロックとメモリブロックの配置関係等について、図面に関連付けて順を追って説明する。
【００４９】
ホストＩ／Ｆ１４１
ホストＩ／Ｆ１４１は、レンダリング回路１４の外部、すなわちメインプロセッサ１１等とのデータの受け渡しをメインバス１５を介して行う。
ホストＩ／Ｆ１４１は、たとえばメインプロセッサ１１によるポリゴンレンダリングデータＳ１１を受けて、入力バッファ１４２に供給する。
【００５０】
入力バッファ１４２
入力バッファ１４２は、たとえば入力されるデータの処理が最適に行なわれるために、描画プリミティブ（主に三角形）の１頂点分以上の大きさを有し、ホストＩ／Ｆ１４１により供給されるポリゴンレンダリングデータを格納し、格納したデータをＤＤＡセットアップ回路１４３に供給する。
【００５１】
ホストプロセッサ１１からのポリゴンレンダリングデータは、後述するように、物理座標系上の三角形の内部の各画素の色と深さ情報を三角形の各頂点の値を線形補間することにより求めるために用いられる。その補間演算のためのＤＤＡ演算を行うにあたり、三角形の水平方向と垂直方向の等分等を求めるセットアップ演算を行うモジュールであるＤＤＡセットアップ回路１４３に三角形の頂点データを、ホストＩ／Ｆ１４１、入力バッファ１４２を通して順々に転送する。
このとき、ホストＩ／Ｆ１４１を介して、入力バッファ１４２において三角形の複数の頂点分のデータが格納可能となっており、転送待ちをできるだけ隠すことで処理の効率をアップしている。
【００５２】
ＤＤＡセットアップ回路１４３
ＤＤＡセットアップ回路１４３は、後段のトライアングルＤＤＡ回路１４４において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１４３は、算出した変分データＳ１４３をトライアングルＤＤＡ回路１４４に出力する。
【００５３】
ＤＤＡセットアップ回路１４３の機能について図３に関連付けてさらに説明する。
上述したように、ＤＤＡセットアップ回路１４３の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報（色、テクスチャ座標）の与えられた三頂点Ｐ０（ｘ０，ｙ０）、Ｐ１（ｘ１，ｙ１）、Ｐ２（ｘ２，ｙ２）により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎データを算出することである。
三角形の描画はひとつひとつの画素の描画に集約されるが、そのために描画開始点における最初の値を求める必要がある。
最初の描画点における各種情報は、頂点からその最初の描画点までの水平距離に水平方向の変分を掛けた値と、垂直距離に垂直方向の変分を掛けた値を足し合わせたものとなる。いったん目的の三角形の内部の一つの整数格子上の値が求まれば、対象の三角形内部のその他の格子点における値は変分の整数倍で求めることが可能となる。
【００５４】
なお、三角形の各頂点データは、たとえばｘ，ｙ座標が１６ビット、ｚ座標が２４ビット、ＲＧＢカラー値が各１２ビット（＝８＋４）、ｓ，ｔ，ｑテクスチャ座標は各３２ビット浮動少数値（ＩＥＥＥフォーマット）等で構成される。
【００５５】
なお、このＤＤＡセットアップ回路１４３は、従来のようにＤＳＰ構造ではなく、ＡＳＩＣ手法により実装している。
具体的には、図４に示すように、多段に配置したレジスタ１４３１−１〜１４３３間に並列に複数の演算ユニットを並列に配置した演算ユニット群１４３２−１〜１４３２−３を挿入したフルデータパスロジック、換言すれば、同期パイプライン方式の時間並列構造として構成されている。
【００５６】
トライアングルＤＤＡ回路１４４
トライアングルＤＤＡ回路１４４は、ＤＤＡセットアップ回路１４３から入力した変分データＳ１４３を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路１４４は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ１４４としてテクスチャエンジン回路１４５に出力する。
たとえば、トライアングルＤＤＡ回路１４４は、並行して処理を行う矩形内に位置する８（＝２×４）画素分のＤＤＡデータＳ１４４をテクスチャエンジン回路１４５に出力する。
【００５７】
トライアングルＤＤＡ回路１４４の機能について図５に関連付けてさらに説明する。
上述したように、前段のＤＤＡセットアップ回路１４３により、三角形の描画開始点における最初の値、水平方向（Ｘ方向）および垂直方向（Ｙ方向）における先出の各種情報の傾き情報が準備される。
ここでの基本的処理は、与えられた三角形の内部に含まれる整数格子上の値を求めることであり、その処理の実体は描画開始点からの整数距離と傾きの掛け算ということになる。
また、実際には掛け算を行うというより、水平方向に１画素進めみ水平方向の傾き分を足しこめば１画素進んだ分の値が求められるということになる。よって、計算内容としては、一定値の加算処理となる。
【００５８】
テクスチャエンジン回路１４５
テクスチャエンジン回路１４５は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ１４９ａからの（Ｒ，Ｇ，Ｂ）データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路１４５は、たとえば所定の矩形内に位置する８画素についての処理を同時に並行して行う。
【００５９】
テクスチャエンジン回路１４５は、ＤＤＡデータＳ１４４が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４５には、たとえば図示しない除算回路が８個設けられており、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。また、８画素のうち代表点からの補間演算処理を行うように実装することも可能である。
【００６０】
また、テクスチャエンジン回路１４５は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４５は、メモリＩ／Ｆ回路１４６を介して、ＳＲＡＭ１５０あるいはＤＲＡＭ１４９に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４６を介して、ＳＲＡＭ１５０あるいはＤＲＡＭ１４９に含まれるテクスチャバッファ１４９ａに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データＳ１５０を得る。
ここで、ＳＲＡＭ１５０には、前述したようにテクスチャバッファ１４９ａに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路１４５は、読み出した（Ｒ，Ｇ，Ｂ）データＳ１５０の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４４からのＤＤＡデータＳ１４４に含まれる（Ｒ，Ｇ，Ｂ）データとを、それぞれ掛け合わせるなどして、画素データＳ１４５を生成する。
テクスチャエンジン回路１４５は、この画素データＳ１４５を最終的に画素のカラー値としてメモリＩ／Ｆ回路１４６に出力する。
【００６１】
なお、テクスチャバッファ１４９ａには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００６２】
テクスチャエンジン回路１４５は、フルカラー方式の場合には、テクスチャバッファ１４９ａから読み出した（Ｒ，Ｇ，Ｂ）データを直接用いる。
一方、テクスチャエンジン回路１４５は、インデックスカラー方式の場合には、あらかじめ作成しておいたカラーインデックステーブルのデータを、テクスチャカラールックアップテーブル（ＣＬＵＴ）バッファ１４９ｄより内蔵するＳＲＡＭ等で構成した一時保管バッファに転送しておいて、このカラールックアップテーブルを用いて、テクスチャバッファ１４９ａから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
たとえばカラールックアップテーブルがＳＲＡＭで構成された場合、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際の（Ｒ，Ｇ，Ｂ）データが出てくるといった使い方となる。
【００６３】
ここで、いわゆるテクスチャマッピング処理について、図６および図７に関連付けてさらに説明する。
図６は、テクスチャエンジン回路１４５におけるテクスチャマッピング処理回路の構成例を示すブロック図であり、図７は、実際のテクスチャマッピング処理をイメージ的に示す図である。
【００６４】
このテクスチャマッピング処理回路は、ＤＤＡ回路１４５１，１４５２、テクスチャ座標算出回路（Ｄｉｖ）１４５３、ＭＩＭＭＡＰレベル算出回路１４５４、フィルタ回路１４５５、第１の合成回路（ＦＵＮＣ）１４５６、および第２の合成回路（ＦＯＧ）１４５７を有している。
【００６５】
このテクスチャマッピング処理回路においては、図７（Ａ）に示すように、ＤＤＡ回路１４５１，１４５２において、三角形の内部で線形補間されたテクスチャの同時座標ｓ、ｔ、ｑを用いて、デカルト座標でのテクスチャの実際のアドレスに変換する（ｑでの除算）。
さらにＭＩＰＭＡＰ等を行う場合は、ＭＩＭＭＡＰレベル算出回路１４５４おいてＭＩＰＭＡＰのレベルの算出を行う。そして、図７（Ｂ）に示すように、テクスチャ座標算出回路１４５３においてテクスチャ座標の算出を行う。
また、フィルタ回路１４５５において、ＤＲＡＭ１４９に含まれるテクスチャバッファからそれぞれのレベルのテクスチャデータを読み出し、そのまま使うポイントサンプリング（Ｐｏｉｎｔ  Ｓａｍｐｌｉｎｇ）または、ｂｉ−Ｌｉｎｅａ（４近傍）補間、Ｔｒｉ−Ｌｉｎｅａ補間等を行う。
そこで得られたテクスチャーカラーに対して次の処理を行う。すなわち、第１の合成回路１４５６において、入力された物体カラーとテクスチャーカラーを合成し、さらに第２の合成回路１４５７でそれにフォグカラーを合成して、最終的に描画する画素のカラーを決定する。
【００６６】
メモリＩ／Ｆ回路１４６
メモリＩ／Ｆ回路１４６は、テクスチャエンジン回路１４５から入力した画素データＳ１４５に対応するｚデータと、ＤＲＡＭ１４９に含まれるｚバッファ１４９ｃに記憶されているｚデータとの比較を行い、入力した画素データＳ１４５によって描画される画像が、前回、ディスプレイバッファ１４９ｂに書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データＳ１４３に対応するｚデータでｚバッファ１４９ｃに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４６は、（Ｒ，Ｇ，Ｂ）データをディスプレイバッファ１４７ｂに書き込む。
【００６７】
さらに、メモリＩ／Ｆ回路１４６は、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャデータを格納しているメモリブロックをそのテクスチャアドレスより算出し、そのメモリブロックにのみ読み出し要求を出すことにより、テクスチャデータを読み出す。この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャデータの読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【００６８】
メモリＩ／Ｆ回路１４６は、描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データをモディファイ書き込みするために読み出し、モディファイ後同じアドレスへ書き戻す。
隠れ面処理を行なう場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータをモディファイ書き込みするため読み出し、必要ならばモディファイ後同じアドレスへ書き戻す。
【００６９】
また、メモリＩ／Ｆ回路１４６は、テクスチャエンジン回路１４３からのＳＲＡＭ１５０に、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を受けた場合には、ＳＲＡＭ１５０に記憶された（Ｒ，Ｇ，Ｂ）データＳ１５０を読み出す。
また、メモリＩ／Ｆ回路１４６は、ＣＲＴコントロール回路１４７から表示データを読み出す要求を受けた場合には、この要求に応じて、ディスプレイバッファ１４９ｂから一定の固まり、たとえば８画素あるいは１６画素単位で表示データを読み出す。
【００７０】
メモリＩ／Ｆ回路１４６は、ＤＲＡＭ１４９およびＳＲＡＭ１５０へのアクセス（書き込みまたは読み出し）を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスＡＤＲＷと書き込みデータＤＴＷが書き込み系回路で処理されてＤＲＡＭ１４９に書き込み、読み出しの場合には読み出し系回路で処理されてＤＲＡＭ１４９またはＳＲＡＭ１５０から読み出す。
そして、メモリＩ／Ｆ回路１４６は、所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４９へのアクセスを、たとえば１６画素単位で行う。
【００７１】
このようなメモリとのデータのやりとりにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルＤＤＡ部分とテクスチャエンジン部分を並列実効形式で、同じ回路を設ける（空間並列）か、または、パイプラインを細かく挿入する（時間並列）ことで、複数画素の同時算出を行っている。
メモリブロックは表示領域において隣接した部分は、後述するように異なるメモリブロックとなるように配置してあるので、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのメモリブロックの動作確率は非常に高くなっている。
【００７２】
ＣＲＴコントロール回路１４７
ＣＲＴコントロール回路１４７は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示する表示アドレスを発生し、ＤＲＡＭ１４９に含まれるディスプレイバッファ１４９ｂから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。
この要求に応じて、メモリＩ／Ｆ回路１４６は、ディスプレイバッファ１４９ｂから一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４７は、ディスプレイバッファ１４９ｂから読み出した表示データを記憶するたとえばＦＩＦＯ回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１４６に、ＲＧＢのインデックス値を出力する。
【００７３】
ＲＡＭＤＡＣ回路１４８
ＲＡＭＤＡＣ回路１４８は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４７から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１４８は、この生成されたＲ，Ｇ，ＢデータをＣＲＴに出力する。
【００７４】
ＤＲＡＭ１４９
ＤＲＡＭ１４９は、テクスチャバッファ１４９ａ、ディスプレイバッファ１４９ｂ、ｚバッファ１４９ｃおよびテクスチャＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）バッファ１４９ｄとして機能する。
また、ＤＲＡＭ１４９は、後述するように、同一機能を有する複数（本実施形態では４個）のモジュールに分割されている。
【００７５】
また、ＤＲＡＭ１４９には、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャＣＬＵＴバッファ１４９ｄに格納されている。
インデックスおよびカラールックアップテーブル値は、上述したように、テクスチャ処理に使われる。すなわち、通常はＲ，Ｇ，Ｂそれぞれ８ビットの合計２４ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば２５６色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデータとすることが可能となる。
これにより、テクスチャデータの圧縮が可能となり、内蔵ＤＲＡＭの効率良い利用が可能となる。
【００７６】
さらにＤＲＡＭ１４９には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、たとえばメモリブロックの所定の位置、たとえば先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。
図面に関連付けて概念的に説明すると、図８（Ａ）〜（Ｃ）に示すように、いわゆるベースポインタ（ＢＰ）で示された位置から図中ＦＢで示す領域に、たとえば２４ビット幅で表示データと奥行きデータが格納され、残りの空いた領域である８ビット幅の領域に図中ＴＢで示すようにテクスチャデータが格納される。これらは表示データとテクスチャデータのユニファイドメモリ（ＵｎｉｆｉｅｄＭｅｍｏｒｙ）化ということになる。
これにより、テクスチャデータを効率よく格納できることになる。
【００７７】
以上のように、ＤＤＡセットアップ回路１４３、トライアングルＤＤＡ回路１４４、テクスチャエンジン回路１４５、メモリＩ／Ｆ回路１４６等における所定を経て、最終的なメモリアクセスがピクセル（Ｐｉｘｅｌ；Ｐｉｃｔｕｒｅ  Ｃｅｌｌ  Ｅｌｅｍｅｎｔ）という描画画素単位になる。
【００７８】
以上のような処理を行うために、それぞれの論理的な機能に対応したブロックが構成され、それらは図２のレイアウト図に示したような配置関係をもって配置される。
【００７９】
外部とのデータ受け渡しのためのホストＩ／Ｆ１４１を論理回路ブロックの片側に配置している。
これにより、Ｉ／Ｆから処理ブロックまでの配線のばらつきと最大の長さの最小化が可能となる。
このホストＩ／Ｆ１４１に隣接して入力頂点データ等のための入力バッファ１４２を配置している。
そして、入力バッファ１４２のすぐ隣に線形補間演算のための初期設定演算ブロック、すなわちＤＤＡセットアップ回路１４３を配置している。
これにより、入力された頂点データ取り出しのための配線ばらつきを極力減らし、半導体性能限界のデータ転送を可能としている。
【００８０】
さらに、線形補間演算のための初期設定演算ブロックであるＤＤＡセットアップ回路１４３のすぐ隣に線形補間処理ブロックとしてのトライアングルＤＤＡ回路１４４を配置している。
また、３次元グラフィックス描画において、図形に模様を張りつけるためのテクスチャー処理を行うが、その処理は線形補間演算処理の直後に行われるため、その転送経路を最適にするために、線形補間演算処理ブロックとしてのトライアングルＤＤＡ回路１４４のすぐ隣にテクスチャ処理ブロックであるテクスチャエンジン回路１４５およびメモリＩ／Ｆ回路１４６を配置している。
【００８１】
表示データを十分保持できるだけのメモリブロック（Ａ，Ｂ）はチップの半分以上等の面積となり、非常に大きくなる場合がほとんどなので、ディスプレイバッファとグラフィックス処理を行なうブロックの間の配線の長さそのものが比較的長くなり、また、そのばらつきも大きくなってしまう。
そのため、図２に示すように、グラフィックス処理を行うブロックからは動きを制御できないレジスタ１５１，１５２をディスプレイバッファへの入力または出力またはその両方に挿入配置することができるシステム構成にしている。
これにより、長くて信号転換が遅くなる配線での遅延時間を一定の範囲に固定することが可能となり、システム全体の性能を向上させることができる。
【００８２】
また、表示データを十分保持できるだけのメモリブロックが２ポート以上のポートを持つように構成している。
これにより、メモリブロックそのものは大きさが大きくなるが、転送の性能を向上することが可能となる。
特に、３次元グラフィックス描画においては、表示メモリへの書きこみと、物理的には表示メモリと同一のテクスチャメモリからの読み出し、さらには、表示のための表示メモリからの読み出しがそれぞれ同時進行して行うことができることで全体の性能の向上が可能となる。
本実施形態では、図２に示すように、データの入出力ポートとしてメモリブロックＡ，Ｂそれぞれに第１ポート１５３，１５４を設け、さらに、読み出し専用ポートとしてメモリブロックＡ、Ｂそれぞれに第２ポート１５５，１５６を設置している。
【００８３】
なお、図２の例では、読み出し専用ポートのデータ出力側に動きを制御できないレジスタ１５１，１５２が配置されているが、書きこみデータ線側に配置することがより有効な場合もあるし、メモリブロックへ入力される読み出しおよび書きこみアドレス線に設置する方がよい場合もある。
これは、メモリブロックと論理ブロックの大きさとか、配線関係により左右される。
【００８４】
また、本実施形態では、物理的に分離されている回路ブロック間のバスの受け側にはＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファを設置し、ＦＩＦＯの満杯の手前を知らせる信号により受け側からデータの送出側に対して転送停止を行うように構成されている。
このような構成を採用することにより、回路ブロック間の制御信号にパイプを挿入することが可能となり、全体の動作周波数を向上することができる。
【００８５】
上述したような３次元グラフィックス処理を行うにあたり、線形補間演算のための初期設定演算ブロックおよび線形補間処理ブロック、すなわちＤＤＡセットアップ回路１４３およびトライアングルＤＤＡ回路１４４のそれぞれが、テクスチャ処理系ブロックのブロックサイズより大きくならないようにするために、初期設定演算ブロックおよび線形補間処理ブロックでの処理の内容を厳選している。
【００８６】
このことについて、主な描画要素としては三角形であるので、三角形の描画に注目して特に処理効率を向上させた内容を説明する。
【００８７】
初期設定演算ブロックであるＤＤＡセットアップ回路１４３においては、最初に三角形の頂点に関してｙ軸方向の座標によるソートを行い、処理する場合の形状の場合わけができるだけ少なくなるようにする。
さらに、三角形内部の各種パラメータ（Ｚ，Ｒ，Ｇ，Ｂ，Ｓ，Ｔ，Ｑ，α，Ｆ等）の面内におけるＸ軸およびＹ軸方向の傾きを数学的に算出する。
【００８８】
具体的には、図９において、頂点Ｐ０→Ｐ２辺上のｙ方向変位でのＶの変分ΔＶ／Δｙは、次のようになる。
【００８９】
【数１】
ΔＶ／Δｙ＝ΔＶ０２／Δｙ０２            …（１）
【００９０】
頂点Ｐ１におけるｘの変分Δｘ、およびパラメータＶの変分ΔＶは下記の（２）式および（３）式のようになる。
【００９１】
【数２】
Δｘ＝（ｘ１−（ｘ０＋（Δｘ０２／Δｙ０２）＊ｙ０１）  …（２）
【００９２】
【数３】
ΔＶ＝Ｖ１−（Ｖ０＋（ΔＶ０２／Δｙ０２）＊ｙ０１）    …（３）
【００９３】
よって、ｘ軸方向でのパラメータＶの傾きΔＶ／Δｘは次のようになる。
【００９４】
【数４】
ΔＶ／Δｘ＝（Ｖ１−（Ｖ０＋（ΔＶ０２／Δｙ０２）＊ｙ０１）｝
／｛（ｘ１−（ｘ０＋（Δｘ０２／Δｙ０２）＊ｙ０１）｝
＝｛ΔＶ０１−（ΔＶ０２／Δｙ０２）＊Δｙ０１｝
／｛Δ０１−（Δｘ０２／Δｙ０２）＊Δｙ０１｝…（４）
（但し、ΔＶ０１＝Ｖ１−Ｖ０）
【００９５】
さらに、（４）式の分母分子にΔｙ０２を掛けて（５）式を得る
【００９６】
【数５】
ΔＶ／Δｘ＝｛ΔＶ０１＊Δｙ０２−Δｙ０１＊ΔＶ０２｝
／｛Δｘ０１＊Δｙ０２−Δｙ０１＊Δｘ０２）…（５）
【００９７】
同様にして、今度は頂点Ｐ０からＰ１−Ｐｍへの垂線をおろし、そこでのパラメータＶでの変分を求めることで、ｙ軸方向でのパラメータＶの傾きは次のようになる。
【００９８】
【数６】
ΔＶ／Δｙ＝｛ΔＶ０１＊Δｘ０２−Δｘ０１＊ΔＶ０２｝
／｛Δｘ０１＊Δｙ０２−Δｙ０１＊Δｘ０２）…（６）
【００９９】
なお、（５）式および（６）式の分母は、ベクトルＰ０→Ｐ１（ｘ１−ｘ０，ｙ１−ｙ０）とベクトルＰ０→Ｐ２（ｘ２−ｘ０，ｙ２−ｙ０）の外積である。
【０１００】
以上のようにしてＸ軸およびＹ軸方向の傾きを数学的に算出することにより、三角形のソート結果から場合分けせずに面内の傾きを算出できることになる。
【０１０１】
また、描画を行う方向に関しては開始点としてＹ軸方向に最も長い辺を開始辺として、その他の辺を終了辺とするようにＸ方向の描画方向を決める。
対象としている三角形の内部の点であるかどうかの判定を次のように行い、できるだけシンプルな演算で判定ができるようになっている。
【０１０２】
たとえば、図１０に示すように、与えられた三角形の頂点を結ぶ一つの直線の端点を（ｘ０，ｙ０）、（ｘ１，ｙ１）とすると、直線の方程式は次のようになる。
【０１０３】
【数７】
ｆ（ｘ，ｙ）＝（ｙ１−ｙ０）（ｘ−ｘ０）＋（ｘ０−ｘ１）（ｙ−ｙ０）…（７）
【０１０４】
このｆ（ｘ，ｙ）を求めて、その符号を調べると三角形の特定の辺の右か左かが分かる。
この処理を三角形を構成する３辺に対して実行することで、内外判定が可能となる。
また、このｆ（ｘ，ｙ）はｘ、ｙに関する一次式なので、ＤＤＡ手法により演算可能であり、一旦内部の点が決まれば、そのすぐ隣の点に関して固定値の加算演算処理によりｆ（ｘ，ｙ）が算出可能である。
【０１０５】
ＤＤＡ手法とは、次の仕組みを利用して、演算量を減らすものである。
ｆ（ｘ，ｙ）は、
ｘ＝ｘ＋１で（ｙ１−ｙ０）増加
ｙ＝ｙ＋１で（ｘ０−ｘ１）増加
といった演算で算出可能である。
【０１０６】
また、本実施形態のＤＤＡ処理において、画素を一定のまとまった範囲（２×８）で処理を行いおこない、その処理の範囲は表示メモリがＤＲＡＭであった場合であってもそのページが境界には関係無く領域を設定する、いわゆる２×８移動打ち込み（Ｍｏｖｉｎｇ  Ｓｔａｍｐ）を行っている。
【０１０７】
たとえば、まず、最初の内部画素を算出して、図１１に示すように、２×８のスタンプを描画する。このとき、画素内外判定で描画マスクを作成する。
そして、ｘ方向で最初の内部画素位置を記憶し、２×８のスタンプ描画を終了辺まで続ける。
また、ｙ方向に１スタンプ部分進めて記憶しておいたｘ位置からスタンプを開始する。
【０１０８】
この移動打ち込み処理を採用することにより、実際には描画されない無駄な画素の処理を減少させることができ、目的の性能を達成するための回路規模を小さくすることができる。
【０１０９】
テクスチャ処理ブロックに至るまでのデータ処理において、上記のようなシンプルな処理を行うことで、テクスチャ処理ブロックよりも小さな規模でのブロックの構成が可能となる。
そして、それぞれのブロックの配線を無理無く行えるようにできるようになり、線形補間演算のための初期設定演算ブロックおよび線形補間処理ブロックの大きさがテクスチャ処理ブロックよりも大きくならないように全体のアーキテクチャを構成している。
すなわち、本実施形態においては、ＤＤＡセットアップ回路１４３およびトライアングルＤＤＡ回路１４４のブロックの大きさが、テクスチャエンジン回路１４５およびメモリＩ／Ｆ回路１４６を含むテクスチャ処理系よりも大きくならないように全体のアーキテクチャを構成している。
【０１１０】
また、テクスチャ処理は、大容量のメモリを頻繁にアクセスすることになるので、その部分はできるだけチップの真中に配置できるようになっていることが重要であり、テクスチャ処理に至るまでのデータ処理をうまく配置して、しかもテクスチャ処理ブロックがチップのほぼ真中あたりに配置できるためにも、テクスチャ処理に至るまでのデータ処理ブロックをテクスチャ処理ブロックよりも小さくなるようにしている。
【０１１１】
次に、上述したＤＲＡＭ１４９、ＳＲＡＭ１５０、並びに、ＤＲＡＭ１４９およびＳＲＡＭ１５０へアクセスするメモリＩ／Ｆ回路１４６の具体的な構成例を図面に関連付けて説明する。
【０１１２】
図１２に示すように、図１に示すＤＲＡＭ１４７およびＳＲＡＭ１４８は、４個のメモリモジュール２００，２１０，２２０，２３０に分割されている。
【０１１３】
メモリモジュール２００は、メモリ２０１，２０２を有する。
メモリ２０１は、ＤＲＡＭ１４９の一部を構成するバンク２０１Ａ，２０１Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２０１Ｃ，２０１Ｄとを有する。
また、メモリ２０２は、ＤＲＡＭ１４９の一部を構成するバンク２０２Ａ，２０２Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２０２Ｃ，２０２Ｄとを有する。
なお、ＳＲＡＭ１５０を構成するバンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄに対しては同時アクセスが可能である。
【０１１４】
メモリモジュール２１０は、メモリ２１１，２１２を有する。
メモリ２１１は、ＤＲＡＭ１４９の一部を構成するバンク２１１Ａ，２１１Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２１１Ｃ，２１１Ｄとを有する。
また、メモリ２１２は、ＤＲＡＭ１４９の一部を構成するバンク２１２Ａ，２１２Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２１２Ｃ，２１２Ｄとを有する。
なお、ＳＲＡＭ１５０を構成するバンク２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄに対しては同時アクセスが可能である。
【０１１５】
メモリモジュール２２０は、メモリ２２１，２２２を有する。
メモリ２２１は、ＤＲＡＭ１４９の一部を構成するバンク２２１Ａ，２２１Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２２１Ｃ，２２１Ｄとを有する。
また、メモリ２２２は、ＤＲＡＭ１４９の一部を構成するバンク２２２Ａ，２２２Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２２２Ｃ，２２２Ｄとを有する。
なお、ＳＲＡＭ１５０を構成するバンク２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄに対しては同時アクセスが可能である。
【０１１６】
メモリモジュール２３０は、メモリ２３１，２３２を有する。
メモリ２３１は、ＤＲＡＭ１４９の一部を構成するバンク２３１Ａ，２３１Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２３１Ｃ，２３１Ｄとを有する。
また、メモリ２３２は、ＤＲＡＭ１４７の一部を構成するバンク２３２Ａ，２３２Ｂと、ＳＲＡＭ１５０の一部を構成するバンク２３２Ｃ，２３２Ｄとを有する。
なお、ＳＲＡＭ１５０を構成するバンク２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄに対しては同時アクセスが可能である。
【０１１７】
ここで、メモリモジュール２００，２１０，２２０，２３０の各々は、図１に示すテクスチャバッファ１４９ａ、ディスプレイバッファ１４９ｂ、Ｚバッファ１４９ｃおよびテクスチャＣＬＵＴバッファ１４９ｄの全ての機能を持つ。
すなわち、メモリモジュール２００，２１０，２２０，２３０の各々は、対応する画素のテクスチャデータ、描画データ（（Ｒ，Ｇ，Ｂ）データ）、ｚデータおよびテクスチャカラールックアップテーブルデータの全てを記憶する。
ただし、メモリモジュール２００，２１０，２２０，２３０は、相互で異なる画素についてのデータを記憶する。
ここで、同時に処理される１６画素についてのテクスチャデータ、描画データ、ｚデータおよびテクスチャカラールックアップテーブルデータが、相互に異なるバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶される。
これにより、メモリＩ／Ｆ回路１４６は、ＤＲＡＭ１４９に対して、たとえば移動打ち込み処理のために２×８画素の１６画素についてのデータが同時にアクセス可能になる。
なお、メモリＩ／Ｆ回路１４６は、後述するように、いわゆる所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４９へのアクセス（書き込み）を行う。
【０１１８】
図１３は、ＤＲＡＭ１４９のバッファ（たとえばテクスチャバッファ）としての構成例を示す概略図である。
図１３に示すように、２×８画素（ピクセル）の領域でメモリアクセスされたデータは、ページ（ロウ）とブロック（カラム）で示される領域に格納される。
各ロウＲＯＷ０〜ＲＯＷｎ＋１は、図１３（Ａ）に示すように、それぞれ４個のカラム（ブロック）Ｍ０Ａ，Ｍ０Ｂ，Ｍ１Ａ，Ｍ１Ｂに区分けされている。
そして、ｘ方向について８画素毎のバウンダリ、かつｙ方向について偶数のバウンダリでの領域でアクセス（書き込み、読み出し）が行われる。
これにより、たとえばロウＲＯＷ０とロウＲＯＷ１をまたぐような領域へのアクセスが行われることがなく、いわゆるページ違反が発生することがない。
【０１１９】
なお、バンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄ，２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄ，２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄ，２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄには、それぞれバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶されているテクスチャデータが記憶される。
【０１２０】
次に、インターリーブ方式のアドレッシングに基づくテクスチャバッファ１４９ａにおけるテクスチャデータの記憶パターンについて、図１４〜図１６に関連付けてさらに詳細に説明する。
図１４はテクスチャデータに含まれる同時にアクセスが行われる画素データを説明するための図、図１５はテクスチャデータを構成する単位ブロックを説明するための図、図１６はテクスチャバッファのアドレス空間を説明するための図である。
【０１２１】
本実施形態の場合、図１４に示すように、テクスチャデータに含まれる、２×８のマトリクス状に配置された画素の色データを示す画素データＰ０〜Ｐ１５が、同時にアクセスされる。
【０１２２】
画素データＰ０〜Ｐ１５は、テクスチャバッファ１４９ａを構成するＳＲＡＭ１５０の異なるバンクに記憶される必要がある。
本実施形態では、画素データＰ０，Ｐ１，Ｐ８，Ｐ９が、それぞれ図１２に示すメモリ２０１のバンク２０１Ｃ，２０１Ｄおよびメモリ２０２のバンク２０２Ｃ，２０２Ｄに記憶される。また、画素データＰ２，Ｐ３，Ｐ１０，Ｐ１１が、それぞれ図１２に示すメモリ２１１のバンク２１１Ｃ，２１１Ｄおよびメモリ２１２のバンク２１２Ｃ，２１２Ｄに記憶される。また、画素データＰ４，Ｐ５，Ｐ１２，Ｐ１３が、それぞれ図１２に示すメモリ２２１のバンク２２１Ｃ，２２１Ｄおよびメモリ２２２のバンク２２２Ｃ，２２２Ｄに記憶される。さらに、画素データＰ６，Ｐ７，Ｐ１４，Ｐ１５が、それぞれ図１２に示すメモリ２３１のバンク２３１Ｃ，２３１Ｄおよびメモリ２３２のバンク２３２Ｃ，２３２Ｄに記憶される。
【０１２３】
本実施形態では、同時に処理される矩形領域内に位置する画素の画素データＰ０〜Ｐ１５の組を単位ブロックＲｉと呼び、たとえば、１枚のイメージを示すテクスチャデータは、図１５に示すように、Ｂ×Ａのマトリクス状に配置された単位ブロックＲ０〜ＲＢＡ−１からなる。
単位ブロックＲ０〜ＲＢＡ−１は、図１６に示すように、１次元のアドレス空間で連続したアドレスを持つように、テクスチャバッファ１４９ａを構成するＤＲＡＭ１４９に記憶されている。また、各単位ブロックＲ０〜ＲＢＡ−１内の画素データＰ０〜Ｐ１５は、１次元のアドレス空間内で連続したアドレスを持つように、ＳＲＡＭ１５０の相互に異なるバンクに記憶される。
すなわち、テクスチャバッファ１４９ａには、同時にアクセスが行われる画素データからなる単位ブロックが、一次元のアドレス空間で連続したアドレスを持つように記憶される。
【０１２４】
以下に、メモリＩ／Ｆ回路１４６の具体的な構成例について、図１２に関連付けて説明する。
【０１２５】
メモリＩ／Ｆ回路１４６は、図１２に示すように、ディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０、メモリコントローラ３５０，３６０，３７０，３８０および読み出しコントローラ３９０を有する。
【０１２６】
ディストリビュータ３００は、書き込み時に、１６画素分の（Ｒ，Ｇ，Ｂ）データＤＴＷおよび書き込みアドレスＡＤＲＷを入力し、これらを、各々４画素分のデータからなる４つの画像データＳ３０１，Ｓ３０２，Ｓ３０３，Ｓ３０４に分割し、その画像データおよび書き込みアドレスをそれぞれアドレスコンバータ３１０，３２０，３３０，３４０に出力する。
ここで、１画素分の（Ｒ，Ｇ，Ｂ）データは各８ビット、ｚデータは、それぞれ３２ビットからなる。
【０１２７】
アドレスコンバータ３１０，３２０，３３０，３４０は、書き込み時に、ディストリビュータ３００から入力した（Ｒ，Ｇ，Ｂ）データおよびｚデータに対応したアドレスを、それぞれメモリモジュール２００，２１０，２２０，２３０内のアドレスに変換し、それぞれ変換したアドレスＳ３１０，Ｓ３２０，Ｓ３３０，Ｓ３４０と分割された画像データをメモリコントローラ３５０，３６０，３７０，３８０に出力する。
【０１２８】
図１７は、このディストリビュータ３００の画像データ処理（ピクセル処理）を模式的に示す図である。
この図は、前述した図１３〜図１６に対応するものであり、ディストリビュータ３００は、ＤＲＡＭ１４９に対して、たとえば２×８画素の１６画素についてのデータが同時にアクセス可能になるように画像データ処理を行う。
そして、ｘ方向について８画素毎のバウンダリ、かつｙ方向について偶数のバウンダリでの領域でアクセス（書き込み、読み出し）を行うようなアドレッシングとなるように画像データの処理を行う。
これによりＤＲＡＭ１４９は、アクセスの先頭がメモリセル番号ＭＣＮ「１」，「２」，「３」にはならず、必ずメモリセル番号ＭＣＮ「０」となり、ページ違反の発生等が防止される。
また、ディストリビュータ３００は、各ＤＲＡＭモジュール２２０〜２３０に対して、表示領域において隣接した部分は、異なるＤＲＡＭモジュールへの配置となるように画像データの処理を行う。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのＤＲＡＭモジュールの動作確率は非常に高くなっている。
【０１２９】
メモリコントローラ３５０，３６０，３７０，３８０は、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してメモリモジュール２００，２１０，２２０，２３０に接続されており、書き込み時および読み出し時にメモリモジュール２００，２１０，２２０，２３０に対してのアクセスを制御する。
【０１３０】
具体的には、書き込み時には、メモリコントローラ３５０，３６０，３７０，３８０は、ディストリビュータ３００から出力され、アドレスコンバータ３５０，３６０，３７０，３８０から入力した４画素分の（Ｒ，Ｇ，Ｂ）データおよびｚデータを、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介してメモリモジュール２００，２１０，２２０，２３０に同時に書き込む。
このとき、たとえば、メモリモジュール２００では、前述したように、バンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂの各々に、１画素分の（Ｒ，Ｇ，Ｂ）データおよびｚデータが記憶される。メモリモジュール２１０，２２０，２３０についても同じである。
【０１３１】
また、各メモリコントローラ３５０，３６０，３７０，３８０は、自身のステートマシンがいわゆるアイドル（ＩＤＬＥ）状態にあるときに、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０を読み出しコントローラ３９０にアクティブで出力し、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答した読み出しコントローラ３９０による読み出しアドレスおよび読み出し要求信号Ｓ３９１を受けて、読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してデータの読み出しを行い、読み出し系配線群３５１，３６１，３７１，３８１、並びに配線群４４０を介して読み出しコントローラ３９０に出力する。
【０１３２】
なお、本実施形態では、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒの配線本数は１２８本（１２８ビット）、読み出し系配線群３５１，３６１，３７１，３８１の配線本数は２５６本（２５６ビット）、ならびに読み出し系配線群４４０の配線本数は１０２４本（１０２４ビット）である。
【０１３３】
読み出しコントローラ３９０は、アドレスコンバータ３９１およびデータ演算処理部３９２により構成されている。
アドレスコンバータ３９１は、読み出しアドレスＡＤＲＲを受けた場合、メモリコントローラ３５０，３６０，３７０，３８０からのアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０をすべてアクティブで受けると、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答して、８画素あるいは１６画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号Ｓ３９１を各メモリコントローラ３５０，３６０，３７０，３８０に出力する。
データ演算部３９２は、読み出しアドレスおよび読み出し要求信号Ｓ３９１に応答してを各メモリコントローラ３５０，３６０，３７０，３８０で読み出された８画素あるいは１６画素単位の、テクスチャデータ、（Ｒ，Ｇ，Ｂ）データ、ｚデータおよびテクスチャカラールックアップテーブルデータを配線群４４０を介して入力し、所定の演算処理を行って、要求先、たとえばテクスチャエンジン回路１４５またはＣＲＴコントロール回路１４７に出力する。
【０１３４】
読み出しコントローラ３９０は、上述したように、メモリコントローラ３５０，３６０，３７０，３８０のすべてがアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号Ｓ３９１をメモリコントローラ３５０，３６０，３７０，３８０に出力し、読み出しデータを受けることから、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ３９０は、データを一時的に保持するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）回路等の保持回路を設ける必要がなく、回路規模の縮小化が図られている。
【０１３５】
次に、上記構成による動作を説明する。
３次元コンピュータグラフィックスシステム１０においては、グラフィックス描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、描画しようとしている画素と対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
【０１３６】
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のホストＩ／Ｆ１４１、入力バッファ１４２を通してＤＤＡセットアップ回路１４３に順々に転送される。
このとき、ホストＩ／Ｆ１４１を介して、入力バッファ１４２において三角形の複数の頂点分のデータが格納可能となっており、転送待ちをできるだけ隠すことで処理の効率をアップしている。
【０１３７】
ＤＤＡセットアップ回路１４３においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データＳ１４３が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データＳ１４３として隣接して配置されているトライアングルＤＤＡ回路１４４に出力される。
【０１３８】
トライアングルＤＤＡ回路１４４においては、変分データＳ１４３を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４４として、トライアングルＤＤＡ回路１４４から隣接して配置されているテクスチャエンジン回路１４５に出力される。
【０１３９】
テクスチャエンジン回路１４５においては、ＤＤＡデータＳ１４４が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
【０１４０】
次に、テクスチャエンジン回路１４５からメモリＩ／Ｆ回路１４６に対して生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１４６を介して、ＳＲＡＭ１５０に記憶された（Ｒ，Ｇ，Ｂ）データＳ１５０が読み出される。
次に、テクスチャエンジン回路１４５において、読み出した（Ｒ，Ｇ，Ｂ）データＳ１５０の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４４からのＤＤＡデータＳ１４４に含まれる（Ｒ，Ｇ，Ｂ）データとが掛け合わされ、画素データＳ１４５として生成される。
この画素データＳ１４３は、テクスチャエンジン回路１４５からメモリＩ／Ｆ回路１４６に出力される。
【０１４１】
フルカラーの場合には、テクスチャバッファ１４９ａからのデータ（Ｒ，Ｇ，Ｂ）を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル（Ｃｏｌｏｒ  Ｉｎｄｅｘ  Ｔａｂｌｅ）のデータが、テクスチャＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）バッファ１４９ｄより、ＳＲＡＭ等で構成される一時保管バッファへ転送され、この一時保管バッファのＣＬＵＴを用いてカラーインデックスから実際のＲ，Ｇ，Ｂカラーが得られる。
なお、ＣＵＬＴがＳＲＡＭで構成された場合は、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際のＲ，Ｇ，Ｂカラーが出てくるといった使い方となる。
【０１４２】
そして、メモリＩ／Ｆ回路１４６において、テクスチャエンジン回路１４５から入力した画素データＳ１４５に対応するｚデータと、ｚバッファ１４９ｃに記憶されているｚデータとの比較が行われ、入力した画素データＳ１４５によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データＳ１４５に対応するｚデータでｚバッファ１４９ｃに記憶されたｚデータが更新される。
【０１４３】
次に、メモリＩ／Ｆ回路１４６において、（Ｒ，Ｇ，Ｂ）データがディスプレイバッファ１４９ｂに書き込まれる。
これら書き込む（更新も含む）べきデータは、書き込み系回路である、ディストリビュータ３００、アドレスデコーダ３１０，３２０，３３０，３４０を介してメモリコントローラ３５０，３６０，３７０，３８０に供給され、メモリコントローラ３５０，３６０，３７０，３８０によって、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介し所定のメモリに対して並列的に書き込まれる。
【０１４４】
メモリＩ／Ｆ回路１４６においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【０１４５】
描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データがモディファイ書き込み（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【０１４６】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【０１４７】
このようなメモリＩ／Ｆ回路１４６に基づくＤＲＡＭ１４９とのデータのやり取りにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルＤＤＡ回路１４４とテクスチャエンジン回路１４５の部分を並列実行形式で、パイプラインを細かく挿入する（時間並列）か、または、同じ回路に設ける（空間並列）ことで、部分的に動作周波数を増加させるという手段により、複数画素の同時算出が行われる。
【０１４８】
また、画素データは、メモリＩ／Ｆ回路１４６の制御のもと、表示領域において隣接した部分は、異なるＤＲＡＭモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。
このため、それぞれのＤＲＡＭモジュールの動作確率は非常に高い。
【０１４９】
そして、図示しないＣＲＴに画像を表示する場合には、ＣＲＴコントロール回路１４７において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４６へ表示データ転送の要求が出される。
メモリＩ／Ｆ回路１４６では、その要求に従い、一定のまとまった固まりで、表示データがＣＲＴコントロール回路１４７に転送される。
ＣＲＴコントロール回路１４７では、図示しないディスプレイ用ＦＩＦＯ等にその表示データが貯えられ、一定の間隔でＲＡＭＤＡＣ１４８へＲＧＢのインデックス値が転送される。
【０１５０】
なお、上述したようにメモリＩ／Ｆ回路１４６に対してＤＲＡＭ１４９あるいはＳＲＡＭ１５０に格納されているデータの読み出し要求があった場合、読み出しコントローラ３９０のアドレスコンバータ３９１に読み出しアドレスＡＤＲＲが入力される。
このとき、アドレスコンバータ３９１ではメモリコントローラ３５０，３６０，３７０，３８０からのアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０をすべてアクティブで入力された否かのチェックが行われる。そして、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０がすべてアクティブで入力されると、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答して、８画素あるいは１６画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号Ｓ３９１が各メモリコントローラ３５０，３６０，３７０，３８０に出力される。
【０１５１】
読み出しアドレスおよび読み出し要求信号Ｓ３９１を受けて、各メモリコントローラ３５０，３６０，３７０，３８０で８画素あるいは１６画素単位の、テクスチャデータ、（Ｒ，Ｇ，Ｂ）データ、ｚデータおよびテクスチャカラールックアップテーブルデータが読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介して並列的に読み出され、さらに読み出し系配線群３５１，３６１，３７１，３８１、配線群４４０を介してデータ演算部３９２に入力される。
そして、データ演算部３９２で所定の演算処理が行われて、要求先、たとえばテクスチャエンジン回路１４５またはＣＲＴコントロール回路１４７に出力される。
【０１５２】
ＲＡＭＤＡＣ１４８においては、ＲＡＭ内部にＲＧＢのインデックスに対するＲＧＢ値が記憶されていて、インデックス値に対するＲＧＢ値が図示しないＤ／Ａコンバータへ転送される。
そして、Ｄ／Ａコンバータでアナログ信号に変換されたＲＧＢ信号がＣＲＴへ転送される。
【０１５３】
以上説明したように、本実施形態によれば、入力されるデータの処理が最適に行なわれるために、描画プリミティブ（主に三角形）の１頂点分以上の大きさの入力バッファ１４２を持つことから、ほとんどの処理は１頂点分のデータがそろった時点で開始できるようになる。
このため、次に処理できるまでの間に次の頂点のデータを並行して蓄積することが可能となり、処理の中断が減少する。
【０１５４】
また、外部とのデータ受け渡しのホストＩ／Ｆ１４１、入力バッファ１４２を論理回路ブロックの片側に配置することで、Ｉ／Ｆから処理ブロックまでの配線のばらつきを最大の長さの最小化が可能となる。このことを守るために、システムの配線としてのホストとのバス幅および転送速度さらには転送のプロトコルを使おうとしている半導体のプロセス世代およびパッケージに最適になるように設計することが目標として設定できることになる。
そういった意味で外部とのデータ受け渡しのホストＩ／Ｆを論理回路ブロックの片側に配置することを最初に設計の目標として設定することは重要となっている。
そして、データ受け渡しのホストＩ／Ｆ、入力バッファ１４２のすぐ隣に線形補間演算のための初期設定演算回路ブロックとしてのＤＤＡセットアップ回路１４３を配置し、ＤＤＡセットアップ回路１４３のすぐ隣に線形補間処理回路ブロックとしてのトライアングルＤＤＡ回路１４４を配置することで、ホストとのデータ転送のバンド幅を使い切るために線形補間演算のための初期設定演算に対して最大限の効率でデータ転送が可能となる。
この場所に線形補間演算のためのＤＤＡセットアップ回路１４３を配置することは、本発明における３次元グラフィックス描画処理の方法におけるデータ処理のためのパイプライン構造において、最適なデータ転送を実現するものとなる。
一般的な言い方をするとすれば、どのような３次元グラフィックス処理を行うかによって、処理するブロックの種類およびその最適な配置関係を特定することができる。そういった意味で、実際に配置可能なブロックサイズと機能をどのように決めて設計するかが、システムの最終性能に大きく左右することになる。
【０１５５】
３次元グラフィックス描画においては、図形に模様を張りつけるためのテクスチャ処理を行うが、その処理は本実施形態では、線形補間演算処理の直後に行われるため、線形補間演算処理回路ブロックのすぐ隣にテクスチャ処理回路ブロック１４５，１４６を配置して、その転送経路が最適化される。
また、テクスチャ処理回路ブロック１４５，１４６のサイズがその前処理段階のブロックのサイズよりも大きくなるように機能配分を行なうことで、大容量のメモリを最も頻繁にアクセスするテクスチャ処理回路ブロックが、周辺に配置した大容量のメモリへ最適にアクセスできるように配置しやすくなる。
【０１５６】
また、表示データ（含むテクスチャ）を十分保持できるだけのメモリブロック１４９，１５０はチップの半分以上等、非常に大きくなる場合がほとんどなので、ディスプレイバッファとグラフィックス処理を行うブロックの間の配線の長さそのものが比較的長くなり、また、そのばらつきもおおきくなってしまう。
そのため、グラフィックス処理を行なうブロックからは動きを制御できないレジスタ１５１，１５２をディスプレイバッファへの入力または出力またはその両方に挿入配置することができるシステム構成にすることで、長くて信号転送が遅くなる配線での遅延時間を一定の範囲に固定することが可能となり、システム全体の性能を向上することができる。また、動きを止めたり制御ができないレジスタであることにより、その制御のための信号の遅延等を考慮する必要がなく、性能の限界を高めることが可能となる。
【０１５７】
また、表示データを十分保持できるだけのメモリブロックが２ポート以上のポート１５３〜１５６を持つように構成することで、メモリブロックそのものは大きさが大きくなるが、転送の性能を向上することが可能となる。
特に、３次元グラフィックス描画においては、表示メモリへの書き込みと、物理的にはディスプレイメモリと同一のテクスチャバッファ１４９ａからの読み出し、さらには、表示のためのディスプレイバッファ１４９ｂからの読み出しがそれぞれ同時進行して行うことができることで全体の性能の向上が可能となる。
このように大域的に配線が長くなるアーキテクチャではなく、多少サイズは大きくなったとしても、局所的に配線が完結できるアーキテクチャが今後の微細加工の進化していく半導体プロセスにとって、有利なものとなる。
【０１５８】
テクスチャ処理回路ブロック１４５，１４６のブロックサイズを、ＤＤＡセットアップ回路１４３およびトライアングルＤＤＡ回路１４４よりも大きく構成することにより、それまでの処理を実現するそれぞれのブロックの配置を無理無く行えるようにできる。すなわち、ＤＤＡセットアップ回路１４３およびトライアングルＤＤＡ回路１４４の大きさがテクスチャ処理回路ブロック１４５，１４６よりも大きくならないように全体のアーキテクチャを構成する。
【０１５９】
また、メモリブロックを複数のブロックＡ，Ｂに分散させ、かつ分散ブロックＡ，Ｂを論理回路ブロックの周辺部に配置し、分散させたメモリブロックＡ，Ｂへのアクセスは、表示領域の少なくとも一つの方向に対する連続アクセスで分散メモリブロックを順番にアクセスするようアドレスをインターリーブすることにより、チップ内部の消費電力および電圧降下のばらつきが少なくなる。
また、メモリブロックがＤＲＡＭ１４９で構成される場合、メモリアクセスにおけるページブレークによる処理の中断を隠蔽することができる。
【０１６０】
また、ＤＤＡセットアップ回路１４３を同期パイプライン方式による時間並列構造、テクスチャ処理回路ブロックを、同じ構造の回路を複数並べる空間並列構造とすることにより、線形補間演算のための初期設定演算では、時間並列により、初期設定演算回路ブロックを、テクスチャ処理回路ブロックより小さくすることができる。また、メモリとのバンド幅がネックとなるテクスチャ処理では、空間並列により、メモリへのバス幅の確保が容易となる。
【０１６１】
ディスプレイバッファとして使用しているメモリブロックがＤＲＡＭ１４９であり、その一部のポートにＳＲＡＭ１５０を直結し、メモリブロックにおいては、ＤＲＡＭ１４９の行方向のアクセスで複数の列データを一度にＳＲＡＭに転送することから、ＤＲＡＭ１４９のページブレークを隠蔽することができる。また、ＤＲＡＭ１４９への他のサポートに対するアクセスの効率を向上することができる。
【０１６２】
また、ＤＤＡセットアップ回路１４３は、ＡＳＩＣ手法により実装され、複数画素の代表的な場所の値だけを先に計算し、その他の近傍の画素の値は代表点からのすでに計算された固定値の加算により計算し、また注目点が三角形の内部かどうかの判定を一次式の正負判定により行うことから、線形補間演算部分をテクスチャ処理部分より小さく作ることができる。
【０１６３】
トライアングルＤＤＡ回路１４４は、画素を一定のまとまった範囲で処理を行い、その処理の範囲は表示メモリの形態にかかわりなく、そのページ境界には関係無く領域を設定することにより、実際には描画されない無駄な画素の処理を減少させることができ、目的の性能を達成するための回路規模を小さくすることができる。
【０１６４】
さらに、物理的に分離されている回路ブロック間のバスの受け側にはＦＩＦＯバッファを設置し、ＦＩＦＯの満杯の手前を知らせる信号により受け側からデータの送出側に対して転送停止を行うことにより、回路ブロック間の制御信号にパイプを挿入することが可能となり、全体の動作周波数を向上することができる。
【０１６５】
また、本実施形態によれば、半導体チップ内部に内蔵されたＤＲＡＭ１４９に、表示データと少なくとも一つの図形要素が必要とするテクスチャデータを記憶させた構成を有することから、表示領域以外の部分にテクスチャデータを格納できることになり、内蔵ＤＲＡＭの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、アーキテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているＤＲＡＭのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド輻が、十分に活用可能となる。また、ＤＲＡＭにおいても特殊な処理を組み込むことが可能となる。
【０１６６】
また、ＤＲＡＭにおける同一機能を独立した複数のモジュールとして並列にもつことから、並列動作の効率を向上させることができる。単にデータのビット数が多いだけでは、データの使用効率は悪化し、性能向上できるのは一部の条件の場合に限定されることになる。平均的な性能を向上させるためには、ある程度の機能をもったモジュールを複数設けることで、ビット線の有効利用を行うことができる。
【０１６７】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるＤＲＡＭのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュールが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【０１６８】
また、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値を内蔵ＤＲＡＭ１４９内部に格納するので、テクスチャデータの圧縮が可能となり、内蔵ＤＲＡＭの効率良い利用が可能となる。
【０１６９】
また、描画しようとしている物体の奥行き情報を、内蔵のＤＲＡＭに格納するので、描画と同時並行的に隠れ面処理を行うことが可能となる。
描画を行って、通常はそれを表示しようとするわけだが、ユニファイドメモリとして、テクスチャデータと表示データを同一のメモリシステムに同居させることができることから、直接表示に使わずに、描画データをテクスチャデータとして使ってしまうということも可能となる。
このようなことは、必要なときに必要なテクスチャデータを、描画によって作成する場合に有効となり、これもテクスチャデータを膨らませないための効果的な機能となる。
【０１７０】
また、チップ内部にＤＲＡＭ１４９を内蔵することで、その高速なインターフェース部分がチップの内部だけで完結することになるため、大きな付加容量のＩ／Ｏバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
【０１７１】
なお、本発明は上述した実施形態には限定されない。
また、上述した図１に示す３次元コンピュータグラフィックスシステム１０では、ＳＲＡＭ１４８を用いる構成を例示したが、ＳＲＡＭ１４８を設けない構成にしてもよい。
【０１７２】
さらに、図１に示す３次元コンピュータグラフィックスシステム１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
【０１７３】
【発明の効果】
以上説明したように、本発明によれば、入力されるデータの処理が最適に行なわれるために、描画プリミティブ（主に三角形）の１頂点分以上の大きさの入力バッファを持つことから、ほとんどの処理は１頂点分のデータがそろった時点で開始できるようになる。
このため、次に処理できるまでの間に次の頂点のデータを並行して蓄積することが可能となり、処理の中断が減少する。
【０１７４】
また、外部とのデータ受け渡しのＩ／Ｆ（インターフェース）を論理回路ブロックの片側に配置することで、Ｉ／Ｆから処理ブロックまでの配線のばらつきを最大の長さの最小化が可能となる。このことを守るために、システムの配線としてのホストとのバス幅および転送速度さらには転送のプロトコルを使おうとしている半導体のプロセス世代およびパッケージに最適になるように設計することが目標として設定できることになる。
そして、データ受け渡しのＩ／Ｆのすぐ隣に線形補間演算のための初期設定演算ブロックを配置し、線形補間演算のための初期設定演算ブロックのすぐ隣に線形補間処理ブロックを配置することで、ホストとのデータ転送のバンド幅を使い切るために線形補間演算のための初期設定演算に対して最大限の効率でデータ転送が可能となる。この場所に線形補間演算のための初期設定演算ブロックを配置することは、本発明における３次元グラフィックス描画処理の方法におけるデータ処理のためのパイプライン構造において、最適なデータ転送を実現するものとなる。一般的な言い方をするとすれば、どのような３次元グラフィックス処理を行うかによって、処理するブロックの種類およびその最適な配置関係を特定することができる。
【０１７５】
また、３次元グラフィックス描画においては、図形に模様を張りつけるためのテクスチャ処理を行うが、その処理は本発明では、線形補間演算処理の直後に行われるため、線形補間演算処理ブロックのすぐ隣にテクスチャ処理ブロックを配置していることから、その転送経路が最適化される。
また、テクスチャ処理回路ブロックのサイズがその前処理段階のブロックのサイズよりも大きくなるように機能配分を行うことで、大容量のメモリを最も頻繁にアクセスするテクスチャ処理回路ブロックが、周辺に配置した大容量のメモリへ最適にアクセスできるように配置しやすくなる。
【０１７６】
グラフィックス処理を行うブロックからは動きを制御できないレジスタを表示バッファへの入力または出力またはその両方に挿入配置することができるシステム構成にすることで、長くて信号転送が遅くなる配線での遅延時間を一定の範囲に固定することが可能となり、システム全体の性能を向上することができる。
また、動きを止めたり制御ができないレジスタであることにより、その制御のための信号の遅延等を考慮する必要がなく、性能の限界を高めることが可能となる。
【０１７７】
また、表示データを十分保持できるだけのメモリブロックが２ポート以上のポートを持つように構成することで、メモリブロックそのものは大きさが大きくなるが、転送の性能を向上することが可能となる。
特に、３次元グラフィックス描画においては、表示メモリへの書き込みと、物理的には表示メモリと同一のテクスチャメモリからの読み出し、さらには、表示のための表示メモリからの読み出しがそれぞれ同時進行して行うことができることで全体の性能の向上が可能となる。このように大域的に配線が長くなるアーキテクチャではなく、多少サイズは大きくなったとしても、局所的に配線が完結できるアーキテクチャが今後の微細加工の進化していく半導体プロセスにとって、有利なものとなる。
【０１７８】
また、分散させたメモリブロックへのアクセスを、表示領域の少なくとも一つの方向に対する連続アクセスで分散メモリブロックを順番にアクセスするようアドレスをインターリーブすることにより、チップ内部の消費電力および電圧降下のばらつきが少なくなる。また、メモリブロックがＤＲＡＭで構成される場合、メモリアクセスにおけるページブレークによる処理の中断を隠蔽することができる。
【０１７９】
線形補間演算部を同期パイプライン方式による時間並列構造、テクスチャ処理回路部分を、同じ構造の回路を複数並べる空間並列構造とすることにより、線形補間演算のための初期設定演算では、時間並列により、初期設定演算回路ブロックを、テクスチャ処理回路ブロックより小さくすることができる。また、メモリとのバンド幅がネックとなるテクスチャ処理では、空間並列により、メモリへのバス幅の確保が容易となる。
【０１８０】
ＤＲＡＭの行方向のアクセスで複数の列データを一度にＳＲＡＭに転送することにより、ＤＲＡＭのページブレークを隠蔽することができる。また、ＤＲＡＭへの他のサポートに対するアクセスの効率を向上することができる。
【０１８１】
また、線形補間演算のための初期設定演算回路ブロックを、ＡＳＩＣ手法により実装し、複数画素の代表的な場所の値だけを先に計算し、その他の近傍の画素の値は代表点からのすでに計算された固定値の加算により計算し、また注目点が三角形の内部かどうかの判定を一次式の正負判定により行うことにより、線形補間演算部分をテクスチャ処理部分より小さく作ることができる。
【０１８２】
線形補間処理回路ブロックは、画素を一定のまとまった範囲で処理を行い、その処理の範囲は表示メモリの形態にかかわりなく、そのページ境界には関係無く領域を設定することにより、実際には描画されない無駄な画素の処理を減少させることができ、目的の性能を達成するための回路規模を小さくすることができる。
【０１８３】
さらに、物理的に分離されている回路ブロック間のバスの受け側にはＦＩＦＯバッファを設置し、ＦＩＦＯの満杯の手前を知らせる信号により受け側からデータの送出側に対して転送停止を行うことにより、回路ブロック間の制御信号にパイプを挿入することが可能となり、全体の動作周波数を向上することができる。
【図面の簡単な説明】
【図１】  本発明に係る３次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図２】  本発明に係るレンダンリグ回路の要部ブロックのレイアウトを示す図である。
【図３】  本発明に係るＤＤＡセットアップ回路の機能を説明するための図である。
【図４】  本発明に係るトライアングルＤＤＡ回路の構成例を示す図である。
【図５】  本発明に係るトライアングルＤＤＡ回路の機能を説明するための図である。
【図６】  テクスチャマッピング処理回路の構成例を示すブロック図である。
【図７】    テクスチャマッピング処理回路を説明するための図である。
【図８】  本発明に係るＤＲＡＭへの表示データと奥行きデータおよびテクスチャデータの格納方法を概念的に説明するための図である。
【図９】  本発明に係るＤＤＡ処理における三角形の傾きを求める処理を説明するための図である。
【図１０】  本発明に係るＤＤＡ処理における画素の内外判定処理を説明するための図である。
【図１１】  本発明に係る２×８移動打ち込み（Moving Stamp) 処理を説明するための図である。
【図１２】  本発明に係るレンダリング回路におけるＤＲＡＭ、ＳＲＡＭ、並びに、ＤＲＡＭおよびＳＲＡＭへアクセスするメモリＩ／Ｆ回路の具体的な構成例を示すブロック図である。
【図１３】  本発明に係るＤＲＡＭバッファの構成例を示す概略図である。
【図１４】  テクスチャデータに含まれる同時にアクセスが行われる画素データを説明するための図である。
【図１５】  テクスチャデータを構成する単位ブロックを説明するための図である。
【図１６】  テクスチャバッファのアドレス空間を説明するための図である。
【図１７】  本発明に係るメモリＩ／Ｆ回路におけるディストリビュータの画像データ処理を説明するための図である。
【図１８】  ２次元グラフィックスチップの主な機能ブロックと実際のレイアウトを説明するための図である。
【符号の説明】
１０…３次元コンピュータグラフィックスシステム、１１…メインプロセッサ、１２…メインメモリ、１３…Ｉ／Ｏインタフェース回路、１４…レンダリング回路、１４３…ＤＤＡセットアップ回路、１４４…トライアングルＤＤＡ回路、１４５…テクスチャエンジン回路、１４６…メモリＩ／Ｆ回路、１４７…ＣＲＴコントローラ回路、１４８…ＲＡＭＤＡＣ回路、１４９…ＤＲＡＭ、１４９ａ…テクスチャバッファ、１４９ｂ…ディスプレイバッファ、１４９ｃ…ｚバッファ、１４９ｄ…テクスチャＣＬＵＴバッファ、１５０…ＳＲＡＭ、１５１，１５２…レジスタ、１５３，１５４…第１ポート、１５５，１５６…第１ポート、２００，２１０，２２０，２３０…メモリモジュール、３００…ディストリビュータ、３１０，３２０，３３０，３４０…アドレスデコーダ、３５０，３６０，３７０，３８０…メモリコントローラ、３９０…読み出しコントローラ、３９１…アドレスデコーダ、３９２…データ演算処理部、１４５１，１４５２…ＤＤＡ回路、１４５３…テクスチャ座標算出回路（Ｄｉｖ）、１４５４…ＭＩＭＭＡＰレベル算出回路、１４５５…フィルタ回路、１４５６…第１の合成回路（ＦＵＮＣ）、１４５７…第２の合成回路（ＦＯＧ）。
【図１】
0004568950.tif 000002
【図２】
0004568950.tif 000003
【図３】
0004568950.tif 000004
【図４】
0004568950.tif 000005
【図５】
0004568950.tif 000006
【図６】
0004568950.tif 000007
【図７】
0004568950.tif 000008
【図８】
0004568950.tif 000009
【図９】
0004568950.tif 000010
【図１０】
0004568950.tif 000011
【図１１】
0004568950.tif 000012
【図１２】
0004568950.tif 000013
【図１３】
0004568950.tif 000014
【図１４】
0004568950.tif 000015
【図１５】
0004568950.tif 000016
【図１６】
0004568950.tif 000017
【図１７】
0004568950.tif 000018
【図１８】
0004568950.tif 000019