JPH11328438A - Method and device for high-efficiency floating-point z buffering - Google Patents

Method and device for high-efficiency floating-point z buffering

Info

Publication number
JPH11328438A
JPH11328438A JP11073848A JP7384899A JPH11328438A JP H11328438 A JPH11328438 A JP H11328438A JP 11073848 A JP11073848 A JP 11073848A JP 7384899 A JP7384899 A JP 7384899A JP H11328438 A JPH11328438 A JP H11328438A
Authority
JP
Japan
Prior art keywords
coordinate values
value
point
floating
graphics
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
JP11073848A
Other languages
Japanese (ja)
Inventor
F Dearring Michael
マイケル・エフ・ディアーリング
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
Priority claimed from US09/040,921 external-priority patent/US6115047A/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11328438A publication Critical patent/JPH11328438A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To perform a floating-point Z buffer value process with high numeric precision while minimizing hardware by determining the exponent having the largest specific primitive and generating a common Z exponential value according to it. SOLUTION: A Z value represents the Z coordinate of the vertex of a triangle primitive which can be used to plat a three-dimensional body on a display device. The Z value of the specific primitive is represented in floating-point format through converting operation (S402). Then the Z value of the specific primitive having the largest exponential part is determined (S404) and the common Z exponent of the primitive is generated (S406). Then the Z value of the specific primitive is converted to the fixed-point format (S408). In this state, the common Z value exponential value is advanced forward together with the primitive (S410). After being transferred, the primitive is processed on a fixed- point basis (S412). Consequently, the Z value can be processed with higher efficiency.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本出願は、Michael
F. Deeling によつて1996年7月1日に出
願され、本出願の譲受け人に譲渡された米国特許出願第
08/673,117号「Zバッファ・プリミティブの
高解像度描画を実現する方法と装置」の一部継続出願で
ある。
BACKGROUND OF THE INVENTION The present application relates to Michael
U.S. patent application Ser. No. 08 / 673,117, filed Jul. 1, 1996 by F. Deering and assigned to the assignee of the present application, entitled "Methods for Implementing High-Resolution Drawing of Z-Buffer Primitives; Is a continuation-in-part application for "device".

【0002】本発明は、3Dグラフィックスに関し、特
に3Dグラフィックス・アクセラレ―タ処理用のパイプ
ライン内でのZバッファ値の処理に関する。
The present invention relates to 3D graphics, and more particularly, to processing Z buffer values in a pipeline for 3D graphics accelerator processing.

【0003】[0003]

【従来の技術】現在の三次元コンピュ―タ・グラフィッ
クス技術は、ジオメトリを広範に使用して三次元物体を
記述する。デスプレイされる複雑で滑らかな物体表面
は、高度の抽象化を用いて表現される。詳細な表面ジオ
メトリは、テクスチャ・マップを用いて描画されるが、
より現実感を与えるためには、未処理のジオメトリ、通
常は三角形プリミティブの形のジオメトリが必要であ
る。現在のワ―クステ―ション・コンピュ―タ・システ
ムでは、一般には、位置、色(例えば、赤、青、緑およ
びオプションとして選べるα)およびこれらの三角形の
垂直成分が、浮動少数点数として表現される。Fole
y,van Dam等による論文「コンピュータ・グラ
フィックス:原理と実際」(第2版)には、三次元グラ
フィクスについてかなり詳細に一般的に説明されている
ので、もっと詳しい背景について知りたい人は、これを
調べるとよい。
2. Description of the Related Art Current three-dimensional computer graphics technology uses a wide range of geometries to describe three-dimensional objects. Complex and smooth object surfaces to be displayed are represented using a high degree of abstraction. Detailed surface geometry is drawn using a texture map,
For more realism, raw geometry, usually in the form of triangular primitives, is required. In current workstation computer systems, generally the position, color (eg, red, blue, green and optionally α) and the vertical components of these triangles are represented as floating point numbers. You. Fole
The article "Computer Graphics: Principles and Practice" (2nd edition) by y, van Dam et al. provides a fairly detailed description of three-dimensional graphics in general, so if you want more background, Check this out.

【0004】図1は、従来技術のグラフィックス・シス
テム10を示すもので、例えば、ユ―ザのつくった像を
ディスプレイするためコンピュ―タ・システムの中で用
いられている。図に示されているように、グラフィック
ス・システム10は、システム・バス22を介してCP
U20からグラフィックス入力デ―タを受取る。グラフ
ィックス入力デ―タには、ディスプレイ装置30に三次
元物体を描画するために用いられる三角形プリミティブ
を表現する命令とデ―タが含まれている。一般には、グ
ラフィックス・システム10は、グラフィックス・アク
セラレ―タ装置14、フレ―ムバッファ用のランダム・
アクセス・メモリ16(3DRAMまたは他の型のメモ
リを用いて実現される)、およびビデオ・コントロ―ル
装置18を含む。グラフィックス・システム10からの
処理されたビデオは、次にモニタ―30に伝えられ、そ
のモニタ―が40および50のような画像を表示する。
FIG. 1 shows a prior art graphics system 10, which is used, for example, in a computer system to display an image created by a user. As shown, the graphics system 10 has a CP via a system bus 22.
The graphics input data is received from U20. The graphics input data includes instructions and data representing a triangle primitive used for drawing a three-dimensional object on the display device 30. Generally, the graphics system 10 includes a graphics accelerator unit 14, a random buffer for the frame buffer.
An access memory 16 (implemented using 3DRAM or other type of memory), and a video control unit 18 are included. The processed video from graphics system 10 is then communicated to monitor 30, which displays images such as 40 and 50.

【0005】次に説明される本発明の関係する状況で
は、一般には、表示物体40および50は三次元の表面
を有し、通常、一つの物体の一部は他の物体の一部で隠
されている。例えば、図1では、物体40の一部は物体
50の一部の前にあり、したがって物体50の隠された
部分を視界から隠している。視界から隠されている物体
50の部分は、隠面と呼ばれる。
In the context of the present invention described below, generally, the display objects 40 and 50 have a three-dimensional surface, where a portion of one object is usually hidden by a portion of another object. Have been. For example, in FIG. 1, a portion of the object 40 is in front of a portion of the object 50, thus hiding a hidden portion of the object 50 from view. The part of the object 50 that is hidden from view is called a hidden surface.

【0006】三次元物体を描画することで得られる臨場
感は、物体の目に見える部分と隠されている部分(例え
ば、隠面のある)とをすばやく計算することをはじめと
した多くの要素に依存している。このようにして、装置
14などのグラフィックス・アクセラレ―タにより、デ
ィスプレイされる各物体の隠面除去が行われる。グラフ
ィックス・アクセラレ―タ装置10と関連するZバッフ
ァ装置12には、例えば描画される各ピクセルのZ値、
例えば深さの値が格納されている。一つの所定のピクセ
ルに二以上の物体がマッピングされるので、視点から遠
く離れている物体が視点に近い物体の後ろに確実に投影
されるようにするためにZバッファ装置12が用いられ
る。例えば、物体50のあるピクセルのZ値は、そのZ
値が既に格納されているそのピクセルの画面位置のZ値
よりも見ている場所に近いときにだけ、Zバッファ12
に書かれなければならない。実際には、描画される現ピ
クセルの古いZ値を、バッファから読み出し、その現ピ
クセルの新しく作られたZ値と数値を比較する。比較の
結果によって、古いZ値および色フレ―ム・バッファ・
ピクセル値はそのまま残されるか、または新しく計算さ
れた値と置き換えられる。この概念は通常「Zバッファ
リング」と呼ばれる。
[0006] The sense of realism obtained by drawing a three-dimensional object depends on a number of factors, including the ability to quickly calculate the visible and hidden parts (eg, with hidden surfaces) of the object. Depends on. In this manner, the graphics accelerator, such as device 14, removes the hidden surface of each displayed object. The Z buffer device 12 associated with the graphics accelerator device 10 includes, for example, a Z value of each pixel to be drawn,
For example, a depth value is stored. Since more than one object is mapped to a given pixel, a Z-buffer device 12 is used to ensure that objects far away from the viewpoint are projected behind objects near the viewpoint. For example, the Z value of a pixel of the object 50 is
Only when the value is closer to the viewing location than the Z value of that pixel's screen location already stored,
Must be written in In effect, the old Z value of the current pixel being drawn is read from the buffer and the numerical value is compared with the newly created Z value of the current pixel. Depending on the result of the comparison, the old Z value and color frame buffer
The pixel value is left as is or replaced with a newly calculated value. This concept is commonly referred to as "Z buffering."

【0007】グラフィックス・入力デ―タがグラフィッ
クス・アクセラレ―タ14に入力されると、ジオメトリ
・デ―タ(即ち、座標)が変換マトリックスを介してモ
デル座標から視点クリッピング座標に変換される。その
結果として得られたクリッピング座標は「同質」であ
り、通常のデカルト座標に加えて「W」座標を含むこと
を意味している。W座標は、視点から変換された点への
z軸に沿うスケーリングされた距離を示す。z軸は、同
じスケーリングされた距離を参照にするが、視点以外の
点を原点(一般には、前方クリッピング面の原点、また
は前方クリッピング面と後方クリッピング面の間の点)
とする距離である。透視分割に従って、Zの新しい値
(Z´)が数量Z/Wから得られる。ここで、ZとW
は、透視分割前の座標値を表す。正射影投影(この場合
には、視点からの距離の増加に従って、物体の大きさが
小さくならない)については、与えられた点のZ´値は
ワ―ルド座標系の点までの距離に正比例する。初期の三
次元コンピュ―タ・グラフィックス・システムは、大抵
この種の投影に関するものであった。これらの応用にお
いては、固定少数点または浮動少数点のいずれかの数値
演算を用いたZ値の数値表現が、その数値演算で得られ
る数値によく合っていた。
When graphics input data is input to graphics accelerator 14, geometry data (ie, coordinates) is transformed from model coordinates to viewpoint clipping coordinates via a transformation matrix. . The resulting clipping coordinates are "homogeneous", meaning that they include "W" coordinates in addition to normal Cartesian coordinates. The W coordinate indicates the scaled distance along the z-axis from the viewpoint to the transformed point. The z-axis refers to the same scaled distance, but to a point other than the viewpoint at the origin (typically, the origin of the front clipping plane or the point between the front and rear clipping planes)
Is the distance to be set. According to the perspective division, a new value of Z (Z ') is obtained from the quantity Z / W. Where Z and W
Represents coordinate values before perspective division. For orthographic projection (in this case, the size of the object does not decrease with increasing distance from the viewpoint), the Z 'value of a given point is directly proportional to the distance to the point in the world coordinate system. . Early three-dimensional computer graphics systems were mostly concerned with this type of projection. In these applications, the numerical representation of the Z value using either fixed point or floating point arithmetic has been well matched to the numeric value obtained by the arithmetic.

【0008】しかし、三次元のコンピュ―タ・グラフィ
ックスで透視投影(視点からの距離が増すにつれて大き
さが小さくなる)が採用されたが、歴史的に開発されて
来た基本的な式や数値表現は変えられないでおり、最早
使用される数値演算に満足に適合しなくなっていた。例
えば、透視投影では、ある点のZ’値はワ―ルド座標の
点までの距離の逆数に正比例する。従来技術で使用され
ていた式によって生成される画面空間(変換された)の
Z値はワ―ルド空間座標と次式で関係付けられる。
[0008] However, perspective projection (which decreases in size as the distance from the viewpoint increases) has been adopted in three-dimensional computer graphics. Numerical representations could not be changed and were no longer satisfactorily adapted to the mathematical operations used. For example, in perspective projection, the Z 'value of a point is directly proportional to the reciprocal of the distance to the point in world coordinates. The Z value of the screen space (transformed) generated by the equation used in the prior art is related to the world space coordinate by the following equation.

【0009】[0009]

【数1】 (Equation 1)

【0010】ここで、Fはワ―ルド座標における前方ク
リッピング面までの距離であり、Bはワ―ルド座標にお
ける後方クリッピング面までの距離である。 式(1)
は、前方クリッピング面Fに近い点がほぼゼロに近い値
を持ち、後方クリッピング面Bに近い点がほぼ1に近い
値を持つように定義されていることに注意する必要があ
る。(僅かに異なる式を用いることで、前方および後方
のクリッピング面でZ値は1と−1または−1と1に近
づくようになる)。
Here, F is the distance to the front clipping plane in world coordinates, and B is the distance to the rear clipping plane in world coordinates. Equation (1)
It should be noted that is defined such that points close to the front clipping plane F have values close to zero and points close to the rear clipping plane B have values close to 1. (By using a slightly different equation, the Z value approaches 1 and -1 or -1 and 1 at the front and rear clipping planes).

【0011】BがFより遥かに大きいときには、式
(1)は、
When B is much larger than F, equation (1) becomes

【0012】[0012]

【数2】 (Equation 2)

【0013】となる。比B/Fは、Zバッファリングに
おいて重要な役割をする。透視投影グラフィックスの初
期においては、比B/Fは一般に小さな整数であった。
一般に、前方クリッピング面は視点から2フィ―トであ
り、後方クリッピング面は4から10フィ―ト離れてい
たものだった。この座標は、数フィ―トの目に見える大
きさの三次元物体を見るには充分であつた。
## EQU1 ## The ratio B / F plays an important role in Z buffering. In the early days of perspective projection graphics, the ratio B / F was generally a small integer.
Generally, the front clipping plane was two feet from the viewpoint and the rear clipping plane was four to ten feet away. These coordinates were sufficient to see a three-dimensional object of visible size with a few feet.

【0014】しかし、極く最近の現実感のある大規模な
仮想環境では、前方クリッピング面は見る人の鼻からほ
んの数インチであり、後方クリッピング面は数マイル離
れていることが要求されている。この構成については、
B/F比は結果的に非常に大きくなる。例えば、6イン
チにある前方クリッピング面と10マイル離れている後
方クリッピング面では、B/F比は100,000を越
える。6インチと600フィ―トの比較的小さな範囲で
も、まだ1,000を超える比になる。
However, very recent realistic large virtual environments require the front clipping plane to be only a few inches from the viewer's nose and the rear clipping plane to be several miles away. . For this configuration,
The B / F ratio is consequently very large. For example, with a front clipping plane at 6 inches and a rear clipping plane 10 miles away, the B / F ratio exceeds 100,000. Relatively small ranges of 6 inches and 600 feet still have ratios in excess of 1,000.

【0015】一般的な従来技術のZバッファのでは、B
/F比が大きいと、Z値を表す数値の精度に問題が生じ
る。B/F=1,024である特定のケ―スを考える。
(1)式を用いる画面空間では、この範囲の後ろ半分
(後方クリッピング面に向かって中間を越えた範囲)に
位置する点は、どの点も距離を表す他のビットが始まる
前に10個の先行する1の数字を持っている。例え
ば、.1111111111xxx…xxxの形であ
る。したがつて、ワ―ルド座標では、B/2とBの間の
値を表現するためにnビットの精度を必要とする任意の
点は、(1)式を用いれば、画面空間の表現に10+n
ビットの精度を必要とすることになる。一般には、
(1)式は、画面空間の表現に最高限度約(log2
(B/F))の追加ビットを必要とする。例えば、10
0,000のB/F比は17ビットの追加を必要とす
る。上記の表現上のロスは、固定小数点表示にも浮動小
数点表示にも影響を与えることに注意する必要がある。
浮動少数点表示は先行するビットがゼロである値を符号
化するときには有効であるが、後方クリッピング面に近
い点の画面空間のZ値は1にマップされるので、生成さ
れる余剰ビットは先頭の1ビットである。
In a general prior art Z buffer, B
If the / F ratio is large, a problem arises in the accuracy of the numerical value representing the Z value. Consider a particular case where B / F = 1,024.
In the screen space using the expression (1), points located in the rear half of this range (a range beyond the middle toward the rear clipping plane) are set to 10 points before any other bit indicating the distance starts. Has a leading 1 digit. For example,. 11111111111xxx ... xxx. Therefore, in the world coordinates, any point that requires n-bit precision to represent a value between B / 2 and B can be expressed in screen space by using equation (1). 10 + n
This would require bit precision. Generally,
Equation (1) expresses the maximum limit (log2
(B / F)). For example, 10
A B / F ratio of 0000 requires an additional 17 bits. It should be noted that the above loss of representation affects both fixed-point and floating-point representations.
Floating point representation is useful for encoding values where the leading bit is zero, but the Z value in screen space at the point near the back clipping plane is mapped to 1, so the extra bits generated are Is one bit.

【0016】前方クリッピング面Fが視点から5cmの
ところにある別な例を考える。但し、後方クリッピング
面Bは視点から100,000cm(1km)に位置し
ている。これらのZバッファ値を表すために従来の固定
少数点フォ―マットを使用すると、前方および後方のク
リッピング面で個々のステップに非常に大きな不一致が
生じる。一つ実施例では、24ビットの固定小数点Zバ
ッファは、最初の1cmでは2,796,324ステッ
プを持つが、最後の10,000cmではたったの94
ステップである(106.4cm/ステップ)。一方、
別な実施の形態で浮動小数点(28ビット)表示を使用
すると、改善が見られる(最初の1cmでは44,74
1,478ステップ、最後の10,000cmでは14
90ステップ)けれども、大きなF/B比についてさら
に高い精度が必要である。
Consider another example where the front clipping plane F is 5 cm from the viewpoint. However, the rear clipping plane B is located at 100,000 cm (1 km) from the viewpoint. Using the conventional fixed-point format to represent these Z-buffer values results in very large discrepancies in the individual steps in the front and back clipping planes. In one embodiment, a 24-bit fixed point Z-buffer has 2,796,324 steps in the first 1 cm, but only 94 in the last 10,000 cm.
Step (106.4 cm / step). on the other hand,
An improvement is seen when using a floating point (28 bit) representation in another embodiment (44,74 for the first 1 cm).
1,478 steps, the last 10,000 cm is 14
However, higher accuracy is required for a large F / B ratio.

【0017】Z値の従来技術による数値表現を使用する
と、可視的な人工的な物が生じることになる。Zバッフ
ァのデ―タを適正に計算すると、像40および50は図
1に示すように表示され、リンゴ40は箱50の前にあ
る。図2は、これら二つの画像の適正に投影された画像
表現を図示する。しかし、Zバッファのデ―タが非常に
不正確になるZ/Fの距離の状況では、エラ―が生じ
る。このようにして、図3において、箱50の隠面のた
めの下側のピクセル・デ―タを上書きせずに、従来技術
のZバッファ装置12は誤って物体40と物体50との
ピクセルを同時にペイントすることを決めてしまった。
この「Zバッファリングの競合」によって、望ましくな
い重ね合せの領域が生じている。図4は、間違ったZバ
ッファリングの結果として生じたさらに別の型のディス
プレイ・エラ―を示す。図4では、箱50の一部が間違
ってリンゴ40の一部の前にはっきりと現れている。
The use of prior art numerical representations of the Z value results in visible artifacts. With the Z-buffer data properly calculated, the images 40 and 50 are displayed as shown in FIG. 1 and the apple 40 is in front of the box 50. FIG. 2 illustrates a properly projected image representation of these two images. However, in situations where the Z / F distance is such that the Z-buffer data is very inaccurate, an error occurs. Thus, in FIG. 3, without overwriting the lower pixel data for the hidden surface of the box 50, the prior art Z-buffer device 12 erroneously deletes the pixels of the object 40 and the object 50. I decided to paint at the same time.
This "Z-buffering contention" creates an undesirable area of overlap. FIG. 4 illustrates yet another type of display error resulting from incorrect Z-buffering. In FIG. 4, a part of the box 50 is erroneously clearly shown in front of a part of the apple 40.

【0018】上記の解像度損の問題は、特にB/F比に
依存している。比B/FがMであるとする。即ち、前方
クリッピング面が距離Fにあり、後方クリッピング面が
距離MFにあるとする。ここで、後方クリツピング面ま
での距離が2倍になったとする(すなわち、後方クリッ
ピング面が今は距離2MFにある)。このように距離が
2倍になる毎に、分解能はさらに1ビツト失われる。そ
して、残りのビットが非常に少なくてなると、Zバッフ
ァの半分からずっと遠くの残りの距離(例えばMFと2
MFの間)を分解することが出来なくなる。最高nビッ
トのZ表示を仮定すると、1Fと2Fの間の距離にある
点は、n−1ビットの精度で表される。2Fと4Fの間
にある点は、せいぜいn−2の精度で表される。このよ
うにして、残りビットでは覆い隠す物体間の距離を十分
適切に分解することができなくなり、隠面の間違った計
算やディスプレィを引き起こすようになる。
The above-mentioned problem of the resolution loss particularly depends on the B / F ratio. Assume that the ratio B / F is M. That is, the front clipping plane is at a distance F and the rear clipping plane is at a distance MF. Now, assume that the distance to the rear clipping plane has doubled (ie, the rear clipping plane is now at a distance of 2MF). Thus, each time the distance is doubled, one more bit of resolution is lost. Then, when the remaining bits become very small, the remaining distance farther from half the Z-buffer (eg, MF and 2
(During MF) cannot be resolved. Assuming a Z representation of up to n bits, points at a distance between 1F and 2F are represented with n-1 bits of precision. Points between 2F and 4F are represented with an accuracy of at most n-2. In this way, the remaining bits will not be able to adequately resolve the distance between the objects to be obscured, causing incorrect calculations and displays of hidden surfaces.

【0019】この概念は、図5で説明されている。前方
および後方のクリッピング面はそれぞれFとBとして示
されている。図5の左にある「0」が視点を表す。即
ち、ディスプレィされる物体の描写を観察する人の目で
ある。図1に示す物体40と50も図5に描かれてい
る。
This concept is illustrated in FIG. The front and rear clipping planes are shown as F and B, respectively. “0” on the left side of FIG. 5 represents the viewpoint. That is, the eyes of the person observing the depiction of the object being displayed. Objects 40 and 50 shown in FIG. 1 are also depicted in FIG.

【0020】[0020]

【発明が解決しようとする課題】上で引用した出願人の
原特許出願は、従来技術のシステムで見られる数値精度
の問題がないZバッファリング法と装置を提供してい
る。原出願で開示されているZ値は(1)式とは異なる
式で計算され、浮動小数点で表現されている。このZバ
ッファリングの優れていることは、遠方に描写される物
体にビットの非直線性喪失を課さないことである。
The above-cited applicant's original patent application provides a Z-buffering method and apparatus that does not suffer from the numerical accuracy problems found in prior art systems. The Z value disclosed in the original application is calculated by an equation different from the equation (1), and is represented by a floating point. The advantage of this Z-buffering is that it does not impose a loss of bit non-linearity on objects rendered far away.

【0021】しかし、この新しい浮動小数点表示をグラ
フィックス・パイプライン全体に適用することは、専用
の浮動小数点ハ―ドウェアを必要とするので費用がかか
る。付加された精度は描画パイプラインの大部分では使
用されないので、新しいZバッファリング表示の利点よ
りも多分に欠点の方が大きくなる。
However, applying this new floating point representation to the entire graphics pipeline is expensive because it requires dedicated floating point hardware. Since the added precision is not used in much of the rendering pipeline, the disadvantages are probably greater than the advantages of the new Z-buffered display.

【0022】したがって、余分に必要とされるハ―ドウ
ェアを最小にしながら、原特許出願で開示された浮動小
数点Zバッファ表示の利点を得ることが望ましい。
Therefore, it is desirable to take advantage of the floating point Z-buffer representation disclosed in the original patent application while minimizing the extra hardware required.

【0023】[0023]

【発明を解決するための手段】上に概説した課題は、本
発明によるZ値処理の方法によって大部分が解決され
る。Z値は、グラフィックス・パイプライン内で処理さ
れる所定のプリィミティブの頂点に対応する。パイプラ
インで受取られたZ値は、仮数部と指数部を含む第1浮
動小数点フォ―マット(例えば、IEEE浮動小数点フ
ォ―マット)で表現される。本発明の方法は、所定のプ
リィミティブのZ値のどれが最も大きな指数部の値を持
っているかを決定するステップを含む。一つの実施の形
態では、これは、現指数値と現最大指数値との比較を行
って、全てのZ値を試験するステップを含む。本発明の
方法は、実質的に、その所定のプリィミティブの最も大
きな指数値を決定することに応答して共通のZ指数値を
生成するステップを含む。一つの実施の形態では、共通
の指数値は最も大きな指数値から或る定数値を引くこと
で生成される。次に、本発明の方法は、所定のプリィミ
ティブのZ値を仮数部が共通のZ指数値にスケーリング
される固定小数点フォ―マットに変換するステップを含
む。次に、その変換された値は、そのZ値(固定小数点
フォ―マットで表されている)と共通指数値とを利用す
る第1の組のオペレ―ションをグラフィックス処理が続
けるとき、プリィミティブと共に送られる。この第1の
組のオペレ―ションの後で、Z値は第2浮動小数点フォ
―マットに変換して戻される。次に、第2の組のグラフ
ィックス・オペレ―ション(即ち、隠面除去)が、この
第2浮動小数点フォ―マットを用いて行われる。
SUMMARY OF THE INVENTION The problems outlined above are largely solved by the method of Z-value processing according to the present invention. Z-values correspond to vertices of certain primitives that are processed in the graphics pipeline. The Z value received in the pipeline is represented in a first floating point format including a mantissa and an exponent (eg, an IEEE floating point format). The method includes determining which of the Z values of a given primitive has the largest exponent value. In one embodiment, this includes comparing the current index value with the current maximum index value to test all Z values. The method of the invention substantially comprises the step of generating a common Z-index value in response to determining the largest exponent value of the predetermined primitive. In one embodiment, the common index value is generated by subtracting a constant value from the largest index value. Next, the method of the invention comprises the step of converting the Z value of the given primitive into a fixed point format in which the mantissa is scaled to a common Z exponent value. The transformed value is then converted to a primitive as graphics processing continues with the first set of operations utilizing the Z value (represented in fixed point format) and the common exponent value. Sent with. After this first set of operations, the Z values are converted back to a second floating point format. Next, a second set of graphics operations (i.e., hidden surface removal) is performed using this second floating point format.

【0024】所定のプリィミティブの全ての頂点に単一
の指数を用いることで、Z値をより効率的に表現するこ
とができ、グラフィックス・パイプラインの性能が高め
られる結果になる。効率は、等価の浮動小数点フォーマ
ットよりもコンパクトな中間の固定小数点フォ―マット
を用いることで更に向上する。最後に、一つの実施の形
態では、Z値はWf/Wの式を用いて表される。従来技
術のシステムとは異なって、この表現はF/B比が大き
くなる遠方の領域の点にビットの非直線性喪失を課すこ
とがない。
The use of a single exponent for all vertices of a given primitive allows the Z value to be represented more efficiently, resulting in improved graphics pipeline performance. Efficiency is further improved by using an intermediate fixed-point format that is more compact than the equivalent floating-point format. Finally, in one embodiment, the Z value is represented using the formula W f / W. Unlike prior art systems, this representation does not impose a loss of bit nonlinearity at points in the far region where the F / B ratio is large.

【0025】次の図面と共に、好ましい実施の形態につ
いての下記の詳細な説明を考察することで、本発明を一
層よく理解することができる。
The present invention may be better understood with reference to the following detailed description of the preferred embodiment, taken in conjunction with the following drawings.

【0026】[0026]

【発明の実施の形態】図6 コンピュ―タ・システム 図6において、本発明による三次元(3−D)グラフィ
ックス・アクセラレ―タを含むコンピュ―タ・システム
80が示されている。図に示されるように、コンピュ―
タ・システム80は、システム装置82と、そのシステ
ム装置82に連結されたビデオ・モニタまたはディスプ
レイ装置84とを備える。ディスプレイ装置84は、任
意の様々の型のディスプレイ・モニタまたは装置でよ
い。キ―ボ―ド86および/またはマウス88、または
その他の入力装置を含む様々の入力装置をコンピュ―タ
・システムに接続することができる。アプリケ―ション
・ソフトウェアがコンピュ―タ・システム80で実行さ
れて、ビデオ・モニタ84に3−Dグラフィックス物体
がディスプレイされる。更に下記で説明されるように、
コンピュ―タ・システム80の3−Dグラフィックス・
アクセラレ―タは、ディスプレイ装置84に三次元グラ
フィックスの物体を描画するために使用されるプリィミ
ティブに対応するジオメトリ・デ―タのZ値を処理する
改良された機能を含む。
DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG . 6 Computer System Referring to FIG. 6, a computer system 80 including a three-dimensional (3-D) graphics accelerator according to the present invention is shown. As shown in the figure, the computer
The monitor system 80 includes a system unit 82 and a video monitor or display device 84 coupled to the system unit 82. Display device 84 may be any of a variety of types of display monitors or devices. Various input devices, including a keyboard 86 and / or a mouse 88, or other input device, can be connected to the computer system. The application software runs on the computer system 80 to display the 3-D graphics object on the video monitor 84. As further described below,
3-D graphics computer system 80
The accelerator includes an improved ability to process the Z values of the geometry data corresponding to the primitives used to render the three-dimensional graphics object on the display device 84.

【0027】図7 コンピュ―タ・システムのブロック
さて、図7において、図6のコンピュ―タ・システムを
説明する簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュ―タ・システム
の要素は、便宜上、示されていない。図に示すように、
コンピュ―タ・システム80は、高速バスまたはシステ
ム・バス104に連結された中央処理装置(CPU)1
02を含む。システム・メモリ106も、その高速バス
104に連結されることが好ましい。
FIG . 7 Blocks of the computer system
Referring now to FIG. 7, a simplified block diagram illustrating the computer system of FIG. 6 is shown. Elements of the computer system that are not necessary for understanding the present invention are not shown for convenience. As shown in the figure,
Computer system 80 includes a central processing unit (CPU) 1 coupled to a high speed bus or system bus 104.
02. System memory 106 is also preferably coupled to the high speed bus 104.

【0028】ホスト処理装置102は、コンピュ―タ処
理装置、多重処理装置およびCPUの様々な型のいずれ
であってもよい。システム・メモリ106は、ランダム
・アクセス・メモリおよび大容量記憶装置をはじめとす
るメモリ・サブシステムの様々な型のいづれであっても
よい。システム・バスまたはホスト・バス104は、専
用サブシステムは勿論のこと、ホスト処理装置、CPU
およびメモリ・サブシステムの間の通信用バス、または
通信用のホスト・コンピュ―タ・バスのどのような型の
ものであつてもよい。好ましい実施の形態では、ホスト
・バス104は、83MHzで動作する64ビット・バ
スであるUPAバスである。
The host processor 102 may be any of various types of computer processors, multiprocessors and CPUs. System memory 106 may be any of various types of memory subsystems, including random access memory and mass storage. The system bus or the host bus 104 includes a host processor, a CPU, as well as a dedicated subsystem.
And any type of communication bus between the memory subsystem and the host computer bus for communication. In the preferred embodiment, host bus 104 is a UPA bus, which is a 64-bit bus operating at 83 MHz.

【0029】本発明による3−Dグラフィックス・アク
セラレ―タ112は、高速メモリ・バス104に連結さ
れている。3−Dグラフィックス・アクセラレ―タ11
2は、例えばクロスバ−スイッチまたはその他のバス連
結性論理によってバス104に連結してもよい。当技術
分野では周知のように、様々のその他の周辺装置、また
はその他のバスを高速メモリ・バス104に接続するこ
とができる。3−Dグラフィックス・アクセラレ―タ
は、希望するように、様々のバスのどれにでも連結する
ことができることに留意する必要がある。図に示すよう
に、ビデオ・モニタまたはディスプレイ装置84が、3
−Dグラフィックス・アクセラレ―タ112に接続す
る。グラフィックス・アクセラレ―タ112について、
下記に一層詳細に説明する。
The 3-D graphics accelerator 112 according to the present invention is coupled to the high speed memory bus 104. 3-D graphics accelerator 11
2 may be connected to bus 104 by, for example, a crossbar switch or other bus connectivity logic. Various other peripherals, or other buses, may be connected to the high speed memory bus 104, as is well known in the art. It should be noted that the 3-D graphics accelerator can be connected to any of a variety of buses, as desired. As shown, the video monitor or display device 84 has 3
-Connect to D graphics accelerator 112. About Graphics Accelerator 112
This will be described in more detail below.

【0030】図8 グラフィックス・アクセラレ―タ さて、図8において、本発明の好ましい実施の形態によ
るグラフィックス・アクセラレ―タ112を説明するブ
ロック図が示されている。図に示すように、グラフィッ
クス・アクセラレ―タ112は、原理的にはコマンド・
ブロック142、浮動小数点処理装置152A〜152
Fの組、描画処理装置172Aおよび172B、3DR
AMより構成されるフレ―ムバッファ100およびラン
ダム・アクセス・メモリ/ディジタル−アナログ変換器
(RAMDAC)196より構成される。
FIG . 8 Graphics Accelerator Referring now to FIG. 8, a block diagram illustrating the graphics accelerator 112 according to a preferred embodiment of the present invention is shown. As shown, the graphics accelerator 112 is in principle a command
Block 142, floating point processing units 152A-152
Set F, drawing processing devices 172A and 172B, 3DR
It comprises a frame buffer 100 composed of an AM and a random access memory / digital-analog converter (RAMDAC) 196.

【0031】図に示すように、グラフィックス・アクセ
ラレ―タ112は、メモリ・バス104とのインタ―フ
ェイスを行うコマンド・ブロック142を含む。コマン
ド・ブロック142は、グラフィックス・アクセラレ―
タ112のホスト・バス104に対するインタ―フェイ
スを行い、グラフィックス・アクセラレ―タ内で他のブ
ロックまたはチップの間のデ―タ転送を制御する。ま
た、コマンド・ブロック142は、三角形デ―タおよび
ベクトル・デ―タの前処理を行い、ジオメトリ・デ―タ
の伸長を行う。
As shown, the graphics accelerator 112 includes a command block 142 that interfaces with the memory bus 104. Command block 142 is a graphics accelerator
It interfaces the data bus 112 with the host bus 104 and controls data transfer between other blocks or chips within the graphics accelerator. The command block 142 performs pre-processing of the triangle data and the vector data, and decompresses the geometry data.

【0032】コマンド・ブロック142は、複数の浮動
小数点処理装置152A〜152Fとのインタ―フェイ
スを行う。好ましくは、グラフィックス・アクセラレ―
タ112は、図に示すように152A〜152Fの表示
のついている6個までの浮動小数点処理装置を含む。浮
動小数点処理装置152A〜152Fは、高レベルの描
画コマンドを受け取り、画面上に三次元の物体を描画す
るための三角形、線などのグラフィックス・プリィミテ
ィブを生成する。浮動小数点処理装置152A〜152
Fは、受取ったジオメトリ・デ―タについて変換、クリ
ッピング、面確定、ライティングおよびセットアップの
オペレ―ションを行う。浮動小数点処理装置152A〜
152Fの各々は、それぞれのメモリ153A〜153
Fに接続している。メモリ153A〜153Fは、32
k×36ビットのSRAMであることが好ましく、マイ
クロコ―ドおよびデ―タの記憶のために使用される。
Command block 142 interfaces with a plurality of floating point processors 152A-152F. Preferably, graphics accelerator
The data 112 includes up to six floating point processors labeled 152A-152F as shown. The floating point processing units 152A to 152F receive high-level drawing commands and generate graphics primitives such as triangles and lines for drawing a three-dimensional object on a screen. Floating point processing units 152A-152
F performs transformation, clipping, surface determination, lighting and setup operations on the received geometry data. Floating point processor 152A-
Each of the 152F has a respective memory 153A-153.
Connected to F. The memories 153A to 153F store 32
It is preferably a k.times.36-bit SRAM and is used for storing microcode and data.

【0033】浮動小数点処理装置152A〜Fの各々
は、二つの描画処理装置172Aと172Bに接続され
る。グラフィックス・アクセラレ―タ112は、二つの
描画処理装置172Aと172Bを含むのが望ましい
が、もつと多くのまたはもっと少ない数の描画装置も使
用することができる。描画処理装置172Aと172B
は、様々のグラフィックス・プリィミティブの画面空間
レンダリングを行い、完成されたピクセルを順番に処理
して3DRAMの配列に入れ又は詰め込むように働く。
また、描画処理装置172Aと172Bは、フレ―ムバ
ッファ100用の3DRAMの制御チップとしても機能
する。描画処理装置172Aと172Bは、浮動小数点
処理装置152A〜152Fの一つから受信した描画パ
ケットにしたがって、またはコマンド処理装置142か
ら受信したダイレクト・ポ―ト・パケットにしたがつて
同時に一つの画像をフレ―ムバッファ100に描画す
る。
Each of the floating point processors 152A-F is connected to two rendering processors 172A and 172B. Graphics accelerator 112 preferably includes two rendering processors 172A and 172B, although more or less rendering devices could be used. Drawing processing devices 172A and 172B
Performs screen space rendering of various graphics primitives and acts to sequentially process the completed pixels into an array of 3DRAMs.
Further, the drawing processors 172A and 172B also function as control chips of the 3DRAM for the frame buffer 100. The drawing processors 172A and 172B simultaneously process one image according to a drawing packet received from one of the floating-point processors 152A to 152F or according to a direct port packet received from the command processor 142. Draw in the frame buffer 100.

【0034】浮動小数点処理装置152A〜152Fの
各々は、二つの描画処理装置172A、172Bに同じ
デ―タを同報するように動作するのが好ましい。言い換
えれば、各浮動小数点処理装置152A〜152Fから
来る両方の組のデ―タ・ライン上に常に同じデ―タが存
在する。したがって、浮動小数点処理装置152A〜1
52Fがデ―タを転送する時には、該浮動小数点処理装
置は、描画処理装置172Aと172Bに至る両方のF
Dバスの部分に同じデ―タを転送する。
Each of the floating point processors 152A-152F preferably operates to broadcast the same data to the two rendering processors 172A, 172B. In other words, the same data is always present on both sets of data lines coming from each floating point processor 152A-152F. Therefore, the floating point processing units 152A-1
When 52F transfers the data, the floating point processor will send both F to drawing processors 172A and 172B.
The same data is transferred to the D bus.

【0035】それぞれの描画処理装置172Aと172
Bの各々は、フレ―ムバッファ100に連結され。フレ
―ムバッファ100は3DRAMメモリの四つのバンク
192A,Bおよび194A,Bを備える。描画処理装
置172Aは二つの3DRAMバンク192Aと192
Bに連結され、描画処理装置172Bは二つの3DRA
Mバンク194Aと194Bに連結している。各バンク
は、図に示すように、三つの3DRAMチップから成
る。3DRAMメモリまたはバンク192A,Bおよび
194A,Bは、一括してフレ―ムバッファ100を形
成している。このフレ―ムバッファ100は96ビット
深さで1280×1024である。フレ―ムバッファ
は、描画処理装置172Aと172Bで描画される3−
D物体に対応するピクセルを格納する。
Each of the drawing processing units 172A and 172
Each of B is connected to a frame buffer 100. The frame buffer 100 includes four banks 192A, B and 194A, B of 3DRAM memory. The drawing processing unit 172A includes two 3DRAM banks 192A and 192.
B, the drawing processing device 172B has two 3DRAs.
It is connected to M banks 194A and 194B. Each bank consists of three 3DRAM chips as shown. The three DRAM memories or banks 192A, B and 194A, B together form a frame buffer 100. The frame buffer 100 is 1280 × 1024 at a depth of 96 bits. The frame buffer is drawn by the drawing processors 172A and 172B.
The pixel corresponding to the D object is stored.

【0036】3DRAMメモリ192A,192Bおよ
び194A,194Bの各々は、RAMDAC(ランダ
ム・アクセス・メモリ/ディジタル−アナログ変換器)
196に連結している。RAMDAC196は、従来の
カラ―・ルックアップ・テ―ブル回路および三重ビデオ
DAC回路はもちろん、クロスバ―機能ともに、プログ
ラマブル・ビデオ・タイミング発生器とプログラマブル
・ピクセル・クロック・シンセサイザとを備える。そし
てまた、RAMDACはビデオ・モニタ84に連結して
いる。
Each of the 3 DRAM memories 192A, 192B and 194A, 194B is a RAMDAC (random access memory / digital-to-analog converter).
196. The RAMDAC 196 has a programmable video timing generator and a programmable pixel clock synthesizer, as well as a conventional color look-up table circuit and a triple video DAC circuit, as well as a crossbar function. Also, the RAMDAC is coupled to a video monitor 84.

【0037】コマンド・ブロックは、単一チップで実現
するのが好ましい。浮動小数点処理装置152A〜15
2Fの各々は、別々のチップで実現するのが好ましい。
好ましい実施の形態では、6個までの浮動小数点処理装
置またはチップ152A〜152Fが含まれている。描
画ブロックまたは処理装置172Aと172Bの各々も
また別々のチップから成ることが好ましい。
The command block is preferably implemented on a single chip. Floating point processor 152A-15
Each of the 2Fs is preferably implemented on a separate chip.
In the preferred embodiment, up to six floating point processors or chips 152A-152F are included. Preferably, each of the drawing blocks or processors 172A and 172B also comprises a separate chip.

【0038】図9 浮動小数点処理装置のブロック図 図9において、本発明の好ましい実施の形態による浮動
小数点処理装置152A〜152Fの一つを図示するブ
ロック図が示されている。それぞれの浮動小数点処理装
置152A〜Fの各々は同一であるので、ここでは、便
宜上、そのうちの一つ(152で示す)について説明す
る。図に示すように、浮動小数点処理装置152A〜1
52Fの各々は、三つの主機能装置であるコア・プロセ
ッサ、即ち、Fコア・プロセッサ202,Lコア・プロ
セッサ204およびSコア・プロセッサ206を含む。
Fコア・プロセッサ202はコマンド・ブロック142
から転送されるデ―タをCFバスから受信するように連
結されている。Fコア・プロセッサは出力デ―タをLコ
ア・プロセッサ204とSコア・プロセッサ206の各
々に供給する。また、Lコア・プロセッサ204はデ―
タをSコア・プロセッサ206に供給する。Sコア・プ
ロセッサ206は出力デ―タをFDバスに供給する。
FIG . 9 is a block diagram of a floating point processor. FIG . 9 is a block diagram illustrating one of the floating point processors 152A-152F according to a preferred embodiment of the present invention. Since each of the floating-point processing units 152A to 152F is the same, only one of them (indicated by 152) will be described here for convenience. As shown in the figure, the floating point processing units 152A-1
Each of 52F includes three main functional units, a core processor, namely, an F-core processor 202, an L-core processor 204, and an S-core processor 206.
The F-core processor 202 executes the command block 142
Are connected so as to receive data transferred from the CF bus from the CF bus. The F-core processor supplies output data to each of the L-core processor 204 and the S-core processor 206. The L-core processor 204 is
Data to the S-core processor 206. S-core processor 206 provides output data to the FD bus.

【0039】Fコア・プロセッサ202は、ジオメトリ
変換、クリップ試験、面確定、透視分割および画面空間
変換を含む全ての浮動小数点集約型のオペレ―ションを
行う。また、Fコ・プロセッサ202は、必要なときに
はクリッピングを行う。好ましい実施の形態において
は、32kワ―ドのSRAM(153)に格納された3
6ビットのマイクロインストラクション・ワ―ドを用い
てFコア・プロセッサ202は完全にプログラム可能で
ある。
The F-core processor 202 performs all floating point intensive operations, including geometry transformation, clip testing, surface determination, perspective splitting, and screen space transformation. The F co-processor 202 performs clipping when necessary. In the preferred embodiment, the three bits stored in a 32 kword SRAM (153) are used.
Using a 6-bit microinstruction word, the F-core processor 202 is fully programmable.

【0040】Lコア・プロセッサ204は、オンチップ
のRAMベ―スのマイクロコ―ドを用いて殆どのライテ
ィングの計算を行う。従来技術のライティング装置とは
異なって、Lコア・プロセッサ204は、これらの計算
を行うために固定小数点の演算を使用する。好ましい実
施の形態では、Lコア・プロセッサ204の数値範囲
は、s1.14フォ―マット(1符号ビット、1整数ビ
ット、および14少数ビット)を使用して−2.0から
+2.0である。ライティング計算の大部分は、このタ
イプの16ビット・オペランドを使用してこの範囲で行
われる。しかし、ライティング計算に必要なパラメ―タ
には、この範囲を越えて、下記の様に処理されるものも
ある。
The L-core processor 204 performs most lighting calculations using on-chip RAM-based microcode. Unlike prior art lighting devices, L-core processor 204 uses fixed-point arithmetic to perform these calculations. In the preferred embodiment, the numerical range of the L-core processor 204 is -2.0 to +2.0 using the s1.14 format (1 sign bit, 1 integer bit, and 14 fractional bits). . Most of the lighting calculations are performed in this range using 16-bit operands of this type. However, some parameters required for the lighting calculation are processed as follows, beyond this range.

【0041】また、Lコア・プロセッサ204は、より
効率よくライティング計算を行うために効率のよいトリ
プル・ワ―ドの設計を含んでいる。トリプル・ワ―ド設
計は、16ビットの固定小数点値から成る48ビットの
デ―タ・ワ―ドで動作する。したがって、一つの命令
で、3色全ての成分(RGB)または法線の3成分(N
x,Ny,およびNz)全てについて同じ機能が1サイ
クルで行われる。Lコア・プロセッサに含まれる数値計
算装置によって、数値は自動的に許容数値範囲にクラン
プされるので、追加のブランチを必要としない。
The L-core processor 204 also includes an efficient triple word design for more efficient lighting calculations. The triple word design operates on a 48-bit data word consisting of 16-bit fixed point values. Therefore, with one command, all three color components (RGB) or the normal three components (N
x, Ny, and Nz) perform the same function in one cycle. By means of a numerical calculator included in the L-core processor, the numbers are automatically clamped to the permissible value range, so that no additional branches are required.

【0042】Sコア・プロセッサは、全てのプリィミテ
ィブのセットアップ計算を行う。このセットアップ計算
には、一つの頂点から別の頂点への距離を多次元で計算
すること、およびその稜線に沿って勾配を計算すること
が含まれている。三角形については、Z深度の勾配、色
およびUV(テクスチャに対する)も走査線の方向で計
算される。
The S-core processor performs setup calculations for all primitives. This setup calculation involves calculating the distance from one vertex to another vertex in multiple dimensions, and calculating the gradient along that edge. For triangles, the gradient of Z depth, color and UV (for texture) are also calculated in the direction of the scan line.

【0043】図10 描画装置のブロック図 さて、図10において、描画装置172Aを図示するブ
ロック図が示されている。描画装置172Aと172B
は同一であるので、ここでは便宜上、そのうちの一つ
(172で示す)について説明する。描画装置172
は、3DRAMチップの配列の順番を制御する。描画処
理装置172は、ピクセル用内部キャッシュおよびビデ
オ出力リフレッシュの論理スケジュリングを行う3DR
AMを備える。これらの資源は、描画されるピクセルを
3DRAMに到達する前に待ち行列に入れること、およ
び、この待ち行列中でピクセルのアドレスを探して3D
RAMキャッシュ・ミスを予測することで制御される。
FIG . 10 is a block diagram of the drawing apparatus. FIG. 10 is a block diagram showing the drawing apparatus 172A. Drawing devices 172A and 172B
Are the same, and here, for convenience, one of them (indicated by 172) will be described. Drawing device 172
Controls the order of arrangement of the three DRAM chips. The rendering processing unit 172 performs 3DR that performs logical scheduling of an internal cache for pixels and a video output refresh.
With AM. These resources include queuing the pixel to be rendered before it reaches the 3DRAM, and searching the 3D
Controlled by predicting RAM cache misses.

【0044】図に示すように、描画処理装置172は、
FDバスにインタ―フェイス302を取るFDバス・イ
ンタ―フェイス・ブロック302を含む。FDバスイン
タ―フェイス・ブロック302は、CDCバス・インタ
―フェイス論理312に連結する。CDCバス・インタ
―フェイス論理312は、スクラッチ・バッファ314
とダイレクト・ポ―ト装置316に連結する。ダイレク
ト・ポ―ト装置316は、フレ―ムバッファ・インタ―
フェイス論理336から入力を受け、ピクセル・デ―タ
・マルチプレクサ論理332に出力を供給する。また、
CDCバス・インタフェイス論理312は、DCバスに
出力を供給するように連結している。FDバス・インタ
―フェイス302は、プリィミティブ累積バッファ30
4に出力を供給する。
As shown in the figure, the drawing processing device 172
It includes an FD bus interface block 302 that interfaces to the FD bus. The FD bus interface block 302 couples to the CDC bus interface logic 312. The CDC bus interface logic 312 includes a scratch buffer 314
And the direct port device 316. The direct port device 316 has a frame buffer interface.
It receives an input from the face logic 336 and provides an output to the pixel data multiplexer logic 332. Also,
CDC bus interface logic 312 is coupled to provide output to the DC bus. The FD bus interface 302 includes the primitive accumulation buffer 30
4 to the output.

【0045】また、描画処理装置172は、コマンド・
ブロック142によって指定された通りにプリィミティ
ブの順番の記録を取るスコアボ―ド論理318を含む。
図に示すように、スコアボ―ド論理は、F_Num入力
を受取り、プリィミティブ累積バッファ304に出力を
供給する。コマンド・ブロック142は、(ユニキャス
トの)プリィミティブがCFバス出力FIFOの一つに
複写される度に、3ビットのコ―ドを描画処理装置17
2に供給する。そのコ―ドによって、浮動小数点ブロッ
クの6個の処理装置152A〜152Fのどれがそのプ
リィミティブを受取るかが指定される。また、そのコ―
ドは、そのプリィミティブが順序付けられたものか、順
序付けられたものでないかを表示するビットを含む。全
ての順序付けられたプリミティブは、入ってきた順番で
出て行くことが必要である。順序付けられていないプリ
ミティブは、可能になると常に、プリミティブ累積バッ
ファ304から取去られる。例えばテキストやマ―カな
どのように、各入力プリミティブに対して複数のプリミ
ティブを出力するプリミティブがあり、これらのプリミ
ティブは、効率を高めるために順序付けられないモ―ド
に置くことが好ましい。しかし、描画処理装置172に
送られる全ての属性は、それが修正するプリミティブに
関して順序付けられた状態を継続しなければならない。
更に、厳密な順番付けが守られなければならない直線や
三角形に関する場合がある。スコアボ―ド論理318は
少なくとも64個のプリミティブを追跡する。スコアボ
―ド論理318は、スコアボ―ド論理318が一杯にな
りそうになった時に、スコアボ―ド論理318がオ―バ
フロ―するのを防ぐために、コマンド・ブロック142
に信号を送り返す。
Further, the drawing processing device 172 has a command
It includes scoreboard logic 318, which keeps track of the order of the primitives as specified by block 142.
As shown, the scoreboard logic receives the F_Num input and provides an output to a primitive accumulation buffer 304. Command block 142 renders a 3-bit code each time a (unicast) primitive is copied to one of the CF bus output FIFOs.
Feed to 2. The code specifies which of the six processing units 152A-152F of the floating point block will receive the primitive. Also, the core
The field contains a bit that indicates whether the primitive is ordered or not. All ordered primitives need to exit in the order in which they entered. Unordered primitives are removed from primitive accumulation buffer 304 whenever possible. There are primitives, such as text and markers, that output multiple primitives for each input primitive, and these primitives are preferably placed in an unordered mode to increase efficiency. However, all attributes sent to the rendering processor 172 must remain ordered with respect to the primitives they modify.
Further, there may be lines and triangles that must be strictly ordered. Scoreboard logic 318 tracks at least 64 primitives. The scoreboard logic 318 includes a command block 142 to prevent the scoreboard logic 318 from overflowing when the scoreboard logic 318 is nearly full.
Send a signal back to.

【0046】上に述べたように、プリミティブ累積バッ
ファ304は、FDバス・インタフェイス302とスコ
アボ―ド論理318とから出力を受取る。プリミティブ
累積バッファ304は、稜線ウォ―カ―(walke
r)論理322に出力を供給し、その稜線ウォ―カ―論
理322が次にスパン・フィル論理324に出力を供給
する。スパン・フィル論理324は、テクスチャ・ピク
セル処理装置326に出力を供給する。また、スパン・
フィル論理324は、ダイレクト・ポ―ト装置316に
出力を供給する。また、プリミティブ累積バッファ30
4は、テクスチャ拡大器論理328に出力を供給する。
テクスチャ拡大器論理328は、テクスチャ・メモリ・
キャッシュ330に連結している。テクスチャ・メモリ
・キャッシュ330は、テクスチャ・ピクセル処理装置
326にデ―タを供給する。また、テクスチャ・メモリ
・キャッシュ330は、ダイレクト・ポ―ト装置316
にデ―タを供給する。テクスチャ・ピクセル処理装置3
26とダイレクト・ポ―ト装置316は各々ピクセル・
デ―タ・マルチプレクサ論理332にデ―タを供給す
る。ピクセル・デ―タ・マルチプレクサ論理332は、
ピクセル処理装置334にその出力を供給する。ピクセ
ル処理装置334は、その出力をフレ―ムバッファ・イ
ンタ―フェイス336に供給し、またダイレクト・ポ―
ト装置316に出力を供給する。
As mentioned above, primitive accumulation buffer 304 receives outputs from FD bus interface 302 and scoreboard logic 318. The primitive accumulation buffer 304 stores an edge line walker (walk).
r) provides an output to logic 322, whose edge walker logic 322 then provides an output to span fill logic 324. The span fill logic 324 provides an output to the texture pixel processor 326. In addition, span
Fill logic 324 provides an output to direct port device 316. The primitive accumulation buffer 30
4 provides an output to the texture expander logic 328.
Texture expander logic 328 includes a texture memory
It is connected to the cache 330. Texture memory cache 330 provides data to texture pixel processor 326. Also, the texture memory cache 330 has a direct port device 316.
Supply data to Texture / pixel processing unit 3
26 and the direct port device 316 each have a pixel
Data is provided to data multiplexer logic 332. The pixel data multiplexer logic 332 includes:
The output is provided to a pixel processing unit 334. Pixel processing unit 334 provides its output to frame buffer interface 336 and direct port
The output is supplied to the switching device 316.

【0047】プリミティブ累積バッファ304は、完全
なプリミティブを受取るまで、プリミティブ・デ―タを
累積するために用いられる。このようにして、6個の浮
動小数点処理装置152A〜152Fからデ―タが集め
られるとき、最終的には、デ―タは完全なプリミティブ
を形成する。プリミティブ累積バッファ304は、一つ
の完全なプリミティブを保持するに十分なメモリ空間に
加えて、パイプラインをスム―ズに流れる状態に維持す
るために第2プリミティブの一部分を蓄えるだけの十分
な記憶容量を含んでいる。6個のプリミティブ累積バッ
ファ304は、6個の浮動小数点処理装置152A〜1
52Fの各々からデ―タが入って来たときに、一杯にな
る。プリミティブが完全に受取られると直ちに、一般に
は、次のプリミティブがその後に入ってくる。したがっ
て、プリミティブ累積バッファ304は、次のプリミテ
ィブから入って来るデ―タで満たされる前に、完全なプ
リミティブをプリミティブ累積バッファ304から稜線
ウォ―カ―論理322に転送するために、十分な余分な
バッファリングを含んでいる。好ましい実施の形態で
は、プリミティブ累積バッファ304は、処理される最
も大きなプリミティブ(三角形)よりも数ワ―ド大き
い。プリミティブ累積バッファ304は、64ビットの
出力を稜線ウォ―カ―論理322に供給する。プリミテ
ィブは、スコアボ―ド論理318の内容に基づいて、一
度にプリミティブ累積バッファ304から取り出され
る。
The primitive accumulation buffer 304 is used to accumulate primitive data until a complete primitive is received. Thus, as data is collected from the six floating point processors 152A-152F, the data will eventually form complete primitives. Primitive accumulation buffer 304 has sufficient memory space to store a portion of the second primitive in order to keep the pipeline running smoothly, in addition to enough memory space to hold one complete primitive. Contains. The six primitive accumulation buffers 304 include six floating point processing units 152A to 152A.
Full when data comes in from each of the 52Fs. As soon as a primitive is completely received, the next primitive generally follows. Thus, the primitive accumulation buffer 304 has sufficient extra data to transfer the complete primitive from the primitive accumulation buffer 304 to the edge walker logic 322 before being filled with incoming data from the next primitive. Includes buffering. In the preferred embodiment, the primitive accumulation buffer 304 is several words larger than the largest primitive (triangle) to be processed. Primitive accumulation buffer 304 provides a 64-bit output to edge walker logic 322. Primitives are retrieved from the primitive accumulation buffer 304 at a time based on the contents of the scoreboard logic 318.

【0048】稜線ウォ―カ―論理322は、スパン・フ
ィル装置324が容易に処理することができるように、
プリミティブをばらばらに分割する。三角形の場合に
は、稜線ウォ―カ―論理322は、二つのそのときのエ
ッジをたどり、最も近いピクセルのサンプル点に対して
調整された一組の垂直スパンを生成する。次に、この一
組の垂直スパンはスパン・フィル装置324に送られ
る。また、稜線ウォ―カ―装置322は、直線について
も同じ様な調整を行い、三角形スパンに非常によく似た
直線記述をスパン・フィル装置324に送る。稜線ウォ
―カ―論理322は、これらの調整を行うために使用さ
れる2個の16×24乗算器を備える。更に、稜線ウォ
―カ―論理322は、他の計算をするために使用される
計数を追跡するいくつかの加算器を含む。三角形と直線
以外のプリミティブは、最も効率的な資源の使用に基づ
いて分割される。ぎざぎざのあるドットもエイリアス除
去がされたドットも、最小の調整(例えば、ぎざぎざの
あるドットに0.5を加える)で、その論理を介してそ
のまま送られる。大きなドットは、個々のピクセルとし
て稜線ウォ―カ―論理322を介して供給される。稜線
ウォ―カ―論理322は、多角形と長方形を水平スパン
に変換する。稜線ウォ―カ―論理322はBresen
ham線を、それに変更を加えることなくスパン・フィ
ル装置324に送る。
[0048] The edge walker logic 322 is designed to be easily processed by the span fill unit 324.
Split primitives apart. In the case of a triangle, the edge walker logic 322 follows the two current edges and produces a set of vertical spans adjusted to the nearest pixel sample point. The set of vertical spans is then sent to a span fill unit 324. The ridge walker unit 322 also makes similar adjustments for straight lines and sends a straight line description very similar to a triangular span to the span fill unit 324. Edge walker logic 322 comprises two 16 × 24 multipliers used to make these adjustments. In addition, the edge walker logic 322 includes several adders that keep track of the counts used to make other calculations. Primitives other than triangles and straight lines are segmented based on the most efficient use of resources. Both jagged and anti-aliased dots are sent through the logic with minimal adjustment (eg, adding 0.5 to the jagged dots). Large dots are provided as individual pixels via the edge walker logic 322. Edge walker logic 322 converts polygons and rectangles to horizontal spans. Edge line walker logic 322 is Bresen
The ham line is sent to the span fill device 324 without modification.

【0049】スパン・フィル装置324は、任意の方向
を向いたスパンに渡って(通常は、三角形と直線につい
て)値の補間を行ない、また、エイリアス除去がされた
直線についてフィルタ重み付けテ―ブルの探索を行う。
三角形スパンの対、長方形や多角形のスパンおよびエイ
リアス除去の行われた直線と点を含む最適化されたプリ
ミティブについて、サイクル毎に二つのピクセルが生成
される。他のプリミティブは全てサイクル毎に一つのピ
クセルを生成する。また、スパン・フィル装置324の
最終段はディザリングをおこない、4×4画面空間のデ
ィザ・パタ―ンを用いて12ビットのカラ―を8ビット
値に変換する。スパン・フィル論理324は、テクスチ
ャ・ピクセル処理装置326に出力を供給する。
The span fill unit 324 interpolates values (usually for triangles and straight lines) over spans oriented in any direction, and filters the weighted tables for anti-aliased straight lines. Perform a search.
For optimized primitives, including triangle span pairs, rectangular and polygon spans and anti-aliased lines and points, two pixels are generated per cycle. All other primitives generate one pixel per cycle. The last stage of the span fill device 324 performs dithering, and converts a 12-bit color into an 8-bit value using a dither pattern of a 4 × 4 screen space. The span fill logic 324 provides an output to the texture pixel processor 326.

【0050】テクスチャ・ピクセル処理装置326は、
テクスチャ計算を行い、テクスチャ・メモリ・キャッシ
ュ330でのテクセルの探索を制御する。テクスチャ・
ピクセル処理装置326は、ピクセル処理装置334に
よってピクセルに溶け込ませるべき色を生成する。テク
スチャ・ピクセル処理装置326は、テクスチャ化され
た三角形を除く他の全てのプリミティブのデ―タをピク
セル・デ―タ・マルチプレクサ論理332に送る。
The texture / pixel processing unit 326 includes:
It performs texture calculations and controls the search for texels in the texture memory cache 330. texture·
Pixel processing unit 326 generates colors to be blended into pixels by pixel processing unit 334. The texture pixel processor 326 sends data for all other primitives except the textured triangles to the pixel data multiplexer logic 332.

【0051】上に述べたように、プリミティブ累積バッ
ファ304は、テクスチャ拡大器論理328に出力を供
給する。テクスチャ拡大器328は、テクスチャ・メモ
リ・キャッシュ330で記憶するために受取ったテクス
チャを拡大するように動作する。このように、テクスチ
ャ・メモリ・キャッシュ330は、プリミティブ累積バ
ッファ304から直接ロ―ドされ、テクセル探索のため
にテクスチャ・ピクセル処理装置に接続されている。テ
クスチャ・メモリ・キャッシュ330は、全ての比較的
小さなミップマッピングを含めて、16×16のテクセ
ル領域にテクスチャ・マッピングを行うために十分なデ
―タを保持できるように設計されている。テクスチャ・
メモリ・キャッシュ330は、現バッファが使用されて
いる間に、それ以外のバッファをロ―ドすることができ
るように、ダブル・バッファ型であることが好ましい。
16×16のテクセル領域は、補間が正しく行われるた
めに、実際には17×17のアレイとして格納されてい
ることに留意する必要がある。
As mentioned above, primitive accumulation buffer 304 provides an output to texture expander logic 328. Texture expander 328 operates to expand received textures for storage in texture memory cache 330. Thus, the texture memory cache 330 is loaded directly from the primitive accumulation buffer 304 and is connected to the texture pixel processing unit for texel search. The texture memory cache 330 is designed to hold enough data to texture map a 16x16 texel area, including all relatively small mipmaps. texture·
The memory cache 330 is preferably double buffered so that other buffers can be loaded while the current buffer is in use.
It should be noted that the 16x16 texel area is actually stored as a 17x17 array for the interpolation to be performed correctly.

【0052】上に述べたように、ピクセル・デ―タ・マ
ルチプレクサ論理332は、テクスチャ・ピクセル処理
装置326とダイレクト・ポ―ト装置316から入力デ
―タを受取る。ピクセル・デ―タ・マルチプレクサ論理
332は、スパン・フィル装置324から来るピクセル
とCDバスから来るピクセルとの間を調停する。CDバ
スからのピクセルが、常に優先される。ピクセル・デ―
タ・マルチプレクサ論理332はその出力をピクセル処
理装置334に供給する。
As mentioned above, the pixel data multiplexer logic 332 receives input data from the texture pixel processing unit 326 and the direct port unit 316. Pixel data multiplexer logic 332 arbitrates between pixels coming from span fill unit 324 and pixels coming from the CD bus. Pixels from the CD bus are always preferred. Pixel Day
Data multiplexer logic 332 provides its output to pixel processing unit 334.

【0053】ピクセル処理装置334は、3DRAM1
92、194での論理オペレーションのために、混合、
エアリィアス除去、深度キュ―イングおよびセットアッ
プを行う。また、ピクセル処理装置334は、線パタ―
ン化、型板パタ―ン化、Vポ―ト・クリッピングその他
のオペレ―ションのためのピクセル書き込みを禁止する
ように動作可能な論理を備えている。ピクセル処理装置
334は、フレ―ムバッファ・インタ―フェイス336
に出力を供給する。
The pixel processing device 334 includes the 3DRAM 1
For logical operations at 92, 194, mixed,
Perform alias removal, depth curing and set up. Further, the pixel processing device 334 includes a line pattern.
Logic operable to inhibit pixel writing for patterning, template patterning, V port clipping, and other operations. The pixel processing unit 334 includes a frame buffer interface 336.
Supply output to

【0054】フレ―ムバッファ・インタフェ―ス336
は、3DRAMメモリ192A,192Bからピクセル
を読み書きするために必要な論理を備えている。フレ―
ムバッファ・インタ―フェイス336は、3DRAMチ
ップのレベル1(L1)とレベル2(L2)キャッシュ
を管理する。これは、他のピクセルのアクセスが生じて
いる間に、書き込まれるべきピクセルを予測し、必要と
されるキャッシュにペ―ジングすることで行われる。次
に、図に示すように、フレ―ムバッファ・インタ―フェ
イス336は、3DRAMメモリ192A、192B、
194A、194Bに連結している。
Frame buffer interface 336
Have the necessary logic to read and write pixels from the 3DRAM memories 192A, 192B. Frame
The buffer interface 336 manages the level 1 (L1) and level 2 (L2) caches of the 3DRAM chips. This is done by predicting the pixel to be written and paging the required cache while other pixel accesses are occurring. Next, as shown in the figure, the frame buffer interface 336 includes 3DRAM memories 192A, 192B,
194A and 194B.

【0055】Z値の処理 さて、図11において、グラフィックス処理用のパイプ
ラインにおけるZ値の処理方法400のフロ―チャ―ト
が図示されている。Z値は、システムCPUである中央
処理装置102によってシステム・バス104上でグラ
フィックス・アクセラレ―タ112に転送されるグラフ
ィックス・デ―タの一部である。このZ値は、ディスプ
レイ装置84に三次元物体を描画するために使用可能な
三角形プリミティブの頂点のZ座標を表す。転送された
Z値はモデル空間座標であり、図12のAに示されるI
EEE浮動小数点規格500のような第1浮動小数点フ
ォ―マットで表現される。図に示すように、IEEEフ
ォ―マット500は、符号ビット502、指数部504
および仮数部506を含む。これは「隠くされた1」の
位置508を含む。他の浮動小数点フォ―マットも使用
することができる。
Processing of Z Value Now, FIG. 11 shows a flowchart of a method 400 of processing a Z value in a pipeline for graphics processing. The Z value is part of the graphics data transferred to the graphics accelerator 112 on the system bus 104 by the central processing unit 102, which is the system CPU. This Z value represents the Z coordinate of the vertex of a triangle primitive that can be used to draw a three-dimensional object on the display device 84. The transferred Z value is a model space coordinate, and the I value shown in FIG.
It is expressed in a first floating point format such as the EEE floating point standard 500. As shown in the figure, the IEEE format 500 includes a sign bit 502, an exponent part 504.
And a mantissa 506. This includes the "hidden 1" location 508. Other floating point formats can also be used.

【0056】グラフィックス・アクセラレ―タ112が
受取るモデル空間座標は同質なクリッピング座標に変換
され、Fコア・プロセッサ202内で正規化されて、Z
値はZ/Wとして表されるようになる。この値は、−1
から+1の範囲に存在する。クリッピングの後、(Xお
よびY座標と共に)所定のプリミティブのZ値は、処理
方法400のステップ402の変換オペレ―ションを経
て画面空間にマッピングされる。画面空間のXおよびY
座標は、ディスプレイ装置84上のピクセル値に対応す
る。一方、Z座標は画面に垂直な想像上のz軸に沿った
深度に対応する。原特許出願で開示されたように、Z値
は、Wf/Wと表されるのが好ましい。ここで、Wfは前
方クリッピング面でのWを表す。上で説明したように、
このようにして変換されたZ値は、前方クリッピング面
での1.0(含む)と物体が後方クリッピング面に近づ
くときの0.0(含まない)との間に広がっている。従
来技術のシステムとは異なり、この変換では、ゼロに近
い数(本発明の一つの実施の形態による後方クリッピン
グ面に近い)について重大な精度の喪失を生じない。ス
テップ402の後、Z値は浮動小数点フォ―マット50
0で表されることに注意する必要がある。
The model space coordinates received by the graphics accelerator 112 are transformed to homogeneous clipping coordinates, normalized in the F-core processor 202, and
The value comes to be expressed as Z / W. This value is -1
Exists in the range from to +1. After clipping, the Z values of the given primitive (along with the X and Y coordinates) are mapped to screen space via the transform operation of step 402 of processing method 400. X and Y of screen space
The coordinates correspond to pixel values on the display device 84. On the other hand, the Z coordinate corresponds to a depth along an imaginary z-axis perpendicular to the screen. As disclosed in the original patent application, the Z value is preferably expressed as W f / W. Here, W f represents the W in the front clipping plane. As explained above,
The Z value converted in this way extends between 1.0 (inclusive) at the front clipping plane and 0.0 (not included) when the object approaches the rear clipping plane. Unlike prior art systems, this transformation does not result in significant loss of precision for numbers near zero (close to the back clipping plane according to one embodiment of the invention). After step 402, the Z value is in floating point format 50
Note that it is represented by zero.

【0057】次に、ステップ404と406において、
最も大きな指数部504を持つ所定のプリミティブのZ
値が決定され、そのプリミティブの共通のZ指数が生成
される。上に説明したように、浮動小数点Zバッファの
使用には、表示ビットが付加されるために、実現するた
めには一層高価になるという潜在的な不都合がある。こ
の欠点は、所定のプリミティブの各Z値について単一の
指数を使用することによって、本発明の範囲内では大部
分が小さなものとなる。これが可能なのは、所定のプリ
ミティブの全ての頂点が全てのZ値について同じ指数を
持つこと(または、指数が非常に近いこと)が統計的に
あり得ることだからである。密接に関係づけられていな
い指数部を持つ多角形は、一般には、貧弱な図形プログ
ラミングの慣例に起因する。
Next, in steps 404 and 406,
Z for a given primitive with the largest exponent 504
The value is determined and a common Z index for the primitive is generated. As explained above, the use of a floating point Z-buffer has the potential disadvantage of being more expensive to implement due to the additional indication bits. This disadvantage is largely small within the scope of the present invention by using a single exponent for each Z value of a given primitive. This is possible because it is statistically possible that all vertices of a given primitive have the same exponent for all Z values (or that the exponents are very close). Polygons with exponents that are not closely related are generally due to poor graphic programming practices.

【0058】ステッブ404は、図11と13を参照に
して説明されるいくつかのサブステップを含む。図13
は、Fコア・プロセッサ202内部の指数比較器装置6
00を図示する。指数比較器装置600は、現Z値60
2を受取るように連結された現Z指数レジスタ610を
含む。レジスタ610の出力は、最大Z指数レジスタ6
20、加算器622および比較器640に連結されてい
る。また、比較器640は、レジスタ620の出力を受
取るように接続されており、比較信号642A,642
Bを制御装置650に伝える。次に、制御装置650
は、負荷指数信号652をレジスタ620だけでなく共
通Z指数レジスタ630にも伝える。レジスタ620
は、さらにクリア信号604を受取る。レジスタ630
は、加算器622の出力に連結されたクランプ・マルチ
プレクサ624から入力を受取る。その加算器622は
もう一つの入力として減算定数626を受取る。
Step 404 includes several sub-steps described with reference to FIGS. FIG.
Is the exponent comparator unit 6 inside the F-core processor 202.
00 is illustrated. The exponent comparator device 600 has a current Z value of 60.
2 includes a current Z index register 610 coupled to receive two. The output of register 610 is the maximum Z exponent register 6
20, adder 622 and comparator 640. Comparator 640 is connected to receive the output of register 620, and outputs comparison signals 642A and 642A.
B is transmitted to the controller 650. Next, the control device 650
Conveys the load index signal 652 not only to the register 620 but also to the common Z index register 630. Register 620
Receives a clear signal 604. Register 630
Receives an input from a clamp multiplexer 624 coupled to the output of adder 622. The adder 622 receives a subtraction constant 626 as another input.

【0059】ステップ404Aで、最大Z指数レジスタ
620は、クリア信号604をアサ―トすることによっ
てクリアされる。レジスタ620は、現プリミティブの
現最大Z指数値を保持するように設計されているので、
このレジスタは現プリミティブのZ値を受取る前にクリ
アされる。好ましい実施の形態においては、この動作
は、設定された特別の状態ビツトで「fixz」命令を
実行することで行われる。
At step 404A, the maximum Z index register 620 is cleared by asserting a clear signal 604. Register 620 is designed to hold the current maximum Z-index value of the current primitive, so
This register is cleared before receiving the Z value of the current primitive. In the preferred embodiment, this is done by executing a "fixz" instruction with a special status bit set.

【0060】次に、ステップ404Bにおいて、現Z値
602はレジスタ610で受取られる。レジスタ610
と620の内容は、現Z値602がレジスタ620の内
容よりも大きいかどうかを決定するために比較器640
に進められる。比較器640は、比較信号642A、6
42Bを制御装置650に伝える。制御装置650は
(ステップ404Cで)、620の内容をレジスタ61
0の内容で置換するべきかどうかを決定する。所定のプ
リミティブのために受取られた第1Z値に、常にレジス
タ620の内容は置換される。
Next, in step 404B, the current Z value 602 is received in the register 610. Register 610
And 620 are used to determine whether the current Z value 602 is greater than the contents of register 620.
Proceed to The comparator 640 outputs the comparison signals 642A, 6
42B is transmitted to the controller 650. Controller 650 (at step 404C) stores the contents of 620 in register 61.
Determine whether to replace with the contents of 0. The contents of register 620 are always replaced with the first Z value received for a given primitive.

【0061】置換が必要であれば、ステップ404D
で、現Z指数レジスタ610の内容が最大Z指数レジス
タ620に書き込まれる。レジスタ610の内容が、比
較器640に伝えられてステッブ404Bで比較動作を
行う時、レジスタ610の値も、レジスタ620の入力
に伝えられる(純論理的に)。(比較信号642に基づ
いて)制御装置650が置換が必要であると決定する
と、負荷指数信号652がアサ―トされて、レジスタ6
10の現値がレジスタ620にコピ―される。このよう
にして、現Z値は現最大指数値になる。好ましい実施の
形態では、動作は、SRAM153に格納されている
「fix gtz」命令によって引き起こされ、Fコア
・プロセッサ202内の回路で実行される。
If replacement is required, step 404D
Then, the contents of the current Z index register 610 are written to the maximum Z index register 620. When the contents of the register 610 are transmitted to the comparator 640 and the comparison operation is performed in the step 404B, the value of the register 610 is also transmitted to the input of the register 620 (purely). If controller 650 determines (based on comparison signal 642) that replacement is required, load index signal 652 is asserted and register 6
The current value of 10 is copied to register 620. Thus, the current Z value becomes the current maximum exponent value. In the preferred embodiment, the operation is triggered by a “fix gtz” instruction stored in SRAM 153 and executed by circuitry within F-core processor 202.

【0062】共通Z指数値は、ステップ406で置換動
作と同時に計算される。共通Z指数値(レジスタ630
に格納されている)は、レジスタ620の内容に関係付
けられ、表現に使用されるビット数は少なくなる。例え
ば、図12のAに示されるように、IEEEフォ―マッ
ト500の指数部504は8ビットである。このビット
数は浮動小数点の全体の範囲を表現するために必要とさ
れるが、0と1の間の数を表現するために使用されるビ
ットの数は少なくなる。さらに、これは、Z値を表現す
るために使用される間隔の大きさを維持する。
The common Z index value is calculated at step 406 at the same time as the replacement operation. Common Z exponent value (register 630)
Is associated with the contents of register 620, and the number of bits used in the representation is reduced. For example, as shown in FIG. 12A, the exponent part 504 of the IEEE format 500 is 8 bits. This number of bits is needed to represent the entire range of the floating point, but fewer bits are used to represent numbers between 0 and 1. In addition, this maintains the size of the interval used to represent the Z value.

【0063】本発明の好ましい実施の形態においては、
0と15の間の値を可能にする共通Z指数値を符号化す
るために、4ビットが使用される。これは、15の正規
化された表現と1の正規化されない表現を許容する。1
5の共通Z指数値は、1.0より少ない数の最大指数値
504に相当する。これは、フォ―マット500では1
26である。このようにして、現Z値(例えば、値60
2)から4ビット表現への変換は、一定値を引算するこ
とを含む。好ましい実施の形態では、111を引くこと
(または、代わりに、−111を加算すること)によっ
て達成されている。
In a preferred embodiment of the present invention,
Four bits are used to encode a common Z-index value that allows values between 0 and 15. This allows for 15 normalized expressions and 1 unnormalized expression. 1
A common Z index value of 5 corresponds to a maximum index value 504 of less than 1.0. This is 1 in format 500
26. In this way, the current Z value (eg, the value 60
The conversion from 2) to a 4-bit representation involves subtracting a constant value. In the preferred embodiment, this is accomplished by subtracting 111 (or, alternatively, adding -111).

【0064】ステップ404Bで比較が行われる度に、
レジスタ610の値は加算器622に伝えられる。ま
た、加算器622は減算定数626を受取る。本発明の
好ましい実施の形態では、この定数は0x91(十進数
では、−111)に等しい。次に、加算器622の出力
は、クランプ・マルチプレクサ624に伝えられる。加
算器622の出力が負の結果となるときには、クランプ
・マルチプレクサ624はその結果をゼロにクランプす
る。そうでないときは、加算器622の出力は変らな
い。両方の場合において、クランプ・マルチプレクサ6
24の出力は共通Z指数レジスタ630の入力に伝えら
れる。(負荷指数信号652がアサ―トされることで指
示される)置換が行われないときには、マルチプレクサ
624の出力はレジスタ630に書かれない。ステップ
404Dで置換動作が行われると、その時には、ステッ
プ406で対応する共通Z指数値がレジスタ630に格
納される。
Each time a comparison is made in step 404B,
The value of the register 610 is transmitted to the adder 622. Further, the adder 622 receives the subtraction constant 626. In a preferred embodiment of the invention, this constant is equal to 0x91 (decimal number -111). Next, the output of adder 622 is passed to clamp multiplexer 624. When the output of adder 622 has a negative result, clamp multiplexer 624 clamps the result to zero. Otherwise, the output of adder 622 does not change. In both cases, the clamp multiplexer 6
The output of 24 is communicated to the input of a common Z index register 630. When no replacement is performed (indicated by assertion of load index signal 652), the output of multiplexer 624 is not written to register 630. When the replacement operation is performed in step 404D, the corresponding common Z index value is stored in the register 630 in step 406.

【0065】判定ボックス404Eに示されるように、
上述のステップはプリミティブの残りの頂点(三角形プ
リミティブの一般的な場合では、さらに2度)について
も実行される。最後のZ値が比較された(そして、多
分、レジスタ620に書き込まれた)後、レジスタ62
0には、現プリミティブのZ値について指数部504の
最大値が保持されている。同様に、レジスタ630は、
レジスタ620の値に対応する共通Z指数値を格納して
いる。
As shown in decision box 404E,
The above steps are also performed for the remaining vertices of the primitive (two more in the general case of triangle primitives). After the last Z value has been compared (and possibly written to register 620), register 62
0 holds the maximum value of the exponent part 504 for the Z value of the current primitive. Similarly, register 630 contains
The common Z exponent value corresponding to the value of the register 620 is stored.

【0066】ステップ408において、所定のプリミテ
ィブのZ値が固定小数点フォ―マット(例えば図12の
Bに示すフォ―マット510)に変換される。図に示す
ように、フォ―マット510は、符号ビット512、整
数ビット514および仮数部516を含む。これは、s
1.30フォ―マット(符号ビット、1整数ビットおよ
び30分数ビット)と言われている。仮数部516はス
テップ406で計算される共通Z指数値に対してスケー
リングされるので、固定小数点フォ―マット510には
指数部がない。好ましい実施の形態では、各Z値は、下
記のアルゴリズムを実施するコ―ド列で、Fコア・プロ
セッサ202の内部で正規化される。
At step 408, the Z value of the given primitive is converted to a fixed point format (eg, format 510 shown in FIG. 12B). As shown, format 510 includes a sign bit 512, an integer bit 514, and a mantissa 516. This is
It is referred to as 1.30 format (sign bit, integer bit, and fractional 30 bit). Since the mantissa 516 is scaled with respect to the common Z exponent value calculated in step 406, the fixed-point format 510 has no exponent. In the preferred embodiment, each Z value is normalized within F-core processor 202 with a code sequence that implements the following algorithm.

【0067】[0067]

【表1】 [Table 1]

【0068】このように、アルゴリズムは、最大Z指数
と現Z指数の両方の指数部504の差を取る。この値
は、可変「シフト」に格納される。次に、隠し1ビット
が論理和演算されて浮動小数点仮数値に入れられて、2
4ビットの仮数値をつくる。次に、この24ビット値は
左に6ビットだけシフトされ(30ビット仮数フィ―ル
ド516の残りにゼロがパッドされ)る。これらの余分
の6ビットによって、その後の固定小数点処理の精度が
増すことに注意する必要がある。最後に、30ビット値
は、仮数値516がプリミティブの共通Z指数に正規化
されるように、適切なビット数だけ右にシフトされる。
他の実施の形態では、専用のハ―ドウェア回路によるも
のも含めて、浮動−固定変換処理が別に行われる。
Thus, the algorithm takes the difference between the exponent parts 504 of both the maximum Z index and the current Z index. This value is stored in a variable "shift". Next, the hidden one bit is ORed and put into the floating-point mantissa,
Create a 4-bit mantissa value. This 24-bit value is then shifted left by 6 bits (the rest of the 30-bit mantissa field 516 is padded with zeros). It should be noted that these extra 6 bits increase the precision of subsequent fixed point processing. Finally, the 30-bit value is shifted right by the appropriate number of bits so that the mantissa value 516 is normalized to the primitive's common Z exponent.
In other embodiments, floating-fixed conversion processing is performed separately, including by a dedicated hardware circuit.

【0069】ステップ408でZ値が固定小数点に変換
された状態で、共通Z指数値はプリミティブとともに前
に進められ、ステップ410で更に処理される。図14
に示すように、共通Z指数値は、ヘッダ―・ワ―ド70
0の中のZ指数フィ―ルド702に格納される。ヘッダ
―・ワ―ド700はFコア・プロセッサ202によって
書かれ、図9に示すFSバッファを介してSコア・プロ
セッサ206に伝えられる。対応するプリミティブが処
理されるにつれて、ヘッダ―・ワ―ド700はパイプラ
インを伝播して行く。したがって、フィ―ルド702の
Z指数値は、下に説明するような計算に利用可能であ
る。
With the Z value converted to fixed point in step 408, the common Z index value is advanced with the primitive and further processed in step 410. FIG.
As shown in FIG.
It is stored in the Z exponent field 702 within zero. The header word 700 is written by the F-core processor 202 and transmitted to the S-core processor 206 via the FS buffer shown in FIG. The header word 700 propagates down the pipeline as the corresponding primitive is processed. Thus, the Z-index value of field 702 is available for calculations as described below.

【0070】共通Z指数が生成され、プリミティブとと
もに転送された後、ステップ412でプリミティブに固
定小数点処理が行われる。図11に示すように、ステッ
プ412は、サブステップ412A(セットアップ)、
412B(稜線ウォ―キング)および412C(スパン
・フィリング)を含む。これらのオペレ―ションは、上
に説明したように行われる。好ましい実施の形態では、
セットアップは処理装置152のSコア・プロセッサ2
06で行われ、稜線補間は描画処理装置172内の稜線
ウォ―カ―装置322で行われ、そしてスパン補間は描
画処理装置172のスパン・フィル装置324で行われ
る。これらのステップは、図12のBに示されるs1.
30フォ―マット510を用いて一層精度高く効果的に
行われる。また別の実施の形態では、ここに示すものと
は異なったオペレ―ションがステップ412内で行われ
ることに注意を必要とする。
After a common Z index has been generated and transferred with the primitive, fixed-point processing is performed on the primitive in step 412. As shown in FIG. 11, step 412 includes sub-step 412A (setup),
412B (ridgeline walking) and 412C (span filling). These operations are performed as described above. In a preferred embodiment,
The setup is performed by the S-core processor 2 of the processing unit 152.
At 06, the edge interpolation is performed by the edge walker unit 322 in the drawing processing unit 172, and the span interpolation is performed by the span filling unit 324 of the drawing processing unit 172. These steps correspond to s1.
Using the 30 format 510 can be performed more accurately and effectively. It should be noted that in other embodiments, operations different from those shown here are performed within step 412.

【0071】図15において、ピクセル処理装置334
のブロック図が示されている。ステップ412Cのスパ
ン補間に続いて、プリミティブ・デ―タは、フレ―ムバ
ッファ・インタ―フェイス336を介してフレ―ムバッ
ファ100に転送される前に、付加的なオペレ―ション
を行う処理装置334に転送される。図に示すように、
上に説明したように計算される共通Z指数値は、バス8
10上で奇数と偶数のYZパイプライン802A,80
2Bに伝えられる。同様に、(s1.30フォ―マット
の)固定小数点Z値は、バス812Aおよび812B上
でそれぞれパイプライン802A,802Bに転送され
る。図12のには、Z値のピクセル処理用に別個のパイ
プライン(奇数と偶数)が図示されているが、別の実施
の形態では、Z値は単一のパイプラインを用いて処理さ
れる。また、図15には、固定小数点バス814Aと8
14Bによってそれぞれパイプライン802Aと802
Bに接続されている深度キュ―イング・パイプライン8
04A,804Bも図示されている。
In FIG. 15, the pixel processing device 334
Is shown in FIG. Following the span interpolation of step 412C, the primitive data is sent to the processing unit 334 for additional operations before being transferred to the frame buffer 100 via the frame buffer interface 336. Will be transferred. As shown in the figure,
The common Z-index value calculated as described above is
Odd and even YZ pipelines 802A, 80 on 10
2B. Similarly, fixed-point Z values (in s1.30 format) are transferred to pipelines 802A and 802B on buses 812A and 812B, respectively. Although separate pipelines (odd and even) are shown in FIG. 12 for pixel processing of the Z values, in another embodiment, the Z values are processed using a single pipeline. . FIG. 15 also shows fixed-point buses 814A and 814A.
Pipelines 802A and 802 respectively by 14B
Depth queuing pipeline 8 connected to B
04A and 804B are also shown.

【0072】下に説明するように、パイプライン802
は、バス810と812上で伝えられるs1.30フォ
―マットのデ―タに2つの型の変換を行う。第1に、こ
のデ―タは、例えば図12のDに示すフォ―マット53
0のような等価の固定小数点に変換される。この変換
は、図11に示すステップ414に対応する。フォ―マ
ット530を用いて表される固定小数点デ―タは、次
に、ステップ418で深度キュ―イングおよびZクリッ
プ決定を行うために使用される。
As described below, the pipeline 802
Performs two types of conversions on s1.30 format data carried on buses 810 and 812. First, this data is, for example, in a format 53 shown in FIG.
It is converted to an equivalent fixed point such as 0. This conversion corresponds to step 414 shown in FIG. The fixed point data represented using the format 530 is then used in step 418 to make depth queuing and Z-clip decisions.

【0073】第2に、パイプライン802は、入って来
るデ―タがフレ―ムバッファ100に転送される前に、
必要であれば、このデ―タを浮動小数点フォ―マットに
変換するように構成されている。この変換処理(ステッ
プ416)は、Z値がフレ―ムバッファ100内で浮動
小数点表記法で表現されるように選ばれる場合に行われ
る。そのような表現の一つの例は、図12のCに示すフ
ォ―マット520である。図16の説明では、cp_z
f信号916がアサ―トされているものとする。これは
浮動小数点Z値が必要であることを意味する。ステップ
416の固定−浮動変換処理で生じるZ値は、次にステ
ップ420で、フレ―ムバッファ100内で隠面除去オ
ペレ―ションを行うために使用される。
Secondly, the pipeline 802 is used to store incoming data before it is transferred to the frame buffer 100.
If necessary, this data is configured to be converted to a floating point format. This conversion process (step 416) is performed when the Z value is chosen to be represented in frame buffer 100 in floating point notation. One example of such a representation is the format 520 shown in FIG. In the description of FIG. 16, cp_z
It is assumed that the f signal 916 is asserted. This means that a floating point Z value is required. The Z value resulting from the fixed-floating conversion process of step 416 is then used in step 420 to perform a hidden surface removal operation in the frame buffer 100.

【0074】図16において、パイプライン802のブ
ロック図が図示されている。Zピクセル値を処理する部
分だけが図示されている。パイプライン802は、パイ
プライン802Aと802Bを表す。一つの実施の形態
では、パイプライン802はステ―ジ900A〜900
Hに分割される。しかし、他の実施の形態では、パイプ
ライン802はもっと多くの、またはもっと少ないステ
―ジに分割することができる。
Referring to FIG. 16, a block diagram of the pipeline 802 is shown. Only the part that processes the Z pixel values is shown. Pipeline 802 represents pipelines 802A and 802B. In one embodiment, pipeline 802 includes stages 900A-900.
H. However, in other embodiments, the pipeline 802 can be divided into more or fewer stages.

【0075】Zパイプライン802の第1ステ―ジ(ス
テ―ジ900A)は、2つのソ―スのZピクセル・デ―
タ、即ち、一定Z値902とピクセル・デ―タ・マルチ
プレクサ332からのZ値(バス810上の共通Z指数
値とバス812上の固定小数点Z値とから成る)とを受
取るように構成されているマルチプレクサ906を含
む。処理方法400において、マルチプレクサ906
は、制御信号904に応じてバス810/812上にデ
―タを転送する。このデ―タはピクセル出力バス907
上で伝えられる。
The first stage (stage 900A) of the Z pipeline 802 is a two-source Z pixel database.
Data, i.e., a constant Z value 902 and a Z value from the pixel data multiplexer 332 (comprising a common Z index value on bus 810 and a fixed point Z value on bus 812). Multiplexer 906. In processing method 400, multiplexer 906
Transfers data on the bus 810/812 in response to the control signal 904. This data is sent to the pixel output bus 907
Conveyed above.

【0076】ピクセル出力バス907はインバ―タ90
8とバレル・シフタ―912に連結されている。ステッ
プ414で、これらのユニットは、論理ゲ―ト910と
共に、バス907上のデ―タを固定小数点フォ―マット
530に変換する。このステップは、共通Z指数値の補
数に等しい量だけフォ―マット510の仮数部516を
シフトすることを含む。したがって、フォ―マット53
0の仮数部532は、フォ―マット510の仮数部51
6とは異なり、ステップ406で生成される共通Z指数
値に対応する指数値に結び付けられなければならない。
The pixel output bus 907 is connected to the inverter 90
8 and the barrel shifter 912. At step 414, these units, along with logic gate 910, convert the data on bus 907 to fixed point format 530. This step involves shifting the mantissa 516 of the format 510 by an amount equal to the complement of the common Z exponent value. Therefore, format 53
The mantissa part 532 of 0 is the mantissa part 51 of the format 510.
Unlike 6, it must be tied to an index value corresponding to the common Z index value generated in step 406.

【0077】バス907上のデ―タ(共通Z指数値)の
最上位4ビットはインバ―タ908に伝えられる。次
に、反転されたビットは論理ゲ―ト910に伝えられ、
そこで制御信号916で修正される。したがって、論理
ゲ―ト910の出力は、バレル・シフタ912に供給さ
れる仮数部516の値のシフト計数である。例えば、共
通Z指数値が15(最大値)であれば、インバ―タ90
8で与えられるシフト数はゼロである。結果的には、シ
フタ912はシフトを行わない。逆に、0の共通Z指数
値によって、15のシフト数が作られる。
The four most significant bits of the data (common Z index value) on the bus 907 are transmitted to the inverter 908. Next, the inverted bit is passed to logic gate 910,
Therefore, the correction is made by the control signal 916. Thus, the output of logic gate 910 is a shift count of the value of mantissa 516 provided to barrel shifter 912. For example, if the common Z index value is 15 (maximum value), the inverter 90
The shift number given by 8 is zero. As a result, shifter 912 does not shift. Conversely, a common Z index value of 0 produces a shift number of 15.

【0078】バレル・シフタ912により、マルチプレ
クサ906から伝えられたデ―タから28ビットの固定
小数点仮数部532が作られる。このデ―タは、次のク
ロックサイクルでZクリップ試験ハ―ドウェアに伝える
ために、第1パイプライン・ステ―ジの端でラッチされ
る。また、バス907上の最上位の仮数ビットは、先行
ゼロ符号化ユニット914に伝えられる。ユニット91
4は、バス907上の仮数値の先行ゼロの数をパイプラ
イン・ステ―ジ900Bのハ―ドウェアに伝える。
The barrel shifter 912 forms a 28-bit fixed-point mantissa 532 from the data transmitted from the multiplexer 906. This data is latched at the end of the first pipeline stage for transmission to the Z-clip test hardware in the next clock cycle. Also, the most significant mantissa bit on bus 907 is passed on to leading zero encoding unit 914. Unit 91
4 communicates the number of leading zeros of the mantissa value on bus 907 to the hardware of pipeline stage 900B.

【0079】パイプライン・ステ―ジ900Bでは、入
力バス812上のデ―タを正規化された浮動小数点数に
変換する第1の部分だけでなく、Zクリップ決定も行わ
れる。前のパイプライン・ステ―ジ900Aから転送さ
れたデ―タについてのZクリップ決定が比較器922に
よって行われる。比較器922Aは、p1_zfixバ
ス814上を伝達されるZピクセル値をzmin値92
0と比較する。同様に、比較器922Bは、バス814
上の値をzmax値918と比較する。Zピクセル値が
これらの値のいずれかの外にある時は、Z方向でクリッ
ピングが行われるべきである。したがって、論理ゲ―ト
924はその出力をアサ―トし、該出力は後のパイプラ
イン・ステ―ジ900Cでzp_zclip信号926
として伝えられる。更に、バス814上の固定小数点値
は、さらに処理するために深度キュ―イング・パイプラ
イン804に伝えられる。
At pipeline stage 900B, a Z-clip decision is also made, as well as the first part of converting the data on input bus 812 to a normalized floating point number. A Z-clip decision on the data transferred from the previous pipeline stage 900A is made by comparator 922. Comparator 922A converts the Z pixel value transmitted on p1_zfix bus 814 to a zmin value of 92.
Compare with 0. Similarly, comparator 922B is connected to bus 814
Compare the above value with the zmax value 918. When the Z pixel value is outside any of these values, clipping should occur in the Z direction. Accordingly, logic gate 924 asserts its output, which is output at a later pipeline stage 900C by the zp_zclip signal 926.
Conveyed as. Further, the fixed point values on bus 814 are communicated to depth queuing pipeline 804 for further processing.

【0080】また、Zバッファ値の浮動小数点正規化
は、パイプライン・ステ―ジ900Bで始められる。z
値をフォ―マット510からフォ―マット520に変換
するために、仮数部516の最上位1ビットは、隠し1
の位置524にシフトされる必要がある。この処理は、
所定のZ値の仮数部514の先行ゼロの数を数えるユニ
ット914によって始められる。
The floating point normalization of the Z buffer value is started at pipeline stage 900B. z
To convert the value from format 510 to format 520, the most significant bit of mantissa 516 is
Needs to be shifted to position 524. This process
Beginned by a unit 914 that counts the number of leading zeros in the mantissa 514 of a given Z value.

【0081】減算器936は、バス928上のZ値の先
行ゼロのこの数と共通Z指数値(バス930の最上位4
ビット)とを受取るように連結されている。減算器93
6は、共通指数値から先行ゼロの数を引いて、その結果
を差バス940に伝えるように構成されている。この結
果が負でない場合には、仮数部526の値(これは、正
規化されている)を生成するために、先行ゼロの数に1
を足した数に等しい数だけ仮数部516の値をシフトし
なければならない。この結果が負の場合(先行ゼロの数
の方が共通Z指数より大きい)には、これは、バス90
7上を伝えられる仮数部の値516を共通Z指数値だけ
シフトしなければならないことを示している(しかし、
これによって、正規化されない数が生じる)。
The subtractor 936 calculates this number of leading zeros of the Z value on bus 928 and the common Z index value (the most significant four
Bit). Subtractor 93
6 is configured to subtract the number of leading zeros from the common index value and communicate the result to the difference bus 940. If the result is non-negative, the number of leading zeros is incremented by 1 to produce the value of the mantissa 526 (which is normalized).
Must be shifted by a number equal to the sum of. If the result is negative (the number of leading zeros is greater than the common Z index),
7 indicates that the mantissa value 516 carried over must be shifted by the common Z-index value (but
This results in unnormalized numbers).

【0082】したがって、減算器936は二つの出力、
即ち、差バス940(減算の結果)と(差バスが負の場
合にアサ―トされる)キャリーアウト信号942とを伝
える。差バス940は論理ゲ―ト938に伝えられる。
差バス940がゼロでなければ、論理ゲ―ト938は、
アサ―トされた信号934を加算器932に伝える。ま
た、加算器932は、バス928上の先行ゼロの数を受
取る。差バス940がゼロでなければ、加算器932は
先行ゼロの数に1を足した数をマルチプレクサ948に
伝える。マルチプレクサ948の他方の入力は、バス9
30から共通Z指数値を受取る。
Therefore, the subtractor 936 has two outputs,
That is, the difference bus 940 (the result of the subtraction) and the carry-out signal 942 (which is asserted when the difference bus is negative) are transmitted. The difference bus 940 is passed to logic gate 938.
If difference bus 940 is non-zero, logic gate 938 is:
The asserted signal 934 is transmitted to the adder 932. Adder 932 also receives the number of leading zeros on bus 928. If difference bus 940 is not zero, adder 932 communicates the number of leading zeros plus one to multiplexer 948. The other input of multiplexer 948 is connected to bus 9
A common Z index value is received from 30.

【0083】このようにして、マルチプレクサ948の
出力(シフト計数)は、キャリーアウト信号942の値
に基づいて選択される。先行ゼロの数が共通Z指数値を
超えれば、共通Z指数値がマルチプレクサ956に送ら
れる。そうでなければ、バス944上の値が伝えられ
る。マルチプレクサ956は、これら2つの値の中の選
ばれ1つをパイプライン・ステ―ジ900Cに伝える。
信号916がアサ―トされていなければ、ステ―ジ90
0Cに伝えられるシフト計数は4である(これは、当該
値を変更することなくバス907上で通過させる効果を
持っている。これらの「喪失された」4ビットは、以下
に説明するように、再連結されるからである。)ことに
留意する必要がある。
Thus, the output (shift count) of multiplexer 948 is selected based on the value of carry-out signal 942. If the number of leading zeros exceeds the common Z-index value, the common Z-index value is sent to multiplexer 956. Otherwise, the value on bus 944 is communicated. Multiplexer 956 communicates a selected one of these two values to pipeline stage 900C.
If signal 916 is not asserted, stage 90
The shift count conveyed to OC is 4 (this has the effect of passing the value on bus 907 without change. These 4 "lost" bits are described below. , Because they are reconnected.)

【0084】マルチプレクサ950は、パイプライン8
02で処理されているZ値の最上位4ビットとしてマル
チプレクサ952にどの値を伝えるかを選択するために
使用される。Z値について浮動小数点モ―ドが選択され
ると(信号916がオン)、これらの4ビットは、図1
2のCに示す浮動小数点指数部522の値を形成する。
浮動小数点モ―ドが選ばれなければ、これらの4ビット
は図12のDに示す仮数部532の最上位仮数ビットと
なる。また、マルチプレクサ950で選択される値は、
キャリーアウト信号942の値に依存している。キャリ
ーアウト信号942が活動状態であれば、ゼロ定数94
6がマルチプレクサ952に伝えられる。この結果は指
数値をゼロに設定することになる。しかし、キャリーア
ウト信号942が非活動状態であれば、減算器936で
計算された差バス940上の値が、指数部522の値と
して伝えられる。
The multiplexer 950 is connected to the pipeline 8
02 is used to select which value to pass to multiplexer 952 as the four most significant bits of the Z value being processed. When the floating point mode is selected for the Z value (signal 916 is on), these four bits are
2 to form the value of the floating point exponent 522 shown in C.
If the floating point mode is not selected, these four bits become the most significant mantissa bits of the mantissa 532 shown in FIG. The value selected by the multiplexer 950 is
It depends on the value of the carry-out signal 942. If carry out signal 942 is active, zero constant 94
6 is communicated to the multiplexer 952. This will set the exponent value to zero. However, if the carry-out signal 942 is inactive, the value on the difference bus 940 calculated by the subtractor 936 is transmitted as the value of the exponent 522.

【0085】マルチプレクサ950から伝えられる値
は、マルチプレクサ952を介してパイプライン・ステ
―ジ900Cに転送される。パイプライン・ステ―ジ9
00Cにおいて、マルチプレクサ952の出力はZ値の
最上位4ビットになる。上に説明したように、Z値が浮
動小数点フォ―マット520で表現されるものであれ
ば、これらの4ビットは指数値522を形成する。ま
た、パイプライン・ステ―ジ900Cは、浮動小数点フ
ォ―マット520に変換されているZ値の正規化を完成
させる。これは、バス930の仮数値を左にシフトする
バレル・シフタ958によって行われ、仮数部526の
値が生成される。この仮数値は、レジスタ960の指数
値と連結される。固定小数点Z値(信号916は非活動
状態)は変更されることなくレジスタ960に伝えられ
る。
The value transmitted from multiplexer 950 is transferred to pipeline stage 900C via multiplexer 952. Pipeline Stage 9
At 00C, the output of multiplexer 952 is the four most significant bits of the Z value. As explained above, if the Z value is represented in floating point format 520, these four bits form an exponent value 522. Also, pipeline stage 900C completes the normalization of the Z values that have been converted to floating point format 520. This is done by barrel shifter 958 which shifts the mantissa of bus 930 to the left, producing the value of mantissa 526. This mantissa value is concatenated with the exponent value in register 960. The fixed point Z value (signal 916 is inactive) is passed to register 960 unchanged.

【0086】パイプライン・ステ―ジ900Dにおい
て、マルチプレクサ962は、ステ―ジ900Cから伝
えられるZ値と別のパイプラインから伝えられるピクセ
ル値とのうちのいずれかを選ぶ。ステ―ジ900E〜9
00Gは、ピクセル処理装置334の他のデ―タパス・
パイプラインとの整合を取るために存在している。ステ
―ジ900Hでは、浮動小数点Z値はバス964上で伝
えられる。好ましい実施の形態では、この値(正規化さ
れていても、いなくてもよい)は、浮動小数点フォ―マ
ット520で表される。この値は、隠面除去オペレ―シ
ョンのためにフレ―ムバッファ・インタ―フェイス33
6に、そして続いてフレ―ムバッファ100に伝えられ
る。本発明の好ましい実施の形態で使用される浮動小数
点フォ―マットでは、前から後ろに一様に単調に減少す
る数の分布が生じるので、Zバッファの比較には、簡単
な整数比較で十分である。
At pipeline stage 900D, multiplexer 962 selects between the Z value transmitted from stage 900C and the pixel value transmitted from another pipeline. Stage 900E-9
00G is another data path data of the pixel processing unit 334.
It exists to align with the pipeline. At stage 900H, the floating point Z value is transmitted on bus 964. In the preferred embodiment, this value (which may or may not be normalized) is represented in floating point format 520. This value is used by the frame buffer interface 33 for hidden surface removal operations.
6 and subsequently to the frame buffer 100. In the floating point format used in the preferred embodiment of the present invention, a simple integer comparison is sufficient for the Z-buffer comparison, since a uniformly monotonically decreasing number distribution occurs from front to back. is there.

【0087】方法400を利用することによって、Z値
のより効率の高い処理が効果的に可能となる。変換され
たZ値を固定小数点フォ―マット(例えば、510)に
変換することによって、グラフィックス・パイプライン
内で色およびアルファ値を処理する同じハ―ドウェアの
再利用が可能である。パイプラインのピクセル処理ステ
―ジまでプリミティブ全体を単一のZ値で表すことで、
効率の向上が達成される。一つの実施の形態では、中間
の表現(即ち、フォ―マット520)として使用される
固定小数点フォ―マットを、Zクリップ試験や深度キュ
―イングのようなオペレ―ション用の等価な固定小数点
フォ―マットに変換することができる。
By utilizing the method 400, more efficient processing of the Z value is effectively enabled. By converting the transformed Z values to a fixed point format (eg, 510), the same hardware that handles color and alpha values in the graphics pipeline can be reused. By representing the entire primitive with a single Z value up to the pixel processing stage of the pipeline,
Increased efficiency is achieved. In one embodiment, the fixed-point format used as an intermediate representation (ie, format 520) is converted to an equivalent fixed-point format for operations such as Z-clip testing and depth queuing. -Can be converted to a mat.

【0088】本発明のシステムおよび方法は、記載され
た実施の形態に関連して説明されたが、ここに示された
特定の形態に限定されることを意図したものではなく、
反対に、添付の特許請求の範囲で定義される本発明の精
神と範囲内に合理的に含まれる代替え物、変更物および
等価物を含むことを意図するものである。
Although the system and method of the present invention have been described in connection with the described embodiments, it is not intended to be limited to the specific form set forth herein.
On the contrary, it is intended to cover alternatives, modifications and equivalents, which are reasonably included within the spirit and scope of the invention as defined by the appended claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】従来技術によるグラフィックス処理システムに
おけるZバッファリング処理を示す。
FIG. 1 shows a Z-buffering process in a graphics processing system according to the prior art.

【図2】隠面除去が正しく行われた三次元物体の説明図
である。
FIG. 2 is an explanatory diagram of a three-dimensional object from which hidden surface removal has been correctly performed.

【図3】隠面除去が正しく行われなかった三次元物体の
説明図である。
FIG. 3 is an explanatory diagram of a three-dimensional object in which hidden surface removal has not been correctly performed.

【図4】隠面除去が正しく行われなかった三次元物体の
説明図である。
FIG. 4 is an explanatory diagram of a three-dimensional object for which hidden surface removal has not been correctly performed.

【図5】Z値の従来技術による数値表現によって生じる
精度の喪失を示す図である。
FIG. 5 illustrates the loss of precision caused by the prior art numerical representation of the Z value.

【図6】本発明による三次元(3−D)グラフィックス
・アクセラレ―タを含むコンピュ―タ・システムを示す
図である。
FIG. 6 illustrates a computer system including a three-dimensional (3-D) graphics accelerator according to the present invention.

【図7】図6のコンピュ―タ・システムの簡単化された
ブロック図である。
FIG. 7 is a simplified block diagram of the computer system of FIG.

【図8】本発明の好ましい実施の形態による3−Dグラ
フィックス・アクセラレ―タを説明するブロック図であ
る。
FIG. 8 is a block diagram illustrating a 3-D graphics accelerator according to a preferred embodiment of the present invention.

【図9】本発明の好ましい実施の形態の3−Dグラフィ
ックス・アクセラレ―タの浮動小数点処理装置の一つを
説明するブロック図である。
FIG. 9 is a block diagram illustrating one floating-point processing device of a 3-D graphics accelerator according to a preferred embodiment of the present invention.

【図10】本発明の一つの実施の形態の3−Dグラフィ
ックス・アクセラレ―タの描画処理装置の一つを説明す
るブロック図である。
FIG. 10 is a block diagram illustrating one of the rendering processing apparatuses of the 3-D graphics accelerator according to one embodiment of the present invention.

【図11】本発明の一つの実施の形態によるグラフィッ
クス・システムの処理パイプラインにおいてZ値を処理
する方法を図示するフロ―チャ―トである。
FIG. 11 is a flowchart illustrating a method of processing a Z value in a processing pipeline of a graphics system according to one embodiment of the present invention.

【図12】A〜Dは、本発明の一つの実施の形態による
3−Dグラフィックス・アクセラレ―タ内で利用される
Z値の様々のフォ―マットを示す図である。
FIGS. 12A-12D illustrate various formats of Z values utilized in a 3-D graphics accelerator according to one embodiment of the present invention.

【図13】本発明の一つの実施の形態による指数比較器
装置を示すブロック図である。
FIG. 13 is a block diagram illustrating an exponent comparator device according to one embodiment of the present invention.

【図14】本発明の一つの実施の形態による共通Z指数
値を格納するために使用されるヘッダ―・ワ―ドを示す
図である。
FIG. 14 illustrates a header word used to store a common Z-index value according to one embodiment of the present invention.

【図15】本発明の一つの実施の形態によるピクセル処
理装置のブロック図である。
FIG. 15 is a block diagram of a pixel processing apparatus according to one embodiment of the present invention.

【図16】本発明の一つの実施の形態によるZピクセル
値を処理するように構成されたパイプラインのブロック
図である。
FIG. 16 is a block diagram of a pipeline configured to process Z pixel values according to one embodiment of the present invention.

───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America ──────────────────────────────────────────────────続 き Continuation of front page (71) Applicant 597004720 2550 Garcia Avenue, MS PAL1-521, Mountain View, California 94043-1100, United States of America

Claims (31)

【特許請求の範囲】[Claims] 【請求項1】 グラフィックス・システムにおける第1
の組のz座標値を処理する方法であって、前記第1の組
のz座標値が第1幾何学的プリミティブの頂点に対応す
る方法において、 第1浮動小数点フォ―マットで表現される前記第1の組
のz座標値を受取るステップと、 前記第1の組のZ座標値を固定小数点フォ―マットに変
換するステップと、 前記固定小数点フォ―マットで表現された前記第1の組
のz座標値を用い第1の組のグラフィックス・オペレ―
ションを行うステップであって、て前記固定小数点フォ
―マットで表現される第2の組のz座標値を生成するス
テップと、 前記第2の組のz座標値を第2浮動小数点フォ―マット
に変換するステップと、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を用いて第2の組のグラフィックス・オ
ペレ―ションを行うステップと、を含む方法。
1. A first system in a graphics system.
The method of processing a set of z-coordinate values, wherein the first set of z-coordinate values corresponds to vertices of a first geometric primitive, the method represented in a first floating-point format. Receiving a first set of z-coordinate values; converting the first set of z-coordinate values to a fixed-point format; and receiving the first set of z-coordinate values in the fixed-point format. First set of graphics operators using z-coordinate values
Generating a second set of z-coordinate values expressed in the fixed-point format; and converting the second set of z-coordinate values to a second floating-point format. And the second floating point format represented by the second floating point format.
Performing a second set of graphics operations using the set of z-coordinate values.
【請求項2】 前記第1浮動小数点フォ―マットで表現
される値が、仮数部と指数部を含む、請求項1に記載の
方法。
2. The method according to claim 1, wherein the value represented in the first floating-point format includes a mantissa part and an exponent part.
【請求項3】 更に、前記第1の組のz座標値の共通z
指数値を生成するステップを含む、請求項2に記載の方
法。
3. The method according to claim 1, further comprising: setting a common z value of the first set of z coordinate values.
3. The method of claim 2, comprising generating an index value.
【請求項4】 前記共通z指数値を生成する前記ステッ
プが、 前記第1の組のz座標値の最大z座標値を決定するステ
ップと、 前記最大z座標値から前記共通z指数値を生成するステ
ップと、を含む、請求項3に記載の方法。
4. The step of generating the common z-index value comprises: determining a maximum z-coordinate value of the first set of z-coordinate values; and generating the common z-index value from the maximum z-coordinate value. 4. The method of claim 3, comprising:
【請求項5】 前記の前記第1の組のグラフィックス・
オペレ―ションを行う前記ステップが、前記共通z指数
値を利用するステップを含む、請求項3に記載の方法。
5. The method of claim 1, wherein said first set of graphics
4. The method of claim 3, wherein performing an operation comprises utilizing the common z-index value.
【請求項6】 前記第1の組のz座標値を前記固定小数
点フォ―マットに変換する前記ステップが、前記共通z
指数値にしたがって前記第1の組のZ座標値をスケーリ
ングするステップを含む、請求項4に記載の方法。
6. The step of converting the first set of z coordinate values to the fixed point format comprises:
5. The method of claim 4, comprising scaling the first set of Z coordinate values according to an exponent value.
【請求項7】 前記第1の組のグラフィックス・オペレ
―ションを行う前記ステップが、前記スケーリングされ
た第1の組のz座標値を利用するステップを含む、請求
項6の方法。
7. The method of claim 6, wherein performing the first set of graphics operations comprises utilizing the scaled first set of z coordinate values.
【請求項8】 前記第1の組のZ座標値が0.0より大
きいか又は1.0以下であり、所定の頂点に対する1.
0のz値が該所定の頂点が前方zクリッピング面にある
ことを示し、且つ、前記所定の頂点に対する0.0に接
近するz値が該所定の頂点が後方zクリッピング面に接
近していることを示す、請求項1に記載の方法。
8. The method according to claim 1, wherein the first set of Z coordinate values is greater than 0.0 or less than 1.0 and the first set of Z coordinate values is 1.
A z-value of 0 indicates that the given vertex is in the front z-clipping plane, and a z-value approaching 0.0 for the given vertex is that the given vertex is near the back z-clipping plane. The method of claim 1, wherein the method comprises:
【請求項9】 前記第1の組のグラフィックス・オペレ
―ションが前記第1幾何学的プリミティブのセットアッ
プ・オペレ―ションを含む、請求項1に記載の方法。
9. The method of claim 1, wherein the first set of graphics operations includes a setup operation of the first geometric primitive.
【請求項10】 前記第1の組のグラフィックス・オペ
レ―ションが前記第1幾何学的プリミティブの稜線補間
を含む、請求項1に記載の方法。
10. The method of claim 1, wherein the first set of graphics operations includes edge interpolation of the first geometric primitive.
【請求項11】 前記第1の組のグラフィックス・オペ
レ―ションが前記第1幾何学的プリミティブのスパン補
間を含む、請求項1に記載の方法。
11. The method of claim 1, wherein the first set of graphics operations includes span interpolation of the first geometric primitive.
【請求項12】 前記固定小数点フォ―マットで表現さ
れる値が仮数部を含む、請求項3に記載の方法。
12. The method of claim 3, wherein the value represented in the fixed-point format includes a mantissa.
【請求項13】 前記第2の組のz座標値を前記第2浮
動小数点フォ―マットに変換する前記ステップが、前記
固定小数点フォ―マットで表現される前記第2の組のZ
座標値の各々の仮数部を正規化するステップを含み、前
記の正規化が、前記第2浮動小数点フォ―マットの仮数
部と指数部を生成するために前記共通Z指数値を利用す
るステップを含む、請求項12に記載の方法。
13. The step of converting the second set of z-coordinate values to the second floating-point format, wherein the step of converting the second set of z-coordinate values to the second floating-point format comprises
Normalizing the mantissa of each of the coordinate values, wherein the normalizing utilizes the common Z-exponent value to generate a mantissa and an exponent of the second floating-point format. 13. The method of claim 12, comprising:
【請求項14】 前記第2の組のグラフィックス・オペ
レ―ションが、隠面除去を実現するためにZバッファ比
較を行うステップを含む、請求項1記載の方法。
14. The method of claim 1, wherein the second set of graphics operations includes performing a Z-buffer comparison to achieve hidden surface removal.
【請求項15】 更に、浮動小数点Zバッファ・モ―ド
を使用可能にするステップを含み、前記第2の組のz座
標値を前記第2浮動小数点フォ―マットに変換するステ
ップおよび前記第2の組のグラフィックス・オペレ―シ
ョンを行う前記ステップが前記の使用可能にするステッ
プに応答して実行される、請求項1に記載の方法。
15. The method of claim 15, further comprising enabling a floating point Z-buffer mode, converting the second set of z coordinate values to the second floating point format, and 2. The method of claim 1, wherein said step of performing a set of graphics operations is performed in response to said enabling step.
【請求項16】 第1グラフィックス・プリミティブの
頂点に対応するz座標値を処理するシステムであって、 第1グラフィックス・プリミティブに対応し且つ第1浮
動小数点フォ―マットで表現された第1の組のz座標値
を受取るように連結されている入力装置と、 前記入力装置から前記第1の組のz座標値を受取るよう
に連結され、前記第1の組のz座標値を固定小数点フォ
―マットに変換するように構成された浮動小数点‐固定
小数点変換装置と、 前記固定小数点フォ―マットの前記第1の組のz座標値
の表現を受取るように連結され、前記固定小数点フォ―
マットで表現された前記第1の組のz座標値を用いて第
1のグラフィックス・オペレ―ションを行って第2の組
のz座標値を生成するように構成された第1グラフィッ
クス処理装置と、 前記第1グラフィックス処理装置から前記第2の組のz
座標値を受取るように連結され、前記第2の組のz座標
値を第2浮動小数点フォ―マットに変換するように構成
された固定小数点‐浮動小数点変換装置と、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を受取るように連結され、前記第2浮動
小数点フォ―マットで表現された前記第2の組のz座標
値を用いて第2の組のグラフィックス・オペレ―ション
を行うように構成された第2グラフィックス処理装置
と、を具備するシステム。
16. A system for processing z-coordinate values corresponding to vertices of a first graphics primitive, the system comprising a first graphics primitive corresponding to the first graphics primitive and represented in a first floating-point format. An input device coupled to receive the first set of z-coordinate values, and an input device coupled to receive the first set of z-coordinate values from the input device; A floating-point to fixed-point conversion device configured to convert to a fixed-point format; and a fixed-point format coupled to receive the representation of the first set of z-coordinate values in the fixed-point format.
A first graphics process configured to perform a first graphics operation using the first set of z-coordinate values represented in a matte to generate a second set of z-coordinate values; And a second set of z from the first graphics processing device.
A fixed-point to floating-point converter coupled to receive coordinate values and configured to convert the second set of z-coordinate values to a second floating-point format; The second expressed in matte
To perform a second set of graphics operations using the second set of z-coordinate values expressed in the second floating-point format. And a second graphics processing device configured as described above.
【請求項17】 前記第1浮動小数点フォ―マットで表
現された値が仮数部と指数部を含む、請求項16に記載
のシステム。
17. The system of claim 16, wherein the value represented in the first floating point format includes a mantissa and an exponent.
【請求項18】 前記浮動小数点‐固定小数点変換装置
が前記第1の組のz座標値の共通z指数値を生成するよ
うに構成されている、請求項17に記載のシステム。
18. The system of claim 17, wherein the floating-point to fixed-point converter is configured to generate a common z-index value of the first set of z-coordinate values.
【請求項19】 前記浮動小数点‐固定小数点変換装置
が、前記第1の組のz座標値の最大z座標値を決定する
ように構成され、且つ更に、前記最大z座標値から前記
共通z指数値を生成するように構成されている、請求項
18に記載のシステム。
19. The floating-point to fixed-point conversion device is configured to determine a maximum z-coordinate value of the first set of z-coordinate values, and further comprising the common z-index from the maximum z-coordinate value. 19. The system of claim 18, wherein the system is configured to generate a value.
【請求項20】 前記第1グラフィックス処理装置が、
前記第1の組のグラフィックス・オペレ―ションを行う
際に前記共通z指数値を利用するように構成されてい
る、請求項18に記載のシステム。
20. The first graphics processing device,
20. The system of claim 18, wherein the system is configured to utilize the common z-index value when performing the first set of graphics operations.
【請求項21】 前記浮動小数点‐固定小数点変換装置
が、前記共通z指数値にしたがって前記第1の組のz座
標値をスケーリングするように構成されている、請求項
18に記載のシステム。
21. The system of claim 18, wherein the floating-point to fixed-point converter is configured to scale the first set of z-coordinate values according to the common z-index value.
【請求項22】 前記第1グラフィックス処理装置が、
前記第1の組のグラフィックス・オペレ―ションを行う
際に前記スケーリングされた第1の組のz座標値を利用
するように構成されている、請求項21のシステム。
22. The first graphics processing device,
22. The system of claim 21, wherein the system is configured to utilize the scaled first set of z-coordinate values in performing the first set of graphics operations.
【請求項23】 前記第1の組のz座標値が0.0より
大きいか又は1.0以下であり、所定の頂点に対する
1.0のz値が該所定の頂点が前方zクリッピング面に
あることを示し、前記所定の頂点に対する0.0に接近
するz値が前記所定の頂点が後方zクリッピング面に接
近していることを示す、請求項16に記載の方法。
23. The first set of z coordinate values is greater than 0.0 or less than or equal to 1.0, and a z value of 1.0 for a given vertex is such that the given vertex is in the forward z clipping plane. 17. The method of claim 16, indicating that a z value approaching 0.0 for the given vertex indicates that the given vertex is approaching a posterior z clipping plane.
【請求項24】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブのセットアップ動作を行う
ように構成されている、請求項16に記載のシステム。
24. The system of claim 16, wherein the first graphics processing device is configured to perform a setup operation of the first geometric primitive.
【請求項25】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブの稜線補間を行うように構
成されている、請求項16に記載のシステム。
25. The system of claim 16, wherein the first graphics processing device is configured to perform edge interpolation of the first geometric primitive.
【請求項26】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブのスパン補間を行うように
構成されている、請求項16に記載のシステム。
26. The system of claim 16, wherein the first graphics processing device is configured to perform span interpolation of the first geometric primitive.
【請求項27】 前記固定小数点フォ―マットで表現さ
れた値が仮数部を含む、請求項16に記載のシステム。
27. The system of claim 16, wherein the value represented in the fixed point format includes a mantissa.
【請求項28】 前記固定小数点‐浮動小数点変換装置
が、前記固定小数点フォ―マットで表現された前記第2
の組のz座標値の各々の仮数部を正規化するように構成
され、更に、前記第2浮動小数点フォ―マットの仮数部
と指数部を生成するために前記共通z指数値を利用する
ように構成されている、請求項27に記載のシステム。
28. The fixed-point-to-floating-point converter converts the second point represented by the fixed point format into
And further configured to normalize a mantissa of each of the set of z-coordinate values, and further utilize the common z-exponent value to generate a mantissa and an exponent of the second floating-point format. 28. The system of claim 27, wherein the system is configured to:
【請求項29】 前記第2グラフィックス処理装置が、
隠面除去を実現するためにZバッファ比較を行うように
構成されている、請求項16に記載のシステム。
29. The second graphics processing device,
17. The system of claim 16, wherein the system is configured to perform a Z-buffer comparison to achieve hidden surface removal.
【請求項30】 更に、浮動小数点Zバッファ・モ―ド
を使用可能にするように構成された制御装置を備え、前
記固定小数点‐浮動小数点変換装置が、前記浮動小数点
Zバッファ・モ―ドが使用可能にされることに応答して
前記第2の組のz座標値を前記第2浮動小数点フォ―マ
ットに変換するように構成されており、且つ、前記第2
グラフィックス処理装置が、前記浮動小数点Zバッファ
・モ―ドが使用可能にされることに応答して前記第2の
組のグラフィックス・オペレ―ションを行うように構成
されている、請求項16に記載のシステム。
30. The apparatus of claim 30, further comprising a controller configured to enable a floating point Z-buffer mode, wherein the fixed point-to-floating point converter includes a floating point Z-buffer mode. Responsive to being enabled, configured to convert the second set of z coordinate values to the second floating point format; and
17. The graphics processing unit is configured to perform the second set of graphics operations in response to the floating-point Z-buffer mode being enabled. System.
【請求項31】 第1の組のz座標値を処理するシステ
ムであって、前記第1の組のz座標値が第1幾何学的プ
リミティブの頂点に対応するシステムにおいて、 第1浮動小数点フォ―マットで表現された前記第1の組
のz座標値を受取る受信手段と、 前記第1の組のz座標値を固定小数点フォ―マットに変
換する第1変換手段と、 前記固定小数点フォ―マットで表現された前記第1の組
のz座標値を用いて第1の組のグラフィックス・オペレ
―ションを行って、前記固定小数点フォ―マットで表現
された第2の組のz座標値を生成する第1グラフィック
ス処理手段と、 前記第2の組のz座標値を第2浮動小数点フォ―マット
に変換する第2変換手段と、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を用いて第2の組のグラフィックス・オ
ペレ―ションを行う第2グラフィクス処理手段と、を具
備するシステム。
31. A system for processing a first set of z-coordinate values, wherein the first set of z-coordinate values corresponds to vertices of a first geometric primitive. Receiving means for receiving the first set of z-coordinate values expressed in a format; first converting means for converting the first set of z-coordinate values to a fixed-point format; and the fixed-point format. A first set of graphics operations is performed using the first set of z-coordinate values expressed in a matte, and a second set of z-coordinate values expressed in the fixed-point format. First graphics processing means for generating the second set of z-coordinate values into a second floating-point format, and the second set of z-coordinate values in the second floating-point format. Second
And a second graphics processing means for performing a second set of graphics operations using the set of z-coordinate values.
JP11073848A 1998-03-18 1999-03-18 Method and device for high-efficiency floating-point z buffering Pending JPH11328438A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/040,921 US6115047A (en) 1996-07-01 1998-03-18 Method and apparatus for implementing efficient floating point Z-buffering
US040921 1998-03-18

Publications (1)

Publication Number Publication Date
JPH11328438A true JPH11328438A (en) 1999-11-30

Family

ID=21913725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11073848A Pending JPH11328438A (en) 1998-03-18 1999-03-18 Method and device for high-efficiency floating-point z buffering

Country Status (2)

Country Link
JP (1) JPH11328438A (en)
KR (1) KR19990078036A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058905A (en) * 2001-08-21 2003-02-28 Nintendo Co Ltd CLAMPING OF z VALUE IN NEAR RANGE OF z FOR MAXIMIZING ACCURACY OF VISUALLY IMPORTANT z COMPONENT AND EVADING CLIPPING NEAR z IN GRAPHICS RENDERING SYSTEM
KR100762996B1 (en) * 2005-11-18 2007-10-04 (주)디지탈아이엔터테인먼트 Method of acceleration for process of 3d graphic of use program
CN100378762C (en) * 2003-08-25 2008-04-02 威盛电子股份有限公司 3-D image processing mechanism for reducing Z buffer zone flow rate
CN100442353C (en) * 2004-08-04 2008-12-10 辉达公司 Filtering unit for floating-point texture data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058905A (en) * 2001-08-21 2003-02-28 Nintendo Co Ltd CLAMPING OF z VALUE IN NEAR RANGE OF z FOR MAXIMIZING ACCURACY OF VISUALLY IMPORTANT z COMPONENT AND EVADING CLIPPING NEAR z IN GRAPHICS RENDERING SYSTEM
CN100378762C (en) * 2003-08-25 2008-04-02 威盛电子股份有限公司 3-D image processing mechanism for reducing Z buffer zone flow rate
CN100442353C (en) * 2004-08-04 2008-12-10 辉达公司 Filtering unit for floating-point texture data
KR100762996B1 (en) * 2005-11-18 2007-10-04 (주)디지탈아이엔터테인먼트 Method of acceleration for process of 3d graphic of use program

Also Published As

Publication number Publication date
KR19990078036A (en) 1999-10-25

Similar Documents

Publication Publication Date Title
US6115047A (en) Method and apparatus for implementing efficient floating point Z-buffering
US5973705A (en) Geometry pipeline implemented on a SIMD machine
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US8144158B2 (en) Display system having floating point rasterization and floating point framebuffering
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
JP3860859B2 (en) Computer graphics system with high performance primitive clipping preprocessing
US6275235B1 (en) High precision texture wrapping method and device
US5926406A (en) System and method for calculating floating point exponential values in a geometry accelerator
EP0933729A2 (en) Three-dimensional graphics accelerator
US20040189651A1 (en) Programmable graphics system and method using flexible, high-precision data formats
US5912830A (en) System and method for conditionally calculating exponential values in a geometry accelerator
US6219062B1 (en) Three-dimensional graphic display device
JP3839871B2 (en) Apparatus for generating pixel data representing a triangle
US6778188B2 (en) Reconfigurable hardware filter for texture mapping and image processing
US6681237B1 (en) Exponentiation circuit for graphics adapter
US6891538B1 (en) Dual mode device and method for generating vector cross products or dot products
US6850244B2 (en) Apparatus and method for gradient mapping in a graphics processing system
JP2883523B2 (en) Image synthesizing apparatus and image synthesizing method
JPH11328438A (en) Method and device for high-efficiency floating-point z buffering
JP3839870B2 (en) Apparatus and method for generating pixel data representing a quadrilateral
US6784895B1 (en) Programmable multiple texture combine circuit for a graphics processing system and method for use thereof
US7209140B1 (en) System, method and article of manufacture for a programmable vertex processing model with instruction set
JP2007128180A (en) Arithmetic processing unit
EP0485833A2 (en) A method for executing graphics color saturating arithmetic instructions in a data processor