JPH05204606A - 浮動小数点演算方式および装置 - Google Patents

浮動小数点演算方式および装置

Info

Publication number
JPH05204606A
JPH05204606A JP4293917A JP29391792A JPH05204606A JP H05204606 A JPH05204606 A JP H05204606A JP 4293917 A JP4293917 A JP 4293917A JP 29391792 A JP29391792 A JP 29391792A JP H05204606 A JPH05204606 A JP H05204606A
Authority
JP
Japan
Prior art keywords
mantissa
input
output
exponent
adder
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
JP4293917A
Other languages
English (en)
Inventor
Fuyuki Okamoto
冬樹 岡本
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 JP4293917A priority Critical patent/JPH05204606A/ja
Publication of JPH05204606A publication Critical patent/JPH05204606A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 浮動小数点演算装置における処理の高速化を
図る。 【構成】 仮数部が絶対値表現である浮動小数点データ
の第1および第2の入力オペランドを入力して浮動小数
真加減算処理を行なうための浮動小数点演算装置を用た
浮動小数点演算方式において、第1および第2入力オペ
ランドの一方を2の補数表現の整数データとし(a) 、仮
数加算器を用いて整数データを絶対値化し(b) 、正規化
用シフタを用いて整数データのビット位置を調節し(c)
、指数部更新器およびビット位置デコーダを用いて指
数部の値を発生する(d) ことにより整数データを対応す
る浮動小数点データに変換する処理を実行することを特
徴とする浮動小数点演算方式

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は浮動小数点演算方式およ
び装置に関する。より詳細には、浮動小数点演算装置に
おいて、より高速なデータ処理ができる新規なデータ処
理方式とそれを実行するための装置の構成に関する。
【0002】
【従来の技術】図7は、以下の説明の対象となる浮動小
数点データのフォーマットと、整数データのフォーマッ
トとを示す図である。
【0003】図7(a) に示すように、ここで対象とする
浮動小数点データフォーマットは、1ビットの符号部S
と、16384 のバイアス値を含む15ビットの指数部eと、
絶対値正規化表現で示される48ビットの仮数部mとから
構成されている。即ち、ここで対象とする浮動小数点デ
ータの値は、下記のように表現することができる。
【0004】(−1)S ×2e-16384 ×m
【0005】また、図7(b) に示すように、ここで対象
とする整数データフォーマットは、形式上は64ビットの
データであるが、下位32ビットが符号付の2の補数表現
の2進数であり、上位の32ビットは不定とする。
【0006】図8は、浮動小数点演算装置の典型的な構
成を示す図である。
【0007】同図に示すように、浮動小数点演算装置と
しての浮動小数点加減算装置1は、入力オペランドOP
1、OP2を受ける比較選択器11および指数減算器18
と、比較選択器11および指数減算器18の出力を受ける右
バレルシフタ12と、右バレルシフタ12の出力を受ける反
転器13と、比較選択器11の出力および反転器13の出力を
受ける仮数加算器14と、加数加算器14の出力を受けるビ
ット位置デコーダ15と、仮数加算器14およびビット位置
デコーダ15の出力を受ける正規化用バレルシフタ17とか
ら主に構成されている。
【0008】ここで、比較選択器11は、図7で示したフ
ォーマットをもつ浮動小数点データを入力オペランドO
P1、OP2として入力され、このオペランドOP1、
OP2を比較して、小さい方のオペランドの仮数部MS
を右バレルシフタ12に、大きい方のオペランドの仮数部
MLは仮数加算器14に、それぞれ出力する。また、大き
い方のオペランドの指数部ELは、指数部更新器16の一
方の入力に対して出力される。
【0009】一方、指数減算器18は、入力されたオペラ
ンドOP1、OP2の指数部の減算を行ない、右バレル
シフタ12に対してシフト量としての指数差を出力する。
従って、右バレルシフタ12ではこの指数差に基づいて桁
合せが行われる。
【0010】反転器13は、加算実行時には入力値をその
まま出力し、減算実行時には入力値の1の補数を出力す
る。また、仮数加算器14は、大きい方のオペランドの仮
数部MLと反転器13の出力とを演算する。ここで、加算
命令実行時には両者の和を出力し、減算命令実行時には
両者の和に更に最下位ビットの重さを持った '1’を加
算し、反転器13の動作と合せて2の補数を用いた減算を
実行する。即ち、反転器13と仮数加算器14とによって加
減算器19が構成されている。
【0011】更に、ビット位置デコーダ15は、仮数加算
器14の出力データを検索して最上位の '1’のビットの
位置、即ち、最上位の '1’のビットがMSBから下位
に数えて何番目の位置かを検出する。この検出値に基づ
いて、正規化用バレルシフタ17は正規化のためのシフト
を行なう。即ち、ビット位置デコーダ15の検出値に基づ
いて最上位ビットが '1’になるまで仮数加算器14の出
力データをシフトし、仮数部を〔1.XXXX〕という形にす
る。このとき、加算実行時には桁あふれの補正のために
1ビット右シフトし、減算実行時には左バレルシフトが
必要となる。
【0012】また、これらの処理に並行して、指数部更
新器16は指数部の更新を行なう。即ち、指数部更新器16
には、比較選択器11から大きい方のオペランドの指数部
ELが入力されており、これに対して正規化用バレルシ
フタ17が実行した左シフト量分を減算する処理が行われ
る。
【0013】以上のような一連の処理により浮動小数点
加減算が実行され、結果データRが出力される。このよ
うな浮動小数点加減算方式および装置については「コン
ピュータの高速演算方式(近代科学社/ワン著)」に詳
しい。
【0014】尚、上述のような従来の浮動小数点加減算
装置は、固定小数点加減算処理にも流用することができ
る。このような場合、加減算器19で固定小数点加減算を
実行し、その他の構成要素ではデータを処理せずにその
まま通過するように制御すれば良い。
【発明が解決しようとする課題】
【0015】従来の浮動小数点加減算方式および装置で
は、大小比較と指数減算、桁合わせ右バレルシフ
ト、仮数加減算、正規化バレルシフトという4つの
処理を順次実行する必要がある上、この一連の処理のう
ちで2回のバレルシフトを行うので遅延時間が長くなる
という欠点がある。また、従来の浮動小数点演算装置は
加減算器を1個しか備えていないので、固定小数点演算
の実行速度が遅いという欠点があった。
【0016】更に、一般に、コンピュータシステムで
は、浮動小数点データだけではなく整数データも扱われ
る。従って、整数データを浮動小数点データに変換する
データ変換命令を実行する必要が生じる場合がある。こ
のような場合、従来の方式では浮動小数点演算を処理す
るためのハードウェアはそれ専用に使用されており、素
子数のオーバヘッドを抑制するために、データ変換のた
めに使用できるハードウェアをコンピュータシステムに
内蔵させることはなかった。従って、データ変換が必要
な場合は、別途用意された整数用演算器やシフト回路を
マイクロプログラムで制御して処理しており、このため
にデータ変換命令の実行を高速化できないという問題が
あった。
【0017】そこで、本発明は、上記従来技術の問題点
を解決し、徒にハードウェア規模を拡大することなく、
演算処理を高速に行うことができる新規なデータ処理方
式とそれを実行する装置を提供することをその目的とし
ている。
【課題を解決するための手段】本発明に従うと、仮数部
が絶対値表現である浮動小数点データの第1および第2
の入力オペランドを入力して浮動小数真加減算処理を行
なうための、仮数加算器、正規化用シフタ、指数部更新
器およびビット位置デコーダを備える浮動小数点加減算
装置を用た浮動小数点演算方式において、該第1および
第2入力オペランドの一方を2の補数表現の整数データ
とし、該仮数加算器を用いて該整数データを絶対値化
し、該正規化用シフタを用いて該整数データのビット位
置を調節し、該指数部更新器および該ビット位置デコー
ダを用いて指数部の値を発生することにより、該整数デ
ータを対応する浮動小数点データに変換する処理を実行
することを特徴とする浮動小数点演算方式が提供され
る。
【0018】また、上記本発明に係る演算方式を実行す
るための装置として、本発明により前記第1および第2
の入力オペランドを入力される第1および第2の入力部
を有し、該第1および第2の入力オペランドの大小を比
較し、該第1および第2の入力オペランドの大きい方の
仮数部を第1の仮数部とし、小さい方のオペランドの仮
数部を第2の仮数部とし、大きい方のオペランドの指数
部を第1の指数部としてそれぞれ出力する比較選択器
と、該第1および第2の指数部の減算を行ない該指数部
の差である指数差を出力する指数減算器と、該第2の仮
数部を入力され、該指数差をシフト量として桁合せのた
めの右シフトを行なう右シフタと、該右シフタの出力を
入力され、加算実行時には入力値をそのまま出力し、減
算実行時には該入力値の1の補数を出力する反転器と、
該反転器の出力と該第1の仮数部とを入力され、加算実
行時には該反転器の出力と該第1の仮数部との和を出力
し、減算実行時には該和にさらに最下位ビットの重さを
持つ '1’を加算した値を出力する仮数加算器とを含む
加減算器と、該仮数加算器の出力における最上位の '
1’のビットの位置を検出するビット位置デコーダと、
該ビット位置デコーダの出力値に基づき正規化のため該
仮数加算器の出力のシフトを行なう正規化用シフタと、
該第1の指数部を入力され、該ビット位置デコーダの出
力値に基づき該指数部の更新を行なう指数部更新器とを
備えた浮動小数点加減算装置と;該第1および第2の入
力部の一方に入力する整数データを入力され、該整数デ
ータの符号ビットを拡張して該入力部の一方に出力する
拡張器と;該第1および第2の入力部の他方に挿入さ
れ、全ビットが0であるデータと入力オペランドとのい
ずれか一方を選択的に出力する第1の選択器と;該指数
部更新器の入力部に挿入され、該第1の指数部とこの指
数部のバイアス値から決定される定数値とのいずれか一
方を選択的に出力する第2の選択器とを備え;該第1選
択器、第2選択器、拡張器、比較選択器および右シフタ
の受ける制御信号により、該拡張器の出力を該右シフタ
の入力とし、該第1の選択器の出力を該仮数加算器の入
力とし、該右シフタはシフトを行なわずに入力値をその
まま出力し、該拡張器の出力の符号ビットの値により該
反転器が制御されて該整数データの符号に対応して入力
値と入力値の1の補数とのいずれか一方を出力すること
ができるように構成されていることを特徴とする浮動小
数点演算装置が提供される。
【0019】更に、本発明により、仮数部と指数部とを
含む浮動小数点データの第1および第2の入力オペラン
ドに対して:該1対の入力オペランドの大小比較処理と
指数部の差を求める演算処理とを実行し;該指数の差が
1以下で且つ実行すべき処理が真の減算処理の場合に
は、まず該1対の入力オペランドのうち小さい方の入力
オペランドの仮数部に対してシフト量が0または1の桁
合わせ右シフトを行い、次いで仮数減算処理を行い、更
に該仮数減算処理結果に対して正規化バレルシフトを行
う第1の処理フローと;該指数の差が2以上か、また
は、実行すべき処理が真の加算処理の場合には、まず該
1対の入力オペランドのうち小さい方の桁合わせ右バレ
ルシフトを行い、次いで仮数加減算処理を行い、更にシ
フト量が1以下の正規化シフトを行う第2の処理フロー
と;の2つの処理フローを選択的に実行する処理を含む
ことを特徴とする浮動小数点演算方式が提供される。
【0020】また更に、上記本発明に係る演算方式を実
行するための装置として、本発明により、前記第1およ
び第2の入力オペランドを入力される第1および第2の
入力部を有し、該第1および第2の入力オペランドの大
小を比較し、該第1および第2の入力オペランドの大き
い方の仮数部を第1の仮数部とし、小さい方のオペラン
ドの仮数部を第2の仮数部とし、大きい方のオペランド
の指数部を第1の指数部としてそれぞれ出力する比較選
択器と、該2つの入力オペランドの指数の差を計算する
指数減算器と、該指数減算器の出力値をシフト量とし
て、該第2の仮数部を右シフトする右バレルシフタと、
該右バレルシフタ出力と該第1の仮数部とを入力される
第1の加減算器と、該第1の加減算器の出力を右方向ま
たは左方向に1ビットシフトする双方向シフタと、該第
2の仮数部を1ビット右シフトする第2の右シフタと、
該第2の右シフタ出力と該第1の仮数部とを入力される
第2の加減算器と、該第2の加減算器の出力を入力とす
るビット位置デコーダと、該ビット位置デコーダの出力
値をシフト量として該第2の加減算器の出力をシフトす
る正規化用バレルシフタと、該双方向シフタと該正規化
用バレルシフタの出力とを入力される第1の選択回路
と、該第1の指数部を、該正規化用バレルシフタにおけ
るシフト量に応じて更新する指数部更新器とを備えるこ
とを特徴とする浮動小数点演算装置が提供される。
【0021】
【作用】本発明の第1の特徴によると、従来は、浮動小
数点加減算処理に専ら使用されていた浮動小数点演算装
置を、整数データから浮動小数点データへの変換にも使
用できるようになる。
【0022】また、本発明の他の特徴によると、従来の
浮動小数点演算では不可避に2回実行しなければならな
かったバレルシフトの実行回数を低減することができ、
演算の実行速度を向上させることができる。
【0023】更に、本発明の第3の特徴によると、浮動
小数点演算装置において固定小数点演算を実行した場合
の実行速度を向上させることができる。
【0024】即ち、本発明の一態様に従うと、本発明に
係る浮動小数点演算装置は、入力の一方に挿入された第
1選択回路、他方の入力に挿入された拡張器および指数
部更新器の前に挿入された第2選択器の僅かな要素の付
加により、従来の浮動小数点演算装置では実行すること
のできなかった整数データから浮動小数点データへの変
換処理を実行することができる。
【0025】これは、具体的に後述するように、2の補
数表現である整数データを仮数部が絶対値表現である浮
動小数点データに変換する処理を、上記付加的な要素を
備えた浮動小数点演算装置が、本発明による方式に従っ
て制御されることで実行される。
【0026】また、本発明の他の態様に従うと、本発明
に係る浮動小数点加減算方式および装置は、入力オペラ
ンドの大小比較と指数減算の後に所定の条件に従って処
理フローが分岐し、それぞれが最適化された処理を受け
る。
【0027】即ち、両オペランドの指数の差が1以下で
かつ真の減算処理を実行するときには、1ビット以下の
桁合わせ右シフトと、仮数加減算と、正規化のための左
バレルシフト処理を順次行う。また、それ以外の場合、
即ち、両オペランドの指数の差が2以上かまたは真の加
算処理を実行する場合には、仮数の桁合わせ右バレルシ
フトと、仮数加減算と、正規化のための1ビット以下の
シフト処理が順次実行される。これらの処理は、いずれ
も従来の処理方式よりもバレルシフト処理が1回少な
い。従って、浮動小数点演算装置におてる遅延時間を短
縮することができる。
【0028】更に、本発明の更に他の態様に従うと、こ
の浮動小数点演算装置は、具体的に後述するように、上
記2種の処理フローを実行するために仮数加減算器を1
対備えており、固定小数点演算装置として用いるときに
はこの1対の仮数加減算器を並列動作させることで従来
の2倍のスループットを得ることができる。
【0029】以下、実施例を挙げて本発明をより具体的
に説明するが、以下の開示は本発明の一実施例に過ぎ
ず、本発明の技術的範囲を何ら限定するものではない。
【0030】
【実施例】尚、以下の説明において、浮動小数点データ
および整数データの各フォーマットは、従来例の説明と
同様に、図7に示した構成であるものとする。
【0031】〔実施例1〕図1は、本発明に係る浮動小
数点演算方式におけるデータ処理を順次説明するための
図である。
【0032】本発明に係る方式においては、まず、図1
(a) に示すように、入力した32ビットデータの2の補数
表現の整数を、その符号ビットを拡張することにより64
ビット表現とする。
【0033】次に、図1(b) に示すように、その整数が
負の値であれば、反転器により1の補数を求め、さらに
仮数加算器によりLSBの重みを持つ '1’を加算する
ことにより絶対値表現とする。
【0034】続いて、図1(c) に示すように、浮動小数
点データフォーマットで定められた小数点位置から最上
位の '1’のビットまでのビット数をビット位置検出器
により検出する。
【0035】最後に、図1(d) に示すように、正規化シ
フトを行なって仮数部の計算を終了する。
【0036】尚、指数部は、正規化のために必要であっ
たシフト数を16432から減じることにより計算でき
る。この16432という値は、指数部のバイアス値1
6384に仮数部のビット長48を加えることにより求
められた定数である。なお、符号は、整数データでも浮
動小数点データでも当然同一である。
【0037】図2は本発明に係る浮動小数点演算方式を
実行することができる演算装置の具体的な構成例を示す
図である。
【0038】同図に示すように、本実施例の浮動小数点
演算装置は、図8に示した従来の浮動小数点加減算装置
1に対して、比較選択器11の1対の入力の一方に挿入し
た拡張器2と、比較選択器11の他方の入力に挿入した選
択器3と、指数部更新器16の入力側に挿入した選択器4
とを付加した構成となっている。
【0039】以上のように構成された装置において浮動
小数点演算を行うとき、拡張器2は入力オペランドOP
1をそのまま出力する。また、選択器3は入力オペラン
ドOP2を出力し、選択器4は比較選択器11からの入力
を出力する。従って、この場合は、図8に示した従来の
浮動小数点演算装置と同じ処理を行うので、冗長となら
ないように詳細な説明は省略する。
【0040】次に、図2に示した装置において、入力さ
れた整数データを浮動小数点データに変換する場合の動
作について説明する。
【0041】整数データは、入力オペランドOP1とし
て入力され、制御信号Cに制御された拡張器2において
図1(a) に示したように符号拡張される。またこのと
き、選択器3も、制御信号Cの制御に従って全ビットが
'0’のデータを出力する。
【0042】比較選択器11は、制御信号Cの制御に従っ
て、整数データを右シフタ12に、全ビットが '0’のデ
ータを仮数加算器14にそれぞれ送出する。また、右シフ
タ12は、制御信号Cの制御に従って、シフト演算をせず
に入力データをそのまま反転器13に出力する。
【0043】ここで、反転器13は、2の補数表現である
整数データを絶対値表現に変換する機能を果たす。即
ち、整数データの第32ビット目にあたる符号ビットの値
Sに応じて、入力データが負の場合にはデータの各ビッ
トを反転し、1の補数データを出力する。
【0044】仮数加算器14は、比較選択器11から全ビッ
トが '0’のデータと、反転器13から整数データあるい
はその1の補数データとを入力され両者を加算した値を
出力する。但し、入力整数データが負である場合には、
LSBの重さを持った '1’を更に加算した値を出力す
る。こうして、2の補数表現が絶対値表現に変換され
る。
【0045】ビット位置デコーダ15と正規化用シフタ17
は、浮動小数点加減算命令の実行であるかデータ変換命
令の実行であるかの如何にかかわらず、入力されたデー
タの最上位の '1’のビットの位置を検出し、出力デー
タの最上位のビットが '1’になるまで入力データをシ
フトする。
【0046】一方、選択器4は、制御信号Cの制御によ
り値 "16432" を出力する。従って、指数部更新器
16は、値 "16432" からビット位置デコーダ15の
出力値を減じた値を出力する。即ち、MSBを基準に右
に数えた最上位の '1’のビットの位置を値 "1643
2" から減じた値は、整数データから変換された浮動小
数点データの指数部に相当する。尚、整数データの符号
が浮動小数点データの符号と一致することは言うまでも
ない。
【0047】以上のような一連の処理により、入力され
た整数データは、浮動小数点データとして出力される。
【0048】〔実施例2〕まず、従来の浮動小数点加減
算方式および装置における正規化処理について考える。
即ち、浮動小数点演算において正規化のために必要な仮
数部のバレルシフト処理で、必要なシフト量は殆どの場
合1ビットであり、以下に示す2つの場合においてのみ
2ビット以上のシフトが必要となる可能性がある。
【0049】2ビット以上のシフト量が必要になり得る
第1の場合は、処理内容が "真の減算" であり、且つ、
入力された両オペランドの指数が同じときである。この
ような演算の具体例を図3に示す。
【0050】尚、上述の "真の減算/真の加算" とは、
以下のようなことを意味している。即ち、演算の命令の
種類が“加算せよ”であっても、入力オペランドの符号
S 、YS の関係で実際は減算をしなければならないこ
とがある。便宜上10進数で例示すると、〔+5〕と〔−
6〕との“加算”は〔(+5)+(−6)=5−6〕で
あって、実際には減算である。また例えば〔+5〕と
〔−6〕との“減算”は〔(+5)−(−6)=5+
6〕であって実際には加算である。これら2例のうち、
前者を“真の減算”、後者を“真の加算”と呼び、単純
な命令の種類“加算せよ”、“減算せよ”とは区別して
用いている。
【0051】2ビット以上のシフト量が必要になり得る
第2の場合は、処理内容が“真の減算”であり、且つ、
両オペランドの指数の差が1であるときである。このよ
うな演算の具体例を図4に示す。
【0052】上記した2つの場合以外は、仮数部正規化
のためのシフト量は1以下でよい。すなわち、真の加算
処理の場合は、仮数の加算結果は20 桁からの桁上げに
よって21 の桁に1が立って〔1X.XXX・・・〕という数
になるか、あるいは、桁上げが生じずに〔1.XXXX・・
・〕という数になるかのいずれかであって、正規化のた
めには前者の場合に1ビットの右シフトが必要となるだ
けである。
【0053】また、真の減算処理であり且つ両オペラン
ドの指数の差が2以上の場合は、仮数の減算は〔(1.XX
XX・・・)−(0.0 ・・01XX・・・)〕という計算であ
り、その演算結果は〔1.XXXX・・・〕という数かまたは
〔0.XXXX・・・〕という数になるかのいずれかになるか
らである。従って、この正規化のためには、1ビット以
下の左シフトが必要なだけである。
【0054】以上の説明から明らかなように、浮動小数
点加減算処理は、2種類の処理フローに大別することが
できる。いま、それらを仮に処理フローAと処理フロー
Bとする。
【0055】処理フローAは、正規化のために仮数の2
ビット以上の左バレルシフトが行われる可能性がある処
理に対するものであり、これは、真の減算でありかつ両
オペランドの指数の差が0または1である場合である。
この場合、仮数の減算前に行う桁合わせのためのシフト
量は1ビット以下である。一方、処理Bは、正規化のた
めの仮数のシフト量は、右または左方向へ1ビット以下
である。これは真の加算か、または、真の減算で両オペ
ランドの指数の差が2以上の場合である。
【0056】図5は、本発明に係る浮動小数点加減算方
式におけるデータ処理のフローを示す図である。
【0057】同図に示すように、本発明に係る浮動小数
点加減算方式では、まず、大小比較と指数の減算101 を
行った後、処理102 により、指数の差が1以下でかつ真
の減算処理の場合は処理フローAへ、指数の差が2以上
か、または真の加算処理の場合には処理フローBへ処理
が分岐する。
【0058】処理フローAへ分岐した場合は、シフト量
が1以下の桁合わせ右シフト103 、仮数減算104 および
正規化バレルシフト105 を順次実行する。また、処理フ
ローBへ分岐した場合は、桁合わせ右バレルシフト106
、仮数加減算処理107 およびシフト量が1以下の正規
化シフト108 を順次実行する。
【0059】以上のような処理において、処理フローA
における桁合わせ右シフト103 と、処理フローBにおけ
る正規化シフト108 は何れもシフト量が1以下なので処
理時間は少ない。したがって、処理フローA、B共に、
その処理時間は仮数加減算と1回のバレルシフト処理に
要する時間で概ね決定される。即ち、このような処理方
式によれば、従来の浮動小数点加減算方式のように2回
のバレルシフトを行う必要がないので高速な処理が実現
できる。
【0060】図6は、上述のような本発明に係る浮動小
数点加減算方式を実行することができる装置の具体的な
構成例を示す図である。
【0061】この浮動小数点演算装置は、浮動小数点デ
ータに対する1対の入力オペランド251 、252 と、固定
小数点データ256 、257 に対応した1対の入力とを備え
ている。入力オペランド251 、252 は、比較選択器201
および指数減算器202 に入力されている。比較選択器20
1 の出力254 、253 は、1対の固定小数点データ257、2
56 と共に第2および第3の選択器212 、213 に入力さ
れている。また、出力253 は第1の加減算器204 の一方
の入力に、出力254 は右バレルシフタ203 を介して加減
算器204 の他方の入力にそれぞれ入力されている。更
に、第1の加減算器204 の出力は、双方向シフタ210 を
介して第1選択器の一方の入力に接続されている。尚、
右バレルシフタ203 は、指数減算器202 の出力も受けて
いる。
【0062】比較選択器201 の出力254 を受ける第2選
択器212 の出力は、第2の右シフタ208 を介して第2の
加減算器209 の一方の入力に接続されている。ここで、
第2の右シフタ208 は、指数減算器202 の出力を受けて
いる。一方、比較選択器201の出力253 を受ける第3の
選択器213 の出力は第2の加減算器209 の他方の入力に
直接接続されている。第2の加減算器209 の出力は、ビ
ット位置デコーダ206および正規化用バレルシフタ205
にそれぞれ入力されており、ビット位置デコーダ206 の
出力は正規化用バレルシフタ205 に、正規化用バレルシ
フタ205 の出力は第1の選択器211 の他方の入力にそれ
ぞれ接続されている。更に、比較選択器201 の出力255
を受ける指数部更新器207 は、その出力を第1の選択器
211 の出力と共通に接続されている。
【0063】以上のように構成された浮動小数点演算装
置の動作について、まず、浮動小数点演算の実行処理に
ついて説明する。
【0064】まず、2つの入力オペランド251 、252 の
指数部の差が指数減算器202 によって計算される。また
比較選択回路201 が入力オペランド251 、252 の大小を
比較する。この比較結果に基づき、大きい方の入力オペ
ランドの仮数部253 が第3の選択回路213 および第1の
加減算器204 に出力される。また、小さい方の入力オペ
ランドの仮数部254 は、第2の選択回路212 および右バ
レルシフタ203 に出力される。浮動小数点演算を行う場
合は、第2の選択回路212 は小さい方の入力オペランド
の仮数部254 を選択的に出力し、また第3の選択回路21
3 は大きい方の入力オペランドの仮数部253 を選択的に
出力する。
【0065】以降の処理では、真の減算でかつ指数の差
が1以下の場合の処理フローAと、そうでない場合の処
理フローBとについて個別に説明する。
【0066】まず処理フローAの場合の動作について説
明する。指数減算器202 によって計算された指数の差が
1ならば、第2の右シフタ208 は第2の選択回路212 の
出力、即ち小さい方の入力オペランドの仮数部254 を1
ビット右にシフトして桁合わせをする。また指数の差が
0ならばシフト量は0であり、第2の右シフタ208 はデ
ータをそのまま通過させる。第2の加減算器209 は第3
の選択回路213 の出力(大きい方の入力オペランドの仮
数部253 )、および第2の右シフタ208 の出力を減算す
る。正規化用バレルシフタ205 は正規化のために第2の
加減算器209 の出力をシフトする。シフト量はビット位
置デコーダ206 の出力値である。
【0067】次に処理フローBについて説明する。指数
減算器202 の計算結果をシフト量として、小さい方の入
力オペランドの仮数部254 を桁合わせのために右バレル
シフタ203 が右バレルシフトする。次に第1の加減算器
204 が大きい方の入力オペランドの仮数部253 と右バレ
ルシフタ203 の出力とを加算または減算する。処理フロ
ーBでは正規化のためのシフトは右または左方向の1ビ
ット以下のシフトでよい。即ち真の加算処理で21 桁へ
の桁上げが生じて第1の加減算器205 の答えが〔1.XXXX
・・・〕という形になった場合は1ビット右シフトして
正規化し、真の減算処理で20 桁からの桁借りが生じて
第1の加減算器204 の答えが〔0.1XXX・・・〕という形
になった場合は1ビット左シフトして正規化する。この
ような正規化シフト処理は双方向シフタ210 が実行す
る。
【0068】これら処理フローAまたはBの処理結果に
対して、指数の差が1以下でかつ真の減算処理の場合は
正規化用バレルシフタ205 の出力が、指数の差が2以上
かまたは真の加算処理の場合は双方向シフタ210 出力
が、第1の選択回路211 によって選択的に出力される。
また、指数部更新器207 は、大きい方の入力オペランド
の指数部255 を比較選択回路201 より受取り、処理フロ
ーAまたはBで実行された正規化シフト処理のシフト量
を加減算することで指数の更新を行う。こうした一連の
処理により浮動小数点加減算処理が終了する。
【0069】次に固定小数点加減算の処理について述べ
る。
【0070】第1および第2の固定小数点データ256 、
257 の 固定小数点加減算は、第1の加減算器204 と第
2の加減算器209 とで実行することができる。即ち、第
2の選択回路212 は所定形式の第1の固定小数点データ
256 を第2の右シフタ208 に出力し、第3の選択回路2
13は所定形式の第2の固定小数点データ257 を第2の
加減算器209 に出力する。ここで、第2の右シフタ208
は入力データをそのまま通過させる。従って、第2の加
減算器209 は2つの固定小数点データ256 、257 を受け
て固定小数点加減算処理を実行する。更に、第2の加減
算器209 の出力は正規化用バレルシフタ205 を通過して
そのまま出力される。
【0071】また、第1の加減算器204 で固定小数点加
減算を実行することも可能である。この場合、入力オペ
ランド251 、252 を固定小数点データとし、比較選択回
路201 と右バレルシフタ203 は入力をそのまま通過させ
るように制御する。従って、第1の加減算器204 は、固
定小数点データである入力オペランド251 、252 を受け
取って固定小数点加減算処理を実行する。更に、双方向
シフタ210 は第1の加減算器204 の出力をそのまま出力
し、第1の選択回路211 は双方向シフタ210 の出力を選
択的に出力する。
【0072】このような動作ができる本発明に係る浮動
小数点演算装置は、仮数部の加減算処理に2個の加減算
器209 、204 を同時に使用できるので、固定小数点加減
算処理時にはこれらを並列動作させることで、従来の2
倍のスループットを得ることができる。
【0073】
【発明の効果】以上説明したように、本発明に係る浮動
小数点演算方式によれば、従来の浮動小数点演算装置に
対して、僅かに拡張器と2つの選択器を追加するだけで
整数データから浮動小数点データへのデータ変換命令を
実行することが可能になる。従来、この命令はコンピュ
ータシステム外で処理されていたので、処理を高速化す
ることができなかったが、本発明によれば、この変換命
令を内部で実行できるようになるので、コンピュータシ
ステムの高速化に効果的である。
【0074】また、本発明の他の態様によれば、両オペ
ランドの指数の差の値、および演算が真の加算か減算か
に応じて、適切な処理フローを選択して処理を実行する
ので、処理時間の低減の妨げとなっていたバレルシフト
処理の回数を減らすことができ、遅延時間を短縮するこ
とができる。
【0075】更に、本発明の浮動小数点装置を固定小数
点演算装置として用いるときは、上記A,Bのフローを
処理するために装備された2個の仮数加減算器を並列動
作させることで、従来の2倍のスループットを得ること
ができる。
【図面の簡単な説明】
【図1】本発明に従う、整数データと浮動小数点データ
との変換処理を順次説明するための図である。
【図2】本発明に係る浮動小数点演算装置の具体的な構
成例を示す図である。
【図3】本発明に係る浮動小数点加減算方式の処理過程
を説明するための図である。
【図4】浮動小数点加減算処理において、仮数部の2ビ
ット以上の左シフトが必要になる場合の一例を示す図で
ある。
【図5】浮動小数点加減算処理において、仮数部の減算
結果を正規化する際に仮数部の2ビット以上の左シフト
が必要となる場合の一例を示す図である。
【図6】本発明に係る浮動小数点演算装置の具体的な構
成例を示す図である。
【図7】本明細書で取り扱う浮動小数点データと整数デ
ータとのデータフォーマットの構成を示す図である。
【図8】従来の浮動小数点演算装置の典型的な構成を示
す図である。
【符号の説明】
1 浮動小数点加減算装置、 2 拡張器、 3、4 選択器、 11、201 比較
選択器、 12、203 右バレルシフタ、 13 反転器、 14 仮数加算器、 15、206 ビッ
ト位置デコーダ、 16、207 指数部更新器、 17、205 正規
化用バレルシフタ、 18、202 指数減算器、 19 加減算器 204 第1の加減算器 208 第2の右
シフタ 209 第2の加減算器 210 双方向シ
フタ 211 第1の選択回路 212 第2の選
択回路 213 第3の選択回路

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】仮数部が絶対値表現である浮動小数点デー
    タの第1および第2の入力オペランドを入力して浮動小
    数真加減算処理を行なうための、仮数加算器、正規化用
    シフタ、指数部更新器およびビット位置デコーダを備え
    る浮動小数点加減算装置を用た浮動小数点演算方式にお
    いて、 該第1および第2入力オペランドの一方を2の補数表現
    の整数データとし、該仮数加算器を用いて該整数データ
    を絶対値化し、該正規化用シフタを用いて該整数データ
    のビット位置を調節し、該指数部更新器および該ビット
    位置デコーダを用いて指数部の値を発生することによ
    り、該整数データを対応する浮動小数点データに変換す
    る処理を実行することを特徴とする浮動小数点演算方
    式。
  2. 【請求項2】請求項1に記載された浮動小数点演算方式
    を実行する浮動小数点演算装置であって:前記第1およ
    び第2の入力オペランドを入力される第1および第2の
    入力部を有し、該第1および第2の入力オペランドの大
    小を比較し、該第1および第2の入力オペランドの大き
    い方の仮数部を第1の仮数部とし、小さい方のオペラン
    ドの仮数部を第2の仮数部とし、大きい方のオペランド
    の指数部を第1の指数部としてそれぞれ出力する比較選
    択器と、 該第1および第2の指数部の減算を行ない該指数部の差
    である指数差を出力する指数減算器と、 該第2の仮数部を入力され、該指数差をシフト量として
    桁合せのための右シフトを行なう右シフタと、 該右シフタの出力を入力され、加算実行時には入力値を
    そのまま出力し、減算実行時には該入力値の1の補数を
    出力する反転器と、 該反転器の出力と該第1の仮数部とを入力され、加算実
    行時には該反転器の出力と該第1の仮数部との和を出力
    し、減算実行時には該和にさらに最下位ビットの重さを
    持つ '1’を加算した値を出力する仮数加算器とを含む
    加減算器と、 該仮数加算器の出力における最上位の '1’のビットの
    位置を検出するビット位置デコーダと、 該ビット位置デコーダの出力値に基づき正規化のため該
    仮数加算器の出力のシフトを行なう正規化用シフタと、 該第1の指数部を入力され、該ビット位置デコーダの出
    力値に基づき該指数部の更新を行なう指数部更新器とを
    備えた浮動小数点加減算装置と;該第1および第2の入
    力部の一方に入力する整数データを入力され、該整数デ
    ータの符号ビットを拡張して該入力部の一方に出力する
    拡張器と;該第1および第2の入力部の他方に挿入さ
    れ、全ビットが0であるデータと入力オペランドとのい
    ずれか一方を選択的に出力する第1の選択器と;該指数
    部更新器の入力部に挿入され、該第1の指数部とこの指
    数部のバイアス値から決定される定数値とのいずれか一
    方を選択的に出力する第2の選択器とを備え;該第1選
    択器、第2選択器、拡張器、比較選択器および右シフタ
    の受ける制御信号により、該拡張器の出力を該右シフタ
    の入力とし、該第1の選択器の出力を該仮数加算器の入
    力とし、該右シフタはシフトを行なわずに入力値をその
    まま出力し、該拡張器の出力の符号ビットの値により該
    反転器が制御されて該整数データの符号に対応して入力
    値と入力値の1の補数とのいずれか一方を出力すること
    ができるように構成されていることを特徴とする浮動小
    数点演算装置。
  3. 【請求項3】仮数部と指数部とを含む浮動小数点データ
    の第1および第2の入力オペランドに対して:該1対の
    入力オペランドの大小比較処理と指数部の差を求める演
    算処理とを実行し;該指数の差が1以下で且つ実行すべ
    き処理が真の減算処理の場合には、まず該1対の入力オ
    ペランドのうち小さい方の入力オペランドの仮数部に対
    してシフト量が0または1の桁合わせ右シフトを行い、
    次いで仮数減算処理を行い、更に該仮数減算処理結果に
    対して正規化バレルシフトを行う第1の処理フローと;
    該指数の差が2以上か、または、実行すべき処理が真の
    加算処理の場合には、まず該1対の入力オペランドのう
    ち小さい方の桁合わせ右バレルシフトを行い、次いで仮
    数加減算処理を行い、更にシフト量が1以下の正規化シ
    フトを行う第2の処理フローと;の2つの処理フローを
    選択的に実行する処理を含むことを特徴とする浮動小数
    点演算方式。
  4. 【請求項4】請求項3に記載された浮動小数点演算方式
    を実行する装置であって:前記第1および第2の入力オ
    ペランドを入力される第1および第2の入力部を有し、
    該第1および第2の入力オペランドの大小を比較し、該
    第1および第2の入力オペランドの大きい方の仮数部を
    第1の仮数部とし、小さい方のオペランドの仮数部を第
    2の仮数部とし、大きい方のオペランドの指数部を第1
    の指数部としてそれぞれ出力する比較選択器と、 該2つの入力オペランドの指数の差を計算する指数減算
    器と、 該指数減算器の出力値をシフト量として、該第2の仮数
    部を右シフトする右バレルシフタと、 該右バレルシフタ出力と該第1の仮数部とを入力される
    第1の加減算器と、 該第1の加減算器の出力を右方向または左方向に1ビッ
    トシフトする双方向シフタと、 該第2の仮数部を1ビット右シフトする第2の右シフタ
    と、 該第2の右シフタ出力と該第1の仮数部とを入力される
    第2の加減算器と、 該第2の加減算器の出力を入力とするビット位置デコー
    ダと、 該ビット位置デコーダの出力値をシフト量として該第2
    の加減算器の出力をシフトする正規化用バレルシフタ
    と、 該双方向シフタと該正規化用バレルシフタの出力とを入
    力される第1の選択回路と、 該第1の指数部を、該正規化用バレルシフタにおけるシ
    フト量に応じて更新する指数部更新器とを備えることを
    特徴とする浮動小数点演算装置。
  5. 【請求項5】請求項4に記載された浮動小数点演算装置
    において、 所定形式の第1の固定小数点データと、前記第2の仮数
    部とを入力され、前記第2の右シフタに対して、該入力
    の何れか一方を選択的に出力する第2の選択回路と、 所定形式の第2の固定小数点データと、前記第1の仮数
    部とを入力され、前記第2の加減算器に対して、該入力
    の一方を選択的に出力する第3の選択回路とを具備する
    ことを特徴とする浮動小数点演算装置。
JP4293917A 1991-10-07 1992-10-07 浮動小数点演算方式および装置 Pending JPH05204606A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4293917A JPH05204606A (ja) 1991-10-07 1992-10-07 浮動小数点演算方式および装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP25899091 1991-10-07
JP3-258990 1991-10-07
JP4293917A JPH05204606A (ja) 1991-10-07 1992-10-07 浮動小数点演算方式および装置

Publications (1)

Publication Number Publication Date
JPH05204606A true JPH05204606A (ja) 1993-08-13

Family

ID=26543916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4293917A Pending JPH05204606A (ja) 1991-10-07 1992-10-07 浮動小数点演算方式および装置

Country Status (1)

Country Link
JP (1) JPH05204606A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367190C (zh) * 2004-10-27 2008-02-06 威盛电子股份有限公司 二补数电路
JP2016095600A (ja) * 2014-11-13 2016-05-26 カシオ計算機株式会社 電子機器およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367190C (zh) * 2004-10-27 2008-02-06 威盛电子股份有限公司 二补数电路
JP2016095600A (ja) * 2014-11-13 2016-05-26 カシオ計算機株式会社 電子機器およびプログラム

Similar Documents

Publication Publication Date Title
US4999803A (en) Floating point arithmetic system and method
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
US4941120A (en) Floating point normalization and rounding prediction circuit
CA1324217C (en) Pipelined floating point adder for digital computer
JPH05241792A (ja) 浮動小数点加減算方式および装置
US8185570B2 (en) Three-term input floating-point adder-subtractor
JP3313560B2 (ja) 浮動小数点演算処理装置
JPH05204606A (ja) 浮動小数点演算方式および装置
US7003540B2 (en) Floating point multiplier for delimited operands
JP2507183B2 (ja) 浮動小数点加減算装置
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
JP2856792B2 (ja) 浮動小数点数演算装置
JP3295949B2 (ja) 浮動小数点演算方式とその装置
JP2508868B2 (ja) 浮動小数点加減算装置
JP3174974B2 (ja) 浮動小数点演算装置および方法
JP2801472B2 (ja) 浮動小数点演算装置
JP3950920B2 (ja) 積和演算器及びデータ処理装置
JPH01282633A (ja) 非正規化数の処理方式
JP3124286B2 (ja) 浮動小数点数演算装置
JP2792998B2 (ja) 加減算回路を用いた型変換装置
JPH03217938A (ja) 浮動小数点丸め正規化装置
JPH0498524A (ja) 浮動小数点演算装置
JPH04132538U (ja) 浮動小数点演算回路
JPH05313857A (ja) 浮動小数点加減算装置とその制御方式
JPH04151729A (ja) 浮動小数点累算器

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010424