JPH04165530A - 浮動小数点乗算装置 - Google Patents
浮動小数点乗算装置Info
- Publication number
- JPH04165530A JPH04165530A JP2292879A JP29287990A JPH04165530A JP H04165530 A JPH04165530 A JP H04165530A JP 2292879 A JP2292879 A JP 2292879A JP 29287990 A JP29287990 A JP 29287990A JP H04165530 A JPH04165530 A JP H04165530A
- Authority
- JP
- Japan
- Prior art keywords
- rounding
- adder
- carry propagation
- value
- multiplication
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、丸め処理を行う浮動小数点乗算装置に関する
ものである。
ものである。
一般に、浮動小数点の乗算処理は、仮数部の桁数だけの
精度を保つために、丸め処理を行なっている。この浮動
小数点演算の規格IEEE754(アイイイイ・スタン
タート・フォ・バイナリ・フローティングポイント・了
りスメチック;IEEEStandard for B
inary Floa日ng−Point Ari−t
hmetic、ANSI/IEEE Std 754−
1985)では、浮動小数点演算における丸め処理につ
いて規定され、無限精度で演算した正規化中間結果に対
して最近値(最近値が2つ有る場合は偶数値)に丸める
ように定めている。そのため浮動小数点乗算は、仮数部
乗算、正規化、丸め処理の順番に行なわれるのが普通で
あり、丸め処理の高速化が望まれている。
精度を保つために、丸め処理を行なっている。この浮動
小数点演算の規格IEEE754(アイイイイ・スタン
タート・フォ・バイナリ・フローティングポイント・了
りスメチック;IEEEStandard for B
inary Floa日ng−Point Ari−t
hmetic、ANSI/IEEE Std 754−
1985)では、浮動小数点演算における丸め処理につ
いて規定され、無限精度で演算した正規化中間結果に対
して最近値(最近値が2つ有る場合は偶数値)に丸める
ように定めている。そのため浮動小数点乗算は、仮数部
乗算、正規化、丸め処理の順番に行なわれるのが普通で
あり、丸め処理の高速化が望まれている。
この浮動小数点数の乗算は、次のように行われる。
浮動小数点A、B、Cを次式で表わす。
A= 2”−”XMa
B = 2 ””−”・)XMb
C= 2 ”C−” XMc −川
・(1)ここでMa、Mbは仮数部(1,0≦M<2.
0)、Ea、Ebは指数部(Eは自然数)、Biは指数
部バイアス値である。
・(1)ここでMa、Mbは仮数部(1,0≦M<2.
0)、Ea、Ebは指数部(Eは自然数)、Biは指数
部バイアス値である。
浮動小数点乗算は次式の通り行われる。
C=AXB
=2°“+E″−”)−B’X (MaXMb)
−−(2)これら(1)、 (2)式より、1,0≦(
MaXMb)<4.0であるため、正規化を考慮すると
、1.0≦(MaXMb)<2.0の場合は(2)式で
よく、2.0≦(MaXMb)<4.0の場合は次式を
用いればよい。
−−(2)これら(1)、 (2)式より、1,0≦(
MaXMb)<4.0であるため、正規化を考慮すると
、1.0≦(MaXMb)<2.0の場合は(2)式で
よく、2.0≦(MaXMb)<4.0の場合は次式を
用いればよい。
C= 2 ””Eb−””−”X (Ma XMb/
2)・・・・・・(3) 仮数部Ma、Mb、Mcはnビットの固定小数点数で表
現されているので、仮数部乗算結果MaXMbは2nビ
ツトの幅を持つ。これを四捨五入に類似した丸め処理に
よって、nビットのMcに当てはめる。(2)、 (3
)式の指数部をEt、仮数部をnビットになるように切
捨てた値をMtとすると、丸め後の仮数部Mcは、切捨
てまたは切上げによって次式のようになる。
2)・・・・・・(3) 仮数部Ma、Mb、Mcはnビットの固定小数点数で表
現されているので、仮数部乗算結果MaXMbは2nビ
ツトの幅を持つ。これを四捨五入に類似した丸め処理に
よって、nビットのMcに当てはめる。(2)、 (3
)式の指数部をEt、仮数部をnビットになるように切
捨てた値をMtとすると、丸め後の仮数部Mcは、切捨
てまたは切上げによって次式のようになる。
Mc=Mt+2−”−1)J ・旧i4)(
Me≦仮数部乗算結果≦Mt) ただし、次式の条件がある。
Me≦仮数部乗算結果≦Mt) ただし、次式の条件がある。
Mt=2.0−2−(2” ・・・・
・・(5)丸め処理が切上げの場合は、M c = 2
.0になってしまうためMc=1.0とし、EC=Et
+1とする処理が必要である。
・・(5)丸め処理が切上げの場合は、M c = 2
.0になってしまうためMc=1.0とし、EC=Et
+1とする処理が必要である。
ところで仮数部乗算処理(MaXMb)は整数の乗算と
等価である。つまり、乗数をに桁に分解し、それぞれの
桁を被乗数に乗じたに個の部分積を作成し、全ての部分
積の総和をとれば、乗算結果が得られる。「コンピュー
タの高速演算方式J(Kai Hwang著、近代科学
社発行)参照。
等価である。つまり、乗数をに桁に分解し、それぞれの
桁を被乗数に乗じたに個の部分積を作成し、全ての部分
積の総和をとれば、乗算結果が得られる。「コンピュー
タの高速演算方式J(Kai Hwang著、近代科学
社発行)参照。
この部分積を加算する時間を短縮するために、桁上げ保
存加算器を用いて高速化するのが一般的である。桁上げ
保存加算器(Carry 5ave Adder)はキ
ャリーの伝播がたかたか1桁であるため、桁数に関係無
く一定の時間で加算できる。たたし、桁上げ保存加算器
は加算結果をキャリーとサムの形で出力するため、最終
段で桁上げ伝播加算器(Carry Propagat
e Adder)によって2進数に変換する必要がある
。nXnビットの乗算器で2nビツトの桁上げ伝播加算
器が必要である。
存加算器を用いて高速化するのが一般的である。桁上げ
保存加算器(Carry 5ave Adder)はキ
ャリーの伝播がたかたか1桁であるため、桁数に関係無
く一定の時間で加算できる。たたし、桁上げ保存加算器
は加算結果をキャリーとサムの形で出力するため、最終
段で桁上げ伝播加算器(Carry Propagat
e Adder)によって2進数に変換する必要がある
。nXnビットの乗算器で2nビツトの桁上げ伝播加算
器が必要である。
従来例の浮動小数点乗算器のブロック図を第5図に示す
。この従来例では、IEEE754標準で規定された浮
動小数点数に対する乗算器を示す。
。この従来例では、IEEE754標準で規定された浮
動小数点数に対する乗算器を示す。
図中、入力信号1,2は浮動小数点A、Bの指数部を示
すeビットの信号、入力信号3,4は浮動小数点A、B
の仮数部を示す(n−1)ビットの信号である。桁上げ
伝播加算器5は指数部信号1.2を加算し、バイアス補
正器6はIEEE754標準で定められたバイアス値を
加算器5の出力値から減算し、インクリメンタ7は補正
器6の出力値に1を加える。乗算アレイ8と桁上げ伝播
加算器9とは合せて2nX2nヒツトの乗算器となるも
ので、乗算アレイ8はBoothの倍数発生器と桁上げ
保存加算器ツリーから成る乗算器の1部、桁上げ伝播加
算器9は乗算器8の終段の2nヒツトの桁上げ伝播加算
を行う。
すeビットの信号、入力信号3,4は浮動小数点A、B
の仮数部を示す(n−1)ビットの信号である。桁上げ
伝播加算器5は指数部信号1.2を加算し、バイアス補
正器6はIEEE754標準で定められたバイアス値を
加算器5の出力値から減算し、インクリメンタ7は補正
器6の出力値に1を加える。乗算アレイ8と桁上げ伝播
加算器9とは合せて2nX2nヒツトの乗算器となるも
ので、乗算アレイ8はBoothの倍数発生器と桁上げ
保存加算器ツリーから成る乗算器の1部、桁上げ伝播加
算器9は乗算器8の終段の2nヒツトの桁上げ伝播加算
を行う。
また、セレクタ30は補正器6の出力とインクリメンタ
7の出力を切換え、セレクタ31.32は加算器9のd
力の値を2通り切換える。丸めデコータ33はセレクタ
32の値をテコートして丸め上げをするかしないかを決
定し、インクリメンタ14はセレクタ30と31の出力
を連結した値ヲテコーダ33の指定によって1またはO
を加算する(e+n−1)ビットのインクリメンタ、出
力信号18はインクリメンタ34の出力の上位eビット
の信号、出力信号19はインクリメンタ34の出力の下
位(n−1)ヒツトの信号である。
7の出力を切換え、セレクタ31.32は加算器9のd
力の値を2通り切換える。丸めデコータ33はセレクタ
32の値をテコートして丸め上げをするかしないかを決
定し、インクリメンタ14はセレクタ30と31の出力
を連結した値ヲテコーダ33の指定によって1またはO
を加算する(e+n−1)ビットのインクリメンタ、出
力信号18はインクリメンタ34の出力の上位eビット
の信号、出力信号19はインクリメンタ34の出力の下
位(n−1)ヒツトの信号である。
次に、第5図の浮動小数点乗算器の動作について述べる
。
。
IEEE754標準では仮数部の整数ビットは常に1で
あるため数値表現では省略され、そのため信号3,4で
は、入力した仮数部の値のMSB側に“1”を付加して
乗算器8に出力している。
あるため数値表現では省略され、そのため信号3,4で
は、入力した仮数部の値のMSB側に“1”を付加して
乗算器8に出力している。
これら乗算器8.加算器9は乗算MaXMbを行い、2
nビツトの信号M(2n−1,0)として出力する。加
算器5ではEa+Ebの指数部加算が行われ、補正器6
から(Ea+Eb−Bi)の値が出力される。
nビツトの信号M(2n−1,0)として出力する。加
算器5ではEa+Ebの指数部加算が行われ、補正器6
から(Ea+Eb−Bi)の値が出力される。
正規化処理は、信号MのMSBであるM(2n−1)に
よって決定される。
よって決定される。
M(2−n−1)二〇のとき、
1.0≦MaXMb<2.0
Mt :M (2n−2,n−1)
E t=Ea+Eb −B i
丸め判定に要する信号:M(n−1,0)M(2n−1
)=1のとき、 2.0≦MaXMb<4.0 Mt :M (2n−1,n) Et=Ea+Eb−Bi+1 丸め判定に要する信号:M(n、O)を1ビツト左シフ
トしたもの ・・・・・・(6)セレクタ
30は(6)式のEt、セレクタ31は(6)式のMt
、セレクタ32は(6)式の丸め判定に要する信号を、
信号M(2n−1)によって選択する。
)=1のとき、 2.0≦MaXMb<4.0 Mt :M (2n−1,n) Et=Ea+Eb−Bi+1 丸め判定に要する信号:M(n、O)を1ビツト左シフ
トしたもの ・・・・・・(6)セレクタ
30は(6)式のEt、セレクタ31は(6)式のMt
、セレクタ32は(6)式の丸め判定に要する信号を、
信号M(2n−1)によって選択する。
丸めデコーダ33は、セレクタ32の値R(n、0)を
、次の第1表のようにデコードする。
、次の第1表のようにデコードする。
第1表 丸めデコーダ33の論理
5=R(n−2,0)全ビットのOR
インクリメンタ34には、セレクタ31のMt倍信号ら
MSB (整数ビット)を除いた値、およびセレクタ3
0のEtの値が入力される。丸めデコーダ33の出力が
1のときは、インクリメンタ34は入力値+1を出力し
、丸めデコーダ33の出力が0のときは、インクリメン
タ34は入力値をそのまま出力する。仮数部と指数部を
連結してインクリメントすることにより、切上げによっ
て指数部がインクリメントされる場合の処理を行なうこ
とができる。信号18.19から浮動小数点乗算結果か
ら出力されるが、信号19は仮数部から整数ビットを除
いたものである。
MSB (整数ビット)を除いた値、およびセレクタ3
0のEtの値が入力される。丸めデコーダ33の出力が
1のときは、インクリメンタ34は入力値+1を出力し
、丸めデコーダ33の出力が0のときは、インクリメン
タ34は入力値をそのまま出力する。仮数部と指数部を
連結してインクリメントすることにより、切上げによっ
て指数部がインクリメントされる場合の処理を行なうこ
とができる。信号18.19から浮動小数点乗算結果か
ら出力されるが、信号19は仮数部から整数ビットを除
いたものである。
ここで、従来例の浮動小数点乗算器の性能を試算してみ
る。ここでは、IEEE754規格の倍精度データを扱
うものとすると、e”11.n=53である。第5図に
おいてクリティカル・ノ(スは、次の通り。
る。ここでは、IEEE754規格の倍精度データを扱
うものとすると、e”11.n=53である。第5図に
おいてクリティカル・ノ(スは、次の通り。
桁上げ保存加算器ツリー8 40nsec106
ビツト桁上げ伝播加算器9 30nsecセレクタ32
5n式%式% 〔発明が解決しようとする課題〕 上述した従来例の浮動小数点乗算装置では、演算時間が
長いという欠点がある。
ビツト桁上げ伝播加算器9 30nsecセレクタ32
5n式%式% 〔発明が解決しようとする課題〕 上述した従来例の浮動小数点乗算装置では、演算時間が
長いという欠点がある。
これは、長いビット長の桁上げ伝播を伴う加算が2カ所
(加算器9とインクリメンタ34)にあるためであり、
しかも、一方の加算(加算器9)が終了しないともう一
方の加算(インクリメンタ34)ができない。これらの
加算は、倍精度浮動小数点データではビット幅が大きく
なるため、桁上げ伝播に要する時間が大きい。
(加算器9とインクリメンタ34)にあるためであり、
しかも、一方の加算(加算器9)が終了しないともう一
方の加算(インクリメンタ34)ができない。これらの
加算は、倍精度浮動小数点データではビット幅が大きく
なるため、桁上げ伝播に要する時間が大きい。
本発明の目的は、複数の桁上げ伝播加算器を並列に動作
させることにより、1回の桁上げ伝播加算によって丸め
処理まで行ない、演算処理時間を早くした浮動小数点乗
算装置を提供することにある。
させることにより、1回の桁上げ伝播加算によって丸め
処理まで行ない、演算処理時間を早くした浮動小数点乗
算装置を提供することにある。
本発明の浮動小数点乗算器の構成は、乗算を行う二数の
仮数部を入力し桁上げ保存加算器または冗長2進加算器
と桁上げ伝播加算器とを用いて乗算を行う乗算アレイと
、前記二数の指数部を入力し桁上げ保存加算器を用いた
インクリメンタと、これら乗算アレイおよびインクリメ
ンタの出力をそれぞれ入力し同時に動作可能な複数の桁
上げ伝播加算器と、丸め処理の切上げ/切捨てを決定す
る丸めデコーダと、この丸めデコーダと前記乗算アレイ
の乗算結果のMSBの値によって正規化シフトの有無お
よび丸めによる切上げ・切捨ての4通りに対応した前記
各桁上伝播加算器の演算結果を選択するセレクタとを有
することを特徴とする。
仮数部を入力し桁上げ保存加算器または冗長2進加算器
と桁上げ伝播加算器とを用いて乗算を行う乗算アレイと
、前記二数の指数部を入力し桁上げ保存加算器を用いた
インクリメンタと、これら乗算アレイおよびインクリメ
ンタの出力をそれぞれ入力し同時に動作可能な複数の桁
上げ伝播加算器と、丸め処理の切上げ/切捨てを決定す
る丸めデコーダと、この丸めデコーダと前記乗算アレイ
の乗算結果のMSBの値によって正規化シフトの有無お
よび丸めによる切上げ・切捨ての4通りに対応した前記
各桁上伝播加算器の演算結果を選択するセレクタとを有
することを特徴とする。
以下、数式を用いて、本発明の浮動小数点乗算装置につ
いて説明する。浮動小数点乗算において、正規化処理と
丸め処理を考慮すると、以下の4通りに分けられる。
いて説明する。浮動小数点乗算において、正規化処理と
丸め処理を考慮すると、以下の4通りに分けられる。
Ml= (MaXMbを2−″の位で切捨てたもの)M
2= (MaXMb/2を2−〇の位で切捨てたもの)
とすると、 ■ M a X M b < 2.0 、かつ丸めが切
捨ての場合■ Ma XMb < 2.0 、かつ丸め
が切上げの場合■ MaXMb≧20.かつ丸めが切捨
ての場合■ MaXMb≧20.かつ、丸めが切上げの
場合 となる。■、■でのM t = 2.0の場合の処理は
、従来例でも述べた通り、指数部と仮数部を連結して切
上げの加算を行なえば、Ec、Mcが得られる。従って
、正規化処理と丸め処理を含めた全ての演算結果がこれ
ら4通りの演算により予め用意しておくことができる。
2= (MaXMb/2を2−〇の位で切捨てたもの)
とすると、 ■ M a X M b < 2.0 、かつ丸めが切
捨ての場合■ Ma XMb < 2.0 、かつ丸め
が切上げの場合■ MaXMb≧20.かつ丸めが切捨
ての場合■ MaXMb≧20.かつ、丸めが切上げの
場合 となる。■、■でのM t = 2.0の場合の処理は
、従来例でも述べた通り、指数部と仮数部を連結して切
上げの加算を行なえば、Ec、Mcが得られる。従って
、正規化処理と丸め処理を含めた全ての演算結果がこれ
ら4通りの演算により予め用意しておくことができる。
次に、図面を用いて本発明の詳細な説明する。
第1図は本発明の一実施例の浮動小数点乗算装置のブロ
ック図である。この乗算器は工EEE754標準で短足
された浮動小数点の乗算を行なう。図において、1〜9
は第5図の1〜9と等価のものである。また、10.1
2は桁上げ保存加算器を用いた丸め処理回路、13.1
1は(2n十e−2)ヒツトおよび(2n十e−3)ビ
ットの桁上げ伝播加算器、14.15は従来例の33と
同じ論理(第1表参照)を持つ丸めデコーダ、16は丸
めデコーダ14,15の出力と桁上げ伝播加算器のMS
Bの値を入力とするデコーダ、17は桁上げ保存加算器
13,11,9、補正器6およびインクリメンタ7の値
をデコーダ16の指示により選択するセレクタ、18は
セレクタ17の上位eヒツトの信号、19はセレクタ1
7の下位(n−1)ビットの信号である。
ック図である。この乗算器は工EEE754標準で短足
された浮動小数点の乗算を行なう。図において、1〜9
は第5図の1〜9と等価のものである。また、10.1
2は桁上げ保存加算器を用いた丸め処理回路、13.1
1は(2n十e−2)ヒツトおよび(2n十e−3)ビ
ットの桁上げ伝播加算器、14.15は従来例の33と
同じ論理(第1表参照)を持つ丸めデコーダ、16は丸
めデコーダ14,15の出力と桁上げ伝播加算器のMS
Bの値を入力とするデコーダ、17は桁上げ保存加算器
13,11,9、補正器6およびインクリメンタ7の値
をデコーダ16の指示により選択するセレクタ、18は
セレクタ17の上位eヒツトの信号、19はセレクタ1
7の下位(n−1)ビットの信号である。
次に、この浮動小数点乗算器の動作について述べる。
IEEE754標準では仮数部の整数ビットは常に1で
あるため数値表現では省略されている。
あるため数値表現では省略されている。
そのため、信号3,4では、入力した仮数部の値のMS
B側に“l nを付加して乗算器8に出力している。8
,9から成る乗算器は乗算M a X M bを行ない
、2nヒツトの信号M(2n−1,0)として出力する
。加算器5はEa+Ebの指数部加算を行ない、補正器
6ば(Ea+Eb−Bi)の値を出力する。インクリメ
ンタ7は補正器6の値に1を加え、(Ea+Eb−B
i+ 1)の値を出力する。
B側に“l nを付加して乗算器8に出力している。8
,9から成る乗算器は乗算M a X M bを行ない
、2nヒツトの信号M(2n−1,0)として出力する
。加算器5はEa+Ebの指数部加算を行ない、補正器
6ば(Ea+Eb−Bi)の値を出力する。インクリメ
ンタ7は補正器6の値に1を加え、(Ea+Eb−B
i+ 1)の値を出力する。
桁上げ伝播加算器9での加算と並行して、丸め処理回路
10.12と桁上げ伝播加算器11,1.3での演算が
行なわれる。
10.12と桁上げ伝播加算器11,1.3での演算が
行なわれる。
第2図は、丸め処理回路10と桁上げ伝播加算器11(
または丸め処理回路12と桁上げ伝播加算器13)の詳
細なブI:+7り図を示す。図中のp、q、rの値は、
丸め処理回路10、加算器11の場合、p=2n十e−
3,q=2n−3゜r=n−1 丸め処理回路12、加算器13の場合、p=2n+e−
2,q=2n−2,r=nである。丸め処理回路10.
12では、丸め位置に1を加える操作は半加算器(Ha
lf Adder)を用い、桁数に関係無く一定の時間
で加算を行なっている。
または丸め処理回路12と桁上げ伝播加算器13)の詳
細なブI:+7り図を示す。図中のp、q、rの値は、
丸め処理回路10、加算器11の場合、p=2n十e−
3,q=2n−3゜r=n−1 丸め処理回路12、加算器13の場合、p=2n+e−
2,q=2n−2,r=nである。丸め処理回路10.
12では、丸め位置に1を加える操作は半加算器(Ha
lf Adder)を用い、桁数に関係無く一定の時間
で加算を行なっている。
丸め処理回路lOと桁上げ伝播加算器11は、演算原理
で説明した■(MaXMb<2.0’、かつ、丸めが切
上げ)の場合に相当し、(8)式の演算を行なう。丸め
処理回路12と桁上げ伝播加算器13は、■(MaXM
b≧2,0.かつ、丸めが切上げ)の場合に相当し、α
ω式の演算を行なう。■と■の場合は、桁上げ伝播加算
器9の出力および補正器6.インクリメンタ7の出力か
ら演算結果が得られる。
で説明した■(MaXMb<2.0’、かつ、丸めが切
上げ)の場合に相当し、(8)式の演算を行なう。丸め
処理回路12と桁上げ伝播加算器13は、■(MaXM
b≧2,0.かつ、丸めが切上げ)の場合に相当し、α
ω式の演算を行なう。■と■の場合は、桁上げ伝播加算
器9の出力および補正器6.インクリメンタ7の出力か
ら演算結果が得られる。
MaXMb≧2.0かどうかは、桁上げ伝播加算器9の
MSB (M(2n−1))によって判定ができる。丸
めデコーダ14はMaXMb≧2.0の場合の丸めを判
定し、丸めデコーダ15はM a X M b<2.0
の場合の丸めを判定する。デコーダ16とセレクタ17
は、次の第2表に示す論理で4通りの乗算結果を選択す
る。
MSB (M(2n−1))によって判定ができる。丸
めデコーダ14はMaXMb≧2.0の場合の丸めを判
定し、丸めデコーダ15はM a X M b<2.0
の場合の丸めを判定する。デコーダ16とセレクタ17
は、次の第2表に示す論理で4通りの乗算結果を選択す
る。
以下余白
第 2 表
次に、本実施例の浮動小数点乗算器の性能を試算してみ
る。IEEE754規格の倍精度データを扱うものとす
ると、e”11.n=53である。
る。IEEE754規格の倍精度データを扱うものとす
ると、e”11.n=53である。
第1図におけるクリティカル・パスは次の通りである。
桁上げ保存加算器ツリー8 40nsec106
ビツト桁上げ伝播加算器9 30nsa:丸めデコーダ
14,15 5nsecデコーダ16
5nsec合計
85n冠または、 桁上げ保存加算器ツリー8 40nsec丸め処
理回路12 、 5nsec115ビッ
ト桁上げ伝播加算器9 35nsec合計
85n式だものである。第1の実施
例では、3個ある桁上げ伝播加算器9,11.13の入
力は、下位(n−1)ビットに関して共通であったが、
本実施例ではこれを共通化している。図において、1〜
9.14〜19は第1の実施例のものと等価であり、1
0a、12aは丸めデコーダ、11a。
ビツト桁上げ伝播加算器9 30nsa:丸めデコーダ
14,15 5nsecデコーダ16
5nsec合計
85n冠または、 桁上げ保存加算器ツリー8 40nsec丸め処
理回路12 、 5nsec115ビッ
ト桁上げ伝播加算器9 35nsec合計
85n式だものである。第1の実施
例では、3個ある桁上げ伝播加算器9,11.13の入
力は、下位(n−1)ビットに関して共通であったが、
本実施例ではこれを共通化している。図において、1〜
9.14〜19は第1の実施例のものと等価であり、1
0a、12aは丸めデコーダ、11a。
13aは(n十e 1)ビットの桁上げ伝播加算器で
ある。20は桁上げ伝播加算器9の(n −2)ビット
かう(n−1)ビットへの桁上げ信号、21は桁上げ伝
播加算器9の(n−1)ビットからnビットへの桁上げ
信号である。
ある。20は桁上げ伝播加算器9の(n −2)ビット
かう(n−1)ビットへの桁上げ信号、21は桁上げ伝
播加算器9の(n−1)ビットからnビットへの桁上げ
信号である。
第4図は、これら10a、llaまたは12a、13a
の詳細なブロック図である。この図が、第2図と異なる
点は、桁上げ伝播加算器11゜130下位桁が無くなり
、最下位桁のキャリー人力に信号20または信号21を
入力している所である。また、指数部の最下位桁に半加
算器を挿入してlまたは0を加算することによって、丸
め処理回路12a、10aの指数部入力を両方とも補正
器6としている。
の詳細なブロック図である。この図が、第2図と異なる
点は、桁上げ伝播加算器11゜130下位桁が無くなり
、最下位桁のキャリー人力に信号20または信号21を
入力している所である。また、指数部の最下位桁に半加
算器を挿入してlまたは0を加算することによって、丸
め処理回路12a、10aの指数部入力を両方とも補正
器6としている。
本実施例での演算時間は、第1の実施例と同一であるが
、桁上げ伝播加算器のハードウェア量が計(2n−1)
ビット削減されており、IEEE754の倍精度浮動小
数点では、n=53なので、計105ビット削減された
ことになる。
、桁上げ伝播加算器のハードウェア量が計(2n−1)
ビット削減されており、IEEE754の倍精度浮動小
数点では、n=53なので、計105ビット削減された
ことになる。
この図から容易に推測できるように、丸め処理回路10
a、12aに用いた半加算器のほとんどで共通にできる
ので、桁上げ伝播加算器11a。
a、12aに用いた半加算器のほとんどで共通にできる
ので、桁上げ伝播加算器11a。
13aの入力信号はほとんど共通となり、加算器の入力
ゲートをこれらの間で共有することが可能となる。
ゲートをこれらの間で共有することが可能となる。
これら実施例の桁上げ伝播加算器は、桁上げ先見機構を
用いた加算器(Carry Look−Ahead A
dder)でもよいし、桁上げ選択加算器(Carry
Select Adder)でもよい。また、桁上げ選
択加算器は、通常の桁上げ伝播加算器よりもハードウェ
ア量が2倍程度になるが、加算器の入力ゲートをlla
と13aとで共有する場合は、互いの加算器を共有する
ことによって、ハードウェア量の増加を抑えることもで
きる。
用いた加算器(Carry Look−Ahead A
dder)でもよいし、桁上げ選択加算器(Carry
Select Adder)でもよい。また、桁上げ選
択加算器は、通常の桁上げ伝播加算器よりもハードウェ
ア量が2倍程度になるが、加算器の入力ゲートをlla
と13aとで共有する場合は、互いの加算器を共有する
ことによって、ハードウェア量の増加を抑えることもで
きる。
以上説明したように、本発明による浮動小数点乗算装置
は、次の効果を有する。
は、次の効果を有する。
(1)演算時間が短い。
従来例の浮動小数点乗算器が桁上げ伝播を伴う加算を2
回行なうのに対し、本発明では1回の加算で済み、その
ため従来例で105nsecかかった処理を、85ns
a=で行ない、約1.2倍の高速化がなされたことにな
る。
回行なうのに対し、本発明では1回の加算で済み、その
ため従来例で105nsecかかった処理を、85ns
a=で行ない、約1.2倍の高速化がなされたことにな
る。
(2ン ハードウェア量はほとんど増加しない。
IEEE754規格の倍精度浮動小数点乗算器を想定す
ると、従来例では計169ビットの桁上げ伝播加算器が
仮数部の演算に必要であったが、第1の実施例では計3
38ビットだが、第2の実施例では計233ビット (
実施例の1.4倍)で済む。浮動小数点乗算器のハード
ウェア量のほとんどは、乗算アレイ8で占められている
ため、第2の実施例による浮動小数点乗算器全体のハー
ドウェア量は従来例の1.1〜1.2倍程度である。
ると、従来例では計169ビットの桁上げ伝播加算器が
仮数部の演算に必要であったが、第1の実施例では計3
38ビットだが、第2の実施例では計233ビット (
実施例の1.4倍)で済む。浮動小数点乗算器のハード
ウェア量のほとんどは、乗算アレイ8で占められている
ため、第2の実施例による浮動小数点乗算器全体のハー
ドウェア量は従来例の1.1〜1.2倍程度である。
第1図は本発明の第1の実施例のハードウェア構成を示
すブロック図、第2図は第1図の丸め処理回路のブロッ
ク図、第3図は本発明の第2の実施例のハードウェア構
成を示すブロック図、第4図は第3図の丸め処理回路の
ブロック図、第5図は従来例の浮動小数点乗算装置の構
成を示すブロック図である。 1.2・・・・・・指数部入力信号、3,4・・・・・
・仮数部入力信号55・・・・・・指数部加算器、6・
・・・・・補正器、7.34・・・・・・インクリメン
タ、8・・・・・・乗算アレイ、9,11,13,11
a、13a−桁上げ伝播加算器、10,12,10a、
12a・・・・・・丸め処理回路、14,15.33・
・・・・・丸めデコ−1’、16・・・・・・デコーダ
、17.30〜32・・・・・・セレクタ、18・・・
・・・指数部出力信号、19・・・・・・仮数部出力信
号。 代理人 弁理士 内 原 晋
すブロック図、第2図は第1図の丸め処理回路のブロッ
ク図、第3図は本発明の第2の実施例のハードウェア構
成を示すブロック図、第4図は第3図の丸め処理回路の
ブロック図、第5図は従来例の浮動小数点乗算装置の構
成を示すブロック図である。 1.2・・・・・・指数部入力信号、3,4・・・・・
・仮数部入力信号55・・・・・・指数部加算器、6・
・・・・・補正器、7.34・・・・・・インクリメン
タ、8・・・・・・乗算アレイ、9,11,13,11
a、13a−桁上げ伝播加算器、10,12,10a、
12a・・・・・・丸め処理回路、14,15.33・
・・・・・丸めデコ−1’、16・・・・・・デコーダ
、17.30〜32・・・・・・セレクタ、18・・・
・・・指数部出力信号、19・・・・・・仮数部出力信
号。 代理人 弁理士 内 原 晋
Claims (1)
- 乗算を行う二数の仮数部を入力し桁上げ保存加算器ま
たは冗長2進加算器と桁上げ伝播加算器とを用いて乗算
を行う乗算アレイと、前記二数の指数部を入力し桁上げ
保存加算器を用いたインクリメンタと、これら乗算アレ
イおよびインクリメンタの出力をそれぞれ入力し同時に
動作可能な複数の桁上げ伝播加算器と、丸め処理の切上
げ/切捨てを決定する丸めデコーダと、この丸めデコー
ダと前記乗算アレイの乗算結果のMSBの値によって正
規化シフトの有無および丸めによる切上げ・切捨ての4
通りに対応した前記各桁上伝播加算器の演算結果を選択
するセレクタとを有することを特徴とする浮動小数点乗
算装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2292879A JPH04165530A (ja) | 1990-10-30 | 1990-10-30 | 浮動小数点乗算装置 |
| US07/783,684 US5150320A (en) | 1990-10-30 | 1991-10-29 | Floating-point multiplier device comprising three carry propagate adders operable in parallel |
| DE69130756T DE69130756T2 (de) | 1990-10-30 | 1991-10-30 | Gleitkommamultipliziergerät mit drei Übertragsfortpflanzungsaddierern, welche in parallel arbeiten können |
| EP91118571A EP0483834B1 (en) | 1990-10-30 | 1991-10-30 | Floating-point multiplier device comprising three carry propagate adders operable in parallel |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2292879A JPH04165530A (ja) | 1990-10-30 | 1990-10-30 | 浮動小数点乗算装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04165530A true JPH04165530A (ja) | 1992-06-11 |
Family
ID=17787562
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2292879A Pending JPH04165530A (ja) | 1990-10-30 | 1990-10-30 | 浮動小数点乗算装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5150320A (ja) |
| EP (1) | EP0483834B1 (ja) |
| JP (1) | JPH04165530A (ja) |
| DE (1) | DE69130756T2 (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5408426A (en) * | 1992-03-17 | 1995-04-18 | Hitachi, Ltd. | Arithmetic unit capable of performing concurrent operations for high speed operation |
| US5539684A (en) * | 1993-12-10 | 1996-07-23 | Motorola, Inc. | Method and apparatus for calculating floating point exponent values |
| US5430668A (en) * | 1994-03-07 | 1995-07-04 | Nec Corporation | Floating point multiplier capable of easily performing a failure detection test |
| EP0735458B1 (en) * | 1995-03-28 | 2001-05-23 | Consorzio per la Ricerca sulla Microelettronica nel Mezzogiorno - CoRiMMe | Method for memorizing membership functions and the related circuit for calculating the grade of membership of the antecedents of fuzzy rules |
| US5619439A (en) * | 1995-07-05 | 1997-04-08 | Sun Microsystems, Inc. | Shared hardware for multiply, divide, and square root exponent calculation |
| US6298369B1 (en) | 1998-09-30 | 2001-10-02 | Stmicroelectronics, Inc. | High speed multiplier |
| US6697833B2 (en) * | 2001-01-18 | 2004-02-24 | International Business Machines Corporation | Floating-point multiplier for de-normalized inputs |
| US8239440B2 (en) * | 2008-03-28 | 2012-08-07 | Oracle America, Inc. | Processor which implements fused and unfused multiply-add instructions in a pipelined manner |
| GB2622034A (en) * | 2022-08-31 | 2024-03-06 | Imagination Tech Ltd | Efficient floating point squarer |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04101215A (ja) * | 1990-08-20 | 1992-04-02 | Matsushita Electric Ind Co Ltd | 浮動小数点演算装置 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5979350A (ja) * | 1982-10-29 | 1984-05-08 | Toshiba Corp | 浮動小数点演算装置 |
| JPS61213927A (ja) * | 1985-03-18 | 1986-09-22 | Hitachi Ltd | 浮動小数点演算処理装置 |
| JPH069028B2 (ja) * | 1986-02-18 | 1994-02-02 | 日本電気株式会社 | 演算装置 |
| JPH0644225B2 (ja) * | 1986-03-27 | 1994-06-08 | 日本電気株式会社 | 浮動小数点丸め正規化回路 |
| US4849923A (en) * | 1986-06-27 | 1989-07-18 | Digital Equipment Corporation | Apparatus and method for execution of floating point operations |
| US4866652A (en) * | 1987-09-01 | 1989-09-12 | Weitek Corporation | Floating point unit using combined multiply and ALU functions |
| US4972362A (en) * | 1988-06-17 | 1990-11-20 | Bipolar Integrated Technology, Inc. | Method and apparatus for implementing binary multiplication using booth type multiplication |
| US4975868A (en) * | 1989-04-17 | 1990-12-04 | International Business Machines Corporation | Floating-point processor having pre-adjusted exponent bias for multiplication and division |
| JP2511527B2 (ja) * | 1989-07-14 | 1996-06-26 | 日本電気株式会社 | 浮動小数点演算器 |
-
1990
- 1990-10-30 JP JP2292879A patent/JPH04165530A/ja active Pending
-
1991
- 1991-10-29 US US07/783,684 patent/US5150320A/en not_active Expired - Fee Related
- 1991-10-30 EP EP91118571A patent/EP0483834B1/en not_active Expired - Lifetime
- 1991-10-30 DE DE69130756T patent/DE69130756T2/de not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04101215A (ja) * | 1990-08-20 | 1992-04-02 | Matsushita Electric Ind Co Ltd | 浮動小数点演算装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69130756D1 (de) | 1999-02-25 |
| EP0483834A3 (en) | 1993-03-31 |
| EP0483834B1 (en) | 1999-01-13 |
| EP0483834A2 (en) | 1992-05-06 |
| DE69130756T2 (de) | 1999-09-09 |
| US5150320A (en) | 1992-09-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6647404B2 (en) | Double precision floating point multiplier having a 32-bit booth-encoded array multiplier | |
| EP0483864B1 (en) | Hardware arrangement for floating-point addition and subtraction | |
| EP0657804B1 (en) | Overflow control for arithmetic operations | |
| US5954789A (en) | Quotient digit selection logic for floating point division/square root | |
| US4969118A (en) | Floating point unit for calculating A=XY+Z having simultaneous multiply and add | |
| US6847985B1 (en) | Floating point divide and square root processor | |
| US5696712A (en) | Three overlapped stages of radix-2 square root/division with speculative execution | |
| JPH09269891A (ja) | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 | |
| JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
| US5508952A (en) | Carry-lookahead/carry-select binary adder | |
| US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
| EP0356153B1 (en) | Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction | |
| EP0416308A2 (en) | Rectangular array signed digit multiplier | |
| US5548545A (en) | Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus | |
| US5784307A (en) | Division algorithm for floating point or integer numbers | |
| US5579254A (en) | Fast static CMOS adder | |
| JPH0773227A (ja) | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 | |
| KR100308726B1 (ko) | 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법 | |
| JP3436994B2 (ja) | シフト装置 | |
| US5818745A (en) | Computer for performing non-restoring division | |
| US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
| KR100627993B1 (ko) | 3입력 분할 가산기 | |
| TWI917859B (zh) | 混合精度乘法電路 | |
| KR950006582B1 (ko) | 부동 소숫점 승산기의 반올림용 회로소자 | |
| JPH04172526A (ja) | 浮動小数点除算器 |