JPH0789314B2 - 浮動小数点条件符号生成方式 - Google Patents
浮動小数点条件符号生成方式Info
- Publication number
- JPH0789314B2 JPH0789314B2 JP59504065A JP50406584A JPH0789314B2 JP H0789314 B2 JPH0789314 B2 JP H0789314B2 JP 59504065 A JP59504065 A JP 59504065A JP 50406584 A JP50406584 A JP 50406584A JP H0789314 B2 JPH0789314 B2 JP H0789314B2
- Authority
- JP
- Japan
- Prior art keywords
- floating point
- operand
- zero
- result
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied 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)
Description
【発明の詳細な説明】 技術分野 本発明は数値データ処理装置に関し、特に、定義された
浮動小数点演算の結果として、ある条件符号(conditio
ncode)を数値データ処理装置内で生成することに関す
る。
浮動小数点演算の結果として、ある条件符号(conditio
ncode)を数値データ処理装置内で生成することに関す
る。
本出願は、米国に於て、特許出願第567,830号として、1
984年1月3日に提出されている。
984年1月3日に提出されている。
背景技術 整数2の補数の演算では、全ての表示可能なビットパタ
ーンが数値を表わす。浮動小数点(実)数システム形式
に関して提案されたIEEE標準は、数個の数値型を定義し
ている。即ち、 1.正規化された数(Normalized number) 2.ゼロ 3.無限大 4.非正規化数(Denormalized number) 5.非数(NaN) 説明の目的上、非正規化数は、極めて小さい正規化され
た数と同様に扱い得る。
ーンが数値を表わす。浮動小数点(実)数システム形式
に関して提案されたIEEE標準は、数個の数値型を定義し
ている。即ち、 1.正規化された数(Normalized number) 2.ゼロ 3.無限大 4.非正規化数(Denormalized number) 5.非数(NaN) 説明の目的上、非正規化数は、極めて小さい正規化され
た数と同様に扱い得る。
IEEE提案の、浮動小数点数に関する現時点での標準は、
とりわけ、以下の点を必要条件としている。「たとえオ
ペランドの形式が異なっていても、提供される全形式の
浮動小数点数を比較し得ること。........互いに排他的
な、4つの関係、より小さい(less than)、等しい(e
qual)、より大きい(greater than)、及び順位なし
(unordered)の演算が可能なこと。最後の関係は、少
なくとも1個のオペランドがNaNである時に生じる。全
てのNaNは、自身を含めて、他の全てと、“順位なし”
で比較されること。比較は、ゼロの符号を無視すること
(即ち、+0=−0)。」 周知の浮動小数点条件符号生成方式では、複雑な論理を
用いて、2個のオペランド間の大きさの関係から、上記
の関係を直接生成している。このためには、極めて多大
な論理演算と回路が必要である。
とりわけ、以下の点を必要条件としている。「たとえオ
ペランドの形式が異なっていても、提供される全形式の
浮動小数点数を比較し得ること。........互いに排他的
な、4つの関係、より小さい(less than)、等しい(e
qual)、より大きい(greater than)、及び順位なし
(unordered)の演算が可能なこと。最後の関係は、少
なくとも1個のオペランドがNaNである時に生じる。全
てのNaNは、自身を含めて、他の全てと、“順位なし”
で比較されること。比較は、ゼロの符号を無視すること
(即ち、+0=−0)。」 周知の浮動小数点条件符号生成方式では、複雑な論理を
用いて、2個のオペランド間の大きさの関係から、上記
の関係を直接生成している。このためには、極めて多大
な論理演算と回路が必要である。
発明の要約 従って、本発明の目的は、上記の4つの関係を検査する
ために使用可能な浮動小数点条件符号の改良型生成方法
を提供することである。
ために使用可能な浮動小数点条件符号の改良型生成方法
を提供することである。
本発明のこの目的は、2個のオペランド間の大小関係で
なく、結果としてのオペランドのデータタイプを用いて
浮動小数点条件符号を生成するための方法を提供するこ
とによって達成される。
なく、結果としてのオペランドのデータタイプを用いて
浮動小数点条件符号を生成するための方法を提供するこ
とによって達成される。
図面の簡単な説明 第1図は、本発明を使用したデータ処理装置のブロック
図である。
図である。
第2図は、第1図のデータ処理装置の命令処理シーケン
スを示す流れ図である。
スを示す流れ図である。
第3図は、第2図の命令処理シーケンスにおける、オペ
ランドタグシーケンスの詳細流れ図である。
ランドタグシーケンスの詳細流れ図である。
第4図は、本発明による、ある条件符号生成に使用可能
な論理を示す論理図である。
な論理を示す論理図である。
発明の説明 第1図は、本発明の好ましい実施例に従って構成された
データ処理装置10を示す。処理装置10は数種類の異なっ
た形式の命令を実行できるが、本発明は主として、任意
の複数個のデータ形式を有し得るオペランドに関して実
行される任意の複数個の異なった数値演算を指定する命
令を目的としている。本発明の目的のためには、このよ
うな数値演算は、単項(正弦、逆正接、平方根等)又
は、2項(加算、乗算等)の演算でよい。一方、データ
形式は、異なる長さ(バイト、語、長語等)でよい。こ
のような処理装置は、異なる型(整数、BCD、浮動小数
点等)のデータの演算が可能であるが、浮動小数点演算
に重点が置かれている。処理装置10は、バスインタフェ
ースユニット12、命令レジスタ14を備えている。該バス
インタフェースユニット12は、米国特許第4,348,722号
に記載されているようなバス制御装置でもよいが、望ま
しい実施例は、1983年4月18日に提出され本発明の譲受
人に譲渡された、ゾルノフスキー他の同時係属出願(第
485,672号)に表示および記載されたようなコプロセッ
サ(coprocessor)インタフェースの形をしている。命
令レジスタ14は、処理装置10によって実行されるべき各
命令をバスインタフェースユニット12から受けてロード
するものである。また、処理装置10は、PLA16,20,36,3
4、次マイクロアドレスマルチプレクサ18、マイクロマ
シン22、オペランドレジスタ24、実行ユニット26、ソー
スオペランドタグ(STAG)レジスタ28、デスティネーシ
ョンオペランドタグ(DTAG)レジスタ30、およびデコー
ダ32を備えている。
データ処理装置10を示す。処理装置10は数種類の異なっ
た形式の命令を実行できるが、本発明は主として、任意
の複数個のデータ形式を有し得るオペランドに関して実
行される任意の複数個の異なった数値演算を指定する命
令を目的としている。本発明の目的のためには、このよ
うな数値演算は、単項(正弦、逆正接、平方根等)又
は、2項(加算、乗算等)の演算でよい。一方、データ
形式は、異なる長さ(バイト、語、長語等)でよい。こ
のような処理装置は、異なる型(整数、BCD、浮動小数
点等)のデータの演算が可能であるが、浮動小数点演算
に重点が置かれている。処理装置10は、バスインタフェ
ースユニット12、命令レジスタ14を備えている。該バス
インタフェースユニット12は、米国特許第4,348,722号
に記載されているようなバス制御装置でもよいが、望ま
しい実施例は、1983年4月18日に提出され本発明の譲受
人に譲渡された、ゾルノフスキー他の同時係属出願(第
485,672号)に表示および記載されたようなコプロセッ
サ(coprocessor)インタフェースの形をしている。命
令レジスタ14は、処理装置10によって実行されるべき各
命令をバスインタフェースユニット12から受けてロード
するものである。また、処理装置10は、PLA16,20,36,3
4、次マイクロアドレスマルチプレクサ18、マイクロマ
シン22、オペランドレジスタ24、実行ユニット26、ソー
スオペランドタグ(STAG)レジスタ28、デスティネーシ
ョンオペランドタグ(DTAG)レジスタ30、およびデコー
ダ32を備えている。
次マイクロアドレスマルチプレクサ18は、マイクロマシ
ン22に送出するための次のマイクロアドレスを生成する
のである。マイクロマシン22は、入力された命令にもと
づき、オペランドレジスタ24、実行ユニット26、デコー
ダ32等に指令を与えるものである。実行ユニット26は、
マイクロマシン22の制御により例えばワークレジスタ内
のオペランドの指数をバイアスし直す一連の短い処理等
を実行するものである。デコーダ32はマイクロマシン22
からソースタグインクリメント(INST)信号およびデス
ティネーションタグインクリント(INDT)信号を受けソ
ースオペランドタグ(STAG)レジスタ28およびデスティ
ネーションオペランドタグ(DTAG)レジスタ30のクリア
その他の制御を行なうものである。動作において、処理
装置10は、一般に第2図の流れ図に従って命令を実行す
る。
ン22に送出するための次のマイクロアドレスを生成する
のである。マイクロマシン22は、入力された命令にもと
づき、オペランドレジスタ24、実行ユニット26、デコー
ダ32等に指令を与えるものである。実行ユニット26は、
マイクロマシン22の制御により例えばワークレジスタ内
のオペランドの指数をバイアスし直す一連の短い処理等
を実行するものである。デコーダ32はマイクロマシン22
からソースタグインクリメント(INST)信号およびデス
ティネーションタグインクリント(INDT)信号を受けソ
ースオペランドタグ(STAG)レジスタ28およびデスティ
ネーションオペランドタグ(DTAG)レジスタ30のクリア
その他の制御を行なうものである。動作において、処理
装置10は、一般に第2図の流れ図に従って命令を実行す
る。
初めに、バスインタフェースユニット12は、処理装置10
によって実行されるべき各命令を命令レジスタ14にロー
ドする。いずれの形態においても、バスインタフェース
ユニット12は、実行開始マイクロシーケンスのマイクロ
番地を、次マイクロ番地マルチプレクサ18に出力するた
め、AOプログラマブルロジックアレー(PLA)16をイネ
ーブルすることによって、命令の実行を開始する。同時
にA1 PLA20は、命令の特定動作クラス(OP)(即ち、メ
モリからレジスタへ、レジスタからレジスタへ、又は、
レジスタからメモリへ)に適した前処理マイクロシーケ
ンス用のマイクロ番地と、更に、必要であれば、ソース
オペランドRXのデータ形式を選択する。
によって実行されるべき各命令を命令レジスタ14にロー
ドする。いずれの形態においても、バスインタフェース
ユニット12は、実行開始マイクロシーケンスのマイクロ
番地を、次マイクロ番地マルチプレクサ18に出力するた
め、AOプログラマブルロジックアレー(PLA)16をイネ
ーブルすることによって、命令の実行を開始する。同時
にA1 PLA20は、命令の特定動作クラス(OP)(即ち、メ
モリからレジスタへ、レジスタからレジスタへ、又は、
レジスタからメモリへ)に適した前処理マイクロシーケ
ンス用のマイクロ番地と、更に、必要であれば、ソース
オペランドRXのデータ形式を選択する。
マイクロマシン22が当初アイドル状態と仮定すると、マ
ルチプレクサ18は、AOマイクロ番地をマイクロマシン22
に直ちに送出するため、イネーブルされる。望ましい形
態では、実行開始マイクロシーケンスは、A1マイクロ番
地をマイクロマシン22に送出するためにマルチプレクサ
18をイネーブルする前に、A1 PLA20が処理を完了するた
めの時間、マイクロマシン22の動作を遅延させる。
ルチプレクサ18は、AOマイクロ番地をマイクロマシン22
に直ちに送出するため、イネーブルされる。望ましい形
態では、実行開始マイクロシーケンスは、A1マイクロ番
地をマイクロマシン22に送出するためにマルチプレクサ
18をイネーブルする前に、A1 PLA20が処理を完了するた
めの時間、マイクロマシン22の動作を遅延させる。
例えば、命令のクラスがメモリからレジスタへの処理を
示していれば、A1 PLA20によって呼出された前処理マイ
クロシーケンスは、先ずマイクロマシン22に命令を出
し、バスインタフェースユニット12と共同で、ソースオ
ペランドを、いくつかのオペランドレジスタ24の1個に
ロードさせる。次に、前処理マイクロシーケンスは、マ
イクロマシン22をイネーブルし、元のソースオペランド
を内部データ形式に変換するため、一連のオペランド処
理ステップにおいて、実行ユニット26を制御させる。こ
の変換されたオペランドは、望ましくは、実行ユニット
26内の(図示されない)ワークレジスタに保持される。
示していれば、A1 PLA20によって呼出された前処理マイ
クロシーケンスは、先ずマイクロマシン22に命令を出
し、バスインタフェースユニット12と共同で、ソースオ
ペランドを、いくつかのオペランドレジスタ24の1個に
ロードさせる。次に、前処理マイクロシーケンスは、マ
イクロマシン22をイネーブルし、元のソースオペランド
を内部データ形式に変換するため、一連のオペランド処
理ステップにおいて、実行ユニット26を制御させる。こ
の変換されたオペランドは、望ましくは、実行ユニット
26内の(図示されない)ワークレジスタに保持される。
好ましい形態では、特定内部データ形式は、利用可能な
全てのデータ形式の「超集合(superset)」であるよう
に留意して選択される。例えば、オペランドは、長さ1
バイト、1語、1長語の整数として、パックされた2進
化10進数(BCD)形式の基数に10を有する浮動小数点と
して、又は単精度、倍精度、又は拡張精度の基数2の浮
動小数点数として表わされ得ると仮定する。基数10の浮
動小数点数から基数2の浮動小数点数への変換に於て必
ず発生する誤差のような、いくらかの特別な場合を除い
て、上記の種々の形式の全てのオペランドは数値範囲又
は精度を減少させずに、基数2の拡張精度浮動小数点形
式に変換し得る。同様に、ある所望の数値演算が実行さ
れると、オペランドが全く変換されなかった場合に可能
な、数値範囲及び精度を保持して、該演算の結果を、上
記形式のいずれにも、変換し直すことが可能である。こ
の例では、基数2の拡張精度浮動小数点形式は、所望の
「超集合」であり、かつ、望ましい内部データ形式であ
る。
全てのデータ形式の「超集合(superset)」であるよう
に留意して選択される。例えば、オペランドは、長さ1
バイト、1語、1長語の整数として、パックされた2進
化10進数(BCD)形式の基数に10を有する浮動小数点と
して、又は単精度、倍精度、又は拡張精度の基数2の浮
動小数点数として表わされ得ると仮定する。基数10の浮
動小数点数から基数2の浮動小数点数への変換に於て必
ず発生する誤差のような、いくらかの特別な場合を除い
て、上記の種々の形式の全てのオペランドは数値範囲又
は精度を減少させずに、基数2の拡張精度浮動小数点形
式に変換し得る。同様に、ある所望の数値演算が実行さ
れると、オペランドが全く変換されなかった場合に可能
な、数値範囲及び精度を保持して、該演算の結果を、上
記形式のいずれにも、変換し直すことが可能である。こ
の例では、基数2の拡張精度浮動小数点形式は、所望の
「超集合」であり、かつ、望ましい内部データ形式であ
る。
メモリからロードされたオペランドが、既に、基数2の
拡張精度浮動小数点形式であれば、上記のような形式変
換は不要である。しかし、外部で使用される指数形式
は、典型的には、16進数値$3FFFでバイアスされてい
て、一方、実行ユニット26で使用される好ましい形式
は、2の補数の取扱いを容易にするため、−1でバイア
スされている。従って、望ましい形式の前処理マイクロ
シーケンスは、マイクロマシン22に命令し、ワークレジ
スタ内のオペランドの指数をバイアスし直す一連の短い
処理を実行ユニット26に実行させる。同様に、命令のク
ラスがレジスタからレジスタへの処理を示しておれば、
前処理マイクロシーケンスは、単にマイクロマシン22に
命令し、適当な1個のオペランドレジスタ24から実行ユ
ニット26へオペランドをロードさせ、更に、実行ユニッ
ト26に指数をバイアスし直すシーケンスを実行させる。
拡張精度浮動小数点形式であれば、上記のような形式変
換は不要である。しかし、外部で使用される指数形式
は、典型的には、16進数値$3FFFでバイアスされてい
て、一方、実行ユニット26で使用される好ましい形式
は、2の補数の取扱いを容易にするため、−1でバイア
スされている。従って、望ましい形式の前処理マイクロ
シーケンスは、マイクロマシン22に命令し、ワークレジ
スタ内のオペランドの指数をバイアスし直す一連の短い
処理を実行ユニット26に実行させる。同様に、命令のク
ラスがレジスタからレジスタへの処理を示しておれば、
前処理マイクロシーケンスは、単にマイクロマシン22に
命令し、適当な1個のオペランドレジスタ24から実行ユ
ニット26へオペランドをロードさせ、更に、実行ユニッ
ト26に指数をバイアスし直すシーケンスを実行させる。
オペランド形式の変換、又は指数のバイアスし直しが完
了すると、前処理マイクロシーケンスは、結果としての
オペランドをデータタイプに関して「タグ処理」するた
めにマイクロマシン22に命令する。本発明の目的のため
には、オペランドは、4個のデータタイプのいずれでも
よい。即ち、正規化されたタイプ(NORM)、ゼロ(ZER
O)、無限大(INF)、又は「非数(not-a-number)」
(NAN)である。拡張精度浮動小数点オペランドに関し
ては、正規化データタイプは、「正規化されたタイ
プ」、即ち、指数が可能な最小指数以上で最大可能指数
未満であって、ゼロでない仮数部(significand)は最
上位ビット(MSB)に1を有している場合と、「デノー
マライズドタイプ」、即ち、最小指数を有し、ゼロでな
い仮数部はMSBに0を有する場合と、「アンノーマライ
ズドタイプ」、即ち、指数が最小値より大きく、最大値
未満であって、ゼロでない仮数部がMSBに0を有する場
合とを含む。他方、ZEROデータタイプは、指数は最小値
で、仮数部はオールゼロである。一方、INFデータタイ
プでは、指数は最大値で、少数部はオールゼロである。
最後に、NANデータタイプに於ては、指数は最大値であ
り、少数部はゼロではない。
了すると、前処理マイクロシーケンスは、結果としての
オペランドをデータタイプに関して「タグ処理」するた
めにマイクロマシン22に命令する。本発明の目的のため
には、オペランドは、4個のデータタイプのいずれでも
よい。即ち、正規化されたタイプ(NORM)、ゼロ(ZER
O)、無限大(INF)、又は「非数(not-a-number)」
(NAN)である。拡張精度浮動小数点オペランドに関し
ては、正規化データタイプは、「正規化されたタイ
プ」、即ち、指数が可能な最小指数以上で最大可能指数
未満であって、ゼロでない仮数部(significand)は最
上位ビット(MSB)に1を有している場合と、「デノー
マライズドタイプ」、即ち、最小指数を有し、ゼロでな
い仮数部はMSBに0を有する場合と、「アンノーマライ
ズドタイプ」、即ち、指数が最小値より大きく、最大値
未満であって、ゼロでない仮数部がMSBに0を有する場
合とを含む。他方、ZEROデータタイプは、指数は最小値
で、仮数部はオールゼロである。一方、INFデータタイ
プでは、指数は最大値で、少数部はオールゼロである。
最後に、NANデータタイプに於ては、指数は最大値であ
り、少数部はゼロではない。
第3図に示すように、前処理マイクロシーケンスのタグ
処理部は、先ずマイクロマシン22をイネーブルし、同時
に“ソースタグインクリメント”(INST)信号と“デス
ティネーションタグインクリメント”(INDT)信号とを
デコーダ32に与えることによって、ソースオペランドタ
グ(STAG)レジスタ28とデスティネーションオペランド
タグ(DTAG)レジスタ30をクリアする。タグ処理マイク
ロシーケンスは、続いて、マイクロマシン22に命令し、
実行ユニット26にオペランドの指数と、最大可能指数と
を比較させる。実行ユニット26が“等しくない”ことを
示せば、次に、マイクロマシン22に命令が出され、実行
ユニット26がオペランドの仮数部がオールゼロかどうか
の決定を行う。このテストを行う1つの便利な方法は、
仮数部の補数をとり、1を加算して繰上り(carry ou
t)が発生するかをみることである。実行ユニット26が
“繰上りなし”を示せば、オペランドの仮数部はゼロで
なく、タグ処理マイクロシーケンスは、オペランドが正
規化された形式であることを正しく決定して、STAG28に
値“0"を残して、他のルーチンに移る。他方、実行ユニ
ット26が“繰上りあり”を示せば、仮数部はゼロにちが
いないし、タグ処理マイクロシーケンスはマイクロマシ
ン22をイネーブルし、INSTをデコーダ32に送出すること
によってSTAG28をインクリメントさせ、STAG28に値“1"
を残して、他のルーチンに移るようにする。
処理部は、先ずマイクロマシン22をイネーブルし、同時
に“ソースタグインクリメント”(INST)信号と“デス
ティネーションタグインクリメント”(INDT)信号とを
デコーダ32に与えることによって、ソースオペランドタ
グ(STAG)レジスタ28とデスティネーションオペランド
タグ(DTAG)レジスタ30をクリアする。タグ処理マイク
ロシーケンスは、続いて、マイクロマシン22に命令し、
実行ユニット26にオペランドの指数と、最大可能指数と
を比較させる。実行ユニット26が“等しくない”ことを
示せば、次に、マイクロマシン22に命令が出され、実行
ユニット26がオペランドの仮数部がオールゼロかどうか
の決定を行う。このテストを行う1つの便利な方法は、
仮数部の補数をとり、1を加算して繰上り(carry ou
t)が発生するかをみることである。実行ユニット26が
“繰上りなし”を示せば、オペランドの仮数部はゼロで
なく、タグ処理マイクロシーケンスは、オペランドが正
規化された形式であることを正しく決定して、STAG28に
値“0"を残して、他のルーチンに移る。他方、実行ユニ
ット26が“繰上りあり”を示せば、仮数部はゼロにちが
いないし、タグ処理マイクロシーケンスはマイクロマシ
ン22をイネーブルし、INSTをデコーダ32に送出すること
によってSTAG28をインクリメントさせ、STAG28に値“1"
を残して、他のルーチンに移るようにする。
実行ユニット26が、オペランドの指数が最大指数に“等
しい”ことを示せば、タグ処理マイクロシーケンスはマ
イクロマシン22をイネーブルし、INSTをデコーダ32に2
度送出することによってSTAG28の内容に2を加算させ
る。続いて、マイクロマシン22は、仮数部の少数部がオ
ールゼロか否かを決定するため、実行ユニット26をイネ
ーブルするよう命令を受ける。上記のように、実行ユニ
ット26が“繰上げあり”を示せば、少数部はゼロでなく
てはならないし、タグ処理マイクロシーケンスは、オペ
ランドが無限大であることを決定して、STAG28に値“2"
を残して、他のルーチンに移ることができる。他方、実
行ユニット26が“繰上げなし”を示せば、少数部はゼロ
のはずはなく、タグ処理マイクロシーケンスは、マイク
ロマシン22をイネーブルし、INSTをデコーダ32に1度送
出することでSTAG28をインクリメントさせ、STAG28に値
“3"を残して他のルーチンに移るようにさせる。
しい”ことを示せば、タグ処理マイクロシーケンスはマ
イクロマシン22をイネーブルし、INSTをデコーダ32に2
度送出することによってSTAG28の内容に2を加算させ
る。続いて、マイクロマシン22は、仮数部の少数部がオ
ールゼロか否かを決定するため、実行ユニット26をイネ
ーブルするよう命令を受ける。上記のように、実行ユニ
ット26が“繰上げあり”を示せば、少数部はゼロでなく
てはならないし、タグ処理マイクロシーケンスは、オペ
ランドが無限大であることを決定して、STAG28に値“2"
を残して、他のルーチンに移ることができる。他方、実
行ユニット26が“繰上げなし”を示せば、少数部はゼロ
のはずはなく、タグ処理マイクロシーケンスは、マイク
ロマシン22をイネーブルし、INSTをデコーダ32に1度送
出することでSTAG28をインクリメントさせ、STAG28に値
“3"を残して他のルーチンに移るようにさせる。
ソースオペランドのタグ処理が終了すると、前処理マイ
クロシーケンスは、適当なオペランドレジスタ24から実
行ユニット26内の(図示しない)ワークレジスタにデス
ティネーションオペランド(選択されたオペランドが2
項形式でない場合には無意味なこともあり得る)をロー
ドするため、マイクロマシン22をイネーブルする。前処
理マイクロシーケンスは、デスティネーションオペラン
ドのタグ処理のために、タグ処理マイクロシーケンスを
再び実行する。しかし、この時には、タグ処理マイクロ
シーケンスは、STAG28とDTAG30をクリアするためにマイ
クロマシン22をイネーブルしないで、単に、デスティネ
ーションオペランドのデータタイプの分析に進む。タグ
処理マイクロシーケンスの終りに於て、DTAG30内の値
は、上記の適切な符号を反映する。
クロシーケンスは、適当なオペランドレジスタ24から実
行ユニット26内の(図示しない)ワークレジスタにデス
ティネーションオペランド(選択されたオペランドが2
項形式でない場合には無意味なこともあり得る)をロー
ドするため、マイクロマシン22をイネーブルする。前処
理マイクロシーケンスは、デスティネーションオペラン
ドのタグ処理のために、タグ処理マイクロシーケンスを
再び実行する。しかし、この時には、タグ処理マイクロ
シーケンスは、STAG28とDTAG30をクリアするためにマイ
クロマシン22をイネーブルしないで、単に、デスティネ
ーションオペランドのデータタイプの分析に進む。タグ
処理マイクロシーケンスの終りに於て、DTAG30内の値
は、上記の適切な符号を反映する。
デスティネーションオペランドのタグ処理が完了する
と、必要であれば、前処理マイクロシーケンスは、マイ
クロマシン22に命令を出し、A2 PLA34が、命令レジスタ
14の拡張(EX)部分で示される特定数値演算に適した演
算実行マイクロシーケンスのマイクロ番地を提供できる
ようにさせる。次に、前処理マイクロシーケンスは、マ
イクロマシン22に、マルチプレクサ18をイネーブルして
A2マイクロ番地を送出させるよう命令を与える。
と、必要であれば、前処理マイクロシーケンスは、マイ
クロマシン22に命令を出し、A2 PLA34が、命令レジスタ
14の拡張(EX)部分で示される特定数値演算に適した演
算実行マイクロシーケンスのマイクロ番地を提供できる
ようにさせる。次に、前処理マイクロシーケンスは、マ
イクロマシン22に、マルチプレクサ18をイネーブルして
A2マイクロ番地を送出させるよう命令を与える。
多くの場合、オペランドが特別なデータタイプ(即ち、
ゼロ、無限大、又はNAN)であるときには、ある特定の
数値演算の結果は、デフォールト値(即ち、+ゼロ、−
無限大等)になる。ゼロ除算、無限大の乗算、又は、NA
Nであるオペランドのような特別な場合を、できるだけ
早期に検出するため、A2 PLAによって選択された演算実
行マイクロシーケンスも、STAG28とDTAG30内のタグ情報
に依存する。先ず、オペランドが正規化された形式であ
るとしてタグ付けされたと仮定すると、A2 PLAは、実際
の演算実行マイクロシーケンスのマイクロ番地を出力す
る。選択された数値演算に従って、演算実行マイクロシ
ーケンスは、演算を実施する適当な一連のステップにお
いて実行ユニット26を制御するため、マイクロマシン22
をイネーブルする。続いて、演算実行マイクロシーケン
スは、マイクロマシン22に命令し演算中の全ての例外を
報告させる。望ましい形態では、このような例外は、オ
ーバーフロー、アンダフロー、不正確(丸めの結果)、
ゼロ除算、及び不正演算を含む。
ゼロ、無限大、又はNAN)であるときには、ある特定の
数値演算の結果は、デフォールト値(即ち、+ゼロ、−
無限大等)になる。ゼロ除算、無限大の乗算、又は、NA
Nであるオペランドのような特別な場合を、できるだけ
早期に検出するため、A2 PLAによって選択された演算実
行マイクロシーケンスも、STAG28とDTAG30内のタグ情報
に依存する。先ず、オペランドが正規化された形式であ
るとしてタグ付けされたと仮定すると、A2 PLAは、実際
の演算実行マイクロシーケンスのマイクロ番地を出力す
る。選択された数値演算に従って、演算実行マイクロシ
ーケンスは、演算を実施する適当な一連のステップにお
いて実行ユニット26を制御するため、マイクロマシン22
をイネーブルする。続いて、演算実行マイクロシーケン
スは、マイクロマシン22に命令し演算中の全ての例外を
報告させる。望ましい形態では、このような例外は、オ
ーバーフロー、アンダフロー、不正確(丸めの結果)、
ゼロ除算、及び不正演算を含む。
これに対して、オペランドが特別なデータタイプ(即
ち、ゼロ、無限大、又は、NAN)としてタグ付けされて
いると仮定する。この場合、A2 PLAは、特別な演算マイ
クロシーケンスのマイクロ番地を提供する。該シーケン
スは、適当であれば、マイクロマシン22に命令し、対応
する例外があればそれを報告する前に、デフォールト結
果をデスティネーションオペランドレジスタ24にロード
させる。本発明のこの点から、3つの極めて重要な利益
が実現される。すなわち、演算実行マイクロシーケンス
は、特別な場合を検出し処理する義務から解放され、従
って高速演算実行が可能となる。これらの全ての特別な
場合は、計算の実行が必要ないので極めて高速で処理さ
れる。さらに、上記の特別な演算マイクロシーケンスは
全ての命令に共通であり得るので、多大なマイクロコー
ド空間が節約される。
ち、ゼロ、無限大、又は、NAN)としてタグ付けされて
いると仮定する。この場合、A2 PLAは、特別な演算マイ
クロシーケンスのマイクロ番地を提供する。該シーケン
スは、適当であれば、マイクロマシン22に命令し、対応
する例外があればそれを報告する前に、デフォールト結
果をデスティネーションオペランドレジスタ24にロード
させる。本発明のこの点から、3つの極めて重要な利益
が実現される。すなわち、演算実行マイクロシーケンス
は、特別な場合を検出し処理する義務から解放され、従
って高速演算実行が可能となる。これらの全ての特別な
場合は、計算の実行が必要ないので極めて高速で処理さ
れる。さらに、上記の特別な演算マイクロシーケンスは
全ての命令に共通であり得るので、多大なマイクロコー
ド空間が節約される。
例外を報告後、演算実行マイクロシーケンスと特別演算
マイクロシーケンスとは、マイクロマシン22に命令を出
し、まだ実行ユニット26内の(図示しない)ワークレジ
スタにある結果を、選択された1個のオペランドレジス
タ24に記憶させる。次に、マイクロマシン22はイネーブ
ルされ、適当な条件符号をセットし、報告された例外
を、使用者用に、バスインタフェースユニット12内の
(図示しない)ステータスレジスタにログする。マルチ
プレクサ18が次にイネーブルされ、次の命令が実行のた
めに受付けられるのであればその時に、AOマイクロ番地
を送出する。望ましい形態では、クロックも電力節約の
ために停止され、バスインタフェースユニット12は、次
の命令が命令レジスタ14にロードされている時のみクロ
ックを再始動する。
マイクロシーケンスとは、マイクロマシン22に命令を出
し、まだ実行ユニット26内の(図示しない)ワークレジ
スタにある結果を、選択された1個のオペランドレジス
タ24に記憶させる。次に、マイクロマシン22はイネーブ
ルされ、適当な条件符号をセットし、報告された例外
を、使用者用に、バスインタフェースユニット12内の
(図示しない)ステータスレジスタにログする。マルチ
プレクサ18が次にイネーブルされ、次の命令が実行のた
めに受付けられるのであればその時に、AOマイクロ番地
を送出する。望ましい形態では、クロックも電力節約の
ために停止され、バスインタフェースユニット12は、次
の命令が命令レジスタ14にロードされている時のみクロ
ックを再始動する。
命令クラスがレジスタからメモリへの処理を示せば、即
ち先に計算された結果がメモリに記憶されるべき場合に
は、A1 PLA20によって呼出された前処理マイクロシーケ
ンスは、先ず、マイクロマシン20に命令し、特定のソー
スオペランドを、いくつかのオペランドレジスタ24の内
の1つから実行ユニット26にロードさせる。次に、前処
理マイクロシーケンスは、ソースオペランドのタグ処理
のためにタグ処理マイクロシーケンスを実行することを
マイクロマシン22に命じる。
ち先に計算された結果がメモリに記憶されるべき場合に
は、A1 PLA20によって呼出された前処理マイクロシーケ
ンスは、先ず、マイクロマシン20に命令し、特定のソー
スオペランドを、いくつかのオペランドレジスタ24の内
の1つから実行ユニット26にロードさせる。次に、前処
理マイクロシーケンスは、ソースオペランドのタグ処理
のためにタグ処理マイクロシーケンスを実行することを
マイクロマシン22に命じる。
ソースオペランドのタグ処理が完了すると、前処理マイ
クロシーケンスは、マイクロマシン22に命令し、A3 PLA
36をイネーブルし、ソースオペランドを内部データ形式
から、命令で指示される外部データ形式に変換するのに
適切なオペランド変換マイクロシーケンスのマイクロ番
地を出力させる。続いて、前処理マイクロシーケンス
は、マイクロマシン22に命じてA3マイクロ番地をマルチ
プレクサ18から出力させた後に、他のルーチンに移る。
クロシーケンスは、マイクロマシン22に命令し、A3 PLA
36をイネーブルし、ソースオペランドを内部データ形式
から、命令で指示される外部データ形式に変換するのに
適切なオペランド変換マイクロシーケンスのマイクロ番
地を出力させる。続いて、前処理マイクロシーケンス
は、マイクロマシン22に命じてA3マイクロ番地をマルチ
プレクサ18から出力させた後に、他のルーチンに移る。
選択された外部データ形式に従って、オペランド変換マ
イクロシーケンスは、次に、マイクロマシン22をイネー
ブルし、内部データ形式から、いくつかの外部データ形
式の内の選択された1つのものに変換するため、一連の
オペランド処理ステップにおいて実行ユニット26を制御
させる。続いて、オペランド変換マイクロシーケンス
は、演算中に検出した例外を報告することをマイクロマ
シン22に命令する。例外を報告した後に、オペランド変
換マイクロシーケンスは、マイクロマシン22に命じて、
バスインタフェースユニット12と共同して、実行ユニッ
ト26内の(図示しない)ワークレジスタにある結果を、
(図示しない)外部メモリの選択された番地に記憶させ
る。次に、マイクロマシン22はイネーブルされ、適当な
条件符号をセットし、報告された例外を、使用者用に、
バスインタフェースユニット12内の(図示しない)ステ
ータスレジスタのログする。続いて、マルチプレクサ18
がイネーブルされ、次の命令が実行のために受付けられ
るならばその時に、AOマイクロ番地を送出する。望まし
い形態では、クロックも電力節約のために停止され、バ
スインタフェースユニット12は、次の命令が命令レジス
タ14にロードされた時にのみ、クロックを再始動する。
イクロシーケンスは、次に、マイクロマシン22をイネー
ブルし、内部データ形式から、いくつかの外部データ形
式の内の選択された1つのものに変換するため、一連の
オペランド処理ステップにおいて実行ユニット26を制御
させる。続いて、オペランド変換マイクロシーケンス
は、演算中に検出した例外を報告することをマイクロマ
シン22に命令する。例外を報告した後に、オペランド変
換マイクロシーケンスは、マイクロマシン22に命じて、
バスインタフェースユニット12と共同して、実行ユニッ
ト26内の(図示しない)ワークレジスタにある結果を、
(図示しない)外部メモリの選択された番地に記憶させ
る。次に、マイクロマシン22はイネーブルされ、適当な
条件符号をセットし、報告された例外を、使用者用に、
バスインタフェースユニット12内の(図示しない)ステ
ータスレジスタのログする。続いて、マルチプレクサ18
がイネーブルされ、次の命令が実行のために受付けられ
るならばその時に、AOマイクロ番地を送出する。望まし
い形態では、クロックも電力節約のために停止され、バ
スインタフェースユニット12は、次の命令が命令レジス
タ14にロードされた時にのみ、クロックを再始動する。
バスインタフェースユニット12のステータスレジスタに
送られた条件符号は、4種類あり、move multiple命令
を除いて、浮動小数点データレジスタに関連する全ての
move(移動)と算術命令の終了時点で、セットされ得
る。条件符号は次の通りである。
送られた条件符号は、4種類あり、move multiple命令
を除いて、浮動小数点データレジスタに関連する全ての
move(移動)と算術命令の終了時点で、セットされ得
る。条件符号は次の通りである。
N−最終結果が負(符号ビット)。
Z−最終結果がゼロ。
I−最終結果が無限大。
NAN−最終結果がNAN、又は浮動小数点数比較結果が順序
不明(unordered)。
不明(unordered)。
4個の浮動小数点条件符号(FPCC)ビットは、演算の結
果としてのデータタイプによって以下のようにセットさ
れる。
果としてのデータタイプによって以下のようにセットさ
れる。
データタイプはデータ形式と密接に関係しているので、
条件符号は、以下の方法のいずれかによって生成され得
る。
条件符号は、以下の方法のいずれかによって生成され得
る。
IEEE標準の厳格に定義された基本形式(basic format)
(シングル、又はダブル)の1つにおいて算術演算結果
を生成する実例(implementation)では、以下の表が、
各形式に対する最小と最大の正規化数(各々、“minex
p"と“maxexp")に従って、データタイプを示す。
(シングル、又はダブル)の1つにおいて算術演算結果
を生成する実例(implementation)では、以下の表が、
各形式に対する最小と最大の正規化数(各々、“minex
p"と“maxexp")に従って、データタイプを示す。
IEEE標準の、ゆるやかな定義(本発明の望ましい定義)
に従った拡張形式での算術演算結果を生成する実例で
は、以下のようになる。
に従った拡張形式での算術演算結果を生成する実例で
は、以下のようになる。
IEEE標準は、拡張精度に関して、データ形式を厳密には
規定していないので、以下に於ては、本発明のデータタ
イプ定義を説明するだけとする。
規定していないので、以下に於ては、本発明のデータタ
イプ定義を説明するだけとする。
拡張形式は、明示した(explicit)整数部ビット(j)
を用いる。該標準は、拡張形式に於て、暗示した(impl
icit)又は明示した整数部ビットの使用を認める。更
に、該標準は、ゼロ、無限大、デノーマライズド、及び
NANデータタイプに使用される確保した指数を極めて大
まかに定義している。本例では、拡張形式用の確保され
た指数から選択した基本形式の規則に従う。しかし、こ
れらの技術は、該標準に合致する全ての拡張精度に、容
易に適用可能である。
を用いる。該標準は、拡張形式に於て、暗示した(impl
icit)又は明示した整数部ビットの使用を認める。更
に、該標準は、ゼロ、無限大、デノーマライズド、及び
NANデータタイプに使用される確保した指数を極めて大
まかに定義している。本例では、拡張形式用の確保され
た指数から選択した基本形式の規則に従う。しかし、こ
れらの技術は、該標準に合致する全ての拡張精度に、容
易に適用可能である。
拡張した場合にFPCCを形成する方法。
浮動小数点仮数部(シグニフィカンド)をビット列とし
て定義する。
て定義する。
j.ffff.....ffff ここで、“j."は、明示された整数部ビットであり、“f
fff.....ffff"は、小数部である。
fff.....ffff"は、小数部である。
ハードウェア要素(ラッチ)を以下のように定義する。
結果の符号=SIGN_FLAG 結果の整数部ビット(j)=N_OUT 結果の全小数ビットの論理和=C_OUT (maxexp+1)に等しい結果の指数=MAXEXP C_OUT及びMAXEXPは共に、ハードウェア比較器又は内部A
U条件の出力となり得る。
U条件の出力となり得る。
以下の等式は、拡張形式の結果を生成する実例に於てFP
CCを設定するために必要な論理である。
CCを設定するために必要な論理である。
N=SIGN_FLAG Z=not(MAXEXEP)・not(C_OUT)・not(N_OUT) I=MAXEXP・not(C_OUT) NAN=MAXEXP・C_OUT FPCCは、ノーマライズド数とデノーマライズド数を区別
しない点に注目されたい。この機能は、次の付加的なハ
ードウェア要素を定義することで容易に達成され得る。
しない点に注目されたい。この機能は、次の付加的なハ
ードウェア要素を定義することで容易に達成され得る。
(minexp)に等しい結果の指数=MINEXP 更に、デノーマライズド数のための付加的なFPCCビット
“D"を定義する。こうすると、FPCCのDビットは、次式
で設定される。
“D"を定義する。こうすると、FPCCのDビットは、次式
で設定される。
D=MINEXP・C_OUT・not(N_OUT) “D"FPCCビットは、結果を基本形式で生成する実例に於
て有用である。本発明は、結果を拡張形式で生成するの
で、ここで定義する“D"ビットは、単に、拡張精度デノ
ーマライズド数(まれにしか発生しない)を示すだけで
ある。
て有用である。本発明は、結果を拡張形式で生成するの
で、ここで定義する“D"ビットは、単に、拡張精度デノ
ーマライズド数(まれにしか発生しない)を示すだけで
ある。
既に述べたように、提案されたIEEE標準は、以下の4つ
の関係を定義し、これらの生成を、浮動小数点数比較演
算の結果としてのみ規定している。本発明の処理装置
は、move multiple命令を除き、浮動小数点データレジ
スタに関連する全てのmove及び算術演算命令の終了時
に、これらの関係を生成できる。
の関係を定義し、これらの生成を、浮動小数点数比較演
算の結果としてのみ規定している。本発明の処理装置
は、move multiple命令を除き、浮動小数点データレジ
スタに関連する全てのmove及び算術演算命令の終了時
に、これらの関係を生成できる。
EQ 等しい GT より大きい LT より小さい UN 順序なし(アンオーダード) アンオーダードの関係は、浮動小数点数比較において、
一方もしくは双方のオペランドがNANである場合に発生
する。
一方もしくは双方のオペランドがNANである場合に発生
する。
条件符号の設定が実行された演算に対して独立であるこ
とは重要である。即ち、条件符号は生成された結果のデ
ータタイプを示すにすぎない。該結果のデータタイプか
らIEEE定義の関係を、この条件符号セットを用いて導き
得ることが分った。整数条件符号の設定が、「実行され
た演算」及びその結果に依存する点において、これは従
来のプロセッサと異なる。
とは重要である。即ち、条件符号は生成された結果のデ
ータタイプを示すにすぎない。該結果のデータタイプか
らIEEE定義の関係を、この条件符号セットを用いて導き
得ることが分った。整数条件符号の設定が、「実行され
た演算」及びその結果に依存する点において、これは従
来のプロセッサと異なる。
上記の条件符号は、以下の式を用いてIEEEの関係を生成
するために使用される。
するために使用される。
EQ=Z GT=not(N+NAN+Z) LT=N・not(NAN+Z) UN=NAN (ここで、・は論理積であり、+は論理和である。) 結局、便利なことに、浮動小数点数プロセッサでは、有
意な条件組合せの各々に対してとられる(又は、識別さ
れる)べき条件分岐、又はトラップを生じさせるため
に、これらの条件符号(及び関係)が使用される。本発
明では、上記条件符号は、32個の属性を確定又は否定す
るために使用される。以下の表に、それらの32個の属性
を示す。
意な条件組合せの各々に対してとられる(又は、識別さ
れる)べき条件分岐、又はトラップを生じさせるため
に、これらの条件符号(及び関係)が使用される。本発
明では、上記条件符号は、32個の属性を確定又は否定す
るために使用される。以下の表に、それらの32個の属性
を示す。
属性(CPRED)略号表(以下の条件において、分岐、又
は、トラップが発生する。) ビット:54321 00000 F False 00001 EQ Equal 00010 OGT Ordered又はGreater Than 00011 OGE Ordered又はGreater Than 又はEqual 00100 OLT Ordered又はLess Than 00101 OLE Ordered又はLess Than 又はEqual 00110 OGL Ordered又はGreater 又はLess Than 00111 OR Ordered 01000 UN Unordered 01001 UEQ Unordered又はEqual 01010 UGT Unordered又はGreater Than 01011 UGE Unordered又はGreater Than 又はEqual 01100 ULT Unordered又はLess Than 01101 ULE Unordered又はLess Than 又はEqual 01110 NEQ Not Equal 01111 T True 10000 SF Signalling False 10001 SEQ Signalling Equal 10010 GT Greater Than 10011 GE Greater Than又はEqual 10100 LT Less Than 10101 LE Less Than又はEqual 10110 GL Greater又はLess Than 10111 LEG Less Than,Equal 又はGreater Than 11000 NLEG Not(Less Than,Equal又は Greater Than) 11001 NGL Not(Greater Than又は Less Than) 11010 NLE Not Less Than又はEqual 11011 NLT Not Less Than 11100 NGE Not Greater Than又はEqual 11101 NGT Not Greater Than 11110 SNEQ Signalling Not Equal 11111 ST Signalling True 与えられたホストプロセッサ命令に対して、注目する属
性がホストプロセッサによってバスインタフェースユニ
ット(12)にロードされると、第4図の論理は、該属性
と浮動小数点数条件符号(FPCC)とを組合せ、“T/F
(真/偽)”出力をホストに生成する。続いて、ホスト
プロセッサは、この出力を使用して、真であれば実行さ
れるべき、又、偽であれば実行されてはならない条件分
岐又はトラップを発生させる。
は、トラップが発生する。) ビット:54321 00000 F False 00001 EQ Equal 00010 OGT Ordered又はGreater Than 00011 OGE Ordered又はGreater Than 又はEqual 00100 OLT Ordered又はLess Than 00101 OLE Ordered又はLess Than 又はEqual 00110 OGL Ordered又はGreater 又はLess Than 00111 OR Ordered 01000 UN Unordered 01001 UEQ Unordered又はEqual 01010 UGT Unordered又はGreater Than 01011 UGE Unordered又はGreater Than 又はEqual 01100 ULT Unordered又はLess Than 01101 ULE Unordered又はLess Than 又はEqual 01110 NEQ Not Equal 01111 T True 10000 SF Signalling False 10001 SEQ Signalling Equal 10010 GT Greater Than 10011 GE Greater Than又はEqual 10100 LT Less Than 10101 LE Less Than又はEqual 10110 GL Greater又はLess Than 10111 LEG Less Than,Equal 又はGreater Than 11000 NLEG Not(Less Than,Equal又は Greater Than) 11001 NGL Not(Greater Than又は Less Than) 11010 NLE Not Less Than又はEqual 11011 NLT Not Less Than 11100 NGE Not Greater Than又はEqual 11101 NGT Not Greater Than 11110 SNEQ Signalling Not Equal 11111 ST Signalling True 与えられたホストプロセッサ命令に対して、注目する属
性がホストプロセッサによってバスインタフェースユニ
ット(12)にロードされると、第4図の論理は、該属性
と浮動小数点数条件符号(FPCC)とを組合せ、“T/F
(真/偽)”出力をホストに生成する。続いて、ホスト
プロセッサは、この出力を使用して、真であれば実行さ
れるべき、又、偽であれば実行されてはならない条件分
岐又はトラップを発生させる。
以下の表は、T/F信号を生成する第4図のBIU論理を示し
たものである。
たものである。
フロントページの続き (56)参考文献 特開 昭54−35647(JP,A) 特開 昭54−55336(JP,A) 特開 昭59−79350(JP,A)
Claims (8)
- 【請求項1】浮動小数点結果を生成するために2つの浮
動小数点オペランドに対し算術演算を行なう段階、 行なわれている算術演算とは独立に、第1の組の条件符
号を発生する段階であって、該第1の組の条件符号は2
つの浮動小数点オペランドの各々を予め規定された浮動
小数点データフォーマットに変換する上で発生される結
果のオペランドのデータタイプを示し、前記第1の組の
条件符号は、 もし前記結果のオペランドが浮動小数点ゼロであればゼ
ロ(Z)、 もし前記結果のオペランドが負であれば負(N)、 もし前記結果のオペランドが浮動小数点でなければ非数
(NaN)、そして もし前記結果のオペランドが浮動小数点無限大であれば
無限大(I)、 を有するもの、 前記第1の組の条件符号を論理的に組合せて第2の組の
条件符号を得る段階であって、該第2の組の条件符号
は、 もし前記結果のオペランドがゼロに等しければ等しい
(EQ)、 もし前記結果のオペランドがゼロより大きければより大
きい(GT)、 もし前記結果のオペランドがゼロより小さければより小
さい(LT)、そして もし前記結果のオペランドが浮動小数点数でなければ順
位なし(UN)、 を具備するもの、 を具備することを特徴とする浮動小数点条件符号を生成
するための方法。 - 【請求項2】さらに、 複数の条件の断定の内の1つ以上に答えるために前記第
2の組の条件符号を使用する段階、 を具備する請求の範囲第1項に記載の方法。 - 【請求項3】前記条件符号の等しい(EQ)は条件符号ゼ
ロ(Z)に論理的に等しい請求の範囲第1項に記載の方
法。 - 【請求項4】前記条件符号のより大きい(GT)は条件符
号負(N)、非数(NaN)およびゼロ(Z)の理論的OR
の論理的否定に論理的に等しい請求の範囲第1項に記載
の方法。 - 【請求項5】前記条件符号のより小さい(LT)は条件符
号負(N)と条件符号非数(NaN)およびゼロ(Z)の
論理和の論理的否定との論理的ANDに論理的に等しい請
求の範囲第1項に記載の方法。 - 【請求項6】条件符号順位なし(UN)は条件符号非数
(NaN)に論理的に等しい請求の範囲第1項に記載の方
法。 - 【請求項7】浮動小数点結果を生成するために2つの浮
動小数点オペランドに対し算術演算を行なうための第1
の手段、 前記第1の手段に結合され、行なわれている算術演算と
は独立に、第1の組の条件符号を発生するための第2の
手段であって、前記第1の組の条件符号は2つの浮動小
数点オペランドの各々を予め規定された浮動小数点デー
タフォーマットに変換する上で発生される結果のオペラ
ンドのデータタイプを示し、前記第1の組の条件符号
は、 もし前記結果のオペランドが浮動小数点ゼロであればゼ
ロ(Z)、 もし前記結果のオペランドが負であれば負(N)、 もし前記結果のオペランドが浮動小数点でなければ非数
(NaN)、そして もし前記結果のオペランドが浮動小数点無限大であれば
無限大(I)、 を具備するもの、 前記第2の手段に結合され、前記第1の組の条件符号を
論理的に組合せて第2の組の条件符号を得るための第3
の手段であって、該第2の組の条件符号は、 もし前記結果のオペランドがゼロに等しければ等しい
(EQ)、 もし前記結果のオペランドがゼロより大きければより大
きい(GT)、 もし前記結果のオペランドがゼロより小さければより小
さい(LT)、そして もし前記結果のオペランドが浮動小数点数でなければ順
位なし(UN)、 を具備するもの、 を具備することを特徴とする数値データ処理装置。 - 【請求項8】さらに、 複数の条件の断定のうちの1つまたはそれ以上に答える
ために前記第2の組の条件符号を用いるための第4の手
段、 を具備する請求の範囲第7項に記載の数値データ処理装
置。
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 JPS61500990A (ja) | 1986-05-15 |
JPH0789314B2 true 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)
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5435647A (en) * | 1977-08-26 | 1979-03-15 | Hitachi Ltd | Status generator circuit |
JPS5455336A (en) * | 1977-10-12 | 1979-05-02 | Nec Corp | Data processor controlled by microprogram |
JPS5979350A (ja) * | 1982-10-29 | 1984-05-08 | Toshiba Corp | 浮動小数点演算装置 |
Family Cites Families (4)
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 |
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 |
-
1984
- 1984-11-05 EP EP84904062A patent/EP0168406B1/en not_active Expired - Lifetime
- 1984-11-05 KR KR1019850700207A patent/KR910006142B1/ko active
- 1984-11-05 WO PCT/US1984/001793 patent/WO1985003148A1/en active IP Right Grant
- 1984-11-05 JP JP59504065A patent/JPH0789314B2/ja not_active Expired - Lifetime
- 1984-11-05 KR KR1019850700207A patent/KR850700163A/ko not_active IP Right Cessation
- 1984-11-05 DE DE8484904062T patent/DE3484512D1/de not_active Expired - Lifetime
- 1984-12-28 IT IT49370/84A patent/IT1219413B/it active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5435647A (en) * | 1977-08-26 | 1979-03-15 | Hitachi Ltd | Status generator circuit |
JPS5455336A (en) * | 1977-10-12 | 1979-05-02 | Nec Corp | Data processor controlled by microprogram |
JPS5979350A (ja) * | 1982-10-29 | 1984-05-08 | Toshiba Corp | 浮動小数点演算装置 |
Also Published As
Publication number | Publication date |
---|---|
JPS61500990A (ja) | 1986-05-15 |
KR910006142B1 (ko) | 1991-08-16 |
EP0168406A1 (en) | 1986-01-22 |
IT8449370A0 (it) | 1984-12-28 |
WO1985003148A1 (en) | 1985-07-18 |
KR850700163A (ko) | 1985-10-25 |
EP0168406B1 (en) | 1991-04-24 |
IT1219413B (it) | 1990-05-11 |
EP0168406A4 (en) | 1988-05-10 |
DE3484512D1 (de) | 1991-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230342112A1 (en) | Decimal floating-point round-for-reround instruction | |
KR102447636B1 (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
US9690580B2 (en) | Decomposition of decimal floating point data | |
Ziv | Fast evaluation of elementary mathematical functions with correctly rounded last bit | |
US5892697A (en) | Method and apparatus for handling overflow and underflow in processing floating-point numbers | |
US3871578A (en) | Data processing system for multiplying and intergerizing floating point numbers | |
US20160202952A1 (en) | Shift Significand of Decimal Floating Point Data | |
Schulte et al. | A family of variable-precision interval arithmetic processors | |
JPH10207693A (ja) | 浮動小数点演算ユニット | |
JPH07225671A (ja) | 結果正規化機構と動作の方法 | |
WO2002023326A1 (en) | Handler for floating-point denormalized numbers | |
US20080270509A1 (en) | Extract biased exponent of decimal floating point data | |
US4509144A (en) | Programmable bidirectional shifter | |
US5341320A (en) | Method for rapidly processing floating-point operations which involve exceptions | |
US5572664A (en) | System for generating floating point test vectors | |
US6542915B1 (en) | Floating point pipeline with a leading zeros anticipator circuit | |
JPS6124729B2 (ja) | ||
EP0162348B1 (en) | A method for extending the exponent range in a floating point processor | |
JPH0789314B2 (ja) | 浮動小数点条件符号生成方式 | |
US4683546A (en) | Floating point condition code generation | |
Sasidharan et al. | VHDL Implementation of IEEE 754 floating point unit | |
US4644489A (en) | Multi-format binary coded decimal processor with selective output formatting | |
GB2317248A (en) | Flash floating-point data processor | |
JP3137636B2 (ja) | データ処理装置 | |
JP3522387B2 (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 |