JPH03180928A - 浮動小数点乗算装置 - Google Patents

浮動小数点乗算装置

Info

Publication number
JPH03180928A
JPH03180928A JP1318940A JP31894089A JPH03180928A JP H03180928 A JPH03180928 A JP H03180928A JP 1318940 A JP1318940 A JP 1318940A JP 31894089 A JP31894089 A JP 31894089A JP H03180928 A JPH03180928 A JP H03180928A
Authority
JP
Japan
Prior art keywords
bits
sum
bit
partial
data
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
JP1318940A
Other languages
English (en)
Inventor
Nariya Tanaka
成弥 田中
Tetsuaki Nakamigawa
哲明 中三川
Hideo Maejima
前島 英雄
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1318940A priority Critical patent/JPH03180928A/ja
Publication of JPH03180928A publication Critical patent/JPH03180928A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、浮動小数点乗算装置に関するものである。
〔従来の技術〕
第2図は、従来の浮動小数点乗算回路の代表的な例を示
すもので、64ビット長の2つのデータX。
Yを入力すると、その浮動小数点乗算を実行し、64ビ
ットデータWを出力する。入力データX、Yは、○〜5
1ビットまでが仮数部を、52〜62ビットまでが指数
部を、63ビットが符号情報をそれぞれ基準に基づいて
配置されている。この基準は、「フローティング ポイ
ント サブコミツテイーワーキング ドキュメント」、
アイ イーイーイー(11F1oatjngpoint
 Subcommittee Illorking D
ocumont”。
IEIEE) p、754.1987で示されている。
浮動小数点乗算回路の動作は、符号部、指数部、仮数部
に対する3つの演算からなっており、出力データWの符
号は、入力データX、Yの符号が同じなら正、相異なっ
ていれば負であり、符号演算回路206は、入力データ
の符号ビット210X、 210Yの排他的論理和を求
めて信号線215ヘデータWの符号ピッI〜として出力
する。
一 指数演算回路205は、入力データX、Yの符号210
X、 、 210Y 、指数2]、1.X、 211Y
を入力し、同符号のとき加算、異符号のとき減算を実行
し信号線216へ出力する。指数補正1鴨路204は、
仮数部の正規化回路202かまるめ回路203から最大
1または−1の補正が要求されたときに、出力Wの符号
215が正のときは1、負のときは−1を補正し、その
結果を出力データWの指数部として信号線222へ出力
する。
仮数部の演算は、部分積演算回路201.加算ユニット
(AU) 230、正規化回路202、及びまるめ−1
路203で実行され、入力データX、Yの仮数部の積か
ら、出力データWの仮数部が算出される。
入力データXの仮数部は52ビットで表示されているが
、この52個の“O”、“↓”の並びを**本・・・と
かくと、当該データの仮数部の真のイ直TJ Xは PX=1.   +1’*  本 ・  ・ ・ [2
コ   ・・・ ・  (1)である。入力データYの
仮数部1) Yについても同様で、どちらも53ピツI
〜の2進数となる。ただし[2コは2進数表示であるこ
とを示している。従って乗算は式(1)の形の2つの数
PX、PYの間で実行され、その結果は 11、*申串・・・[2] 10、*  申 傘 ・ ・ ・ [2]      
  ・・・・・・ (2)01、*寧*・・・[2] のどれかの形になる。ただしここでの本本本・・は10
4個の“O”、′1”の並びである。ここまでの乗算は
、まず部分積演算回路201へ入力データX、Y(7)
仮数部212X、 212Yが入力されると、その入力
の最上位ビット(MSB)に1を追加した式(1)の形
の数の積計算が行われる。部分積演算回路201は、後
述するようにCS A (CarrySave Add
er)により構成されており、その出力はサムの集合体
232 (102ビット)、キャリーの集合体231 
(106ビット)である。106ビット長のAU(Ar
ithmetj、c 1Jnit) 23はこの2つの
出力を加算して式(2)の形の106ビットの乗算結果
を信号線217に出力する。
以上の乗算結果が式(2)の最初の2つの形の7− いずれかになったときは、これを式(1)の形にして出
力データWの仮数部とする必要がある。正規化回路20
2はこの場合に乗算出力217を1ビット左ヘシフトし
、指数部の演算結果を補正すると同時に、次のまるめ演
算のために左シフト後の最下位(LSB)を、左シフト
前のLSB (これはシフトにより消える)及びその工
つ上位のビットの論理和に置き換えておく。
こうして得た正規化回路202の出力218は105ビ
ット長となっているが、まるめ回路203はこれを式(
1)の形の53ビット長のデータとする。このまるめの
方法としては、前述のIEEE基準によると4つのモー
ドRZ、RM、RM、RP、及びRNが与えられている
。RZモードはOに近付づくようにまるめるもので、切
り捨て処理を実行する。RMモードは−■に近づけるよ
うにするもので切り下げ処理を実行する。RPモードは
+■に近づけるもので切り上げ処理を実行する。最後の
RNモードは四捨五入処理を実行する。これらの処理は
、小数点以下52ビット目をり、53ビット目8− をG、54ビット目をR155ビット目以下の各ビット
のオアをS、演算結果の符号をS、としたとき、次式に
従って求められた値が小数点以下52ビット目に加えら
れて、小数点以下53ビット目以降の部分が除かれる。
RZモード:O RMモード:S、・ (G+R+5) RPモード:S、・ (G+R+5) RNモード二G・(R+S)+L −G・ (R+S)
・・・・・・(3) こうしてまるめられた53ビットのデータの内、MSB
にある“1”が自動的に取り除かれ、出力データWの仮
数部にセットされる。
特殊データ処理回路207は、IEEE基準で決められ
ている一■、+■、N A N (Not A Num
ber)など例外的な数字を検出し処理を終了させるた
めの制御回路であるが、本発明には関係ないのでその説
明は省略する。
次に、本発明に関係のある部分積演算回路201の従来
例を詳細に説明する。手計算による乗算と9− 同様に、乗数の1桁づつを被乗数にかけると1つづつの
部分積が生じ、こうして得た部分積を桁合わせをして加
算すれば乗算が完了する。この手計算と同じ方法をその
まま実行すると、最初の部分積と次の部分積を加算し、
その結果と次の部分積を加算するという処理を繰り返す
ことになる。しかしこれでは各加算時にキャリー伝搬が
生じるため並列処理が行えず、性能が上がらない。これ
を改善するためにC8A方式が考案された。このC8A
の構成は第3図に示されており、同図(b)の回路4(
iIJ)を同図(a)のように接続して部分積演算回路
201が構成されている。ユニット回路4(i、j)は
、入力データX、Yの仮数部212X、 212Yを式
(1)の形にしたPX、PYの第Jl−LビットX(j
)、Y(i)(ともにLSBから数えてJ+1番目のビ
ット)のアンドをアンドゲートAND (jl i)で
とり、その出力と他の2つの入力c (i−11jL 
s (i−11j+1)との3入力に対する全加算を全
加算器FA(i、j)で算出する。その結果はサムs(
i。
1〇− S)、キャリー(−i、j)として出力される。ここで
3入力に対する全加算器FAの出力s、cの真理値表は
第1−表の通りである。
第  1−  表 第3図の回路構成の動作は次の通りである。第3図(a
)で、Y(i−1)が入力されている1番−にのユニッ
ト回路・・4 (i−1,j+1)。
4 (i−工t 、’]) + 4 (i−1t j−
、t)は・・・は、PYを乗数としたときその第(i−
1)ビット目Y(i、−1)と被乗数1) Xとの部分
積の各ビットを算出しており、またY (コ)が入力さ
れている第2行目のユニット回路・・4(j、j→1)
’] (、; r 、j) + 4 (j、、 +j−
i)  ・・・は、PYの第」ビットY(:i、)とP
Xとの部分積の各ビットを算出している。一方、縦方向
の各ユニット回路にはPXの同じ桁のビットが入力され
ているから、J−記の第1行目の各ユニット回路の出力
ビットは第2行目のそれより1桁下位に相当する。従っ
て同図のように各ユニット回路のサムSを■っ下の行の
]っ右よりのユニツ1−回路l\、キャリーCをすぐ下
のユニット回路へ入力し、こうして全加算器FAにより
アンドゲートの出力と合わせて各ユニット回路で加算を
行えば、必要な部分積の和が求められる。しかもこの方
法によると、第3図(a)の各行の中でのキャリーの伝
搬はなくなり、キャリーは次の加算時に加えるというや
り方であるので、部分積同志の加算は各ビット並列に行
える。PYのビット数は53であるが、PYのLSBと
その1つ」このビットY (o) 、 y (1)に対
しては第3図(b)のユニット回路は不要でアントゲ−
1−だけでよい。そしてこの2段の各アンドゲート出力
が第3段目のY(2)に対するユニット回路の行の全加
算器へ入力されればよいので、結局上記の部分積の加算
は51段の全加算器の遅延時間により実行でき、高速な
演算が可能となる。
ただし第3図(a)の最下段にくる各ユニット回路及び
最右列にくる各ユニット回路からは、サムのビット列と
キャリーのビット列とが出力されており、これらのビッ
ト列がサム集合体232、キャリー集合体231を形成
する。これらをA U 230で加算したものが乗算結
果となる。この全体の様子は第4図(a)に示されてい
る。(ただしこの図は簡単のため各入力データを8ビッ
トとして示した)部分積演算の高速化技術の別の従来例
を次に説明する。第3図の方法は、各部分積をC8A方
式により第4図(、)のように順次加算していくもので
あるが、これを同図(b)に示すように、各部分積を奇
数と偶数に分け、各々を並列にC8A方式により同時実
行し、それぞれのサム集合体AI、Bl及びキャリー集
合体A2.B2を求める。
3 次に各サム集合体A1..B1の和及び各キャリー集合
体A2.B2の和を求めたのち、これらの和をAUで加
算するもので、その詳細ばTSSCC84(Inter
natjonal 5olid 5tate Cj、r
cuit Conference)  の92〜93頁
に示されている。
別の高速化技術として、Wall、ac+q方式と呼ば
れるものがある。本方式は、各桁ごとに木構成をとりな
がら部分積を求めるものであるが、ビット長が大きくな
ると不規則な構造のため不利である。
しかし、第3図(b)の方法で各部分積の結果をまとめ
る部分、つまり4つの集合体を2つの集合体にするよう
な部分には有効であり、C8AとWal、]aceの両
方式を併用するものがある。なお、Wallaceの方
式については、IEEE Trans、 Electr
on。
Computers、 vol、EC−13,PP14
−17. li’eb、]96i1に示されている。
部分積演算のもう1つの拙守な高速化方法として、ブー
スのアルゴリズムがしげられる。本アルゴリズムの特長
は、部分積の数を半分にしてしまうところにあり、これ
によって高速化を実現して14 いる。このアルゴリズムについては、Quart、 J
Mech、 Appl、 Math、、 vol、4.
 Part2.1951に示されており、第5図は本方
式の部分積演算回路の例を示すものである。第5図(a
)において、入力データYの仮数部に1.をつけたデー
タPYはブースのデコーダ530へ入力され、各ユニッ
ト回路への選択信号B (i)に変換される。この信号
B(i)の個数はデータPYのビット数の半分であり、
各信号B (i)は3本の信号線により3ビットの選択
信号となっている。ユニット回路5(i。
j)は、第5図(b)のような構成となっており、デー
タPX(7)2”)(7)ビットX (j) 、 X 
(j−1)からセレクタSEL (il j)により5
つのデータを生成し、さらにその内の1つを上記の選択
信号B (i)の値に応じて選び出す。これが部分積の
値となるので、第3図の場合と同様に、3入力の全加算
器FA (11j)によってC8A方式の加算を行う。
本例によれば、部分積の段数は27段でその加算は25
段の全加算器の遅延時間で実行できる。
5− 〔発明が解決しようとするR題〕 上記した従来技術のいずれにおいても、仮数部の乗算の
中でサム集合体とキャリー集合体の加算とまるめの加算
という2度の加算をシリアルに行っているため、処理速
度が余計にかっていた。また、指数部の演算において補
正が必要となったときに補正値の算出とそのオーバーフ
ローあるいはアンダーフローの検出を行っており、これ
も高速化の障害となっていた。
本発明の目的は、浮動小数点の乗算をより高速に行える
ようにした浮動小数点乗算装置を提供するにある。
〔課題を解決するための手段〕
上記の目的を達成するために、本発明においては、仮数
部演算の部分積演算後の加算とまるめの加算を一度に実
行する構成とし、指数部の演算では、指数の演算時にお
こる可能性のある補正値の演算及びオーバーフロー及び
アンダーフローの検出を予め行っておき、補正が必要と
なったときにはそれらを単に選択する構成とし、また、
部分積演算では5以上の入力をもつ全加算器を用いて同
時に2つ以上の部分積の和を求める構成とした。
〔作 用〕
仮数部演算において、部分積をC8A方式で加算して得
たサム集合体及びキャリー集合体からまるめに必要な補
正値を生成すれば、これは簡単な処理で短時間で行える
から、この補正値と2つの集合体とを同時に加算すれば
まるめのための加算時間を別に設ける必要がなくなる。
また、指数部の演算とその補正値の演算、及びオーバー
フローあるいはアンダーフローの検出を予め実行してお
けば、仮数部の結果がでたときには選択するだけでよい
ので、指数部の補正およびオーバーフロー/アンダーフ
ローの検出時間を節約できる。さらに、5以上の入力を
もつ全加算器を用いて部分積の加算を複数個並列に行え
ば、処理時間が短縮され、高速化がはかれる。
〔実施例〕
以下、本発明を実施例により説明する。本発明の浮動小
数点乗算回路100は、指数演算部と仮数17− 演算部の構成が従来の第2図と異なっており、以下では
この異なった部分を説明する。
指数演算回路110は、入力データX、Yの指数部21
1X、 211Yの各11ビットと符号演算回路206
の出力215から指数の計算を実行するが、この他に正
規化回路またはまるめ回路で±1の補正を実行する可能
性があるため、予め指数の補正値を計算し、かつ補正前
のデータと補正後のデータのオーバーフロー及びアンダ
ーフローをチエツクしておく。第6図は、指数演算回路
110の構成を示すもので、加減算器2201は従来通
りの指数の計算を行う。±1補正回路2203は、予め
正規化またはまるめ時に発生する可能性のある補正値を
演算しておく。オーバーフロー/アンダーフロー判定回
路2202は、補正がOのときのチエツクを行い、もし
オーバーフロー/アンダーフローが発生していればその
判定時点に浮動小数点演算処理を中断してもよい。なぜ
なら、補正前にすでにオーバーフロー/アンダーフロー
していれば、補正後もオーバーフロー/アンダーフロー
しているからである。
オーバーフロー/アンダーフロー判定回路2204は±
1補正回路2203出力の判定を予め行っておく。
この判定によりオーバーフロー/アンダーフローが検出
されたときに処理中断を行う場合には、検出後すぐに中
断せず、補正が必要であると判明した時点に中断する。
以上の処理は仮数部の演算結果により補正するかどうか
わかるまでに補正値の演算及びオーバーフロー/アンダ
ーフローの判定処理が予め終わってしまうから、後はそ
の選択のみですみ、全体の処理時間を短縮できる。
第1図に戻って、仮数部の演算について説明する。入力
データX、Yの仮数部2]2X、 2+、2Yから式(
1)で説明したデータPX、PY (各々53ビット)
を生成し、C8A方式で部分積の和を求め、サム集合体
232とキャリー集合体231を部分積演算回路201
で算出するまでは従来と同じである。本発明実施例では
このあと、各集合体232.231をAUで加算して1
06ビットの結果を得るのではなく、各集合体232,
231の下位ビットより補正値発生回路1】6で補正値
を生成し、各集合体232.23コの上位ビットの加算
とまるめの加算を同時に行う方法をとる。最後に正規化
を行い、処理を完了する。
第7図は補JIE発生の説明図で、2つの集合体231
.232が入力である。今これらのデータのピッI・位
置を■、S 13から第Oピッ[〜、第1ビット・・と
呼ぶことにすると、集合体231.、232の小数点付
置は第104ピッI−と103ピツ1〜との間にある。
そしてこれらの加算結果は第105ピツ1〜(MSB)
にN 1 ++が発生する場合がある。従来の方法では
この加算を行い、M、 S 13に111”が立つと1
−ビットシフトをするという正規化がまず行われた後ま
るめ処理が行われたが、本発明実施例では加算も正規化
も行う前にまるめのための処理を行う。そこで、加算結
果のMSBがII Q 11の場合をAデータ型式、パ
1”の場合をBデータ型式とよぶと、この両方の場合に
対するまるめの処理を予め行っておく必要がある。従っ
て、式“3”で説明したまるめ処理のための情報はAデ
ータ型式の場合は第52〜50ビットがLl、、 Gl
、 R1,第49ビット〜○ビットのオアがSlであり
、Bデータ型式の場合=19 は(まだシフトしていないので)第53〜51ビットが
L2. G2. R2,第50−0ビットのオアがS2
’tl−ある。そしてまるめ処理は、Aデータ型式の場
合第52ピッI−目にまるめによる補正と、本来乗算す
ることにより得られる第51〜Oビットからのキャリー
信号の2つの補正をする。その補正値はO5+1、+2
をとる。0は下からのキャリー信号がなくかつまるめに
よる補正がない場合、+1は下からのキャリー信号があ
るかまたはまるめによる補正がある場合、+2は下から
のキャリーがありかつまるめによる補正もある場合であ
る。一方、Bデータ型式の場合は、Aデータ型式の場合
と、各ビットが1つ上位へ移る点を除けば同じ処理でよ
い。
第上図の補正値発生回路116は、キャリー集合体23
2及びサム集合体231のそれぞれの下位半分の第53
〜0ビットを取り込み、第8図の処理1161をまず実
行して、まるめのための情報を発生する。
ここでフラグa、b、及びCは、2つの集合体23]、
、 232の加算結果の第50〜○ビット、第51〜0
ピツ1〜、及び52〜○ビットがオール○かどうかを示
すもので、まるめ処理のためSl、、S2ビットを得る
ためのものである。Sl、S2は加算結果の論理和であ
るが、その論理的な反対は加算結果のオールOと等価で
あるからである。そしてこのオールOの検出は特開昭6
3−208938号に示されているように、簡単な回路
で行え、その処理時間も小さい。
つづ<b−fは、加算結果の第51〜0.52〜○、及
び50〜0ピツI〜までのキャリー出力を示すフラグ、
g−Qは図示の各ビット位置の(f&、mは符号信号で
、これらも簡単に求められる。
以上の13個のデータが求まると、まるめモードに応じ
た補正発生処理1162が実行される。この内容は第9
図に示されており、式(3)で説明した各モード対応の
補正値を第8図のデータから求めるもので、これらの補
正値233はまるめ回g1.15へ入力される。
第10図はまるめ回路115の構成を示すもので、部分
積演算回路201の出力のサム集合体232及びキャリ
ー集合体231の上半分(第105〜52ビット)と上
記の補正値233が入力され、Aデータ型式用、Bデー
タ型式用の3入力AU回路2101.2102で加算さ
れる。これによって各データ型式のときの、仮数部乗算
結果をまるめた値が各AU回路出力234.235とし
て出力される。さらに正規化回路114のセレクト信号
235として、3入力AU回路2101の第105ビッ
トのデータ273が出力される。正規化回路114は、
セレクタとなっており、セレクト信号1711により、
目標のデータを切り変える。
セレクト信号273がOであれば れデータ型式を1で
あれば、Bデータ形式を出力すればよい。このようにし
て、本実施例によれば、第8図、第9図の補正値の算出
は簡単な論理処理で極めて短い時間を要するだけである
から、2つの集合体232.231の加算とまるめのた
めの加算をまるめ回路115で同時に実行できる。
次に、5以上の入力をもつ全加算器を用いて部分積演算
を高速化したいくつかの実施例を説明する。以下では7
入力の全加算器を用いるものとし、その具体的な構成例
を第は11図に示す。これは3入力全加算器を4個用い
て構成したもので、7つの入力1001〜1007を加
算して、3つの出力、即ちサムS、第1のキャリーc1
.第2のキャリーC2を得る。この入出力の関係は先に
示した3入力のときの真理値表(第1表)と同様に示せ
るが、入力の組み合わせが2’=128通りあって長く
なるので省略する。要は7つの入力(すべてがO”か“
l”)の内の“1”の個数をnとしたときこれを2進数
で表したものが(c2.cl、s)になる。
このように7入力とすると、出力は10進でO〜7であ
るから、2進数では3ビット必要で、2つのキャリーc
2.clが出力として必要になる。そして第11図の回
路構成では、回路の遅延時間は3入力全加算器3段分の
遅延時間に相当し、面積は4個分に相当する。なお、7
入力の全加算器を第11図のような構成ではなく、直接
、プール代数を用いた最適な回路にしてもよい。
第12図はこの7入力全加算器(FA)を用いたC8A
方式の部分積演算回路の一実施例を示しており、部分積
の第n+2.n+1.n桁目(ピッ23 ト位置と同じ)の部分積[i]〜[i + 7]を加え
る部分を抜きだしたものである。同図の左下の7入力全
加算器を例にとると、入力1005〜1007にはすぐ
上のサム出力S、その右のキャリー出力c1.及びさら
にその右のキャリー出力C2が入力され、これらが部分
積[i]〜[i + 3 ]までを加えた結果得られた
サム及びキャリーである。
方、入力1001〜1004には部分積[i+4]〜[
i+7]のn桁目(図の丸印。これは乗数、被乗数の対
応ビットのアンドをとった値)がそのまま入力される。
このような接続関係はどの全加算器に対しても同様で(
周辺部を除いて)規則的になっている。なお、ここでは
、7入力データの内、上段の演算出力を入力1005〜
1007へ、今求めた部分積を入力1001〜1004
へ入力したが、論理的には7入力は対称であるから、ど
の入力にどれが入ってもよい。しかし一般に、上段の演
算出力がクリティカルパスとなるため、全加算器の遅延
時間の小さい方から3つをこの演算出力に使う接続方法
が好ましい。
24− 次に本実施例の動作を説明する。第13図は53ビット
×53ビットの部分積演算を行う場合の、n桁目の演算
方法を示すもので、第12図の接続関係からn桁目のみ
をとり出している。まず53ビットのデータから第5図
で述べたブースのアルゴリズムを通して27個の部分積
が生成されているとする。
本図で丸印に数字が書かれているものが、このn桁目の
各部分積を示している。この27個の部分積を7入力全
加算器を使って演算すると、第1段目の7入力全加算器
は、部分積1〜7の和を算出する。第2段目の加算器は
、部分積8〜11と第1段目の出力との和を、以後部分
積4個づつを1段ごとに加算して、全部で6段の7入力
全加算器でn桁目(nはどこでもよい)の値が算出され
る。第6段目の演算結果は各桁とも3つ存在するため、
よく知られている3入力11allaceの方式により
2つの出力にする。こうして第↑図の補正発生回路11
6及びまるめ回路115への2つの入力データ232.
231とする。なお、第12図では部分積を求める部分
を単に丸印で示したが、ブースのアルゴリズムを使う場
合には第5図に示したような部分積生成のための回路構
成を7入力全加算器に対しても行う必要がある。この詳
細は第14図、第15図に示されており、第14図は第
13図の7入力がすべて部分積である全加算器90]、
、 902の場合の構成である。
入力データXの仮数部を式(1)の形にしたデータXP
の8つの連続したビットX(j−1)〜X(j+6)の
2つづつから各セレクタS E Lはそれぞれ5つの値
を生威しくこれは第5図のセレクタと同じもの)、ブー
スのデコーダ出力B (i)〜B (j+6)によりそ
れぞれ土つが選択されて7入力全加算器1000の入力
1001〜1007どなる。また第15図は第13図の
第2回目行以降のFA演算を行う場合で、第14図の構
成でキャリーC1,、C2゜サムSの入力部分の部分積
をとる回路(セレクタ)を除去した構成になっている。
本実施例によると、27個のデータの部分積演算を実施
するために、6段の7入力加算器と3入力l1lall
ace回路の遅延時間により部分積演算が実行できる。
これは、7入力全加算器を第11図の回路とすると、3
入力全カロ算器の遅延時間しこ換算して19段となり、
従来のブース方式とC8A方式を組み合わせたときの2
7段に比へさらに高速となる。
第16図は7入力全加算器を用いた部分積演算回路の別
の実施例を示すもので、n桁1」の部分積演算の部分の
みを示している。53ビットの入力はブースのデコーダ
と第14図及び第15図で示した回路により27個の部
分積に変換され(丸印を付けた1〜27の記号で示した
)、2系列の7入力全加算器により並列に加算される。
7入力全加算器901゜及び902は、部分積の第1〜
7番目、及び8〜14番目をそれぞれ加算する。以下、
7入力全加算器903は部分積の15〜18番目と他の
桁からの2つのキャリーと全加算器901のサムSとの
加算を、7入力全加算器904は部分積の第19〜22
番11と他の桁からの2つのキャリーと全加算器902
のサムSとの加算を・・・という具合に構成されている
ここで他の桁からのキャリーcl、a2は、それぞれ1
つ下、2つ下の桁からのキャリー出力である。
そして最後にbl a l 、1. a c eの回路
(6入力全加算器)7 によりキャリー集合体231およびサム集合体232を
生成する。
第17図は上記実施例の動作説明図で、和を2系統に分
けて並列に求める。即ち、第1回目に部分積1〜7と同
8〜14を同時に演算し、次に部分積15〜18と同1
9〜22の各々4つを同時に加算し、次に部分積23〜
24と同25〜27を同時に加算しくこの段階では4つ
づつはないが、余った所は0を入力)、最後にWal、
iac、eの回路でまとめ、集合体231.、232と
して第1−図のまるめ回路115及び補正植発生回路】
コロへ出力する。以上の演算の遅延時間は、7入力全加
算器3段と6入力Wallace回路j段分であり、こ
れら各加算器を第11図の構成とすると、3入力全加算
器に換算して12段分の遅延時間となり、さらに高速化
が遠戚できる。
なお、本実施例では第3回目の演算を行う7入力全加算
器への入力数が不足し、そこへOを入力するものとした
が、C8A方式による7入力加算は第2回目の演算まで
とし、部分積23〜27はWall、aeeの方式で加
算してもよい。この場合は11入力のWal、1ace
同28 路を必要とし、全体の遅延時間は2段の7入力全加算器
と11入力LNallace回路1段分となる。これを
3入力全加算器の遅延時間で見ると11段となる。
このように、部分積が丁度4個残らなかったどきはその
分をWal、1ace回路で演算することもできる。
次に、さらに並列度を高めた実施例を説明する。
第18図は7入力全加算器を用いて4並列に部分積の加
算を行う方法の動作説明図で、最初に部分積上〜7.8
〜〕4.15〜21.及び22〜27(あまりはOを入
れる)を同時に算出する。この演算結果は、各桁とも】
2の出力(4並列にそれぞれ3出力)が存在するため、
よく知られている12人Wallaceの方式より2つ
の出力にする。この出力を各桁でまとめてまるめ回路1
15等/\出力する。
第18図の方法を実現する回路構成を第19図(a)に
示す。この実施例は、以下の同図(b)(c)とともに
、部分積演算回路201の全体を示しており、LSI化
のときの各回路の配置の概要図である。
入力データX、Yは共に53ビットとし、入力データY
はブースのデコーダにより27個の出力に変換される。
図中U7は第14図に示した部分積と和を求めるユニッ
ト回路で、縦方向に並んだ4個が第18図に示した工桁
分の部分積の和を上回で同時に算出する。そしてその結
果は、12入力のWal、]、ace回路W1回路主1
められる。ここで、各ユニット回路U7からWalla
ce回路W12までの矢印の長さは、実際の配線長の大
小を定性的に表している。このため、必要があれば、各
段ユニット回路U7の出力ドライバの原動能力を配線長
に合わせて変えてもよい。
本実施例によれば、1段の7入力全加算器と12入力W
allace回路の遅延時間を持つから、3入力全加算
器の遅延時間に換算すると8段となり、層の高速化がは
かれる。
第19図(b)は、第19図(a)の12入力Wall
ace回路W12を2つの6入力Wa1.1ace回路
w6と4入力Va1.1ace回路W4に分けて配置し
た実施例を示すものである。上段の2つのユニット回M
U7の出力が上側の6入力Wa1.]、ace回路w6
で加算され、下段の2つのユニット回路U7出力が下側
の6入力Wallace回路W6で加算され、さらに各
6人カ1Ila11ace回路W”” 出力が4入力W
a11.ace回路w4でまとめられる。本実施例によ
ると、図示の矢印かられかるように、上側の6入力11
allace回路の出方ドライバだけ高駆動能力のある
デバイスとすればよく、ドライバの面積を小さく、さら
にピーク電流も小さくできるという効果がある。
第19図(c)は第19図(b)の構成において、2つ
の6入力Wallace回路w6の位置を変え、そこへ
入力を送るユニット回路U7の出方負荷を揃えるように
して、回路設計を容易番こしたものである。
以上、種々の実施例を説明した。パイプライン化による
高速化については触れながったが、どの実施例において
もパイプライン化を行うことは可能で、−層の高速化が
実現できる。また演算対象とするデータ長は64ビット
としたが、この長さが変わっても本発明が適用できるこ
とはいうまでもない。さらに、部分積演算回路での加算
の高速化のために7入力の全加算器を用いる例を示した
が、これは出力を3ビット(サムと2つのキャリー)=
31− としたときは入力の最大が7個、従って中間段階で4個
の部分積をそれまでの結果(キャリー2個とサム)と−
度に加算でき、同し3ビット出力の4〜6入力全加算器
の場合よりも効率がよいからである。全加算器をnビッ
ト出力(サムn−1個のキャリー)とすれば、入力数は
最大2n−1ビットまでとれ、このような全加算器の利
用へ本発明を拡張することは容易である。
〔発明の効果〕
本発明によれば、まるめの処理と仮数部の積を求める演
算処理の一部とを同時に行え、また指数部の演算及び乗
算結果のオーバーフロー/アンダーフローを予め検出で
き、さらに5以上の入力をもつ全加算器を用いることに
より部分積の加算を複数個並列に実行できるから、浮動
小数点の乗算処理を高速に行えるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図〜
第5図は従来の浮動小数点乗算回路の構成と動作を示す
図、第6図は第1図の指数演算回路の構成例を示す図、
第7図〜第9図は第1図の2 補正値発生回路の動作説明図、第10図は第1図のまる
め回路の構成例を示す図、第11図は7入力全加算器の
構成例を示す図、第12図〜第19図は第工図の部分積
演算回路に7入力全加算器を用いて高速化した実施例と
その動作説明図である。 100・・・浮動小数点乗算回路、110・・指数演算
回路、113・セレクタ、114・・・正規化回路、1
15・・・まるめ回路、116・・・補正値発生回路、
201・・・部分積演算回路。

Claims (1)

  1. 【特許請求の範囲】 1、2つの浮動小数点数を入力データとし、2つの入力
    データの符号から出力データの符号を算出する符号演算
    部と、2つの入力データの仮数部の積を求めその結果の
    正規化及びまるめ処理を行って出力データの仮数部を算
    出する仮数演算部と、2つの入力データの指数部の加減
    算処理と該処理結果の上記正規化及びまるめ処理の結果
    に応じた補正処理を行って出力データの指数部を算出す
    る指数演算部とから構成された浮動小数点乗算装置にお
    いて、上記指数演算部に、上記正規化及びまるめ処理の
    結果に応じて必要となる可能性のある補正値を上記加減
    算処理結果から予め算出しておく第1の手段と、該手段
    の出力及び上記加減算処理結果のオーバーフローあるい
    はアンダーフローの有無を予め検出しておく第2の手段
    と、上記仮数演算部における正規化及びまるめ処理結果
    が出力されたときに該結果に応じて上記加減算処理結果
    あるいは予め算出された補正値から必要な値を選択して
    出力データの指数部とし、かつ上記予め検出されたオー
    バーフローあるいはアンダーフローの有無の判定結果を
    とりだす第3の手段とを設けたことを特徴とする浮動小
    数点乗算装置。 2、前記指数部の加減算処理結果のオーバーフローある
    いはアンダーフローが前記第2の手段により検出された
    ときは該検出された時点に当該乗算処理を中断し、また
    前記第1の手段により算出された補正値のオーバーフロ
    ーあるいはアンダーフローが前記第2の手段により検出
    され、かつ当該補正値が前記第3の手段により選択され
    たときには当該乗算処理を中断することを特徴とする請
    求項1記載の浮動小数点乗算装置。 3、前記仮数演算部と、一方の入力データの各ビットも
    しくは複数ビットごとに他方の入力データ全体との積を
    部分積として算出する部分積算出手段と、該手段により
    算出された各部分積の加算を、加算すべきデータの各ビ
    ットごとの和をそのビット位置の和ビット及びキャリー
    ビットとして算出しかつ次データ加算時に上記算出した
    和ビット及びキャリービットと上記次データのそれぞれ
    該当するビットとの加算を行うという処理を繰り返すこ
    とによって行う部分和算出手段と、該手段により上記部
    分積をすべて加算して得られた和ビットの集合及びキャ
    リービットの集合から仮数部乗算結果のまるめ処理に必
    要な補正データを生成するための補正値発生手段と、該
    手段により生成された補正値と上記和ビットの集合及び
    キャリービットの集合とを加算してまるめ処理を施した
    仮数部乗算結果を生成するためのまるめ手段と、該手段
    の出力を正規化して出力データの仮数部を生成する正規
    化手段とから構成したことを特徴とする請求項1記載の
    浮動小数点乗算装置。 4、前記部分和算出手段は、nを3以上の整数としたと
    き、1個の和ビットとn−1個のキャリービットを出力
    とし、かつ2^n−1個の入力ビットを有する全加算器
    により構成され、該全加算器の入力は、2^n−1個の
    前記部分積の同一桁のビットであるか、あるいは2^n
    −n−1個の上記部分積の同一桁のビットと他の全加算
    器の当該桁対応の和ビット出力と他のn−1個の全加算
    器から出力された該当ビット相当のキャリービットであ
    ることを特徴とする請求項3記載の浮動小数点乗算装置
    。 5、mを2以上の整数としたとき、前記加算すべき部分
    をm組に分割し、該分割した各組ごとに設けた前記部分
    和算出手段により部分和を算出し、さらに該算出したm
    個の部分和ごとの前記和ビットの集合及びキャリービッ
    トの集合のそれぞれの和を算出する合成手段によって全
    ての部分積を加算したときの和ビットの集合及びキャリ
    ービットの集合を生成する構成としたことを特徴とする
    請求項3あるいは4記載の浮動小数点乗算装置。
JP1318940A 1989-12-11 1989-12-11 浮動小数点乗算装置 Pending JPH03180928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1318940A JPH03180928A (ja) 1989-12-11 1989-12-11 浮動小数点乗算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1318940A JPH03180928A (ja) 1989-12-11 1989-12-11 浮動小数点乗算装置

Publications (1)

Publication Number Publication Date
JPH03180928A true JPH03180928A (ja) 1991-08-06

Family

ID=18104687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1318940A Pending JPH03180928A (ja) 1989-12-11 1989-12-11 浮動小数点乗算装置

Country Status (1)

Country Link
JP (1) JPH03180928A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257646A (ja) * 1992-03-16 1993-10-08 Fujitsu Ltd 浮動少数点乗算器
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257646A (ja) * 1992-03-16 1993-10-08 Fujitsu Ltd 浮動少数点乗算器
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법

Similar Documents

Publication Publication Date Title
JP3492638B2 (ja) 浮動小数点乗算器
JPH09269891A (ja) 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置
JP2618374B2 (ja) 最上位の数字の位置の検出
CN117111881B (zh) 支持多输入多格式的混合精度乘加运算器
US5282156A (en) Leading one anticipator and floating point addition/subtraction apparatus employing same
JP4500358B2 (ja) 演算処理装置および演算処理方法
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
JP2511527B2 (ja) 浮動小数点演算器
KR100627993B1 (ko) 3입력 분할 가산기
JPH03180928A (ja) 浮動小数点乗算装置
US7127483B2 (en) Method and system of a microprocessor subtraction-division floating point divider
US4823300A (en) Performing binary multiplication using minimal path algorithm
JPH01290035A (ja) 高速乗算器における丸めの方法及び装置
JPH0553765A (ja) 先行1検出回路および浮動小数点加減算装置
JPH0667852A (ja) 除算器
JP3174974B2 (ja) 浮動小数点演算装置および方法
JPH0667853A (ja) 除算器
JPH0580973A (ja) 正規化丸め装置
JPH0426495B2 (ja)
KR0136488B1 (ko) 병렬 곱셈기
JP2993119B2 (ja) 浮動小数点演算装置
JP3077880B2 (ja) スティッキービット検出回路
JPH0427587B2 (ja)
JPH0527948A (ja) 演算装置
JPS60235239A (ja) 浮動小数点加算回路