JPH08202530A - 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法 - Google Patents

正規化前丸め手段を有する浮動小数点加減算処理装置及び方法

Info

Publication number
JPH08202530A
JPH08202530A JP7009213A JP921395A JPH08202530A JP H08202530 A JPH08202530 A JP H08202530A JP 7009213 A JP7009213 A JP 7009213A JP 921395 A JP921395 A JP 921395A JP H08202530 A JPH08202530 A JP H08202530A
Authority
JP
Japan
Prior art keywords
digit
rounding
addition
subtraction
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.)
Pending
Application number
JP7009213A
Other languages
English (en)
Inventor
Hiromichi Yamada
弘道 山田
Takashi Hotta
多加志 堀田
Fumio Murabayashi
文夫 村林
Tatsumi Yamauchi
辰美 山内
Kenichi Kiyoshige
賢一 清重
Tokuyasu Imon
徳安 井門
Takahiro Nishiyama
隆裕 西山
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7009213A priority Critical patent/JPH08202530A/ja
Priority to US08/530,471 priority patent/US5684729A/en
Publication of JPH08202530A publication Critical patent/JPH08202530A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】浮動小数点演算の主要な処理の一つである丸め
処理に要する時間を短縮し、高速な演算の実行を可能と
する浮動小数点加算器を提供する。 【構成】浮動小数点加算器において、実質加算が行なわ
れる場合には、加減算の入力データがそれぞれ下位側に
1桁シフトされた値となるようにするためのプリシフト
回路11と、加減算結果の最も上位側にある"1"の桁が整
数部1桁目と小数部1桁目の2通りを予め仮定して、それ
ぞれの場合について丸めによる桁上がりの有無を判定す
る丸め判定回路17a、17bと、加減算結果の整数部1桁目
と小数部1桁目の2つのデータにより、丸め判定手段17
a、17bの結果のうちいずれか一方を選択する丸め選択回
路18とを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、丸め処理と正規化処理
とを必要とする浮動小数点数の加減算に適用できる加減
算処理装置に関するもので、例えば浮動小数点演算機能
を内蔵するマイクロプロセッサや浮動小数点演算チップ
等のLSIに利用できる。
【0002】
【従来の技術】浮動小数点数を計算機上で表現する方法
としては、IEEE-754で定められた標準形式が一般に用い
られる。符号s、指数部e、小数部fからなるデータで表
現された浮動小数点数は、以下の式で表される数値をと
る。
【0003】(-1)^s × 2^(e-b) ×(1.f) …(1) ここで、bは指数バイアスと呼ばれ、指数部eの最大値の
約半分の値である。また、小数部fには整数の1が付加さ
れ、整数部と小数部を合わせて仮数部と呼ぶ。このよう
にして表された数値を正規化数と呼んでいる。
【0004】なお、本明細書においては、記号 ^ は、
べき乗を表わすものとし、例えば2^(e-b)は、2の(e-b)
乗を意味する。また、仮数部以外の値は、特に述べない
限りすべて10進法で表わすものとする。
【0005】次に、浮動小数点演算処理について説明す
る。簡単のため符号1ビット、指数部3ビット、小数部4
ビットとして、式(2)、(3)で表される2つの浮動小数点
数の減算を考える。
【0006】(-1)^0 × 2^(4-b) ×(1.0011) …(2) (-1)^0 × 2^(2-b) ×(1.0001) …(3) 最初、減算を行う前に、上記2つの数値の指数部を大き
い方に一致させる。このとき指数部の小さい方の仮数部
を、指数部の差分だけ下位方向にシフトする。この処理
を桁合わせと呼び、式(3)を式(4)へ変換する。
【0007】 (-1)^0 × 2^(4-b) ×(0.010001) …(4) 次に、式(2)の仮数部から式(4)の仮数部を減算する。そ
の結果を、式(5)に示す。
【0008】 (-1)^0 × 2^(4-b) ×(0.111011) …(5) 式(5)の仮数部は、整数部が0であり正規化数とはならな
い。これを正規化数にするために、まず仮数部の最上位
1(最上位桁から見て最初に1となる桁)を見つけ、この桁
が整数部にくるように仮数部全体をシフトする。次に、
指数部から、仮数部をシフトした桁数だけを減ずる。こ
の処理を正規化と呼び、式(5)を式(6)に変換する。
【0009】(-1)^0 × 2^(3-b) ×(1.11011) …(6) 式(6)の小数部は5桁であるため、これを設定された丸め
の方法に従い、フォーマットの桁数(この例では4桁)に
縮めるための演算を行う。これを丸め処理と呼ぶ。式
(6)を丸めた例を式(7)に示す。
【0010】(-1)^0 × 2^(3-b) ×(1.1110) …(7) 以上が浮動小数点演算処理の一例である。この様な浮動
小数点数の演算を行う方法の従来例としては、例えば特
開平2-232723号公報に述べられている方法がある。この
方法を用いた演算装置を図8を用いて説明する。
【0011】上記従来例において、演算制御回路60は、
図8に示すように、2つの浮動小数点オペランドと、加算
または減算かのオペレーションの指示とにより、結果の
符号および演算に必要な制御信号を生成する。オペラン
ドスワップ回路12は、演算制御回路60での浮動小数点オ
ペランドの絶対値比較により絶対値の大きい方の仮数部
と小さい方の仮数部とに分けて出力する。
【0012】指数部計算回路13は、浮動小数点オペラン
ドの指数部を入力し、指数部の差と大きい方の指数部の
値を出力する。桁合わせシフト回路14は、オペランドス
ワップ回路12の出力する小さい方の仮数部を、指数部計
算回路13の出力する指数部の差分だけ下位側にシフトす
る。加減算回路15は、オペランドスワップ回路12の出力
する大きい方の仮数部と桁合わせシフト回路14の出力と
を、加算または減算する。
【0013】シフト数計算回路16は、加減算結果の最も
上位側にある"1"の桁から整数部1桁目までの桁数を計算
する。正規化シフト回路20は、加減算回路15の出力をシ
フト数計算回路16の出力するシフト数を用いて、加減算
結果をシフトする。
【0014】丸め判定回路17は、正規化シフト回路20の
出力のフォーマットの最下位桁より下位にあるデータ、
結果の符号、設定された丸めモード等により、正規化シ
フト回路20の出力のフォーマットの最下位桁より上位に
あるデータに+1加算するか否かの判定、すなわち、丸め
による桁上がり有無の判定を行なう。
【0015】丸め判定回路17において、丸めによるイン
クリメントがあると判断した場合には、インクリメント
回路19で正規化シフト結果の最下位桁に+1加算する。丸
めによるインクリメントがないと判断した場合には、正
規化シフト結果をそのまま出力する。
【0016】指数部補正回路21は、指数部計算回路13の
出力する大きい方の指数部の値からシフト数計算回路16
の出力するシフト数を引いた値を計算する。ここで、イ
ンクリメント回路19の結果の整数部2桁目が1となる場
合、すなわち仮数部のすべての桁が0となる場合には、
指数部の値として、指数部計算回路13の出力する大きい
方の指数部の値からシフト数計算回路16の出力するシフ
ト数を引いた値に1を加えた値を出力する。
【0017】以上の方法により、浮動小数点の加減算結
果が生成される。
【0018】
【発明が解決しようとする課題】しかしながら、従来の
演算装置では正規化シフト後に丸め判定を行なっていた
ため、処理に時間のかかるシフト数計算と丸め判定が逐
次処理となり演算時間を長くしていた。
【0019】本発明の目的は、丸め判定処理を正規化シ
フト処理前に、シフト数計算処理と並列して実行するこ
とにより演算時間を短縮することのできる、浮動小数点
の加減算処理装置及び方法を提供することにある。
【0020】
【課題を解決するための手段】上記目的を達成するため
に本発明の加減算処理装置では、実質加算が実行される
場合には前記2つの浮動小数点オペランドの仮数部をそ
れぞれ下位側に1桁シフトし、実質減算が実行される場
合にはシフトせずそのまま出力するプリシフト手段と、
前記プリシフト手段から出力される前記2つの浮動小数
点オペランドの仮数部の桁合わせを行ない、実質加算が
行なわれる場合にはこれらを加算し、実質減算が行なわ
れる場合には減算を行なう桁合わせ及び加減算手段と、
前記加減算処理結果の、予め定められているフォーマッ
トの最下位桁より下位側の桁にあるデータを用いて、丸
めによる桁上がりの有無を決定し、当該桁上がりの有無
に関する情報を出力する第1の丸め判定手段と、前記加
減算処理結果の、前記最下位桁よりもさらに1桁下位の
桁より下位側の桁にあるデータを用いて、丸めによる桁
上がりの有無を決定し、当該桁上がりの有無に関する情
報を出力する第2の丸め判定手段と、前記加減算処理結
果の、最も上位側にある"1"の桁を検出し、当該"1"の桁
が整数部1桁目にある場合には前記第1の丸め判定手段の
出力を、当該"1"の桁が小数部1桁目にある場合には前記
第2の丸め判定手段の出力を選択して出力する丸め選択
手段と、前記丸め選択手段の出力に応じて、前記加減算
処理結果の丸め及び正規化を行なう丸め及び正規化手段
とを有する。
【0021】また、上記目的を達成するために本発明の
加減算処理方法では、実質加算が実行される場合には、
前記2つの浮動小数点オペランドの仮数部をそれぞれ下
位側に1桁シフトし、前記シフトされた2つの仮数部の桁
合わせを行なった後にこれらを加算し、前記加算結果の
予め定めたフォーマットの最下位桁より下位側の桁にあ
る第1のデータ群、及び前記最下位桁よりもさらに1桁下
位の桁より下位側の桁にある第2のデータ群を用いて、
それぞれ丸めによる桁上がりの有無を判定し、前記加算
結果の最も上位側にある"1"の桁が、整数部1桁目にある
場合には前記第1のデータ群による判定結果を、当該"1"
の桁が、小数部1桁目にある場合には前記第2のデータ群
による判定結果を用いて、前記加算結果の丸め及び正規
化を行なう。
【0022】
【作用】本発明の作用をより明確にするために、作用の
説明に先立ち、浮動小数点数の加減算処理における正規
化シフトと丸めとの関係について説明する。図6は、加
減算結果の最も上位側にある"1"の桁に着目して、正規
化シフトの数と丸め判定処理の要否の関係についてまと
めたものである。なお、以下の例でフォーマット桁数は
52とする。
【0023】最初、実質加算の場合について説明する。
桁合わせ後の2つの数の仮数部を、例えばM、L(L≦
M)とすると、 1≦M≦2−2^(-52) …(8) 0<L≦2−2^(-52) …(9) であるから加算結果Aは、 A=M+L、1<A≦4−2^(-51) …(10) となる。加算結果Aの最も上位側にある"1"の桁は、整
数部2桁目と1桁目の2通りあり、正規化シフトの数は下
位側に1または0となる。ここで、整数部2桁目とは、小
数点より左側に2桁目のことを意味する。
【0024】これらいずれの場合も任意の桁数の桁合わ
せシフトが行なわれていると考えられるため、加算結果
Aの桁数はフォーマットの桁数をオーバーしている。従
って、丸め判定はいずれの場合も必要となる。
【0025】次に、実質減算の場合について説明する。
値が近い数同士で減算を行なうと、非常に小さい結果が
生成されるため、大きい桁数の正規化シフトが必要とな
る。まず、入力データの指数部が等しい場合、桁合わせ
後の仮数部は、 1≦M≦2−2^(-52) …(11) 1≦L≦2−2^(-52) …(12) (但し、L≦M)であるから減算結果Aは、 A=M−L、0≦A≦1−2^(-52) …(13) となる。減算結果Aの最も上位側にある"1"の桁は、整
数部1桁目から52桁目までの53通りあり、正規化シフト
の数は上位側に0から52までの任意の値となる。また、
減算結果Aは、整数部1桁目から小数部52桁目までに収
まっているため丸めによる桁上がりは起こりえない。こ
のため丸め判定は必要ない。
【0026】次に、入力データの指数部の差が1の場
合、桁合わせ後の仮数部は、 1≦M≦2−2^(-52) …(14) 0.5≦L≦1−2^(-53) …(15) であるから減算結果Aは、 A=M−L、2^(-53)≦A≦1.5−2^(-52) …(1
6) となる。減算結果Aの最も上位側にある”1”の桁は、
整数部1桁目から53桁目までの54通りあり、正規化シフ
トの数は上位側に0から53までの任意の値となる。減算
結果Aは、整数部1桁目から小数部53桁目までに収まっ
ているため、正規化シフトの数が0の場合には丸め判定
が必要となるが、正規化シフトの数が1以上の場合には
必要ない。
【0027】最後に、入力データの指数部の差が2以上
の場合、桁合わせ後の仮数部は、 1≦M≦2−2^(-52) …(17) 0<L≦0.5−2^(-54) …(18) であるから減算結果Aは、 A=M−L、0.5+2^(-54)≦A<2−2^(-52) …(20) となる。減算結果Aの最も上位側にある"1"の桁は、整
数部1桁目か小数部1桁目の2通りあり、正規化シフトの
数は上位側に0または1となる。加算結果Aの桁数はフォ
ーマットの桁数をオーバーしている。従って、丸め判定
はいずれの場合も必要となる。
【0028】以上をまとめると、加減算結果の最も上位
側にある"1"の桁が、整数部2桁目、整数部1桁目、小数
部1桁目のうちいずれかにある場合は丸めによる桁上が
りが起こりうるため丸め判定の処理が必要となるが、こ
れ以外の場合では丸めによる桁上がりが起こりえないた
め丸め判定の処理が必要ないと云える。
【0029】この正規化シフトの数と丸めの関係を利用
することにより、加減算結果に対して上記3通りの丸め
判定を先に行なっておき、加減算結果の整数部2桁目か
ら連続する3桁の値を用いて正しい丸め判定結果を選択
するという処理が可能になる。
【0030】本発明では、このような丸め判定が必要な
場合を、従来の3通りから2通りで済むように構成するこ
とで、演算時間をさらに短縮できる装置及び方法を提供
するものである。
【0031】すなわち、本発明では、実質加算の場合に
加算結果が1桁だけ下位側にシフトした値として求める
ことにより、最も上位側にある"1"の桁は整数部1桁目か
小数部1桁目のいずれかとすることが可能となり、実質
減算の場合と合わせて、丸め判定が必要な場合を2通り
にすることができる。これらの場合をまとめたものを図
7に示す。
【0032】実質加算の場合、加算結果を1桁だけ下位
側にシフトした値とするには、加算処理の前の桁合わせ
の処理において、両方の仮数部を1桁だけ下位側にシフ
トしておくという方法で簡単に実現できる。ここで、加
算結果を1桁下位側にシフトした値とする替わりに、指
数部には+1加算する必要があるが、これも桁合わせの処
理によって選択された指数部に1を加えるという処理に
より実現できる。
【0033】上記のように、本発明によれば、実質加算
の場合に桁合わせの処理において、2つの浮動小数点オ
ペランドの仮数部を1桁だけ下位側にシフトしておくこ
とにより、加減算結果に対して丸め判定が必要となる場
合を、加減算結果の最も上位側にある"1"の桁が整数部1
桁目と小数部1桁目の2通りに限定できる。
【0034】したがって、正規化シフト前の加減算結果
を用いて丸め判定を先行して行なえるため、丸め判定お
よび加減算結果のインクリメントを、正規化シフトのた
めのシフト数計算と並列処理できるようになる。
【0035】
【実施例】本発明を用いた計算機システムには、例えば
図2に示すように、プロセッサ26、メモリ27、ハードデ
ィスク28からなる計算機が複数台、総合ネットワーク25
を介して接続される。係る計算機システムにおいて、本
発明は数値計算処理を司るプロセッサ26に適用される。
【0036】プロセッサ26は、例えば図3に示すよう
に、データ及び命令を高速にアクセスするためのデータ
キャッシュ30、及び命令キャッシュ33を内蔵する。仮想
アドレスから物理アドレスへのメモリアドレス変換は、
データTLB(Translation Lookaside Baffer)31と命令TLB
32とを用いて行う。この制御はメモリ制御ユニット34が
行う。
【0037】整数演算は、汎用レジスタ35、ALU(Arithm
atic Logic Unit)36、及びALU37で行う。命令アドレス
の計算は、アドレス加算器38を用いて行う。浮動小数点
演算は、浮動小数点レジスタ40、浮動小数点加算器41、
浮動小数点乗算器42、及び浮動小数点除算器43で行う。
これらの制御は命令制御ユニット39が行う。
【0038】科学技術計算やコンピュータ・グラフィッ
クス等の計算機利用分野では、非常に高い浮動小数点演
算性能が必要である。特に、浮動小数点加算は浮動小数
点演算命令の中でも使用頻度が高く、高速演算が可能な
浮動小数点加算器は重要である。本発明は、係る浮動小
数点演加算器41に適用される。
【0039】本発明を適用した浮動小数点加算器(加減
算処理装置)41は、例えば図1に示すように、演算制御回
路10、プリシフト回路11、オペランドスワップ回路12、
指数部計算回路13、桁合わせシフト回路14、加減算回路
15、シフト数計算回路16、丸め判定回路17a、17b、丸め
選択回路18、インクリメント回路19、正規化シフト回路
20、及び指数部補正回路21を有する。
【0040】本実施例の浮動小数点加算器41は、2つの
入力オペランドを、オペレーションの指示に従い加算ま
たは減算し、正規化および丸めの処理を行った結果を出
力するものである。
【0041】以下の説明では、図4に示すようなIEEE-75
4倍精度フォーマットを例に説明を行うが、本発明はこ
れに限られるわけではなく、単精度フォーマットや4倍
精度フォーマットにも、またIEEEフォーマット以外にも
広く利用可能である。
【0042】以下、本実施例の浮動小数点加算器41の動
作について説明する。
【0043】演算制御回路10は、入力される2つの浮動
小数点オペランドと、加算または減算かのオペレーショ
ンの指示とにより、結果の符号および演算に必要な制御
信号を生成する。
【0044】プリシフト回路11は、本発明の特徴的構成
の一つであり、実質加算が行なわれる場合には、入力オ
ペランドの仮数部をぞれぞれ1桁だけ下位側にシフトす
る。
【0045】オペランドスワップ回路12は、演算制御回
路10での入力オペランドの絶対値比較により、プリシフ
ト結果を大きい方の仮数部と小さい方の仮数部とに分け
て出力する。指数部計算回路13は、入力オペランドの指
数部の比較により、指数部の差と大きい方の指数部の値
を出力する。ここで、実質加算が行なわれる場合には大
きい方の指数部に+1加算した値が出力される。
【0046】桁合わせシフト回路14は、オペランドスワ
ップ回路12の出力する小さい方の仮数部を、指数部計算
回路13の出力する指数部の差分だけ下位側にシフトす
る。ここで、桁合わせシフト結果の小数部55桁目は、そ
れより下位側にある全データの論理和をとったものとす
る。浮動小数点数の加減算処理については、桁合わせシ
フトしたデータをこのような方法で丸めておいても演算
精度上の問題はない。
【0047】加減算回路15は、オペランドスワップ回路
12の出力する大きい方の仮数部と桁合わせシフト回路14
の出力を加算または減算する。シフト数計算回路16は、
加減算結果の最も上位側にある"1"の桁から整数部1桁目
までの桁数を計算する。
【0048】丸め判定回路17aは、加減算回路15の結果
の最も上位側にある"1"の桁が整数部1桁目であると仮定
した場合での丸めによる桁上がりが発生するか否かを判
定する。また、丸め判定回路17bは、加減算回路15の結
果の最も上位側にある"1"の桁が小数部1桁目であると仮
定した場合について丸めによる桁上がりが発生するか否
かを判定する。丸め選択回路18は、加減算回路15の結果
の整数部1桁目と小数部1桁目を検出して、丸め判定回路
17a、17bの出力のうちの、当該加減算回路15の結果に該
当する出力を選択する。
【0049】本実施例において、丸め判定回路17a、17b
及び丸め選択回路18から構成される部分は、本発明にお
ける特徴的構成に対応するものである。図5を用いて、
本実施例の丸め判定および丸め結果選択の方法を説明す
る。
【0050】本実施例において、加減算回路15から出力
される加算結果Aは、図5に示すように、最も上位側に
ある"1"の桁に着目して、上述した2通りの場合とそれ以
外で桁上がりがない場合とを合わせた、3つのタイプに
分類することができる。
【0051】タイプ1は、整数部1桁目(a0)が"1"の場合
で、後述する正規化シフト後のフォーマットの最下位桁
は小数部52桁目(a52)となる。a52とこれより下位側にあ
るデータa53、a54、a55を用いて丸め判定を行なう。丸
め判定で計算するデータはa52に対する桁上がり信号(c5
3)と、a53を丸めた値(r53)とである。丸め判定回路17a
は、このタイプ1の場合を想定して、上記丸め判定を行
なうものである。
【0052】タイプ2は、a0が"0"かつa1が"1"の場合
で、後述する正規化シフト後のフォーマットの最下位桁
は小数部53桁目(a53)となる。a53とこれより下位側にあ
るデータa54、a55を用いて丸め判定を行なう。丸め判定
で計算するデータはa52に対する桁上がり信号(c53)とa5
3を丸めた値(r53)とである。丸め判定回路17bは、この
タイプ2の場合を想定して、上記丸め判定を行なうもの
である。
【0053】タイプ3は、a0とa1が共に"0"の場合で正規
化シフト後のフォーマットの最下位桁は小数部54桁目以
降にくるが、上記作用の欄でも説明したように(図5参
照)小数部54桁目より下位の桁は"0"であるため、フォー
マットの桁数をオーバーするデータは存在しないため、
丸め判定は行なわれず、この場合に出力される桁上がり
信号c53及びa53を丸めた値r53は0となる。
【0054】なお、丸め判定における具体的な演算処理
方法は、入力される丸めモードに応じて、少数部52桁目
(a52)以下にある丸め用のデータL、R、S(図5参照)を用
いて行なわれるもので、例えば特願平6-044048号公報に
記載の例に示されている丸めモードに応じた丸め判定で
の演算処理方法を利用することが出来る。本実施例にお
いては、丸め判定回路17a、17bで丸めに用いるデータの
桁位置が上記のような構成となっている限り、その具体
的な演算処理方法は限定されるものではない。
【0055】丸め選択回路18は、加算結果a0、a1の値の
組合せから、当該加算結果のタイプが上記3つのタイプ
のいずれに該当するかを判定し、その判定結果に応じ
て、上記の3通りの桁上がり信号c53及びa53を丸めた値r
53の中から1組を選択して出力する。
【0056】インクリメント回路19は、加減算回路15の
出力のうち整数部1桁目から小数部52桁目までを入力
し、丸め選択回路18の出力する桁上がり信号がある場合
には、入力された値の52桁目に+1を加算した値を、桁上
がり信号が無い場合には加減算結果そのままを出力す
る。
【0057】本実施例において、2つの丸め判定回路は
それぞれフォーマットの最下位桁への桁上がりの有無を
出力し、インクリメント回路はフォーマット最下位桁ま
でのデータを受け入れ、桁上がりのある場合にはその最
下位桁に+1を加算してインクリメント処理を実行してい
るが、本発明において、丸め判定回路での桁上がりの有
無を判定する桁の位置、及びインクリメント回路で受け
入れるデータの桁数は、これらに限定されるものではな
い。
【0058】例えば、丸め判定回路で、フォーマット最
下位桁よりも複数桁上位側にある所定の桁への桁上がり
の有無を判定し、当該所定の桁から最下位桁までの複数
の桁でのデータの丸め処理後の値を求め、それらを本実
施例のように桁上がり信号及び丸め後の値として出力す
る構成としても良い。このような構成によれば、加減算
処理結果のうちの、最下位桁から前記所定の桁までの複
数の桁での丸め処理後の値を予め求めることできるた
め、インクリメント処理を実行するために、インクリメ
ント回路が受け入れるべきデータの桁数を減少させるこ
とが可能となる。
【0059】正規化シフト回路20は、インクリメント回
路19の出力をシフト数計算回路16の出力するシフト数を
用いてシフトする。指数部補正回路21は、指数部計算回
路13の出力する大きい方の指数部の値からシフト数計算
回路16の出力するシフト数を引いた値を計算する。ここ
で、インクリメント回路19の結果の整数部2桁目が1とな
る場合、仮数部の値がすべて0となる場合には、指数部
計算回路13の出力する大きい方の指数部の値からシフト
数計算回路16の出力するシフト数を引いた値に1を加え
た値を出力する。以上により、浮動小数点の加減算結果
が生成される。
【0060】本実施例では、プリシフト回路により実質
加算時に両オペランドを1ビット下位にシフトするた
め、丸めが起こりうるのは、加減算結果の最も上位桁に
ある"1"の桁が整数部1桁目と小数部1桁目の2通りの場合
にだけ限定できるようになる。このため、加減算結果の
最も上位にくる"1"の桁がわかる前に、加減算結果の下
位の数桁を用いて上記2通りの場合を想定して、予め丸
め判定を行なうことが可能となる。さらに、加減算結果
の整数部1桁目と小数部1桁目とが算出され次第、これら
を用いて2通りの丸め判定結果、及び丸めが生じないと
する値のうちいずれかを選択し、加減算結果をインクリ
メントする。
【0061】本実施例によれば、丸め判定とインクリメ
ントの処理が、正規化シフトのためのシフト数計算と並
列処理できるようになり、浮動小数点の演算処理に要す
る時間を大幅に短縮できるようになる。
【0062】さらに、本実施例によれば、加減算結果に
丸めが必要となる場合を、従来よりも少ない2通りとす
ることができるため、必要とする丸め判定回路が2つだ
けとなる上に、丸め判定回路の必要数を減らすことによ
り、各丸め判定回路で生じる信号伝播の遅延量を、従来
よりも減少させることができるという効果がある。
【0063】さらに、本実施例によれば、演算処理速度
の高速化を実現するために増加する必要のあるハードウ
エアは少なくすることができる。具体的には、例えば図
8に示す従来例に比べると、プリシフト、丸め判定及び
丸め選択を行なう回路を増加するだけであり、浮動小数
点加算器全体の構成に比較して、その増加分を約1%以
下に抑えることができる。
【0064】
【発明の効果】本発明によれば、丸め判定処理を正規化
シフト処理前にシフト数計算処理と並列に実行すること
により、演算時間を短縮することのできる、浮動小数点
の加減算処理装置及び方法を提供することが可能とな
る。
【0065】
【図面の簡単な説明】
【図1】本発明の特徴を最もよく表す浮動小数点加算器
のブロック図である。
【図2】本発明を用いた計算機システムの一例を示すブ
ロック図である。
【図3】図2のプロセッサ26のブロック図で、本発明を
適用したプロセッサの一例のブロック図である。
【図4】浮動小数点数の表現方法の一例を示す説明図で
ある。
【図5】本発明の丸め判定と丸め選択方法を示す説明図
である。
【図6】正規化シフト数と丸めの関係を示す説明図であ
る。
【図7】本発明を適用後の正規化シフト数と丸めの関係
を示す説明図である。
【図8】従来の浮動小数点加算器のブロック図である。
【符号の説明】
10・・演算制御回路、11・・プリシフト回路、12・・オペラン
ドスワップ回路、13・・指数部計算回路、14・・桁合わせシ
フト回路、15・・加減算回路、16・・シフト数計算回路、17
a、17b・・丸め判定回路、18・・丸め選択回路、19・・インク
リメント回路、20・・正規化シフト回路、20・・指数部補正
回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山内 辰美 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 清重 賢一 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 西山 隆裕 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】2つの浮動小数点オペランドの加減算を実
    行する加減算処理装置において、 実質加算が実行される場合には前記2つの浮動小数点オ
    ペランドの仮数部をそれぞれ下位側に1桁シフトし、実
    質減算が実行される場合にはシフトせずそのまま出力す
    るプリシフト手段と、 前記プリシフト手段から出力される前記2つの浮動小数
    点オペランドの仮数部の桁合わせを行ない、実質加算が
    行なわれる場合にはこれらを加算し、実質減算が行なわ
    れる場合には減算を行なう桁合わせ及び加減算手段と、 前記加減算処理結果の、予め定められているフォーマッ
    トの最下位桁より下位側の桁にあるデータを用いて、丸
    めによる桁上がりの有無を決定し、当該桁上がりの有無
    に関する情報を出力する第1の丸め判定手段と、 前記加減算処理結果の、前記最下位桁よりもさらに1桁
    下位の桁より下位側の桁にあるデータを用いて、丸めに
    よる桁上がりの有無を決定し、当該桁上がりの有無に関
    する情報を出力する第2の丸め判定手段と、 前記加減算処理結果の、最も上位側にある"1"の桁を検
    出し、当該"1"の桁が整数部1桁目にある場合には前記第
    1の丸め判定手段の出力を、当該"1"の桁が小数部1桁目
    にある場合には前記第2の丸め判定手段の出力を選択し
    て出力する丸め選択手段と、 前記丸め選択手段の出力に応じて、前記加減算処理結果
    の丸め及び正規化を行なう丸め及び正規化手段とを有す
    ることを特徴とする浮動小数点加減算処理装置。
  2. 【請求項2】請求項1において、 前記丸め及び正規化手段は、 前記丸め選択手段の出力が丸めによる桁上がりを示す場
    合には、前記加減算処理結果の、前記予め定められてい
    るフォーマットの最下位桁に+1を加算するインクリメン
    ト手段と、 前記加減算処理結果の、最も上位側にある"1"の桁から
    整数部1桁目までの桁数を計算するシフト数計算手段
    と、 前記シフト数計算手段の出力をシフト数として、前記イ
    ンクリメント手段の結果を上位側にシフトする正規化シ
    フト手段とを有し、 前記加減算処理と結果が得られた後、前記正規化シフト
    手段の処理が実行される前に、前記第1及び第2の丸め判
    定手段、前記丸め選択手段、及び前記インクリメント手
    段による処理と、前記シフト数計算手段による処理と
    を、並列に実行することを特徴とする浮動小数点加減算
    処理装置。
  3. 【請求項3】入力される、2つの浮動小数点オペランド
    の符号と、加算または減算かのオペレーションの指示と
    により実質加算を行なうか実質減算を行なうかを判定す
    る演算制御手段と、 前記判定の結果、実質加算が行なわれると判定された場
    合には、前記2つの浮動小数点オペランドの仮数部を1桁
    下位側にシフトし、実質減算が行なわれる場合にはシフ
    トせずに出力するプリシフト手段と、 前記2つの浮動小数点オペランドの絶対値の比較を行な
    い、前記プリシフトの結果を絶対値の大きい方の仮数部
    と小さい方の仮数部とに分けて出力するオペランドスワ
    ップ手段と、 前記2つの浮動小数点オペランドの指数部の差を出力す
    ると共に、実質加算時には大きい方の指数部に1を加算
    した値を、実質減算時には大きい方の指数部の値を共通
    指数として出力する指数部計算手段と、 前記オペランドスワップ手段の出力のうち小さい方の仮
    数部を、前記指数部計算手段の出力する指数部の差だけ
    下位方向にシフトする桁合わせシフト手段と、 前記オペランドスワップ手段の出力のうち大きい方の仮
    数部と前記桁合わせシフト手段の出力とを受け入れ、実
    質加算が行なわれる場合にはこれらを加算し、実質減算
    が行なわれる場合には減算を行なう加減算手段と、 前記加減算手段の結果を受け入れ、当該結果の最も上位
    側にある"1"の桁から整数部1桁目までの桁数を計算する
    シフト数計算手段と、 前記加減算手段の結果を受け入れ、当該結果の最も上位
    側にある"1"の桁を、整数部1桁目と小数部1桁目の2通り
    を予め仮定し、それぞれの場合における丸め位置におい
    て丸めによる桁上がりの有無を計算する丸め判定手段
    と、 前記加減算手段の結果を受け入れ、当該結果の最も上位
    側にある"1"の桁を検出し、整数部1桁目か小数部1桁目
    にある場合には、前記2つの丸め判定手段の出力のうち
    対応するものを丸め判定結果として出力し、いずれにも
    ない場合には丸めによる桁上がりは無しとする丸め判定
    結果を出力する丸め選択手段と、 前記丸め選択手段の結果が丸めによる桁上がりを指示す
    る場合には、前記加減算結果のうちの、予め定めたフォ
    ーマットの最下位桁に該当する桁よりも上位側のデータ
    に+1を加算するインクリメント手段と、 前記シフト数計算手段の出力をシフト数として、前記イ
    ンクリメント手段の結果を上位側にシフトする正規化シ
    フト手段と、 前記指数部計算手段の出力する共通指数から前記シフト
    数計算手段の出力するシフト数を減算し、前記インクリ
    メント手段の結果の整数部2桁目が"1"となる場合には前
    記減算結果に1を加算する指数部補正手段とを有するこ
    とを特徴とする浮動小数点数の加減算処理装置。
  4. 【請求項4】2つの浮動小数点オペランドの加減算を実
    行する加減算処理方法において、 実質加算が実行される場合には、前記2つの浮動小数点
    オペランドの仮数部をそれぞれ下位側に1桁シフトし、 前記シフトされた2つの仮数部の桁合わせを行なった後
    にこれらを加算し、 前記加算結果の、予め定めたフォーマットの最下位桁よ
    り下位側の桁にある第1のデータ群、及び、前記最下位
    桁よりもさらに1桁下位の桁より下位側の桁にある第2の
    データ群を用いて、それぞれ丸めによる桁上がりの有無
    を判定し、 前記加算結果の最も上位側にある"1"の桁が整数部1桁目
    にある場合には前記第1のデータ群による判定結果を、
    当該"1"の桁が小数部1桁目にある場合には前記第2のデ
    ータ群による判定結果を用いて、前記加算結果の丸め及
    び正規化を行なうことを特徴とする浮動小数点加減算処
    理方法。
  5. 【請求項5】入力される、2つの浮動小数点オペランド
    の符号と、加算または減算かのオペレーションの指示と
    により、実質加算を行なうか実質減算を行なうかを判定
    する演算制御ステップと、 前記判定の結果、実質加算が行なわれると判定された場
    合には、前記2つの浮動小数点オペランドの仮数部を1桁
    下位側にシフトし、実質減算が行なわれる場合にはシフ
    トせずに出力するプリシフトステップと、 前記2つの浮動小数点オペランドの絶対値の比較を行な
    い、前記プリシフトの結果を絶対値の大きい方の仮数部
    と小さい方の仮数部とに分けて出力するオペランドスワ
    ップステップと、 前記2つの浮動小数点オペランドの指数部の差を出力す
    ると共に、実質加算時には大きい方の指数部に1を加算
    した値を、実質減算時には大きい方の指数部の値を共通
    指数として出力する指数部計算ステップと、 前記オペランドスワップ処理結果のうち小さい方の仮数
    部を、前記指数部計算処理結果の指数部の差だけ下位方
    向にシフトする桁合わせシフトステップと、 前記オペランドスワップ処理結果のうち大きい方の仮数
    部と前記桁合わせ処理結果とを受け入れ、実質加算が行
    なわれる場合にはこれらを加算し、実質減算が行なわれ
    る場合には減算を行なう加減算ステップと、 前記加減算処理結果を受け入れ、当該結果の最も上位側
    にある"1"の桁から整数部1桁目までの桁数を計算するシ
    フト数計算ステップと、 前記加減算処理結果を受け入れ、当該結果の最も上位側
    にある"1"の桁を、整数部1桁目と小数部1桁目の2通りを
    予め仮定し、それぞれの場合における丸め位置において
    丸めによる桁上がりの有無を計算する丸め判定ステップ
    と、 前記加減算処理結果を受け入れ、当該結果の最も上位側
    にある"1"の桁を検出し、整数部1桁目か小数部1桁目に
    ある場合には、前記2つの丸め判定処理結果のうち対応
    するものを丸め判定結果として出力し、いずれにもない
    場合には丸めによる桁上がりは無しとする丸め判定結果
    を出力する丸め選択ステップと、 前記丸め選択手段の結果が丸めによる桁上がりを指示す
    る場合には、前記加減算結果のうちの、予め定めたフォ
    ーマットの最下位桁に該当する桁よりも上位側のデータ
    に+1を加算するインクリメントステップと、 前記シフト数計算処理結果をシフト数として、前記イン
    クリメント処理結果を上位側にシフトする正規化シフト
    ステップと、 前記指数部計算処理結果の共通指数から前記シフト数計
    算処理結果を減算し、前記インクリメント処理結果の整
    数部2桁目が"1"となる場合には前記減算結果に1を加算
    する指数部補正ステップとを行うことを特徴とする浮動
    小数点数の加減算処理方法。
JP7009213A 1994-09-19 1995-01-24 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法 Pending JPH08202530A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7009213A JPH08202530A (ja) 1995-01-24 1995-01-24 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法
US08/530,471 US5684729A (en) 1994-09-19 1995-09-19 Floating-point addition/substraction processing apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7009213A JPH08202530A (ja) 1995-01-24 1995-01-24 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法

Publications (1)

Publication Number Publication Date
JPH08202530A true JPH08202530A (ja) 1996-08-09

Family

ID=11714189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7009213A Pending JPH08202530A (ja) 1994-09-19 1995-01-24 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法

Country Status (1)

Country Link
JP (1) JPH08202530A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005024625A1 (ja) * 2003-08-28 2005-03-17 Hitachi Ulsi Systems Co., Ltd. データ処理装置
JP2010049611A (ja) * 2008-08-25 2010-03-04 Nec Corp Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
US8041927B2 (en) 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
US8874630B2 (en) 2010-11-17 2014-10-28 Samsung Electronics Co., Ltd. Apparatus and method for converting data between a floating-point number and an integer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005024625A1 (ja) * 2003-08-28 2005-03-17 Hitachi Ulsi Systems Co., Ltd. データ処理装置
US8041927B2 (en) 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
JP2010049611A (ja) * 2008-08-25 2010-03-04 Nec Corp Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
JP4613992B2 (ja) * 2008-08-25 2011-01-19 日本電気株式会社 Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
US8874630B2 (en) 2010-11-17 2014-10-28 Samsung Electronics Co., Ltd. Apparatus and method for converting data between a floating-point number and an integer

Similar Documents

Publication Publication Date Title
JP3076046B2 (ja) 例外検出回路
US5027308A (en) Circuit for adding/subtracting two floating point operands
JP6001276B2 (ja) 浮動小数点加算を実行するための装置および方法
JP2508912B2 (ja) 浮動小数点加算装置
US5010508A (en) Prenormalization for a floating-point adder
US5553015A (en) Efficient floating point overflow and underflow detection system
US5684729A (en) Floating-point addition/substraction processing apparatus and method thereof
CA1324217C (en) Pipelined floating point adder for digital computer
US5128889A (en) Floating-point arithmetic apparatus with compensation for mantissa truncation
US5317526A (en) Format conversion method of floating point number and device employing the same
US5957997A (en) Efficient floating point normalization mechanism
US5993051A (en) Combined leading one and leading zero anticipator
US5602769A (en) Method and apparatus for partially supporting subnormal operands in floating point multiplication
US6178435B1 (en) Method and system for performing a power of two estimation within a data processing system
US5548545A (en) Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
WO1989002119A1 (en) Apparatus and method for using a single carry chain for leading one detection and for ''sticky'' bit calculation
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
US20050223055A1 (en) Method and apparatus to correct leading one prediction
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
US20050114422A1 (en) High performance implementation of exponent adjustment in a floating point design
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
JPH08202530A (ja) 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法
US11366638B1 (en) Floating point multiply-add, accumulate unit with combined alignment circuits
US5408427A (en) Detection of exponent underflow and overflow in a floating point adder