JPH03278124A - 浮動小数点演算の例外発生予測回路 - Google Patents

浮動小数点演算の例外発生予測回路

Info

Publication number
JPH03278124A
JPH03278124A JP2076683A JP7668390A JPH03278124A JP H03278124 A JPH03278124 A JP H03278124A JP 2076683 A JP2076683 A JP 2076683A JP 7668390 A JP7668390 A JP 7668390A JP H03278124 A JPH03278124 A JP H03278124A
Authority
JP
Japan
Prior art keywords
exponent
value
exception
floating point
exponent part
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
JP2076683A
Other languages
English (en)
Inventor
Katsuhisa Kondo
近藤 勝久
Yukihiro Ide
井出 進博
Takashi Yoshida
尊 吉田
Masato Nagamatsu
永松 正人
Junji Mori
順治 森
Itaru Yamazaki
到 山崎
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2076683A priority Critical patent/JPH03278124A/ja
Publication of JPH03278124A publication Critical patent/JPH03278124A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) この発明は、浮動小数点演算を行う情報処理装置に係り
、特に、浮動小数点演算の例外発生時の処理をトラップ
ルーチンによるソフトウェアで処理する例外発生予測回
路に関する。
(従来の技術) 情報処理を行うために製品化されるマイクロプロセサで
は、処理を高速に行うために、命令実行をパイプライン
で処理するものが多い。すなわち各命令の命令実行をい
くつかのステージに分け、数サイクルで実行する。そし
て、先行命令の実行が終了する前に、次命令の実行を開
始する。この− ようにすることにより、動作サイクルの短縮化をはかり
、命令実行のスループットを上げている。
各命令の実行内容は命令の種類により異なるので、命令
の実行サイクル数は命令の種類により異なる。たとえば
、浮動小数点演算命令の実行は、他の命令に比べ、必要
な実行サイクル数が多いのが普通である。
近年、集積度の向上にともない、浮動小数点演算命令を
備えたプロセサが多数製品化されつつある。浮動小数点
演算の実行では、オペランドの種類及び計算結果にキリ
発生する例外を処理する必要が生じることがある。これ
らの例外は、数種類あり、その処理をハードウェアで行
うには、動作速度及び回路規模のてんから負荷の大きい
ものもある。したがって、実装上のトレードオフから、
ある種の例外は、ソフトウェアで処理するプロセサが多
い。
すなわち、ハードウェアでは、ある種の例外が発生した
ときにはトラップを発生する回路のみ実装しておき、演
算途中でその例外が発生したとき4− はトラップが発生し、トラップ処理のルーチンが実行さ
れることになる。このトラップルーチンは、例外を発生
した浮動小数点演算命令をソフトウェアで実行する。例
外の処理もそのトラップルーチンで行い、演算結果を算
出する。
命令のパイプライン実行を行うプロセサでは、いくつか
の命令の処理が並列に実行されている。
ある浮動小数点演算命令でトラップルーチンで処理する
必要のある例外が発生した場合、プロセサで実行中の命
令のうち、上記浮動小数点命令よりも前に実行すべき命
令はすべて終了させ、上記浮動小数点命令より後に実行
すべき命令は、無効にしてトラップルーチンに処理を移
す。トラップルーチン内で上記浮動小数点命令の実行が
終了するとトラップルーチンから処理が復帰する。復帰
後に実行する命令は、上記浮動小数点命令の次の命令で
ある。
このようなプロセサを設計する場合に重要なことは、ト
ラップを発生した命令より後の命令は、まったく実行さ
れなかった場合と同じ状態でトラツブルーチンに処理を
移す制御を行わせることである。
例えば、第7図(a)の命令列を考える。EMPYは、
浮動小数点乗算を行う命令である。FMOVは、レジス
タ間の転送命令である。FMOY命令は、レジスタ0の
値とレジスタ1の値の浮動小数点乗算を実行し、その結
果をレジスタ2に格納する。そして、最初のFMOV命
令は、レジスタ3の値をレジスタOに転送する。2番目
のFMOV命令は、レジスタOの値をレジスタ1に転送
する。
命令実行パイプラインを、命令フェッチ(F)、デコー
ド及びレジスタ読み出しくD)、演算(F)、レジスタ
書き込み(III)というように構成したとする。
また、レジスタの読み出しは、演算結果をバイパスでき
るように構成し、浮動小数点乗算器は、1サイクル毎に
演算結果を出力することが可能なパイプライン構成であ
ったとする。
この場合、トラップを引き起こす例外が生じないとする
と第7図(b)のような命令実行制御が可能である。し
かし、トラップを引き起こす例外が=6− 生じる場合、このような制御は、不都合な場合がある。
たとえば、6サイクル目にFMPYがトラップを発生し
た場合、システム的なエラーが生じる。
すなわち、トラップルーチンを開始したときには、すで
に最初のFMOV命令の実行が終了した状態になってお
り、トラップルーチンでFMPY命令を行うときに用い
るレジスタOの値は、本来用いるべき値と異なっている
したがって、FMPY命令がトラップを発生する可能性
がある場合は、第7図(c)のような制御を行う必要が
ある。すなわち、最初のFMOV命令は、FMPY命令
がトラップを発生しないことが判明するまで、レジスタ
0への書き込み動作を待たせる必要がある。また、その
結果、2番目のFMOV命令は、図のように待たされる
ことになる。
このように、例外の処理をトラップルーチンで行う場合
、プロセサの性能を低下させることになる。
浮動小数点の乗除算において、発生する例外は数種類あ
る。演算実行の最初のステージで発生す− る例外もあるし、演算実行の終了間際に発生する例外も
ある。前述した説明から分かるように、前者の例外処理
をトラップルーチンで行う場合、性能に及ぼす影響は少
ない。しかし、後者の例外をトラップルーチンで行う場
合は、著しく性能を低下させる。
後者の種類に属する例外に、アンダーフロー例外がある
。この例外では、演算結果の指数部が、そのフォーマッ
トの表現範囲よりも小さい値になったときに発生する。
IEEE754規格を例にとり、 このアンダーフロー
例外について、説明する。この規格では、演算結果を原
則として正規化して出力することを定めている。演算結
果の指数部が正規化数での表現範囲より小さい場合の処
理は、ユーザーの指定する動作モードにより異なってい
る。デフォルト処理を行った結果を用いて計算処理を続
ける動作モードと、計算処理を中断させる動作モードで
ある。
後者の動作モードの場合、計算処理を中断するときには
アンダーフロー例外フラグをセットして、8− ユーザーに通知する。
前者の動作モードを選択した場合、非正規化数で演算結
果を表わす。まず、指数部を表現範囲の最小値で表わす
ため、必要なだけ仮数部を右シフトする。そして、この
中間報告を指定された丸めモードにしたがい丸める。こ
の丸め処理で精度落ちが発生したとき、アンダーフロー
例外フラグをセットする。
なお、この説明から分かるように、IEEE754規格
のアンダーフロー例外と「演算結果の指数部が、そのフ
ォーマットの表現範囲よりも小さい値になる場合」とは
、厳密にいうと異なる。本明細書でいうアンダーフロー
例外は後者のことを指すということを注意のために付記
しておく。
この上述したデフォルト処理をハードウェアで行うため
には、仮数部のシフト数を判断するためのプライオリテ
ィエンコーダと、仮数部をシフトさせるためのバレルシ
フタが必要となる。回路規模の増大、動作速度の低下と
いった負荷がかかる。
そのため、この例外は、トラップルーチンで処理=9− するように実装されることが多い。
前述した後続命令の待ち合わせ制御は、実際に例外が発
生するときは必要であるが、発生しなかった時は全く無
駄な制御をしたことになる。
演算実行の早期にこの例外が発生しないことが判断出来
ないときのみ、例外の発生を予測した制御を行うことが
可能である。
すなわち、例外が発生しないと判断された場合は第7図
(b)の制御を行い、例外発生が判断出来ないときは、
例外が発生すると予測し、第7図(c)の制御を行う。
このようにすることより、性能低下を抑えるのに大きく
貢献する。
以上述べてきたように、浮動小数点演算のアンダーフロ
ー例外をトラップルーチンで行うプロセサでは、性能低
下を抑えるために、演算実行の早期にアンダーフロー例
外の発生を検査し、アンダーフロー例外発生が判断でき
ないときのみ例外発生予測信号を出力するアンダーフロ
ー例外発生予測回路が求められている。
(発明が解決しようとする課題) =10 上述したように、浮動小数点演算のアンダーフローをト
ラップルーチンで処理するプロセサでは、性能が著しく
低下する。この性能低下を最小限に抑えるために、演算
実行の早期にアンダーフロー例外の発生を検査し、アン
ダーフロー例外発生が判断できないときのみ例外発生予
測信号を出力するアンダーフロー例外発生予測回路を提
供することを目的とする。
〔発明の構成〕
(課題を解決するための手段) 上記目的を達成するために、本発明においては、浮動小
数点演算の算出途中の指数部の中間結果を入力値とし、
浮動小数点演算結果を得るために該指数部中間結果算出
後に行われる正規化処理において指数部から減算される
可能性のある最大数を、該入力値から減算した値が、正
規化数の指数部表現範囲に入るか否かを判定する手段を
備え、該判定手段が該範囲に入らないと判定した場合、
上記浮動小数点演算によりアンダーフロー例外が発生す
ることを予測する信号を出力することを特11− 徴とする例外発生予測回路を提供する。
また、浮動小数点乗算のアンダーフロー例外をトラップ
ルーチンで処理するマイクロプロセッサにおいて、浮動
小数点乗算の算出途中に行われるオペランド指数部の加
算結果を入力値とし、浮動小数点乗算結果を得るために
該指数部加算後に行われる正規化処理において指数部か
ら減算される可能性のある最大数を、該入力値から減算
した値が、正規化数の指数部表現範囲に入るか否かを判
定する手段を備え、該判定手段が該範囲に入らないと判
定した場合、上記浮動小数点乗算によりアンダーフロー
例外が発生することを予測する信号を出力することを特
徴とする例外発生予測回路を提供する。
また、浮動小数点除算のアンダーフロー例外をトラップ
ルーチンで処理するマイクロプロセッサにおいて、浮動
小数点除算の算出途中に行われるオペランド指数部の減
算結果を入力値とし、浮動小数点除算結果を得るために
該指数部減算後に行われる正規化処理において指数部か
ら減算される12 可能性のある最大数を、該入力値から減算した値が、正
規化数の指数部表現範囲に入るか否かを判定する手段を
備え、該判定手段が該範囲に入らないと判定した場合、
上記浮動小数点除算によりアンダーフロー例外が発生す
ることを予測する信号を出力することを特徴とする例外
発生予測回路を提供する。
さらに、浮動小数点加減算のアンダーフロー例外をトラ
ップルーチンで処理するマイクロプロセッサにおいて、
浮動小数点加減算の算出途中に選択されるオペランド指
数部の最大値を入力値とし、浮動小数点加減算結果を得
るために該指数部選択後に行われる正規化処理において
指数部から減算される可能性のある最大数を、該入力値
から減算した値が、正規化数の指数部表現範囲に入るか
否かを判定する手段を備え、該判定手段が該範囲に入ら
ないと判定した場合、上記浮動小数点加減算によりアン
ダーフロー例外が発生することを予測する信号を出力す
ることを特徴とする例外発生予測回路を提供する。
13− (作 用) まず最初に、本発明により提供される浮動小数点乗算の
アンダーフロー例外発生予測回路について説明する。
一般的な浮動小数点乗算回路の構成を第8図に示す。こ
の回路の主要構成要素は、指数部加算回路(812)、
仮数部乗算回路(813)、正規化/丸め回路(814
)、指数部調整回路(815)である。
浮動小数点乗算は、次のような動作フローで行われる。
この回路には、片方のオペランド符号部(801)、指
数部(802)、仮数部(803)と、他のオペランド
の符号部(804)、指数部(805)、仮数部(80
6)が入力される。そして、演算結果の符号部(807
)、指数部(808)、仮数部(809)を出力する。
符号部の算出は、指数部、仮数部の算出と独立に行われ
る。2つのオペランドの符号値の排他的論理和を取るこ
とにより、演算結果を符号部(807)を求める。
指数部と仮数部の算出は、大きく分けて次のような3つ
の処理ステージに分けられる。
=14− (中間結果算出) 指数部中間結果(810)と仮数部中間結果(811)
を、それぞれ独立に算出する。
オペランド指数部(802)と(805)を加算するこ
とにより、指数部中間結果(810)を算出する。また
、オペランド仮数部 (803)と(806)の固定小数点乗算を行うことに
より、仮数部中間結果(811)を算出する。
処理2: (正規化) 仮数部の正規化を行い、それにともな い、指数部の調節をする。正規化とは、仮数部中間結果
(811)の最上位にある′1′を所定の桁位置に合わ
せることである。
したがって、仮数部中間結果(811)をシフトするこ
とにより行う。(811)を右にシフトした場合、シフ
トした数だけ、指数部中間結果(810)に加算する必
要がある。また、(811)を左にシフトした場合、シ
フトした数だけ、指数部中間結果(810)処理1: 5− から減算する必要がある。
処理3: (丸め/再正規化) 正規化された仮数部中間結果の下位数 ビットを参照し、丸めモードに従い、必要ならば、上記
中間結果をインクリメントする。
インクリメントした場合、正規化され ている仮数部中間結果の最上位ビットから桁あがりが生
じることがある。この場合、仮数部の再正規化を行なう
必要がある。すなわち、仮数部を右に1桁シフトし、指
数部の値を1インクリメントする。
本発明により提供されるアンダーフロー発生予測回路は
、上記処理フローの処理1で、算出される指数部加算結
果を入力する。上述した処理フローから分かるように、
この入力信号は演算開始直後に生成される。また、この
入力値から減算される可能性のある最大数は、処理2に
おける仮数部正規化に伴う、減算値である。したがって
、指数部加算結果からこの値を引いた値が、指数部の表
16− 現範囲を下回った場合は、アンダーフロー例外を発生す
る可能性があると予測する。それ以外の場合は、アンダ
ーフロー例外を発生しないと決定できる。
指数部表現範囲に比べて、正規化により指数部中間結果
の値が変動する範囲は、非常に小さい。
したがって、アンダーフロー例外が発生しない大半のケ
ースは、例外が発生しないと早期に判断できる。
したがって、本発明により提供されるアンダーフロー例
外発生予測回路を用いることにより、浮動小数点乗算命
令を含む命令列の実行を効率よく制御するマイクロプロ
セサを実現することが可能になる。
次に、本発明により提供される浮動小数点除算のアンダ
ーフロー例外発生予測回路について、説明する。
一般的な浮動小数点除算回路の構成を第9図に示す。こ
の回路の主要構成要素は、指数部減算回路(912)、
仮数部除算回路(913)、正規化/丸め回=17− 路(914)、指数部調整回路(915)である。
浮動小数点除算は、次のような動作フローで行われる。
この回路には、片方のオペランドの符号部(901)、
指数部(902)、仮数部(903)と、他のオペラン
ドの符号部(904)、指数部(905)、敷部部(9
06)が入力される。そして、演算結果の符号部(90
7)、指数部(908)、仮数部(909)を出力する
符号部の算出は、指数部、仮数部の算出と独立に行われ
る。2つのオペランドの符号値の排他的論理和を取るこ
とにより、演算結果の符号部(907)を求める。
指数部と仮数部の算出は、大きく分けて次のような3つ
の処理ステージに分けられる。
処理1: (中間結果算出) 指数部中間結果(910)と仮数部中間結果(911)
を、それぞれ独立に算出する。
オペランド指数部(902)と(905)を減算するこ
とにより、指数部中間結果(910)を算出する。また
、オペランド仮数部 (903)と(906)の固定小数点除算を行うこ=1
8 とにより、仮数部中間結果(911)を算出する。
処理2: (正規化) 仮数部の正規化を行い、それにともな い、指数部の調節をする。正規化とは、仮数部中間結果
(911)の最上位にある11′を所定の桁位置に合わ
せることである。したがって、仮数部中間結果(911
)をシフトすることにより行う。(911)を右にシフ
トした場合、シフトした数だけ、指数部中間結果(91
0)に加算する必要がある。また、(911)を左にシ
フトした場合、シフトした数だけ、指数部中間結果(9
10)から減算する必要がある。
処理3: (丸め/再正規化) 正規化された仮数部中間結果の下位数 ビットを参照し、丸めモードに従い、必要ならば、上記
中間結果をインクリメントする。
インクリメントした場合、正規化され 9− ている仮数部中間結果の最上位ビットから桁あがりが生
じることがある。この場合、仮数部の再正規化を行なう
必要がある。すなわち、仮数部を右に1桁シフトし、指
数部の値を1インクリメントする。
本発明により提供されるアンダーフロー発生予測回路は
、上記処理フローの処理1で、算出される指数部減算結
果を入力する。上述した処理フローから分かるように、
この入力信号は演算開始直後に生成される。また、この
入力値から減算される可能性のある最大数は、処理2に
おける仮数部正規化に伴う、減算値である。したがって
、指数部加算結果からこの値を引いた値が、指数部の表
現範囲を下回った場合は、アンダーフロー例外を発生す
る可能性があると予測する。それ以外の場合は、アンダ
ーフロー例外を発生しないと決定できる。
指数部表現範囲に比べて、正規化により指数部中間結果
の値が変動する範囲は、非常に小さい。
したがって、アンダーフロー例外が発生しない大=20
− 半のケースは、例外が発生しないと早期に判断できる。
本発明により提供されるアンダーフロー例外発生予測回
路を用いることにより、浮動小数点除算命令を含む命令
列の実行を効率よくマイクロプロセサを実現することが
可能になる。
最後に、本発明により提供される浮動小数点加減算のア
ンダーフロー例外発生予測回路について、説明する。
一般的な浮動小数点加減算回路の構成を第10図に示す
。この回路の主要構成要素は、指数部計算回路(101
6)、スワップ回路(1017)、桁合わせ回路(10
18)、仮数部加減算回路(1019)、正規化/丸め
回路(1024)、指数部調整回路(1021)である
浮動小数点加減算は、次のような動作フローで行われる
。この回路には、片方のオペランドの符号部、指数部(
1002)、仮数部(1003)と、他のオペランドの
符号部、指数部(1005)、仮数部(1006)が入
力される。そして、演算結果の符号部、指数部(100
8)、仮数部(1009)を出力する。
1− 符号部は、仮数部の演算結果により定まる。ここでは、
本発明の内容に関係ないので、説明は省略する。
指数部と仮数部の算出は、大きく分けて次のような4つ
の処理ステージに分けられる。
処理1: (指数部中間結果算出及び仮数部桁合わせ)
オペランド指数部(1002)と(1005)を比較し
、大きい方を指数部中間結果(1010)として出力す
る。
また、仮数部は、指数部の演算結果を 用いて桁合わせをする。指数部の小さい方のオペランド
仮数部(1013)を2つのオペランド指数部の差(1
015)だけ右シフトした値(1014)を生成する。
他のオペランド仮数部は、信号(1012)にそのまま
出力する。
処理2: (仮数部中間結果算出) 仮数部の中間結果を算出する。桁合わ せした仮数部の値(1014)と他のオペランド仮数部
の値(1012)との固定小数点加減2− 算を行い仮数部中間結果(1011)を算出する。加算
を行なうか減算を行なうかは、命令の種類とオペランド
の符号部(1001)(1004)を用いて決定する。
処理3: (正規化) 仮数部の正規化を行い、それにともな い、指数部の調節をする。正規化とは、仮数部中間結果
(1011)の最上位にあるt 1 +を所定の桁位置
に合わせることである。したがって、仮数部中間結果(
1011)をシフトすることにより行う。(1011)
を右にシフトした場合、シフトした数だけ、指数部中間
結果(1010)に加算する必要がある。また、(10
11)を左にシフトした場合、シフトした数だけ、指数
部中間結果(1010)から減算する必要がある。
処理4: (丸め/再正規化) 正規化された仮数部中間結果の下位数 ビットを参照し、丸めモードに従い、必要ならば、上記
中間結果をインクリメン3− トする。
インクリメントした場合、正規化され ている仮数部中間結果の最上位ビットから桁あがりが生
じることがある。この場合、仮数部の再正規化を行なう
必要がある。すなわち、仮数部を右に1桁シフトし、指
数部の値を1インクリメントする。
本発明により提供されるアンダーフロー発生予測回路は
、上記処理フローの処理1で行なわれる最大指数部選択
の結果を入力する。上述した処理フローから分かるよう
に、この入力信号は演算開始直後に生成される。また、
この入力値から減算される可能性のある最大数は、処理
2における仮数部正規化に伴う、減算値である。したが
って、指数部加算結果からこの値を引いた値が、指数部
の表現範囲を下回った場合は、アンダーフロー例外を発
生する可能性があると予測する。これ以外の場合は、ア
ンダーフロー例外を発生しないと決定できる。
指数部表現範囲に比べて、正規化により指数部24− 中間結果の値が変動する範囲は、非常に小さい。
したがって、アンダーフロー例外が発生しない大半のケ
ースは、例外が発生しないと早期に判断できる。
本発明により提供されるアンダーフロー例外発生予測回
路を用いることにより、浮動小数点加減算命令を含む命
令列の実行を効率よく制御するマイクロプロセサを実現
することが可能になる。
(実施例) 本発明を、IEEE754規格に準拠する浮動小数点演
算器に適用した実施例について説明する。演算器は、単
精度及び倍精度演算を実行することができる。また、正
規化数しかオペランドとして扱えない。非正規化数のオ
ペランドが入力された場合、トラップルーチンによりソ
フトウェアで処理される。このトラップの発生は、演算
開始直後にオペランド値を参照することにより判断でき
るため、この仕様が性能に及ぼす影響は少ない。
IEEE754規格における、単精度データのフォーマ
ットを第5図(a)に、倍精度データのフォーマ部一 ソトを第5図(b)に示す。指数部は、ゲタばき表現を
とっている。また、仮数部は、絶対値と符号により表現
されている。データフォーマットと表現された数との対
応を4、第6図に示す。第6図(a)は、単精度の対応
表であり、第6図(b)は、倍精度の対応表である。
このようなフォーマットをとるため、指数部の値は単精
度では、○〜255、倍精度では、0〜2047になる
。単精度正規化数の指数部表現範囲は、1〜254であ
り、倍精度の場合1〜2046である。
従って、本演算器では、計算結果の指数部がOより小さ
くなった時にアンダーフロー例外となり、トラップを発
生する。
なお、計算途中において、指数部の値が正規化数の指数
部表現範囲を逸脱してもその正確な値が分かるように、
演算器内の指数部の表現は、ビット幅を拡張した2の補
数データを用いることが多い。
第1図に、本発明により提供される浮動小数点演算例外
発生予測回路を示す。
26− 指数部中間結果(101)を入力し、アンダーフロー例
外発生予測信号(102)を出力する。
単精度及び倍精度演算の双方に対応するため、予測回路
内では、指数部中間結果(Lot)を同一のビット幅の
データ(107)に変換して扱う。そのために、単精度
の場合、入力値(101)を符号拡張し倍精度演算時と
同一のビット幅データに変換する回路(109)が付加
されている。単精度演算であるか、倍精度演算であるか
は、単/倍切り換え信号(105)が指定する。
また、比較回路(110)で、信号(107)と比較す
る定数(106)は、単精度演算時と倍精度演算時では
異なる。そのため、適当な定数を選択するためのセレク
タ回路(108)を付加されている。どちらの定数を選
択するかは、信号(105)が指定する。
比較回路は、信号(107)と信号(106)を比較し
、信号(107)の値が信号(106)の値以下である
時、アンダーフロー例外発生を予測することを示す信号
値を信号(102)に出力する。
浮動小数点加減算器の場合、指数部中間結果27− (101)には、両オペランド指数部の大きい方の値を
入力するように接続する。浮動小数点乗算器の場合は両
オペランド指数部の加算結果を、浮動小数点除算器の場
合は両オペランド指数部の減算結果を入力する。
したがって、本アンダーフロー例外発生予測回路の浮動
小数点加減算器への接続は、第3図のようになる。信号
(310)には、指数部計算回路(316)から、両オ
ペランド指数部の大きい方の値が出力される。この信号
を例外発生予測回路の入力信号になるように接続する。
なお、図において、例外発生予測信号は、信号(323
)に出力される。
また、本アンダーフロー例外発生予測回路の浮動小数点
乗算器への接続は、第4図のようになる。
信号(410)には、指数部加算回路(412)から、
両オペランド指数部の加算結果が出力される。この信号
を例外発生予測回路の入力信号になるように接続する。
なお、図において、例外発生予測信号は信号(417)
に出力される。
第1図に示した単精度用定数(103)及び倍精度28
− 用定数(104)は、演算の種類により異なる。各演算
毎に用いる定数を第2図(a)に示す。
浮動小数点加減算の処理とそのデータフォーマットを考
えると、正規化による仮数部左シフトの最大桁数は、単
精度の場合24桁、倍精度の場合53桁であることが分
かる。したがって、浮動小数点加減算用例外発生予測回
路には、単精度用定数として24を、倍精度用定数とし
て、53を用いる。
浮動小数点乗算を考える。オペランドは正規化数なので
、仮数部の整数乗算の結果は、単精度演算及び倍精度演
算ともに、1以上、4未満の値になる。そのため、正規
化処理による仮数部左シフトはおこらない。したがって
、浮動小数点乗算用例外発生予測回路には、単精度用定
数及び倍精度用定数として0を用いる。
浮動小数点除算を考える。オペランドは正規化数なので
、仮数部の整数除算の結果は、1/2より大きく、2未
満の値になる。そのため、正規化処理による仮数部左シ
フトの最大桁数は、単精度演算及び倍精度演算とも1桁
である。したがって、9− 浮動小数点除算用例外発生予測回路には、単精度用定数
及び倍精度用定数として1を用いる。
最後に、本発明により提供されるアンダーフロー例外発
生予測回路の性能について述べる。
前述したように、指数部の演算結果は、指数部中間結果
を正規化及び再正規化における仮数部のシフト桁数だけ
増減させた値になる。各演算の正規化及び再正規化にお
ける、仮数部の最大左シフト桁数及び最大右シフト桁数
を第2図(b)〜(d)に示す。
以上のことから分かるように、倍精度浮動小数点加減算
において、アンダーフロー例外が発生しない場合、指数
部の中間結果は、ゲタばき表現で、−1から2046の
範囲の値をとる。本発明による例外発生予測回路は、指
数部の中間結果が54から2046の範囲の値のとき、
アンダーフロー例外が発生しないと判断する。
また、単精度浮動小数点加減算においてアンダーフロー
例外が発生しない場合、指数部の中間結果は、ゲタばき
表現で、 −1から254の範囲の値3〇− をとる。本発明による例外発生予測回路は、指数部の中
間結果が25から254の範囲の値のとき、アンダーフ
ロー例外が発生しないと判断する。
倍精度浮動小数点乗算において、アンダーフロー例外が
発生しない場合、指数部の中間結果は、ゲタばき表現で
、−1から4092の範囲の値をとる。
本発明による例外発生予測回路は、指数部の中間結果が
1から4092の範囲の値のとき、アンダーフロー例外
が発生しないと判断する。
単精度浮動小数点乗算において、アンダーフロー例外が
発生しない場合、指数部の中間結果は、ゲタばき表現で
、−1から508の範囲の値をとる。
本発明による例外発生予測回路は、指数部の中間結果が
1から508の範囲の値のとき、アンダーフロー例外が
発生しないと判断する。
倍精度浮動小数点除算において、アンダーフロー例外が
発生しない場合、指数部の中間結果は、ゲタばき表現で
Oから2045の範囲の値をとる。本発明による例外発
生予測回路は、指数部の中間結果が2から2045の範
囲の値のとき、アンダーフロ31− 一例外が発生しないと判断する。
単精度浮動小数点除算において、アンダーフロー例外が
発生しない場合、指数部の中間結果は、ゲタばき表現で
 Oから253の範囲の値をとる。本発明による例外発
生予測回路は、指数部の中間結果が2から253の範囲
の値のとき、アンダーフロー例外が発生しないと判断す
る。
このように、本発明により提供されるアンダーフロー例
外発生予測回路を用いれば、アンダーフロー例外を発生
しない浮動小数点演算を行った場合、その大部分のケー
スに対して、早期に例外が発生しないと判断できる。
〔発明の効果〕
以上述べてきたように、本発明により提供されるアンダ
ーフロー例外発生予測回路を用いれば、アンダーフロー
例外を発生しない浮動小数点演算を行った場合、その大
部分のケースに対して、早期に例外が発生しないと判断
できる。その結果、本回路を用いたプロセサでは、効率
の良い命令実行制御が可能になる。
32−
【図面の簡単な説明】
第1図は本発明により提供されるアンダーフロー例外発
生予測回路の構成図、第2図は正規化及び再正規化にお
ける仮数部の最大シフト桁数を表わす図、第3図及び第
4図は本発明により提供されるアンダーフロー例外発生
予測回路と演算器との接続を示す図、第5図及び第6図
はIEEE規格における浮動小数点データのフォーマッ
トの説明図、第7図はトラップルーチンで例外処理を行
うときの命令実行制御の様子を示す図、第8図は浮動小
数点乗算器の構成を示す図、第9図は浮動小数点除算器
の構成を示す図、第10図は浮動小数点加減算器の構成
を示す図である。 101.310,410,810,910.1010−
・・指数部中間結果102.323,417・・・アン
ダーフロー例外発生予測信号103・・・単精度用定数 104・・・倍精度用定数 105・・・単精度/倍精度切り換え信号106.10
7,312,313,314,1012,1013.1
014=−信号値108・・・セレクタ 3 109・・・符号拡張回路 110・・・比較回路 302.305,402,405,802,805,9
02,905,1002,1005・・・オペランド指
数部 303.306,403,406,803,806,9
03,906,1003.1006・・・オペランド仮
数部 308.408,808,908.1008・・・演算
結果指数部309.409,809,909.1009
・・・演算結果仮数部311.411,811,911
.1011・・・仮数部中間結果315.1015・・
・両オペランドの指数部の差316.1016・・・指
数部計算回路317、1017・・・スワップ回路 318.1018・・・桁合わせ回路 319.1019・・仮数部加減算回路320.414
,814,914.1020・・正規化/丸め回路32
1.415,815,915.1021・・・指数部調
整回路322.416・・・アンダーフロー例外発生予
測回路401.404,801,804,901,90
4・・・オペランド符号部407.807,907・演
算結果符号部412.812,912・・・指数部加算
回路−詞

Claims (4)

    【特許請求の範囲】
  1. (1)浮動小数点演算の算出途中の指数部の中間結果を
    入力値とし、前記指数部中間結果算出後に行われる正規
    化処理において指数部から減算される可能性のある最大
    数を、前記入力値から減算した値が、出力データフォー
    マットの指数部表現範囲に入るか否かを判定する手段を
    備え、該判定手段が前記指数部表現範囲に入らないと判
    定した場合、前記浮動小数点演算によりアンダーフロー
    例外が発生することを予測する信号を出力することを特
    徴とする浮動小数点演算の例外発生予測回路。
  2. (2)浮動小数点乗算の算出途中に行われるオペランド
    指数部の加算結果を入力値とし、前記指数部加算後に行
    われる正規化処理において指数部から減算される可能性
    のある最大数を、前記入力値から減算した値が、出力デ
    ータフォーマットの指数部表現範囲に入るか否かを判定
    する手段を備え、該判定手段が前記指数部表現範囲に入
    らないと判定した場合、前記浮動小数点乗算によりアン
    ダーフロー例外が発生することを予測する信号を出力す
    ることを特徴とする浮動小数点演算の例外発生予測回路
  3. (3)浮動小数点除算の算出途中に行われるオペランド
    指数部の減算結果を入力値とし、前記指数部減算後に行
    われる正規化処理において指数部から減算される可能性
    のある最大数を、前記入力値から減算した値が、出力デ
    ータフォーマットの指数部表現範囲に入るか否かを判定
    する手段を備え、該判定手段が前記指数部表現範囲に入
    らないと判定した場合、前記浮動小数点除算によりアン
    ダーフロー例外が発生することを予測する信号を出力す
    ることを特徴とする浮動小数点演算の例外発生予測回路
  4. (4)浮動小数点加減算の算出途中に選択されるオペラ
    ンド指数部の最大値を入力値とし、前記指数部選選後に
    行われる正規化処理において指数部から減算される可能
    性のある最大数を、前記入力値から減算した値が、正規
    化数の指数部表現範囲に入るか否かを判定する手段を備
    え、該判定手段が前記指数部表現範囲に入らないと判定
    した場合、前記浮動小数点加減算によりアンダーフロー
    例外が発生することを予測する信号を出力することを特
    徴とする浮動小数点演算の例外発生予測回路。
JP2076683A 1990-03-28 1990-03-28 浮動小数点演算の例外発生予測回路 Pending JPH03278124A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2076683A JPH03278124A (ja) 1990-03-28 1990-03-28 浮動小数点演算の例外発生予測回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2076683A JPH03278124A (ja) 1990-03-28 1990-03-28 浮動小数点演算の例外発生予測回路

Publications (1)

Publication Number Publication Date
JPH03278124A true JPH03278124A (ja) 1991-12-09

Family

ID=13612238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2076683A Pending JPH03278124A (ja) 1990-03-28 1990-03-28 浮動小数点演算の例外発生予測回路

Country Status (1)

Country Link
JP (1) JPH03278124A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003529124A (ja) * 1999-07-30 2003-09-30 ミップス テクノロジーズ インコーポレイテッド 乗算−加算演算用高精度プロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003529124A (ja) * 1999-07-30 2003-09-30 ミップス テクノロジーズ インコーポレイテッド 乗算−加算演算用高精度プロセッサ

Similar Documents

Publication Publication Date Title
JP4953644B2 (ja) 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法
JP4938844B2 (ja) 非正規化オペランドのためのモードベース乗算−加算プロセッサ
JP6001276B2 (ja) 浮動小数点加算を実行するための装置および方法
US5880984A (en) Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US7236995B2 (en) Data processing apparatus and method for converting a number between fixed-point and floating-point representations
US7949696B2 (en) Floating-point number arithmetic circuit for handling immediate values
US6631392B1 (en) Method and apparatus for predicting floating-point exceptions
Schwarz et al. FPU implementations with denormalized numbers
US8166092B2 (en) Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
US5943249A (en) Method and apparatus to perform pipelined denormalization of floating-point results
JPH09507941A (ja) multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化
US5548545A (en) Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
JP3313560B2 (ja) 浮動小数点演算処理装置
JP4858794B2 (ja) 浮動小数点除算器、及びそれを用いた情報処理装置
US8626807B2 (en) Reuse of rounder for fixed conversion of log instructions
GB2549153B (en) Apparatus and method for supporting a conversion instruction
US8041927B2 (en) Processor apparatus and method of processing multiple data by single instructions
JPH03278124A (ja) 浮動小数点演算の例外発生予測回路
US8005884B2 (en) Relaxed remainder constraints with comparison rounding
US6094669A (en) Circuit and method for determining overflow in signed division
JPH0469734A (ja) 浮動小数点加減算のアンダーフロー例外発生予測回路
US7043516B1 (en) Reduction of add-pipe logic by operand offset shift
US7237000B2 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
JP3229057B2 (ja) 例外処理装置