JPH10177659A - 改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ - Google Patents

改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ

Info

Publication number
JPH10177659A
JPH10177659A JP9211422A JP21142297A JPH10177659A JP H10177659 A JPH10177659 A JP H10177659A JP 9211422 A JP9211422 A JP 9211422A JP 21142297 A JP21142297 A JP 21142297A JP H10177659 A JPH10177659 A JP H10177659A
Authority
JP
Japan
Prior art keywords
data
command
floating point
draw
bus
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
JP9211422A
Other languages
English (en)
Inventor
Michael F Deering
マイケル・エフ・ディアリング
Shawn F Storm
ショーン・エフ・ストーム
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 JPH10177659A publication Critical patent/JPH10177659A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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次元グラフィックス・アクセラレータ
は、コマンド・プリプロセッサを複数の各浮動小数点プ
ロセッサに接続する集合的にCFバスと呼ばれる複数の
直接データ・チャネルまたは2地点間バスを含んでい
る。また、複数の浮動小数点プロセッサを各ドロー・プ
ロセッサに接続する集合的にFDバスと呼ばれる複数の
直接データ・チャネルまたは2地点間バスを含んでい
る。本発明のシステムは、上記の直接データ・チャネル
の一部を使用するCDバスと呼ばれるコマンド・プリプ
ロセッサから直接ドロー・プロセッサへのバス動作を実
施する。

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次元レンダリング処理性能が得られ
る新しい3次元グラフィックス・アクセラレータ・アー
キテクチャが必要である。
【0007】Sun Microsystems社に譲
渡されたDeeringの米国特許第5392393号
には、従来技術による3次元グラフィックス・アーキテ
クチャが開示されている。図示のように、この従来技術
の3次元グラフィックス・アーキテクチャは、コマンド
・バス構成または共用バス構成を介して1つまたは複数
の浮動小数点プロセッサに結合されたコマンド・プリプ
ロセッサを含んでいる。各浮動小数点プロセッサは、コ
マンド・バスまたは共用バスを介して複数のドロー・プ
ロセッサに結合される。浮動小数点プロセッサと1つま
たは複数のドロー・プロセッサとの間に結合されたコマ
ンド・バスはまたコマンド・プリプロセッサに戻る。
【0008】従来技術の実施形態では、グラフィックス
・アクセラレータは、コマンド・プリプロセッサとドロ
ー・プロセッサとの間の直接通信をサポートする外部バ
スを含んでいた。これにより、コマンド・プリプロセッ
サがピクセル・データをフレーム・バッファに直接書き
込んだり、ピクセル・データをフレーム・バッファから
直接読み出すことができる。また、これにより、デバイ
ス間の状態情報の通過が可能になる。しかしながら、こ
の直接通信用の別個のバスを使用すると、電気負荷の問
題が生じるだけでなく、追加のバス用のボード・スペー
スが増大する。また、コマンド・プリプロセッサとドロ
ー・プロセッサとの間に直接バスを使用すると、コマン
ド・プリプロセッサと浮動小数点ブロックとの間の直接
データ・チャネルや、浮動小数点ブロックとドロー・プ
ロセッサとの間の直接データ・チャネルなど、他のバス
構成を使用した場合に実施することがより困難になる。
【0009】
【発明が解決しようとする課題】したがって、バス負荷
要件およびボード・スペース要件の少ない改善されたデ
バイス通信を実施する改善された3次元グラフィックス
・アクセラレータ・アーキテクチャが必要である。
【0010】
【課題を解決するための手段】本発明は、コマンド・ブ
ロックまたはプリプロセッサ、複数の浮動小数点プロセ
ッサまたはブロック、および1つまたは複数のドロー・
プロセッサまたはブロックを含む3次元グラフィックス
・アクセラレータを含む。3次元グラフィックス・アク
セラレータは、コマンド・プリプロセッサを複数の各浮
動小数点プロセッサに接続する集合的にCFバスと呼ば
れる複数の直接データ・チャネルまたは2地点間バスを
含んでいる。3次元グラフィックス・アクセラレータは
また、複数の浮動小数点プロセッサを各ドロー・プロセ
ッサに接続する集合的にFDバスと呼ばれる複数の直接
データ・チャネルまたは2地点間バスを含んでいる。
【0011】本発明のシステムはまた、上記の直接デー
タ・チャネルの一部を使用するCDCバスと呼ばれるコ
マンド・プリプロセッサから直接ドロー・プロセッサへ
のバスを用いる。この直接バスは、別個のバス用の追加
の線を必要とせずに改善されたデータ転送スループット
をもたらす。CDCバスは、データをコマンド・プリプ
ロセッサからドロー・プロセッサへ搬送するCDバスと
呼ばれる第1の単一方向バス、およびデータをドロー・
プロセッサからコマンド・プリプロセッサへ搬送する第
2の単一方向バスを含んでいる。本発明によれば、CD
バスは、CFバスおよびFDバスからのデータ線を共用
または「借用」し、浮動小数点プロセッサをバッファ・
チップとして使用する。これにより、既存のバス線を使
用して「論理」バスを実現することができる。
【0012】グラフィックス・アクセラレータは、6つ
の浮動小数点ブロックおよび6つの直接データ・チャネ
ルを含んでいることが好ましく、またCFバス直接デー
タ・チャネルは8ビット・バスが好ましい。FDバス直
接データ・チャネルは11ビット・バスが好ましい。好
ましい実施形態では、CDバス転送中に3つのCFバス
直接チャネルを使用する。CFバスは、3つの8ビット
・バスと結合してCDバスと呼ばれる33ビット・バス
を形成する追加の9つのビットを含んでいる。浮動小数
点プロセッサからドロー・プロセッサへの11ビット・
データ・バスに一致するように、追加の3つの線が最初
の3つの各コマンド対フロート(CF)データ・パスに
追加される。これにより、6つの浮動小数点プロセッサ
のうちの3つを使用して32ビット・ワードを転送する
ことができる33ビットが得られる。
【0013】したがって、CDバスは、CFバスからサ
イクルおよびデータ線を「借用」して、3つの浮動小数
点ブロック内のデータ・パスをコンジットとして使用し
て、32ビット・データをコマンド・ブロックからドロ
ー・ブロックへ迅速に送る。3つの浮動小数点プロセッ
サはそれぞれ、浮動小数点論理回路、浮動小数点論理回
路との間でデータを供給するデータ・パス、およびコマ
ンド・プロセッサからドロー・プロセッサへデータを直
接供給する直接データ・パスまたはバイパス・データ・
パスを含んでいる。グラフィックス・アクセラレータ
は、3つの浮動小数点プロセッサ・チップ内のこの直接
データ・パスまたはバイパス・データ・パスを使用して
CDバス転送を実施する。これら3つの各浮動小数点プ
ロセッサ・チップ内のマルチプレクサを使用して、浮動
小数点論理データ・パスとバイパス・データ・パスのい
ずれかを選択する。
【0014】CDバスを介して転送されたデータは、コ
マンド・プロセッサ出力の最後の段の後ろに挿入され、
処理段の前にデータ・ストリームから浮動小数点プロセ
ッサ152内に引き戻される。CFバス・データ転送が
唯一中断するのは、データを転送するのに借用した1サ
イクルである。好ましい実施形態では、6つの浮動小数
点プロセッサはすべて、それらのうちの3つが特別なデ
ータを含んでいなくても、この1サイクルが「しゃっく
り(hiccup)」する。
【0015】添付の図面を見ながら好ましい実施形態の
以下の詳細な説明を読めば、本発明をよりよく理解する
ことができよう。
【0016】
【発明の実施の形態】
図1 コンピュータ・システム 次に、図1を参照すると、本発明による3次元(3D)
グラフィックス・アクセラレータを含むコンピュータ・
システム80が示されている。図示のように、コンピュ
ータ・システム80は、システム・ユニット82および
システム・ユニット82に結合されたビデオ・モニタま
たはディスプレイ装置84を含んでいる。ディスプレイ
装置84は、様々なタイプのディスプレイ・モニタまた
はディスプレイ装置のいずれでもよい。キーボード86
およびマウス88または他の入力装置を含めて、様々な
入力デバイスがコンピュータ・システムに接続される。
コンピュータ・システム80は、フロッピ・ディスク9
0によって示されるアプリケーション・ソフトウェアを
実施して、3次元グラフィカル・オブジェクトをビデオ
・モニタ84上に表示させる。以下で詳細に説明するよ
うに、コンピュータ・システム80内の3次元グラフィ
ックス・アクセラレータは、改善された性能を有する3
次元グラフィカル・オブジェクトの表示を可能にする。
【0017】図2 コンピュータ・システムのブロック
図 次に、図2を参照すると、図1のコンピュータ・システ
ムを示す簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュータ・システム
の要素は便宜上示されていない。図示のように、コンピ
ュータ・システム80は、高速バスまたはシステム・バ
ス104に結合された中央演算処理装置(CPU)10
2を含んでいる。また、システム・メモリ106が高速
バス104に結合されることが好ましい。
【0018】ホスト・プロセッサ102は、様々なタイ
プのコンピュータ・プロセッサ、マルチプロセッサおよ
びCPUのいずれでもよい。システム・メモリ106
は、ランダム・アクセス・メモリおよび大容量記憶装置
を含めて、様々なタイプのメモリ・サブシステムのいず
れでもよい。システム・バスまたはホスト・バス104
は、ホスト・プロセッサ、CPU、およびメモリ・サブ
システム、ならびに特殊サブシステム間の通信を行う様
々なタイプの通信バスまたはホスト・コンピュータ・バ
スのいずれでもよい。好ましい実施形態では、ホスト・
バス104は、83MHzにおいて動作する64ビット
・バスであるUPAバスである。
【0019】本発明による3次元グラフィックス・アク
セラレータ112は、高速メモリ・バス104に結合さ
れる。3次元グラフィックス・アクセラレータ112
は、例えばクロス・バー・スイッチまたは他のバス接続
論理回路によってバス104に結合される。当技術分野
において周知のように、他の様々な周辺装置または他の
バスを高速メモリ・バス104に接続することができる
と仮定してある。図示のように、ビデオ・メモリまたは
ディスプレイ装置84は、3次元グラフィックス・アク
セラレータ112に接続される。
【0020】ホスト・プロセッサ102は、ホスト・バ
ス104を介してプログラム入出力(I/O)プロトコ
ルに従ってグラフィックス・アクセラレータ112との
間で情報を転送する。好ましい実施形態では、CPUコ
ピー(bコピー)コマンドを使用して、システム・メモ
リ106からグラフィックス・アクセラレータ112へ
データを転送する。他の実施形態では、グラフィックス
・アクセラレータ112は、直接メモリ・アクセス(D
MA)プロトコルに従ってメモリ・サブシステム106
にアクセスする。
【0021】ホスト・プロセッサ102上で動作してい
るグラフィックス・アプリケーション・プログラムは、
ディスプレイ装置84上に表示べき画像を規定する3次
元形状情報を含む形状データ・アレイを生成する。ホス
ト・プロセッサ102は、形状データ・アレイをメモリ
・サブシステム106に転送する。その後、ホスト・プ
ロセッサ102は、好ましくはbコピー・コマンドを使
用して、ホスト・バス104を介してデータをグラフィ
ックス・アクセラレータ112に転送する。あるいは、
グラフィックス・アクセラレータ112は、DMAアク
セス・サイクルを使用して、ホスト・バス104を介し
て形状データ・アレイの読取りを行う。他の実施形態で
は、グラフィックス・アクセラレータ112は、Int
el社が普及させたアドバンス・グラフィックス・ポー
ト(AGP)など、直接ポートを介してメモリ・サブシ
ステム106に結合される。
【0022】形状データ・アレイ内の3次元形状情報
は、頂点座標(頂点)、頂点位置、および通常モデル空
間と呼ばれる3次元空間内で三角形、ベクトルおよび点
を定義する他の情報を含む入力頂点パケットのストリー
ムを含んでいる。各入力頂点パケットは、頂点位置、頂
点法線、頂点カラー、ファセット法線、ファセット・カ
ラー、テクスチャ・マップ座標、ピックID、ヘッダ、
および他の情報を含めて、3次元頂点情報の任意の組合
せを含んでいる。
【0023】図3 グラフィックス・アクセラレータ 次に、図3を参照すると、本発明の好ましい実施形態に
よる3次元グラフィックス・アクセラレータ112を示
すブロック図が示されている。図4は、3次元グラフィ
ックス・アクセラレータ112の一部を示すより詳細な
図である。図示のように、3次元グラフィックス・アク
セラレータ112は、主として、コマンド・プリプロセ
ッサまたはコマンド・ブロック142、一組の浮動小数
点プロセッサまたは浮動小数点ブロック152Aないし
152F、一組のドロー・プロセッサまたはドロー・ブ
ロック172Aおよび172B、3DRAMから構成さ
れたフレーム・バッファ、およびランダム・アクセス・
メモリ/デジタルアナログ変換器(RAMDAC)19
6から構成される。
【0024】図示のように、3次元グラフィックス・ア
クセラレータ112は、ホスト・バス104にインタフ
ェースするコマンド・ブロック142を含んでいる。コ
マンド・ブロック142は、グラフィックス・アクセラ
レータ112をホスト・バス104にインタフェース
し、グラフィックス・アクセラレータ112内で他のブ
ロックまたはチップ間のデータの転送を制御する。コマ
ンド・ブロック142はまた、以下で詳細に説明するよ
うに、三角形およびベクトル・データを事前処理し、形
状データ圧縮解除を実施する。
【0025】コマンド・ブロック142は、複数の浮動
小数点ブロック152にインタフェースする。3次元グ
ラフィックス・アクセラレータ112は、図示のように
最大6つの浮動小数点ブロック152Aないし152F
を含んでいることが好ましい。浮動小数点ブロック15
2Aないし152Fは、ハイ・レベル・ドロー・コマン
ドを受け取り、3次元オブジェクトをスクリーン上にレ
ンダリングすべき三角形や線などグラフィックス・プリ
ミティブを生成する。浮動小数点ブロック152Aない
し152Fは、受け取った形状データに対して、変換、
クリッピング、ライティングおよびセットアップなどの
諸操作を実施する。各浮動小数点ブロック152Aない
し152Fは、それぞれのメモリ153Aないし153
Fに接続される。メモリ153Aないし153Fは、3
2k×36ビットSRAMが好ましく、マイクロコード
およびデータ記憶に使用される。
【0026】コマンド・ブロック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つのバス間で同期している。
【0027】以下で詳細に説明するように、CFバス
は、また、3つの8ビット・バスと結合して、CDバス
と呼ばれる33ビット・バスを形成する追加の9つのビ
ットを含んでいる(図8ないし図10)。図3および図
4に示すように、バス154A、154Bおよび154
Cは、集合的にCDバスを含んでおり、それぞれ8ビッ
ト・バスに加えて追加の3ビットを含む11ビット・バ
スである。CDバスは、コマンド・ブロック142から
ドロー・ブロック172Aおよび172Bへの直接単一
方向バスである。CDバスは、CFバス154からサイ
クルおよびデータ線を「借用」して、3つの浮動小数点
ブロック152Aないし152C内のデータ・パスをコ
ンジットとして使用して、32ビット・データをコマン
ド・ブロック142からドロー・ブロック172Aおよ
び172Bへ迅速に送る。
【0028】図示のように、コマンド・ブロック142
は、各チャネル154Aないし154Fに対応する別個
のFIFOバッファ144Aないし144Fを含んでい
る。これらのFIFOバッファ144を使用して、デー
タを記憶またはバッファし、その後データをそれぞれの
チャネル154Aないし154F上でそれぞれの浮動小
数点ブロック152Aないし152Fに転送する。図示
のように、各浮動小数点ブロック152Aないし152
Fは、それぞれのチャネル154Aないし154Fから
データを受け取るために結合されたそれぞれの入力FI
FOバッファ155Aないし155Fを含んでいる。
【0029】各浮動小数点ブロック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内に同時にレンダリングす
る。
【0030】各浮動小数点ブロック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ビット・バ
スである。
【0031】したがって、グラフィックス・アクセラレ
ータ112は、各浮動小数点ブロック152Aないし1
52Fから各ドロー・プロセッサ172Aおよび172
Bへの独立のパスを形成する二組の6つの11ビット・
バスを含んでいる。直接データ・チャネル154Aない
し154Fは、集合的に48ビットを含んでおり、また
直接データ・チャネル162Aないし162Fおよび1
64Aないし164Fは、集合的にFDバス(フロート
/ドロー・バス)と呼ばれる。
【0032】各浮動小数点ブロック152Aないし15
2Fは、同じデータを2つのドロー・ブロック172A
および172Bに同報通信するように動作することが好
ましい。言い換えれば、同じデータが常に、各浮動小数
点ブロック152から来るデータ線の両方の組上にあ
る。したがって、浮動小数点ブロック152Aがデータ
を転送する場合、浮動小数点ブロック152Aは、同じ
データを両方のチャネル162Aおよび164Aを介し
てドロー・プロセッサ172Aおよび172Bに転送す
る。
【0033】データは、3つのサイクルを使用してFD
バス上で一度に32ビット転送され、別個の6つのバス
間は同期していない。各転送の33番目のビットは、制
御ビットであり、転送されているプリミティブの最後の
ワードを示す1にセットされる。場合によっては、上述
のように、3つの浮動小数点ブロック152Aないし1
52Cからの出力は、33ビット(32データ、1制
御)CDバス・サイクル用に「借用」される。
【0034】図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(図示せず)を含んでいる。
【0035】グラフィックス・アクセラレータ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により明確に示されている。
【0036】各ドロー・ブロック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次元オブジェクトに対応するピクセルを記憶する。
【0037】各3DRAMメモリ192A、Bおよび1
94A、Bは、RAMDAC(ランダム・アクセス・メ
モリ・デジタルアナログ変換器)196に結合される。
RAMDAC196は、クロス・バー機能とともに、プ
ログラマブル・ビデオ・タイミング発生器およびプログ
ラマブル・ピクセル・クロック合成器、ならびに従来の
カラー・ルックアップ・テーブルおよびトリプル・ビデ
オDAC回路を含んでいる。RAMDACは、ビデオ・
モニタ84に結合される。
【0038】グラフィックス・アクセラレータ112
は、コマンド・ブロック142およびRAMDAC19
6を接続するCMバスと呼ばれる双方向バス195をさ
らに含んでいる。図示のように、ブートPROM197
およびオーディオ・ブロック198がCMバス195に
結合される。CMバス195は、25MHzにおいて動
作することが好ましい。
【0039】コマンド・ブロックは、単一のチップとし
て実施することが好ましい。各「浮動小数点ブロック」
152は、別個のチップとして実施することが好まし
い。好ましい実施形態では、最大6つの浮動小数点ブロ
ックまたはチップ152Aないし152Fが含まれる。
また、各ドロー・ブロックまたはプロセッサ172Aお
よび172Bは、別個のチップを含んでいることが好ま
しい。
【0040】直接データ・チャネル 上述のように、本発明の3次元グラフィックス・アクセ
ラレータ・アーキテクチャは、コマンド・ブロック14
2と各浮動小数点ブロック152Aないし152Fとの
間の複数の直接チャネル、ならびに各浮動小数点ブロッ
ク152Aないし152Fとそれぞれのドロー・ブロッ
ク172Aおよび172Bとの間の複数の直接チャネル
を含んでいる。
【0041】従来の技術のセクションで説明したよう
に、従来技術のアーキテクチャは、これらの要素を接続
する共通バスを含んでいた。したがって、コマンド・ブ
ロック142は、一般に、個別のデータをラウンド・ロ
ビン方式で各浮動小数点ブロック152Aないし152
Fに送るように動作する。言い換えれば、コマンド論理
142は、一般に、浮動小数点ブロック152Aなどた
だ1つの浮動小数点ブロック152へのデータのバース
ト転送を実施し、次いで浮動小数点ブロック152Bな
ど他の浮動小数点ブロックへのバースト・データ転送を
実施する。このデータ転送のバースト性質はまた、各浮
動小数点ブロック152Aないし152Fと2つのドロ
ー・ブロック172Aおよび172Bとの間に現れる。
言い換えれば、各浮動小数点ブロック152Aないし1
52Fは、一般に、各ドロー・ブロック172Aおよび
172Bへの個別のバースト・データ転送をそれぞれ実
施する。
【0042】複数の直接データ・チャネルまたは2地点
間バスは、コマンド・ブロック142と各浮動小数点ブ
ロック152Aないし152Fとの間のバースト・デー
タ転送を実施する。複数の直接データ・チャネルまたは
2地点間バスはまた、各浮動小数点ブロック152Aな
いし152Fとドロー・プロセッサ172Aおよび17
2Bとの間のバースト・データ転送を実施する。共用バ
スの代わりに直接データ・パスを使用することにより、
多数のより小さいデータ・パス、例えば8ビット・デー
タ・パスが使用できるようになり、同時に従来技術の設
計と同じ帯域幅が得られる。また、これらのより小さい
直接データ・パスを使用することにより、グラフィカル
・アーキテクチャの電気特性が改善される。まず、コマ
ンド・チップ上の直接データ・チャネルの出力ピンは、
共用バス・アーキテクチャにおける複数のデバイスを駆
動する場合と異なり、単一のデバイスを駆動するために
のみ必要である。また、各浮動小数点プロセッサ152
Aないし152Fのピンは、それぞれ8ビット・バスに
接続されるだけであるので、数が少なくなっている。さ
らに、直接データ・パスによれば、複数のボード間の接
続性が改善される。また、電気的特性が改善されるため
に、クロック速度がより速くなり、したがって広い転送
帯域幅が得られる。
【0043】場合によっては、コマンド・ブロック14
2は、同じデータを各浮動小数点ブロック152Aない
し152Fに送る必要がある。例えば、コマンド・ブロ
ック142がマトリックス・データを送り、その後複数
の三角形データを送る必要があり、かつ後続の各三角形
がマトリックス・データを使用する必要がある場合、マ
トリックス・データをまず各浮動小数点ブロック152
Aないし152Fに転送し、その後、後続のいずれかの
三角形をそれぞれの浮動小数点ユニットのいずれかに送
る。言い換えれば、浮動小数点ブロック152は、三角
形を処理する必要があるそれぞれのマトリックスがすで
に受け取られるまで、これらの後続の1つの三角形を受
け取ることを許されない。
【0044】コマンド・ブロック142が各浮動小数点
ブロック152Aないし152Fに同じデータを送る必
要がある場合、コマンド・ブロック142は、すべての
FIFO144Aないし144Fが空になるのを待つ
か、またはこの共通転送が行われるためにそれぞれのF
IFO内に十分な空きができるまで待つ必要がある。し
たがって、コマンド・ブロック142が各浮動小数点ブ
ロック152Aないし152Fに同じデータを送る必要
がある場合、すなわちデータを並列に同報通信する必要
がある場合、コマンド・ブロック142は、各FIFO
144Aないし144FがそれらのFIFO内に十分な
空きができるまで待つ必要があり、FIFO144Aな
いし144Fのそれぞれに同じデータを転送する必要が
ある。この同報通信転送は、共通バスを使用する従来技
術のシステムよりも低い転送速度において行われること
に留意されたい。しかしながら、これらの共通転送は、
一般にまれであり、システムの性能に悪影響を及ぼすこ
とはない。
【0045】浮動小数点ブロック152Aないし152
Fは、必ずしも三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するわけではない。
一般に、受け取った三角形の正確な順序を維持する必要
はないことに留意されたい。好ましい実施形態では、3
次元グラフィックス・アクセラレータ・アーキテクチャ
は、受け取った三角形の正確な順序が維持されない第1
のモードを含んでいる。このシステムはまた、浮動小数
点ブロック152Aないし152Fが正確な順序でレン
ダリングされた三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するように構成され
た第2のモードを含んでいる。
【0046】したがって、本発明のシステムおよび方法
は、コマンド・ブロック142と各浮動小数点ブロック
152Aないし152Fとの間の複数の直接データ・チ
ャネルまたは2地点間バスを提供する。本発明のシステ
ムおよび方法はまた、浮動小数点ブロック152Aない
し152Fと各ドロー・ブロック172Aおよび172
Bとの間の複数の直接データ・チャネルまたは2地点間
バスを提供する。言い換えれば、本発明は、コマンド・
ブロック142を各浮動小数点ブロック152Aないし
152Fに接続する複数の専用の狭いバス、好ましくは
8ビット・データ・バス、ならびに各浮動小数点ブロッ
ク152Aないし152Fと各ドロー・ブロック172
Aおよび172Bに接続する狭いバス、好ましくは8ビ
ット・データ・バスを提供する。本発明は、接続用の共
通バスまたは共用バス・アーキテクチャを含んでおら
ず、各論理要素間の直接相互接続を含んでいる。これに
より、電気的特性が改善され、ピン要件が少なくなり、
またクロック速度がより速くなり、したがって従来技術
の設計に勝る改善された性能が得られる。
【0047】図5 コマンド・ブロック 上述のように、コマンド・プリプロセッサすなわちコマ
ンド・ブロック142は、ホスト・バス104を介して
通信を行うために結合される。コマンド・プリプロセッ
サ142は、ホスト・プロセッサ102によってメモリ
・サブシステム106からホスト・バス28を介して転
送された形状データ・アレイを受け取る。好ましい実施
形態では、コマンド・プリプロセッサ142は、圧縮さ
れた形状データならびに圧縮されていない形状データを
含めて、メモリ・サブシステム106から転送されたデ
ータを受け取る。コマンド・プリプロセッサ142は、
圧縮された形状データを受け取ったときに形状データを
圧縮解除するように動作する。
【0048】コマンド・プリプロセッサ142は、3次
元形状パイプラインおよび直接ポート・パイプラインの
2つのデータ・パイプラインで実施することが好まし
い。直接ポート・パイプラインでは、コマンド・プリプ
ロセッサ142は、ホスト・バス104を介して直接ポ
ート・データを受け取り、コマンドドロー(CD)バス
を介して直接ポート・データをドロー・プロセッサ17
2Aおよび172Bに転送する。上述のように、CDバ
スは、他のバスの一部を使用または「借用」して、コマ
ンド・プリプロセッサ142からドロー・プロセッサ1
72Aおよび172Bに直接データ・パスを形成する。
直接ポート・データは任意選択で、ドロー・プロセッサ
172Aおよび172Bと協働して、文字書込み、スク
リーン・スクロールおよびブロック移動などX11機能
を実施するコマンド・プリプロセッサ142によって処
理される。直接ポート・データはまた、ドロー・プロセ
ッサ172Aおよび172Bへのレジスタ書込み、およ
びフレーム・バッファ3DRAM192および194へ
の個々のピクセル書込みを含んでいる。
【0049】3次元形状パイプラインでは、コマンド・
プリプロセッサ142は、形状データ・アレイからの入
力頂点パケットのストリームにアクセスし、入力頂点パ
ケット内に含まれる情報を並べ替え、また任意選択で入
力頂点パケット内の情報を削除する。コマンド・プリプ
ロセッサ142は、受け取ったデータを標準のフォーマ
ットに変換することが好ましい。コマンド・プリプロセ
ッサ142は、各入力頂点パケット内の情報を、異数フ
ォーマットから32ビットIEEE浮動小数点数フォー
マットに変換する。コマンド・プリプロセッサ142
は、8ビット固定少数点数、16ビット固定少数点数、
および32または64ビットIEEE浮動小数点数を変
換する。通常のカラー値の場合、コマンド・プリプロセ
ッサ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が圧縮された形状データを受け取った場合、こ
のデータは、まず圧縮解除されるように入力FIFO3
12から形状圧縮解除ユニット316に供給され、その
後他の論理回路に供給される。
【0055】フォーマット変換器322は、整数データ
および浮動小数点データを受け取り、浮動小数点データ
または固定小数点データを出力する。フォーマット変換
器322は、コマンド・プロセッサ142には異なる複
数のデータ・タイプを受け取るフレキシビリティを与
え、同時に各浮動小数点ブロック・ユニット152Aな
いし152Fには特定のワード用の単一のデータ・タイ
プのみを与える。
【0056】フォーマット変換器322は、頂点累積バ
ッファ332に48ビット出力を供給する。頂点累積バ
ッファ332は、頂点バッファ334に出力を供給す
る。頂点累積バッファ332および頂点バッファ334
は収集バッファ324に出力を供給し、収集バッファ3
24は出力バッファ304に出力を戻す。
【0057】頂点累積バッファ332は、フォーマット
変換器322から受け取ったプリミティブに必要な頂点
データを記憶または累積するために使用される。頂点累
積バッファ332は、実際二組のレジスタを含んでい
る、すなわち二重にバッファされる。第1の組のレジス
タは、直点を構成するのに使用され、第2の組のレジス
タは、データを1つの頂点バッファ334内にコピーす
るのに使用される。以下で詳細に説明するように、これ
ら二組のレジスタはより効率的な動作を可能にする。デ
ータ・ワードは、頂点累積バッファ332の第1のバッ
ファまたは上部バッファ内に一度に1つ書き込まれ、こ
れらの値は、新しい値がそれぞれのワードに上書きされ
るまで不変である。データは、発射状態が生じるまで、
1サイクル内で第1の組のレジスタから第2の組のレジ
スタへ転送される。
【0058】頂点バッファ334は、線や三角形など形
状プリミティブを構成または「作成」するために使用さ
れる。線および三角形は、プリミティブを完成するため
に、それぞれ2つおよび3つの頂点を必要とする。本発
明の一実施形態によれば、新しいプリミティブは、生成
しているプリミティブが1つまたは複数の頂点を前に生
成したプリミティブと共用する場合、既存のプリミティ
ブの頂点を交換することによって生成される。言い換え
れば、頂点バッファ334は、前の直点の値を記憶また
は維持し、プリミティブまたは三角形が1つまたは複数
の頂点または他の情報を隣接するプリミティブまたは三
角形と共用する場合、これらの頂点の値を知的に再使用
する。これにより、処理要件が少なくなり、またオープ
ンGLフォーマット動作がより効率的になる。好ましい
実施形態では、頂点バッファ334最大7個の頂点を保
持することができる。これにより、最悪の場合のプリミ
ティブ、すなわち独立した三角形のスループットが最大
になる。頂点バッファ334はまた、点、線および三角
形に対して最適速度において動作し、実質上クワッド・
プリミティブに対して最適である。
【0059】頂点累積バッファ332および頂点バッフ
ァ334はそれぞれ、収集バッファ324に結合され
る。収集バッファ324は、図示のように出力バッファ
304にそれぞれの出力を供給する。頂点バッファ33
4は、CFバス出力FIFO144に出力を供給するよ
うに結合される。また、収集バッファ324も、CFバ
ス出力FIFO144に出力を供給するように結合され
る。収集バッファ324は、浮動小数点ブロック152
Aないし152Fにすべての非形状データを送るために
使用される。収集バッファ324は、最大32個の32
ビット・ワードを保持することができる。CFバス出力
FIFO144にデータをコピーする動作は、最適スル
ープットを得るために収集バッファ324内に新しいデ
ータをコピーする動作と重複することに留意されたい。
【0060】上述のように、コマンド・ブロック142
は、マルチプレクサ314の出力に結合された複数のレ
ジスタ326を含んでいる。レジスタ326はまた、U
PA出力バッファ304に出力を供給する。レジスタ・
ブロック326は、それぞれの浮動小数点ブロック15
2Aないし152Fに送られるデータのフォーマットお
よびフローを制御する16個の制御レジスタおよび状態
レジスタを含んでいる。
【0061】頂点バッファ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バスへの「直接
ポート」アクセスを実施する。
【0062】コマンド・ブロック142はまた、ラウン
ド・ロビン・アービトレーション論理回路334を含ん
でいる。このラウンド・ロビン・アービトレーション論
理回路334は、次のプリミティブを受け取るべき各浮
動小数点プロセッサ152Aないし152Fを決定する
回路を含んでいる。上述のように、本発明のグラフィッ
クス・アクセラレータ112は、各浮動小数点プロセッ
サ152Aないし152F内ならびに外に別個の2地点
間バスを含んでいる。したがって、ラウンド・ロビン・
アービトレーション論理回路334は、プリミティブを
チップ間で均一に分配し、それによりすべての2地点間
バス上で同時に均一なデータのフローを維持するために
含まれている。好ましい実施形態では、ラウンド・ロビ
ン・アービトレーション論理回路334は、バックアッ
プされた、すなわちいっぱいのサブバスを飛び越す「次
の使用可能なラウンド・ロビン」アービトレーション方
式を使用する。
【0063】コマンド・プロセッサ142の他の実施形
態に関する情報については、参照することによりその全
体が本明細書の一部となる米国特許第5408605号
「Command Preprocessor for
a High Performance Three
Dimensional Graphics Acc
elerator」を参照されたい。
【0064】図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バスに出力データを供給する。
【0065】Fコア・ブロック352は、形状変換、ク
リップ・テスト、面決定、透視分割、およびスクリーン
空間変換を含むすべての浮動小数点集中演算を実施す
る。Fコア・ブロック352はまた、必要な場合にクリ
ッピングを実施する。好ましい実施形態では、Fコア・
ブロック352は、32kワードSRAM内に記憶され
た36ビット・マイクロ命令ワードを使用して完全にプ
ログラムできる。
【0066】Lコア・ブロック354は、オンチップR
AMベースのマイクロコードを使用して実質上すべての
ライティング計算を実施する。ライティング計算は、頂
点フォーマットに対するカラーに対して調整される。L
コア・ブロック354はまた、より効率的なライティン
グ計算のために効率的なトリプルワード設計を含んでい
る。このトリプルワード設計は、16ビット固定小数点
値を含む48ビット・データ・ワードによって動作す
る。したがって、1つの命令で、3つのカラー成分(R
GB)すべておよび1つのサイクル内にある法線(N
x、Ny、Nz)の3つの成分すべてに対して同じ機能
を実施することができる。Lコア・ブロック354内に
含まれるマス・ユニットは、自動的に値を許される範囲
に固定し、したがって追加の分岐は許されない。
【0067】Sコア・ブロックは、すべてのプリミティ
ブに対してセットアップ計算を実施する。これらのセッ
トアップ計算は、ある頂点から他の頂点までの複数の寸
法の距離を計算すること、およびその縁部に沿って傾斜
を計算することを含む。三角形の場合、Z深さの傾斜、
カラー、およびUV(テクスチャの場合)も、走査線の
方向において計算される。
【0068】図示のように、各浮動小数点ブロック15
2は、CFバスに結合されるCFバス・インタフェース
論理回路362を含んでいる。各浮動小数点ブロック1
52は、FDバスに結合されるFDバス・インタフェー
ス論理回路366を含んでいる。各浮動小数点ブロック
152は、CDバス用の各浮動小数点ブロック152へ
のデータ転送パスの働きをするバイパス・バスまたはデ
ータ・パス364を含んでいる。CDバスを介して送ら
れたデータ、すなわちFDバスに直接送られたデータ
は、データ転送バス364上を進み、したがって浮動小
数点ブロック152内に含まれる浮動小数点論理回路を
バイパスする。このバイパス・バス364の動作は、図
10により明確に示されており、図10に関して論じ
る。
【0069】一般に、浮動小数点ブロック152に供給
されたデータは、Fコア・ブロック352、Lコア・ブ
ロック354、またはFDバスに直接出る、すなわちC
Dバス転送の3つの宛先の1つを有する。好ましい実施
形態では、Fコア・ブロック352に宛てられたデータ
は、32ビットIEEE浮動小数点数および他の32ビ
ット・データを含む32ビット・ワードを含んでいる。
Lコア・ブロック354に宛てられたデータは、16固
定小数点数を含む48ビット・ワードを含んでいる。
【0070】図6に示すように、浮動小数点ブロック1
52は、6つの組み合わされた入力バッファおよび出力
バッファ、ならびにFコア・ブロック352とLコア・
ブロック354との間の通信を実施する2つの特殊バッ
ファを含んでいる。
【0071】図示のように、浮動小数点ブロック152
は、コマンド・ブロック142によって供給されたCF
バスからのデータを受け取るフロート入力バッファ(F
Iバッファ)372を含んでいる。FIバッファ372
は、二重にバッファされ、各バッファ内に32個の32
ビット・エントリを保持する。FIバッファ372内に
記憶された第1のワード、ワード0は、受け取った形状
プリミティブへ送るべきマイクロコード・ルーチンをF
コア・ブロック352に知らせる命令コードを含んでい
る。ヘッダおよびX座標、Y座標、Z座標のみがこのバ
ッファに供給される。
【0072】浮動小数点ブロック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
つの値は、射出変数、環境変数、拡散変数、鏡面変数お
よび鏡面指数変数の値である。
【0073】浮動小数点ブロック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)を含んでいる。
【0074】浮動小数点ブロック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の間
でデータを伝送するのに使用される双方向バッファであ
る。
【0075】Lコア対Sコア・バッファ(LSバッフ
ァ)386がLコア・ブロック354とSコア・ブロッ
ク356の間に結合される。LSバッファ386は、各
バッファが48ビット・ワードを保持している二重バッ
ファである。
【0076】浮動小数点ブロック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内で動作すべきマイクロコ
ード手順を示すディスパッチ・コードを含んでいる。
【0077】最後に、浮動小数点ブロック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を含
んでいる。
【0078】浮動小数点ブロック152の他の実施形態
に関する情報については、参照することによりその全体
が本明細書の一部となる米国特許第5517611号
「Floating Point Processor
for a High Performance T
hree Dimensional Graphics
Accelerator」を参照されたい。
【0079】図7 ドロー・プロセッサのブロック図 次に、図7を参照すると、それぞれのドロー・プロセッ
サ172の1つを示すブロック図が示されている。各ド
ロー・プロセッサ172Aおよび172Bは、同じもの
であり、したがって本明細書では便宜上1つだけ記載す
る。ドロー・プロセッサ172は、3DRAMチップの
シーケンシングを管理する。各ドロー・プロセッサ17
2は、内部ピクセル・キャッシュ用ならびにビデオ出力
リフレッシュ用の3DRAMスケジューリング論理回路
を含んでいる。これらの資源は、レンダリングされたピ
クセルをそれらが3DRAMに到達する前に待ち行列化
し、3DRAMキャッシュ誤りを予測するためにこの待
ち行列内のピクセル・アドレスを検索することによって
制御される。
【0080】図示のように、各ドロー・プロセッサ17
2は、FDバスにインタフェースするFDバス・インタ
フェース・ブロック402を含んでいる。FDバス・イ
ンタフェース・ブロック402は、CDCバス・インタ
フェース論理回路412に結合される。CDCバス・イ
ンタフェース論理回路412は、スクラッチ・バッファ
414および直接ポート・ユニット416に結合され
る。直接ポート・ユニット416は、フレーム・バッフ
ァ・インタフェース論理回路436から入力を受け取
り、ピクセル・データ・マルチプレクサ論理回路432
に出力を供給する。CDCバス・インタフェース論理回
路412はまた、DCバスに出力データを供給するよう
に結合される。FDバス・インタフェース402は、プ
リミティブ累積バッファ404に出力を供給する。
【0081】上述のように、FDバスは、ワード単位で
のみ同期した6つの独立したバスを含んでいる。FDバ
ス・インタフェース402は、2つの役目を果たす。第
1に、FDバス・インタフェース402は、FDバスを
介して転送された各組の3つの11ビット・データを3
2ビット・ワードおよび制御ビットに戻す。第2に、F
Dバス・インタフェース402は、FDバスから受け取
ったデータをプリミティブ累積バッファ404またはC
Dバス・インタフェース論理回路412に向ける。
【0082】CDCバス・インタフェース論理回路41
2は、32ビット・データ・ワードによって動作する。
上述のように、CDCバスは、CFバスおよびFDバス
を含む他のバスの一部を含んでおり、コマンド・ブロッ
ク142がピクセルを3DRAMチップ192および1
94内に転送することができるようにするのに使用され
る。DCバスは、ドロー・プロセッサ172からのレジ
スタの読取り、ならびに3DRAMからのピクセルの読
取りを可能にする。CDバス上のドロー・プロセッサ1
72の1つに供給されたデータは、第1のワードとして
ヘッダを必要とする。DCバス上に戻されるデータは、
コマンド・ブロック142が常に要求されたことを知っ
ているのでヘッダを有しない。
【0083】ドロー・プロセッサ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に信号を戻す。
【0084】上述のように、プリミティブ累積バッファ
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に出力を供給
する。
【0085】プリミティブ累積バッファ404は、完全
なプリミティブが受け取られるまでプリミティブ・デー
タを累積するのに使用される。したがって、データが6
つの浮動小数点プロセッサ152Aないし152Fから
収集されるにつれて、データは、最終的に完全なプリミ
ティブを形成する。プリミティブ累積バッファ404
は、1つの完全なプリミティブを保持するのに十分な空
きを含んでおり、さらに滑らかなパイプラインの流れを
維持する第2のプリミティブの部分を保持するのに十分
な記憶容量を含んでいる。6つのプリミティブ累積バッ
ファ404は、6つの各浮動小数点プロセッサ152A
ないし152Fからデータが入ってくるにつれていっぱ
いになる。プリミティブが完全に受け取られるとすぐ
に、一般に、次のプリミティブが後ろから来る。したが
って、プリミティブ累積バッファ404は、次のプリミ
ティブから入って来るデータからデータがいっぱいにな
るまで、プリミティブ累積バッファ404からの完全な
プリミティブをエッジ・ウォーカ論理回路422に転送
するのに十分な余分のバッファを含んでいる。好ましい
実施形態では、プリミティブ累積バッファ404は、処
理される最大のプリミティブ(三角形)よりも大きい複
数のワードである。プリミティブ累積バッファ404
は、エッジ・ウォーカ論理回路422に64ビット出力
を供給する。プリミティブは、スコアボード論理回路4
18の概念に基づいてプリミティブ累積バッファ404
から一度に1つ取り出される。
【0086】エッジ・ウォーカ論理回路422は、プリ
ミティブをスパン充填ユニット424が容易に処理する
ことができるいくつかの部分に分割する。三角形の場
合、エッジ・ウォーカ論理回路422は、2つの現在エ
ッジに沿って歩き、最も近いピクセル・サンプル点に調
整された一対の垂直スパンを生成し、次いでそれをスパ
ン充填ユニット424に送る。エッジ・ウォーカ・ユニ
ット422はまた、線用の同じ調整を実施し、三角形ス
パンに非常に似た線記述をスパン充填ユニット424に
送る。エッジ・ウォーカ論理回路422は、これらの調
整を実施するために使用される2つの16×24マルチ
プレクサを含んでいる。エッジ・ウォーカ論理回路42
2はさらに、他の計算を行うために使用されるカウント
を追跡する複数の加算器を含んでいる。三角形および線
以外のプリミティブは、資源の最も効率的な用途に応じ
て分割される。ギザギザのドットもアンチエイリアシン
グされたドットも、ギザギザのドットに0.5を加える
など、調整が最小の論理回路を介してまっすぐに送られ
る。大きなドットは、個々のピクセルとしてエッジ・ウ
ォーカ論理回路422を介して供給される。エッジ・ウ
ォーカ論理回路422は、多角形および長方形を水平ス
パンに変換する。エッジ・ウォーカ論理回路422は、
スパン充填ユニット424上に送られる前にブレゼンハ
ム(Bresenham)線をいかなる形でも修正しな
い。
【0087】スパン充填ユニット424は、通常三角形
および線に対して、任意に配向したスパン間で値の補間
を実施し、またアンチエイリアシングされた線に対して
フィルタ・ウェイト・テーブル・ルックアップを実施す
る。三角形スパン対、長方形スパンおよび多角形スパン
を含む最適化されたプリミティブ、およびアンチエイリ
アシングされた線および点の場合、1サイクルにつき2
つのピクセルが発生する。他のすべてのプリミティブ
は、1サイクルにつき1つのピクセルを発生する。ま
た、スパン充填ユニット424の最後の段は、ディザリ
ングを実施し、4×4スクリーン空間ディザ・パターン
を使用して12ビット・カラーを8ビット値に変換す
る。スパン充填論理回路424は、テクスチャ・ピクセ
ル・プロセッサ426に出力を供給する。
【0088】テクスチャ・ピクセル・プロセッサ426
は、テクスチャ計算を実施し、テクスチャ・メモリ43
0内のテクセルのルックアップを制御する。テクスチャ
・ピクセル・プロセッサ426は、ピクセル・プロセッ
サ434によってピクセルにマージすべきカラーをもた
らす。テクスチャ・ピクセル・プロセッサ426は、テ
クスチャ三角形を除いて他のすべてのプリミティブに対
してピクセル・データ・マルチプレクサ432上にデー
タを送る。
【0089】上述のように、プリミティブ累積バッファ
404はテクスチャ・エキスパンダ428に出力を供給
する。テクスチャ・エキスパンダ428は、受け取った
テクスチャをテクスチャ・メモリ430内に記憶するた
めに拡大するように動作する。このようにして、テクス
チャ・メモリ430は、プリミティブ累積バッファ40
4から直接ロードされ、テクセル・ルックアップのため
にテクスチャ・ピクセル・プロセッサに接続される。テ
クスチャ・メモリ430は、すべてのより小さいミップ
マップを含む16×16テクセル領域をテクスチャ・マ
ップするのに十分なデータを保持するように設計されて
いる。テクスチャ・メモリ430は、現在のバッファを
使用している間に1つのバッファがロードできるように
二重にバッファされることが好ましい。16×16テク
セル領域は、実際には補間が正確に動作できるように1
7×17アレイとして記憶されることに留意されたい。
【0090】上述のように、ピクセル・データ・マルチ
プレクサ432は、テクスチャ・ピクセル・プロセッサ
426および直接ポート・ユニット416から入力デー
タを受け取る。ピクセル・データ・マルチプレクサ論理
回路432は、スパン充填ユニット424から来るピク
セルと、CDバスから来るピクセルの間を調停する。C
Dバスからのピクセルには常に優先度が与えられる。ピ
クセル・データ・マルチプレクサ432はその出力をピ
クセル・プロセッサ434に供給する。
【0091】ピクセル・プロセッサ434は、3DRA
M192および194内の論理動作のためにブレンディ
ング、アンチエイリアシング、深さキューイングおよび
セットアップを実施する。ピクセル・プロセッサ434
はまた、線パターニング、ステンシル・パターニング、
Vポート・クリッピングなどの動作のためにピクセル書
込みを防ぐように動作できる論理回路を含んでいる。ピ
クセル・プロセッサ434は、フレーム・バッファ・イ
ンタフェース436に出力を供給する。
【0092】フレーム・バッファ・インタフェース43
6は、3DRAMメモリ192および194からのピク
セルの読取りおよび書込みを行うために必要な論理回路
を含んでいる。フレーム・バッファ・インタフェース4
36は、3DRAMチップ内のレベル1(L1)キャッ
シュおよびレベル2(L2)キャッシュを管理する。こ
れは、書き込むべきピクセルを予見し、他のピクセル・
アクセスが行われている間に必要なキャッシュ内でペー
ジングを行うことによって実施される。また、フレーム
・バッファ・インタフェース436は、図示のように各
3DRAMメモリ192および194に結合される。
【0093】図8 CFバスのブロック図次に、図8を
参照すると、CFバスならびにコマンド・ブロック14
2内の関連するバッファおよびそれぞれの浮動小数点プ
ロセッサ152Aないし152Fを示すブロック図が示
されている。上述のように、コマンド・ブロック142
は、それぞれの浮動小数点ブロック152Aないし15
2Fに結合される。図8に示すように、データがコマン
ド・ブロック142(図5)内の頂点バッファ344を
離れると、データは、6つの別個のCFバス出力FIF
O144Aないし144Fに分離される。CFバス出力
FIFO144Aないし144Fは、図5ではFIFO
144と総称してある。各CFバス出力FIFO144
Aないし144Fは、それぞれの浮動小数点ブロック1
52に接続され、各CFバス出力FIFO144Aない
し144Fは、それが接続される浮動小数点ブロック1
52にデータを送る間、独立して動作する。CFバス上
のすべてのデータ転送は、48ビット・ワード+6ビッ
ト・コードである。各ワードは、6つの8ビット部分、
まず最上位ビットとして送られ、コードは、6つの1ビ
ット部分として送られる。
【0094】48ビット・ワードは、6つの別個のパス
間で同期している。48ビット・ワードの最初の8ビッ
ト部分は、6つのパスすべてについて同じサイクル上で
転送される。1つのパスが48ビット転送の開始時に準
備ができていない場合、次の48ビット・ワード転送サ
イクルまで待たなければならない。しかしながら、プリ
ミティブの開始に関しては同期していない。プリミティ
ブのワードは、転送に使用できるときはいつでも転送す
ることができる。
【0095】データ部分は、それぞれの浮動小数点プロ
セッサ152によって受け取られると、48ビット・ワ
ードに再アセンブルされる。また、6ビット・コード
は、アセンブルされ、データに対して行うべきことを浮
動小数点プロセッサ152に知らせる。パススルー・デ
ータなどの浮動小数点データは、下位32ビットから引
き出され、Fコア352によって処理するためにFIバ
ッファ372内に記憶される。48ビット・ワード内に
パックされた3つの16ビット数として送られた法線
は、Lコア354によって処理するためにLIバッファ
376内に記憶される。結合したカラーおよび頂点は、
アンパックされ、16ビットはLIバッファ376に進
み、32ビットはFIバッファ372に進む。
【0096】CDバスはCFバス・データ線を借用する
図8に示すように、CFバスは、CDバスで示される余
分のワイヤを含んでいる。論理上、CDバスは、CFバ
スと無関係である。しかしながら、CDバスは、CFバ
スからのデータ線を共用または「借用」し、浮動小数点
プロセッサ152をバッファ・チップとして使用する。
図示のように、3つのCFバス出力FIFO144Aな
いし144Cは、それぞれのマルチプレクサ502Aな
いし502Cにデータを供給する。また、これらのマル
チプレクサは、CDバスを含む8ビット・データを受け
取る。また、CDバスの3ビット部分は、コマンド・ブ
ロック142の最後の出力段上に供給される。
【0097】32ビット・ワードをコマンド・ブロック
142からドロー・プロセッサ172に転送する場合、
1サイクルをCFバスから「借用」する。CFバス出力
FIFO144からの転送は1サイクルの間停止し、C
Dバス・データはバス上に向けられる。浮動小数点プロ
セッサ152からドロー・プロセッサ172への11ビ
ット・データ・パスを一致させるために、さらに3つの
線をフロート(CF)データ・パスへの各最初の3つの
コマンドに追加する。これにより、6つの浮動小数点プ
ロセッサ152のうちの3つを使用して、32ビット・
ワードを転送する33ビットが得られる。
【0098】CDバスを介して転送されたデータは、コ
マンド・プロセッサ出力の最後の段の後に挿入され、処
理段の前にデータ・ストリームから浮動小数点プロセッ
サ152内に引き戻される。CFバス・データ転送が唯
一中断するのは、データを転送するのに借用した1サイ
クルである。好ましい実施形態では、6つの浮動小数点
プロセッサ152はすべて、それらのうちの3つが特別
なデータを含んでいなくても、この1サイクルが「しゃ
っくり」する。浮動小数点プロセッサ出力におけるCD
バス転送についての詳細は以下で述べる。
【0099】図9 FDバス 図9に、浮動小数点プロセッサ152からドロー・プロ
セッサ172へのバスであるFDバスを示す。図9は、
それぞれの浮動小数点プロセッサ152およびドロー・
プロセッサ172内の関連するバッファを示すFDバス
のブロック図である。図9には一方のドロー・プロセッ
サ172へのワイヤのみが示されているが、図3および
図4に示すように、物理的には、各浮動小数点プロセッ
サ152から2つの各ドロー・プロセッサ172への別
個のワイヤがあることに留意されたい。論理的には、ワ
イヤは、それらの上に常に同じデータを有しているの
で、両方のドロー・プロセッサ172に進む同じワイヤ
である。
【0100】データは、セットアップ・ユニット(Sコ
ア)によってつくり出されると、SOバッファ158に
書き込まれる。このバッファ内の各ワードは32ビット
である。各ワードは、SOバッファ158から3つの1
1ビット部分、まず最上位ビット内に取られ、一度にF
Bバス11ビットを介して送られる。次いで、データ・
ワードは、再アセンブルされ、ドロー・プロセッサ17
2内で32ビット・ワードに戻される。33番目のビッ
トは、プリミティブの最後のワードに対して「1」にセ
ットされる。これにより、バスを介して送られたワード
・カウントが不要になる。
【0101】図示のように、各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バ
スにリダイレクトされる。
【0102】図10 CDCバス 図10は、上述したCDCバスを示す。論理的には、C
DCバスは、コマンド・ブロック142とドロー・プロ
セッサ172との間の32ビット幅双方向データ・バス
と考えられる。実際に、CDバスは、コマンド・ブロッ
ク142から各ドロー・プロセッサ172Aおよび17
2Bに進むCDバスと、各ドロー・プロセッサ172A
および172Bからコマンド・プロセッサ142へ進む
DCバスの2つの双方向バスから構成される。
【0103】CDCバスは、コマンド・プロセッサ14
2からフレーム・バッファ、すなわち3DRAMメモリ
192および194への「直接ポート」パスである。C
DCバスは、ピクセルをフレーム・バッファ内に書き込
むために使用される。CDCバスはまた、レジスタおよ
びピクセルを読み返すため、ならびに浮動小数点ブロッ
クSRAMの内容を読み返すために使用される。以下で
説明するように、CDバスは、CFバスおよびFDバス
からいくつかのワイヤを借用し、浮動小数点プロセッサ
152Aないし152Fを2段バッファとして使用す
る。サイクルは、要求に応じてこれら2つのバスから一
度に1つのワードが借用される。
【0104】図10に示すように、CDバスは、CFバ
ス上で担持され、3つの各浮動小数点ブロック・チップ
152Aないし152Cの入力バッファ362に供給さ
れる。データ転送がCFバス転送である場合、データ
は、図示のようにフロート論理回路に供給される。しか
しながら、データ転送がCDバス転送である場合、デー
タは、それぞれのFIFOまたはバス・インタフェース
からそれぞれの浮動小数点プロセッサ152Aないし1
52C内のそれぞれのマルチプレクサ532Aないし5
32Cに直接供給される。各マルチプレクサ532Aな
いし532Cからの出力は、それぞれの出力バッファ3
66を介してFDバスへ供給され、次いでそれぞれのド
ロー・プロセッサ172Aおよび172Bに供給され
る。
【0105】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への内部データ・パスを
使用する。
【0106】ほとんどの場合、コマンド・ブロック14
2は、浮動小数点ブロック152Aないし152F内の
浮動小数点論理回路を介して供給されたデータを各ドロ
ー・ブロック172Aおよび172Bに供給する。しか
しながら、場合によっては、コマンド・ブロック142
は、浮動小数点論理回路を通過する必要なしにデータを
直接ドロー・ブロック172Aおよび172Bに迅速に
供給することを望む。CDバスは、主として、コマンド
・ブロック142がデータを直接フレーム・バッファに
供給することができるようにし、浮動小数点プロセッサ
152内の浮動小数点論理回路をバイパスするために使
用される。上述のように、CDバスのほとんどの部分
は、3つの浮動小数点ブロック152Aないし152C
内に「チップ上に」供給される。これにより所要のボー
ド・スペースが減少する。
【0107】一実施形態では、CDバスまたはバイパス
・チャネル364を使用して、データを直接コマンド・
ブロック142からドロー・ブロック172Aおよび1
72Bに送っている間、各浮動小数点プロセッサ152
は、この間に他のデータを処理していてもよい。したが
って、これにより同時動作が可能になり、より大きいシ
ステム効率が得られる。
【0108】また、図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ビットのデ
ータ・パスの半分は空いたままである。
【0109】DCバスは、ピクセルを各ドロー・ブロッ
ク172Aおよび172Bからコマンド・ブロック14
2へ戻すための戻りパスになる。したがって、コマンド
・ブロック142がドロー・ブロック172Aおよび1
72B内のピクセルを読み出すように要求すると、ドロ
ー・ブロック172Aおよび172Bは、DCバス上の
このピクセル・データをコマンド・ブロック142に供
給する。図示のように、コマンド・ブロック142は、
DCバスからデータを受け取るバッファを含んでいる。
DCバスは、コマンド・ブロック142がそれぞれのフ
レーム・バッファからピクセルを読み取ることを可能に
する。DCバスはまた、ドロー・ブロック172Aおよ
び172Bが内容スイッチ中など状態をコマンド・ブロ
ック142に戻すことを可能にする。
【0110】DCバスは、主として、コマンド・ブロッ
ク142が各3DRAMメモリ192および194から
ピクセルを読み返すことを可能にするために使用され
る。例えば、ピクセル・データのウィンドウがメモリ1
92および194内に記憶されており、かつこのウィン
ドウが一部または全部が他のウィンドウによって遮断さ
れている場合、CPU102は、このウィンドウが遮断
されなくなったときに遮断されたデータを後で再使用す
ることができるようにこのデータを記憶装置から読み取
ることを望む。この場合、CPU102は、ピクセル・
データを読み取る要求をコマンド・ブロック142に送
り、コマンド・ブロック142からの要求に応答して、
各ドロー・ブロック172Aおよび172Bは、メモリ
192および194からピクセル・データを読み取り、
このデータをDCバス戻りパス上でコマンド・ブロック
142に戻す。次いで、コマンド・ブロック142は、
このデータを記憶のためにCPU102に戻す。
【0111】コマンド・ブロックの動作 コマンド・ブロック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に供給する。
【0112】それぞれの出力FIFOバッファ158A
ないし158Fがコマンド・ブロック142から許可を
求め、受け取ると、それぞれの出力FIFOバッファ1
58は、各ドロー・ブロック172Aおよび172Bに
プリミティブを送る。コマンド・ブロック142は、各
入力待ち行列155Aないし155Fおよび各出力待ち
行列158Aないし158Fのカウンタを含んでおり、
それぞれのバッファがデータを受け取った際またはそれ
ぞれのバッファからデータが送られた際にそれぞれのカ
ウンタを増分するように動作することが好ましい。コマ
ンド・ブロック142はまた、各ドロー・ブロック17
2Aおよび172Bにそれらの受け取ったプリミティブ
ごとに実施の順序を示す制御線を供給する。
【0113】以上、本発明のシステムおよび方法につい
て、記載の実施形態に関して説明したが、本発明は、本
明細書に記載の特定の形態に限定されるものではなく、
首記の請求の範囲によって規定される本発明の精神およ
び範囲内に当然含まれるそのような代替物、修正物およ
び同等物を含むものである。
【図面の簡単な説明】
【図1】本発明による3次元(3D)グラフィックス・
アクセラレータを含むコンピュータ・システムを示す図
である。
【図2】図1のコンピュータ・システムの簡単化された
ブロック図である。
【図3】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータを示すブロック図である。
【図4】図3の3次元グラフィックス・アクセラレータ
の一部を示すブロック図である。
【図5】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内のコマンド・プリプロセッ
サを示すブロック図である。
【図6】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つの浮動小数点プロセ
ッサを示すブロック図である。
【図7】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つのドロー・プロセッ
サを示すブロック図である。
【図8】コマンド・プリプロセッサを各浮動小数点プロ
セッサに接続するCFバスを示すブロック図である。
【図9】各浮動小数点プロセッサを各ドロー・プロセッ
サに接続するFDバスを示すブロック図である。
【図10】コマンド・プリプロセッサを各ドロー・プロ
セッサに接続するCDCバスを示すブロック図である。
【符号の説明】
80 コンピュータ・システム 82 システム・ユニット 84 ビデオ・モニタまたはディスプレイ装置 86 キーボード 88 マウス 90 フロッピ・ディスク 100 フレーム・バッファ 102 中央演算処理装置(CPU) 104 高速バスまたはシステム・バス 106 システム・メモリ 112 3次元グラフィックス・アクセラレータ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年12月19日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ショーン・エフ・ストーム アメリカ合衆国・94026・カリフォルニア 州・メンロ パーク・ピイオー ボックス 2344・番地なし

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 形状入力データを受け取り、形状プリミ
    ティブ・データを出力するコマンド・プロセッサと、 受け取った形状プリミティブ・データに対して浮動小数
    点演算を実施する1つまたは複数の浮動小数点プロセッ
    サと、 前記コマンド・プロセッサを前記1つまたは複数の浮動
    小数点プロセッサに接続する1つまたは複数のコマンド
    /フロート・バスと、 フレーム・バッファ・メモリと、 形状プリミティブ・データを受け取り、ピクセル・デー
    タをフレーム・バッファ・メモリ内にレンダリングする
    1つまたは複数のドロー・プロセッサと、 前記1つまたは複数の浮動小数点プロセッサを前記1つ
    または複数のドロー・プロセッサに接続する1つまたは
    複数のフロート/データ・バスとを含み、 前記1つまたは複数のコマンド/フロート・バスの少な
    くとも一部および1つまたは複数のフロート/ドロー・
    バスの少なくとも一部を使用して、前記コマンド・プロ
    セッサと前記1つまたは複数のドロー・プロセッサとの
    間でデータを転送する1つまたは複数の論理コマンド/
    ドロー・バスをさらに含み、 前記1つまたは複数の浮動小数点プロセッサの少なくと
    もサブセットが、 浮動小数点論理回路と、 前記1つまたは複数の各コマンド/フロート・バスに結
    合され、かつ前記浮動小数点論理回路に結合され、コマ
    ンド・プロセッサからデータを受け取り、前記データを
    浮動小数点論理回路に供給する第1のデータ・パスと、 前記浮動小数点論理回路に結合され、かつ前記1つまた
    は複数の各フロート/ドロー・バスに結合され、浮動小
    数点論理回路からデータを受け取り、前記データを前記
    1つまたは複数のドロー・プロセッサに供給する第2の
    データ・パスと、 前記1つまたは複数の前記各コマンド/フロート・バス
    および前記1つまたは複数の前記各フロート/ドロー・
    バスに結合され、前記コマンド・プロセッサから前記1
    つまたは複数のドロー・プロセッサに直接データを供給
    する直接データ・パスとを含むバス通信が改善されたグ
    ラフィックス・アクセラレータ。
  2. 【請求項2】 前記1つまたは複数の浮動小数点プロセ
    ッサの前記サブセットがそれぞれ、前記第2のデータ・
    パスおよび前記直接データ・パスから入力を受け取り、
    前記1つまたは複数の前記各フロート/ドロー・バスに
    出力を供給するマルチプレクサをさらに含み、 前記マルチプレクサが、前記浮動小数点プロセッサから
    前記1つまたは複数のドロー・プロセッサへの転送中に
    前記第2のデータ・パスを選択し、 前記マルチプレクサが、前記1つまたは複数の論理コマ
    ンド/ドロー・バスを使用して、前記コマンド・プロセ
    ッサから前記1つまたは複数のドロー・プロセッサへの
    転送中に前記直接データ・パスを選択する請求項1に記
    載のグラフィックス・アクセラレータ。
  3. 【請求項3】 前記1つまたは複数の各浮動小数点プロ
    セッサが、前記1つまたは複数の前記各コマンド/フロ
    ート・バスからデータを受け取るように結合され、前記
    直接データ・パスおよび前記浮動小数点論理回路に出力
    を供給する入力バッファをさらに含む請求項2に記載の
    グラフィックス・アクセラレータ。
  4. 【請求項4】 前記コマンド・プロセッサが、 前記1つまたは複数のコマンド/フロート・バスに出力
    データを供給する1つまたは複数のコマンド・プロセッ
    サ出力バッファと、 前記1つまたは複数の論理コマンド/ドロー・バスの一
    部を含み、データを転送する第1のデータ・パスと、 前記1つまたは複数のコマンド・プロセッサ出力バッフ
    ァから出力を受け取り、前記第1のデータ・パスからデ
    ータを受け取るように結合されたマルチプレクサとを含
    み、 前記マルチプレクサが、前記コマンド・プロセッサから
    前記1つまたは複数の浮動小数点プロセッサへの転送中
    に前記1つまたは複数のコマンド・プロセッサ出力バッ
    ファからの前記出力を選択し、前記マルチプレクサが、
    前記1つまたは複数の論理コマンド/ドロー・バスを使
    用して、前記コマンド・プロセッサから前記1つまたは
    複数のドロー・プロセッサへの転送中に前記第1のデー
    タ・パスからの前記出力を選択する請求項1に記載のグ
    ラフィックス・アクセラレータ。
  5. 【請求項5】 前記1つまたは複数の浮動小数点プロセ
    ッサが第1の複数の前記浮動小数点プロセッサを含み、 前記1つまたは複数のコマンド/フロート・バスが第1
    の複数の前記コマンド/フロート・バスを含み、 前記第1の複数の各コマンド/フロート・バスが、前記
    コマンド・プロセッサと前記第1の複数の各前記浮動小
    数点プロセッサとの間に直接データ・チャネルを含む請
    求項1に記載のグラフィックス・アクセラレータ。
  6. 【請求項6】 前記コマンド/フロート・バスの少なく
    ともサブセットが前記1つまたは複数のコマンド/ドロ
    ー論理バス内で使用される請求項5に記載のグラフィッ
    クス・アクセラレータ。
  7. 【請求項7】 各前記コマンド/フロート・バスが第1
    のバス・サイズを有し、 各前記フロート/ドロー・バスが前記第1のバス・サイ
    ズよりも大きい第2のバス・サイズを有し、 前記1つまたは複数のコマンド/ドロー論理バス内で使
    用される前記コマンド/フロート・バスの各前記サブセ
    ットごとに、前記コマンド/ドロー論理バス上のデータ
    転送用に独占的に使用される追加のデータ線を含み、 前記追加のデータ線が、前記コマンド/フロート・バス
    の前記サブセットとともに使用され、前記コマンド/フ
    ロート・バスの各前記サブセットごとに前記第2のバス
    ・サイズを有する結合データ・パスを形成する請求項6
    に記載のグラフィックス・アクセラレータ。
  8. 【請求項8】 前記第1の複数の前記浮動小数点プロセ
    ッサの少なくともサブセットが、前記1つまたは複数の
    コマンド/ドロー論理バス上での転送中に演算を実施す
    る請求項1に記載のグラフィックス・アクセラレータ。
  9. 【請求項9】 フレーム・バッファ・メモリと、 3次元オブジェクトをドローするハイ・レベル・ドロー
    ・コマンドを受け取るコマンド・ブロックと、 浮動小数点演算を実施し、コマンド・ブロックからハイ
    ・レベル・コマンドを受け取り、前記ハイ・レベル・コ
    マンドに応答して形状浮動小数点演算を実施し、それぞ
    れ形状プリミティブ・データをもたらす複数の浮動小数
    点ブロックと、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合され、前記コマンド・ブロックが前記直
    接データ・チャネルを介して各前記浮動小数点ブロック
    に結合され、各前記直接データ・チャネルが前記コマン
    ド・ブロックと前記複数の浮動小数点ブロックの1つと
    の間に2地点間接続を含む複数の直接データ・チャネル
    と、 フレーム・バッファ・メモリに結合され、3次元オブジ
    ェクト・ピクセル・データをフレーム・バッファ・メモ
    リ内にレンダリングする1つまたは複数のドロー・ブロ
    ックと、 前記複数の各浮動小数点ブロックが各前記1つまたは複
    数のドロー・ブロックへの直接チャネルを含み、各前記
    1つまたは複数の浮動小数点ブロックが前記1つまたは
    複数のドロー・ブロックにグラフィカル・プリミティブ
    を供給し、前記ドロー・ブロックが、前記複数の浮動小
    数点ユニットから受け取ったプリミティブを使用して3
    次元オブジェクト・ピクセル・データをフレーム・バッ
    ファ・メモリ内にレンダリングする前記複数の各浮動小
    数点ブロックと前記1つまたは複数のドロー・ブロック
    との間の複数の直接データ・チャネルと、 前記フレーム・バッファ・メモリに結合され、前記フレ
    ーム・バッファ・メモリからピクセル・データを受け取
    り、アナログ出力をビデオ・モニタに供給するデジタル
    アナログ変換器とを含み、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合された前記複数の直接データ・チャネル
    の少なくとも一部を使用し、前記複数の各浮動小数点ブ
    ロックと前記1つまたは複数のドロー・ブロックとの間
    の前記複数の直接データ・チャネルの少なくとも一部を
    使用し、前記コマンド・プロセッサと前記1つまたは複
    数のドロー・ブロックとの間のデータ転送用に使用され
    る1つまたは複数の論理コマンド/ドロー・バスをさら
    に含む3次元グラフィックス・アクセラレーション機能
    を実施する3次元グラフィックス・アクセラレータ。
  10. 【請求項10】 前記1つまたは複数の浮動小数点プロ
    セッサの少なくともサブセットが、 浮動小数点論理回路と、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合された前記複数の直接データ・チャネル
    の各直接データ・チャネルおよび前記複数の各浮動小数
    点ブロックと前記1つまたは複数のドロー・ブロックと
    の間に結合された前記複数の直接データ・チャネルの各
    直接データ・チャネルに結合され、前記コマンド・プロ
    セッサから前記1つまたは複数のドロー・プロセッサに
    直接データを供給し、前記1つまたは複数の論理コマン
    ド/ドロー・バス上での転送中に使用される直接データ
    ・パスとを含む請求項9に記載の3次元グラフィックス
    ・アクセラレータ。
  11. 【請求項11】 前記直接データ・パスが前記浮動小数
    点論理回路をバイパスする請求項10に記載の3次元グ
    ラフィックス・アクセラレータ。
  12. 【請求項12】 フレーム・バッファ・メモリと、 3次元オブジェクトをドローするハイ・レベル・ドロー
    ・コマンドを受け取るコマンド・ブロックと、 浮動小数点演算を実施し、コマンド・ブロックからハイ
    ・レベル・コマンドを受け取り、前記ハイ・レベル・コ
    マンドに応答して形状浮動小数点演算を実施し、それぞ
    れ形状プリミティブ・データをもたらす複数の浮動小数
    点ブロックと、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合され、前記コマンド・ブロックが前記直
    接データ・チャネルを介して各前記複数の浮動小数点ブ
    ロックに結合され、各前記直接データ・チャネルが前記
    コマンド・ブロックと前記複数の浮動小数点ブロックの
    1つとの間に2地点間接続を含む複数の直接データ・チ
    ャネルと、 フレーム・バッファ・メモリに結合され、3次元オブジ
    ェクト・ピクセル・データをフレーム・バッファ・メモ
    リ内にレンダリングする1つまたは複数のドロー・ブロ
    ックと、 前記複数の各浮動小数点ブロックが各前記1つまたは複
    数のドロー・ブロックへの直接チャネルを含み、各前記
    1つまたは複数の浮動小数点ブロックが前記1つまたは
    複数のドロー・ブロックにグラフィカル・プリミティブ
    を供給し、前記ドロー・ブロックが、前記複数の浮動小
    数点ユニットから受け取ったプリミティブを使用して3
    次元オブジェクト・ピクセル・データをフレーム・バッ
    ファ・メモリ内にレンダリングする前記複数の各浮動小
    数点ブロックと前記1つまたは複数のドロー・ブロック
    との間の複数の直接データ・チャネルと、 前記フレーム・バッファ・メモリに結合され、前記フレ
    ーム・バッファ・メモリからピクセル・データを受け取
    り、アナログ出力をビデオ・モニタに供給するデジタル
    アナログ変換器とを含み、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合された前記複数の直接データ・チャネル
    の少なくとも一部を使用し、前記複数の各浮動小数点ブ
    ロックと前記1つまたは複数のドロー・ブロックとの間
    の前記複数の直接データ・チャネルの少なくとも一部を
    使用し、前記コマンド・プロセッサと前記1つまたは複
    数のドロー・プロセッサとの間のデータ転送用に使用さ
    れる1つまたは複数の論理コマンド/ドロー・バスをさ
    らに含み、 前記1つまたは複数の浮動小数点プロセッサの少なくと
    もサブセットが、 浮動小数点論理回路と、 前記コマンド・ブロックと前記複数の浮動小数点ブロッ
    クとの間に結合された前記複数の直接データ・チャネル
    の各直接データ・チャネルおよび前記複数の各浮動小数
    点ブロックと前記1つまたは複数のドロー・ブロックと
    の間に結合された前記複数の直接データ・チャネルの各
    直接データ・チャネルに結合され、前記コマンド・プロ
    セッサから前記1つまたは複数のドロー・プロセッサに
    直接データを供給し、前記1つまたは複数の論理コマン
    ド/ドロー・バス上での転送中に使用される直接データ
    ・パスとを含み、前記直接データ・パスが前記浮動小数
    点論理回路をバイパスする3次元グラフィックス・アク
    セラレーション機能を実施する3次元グラフィックス・
    アクセラレータ。
JP9211422A 1996-07-01 1997-06-30 改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ Pending JPH10177659A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/673,491 US5874969A (en) 1996-07-01 1996-07-01 Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication
US08/673491 1996-07-01

Publications (1)

Publication Number Publication Date
JPH10177659A true JPH10177659A (ja) 1998-06-30

Family

ID=24702865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9211422A Pending JPH10177659A (ja) 1996-07-01 1997-06-30 改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ

Country Status (4)

Country Link
US (2) US5874969A (ja)
EP (1) EP0817008B1 (ja)
JP (1) JPH10177659A (ja)
DE (1) DE69726647D1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3085242B2 (ja) * 1997-04-30 2000-09-04 日本電気株式会社 ビデオデータ転送方式
US6184908B1 (en) * 1998-04-27 2001-02-06 Ati Technologies, Inc. Method and apparatus for co-processing video graphics data
US5995122A (en) * 1998-04-30 1999-11-30 Intel Corporation Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
US6247116B1 (en) 1998-04-30 2001-06-12 Intel Corporation Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US6263426B1 (en) 1998-04-30 2001-07-17 Intel Corporation Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US6292815B1 (en) 1998-04-30 2001-09-18 Intel Corporation Data conversion between floating point packed format and integer scalar format
US6282554B1 (en) * 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
US6266769B1 (en) 1998-04-30 2001-07-24 Intel Corporation Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6407740B1 (en) * 1998-09-30 2002-06-18 Sun Microsystems, Inc. Addressable output buffer architecture
JP3983394B2 (ja) * 1998-11-09 2007-09-26 株式会社ルネサステクノロジ 幾何学処理プロセッサ
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
US6411301B1 (en) 1999-10-28 2002-06-25 Nintendo Co., Ltd. Graphics system interface
US6452600B1 (en) 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer 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
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7134960B1 (en) 2000-08-23 2006-11-14 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in 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
US6664958B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Z-texturing
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6609977B1 (en) 2000-08-23 2003-08-26 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6639595B1 (en) 2000-08-23 2003-10-28 Nintendo Co., Ltd. Achromatic lighting in a graphics system and method
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6606689B1 (en) 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US6580430B1 (en) 2000-08-23 2003-06-17 Nintendo Co., Ltd. Method and apparatus for providing improved fog effects in a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6697074B2 (en) 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US7003588B1 (en) 2001-08-22 2006-02-21 Nintendo Co., Ltd. Peripheral devices for a video game system
US7061495B1 (en) * 2002-11-18 2006-06-13 Ati Technologies, Inc. Method and apparatus for rasterizer interpolation
US7796133B1 (en) * 2002-11-18 2010-09-14 Ati Technologies Ulc Unified shader
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US6985150B2 (en) * 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts
US20050264554A1 (en) * 2004-05-25 2005-12-01 Deming James L Tile based rendering of smooth points using polygons
EP2284792A1 (en) * 2009-08-07 2011-02-16 Imec Framework and execution module for use in the same
KR102444240B1 (ko) * 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US12204757B1 (en) * 2022-12-16 2025-01-21 Amazon Technologies, Inc. Strong ordered transaction for DMA transfers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2770598B2 (ja) * 1990-06-13 1998-07-02 株式会社日立製作所 図形表示方法およびその装置
US5345554A (en) * 1992-04-17 1994-09-06 Intel Corporation Visual frame buffer architecture
US5434967A (en) * 1992-10-27 1995-07-18 International Business Machines Corporation Decision variable hardware logic and processing methods for graphics display system
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture 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
DE69418646T2 (de) * 1993-06-04 2000-06-29 Sun Microsystems, Inc. Gleitkommaprozessor für einen hochleistungsfähigen dreidimensionalen Graphikbeschleuniger
US5463732A (en) * 1994-05-13 1995-10-31 David Sarnoff Research Center, Inc. Method and apparatus for accessing a distributed data buffer
US5821949A (en) * 1996-07-01 1998-10-13 Sun Microsystems, Inc. Three-dimensional graphics accelerator with direct data channels for improved performance

Also Published As

Publication number Publication date
EP0817008B1 (en) 2003-12-10
US5999196A (en) 1999-12-07
US5874969A (en) 1999-02-23
EP0817008A3 (en) 2001-09-05
EP0817008A2 (en) 1998-01-07
DE69726647D1 (de) 2004-01-22

Similar Documents

Publication Publication Date Title
JPH10177659A (ja) 改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ
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
EP0817010B1 (en) Floating point processor for a three-dimensional graphics accelerator
US6999087B2 (en) Dynamically adjusting sample density in a graphics system
US5798770A (en) Graphics rendering system with reconfigurable pipeline sequence
US7864185B1 (en) Register based queuing for texture requests
US6847370B2 (en) Planar byte memory organization with linear access
US6476808B1 (en) Token-based buffer system and method for a geometry pipeline in three-dimensional graphics
US6018353A (en) Three-dimensional graphics accelerator with an improved vertex buffer for more efficient vertex processing
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6975322B2 (en) Dynamically adjusting a number of rendering passes in a graphics system
US5949421A (en) Method and system for efficient register sorting for three dimensional graphics
US6762763B1 (en) Computer system having a distributed texture memory architecture
US7170512B2 (en) Index processor
US7248266B2 (en) 3-D rendering engine with embedded memory
EP0889441B1 (en) Lighting unit and method for a three-dimensional graphics accelerator
EP1345168B1 (en) Dynamically adjusting sample density and/or number of rendering passes in a graphics system
JPH1186028A (ja) テクスチャ・マッピング性能を向上させた3次元グラフィックス・アクセラレータを含むコンピュータ・システム
US6885375B2 (en) Stalling pipelines in large designs
JP4186561B2 (ja) 画像処理装置およびその方法
US7916151B1 (en) Partial texture loads
US7489315B1 (en) Pixel stream assembly for raster operations
JPH09270024A (ja) 情報処理装置
JP2005141533A (ja) 演算装置および画像処理装置