JPH0749961A - グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法 - Google Patents

グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法

Info

Publication number
JPH0749961A
JPH0749961A JP6134912A JP13491294A JPH0749961A JP H0749961 A JPH0749961 A JP H0749961A JP 6134912 A JP6134912 A JP 6134912A JP 13491294 A JP13491294 A JP 13491294A JP H0749961 A JPH0749961 A JP H0749961A
Authority
JP
Japan
Prior art keywords
register
floating point
microinstruction
bit
packet
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
JP6134912A
Other languages
English (en)
Inventor
Michael F Deering
マイケル・エフ・ディアリング
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 JPH0749961A publication Critical patent/JPH0749961A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 コンピュータシステムにおける高性能三次元
グラフィックスアクセラレータの浮動小数点プロセッサ
を開示する。 【構成】 浮動小数点プロセッサは特殊化グラフィック
スマイクロ命令を実現する。特殊化グラフィックスマイ
クロ命令は、三角形の頂点を分類するために汎用レジス
タグループをハードウェア再マッピングさせるスワップ
マイクロ命令を含む。特殊化グラフィックスマイクロ命
令は、三次元ジオメトリのための特殊化条件付き分岐を
さらに含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータグラフィッ
クスシステムの分野に関する。さらに特定すれば、本発
明は、コンピュータシステムにおける高性能三次元グラ
フィックスアクセラレータの浮動小数点プロセッサに関
する。
【0002】
【従来の技術】三次元グラフィックスアクセラレータは
コンピュータシステムの専用グラフィックス描示(レン
ダリング)システムである。典型的には、コンピュータ
システムのホストプロセッサで実行されるアプリケーシ
ョンプログラムは、表示装置に表示すべき三次元グラフ
ィックス要素を定義する三次元ジオメトリ入力データを
生成する。アプリケーションプログラムはホストプロセ
ッサからグラフィックスアクセラレータへジオメトリ入
力データを転送する。その後、グラフィックスアクセラ
レータは対応するグラフィックス要素を表示装置に描示
する。
【0003】従来のグラフィックスアクセラレータで
は、変換、クリップ試験、フェース確定、ライティン
グ、クリッピング及び画面スペース変換という三次元グ
ラフィックス機能は、市販のデジタル信号処理(DS
P)チップにより実行される場合が多い。ところが、そ
のようなDSPチップは三次元コンピュータグラフィッ
クス用として最適化されていない。
【0004】たとえば、通常のDSPチップに設けられ
ている高速アクセス内部レジスタの数は、大半の三次元
グラフィックス処理アルゴリズムの内部ループに対応す
るには少なすぎる。そのため、限られた数の内部レジス
タを補うようにオンチップデータキャッシュを採用す
る。さらに、DSPチップを多重処理環境で機能させる
ためには、支援チップを分類しなければならない。支援
チップを追加すると、残念ながら、グラフィックスアク
セラレータに要するプリント回路基板の面積は拡大し、
システムの電力消費は増加し、発熱も多くなり、システ
ムのコストも高くなってしまう。
【0005】もう1つの例を挙げると、三次元グラフィ
ックス機能は、多くの場合、何らかの基準に従って三次
元頂点を分類することを要求する。DSPチップを採用
するグラフィックスアクセラレータは、内部レジスタ又
はデータキャッシュの記憶場所の間で頂点データを物理
的に転送することによって、その分類を実行する。残念
ながら、頂点データの物理的転送は多くの時間を要し、
システム性能を低下させる。
【0006】さらに例を挙げると、従来のシステムにお
けるDSPチップは、典型的には、ジオメトリ入力パラ
メータをアクセスし且つ変換後の結果を送り出す入出力
タスクを実行しなければならない。DSPチップは、グ
ラフィックス機能タスクに加えて、入出力タスクを実行
する。残念ながら、パラメータ入出力タスクについてD
SPチップにより費やされる時間がグラフィックス機能
タスクから奪われてしまうので、グラフィックス処理性
能は低下する。
【0007】
【発明が解決しようとする課題】本発明は、グラフィッ
クスアクセラレータのコストを最小限に抑えつつグラフ
ィックスアクセラレータの性能を向上させるために特殊
化グラフィックスマイクロ命令及びハードウェア機能を
提供するコンピュータシステムにおける高性能三次元グ
ラフィックスアクセラレータの浮動小数点プロセッサを
提供することを目的とする。
【0008】
【課題を解決するための手段】コンピュータシステムに
おける高性能三次元グラフィックスアクセラレータの浮
動小数点プロセッサを開示する。浮動小数点プロセッサ
は入力回路と、出力回路と、レジスタファイル回路と、
制御回路と、1組の機能単位と、制御記憶装置インタフ
ェース回路とを具備する。入力回路は二重バッファ入力
レジスタファイルを実現する。入力回路はコマンドプリ
プロセッサから浮動小数点コマンドバスを介して再フォ
ーマットされたジオメトリパケットを受信し、その再フ
ォーマットされたジオメトリパケットを緩衝する。出力
回路は二重バッファ出力レジスタファイルを実現する。
出力回路は線引きパケットを緩衝し、線引きコマンドバ
スを介して1組の線引きプロセッサへ線引きパケットを
同報通信する。レジスタファイル回路は第1のレジスタ
グループと、第2のレジスタグループと、第3のレジス
タグループとを含む汎用レジスタファイルを含む。
【0009】制御シーケンサは、制御記憶装置から複数
の特殊化グラフィックスマイクロ命令を読取り且つ1組
の機能単位を使用して特殊化グラフィックスマイクロ命
令を実行することにより、線引きパケットを出力レジス
タファイルへ組立てる。特殊化グラフィックスマイクロ
命令は浮動小数点比較マイクロ命令と、スワップマイク
ロ命令とから構成されている。スワップマイクロ命令
は、第1のレジスタグループ、第2のレジスタグループ
及び第3のレジスタグループに記憶されている1組の頂
点値が定義済順序で記憶されるように、レジスタファイ
ル回路に浮動小数点比較マイクロ命令に対応する一連の
結果フラグに従って第1のレジスタグループ、第2のレ
ジスタグループ及び第3のレジスタグループに関わるレ
ジスタマップを配列替えさせる。
【0010】機能単位は浮動小数点乗算器回路と、浮動
小数点演算論理装置回路と、逆数回路と、整数演算論理
装置回路と、逆数回路と、逆数平方根回路とを含む。汎
用レジスタファイルは所定の数の汎用レジスタから構成
されており、その所定の数の汎用レジスタは三次元グラ
フィックス処理アルゴリズムの内部ループに対するデー
タ記憶域を形成する。
【0011】特殊化グラフィックスマイクロ命令はクリ
ップ試験マイクロ命令をさらに含む。クリップ試験マイ
クロ命令は状態ビットレジスタのクリップモードビット
に従って1つのポイントを1つ又は2つのクリップ平面
と比較し、1つ又は2つの結果ビットをクリップビット
レジスタへシフトする。特殊化グラフィックスマイクロ
命令は複数のジオメトリ条件付き分岐命令をさらに含
む。各々のジオメトリ条件付き分岐命令はクリップビッ
トレジスタの内容に従って分岐条件を確定する。
【0012】特殊化グラフィックスマイクロ命令は、浮
動小数点値を整数値に変換するマイクロ命令と、整数値
を浮動小数点値に変換するマイクロ命令と、データ値の
絶対値を確定するマイクロ命令とをさらに含む。特殊化
グラフィックスマイクロ命令は浮動小数点逆数マイクロ
命令と、逆数平方根マイクロ命令と、飽和加算(0,
1)マイクロ命令と、制御記憶装置と汎用レジスタファ
イルとの間でデータブロック転送を実行するためのブロ
ックロード命令及びブロック記憶命令とをさらに含む。
【0013】
【実施例】コンピュータシステムにおける高性能三次元
グラフィックスアクセラレータを開示する。以下の説明
中、本発明を完全に理解させるために、説明の便宜上、
特定のアプリケーション、特定の数、特定の装置及び特
定の回路を挙げるが、そのような特定の詳細な事項がな
くとも本発明を実施しうることは当業者には明白であろ
う。また、場合によっては、本発明を無用にわかりにく
くしないために、周知のシステムを概略図又はブロック
線図の形で示すこともある。
【0014】そこで、図1を参照すると、ホストプロセ
ッサ20と、メモリサブシステム22と、グラフィック
スアクセラレータ24と、表示装置26とを含むコンピ
ュータシステムのブロック線図が示されている。ホスト
プロセッサ20、メモリサブシステム22及びグラフィ
ックスアクセラレータ24は、それぞれ、ホストバス2
8を介して通信するように結合している。
【0015】表示装置26は多様なラスタ表示モニタを
代表するものである。ホストプロセッサ20は多様なコ
ンピュータプロセッサ及びCPUを代表し、また、メモ
リサブシステム22はランダムアクセスメモリ及び大容
量記憶装置を含む多様なメモリサブシステムを代表して
いる。ホストバス28は、ホストプロセッサ、CPU及
びメモリサブシステム、並びに専用サブシステムを相互
に通信させる多様な通信バス又はホストコンピュータバ
スを代表するものである。
【0016】ホストプロセッサ20は、プログラム入出
力(I/O)プロトコルに従って、グラフィックスアク
セラレータ24との間でホストバス28を介して情報を
転送し合う。また、グラフィックスアクセラレータ24
は直接メモリアクセス(DMA)プロトコルに従ってメ
モリサブシステム22をアクセスする。
【0017】ホストプロセッサ20で実行されるグラフ
ィックスアプリケーションプログラムは、表示装置26
に表示すべき画像を定義する三次元ジオメトリ情報を含
むジオメトリデータアレイを生成する。ホストプロセッ
サ20は、そのジオメトリデータアレイをメモリサブシ
ステム22へ転送する。その後、グラフィックスアクセ
ラレータ24は、DMAアクセスサイクルを使用して、
ホストバス28を介してジオメトリデータアレイを読取
る。あるいは、ホストプロセッサ20はジオメトリデー
タアレイをプログラムI/Oによってホストバス28を
介してグラフィックスアクセラレータ24へ転送する。
【0018】ジオメトリデータアレイ中の三次元ジオメ
トリ情報は頂点座標(頂点)を含む入力頂点パケットの
ストリームと、三次元空間中の三角形、ベクトル及び点
を定義する他の情報とをから構成されている。各々の入
力頂点パケットは、頂点法線と、頂点カラーと、ファセ
ット法線と、ファセットカラーと、テクスチャマップ座
標と、ピックidと、ヘッダと、その他の情報とを含む
三次元頂点情報の組合わせを含んでいても良い。
【0019】ヘッダなし入力頂点パケットは、隣接する
複数の三角形から成る「ジグザグ」パターンの形態をと
る三角形ストリップを定義していても良い。また、ヘッ
ダなし入力頂点パケットは三角形の「スターストリッ
プ」パターンの形態をとる三角形ストリップを定義して
も良い。加えて、ヘッダなし入力頂点パケットは隔離さ
れた1つの三角形を定義しても良い。ヘッダを有する入
力頂点パケットは三角形ごとに三角形ストリップフォー
マットを変更し、「ジグザグ」フォーマットと、「スタ
ー」フォーマットと、隔離三角形との間で変わっても良
い。
【0020】図2は、グラフィックスアクセラレータ2
4のブロック線図である。グラフィックスアクセラレー
タ24はコマンドプリプロセッサ30と、1組の浮動小
数点プロセッサ40〜43と、1組の線引きプロセッサ
50〜54と、フレームバッファ100と、ポストプロ
セッサ70と、ランダムアクセスメモリ/デジタル/ア
ナログ変換器(RAMDAC)72とから構成されてい
る。RAMDAC72は、ルックアップテーブル機能を
実現する市販のRAMDACに類似している。一実施例
では、コマンドプリプロセッサ30、浮動小数点プロセ
ッサ40〜43、線引きプロセッサ50〜54及びポス
トプロセッサ70は、それぞれ、個別の集積回路チップ
である。
【0021】コマンドプリプロセッサ30はホストバス
28を介して通信するように結合している。コマンドプ
リプロセッサ30は、ホストバス28を介するメモリサ
ブシステム22からのジオメトリデータアレイのDMA
読取りを実行する。ホストプロセッサ20は仮想メモリ
ポインタをコマンドプリプロセッサ30へ転送する。仮
想メモリポインタは、メモリサブシステム22にあるジ
オメトリデータアレイを指示する。コマンドプリプロセ
ッサ30は、ホストプロセッサ20からの介入なくメモ
リサブシステム22に対するDMA読取りを実行するた
めに、仮想メモリポインタを物理メモリアドレスに変換
する。
【0022】コマンドプリプロセッサ30はジオメトリ
データアレイから入力頂点パケットのストリームを受信
し、その入力頂点パケットの中に含まれている情報を再
順序付けする。コマンドプリプロセッサ30は各入力頂
点パケットからの情報を、標準化要素順序を有する再フ
ォーマットした頂点パケットへと再順序付けする。コマ
ンドプリプロセッサ30は、各々の入力頂点パケットの
情報を様々に数の異なるフォーマットを32ビットIE
EE浮動小数点数フォーマットに変換する。コマンドプ
リプロセッサ30は8ビット浮動小数点数、16ビット
固定小数点数及び32ビット又は64ビットIEEE浮
動小数点数を変換する。
【0023】コマンドプリプロセッサ30はヘッダフィ
ールドを再フォーマットし、定数を挿入し且つ順次ピッ
クidを生成する。コマンドプリプロセッサ30はヘッ
ダの連鎖ビットを検査し、入力頂点パケットからの情報
を、点と、線と、三角形とを含む完全に隔離したジオメ
トリプリミティブを含む再フォーマットした頂点パケッ
トへと再組立てする。
【0024】コマンドプリプロセッサ30は、再フォー
マットされた頂点パケットを浮動小数点コマンドバス
(CF_BUS)82を介して浮動小数点プロセッサ4
0〜43の中の1つへ転送する。コマンドプリプロセッ
サ30は、浮動小数点プロセッサ40〜43からCF_
BUS82の制御部分を介して制御信号及び状態信号を
受ける。制御信号と状態信号は、再フォーマットした頂
点パケットを受信するための浮動小数点プロセッサ40
〜43の内部の入力バッファの可用性を指示する。ま
た、コマンドプリプロセッサ30は浮動小数点プロセッ
サ40〜43をバイパスして、直接ポートパケットを線
引きコマンドバス(CD−BUS)80を介して線引き
プロセッサ50〜54へ転送しても良い。
【0025】浮動小数点プロセッサ40〜43は、それ
ぞれ、ほぼ類似している。各浮動小数点プロセッサ40
〜43は、並列入出力パケット通信ハードウェアと共
に、32ビットマイクロコード駆動浮動小数点コアを実
現する。各々の浮動小数点プロセッサ40〜43は乗
算、ALU、逆数、逆数平方根及び整数演算を含めた浮
動小数点機能を実現する。各浮動小数点プロセッサ40
〜43は、広範囲の種類にわたる特殊化グラフィックス
命令及び機能を実現する。各々の浮動小数点プロセッサ
40〜43は、グラフィックスアクセラレータ24によ
り実現される最大共通三次元グラフィックス処理マイク
ロコード内部ループを実行するために要求される数の高
速内部レジスタを実現するように最適化されている。
【0026】一実施例では、各々の浮動小数点プロセッ
サ40〜43は単一の集積回路チップで実現される。浮
動小数点プロセッサ40〜43ごとに要求される支援チ
ップは、制御記憶装置(CS)において外部マイクロコ
ードを提供する4つ1組の外部SRAMチップのみであ
る。各浮動小数点プロセッサ40〜43は、線引きプロ
セッサ50〜54による走査変換のために三角形をセッ
トアップする機能を実現する。そのセットアップ機能
は、三角形の3つの頂点をyが大きくなる順に分類する
ステップを含む。各々の浮動小数点プロセッサ40〜4
3は線引きパケットをCD−BUS80を介して全ての
線引きプロセッサ50〜54へ同報通信する。線引きパ
ケットは、三角形、点及び線を含む最線ジオメトリプリ
ミティブから構成されている。
【0027】線引きプロセッサ50〜54は、フレーム
バッファ100のVRAM制御チップとして機能する。
線引きプロセッサ50〜54は、浮動小数点プロセッサ
40〜43の中の1つから受信した線引きパケットに従
って、又はコマンドプリプロセッサ30から受信した直
接ポートパケットに従って、フレームバッファ100に
1つの画像を同時に書込む。
【0028】各線引きプロセッサ50〜54はエッジウ
ォーキング(edge walking)機能及び走査
補間から成る走査変換機能を実行する。線引きプロセッ
サ50〜54間でエッジウォーキング機能及び走査補間
機能を反復することにより、別個のエッジウォーキング
プロセッサと走査補間プロセッサとの間に大規模通信経
路を設ける必要はなくなるので、各々の線引きプロセッ
サ50〜54のピン数は最小限で済み、また、プリント
回路基板の所要スペースも縮小されるのである。
【0029】フレームバッファ100は5つ1組のVR
AMインタリーブバンクとして配列されている。線引き
プロセッサ50はインタリーブbank_0 61に画
素データを書込み、線引きプロセッサ51はインタリー
ブbank_1 62に画素データを書込み、線引きプ
ロセッサ52はインタリーブbank_2 63に画素
データを書込み、線引きプロセッサ53はインタリーブ
bank_3 64に画素データを書込み、線引きプロ
セッサ54はインタリーブbank_4 65に画素デ
ータを書込む。
【0030】各々の線引きプロセッサ50〜54は、そ
れに対応するインタリーブバンク61〜65の中で見え
る画素のみを描示する。線引きプロセッサ50〜54は
線引きパケットにより定義される三角形プリミティブを
同時に描示して、フレームバッファ100に正しい組合
わせラスタ化画像を生成する。各々の線引きプロセッサ
50〜54は最終ラスタ化画像の各走査線に沿って4つ
おきに画素をラスタ化する。各線引きプロセッサ50〜
54は、走査線を0画素、1画素、2画素、3画素又は
4画素分のスペースだけ右へ偏位させて開始する。
【0031】各々の線引きプロセッサ50〜54は任意
に深さキューイングを実行する。描示される三角形、ベ
クトル又は点の各画素は、浮動小数点プロセッサで深さ
キューイングを実行する従来のグラフィックスシステム
で見られた性能の低下を伴わずに、線引きプロセッサ5
0〜54の中で深さキューイングされるであろう。各線
引きプロセッサ50〜54は矩形ウィンドウクリッピン
グ、ブレンド及びその他の画素処理機能を任意に実行す
る。
【0032】ポストプロセッサ70はフレームバッファ
100からビデオバス84を介してインタリーブ画素デ
ータを受信する。ポストプロセッサ70は矩形ウィンド
ウクリッピング、ブレンド及びその他の画素後処理機能
と、カラールックアップテーブル機能及びカーソル機能
とを実行する。RAMDAC72はポストプロセッサ7
0から受けた画素データを、表示装置26に対するビデ
オ信号73に変換する。
【0033】図3は、浮動小数点プロセッサ40と、制
御記憶装置(CS)149とを含む浮動小数点プロセッ
サセクション45のブロック線図である。浮動小数点プ
ロセッサ40は入力回路141と、出力回路145と、
レジスタファイル142と、1組の機能単位143と、
制御回路144と、SRAMインタフェース回路146
とから構成されている。浮動小数点プロセッサ40は、
CF_BUS82のデータ部分181を介して再フォー
マットした頂点パケットを受信する。コマンドプリプロ
セッサ30は、入力バッファ141をイネーブル、ディ
スエーブルするために、CF_BUS82の制御部分1
82を介して制御信号を転送する。出力回路145はC
D_BUS80のデータ部分183を介して線引きパケ
ットを転送する。線引きプロセッサ50〜54へのデー
タ転送を同期させ且つCD_BUS80におけるバスア
クティビティをコマンドプリプロセッサ30と協調させ
るために、出力回路145はCD_BUS80の制御部
分184を介して制御信号をさらに転送する。
【0034】入力回路141は、二重緩衝方式の1対の
32レジスタファイルとして配列されている1組のレジ
スタを含む。同様に、出力回路145は、1対の32レ
ジスタ二重緩衝レジスタファイルとして配列されている
1組のレジスタを含む。一実施例では、レジスタファイ
ル142は160個の32ビットレジスタから構成され
たマルチポートレジスタファイルである。レジスタファ
イル142は、点コマンド、ベクトルコマンド及び三角
形コマンドの処理のための共通内部ループについて要求
される定数、パラメータ及び作業変数を記憶するのに十
分な高速オンチップデータ記憶域を形成する。
【0035】SRAMインタフェース146は、制御記
憶装置データバス148中の制御記憶装置アドレスバス
147を介して、制御記憶装置(CS)149と通信す
る。一実施例では、制御記憶装置アドレスバス147は
17ビット幅、制御記憶装置データバス148は32ビ
ット幅である。制御記憶装置149は4つの128k×
8ビットSRAMから構成されている。浮動小数点プロ
セッサ40は、余分なグルー論理を要求せずに、SRA
Mインタフェース回路146を介してCS149中のマ
イクロコードをアクセスする。
【0036】制御回路144は、CS149からマイク
ロコード命令を取り出し且つそれらのマイクロコード命
令を実行する制御シーケンサを実現する。制御シーケン
サは入力回路141への転送及び出力回路145からの
転送とは分離されている。入力回路141及び出力回路
145にあるレジスタは、自動的に順序付けされるFI
FOとして配列されている。浮動小数点プロセッサ40
で実行されるマイクロコードは、入力回路141及び出
力回路145のレジスタを特殊レジスタファイルとして
アクセスする。浮動小数点プロセッサ40の命令セット
はレジスタファイルを要求し、放棄するためのコマン
ド、並びにCD_BUS80を介して伝送完了データパ
ケットを待ち行列に入れるためのコマンドを含む。
【0037】機能単位143は並列浮動小数点乗算器
と、並列浮動小数点ALUと、並列浮動小数点反復逆数
回路と、逆数平方根回路と、並列整数ALUとを実現す
る。浮動小数点プロセッサ40は32ビット内部浮動小
数点演算を実現する。浮動小数点プロセッサ40は内部
サブルーチンスタックを有する。浮動小数点プロセッサ
40は、線引きプロセッサ50〜54による走査変換の
ために三角形セットアップ機能を実現する。三角形セッ
トアップ機能の第1の段階は、三角形の3つの頂点をy
が大きくなる順に分類する。浮動小数点プロセッサ40
は、頂点のy座標の最前の3回の比較の結果に基づい
て、レジスタファイル142の1セクションを再順序付
けする特殊命令をハードウェアで実現する。
【0038】浮動小数点プロセッサ40で実現されるク
リップ試験機能は、クリップ条件ビットのベクトルを計
算する。浮動小数点プロセッサ40〜43は、複数対の
クリップ条件ビットを計算する特殊クリップ試験命令を
実現しつつ、クリップ条件ビットを特殊クリップレジス
タへシフトさせる。クリップ条件ビットを計算した後、
特殊分岐命令により、クリップレジスタに記憶されてい
るクリップ条件ビットを適切なクリップ条件へと復号す
る。浮動小数点プロセッサ40は三角形とベクトルのク
リッピングに際して別個の分岐命令を実現する。特殊分
岐命令は、同一の命令の中で複数のクリップ条件の試験
をイネーブルする。
【0039】浮動小数点プロセッサ40は浮動小数点か
ら固定小数点への変換命令及び固定小数点から浮動小数
点への変換命令と、整数ビットフィールド抽出命令及び
整数ビットフィールド挿入命令と、バレルシフト命令及
び併合命令とを実現する。浮動小数点プロセッサ40は
CS149への転送に関わるブロックロード/記憶命
令、並びに整数関数を実現する。
【0040】図4は、機能単位及び浮動小数点プロセッ
サ40に関わるデータ経路を示す。データ経路は3つの
ソースバス(Aバス220、Bバス222及びCバス2
24)と、1つの宛先バス(Dバス226)とを含む。
機能単位は浮動小数点乗算器(FMUL)200と、整
数演算論理装置(IALU)204と、浮動小数点演算
論理装置(FALU)206と、逆数回路202とを含
む。また、入力回路141及び出力回路145と、レジ
スタファイル142との内部レジスタの論理配列も示さ
れている。内部レジスタはIレジスタ、Oレジスタ、R
レジスタ及びPレジスタという4つのレジスタ群として
配列されている。
【0041】図5は、Iレジスタ、Oレジスタ、Rレジ
スタ及びPレジスタのレジスタマッピングを示す。Iレ
ジスタは入力回路141の64個のレジスタに対応して
おり、1対の二重緩衝32エントリレジスタファイルと
して配列されている。Oレジスタは出力回路145の6
4個のレジスタに対応しており、1対の二重緩衝32エ
ントリレジスタファイルとして配列されている。Rレジ
スタとPレジスタはレジスタファイル142に含まれて
おり、単一バッファである。Rレジスタは64個あり、
Pレジスタは96個ある。
【0042】Iレジスタは、CF_BUS82を介して
受信した再フォーマットされた頂点パケットに関わる入
力パラメータを保持する。任意の時点で、マイクロコー
ドによるアクセスのために1度にIレジスタの1つのバ
ンクを利用可能であるが、その間にIレジスタの残りの
バンクはCF_BUS82を介して転送される次の再フ
ォーマットされた頂点パケットに対して入力FIFOと
して使用される。利用可能なIレジスタをレジスタI0
〜I31という。
【0043】次のIレジスタバンクをアクセスすると
き、次の再フォーマットされた頂点パケットが代替Iレ
ジスタバンクに完全には組立てられていない場合には、
制御シーケンサは待機する。対応する再フォーマットさ
れた頂点パケットをアクセスした後、対応するコマンド
処理が完了する前であっても、制御シーケンサはIレジ
スタバンクを解放することができる。再フォーマットさ
れたパケットのコマンド演算コードは、I0の最下位の
5〜9ビットの中に含まれている。浮動小数点プロセッ
サ40は、I0の最下位の5〜9ビットに基づいてマイ
クロコード飛び越しテーブルに自動的にディスパッチす
る特殊コマンド復号命令を実現する。
【0044】OレジスタはCD_BUS80を介して転
送すべき線引きパケットを保持する。任意の時点で、マ
イクロコードによるアクセスのためにOレジスタのバン
クを一度に1つ利用可能であり、その間、Oレジスタの
残りのバンクは次の線引きパケットに対する出力バッフ
ァとして使用される。利用可能なOレジスタをレジスタ
O0〜O31という。Oレジスタの1つのバンクは32
個までのパラメータを有する線引きパケットを保持す
る。出力回路145は線引きパケットをOレジスタから
FD_BUS80を介して転送する。次のOレジスタバ
ンクをアクセスするとき、代替Oレジスタバンクから先
の線引きパケットが排出され終わるまで、制御シーケン
サは待機する。出力回路145の余分の時間でOレジス
タバンクを排出できるように、制御シーケンサは再フォ
ーマットされたジオメトリパケットを処理する途中でO
レジスタバンクを要求することができる。
【0045】Rレジスタは汎用レジスタである。Pレジ
スタはビューイングマトリクス、画面座標変換などの浮
動小数点乗算定数に対して使用される。Pレジスタの第
2のグループと第3のグループは一時的なレジスタとし
て、並びに追加乗算定数として使用される。
【0046】clip_bits レジスタは32ビットクリップ
状態レジスタである。clip_bits レジスタは三角形、ベ
クトル又は点のクリップ状態に対応する条件コードを含
む。clip_bits レジスタの内容は、クリップ試験命令に
より、一度に1ビット又は2ビット更新される。clip_b
its レジスタの内容は一連の特殊化分岐命令によって試
験される。state_bitsレジスタは32ビット条件コード
・状態レジスタである。state_bits レジスタは一連の
特殊化フラグ及び状態ビットを記憶する。state_bits
レジスタの内容はいくつかの命令によって影響を受け、
1対の状態更新命令により明示して設定される。PCレ
ジスタは16ビットプログラムカウンタである。PCス
タックはサブルーチン呼び出し/復帰のための8つの1
6ビットプログラムカウンタから成るハードウェアスタ
ックである。
【0047】図6は、一実施例に関する浮動小数点プロ
セッサ40のマイクロコード命令フォーマットを示す。
マイクロコード命令は32ビット幅であり、演算符号フ
ィールド、制御フィールド、乗算/加算に関わるレジス
タ宛先Dのフィールド、加算に関わるレジスタソースC
のフィールド、乗算に関わるレジスタソースBのフィー
ルド及び乗算に関わるレジスタソースAのフィールドと
いう5つの一般フィールド型に分割されている。
【0048】Aバス220はFMUL200に至る入力
経路と、IALU204に至る入力経路と、FALU2
06に至る多重化入力経路とを形成する。マイクロ命令
のAバスフィールドは、Aバス220を介して転送され
るデータのソースを指定する。AバスフィールドはRレ
ジスタR0からR63と、PレジスタP0からP63と
を指示する。Bバス222はFMUL200に至る別の
入力経路と、逆数回路202に至る唯一の入力経路と、
IALU204に至る別の入力経路である。マイクロ命
令のBバスフィールドはBバス202を介して転送され
るデータのソースを指定する。Bバスフィールドは、状
態ビットレジスタの中でセットされるモードビットが指
定するRレジスタR0からR63又はRレジスタR0か
らR31と、IレジスタI0からI31とを指示する。
【0049】Cバス224はFALU206に至る別の
入力経路である。マイクロ命令のCバスフィールドはC
バス224を介して転送されるデータのソースを指定す
る。Cバスフィールドは、状態ビットレジスタにより指
定されるモードとは無関係に、RレジスタR0からR6
3を指示する。Dバス226は浮動小数点プロセッサ4
0の機能単位からの出力データ経路である。Dバス22
6はFMUL200又はFALU206からの出力、あ
るいは、命令によっては、IALU204又は逆数回路
202からの出力をマイクロ命令のDSフィールドに従
って搬送する。マイクロ命令のDバスフィールドはDバ
ス226を介して転送されるデータの宛先を指定する。
Dバスフィールドは、state_bitsレジスタの中で設定さ
れるモードビットによる指定の通りに、RレジスタR0
からR63、OレジスタO0からO31、あるいはPレ
ジスタP0からP31又はPレジスタP32からP63
を指示する。
【0050】マイクロ命令のASフィールドはFALU
206に対する1つの入力に関わるソースデータを確定
する。ASフィールドはAバス220又はBバス222
を介して転送されるデータを選択する。ASフィールド
はマルチプレクサ232の選択制御を実行する。マイク
ロ命令のDSフィールドは、Dバス226を介して転送
されるデータのソースを確定する。DSフィールドはF
MUL200の出力、FALU206の出力、IALU
204の出力又は逆数回路202の出力のいずれかを選
択する。DSフィールドはマルチプレクサ230の選択
制御を実行する。マイクロ命令の小演算フィールドは、
特定の命令グループの中の特定の1つの命令を指定す
る。小演算フィールドの大きさと位置は命令グループに
よって変わる。
【0051】図7及び図8は、浮動小数点プロセッサ4
0で実現されるclip_test マイクロ命令のフォーマット
を示す。clip_test マイクロ命令は1つのポイントを1
つ又は2つのクリップ平面と比較し、比較からの1つ又
は2つの結果ビットをclip_bits レジスタへシフトす
る。state_bitsレジスタ中のclip_mode ビットは、その
ポイントを1つのクリップ平面と比較すべきか又は2つ
のクリップ平面と比較すべきかを確定する。state_bits
レジスタ中のclip_mode ビットか0であれば、clip_bit
s レジスタの内容を左へ2ビットシフトさせ、図8に示
す2つの条件ビットをビット位置0及び1にコピーす
る。clip_mode が1であれば、clip_bits レジスタの内
容を左へ1ビットシフトさせ、図8に示す条件ビットを
ビット位置0にコピーする。clip_test に関わるFAL
U206の条件コードビットは、浮動小数点絶対値をf
absとし且つマルチプレクサ232の出力をm ou
tとするとき、fabs([a bus])又はfab
s([m out])とfabs([c bus])と
の比較を表わしている。
【0052】図9及び図10は、浮動小数点プロセッサ
40で実現される単項FALUマイクロ命令のフォーマ
ットを示す。fabsに関わるFALU条件コードビッ
トは[a_bus]又は[m_out] と0との比較
を表わしている。
【0053】図11は、浮動小数点プロセッサ40で実
現される浮動小数点逆数マイクロ命令のフォーマットを
示す。逆数マイクロ命令は、Bバス222の内容につい
て浮動小数点逆数演算を実行する。逆数演算の結果は9
サイクル後に利用可能になり、後続する逆数結果と置き
換えられるまでは有効である。先の逆数命令の結果を置
き換えることなく、後続する逆数演算を8サイクルごと
に開始しても良い。
【0054】図12は、浮動小数点プロセッサ40で実
現されるブロックロードマイクロ命令のフォーマットを
示す。ブロックロードマイクロ命令は、CS49からP
レジスタ、Rレジスタ及びOレジスタへのブロックロー
ド動作を指定する。ブロックロードマイクロ命令は1回
の動作で1個から192個のレジスタにブロックロード
することができる。ブロックロードマイクロ命令はCS
49の記憶場所(R[ra]+オフセット)からレジス
タR[rs]〜R[re]へのブロックロードを指定す
る。図13は、浮動小数点プロセッサ40のPレジス
タ、Rレジスタ及びOレジスタへのブロックロードマイ
クロ命令のRS値及びRE値のマッピングを示す。
【0055】図14は、浮動小数点プロセッサ40で実
現されるブロック記憶マイクロ命令のフォーマットを示
す。ブロック記憶マイクロ命令は、Pレジスタ、Rレジ
スタ及びOレジスタからCS49へのブロック記憶動作
を指定する。ブロック記憶マイクロ命令は1回の動作で
1個から192個のレジスタにブロック記憶することが
できる。ブロック記憶マイクロ命令はレジスタR[r
s]〜R[re]からCS49の記憶場所(R[ra]
+オフセット)へのブロック記憶を指定する。図15
は、浮動小数点プロセッサ40のPレジスタ、Rレジス
タ及びOレジスタへのブロック記憶マイクロ命令のRS
値及びRE値のマッピングを示す。
【0056】図16及び図17は、浮動小数点プロセッ
サ40で実現される特殊化ジオメトリ分岐マイクロ命令
のフォーマットを示す。特殊化ジオメトリ分岐マイクロ
命令は、一般に起こる条件の条件と組合わせの個別試験
を実行する。geometry_modeレジスタは、分岐条件を確
定するためにclip_bits レジスタの1つの頂点を使用す
るか、2つの頂点を使用するか又は3つの頂点を使用す
るかを判定する。
【0057】浮動小数点プロセッサ40で実現される条
件付き分岐マイクロ命令は、いくつかの指定条件の中の
1つを試験する。指定分岐条件が真であれば、条件付き
分岐マイクロ命令の中で指定されている絶対16ビット
アドレスに対して遅延分岐が開始される。条件付き分岐
マイクロ命令の次に続く順次マイクロ命令は無条件で実
行される。マイクロ命令実行の流れは次のマイクロ命令
で変化し、そのマイクロ命令は条件付き分岐マイクロ命
令の絶対ターゲットに位置するマイクロ命令である。
【0058】1つのマイクロ命令の中の分岐条件ビット
と16ビット宛先アドレスは、算術演算マイクロ命令に
おいてAバス、Bバス及びCバスを指定するために使用
されるビットを追い越す。その場合でも、Dバス指定ビ
ットと2つのDSソース選択ビットは条件付き分岐マイ
クロ命令にとどまる。すなわち、条件付き分岐マイクロ
命令実行のための同一のマイクロ命令サイクルについ
て、4つのDバスソース(FALU206、FMUL2
00、逆数回路202及びIALU204)の中のいず
れかからの記憶が並行して起こりうるので、マイクロ命
令の流れに変化が起こったときには、その間、パイプラ
インは空になる。
【0059】浮動小数点プロセッサ40で実現されるジ
オメトリ分岐マイクロ命令は、プリミティブトリビアル
拒絶(ptr)及びプリミティブアウトコード(po
c)に関わる中間条件付き値を採用する。state_bitsレ
ジスタのgeometry_mode フィールドは、ptr及びpo
c[5:0]の計算を確定する。
【0060】3D点は、いずれかのクリップ平面の外に
あれば、NPC空間でトリビアル拒絶されても良い。そ
のような条件を、clip_bits レジスタのビットから形成
したブール方程式によって説明する:
【0061】geometry_mode == 点: ptr = xpw1 | xmw | ypw1 | ymw1 | zpw1 | zmw1
【0062】3Dベクトルは、2つの頂点が少なくとも
1つの(同一の)クリップ平面の外にあれば、NPC空
間でトリビアル拒絶されても良い。そのような条件をcl
ip_bits レジスタのビットから形成したブール方程式に
よって説明する:
【0063】geometry_mode == ベクトル: ptr = (xpw1 && xpw2)| (xmw1 && xmw2)| (ypw1 && ypw2)| (ymw1 && ymw2)| (zpw1 && zpw2)| (zmw1 && zmw2)
【0064】3D三角形は、3つの頂点全てが少なくと
も1つの(同一の)クリップ平面の外にあれば、NPC
空間でトリビアル拒絶されても良い。そのような条件を
clip_bits レジスタのビットから形成したブール方程式
によって説明する:
【0065】 geometry_mode == 三角形: ptr = (xpw1 && xpw2 && xpw3)|(xmw1 && xmw2 && xmw3)| (ypw1 && ypw2 && ypw3)|(ymw1 && ymw2 && ymw3)| (zpw1 && zpw2 && zpw3)|(zmw1 && zmw2 && zmw3)
【0066】pocはclip_bitsレジスタからのビット
のブール方程式により形成される:
【0067】geometry_mode == 点: poc[0] = xpw1 poc[1] = xmw1 poc[2] = ypw1 poc[3] = ymw1 poc[4] = zpw1 poc[5] = zmw1
【0068】geometry_mode == ベクトル: poc[0] = xpw1 | xpw2 poc[1] = xmw1 | xmw2 poc[2] = ypw1 | ypw3 poc[3] = ymw1 | ymw2 poc[4] = zpw1 | zpw2 poc[5] = zmw1 | zmw2
【0069】geometry_mode == 三角形: poc[0] = xpgw1 | xpgw2 | xpgw3 poc[1] = xmgw1 | xmgw2 | xmgw3 poc[2] = ypgw1 | ypgw2 | ypgw3 poc[3] = ymgw1 | ymgw2 | ymgw3 poc[4] = zpw1 | zpw2 | zpw3 poc[5] = zmw1 | zmw2 | zmw3
【0070】プリミティブが外側クリップ境界の外にな
い(pno)かどうかを判定するためのブール方程式は
6つのpocビットのNORである: pno = !(poc[0] |(poc[1]|(poc[2]|(poc[3]|(poc
[4]|(poc[5])
【0071】プリミティブが2つ以上の外側クリップ境
界の外にあるか否かを判定するための式、言い換えれ
ば、多重平面クリップ(mpc)は、6つのpocビッ
トのカウントである: mpc = count ( poc [i]) > 1
【0072】先に定義した中間値及びいくつかの状態ビ
ットに基づいて、ジオメトリ分岐命令に関わるジオメト
リ分岐条件を次の通り定義する。プリミティブのいずれ
かの部分が正xクリップ平面の外にある場合の分岐。 ジオメトリ分岐正X gbpx = poc [0]
【0073】プリミティブのいずれかの部分が負xクリ
ップ平面の外にある場合の分岐。 ジオメトリ分岐負X gbmx = poc [1]
【0074】プリミティブのいずれかの部分が正yクリ
ップ平面の外にある場合の分岐。 ジオメトリ分岐正Y gbpy = poc [2]
【0075】プリミティブのいずれかの部分が負yクリ
ップ平面の外にある場合の分岐。 ジオメトリ分岐負Y gbmy = poc [3]
【0076】プリミティブのいずれかの部分が正zクリ
ップ平面の外にある場合の分岐。 ジオメトリ分岐正Z gbpz = poc [4]
【0077】プリミティブのいずれかの部分が負zクリ
ップ平面の外にある場合の分岐。 ジオメトリ分岐負Z gbmz = poc [5]
【0078】プリミティブをトリビアル拒絶できる場合
の分岐。いずれかのクリップ平面の完全に外側にある場
合には、プリミティブをトリビアル拒絶することができ
る。 ジオメトリ分岐クリップトリビアル拒絶 gbctr = ptr
【0079】プリミティブをトリビアル受理できない場
合の分岐。いずれかの部分がいずれかのクリップ平面の
外に位置している場合、又はmodel_clippingがイネーブ
ルされる場合には、プリミティブをトリビアル受理する
ことはできない。 ジオメトリ分岐クリップトリビアル受理せず gbnta = ! pno |model_clipping_enabled
【0080】プリミティブを2つ以上のクリップ平面に
対してクリッピングしなければならない場合、又はモデ
ルクリッピングをイネーブルする場合の分岐。 ジオメトリ分岐単一クリップせず gbnsec = mpc|model_clipping_enabled
【0081】処理中のプリミティブのフェースを拒絶す
べき場合又はプリミティブをトリビアル拒絶すべき場合
の分岐。この分岐は、プリミティブの現在フェースをst
ate_bitsレジスタのfront_face_reject ビットとback_f
ace_rejectビットの双方に照らして検査する。現在フェ
ースに関わる拒絶ビットがセットされていれば、分岐を
実行する。プリミティブのある1つのフェース(方向)
を見えなくすべき場合には、その特定のフェースに関わ
る拒絶ビットをセットする(前拒絶又は後拒絶)ため
に、浮動小数点プロセッサ40へコマンドを送信する。
その後、プリミティブを処理するとき、そのプリミティ
ブを拒絶して、別のプリミティブを獲得すべきか、又は
現在プリミティブの処理を継続すべきかを判定するため
に、マイクロコードは拒絶ビットを検査する。 ジオメトリ分岐誤フェース拒絶 gbwfr = (reject_back_face && face_we_got)| (reject_front_face && !face_we_got)|
【0082】モデルクリッピングをイネーブルする場合
の分岐。 ジオメトリ分岐モデルクリッピングイネーブル gbmce = model_clipping_enabled
【0083】正しいフェース材質が導入されない場合、
プリミティブフェースを拒絶すべき場合、又はプリミテ
ィブをトリビアル拒絶すべき場合の分岐。後特性(ba
ckprops)を採用するために、浮動小数点プロセ
ッサ40へコマンドを送信する。浮動小数点プロセッサ
40のマイクロコードはstate_bitsレジスタのuse_back
_propsビットをセットする。その後、前後のフェースの
材質特性と、後続するいくつかのプリミティブとを浮動
小数点プロセッサ40へ転送する。次に、プリミティブ
のフェースの1つが先に処理された最前のフェースと一
致しないときには、マイクロコードは、この分岐を実行
する場合にプリミティブを処理するために、材質特性を
変化させる。この分岐は誤フェース拒絶又はトリビアル
拒絶のための再度の検査としても使用される。 ジオメトリ分岐正しい材質導入なし gbncmi = (use_back_props && (mat_face_installed ! = face_we_got)) | (reject_back_face && face_we_got) | (reject_front_face && !face_we_got) | ptr
【0084】後フェース材質を導入する場合の分岐。こ
の分岐は、浮動小数点プロセッサ40のマイクロコード
が先のプリミティブについて又はプリミティブの初期設
定時に後フェース材質を導入し且つstate_botsレジスタ
でuse_back_propsビットをセットした後に使用される。
この分岐は、変換時に法線を否定するか否かを決定する
ために使用される。 ジオメトリ分岐後フェース導入 gbbfi = use_back_props && mat_face_installed
【0085】後特性及び後フェースを使用する場合の分
岐。ライティング計算のために後フェース材質を使用す
べきときに、この分岐を実行する。浮動小数点プロセッ
サ40のマイクロコードは、プリミティブに適用される
ライトを計算するために必要とされる後フェース材質を
導入する。 ジオメトリ分岐後フェース使用 gbubf = face_we_got && use_back_props
【0086】後フェースの場合の分岐。この分岐は法線
の変換を確定するために使用される。入力プリミティブ
が前フェーシング法線を有しているならば、それらの法
線を変換する。入力プリミティブが後フェーシング法線
を有しているのであれば、そのプリミティブにライティ
ングモデルを適用する前に、法線を変換し且つ反転する
必要がある。 ジオメトリ分岐後フェース gbbf = face_we_got
【0087】state_bitsレジスタ中のクリップ保留ビッ
トがセットされている場合の分岐。 ジオメトリ分岐clip_pending セット gbcps = clip_pending
【0088】図18は、一連の特殊条件ビットを記憶す
る状態ビットレジスタを示す。2ビットgeometry_mode
フィールドは、ジオメトリ分岐条件を計算するために、
clip_bits レジスタの使用を確定する。2ビットgeomet
ry_mode フィールドはswap_rr ビットのローディングに
も影響を及ぼす。2つのgeometry_mode ビットは点、ベ
クトル又は三角形のいずれかを指定する。clip_mode ビ
ットは、clip_test 命令が1つの平面にクリッピングす
るか又は2つの平面にクリッピングするかを確定する。
【0089】モデルクリッピングはクリップパイプに含
まれていても良い。モデルクリッピングがイネーブルさ
れないときに高速実行のために共通コードを使用できる
ようにするために、状態ビットレジスタには特殊条件付
きビットであるmodel_clipping_enabledが含まれてい
る。model_clipping_enabledの状態を試験するのは、特
殊分岐命令である。
【0090】状態ビットレジスタは、後拒絶、前拒絶及
び拒絶なしという可能な3つの「フェース拒絶」モード
を指定するために、2つの「フェース拒絶ビット」(後
フェース拒絶及び前フェース拒絶)を提供する。それら
のビットは状態ビット変更マイクロ命令によりセットさ
れる。ビットを0にディフォルトセットすると、前後の
フェースは共に受理される。いずれか一方のみをセット
すれば、後フェース又は前フェースが拒絶されることに
なる。
【0091】状態ビットレジスタのface_we_got ビット
は現在フェースを動的に指示する。0にセットされる
と、このビットは前フェースを指示し、1にセットされ
たときには後フェースを指示する。face_we_got ビット
は状態ビット変更マイクロ命令によりセットされる。
【0092】以上説明した状態ビットは、1つの特殊分
岐命令に伴って、トリビアルクリップ拒絶及び誤フェー
ス拒絶の制御流れ分岐を発生させることができる。特殊
分岐命令は30個のクリップビットと、2つのフェース
拒絶ビットと、1つのface_we_got ビットとから条件を
確定する。
【0093】ジオメトリフォーマットによっては、1つ
の面の両側が異なる表面特性及び異なるライティングレ
ベルを有することや、双方の側が同一の特性を共有する
こともありうる。典型的には、1つの三角形ストリップ
は同じ方向に向いた三角形の連続を有し、その後に裏返
って他方の側を示すことになる。状態ビットレジスタ中
の2つのビットは特性及びライティングの仮定をキャッ
シュさせることができる。use_back_propsビットは、0
であれば、前フェースに関わるキャッシュ値を使用する
ことを指示する。use_back_propsビットが1であるとき
には、mat_face_installedが現在導入中の材質の側(前
は0、後は1)を指示する。
【0094】状態ビットレジスタのoutput_lenフィール
ドとoutput_dstフィールドは、出力回路145によるO
レジスタからの線引きパケットの転送に関わる長さと宛
先を指定する。output_lenフィールドは線引きパケット
の長さを指示する。output_dstビットは線引きパケット
の宛先として線引きプロセッサ50〜54又はコマンド
プリプロセッサ30のいずれかを指定する。
【0095】状態ビットレジスタのスワップフィールド
は、Rレジスタへのバス索引の再マッピング、すなわ
ち、スワッピングを可能にする。スワップはRレジスタ
R8からR31に適用される。スワップは、レジスタ8
個を各々含む3つのレジスタグループについて機能す
る。RレジスタR8からR15はグループ1、Rレジス
タR16からR23はグループ2、レジスタR25から
R31はグループ3である。スワップはジオメトリ形状
の種類に合わせて特殊化されている。三角形の場合、3
つの頂点は3つのレジスタグループ1〜3に記憶され
る。スワップ動作は頂点のy成分をy1≦y2≦y3と
なるように分類する。
【0096】スワップ動作を開始するために、3つの浮
動小数点比較マイクロ命令を連続して実行し、続いて、
3つの先の不等結果をswap_rr にロードするために制御
・モードビット変更マイクロ命令を実行する(0≧偽、
1≧真)。geometry_mode がベクトルであるとき、swap
_rr フィールドをFALU206の比較の結果としてロ
ードする場合に、(y1>y3)及び(y2>y3)の
比較は強制的に0とされる。swap_rr フィールドを制御
・モードビット変更マイクロ命令中の即時データからロ
ードすることも可能である。
【0097】図19は、起こりうる全てのy座標順序付
けに対して状態ビットレジスタのswap_rr フィールドに
記憶される頂点比較分類の結果を示す。図20は、swap
_rrフィールドの内容に対応するグループ1〜3のRレ
ジスタの再マッピングを示す。次の制御・モードビット
変更マイクロ命令がswap_rr フィールドを0にするま
で、あるいは、条件ビットをロードするために次の制御
・モードビット変更マイクロ命令が実行されるまで、再
マッピングは有効なままである。スワッピングが有効で
ある間、RレジスタR8からR31を参照するたびに、
それはレジスタ再順序付けを受ける。
【0098】クリップビットレジスタの編成は三角形、
ベクトル、点に対してそれぞれ異なる。図21は、三角
形の場合のクリップビットレジスタの編成を示す。クリ
ップビットレジスタ中の各対のビットは、対向する1対
のクリッピング平面に対して比較される特定の1つの頂
点に関わる入/出ビットに対応する。たとえば、2つの
ビット「XPW1」及び「XMW1」では、第1の
(「プラス(+)」)ビットは頂点1のX座標が内側X
クリップ平面の右側にある場合に限って1であり、ま
た、第2の(「マイナス(−)」)ビットは、X座標が
内側X左クリップ平面の左側にある場合に限って1であ
る。次の2つのビット「XPGW1」及び「XMGW
1」も、試験が外側X「ガード」クリップ平面に対する
ものであったことを除いて同様である。残りのビットも
同様である。ガード試験はZ座標には適用されないの
で、Zクリップ試験ビットはガード試験なしである。
【0099】図22は、ベクトルの場合のクリップビッ
トレジスタの編成を示す。図23は、点の場合のクリッ
プビットレジスタの編成を示す。clip_bits レジスタ中
のビットは、clip_test マイクロ命令の実行によってセ
ットされる。各々のclip_test マイクロ命令は別のビッ
ト又は1対のビットを生成し、それらのビットはclip_b
its レジスタへとシフトされる。図24は、clip_test
命令を実行するときに起こるシフト動作の動きを示す。
右上に入って来る新たなビットはクリップ試験の結果で
あり、矢印はビットの動きを示す。
【0100】図25及び図26は、浮動小数点プロセッ
サ40のstate_bitsレジスタにおける選択されたビット
を更新する状態ビット変更マイクロ命令を示す。状態ビ
ット変更マイクロ命令によりアドレス指定されるstate_
bitsごとに、別個のイネーブルビットが設けられてい
る。ビット1及び0はDバスに関して4つのソースの中
の1つを次のようにして選択する。すなわち、DSフィ
ールドを伴うソースを選択し、PCスタック clip_bits
レジスタソース又はstate_bitsレジスタソースをポップ
する。状態ビットレジスタのface_we_got ビットはFA
LU206からのfcc条件からロードされる。0は前
フェースを指示し、1は後フェースを指示する。fcc
条件が1であれば([Aバス]又は[m out]<
[Cバス])、face_we_got ビットは1にセットされ
る。それ以外のfcc条件はface_we_got ビットを0に
セットすることになる。
【0101】図27及び図28は、動的結果から非レジ
スタファイルレジスタをロードする雑レジスタロードマ
イクロ命令を示す。目標となるレジスタはclip_bits レ
ジスタと、state_bitsレジスタと、PC(プログラムカ
ウンタ)とを含む。加えて、雑レジスタロードマイクロ
命令に伴って、output_lenフィールド、dispatch_mask
、geometry_mode 及びclip_mode レジスタをロードし
ても良い。geometry_mode は、1=点、2=線及び3=
三角形というクリッピングモードの中の1つを選択す
る。
【0102】図29及び図30は、state_bitsレジスタ
中の選択されたビットを更新し且ついくつかの制御アク
ションを開始させる制御・モードビット変更マイクロ命
令を示す。制御・モードビット変更マイクロ命令により
アドレス指定されるstate_bitsに対して、別個のイネー
ブルビットが設けられている。制御・モードビット変更
マイクロ命令の中で「新Iディスパッチオフ(clip_pen
dingでない場合)」ビットがセットされているとき、cl
ip_pendingビットが真でない限り、マイクロ命令実行の
流れはインラインで継続しない。その代わりに、次のよ
うな事象のシーケンスが起こる。free_Oビットがセット
されると、Oレジスタファイルにおいて1つの線引きパ
ケットが完了していることを指示する信号が出力回路1
45へ送信される。その後、出力回路145はその線引
きパケットを線引きプロセッサ50〜54へ同報通信す
る。入力回路141のIバンクが割当てられていなけれ
ば、need_Iをセットすべきである。新たな入力バッファ
が利用可能になるまで、制御シーケンサは停止する。新
たなIバンクが利用可能であるときには、IレジスタI
0の下位の5ビット、7ビット又は9ビットを新たな入
力のメッセージ名として使用し、CS49に対する絶対
アドレスへと形成する。その絶対アドレスにおける命令
を取り出し、復号し、ディスパッチする。その後、適切
なメッセージサブルーチンの第1の命令から始めて、正
規の命令処理を再開する。
【0103】現在再フォーマットした頂点パケットが線
引きパケットを生成しない場合、先に説明した「free_
O」ビットではなく、「ヌル出力」ビットをセットす
る。現在再フォーマットした頂点パケットは全てのジオ
メトリ形状がクリッピングで除去されている、又は後方
への向きである等の理由によって線引きパケットを生成
しないことになるであろう。以上の明細書の中では本発
明をその特定の実施例に関連して説明したが、特許請求
の範囲に記載されている本発明のより広い趣旨から逸脱
せずに本発明について様々な変形や変更を実施しうるこ
とは明白であろう。従って、明細書及び図面は限定的で
はなく、例示としてみなされるべきである。
【図面の簡単な説明】
【図1】 ホストプロセッサと、メモリサブシステム
と、グラフィックスアクセラレータと、表示装置とを含
むコンピュータシステムのブロック線図。
【図2】 コマンドプリプロセッサと、1組の浮動小数
点プロセッサと、1組の線引きプロセッサと、フレーム
バッファと、ポストプロセッサと、ランダムアクセスメ
モリ/デジタル/アナログ変換器(RAMDAC)から
構成されているグラフィックスアクセラレータのブロッ
ク線図。
【図3】 制御記憶装置(CS)と、入力回路と、出力
回路と、レジスタファイルと、1組の機能単位と、制御
回路と、SRAMインタフェース回路とを含む浮動小数
点プロセッサセクションのブロック線図。
【図4】 機能単位と、3つのソースバス(Aバス、B
バス及びCバス)及び1つの宛先バス(Dバス)から構
成される浮動小数点プロセッサに関わるデータ経路とを
示す図。
【図5】 入力回路のIレジスタと、出力回路のOレジ
スタと、レジスタファイルのRレジスタ及びPレジスタ
とのレジスタマッピングを示す図。
【図6】 一実施例の浮動小数点プロセッサに関わるマ
イクロコード命令フォーマットを示す図。
【図7】 1つのポイントを1つ又は2つのクリップ平
面と比較し且つその比較からの1つ又は2つの結果ビッ
トをclip_bits レジスタへシフトするclip_test マイク
ロ命令のフォーマットを示す図。
【図8】 1つのポイントを1つ又は2つのクリップ平
面と比較し且つその比較からの1つ又は2つの結果ビッ
トをclip_bits レジスタへシフトするclip_test マイク
ロ命令のフォーマットを示す図。
【図9】 浮動小数点プロセッサで実現される単項FA
LUマイクロ命令のフォーマットを示す図。
【図10】 浮動小数点プロセッサで実現される単項F
ALUマイクロ命令のフォーマットを示す図。
【図11】 Bバスの内容について浮動小数点逆数演算
を実行する浮動小数点逆数マイクロ命令のフォーマット
を示す図。
【図12】 ブロックロードマイクロ命令のフォーマッ
トと、ブロックロードマイクロ命令のRS値及びRE値
のPレジスタ、Rレジスタ及びOレジスタへのマッピン
グとを示す図。
【図13】 ブロックロードマイクロ命令のフォーマッ
トと、ブロックロードマイクロ命令のRS値及びRE値
のPレジスタ、Rレジスタ及びOレジスタへのマッピン
グとを示す図。
【図14】 ブロック記憶マイクロ命令のフォーマット
と、ブロック記憶マイクロ命令のRS値及びRE値のP
レジスタ、Rレジスタ及びOレジスタへのマッピングと
を示す図。
【図15】 ブロック記憶マイクロ命令のフォーマット
と、ブロック記憶マイクロ命令のRS値及びRE値のP
レジスタ、Rレジスタ及びOレジスタへのマッピングと
を示す図。
【図16】 浮動小数点プロセッサで実現され、一般に
発生する条件に関わる条件及び組合わせの個別試験を実
行する特殊化ジオメトリ分岐マイクロ命令のフォーマッ
トを示す図。
【図17】 浮動小数点プロセッサで実現され、一般に
発生する条件に関わる条件及び組合わせの個別試験を実
行する特殊化ジオメトリ分岐マイクロ命令のフォーマッ
トを示す図。
【図18】 一連の特殊条件ビットを記憶する状態ビッ
トレジスタを示す図。
【図19】 起こりうる全てのy座標順序付けに対して
状態ビットレジスタのswap_rr フィールドに記憶される
頂点比較分類結果を示す図。
【図20】 swap_rr フィールドの内容に対応するグル
ープ1〜3のRレジスタの再マッピングを示す図。
【図21】 クリップビットレジスタの編成と、clip_t
est 命令が実行されるときに起こるシフト動作の動きと
を示す図。
【図22】 クリップビットレジスタの編成と、clip_t
est 命令が実行されるときに起こるシフト動作の動きと
を示す図。
【図23】 クリップビットレジスタの編成と、clip_t
est 命令が実行されるときに起こるシフト動作の動きと
を示す図。
【図24】 クリップビットレジスタの編成と、clip_t
est 命令が実行されるときに起こるシフト動作の動きと
を示す図。
【図25】 state_bit レジスタの選択されたビットを
更新する状態ビット変更マイクロ命令を示す図。
【図26】 state_bit レジスタの選択されたビットを
更新するを状態ビット変更マイクロ命令を示す図。
【図27】 動的結果から非レジスタファイルレジスタ
をロードする雑レジスタロードマイクロ命令を示す図。
【図28】 動的結果から非レジスタファイルレジスタ
をロードする雑レジスタロードマイクロ命令を示す図。
【図29】 state_bit レジスタの選択されたビットを
更新し且ついくつかの制御アクションを開始させる制御
ビット・モードビット変更マイクロ命令を示す図。
【図30】 state_bit レジスタの選択されたビットを
更新し且ついくつかの制御アクションを開始させる制御
ビット・モードビット変更マイクロ命令を示す図。
【符号の説明】
20…ホストプロセッサ、22…メモリサブシステム、
24…グラフィックスアクセラレータ、26…表示装
置、28…ホストバス、30…コマンドプリプロセッ
サ、40〜43…浮動小数点プロセッサ、50〜54…
線引きプロセッサ、61〜65…VRAMインタリーブ
バンク、70…ポストプロセッサ、72…ランダムアク
セスメモリ/デジタル/アナログ変換器、80…線引き
コマンドバス、82…浮動小数点コマンドバス、100
…フレームバッファ、141…入力回路、142…レジ
スタファイル、143…機能単位、144…制御回路、
145…出力回路、146…SRAMインタフェース回
路、147…制御記憶装置アドレスバス、148…制御
記憶装置データバス、149…制御記憶装置、200…
浮動小数点乗算器、202…逆数回路、204…整数演
算論理装置、206…整数演算論理装置、220…Aバ
ス、222…Bバス、224…Cバス、226…Dバ
ス、230…マルチプレクサ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 多重バッファ入力レジスタファイルを有
    し、浮動小数点コマンドバスを介して再フォーマットし
    たジオメトリパケットを受け、且つ再フォーマットした
    ジオメトリパケットを緩衝する入力回路と;多重バッフ
    ァ出力レジスタファイルを有し、線引きパケットを緩衝
    し且つその線引きパケットを線引きコマンドバスを介し
    て転送する出力回路と;第1のレジスタグループと、第
    2のレジスタグループと、第3のレジスタグループとを
    含む汎用レジスタファイルを有するレジスタファイル回
    路と;浮動小数点比較マイクロ命令と、スワップマイク
    ロ命令とから構成されており、スワップマイクロ命令
    は、第1のレジスタグループ、第2のレジスタグループ
    及び第3のレジスタグループに記憶されている1組の頂
    点値が定義済順序で分類されるように、浮動小数点比較
    マイクロ命令に対応する一連の結果フラグに従って第1
    のレジスタグループ、第2のレジスタグループ及び第3
    のレジスタグループに関わるレジスタマップを配列替え
    する複数の特殊化グラフィックスマイクロ命令を制御記
    憶装置から読取り且つ1組の機能単位を使用して特殊化
    グラフィックスマイクロ命令を実行することにより、線
    引きパケットを出力レジスタファイルへと組立てる制御
    シーケンサとを具備するグラフィックスアクセラレータ
    の浮動小数点プロセッサ。
  2. 【請求項2】 グラフィックスアクセラレータ用の浮動
    小数点処理機能を実行する方法において、 コマンドプリプロセッサから浮動小数点コマンドバスを
    介して再フォーマットしたジオメトリパケットを受信
    し、且つ再フォーマットしたジオメトリパケットを多重
    バッファ入力レジスタファイルに緩衝する過程と;制御
    記憶装置から複数の特殊化グラフィックスマイクロ命令
    を読取り且つ1組の機能単位と、第1のレジスタグルー
    プ、第2のレジスタグループ及び第3のレジスタグルー
    プを有する汎用レジスタファイルとを使用して特殊化グ
    ラフィックスマイクロ命令を実行することにより、線引
    きパケットを生成する過程であって、特殊化グラフィッ
    クスマイクロ命令は浮動小数点比較マイクロ命令と、ス
    ワップマイクロ命令とから構成されており、スワップマ
    イクロ命令は、第1のレジスタグループ、第2のレジス
    タグループ及び第3のレジスタグループに記憶されてい
    る1組の頂点値が定義済順序で分類されるように、浮動
    小数点比較マイクロ命令に対応する一連の結果フラグに
    従って汎用レジスタファイルに関わるレジスタマップを
    配置替えする過程と;線引きパケットを線引きコマンド
    バスを介して複数の線引きプロセッサへ同報通信する過
    程とから成る方法。
JP6134912A 1993-06-04 1994-05-26 グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法 Pending JPH0749961A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7170993A 1993-06-04 1993-06-04
US071,709 1993-06-04

Publications (1)

Publication Number Publication Date
JPH0749961A true JPH0749961A (ja) 1995-02-21

Family

ID=22103069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6134912A Pending JPH0749961A (ja) 1993-06-04 1994-05-26 グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法

Country Status (5)

Country Link
US (1) US5517611A (ja)
EP (1) EP0627682B1 (ja)
JP (1) JPH0749961A (ja)
KR (1) KR100325902B1 (ja)
DE (1) DE69418646T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010500692A (ja) * 2006-08-13 2010-01-07 メンター・グラフィクス・コーポレーション 階層的プロセッサ構成によるマルチプロセッサアーキテクチャ
US8730250B2 (en) 2008-11-05 2014-05-20 Kabushiki Kaisha Toshiba Image processor and command processing method

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548709A (en) * 1994-03-07 1996-08-20 Silicon Graphics, Inc. Apparatus and method for integrating texture memory and interpolation logic in a computer system
US5842004A (en) 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US6747644B1 (en) 1995-08-04 2004-06-08 Sun Microsystems, Inc. Decompression of surface normals in three-dimensional graphics data
US6256041B1 (en) 1995-08-04 2001-07-03 Sun Microsystems, Inc. Decompression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US6215500B1 (en) 1995-08-04 2001-04-10 Sun Microsystems, Inc. Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US6525722B1 (en) 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5696944A (en) * 1995-08-08 1997-12-09 Hewlett-Packard Company Computer graphics system having double buffered vertex ram with granularity
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
WO1997021192A1 (en) * 1995-12-06 1997-06-12 Intergraph Corporation Peer-to-peer parallel processing graphics accelerator
US5850346A (en) * 1995-12-27 1998-12-15 Mitsubishi Electric Information Technology Center America, Inc. System for embedding hidden source information in three-dimensional computer model data
US5740409A (en) * 1996-07-01 1998-04-14 Sun Microsystems, Inc. Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities
US5821949A (en) * 1996-07-01 1998-10-13 Sun Microsystems, Inc. Three-dimensional graphics accelerator with direct data channels for improved performance
US5874969A (en) * 1996-07-01 1999-02-23 Sun Microsystems, Inc. Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication
US5745125A (en) * 1996-07-02 1998-04-28 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
US5987568A (en) * 1997-01-10 1999-11-16 3Com Corporation Apparatus and method for operably connecting a processor cache and a cache controller to a digital signal processor
US6184902B1 (en) 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US5930519A (en) * 1997-04-30 1999-07-27 Hewlett Packard Company Distributed branch logic system and method for a geometry accelerator
US5969726A (en) * 1997-05-30 1999-10-19 Hewlett-Packard Co. Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5889997A (en) * 1997-05-30 1999-03-30 Hewlett-Packard Company Assembler system and method for a geometry accelerator
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6169554B1 (en) 1997-06-30 2001-01-02 Sun Microsystems, Inc. Clip testing unit for a three-dimensional graphics accelerator
US6016149A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
US6192457B1 (en) 1997-07-02 2001-02-20 Micron Technology, Inc. Method for implementing a graphic address remapping table as a virtual register file in system memory
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6037947A (en) * 1997-10-16 2000-03-14 Sun Microsystems, Inc. Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
JP4275790B2 (ja) * 1998-03-19 2009-06-10 富士通マイクロエレクトロニクス株式会社 図形選別ユニット及び図形描画装置
US7136068B1 (en) 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US7616200B1 (en) 1998-06-12 2009-11-10 3Dlabs Inc. Ltd. System for reducing aliasing on a display device
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6518971B1 (en) 1998-07-17 2003-02-11 3Dlabs Inc. Ltd. Graphics processing system with multiple strip breakers
US6476816B1 (en) 1998-07-17 2002-11-05 3Dlabs Inc. Ltd. Multi-processor graphics accelerator
US6480913B1 (en) 1998-07-17 2002-11-12 3Dlabs Inc. Led. Data sequencer with MUX select input for converting input data stream and to specific output data stream using two exclusive-or logic gates and counter
WO2000004495A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation System for processing vertices from a graphics request stream
WO2000004502A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing for efficient polygon handling
US6577316B2 (en) 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
WO2000004436A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing with transcendental function generator
US6175907B1 (en) * 1998-07-17 2001-01-16 Ip First, L.L.C Apparatus and method for fast square root calculation within a microprocessor
WO2000004496A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processor with texture memory allocation system
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
US6459453B1 (en) 1998-07-17 2002-10-01 3Dlabs Inc. Ltd. System for displaying a television signal on a computer monitor
US6718457B2 (en) * 1998-12-03 2004-04-06 Sun Microsystems, Inc. Multiple-thread processor for threaded software applications
US6919895B1 (en) * 1999-03-22 2005-07-19 Nvidia Corporation Texture caching arrangement for a computer graphics accelerator
US6674440B1 (en) 1999-04-05 2004-01-06 3Dlabs, Inc., Inc. Ltd. Graphics processor for stereoscopically displaying a graphical image
US6359630B1 (en) 1999-06-14 2002-03-19 Sun Microsystems, Inc. Graphics system using clip bits to decide acceptance, rejection, clipping
US6847358B1 (en) * 1999-08-06 2005-01-25 Microsoft Corporation Workstation for processing and producing a video signal
US6924806B1 (en) 1999-08-06 2005-08-02 Microsoft Corporation Video card with interchangeable connector module
US6844880B1 (en) * 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6831637B1 (en) * 1999-12-30 2004-12-14 Intel Corporation Method and apparatus for compressing three dimensional surface data
JP4568950B2 (ja) * 2000-02-29 2010-10-27 ソニー株式会社 グラフィックス描画装置
US6724394B1 (en) * 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US7100124B2 (en) * 2000-07-03 2006-08-29 Cadence Design Systems, Inc. Interface configurable for use with target/initiator signals
US6822656B1 (en) * 2000-07-13 2004-11-23 International Business Machines Corporation Sphere mode texture coordinate generator
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6961803B1 (en) * 2001-08-08 2005-11-01 Pasternak Solutions Llc Sliced crossbar architecture with no inter-slice communication
US7492371B2 (en) * 2005-12-02 2009-02-17 Seiko Epson Corporation Hardware animation of a bouncing image
US20070186210A1 (en) * 2006-02-06 2007-08-09 Via Technologies, Inc. Instruction set encoding in a dual-mode computer processing environment
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) * 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
FR2962123A1 (fr) 2010-07-02 2012-01-06 Centre Nat Rech Scient Oxyde de zinc dope
GB2547250B (en) * 2016-02-12 2020-02-19 Geomerics Ltd Graphics processing systems
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831478B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
US11256476B2 (en) 2019-08-08 2022-02-22 Achronix Semiconductor Corporation Multiple mode arithmetic circuit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4107773A (en) * 1974-05-13 1978-08-15 Texas Instruments Incorporated Advanced array transform processor with fixed/floating point formats
US4815021A (en) * 1986-01-30 1989-03-21 Star Technologies, Inc. Multifunction arithmetic logic unit circuit
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US5136664A (en) * 1988-02-23 1992-08-04 Bersack Bret B Pixel rendering
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
EP0410778A3 (en) * 1989-07-28 1992-12-02 Texas Instruments Incorporated Graphics processor having a floating point coprocessor
US5317682A (en) * 1989-10-24 1994-05-31 International Business Machines Corporation Parametric curve evaluation method and apparatus for a computer graphics display system
US5159665A (en) * 1989-11-27 1992-10-27 Sun Microsystems, Inc. Graphics accelerator system
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010500692A (ja) * 2006-08-13 2010-01-07 メンター・グラフィクス・コーポレーション 階層的プロセッサ構成によるマルチプロセッサアーキテクチャ
US8730250B2 (en) 2008-11-05 2014-05-20 Kabushiki Kaisha Toshiba Image processor and command processing method

Also Published As

Publication number Publication date
EP0627682B1 (en) 1999-05-26
US5517611A (en) 1996-05-14
EP0627682A1 (en) 1994-12-07
KR950001538A (ko) 1995-01-03
KR100325902B1 (ko) 2002-06-20
DE69418646D1 (de) 1999-07-01
DE69418646T2 (de) 2000-06-29

Similar Documents

Publication Publication Date Title
JPH0749961A (ja) グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法
US6807620B1 (en) Game system with graphics processor
JP3491773B2 (ja) グラフィックアクセラレータ及び幾何学オブジェクト描出方法
US7728841B1 (en) Coherent shader output for multiple targets
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
US8243069B1 (en) Late Z testing for multiple render targets
US6980209B1 (en) Method and system for scalable, dataflow-based, programmable processing of graphics data
US8074224B1 (en) Managing state information for a multi-threaded processor
US7570266B1 (en) Multiple data buffers for processing graphics data
US7659909B1 (en) Arithmetic logic unit temporary registers
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6948087B2 (en) Wide instruction word graphics processor
US7298375B1 (en) Arithmetic logic units in series in a graphics pipeline
US10055883B2 (en) Frustum tests for sub-pixel shadows
EP0817008A2 (en) Three-dimensional graphics accelerator which implements multiple logical buses
US7710427B1 (en) Arithmetic logic unit and method for processing data in a graphics pipeline
US8081184B1 (en) Pixel shader program thread assembly
JP2003515853A (ja) 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム
US7747842B1 (en) Configurable output buffer ganging for a parallel processor
EP0631252B1 (en) Draw processor for a high performance three dimensional graphics accelerator
US7484076B1 (en) Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P)
US5914724A (en) Lighting unit for a three-dimensional graphics accelerator with improved handling of incoming color values
US6016149A (en) Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
US6003098A (en) Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information
US6885375B2 (en) Stalling pipelines in large designs