JP3009732B2 - 画像発生アーキテクチャおよび装置 - Google Patents
画像発生アーキテクチャおよび装置Info
- Publication number
- JP3009732B2 JP3009732B2 JP6512280A JP51228094A JP3009732B2 JP 3009732 B2 JP3009732 B2 JP 3009732B2 JP 6512280 A JP6512280 A JP 6512280A JP 51228094 A JP51228094 A JP 51228094A JP 3009732 B2 JP3009732 B2 JP 3009732B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- primitive
- image generation
- data
- memory device
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
Description
【発明の詳細な説明】 発明の分野 本発明は、一般に画像発生システムに関し、特に画像
合成技術を使用した画像発生システムに関する。更に、
本発明は、画像合成技術を使用した画像発生システムを
実施するメモリ構成およびハードウェア設計に関する。
合成技術を使用した画像発生システムに関する。更に、
本発明は、画像合成技術を使用した画像発生システムを
実施するメモリ構成およびハードウェア設計に関する。
発明の背景 飛行および車両シミュレーション、コンピュータ・エ
イディッド・デザイン、科学的な映像化、バーチュアル
・リアリティのようなグラフィックアプリケーション
は、高品質レンダリング、高ポリゴン速度および高フレ
ーム速度を必要とする。既存の商用システムは、毎秒2
百万個のポリゴンに達するピーク速度でレンダリングす
る(例えば、シリコン・グラフィックス社のスカイライ
タおよびヒューレット−パッカード社のVRX(Silicon G
raphics'SkyWriter and Hewlett−Packard's VRX))。
しかしながら、アンチエイリアシング(antialiasing)
またはリアリスティック・シェーディング(realistic
shading)またはテクスチャリング(texturing)を必要
とする場合には、その性能は1桁低下する。
イディッド・デザイン、科学的な映像化、バーチュアル
・リアリティのようなグラフィックアプリケーション
は、高品質レンダリング、高ポリゴン速度および高フレ
ーム速度を必要とする。既存の商用システムは、毎秒2
百万個のポリゴンに達するピーク速度でレンダリングす
る(例えば、シリコン・グラフィックス社のスカイライ
タおよびヒューレット−パッカード社のVRX(Silicon G
raphics'SkyWriter and Hewlett−Packard's VRX))。
しかしながら、アンチエイリアシング(antialiasing)
またはリアリスティック・シェーディング(realistic
shading)またはテクスチャリング(texturing)を必要
とする場合には、その性能は1桁低下する。
過酷なアプリケーションをサポートするために、未来
のグラフィックスシステムは、高フレーム速度(≧30H
z)で、かつ小さい待ち時間でフォン・シェーディング
(Phong shading)、アンチエイリアシング、およびテ
クスチャリングのようなリアリスティック・レンダリン
グ技術をもって何十万または何百万のプリミティブを含
むデータセットの高分解能の画像を発生することが必要
である。
のグラフィックスシステムは、高フレーム速度(≧30H
z)で、かつ小さい待ち時間でフォン・シェーディング
(Phong shading)、アンチエイリアシング、およびテ
クスチャリングのようなリアリスティック・レンダリン
グ技術をもって何十万または何百万のプリミティブを含
むデータセットの高分解能の画像を発生することが必要
である。
高性能レベルを達成しよう試みると、2つの障害、す
なわち図形処理に対する不十分な浮動小数点性能および
フレームバッファへの不十分なメモリ帯域幅に遭遇す
る。例えば、30Hzで更新される100,000個のポリゴンを
有する場面をレンダリングするためには、図形処理は毎
秒約3億5千万個の浮動小数点演算を必要とし、ラスタ
処理(rasterization)は約7億5千万回の整数演算お
よび4億5千万回のフレーム−バッファ・アクセスを必
要とする。並列的な解決方法が必須である。
なわち図形処理に対する不十分な浮動小数点性能および
フレームバッファへの不十分なメモリ帯域幅に遭遇す
る。例えば、30Hzで更新される100,000個のポリゴンを
有する場面をレンダリングするためには、図形処理は毎
秒約3億5千万個の浮動小数点演算を必要とし、ラスタ
処理(rasterization)は約7億5千万回の整数演算お
よび4億5千万回のフレーム−バッファ・アクセスを必
要とする。並列的な解決方法が必須である。
いくつかの現在のシステムは、ラスタ処理の画素並列
法を使用している。すなわち、フレーム−バッファ・メ
モリはいくつかのインターリーブ処理された区分に分割
され、その各々はそれ自身のラスタ処理プロセッサを有
している。これは、区分の数を掛けた分だけフレーム−
バッファの有効な帯域幅を増大するが、多くのプリミテ
ィブが多くの区分に関与しているので、各プロセッサが
処理しなければならないプリミティブの数は低減されな
い。この制限のためにおよび商用のVRAMの帯域幅の制限
のために、この方法では、毎秒数百万個のポリゴンとい
う現在の速度を越えてスケールすることはあまりない。
法を使用している。すなわち、フレーム−バッファ・メ
モリはいくつかのインターリーブ処理された区分に分割
され、その各々はそれ自身のラスタ処理プロセッサを有
している。これは、区分の数を掛けた分だけフレーム−
バッファの有効な帯域幅を増大するが、多くのプリミテ
ィブが多くの区分に関与しているので、各プロセッサが
処理しなければならないプリミティブの数は低減されな
い。この制限のためにおよび商用のVRAMの帯域幅の制限
のために、この方法では、毎秒数百万個のポリゴンとい
う現在の速度を越えてスケールすることはあまりない。
従って、本発明の目的は、高性能画像発生システムを
提供することにある。
提供することにある。
本発明による画像発生システムの他の目的は、グロー
・シェーディッド・ポリゴン(Gouraund−shaded polyg
ons)からフォン・シェーディッド・ボリュームデータ
(Phong−shaded volume date)、直列レンダリングす
るコンストラクティブ・ソリッド・ジオメトリー(CS
G)オブジェクトまでの種々のレンダリングアリゴリズ
ムおよびプリミティブタイプをサポートすることにあ
る。
・シェーディッド・ポリゴン(Gouraund−shaded polyg
ons)からフォン・シェーディッド・ボリュームデータ
(Phong−shaded volume date)、直列レンダリングす
るコンストラクティブ・ソリッド・ジオメトリー(CS
G)オブジェクトまでの種々のレンダリングアリゴリズ
ムおよびプリミティブタイプをサポートすることにあ
る。
本発明の別の目的は、ラスタ処理/レンダリング、シ
ェーディング、テクスチャリング、および画像バッファ
リングを含む種々の画像発生機能に適したアーキテクチ
ャアを提供することにある。
ェーディング、テクスチャリング、および画像バッファ
リングを含む種々の画像発生機能に適したアーキテクチ
ャアを提供することにある。
本発明の更に他の目的は、任意の数のレンダラ(rend
er)を組み合わせることにより広範囲の種々の性能レベ
ルにわたってかつ任意の高いレベルに対してスケール可
能である画像発生システムを提供することにある。ま
た、本発明の目的は、プリミティブの再分配を必要とす
ることなく、簡略化されたプログラミングモデルを提供
することにある。本発明の他の目的は、アンチエイリア
シング・アルゴリズムとともに使用するのに適した高帯
域幅画像合成ネットワークを提供することにある。
er)を組み合わせることにより広範囲の種々の性能レベ
ルにわたってかつ任意の高いレベルに対してスケール可
能である画像発生システムを提供することにある。ま
た、本発明の目的は、プリミティブの再分配を必要とす
ることなく、簡略化されたプログラミングモデルを提供
することにある。本発明の他の目的は、アンチエイリア
シング・アルゴリズムとともに使用するのに適した高帯
域幅画像合成ネットワークを提供することにある。
発明の概要 本発明の第1の態様は、プリミティブ・スクリーン・
データを発生するプリミティブ処理手段と、該プリミテ
ィブ処理手段に関連して、プリミティブ・スクリーン・
データから画素値を計算する複数のラスタ処理装置(ra
sterizer)を備えた画像発生システムを有する。ラスタ
処理装置は、スクリーン座標の選択された集合(セッ
ト)に対応する増強メモリ装置を有する。増強メモリ装
置(enhanced memory device)は、選択されたスクリー
ン座標の各組に対して、画素値を計算し、画素値を計算
する処理手段と、該処理手段の各々に関連し、データを
記憶する格納手段と、該処理手段の各々に関連し、画素
計算値を記憶する合成器バッファ(compositor buffe
r)とを有する。また、増強メモリ装置は、複数の図形
プロセッサ(geometry processor)の異なる1つに関連
する対応する増強メモリ装置から画素計算値を受け取る
入力手段と、前記記憶された画素計算値および前記入力
手段で受け取った画素値を合成して、合成画素値を決定
する合成器手段(compositor means)と、該合成器手段
に関連して作動し、画素合成値を出力する出力手段とを
有する。
データを発生するプリミティブ処理手段と、該プリミテ
ィブ処理手段に関連して、プリミティブ・スクリーン・
データから画素値を計算する複数のラスタ処理装置(ra
sterizer)を備えた画像発生システムを有する。ラスタ
処理装置は、スクリーン座標の選択された集合(セッ
ト)に対応する増強メモリ装置を有する。増強メモリ装
置(enhanced memory device)は、選択されたスクリー
ン座標の各組に対して、画素値を計算し、画素値を計算
する処理手段と、該処理手段の各々に関連し、データを
記憶する格納手段と、該処理手段の各々に関連し、画素
計算値を記憶する合成器バッファ(compositor buffe
r)とを有する。また、増強メモリ装置は、複数の図形
プロセッサ(geometry processor)の異なる1つに関連
する対応する増強メモリ装置から画素計算値を受け取る
入力手段と、前記記憶された画素計算値および前記入力
手段で受け取った画素値を合成して、合成画素値を決定
する合成器手段(compositor means)と、該合成器手段
に関連して作動し、画素合成値を出力する出力手段とを
有する。
図面の簡単な説明 図1は、本発明の画像発生システムの一実施例を示す
ブロック図である。
ブロック図である。
図2は、シェーダボードを有する本発明の画像発生シ
ステムの第2の実施例を示すブロック図である。
ステムの第2の実施例を示すブロック図である。
図3は、本発明のレンダラの実施例を示すブロック図
である。
である。
図4aは、本発明のレンダラの実施例を示すブロック図
である。
である。
図4bは、本発明のシェーダの実施例を示すブロック図
である。
である。
図4cは、本発明のフレームバッファの実施例を示すブ
ロック図である。
ロック図である。
図5は、本発明の増強メモリ装置の実施例を示すブロ
ック図である。
ック図である。
図6は、ホストコンピュータがそれぞれの高速直列リ
ンクを介して各レンダラおよびシェーダに接続されてい
るシェーダボードを有する本発明の画像発生システムの
実施例を示す絵画図である。
ンクを介して各レンダラおよびシェーダに接続されてい
るシェーダボードを有する本発明の画像発生システムの
実施例を示す絵画図である。
図7は、ポリゴンをレンダリングするステップおよび
本発明の画像発生システムの実施例のために実行される
システム構成要素を示すブロック図である。
本発明の画像発生システムの実施例のために実行される
システム構成要素を示すブロック図である。
図8は、本発明の画像合成ネットワーク用の制御ロジ
ックの実施例を示すブロック図である。
ックの実施例を示すブロック図である。
図9は、転送サイクルの間の種々の段階におけるマス
タ・コントローラおよびスレーブ・コントローラを有す
るレディ(ready)およびゴー(go)を示す本発明の画
像合成ネットワークの制御フローの実施例を示すブロッ
ク図である。
タ・コントローラおよびスレーブ・コントローラを有す
るレディ(ready)およびゴー(go)を示す本発明の画
像合成ネットワークの制御フローの実施例を示すブロッ
ク図である。
図10は、本発明の図形プロセッサとラスタ処理装置と
の間の通信バッファリングを行うコマンド・キューの実
施例を示すブロック図である。
の間の通信バッファリングを行うコマンド・キューの実
施例を示すブロック図である。
図11は、本発明のラスタ処理装置の実施例を示すブロ
ック図である。
ック図である。
図12は、本発明の画像発生コントローラの実施例を示
すブロック図である。
すブロック図である。
図13は、本発明のテクスチャASICと増強メモリ装置と
の間の接続の実施例を示すブロック図である。
の間の接続の実施例を示すブロック図である。
図14は、本発明のテクスチャASICチップの実施例を示
すブロック図である。
すブロック図である。
図15は、本発明のシェーダボード・モジュールの実施
例を示すブロック図である。
例を示すブロック図である。
図16は、本発明のビデオボード・ラスタ処理装置の1
モジュールの実施例を示すブロック図である。
モジュールの実施例を示すブロック図である。
好適実施例の詳細な説明 本発明の画像発生システムは、リアルタイム3Dグラフ
ィックス・アルゴリズムおよびアプリケーションを得る
ために画像合成の利点を利用する。本発明の画像発生シ
ステムは、図1ないし図16を参照して説明されるが、こ
れらの図に示されている実施例に限定されるものではな
い。本発明は、まず一般的に説明し、それから特定の実
施例について例示的に説明する。
ィックス・アルゴリズムおよびアプリケーションを得る
ために画像合成の利点を利用する。本発明の画像発生シ
ステムは、図1ないし図16を参照して説明されるが、こ
れらの図に示されている実施例に限定されるものではな
い。本発明は、まず一般的に説明し、それから特定の実
施例について例示的に説明する。
図1に示すように、最も高いレベルにおいて、本発明
の画像発生システムは、最終画像を発生するように並列
に動作する複数のレンダラ(renderer)10で構成されて
いる。これらのレンダラ10は、ホストコンピュータ20か
らホストインタフェース25を介してスクリーン画像のプ
リミティブを受け取る。それから、画素値がレンダラ10
で決定され、所与のレンダラで計算された特定の画素の
可視性が合成処理で決定され、ビデオディスプレイ40に
表示するためにフレームバッファ30に記憶される。レン
ダラが線形に配列されているので、最終画像は最終のレ
ンダラの出力から発生する。
の画像発生システムは、最終画像を発生するように並列
に動作する複数のレンダラ(renderer)10で構成されて
いる。これらのレンダラ10は、ホストコンピュータ20か
らホストインタフェース25を介してスクリーン画像のプ
リミティブを受け取る。それから、画素値がレンダラ10
で決定され、所与のレンダラで計算された特定の画素の
可視性が合成処理で決定され、ビデオディスプレイ40に
表示するためにフレームバッファ30に記憶される。レン
ダラが線形に配列されているので、最終画像は最終のレ
ンダラの出力から発生する。
レンダラで受け取られたプリミティブは幾何的形状で
あり、これらのプリミティブが組み合わされて画像を形
成する。プリミティブは、形状、深さ、色、シェーディ
ング、および本技術分野に専門知識を有する者に周知の
画像についてのその他の情報を有している。プリミティ
ブは、本技術分野に専門知識を有する者に周知の多くの
方法のうちのいずれかの方法で、複数のレンダラ10の全
体に渡って分配される。それから、最終画像は複数のレ
ンダラによって計算される画素値を結合することにより
形成される。画像合成技術は、複数のレンダラからの画
素値を再結合する手段として本画像発生システムに使用
するのに特に適している。
あり、これらのプリミティブが組み合わされて画像を形
成する。プリミティブは、形状、深さ、色、シェーディ
ング、および本技術分野に専門知識を有する者に周知の
画像についてのその他の情報を有している。プリミティ
ブは、本技術分野に専門知識を有する者に周知の多くの
方法のうちのいずれかの方法で、複数のレンダラ10の全
体に渡って分配される。それから、最終画像は複数のレ
ンダラによって計算される画素値を結合することにより
形成される。画像合成技術は、複数のレンダラからの画
素値を再結合する手段として本画像発生システムに使用
するのに特に適している。
画像合成を使用する場合には、スクリーン全体または
スクリーンの一部のプリミティブが複数のプロセッサに
分配される。単一のレンダラにスクリーンの一部のすべ
てのプリミティブの画素値を計算させるよりも、むしろ
レンダラの各々がスクリーンのある領域のプリミティブ
の一部の画素値を計算する。スクリーンの領域とは、全
スクリーンまたはその一部を示す。従って、レンダラの
すべてはスクリーンの同一部分の画素値を計算し、それ
からレンダラの各々からのこれらの画素値が結合され、
スクリーンのその部分の最終画像を出力する。スクリー
ンの各領域が、最終画像が生成されるまで順次処理され
る。複数のレンダラからのスクリーンの領域の画素値の
結合を合成と称する。
スクリーンの一部のプリミティブが複数のプロセッサに
分配される。単一のレンダラにスクリーンの一部のすべ
てのプリミティブの画素値を計算させるよりも、むしろ
レンダラの各々がスクリーンのある領域のプリミティブ
の一部の画素値を計算する。スクリーンの領域とは、全
スクリーンまたはその一部を示す。従って、レンダラの
すべてはスクリーンの同一部分の画素値を計算し、それ
からレンダラの各々からのこれらの画素値が結合され、
スクリーンのその部分の最終画像を出力する。スクリー
ンの各領域が、最終画像が生成されるまで順次処理され
る。複数のレンダラからのスクリーンの領域の画素値の
結合を合成と称する。
図2に示すように、画像発生システムは、レンダラ10
による合成の後であって、フレームバッファ30への格納
の前に画像のテクスチャリングおよびシェーディングを
行うシェーダ(shader)15を更に有している。また、シ
ェーダを使用して、アンチエイリアシング(antialiasi
ng)を実施することもできる。シェーダは、ホストプロ
セッサ20からシェーディング命令を受け取るとともに、
線形配列されたレンダラ10の最終のレンダラから合成さ
れた画素値を受け取る。フォン(Phong)・シェーディ
ング、および手順テクスチャや画像ベース・テクスチャ
のような据置きシェーディングアルゴリズムは、フレー
ムバッファ30の直前に設けられている別のハードウェア
のシェーダ15で実施される。固有の色、表面法線および
テクスチャ座標のような属性を含む画素領域は、ラスタ
処理され、レンダラ10の画像合成ネットワーク35に沿っ
て合成され、画像合成ネットワーク35からシェーダ15に
ロードされる。画像合成ネットワーク35を、どのボード
も他のどのボードと通信し得るように、リングネットワ
ークとして構成することも任意に可能である。画像合成
ネットワークを構成する他の手段がこの機能を備えてい
るものであることは、本技術分野に専門知識を有する者
にとって明らかであろう。シェーダ15は、領域全体に対
して並列的に作動して、生の画素属性を最終RGB値に変
換し、アンチエイリアシング用に複数のサンプルを一緒
に混合し、最終色値を画像合成ネットワーク35を介して
フレームバッファ30に転送する。
による合成の後であって、フレームバッファ30への格納
の前に画像のテクスチャリングおよびシェーディングを
行うシェーダ(shader)15を更に有している。また、シ
ェーダを使用して、アンチエイリアシング(antialiasi
ng)を実施することもできる。シェーダは、ホストプロ
セッサ20からシェーディング命令を受け取るとともに、
線形配列されたレンダラ10の最終のレンダラから合成さ
れた画素値を受け取る。フォン(Phong)・シェーディ
ング、および手順テクスチャや画像ベース・テクスチャ
のような据置きシェーディングアルゴリズムは、フレー
ムバッファ30の直前に設けられている別のハードウェア
のシェーダ15で実施される。固有の色、表面法線および
テクスチャ座標のような属性を含む画素領域は、ラスタ
処理され、レンダラ10の画像合成ネットワーク35に沿っ
て合成され、画像合成ネットワーク35からシェーダ15に
ロードされる。画像合成ネットワーク35を、どのボード
も他のどのボードと通信し得るように、リングネットワ
ークとして構成することも任意に可能である。画像合成
ネットワークを構成する他の手段がこの機能を備えてい
るものであることは、本技術分野に専門知識を有する者
にとって明らかであろう。シェーダ15は、領域全体に対
して並列的に作動して、生の画素属性を最終RGB値に変
換し、アンチエイリアシング用に複数のサンプルを一緒
に混合し、最終色値を画像合成ネットワーク35を介して
フレームバッファ30に転送する。
図3は、本発明によるレンダラ10のブロック図であ
る。複数のレンダラの各々は同じであってよい。レンダ
ラ10はプリミティブを受け取り、該プリミティブをスク
リーン座標に変換し、プリミティブ・スクリーン・デー
タを供給する図形プロセッサ100を有する。そして、プ
リミティブ・スクリーン・データは、図形プロセッサに
関連しているラスタ処理装置120に転送され、このプリ
ミティブ・スクリーン・データから画素値が計算され
る。代わりとして、このプリミティブ・スクリーン・デ
ータを、ホストプロセッサ20または他のプリミティブ処
理手段によってラスタ処理装置10に供給することもでき
る。この場合、ラスタ処理装置は図形プロセッサを有し
ていない。
る。複数のレンダラの各々は同じであってよい。レンダ
ラ10はプリミティブを受け取り、該プリミティブをスク
リーン座標に変換し、プリミティブ・スクリーン・デー
タを供給する図形プロセッサ100を有する。そして、プ
リミティブ・スクリーン・データは、図形プロセッサに
関連しているラスタ処理装置120に転送され、このプリ
ミティブ・スクリーン・データから画素値が計算され
る。代わりとして、このプリミティブ・スクリーン・デ
ータを、ホストプロセッサ20または他のプリミティブ処
理手段によってラスタ処理装置10に供給することもでき
る。この場合、ラスタ処理装置は図形プロセッサを有し
ていない。
ラスタ処理装置120は、画像発生コントローラ110およ
び少なくとも1つの増強メモリ装置150を有している
が、メモリ装置は増強メモリ装置アレイ125を構成する
複数の増強メモリ装置であることが好ましい。画像発生
コントローラ110は、プリミティブ・スクリーン・デー
タを受け取り、該データを増強メモリ装置150に供給す
る。また、画像発生コントローラ110は、図形プロセッ
サ100から受け取った値を、アンチエイリアシングを使
用するために増強メモリ装置150に供給する前に、調整
することができる。これらの増強メモリ装置150の各々
は、生成されているスクリーンの領域中のいずれの画素
座標もが対応する増強メモリ装置を有するように、選択
されたスクリーン座標の集合に対応している。増強メモ
リ装置150の各々は、その特定の増強メモリ装置に関連
する座標の集合の各々に対して設けられ、画素値を計算
する画素プロセッサ151またはその他の処理手段を有す
る。増強メモリ装置は、画素プロセッサ151の各々に関
連し、これらの画素プロセッサによって使用されるデー
タを記憶する格納手段152を有する。更に、増強メモリ
装置150の各々は、前記画素プロセッサの各々に関連
し、各スクリーン座標用の画素計算値を記憶するための
合成器バッファ153または他の格納手段を有する。ま
た、増強メモリ装置は、他のレンダラおよび画素計算値
を出力するための合成器出力156または他の出力手段に
関連した対応する増強メモリ装置から画素計算値を受け
取るための合成器入力155またはその他の入力手段を有
する。また、増強メモリ装置は、合成器バッファ153に
記憶された画素計算値を合成し、合成された画素値を合
成器出力156に供給する合成器回路154を有する。
び少なくとも1つの増強メモリ装置150を有している
が、メモリ装置は増強メモリ装置アレイ125を構成する
複数の増強メモリ装置であることが好ましい。画像発生
コントローラ110は、プリミティブ・スクリーン・デー
タを受け取り、該データを増強メモリ装置150に供給す
る。また、画像発生コントローラ110は、図形プロセッ
サ100から受け取った値を、アンチエイリアシングを使
用するために増強メモリ装置150に供給する前に、調整
することができる。これらの増強メモリ装置150の各々
は、生成されているスクリーンの領域中のいずれの画素
座標もが対応する増強メモリ装置を有するように、選択
されたスクリーン座標の集合に対応している。増強メモ
リ装置150の各々は、その特定の増強メモリ装置に関連
する座標の集合の各々に対して設けられ、画素値を計算
する画素プロセッサ151またはその他の処理手段を有す
る。増強メモリ装置は、画素プロセッサ151の各々に関
連し、これらの画素プロセッサによって使用されるデー
タを記憶する格納手段152を有する。更に、増強メモリ
装置150の各々は、前記画素プロセッサの各々に関連
し、各スクリーン座標用の画素計算値を記憶するための
合成器バッファ153または他の格納手段を有する。ま
た、増強メモリ装置は、他のレンダラおよび画素計算値
を出力するための合成器出力156または他の出力手段に
関連した対応する増強メモリ装置から画素計算値を受け
取るための合成器入力155またはその他の入力手段を有
する。また、増強メモリ装置は、合成器バッファ153に
記憶された画素計算値を合成し、合成された画素値を合
成器出力156に供給する合成器回路154を有する。
合成器入力155で受け取った値を増強メモリ装置150に
ロードする機能を加えることにより、レンダラ10はシェ
ーディング機能用に利用することができる。この場合
は、シェーダ15は図形プロセッサ100およびラスタ処理
装置120で使用するためにホストプロセッサからシェー
ディング情報を受け取るであろう。以下に説明するよう
に、テクスチャリングを考慮して基本のレンダラを更に
変更することができる。
ロードする機能を加えることにより、レンダラ10はシェ
ーディング機能用に利用することができる。この場合
は、シェーダ15は図形プロセッサ100およびラスタ処理
装置120で使用するためにホストプロセッサからシェー
ディング情報を受け取るであろう。以下に説明するよう
に、テクスチャリングを考慮して基本のレンダラを更に
変更することができる。
本発明の画像発生システムの特別な利点となるのは、
レンダラ、シェーダ、およびフレームバッファの構造の
モジュール性である。すべての画素に対してシェーディ
ング計算を同時に行うことができるので、レンダラ10に
使用されている単一命令複数データ(SIMD)ラスタ処理
装置120は、遅延シェーディング用の理想的なプロセッ
サである。従って、シェーダ15は簡単には指定されたレ
ンダラであってよく、画像合成ネットワーク35と増強メ
モリ装置150との間に両方向データ転送を可能とするよ
うに増強メモリ装置に対して合成器回路154をわずかに
増強したものである。シェーダには、手順テクスチャに
加えて画像ベース・テクスチャを計算し得るようにハー
ドウェアを追加することができる。
レンダラ、シェーダ、およびフレームバッファの構造の
モジュール性である。すべての画素に対してシェーディ
ング計算を同時に行うことができるので、レンダラ10に
使用されている単一命令複数データ(SIMD)ラスタ処理
装置120は、遅延シェーディング用の理想的なプロセッ
サである。従って、シェーダ15は簡単には指定されたレ
ンダラであってよく、画像合成ネットワーク35と増強メ
モリ装置150との間に両方向データ転送を可能とするよ
うに増強メモリ装置に対して合成器回路154をわずかに
増強したものである。シェーダには、手順テクスチャに
加えて画像ベース・テクスチャを計算し得るようにハー
ドウェアを追加することができる。
図4に示すように、図4bに示すシェーダ15および図4c
に示すフレームバッファ30は、図4aに示すレンダラ10と
ほぼ同じである。図4bに示すように、ローカルポート16
0を増強メモリ装置150に加えることにより、上述したよ
うなテクスチャリングが可能である。ローカルバッファ
161は、画素プロセッサ151およびローカルポート160に
よるアクセスのためのデータを記憶する。ローカルポー
ト160は、テクスチャリング情報を記憶するために使用
することができるローカル外部メモリ165または他の外
部メモリ手段へのアクセスを行う。ローカルポート16
0、ローカルバッファ161およびローカル外部メモリ165
の追加により、レンダラ10はシェーダ15として利用する
ことができ、テクスチャリング・アルゴリズムを実行す
ることができる。
に示すフレームバッファ30は、図4aに示すレンダラ10と
ほぼ同じである。図4bに示すように、ローカルポート16
0を増強メモリ装置150に加えることにより、上述したよ
うなテクスチャリングが可能である。ローカルバッファ
161は、画素プロセッサ151およびローカルポート160に
よるアクセスのためのデータを記憶する。ローカルポー
ト160は、テクスチャリング情報を記憶するために使用
することができるローカル外部メモリ165または他の外
部メモリ手段へのアクセスを行う。ローカルポート16
0、ローカルバッファ161およびローカル外部メモリ165
の追加により、レンダラ10はシェーダ15として利用する
ことができ、テクスチャリング・アルゴリズムを実行す
ることができる。
同様に、ローカルバッファ161、ローカルポート160お
よびローカル外部メモリ165の追加により、さらにビデ
オ回路170さえ含めれば、シェーダ15は、フレームバッ
ファ30として動作しうる。図4cに示すように、フレーム
バッファ30のように、ローカル外部メモリ165は、フレ
ームバッファメモリとして機能し、ビデオ回路170は、
メモリから画素画像データを読み出す。フレームバッフ
ァ30において、ローカルメモリ165は、一実施例では、
別個のダブルバッファVRAMフレームバッファである。
よびローカル外部メモリ165の追加により、さらにビデ
オ回路170さえ含めれば、シェーダ15は、フレームバッ
ファ30として動作しうる。図4cに示すように、フレーム
バッファ30のように、ローカル外部メモリ165は、フレ
ームバッファメモリとして機能し、ビデオ回路170は、
メモリから画素画像データを読み出す。フレームバッフ
ァ30において、ローカルメモリ165は、一実施例では、
別個のダブルバッファVRAMフレームバッファである。
本発明の一実施例では、ホストプロセッサ20から受け
取ったプリミティブは、図形プロセッサによって、プリ
ミティブを表す数式f(x,y)の係数として表されるプ
リミティブ・スクリーン・データに変換される。特に、
プリミティブは、f(x,y)=Ax+By+Cの形式の一連
の方程式に線形化されうる。ここにおいて、xおよびy
はスクリーン画素座標であり、A,BおよびCは特定のプ
リミティブに含まれる平面を定義する係数である。プリ
ミティブをレンダリングする上述した形式の線形方程式
を使用することは、米国特許第4,590,465号の第4欄、
第47行ないし第6欄、第8行に記載されている。この特
許の開示は、引用することにより、ここに完全に記載し
たものとし、本明細書の一部をなすものとする。線形化
について説明したが、二次方程式のような他の数式また
はスクリーン座標の他の多項式を利用することもでき
る。
取ったプリミティブは、図形プロセッサによって、プリ
ミティブを表す数式f(x,y)の係数として表されるプ
リミティブ・スクリーン・データに変換される。特に、
プリミティブは、f(x,y)=Ax+By+Cの形式の一連
の方程式に線形化されうる。ここにおいて、xおよびy
はスクリーン画素座標であり、A,BおよびCは特定のプ
リミティブに含まれる平面を定義する係数である。プリ
ミティブをレンダリングする上述した形式の線形方程式
を使用することは、米国特許第4,590,465号の第4欄、
第47行ないし第6欄、第8行に記載されている。この特
許の開示は、引用することにより、ここに完全に記載し
たものとし、本明細書の一部をなすものとする。線形化
について説明したが、二次方程式のような他の数式また
はスクリーン座標の他の多項式を利用することもでき
る。
本発明の一実施例では、図形プロセッサ100は、画像
発生コントローラ110を介して増強メモリ装置150にA,B
およびC係数を供給する。画像発生コントローラ110
は、増強メモリ装置アレイ125を制御する。それは浮動
小数点形式のA,BおよびC係数をバイト直列固定小数点
形式に変換し、プリミティブデータ、制御、アドレス情
報のようなコマンド情報を増強メモリ装置アレイ125に
送出することにより増強メモリ装置の動作を順序づけ
し、増強メモリ装置150上の合成器ポート157を制御す
る。
発生コントローラ110を介して増強メモリ装置150にA,B
およびC係数を供給する。画像発生コントローラ110
は、増強メモリ装置アレイ125を制御する。それは浮動
小数点形式のA,BおよびC係数をバイト直列固定小数点
形式に変換し、プリミティブデータ、制御、アドレス情
報のようなコマンド情報を増強メモリ装置アレイ125に
送出することにより増強メモリ装置の動作を順序づけ
し、増強メモリ装置150上の合成器ポート157を制御す
る。
また、画像発生コントローラ110は、スーパーサンプ
リングを使用することによりアンチエイリアシング用に
使用することができる。スーパーサンプリングは、ある
画素を取り囲んでいるサブ画素位置における画素値を計
算し、それからこれらのサブ画素値を組み合わせて所与
のスクリーン座標の実際の画素値を計算する。画像発生
コントローラ110は、サブ画素座標を反映するように係
数を変更し、それから図形プロセッサ100から別の係数
を得ることなく、これらの係数を増強メモリ装置150に
再送信することができる。画像発生コントローラ110
は、同じ組みのラスタ処理コマンドからスーパーサンプ
リング・フィルタカーネルの多数のサンプルを計算する
ことを可能にするサブ画素オフセットレジスタを有して
いる。これは、図形プロセッサへの負荷を増大すること
なく追加のサンプルをラスタ処理するので、スーパーサ
ンプリング時にシステムの性能を増大させることができ
る。
リングを使用することによりアンチエイリアシング用に
使用することができる。スーパーサンプリングは、ある
画素を取り囲んでいるサブ画素位置における画素値を計
算し、それからこれらのサブ画素値を組み合わせて所与
のスクリーン座標の実際の画素値を計算する。画像発生
コントローラ110は、サブ画素座標を反映するように係
数を変更し、それから図形プロセッサ100から別の係数
を得ることなく、これらの係数を増強メモリ装置150に
再送信することができる。画像発生コントローラ110
は、同じ組みのラスタ処理コマンドからスーパーサンプ
リング・フィルタカーネルの多数のサンプルを計算する
ことを可能にするサブ画素オフセットレジスタを有して
いる。これは、図形プロセッサへの負荷を増大すること
なく追加のサンプルをラスタ処理するので、スーパーサ
ンプリング時にシステムの性能を増大させることができ
る。
図5は、本発明の画像発生システムに利用されている
増強メモリ装置150の特定の実施例のブロック図であ
る。本発明の増強メモリ装置を、本技術分野に専門知識
を有する者にとって周知の製造技術を使用して単一集積
回路またはチップ上に形成することができることは、本
技術分野に専門知識を有する者に理解されることであろ
う。
増強メモリ装置150の特定の実施例のブロック図であ
る。本発明の増強メモリ装置を、本技術分野に専門知識
を有する者にとって周知の製造技術を使用して単一集積
回路またはチップ上に形成することができることは、本
技術分野に専門知識を有する者に理解されることであろ
う。
図5に示すように、本実施例では、個々の画素プロセ
ッサ151は、ある線形式評価器200を共有している。この
線形式評価器200は、すべての画素プロセッサ151におけ
る特定のプリミティブの一部を表す面を画定するAx+By
+Cの双一次式として、プリミティブ・スクリーン・デ
ータの値を並列的に計算する。また、各画素プロセッサ
151は、その画素プロセッサに関連する格納手段152とし
て機能するローカルメモリ220の区分に対しておよび双
一次式のローカル値に対して算術および論理演算を行う
小さなローカルALU210を有する。画素プロセッサ151の
演算は、SIMD(single−instruction−multiple−dat
a)であり、すべてのプロセッサは同一アドレスのデー
タ項目に対して演算を行う。各画素プロセッサ151は、
メモリへの書き込みを制限するイネーブルレジスタを有
し、これらのプロセッサのサブセットは、ある演算(例
えば、スキャン変換されたポリゴンのペインティング)
に対して実行不能にされる。また、画素プロセッサ151
が使用するための情報を供給したり、ローカルポート16
0からの情報を受け取ったり、ローカルポート160に情報
を出力するローカルバッファ161が設けられている。合
成器バッファ153は、合成される画素値を記憶する。合
成器バッファ153は、合成および出力のために合成器回
路154にデータを供給する。合成器回路154は、合成器入
力155からデータを受け取り、合成器出力156にデータを
出力する。
ッサ151は、ある線形式評価器200を共有している。この
線形式評価器200は、すべての画素プロセッサ151におけ
る特定のプリミティブの一部を表す面を画定するAx+By
+Cの双一次式として、プリミティブ・スクリーン・デ
ータの値を並列的に計算する。また、各画素プロセッサ
151は、その画素プロセッサに関連する格納手段152とし
て機能するローカルメモリ220の区分に対しておよび双
一次式のローカル値に対して算術および論理演算を行う
小さなローカルALU210を有する。画素プロセッサ151の
演算は、SIMD(single−instruction−multiple−dat
a)であり、すべてのプロセッサは同一アドレスのデー
タ項目に対して演算を行う。各画素プロセッサ151は、
メモリへの書き込みを制限するイネーブルレジスタを有
し、これらのプロセッサのサブセットは、ある演算(例
えば、スキャン変換されたポリゴンのペインティング)
に対して実行不能にされる。また、画素プロセッサ151
が使用するための情報を供給したり、ローカルポート16
0からの情報を受け取ったり、ローカルポート160に情報
を出力するローカルバッファ161が設けられている。合
成器バッファ153は、合成される画素値を記憶する。合
成器バッファ153は、合成および出力のために合成器回
路154にデータを供給する。合成器回路154は、合成器入
力155からデータを受け取り、合成器出力156にデータを
出力する。
図6に示すように、本発明の画像発生システムの一実
施例は、1つ以上のカードケージで構成され、その各々
は多数の回路ボードを有し、ホストプロセッサ20に接続
されている。各カードケージのボードは共通のバックプ
レーンに取り付けられ、各システムボードにまで延びて
いる画像合成ネットワーク35を有している。各ボードは
ホストプロセッサ20に接続されるようになっている。更
に、バックプレーンは、システムボードに電力およびク
ロックを分配する。多数のカードケージは、これらを並
設するとともに、特殊ブリッジボード(図示せず)およ
びコネクタでそれらのバックプレーンを互いに接続する
ことにより接続されている。
施例は、1つ以上のカードケージで構成され、その各々
は多数の回路ボードを有し、ホストプロセッサ20に接続
されている。各カードケージのボードは共通のバックプ
レーンに取り付けられ、各システムボードにまで延びて
いる画像合成ネットワーク35を有している。各ボードは
ホストプロセッサ20に接続されるようになっている。更
に、バックプレーンは、システムボードに電力およびク
ロックを分配する。多数のカードケージは、これらを並
設するとともに、特殊ブリッジボード(図示せず)およ
びコネクタでそれらのバックプレーンを互いに接続する
ことにより接続されている。
本発明の画像発生システムは、 毎秒百万回以上のzバッファされた三角形をレンダリ
ングすることができるワンボード・グラフィックス・コ
ンピュータであるレンダラ10と、 画素のシェーディング・モデルを並列に計算し、テク
スチャリングすることができるワンボード・グラフィッ
クス・コンピュータであるシェーダ15と、 合成された画素をバッファしディスプレイするフレー
ムバッファ30と、 の3つの主ボードタイプを含む。
ングすることができるワンボード・グラフィックス・コ
ンピュータであるレンダラ10と、 画素のシェーディング・モデルを並列に計算し、テク
スチャリングすることができるワンボード・グラフィッ
クス・コンピュータであるシェーダ15と、 合成された画素をバッファしディスプレイするフレー
ムバッファ30と、 の3つの主ボードタイプを含む。
典型的なアプリケーションでは、ホストプロセッサ20
は、全体的なシステムマスタである。これは、コードお
よびデータを種々のシステムボードにロードし、ディス
プレィ・プリミティブをレンダラ10に送出する。
は、全体的なシステムマスタである。これは、コードお
よびデータを種々のシステムボードにロードし、ディス
プレィ・プリミティブをレンダラ10に送出する。
システムは、一度に、スクリーンの1領域をラスタ処
理する。これは、ラスタ処理が発生する前に、変換され
たプリミティブが各スクリーン領域毎のビン(bin)に
分類されなければならないことを意味する。これらのビ
ンは図形プロセッサのVRAMメモリ502に記憶される。
理する。これは、ラスタ処理が発生する前に、変換され
たプリミティブが各スクリーン領域毎のビン(bin)に
分類されなければならないことを意味する。これらのビ
ンは図形プロセッサのVRAMメモリ502に記憶される。
プリミティブが分類された後、それらは画像発生コン
トローラ命令に変換され、一度に1ビン(bin)ずつラ
スタ処理される。画像発生コントローラ110および増強
メモリ装置アレイ125は、各領域毎のプリミティブをラ
スタ処理する。もし、例えばスーパーサンプリング・ア
ンチエイリアシングで、いくつかのサンプルが各画素毎
に要求されると、その場面は各パス毎に僅かに異なるサ
ブ画素オフセットで、数回にわたってラスタ処理され
る。領域がラスタ処理されると、それは増強メモリ装置
の合成器バッファ153にコピーされ、画像合成ネットワ
ーク35の全体にわたって合成される。
トローラ命令に変換され、一度に1ビン(bin)ずつラ
スタ処理される。画像発生コントローラ110および増強
メモリ装置アレイ125は、各領域毎のプリミティブをラ
スタ処理する。もし、例えばスーパーサンプリング・ア
ンチエイリアシングで、いくつかのサンプルが各画素毎
に要求されると、その場面は各パス毎に僅かに異なるサ
ブ画素オフセットで、数回にわたってラスタ処理され
る。領域がラスタ処理されると、それは増強メモリ装置
の合成器バッファ153にコピーされ、画像合成ネットワ
ーク35の全体にわたって合成される。
シェーダ15は、使用される場合には、合成された画素
値の領域を切り取り、その両域内の各画素のシェーディ
ングモデルを計算する。画素当りいくつかのサンプルを
有するアンチエイリアシングの場合、各シェーダに送出
された連続した領域は連続したサンプルを含んでいる。
これらのサンプルは各シェーダに記憶された予め計算さ
れた混合係数を使用して互いに混合される。サンプルの
すべてが混合されると、アンチエイリアシングされシェ
ーディング処理を施された画素領域は、画像合成ネット
ワーク35を介してフレームバッファ30に転送される。
値の領域を切り取り、その両域内の各画素のシェーディ
ングモデルを計算する。画素当りいくつかのサンプルを
有するアンチエイリアシングの場合、各シェーダに送出
された連続した領域は連続したサンプルを含んでいる。
これらのサンプルは各シェーダに記憶された予め計算さ
れた混合係数を使用して互いに混合される。サンプルの
すべてが混合されると、アンチエイリアシングされシェ
ーディング処理を施された画素領域は、画像合成ネット
ワーク35を介してフレームバッファ30に転送される。
フレームバッファ30は、シェーディング処理されアン
チエイリアシングされた画素を受け取り、ローカル外部
メモリ165の適当な部分に記憶する。あるフレームの領
域のすべてが受け取られると、バッファをスイッチし、
この新しいフレームを表示する。
チエイリアシングされた画素を受け取り、ローカル外部
メモリ165の適当な部分に記憶する。あるフレームの領
域のすべてが受け取られると、バッファをスイッチし、
この新しいフレームを表示する。
レンダリングは、128x128の1つの領域が一度にラス
タ処理/シェーディング処理されるという、離散形式で
行われることに注意されたい。システムの各ボードは、
合成するかどうか、シェーダにロードするか、アンロー
ドすべきか、処理せずに転送するかどうかといったよう
な、適切なやりかたを選択して処理できるように、各領
域のタイプと位置を理解していなければならない。これ
は、レンダリングが開始する前に、各ボードにレンダリ
ング処方を配布することにより行われる。レンダリング
処方は、画像合成ネットワークに転送される領域および
各領域に対して取られる動作のリストである。あるボー
ドでは、レンダリング処方は単純である。例えば、フレ
ームバッファのレンダリング処方は、領域が記憶される
べきかどうかについて、どこで、どの点でバッファをス
イッチすべきかについて簡単に記述している。シェーダ
に対するレンダリング処方は、更に複雑である。それ
は、領域をロードし、他の領域を混合し、処理すること
なくある領域を転送し、他の領域をアンロードしなけれ
ばならない。図7は、ポリゴンおよびそれらが実行され
るシステムコンポーネントをレンダリングするステップ
を図示している。
タ処理/シェーディング処理されるという、離散形式で
行われることに注意されたい。システムの各ボードは、
合成するかどうか、シェーダにロードするか、アンロー
ドすべきか、処理せずに転送するかどうかといったよう
な、適切なやりかたを選択して処理できるように、各領
域のタイプと位置を理解していなければならない。これ
は、レンダリングが開始する前に、各ボードにレンダリ
ング処方を配布することにより行われる。レンダリング
処方は、画像合成ネットワークに転送される領域および
各領域に対して取られる動作のリストである。あるボー
ドでは、レンダリング処方は単純である。例えば、フレ
ームバッファのレンダリング処方は、領域が記憶される
べきかどうかについて、どこで、どの点でバッファをス
イッチすべきかについて簡単に記述している。シェーダ
に対するレンダリング処方は、更に複雑である。それ
は、領域をロードし、他の領域を混合し、処理すること
なくある領域を転送し、他の領域をアンロードしなけれ
ばならない。図7は、ポリゴンおよびそれらが実行され
るシステムコンポーネントをレンダリングするステップ
を図示している。
ホストプロセッサ(host processor)。ホストプロセ
ッサ20は、システムマスタとして機能するワークステー
ション、多重処理システムまたはその他の汎用コンピュ
ータである。ホストプロセッサはコードおよびデータを
種々のシステムボードにロードし、ユーザの入力をサン
プルし、アプリケーションを動作させ、プリミティブを
レンダラ10に送出し、シェーディングコマンドをシェー
ダ15に送出する。
ッサ20は、システムマスタとして機能するワークステー
ション、多重処理システムまたはその他の汎用コンピュ
ータである。ホストプロセッサはコードおよびデータを
種々のシステムボードにロードし、ユーザの入力をサン
プルし、アプリケーションを動作させ、プリミティブを
レンダラ10に送出し、シェーディングコマンドをシェー
ダ15に送出する。
画像合成ネットワーク(image−composition networ
k)。画像合成ネットワーク35は、隣接ボード間で画素
データを迅速に移動させる非常に幅の広い(256ビッ
ト)、高速で特殊な通信ネットワークである。画像合成
ネットワークは、システムの異なる部分の2つの機能を
実行する。すなわち、画像合成ネットワークは、画素デ
ータをレンダラ10の合成器154間で転送し、レンダリン
グ処理された画素をシェーダ15からフレームバッファ30
に転送する。画像合成ネットワーク35は、隣接するバッ
クプレーン・スロットを接続する256本のワイヤとして
実施される。各システムボードの合成器データを隣接す
るボードの合成器に送信する。
k)。画像合成ネットワーク35は、隣接ボード間で画素
データを迅速に移動させる非常に幅の広い(256ビッ
ト)、高速で特殊な通信ネットワークである。画像合成
ネットワークは、システムの異なる部分の2つの機能を
実行する。すなわち、画像合成ネットワークは、画素デ
ータをレンダラ10の合成器154間で転送し、レンダリン
グ処理された画素をシェーダ15からフレームバッファ30
に転送する。画像合成ネットワーク35は、隣接するバッ
クプレーン・スロットを接続する256本のワイヤとして
実施される。各システムボードの合成器データを隣接す
るボードの合成器に送信する。
画像合成ネットワーク35は、全システムバックプレー
ン(または多重ラックシステムのバックプレーン)を横
切って延びる非常に大きな帯域幅のリング接続された一
方向データパスとして実施される。バックプレーンはボ
ード間の点と点を結ぶワイヤリングを構成するが、各ボ
ードには活性回路が設けられている。
ン(または多重ラックシステムのバックプレーン)を横
切って延びる非常に大きな帯域幅のリング接続された一
方向データパスとして実施される。バックプレーンはボ
ード間の点と点を結ぶワイヤリングを構成するが、各ボ
ードには活性回路が設けられている。
画像合成ネットワークの生の帯域幅は、システムにお
ける最大スクリーン分解能、フレーム速度、画素当りの
サンプルの数、画素当りのビット数を決定する。これら
のパラメータは互いにトレードオフできるが、これらの
積は全体の帯域幅よりも小さくなければならない。
ける最大スクリーン分解能、フレーム速度、画素当りの
サンプルの数、画素当りのビット数を決定する。これら
のパラメータは互いにトレードオフできるが、これらの
積は全体の帯域幅よりも小さくなければならない。
画像合成ネットワークは、2つのパート、すなわち画
素データをボードからボードに伝送するデータパス、お
よび、ネットワークを介して転送を同期し順序づける制
御パスから構成されている。画像合成ネットワーク制御
パスは、以下に説明するレディ/ゴー・コントローラま
たはデータの転送を同期する他の適当な画像合成ネット
ワーク制御手段によって支配される。これらの部分の一
実施例について更に詳細に説明する。
素データをボードからボードに伝送するデータパス、お
よび、ネットワークを介して転送を同期し順序づける制
御パスから構成されている。画像合成ネットワーク制御
パスは、以下に説明するレディ/ゴー・コントローラま
たはデータの転送を同期する他の適当な画像合成ネット
ワーク制御手段によって支配される。これらの部分の一
実施例について更に詳細に説明する。
データパスは、システム内の各対の隣接するボードを
接続する256ビットの広いポイントツーポイント通信ネ
ットワークである。相互接続ワイヤは、システム・バッ
クプレーンの一部である。高密度コネクタにより、関連
する制御信号とともにデータパスワイヤが各ボードに取
り出される。データパス用のアクティブ回路のすべて
が、個々のレンダラ/シェーダおよびフレームバッファ
ボード上に設けられている。
接続する256ビットの広いポイントツーポイント通信ネ
ットワークである。相互接続ワイヤは、システム・バッ
クプレーンの一部である。高密度コネクタにより、関連
する制御信号とともにデータパスワイヤが各ボードに取
り出される。データパス用のアクティブ回路のすべて
が、個々のレンダラ/シェーダおよびフレームバッファ
ボード上に設けられている。
ネットワーク内の個々の合成器154は、プログラム制
御により構成可能である。合成器は次の4つのモードの
1つで動作する: 合成。合成器入力155における画素ストリームを有す
る増強メモリ装置150の合成器バッファ153からの画素ス
トリームを合成する。その結果を合成器出力156を介し
て送信する。
御により構成可能である。合成器は次の4つのモードの
1つで動作する: 合成。合成器入力155における画素ストリームを有す
る増強メモリ装置150の合成器バッファ153からの画素ス
トリームを合成する。その結果を合成器出力156を介し
て送信する。
ロード。入力ストリームを増強メモリ装置にロードす
る。
る。
転送。入力ストリームを変更することなく合成器出力
156に転送する。
156に転送する。
アンロード。増強メモリ装置からのデータを合成器出
力156を介して送出する。合成器入力155に到着した画素
を無視する。
力156を介して送出する。合成器入力155に到着した画素
を無視する。
合成処理は、いくつかの方法で実施できる。一実施例
では、これは入力画素のz値を合成器バッファ画素のz
値と比較し、どの画素が見えるかを決定することにより
行われる。本技術分野に専門知識を有する者によって理
解されるように、他の合成方法も本発明で利用すること
ができる。例えば、可変長リストの断片により画素が表
されるAバッファ合成を使用することができる。Aバッ
ファ合成を使用するには、各レンダラ10は各画素のオー
ダリストの部分を計算し、合成器は入力画素の部分を合
成器バッファに記憶された画素の部分でインターリーブ
し、もはや見えない部分を削除する。
では、これは入力画素のz値を合成器バッファ画素のz
値と比較し、どの画素が見えるかを決定することにより
行われる。本技術分野に専門知識を有する者によって理
解されるように、他の合成方法も本発明で利用すること
ができる。例えば、可変長リストの断片により画素が表
されるAバッファ合成を使用することができる。Aバッ
ファ合成を使用するには、各レンダラ10は各画素のオー
ダリストの部分を計算し、合成器は入力画素の部分を合
成器バッファに記憶された画素の部分でインターリーブ
し、もはや見えない部分を削除する。
zバッファリングを使用する実施例では、合成モード
は、画素がz値を有し、各ビットは最上位ビット(MS
B)から最下位ビット(LSB)まで順序づけることを必要
とする。より近い画素が対応するビットを比較すること
により決定されると、合成器154などの画素が前方にあ
るかを記録し、優先順位の決定がこの画素に対して行わ
れたことを記録する状態ビットを設定する。これらの2
つの状態ビットは、どの画素が残りのzビットおよび画
素内の他のデータビットのすべてに対して送信されるの
かを決定する。
は、画素がz値を有し、各ビットは最上位ビット(MS
B)から最下位ビット(LSB)まで順序づけることを必要
とする。より近い画素が対応するビットを比較すること
により決定されると、合成器154などの画素が前方にあ
るかを記録し、優先順位の決定がこの画素に対して行わ
れたことを記録する状態ビットを設定する。これらの2
つの状態ビットは、どの画素が残りのzビットおよび画
素内の他のデータビットのすべてに対して送信されるの
かを決定する。
合成モードは、レンダラ・ボードに必要とされる唯一
のモードである。しかしながら、シェーダ15は、合成さ
れた領域をその増強メモリ装置150にロードし、シェー
ディング処理された領域をアンロードし、他のシェーダ
に関係する領域を転送するために他のモードを必要とす
る。
のモードである。しかしながら、シェーダ15は、合成さ
れた領域をその増強メモリ装置150にロードし、シェー
ディング処理された領域をアンロードし、他のシェーダ
に関係する領域を転送するために他のモードを必要とす
る。
画像合成ネットワーク35上の転送は、1領域の大きさ
を量子とする。画素のビットの数は可変である。しかし
ながら、一度転送が開始されると、どんな画素サイズで
あっても、その領域のすべての画素が発信元ボードから
送信され、宛先ボードで受信される。
を量子とする。画素のビットの数は可変である。しかし
ながら、一度転送が開始されると、どんな画素サイズで
あっても、その領域のすべての画素が発信元ボードから
送信され、宛先ボードで受信される。
領域転送は、一般に2つのタスクのうちの1つを実行
する。すなわち、レンダラからの画素の領域を合成し、
シェーダに入力するか、またはシェーディング処理され
た画素をフレームバッファに転送する。(領域を1つの
レンダラから他のレンダラに転送するような他の処理も
可能であるが、標準のポリゴンレンダリングでは必要で
ない。)各領域転送は、システム内の各ボードに対して
特定の意味を有し、画素データのフォーマットは、転送
の種類により異なる。各ボードはそれ自身を正しく構成
できるように転送の目的を知らなければならない。個々
のボードに対する転送のスケジュールは、レンダリング
処方と呼ばれている。各ボードのレンダリング処方は、
並列システム用の分散されたコントローラである。
する。すなわち、レンダラからの画素の領域を合成し、
シェーダに入力するか、またはシェーディング処理され
た画素をフレームバッファに転送する。(領域を1つの
レンダラから他のレンダラに転送するような他の処理も
可能であるが、標準のポリゴンレンダリングでは必要で
ない。)各領域転送は、システム内の各ボードに対して
特定の意味を有し、画素データのフォーマットは、転送
の種類により異なる。各ボードはそれ自身を正しく構成
できるように転送の目的を知らなければならない。個々
のボードに対する転送のスケジュールは、レンダリング
処方と呼ばれている。各ボードのレンダリング処方は、
並列システム用の分散されたコントローラである。
転送処理は、画像合成ネットワーク35を最大に使用す
るために非常に正確にかつ低いオーバーヘッドで同期し
ていなければならない。転送が開始し、上流のレンダラ
が画素を送信開始すると、下流のレンダラはそれらを正
確なクロックサイクルで受信する用意をしなければなら
ない。また、画像合成ネットワークは、すべてのボード
が次の転送を開始しようとする時を決定しなければなら
ない。この決定は迅速に行わなければならない。遅延す
ると、画像合成ネットワークにわたって達成される正味
の帯域幅、従ってシステムの最大速度に影響を与えるか
らである。画像合成ネットワークの制御パスは、これら
の2つの機能を実行する。更に、画像合成ネットワーク
は、転送を各ボードの他の構成要素と同期させる。
るために非常に正確にかつ低いオーバーヘッドで同期し
ていなければならない。転送が開始し、上流のレンダラ
が画素を送信開始すると、下流のレンダラはそれらを正
確なクロックサイクルで受信する用意をしなければなら
ない。また、画像合成ネットワークは、すべてのボード
が次の転送を開始しようとする時を決定しなければなら
ない。この決定は迅速に行わなければならない。遅延す
ると、画像合成ネットワークにわたって達成される正味
の帯域幅、従ってシステムの最大速度に影響を与えるか
らである。画像合成ネットワークの制御パスは、これら
の2つの機能を実行する。更に、画像合成ネットワーク
は、転送を各ボードの他の構成要素と同期させる。
レディ・チェーン(ready chain)およびゴー・チェ
ーン(go chain)は、画像合成ネットワーク35の全体に
わたって転送を同期させるハードウェア連動装置であ
る。レディ・トークン(ready token)は、ボードから
ボードへ上流へと伝播し、次の転送に対してボードの用
意ができている時を示す。ゴー・トークン(go token)
は、下流へと伝播し、転送の開始をトリガする。
ーン(go chain)は、画像合成ネットワーク35の全体に
わたって転送を同期させるハードウェア連動装置であ
る。レディ・トークン(ready token)は、ボードから
ボードへ上流へと伝播し、次の転送に対してボードの用
意ができている時を示す。ゴー・トークン(go token)
は、下流へと伝播し、転送の開始をトリガする。
図8に示すように、一実施例では、画像発生コントロ
ーラ110は、3つの入力および3つの出力をもってレデ
ィ/ゴー・コントローラ機能を実行する。転送レディ
(XferReady)入力は、ラスタ処理装置から供給され
る。それはラスタ処理装置が次の転送を開始しようとす
る時を示している。転送レディ(XferReady)、レディ
・イン(ReadyIn)、およびレディ・アウト(ReadyOu
t)は、レディ・チェーンを構成する。すなわち、レデ
ィ・トークンは、各ボード上のレディ・アウトの低から
高への変移によって符号化される。ゴー・イン(GoI
n)、ゴー・アウト(GoOut)、および転送ゴー(XferG
o)はゴー・チェーンを構成する。すなわち、ゴー・ト
ークンは、各ボード上のゴー・アウトの低から高への変
移によって符号化される。
ーラ110は、3つの入力および3つの出力をもってレデ
ィ/ゴー・コントローラ機能を実行する。転送レディ
(XferReady)入力は、ラスタ処理装置から供給され
る。それはラスタ処理装置が次の転送を開始しようとす
る時を示している。転送レディ(XferReady)、レディ
・イン(ReadyIn)、およびレディ・アウト(ReadyOu
t)は、レディ・チェーンを構成する。すなわち、レデ
ィ・トークンは、各ボード上のレディ・アウトの低から
高への変移によって符号化される。ゴー・イン(GoI
n)、ゴー・アウト(GoOut)、および転送ゴー(XferG
o)はゴー・チェーンを構成する。すなわち、ゴー・ト
ークンは、各ボード上のゴー・アウトの低から高への変
移によって符号化される。
動作に際して、フレームバッファ30は、次の転送を開
始する準備ができたとき、レディ・アウトを主張する。
各画像発生コントローラのレディ/ゴー・コントローラ
は、下流のコントローラからレディ・インを受け取り、
レディ・アウトを上流のコントローラに出力する。該コ
ントローラは、レディ・インおよび転送レディが両方と
も主張された後、レディ・アウトを主張する。転送は、
レディが上流のレンダラに到着したときに開始する。し
たがって、各ボードは、開始しようとするまで転送を遅
延することができる。
始する準備ができたとき、レディ・アウトを主張する。
各画像発生コントローラのレディ/ゴー・コントローラ
は、下流のコントローラからレディ・インを受け取り、
レディ・アウトを上流のコントローラに出力する。該コ
ントローラは、レディ・インおよび転送レディが両方と
も主張された後、レディ・アウトを主張する。転送は、
レディが上流のレンダラに到着したときに開始する。し
たがって、各ボードは、開始しようとするまで転送を遅
延することができる。
ゴーは、レディと反対方向に画像合成ネットワークを
伝播する。上流の画像発生コントローラは、転送ゴー
(XferGo)およびゴー・アウト(GoOut)を主張して、
転送を開始する。各画像発生コントローラがゴー・イン
(GoIn)を受け取ると、転送ゴー(XferGo)をボードに
主張し、ゴー・アウト(GoOut)を下流のコントローラ
に主張する。このボードは、レディを拒否することがで
きるのと同じ方法では、ゴーを拒否することはできな
い。すなわち、ボードは、転送レディ(XferReady)を
主張した時に、その特権を失ったのである。ゴーの到着
は、nクロックサイクル後に(nは出力シーケンス回路
の開始遅延によって決定される)、画素が合成ネットワ
ーク上を流れることを意味する。転送が完了すると、画
像発生コントローラは、転送ゴー(XferGo)およびゴー
・アウト(GoOut)を主張しなくなり、フレームバッフ
ァ30(用意できたとき)は、レディ・アウト(ReadyOu
t)を主張し、次の転送サイクルが開始する。
伝播する。上流の画像発生コントローラは、転送ゴー
(XferGo)およびゴー・アウト(GoOut)を主張して、
転送を開始する。各画像発生コントローラがゴー・イン
(GoIn)を受け取ると、転送ゴー(XferGo)をボードに
主張し、ゴー・アウト(GoOut)を下流のコントローラ
に主張する。このボードは、レディを拒否することがで
きるのと同じ方法では、ゴーを拒否することはできな
い。すなわち、ボードは、転送レディ(XferReady)を
主張した時に、その特権を失ったのである。ゴーの到着
は、nクロックサイクル後に(nは出力シーケンス回路
の開始遅延によって決定される)、画素が合成ネットワ
ーク上を流れることを意味する。転送が完了すると、画
像発生コントローラは、転送ゴー(XferGo)およびゴー
・アウト(GoOut)を主張しなくなり、フレームバッフ
ァ30(用意できたとき)は、レディ・アウト(ReadyOu
t)を主張し、次の転送サイクルが開始する。
上流レンダラ上のレディ/ゴーは、僅かに異なる機能
を有する。レディを上流に通過させ、ゴーを下流に通過
させるよりもむしろ、レディ・イン(ReadyIn)および
転送レディ(XferReady)を受信した後、単にゴー・ア
ウト(GoOut)を主張する。このコントローラは、転送
を実際に開始する時を決定するので、マスタコントロー
ラと呼ばれる。各ボードのコントローラは、スレーブま
たはマスタとして機能することができる。図9は転送サ
イクルの間の種々のステージにおけるマスタ・コントロ
ーラおよびスレーブ・コントローラについてレディ(Re
ady)およびゴー(Go)を示している。
を有する。レディを上流に通過させ、ゴーを下流に通過
させるよりもむしろ、レディ・イン(ReadyIn)および
転送レディ(XferReady)を受信した後、単にゴー・ア
ウト(GoOut)を主張する。このコントローラは、転送
を実際に開始する時を決定するので、マスタコントロー
ラと呼ばれる。各ボードのコントローラは、スレーブま
たはマスタとして機能することができる。図9は転送サ
イクルの間の種々のステージにおけるマスタ・コントロ
ーラおよびスレーブ・コントローラについてレディ(Re
ady)およびゴー(Go)を示している。
レディ・チェーンおよびゴー・チェーン(転送レディ
(XferReady)を除く)における信号のすべては、画像
合成ネットワークデータパスを維持し、オーバーヘッド
を低減するように画像合成クロック速度で動作すること
に注意されたい。それでも、レディおよびゴー・チェー
ンからのオーバーヘッドは、大きなシステムにおいては
顕著なものとなりうる。
(XferReady)を除く)における信号のすべては、画像
合成ネットワークデータパスを維持し、オーバーヘッド
を低減するように画像合成クロック速度で動作すること
に注意されたい。それでも、レディおよびゴー・チェー
ンからのオーバーヘッドは、大きなシステムにおいては
顕著なものとなりうる。
制御パスからの転送ゴー(XferGo)は、転送の開始を
示している。この信号は、転送レディ(XferReady)が
主張された後に、どのクロックサイクルでも到着するこ
とができる。合成器シーケンサは、転送ゴー(XferGo)
が主張された後nクロックサイクル後に、画素を合成
し、ロードし、またはアンロードする準備ができるよう
に、合成器154および合成器ポート157を構成し順番付け
をする。
示している。この信号は、転送レディ(XferReady)が
主張された後に、どのクロックサイクルでも到着するこ
とができる。合成器シーケンサは、転送ゴー(XferGo)
が主張された後nクロックサイクル後に、画素を合成
し、ロードし、またはアンロードする準備ができるよう
に、合成器154および合成器ポート157を構成し順番付け
をする。
合成器シーケンサは、構成レジスタとタイマの2つの
部分を有する。構成レジスタは、合成器の動作モード
(合成、ロード//転送またはアンロード)および合成ポ
ートの転送モード(リードまたはライト)を決定する制
御ビットを記憶する。
部分を有する。構成レジスタは、合成器の動作モード
(合成、ロード//転送またはアンロード)および合成ポ
ートの転送モード(リードまたはライト)を決定する制
御ビットを記憶する。
タイマは、合成された画素の数を監視し、適当な時に
合成ポート157をイネーブルおよびディスエーブルす
る。タイマは、転送が画像発生コントローラ110によっ
て開始する前に、適当な画素長にプリセットされる。転
送ゴー(XferGo)が主張された後に、1つの領域の画素
のすべてを転送するのに必要な正確な時間長の間、増強
メモリ装置合成ポート157に転送イネーブル(XferEna
b)信号を主張する。
合成ポート157をイネーブルおよびディスエーブルす
る。タイマは、転送が画像発生コントローラ110によっ
て開始する前に、適当な画素長にプリセットされる。転
送ゴー(XferGo)が主張された後に、1つの領域の画素
のすべてを転送するのに必要な正確な時間長の間、増強
メモリ装置合成ポート157に転送イネーブル(XferEna
b)信号を主張する。
レンダラ/シェーダ(renderer/shader)。単一ボー
ドタイプを使用して、レンダラおよびシェーダの両機能
を実施することができる。レンダラ/シェーダ・ボード
は、毎秒百万回以上zバッファされた三角形をレンダリ
ングし、並列に128x128の画素をシェーディングするこ
とができる全zバッファレンダリング・エンジンを有す
ることができる。本発明の画像発生システムは、どのよ
うな数のレンダラ/シェーダでも構成することもでき
る。レンダラ10は、プリミティブを変換しラスタ処理
し、レンダリング処理された画素を他のレンダラからの
画素で合成する役割を果たす。シェーダ15は、画像合成
ネットワークからのレンダリング処理された画素を受け
取り、それらをバッファし、128x128の画素領域のすべ
ての画素に対してシェーディングモデルを並列に評価
し、画素をフレームバッファ30に転送する。レンダラ/
シェーダ・ボードは、図形プロセッサ100とラスタ処理
装置120の2つの主部分を有する。
ドタイプを使用して、レンダラおよびシェーダの両機能
を実施することができる。レンダラ/シェーダ・ボード
は、毎秒百万回以上zバッファされた三角形をレンダリ
ングし、並列に128x128の画素をシェーディングするこ
とができる全zバッファレンダリング・エンジンを有す
ることができる。本発明の画像発生システムは、どのよ
うな数のレンダラ/シェーダでも構成することもでき
る。レンダラ10は、プリミティブを変換しラスタ処理
し、レンダリング処理された画素を他のレンダラからの
画素で合成する役割を果たす。シェーダ15は、画像合成
ネットワークからのレンダリング処理された画素を受け
取り、それらをバッファし、128x128の画素領域のすべ
ての画素に対してシェーディングモデルを並列に評価
し、画素をフレームバッファ30に転送する。レンダラ/
シェーダ・ボードは、図形プロセッサ100とラスタ処理
装置120の2つの主部分を有する。
図形プロセッサ(geometry processor)。図形プロセ
ッサは、高速浮動小数点プロセッサである処理手段504
を有する。図形プロセッサは、それ自身のローカルメモ
リを有し、ホストインタフェース130およびラスタ処理
装置120へのアクセスを有する。図形プロセッサ100は、
プリミティブをオブジェクト座標からスクリーン座標に
変換し、ラスタ処理装置に送出される命令を計算し、こ
れらを個々のスクリーン領域に対応するビン(bin)に
分類する責任がある。一実施例における図形プロセッサ
のメモリ502には、通常のDRAMよりもむしろビデオRAM
(VRAM)を使用する。VRAMのランダムポートは、メモリ
バスに接続されている。VRAMの直列ポートは、画像発生
コントローラの入力ポート440に接続されている。VRAM
は、DMAコントローラ510とともに画像発生コントローラ
110に対する入力インタフェースを形成する。
ッサは、高速浮動小数点プロセッサである処理手段504
を有する。図形プロセッサは、それ自身のローカルメモ
リを有し、ホストインタフェース130およびラスタ処理
装置120へのアクセスを有する。図形プロセッサ100は、
プリミティブをオブジェクト座標からスクリーン座標に
変換し、ラスタ処理装置に送出される命令を計算し、こ
れらを個々のスクリーン領域に対応するビン(bin)に
分類する責任がある。一実施例における図形プロセッサ
のメモリ502には、通常のDRAMよりもむしろビデオRAM
(VRAM)を使用する。VRAMのランダムポートは、メモリ
バスに接続されている。VRAMの直列ポートは、画像発生
コントローラの入力ポート440に接続されている。VRAM
は、DMAコントローラ510とともに画像発生コントローラ
110に対する入力インタフェースを形成する。
図10に示すように、コマンドキュー、好ましくはFIFO
500は、図形プロセッサとラスタ処理装置との間の通信
およびバッファリングを行う。FIFO500は、図形プロセ
ッサのVRAMメモリのデータのブロックに対するポインタ
および各ブロックの長さを記憶する。
500は、図形プロセッサとラスタ処理装置との間の通信
およびバッファリングを行う。FIFO500は、図形プロセ
ッサのVRAMメモリのデータのブロックに対するポインタ
および各ブロックの長さを記憶する。
DMAコントローラ510は、FIFO500からポインタを読み
出し、VRAM直列ポートからデータを取ってくる。すべて
のVRAMバンクの直列ポートは共通32ビットバスに一緒に
接続され、画像発生コントローラの入力ポートに接続さ
れている。DMAコントローラ510は、画像発生コトローラ
110とハンドシェークし、32ビットコマンドワードを66M
Hzクロックサイクル毎にロード可能にする。
出し、VRAM直列ポートからデータを取ってくる。すべて
のVRAMバンクの直列ポートは共通32ビットバスに一緒に
接続され、画像発生コントローラの入力ポートに接続さ
れている。DMAコントローラ510は、画像発生コトローラ
110とハンドシェークし、32ビットコマンドワードを66M
Hzクロックサイクル毎にロード可能にする。
ラスタ処理装置(rasterizer)。ラスタ処理装置120
は、各レンダラ/シェーダボードの中心部分である。ラ
スタ処理装置の中心部は、各ボードで同じであるが、シ
ェーダボード上のテクスチャメモリまたはビデオボード
上のビデオメモリのようなボード特有回路とともにラス
タ処理装置内に設けられている。ラスタ処理装置の中心
部は、図11に示すように、64個の増強メモリ装置150の
アレイ、32個のテクスチャASIC162のアレイ、および画
像発生コントローラ110を有している。
は、各レンダラ/シェーダボードの中心部分である。ラ
スタ処理装置の中心部は、各ボードで同じであるが、シ
ェーダボード上のテクスチャメモリまたはビデオボード
上のビデオメモリのようなボード特有回路とともにラス
タ処理装置内に設けられている。ラスタ処理装置の中心
部は、図11に示すように、64個の増強メモリ装置150の
アレイ、32個のテクスチャASIC162のアレイ、および画
像発生コントローラ110を有している。
増強メモリ装置150は、単一命令/多重データ・スト
リーム(SIMD)方式で動作する128x128(16,384)バイ
ト直列画素処理素子のアレイ125を形成している。典型
的なシステム動作では、これらの処理素子は、スクリー
ン上の128x128画素領域上に画素当り1個の処理素子で
マップされ、F(x,y)のローカル値は、処理素子(x,
y)の画素アドレスに対応する。
リーム(SIMD)方式で動作する128x128(16,384)バイ
ト直列画素処理素子のアレイ125を形成している。典型
的なシステム動作では、これらの処理素子は、スクリー
ン上の128x128画素領域上に画素当り1個の処理素子で
マップされ、F(x,y)のローカル値は、処理素子(x,
y)の画素アドレスに対応する。
テクスチャASIC162は、データパス・チップであり、
増強メモリ装置150をテクスチャまたは画像格納のため
にオプションの外部メモリ165および図形プロセッサに
接続する。
増強メモリ装置150をテクスチャまたは画像格納のため
にオプションの外部メモリ165および図形プロセッサに
接続する。
画像発生コントローラ110は、図形プロセッサからの
命令を解釈する。これは、増強メモリ装置150およびテ
クスチャASIC162用の高レベル命令を実行し、サイクル
毎の動作を制御する2つのシーケンサを有するマイクロ
コード化エンジンである。
命令を解釈する。これは、増強メモリ装置150およびテ
クスチャASIC162用の高レベル命令を実行し、サイクル
毎の動作を制御する2つのシーケンサを有するマイクロ
コード化エンジンである。
ラスタ処理装置の中心部に加えて、シェーダ・ボード
はテクスチャを記憶するためのDRAMメモリを有してい
る。ビデオボードはフレーム・スキャン・インとスキャ
ン・アウトの間、画素を記憶するVRAMメモリを有する。
レンダラボードは、特別な回路を持ってないが、テクス
チャASICは、増強メモリ装置のメモリと図形プロセッサ
バスとの間のインタフェースの働きをする(この接続は
どのようなボードの種類でも存在する)。
はテクスチャを記憶するためのDRAMメモリを有してい
る。ビデオボードはフレーム・スキャン・インとスキャ
ン・アウトの間、画素を記憶するVRAMメモリを有する。
レンダラボードは、特別な回路を持ってないが、テクス
チャASICは、増強メモリ装置のメモリと図形プロセッサ
バスとの間のインタフェースの働きをする(この接続は
どのようなボードの種類でも存在する)。
画像発生コントローラ(image generation controlle
r)。一実施例では、画像発生コントローラ110は、図形
プロセッサ100からのコマンドを処理し、増強メモリ装
置150およびテクスチャASIC162を順番に配列し、ラスタ
処理装置を画像合成ネットワーク35と同期させる。画像
発生コントローラは、増強メモリ装置およびテクスチャ
ASICを制御するマイクロコード記憶部および別々のシー
ケンサを有するカスタムチップである。増強メモリ装置
のシーケンサは、浮動小数点入力係数を増強メモリ装置
によって要求される固定小数点バイト直列形式に変換す
る直列化装置を有する。図12は、画像発生コントローラ
のブロック図である。
r)。一実施例では、画像発生コントローラ110は、図形
プロセッサ100からのコマンドを処理し、増強メモリ装
置150およびテクスチャASIC162を順番に配列し、ラスタ
処理装置を画像合成ネットワーク35と同期させる。画像
発生コントローラは、増強メモリ装置およびテクスチャ
ASICを制御するマイクロコード記憶部および別々のシー
ケンサを有するカスタムチップである。増強メモリ装置
のシーケンサは、浮動小数点入力係数を増強メモリ装置
によって要求される固定小数点バイト直列形式に変換す
る直列化装置を有する。図12は、画像発生コントローラ
のブロック図である。
画像発生コントローラ用のコマンドは、異なるフォー
マットを有する。これらは命令の目的によって次に示す
5つのアーギュメントのいくつかまたはすべてを有す
る。すなわち、 Iワードは、必須のものであり、命令コードおよびマ
イクロルーチン用のいくつかのパラメータを有する。I
ワードはすべてのコマンドに存在し、コマンドの第1ワ
ードである。
マットを有する。これらは命令の目的によって次に示す
5つのアーギュメントのいくつかまたはすべてを有す
る。すなわち、 Iワードは、必須のものであり、命令コードおよびマ
イクロルーチン用のいくつかのパラメータを有する。I
ワードはすべてのコマンドに存在し、コマンドの第1ワ
ードである。
Pワードは、オプションであり、マイクロコードルー
チン用の追加パラメータを有する。
チン用の追加パラメータを有する。
A,BおよびC係数はオプションであり、線形式評価器
用のオペランドである。
用のオペランドである。
IワードおよびPワードは、各々32ビットである。A,
BおよびC係数は、32または64ビットの整数または浮動
小数点数である。画像発生コントローラは、256ビット
幅の入力コマンドレジスタを有し、これらのアーギュメ
ントからなる全コマンドを保持できる。画像発生コント
ローラへの物理的入力インタフェースは、32ビット幅で
ある。ストリームパーサ(parser)600は、入力ストリ
ームを解析し、各ワードをコマンドレジスタの適当な部
分にロードする。入力インタフェースの残りの部分は、
これらのフォーマットに関係なく単一ユニットとしてコ
マンドを処理する。
BおよびC係数は、32または64ビットの整数または浮動
小数点数である。画像発生コントローラは、256ビット
幅の入力コマンドレジスタを有し、これらのアーギュメ
ントからなる全コマンドを保持できる。画像発生コント
ローラへの物理的入力インタフェースは、32ビット幅で
ある。ストリームパーサ(parser)600は、入力ストリ
ームを解析し、各ワードをコマンドレジスタの適当な部
分にロードする。入力インタフェースの残りの部分は、
これらのフォーマットに関係なく単一ユニットとしてコ
マンドを処理する。
ラスタ処理装置のタスクは、2つの部分:(1)ラス
タ処理−画素値の計算、および(2)合成器のセットア
ップ−画素データを増強メモリ装置の画素メモリの合成
器バッファ部154にコピーし、合成器154を制御するとい
う2つの部分からなる。不幸にして、2つの部分は、非
同期処理として実施されなければならない。これは、画
素値の多数の領域が画素メモリにバッファされ、領域の
転送が予測できない時に(画像合成ネットワークが新し
い領域を転送しようとする時)発生するからである。
タ処理−画素値の計算、および(2)合成器のセットア
ップ−画素データを増強メモリ装置の画素メモリの合成
器バッファ部154にコピーし、合成器154を制御するとい
う2つの部分からなる。不幸にして、2つの部分は、非
同期処理として実施されなければならない。これは、画
素値の多数の領域が画素メモリにバッファされ、領域の
転送が予測できない時に(画像合成ネットワークが新し
い領域を転送しようとする時)発生するからである。
これらのタスクを非同期で実行することができるため
には、入ってくる画像発生コントローラコマンドは、2
つのコマンドキュー、好ましくはFIFOにバッファされな
ければならない。すなわち、RFIFO610は、レンダリング
コマンドをバッファし、TFIFO620は、転送コマンドをバ
ッファする。2つのFIFOの動作を同期させるのに仲裁ロ
ジックが必要である。
には、入ってくる画像発生コントローラコマンドは、2
つのコマンドキュー、好ましくはFIFOにバッファされな
ければならない。すなわち、RFIFO610は、レンダリング
コマンドをバッファし、TFIFO620は、転送コマンドをバ
ッファする。2つのFIFOの動作を同期させるのに仲裁ロ
ジックが必要である。
FIFOは、各エントリの全コマンドを保持するのに十分
な広い幅を有している。各コマンドのIワード内のある
ビットにより、コマンドRFIFO610またはTFIFO620にロー
ドされるべきかどうかが決定される。RFIFO610は、64個
のコマンドまでを保持することができ、TFIFO620は1024
個のコマンドまでを保持することができる。ハードウェ
アはFIFOに記憶されたコマンドの数のトラックを維持
し、いずれかのFIFOがほぼ満杯である場合、状態レジス
タビットを主張する。図形プロセッサ100は、この状態
レジスタビットの主張するところを検出し、画像発生コ
ントローラFIFOのオーバーフローを防止する。
な広い幅を有している。各コマンドのIワード内のある
ビットにより、コマンドRFIFO610またはTFIFO620にロー
ドされるべきかどうかが決定される。RFIFO610は、64個
のコマンドまでを保持することができ、TFIFO620は1024
個のコマンドまでを保持することができる。ハードウェ
アはFIFOに記憶されたコマンドの数のトラックを維持
し、いずれかのFIFOがほぼ満杯である場合、状態レジス
タビットを主張する。図形プロセッサ100は、この状態
レジスタビットの主張するところを検出し、画像発生コ
ントローラFIFOのオーバーフローを防止する。
FIFOは、RTコントローラ630によって空にされる。こ
のRTコントローラは、画素メモリ内で有効な領域バッフ
ァの数のトラックおよび画像合成ネットワーク35の状態
を維持する。最初は、それはRFIFO610からコマンドを読
み出す。新しい画像合成ネットワークの転送が初期化さ
れる(またはされようとする)ことが必要である場合、
RFIFO610からのコマンドストリームは中断され、コマン
ドがTFIFO620から読み出される。これらのコマンドによ
り、格納手段152からのデータが合成器バッファ153にコ
ピーされ、転送が初期化される。新しい転送が初期化さ
れるや否や、コマンドストリームの処理はRFIFO610に戻
される。
のRTコントローラは、画素メモリ内で有効な領域バッフ
ァの数のトラックおよび画像合成ネットワーク35の状態
を維持する。最初は、それはRFIFO610からコマンドを読
み出す。新しい画像合成ネットワークの転送が初期化さ
れる(またはされようとする)ことが必要である場合、
RFIFO610からのコマンドストリームは中断され、コマン
ドがTFIFO620から読み出される。これらのコマンドによ
り、格納手段152からのデータが合成器バッファ153にコ
ピーされ、転送が初期化される。新しい転送が初期化さ
れるや否や、コマンドストリームの処理はRFIFO610に戻
される。
RTコントローラ630は、内部4ビットカウンタを2
つ、すなわち、「FreeBuffs」および「FullBuffs」と呼
ぶカウンタを有する。これらは、それぞれ増強メモリ装
置150内の画素データの空きのバッファの数および満杯
のバッファの数を示している。画像発生コントローラ11
0がリセットされると、FreeBuffsおよびFullBuffsは、
各々0にセットされる。ソフトウェアにより、増強メモ
リ装置において利用できる空き画素バッファの数にFree
Buffsをセットしなければならない。これらのカウンタ
は、セマフォのように使用され、コマンドが入力FIFOの
各々から安全に実行されるかどうかを決定する。例え
ば、FreeBuffs=0の場合には、ラスタ処理は停止され
なければならない。すなわち、さらなる結果を保持する
のに利用できるバッファーがない。また、転送は、Full
Buffs>0の場合にのみ開始される。FreeBuffsおよびFu
llBuffsは、入力コマンドストリーム内に存在する特殊
な制御コマンドを使用してインクリメントおよびデクリ
メントされる。
つ、すなわち、「FreeBuffs」および「FullBuffs」と呼
ぶカウンタを有する。これらは、それぞれ増強メモリ装
置150内の画素データの空きのバッファの数および満杯
のバッファの数を示している。画像発生コントローラ11
0がリセットされると、FreeBuffsおよびFullBuffsは、
各々0にセットされる。ソフトウェアにより、増強メモ
リ装置において利用できる空き画素バッファの数にFree
Buffsをセットしなければならない。これらのカウンタ
は、セマフォのように使用され、コマンドが入力FIFOの
各々から安全に実行されるかどうかを決定する。例え
ば、FreeBuffs=0の場合には、ラスタ処理は停止され
なければならない。すなわち、さらなる結果を保持する
のに利用できるバッファーがない。また、転送は、Full
Buffs>0の場合にのみ開始される。FreeBuffsおよびFu
llBuffsは、入力コマンドストリーム内に存在する特殊
な制御コマンドを使用してインクリメントおよびデクリ
メントされる。
一実施例では、画像発生コントローラ110は、2つの
シーケンサ、すなわちEMCシーケンサ640とTASシーケン
サ650を有している。EMCシーケンサ640は、画素プロセ
ッサ151用のマイクロ命令、画素メモリ220へのアドレ
ス、および線形式評価器(linear expression evaluato
r)200用のABC係数を発生する。EMCシーケンサ640への
コマンドを使用して、(レンダラボード上の)ポリゴン
をラスタ処理し、(シェーダボード上の)シェーディン
グ計算を実施する。TASシーケンサ650は、テクスチャAS
IC162および附属のメモリ165を制御する。TASシーケン
サ650へのコマンドを使用し、シェーダまたはビデオボ
ード上の附属メモリ165と増強メモリ装置150との間、ま
たは増強メモリ装置150上の画素メモリ220と図形プロセ
ッサバスとの間でデータを移動する。
シーケンサ、すなわちEMCシーケンサ640とTASシーケン
サ650を有している。EMCシーケンサ640は、画素プロセ
ッサ151用のマイクロ命令、画素メモリ220へのアドレ
ス、および線形式評価器(linear expression evaluato
r)200用のABC係数を発生する。EMCシーケンサ640への
コマンドを使用して、(レンダラボード上の)ポリゴン
をラスタ処理し、(シェーダボード上の)シェーディン
グ計算を実施する。TASシーケンサ650は、テクスチャAS
IC162および附属のメモリ165を制御する。TASシーケン
サ650へのコマンドを使用し、シェーダまたはビデオボ
ード上の附属メモリ165と増強メモリ装置150との間、ま
たは増強メモリ装置150上の画素メモリ220と図形プロセ
ッサバスとの間でデータを移動する。
EMCシーケンサ640およびTASシーケンサ650は、各々ロ
ーカルマイクロコードメモリを有する。各コマンドのI
ワード内のビットは、どのシーケンサがコマンドを実行
すべきかを指示する。また、Iワードは、コマンド用の
開始マイクロコードアドレスを特定する。各シーケンサ
は、(ループカウンタの値のような)内部条件および外
部条件(各シーケンサに対する2つの条件コード入力)
の両方に対して条件分岐を行うことができる。シーケン
サはスタックを持っていない。また、シーケンサは、ラ
スタ処理装置のボード上の種々雑多な制御機能を実施す
ることができるいくつかの外部制御出力を有する。
ーカルマイクロコードメモリを有する。各コマンドのI
ワード内のビットは、どのシーケンサがコマンドを実行
すべきかを指示する。また、Iワードは、コマンド用の
開始マイクロコードアドレスを特定する。各シーケンサ
は、(ループカウンタの値のような)内部条件および外
部条件(各シーケンサに対する2つの条件コード入力)
の両方に対して条件分岐を行うことができる。シーケン
サはスタックを持っていない。また、シーケンサは、ラ
スタ処理装置のボード上の種々雑多な制御機能を実施す
ることができるいくつかの外部制御出力を有する。
増強メモリ装置(enhanced memory device)。一実施
例では、64個の増強メモリ装置150のアレイ125は、スク
リーンの128x128の画素領域がカバーする2次元SIMDプ
ロセッサアレイである。この論理アレイは、ディスプレ
イスクリーンのどの128x128の画素領域でも処理するよ
うに「移動」させることができる。このような領域は、
通常128画素毎の境界に配列されるが、任意に位置決め
することができる。
例では、64個の増強メモリ装置150のアレイ125は、スク
リーンの128x128の画素領域がカバーする2次元SIMDプ
ロセッサアレイである。この論理アレイは、ディスプレ
イスクリーンのどの128x128の画素領域でも処理するよ
うに「移動」させることができる。このような領域は、
通常128画素毎の境界に配列されるが、任意に位置決め
することができる。
各画素は、それ自身の8ビットALU210、線形式評価器
ツリー(LEE:linear−expression evaluator tree)200
の出力、ローカルメモリ152の2048ビット、256ビットの
合成器バッファ153、および256ビットのローカルデータ
バッファ161を備えている。図5は、増強メモリ装置の
論理図を示している。
ツリー(LEE:linear−expression evaluator tree)200
の出力、ローカルメモリ152の2048ビット、256ビットの
合成器バッファ153、および256ビットのローカルデータ
バッファ161を備えている。図5は、増強メモリ装置の
論理図を示している。
各画素ALU210は、汎用8ビットプロセッサである。こ
れは画素のサブセットに対して操作を行うことができる
イネーブルレジスタを有している。画素ALUは、線形式
評価器の結果またはローカルメモリ220をオペランドと
して使用し、結果をローカルメモリに書き込むことがで
きる。また、これはメモリとローカルおよび合成器バッ
ファとの間でデータを転送することができる。
れは画素のサブセットに対して操作を行うことができる
イネーブルレジスタを有している。画素ALUは、線形式
評価器の結果またはローカルメモリ220をオペランドと
して使用し、結果をローカルメモリに書き込むことがで
きる。また、これはメモリとローカルおよび合成器バッ
ファとの間でデータを転送することができる。
画像発生コントローラ110は、増強メモリ装置アレイ1
25の動作を制御する。画像発生コントローラの命令およ
び係数は直列化され、すべての増強メモリ装置に並列に
ブロードキャストされる。SIMD画素プロセッサは、ロッ
クステップでこれらの命令を実行する。各画素プロセッ
サのイネーブルレジスタを使用して、どのサブセットの
画素プロセッサが所与の時点でアクティブであるかを制
御する。
25の動作を制御する。画像発生コントローラの命令およ
び係数は直列化され、すべての増強メモリ装置に並列に
ブロードキャストされる。SIMD画素プロセッサは、ロッ
クステップでこれらの命令を実行する。各画素プロセッ
サのイネーブルレジスタを使用して、どのサブセットの
画素プロセッサが所与の時点でアクティブであるかを制
御する。
各画素は、256+32+32バイトのローカルメモリを備
えている。上述したように、メモリは3つの部分、すな
わち大抵の計算のために使用される256バイトの主区
分、および外部通信のために使用される2つの32バイト
の区分に分割されている。
えている。上述したように、メモリは3つの部分、すな
わち大抵の計算のために使用される256バイトの主区
分、および外部通信のために使用される2つの32バイト
の区分に分割されている。
通常、画素メモリの256+32+32バイトのすべてをア
クセスすることができる。しかしながら、通信ポート操
作が行われる場合には、それらのバッファのデータは一
時的に利用できない。例えば、合成されるべき画素デー
タが合成器バッファ内にコピーされた後、合成操作は初
期化され、合成器バッファ内のメモリは合成操作が完了
するまでALUによってアクセスすることはできない。同
様に、ローカルポート操作を行うためには、データはロ
ーカルバッファ内に移動され、ローカルポート操作が開
始される。この点において、ローカルバッファは操作が
完了するまでALUによってアクセスされてはならない。
クセスすることができる。しかしながら、通信ポート操
作が行われる場合には、それらのバッファのデータは一
時的に利用できない。例えば、合成されるべき画素デー
タが合成器バッファ内にコピーされた後、合成操作は初
期化され、合成器バッファ内のメモリは合成操作が完了
するまでALUによってアクセスすることはできない。同
様に、ローカルポート操作を行うためには、データはロ
ーカルバッファ内に移動され、ローカルポート操作が開
始される。この点において、ローカルバッファは操作が
完了するまでALUによってアクセスされてはならない。
画像合成ポートおよびローカルポートは、画素データ
を直列に増強メモリ装置に/から(合成処理のために)
他の増強メモリ装置に転送したり、またはテクスチャAS
ICに/から(テクスチャ・ルックアップを行うためにま
たはテクスチャまたはビデオメモリへの画素データの書
き込みを行うために)転送することを可能にする。各画
素からのデータは各ポートから直列に存在する。各画素
および通信バッファ内のそれらの位置に/から転送され
たバイトの数は、構成コマンドによって指示される。画
像合成ポートは合成器入力155および合成器出力156を有
する。この両者は132MHzで動作する4ビットポートであ
る。ローカルポートは66MHzで動作する4ビットポート
である。
を直列に増強メモリ装置に/から(合成処理のために)
他の増強メモリ装置に転送したり、またはテクスチャAS
ICに/から(テクスチャ・ルックアップを行うためにま
たはテクスチャまたはビデオメモリへの画素データの書
き込みを行うために)転送することを可能にする。各画
素からのデータは各ポートから直列に存在する。各画素
および通信バッファ内のそれらの位置に/から転送され
たバイトの数は、構成コマンドによって指示される。画
像合成ポートは合成器入力155および合成器出力156を有
する。この両者は132MHzで動作する4ビットポートであ
る。ローカルポートは66MHzで動作する4ビットポート
である。
各増強メモリ装置は、すべての画素のイネーブルレジ
スタのロジカル−オアを表す出力を有する。これらの出
力は互いにワイヤード・アンドされ、グローバル−イネ
ーブル信号(EOrH)、すなわち全SIMDアレイ用のイネー
ブルレジスタのロジカル−オアを形成する。EOrHは、EM
Cシーケンサの外部条件コード入力に供給される。EMCシ
ーケンサへのコマンドはEOrの状態をテストし、その結
果に基づいて条件付きで実行する。EOrの状態は、図形
プロセッサと通信することができる。
スタのロジカル−オアを表す出力を有する。これらの出
力は互いにワイヤード・アンドされ、グローバル−イネ
ーブル信号(EOrH)、すなわち全SIMDアレイ用のイネー
ブルレジスタのロジカル−オアを形成する。EOrHは、EM
Cシーケンサの外部条件コード入力に供給される。EMCシ
ーケンサへのコマンドはEOrの状態をテストし、その結
果に基づいて条件付きで実行する。EOrの状態は、図形
プロセッサと通信することができる。
テクスチャASIC(texture ASIC)。32個のテクスチャ
ASICのアレイは、増強メモリ装置の画素メモリ、図形プ
ロセッサマイクロプロセッサのバス、およびオプション
のテクスチャまたはビデオメモリ間のデータ並列通信イ
ンタフェースからなる。32個のテクスチャASICは、8個
のモジュールに分割され、各モジュールは、8個の増強
メモリ装置および4個のテクスチャASICからなる。テク
スチャASICは、図13に示すように、ビットスライス方式
で増強メモリ装置の4ビットローカルポートに接続され
る。また、テクスチャASICは、8個の全てのモジュール
にかかっているビットスライスの32ビットバスに接続さ
れている。このTASICバスは、モジュール間をロジカル
接続し、画素データが必要により共有される。増強メモ
リ装置およびテクスチャASIC間の4ビットインタフェー
スおよびTASICバスは、66MHzで動作する。
ASICのアレイは、増強メモリ装置の画素メモリ、図形プ
ロセッサマイクロプロセッサのバス、およびオプション
のテクスチャまたはビデオメモリ間のデータ並列通信イ
ンタフェースからなる。32個のテクスチャASICは、8個
のモジュールに分割され、各モジュールは、8個の増強
メモリ装置および4個のテクスチャASICからなる。テク
スチャASICは、図13に示すように、ビットスライス方式
で増強メモリ装置の4ビットローカルポートに接続され
る。また、テクスチャASICは、8個の全てのモジュール
にかかっているビットスライスの32ビットバスに接続さ
れている。このTASICバスは、モジュール間をロジカル
接続し、画素データが必要により共有される。増強メモ
リ装置およびテクスチャASIC間の4ビットインタフェー
スおよびTASICバスは、66MHzで動作する。
図14は、テクスチャASICチップのブロック図である。
内部的に、このテクスチャASICチップは増強メモリ装置
のメモリ、いくつかの構成可能なデータパス、および外
部メモリに直接接続される両方向ポートへ/からのアド
レスおよびデータをバッファリングし、直列化/並列化
する二重ポートRAMから構成されている。テクスチャASI
Cアレイのクロック毎の動作は、画像発生コントローラ
にあるEMCシーケンサから独立した画像発生コントロー
ラ内のTASシーケンサによって制御される。しかし、TAS
シーケンサは、増強メモリ装置のローカルポートを制御
するが、それは、これらのローカルポートが直接テクス
チャASICとインタフェースしているからである。
内部的に、このテクスチャASICチップは増強メモリ装置
のメモリ、いくつかの構成可能なデータパス、および外
部メモリに直接接続される両方向ポートへ/からのアド
レスおよびデータをバッファリングし、直列化/並列化
する二重ポートRAMから構成されている。テクスチャASI
Cアレイのクロック毎の動作は、画像発生コントローラ
にあるEMCシーケンサから独立した画像発生コントロー
ラ内のTASシーケンサによって制御される。しかし、TAS
シーケンサは、増強メモリ装置のローカルポートを制御
するが、それは、これらのローカルポートが直接テクス
チャASICとインタフェースしているからである。
テクスチャASICの外部メモリポートは、レンダラ・ポ
ート上で使用されない。これらはシェーダ・ボード上の
テクスチャメモリに接続され、またビデオボード上のビ
デオメモリに接続される。
ート上で使用されない。これらはシェーダ・ボード上の
テクスチャメモリに接続され、またビデオボード上のビ
デオメモリに接続される。
レンダラ、シェーダ、ビデオボードの差異。レンダラ
ボード上のラスタ処理装置は、単にラスタ処理装置の中
心部分からなる。これはほとんどのラスタ処理計算に必
要な唯一の回路である。
ボード上のラスタ処理装置は、単にラスタ処理装置の中
心部分からなる。これはほとんどのラスタ処理計算に必
要な唯一の回路である。
シェーダボード上のラスタ処理装置は、TASICメモリ
ポートに取り付けられた128個の4Mbitx4のDRAM(16メガ
ビット)メモリチップのアレイを有する。この追加メモ
リは、画像ベース・テクスチャを記憶し、ルックアップ
し、画像ワーピング操作用の画素間通信を行い、または
メモリ集約的なレンダリング・アルゴリズム用のパッキ
ング記憶装置として機能するように使用される。
ポートに取り付けられた128個の4Mbitx4のDRAM(16メガ
ビット)メモリチップのアレイを有する。この追加メモ
リは、画像ベース・テクスチャを記憶し、ルックアップ
し、画像ワーピング操作用の画素間通信を行い、または
メモリ集約的なレンダリング・アルゴリズム用のパッキ
ング記憶装置として機能するように使用される。
メモリは、増強メモリ装置およびテクスチャASICとと
もに、8個のモジュールに分割される。あるモジュール
内の16個のDRAMは、8バンクに配列され、各バンクは2K
x2Kバイトの大きさである。1モジュール当りの総記憶
容量は32メガバイトである。これらのバンクは全体的に
制御されるが(8個のすべては同時にメモリ動作を行
う)、アドレスは異なる。図15は、1つのシェーダ・ボ
ード・モジュールのブロック図である。
もに、8個のモジュールに分割される。あるモジュール
内の16個のDRAMは、8バンクに配列され、各バンクは2K
x2Kバイトの大きさである。1モジュール当りの総記憶
容量は32メガバイトである。これらのバンクは全体的に
制御されるが(8個のすべては同時にメモリ動作を行
う)、アドレスは異なる。図15は、1つのシェーダ・ボ
ード・モジュールのブロック図である。
ビデオボード上のメモリの構成は、シェーダボード上
のものと全く同じである。メモリは、DRAMではなく、VR
AMである。ディスプレイは、VRAMのビデオポートからリ
フレッシュされる。画素はバイト直列に記憶されるの
で、コーナーターニング(corner−turning)機能は、V
RAM直列ポートと色ルックアップ・テーブルおよびDAC間
で実行されなければならない。これは1組のプログラマ
ブル・ロジック・ポートを使用して行われ、このポート
はまた必要な多重化を行う。ビデオメモリへ/からのデ
ータ転送は、テクスチャメモリへ/からのデータ転送と
同じである。増強メモリ装置は、記憶されるデータ項目
のアドレスを計算し、それからテクスチャASICは、ビデ
オメモリへ/からのアドレスおよびデータを転送する。
のものと全く同じである。メモリは、DRAMではなく、VR
AMである。ディスプレイは、VRAMのビデオポートからリ
フレッシュされる。画素はバイト直列に記憶されるの
で、コーナーターニング(corner−turning)機能は、V
RAM直列ポートと色ルックアップ・テーブルおよびDAC間
で実行されなければならない。これは1組のプログラマ
ブル・ロジック・ポートを使用して行われ、このポート
はまた必要な多重化を行う。ビデオメモリへ/からのデ
ータ転送は、テクスチャメモリへ/からのデータ転送と
同じである。増強メモリ装置は、記憶されるデータ項目
のアドレスを計算し、それからテクスチャASICは、ビデ
オメモリへ/からのアドレスおよびデータを転送する。
テクスチャASICは、ビデオ列負荷アドレスを発生する
ための内部アドレスカウンタを有している。これらのカ
ウンタは、画像発生コントローラによって初期化され、
ボードレベルのビデオリフレッシュ回路によって駆動さ
れる各テクスチャASIC上の特別な入力によって制御され
る。
ための内部アドレスカウンタを有している。これらのカ
ウンタは、画像発生コントローラによって初期化され、
ボードレベルのビデオリフレッシュ回路によって駆動さ
れる各テクスチャASIC上の特別な入力によって制御され
る。
図16は、ビデオボードラスタ処理装置の1モジュール
のブロック図である。シェーダ・ボード上におけるよう
に、増強メモリ装置は、メモリアクセス用のアドレスを
計算し、メモリは、高速ページモードおよびランダムア
クセスモードの両方をサポートするように構成されてい
る。通常、画素は、ランダムアクセスサイクルとそれに
続く高速ページモードサイクルを使用して、バイト直列
にメモリに書き込まれる。
のブロック図である。シェーダ・ボード上におけるよう
に、増強メモリ装置は、メモリアクセス用のアドレスを
計算し、メモリは、高速ページモードおよびランダムア
クセスモードの両方をサポートするように構成されてい
る。通常、画素は、ランダムアクセスサイクルとそれに
続く高速ページモードサイクルを使用して、バイト直列
にメモリに書き込まれる。
上述の説明は、本発明を説明するためになされたもの
であり、本発明を限定するものとして解釈されてはなら
ない。本発明は、次に示す請求の範囲によって画定さ
れ、この請求の範囲に均等なものは、本請求の範囲内に
入ると解されるべきものである。
であり、本発明を限定するものとして解釈されてはなら
ない。本発明は、次に示す請求の範囲によって画定さ
れ、この請求の範囲に均等なものは、本請求の範囲内に
入ると解されるべきものである。
フロントページの続き (72)発明者 モルナー,スティーヴン・エドワード アメリカ合衆国、27514 ノース・キャ ロライナ、チャペル・ヒル、ヒッコリ ー・ドライヴ 418 (72)発明者 アイルズ,ジョン・ゴードン アメリカ合衆国、27516 ノース・キャ ロライナ、チャペル・ヒル、リトル・ク リーク・ファーム・ロード 8605 (56)参考文献 IEEE Computer Gra phics and Applicat ions,November 1992,P oulton et al,”Brea king the Frame−buf fer Bottleneck Wit h Logic−Enhanced M emories”,P.65−74 Computer Graphics Vol.26,No.2(July 1992),Molnar et al," Pixel Flow:High−Sp eed Rendering Usin g Image Compositio n”,P.231−240 Dissertation subm itted to Universit y of North Carolin a at Chapel Hill,o ctober 1991,Molnar," Image−Composition Architectures for Real−Time Image Ge neration”,P.65−97 Computer Graphics Vol.23,No.3(July 1989),Funchs et al," pixel−Planes 5:A H eterogeneous Multi processor Graphics System Using Proc essor−enhanced Mem orys”,P.79−88 (58)調査した分野(Int.Cl.7,DB名) G06T 1/20 G06T 15/00 - 17/50 JICST(JOIS)
Claims (15)
- 【請求項1】(a)プリミティブ・スクリーン・データ
を発生するプリミティブ処理手段と、 (b)前記プリミティブ処理手段に関連し、前記プリミ
ティブ・スクリーン・データから画素値を計算する複数
のラスタ処理装置であって、該ラスタ処理装置の各々が
選択されたスクリーン座標の集合に対応する増強メモリ
装置を有する前記複数のラスタ処理装置と を有する画像発生システムであって、 (i)前記補強メモリ装置が、前記選択されたスクリー
ン座標の各々に対して画素値を計算し、画素計算値を供
給する画素プロセッサ手段と、 前記画素プロセッサ手段の各々に関連し、データを記憶
する格納手段と、 前記画素プロセッサ手段の各々に関連し、前記画素計算
値を記憶する合成器バッファと を有し、 (ii)前記増強メモリ装置が、更に、 その増強メモリ装置を有しているラスタ処理装置とは異
なる1つのラスタ処理装置から画素値を受け取る合成器
入力手段と、 前記記憶された画素計算値および前記入力手段によって
受け取られた画素値を合成し、合成画素値を決定する合
成器手段と、 前記合成器手段に関連して作動し、前記合成画素値を出
力する出力手段とを有し、 (c)前記複数のラスタ処理装置の少なくとも1つが、
前記増強メモリ装置に関連して作動し、画像化情報を記
憶する外部メモリ手段と、該外部メモリ手段への二重ポ
ートアクセスを可能にするメモリインターフェース手段
とを更に有する、画像発生システム。 - 【請求項2】前記外部メモリ手段を有する前記複数のラ
スタ処理装置の前記少なくとも1つの前記増強メモリ装
置が、更に、 前記画素プロセッサ手段に関連して作動し、前記画素プ
ロセッサ手段からのデータを記憶し、前記画素プロセッ
サ手段にデータを供給するローカルバッファ手段と、 前記ローカルバッファ手段にデータを入力し、前記ロー
カルバッファ手段から前記外部メモリ手段にデータを出
力するポート手段と を有する、請求項1記載の画像発生システム。 - 【請求項3】前記ラスタ処理装置の1つにある前記合成
器手段が、更に、前記画素プロセッサ手段によって使用
されるように前記合成器入力手段から受け取った画素値
を前記補強メモリ装置に記憶するローディング手段を有
する、請求項1記載の画像発生システム。 - 【請求項4】前記ラスタ処理装置の前記1つが、前記外
部メモリ手段に関連して作動し、ビデオ信号を形成する
ビデオ発生手段を更に有する、請求項1記載の画像発生
システム。 - 【請求項5】前記プリミティブ・スクリーン・データが
スクリーン座標のプリミティブを画定する数式の係数を
有する、請求項1記載の画像発生システム。 - 【請求項6】前記ラスタ処理装置が、前記図形プロセッ
サから前記プリミティブ・スクリーン・データを受け取
ることにより前記プリミティブ・スクリーン・データを
アンチエイリアシング用にスーパーサンプリングし、受
け取った各プリミティブ・スクリーン・データ用の調整
されたスクリーン・データを前記増強メモリ装置に繰り
返し供給する画像発生制御手段を更に有する、請求項1
記載の画像発生システム。 - 【請求項7】前記増強メモリ装置が、形式f(x,y)の
数式の係数を受け取る係数入力手段を更に有し、 前記画像プロセッサ手段が、 (i)係数を受け取り、数式f(x,y)を評価する結果
を出力する数式評価器と、 (ii)前記選択されたスクリーン座標の各々に対応し、
前記数式評価器の結果を受け取り、前記結果に対して算
術演算およびロジカル演算を行う算術ロジックユニット
と を有する、請求項1記載の画像発生システム。 - 【請求項8】スクリーン内の選択された領域に対するプ
リミティブ・スクリーン・データを、前記複数のラスタ
処理装置間に分配するためのホストプロセッサとホスト
インターフェースをさらに有する、請求項1記載の画像
発生装置。 - 【請求項9】前記プリミティブ・スクリーン・データ
が、スクリーン内の選択された領域に対するプリミティ
ブ・スクリーン・データであり、更に、前記合成器手段
に関連して作動し、すべての画素値が前記選択された領
域用に前記ラスタ処理装置の各々によって計算された
後、データが前記出力手段によって出力されるように前
記合成器を同期させる画像合成ネットワーク制御手段を
有する請求項1記載のラスタ処理装置。 - 【請求項10】前記プリミティブ処理手段が、プリミテ
ィブを受け取り、該プリミティブをスクリーン座標に変
換し、プリミティブ・スクリーン・データを供給する複
数の図形プロセッサを有する、請求項1記載の画像発生
システム。 - 【請求項11】(a)スクリーン内の選択された領域に
対するプリミティブを受け取り、該プリミティブをスク
リーン座標に変換し、プリミティブ・スクリーン・デー
タとして供給するとともに、ラスタ処理装置のための画
像化情報を供給する複数の図形プロセッサと、 (b)前記図形プロセッサから供給される前記プリミテ
ィブ・スクリーン・データから画素値を計算するラスタ
処理装置と を有する画像発生システムであって、 該ラスタ処理装置が、 前記図形プロセッサから前記プリミティブ・スクリーン
・データを受け取り、該プリミティブ・スクリーン・デ
ータを増強メモリ用のコマンド情報に変換する画像発生
制御手段と、 選択されたスクリーン座標の集合に対応している増強メ
モリ装置と を有し、 (i)前記増強メモリ装置が、前記選択されたスクリー
ン座標の各々に対して前記コマンド情報を受け取り、画
素値を計算し、画素計算値を供給する画素プロセッサ手
段と、 前記画素プロセッサ手段の各々に関連し、データを記憶
する格納手段と、 前記画素プロセッサ手段の各々に関連し、前記画素計算
値を記憶する合成器バッファと を有し、 (ii)前記増強メモリ装置が、更に、 前記ラスタ処理装置に関連している前記図形プロセッサ
とは異なる1つの図形プロセッサと関連しているラスタ
処理装置に含まれている前記増強メモリ装置から画素計
算値を受け取る入力手段と、 前記記憶された画素計算値および前記入力手段によって
受け取られた画素値を合成し、合成画素値を決定する合
成手段と、 前記合成器手段に関連して作動し、前記合成画素値を出
力する出力手段とを有し、 (c)前記ラスタ処理装置の少なくとも1つが、更に、 前記増強メモリ装置に関連して作動し、画像化情報を記
憶する外部メモリ手段と、 該外部メモリ手段への二重ポートアクセスを可能にする
メモリインターフェース手段と、 前記図形プロセッサから前記ラスタ処理装置の1つに提
供される画像化情報を直接前記外部メモリ手段に転送す
る手段と を有する、画像発生システム。 - 【請求項12】前記外部メモリ手段を有する前記複数の
ラスタ処理装置の前記1つに関連する前記増強メモリ装
置が、 前記画素プロセッサ手段に関連して作動し、前記画素プ
ロセッサ手段からのデータを記憶し、前記画素プロセッ
サ手段にデータを供給するローカルバッファ手段と、 前記ローカルバッファ手段にデータを入力し、前記ロー
カルバッファ手段から前記外部メモリ手段にデータを出
力するポート手段と を有する請求項11記載の画像発生システム。 - 【請求項13】前記転送手段が、更に前記外部メモリお
よび前記増強メモリ装置からの画像化情報を前記ラスタ
処理装置の1つに関連する前記図形プロセッサに選択的
に転送する手段を有する、請求項11記載の画像発生シス
テム。 - 【請求項14】前記画像発生制御手段が、更に前記図形
プロセッサから前記画像化情報を受け取り、該画像化情
報を前記外部メモリに転送する手段を有する、請求項11
記載の画像発生システム。 - 【請求項15】前記ラスタ処理装置の前記1つが、更に
外部メモリ手段に関連して作動し、ビデオ信号を形成す
るビデオ発生手段を有する、請求項11記載の画像発生シ
ステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US975,821 | 1992-11-13 | ||
US07/975,821 US5388206A (en) | 1992-11-13 | 1992-11-13 | Architecture and apparatus for image generation |
PCT/US1993/010785 WO1994011807A1 (en) | 1992-11-13 | 1993-11-08 | Architecture and apparatus for image generation |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08503563A JPH08503563A (ja) | 1996-04-16 |
JP3009732B2 true JP3009732B2 (ja) | 2000-02-14 |
Family
ID=25523442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6512280A Expired - Lifetime JP3009732B2 (ja) | 1992-11-13 | 1993-11-08 | 画像発生アーキテクチャおよび装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5388206A (ja) |
EP (1) | EP0672275A4 (ja) |
JP (1) | JP3009732B2 (ja) |
AU (1) | AU677027B2 (ja) |
CA (1) | CA2146335C (ja) |
WO (1) | WO1994011807A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101433951B1 (ko) | 2007-05-01 | 2014-08-25 | 비반테 코포레이션 | 2의 비멱 텍스쳐 맵을 위한 좌표 산출 |
Families Citing this family (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2267203B (en) * | 1992-05-15 | 1997-03-19 | Fujitsu Ltd | Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping |
US5388206A (en) * | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
JPH07225852A (ja) * | 1994-02-15 | 1995-08-22 | Fujitsu Ltd | 動画生成方法および装置 |
JP3240821B2 (ja) * | 1994-04-22 | 2001-12-25 | 株式会社日立製作所 | 高機能画像メモリlsi及びそれを用いた表示装置 |
EP0681279B1 (en) | 1994-05-03 | 2001-07-18 | Sun Microsystems, Inc. | Frame buffer random access memory and system |
US5619624A (en) * | 1994-05-20 | 1997-04-08 | Management Graphics, Inc. | Apparatus for selecting a rasterizer processing order for a plurality of graphic image files |
US5694143A (en) * | 1994-06-02 | 1997-12-02 | Accelerix Limited | Single chip frame buffer and graphics accelerator |
US5717371A (en) * | 1994-10-25 | 1998-02-10 | Sandia Corporation | Generating highly uniform electromagnetic field characteristics |
US5579453A (en) * | 1994-12-16 | 1996-11-26 | Xerox Corporation | Smart direct memory access controller |
US5801670A (en) * | 1995-06-06 | 1998-09-01 | Xerox Corporation | Image generation system having a host based rendering element for generating seed pixel values and mesh address values for display having a rendering mesh for generating final pixel values |
EP0747825B1 (en) * | 1995-06-06 | 2001-09-19 | Hewlett-Packard Company, A Delaware Corporation | SDRAM data allocation system and method |
FR2735253B1 (fr) * | 1995-06-08 | 1999-10-22 | Hewlett Packard Co | Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees |
US5794016A (en) * | 1995-12-11 | 1998-08-11 | Dynamic Pictures, Inc. | Parallel-processor graphics architecture |
US5940067A (en) * | 1995-12-18 | 1999-08-17 | Alliance Semiconductor Corporation | Reduced memory indexed color graphics system for rendered images with shading and fog effects |
US5831625A (en) * | 1996-01-02 | 1998-11-03 | Integrated Device Technology, Inc. | Wavelet texturing |
US5850489A (en) * | 1996-01-02 | 1998-12-15 | Integrated Device Technology, Inc. | Linear expression evaluator |
US5808690A (en) * | 1996-01-02 | 1998-09-15 | Integrated Device Technology, Inc. | Image generation system, methods and computer program products using distributed processing |
US6108460A (en) * | 1996-01-02 | 2000-08-22 | Pixelfusion Limited | Load balanced image generation |
US5892517A (en) * | 1996-01-02 | 1999-04-06 | Integrated Device Technology, Inc. | Shared access texturing of computer graphic images |
JP3645024B2 (ja) * | 1996-02-06 | 2005-05-11 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置及び描画方法 |
EP0803859A3 (en) * | 1996-04-23 | 1998-03-04 | Hewlett-Packard Company | System and method for optimizing storage requirements for an N-way distribution channel |
US5818456A (en) * | 1996-04-30 | 1998-10-06 | Evans & Sutherland Computer Corporation | Computer graphics system with adaptive pixel multisampler |
US6563520B1 (en) * | 1996-05-01 | 2003-05-13 | Light And Sound Design Ltd. | Virtual reality interface for show control |
US6104842A (en) * | 1996-06-10 | 2000-08-15 | Integrated Device Technology, Inc. | Geometry processing of digital video models and images |
KR100366689B1 (ko) | 1996-12-19 | 2003-01-06 | 하이닉스 세미컨덕터 아메리카 인코포레이티드 | 비디오 프레임 렌더링 엔진 |
US5796385A (en) * | 1997-01-28 | 1998-08-18 | Integrated Device Technology, Inc. | Luminance controlled color resolution reduction |
US5949426A (en) * | 1997-01-28 | 1999-09-07 | Integrated Device Technology, Inc. | Non-linear texture map blending |
GB9703565D0 (en) * | 1997-02-20 | 1997-04-09 | Division Ltd | Efficient shared memory lookups in SIMD array-based graphics renderers and video processors |
US5818469A (en) * | 1997-04-10 | 1998-10-06 | International Business Machines Corporation | Graphics interface processing methodology in symmetric multiprocessing or distributed network environments |
US5835104A (en) * | 1997-04-23 | 1998-11-10 | S3 Incorporated | Variable band size compositing buffer method and apparatus |
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 |
US5969726A (en) * | 1997-05-30 | 1999-10-19 | Hewlett-Packard Co. | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
US6430589B1 (en) | 1997-06-20 | 2002-08-06 | Hynix Semiconductor, Inc. | Single precision array processor |
GB9715005D0 (en) * | 1997-07-17 | 1997-09-24 | Philips Electronics Nv | Graphic image texture generation |
US6016151A (en) * | 1997-09-12 | 2000-01-18 | Neomagic Corp. | 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation |
US6128000A (en) * | 1997-10-15 | 2000-10-03 | Compaq Computer Corporation | Full-scene antialiasing using improved supersampling techniques |
US6204859B1 (en) | 1997-10-15 | 2001-03-20 | Digital Equipment Corporation | Method and apparatus for compositing colors of images with memory constraints for storing pixel data |
US6232979B1 (en) * | 1997-12-19 | 2001-05-15 | Silicon Graphics, Inc. | Method, system, and computer program product for fast computation using parallel multi-channel resampling and blending |
US6489956B1 (en) * | 1998-02-17 | 2002-12-03 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects |
US6483504B1 (en) * | 1998-02-17 | 2002-11-19 | Sun Microsystems, Inc. | Graphics system having a super sampled-sample buffer with efficient storage of sample position information |
US6496186B1 (en) * | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts |
US6525723B1 (en) * | 1998-02-17 | 2003-02-25 | Sun Microsystems, Inc. | Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates |
AU2868199A (en) * | 1998-02-17 | 1999-08-30 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
US6496187B1 (en) * | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system configured to perform parallel sample to pixel calculation |
US6459428B1 (en) * | 1998-02-17 | 2002-10-01 | Sun Microsystems, Inc. | Programmable sample filtering for image rendering |
US6091386A (en) * | 1998-06-23 | 2000-07-18 | Neomagic Corp. | Extended frame-rate acceleration with gray-scaling for multi-virtual-segment flat-panel displays |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6577317B1 (en) | 1998-08-20 | 2003-06-10 | Apple Computer, Inc. | Apparatus and method for geometry operations in a 3D-graphics pipeline |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
KR100283413B1 (ko) | 1998-12-15 | 2001-04-02 | 김영환 | 텍스처 매핑시스템 |
US6516032B1 (en) | 1999-03-08 | 2003-02-04 | Compaq Computer Corporation | First-order difference compression for interleaved image data in a high-speed image compositor |
US6753878B1 (en) | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
JP3169933B2 (ja) * | 1999-03-16 | 2001-05-28 | 四国日本電気ソフトウェア株式会社 | 並列描画装置 |
US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
US20070242074A1 (en) * | 1999-04-09 | 2007-10-18 | Dave Stuttard | Parallel data processing apparatus |
US7506136B2 (en) * | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
US20080008393A1 (en) * | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
US20080162875A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel Data Processing Apparatus |
US8169440B2 (en) * | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
US8171263B2 (en) * | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
JP5285828B2 (ja) * | 1999-04-09 | 2013-09-11 | ラムバス・インコーポレーテッド | 並列データ処理装置 |
US8174530B2 (en) * | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
US20080162874A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel data processing apparatus |
US6721446B1 (en) * | 1999-04-26 | 2004-04-13 | Adobe Systems Incorporated | Identifying intrinsic pixel colors in a region of uncertain pixels |
US6459434B1 (en) | 1999-11-03 | 2002-10-01 | Intel Corporation | Apparatus and method for progressively rendered procedural textures |
WO2001037323A2 (en) * | 1999-11-03 | 2001-05-25 | Hwu R Jennifer | Vertical transformer |
US6765582B1 (en) | 1999-11-12 | 2004-07-20 | Intel Corporation | Hybrid procedural/pixel based textures |
US6867779B1 (en) * | 1999-12-22 | 2005-03-15 | Intel Corporation | Image rendering |
US6525725B1 (en) | 2000-03-15 | 2003-02-25 | Sun Microsystems, Inc. | Morphing decompression in a graphics system |
US6747660B1 (en) * | 2000-05-12 | 2004-06-08 | Microsoft Corporation | Method and system for accelerating noise |
US6728862B1 (en) | 2000-05-22 | 2004-04-27 | Gazelle Technology Corporation | Processor array and parallel data processing methods |
US6826292B1 (en) * | 2000-06-23 | 2004-11-30 | Sarnoff Corporation | Method and apparatus for tracking moving objects in a sequence of two-dimensional images using a dynamic layered representation |
US6943798B1 (en) * | 2000-08-15 | 2005-09-13 | Microsoft Corporation | Method and system for executing SIMD instructions using graphics technology |
US6791561B1 (en) | 2000-08-22 | 2004-09-14 | Sony Corporation | Method and apparatus for rendering video data |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6885378B1 (en) * | 2000-09-28 | 2005-04-26 | Intel Corporation | Method and apparatus for the implementation of full-scene anti-aliasing supersampling |
US20030002729A1 (en) * | 2001-06-14 | 2003-01-02 | Wittenbrink Craig M. | System for processing overlapping data |
US7564460B2 (en) * | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
US7079151B1 (en) | 2002-02-08 | 2006-07-18 | Adobe Systems Incorporated | Compositing graphical objects |
WO2003083680A1 (en) * | 2002-03-22 | 2003-10-09 | Deering Michael F | Scalable high performance 3d graphics |
US7447872B2 (en) * | 2002-05-30 | 2008-11-04 | Cisco Technology, Inc. | Inter-chip processor control plane communication |
US20030236800A1 (en) * | 2002-06-19 | 2003-12-25 | Goeltzenleuchter Courtney D. | Dynamic recovery system and method |
US7515156B2 (en) * | 2003-01-08 | 2009-04-07 | Hrl Laboratories, Llc | Method and apparatus for parallel speculative rendering of synthetic images |
US7228525B2 (en) * | 2003-02-14 | 2007-06-05 | Sap Ag | Generic rendering framework |
US7129941B2 (en) * | 2003-03-19 | 2006-10-31 | Sun Microsystems, Inc. | Sample replication mode with depth value calculation |
US20040207890A1 (en) * | 2003-04-16 | 2004-10-21 | Breswick Curt Paul | Method and apparatus for controlling shifting of data out of at least one image sensor |
US7119808B2 (en) * | 2003-07-15 | 2006-10-10 | Alienware Labs Corp. | Multiple parallel processor computer graphics system |
US20080211816A1 (en) * | 2003-07-15 | 2008-09-04 | Alienware Labs. Corp. | Multiple parallel processor computer graphics system |
US7139005B2 (en) * | 2003-09-13 | 2006-11-21 | Microsoft Corporation | Optimized fixed-point mathematical library and graphics functions for a software-implemented graphics rendering system and method using a normalized homogenous coordinate system |
US8144156B1 (en) * | 2003-12-31 | 2012-03-27 | Zii Labs Inc. Ltd. | Sequencer with async SIMD array |
US20050162435A1 (en) * | 2004-01-22 | 2005-07-28 | Electronic Arts Inc. | Image rendering with multi-level Z-buffers |
US7570267B2 (en) * | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7978205B1 (en) | 2004-05-03 | 2011-07-12 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US7599044B2 (en) | 2005-06-23 | 2009-10-06 | Apple Inc. | Method and apparatus for remotely detecting presence |
US7388588B2 (en) * | 2004-09-09 | 2008-06-17 | International Business Machines Corporation | Programmable graphics processing engine |
US7586500B2 (en) * | 2004-09-24 | 2009-09-08 | Canon Kabushiki Kaisha | Dynamic render algorithm selection |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8416251B2 (en) * | 2004-11-15 | 2013-04-09 | Nvidia Corporation | Stream processing in a video processor |
US7477256B1 (en) * | 2004-11-17 | 2009-01-13 | Nvidia Corporation | Connecting graphics adapters for scalable performance |
US8995715B2 (en) * | 2010-10-26 | 2015-03-31 | Fotonation Limited | Face or other object detection including template matching |
US7242169B2 (en) * | 2005-03-01 | 2007-07-10 | Apple Inc. | Method and apparatus for voltage compensation for parasitic impedance |
US10026140B2 (en) | 2005-06-10 | 2018-07-17 | Nvidia Corporation | Using a scalable graphics system to enable a general-purpose multi-user computer system |
US7577930B2 (en) | 2005-06-23 | 2009-08-18 | Apple Inc. | Method and apparatus for analyzing integrated circuit operations |
US9298311B2 (en) * | 2005-06-23 | 2016-03-29 | Apple Inc. | Trackpad sensitivity compensation |
US7535480B2 (en) * | 2005-08-24 | 2009-05-19 | Microsoft Corporation | Compositing rendering layers |
US7433191B2 (en) * | 2005-09-30 | 2008-10-07 | Apple Inc. | Thermal contact arrangement |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US7598711B2 (en) * | 2005-11-23 | 2009-10-06 | Apple Inc. | Power source switchover apparatus and method |
US8077174B2 (en) | 2005-12-16 | 2011-12-13 | Nvidia Corporation | Hierarchical processor array |
US7634637B1 (en) * | 2005-12-16 | 2009-12-15 | Nvidia Corporation | Execution of parallel groups of threads with per-instruction serialization |
US8130227B2 (en) | 2006-05-12 | 2012-03-06 | Nvidia Corporation | Distributed antialiasing in a multiprocessor graphics system |
JP2008009696A (ja) * | 2006-06-29 | 2008-01-17 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
US8648867B2 (en) * | 2006-09-25 | 2014-02-11 | Neurala Llc | Graphic processor based accelerator system and method |
US8232991B1 (en) | 2006-11-03 | 2012-07-31 | Nvidia Corporation | Z-test result reconciliation with multiple partitions |
US7891818B2 (en) | 2006-12-12 | 2011-02-22 | Evans & Sutherland Computer Corporation | System and method for aligning RGB light in a single modulator projector |
US8683126B2 (en) * | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
JP2009075869A (ja) * | 2007-09-20 | 2009-04-09 | Toshiba Corp | 多視点画像描画装置、方法及びプログラム |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
EP2289001B1 (en) * | 2008-05-30 | 2018-07-25 | Advanced Micro Devices, Inc. | Local and global data share |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US8489851B2 (en) * | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
KR101615656B1 (ko) * | 2009-04-29 | 2016-04-27 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
GB2473682B (en) | 2009-09-14 | 2011-11-16 | Sony Comp Entertainment Europe | A method of determining the state of a tile based deferred re ndering processor and apparatus thereof |
US9053681B2 (en) | 2010-07-07 | 2015-06-09 | Fotonation Limited | Real-time video frame pre-processing hardware |
US9342322B2 (en) | 2011-09-12 | 2016-05-17 | Microsoft Technology Licensing, Llc | System and method for layering using tile-based renderers |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
GB2497302B (en) * | 2011-12-05 | 2017-04-12 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
EP3000030A4 (en) | 2013-05-22 | 2017-07-05 | Neurala Inc. | Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence |
EP2999940A4 (en) | 2013-05-22 | 2017-11-15 | Neurala Inc. | Methods and apparatus for early sensory integration and robust acquisition of real world knowledge |
US9626566B2 (en) | 2014-03-19 | 2017-04-18 | Neurala, Inc. | Methods and apparatus for autonomous robotic control |
CA2941250A1 (en) | 2014-03-19 | 2015-09-24 | Neurala, Inc. | Methods and apparatus for autonomous robotic control |
US10163183B2 (en) * | 2016-01-13 | 2018-12-25 | Rockwell Collins, Inc. | Rendering performance using dynamically controlled samples |
US10636110B2 (en) * | 2016-06-28 | 2020-04-28 | Intel Corporation | Architecture for interleaved rasterization and pixel shading for virtual reality and multi-view systems |
US10922585B2 (en) * | 2018-03-13 | 2021-02-16 | Recogni Inc. | Deterministic labeled data generation and artificial intelligence training pipeline |
CN114036015B (zh) * | 2021-10-07 | 2024-04-19 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于fpga的高安全性图形生成装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4827445A (en) * | 1982-02-18 | 1989-05-02 | University Of North Carolina | Image buffer having logic-enhanced pixel memory cells and method for setting values therein |
US4590465A (en) * | 1982-02-18 | 1986-05-20 | Henry Fuchs | Graphics display system using logic-enhanced pixel memory cells |
US4783649A (en) * | 1982-08-13 | 1988-11-08 | University Of North Carolina | VLSI graphics display image buffer using logic enhanced pixel memory cells |
US4648045A (en) * | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
DE69132796T2 (de) * | 1990-11-30 | 2002-04-25 | Sun Microsystems Inc | Verfahren und gerät zur darstellung von grafischen bildern |
US5388206A (en) * | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
-
1992
- 1992-11-13 US US07/975,821 patent/US5388206A/en not_active Expired - Fee Related
-
1993
- 1993-11-08 EP EP94901339A patent/EP0672275A4/en not_active Withdrawn
- 1993-11-08 AU AU55968/94A patent/AU677027B2/en not_active Ceased
- 1993-11-08 CA CA002146335A patent/CA2146335C/en not_active Expired - Fee Related
- 1993-11-08 JP JP6512280A patent/JP3009732B2/ja not_active Expired - Lifetime
- 1993-11-08 WO PCT/US1993/010785 patent/WO1994011807A1/en not_active Application Discontinuation
-
1995
- 1995-02-06 US US08/383,969 patent/US5481669A/en not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
Computer Graphics Vol.23,No.3(July 1989),Funchs et al,"pixel−Planes 5:A Heterogeneous Multiprocessor Graphics System Using Processor−enhanced Memorys",P.79−88 |
Computer Graphics Vol.26,No.2(July 1992),Molnar et al,"Pixel Flow:High−Speed Rendering Using Image Composition",P.231−240 |
Dissertation submitted to University of North Carolina at Chapel Hill,october 1991,Molnar,"Image−Composition Architectures for Real−Time Image Generation",P.65−97 |
IEEE Computer Graphics and Applications,November 1992,Poulton et al,"Breaking the Frame−buffer Bottleneck With Logic−Enhanced Memories",P.65−74 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101433951B1 (ko) | 2007-05-01 | 2014-08-25 | 비반테 코포레이션 | 2의 비멱 텍스쳐 맵을 위한 좌표 산출 |
Also Published As
Publication number | Publication date |
---|---|
AU5596894A (en) | 1994-06-08 |
US5481669A (en) | 1996-01-02 |
EP0672275A4 (en) | 1997-11-12 |
EP0672275A1 (en) | 1995-09-20 |
CA2146335C (en) | 2000-05-30 |
JPH08503563A (ja) | 1996-04-16 |
CA2146335A1 (en) | 1994-05-26 |
US5388206A (en) | 1995-02-07 |
AU677027B2 (en) | 1997-04-10 |
WO1994011807A1 (en) | 1994-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3009732B2 (ja) | 画像発生アーキテクチャおよび装置 | |
Molnar et al. | PixelFlow: High-speed rendering using image composition | |
US7522171B1 (en) | On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer | |
US5185599A (en) | Local display bus architecture and communications method for Raster display | |
US8237705B2 (en) | Hierarchical processor array | |
US5664114A (en) | Asynchronous FIFO queuing system operating with minimal queue status | |
US5999196A (en) | System and method for data multiplexing within geometry processing units of a three-dimensional graphics accelerator | |
US5821949A (en) | Three-dimensional graphics accelerator with direct data channels for improved performance | |
US5274760A (en) | Extendable multiple image-buffer for graphics systems | |
US4949280A (en) | Parallel processor-based raster graphics system architecture | |
US7728841B1 (en) | Coherent shader output for multiple targets | |
EP0817117B1 (en) | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities and method for processing geometry data in said graphics accelerator | |
US7808505B2 (en) | Scalable high performance 3D graphics | |
US20100110084A1 (en) | Parallel pipeline graphics system | |
US7747842B1 (en) | Configurable output buffer ganging for a parallel processor | |
GB2245129A (en) | Local display bus architecture and communications method for raster display | |
US5392392A (en) | Parallel polygon/pixel rendering engine | |
US7484076B1 (en) | Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P) | |
EP0889441B1 (en) | Lighting unit and method for a three-dimensional graphics accelerator | |
US5732248A (en) | Multistep vector generation for multiple frame buffer controllers | |
Poulton et al. | Breaking the frame-buffer bottleneck with logic-enhanced memories | |
JP2001306532A (ja) | データ処理装置およびマルチプロセッサ装置 | |
US7489315B1 (en) | Pixel stream assembly for raster operations | |
Molnar | The PixelFlow texture and image subsystem | |
Ikedo | A scalable high-performance graphics processor: GVIP |