(57)【特許請求の範囲】
【請求項１】
データ・ワードの組を同期させて同期をとられたデータ・ワードの組を生成するデータ同期装置であって、一組のデータ・ワードに含まれる各データ・ワードは複数の非同期のデータ・レンダリング装置のうちの１つによって前記データ同期装置に与えられ、
前記データ同期装置は、
複数のデータ・レジスタであって、各データ・レジスタは、複数の非同期データ・レンダリング装置のうち対応するものから第１のデータ・ワードの組に含まれるデータ・ワードを受け取って一時的に格納し、また、制御信号がアサートされたとき、その格納したデータ・ワードを第１の同期をとられたデータ・ワードの組のうちの１つとして出力する、複数のデータ・レジスタと、
前記データ・レジスタが前記第１のデータ・ワードの組に含まれる対応するデータ・ワードを格納しているとき、各非同期データ・レンダリング装置が第２のデータ・ワードの組に含まれるデータ・ワードをその対応するデータ・レジスタに転送することを防止するとともに、前記データ・レジスタの各々が前記第１のデータ・ワードの組に含まれるそれぞれのデータ・ワードを受け取ったときに、前記制御信号をアサートする、コントローラと、
を備えるデータ同期装置。
【請求項２】
複数のマルチプレクサをさらに備え、
該複数のマルチプレクサはそれぞれ、前記複数のデータ・レジスタのうち対応する１つの入力に結合された出力を有しており、第１の入力が、前記複数の非同期のデータ・レンダリング装置のうち対応する１つの出力に結合され、第２の入力が、前記複数のデータ・レジスタのうち対応する１つの出力に結合されている、請求項１に記載のデータ同期装置。
【請求項３】
前記複数のマルチプレクサのうちの第１のマルチプレクサの前記第１の入力と、前記複数のマルチプレクサのうちの第２のマルチプレクサの前記第１の入力とが、前記複数の非同期のデータ・レンダリング装置のうちの第１のレンダリング装置の出力に結合され、
前記複数の非同期のデータ・レンダリング装置のうちの第１のレンダリング装置により供給された第１のデータ・ワードは、クロック信号の第１のサイクルに応答して、前記第１のマルチプレクサによって受け取られて第１のデータ・レジスタに一時的に記憶され、
前記複数の非同期のデータ・レンダリング装置のうちの第１のレンダリング装置により供給された第２のデータ・ワードは、クロック信号の第２のサイクルに応答して、前記第２のマルチプレクサによって受け取られて第２のデータ・レジスタに一時的に記憶される、
請求項２に記載のデータ同期装置。
【請求項４】
それぞれが一組のデータ・ワードに含まれる１つのデータ・ワードを供給する複数の非同期のデータ・レンダリング装置と、
データ・ワードの組を同期させて同期をとられたデータ・ワードの組を生成するデータ同期装置と、
を含むグラフィックス・システムであって、
前記データ同期装置は、
（ａ）複数のデータ・レジスタであって、各データレジスタは、複数の非同期データ・レンダリング装置のうち対応するものから第１のデータ・ワードの組に含まれるデータ・ワードを受け取って一時的に格納し、また、制御信号がアサートされたとき、その格納したデータ・ワードを第１の同期をとられたデータ・ワードの組のうちの１つとして出力する、複数のデータ・レジスタと、
（ｂ）前記データ・レジスタが前記第１のデータ・ワードの組に含まれる対応するデータ・ワードを格納しているとき、各非同期データ・レンダリング装置が第２のデータ・ワードの組に含まれるデータ・ワードをその対応するデータ・レジスタに転送することを防止するとともに、前記データ・レジスタの各々が前記第１のデータ・ワードの組に含まれるそれぞれのデータ・ワードを受け取ったときに、前記制御信号をアサートする、コントローラと、を含み、
前記複数の非同期のレンダリング装置のうちの第１のレンダリング装置はピクセル・ゼネレータであって、該ピクセル・ゼネレータは、レンダリング・パラメータを受け取り、該レンダリング・パラメータからプリミティブ内の各ピクセルについてｘ、ｙ、ｚ座標とカラー値を計算し、このｘ、ｙ、ｚ座標とカラー値を自身のデータ・ワードとして前記複数のデータ・レジスタのうちの対応するものに出力する、
グラフィックス・システム。
【請求項５】
前記複数の非同期のデータ・レンダリング装置のうち第２のレンダリング装置はテクスチャ・マッピング回路であって、該テクスチャ・マッピング回路は、レンダリング・パラメータを受け取り、該レンダリング・パラメータから三角形プリミティブ内の各ピクセルについてテクセル色値を計算し、このテクセル色値を自身のデータ・ワードとして前記複数のデータ・レジスタのうちの対応するものに出力する、請求項４に記載のグラフィックス・システム。
【請求項６】
前記ピクセル・ゼネレータ及び前記テクスチャ・マッピング回路のそれぞれが同一辺ステッピング回路を含み、該同一辺ステッピング回路は、前記レンダリング・パラメータから各三角形プリミティブの辺に沿った各ピクセルについて色値を計算して、前記ピクセル・ゼネレータにより供給される色値と、前記テクスチャ・マッピング回路により供給されるテクセル色値とが同じ順序で供給されるようにする、請求項５に記載のグラフィックス・システム。
【請求項７】
前記ピクセル・ゼネレータ及び前記テクスチャ・マッピング回路のそれぞれが同一スパン・ステッピング回路を含み、該同一スパン・ステッピング回路は、前記レンダリング・パラメータから各三角形プリミティブのスパンに沿った各ピクセルについて色値を計算して、前記ピクセル・ゼネレータにより供給される色値と、前記テクスチャ・マッピング回路により供給されるテクセル色値とが同じ順序で供給されるようにする、請求項５に記載のグラフィックス・システム。
【請求項８】
前記テクスチャ・マッピング回路と前記データ同期装置の間に結合されるテクセル・パッキング回路をさらに含み、該テクセル・パッキング回路は、前記テクスチャ・マッピング回路からテクセル色値を受け取り、赤要素、緑要素、青要素及びα要素のそれぞれについてのテクセル色値を単一のテクセル・カラー・ワードにパッキングし、該単一のテクセル・カラー・ワードを自身のデータ・ワードとして前記複数のデータ・レジスタのうちの対応するものに出力する、請求項５に記載のグラフィックス・システム。
【請求項９】
前記テクスチャ・マッピング回路と前記テクセル・パッキング回路の間のインタフェースは１１のデータ信号線よりなる、請求項８に記載のグラフィックス・システム。
【請求項１０】
データ・ワードの組を同期させて同期をとられたデータ・ワードの組を生成するデータ同期方法であって、一組のデータ・ワードに含まれる各データ・ワードは複数の非同期のデータ・レンダリング装置のうちの１つによって与えられ、
前記データ同期方法が、
第１のデータ・ワードの組に含まれる第１のデータ・ワードを第１の非同期データ・レンダリング装置から受け取るステップと、
前記第１のデータ・ワードを一時的に格納するステップと、
第２のデータ・ワードの受け取りを待つステップと、
前記第２のデータ・ワードを受け取るステップと、
前記第１のデータ・ワードを前記第２のデータ・ワードと混合させるか否かを判断するステップと、
前記第１のデータ・ワードと前記第２のデータ・ワードとを含む同期をとられたデータ・ワードの組を出力するステップと、
前記同期をとられたデータ・ワードの組がデータ同期装置によって出力されるまで、前記第１の非同期データ・レンダリング装置が第２のデータ・ワードの組に含まれるデータ・ワードを前記データ同期装置に送信することを防止するステップと、
を含むデータ同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、一般にコンピュータ・グラフィックシステムにおける色データ・レンダリングに関連し、より具体的には、非同期データ・レンダリング装置の間でピクセルごとにデータを同期させるための方法および装置に関する。
【０００２】
【従来の技術】
コンピュータ・グラフィックス・システムは、対象物のグラフィック表現を２次元のディスプレイ・スクリーンに表示するために一般に使用される。現在のコンピュータ・グラフィックス・システムは、非常に詳細な表示を提供することができ、いろいろなアプリケーションで使用される。
【０００３】
典型的なコンピュータ・グラフィックス・システムにおいて、ディスプレイ・スクリーンに表される対象物は、複数のグラフィックス・プリミティブに分けられる。プリミティブは、グラフィックス・ピクチャの基本成分であり、点、線、ベクトルおよび三角形のような多角形を含むことがある。典型的に、ハードウェア/ソフトウェア方式が、スクリーン上に表される１つまたは複数の対象物の景観を表すグラフィックス・プリミティブを２次元ディスプレイ・スクリーン上に描画するために実行される。
【０００４】
典型的には、描画される３次元の対象物を規定するプリミティブが、プリミティブ・データの観点から各プリミティブを規定するホストコンピュータから提供される。例えば、プリミティブが三角形であるとき、ホストコンピュータが、その頂点のx、y、z座標および各頂点のR,G,B色値の観点からプリミティブを規定することがある。レンダリング・ハードウェアが、各プリミティブを表すためにオンにされるディスプレイ・スクリーン・ピクセルおよび各ピクセルのためのR、G、B値を計算するためにプリミティブ・データを補間する。
【０００５】
初期のグラフィックス・システムは、複雑な３次元の対象物を表現またはモデル化する十分に現実的な態様で画像を表示することに失敗した。そのようなシステムによって表示された画像は、モデル化される対象物に存在するテクスチャ、隆起、ひっかき傷、影その他の表面詳細のない極端にスムーズな表面を示した。
【０００６】
その結果、改善された表面詳細で画像を表示する方法が開発された。テクスチャマッピングがそのような方法で、テクスチャと呼ばれるソースイメージを３次元の対象物の表面にマッピングし、その後、テクスチャ処理された３次元の対象物を２次元グラフィックス・ディスプレイ・スクリーンにマッピングして結果の画像を表示する。一般にテクスチャマップされた表面詳細の属性は、色、鏡面反射、ベクトル摂動、鏡、透明度、影、表面不規則性および粒度を含む。
【０００７】
テクスチャマッピングは、テクスチャがマップされつつある対象物の表示された部分の各点要素（ピクセル）にテクスチャの１つまたは複数の点要素（テクセル）を適用することを含む。テクスチャマッピング・ハードウェアは、テクスチャ・マップのテクセルがディスプレイ・スクリーン上でその対象物を表すピクセルに対応する態様を示す情報を慣例的に備えている。テクスチャ・マップの各テクセルは、２次元テクスチャ・マップの中でのそのロケーションを識別するSおよびT座標によって規定される。各ピクセルについて、マップする対応する１つまたは複数のテクセルがテクスチャ・マップからアクセスされ、ピクセルのために生成される最終的なR、G、B値に組み込まれて、ディスプレイ・スクリーン上でテクスチャ処理された対象物を表す。
【０００８】
深さキューイング(depth cuing)は、より現実的なイメージ・ディスプレイを生成するための別の技法である。深さキューイングにおいては、ディスプレイ・スクリーン上で表されたビュー・ポートから表示される対象物の距離に基づいて、対象物の色が背景の色に徐々に混合される（また、深さキュー色として知られている）。深さキューイングは、たとえば、光の強度の大気での減衰をシミュレートするのに使用される。こうして、対象物が観察者から遠くになるにつれてそれらはより薄暗く見える。任意の色が、深さキュー(depth cue)色として使用されることができるが、黒が最もしばしば使用される。
【０００９】
同様に、深さキューイングは、色補間された（明暗をつけられた）多角形およびテクスチャマップした多角形に適用することができる。各ピクセルのためにR、G、B値を補間することに加えてレンダリング・ハードウェアは、明暗をつけまたはテクスチャ・マップした多角形の各ピクセルのために深さキューのスケールファクターをも補間する。ピクセル色パラメータが、次いでテクスチャマッピング・ハードウェアからの対応するテクセルと混ぜ合わせられて中間のピクセル色値を提供する。さらに、中間の色値、深さキュー色値と深さキュー・スケールファクターがピクセルごとに結合され、ディスプレイのための結果のピクセル色値を提供する。
【００１０】
【発明が解決しようとする課題】
テクセル、レンダリング・ハードウェアによって生成された色値、および深さキューイング色値の混合は、色値およびテクセルのそれぞれが共通のピクセルに対応するように各色値の間の１対１の一致を必要とする。言い換えると混合操作が実行される前に、その値は正しく対にされる。しかし、テクスチャマッピング・ハードウェア、ラスタライザ（ラスタ化装置）および深さキューイング・ハードウェアは、典型的には独立に動作し、数十から数百クロック・サイクル同期からはずれていることがある。
【００１１】
さらに、レンダリング・ハードウェアが点、ベクトルおよび多角形プリミティブを描画するのに対し、テクスチャマッピング・ハードウェアが典型的には三角形プリミティブだけを描画するので、同期問題が悪化する。ベクトルおよび点プリミティブが、レンダリング・ハードウェアによって描画された多角形の間に散在することがある。しかし、ベクトルおよび点プリミティブが混合ハードウェアによって使用されないとき、例としてベクトルおよび点のテクスチャマッピングまたは深さキューイングがコンピュータ・グラフィックス・システムによって支援されないとき、テクセル、レンダリング・ハードウェアによって生成された色値、および深さキューイング色値の間の１対１の対応を判断することに、更に問題が存在する。
【００１２】
さらに、テクセル、レンダリング・ハードウェアによって描画された色値および深さキューイング値が、プリミティブごと、またプリミティブ内で異なるシーケンスで到着することがある場合、混合ハードウェアが１対１の相応を判断することができなければならない。以上の理由のために、コンピュータ・グラフィックス・システム内で非同期データ・レンダリング装置によって提供されたデータを同期させる必要性がある。特に、テクスチャマッピング・ハードウェアによって描画されたテクセル、レンダリング・ハードウェアによって描画された色値、およびレンダリング・ハードウェアによって生成された深さキューイング色値を同期させる必要がある。
【００１３】
【課題を解決するための手段】
この発明の目的は、複数の非同期データ・レンダリング装置によって提供されるデータのワードを同期させる方法および装置を提供することである。
【００１４】
この発明の一つの形態では、複数の非同期データ・レンダリング装置の一つによって一組のデータワードの中のデータの各ワードがデータ同期装置に提供され、データ同期装置が、データワードの組を同期させて同期されたデータワードの組を生成する。データ同期装置は、複数のデータレジスタを含む。各データレジスタが、複数の非同期データ・レンダリング装置の対応する一つからデータのワードを受け取って、第１の組のデータワードに一時的に格納し、データレジスタの各々が第１の組のデータワードのデータのそのワードを受け取るとき、各データレジスタは、データワードの同期された組の一部としてそのデータワードを出力する。さらに、コントローラは、データレジスタが第１の組のデータワードのるデータのそのワードを格納しているとき、各非同期データ・レンダリング装置が第２の組のデータワードにおけるデータのワードをその対応するデータレジスタに送るのを禁止する。
【００１５】
この取り決めで、複数の非同期データ・レンダリング装置によって提供されたデータの複数のワードが、同期された組のデータワードへと同期される。グラフィックス・システムによって表示されるプリミティブの各ピクセルについて、データワードの同期した組を提供するために、データ同期装置をグラフィックス・システム内で使用することができる。さらに、グラフィックス・システムに表示されるべきプリミティブの各ピクセルのための混合されることになっていないデータの各ワードは、処理パイプラインをフラッシュすることなくグラフィックス・システムの処理パイプラインの次の段にパスされることができる。
【００１６】
この発明のもう一つの形態によると、一組のデータワードの各データワードが複数の非同期データ・レンダリング装置の一つで描画される、データワードの同期した組を生成するためにデータワードの組を同期させるための方法は、第１のデータワードを第１のデータ・レンダリング装置から受け取り、一時的に格納することを含む。この方法は、さらに第２のデータワードの受領を待ち、第２のデータワードを受け取ると、第１のデータワードおよび第２のデータワードを含むデータワードの同期した組を出力することを含む。
【００１７】
この方法で、複数のデータワードがデータワードの一つの同期した組にまとめられる。さらに、この方法は、グラフィックス・システムによって表示されるべき各プリミティブの各ピクセルのために、グラフィックス・システムの中でデータワードの一つの同期した組を提供するために使用することができる。さらに、グラフィックス・システムのプリミティブの各ピクセルのためのデータワードを同期させない場合は、データワードは、処理パイプラインをフラッシュすることなくグラフィックス・システムの処理パイプラインの次の段に出力される。
【００１８】
【発明の実施の形態】
1.  システム概要
図1は、テクスチャ・データをローカルに格納するためにキャッシュ・メモリを備えるテクスチャマッピング・ハードウェアを含むこの発明のグラフィックス・システムの一つの実施例のブロック図である。ここで説明する実施例は、ボードおよびチップの数、それらが分割される態様、バス幅およびデータ転送速度に関して単に例としてのものであることが理解されなければならない。多数の他の実施態様を使うことができる。図に示すようにシステムは、フロントエンド・ボード10、テクスチャマッピング・ボード12およびフレーム・バッファ・ボード14を含む。フロントエンド・ボードは、52ビットのバス16を通してホストコンピュータ15と通信する。フロントエンド・ボードは、描画すべきプリミティブをホストコンピュータからバス16を通して受け取る。プリミティブが三角形であるとき、頂点のようなプリミティブの部分のすべてについてプリミティブは、x、y、zベクトル座標データ、R、G、B色データおよびテクスチャのS、T座標によって指定される。３次元でプリミティブを表わすデータがフロントエンド・ボード10によって、85ビットのバス18を通してテクスチャマッピング・ボード12およびフレーム・バッファ・ボード14に提供される。テクスチャマッピング・ボードが、プリミティブを表すスクリーン・ディスプレイ・ピクセルを計算するために受け取られたプリミティブ・データを補間し、各プリミティブ・ピクセルのための対応する結果のテクスチャ・データを決定する。結果のテクスチャ・データが、フレーム・バッファ・ボードに、図1の中で一つのバスとして示される5つの55ビットのバス28を通して提供される。
【００１９】
フレーム・バッファ・ボード14は、各プリミティブを表すディスプレイ・スクリーン上のピクセルを計算し、各ピクセルのための対象物の色値を決定するために、フロントエンド・ボード10から受け取られたプリミティブ・データをも補間する。次いで、ピクセルごとにフレーム・バッファ・ボードが、対象物の色値をテクスチャマッピング・ボードから提供された結果のテクスチャ・データと結合し、各ピクセルのために結果の画像R、G、B値を生成する。ディスプレイ・スクリーン（図示しない）のピクセルを制御するために各ピクセルのためのR、G、B色調節信号が、R、G、B線29を通してそれぞれ提供され、テクスチャ・マップされたプリミティブを表す結果の画像がディスプレイ・スクリーン上に表示される。
【００２０】
フロントエンド・ボード10、テクスチャマッピング・ボード12およびフレーム・バッファ・ボード14のそれぞれがパイプラインされ、複数のプリミティブに同時に作用する。テクスチャマッピング・ボードおよびフレーム・バッファ・ボードが前にフロントエンド・ボードによって提供されたプリミティブに作用する間、フロントエンド・ボードは、ボード12および14のパイプラインが満杯になるまで新しいプリミティブに作用し、提供し続ける。フロントエンド・ボード10は、分配器チップ30、3つの３次元の(3-D)幾何アクセラレータ（加速器）チップ32A、32Bおよび32C、２次元(2-D)幾何アクセラレータ・チップ34および集信装置チップ36を含む。分配器チップ30は、X、Y、Z座標および色プリミティブ・データをバス16を通してホストコンピュータから受け取り、3-Dプリミティブ・データを3-D幾何アクセラレータ・チップ32A、32Bおよび32Cに均一に分配する。このように3つのグループのプリミティブが同時に作用されるので、システムのバンド幅（帯域幅）が増やされる。データが、40ビットのバス38Aを通して3-D幾何アクセラレータ・チップ32Aおよび32Bに提供され、40ビットのバス38Bを通して、チップ32Cに提供される。バス38Aおよび38Bが、60 MHzの速度でデータを転送し、2つの3-D幾何アクセラレータ・チップを支援するに十分なバンド幅を提供する。
【００２１】
2Dプリミティブ・データは、44ビットのバス40をして2D幾何アクセラレータ・チップ34に40MHZの速度で提供される。各3-D幾何アクセラレータ・チップが、受け取られたプリミティブを規定するx、y、z座標を対応するスクリーン空間座標に変形させ、スクリーン空間座標のための対象物のR、G、B値およびテクスチャのS、T値を判断し、プリミティブ四辺形を三角形に分解し、各三角形を規定するために三角形平面方程式を計算する。各3-D幾何アクセラレータ・チップも、複数のウィンドウが表示されるとき、または、プリミティブの一部がディスプレイ・スクリーン上に表される景観ボリュームを越えて広がるとき、結果の画像の正確なスクリーン・ディスプレイを確保するために景観クリッピング操作を実行する。3-D幾何アクセラレータ・チップ32A、32Bおよび32Cからの出力データは、44ビットのバス42Aおよび42Bを通して集信装置チップ36に60MHZの速度でそれぞれ提供される。２次元幾何アクセラレータ・チップ34は、46ビットのバス44を通して45MHZの速度で集信装置チップ36にも出力データを提供する。集信装置チップ36が、3-D幾何アクセラレータ・チップ32A-Cから受け取られた3-Dプリミティブ出力データを結合し、それらが分配器チップ30よる分配の前に持っていたもとの順にプリミティブを並べ替え、そして、結合されたプリミティブ出力データをバス18を通してテクスチャマッピング・ボードおよびフレーム・バッファ・ボードに提供する。
【００２２】
テクスチャマッピング・ボード12は、テクスチャマッピング・チップ46およびキャッシュ・メモリとして好ましくは準備をされる局部メモリ48を含む。発明の好ましい実施例において、局部メモリは、複数のSDRAM（同期ダイナミック・ランダム・アクセス・メモリ）チップから下で説明する理由で形成される。キャッシュ・メモリ48は、フレーム・バッファ・ボードで描画中のプリミティブと関連するテクスチャMIPマップ・データを格納する。テクスチャMIPマップ・データは、ホストコンピュータ15のメイン・メモリ17からバス40を通り、2D幾何アクセラレータ・チップ34を通り、24ビットのバス24を通してダウンロードされる。
【００２３】
テクスチャマッピング・チップ46が、ディスプレイ・スクリーン上で描画されるべきプリミティブを表すプリミティブ・データをバス18通して続いて受け取る。上で示したように、3-D幾何アクセラレータ・チップ32A-Cから提供されたプリミティブは、点、線および三角形を含む。テクスチャマッピング・ボードは、点または線のテクスチャマッピングは実行しないで、三角形プリミティブだけに作用する。三角形プリミティブを表すデータは、少なくとも一つの頂点のためのx、y、z対象物ピクセル座標、少くとも一つの頂点の対象物の色R、G、B値、少くとも一つの頂点に対応するテクスチャ・マップの一部分のS、T座標、および三角形平面方程式を含む。テクスチャマッピング・チップ46は、対象物ピクセルz座標および対象物の色のR、G、B値を無視する。チップ46は、x、yピクセル座標を補間し、プリミティブを表す各x、yスクリーン・ディスプレイ・ピクセルに対応するSおよびT座標を補間する。各ピクセルのために、テクスチャマッピング・チップが、それに対応するテクスチャMIPマップの部分をキャッシュ・メモリからアクセスし、そのピクセルのための、複数のテクセルの加重平均であってよい結果のテクスチャ・データを計算する。一つの典型的な実施例において、キャッシュは、256x256テクセルの64のブロックを格納する。先行技術システムのテクスチャマッピング・ハードウェアに使われた局部メモリと異なり、この発明のキャッシュ・メモリは、大きいテクスチャのためのような、描画中のプリミティブにマップするテクスチャのMIPマップの全シリーズを格納することはしない。むしろキャッシュ・メモリは、任意の時点において、MIPマップのシリーズのうちプリミティブを実際に現在描画するのに使用する特定の部分だけを格納する。したがって、ほとんどのアプリケーションについて、描画中の画像の完全なテクスチャ・データの一部だけが、一つの時点でキャッシュ・メモリに格納される。
【００２４】
各テクスチャのためのMIPマップの完全なシリーズが、準備をされて、ホストコンピュータ15のメイン・メモリ17に格納される。描画中のプリミティブの各ピクセルのために、テクスチャマッピング・チップ46が、キャッシュ・メモリ48のディレクトリをアクセスし、テクスチャMIPマップの対応する一つまたは複数のテクセルがキャッシュに現在あるかどうか判断する。対応するテクセルがアクセスの時点でキャッシュ・メモリに格納されているならば、キャッシュ・ヒットが生じ、テクセルがキャッシュから読み出され、テクスチャマッピングにチップ46によって作用され、フレーム・バッファ・ボードにパスする結果のテクスチャ・データが計算される。
【００２５】
しかし、プリミティブ・ピクセルに対応するテクセルがキャッシュ・メモリに格納されていないならば、テクスチャマッピング・チップ46によってアクセスされるときキャッシュ・ミスが生じる。キャッシュ・ミスが生じるとき、プリミティブを描画するために必要とされたテクスチャMIPマップ・データの部分が、おそらく以前に格納されたデータを置き換えながらホストコンピュータ15のメイン・メモリ17からキャッシュ・メモリ48にダウンロードされる。しかし、描画中の任意のプリミティブのためにMIPマップの全シリーズをダウンロードする従来のテクスチャマッピング・システムと異なり、この発明は、現にプリミティブを描画するために実際必要とされるMIPマップのシリーズの部分またはその現に描画された部分だけをダウンロードする。キャッシュ・ミスが生じるとき、割込み制御信号がテクスチャマッピング・チップ46によって生成され、ホストコンピュータ15のテクスチャ割込みマネージャを開始させる。割込み制御信号は、線94通して分配器チップ30まで提供され、分配器が線95を通してホストコンピュータに割込み信号を提供する。
【００２６】
要求されたテクスチャ・データは、ホストコンピュータによってそのメイン・メモリから読み出されて、フロントエンド・ボードおよびテクスチャマッピング・チップを通る3-Dプリミティブ描画パイプラインをバイパスし、バス24を通してテクスチャマッピング・ボード48にダウンロードされる。このように、キャッシュ・ミス割込みが生じるとき、キャッシュ・ミスを引き起こしたプリミティブと関連したテクスチャ・データがメイン・メモリ17からダウンロードされている間に、フロントエンド・ボードが、3-Dプリミティブに作用し続けて、バス18を通してテクスチャマッピング・チップおよびフレーム・バッファ・ボードに出力プリミティブ・データを提供する。従来のテクスチャマッピング・システムと対照的に、テクスチャ・データのテクスチャマッピング・ハードウェアへのダウンロードは、3-Dプリミティブ・パイプラインのフラッシングを必要とせず、それによって、システムのバンド幅および性能を増大させる。
【００２７】
各ピクセルのための結果のテクスチャ・データは、テクスチャマッピング・チップ46によって5つのバス28を通してフレーム・バッファ・ボードに提供される。5つのバス28が、フレーム・バッファ・ボード上に備えられるそれぞれ5つのフレーム・バッファ・コントローラ・チップ50A、50B、50C、50Dおよび50Eに結合され、フレーム・バッファ・コントローラ・チップに平行して結果のテクスチャ・データを提供する。フレーム・バッファ・コントローラ・チップ50A-Eが、関連するVRAM（ビデオ・ランダムアクセスメモリ）チップ51A-Eのグループにそれぞれ結合される。上で示したように、55ビットのバス28は、各フレーム・バッファ・コントローラ・チップ5OA-50Eのために、11ビットに分割される。したがって、この発明によると、テクスチャマッピング・ボード12と各フレーム・バッファ・チップの間でテクセル・データを転送するために11の信号線だけが必要とされる。さらに、この発明によると、タグも識別情報も、テクスチャ・データがどのピクセルに対応するかを識別するために、テクスチャマッピング・ボード12とそれぞれのフレーム・バッファ・チップとの間で送られない。
【００２８】
フレーム・バッファ・ボードは、4つのビデオ・フォーマット・チップ、52A、52B、52Cおよび52DならびにRAMDAC（ランダム・アクセス・メモリ・ディジタル／アナログ・コンバーター）54をさらに含む。フレーム・バッファ・コントローラ・チップは、ディスプレイ・スクリーンの異なる、重複しないセグメントを制御する。各フレーム・バッファ・コントローラ・チップがフロントエンド・ボードからバス18を通してプリミティブ・データを受け取り、バス28を通してテクスチャマッピング・ボードから結果のテクスチャマッピング・データを受け取る。フレーム・バッファ・コントローラ・チップは、プリミティブを表すそれらのそれぞれのセグメントの中で、スクリーン・ディスプレイ・ピクセル座標および各ピクセル座標について対応する対象物のR、G、B色値を計算するためにプリミティブ・データを補間する。結果のテクスチャ・データがテクスチャマッピング・ボードから提供されるプリミティブ（すなわち、三角形）のために、フレーム・バッファ・コントローラ・チップが、ピクセルごとに対象物の色値および結果のテクスチャ・データを結合し、ディスプレイ・スクリーン上で表示される各ピクセルのための最終的なR、G、B値を生成する。対象物およびテクスチャの色値が結合される態様を規定する混合モードは、バス18を通してフロントエンド・ボード10によって提供されるレンダリング・モード・コントロールワードによって制御される。
【００２９】
対象物およびテクスチャの色値が結合される態様は、いくらかの異なる方法で制御されることができる。たとえば、置換モードにおいて、テクスチャ色値だけがピクセルのレンダリングで使用されるよう、対象物の色値を単にテクスチャ色値によって置き換えることができる。代わりに、変調モードにおいては、対象物およびテクスチャの色値を一緒に掛けてピクセルのための最終的なR,G,B値を生成することができる。さらに、対応するテクスチャ色値が対象物の色値と組み合わせされる態様を規定する比率を指定する色調節ワードを各テクセルのために格納することができる。結果の色調節ワードは、各ピクセルに対応する結果のテクセル・データについて決定され、フレーム・バッファ・コントローラ・チップにバス28を通して提供されることができ、この場合、コントローラ・チップは、対応する結果のコントロールワードによって指定された比率を使って、最終的なR,G,B値を各ピクセルのために決定することができる。
【００３０】
各ピクセルのためのR,G,B値を含む、フレーム・バッファ・コントローラ・チップ50A-Eによって生成された結果の画像ビデオ・データは、対応するVRAMチップ51A-Eに格納される。40のVRAMチップがフレーム・バッファ・ボードに位置するよう、各グループのVRAMチップ51A-Eが8つのVRAMチップを含む。ビデオ・フォーマット・チップ52A-Dの各々が、異なる組の10のVRAMチップに接続され、これからデータを受け取る。ビデオ・データが、VRAMチップから直列にシフトされ、64ビットのバス58A、58B、58Cおよび58Dを通して4つのビデオ・フォーマット・チップ52A、52B、52Cおよび52Dに33MHZの速度でそれぞれ提供される。ビデオ・フォーマット・チップが、ビデオ・データをRAMDACによって扱われるようにフォーマットし、３２ビットのバス60A、60B、60Cおよび60Dを通してRAMDAC 54に33MHZの速度でフォーマットされたデータを提供する。RAMDAC 54が、転じてデジタルの色データをアナログのR,G,B色調節信号に変換し、各ピクセルのためのR,G,B制御信号をスクリーン・ディスプレイ（図示しない）にR,G,B制御線29で提供する。
【００３１】
発明の一つの実施例において、テクスチャマッピング・ボード12およびフレーム・バッファ・ボード14上のハードウェアが複製されるので、あるプリミティブ・レンダリング作業が、複数のプリミティブに対し平行して実行されることができ、それによってシステムのバンド幅を増やすことができる。この発明のそのような代替実施例が、あるハードウェアが模写されているこの発明のコンピュータ・グラフィックス・システムのブロック図である図2に示される。図2のシステムは、4つの3-D幾何アクセラレータ・チップ32A、32B、32Cおよび32D、それぞれキャッシュ・メモリ48Aおよび48Bと関連する2つのテクスチャマッピング・チップ46Aおよび46B、ならびにそれぞれが関連したグループのVRAMチップをもつ10のフレーム・バッファ・チップ50A-50Jを含む。図2のシステムの動作は、上で説明した図1のシステムの動作に似ている。あるプリミティブ・レンダリング操作を複数のプリミティブについて平行して実行することができるので、図2の実施例におけるハードウェアの多重化は、システムのバンド幅の増加を可能にする。
【００３２】
この発明のグラフィックス・システムにおいて、ピクセルあたりの深さキューイングも備えられており、ここで図3を参照して説明する。「加速器(geometry accelerator)」の名称をつけられた図3の左の部分は、3-D加速器チップ32A、32Bおよび32C（図1）の回路を表す。「スキャンコンバーター」の名称をつけられた図3の右側の部分は、フレーム・バッファ・コントローラ・チップ50A、50B、50C、50Dおよび50E（図1）の回路を表す。グラフィックス・システム、特に、スキャンコンバーターは、表示される対象物を三角形、ベクトルおよび点に分解するけれども、深さキューイングは三角形だけに適用される。加速器の辺計算ユニット110は、頂点パラメータをホストコンピュータから受け取る。頂点パラメータは、各頂点空間座標（x、yおよびz)について、頂点で表面に垂直な単位ベクトルを示す基準座標(Nx, Ny, Nz)、色値(R, G, B, およびα)およびテクスチャマッピング座標（SおよびT)を含むことができる。アルファ(α)色値は、背景混合が使用されるとき対象物の不透明度を表し、a値は、どの程度の既存の背景が使用されるかおよびどの程度のプリミティブ色が使用されるかを決定する。辺計算ユニット110は、深さキュー・パラメータをも受け取る。
【００３３】
一般に、辺計算ユニットは、スキャンコンバーターによって必要としたすべてのパラメータを計算する。たとえば、三角形プリミティブについて、計算されたパラメータのいくつかは、開始色値R、G、BおよびαならびにYに最も大きい寸法を持つ三角形（図6参照）のxに関して、そして辺Eに関して各色パラメータの偏導関数を含む。計算されたパラメータのこの組は、三角形のための平面方程式と呼ばれる。さらに、三角形プリミティブについて辺計算ユニット110が、スキャンコンバーターに深さキュー・レンダリング・パラメータを提供し、これは、三角形の中の最上の頂点VO（図6参照）に対する深さキュー・スケールファクター値およびXと辺Eに関する深さキュー・スケールファクターの偏導関数を含む。
【００３４】
スキャンコンバーターは、x、yおよびz座標ならびにプリミティブの各ピクセルの色値を計算するためにレンダリング・パラメータの各々を独立に補間するピクセル・ゼネレータ112を含む。ピクセルごとの色は、拡散色値(diffuse color value)R、G、Bおよびαを含み、鏡面色値(specular color value)Rs、GsおよびBsを含むことがある。さらに、ピクセル・ゼネレータ112は、各三角形プリミティブのためにピクセルごとに深さキュー・スケールファクターを計算する。ピクセル・ゼネレータ112によって計算されたピクセルごとの値は、テクスチャ・ブレンド・ユニット114に供給される。上で示したように、テクスチャ・ブレンド・ユニット114は、それぞれのフレーム・バッファ・チップ50A-50Eに対応する11ビットのバス28を通してテクスチャマッピング・チップ46（図1）からテクセルを受け取る。テクセルは、各ピクセルについてテクスチャ色値Rt、Gt、Btおよびαtを含む。
【００３５】
上で示したように、ピクセル・テクスチャ色値につき、プリミティブを表すディスプレイ・スクリーンの上で、各ピクセルのためにテクスチャ・ブレンド・ユニット114によって、拡散色値および鏡面色値が結合される。しかし、上で示したように、テクスチャマッピング・ボード12およびスキャン・コンバータが、フロントエンド・ボード10によって描画されたプリミティブに独立に作用するという問題がある。このように、グラフィックス・システムのこれらの部分は非同期で動作するので、テクスチャマッピング・ボードおよびスキャンコンバータによって描画されるデータが同期されない。さらに、テクスチャマッピング・ボード12は、三角形プリミティブのためのテクスチャ色値だけを描画するだけである。対照的に、スキャンコンバーターは、拡散色値を描画し、三角形プリミティブのために鏡面色値を描画することができる。このように、スキャンコンバーターによって描画されたデータは、三角形データを点在したベクトルおよび点データを含む。各ピクセルについてテクセル色値、拡散色値、および鏡面色値の間に１対１の対応が必要とされるから、テクスチャ・ブレンド・ユニット114が、三角形プリミティブの各ピクセルのためにこれらの値を同期させる。詳細に下で説明するように、テクスチャ・ブレンド・ユニット114は、ピクセルごとに三角形プリミティブのためにテクセル色値、拡散色値および鏡面色値を同期させるためのデータ同期コントローラ200を含む。
【００３６】
ひとたびピクセルごとの拡散および鏡面色値ならびにテクセルが同期させられると、それらは、予め選ばれた混合アルゴリズムに従って結合されて結果の色値を提供する。結果の色値は、深さキュー・ブレンド・ユニット116に供給される。ピクセル・ゼネレータ112で生成されるピクセル深さキュー・スケールファクターは、テクスチャ・ブレンド・ユニット114で使用されないが、パイプラインされたデータが同期を維持するよう、テクスチャ・ブレンド・ユニット114を通して深さ心配ブレンド・ユニット116にパスされる。深さキュー・ブレンド・ユニット116が、各ピクセルについて、ホストコンピュータによって書き込まれた深さキュー色データレジスタから受け取られる深さキュー・スケールファクターおよび深さキュー色値を結果の色値と結合し、各ピクセルのために深さキュー(cue)された色を提供する。
【００３７】
ピクセル・ゼネレータ112のブロック図が図4に示される。加速器からのレンダリング・パラメータがレンダリング・パラメータ・レジスタ130に置かれる。それぞれのレンダリング・パラメータが、レジスタ130からα補間器131、赤補間器132、緑補間器133、青補間器134、深さキュー・スケールファクター補間器135、赤の鏡面補間器136、緑の鏡面補間器137、および青の鏡面補間器138に供給される。補間器131-138が同じ回路を含み、高いスループットを得るために独立に、そして同時に異なるパラメータに作用する。
【００３８】
一般に、各パラメータは、プリミティブの各ピクセルについて計算される。頂点V0、V1とV2を持つ三角形が図6に示される。補間器131-138の各々は、三角形の辺E1に沿って頂点V0から頂点V2までステップし、パラメータの開始値を三角形のピクセルの各行について決定する。ピクセル行150、152、154、その他が図6に示される。パラメータの開始値は、ピクセル行150、152、154におけるピクセル160、162および164についてそれぞれ決定される。三角形における各ピクセル行の長さは、そのスパンとして知られている。このようにたとえば、図6を参照すると、ピクセル行154は、ピクセル164からピクセル168まで4ピクセルのスパンを持つ。各ピクセル行のための開始パラメーター値は、頂点V0でのパラメータの開始値と辺E1に沿ったパラメータの傾斜から決定される。各ピクセル行のための開始値が決定された後、補間器が、各ピクセル行に沿ってX方向にステップし、ピクセル行の開始値およびパラメーター値の傾斜をXの関数として使用して各ピクセルにおいてパラメーター値を決定する。三角形の各ピクセルのためのパラメーター値は、テクスチャ・ブレンド・ユニット114（図3）に提供される。
【００３９】
ピクセル・ゼネレータ112における各補間器のブロック図が図5に示される。各補間器は、各三角形の辺に沿ってパラメータを計算する辺ステッパーを含む。第１の辺ステッパー・ステージ180が、辺E1に沿って各ピクセルのxおよびy値を生成し、第２の辺ステッパー・ステージ182が、色およびz値を計算する。xおよびyの計算の結果が色値およびz値の計算中に使用されるので、高い性能のためには2つの辺ステッパー段が好ましい。この発明の好ましい実施例において、辺ステッパー・ステージ180および182が、テクスチャマッピング・ボードとスキャンコンバーターの両方で使用され、プリミティブ・データが、テクスチャマッピング・ボード（図1）およびスキャンコンバーターの両方によって同じ順に発行されるようにする。
【００４０】
第１のタイル・クリッパー184および第２のタイル・クリッパー186を含むタイル・クリッパーが、ピクセルおよびスパンを、それぞれのピクセル・ゼネレータを含む各スキャンコンバーターに対応する割り込まれたVRAMチップ（図1）の範囲内に限定する。前に述べたように、スキャンコンバーターは、対応するVRAMチップと平行して高いスループットを出すよう作用する別々のフレーム・バッファ・コントローラ・チップに分割されている。各VRAMチップが、xに16ピクセルyに2ピクセルを含むスクリーンのタイルを扱う。タイル・クリッパーが、補間器によって処理されるピクセルを対応するVRAMの16かける2ピクセルの範囲内に限定する。対応するVRAMチップの範囲外にあるピクセルのための不必要なサイクルを排除することによって性能が改善される。タイル・クリッパーが、描画中の三角形の各スパンを対応するVRAMチップの範囲内にある16以下のピクセルのサブスパン(subspan)に分割する。不必要なピクセルがスパン・ステッパーで生成されのを防ぐことによって、レンダリング性能がかなり改善される。
【００４１】
タイル・クリッパーの出力は、スパン/ピクセルFIFO 190を通してスパン・ステッパー192に供給される。好ましい実施例において、スパン/ピクセルFIFOは、64エントリの深さである。スパン・ステッパー192が、三角形の各スパンの辺情報に基づいてピクセル・パラメータを生成する。スパンは、一定のy値を持ち、三角形のタイプに依存して正または負のx方向のいずれにもステップされることができる。特に、第１の型の三角形が正のx方向でステップし、第２の型の三角形が負のx方向でステップする。この発明の好ましい実施例において、スパン・ステッパー192は、テクスチャマッピング・ボード（図1）およびスキャンコンバーターの両方で利用され、描画中の三角形の各ピクセルについてのパラメーター値がテクスチャマッピング・ボードおよびスキャンコンバーターからテクスチャ・ブレンド・ユニット11に同じ順で出力されるようにする。スパン・ステッパー192の出力は、描画中の三角形の各ピクセルのための一組のパラメーター値である。図3と関連して上で示したように、ピクセル・ゼネレータ112は、各ピクセルのために、赤、緑、青、アルファ、深さキュー・スケールファクター、鏡面赤、鏡面緑、鏡面青の補間されたパラメーター値を提供する。辺ステッピングおよびスパン・ステッピングによってレンダリング・パラメータからピクセルごとのパラメーター値を生成するための補間回路は、当業者に知られている。
【００４２】
上に示したように、テクスチャ・ブレンド・ユニット114（図3）が、ピクセル・ゼネレータ112で生成される拡散色値をテクスチャマッピング・ユニットから受け取られたテクセル色値と混合し、中間の色値を提供する。ピクセル・ゼネレータ112で生成される鏡面色値は、結果の色値を提供するために選択的に中間の色値に加えられる。上で示したように、１対１の対応が、テクセル色値と拡散色値および鏡面色値（鏡面色オプションがオンであるならば）との間に作られなければならない。しかし、上で示したように、テクスチャマッピング・ボードが、なんらの識別または座標情報なしで、テクセル色値をテクスチャ・ブレンド・ユニット114に提供し、一方、ピクセル・ゼネレータ112が点、ベクトルおよび三角形を含むすべてのプリミティブのために拡散色値を提供する。鏡面色オプションがイネーブルされるならば、ピクセル・ゼネレータ112も三角形プリミティブのために鏡面色値を提供する。さらに上で説明したように、データは、テクスチャマッピング・ボードおよびスキャンコンバーターから非同期にテクスチャ・ブレンド・ユニット114に描画される。さらに、テクセル色値の到着の順、拡散色値および鏡面色値は、プリミティブごと、およびプリミティブ内でピクセルごとに変化することができる。
【００４３】
以上のことに加えて、テクセル、拡散色値および鏡面色値のために複数のデータ同期モードがある。好ましい実施例において、コンピュータ・グラフィックス・システム（図1）内のパイプライン制約のために、鏡面色値は、常に拡散色値の後に提供される。このように、拡散色値および鏡面色値は、同じクロック・サイクル中にテクスチャ・ブレンド・ユニット114に到着することができない。しかし、この制約があっても、三角形プリミティブのためにまだ複数の可能なレンダリング・モードがある。特に、可能なデータ同期モードは、以下を含む：(1)拡散だけ；(2)拡散、次いで鏡面； (3)拡散、次いでテクセル；(4)テクセル、次いで拡散；(5)同じクロック・サイクル中に拡散およびテクセル；(6)拡散、次いで鏡面、次いでテクセル； (7)同じクロック・サイクルで拡散、次いで鏡面およびテクセル； (8)拡散、次いでテクセル、次いで鏡面； (9)同じクロック・サイクルでテクセルおよび拡散、次いで鏡面；(10)テクセル、次いで拡散、次いで鏡面。このようにピクセルごとの色値の同期は、複数のデータ同期レンダリング・モードによってさらに悪化する。
【００４４】
上で示したように、この発明の好ましい実施例において、テクスチャマッピング・ボードおよびスキャンコンバーターが、同じ辺およびスパン・ステッピングユニットを使うので、テクセル色値、拡散色値および鏡面色値が、各ピクセルについて同じ順で生成されるが、必ずしも同時ではない。しかし、たとえテクセル色値、拡散色値および鏡面色値が同じ順に描画されるとしても、補間器が点およびベクトル・プリミティブに作用するので、そして、データが同期的に描画されないので、テクスチャ・ブレンド・ユニット114がこれらの値に作用する前に色値を表すデータが、同期される。
【００４５】
図7を参照すると、この発明に従うデータ同期装置コントローラ200とテクスチャマッピング・ボード12（図1）およびピクセル・ゼネレータ112（図3）との間のインターフェースのブロック図が、示される。インターフェースは、テクスチャマッピング・ボード12からデータを受け取り、テクスチャ色データを一つの３２ビット・テクセルにパックし、パックされたテクスチャ色データを複数のデータレジスタ203にパスするためのテクセルパッカーユニット202を含む。データは、11の信号線だけを使用してテクスチャマッピング・ボード12とテクセル・パッカー・ユニット202との間で転送される。これらの信号線の中の8つが、4つの成分、α、赤、緑および青に直列化された8ビットのデータを受け取る入力データ線t-dataである。直列化されたデータの各成分が、別々にハンドシェイクするので、4つのクロック・サイクルが、テクセル・データのすべての4つの成分をテクセル・パッカー・ユニット202に転送するために使用される。t-trans信号は、現在のテクセル・データが透明であるかどうかを示すために使用される。アサートされると、t_trans信号は、そのテクセル値はこのピクセルに適用されないので無視されなければならないことを示す。入力制御信号t_valid_Nは、テクセル・データおよびt_transが有効であるかどうか示す。最後に、出力制御信号t_ack_Nは、テクセル・データの成分の転送を肯定応答する。
【００４６】
以上のことからわかるように、テクスチャ色値の各成分、アルファ、赤、緑および青、がバス28の8つの信号線t-dataを通してテクスチャマッピング・ボード12からテクセル・パッカー・ユニット202に送られる。テクセル・パッカー・ユニット202が、次いでこれらの成分をデータレジスタ203にパスされる３２ビットの色テクセル・ワードtm_colorにパックし直す。一つの３２ビット・テクセルの完全な転送は、4クロックサイクルを使う。さらに、テクセル色値だけが、テクスチャマッピング・ボード12とテクセルパッカーユニット202との間で転送される。空間座標情報（x, yまたはz)その他の識別情報は転送されない。
【００４７】
テクセル・パッカー・ユニット202とデータ同期コントローラ・ユニット200の間のインターフェースは、テクセルが透明かどうかを示す信号であるtm_trans、テクセル・パッカー・ユニット202からデータレジスタ203に転送されつつある３２ビットのテクセル色値tm_colorが有効であるかどうかを示す信号であるtm_tcolor_valid、およびデータレジスタ203が、３２ビットのパックされたテクセル色値tm_colorの転送を受け入れることができることを認めるデータ同期コントローラ200からの信号であるld_tcolor_ackを含む。
【００４８】
ピクセル・ゼネレータ112（図3）が、また、データ同期ユニット・コントローラ200およびデータレジスタ203とインターフェースするスパン・ステッパー192（図5）を含む。データレジスタ203は、スパン・ステッパー192から13ビットの x座標値sp_x、13ビットの y座標値sp_yおよび23ビットの z座標値sp_zを受け取る。さらに、データレジスタは、３２ビット・バスsp_colorを通して３２ビット鏡面色値および３２ビット拡散色値を2つのクロック・サイクルで、スパン・ステッパー192から受け取る。
【００４９】
スパン・ステッパー192とデータ同期コントローラ200の間のインターフェースは、例えばピクセル・データが対応するプリミティブの種類（点、ベクトルまたは三角形）を示す複数のフラグから成るワードsp_statusを含む。特に、ピクセル・データが点であるかどうかを示すフラグ、ピクセル・データがベクトルであるかどうかを示すフラグ、データが拡散色の三角形ピクセルのためのものかどうかを示すフラグ、およびデータが鏡面色の三角形ピクセルのためのものかどうか示すフラグ、がある。さらに、sp_statusワードは、バスsp_color上の３２ビット色データが有効であるかどうかを示すフラグを含む。インターフェースは、データレジスタ203が現在データ格納中であり、現在スパン・ステッパー192からより多くのデータを受けることができないことを示すデータ同期コントローラ200からスパン・ステッパー192への機能停止信号である信号ld_stallをも含む。
【００５０】
さらに、データ同期コントローラ・ユニット200は、どのデータ成分（拡散、鏡面、テクセル）が同期データワードを完成するのにテクスチャ・ブレンド・ユニット114（図3）によって必要とされるかを示すデータ同期モード信号を維持する。具体的には、データ同期モード信号は、テクスチャ混合ユニット114（図3）が、拡散色だけ、拡散および鏡面色、拡散色およびテクスチャ・マップされた色、または拡散、鏡面およびテクスチャ・マップされた色を必要とすることを示す。モード信号は、深さキュー混合ユニット116（図3）が、イネーブルまたは使用禁止にされているかどうかを示すビットを持つ。
【００５１】
データ同期コントローラ200およびデータレジスタ203の間のインターフェースが、load_pixel信号を含み、この信号は、図8に関連して後述するようにx、y、およびz座標データおよび拡散色データをスパン・ステッパーからそれぞれのx、y、zおよび拡散色データレジスタにロードする。同様に、信号load_specularは、鏡面色データをスパン・ステッパー200から鏡面色データレジスタ（図8）にロードする。さらに、信号load_texelは、３２ビット・テクセル色データtm_colorをテクセル・パッカー・ユニット202から、テクセル色データレジスタ（図8）にロードする。またさらに、信号tri_xferは、鏡面およびテクスチャ色データ経路レジスタ（図8）をゼロにクリアする。
【００５２】
データ同期コントローラ・ユニット200は、処理パイプラインにおいて次の段にスターテスワードld_statusを出力する。ld-statusワードは、出て行く同期した色および座標データ・ワードが有効であるかどうか示すビットと、出て行く同期した色および座標データ・ワードがベクトル・プリミティブにおけるピクセルに対応するかどうか示すビットと、出て行く同期した色および座標データ・ワードが点プリミティブのピクセルに対応するかどうかを示すビットと、出て行く同期した色および座標データ・ワードが三角形プリミティブのピクセルに対応するかどうかを示すビットとを含む。さらに、データ同期コントローラ200は、混合ユニット114からの出力である信号bc_stallを受け取る。この信号は、混合ユニットがデータレジスタ203から別の同期されたデータワード201を受けることができるかどうかを示す。
【００５３】
図8を参照すると、データレジスタ203のより詳細なブロック図が示されている。データレジスタ203は、複数のマルチプレクサ204-214および複数のレジスタ216-226から成る。データ同期コントローラ・ユニット200（図7）は、どのレジスタにどのデータ値がロードされることになっているかを判断する。ひとたび、拡散色値、鏡面色値、およびテクセル色値のすべて、ならびにx座標、y座標およびz座標値が適当なレジスタ216ないし226にロードされると、同期されたデータワード201（図7）は、色合成のためにテクスチャ・ブレンド・ユニット114に転送される。
【００５４】
特に、データ同期コントローラ200は、各ピクセルについてテクセル色値、拡散色値、および鏡面色値を待つ。これらの値の各々は、このピクセルに対応すると仮定する。この仮定は、テクスチャマッピング・ボード12（図1）およびピクセル・ゼネレータ112（図3）の両方に同じスパン・ステッパーおよび辺計算ユニットを使用することから生じる。しかし、上で示したようにピクセル・ゼネレータ112は、ベクトル・プリミティブおよび点プリミティブのためにテクスチャ混合ユニット114で混合されない拡散および鏡面色値を提供する。このように、データ同期コントローラ200は、ベクトルおよび点ピクセルのための拡散および鏡面色値がデータ同期コントローラ200を通り抜けるのを許す。データ同期コントローラは、データとともにスキャンコンバーターのパイプラインを通って移動するsp_statusワードのフラグビットを調べることによって拡散および鏡面色値がベクトルまたは点プリミティブのピクセルに対応するかかどうか決定する。
【００５５】
例として図8を参照すると、テクセル色値tm_tcolorが、鏡面または拡散色値sp_colorの前に到着し、テクセル色値がレジスタ226に保存され、ld_tcolor_ack信号がテクセル・パッカー・ユニット202に出力されて、データレジスタ226がテクセルデータ転送の用意ができていないことを示す。上で示したように拡散および鏡面色データが、同じ３２ビット・データ線sp_color上でデータレジスタ222および224にそれぞれ転送され、スパン・ステッパー192からデータレジスタ222と224に拡散および鏡面色データ値を転送するのに2つのクロック・サイクルを必要とする。上で説明したように、鏡面色データが常に拡散色データに続く。しかし、鏡面色オプションがイネーブルされないとき、レジスタ224にすべてゼロがロードされるので、データ同期ユニットが同期したデータワード201を出力することができる。
【００５６】
マルチプレクサ204-214およびデータレジスタ216-226の作用を説明する。各クロック・サイクルについて、マルチプレクサが、例えば、マルチプレクサ204のためのデータ線228および240上のデータの間で選び、選ばれたデータを対応するデータレジスタ216-226に出力する。信号データ同期コントローラ・ユニット200（図7）からの出力であるload-Pixelが、入力データ線のどれがそれぞれのデータレジスタに出力されるデータとして選ばれることになっているかに関してそれぞれのマルチプレクサに指示する。特に、load_pixel信号がアサートされないとき、それぞれのデータレジスタ228-238の出力に結びつけられた入力データ線が選ばれるので、それぞれのデータレジスタに格納されたデータが選ばれて、データレジスタに出力される。load_pixel信号がアサートされるとき、それぞれの入力データ線240-248上のデータが選ばれて、それぞれのデータレジスタにロードされる。
【００５７】
マルチプレクサ212および214に言及すると、テクスチャ混合ユニット114（図3）が、鏡面色値とテクセル色値の一つまたは両方が、対応するピクセルのために混合ユニットによって使用されないような混合モードにあるならば、tri-xfer信号がアサートされて信号線245および247の一つまたは両方から32のゼロが選ばれ、それぞれのデータレジスタに224および226に出力される。このように、ロード-ピクセル信号がそれぞれのデータレジスタのためにアサートされるまで、マルチプレクサ204-214およびデータレジスタ216-226が現にそれぞれのデータレジスタにあるデータ値を格納するために絶えず調整して作用し、load_pixelがアサートされるとき、対応するデータ線上のデータがそれぞれのデータレジスタに記録される。
【００５８】
上で説明した例において、x、y、z座標データおよび拡散、鏡面および色値の前にテクセル色データがデータ同期ユニットに先ず到着したが、データは、任意の順で複数のデータレジスタ203に到着することができ、同期コントローラ・ユニット200がデータを同期したデータワード201に同期させることが理解されねばならない。
【００５９】
図9ないし13を参照すると、この発明に従ってデータ同期を制御するために同期コントローラ・ユニット200で実行される方法が図示される。発明の好ましい実施例において、同期コントローラは、ゲートアレイの中で実行される状態機械である。しかし、このコントローラは、ソフトウェア、ハードウェアなどのような他のフォーマットで実行することができ、そのような実施例もこの発明によってカバーされることが理解されねばならない。
【００６０】
図9は、グラフィックス・システムが拡散だけのモードにあることをモード信号が示すとき、ピクセル・データを同期させる方法を図示する。最初は、データ同期コントローラ200はアイドル状態250にある。モード信号が、拡散だけのモード251（イエス）を示すとき、方法は、データがベクトル・ピクセル252（イエス）に対応するとき、状態252の一つに進み、データが点ピクセル254（イエス）に対応するとき、状態254に進み、そして、データが拡散だけのモード256（イエス）における三角形ピクセルに対応するとき、状態256に進む。付加データが必要とされないから、ベクトル・データ258、点データ260および拡散だけの三角形データ262が、それぞれのデータレジスタ（図8）にロードされる。ベクトル・データ264、点データ266および拡散だけ（diffuse-only）の三角形データ268は、次いで処理パイプラインの次の段に転送される。
【００６１】
図10を参照すると、この発明に従って、グラフィックス・システムが拡散および鏡面カラーモードにあるとき、ピクセル・データを同期させる方法が示される。モード信号が、拡散および鏡面カラーモード270（イエス）を示すとき、コントローラ200は、拡散色データがスパン・ステッパー・インターフェースに到着するのを状態272で待つ。拡散色データを受け取ると、方法が状態274に進み、拡散色データがそのそれぞれのレジスタ（図8）にロード274される。データ同期コントローラは、鏡面色データがスパン・ステッパー・インターフェースに到着するのを状態276で待つ。鏡面色データを受け取ると、方法が状態278に進み、鏡面色データがその適当なレジスタ（図8）にロード278される。同期されたデータ201が、次いで処理パイプラインの次の段に転送され280、コントローラはアイドル状態250に戻される。
【００６２】
図11を参照すると、グラフィックス・システムが拡散およびテクスチャ・マップ・カラーモードにあるとき、この発明に従ってピクセル・データを同期させる方法が図示される。ピクセル・データが拡散およびテクスチャ・マップ・モード282（イエス）にあることをモード信号が示すとき、データは、テクセル・データ最初状態284、拡散データ最初状態286、または同じクロック・サイクルでのテクセルおよび拡散データ状態288の３つの異なる順序のいずれかでデータレジスタ203に到着することができる。テクセル・データが最初に到着することが段284で判断されるとき、方法は、状態290に進み、テクセル・データがそのそれぞれのデータレジスタ（図8）にロードされる。コントローラは、次いで状態292で、拡散ピクセル・データが到着するのを待ち、到着すると、状態294に進み、拡散データがそのそれぞれのデータレジスタにロードされる。同期された拡散およびテクセル色データワード201は、次いで段296において処理パイプラインの次の段に転送され、コントローラはアイドル状態250に復帰する。
【００６３】
対照的に、拡散色ピクセル・データが最初に到着することが段286で判断されると、コントローラ200は、段298に進み、拡散データがそのそれぞれのデータレジスタにロードされる。コントローラは、段300で対応するテクセル・データが到着するのを待ち、到着すると、状態302に進み、テクセル・データがそのそれぞれのデータレジスタ（図8）にロードされる。同期された拡散およびテクセル色データワード201は、次いで処理パイプラインの次の段に転送され304、コントローラ200がアイドル状態250に復帰する。
【００６４】
また代わりに、テクセルおよび拡散データが一緒に到着することがステップ288で判断されると、データはステップ306でそれぞれのデータレジスタ（図8）にロードされる。同期された拡散およびテクセル色データは、次いで状態308で処理パイプラインの次の段に転送され、コントローラがアイドル状態250に復帰する。
【００６５】
図12を参照すると、コンピュータ・グラフィックス・システムが拡散色、鏡面色およびテクスチャマッピング・モードにあるとき、この発明に従ってデータを同期させる方法が示される。混合ユニット114が拡散、鏡面およびテクスチャマッピング・モードにあるとき、データが3つの順序のいずれかでも到着することができるから、コントローラは、テクセル・データ最初312、拡散データ最初314、および同じクロック信号318上の拡散およびテクセル・データの3つのモードの一つに入ることができる。
【００６６】
第１のモードにおいて、テクセル・データが最初に到着することが状態312で判断されるとき、テクセル・データは、状態320においてその対応するデータレジスタ（図8）にロードされる。コントローラは、次いで状態322において拡散データの到着を待ち、到着すると状態324に進み、拡散データがその対応するデータレジスタ（図8）にロードされる。コントローラは、次いで状態326において鏡面データが到着するのを待ち、到着すると、状態328に進み、鏡面データがそのそれぞれのデータレジスタ（図8）にロードされる。同期された鏡面、拡散およびテクセル色データワード201が、次いで処理パイプラインの次の段に転送され330、コントローラはアイドル状態250に復帰する。
【００６７】
第２のモードにおいて拡散色ピクセル・データが最初に到着することが状態314で判断されるとき、拡散データが状態332でそのそれぞれのデータレジスタにロードされる。図13を参照すると、コントローラが、次いで同じクロック・サイクルにテクセルおよび鏡面データが到着する、状態334、テクセル・データが２番目の、状態336、および鏡面データが２番目の、状態338の3つのサブモードの一つに入ることができる。第１のサブモードにおいて、テクセルおよび鏡面色データが一緒に到着することが状態334で判断されるとき、テクセルおよび鏡面データは、状態340でそれぞれのデータレジスタ（図8）にロードされる。同期された鏡面、拡散およびテクセル色データワード201が次いで状態342において処理パイプラインの次の段に転送され、コントローラはアイドル状態250に復帰する。第２のサブ・モードにおいて、テクセル・データが次に到着することが状態336で判断されると、テクセル・データは、状態334においてそれぞれのデータレジスタにロードされる。コントローラは、次いで状態346において鏡面データの受領を待ち、受領すると、鏡面データが状態348においてそれぞれのデータレジスタ（図8）にロードされる。同期された鏡面、拡散およびテクセル色データが、次いで状態350において処理パイプラインの次の段に転送され、コントローラはアイドル状態250に復帰する。第３のサブ・モードにおいて、鏡面データが次に到着することが段338で判断されると、鏡面データは、状態352においてそれぞれのデータレジスタ（図8）にロードされる。コントローラは、次いで状態354においてテクセル・データを待ち、受け取られると、テクセル・データは、状態356においてそれぞれのデータレジスタ（図8）にロードされる。同期された鏡面、拡散、そして、テクセル色データは、次いで状態358において処理パイプラインの次の段に転送され、コントローラがアイドル状態250に復帰する。
【００６８】
図12を参照すると、第３のモードにおいて、拡散およびテクセル・データが一緒に到着することが状態318において判断されると、拡散およびテクセル・データが、状態360においてそれぞれのデータレジスタ（図8）にロードされる。コントローラは、次いで状態362において鏡面データを待ち、これを受け取ると、鏡面データは、状態364においてそれぞれのデータレジスタ（図8）にロードされる。同期された鏡面、拡散、そして、テクセル色データワード201は、次いで状態366において処理パイプラインの次の段に転送され、コントローラがアイドル状態250に復帰する。
【００６９】
それゆえに、データ同期コントローラ・ユニット200が、データ転送の後、回復するために特定の時を必要としないことがこの発明の利点である。特に、コントローラ・ユニット200は、アイドル状態250に直ちに戻される。そして、直ちにその入力での新しいデータを扱うことができ、一つのクロック・サイクル中に次の段に新しいデータを転送することができるかもしれない。
【００７０】
パイプライン、特に、テクスチャマッピング・チップ12（図1）とフレーム・バッファ・チップ14の間でデータを転送するのに必要とされる信号線の数が、小さいことは、この発明のもう一つの利点である。さらに、テクスチャマッピング・ボードとフレーム・バッファ・チップの間で識別情報または座標情報を転送する必要がない。さらに、この発明は、混合ユニットのテクスチャマッピング・オプションがイネーブルされるとき、三角形プリミティブ・データを点在したベクトルおよび点のような他のプリミティブ・データをパイプラインをフラッシュする必要性なしで許容する。このように性能を向上したコンピュータ・グラフィックス・システムが、この発明に従って提供される。
【００７１】
データ同期コントローラ・ユニット200が、テクセル色値、拡散色値および鏡面色値を所与のピクセルのために一つの同期されたワード201にまとめたならば、同期された色情報が、情報を一緒に混合して結果の色データを得るためにテクスチャ・ブレンド・ユニット114で使用される。好ましい実施例において、テクスチャ・ブレンド・ユニット114は、いくつかのテクスチャ混合モードを持ち、その一つが各三角形をレンダリングする際に選ばれる。「変更なし」モードにおいて、拡散色値は、テクスチャ色による修正なしで使用される。描画中の三角形がテクスチャを必要としないとき、またはグラフィックス・システムがテクスチャマッピングを含まないとき、これが適当である。この場合、拡散色値は、修正されない。「置換」モードにおいて、ピクセル・ゼネレータからの拡散値がテクスチャ・マップ色値で置き換えられる。「調整」モードにおいて、拡散色値にテクスチャ・マップ色値が掛けられる。「デカル（移し絵）」モードにおいて、ピクセル・ゼネレータからの拡散色値は、テクセル・アルファ値に基づく混合割合に従って、テクスチャ・マップ色値と混ぜ合わせられる。テクスチャ混合の後、鏡面色値は、結果の色値を生成するために選択的に中間の色値に加えられる。テクスチャ・ブレンド・ユニット114によって出力される結果の色値は、次いで深さキュー・ブレンド・ユニット116に供給される。
【００７２】
ここで説明する回路は、例としてだけのものだる。回路は、例えばシノプシス（Synopses）から市販されている論理合成ソフトウェアを使用する大規模なカスタム集積回路で実施するのが好ましい。論理合成ソフトウェアは、Veralogのような高級言語で書かれた回路説明を最適化し、論理ゲートに翻訳する。この回路は、5ボルトで動作する1ミクロンFETを生成するCMOSプロセス、3.3ボルトで動作する0.6ミクロンのゲート長のデバイスを生成するCMOSプロセス、その他デジタル回路を実施するに適した任意のプロセスを使用して実施することができる。論理合成ソフトウェアへの入力は構造的というよりも機能的であるから、論理合成ソフトウェアによって生成される実際の回路は、ここで開示されたものと異なることがありえる。
【００７３】
このように発明の少なくとも一つの実施例を説明したが、いろいろな変更、修正および改善が、技術に熟練した人にとって容易に考えられるであろう。そのような変更、修正および改善は、この発明の精神および有効範囲内にある。したがって、以上の説明は、例としてだけのものであり、発明を限定することを意図していない。この発明は、例として次の実施態様を含む。
【００７４】
1.  一組のデータワードにおけるデータの各ワードが複数の非同期データ・レンダリング装置（112、46）の一つによってデータ同期装置にレンダリングされる、データワードの組を同期させるデータ同期装置(114)であって、各データレジスタが、複数の非同期データ・レンダリング装置の対応する一つからデータワードの第１の組のデータのワードを受け取って一時的に格納し、制御信号がアサートされると、各データレジスタが、その格納されたデータのワードをデータワードの第１の同期した組として出力するようにした、複数のデータレジスタ（216、218、220、222、224、226）と、
データレジスタが第１の組のデータワードの対応するデータのワードを格納しつつあるとき、各非同期データ・レンダリング装置が第２の組のデータワードのデータのワードをその対応するデータレジスタに転送するのを防ぎ、データレジスタの各々が第１組のデータワードにおけるデータのそのワードを受け取るとき、制御信号をアサートする、コントローラ(200)と、
を備えるデータ同期装置。
【００７５】
2.  複数のマルチプレクサのそれぞれが、複数のデータレジスタの対応する一つの入力に結合した出力を持ち、第１の入力が、複数の非同期データ・レンダリング装置の対応する一つの出力に結合し、第２の入力が、複数のデータレジスタの対応する一つの出力に結合した、複数のマルチプレクサ（204、206、208、210、212、214）を備える、上記１に記載のデータ同期装置。
【００７６】
3.  複数の非同期レンダリング装置の、第１の非同期データ・レンダリング装置が、レンダリング・パラメータを受け取り、レンダリング・パラメータから、プリミティブの各ピクセルについてx、y、z座標および色値を計算し、データのそのワードとして、x、y、z座標および色値を複数のデータレジスタの対応する一つに出力するピクセル・ゼネレータ(112)である、上記１に記載のグラフィックス・システム。
【００７７】
4.  複数の非同期データ・レンダリング装置の第２のものが、レンダリング・パラメータを受け取り、レンダリング・パラメータから、三角形プリミティブの各ピクセルについてテクセル色値を計算し、テクセル色値をデータのそのワードとして複数のデータレジスタの対応する一つに出力する、テクスチャマッピング回路(46)である、上記３に記載のグラフィックス・システム。
【００７８】
5.  コントローラ(200)は、さらに第１の非同期データ・レンダリング装置からのデータの第１のワードが、第２の非同期データ・レンダリング装置からのデータの第２のワードと、拡散だけ（diffuse-only）の混合モード、拡散および鏡面混合モード、拡散およびテクスチャ・マップされた混合モード、並びに拡散、鏡面およびテクスチャ・マップされた混合モードのうちの一つで混合されるかどうか判断するのための手段を含む上記１に記載のグラフィックス・システム。
【００７９】
6.  一組のデータワードにおける各データワードが複数の非同期データ・レンダリング装置の一つによって描画される、データワードの同期した組を生成するためにデータ・ワードの組を同期させるための方法であって、データワードの第１の組の第１のデータワードを第１の非同期データ・レンダリング装置から受け取るステップと、一時的に第１のデータワードを格納するステップと、
第２のデータワードの受領を待つステップと、
第２のデータワードを受け取るステップと、
第１のデータワードおよび第２のデータワードを含むデータワードの同期した組を出力するステップと、
を含む上記方法。
【００８０】
7.  第１のデータワードが第２のデータワードに混ぜ合わされるかどうか判断するステップを有する上記６に記載の方法。
【００８１】
8.  第１のデータワードが第２のデータワードに混ぜ合わせられることになっていないとき、第２のデータワードとしてデフォルト・データワードを提供するステップを有する上記７に記載の方法。
【００８２】
9.  データワードの同期された組が出力されるまで、データワードの第２において、第１の非同期データ・レンダリング装置がデータワードを送るのを禁止するステップを有する上記６に記載の方法。
【００８３】
10.  一時的に第２のデータワードを格納するステップと、第３のデータワードの受領を待つステップとを有する上記６に記載の方法。
【００８４】
【発明の効果】
この発明によると、コンピュータ・グラフィックス・システムにおいて非同期に処理される色データ、深さデータ、テクスチャ・データその他のデータを同期させてレンダリングを行うことができる。
【図面の簡単な説明】
【図１】この発明の総体的なコンピュータ・グラフィックス・システムの一つの実施例のブロック図である；
【図２】この発明の総体的なコンピュータ・グラフィックス・システムの別の実施例のブロック図である。
【図３】この発明に従ってピクセル・データごとの同期を取り入れているスキャンコンバーターのブロック図である。
【図４】図3で示されるスキャンコンバーターの一部であるピクセル・ゼネレータのブロック図である。
【図５】図4の中で示された各パラメータ補間器を表すブロック図である。
【図６】発明に従う三角形レンダリング・プロセスを示す図である。
【図７】データ同期装置、テクスチャマッピング・ボードおよびピクセル・ゼネレータの間のインターフェースのブロック図である。
【図８】図7の中で示されたデータ同期装置のブロック図である。
【図９】図7の中で示されたデータ同期装置を制御するためのこの発明の方法を示す流れ図である。
【図１０】図7の中で示されたデータ同期装置を制御するためのこの発明の方法を示す流れ図である。
【図１１】図7の中で示されたデータ同期装置を制御するためのこの発明の方法を示す流れ図である。
【図１２】図7の中で示されたデータ同期装置を制御するためのこの発明の方法を示す流れ図である。
【図１３】図7の中で示されたデータ同期装置を制御するためのこの発明の方法を示す流れ図である。
【符号の説明】
１１０      辺計算ユニット
１１２      ピクセル生成装置
１１４      テクスチャ・ブレンド・ユニット
１１６      深さキュー・ブレンド・ユニット
２００      データ同期ユニット
２０２      テクスチャ・パッカー・ユニット
【図１】
0003888478.tif 000002
【図２】
0003888478.tif 000003
【図３】
0003888478.tif 000004
【図４】
0003888478.tif 000005
【図５】
0003888478.tif 000006
【図６】
0003888478.tif 000007
【図７】
0003888478.tif 000008
【図８】
0003888478.tif 000009
【図９】
0003888478.tif 000010
【図１０】
0003888478.tif 000011
【図１１】
0003888478.tif 000012
【図１２】
0003888478.tif 000013
【図１３】
0003888478.tif 000014