JPH10116356A - 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ - Google Patents

浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ

Info

Publication number
JPH10116356A
JPH10116356A JP9211429A JP21142997A JPH10116356A JP H10116356 A JPH10116356 A JP H10116356A JP 9211429 A JP9211429 A JP 9211429A JP 21142997 A JP21142997 A JP 21142997A JP H10116356 A JPH10116356 A JP H10116356A
Authority
JP
Japan
Prior art keywords
core
data
floating point
bus
lighting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9211429A
Other languages
English (en)
Inventor
Michael F Deering
マイケル・エフ・ディアリング
Morse Wayne
モース・ウェイン
Adeleke Ajirotutu
アデレク・アジロトゥトゥ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10116356A publication Critical patent/JPH10116356A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 従来技術の設計に勝る改善された性能を含む
3次元グラフィックス・アクセラレータ用の浮動小数点
プロセッサを提供する。 【解決手段】 浮動小数点プロセッサは、浮動小数点演
算を能率化し、従来のシステムに勝る改善された性能を
もたらす3つの特殊なエンジンまたは関数ユニットを含
んでいる。三角形および頂点の計算は、性能を改善する
ために3つの関数ユニット上で分割される。Fコア・プ
ロセッサは、形状プリミティブ・データを受け取り、受
け取った形状データに対して浮動小数点演算を実施す
る。Lコア・プロセッサは、ライティング計算を実施す
る固定小数点計算ユニットを含んでいる。セットアップ
・コアは、形状プリミティブのセットアップ計算を実施
する固定小数点計算ユニットを含んでいる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、3次元グラフィッ
クス・アクセラレータに関し、さらに詳細には、性能を
改善するために浮動小数点コア、ライティング・コアお
よびセットアップ・コアを含む3次元グラフィックス・
アクセラレータ用の改善された浮動小数点プロセッサ・
アーキテクチャに関する。
【0002】
【従来の技術】3次元(3D)グラフィックス・アクセ
ラレータは、ホストプロセッサから3次元レンダリング
機能をアンロードし、それによりシステム性能が改善さ
れるように設計されたコンピュータ・システム用の特殊
グラフィックス・レンダリング・サブシステムである。
3次元グラフィックス・アクセラレータを有するシステ
ムでは、コンピュータ・システムのホスト・プロセッサ
上で実施されているアプリケーション・プログラムは、
ディスプレイ装置上に表示するために3次元グラフィッ
クス・エレメントを規定する3次元形状データを生成す
る。アプリケーション・プログラムは、ホスト・プロセ
ッサに形状データをグラフィックス・アクセラレータに
転送させる。グラフィックス・アクセラレータは、形状
データを受け取り、対応するグラフィックス・エレメン
トをディスプレイ装置上にレンダリングする。
【0003】高性能3次元グラフィックス・システムの
設計アーキテクチャは、事実上、システム性能の向上と
システム・コストの最小化との釣り合いを実現する。し
かしながら、従来のグラフィックス・システムには、通
常、様々なシステム上の制約のために性能が制限される
か、またはコストが高いという問題がある。
【0004】3次元グラフィックスを表示するアプリケ
ーションは、ものすごい量の処理能力を必要とする。例
えば、コンピュータ・システムが滑らかな3次元動画を
生成する場合、コンピュータ・システムは、毎秒20〜
30個フレームというフレーム速度または更新速度を維
持する必要がある。このため、毎秒百万個以上の三角形
を処理することができる3次元コンピュータ・グラフィ
ックス・アクセラレータが必要となる。
【0005】一般に、3次元コンピュータ・グラフィッ
クス・アクセラレータには、性能を制限する主要な3つ
の欠点があった。第1の欠点は、形状レンダリング・プ
リミティブ、例えば、線および三角形をホスト・コンピ
ュータ上の主システム・メモリからグラフィックス・ア
クセラレータに転送する要件である。ホスト・プロセッ
サ・メモリ・システムおよびデータが転送されるシステ
ム・バスの動作は、これらの形状レンダリング・プリミ
ティブのホスト・メモリから3次元アクセラレータへの
転送速度を制限する。第2の欠点は、アクセラレータ内
での変換、ライティング、セットアップなどを含む頂点
処理要件である。第3の欠点は、プリミティブからのピ
クセルがフレーム・バッファ内に充填される速度であ
る。
【0006】より高性能の3次元グラフィックス・アー
キテクチャを構築するためには、上記3つの領域すべて
のスループットが向上しなければならない。上述のよう
に、3次元グラフィックス・アーキテクチャの主要な欠
点の1つは、事実上、プリミティブからのピクセルがフ
レーム・バッファ・メモリ内に充填される速度であっ
た。システムは、事実上、より高いスループットを達成
しようとして、デュアル・ポート・ビデオRAM(VR
AM)またはインタリーブDRAMを使用していた。3
DRAMと呼ばれる新しいタイプのビデオ・メモリによ
れば、ピクセル・スループット・レートが一桁上がる。
グラフィックス・アクセラレータ・システム内で3DR
AMを使用すれば、プリミティブからのピクセルがフレ
ーム・バッファ内に充填される充填速度は3次元レンダ
リングの欠点ではなくなる。3DRAMを使用した場
合、性能の欠点は、一般に、頂点の処理を含めて、形状
データのシステム・バス上での転送速度または3次元グ
ラフィックス・アクセラレータ処理を含んでいる。した
がって、高い浮動小数点性能が得られる新しい3次元グ
ラフィックス・アクセラレータ・アーキテクチャが必要
である。
【0007】3次元グラフィックス・アクセラレータ
は、一般に、特に頂点位置変換、クリップ・テスト、ラ
イティング、およびセットアップ計算を含めて、多数の
浮動小数点演算を実施する必要がある。一般に、3次元
グラフィックス・アクセラレータによって実施される浮
動小数点演算は、多くの場合、グラフィックス・アクセ
ラレーション・プロセスのネックになる。したがって、
いくつかの3次元グラフィックス・アクセラレータは、
所要のすべての浮動小数点演算を実施するように設計さ
れた特殊なまたは専用の浮動小数点プロセッサを含んで
いる。
【0008】
【発明が解決しようとする課題】Sun Micros
ystems社に譲渡されたDeeringの米国特許
第5517611号には、従来技術による3次元グラフ
ィックス・アクセラレータ用の浮動小数点プロセッサが
開示されている。図示のように、この従来技術の浮動小
数点プロセッサは、それぞれ並列浮動小数点乗算器、並
列浮動小数点ALU、並列浮動小数点反復逆数回路、逆
数平方根回路、および並列整数ALUを実施する複数の
浮動小数点ユニットを含んでいる。米国特許第5517
611号に記載されている浮動小数点プロセッサは、変
換、ライティングおよびセットアップなどの計算をすべ
て1つのプログラマブル・ユニット内で実施する。しか
しながら、現在の3次元グラフィックス・アプリケーシ
ョンは、より高い浮動小数点性能を含めて、一層高い性
能を必要とする。したがって、従来技術の設計に勝る向
上した性能が得られる改善された浮動小数点プロセッサ
・アーキテクチャが必要である。
【0009】
【課題を解決するための手段】本発明は、従来技術の設
計に勝る改善された性能を含む3次元グラフィックス・
アクセラレータ用の浮動小数点プロセッサを含む。浮動
小数点プロセッサは、浮動小数点演算を能率化し、従来
のシステムに勝る改善された性能をもたらす3つの特殊
なエンジンまたは関数ユニットを含んでいる。好ましい
実施態様では、浮動小数点プロセッサは、浮動小数点コ
ア(Fコア)、ライティング・コア(Lコア)、および
セットアップ・コア(Sコア)を含んでいる。三角形お
よび頂点の計算は、性能を改善するために3つの関数ユ
ニット上で分割される。
【0010】Fコア・プロセッサは、形状プリミティブ
・データを受け取り、受け取った形状データに対して浮
動小数点演算を実施する。Fコア・プロセッサは、頂点
位置をモデル空間からビュー空間へ変換し、受け取った
形状データに対するクリッピング演算を実施し、受け取
った頂点情報をスクリーン空間に変換する遠近分割を実
施し、三角形が前面か裏面かを判定するなどの演算を実
施する。Fコア・プロセッサはまた、いくつかのライテ
ィング演算を実施する。
【0011】Lコア・プロセッサは、ライティング計算
を実施する固定小数点計算ユニットを含んでいる。ライ
ティング・コアは、浮動小数点コアから出力データを受
け取るように結合され、またバス・インタフェースから
直接プリミティブ・データを受け取るように結合され
る。Lコア・プロセッサは、特にライティング計算を実
施するように設計されている。好ましい実施形態では、
Lコア・プロセッサは、大部分のライティング演算を実
施する。Fコア・プロセッサは、点光源やスポット光源
など、より複雑な光源のライティング計算を実施する。
【0012】セットアップ・コアは、形状プリミティブ
のセットアップ計算を実施する固定小数点計算ユニット
を含んでいる。セットアップ計算は、三角形の3つの頂
点をドロー処理のために昇順で分類することを含む。セ
ットアップ・コアは、ライティング・コアおよび浮動小
数点コアから出力を受け取り、ドロー・プロセッサに出
力を供給する。
【0013】したがって、本発明は、性能を改善するた
めに3つの別々の処理ユニットを含む3次元グラフィッ
クス・アクセラレータ用の改善された浮動小数点プロセ
ッサを含む。
【0014】添付の図面を見ながら好ましい実施形態の
以下の詳細な説明を読めば、本発明をよりよく理解する
ことができよう。
【0015】
【発明の実施の形態】
図1 コンピュータ・システム 次に、図1を参照すると、本発明による3次元(3D)
グラフィックス・アクセラレータを含むコンピュータ・
システム80が示されている。図示のように、コンピュ
ータ・システム80は、システム・ユニット82および
システム・ユニット82に結合されたビデオ・モニタま
たはディスプレイ装置84を含んでいる。ディスプレイ
装置84は、様々なタイプのディスプレイ・モニタまた
はディスプレイ装置のいずれでもよい。キーボード86
およびマウス88または他の入力装置を含めて、様々な
入力デバイスがコンピュータ・システムに接続される。
コンピュータ・システム80は、フロッピ・ディスク9
0によって示されるアプリケーション・ソフトウェアを
実施して、3次元グラフィカル・オブジェクトをビデオ
・モニタ84上に表示させる。以下で詳細に説明するよ
うに、コンピュータ・システム80内の3次元グラフィ
ックス・アクセラレータは、改善された性能を有する3
次元グラフィカル・オブジェクトの表示を可能にする。
【0016】図2 コンピュータ・システムのブロック
図 次に、図2を参照すると、図1のコンピュータ・システ
ムを示す簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュータ・システム
の要素は便宜上示されていない。図示のように、コンピ
ュータ・システム80は、高速バスまたはシステム・バ
ス104に結合された中央演算処理装置(CPU)10
2を含んでいる。また、システム・メモリ106が高速
バス104に結合されることが好ましい。
【0017】ホスト・プロセッサ102は、様々なタイ
プのコンピュータ・プロセッサ、マルチプロセッサおよ
びCPUのいずれでもよい。システム・メモリ106
は、ランダム・アクセス・メモリおよび大容量記憶装置
を含めて、様々なタイプのメモリ・サブシステムのいず
れでもよい。システム・バスまたはホスト・バス104
は、ホスト・プロセッサ、CPU、およびメモリ・サブ
システム、ならびに特殊サブシステム間の通信を行う様
々なタイプの通信バスまたはホスト・コンピュータ・バ
スのいずれでもよい。好ましい実施形態では、ホスト・
バス104は、83MHzにおいて動作する64ビット
・バスであるUPAバスである。
【0018】本発明による3次元グラフィックス・アク
セラレータ112は、高速メモリ・バス104に結合さ
れる。3次元グラフィックス・アクセラレータ112
は、例えばクロス・バー・スイッチまたは他のバス接続
論理回路によってバス104に結合される。当技術分野
において周知のように、他の様々な周辺装置または他の
バスを高速メモリ・バス104に接続することができる
と仮定してある。図示のように、ビデオ・メモリまたは
ディスプレイ装置84は、3次元グラフィックス・アク
セラレータ112に接続される。
【0019】ホスト・プロセッサ102は、ホスト・バ
ス104を介してプログラム入出力(I/O)プロトコ
ルに従ってグラフィックス・アクセラレータ112との
間で情報を転送する。好ましい実施形態では、CPUコ
ピー(bコピー)コマンドを使用して、システム・メモ
リ106からグラフィックス・アクセラレータ112へ
データを転送する。他の実施形態では、グラフィックス
・アクセラレータ112は、直接メモリ・アクセス(D
MA)プロトコルに従ってメモリ・サブシステム106
にアクセスする。
【0020】ホスト・プロセッサ102上で動作してい
るグラフィックス・アプリケーション・プログラムは、
ディスプレイ装置84上に表示べき画像を規定する3次
元形状情報を含む形状データ・アレイを生成する。ホス
ト・プロセッサ102は、形状データ・アレイをメモリ
・サブシステム106に転送する。その後、ホスト・プ
ロセッサ102は、好ましくはbコピー・コマンドを使
用して、ホスト・バス104を介してデータをグラフィ
ックス・アクセラレータ112に転送する。あるいは、
グラフィックス・アクセラレータ112は、DMAアク
セス・サイクルを使用して、ホスト・バス104を介し
て形状データ・アレイの読取りを行う。他の実施形態で
は、グラフィックス・アクセラレータ112は、Int
el社が普及させたアドバンス・グラフィックス・ポー
ト(AGP)など、直接ポートを介してメモリ・サブシ
ステム106に結合される。
【0021】形状データ・アレイ内の3次元形状情報
は、頂点座標(頂点)、頂点位置、および通常モデル空
間と呼ばれる3次元空間内で三角形、ベクトルおよび点
を定義する他の情報を含む入力頂点パケットのストリー
ムを含んでいる。各入力頂点パケットは、頂点位置、頂
点法線、頂点カラー、ファセット法線、ファセット・カ
ラー、テクスチャ・マップ座標、ピックID、ヘッダ、
および他の情報を含めて、3次元頂点情報の任意の組合
せを含んでいる。
【0022】図3 グラフィックス・アクセラレータ 次に、図3を参照すると、本発明の好ましい実施形態に
よる3次元グラフィックス・アクセラレータ112を示
すブロック図が示されている。図4は、3次元グラフィ
ックス・アクセラレータ112の一部を示すより詳細な
図である。図示のように、3次元グラフィックス・アク
セラレータ112は、主として、コマンド・プリプロセ
ッサまたはコマンド・ブロック142、一組の浮動小数
点プロセッサまたは浮動小数点ブロック152Aないし
152F、一組のドロー・プロセッサまたはドロー・ブ
ロック172Aおよび172B、3DRAMから構成さ
れたフレーム・バッファ、およびランダム・アクセス・
メモリ/デジタルアナログ変換器(RAMDAC)19
6から構成される。
【0023】図示のように、3次元グラフィックス・ア
クセラレータ112は、ホスト・バス104にインタフ
ェースするコマンド・ブロック142を含んでいる。コ
マンド・ブロック142は、グラフィックス・アクセラ
レータ112をホスト・バス104にインタフェース
し、グラフィックス・アクセラレータ112内で他のブ
ロックまたはチップ間のデータの転送を制御する。コマ
ンド・ブロック142はまた、以下で詳細に説明するよ
うに、三角形およびベクトル・データを事前処理し、形
状データ圧縮解除を実施する。
【0024】コマンド・ブロック142は、複数の浮動
小数点ブロック152にインタフェースする。3次元グ
ラフィックス・アクセラレータ112は、図示のように
最大6つの浮動小数点ブロック152Aないし152F
を含んでいることが好ましい。浮動小数点ブロック15
2Aないし152Fは、ハイ・レベル・ドロー・コマン
ドを受け取り、3次元オブジェクトをスクリーン上にレ
ンダリングすべき三角形や線などグラフィックス・プリ
ミティブを生成する。浮動小数点ブロック152Aない
し152Fは、受け取った形状データに対して、変換、
クリッピング、ライティングおよびセットアップなどの
諸操作を実施する。各浮動小数点ブロック152Aない
し152Fは、それぞれのメモリ153Aないし153
Fに接続される。メモリ153Aないし153Fは、3
2k×36ビットSRAMが好ましく、マイクロコード
およびデータ記憶に使用される。
【0025】コマンド・ブロック142は、複数の2地
点間バスまたは直接データ・チャネル154Aないし1
54Fを介して浮動小数点ブロック152Aないし15
2Fにインタフェースする。したがって、コマンド・ブ
ロック142は、各浮動小数点ブロック152Aないし
152Fへの直接チャネルを含んでいる。複数の2地点
間バスまたは直接データ・チャネル154Aないし15
4Fは、それぞれ100MHzにおいて動作する単一方
向8ビット・バスが好ましい。直接データ・チャネル1
54Aないし154Fは、集合的に48ビットを含んで
おり、また直接データ・チャネル154Aないし154
Fは、集合的にCFバス(コマンド/フロート・バス)
と呼ばれる。CFバス間のデータ転送は、6サイクルに
わたって実施される48ビット転送を含んでおり、転送
の開始は、別々の6つのバス間で同期している。
【0026】以下で詳細に説明するように、CFバスは
また、3つの8ビット・バスと結合して、CDバスと呼
ばれる33ビット・バスを形成する追加の9つのビット
を含んでいる(図8ないし図10)。図3および図4に
示すように、バス154A、154Bおよび154C
は、集合的にCDバスを含んでおり、それぞれ8ビット
・バスに加えて追加の3ビットを含む11ビット・バス
である。CDバスは、コマンド・ブロック142からド
ロー・ブロック172Aおよび172Bへの直接単一方
向バスである。CDバスは、CFバス154からサイク
ルおよびデータ線を「借用」して、3つの浮動小数点ブ
ロック152Aないし152C内のデータ・パスをコン
ジットとして使用して、32ビット・データをコマンド
・ブロック142からドロー・ブロック172Aおよび
172Bへ迅速に送る。
【0027】図示のように、コマンド・ブロック142
は、各チャネル154Aないし154Fに対応する別個
のFIFOバッファ144Aないし144Fを含んでい
る。これらのFIFOバッファ144を使用して、デー
タを記憶またはバッファし、その後データをそれぞれの
チャネル154Aないし154F上でそれぞれの浮動小
数点ブロック152Aないし152Fに転送する。図示
のように、各浮動小数点ブロック152Aないし152
Fは、それぞれのチャネル154Aないし154Fから
データを受け取るために結合されたそれぞれの入力FI
FOバッファ155Aないし155Fを含んでいる。
【0028】各浮動小数点ブロック152Aないし15
2Fは、2つのドロー・ブロック172Aおよび172
Bにそれぞれ接続される。3次元グラフィックス・アク
セラレータ112は、2つのドロー・ブロック172A
および172Bを含んでいることが好ましいが、それよ
りも多いまたは少ない数も使用できる。ドロー・ブロッ
クまたはレンダリング・ブロック172Aおよび172
Bは、様々なグラフィックス・プリミティブのスクリー
ン・スペース・レンダリングを実施し、複雑なピクセル
を3DRAMアレイ内に配列または充填するように動作
する。ドロー・ブロックまたはレンダリング・ブロック
172Aおよび172Bはまた、フレーム・バッファ用
の3DRAM制御チップの働きをする。ドロー・プロセ
ッサ172Aおよび172Bは、浮動小数点プロセッサ
152Aないし152Fの1つから受け取ったドロー・
パケットに従ってまたはコマンド・プリプロセッサ14
2から受け取った直接ポート・パケットに従って画像を
フレーム・バッファ100内に同時にレンダリングす
る。
【0029】各浮動小数点ブロック152Aないし15
2Fは、それぞれの2地点間バスまたは直接データ・チ
ャネル162Aないし162Fおよび164Aないし1
64Fを介して2つのドロー・ブロック172Aおよび
172Bに接続される。図示のように、各浮動小数点ブ
ロック152Aないし152Fは、ドロー・ブロック1
72Aへのそれぞれの第1の直接チャネル162Aない
し162Fを含んでおり、各浮動小数点ブロック152
Aないし152Fは、他のドロー・ブロック172Bへ
のそれぞれの第2の直接チャネル164Aないし164
Fを含んでいる。したがって、各浮動小数点ブロック1
52Aないし152Fは、各ドロー・ブロック172A
および172Bへの直接チャネルを含んでいる。複数の
2地点間バスまたは直接データ・チャネル162Aない
し162Fおよび164Aないし164Fは、それぞれ
100MHzにおいて動作する単一方向11ビット・バ
スである。
【0030】したがって、グラフィックス・アクセラレ
ータ112は、各浮動小数点ブロック152Aないし1
52Fから各ドロー・プロセッサ172Aおよび172
Bへの独立のパスを形成する二組の6つの11ビット・
バスを含んでいる。直接データ・チャネル154Aない
し154Fは、集合的に48ビットを含んでおり、また
直接データ・チャネル162Aないし162Fおよび1
64Aないし164Fは、集合的にFDバス(フロート
/ドロー・バス)と呼ばれる。
【0031】各浮動小数点ブロック152Aないし15
2Fは、同じデータを2つのドロー・ブロック172A
および172Bに同報通信するように動作することが好
ましい。言い換えれば、同じデータが常に、各浮動小数
点ブロック152から来るデータ線の両方の組上にあ
る。したがって、浮動小数点ブロック152Aがデータ
を転送する場合、浮動小数点ブロック152Aは、同じ
データを両方のチャネル162Aおよび164Aを介し
てドロー・プロセッサ172Aおよび172Bに転送す
る。
【0032】データは、3つのサイクルを使用してFD
バス上で一度に32ビット転送され、別個の6つのバス
間は同期していない。各転送の33番目のビットは、制
御ビットであり、転送されているプリミティブの最後の
ワードを示す1にセットされる。場合によっては、上述
のように、3つの浮動小数点ブロック152Aないし1
52Cからの出力は、33ビット(32データ、1制
御)CDバス・サイクル用に「借用」される。
【0033】図4に示すように、各浮動小数点ブロック
152Aないし152Fは、それぞれチャネル162A
ないし162Fおよび164Aないし164Fに結合さ
れた出力FIFOバッファ158Aないし158Fを含
んでいる。同様に、各ドロー・ブロック172Aおよび
172Bも、それぞれ入力FIFOバッファ182ない
し184を含んでいる。図9に示すように、ドロー・ブ
ロック172Aは、それぞれのチャネル162Aないし
162Fへの結合を行う入力FIFOバッファ182A
ないし182Fを含んでいる。同様に、ドロー・ブロッ
ク172Bも、それぞれのチャネル164Aないし16
4Fへの結合を行うそれぞれのFIFOバッファ184
Aないし184F(図示せず)を含んでいる。
【0034】グラフィックス・アクセラレータ112
は、CDバス(図10)と呼ばれる2つの単一方向バ
ス、およびコマンド・プロセッサ142とドロー・プロ
セッサ172Aおよび172Bとの間のデータ転送を行
うDCバス173を含んでいる。CDバスは、コマンド
・プロセッサ142からドロー・プロセッサ172Aお
よび172Bへの転送を行う単一方向バスである。上述
のように、CDバスは、一部がそれぞれ3つの浮動小数
点ブロック152Aないし152C内に含まれる。CD
バスは、CFバス、3つの浮動小数点ブロック152A
ないし152C、およびFDバスからのサイクルおよび
ワイヤを利用または「借用」する。DCバス173は、
図3および図4に示すように、ドロー・プロセッサ17
2Aおよび172Bからコマンド・プロセッサ142へ
の転送を行う単一方向バスである。CDバスおよびDC
バスは、図10により明確に示されている。
【0035】各ドロー・ブロック172Aおよび172
Bは、フレーム・バッファに結合され、フレーム・バッ
ファは、3DRAMメモリ192Aおよび192Bおよ
び194Aおよび194Bの4つのバンクを含んでい
る。ドロー・ブロック172Aは、2つの3DRAMバ
ンク192Aおよび192Bにそれぞれ結合され、ドロ
ー・ブロック172Bは、それぞれ2つの3DRAMバ
ンク194Aおよび194Bにそれぞれ結合される。各
バンクは、図示のように、3つの3DRAMチップを含
んでいる。3DRAMメモリまたはバンク192Aおよ
び192Bおよび194Aおよび194Bは、集合的に
1280×1024、深さ96ビットのフレーム・バッ
ファを形成する。フレーム・バッファは、ドロー・ブロ
ック172Aおよび172Bによってレンダリングされ
る3次元オブジェクトに対応するピクセルを記憶する。
【0036】各3DRAMメモリ192Aおよび192
Bおよび194Aおよび194Bは、RAMDAC(ラ
ンダム・アクセス・メモリ・デジタルアナログ変換器)
196に結合される。RAMDAC196は、クロス・
バー機能とともに、プログラマブル・ビデオ・タイミン
グ発生器およびプログラマブル・ピクセル・クロック合
成器、ならびに従来のカラー・ルックアップ・テーブル
およびトリプル・ビデオDAC回路を含んでいる。RA
MDACは、ビデオ・モニタ84に結合される。
【0037】グラフィックス・アクセラレータ112
は、コマンド・ブロック142およびRAMDAC19
6を接続するCMバスと呼ばれる双方向バス195をさ
らに含んでいる。図示のように、ブートPROM197
およびオーディオ・ブロック198がCMバス195に
結合される。CMバス195は、25MHzにおいて動
作することが好ましい。
【0038】コマンド・ブロックは、単一のチップとし
て実施することが好ましい。各「浮動小数点ブロック」
152は、別個のチップとして実施することが好まし
い。好ましい実施形態では、最大6つの浮動小数点ブロ
ックまたはチップ152Aないし152Fが含まれる。
また、各ドロー・ブロックまたはプロセッサ172Aお
よび172Bは、別個のチップを含んでいることが好ま
しい。
【0039】直接データ・チャネル 上述のように、本発明の3次元グラフィックス・アクセ
ラレータ・アーキテクチャは、コマンド・ブロック14
2と各浮動小数点ブロック152Aないし152Fとの
間の複数の直接チャネル、ならびに各浮動小数点ブロッ
ク152Aないし152Fとそれぞれのドロー・ブロッ
ク172Aおよび172Bとの間の複数の直接チャネル
を含んでいる。
【0040】従来の技術のセクションで説明したよう
に、従来技術のアーキテクチャは、これらの要素を接続
する共通バスを含んでいた。したがって、コマンド・ブ
ロック142は、一般に、個別のデータをラウンド・ロ
ビン方式で各浮動小数点ブロック152Aないし152
Fに送るように動作する。言い換えれば、コマンド論理
142は、一般に、浮動小数点ブロック152Aなどた
だ1つの浮動小数点ブロック152へのデータのバース
ト転送を実施し、次いで浮動小数点ブロック152Bな
ど他の浮動小数点ブロックへのバースト・データ転送を
実施する。このデータ転送のバースト性質はまた、各浮
動小数点ブロック152Aないし152Fと2つのドロ
ー・ブロック172Aおよび172Bとの間に現れる。
言い換えれば、各浮動小数点ブロック152Aないし1
52Fは、一般に、各ドロー・ブロック172Aおよび
172Bへの個別のバースト・データ転送をそれぞれ実
施する。
【0041】複数の直接データ・チャネルまたは2地点
間バスは、コマンド・ブロック142と各浮動小数点ブ
ロック152Aないし152Fとの間のバースト・デー
タ転送を実施する。複数の直接データ・チャネルまたは
2地点間バスはまた、各浮動小数点ブロック152Aな
いし152Fとドロー・プロセッサ172Aおよび17
2Bとの間のバースト・データ転送を実施する。共用バ
スの代わりに直接データ・パスを使用することにより、
多数のより小さいデータ・パス、例えば8ビット・デー
タ・パスが使用できるようになり、同時に従来技術の設
計と同じ帯域幅が得られる。また、これらのより小さい
直接データ・パスを使用することにより、グラフィカル
・アーキテクチャの電気的特性が改善される。まず、コ
マンド・チップ上の直接データ・チャネルの出力ピン
は、共用バス・アーキテクチャにおける複数のデバイス
を駆動する場合と異なり、単一のデバイスを駆動するた
めにのみ必要である。また、各浮動小数点プロセッサ1
52Aないし152Fのピンは、それぞれ8ビット・バ
スに接続されるだけであるので、数が少なくなってい
る。さらに、直接データ・パスによれば、複数のボード
間の接続性が改善される。また、電気的特性が改善され
るために、クロック速度がより速くなり、したがって広
い転送帯域幅が得られる。
【0042】場合によっては、コマンド・ブロック14
2は、同じデータを各浮動小数点ブロック152Aない
し152Fに送る必要がある。例えば、コマンド・ブロ
ック142がマトリックス・データを送り、その後複数
の三角形データを送る必要があり、かつ後続の各三角形
がマトリックス・データを使用する必要がある場合、マ
トリックス・データをまず各浮動小数点ブロック152
Aないし152Fに転送し、その後、後続のいずれかの
三角形をそれぞれの浮動小数点ユニットのいずれかに送
る。言い換えれば、浮動小数点ブロック152は、三角
形を処理する必要があるそれぞれのマトリックスがすで
に受け取られるまで、これらの後続の1つの三角形を受
け取ることを許されない。
【0043】コマンド・ブロック142が各浮動小数点
ブロック152Aないし152Fに同じデータを送る必
要がある場合、コマンド・ブロック142は、すべての
FIFO144Aないし144Fが空になるのを待つ
か、またはこの共通転送が行われるためにそれぞれのF
IFO内に十分な空きができるまで待つ必要がある。し
たがって、コマンド・ブロック142が各浮動小数点ブ
ロック152Aないし152Fに同じデータを送る必要
がある場合、すなわちデータを並列に同報通信する必要
がある場合、コマンド・ブロック142は、各FIFO
144Aないし144FがそれらのFIFO内に十分な
空きができるまで待つ必要があり、FIFO144Aな
いし144Fのそれぞれに同じデータを転送する必要が
ある。この同報通信転送は、共通バスを使用する従来技
術のシステムよりも低い転送速度において行われること
に留意されたい。しかしながら、これらの共通転送は、
一般にまれであり、システムの性能に悪影響を及ぼすこ
とはない。
【0044】浮動小数点ブロック152Aないし152
Fは、必ずしも三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するわけではない。
一般に、受け取った三角形の正確な順序を維持する必要
はないことに留意されたい。好ましい実施形態では、3
次元グラフィックス・アクセラレータ・アーキテクチャ
は、受け取った三角形の正確な順序が維持されない第1
のモードを含んでいる。このシステムはまた、浮動小数
点ブロック152Aないし152Fが正確な順序でレン
ダリングされた三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するように構成され
た第2のモードを含んでいる。
【0045】したがって、本発明のシステムおよび方法
は、コマンド・ブロック142と各浮動小数点ブロック
152Aないし152Fとの間の複数の直接データ・チ
ャネルまたは2地点間バスを提供する。本発明のシステ
ムおよび方法はまた、浮動小数点ブロック152Aない
し152Fと各ドロー・ブロック172Aおよび172
Bとの間の複数の直接データ・チャネルまたは2地点間
バスを提供する。言い換えれば、本発明は、コマンド・
ブロック142を各浮動小数点ブロック152Aないし
152Fに接続する複数の専用の狭いバス、好ましくは
8ビット・データ・バス、ならびに各浮動小数点ブロッ
ク152Aないし152Fと各ドロー・ブロック172
Aおよび172Bに接続する狭いバス、好ましくは8ビ
ット・データ・バスを提供する。従って、本発明は、接
続用の共通バスまたは共用バス・アーキテクチャを含ん
でおらず、各論理要素間の直接相互接続を含んでいる。
これにより、電気的特性が改善され、ピン要件が少なく
なり、またクロック速度がより速くなり、したがって従
来技術の設計に勝る改善された性能が得られる。
【0046】図5 コマンド・ブロック 上述のように、コマンド・プリプロセッサ、すなわちコ
マンド・ブロック142は、ホスト・バス104を介し
て通信を行うために結合される。コマンド・プリプロセ
ッサ142は、ホスト・プロセッサ102によってメモ
リ・サブシステム106からホスト・バス28を介して
転送された形状データ・アレイを受け取る。好ましい実
施形態では、コマンド・プリプロセッサ142は、圧縮
された形状データならびに圧縮されていない形状データ
を含めて、メモリ・サブシステム106から転送された
データを受け取る。コマンド・プリプロセッサ142
は、圧縮された形状データを受け取ったときに形状デー
タを圧縮解除して、圧縮解除された形状データを供給す
るように動作する。
【0047】コマンド・プリプロセッサ142は、3次
元形状パイプラインおよび直接ポート・パイプラインの
2つのデータ・パイプラインで実施することが好まし
い。直接ポート・パイプラインでは、コマンド・プリプ
ロセッサ142は、ホスト・バス104を介して直接ポ
ート・データを受け取り、コマンドドロー(CD)バス
を介して直接ポート・データをドロー・プロセッサ17
2Aおよび172Bに転送する。上述のように、CDバ
スは、他のバスの一部を使用または「借用」して、コマ
ンド・プリプロセッサ142からドロー・プロセッサ1
72Aおよび172Bに直接データ・パスを形成する。
直接ポート・データは任意選択で、ドロー・プロセッサ
172Aおよび172Bと協働して、文字書込み、スク
リーン・スクロールおよびブロック移動などX11機能
を実施するコマンド・プリプロセッサ142によって処
理される。直接ポート・データはまた、ドロー・プロセ
ッサ172Aおよび172Bへのレジスタ書込み、およ
びフレーム・バッファ3DRAM192および194へ
の個々のピクセル書込みを含んでいる。
【0048】3次元形状パイプラインでは、コマンド・
プリプロセッサ142は、形状データ・アレイからの入
力頂点パケットのストリームにアクセスする。
【0049】コマンド・プロセッサ142は、形状デー
タ・アレイからの入力頂点パケットのストリームを受け
取ったときに、入力頂点パケット内に含まれる情報を並
べ替え、また任意選択で入力頂点パケット内の情報を削
除する。コマンド・プリプロセッサ142は、受け取っ
たデータを標準のフォーマットに変換することが好まし
い。コマンド・プリプロセッサ142は、各入力頂点パ
ケット内の情報を、異数フォーマットから32ビットI
EEE浮動小数点数フォーマットに変換する。コマンド
・プリプロセッサ142は、8ビット固定少数点数、1
6ビット固定少数点数、および32または64ビットI
EEE浮動小数点数を変換する。通常のカラー値の場
合、コマンド・プリプロセッサ142は、データを固定
少数点値に変換する。
【0050】コマンド・プリプロセッサ142はまた、
プリミティブ全体が受け取られるまで、入力頂点情報を
累積するように動作する。次いで、コマンド・プリプロ
セッサ142は、コマンド浮動小数点(CF)バスを介
して出力形状パケットまたはプリミティブ・データを浮
動小数点プロセッサ152Aないし152Fの1つに転
送する。出力形状パケットは、任意選択の修正およびデ
ータ交換を行った再フォーマットされた頂点パケットを
含んでいる。
【0051】次に、図5を参照すると、コマンド・プロ
セッサまたはコマンド・ブロック142を示すブロック
図が示されている。図示のように、コマンド・ブロック
142は、ホスト・バス104にインタフェースする入
力バッファ302および出力バッファ304を含んでい
る。入力バッファ302は、グローバル・データ発生器
306およびアドレス・デコード論理回路308に結合
される。グローバル・データ発生器306は、出力バッ
ファ304およびCMバスに接続され、データ転送を実
施する。アドレス・デコード論理回路308は、図示の
ようにDCバスから入力を受け取る。アドレス・デコー
ド論理回路308はまた、出力を供給するために入力F
IFOバッファ312に結合される。
【0052】一般に、フレーム・バッファは、赤平面、
緑平面および青平面用の8ビット・モード、個々のピク
セル・アクセス用の32ビット・モード、およびZバッ
ファ値とともにピクセル・カラーにアクセスする64ビ
ット・モードを含めて、複数のマッピングを有する。ブ
ートPROM197、オーディオ・チップ198および
RAMDAC196も、フレーム・バッファ内にアドレ
ス空間を有する。フレーム・バッファはまた、特にコマ
ンド・ブロック・レジスタおよびドロー・プロセッサ・
レジスタ用のレジスタ・アドレス空間を含んでいる。ア
ドレス・デコード論理回路308は、データを受け取る
べき論理ユニットおよびデータをどのように変換すべき
かを指定する入力FIFO312用のタグを生成するよ
うに動作する。入力FIFOバッファ312は、128
個の64ビット・ワードに加えて、データの宛先および
データをどのように処理すべきかを指定する12ビット
・タグを保持する。
【0053】入力FIFO312は、64ビット・バス
を介してマルチプレクサ314に結合される。入力FI
FO312はまた、形状圧縮解除ユニット316に出力
を供給する。上述のように、コマンド・ブロック142
は、圧縮された形状データならびに圧縮されていない形
状データを受け取る。圧縮解除ユニット316は、圧縮
された形状データを受け取り、この圧縮された形状デー
タを圧縮解除して、圧縮解除された形状データを供給す
るように動作する。圧縮解除ユニット316は、32ビ
ット・ワードのストリームを受け取り、圧縮解除された
形状データまたはプリミティブ・データを与える。次い
で、圧縮解除ユニット316からの圧縮解除された形状
データ出力は、マルチプレクサ314の入力に供給され
る。マルチプレクサ314の出力は、フォーマット変換
器322、収集バッファ324およびレジスタ論理回路
326に供給される。一般に、また、圧縮解除ユニット
からの圧縮された形状データ出力は、フォーマット変換
器322または収集バッファ324に供給される。
【0054】実質上、形状圧縮解除ユニット316は、
入力FIFO312と、フォーマット変換器322また
は収集バッファ324である次の処理段との間のデータ
・パス上の迂回路と考えられる。コマンド・プロセッサ
142によって受け取られたデータが圧縮された形状デ
ータでない、すなわち圧縮されていないデータの場合、
このデータは、入力FIFO312から直接マルチプレ
クサ314を介してフォーマット変換器322、収集バ
ッファ324、またはレジスタ論理回路326のいずれ
かに供給される。コマンド・プロセッサ142が圧縮さ
れた形状データを受け取った場合、このデータは、まず
圧縮解除されるように入力FIFO312から形状圧縮
解除ユニット316に供給され、その後他の論理回路に
供給される。
【0055】したがって、コマンド・ブロック142
は、入力バッファ302または入力FIFO312に結
合され、圧縮されていない形状データを直接マルチプレ
クサ314を介してフォーマット変換器322または収
集バッファ324に直接転送する第1のデータ・パスを
含んでいる。コマンド・ブロック142はまた、入力バ
ッファ302または入力FIFO312に結合され、圧
縮された形状データを受け取る第2のデータ・パスを含
んでいる。第2のデータ・パスは、入力FIFO312
の出力に結合され、圧縮された形状入力データを受け取
り、圧縮解除して、圧縮解除された形状データを与える
形状圧縮解除ユニットを含んでいる。
【0056】フォーマット変換器322は、整数データ
または浮動小数点データを受け取り、浮動小数点データ
または固定小数点データを出力する。フォーマット変換
器322は、コマンド・プロセッサ142には異なる複
数のデータ・タイプを受け取るフレキシビリティを与
え、同時に各浮動小数点ブロック・ユニット152Aな
いし152Fには特定のワード用の単一のデータ・タイ
プのみを与える。
【0057】フォーマット変換器322は、頂点累積バ
ッファ332に48ビット出力を供給する。頂点累積バ
ッファ332は、頂点バッファ334に出力を供給す
る。頂点累積バッファ332および頂点バッファ334
は収集バッファ324に出力を供給し、収集バッファ3
24は出力バッファ304に出力を戻す。
【0058】頂点累積バッファ332は、フォーマット
変換器322から受け取ったプリミティブに必要な頂点
データを記憶または累積するために使用される。頂点累
積バッファ332は、実際二組のレジスタを含んでい
る、すなわち二重にバッファされる。第1の組のレジス
タは、直点を構成するのに使用され、第2の組のレジス
タは、データを1つの頂点バッファ334内にコピーす
るのに使用される。以下で詳細に説明するように、これ
ら二組のレジスタはより効率的な動作を可能にする。デ
ータ・ワードは、頂点累積バッファ332の第1のバッ
ファまたは上部バッファ内に一度に1つ書き込まれ、こ
れらの値は、新しい値がそれぞれのワードに上書きされ
るまで不変である。データは、発射状態が生じるまで、
1サイクル内で第1の組のレジスタから第2の組のレジ
スタへ転送される。
【0059】頂点バッファ334は、線や三角形など形
状プリミティブを構成または「作成」するために使用さ
れる。線および三角形は、プリミティブを完成するため
に、それぞれ2つおよび3つの頂点を必要とする。本発
明の一実施形態によれば、新しいプリミティブは、生成
しているプリミティブが1つまたは複数の頂点を前に生
成したプリミティブと共用する場合、既存のプリミティ
ブの頂点を交換することによって生成される。言い換え
れば、頂点バッファ334は、前の直点の値を記憶また
は維持し、プリミティブまたは三角形が1つまたは複数
の頂点または他の情報を隣接するプリミティブまたは三
角形と共用する場合、これらの頂点の値を知的に再使用
する。これにより、処理要件が少なくなり、またオープ
ンGLフォーマット動作がより効率的になる。好ましい
実施形態では、頂点バッファ334最大7個の頂点を保
持することができる。これにより、最悪の場合のプリミ
ティブ、すなわち独立した三角形のスループットが最大
になる。頂点バッファ334はまた、点、線および三角
形に対して最適速度において動作し、実質上クワッド・
プリミティブに対して最適である。
【0060】頂点累積バッファ332および頂点バッフ
ァ334はそれぞれ、収集バッファ324に結合され
る。収集バッファ324は、図示のように出力バッファ
304にそれぞれの出力を供給する。頂点バッファ33
4は、CFバス出力FIFO144に出力を供給するよ
うに結合される。また、収集バッファ324も、CFバ
ス出力FIFO144に出力を供給するように結合され
る。収集バッファ324は、浮動小数点ブロック152
Aないし152Fにすべての非形状データを送るために
使用される。収集バッファ324は、最大32個の32
ビット・ワードを保持することができる。CFバス出力
FIFO144にデータをコピーする動作は、最適スル
ープットを得るために収集バッファ324内に新しいデ
ータをコピーする動作と重複することに留意されたい。
【0061】上述のように、コマンド・ブロック142
は、マルチプレクサ314の出力に結合された複数のレ
ジスタ326を含んでいる。レジスタ326はまた、U
PA出力バッファ304に出力を供給する。レジスタ・
ブロック326は、それぞれの浮動小数点ブロック15
2Aないし152Fに送られるデータのフォーマットお
よびフローを制御する16個の制御レジスタおよび状態
レジスタを含んでいる。
【0062】頂点バッファ334および収集バッファ3
24はそれぞれ、CFバス出力FIFO144に48ビ
ット出力を供給する。CFバス出力FIFO144によ
り、コマンド・ブロック142は、前のプリミティブの
最後のプリミティブがまだCFバスを介して転送されて
いる間、プリミティブを頂点バッファ334から出力F
IFO144内に迅速にコピーすることができる。これ
により、グラフィックス・アクセラレータ112は、各
2地点間バスを介してデータの一定のフローを維持する
ことができる。好ましい実施形態では、CFバス出力F
IFO144は、1つの完全なプリミティブ、ならびに
データ・フローを平滑にする追加の記憶容量を保持する
のに十分な空きを有する。CFバス出力FIFO144
は、それぞれの8ビット出力をバス・インタフェース・
ブロック336に供給する。バス・インタフェース・ブ
ロック336は、コマンド・プロセッサ142の最後の
段であり、図示のようにCFバスに結合される。さら
に、CF/CDバス・インタフェース336は、上述の
ようにCFバス上で多重化されるCDCバスへの「直接
ポート」アクセスを実施する。
【0063】コマンド・ブロック142はまた、ラウン
ド・ロビン・アービトレーション論理回路334を含ん
でいる。このラウンド・ロビン・アービトレーション論
理回路334は、次のプリミティブを受け取るべき各浮
動小数点プロセッサ152Aないし152Fを決定する
回路を含んでいる。上述のように、本発明のグラフィッ
クス・アクセラレータ112は、各浮動小数点プロセッ
サ152Aないし152F内ならびに外に別個の2地点
間バスを含んでいる。したがって、ラウンド・ロビン・
アービトレーション論理回路334は、プリミティブを
チップ間で均一に分配し、それによりすべての2地点間
バス上で同時に均一なデータのフローを維持するために
含まれている。好ましい実施形態では、ラウンド・ロビ
ン・アービトレーション論理回路334は、バックアッ
プされた、すなわちいっぱいのサブバスを飛び越す「次
の使用可能なラウンド・ロビン」アービトレーション方
式を使用する。
【0064】コマンド・プロセッサの従来技術の実施形
態に関する情報については、参照することによりその全
体が本明細書の一部となる米国特許第5408605号
「Command Preprocessor for
a High Performance Three
Dimensional Graphics Acc
elerator」を参照されたい。
【0065】図6 浮動小数点プロセッサのブロック図 次に、図6を参照すると、本発明の好ましい実施形態に
よる1つの浮動小数点ブロックまたはプロセッサ152
を示すブロック図が示されている。各浮動小数点プロセ
ッサ152Aないし152Fは同じものであり、したが
って本明細書では便宜上1つだけ記載する。図示のよう
に、各浮動小数点ブロック152は、Fコア352、L
コア354およびSコア356の3つの主要な機能ユニ
ットまたはコア・プロセッサを含んでいる。Fコア・ブ
ロック352は、コマンド・ブロック142から転送さ
れたCFバスからのデータを受け取るように結合され
る。Fコア・ブロック352は、それぞれLコア・ブロ
ック354およびSコア・ブロック356に出力データ
を供給する。また、Lコア・ブロック354は、Sコア
・ブロック356にデータを供給する。Sコア・ブロッ
ク356は、FDバスに出力データを供給する。
【0066】Fコア・ブロック352は、形状変換、ク
リップ・テスト、面決定、透視分割、およびスクリーン
空間変換を含むすべての浮動小数点集中演算を実施す
る。Fコア・ブロック352はまた、必要な場合にクリ
ッピングを実施する。好ましい実施形態では、Fコア・
ブロック352は、32kワードSRAM内に記憶され
た36ビット・マイクロ命令ワードを使用して完全にプ
ログラムできる。
【0067】Lコア・ブロック354は、オンチップR
AMベースのマイクロコードを使用して実質上すべての
ライティング計算を実施する。ライティング計算は、頂
点フォーマットに対するカラーに対して調整される。L
コア・ブロック354はまた、より効率的なライティン
グ計算のために効率的なトリプルワード設計を含んでい
る。このトリプルワード設計は、16ビット固定小数点
値を含む48ビット・データ・ワードによって動作す
る。したがって、1つの命令で、3つのカラー成分(R
GB)すべておよび1つのサイクル内にある法線
(Nx、Ny、Nz)の3つの成分すべてに対して同じ機
能を実施することができる。Lコア・ブロック354内
に含まれるマス・ユニットは、自動的に値を許される範
囲に固定し、したがって追加の分岐は許されない。
【0068】Sコア・ブロックは、すべてのプリミティ
ブに対してセットアップ計算を実施する。これらのセッ
トアップ計算は、ある頂点から他の頂点までの複数の寸
法の距離を計算すること、およびその縁部に沿って傾斜
を計算することを含む。三角形の場合、Z深さの傾斜、
カラー、およびUV(テクスチャの場合)も、走査線の
方向において計算される。
【0069】図示のように、各浮動小数点ブロック15
2は、CFバスに結合されるCFバス・インタフェース
論理回路362を含んでいる。各浮動小数点ブロック1
52は、FDバスに結合されるFDバス・インタフェー
ス論理回路366を含んでいる。各浮動小数点ブロック
152は、CDバス用の各浮動小数点ブロック152へ
のデータ転送パスの働きをするバイパス・バスまたはデ
ータ・パス364を含んでいる。CDバスを介して送ら
れたデータ、すなわちFDバスに直接送られたデータ
は、データ転送バス364上を進み、したがって浮動小
数点ブロック152内に含まれる浮動小数点論理回路を
バイパスする。このバイパス・バス364の動作は、図
10により明確に示されており、図10に関して論じ
る。
【0070】一般に、浮動小数点ブロック152に供給
されたデータは、Fコア・ブロック352、Lコア・ブ
ロック354、またはFDバスに直接出る、すなわちC
Dバス転送の3つの宛先の1つを有する。好ましい実施
形態では、Fコア・ブロック352に宛てられたデータ
は、32ビットIEEE浮動小数点数および他の32ビ
ット・データを含む32ビット・ワードを含んでいる。
Lコア・ブロック354に宛てられたデータは、16固
定小数点数を含む48ビット・ワードを含んでいる。
【0071】図6に示すように、浮動小数点ブロック1
52は、6つの組み合わされた入力バッファおよび出力
バッファ、ならびにFコア・ブロック352とLコア・
ブロック354との間の通信を実施する2つの特殊バッ
ファを含んでいる。
【0072】図示のように、浮動小数点ブロック152
は、コマンド・ブロック142によって供給されたCF
バスからのデータを受け取るフロート入力バッファ(F
Iバッファ)372を含んでいる。FIバッファ372
は、二重にバッファされ、各バッファ内に32個の32
ビット・エントリを保持する。FIバッファ372内に
記憶された第1のワード、ワード0は、受け取った形状
プリミティブへ送るべきマイクロコード・ルーチンをF
コア・ブロック352に知らせる命令コードを含んでい
る。ヘッダおよびX座標、Y座標、Z座標のみがこのバ
ッファに供給される。
【0073】浮動小数点ブロック152はまた、Fコア
対Lコア・バッファ(FLバッファ)374を含んでい
る。FLバッファ374は、二重にバッファされ、各バ
ッファ内に16個の16ビット・エントリを保持する。
Fコア・ブロック352は、3つのFコア・ワードをL
Fバッファ374に供給された1つのLコア・ワードに
書き込むまたは結合する。Lコアから見ると、FLバッ
ファ374内の各バッファは、5つの48ビット・エン
トリのように見える。ライティング動作中、3つのX座
標、Y座標、Z座標は、Fコア・ブロック352からF
Lバッファ374を介してLコア・ブロック354に送
られる。これら3つのX座標、Y座標、Z座標は、ライ
ティング方向を計算するために使用される。しかしなが
ら、ライティング属性が書き込まれたとき、5つの別個
の値がFコア・ブロック352からFLバッファ374
を介してLコア・ブロック354に送られる。これら5
つの値は、射出変数、環境変数、拡散変数、鏡面変数お
よび鏡面指数変数の値である。
【0074】浮動小数点ブロック152は、コマンド・
ブロック142から供給されたCFバスを介して送られ
たデータを受け取り、このデータをLコア・ブロック3
54に供給するLコア入力バッファ(LIバッファ)3
76を含んでいる。LIバッファ376は、それぞれ7
つの48ビット・エントリを保持する5つのバッファを
含んでいる。これら7つの48ビット・エントリは、3
つの頂点法線、3つの頂点カラー、および3つのアルフ
ァ値を有する1つのワードを含んでいる。FIバッファ
372およびLIバッファ376は、集合的に浮動小数
点ブロック入力バッファ155(図4)を含んでいる。
【0075】浮動小数点ブロック152はまた、Fコア
・ブロック352とLコア・ブロック354とを接続す
るFLLバッファ378を含んでいる。FLLバッファ
378は、ライティング・ファクタおよび減衰ファクタ
をFコア・ブロック352からLコア・ブロック354
に送るのに使用されるFIFOである。これらの減衰フ
ァクタは、3つのX、Y、Zの位置の値、3つの減衰
値、および3つのパックされた値を含む1つの減衰シフ
ト・ワードを含んでいる。また、FLFバッファ380
がFコア・ブロック352とLコア・ブロック354の
間に備えられる。FLFバッファは、Fコアの制御下で
Fコア・ブロック352とLコア・ブロック354の間
でデータを伝送するのに使用される双方向バッファであ
る。
【0076】Lコア対Sコア・バッファ(LSバッフ
ァ)386がLコア・ブロック354とSコア・ブロッ
ク356の間に結合される。LSバッファ386は、各
バッファが48ビット・ワードを保持している二重バッ
ファである。
【0077】浮動小数点ブロック152はまた、Fコア
・ブロック352からSコア・ブロック356にデータ
を転送するのに使用されるFコア対Sコアバッファ(F
Sバッファ)384を含んでいる。FSバッファは、そ
れぞれ32個の32ビット値を保持する5つのバッファ
を含んでいる。これら5つのバッファは、2つのFLバ
ッファ、2つのLSバッファ、およびLコア・ブロック
354内に記憶される1つのプリミティブであるLコア
・ブロック354のパイプライン段に一致するように設
計されている。Fコア・ブロック352からこのバッフ
ァを介してSコア・ブロック356に転送されたデータ
は、Sコア・ブロック356内で動作すべきマイクロコ
ード手順を示すディスパッチ・コードを含んでいる。
【0078】最後に、浮動小数点ブロック152は、S
コア・ブロック356とFDバス・インタフェース36
6との間に結合されたSコア出力バッファ(SOバッフ
ァ)158を含んでいる。SOバッファ158は、FD
バスを介してそれぞれのドロー・プロセッサ172Aお
よび172Bに送るべきデータを収集する。SOバッフ
ァ158は、二重にバッファされ、各バッファ内に32
個の32ビット・ワードを保持する。SOバッファ15
8は、それぞれのドロー・プロセッサ172Aおよび1
72Bによって必要とされる順序で固定小数点データを
含む最大2つのプリミティブを保持する。SOバッファ
158は、最小数のサイクルを使用してデータをバスを
介して転送するためにどのくらいワードが有効であるか
を示す別個の状態レジスタを含んでいる。SOバッファ
158は、浮動小数点ブロック出力バッファ158を含
んでいる。
【0079】浮動小数点ブロック152の他の実施形態
に関する情報については、参照することによりその全体
が本明細書の一部となる米国特許第5517611号
「Floating Point Processor
for a High Performance T
hree Dimensional Graphics
Accelerator」を参照されたい。
【0080】図7 ドロー・プロセッサのブロック図 次に、図7を参照すると、それぞれのドロー・プロセッ
サ172の1つを示すブロック図が示されている。各ド
ロー・プロセッサ172Aおよび172Bは、同じもの
であり、したがって本明細書では便宜上1つだけ記載す
る。ドロー・プロセッサ172は、3DRAMチップの
シーケンシングを管理する。各ドロー・プロセッサ17
2は、内部ピクセル・キャッシュ用ならびにビデオ出力
リフレッシュ用の3DRAMスケジューリング論理回路
を含んでいる。これらの資源は、レンダリングされたピ
クセルをそれらが3DRAMに到達する前に待ち行列化
し、3DRAMキャッシュ誤りを予測するためにこの待
ち行列内のピクセル・アドレスを検索することによって
制御される。
【0081】図示のように、各ドロー・プロセッサ17
2は、FDバスにインタフェースするFDバス・インタ
フェース・ブロック402を含んでいる。FDバス・イ
ンタフェース・ブロック402は、CDCバス・インタ
フェース論理回路412に結合される。CDCバス・イ
ンタフェース論理回路412は、スクラッチ・バッファ
414および直接ポート・ユニット416に結合され
る。直接ポート・ユニット416は、フレーム・バッフ
ァ・インタフェース論理回路436から入力を受け取
り、ピクセル・データ・マルチプレクサ論理回路432
に出力を供給する。CDCバス・インタフェース論理回
路412はまた、DCバスに出力データを供給するよう
に結合される。FDバス・インタフェース402は、プ
リミティブ累積バッファ404に出力を供給する。
【0082】上述のように、FDバスは、ワード単位で
のみ同期した6つの独立したバスを含んでいる。FDバ
ス・インタフェース402は、2つの役目を果たす。第
1に、FDバス・インタフェース402は、FDバスを
介して転送された各組の3つの11ビット・データを3
2ビット・ワードおよび制御ビットに戻す。第2に、
【0083】CDCバス・インタフェース論理回路41
2は、32ビット・データ・ワードによって動作する。
上述のように、CDCバスは、CFバスおよびFDバス
を含む他のバスの一部を含んでおり、コマンド・ブロッ
ク142がピクセルを3DRAMチップ192および1
94内に転送することができるようにするのに使用され
る。DCバスは、ドロー・プロセッサ172からのレジ
スタの読取り、ならびに3DRAMからのピクセルの読
取りを可能にする。CDバス上のドロー・プロセッサ1
72の1つに供給されたデータは、第1のワードとして
ヘッダを必要とする。DCバス上に戻されるデータは、
コマンド・ブロック142が常に要求されたことを知っ
ているのでヘッダを有しない。
【0084】ドロー・プロセッサ172はまた、コマン
ド・プロセッサ142によって指定されたプリミティブ
の順序を追跡するスコアボード418を含んでいる。図
示のように、スコアボード論理回路は、F_Num入力
を受け取り、プリミティブ累積バッファ404に出力を
供給する。コマンド・ブロック142は、(ユニキャス
ト)プリミティブが1つのCFバス出力FIFO内にコ
ピーされるたびにドロー・プロセッサ172に3ビット
・コードを供給する。このコードは、6つの浮動小数点
ブロック・プロセッサ152Aないし152Fのうちプ
リミティブを受け取るプロセッサを指定する。このコー
ドはまた、プリミティブに順序付けするかまたは順序付
けしないかを示すビットを含んでいる。順序付けされた
すべてのプリミティブは、入力された順序で出てくる必
要がある。順序付けされないプリミティブは、使用でき
るようになったときはいつでもプリミティブ累積バッフ
ァ404から取ることができる。テキストやマーカなど
いくつかのプリミティブは、各プリミティブ入力ごとに
複数のプリミティブを出力し、またこれらのプリミティ
ブは、効率のために順序付けしないモードで配置するこ
とが好ましい。しかしながら、ドロー・プロセッサ17
2に送られたすべての属性は、それらが修正するプリミ
ティブに対して順序付けされたままでなければならな
い。さらに、線および三角形の場合、厳密な順序付けも
維持しなければならない。スコアボード論理回路418
は、少なくとも64個のプリミティブを追跡する。スコ
アボード論理回路418は、スコアボード論理回路41
8がいっぱいに近い場合、スコアボード・バッファ41
8のオーバフローを防ぐためにコマンド・ブロック14
2に信号を戻す。
【0085】上述のように、プリミティブ累積バッファ
404は、FDバス・インタフェース402およびスコ
アボード論理回路418から出力を受け取る。プリミテ
ィブ累積バッファ404はエッジ・ウォーカ論理回路4
22に出力を供給し、エッジ・ウォーカ論理回路422
はスパン充填論理回路424に出力を供給する。スパン
充填論理回路424はテクスチャ・ピクセル・プロセッ
サ426に出力を供給する。スパン充填論理回路424
はまた直接ポート・ユニット416に出力を供給する。
また、プリミティブ累積バッファ404もテクスチャ・
エキスパンダ論理回路428に出力を供給する。テクス
チャ・エキスパンダ論理回路428はテクスチャ・メモ
リ430に結合される。テクスチャ・メモリ430はテ
クスチャ・ピクセル・プロセッサ426にデータを供給
する。テクスチャ・メモリ430はまた直接ポート・ユ
ニット416にデータを供給する。テクスチャ・ピクセ
ル・プロセッサ426および直接ポート・ユニット41
6はそれぞれ、ピクセル・データ・マルチプレクサ43
2にデータを供給する。ピクセル・データ・マルチプレ
クサ432はその出力をピクセル・プロセッサ434に
供給する。ピクセル・プロセッサ434は、その出力を
フレーム・バッファ・インタフェース論理回路436に
供給し、また直接ポート・ユニット416に出力を供給
する。
【0086】プリミティブ累積バッファ404は、完全
なプリミティブが受け取られるまでプリミティブ・デー
タを累積するのに使用される。したがって、データが6
つの浮動小数点プロセッサ152Aないし152Fから
収集されるにつれて、データは、最終的に完全なプリミ
ティブを形成する。プリミティブ累積バッファ404
は、1つの完全なプリミティブを保持するのに十分な空
きを含んでおり、さらに滑らかなパイプラインの流れを
維持する第2のプリミティブの部分を保持するのに十分
な記憶容量を含んでいる。6つのプリミティブ累積バッ
ファ404は、6つの各浮動小数点プロセッサ152A
ないし152Fからデータが入ってくるにつれていっぱ
いになる。プリミティブが完全に受け取られるとすぐ
に、一般に、次のプリミティブが後ろから来る。したが
って、プリミティブ累積バッファ404は、次のプリミ
ティブから入って来るデータからデータがいっぱいにな
るまで、プリミティブ累積バッファ404からの完全な
プリミティブをエッジ・ウォーカ論理回路422に転送
するのに十分な余分のバッファを含んでいる。好ましい
実施形態では、プリミティブ累積バッファ404は、処
理される最大のプリミティブ(三角形)よりも大きい複
数のワードである。プリミティブ累積バッファ404
は、エッジ・ウォーカ論理回路422に64ビット出力
を供給する。プリミティブは、スコアボード論理回路4
18の概念に基づいてプリミティブ累積バッファ404
から一度に1つ取り出される。
【0087】エッジ・ウォーカ論理回路422は、プリ
ミティブをスパン充填ユニット424が容易に処理する
ことができるいくつかの部分に分割する。三角形の場
合、エッジ・ウォーカ論理回路422は、2つの現在エ
ッジに沿って歩き、最も近いピクセル・サンプル点に調
整された一対の垂直スパンを生成し、次いでそれをスパ
ン充填ユニット424に送る。エッジ・ウォーカ・ユニ
ット422はまた、線用の同じ調整を実施し、三角形ス
パンに非常に似た線記述をスパン充填ユニット424に
送る。エッジ・ウォーカ論理回路422は、これらの調
整を実施するために使用される2つの16×24マルチ
プレクサを含んでいる。エッジ・ウォーカ論理回路42
2はさらに、他の計算を行うために使用されるカウント
を追跡する複数の加算器を含んでいる。三角形および線
以外のプリミティブは、資源の最も効率的な用途に応じ
て分割される。ギザギザのドットもアンチエイリアシン
グされたドットも、ギザギザのドットに0.5を加える
など、調整が最小の論理回路を介してまっすぐに送られ
る。大きなドットは、個々のピクセルとしてエッジ・ウ
ォーカ論理回路422を介して供給される。エッジ・ウ
ォーカ論理回路422は、多角形および長方形を水平ス
パンに変換する。エッジ・ウォーカ論理回路422は、
スパン充填ユニット424上に送られる前にブレゼンハ
ム(Bresenham)線をいかなる形でも修正しな
い。
【0088】スパン充填ユニット424は、通常三角形
および線に対して、任意に配向したスパン間で値の補間
を実施し、またアンチエイリアシングされた線に対して
フィルタ・ウェイト・テーブル・ルックアップを実施す
る。三角形スパン対、長方形スパンおよび多角形スパン
を含む最適化されたプリミティブ、およびアンチエイリ
アシングされた線および点の場合、1サイクルにつき2
つのピクセルが発生する。他のすべてのプリミティブ
は、1サイクルにつき1つのピクセルを発生する。ま
た、スパン充填ユニット424の最後の段は、ディザリ
ングを実施し、4×4スクリーン空間ディザ・パターン
を使用して12ビット・カラーを8ビット値に変換す
る。スパン充填論理回路424は、テクスチャ・ピクセ
ル・プロセッサ426に出力を供給する。
【0089】テクスチャ・ピクセル・プロセッサ426
は、テクスチャ計算を実施し、テクスチャ・メモリ43
0内のテクセルのルックアップを制御する。テクスチャ
・ピクセル・プロセッサ426は、ピクセル・プロセッ
サ434によってピクセルにマージすべきカラーを与え
る。テクスチャ・ピクセル・プロセッサ426は、テク
スチャ三角形を除いて他のすべてのプリミティブに対し
てピクセル・データ・マルチプレクサ432上にデータ
を送る。
【0090】上述のように、プリミティブ累積バッファ
404はテクスチャ・エキスパンダ428に出力を供給
する。テクスチャ・エキスパンダ428は、受け取った
テクスチャをテクスチャ・メモリ430内に記憶するた
めに拡大するように動作する。このようにして、テクス
チャ・メモリ430は、プリミティブ累積バッファ40
4から直接ロードされ、テクセル・ルックアップのため
にテクスチャ・ピクセル・プロセッサに接続される。テ
クスチャ・メモリ430は、すべてのより小さいミップ
マップを含む16×16テクセル領域をテクスチャ・マ
ップするのに十分なデータを保持するように設計されて
いる。テクスチャ・メモリ430は、現在のバッファを
使用している間に1つのバッファがロードできるように
二重にバッファされることが好ましい。16×16テク
セル領域は、実際には補間が正確に動作できるように1
7×17アレイとして記憶されることに留意されたい。
【0091】上述のように、ピクセル・データ・マルチ
プレクサ432は、テクスチャ・ピクセル・プロセッサ
426および直接ポート・ユニット416から入力デー
タを受け取る。ピクセル・データ・マルチプレクサ論理
回路432は、スパン充填ユニット424から来るピク
セルと、CDバスから来るピクセルの間を調停する。C
Dバスからのピクセルには常に優先度が与えられる。ピ
クセル・データ・マルチプレクサ432はその出力をピ
クセル・プロセッサ434に供給する。
【0092】ピクセル・プロセッサ434は、3DRA
M192および194内の論理動作のためにブレンディ
ング、アンチエイリアシング、深さキューイングおよび
セットアップを実施する。ピクセル・プロセッサ434
はまた、線パターニング、ステンシル・パターニング、
Vポート・クリッピングなどの動作のためにピクセル書
込みを防ぐように動作できる論理回路を含んでいる。ピ
クセル・プロセッサ434は、フレーム・バッファ・イ
ンタフェース436に出力を供給する。
【0093】フレーム・バッファ・インタフェース43
6は、3DRAMメモリ192および194からのピク
セルの読取りおよび書込みを行うために必要な論理回路
を含んでいる。フレーム・バッファ・インタフェース4
36は、3DRAMチップ内のレベル1(L1)キャッ
シュおよびレベル2(L2)キャッシュを管理する。こ
れは、書き込むべきピクセルを予見し、他のピクセル・
アクセスが行われている間に必要なキャッシュ内でペー
ジングを行うことによって実施される。また、フレーム
・バッファ・インタフェース436は、図示のように各
3DRAMメモリ192および194に結合される。
【0094】図8 CFバスのブロック図 次に、図8を参照すると、CFバスならびにコマンド・
ブロック142内の関連するバッファおよびそれぞれの
浮動小数点プロセッサ152Aないし152Fを示すブ
ロック図が示されている。上述のように、コマンド・ブ
ロック142は、それぞれの浮動小数点ブロック152
Aないし152Fに結合される。図8に示すように、デ
ータがコマンド・ブロック142(図5)内の頂点バッ
ファ344を離れると、データは、6つの別個のCFバ
ス出力FIFO144Aないし144Fに分離される。
CFバス出力FIFO144Aないし144Fは、図5
ではFIFO144と総称してある。各CFバス出力F
IFO144Aないし144Fは、それぞれの浮動小数
点ブロック152に接続され、各CFバス出力FIFO
144Aないし144Fは、それが接続される浮動小数
点ブロック152にデータを送る間、独立して動作す
る。CFバス上のすべてのデータ転送は、48ビット・
ワード+6ビット・コードである。各ワードは、6つの
8ビット部分、まず最上位ビットとして送られ、コード
は、6つの1ビット部分として送られる。
【0095】48ビット・ワードは、6つの別個のパス
間で同期している。48ビット・ワードの最初の8ビッ
ト部分は、6つのパスすべてについて同じサイクル上で
転送される。1つのパスが48ビット転送の開始時に準
備ができていない場合、次の48ビット・ワード転送サ
イクルまで待たなければならない。しかしながら、プリ
ミティブの開始に関しては同期していない。プリミティ
ブのワードは、転送に使用できるときはいつでも転送す
ることができる。
【0096】データ部分は、それぞれの浮動小数点プロ
セッサ152によって受け取られると、48ビット・ワ
ードに再アセンブルされる。また、6ビット・コード
は、アセンブルされ、データに対して行うべきことを浮
動小数点プロセッサ152に知らせる。パススルー・デ
ータなどの浮動小数点データは、下位32ビットから引
き出され、Fコア352によって処理するためにFIバ
ッファ372内に記憶される。48ビット・ワード内に
パックされた3つの16ビット数として送られた法線
は、Lコア354によって処理するためにLIバッファ
376内に記憶される。結合したカラーおよび頂点は、
アンパックされ、16ビットはLIバッファ376に進
み、32ビットはFIバッファ372に進む。
【0097】CDバスはCFバス・データ線を借用する 図8に示すように、CFバスは、CDバスで示される余
分のワイヤを含んでいる。論理上、CDバスは、CFバ
スと無関係である。しかしながら、CDバスは、CFバ
スからのデータ線を共用または「借用」し、浮動小数点
プロセッサ152をバッファ・チップとして使用する。
図示のように、3つのCFバス出力FIFO144Aな
いし144Cは、それぞれのマルチプレクサ502Aな
いし502Cにデータを供給する。また、これらのマル
チプレクサは、CDバスを含む8ビット・データを受け
取る。また、CDバスの3ビット部分は、コマンド・ブ
ロック142の最後の出力段上に供給される。
【0098】32ビット・ワードをコマンド・ブロック
142からドロー・プロセッサ172に転送する場合、
1サイクルをCFバスから「借用」する。CFバス出力
FIFO144からの転送は1サイクルの間停止し、C
Dバス・データはバス上に向けられる。浮動小数点プロ
セッサ152からドロー・プロセッサ172への11ビ
ット・データ・パスを一致させるために、さらに3つの
線をフロート(CF)データ・パスへの各最初の3つの
コマンドに追加する。これにより、6つの浮動小数点プ
ロセッサ152のうちの3つを使用して、32ビット・
ワードを転送する33ビットが得られる。
【0099】CDバスを介して転送されたデータは、コ
マンド・プロセッサ出力の最後の段の後に挿入され、処
理段の前にデータ・ストリームから浮動小数点プロセッ
サ152内に引き戻される。CFバス・データ転送が唯
一中断するのは、データを転送するのに借用した1サイ
クルである。好ましい実施形態では、6つの浮動小数点
プロセッサ152はすべて、それらのうちの3つが特別
なデータを含んでいなくても、この1サイクルが「しゃ
っくり」する。浮動小数点プロセッサ出力におけるCD
バス転送についての詳細は以下で述べる。
【0100】図9 FDバス 図9に、浮動小数点プロセッサ152からドロー・プロ
セッサ172へのバスであるFDバスを示す。図9は、
それぞれの浮動小数点プロセッサ152およびドロー・
プロセッサ172内の関連するバッファを示すFDバス
のブロック図である。図9には一方のドロー・プロセッ
サ172へのワイヤのみが示されているが、図3および
図4に示すように、物理的には、各浮動小数点プロセッ
サ152から2つの各ドロー・プロセッサ172への別
個のワイヤがあることに留意されたい。論理的には、ワ
イヤは、それらの上に常に同じデータを有しているの
で、両方のドロー・プロセッサ172に進む同じワイヤ
である。
【0101】データは、セットアップ・ユニット(Sコ
ア)によってつくり出されると、SOバッファ158に
書き込まれる。このバッファ内の各ワードは32ビット
である。各ワードは、SOバッファ158から3つの1
1ビット部分、まず最上位ビット内に取られ、一度にF
Bバス11ビットを介して送られる。次いで、データ・
ワードは、再アセンブルされ、ドロー・プロセッサ17
2内で32ビット・ワードに戻される。33番目のビッ
トは、プリミティブの最後のワードに対して「1」にセ
ットされる。これにより、バスを介して送られたワード
・カウントが不要になる。
【0102】図示のように、各SOバッファ158は、
その出力をマルチプレクサ522に供給する。マルチプ
レクサ522はまた、CDバスから11ビット入力を受
け取る。CFバスの場合と同様に、FDバスもそのデー
タ線のいくつかをCDバス用に貸し出す。論理的には、
CDバスはFDバスと無関係であるが、CDバスは32
ビット・データ・ワードを転送するためにいつでも1サ
イクルを借用することができる。CDバス転送が行われ
るとき、FDバスは1サイクルの間停止し、CDバス・
データがバス上に向けられる。32ビット・データ転送
では、浮動小数点プロセッサ152Aないし152Cか
らの3組の11データ線を使用する。浮動小数点プロセ
ッサ152Aないし152Fからのデータ線は、この転
送の間無視される。データは、ドロー・プロセッサ17
2に入ると、他のすべてのデータのようにプリミティブ
累積バッファ404に進む代わりに、直ちに内部CDバ
スにリダイレクトされる。
【0103】図10 CDCバス 図10は、上述したCDCバスを示す。論理的には、C
DCバスは、コマンド・ブロック142とドロー・プロ
セッサ172との間の32ビット幅双方向データ・バス
と考えられる。実際に、CDバスは、コマンド・ブロッ
ク142から各ドロー・プロセッサ172Aおよび17
2Bに進むCDバスと、各ドロー・プロセッサ172A
および172Bからコマンド・プロセッサ142へ進む
DCバスの2つの双方向バスから構成される。
【0104】CDCバスは、コマンド・プロセッサ14
2からフレーム・バッファ、すなわち3DRAMメモリ
192および194への「直接ポート」パスである。C
DCバスは、ピクセルをフレーム・バッファ内に書き込
むために使用される。CDCバスはまた、レジスタおよ
びピクセルを読み返すため、ならびに浮動小数点ブロッ
クSRAMの内容を読み返すために使用される。以下で
説明するように、CDバスは、CFバスおよびFDバス
からいくつかのワイヤを借用し、浮動小数点プロセッサ
152Aないし152Fを2段バッファとして使用す
る。サイクルは、要求に応じてこれら2つのバスから一
度に1つのワードが借用される。
【0105】図10に示すように、CDバスは、CFバ
ス上で担持され、3つの各浮動小数点ブロック・チップ
152Aないし152Cの入力バッファ362に供給さ
れる。データ転送がCFバス転送である場合、データ
は、図示のようにフロート論理回路に供給される。しか
しながら、データ転送がCDバス転送である場合、デー
タは、それぞれのFIFOまたはバス・インタフェース
からそれぞれの浮動小数点プロセッサ152Aないし1
52C内のそれぞれのマルチプレクサ532Aないし5
32Cに直接供給される。各マルチプレクサ532Aな
いし532Cからの出力は、それぞれの出力バッファ3
66を介してFDバスへ供給され、次いでそれぞれのド
ロー・プロセッサ172Aおよび172Bに供給され
る。
【0106】CDバスまたはバイパス・バスを介して転
送されたデータは、通常のCFバス転送サイクルを妨害
し、それぞれの浮動小数点ブロック152からできるだ
け速く返送される。浮動小数点ブロック152中の転送
待ち時間は、このバイパス・バス上で2サイクルであ
る。バイパス・バス・データ・パス346は、幅11ビ
ットである。上述のように、3つの各浮動小数点プロセ
ッサ、好ましくはプロセッサ152A、152Bおよび
152Cを集合的に使用して、32ビット・ワードを転
送する。また上述のように、これら3つの11ビット・
バス33番目のビットは、転送状態の終了を示すために
使用される。図示のように、バイパス・バス346は、
CFバス・インタフェース362からデータを受け取
り、FDバス・インタフェース366にデータを供給す
るように結合される。したがって、CDバスは、CFバ
スの一部、FDバスの一部、および3つの浮動小数点ブ
ロック152Aないし152Cへの内部データ・パスを
使用する。
【0107】ほとんどの場合、コマンド・ブロック14
2は、浮動小数点ブロック152Aないし152F内の
浮動小数点論理回路を介して供給されたデータを各ドロ
ー・ブロック172Aおよび172Bに供給する。しか
しながら、場合によっては、コマンド・ブロック142
は、浮動小数点論理回路を通過する必要なしにデータを
直接ドロー・ブロック172Aおよび172Bに迅速に
供給することを望む。CDバスは、主として、コマンド
・ブロック142がデータを直接フレーム・バッファに
供給することができるようにし、浮動小数点プロセッサ
152内の浮動小数点論理回路をバイパスするために使
用される。上述のように、CDバスのほとんどの部分
は、3つの浮動小数点ブロック152Aないし152C
内に「チップ上に」供給される。これにより所要のボー
ド・スペースが減少する。
【0108】一実施形態では、CDバスまたはバイパス
・チャネル364を使用して、データを直接コマンド・
ブロック142からドロー・ブロック172Aおよび1
72Bに送っている間、各浮動小数点プロセッサ152
は、この間に他のデータを処理していてもよい。したが
って、これにより同時動作が可能になり、より大きいシ
ステム効率が得られる。
【0109】また、図10に示すように、各ドロー・プ
ロセッサ172Aおよび172Bは、コマンド・ブロッ
ク142に結合されたDCバス173と呼ばれる直接デ
ータ・パスを含んでいる。DCバスは、各ドロー・プロ
セッサ172Aおよび172Bからコマンド・ブロック
142に戻るデータ・パスである。DCバスは、2つの
16ビット双方向2地点間バスを含んでいる。DCバス
を介して送られたデータは、常にコマンド・ブロック1
42内で収集されて32ビット・ワードになる16ビッ
ト・ワードの対を含んでいる。ピクセルが読み返されて
いるとき、データは、2つのドロー・プロセッサ172
と異なる。コマンド・プロセッサ142は、このデータ
をホストCPU102が必要とするシーケンスに戻す。
単一のピクセルがドロー・プロセッサ172Aおよび1
72Bから読み出されるとき、ただ1つのドロー・プロ
セッサ172がデータを返送し、合計幅32ビットのデ
ータ・パスの半分は空いたままである。
【0110】DCバスは、ピクセルを各ドロー・ブロッ
ク172Aおよび172Bからコマンド・ブロック14
2へ戻すための戻りパスになる。したがって、コマンド
・ブロック142がドロー・ブロック172Aおよび1
72B内のピクセルを読み出すように要求すると、ドロ
ー・ブロック172Aおよび172Bは、DCバス上の
このピクセル・データをコマンド・ブロック142に供
給する。図示のように、コマンド・ブロック142は、
DCバスからデータを受け取るバッファを含んでいる。
DCバスは、コマンド・ブロック142がそれぞれのフ
レーム・バッファからピクセルを読み取ることを可能に
する。DCバスはまた、ドロー・ブロック172Aおよ
び172Bが内容スイッチ中など状態をコマンド・ブロ
ック142に戻すことを可能にする。
【0111】DCバスは、主として、コマンド・ブロッ
ク142が各3DRAMメモリ192および194から
ピクセルを読み返すことを可能にするために使用され
る。例えば、ピクセル・データのウィンドウがメモリ1
92および194内に記憶されており、かつこのウィン
ドウが一部または全部が他のウィンドウによって遮断さ
れている場合、CPU102は、このウィンドウが遮断
されなくなったときに遮断されたデータを後で再使用す
ることができるようにこのデータを記憶装置から読み取
ることを望む。この場合、CPU102は、ピクセル・
データを読み取る要求をコマンド・ブロック142に送
り、コマンド・ブロック142からの要求に応答して、
各ドロー・ブロック172Aおよび172Bは、メモリ
192および194からピクセル・データを読み取り、
このデータをDCバス戻りパス上でコマンド・ブロック
142に戻す。次いで、コマンド・ブロック142は、
このデータを記憶のためにCPU102に戻す。
【0112】コマンド・ブロックの動作 コマンド・ブロック142は、上述のように、それぞれ
の浮動小数点ブロック152Aないし152Fへの転送
のシーケンシングを制御する。コマンド・ブロック14
2はまた、グラフィックス・アクセラレータ・システム
内のすべての動作を制御するように動作する。各浮動小
数点ブロック152Aないし152Fは、ドロー・ブロ
ック172Aおよび172Bへのそれぞれの転送の前に
コマンド・ブロック142から許可を求め、それを受け
取る必要がある。図面には示されていないが、それぞれ
の浮動小数点ブロック152Aないし152F内の各出
力FIFOバッファ158Aないし158Bは、コマン
ド・ブロック142に戻される制御線を含んでいる。そ
れぞれの出力FIFOバッファ158Aないし158F
は、これらの制御線を使用して、それぞれのドロー・ブ
ロック172Aおよび172Bへの転送についてコマン
ド・ブロック142の許可を求める。それぞれの浮動小
数点ブロック152Aないし152F内の各入力FIF
Oバッファ155Aないし155Fはまた、それぞれの
12ビット・チャネル154Aないし154F上のそれ
ぞれの制御線を使用して、バッファがいっぱいであるか
またはデータを必要とするなどを含む信号を含む状態情
報をコマンド・ブロック142に供給する。
【0113】それぞれの出力FIFOバッファ158A
ないし158Fがコマンド・ブロック142から許可を
求め、受け取ると、それぞれの出力FIFOバッファ1
58は、各ドロー・ブロック172Aおよび172Bに
プリミティブを送る。コマンド・ブロック142は、各
入力待ち行列155Aないし155Fおよび各出力待ち
行列158Aないし158Fのカウンタを含んでおり、
それぞれのバッファがデータを受け取った際またはそれ
ぞれのバッファからデータが送られた際にそれぞれのカ
ウンタを増分するように動作することが好ましい。コマ
ンド・ブロック142はまた、各ドロー・ブロック17
2Aおよび172Bにそれらの受け取ったプリミティブ
ごとに実施の順序を示す制御線を供給する。
【0114】図11 Fコアのブロック図 次に、図11を参照すると、各浮動小数点プロセッサ1
52内のFコア・ブロック352を示すブロック図が示
されている。図示のようにFコア・プロセッサ352
は、形状プリミティブ・データを受け取り、受け取った
形状データに対して浮動小数点演算を実施する。Fコア
・プロセッサ352は、頂点位置をモデル空間からビュ
ー空間へ変換する、受け取った形状データに対してクリ
ッピング演算を実施する、受け取った頂点情報をスクリ
ーン空間に変換する遠近分割を実施する、三角形が前面
か裏面かを判定するなどの演算を実施する。Fコア・プ
ロセッサはまた、いくつかのライティング演算を実施す
る。
【0115】図示のように、Fコア・プロセッサ352
は、定数および中間値を記憶するFRレジスタ512を
含んでいる。FRレジスタ・ファイル512は、160
個のレジスタを含んでおり、また3つの読取りポートお
よび1つの書込みポートを含んでいることが好ましい。
FRレジスタ・ファイル512は、FAバス、FBバス
およびFCバスと呼ばれる3つのバスに結合される。F
コア・プロセッサ352は、乗算累積演算がクロック・
サイクルごとに一回行われるようにする3つのバスを含
んでいる。
【0116】Fコア・プロセッサ352は、浮動小数点
乗算器(FMUL)514、浮動小数点加算器(FAD
D)516、クリップ比較ブロック518、逆数ユニッ
ト522、および整数演算論理ユニット(IALU)5
22を含んでいる。これらの各数学ユニットは、1つま
たは複数のFAバス、FBバス、およびFCバスに結合
される。
【0117】浮動小数点乗算器(FMUL)514は、
FAバスおよびFBバスから入力を受け取り、FDバス
または浮動小数点加算器(FADD)516に出力す
る。浮動小数点加算器(FADD)516は、2つの入
力を受け取る。浮動小数点加算器516の一方の側は、
FCバスまたは浮動小数点乗算器514からその入力を
受け取る。加算器516の他方の入力は、FCバスまた
は加算器516の出力からデータを受け取るように結合
される。従って、加算器516の出力は、その入力の1
つに戻される。このループ・バックまたはフィードバッ
ク特徴により、値をFRレジスタ512に戻すことなく
いくつかの倍数から累積することができる。したがっ
て、加算器516は、頂点を変換するために使用される
マトリックス倍数演算に厳密に一致する値を4つのサイ
クルの後に戻すように設計される。
【0118】クリップ比較ブロック518はクリップ・
テスト用に最適化されている。専用クリップ比較回路が
含まれているので、浮動小数点加算器516がこの機能
を実施する必要はない。また、専用クリップ比較回路が
含まれているので、クリップ・テストを実施するために
必要であった余分のサイクルが節約できる。クリップ比
較ブロック518は、正ならびに負のクリップ境界に対
して比較を行い、また同時に有限精度保護帯域テストを
実施する。従って、クリップ比較ブロック518によれ
ば、実際に1つの命令サイクル中に4つの比較を行うこ
とができる。
【0119】保護帯域クリップ比較は、3%保護帯域に
対して33/32となるようにハードワイヤされる。必
要なのは余分の8ビット加算器および8ビット・コンパ
レータだけである。保護帯域テストは、正規のクリップ
比較ほど正確ではないが、一貫した結果が得られる。保
護帯域クリップ比較は、三角形がビューポートからわず
かに外れているのかまたは大きく外れているのかを判定
することができる。ビューポートからごくわずかに外れ
ている三角形は、わざわざそれらをクリップする代わり
にドローすることが好ましい。ビューポートから大きく
外れている三角形は、ウィンドウ境界にクリップするこ
とが好ましい。1つがクリップされ、他がクリップされ
ていない隣接する三角形の場合、隣接する縁部に対して
異なる頂点が得られることに留意されたい。これらの異
なる頂点は、時々小さいクラックを生じるが、通常気が
つかないほど小さいものはめったにない。
【0120】逆数ユニット522は、FBバスまたは浮
動小数点加算ユニット516の結果からその入力を受け
取る。逆数ユニット520以外の数学ユニットは、結果
を得るのに固定数のサイクルを必要とし、次いで結果
は、FDバス上に入れられる。逆数ユニット520は、
逆数結果を読み取る命令が発行されるまでその結果を保
持する。
【0121】整数演算論理ユニット(IALU)522
は、加算、減算、ブール演算、ビット・テスト/セット
/クリア/操作、およびバレル・シフトを実施する。整
数演算論理ユニット(IALU)522はまた、逆平方
根関数(浮動小数点演算である)を実施する。
【0122】図11には示されていないが、Fコア・プ
ロセッサ352はまた、命令のシーケンシングおよび復
号用の追加の論理回路、ならびに状態ビットを含むレジ
スタを含んでいる。
【0123】Fコア通信バッファ 上述のように、Fコア・プロセッサ352は、チップ間
通信に使用される異なる5つのバッファを含んでいる。
FIレジスタ372は、入力のみであり、CFバスを介
してコマンド・ブロック142から受け取ったデータを
含んでいる。FIレジスタ372は、レジスタ・アドレ
ス空間全体中で32個のエントリのように見える。デー
タは、完全なプリミティブが入力バッファ内に使用でき
ない場合に命令シーケンスを停止させる「need_F
I」命令を実行した後でFIレジスタ内に現れる。32
ワード(すなわち最大プリミティブ)よりも小さいプリ
ミティブの場合、32個のエントリすべてが有効である
わけではない。「free_FI」命令が実行されたと
き、バッファは、直ちにより多くのデータを受け取るこ
とができる。このバッファは、正常の条件下で、他のバ
ッファ内のデータが使用されている間、データが1つの
バッファ内に読み込まれるように二重にバッファされ
る。したがって、「free_FI」および「need
_FI」が実行されたとき、データでいっぱいの次のバ
ッファが使用できる。
【0124】FLバッファ374は、通常、XYZ方向
ベクトルを各頂点ごとにLコア354に送るのに使用さ
れる。三角形をクリップする場合、FLバッファ374
を使用して、クリップされたRGBカラー値ならびにク
リップされたアルファ値を送る。FLバッファ374内
に記憶されたすべての値は32ビット固定小数点である
が、16ビットのみは、バッファ内で、Lコア・ブロッ
ク354の16ビット固定小数点フォーマットに一致す
るように整合している。Lコア354がFLバッファ3
74の他の側からデータを除去するとき、Lコア・ブロ
ック354は、3つのワードの各組を1つの48ビット
・ワードとして引き出す。FLバッファ372と同様
に、FLバッファ374も二重にバッファされ、「ne
ed」命令および「free」命令によって制御され
る。
【0125】FLL FIFO378は、局所光源(点
光源ならびにスポット光源)の減衰ファクタを通過させ
るために使用される。FLL FIFO378は、FI
FOであるので、直接「need」命令および「fre
e」命令を使用するのではなく、書込みおよび読取りを
使用してデータを通過させる。FLL FIFO378
はまた、Fコア352ならびにLコア354に対してた
だ1つのレジスタとして現れる。Fコア352が「ne
ed FLL」命令を発行する場合、FLLバッファ3
78内にそれが使用可能になる前に少なくとも3つの空
位置がなければならないことに留意されたい。
【0126】FLFバッファ380は、Fコア352と
Lコア354の間で両方向にデータを転送するために使
用される。値は、バッファ380内の特定のアドレスに
書き込まれ、他の側で対応するアドレスから読み取られ
る。同期は、データをFコア352からLコア354に
転送するためのフラグ・レジスタと、データを反対方向
に転送するためのフラグ・レジスタの2つのフラグ・レ
ジスタを使用して達成される。マイクロコードは、FL
Fバッファ380が一度に一方向にのみ使用されること
を保証する。
【0127】ライティング計算中に計算したカラー値お
よびアルファ値は、ライティングが終了したときにFL
Fバッファ380内およびLSバッファ386内に記憶
される。Fコア352がクリップ保留モードを設定した
場合、FLFバッファ380内の値は、Fコア352に
よって読み戻され、LSバッファ386内の値は無視さ
れる。クリッピングが行われない正常な場合、FLFバ
ッファ378は無視され、LSバッファ値はSコア35
6に送られる。
【0128】Fコア352がスポット光指数計算用にL
コア関数ユニットを「借用」する必要がある場合、3つ
の値はFLFバッファ378を使用して送られる。後
で、3つの結果値がFLFバッファ378に戻される。
どちらの場合も、データを転送するために48ビット・
ワードの最下位16ビットのみが使用される。
【0129】FSレジスタ384は、出力のみであり、
セットアップ計算のためにデータをSコアに送るために
使用される。Sコア356が処理すべきすべてのデータ
は、2つの固定小数点フォーマットs1.30またはs
11.20の一方である。1つのプリミティブは、FS
レジスタ384内に最大32のデータ・ワードに加え
て、命令コードおよびいくつかの制御ビットから構成さ
れるヘッダ情報を含む1つのワードを有する。他の多く
のバッファのように二重にバッファされるのではなく、
FSレジスタ384内には、2つのFLバッファ37
4、2つのLSバッファ386(Lコアから)に加え
て、Lコア354内で処理される1つのプリミティブを
考慮して5つのバッファがある。FSレジスタ384
は、「need」命令および「free」命令を使用し
て変換される。
【0130】図12 Lコアのブロック図 次に、図12を参照すると、各浮動小数点プロセッサ1
52内のLコア・ブロック354を示すブロック図が示
されている。Lコア・プロセッサ354は、ライティン
グ計算を実施する固定小数点計算ユニットを含んでい
る。ライティング・コア354は、浮動小数点コアから
出力データを受け取るように結合され、またバス・イン
タフェースから直接プリミティブ・データを受け取るよ
うに結合される。Lコア・プロセッサ354は、特にラ
イティング計算を実施するように設計されている。好ま
しい実施形態では、Lコア・プロセッサ354は、大部
分のライティング計算を実施する。Fコア・ブロック3
52は、点光源やスポット光源など、汎用浮動小数点プ
ロセッサを使用する必要があるより複雑な光源のライテ
ィング計算を実施する。
【0131】Lコア354は、特にライティング計算を
実施するように設計されている。すべての計算は、16
ビット固定小数点計算を使用して、一度に3つ実施され
る。48ビット・ワード内の3つの値は、XYZやRG
Bなど1つの3つ組を表すか、またはアルファ値など、
三角形の異なる3つの頂点の1つの値を表す。図12に
は、すべての制御レジスタまたはデータ・パスが示され
ているわけではないが、Lコア・ブロック354を使用
してどのようにライティング計算を実施するかを説明す
るために十分な詳細が示されていることに留意された
い。
【0132】Lコアによって実施されるライティング計
算では、ライティング属性のキャッシュ値を有する予め
乗算した材料カラーを使用しない。これにより、グラフ
ィックス・アクセラレータは、テクスチャおよびバンプ
・マッピングの高品質の代替物としてRGB頂点当たり
カラー三角形メッシュをサポートすることができる。一
般に、たいていのライティング演算は、頂点当たりカラ
ー変化を含むことが期待される。この場合、Lコア35
4内で計算を若干多くする必要があるが、他のユニット
によって完全に重なり合う。すなわち、Lコアは、Fコ
アならびにSコアよりももっと速い。また、この変化の
ために、警告なしにまた有効なキャッシング方法なしに
任意の頂点においてカラーが変化する。OpenGLの
意味をサポートすることがはるかに容易になる。
【0133】Lコア354は、効率的な16ビット関数
ユニットを有し、また頂点法線に対してモデル空間対ワ
ールド空間変換を実施する。コマンド・ブロック142
は、法線データをすでに正規化された48ビット値(3
つの16ビット成分)として浮動小数点プロセッサ15
2に供給する。Lコア・レジスタは、2つの2×3法線
変換マトリックスを含み、それぞれ3つの48ビット値
として記憶する。レンダ・パイプラインの双対マトリッ
クスの意味のために2つの変換マトリックスがある。
【0134】カラーおよび法線は、LIバッファ376
によってコマンド・ブロック142からLコア354に
転送される。ライティング計算は、光レジスタの内容お
よびFコア352から送られてきたディスパッチ・ワー
ドに基づいて実施される。Lコア命令セットは、ブラン
チ命令を含んでいないことが好ましく、したがってライ
ティング計算の各ステップは、終了に向かい、次いで次
のステップがディスパッチ・ワードの内容に基づいて開
始される。
【0135】Lコア354は、入力バッファおよび出力
バッファの他に異なる3つのレジスタ・ファイルを含ん
でいる。LLレジスタ562は、最大32個の各光の値
を含んでいる。レジスタは、一度に1つの光にしかアク
セスすることができないので、アクセスすべき光を指定
する。光の値は、Fコア352によって負荷され、Lコ
ア354によって修正されない。LRレジスタ564
は、計算からの中間値を記憶するために使用される汎用
レジスタである。LCCレジスタ566は、材料の特性
または「現在カラー」値を保持する。本願では、特殊な
論理回路を使用して到来するカラーをLCCレジスタ5
66内に記憶するので、LRレジスタ564を使用する
代わりに特殊なレジスタを使用する。OpenGLによ
れば、射出、環境、拡散、鏡面、または環境および拡散
に現在カラーを使用することができる。Fコア352に
よって指定されたモード設定により、交換される値が決
定され、また特殊なLコア命令により、LIバッファ3
76から適切な(複数の)LCCレジスタ566への転
送が行われる。
【0136】Lコア354は、48ビット・ワード内の
3つの各16ビット値用の3つの乗算累積ユニット57
2Aないし572Cを含んでいる。各乗算累積ユニット
の標準の演算は、48ビット・インおよび48ビット・
アウトである。ドット積計算の場合、16ビットの結果
しか得られず、したがってこの結果は、3つの各16ビ
ット・フィールド内に複製される。
【0137】Lコア354は、視点ベクトルを正規化す
る場合に使用される逆平方根(ISQRT)ブロック5
82を含んでいる。ISQRTブロック582は、ドッ
ト積計算から16ビットを受け取り、48ビット・ワー
ド内で3つの値に複製される16ビットの結果となる。
【0138】Lコア354はまた、鏡面ハイライトを計
算する場合に使用されるべき関数ユニット584を含ん
でいる。べき関数ユニット584はまた、ドット積計算
から16ビットを受け取り、48ビット・ワード内で3
つの値に複製される16ビットの結果となる。べき関数
ユニット584は、2つのテーブル・ルックアップを実
施し、他の計算を実施して、正確な値をえる。結果は、
0.5%まで、または8ビット・カラーの最下位ビット
まで正確である。
【0139】Lコア通信バッファ Lコア354は、チップの他の部分と通信する異なる5
つのバッファを含んでいる。LIバッファ376は、F
コア内のFIバッファ372に対応する。LIバッファ
376は、コマンド・ブロック142からCFバスを介
して到来する到来データにアクセスするために使用され
る。LIバッファ376は、7つの48ビット・レジス
タとして現れ、3つのカラー、3つの法線、および3つ
のアルファ値を含む1つのワードを含んでいる。Fコア
352内のFSレジスタ384と同様に、LIバッファ
376は、2つのFIバッファ372、2つのFLバッ
ファ374に加えて、Fコア352内で処理される1つ
のプリミティブに一致するように5つのバッファを含ん
でいる。
【0140】FLバッファ374は、Fコア352から
のXYZ視点ベクトルを転送するために使用される。F
Lバッファ374はまた、三角形がクリップされた場
合、クリップされたRGBカラー値およびおよびアルフ
ァ値を転送するために使用される。FLL FIFO3
78は、論理光の減衰値を送るために使用される。これ
らの値はFコア352内でのみ実施される浮動小数点計
算を必要とする。ライティング計算が、光に対して減衰
ファクタが必要になる時点に達すると、Lコア354
は、データがFLL FIFO378内で使用可能にな
るまで休止する。
【0141】FLFバッファ380は、LコアとFコア
の間の通信を行うためのものであり、通常の演算用では
ない。FLFバッファ380の1つの実行時間の使用
は、クリッピング中にライティング値をLコア354に
戻し、Fコアがスポット光とともに使用するためにLコ
ア354からべき関数論理回路を「借用」することであ
る。これを行うために、Fコアは、2つのべき関数パラ
メータをFLFバッファ380に書き込み、Lコア35
4を停止し、次いでべき関数を実施する命令を直接実行
する。計算が終了すると、結果がFLFバッファ380
内に戻され、Lコア354は続行することができる。次
いで、Fコア352は、FLFバッファ380のその側
から結果を読み取る。FLFバッファ380はまた、診
断のために使用することが好ましい。
【0142】LSバッファ386は、セットアップ計算
のためにデータをSコア356に送るために使用される
書込み専用出力レジスタである。カラー値およびアルフ
ァ値のみは、このインタフェースを介して送られる。標
準の三角形の場合、3つのカラーおよび(3つの値を含
む)1つのアルファ・ワードがSコア356に送られる
が、テクスチャ・ライティングの特殊な場合、2組の3
つの値に加えてアルファが送られ、したがってバッファ
は少なくとも7つのエントリを必要とする。好ましい実
施形態では、LSバッファ386は、二重バッファされ
た8つのエントリを含んでいる。
【0143】べき関数ブロック584は、0.0と1.
0の間のある数を0.0と128.0の間のべきに上げ
るために使用される。従来技術のいくつかのアーキテク
チャでは、これは、テーブル・ルックアップを使用して
行われる。テーブル・ルックアップは、鏡面ハイライト
にはほとんど十分であるが、スポット光ビーム・スプレ
ッド用に使用した場合にひどいレンダリング人工物を生
じる。テーブル・ルックアップの最大の問題は、テーブ
ルのサイズ、および滑らかな関数ではなく値の間に段が
生じることである。
【0144】Lコア354内のべき関数ユニット584
は、複雑な数式を使用してはるかに正確な値を計算す
る。関数は、Log2(Dp)=P・Log2(D) を真
数として近似される。次いで、これは、最初の「1」を
得るために2進値をシフトするビットの数、指数テーブ
ル・ルックアップ、および級数展開を使用して計算した
分数値を含む3つの部分に分割される。
【0145】逆平方根関数は、F(X)=X1/2 と定義
される。ニュートン−ラプソンの方法を使用して、この
関数を0.5・(S・(3.0−S・(S・
X)))))と近似することができる。上式で、Sは、
テーブル内で調べた近似逆平方根値を表す。べき関数用
に使用される同じハードウェアも、乗算/加算ユニット
を通る3つのパスを有する逆平方根を発生する。ルック
アップ・テーブルROMは、10ビット精度の(1.0
〜0.25の初期入力用の)96個のエントリのみを必
要とする。結果は、最下位ビットまで正確である。
【0146】図13 Sコアのブロック図 次に、図13を参照すると、各浮動小数点プロセッサ1
52内のSコア・ブロック356を示すブロック図が示
されている。セットアップ・コア356は、形状プリミ
ティブのセットアップ計算を実施する固定小数点計算ユ
ニットを含んでいる。セットアップ計算は、ドロー処理
のために三角形の3つの頂点を昇順で分類することを含
む。セットアップ・コア356は、ライティング・コア
354および浮動小数点コア352から出力を受け取
り、ドロー・プロセッサ172Aおよび172Bに出力
を供給する。
【0147】Sコア・ブロック356はセットアップ計
算を実施する。好ましい実施形態では、28ビット・ブ
ロック浮動小数点フォーマットを使用してデータを処理
する。セットアップおよびスクリーン空間レンダリング
の精度要件の広範な数値解析から、純粋な固定小数点で
は、DDAセットアップ計算中に起こりうる傾斜のダイ
ナミック・レンジを処理するのには不十分であることが
分かった。事実、セットアップ・データ自体は本来完全
に固定小数点ではない。いくつかの傾斜は、まだ特殊な
浮動小数点フォーマットのドロー・プロセッサ172に
送られ、そこでデータはこの形態で使用される。深さバ
ッファrZバッファ内に記憶された値は、特殊な浮動小
数点表示を使用する。
【0148】Sコア・プロセッサ356は、SAバス、
SBバス、SCバスと呼ばれる3つのバスを含んでい
る。乗算器614は、SAバスおよびSBバスに結合さ
れ、乗算器を介して加算器616に出力を供給する。加
算器616の他方の入力はSCバスに結合される。加算
器616、乗算器614、SAバスおよび2つの逆数ユ
ニット618および620は、マルチプレクサ630に
出力を供給し、マルチプレクサ630は、SDバスを介
してSOバッファ158に出力を供給する。
【0149】Sコア・プロセッサ356は、定数値およ
び中間データ値を記憶するSRレジスタ612を含んで
いる。SRレジスタ・ファイル612は、3つの読取り
ポートおよび1つの書込みポートとともに64個の32
ビット・レジスタを含んでいる。乗算累積演算を実施す
る場合、乗算器614に進むSAバスおよびSBバスお
よび加算器616に進むSCバスとともに、3つのすべ
ての読取りポートが使用される。
【0150】セットアップ計算では、1つの頂点から他
の頂点までの複数の寸法の距離の計算、およびその縁部
に沿った傾斜の計算を行う。三角形の場合、走査線の方
向においてZの傾斜、カラー、およびUV(テクスチャ
の場合)も計算する。固定小数点乗算器614は、SA
バスおよびSBバスから入力を受け取り、SDバスまた
は固定小数点加算器616に出力する。加算器616の
一方の側は、SAバスまたは乗算器614の出力からそ
の入力を受け取り、他方の側は、SCバスからその入力
を受け取る。
【0151】Sコア・プロセッサ356は、逆数は多数
のサイクルを必要とし、また三角形には2つの逆数ユニ
ットが必要であるので、2つの逆数ユニット618およ
び620を含んでいる。逆数ユニット618および62
0は、加算器616から来た結果をより迅速に処理する
ためにSCバスに接続される。FSバッファ384から
SOバッファ158に直接パススルー・データを転送す
るために使用されるSAバスからSDバスへの直接デー
タ・パスが存在することに留意されたい。
【0152】Sコア通信バッファ Sコア356は、チップの他の部分と通信するために使
用する異なる3つのバッファを含んでいる。LSバッフ
ァ386は、入力のみであり、Lコア354からのデー
タを含んでいる。カラー値およびアルファ値のみがこの
バッファから来る。LSバッファ386は、24個の3
2ビット・ワードとして現れる。各ワードは、Lコア3
54によってバッファに記憶された16ビット固定小数
点数から得られた固定小数点数を含んでいる。
【0153】FSバッファ384は、入力のみであり、
Lコア354からのデータを含んでいる。ドロー・プロ
セッサ172チップに送るべき他のすべてのものは、こ
のパスを介して来る。形状プリミティブの場合、X座
標、Y座標、Z座標がこのパスを介して来る。パススル
ー・パケットの場合、32ビット・データがこのパスを
介して来る。FSバッファ384はまた、必要に応じて
診断送信用に使用することもできる。
【0154】SOバッファ158は、出力のみであり、
FDバスを介してドロー・プロセッサ172にデータを
送るために使用される。SOバッファ158は、二重に
バッファされ、32個の32ビット・ワードを保持す
る。
【0155】以上、本発明のシステムおよび方法につい
て、記載の実施形態に関して説明したが、本発明は、本
明細書に記載の特定の形態に限定されるものではなく、
首記の請求の範囲によって規定される本発明の精神およ
び範囲内に当然含まれるそのような代替物、修正物およ
び同等物を含むものである。
【図面の簡単な説明】
【図1】本発明による3次元(3D)グラフィックス・
アクセラレータを含むコンピュータ・システムを示す図
である。
【図2】図1のコンピュータ・システムの簡単化された
ブロック図である。
【図3】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータを示すブロック図である。
【図4】図3の3次元グラフィックス・アクセラレータ
の一部を示すブロック図である。
【図5】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内のコマンド・プリプロセッ
サを示すブロック図である。
【図6】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つの浮動小数点プロセ
ッサを示すブロック図である。
【図7】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つのドロー・プロセッ
サを示すブロック図である。
【図8】コマンド・プリプロセッサを各浮動小数点プロ
セッサに接続するCFバスを示すブロック図である。
【図9】各浮動小数点プロセッサを各ドロー・プロセッ
サに接続するFDバスを示すブロック図である。
【図10】コマンド・プリプロセッサを各ドロー・プロ
セッサに接続するCDCバスを示すブロック図である。
【図11】Fコア・ブロックを示すブロック図である。
【図12】Lコア・ブロックを示すブロック図である。
【図13】Sコア・ブロックを示すブロック図である。
【符号の説明】
80 コンピュータ・システム 82 システム・ユニット 84 ビデオ・モニタまたはディスプレイ装置 86 キーボード 88 マウス 90 フロッピ・ディスク 100 フレーム・バッファ 102 中央演算処理装置(CPU) 104 高速バスまたはシステム・バス 106 システム・メモリ 112 3次元グラフィックス・アクセラレータ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年10月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図10】
【図6】
【図9】
【図7】
【図11】
【図8】
【図12】
【図13】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 モース・ウェイン アメリカ合衆国・94555・カリフォルニア 州・フレモント・タミー イール・33308 (72)発明者 アデレク・アジロトゥトゥ アメリカ合衆国・95148・カリフォルニア 州・サン ホゼ・ピンカートン ドライ ブ・3322

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 プリミティブ・データを受け取る第1の
    バス・インタフェースと、 バス・インタフェースに結合され、バス・インタフェー
    スからプリミティブ・データを受け取り、受け取ったプ
    リミティブ・データに対して浮動小数点演算を実施する
    浮動小数点コアと、 ライティング計算を実施する固定小数点計算ユニットを
    含み、浮動小数点コアから出力データを受け取るように
    結合され、またバス・インタフェースから直接プリミテ
    ィブ・データを受け取るように結合されたライティング
    ・コアと、 形状プリミティブのセットアップ計算を実施する固定小
    数点計算ユニットを含み、ライティング・コアから出力
    を受け取るように結合され、また浮動小数点コアから出
    力を受け取るように結合されたセットアップ・コアと、 セットアップ・コアから出力データを受け取るように結
    合され、バス上に出力データを供給するようになされた
    第2のバス・インタフェースとを含む3次元グラフィッ
    クス・アクセラレータ内で使用するための浮動小数点プ
    ロセッサ。
  2. 【請求項2】 前記プリミティブ・データがライティン
    グ情報を含み、 前記ライティング情報が、第1のバス・インタフェース
    からライティング・コアに直接供給される請求項1に記
    載の浮動小数点プロセッサ。
  3. 【請求項3】 前記プリミティブ・データが頂点法線デ
    ータおよび頂点カラー・データを含み、 前記頂点法線データおよび前記頂点カラー・データが、
    第1のバス・インタフェースからライティング・コアに
    直接供給される請求項1に記載の浮動小数点プロセッ
    サ。
  4. 【請求項4】 バス・インタフェースとライティング・
    コアの間に結合され、前記頂点法線データおよび前記頂
    点カラー・データを第1のバス・インタフェースからラ
    イティング・コアに直接転送するように動作するライテ
    ィング・コア入力バッファをさらに含む請求項3に記載
    の浮動小数点プロセッサ。
  5. 【請求項5】 浮動小数点コアが第1の数のパイプライ
    ン段を含み、 バス・インタフェースとライティング・コアの間に結合
    されたライティング・コア入力バッファが、前記第1の
    数のパイプライン段に一致するように設計された第1の
    数のバッファを含む請求項4に記載の浮動小数点プロセ
    ッサ。
  6. 【請求項6】 ライティング・コアがまた浮動小数点コ
    アにライティング情報を供給するように結合され、 ライティング・コアが第1のライティング情報を処理す
    ることができない場合にライティング・コアが前記第1
    のライティング情報を浮動小数点コアに供給する請求項
    1に記載の浮動小数点プロセッサ。
  7. 【請求項7】 第1のバス・インタフェースからデータ
    を受け取り、前記データを浮動小数点コアに供給し、各
    バッファ内に複数のエントリを記憶する二重バッファを
    含み、形状プリミティブのヘッダおよびXYZ座標情報
    を記憶する浮動小数点コア入力バッファをさらに含む請
    求項1に記載の浮動小数点プロセッサ。
  8. 【請求項8】 浮動小数点コアとライティング・コアの
    間に結合され、ライティング演算中にXYZ座標を受け
    取り、記憶し、前記XYZ座標をライティング・コアに
    供給し、ライティング演算中に前記XYZ座標を使用し
    てライティング方向を計算するフロート/ライティング
    ・バッファをさらに含む請求項1に記載の浮動小数点プ
    ロセッサ。
  9. 【請求項9】 前記フロート/ライティング・バッファ
    がさらに、浮動小数点コアからライティング属性を受け
    取り、前記ライティング属性をライティング・コアに供
    給するようになされた請求項8に記載の浮動小数点プロ
    セッサ。
  10. 【請求項10】 第1のバス・インタフェースからデー
    タを受け取り、前記データを浮動小数点コアに供給する
    1つまたは複数の浮動小数点コア入力バッファと、 浮動小数点コアとライティング・コアの間に結合され、
    浮動小数点コアとライティング・コアの間にデータを供
    給する1つまたは複数のフロート/ライティング・バッ
    ファと、 第1のバス・インタフェースに結合され、かつまたライ
    ティング・コアに結合され、第1のバス・インタフェー
    スからデータを受け取り、前記データをライティング・
    コアに供給し、浮動小数点コア、前記1つまたは複数の
    浮動小数点コア入力バッファ、および前記1つまたは複
    数のフロート/ライティング・バッファのパイプライン
    段に一致する複数のバッファを含むライティング・コア
    入力バッファとをさらに含む請求項1に記載の浮動小数
    点プロセッサ。
  11. 【請求項11】 浮動小数点コアとセットアップ・コア
    の間に結合され、浮動小数点コアとセットアップ・コア
    の間で通信を実施するフロート/セットアップ・バッフ
    ァをさらに含む請求項1に記載の浮動小数点プロセッ
    サ。
  12. 【請求項12】 浮動小数点コアとライティング・コア
    の間に結合され、浮動小数点コアとライティング・コア
    の間でデータを供給する1つまたは複数のフロート/ラ
    イティング・バッファと、 ライティング・コアとセットアップ・コアの間に結合さ
    れ、ライティング・コアとセットアップ・コアの間でデ
    ータを供給する1つまたは複数のフロート/セットアッ
    プ・バッファと、 浮動小数点コアとセットアップ・コアの間に結合され、
    浮動小数点コアからデータを受け取り、前記データをセ
    ットアップ・コアに供給し、ライティング・コア、前記
    1つまたは複数のフロート/ライティング・バッファ、
    および前記1つまたは複数のライティング/セットアッ
    プ・バッファのパイプライン段に一致する複数のバッフ
    ァを含むフロート/セットアップ・バッファとをさらに
    含む請求項1に記載の浮動小数点プロセッサ。
  13. 【請求項13】 浮動小数点コアが、 頂点位置をモデル空間からビュー空間に変換する手段
    と、 受け取った形状データに対してクリッピング演算を実施
    するクリッピング手段と、 受け取った頂点情報をスクリーン空間に変換する配景分
    割を実施する手段と、 三角形が前面対向か裏面対向かを判定する手段とを含む
    請求項1に記載の浮動小数点プロセッサ。
JP9211429A 1996-07-02 1997-07-02 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ Pending JPH10116356A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/676,096 US5745125A (en) 1996-07-02 1996-07-02 Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
US08/676096 1996-07-02

Publications (1)

Publication Number Publication Date
JPH10116356A true JPH10116356A (ja) 1998-05-06

Family

ID=24713208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9211429A Pending JPH10116356A (ja) 1996-07-02 1997-07-02 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ

Country Status (4)

Country Link
US (1) US5745125A (ja)
EP (1) EP0817010B1 (ja)
JP (1) JPH10116356A (ja)
DE (1) DE69725057T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997002546A1 (fr) * 1995-07-03 1997-01-23 Tsuneo Ikedo Circuit graphique pour ordinateur
US6018353A (en) * 1995-08-04 2000-01-25 Sun Microsystems, Inc. Three-dimensional graphics accelerator with an improved vertex buffer for more efficient vertex processing
DE19782200T1 (de) * 1996-12-19 1999-11-18 Hyundai Electronics America Maschine zur Videovollbildaufbereitung
JP2959519B2 (ja) * 1997-04-24 1999-10-06 日本電気株式会社 グラフィックス表示装置
US5973705A (en) * 1997-04-24 1999-10-26 International Business Machines Corporation Geometry pipeline implemented on a SIMD machine
US6085207A (en) * 1997-06-12 2000-07-04 Sun Microsystems, Inc. Method of performing signed operations with unsigned instructions in a microprocessor
US6018751A (en) * 1997-06-13 2000-01-25 Sun Microsystems, Inc. Microprocessor for performing signed operations with unsigned instructions
US6018752A (en) * 1997-06-16 2000-01-25 Sun Microsystems, Inc. Microprocessor for performing unsigned operations with signed instructions
US6029184A (en) * 1997-06-17 2000-02-22 Sun Microsystems, Inc. Method of performing unsigned operations with signed instructions in a microprocessor
US6020901A (en) * 1997-06-30 2000-02-01 Sun Microsystems, Inc. Fast frame buffer system architecture for video display system
US6037947A (en) * 1997-10-16 2000-03-14 Sun Microsystems, Inc. Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
US6459428B1 (en) * 1998-02-17 2002-10-01 Sun Microsystems, Inc. Programmable sample filtering for image rendering
US6496186B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6489956B1 (en) * 1998-02-17 2002-12-03 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
US6483504B1 (en) * 1998-02-17 2002-11-19 Sun Microsystems, Inc. Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US6097395A (en) * 1998-04-28 2000-08-01 Hewlett Packard Company Dynamic selection of lighting coordinates in a computer graphics system
US6070182A (en) * 1998-06-05 2000-05-30 Intel Corporation Data processor having integrated boolean and adder logic for accelerating storage and networking applications
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6417861B1 (en) * 1999-02-17 2002-07-09 Sun Microsystems, Inc. Graphics system with programmable sample positions
US6717577B1 (en) * 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US7885792B2 (en) * 2003-04-15 2011-02-08 The Mathworks, Inc. Programming Environment
US7002586B2 (en) * 2003-08-29 2006-02-21 Sun Microsystems, Inc. Method and apparatus for vertex splitting in a graphics system
US7355603B2 (en) * 2004-08-04 2008-04-08 Nvidia Corporation Filtering unit for floating-point texture data
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
US7286139B2 (en) * 2004-09-17 2007-10-23 Via Technologies, Inc. Partial guardband clipping
US7450129B2 (en) * 2005-04-29 2008-11-11 Nvidia Corporation Compression of streams of rendering commands
GB0723536D0 (en) * 2007-11-30 2008-01-09 Imagination Tech Ltd Multi-core geometry processing in a tile based rendering system
US20210374503A1 (en) * 2018-10-15 2021-12-02 Board Of Trustees Of The University Of Illinois Network-centric architecture and algorithms to accelerate distributed training of neural networks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US5136664A (en) * 1988-02-23 1992-08-04 Bersack Bret B Pixel rendering
TW241196B (ja) * 1993-01-15 1995-02-21 Du Pont
EP0627682B1 (en) * 1993-06-04 1999-05-26 Sun Microsystems, Inc. Floating-point processor for a high performance three dimensional graphics accelerator
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US9064334B2 (en) 2004-05-03 2015-06-23 Microsoft Technology Licensing, Llc Systems and methods for providing an enhanced graphics pipeline

Also Published As

Publication number Publication date
US5745125A (en) 1998-04-28
EP0817010A2 (en) 1998-01-07
EP0817010B1 (en) 2003-09-24
DE69725057T2 (de) 2004-08-19
EP0817010A3 (en) 2001-12-19
DE69725057D1 (de) 2003-10-30

Similar Documents

Publication Publication Date Title
JPH10116356A (ja) 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ
EP0817008B1 (en) Three-dimensional graphics accelerator which implements multiple logical buses
JPH10116355A (ja) 性能改善のためにダイレクト・データ・チャネルを備えた3次元グラフィックス・アクセレータ
EP0817117B1 (en) Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities and method for processing geometry data in said graphics accelerator
US6847370B2 (en) Planar byte memory organization with linear access
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6788303B2 (en) Vector instruction set
US6900800B2 (en) Tile relative origin for plane equations
US6798421B2 (en) Same tile method
US5801711A (en) Polyline and triangle strip data management techniques for enhancing performance of computer graphics system
US6954204B2 (en) Programmable graphics system and method using flexible, high-precision data formats
US6731288B2 (en) Graphics engine with isochronous context switching
JP5345226B2 (ja) グラフィックスプロセッサの並列アレイアーキテクチャ
US6791559B2 (en) Parameter circular buffers
US6169554B1 (en) Clip testing unit for a three-dimensional graphics accelerator
EP0933729A2 (en) Three-dimensional graphics accelerator
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
US20030179208A1 (en) Dynamically adjusting a number of rendering passes in a graphics system
JP2003346138A (ja) 画像処理装置およびその方法
US5949421A (en) Method and system for efficient register sorting for three dimensional graphics
US7170512B2 (en) Index processor
JPH11102443A (ja) 改良された入力カラー値のハンドリングを有する3次元グラフィックアクセラレータのためのライティングユニット
JP3839871B2 (ja) 三角形を表わす画素データを生成する装置
US6016149A (en) Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
US7489315B1 (en) Pixel stream assembly for raster operations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070710