[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH04167125A - 浮動小数点加算装置 - Google Patents

浮動小数点加算装置

Info

Publication number
JPH04167125A
JPH04167125A JP2296067A JP29606790A JPH04167125A JP H04167125 A JPH04167125 A JP H04167125A JP 2296067 A JP2296067 A JP 2296067A JP 29606790 A JP29606790 A JP 29606790A JP H04167125 A JPH04167125 A JP H04167125A
Authority
JP
Japan
Prior art keywords
floating point
mantissa
adder
addition
rounding
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
Application number
JP2296067A
Other languages
English (en)
Other versions
JP2508912B2 (ja
Inventor
Takashi Nakayama
貴司 中山
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2296067A priority Critical patent/JP2508912B2/ja
Priority to DE69131458T priority patent/DE69131458T2/de
Priority to US07/786,335 priority patent/US5197023A/en
Priority to EP91118645A priority patent/EP0483864B1/en
Publication of JPH04167125A publication Critical patent/JPH04167125A/ja
Application granted granted Critical
Publication of JP2508912B2 publication Critical patent/JP2508912B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、丸め処理をともなう浮動小数点加算装置に関
するものである。
〔従来の技術〕
浮動小数点数の加算は、仮数部の桁数だけの精度を保つ
ために、丸め処理(四捨五入に類似)を行なうのが一般
的である。浮動小数点加算規格工E E E 754 
(IEEE 5tandard for Binary
 Floating−−Point Arlthmet
Ic、ANSI/IEEE Std 754−1985
)では、浮動小数点演算における4種類の丸め処理につ
いて言及しており、デフォルトでは無限精度で演算した
正規化中間結果に対して最低値(最近値が2つ有る場合
は偶数値)に丸めるように定めている。
そのため、浮動小数点加算は、桁合わせ、仮数部加算、
正規化、丸め処理の順番に行なわれるのが普通であり、
丸め処理の高速化が望まれている。
以下、浮動小数点加算の一般的なアルゴリズムについて
説明する。
IEEE754による2進浮動小数点数のデータ配列は
、第8図(a)に示される。浮動小数点は、1ビツトの
符号、eビットの指数部、nビットの仮数部から構成さ
れ、単精度数ではe=8.n=23、倍精度ではe==
11.n=52である。浮動小数点数A、B、Cは、次
の式(1)で表現される。
”” (1) ”X2(E″−”XMaB;(1) S
b×2 (Eb−Bl) XMb     ・・−・−
(1)C= (−1) ”X 2°e−BDXMにこで
、Sa、Sbは仮数部の符号でS=0または1、Ma、
Mbは仮数部で1.0≦M<2.0、Ea、Ebは指数
部、Biは指数部バイアス値、Eは自然数とする。
仮数部は、整数部分が必ず1であるので省略し、小数部
分nビットで表現している。
浮動小数点加算は以下の通り行なわれる。
まず、IAI≧IEIとなるようにA、Bの交換を行な
う。
C=A+B =(1) Sa x 2(Ea−E i) ×Miここ
で、 Mt = (Ma+(−1) ’X 2 ”’ツ” X
Mb)j =S a十S b            
・・・・・・(2)(2)式で仮数部Mbを2 (K&
−Eb)倍(Ea−Eb桁だけ右シフト)することを桁
合わせと呼ぶ。
ここで(1)、 (2)式から00≦M t < 2.
0であるため、1.0≦M<2.0となるように正規化
する。
M t = O,Oのとき、C=O,OMt>0.0の
とき、2−に5M t < 2−”’には、k≧−1の
整数      ・・川・(3)と置くと、 C= (−1) s′X2(”−旺X (MtX2’)
  −(4)(4)式に対して丸め処理を行なう。”A
 ProposedStandard for Bin
ary Floating−Point Arithm
etic”(IEE−E Computer、1981
)で解説されているように、IEEE754標準で規定
された丸め処理を行なうには、第8図(b)のように仮
数部下位3ビツト拡張して演算する必要がある。拡張さ
れた最下位ビットはスティッキイビッ) (Stick
y bit)と呼ばれ、桁合わせの右シフ) ((2)
式の2 (Ea−Eb)倍)でこぼれたビットの論理和
を格納する。丸めの切上げ/切捨ては、仮数部下位に拡
張されたビットを参照することで決定できる。
Mt X 2’を小数点以下nビットになるように切捨
てた値をMdとすると、丸め後は、Sc=Sa Ec=Ea−k Mc=Md            (切捨て)または
 MC=Md+2−” ”       (切上げ)・
・・・・・(5) となる。
ただし、 Md=2.0−2−”−1)         ・・・
・・・(6)であり、丸め処理が切上げの場合は、M 
c = 2.0になってしまうため次式になる。
5c=Sa Ec=Ea−Bi−に+1 M c = 2.0              ・・
・・・・(7)以上述べたアルゴリズムでは加算処理の
最初でIAI≧IB+となるように比較する必要がある
が、rThe IBM System/360 Mod
el 91:FIoting−PointExecut
ion UnitJ (IBM Journal、Ja
nuary 1967)で述べられているように比較を
EaとEbで行なう方式がより一般的である。IBMの
方式では、ひとつの指数部減算器によって指数部比較と
指数部の差を求めることかできる。ただし、指数部減算
器と仮数部加減算器は、差の絶対値を求める機能が必要
である。指数部の差は絶対値1Ea−Eblであるから
であり、Ea≧EbとなるようにA、Bを入替えてもE
a=EbかつMa<MbのときはB〉Aになってしまう
からである。
従来の浮動小数点加算器の一例を、第9図に示す。この
従来例はIEEE754標準で規定された倍精度の浮動
小数点数に対する加算器とする。
図中、11.12は浮動小数点A、Bを入力する64ビ
ツトの入力信号、13は浮動小数点数A、Bの符号部の
排他的論理和をとるEX−ORゲート、14は浮動小数
点数A、Bの指数部の差1Ea−Eblを演算する11
ビツトの減算器、15はEa<Ebであることを示す減
算器14のキャリー出力信号、16は信号15の指定に
より指数部の大きい方の符号部を出力する1ビツトのセ
レクタ、17は信号15の指定により大きい方の指数部
を出力する11ビツトのセレクタ、18は信号15の指
定により指数部の小さい方の仮数部を出力する53ビツ
トのセレクタ、19は信号15の指定により指数部の大
きい方の仮数部を出力する53ビツトのセレクタ、20
はセレクタ18の出力を減算器14の出力値だけ右シフ
トする56ビツトのバレルシフタ、35はセレクタ19
とバレルシフタ20の値の和や差の絶対値をとる加減算
器、24&は加減算器35の出力を最上位桁から“0”
の数を計数する先行O検出器、25はセレクタ17の出
力値から先行0検出器24り切上げ/切捨てを指定する
丸めデコーダ、37は減算器25とバレルシフタ20の
出力を連結した値に丸めデコーダの出力値を加える63
ビツトのインクリメンタ、27aは加減算器350減算
で補数化が必要なことを示す信号、38はセレクタ16
の出力値とし信号317の排他的論理和をとるEX−O
Rゲート、33は浮動小数点数Cを出力する64ビツト
の出力信号である。
次に、この浮動小数点加算器の動作について述べろ。
入力信号(A、B)11.12が入力すると、まず減算
器14が1Ea−Eblを演算してバレルシフタ20に
圧力し、同時にEa<Ebかどうかを信号35に出力す
る。この信号35によって、セレクタ16〜19が指数
部の大きい方または小さい方の値を選択する。
IEEE754標準では仮数部の整数ビットは常に1で
あるため数値表現では省略されている。
そのため、セレクタ18.19では、入力した仮数部の
値のMSB側に“1”を付加してバレルシフタ20.加
減算器35に出力している。
バレルシフタ2・0は入力が53ビツトであるが、出力
は第8図(b)のように下位側に3ビツト拡張されて5
6ビツトであり、指数部の  い方の仮数部M2 ($
118)を右シフトしてMs=2”””’XM2i:出
力する。加減算器35ではゲート13が0(同符号)な
らば加算(M 1 +M s )を、1(異符号)なら
ば絶対値減算(l Ml −Ms l )を出力する。
加減算器35は最上位側にも1ビツト拡張されて57ビ
ツトを出力する。信号27は、ゲート13が1.かつM
a<Mbの場合にだけ1、それ以外は0になる。
先行0検出回路24aは、加減算器35の出力値(最下
位ビットを除く)について最上位ビットから0″の数を
数え、小数点位置を基準とした数値″−1〜53”を出
力する。減算器25では大きい方の指数部セレクタ17
から先行0検出器24aの出力値を減算し、バレルシフ
タ20では先行0検出器24aの出力値だけ加減算器3
5の出力値を左シフトし、正規化が完了する。最下位ビ
ット(Sticky bit)はバレルシフタ26aで
左シフトされず、最下位ビットのまま残る。また、正規
化後の整数ビットは必ず工なので、バレルシフタ26a
の出力は小数点以下だけでよい。
丸めデコーダ36では、IEEE754で規定第   
1   表 G=ガードビy ) (Guarcl bit)S=ラ
ウンYビット(Round bit)とスティフキビフ
) (Sticky bit)のORインクリメンタ3
7には、バレルシフタ26aの出力値(Md−1,0)
、および減算器25の出力Ecの値が入力される。丸め
デコーダ36の出力が1のときは、インクリメンタ37
は入力値+2−52を出力し、丸めデコーダ36の出力
が0のときは、インクリメンタ37は入力値をそのまま
圧力する。仮数部と指数部を連結してインクリメントす
ることにより;切上げによって指数部がインクリメント
される場合の処理を行なうことができる。出力信号33
として浮動小数点加算結果から出力されるが、仮数部は
整数ビットを除いたものである。
符号ピッ)Scはゲート38で生成され、はとんどの場
合は指数部が大きい方の符号(セレクタ16の出力)で
よいが、Ea=EbかつM a < M bの場合だけ
、Ea≧EbでもM<Mとなってしまうので、信号27
とゲート38とが必要である。
ここで、従来例の浮動小数点加算器の性能を試算してみ
よう。第9図におけるクリティカル・パスは、第7図(
a)に示される。このパスの実行時間は次の通りである
11ビツト減算器14       15nsecセレ
クタ18.19         5nsecバレルシ
フタ20        30nsec56ビ、ト加減
算器35     30nsec先行0検出器24a 
 、      30nsecバレルシフタ26a  
      30nsec丸めデコーダ36     
    5nsec63ビツト・インクリメンタ37 
35nsec合計    180nsec 〔発明が解決しようとする課題〕 上述した従来例の浮動小数点加算装置では、演算時間が
長いという欠点がある。これは、長いビット長の桁上げ
伝播を伴う加算が2ケ所(加算器35とインクリメンタ
37)あるためであり、しかも、一方の加算(加算器3
5)が終了しないともう一方の加算(インクリメンタ3
7)がテキない。また、2段のバレルシフタ20.26
aがあることも演算時間を長くする原因である。
本発明の目的は、桁合わせ用バレルシフタと正規化用バ
レルシフタとを同時に使わないように正規化シフトが1
桁の場合と正規化不要の場合とに分けることにより、バ
レルシフタの通過を100として、丸め処理用のインク
リメンタを演算時間の短い桁上げ保存加算器で構成し、
演算時間を短縮した浮動小数点が加算装置を提供するこ
とにある。
〔課題を解決するための手段〕
本発明の構成は、指数部、絶対値表現の仮数部、仮数部
の符号を示す符号部から構成される正規化浮動小数点デ
ータ2つを入力して丸め処理を含んだ浮動小数点加算を
行なう浮動小数点加算装置において、前記仮数部加減算
後の正規化にょるシフトが必要ない場合について浮動小
数点加算をする第1の演算手段と、前記仮数部加減算後
の正゛規化によるシフト量が左1桁または右1桁である
場合について浮動小数点加算をする第2の演算手段と、
前記仮数部加減算後の正規化によるシフト量が左2桁以
上の場合について浮動小数点加算をする第3の演算手段
と、これら第1.第2.第3の各演算手段の圧力を選択
して出力とするセレクタ手段とから構成され、前記入力
した2つの浮動小数点データに対する浮動小数点加算を
前記第1、第2.第3の各演算手段で同時に行なうと共
に、前記セレクタ手段が前記第1の演算手段の仮数部演
算結果の上位桁の値に基づいて選択されるものであるこ
とを特徴とする。
〔動作原理〕
以下、本発明の浮動小数点加算装置について説明する。
浮動小数点加算の演算処理を、入力値の符号と指数部の
差によって細かく分類すると、正規化に必要なシフト桁
数と丸めデコーダへの入力は、第2表のようになる。丸
めデコーダ入力(4ビツト分)の記述で、′×”は1ま
たは0を、′0”は常に0であることを示す。この4ビ
ツトが全て0である場合は丸め不要(常に切捨て)であ
り、また丸めによって指数部の値まで繰り上がる可能性
があるかどうかも示している。
第  2  表 ★仮数部=00なので、ソフトしなくてもよい。
この表をまとめると、以下の5通りの場合分けができる
■正規化で右1ビツトシフトする場合 仮数部演算    : 加算 桁合わせシフト数 二 0以上 丸め処理     : 必要 繰り上がり    : 無 ■正規化でシフトしない場合(加算) 仮数部演算    : 加算 桁合わせシフト数 : 0以上 丸め処理     : 必要 繰り上がり    : 有 ■正規化でシフトしない場合(減算) 仮数部演算    : 減算 桁合わせシフト数 : 0以上 丸め処理     : 必要 繰り上がり    : 無 ■正規化で左1ビツトシフトする場合 仮数部演算    二 減算 桁合わせシフト数 : 0以上 丸め処理     : 必要 繰り上がり    : 有 ■正規化で左2ビット以上シフトする場合仮数部演算 
   : 減算 桁合わせシフト数 : 0または1 丸め処理     : 不要 繰り上がり    : 無 これら■〜■の場合にそれぞれ浮動小数点加算装置をつ
くることを考える。
まず■〜■の場合は、丸め位置が決まっているため、仮
数部加減算を行なう前に丸めの切上げ/切捨てを検圧す
ることができる。それは、仮数部加減算を最上位桁付近
だけについて行なえば、丸めによる切上げ/切捨てが決
定できるからである。
そうすると、仮数部加減算器の前段に取り付けた桁上げ
保存加算器CS A (Carry 5ave Add
er)によって丸め処理を行なうことができるようにな
り、高速処理が可能になる。
この−■〜■の場合は、桁合わせ用バレルシフタは必要
であるが正規化用バレルシフタは不要となる。また■の
場合は、正規化用バレルシフタは必要であるが桁合わせ
用バレルシフタは不要となり、このようにしてバレルシ
フタを通過する時間を削減できる。
次に、■〜■の場合にハードウェアを削減することを検
討する。入力の符号が決定した時点で■■または■■は
不要になるため、ノ1−ドウエアは■と■、■と■で共
用でき、また指数部比較や桁合わせ用バレルシフタは■
〜■の場合で共用できる。
〔実施例〕
次に図面を用いて本発明の詳細な説明する。
第1図は本発明による浮動小数点加算装置の一実施例の
ブロック図であり、IEEE754標準で規定された倍
精度浮動小数点数の加算を行なう加算器を示す。
図において、11〜20,25.33は第9図の番号と
同一のものである。また、21は正規化でシフトしない
場合の仮数部加減算および丸め処理を行なう演算器、2
2は正規化で右1ビツト・シフトまたは左1ビツト・シ
フトする場合の仮数部加減算および丸め処理を行なう演
算器、23は正規化で左2ビット以上シフトする場合の
桁合わ ・せおよび仮数部減算を行なう演算器、24は
演算器23の出力を最上位桁から0″の数を計数する先
行0検出器、26は演算器23の出力を先行0検出器2
4の指定により左シフトする52ビツトのバレルシフタ
、27は演算器23の仮数部減算で補数化が必要なこと
を示す信号、28は演算器23の出力が1/2未満であ
ることを示す先行0検出回路24の出力信号、29は減
算器14の出力とゲート13の出力と出力信号28とか
ら、正規化で左2ビット以上シフトする場合を検出する
デコーダ、30は演算器21の仮数部の整数部分を示す
2ビツトの信号、31はゲート13の出力とデコーダ2
9の出力と信号30によって、演算器21または演算器
22または減算器25とバレルシフタ26の出力を選択
する63ビツトのセレクタ、32はゲート13と信号2
7から符号を決定するゲートである。
第2図は第1図の演算器21の詳しいブロック図を示す
。図中、41はゲート13の指定でバレルシフタ20の
出力を反転する56ビツトの排他的論理和ゲート、42
はゲート41の出力とセレクタ19の出力を入力とする
ノ・−ファダー(HA)で構成された53ビツトの桁上
げ保存加算器、43はバレルシフタ20とセレクタ19
の出力の下位ビットとゲート13とを入力とする丸めデ
コーダ、44.45は丸めデコーダ43の出力で丸めに
よる切上げと減算時の桁上げを示す制御信号、46は桁
上げ保存加算器42の出力を加算する桁上げ53ビツト
の伝播加算器、47は桁上げ伝播加算器46の下位52
ビツトの出力信号、48は桁上げ伝播加算器46の最上
位ビットの出力信号、49は桁上げ伝播加算器46の最
上位からのキャリー出力信号、50はゲー)13からの
信号と信号49とから丸めによって指数部が繰り上がる
場合を検出するゲート、51はゲート50の指示でセレ
クタ17の出力値に1を加える11ビツトのインクリメ
ンタ、52はインクリメンタ51の11ビツトの出力信
号である。
第3図は第1図の演算器22の詳しい構成を示すブロッ
ク図である。図中、43aはバレルシフタ20とセレク
タ19の出力の下位ビットとゲート13の出力を入力と
する丸めデコーダ、46aは第2図の桁上げ伝播加算器
46と同様の桁上げ伝播加算器、53は丸めデコーダ1
3の出力で仮数部減算結果のガードビットを示す信号、
54は桁上げ伝播加算器46の下位51ビツトと信号5
3を連結した52ビツトの信号、55は桁上げ伝播加算
器45の上位52ビツトの出力信号、56はゲート13
の指示で信号54と信号55を選択する52ビツトのセ
レクタ、57は桁上げ伝播加算器46のビット51から
ビット52に伝播するキャリー信号、50aはゲート1
3の信号と信号57から丸めによって指数部が繰り上が
る場合を検出するゲート、58はゲー)13の指示でセ
レクタ17の出力値に+1または−1を加え出力信号5
9を出力する11ビツトの桁上げ伝播加算器である。
第4図は第1図の演算器23の詳しい構成を示すブロッ
ク図である。図中、61は入力Allと入力B12の指
数部の下位2ビツトを入力とするデコーダ、62はデコ
ーダ61の指定により入力11と入力12の仮数部を選
択する53ビツトのセレクタ、63はデコーダ61の指
定により入力11と入力12の仮数部を1ビツト右シフ
トものを選択する54ビツトのセレクタ、64はセレク
タ61とセレクタ62の出力値の差の絶対値を計算する
減算器、信号27は減算器64で差の補数をとる場合を
示す信号である。
第5図は第2図の丸めデコーダ43の論理を示すブロッ
ク図である。図において、65はゲート13の指示でセ
レクタ19の出力にバレルシフタ20の圧力を加減算す
る排他的論理和とフルアダー(FA)’で構成された加
減算器、66は加減算器65のラウンドビットとスティ
ッキービットの論理和をとるゲート、67は第1表と同
じ論理を持つデコーダである。
第6図(a)、 (b)は第3図の丸めデコーダ43a
の加算時および減算時の論理を示すブロック図である。
図において、65aはセレクタ19a出力にバレルシフ
タ20の出力を加算するフルアダー(FA)で構成され
た加算器、66aは加算器65aのガード、ラウンド、
ステイッキビットの論理和をとるゲート、68.69は
セレクタ19の出力からバレルシフタ20の出力を減算
するフルアダー(F A)で構成された減算器である。
次に、この浮動小数点加算器の動作について述べる。
演算器23.先行O検出器24.減算器25は、演算原
理の■で述べた正規化で左2ビット以上シフトする場合
の浮動小数点加算を行なう。演算器21は演算原理の■
、■で述べた正規化でシフト不要な場合の浮動小数点加
算を、演算器22は演算原理■、■で述べた正規化で右
1/左1ビツトシフトする場合の浮動小数点加算を行な
う。減算器14.セレクタ17〜19.バレルシフタ2
0は、演算原理■〜■で共通の指数部比較や桁合わせを
行なう。
入力11.12が入力すると、まず減算器14が1Ea
−Eblを演算してバレルシフタ20に出力し、同時に
Ea<Ebがとうかを信号15に出力する。この信号1
5によって、セレクタ16〜19が指数部の大きい方ま
たは小さい方の値を選択する。
IEEE754基準では仮数部の整数ビットは常に1で
あるため数値表現では省略されているため、セレクタ1
8.19は、入力した仮数部の値のMSB側に“l”を
付加してバレルシフタ20゜演算器21.22に出力し
ている。バレルシフタ20は入力53ビツトであるが、
出力は第8図(b)のように下位側に3ビツト拡張され
て56ビツトであり、指数部の  い方の仮数部M2 
(セレクタ18)を右シフトしてMS: 2”’−”’
XM2を出力する。
演算器21ではゲート13がO(同符号)ならば仮数部
加算(M 1 +M s )を、1 (異符号)ならば
絶対値減算(M 1−M s )を(丸め処理を含めて
)行ない出力する。
第2図で桁上げ伝播加算器46は、加算しか行なわない
が、減算時にはゲート41によってバレルシフタ20の
出力(Ms)を反転し、第5図の丸めデコーダの加算器
65のLSBに1を加えることで減算を行なっている。
丸め処理は、桁上げ保存加算器42で行なう。仮数部の
LSBに1または0を加えればよいので、桁上げ保存加
算器42は全加算器ではなく半加算器(HA)でよい。
第2図の丸めデコーダ43は、仮数部加減算を行なった
後で丸めのデコードをしたのと同じ論理で、桁上げ信号
44と切上げ/切捨て指定信号45とを生成する。桁上
げ伝播加算器46は、桁上げ保存加算器42の出力を加
算する際に丸めデコーダ43の桁上げ信号44.45を
ピッ)0(丸め位置)に加算する。ゲート50は、イン
クリメンタ51での丸めによる桁上げを加算時だけ有効
にしている。
演算器22ではゲート13の出力が0(同符号)ならば
仮数部加算(M1+Ma)/2を、1(異符号)ならば
絶対値減算(Ml−Ms) X 2を(丸め処理を含め
て)行ない出力する。
第3図では、桁上げ伝播加算器46aは加算しか行なわ
ないが、減算時にはゲート41によってバレルシフタ2
0の出力(Ms)を反転し、第6図(b)の丸めデコー
ダの加算器69のLSBに1を加えることで減算を行な
っている。丸め処理は、桁上げ保存加算器42で行なう
。仮数部のLSHに1または0を加えればよいので、桁
上げ保存加算器46は全加算器ではなく半加算器(HA
)でよい。
第3図の丸めデコーダ43aは、仮数部加減算と正規化
を行なった後で丸めのデコードをしたのと同じ論理で、
桁上げ信号44と切上げ/切捨て指定信号45を生成す
る。桁上げ伝播加算器46aは、桁上げ保存加算器42
の出力を加算する際に丸めデコーダ43aの桁上げ信号
44.45をビット1(加算時の丸め位置)に加算する
減算時の丸め位置への桁上げ信号の加算は、第6図(b
)の減算器68で行なわれている。桁上げ伝播加算器5
8は、正規化による指数部補正、つまり加算時は+1を
減算時は−1を加算する。
ケー)50aは、桁上げ伝播加算器58ての丸めによる
桁上げを減算時だけ有効にしている。
演算器23は正規化で左2ビット以上シフトする場合の
桁合わせと仮数部減算を行なう。第3表に演算器23の
演算論理を示す。
第  3  表 指数部の差が−1,O,+1の3通りの場合たけ演算す
ればよいので、デコーダ61には指数部の下位2ビツト
だけを入力すればよい。指数部の差が0の場合、Ma−
Mbが負になるが、このときだけ信号27が1となり、
指数部比較結果15を補正する。セレクタ63で行なわ
れる桁合わせの右シフトは、1ビツトまでなので、減算
器64はカードビットまで拡張すればよく54ビツト長
である。
先行0検出回路24は、演算器23出力値について最上
位ビットから“0”の数を数え、小数点位置を基準とし
た数値゛+2〜53”を出力する。
減算器23では大きい方の指数部セレクタ17から先行
O検出器24の出力値を減算し、バレルシフタ26では
先行O検出器24の出力値だけ演算器23の出力値を左
シフトし、正規化が完了する。
正規化後の整数ビット必ず1なので、バレルシフタ26
の出力は小数点以下だけ(52ビツト)でよい。
信号28は、演算器23の出力が1/2未満であること
を示す。デコーダ29は演算器21,22.25.26
での演算が有効である場合(演算原理の■)を検出する
。デコーダ29の論理を(8)式に示す。
デコーダ29=(減算器14≦1) かつ(信号28=1)    ・・・・・・(8)セレ
クタ31は、デコーダ29.ゲート13゜信号30(第
2図では信号48.49)の指示で、演算器21,22
.25.26を選択する。このセレクタ31の論理を第
4表に示す。
第  4  表 ゲート32は、セレクタ16と信号27とデコーダ29
の出力から演算結果の符号を生成する。
ゲート32の論理を(9)式に示す。
ゲート32=if (29=1)かつ(27=l)th
enセレクタ16の反転値 elseセレクタ16の値  ・・・・・・(9)ここ
で第1の実施例の浮動小数点加算器の性能を試算してみ
る。IEEE754規格の倍精度データを扱うものとす
ると、e=11.n==53である。第1図においてク
リティカル・バスを第7図(b)に示す。各パスの実行
時間は以下の通り。
11ヒツト減算器14       15nsecセレ
クタ18. 19          5nsecバレ
ルンフタ20          3Qnsec丸めデ
コーダ43 a           5nsec52
ヒツト加算器46       30nsec11ヒツ
トインクリメンタ51a   15nsecセレクタ5
6          、、   .5rrsecセレ
クタ31             5nsec合  
計          110nsecまたは、 デコーダ61           5nsecセレク
タ62. 63          5nsec54ヒ
ツト減算器64       30nsec先行0検出
器24         30nsecバレルシフタ2
6      ’     30nsecセレクタ31
              5nsec合  計  
        105nsec従って、第1の実施例
の浮動小数点演算装置の実行時間は110nsecとな
る。
第1の実施例では、演算器21と演算器22て別々の桁
上げ保存加算器を用意した。しかし、第2図と第3図で
明らかなように、ゲート41と桁上げ保存加算器42は
共有できるので、桁上げ伝播加算器46.46aの入力
は最下位ビットを除いて共通となり、これら桁上げ伝播
加算器2の入力にあるゲートは共有でき、更にハードウ
ェアを削減できる。
第2の実施例での演算時間は、第1の実施例と同一であ
る。しかし、排他的論理和ゲートと反加算器と桁上げ伝
播加算器の前半が52ビット分削減することができる。
これら実施例の桁上げ伝播加算器は、桁上げ先見機構を
用いた加算器(Carry Look−Ahead A
dder)でもよいし、桁上げ選択加算器(Carry
 5elect Adder)でもよいことは明らかで
ある。桁上げ選択加算器は、通常の桁上げ伝播加算器よ
りも・・−ドウエア量が2倍程度になるが、加算器の入
力ゲートを共有する場合は、互いの加算器を共有するこ
とによって、ハードウェア量の増加を抑えることもでき
る。
また、丸めデコーダ43,43aは、第5図と第6図に
示すようなハードウェア構成にする必要はなく、同一の
論理を最適化して、丸めデコーダを作成すれば良い。
なお、これら実施例では、浮動小数点加算を1ステツプ
で行なっているが、第1図の演算装置にパイプラインレ
ジスタを挿入することで、パイプライン演算を行なう浮
動小数点加算装置が可能となる。
〔発明の効果〕
以上説明したように、本発明の浮動小数点加算装置は、
次の2つの効果を有する。
(1)演算時間が短い。
従来例と実施例の演算時間の差は、第7図によって明ら
かである。従来例の浮動小数点加算器が桁上げ伝播を伴
う加算を2回行ない、バレルシフタを2回用いるのに対
し、本発明では1回の加算と1回のバレルシフタを用い
るだけで済むため、従来例で180nsecかかった処
理を、本実施例ではl 10nsecで行ない、約1.
6倍の高速化がなされたことになる。
(2)ハードウェア量はほとんど増加しない。
ハードウェア量の80%以上を占める仮数部の演算器は
、従来例から仮数部加減算器が追加されただけであり、
バレルシフタや先行0検出器の数は増えていない。第2
の実施例のようにすれば、ハードウェア量の増加は20
%程度に押さえられる。
【図面の簡単な説明】
第1図は本発明の一実旅例のハードウェア構成を示すブ
ロック図、第2図、第3図、第4図は本実施例の演算器
21〜23の各構成を示すブロック図、第5図、第6図
は第2図2第3図の丸めデコーダ43.43aの各ブロ
ック図、第7図(a)。 (b)は従来例および本実施例の処理時間を説明する図
、第8図(a)、 (b)は浮動小数点データ形成を示
すデータ処理図、第9図は従来の浮動小数点加算装置の
一例のブロック図である。 11.12・・・・・・入力信号A、B、13.38゜
号、16〜1,9,31.56,62.63・・・・・
・セレクタ、20,26.26aバレルシフタ、21゜
22.23・・・・・・演算器、24・・・・・・先行
O検出器、27・・・・・・補数化信号、28・・・・
・・0検出出力信号、29.61.67・・・・・・デ
コーダ、30・・・・・・2ビット信号、32,50,
66.66a・・・・・・ゲート回路、33・・・・・
・出力信号c、35,65・・・・・・加減算器、36
,43.43a・・・・・・丸めデコーダ、37゜51
・・・・・・インクリメンタ、42・・・・・・桁上げ
保存加算器、44.45・・・・・・制御信号、46.
46a。 58・・・・・・桁上げ伝播加算器(CPA)、47,
48゜52・・・・・・出力信号、65a・・・・・・
加算器。 代理人 弁理士  内 原   晋 第 5 目 尤 6 図

Claims (1)

  1. 【特許請求の範囲】 1、指数部、絶対値表現の仮数部、仮数部の符号を示す
    符号部から構成される正規化浮動小数点データ2つを入
    力して丸め処理を含んだ浮動小数点加算を行なう浮動小
    数点加算装置において、前記仮数部加減算後の正規化に
    よるシフトが必要ない場合について浮動小数点加算をす
    る第1の演算手段と、前記仮数部加減算後の正規化によ
    るシフト量が左1桁または右1桁である場合について浮
    動小数点加算をする第2の演算手段と、前記仮数部加減
    算後の正規化によるシフト量が左2桁以上の場合につい
    て浮動小数点加算をする第3の演算手段と、これら第1
    、第2、第3の各演算手段の出力を選択して出力とする
    セレクタ手段とから構成され、前記入力した2つの浮動
    小数点データに対する浮動小数点加算を前記第1、第2
    、第3の各演算手段で同時に行なうと共に、前記セレク
    タ手段が前記第1の演算手段の仮数部演算結果の上位桁
    の値に基づいて選択されるものであることを特徴とする
    浮動小数点加算装置。 2、第2の演算手段が、入力した2つの浮動小数点デー
    タの符号部が等しい場合は正規化シフトが右1桁の浮動
    小数点加算を行ない、その符号部が異なる場合は正規化
    シフトが左1桁の浮動小数点加算を行なうものである請
    求項(1)記載の浮動小数点加算装置。 3、第1、第2の各演算手段が、2桁以上の任意桁左シ
    フトできるシフト手段を持たないものである請求項(1
    )記載の浮動小数点加算装置。 4、第1、第2の演算手段が、仮数部加減算器の前段で
    切上げ/切捨ての判断を行なうことにより、丸め処理と
    仮数部加減算とを同時に行なうものである請求項(1)
    記載の浮動小数点加算装置。 5、第1、第2の演算手段が、入力された2つの浮動小
    数点データについて大小判定を行なう手段と任意桁右シ
    フトできるシフト手段を共有するものである請求項(1
    )記載の浮動小数点加算装置。 6、第3の演算手段が2桁以上の任意桁右シフトできる
    シフト手段を持たないものである請求項(1)記載の浮
    動小数点加算装置。 7、第3の演算手段が、丸め処理を行なう手段を持たな
    いものである請求項(1)記載の浮動小数点加算装置。 8、セレクタ手段が、入力された2つの浮動小数点デー
    タの指数部の差と、符号部の排他的論理和と、第1の演
    算手段が出力する仮数部の一部とによって制御されるも
    のである請求項(1)記載の浮動小数点加算装置。
JP2296067A 1990-10-31 1990-10-31 浮動小数点加算装置 Expired - Fee Related JP2508912B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2296067A JP2508912B2 (ja) 1990-10-31 1990-10-31 浮動小数点加算装置
DE69131458T DE69131458T2 (de) 1990-10-31 1991-10-31 Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
US07/786,335 US5197023A (en) 1990-10-31 1991-10-31 Hardware arrangement for floating-point addition and subtraction
EP91118645A EP0483864B1 (en) 1990-10-31 1991-10-31 Hardware arrangement for floating-point addition and subtraction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2296067A JP2508912B2 (ja) 1990-10-31 1990-10-31 浮動小数点加算装置

Publications (2)

Publication Number Publication Date
JPH04167125A true JPH04167125A (ja) 1992-06-15
JP2508912B2 JP2508912B2 (ja) 1996-06-19

Family

ID=17828682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2296067A Expired - Fee Related JP2508912B2 (ja) 1990-10-31 1990-10-31 浮動小数点加算装置

Country Status (4)

Country Link
US (1) US5197023A (ja)
EP (1) EP0483864B1 (ja)
JP (1) JP2508912B2 (ja)
DE (1) DE69131458T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221622A (ja) * 2005-02-09 2006-08-24 Internatl Business Mach Corp <Ibm> 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0551531A1 (en) * 1991-12-20 1993-07-21 International Business Machines Corporation Apparatus for executing ADD/SUB operations between IEEE standard floating-point numbers
US5408426A (en) * 1992-03-17 1995-04-18 Hitachi, Ltd. Arithmetic unit capable of performing concurrent operations for high speed operation
US5373461A (en) * 1993-01-04 1994-12-13 Motorola, Inc. Data processor a method and apparatus for performing postnormalization in a floating-point execution unit
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
EP0678813B1 (en) * 1994-03-07 1997-10-15 Nec Corporation Floating point multiplier
US5757682A (en) * 1995-03-31 1998-05-26 International Business Machines Corporation Parallel calculation of exponent and sticky bit during normalization
US5764556A (en) * 1995-07-18 1998-06-09 Advanced Micro Devices, Inc. Method and apparatus for performing floating point addition
KR970016936A (ko) * 1995-09-06 1997-04-28 엘리 와이스 최상위 디지트를 결정하는 장치 및 방법
US5798967A (en) * 1997-02-22 1998-08-25 Programmable Microelectronics Corporation Sensing scheme for non-volatile memories
US6085212A (en) * 1997-10-23 2000-07-04 Advanced Micro Devices, Inc. Efficient method for performing close path subtraction in a floating point arithmetic unit
US6088715A (en) * 1997-10-23 2000-07-11 Advanced Micro Devices, Inc. Close path selection unit for performing effective subtraction within a floating point arithmetic unit
US6094668A (en) * 1997-10-23 2000-07-25 Advanced Micro Devices, Inc. Floating point arithmetic unit including an efficient close data path
US6301594B1 (en) * 1999-03-11 2001-10-09 Sun Microsystems, Inc. Method and apparatus for high-speed exponent adjustment and exception generation for normalization of floating-point numbers
KR100331846B1 (ko) * 1999-04-02 2002-04-09 박종섭 실수 연산기
US20030055859A1 (en) * 2001-05-04 2003-03-20 Southern Methodist University Fast IEEE floating-point adder
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US7467178B2 (en) * 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US20030005269A1 (en) * 2001-06-01 2003-01-02 Conner Joshua M. Multi-precision barrel shifting
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US8543632B2 (en) * 2003-06-11 2013-09-24 Stmicroelectronics, Inc. Method and system for computing alignment sticky bit in floating-point operations
US7720898B2 (en) * 2003-06-11 2010-05-18 Stmicroelectronics, Inc. Apparatus and method for adjusting exponents of floating point numbers
US7395306B1 (en) * 2003-09-03 2008-07-01 Advanced Micro Devices, Inc. Fast add rotate add operation
JP4232838B2 (ja) * 2007-03-29 2009-03-04 日本電気株式会社 再構成可能なsimd型プロセッサ
US10346130B2 (en) * 2017-05-12 2019-07-09 Arm Limited Handling floating point operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS608933A (ja) * 1983-06-28 1985-01-17 Nec Corp 演算処理装置
US4849923A (en) * 1986-06-27 1989-07-18 Digital Equipment Corporation Apparatus and method for execution of floating point operations
JPH0664529B2 (ja) * 1987-03-13 1994-08-22 日本電信電話株式会社 丸め加算器
JPH01302425A (ja) * 1988-05-31 1989-12-06 Toshiba Corp 浮動小数点加減算回路
US4994996A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Pipelined floating point adder for digital computer
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US4999803A (en) * 1989-06-29 1991-03-12 Digital Equipment Corporation Floating point arithmetic system and method
US5128889A (en) * 1990-02-22 1992-07-07 Matsushita Electric Industrial Co., Ltd. Floating-point arithmetic apparatus with compensation for mantissa truncation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221622A (ja) * 2005-02-09 2006-08-24 Internatl Business Mach Corp <Ibm> 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法

Also Published As

Publication number Publication date
DE69131458T2 (de) 2000-03-23
EP0483864B1 (en) 1999-07-21
EP0483864A3 (en) 1993-03-24
JP2508912B2 (ja) 1996-06-19
DE69131458D1 (de) 1999-08-26
EP0483864A2 (en) 1992-05-06
US5197023A (en) 1993-03-23

Similar Documents

Publication Publication Date Title
JPH04167125A (ja) 浮動小数点加算装置
US5027308A (en) Circuit for adding/subtracting two floating point operands
US8626813B1 (en) Dual-path fused floating-point two-term dot product unit
US5010508A (en) Prenormalization for a floating-point adder
EP0820005B1 (en) Method and apparatus for computing floating point data
US5568412A (en) Rounding-off method and apparatus of floating point arithmetic apparatus for addition/subtraction
KR920005226B1 (ko) 부동 소수점 연산장치
US5732007A (en) Computer methods and apparatus for eliminating leading non-significant digits in floating point computations
JP4500358B2 (ja) 演算処理装置および演算処理方法
JP4388543B2 (ja) 3項入力の浮動小数点加減算器
JP2520569B2 (ja) 浮動小数点数の指数計算における引数縮小を行うための装置
US7720898B2 (en) Apparatus and method for adjusting exponents of floating point numbers
US5931895A (en) Floating-point arithmetic processing apparatus
US5337265A (en) Apparatus for executing add/sub operations between IEEE standard floating-point numbers
JP7285966B2 (ja) 多入力浮動小数点加算器
JPH04165530A (ja) 浮動小数点乗算装置
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
JPH0346024A (ja) 浮動小数点演算器
JPH0511980A (ja) 桁あふれ検出方式とその回路
US5208769A (en) Unsigned integer multiply/divide circuit
JP2752698B2 (ja) 浮動小数点加減算回路
JP2856792B2 (ja) 浮動小数点数演算装置
JP2555135B2 (ja) 演算回路
JP2752564B2 (ja) 先行1予測装置及び浮動小数点加減算装置
JPH0635671A (ja) 浮動小数点加減算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080416

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees