JPH07120265B2 - 2進浮動小数点乗算における丸め処理方式 - Google Patents
2進浮動小数点乗算における丸め処理方式Info
- Publication number
- JPH07120265B2 JPH07120265B2 JP62328409A JP32840987A JPH07120265B2 JP H07120265 B2 JPH07120265 B2 JP H07120265B2 JP 62328409 A JP62328409 A JP 62328409A JP 32840987 A JP32840987 A JP 32840987A JP H07120265 B2 JPH07120265 B2 JP H07120265B2
- Authority
- JP
- Japan
- Prior art keywords
- mantissa
- rounding
- bit
- processing
- 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.)
- Expired - Fee Related
Links
Description
【発明の詳細な説明】 〔概要〕 仮数部と指数部から成る2進浮動小数点数の乗算に係
り、特に、正規化された乗数と被乗数の仮数オペランド
の乗算結果を正規化し、かつその乗算結果のビット数を
オペランドのビット数に等しくさせる2進浮動小数点乗
算における丸め処理方式に関し、 丸め処理の結果において仮数オーバフローが発生する場
合でも処理段数を削減することを目的とし、 2進浮動小数点数の乗算システムにおいて乗数と被乗数
の仮数オペランドを乗算し中間結果を出力する乗算器
と、前記中間結果の下位ビットを少なくとも入力し指定
された情報に従って丸め処理ビットを生成する丸め処理
決定回路と、正規化される前の前記中間結果と前記丸め
処理ビットを入力し前記丸め処理決定回路により指定さ
れた丸め処理を実行する丸め加算器と、前記丸め加算器
の出力を入力し、前記中間結果において生成された第1
の仮数オーバフローと前記丸め加算器から生成される丸
め処理時の第2の仮数オーバーフローとにより制御され
丸め処理後の正規化を含めた正規化処理を実行する正規
化回路とを有し、前記中間結果に対する正規化と前記仮
数オーバフロー発生に対する正規化を丸め処理後に同時
に実行するように構成する。
り、特に、正規化された乗数と被乗数の仮数オペランド
の乗算結果を正規化し、かつその乗算結果のビット数を
オペランドのビット数に等しくさせる2進浮動小数点乗
算における丸め処理方式に関し、 丸め処理の結果において仮数オーバフローが発生する場
合でも処理段数を削減することを目的とし、 2進浮動小数点数の乗算システムにおいて乗数と被乗数
の仮数オペランドを乗算し中間結果を出力する乗算器
と、前記中間結果の下位ビットを少なくとも入力し指定
された情報に従って丸め処理ビットを生成する丸め処理
決定回路と、正規化される前の前記中間結果と前記丸め
処理ビットを入力し前記丸め処理決定回路により指定さ
れた丸め処理を実行する丸め加算器と、前記丸め加算器
の出力を入力し、前記中間結果において生成された第1
の仮数オーバフローと前記丸め加算器から生成される丸
め処理時の第2の仮数オーバーフローとにより制御され
丸め処理後の正規化を含めた正規化処理を実行する正規
化回路とを有し、前記中間結果に対する正規化と前記仮
数オーバフロー発生に対する正規化を丸め処理後に同時
に実行するように構成する。
本発明は、仮数部と指数部および符号部から成る2進浮
動小数点数の乗算に係り、特に、正規化された乗数と被
乗数の仮数オペランドの乗算結果を正規化し、かつその
乗算結果のビット数をオペランドのビット数に等しくさ
せる2進浮動小数点数における丸め処理方式に関する。
動小数点数の乗算に係り、特に、正規化された乗数と被
乗数の仮数オペランドの乗算結果を正規化し、かつその
乗算結果のビット数をオペランドのビット数に等しくさ
せる2進浮動小数点数における丸め処理方式に関する。
計算機内で扱われる数字は1と0から成る2進法で表現
され、2進数には固定小数点数と浮動小数点数がある。
一般に科学計算において扱われる数字は、小さいものか
ら大きいものまでダイナミックに変化するため、2進浮
動小数点方式が用いられることが多い。2進浮動小数点
方式は、仮数部と指数部および符号部で1つの2進数を
表現する方式で、各データのビット数は有限に固定され
ているため、仮数部の先頭に、無意味な“0"が並ばない
ように小数点位置と指数部の数を整える正規化処理が必
要となる。
され、2進数には固定小数点数と浮動小数点数がある。
一般に科学計算において扱われる数字は、小さいものか
ら大きいものまでダイナミックに変化するため、2進浮
動小数点方式が用いられることが多い。2進浮動小数点
方式は、仮数部と指数部および符号部で1つの2進数を
表現する方式で、各データのビット数は有限に固定され
ているため、仮数部の先頭に、無意味な“0"が並ばない
ように小数点位置と指数部の数を整える正規化処理が必
要となる。
また、正規化された2つの2進浮動小数点数の乗算処理
では、指数部同志の数が加えられ、同時に、仮数部の乗
算が乗算アルゴリズムに従って実行される。このとき、
その乗算結果のビット数は、乗数や被乗数のビット数の
2倍に長くなる。そのため、一般に、乗算結果のビット
数をそれらのオペランドのビット数に等しくなるよう
に、「切り上げ」または「切り捨て」による丸め処理が
必要となる。
では、指数部同志の数が加えられ、同時に、仮数部の乗
算が乗算アルゴリズムに従って実行される。このとき、
その乗算結果のビット数は、乗数や被乗数のビット数の
2倍に長くなる。そのため、一般に、乗算結果のビット
数をそれらのオペランドのビット数に等しくなるよう
に、「切り上げ」または「切り捨て」による丸め処理が
必要となる。
n+1ビットの有効数字(f0f1f2・・・fn)を持つ正規
化された2進浮動小数点数は、一般的な絶対値表示で表
現すれば、次のように表現される。
化された2進浮動小数点数は、一般的な絶対値表示で表
現すれば、次のように表現される。
(-1)S×(f0f1f2・・・fn)×2e ここで、Sは符号ビットでS=0のとき正、S=1のと
き負を表す。f1〜fnは小数点以下を表す数値ビット列、
eは指数である。また、有効数字の先頭のf0は20の重み
を表す整数部分で、f1、f2、・・・、fnは、それぞれ、
2-1、2-2、・・・2-nのそれぞれの重みを表す小数部分
である。以下において単に「仮数」という場合は整数部
も含めた有効数字全体を意味し、「仮数部」という場合
は小数点以下の小数部のみを意味するものとする。正規
化されている場合には、仮数では、f0が常に1となる。
き負を表す。f1〜fnは小数点以下を表す数値ビット列、
eは指数である。また、有効数字の先頭のf0は20の重み
を表す整数部分で、f1、f2、・・・、fnは、それぞれ、
2-1、2-2、・・・2-nのそれぞれの重みを表す小数部分
である。以下において単に「仮数」という場合は整数部
も含めた有効数字全体を意味し、「仮数部」という場合
は小数点以下の小数部のみを意味するものとする。正規
化されている場合には、仮数では、f0が常に1となる。
f0が1であるような2進浮動小数点数を正規化され
た2進浮動小数点数といい、正規化することによって限
られた有効数字の表示ビットを無駄なく使用することが
できる。
た2進浮動小数点数といい、正規化することによって限
られた有効数字の表示ビットを無駄なく使用することが
できる。
このような2進浮動小数点数を扱う演算処理装置におい
て、2つの正規化された浮動小数点数を乗算する場合、
乗数mxと被乗数myの仮数演算において、2>mx≧1、2
>my≧1であるから、乗算結果は4>mx×my≧1とな
り、その乗算結果は2(n+1)ビットになり、演算後
正規化前の仮数中間結果は以下のようなビット列で表現
することができる。
て、2つの正規化された浮動小数点数を乗算する場合、
乗数mxと被乗数myの仮数演算において、2>mx≧1、2
>my≧1であるから、乗算結果は4>mx×my≧1とな
り、その乗算結果は2(n+1)ビットになり、演算後
正規化前の仮数中間結果は以下のようなビット列で表現
することができる。
仮数中間結果=VP0.P1P2P3 ・・・PnPn+1・・・Pm(m=2n) ここで小数点はP0ビットとP1ビットの間にある。また、
Vは21の重みを持つビットで、Vビットが1のとき仮数
オーバフローOVF1が発生していることを表す。すなわ
ち、前記表現形式では仮数が2.0より小さい値しか表現
できないので、mx×my≧2の場合が仮数オーバフローと
なる。V=1のときには、仮数中間結果を1ビット右へ
シフトし、指数部演算結果に1を加える処理が必要であ
る。
Vは21の重みを持つビットで、Vビットが1のとき仮数
オーバフローOVF1が発生していることを表す。すなわ
ち、前記表現形式では仮数が2.0より小さい値しか表現
できないので、mx×my≧2の場合が仮数オーバフローと
なる。V=1のときには、仮数中間結果を1ビット右へ
シフトし、指数部演算結果に1を加える処理が必要であ
る。
また、OVF1以外に、丸め処理の実行時に発生する仮数オ
ーバフローOVF2がある。
ーバフローOVF2がある。
例えば、絶対表示された4ビットの2進浮動小数点数の
仮数、 1.101(e=0) は、10進数では、 20+2-1+2-3 となる。この数を2乗すると、 (20+2-1+2-3)2=21+2-1+2-3+2-6 となる。これを2進数で表現すると、 10.101001 となる。ここで、4ビットの仮数の乗算結果は8ビット
となり、最上位ビットが前述のVビットである。この場
合はVビットが1であるからOVF1=1である。OVF1=1
は仮数中間結果において仮数オーバフローが発生してい
ることを表す。OVF1=1の場合は仮数中間結果を全体に
1ビット右にシフトし、指数部演算結果に1を加える演
算後正規化処理が必要となる。従って、仮数の演算後正
規化結果は 1.0101001 となる。
仮数、 1.101(e=0) は、10進数では、 20+2-1+2-3 となる。この数を2乗すると、 (20+2-1+2-3)2=21+2-1+2-3+2-6 となる。これを2進数で表現すると、 10.101001 となる。ここで、4ビットの仮数の乗算結果は8ビット
となり、最上位ビットが前述のVビットである。この場
合はVビットが1であるからOVF1=1である。OVF1=1
は仮数中間結果において仮数オーバフローが発生してい
ることを表す。OVF1=1の場合は仮数中間結果を全体に
1ビット右にシフトし、指数部演算結果に1を加える演
算後正規化処理が必要となる。従って、仮数の演算後正
規化結果は 1.0101001 となる。
このようにして得られた仮数の演算後正規化結果を小数
点以下第3位までに丸めることにより4ビットの仮数演
算結果を得ることを考える。例えば、小数点以下第4位
から下位の数値が2-4より大きい場合に小数点以下第3
位のビット位置に1を加えるとすれば、その切り上げに
よる丸め処理の結果は 1.010+0.001=1.011 となる。ところが、もし、仮数中間結果が、 01.111101 であったとすれば、その丸め処理の結果は、 1.111+0.001=10.000 となり、mx×my=2となり、仮数演算結果の整数部が1
より大きくなるため仮数オーバフローOVF2が発生する。
このように、丸め処理時に、仮数オーバフローOVF2が発
生された場合には、仮数の丸め処理結果を全体に1ビッ
ト右にシフトし指数部に1を加える丸め処理後の正規化
処理が必要となる。
点以下第3位までに丸めることにより4ビットの仮数演
算結果を得ることを考える。例えば、小数点以下第4位
から下位の数値が2-4より大きい場合に小数点以下第3
位のビット位置に1を加えるとすれば、その切り上げに
よる丸め処理の結果は 1.010+0.001=1.011 となる。ところが、もし、仮数中間結果が、 01.111101 であったとすれば、その丸め処理の結果は、 1.111+0.001=10.000 となり、mx×my=2となり、仮数演算結果の整数部が1
より大きくなるため仮数オーバフローOVF2が発生する。
このように、丸め処理時に、仮数オーバフローOVF2が発
生された場合には、仮数の丸め処理結果を全体に1ビッ
ト右にシフトし指数部に1を加える丸め処理後の正規化
処理が必要となる。
従来、2進浮動小数点数の仮数乗算結果の丸め処理を行
う場合、仮数演算結果の正規化処理実行後に丸め処理を
行っていた。この理由は、丸め処理の対象ビット位置が
固定され、処理が簡単化されるためである。しかし、丸
め処理の結果、仮数オーバフローOVF2が発生した場合に
再び指数部、および仮数の正規化を行う必要が生じる。
う場合、仮数演算結果の正規化処理実行後に丸め処理を
行っていた。この理由は、丸め処理の対象ビット位置が
固定され、処理が簡単化されるためである。しかし、丸
め処理の結果、仮数オーバフローOVF2が発生した場合に
再び指数部、および仮数の正規化を行う必要が生じる。
第2図は、従来の2進浮動小数点乗算処理のシステム構
成図である。
成図である。
21は乗数と被乗数の仮数オペランドを乗算する乗算器、
22は仮数乗算結果を格納する中間結果レジスタ、25は仮
数乗算結果を正規化する仮数演算後正規化回路、23は正
規化された結果の下位ビットの大きさと丸めモードおよ
び結果の符号により切り上げか切り捨ての処理を決定し
切り上げ処理の場合には正規化された結果の上位ビット
列の最下位ビット位置に加える丸め処理ビットを発生す
る丸め処理決定回路、24は正規化された仮数結果の上位
ビットと丸め処理ビットを加える丸め加算器、26は指数
部演算後正規化回路、27は丸め後正規化回路である。
22は仮数乗算結果を格納する中間結果レジスタ、25は仮
数乗算結果を正規化する仮数演算後正規化回路、23は正
規化された結果の下位ビットの大きさと丸めモードおよ
び結果の符号により切り上げか切り捨ての処理を決定し
切り上げ処理の場合には正規化された結果の上位ビット
列の最下位ビット位置に加える丸め処理ビットを発生す
る丸め処理決定回路、24は正規化された仮数結果の上位
ビットと丸め処理ビットを加える丸め加算器、26は指数
部演算後正規化回路、27は丸め後正規化回路である。
仮数演算結果が格納されている中間結果レジスタ22の中
間結果に対して、仮数オーバフローOVF1が発生している
場合には、仮数演算後正規化回路25で仮数乗算結果が1
ビット右へシフトされ、同時に、指数部演算後正規化回
路26では、指数部eに1が加えられる。
間結果に対して、仮数オーバフローOVF1が発生している
場合には、仮数演算後正規化回路25で仮数乗算結果が1
ビット右へシフトされ、同時に、指数部演算後正規化回
路26では、指数部eに1が加えられる。
一方、丸め加算器24から生成されるOVF2は、先に説明し
た丸め処理の加算動作において発生する第2の仮数オー
バフローであり、OVF2=1のとき、丸め後正規化回路27
で、仮数乗算結果の仮数全体を1ビット右へシフトし、
指数部演算後正規化回路26で、指数部演算結果に1を加
える処理が正規化処理後に実行される。
た丸め処理の加算動作において発生する第2の仮数オー
バフローであり、OVF2=1のとき、丸め後正規化回路27
で、仮数乗算結果の仮数全体を1ビット右へシフトし、
指数部演算後正規化回路26で、指数部演算結果に1を加
える処理が正規化処理後に実行される。
このように、従来の丸め処理方式では、仮数演算後正規
化回路25による正規化処理を先に実行してから丸め後正
規化回路27で丸め処理による仮数オーバフローOVF2に対
する丸め後正規化処理を実行しているため、論理段数が
余分にかかるという問題が生じていた。
化回路25による正規化処理を先に実行してから丸め後正
規化回路27で丸め処理による仮数オーバフローOVF2に対
する丸め後正規化処理を実行しているため、論理段数が
余分にかかるという問題が生じていた。
本発明は、丸め処理の結果において仮数オーバフローが
発生する場合でも処理段数を削減することのできる2進
浮動小数点乗算における丸め処理方式を提供することを
目的とする。
発生する場合でも処理段数を削減することのできる2進
浮動小数点乗算における丸め処理方式を提供することを
目的とする。
第1図は本発明の2進浮動小数点乗算処理のシステム構
成図である。
成図である。
11は乗数と被乗数の仮数オペランドを乗算する乗算器、
12は仮数乗算結果を格納する中間結果レジスタ、13は正
規化される前の中間結果の下位ビットの大きさと丸めモ
ードおよび結果の符号により、切り上げか切り下げかを
決定し、切り上げの場合は正規化される前の結果の丸め
ビットに加える丸め処理ビットを発生する丸め処理決定
回路、14は正規化される前の結果の丸めビットと丸め処
理ビットを加える丸め加算器、15は丸め処理による仮数
オーバフローOVF2の発生時の正規化も含めて仮数乗算結
果を正規化する仮数演算後正規化回路、16は指数部演算
後正規化回路である。
12は仮数乗算結果を格納する中間結果レジスタ、13は正
規化される前の中間結果の下位ビットの大きさと丸めモ
ードおよび結果の符号により、切り上げか切り下げかを
決定し、切り上げの場合は正規化される前の結果の丸め
ビットに加える丸め処理ビットを発生する丸め処理決定
回路、14は正規化される前の結果の丸めビットと丸め処
理ビットを加える丸め加算器、15は丸め処理による仮数
オーバフローOVF2の発生時の正規化も含めて仮数乗算結
果を正規化する仮数演算後正規化回路、16は指数部演算
後正規化回路である。
ここで、入力オペランドの仮数部の最下位ビットとその
次の上位のビットと同じ重みを持つビット位置を丸めビ
ット位置と呼び、丸めビット位置にあるビットを特に丸
めビットと呼ぶものとする。
次の上位のビットと同じ重みを持つビット位置を丸めビ
ット位置と呼び、丸めビット位置にあるビットを特に丸
めビットと呼ぶものとする。
丸め加算器14は丸め処理決定回路13により指定された丸
め処理(例えば、仮数オペランドが24ビット{a
(0)、a(1)、・・・a(23)}のとき、丸めビッ
トa(22)の丸めビット位置に1を加えるか、丸めビッ
トa(23)の丸めビット位置に1を加えるか、何も加え
ないのいずれか)を仮数中間結果に対して行い、その丸
め処理によって仮数オーバフローが発生した場合には信
号OVF2を発生する。仮数演算後正規化回路15は丸め加算
器14の出力を入力とし、また丸め処理による仮数オーバ
フロー信号OVF2と中間結果におけるVビットの値(OVF
1)によって制御され、仮数結果を一度に正規化して出
力する。
め処理(例えば、仮数オペランドが24ビット{a
(0)、a(1)、・・・a(23)}のとき、丸めビッ
トa(22)の丸めビット位置に1を加えるか、丸めビッ
トa(23)の丸めビット位置に1を加えるか、何も加え
ないのいずれか)を仮数中間結果に対して行い、その丸
め処理によって仮数オーバフローが発生した場合には信
号OVF2を発生する。仮数演算後正規化回路15は丸め加算
器14の出力を入力とし、また丸め処理による仮数オーバ
フロー信号OVF2と中間結果におけるVビットの値(OVF
1)によって制御され、仮数結果を一度に正規化して出
力する。
同様に指数部演算後正規化回路16は信号OVF1およびOVF2
によって制御され、仮数オーバフローによる指数部の正
規化補正を行う。このように本発明は仮数の丸め処理を
正規化処理前に行うことによって、正規化処理を一度で
済ませることができ、また丸め処理における仮数オーバ
フローの発生を先に検出するため指数部の正規化補正も
高速に実行することができる。
によって制御され、仮数オーバフローによる指数部の正
規化補正を行う。このように本発明は仮数の丸め処理を
正規化処理前に行うことによって、正規化処理を一度で
済ませることができ、また丸め処理における仮数オーバ
フローの発生を先に検出するため指数部の正規化補正も
高速に実行することができる。
本発明では正規化された2進浮動小数点数の仮数中間結
果の正規化処理は、仮数オーバフロー(OVF1)が発生し
た場合にたかだか右へ1ビットであることに注目し、仮
数オーバフロー(OVF1)が発生している場合の丸め処理
と発生していない場合の丸め処理を予め用意し、仮数オ
ーバフロー(OVF1)発生の有無により両者を切替える。
すなわち、正規化処理の前の中間結果に対して予め丸め
処理決定回路13と丸め加算器14で丸め処理を行い、丸め
処理によって発生する仮数オーバフロー(OVF2)も含め
て仮数演算後正規化回路15で正規化処理を行うことによ
って処理段数を削減し処理の高速化を図る。
果の正規化処理は、仮数オーバフロー(OVF1)が発生し
た場合にたかだか右へ1ビットであることに注目し、仮
数オーバフロー(OVF1)が発生している場合の丸め処理
と発生していない場合の丸め処理を予め用意し、仮数オ
ーバフロー(OVF1)発生の有無により両者を切替える。
すなわち、正規化処理の前の中間結果に対して予め丸め
処理決定回路13と丸め加算器14で丸め処理を行い、丸め
処理によって発生する仮数オーバフロー(OVF2)も含め
て仮数演算後正規化回路15で正規化処理を行うことによ
って処理段数を削減し処理の高速化を図る。
本発明に用いる2進浮動小数点の表現形式は2進浮動小
数点数を表すのに広く用いられている絶対値表示で第1
図(b)に示されるように、その形式を以下に示す。
数点数を表すのに広く用いられている絶対値表示で第1
図(b)に示されるように、その形式を以下に示す。
・Sは符号部でS=0のとき正、S=1のとき負を表
す。
す。
・Eは指数部で実際の指数eに適当な正数(バイアス
値)が加えられている。バイアスは指数部を常に正数と
するためのものである。ただし以下においては説明を簡
単化するためバイアス値=0とする。
値)が加えられている。バイアスは指数部を常に正数と
するためのものである。ただし以下においては説明を簡
単化するためバイアス値=0とする。
・Fは仮数部で小数点以下を表すビット列f1f2f3・・・
fnで構成される。整数部f0は1であることが暗黙に
仮定されている。
fnで構成される。整数部f0は1であることが暗黙に
仮定されている。
以下において単に仮数という場合は整数部も含めた有効
数字全体を意味し、仮数部という場合は小数点以下の小
数部のみを意味するものとする。
数字全体を意味し、仮数部という場合は小数点以下の小
数部のみを意味するものとする。
本発明は上記のような浮動小数点形式で表わされる正規
化された2進浮動小数点数乗算に関するものである。こ
のような浮動小数点表現形式では、一般に指数部の最大
値および最小値は特殊な数(無限大、0、不正規化数
等)を表すために予約されているが、そのような数は別
途の手段により処理可能であるから本発明では説明を省
略する。
化された2進浮動小数点数乗算に関するものである。こ
のような浮動小数点表現形式では、一般に指数部の最大
値および最小値は特殊な数(無限大、0、不正規化数
等)を表すために予約されているが、そのような数は別
途の手段により処理可能であるから本発明では説明を省
略する。
第1図(c)に示されるように、2つの正規化された2
進浮動小数点数をXおよびYとし、その乗算結果をZと
する。また、X、YおよびZは同一のデータ長とする。
進浮動小数点数をXおよびYとし、その乗算結果をZと
する。また、X、YおよびZは同一のデータ長とする。
本発明は仮数演算処理に関するものであるため、主に仮
数部演算について説明し、指数オーバフロー、指数アン
ダフロー等は例外処理として別途処理されるものとして
説明は省略する。XとYの乗算は符号演算、指数演算、
および仮数演算に大別でき、概略以下の通り処理され
る。
数部演算について説明し、指数オーバフロー、指数アン
ダフロー等は例外処理として別途処理されるものとして
説明は省略する。XとYの乗算は符号演算、指数演算、
および仮数演算に大別でき、概略以下の通り処理され
る。
(1)符号演算 乗算結果Zの符号は、XおよびYの符号の排他的論理和
として得られる。
として得られる。
(2)指数演算 XとYの指数部を加算し、余分に加算されているバイア
ス値を減ずる。
ス値を減ずる。
(3)仮数演算 XとYの仮数部の上位に1ビットの1(整数部)を
付加したものをそれぞれmx、myとし、mxとmyを乗算す
る。ここで2>mx≧1、2>my≧1であるから4>mx×
my≧1となる。上記表現形式では仮数が、2.0より小さ
い値しか表現できないから、mx×my≧2の場合は仮数オ
ーバフロー(OVF1)が発生する。
付加したものをそれぞれmx、myとし、mxとmyを乗算す
る。ここで2>mx≧1、2>my≧1であるから4>mx×
my≧1となる。上記表現形式では仮数が、2.0より小さ
い値しか表現できないから、mx×my≧2の場合は仮数オ
ーバフロー(OVF1)が発生する。
仮数オーバフロー(OVF1)が発生した場合は、仮数の乗
算結果を1ビット右シフトし指数部演算結果に1を加え
て補正する演算後正規化処理が必要となる。
算結果を1ビット右シフトし指数部演算結果に1を加え
て補正する演算後正規化処理が必要となる。
このようにして得られた仮数演算結果は乗算結果Zの仮
数部のビット長よりも長いため、適当なビット位置で丸
め処理が行われる。
数部のビット長よりも長いため、適当なビット位置で丸
め処理が行われる。
入力オペランドの仮数部の最下位ビットとその次の上位
のビットと同じ重みを持つビット位置を丸めビット位置
と呼び、丸めビット位置にあるビットを特に丸めビット
と呼ぶものとする。
のビットと同じ重みを持つビット位置を丸めビット位置
と呼び、丸めビット位置にあるビットを特に丸めビット
と呼ぶものとする。
丸め処理は、丸めモードと仮数演算結果の丸めビットの
値及びそれより下位にあるビットの値によって決定され
るが大別すれば「切り上げ」か「切り捨て」のどちらか
の処理が選択される。「切り捨て」による場合は仮数演
算結果の小数点以下丸めビット位置までの部分を演算結
果Zの仮数部とすればよい。
値及びそれより下位にあるビットの値によって決定され
るが大別すれば「切り上げ」か「切り捨て」のどちらか
の処理が選択される。「切り捨て」による場合は仮数演
算結果の小数点以下丸めビット位置までの部分を演算結
果Zの仮数部とすればよい。
「切り上げ」による場合は丸めビットに1を加算
し、その結果の小数点以下丸めビット位置までの部分を
演算結果Zの仮数部とすればよい。
し、その結果の小数点以下丸めビット位置までの部分を
演算結果Zの仮数部とすればよい。
ただし、丸め処理において切り上げが行われる場合は、
切り上げ処理によって仮数オーバフロー(OVF2)が発生
することがある。仮数オーバフロー(OVF2)の検出は例
えば仮数中間結果の20の重みを持つビット位置から丸め
処理による加算時にキャリーが発生するか否かで行うこ
とができ、この場合キャリーが発生するときOVF2=1と
なる。丸め処理において仮数オーバフロー(OVF2)が発
生した場合には、丸め処理後の仮数演算結果を1ビット
右へシフトし、指数部演算結果に1を加えて補正する演
算後正規化処理が必要となる。丸め処理において仮数オ
ーバフロー(OVF2)が発生した場合は、演算後正規化処
理後の仮数演算結果の小数点以下丸めビット位置までの
部分を演算結果Zの仮数部とすればよい。
切り上げ処理によって仮数オーバフロー(OVF2)が発生
することがある。仮数オーバフロー(OVF2)の検出は例
えば仮数中間結果の20の重みを持つビット位置から丸め
処理による加算時にキャリーが発生するか否かで行うこ
とができ、この場合キャリーが発生するときOVF2=1と
なる。丸め処理において仮数オーバフロー(OVF2)が発
生した場合には、丸め処理後の仮数演算結果を1ビット
右へシフトし、指数部演算結果に1を加えて補正する演
算後正規化処理が必要となる。丸め処理において仮数オ
ーバフロー(OVF2)が発生した場合は、演算後正規化処
理後の仮数演算結果の小数点以下丸めビット位置までの
部分を演算結果Zの仮数部とすればよい。
第1図(a)は本発明の2進浮動小数点数乗算処理のシ
ステム構成図で、正規化処理前に丸め処理を実行するシ
ステムである。
ステム構成図で、正規化処理前に丸め処理を実行するシ
ステムである。
本発明では正規化された2進浮動小数点数の仮数中間結
果の正規化処理は、仮数オーバフロー(OVF1)が発生し
た場合にたかだか右へ1ビットであることに注目し、仮
数オーバフロー(OVF1)が発生している場合の丸め処理
と発生していない場合の丸め処理を予め用意し、仮数オ
ーバフロー(OVF1)発生の有無により両者を切替える。
すなわち、正規化処理の前の中間結果に対して予め丸め
処理決定回路13と丸め加算器14で丸め処理を行い、丸め
処理によって発生する仮数オーバフロー(OVF2)も含め
て仮数演算後正規化回路15で正規化処理を行うことによ
って処理段数を削減し処理の高速化を図る。
果の正規化処理は、仮数オーバフロー(OVF1)が発生し
た場合にたかだか右へ1ビットであることに注目し、仮
数オーバフロー(OVF1)が発生している場合の丸め処理
と発生していない場合の丸め処理を予め用意し、仮数オ
ーバフロー(OVF1)発生の有無により両者を切替える。
すなわち、正規化処理の前の中間結果に対して予め丸め
処理決定回路13と丸め加算器14で丸め処理を行い、丸め
処理によって発生する仮数オーバフロー(OVF2)も含め
て仮数演算後正規化回路15で正規化処理を行うことによ
って処理段数を削減し処理の高速化を図る。
例えば、乗算器11の2つのオペランドに4ビットの2進
浮動小数点数の仮数が入力されると、中間結果レジスタ
12(削除可能)には、上記の仮数の乗算結果、例えば、 01.110101 が格納され、仮数中間結果は8ビットになる。また指数
部演算後正規化回路16には、2つのオペランドの指数部
(e=0)同志の和、例えば0がまず、格納される。丸
め処理決定回路13は、例えば、正規化済の仮数乗算結果
で考えて、小数点以下第4位以下が2-4より大きい場合
に切り上げによる丸め処理を行うとすれば、仮数中間結
果で仮数オーバフローOVF1が発生していなければ、仮数
中間結果の下位3ビットが{100}より大きい場合に仮
数中間結果の上位から5ビット目に1を加え、仮数オー
バフローOVF1が発生していれば、仮数中間結果の下位4
ビットが{100}より大きい場合に仮数中間結果の上位
から4ビット目に1を加える指示を丸め加算器14に送
る。
浮動小数点数の仮数が入力されると、中間結果レジスタ
12(削除可能)には、上記の仮数の乗算結果、例えば、 01.110101 が格納され、仮数中間結果は8ビットになる。また指数
部演算後正規化回路16には、2つのオペランドの指数部
(e=0)同志の和、例えば0がまず、格納される。丸
め処理決定回路13は、例えば、正規化済の仮数乗算結果
で考えて、小数点以下第4位以下が2-4より大きい場合
に切り上げによる丸め処理を行うとすれば、仮数中間結
果で仮数オーバフローOVF1が発生していなければ、仮数
中間結果の下位3ビットが{100}より大きい場合に仮
数中間結果の上位から5ビット目に1を加え、仮数オー
バフローOVF1が発生していれば、仮数中間結果の下位4
ビットが{100}より大きい場合に仮数中間結果の上位
から4ビット目に1を加える指示を丸め加算器14に送
る。
例えば、仮数中間結果が上記の{01.110101}であると
すれば、仮数オーバフローOVF1が発生しておらず、かつ
仮数中間結果の下位3ビットが{100}より大きいので
丸め処理決定回路13は{00.001}を仮数中間結果に加え
る指示を丸め加算器14に送出する。これにより丸め加算
器14において仮数中間結果の{01.110101}と{00.00
1}が加算され、仮数演算後正規化回路15に {01.110101}+{00.001}={01.111101} が入力される。この加算処理において20の重みを持つビ
ット位置から上位へのキャリーは発生されないから丸め
処理による仮数オーバフローOVF2は発生していない。上
の例では仮数オーバフローOVF1およびOVF2のどちらも発
生していないため、丸め処理後の仮数結果はすでに正規
化された形となっている。そのため仮数演算後正規化回
路15では実質的には正規化処理は実行されず、丸め処理
後の最終結果の仮数は 1.111 となる。
すれば、仮数オーバフローOVF1が発生しておらず、かつ
仮数中間結果の下位3ビットが{100}より大きいので
丸め処理決定回路13は{00.001}を仮数中間結果に加え
る指示を丸め加算器14に送出する。これにより丸め加算
器14において仮数中間結果の{01.110101}と{00.00
1}が加算され、仮数演算後正規化回路15に {01.110101}+{00.001}={01.111101} が入力される。この加算処理において20の重みを持つビ
ット位置から上位へのキャリーは発生されないから丸め
処理による仮数オーバフローOVF2は発生していない。上
の例では仮数オーバフローOVF1およびOVF2のどちらも発
生していないため、丸め処理後の仮数結果はすでに正規
化された形となっている。そのため仮数演算後正規化回
路15では実質的には正規化処理は実行されず、丸め処理
後の最終結果の仮数は 1.111 となる。
また、もし、仮数中間結果として中間結果レジスタ12
に、 01.111101 が格納され、指数部演算後正規化回路16内に例えば、指
数演算結果e=00(2進数)が格納されたとする。この
とき、OVF1=0であり、かつ仮数中間結果の下位3ビッ
トが{100}より大きいので丸め処理決定回路13は{00.
001}を加算する指示を丸め加算器14に送出する。これ
により丸め加算器14において仮数中間結果の{01.11110
1}と{00.001}が加算され、仮数演算後正規化回路15
に {01.111101}+{00.001}={10.000101} が入力される。この加算処理においては20の重みを持つ
ビット位置から上位へのキャリーが発生するため、仮数
オーバフローOVF2が発生する。このとき、本発明の仮数
演算後正規化回路15と指数部演算後正規化回路16では、
OVF2=1による丸め処理の正規化を実行する。すなわ
ち、仮数部{10.000101}を右に1ビットシフトして
{1.0000101}にし、指数部に1を加えe=01にする。
このようにして正規化された仮数乗算結果は、丸め処理
も含めて、 1.000×21 となる。
に、 01.111101 が格納され、指数部演算後正規化回路16内に例えば、指
数演算結果e=00(2進数)が格納されたとする。この
とき、OVF1=0であり、かつ仮数中間結果の下位3ビッ
トが{100}より大きいので丸め処理決定回路13は{00.
001}を加算する指示を丸め加算器14に送出する。これ
により丸め加算器14において仮数中間結果の{01.11110
1}と{00.001}が加算され、仮数演算後正規化回路15
に {01.111101}+{00.001}={10.000101} が入力される。この加算処理においては20の重みを持つ
ビット位置から上位へのキャリーが発生するため、仮数
オーバフローOVF2が発生する。このとき、本発明の仮数
演算後正規化回路15と指数部演算後正規化回路16では、
OVF2=1による丸め処理の正規化を実行する。すなわ
ち、仮数部{10.000101}を右に1ビットシフトして
{1.0000101}にし、指数部に1を加えe=01にする。
このようにして正規化された仮数乗算結果は、丸め処理
も含めて、 1.000×21 となる。
また、もし、仮数中間結果として中間結果レジスタ12
に、 10.011101 が格納され、指数部演算後正規化回路16内に、例えば、
指数演算結果e=00が格納されたとする。このとき、OV
F1=1であり、かつ仮数中間結果の下位4ビットが{10
00}より大きいので丸め処理決定回路13は{00.01}を
加算する指示を丸め加算器14に送出する。これにより丸
め加算器14において仮数中間結果の{10.011101}と{0
0.01}が加算され、仮数演算後正規化回路15に {10.011101}+{00.01}={10.101101} が入力される。この加算処理においては20の重みを持つ
ビット位置から上位へのキャリーが発生しないため、仮
数オーバフローOVF2=0となる。このとき、本発明の仮
数演算後正規化回路15と指数部演算後正規化回路16は、
OVF1=1による正規化のみ実行する。すなわち、仮数
{10.101101}を右に1ビットシフトして{1.0101101}
にし、指数部に1を加えe=01にする。このようにし
て、正規化された仮数乗算結果は、丸め処理も含めて 1.010×21 となる。この仮数は中間結果{10.011101}を先に1ビ
ット右シフトしてできる{1.0011101}の上位より4ビ
ット目に1を加えた上位4ビットに等しい。
に、 10.011101 が格納され、指数部演算後正規化回路16内に、例えば、
指数演算結果e=00が格納されたとする。このとき、OV
F1=1であり、かつ仮数中間結果の下位4ビットが{10
00}より大きいので丸め処理決定回路13は{00.01}を
加算する指示を丸め加算器14に送出する。これにより丸
め加算器14において仮数中間結果の{10.011101}と{0
0.01}が加算され、仮数演算後正規化回路15に {10.011101}+{00.01}={10.101101} が入力される。この加算処理においては20の重みを持つ
ビット位置から上位へのキャリーが発生しないため、仮
数オーバフローOVF2=0となる。このとき、本発明の仮
数演算後正規化回路15と指数部演算後正規化回路16は、
OVF1=1による正規化のみ実行する。すなわち、仮数
{10.101101}を右に1ビットシフトして{1.0101101}
にし、指数部に1を加えe=01にする。このようにし
て、正規化された仮数乗算結果は、丸め処理も含めて 1.010×21 となる。この仮数は中間結果{10.011101}を先に1ビ
ット右シフトしてできる{1.0011101}の上位より4ビ
ット目に1を加えた上位4ビットに等しい。
以上の例では、OVF1=OVF2=0とOVF2=1、OVF1=1の
場合を説明したが、最終結果の仮数有効数字桁数を仮数
入力オペランドと同じビット数にする丸め処理を行う場
合は中間結果の仮数オーバフロー(OVF1)と丸め処理に
よる仮数オーバフロー(OVF2)は同時には発生しない。
そのため、正規化処理前の中間結果においてV(OVF1)
=0で「切り上げ」による丸め処理が必要な場合はP
i(上の例では、i=3)の丸めビットに1を加える処
理とV=1で「切り上げ」による丸め処理が必要な場合
にはPi-1の丸めビットに1を加える処理を用意してお
き、Vビットの値によって両者を切り換えることにより
正規化処理前に丸め処理を行い、丸め処理後に正規化処
理を行うことによって正規化処理を一度で済ますことが
できる。また丸め処理によって仮数オーバフロー(OVF
2)が発生する場合でも正規化処理後に丸め処理を行う
従来法にくらべて本発明は丸め処理時の正規化処理に要
する論理段数の分だけ速くすることが可能となる。従っ
て、本発明のように丸め処理後に正規化処理を行う方式
であれば中間結果の仮数オーバフロー(OVF1)と丸め処
理による仮数オーバフロー(OVF2)を同一に扱えるので
より効果的となる。
場合を説明したが、最終結果の仮数有効数字桁数を仮数
入力オペランドと同じビット数にする丸め処理を行う場
合は中間結果の仮数オーバフロー(OVF1)と丸め処理に
よる仮数オーバフロー(OVF2)は同時には発生しない。
そのため、正規化処理前の中間結果においてV(OVF1)
=0で「切り上げ」による丸め処理が必要な場合はP
i(上の例では、i=3)の丸めビットに1を加える処
理とV=1で「切り上げ」による丸め処理が必要な場合
にはPi-1の丸めビットに1を加える処理を用意してお
き、Vビットの値によって両者を切り換えることにより
正規化処理前に丸め処理を行い、丸め処理後に正規化処
理を行うことによって正規化処理を一度で済ますことが
できる。また丸め処理によって仮数オーバフロー(OVF
2)が発生する場合でも正規化処理後に丸め処理を行う
従来法にくらべて本発明は丸め処理時の正規化処理に要
する論理段数の分だけ速くすることが可能となる。従っ
て、本発明のように丸め処理後に正規化処理を行う方式
であれば中間結果の仮数オーバフロー(OVF1)と丸め処
理による仮数オーバフロー(OVF2)を同一に扱えるので
より効果的となる。
一般に、(n+1)ビットの2進浮動小数点数の乗算に
おいて、仮数中間結果と正規化された仮数演算結果はそ
れぞれ以下のビット列で表現できる。
おいて、仮数中間結果と正規化された仮数演算結果はそ
れぞれ以下のビット列で表現できる。
仮数中間結果=VP0.P1P2P3・・・PnPn+1・・・Pm(m
=2n) 正規化仮数演算結果=L.N1N2N3・・・NnNn+1・・・NmN
m+1(m=2n) ここで、Vは2′の重みを持ち、V=1の場合がオーバ
フローOVF1で、正規化された演算結果の最上位ビットの
Lは整数部で、小数点はLビットとN1ビットの間にあ
り、かつ正規化されているので、 L=1 となる。すなわち、V=0のとき、P0が0でない最上位
のビットであるからLはP0に等しく、正規化処理におい
て右シフトされず、V=1のときは右シフトされてL=
V=1となる。従って仮数中間結果の演算後正規化は仮
数オーバフロー(OVF1)が発生した場合にのみ仮数部を
1ビット右シフトし、指数部の演算結果に1を加えるだ
けでよい。
=2n) 正規化仮数演算結果=L.N1N2N3・・・NnNn+1・・・NmN
m+1(m=2n) ここで、Vは2′の重みを持ち、V=1の場合がオーバ
フローOVF1で、正規化された演算結果の最上位ビットの
Lは整数部で、小数点はLビットとN1ビットの間にあ
り、かつ正規化されているので、 L=1 となる。すなわち、V=0のとき、P0が0でない最上位
のビットであるからLはP0に等しく、正規化処理におい
て右シフトされず、V=1のときは右シフトされてL=
V=1となる。従って仮数中間結果の演算後正規化は仮
数オーバフロー(OVF1)が発生した場合にのみ仮数部を
1ビット右シフトし、指数部の演算結果に1を加えるだ
けでよい。
このことは、丸め処理時に発生する仮数オーバフローOV
F2に対しても同様で、丸め加算器24の結果、 VQ0.Q1Q2・・・Qm においてV=0の時は、Q0が0でない最上位のビットで
あるからLはQ0に等しく、シフトなしとし、V=1のと
きは右へ1ビットシフトし、指数部の演算結果に1が加
えられる。
F2に対しても同様で、丸め加算器24の結果、 VQ0.Q1Q2・・・Qm においてV=0の時は、Q0が0でない最上位のビットで
あるからLはQ0に等しく、シフトなしとし、V=1のと
きは右へ1ビットシフトし、指数部の演算結果に1が加
えられる。
ここで丸め加算器24の結果においてV=1となるのは、
仮数中間結果においてV=1であった場合(OVF1)か、
丸め加算処理時にQ0のビット位置から上位へキャリーが
発生する(OVF2)場合のどちらかであり、両者は同時に
は起こりえない。
仮数中間結果においてV=1であった場合(OVF1)か、
丸め加算処理時にQ0のビット位置から上位へキャリーが
発生する(OVF2)場合のどちらかであり、両者は同時に
は起こりえない。
従って、丸め加算器24の結果のVビットとOVF1とOVF2の
検出信号を論理ORした結果は等しい。従って演算後正規
化回路15乃至16は丸め加算器24の結果のVビットの値
か、あるいはOVF1とOVF2のOR論理によって制御すること
によってOVF1とOVF2を同一に扱うことが可能となる。本
実施例では後者の方を示してある。
検出信号を論理ORした結果は等しい。従って演算後正規
化回路15乃至16は丸め加算器24の結果のVビットの値
か、あるいはOVF1とOVF2のOR論理によって制御すること
によってOVF1とOVF2を同一に扱うことが可能となる。本
実施例では後者の方を示してある。
なお、OVF1の検出も仮数中間結果の算出処理時にP0のビ
ット位置から上位へキャリーが発生するか否かにより検
出することも可能である。
ット位置から上位へキャリーが発生するか否かにより検
出することも可能である。
以上述べたように、本発明では、正規化された2進浮動
小数点数の乗算結果の正規化処理は、仮数オーバフロー
(OVF1、OVF2)が発生した場合にシフトはたかだか右へ
1ビットであることに注目し、仮数オーバフロー(OVF
1)が発生している場合の丸め処理と発生していない場
合の丸め処理を予め用意しておき、仮数オーバフロー
(OVF1)発生の有無により両者を切替える。すなわち、
正規化処理の前の結果に対して予め回路13、14で丸め処
理を行い、丸め処理によって発生する仮数オーバフロー
(OVF2)も含めて回路15で正規化処理を行うことによっ
て処理段数を削減し処理の高速化を図る。
小数点数の乗算結果の正規化処理は、仮数オーバフロー
(OVF1、OVF2)が発生した場合にシフトはたかだか右へ
1ビットであることに注目し、仮数オーバフロー(OVF
1)が発生している場合の丸め処理と発生していない場
合の丸め処理を予め用意しておき、仮数オーバフロー
(OVF1)発生の有無により両者を切替える。すなわち、
正規化処理の前の結果に対して予め回路13、14で丸め処
理を行い、丸め処理によって発生する仮数オーバフロー
(OVF2)も含めて回路15で正規化処理を行うことによっ
て処理段数を削減し処理の高速化を図る。
なお、丸めモードには、一般に次のような4種があり、
入力オペランドの仮数のビット数が24のとき、各モード
に対する本発明の丸め処理の方法を以下に説明する。
入力オペランドの仮数のビット数が24のとき、各モード
に対する本発明の丸め処理の方法を以下に説明する。
(1)最近値丸め(RN)モード 無限精度で求めた中間結果に最も近い値を持つ結果にな
る。もし中間結果に最も近い値への差が正確に等しけれ
ば、有効数字の最下位桁がゼロであるような結果とな
る。
る。もし中間結果に最も近い値への差が正確に等しけれ
ば、有効数字の最下位桁がゼロであるような結果とな
る。
(2)+∞方向丸め(RP)モード(切り上げ) 無限精度で求めた中間結果に最も近く、かつ小さくない
値を持つ結果となる。
値を持つ結果となる。
(3)−∞方向丸め(RM)モード(切り捨て) 無限精度で求めた中間結果に最も近く、かつ大きくない
値を持つ結果となる。
値を持つ結果となる。
(4)ゼロ方向丸め(RZ)モード 無限精度で求めた中間結果に最も近く、結果の符号に関
係なく絶対値で大きくない値を持つ結果となる。24ビッ
トの仮数はオペランド1仮数及びオペランド2仮数とし
て乗算器11に入力され、該乗算器は乗算結果として48ビ
ットの中間結果を出力し、中間結果レジスタ12に 中間結果=VP(0)P(1)P(2)・・・P(46) (小数点位置はP(0)とP(1)の間) が格納されたとき、丸め処理決定回路13はこの中間結果
と上記の4種の丸めモードおよび結果の符号により、以
下の処理の一つを一般に選択する。
係なく絶対値で大きくない値を持つ結果となる。24ビッ
トの仮数はオペランド1仮数及びオペランド2仮数とし
て乗算器11に入力され、該乗算器は乗算結果として48ビ
ットの中間結果を出力し、中間結果レジスタ12に 中間結果=VP(0)P(1)P(2)・・・P(46) (小数点位置はP(0)とP(1)の間) が格納されたとき、丸め処理決定回路13はこの中間結果
と上記の4種の丸めモードおよび結果の符号により、以
下の処理の一つを一般に選択する。
Vビット=0の場合 (1)切り上げ処理(ビットP(23)の丸めビット位置
に1を加える)を行う条件 RPモードで結果の符号が正か、RMモードで結果の符
号が負のときでP(24)〜P(46)の少なくとも一つが
1であるとき。
に1を加える)を行う条件 RPモードで結果の符号が正か、RMモードで結果の符
号が負のときでP(24)〜P(46)の少なくとも一つが
1であるとき。
RNモードでP(23)及びP(24)が1でP(25)〜
P(46)がすべて0のときか、P(24)が1でP(25)
〜P(46)の少なくとも一つが1であるとき。
P(46)がすべて0のときか、P(24)が1でP(25)
〜P(46)の少なくとも一つが1であるとき。
(2)切り捨て処理(ビットP(24)〜P(46)は切り
捨てる)を行う条件 前記の切り上げ処理以外の場合。
捨てる)を行う条件 前記の切り上げ処理以外の場合。
Vビット=1の場合 (1)切り上げ処理(ビットP(22)の丸めビット位置
に1を加える)を行う条件 RPモードで結果の符号が正か、RMモードで結果の符
号が負のときでP(23)〜P(46)の少なくとも一つが
1であるとき。
に1を加える)を行う条件 RPモードで結果の符号が正か、RMモードで結果の符
号が負のときでP(23)〜P(46)の少なくとも一つが
1であるとき。
RNモードでP(22)及びP(23)が1でP(24)〜
P(46)がすべて0のときか、P(23)が1でP(24)
〜P(46)の少なくとも一つが1であるとき。
P(46)がすべて0のときか、P(23)が1でP(24)
〜P(46)の少なくとも一つが1であるとき。
(2)切り捨て処理(ビットP(22)〜P(46)は切り
捨てる)を行う条件 前記の切り上げ処理以外の場合。
捨てる)を行う条件 前記の切り上げ処理以外の場合。
以上説明したように、本発明によれば、丸め処理によっ
て仮数オーバフローが発生する場合でも正規化処理後に
丸め処理を行う従来法にくらべて、丸め処理時の正規化
処理に要する論理段数の分だけ速く、しかも丸め後正規
化回路が削除できる。
て仮数オーバフローが発生する場合でも正規化処理後に
丸め処理を行う従来法にくらべて、丸め処理時の正規化
処理に要する論理段数の分だけ速く、しかも丸め後正規
化回路が削除できる。
第1図(a)は本発明の2進浮動小数点乗算処理のシス
テム構成図、 第1図(b)は本発明の2進浮動小数点の表現形式、 第1図(c)は本発明の2進浮動小数点の乗算における
表現形式、 第2図は従来の2進浮動小数点乗算処理のシステム構成
図である。 11……乗算器、12……中間結果レジスタ、13……丸め処
理決定回路、14……丸め加算器、15……仮数演算後正規
化回路、16……指数部演算後正規化回路.
テム構成図、 第1図(b)は本発明の2進浮動小数点の表現形式、 第1図(c)は本発明の2進浮動小数点の乗算における
表現形式、 第2図は従来の2進浮動小数点乗算処理のシステム構成
図である。 11……乗算器、12……中間結果レジスタ、13……丸め処
理決定回路、14……丸め加算器、15……仮数演算後正規
化回路、16……指数部演算後正規化回路.
Claims (4)
- 【請求項1】2進浮動小数点の乗算システムにおいて、 正規化された乗数と被乗数の仮数オペランドを乗算し中
間結果(12)を出力する乗算器(11)と、 前記中間結果(12)の下位ビットを少なくとも入力し、
指定された情報にしたがって丸め処理ビットを生成する
丸め処理決定回路(13)と、 正規化される前の前記中間結果(12)と前記丸め処理ビ
ットを入力し、前記丸め処理決定回路(13)により指定
された丸め処理を実行する丸め加算器(14)と、 前記丸め加算器(14)の出力を入力し、前記中間結果
(12)において生成された第1の仮数オーバフロー(OV
F1)と前記丸め加算器(14)から生成される丸め処理時
の第2の仮数オーバフロー(OVF2)とにより制御され、
丸め処理に対する正規化を含めた正規化処理と前記正規
化された中間結果を前記仮数オペランドのビット数と等
しくする処理とを実行する正規化回路(15、16)とを有
し、前記第1の仮数オーバフロー(OVF1)と前記第2の
仮数オーバフロー(OVF2)の論理オアした結果に基づい
て、前記中間結果を1ビット分シフトすることにより乗
算処理と丸め処理とを行った後に生じた仮数オーバフロ
ー(OVF1、OVF2)の正規化を実行することを特徴とする
2進浮動小数点乗算における丸め処理方式。 - 【請求項2】切り上げにより最終結果の仮数を入力オペ
ランドの仮数と同じビット数にする場合、前記丸め処理
決定回路(13)は、前記入力仮数オペランドの最下位ビ
ットと次の上位ビットに対応する丸めビットのそれぞれ
に1を加えるか否かを指定し、前記丸め加算器(14)
は、前記中間結果(12)に前記指定に従う処理を実行
し、前記第1の仮数オーバフロー(OVF1)が発生してい
る場合の丸め処理と発生していない場合の丸め処理を正
規化処理の前に予め用意しておくことを特徴とする特許
請求の範囲第1項記載の2進浮動小数点乗算における丸
め処理方式。 - 【請求項3】最終結果の仮数を入力オペランドの仮数と
同じビット数にする乗算処理において、仮数中間結果に
おける仮数オーバフローOVF1と20の重みを持つビット位
置(小数点位置から上位1ビット目)から丸め処理時に
上位へ発生するキャリーアウト信号の有無により検出さ
れる仮数オーバフローOVF2を論理オアし、該オア結果に
よって演算後正規化回路を制御することによりOVF1とOV
F2に対する正規化処理を同一に扱うことを特徴とする特
許請求の範囲第1項記載の2進浮動小数点乗算における
丸め処理方式。 - 【請求項4】最終結果の仮数を入力オペランドの仮数と
同じビット数にする乗算処理において、丸め処理後の仮
数結果の21の重みを持つビット位置(小数点位置から上
位2ビット目)の値により仮数オーバフロー(OVF1,OVF
2)の発生を検出し、該検出信号によって演算後正規化
回路を制御することによりOVF1とOVF2に対する正規化処
理を同一に扱うことを特徴とする特許請求の範囲第1項
記載の2進浮動小数点乗算における丸め処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62328409A JPH07120265B2 (ja) | 1987-12-26 | 1987-12-26 | 2進浮動小数点乗算における丸め処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62328409A JPH07120265B2 (ja) | 1987-12-26 | 1987-12-26 | 2進浮動小数点乗算における丸め処理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01171023A JPH01171023A (ja) | 1989-07-06 |
| JPH07120265B2 true JPH07120265B2 (ja) | 1995-12-20 |
Family
ID=18209937
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62328409A Expired - Fee Related JPH07120265B2 (ja) | 1987-12-26 | 1987-12-26 | 2進浮動小数点乗算における丸め処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07120265B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120780268B (zh) * | 2025-09-10 | 2025-12-12 | 北京开源芯片研究院 | 浮点数乘法运算方法及浮点数乘法运算电路 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6133539A (ja) * | 1984-07-25 | 1986-02-17 | Toshiba Corp | 浮動小数点演算装置 |
| JPS62168228A (ja) * | 1986-01-21 | 1987-07-24 | Nec Corp | 浮動小数点積和演算器 |
| JPH0644225B2 (ja) * | 1986-03-27 | 1994-06-08 | 日本電気株式会社 | 浮動小数点丸め正規化回路 |
-
1987
- 1987-12-26 JP JP62328409A patent/JPH07120265B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01171023A (ja) | 1989-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0973089B1 (en) | Method and apparatus for computing floating point data | |
| JPH09269891A (ja) | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 | |
| JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
| US7051062B2 (en) | Apparatus and method for adding multiple-bit binary-strings | |
| JP2517064B2 (ja) | 非正規化数の処理方式 | |
| JP2856792B2 (ja) | 浮動小数点数演算装置 | |
| JP3132436B2 (ja) | 浮動小数点積和演算器 | |
| JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
| JPH01171023A (ja) | 2進浮動小数点乗算における丸め処理方式 | |
| JP2530504B2 (ja) | 浮動小数点演算器 | |
| JP3124286B2 (ja) | 浮動小数点数演算装置 | |
| JPH0814790B2 (ja) | 演算処理装置 | |
| JP4428778B2 (ja) | 演算装置及び演算方法並びに計算装置 | |
| JPH05204606A (ja) | 浮動小数点演算方式および装置 | |
| JP2527373B2 (ja) | 浮動小数点演算器 | |
| JP3522387B2 (ja) | パイプライン演算装置 | |
| JPS6149234A (ja) | 浮動小数点乗算回路 | |
| JPS5960637A (ja) | 浮動小数点演算装置 | |
| JPH07200259A (ja) | 演算処理方法および演算処理装置 | |
| JP3245884B2 (ja) | シフト加減算装置 | |
| JPH0498524A (ja) | 浮動小数点演算装置 | |
| JPH0427587B2 (ja) | ||
| JPH0361224B2 (ja) | ||
| JPH0447848B2 (ja) | ||
| JPH04132538U (ja) | 浮動小数点演算回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |