JP3229057B2 - 例外処理装置 - Google Patents
例外処理装置Info
- Publication number
- JP3229057B2 JP3229057B2 JP03163193A JP3163193A JP3229057B2 JP 3229057 B2 JP3229057 B2 JP 3229057B2 JP 03163193 A JP03163193 A JP 03163193A JP 3163193 A JP3163193 A JP 3163193A JP 3229057 B2 JP3229057 B2 JP 3229057B2
- Authority
- JP
- Japan
- Prior art keywords
- exception
- processing
- result
- circuit
- prediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
例外処理装置に関する。
命令シーケンスに従って演算の実行を行う。しかし、演
算実行中に例外が生じ、演算の継続が不可能になる場合
がある。ここで例外とは、オペランド等の入力値が不適
当であったり、演算結果が異常値になり、これ以上、正
常な演算実行の継続が不可能になった状態になることで
ある。
に本来の命令シーケンスの制御から一時的に離れて例外
の処理を行う。そして、処理の終了後、再び従来の命令
シーケンスに復帰する。例外の処理は一般に複雑である
ため、演算装置は例外が起こるとトラップ(例外処理)
を行い、専用のソフトウエア(トラップルーチン)で処
理することが多い。
ー、アンダーフロー等の例外が生じる。以下では、浮動
小数点演算器に於ける例外処理に付いて、特にIEEE
754規格に基づき説明する。
ロー、(2)アンダフロー、(3)精度落ち、(4)ゼ
ロ除算、(5)無効演算、の五つの例外が規定されてい
る。これらの例外が生じた場合には、直ちに例外処理を
行い、処理を終了してから本来の命令シーケンスに復帰
する。例外処理は、(1)ユーザの定義したトラップ・
ルーチンにトラップする、(2)規格により規定された
定数を出力する、の2つの処理モードが規定されてい
る。
内容は自由に定義することができる。後者は、演算処理
装置全体、或いは演算処理装置を実装したシステムが責
任を負う処理である。本処理では、規格で規定された定
数、(1)非数Nan、(2)無限大、(3)最大値、
のうち、何れかが、例外の種類、丸めのモード、仮数部
の符号によって出力される。表1は、出力するべきデフ
ォルト値(定数)の一覧である。
雑な処理を必要とする。
示す。ここに示すように従来の浮動小数点演算器では、
例外の発生を検出してから例外処理を行っている。従っ
て、オーバフロー、アンダフロー、など演算パイプライ
ン203の後半でしか検出できない例外が発生した場合
には、例外処理の為に余分な処理時間、実行サイクルを
必要としていた。
生じない場合と比較して、演算に要する時間が増加し、
実行速度が著しく遅くなるという問題点があった。さら
に、例外が生じるか否かによって実行に要する処理時
間、サイクル数(レイテンシ)が異なるため、演算パイ
プライン203の制御も複雑になるという問題点があっ
た。
外処理装置は例外の発生を検出してから例外処理を行っ
ているため、例外が生じた場合に実行速度が著しく遅く
なったり、演算パイプラインの制御が複雑になるという
問題点があった。
鑑みてなされたものであり、本発明では、パイプライン
の後半で発生する可能性のある例外を演算処理の初期に
予測し、この予測結果に基づき演算と並行して、例外処
理に於ける定数生成を行い、例外検出後、直ちに定数を
出力することにより、演算後の特別な例外処理時間ある
いは例外処理サイクルを無くし、例外処理の高速化を実
現するとともに、演算処理装置の制御の簡略化を可能に
する例外処理装置を提供する事を目的とする。
解決するために、入力されるオペランド及び演算命令よ
り演算器で演算した結果、発生する可能性がある例外を
予測する例外予測手段と、前記例外予測手段の予測結果
に基づいて、実際に例外が発生した場合に行う処理を前
記演算器に於ける演算処理と並行して行う例外処理手段
と、前記演算器の演算結果により例外を検出する例外検
出手段と、前記例外検出手段の結果に基づき、例外が実
際に発生した場合には、前記例外処理手段の処理結果を
演算結果として選択し、例外が実際に発生しなかった場
合には前記演算器の処理結果を演算結果として選択する
選択手段とを具備する事を要旨とする。
明する。浮動小数点演算器は、例外予測回路100、例
外処理回路101、例外検出回路102、及び演算パイ
プライン103、および演算結果選択回路104、より
構成される。オペランド3,4は、演算命令0と共に演
算パイプライン103に供給され、演算が行われる。
103で算出された指数部中間値5と命令の種類に基づ
いて、演算の結果、生じる可能性のある例外を予測す
る。例えば、加算演算の場合、指数部中間値、すなわち
max(2つのオペランドの指数)が、最大有限値であ
る場合にオーバフローが発生する可能性があると予測す
る。
に基づき例外処理を行う。すなわち、予測された例外に
対応するデフォルト値として(1)非数、(2)無限
大、(3)有限最大値、のうち何れかを選択する。
じた例外を検出する。例えば、オーバフローは、指数部
演算結果9が有限最大値を越えたことを検出する事によ
って行なわれる。(1)例外が実際に検出された場合に
は、例外処理回路101に於いて生成された定数7、
(2)例外が検出されなかった場合には、演算パイプラ
イン103の演算結果10が、演算結果11として出力
される。
に基づいて例外処理に於ける定数生成を演算と並行して
行うため、例外処理に要する時間あるいは例外処理サイ
クルを省略する事ができ、例外が生じる場合でも、例外
が生じない場合と同等の処理時間で演算を終了する事が
できる。
する。図1は、本発明を適用した浮動小数点演算器の一
実施例である。本浮動小数点演算器は、浮動小数点演算
規格IEEE754規格に準じて演算を行う。
説明する。本浮動小数点演算器は、例外予測回路10
0、例外処理回路101、例外検出回路102、演算パ
イプライン103、演算結果選択回路104、以上5つ
の大きなモジュールより構成される。
演算命令0、オペランドの精度2、から演算の結果、生
じる可能性のある例外の種類と例外発生の可能性を予測
する。図2は、例外予測回路100の詳細図である。例
外の予測は、指数部の演算中間値5と比較定数を比較す
る事によって行う。ここで比較定数は、演算命令0の種
類、オペランドの精度2、から決定される。
指数部中間値5が、指数部が取り得る有限最大値である
場合のみ発生する可能性がある。したがって、指数部中
間値5を有限最大値と比較し、(指数部中間値5)<
(有限最大値)ならば、演算の結果、オーバフローが生
じることは絶対にない。
は、演算命令0の種類、オペランドの精度2から、比較
定数を生成する。前記オーバフローの場合では、倍精度
に於いて有限最大値を11111111110(二進)
が生成される。符号拡張回路100bは、指数部中間値
5をオペランドの精度2に応じて符号拡張をし、比較定
数とのビット幅を一致させる。
t、単精度8bitであるので、単精度の場合は上位に
3bitだけ0拡張する。比較回路100cは、比較定
数と符号拡張された指数部中間値を比較し、例外の予測
を行う。予測の結果、例外が発生する可能性がまったく
無いならば、例外予測信号6として‘0’を出力する。
例外が発生する可能性がある場合は、例外予測信号6と
して‘1’を出力する。
値)<(比較定数:11111111110(二進))
であればオーバフローが生じることは絶対に無いので、
オーバフロー例外予測信号6として‘0’を出力する。
それ以外は、‘1’を出力する。同様にアンダフロー等
の例外も予測される。尚、例外予測の手法については、
特開平2−10427、特願平2−901028、特願
平2−903105、等が詳しい。
100で予測された例外に基づき、丸めモード1、オペ
ランド精度2、及び符号部演算結果15、に対応した定
数を生成する回路である。なお、例外予測信号6が
‘0’の場合はdon't cdreである。図3は、例外処理回
路101の詳細図である。生成すべき定数は、倍精度、
単精度それぞれ、非数Nan、最大値Max、無限大I
nf、の3種類、計6種類である。
信号1(最近値丸め、0方向丸め、+方向丸め、−方向
丸め)、オペランド精度信号2、例外予測信号6、によ
って、前記定数のうち、例外が発生した場合、演算結果
として出力すべき定数7を選択する。IEEE754に
基づく定数の選択規定は、表1に示した通りである。
演算では、オーバフロー例外が予測された場合、無限大
が選択される。(ここで、符号sは演算結果による) 無限大(2進):s111111111110000000000000000000000
000000000000000000000000000000 例外検出回路102は、指数部の演算結果9により、例
外が実際に生じた否かを検出する。図4は、例外検出回
路102の詳細図である。本回路には、指数部演算結果
9が入力され、全ビット1検出回路102a、全ビット
0検出回路102bに於いて、指数部の全ビットが1で
あるか、0であるかが検出される。
いてオーバフローが予測され、かつ指数部が全て1であ
ることにより検出される。同様に、アンダフローは、例
外予測回路100に於いてアンダフローが予測され、か
つ指数部が全て0であることにより検出される。この図
では、オーバフローとアンダフローについてのみ示した
が、これはこれらの例外が演算の結果より検出できるも
のであり、特に例外予測の効果が大きいためである。
算器である。図5に、指数部と仮数部の典型的な浮動小
数点加減算器の詳細図を示す。本回路は、3ステージ構
成の加減算器で、倍精度、単精度の演算の演算を3クロ
ックで実行することが可能である。第1ステージでは、
指数部中間値算出、指数部大小比較、仮数部スワップ、
仮数部桁合わせ処理、第2ステージでは、仮数部の加
算、仮数部正規化処理、第3ステージでは、指数部桁合
わせ処理、丸め処理、再正規化処理、が行われる。指数
部中間値5は、本演算器の第1ステージより出力され
る。また、指数部演算結果9は、第3ステージより出力
される。
ージ数、演算アルゴリズム等に付いては、本発明の範囲
外である。本実施例の説明に於いて、演算パイプライン
構成、アルゴリズムに関し、詳細に説明することは省略
する。
バフロー例外を取り上げて説明する。ここで、本浮動小
数点演算器は、最近値丸めモードに於いて倍精度の加算
命令を実行しているものとする。
令0と共に演算パイプライン103に供給され、演算が
開始される。演算パイプライン103の第1ステージで
は、2つのオペランドの指数部のうち、大きい方の値が
指数部中間値5として選択され、例外予測回路100に
出力される。
値5と定数を比較して、例外が予測される。オーバフロ
ー例外の予測では、比較定数発生回路100aより、比
較定数11111111110が出力され、比較回路1
00cで比較される。ここで、(指数部中間値5)<
(比較定数)であれば、オーバフローは絶対に起こらな
いので、オーバフロー予測信号6は‘0’となる。
ば、オーバフローが発生する可能性があるので、オーバ
フロー予測信号6は‘1’となる。アンダフロー、その
他の例外についても同様に予測が行われる。例外予測信
号6は、例外処理回路101、例外検出回路102に入
力される。
に基づいて、実際に例外が検出された場合に演算結果と
して出力する定数7を生成する。本動作例では、最近値
丸めモードに於いて倍精度加算を行っているので、オー
バフローが予測されている場合には、定数7として無限
大が選択される。ただし、符号部sは、演算結果によ
る。
における演算処理とは、独立かつ並列に実行される。
ランド、演算命令(加算)0に従い、加算が行われる。
第1ステージでは、指数部中間値5算出、指数部大小比
較、仮数部スワップ、仮数部桁合わせ処理、第2ステー
ジでは、仮数部の加算、仮数部正規化処理、第3ステー
ジでは、指数部桁合わせ処理、丸め処理、再正規化処
理、が行われる。第3ステージからは、指数部の演算結
果9が例外検出回路102に出力される。
9より例外の検出を行う。加算の場合、指数部が最大有
限値(2047(+進))になった場合にオーバフロー
を検出する。具体的には、例外予測回路100に於いて
オーバフローが予測され(オーバフロー例外予測信号6
=1)、かつ指数部が全て1であることによりオーバフ
ローを検出する。同様に、アンダフローは、例外予測回
路100に於いてアンダフローが予測され(アンダフロ
ー例外予測信号6=1)、かつ指数部が全て0であるこ
とにより検出される。
されると、演算結果選択回路104に於いて例外処理回
路101の出力7(定数)が演算結果11として選択さ
れる。例外検出回路102に於いて、例外が検出されな
かった場合には、演算結果選択回路104に於いて演算
パイプライン103の出力10(パイプライン演算結
果)が演算結果11として選択される。
る定数生成を演算パイプライン103に於ける演算と並
行して行うため、従来装置では例外検出後に必要であっ
た例外処理サイクルを省略する事ができ、例外が生じる
場合でも、例外が生じない場合と同等の処理時間で演算
を終了する事ができる。また、例外の発生の如何にかか
わらず、演算に必要な時間あるいはサイクル数(レイテ
ンシ)を一定できるので、演算パイプライン103の制
御を簡略化する事ができる。
に付いて示したが、アンダフローなど、他の例外に於い
ても同様に例外処理を実現できる。また、本実施例で
は、加減算器の例に付いて示したが、本発明の機能は演
算の種類には依存しない。乗算、除算、その他の演算の
場合でも同様の効果を得る事が可能である。
能性のある例外を演算処理の初期に予測し、この予測結
果に基づき、演算と平行して例外処理を行うので、例外
処理の為の特別な実行サイクルを省く事ができ、例外処
理およびシステム全体の処理速度の向上に極めて有効で
ある。また、例外の発生の如何にかかわらず、演算の実
行時間あるいは実行サイクル数(レイテンシ)を一定に
できるので、演算パイプラインの制御を簡略化する事が
できる。
Claims (2)
- 【請求項1】 入力されるオペランド及び演算命令より
演算器で演算した結果、発生する可能性がある例外を予
測する例外予測手段と、 前記例外予測手段の予測結果に基づいて、実際に例外が
発生した場合に行う処理を前記演算器に於ける演算処理
と並行して行う例外処理手段と、 前記演算器の演算結果により例外を検出する例外検出手
段と、 前記例外検出手段の結果に基づき、例外が実際に発生し
た場合には、前記例外処理手段の処理結果を演算結果と
して選択し、例外が実際に発生しなかった場合には前記
演算器の処理結果を演算結果として選択する選択手段と
を具備する事を特徴とする例外処理装置。 - 【請求項2】前記演算器が、浮動小数点演算器であり、
前記例外処理手段による例外処理が、前記例外予測手段
によって予測された例外に対応するデフォルト値として
非数、無限大、有限最大値のうち何れかを選択して定数
とする処理であることを特徴とする請求項1に記載の例
外処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03163193A JP3229057B2 (ja) | 1993-02-22 | 1993-02-22 | 例外処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03163193A JP3229057B2 (ja) | 1993-02-22 | 1993-02-22 | 例外処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06250848A JPH06250848A (ja) | 1994-09-09 |
JP3229057B2 true JP3229057B2 (ja) | 2001-11-12 |
Family
ID=12336566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03163193A Expired - Fee Related JP3229057B2 (ja) | 1993-02-22 | 1993-02-22 | 例外処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3229057B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152382B2 (en) * | 2012-10-31 | 2015-10-06 | Intel Corporation | Reducing power consumption in a fused multiply-add (FMA) unit responsive to input data values |
-
1993
- 1993-02-22 JP JP03163193A patent/JP3229057B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
吉田尊・他、「スーパースカラ向け高性能FPUの制御方式」、電子情報通信学会技術研究報告、Vol.91、No.490(VLD91−128〜142)、社団法人電子情報通信学会・発行(1992年)、pp.105〜112(JICST資料番号:S0532B) |
福久浩人・他、「高性能スーパ・スカラプロセッサ用浮動小数点演算器」、電子情報通信学会技術研究報告、Vol.92、No.289(CPSY92−34〜44)、社団法人電子情報通信学会・発行(1992年)、pp.81〜88(特許庁CSDB文献番号:CSNT199900533011) |
鈴木一正・他、「ALUの例外処理の高速化手法」、電子情報通信学会技術研究報告、Vol.92、No.289(CPSY92−34〜44)、社団法人電子情報通信学会・発行(1992年)、pp.73〜80(特許庁CSDB文献番号:CSNT199900533010) |
Also Published As
Publication number | Publication date |
---|---|
JPH06250848A (ja) | 1994-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5844830A (en) | Executing computer instrucrions by circuits having different latencies | |
US5357237A (en) | In a data processor a method and apparatus for performing a floating-point comparison operation | |
US5027308A (en) | Circuit for adding/subtracting two floating point operands | |
US6631392B1 (en) | Method and apparatus for predicting floating-point exceptions | |
US5880984A (en) | Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments | |
US5010508A (en) | Prenormalization for a floating-point adder | |
US20120215823A1 (en) | Apparatus and method for performing floating point addition | |
JPH06236257A (ja) | データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置 | |
JP2009536771A (ja) | 非正規化オペランドのためのモードベース乗算−加算プロセッサ | |
Schwarz et al. | FPU implementations with denormalized numbers | |
US5943249A (en) | Method and apparatus to perform pipelined denormalization of floating-point results | |
US5548545A (en) | Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus | |
US5341320A (en) | Method for rapidly processing floating-point operations which involve exceptions | |
US5931895A (en) | Floating-point arithmetic processing apparatus | |
Quinnell et al. | Bridge floating-point fused multiply-add design | |
US6912559B1 (en) | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit | |
US6061707A (en) | Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
JP3229057B2 (ja) | 例外処理装置 | |
JPH09146924A (ja) | 演算方法、演算装置及びマイクロプロセッサ | |
US8005884B2 (en) | Relaxed remainder constraints with comparison rounding | |
JPH10187416A (ja) | 浮動小数点演算装置 | |
JP3089427B2 (ja) | データ処理装置 | |
JP2517064B2 (ja) | 非正規化数の処理方式 | |
KR20030056012A (ko) | 비동기식 덧셈 곱셈 부동 소수점 연산기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070907 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080907 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080907 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090907 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090907 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |