JPH0823810B2 - 浮動小数点演算回路 - Google Patents
浮動小数点演算回路Info
- Publication number
- JPH0823810B2 JPH0823810B2 JP1301708A JP30170889A JPH0823810B2 JP H0823810 B2 JPH0823810 B2 JP H0823810B2 JP 1301708 A JP1301708 A JP 1301708A JP 30170889 A JP30170889 A JP 30170889A JP H0823810 B2 JPH0823810 B2 JP H0823810B2
- Authority
- JP
- Japan
- Prior art keywords
- carry
- input
- mantissa
- output
- result
- 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 - Lifetime
Links
Description
【発明の詳細な説明】 産業上の利用分野 本発明は半導体集積回路装置に係り、特にIEEE(The
Institute of Electrical and Electronics Eng
inerrs)754規格の浮動小数点演算回路に関するもので
ある。
Institute of Electrical and Electronics Eng
inerrs)754規格の浮動小数点演算回路に関するもので
ある。
従来の技術 IEEE754規格の小数点演算特に乗算と除算において、
乗算における指数部の計算は (X−B)+(Y−B) =(X+Y−B)−B …(1) として行い、除算における指数部の計算は (X−B)−(Y−B) =(X−Y+B)−B …(2) として行う。但しX,Yは浮動小数点形式の被演算データ
の指数部のオペランド、Bはバイアス量でB=2n-1−1
(nはデータのビット数)と定義され単精度浮動小数点
ではn=8よりB=127、倍精度浮動小数点では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=2n-1−1
(nはデータのビット数)と定義され単精度浮動小数点
ではn=8よりB=127、倍精度浮動小数点ではn=11
よりB=1023である。
前述の式(1)、(2)で表わされる浮動小数点乗除
算における指数部の計算を行なう浮動小数点演算回路の
従来例を第2図に示す。第2図において一方の入力Fxと
他方の入力FyとからFx−Fyを計算する減算器200に指数
部のオペランドYとバイアス量BをそれぞれFx=Y、Fy
=Bとなるよう入力し減算結果としてY−Bを得る。次
に加減算器201では減算器200の出力Y−Bと指数部のオ
ペランドXをそれぞれSx=X、Sy=Y−Bとなるよう入
力し、仮数部の桁上げがあるときは外部からのキャリー
CをC=1とし、仮数部の桁上げがないときはC=0と
してSx+Sy+Cを計算し、結果としてZを得ることで浮
動小数点乗算における指数部の計算値、式(1)が求め
られる。
算における指数部の計算を行なう浮動小数点演算回路の
従来例を第2図に示す。第2図において一方の入力Fxと
他方の入力FyとからFx−Fyを計算する減算器200に指数
部のオペランドYとバイアス量BをそれぞれFx=Y、Fy
=Bとなるよう入力し減算結果としてY−Bを得る。次
に加減算器201では減算器200の出力Y−Bと指数部のオ
ペランドXをそれぞれSx=X、Sy=Y−Bとなるよう入
力し、仮数部の桁上げがあるときは外部からのキャリー
CをC=1とし、仮数部の桁上げがないときはC=0と
してSx+Sy+Cを計算し、結果としてZを得ることで浮
動小数点乗算における指数部の計算値、式(1)が求め
られる。
次に、上述した方法を用いて求められた式(1)の値
が指数部の表現する値の範囲を越えているかどうかを見
ることでオーバーフロー/アンダーフローの検出を行な
うが、IEEE754規格では浮動小数点数の指数部nビット
が表わす値Eの範囲を次のように定義している。
が指数部の表現する値の範囲を越えているかどうかを見
ることでオーバーフロー/アンダーフローの検出を行な
うが、IEEE754規格では浮動小数点数の指数部nビット
が表わす値Eの範囲を次のように定義している。
Emin≦E≦Emax …(3) 但し、Emin=(−1)・(2n-1−2) Emax=2n-1−1 ところで浮動小数点の指数部は前述のバイアス量Bを
加えて表現されているので、実際指数部の計算に用いら
れている値はE+Bとなり式(3)は Emin+B =(−1)・(2n-1−2)+(2n-1−1) =1 Emax+B =2n-1−1+(2n-1−1) =2n−2 より 1≦E+B≦2n−2 …(4) と表わせる。
加えて表現されているので、実際指数部の計算に用いら
れている値はE+Bとなり式(3)は Emin+B =(−1)・(2n-1−2)+(2n-1−1) =1 Emax+B =2n-1−1+(2n-1−1) =2n−2 より 1≦E+B≦2n−2 …(4) と表わせる。
比較器202では式(4)より加算器201の出力と定数1
を比較しZ<1ならばアンダーフローの発生を外部に知
らせる。また比較器203でも式(4)より加算器201の出
力と定数2n−2を比較し2n−2<Zならばオーバーフロ
ーの発生を外部に知らせる。
を比較しZ<1ならばアンダーフローの発生を外部に知
らせる。また比較器203でも式(4)より加算器201の出
力と定数2n−2を比較し2n−2<Zならばオーバーフロ
ーの発生を外部に知らせる。
一方浮動小数点除算における指数部の計算は、減算器
200の出力としてY−Bを得、加減算器201にXとY−B
とを入力するところまでは乗算の場合ど同様であるが、
加減算器201では仮数部の桁落ちがあるときC=1,桁落
ちのないときC=0としてX−(Y−B)−Cが計算さ
れ式(2)の値が求められる。また乗算の場合と同様に
比較器202でアンダーフローを比較器203でオーバーフロ
ーを検出する。
200の出力としてY−Bを得、加減算器201にXとY−B
とを入力するところまでは乗算の場合ど同様であるが、
加減算器201では仮数部の桁落ちがあるときC=1,桁落
ちのないときC=0としてX−(Y−B)−Cが計算さ
れ式(2)の値が求められる。また乗算の場合と同様に
比較器202でアンダーフローを比較器203でオーバーフロ
ーを検出する。
発明が解決しようとする課題 しかしながら上記のような構成では、浮動小数点乗除
算において指数部の値は仮数部からの桁上げ/桁落ちが
入力された後加減算器における計算が終了してから確定
するので、指数部の計算結果の出力が遅くなるという問
題点を有していた。
算において指数部の値は仮数部からの桁上げ/桁落ちが
入力された後加減算器における計算が終了してから確定
するので、指数部の計算結果の出力が遅くなるという問
題点を有していた。
また出力された計算結果と2n−2との比較によりオー
バーフローを、1との比較によりアングーアフーを検出
しているので計算結果と2つの定数2n−2、1とを比較
する比較器が必要となり結果としてハードウェア量が増
大するという問題点を有し、計算結果の出力後オーバー
フロー/アンダーフロー検出が行なわれるのでオーバー
フロー/アンダーフローの発生を外部に知らせることも
遅くなるという問題点を有していた。
バーフローを、1との比較によりアングーアフーを検出
しているので計算結果と2つの定数2n−2、1とを比較
する比較器が必要となり結果としてハードウェア量が増
大するという問題点を有し、計算結果の出力後オーバー
フロー/アンダーフロー検出が行なわれるのでオーバー
フロー/アンダーフローの発生を外部に知らせることも
遅くなるという問題点を有していた。
本発明はかかる点に鑑み、減算器と加算器で浮動小数
点乗除算における指数部の計算を行ない、上述した減算
器と加算器と少数の論理ゲートによって、回路規模が小
さくかつオーバーフロー/アンダーフロー検出を高速に
行なうことのできる浮動小数点演算回路を提供すること
を目的とする。
点乗除算における指数部の計算を行ない、上述した減算
器と加算器と少数の論理ゲートによって、回路規模が小
さくかつオーバーフロー/アンダーフロー検出を高速に
行なうことのできる浮動小数点演算回路を提供すること
を目的とする。
課題を解決するための手段 本発明は、2入力FxとFyの減算を行ない結果Aとして
Fx−FyとFx−(Fy+1)のビット反転とを選択し出力す
る減算器と、前記減算器の一方の入力結果をAとし他方
の入力Sとの加算S+AとS+(A+1)とを行ない結
果ZとしてS+Aを出力し、S+AのキャリーC0とS+
(A+1)のキャリーC1とを選択し出力する加算器と、
前記減算器の結果と仮数部の桁上げ/桁落ちからアンダ
ーフローを検出する第一の論理回路と、前記加算器のキ
ャリー出力と仮数部の桁上げ/桁落ちからオーバーフロ
ー検出する第二の論理回路とを備え、浮動小数点形式の
乗除算における指数部の計算を行なうことを特徴とする
浮動小数点演算回路である。
Fx−FyとFx−(Fy+1)のビット反転とを選択し出力す
る減算器と、前記減算器の一方の入力結果をAとし他方
の入力Sとの加算S+AとS+(A+1)とを行ない結
果ZとしてS+Aを出力し、S+AのキャリーC0とS+
(A+1)のキャリーC1とを選択し出力する加算器と、
前記減算器の結果と仮数部の桁上げ/桁落ちからアンダ
ーフローを検出する第一の論理回路と、前記加算器のキ
ャリー出力と仮数部の桁上げ/桁落ちからオーバーフロ
ー検出する第二の論理回路とを備え、浮動小数点形式の
乗除算における指数部の計算を行なうことを特徴とする
浮動小数点演算回路である。
作用 本発明は上述した構成により、それぞれ指数部オペラ
ンドX、Yを有する浮動小数点形式の2つの被演算デー
タの乗除算における指数部を次のように計算する。まず
乗算では減算器において上述したバイアス量BとYの減
算が行われB−(Y+1)のビット反転が前記減算器の
結果Aとして出力される。ここで、B−(Y+1)のビ
ット反転はY−Bを表わす。加算器ではXとAとの加算
が行われX+A=X+(Y−B)が結果Zとして、X+
(A+1)のキャリーがC1として出力される。第二の論
理回路ではC1より、以下の理由でオーバーフローが検出
される。式(4)より E+B+1≦2n−1−1<2n−1 …(5) が成り立ので、 E+B+1≦2n−1 …(6) つまり式(6)はnビットの演算E+B+1のキャリー
が1であるときオーバーフローが検出されることを示し
ている。
ンドX、Yを有する浮動小数点形式の2つの被演算デー
タの乗除算における指数部を次のように計算する。まず
乗算では減算器において上述したバイアス量BとYの減
算が行われB−(Y+1)のビット反転が前記減算器の
結果Aとして出力される。ここで、B−(Y+1)のビ
ット反転はY−Bを表わす。加算器ではXとAとの加算
が行われX+A=X+(Y−B)が結果Zとして、X+
(A+1)のキャリーがC1として出力される。第二の論
理回路ではC1より、以下の理由でオーバーフローが検出
される。式(4)より E+B+1≦2n−1−1<2n−1 …(5) が成り立ので、 E+B+1≦2n−1 …(6) つまり式(6)はnビットの演算E+B+1のキャリー
が1であるときオーバーフローが検出されることを示し
ている。
次に前記減算器で0とZの減算が行われ0−(Z+
1)のビット反転すなわちZ−0が前記減算器の結果A
として出力され、また0−Zの符号Sg0とZ−0の符号S
g1が出力される。第一の論理回路では前記減算器の出力
Sg0とSg1と仮数部の桁上げによって以下の理由でアンダ
ーフローを検出する。式(4)より 1≦E+B …(7) が成り立ので、 0≧E+B …(8) のときアンダーフローが検出される。言い換えれば、仮
数部の桁上げに関係なく E+B<0 …(9) または 仮数部の桁上がなくかつ E+B=0 …(10) という条件が成り立つ。式(9)はSg1=1を表わし、
式(10)はSg0=0かつSg1=0を表わすので第一の論理
回路では前記減算器の出力Sg0とSg1と仮数部の桁上げと
が Sg1=1または Sg0=0かつSg1=0かつ 仮数部の桁上げがある。
1)のビット反転すなわちZ−0が前記減算器の結果A
として出力され、また0−Zの符号Sg0とZ−0の符号S
g1が出力される。第一の論理回路では前記減算器の出力
Sg0とSg1と仮数部の桁上げによって以下の理由でアンダ
ーフローを検出する。式(4)より 1≦E+B …(7) が成り立ので、 0≧E+B …(8) のときアンダーフローが検出される。言い換えれば、仮
数部の桁上げに関係なく E+B<0 …(9) または 仮数部の桁上がなくかつ E+B=0 …(10) という条件が成り立つ。式(9)はSg1=1を表わし、
式(10)はSg0=0かつSg1=0を表わすので第一の論理
回路では前記減算器の出力Sg0とSg1と仮数部の桁上げと
が Sg1=1または Sg0=0かつSg1=0かつ 仮数部の桁上げがある。
という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となる。
ンダーフロー検出が可能となる。
前記加算器では1とAとの加算が行われ仮数部の桁上
げがある場合はA+1=X+(Y−B)+1が結果Zと
して出力され、仮数部の桁上げがない場合は入力Aがそ
のまま出力される。第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁上げがある場
合のみC1よりオーバーフローが検出される。
げがある場合はA+1=X+(Y−B)+1が結果Zと
して出力され、仮数部の桁上げがない場合は入力Aがそ
のまま出力される。第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁上げがある場
合のみC1よりオーバーフローが検出される。
次に除算では減算器において上述したバイアス量Bと
Yの減算が行われB−Yが前記減算器の結果Aとして出
力される。加算器ではXとAとの加算が行われX+A=
X+(B−Y)=X+Y−Bが結果Zとして、X+Aの
キャリーC0が出力される。第二の論理回路では仮数部の
桁落ちを考慮して式(6)の左辺をE+Bとすればnビ
ットの演算E+Bのキャリーが1であるときオーバーフ
ローが検出されることからC0を用いてオーバーフローが
検出される。
Yの減算が行われB−Yが前記減算器の結果Aとして出
力される。加算器ではXとAとの加算が行われX+A=
X+(B−Y)=X+Y−Bが結果Zとして、X+Aの
キャリーC0が出力される。第二の論理回路では仮数部の
桁落ちを考慮して式(6)の左辺をE+Bとすればnビ
ットの演算E+Bのキャリーが1であるときオーバーフ
ローが検出されることからC0を用いてオーバーフローが
検出される。
次に前記減算器で1とZの減算が行われ1−(Z+
1)のビット反転すなわちZ−1が前記減算器の結果A
として出力され、また1−Zの符号Sg0とZ−1の符号S
g1を出力する。第一の論理回路では仮数部の桁落ちに関
係なく式(9)が成り立つかまたは、仮数部の桁落ちを
考慮して式(10)の左辺をE+B−1とすれば仮数部の
桁落ちがない場合にE+B=1が成り立つときアンダー
フローを検出する。式(9)はSg1=1であることを表
わしE+B=1はSg0=0かつSg1=0を表わすので第一
の論理回路では前記減算器の出力Sg0とSg1と仮数部の桁
落ちとが Sg1=1または Sg0=0かつSg1=0かつ 仮数部の桁落ちがない。
1)のビット反転すなわちZ−1が前記減算器の結果A
として出力され、また1−Zの符号Sg0とZ−1の符号S
g1を出力する。第一の論理回路では仮数部の桁落ちに関
係なく式(9)が成り立つかまたは、仮数部の桁落ちを
考慮して式(10)の左辺をE+B−1とすれば仮数部の
桁落ちがない場合にE+B=1が成り立つときアンダー
フローを検出する。式(9)はSg1=1であることを表
わしE+B=1はSg0=0かつSg1=0を表わすので第一
の論理回路では前記減算器の出力Sg0とSg1と仮数部の桁
落ちとが Sg1=1または Sg0=0かつSg1=0かつ 仮数部の桁落ちがない。
という条件が満たされるか否かを調べることによってア
ンダーフロー検出が可能となる。
ンダーフロー検出が可能となる。
前記加算器では1とAとの加算が行われ仮数部の桁落
ちがない場合はA+1=X+(Y−B)+1が結果Zと
して出力され、仮数部の桁落ちがある場合は入力Aがそ
のまま出力される。第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁落ちがない場
合のみC1よりオーバーフローが検出される。
ちがない場合はA+1=X+(Y−B)+1が結果Zと
して出力され、仮数部の桁落ちがある場合は入力Aがそ
のまま出力される。第二の論理回路では式(6)を使用
して説明したときと同じ理由で仮数部の桁落ちがない場
合のみC1よりオーバーフローが検出される。
実施例 本発明の実施例を第1図を参照して説明する。第1図
において100は浮動小数点形式の被演算データの指数部
オペランドYを格納する入力レジスタであり、103は浮
動小数点形式の被演算データの指数部オペランドXを格
納するレジスタである。101は定数生成制御信号111に従
い定数を出力する定数生成回路である。102は入力レジ
スタ100から一方の入力Fyに提供されたデータと定数生
成回路101から他方の入力Fxに提供されたデータの減算
結果としてFx−FyとFx−(Fy+1)のビット反転結果 の2通りを出力する減算器である。112は入力レジスタ1
03の出力と定数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の結果Zと前述のデータA
のどちらか一方を選択する。105は結果選択信号116によ
って選択されたデータを格納するレジスタである。
において100は浮動小数点形式の被演算データの指数部
オペランドYを格納する入力レジスタであり、103は浮
動小数点形式の被演算データの指数部オペランドXを格
納するレジスタである。101は定数生成制御信号111に従
い定数を出力する定数生成回路である。102は入力レジ
スタ100から一方の入力Fyに提供されたデータと定数生
成回路101から他方の入力Fxに提供されたデータの減算
結果としてFx−FyとFx−(Fy+1)のビット反転結果 の2通りを出力する減算器である。112は入力レジスタ1
03の出力と定数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の結果Zと前述のデータA
のどちらか一方を選択する。105は結果選択信号116によ
って選択されたデータを格納するレジスタである。
117は減算器102の1つの出力であるFx−Fyを反転する
インバータであり、106は仮数部からの桁上げと減算器1
02のもう1つの出力であるFx−(Fy+1)のビット反転
結果 の符号ビットとインバータ117の出力からアンダーフロ
ーを検出する論理を与える複合ゲートである。
インバータであり、106は仮数部からの桁上げと減算器1
02のもう1つの出力であるFx−(Fy+1)のビット反転
結果 の符号ビットとインバータ117の出力からアンダーフロ
ーを検出する論理を与える複合ゲートである。
107は仮数部からの桁上げを反転するインバータ、114
はインバータ107の出力と入力レジスタ103に格納されて
いるXの符号ビットのどちらか一方を選択する選択信
号、115は加算器104から出力される2つのキャリーのう
ち1つを選択するキャリー選択信号、109はキャリー選
択信号115で選択されたキャリーを反転するインバータ
である。108は選択信号114の選択結果とAの符号ビット
とインバータ109の出力からオーバーフローを検出する
論理を与える3入力NORゲートである。110は内部バスで
ありこのバスを使用して、結果レジスタ105の出力を入
力レジスタ100に入力することができる。
はインバータ107の出力と入力レジスタ103に格納されて
いるXの符号ビットのどちらか一方を選択する選択信
号、115は加算器104から出力される2つのキャリーのう
ち1つを選択するキャリー選択信号、109はキャリー選
択信号115で選択されたキャリーを反転するインバータ
である。108は選択信号114の選択結果とAの符号ビット
とインバータ109の出力からオーバーフローを検出する
論理を与える3入力NORゲートである。110は内部バスで
ありこのバスを使用して、結果レジスタ105の出力を入
力レジスタ100に入力することができる。
以上のように構成された浮動小数点演算器において浮
動小数点乗算が行なわれる場合の全体の動きについて説
明する。浮動小数点乗算において浮動小数点乗算の指数
部の計算は式(1)よりX+Y−Bを求めることで実現
される。浮動小数点乗算が行われる場合、定数生成回路
101から定数生成制御信号111に従い被演算データのフォ
ーマットに応じたバイアス量Bが出力され減算器102の
一方の入力Fxに送られる。また減算器102の他方の入力F
yには入力レジスタ100に格納された浮動小数点形式の被
演算データの指数部オペランドYが送られて減算器102
においてB−Yが計算される。Y入力選択信号113は減
算器102の2つの出力結果のうち を選んで加算器104の一方の入力Syに送る。また が成り立つので減算器102ではY−Bが求められる。加
算器104の他方の入力SxにはX入力選択信号112によって
選択された入力レジスタの内容が送られるので、加算器
104ではX+(Y−B)を求めることができ結果レジス
タ105結果選択信号116によって選択されたX+Y−Bが
格納される。
動小数点乗算が行なわれる場合の全体の動きについて説
明する。浮動小数点乗算において浮動小数点乗算の指数
部の計算は式(1)よりX+Y−Bを求めることで実現
される。浮動小数点乗算が行われる場合、定数生成回路
101から定数生成制御信号111に従い被演算データのフォ
ーマットに応じたバイアス量Bが出力され減算器102の
一方の入力Fxに送られる。また減算器102の他方の入力F
yには入力レジスタ100に格納された浮動小数点形式の被
演算データの指数部オペランドYが送られて減算器102
においてB−Yが計算される。Y入力選択信号113は減
算器102の2つの出力結果のうち を選んで加算器104の一方の入力Syに送る。また が成り立つので減算器102ではY−Bが求められる。加
算器104の他方の入力SxにはX入力選択信号112によって
選択された入力レジスタの内容が送られるので、加算器
104ではX+(Y−B)を求めることができ結果レジス
タ105結果選択信号116によって選択されたX+Y−Bが
格納される。
ところで、浮動小数点乗算においては仮数部の桁落ち
は有り得ないのでSx+Sy=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 …(条件1) の場合にもボローとして現われる。
ー選択信号115が加算器104から出力されるキャリーのう
ちSx+(Sy+1)のキャリーを選択し、このキャリーに
よってオーバーフローを検出しているが、実際Sx+(Sy
+1)のキャリーは Sx<0かつSy≧0かつ Sx+(Sy+1)≧0 …(条件1) の場合にもボローとして現われる。
IEEE754規格では通常の場合、指数部はバイアス量を
加えた正数で表現されているがIEEE754規格で定義され
ているデノーマライズドナンバーを被演算オペランドに
持つ乗算では仮数部の正規化によって内部表現としての
指数部が負数になることがあるので負数入力についても
考慮する必要がある。
加えた正数で表現されているがIEEE754規格で定義され
ているデノーマライズドナンバーを被演算オペランドに
持つ乗算では仮数部の正規化によって内部表現としての
指数部が負数になることがあるので負数入力についても
考慮する必要がある。
Sx+(Sy+1)のキャリーが桁あふれを表すためには Sx≧0かつSy≧0 …(条件2) が成立している必要がある。ここで、選択信号114で選
択されたXの符号ビットをXs、Aを符号ビットをAs、Sx
+(Sy+1)のキャリーをC1とすると においてP=1のとき指数部の計算だけでわかるオーバ
ーフローが確定するので、式(12)で表される論理をイ
ンバータ109と3入力NOR108とで実現する。次に結果レ
ジスタ105に格納されたデータは内部バス110を経由して
入力レジスタ100に送られる。定数生成回路101は定数生
成信号111にしたがって“0"を出力し減算器102の一方の
入力Fxに送る。減算器102の他方の入力Fyには入力レジ
スタ100の内容X+Y−Bが入力され減算器102では 0−(X+Y−B)と を得る。複合ゲート106ではこの減算器102のそれぞれ2
つの出力のMSBと仮数部の桁上げとから仮数部の桁上げ
に関係なく式(9)において左辺をX+Y−Bとした式
が成り立つかあるいは、仮数部の桁上げがありかつ式
(10)において左辺をX+Y−Bとした式が成り立ばア
ンダーフローが検出される。
択されたXの符号ビットをXs、Aを符号ビットをAs、Sx
+(Sy+1)のキャリーをC1とすると においてP=1のとき指数部の計算だけでわかるオーバ
ーフローが確定するので、式(12)で表される論理をイ
ンバータ109と3入力NOR108とで実現する。次に結果レ
ジスタ105に格納されたデータは内部バス110を経由して
入力レジスタ100に送られる。定数生成回路101は定数生
成信号111にしたがって“0"を出力し減算器102の一方の
入力Fxに送る。減算器102の他方の入力Fyには入力レジ
スタ100の内容X+Y−Bが入力され減算器102では 0−(X+Y−B)と を得る。複合ゲート106ではこの減算器102のそれぞれ2
つの出力のMSBと仮数部の桁上げとから仮数部の桁上げ
に関係なく式(9)において左辺をX+Y−Bとした式
が成り立つかあるいは、仮数部の桁上げがありかつ式
(10)において左辺をX+Y−Bとした式が成り立ばア
ンダーフローが検出される。
いま仮数部に桁上げがあるときCm=1、仮数部に桁上
げがないときCm=0とし減算器102の一方の出力X+Y
−BのMSBをB0、他方の出力 のMSBをB1とするとアンダーフローの発生する条件は、 においてQ=1であるので、この論理を複合ゲート106
とインバータ117で実現することによりアンダーフロー
を検出する。
げがないときCm=0とし減算器102の一方の出力X+Y
−BのMSBをB0、他方の出力 のMSBをB1とするとアンダーフローの発生する条件は、 においてQ=1であるので、この論理を複合ゲート106
とインバータ117で実現することによりアンダーフロー
を検出する。
次に加算器104ではX入力選択信号112によって選択さ
れた定数“1"が一方の入力Sxに送られ、Y入力選択信号
113によって選択された減算器102の出力X+Y−Bがデ
ータEとして他方の入力Syに入力されて(X+Y−B)
+1が計算される。
れた定数“1"が一方の入力Sxに送られ、Y入力選択信号
113によって選択された減算器102の出力X+Y−Bがデ
ータEとして他方の入力Syに入力されて(X+Y−B)
+1が計算される。
結果レジスタ105には仮数部の桁上げがない場合は前
述のデータAが、仮数部の桁上げがある場合は加算器10
4の出力(X+Y−B)+1が、結果選択信号116によっ
て選択され書き込まれる。
述のデータAが、仮数部の桁上げがある場合は加算器10
4の出力(X+Y−B)+1が、結果選択信号116によっ
て選択され書き込まれる。
ところで、仮数部の桁上げがない場合は既にオーバー
フロー検出がなされているが、仮数部の桁上げがある場
合についてはオーバーフロー検出はまだ行なわれていな
いので仮数部の桁上げがある場合のオーバーフロー検出
は、仮数部の桁上げがない場合と同様に式(6)が成立
するか否か、つまり前述のようにSx+(Sy+1)のキャ
リーが1でありかつ条件2が成立していることによって
実現されるが、今Sx=1なので条件2が成立するために
はSy≧0だけが成立すればよい。ここで前述のAs、Cl、
Cmを用いてオーバーフローが起こる条件を表すと となり、式(14)は式(12)においてXsと▲▼とを
入れ替えたものとなる。
フロー検出がなされているが、仮数部の桁上げがある場
合についてはオーバーフロー検出はまだ行なわれていな
いので仮数部の桁上げがある場合のオーバーフロー検出
は、仮数部の桁上げがない場合と同様に式(6)が成立
するか否か、つまり前述のようにSx+(Sy+1)のキャ
リーが1でありかつ条件2が成立していることによって
実現されるが、今Sx=1なので条件2が成立するために
はSy≧0だけが成立すればよい。ここで前述のAs、Cl、
Cmを用いてオーバーフローが起こる条件を表すと となり、式(14)は式(12)においてXsと▲▼とを
入れ替えたものとなる。
この入れ替えは、選択信号114によってXsのかわりに
仮数部の桁上げを反転したインバータ107の出力を選択
することで実現されており、指数部の計算結果だけでオ
ーバーフローを検出したときと同じ回路でオーバーフロ
ーが求められる。
仮数部の桁上げを反転したインバータ107の出力を選択
することで実現されており、指数部の計算結果だけでオ
ーバーフローを検出したときと同じ回路でオーバーフロ
ーが求められる。
次に浮動小数点除算が行なわれる場合の全体の動きに
ついて説明する。
ついて説明する。
浮動小数点除算において指数部の計算は式(2)によ
りX−Y+Bを求めることで実現される。
りX−Y+Bを求めることで実現される。
第1図の実施例においては減算器102でFx−Fy=B−
Yが計算されるところまでは浮動小数点乗算の場合と同
じである。Y入力選択信号113は減算器102の2つの出力
結果のうちFx−Fyを選びデータAとして加算器104の一
方の入力Syに送る。加算器104の他方の入力SxにはX入
力選択信号112によって選択された入力レジスタ103の内
容が送られるので、加算器104ではX+(B−Y)=X
−Y+Bを求めることができ結果レジスタ105にX−Y
+Bが格納される。
Yが計算されるところまでは浮動小数点乗算の場合と同
じである。Y入力選択信号113は減算器102の2つの出力
結果のうちFx−Fyを選びデータAとして加算器104の一
方の入力Syに送る。加算器104の他方の入力SxにはX入
力選択信号112によって選択された入力レジスタ103の内
容が送られるので、加算器104ではX+(B−Y)=X
−Y+Bを求めることができ結果レジスタ105にX−Y
+Bが格納される。
ところで、浮動小数点除算においては仮数部の桁落ち
があり得るので仮数部の計算結果に関係なくオーバーフ
ローが確定するためには、式(6)において左辺をSx+
Syとした式が成り立てばよい。ここで前述のXs、As、及
びSx+SyのキャリーC0を用いてオーバーフローが起こる
条件を表すと となり式(15)は式(12)においてC0とC1とを入れ替え
たものである。
があり得るので仮数部の計算結果に関係なくオーバーフ
ローが確定するためには、式(6)において左辺をSx+
Syとした式が成り立てばよい。ここで前述のXs、As、及
びSx+SyのキャリーC0を用いてオーバーフローが起こる
条件を表すと となり式(15)は式(12)においてC0とC1とを入れ替え
たものである。
この入れ替えは、選択信号115によってC1のかわりにC
0を選択することで実現されており、浮動小数点乗算に
おいて指数部の計算結果だけでオーバーフローを検出し
たときと同じ回路でオーバーフローが求められる。
0を選択することで実現されており、浮動小数点乗算に
おいて指数部の計算結果だけでオーバーフローを検出し
たときと同じ回路でオーバーフローが求められる。
次に結果レジスタ105に格納されたデータは浮動小数
点乗算の時と同様に内部バス110を経由して入力レジス
タ100に送られる。定数生成回路101は定数生成信号111
に従って“1"を出力し減算器102の一方の入力Fxに送
る。減算器102の他方の入力Fyには入力レジスタ100の内
容X−Y+Bが入力され、減算器102では 1−(X−Y+B)と を得る。浮動小数点除算におけるアンダーフローは仮数
部の桁落ちに関係なく式(9)の左辺をX−Y+Bとし
た式が成立するかまたは、仮数部の桁落ちがありかつ式
(10)の左辺をX−Y+B−1式が成り立てばよいわけ
である。
点乗算の時と同様に内部バス110を経由して入力レジス
タ100に送られる。定数生成回路101は定数生成信号111
に従って“1"を出力し減算器102の一方の入力Fxに送
る。減算器102の他方の入力Fyには入力レジスタ100の内
容X−Y+Bが入力され、減算器102では 1−(X−Y+B)と を得る。浮動小数点除算におけるアンダーフローは仮数
部の桁落ちに関係なく式(9)の左辺をX−Y+Bとし
た式が成立するかまたは、仮数部の桁落ちがありかつ式
(10)の左辺をX−Y+B−1式が成り立てばよいわけ
である。
ここで仮数部の桁落ちがある状態と仮数部の桁落ちが
ない状態とについて考えると仮数部の桁落ちがある状態
は、仮数部の桁落ちがない状態から見て見かけ上仮数部
の桁上がりがない状態だと考えることができるので、仮
数部の桁落ちがある時つまり見かけ上仮数部に桁上がり
がないときCm′=0、仮数部の桁落ちがない時つまり見
かけ上仮数部に桁上がりがあるときCm′=1とし前述の
B0、B1を用いるとアンダーフローの発生する条件は においてT=1であり、式(16)は式(13)と同じ論理
であるから、式(13)においてQ=1を実現した回路に
よってアンダーフローを検出することができる。
ない状態とについて考えると仮数部の桁落ちがある状態
は、仮数部の桁落ちがない状態から見て見かけ上仮数部
の桁上がりがない状態だと考えることができるので、仮
数部の桁落ちがある時つまり見かけ上仮数部に桁上がり
がないときCm′=0、仮数部の桁落ちがない時つまり見
かけ上仮数部に桁上がりがあるときCm′=1とし前述の
B0、B1を用いるとアンダーフローの発生する条件は においてT=1であり、式(16)は式(13)と同じ論理
であるから、式(13)においてQ=1を実現した回路に
よってアンダーフローを検出することができる。
次に加算器104では乗算の場合と同様にX入力選択信
号112によって選択された定数“1"が一方の入力Sxに送
られ、Y入力選択信号113によって選択された減算器102
の出力(X−Y+B)−1がデータAとして他方の入力
Syに送られて {(X+Y−B)−1}+1=X+Y−Bが計算され
る。
号112によって選択された定数“1"が一方の入力Sxに送
られ、Y入力選択信号113によって選択された減算器102
の出力(X−Y+B)−1がデータAとして他方の入力
Syに送られて {(X+Y−B)−1}+1=X+Y−Bが計算され
る。
結果レジスタ105には仮数部の桁落ちがある場合は前
述のデータAが、仮数部の桁落ちがない場合は加算器10
4の出力X−Y+Bが、結果選択信号116によって選択さ
れ書き込まれる。
述のデータAが、仮数部の桁落ちがない場合は加算器10
4の出力X−Y+Bが、結果選択信号116によって選択さ
れ書き込まれる。
仮数部の桁落ちに関するのオーバーフローは、上述の
Cm′、As、Clを用いた においてR=1の時検出される。式(17)は式(14)と
同じ論理であるから、式(14)においてR=1を実現し
た回路によってオーバーフローを検出することができ
る。
Cm′、As、Clを用いた においてR=1の時検出される。式(17)は式(14)と
同じ論理であるから、式(14)においてR=1を実現し
た回路によってオーバーフローを検出することができ
る。
発明の効果 以上述べたように、本発明によれば、同一の回路構成
で浮動小数点乗算における指数計算と浮動小数点除算に
おける指数部の計算とを行なうことができ、また浮動小
数点乗算と浮動小数点除算におけるオーバーフロー/ア
ンダーフロー検出も同じ回路で実現することができる。
加えて、オーバーフローの検出を仮数部の計算結果に依
存する場合と指数部の計算だけで検出できる場合とに分
けて行なうことによりオーバーフロー検出を速やかに行
なうことが可能である。またオーバーフロー/アンダー
フロー検出回路の構成が簡単であり少ないハードウェア
量で実現できる。
で浮動小数点乗算における指数計算と浮動小数点除算に
おける指数部の計算とを行なうことができ、また浮動小
数点乗算と浮動小数点除算におけるオーバーフロー/ア
ンダーフロー検出も同じ回路で実現することができる。
加えて、オーバーフローの検出を仮数部の計算結果に依
存する場合と指数部の計算だけで検出できる場合とに分
けて行なうことによりオーバーフロー検出を速やかに行
なうことが可能である。またオーバーフロー/アンダー
フロー検出回路の構成が簡単であり少ないハードウェア
量で実現できる。
第1図は本発明における浮動小数点演算回路の回路図、
第2図は従来の浮動小数点演算回路の回路図である。 100,103……入力レジスタ、102……減算器、104……加
算器、105……結果レジスタ、106……複合ゲート、107,
109……インバータ、108……3入力NORゲート、110……
内部バス、111……定数生成制御信号、112……X入力選
択信号、113……Y入力選択信号、114……選択信号、11
5……キャリー選択信号、116……結果選択信号。
第2図は従来の浮動小数点演算回路の回路図である。 100,103……入力レジスタ、102……減算器、104……加
算器、105……結果レジスタ、106……複合ゲート、107,
109……インバータ、108……3入力NORゲート、110……
内部バス、111……定数生成制御信号、112……X入力選
択信号、113……Y入力選択信号、114……選択信号、11
5……キャリー選択信号、116……結果選択信号。
Claims (1)
- 【請求項1】2入力FxとFyの減算を行ない結果Aとして
Fx−Fyと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 JPH03161832A (ja) | 1991-07-11 |
JPH0823810B2 true 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) |
Families Citing this family (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
Also Published As
Publication number | Publication date |
---|---|
JPH03161832A (ja) | 1991-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7346643B1 (en) | Processor with improved accuracy for multiply-add operations | |
US5027308A (en) | Circuit for adding/subtracting two floating point operands | |
JP6001276B2 (ja) | 浮動小数点加算を実行するための装置および方法 | |
US5010508A (en) | Prenormalization for a floating-point adder | |
US6631392B1 (en) | Method and apparatus for predicting floating-point exceptions | |
US5993051A (en) | Combined leading one and leading zero anticipator | |
JPH0474743B2 (ja) | ||
JP2618374B2 (ja) | 最上位の数字の位置の検出 | |
CN116643718B (zh) | 一种流水线结构的浮点融合乘加装置、方法及处理器 | |
US8060551B2 (en) | Method and apparatus for integer division | |
KR20020063058A (ko) | 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치 | |
JPH0823810B2 (ja) | 浮動小数点演算回路 | |
US10289413B2 (en) | Hybrid analog-digital floating point number representation and arithmetic | |
JPH0511980A (ja) | 桁あふれ検出方式とその回路 | |
Lang et al. | Division unit for binary integer decimals | |
US7640286B2 (en) | Data processing apparatus and method for performing floating point multiplication | |
JP3257278B2 (ja) | 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 | |
JP2555135B2 (ja) | 演算回路 | |
Palsodkar et al. | Three operand fused floating point add-subtract unit using redundant adder | |
JP3137131B2 (ja) | 浮動小数点乗算器及び乗算方法 | |
JP3482102B2 (ja) | 絶対値距離演算回路 | |
JP2801472B2 (ja) | 浮動小数点演算装置 | |
JP3124286B2 (ja) | 浮動小数点数演算装置 | |
JP3233432B2 (ja) | 乗算器 | |
JP2003029960A (ja) | 浮動小数点加算器のショートパスにおける丸めステップの排除 |