JPH06250820A - 浮動小数点加算器における指数アンダフローおよびオーバフローの検出方法および装置 - Google Patents
浮動小数点加算器における指数アンダフローおよびオーバフローの検出方法および装置Info
- Publication number
- JPH06250820A JPH06250820A JP6043150A JP4315094A JPH06250820A JP H06250820 A JPH06250820 A JP H06250820A JP 6043150 A JP6043150 A JP 6043150A JP 4315094 A JP4315094 A JP 4315094A JP H06250820 A JPH06250820 A JP H06250820A
- Authority
- JP
- Japan
- Prior art keywords
- exponent
- value
- result
- flag
- borrow
- 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
Links
Classifications
-
- 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
- G06F7/485—Adding; Subtracting
-
- 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
- G06F7/4991—Overflow or underflow
-
- 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/49936—Normalisation mentioned as feature only
-
- 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/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 指数結果のアンダフローおよびオーバフロー
のより高速度の検出を可能にする浮動小数点加算システ
ムを提供する。 【構成】 浮動小数点加算器(200)のための指数減
算器システム(226)は2つの浮動小数点数に対して
行なわれる加算操作に対して指数結果(EXP_lo
w)および丸められた指数結果(EXP_high)を
発生し、かつ指数減算器(52,72)において前記指
数結果の更新が完了する前に前記指数結果および前記丸
められた指数結果に対しオーバフローフラグ(Over
flow_low,Overflow_high)およ
びアンダフローフラグ(Underflow_low,
Underflow_high)を発生する。
のより高速度の検出を可能にする浮動小数点加算システ
ムを提供する。 【構成】 浮動小数点加算器(200)のための指数減
算器システム(226)は2つの浮動小数点数に対して
行なわれる加算操作に対して指数結果(EXP_lo
w)および丸められた指数結果(EXP_high)を
発生し、かつ指数減算器(52,72)において前記指
数結果の更新が完了する前に前記指数結果および前記丸
められた指数結果に対しオーバフローフラグ(Over
flow_low,Overflow_high)およ
びアンダフローフラグ(Underflow_low,
Underflow_high)を発生する。
Description
【0001】
【産業上の利用分野】この発明は浮動小数点加算器に関
し、かつより特定的には浮動小数点加算器によって発生
される指数結果のアンダフローおよびオーバフローの検
出に関する。
し、かつより特定的には浮動小数点加算器によって発生
される指数結果のアンダフローおよびオーバフローの検
出に関する。
【0002】
【従来の技術】浮動小数点数は仮数部(mantiss
a part)および指数部(exponent pa
rt)を有し、かつ通常大きさが32ビット(「単一精
度」)または64ビット(「倍精度」)である。浮動小
数点数のフォーマットは実施されている標準に依存す
る。例えば、広く実施されているIEEE標準は1.f
ffX2eのフォーマットを有し、この場合1.fff
は正規化された仮数でありかつeは指数である。
a part)および指数部(exponent pa
rt)を有し、かつ通常大きさが32ビット(「単一精
度」)または64ビット(「倍精度」)である。浮動小
数点数のフォーマットは実施されている標準に依存す
る。例えば、広く実施されているIEEE標準は1.f
ffX2eのフォーマットを有し、この場合1.fff
は正規化された仮数でありかつeは指数である。
【0003】2つの浮動小数点数に対する浮動小数点加
算操作(これは浮動小数点数(単数または複数)の符号
に応じて減算操作にもなり得る)は以下のステップを有
する。 1)2つの指数の間の差を計算する。 2)より小さな数の仮数を前記指数の差の絶対値だけ右
にシフトし、それによってより小さな数をより大きな数
に整列する。 3)前記2つの仮数を加算する。 4)前記加算結果を正規化する− a)前記仮数の加算結果(ステップ3の結果)の先行す
る“1”のビットを検出する。 b)前記仮数の加算結果を左にシフトして前記先行する
“1”ビットが(減算操作の場合)前記結果の最上位ビ
ット(MSB)となるまで全ての先行するゼロを捨て
る。 c)前記指数結果を更新するために必要とされる左シフ
トの数を2進値に符号化する。 5)前記浮動小数点加算操作の結果を更新するために前
記指数値から前記2進値を減算する。この結果は指数結
果(EXP_low)である。 6)前記結果を丸める。丸めの後に、前記最終的な指数
結果は2つの可能な値、すなわち指数結果EXP_lo
w、または丸められた指数結果EXP_high、のう
ちの1つとなり、この場合EXP_high=EXP_
low+1である。 7)前記最終的な指数結果が所定の範囲内の値を有する
ことをチェックしかつそれに応じてオーバフローおよび
アンダフローフラグを発生する。 8)結果を前記浮動小数点加算器の出力に送る。
算操作(これは浮動小数点数(単数または複数)の符号
に応じて減算操作にもなり得る)は以下のステップを有
する。 1)2つの指数の間の差を計算する。 2)より小さな数の仮数を前記指数の差の絶対値だけ右
にシフトし、それによってより小さな数をより大きな数
に整列する。 3)前記2つの仮数を加算する。 4)前記加算結果を正規化する− a)前記仮数の加算結果(ステップ3の結果)の先行す
る“1”のビットを検出する。 b)前記仮数の加算結果を左にシフトして前記先行する
“1”ビットが(減算操作の場合)前記結果の最上位ビ
ット(MSB)となるまで全ての先行するゼロを捨て
る。 c)前記指数結果を更新するために必要とされる左シフ
トの数を2進値に符号化する。 5)前記浮動小数点加算操作の結果を更新するために前
記指数値から前記2進値を減算する。この結果は指数結
果(EXP_low)である。 6)前記結果を丸める。丸めの後に、前記最終的な指数
結果は2つの可能な値、すなわち指数結果EXP_lo
w、または丸められた指数結果EXP_high、のう
ちの1つとなり、この場合EXP_high=EXP_
low+1である。 7)前記最終的な指数結果が所定の範囲内の値を有する
ことをチェックしかつそれに応じてオーバフローおよび
アンダフローフラグを発生する。 8)結果を前記浮動小数点加算器の出力に送る。
【0004】前記仮数加算結果がオール“1”であり、
したがって丸めによって仮数がオーバフローする場合に
のみ前記最終的な指数結果は丸められた指数結果(EX
P_high)となる。そうでない場合は、前記最終的
な指数結果は指数結果(EXP_low)である。
したがって丸めによって仮数がオーバフローする場合に
のみ前記最終的な指数結果は丸められた指数結果(EX
P_high)となる。そうでない場合は、前記最終的
な指数結果は指数結果(EXP_low)である。
【0005】
【発明が解決しようとする課題】前記最終指数結果のア
ンダフローおよびオーバフローの検出および対応するフ
ラグの発生は浮動小数点加算器のクリティカルパス(c
ritical path)において生じる。典型的に
は、アンダフローおよびオーバフローの検出および発生
は前記指数結果が更新されかつ必要に応じて丸められた
後に生じる。そのようなステップのために必要とされる
遅延時間はクリティカルパスにおけるものであり、かつ
したがって浮動小数点加算器の性能を制限する。知られ
た浮動小数点加算器に伴う他の不都合はアンダフローお
よびオーバフロー検出のために必要とされる論理が複雑
でありかつ実施するのにかなりの領域を必要とすること
である。
ンダフローおよびオーバフローの検出および対応するフ
ラグの発生は浮動小数点加算器のクリティカルパス(c
ritical path)において生じる。典型的に
は、アンダフローおよびオーバフローの検出および発生
は前記指数結果が更新されかつ必要に応じて丸められた
後に生じる。そのようなステップのために必要とされる
遅延時間はクリティカルパスにおけるものであり、かつ
したがって浮動小数点加算器の性能を制限する。知られ
た浮動小数点加算器に伴う他の不都合はアンダフローお
よびオーバフロー検出のために必要とされる論理が複雑
でありかつ実施するのにかなりの領域を必要とすること
である。
【0006】したがって、指数結果のアンダフローおよ
びオーバフローのより高速度の検出を行なう改善された
浮動小数点加算器システムを提供する必要性がある。
びオーバフローのより高速度の検出を行なう改善された
浮動小数点加算器システムを提供する必要性がある。
【0007】
【課題を解決するための手段および作用】本発明によれ
ば、浮動小数点加算器において2つの数に対して行なわ
れる加算操作のための指数結果および丸められた指数結
果を発生しかつ前記指数結果および丸められた指数結果
に対するオーバフローおよびアンダフローフラグを発生
するための方法が提供され、この場合各々の数は指数部
および仮数部を有し、前記方法は、前記2つの数のうち
のより大きな指数を使用して第1および第2の指数値を
発生する段階であって、該第1および第2の指数値の各
々はnビットからなるもの、前記加算操作によって生成
された仮数結果を正規化するために必要とされるビット
シフトの数を表わす2進値を提供する段階であって、該
2進値はmビットを備え、この場合mはnより小さいも
の、前記第1および第2の指数値の各々を2つのグルー
プのビット、すなわち指数値の最下位mビットからなる
第1のグループおよび前記指数値の(n−m)の最上位
ビットからなる第2のグループ、に分割する段階、前記
第1および第2の指数値の各々の前記第2のグループの
(n−m)ビットを1だけ減分し、それによって前記第
1および第2の指数値の各々に対する減分された最上位
ビット結果を提供する段階、前記第1の指数値の減分さ
れた最上位ビット結果および前記第1の指数値の第2の
グループの(n−m)ビットをそれぞれ調べることによ
り前記指数結果および丸められた指数結果のアンダフロ
ーを検出し、かつ該チェック段階に応じてそれぞれ第1
および第2のアンダフローフラグを発生する段階、前記
第2の指数値の減分された最上位ビット結果および前記
第2の指数値の第2のグループの(n−m)ビットをそ
れぞれチェックして前記指数結果および丸められた指数
結果のオーバフローを検出し、かつ該チェック段階に応
じてそれぞれ第1および第2のオーバフローフラグを発
生する段階、前記第1および第2の指数値の各々のmビ
ットの第1のグループから前記2進値を減算し、それに
よって前記第1および第2の指数値の各々に対する最下
位ビット減算結果およびボローフラグ(borrow
flags)を提供する段階であって、該ボローフラグ
は前記減算段階が1のボロー(借り:borrow)を
発生したかあるいは前記減算段階がゼロのボローを発生
したかを示すもの、前記第1および第2の指数値に対し
かつ前記ボローフラグに応じて、1のボローに対するそ
れぞれの減分された最上位ビット結果またはゼロのボロ
ーに対しそれぞれ第2のグループの(n−m)ビットを
選択し、それによって前記第1および第2の指数値の各
々に対する選択された結果を提供する段階、前記指数値
の各々に対しそれぞれの選択された結果を前記それぞれ
の最下位ビット減算結果と組合わせ、それによって前記
指数結果および丸められた指数結果を発生する段階、そ
して前記浮動小数点加算器の出力において前記指数結果
および対応する第1のアンダフローフラグおよび第1の
オーバフローフラグを提供し、かつ丸められた指数結果
および対応する第2のアンダフローフラグおよび第2の
オーバフローフラグを提供する段階、を備えている。
ば、浮動小数点加算器において2つの数に対して行なわ
れる加算操作のための指数結果および丸められた指数結
果を発生しかつ前記指数結果および丸められた指数結果
に対するオーバフローおよびアンダフローフラグを発生
するための方法が提供され、この場合各々の数は指数部
および仮数部を有し、前記方法は、前記2つの数のうち
のより大きな指数を使用して第1および第2の指数値を
発生する段階であって、該第1および第2の指数値の各
々はnビットからなるもの、前記加算操作によって生成
された仮数結果を正規化するために必要とされるビット
シフトの数を表わす2進値を提供する段階であって、該
2進値はmビットを備え、この場合mはnより小さいも
の、前記第1および第2の指数値の各々を2つのグルー
プのビット、すなわち指数値の最下位mビットからなる
第1のグループおよび前記指数値の(n−m)の最上位
ビットからなる第2のグループ、に分割する段階、前記
第1および第2の指数値の各々の前記第2のグループの
(n−m)ビットを1だけ減分し、それによって前記第
1および第2の指数値の各々に対する減分された最上位
ビット結果を提供する段階、前記第1の指数値の減分さ
れた最上位ビット結果および前記第1の指数値の第2の
グループの(n−m)ビットをそれぞれ調べることによ
り前記指数結果および丸められた指数結果のアンダフロ
ーを検出し、かつ該チェック段階に応じてそれぞれ第1
および第2のアンダフローフラグを発生する段階、前記
第2の指数値の減分された最上位ビット結果および前記
第2の指数値の第2のグループの(n−m)ビットをそ
れぞれチェックして前記指数結果および丸められた指数
結果のオーバフローを検出し、かつ該チェック段階に応
じてそれぞれ第1および第2のオーバフローフラグを発
生する段階、前記第1および第2の指数値の各々のmビ
ットの第1のグループから前記2進値を減算し、それに
よって前記第1および第2の指数値の各々に対する最下
位ビット減算結果およびボローフラグ(borrow
flags)を提供する段階であって、該ボローフラグ
は前記減算段階が1のボロー(借り:borrow)を
発生したかあるいは前記減算段階がゼロのボローを発生
したかを示すもの、前記第1および第2の指数値に対し
かつ前記ボローフラグに応じて、1のボローに対するそ
れぞれの減分された最上位ビット結果またはゼロのボロ
ーに対しそれぞれ第2のグループの(n−m)ビットを
選択し、それによって前記第1および第2の指数値の各
々に対する選択された結果を提供する段階、前記指数値
の各々に対しそれぞれの選択された結果を前記それぞれ
の最下位ビット減算結果と組合わせ、それによって前記
指数結果および丸められた指数結果を発生する段階、そ
して前記浮動小数点加算器の出力において前記指数結果
および対応する第1のアンダフローフラグおよび第1の
オーバフローフラグを提供し、かつ丸められた指数結果
および対応する第2のアンダフローフラグおよび第2の
オーバフローフラグを提供する段階、を備えている。
【0008】
【実施例】本発明に係わる浮動小数点加算器におけるオ
ーバフローおよびアンダフローフラグの検出および発生
方法につき図面を参照して実例のみによって説明を行な
う。
ーバフローおよびアンダフローフラグの検出および発生
方法につき図面を参照して実例のみによって説明を行な
う。
【0009】前記IEEE倍精度フォーマットは1つの
符号ビット、11の指数ビットおよび52の仮数(fr
action)ビットを有する。この倍精度フォーマッ
トは+1023を加えることによってバイアスされてお
り、したがって指数は−1022から+1023の範囲
になるべきである。
符号ビット、11の指数ビットおよび52の仮数(fr
action)ビットを有する。この倍精度フォーマッ
トは+1023を加えることによってバイアスされてお
り、したがって指数は−1022から+1023の範囲
になるべきである。
【0010】前記IEEE単精度フォーマットは1つの
符号ビット、8個の指数ビットおよび23ビットのデー
タを有する。この単精度フォーマットは+127を加え
ることによりバイアスされており、したがって指数は−
126から+127の範囲になるべきである。
符号ビット、8個の指数ビットおよび23ビットのデー
タを有する。この単精度フォーマットは+127を加え
ることによりバイアスされており、したがって指数は−
126から+127の範囲になるべきである。
【0011】単精度および倍精度フォーマットの双方を
実施するシステムにおいては、入力される浮動小数点数
は通常倍精度フォーマットで表わされ、それによって浮
動小数点数加算器内の全ての数の指数が+1023の倍
精度バイアスでバイアスされるようになる。これは単精
度フォーマットにおける指数結果が+897(−126
+1023)から+1150(127+1023)の範
囲で有効であり、かつ倍精度フォーマットにおいては+
1(−1023+1023)から+2046(1023
+1023)の範囲で有効であることを意味する。この
規定は本発明を説明するために使用される。
実施するシステムにおいては、入力される浮動小数点数
は通常倍精度フォーマットで表わされ、それによって浮
動小数点数加算器内の全ての数の指数が+1023の倍
精度バイアスでバイアスされるようになる。これは単精
度フォーマットにおける指数結果が+897(−126
+1023)から+1150(127+1023)の範
囲で有効であり、かつ倍精度フォーマットにおいては+
1(−1023+1023)から+2046(1023
+1023)の範囲で有効であることを意味する。この
規定は本発明を説明するために使用される。
【0012】まず図1を参照すると、知られた浮動小数
点数加算器2は2つの浮動小数点数FPAおよびFPB
を受けるための2つの入力4および6を備えている。入
力4および6は回路8に結合され、該回路8は2つの浮
動小数点数FPAおよびFPBのうちのどれがより小さ
いかを判定する。回路8は4つの出力、すなわち、より
大きなおよびより小さな浮動小数点数の仮数、およびよ
り大きなおよびより小さな浮動小数点数の指数、を提供
する。指数減算器10において2つの指数の間の差が計
算され、かつその結果が小さな仮数シフタ12に渡され
る。小さな仮数シフタ12は前記より小さな仮数を前記
指数の差の絶対値だけ右にシフトする。シフトされた結
果は次に仮数加算器14に渡される。
点数加算器2は2つの浮動小数点数FPAおよびFPB
を受けるための2つの入力4および6を備えている。入
力4および6は回路8に結合され、該回路8は2つの浮
動小数点数FPAおよびFPBのうちのどれがより小さ
いかを判定する。回路8は4つの出力、すなわち、より
大きなおよびより小さな浮動小数点数の仮数、およびよ
り大きなおよびより小さな浮動小数点数の指数、を提供
する。指数減算器10において2つの指数の間の差が計
算され、かつその結果が小さな仮数シフタ12に渡され
る。小さな仮数シフタ12は前記より小さな仮数を前記
指数の差の絶対値だけ右にシフトする。シフトされた結
果は次に仮数加算器14に渡される。
【0013】仮数加算器14は前記大きな仮数およびシ
フトされた小さな仮数を加算し、その結果を正規化しか
つ正規化された結果を出力16に提供する。仮数加算器
14はまた前記結果を正規化するために必要とされる左
シフトの数を符号化しかつ符号化された2進値Nを指数
減算器20に提供する。指数減算器20は前記2進値を
より大きな指数から減算し、それによって指数結果を更
新する。倍精度フォーマット(この場合仮数は53ビッ
トからなる)に対しては、前記2進値Nは6ビット幅で
ある。
フトされた小さな仮数を加算し、その結果を正規化しか
つ正規化された結果を出力16に提供する。仮数加算器
14はまた前記結果を正規化するために必要とされる左
シフトの数を符号化しかつ符号化された2進値Nを指数
減算器20に提供する。指数減算器20は前記2進値を
より大きな指数から減算し、それによって指数結果を更
新する。倍精度フォーマット(この場合仮数は53ビッ
トからなる)に対しては、前記2進値Nは6ビット幅で
ある。
【0014】丸め論理22は前記正規化された仮数結果
を「丸める(rounds)」。もし前記正規化された
仮数結果がオール“1”であれば、丸めに際し、丸め論
理22は“1”を前記仮数結果に加算し、それによって
丸められた仮数結果がオーバフローするようになる。こ
れが生じた時、前記仮数の丸められた結果は1ビット右
にシフトされかつ前記システム結果は丸められた指数結
果(EXP_high)を提供するように増分される。
を「丸める(rounds)」。もし前記正規化された
仮数結果がオール“1”であれば、丸めに際し、丸め論
理22は“1”を前記仮数結果に加算し、それによって
丸められた仮数結果がオーバフローするようになる。こ
れが生じた時、前記仮数の丸められた結果は1ビット右
にシフトされかつ前記システム結果は丸められた指数結
果(EXP_high)を提供するように増分される。
【0015】前記正規化された仮数結果(丸められた)
は浮動小数点加算器2の第1の出力18において出力さ
れ、かつ前記指数結果(丸められたあるいは丸められて
いない)は浮動小数点加算器の第2の出力26に結合さ
れかつオーバフローおよびアンダフロー検出器24に結
合される。
は浮動小数点加算器2の第1の出力18において出力さ
れ、かつ前記指数結果(丸められたあるいは丸められて
いない)は浮動小数点加算器の第2の出力26に結合さ
れかつオーバフローおよびアンダフロー検出器24に結
合される。
【0016】前記オーバフローおよびアンダフロー検出
器24は前記指数結果(あるいは、もし丸めが必要であ
れば、「丸められた」指数結果)が前記所定の範囲内の
値を有することをチェックしかつそれに応じてオーバフ
ローおよびアンダフローフラグを発生する。該オーバフ
ローおよびアンダフローフラグは浮動小数点加算器2の
第3の出力19において前記加算結果と共に出力され
る。
器24は前記指数結果(あるいは、もし丸めが必要であ
れば、「丸められた」指数結果)が前記所定の範囲内の
値を有することをチェックしかつそれに応じてオーバフ
ローおよびアンダフローフラグを発生する。該オーバフ
ローおよびアンダフローフラグは浮動小数点加算器2の
第3の出力19において前記加算結果と共に出力され
る。
【0017】指数結果のオーバフローおよびアンダフロ
ーは以下の条件にしたがって検出器24により検出され
る。単精度フォーマットに対しては、 1.もし前記指数結果が≦896であれば、アンダフロ
ーが検出され、そして 2.もし前記指数結果が≧1151であれば、オーバフ
ローが検出される。倍精度フォーマットに対しては、 3.もし前記指数結果が≦0であれば、アンダフローが
検出され、そして 4.もし前記指数結果が≧2047であれば、オーバフ
ローが検出される。
ーは以下の条件にしたがって検出器24により検出され
る。単精度フォーマットに対しては、 1.もし前記指数結果が≦896であれば、アンダフロ
ーが検出され、そして 2.もし前記指数結果が≧1151であれば、オーバフ
ローが検出される。倍精度フォーマットに対しては、 3.もし前記指数結果が≦0であれば、アンダフローが
検出され、そして 4.もし前記指数結果が≧2047であれば、オーバフ
ローが検出される。
【0018】次に図2をも参照すると、指数減算器20
およびオーバフローおよびアンダフロー検出器24が示
されている。オーバフローおよびアンダフロー検出器2
4はオーバフローおよびアンダフロー論理36およびオ
ーバフローおよびアンダフロー論理38を備えている。
およびオーバフローおよびアンダフロー検出器24が示
されている。オーバフローおよびアンダフロー検出器2
4はオーバフローおよびアンダフロー論理36およびオ
ーバフローおよびアンダフロー論理38を備えている。
【0019】前記2進値Nは第1の12ビット減算器3
2および第2の12ビット減算器34の第1の入力Bに
結合されている。より大きな指数e(11:0)は前記
第1の減算器32および第2の減算器34の第2の入力
Aに結合されている。第1の減算器32は前記2進値N
を前記より大きな指数eから減算してその出力に12ビ
ットの指数結果EXP_low(11:0)=e−Nを
提供する。第2の減算器34は前記2進値Nを1が加え
られた前記より大きな指数(e+1)から減算し、それ
によってその出力に12ビットの「丸められた」指数結
果EXP_high(11:0)=e−N+1を提供す
る。これら2つの指数結果はそれぞれのオーバフローお
よびアンダフロー論理回路36および38に供給され
る。
2および第2の12ビット減算器34の第1の入力Bに
結合されている。より大きな指数e(11:0)は前記
第1の減算器32および第2の減算器34の第2の入力
Aに結合されている。第1の減算器32は前記2進値N
を前記より大きな指数eから減算してその出力に12ビ
ットの指数結果EXP_low(11:0)=e−Nを
提供する。第2の減算器34は前記2進値Nを1が加え
られた前記より大きな指数(e+1)から減算し、それ
によってその出力に12ビットの「丸められた」指数結
果EXP_high(11:0)=e−N+1を提供す
る。これら2つの指数結果はそれぞれのオーバフローお
よびアンダフロー論理回路36および38に供給され
る。
【0020】オーバフローおよびアンダフロー論理回路
36は前記指数結果EXP_lowが上に述べた条件1
または2(単精度フォーマットに対し)、または上に述
べた条件3または4(倍精度フォーマットに対し)のい
ずれかを満足するかを検出し、それに応じて1組のフラ
グ、オーバフロー_ロー(Overflow_low)
およびアンダフロー_ロー(Underflow_lo
w)を発生する。オーバフローおよびアンダフロー論理
回路38は前記「丸められた」指数結果EXP_hig
hが上に述べた条件1または2(単精度フォーマットに
対し)、あるいは上に述べた条件3または4(倍精度フ
ォーマットに対し)のいずれかを満足するかを検出し、
かつそれに応じて第2の1組のフラグ、オーバフロー_
ハイ(Overflow_high)およびアンダフロ
ー_ハイ(Underflow_high)を発生す
る。
36は前記指数結果EXP_lowが上に述べた条件1
または2(単精度フォーマットに対し)、または上に述
べた条件3または4(倍精度フォーマットに対し)のい
ずれかを満足するかを検出し、それに応じて1組のフラ
グ、オーバフロー_ロー(Overflow_low)
およびアンダフロー_ロー(Underflow_lo
w)を発生する。オーバフローおよびアンダフロー論理
回路38は前記「丸められた」指数結果EXP_hig
hが上に述べた条件1または2(単精度フォーマットに
対し)、あるいは上に述べた条件3または4(倍精度フ
ォーマットに対し)のいずれかを満足するかを検出し、
かつそれに応じて第2の1組のフラグ、オーバフロー_
ハイ(Overflow_high)およびアンダフロ
ー_ハイ(Underflow_high)を発生す
る。
【0021】前記2つの指数結果EXP_lowおよび
EXP_high並びにそれらのそれぞれのフラグ、o
verflow_lowおよびUnderflow_l
owおよびOverflow_highおよびUnde
rflow_highが丸め論理22に結合される。
EXP_high並びにそれらのそれぞれのフラグ、o
verflow_lowおよびUnderflow_l
owおよびOverflow_highおよびUnde
rflow_highが丸め論理22に結合される。
【0022】もし前記丸め論理22が前記指数結果の丸
めが必要であることを判定すれば、「丸められた」指数
結果EXP_highおよび関連するフラグ、Over
flow_highおよびUnderflow_hig
h、は丸め論理22によって選択されかつ浮動小数点加
算器2の出力に結合される。もし指数の丸めが必要とさ
れなければ、前記指数結果EXP_lowおよび前記関
連するフラグ、Overflow_lowおよびUnd
erflow_low、が前記出力に結合される。
めが必要であることを判定すれば、「丸められた」指数
結果EXP_highおよび関連するフラグ、Over
flow_highおよびUnderflow_hig
h、は丸め論理22によって選択されかつ浮動小数点加
算器2の出力に結合される。もし指数の丸めが必要とさ
れなければ、前記指数結果EXP_lowおよび前記関
連するフラグ、Overflow_lowおよびUnd
erflow_low、が前記出力に結合される。
【0023】図3は、単精度および倍精度に対するオー
バフローおよびアンダフロー論理を示し、これらは上に
概略的に述べた条件1〜4を検出するためにオーバフロ
ーおよびアンダフロー論理回路36および38において
実現される。オーバフロー論理は単精度に対し論理ゲー
ト40の構成を有しかつ倍精度に対し論理ゲート44の
構成を備えており、かつアンダフロー論理は単精度に対
し論理ゲート42の構成を、そして倍精度に対し論理ゲ
ート46の構成を備えている。入力single_ov
f_allow,double_ovf_allowお
よびsingle_unf_allowおよびdoub
le_unf_allowは単精度−倍精度論理の間を
選択する。前記指数結果EXP_lowの12ビットお
よび「丸められた」指数結果EXP_highはそれら
のそれぞれのオーバフローおよびアンダフロー論理36
および38の論理ゲートの構成40,42,44,46
の各々のそれぞれの入力0〜12に結合される。フラグ
は上に概略的に説明した条件にしたがって前記論理によ
って発生される。
バフローおよびアンダフロー論理を示し、これらは上に
概略的に述べた条件1〜4を検出するためにオーバフロ
ーおよびアンダフロー論理回路36および38において
実現される。オーバフロー論理は単精度に対し論理ゲー
ト40の構成を有しかつ倍精度に対し論理ゲート44の
構成を備えており、かつアンダフロー論理は単精度に対
し論理ゲート42の構成を、そして倍精度に対し論理ゲ
ート46の構成を備えている。入力single_ov
f_allow,double_ovf_allowお
よびsingle_unf_allowおよびdoub
le_unf_allowは単精度−倍精度論理の間を
選択する。前記指数結果EXP_lowの12ビットお
よび「丸められた」指数結果EXP_highはそれら
のそれぞれのオーバフローおよびアンダフロー論理36
および38の論理ゲートの構成40,42,44,46
の各々のそれぞれの入力0〜12に結合される。フラグ
は上に概略的に説明した条件にしたがって前記論理によ
って発生される。
【0024】図2の指数減算器20およびオーバフロー
およびアンダフロー検出器24は可能な指数結果および
それらの関連するフラグの双方を生成しクリティカルパ
スにおける遅延を低減するが、オーバフローおよびアン
ダフローフラグを発生するために3つの一連のステップ
が必要となり、これらは、拡張された2進値Nextを
発生し、該Nextを前記より大きな指数eおよび前記
より大きな指数に1を加えたもの(e+1)から減算
し、オーバフローおよびアンダフローのために前記2つ
の可能な指数結果、EXP_lowおよびEXP_hi
gh、をチェックし、かつ該チェック段階に応じてオー
バフローおよびアンダフローフラグを発生する段階であ
る。これらの一連のステップはかなりの量の時間を必要
としかつ浮動小数点加算器2のクリティカルパスにあり
これは加算器2の性能を制限する。さらに、前記必要と
される論理はかなり大きくかつ複雑である。
およびアンダフロー検出器24は可能な指数結果および
それらの関連するフラグの双方を生成しクリティカルパ
スにおける遅延を低減するが、オーバフローおよびアン
ダフローフラグを発生するために3つの一連のステップ
が必要となり、これらは、拡張された2進値Nextを
発生し、該Nextを前記より大きな指数eおよび前記
より大きな指数に1を加えたもの(e+1)から減算
し、オーバフローおよびアンダフローのために前記2つ
の可能な指数結果、EXP_lowおよびEXP_hi
gh、をチェックし、かつ該チェック段階に応じてオー
バフローおよびアンダフローフラグを発生する段階であ
る。これらの一連のステップはかなりの量の時間を必要
としかつ浮動小数点加算器2のクリティカルパスにあり
これは加算器2の性能を制限する。さらに、前記必要と
される論理はかなり大きくかつ複雑である。
【0025】したがって浮動小数点加算器において速度
を増大させかつオーバフローおよびアンダフローフラグ
の発生の複雑さを低減させる必要がある。
を増大させかつオーバフローおよびアンダフローフラグ
の発生の複雑さを低減させる必要がある。
【0026】本発明の好ましい実施例に係わる指数減算
器および検出器226を導入した浮動小数点加算器20
0が図4に示されている。図1のものと同様の構成要素
は同じ参照数字に数200を加えたものによって参照さ
れている。
器および検出器226を導入した浮動小数点加算器20
0が図4に示されている。図1のものと同様の構成要素
は同じ参照数字に数200を加えたものによって参照さ
れている。
【0027】指数減算器およびオーバフローおよびアン
ダフロー検出器226は2つの部分からなり、すなわち
(図5を参照して説明される)アンダフローフラグ発生
を備えた指数減算器230および(図6を参照して説明
される)オーバフローフラグ発生を備えた指数減算器2
32である。
ダフロー検出器226は2つの部分からなり、すなわち
(図5を参照して説明される)アンダフローフラグ発生
を備えた指数減算器230および(図6を参照して説明
される)オーバフローフラグ発生を備えた指数減算器2
32である。
【0028】前記アンダフローフラグ発生を備えた指数
減算器230は2進値Nおよび前記より大きな指数eを
受け取りかつ丸め論理228に対し3つの出力信号、す
なわち低い指数結果EXP_low(11:0)=e
(11:0)−N(5:0)、および2つのアンダフロ
ーフラグUnderflow_lowおよびUnder
flow_high、を提供する。
減算器230は2進値Nおよび前記より大きな指数eを
受け取りかつ丸め論理228に対し3つの出力信号、す
なわち低い指数結果EXP_low(11:0)=e
(11:0)−N(5:0)、および2つのアンダフロ
ーフラグUnderflow_lowおよびUnder
flow_high、を提供する。
【0029】前記オーバフローフラグ発生を備えた指数
減算器232は2進値Nおよび2だけ増分された前記よ
り大きな指数eを受け取り、かつ丸め論理228に対し
て3つの出力信号、すなわち高い指数結果EXP_hi
gh(11:0)=e(11:0)−N(5:0)+
1、および2つのオーバフローフラグOverflow
_lowおよびOverflow_highを提供す
る。
減算器232は2進値Nおよび2だけ増分された前記よ
り大きな指数eを受け取り、かつ丸め論理228に対し
て3つの出力信号、すなわち高い指数結果EXP_hi
gh(11:0)=e(11:0)−N(5:0)+
1、および2つのオーバフローフラグOverflow
_lowおよびOverflow_highを提供す
る。
【0030】前記丸め論理228は、指数減算器および
オーバフローおよびアンダフロー検出器226からの出
力に加えて、仮数加算器214の出力216から正規化
された仮数を受信する。丸め論理228は前記仮数結果
を「丸め」かつこの「丸められた」結果を浮動小数点加
算器200の第1の出力218に出力する。丸め論理2
28はまた指数丸めが必要であるか否かを判定する。も
し指数丸めが必要であれば、丸め論理228は前記高い
指数結果EXP_highおよびその関連するフラグU
nderflow_highおよびOverflow_
highを選択し、これらは浮動小数点加算器200の
それぞれ出力226および219において出力される。
もし指数丸めが必要でなければ、丸め論理228は低い
指数結果EXP_lowおよびその関連するフラグUn
derflow_lowおよびOverflow_lo
wを選択し、これらはそれぞれ出力226および219
において出力される。
オーバフローおよびアンダフロー検出器226からの出
力に加えて、仮数加算器214の出力216から正規化
された仮数を受信する。丸め論理228は前記仮数結果
を「丸め」かつこの「丸められた」結果を浮動小数点加
算器200の第1の出力218に出力する。丸め論理2
28はまた指数丸めが必要であるか否かを判定する。も
し指数丸めが必要であれば、丸め論理228は前記高い
指数結果EXP_highおよびその関連するフラグU
nderflow_highおよびOverflow_
highを選択し、これらは浮動小数点加算器200の
それぞれ出力226および219において出力される。
もし指数丸めが必要でなければ、丸め論理228は低い
指数結果EXP_lowおよびその関連するフラグUn
derflow_lowおよびOverflow_lo
wを選択し、これらはそれぞれ出力226および219
において出力される。
【0031】次に図5をも参照すると、本発明の好まし
い実施例によるアンダフローフラグ発生を備えた指数減
算器230は前記より大きな指数e(11:0)から6
ビットの2進値N(5:0)を減算するための手段およ
び前記減算手段と並列にアンダフローフラグ、すなわち
Underflow_lowおよびUnderflow
_high、を発生するための手段を備えている。
い実施例によるアンダフローフラグ発生を備えた指数減
算器230は前記より大きな指数e(11:0)から6
ビットの2進値N(5:0)を減算するための手段およ
び前記減算手段と並列にアンダフローフラグ、すなわち
Underflow_lowおよびUnderflow
_high、を発生するための手段を備えている。
【0032】指数減算器230は12ビットのより大き
な指数e(11:0)および6ビットの2進値N(5:
0)を受け取る。6ビットの値(N)は指数の更新の間
に前記指数結果から減算されるから、指数結果の最上位
ビット(MSB)は2つの可能な値、下の値または下の
値−1のみを持つことができる。したがって、好ましい
実施例においては、前記より大きな指数の6つの最下位
ビット(LSB)e(5:0)は6ビットの減算器52
の1つの入力に供給され、かつ前記より大きな指数(1
1:6)の6つの最上位ビット(MSB)は6ビットの
デクリメンタ54、6ビットのマルチプレクサ56の第
1の入力、および第1のアンダフロー検出論理60に結
合される。
な指数e(11:0)および6ビットの2進値N(5:
0)を受け取る。6ビットの値(N)は指数の更新の間
に前記指数結果から減算されるから、指数結果の最上位
ビット(MSB)は2つの可能な値、下の値または下の
値−1のみを持つことができる。したがって、好ましい
実施例においては、前記より大きな指数の6つの最下位
ビット(LSB)e(5:0)は6ビットの減算器52
の1つの入力に供給され、かつ前記より大きな指数(1
1:6)の6つの最上位ビット(MSB)は6ビットの
デクリメンタ54、6ビットのマルチプレクサ56の第
1の入力、および第1のアンダフロー検出論理60に結
合される。
【0033】前記6ビットの減算器52は該減算器52
の第2の入力に結合される、2進値N(5:0)を前記
より大きな指数の6つのLSB e(5:0)から減算
し、かつ6ビットの指数結果EXP_low(5:0)
を出力53に与える。デクリメンタ54は“1”を前記
より大きな指数の6つのMSB e(11:6)から減
算し、かつ減分された結果(e(11:6)−1)は6
ビットのマルチプレクサ56の第2の入力および第2の
アンダフロー検出論理58に供給される。前記2進値N
(5:0)の発生はクリティカルパスにあるから、前記
値(e(11:6)−1)はマルチプレクサ56への制
御が発生される充分前に用意ができる。
の第2の入力に結合される、2進値N(5:0)を前記
より大きな指数の6つのLSB e(5:0)から減算
し、かつ6ビットの指数結果EXP_low(5:0)
を出力53に与える。デクリメンタ54は“1”を前記
より大きな指数の6つのMSB e(11:6)から減
算し、かつ減分された結果(e(11:6)−1)は6
ビットのマルチプレクサ56の第2の入力および第2の
アンダフロー検出論理58に供給される。前記2進値N
(5:0)の発生はクリティカルパスにあるから、前記
値(e(11:6)−1)はマルチプレクサ56への制
御が発生される充分前に用意ができる。
【0034】第1のマルチプレクサ62は第1のアンダ
フロー検出論理60および第2のアンダフロー検出論理
58の双方から出力信号を受け取りかつ第1のアンダフ
ローフラグUnderflow_lowを提供する。第
2のマルチプレクサ64は第1のアンダフロー検出論理
60および第2のアンダフロー検出論理58の双方から
出力信号を受け取りかつ第2のアンダフローフラグUn
derflow_highを提供する。前記第1のアン
ダフロー検出論理60および第2のアンダフロー検出論
理58の動作は図7を参照して詳細に説明する。
フロー検出論理60および第2のアンダフロー検出論理
58の双方から出力信号を受け取りかつ第1のアンダフ
ローフラグUnderflow_lowを提供する。第
2のマルチプレクサ64は第1のアンダフロー検出論理
60および第2のアンダフロー検出論理58の双方から
出力信号を受け取りかつ第2のアンダフローフラグUn
derflow_highを提供する。前記第1のアン
ダフロー検出論理60および第2のアンダフロー検出論
理58の動作は図7を参照して詳細に説明する。
【0035】次に図7をも参照すると、本発明に係わる
前記第1のアンダフロー検出論理60および第2のアン
ダフロー検出論理58は前記指数結果の前記(値−1)
に対してアンダフローフラグを発生するよう構成されて
いる。これは上で特定したアンダフロー条件1および3
が、単精度フォーマットに対しては、 1.もし(指数結果−1)≦895であれば、アンダフ
ローが検出され、そして倍精度フォーマットに対して
は、 3.もし(指数結果−1)≦−1であれば、アンダフロ
ーが検出される。
前記第1のアンダフロー検出論理60および第2のアン
ダフロー検出論理58は前記指数結果の前記(値−1)
に対してアンダフローフラグを発生するよう構成されて
いる。これは上で特定したアンダフロー条件1および3
が、単精度フォーマットに対しては、 1.もし(指数結果−1)≦895であれば、アンダフ
ローが検出され、そして倍精度フォーマットに対して
は、 3.もし(指数結果−1)≦−1であれば、アンダフロ
ーが検出される。
【0036】したがって、前記2つの結果EXP_lo
wおよびEXP_highの指数−1(「減分された」
指数)の値、(e(11:0)−N(5:0)−1)お
よび(e(11:0)−N(5:0))、はアンダフロ
ーに対してチェックされる。さらに、単精度に対するア
ンダフローを検出するためには5つのMSB e(1
1:7)の減分された指数のみが必要とされ、かつ倍精
度に対してはMSBe(11)のみが必要とされる。
wおよびEXP_highの指数−1(「減分された」
指数)の値、(e(11:0)−N(5:0)−1)お
よび(e(11:0)−N(5:0))、はアンダフロ
ーに対してチェックされる。さらに、単精度に対するア
ンダフローを検出するためには5つのMSB e(1
1:7)の減分された指数のみが必要とされ、かつ倍精
度に対してはMSBe(11)のみが必要とされる。
【0037】第1のアンダフロー検出論理60は前記指
数値e(11:6)に対するアンダフローを検出し、か
つ出力U_highを提供する。第2のアンダフロー検
出論理58は前記指数値(e(11:6)−1)に対す
るアンダフローを検出しかつ出力U_lowを提供す
る。
数値e(11:6)に対するアンダフローを検出し、か
つ出力U_highを提供する。第2のアンダフロー検
出論理58は前記指数値(e(11:6)−1)に対す
るアンダフローを検出しかつ出力U_lowを提供す
る。
【0038】単精度に対しては、アンダフロー検出論理
構成100はNANDゲート102、NORゲート10
6およびANDゲート104を具備する。NANDゲー
ト102は前記減分された指数の第8のe(7)、第9
のe(8)および第10のe(9)ビットを受けるため
の3つの入力を有し、かつ前記ANDゲート104の第
1の入力に結合された出力を有する。前記NORゲート
106は前記減分された指数の第11のe(10)およ
び第12のe(11)ビットを受けるための2つの入力
を有しかつ前記ANDゲート104の第2の入力に結合
された出力を有する。前記ANDゲート104は単精度
アンダフロー許容(allow)信号(single_
unf_allow)を受けるための第3の入力および
アンダフローフラグを提供するための出力を有する。も
し前記アンダフローフラグの値が論理“1”であれば、
前記減分された指数(指数結果−1)≦895であり、
かつ前記指数結果に対しアンダフローが検出されてい
る。もしアンダフローフラグの値が論理“0”であれ
ば、指数結果に対するアンダフローはない。
構成100はNANDゲート102、NORゲート10
6およびANDゲート104を具備する。NANDゲー
ト102は前記減分された指数の第8のe(7)、第9
のe(8)および第10のe(9)ビットを受けるため
の3つの入力を有し、かつ前記ANDゲート104の第
1の入力に結合された出力を有する。前記NORゲート
106は前記減分された指数の第11のe(10)およ
び第12のe(11)ビットを受けるための2つの入力
を有しかつ前記ANDゲート104の第2の入力に結合
された出力を有する。前記ANDゲート104は単精度
アンダフロー許容(allow)信号(single_
unf_allow)を受けるための第3の入力および
アンダフローフラグを提供するための出力を有する。も
し前記アンダフローフラグの値が論理“1”であれば、
前記減分された指数(指数結果−1)≦895であり、
かつ前記指数結果に対しアンダフローが検出されてい
る。もしアンダフローフラグの値が論理“0”であれ
ば、指数結果に対するアンダフローはない。
【0039】倍精度に対しては、アンダフロー検出論理
構成101は前記減分された指数の12番目のビットe
(11)を受けるための第1の入力、倍精度アンダフロ
ー許容信号(double_unf_allow)を受
けるための第2の入力およびアンダフローフラグを提供
するための出力を有するANDゲート108を備えてい
る。もしアンダフローフラグの値が論理“1”であれ
ば、前記減分された指数(指数結果−1)≦−1であ
り、かつアンダフローは指数結果に対して検出されてい
る。もし前記アンダフローフラグの値が論理“0”であ
れば、アンダフローはない。
構成101は前記減分された指数の12番目のビットe
(11)を受けるための第1の入力、倍精度アンダフロ
ー許容信号(double_unf_allow)を受
けるための第2の入力およびアンダフローフラグを提供
するための出力を有するANDゲート108を備えてい
る。もしアンダフローフラグの値が論理“1”であれ
ば、前記減分された指数(指数結果−1)≦−1であ
り、かつアンダフローは指数結果に対して検出されてい
る。もし前記アンダフローフラグの値が論理“0”であ
れば、アンダフローはない。
【0040】前記アンダフロー検出論理構成100およ
び101は単精度フォーマットと倍精度フォーマットと
の間で選択するためにそしてまた2進値Nの減算による
アンダフローフラグの誤った発生を防止するためにアン
ダフロー許容信号入力を有している。これらの制御は減
算の前に前記指数値から計算される。
び101は単精度フォーマットと倍精度フォーマットと
の間で選択するためにそしてまた2進値Nの減算による
アンダフローフラグの誤った発生を防止するためにアン
ダフロー許容信号入力を有している。これらの制御は減
算の前に前記指数値から計算される。
【0041】好ましい本実施例における6ビットの減算
器52はキャリー選択減算器として実施され、これは2
つのボローフラグを発生し、すなわちB_1は演算(e
(5:0)−N(5:0)−1)に対する第1のボロー
フラグであり、かつB_0は演算(e(5:0)−N
(5:0))に対する第2のボローフラグである。第2
のボローフラグB_0は6ビットのマルチプレクサ56
の制御入力に結合される。第2のボローフラグB_0の
値は前記6ビットのマルチプレクサ56の第2の入力に
おける、減分された6ビットの結果(e(11:6)−
1)、あるいは前記6ビットのマルチプレクサ56の第
1の入力における、前記より大きな指数の6つのMSB
e(11:6)のいずれが6ビットのマルチプレクサ
56の出力66に6ビットの出力EXP_low(1
1:6)を提供するかを選択する。もしB_0の値が
“1”であれば、減算器52からの借り(borro
w)は1でありかつ減分された結果(e(11:6)−
1)は6ビットのマルチプレクサ56によって選択され
る。もしB_0の値が“0”であれば、減算器52から
の借りはゼロでありかつ6つのMSB e(11:6)
が6ビットのマルチプレクサ56によって選択される。
第2のボローフラグもまた、第2のマルチプレクサ64
に供給され、それによってUnderflow_hig
hフラグが(e(11:0)−N(5:0))のアンダ
フローフラグとなるようにされる。前記第1のボローフ
ラグB_1は第1のマルチプレクサ62に結合され、そ
れによってUnderflow_lowフラグが(e
(11:0)−N(5:0)−1)のアンダフローフラ
グとなるようにされる。前記第1および第2のボローフ
ラグB_0およびB_1の値は前記出力U_lowまた
はU_highのいずれが第1のマルチプレクサ62お
よび第2のマルチプレクサ64によって選択されるかを
決定する。
器52はキャリー選択減算器として実施され、これは2
つのボローフラグを発生し、すなわちB_1は演算(e
(5:0)−N(5:0)−1)に対する第1のボロー
フラグであり、かつB_0は演算(e(5:0)−N
(5:0))に対する第2のボローフラグである。第2
のボローフラグB_0は6ビットのマルチプレクサ56
の制御入力に結合される。第2のボローフラグB_0の
値は前記6ビットのマルチプレクサ56の第2の入力に
おける、減分された6ビットの結果(e(11:6)−
1)、あるいは前記6ビットのマルチプレクサ56の第
1の入力における、前記より大きな指数の6つのMSB
e(11:6)のいずれが6ビットのマルチプレクサ
56の出力66に6ビットの出力EXP_low(1
1:6)を提供するかを選択する。もしB_0の値が
“1”であれば、減算器52からの借り(borro
w)は1でありかつ減分された結果(e(11:6)−
1)は6ビットのマルチプレクサ56によって選択され
る。もしB_0の値が“0”であれば、減算器52から
の借りはゼロでありかつ6つのMSB e(11:6)
が6ビットのマルチプレクサ56によって選択される。
第2のボローフラグもまた、第2のマルチプレクサ64
に供給され、それによってUnderflow_hig
hフラグが(e(11:0)−N(5:0))のアンダ
フローフラグとなるようにされる。前記第1のボローフ
ラグB_1は第1のマルチプレクサ62に結合され、そ
れによってUnderflow_lowフラグが(e
(11:0)−N(5:0)−1)のアンダフローフラ
グとなるようにされる。前記第1および第2のボローフ
ラグB_0およびB_1の値は前記出力U_lowまた
はU_highのいずれが第1のマルチプレクサ62お
よび第2のマルチプレクサ64によって選択されるかを
決定する。
【0042】選択された6ビットの出力66は前記出力
53と組合わされ、それによって指数減算器230が、
2つのアンダフローフラグ、Underflow_lo
wおよびUnderflow_highに加えて、12
ビットの指数結果EXP_low(11:0)=(e
(11:0)−N(5:0))を提供する。
53と組合わされ、それによって指数減算器230が、
2つのアンダフローフラグ、Underflow_lo
wおよびUnderflow_highに加えて、12
ビットの指数結果EXP_low(11:0)=(e
(11:0)−N(5:0))を提供する。
【0043】前記アンダフロー検出論理は指数結果のよ
り高いビットのみをアンダフローに対してチェックする
必要があるように構成されているから、かつデクリメン
タ54は6つのMSBに対して2つの可能な結果(下の
値)または(下の値−1)を発生するために使用される
から、2つの結果およびそれらのアンダフローフラグは
減算器52が減算を完了する前に発生できる。
り高いビットのみをアンダフローに対してチェックする
必要があるように構成されているから、かつデクリメン
タ54は6つのMSBに対して2つの可能な結果(下の
値)または(下の値−1)を発生するために使用される
から、2つの結果およびそれらのアンダフローフラグは
減算器52が減算を完了する前に発生できる。
【0044】次に図6をも参照すると、本発明の好まし
い実施例によるオーバフローフラグ発生を備えた指数減
算器232は、y(11:0)=e(11:0)+2と
し、前記2進値Nを指数値y(11:0)から減算する
ための手段、および前記減算手段と並列にオーバフロー
フラグOverflow_lowおよびOverflo
w_highを発生するための手段を備えている。前記
値y=e+2は前記小さなインクリメンタ(図示せず)
を使用して前記より大きな指数2を加算することによっ
て得られる。該インクリメンタはクリティカルパスには
なくかつしたがって比較的低速とすることができる。
い実施例によるオーバフローフラグ発生を備えた指数減
算器232は、y(11:0)=e(11:0)+2と
し、前記2進値Nを指数値y(11:0)から減算する
ための手段、および前記減算手段と並列にオーバフロー
フラグOverflow_lowおよびOverflo
w_highを発生するための手段を備えている。前記
値y=e+2は前記小さなインクリメンタ(図示せず)
を使用して前記より大きな指数2を加算することによっ
て得られる。該インクリメンタはクリティカルパスには
なくかつしたがって比較的低速とすることができる。
【0045】指数減算器232は前記12ビットの指数
値y(11:0)および前記6ビットの2進値N(5:
0)を受け取る。前記指数値y(5:0)の6つのLS
Bは6ビットの減算器72の1つの入力に供給されかつ
前記指数値y(11:6)の6つのMSBは6ビットの
デクリメンタ74、6ビットのマルチプレクサ76の第
1の入力、および第1のオーバフロー検出論理80に結
合される。前記6ビットの減算器72は、減算器72の
第2の入力に結合される、前記2進値N(5:0)を前
記指数値の6つのLSB y(5:0)から減算しかつ
出力73に6ビットの指数結果EXP_high(5:
0)を提供する。デクリメンタ74は前記指数値の6つ
のMSB y(11:6)から“1”を減算し、かつデ
クリメントされた結果(y(11:6)−1)は前記6
ビットのマルチプレクサ76の第2の入力および第2の
オーバフロー検出論理78に供給される。
値y(11:0)および前記6ビットの2進値N(5:
0)を受け取る。前記指数値y(5:0)の6つのLS
Bは6ビットの減算器72の1つの入力に供給されかつ
前記指数値y(11:6)の6つのMSBは6ビットの
デクリメンタ74、6ビットのマルチプレクサ76の第
1の入力、および第1のオーバフロー検出論理80に結
合される。前記6ビットの減算器72は、減算器72の
第2の入力に結合される、前記2進値N(5:0)を前
記指数値の6つのLSB y(5:0)から減算しかつ
出力73に6ビットの指数結果EXP_high(5:
0)を提供する。デクリメンタ74は前記指数値の6つ
のMSB y(11:6)から“1”を減算し、かつデ
クリメントされた結果(y(11:6)−1)は前記6
ビットのマルチプレクサ76の第2の入力および第2の
オーバフロー検出論理78に供給される。
【0046】第1のマルチプレクサ82は出力信号を前
記第1のオーバフロー検出論理80および第2のオーバ
フロー検出論理78の双方から受け取りかつ第1のオー
バフローフラグOverflow_highを提供す
る。第2のマルチプレクサ84は前記第1のオーバフロ
ー検出論理80および第2のオーバフロー検出論理78
の双方から出力信号を受け取り、かつ第2のオーバフロ
ーフラグOverflow_lowを提供する。前記第
1および第2のオーバフロー検出論理80および78の
動作は図8を参照して詳細に説明する。
記第1のオーバフロー検出論理80および第2のオーバ
フロー検出論理78の双方から受け取りかつ第1のオー
バフローフラグOverflow_highを提供す
る。第2のマルチプレクサ84は前記第1のオーバフロ
ー検出論理80および第2のオーバフロー検出論理78
の双方から出力信号を受け取り、かつ第2のオーバフロ
ーフラグOverflow_lowを提供する。前記第
1および第2のオーバフロー検出論理80および78の
動作は図8を参照して詳細に説明する。
【0047】次に図8をも参照すると、本発明に係わる
前記第1および第2のオーバフロー検出論理80および
78は前記指数結果の前記(値+1)に対しオーバフロ
ーフラグを発生するよう構成されている。これは前に示
したオーバフロー条件2および4は次のようになること
を意味する。
前記第1および第2のオーバフロー検出論理80および
78は前記指数結果の前記(値+1)に対しオーバフロ
ーフラグを発生するよう構成されている。これは前に示
したオーバフロー条件2および4は次のようになること
を意味する。
【0048】単精度フォーマットに対しては、 2.もし(指数結果+1)≧1152であれば、オーバ
フローが検出され、そして倍精度フォーマットに対して
は、 4.もし(指数結果+1)≧2048であれば、オーバ
フローが検出される。
フローが検出され、そして倍精度フォーマットに対して
は、 4.もし(指数結果+1)≧2048であれば、オーバ
フローが検出される。
【0049】したがって、前記2つの結果EXP_lo
wおよびEXP_highの前記指数+1(「増分され
た」指数)の値、それぞれ(e(11:0)−N(5:
0)+1)および(e(11:0)−N(5:0)+
2)、がオーバフローに対してチェックされる。さら
に、これらの増分された指数の5つのMSB e(1
1:7)のみが単精度に対するオーバフローを検出する
ために必要とされ、かつ倍精度に対してはMSB e
(12)のみが必要とされる。前記第1のオーバフロー
検出論理80は前記指数値y(11:6)に対してオー
バフローを検出しかつ出力O_highを提供する。第
2のオーバフロー検出論理78は減分された指数値(y
(11:6)−1)に対してオーバフローを検出しかつ
出力O_lowを提供する。
wおよびEXP_highの前記指数+1(「増分され
た」指数)の値、それぞれ(e(11:0)−N(5:
0)+1)および(e(11:0)−N(5:0)+
2)、がオーバフローに対してチェックされる。さら
に、これらの増分された指数の5つのMSB e(1
1:7)のみが単精度に対するオーバフローを検出する
ために必要とされ、かつ倍精度に対してはMSB e
(12)のみが必要とされる。前記第1のオーバフロー
検出論理80は前記指数値y(11:6)に対してオー
バフローを検出しかつ出力O_highを提供する。第
2のオーバフロー検出論理78は減分された指数値(y
(11:6)−1)に対してオーバフローを検出しかつ
出力O_lowを提供する。
【0050】単精度に対しては、前記オーバフロー検出
論理構成110は第1および第2のORゲート112お
よび116と第1および第2のANDゲート114およ
び118を備えている。第1のORゲート112は前記
増分された指数の第8番目、第9番目および第10番目
のビットを受けるための3つの入力を有し、かつ第1の
ANDゲート114の第1の入力に結合された出力を有
する。第11番目のビットは第1のANDゲート114
の第2の入力に結合されている。ANDゲート114の
出力は第2のORゲート116の第1の入力に結合され
ている。第2のORゲート116の第2の入力は第12
番目のビットを受けるよう結合され、かつ第2のORゲ
ート116の出力は第2のANDゲート118の第1の
入力に結合されている。ANDゲート118は単精度オ
ーバフロー許容制御信号(single_ovf_al
low)を受けるための第2の入力およびオーバフロー
フラグを提供するための出力を有する。もし前記オーバ
フローフラグの値が論理“1”であれば、前記指数結果
に対しオーバフローが検出されている。もし前記オーバ
フローフラグの値が論理“0”であれば、オーバフロー
はない。
論理構成110は第1および第2のORゲート112お
よび116と第1および第2のANDゲート114およ
び118を備えている。第1のORゲート112は前記
増分された指数の第8番目、第9番目および第10番目
のビットを受けるための3つの入力を有し、かつ第1の
ANDゲート114の第1の入力に結合された出力を有
する。第11番目のビットは第1のANDゲート114
の第2の入力に結合されている。ANDゲート114の
出力は第2のORゲート116の第1の入力に結合され
ている。第2のORゲート116の第2の入力は第12
番目のビットを受けるよう結合され、かつ第2のORゲ
ート116の出力は第2のANDゲート118の第1の
入力に結合されている。ANDゲート118は単精度オ
ーバフロー許容制御信号(single_ovf_al
low)を受けるための第2の入力およびオーバフロー
フラグを提供するための出力を有する。もし前記オーバ
フローフラグの値が論理“1”であれば、前記指数結果
に対しオーバフローが検出されている。もし前記オーバ
フローフラグの値が論理“0”であれば、オーバフロー
はない。
【0051】倍精度に対しては、前記オーバフロー検出
論理構成111は前記増分された指数の第12番目のビ
ットを受けるための第1の入力、倍精度オーバフロー許
容信号(double_ovf_allow)を受ける
ための第2の入力、そしてオーバフローフラグを提供す
るための出力を有するANDゲート120を具備する。
もし前記オーバフローフラグの値が論理“1”であれ
ば、指数結果に対しオーバフローが検出されている。も
しオーバフローフラグの値が論理“0”であれば、オー
バフローはない。
論理構成111は前記増分された指数の第12番目のビ
ットを受けるための第1の入力、倍精度オーバフロー許
容信号(double_ovf_allow)を受ける
ための第2の入力、そしてオーバフローフラグを提供す
るための出力を有するANDゲート120を具備する。
もし前記オーバフローフラグの値が論理“1”であれ
ば、指数結果に対しオーバフローが検出されている。も
しオーバフローフラグの値が論理“0”であれば、オー
バフローはない。
【0052】オーバフロー検出論理構成110および1
11は単精度フォーマットと倍精度フォーマットとの間
で選択を行ないかつまた前記2進値Nの減算によるオー
バフローフラグの誤った発生を防止するためにオーバフ
ロー許容信号入力を有している。これらの制御は減算の
前に前記指数値から計算される。
11は単精度フォーマットと倍精度フォーマットとの間
で選択を行ないかつまた前記2進値Nの減算によるオー
バフローフラグの誤った発生を防止するためにオーバフ
ロー許容信号入力を有している。これらの制御は減算の
前に前記指数値から計算される。
【0053】好ましい本実施例における6ビットの減算
器72はキャリー選択減算器として実施され、該キャリ
ー選択減算器は2つのボローフラグを発生し、B_1は
演算(y(5:0)−N(5:0)−1)に対する第1
のボローフラグであり、かつB_0は演算(y(5:
0)−N(5:0))に対する第2のボローフラグであ
る。第1のボローフラグB_1は前記6ビットのマルチ
プレクサ76に結合される。第1のボローフラグB_1
の値は、前記6ビットのマルチプレクサ76の第2の入
力における、減分された6ビットの結果(y(11:
6)−1)あるいは、6ビットのマルチプレクサ76の
第1の入力における、前記指数値y(11:6)のいず
れが前記6ビットのマルチプレクサ76の出力86にお
いて6ビットの出力EXP_high(11:6)を提
供するかを選択する。もしB_1の値が“1”であれ
ば、減算器72からの借り(borrow)は1であり
かつ前記減分された結果(y(11:6)−1)は6ビ
ットのマルチプレクサ76によって選択される。もしB
_1の値が“0”であれば、減算器72からの借りはゼ
ロでありかつ前記指数値y(11:6)は6ビットのマ
ルチプレクサ76によって選択される。第1のボローフ
ラグB_1はまた前記Overflow_lowフラグ
が(y(11:0)−N(5:0)−1)のオーバフロ
ーフラグとなるよう第2のマルチプレクサ84に供給さ
れる。第2のボローフラグB_0は第1のマルチプレク
サ82に結合され、それによって前記Overflow
_highフラグが(y(11:0)−N(5:0))
のオーバフローフラグとなるようにされる。前記第1お
よび第2のボローフラグB_1およびB_0の値は前記
出力O_lowまたはO_highのいずれが前記第1
および第2のマルチプレクサ82および84によって選
択されるかを決定する。
器72はキャリー選択減算器として実施され、該キャリ
ー選択減算器は2つのボローフラグを発生し、B_1は
演算(y(5:0)−N(5:0)−1)に対する第1
のボローフラグであり、かつB_0は演算(y(5:
0)−N(5:0))に対する第2のボローフラグであ
る。第1のボローフラグB_1は前記6ビットのマルチ
プレクサ76に結合される。第1のボローフラグB_1
の値は、前記6ビットのマルチプレクサ76の第2の入
力における、減分された6ビットの結果(y(11:
6)−1)あるいは、6ビットのマルチプレクサ76の
第1の入力における、前記指数値y(11:6)のいず
れが前記6ビットのマルチプレクサ76の出力86にお
いて6ビットの出力EXP_high(11:6)を提
供するかを選択する。もしB_1の値が“1”であれ
ば、減算器72からの借り(borrow)は1であり
かつ前記減分された結果(y(11:6)−1)は6ビ
ットのマルチプレクサ76によって選択される。もしB
_1の値が“0”であれば、減算器72からの借りはゼ
ロでありかつ前記指数値y(11:6)は6ビットのマ
ルチプレクサ76によって選択される。第1のボローフ
ラグB_1はまた前記Overflow_lowフラグ
が(y(11:0)−N(5:0)−1)のオーバフロ
ーフラグとなるよう第2のマルチプレクサ84に供給さ
れる。第2のボローフラグB_0は第1のマルチプレク
サ82に結合され、それによって前記Overflow
_highフラグが(y(11:0)−N(5:0))
のオーバフローフラグとなるようにされる。前記第1お
よび第2のボローフラグB_1およびB_0の値は前記
出力O_lowまたはO_highのいずれが前記第1
および第2のマルチプレクサ82および84によって選
択されるかを決定する。
【0054】前記選択された6ビットの出力86は前記
出力73と組合わされ、それによって前記指数減算器2
32が、前記2つのオーバフローフラグOverflo
w_lowおよびOverflow_highに加え
て、12ビットの指数結果EXP_high=((e
(11:0)−N(5:0)+1)=EXP_low+
1を提供するようにされる。
出力73と組合わされ、それによって前記指数減算器2
32が、前記2つのオーバフローフラグOverflo
w_lowおよびOverflow_highに加え
て、12ビットの指数結果EXP_high=((e
(11:0)−N(5:0)+1)=EXP_low+
1を提供するようにされる。
【0055】前記オーバフロー検出論理は前記指数結果
のより高いビットのみがオーバフローに対してチェック
される必要があるように構成されているから、かつデク
リメンタ74は6つのMSBに対する2つの可能な結果
(元の値)または(元の値−1)を発生するために使用
されるから、前記2つの結果およびそれらのオーバフロ
ーフラグは減算器72が減算を完了する前に発生するこ
とができる。
のより高いビットのみがオーバフローに対してチェック
される必要があるように構成されているから、かつデク
リメンタ74は6つのMSBに対する2つの可能な結果
(元の値)または(元の値−1)を発生するために使用
されるから、前記2つの結果およびそれらのオーバフロ
ーフラグは減算器72が減算を完了する前に発生するこ
とができる。
【0056】したがって前記指数減算器およびオーバフ
ローおよびアンダフロー検出器226は2つの指数結果
および各々の結果に関連するオーバフローおよびアンダ
フローフラグを発生し、すなわち(式(e(11:0)
−N(5:0)−1)から得られる)Underflo
w_lowおよび(式(e(11:0)−N(5:0)
+1)から得られる)Overflow_lowと共に
EXP_low=(e(11:0)−N(5:0));
そして(式(e(11:0)−N(5:0))から得ら
れる)Underflow_highおよび(式(e
(11:0)−N(5:0)+2)から得られる)Ov
erflow_highと共にEXP_high=(e
(11:0)−N(5:0)+1)である。したがっ
て、前記ボローフラグを正しくマルチプレクサに結合す
ることにより、2つのアンダフローフラグおよび2つの
オーバフローフラグは前記指数結果と同時に発生でき
る。
ローおよびアンダフロー検出器226は2つの指数結果
および各々の結果に関連するオーバフローおよびアンダ
フローフラグを発生し、すなわち(式(e(11:0)
−N(5:0)−1)から得られる)Underflo
w_lowおよび(式(e(11:0)−N(5:0)
+1)から得られる)Overflow_lowと共に
EXP_low=(e(11:0)−N(5:0));
そして(式(e(11:0)−N(5:0))から得ら
れる)Underflow_highおよび(式(e
(11:0)−N(5:0)+2)から得られる)Ov
erflow_highと共にEXP_high=(e
(11:0)−N(5:0)+1)である。したがっ
て、前記ボローフラグを正しくマルチプレクサに結合す
ることにより、2つのアンダフローフラグおよび2つの
オーバフローフラグは前記指数結果と同時に発生でき
る。
【0057】次の例は浮動小数点加算器200における
単精度数におけるアンダフローの検出を示す。 e[11:0]=901 (0011100001
01) e[5:0]は5である。 e[11:6]は、ちょうど単精度アンダフロー検出に
対する境界値である、(exp[11:0]=896)
の場合と同じである。
単精度数におけるアンダフローの検出を示す。 e[11:0]=901 (0011100001
01) e[5:0]は5である。 e[11:6]は、ちょうど単精度アンダフロー検出に
対する境界値である、(exp[11:0]=896)
の場合と同じである。
【0058】したがって、この例に対しては、U_hi
gh=0、これは(EXP[11:0]>=896)は
アンダフロー検出論理においてアンダフローを検出しな
いからであり、U_low=1、これは(EXP[1
1:0]<=895)はアンダフロー検出論理において
アンダフローを検出するからであり、前記B_1,B_
0の出力は正しいUnderflow_lowおよびU
nderflow_highフラグを選択する。B_
1,B_0の値は前記N[5:0]入力に依存する。
gh=0、これは(EXP[11:0]>=896)は
アンダフロー検出論理においてアンダフローを検出しな
いからであり、U_low=1、これは(EXP[1
1:0]<=895)はアンダフロー検出論理において
アンダフローを検出するからであり、前記B_1,B_
0の出力は正しいUnderflow_lowおよびU
nderflow_highフラグを選択する。B_
1,B_0の値は前記N[5:0]入力に依存する。
【0059】 ケース1: N[5:0]=4(000100) この場合、 B_1=0 (5−4−1=0)したがってボロー
は発生されない。 B_0=0 (5−4=1)したがってボローは発
生されない。 したがってUnderflow_low=0 もし
(B_1=0)であればU_highがMux_1(6
2)において選択される。Underflow_hig
h=0 もし(B_0=0)であればU_highがM
ux_0(64)において選択される。EXP_low
またはEXP_highのいずれに対してもアンダフロ
ーは検出されない。
は発生されない。 B_0=0 (5−4=1)したがってボローは発
生されない。 したがってUnderflow_low=0 もし
(B_1=0)であればU_highがMux_1(6
2)において選択される。Underflow_hig
h=0 もし(B_0=0)であればU_highがM
ux_0(64)において選択される。EXP_low
またはEXP_highのいずれに対してもアンダフロ
ーは検出されない。
【0060】 ケース2: N[5:0]=6(000110) この場合、 B_1=1 (5−6−1=−2)したがってボロ
ーが発生される。 B_0=1 (5−6=−1)したがってボローが
発生される。 したがってUnderflow_low=1 もし
(B_1=1)であればU_lowはMux_1(6
2)において選択される。Underflow_hig
h=1 もし(B_0=1)であればU_lowはMu
x_0(64)において選択される。EXP_lowお
よびEXP_highの双方に対してアンダフローが検
出される。
ーが発生される。 B_0=1 (5−6=−1)したがってボローが
発生される。 したがってUnderflow_low=1 もし
(B_1=1)であればU_lowはMux_1(6
2)において選択される。Underflow_hig
h=1 もし(B_0=1)であればU_lowはMu
x_0(64)において選択される。EXP_lowお
よびEXP_highの双方に対してアンダフローが検
出される。
【0061】 ケース3: N[5:0]=5(000101) この場合、 B_1=1 (5−5−1=−1)したがってボロ
ーが発生される。 B_0=0 (5−5=0)したがってボローは発
生されない。 したがってUnderflow_low=1 もし
(B_1=1)であればU_lowはMux_1(6
2)において選択される。Underflow_hig
h=0 もし(B_0=0)であればU_highはM
ux_0(64)において選択される。アンダフローは
EXP_lowに対してのみ検出される。
ーが発生される。 B_0=0 (5−5=0)したがってボローは発
生されない。 したがってUnderflow_low=1 もし
(B_1=1)であればU_lowはMux_1(6
2)において選択される。Underflow_hig
h=0 もし(B_0=0)であればU_highはM
ux_0(64)において選択される。アンダフローは
EXP_lowに対してのみ検出される。
【0062】オーバフローフラグの発生も同様の方法で
行なわれることが理解される。
行なわれることが理解される。
【0063】
【発明の効果】以上要するに、本発明は減算器における
指数結果の更新の完了前に、2つの可能な指数結果に対
するアンダフローおよびオーバフローの検出が完了し、
かつ有効なオーバフローおよびアンダフローフラグが発
生されることを保証する。したがって、本発明は、更新
された指数結果をそれが発生された後にチェックする、
知られた浮動小数点加算器に対して有利性を持ち、これ
は本発明の並列動作が浮動小数点加算器におけるクリテ
ィカルパスの遅延を低減するからである。さらに、本発
明はオーバフローおよびアンダフローに対し、それぞ
れ、指数+1の値および指数−1の値を発生しかつチェ
ックするから、ロジックは前記指数結果の上位ビットの
みに低減できる。これは必要なロジックを大幅に簡略化
する。
指数結果の更新の完了前に、2つの可能な指数結果に対
するアンダフローおよびオーバフローの検出が完了し、
かつ有効なオーバフローおよびアンダフローフラグが発
生されることを保証する。したがって、本発明は、更新
された指数結果をそれが発生された後にチェックする、
知られた浮動小数点加算器に対して有利性を持ち、これ
は本発明の並列動作が浮動小数点加算器におけるクリテ
ィカルパスの遅延を低減するからである。さらに、本発
明はオーバフローおよびアンダフローに対し、それぞ
れ、指数+1の値および指数−1の値を発生しかつチェ
ックするから、ロジックは前記指数結果の上位ビットの
みに低減できる。これは必要なロジックを大幅に簡略化
する。
【図1】知られた浮動小数点加算器の単純化したブロッ
ク回路図である。
ク回路図である。
【図2】図1の浮動小数点加算器の指数減算器およびオ
ーバフローおよびアンダフロー検出器の単純化した回路
図である。
ーバフローおよびアンダフロー検出器の単純化した回路
図である。
【図3】図2のオーバフローおよびアンダフロー検出論
理の論理図である。
理の論理図である。
【図4】本発明に係わる浮動小数点加算器の単純化した
ブロック回路図である。
ブロック回路図である。
【図5】本発明に係わるアンダフローフラグ発生を備え
た指数減算器の単純化した回路図である。
た指数減算器の単純化した回路図である。
【図6】本発明に係わるオーバフローフラグ発生を備え
た指数減算器の単純化した回路図である。
た指数減算器の単純化した回路図である。
【図7】図5のアンダフロー検出論理の論理図である。
【図8】図6のオーバフロー検出論理の論理図である。
200 浮動小数点加算器 208 大小判定回路 210 指数減算器 212 小さな仮数用シフタ 214 仮数加算器 226 指数減算器および検出器 228 丸め論理 230 アンダフローフラグ発生を備えた指数減算器 232 オーバフローフラグ発生を備えた指数減算器 52 6ビット減算器 54 6ビットデクリメンタ 58,60 アンダフロー検出論理 56 6ビットマルチプレクサ 62,64 マルチプレクサ 72 6ビット減算器 74 6ビットインクリメンタ 76 6ビットマルチプレクサ 78,80 オーバフロー検出論理 82,84 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イェフダ・ボルパート イスラエル国ペタチ・チクバ49600、ブラ ンデ 53
Claims (6)
- 【請求項1】 浮動小数点加算器において2つの数に対
して行なわれる加算操作に対する指数結果および丸めら
れた指数結果を発生しかつ前記指数結果および丸められ
た指数結果に対するオーバフローおよびアンダフローフ
ラグを発生する方法であって、各々の数は指数部および
仮数部を備え、前記方法は、 前記2つの数のうちのより大きな指数を使用して第1お
よび第2の指数値を発生する段階であって、前記第1お
よび第2の指数値の各々はnビットからなるもの、 前記加算操作によって生成される仮数結果を正規化する
のに必要なビットシフトの数を表わす2進値を提供する
段階であって、該2進値はmビットからなり、mはnよ
り小さいもの、 前記第1および第2の指数値の各々を2つのグループの
ビットに分割する段階であって、第1のグループは指数
値のmの最下位ビットを有しかつ第2のグループは前記
指数値の(n−m)の最上位ビットを有するもの、 前記第1および第2の指数値の各々の前記第2のグルー
プの(n−m)ビットを1だけ減分し、それによって前
記第1および第2の指数値の各々に対し減分された最上
位ビットを提供するもの、 前記第1の指数値の減分された最上位ビットの結果およ
び前記第1の指数値の第2のグループの(n−m)ビッ
トをそれぞれチェックすることにより前記指数結果およ
び丸められた指数結果のアンダフローを検出し、かつ該
チェック段階に応じてそれぞれ第1および第2のアンダ
フローフラグを発生する段階、 前記第2の指数値の減分された最上位ビット結果および
前記第2の指数値の第2のグループの(n−m)ビット
をそれぞれチェックすることにより前記指数結果および
丸められた指数結果のオーバフローを検出し、かつ該チ
ェック段階に応じてそれぞれ第1および第2のオーバフ
ローフラグを発生する段階、 前記第1および第2の指数値の各々のmビットの第1の
グループから前記2進値を減算しそれによって前記第1
および第2の指数値の各々に対する最下位ビット減算結
果およびボローフラグを提供する段階であって、前記ボ
ローフラグは前記減算段階が1のボローを発生するかあ
るいは前記減算段階がゼロのボローを発生するかを示す
もの、 前記第1および第2の指数値の各々に対しかつ前記ボロ
ーフラグに応じて1のボローに対する前記それぞれの減
分された最上位ビット結果または前記ゼロのボローに対
する前記それぞれの第2のグループの(n−m)ビット
を選択し、それによって前記第1および第2の指数値の
各々に対する選択された結果を提供する段階、 前記指数値の各々に対し前記それぞれの選択された結果
を前記それぞれの最下位ビット減算結果と組合わせ、そ
れによって前記指数結果および前記丸められた指数結果
を発生する段階、そして前記指数結果および対応する第
1のアンダフローフラグおよび第1のオーバフローフラ
グを提供し、かつ前記丸められた指数結果および対応す
る第2のアンダフローフラグおよび第2のオーバフロー
フラグを前記浮動小数点加算器の出力に提供する段階、 を具備することを特徴とする前記方法。 - 【請求項2】 前記減算段階は前記第1および第2の指
数値の各々に対し2つのボローフラグを発生し、第1の
ボローフラグは1だけ減分されたそれぞれの指数値の前
記第1のグループのmビットからの前記2進値の減算を
表わし、かつ第2のボローフラグは前記それぞれの指数
値の第1のグループのmビットからの前記2進値の減算
を表わし、前記第1および第2の指数値の各々の前記第
1および第2のボローフラグは前記減算段階が1のボロ
ーを発生した場合には第1の値を有しあるいは前記減算
段階がゼロのボローを発生した場合には第2の値を有
し、前記第1の指数値の前記第2のボローフラグの値は
前記第1の指数値の選択された結果を決定し、かつ前記
第2の指数値の前記第1のボローフラグの値は前記第2
の指数値の選択された結果を決定することを特徴とする
請求項1に記載の方法。 - 【請求項3】 前記アンダフローのチェック段階は前記
減分された最上位ビット結果の値および前記第1の指数
値の第2のグループの(n−m)ビットの値が最小の所
定の値より小さいか否かを判定する段階を備え、かつ前
記オーバフローをチェックする段階は前記減分された最
上位ビット結果の値および前記第2の指数値の第2のグ
ループの(n−m)ビットの値が最大の所定値より大き
いか否かを判定する段階を備え、かつ前記アンダフロー
フラグ発生段階は、 前記第1の指数値の減分された最上位ビット結果が前記
最小の所定値より小さい場合に第1の値を有する第1の
信号を発生する段階、 前記第1の指数値の第2のグループの(n−m)ビット
が前記最小の所定値より小さい場合に前記第1の値を有
する第2の信号を発生する段階、 前記第1の指数値の第1のボローフラグの値に応じて前
記第1および第2の信号のうちの1つを選択し第1のア
ンダフローフラグを提供する段階、そして前記第1の指
数値の第2のボローフラグの値に応じて前記第1および
第2の信号のうちの1つを選択し第2のアンダフローフ
ラグを提供する段階、 を具備し、そして前記オーバフローフラグ発生段階は、 前記第2の指数値の減分された最上位ビット結果が前記
最大の所定値より大きい場合に第1の値を有する第1の
信号を発生する段階、 前記第2の指数値の第2のグループの(n−m)ビット
が前記最大の所定値より大きい場合に前記第1の値を有
する第2の信号を発生する段階、 前記第1のオーバフローフラグを提供するために前記第
2の指数値の第1のボローフラグの値に応じて前記第1
および第2の信号のうちの1つを選択する段階、そして
前記第2のオーバフローフラグを提供するために前記第
2の指数値の第2のボローフラグの値に応じて前記第1
および第2の信号のうちの1つを選択する段階、 を具備することを特徴とする請求項2に記載の方法。 - 【請求項4】 浮動小数点加算器において2つの数に対
して行なわれる加算操作に対する指数結果および丸めら
れた指数結果を発生しかつ前記指数結果および丸められ
た指数結果に対してオーバフローおよびアンダフローフ
ラグを発生するための指数減算器システムであって、該
システムは、 前記2つの数のうちのより大きな指数を使用して第1お
よび第2の指数値を発生するための手段であって、前記
第1および第2の指数値の各々はnビットからなるも
の、 前記加算操作によって生成される仮数結果を正規化する
のに必要なビットシフトの数を表わす2進値を提供する
ための手段であって、該2進値はmビットからなり、こ
の場合mはnより小さいもの、 前記第1および第2の指数値の各々を2つのグループの
ビットに分割するための手段であって、第1のグループ
は指数値のmの最下位ビットを有しかつ第2のグループ
は前記指数値の(n−m)の最上位ビットを有するも
の、 前記第1および第2の指数値の各々の第2のグループの
(n−m)ビットを1だけ減分しそれによって前記第1
および第2の指数値の各々に対する減分された最上位ビ
ット結果を提供するための減分手段、 前記第1の指数値の減分された最上位ビット結果および
前記第1の指数値の第2のグループの(n−m)ビット
をそれぞれチェックすることにより前記指数結果および
丸められた指数結果のアンダフローを検出しかつ前記チ
ェックに応じてそれぞれ第1および第2のアンダフロー
フラグを発生するためのアンダフロー検出手段、 前記第2の指数値の減分された最上位ビット結果および
前記第2の指数値の第2のグループの(n−m)ビット
をチェックすることによりそれぞれ前記指数結果および
丸められた指数結果のオーバフローを検出しかつ前記チ
ェックに応じてそれぞれ第1および第2のオーバフロー
フラグを発生するためのオーバフロー検出手段、 前記第1および第2の指数値の各々の第1のグループの
mビットから前記2進値を減算して前記第1および第2
の指数値の各々に対し最下位ビット減算結果およびボロ
ーフラグを提供するための減算手段であって、前記ボロ
ーフラグは前記減算段階が1のボローを発生したかある
いは前記減算段階がゼロのボローを発生したかを示すも
の、 前記第1および第2の指数値の各々に対しかつ前記ボロ
ーフラグに応じて1のボローに対する前記それぞれの減
分された最上位ビット結果またはゼロのボローに対する
前記それぞれの第2のグループの(n−m)ビットを選
択しそれによって前記第1および第2の指数値の各々に
対し選択された結果を提供するための選択手段、 前記指数値の各々に対し前記それぞれの選択された結果
を前記それぞれの最下位ビット減算結果と組合わせて前
記指数結果および丸められた指数結果を発生するための
組合わせ手段、そして前記指数結果および対応する第1
のアンダフローフラグおよび対1のオーバフローフラグ
を出力しかつ前記丸められた指数結果および対応する第
2のアンダフローフラグおよび第2のオーバフローフラ
グを提供するための出力手段、 を具備することを特徴とする指数減算器システム。 - 【請求項5】 前記減算手段は前記第1の指数値のため
の第1のキャリー選択減算器および前記第2の指数値の
ための第2のキャリー選択減算器を具備し、前記キャリ
ー選択減算器の各々はそれぞれの指数値に対して2つの
ボローフラグを発生するための手段を具備し、第1のボ
ローフラグは1だけ減分された前記それぞれの指数値の
第1のグループのmビットからの前記2進値の減算を表
わしかつ第2のボローフラグは前記それぞれの指数値の
第1のグループのmビットからの前記2進値の減算を表
わし、前記第1および第2の指数値の各々の前記第1お
よび第2のボローフラグは1のボローが発生された場合
に第1の値を有しかつゼロのボローが発生された場合に
第2の値を有し、前記選択手段は第1および第2のマル
チプレクサを備え、該第1のマルチプレクサは前記第1
の指数値の減分された最上位ビット結果および第2のグ
ループの(n−m)ビットおよび前記第1の指数値の前
記第2のボローフラグを受けるよう結合され、そして前
記第2のマルチプレクサは前記第2の指数値の減分され
た最上位ビット結果および第2のグループの(n−m)
ビットおよび前記第2の指数値の第1のボローフラグを
受けるよう結合され、前記第1の指数値の第2のボロー
フラグの値は前記第1の指数値の選択された結果を決定
しかつ前記第2の指数値の第1のボローフラグの値は前
記第2の指数値の選択された結果を決定することを特徴
とする請求項4に記載の指数減算器システム。 - 【請求項6】 前記アンダフロー検出手段は、 前記減分された最上位ビット結果の値および前記第1の
指数値の第2のグループの(n−m)ビットの値が最小
の所定値より小さいか否かを判定し、かつ前記第1の指
数値の減分された最上位ビット結果が前記最小の所定値
より小さい場合に第1の値を有する第1の信号を発生し
かつ前記第1の指数値の第2のグループの(n−m)ビ
ットが前記最小の所定値より小さい場合に前記第1の値
を有する第2の信号を発生するためのアンダフロー論理
手段、 前記第1および第2の信号および前記第1の指数値の第
1のボローフラグを受けるよう結合された第1の選択手
段であって、該第1の選択手段は前記受信された第1の
ボローフラグの値に応じて前記第1および第2の信号の
うちの1つを選択しそれによって前記第1のアンダフロ
ーフラグを提供するもの、そして前記第1および第2の
信号および前記第1の指数値の第2のボローフラグを受
けるよう結合された第2の選択手段であって、該第2の
選択手段は前記受信された第2のボローフラグの値に応
じて前記第1および第2の信号のうちの1つを選択しそ
れによって第2のアンダフローフラグを提供するもの、 を具備し、そして前記オーバフロー検出手段は、 前記減分された最上位ビット結果の値および前記第2の
指数値の第2のグループの(n−m)ビットの値が最大
の所定値より大きいか否かを判定し、かつ前記第2の指
数値の減分された最上位ビット結果が前記最大の所定値
より大きい場合に第1の値を有する第1の信号を発生し
かつ前記第2の指数値の前記第2のグループの(n−
m)ビットが前記最大の所定値より大きい場合に前記第
1の値を有する第2の信号を発生するためのオーバフロ
ー論理手段、 前記第1および第2の信号および前記第2の指数値の第
1のボローフラグを受けるよう結合された第1の選択手
段であって、該第1の選択手段は前記受信された第1の
ボローフラグの値に応じて前記第1および第2の信号の
1つを選択しそれによって第1のオーバフローフラグを
提供すもの、そして前記第1および第2の信号および前
記第2の指数値の第2のボローフラグを受けるよう結合
された第2の選択手段であって、該第2の選択手段は前
記受信された第2のボローフラグの値に応じて前記第1
および第2の信号の1つを選択しそれによって第2のオ
ーバフローフラグを提供するもの、 を具備することを特徴とする請求項5に記載の指数減算
システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9303378.5 | 1993-02-19 | ||
GB9303378A GB2275355B (en) | 1993-02-19 | 1993-02-19 | Detection of exponent underflow and overflow in a floating point adder |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06250820A true JPH06250820A (ja) | 1994-09-09 |
Family
ID=10730720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6043150A Pending JPH06250820A (ja) | 1993-02-19 | 1994-02-17 | 浮動小数点加算器における指数アンダフローおよびオーバフローの検出方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5408427A (ja) |
EP (1) | EP0612009A1 (ja) |
JP (1) | JPH06250820A (ja) |
GB (1) | GB2275355B (ja) |
HK (1) | HK1007813A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5646875A (en) * | 1995-02-27 | 1997-07-08 | International Business Machines Corporation | Denormalization system and method of operation |
US5812439A (en) * | 1995-10-10 | 1998-09-22 | Microunity Systems Engineering, Inc. | Technique of incorporating floating point information into processor instructions |
US6112220A (en) * | 1998-02-10 | 2000-08-29 | Lucent Technologies, Inc. | Programmable overflow protection in digital processing |
US6243731B1 (en) * | 1998-03-20 | 2001-06-05 | Texas Instruments Incorporated | Apparatus and method for extending register dynamic range |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4562553A (en) * | 1984-03-19 | 1985-12-31 | Analogic Corporation | Floating point arithmetic system and method with rounding anticipation |
JPS60235239A (ja) * | 1984-05-08 | 1985-11-21 | Nec Corp | 浮動小数点加算回路 |
US4758972A (en) * | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
US4922446A (en) * | 1988-04-01 | 1990-05-01 | Digital Equipment Corporation | Apparatus and method for floating point normalization prediction |
JP2693800B2 (ja) * | 1988-12-28 | 1997-12-24 | 甲府日本電気株式会社 | 浮動小数点データ総和演算回路 |
US5027308A (en) * | 1989-02-14 | 1991-06-25 | Intel Corporation | Circuit for adding/subtracting two floating point operands |
JP2511527B2 (ja) * | 1989-07-14 | 1996-06-26 | 日本電気株式会社 | 浮動小数点演算器 |
US5111421A (en) * | 1990-02-26 | 1992-05-05 | General Electric Company | System for performing addition and subtraction of signed magnitude floating point binary numbers |
-
1993
- 1993-02-19 GB GB9303378A patent/GB2275355B/en not_active Expired - Fee Related
-
1994
- 1994-01-27 EP EP94101153A patent/EP0612009A1/en not_active Withdrawn
- 1994-02-10 US US08/194,534 patent/US5408427A/en not_active Expired - Fee Related
- 1994-02-17 JP JP6043150A patent/JPH06250820A/ja active Pending
-
1998
- 1998-06-26 HK HK98106850A patent/HK1007813A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK1007813A1 (en) | 1999-04-23 |
GB2275355B (en) | 1997-06-18 |
GB2275355A (en) | 1994-08-24 |
GB9303378D0 (en) | 1993-04-07 |
EP0612009A1 (en) | 1994-08-24 |
US5408427A (en) | 1995-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3492638B2 (ja) | 浮動小数点乗算器 | |
US5027308A (en) | Circuit for adding/subtracting two floating point operands | |
US5128889A (en) | Floating-point arithmetic apparatus with compensation for mantissa truncation | |
US5197023A (en) | Hardware arrangement for floating-point addition and subtraction | |
US5010508A (en) | Prenormalization for a floating-point adder | |
EP0472139B1 (en) | A floating-point processor | |
AU628969B2 (en) | Pipelined floating point adder for digital computer | |
US5993051A (en) | Combined leading one and leading zero anticipator | |
US5317526A (en) | Format conversion method of floating point number and device employing the same | |
JP2008152360A (ja) | 3項入力の浮動小数点加減算器 | |
JPS62196767A (ja) | パイプライン構成の浮動小数点数アキユムレ−タ回路 | |
KR100465371B1 (ko) | 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치 | |
US4941119A (en) | Method and apparatus for predicting an overflow in an integer multiply | |
US4999800A (en) | Floating point adder with pre-shifter | |
GB1579100A (en) | Digital arithmetic method and means | |
JPH06250820A (ja) | 浮動小数点加算器における指数アンダフローおよびオーバフローの検出方法および装置 | |
JP3514502B2 (ja) | 浮動小数点加算器のための仮数加算システム | |
US5260890A (en) | Overflow detection system and its circuit for use in addition and subtraction | |
US5432727A (en) | Apparatus for computing a sticky bit for a floating point arithmetic unit | |
JP3429927B2 (ja) | 浮動小数点演算装置の正規化回路装置 | |
JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
US7003540B2 (en) | Floating point multiplier for delimited operands | |
US6044391A (en) | Method of generating the sticky-bit from the input operands | |
JP2856792B2 (ja) | 浮動小数点数演算装置 |