JPH05313857A - 浮動小数点加減算装置とその制御方式 - Google Patents

浮動小数点加減算装置とその制御方式

Info

Publication number
JPH05313857A
JPH05313857A JP11559092A JP11559092A JPH05313857A JP H05313857 A JPH05313857 A JP H05313857A JP 11559092 A JP11559092 A JP 11559092A JP 11559092 A JP11559092 A JP 11559092A JP H05313857 A JPH05313857 A JP H05313857A
Authority
JP
Japan
Prior art keywords
subtraction
addition
circuit
output
shifter
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
JP11559092A
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 JP11559092A priority Critical patent/JPH05313857A/ja
Publication of JPH05313857A publication Critical patent/JPH05313857A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】固定小数点加減算装置あるいは右シフタまたは
左シフタとしても動作するように制御することが可能
で、従来の方式よりもバレルシフト処理を1回低減して
処理を高速化した浮動小数点加減算装置とその制御方式
を提供する。 【構成】仮数部を1ビット分右シフトする右シフタ8を
備える。右バレルシフタ5の出力と右シフタ8の出力と
のいずれか一方を選択して出力する選択回路9を備え
る。加減算回路4の出力を右または左の1ビットのシフ
トを行なう双方向シフタ10を備える。正規化用バレル
シフタ5の出力と双方向シフタ10の出力とのいずれか
一方を選択して加減算結果である正規化された仮数部を
出力する選択回路11を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は浮動小数点加減算装置と
その制御方式に関し、特に浮動小数点加減算処理を高速
に実行できる浮動小数点加減算装置とその制御方式に関
する。
【0002】
【従来の技術】浮動小数点加減算処理は大別して次の4
ステップで構成される。(1)大小比較と指数減算。
(2)桁合せ右シフト。(3)仮数加減算。(4)演算
結果の正規化。以下ではこの従来の演算方式にしたがっ
た従来の浮動小数点加減算装置について、図面を参照し
て説明する。
【0003】従来の浮動小数点加減算装置は、図2に示
すように、仮数部が絶対値表現である浮動小数点データ
である2つの入力オペランドOP1,OP2を入力しそ
の大小を比較し大きい方のオペランドの指数部ELと大
きい方のオペランドの仮数部MLと小さい方のオペラン
ドの仮数部MSとを出力する比較選択回路1と、入力オ
ペランドOP1,OP2の指数部を相互に減算し指数の
差を出力する指数減算回路2と、上記指数差をシフト量
として仮数部MSを右シフトする右バレルシフタ3と、
仮数部MLと右バレルシフタ3の出力とを加減算する加
減算回路4と、プライオリティエンコーダ6の出力値を
シフト量として正規化のため加減算回路4の出力のシフ
トを行なう正規化用バレルシフタ5と、加減算回路4の
出力における最上位の’1’のビットの位置を検出する
プライオリティエンコーダ6と、指数部ELを入力し指
数部の更新を行なう指数更新回路7とを備えて構成され
ていた。
【0004】次に、従来の浮動小数点加減算装置の動作
について説明する。
【0005】比較回路選択回路1は、浮動小数点データ
の2つの入力オペランドOP1,OP2を入力し、その
大小を判定して小さい方のオペランドの仮数部MSを右
バレルシフタ3の入力として出力する。また、指数減算
回路2は、入力オペランドOP1,OP2の指数部を減
算し指数の差を出力する。その値、すなわち、指数の差
をシフト量として右バレルシフタ3は、入力された仮数
部MSを桁合せのために右シフトする。右バレルシフタ
3の出力は加減算回路4に入力される。
【0006】加減算回路4は、右バレルシフタ3の出力
と比較選択回路1の出力である大きい方のオペランドの
仮数部MLとを加算する。加減算回路4の出力は、正規
化用バレルシフタ5とプライオリティエンコーダ6とに
入力される。プライオリティエンコーダ6は、加減算回
路4の出力データを検索し最上位の’1’のビット位
置、すなわち、最上位の’1’のビットがMSBから下
位に数えて何番目の位置かを検出する。正規化用バレル
シフタ5は、プライオリティエンコーダ6の出力値をシ
フト量として、加減算回路4の出力データをシフトす
る。
【0007】以上の仮数の正規化処理に並行して、指数
部の更新が指数更新回路7により行なわれる。これは、
比較選択回路1から大きい方のオペランドの指数部EL
を入力して、これに対して正規化用シフト量を加減算す
ることにより指数の更新が行なわれる。
【0008】以上の処理により浮動小数点加減算が実行
され、結果データRを出力するというものであった。
【0009】
【発明が解決しようとする課題】上述した従来の浮動小
数点加減算装置は、大小比較と指数減算比較を行なう選
択回路および指数減算回路と、桁合せ右シフトのための
右バレルシフタと、仮数加減算を行なう加減算回路4
と、演算結果の正規化のための正規化用バレルシフタと
の4つの機能的構成要素が直列接続されているので、そ
のクリティカルパスは上記4つの機能的構成要素を順次
通過するパスとなり、処理に要する時間が長くなるとい
う欠点があった。
【0010】本発明の目的は、ごくわずかのハードウェ
アを追加するだけで、データ変換命令を実行できる浮動
小数点加減算装置とその制御方式を提供することにあ
る。
【0011】
【課題を解決するための手段】第一の発明の浮動小数点
加減算装置は、仮数部が絶対値表現された浮動小数点デ
ータである第一および第二の入力オペランドの大小を比
較し前記第一および第二の入力オペランドの大きい方の
オペランドの仮数部を第一の仮数部とし小さい方のオペ
ランドの仮数部を第二の仮数部とし大きい方のオペラン
ドの指数部を第一の指数部としてそれぞれ出力する比較
選択回路と、前記第一および第二の入力オペランドのそ
れぞれの指数部同志の減算を行ない前記指数部の差であ
る指数差を出力する指数減算回路と、前記指数差をシフ
ト量として前記第二の仮数部を右シフトする右バレルシ
フタと、前記第二の仮数部を1ビット分右シフトする右
シフタと、前記右バレルシフタの出力と前記右シフタの
出力とのいずれか一方を選択して出力する第一の選択回
路と、前記第一の選択回路の出力と前記第一の仮数部と
を加減算する加減算回路と、前記加減算回路の出力にお
ける最上位の’1’のビットの位置を検出するプライオ
リティエンコーダと、前記プライオリティエンコーダの
出力値をシフト量として前記加減算回路の出力をシフト
する正規化用バレルシフタと、前記加減算回路の出力を
入力し右または左の1ビットのシフトを行なう双方向シ
フタと、前記正規化用バレルシフタの出力と前記双方向
シフタの出力とのいずれか一方を選択して前記第一およ
び第二の仮数部の加減算結果である正規化された仮数部
を出力する第二の選択回路と、前記第一の指数部を入力
し前記仮数部の正規化に対応して前記指数部の更新を行
なう指数更新回路とを備えることを特徴とするものであ
る。
【0012】また、第2の発明の浮動小数点加減化算装
置の制御方式は、前記比較選択回路が前記第一の入力オ
ペランドをそのまま通過させて前記加減算回路の一方の
入力とし、前記比較選択回路と前記右シフタと前記第一
の選択回路とが前記第二の入力オペランドをそのまま通
過させて前記加減算回路の他の一方の入力とし、前記双
方向シフタと前記第二の選択回路とが前記加算回路の出
力をそのまま通過させて固定小数点加減算を行なうこと
により請求項1記載の浮動小数点加減算装置の動作を制
御することを特徴とするものである。
【0013】
【作用】本発明の浮動小数点加減算装置は、入力オペラ
ンドの大小比較と指数減算の後に、両オペランドの指数
の差が1以下でかつ真の減算処理を実行するときには、
シフト量が1ビット以下の桁合せシフトを行なう右シフ
タと、加減算回路と、正規化用バレルシフタとを含むデ
ータパスが選択される。それ以外の場合、すなわち、両
オペランドの指数の差が2以上かまたは真の加算処理を
実行するときには、右バレルシフタと、加減算回路と、
正規化のためのシフト量が1ビット以下のシフトを行な
う双方向シフタとを含むデータパスが選択される。どち
らのデータパスが選択されても、データが通過する機能
的構成要素の数はバレルシフタの1個分少ない。その代
りに、右シフタや双方向シフタと、データパスの切替を
行なう選択回路が追加されているが、これらの機能的構
成要素をデータが通過する時間はバレルシフタをデータ
が通過する時間に比較すれば小さい。したがって、ほぼ
バレルシフタ1個分の遅延時間を短縮することができ
る。
【0014】また、加減算回路のみを動作させ、残りの
構成要素はデータが単に通過するように制御すること
で、本装置を固定小数点加減算装置として動作させるこ
とができる。この場合、従来の浮動小数点加減算装置を
同様に制御して固定小数点加減算装置として動作させる
場合に比べて、ほぼバレルシフタ1個分の遅延時間を短
縮することができる。
【0015】また、右バレルシフタのみを動作させ、残
りの構成要素はデータが単に通過するように制御するこ
とで、本装置を右バレルシフタとして動作させ右シフト
演算を実行することができる。この場合、従来の浮動小
数点加減算装置を同様に制御して右バレルシフタとして
動作させる場合に比べて、ほぼバレルシフタ1個分の遅
延時間を短縮することができる。
【0016】さらに、正規化用バレルシフタのみを動作
させ、残りの構成要素はデータが単に通過するように制
御することで、本装置を左バレルシフタとして動作させ
左シフト演算を実行することができる。この場合、従来
の浮動小数点加減算装置を同様に制御して左バレルシフ
タとして動作させる場合に比べて、ほぼバレルシフタ1
個分の遅延時間を短縮することができる。
【0017】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0018】次に、本発明の浮動小数点加減算装置の実
施例について図面を参照して説明する。
【0019】図1は本発明の浮動小数点加減算装置の一
実施例を示すブロック図である。
【0020】本実施例の浮動小数点加減算装置は、図1
に示すように、従来と同様の比較選択回路1と、指数減
算回路2と、右バレルシフタ3と、加減算回路4と、正
規化用バレルシフタ5と、プライオリティエンコーダ6
と、指数更新回路7とに加えて、1ビットの右シフトを
行なう右シフタ8と、右バレルシフタ3の出力値と右シ
フタ8の出力値とのいずれか一方を選択する選択回路9
と、加減算器9の出力を1ビット右または左シフトする
双方向シフタ10と、正規化用バレルシフタ5の出力値
と双方向シフタ10の出力値とのいずれか一方を選択す
る選択回路11とを備えて構成されている。
【0021】次に、本実施例の動作について説明する。
【0022】まず、浮動小数点加減算における正規化処
理について説明する。
【0023】次に示す2つの場合においてのみ、正規化
のために仮数部の2ビット以上のシフトが必要となる可
能性がある。それ以外の場合には、正規化のための仮数
部のシフト量はせいぜい1ビットである。 (1)処理内容が真の減算であって、かつ両オペランド
の指数が同一のとき、仮数部の減算結果の正規化のため
2ビット以上の左シフトが必要になる可能性がある。こ
のような計算の一例を以下に示す。
【0024】
【0025】(2)処理内容が真の加算であって、かつ
両オペランドの指数の差が1のとき、仮数部の減算結果
の正規化のため2ビット以上の左シフトが必要になる可
能性がある。このような計算の一例を以下に示す。
【0026】
【0027】ここで、真の減算または加算とは、数値の
符号を考慮した実質的な加算または減算のことである。
すなわち、説明の便宜のため10進法を用いると(+
5)+(−3)=5−3は演算命令としては加算であっ
ても実は真の減算であり、(+5)−(−3)=5+3
は演算命令としては減算であっても実は真の加算であ
る。
【0028】上記(1),(2)の場合以外では、正規
化のための仮数部のシフト量は1ビット以下でよい。理
由は、(1)真の加算処理の場合は、仮数の加算結果は
0桁からの桁上げによって21 の桁に1がたつか(1
*.***...という数になるか)、あるいは桁上げ
が生じないか(1.***...という数になるか)の
いずれかである。したがって、正規化のためには、21
の桁に桁上げが生じた場合に1ビットの右シフトが必要
となるだけであるからである。また、(2)真の減算処
理の場合でかつ両オペランドの指数の差が2以上のとき
は、仮数の減算は(1.***...)−(0.
0...01***...)という計算であって、この
答は1.***...という数かまたは0.1**
*...という数になるかのいずれかであることは明か
である。したがって、正規化のためには1ビット以下の
左シフトが必要であるだけであるからである。
【0029】以上の説明のように、浮動小数点加減算は
処理フローAと処理フローBとの2つのタイプの処理フ
ローに分けることが可能である。
【0030】すなわち、処理フローAは、正規化のため
に仮数部の2ビット以上の左シフトが行なわれる可能性
がある場合であり、これは、真の減算であって、かつ両
オペランドの指数の差が0か1のときである。仮数部の
減算前に行なう桁合せはたかだか1ビットのシフトであ
る。
【0031】また、処理フローBは、正規化のために仮
数部の1ビット以下の右または左シフトが行なわれる場
合であり、これは、真の加算か、または真の減算であっ
て、かつ両オペランドの指数の差が2以上のときであ
る。
【0032】本実施例の浮動小数点加減算装置では、オ
ペランドの大小比較と指数減算の後に、指数の差および
真の加算か真の減算かに対応して、処理フローAと処理
フローBとのいずれかに対応するデータパスを選択し、
それぞれの処理を実行する。すなわち、処理フローAに
対応するデータパスは、右シフタ8と、加減算回路4
と、正規化用バレルシフタ5とから構成される。また、
処理フローBに対応するデータパスは、右バレルシフタ
3と、加減算回路4と、双方向シフタ10ととから構成
される。
【0033】まず、従来例と同様に、比較選択回路1
は、入力オペランドOP1,OP2の大小を判定して大
きい方のオペランドの指数部ELと大きい方のオペラン
ドの仮数部MLと小さい方のオペランドの仮数部MSと
を出力する。ここで、仮数部MLは加減算器4に出力さ
れ、仮数部MSは右バレルシフタ3と右シフタ8とに出
力される。指数減算回路2は、入力オペランドOP1,
OP2の指数部を減算し指数の差を出力する。
【0034】以降の処理では、上述の処理フローAに対
応する処理と、処理フローBに対応する処理とに分かれ
る。
【0035】まず、処理フローAについて説明する。演
算の種類が真の減算であって、かつ指数減算回路2の出
力である指数の差が1であれば、右シフタ8は仮数部M
Sを1ビット右にシフトして桁合せを行なう。また、演
算の種類が真の加算であって、かつ指数減算回路2の出
力である指数の差が0であれば、シフト量は0であり、
右シフタ8は仮数部MSをそのまま通過させる。右シフ
タ8の出力は、選択回路9を経由して加減算回路4の入
力となる。加減算回路4は、仮数部MLと選択回路9の
出力との減算を行なう。正規化用バレルシフタ5は、正
規化のために加減算回路4の出力をシフトして、仮数が
1.***...という形になるようにする。プライオ
リティエンコーダ6は、加減算回路の出力における最上
位の’1’のビットの位置が第何桁目にあるかを検出
し、その検出値を正規化用バレルシフタ5のシフト量と
する。
【0036】次に、処理フローBについて説明する。演
算の種類が真の加算または真の減算であって、かつ指数
減算回路2の出力である指数の差が2以上であれば、上
記指数の差をシフト量として右バレルシフタ3が仮数部
MSを右バレルシフトして桁合せを行なう。右バレルシ
フタ3の出力は、選択回路9を経由して加減算回路4の
入力となる。加減算回路4は、仮数部MLと選択回路9
の出力との減算を行なう。前述のように、この処理フロ
ーBでは正規化のために仮数部の1ビット以下の右また
は左シフトでよい。つまり、真の加算処理で、21 の桁
への桁上げが生じて加減算回路4の出力値が1*.**
*...という形となった場合には1ビット右シフトし
て正規化する。また、真の減算処理で、20 桁からの桁
借りが生じて加減算回路4の出力値が0.1**
*...という形となった場合には1ビット左シフトし
て正規化する。以上の正規化シフト処理を双方向シフタ
10が行なう。
【0037】選択回路11は、上記指数の差が1以下で
かつ真の減算処理の場合は正規化用バレルシフタ5の出
力を選択的に出力し、上記指数の差が2以上かまたは真
の加算処理の場合には双方向シフタ10の出力を選択的
に出力する。
【0038】指数更新回路7は、比較選択回路1から大
きい方のオペランドの指数部ELを入力して、これに対
して処理フローAと処理フローBとのいずれかで実行さ
れた正規化用シフト量を加減算することにより指数の更
新を行なう。
【0039】次に、本実施例の浮動小数点加減算装置を
用いた固定小数点加減算処理について説明する。固定小
数点加減算を行なう場合には、入力オペランドOP1が
比較選択回路1を経由して加減算回路4の一方の入力と
なるようにし、入力オペランドOP2が比較選択回路1
と右シフタ8と選択回路9とをそのまま通過し、加減算
回路4のもう一方の入力となるように制御する。加減算
回路4は固定小数点加減算処理を実行する。加減算回路
4の出力が、双方向シフタ10と選択回路11とを通過
しそのまま出力されるように制御する。
【0040】次に、本実施例の浮動小数点加減算装置を
用いた右シフト処理について説明する。入力オペランド
OP1が比較選択回路1をそのまま通過して右バレルシ
フタ3の入力となるようにように制御する。右バレルシ
フタ3は入力オペランドOP1を所定のシフト量だけ右
シフトする。このシフト結果出力が、選択回路9と加減
算回路4と双方向シフタ10と選択回路11とを通過し
そのまま出力されるように制御する。
【0041】次に、本実施例の浮動小数点加減算装置を
用いた左シフト処理について説明する。入力オペランド
OP1が比較選択回路1と加減算回路4とをそのまま通
過して正規化用バレルシフタ5の入力となるようによう
に制御する。正規化用バレルシフタ5は入力オペランド
OP1を所定のシフト量だけ左シフトする。このシフト
結果出力が、選択回路11を通過しそのまま出力される
ように制御する。
【0042】
【発明の効果】以上説明したように、本発明の浮動小数
点加減算装置とその制御方式は、従来の浮動小数点加減
算装置に仮数部を1ビット分右シフトする右シフタと、
右バレルシフタの出力と上記右シフタの出力とのいずれ
か一方を選択して出力する第一の選択回路と、加減算回
路の出力を右または左の1ビットのシフトを行なう双方
向シフタと、正規化用バレルシフタの出力と上記双方向
シフタの出力とのいずれか一方を選択して加減算結果で
ある正規化された仮数部を出力する第二の選択回路とを
備えることにより、従来の浮動小数点加減算装置に比較
して、ほぼバレルシフタ1個分の遅延時間を短縮するこ
とができるので加減算処理のの高速化が図れるという効
果がある。
【図面の簡単な説明】
【図1】本発明の浮動小数点演算装置の一実施例を示す
ブロック図である。
【図2】従来の浮動小数点演算装置の一例を示すブロッ
ク図である。
【符号の説明】
1 比較選択回路 2 指数減算回路 3 右バレルシフタ 4 加減算回路 5 正規化用バレルシフタ 6 プライオリティエンコーダ 7 指数更新回路 8 右シフタ 9,11 選択回路 10 双方向シフタ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年7月8日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の詳細な説明
【補正方法】変更
【補正内容】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は浮動小数点加減算装置と
その制御方式に関し、特に浮動小数点加減算処理を高速
に実行できる浮動小数点加減算装置とその制御方式に関
する。
【0002】
【従来の技術】浮動小数点加減算処理は大別して次の4
ステップで構成される。(1)大小比較と指数減算。
(2)桁合せ右シフト。(3)仮数加減算。(4)演算
結果の正規化。以下ではこの従来の演算方式にしたがっ
た従来の浮動小数点加減装置について、図面を参照して
説明する。
【0003】従来の浮動小数点加減算装置は、図2に示
すように、仮数部が絶対値表現である浮動小数点データ
である2つの入力オペランドOP1,OP2を入力しそ
の大小を比較し大きい方のオペランドの指数部ELと大
きい方のオペランドの仮数部MLと小さい方のオペラン
ドの仮数部MSとを出力する比較選択回路1と、入力オ
ペランドOP1,OP2の指数部を相互に減算し指数の
差を出力する指数減算回路2と、上記指数差をシフト量
として仮数部MSを右シフトする右バレルシフタ3と、
仮数部MLと右バレルシフタ3の出力とを加減算する加
減算回路4と、プライオリティエンコーダ6の出力値を
シフト量として正規化のため加減算回路4の出力のシフ
トを行なう正規化用バレルシフタ5と、加減算回路4の
出力における最上位の’1’のビットの位置を検出する
プライオリティエンコーダ6と、指数部ELを入力し指
数部の更新を行なう指数更新回路7とを備えて構成され
ていた。
【0004】次に、従来の浮動小数点加減算装置の動作
について説明する。
【0005】比較選択回路1は、浮動小数点データの2
つの入力オペランドOP1,OP2を入力し、その大小
を判定して小さい方のオペランドの仮数部MSを右バレ
ルシフタ3の入力として出力する。また、指数減算回路
2は、入力オペランドOP1,OP2の指数部を減算し
指数の差を出力する。その値、すなわち、指数の差をシ
フト量として右バレルシフタ3は、入力された仮数部M
Sを桁合せのために右シフトする。右バレルシフタ3の
出力は加減算回路4に入力される。
【0006】加減算回路4は、右バレルシフタ3の出力
と比較選択回路1の出力である大きい方のオペランドの
仮数部MLとを加算する。加減算回路4の出力は、正規
化用バレルシフタ5とプライオリティエンコーダ6とに
入力される。プライオリティエンコーダ6は、加減算回
路4の出力データを検索し最上位の’1’のビット位
置、すなわち、最上位の’1’のビットがMSBから下
位に数えて何番目の位置かを検出する。正規化用バレル
シフタ5は、プライオリティエンコーダ6の出力値をシ
フト量として、加減算回路4の出力データをシフトす
る。
【0007】以上の仮数の正規化処理に並行して、指数
部の更新が指数更新回路7により行なわれる。これは、
比較選択回路1から大きい方のオペランドの指数部EL
を入力して、これに対して正規化用シフト量を加減算す
ることにより指数の更新が行なわれる。
【0008】以上の処理により浮動小数点加減算が実行
され、結果データRを出力するというものであった。
【0009】以上に説明した図2の構成の浮動小数点加
減算装置の構成を、以下の文では便宜上タイプ1と呼
ぶ。
【0010】浮動小数点加減算装置の構成としてタイプ
1以外の構成も知られている。それを以下ではタイプ2
と呼ぶ。タイプ2の構成を説明するためにまず浮動小数
点加減算における正規化処理について考える。次に示す
2つの場合においてのみ、正規化のために仮数部の2ビ
ット以上のシフトが必要となる可能性がある。それ以外
の場合は正規化のためのシフト量はたかだか1ビットで
ある。 (1)処理内容が真の減算であって、かつ両オペランド
の指数が同じとき、 仮数部の減算結果を正規化する際に
仮数部の2ビット以上の左シフトが必要となる可能性が
ある。このような計算の一例を以下に示す。
【0011】
【数1】
【0012】(2)処理内容が真の減算であってかつ、
両オペランドの指数の差が1であるとき、その仮数部の
減算結果を正規化しようとする場合に、2ビット以上の
左シフトが必要となる可能性がある。このような計算の
一例を以下に示す。
【0013】
【数2】
【0014】ここで真の減算または加算とは、数値の符
号を考慮した実質的な加算または減算のことである。す
なわち、説明の便宜のため10進法を用いると(+5)
+(−3)=5−3は演算命令としては加算であっても
実は真の減算処理であり、(+5)−(−3)=5+3
は演算命令として減算であっても実は真の加算処理であ
る。
【0015】上記(1)(2)の場合以外には、仮数部
正規化のためのシフト量は1以下でよい。理由は、
(1)真の加算処理の場合は、仮数の加算結果は2 0
からの桁上げによって2 1 の桁に1がたつか(1*.*
**・・・という数になるか)、あるいは桁上げが生じ
ないか(1.***・・・という数になるか)のいずれ
かである。したがって、正規化のためには、2 1 の桁に
桁上げが生じた場合に1ビットの右シフトが必要となる
だけであるからである。また、(2)真の減算処理でか
つ両オペランドの指数の差が2以上の場合は、仮数の減
算は(1.***・・・)−(0.0・・・01***
・・・)という計算であって、この答は1.***・・
・という数かまたは0.1***・・・という数になる
かのいずれかであることは明かである。したがって正規
化のためには、1ビット以下の左シフトが必要であるだ
けであるからである。
【0016】以上の説明のように、浮動小数点加減算は
処理フローAと処理フローBとのふたつのタイプの処理
フローに分けることが可能である。すなわち処理フロー
Aは、正規化のために仮数の2ビット以上の左シフトが
行われる可能性がある。これは真の減算で、かつ両オペ
ランドの指数の差が0または1であるときである。仮数
の減算前に行う桁合わせはたかだか1ビットのシフトで
ある。また処理フローBは、正規化のための仮数のシフ
トは右または左方向の1ビット以下のシフトである。こ
れは真の加算か、または真の減算で両オペランドの指数
の差が2以上の場合である。
【0017】そこでこのふたつのフローをそれぞれ処理
するデータパスを2個設けて浮動小数点加減算を実行す
る構成が考えられている。これがタイプ2であり、その
基本構成を図3に示す。
【0018】比較選択回路1は浮動小数点データの2つ
の入力オペランドOP1,OP2を入力し、その大小を
判定して小さい方のオペランドの仮数部MSを右シフタ
8と右バレルシフタ3の入力として出力する。
【0019】右シフタ8は小さい方のオペランドの仮数
部MSを1ビット右にシフトするか、或いはシフトせず
にそのまま通過させ、第1の加減算回路12に出力す
る。第1の加減算回路12は、バレルシフタ8の出力と
比較選択回路1の出力である大きい方のオペランドの仮
数部MLとを加減算する。この加減算結果を正規化用バ
レルシフタ5で正規化する。すなわち仮数が1.xxx
という形になるようにする。そのためにプライオリティ
エンコーダ6が第1の加減算回路12の出力に対して、
最上位の”1”が第何桁目にあるかをエンコードする。
正規化用バレルシフタ5はプライオリティエンコーダ6
の出力値をシフト量としてシフトを行う。
【0020】一方、指数減算回路2は、入力オペランド
OP1,OP2の指数部を減算し指数の差を出力する。
その値、すなわち指数の差をシフト量として右バレルシ
フタ3は入力された仮数部MSを桁合わせのために右シ
フトする。右バレルシフタ3の出力は第2の加減算回路
13に入力される。第2の加減算回路13は、右バレル
シフタ3の出力と比較選択回路1の出力である大きい方
のオペランドの仮数部MLとを加算する。第2の加減算
回路13の出力は双方向シフタ10に入力される。もし
も真の加算処理で、2 1 桁への桁上げが 発生して第2の
加減算回路13の出力値が1*.***・・・という形
になった場合には1ビット右シフトして正規化する。ま
た真の減算処理で2 0 桁からの桁借りが発生して第2の
加減算回路13の出力値が0.1***・・・という形
になった場合には1ビット左シフトして正規化する。
【0021】選択回路11は、2つの入力オペランドの
指数の差が1以下でかつ真の減算処理の場合は正規化用
バレルシフタ5の出力を選択的に出力し、それ以外の場
合は双方向シフタ出力を選択的に出力する。また指数の
更新が指数更新回路7によって行われる。
【0022】つまり処理フローAに対応するパスが右シ
フタ8→第一の加減算回路12→正規化用バレルシフタ
というパスであり、処理フローBに対応するのが右バレ
ルシフタ→第2の加減算回路13→双方向シフタ10と
いうパスである。最後の選択回路11によりフローAか
フローBかが選択されて結果Rが出力される。このよう
な構成の浮動小数点加減算装置は米国特許4,999,
803に詳しい。
【0023】
【発明が解決しようとする課題】上述した従来の浮動小
数点加減算装置は、大小比較と指数減算比較を行なう選
択回路および指数減算回路と、桁合せシフトのための右
バレルシフタと、仮数加減算を行なう加減算回路4と、
演算結果の正規化のための正規化用バレルシフタとの4
つの機能的構成要素が直列接続されているので、そのク
リティカルパスは上記4つの機能的構成要素を順次通過
するパスとなり、処理に要する時間が長くなるという欠
点があった。また処理フローA、Bそれぞれに個別のパ
スを設けるというタイプ2の構成をとった場合には加減
算回路が2倍必要となりハードウェア量が増大してしま
うという欠点があった。
【0024】本発明の目的はごくわずかのハードウェア
を追加するだけで、浮動小数点演算、固定小数点演算、
シフト演算を高速に実行できる浮動小数点加減算装置と
その制御方式を提供することにある。
【0025】
【課題を解決するための手段】第一の発明の浮動小数点
加減算装置は、仮数部が絶対値表現された浮動小数点デ
ータである第一および第二の入力オペランドの大小を比
較し前記第一および第二の入力オペランドの大きい方の
オペランドの仮数部を第一の仮数部とし小さい方のオペ
ランドの仮数部を第二の仮数部とし大きい方のオペラン
ドの指数部を第一の指数部としてそれぞれ出力する比較
選択回路と、
【0026】前記第一および第二の入力オペランドのそ
れぞれの指数部同志の減算を行ない前記指数部の差であ
る指数差を出力する指数減算回路と、
【0027】前記指数差をシフト量として前記第二の仮
数部を右シフトする右バレルシフタと、
【0028】前記第二の仮数部を1ビット分右シフトす
る右シフタと、
【0029】前記右バレルシフタの出力と前記右シフタ
の出力とのいずれか一方を選択して出力する第一の選択
回路と、
【0030】前記第一の選択回路の出力と前記第一の仮
数部とを加減算する加減算回路と、
【0031】前記加減算回路の出力における最上位の’
1’のビット位置を検出するプライオリティエンコーダ
と、
【0032】前記プライオリティエンコーダの出力値を
シフト量として前記加減算回路の出力シフトする正規化
用バレルシフタと、
【0033】前記加減算回路の出力を入力し右または左
の1ビットのシフトを行なう双方向シフタと、
【0034】前記正規化用バレルシフタの出力と前記双
方向シフタの出力とのいずれか一方を選択して前記第一
および第二の仮数部の加減算結果である正規化された仮
数部を出力する第二の選択回路と、
【0035】前記第一の指数部を入力し前記仮数部の正
規化に対応して前記指数部の更新を行なう指数更新回路
とを備えることを特徴とするものである。
【0036】また、第2の発明の浮動小数点加減算装置
の制御方式は、前記比較選択回路が前記第一の入力オペ
ランドをそのまま通過させて前記加減算回路の一方の入
力とし、
【0037】前記比較選択回路と前記右シフタと前記第
一の選択回路とが前記第二の入力オペランドをそのまま
通過させて前記加減算回路の他の一方の入力とし、
【0038】前記双方向シフタと前記第二の選択回路と
が前記加算回路の出力をそのまま通過させて固定小数点
加減算を行なうことにより請求項1記載の浮動小数点加
減算装置の動作を制御することを特徴とするものであ
る。
【0039】
【作用】本発明の浮動小数点加減算装置は、入力オペラ
ンドの大小比較と指数減算の後に、両オペランドの指数
の差が1以下でかつ真の減算処理を実行するときには、
シフト量が1ビット以下の桁合せシフトを行なう右シフ
タと、加減算回路と、正規化用バレルシフタとを含むデ
ータパスが選択される。それ以外の場合、すなわち、両
オペランドの指数の差が2以上かまたは真の加算処理を
実行するときには、右バレルシフタと、加減算回路と、
正規化のためのシフト量が1ビット以下のシフトを行な
う双方向シフタとを含むデータパスが選択される。どち
らのデータパスが選択されても、データが通過する機能
的構成要素の数はバレルシフタの1個分少ない。その代
りに、右シフタや双方向シフタと、データパスの切替を
行なう選択回路が追加されているが、これらの機能的構
成要素をデータが通過する時間はバレルシフタをデータ
が通過する時間に比較すれば小さい。したがって、タイ
プ1の従来構成に比べてほぼバレルシフタ1個分の遅延
時間を短縮することができる。またタイプ2の従来構成
と比べると、遅延時間は同じだが、加減算回路が一つで
すむのでハードウェア量を大幅に削減できる。
【0040】また、加減算回路のみを動作させ、残りの
構成要素はデータが単に通過するように制御すること
で、本装置を固定小数点加減算装置として動作させるこ
とができる。この場合、タイプ1の従来の浮動小数点加
減算装置を同様に制御して固定小数点加減算装置として
動作させる場合に比べて、ほぼバレルシフタ1個分の遅
延時間を短縮することができる。
【0041】また、右バレルシフタのみを動作させ、残
りの構成要素はデータが単に通過するように制御するこ
とで、本装置を右バレルシフタとして動作させ右シフト
演算を実行することができる。この場合、タイプ1の
来の浮動小数点加減算装置を同様に制御して右バレルシ
フタとして動作させる場合に比べて、ほぼバレルシフタ
1個分の遅延時間を短縮することができる。
【0042】さらに、正規化用バレルシフタのみを動作
させ、残りの構成要素はデータが単に通過するように制
御することで、本装置を左バレルシフタとして動作させ
左シフト演算を実行することができる。この場合、タイ
プ1の従来の浮動小数点加減算装置を同様に制御して左
バレルシフタとして動作させる場合に比べて、ほぼバレ
ルシフタ1個分の遅延時間を短縮することができる。
【0043】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0044】次に、本発明の浮動小数点加減算装置の実
施例について図面を参照して説明する。
【0045】図1は本発明の浮動小数点加減算装置の一
実施例を示すブロック図である。
【0046】本実施例の浮動小数点加減算装置は、図1
に示すように、従来と同様の比較選択回路1と、指数減
算回路2と、右バレルシフタ3と、加減算回路4と、正
規化用バレルシフタ5と、プライオリティエンコーダ6
と、指数更新回路7とに加えて、1ビットの右シフトを
行なう右シフタ8と、右バレルシフタ3の出力値と右シ
フタ8の出力値とのいずれか一方を選択する選択回路9
と、加減算器9の出力を1ビット右また左シフトする双
方向シフタ10と、正規化用バレルシフタ5の出力値と
双方向シフタ10の出力値とのいずれか一方を選択する
選択回路11とを備えて構成されている。
【0047】次に、本実施例の動作について説明する。
【0048】本実施例の浮動小数点加減算装置では、オ
ペランドの大小比較と指数減算の後に、指数の差および
真の加算か真の減算かに対応して、処理フローAと処理
フローBとのいずれかに対応するデータパスを選択し、
それぞれの処理を実行する。すなわち、処理フローAに
対応するデータパスは、右シフタ8と、加減算回路4
と、正規化用バレルシフタ5とから構成される。また、
処理フローBに対応するデータパスは、右バレルシフタ
3と、加減算回路4と、双方向シフタ10ととから構成
される。
【0049】まず、従来例と同様に、比較選択回路1
は、入力オペランドOP1,OP2の大小を判定して大
きい方のオペランドの指数部ELと大きい方のオペラン
ドの仮数部MLと小さい方のオペランドの仮数部MSと
を出力する。ここで、仮数部MLは加減算器4に出力さ
れ、仮数部MSは右バレルシフタ3と右シフタ8とに出
力される。指数減算回路2は、入力オペランドOP1,
OP2の指数部を減算し指数の差を出力する。
【0050】以降の処理では、上述の処理フローAに対
応する処理と、処理フローBに対応する処理とに分かれ
る。
【0051】まず、処理フローAについて説明する。演
算の種類が真の減算であってかつ指数減算回路2の出力
である指数の差が1であれば、右シフタ8は仮数部MS
を1ビット右にシフトして桁合せを行なう。また、演算
の種類が真の加算であって、かつ指数減算回路2の出力
である指数の差が0であれば、シフト量は0であり、右
シフタ8は仮数部MSをそのまま通過させる。右シフタ
8の出力は、選択回路9を経由して加減算回路4の入力
となる。加減算回路4は、仮数部MLと選択回路9の出
力との減算を行なう。正規化用バレルシフタ5は、正規
化のために加減算回路4の出力をシフトして、仮数が
1.***・・・という形になるようにする。プライオ
リティエンコーダ6は、加減算回路の出力における最上
位の’1’のビットの位置が第何桁目にあるかを検出
し、その検出値を正規化用バレルシフタ5のシフト量と
する。
【0052】次に処理フローBについて説明する。演算
の種類が真の加算または真の減算であって、かつ指数減
算回路2の出力である指数の差が2以上であれば、上記
指数の差をシフト量として右バレルシフタ3が仮数部M
Sを右バレルシフタして桁合せを行なう。右バレルシフ
タ3の出力は、選択回路9を経由して加減算回路4の入
力となる。加減算回路4は、仮数部MLと選択回路9の
出力との減算を行なう。前述のように、この処理フロー
Bでは正規化のために仮数部の1ビット以下の右または
左シフトでよい。つまり、真の加算処理で、21 の桁へ
の桁上げが生じて加減算回路4の出力値が1*.***
・・・という形となった場合には1ビット右シフトして
正規化する。また、真の減算処理で、20 桁からの桁借
りが生じて加減算回路4の出力値が0.1***・・・
という形となった場合には1ビット左シフトして正規化
する。以上の正規化シフト処理を双方向シフタ10が行
なう。
【0053】選択回路11は、上記指数の差が1以下で
かつ真の減算処理の場合は正規化用バレルシフタ5の出
力を選択的に出力し、上記指数の差が2以上かまたは真
の加算処理の場合には双方向シフタ10の出力を選択的
に出力する。
【0054】指数更新回路7は、比較選択回路1から大
きい方のオペランドの指数部ELを入力して、これに対
して処理フローAと処理フローBとのいずれかで実行さ
れた正規化用シフト量を加減算することにより指数の更
新を行なう。
【0055】次に、本実施例の浮動小数点加減算装置を
用いた固定小数点加減算処理について説明する。固定小
数点加減算を行なう場合には、入力オペランドOP1が
比較選択回路1を経由して加減算回路4の一方の入力と
なるようにし、入力オペランドOP2が比較選択回路1
と右シフタ8と選択回路9とをそのまま通過し、加減算
回路4のもう一方の入力となるように制御する。加減算
回路4は固定小数点加減算処理を実行する。加減算回路
4の出力が、双方向シフタ10と選択回路11とを通過
しそのまま出力されるように制御する。
【0056】次に、本実施例の浮動小数点加減算装置を
用いた右シフト処理について説明する。入力オペランド
OP1が比較選択回路1をそのまま通過して右バレルシ
フタ3の入力となるように制御する。右バレルシフタ3
は入力オペランドOP1を所定のシフト量だけ右シフト
する。このシフト結果出力が、選択回路9と加減算回路
4と双方向シフタ10と選択回路11とを通過しそのま
ま出力されるように制御する。
【0057】次に、本実施例の浮動小数点加減算装置を
用いた左シフト処理について説明する。入力オペランド
OP1が比較選択回路1と加減算回路4とをそのまま通
過して正規化用バレルシフタ5の入力となるように制御
する。正規化用バレルシフタ5は入力オペランドOP1
を所定のシフト量だけ左シフトする。このシフト結果出
力が、選択回路11を通過しそのまま出力されるように
制御する。
【0058】
【発明の効果】以上説明したように、本発明の浮動小数
点加減算装置とその制御方式は、従来の浮動小数点加減
算装置に仮数部を1ビット分右シフトする右シフタと、
右バレルシフタの出力と上記右シフタの出力とのいずれ
か一方を選択して出力する第一の選択回路と、加減算回
路の出力を右または左の1ビットのシフトを行なう双方
向シフトと、正規化用バレルシフタの出力と上記双方向
シフタの出力とのいずれか一方を選択して加減算結果で
ある正規化された仮数部を出力する第二の選択回路とを
備えることにより、タイプ1の従来の浮動小数点加減算
装置に比較して、ほぼバレルシフタ1個分の遅延時間を
短縮することができるので加減算処理の高速化が図れる
という効果がある。
【0059】また、タイプ2の従来構成と比べると、遅
延時間は同じだが、加減算回路が一つですむので、ハー
ドウェア量を大幅に削減できる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【0060】
【図面の簡単な説明】
【図1】本発明の浮動小数点加減算装置の一実施例を示
すブロック図である。
【図2】従来のタイプ1の浮動小数点加減算装置の一例
を示すブロック図である。
【図3】従来のタイプ2の加減算装置の一例を示すブロ
ック図である。
【0061】
【符号の説明】 1 比較選択回路 2 指数減算回路 3 右バレルシフタ 4 加減算回路 5 正規化用バレルシフタ 6 プライオリティエンコーダ 7 指数更新回路 8 右シフタ 9,11 選択回路 10 双方向シフタ 12 第1の加減算回路 13 第2の加減算回路
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】追加
【補正内容】
【図3】

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 仮数部が絶対値表現された浮動小数点デ
    ータである第一および第二の入力オペランドの大小を比
    較し前記第一および第二の入力オペランドの大きい方の
    オペランドの仮数部を第一の仮数部とし小さい方のオペ
    ランドの仮数部を第二の仮数部とし大きい方のオペラン
    ドの指数部を第一の指数部としてそれぞれ出力する比較
    選択回路と、 前記第一および第二の入力オペランドのそれぞれの指数
    部同志の減算を行ない前記指数部の差である指数差を出
    力する指数減算回路と、 前記指数差をシフト量として前記第二の仮数部を右シフ
    トする右バレルシフタと、 前記第二の仮数部を1ビット分右シフトする右シフタ
    と、 前記右バレルシフタの出力と前記右シフタの出力とのい
    ずれか一方を選択して出力する第一の選択回路と、 前記第一の選択回路の出力と前記第一の仮数部とを加減
    算する加減算回路と、 前記加減算回路の出力における最上位の’1’のビット
    の位置を検出するプライオリティエンコーダと、 前記プライオリティエンコーダの出力値をシフト量とし
    て前記加減算回路の出力をシフトする正規化用バレルシ
    フタと、 前記加減算回路の出力を入力し右または左の1ビットの
    シフトを行なう双方向シフタと、 前記正規化用バレルシフタの出力と前記双方向シフタの
    出力とのいずれか一方を選択して前記第一および第二の
    仮数部の加減算結果である正規化された仮数部を出力す
    る第二の選択回路と、 前記第一の指数部を入力し前記仮数部の正規化に対応し
    て前記指数部の更新を行なう指数更新回路とを備えるこ
    とを特徴とする浮動小数点加減算装置。
  2. 【請求項2】 前記比較選択回路が前記第一の入力オペ
    ランドをそのまま通過させて前記加減算回路の一方の入
    力とし、 前記比較選択回路と前記右シフタと前記第一の選択回路
    とが前記第二の入力オペランドをそのまま通過させて前
    記加減算回路の他の一方の入力とし、 前記双方向シフタと前記第二の選択回路とが前記加算回
    路の出力をそのまま通過させて固定小数点加減算を行な
    うことにより請求項1記載の浮動小数点加減算装置の動
    作を制御することを特徴とする浮動小数点加減算装置の
    制御方式。
  3. 【請求項3】 前記比較選択回路が前記第一の入力オペ
    ランドをそのまま通過させて前記右バレルシフタの入力
    とし、 前記第一の選択回路と前記加減算回路と前記双方向シフ
    タと前記第二の選択回路とが前記右バレルシフタの出力
    をそのまま通過させて右シフトを行なうことにより請求
    項1記載の浮動小数点加減算装置の動作を制御すること
    を特徴とする浮動小数点加減算装置の制御方式。
  4. 【請求項4】 前記比較選択回路と前記加減算回路とが
    前記第一入力オペランドをそのまま通過させて前記正規
    化用バレルシフタの入力とし、 前記第二の選択回路が前記正規化用バレルシフタの出力
    をそのまま通過させて左シフトを行なうことにより請求
    項1記載の浮動小数点加減算装置の動作を制御すること
    を特徴とする浮動小数点加減算装置の制御方式。
JP11559092A 1992-05-08 1992-05-08 浮動小数点加減算装置とその制御方式 Pending JPH05313857A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11559092A JPH05313857A (ja) 1992-05-08 1992-05-08 浮動小数点加減算装置とその制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11559092A JPH05313857A (ja) 1992-05-08 1992-05-08 浮動小数点加減算装置とその制御方式

Publications (1)

Publication Number Publication Date
JPH05313857A true JPH05313857A (ja) 1993-11-26

Family

ID=14666374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11559092A Pending JPH05313857A (ja) 1992-05-08 1992-05-08 浮動小数点加減算装置とその制御方式

Country Status (1)

Country Link
JP (1) JPH05313857A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034383A (ja) * 2009-08-03 2011-02-17 Nec Computertechno Ltd 演算装置及び演算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01111229A (ja) * 1987-10-26 1989-04-27 Nec Corp 浮動小数点加減算器
JPH0357019A (ja) * 1989-07-26 1991-03-12 Toshiba Corp 浮動小数点データ加減算回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01111229A (ja) * 1987-10-26 1989-04-27 Nec Corp 浮動小数点加減算器
JPH0357019A (ja) * 1989-07-26 1991-03-12 Toshiba Corp 浮動小数点データ加減算回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034383A (ja) * 2009-08-03 2011-02-17 Nec Computertechno Ltd 演算装置及び演算方法

Similar Documents

Publication Publication Date Title
US5369607A (en) Floating-point and fixed-point addition-subtraction assembly
US7720898B2 (en) Apparatus and method for adjusting exponents of floating point numbers
GB2565385A (en) An apparatus and method for estimating a shift amount when performing floating-point subtraction
JPH05313857A (ja) 浮動小数点加減算装置とその制御方式
JP2507183B2 (ja) 浮動小数点加減算装置
JP2555577B2 (ja) 演算装置
JPH07146777A (ja) 演算装置
JPH01282633A (ja) 非正規化数の処理方式
JP3295949B2 (ja) 浮動小数点演算方式とその装置
KR0176883B1 (ko) 복소수 승산기
JPH11102353A (ja) 浮動小数点積和演算器
JP2006338215A (ja) ベクトル積和演算回路
JPH05204606A (ja) 浮動小数点演算方式および装置
JP2552086B2 (ja) 浮動小数点演算装置
JPH01111229A (ja) 浮動小数点加減算器
GB2296803A (en) Apparatus for arithmetically operating floating-points
JP3124286B2 (ja) 浮動小数点数演算装置
JP2530504B2 (ja) 浮動小数点演算器
JPS62159224A (ja) 浮動小数点演算回路
JPS6149234A (ja) 浮動小数点乗算回路
JPH0469734A (ja) 浮動小数点加減算のアンダーフロー例外発生予測回路
JPH04160533A (ja) マイクロ・プロセッサ
JPS62168228A (ja) 浮動小数点積和演算器
JPH07120265B2 (ja) 2進浮動小数点乗算における丸め処理方式
JPH05100825A (ja) 正規化浮動小数点加減算器

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19981124