JPH10116352A - ジオメトリ圧縮解除能力を有する3次元グラフィック・アクセラレータ用のコマンド・プロセッサ - Google Patents
ジオメトリ圧縮解除能力を有する3次元グラフィック・アクセラレータ用のコマンド・プロセッサInfo
- Publication number
- JPH10116352A JPH10116352A JP9211424A JP21142497A JPH10116352A JP H10116352 A JPH10116352 A JP H10116352A JP 9211424 A JP9211424 A JP 9211424A JP 21142497 A JP21142497 A JP 21142497A JP H10116352 A JPH10116352 A JP H10116352A
- Authority
- JP
- Japan
- Prior art keywords
- data
- shape
- output
- input
- buffer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 形状データ圧縮解除機能を有するコマンド・
ブロックを含み、それにより従来技術の設計に勝る改善
された性能を含む3次元グラフィックス・アクセラレー
タを提供する。 【解決手段】 3次元グラフィックス・アクセラレータ
は、システム・メモリから圧縮された形状データを受け
取る。コマンド・ブロックまたはプリプロセッサ、複数
の浮動小数点プロセッサまたはブロック、および1つま
たは複数のドロー・プロセッサまたはブロックを含んで
いる。コマンド・プロセッサは、圧縮されていない形状
データを送る第1のデータ・パス、および圧縮された形
状データを受け取り、圧縮された形状データを圧縮解除
する第2のデータ・パスを含んでいる。
ブロックを含み、それにより従来技術の設計に勝る改善
された性能を含む3次元グラフィックス・アクセラレー
タを提供する。 【解決手段】 3次元グラフィックス・アクセラレータ
は、システム・メモリから圧縮された形状データを受け
取る。コマンド・ブロックまたはプリプロセッサ、複数
の浮動小数点プロセッサまたはブロック、および1つま
たは複数のドロー・プロセッサまたはブロックを含んで
いる。コマンド・プロセッサは、圧縮されていない形状
データを送る第1のデータ・パス、および圧縮された形
状データを受け取り、圧縮された形状データを圧縮解除
する第2のデータ・パスを含んでいる。
Description
【0001】
【発明の属する技術分野】本発明は、3次元グラフィッ
クス・アクセラレータに関し、さらに詳細には、圧縮さ
れていない形状データ用の第1のデータ・パス、および
圧縮された形状データを受け取り、圧縮解除する形状圧
縮解除ユニットを含む第2のデータ・パスを含む3次元
グラフィックス・アクセラレータ用の改善されたコマン
ド・プロセッサ・アーキテクチャに関する。
クス・アクセラレータに関し、さらに詳細には、圧縮さ
れていない形状データ用の第1のデータ・パス、および
圧縮された形状データを受け取り、圧縮解除する形状圧
縮解除ユニットを含む第2のデータ・パスを含む3次元
グラフィックス・アクセラレータ用の改善されたコマン
ド・プロセッサ・アーキテクチャに関する。
【0002】
【従来の技術】3次元(3D)グラフィックス・アクセ
ラレータは、ホストプロセッサから3次元レンダリング
機能をアンロードし、それによりシステム性能が改善さ
れるように設計されたコンピュータ・システム用の特殊
グラフィックス・レンダリング・サブシステムである。
3次元グラフィックス・アクセラレータを有するシステ
ムでは、コンピュータ・システムのホスト・プロセッサ
上で実施されているアプリケーション・プログラムは、
ディスプレイ装置上に表示するために3次元グラフィッ
クス・エレメントを規定する3次元形状データを生成す
る。アプリケーション・プログラムは、ホスト・プロセ
ッサに形状データをグラフィックス・アクセラレータに
転送させる。グラフィックス・アクセラレータは、形状
データを受け取り、対応するグラフィックス・エレメン
トをディスプレイ装置上にレンダリングする。
ラレータは、ホストプロセッサから3次元レンダリング
機能をアンロードし、それによりシステム性能が改善さ
れるように設計されたコンピュータ・システム用の特殊
グラフィックス・レンダリング・サブシステムである。
3次元グラフィックス・アクセラレータを有するシステ
ムでは、コンピュータ・システムのホスト・プロセッサ
上で実施されているアプリケーション・プログラムは、
ディスプレイ装置上に表示するために3次元グラフィッ
クス・エレメントを規定する3次元形状データを生成す
る。アプリケーション・プログラムは、ホスト・プロセ
ッサに形状データをグラフィックス・アクセラレータに
転送させる。グラフィックス・アクセラレータは、形状
データを受け取り、対応するグラフィックス・エレメン
トをディスプレイ装置上にレンダリングする。
【0003】高性能3次元グラフィックス・システムの
設計アーキテクチャは、事実上、システム性能の向上と
システム・コストの最小化との釣り合いを実現する。し
かしながら、従来のグラフィックス・システムには、通
常、様々なシステム上の制約のために性能が制限される
か、またはコストが高いという問題がある。
設計アーキテクチャは、事実上、システム性能の向上と
システム・コストの最小化との釣り合いを実現する。し
かしながら、従来のグラフィックス・システムには、通
常、様々なシステム上の制約のために性能が制限される
か、またはコストが高いという問題がある。
【0004】3次元グラフィックスを表示するアプリケ
ーションは、ものすごい量の処理能力を必要とする。例
えば、コンピュータ・システムが滑らかな3次元動画を
生成する場合、コンピュータ・システムは、毎秒20〜
30個フレームというフレーム速度または更新速度を維
持する必要がある。このため、毎秒百万個以上の三角形
を処理することができる3次元コンピュータ・グラフィ
ックス・アクセラレータが必要となる。
ーションは、ものすごい量の処理能力を必要とする。例
えば、コンピュータ・システムが滑らかな3次元動画を
生成する場合、コンピュータ・システムは、毎秒20〜
30個フレームというフレーム速度または更新速度を維
持する必要がある。このため、毎秒百万個以上の三角形
を処理することができる3次元コンピュータ・グラフィ
ックス・アクセラレータが必要となる。
【0005】一般に、3次元コンピュータ・グラフィッ
クス・アクセラレータには、性能を制限する主要な3つ
の欠点があった。第1の欠点は、形状レンダリング・プ
リミティブ、例えば、線および三角形をホスト・コンピ
ュータ上の主システム・メモリからグラフィックス・ア
クセラレータに転送する要件である。ホスト・プロセッ
サ・メモリ・システムの動作およびデータがその上で転
送されるシステム・バスの動作は、これらの形状レンダ
リング・プリミティブのホスト・メモリから3次元アク
セラレータへの転送速度を制限する。第2の欠点は、ア
クセラレータ内での変換、ライティング、セットアップ
などを含む頂点処理要件である。第3の欠点は、プリミ
ティブからのピクセルがフレーム・バッファ内に充填さ
れる速度である。
クス・アクセラレータには、性能を制限する主要な3つ
の欠点があった。第1の欠点は、形状レンダリング・プ
リミティブ、例えば、線および三角形をホスト・コンピ
ュータ上の主システム・メモリからグラフィックス・ア
クセラレータに転送する要件である。ホスト・プロセッ
サ・メモリ・システムの動作およびデータがその上で転
送されるシステム・バスの動作は、これらの形状レンダ
リング・プリミティブのホスト・メモリから3次元アク
セラレータへの転送速度を制限する。第2の欠点は、ア
クセラレータ内での変換、ライティング、セットアップ
などを含む頂点処理要件である。第3の欠点は、プリミ
ティブからのピクセルがフレーム・バッファ内に充填さ
れる速度である。
【0006】より高性能の3次元グラフィックス・アー
キテクチャを構築するためには、上記3つの領域すべて
のスループットが向上しなければならない。上述のよう
に、3次元グラフィックス・アーキテクチャの主要な欠
点の1つは、事実上、プリミティブからのピクセルがフ
レーム・バッファ・メモリ内に充填される速度であっ
た。システムは、事実上、より高いスループットを達成
しようとして、デュアル・ポート・ビデオRAM(VR
AM)またはインタリーブDRAMを使用していた。3
DRAMと呼ばれる新しいタイプのビデオ・メモリによ
れば、ピクセル・スループット・レートが一桁上がる。
グラフィックス・アクセラレータ・システム内で3DR
AMを使用すれば、プリミティブからのピクセルがフレ
ーム・バッファ内に充填される充填速度は3次元レンダ
リングの欠点でなくなる。3DRAMを使用した場合、
性能の欠点は、一般に、頂点の処理を含めて、形状デー
タのシステム・バス上での転送速度または3次元グラフ
ィックス・アクセラレータ処理を含んでいる。したがっ
て、高い性能が得られる新しい3次元グラフィックス・
アクセラレータ・アーキテクチャが必要である。
キテクチャを構築するためには、上記3つの領域すべて
のスループットが向上しなければならない。上述のよう
に、3次元グラフィックス・アーキテクチャの主要な欠
点の1つは、事実上、プリミティブからのピクセルがフ
レーム・バッファ・メモリ内に充填される速度であっ
た。システムは、事実上、より高いスループットを達成
しようとして、デュアル・ポート・ビデオRAM(VR
AM)またはインタリーブDRAMを使用していた。3
DRAMと呼ばれる新しいタイプのビデオ・メモリによ
れば、ピクセル・スループット・レートが一桁上がる。
グラフィックス・アクセラレータ・システム内で3DR
AMを使用すれば、プリミティブからのピクセルがフレ
ーム・バッファ内に充填される充填速度は3次元レンダ
リングの欠点でなくなる。3DRAMを使用した場合、
性能の欠点は、一般に、頂点の処理を含めて、形状デー
タのシステム・バス上での転送速度または3次元グラフ
ィックス・アクセラレータ処理を含んでいる。したがっ
て、高い性能が得られる新しい3次元グラフィックス・
アクセラレータ・アーキテクチャが必要である。
【0007】Sun Microsystems社に譲
渡されたDeeringの米国特許第5408605号
には、従来技術による3次元グラフィックス・アクセラ
レータ用のコマンド・プリプロセッサが開示されてい
る。図示のように、この従来技術の3次元グラフィック
ス・アーキテクチャは、1つまたは複数の浮動小数点プ
ロセッサに結合されたコマンド・プリプロセッサを含ん
でいる。各浮動小数点プロセッサは、複数のドロー・プ
ロセッサに結合される。
渡されたDeeringの米国特許第5408605号
には、従来技術による3次元グラフィックス・アクセラ
レータ用のコマンド・プリプロセッサが開示されてい
る。図示のように、この従来技術の3次元グラフィック
ス・アーキテクチャは、1つまたは複数の浮動小数点プ
ロセッサに結合されたコマンド・プリプロセッサを含ん
でいる。各浮動小数点プロセッサは、複数のドロー・プ
ロセッサに結合される。
【0008】
【発明が解決しようとする課題】このシステムでは、コ
ンピュータ・システム・メモリは、大量の形状データを
3次元グラフィックス・アクセラレータ内のコマンド・
プロセッサに送る必要がある。上述のように、ホスト・
プロセッサ・メモリ・システムおよびデータがその上で
転送されるシステム・バスの動作は、ホスト・メモリか
ら3次元グラフィックス・アクセラレータの形状データ
転送速度を制限する。したがって、改善された形状デー
タ転送機能を含む改善された3次元グラフィックス・ア
クセラレータが必要である。
ンピュータ・システム・メモリは、大量の形状データを
3次元グラフィックス・アクセラレータ内のコマンド・
プロセッサに送る必要がある。上述のように、ホスト・
プロセッサ・メモリ・システムおよびデータがその上で
転送されるシステム・バスの動作は、ホスト・メモリか
ら3次元グラフィックス・アクセラレータの形状データ
転送速度を制限する。したがって、改善された形状デー
タ転送機能を含む改善された3次元グラフィックス・ア
クセラレータが必要である。
【0009】
【課題を解決するための手段】本発明は、従来技術の設
計に勝る改善された性能を含むコンピュータ・システム
用の3次元グラフィックス・アクセラレータを含む。本
3次元グラフィックス・アクセラレータは、コンピュー
タ・システム内のシステム・バスに結合され、システム
・メモリから圧縮された形状データを受け取る。3次元
グラフィックス・アクセラレータは、コマンド・ブロッ
クまたはプリプロセッサ、複数の浮動小数点プロセッサ
またはブロック、および1つまたは複数のドロー・プロ
セッサまたはブロックを含んでいる。コマンド・プロセ
ッサは、圧縮されていない形状データを送る第1のデー
タ・パス、および圧縮された形状データを受け取り、圧
縮された形状データを圧縮解除する第2のデータ・パス
を含んでいる。
計に勝る改善された性能を含むコンピュータ・システム
用の3次元グラフィックス・アクセラレータを含む。本
3次元グラフィックス・アクセラレータは、コンピュー
タ・システム内のシステム・バスに結合され、システム
・メモリから圧縮された形状データを受け取る。3次元
グラフィックス・アクセラレータは、コマンド・ブロッ
クまたはプリプロセッサ、複数の浮動小数点プロセッサ
またはブロック、および1つまたは複数のドロー・プロ
セッサまたはブロックを含んでいる。コマンド・プロセ
ッサは、圧縮されていない形状データを送る第1のデー
タ・パス、および圧縮された形状データを受け取り、圧
縮された形状データを圧縮解除する第2のデータ・パス
を含んでいる。
【0010】好ましい実施態様では、コマンド・プロセ
ッサは、1つまたは複数の入力バッファ、形状圧縮解除
ユニット、およびマルチプレクサ論理回路を含んでい
る。入力バッファは、システム・バスに結合され、形状
入力データを受け取る。形状入力データは、圧縮された
形状入力データおよび圧縮されていない形状入力データ
を含んでいる。形状圧縮解除ユニットは、入力バッファ
の出力に結合され、圧縮された形状入力データを受け取
り、圧縮解除する。マルチプレクサは、入力バッファか
ら圧縮されていない出力を受け取り、形状圧縮解除ユニ
ットから圧縮解除された出力を受け取る。マルチプレク
サは、圧縮されていない形状データまたは圧縮解除され
た形状入力を選択的に与える出力を含んでいる。
ッサは、1つまたは複数の入力バッファ、形状圧縮解除
ユニット、およびマルチプレクサ論理回路を含んでい
る。入力バッファは、システム・バスに結合され、形状
入力データを受け取る。形状入力データは、圧縮された
形状入力データおよび圧縮されていない形状入力データ
を含んでいる。形状圧縮解除ユニットは、入力バッファ
の出力に結合され、圧縮された形状入力データを受け取
り、圧縮解除する。マルチプレクサは、入力バッファか
ら圧縮されていない出力を受け取り、形状圧縮解除ユニ
ットから圧縮解除された出力を受け取る。マルチプレク
サは、圧縮されていない形状データまたは圧縮解除され
た形状入力を選択的に与える出力を含んでいる。
【0011】コマンド・プロセッサは、受け取ったデー
タを1つまたは複数のタイプのフォーマットに変換する
ように動作するマルチプレクサの出力を受け取るように
結合されたフォーマット変換器を含んでいる。フォーマ
ット変換器は、1つまたは複数の頂点に必要な複数の形
状入力データを記憶する頂点累積バッファに出力を供給
する。頂点累積バッファは、形状プリミティブを構成す
るために使用される頂点バッファに出力を供給する。コ
マンド・プロセッサはまた、マルチプレクサの出力に結
合され、非形状データを受け取る収集バッファを含んで
いる。収集バッファおよび頂点バッファはそれぞれ、出
力バッファに出力を供給する。
タを1つまたは複数のタイプのフォーマットに変換する
ように動作するマルチプレクサの出力を受け取るように
結合されたフォーマット変換器を含んでいる。フォーマ
ット変換器は、1つまたは複数の頂点に必要な複数の形
状入力データを記憶する頂点累積バッファに出力を供給
する。頂点累積バッファは、形状プリミティブを構成す
るために使用される頂点バッファに出力を供給する。コ
マンド・プロセッサはまた、マルチプレクサの出力に結
合され、非形状データを受け取る収集バッファを含んで
いる。収集バッファおよび頂点バッファはそれぞれ、出
力バッファに出力を供給する。
【0012】添付の図面を見ながら好ましい実施形態の
以下の詳細な説明を読めば、本発明をよりよく理解する
ことができよう。
以下の詳細な説明を読めば、本発明をよりよく理解する
ことができよう。
【0013】
【発明の実施の形態】 図1 コンピュータ・システム 次に、図1を参照すると、本発明による3次元(3D)
グラフィックス・アクセラレータを含むコンピュータ・
システム80が示されている。図示のように、コンピュ
ータ・システム80は、システム・ユニット82および
システム・ユニット82に結合されたビデオ・モニタま
たはディスプレイ装置84を含んでいる。ディスプレイ
装置84は、様々なタイプのディスプレイ・モニタまた
はディスプレイ装置のいずれでもよい。キーボード86
およびマウス88または他の入力装置を含めて、様々な
入力デバイスがコンピュータ・システムに接続される。
コンピュータ・システム80は、フロッピ・ディスク9
0によって示されるアプリケーション・ソフトウェアを
実施して、3次元グラフィカル・オブジェクトをビデオ
・モニタ84上に表示させる。以下で詳細に説明するよ
うに、コンピュータ・システム80内の3次元グラフィ
ックス・アクセラレータは、改善された性能を有する3
次元グラフィカル・オブジェクトの表示を可能にする。
グラフィックス・アクセラレータを含むコンピュータ・
システム80が示されている。図示のように、コンピュ
ータ・システム80は、システム・ユニット82および
システム・ユニット82に結合されたビデオ・モニタま
たはディスプレイ装置84を含んでいる。ディスプレイ
装置84は、様々なタイプのディスプレイ・モニタまた
はディスプレイ装置のいずれでもよい。キーボード86
およびマウス88または他の入力装置を含めて、様々な
入力デバイスがコンピュータ・システムに接続される。
コンピュータ・システム80は、フロッピ・ディスク9
0によって示されるアプリケーション・ソフトウェアを
実施して、3次元グラフィカル・オブジェクトをビデオ
・モニタ84上に表示させる。以下で詳細に説明するよ
うに、コンピュータ・システム80内の3次元グラフィ
ックス・アクセラレータは、改善された性能を有する3
次元グラフィカル・オブジェクトの表示を可能にする。
【0014】図2 コンピュータ・システムのブロック
図 次に、図2を参照すると、図1のコンピュータ・システ
ムを示す簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュータ・システム
の要素は便宜上示されていない。図示のように、コンピ
ュータ・システム80は、高速バスまたはシステム・バ
ス104に結合された中央演算処理装置(CPU)10
2を含んでいる。また、システム・メモリ106が高速
バス104に結合されることが好ましい。
図 次に、図2を参照すると、図1のコンピュータ・システ
ムを示す簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュータ・システム
の要素は便宜上示されていない。図示のように、コンピ
ュータ・システム80は、高速バスまたはシステム・バ
ス104に結合された中央演算処理装置(CPU)10
2を含んでいる。また、システム・メモリ106が高速
バス104に結合されることが好ましい。
【0015】ホスト・プロセッサ102は、様々なタイ
プのコンピュータ・プロセッサ、マルチプロセッサおよ
びCPUのいずれでもよい。システム・メモリ106
は、ランダム・アクセス・メモリおよび大容量記憶装置
を含めて、様々なタイプのメモリ・サブシステムのいず
れでもよい。システム・バスまたはホスト・バス104
は、ホスト・プロセッサ、CPU、およびメモリ・サブ
システム、ならびに特殊サブシステム間の通信を行う様
々なタイプの通信バスまたはホスト・コンピュータ・バ
スのいずれでもよい。好ましい実施形態では、ホスト・
バス104は、83MHzにおいて動作する64ビット
・バスであるUPAバスである。
プのコンピュータ・プロセッサ、マルチプロセッサおよ
びCPUのいずれでもよい。システム・メモリ106
は、ランダム・アクセス・メモリおよび大容量記憶装置
を含めて、様々なタイプのメモリ・サブシステムのいず
れでもよい。システム・バスまたはホスト・バス104
は、ホスト・プロセッサ、CPU、およびメモリ・サブ
システム、ならびに特殊サブシステム間の通信を行う様
々なタイプの通信バスまたはホスト・コンピュータ・バ
スのいずれでもよい。好ましい実施形態では、ホスト・
バス104は、83MHzにおいて動作する64ビット
・バスであるUPAバスである。
【0016】本発明による3次元グラフィックス・アク
セラレータ112は、高速メモリ・バス104に結合さ
れる。3次元グラフィックス・アクセラレータ112
は、例えばクロス・バー・スイッチまたは他のバス接続
論理回路によってバス104に結合される。当技術分野
において周知のように、他の様々な周辺装置または他の
バスを高速メモリ・バス104に接続することができる
と仮定してある。図示のように、ビデオ・メモリまたは
ディスプレイ装置84は、3次元グラフィックス・アク
セラレータ112に接続される。
セラレータ112は、高速メモリ・バス104に結合さ
れる。3次元グラフィックス・アクセラレータ112
は、例えばクロス・バー・スイッチまたは他のバス接続
論理回路によってバス104に結合される。当技術分野
において周知のように、他の様々な周辺装置または他の
バスを高速メモリ・バス104に接続することができる
と仮定してある。図示のように、ビデオ・メモリまたは
ディスプレイ装置84は、3次元グラフィックス・アク
セラレータ112に接続される。
【0017】ホスト・プロセッサ102は、ホスト・バ
ス104を介してプログラム入出力(I/O)プロトコ
ルに従ってグラフィックス・アクセラレータ112との
間で情報を転送する。好ましい実施形態では、CPUコ
ピー(bコピー)コマンドを使用して、システム・メモ
リ106からグラフィックス・アクセラレータ112へ
データを転送する。他の実施形態では、グラフィックス
・アクセラレータ112は、直接メモリ・アクセス(D
MA)プロトコルに従ってメモリ・サブシステム106
にアクセスする。
ス104を介してプログラム入出力(I/O)プロトコ
ルに従ってグラフィックス・アクセラレータ112との
間で情報を転送する。好ましい実施形態では、CPUコ
ピー(bコピー)コマンドを使用して、システム・メモ
リ106からグラフィックス・アクセラレータ112へ
データを転送する。他の実施形態では、グラフィックス
・アクセラレータ112は、直接メモリ・アクセス(D
MA)プロトコルに従ってメモリ・サブシステム106
にアクセスする。
【0018】ホスト・プロセッサ102上で動作してい
るグラフィックス・アプリケーション・プログラムは、
ディスプレイ装置84上に表示べき画像を規定する3次
元形状情報を含む形状データ・アレイを生成する。ホス
ト・プロセッサ102は、形状データ・アレイをメモリ
・サブシステム106に転送する。その後、ホスト・プ
ロセッサ102は、好ましくはbコピー・コマンドを使
用して、ホスト・バス104を介してデータをグラフィ
ックス・アクセラレータ112に転送する。あるいは、
グラフィックス・アクセラレータ112は、DMAアク
セス・サイクルを使用して、ホスト・バス104を介し
て形状データ・アレイの読取りを行う。他の実施形態で
は、グラフィックス・アクセラレータ112は、Int
el社が普及させたアドバンス・グラフィックス・ポー
ト(AGP)など、直接ポートを介してメモリ・サブシ
ステム106に結合される。
るグラフィックス・アプリケーション・プログラムは、
ディスプレイ装置84上に表示べき画像を規定する3次
元形状情報を含む形状データ・アレイを生成する。ホス
ト・プロセッサ102は、形状データ・アレイをメモリ
・サブシステム106に転送する。その後、ホスト・プ
ロセッサ102は、好ましくはbコピー・コマンドを使
用して、ホスト・バス104を介してデータをグラフィ
ックス・アクセラレータ112に転送する。あるいは、
グラフィックス・アクセラレータ112は、DMAアク
セス・サイクルを使用して、ホスト・バス104を介し
て形状データ・アレイの読取りを行う。他の実施形態で
は、グラフィックス・アクセラレータ112は、Int
el社が普及させたアドバンス・グラフィックス・ポー
ト(AGP)など、直接ポートを介してメモリ・サブシ
ステム106に結合される。
【0019】形状データ・アレイ内の3次元形状情報
は、頂点座標(頂点)、頂点位置、および通常モデル空
間と呼ばれる3次元空間内で三角形、ベクトルおよび点
を定義する他の情報を含む入力頂点パケットのストリー
ムを含んでいる。各入力頂点パケットは、頂点位置、頂
点法線、頂点カラー、ファセット法線、ファセット・カ
ラー、テクスチャ・マップ座標、ピックID、ヘッダ、
および他の情報を含めて、3次元頂点情報の任意の組合
せを含んでいる。
は、頂点座標(頂点)、頂点位置、および通常モデル空
間と呼ばれる3次元空間内で三角形、ベクトルおよび点
を定義する他の情報を含む入力頂点パケットのストリー
ムを含んでいる。各入力頂点パケットは、頂点位置、頂
点法線、頂点カラー、ファセット法線、ファセット・カ
ラー、テクスチャ・マップ座標、ピックID、ヘッダ、
および他の情報を含めて、3次元頂点情報の任意の組合
せを含んでいる。
【0020】図3 グラフィックス・アクセラレータ 次に、図3を参照すると、本発明の好ましい実施形態に
よる3次元グラフィックス・アクセラレータ112を示
すブロック図が示されている。図4は、3次元グラフィ
ックス・アクセラレータ112の一部を示すより詳細な
図である。図示のように、3次元グラフィックス・アク
セラレータ112は、主として、コマンド・プリプロセ
ッサまたはコマンド・ブロック142、一組の浮動小数
点プロセッサまたは浮動小数点ブロック152Aないし
152F、一組のドロー・プロセッサまたはドロー・ブ
ロック172Aおよび172B、3DRAMから構成さ
れたフレーム・バッファ、およびランダム・アクセス・
メモリ/デジタルアナログ変換器(RAMDAC)19
6から構成される。
よる3次元グラフィックス・アクセラレータ112を示
すブロック図が示されている。図4は、3次元グラフィ
ックス・アクセラレータ112の一部を示すより詳細な
図である。図示のように、3次元グラフィックス・アク
セラレータ112は、主として、コマンド・プリプロセ
ッサまたはコマンド・ブロック142、一組の浮動小数
点プロセッサまたは浮動小数点ブロック152Aないし
152F、一組のドロー・プロセッサまたはドロー・ブ
ロック172Aおよび172B、3DRAMから構成さ
れたフレーム・バッファ、およびランダム・アクセス・
メモリ/デジタルアナログ変換器(RAMDAC)19
6から構成される。
【0021】図示のように、3次元グラフィックス・ア
クセラレータ112は、ホスト・バス104にインタフ
ェースするコマンド・ブロック142を含んでいる。コ
マンド・ブロック142は、グラフィックス・アクセラ
レータ112をホスト・バス104にインタフェース
し、グラフィックス・アクセラレータ112内で他のブ
ロックまたはチップ間のデータの転送を制御する。コマ
ンド・ブロック142はまた、以下で詳細に説明するよ
うに、三角形およびベクトル・データを事前処理し、形
状データ圧縮解除を実施する。
クセラレータ112は、ホスト・バス104にインタフ
ェースするコマンド・ブロック142を含んでいる。コ
マンド・ブロック142は、グラフィックス・アクセラ
レータ112をホスト・バス104にインタフェース
し、グラフィックス・アクセラレータ112内で他のブ
ロックまたはチップ間のデータの転送を制御する。コマ
ンド・ブロック142はまた、以下で詳細に説明するよ
うに、三角形およびベクトル・データを事前処理し、形
状データ圧縮解除を実施する。
【0022】コマンド・ブロック142は、複数の浮動
小数点ブロック152にインタフェースする。3次元グ
ラフィックス・アクセラレータ112は、図示のように
最大6つの浮動小数点ブロック152Aないし152F
を含んでいることが好ましい。浮動小数点ブロック15
2Aないし152Fは、ハイ・レベル・ドロー・コマン
ドを受け取り、3次元オブジェクトをスクリーン上にレ
ンダリングすべき三角形や線などグラフィックス・プリ
ミティブを生成する。浮動小数点ブロック152Aない
し152Fは、受け取った形状データに対して、変換、
クリッピング、ライティングおよびセットアップなどの
諸操作を実施する。各浮動小数点ブロック152Aない
し152Fは、それぞれのメモリ153Aないし153
Fに接続される。メモリ153Aないし153Fは、3
2k×36ビットSRAMが好ましく、マイクロコード
およびデータ記憶に使用される。
小数点ブロック152にインタフェースする。3次元グ
ラフィックス・アクセラレータ112は、図示のように
最大6つの浮動小数点ブロック152Aないし152F
を含んでいることが好ましい。浮動小数点ブロック15
2Aないし152Fは、ハイ・レベル・ドロー・コマン
ドを受け取り、3次元オブジェクトをスクリーン上にレ
ンダリングすべき三角形や線などグラフィックス・プリ
ミティブを生成する。浮動小数点ブロック152Aない
し152Fは、受け取った形状データに対して、変換、
クリッピング、ライティングおよびセットアップなどの
諸操作を実施する。各浮動小数点ブロック152Aない
し152Fは、それぞれのメモリ153Aないし153
Fに接続される。メモリ153Aないし153Fは、3
2k×36ビットSRAMが好ましく、マイクロコード
およびデータ記憶に使用される。
【0023】コマンド・ブロック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つのバス間で同期している。
点間バスまたは直接データ・チャネル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つのバス間で同期している。
【0024】以下で詳細に説明するように、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へ迅速に送る。
また、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へ迅速に送る。
【0025】図示のように、コマンド・ブロック142
は、各チャネル154Aないし154Fに対応する別個
のFIFOバッファ144Aないし144Fを含んでい
る。これらのFIFOバッファ144を使用して、デー
タを記憶またはバッファし、その後データをそれぞれの
チャネル154Aないし154F上でそれぞれの浮動小
数点ブロック152Aないし152Fに転送する。図示
のように、各浮動小数点ブロック152Aないし152
Fは、それぞれのチャネル154Aないし154Fから
データを受け取るために結合されたそれぞれの入力FI
FOバッファ155Aないし155Fを含んでいる。
は、各チャネル154Aないし154Fに対応する別個
のFIFOバッファ144Aないし144Fを含んでい
る。これらのFIFOバッファ144を使用して、デー
タを記憶またはバッファし、その後データをそれぞれの
チャネル154Aないし154F上でそれぞれの浮動小
数点ブロック152Aないし152Fに転送する。図示
のように、各浮動小数点ブロック152Aないし152
Fは、それぞれのチャネル154Aないし154Fから
データを受け取るために結合されたそれぞれの入力FI
FOバッファ155Aないし155Fを含んでいる。
【0026】各浮動小数点ブロック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内に同時にレンダリングす
る。
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内に同時にレンダリングす
る。
【0027】各浮動小数点ブロック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ビット・バ
スである。
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ビット・バ
スである。
【0028】したがって、グラフィックス・アクセラレ
ータ112は、各浮動小数点ブロック152Aないし1
52Fから各ドロー・プロセッサ172Aおよび172
Bへの独立のパスを形成する二組の6つの11ビット・
バスを含んでいる。直接データ・チャネル154Aない
し154Fは、集合的に48ビットを含んでおり、また
直接データ・チャネル162Aないし162Fおよび1
64Aないし164Fは、集合的にFDバス(フロート
/ドロー・バス)と呼ばれる。
ータ112は、各浮動小数点ブロック152Aないし1
52Fから各ドロー・プロセッサ172Aおよび172
Bへの独立のパスを形成する二組の6つの11ビット・
バスを含んでいる。直接データ・チャネル154Aない
し154Fは、集合的に48ビットを含んでおり、また
直接データ・チャネル162Aないし162Fおよび1
64Aないし164Fは、集合的にFDバス(フロート
/ドロー・バス)と呼ばれる。
【0029】各浮動小数点ブロック152Aないし15
2Fは、同じデータを2つのドロー・ブロック172A
および172Bに同報通信するように動作することが好
ましい。言い換えれば、同じデータが常に、各浮動小数
点ブロック152から来るデータ線の両方の組上にあ
る。したがって、浮動小数点ブロック152Aがデータ
を転送する場合、浮動小数点ブロック152Aは、同じ
データを両方のチャネル162Aおよび164Aを介し
てドロー・プロセッサ172Aおよび172Bに転送す
る。
2Fは、同じデータを2つのドロー・ブロック172A
および172Bに同報通信するように動作することが好
ましい。言い換えれば、同じデータが常に、各浮動小数
点ブロック152から来るデータ線の両方の組上にあ
る。したがって、浮動小数点ブロック152Aがデータ
を転送する場合、浮動小数点ブロック152Aは、同じ
データを両方のチャネル162Aおよび164Aを介し
てドロー・プロセッサ172Aおよび172Bに転送す
る。
【0030】データは、3つのサイクルを使用してFD
バス上で一度に32ビット転送され、別個の6つのバス
間は同期していない。各転送の33番目のビットは、制
御ビットであり、転送されているプリミティブの最後の
ワードを示す1にセットされる。場合によっては、上述
のように、3つの浮動小数点ブロック152Aないし1
52Cからの出力は、33ビット(32データ、1制
御)CDバス・サイクル用に「借用」される。
バス上で一度に32ビット転送され、別個の6つのバス
間は同期していない。各転送の33番目のビットは、制
御ビットであり、転送されているプリミティブの最後の
ワードを示す1にセットされる。場合によっては、上述
のように、3つの浮動小数点ブロック152Aないし1
52Cからの出力は、33ビット(32データ、1制
御)CDバス・サイクル用に「借用」される。
【0031】図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(図示せず)を含んでいる。
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(図示せず)を含んでいる。
【0032】グラフィックス・アクセラレータ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により明確に示されている。
は、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により明確に示されている。
【0033】各ドロー・ブロック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次元オブジェクトに対応するピクセルを記憶する。
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次元オブジェクトに対応するピクセルを記憶する。
【0034】各3DRAMメモリ192Aおよび192
Bおよび194Aおよび194Bは、RAMDAC(ラ
ンダム・アクセス・メモリ・デジタルアナログ変換器)
196に結合される。RAMDAC196は、クロス・
バー機能とともに、プログラマブル・ビデオ・タイミン
グ発生器およびプログラマブル・ピクセル・クロック合
成器、ならびに従来のカラー・ルックアップ・テーブル
およびトリプル・ビデオDAC回路を含んでいる。RA
MDACは、ビデオ・モニタ84に結合される。
Bおよび194Aおよび194Bは、RAMDAC(ラ
ンダム・アクセス・メモリ・デジタルアナログ変換器)
196に結合される。RAMDAC196は、クロス・
バー機能とともに、プログラマブル・ビデオ・タイミン
グ発生器およびプログラマブル・ピクセル・クロック合
成器、ならびに従来のカラー・ルックアップ・テーブル
およびトリプル・ビデオDAC回路を含んでいる。RA
MDACは、ビデオ・モニタ84に結合される。
【0035】グラフィックス・アクセラレータ112
は、コマンド・ブロック142およびRAMDAC19
6を接続するCMバスと呼ばれる双方向バス195をさ
らに含んでいる。図示のように、ブートPROM197
およびオーディオ・ブロック198がCMバス195に
結合される。CMバス195は、25MHzにおいて動
作することが好ましい。
は、コマンド・ブロック142およびRAMDAC19
6を接続するCMバスと呼ばれる双方向バス195をさ
らに含んでいる。図示のように、ブートPROM197
およびオーディオ・ブロック198がCMバス195に
結合される。CMバス195は、25MHzにおいて動
作することが好ましい。
【0036】コマンド・ブロックは、単一のチップとし
て実施することが好ましい。各「浮動小数点ブロック」
152は、別個のチップとして実施することが好まし
い。好ましい実施形態では、最大6つの浮動小数点ブロ
ックまたはチップ152Aないし152Fが含まれる。
また、各ドロー・ブロックまたはプロセッサ172Aお
よび172Bは、別個のチップを含んでいることが好ま
しい。
て実施することが好ましい。各「浮動小数点ブロック」
152は、別個のチップとして実施することが好まし
い。好ましい実施形態では、最大6つの浮動小数点ブロ
ックまたはチップ152Aないし152Fが含まれる。
また、各ドロー・ブロックまたはプロセッサ172Aお
よび172Bは、別個のチップを含んでいることが好ま
しい。
【0037】直接データ・チャネル 上述のように、本発明の3次元グラフィックス・アクセ
ラレータ・アーキテクチャは、コマンド・ブロック14
2と各浮動小数点ブロック152Aないし152Fとの
間の複数の直接チャネル、ならびに各浮動小数点ブロッ
ク152Aないし152Fとそれぞれのドロー・ブロッ
ク172Aおよび172Bとの間の複数の直接チャネル
を含んでいる。
ラレータ・アーキテクチャは、コマンド・ブロック14
2と各浮動小数点ブロック152Aないし152Fとの
間の複数の直接チャネル、ならびに各浮動小数点ブロッ
ク152Aないし152Fとそれぞれのドロー・ブロッ
ク172Aおよび172Bとの間の複数の直接チャネル
を含んでいる。
【0038】従来の技術のセクションで説明したよう
に、従来技術のアーキテクチャは、これらの要素を接続
する共通バスを含んでいた。したがって、コマンド・ブ
ロック142は、一般に、個別のデータをラウンド・ロ
ビン方式で各浮動小数点ブロック152Aないし152
Fに送るように動作する。言い換えれば、コマンド論理
142は、一般に、浮動小数点ブロック152Aなどた
だ1つの浮動小数点ブロック152へのデータのバース
ト転送を実施し、次いで浮動小数点ブロック152Bな
ど他の浮動小数点ブロックへのバースト・データ転送を
実施する。このデータ転送のバースト性質はまた、各浮
動小数点ブロック152Aないし152Fと2つのドロ
ー・ブロック172Aおよび172Bとの間に現れる。
言い換えれば、各浮動小数点ブロック152Aないし1
52Fは、一般に、各ドロー・ブロック172Aおよび
172Bへの個別のバースト・データ転送をそれぞれ実
施する。
に、従来技術のアーキテクチャは、これらの要素を接続
する共通バスを含んでいた。したがって、コマンド・ブ
ロック142は、一般に、個別のデータをラウンド・ロ
ビン方式で各浮動小数点ブロック152Aないし152
Fに送るように動作する。言い換えれば、コマンド論理
142は、一般に、浮動小数点ブロック152Aなどた
だ1つの浮動小数点ブロック152へのデータのバース
ト転送を実施し、次いで浮動小数点ブロック152Bな
ど他の浮動小数点ブロックへのバースト・データ転送を
実施する。このデータ転送のバースト性質はまた、各浮
動小数点ブロック152Aないし152Fと2つのドロ
ー・ブロック172Aおよび172Bとの間に現れる。
言い換えれば、各浮動小数点ブロック152Aないし1
52Fは、一般に、各ドロー・ブロック172Aおよび
172Bへの個別のバースト・データ転送をそれぞれ実
施する。
【0039】複数の直接データ・チャネルまたは2地点
間バスは、コマンド・ブロック142と各浮動小数点ブ
ロック152Aないし152Fとの間のバースト・デー
タ転送を実施する。複数の直接データ・チャネルまたは
2地点間バスはまた、各浮動小数点ブロック152Aな
いし152Fとドロー・プロセッサ172Aおよび17
2Bとの間のバースト・データ転送を実施する。共用バ
スの代わりに直接データ・パスを使用することにより、
多数のより小さいデータ・パス、例えば8ビット・デー
タ・パスが使用できるようになり、同時に従来技術の設
計と同じ帯域幅が得られる。また、これらのより小さい
直接データ・パスを使用することにより、グラフィカル
・アーキテクチャの電気的特性が改善される。まず、コ
マンド・チップ上の直接データ・チャネルの出力ピン
は、共用バス・アーキテクチャにおける複数のデバイス
を駆動する場合と異なり、単一のデバイスを駆動するた
めにのみ必要である。また、各浮動小数点プロセッサ1
52Aないし152Fのピンは、それぞれ8ビット・バ
スに接続されるだけであるので、数が少なくなってい
る。さらに、直接データ・パスによれば、複数のボード
間の接続性が改善される。また、電気的特性が改善され
るために、クロック速度がより速くなり、したがって広
い転送帯域幅が得られる。
間バスは、コマンド・ブロック142と各浮動小数点ブ
ロック152Aないし152Fとの間のバースト・デー
タ転送を実施する。複数の直接データ・チャネルまたは
2地点間バスはまた、各浮動小数点ブロック152Aな
いし152Fとドロー・プロセッサ172Aおよび17
2Bとの間のバースト・データ転送を実施する。共用バ
スの代わりに直接データ・パスを使用することにより、
多数のより小さいデータ・パス、例えば8ビット・デー
タ・パスが使用できるようになり、同時に従来技術の設
計と同じ帯域幅が得られる。また、これらのより小さい
直接データ・パスを使用することにより、グラフィカル
・アーキテクチャの電気的特性が改善される。まず、コ
マンド・チップ上の直接データ・チャネルの出力ピン
は、共用バス・アーキテクチャにおける複数のデバイス
を駆動する場合と異なり、単一のデバイスを駆動するた
めにのみ必要である。また、各浮動小数点プロセッサ1
52Aないし152Fのピンは、それぞれ8ビット・バ
スに接続されるだけであるので、数が少なくなってい
る。さらに、直接データ・パスによれば、複数のボード
間の接続性が改善される。また、電気的特性が改善され
るために、クロック速度がより速くなり、したがって広
い転送帯域幅が得られる。
【0040】場合によっては、コマンド・ブロック14
2は、同じデータを各浮動小数点ブロック152Aない
し152Fに送る必要がある。例えば、コマンド・ブロ
ック142がマトリックス・データを送り、その後複数
の三角形データを送る必要があり、かつ後続の各三角形
がマトリックス・データを使用する必要がある場合、マ
トリックス・データをまず各浮動小数点ブロック152
Aないし152Fに転送し、その後、後続のいずれかの
三角形のをそれぞれの浮動小数点ユニットのいずれかに
送る。言い換えれば、浮動小数点ブロック152は、三
角形を処理する必要があるそれぞれのマトリックスがす
でに受け取られるまで、これらの後続の1つの三角形を
受け取ることを許されない。
2は、同じデータを各浮動小数点ブロック152Aない
し152Fに送る必要がある。例えば、コマンド・ブロ
ック142がマトリックス・データを送り、その後複数
の三角形データを送る必要があり、かつ後続の各三角形
がマトリックス・データを使用する必要がある場合、マ
トリックス・データをまず各浮動小数点ブロック152
Aないし152Fに転送し、その後、後続のいずれかの
三角形のをそれぞれの浮動小数点ユニットのいずれかに
送る。言い換えれば、浮動小数点ブロック152は、三
角形を処理する必要があるそれぞれのマトリックスがす
でに受け取られるまで、これらの後続の1つの三角形を
受け取ることを許されない。
【0041】コマンド・ブロック142が各浮動小数点
ブロック152Aないし152Fに同じデータを送る必
要がある場合、コマンド・ブロック142は、すべての
FIFO144Aないし144Fが空になるのを待つ
か、またはこの共通転送が行われるためにそれぞれのF
IFO内に十分な空きができるまで待つ必要がある。し
たがって、コマンド・ブロック142が各浮動小数点ブ
ロック152Aないし152Fに同じデータを送る必要
がある場合、すなわちデータを並列に同報通信する必要
がある場合、コマンド・ブロック142は、各FIFO
144Aないし144FがそれらのFIFO内に十分な
空きができるまで待つ必要があり、FIFO144Aな
いし144Fのそれぞれに同じデータを転送する必要が
ある。この同報通信転送は、共通バスを使用する従来技
術のシステムよりも低い転送速度において行われること
に留意されたい。しかしながら、これらの共通転送は、
一般にまれであり、システムの性能に悪影響を及ぼすこ
とはない。
ブロック152Aないし152Fに同じデータを送る必
要がある場合、コマンド・ブロック142は、すべての
FIFO144Aないし144Fが空になるのを待つ
か、またはこの共通転送が行われるためにそれぞれのF
IFO内に十分な空きができるまで待つ必要がある。し
たがって、コマンド・ブロック142が各浮動小数点ブ
ロック152Aないし152Fに同じデータを送る必要
がある場合、すなわちデータを並列に同報通信する必要
がある場合、コマンド・ブロック142は、各FIFO
144Aないし144FがそれらのFIFO内に十分な
空きができるまで待つ必要があり、FIFO144Aな
いし144Fのそれぞれに同じデータを転送する必要が
ある。この同報通信転送は、共通バスを使用する従来技
術のシステムよりも低い転送速度において行われること
に留意されたい。しかしながら、これらの共通転送は、
一般にまれであり、システムの性能に悪影響を及ぼすこ
とはない。
【0042】浮動小数点ブロック152Aないし152
Fは、必ずしも三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するわけではない。
一般に、受け取った三角形の正確な順序を維持する必要
はないことに留意されたい。好ましい実施形態では、3
次元グラフィックス・アクセラレータ・アーキテクチャ
は、受け取った三角形の正確な順序が維持されない第1
のモードを含んでいる。このシステムはまた、浮動小数
点ブロック152Aないし152Fが正確な順序でレン
ダリングされた三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するように構成され
た第2のモードを含んでいる。
Fは、必ずしも三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するわけではない。
一般に、受け取った三角形の正確な順序を維持する必要
はないことに留意されたい。好ましい実施形態では、3
次元グラフィックス・アクセラレータ・アーキテクチャ
は、受け取った三角形の正確な順序が維持されない第1
のモードを含んでいる。このシステムはまた、浮動小数
点ブロック152Aないし152Fが正確な順序でレン
ダリングされた三角形をコマンド・ブロック142によ
って受け取られた正確な順序で出力するように構成され
た第2のモードを含んでいる。
【0043】したがって、本発明のシステムおよび方法
は、コマンド・ブロック142と各浮動小数点ブロック
152Aないし152Fとの間の複数の直接データ・チ
ャネルまたは2地点間バスを提供する。本発明のシステ
ムおよび方法はまた、浮動小数点ブロック152Aない
し152Fと各ドロー・ブロック172Aおよび172
Bとの間の複数の直接データ・チャネルまたは2地点間
バスを提供する。言い換えれば、本発明は、コマンド・
ブロック142を各浮動小数点ブロック152Aないし
152Fに接続する複数の専用の狭いバス、好ましくは
8ビット・データ・バス、ならびに各浮動小数点ブロッ
ク152Aないし152Fと各ドロー・ブロック172
Aおよび172Bに接続する狭いバス、好ましくは8ビ
ット・データ・バスを提供する。したがって、本発明
は、接続用の共通バスまたは共用バス・アーキテクチャ
を含んでおらず、各論理要素間の直接相互接続を含んで
いる。これにより、電気的特性が改善され、ピン要件が
少なくなり、またクロック速度がより速くなり、したが
って従来技術の設計に勝る改善された性能が得られる。
は、コマンド・ブロック142と各浮動小数点ブロック
152Aないし152Fとの間の複数の直接データ・チ
ャネルまたは2地点間バスを提供する。本発明のシステ
ムおよび方法はまた、浮動小数点ブロック152Aない
し152Fと各ドロー・ブロック172Aおよび172
Bとの間の複数の直接データ・チャネルまたは2地点間
バスを提供する。言い換えれば、本発明は、コマンド・
ブロック142を各浮動小数点ブロック152Aないし
152Fに接続する複数の専用の狭いバス、好ましくは
8ビット・データ・バス、ならびに各浮動小数点ブロッ
ク152Aないし152Fと各ドロー・ブロック172
Aおよび172Bに接続する狭いバス、好ましくは8ビ
ット・データ・バスを提供する。したがって、本発明
は、接続用の共通バスまたは共用バス・アーキテクチャ
を含んでおらず、各論理要素間の直接相互接続を含んで
いる。これにより、電気的特性が改善され、ピン要件が
少なくなり、またクロック速度がより速くなり、したが
って従来技術の設計に勝る改善された性能が得られる。
【0044】図5 コマンド・ブロック 上述のように、コマンド・プリプロセッサ、すなわちコ
マンド・ブロック142は、ホスト・バス104を介し
て通信を行うために結合される。コマンド・プリプロセ
ッサ142は、ホスト・プロセッサ102によってメモ
リ・サブシステム106からホスト・バス28を介して
転送された形状データ・アレイを受け取る。好ましい実
施形態では、コマンド・プリプロセッサ142は、圧縮
された形状データならびに圧縮されていない形状データ
を含めて、メモリ・サブシステム106から転送された
データを受け取る。コマンド・プリプロセッサ142
は、圧縮された形状データを受け取ったときに形状デー
タを圧縮解除して、圧縮解除された形状データを供給す
るように動作する。
マンド・ブロック142は、ホスト・バス104を介し
て通信を行うために結合される。コマンド・プリプロセ
ッサ142は、ホスト・プロセッサ102によってメモ
リ・サブシステム106からホスト・バス28を介して
転送された形状データ・アレイを受け取る。好ましい実
施形態では、コマンド・プリプロセッサ142は、圧縮
された形状データならびに圧縮されていない形状データ
を含めて、メモリ・サブシステム106から転送された
データを受け取る。コマンド・プリプロセッサ142
は、圧縮された形状データを受け取ったときに形状デー
タを圧縮解除して、圧縮解除された形状データを供給す
るように動作する。
【0045】コマンド・プリプロセッサ142は、3次
元形状パイプラインおよび直接ポート・パイプラインの
2つのデータ・パイプラインで実施することが好まし
い。直接ポート・パイプラインでは、コマンド・プリプ
ロセッサ142は、ホスト・バス104を介して直接ポ
ート・データを受け取り、コマンドドロー(CD)バス
を介して直接ポート・データをドロー・プロセッサ17
2Aおよび172Bに転送する。上述のように、CDバ
スは、他のバスの一部を使用または「借用」して、コマ
ンド・プリプロセッサ142からドロー・プロセッサ1
72Aおよび172Bに直接データ・パスを形成する。
直接ポート・データは任意選択で、ドロー・プロセッサ
172Aおよび172Bと協働して、文字書込み、スク
リーン・スクロールおよびブロック移動などX11機能
を実施するコマンド・プリプロセッサ142によって処
理される。直接ポート・データはまた、ドロー・プロセ
ッサ172Aおよび172Bへのレジスタ書込み、およ
びフレーム・バッファ3DRAM192および194へ
の個々のピクセル書込みを含んでいる。
元形状パイプラインおよび直接ポート・パイプラインの
2つのデータ・パイプラインで実施することが好まし
い。直接ポート・パイプラインでは、コマンド・プリプ
ロセッサ142は、ホスト・バス104を介して直接ポ
ート・データを受け取り、コマンドドロー(CD)バス
を介して直接ポート・データをドロー・プロセッサ17
2Aおよび172Bに転送する。上述のように、CDバ
スは、他のバスの一部を使用または「借用」して、コマ
ンド・プリプロセッサ142からドロー・プロセッサ1
72Aおよび172Bに直接データ・パスを形成する。
直接ポート・データは任意選択で、ドロー・プロセッサ
172Aおよび172Bと協働して、文字書込み、スク
リーン・スクロールおよびブロック移動などX11機能
を実施するコマンド・プリプロセッサ142によって処
理される。直接ポート・データはまた、ドロー・プロセ
ッサ172Aおよび172Bへのレジスタ書込み、およ
びフレーム・バッファ3DRAM192および194へ
の個々のピクセル書込みを含んでいる。
【0046】3次元形状パイプラインでは、コマンド・
プリプロセッサ142は、形状データ・アレイからの入
力頂点パケットのストリームにアクセスする。
プリプロセッサ142は、形状データ・アレイからの入
力頂点パケットのストリームにアクセスする。
【0047】コマンド・プロセッサ142は、形状デー
タ・アレイからの入力頂点パケットのストリームを受け
取ったときに、入力頂点パケット内に含まれる情報を並
べ替え、また任意選択で入力頂点パケット内の情報を削
除する。コマンド・プリプロセッサ142は、受け取っ
たデータを標準のフォーマットに変換することが好まし
い。コマンド・プリプロセッサ142は、各入力頂点パ
ケット内の情報を、異数フォーマットから32ビットI
EEE浮動小数点数フォーマットに変換する。コマンド
・プリプロセッサ142は、8ビット固定少数点数、1
6ビット固定少数点数、および32または64ビットI
EEE浮動小数点数を変換する。通常のカラー値の場
合、コマンド・プリプロセッサ142は、データを固定
少数点値に変換する。
タ・アレイからの入力頂点パケットのストリームを受け
取ったときに、入力頂点パケット内に含まれる情報を並
べ替え、また任意選択で入力頂点パケット内の情報を削
除する。コマンド・プリプロセッサ142は、受け取っ
たデータを標準のフォーマットに変換することが好まし
い。コマンド・プリプロセッサ142は、各入力頂点パ
ケット内の情報を、異数フォーマットから32ビットI
EEE浮動小数点数フォーマットに変換する。コマンド
・プリプロセッサ142は、8ビット固定少数点数、1
6ビット固定少数点数、および32または64ビットI
EEE浮動小数点数を変換する。通常のカラー値の場
合、コマンド・プリプロセッサ142は、データを固定
少数点値に変換する。
【0048】コマンド・プリプロセッサ142はまた、
プリミティブ全体が受け取られるまで、入力頂点情報を
累積するように動作する。次いで、コマンド・プリプロ
セッサ142は、コマンド浮動小数点(CF)バスを介
して出力形状パケットまたはプリミティブ・データを浮
動小数点プロセッサ152Aないし152Fの1つに転
送する。出力形状パケットは、任意選択の修正およびデ
ータ交換を行った再フォーマットされた頂点パケットを
含んでいる。
プリミティブ全体が受け取られるまで、入力頂点情報を
累積するように動作する。次いで、コマンド・プリプロ
セッサ142は、コマンド浮動小数点(CF)バスを介
して出力形状パケットまたはプリミティブ・データを浮
動小数点プロセッサ152Aないし152Fの1つに転
送する。出力形状パケットは、任意選択の修正およびデ
ータ交換を行った再フォーマットされた頂点パケットを
含んでいる。
【0049】次に、図5を参照すると、コマンド・プロ
セッサまたはコマンド・ブロック142を示すブロック
図が示されている。図示のように、コマンド・ブロック
142は、ホスト・バス104にインタフェースする入
力バッファ302および出力バッファ304を含んでい
る。入力バッファ302は、グローバル・データ発生器
306およびアドレス・デコード論理回路308に結合
される。グローバル・データ発生器306は、出力バッ
ファ304およびCMバスに接続され、データ転送を実
施する。アドレス・デコード論理回路308は、図示の
ようにDCバスから入力を受け取る。アドレス・デコー
ド論理回路308はまた、出力を供給するために入力F
IFOバッファ312に結合される。
セッサまたはコマンド・ブロック142を示すブロック
図が示されている。図示のように、コマンド・ブロック
142は、ホスト・バス104にインタフェースする入
力バッファ302および出力バッファ304を含んでい
る。入力バッファ302は、グローバル・データ発生器
306およびアドレス・デコード論理回路308に結合
される。グローバル・データ発生器306は、出力バッ
ファ304およびCMバスに接続され、データ転送を実
施する。アドレス・デコード論理回路308は、図示の
ようにDCバスから入力を受け取る。アドレス・デコー
ド論理回路308はまた、出力を供給するために入力F
IFOバッファ312に結合される。
【0050】一般に、フレーム・バッファは、赤平面、
緑平面および青平面用の8ビット・モード、個々のピク
セル・アクセス用の32ビット・モード、およびZバッ
ファ値とともにピクセル・カラーにアクセスする64ビ
ット・モードを含めて、複数のマッピングを有する。ブ
ートPROM197、オーディオ・チップ198および
RAMDAC196も、フレーム・バッファ内にアドレ
ス空間を有する。フレーム・バッファはまた、特にコマ
ンド・ブロック・レジスタおよびドロー・プロセッサ・
レジスタ用のレジスタ・アドレス空間を含んでいる。ア
ドレス・デコード論理回路308は、データを受け取る
べき論理ユニットおよびデータをどのように変換すべき
かを指定する入力FIFO312用のタグを生成するよ
うに動作する。入力FIFOバッファ312は、128
個の64ビット・ワードに加えて、データの宛先および
データをどのように処理すべきかを指定する12ビット
・タグを保持する。
緑平面および青平面用の8ビット・モード、個々のピク
セル・アクセス用の32ビット・モード、およびZバッ
ファ値とともにピクセル・カラーにアクセスする64ビ
ット・モードを含めて、複数のマッピングを有する。ブ
ートPROM197、オーディオ・チップ198および
RAMDAC196も、フレーム・バッファ内にアドレ
ス空間を有する。フレーム・バッファはまた、特にコマ
ンド・ブロック・レジスタおよびドロー・プロセッサ・
レジスタ用のレジスタ・アドレス空間を含んでいる。ア
ドレス・デコード論理回路308は、データを受け取る
べき論理ユニットおよびデータをどのように変換すべき
かを指定する入力FIFO312用のタグを生成するよ
うに動作する。入力FIFOバッファ312は、128
個の64ビット・ワードに加えて、データの宛先および
データをどのように処理すべきかを指定する12ビット
・タグを保持する。
【0051】入力FIFO312は、64ビット・バス
を介してマルチプレクサ314に結合される。入力FI
FO312はまた、形状圧縮解除ユニット316に出力
を供給する。上述のように、コマンド・ブロック142
は、圧縮された形状データならびに圧縮されていない形
状データを受け取る。圧縮解除ユニット316は、圧縮
された形状データを受け取り、この圧縮された形状デー
タを圧縮して、圧縮解除された形状データを供給するよ
うに動作する。圧縮解除ユニット316は、32ビット
・ワードのストリームを受け取り、圧縮解除された形状
データまたはプリミティブ・データを与える。次いで、
圧縮解除ユニット316からの圧縮解除された形状デー
タ出力は、マルチプレクサ314の入力に供給される。
マルチプレクサ314の出力は、フォーマット変換器3
22、収集バッファ324およびレジスタ論理回路32
6に供給される。一般に、また、圧縮解除ユニットから
の圧縮された形状データ出力は、フォーマット変換器3
22または収集バッファ324に供給される。
を介してマルチプレクサ314に結合される。入力FI
FO312はまた、形状圧縮解除ユニット316に出力
を供給する。上述のように、コマンド・ブロック142
は、圧縮された形状データならびに圧縮されていない形
状データを受け取る。圧縮解除ユニット316は、圧縮
された形状データを受け取り、この圧縮された形状デー
タを圧縮して、圧縮解除された形状データを供給するよ
うに動作する。圧縮解除ユニット316は、32ビット
・ワードのストリームを受け取り、圧縮解除された形状
データまたはプリミティブ・データを与える。次いで、
圧縮解除ユニット316からの圧縮解除された形状デー
タ出力は、マルチプレクサ314の入力に供給される。
マルチプレクサ314の出力は、フォーマット変換器3
22、収集バッファ324およびレジスタ論理回路32
6に供給される。一般に、また、圧縮解除ユニットから
の圧縮された形状データ出力は、フォーマット変換器3
22または収集バッファ324に供給される。
【0052】実質上、形状圧縮解除ユニット316は、
入力FIFO312と、フォーマット変換器322また
は収集バッファ324である次の処理段との間のデータ
・パス上の迂回路と考えられる。コマンド・プロセッサ
142によって受け取られたデータが圧縮された形状デ
ータでない、すなわち圧縮されていないデータの場合、
このデータは、入力FIFO312から直接マルチプレ
クサ314を介してフォーマット変換器322、収集バ
ッファ324、またはレジスタ論理回路326のいずれ
かに供給される。コマンド・プロセッサ142が圧縮さ
れた形状データを受け取った場合、このデータは、まず
圧縮解除されるように入力FIFO312から形状圧縮
解除ユニット316に供給され、その後他の論理回路に
供給される。
入力FIFO312と、フォーマット変換器322また
は収集バッファ324である次の処理段との間のデータ
・パス上の迂回路と考えられる。コマンド・プロセッサ
142によって受け取られたデータが圧縮された形状デ
ータでない、すなわち圧縮されていないデータの場合、
このデータは、入力FIFO312から直接マルチプレ
クサ314を介してフォーマット変換器322、収集バ
ッファ324、またはレジスタ論理回路326のいずれ
かに供給される。コマンド・プロセッサ142が圧縮さ
れた形状データを受け取った場合、このデータは、まず
圧縮解除されるように入力FIFO312から形状圧縮
解除ユニット316に供給され、その後他の論理回路に
供給される。
【0053】したがって、コマンド・ブロック142
は、入力バッファ302または入力FIFO312に結
合され、圧縮されていない形状データを直接マルチプレ
クサ314を介してフォーマット変換器322または収
集バッファ324に直接転送する第1のデータ・パスを
含んでいる。コマンド・ブロック142はまた、入力バ
ッファ302または入力FIFO312に結合され、圧
縮された形状データを受け取る第2のデータ・パスを含
んでいる。第2のデータ・パスは、入力FIFO312
の出力に結合され、圧縮された形状入力データを受け取
り、圧縮解除して、圧縮解除された形状データを与える
形状圧縮解除ユニットを含んでいる。
は、入力バッファ302または入力FIFO312に結
合され、圧縮されていない形状データを直接マルチプレ
クサ314を介してフォーマット変換器322または収
集バッファ324に直接転送する第1のデータ・パスを
含んでいる。コマンド・ブロック142はまた、入力バ
ッファ302または入力FIFO312に結合され、圧
縮された形状データを受け取る第2のデータ・パスを含
んでいる。第2のデータ・パスは、入力FIFO312
の出力に結合され、圧縮された形状入力データを受け取
り、圧縮解除して、圧縮解除された形状データを与える
形状圧縮解除ユニットを含んでいる。
【0054】フォーマット変換器322は、整数データ
または浮動小数点データを受け取り、浮動小数点データ
または固定小数点データを出力する。フォーマット変換
器322は、コマンド・プロセッサ142には異なる複
数のデータ・タイプを受け取るフレキシビリティを与
え、同時に各浮動小数点ブロック・ユニット152Aな
いし152Fには特定のワード用の単一のデータ・タイ
プのみを与える。
または浮動小数点データを受け取り、浮動小数点データ
または固定小数点データを出力する。フォーマット変換
器322は、コマンド・プロセッサ142には異なる複
数のデータ・タイプを受け取るフレキシビリティを与
え、同時に各浮動小数点ブロック・ユニット152Aな
いし152Fには特定のワード用の単一のデータ・タイ
プのみを与える。
【0055】フォーマット変換器322は、頂点累積バ
ッファ332に48ビット出力を供給する。頂点累積バ
ッファ332は、頂点バッファ334に出力を供給す
る。頂点累積バッファ332および頂点バッファ334
は収集バッファ324に出力を供給し、収集バッファ3
24は出力バッファ304に出力を戻す。
ッファ332に48ビット出力を供給する。頂点累積バ
ッファ332は、頂点バッファ334に出力を供給す
る。頂点累積バッファ332および頂点バッファ334
は収集バッファ324に出力を供給し、収集バッファ3
24は出力バッファ304に出力を戻す。
【0056】頂点累積バッファ332は、フォーマット
変換器322から受け取ったプリミティブに必要な頂点
データを記憶または累積するために使用される。頂点累
積バッファ332は、実際二組のレジスタを含んでい
る、すなわち二重にバッファされる。第1の組のレジス
タは、直点を構成するのに使用され、第2の組のレジス
タは、データを1つの頂点バッファ334内にコピーす
るのに使用される。以下で詳細に説明するように、これ
ら二組のレジスタはより効率的な動作を可能にする。デ
ータ・ワードは、頂点累積バッファ332の第1のバッ
ファまたは上部バッファ内に一度に1つ書き込まれ、こ
れらの値は、新しい値がそれぞれのワードに上書きされ
るまで不変である。データは、発射状態が生じるまで、
1サイクル内で第1の組のレジスタから第2の組のレジ
スタへ転送される。
変換器322から受け取ったプリミティブに必要な頂点
データを記憶または累積するために使用される。頂点累
積バッファ332は、実際二組のレジスタを含んでい
る、すなわち二重にバッファされる。第1の組のレジス
タは、直点を構成するのに使用され、第2の組のレジス
タは、データを1つの頂点バッファ334内にコピーす
るのに使用される。以下で詳細に説明するように、これ
ら二組のレジスタはより効率的な動作を可能にする。デ
ータ・ワードは、頂点累積バッファ332の第1のバッ
ファまたは上部バッファ内に一度に1つ書き込まれ、こ
れらの値は、新しい値がそれぞれのワードに上書きされ
るまで不変である。データは、発射状態が生じるまで、
1サイクル内で第1の組のレジスタから第2の組のレジ
スタへ転送される。
【0057】頂点バッファ334は、線や三角形など形
状プリミティブを構成または「作成」するために使用さ
れる。線および三角形は、プリミティブを完成するため
に、それぞれ2つおよび3つの頂点を必要とする。本発
明の一実施形態によれば、新しいプリミティブは、生成
しているプリミティブが1つまたは複数の頂点を前に生
成したプリミティブと共用する場合、既存のプリミティ
ブの頂点を交換することによって生成される。言い換え
れば、頂点バッファ334は、前の直点の値を記憶また
は維持し、プリミティブまたは三角形が1つまたは複数
の頂点または他の情報を隣接するプリミティブまたは三
角形と共用する場合、これらの頂点の値を知的に再使用
する。これにより、処理要件が少なくなり、またオープ
ンGLフォーマット動作がより効率的になる。好ましい
実施形態では、頂点バッファ334最大7個の頂点を保
持することができる。これにより、最悪の場合のプリミ
ティブ、すなわち独立した三角形のスループットが最大
になる。頂点バッファ334はまた、点、線および三角
形に対して最適速度において動作し、実質上クワッド・
プリミティブに対して最適である。
状プリミティブを構成または「作成」するために使用さ
れる。線および三角形は、プリミティブを完成するため
に、それぞれ2つおよび3つの頂点を必要とする。本発
明の一実施形態によれば、新しいプリミティブは、生成
しているプリミティブが1つまたは複数の頂点を前に生
成したプリミティブと共用する場合、既存のプリミティ
ブの頂点を交換することによって生成される。言い換え
れば、頂点バッファ334は、前の直点の値を記憶また
は維持し、プリミティブまたは三角形が1つまたは複数
の頂点または他の情報を隣接するプリミティブまたは三
角形と共用する場合、これらの頂点の値を知的に再使用
する。これにより、処理要件が少なくなり、またオープ
ンGLフォーマット動作がより効率的になる。好ましい
実施形態では、頂点バッファ334最大7個の頂点を保
持することができる。これにより、最悪の場合のプリミ
ティブ、すなわち独立した三角形のスループットが最大
になる。頂点バッファ334はまた、点、線および三角
形に対して最適速度において動作し、実質上クワッド・
プリミティブに対して最適である。
【0058】頂点累積バッファ332および頂点バッフ
ァ334はそれぞれ、収集バッファ324に結合され
る。収集バッファ324は、図示のように出力バッファ
304にそれぞれの出力を供給する。頂点バッファ33
4は、CFバス出力FIFO144に出力を供給するよ
うに結合される。また、収集バッファ324も、CFバ
ス出力FIFO144に出力を供給するように結合され
る。収集バッファ324は、浮動小数点ブロック152
Aないし152Fにすべての非形状データを送るために
使用される。収集バッファ324は、最大32個の32
ビット・ワードを保持することができる。CFバス出力
FIFO144にデータをコピーする動作は、最適スル
ープットを得るために収集バッファ324内に新しいデ
ータをコピーする動作と重複することに留意されたい。
ァ334はそれぞれ、収集バッファ324に結合され
る。収集バッファ324は、図示のように出力バッファ
304にそれぞれの出力を供給する。頂点バッファ33
4は、CFバス出力FIFO144に出力を供給するよ
うに結合される。また、収集バッファ324も、CFバ
ス出力FIFO144に出力を供給するように結合され
る。収集バッファ324は、浮動小数点ブロック152
Aないし152Fにすべての非形状データを送るために
使用される。収集バッファ324は、最大32個の32
ビット・ワードを保持することができる。CFバス出力
FIFO144にデータをコピーする動作は、最適スル
ープットを得るために収集バッファ324内に新しいデ
ータをコピーする動作と重複することに留意されたい。
【0059】上述のように、コマンド・ブロック142
は、マルチプレクサ314の出力に結合された複数のレ
ジスタ326を含んでいる。レジスタ326はまた、U
PA出力バッファ304に出力を供給する。レジスタ・
ブロック326は、それぞれの浮動小数点ブロック15
2Aないし152Fに送られるデータのフォーマットお
よびフローを制御する16個の制御レジスタおよび状態
レジスタを含んでいる。
は、マルチプレクサ314の出力に結合された複数のレ
ジスタ326を含んでいる。レジスタ326はまた、U
PA出力バッファ304に出力を供給する。レジスタ・
ブロック326は、それぞれの浮動小数点ブロック15
2Aないし152Fに送られるデータのフォーマットお
よびフローを制御する16個の制御レジスタおよび状態
レジスタを含んでいる。
【0060】頂点バッファ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バスへの「直接
ポート」アクセスを実施する。
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バスへの「直接
ポート」アクセスを実施する。
【0061】コマンド・ブロック142はまた、ラウン
ド・ロビン・アービトレーション論理回路334を含ん
でいる。このラウンド・ロビン・アービトレーション論
理回路334は、次のプリミティブを受け取るべき各浮
動小数点プロセッサ152Aないし152Fを決定する
回路を含んでいる。上述のように、本発明のグラフィッ
クス・アクセラレータ112は、各浮動小数点プロセッ
サ152Aないし152F内ならびに外に別個の2地点
間バスを含んでいる。したがって、ラウンド・ロビン・
アービトレーション論理回路334は、プリミティブを
チップ間で均一に分配し、それによりすべての2地点間
バス上で同時に均一なデータのフローを維持するために
含まれている。好ましい実施形態では、ラウンド・ロビ
ン・アービトレーション論理回路334は、バックアッ
プされた、すなわちいっぱいのサブバスを飛び越す「次
の使用可能なラウンド・ロビン」アービトレーション方
式を使用する。
ド・ロビン・アービトレーション論理回路334を含ん
でいる。このラウンド・ロビン・アービトレーション論
理回路334は、次のプリミティブを受け取るべき各浮
動小数点プロセッサ152Aないし152Fを決定する
回路を含んでいる。上述のように、本発明のグラフィッ
クス・アクセラレータ112は、各浮動小数点プロセッ
サ152Aないし152F内ならびに外に別個の2地点
間バスを含んでいる。したがって、ラウンド・ロビン・
アービトレーション論理回路334は、プリミティブを
チップ間で均一に分配し、それによりすべての2地点間
バス上で同時に均一なデータのフローを維持するために
含まれている。好ましい実施形態では、ラウンド・ロビ
ン・アービトレーション論理回路334は、バックアッ
プされた、すなわちいっぱいのサブバスを飛び越す「次
の使用可能なラウンド・ロビン」アービトレーション方
式を使用する。
【0062】コマンド・プロセッサ従来技術の実施形態
に関する情報については、参照することによりその全体
が本明細書の一部となる米国特許第5408605号
「Command Preprocessor for
a High Performance Three
Dimensional Graphics Acc
elerator」を参照されたい。
に関する情報については、参照することによりその全体
が本明細書の一部となる米国特許第5408605号
「Command Preprocessor for
a High Performance Three
Dimensional Graphics Acc
elerator」を参照されたい。
【0063】図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バスに出力データを供給する。
よる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バスに出力データを供給する。
【0064】Fコア・ブロック352は、形状変換、ク
リップ・テスト、面決定、透視分割、およびスクリーン
空間変換を含むすべての浮動小数点集中演算を実施す
る。Fコア・ブロック352はまた、必要な場合にクリ
ッピングを実施する。好ましい実施形態では、Fコア・
ブロック352は、32kワードSRAM内に記憶され
た36ビット・マイクロ命令ワードを使用して完全にプ
ログラムできる。
リップ・テスト、面決定、透視分割、およびスクリーン
空間変換を含むすべての浮動小数点集中演算を実施す
る。Fコア・ブロック352はまた、必要な場合にクリ
ッピングを実施する。好ましい実施形態では、Fコア・
ブロック352は、32kワードSRAM内に記憶され
た36ビット・マイクロ命令ワードを使用して完全にプ
ログラムできる。
【0065】Lコア・ブロック354は、オンチップR
AMベースのマイクロコードを使用して実質上すべての
ライティング計算を実施する。ライティング計算は、頂
点フォーマットに対するカラーに対して調整される。L
コア・ブロック354はまた、より効率的なライティン
グ計算のために効率的なトリプルワード設計を含んでい
る。このトリプルワード設計は、16ビット固定小数点
値を含む48ビット・データ・ワードによって動作す
る。したがって、1つの命令で、3つのカラー成分(R
GB)すべておよび1つのサイクル内にある法線
(Nx、Ny、Nz)の3つの成分すべてに対して同じ機
能を実施することができる。Lコア・ブロック354内
に含まれるマス・ユニットは、自動的に値を許される範
囲に固定し、したがって追加の分岐は許されない。
AMベースのマイクロコードを使用して実質上すべての
ライティング計算を実施する。ライティング計算は、頂
点フォーマットに対するカラーに対して調整される。L
コア・ブロック354はまた、より効率的なライティン
グ計算のために効率的なトリプルワード設計を含んでい
る。このトリプルワード設計は、16ビット固定小数点
値を含む48ビット・データ・ワードによって動作す
る。したがって、1つの命令で、3つのカラー成分(R
GB)すべておよび1つのサイクル内にある法線
(Nx、Ny、Nz)の3つの成分すべてに対して同じ機
能を実施することができる。Lコア・ブロック354内
に含まれるマス・ユニットは、自動的に値を許される範
囲に固定し、したがって追加の分岐は許されない。
【0066】Sコア・ブロックは、すべてのプリミティ
ブに対してセットアップ計算を実施する。これらのセッ
トアップ計算は、ある頂点から他の頂点までの複数の寸
法の距離を計算すること、およびその縁部に沿って傾斜
を計算することを含む。三角形の場合、Z深さの傾斜、
カラー、およびUV(テクスチャの場合)も、走査線の
方向において計算される。
ブに対してセットアップ計算を実施する。これらのセッ
トアップ計算は、ある頂点から他の頂点までの複数の寸
法の距離を計算すること、およびその縁部に沿って傾斜
を計算することを含む。三角形の場合、Z深さの傾斜、
カラー、およびUV(テクスチャの場合)も、走査線の
方向において計算される。
【0067】図示のように、各浮動小数点ブロック15
2は、CFバスに結合されるCFバス・インタフェース
論理回路362を含んでいる。各浮動小数点ブロック1
52は、FDバスに結合されるFDバス・インタフェー
ス論理回路366を含んでいる。各浮動小数点ブロック
152は、CDバス用の各浮動小数点ブロック152へ
のデータ転送パスの働きをするバイパス・バスまたはデ
ータ・パス364を含んでいる。CDバスを介して送ら
れたデータ、すなわちFDバスに直接送られたデータ
は、データ転送バス364上を進み、したがって浮動小
数点ブロック152内に含まれる浮動小数点論理回路を
バイパスする。このバイパス・バス364の動作は、図
10により明確に示されており、図10に関して論じ
る。
2は、CFバスに結合されるCFバス・インタフェース
論理回路362を含んでいる。各浮動小数点ブロック1
52は、FDバスに結合されるFDバス・インタフェー
ス論理回路366を含んでいる。各浮動小数点ブロック
152は、CDバス用の各浮動小数点ブロック152へ
のデータ転送パスの働きをするバイパス・バスまたはデ
ータ・パス364を含んでいる。CDバスを介して送ら
れたデータ、すなわちFDバスに直接送られたデータ
は、データ転送バス364上を進み、したがって浮動小
数点ブロック152内に含まれる浮動小数点論理回路を
バイパスする。このバイパス・バス364の動作は、図
10により明確に示されており、図10に関して論じ
る。
【0068】一般に、浮動小数点ブロック152に供給
されたデータは、Fコア・ブロック352、Lコア・ブ
ロック354、またはFDバスに直接出る、すなわちC
Dバス転送の3つの宛先の1つを有する。好ましい実施
形態では、Fコア・ブロック352に宛てられたデータ
は、32ビットIEEE浮動小数点数および他の32ビ
ット・データを含む32ビット・ワードを含んでいる。
Lコア・ブロック354に宛てられたデータは、16固
定小数点数を含む48ビット・ワードを含んでいる。
されたデータは、Fコア・ブロック352、Lコア・ブ
ロック354、またはFDバスに直接出る、すなわちC
Dバス転送の3つの宛先の1つを有する。好ましい実施
形態では、Fコア・ブロック352に宛てられたデータ
は、32ビットIEEE浮動小数点数および他の32ビ
ット・データを含む32ビット・ワードを含んでいる。
Lコア・ブロック354に宛てられたデータは、16固
定小数点数を含む48ビット・ワードを含んでいる。
【0069】図6に示すように、浮動小数点ブロック1
52は、6つの組み合わされた入力バッファおよび出力
バッファ、ならびにFコア・ブロック352とLコア・
ブロック354との間の通信を実施する2つの特殊バッ
ファを含んでいる。
52は、6つの組み合わされた入力バッファおよび出力
バッファ、ならびにFコア・ブロック352とLコア・
ブロック354との間の通信を実施する2つの特殊バッ
ファを含んでいる。
【0070】図示のように、浮動小数点ブロック152
は、コマンド・ブロック142によって供給されたCF
バスからのデータを受け取るフロート入力バッファ(F
Iバッファ)372を含んでいる。FIバッファ372
は、二重にバッファされ、各バッファ内に32個の32
ビット・エントリを保持する。FIバッファ372内に
記憶された第1のワード、ワード0は、受け取った形状
プリミティブへ送るべきマイクロコード・ルーチンをF
コア・ブロック352に知らせる命令コードを含んでい
る。ヘッダおよびX座標、Y座標、Z座標のみがこのバ
ッファに供給される。
は、コマンド・ブロック142によって供給されたCF
バスからのデータを受け取るフロート入力バッファ(F
Iバッファ)372を含んでいる。FIバッファ372
は、二重にバッファされ、各バッファ内に32個の32
ビット・エントリを保持する。FIバッファ372内に
記憶された第1のワード、ワード0は、受け取った形状
プリミティブへ送るべきマイクロコード・ルーチンをF
コア・ブロック352に知らせる命令コードを含んでい
る。ヘッダおよびX座標、Y座標、Z座標のみがこのバ
ッファに供給される。
【0071】浮動小数点ブロック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
つの値は、射出変数、環境変数、拡散変数、鏡面変数お
よび鏡面指数変数の値である。
対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
つの値は、射出変数、環境変数、拡散変数、鏡面変数お
よび鏡面指数変数の値である。
【0072】浮動小数点ブロック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)を含んでいる。
ブロック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)を含んでいる。
【0073】浮動小数点ブロック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の間
でデータを伝送するのに使用される双方向バッファであ
る。
・ブロック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の間
でデータを伝送するのに使用される双方向バッファであ
る。
【0074】Lコア対Sコア・バッファ(LSバッフ
ァ)386がLコア・ブロック354とSコア・ブロッ
ク356の間に結合される。LSバッファ386は、各
バッファが48ビット・ワードを保持している二重バッ
ファである。
ァ)386がLコア・ブロック354とSコア・ブロッ
ク356の間に結合される。LSバッファ386は、各
バッファが48ビット・ワードを保持している二重バッ
ファである。
【0075】浮動小数点ブロック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内で動作すべきマイクロコ
ード手順を示すディスパッチ・コードを含んでいる。
・ブロック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内で動作すべきマイクロコ
ード手順を示すディスパッチ・コードを含んでいる。
【0076】最後に、浮動小数点ブロック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を含
んでいる。
コア・ブロック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を含
んでいる。
【0077】浮動小数点ブロック152の他の実施形態
に関する情報については、参照する
に関する情報については、参照する
【0078】図7 ドロー・プロセッサのブロック図 次に、図7を参照すると、それぞれのドロー・プロセッ
サ172の1つを示すブロック図が示されている。各ド
ロー・プロセッサ172Aおよび172Bは、同じもの
であり、したがって本明細書では便宜上1つだけ記載す
る。ドロー・プロセッサ172は、3DRAMチップの
シーケンシングを管理する。各ドロー・プロセッサ17
2は、内部ピクセル・キャッシュ用ならびにビデオ出力
リフレッシュ用の3DRAMスケジューリング論理回路
を含んでいる。これらの資源は、レンダリングされたピ
クセルをそれらが3DRAMに到達する前に待ち行列化
し、3DRAMキャッシュ誤りを予測するためにこの待
ち行列内のピクセル・アドレスを検索することによって
制御される。
サ172の1つを示すブロック図が示されている。各ド
ロー・プロセッサ172Aおよび172Bは、同じもの
であり、したがって本明細書では便宜上1つだけ記載す
る。ドロー・プロセッサ172は、3DRAMチップの
シーケンシングを管理する。各ドロー・プロセッサ17
2は、内部ピクセル・キャッシュ用ならびにビデオ出力
リフレッシュ用の3DRAMスケジューリング論理回路
を含んでいる。これらの資源は、レンダリングされたピ
クセルをそれらが3DRAMに到達する前に待ち行列化
し、3DRAMキャッシュ誤りを予測するためにこの待
ち行列内のピクセル・アドレスを検索することによって
制御される。
【0079】図示のように、各ドロー・プロセッサ17
2は、FDバスにインタフェースするFDバス・インタ
フェース・ブロック402を含んでいる。FDバス・イ
ンタフェース・ブロック402は、CDCバス・インタ
フェース論理回路412に結合される。CDCバス・イ
ンタフェース論理回路412は、スクラッチ・バッファ
414および直接ポート・ユニット416に結合され
る。直接ポート・ユニット416は、フレーム・バッフ
ァ・インタフェース論理回路436から入力を受け取
り、ピクセル・データ・マルチプレクサ論理回路432
に出力を供給する。CDCバス・インタフェース論理回
路412はまた、DCバスに出力データを供給するよう
に結合される。FDバス・インタフェース402は、プ
リミティブ累積バッファ404に出力を供給する。
2は、FDバスにインタフェースするFDバス・インタ
フェース・ブロック402を含んでいる。FDバス・イ
ンタフェース・ブロック402は、CDCバス・インタ
フェース論理回路412に結合される。CDCバス・イ
ンタフェース論理回路412は、スクラッチ・バッファ
414および直接ポート・ユニット416に結合され
る。直接ポート・ユニット416は、フレーム・バッフ
ァ・インタフェース論理回路436から入力を受け取
り、ピクセル・データ・マルチプレクサ論理回路432
に出力を供給する。CDCバス・インタフェース論理回
路412はまた、DCバスに出力データを供給するよう
に結合される。FDバス・インタフェース402は、プ
リミティブ累積バッファ404に出力を供給する。
【0080】上述のように、FDバスは、ワード単位で
のみ同期した6つの独立したバスを含んでいる。FDバ
ス・インタフェース402は、2つの役目を果たす。第
1に、FDバス・インタフェース402は、FDバスを
介して転送された各組の3つの11ビット・データを3
2ビット・ワードおよび制御ビットに戻す。第2に、F
Dバス・インタフェース402は、FDバスから受け取
ったデータをプリミティブ累積バッファ404またはC
Dバス・インタフェース論理回路412に向ける。
のみ同期した6つの独立したバスを含んでいる。FDバ
ス・インタフェース402は、2つの役目を果たす。第
1に、FDバス・インタフェース402は、FDバスを
介して転送された各組の3つの11ビット・データを3
2ビット・ワードおよび制御ビットに戻す。第2に、F
Dバス・インタフェース402は、FDバスから受け取
ったデータをプリミティブ累積バッファ404またはC
Dバス・インタフェース論理回路412に向ける。
【0081】CDCバス・インタフェース論理回路41
2は、32ビット・データ・ワードによって動作する。
上述のように、CDCバスは、CFバスおよびFDバス
を含む他のバスの一部を含んでおり、コマンド・ブロッ
ク142がピクセルを3DRAMチップ192および1
94内に転送することができるようにするのに使用され
る。DCバスは、ドロー・プロセッサ172からのレジ
スタの読取り、ならびに3DRAMからのピクセルの読
取りを可能にする。CDバス上のドロー・プロセッサ1
72の1つに供給されたデータは、第1のワードとして
ヘッダを必要とする。DCバス上に戻されるデータは、
コマンド・ブロック142が常に要求されたことを知っ
ているのでヘッダを有しない。
2は、32ビット・データ・ワードによって動作する。
上述のように、CDCバスは、CFバスおよびFDバス
を含む他のバスの一部を含んでおり、コマンド・ブロッ
ク142がピクセルを3DRAMチップ192および1
94内に転送することができるようにするのに使用され
る。DCバスは、ドロー・プロセッサ172からのレジ
スタの読取り、ならびに3DRAMからのピクセルの読
取りを可能にする。CDバス上のドロー・プロセッサ1
72の1つに供給されたデータは、第1のワードとして
ヘッダを必要とする。DCバス上に戻されるデータは、
コマンド・ブロック142が常に要求されたことを知っ
ているのでヘッダを有しない。
【0082】ドロー・プロセッサ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に信号を戻す。
ド・プロセッサ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に信号を戻す。
【0083】上述のように、プリミティブ累積バッファ
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に出力を供給
する。
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に出力を供給
する。
【0084】プリミティブ累積バッファ404は、完全
なプリミティブが受け取られるまでプリミティブ・デー
タを累積するのに使用される。したがって、データが6
つの浮動小数点プロセッサ152Aないし152Fから
収集されるにつれて、データは、最終的に完全なプリミ
ティブを形成する。プリミティブ累積バッファ404
は、1つの完全なプリミティブを保持するのに十分な空
きを含んでおり、さらに滑らかなパイプラインの流れを
維持する第2のプリミティブの部分を保持するのに十分
な記憶容量を含んでいる。6つのプリミティブ累積バッ
ファ404は、6つの各浮動小数点プロセッサ152A
ないし152Fからデータが入ってくるにつれていっぱ
いになる。プリミティブが完全に受け取られるとすぐ
に、一般に、次のプリミティブが後ろから来る。したが
って、プリミティブ累積バッファ404は、次のプリミ
ティブから入って来るデータからデータがいっぱいにな
るまで、プリミティブ累積バッファ404からの完全な
プリミティブをエッジ・ウォーカ論理回路422に転送
するのに十分な余分のバッファを含んでいる。好ましい
実施形態では、プリミティブ累積バッファ404は、処
理される最大のプリミティブ(三角形)よりも大きい複
数のワードである。プリミティブ累積バッファ404
は、エッジ・ウォーカ論理回路422に64ビット出力
を供給する。プリミティブは、スコアボード論理回路4
18の概念に基づいてプリミティブ累積バッファ404
から一度に1つ取り出される。
なプリミティブが受け取られるまでプリミティブ・デー
タを累積するのに使用される。したがって、データが6
つの浮動小数点プロセッサ152Aないし152Fから
収集されるにつれて、データは、最終的に完全なプリミ
ティブを形成する。プリミティブ累積バッファ404
は、1つの完全なプリミティブを保持するのに十分な空
きを含んでおり、さらに滑らかなパイプラインの流れを
維持する第2のプリミティブの部分を保持するのに十分
な記憶容量を含んでいる。6つのプリミティブ累積バッ
ファ404は、6つの各浮動小数点プロセッサ152A
ないし152Fからデータが入ってくるにつれていっぱ
いになる。プリミティブが完全に受け取られるとすぐ
に、一般に、次のプリミティブが後ろから来る。したが
って、プリミティブ累積バッファ404は、次のプリミ
ティブから入って来るデータからデータがいっぱいにな
るまで、プリミティブ累積バッファ404からの完全な
プリミティブをエッジ・ウォーカ論理回路422に転送
するのに十分な余分のバッファを含んでいる。好ましい
実施形態では、プリミティブ累積バッファ404は、処
理される最大のプリミティブ(三角形)よりも大きい複
数のワードである。プリミティブ累積バッファ404
は、エッジ・ウォーカ論理回路422に64ビット出力
を供給する。プリミティブは、スコアボード論理回路4
18の概念に基づいてプリミティブ累積バッファ404
から一度に1つ取り出される。
【0085】エッジ・ウォーカ論理回路422は、プリ
ミティブをスパン充填ユニット424が容易に処理する
ことができるいくつかの部分に分割する。三角形の場
合、エッジ・ウォーカ論理回路422は、2つの現在エ
ッジに沿って歩き、最も近いピクセル・サンプル点に調
整された一対の垂直スパンを生成し、次いでそれをスパ
ン充填ユニット424に送る。エッジ・ウォーカ・ユニ
ット422はまた、線用の同じ調整を実施し、三角形ス
パンに非常に似た線記述をスパン充填ユニット424に
送る。エッジ・ウォーカ論理回路422は、これらの調
整を実施するために使用される2つの16×24マルチ
プレクサを含んでいる。エッジ・ウォーカ論理回路42
2はさらに、他の計算を行うために使用されるカウント
を追跡する複数の加算器を含んでいる。三角形および線
以外のプリミティブは、資源の最も効率的な用途に応じ
て分割される。ギザギザのドットもアンチエイリアシン
グされたドットも、ギザギザのドットに0.5を加える
など、調整が最小の論理回路を介してまっすぐに送られ
る。大きなドットは、個々のピクセルとしてエッジ・ウ
ォーカ論理回路422を介して供給される。エッジ・ウ
ォーカ論理回路422は、多角形および長方形を水平ス
パンに変換する。エッジ・ウォーカ論理回路422は、
スパン充填ユニット424上に送られる前にブレゼンハ
ム(Bresenham)線をいかなる形でも修正しな
い。
ミティブをスパン充填ユニット424が容易に処理する
ことができるいくつかの部分に分割する。三角形の場
合、エッジ・ウォーカ論理回路422は、2つの現在エ
ッジに沿って歩き、最も近いピクセル・サンプル点に調
整された一対の垂直スパンを生成し、次いでそれをスパ
ン充填ユニット424に送る。エッジ・ウォーカ・ユニ
ット422はまた、線用の同じ調整を実施し、三角形ス
パンに非常に似た線記述をスパン充填ユニット424に
送る。エッジ・ウォーカ論理回路422は、これらの調
整を実施するために使用される2つの16×24マルチ
プレクサを含んでいる。エッジ・ウォーカ論理回路42
2はさらに、他の計算を行うために使用されるカウント
を追跡する複数の加算器を含んでいる。三角形および線
以外のプリミティブは、資源の最も効率的な用途に応じ
て分割される。ギザギザのドットもアンチエイリアシン
グされたドットも、ギザギザのドットに0.5を加える
など、調整が最小の論理回路を介してまっすぐに送られ
る。大きなドットは、個々のピクセルとしてエッジ・ウ
ォーカ論理回路422を介して供給される。エッジ・ウ
ォーカ論理回路422は、多角形および長方形を水平ス
パンに変換する。エッジ・ウォーカ論理回路422は、
スパン充填ユニット424上に送られる前にブレゼンハ
ム(Bresenham)線をいかなる形でも修正しな
い。
【0086】スパン充填ユニット424は、通常三角形
および線に対して、任意に配向したスパン間で値の補間
を実施し、またアンチエイリアシングされた線に対して
フィルタ・ウェイト・テーブル・ルックアップを実施す
る。三角形スパン対、長方形スパンおよび多角形スパン
を含む最適化されたプリミティブ、およびアンチエイリ
アシングされた線および点の場合、1サイクルにつき2
つのピクセルが発生する。他のすべてのプリミティブ
は、1サイクルにつき1つのピクセルを発生する。ま
た、スパン充填ユニット424の最後の段は、ディザリ
ングを実施し、4×4スクリーン空間ディザ・パターン
を使用して12ビット・カラーを8ビット値に変換す
る。スパン充填論理回路424は、テクスチャ・ピクセ
ル・プロセッサ426に出力を供給する。
および線に対して、任意に配向したスパン間で値の補間
を実施し、またアンチエイリアシングされた線に対して
フィルタ・ウェイト・テーブル・ルックアップを実施す
る。三角形スパン対、長方形スパンおよび多角形スパン
を含む最適化されたプリミティブ、およびアンチエイリ
アシングされた線および点の場合、1サイクルにつき2
つのピクセルが発生する。他のすべてのプリミティブ
は、1サイクルにつき1つのピクセルを発生する。ま
た、スパン充填ユニット424の最後の段は、ディザリ
ングを実施し、4×4スクリーン空間ディザ・パターン
を使用して12ビット・カラーを8ビット値に変換す
る。スパン充填論理回路424は、テクスチャ・ピクセ
ル・プロセッサ426に出力を供給する。
【0087】テクスチャ・ピクセル・プロセッサ426
は、テクスチャ計算を実施し、テクスチャ・メモリ43
0内のテクセルのルックアップを制御する。テクスチャ
・ピクセル・プロセッサ426は、ピクセル・プロセッ
サ434によってピクセルにマージすべきカラーをもた
らす。テクスチャ・ピクセル・プロセッサ426は、テ
クスチャ三角形を除いて他のすべてのプリミティブに対
してピクセル・データ・マルチプレクサ432上にデー
タを送る。
は、テクスチャ計算を実施し、テクスチャ・メモリ43
0内のテクセルのルックアップを制御する。テクスチャ
・ピクセル・プロセッサ426は、ピクセル・プロセッ
サ434によってピクセルにマージすべきカラーをもた
らす。テクスチャ・ピクセル・プロセッサ426は、テ
クスチャ三角形を除いて他のすべてのプリミティブに対
してピクセル・データ・マルチプレクサ432上にデー
タを送る。
【0088】上述のように、プリミティブ累積バッファ
404はテクスチャ・エキスパンダ428に出力を供給
する。テクスチャ・エキスパンダ428は、受け取った
テクスチャをテクスチャ・メモリ430内に記憶するた
めに拡大するように動作する。このようにして、テクス
チャ・メモリ430は、プリミティブ累積バッファ40
4から直接ロードされ、テクセル・ルックアップのため
にテクスチャ・ピクセル・プロセッサに接続される。テ
クスチャ・メモリ430は、すべてのより小さいミップ
マップを含む16×16テクセル領域をテクスチャ・マ
ップするのに十分なデータを保持するように設計されて
いる。テクスチャ・メモリ430は、現在のバッファを
使用している間に1つのバッファがロードできるように
二重にバッファされることが好ましい。16×16テク
セル領域は、実際には補間が正確に動作できるように1
7×17アレイとして記憶されることに留意されたい。
404はテクスチャ・エキスパンダ428に出力を供給
する。テクスチャ・エキスパンダ428は、受け取った
テクスチャをテクスチャ・メモリ430内に記憶するた
めに拡大するように動作する。このようにして、テクス
チャ・メモリ430は、プリミティブ累積バッファ40
4から直接ロードされ、テクセル・ルックアップのため
にテクスチャ・ピクセル・プロセッサに接続される。テ
クスチャ・メモリ430は、すべてのより小さいミップ
マップを含む16×16テクセル領域をテクスチャ・マ
ップするのに十分なデータを保持するように設計されて
いる。テクスチャ・メモリ430は、現在のバッファを
使用している間に1つのバッファがロードできるように
二重にバッファされることが好ましい。16×16テク
セル領域は、実際には補間が正確に動作できるように1
7×17アレイとして記憶されることに留意されたい。
【0089】上述のように、ピクセル・データ・マルチ
プレクサ432は、テクスチャ・ピクセル・プロセッサ
426および直接ポート・ユニット416から入力デー
タを受け取る。ピクセル・データ・マルチプレクサ論理
回路432は、スパン充填ユニット424から来るピク
セルと、CDバスから来るピクセルの間を調停する。C
Dバスからのピクセルには常に優先度が与えられる。ピ
クセル・データ・マルチプレクサ432はその出力をピ
クセル・プロセッサ434に供給する。
プレクサ432は、テクスチャ・ピクセル・プロセッサ
426および直接ポート・ユニット416から入力デー
タを受け取る。ピクセル・データ・マルチプレクサ論理
回路432は、スパン充填ユニット424から来るピク
セルと、CDバスから来るピクセルの間を調停する。C
Dバスからのピクセルには常に優先度が与えられる。ピ
クセル・データ・マルチプレクサ432はその出力をピ
クセル・プロセッサ434に供給する。
【0090】ピクセル・プロセッサ434は、3DRA
M192および194内の論理動作のためにブレンディ
ング、アンチエイリアシング、深さキューイングおよび
セットアップを実施する。ピクセル・プロセッサ434
はまた、線パターニング、ステンシル・パターニング、
Vポート・クリッピングなどの動作のためにピクセル書
込みを防ぐように動作できる論理回路を含んでいる。ピ
クセル・プロセッサ434は、フレーム・バッファ・イ
ンタフェース436に出力を供給する。
M192および194内の論理動作のためにブレンディ
ング、アンチエイリアシング、深さキューイングおよび
セットアップを実施する。ピクセル・プロセッサ434
はまた、線パターニング、ステンシル・パターニング、
Vポート・クリッピングなどの動作のためにピクセル書
込みを防ぐように動作できる論理回路を含んでいる。ピ
クセル・プロセッサ434は、フレーム・バッファ・イ
ンタフェース436に出力を供給する。
【0091】フレーム・バッファ・インタフェース43
6は、3DRAMメモリ192および194からのピク
セルの読取りおよび書込みを行うために必要な論理回路
を含んでいる。フレーム・バッファ・インタフェース4
36は、3DRAMチップ内のレベル1(L1)キャッ
シュおよびレベル2(L2)キャッシュを管理する。こ
れは、書き込むべきピクセルを予見し、他のピクセル・
アクセスが行われている間に必要なキャッシュ内でペー
ジングを行うことによって実施される。また、フレーム
・バッファ・インタフェース436は、図示のように各
3DRAMメモリ192および194に結合される。
6は、3DRAMメモリ192および194からのピク
セルの読取りおよび書込みを行うために必要な論理回路
を含んでいる。フレーム・バッファ・インタフェース4
36は、3DRAMチップ内のレベル1(L1)キャッ
シュおよびレベル2(L2)キャッシュを管理する。こ
れは、書き込むべきピクセルを予見し、他のピクセル・
アクセスが行われている間に必要なキャッシュ内でペー
ジングを行うことによって実施される。また、フレーム
・バッファ・インタフェース436は、図示のように各
3DRAMメモリ192および194に結合される。
【0092】図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ビット部分として送られる。
ブロック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ビット部分として送られる。
【0093】48ビット・ワードは、6つの別個のパス
間で同期している。48ビット・ワードの最初の8ビッ
ト部分は、6つのパスすべてについて同じサイクル上で
転送される。1つのパスが48ビット転送の開始時に準
備ができていない場合、次の48ビット・ワード転送サ
イクルまで待たなければならない。しかしながら、プリ
ミティブの開始に関しては同期していない。プリミティ
ブのワードは、転送に使用できるときはいつでも転送す
ることができる。
間で同期している。48ビット・ワードの最初の8ビッ
ト部分は、6つのパスすべてについて同じサイクル上で
転送される。1つのパスが48ビット転送の開始時に準
備ができていない場合、次の48ビット・ワード転送サ
イクルまで待たなければならない。しかしながら、プリ
ミティブの開始に関しては同期していない。プリミティ
ブのワードは、転送に使用できるときはいつでも転送す
ることができる。
【0094】データ部分は、それぞれの浮動小数点プロ
セッサ152によって受け取られると、48ビット・ワ
ードに再アセンブルされる。また、6ビット・コード
は、アセンブルされ、データに対して行うべきことを浮
動小数点プロセッサ152に知らせる。パススルー・デ
ータなどの浮動小数点データは、下位32ビットから引
き出され、Fコア352によって処理するためにFIバ
ッファ372内に記憶される。48ビット・ワード内に
パックされた3つの16ビット数として送られた法線
は、Lコア354によって処理するためにLIバッファ
376内に記憶される。結合したカラーおよび頂点は、
アンパックされ、16ビットはLIバッファ376に進
み、32ビットはFIバッファ372に進む。
セッサ152によって受け取られると、48ビット・ワ
ードに再アセンブルされる。また、6ビット・コード
は、アセンブルされ、データに対して行うべきことを浮
動小数点プロセッサ152に知らせる。パススルー・デ
ータなどの浮動小数点データは、下位32ビットから引
き出され、Fコア352によって処理するためにFIバ
ッファ372内に記憶される。48ビット・ワード内に
パックされた3つの16ビット数として送られた法線
は、Lコア354によって処理するためにLIバッファ
376内に記憶される。結合したカラーおよび頂点は、
アンパックされ、16ビットはLIバッファ376に進
み、32ビットはFIバッファ372に進む。
【0095】CDバスはCFバス・データ線を借用する 図8に示すように、CFバスは、CDバスで示される余
分のワイヤを含んでいる。論理上、CDバスは、CFバ
スと無関係である。しかしながら、CDバスは、CFバ
スからのデータ線を共用または「借用」し、浮動小数点
プロセッサ152をバッファ・チップとして使用する。
図示のように、3つのCFバス出力FIFO144Aな
いし144Cは、それぞれのマルチプレクサ502Aな
いし502Cにデータを供給する。また、これらのマル
チプレクサは、CDバスを含む8ビット・データを受け
取る。また、CDバスの3ビット部分は、コマンド・ブ
ロック142の最後の出力段上に供給される。
分のワイヤを含んでいる。論理上、CDバスは、CFバ
スと無関係である。しかしながら、CDバスは、CFバ
スからのデータ線を共用または「借用」し、浮動小数点
プロセッサ152をバッファ・チップとして使用する。
図示のように、3つのCFバス出力FIFO144Aな
いし144Cは、それぞれのマルチプレクサ502Aな
いし502Cにデータを供給する。また、これらのマル
チプレクサは、CDバスを含む8ビット・データを受け
取る。また、CDバスの3ビット部分は、コマンド・ブ
ロック142の最後の出力段上に供給される。
【0096】32ビット・ワードをコマンド・ブロック
142からドロー・プロセッサ172に転送する場合、
1サイクルをCFバスから「借用」する。CFバス出力
FIFO144からの転送は1サイクルの間停止し、C
Dバス・データはバス上に向けられる。浮動小数点プロ
セッサ152からドロー・プロセッサ172への11ビ
ット・データ・パスを一致させるために、さらに3つの
線をフロート(CF)データ・パスへの各最初の3つの
コマンドに追加する。これにより、6つの浮動小数点プ
ロセッサ152のうちの3つを使用して、32ビット・
ワードを転送する33ビットが得られる。
142からドロー・プロセッサ172に転送する場合、
1サイクルをCFバスから「借用」する。CFバス出力
FIFO144からの転送は1サイクルの間停止し、C
Dバス・データはバス上に向けられる。浮動小数点プロ
セッサ152からドロー・プロセッサ172への11ビ
ット・データ・パスを一致させるために、さらに3つの
線をフロート(CF)データ・パスへの各最初の3つの
コマンドに追加する。これにより、6つの浮動小数点プ
ロセッサ152のうちの3つを使用して、32ビット・
ワードを転送する33ビットが得られる。
【0097】CDバスを介して転送されたデータは、コ
マンド・プロセッサ出力の最後の段の後に挿入され、処
理段の前にデータ・ストリームから浮動小数点プロセッ
サ152内に引き戻される。CFバス・データ転送が唯
一中断するのは、データを転送するのに借用した1サイ
クルである。好ましい実施形態では、6つの浮動小数点
プロセッサ152はすべて、それらのうちの3つが特別
なデータを含んでいなくても、この1サイクルが「しゃ
っくり」する。浮動小数点プロセッサ出力におけるCD
バス転送についての詳細は以下で述べる。
マンド・プロセッサ出力の最後の段の後に挿入され、処
理段の前にデータ・ストリームから浮動小数点プロセッ
サ152内に引き戻される。CFバス・データ転送が唯
一中断するのは、データを転送するのに借用した1サイ
クルである。好ましい実施形態では、6つの浮動小数点
プロセッサ152はすべて、それらのうちの3つが特別
なデータを含んでいなくても、この1サイクルが「しゃ
っくり」する。浮動小数点プロセッサ出力におけるCD
バス転送についての詳細は以下で述べる。
【0098】図9 FDバス 図9に、浮動小数点プロセッサ152からドロー・プロ
セッサ172へのバスであるFDバスを示す。図9は、
それぞれの浮動小数点プロセッサ152およびドロー・
プロセッサ172内の関連するバッファを示すFDバス
のブロック図である。図9には一方のドロー・プロセッ
サ172へのワイヤのみが示されているが、図3および
図4に示すように、物理的には、各浮動小数点プロセッ
サ152から2つの各ドロー・プロセッサ172への別
個のワイヤがあることに留意されたい。論理的には、ワ
イヤは、それらの上に常に同じデータを有しているの
で、両方のドロー・プロセッサ172に進む同じワイヤ
である。
セッサ172へのバスであるFDバスを示す。図9は、
それぞれの浮動小数点プロセッサ152およびドロー・
プロセッサ172内の関連するバッファを示すFDバス
のブロック図である。図9には一方のドロー・プロセッ
サ172へのワイヤのみが示されているが、図3および
図4に示すように、物理的には、各浮動小数点プロセッ
サ152から2つの各ドロー・プロセッサ172への別
個のワイヤがあることに留意されたい。論理的には、ワ
イヤは、それらの上に常に同じデータを有しているの
で、両方のドロー・プロセッサ172に進む同じワイヤ
である。
【0099】データは、セットアップ・ユニット(Sコ
ア)によってつくり出されると、SOバッファ158に
書き込まれる。このバッファ内の各ワードは32ビット
である。各ワードは、SOバッファ158から3つの1
1ビット部分、まず最上位ビット内に取られ、一度にF
Bバス11ビットを介して送られる。次いで、データ・
ワードは、再アセンブルされ、ドロー・プロセッサ17
2内で32ビット・ワードに戻される。33番目のビッ
トは、プリミティブの最後のワードに対して「1」にセ
ットされる。これにより、バスを介して送られたワード
・カウントが不要になる。
ア)によってつくり出されると、SOバッファ158に
書き込まれる。このバッファ内の各ワードは32ビット
である。各ワードは、SOバッファ158から3つの1
1ビット部分、まず最上位ビット内に取られ、一度にF
Bバス11ビットを介して送られる。次いで、データ・
ワードは、再アセンブルされ、ドロー・プロセッサ17
2内で32ビット・ワードに戻される。33番目のビッ
トは、プリミティブの最後のワードに対して「1」にセ
ットされる。これにより、バスを介して送られたワード
・カウントが不要になる。
【0100】図示のように、各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バ
スにリダイレクトされる。
その出力をマルチプレクサ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バ
スにリダイレクトされる。
【0101】図10 CDCバス 図10は、上述したCDCバスを示す。論理的には、C
DCバスは、コマンド・ブロック142とドロー・プロ
セッサ172との間の32ビット幅双方向データ・バス
と考えられる。実際に、CDバスは、コマンド・ブロッ
ク142から各ドロー・プロセッサ172Aおよび17
2Bに進むCDバスと、各ドロー・プロセッサ172A
および172Bからコマンド・プロセッサ142へ進む
DCバスの2つの双方向バスから構成される。
DCバスは、コマンド・ブロック142とドロー・プロ
セッサ172との間の32ビット幅双方向データ・バス
と考えられる。実際に、CDバスは、コマンド・ブロッ
ク142から各ドロー・プロセッサ172Aおよび17
2Bに進むCDバスと、各ドロー・プロセッサ172A
および172Bからコマンド・プロセッサ142へ進む
DCバスの2つの双方向バスから構成される。
【0102】CDCバスは、コマンド・プロセッサ14
2からフレーム・バッファ、すなわち3DRAMメモリ
192および194への「直接ポート」パスである。C
DCバスは、ピクセルをフレーム・バッファ内に書き込
むために使用される。CDCバスはまた、レジスタおよ
びピクセルを読み返すため、ならびに浮動小数点ブロッ
クSRAMの内容を読み返すために使用される。以下で
説明するように、CDバスは、CFバスおよびFDバス
からいくつかのワイヤを借用し、浮動小数点プロセッサ
152Aないし152Fを2段バッファとして使用す
る。サイクルは、要求に応じてこれら2つのバスから一
度に1つのワードが借用される。
2からフレーム・バッファ、すなわち3DRAMメモリ
192および194への「直接ポート」パスである。C
DCバスは、ピクセルをフレーム・バッファ内に書き込
むために使用される。CDCバスはまた、レジスタおよ
びピクセルを読み返すため、ならびに浮動小数点ブロッ
クSRAMの内容を読み返すために使用される。以下で
説明するように、CDバスは、CFバスおよびFDバス
からいくつかのワイヤを借用し、浮動小数点プロセッサ
152Aないし152Fを2段バッファとして使用す
る。サイクルは、要求に応じてこれら2つのバスから一
度に1つのワードが借用される。
【0103】図10に示すように、CDバスは、CFバ
ス上で担持され、3つの各浮動小数点ブロック・チップ
152Aないし152Cの入力バッファ362に供給さ
れる。データ転送がCFバス転送である場合、データ
は、図示のようにフロート論理回路に供給される。しか
しながら、データ転送がCDバス転送である場合、デー
タは、それぞれのFIFOまたはバス・インタフェース
からそれぞれの浮動小数点プロセッサ152Aないし1
52C内のそれぞれのマルチプレクサ532Aないし5
32Cに直接供給される。各マルチプレクサ532Aな
いし532Cからの出力は、それぞれの出力バッファ3
66を介してFDバスへ供給され、次いでそれぞれのド
ロー・プロセッサ172Aおよび172Bに供給され
る。
ス上で担持され、3つの各浮動小数点ブロック・チップ
152Aないし152Cの入力バッファ362に供給さ
れる。データ転送がCFバス転送である場合、データ
は、図示のようにフロート論理回路に供給される。しか
しながら、データ転送がCDバス転送である場合、デー
タは、それぞれのFIFOまたはバス・インタフェース
からそれぞれの浮動小数点プロセッサ152Aないし1
52C内のそれぞれのマルチプレクサ532Aないし5
32Cに直接供給される。各マルチプレクサ532Aな
いし532Cからの出力は、それぞれの出力バッファ3
66を介してFDバスへ供給され、次いでそれぞれのド
ロー・プロセッサ172Aおよび172Bに供給され
る。
【0104】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への内部データ・パスを
使用する。
送されたデータは、通常の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への内部データ・パスを
使用する。
【0105】ほとんどの場合、コマンド・ブロック14
2は、浮動小数点ブロック152Aないし152F内の
浮動小数点論理回路を介して供給されたデータを各ドロ
ー・ブロック172Aおよび172Bに供給する。しか
しながら、場合によっては、コマンド・ブロック142
は、浮動小数点論理回路を通過する必要なしにデータを
直接ドロー・ブロック172Aおよび172Bに迅速に
供給することを望む。CDバスは、主として、コマンド
・ブロック142がデータを直接フレーム・バッファに
供給することができるようにし、浮動小数点プロセッサ
152内の浮動小数点論理回路をバイパスするために使
用される。上述のように、CDバスのほとんどの部分
は、3つの浮動小数点ブロック152Aないし152C
内に「チップ上に」供給される。これにより所要のボー
ド・スペースが減少する。
2は、浮動小数点ブロック152Aないし152F内の
浮動小数点論理回路を介して供給されたデータを各ドロ
ー・ブロック172Aおよび172Bに供給する。しか
しながら、場合によっては、コマンド・ブロック142
は、浮動小数点論理回路を通過する必要なしにデータを
直接ドロー・ブロック172Aおよび172Bに迅速に
供給することを望む。CDバスは、主として、コマンド
・ブロック142がデータを直接フレーム・バッファに
供給することができるようにし、浮動小数点プロセッサ
152内の浮動小数点論理回路をバイパスするために使
用される。上述のように、CDバスのほとんどの部分
は、3つの浮動小数点ブロック152Aないし152C
内に「チップ上に」供給される。これにより所要のボー
ド・スペースが減少する。
【0106】一実施形態では、CDバスまたはバイパス
・チャネル364を使用して、データを直接コマンド・
ブロック142からドロー・ブロック172Aおよび1
72Bに送っている間、各浮動小数点プロセッサ152
は、この間に他のデータを処理していてもよい。したが
って、これにより同時動作が可能になり、より大きいシ
ステム効率が得られる。
・チャネル364を使用して、データを直接コマンド・
ブロック142からドロー・ブロック172Aおよび1
72Bに送っている間、各浮動小数点プロセッサ152
は、この間に他のデータを処理していてもよい。したが
って、これにより同時動作が可能になり、より大きいシ
ステム効率が得られる。
【0107】また、図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ビットのデ
ータ・パスの半分は空いたままである。
ロセッサ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ビットのデ
ータ・パスの半分は空いたままである。
【0108】DCバスは、ピクセルを各ドロー・ブロッ
ク172Aおよび172Bからコマンド・ブロック14
2へ戻すための戻りパスになる。したがって、コマンド
・ブロック142がドロー・ブロック172Aおよび1
72B内のピクセルを読み出すように要求すると、ドロ
ー・ブロック172Aおよび172Bは、DCバス上の
このピクセル・データをコマンド・ブロック142に供
給する。図示のように、コマンド・ブロック142は、
DCバスからデータを受け取るバッファを含んでいる。
DCバスは、コマンド・ブロック142がそれぞれのフ
レーム・バッファからピクセルを読み取ることを可能に
する。DCバスはまた、ドロー・ブロック172Aおよ
び172Bが内容スイッチ中など状態をコマンド・ブロ
ック142に戻すことを可能にする。
ク172Aおよび172Bからコマンド・ブロック14
2へ戻すための戻りパスになる。したがって、コマンド
・ブロック142がドロー・ブロック172Aおよび1
72B内のピクセルを読み出すように要求すると、ドロ
ー・ブロック172Aおよび172Bは、DCバス上の
このピクセル・データをコマンド・ブロック142に供
給する。図示のように、コマンド・ブロック142は、
DCバスからデータを受け取るバッファを含んでいる。
DCバスは、コマンド・ブロック142がそれぞれのフ
レーム・バッファからピクセルを読み取ることを可能に
する。DCバスはまた、ドロー・ブロック172Aおよ
び172Bが内容スイッチ中など状態をコマンド・ブロ
ック142に戻すことを可能にする。
【0109】DCバスは、主として、コマンド・ブロッ
ク142が各3DRAMメモリ192および194から
ピクセルを読み返すことを可能にするために使用され
る。例えば、ピクセル・データのウィンドウがメモリ1
92および194内に記憶されており、かつこのウィン
ドウが一部または全部が他のウィンドウによって遮断さ
れている場合、CPU102は、このウィンドウが遮断
されなくなったときに遮断されたデータを後で再使用す
ることができるようにこのデータを記憶装置から読み取
ることを望む。この場合、CPU102は、ピクセル・
データを読み取る要求をコマンド・ブロック142に送
り、コマンド・ブロック142からの要求に応答して、
各ドロー・ブロック172Aおよび172Bは、メモリ
192および194からピクセル・データを読み取り、
このデータをDCバス戻りパス上でコマンド・ブロック
142に戻す。次いで、コマンド・ブロック142は、
このデータを記憶のためにCPU102に戻す。
ク142が各3DRAMメモリ192および194から
ピクセルを読み返すことを可能にするために使用され
る。例えば、ピクセル・データのウィンドウがメモリ1
92および194内に記憶されており、かつこのウィン
ドウが一部または全部が他のウィンドウによって遮断さ
れている場合、CPU102は、このウィンドウが遮断
されなくなったときに遮断されたデータを後で再使用す
ることができるようにこのデータを記憶装置から読み取
ることを望む。この場合、CPU102は、ピクセル・
データを読み取る要求をコマンド・ブロック142に送
り、コマンド・ブロック142からの要求に応答して、
各ドロー・ブロック172Aおよび172Bは、メモリ
192および194からピクセル・データを読み取り、
このデータをDCバス戻りパス上でコマンド・ブロック
142に戻す。次いで、コマンド・ブロック142は、
このデータを記憶のためにCPU102に戻す。
【0110】コマンド・ブロックの動作 コマンド・ブロック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に供給する。
の浮動小数点ブロック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に供給する。
【0111】それぞれの出力FIFOバッファ158A
ないし158Fがコマンド・ブロック142から許可を
求め、受け取ると、それぞれの出力FIFOバッファ1
58は、各ドロー・ブロック172Aおよび172Bに
プリミティブを送る。コマンド・ブロック142は、各
入力待ち行列155Aないし155Fおよび各出力待ち
行列158Aないし158Fのカウンタを含んでおり、
それぞれのバッファがデータを受け取った際またはそれ
ぞれのバッファからデータが送られた際にそれぞれのカ
ウンタを増分するように動作することが好ましい。コマ
ンド・ブロック142はまた、各ドロー・ブロック17
2Aおよび172Bにそれらの受け取ったプリミティブ
ごとに実施の順序を示す制御線を供給する。
ないし158Fがコマンド・ブロック142から許可を
求め、受け取ると、それぞれの出力FIFOバッファ1
58は、各ドロー・ブロック172Aおよび172Bに
プリミティブを送る。コマンド・ブロック142は、各
入力待ち行列155Aないし155Fおよび各出力待ち
行列158Aないし158Fのカウンタを含んでおり、
それぞれのバッファがデータを受け取った際またはそれ
ぞれのバッファからデータが送られた際にそれぞれのカ
ウンタを増分するように動作することが好ましい。コマ
ンド・ブロック142はまた、各ドロー・ブロック17
2Aおよび172Bにそれらの受け取ったプリミティブ
ごとに実施の順序を示す制御線を供給する。
【0112】以上、本発明のシステムおよび方法につい
て、記載の実施形態に関して説明したが、本発明は、本
明細書に記載の特定の形態に限定されるものではなく、
首記の請求の範囲によって規定される本発明の精神およ
び範囲内に当然含まれるそのような代替物、修正物およ
び同等物を含むものである。
て、記載の実施形態に関して説明したが、本発明は、本
明細書に記載の特定の形態に限定されるものではなく、
首記の請求の範囲によって規定される本発明の精神およ
び範囲内に当然含まれるそのような代替物、修正物およ
び同等物を含むものである。
【図1】本発明による3次元(3D)グラフィックス・
アクセラレータを含むコンピュータ・システムを示す図
である。
アクセラレータを含むコンピュータ・システムを示す図
である。
【図2】図1のコンピュータ・システムの簡単化された
ブロック図である。
ブロック図である。
【図3】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータを示すブロック図である。
ィックス・アクセラレータを示すブロック図である。
【図4】図3の3次元グラフィックス・アクセラレータ
の一部を示すブロック図である。
の一部を示すブロック図である。
【図5】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内のコマンド・プリプロセッ
サを示すブロック図である。
ィックス・アクセラレータ内のコマンド・プリプロセッ
サを示すブロック図である。
【図6】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つの浮動小数点プロセ
ッサを示すブロック図である。
ィックス・アクセラレータ内の1つの浮動小数点プロセ
ッサを示すブロック図である。
【図7】本発明の好ましい実施形態による3次元グラフ
ィックス・アクセラレータ内の1つのドロー・プロセッ
サを示すブロック図である。
ィックス・アクセラレータ内の1つのドロー・プロセッ
サを示すブロック図である。
【図8】コマンド・プリプロセッサを各浮動小数点プロ
セッサに接続するCFバスを示すブロック図である。
セッサに接続するCFバスを示すブロック図である。
【図9】各浮動小数点プロセッサを各ドロー・プロセッ
サに接続するFDバスを示すブロック図である。
サに接続するFDバスを示すブロック図である。
【図10】コマンド・プリプロセッサを各ドロー・プロ
セッサに接続するCDCバスを示すブロック図である。
セッサに接続するCDCバスを示すブロック図である。
80 コンピュータ・システム 82 システム・ユニット 84 ビデオ・モニタまたはディスプレイ装置 86 キーボード 88 マウス 90 フロッピ・ディスク 100 フレーム・バッファ 102 中央演算処理装置(CPU) 104 高速バスまたはシステム・バス 106 システム・メモリ 112 3次元グラフィックス・アクセラレータ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.
Claims (15)
- 【請求項1】 圧縮された形状入力データおよび圧縮さ
れていない形状入力データを含む形状入力データを受け
取るバスに結合されるようになされた1つまたは複数の
入力バッファと、 入力バッファの出力に結合され、圧縮された形状入力デ
ータを受け取り、圧縮された形状入力データを圧縮解除
して、圧縮解除された形状入力データを与えるように動
作する形状圧縮解除ユニットと、 入力バッファから出力を受け取る第1の入力、および形
状圧縮解除ユニットから出力を受け取る第2の入力を含
み、その第1の入力が、1つまたは複数の入力バッファ
から圧縮されていない形状データを受け取り、その第2
の入力が、形状圧縮解除ユニットから圧縮解除された形
状入力データを受け取り、前記圧縮されていない形状デ
ータまたは前記圧縮解除された形状入力データを選択的
に与える出力を含むマルチプレクサと、 マルチプレクサからデータを受け取るように結合され、
出力プリミティブ・データを与える1つまたは複数の出
力バッファとを含むグラフィックス・アクセラレータ用
のコマンド・プロセッサ。 - 【請求項2】 マルチプレクサの出力を受け取るように
結合され、受け取ったデータを1つまたは複数のタイプ
のフォーマットに変換するように動作し、1つまたは複
数の出力バッファに出力を供給するように結合されたフ
ォーマット変換器をさらに含む請求項1に記載のコマン
ド・プロセッサ。 - 【請求項3】 前記1つまたは複数の入力バッファが非
形状データを受け取るようになされ、 コマンド・プロセッサが、 マルチプレクサの出力に結合され、前記非形状データを
受け取り、前記非形状データを出力バッファに供給する
収集バッファをさらに含む請求項1に記載のコマンド・
プロセッサ。 - 【請求項4】 フォーマット変換器の出力に結合され、
1つまたは複数の頂点に必要な複数の形状入力データを
記憶する頂点累積バッファをさらに含む請求項3に記載
のコマンド・プロセッサ。 - 【請求項5】 頂点累積バッファから出力を受け取るよ
うに結合され、形状プリミティブを構成するために使用
され、出力形状プリミティブ・データを出力バッファに
供給する請求項4に記載のコマンド・プロセッサ。 - 【請求項6】 圧縮された形状入力データおよび圧縮さ
れていない形状入力データを含む形状入力データを受け
取るバスに結合されるようになされた1つまたは複数の
入力バッファと、 前記1つまたは複数の入力バッファに結合され、前記圧
縮されていない形状データを受け取る第1のデータ・パ
スと、 前記1つまたは複数の入力バッファに結合され、前記圧
縮された形状データを受け取る第2のデータ・バスであ
って、入力バッファの出力に結合され、圧縮された形状
入力データを受け取り、圧縮された形状入力データを圧
縮解除して、圧縮解除された形状データを与えるように
動作する形状圧縮解除ユニットを含む第2のデータ・バ
スと、 前記第1のデータ・パスからデータを受け取るように結
合され、出力プリミティブ・データを与える1つまたは
複数の出力バッファとを含むグラフィックス・アクセラ
レータ用のコマンド・プロセッサ。 - 【請求項7】 前記圧縮されていない形状入力データを
受け取る前記第1のデータ・パスに結合された第1の入
力、および形状圧縮解除ユニットから出力を受け取る前
記第2のデータ・パスに結合された第2の入力を含み、
その第1の入力が、1つまたは複数の入力バッファから
圧縮されていない形状データを受け取り、その第2の入
力が、形状圧縮解除ユニットから圧縮解除された形状入
力データを受け取り、前記圧縮されていない形状データ
または前記圧縮解除された形状入力データを選択的に与
える出力を含むマルチプレクサをさらに含む請求項6に
記載のコマンド・プロセッサ。 - 【請求項8】 マルチプレクサの出力を受け取るように
結合され、受け取ったデータを1つまたは複数のタイプ
のフォーマットに変換するように動作し、1つまたは複
数の出力バッファに出力を供給するように結合されたフ
ォーマット変換器をさらに含む請求項7に記載のコマン
ド・プロセッサ。 - 【請求項9】 前記1つまたは複数の入力バッファが非
形状データを受け取るようになされ、 コマンド・プロセッサが、 マルチプレクサの出力に結合され、前記非形状データを
受け取り、前記非形状データを出力バッファに供給する
収集バッファをさらに含む請求項7に記載のコマンド・
プロセッサ。 - 【請求項10】 フォーマット変換器の出力に結合さ
れ、1つまたは複数の頂点に必要な複数の形状入力デー
タを記憶する頂点累積バッファをさらに含む請求項9に
記載のコマンド・プロセッサ。 - 【請求項11】 頂点累積バッファから出力を受け取る
ように結合され、形状プリミティブを構成するために使
用され、出力形状プリミティブ・データを出力バッファ
に供給する請求項10に記載のコマンド・プロセッサ。 - 【請求項12】 フレーム・バッファ・メモリと、 3次元オブジェクトをドローするハイ・レベル・ドロー
・コマンドを受け取るコマンド・ブロックと、 コマンド・ブロックに結合され、浮動小数点演算を実施
し、コマンド・ブロックからハイ・レベル・コマンドを
受け取り、前記ハイ・レベル・コマンドに応答して形状
浮動小数点演算を実施し、それぞれ形状プリミティブ・
データを与える複数の浮動小数点ブロックと、 複数の浮動小数点ブロックに結合され、複数の浮動小数
点ブロックから形状プリミティブ・データを受け取り、
フレーム・バッファ・メモリに結合され、3次元オブジ
ェクト・ピクセル・データをフレーム・バッファ・メモ
リ内にレンダリングする1つまたは複数のドロー・ブロ
ックと、 前記フレーム・バッファ・メモリに結合され、前記フレ
ーム・バッファ・メモリからピクセル・データを受け取
り、アナログ出力をビデオ・モニタに供給するデジタル
アナログ変換器とを含み、 コマンド・ブロックが、 圧縮された形状入力データおよび圧縮されていない形状
入力データを含む形状入力データを受け取るバスに結合
されるようになされた1つまたは複数の入力バッファ
と、 入力バッファの出力に結合され、圧縮された形状入力デ
ータを受け取り、圧縮された形状入力データを圧縮解除
して、圧縮解除された形状入力データを与えるように動
作する形状圧縮解除ユニットと、 入力バッファから出力を受け取る第1の入力、および形
状圧縮解除ユニットから出力を受け取る第2の入力を含
み、その第1の入力が、1つまたは複数の入力バッファ
から圧縮されていない形状データを受け取り、その第2
の入力が、形状圧縮解除ユニットから圧縮解除された形
状入力データを受け取り、前記圧縮されていない形状デ
ータまたは前記圧縮解除された形状入力データを選択的
に与える出力を含むマルチプレクサと、 マルチプレクサからデータを受け取るように結合され、
出力プリミティブ・データを与える1つまたは複数の出
力バッファとを含む3次元グラフィックス・アクセラレ
ーション機能を実施する3次元グラフィックス・アクセ
ラレータ。 - 【請求項13】 コマンド・プロセッサが、マルチプレ
クサの出力を受け取るように結合され、受け取ったデー
タを1つまたは複数のタイプのフォーマットに変換する
ように動作し、1つまたは複数の出力バッファに出力を
供給するように結合されたフォーマット変換器をさらに
含む請求項12に記載の3次元グラフィックス・アクセ
ラレータ。 - 【請求項14】 前記コマンド・プロセッサ内の前記1
つまたは複数の入力バッファが非形状データを受け取る
ようになされ、 コマンド・プロセッサが、 マルチプレクサの出力に結合され、前記非形状データを
受け取り、前記非形状データを出力バッファに供給する
収集バッファをさらに含む請求項13に記載の3次元グ
ラフィックス・アクセラレータ。 - 【請求項15】 圧縮された形状入力データおよび圧縮
されていない形状入力データを含む形状入力データを受
け取るステップと、 前記圧縮された形状データを第1のデータ・パス上で形
状圧縮解除ユニットに転送するステップと、 圧縮解除ユニットが、圧縮された形状入力データを圧縮
解除して、圧縮解除された形状入力データを与えるステ
ップと、 形状圧縮解除ユニットを含まない第2のデータ・パス上
で前記圧縮されていない形状データを転送するステップ
と、 前記圧縮されていない形状データまたは前記圧縮解除さ
れた形状入力データを第3のデータ・パス上で選択的に
与えるステップとを含むグラフィックス・アクセラレー
タ内で形状データを処理する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/673494 | 1996-07-01 | ||
| US08/673,494 US5740409A (en) | 1996-07-01 | 1996-07-01 | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10116352A true JPH10116352A (ja) | 1998-05-06 |
Family
ID=24702880
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9211424A Pending JPH10116352A (ja) | 1996-07-01 | 1997-06-30 | ジオメトリ圧縮解除能力を有する3次元グラフィック・アクセラレータ用のコマンド・プロセッサ |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5740409A (ja) |
| EP (1) | EP0817117B1 (ja) |
| JP (1) | JPH10116352A (ja) |
| DE (1) | DE69728002T2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100382106B1 (ko) * | 2000-07-12 | 2003-05-01 | 학교법인연세대학교 | Mpeg 기반 3d그래픽 가속기 |
| JP2009505301A (ja) * | 2005-09-28 | 2009-02-05 | インテル・コーポレーション | ベクトル処理用の拡張可能な並列パイプライン浮動小数点数演算ユニット |
| JPWO2012074092A1 (ja) * | 2010-12-03 | 2015-03-02 | 株式会社ディジタルメディアプロフェッショナル | 画像処理装置 |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US5999743A (en) * | 1997-09-09 | 1999-12-07 | Compaq Computer Corporation | System and method for dynamically allocating accelerated graphics port memory space |
| US6115682A (en) * | 1997-12-24 | 2000-09-05 | Intel Corporation | Apparatus for analyzing the performance of a computer system |
| US6067643A (en) * | 1997-12-24 | 2000-05-23 | Intel Corporation | Programmable observation system for monitoring the performance of a graphics controller |
| US6167476A (en) * | 1998-09-24 | 2000-12-26 | Compaq Computer Corporation | Apparatus, method and system for accelerated graphics port bus bridges |
| US6704308B2 (en) | 1998-09-29 | 2004-03-09 | Cisco Technology, Inc. | Apparatus and method for processing signals in a plurality of digital signal processors |
| US6243782B1 (en) * | 1998-12-31 | 2001-06-05 | Intel Corporation | Method and apparatus for disabling a graphics device when an upgrade device is installed |
| US6459429B1 (en) * | 1999-06-14 | 2002-10-01 | Sun Microsystems, Inc. | Segmenting compressed graphics data for parallel decompression and rendering |
| US6512515B1 (en) | 1999-09-18 | 2003-01-28 | Wildtangent | Data compression through motion and geometric relation estimation functions |
| US6577769B1 (en) | 1999-09-18 | 2003-06-10 | Wildtangent, Inc. | Data compression through adaptive data size reduction |
| US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
| US6906720B2 (en) * | 2002-03-12 | 2005-06-14 | Sun Microsystems, Inc. | Multipurpose memory system for use in a graphics system |
| US6862027B2 (en) * | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
| US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
| US20050228967A1 (en) * | 2004-03-16 | 2005-10-13 | Sony Computer Entertainment Inc. | Methods and apparatus for reducing power dissipation in a multi-processor system |
| US8224639B2 (en) | 2004-03-29 | 2012-07-17 | Sony Computer Entertainment Inc. | Methods and apparatus for achieving thermal management using processing task scheduling |
| JP4199159B2 (ja) * | 2004-06-09 | 2008-12-17 | 株式会社東芝 | 描画処理装置、描画処理方法、及び描画処理プログラム |
| US7206886B2 (en) * | 2005-02-24 | 2007-04-17 | International Business Machines Corporation | Data ordering translation between linear and interleaved domains at a bus interface |
| US7194567B2 (en) * | 2005-02-24 | 2007-03-20 | International Business Machines Corporation | Method and system for ordering requests at a bus interface |
| US7330925B2 (en) * | 2005-02-24 | 2008-02-12 | International Business Machines Corporation | Transaction flow control mechanism for a bus bridge |
| US7275125B2 (en) * | 2005-02-24 | 2007-09-25 | International Business Machines Corporation | Pipeline bit handling circuit and method for a bus bridge |
| US7275124B2 (en) | 2005-02-24 | 2007-09-25 | International Business Machines Corporation | Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability |
| US7469312B2 (en) * | 2005-02-24 | 2008-12-23 | International Business Machines Corporation | Computer system bus bridge |
| US7234017B2 (en) * | 2005-02-24 | 2007-06-19 | International Business Machines Corporation | Computer system architecture for a processor connected to a high speed bus transceiver |
| US20060190655A1 (en) * | 2005-02-24 | 2006-08-24 | International Business Machines Corporation | Apparatus and method for transaction tag mapping between bus domains |
| US20120019541A1 (en) * | 2010-07-20 | 2012-01-26 | Advanced Micro Devices, Inc. | Multi-Primitive System |
| KR101773396B1 (ko) | 2011-02-09 | 2017-08-31 | 삼성전자주식회사 | 데이터를 압축 해제하는 그래픽 처리 장치 및 방법 |
| US10031328B2 (en) * | 2015-07-24 | 2018-07-24 | General Electric Company | Systems and methods for image processing in optical microscopes |
| US12204757B1 (en) * | 2022-12-16 | 2025-01-21 | Amazon Technologies, Inc. | Strong ordered transaction for DMA transfers |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5208872A (en) * | 1990-03-30 | 1993-05-04 | The United States Of America As Represented By The United States National Aeronautics And Space Administration | Programmable remapper with single flow architecture |
| US5276898A (en) * | 1990-07-26 | 1994-01-04 | International Business Machines Corporation | System for selectively compressing data frames based upon a current processor work load identifying whether the processor is too busy to perform the compression |
| 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 |
| EP0627682B1 (en) * | 1993-06-04 | 1999-05-26 | Sun Microsystems, Inc. | Floating-point processor for a high performance three dimensional graphics accelerator |
| US5585944A (en) * | 1994-05-10 | 1996-12-17 | Kaleida Labs, Inc. | Method for compressing and decompressing images by subdividing pixel color distributions |
| US5838996A (en) * | 1994-05-31 | 1998-11-17 | International Business Machines Corporation | System for determining presence of hardware decompression, selectively enabling hardware-based and software-based decompression, and conditioning the hardware when hardware decompression is available |
-
1996
- 1996-07-01 US US08/673,494 patent/US5740409A/en not_active Expired - Lifetime
-
1997
- 1997-06-30 JP JP9211424A patent/JPH10116352A/ja active Pending
- 1997-07-01 DE DE69728002T patent/DE69728002T2/de not_active Expired - Fee Related
- 1997-07-01 EP EP97110798A patent/EP0817117B1/en not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100382106B1 (ko) * | 2000-07-12 | 2003-05-01 | 학교법인연세대학교 | Mpeg 기반 3d그래픽 가속기 |
| JP2009505301A (ja) * | 2005-09-28 | 2009-02-05 | インテル・コーポレーション | ベクトル処理用の拡張可能な並列パイプライン浮動小数点数演算ユニット |
| JPWO2012074092A1 (ja) * | 2010-12-03 | 2015-03-02 | 株式会社ディジタルメディアプロフェッショナル | 画像処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0817117A2 (en) | 1998-01-07 |
| DE69728002T2 (de) | 2004-09-16 |
| EP0817117A3 (en) | 2002-09-25 |
| EP0817117B1 (en) | 2004-03-10 |
| DE69728002D1 (de) | 2004-04-15 |
| US5740409A (en) | 1998-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5821949A (en) | Three-dimensional graphics accelerator with direct data channels for improved performance | |
| EP0817008B1 (en) | Three-dimensional graphics accelerator which implements multiple logical buses | |
| JPH10116352A (ja) | ジオメトリ圧縮解除能力を有する3次元グラフィック・アクセラレータ用のコマンド・プロセッサ | |
| EP0817010B1 (en) | Floating point processor for a three-dimensional graphics accelerator | |
| US5801711A (en) | Polyline and triangle strip data management techniques for enhancing performance of computer graphics system | |
| US6999087B2 (en) | Dynamically adjusting sample density in a graphics system | |
| US6018353A (en) | Three-dimensional graphics accelerator with an improved vertex buffer for more efficient vertex processing | |
| US7864185B1 (en) | Register based queuing for texture requests | |
| US6141025A (en) | Image generating apparatus with FIFO memory and cache memory | |
| US6476808B1 (en) | Token-based buffer system and method for a geometry pipeline in three-dimensional graphics | |
| US5909225A (en) | Frame buffer cache for graphics applications | |
| US6975322B2 (en) | Dynamically adjusting a number of rendering passes in a graphics system | |
| US7522171B1 (en) | On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer | |
| US6762763B1 (en) | Computer system having a distributed texture memory architecture | |
| US20080150951A1 (en) | 3-d rendering engine with embedded memory | |
| US5949421A (en) | Method and system for efficient register sorting for three dimensional graphics | |
| US7170512B2 (en) | Index processor | |
| US5914724A (en) | Lighting unit for a three-dimensional graphics accelerator with improved handling of incoming color values | |
| US5696944A (en) | Computer graphics system having double buffered vertex ram with granularity | |
| EP1345168A2 (en) | Dynamically adjusting sample density and/or number of rendering passes in a graphics system | |
| JPH09185593A (ja) | マルチプロセッサ装置 | |
| US7489315B1 (en) | Pixel stream assembly for raster operations | |
| US7796133B1 (en) | Unified shader |
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 |