JPH0635670A - 浮動小数点数加算回路 - Google Patents

浮動小数点数加算回路

Info

Publication number
JPH0635670A
JPH0635670A JP18848192A JP18848192A JPH0635670A JP H0635670 A JPH0635670 A JP H0635670A JP 18848192 A JP18848192 A JP 18848192A JP 18848192 A JP18848192 A JP 18848192A JP H0635670 A JPH0635670 A JP H0635670A
Authority
JP
Japan
Prior art keywords
mantissa
shift
digit
operand
exponent
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.)
Withdrawn
Application number
JP18848192A
Other languages
English (en)
Inventor
Kazuhiro Suzuki
和浩 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP18848192A priority Critical patent/JPH0635670A/ja
Publication of JPH0635670A publication Critical patent/JPH0635670A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 仮数が2の補数で表現された浮動小数点数の
加算回路に関し、シフトアウトする負の仮数を有する浮
動小数点数に対しても演算時間を増加させずに正しい加
算結果が得られるようにすることを目的とする。 【構成】 両オペランドの指数の大小を比較して一方の
オペランドの仮数に対する桁シフト数と共通指数とを求
める指数比較部1と、桁シフト数と、該一方のオペラン
ドの仮数から仮数桁シフト時のシフトアウトの有無を検
出するシフトアウト検出部2と、仮数桁シフト数だけ該
一方の仮数に対して桁シフトを行うシフタ3、4と、シ
フトアウト検出部2がシフトアウトを検出したら、該一
方のオペランドの桁シフト後の値を0とする仮数制御部
5、6と、仮数制御部5、6の出力データを加算する加
算器7とを有し、共通指数化のために仮数シフトを行う
際にシフトアウトを検出した場合には、シフトアウトが
生じた仮数を0にしてから仮数加算を行うようにした構
成である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮数が2の補数で表現
された浮動小数点数の加算回路に関し、特に負の仮数が
共通指数化によってシフトアウトした場合にも正しい演
算結果が得られるようにした浮動小数点数加算回路に関
する。
【0002】
【従来の技術】浮動小数点数を対象として演算を行う場
合、通常、仮数を絶対値表現した2進データを用いてい
る。しかし、加算演算を行う場合には、加算器を減算に
も共通に使用できるようにするため、加算器の入力にお
いて、絶対値表現を2の補数表現に変換して加算を行う
ことが多い。
【0003】図4に、例えば16ビット幅で仮数データ
が2の補数表現のデータを示す。本発明が対象とする浮
動小数点数加算回路はこのようなデータの加算を行うも
のである。
【0004】図5は従来の2の補数表現浮動小数点数加
算回路の構成図である。図において、21は指数比較部、
22はAシフタ、23はBシフタ、24は加算器である。オペ
ランドA[15:0]( この表記は最下位ビット0から最上
位ビット15までの16ビット幅の2進数Aを示す。以
下同様)と、オペランドB[15:0]の加算を行う場合、
指数比較部21は指数A[15:11 ]と指数B[15:11 ]を
用いてA[15:11 ]−B[15:11 ]を計算して両指数の
大小判定を行う。指数比較部21は、指数の差、即ちA
[15:11 ]−B[15:11 ]を求めこの値が負の場合に
は、差の絶対値をAシフタ22に、また正の場合にはBシ
フタ23へ指数の差を制御信号として出力するとともに、
大きい方の指数を共通指数X[15,11 ]として出力す
る。仮数A[10:0]と仮数B[10:0]は、それぞれAシ
フタ 22 、Bシフタ23に入力しており、指数比較部21か
らの制御信号により、小さい指数の方の仮数が指数の差
分だけ右シフトされて共通指数化が行われる。共通指数
化された仮数は加算器24により加算され、その結果に共
通指数X[15,11 ]を付加して加算結果X[15,11 ]が
得られる。
【0005】
【発明が解決しようとする課題】上述の如く、浮動小数
点数の加算を行う場合、指数を共通化するため、指数が
小さい方のオペランドの仮数を桁移動するためシフタに
よって右シフトする。
【0006】この右シフトは入力データをシフト数だけ
右側へビット位置をずらし、空いたビット位置を入力デ
ータの最上位ビットの値で補うことによって行う。両オ
ペランドの指数の差が大きく、シフト数がシフトされる
仮数データの存在ビット位置より大きいとシフトされる
側のデータは最下位桁より右側に行き、全てのビットが
0となるシフトアウトが生じる。
【0007】ところが、シフトされる側の仮数が2の補
数表現の負数の場合に、シフトアウトが生じると計算結
果に誤差が生じる。図6の計算例により、これを説明す
る。
【0008】図6の従来の加算例の図の(a)は入力
A、Bが両方とも正数の場合の加算例で、共通指数化の
ために入力Aの仮数を10桁シフトすると、仮数の符号
ビットの次のビットの“1”はシフトアウトして0とな
るので、加算結果は入力Bと同じ値になる。
【0009】図6(b)は、入力Bが図(a)と同じ
値、入力Aが図(a)と絶対値が同じで負数の場合の計
算例である。この場合も、本来は入力Aには(a)と同
様にシフトアウトが生じて、共通指数化後のオペランド
Aの仮数は0になる必要があるが、実際にはバレルシフ
タの性質上、何ビットシフトしても仮数部の全ビットが
1となり、負の最小値になったままである。従って、加
算結果はオペランドAから最小値を引いた数となり、加
算結果に誤差を生じるという問題が生ずる。
【0010】この演算誤差を除くためには、入力を絶対
値表現のまま右シフトを行ってから、2の補数表現に変
換して加算すれば良いが、この場合には入力データが絶
対値表現に限定され、また、バレルシフタと加算器との
間で絶対値表現→2の補数表現に変換する必要があり、
この変換時間分だけ演算時間に余分にかかってしまうと
う問題が生じる。
【0011】本発明は上記課題に鑑み創出されたもの
で、2の補数表現でかつシフトアウトする負の仮数を有
する浮動小数点数に対しても、演算時間を増加させずに
正しい加算結果が得られるようにすることを目的とす
る。
【0012】
【課題を解決するための手段】図1は、本発明の浮動小
数点数加算回路の原理構成図である。上記問題点は、図
1に示す如く、2の補数表現の仮数をもつ浮動小数点数
の加算回路であって、両オペランドの指数の大小を比較
して一方のオペランドの仮数に対する桁シフト数と共通
指数とを求める指数比較部1と、該桁シフト数と、該一
方のオペランドの仮数から仮数桁シフト時のシフトアウ
トの有無を検出するシフトアウト検出部2と、仮数桁シ
フト数だけ該一方の仮数に対して桁シフトを行うシフタ
3、4と、シフトアウト検出部2がシフトアウトを検出
したら、該一方のオペランドの桁シフト後の値を0とす
る仮数制御部5、6と、仮数制御部5、6の出力データ
を加算する加算器7と、を有し、共通指数化のために仮
数シフトを行う際にシフトアウトを検出した場合には、
シフトアウトが生じた仮数を0にしてから仮数加算を行
うようにしたことを特徴とする本発明の浮動小数点数加
算回路により解決される。
【0013】
【作用】オペランドの一方の仮数に桁シフトによってシ
フトアウトが生じた場合には、バレルシフタの出力の如
何にかかわらず、仮数制御部によって強制的に0とされ
たオペランドが加算器に入力する。従って、一方のオペ
ランドがシフトアウトが生じる負の仮数であっても、正
しい演算結果が得られる。また、絶対値表現→2の補数
表現の変換を加算器の前で行う必要がないので、加算回
路に2の補数表現のデータを直接入力することができる
ので、2の補数表現のデータを取り扱う演算装置に直接
適用することが可能となり、また変換時間分だけ演算時
間を短縮することができる。
【0014】
【実施例】以下添付図により本発明の実施例を説明す
る。図2は本発明の実施例の構成図、図3は本発明の実
施例による加算例を示す図である。
【0015】図2の加算回路は、2の補数で表現される
仮数を持つ16ビット幅の浮動小数点数であるオペランド
A,Bを加算して、同一フォーマットの加算結果Xを出
力するものである。オペランドおよび演算結果のデータ
フォーマットは、図4で前述したように上位5ビット
[15:11 ]が指数、下位11ビット[10:0]が2の補数表
現の仮数を表す。仮数の最上位ビット[10]は符号ビッ
トで、正数では“0”、負数では“1”の値をとる。
【0016】図2において、11は指数比較部、12はシフ
トアウト検出部、13はバレルシフタA、14はバレルシフ
タB、15、16は図1の仮数制御部に相当するANDゲー
ト、17は11ビット加算器である。
【0017】指数比較部11は、両オペランドの指数を比
較し、大きい方の指数を共通指数X[15:11 ]として出
力するとともに、小さい方の指数を持つオペランドのシ
フト数を出力する。
【0018】両シフタ13,14には、指数比較部からの指
数の差である6ビットのシフト数データが制御信号とし
て加えられ入力する仮数データをシフト数に応じて右シ
フトする。
【0019】シフトアウト検出部12は、両オペランドの
仮数の符号ビットを除く10ビットが入力しており、指数
比較部11からのシフト数データとシフト側の仮数の値と
を比較してシフト後の仮数データを0にする必要がある
シフトアウトが生じたかどうかを検出し、シフトアウト
が生じたら、そのオペランド側のANDゲートに制御信
号の“0”を出力する。
【0020】図6(b)と入力データと同一数値を用い
た図2の演算例により、各部の動作を説明する。指数比
較部11は、両オペランドの指数A[15:11 ]と指数B
[15:11 ]指数ビットを入力し、A[15:11 ]−B[1
5:11 ]の計算を行うことによって、指数の大小を判定
し、大きい方の指数を共通指数X[15:11 ]を出力す
る。この場合には、Aの指数が2、Bの指数が12なの
で、12の2進数データが共通指数X[15:11 ]として出
力する。また指数の差は−10なので、Aシフタ12に制御
信号としてシフト数10を出力し、Bシフタ13には0を出
力する。。指数の差が正の場合にBシフタにシフト数を
出力し、Aシフタ12には0を出力する。
【0021】Aシフタ13によって、オペランドAの仮数
が10ビット右側へ桁シフトされるが、オペランドAの
仮数は2の補数表現で負数であるため、Aシフタの出力
データは0にならずに全ビット“1”となる。
【0022】シフトアウト検出部12は、オペランドAの
仮数の下位ビットの“0”連続が9ビットであることか
らシフトアウトが起きないシフト数( シフト可能数) が
9であると認識し、このシフト可能数9と指数比較部11
からのシフト数10とを比べてシフトアウト検出信号の
“0”をA側のANDゲート15に出力し、桁シフトしな
いB側のANDゲート16には“1”を出力する。A側の
ANDゲート15はAシフタ13から入力するシフト後のデ
ータを全て“0”にして加算器17のA入力に、またB側
のANDゲート16は、Bシフタ14から入力するシフト無
しの仮数B[15:11 ]をそのまま通過させて加算器17の
B入力に、それぞれ供給する。
【0023】加算器17はA入力とB入力との加算を行
い、加算結果を仮数とし、共通指数が付加された演算結
果が加算回路の出力X[15:0]として出力される。以上
の如く、オペランドAの負の仮数の10ビット右シフト
で正しいシフトアウト結果が得られずAシフタ出力の全
ビットが“1”になっても、加算器17には正しいシフト
アウト結果である全ビット“0”のデータが入力するの
で、正しい演算結果が得られることがわかる。
【0024】
【発明の効果】以上説明した如く、本発明によれば、2
の補数表現による浮動小数点数加算回路において、共通
指数化のための仮数の右シフトによりシフトアウトが生
じた場合には、仮数を0にして加算するので、入力デー
タによらず常に正確な加算が行えるという効果がある。
【図面の簡単な説明】
【図1】 本発明の浮動小数点数加算回路の原理構成図
【図2】 本発明の実施例の構成図
【図3】 本発明の実施例による計算例を示す図
【図4】 入出力データフォーマット
【図5】 従来の2の補数表現浮動小数点数加算回路の
構成図
【図6】 従来の計算例を示す図
【符号の説明】
1,11…指数比較部、2,12…シフトアウト検出部、3,13…
Aシフタ、4,14…Bシフタ、5,6 …仮数制御部、15、16
…ANDゲート,7,17…加算器

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 2の補数表現の仮数をもつ浮動小数点数
    の加算回路であって、 両オペランドの指数の大小を比較して一方のオペランド
    の仮数に対する桁シフト数と共通指数とを求める指数比
    較部(1) と、 該桁シフト数と、該一方のオペランドの仮数から仮数桁
    シフト時のシフトアウトの有無を検出するシフトアウト
    検出部(2) と、 仮数桁シフト数だけ該一方の仮数に対して桁シフトを行
    うシフタ(3,4) と、 シフトアウト検出部がシフトアウトを検出したら、該一
    方のオペランドの桁シフト後の値を0とする仮数制御部
    (5,6) と、 仮数制御部(5、6)の出力データを加算する加算器(7)
    と、を有し、 共通指数化のために仮数シフトを行う際にシフトアウト
    を検出した場合には、シフトアウトが生じた仮数を0に
    してから仮数加算を行うようにしたことを特徴とする浮
    動小数点数加算回路。
JP18848192A 1992-07-16 1992-07-16 浮動小数点数加算回路 Withdrawn JPH0635670A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18848192A JPH0635670A (ja) 1992-07-16 1992-07-16 浮動小数点数加算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18848192A JPH0635670A (ja) 1992-07-16 1992-07-16 浮動小数点数加算回路

Publications (1)

Publication Number Publication Date
JPH0635670A true JPH0635670A (ja) 1994-02-10

Family

ID=16224491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18848192A Withdrawn JPH0635670A (ja) 1992-07-16 1992-07-16 浮動小数点数加算回路

Country Status (1)

Country Link
JP (1) JPH0635670A (ja)

Similar Documents

Publication Publication Date Title
EP0483864A2 (en) Hardware arrangement for floating-point addition and subtraction
US10019231B2 (en) Apparatus and method for fixed point to floating point conversion and negative power of two detector
EP0381403B1 (en) Pipelined floating point adder for digital computer
EP0359809B1 (en) Apparatus and method for floating point normalization prediction
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
JP4500358B2 (ja) 演算処理装置および演算処理方法
JP4388543B2 (ja) 3項入力の浮動小数点加減算器
US7401107B2 (en) Data processing apparatus and method for converting a fixed point number to a floating point number
US6571264B1 (en) Floating-point arithmetic device
KR102459011B1 (ko) 선두 제로 예측
JP2558669B2 (ja) 浮動小数点演算装置
US5513362A (en) Method of and apparatus for normalization of a floating point binary number
JPH0635670A (ja) 浮動小数点数加算回路
JPH1091396A (ja) 浮動小数点数検出装置および浮動小数点数検出回路
JPH0511980A (ja) 桁あふれ検出方式とその回路
JP2517064B2 (ja) 非正規化数の処理方式
JP2723707B2 (ja) 正規化回路
JP2801472B2 (ja) 浮動小数点演算装置
JPS63158626A (ja) 演算処理装置
JPH03217938A (ja) 浮動小数点丸め正規化装置
JPH05204606A (ja) 浮動小数点演算方式および装置
JPS5960637A (ja) 浮動小数点演算装置
JPH02115926A (ja) 浮動小数点正規化丸め装装置
JPH0323937B2 (ja)

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005