JPS61500990A - 浮動小数点条件符号生成方式 - Google Patents

浮動小数点条件符号生成方式

Info

Publication number
JPS61500990A
JPS61500990A JP59504065A JP50406584A JPS61500990A JP S61500990 A JPS61500990 A JP S61500990A JP 59504065 A JP59504065 A JP 59504065A JP 50406584 A JP50406584 A JP 50406584A JP S61500990 A JPS61500990 A JP S61500990A
Authority
JP
Japan
Prior art keywords
conditional
nan
operand
zero
floating
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.)
Granted
Application number
JP59504065A
Other languages
English (en)
Other versions
JPH0789314B2 (ja
Inventor
ボニー・ジヨエル エフ
Original Assignee
モトロ−ラ・インコ−ポレ−テッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by モトロ−ラ・インコ−ポレ−テッド filed Critical モトロ−ラ・インコ−ポレ−テッド
Publication of JPS61500990A publication Critical patent/JPS61500990A/ja
Publication of JPH0789314B2 publication Critical patent/JPH0789314B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 浮動小数点条件符号生成方式 本発明は数値データ処理装置に関し、特に、定義された浮動小数点演算の結果と して、ある条件符号(cond i t i 0ncode )を数値データ処 理装置内で生成することに関する。
本出願は、米国に於て、特許出願第567.830号として、1984年1月3 日に提出されている。
背景技術 整数2の補数の演算では、全ての表示可能なビットパターンが数値を表わす。浮 動小数点(実)数システム形式に関して提案されたIEEE標準は、数個の数値 型を定義している。即ち、 1、正規化された数(Normalized number)2、ゼロ 3、無限大 4、非正規化数(Denormalized number)5、非数(NaN ) 説明の目的上、非正規化数は、極めて小さい正規化された数と同様に扱い得る。
IEEE提案の、浮動小数点数に関する現時点での標準は、とりわけ、以下の点 を必要条件としている。:たとえオペランドの形式か異なっていても、提供され る全形式の浮動小数点数を比較し得ること。909111.。
互いに排他的な、4つの関係、より小ざい(less than)、等しイ(e qual) 、より大きい(greater than)、及び順位なしくun Ordered)の演算が可能なこと。最後の関係は、少なくとも1個のオペラ ンドがNaNである時に生じる。全てのNaNは、自身を含めて、他の全てと、 “′順位なしパて比較されること。比較は、ゼロの符号を無視すること(即ち、 十〇=−0>。」 周知の浮動小数点条件符号生成方式では、複雑な論理を用いて、2個のオペラン ド間の大きざの関係から、上記の関係を直接生成している。このためには、極め て多大な論理演算と回路が必要である。
発明の要約 従って、本発明の目的は、上記の4つの関係を検査するために使用可能な浮動小 数点条件符号の改良型生成方法を提供することである。
本発明のこの目的は、2個のオペランド間の大小関係でなく、結果としてのオペ ランドのデータタイプを用いて浮動小数点条件符号を生成するための方法を提供 することによって達成される。
図面の簡単な説明 第1図は、本発明を使用したデータ処理装置のブロック図でおる。
第2図は、第1図のデータ処理装置の命令処理シーケンスを示す流れ図である。
第3図は、第2図の命令処理シーケンスにあける、オペランドタグシーケンスの 詳細流れ図である。
第4図は、本発明による、ある条件符号生成に使用可能な論理を示す論理図であ る。
発明の説明 第1図は、本発明の好ましい実施例に従って構成されたデータ処理装置10を示 す。動作において、処理装置10は、一般に、第2図の流れ図に従って命令を実 行する。処理装置10は数種類の異なった形式の命令を実行できるが、本発明は 主として、任意の複数個のデータ形式を有し得るオペランドに関して実行される 任意の裡数個の異なった数値演算を指定する命令を目的としている。本発明の目 的のためには、このような数値演算は、単項(正弦、逆正接、平方根等)又は、 2項(加算、乗算等)の演算でよい。一方、データ形式は、異なる長さくバイト 、語、長話等)でよい。このような処理装置は、異なる型(整数、BCD、浮動 小数点等)のデータの演算か可能でおるが、浮動小数点演算に重点か置かれてい る。
初めに、バスインタフェースユニット12は、処理装置10によって実行される べき各命令を命令レジスタ14にロードする。該バスインタフェースユニット1 2は、米国特許第4.348.722号に記載されているようなバス制御装置で もよいが、望ましい実施例は、1983年4月18日に提出され本発明の譲受人 に狙渡された、ゾルノフスキー他の同時係属出願(第485.672号)に表示 及び記載されたようなコプロセッサ(coprocessor)インタフェース の形をしている。いずれの形態においても、バスインタフェースユニット12は 、実行開始マイクロシーケンスのマイクロ番地を、次マイクロ番地マルチプレク サ1Bに出力するため、AOプログラマブルロジックアレー(PLA)16をイ ネーブルすることによって、命令の実行を開始する。同時に、A1 PLA20 は、命令の特定動作クラス(OP)(即ち、メモリからレジスタへ、レジスタか らレジスタへ、又は、レジスタからメモリへ)に適した前処理マイクロシーケン ス用のマイクロ番地と、更に、必要であれば、ソースオペランドRXのデータ形 式を選択する。
マイクロマシン22が当初アイドル状態と仮定すると、マルチプレクサ18は、 A0マイクロ番地をマイクロマシン22に直ちに送出するため、イネーブルされ る。望ましい形態では、実行開始マイクロシーケンスは、A1マイクロ番地をマ イクロマシン22に送出するためにマルチプレフサ18をイネーブルする前に、 A1 PLA20が処理を完了するための時間、マイクロマシン22の動作を遅 延させる。
例えば、命令のクラスがメモリからレジスタへの処理を示していれば、A1 P LA20によって呼出された前処理マイクロシーケンスは、先ずマイクロマシン 22に命令を出し、バスインタフェースユニット12と共同で、ソースオペラン ドを、いくつかのオペランドレジスタ24の1個にロードさせる。次に、前処理 マイクロシーケンスは、マイクロマシン22をイネーブルし、元のソースオペラ ンドを内部データ形式に変換するため、一連のオペランド処理ステップにおいて 、実行ユニット26を制御させる。この変換されたオペランドは、望ましくは、 実行ユニット26内の(図示されない)ワークレジスタに保持される。
好ましい形態では、特定内部データ形式は、利用可能な全てのデータ形式の7超 集合(superset lであるように留意して選択される。例えば、オペラ ンドは、長さ1バイト、1詔、1長語の整数として、バックされた2進化10進 数(BCD>形式の基数に10を有する浮動小数点数として、又は単精度、倍精 度、又(は拡張精度の基数2の浮動小数点数として表わされ得ると仮定する。基 数10の浮動小数点数から基数2の浮動小数点数への変換に於て必ず発生する誤 差のような、いくらかの特別な場合を除いて、上記の種々の形式の全てのオペラ ンドは数値範囲又は精度を減少させずに、基数2の拡張積度浮動小数点形式に変 換し得る。
同様に、ある所望の数値演算か実行されると、オペランドが全く変換されなかっ た場合に可能な、数値範囲及び精度を保持して、該演算の結果を、上記形式のい ずれにも、変換し直すことか可能である。この例では、基数2の拡張精度浮動小 数点形式は、所望の「司集合」であり、かつ、望ましい内部データ形式でおる。
メモリからロードされたオペランドが、既に、基数2の拡張精度浮動小数点形式 であれば、上記のような形式変換は不要である。しかし、外部で使用される指数 形式は、典型的には、16進数値53FFFでバイアスされていて、一方、実行 ユニット26で使用される好ましい形式は、2の補数の取扱いを容易にするため 、−1でバイアスされている。従って、望ましい形式の前処理マイクロシーケン スは、マイクロマシン22に命令し、ワークレジスタ内のオペランドの指数をバ イアスし直す一連の短い処理を実行ユニット26に実行させる。同様に、命令の クラスがレジスタからレジスタへの処理を示してあれば、前処理マイクロシーケ ンスは、単にマイクロマシン22に命令し、適当な1個のオペランドレジスタ2 4から実行ユニット26へオペランドをロードさせ、更に、実行ユニット26に 指数をバイアスし直すシーケンスを実行させる。
オペランド形式の変換、又は指数のバイアスし直しが完了すると、前処理マイク ロシーケンスは、結果としてのオペランドをデータタイプに関して「タグ処理」 するためにマイクロマシン22に命令する。本発明の目的のためには、オペラン ドは、4個のデータタイプのいずれでもよい。即ち、正規化されたタイプ(NO RM>、ゼロ(ZERO>、無限大(INF>、又は[非−故(not−a−n umber)j (N 、A、 N >である。拡張精度浮動小数点オペランド に関しては、正規化データタイプは、「正規化されたタイプ」、即ら、指数が可 能な最小指数以上で最大可能指数未満であって、ゼロでない仮数部(signi ficand)は最上位ビット(MSB)に1を有している場合と、「デノーマ ライズドタイプ」、即ち、最小指数を有し、ゼロでない仮数部はMSBにOを有 する場合と、「アンノーマライズドタイプ」、即ち、指数が最小値より大きく、 最大値未満であって、ゼロでない仮数部がMSBにOを有する場合とを含む。他 方、ZEROデータタイプは、指数は最小値で、仮数部はオールゼロである。一 方、INFデータタイプでは、指数は最大値で、小数部はオールゼロでおる。最 後に、NANデータタイプに於−Cは、指数は最大値であり、小数部はゼロでは ない。
第3図に示すように、前処理マイクロシーケンスのタグ処理部は、先ずマイクロ マシン22をイネーブルし、同時に゛ソースタグインクリメント°’ (INS T)信号と“″デスティネーションタグインクリメント”(INDT)信号とを デコーダ32に与えることによって、ソースオペランドタグ(STAG)レジス タ28とデスティネーションオペランドタグ(DTAG)レジスタ3Qをクリア する。タグ処理マイクロシーケンスは、続いて、マイクロマシン22に命令し、 実行ユニット26にオペランドの指数と、最大可能指数とを比較させる。実行ユ ニット26が゛等しくないパことを示せば、次に、マイクロマシン22に命令が 出され、実行ユニット26がオペランドの仮数部がオールピロかどうかの決定を 行う。このテストを行う1つの便利な方法は、仮数部の補数をとり、1を加算し て繰上り(carry out)が発生するかをみることである。実行ユニット 26が゛′繰上りなし″を示せば、オペランドの仮数部はゼロでなく、タグ処理 マイクロシーケンスは、オペランドが正規化された形式であることを正しく決定 して、5TAG28にta ” o”を残して、他のルーチンに移る。他方、実 行ユニット26が゛′繰上りありパを示せば、仮数部はゼロにちがいないし、タ グ処理マイクロシーケンスはマイクロマシン22をイネーブルし、lN5Tをデ コーダ32に送出することによって5TAG28をインクリメントさせ、5TA G28に値“1゛°を残して、他のルーチンに移るようにする。
実行ユニット26が、オペランドの指数が最大指数に′“等しい゛ことを示せば 、タグ処理マイクロシーケンスはマイクロマシン22をイネーブルし、I NS Tをデコーダ32に2度送出することによって5TAG28の内容に2を加算さ せる。涜いて、マイクロマシン22は、仮数部の小数部がオールゼロか否かを決 定するため、実行ユニット26をイネーブルするよう命令を受ける。上記のよう に、実行ユニット26がパ繰上げめりパを示せば、小数部はぜ口でなくてはなら ないし、タグ処理マイクロシーケンスは、オペランドが無限大であることを決定 して、S T 、A、 <326に値°“2パを残して、他のルーチンに移るこ とができる。
他方、実行ユニット26が°“繰上げなし″を示せば、小数部はゼロのはずはな く、タグ処理マイクロシーケンスは、マイクロマシン22をイネーブルし、I  NSTをデコーダ32に1度送出することで5TAG28をインクリメントさせ 、5TAG28に値“°3′′を残して他のルーチンに移るようにさせる。
ソースオペランドのタグ処理が終了すると、前処理マイクロシーケンスは、適当 なオペランドレジスタ24から実行ユニット26内のく図示しない)ワークレジ スタにデスティネーションオペランド(選択されたオペランドが2項形式でない 場合には無意味なこともあり得る)をロードするため、マイクロマシン22をイ ネーブルする。前処理マイクロシーケンスは、デスティネーションオペランドの タグ処理のために、タグ処理マイクロシーケンスを再び実行する。しかし、この 時には、タグ処理マイクロシーケンスは、5TAG28とDTAG30をクリア するためにマイクロマシン22をイネーブルしないで、単に、デスティネーショ ンオペランドのデータタイプの分析に進む。タグ処理マイクロシーケンスの柊り に於て、DTAG30内の値は、上記の適切な符号を反映する。
デスティネーションオペランドのタグ処理か完了すると、必要であれば、前処理 マイクロシーケンスは、マイクロマシン22に命令を出し、A2 PLA34か 、命令レジスタ14の拡張(EX)部分で示される特定数値演算に適した演算実 行マイクロシーケンスのマイクロ番地を提供できるようにさせる。次に、前処理 マイクロシーケンスは、マイクロマシン22に、マルチプレクサ1Bをイネーブ ルしてA2マイクロ番地を送出させるよう命令を与える。
多くの場合、オペランドが特別なデータタイプ(即ち、ゼロ、無限大、又はNA N>であるときには、ある特定の数値演算の結果は、デフオールド値(即ち、+ ゼロ、−無限大等)になる。ゼロ除算、無限大の乗算、又は、NANでおるオペ ランドのような特別な場合を、できるだけ早期に検出するため、A2 PLAに よって選択された演算実行マイクロシーケンスも、5TAG28とDTAG30 内のタグ情報に依存する。先ず、オペランドか正規化された形式であるとしてタ グ付けされたと仮定すると、A2 PLAは、実際の演算実行マイクロシーケン スのマイクロ番地を出力する。選択された数値演算に従って、演算実行マイクロ シーケンスは、演算を実施する適当な一連のステップにおいて実行ユニット26 を制御するため、マイクロマシン22をイネーブルする。続いて、演算実行マイ クロシーケンスは、マイクロマシン22に命令し演算中の全ての例外を報告させ る。望ましい形態では、このような例外は、オーバフロー、アンダフロー、不正 確(丸めの結果)、ゼロ除算、及び不正演算を含む。
これに対して、オペランドが特別なデータタイプ(即ち、ゼロ、無限大、又は、 NAN>としてタグ付けされていると仮定する。この場合、A2 PLAは、特 別な演算マイクロシーケンスのマイクロ番地を提供する。該シーケンスは、適切 でおれば、マイクロマシン22に命令し、対応する例外がおればそれを報告する 前に、デフオールド結果をデスティネーションオペランドレジスタ24にロード させる。本弁明のこの点から、3つの極めて重要な利益が実現される。すなわち 、演算実行マイクロシーケンスは、特別な場合を検出し処理する義務から解放さ れ、従って高速演算実行か可能となる。これらの全ての特別な場合は、計算の実 行が必要ないので)※めて高速て処理される。ざらに、上記の特別な演算マイク ロシーケンスは全ての命令に共通でおり得るので、多大なマイクロコード空間が 節約される。
例外を報告後、演算実行マイクロシーケンスと特別演算マイクロシーケンスとは 、マイクロマシン22に命令を出し、まだ実行ユニット26内の(図示しない) ワークレジスタにある結果を、選択された1例のオペランドレジスタ24に記憶 させる。次に、マイクロマシン22はイネーブルされ、適当な条件符号をセット し、報告された例外を、使用者用に、バスインタフェースユニット12内の(図 示しない)ステータスレジスタにログする。マルチプレクυ18か次にイネーブ ルされ、次の命令が実行のために受付けられるのであればその時に、AOマイク ロ番地を送出する。望ましい形態では、クロックも電力面杓のために停止され、 パスインタフェースユニット12は、次の命令か命令レジスタ14にロードされ ている時にのみクロックを再始動する。
命令クラスがレジスタからメモリへの処理を示せば、即ち先に計算された結果が メモリに記憶されるべき場合には、Al PLA20によって呼出されt=前込 理マイクロシーケンスは、先ず、マイクロマシン20に命令し、特定のソースオ ペランドを、いくつかのオペランドレジスタ24の内の1つから実行ユニット2 6にロードさせる。次に、前処理マイクロシーケンスは、ソースオペランドのタ グ処理のためタグ処理マイクロシーケンスを実行することをマイクロマシン22 に命じる。
ソースオペランドのタグ処理か完了すると、前処理マイクロシーケンスは、マイ クロマシン22に命令し、A3PLA36をイネーブルし、ソースオペランドを 内部データ形式から、命令で指示される外部データ形式に変換するのに適切なオ ペランド変換マイクロシーケンスのマイクロ番地を出力させる。続いて、前処理 マイクロシーケンスは、マイクロマシン22に命じてA3マイクロ番地をマルチ ブレクサ18から出力させた後に、他のルーチンに移る。
選択された外部データ形式に従って、オペランド変換マイクロシーケンスは、次 に、マイクロマシン22をイネーブルし、内部データ形式から、いくつかの外部 データ形式の内の選択された1つのものに変換するため、一連のオペランド処理 ステップにおいて実行ユニット26をアリ御させる。続いて、オペランド変換マ イクロシーケンスは、演筒中に検出した例外を報告することをマイクロマシン2 2に命令する。例外を報告した後に、オペランド変換マイクロシーケンスは、マ イクロマシン22に命じて、バスインタフェースユニット12と共同して、実行 ユニット26内の(図示しない)ワークレジスタにある結果を、(図示しない) 外部メモリの選択された番地に記憶させる。次に、マイクロマシン22はイネー ブルされ、過当な条件符号をセットし、報告された例外を、使用者用に、バスイ ンタフェースユニット12内の(図示しない)ステータスレジスタにログする。
続いて、マルチプレクサ18がイネーブルされ、次の命令が実行のために受付け られるならばその時に、AOマイクロ番地を送出する。望ましい形態では、クロ ックも電力節約のために停止され、バスインタフェースユニット12は、次の命 令が命令レジスタ14にロードされた時にのみ、クロックを再始動する。
バスインタフェースユニット12のステータスレジスタに送られた条件符号は、 4種類あり、m0Ve IIILlltiple命令を除いて、浮動小数点デー タレジスタに関連する全てのmove (移動)と算術命令の終了時点て、セッ トされ1qる。
条件符号は次の通りである。
N−i終結果が負(符号ビット)。
Z−最終結果がゼロ。
1−最終結果が無限大。
\AN−最終結果がNAN、又は浮動小数点数比較結果が順序不明(unord ered)。
4個の浮動小数点条件符号(FPCC)ビットは、演算の結果としてのデータタ イプによって以下のようにセット0000−!−正規化又は非正規化 100 0 −正規化又は非正規化 001 0 +無限大 101 0 −無限大 X0O1NAN データタイプはデータ形式と密接に関係しているので、条件符号は、以下の方法 のいずれかによって生成され得る。
IEEE標準の厳格に定義された基本形式(baSiCformat) (シン グル、又はダブル)の1つにおいて算術演算結果を生成する実例(implem entation)では、以下の表が、各形式に対する最小と最大の正規化数( 各々、” m i r+exp”と”’maxexp” )に従って、データタ イプを示す。
正規化m1neXp<=eXp<=maXeXp (1,)XX、、、XX非正 規化 m1nexp −1(0,)<ノンゼロ〉ゼ ロ m1nexp−1(0 ,)OO,、、OO無限大maxexp+1 (x、 )OO,、、OOn a  n maxexp+1 (X、)<ノンゼロ〉*:整数部ビットは、基本形式 では暗に示される。
IEEE標準の、ゆるやかな定義(本発明の望ましい定義)に従った拡張形式で の算術演算結果を生成する実例では、以下のようになる。
IEEE標準は、拡張精度に関して、データ形式を厳密には規定していないので 、以下に於ては、本発明のデータタイプ定義を説明するだけとする。
拡張形式は、明示した(explicit)整数部ビット(j)を用いるC該標 準は、拡張形式に於て、暗示した(implicit)又は明示した整数部ビッ トの使用を認める。更に、該標準は、ゼロ、!!限大、デノーマライズト、及び NA\データタイプに使用される確保した指数を恒めて大まかに定性している。
本則では、拡張形式用の確保された指数から選択した基本形式の規則に従う。し かし、これらの技((・jは、該標準に合致する全ての拡張精度に、容易に適用 可能である。
正 規 化 m1nexp<=exp<=maxeXp 1.XX、、、XX非 正規化 m1nexp O,<ノンゼロ〉ゼ ロ m1nexp O,OO,、 、OO無限大maXeXp+1 X、 OO,、,00n a n maXeX p+1X、 <ノンゼロ〉*:整数部ビットは、基本形式に於て、明示されてい る。
拡張した場合にFPCCを形成する方法。
浮動小数点仮数部(シグニフイカント)をビット列として定義する。
j、ffff、、、、 、ffff ここで、11 j 、 TIは、明示された整数部ビットであり、“’ffff 、、、、 、ffff”は、小数部である。
ハードウェア要素(ラッチ〉を以下のように定義する。
結果の符号−3IG\−F LAG 結果の整数部ビット(j)−\−0UT結果の全小数ヒツトの論理和−C−OU T(maXeXp+1)に等しい結果の指数= M A X E X PCOU I−及びM A X E X Pは共に、ハードウェア比較器又は内部AU条件 の出力となり得る。
以下の等式は、拡張形式の結果を生成する実例に於てFPCCを設定するために 必要な論理である。
N=SIGi\−FLAG z = not団AXEXEP)−not(COυT)−not[N 0UT) I=〜IAXEXP−not (C0UT)・\A、\=MAXEXP−C−O UTFPCCは、ノーマライズト数とデノーマライズド数を区別しない点に注目 されたい。この機能は、次の付加的なハードウェア要素を定義することで容易に 達成され1写る。
(minexp)L:等しい結果の指数−Ml\EXP更に、デノーマライズド 数のための付加的なFPCCピッドD”を定義する。こうすると、FPCCのD ビットは、次式で設定される。
D=MINEXP−C0UT−not(N 0UT)”D”FPCCビットは、 結果を基本形式で生成する実例に於て有用でおる。本発明は、結果を拡張形式で 生成するので、ここで定義する°′D゛ビットは、単に、拡張精度デノーマライ ズド数(まれにしか発生しない)を示すだけである。
既に述べたように、提案されたIEEEfi準は、以下の4つの関係を定義し、 これらの生成を、浮動小数点数比較演算の結果としてのみ規定している。本発明 の処理装置は、move multiple命令を除き、浮動小数点データレジ スタに関連する全てのmove及び算術演算命令の終了時に、これらの関係を生 成できる。
EQ 等しい GT より大きい UN 順序なしくアンオーダード) アンオーダードの関係(よ、浮動小数点数比較において、一方もしくは双方のオ ペランドか\A\である場合に発生する。
条件符号の設定か実行された演算に対して独立であることは重要でおる。即ち、 条件符号は生成された結果のデータタイプを示すにすぎない。該結果のデータタ イプから1EEE定義の関係を、この条件符号セットを用いて導き得ることが分 った。整数条件符号の設定が、「実行された演算」及びその結果に依存する点に おいて、これは従来のプロセッサと異なる。
上記の条1#符号は、以下の式を用いてIEEEの関係を生成するために使用さ れる。
EQ=Z GT7not(\十NAN+Z) LT=N−not (NAN十Z) UN=NAN (ここで、・は論理積でおり、士は論理和である。)結局、便利なことに、浮動 小数点数プロセッサでは、有意な条件組合せの各々に対してとられる(又は、識 別される)べき条件分岐、又はトラップを生じざぜるために、これらの条件符号 (及び関係)が使用される。本発明では、上記条件符号は、32個の属性を確定 又は否定するために使用される。以下の表に、それらの32個の属性を示す。
属性(CPRED)略号衣(以下の条件において、分岐、又は、トラップが発生 する。) ビット: 54321 00000 F False ooool EQ Equal o 0010 0GT 0rdered又はGreater Thano 00 11 0GE 0rdered又はGreater Than又はEqua 1 00100 0LT 0rdered又はしess Thano 0101 0 LE 0rdered又はLess Than又はEc+ua 1 00110 0GL 0rdered又はGreater又はLess Tha n 00111 0R0rdered 01000 UN Unorderedo 1001 UEQ Unorder ed又はEqUalo 1010 UGT Unordered又はGreat er Thano 1011 UGE Unordered又はGreater  Than又はEqual 01100 ULT Unordered又はLess Thano 1101  ULE Unordered又はLess Than又はEqual 01110 NEQ Not EqualollllT rrue 10000 SF Signalling Falsel 0001 SEQ  SiqnallingEquall 0010 GT Greater Tha nl 0011 GE Gl”eater Thall又はEqua 11 0  1 0 0 LT Less Thanlolol LE LessThan 又はEqua 110110 GL Greater又はLess 丁han1 0111 LEG Less Than、 Equal又はGl”eajer  Than 11000 NLEG Not(Less Than、 Equal又はGre ater Than) 11001 NGL 、Not(Greater Than又はLess Th an) 11010 NL、E Not Less Than又はEquall 101  1 NLT NoτLess Thanl 1100 NGE Not Gr eater Than又はEqua 111101 NGT IすOt Gre ater Thanl 1110 5NEQ Signalling Not  Equall 1111 ST Signalling True与えられたホ ストプロセッサ命令に対して、注目する属性がホストプロセッサによってバスイ ンタフェースユニット(12)にロードされると、第4図の論理は、該属性と浮 動小数点数条件符号(FPCC)とを組合せ、“’T/F。
(真、71m)”出力をホストに生成する。続いて、ホストプロセッサは、この 出力を使用して、頁であれば実行されるべき、又、偽であれば実行されてはなら ない条件分岐又はトラップを発生させる。
以下の表は、T/F信号を生成する第4図のBIU論理を示したものである。
CRI (0−5)=CPRED 二−モ 貞 条 件543210 ニックI Jn It gt eq 真のテスト000000 F 0 000001 EQ I Z o 0 0 0 1 0 0G丁 1 not(NAN+Z+N)000011  0GE 11 Z+not(NAN+N)oooioo 叶T I N、n0 t(NAN+Z)0 0 0 1 0 1 0LE 1 1 Z+N、not( NAN)000110 0GL 11 n、ot(NAN+Z)000111  0R111not(NAN)001000 IN I N’AN 001001 LIEQ 1 1 N’AN+Z0 0 1 0 1 0 UG 丁 1 1 NAN+not(N+Z)001011 UGE 1 1 1 N ’AN+Z=not(N)0 0 1 1 0 0 01丁 1 1 NAN+ H’N、not(Z)1001101 ULE 1 1 1 NAN+74N0 01110 NEQ 1 1 1 not(Z)001111 T 11111 010000 3F 0 010001 SEQ I Z o 10010 GT ’i not(NAN+Z+N)010011 GE  1 1 2・not (NAN−N )010100 LT I N、not( NAN+Z)01 0101 LE 1 1 Z+N、not(NAN)010 110 GL 1 1 not(MAN+7)010111 LEG 1 11  not(NAN)01 1 000 NLEG I NANo 1 1 0  0 1 NGL 1 1 NAN+Z01 1 010 NLE 1 1 NA N=not(N+Z)011011 NLT 1 1 1 NAN+2+not (N)011100 NGE 1 1 NAN+fN、not(Z)]0111 01 NGT 1 1 1 NAN+Z+N011110 5NEQ 1 1  1 not(Z)011111 ST 11111 −国際調査報告

Claims (9)

    【特許請求の範囲】
  1. 1.算術演算又は移動(movc)演算の結果として、浮動小数点条件符号を生 成するための方法に於て、該方法は、a.少なくとも、ゼロ(Zero)、負( Negative)、非数(NAN)、及び無限大(Infinity)の条件 符号を生成するステツブと、 b.等しい(EQ)、より大きい(GT)、より小さい(LT)、及び順位なし (UN)の関係を生成するため、前記条件符号を組合せるステップとを具備する 方法。
  2. 2.前記関係は、条件分岐又は条件トラップに使用される複数個の可能な属性を 確定又は否定するために使用される請求の範囲第1項に記載の方法。
  3. 3.EQ=Zである請求の範囲第1項に記載の方法。
  4. 4.GT=not(N+NaN+Z)である請求の範囲第1項に記載の方法。
  5. 5.LT=N・not(NaN+Z)である請求の範囲第1項に記載の方法。
  6. 6.UN=NANである請求の範囲第1項に記載の方法。
  7. 7.浮動小数点形式のデータに関して算術演算を行う数値データ処理装置におい て、 a.ゼロ(Zero)、負(negative)、非数(not a numb er)、及び無限大(infinity)を含む演算結果のデータタイプを表わ す条件符号を生成するための手段と、b.等しい、より大きい、より小さい、及 び順位なしを含む比較結果を生成するため、前記条件符号を組合せるための手段 とを具備する装置。
  8. 8.更に、 a.浮動小数点演算の比較結果を要求する第2のデータ処理装置からの命令を受 けるための手段と、b.前記第2の処理装置からの条件信号と、前記条件符号と に応動し、前記第2の処理装置による使用のための条件応答を生成するための手 段とを含み、前記条件応答は、前記条件信号の関数としての比較結果の真/偽表 示である請求の範囲第7項に記載の数値データ処理装置。
  9. 9.前記条件符号を結合するための手段は、更に、条件信号を受信するための手 段を含み、確定又は否定比較結果を生成する請求の範囲第7項に記載の数値デー タ処理装置。
JP59504065A 1984-01-03 1984-11-05 浮動小数点条件符号生成方式 Expired - Lifetime JPH0789314B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56783084A 1984-01-03 1984-01-03
US567830 1984-01-03
PCT/US1984/001793 WO1985003148A1 (en) 1984-01-03 1984-11-05 Floating point condition code generation

Publications (2)

Publication Number Publication Date
JPS61500990A true JPS61500990A (ja) 1986-05-15
JPH0789314B2 JPH0789314B2 (ja) 1995-09-27

Family

ID=24268816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59504065A Expired - Lifetime JPH0789314B2 (ja) 1984-01-03 1984-11-05 浮動小数点条件符号生成方式

Country Status (6)

Country Link
EP (1) EP0168406B1 (ja)
JP (1) JPH0789314B2 (ja)
KR (2) KR910006142B1 (ja)
DE (1) DE3484512D1 (ja)
IT (1) IT1219413B (ja)
WO (1) WO1985003148A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847802A (en) * 1986-06-12 1989-07-11 Advanced Micro Devices, Inc. Method and apparatus for identifying the precision of an operand in a multiprecision floating-point processor
US4914581A (en) * 1987-10-26 1990-04-03 Motorola, Inc. Method and apparatus for explicitly evaluating conditions in a data processor
US6009511A (en) * 1997-06-11 1999-12-28 Advanced Micro Devices, Inc. Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US5978901A (en) * 1997-08-21 1999-11-02 Advanced Micro Devices, Inc. Floating point and multimedia unit with data type reclassification capability
US6105129A (en) * 1998-02-18 2000-08-15 Advanced Micro Devices, Inc. Converting register data from a first format type to a second format type if a second type instruction consumes data produced by a first type instruction

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2965297A (en) * 1957-08-08 1960-12-20 Burroughs Corp Floating point arithmetic comparison circuit
US3434109A (en) * 1966-06-01 1969-03-18 Cutler Hammer Inc Multifield comparator adjustable to compare any combinations of fields and to provide selectable bases of comparison
US3825895A (en) * 1973-05-14 1974-07-23 Amdahl Corp Operand comparator
JPS5943781B2 (ja) * 1977-08-26 1984-10-24 株式会社日立製作所 ステイタス作成回路
JPS6049937B2 (ja) * 1977-10-12 1985-11-06 日本電気株式会社 マイクロプログラム制御のデ−タ処理装置
US4429370A (en) * 1981-04-23 1984-01-31 Data General Corporation Arithmetic unit for use in a data processing system for computing exponent results and detecting overflow and underflow conditions thereof
JPS5979350A (ja) * 1982-10-29 1984-05-08 Toshiba Corp 浮動小数点演算装置

Also Published As

Publication number Publication date
EP0168406A1 (en) 1986-01-22
KR910006142B1 (ko) 1991-08-16
JPH0789314B2 (ja) 1995-09-27
WO1985003148A1 (en) 1985-07-18
KR850700163A (ko) 1985-10-25
IT1219413B (it) 1990-05-11
EP0168406B1 (en) 1991-04-24
IT8449370A0 (it) 1984-12-28
DE3484512D1 (de) 1991-05-29
EP0168406A4 (en) 1988-05-10

Similar Documents

Publication Publication Date Title
US20230342112A1 (en) Decimal floating-point round-for-reround instruction
KR102447636B1 (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
Schorr Computer-aided digital system design and analysis using a register transfer language
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
TWI506539B (zh) 十進位浮點資料邏輯提取的方法與設備
TWI526928B (zh) 向量浮點引數之減少
US4539635A (en) Pipelined digital processor arranged for conditional operation
JP2003029627A (ja) Rsa符号化方法
CN107851007B (zh) 宽数据类型的比较的方法和装置
CN109992459B (zh) 数据转换方法、装置、设备及存储介质
CN111143038A (zh) Risc-v架构微处理器内核信息模型建模及生成方法
JPH0863367A (ja) テストベクトルを発生する方法およびテストベクトル発生システム
JPS61500990A (ja) 浮動小数点条件符号生成方式
KR102228995B1 (ko) 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
CN113469284B (zh) 一种数据分析的方法、装置及存储介质
US4683546A (en) Floating point condition code generation
US20230214351A1 (en) Reconfigurable simd engine
US11604646B2 (en) Processor comprising a double multiplication and double addition operator actuable by an instruction with three operand references
US11487506B2 (en) Condition code anticipator for hexadecimal floating point
JP3137636B2 (ja) データ処理装置
JP3522387B2 (ja) パイプライン演算装置
JP2624738B2 (ja) 丸め処理方式
JPH08234986A (ja) 効率的なファジー論理操作を行なうためのデータ処理システムおよびその方法
KR920002660B1 (ko) 블럭모드 인스트럭션 수행장치 및 방법
JPH0553759A (ja) 固定小数点演算ユニツト

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term