JP4148560B2 - 浮動小数点除算演算装置 - Google Patents
浮動小数点除算演算装置 Download PDFInfo
- Publication number
- JP4148560B2 JP4148560B2 JP11036698A JP11036698A JP4148560B2 JP 4148560 B2 JP4148560 B2 JP 4148560B2 JP 11036698 A JP11036698 A JP 11036698A JP 11036698 A JP11036698 A JP 11036698A JP 4148560 B2 JP4148560 B2 JP 4148560B2
- Authority
- JP
- Japan
- Prior art keywords
- floating point
- denominator
- floating
- modified
- comparator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/49926—Division by zero
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は浮動小数点数の処理方法および装置に関する。本発明は特にゼロ除算または負のゼロの状態の検出方法および装置に関する。
【0002】
【従来の技術】
非常に大きい数あるいは非常に小さい数を用いた計算を行なう上で精度が要求される場合に浮動小数点数を用いることが多い。浮動小数点数体系においては、ある数の指数は10進小数点がシフトされるたびに増減する。たとえば、光速は3.00×108 m/sあるいは0.3×109 m/sあるいは30.0×107 m/sと表わすことができる。指数は10進小数点が左シフトされると大きくなり、右シフトされると小さくなる。
【0003】
多くのコンピュータはソフトウエアあるいはハードウエアにより、(固定小数点に対して)浮動小数点数すなわち“指数表現”を処理する手段を提供する。この手段によるフォーマットでは、コンピュータワード(あるいは多くの場合ワード群)は次表のようなビットあるいはフィールドに分割される。
【0004】
【表1】
【0005】
ここで、Signは符号を、EXPONENTは指数部を、FRACTIONは小数部(又は仮数部)の値をそれぞれ示す。このフォーマットは、
(Sign)(2EXPONENT)・(FRACTION)
によって定義される値を表わす。浮動小数点値は仮数部では8桁の精度を有し、指数部では2桁あるいは3桁の精度を有する。機械によっては、上の表現における”2”が”16”に置き換えられ、これは指数の位取りに相当する。指数部および少数部(又は仮数部)はいずれも符号を有し、指数フィールドはそれ自体の符号を有し、明示された符号ビット(浮動小数点表現全体における左端のビット)は少数部に属する。32ビット浮動小数点表現においては、指数部は通常8ビット、少数部すなわち仮数部は通常23ビットである。
【0006】
負のゼロは非常に大きな数の減算の結果生じることがある。負のゼロとは非常に小さな負の数を指す。符号ビットは負であり、その数の符号を表わすが、少数フィールドはゼロである。同様に、正の符号を有するゼロの少数フィールドがゼロあるいは非常に小さな正の数を表わす場合がある。ゼロの少数フィールドと正あるいは負の符号を有する浮動小数点数を除算における分母として用いると、ゼロ除算エラーすなわち除算例外が発生する。
【0007】
ゼロ除算エラーの防止は、広汎なコンピュータおよびコンピュータ関連システムの効率的かつ高速な動作に不可欠である。パイプライン処理の除算器を用いて除算を実行する際には、除算器の動作が完了しエラーが発生する前にゼロ除算状態を検出することが望ましい。従来の方法では、除算動作の完了を待って、その後非常に複雑なエラー処理論理および/またはソフトウエアを用いてパイプラインのフラッシングと再起動が行なわれる。また、従来の方法では、正のゼロと負のゼロをチェックする2つの比較演算を順次実行する。しかしながら、正のゼロと負のゼロのチェックに2つの別個の比較演算を必要とする場合、除算の完了前にゼロ除算の検出と修正を行なうだけの時間がない場合がある。
【0008】
膨大な数の計算を行う上において高速性が不可欠なシステムの一例としてコンピュータグラフィックスシステムがある。一般に、3次元空間たとえばx、y、z座標における頂点の値を表現するには浮動小数点数が用いられる。コンピュータグラフィックスシステムは2次元表示画面上での物体の図形的表現に広く用いられる。現在のコンピュータグラフィックスシステムは高度に詳細な表現が可能であり、さまざまな用途に用いられている。
【0009】
通常のコンピュータグラフィックスシステムの基本要素には、ジオメトリアクセラレータ、ラスタライザおよびフレームバッファがある。また、かかるシステムにはテクスチャマッピングハードウエア等の他のハードウエアが含まれる場合がある。通常のコンピュータグラフィックスシステムにおいては、表示画面上に表現すべき対象物は複数の図形要素に分割される。点、線、ベクトル、ポリゴン(たとえば三角形)等の図形要素がグラフィックスピクチャの基本要素である。通常、ハードウエア/ソフトウエアによる機構を用いて2次元表示画面上に1つあるいはそれ以上の対象物の光景を構成する図形要素がレンダリング(描画)される。ジオメトリアクセラレータはホストコンピュータからレンダリングすべき対象物を構成する図形要素の頂点座標および色データを受け取る。その図形要素が三角形である場合、たとえばホストコンピュータはその三角形を各頂点のx、y、z座標と赤、緑、青(R、G、B)の色の値で定義する場合がある。ジオメトリアクセラレータは通常頂点座標データに対して(画面空間座標への)変換を実行し、四角形を三角形に分解する。あるいは、各図形要素に対して照明、クリッピング、平面方程式の計算等の他の機能を実行する場合もある。ラスタライザ(および場合によってはテクスチャマッピングハードウエア)はジオメトリアクセラレータからの出力(レンダリングデータと呼ぶ)を用いて図形要素を構成する各画素の最終的な画面空間座標およびR、G、Bの色の値を計算する。画素データはフレームバッファに記憶され、表示画面上に表示される。グラフィックスシステムのなかには、各種の動作(変換、補間その他)を異なる目的図形要素上で異なる構成要素によって同時に実行するようにパイプライン化されたものもある。
【0010】
ジオメトリアクセラレータの動作は計算量の極めて大きいものである。3D(三次元)図形表示の1フレームは数十万というオーダーの図形要素を含むことがある。最先端の性能を得るためには、ジオメトリアクセラレータは1チップあたり1秒に数億というオーダーの浮動小数点計算を実行しなければならない場合がある。さらに、ホストコンピュータとグラフィックスハードウエアの間で転送されるデータの量は膨大なものである。1つの四角形のデータは、それぞれが32ビットからなる64ワードというオーダーになる場合もある。ホストコンピュータからジオメトリアクセラレータに送出される他のデータとしては、照明パラメータ、クリッピングパラメータおよび図形表示の生成に必要な他のパラメータがある。
【0011】
ジオメトリアクセラレータの機能としては、3次元変換、照明、クリッピング、パースペクティブデバイド演算(perspective divide operation)および浮動小数点フォーマットで実行される平面方程式の生成がある。ジオメトリアクセラレータの機能によってレンダリングデータが得られ、これがフレームバッファサブシステムに送られラスタ化される。
【0012】
ジオメトリアクセラレータの性能の改善にはパイプライン処理や多重処理等さまざまな技術が用いられてきた。しかし、さらなる性能の改善が必要とされている。特に、ジオメトリアクセラレータの実行する計算の効率の向上が必要とされている。
【0013】
【発明が解決しようとする課題】
本発明の目的は、ジオメトリアクセラレータの計算の効率に向上をもたらす、浮動小数点除算演算装置及び方法を提供することである。
【0014】
【課題を解決するための手段】
本発明の一側面によれば、浮動小数点除算演算を実行する装置が提供される。この装置は、浮動小数点分子および浮動小数点分母を受け取り、前記浮動小数点分子および前記浮動小数点分母に浮動小数点除算演算を実行する除算器、および浮動小数点値0.0と前記浮動小数点分母を受け取り、前記浮動小数点値0.0および浮動小数点分母について、前記浮動小数点分母の符号を除いた比較を実行する比較器を備える。この装置はさらに前記浮動小数点除算演算を示す制御信号に応答して前記比較器に前記浮動小数点分母と前記0.0の浮動小数点値に関係付けられた等しい符号ビットを供給する論理要素を有する。この比較の結果はゼロ除算演算を表わし、また浮動小数点分母の符号には無関係である。
【0015】
この装置はさらに、前記浮動小数点分子および浮動小数点分母を前記の除算器に供給し、前記浮動小数点値0.0および浮動小数点分母を比較器に供給するためのレジスタファイル等の記憶装置を備える。第1のレジスタを前記レジスタファイルと比較器の間に接続して前記浮動小数点値0.0を保持することができる。第2のレジスタを前記レジスタファイルと前記比較器の間に接続して前記浮動小数点分母を、前記符号ビットを除いて保持することができる。前記論理要素は第1の入力で前記制御信号を第2の入力で前記浮動小数点分母を受け取るANDゲートとすることができる。
【0016】
本発明の他の側面によると、浮動小数点除算演算の実行方法が提供される。浮動小数点分子および浮動小数点分母がハードウエア除算器に供給される。浮動小数点除算演算が前記ハードウエア除算器を用いて前記浮動小数点分子および前記浮動小数点分母に対して実行される。浮動小数点値0.0および前記浮動小数点分母が前記浮動小数点分母の符号ビットを除いてハードウエア比較器に供給される。前記浮動小数点分母の前記の符号ビットを前記浮動小数点値0.0の符号ビット(通常は正)に等しくする。等しい符号ビットを有する前記浮動小数点値0.0と前記浮動小数点分母の比較が実行される。この比較の結果はゼロ除算演算を表わし、またこれは前記浮動小数点分母とは無関係である。本発明は最小限の回路構成でゼロ除算状態を迅速に検出することを可能にする。
【0017】
【発明の実施の形態】
図1は本発明の実施に適したコンピュータグラフィックスシステムの一実施形態を示すブロック図である。このシステムは一例であり、本発明を限定するものではなく、また本発明の方法および装置は任意のコンピュータグラフィックスシステムに利用可能であることを指摘しておく。さらに、下に説明するように、本発明はコンピュータグラフィックスシステムにおける用途には限定されない。
【0018】
図1のシステムはホストコンピュータ100、フロントエンドサブシステム102およびフレームバッファサブシステム104を有する。フロントエンドサブシステム102はバス101を介してホストコンピュータ100から図形要素を受け取る。図形要素は通常三角形の頂点等の図形要素の各部分に関するx、y、z座標データ、R、G、B色データ、Nx、Ny、Nz通常データ、α混合データ等によって記述される。
【0019】
3次元の図形要素を表わすデータはフロントエンドサブシステム102からフレームバッファサブシステムに、セグメント122A、122Bおよび122Cを有するバス122を介して供給される。フレームバッファサブシステム104はフロントエンドサブシステム102から受け取ったレンダリングデータを補間して各図形要素を表わす表示画面上の画素を計算し、各画素についての目的R、G、B色値を判定する。各画素に対するR、G、B色制御信号がそれぞれR、G、Bライン123を介して供給され、表示画面(図示せず)上の画素を画像を表示するように制御する。
【0020】
図1に示す実施形態においては、フロントエンドサブシステム102はホストインターフェース106および3次元(3D)ジオメトリアクセラレータ110を含む。図示するように、ホストインターフェース106はホストコンピュータ100からのバス101上でx、y、z座標および色基本データを受け取る。かかるデータはバス108上でホストインターフェース106からジオメトリアクセラレータ110に供給される。ジオメトリアクセラレータ110は表示すべきレンダリングデータを生成する従来のジオメトリアクセラレータの機能を実行する。かかる機能には、3次元変換、照明、クリッピングおよびパースペクティブデバイド演算、および浮動小数点フォーマットで実行される平面方程式の生成が含まれる。レンダリングデータはジオメトリアクセラレータ110からバス112上をホストインターフェース106に供給され、ホストインターフェース106はレンダリングデータをフォーマットし直し、浮動小数点/固定点変換を実行し、かかるデータをバスシステム122上でフレームバッファサブシステム104に供給する。
【0021】
本実施形態では、フレームバッファサブシステム104はそれぞれが対応するシリアル同期グラフィックスランダムアクセスメモリ(SGRAM)116A、116Bおよびランダムアクセスメモリデジタル/アナログ変換器(RAMDAC)120を含む。本発明のバスアーキテクチャ122にはフレームバッファコントローラ114Aおよび114Bとホストインターフェース106の両方が接続されている。本実施形態では、バス122は互いに同一な3つのバス122A、122Bおよび122Cを含む。
【0022】
図1に示す実施形態では、フレームバッファコントローラ114Aおよび114Bはそれぞれホストインターフェース106からレンダリングデータを受け取る。各フレームバッファコントローラは表示画面の異なる重なり合わない部分を制御する。フレームバッファコントローラは図形要素データを補間してその図形要素を表わす画面表示画素座標および各画素座標の対応する目的R、G、B色値を計算する。
【0023】
その結果フレームバッファコントローラ114Aおよび114Bによって生成される、各画素のR、G、B値を含む画像ビデオデータは対応するSGRAM 116Aおよび116Bに記憶される。ビデオデータはSGRAMチップから順次シフトアウトされ、RAMDAC 120によって処理しうるようにフォーマットし直され、RAMDACに供給される。RAMDAC 120はこのデジタル色データを各画素のアナログR、G、B色制御信号に変換し、これらの信号がR、G、Bライン123上で供給され表示画面(図示せず)が制御される。
【0024】
ホストインターフェース106はまたビデオバス124を介してRAMDAC120と直接通信することができる。このシステムをパイプライン化されたシステムとして、フレームバッファサブシステム104が、フロントエンドサブシステム102が(時間的に)後続の図形要素を処理している間に第1の図形要素を処理しうるようにすることが好適である。
【0025】
図2は本発明を有益に実施することのできるジオメトリアクセラレータ110の非常に簡略化したブロック図である。変換機械210は頂点のx、y、z座標および頂点のR、G、B色値を含む図形要素の定義を受け取る。変換機械210はかかる座標を表示画面空間に変換する。分解機械215がポリゴンを三角形およびグラフィックスハードウエアの使用する他の図形要素に分解する。照明機械220は、図形表示が1つあるいはそれ以上の光源によって照射されるように照明計算を実行する。クリッパー225が表示画面空間から部分的に出ている図形要素についてクリッピング計算を実行する。変換機械、分解機械215、照明機械220およびクリッパー225は頂点データに対して必要な計算を実行してフレームバッファ104(図1)にレンダリングデータを供給する状態機械として実施することができる。かかる計算の詳細は本発明の範囲外であるが、かかる計算はできるだけ迅速かつ効率的に実行することが望ましい。
【0026】
図3は本発明に係る浮動小数点ゼロまたは負のゼロによる除算を高速にチェックする装置の一例のブロック図である。マルチポートレジスタファイル300が前に計算された浮動小数点値あるいはホストコンピュータから受け取った浮動小数点値を保持する。また、レジスタファイル300は浮動小数点定数0.0を保持する。浮動小数点除算器320はレジスタファイル300からバス310上で分子Aの浮動小数点値を受け取り、バス305上で分母Bを受け取る。また、レジスタファイル300はバス315上のレジスタ335およびバス305上のレジスタ340に浮動小数点数を供給する。レジスタ335および340の出力はそれぞれバス345および350を介して浮動小数点比較器355に接続されている。レジスタ335および340はパイプライン処理およびタイミングの目的に用いられ、実施態様によっては削除することもできる。レジスタ335およびレジスタ340のCLK入力は除算器320のCLK入力と同期している。本発明においては、浮動小数点定数0.0はレジスタ335に保持され、比較器355における浮動小数点ゼロすなわち負のゼロのチェックに用いられる。
【0027】
ANDゲート330が第1の入力でバス305のライン332上の分母の符号ビットを受け取り、第2の入力でコントローラ325からのCLEAR_SIGN_N信号を受け取る。ANDゲート330の出力はライン334上でレジスタ340に修正済符号ビットとして渡される。一実施形態では、バス305、310、315、345および350上で搬送される浮動小数点値は32ビットワードであり、それぞれのバスは32ラインを有する。ライン332上の符号ビットはバス305の適当なラインから得られる。
【0028】
次に、図3に示す装置の動作について説明する。除算器320が浮動小数点除算演算を実行するとき、CLEAR_SIGN_N信号はコントローラ325によって除算演算を表わす“0”に設定される。バス310上の分子およびバス305上の分母(いずれも浮動小数点値)がレジスタファイル300から除算器320にロードされ、除算演算が開始される。除算器320の出力は結果A_DIVIDED_BY_Bである。
【0029】
レジスタ335にはレジスタファイル300から浮動小数点定数0.0がロードされる。バス305上の分母は符号ビットを除いてレジスタ340に送られる。ライン332上のこの分母の符号ビットはANDゲート330に送られる。また、ANDゲート330はコントローラ325からCLEAR_SIGN_N信号(“0”に設定されている)を受け取り、分母の符号ビットを修正する。ライン334上のANDゲート330の出力はレジスタ340の、通常比較すべき浮動小数点分母の符号ビットを受け取る入力に送られる。ANDゲート330がレジスタ340に供給される分母の符号をレジスタ335に供給される浮動小数点定数0.0の符号ビット(通常は正)と同じになるように制御する。したがって、この比較の結果は分母の符号ビットとは無関係である。次に、修正された符号ビットを含む浮動小数点分母が比較器355によってレジスタ335に記憶された浮動小数点定数0.0と比較される。バス345および350上の入力が等しいとき比較器355のC_EQUAL_B出力が表明され、これはゼロによる除算すなわち負のゼロの状態を表わす。この比較結果をコントローラ325に送ってこのゼロ除算状態に応答することができる。
【0030】
分母の符号ビットを修正することによって、比較器355は分母の符号とは無関係に1つの比較演算で除算演算の分母がゼロ(あるいはほぼゼロ)の値を有するかどうかを判定する。CLEAR_SIGN_N信号を“1”に設定すると、比較器355は通常動作を行なって本発明の浮動小数点ゼロすなわち負のゼロの高速チェックに無関係な他の比較機能を実行することができる。CLEAR_SIGN_N信号が“1”に設定されているとき、ライン332上のビットはANDゲート330を単に通過してレジスタ340に渡される。
【0031】
ANDゲート330はシステムが分母を0.0と比較して、分母がゼロあるいはほぼゼロであるときその符号と無関係にC_EQUAL_B信号を供給することを可能とする。本発明はゼロ除算状態を1つの比較によって高速かつ最小限の論理/ソフトウエアオーバーヘッドで検出することを可能とする。ゼロ除算状態は1クロックサイクル中に検出可能である。
【0032】
除算演算が開始されると、本発明の装置は浮動小数点ゼロすなわち負のゼロの高速チェックを開始する。除算器320が1つの除算演算を行なうには、いくつかの(通常約8)のタイミング状態が必要であるため、高速チェックが1つのタイミング状態内で完了すれば、除算演算が完了する前にその結果が得られる。コントローラ325はこの比較結果を処理し、その後いくつかのタイミング状態のうちにこのゼロ除算状態を解消する方法を決定すればよい。任意の所望の動作を実行してゼロ除算状態に応答することができる。たとえば、コントローラ325はレジスタファイル300あるいは他の場所に記憶された数を除算器320からの結果に置き換えることができる。また、コントローラ325は除算演算の完了前の終了および/またはエラー処理ルーチンを実行することができる。
【0033】
通常、除算演算および比較演算は同じクロックサイクルあるいはタイミング状態で開始される。比較演算は1クロックサイクルしか必要とせず、除算演算は数クロックサイクルを要するため、この比較の結果は除算演算が完了する前に利用可能になる。分母が得られれば、比較演算は除算動作の開始される1クロックサイクル以上前あるいは後に開始することができる。比較演算の結果は、除算演算が完了し、エラーを生成する前に得られなければならない。
【0034】
前述したコンピュータグラフィックスの例では、表示の各フレームについて数百万の計算が必要である。かかる計算の一部は除算演算である。たとえば、ジオメトリアクセラレータの実行するクリッピング計算には比率の計算が必要である。本発明は1つの比較演算のみでゼロ除算状態を検出することによってジオメトリアクセラレータの全体的計算速度を増大させる。ゼロ除算状態は迅速にまた除算演算の完了前に検出されるため、従来のシステムに用いられる複雑なエラー回復機構を用いることなく適当なステップを実行することができる。計算速度の増大によってグラフィックス品質が改善される。
【0035】
本発明はコンピュータグラフィックスシステムの用途には限定されないことを指摘しておく。より一般的には、本発明は浮動小数点除算器を用い、ゼロ除算状態の検出を必要とするマイクロプロセッサおよび他のデジタルシステムに使用可能である。
【0036】
本発明の範囲にはさまざまな変更態様が含まれる。たとえば、図3を参照すると、浮動小数点分子、浮動小数点分母および浮動小数点値0.0は任意の適当なレジスタ、メモリデバイスあるいは他の記憶装置あるいはデータソースから除算器320およびレジスタ335、340に供給することができる。さらに、レジスタ335および340はタイミングあるいは他の目的にこれらを必要としない場合には削除することができる。さらに、ANDゲート330は他の適当な論理要素に置き換えることができる。ANDゲート330あるいは他の論理要素に対する要求条件は比較器355の一方の入力に供給される浮動小数点値0.0の符号ビットを比較器355の他の入力に供給される浮動小数点値0.0の符号ビットに等しくなるように修正することである。通常、浮動小数点値0.0は正の符号ビットを有し、分母の符号ビットはその状態にかかわりなく正に修正される。しかし、負の符号ビットは浮動小数点値0.0および分母と関係付けることが可能であることが理解されよう。これらの符号ビットが等しければ、比較結果は符号ビットとは無関係である。CLEAR_SIGN_N信号は除算演算中に表明される。他の時間には、CLEAR_SIGN_N信号は通常表明されておらず、浮動小数点比較器355は符号ビットを修正することなく比較を実行することができる。
【0037】
本発明の少なくとも1つの実施形態を説明したが、当業者にはさまざまな変更、修正および改良を容易に考案することが可能であろう。かかる変更、修正および改良は本発明の精神および範囲に含まれるものである。したがって、以上の説明は本発明を例示するものに過ぎず、本発明を限定するものではない。本発明は特許請求の範囲とその均等物にのみ限定される。
【0038】
以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。
【0039】
(実施態様1)
浮動小数点分子および浮動小数点分母を受け取り、前記浮動小数点分子および前記浮動小数点分母に浮動小数点除算演算を実行する除算器(320)と、
浮動小数点値0.0および前記浮動小数点分母を受け取り、前記浮動小数点値0.0および前記浮動小数点分母について、前記浮動小数点分母の符号を除いた比較を実行する比較器(355)と、
浮動小数点除算演算を指示する制御信号に応答して前記比較器(355)に前記浮動小数点分母と前記浮動小数点値0.0に関係付けられた等しい符号ビットを供給する論理要素(330)と
を有し、前記比較の結果はゼロ除算演算を表わし、また浮動小数点分母の符号には無関係であることを特徴とする浮動小数点除算演算を実行する装置。
【0040】
(実施態様2)
前記論理要素は、第1の入力で前記制御信号を受け取り、第2の入力で前記浮動小数点分母の符号ビットを受け取り、前記比較器に正の符号を表わす出力を供給するANDゲートを有することを特徴とする実施態様1記載の装置。
【0041】
(実施態様3)
前記レジスタファイルと前記比較器の間に接続され、前記浮動小数点値0.0を保持する第1のレジスタ(335)と、
前記レジスタファイルと前記比較器の間に接続され、前記浮動小数点分母を前記浮動小数点分母の符号ビットを除いて保持する第2のレジスタ(340)と
を有することを特徴とする実施態様2記載の装置。
【0042】
(実施態様4)
前記浮動小数点分子および前記浮動小数点分母を前記除算器に供給し、前記浮動小数点値0.0および前記浮動小数点分母を前記比較器に供給する記憶装置(300)を有することを特徴とする実施態様3記載の装置。
【0043】
(実施態様5)
前記記憶装置はレジスタファイルを有することを特徴とする実施態様4記載の装置。
【0044】
(実施態様6)
浮動小数点分子および浮動小数点分母をハードウエア除算器(320)に供給するステップと、
前記ハードウエア除算器(320)を用いて前記浮動小数点分子および前記浮動小数点分母に対して浮動小数点除算演算を実行するステップと、
浮動小数点値0.0および前記浮動小数点分母を前記浮動小数点分母の符号ビットを除いてハードウエア比較器(355)に供給するステップと、
前記ハードウエア比較器(355)に前記浮動小数点分母および前記浮動小数点値0.0に関係付けられた等しい符号ビットを供給するステップと、
前記等しい符号ビットを有する前記浮動小数点値0.0と前記浮動小数点分母の比較を実行するステップと
を備え、前記比較の結果はゼロ除算演算を表わし、前記浮動小数点分母とは無関係であることを特徴とする浮動小数点除算演算の実行方法。
【0045】
(実施態様7)
等しい符号ビットを供給するステップにおいて前記比較器に前記浮動小数点分母の正の符号を表わす入力を供給することを特徴とする実施態様6記載の方法。
【0046】
(実施態様8)
前記浮動小数点値0.0を第1のレジスタ(355)に保持し、前記浮動小数点分母を第2のレジスタ(340)に保持するステップを含むことを特徴とする実施態様6記載の方法。
【0047】
(実施態様9)
前記浮動小数点分子、前記浮動小数点分母および前記浮動小数点値0.0をレジスタファイル(300)に記憶するステップを含み、前記浮動小数点分子および前記浮動小数点分母は前記レジスタファイル(300)から前記ハードウエア除算器(320)に供給され、前記浮動小数点値0.0および前記浮動小数点分母は前記レジスタファイル(300)から前記ハードウエア比較器(355)に供給されることを特徴とする実施態様6記載の方法。
【0048】
(実施態様10)
コンピュータグラフィックスシステムにおいて、
浮動小数点分子、浮動小数点分母および浮動小数点値0.0を保持する記憶装置(300)と、
前記記憶装置から前記浮動小数点分子および前記浮動小数点分母を受け取り、前記浮動小数点分子および前記浮動小数点分母に浮動小数点除算演算を実行する除算器(320)と、
前記記憶装置(300)から前記浮動小数点値0.0および前記浮動小数点分母を受け取り、前記浮動小数点値0.0および前記浮動小数点分母について、前記浮動小数点分母の符号を除いた比較を実行する比較器(355)と、
前記浮動小数点除算演算を示す制御信号に応答して前記比較器(355)に前記浮動小数点分母と前記0.0の浮動小数点値に関係付けられた等しい符号ビットを供給する論理要素(330)と
を有し、前記比較の結果はゼロ除算演算を表わし、また浮動小数点分母の符号には無関係であることを特徴とする浮動小数点除算演算を実行する装置。
【0049】
【発明の効果】
以上のように、本発明によると、除算演算装置を1つの比較演算のみでゼロ除算状態を検出するように構成することができる。この除算演算装置をジオメトリアクセラレータに用いることにより、ジオメトリアクセラレータの全体的計算速度を増大させることができる。ゼロ除算状態は迅速にまた除算演算の完了前に検出されるため、従来のシステムに用いられる複雑なエラー回復機構を用いることなく適当なステップを実行することができる。その結果、ジオメトリアクセラレータの計算速度の増大によってグラフィックス品質が改善される。
【図面の簡単な説明】
【図1】本発明の実施に適したコンピュータグラフィックスシステムの一実施形態を示すブロック図である。
【図2】本発明の実施に適したジオメトリアクセラレータの概略ブロック図である。
【図3】本発明の装置の一例のブロック図である。
【符号の説明】
100:ホストコンピュータ
101:バス
102:フロントエンドサブシステム
104:フレームバッファサブシステム
106:ホストインターフェース
108:バス
110:ジオメトリアクセラレータ
112:バス
114A、114B:フレームバッファコントローラ
116A、116B:シリアル同期グラフィックスランダムアクセスメモリ(SGRAM)
120:ランダムアクセスメモリデジタル/アナログ変換器(RAMDAC)
122:バス
122A、122B、122C:バス122のセグメント
123:R、G、Bライン
124:ビデオバス
210:変換機械
215:分解機械
220:照明機械
225:クリッパー
300:マルチポートレジスタファイル
305、310、315:バス
320:浮動小数点除算器
325:コントローラ
330:ANDゲート
332、334:バス305のライン
335、340:レジスタ
345、350:バス
355:浮動小数点比較器
Claims (8)
- 浮動小数点除算演算を実行するための装置であって、
それぞれが符号ビットを有する浮動小数点分子および浮動小数点分母を受け取って、前記浮動小数点分子および前記浮動小数点分母に対して浮動小数点除算演算を実行する除算器と、
符号ビットを有する浮動小数点値0.0および修正された浮動小数点分母を受け取って、前記浮動小数点値0.0と前記修正された浮動小数点分母との比較を実行する比較器であって、前記修正された浮動小数点分母が、修正された符号ビットを有する前記浮動小数点分母からなり、前記修正された符号ビットが前記浮動小数点値0.0の符号ビットに等しいことからなる、比較器と、及び
前記浮動小数点除算演算を指示する制御信号に応答して、前記修正された符号ビットを提供するための論理要素
とを備え、
前記論理要素が、第1の入力において前記制御信号を受け取り、第2の入力において前記浮動小数点分母の符号ビットを受け取って、前記比較器に正の符号を表わす出力を提供するANDゲートからなり、及び、
前記比較の結果は、ゼロ除算演算を表わし、前記浮動小数点分母の符号には無関係であることからなる、装置。 - 前記浮動小数点分子、前記浮動小数点分母、及び前記浮動小数点値0.0を包含するレジスタファイルと、
前記レジスタファイルと前記比較器との間に結合されて、前記浮動小数点値0.0を受け取って保持するための第1のレジスタと、及び
前記レジスタファイルと前記比較器との間に結合されて、前記修正された浮動小数点分母を受け取って保持するように前記論理要素に結合された入力を有する第2のレジスタ
とを更に備えることからなる、請求項1に記載の装置。 - 前記浮動小数点分子、前記浮動小数点分母、及び前記浮動小数点値0.0を包含する記憶装置を更に備える、請求項1に記載の装置。
- 前記記憶装置がレジスタファイルを含む、請求項3に記載の装置。
- 浮動小数点除算演算を実行するための方法であって、
浮動小数点分子および浮動小数点分母をハードウエア除算器に供給し、
前記ハードウエア除算器を用いて前記浮動小数点分子および前記浮動小数点分母に対して浮動小数点除算演算を実行し、
符号ビットを有する浮動小数点値0.0と、修正された浮動小数点分母とをハードウエア比較器に供給し、前記修正された浮動小数点分母が、修正された符号ビットを有する前記浮動小数点分母からなり、前記修正された符号ビットが前記浮動小数点値0.0の符号ビットに等しく、及び
前記浮動小数点値0.0と前記修正された浮動小数点分母との比較を実行する
といった各ステップを含み、
前記浮動小数点除算演算を指示する制御信号に応答して、論理要素が、前記修正された符号ビットを提供し、
前記論理要素が、第1の入力において前記制御信号を受け取り、第2の入力において前記浮動小数点分母の符号ビットを受け取って、前記比較器に正の符号を表わす出力を提供するANDゲートからなり、及び、
前記比較の結果は、ゼロ除算演算を表わし、前記浮動小数点分母の符号には無関係であることからなる、方法。 - 前記修正された浮動小数点分母を供給するステップが、前記比較器に前記浮動小数点分母の正の符号を表わす入力を提供することを含むことからなる、請求項5に記載の方法。
- 前記浮動小数点値0.0を第1のレジスタ内に保持するステップと、前記比較を実行するステップ中に、前記修正された浮動小数点分母を第2のレジスタ内に保持するステップとを更に含むことからなる、請求項5に記載の方法。
- 前記浮動小数点分子、前記浮動小数点分母、及び前記浮動小数点値0.0をレジスタファイル内に記憶するステップを更に含み、
前記浮動小数点分子および前記浮動小数点分母が、前記レジスタファイルから、前記浮動小数点除算演算を実行するための前記ハードウエア除算器に供給され、前記浮動小数点値0.0が、前記レジスタファイルから、前記比較を実行するための前記ハードウエア比較器に供給されることからなる、請求項5に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US846,823 | 1992-03-06 | ||
US08/846,823 US5862066A (en) | 1997-05-01 | 1997-05-01 | Methods and apparatus for fast check of floating point zero or negative zero |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10333889A JPH10333889A (ja) | 1998-12-18 |
JP4148560B2 true JP4148560B2 (ja) | 2008-09-10 |
Family
ID=25299038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11036698A Expired - Fee Related JP4148560B2 (ja) | 1997-05-01 | 1998-04-21 | 浮動小数点除算演算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5862066A (ja) |
JP (1) | JP4148560B2 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650327B1 (en) * | 1998-06-16 | 2003-11-18 | Silicon Graphics, Inc. | Display system having floating point rasterization and floating point framebuffering |
US7242414B1 (en) * | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
US7071935B1 (en) * | 1999-06-14 | 2006-07-04 | Sun Microsystems, Inc. | Graphics system with just-in-time decompression of compressed graphics data |
US6912559B1 (en) | 1999-07-30 | 2005-06-28 | Mips Technologies, Inc. | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit |
US7346643B1 (en) | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US6502119B1 (en) * | 1999-09-21 | 2002-12-31 | International Business Machines Corporation | High speed microprocessor zero detection circuit with 32-bit and 64-bit modes |
US6996596B1 (en) | 2000-05-23 | 2006-02-07 | Mips Technologies, Inc. | Floating-point processor with operating mode having improved accuracy and high performance |
US7003540B2 (en) * | 2001-05-25 | 2006-02-21 | Sun Microsystems, Inc. | Floating point multiplier for delimited operands |
US7133890B2 (en) * | 2001-05-25 | 2006-11-07 | Sun Microsystems, Inc. | Total order comparator unit for comparing values of two floating point operands |
US7228324B2 (en) * | 2001-05-25 | 2007-06-05 | Sun Microsystems, Inc. | Circuit for selectively providing maximum or minimum of a pair of floating point operands |
US7366749B2 (en) * | 2001-05-25 | 2008-04-29 | Sun Microsystems, Inc. | Floating point adder with embedded status information |
US7069289B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point unit for detecting and representing inexact computations without flags or traps |
US7191202B2 (en) * | 2001-05-25 | 2007-03-13 | Sun Microsystems, Inc. | Comparator unit for comparing values of floating point operands |
US7363337B2 (en) * | 2001-05-25 | 2008-04-22 | Sun Microsystems, Inc. | Floating point divider with embedded status information |
US7069288B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point system with improved support of interval arithmetic |
US6961744B2 (en) * | 2001-05-25 | 2005-11-01 | Sun Microsystems, Inc. | System and method for generating an integer part of a logarithm of a floating point operand |
US7430576B2 (en) * | 2001-05-25 | 2008-09-30 | Sun Microsystems, Inc. | Floating point square root provider with embedded status information |
US6976050B2 (en) * | 2001-05-25 | 2005-12-13 | Sun Microsystems, Inc. | System and method for extracting the high part of a floating point operand |
US7444367B2 (en) * | 2001-05-25 | 2008-10-28 | Sun Microsystems, Inc. | Floating point status information accumulation circuit |
US6993549B2 (en) * | 2001-05-25 | 2006-01-31 | Sun Microsystems, Inc. | System and method for performing gloating point operations involving extended exponents |
US7613762B2 (en) * | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
US7831652B2 (en) * | 2001-05-25 | 2010-11-09 | Oracle America, Inc. | Floating point multiplier with embedded status information |
US6970898B2 (en) * | 2001-05-25 | 2005-11-29 | Sun Microsystems, Inc. | System and method for forcing floating point status information to selected values |
US7395297B2 (en) * | 2001-05-25 | 2008-07-01 | Sun Microsystems, Inc. | Floating point system that represents status flag information within a floating point operand |
US7016928B2 (en) * | 2001-05-25 | 2006-03-21 | Sun Microsystems, Inc. | Floating point status information testing circuit |
US7219117B2 (en) * | 2002-12-17 | 2007-05-15 | Sun Microsystems, Inc. | Methods and systems for computing floating-point intervals |
US7236999B2 (en) * | 2002-12-17 | 2007-06-26 | Sun Microsystems, Inc. | Methods and systems for computing the quotient of floating-point intervals |
US20070260665A1 (en) * | 2006-04-20 | 2007-11-08 | Chengpu Wang | Method of Specifying and Tracking Precision in Floating-point Calculation |
CN101221492B (zh) * | 2008-01-22 | 2010-07-21 | 西北工业大学 | 浮点异常处理装置以及用该装置进行异常处理的方法 |
US20140067894A1 (en) * | 2012-08-30 | 2014-03-06 | Qualcomm Incorporated | Operations for efficient floating point computations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6388636A (ja) * | 1986-10-01 | 1988-04-19 | Nec Corp | マイクロコンピユ−タ |
JPH0769783B2 (ja) * | 1987-11-16 | 1995-07-31 | 日本電気株式会社 | 例外処理方式 |
JPH07191831A (ja) * | 1993-12-27 | 1995-07-28 | Fujitsu Ltd | 演算装置 |
US5638312A (en) * | 1995-03-03 | 1997-06-10 | Hal Computer Systems, Inc. | Method and apparatus for generating a zero bit status flag in a microprocessor |
-
1997
- 1997-05-01 US US08/846,823 patent/US5862066A/en not_active Expired - Lifetime
-
1998
- 1998-04-21 JP JP11036698A patent/JP4148560B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5862066A (en) | 1999-01-19 |
JPH10333889A (ja) | 1998-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4148560B2 (ja) | 浮動小数点除算演算装置 | |
US5973705A (en) | Geometry pipeline implemented on a SIMD machine | |
JP3023685B2 (ja) | 画像表示データ処理装置 | |
US6115047A (en) | Method and apparatus for implementing efficient floating point Z-buffering | |
US6169554B1 (en) | Clip testing unit for a three-dimensional graphics accelerator | |
US8970608B2 (en) | State objects for specifying dynamic state | |
US8106914B2 (en) | Fused multiply-add functional unit | |
US6377265B1 (en) | Digital differential analyzer | |
JP5054203B2 (ja) | グラフィックス処理の命令レイテンシ減少のためのシステムおよび方法 | |
US6954204B2 (en) | Programmable graphics system and method using flexible, high-precision data formats | |
US20060250397A1 (en) | Graphics processing unit and graphics processing system | |
US5268995A (en) | Method for executing graphics Z-compare and pixel merge instructions in a data processor | |
US5949440A (en) | Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware | |
US6166743A (en) | Method and system for improved z-test during image rendering | |
KR20080067840A (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
KR101973924B1 (ko) | 그래픽스 프로세싱을 위한 퍼-쉐이더 프리앰블 | |
JPS63198174A (ja) | 図形処理装置 | |
US6870540B1 (en) | System, method and computer program product for a programmable pixel processing model with instruction set | |
US7310103B2 (en) | Pipelined 2D viewport clip circuit | |
JP4300001B2 (ja) | クリッピング装置 | |
US5638500A (en) | Apparatus and method for direct calculation of clip region | |
US20030160799A1 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
JPH07295787A (ja) | 演算処理装置 | |
US6885375B2 (en) | Stalling pipelines in large designs | |
US6847378B2 (en) | System and method for performing scale and bias operations by preclamping input image data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20041026 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041029 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050418 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080206 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080507 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |