JPH03161832A - 浮動小数点演算回路 - Google Patents
浮動小数点演算回路Info
- Publication number
- JPH03161832A JPH03161832A JP1301708A JP30170889A JPH03161832A JP H03161832 A JPH03161832 A JP H03161832A JP 1301708 A JP1301708 A JP 1301708A JP 30170889 A JP30170889 A JP 30170889A JP H03161832 A JPH03161832 A JP H03161832A
- Authority
- JP
- Japan
- Prior art keywords
- carry
- input
- result
- mantissa
- overflow
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 abstract description 10
- 239000002131 composite material Substances 0.000 description 4
- 238000000034 method Methods 0.000 description 2
- 229910001374 Invar Inorganic materials 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野・
本発明は半導体集積回路装置に係り、特にIEEE
(The Institute of E
lectrical and Electro
nics Enginerrs)754規格の浮動小
数点演算回路に関するものである。
(The Institute of E
lectrical and Electro
nics Enginerrs)754規格の浮動小
数点演算回路に関するものである。
従来の技術
I EEE7 5 4規格の小数点演算特に乗算と除算
において、乗算における指数部の計算は(X−B)+
(Y−B) = (X十Y−B)−B ・・・ (1)として行へ
除算における指数部の計算は(X−B)− (Y−B
) = (X−Y+B) −B ・・・ (2)として行
う。但しX, Yは浮動小数点形式の被演算データの
指数部のオペランド、Bはバイアス量でB=2”−’−
1 (nはデータのビット数)と定義され単精度浮動
小数点ではn=8よりB= 1 2 7、倍精度浮動小
数点ではn=11よりB=1023である。
において、乗算における指数部の計算は(X−B)+
(Y−B) = (X十Y−B)−B ・・・ (1)として行へ
除算における指数部の計算は(X−B)− (Y−B
) = (X−Y+B) −B ・・・ (2)として行
う。但しX, Yは浮動小数点形式の被演算データの
指数部のオペランド、Bはバイアス量でB=2”−’−
1 (nはデータのビット数)と定義され単精度浮動
小数点ではn=8よりB= 1 2 7、倍精度浮動小
数点ではn=11よりB=1023である。
前述の式(1)、(2)で表わされる浮動小数点乗除算
における指数部の計算を行なう浮動小数点演算回路の従
来例を第2図に示も 第2図において一方の入力Fxと
他方の入力pyとからFx−Fyを計算する減算器20
0に指数部のオペランドYとバイアス量BをそれぞれF
x=Y,Fy=Bとなるよう入力し減算結果としてY−
Bを得る。次に加減算器201では減算器200の出力
Y−Bと指数部のオペランドXをそれぞれSx=X,S
y=Y−Bとなるよう入力し 仮数部の桁上げがあると
きは外部からのキャリーCをC=1とし仮数部の桁上げ
がないときはC=0としてSx+sy+cを計算し 結
果としてZを得ることで浮動小数点乗算における指数部
の計算艦 式(1)が求められも 次に 上述した方法を用いて求められた式〈1)の値が
指数部の表現する値の範囲を越えているかどうかを見る
ことでオーバーフロー/アンダーフローの検出を行なう
力( IEEE754規格では浮動小数点数の指数部n
ビットが表わす値Eの範囲を次のように定義していも Emin≦E≦E+nax − (3)但L E
min= (−1) ・(2’−’−2)Emax=
2 ” − 1 ところで浮動小数点の指数部は前述のバイアス量Bを加
えて表現されているの玄 実際指数部の計算に用いられ
ている値はE十Bとなり式(3)はEmin+B = (−1) (2″”−2)+ (2°−11)
■ E max+ B =2″−1−1+ (2’−1−1) = 2 ’− 2 より l≦E+B≦2°−2 ・・・ (4)と表わせも 比較器202では式(4)より加算器201の出力と定
数1を比較しZ<1ならばアンダーフローの発生を外部
に知らせも また比較器203でも式(4)より加算器
201の出力と定数2’−2を比較し2°−2〈Zなら
ばオーバーフローの発生を外部に知らせも 一方浮動小数点除算における指数部の計算Cヨ減算器2
00の出力としてY−Bを株 加減算器201にXとY
−Bとを入力するところまでは乗算の場合と同様である
力t 加減算器201では仮数部の桁落ちがあるときC
=1, 桁落ちのないときC=0としてX− (Y−
B)−Cが計算され式(2)の値が求められも また乗
算の場合と同様に比較器202でアンダーフローを比較
器203でオーバーフローを検出すも 発明が解決しようとする課題 しかしながら上記のような構戊でGA 浮動小数点乗
除算において指数部の値は仮数部からの桁上げ/桁落ち
が入力された後加減算器における計算が終了してから確
定するので、指数部の計算結果の出力が遅くなるという
問題点を有していたまた出力された計算結果と2°−2
との比較によりオーバーフローを、 1との比較により
アンダーフローを検出しているので計算結果と2つの定
数2’−2、 1とを比較する比較器が必要となり結果
としてハードウェア量が増大するという問題点を有し
計算結果の出力後オーバーフロー/アンダーフロー検出
が行なわれるのでオーバーフロー/アンダーフローの発
生を外部に知らせることも遅くなるという問題点を有し
ていtラ 本発明;よかかる点に鑑次 減算器と加算器で浮動小数
点乗除算における指数部の計算を行なし\上述した減算
器と加算器と少数の論理ゲートによって、回路規模が小
さくかつオーバーフロー/アンダーフロー検出を高速に
行なうことのできる浮動小数点演算回路を提供すること
を目的とすも課題を解決するための手段 本発明(戴 2入力FxとFyの減算を行ない結果Aと
してFx−FyとFx−(Fy+1)のビット反転とを
選択し出力する減算器と、前記減算器の一方の入力結果
をAとし他方の入力Sとの加算S+AとS+(A+1)
とを行ない結果ZとしてS+Aを出力L S+Aのキ
ャリーCOとS+(A+1)のキャリーCIとを選択し
出力する加算器と、前記減算器の結果と仮数部の桁上げ
/桁落ちからアンダーフローを検出する第一の論理回路
と、前記加算器のキャリー出力と仮数部の桁上げ/桁落
ちからオーバーフロー検出する第二の論理回路とを備丸
浮動小数点形式の乗除算における指数部の計算を行な
うことを特徴とする浮動小数点演算回路であも 作用 本発明は上述した構戒により、それぞれ指数部オペラン
ドXS Yを有する浮動小数点形式の2つの被演算デー
タの乗除算における指数部を次のように計算すも まず
乗算では減算器において上述したバイアス量BとYの減
算が行われB−(Y十】)のビット反転が前記減算器の
結果Aとして出力されも ここr−,B−(Y+1)の
ビット反転はY−Bを表われ 加算器ではXとAとの加
算が行われX+A=X+ (Y−B)が結果Zとして、
X+ (A+1)のキャリーが01として出力されも第
二の論理回路ではC1より、以下の理由でオーバーフロ
ーが検出されも 式(4)より E+B+1≦2’−1−1<2ローl ・・・ (5〉
が或り立の玄 E+B+1≧2”−1 ・ (6)つまり式(6
)はnビットの演算E+B+1のキャリーが1であると
きオーバーフローが検出されることを示していも 次に前記減算器でOとZの減算が行われ0−(Z+1)
のビット反転すなわちz−oが前記減算器の結果Aとし
て出力され また0−Zの符号SgOとz−0の符号S
glが出力されも 第一の論理回路では前記減算器の出
力SgOとSglと仮数部の桁上げによって以下の理由
でアンダーフローを検出すも 式(4)より 1≦E+B ・・・ (7) が戊り立の玄 0≧E十B ・・・ (8) のときアンダーフローが検出されも 言い換えれば 仮
数部の桁上げに関係なく E+B< O ・・・ (9) または 仮数部の桁上げがなくかつ E+B=0 ・・・ (10) という条件が戒り立つ。式(9)はsgt=t4表わし
式(IO)はSgO=0かつSgl=0を表わすので
第一の論理回路では前記減算器の出力SgOとSglと
仮数部の桁上げとが Sgl=1または SgO=0かつSgl=Oかつ 仮数部の桁上げがあも という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となも 前記加算器ではlとAとの加算が行われ仮数部の桁上げ
がある場合はA+ 1 =X+ (Y−B)+1が結果
Zとして出力され 仮数部の桁上げがない場合は入力A
がそのまま出力されも 第二の論理回路では式(6)を
使用して説明したときと同じ理由で仮数部の桁上げがあ
る場合のみClよりオーバーフローが検出される。
における指数部の計算を行なう浮動小数点演算回路の従
来例を第2図に示も 第2図において一方の入力Fxと
他方の入力pyとからFx−Fyを計算する減算器20
0に指数部のオペランドYとバイアス量BをそれぞれF
x=Y,Fy=Bとなるよう入力し減算結果としてY−
Bを得る。次に加減算器201では減算器200の出力
Y−Bと指数部のオペランドXをそれぞれSx=X,S
y=Y−Bとなるよう入力し 仮数部の桁上げがあると
きは外部からのキャリーCをC=1とし仮数部の桁上げ
がないときはC=0としてSx+sy+cを計算し 結
果としてZを得ることで浮動小数点乗算における指数部
の計算艦 式(1)が求められも 次に 上述した方法を用いて求められた式〈1)の値が
指数部の表現する値の範囲を越えているかどうかを見る
ことでオーバーフロー/アンダーフローの検出を行なう
力( IEEE754規格では浮動小数点数の指数部n
ビットが表わす値Eの範囲を次のように定義していも Emin≦E≦E+nax − (3)但L E
min= (−1) ・(2’−’−2)Emax=
2 ” − 1 ところで浮動小数点の指数部は前述のバイアス量Bを加
えて表現されているの玄 実際指数部の計算に用いられ
ている値はE十Bとなり式(3)はEmin+B = (−1) (2″”−2)+ (2°−11)
■ E max+ B =2″−1−1+ (2’−1−1) = 2 ’− 2 より l≦E+B≦2°−2 ・・・ (4)と表わせも 比較器202では式(4)より加算器201の出力と定
数1を比較しZ<1ならばアンダーフローの発生を外部
に知らせも また比較器203でも式(4)より加算器
201の出力と定数2’−2を比較し2°−2〈Zなら
ばオーバーフローの発生を外部に知らせも 一方浮動小数点除算における指数部の計算Cヨ減算器2
00の出力としてY−Bを株 加減算器201にXとY
−Bとを入力するところまでは乗算の場合と同様である
力t 加減算器201では仮数部の桁落ちがあるときC
=1, 桁落ちのないときC=0としてX− (Y−
B)−Cが計算され式(2)の値が求められも また乗
算の場合と同様に比較器202でアンダーフローを比較
器203でオーバーフローを検出すも 発明が解決しようとする課題 しかしながら上記のような構戊でGA 浮動小数点乗
除算において指数部の値は仮数部からの桁上げ/桁落ち
が入力された後加減算器における計算が終了してから確
定するので、指数部の計算結果の出力が遅くなるという
問題点を有していたまた出力された計算結果と2°−2
との比較によりオーバーフローを、 1との比較により
アンダーフローを検出しているので計算結果と2つの定
数2’−2、 1とを比較する比較器が必要となり結果
としてハードウェア量が増大するという問題点を有し
計算結果の出力後オーバーフロー/アンダーフロー検出
が行なわれるのでオーバーフロー/アンダーフローの発
生を外部に知らせることも遅くなるという問題点を有し
ていtラ 本発明;よかかる点に鑑次 減算器と加算器で浮動小数
点乗除算における指数部の計算を行なし\上述した減算
器と加算器と少数の論理ゲートによって、回路規模が小
さくかつオーバーフロー/アンダーフロー検出を高速に
行なうことのできる浮動小数点演算回路を提供すること
を目的とすも課題を解決するための手段 本発明(戴 2入力FxとFyの減算を行ない結果Aと
してFx−FyとFx−(Fy+1)のビット反転とを
選択し出力する減算器と、前記減算器の一方の入力結果
をAとし他方の入力Sとの加算S+AとS+(A+1)
とを行ない結果ZとしてS+Aを出力L S+Aのキ
ャリーCOとS+(A+1)のキャリーCIとを選択し
出力する加算器と、前記減算器の結果と仮数部の桁上げ
/桁落ちからアンダーフローを検出する第一の論理回路
と、前記加算器のキャリー出力と仮数部の桁上げ/桁落
ちからオーバーフロー検出する第二の論理回路とを備丸
浮動小数点形式の乗除算における指数部の計算を行な
うことを特徴とする浮動小数点演算回路であも 作用 本発明は上述した構戒により、それぞれ指数部オペラン
ドXS Yを有する浮動小数点形式の2つの被演算デー
タの乗除算における指数部を次のように計算すも まず
乗算では減算器において上述したバイアス量BとYの減
算が行われB−(Y十】)のビット反転が前記減算器の
結果Aとして出力されも ここr−,B−(Y+1)の
ビット反転はY−Bを表われ 加算器ではXとAとの加
算が行われX+A=X+ (Y−B)が結果Zとして、
X+ (A+1)のキャリーが01として出力されも第
二の論理回路ではC1より、以下の理由でオーバーフロ
ーが検出されも 式(4)より E+B+1≦2’−1−1<2ローl ・・・ (5〉
が或り立の玄 E+B+1≧2”−1 ・ (6)つまり式(6
)はnビットの演算E+B+1のキャリーが1であると
きオーバーフローが検出されることを示していも 次に前記減算器でOとZの減算が行われ0−(Z+1)
のビット反転すなわちz−oが前記減算器の結果Aとし
て出力され また0−Zの符号SgOとz−0の符号S
glが出力されも 第一の論理回路では前記減算器の出
力SgOとSglと仮数部の桁上げによって以下の理由
でアンダーフローを検出すも 式(4)より 1≦E+B ・・・ (7) が戊り立の玄 0≧E十B ・・・ (8) のときアンダーフローが検出されも 言い換えれば 仮
数部の桁上げに関係なく E+B< O ・・・ (9) または 仮数部の桁上げがなくかつ E+B=0 ・・・ (10) という条件が戒り立つ。式(9)はsgt=t4表わし
式(IO)はSgO=0かつSgl=0を表わすので
第一の論理回路では前記減算器の出力SgOとSglと
仮数部の桁上げとが Sgl=1または SgO=0かつSgl=Oかつ 仮数部の桁上げがあも という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となも 前記加算器ではlとAとの加算が行われ仮数部の桁上げ
がある場合はA+ 1 =X+ (Y−B)+1が結果
Zとして出力され 仮数部の桁上げがない場合は入力A
がそのまま出力されも 第二の論理回路では式(6)を
使用して説明したときと同じ理由で仮数部の桁上げがあ
る場合のみClよりオーバーフローが検出される。
次に除算では減算器において上述したバイアス量BとY
の減算が行われB−Yが前記減算器の結果Aとして出力
される。加算器ではXとAとの加算が行われx+A=X
+(B−Y)=X+Y−B−Q− が結果2として、X十Aのキャリーcoが出力されも
第二の論理回路では仮数部の桁落ちを考慮して式(6)
の左辺をE+Bとすればnビットの演算E十Bのキャリ
ーが1であるときオーバーフローが検出されることから
COを用いてオーバーフローが検出されも 次に前記減算器で1と2の減算が行われ1−(Z+1)
のビット反転すなわちz−1が前記減算器の結果Aとし
て出力され また1−Zの符号SgOとZ−1の符号S
glを出力すも 第一の論理回路では仮数部の桁落ちに
関係なく式(9)が戒り立つかまた(友 仮数部の桁落
ちを考慮して式(1 0)の左辺をE+B−1とすれば
仮数部の桁落ちがない場合にE+B=1が戒り立っとき
アンダーフローを検出する。式(9)はSgl=1であ
ることを表わしE十B=1はSgO=Oかっsg1=0
を表わすので第一の論理回路では前記減算器の出力Sg
OとSglと仮数部の桁落ちとがS g 1= 1また
は SgO=0かっS g 1= 0かっ 10− 仮数部の桁落ちがな(1 という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となる。
の減算が行われB−Yが前記減算器の結果Aとして出力
される。加算器ではXとAとの加算が行われx+A=X
+(B−Y)=X+Y−B−Q− が結果2として、X十Aのキャリーcoが出力されも
第二の論理回路では仮数部の桁落ちを考慮して式(6)
の左辺をE+Bとすればnビットの演算E十Bのキャリ
ーが1であるときオーバーフローが検出されることから
COを用いてオーバーフローが検出されも 次に前記減算器で1と2の減算が行われ1−(Z+1)
のビット反転すなわちz−1が前記減算器の結果Aとし
て出力され また1−Zの符号SgOとZ−1の符号S
glを出力すも 第一の論理回路では仮数部の桁落ちに
関係なく式(9)が戒り立つかまた(友 仮数部の桁落
ちを考慮して式(1 0)の左辺をE+B−1とすれば
仮数部の桁落ちがない場合にE+B=1が戒り立っとき
アンダーフローを検出する。式(9)はSgl=1であ
ることを表わしE十B=1はSgO=Oかっsg1=0
を表わすので第一の論理回路では前記減算器の出力Sg
OとSglと仮数部の桁落ちとがS g 1= 1また
は SgO=0かっS g 1= 0かっ 10− 仮数部の桁落ちがな(1 という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となる。
前記加算器ではlとAとの加算が行われ仮数部の桁落ち
がない場合はA+1=X+ (Y−B)+1が結果Zと
して出力され 仮数部の桁落ちがある場合は入力Aがそ
のまま出力されも 第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁落ちがない場
合のみCIよりオーバーフローが検出されも 実施例 本発明の実施例を第1図を参照して説明すも第1図にお
いて100は浮動小数点形式の被演算データの指数部オ
ペランドYを格納する入力レジスタであり、 103は
浮動小数点形式の被演算データの指数部オペランドXを
格納するレジスタであも 101は定数生戒制御信号1
11に従い定数を出力する定数生戊回路である。 10
2は入力レジスタ100から一方の入力Fyに提供され
たデータと定数生戒回路101から他方の入力Fxl1 に提供されたデータの減算結果としてFx−FyとFx
−(Fy+1)のビット反転結果Fx−(Fy+1)の
2通りを出力する減算器である。 112は入力レジス
タ103の出力と定数1のどちらか一方を選択するX入
力選択信号であり、 113は減算器102の2通りの
出力のうちどちらか一方を選択するY入力選択信号であ
も104は加算器であり、一方の入力SxにはX入力選
択信号112によって選択されたデータが送られ 他方
の入力syにはY入力選択信号113によって選択され
たデータAが入力され 加算Sx+Syが行われ結果が
Zとして出力されも また加算器104は結果Zの他に
Sx十SyのキャリーとSx十(Sy+1)のキャリー
の2つのキャリーも出力する。 116は結果選択信号
であり加算器104の結果2と前述のデータAのどちら
か一方を選択する。 105は結果選択信号116によ
って選択されたデータを格納するレジスタである。
がない場合はA+1=X+ (Y−B)+1が結果Zと
して出力され 仮数部の桁落ちがある場合は入力Aがそ
のまま出力されも 第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁落ちがない場
合のみCIよりオーバーフローが検出されも 実施例 本発明の実施例を第1図を参照して説明すも第1図にお
いて100は浮動小数点形式の被演算データの指数部オ
ペランドYを格納する入力レジスタであり、 103は
浮動小数点形式の被演算データの指数部オペランドXを
格納するレジスタであも 101は定数生戒制御信号1
11に従い定数を出力する定数生戊回路である。 10
2は入力レジスタ100から一方の入力Fyに提供され
たデータと定数生戒回路101から他方の入力Fxl1 に提供されたデータの減算結果としてFx−FyとFx
−(Fy+1)のビット反転結果Fx−(Fy+1)の
2通りを出力する減算器である。 112は入力レジス
タ103の出力と定数1のどちらか一方を選択するX入
力選択信号であり、 113は減算器102の2通りの
出力のうちどちらか一方を選択するY入力選択信号であ
も104は加算器であり、一方の入力SxにはX入力選
択信号112によって選択されたデータが送られ 他方
の入力syにはY入力選択信号113によって選択され
たデータAが入力され 加算Sx+Syが行われ結果が
Zとして出力されも また加算器104は結果Zの他に
Sx十SyのキャリーとSx十(Sy+1)のキャリー
の2つのキャリーも出力する。 116は結果選択信号
であり加算器104の結果2と前述のデータAのどちら
か一方を選択する。 105は結果選択信号116によ
って選択されたデータを格納するレジスタである。
12−
117は減算器102の1つの出力であるFx−Fyを
反転するインバータであり、 106は仮数部からの桁
上げと減算器102のもう1つの出力であるFx−(F
y+1)のビット反転結果Fx−(Fy+1)の符号ビ
ットとインバータll7の出力からアンダーフローを検
出する論理を与える複合ゲートであも 107は仮数部からの桁上げを反転するインバー久 1
14はインバータ107の出力と入力レジスタ103に
格納されているXの符号ビットのどちらか一方を選択す
る選択信q 115は加算器104から出力される2
つのキャリーのうち1つを選択するキャリー選択信号
109はキャリー選択信号115で選択されたキャリー
を反転するインバータであ& 108は選択信号11
4の選択結果とAの符号ビットとインバータ109の出
力からオーバーフローを検出する論理を与える3入力N
ORゲートである。 110は内部バスでありこのバス
を使用して、結果レジスタ105の13ー 出力を入力レジスタ100に入力することができも 以上のように構威された浮動小数点演算器において浮動
小数点乗算が行なわれる場合の全体の動きについて説明
すも 浮動小数点乗算において浮動小数点乗算の指数部
の計算は式(1)よりX十Y−Bを求めることで実現さ
れも 浮動小数点乗算が行われる場合、定数生戒回路1
01から定数生成制御信号111に従い被演算データの
フォーマットに応じたバイアス量Bが出力され減算器1
02の一方の入力Fxに送られる。また減算器l02の
他方の入力Fyには入力レジスタ100に格納された浮
動小数点形式の被演算データの指数部オペランドYが送
られて減算器102においてB−Yが計算される。Y入
力選択信号113は減算器l 02の2つの出力結果のうちB一(Y千1)を選んで加
算器104の一方の入力Syに送も またB − (Y
+1) =Y−B ・・・ (11)−14− が戒り立つので減算器102ではY−Bが求められる。
反転するインバータであり、 106は仮数部からの桁
上げと減算器102のもう1つの出力であるFx−(F
y+1)のビット反転結果Fx−(Fy+1)の符号ビ
ットとインバータll7の出力からアンダーフローを検
出する論理を与える複合ゲートであも 107は仮数部からの桁上げを反転するインバー久 1
14はインバータ107の出力と入力レジスタ103に
格納されているXの符号ビットのどちらか一方を選択す
る選択信q 115は加算器104から出力される2
つのキャリーのうち1つを選択するキャリー選択信号
109はキャリー選択信号115で選択されたキャリー
を反転するインバータであ& 108は選択信号11
4の選択結果とAの符号ビットとインバータ109の出
力からオーバーフローを検出する論理を与える3入力N
ORゲートである。 110は内部バスでありこのバス
を使用して、結果レジスタ105の13ー 出力を入力レジスタ100に入力することができも 以上のように構威された浮動小数点演算器において浮動
小数点乗算が行なわれる場合の全体の動きについて説明
すも 浮動小数点乗算において浮動小数点乗算の指数部
の計算は式(1)よりX十Y−Bを求めることで実現さ
れも 浮動小数点乗算が行われる場合、定数生戒回路1
01から定数生成制御信号111に従い被演算データの
フォーマットに応じたバイアス量Bが出力され減算器1
02の一方の入力Fxに送られる。また減算器l02の
他方の入力Fyには入力レジスタ100に格納された浮
動小数点形式の被演算データの指数部オペランドYが送
られて減算器102においてB−Yが計算される。Y入
力選択信号113は減算器l 02の2つの出力結果のうちB一(Y千1)を選んで加
算器104の一方の入力Syに送も またB − (Y
+1) =Y−B ・・・ (11)−14− が戒り立つので減算器102ではY−Bが求められる。
加算器104の他方の入力SxにはX入力選択信号11
2によって選択された入力レジスタの内容が送られるの
玄 加算器104ではX+(Y−B)を求めることがで
き結果レジスタ105結果選択信号116によって選択
されたx+y−Bが格納されも ところで、浮動小数点乗算においては仮数部の桁落ちは
有り得ないのでSx+Sy=X+Y−Bが指数の最大値
を越えていれば仮数部の計算結果に関係なく指数部の計
算結果だけでオーバーフローが確定する。
2によって選択された入力レジスタの内容が送られるの
玄 加算器104ではX+(Y−B)を求めることがで
き結果レジスタ105結果選択信号116によって選択
されたx+y−Bが格納されも ところで、浮動小数点乗算においては仮数部の桁落ちは
有り得ないのでSx+Sy=X+Y−Bが指数の最大値
を越えていれば仮数部の計算結果に関係なく指数部の計
算結果だけでオーバーフローが確定する。
そこで第1図の実施例においては式(6)よりキャリー
選択信号115が加算器104から出力されるキャリー
のうちSx+ (Sy+1>のキャリーを選択し この
キャリーによってオーバーフローを検出している力交
実際Sx+ (Sy+1)のキャリーは Sx<0かつsy≧0かっ Sx+ (Sy+1)≧0 ・・・ (条件l)15− の場合にもボローとして現われも IEEE754規格では通常の場合、指数部はバイアス
量を加えた正数で表現されているがIEEE754規格
で定義されているデノーマライズドナンバーを被演算オ
ペランドに持つ乗算では仮数部の正規化によって内部表
現としての指数部が負数になることがあるので負数入力
についても考慮する必要があも Sx+ (Sy+1)のキャリーが桁あふれを表すため
には Sx≧OかつSy≧O ・・・ (条件2)が戒立して
いる必要があム ここ玄 選択信号114で選択された
Xの符号ビットをXs,Aの符号ビットをAs,Sx+
(Sy+1)のキャリーを01とすると P= Xs − As − Cl = Xs+As+CI ・=’ (1 2)
においてP=1のとき指数部の計算だけでわかるオーバ
ーフローが確定するの玄 式〈12)で表=16ー される論理をインバータ109と3入力NOR 108
とで実現すも 次に結果レジスタ105に格納されたデ
ータは内部バス110を経由して入力レジスタ100に
送られも 定数生戒回路101は定数生威信号111に
したがって″′O゛′を出力し減算器102の一方の入
力Fxに送も 減算器102の他方の入力Fyには入力
レジスタ100の内容X+Y−Bが入力され減算器10
2ではo−(X+Y−B)とO− ( (X十Y−B)
+1)= (X+Y−B) −1を得も 複合ゲート
106ではこの減算器102のそれぞれ2つの出力のM
SBと仮数部の桁上げとから仮数部の桁上げに関係なく
式(9)において左辺をX十Y−Bとした式が戒り立つ
かあるいit 仮数部の桁上げがありかつ式(10)
において左辺をX+Y−Bとした式が戒り立ばアンダー
フローが検出されもいま仮数部に桁上げがあるときCm
=1, 仮数部に桁上げがないときCm=Oとし減算
器102の一方の出力X十Y−BのMSBをBQ, 他
方の出17− 力1 − (X+Y−B)のMSBをB1とするとアン
ダーフローの発生する条件{よ Q=BO+Cm* Bo− Bl =BO十Cm−81 −= (13)においてQ
=1であるの玄 この論理を複合ゲート106とインバ
ータ117で実現することによりアンダーフローを検出
する。
選択信号115が加算器104から出力されるキャリー
のうちSx+ (Sy+1>のキャリーを選択し この
キャリーによってオーバーフローを検出している力交
実際Sx+ (Sy+1)のキャリーは Sx<0かつsy≧0かっ Sx+ (Sy+1)≧0 ・・・ (条件l)15− の場合にもボローとして現われも IEEE754規格では通常の場合、指数部はバイアス
量を加えた正数で表現されているがIEEE754規格
で定義されているデノーマライズドナンバーを被演算オ
ペランドに持つ乗算では仮数部の正規化によって内部表
現としての指数部が負数になることがあるので負数入力
についても考慮する必要があも Sx+ (Sy+1)のキャリーが桁あふれを表すため
には Sx≧OかつSy≧O ・・・ (条件2)が戒立して
いる必要があム ここ玄 選択信号114で選択された
Xの符号ビットをXs,Aの符号ビットをAs,Sx+
(Sy+1)のキャリーを01とすると P= Xs − As − Cl = Xs+As+CI ・=’ (1 2)
においてP=1のとき指数部の計算だけでわかるオーバ
ーフローが確定するの玄 式〈12)で表=16ー される論理をインバータ109と3入力NOR 108
とで実現すも 次に結果レジスタ105に格納されたデ
ータは内部バス110を経由して入力レジスタ100に
送られも 定数生戒回路101は定数生威信号111に
したがって″′O゛′を出力し減算器102の一方の入
力Fxに送も 減算器102の他方の入力Fyには入力
レジスタ100の内容X+Y−Bが入力され減算器10
2ではo−(X+Y−B)とO− ( (X十Y−B)
+1)= (X+Y−B) −1を得も 複合ゲート
106ではこの減算器102のそれぞれ2つの出力のM
SBと仮数部の桁上げとから仮数部の桁上げに関係なく
式(9)において左辺をX十Y−Bとした式が戒り立つ
かあるいit 仮数部の桁上げがありかつ式(10)
において左辺をX+Y−Bとした式が戒り立ばアンダー
フローが検出されもいま仮数部に桁上げがあるときCm
=1, 仮数部に桁上げがないときCm=Oとし減算
器102の一方の出力X十Y−BのMSBをBQ, 他
方の出17− 力1 − (X+Y−B)のMSBをB1とするとアン
ダーフローの発生する条件{よ Q=BO+Cm* Bo− Bl =BO十Cm−81 −= (13)においてQ
=1であるの玄 この論理を複合ゲート106とインバ
ータ117で実現することによりアンダーフローを検出
する。
次に加算器104ではX入力選択信号112によって選
択された定数′゜1″′が一方の入力Sxに送らh,Y
入力選択信号113によって選択された減算器102の
出力X+Y−BがデータEとして他方の入力Syに入力
されて(X+Y−B) +1が計算されも 結果レジスタ105には仮数部の桁上げがない場合は前
述のデータAM 仮数部の桁上げがある場合は加算器
104の出力(X+Y−B)+1力交結果選択信号11
6によって選択され書き込まれる。
択された定数′゜1″′が一方の入力Sxに送らh,Y
入力選択信号113によって選択された減算器102の
出力X+Y−BがデータEとして他方の入力Syに入力
されて(X+Y−B) +1が計算されも 結果レジスタ105には仮数部の桁上げがない場合は前
述のデータAM 仮数部の桁上げがある場合は加算器
104の出力(X+Y−B)+1力交結果選択信号11
6によって選択され書き込まれる。
ところ℃ 仮数部の桁上げがない場合は既にオ−18ー
ーバーフロー検出がなされている力t 仮数部の桁上げ
がある場合についてはオーバーフロー検出はまだ行なわ
れていないので仮数部の桁上げがある場合のオーバーフ
ロー検出法 仮数部の桁上げがない場合と同様に式(6
)が戒立するか否力\ っまり前述のようにSx+ (
Sy+1)のキャリーが1でありかつ条件2が戒立して
いることにょって実現される力交 今Sx=1なので条
件2が或立するためにはsy≧0だけが戒立すればよL
〜 ここで前述のAs,Cl、Cmを用いてオーバーフ
ローが起こる条件を表すと R=Cm−As−CI = Cm+As+CI − (1 4)となり
、式(14)は式(12)においてXsとCmとを入れ
替えたものとなん この入れ替えj1 選択信号114によってXsのか
わりに仮数部の桁上げを反転したインバータ107の出
力を選択することで実現されており、指数部の計算結果
だけでオーバーフローを検出し19ー たときと同じ回路でオーバーフローが求められも次に浮
動小数点除算が行なわれる場合の全体の動きについて説
明する。
がある場合についてはオーバーフロー検出はまだ行なわ
れていないので仮数部の桁上げがある場合のオーバーフ
ロー検出法 仮数部の桁上げがない場合と同様に式(6
)が戒立するか否力\ っまり前述のようにSx+ (
Sy+1)のキャリーが1でありかつ条件2が戒立して
いることにょって実現される力交 今Sx=1なので条
件2が或立するためにはsy≧0だけが戒立すればよL
〜 ここで前述のAs,Cl、Cmを用いてオーバーフ
ローが起こる条件を表すと R=Cm−As−CI = Cm+As+CI − (1 4)となり
、式(14)は式(12)においてXsとCmとを入れ
替えたものとなん この入れ替えj1 選択信号114によってXsのか
わりに仮数部の桁上げを反転したインバータ107の出
力を選択することで実現されており、指数部の計算結果
だけでオーバーフローを検出し19ー たときと同じ回路でオーバーフローが求められも次に浮
動小数点除算が行なわれる場合の全体の動きについて説
明する。
浮動小数点除算において指数部の計算は式(2)により
X−Y十Bを求めることで実現される。
X−Y十Bを求めることで実現される。
第1図の実施例においては減算器102でFx−Fy=
B−Yが計算されるところまでは浮動小数点乗算の場合
と同じであ4Y入力選択信号1l3は減算器102の2
つの出力結果のうちFxpyを選びデータAとして加算
器104の一方の入力Syに送る。加算器104の他方
の入力SXにはX入力選択信号112によって選択され
た入力レジスタlO3の内容が送られるの致 加算器1
04ではX十(B−Y)=X−Y+Bを求めることがで
き結果レジスタ105にX−Y十Bが格納されも ところで、浮動小数点除算においては仮数部の桁落ちが
あり得るので仮数部の計算結果に関係なくオーバーフロ
ーが確定するためには 式(6〉において左辺をSx十
Syとした式が或り立てば一加一 よ(〜 ここで前述のXsS As、及びSx+Syの
キャリーCOを用いてオーバーフローが起こる条件を表
すと S=Xs. As. CO = Xs+As+CO − (1 5)と
なり式(15)は式(12)においてCOとCIとを入
れ替えたものであも この入れ替え(友 選択信号115によってCIのかわ
りにCOを選択することで実現されており、浮動小数点
乗算において指数部の計算結果だけでオーバーフローを
検出したときと同じ回路でオーバーフローが求められも 次に結果レジスタ105に格納されたデータは浮動小数
点乗算の時と同様に内部バス110を経由して入力レジ
スタ100に送られも 定数生戒回路101は定数生威
信号111に従って”1″″を出力し減算器102の一
方の入力Fxに送も減算器102の他方の入力Fyには
入力レジスタ100の内容X−Y+Bが入力され 減算
器10−21ー 2では 1−(X−Y+B)と1−( (X+Y−B) + 1
)=X十Y−Bを得も 浮動小数点除算におけるアンダ
ーフローは仮数部の桁落ちに関係なく式(9)の左辺を
X−Y+Bとした式が戒文するかまたは仮数部の桁落ち
がありかつ式(10)の左辺をX一Y十B−1式が或り
立てばよいわけであもここで仮数部の桁落ちがある状態
と仮数部の桁落ちがない状態とについて考えると仮数部
の桁落ちがある状態(よ 仮数部の桁落ちがない状態か
ら見て見かけ上仮数部の桁上がりがない状態だと考える
ことができるの玄 仮数部の桁落ちがある時つまり見か
け上仮数部に桁上がりがないときCm’=0、仮数部の
桁落ちがない時つまり見かけ上仮数部に桁上がりがある
ときCm’=1とし前述のBQ. Blを用いるとア
ンダーフローの発生する条件は T=BO+Cm @ Bo− Bl=BO+C
m’ −Bl−(16) 一※一 においてT=1であり、式(l6)は式(l3)と同じ
論理であるか転 式(13)においてQ=1を実現した
回路によってアンダーフローを検出することができも 次に加算器104では乗算の場合と同様にX入力選択信
号112によって選択された定数′”1″が一方の入力
Sxに送らt1..Y入力選択信号113によって選択
された減算器102の出力(X−Y+B)−1がデータ
Aとして他方の入力Syに送られて { (X十Y−B)−1) +1=X+Y−Bが言十算
される。
B−Yが計算されるところまでは浮動小数点乗算の場合
と同じであ4Y入力選択信号1l3は減算器102の2
つの出力結果のうちFxpyを選びデータAとして加算
器104の一方の入力Syに送る。加算器104の他方
の入力SXにはX入力選択信号112によって選択され
た入力レジスタlO3の内容が送られるの致 加算器1
04ではX十(B−Y)=X−Y+Bを求めることがで
き結果レジスタ105にX−Y十Bが格納されも ところで、浮動小数点除算においては仮数部の桁落ちが
あり得るので仮数部の計算結果に関係なくオーバーフロ
ーが確定するためには 式(6〉において左辺をSx十
Syとした式が或り立てば一加一 よ(〜 ここで前述のXsS As、及びSx+Syの
キャリーCOを用いてオーバーフローが起こる条件を表
すと S=Xs. As. CO = Xs+As+CO − (1 5)と
なり式(15)は式(12)においてCOとCIとを入
れ替えたものであも この入れ替え(友 選択信号115によってCIのかわ
りにCOを選択することで実現されており、浮動小数点
乗算において指数部の計算結果だけでオーバーフローを
検出したときと同じ回路でオーバーフローが求められも 次に結果レジスタ105に格納されたデータは浮動小数
点乗算の時と同様に内部バス110を経由して入力レジ
スタ100に送られも 定数生戒回路101は定数生威
信号111に従って”1″″を出力し減算器102の一
方の入力Fxに送も減算器102の他方の入力Fyには
入力レジスタ100の内容X−Y+Bが入力され 減算
器10−21ー 2では 1−(X−Y+B)と1−( (X+Y−B) + 1
)=X十Y−Bを得も 浮動小数点除算におけるアンダ
ーフローは仮数部の桁落ちに関係なく式(9)の左辺を
X−Y+Bとした式が戒文するかまたは仮数部の桁落ち
がありかつ式(10)の左辺をX一Y十B−1式が或り
立てばよいわけであもここで仮数部の桁落ちがある状態
と仮数部の桁落ちがない状態とについて考えると仮数部
の桁落ちがある状態(よ 仮数部の桁落ちがない状態か
ら見て見かけ上仮数部の桁上がりがない状態だと考える
ことができるの玄 仮数部の桁落ちがある時つまり見か
け上仮数部に桁上がりがないときCm’=0、仮数部の
桁落ちがない時つまり見かけ上仮数部に桁上がりがある
ときCm’=1とし前述のBQ. Blを用いるとア
ンダーフローの発生する条件は T=BO+Cm @ Bo− Bl=BO+C
m’ −Bl−(16) 一※一 においてT=1であり、式(l6)は式(l3)と同じ
論理であるか転 式(13)においてQ=1を実現した
回路によってアンダーフローを検出することができも 次に加算器104では乗算の場合と同様にX入力選択信
号112によって選択された定数′”1″が一方の入力
Sxに送らt1..Y入力選択信号113によって選択
された減算器102の出力(X−Y+B)−1がデータ
Aとして他方の入力Syに送られて { (X十Y−B)−1) +1=X+Y−Bが言十算
される。
結果レジスタ105には仮数部の桁落ちがある場合は前
述のデータAfJ<.仮数部の桁落ちがない場合は加算
器104の出力X−Y+B力t 結果選択信号116に
よって選択され書き込まれん仮数部の桁落ちに関するの
オーバーフロー(よ上述のCm’ As,Clを用
いたR =Cm’ ・As−CI = Cm’ +As十C1 − (1 7)ー※
− においてR=1の時検出される。式(l7)は式(l4
)と同じ論理であるか転 式(l4)においてR=1を
実現した回路によってオーバーフローを検出することが
できも 発明の効果 以上述べたように 本発明によれば 同一の回路構或で
浮動小数点乗算における指数計算と浮動小数点除算にお
ける指数部の計算とを行なうことができ、また浮動小数
点乗算と浮動小数点除算におけるオーバーフロー/アン
ダーフロー検出も同じ回路で実現することができる。加
えて、オーバーフローの検出を仮数部の計算結果に依存
する場合と指数部の計算だけで検出できる場合とに分け
て行なうことによりオーバーフロー検出を速やかに行な
うことが可能であも またオーバーフロー/アンダーフ
ロー検出回路の構或が簡単であり少ないハードウェア量
で実現できる。
述のデータAfJ<.仮数部の桁落ちがない場合は加算
器104の出力X−Y+B力t 結果選択信号116に
よって選択され書き込まれん仮数部の桁落ちに関するの
オーバーフロー(よ上述のCm’ As,Clを用
いたR =Cm’ ・As−CI = Cm’ +As十C1 − (1 7)ー※
− においてR=1の時検出される。式(l7)は式(l4
)と同じ論理であるか転 式(l4)においてR=1を
実現した回路によってオーバーフローを検出することが
できも 発明の効果 以上述べたように 本発明によれば 同一の回路構或で
浮動小数点乗算における指数計算と浮動小数点除算にお
ける指数部の計算とを行なうことができ、また浮動小数
点乗算と浮動小数点除算におけるオーバーフロー/アン
ダーフロー検出も同じ回路で実現することができる。加
えて、オーバーフローの検出を仮数部の計算結果に依存
する場合と指数部の計算だけで検出できる場合とに分け
て行なうことによりオーバーフロー検出を速やかに行な
うことが可能であも またオーバーフロー/アンダーフ
ロー検出回路の構或が簡単であり少ないハードウェア量
で実現できる。
第1図は本発明における浮動小数点演算回路の回路は
第2図は従来の浮動小数点演算回路の回一必 路図である。 100,103・・・入カレジス久 102・・・減算
銖104・・・加算IL 105・・・結果レジス久
106・・・複合ゲート、 1 0 7,1 0 9
・・・インバー久1o8・・・3入力NORゲート、
110・・・内部バ入l11・・・定数生戒制御信号
112・・・X入力選択信徹 113・・・Y入力選択
信ull4・・・選択信号、115・・・キャリー選択
信ull6・・・結果選択信残
第2図は従来の浮動小数点演算回路の回一必 路図である。 100,103・・・入カレジス久 102・・・減算
銖104・・・加算IL 105・・・結果レジス久
106・・・複合ゲート、 1 0 7,1 0 9
・・・インバー久1o8・・・3入力NORゲート、
110・・・内部バ入l11・・・定数生戒制御信号
112・・・X入力選択信徹 113・・・Y入力選択
信ull4・・・選択信号、115・・・キャリー選択
信ull6・・・結果選択信残
Claims (1)
- 2入力FxとFyの減算を行ない結果AとしてFx−F
yとFx−(Fy+1)のビット反転とを選択し出力す
る減算器と、前記減算器の一方の入力結果をAとし他方
の入力Sとの加算S+AとS+(A+1)とを行ない結
果ZとしてS+Aを出力し、S+AのキャリーC0とS
+(A+1)のキャリーC1とを選択し出力する加算器
と、前記減算器の結果と仮数部の桁上げ/桁落ちからア
ンダーフローを検出する第一の論理回路と、前記加算器
のキャリー出力と仮数部の桁上げ/桁落ちからオーバー
フロー検出する第二の論理回路とを備え浮動小数点形式
の乗除算における指数部の計算を行なうことを特徴とす
る浮動小数点演算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1301708A JPH0823810B2 (ja) | 1989-11-20 | 1989-11-20 | 浮動小数点演算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1301708A JPH0823810B2 (ja) | 1989-11-20 | 1989-11-20 | 浮動小数点演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03161832A true JPH03161832A (ja) | 1991-07-11 |
JPH0823810B2 JPH0823810B2 (ja) | 1996-03-06 |
Family
ID=17900203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1301708A Expired - Lifetime JPH0823810B2 (ja) | 1989-11-20 | 1989-11-20 | 浮動小数点演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0823810B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0667849A (ja) * | 1992-08-20 | 1994-03-11 | Mitsubishi Electric Corp | 演算回路 |
-
1989
- 1989-11-20 JP JP1301708A patent/JPH0823810B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0667849A (ja) * | 1992-08-20 | 1994-03-11 | Mitsubishi Electric Corp | 演算回路 |
Also Published As
Publication number | Publication date |
---|---|
JPH0823810B2 (ja) | 1996-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0820005B1 (en) | Method and apparatus for computing floating point data | |
JP3076046B2 (ja) | 例外検出回路 | |
US5373459A (en) | Floating point processor with high speed rounding circuit | |
US20120215823A1 (en) | Apparatus and method for performing floating point addition | |
JPWO2007096982A1 (ja) | 演算処理装置および演算処理方法 | |
JP2008152360A (ja) | 3項入力の浮動小数点加減算器 | |
JPH09212337A (ja) | 浮動小数点演算処理装置 | |
US8898214B2 (en) | Method and apparatus to perform floating point operations | |
JPH02294731A (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
US6571264B1 (en) | Floating-point arithmetic device | |
JPH03161832A (ja) | 浮動小数点演算回路 | |
JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
JPH0511980A (ja) | 桁あふれ検出方式とその回路 | |
JP3257278B2 (ja) | 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 | |
JPS63158626A (ja) | 演算処理装置 | |
JP2801472B2 (ja) | 浮動小数点演算装置 | |
JP2506891B2 (ja) | 浮動小数点演算装置 | |
JPH0361224B2 (ja) | ||
JPS5960637A (ja) | 浮動小数点演算装置 | |
JP2993119B2 (ja) | 浮動小数点演算装置 | |
JPH07104777B2 (ja) | 浮動小数点加減算装置 | |
JP3124286B2 (ja) | 浮動小数点数演算装置 | |
JPH0370029A (ja) | 浮動小数点演算装置 | |
JPH0498524A (ja) | 浮動小数点演算装置 | |
JPH04132538U (ja) | 浮動小数点演算回路 |