JP2506891B2 - 浮動小数点演算装置 - Google Patents

浮動小数点演算装置

Info

Publication number
JP2506891B2
JP2506891B2 JP63026087A JP2608788A JP2506891B2 JP 2506891 B2 JP2506891 B2 JP 2506891B2 JP 63026087 A JP63026087 A JP 63026087A JP 2608788 A JP2608788 A JP 2608788A JP 2506891 B2 JP2506891 B2 JP 2506891B2
Authority
JP
Japan
Prior art keywords
exponent
overflow
circuit
signal
carry
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
Application number
JP63026087A
Other languages
English (en)
Other versions
JPH01201721A (ja
Inventor
隆志 谷口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP63026087A priority Critical patent/JP2506891B2/ja
Publication of JPH01201721A publication Critical patent/JPH01201721A/ja
Application granted granted Critical
Publication of JP2506891B2 publication Critical patent/JP2506891B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、浮動小数点演算装置係り、特にIEEE浮動小
数点規格に準拠する浮動小数点減算における指数部演算
を行い、かつオーバーフローおよびアンダーフローの検
出を高速に行うようにした浮動小数点演算装置に関する
ものである。
従来の技術 一般に浮動小数点データの加減算手段としては、最初
に被演算および演算数の2つのオペランドの指数部を比
較し、次にその差の分だけ指数部の小さい方の仮数部を
右にシフトし、2つのオペランドの桁合わせを行って仮
数部の加減算を実行し、その仮数部の中間結果を正規化
のために必要な分だけ右あるいは左にシフトする。その
後、仮数部の中間結果を右にシフトしたときは指数部の
大きい方の指数部データにそのシフト量を加算し、左に
シフトしたときは指数部の大きい方の指数部データから
そのシフト量を減算して指数部の演算を行い、その指数
部の演算結果がある範囲を越えているかどうかを判断し
てオーバーフローやアンダーフローを検出し、それらが
検出されない場合には演算結果をそのまま出力し、検出
された場合には演算結果の修正が行われる。
IEEE浮動小数点規格では、指数部データの桁数は単精
度、倍精度および拡張倍精度の場合それぞれ8ビット、
11ビットおよび15ビットであり、その桁数をnとすれ
ば、通常の正規化された浮動小数点データの指数部デー
タExpの範囲は0<Exp<2n−1であり、指数部の演算に
よってExp≦0となった場合にはアンダーフローとな
り、Exp≧2n−1となった場合にはオーバーフローとな
る。
第3図は、従来の仮数部演算後の指数部の演算回路を
示すブロック図である。第3図において、301は加減算
器、302は全桁“0"検出器、303は全桁“1"検出器、304
はアンダーフロー検出器、305はオーバーフロー検出
器、Emは2つの浮動小数点データのうち指数部の大きい
方の指数部データ、SHは仮数部の中間結果を正規化のた
めの右あるいは左シフトの絶対値化されたシフト量、SU
Bは減算信号、CBは上位あふれ信号、Eoは指数部演算結
果、UDFはアンダーフロー検出信号、OVFはオーバーフロ
ー検出信号である。
第3図に示すブロック図の動作は、まず、指数部デー
タEmとシフト量SHとを演算し指数部演算結果Eo=Em±SH
をもとめる。ここでの演算は仮数部に関する演算と同じ
であり、仮数部に関して加算を行う場合には加算、減算
の場合には減算である。次に、指数部演算結果が0とな
った場合のアンダーフローを検出するために指数部演算
結果の全ての桁が“0"であるかどうかの判定を全桁“0"
検出回路302によって行い、同時に指数部演算結果が2n
−1となった場合のオーバーフローを検出するために指
数部演算結果の全ての桁が“1"であるかどうかの判定を
全桁“1"検出回路303によって行う。最後に、全てのア
ンダーフローを検出するために、仮数部に関する演算が
減算である場合に、上位あふれ信号CBと全桁“0"検出回
路302の出力の論理和を求めてアンダーフロー検出信号U
DFを出力し、全てのオーバーフローを検出するために、
仮数部に関する演算が加算である場合に、上位あふれ信
号CBと全桁“1"検出回路303の出力の論理和を求めてオ
ーバーフロー検出信号OVFを出力する。一般には、全桁
“0"検出回路302を全桁“1"検出回路303はそれぞれ論理
和回路および論理積回路によって構成され、多入力の論
理ゲートや多段の論理ゲートにより構成される。
以上のように、従来の構成では指数部の演算が完全に
終わってから、アンダーフロー及びオーバーフローの検
出を行っていた。
発明が解決しようとする課題 以上説明したような指数部の演算回路の構成では、指
数部の演算が完全に終わってから、多入力の論理ゲート
あるいは多段の論理ゲートにより全ての桁が“0"である
か、あるいは全ての桁が“1"であるかが判定され、その
後アンダーフローおよびオーバーフローの検出を行って
いるため、これらの検出信号の出力が遅くなり、これら
の信号によって制御される浮動小数点の加減算結果の出
力に時間がかかり、また構成も複雑になる等の問題点を
有していた。
本発明は、係る点に鑑みてなされたもので、加減算器
に簡単な回路を付加することにより、簡単な構成で指数
部の演算を実行し、さらに高速にアンダーフローあるい
はオーバーフローの検出を行う浮動小数点演算装置を提
供することを目的としている。
課題を解決するための手段 本発明は上記目的を達成するため、第1および第2の
浮動小数点データのうち指数の大きい方の浮動小数点デ
ータの指数部データと、仮数部の演算の中間結果を正規
化するためのシフト量とを演算し結果を出力する指数演
算手段と、前記シフト量と“1"との和と前記指数部デー
タとを前記演算と同一の演算による上位あふれを出力す
る上位あふれ出力手段と、前記演算が加算であり前記上
位あふれが“1"であるときオーバーフローを検出し、前
記演算が減算であり前記上位あふれが“1"であるときア
ンダーフローを検出する検出器とを設け、前記指数演算
手段と前記上位あふれ出力手段とをそれぞれあるいは共
用した桁上げ生成伝搬発生回路を用いて、同時に実行し
てアンダーフロー検出信号、オーバーフロー検出信号お
よび指数部演算結果を出力するようにしている。
作用 本発明は上記した構成により、上位あふれ出力手段に
より出力される上位あふれ信号により、指数部の演算結
果が0となる場合と2n−1となる場合を含めてアンダー
フローとオーバーフローの検出が高速に行われる。すな
わち、指数部の演算が加算である場合に上位あふれ信号
が“1"となった時オーバーフローとなり、減算である場
合に上位あふれ信号が“1"となった時アンダーフローと
なる。同時に指数演算手段により指数部の演算結果が出
力される。
また、前記上位あふれ出力手段を行う回路と指数演算
手段を行う回路とは、同一の桁上げ生成伝搬発生回路を
共用して構成することができるため、従来例のような指
数部の演算器、全桁“0"検出回路および全桁“0"検出回
路をもちいる場合に比較して回路素子数を大幅に少なく
することができる。
実施例 第1図は、本発明の実施例を示すブロック図である。
第1図において、101は桁上げ生成伝搬発生回路、102は
和差生成回路、103は上位あふれ生成回路、104はアンダ
ーフロー検出回路、105はオーバーフロー検出回路であ
り、Emは2つの浮動小数点データのうち指数部の大きい
方の指数部データ、SHは仮数部の中間結果を正規化のた
めの右あるいは左シフトの絶対値化されたシフト量、SU
Bは減算信号、Gは桁上げ生成信号、Pは桁上げ伝搬信
号、Sは中間和信号、CBは上位あふれ信号、Eoは指数部
演算結果、UDFはアンダーフロー検出信号、OVFはオーバ
ーフロー検出信号である。
第1図のブロック図の動作を簡単に説明すると、まず
桁上げ生成伝搬発生回路101に、指数部データEmとシフ
ト量SHとが入力され、減算信号SUBにより演算が加算か
減算かが判断され、それに対応してEmとSHから桁上げ生
成信号Gと桁上げ伝搬信号Pおよび中間和信号Sが生成
される。次に、上位あふれ生成回路103により、前記桁
上げ生成信号Gと桁上げ伝搬信号Pから最下位への桁上
げc-1が“1"である場合、すなわちEm±(SH+1)の上
位あふれ信号CBを求め、この信号と減算信号SUBとか
ら、アンダーフロー検出回路104およびオーバーフロー
検出回路105により、演算が減算であって上位あふれ信
号CBが“1"であるときアンダーフローが検出されアンダ
ーフロー信号UDFが、また、演算が加算であって上位あ
ふれ信号CBが“1"であるときオーバーフローが検出され
オーバーフロー信号OVFが出力される。また、この時同
時に和差生成回路102により、桁上げ生成信号G、桁上
げ伝搬信号Pおよび中間和信号Sから最下位への桁上げ
c-1が“0"である場合、すなわちEm±(SH+0)の結果
を求め指数部演算結果Eoとして出力される。
次に、桁上げ生成伝搬発生回路101について具体的に
説明する。この桁上げ生成伝搬発生回路101は、この回
路に入力される2つのデータEmとSHの加算かあるいは減
算を行うのに必要な桁上げ生成信号G、桁上げ伝搬信号
Pおよび中間和信号Sを求めるための回路である。
以下入力されるデータをn桁としてEm=emn-1…em1e
m0およびSH=shn-1…sh1sh0として説明する。まず、桁
上げ生成関数gi,jおよび桁上げ伝搬関数Pi,jを考える。
ここで、i≧jであり、gi,jはj桁目からi桁目まで加
算あるいは減算を行った場合に上位へ桁が上りあるいは
桁借りが生成されることを表し、Pi,jはj桁目からi桁
目まで加算あるいは減算を行った場合に、下位から桁上
がりあるいは桁借りがあった場合に上位へ桁上がりある
いは桁借りを伝搬することを表している。以下では、桁
上がりと桁借り含めて桁上がりと記述する。
この定義から、各桁自身の桁上げ生成関数gi,iおよび
桁上げ伝搬関数pi,iは入力データの各桁の値emiおよびs
hiより以下のように与えられる。すなわち、 gi,i=(SUBemi)・shi ………(1) または、 pi,i=(SUBemi)・shi (SUBemi)+shi ………(2) が成り立つ。ここで、SUBは、減算信号であり減算の時
“1"、加算の時“0"となる信号である。また、i≧j≧
kの関係を有するi、jおよびkに対して以下の関係式
がなり立つ。すなわち、 gi,k=gi,j+pi,j・gj-1,k ………(3) pi,k=pi,j・pj-1,k ………(4) である。この(1)ないし(4)式によりある基準とな
る桁kから各々の桁iまでの桁上げ生成関数gi,kおよび
桁上げ伝搬関数pi,kを求めることができる。すなわち、
演算を行う各々の桁から(1)および(2)で表される
各桁自身の桁上げ生成関数gi,iおよび桁上げ伝搬関数p
i,iを求め、(3)および(4)式を繰り返し用いてあ
る基準となる桁から各々の桁までの桁上げ生成関数およ
び桁上げ伝搬関数求めることができる。このようにし
て、入力データEmとSHとから各桁の桁上げ生成関数gi,k
および桁上げ伝搬関数pi,kを求め、さらに後段で用いる
中間和si、すなわち、 si=emishi ………(5) を求めることが第1図に示した桁上げ生成伝搬発生回路
101の動作である。
次に、和差生成回路102について述べる。桁上げ生成関
数gi,jおよび桁上げ伝搬関数pi,jの定義から、全ての桁
の加算を考えたときのi桁目の桁上げciは次式で考えら
れる。
ci=gi,j+pi,j・cj-1 ………(6) また、(6)式においてj=0とおけば、 ci=gi,0+pi,0・c-1 ………(7) となる。ここで、c-1は最下位桁への桁上がりを意味し
ており、c-1を“0"とすればEm±SHの演算に対する各桁
からの桁上げciを求めることができ、さらにci-1からi
桁のEm±SHの演算結果eoiを次式により求めることがで
きる。
eoi=emishici-1=sici-1 ………(8) すなわち、第1図の桁上げ生成伝搬発生回路101の出力
である桁上げ生成関数gi,j、桁上げ伝搬関数pi,jおよび
中間和siから、(7)式におけるc-1を“0"として
(6)ないし(8)式を用いてEm±SHの演算結果eoi
求めるのが和差生成回路102の働きであり、この結果は
オーバーフローあるいはアンダーフロー等の例外が発生
しなかった場合にはそのまま指数部の結果として出力さ
れる。
一方、上位あふれ生成回路103においては、(7)式
におけるc-1を“1"として(6)あるいは(7)式を用
いてen-1、すなわち上位あふれ信号CBを求める。ここ
で、c-1は前述したように最下位桁への桁上がりを意味
しており、c-1を“1"とすれば演算が加算である場合に
は1の加算を、減算である場合には1の減算を意味す
る。したがって、c-1を“1"として(6)および(7)
式を用いてcn-1を求めることにより、Em±(SH+1)の
演算に対する最上位桁からの桁上げ、すなわち上位あふ
れ信号CBを求めることができる。以上のように、桁上げ
生成伝搬発生回路101からの出力である桁上げ生成関数g
i,jおよび桁上げ伝搬関数pi,jから、Em±(SH+1)の
演算に対する上位あふれCBを求めるのが上位あふれ生成
回路103の働きである。
最後に、上位あふれ信号CBと減算信号SUBから、アン
ダーフロー検出回路104およびオーバーフロー検出回路1
05によりアンダーフローをおよびオーバーフローを検出
する。この上位あふれ信号CBより、Emが通常の正規化さ
れた浮動小数点データの指数部であれば、全ての演算結
果に対してオーバーフローおよびアンダーフローを判断
することができる。すなわち、オーバーフローは前述し
たようにEm+SH≧2n−1が成り立つ場合に生じるが、こ
の場合Em+SH+1≧2nであるからn+1桁目、すなわち
上位あふれ信号CBが“1"となる。また、アンダーフロー
はEm−SH≦0が成り立つ場合に生じるが、この場合Em−
(SH+1)≦−1であるから、この場合にも符号を示す
n+1桁目、すなわち上位あふれ信号CBが“1"となる。
したがって、演算が減算であって上位あふれ信号CBが
“1"であるときアンダーフローが検出されアンダーフロ
ー信号UDFが、また、演算が加算であって上位あふれ信
号CBが“1"であるときオーバーフローが検出されオーバ
ーフロー信号OVFが出力される。
第2図は、第1図に示した本発明の実施例をIEEE浮動
小数点規格の単精度に対応する指数部データが8ビット
のものについて、CMOS論理回路を用いて具体的に実現し
た場合の回路図である。第2図において、201・202・20
3・204・205・209・212・215・218・221・249・252・25
3・254またはEX−OR回路を示すゲート、206・207・208
・248・250・251はEX−NOR回路を示すゲート、210・213
・216・219・222・226・228・229・231はNOR回路を示す
ゲート、211・214・217・220・223・235・236・237・23
8・256・257はNAND回路を示すゲート、224・225・230・
232・234・256・258・259はインバータ回路を示すゲー
ト、227・239・241・242・245・246・247はOR−NAND回
路を示すゲート、240・243・244はAND−NOR回路を示す
ゲートである。
入力データは、指数部データとして8ビットemi(0
≦i≦7)、シフト量データとして5ビットshi(0≦
i≦4)であり、さらに減算信号SUBが入力され、出力
データとして8ビットの指数演算結果eoi(0≦i≦
7)およびアンダーフロー信号UDFとオーバーフロー信
号OVFが出力される。シフト量データとして5ビットし
かないのは、仮数部の丸め後の演算結果が24ビットで表
されるため、正規化のためのシフト量は5ビットで十分
表されるからである。
第2図において、ゲート201ないし238が第1図におけ
る桁上げ生成伝搬発生回路に対応し、ゲート209・212・
215・218・221の出力とemi(5≦i≦7)が(5)式で
示される中間和siを表し、ゲート210・213はそれぞれp
0,0・p1,1の反転を出力しており、ゲート211・214はそれ
ぞれg0,0・g1,1の反転を出力し、ゲート224・226はそれ
ぞれp2,2・p3,2を出力し、ゲート225・227はそれぞれg
2,2・g3,2を出力し、ゲート222・232・235・237はそれぞ
れp4,4・p5,4・p6,4・p7,4の反転を出力しており、ゲート2
23・234・236・238はそれぞれg4,4・g5,4・g6,4・g7,4の反
転を出力している。
第2図において、ゲート239ないし241が第1図におけ
る上位あふれ生成回路に対応し、桁上げ生成伝搬発生回
路から出力されるgi,jおよびpi,jからゲート241によりc
7すなわち上位あふれ信号CBを出力している。この回路
で、c1をゲート239により求める場合に下位からの桁上
げc0としてp0,0を用いているが、これは(6)式におい
てi=j=0、c-1=1とし、(1)・(2)式からc0
=g0,0+p0,0・c-1=g0,0+p0,0=p0,0=(SUBemi)+sh
iとできるからである。
第2図において、ゲート242ないし254が第1図におけ
る和差生成回路に対応し、桁上げ生成伝搬発生回路から
出力されるgi,jおよびpi,jからゲート211・242ないし24
7により各桁の桁上げを求め、ゲート209・248ないし254
から指数部の演算結果を出力している。
第2図において、ゲート255ないし259が第1図におけ
るオーバーフローおよびアンダーフロー検出回路に対応
し、上位あふれ生成回路から出力された上位あふれ信号
CBからオーバーフロー検出信号OVFおよびアンダーフロ
ー検出信号UDFを出力している。
以上のように、本実施例によれば指数部の演算器に簡
単な回路を付加するだけで、指数部の演算結果を得る以
前に、上位あふれ信号から高速にオーバーフロー検出信
号およびアンダーフロー検出信号を出力することができ
る。
なお、以上の説明では、指数の演算結果を求めるため
の桁上げ生成伝搬発生回路と上位あふれ信号を求めるた
めの桁上げ生成伝搬発生回路とを共用して構成した場合
について述べたが、それぞれに独立に設けてもよいこと
は言うまでもない。また、以上の説明は一実施例であ
り、他の論理組合せ、あるいはCMOS回路以外の技術、例
えばNMOS回路やバイポーラ回路などについても同様に構
成できる。また、以上の説明はIEEEの浮動小数点規格に
準拠するデータに述べたが他の浮動小数点データについ
ても同様の効果が得られる。
発明の効果 以上述べてきたように、本発明によれば、指数部の演
算器に簡単な回路を付加するだけで、指数部の演算結果
を得る以前に、上位あふれ信号から高速に全てのオーバ
ーフローおよびアンダーフローを検出でき、さらに、上
位あふれ信号を出力するための桁上げ生成伝搬発生回路
は指数部演算器の桁上げ生成伝搬発生回路と共用するこ
とができるので、回路素子数を大幅に削減できる等の効
果を有し、実用的にきわめて有用である。
【図面の簡単な説明】 第1図は本発明の実施例を示すブロック図、第2図は本
発明の実施例をCMOS回路で構成した論理回路図、第3図
は従来方法の回路構成を示すブロック図である。 101……桁上げ生成伝搬発生回路、102……和差生成回
路、103……上位あふれ生成回路、104……アンダーフロ
ー検出回路、105……オーバーフロー検出回路。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】第1および第2の浮動小数点データのうち
    指数の大きい方の浮動小数点データの指数部データと、
    仮数部の演算の中間結果を正規化するためのシフト量と
    を演算し結果を出力する指数演算手段と、前記シフト量
    と“1"との和と前記指数部データとを前記演算と同一の
    演算による上位あふれを出力する上位あふれ出力手段
    と、前記演算が加算であり前記上位あふれが“1"である
    ときオーバーフローを検出し、前記演算が減算であり前
    記上位あふれが“1"であるときアンダーフローを検出す
    る検出器とを有することを特徴とする浮動小数点演算装
    置。
  2. 【請求項2】指数演算手段と上位あふれ出力手段とを同
    一の桁上げ生成伝搬発生回路を共用して構成したことを
    特徴とする特許請求の範囲第1項記載の浮動小数点演算
    装置。
JP63026087A 1988-02-05 1988-02-05 浮動小数点演算装置 Expired - Lifetime JP2506891B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63026087A JP2506891B2 (ja) 1988-02-05 1988-02-05 浮動小数点演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63026087A JP2506891B2 (ja) 1988-02-05 1988-02-05 浮動小数点演算装置

Publications (2)

Publication Number Publication Date
JPH01201721A JPH01201721A (ja) 1989-08-14
JP2506891B2 true JP2506891B2 (ja) 1996-06-12

Family

ID=12183830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63026087A Expired - Lifetime JP2506891B2 (ja) 1988-02-05 1988-02-05 浮動小数点演算装置

Country Status (1)

Country Link
JP (1) JP2506891B2 (ja)

Also Published As

Publication number Publication date
JPH01201721A (ja) 1989-08-14

Similar Documents

Publication Publication Date Title
US5373459A (en) Floating point processor with high speed rounding circuit
US5027308A (en) Circuit for adding/subtracting two floating point operands
US5010508A (en) Prenormalization for a floating-point adder
JP3076046B2 (ja) 例外検出回路
JP2618374B2 (ja) 最上位の数字の位置の検出
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
JP3313002B2 (ja) 浮動小数点演算装置
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
JP2511527B2 (ja) 浮動小数点演算器
JP2506891B2 (ja) 浮動小数点演算装置
US4873660A (en) Arithmetic processor using redundant signed digit arithmetic
JPH0464091B2 (ja)
JPH0511980A (ja) 桁あふれ検出方式とその回路
JP2856792B2 (ja) 浮動小数点数演算装置
JP2681968B2 (ja) 演算処理装置
JP2801472B2 (ja) 浮動小数点演算装置
JP3298119B2 (ja) 零フラグ生成加減算器
JPH0367328A (ja) 浮動小数点演算装置
JP2653134B2 (ja) 演算処理装置
JP3233432B2 (ja) 乗算器
JPH0528407B2 (ja)
JPH05100825A (ja) 正規化浮動小数点加減算器
JPH03161832A (ja) 浮動小数点演算回路
JPH0614317B2 (ja) 演算処理装置
JPH02253334A (ja) 浮動小数点演算装置