JP3076046B2 - 例外検出回路 - Google Patents

例外検出回路

Info

Publication number
JP3076046B2
JP3076046B2 JP01022227A JP2222789A JP3076046B2 JP 3076046 B2 JP3076046 B2 JP 3076046B2 JP 01022227 A JP01022227 A JP 01022227A JP 2222789 A JP2222789 A JP 2222789A JP 3076046 B2 JP3076046 B2 JP 3076046B2
Authority
JP
Japan
Prior art keywords
overflow
mantissa
flag
underflow
rounding
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
Application number
JP01022227A
Other languages
English (en)
Other versions
JPH02201645A (ja
Inventor
伸吾 小嶋
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP01022227A priority Critical patent/JP3076046B2/ja
Priority to EP19900101910 priority patent/EP0381191A3/en
Priority to US07/472,387 priority patent/US5038313A/en
Publication of JPH02201645A publication Critical patent/JPH02201645A/ja
Application granted granted Critical
Publication of JP3076046B2 publication Critical patent/JP3076046B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • 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/49942Significance control
    • G06F7/49947Rounding
    • 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/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation of IEEE-754 Standard

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、例外判定回路に関する。より詳細には、マ
イクロプロセッサにおける浮動少数点演算のオーバーフ
ローおよびアンダーフローの発生を検出する例外判定回
路に関する。
従来の技術 浮動小数点演算を行う場合、そのデータフォーマット
や例外に関する処理を規定したものにはいくつかの種類
があるが、マイクロプロセッサに関してほぼ標準となっ
ているものにIEEEが定めたIEEE P754浮動小数点規格が
ある。この規格では、数値は指数部と仮数部に分けて表
現され、さらに通常はすべて正規化数(仮数部の最上位
ビットが1である状態;IEEE P754の規定するデータフォ
ーマットでは仮数部の小数点は仮数部の最上位ビットと
その1つ下のビットの間にあるため、最上位ビットは仮
数部の整数ビットとなる)として保持することにしてい
る。第5図(a)に正規化された浮動小数点データを示
す。第5図(a)は、指数部16ビット、仮数部64ビット
で表現した例であり、仮数部最上位ビット以外の空欄は
0でも1でも構わない。
また、このデータフォーマットでは、数値として表現
できる範囲は、1から仮数部が最大値(仮数部のすべて
の桁が1である値)で指数部が最大値より1だけ少ない
値である数までの間である。指数部が最大値であるデー
タは無限大や不定など数値でない特殊な状態を表わす記
号として規定しており、また指数部が0のデータは正規
化数として表現可能な最小数(指数部が1、仮数部の整
数ビットのみ1で他はすべて0)と0との間を補完する
ためのデノーマル数と呼ばれる微小数値として使う。第
5図(b)にこれらの数値を示す。第5図(b)には、
上から順に無限大、正規化数(最大のものから3個と最
小の2個)、最大および最小のデノーマル数が示されて
いる。
このようなデータをもとに各種の演算を行った場合、
得られた答がこのデータフォーマットで表現可能な範囲
を超えてしまう場合がある。表現可能な最大数を超えて
大きくなってしまった場合をオーバーフロー、正規化数
で表現可能な最小数を下回って小さくなってしまった場
合をアンダーフローといい、IEEE P754はいずれの場合
も例外事項として検出するように定めている(ただし、
アンダーフローとなっても有効ビットが失われない場合
はアンダーフロー例外とはしない)。
よって、浮動小数点演算を行った場合、演算処理の後
で結果として得られた数値にオーバーフロー/アンダー
フローが発生したこ否かを判定しなければならない。こ
れは上述したオーバーフロー/アンダーフローの規定に
より、演算結果の指数部を確認することによって行え
る。すなわち、指数部が最大値以上だった場合にはオー
バーフローとし、0以下だった場合にはアンダーフロー
とする(アンダーフローの場合はさらに有効ビットが失
われているという条件を重畳してアンダーフロー例外を
決定する)。
また、浮動小数点演算を行った場合、演算結果がもと
のデータフォーマットの精度範囲内に収らず、仮数部の
最下位ビットのさらに下へ有効ビットが溢れてしまう場
合がある。この場合、溢れたビットを無視して許される
精度範囲内に収める(切り捨て)か、溢れたビットのか
わりに最下位ビットに1を加える(切り上げ)という処
理を行う必要がある。この処理を丸めと言うが、IEEE P
754ではこの丸めを4種類用意することを規定してい
る。従って、浮動小数点演算における丸め処理はこの丸
めの種類を指定する丸めモード、演算結果仮数部の最下
位ビット、最下位ビットの1つ下のビット(ラウンドビ
ット)、演算によって得られた全有効ビットのうち、最
下位ビットの2つ下のビット以下のすべてのビットを論
理和(スティッキービット)という4つの情報をもとに
切り上げ/切り捨てを判断しなければならない。第5図
(c)に上記のラウンドビットおよびスティッキービッ
トと桁溢れビットとを具備した仮数部を示す。
発明が解決しようとする課題 上述のIEEE P754規格の浮動小数点演算を実行する従
来のマイクロプロセッサには、丸め処理とオーバーフロ
ー/アンダーフローの判定において問題点があった。こ
の問題点を以下に説明する。
従来のマイクロプロセッサにおける丸め処理とオーバ
ーフロー/アンダーフローの判定回路の例を第4図のブ
ロック図に示す。第4図のマイクロプロセッサにおい
て、浮動小数点演算器401の演算結果は正規化されて指
数部レジスタ402および仮数部レジスタ403に出力され
る。仮数部レジスタ403から出力される最下位ビット、
ラウンドビットおよびスティッキービットの3信号411
および丸めモードを指定する丸めモードフラグ407によ
り、切り上げ/切り捨て判定回路408は、切り上げを行
うか、切り捨てを行うかを判定し、切り上げフラグ410
を設定する。この切り上げフラグ410により、選択回路4
17は丸め用定数404またはゼロ定数419を仮数部加算器40
6に転送する。仮数部加算器406は、選択回路417が転送
した定数と仮数部レジスタ403のデータとを加算し、仮
数部加算器結果レジスタ409に出力する。仮数部加算器
結果レジスタ409の桁溢れビットのデータと指数部レジ
スタ402のデータが指数部加算器418で加算され、その結
果に対し、指数部判定回路405がオーバーフローおよび
アンダーフローの判定を行う。具体的には、指数部判定
回路405は、指数部加算器418の出力が指数の最大値とな
っている場合にはMAXフラグ412を、0の場合にはゼロフ
ラグ413を、負の数になっている場合にはマイナスフラ
グ414を設定し、MAXフラグ412が設定されるとオーバー
フローフラグ415が、ゼロフラグ413またはマイナスフラ
グ414が設定されるとアンダーフローフラグ416が出力さ
れる。
第6図(a)を参照して、上記のマイクロプロセッサ
において丸め処理により、オーバーフローがおこる場合
を説明する。いま、浮動小数点演算器401により演算処
理が行われ、演算結果の指数部が最大値より1だけ小さ
い値であったとする。この場合、指数部が最大値以上に
はなっていないため一見オーバーフローではないように
見える。ところが、演算結果の仮数部がすべて1のとき
は、丸めによる切り上げにより、仮数部は最上位ビット
のさらに上に繰り上がってしまう。この演算結果を正規
化数とするためには丸めを行った後に仮数部を右1ビッ
トシフトし、指数部に1を加える処理が必要になる。1
が加えられると指数部は最大値となりIEEE P754の規定
するデータフォーマットから外れてしまい、オーバーフ
ローとなる。
また、第6図(b)に、丸め処理により、アンダーフ
ローが解消される場合を示す。演算結果の指数部が0の
とき、一見アンダーフローであるように見えるが、上記
と同様に丸めにより指数部に1が加えられることがある
ため、演算結果の仮数部がすべて1のときは、アンダー
フローとはならない。
このように、指数部によるオーバーフロー/アンダー
フローの判定は丸めにより覆される可能性があるため、
丸めを行った後に行わなければならない。指数部に対す
る丸め処理は、仮数部加算器406の演算結果に対し、さ
らに指数部加算器418による演算を行うことにより実行
される。従って、仮数部加算器406の演算と指数部加算
器418の演算とを並行して処理することはできない。2
相クロックにより制御するとして加算処理をφ2同期
で、オーバーフロー/アンダーフローの判定をφ1同期
で行うとしても丸めからオーバーフローフラグ415、ア
ンダーフローフラグ416決定までに2クロックかかるこ
とになる。
さらに、切り上げ/切り捨て判定回路408が、仮数部
レジスタ403から最下位ビット、ラウンドビット、ステ
ィッキービットの3信号411および丸めモードフラグ407
を入力し、切り上げ/切り捨てを判定して切り上げフラ
グ410を設定する動作に半クロック(φ2)、選択回路4
17による丸め用定数404、ゼロ定数419の選択転送に半ク
ロック(φ1)かかる。そのため、浮動小数点演算器40
1が演算結果を出力してからオーバーフローフラグ415、
アンダーフローフラグ416が設定されるまでに合計3ク
ロック必要となってしまう。
以上述べたように、オーバーフロー/アンダーフロー
の判定を指数部のみで行う従来のマイクロプロセッサで
は、本来の演算処理ではない部分で余分な時間がかかっ
てしまう。従って、全体の演算処理速度が低下してしま
う結果となる。
そこで、本発明の目的は、上記従来技術の問題点を解
決し、マイクロプロセッサがオーバーフロー/アンダー
フローの判定を高速に実行することを可能にする例外判
定回路を提供することにある。
課題を解決するための手段 本発明に従うと、浮動小数点演算の演算結果の丸め処
理に伴うオーバーフローおよびアンダーフローの発生を
検出する例外検出回路において、 前記演算結果の仮数部に対する丸め処理が切り上げと
なるか切り捨てとなるかを判定する第1の判定手段と、 前記演算結果の指数部の大きさを判定する第2の判定
手段と、 前記演算結果の仮数部を無条件に切り上げる丸め処理
を行う仮数部加算器と、 前記第1の判定手段の判定結果、前記仮数部加算器の
最上位ビットから桁溢れおよび前記第2の判定手段の判
定結果からオーバーフローおよびアンダーフローの発生
を検出する検出手段とを具備し、 前記第1の判定手段、前記第2の判定手段および前記
仮数部加算器が並列に配置されており、 演算結果が出力されると、前記第1の判定手段、前記
第2の判定手段および前記仮数部加算器を同時に動作さ
せてオーバーフローおよびアンダーフローの発生を検出
することを特徴とする例外判定回路が提供される。
作用 本発明の例外検出回路は、浮動小数点演算結果を丸め
る際に仮数部を切り上げるか、切り捨てるかの判定結果
と、浮動小数点演算結果の指数部の大きさの判定結果
と、浮動小数点演算結果の仮数部を切り上げた際の最上
位からの桁溢れと、からオーバーフローおよびアンダー
フローを検出する。本発明の例外検出回路において上記
の判定および切り上げは、同時に並行に処理することが
可能である。従って、本発明の例外検出回路では、演算
結果が出力されてからオーバーフロー/アンダーフロー
が検出されるまでの時間が従来の1/3になる。
以下、本発明を実施例により、さらに詳しく説明する
が、以下の開示は本発明の単なる実施例に過ぎず、本発
明の技術的範囲をなんら制限するものではない。
実施例1 第1図を参照して本発明の例外検出回路の実施例を説
明する。第1図は、浮動少数点演算器101に本発明の例
外検出回路を結合した回路のブロック図である。
第1図の回路において、浮動小数点演算器101の指数
部出力を保持する指数部レジスタ102は、第2の判定手
段である指数部判定回路105にデータを出力し、指数部
判定回路105は、指数部レジスタ102のデータが最大値よ
り1少ない値である(以降、MAX−1と表現する)か、
最大値以上である(以降、MAXと表現する)か、0であ
るか、負であるかを判定する。指数部判定回路105は、
指数部レジスタ102のデータが、MAX−1である場合には
MAX−1フラグ111を1とし、最大値以上である場合には
MAXフラグ112を1とし、0である場合にはゼロフラグ11
3を1とし、負である場合にはマイナスフラグ114を1と
する。浮動小数点演算器101の仮数部出力を保持する仮
数部レジスタ103は、仮数部加算器106および第1の判定
手段である切り上げ/切り捨て判定回路108にデータを
出力する。仮数部レジスタ103からデータを入力された
仮数部加算器106は、仮数部レジスタ103からのデータと
丸め用定数104とを加算し、仮数部加算器結果レジスタ1
09へ出力する。丸め用定数104は、丸めを行うための定
数であり、仮数部と同じ桁数で最下位ビットのみ1であ
り、他のビットはすべて0である定数である。切り上げ
/切り捨て判定回路108は、丸めモードレジスタ107がIE
EE P754の浮動小数点演算仕様に基づいて指定した丸め
モードで、仮数部レジスタ103の最下位ビットとそのさ
らに下位に付随している丸め用の2ビットから、丸めが
切り上げとなるか切り捨てとなるかを判定する。切り上
げ/切り捨て判定回路108が、切り上げを判定すると、
切り上げフラグ110は1を保持する。
仮数部加算器結果レジスタ109の桁溢れビット、切り
上げフラグ110、MAX−1フラグ111、MAXフラ112、ゼロ
フラグ113およびマイナスフラグ114は、オーバーフロー
およびアンダーフローの検出手段であるオーバーフロー
/アンダーフロー予測回路117に入力され、オーバーフ
ロー/アンダーフロー予測回路117は、これらのデータ
から指数部が最大値以上になった場合にオーバーフロー
フラグ115を、指数部がゼロ以下になった場合にアンダ
ーフローフラグ116をそれぞれ1に設定する。本実施例
の例外検出回路においては、オーバーフロー/アンダー
フロー予測回路117は、仮数部加算器結果レジスタ109の
出力と切り上げフラグ110とを入力とするANDゲート117
1、ANDゲート1171の出力とMAX−1フラグ111とを入力と
するANDゲート1172、ANDゲート1172の出力とMAXフラグ1
12とを入力とし、結果をオーバーフローフラグ115へ出
力するORゲート1173、ANDゲート1171の出力を反転する
インバータ1176、インバータ1176の出力とゼロフラグ11
3とを入力とするANDゲート1174およびANDゲート1174の
出力とマイナスフラグとを入力とし、結果をアンダーフ
ローフラグ116へ出力とするORゲート1175を具備する。
以下、上記の例外検出回路が、丸めの影響で生じるオ
ーバーフロー/アンダーフローを検出する動作を説明す
る。なお、本実施例において、上記の回路は2相クロッ
ク制御で動作しており、φ1期間で浮動小数点演算器10
1から指数部レジスタ102および仮数部レジスタ103への
転送、オーバーフローフラグ115またはアンダーフロー
フラグ116の設定を行い、φ2期間で指数部判定回路10
5、仮数部加算器106および切り上げ/切り捨て判定回路
108を動作させるものとする。
まず、第6図(a)に示した丸めによりオーバーフロ
ーとなる場合の動作を説明する。
浮動小数点演算器101が出力する指数部レジスタ102は
MAX−1、仮数部レジスタ103は全ビットが1の状態であ
り、さらに仮数部レジスタ103の下位にある丸め用ビッ
トと丸めモードレジスタ107の内容は切り上げとなって
いる。
初めに、φ2期間で仮数部加算器106は、仮数部レジ
スタ103のデータと丸め用定数104とを無条件に加算して
切り上げの丸めを行い、仮数部加算器結果レジスタ109
に出力する。本来は、丸めにより、切り上げが行われる
か、切り捨てとなるかはまだ決まっていないが、本発明
の例外検出回路では、まず仮に切り上げを行い、切り上
げとなった場合に仮数部整数ビットのさらに上へ桁溢れ
が発生するかどうかを調べる。φ2期間では、同時に指
数部判定回路105は、指数部レジスタ102の内容判定を行
い、この場合はMAX−1であるためMAX−1フラグ111を
1とする。また、切り上げ/切り捨て判定回路108もφ
2期間で動作できるため、同時に切り上げであることを
判定し、切り上げフラグ110を1とする。
φ2期間でオーバーフロー/アンダーフロー予測回路
117に必要な入力信号はすべて揃うため、続くφ1期間
でオーバーフロー/アンダーフロー予測回路117は、た
だちにオーバーフロー、アンダーフローの判定を行う。
上記の場合、切り上げフラグ110は1、仮数部加算器結
果レジスタの桁溢れビットも1であり、ANDゲート1171
は1を出力する。また、MAX−1フラグも1であるた
め、ANDゲート1172の出力は1となる。従って、ORゲー
ト1173の出力は1となり、オーバーフローフラグ115は
1となる。また、ANDゲート1171の出力が反転されてAND
ゲート1174に入力されるためANDゲート1174は0を出力
する。また、マイナスフラグ114は指数部判定回路105に
より0と設定されているため、ORゲート1175には2入力
とも0となり、0を出力する。よってアンダーフローフ
ラグ116は0となる。
浮動小数点演算器110の出力が、丸めを行う前にオー
バーフローである場合、指数部レジスタが最大値以上と
なり、MAXフラグ112が1となるのでORゲート1173の出力
は無条件に1となってオーバーフローフラグ115は1に
なる。
次に、第6図(b)に示した丸めによりアンダーフロ
ーではなくなる場合の動作を説明する。
浮動小数点演算器101が出力する指数部レジスタ102は
0、仮数部レジスタ103は全ビットが1の状態であり、
さらに仮数部レジスタ103の下位にある丸め用ビットと
丸めモードレジスタ107の内容は切り上げとなる組合せ
となっている。
初めに、φ2期間で仮数部加算器106は、仮数部レジ
スタ103のデータと丸め用定数104とを無条件に加算して
切り上げの丸めを行い、仮数部加算器結果レジスタ109
に出力する。同時に指数部判定回路105は、指数部レジ
スタ102の内容判定を行い、この場合は0であるためゼ
ロフラグ113を1とする。また、切り上げ/切り捨て判
定回路108は切り上げであることを判定し、切り上げフ
ラグ110を1とする。
続くφ1期間でオーバーフロー/アンダーフロー予測
回路117が動作する。この場合は切り上げフラグ110は
1、仮数部加算器結果レジスタ109の桁溢れビットも1
であるため、ANDゲート1171は1を出力する。また、ゼ
ロフラグは1であるが、ANDゲート1174の他方の入力はA
NDゲート1171の出力の反転値であるため、ANDゲート117
4の出力は0となる。ANDゲート1174の出力およびマイナ
スフラグ114はともに0に設定されているため、ORゲー
ト1175の出力は0となり、アンダーフローフラグ116は
0となる。また、MAX−1フラグ111、MAXフラグ112とも
に0であるため、ORゲート1173は0を出力する。よって
オーバーフローフラグ115も0となる。
丸めを行ってもアンダーフローがそのままである場合
は、切り上げ/切り捨て判定回路108の判定結果が切り
捨てであり、切り上げフラグ110が0となり、ANDゲート
1171の出力は0になり、ANDゲート1174の入力は両方と
も1となってアンダーフローフラグ116は1となる。
浮動小数点演算器110の出力が、丸めを行う前にアン
ダーフローである場合、指数部レジスタが負となり、マ
イナスフラグ114が1となるのでORゲート1175の出力は
無条件に1となってアンダーフローフラグ116は1にな
る。
このように、本発明の例外検出回路では、仮数部を仮
に切り上げて、その加算動作と同時に切り上げ/切り捨
て判定回路108と、指数部判定回路105を動作させる。従
って、本発明の例外検出回路は、指数部レジスタ102、
仮数部レジスタ103に演算結果が入力されてから1クロ
ックでオーバーフロー、アンダーフローを判定する。
実施例2 第2図を参照して本発明の例外検出回路の第2の実施
例を説明する。。実施例1の例外検出回路は、オーバー
フローおよびアンダーフローの検出手段が論理回路で構
成されていたが、本実施例の例外検出回路ではオーバー
フローおよびアンダーフローの検出手段は、ROMで構成
されている。
第2図は、浮動小数点演算器201に本発明の例外検出
回路を結合した回路のブロック図である。
第2図の回路において、浮動小数点演算器201、指数
部レジスタ202、仮数部レジスタ203、丸め用定数204、
指数部判定回路205、仮数部加算器206、丸めモードレジ
スタ207、切り上げ/切り捨て判定回路208、仮数部加算
器結果レジスタ209、切り上げフラグ210、オーバーフロ
ーフラグ215、アンダーフローフラグ216は第1図の回路
と同様であるので説明を省略する。
本実施例の例外検出回路において、指数部判定回路20
5は、指数部レジスタ202から入力されるデータにより3
ビットの判定コード211をオーバーフロー/アンダーフ
ロー判定用ROM212へ出力する。判定コード211は、指数
部レジスタ202のデータにより第3図(a)に示すよう
にエンコードされる。
オーバーフロー/アンダーフロー判定用ROM212は、判
定コード211、仮数部加算器結果レジスタ209の桁溢れビ
ットおよび切り上げフラグ210をアドレスとし、オーバ
ーフローフラグ215とアンダーフローフラグ216に対して
記憶内容を出力する。第3図(b)にオーバーフロー/
アンダーフロー判定用ROM212のアドレスとオーバーフロ
ー信号、アンダーフロー信号との関係を示す。
なお、本実施例の回路も実施例1の回路と同様、2相
クロック制御で動作しており、φ1期間で浮動小数点演
算器201から指数部レジスタ202および仮数部レジスタ20
3への転送、オーバーフローフラグ215またはアンダーフ
ローフラグ216の設定を行い、φ2期間で指数部判定回
路205、仮数部加算器206および切り上げ/切り捨て判定
回路208を動作させるものとする。
実施例1と同様に第6図(a)に示した丸めによりオ
ーバーフローとなる場合の動作を説明する。
実施例1と同様、仮数部加算器206は最初のφ2期間
に無条件に丸め用定数204を加算する。また、切り上げ
/切り捨て判定回路208も仮数部レジスタ203の下位ビッ
トと丸めモード207により、切り上げを判断して切り上
げフラグ210を1とする。同時に指数部レジスタ202の内
容判定が指数部判定回路205によって行われ、第3図
(a)に示すようにMAX−1であることを示すコード‘0
10'を判定コード211として出力する。
続くφ1期間に判定コード211、仮数部加算器結果レ
ジスタ206の桁溢れビット、切り上げフラグ210の計5ビ
ットがアドレスとして、オーバーフロー/アンダーフロ
ー判定用ROM212に入力される。この場合入力されるアド
レスは‘01011'となり、第3図(b)に示したオーバー
フロー/アンダーフロー判定用ROMの内容に従い、オー
バーフロー信号213が1、アンダーフロー信号214が0と
なり、オーバーフローフラグ215は1に、アンダーフロ
ーフラグ216は0にそれぞれ設定される。
また、第6図(b)に示した丸めによりアンダーフロ
ーではなくなる場合には、仮数部加算器206は最初のφ
2期間に無条件に丸め用定数204を加算する。また、切
り上げ/切り捨て判定回路208も仮数部レジスタ203の下
位ビットと丸めモード207により、切り上げを判断して
切り上げフラグ210を1とする。同時に指数部レジスタ2
02の内容判定が指数部判定回路205によって行われ、第
3図(a)に示すよう0であることを示すコード‘000'
を判定コード211として出力する。
続くφ1期間に判定コード211、仮数部加算器結果レ
ジスタ206の桁溢れビット、切り上げフラグ210の計5ビ
ットがアドレスとして、オーバーフロー/アンダーフロ
ー判定用ROM212に入力される。この場合入力されるアド
レスは‘00011'となり、第3図(b)に示したオーバー
フロー/アンダーフロー判定用ROMの内容に従い、オー
バーフロー信号213、アンダーフロー信号214がともに0
となり、オーバーフローフラグ215、アンダーフローフ
ラグ216ともに0にそれぞれ設定される。
このように、オーバーフロー/アンダーフロー判定に
論理回路ではなく、ROMを用いても同様の効果を得るこ
とができる。
発明の効果 以上説明したように本発明の例外検出回路は、仮数部
を仮に切り上げて、その加算動作と同時に切り上げ/切
り捨ての判定と指数部の判定を行う。そのため、演算結
果が出力されてから1クロックでオーバーフローおよび
アンダーフローの発生を予測することが可能となる。
【図面の簡単な説明】
第1図は、本発明の例外検出回路の一例と浮動少数点演
算回路を組み合わせた回路のブロック図であり、 第2図は、本発明の例外検出回路の他の実施例と浮動小
数点演算回路を組み合わせた回路のブロック図であり、 第3図(a)は、第2図の回路における指数部判定回路
のエンコード表であり、 第3図(b)は、第2図の回路におけるオーバーフロー
/アンダーフロー判定用ROMの内容であり、 第4図は従来のオーバーフロー/アンダーフロー判定回
路の例であり、 第5図(a)は、浮動小数点データフォーマットの説明
図であり、 第5図(b)は、浮動小数点データの正規化数として表
現できる範囲の説明図であり、 第5図(c)は、丸めに必要な仮数部の下位ビットの説
明図であり、 第6図(a)は、丸めによってオーバーフローが発生す
る場合の具体例を示す図であり、 第6図(b)は、丸めによってアンダーフローではなく
なる場合の具体例を示す図である。 〔主な参照番号〕 101、201、401……浮動小数点演算器、 102、202、402……指数部レジスタ、 103、203、403……仮数部レジスタ、 104、204、404……丸め用定数、 105、205、405……指数部判定回路、 106、206、406……仮数部加算器、 107、207、407……丸めモードフラグ、 108、208、408……切り上げ/切り捨て判定回路、 109、209、409……仮数部加算器結果レジスタ、 110、210、410……切り上げフラグ、 115、215、415……オーバーフローフラグ、 116、216、416……アンダーフローフラグ、

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】浮動小数点演算の演算結果の丸め処理に伴
    うオーバーフローおよびアンダーフローの発生を検出す
    る例外検出回路において、前記演算結果の仮数部に対す
    る丸め処理が切り上げとなるか切り捨てとなるかを判定
    する第1の判定手段と、前記演算結果の指数部の大きさ
    を判定する第2の判定手段と、前記演算結果の仮数部を
    無条件に切り上げる丸め処理を行う仮数部加算器と、前
    記演算結果が出力されると、前記第1の判定手段、前記
    第2の判定手段および前記仮数部加算器を同時に動作さ
    せ、前記第1の判定手段の判定結果に応じて用いる、無
    条件に切り上げる丸め処理を行った前記仮数部加算器の
    最上位ビットからの桁溢れ、及び前記第2の判定手段の
    判定結果とからオーバーフローおよびアンダーフローの
    発生を検出する検出手段とを有することを特徴とする例
    外検出回路。
JP01022227A 1989-01-31 1989-01-31 例外検出回路 Expired - Fee Related JP3076046B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP01022227A JP3076046B2 (ja) 1989-01-31 1989-01-31 例外検出回路
EP19900101910 EP0381191A3 (en) 1989-01-31 1990-01-31 Floating-point processor provided with high-speed detector of overflow and underflow exceptional conditions
US07/472,387 US5038313A (en) 1989-01-31 1990-01-31 Floating-point processor provided with high-speed detector of overflow and underflow exceptional conditions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01022227A JP3076046B2 (ja) 1989-01-31 1989-01-31 例外検出回路

Publications (2)

Publication Number Publication Date
JPH02201645A JPH02201645A (ja) 1990-08-09
JP3076046B2 true JP3076046B2 (ja) 2000-08-14

Family

ID=12076916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01022227A Expired - Fee Related JP3076046B2 (ja) 1989-01-31 1989-01-31 例外検出回路

Country Status (3)

Country Link
US (1) US5038313A (ja)
EP (1) EP0381191A3 (ja)
JP (1) JP3076046B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2523962B2 (ja) * 1990-08-20 1996-08-14 松下電器産業株式会社 浮動小数点演算装置
DE69132807T2 (de) * 1990-08-24 2002-06-27 Matsushita Electric Industrial Co., Ltd. Verfahren und Gerät zur Berechnung von Gleitkommadaten
US5430661A (en) * 1990-12-03 1995-07-04 Board Of Trustees Leland Stanford, Jr. University Adaptive decision feedback equalizer apparatus for processing information stored on digital storage media
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
JPH05134850A (ja) * 1991-11-11 1993-06-01 Mitsubishi Electric Corp 丸め回路を有する演算回路
JP2803428B2 (ja) * 1992-02-17 1998-09-24 日本電気株式会社 入力バッファ
US5257216A (en) * 1992-06-10 1993-10-26 Intel Corporation Floating point safe instruction recognition apparatus
US5257214A (en) * 1992-06-16 1993-10-26 Hewlett-Packard Company Qualification of register file write enables using self-timed floating point exception flags
US5422805A (en) * 1992-10-21 1995-06-06 Motorola, Inc. Method and apparatus for multiplying two numbers using signed arithmetic
US5375080A (en) * 1992-12-18 1994-12-20 Xerox Corporation Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component
JP3071607B2 (ja) * 1993-06-01 2000-07-31 日本電気株式会社 乗算回路
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
US5448509A (en) * 1993-12-08 1995-09-05 Hewlett-Packard Company Efficient hardware handling of positive and negative overflow resulting from arithmetic operations
US5553015A (en) * 1994-04-15 1996-09-03 International Business Machines Corporation Efficient floating point overflow and underflow detection system
JP3105738B2 (ja) * 1994-06-10 2000-11-06 日本電気株式会社 情報処理装置
US5583805A (en) * 1994-12-09 1996-12-10 International Business Machines Corporation Floating-point processor having post-writeback spill stage
US5548545A (en) * 1995-01-19 1996-08-20 Exponential Technology, Inc. Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
JPH0997178A (ja) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd 飽和演算処理装置および方法
US5798958A (en) * 1996-06-05 1998-08-25 Samsung Electronics Co., Ltd. Zero detect for binary sum
US6018757A (en) * 1996-08-08 2000-01-25 Samsung Electronics Company, Ltd. Zero detect for binary difference
US6282558B1 (en) * 1997-12-19 2001-08-28 Matsushita Electric Industrial Co., Ltd. Data processing system and register file
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
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
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US20040098439A1 (en) * 2000-02-22 2004-05-20 Bass Stephen L. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US6633895B1 (en) * 2000-02-22 2003-10-14 Hewlett-Packard Development Company, L.P. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US6996596B1 (en) * 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7853653B2 (en) * 2004-11-03 2010-12-14 Aspect Software, Inc. Method of tracking e-mail handling by a remote agent of an automatic contact distributor
US7668896B2 (en) * 2004-11-30 2010-02-23 Arm Limited Data processing apparatus and method for performing floating point multiplication
US7640286B2 (en) * 2004-11-30 2009-12-29 Arm Limited Data processing apparatus and method for performing floating point multiplication
KR100919236B1 (ko) * 2007-05-22 2009-09-30 한국전자통신연구원 병렬 프로세서를 이용한 3차원 그래픽 기하 변환 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU549632B2 (en) * 1981-04-23 1986-02-06 Data General Corporation Floating point notation
JPS59139448A (ja) * 1983-01-28 1984-08-10 Matsushita Electric Ind Co Ltd 浮動小数点乗算装置
JPS6097436A (ja) * 1983-11-01 1985-05-31 Nec Corp 丸め制御回路
US4562553A (en) * 1984-03-19 1985-12-31 Analogic Corporation Floating point arithmetic system and method with rounding anticipation
JPS6125245A (ja) * 1984-07-12 1986-02-04 Nec Corp 丸め処理回路
JPS6170635A (ja) * 1984-09-14 1986-04-11 Hitachi Ltd 丸め制御装置
JPS61239327A (ja) * 1985-04-16 1986-10-24 Nec Corp オ−バフロ−検出方式
JPH0644225B2 (ja) * 1986-03-27 1994-06-08 日本電気株式会社 浮動小数点丸め正規化回路

Also Published As

Publication number Publication date
US5038313A (en) 1991-08-06
EP0381191A3 (en) 1992-06-24
JPH02201645A (ja) 1990-08-09
EP0381191A2 (en) 1990-08-08

Similar Documents

Publication Publication Date Title
JP3076046B2 (ja) 例外検出回路
US5027308A (en) Circuit for adding/subtracting two floating point operands
EP0973089B1 (en) Method and apparatus for computing floating point data
US5357237A (en) In a data processor a method and apparatus for performing a floating-point comparison operation
US5010508A (en) Prenormalization for a floating-point adder
US5128889A (en) Floating-point arithmetic apparatus with compensation for mantissa truncation
US8645449B1 (en) Combined floating point adder and subtractor
JP4500358B2 (ja) 演算処理装置および演算処理方法
JP4388543B2 (ja) 3項入力の浮動小数点加減算器
JPH03100827A (ja) オーバフロー検出回路
EP0381403A2 (en) Pipelined floating point adder for digital computer
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
JPH05324270A (ja) 浮動小数点数のためのフォーマット変換方法及びその装置
JPH09212337A (ja) 浮動小数点演算処理装置
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
JPH0343645B2 (ja)
KR19980082906A (ko) 부동 소수점 숫자의 정수형으로의 변환 방법
JP2695178B2 (ja) 演算回路
CN111290790B (zh) 一种定点转浮点的转换装置
JPH0511980A (ja) 桁あふれ検出方式とその回路
US7003540B2 (en) Floating point multiplier for delimited operands
US6615228B1 (en) Selection based rounding system and method for floating point operations
JP2517064B2 (ja) 非正規化数の処理方式
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
JP2555135B2 (ja) 演算回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees