JPH01300338A - 浮動小数点乗算器 - Google Patents

浮動小数点乗算器

Info

Publication number
JPH01300338A
JPH01300338A JP63132148A JP13214888A JPH01300338A JP H01300338 A JPH01300338 A JP H01300338A JP 63132148 A JP63132148 A JP 63132148A JP 13214888 A JP13214888 A JP 13214888A JP H01300338 A JPH01300338 A JP H01300338A
Authority
JP
Japan
Prior art keywords
normalized
numbers
booth
denormalized
floating point
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
JP63132148A
Other languages
English (en)
Inventor
Hiromasa Takahashi
宏政 高橋
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63132148A priority Critical patent/JPH01300338A/ja
Publication of JPH01300338A publication Critical patent/JPH01300338A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔発明の概要〕 正規化数の他に非正規化数も入力オペランドとする高速
浮動小数点乗算器に関し、 多次のブースのアルゴリズムを用いる場合の乗算器の遅
延時間を短くすることを目的とし、正規化数と非正規化
数を入力オペランドとし、3次以上のブースのアルゴリ
ズムを用いる浮動小数点乗算器において、非正規化数を
正規化数に変換する回路と、3倍数を含む倍数発生器を
並設し、入力オペランドが正規化数であればそれを倍数
発生器側へ、また非正規化数であればそれを変換回路へ
入力するセレクタを設けるよう構成する。
〔産業上の利用分野〕
本発明は、正規化数の他に非正規化数も入力オペランド
とする高速浮動小数点乗算器に関する。
浮動小数点演算される数のビット長は最近長くなる傾向
にあり、倍精度64ビツト長などがよく使用される。ま
た演算数(入力オペランド)のフォーマットとしては、
IEEE標準フォーマットが使用されることが多い。
IEEE標準フォーマットでは数例えば0.00110
・・・・・・lは正規化して仮数部1.lO・・・・・
・lと、小数点のシフト量を示す指数部で表わし、仮数
部1.lO・・・・・・lの最初は1である。しかし0
.00・・・・・・とOが多数続き、指数部の全部を使
っても(それだけ小数点をシフトしても)まだ1が現わ
れない場合は、非正規化数とし、仮数部を0.0010
・・・・・・1などとし。
バイアスがかかった指数部を000・・・・・・0とす
る。
更に小さい数では仮数部全部が0になるが、かかる数は
アンダーフローとして演算対象外とする。
結局、非正規化数は正規化数より小さくアンダーフロー
より大きい数として例外的に現われる。演算器としては
正規化数しか扱わないものもあるが、正規化数と上記非
正規化数の両方を扱うものもあり、本発明は後者の演算
器に係るものである。
非正規化数も扱う演算器では、演算に当って演算対象(
入力オペランド)が正規化数か非正規化数かを知り、そ
れに応じた処理をしなければならない。ところでIEE
E標準フォーマントの入力オペランドは仮数部を見ただ
けでは正規化数か非正規化数かは分らない。これは、仮
数部の先頭(上記の1.またはO,)は隠れビットとし
て仮数部から除いてしまうことによる。しかし、正規化
数か非正規化数かは指数部を見れば分り、指数部が1以
上なら正規化数、オール0なら非正規化数である。
入力オペランドのビット長の増加に従って乗算器の乗算
アレイ (又はトリー)は、多次のブースのアルゴリズ
ムを用いることで高速化が図れる。
また入力オペランドに非正規化数を含む場合、従来方式
では入力オペランドをランプ数変換回路に入力し、その
出力に対し乗算処理を行なうが、これでは遅延が大にな
る2本発明はこの点を改善して高速化を図るものである
〔従来の技術〕
浮動小数点の乗算を行う場合、一般に仮数部のビット幅
が大きくなるとブースのアルゴリズムが使用されること
が多い。これは例えば2次のブースのアルゴリズムを使
用した場合、乗算アレイまたはトリーのハード量が約1
/2になり、伝播遅延時間も約1/2になるためである
さらに仮数部のビット数が増えた場合には3次のブース
のアルゴリズムを使用するのがよく、これにより乗算ア
レイまたはトリーのハード量を2次のブースを使用した
場合の約2/3にすることができる。しかし、実際には
64ビット程度の演算では3次のブースのアルゴリズム
を使用せず2次のブースを使用することが多い。これは
、2次のブースのアルゴリズムでは被乗数と被乗数の2
倍の数が必要なのに対して、3次のブースのアルゴリズ
ムでは被乗数と被乗数の2.3,4.倍の数が必要なた
めである。2進数の場合、ある数の2倍の数は1ビツト
の左シフト、4倍の数は2ビツトの左シフトで得られる
ためハード量、遅延の増加は問題にならないが、3倍の
数を得るためには被乗数と被乗数を左に1ビツトシフト
した数を加算する必要があり、遅れが生じる。このため
、乗算アレイまたはトリーの遅延が短くなっても、被乗
数オペランドの3倍数の生成時間を加えると、全体の遅
延は2次のブースのアルゴリズムを使用した場合よりも
大きくなる傾向にある。
また前述のように最近は浮動小数点のフォーマットとし
てはrEEEフォーマットが使用されることが多い、 
IEEEフォーマットでは例えば32ビツトに対する倍
精度フォーマットは、符号ピントが1ビツト、指数部が
11ビツト、仮数部が52ピント、計64ビットで表現
される。正規化数の場合には仮数部にはかくれビット1
があり、必ず、l。
×××××のように表現され、指数部はバイアスがかか
っており正の数しか取りえない、また、IEEEフォー
マットでは0(アンダーフロー)と最小の正規化数の間
に非正規化数が存在し、非正規化数はバイアスがかかっ
た指数部が0、仮数部はがくれビットが0で0.×××
××で表現される。
また前述のように、IEEEフォーマットの乗算を行う
場合には、この非正規化数が問題となる。正規化/非正
規化でみると入力オペランドの種類としては、2つのオ
ペランド(X、Y)がともに正規化数の場合、1つが正
規化数で他の1つが非正規化数の場合、2つとも非正規
化数の場合が考えられる。
非正規化数のオペランドを含む乗算を行う場合にはその
まま乗算すると仮数部が桁落ちするため通常は非正規化
数をラップ数に変換してから乗算を行う、ランプ数とは
非正規化数の仮数部を正規化しくかくれビットを1とし
)、指数部を2の補数表示として負数を表現した数であ
る。したがって、乗算の前処理としてラップ数変換回路
が必要となる。第3図に、3次のブース・アルゴリズム
を使い、IEEEフォーマットの非正規化数を扱うこと
のできる浮動小数点乗算器の一般的なブロック図を示す
図示のようにこの方式ではX、Yオペランドをランプ数
変換回路11に加え、非正規化数ならう・ノブ数変換を
する。オペランドが正規化数か非正規化数かはオペラン
ドチエツクフラグFLGが示すから、これにより上記処
理が可能である。非正規化数をラップ数変換すると指数
部は負になる(正規化数では指数部が負にならないよう
にバイアスするが、非正規化数はこのバイアスでは足り
ず、負になる)が、これは指数部加算を減算(負の加算
)とするだけで済む。なお指数部が負の正規化数をラッ
プ数という。
ラップ数変換回路11を通ったX、Yオペランドの指数
部ez、ey は指数部加算器12へ加えられ、仮数部
Mx、Myは3倍数発生器14.3次ブースのデコーダ
13.3次ブースのセレクタ15、乗算トリー16、お
よび部分積加算器17で構成される乗算部に加えられて
乗算され、積2−X−Yの仮数部および指数部M o 
*  e oが求められる。
3次ブースのセレクタ15へは、仮数部Mxと、3倍数
発生器14からの該Mxの3倍数と、2倍数および4倍
数(これらは15でシフトして入力することによって発
生する)とが入力され、これらが、3次ブースのデコー
ダ13の出力により選択されて乗算トリー16へ入力さ
れ、最終部分積が求められて、それらが加算器17で加
算され、仮数部Moとなる。指数部加算器12ではオベ
ラ゛ンドX、Yの指数部ez、eyの加算または減算が
行なわれ、その結果が指数部eoになる。
2次のブースのアルゴリズムを表1に、また3次のブー
スのアルゴリズムを表2に示す。ここで、Xを被乗数、
Yを乗数とする。またfuncはブースのセレクタで選
択されるべき数を示す、つまり、Xは被乗数そのもの、
2Xは被乗数の2倍数(1ビツト左ヘシフトした数)、
3Xは被乗数の3倍数である。
表1 Y−Σ(y2i ” )’21+1−y2i+2 )・
2表2 Y=Σ(yji +ys++t +23’si+2” 
3i+2 )・2この第3図の乗算回路の遅延時間は乗
算器本体の遅延に3倍数発生器とラップ数変換回路の遅
延を加えた遅延時間となる。前に述べたようにこの回路
ブロックのハード量は入力オペランド64ビツト長程度
の場合、2次のブースの乗算器よりも少なくなるが、全
体の遅延時間は大きくなる傾向にある。
〔発明が解決しようとする課題〕
本発明はこの点を改善し、多次のブースのアルゴリズム
を用いる場合の乗算器の遅延時間を短くすることを目的
とするものである。
〔課題を解決するための手段〕
第1図に示すように本発明では、ラップ数変換回路11
と3倍数発生器14を並列に置き、またセレクタ18を
設け、これにオペランドチエツクフラグFLGを入力す
る。他は第3図と同じで、12は指数部加算器、13は
3次ブースのデコーダ、15は3次ブースのセレクタ、
16は乗算トリー、17は部分積加算器である。
入力オペランドX、Yには、正規化数の他に非正規化数
も認める。浮動小数点のフォーマントにはIEEE標準
フォーマントを予定するが、これ以外のフォーマントで
もよい。IEEE標準フォーマント以外のフォーマント
のときは、その非正規化数を正規化数に変換する回路を
ラップ数変換回路11の代りに用いる。
〔作用〕
オペランドX、Yが共にIEEE非正規化数の場合、積
z=x −yはアンダフローになり、演算対象外である
。またオペランドX、Yが共に正規化数の場合は、ラッ
プ数変換は不要である。従ってラップ数変換回路が必要
なのはオペランドX、Yの一方がIEEE非正規化数、
他方がIEEE正規化数の場合だけである0本発明は該
一方の非正規化数(DNN)をラップ数変換回路11へ
加え、他方の正規化数(NN)を3倍数発生器14と3
次ブースのセレクタ15に加える。この振分けをセレク
タ18が行なう。後は第3図と同様であり、部分積加算
器17と指数部加算器12より、積2の仮数部Moと指
数部eoが得られる。
この回路では、オペランドXが正規化数でオペランドY
が非正規化数の場合は図示のようにX。
Yが割当てられるが、オペランドXが非正規化数でオペ
ランドYが正規化数の場合は図示とは反対にX、Yが割
当てられる。これは、前者ではX・Yの乗算が行なわれ
、後者ではY−Xの乗算が行なわれることになるが、X
 −Y=Y −Xであるから問題でない。
また−船釣に入力オペランドは入力時に正規化数、非正
規化数のチエツクをおこなわなければならないので、ど
ちらのオペランドが非正規化数かのフラグは得られ、こ
のフラグを前記フラグFLGとすることができる。
この回路では3倍数発生とラップ数変換が同時に行なわ
れるので、第3図ではこれらの処理の時間の和が所要遅
延時間であったものが、本発明ではランプ数変換回路ま
たは3倍数発生回路の各遅延時間のどちらか大きい方と
なる。
正規化数どうしの乗算の場合にはラップ数変換は必要な
く、変換回路11はスルー状態になる。
しかし、乗算器のサイクルタイムは最大の遅延時間で決
まるから、正規化数×非正規化数の場合のそれになる。
〔実施例〕
第2図に本発明の実施例を示す、最近の傾向として演算
のスルーブツトを向上させるために浮動小数点乗算器は
パイプライン構成とすることが多(、本発明もパイプラ
イン構成としたときにより大きな利点が得られる。
本実施例は第1パイプライン・ステージとして、ラップ
数変換回路11と3倍数発生器14、第2パイプライン
・ステージとして乗算トリー16、ブースのデコーダ1
3、セレクタ15等でパイプラインを切った場合である
。従来は2次のブース・アルゴリズムを使用するか、第
3図の構成の3次ブース構成でパイプライン化していた
わけであるが、本実施例と比較すると2次のブースの乗
算器に対しては第2ステージの遅延が小さ(、従来の3
次ブースの乗算器に対しては第1ステージの遅延が小さ
くなる。パイプライン処理は、クロックで各レジスタ間
をデータが転送して行なわれ、最も処理の遅いステージ
が律速する。第2図では演算部のステージ2が高速化さ
れるので、前処理部のステージ1が律速となり、これも
従来方式より高速化され、従って全体として一層の高速
化が可能である。
本実施例のステージ1の遅延時間は3倍数発生回路とラ
ップ数変換回路の遅延の内でどちらか大きい方となるが
オペランド長が64ビット程度の場合はこれらの回路の
遅延はほぼ同じ(らいになるため従来例と比較して約1
/2の値になると考えられる。また第2ステージの遅延
は3次ブース・デコーダ+3次ブース・セレクタ+3次
ブースの乗算トリーの遅延となり、−船釣に言って2次
のブースの乗算器と比較して約2/3の遅延時間となる
本発明は3次以上のブースのアルゴリズムを用いる浮動
小数点乗算器にも適用できる。たとえば4次15次のブ
ースのアルゴリズムを用いる場合には、倍数としてはそ
れぞれ0〜8倍10〜16倍の数が必要となる。この中
でシフト処理で発生できない数はそれぞれ、3倍、5倍
、7倍/3倍。
5倍、7倍、9倍、11倍、13倍、15倍の数であり
、これらは3倍数と同様にシフト処理+被乗算数(X)
の加算で得られる。そこでたとえば4次のブースを使用
する場合には、第1図の×3発生器14と並列に×5及
び×7発生器を接続しこの出力を15セレクタにて選択
することで実施することができる。なおこの場合の×5
.x7発生器の遅延時間は×3発生器の遅延とほぼ同じ
である。
〔発明の効果〕
以上説明したように本発明にれば、3倍数発生器と正規
化数に変換する回路とを並行動作させるので、多次のブ
ースのアルゴリズムを用いる乗算器の遅延時間を短くす
ることができる。
【図面の簡単な説明】
第1図は本発明の原理説明図、 第2図は本発明の実施例を示すブロック図、第3図は従
来例の説明図である。 第1図でX、Yは入力オペランド、18はセレクタ、1
1は非正規化数を正規化数に変換する回路、14は倍数
発生器である。

Claims (1)

  1. 【特許請求の範囲】 1、正規化数と非正規化数を入力オペランドとし、3次
    以上のブースのアルゴリズムを用いる浮動小数点乗算器
    において、 非正規化数を正規化数に変換する回路(11)と、3倍
    数を含む倍数発生器(14)を並設し、入力オペランド
    (X、Y)が正規化数であればそれを倍数発生器(14
    )側へ、また非正規化数であればそれを変換回路(11
    )へ入力するセレクタ(18)を設けたことを特徴とす
    る浮動小数点乗算器。
JP63132148A 1988-05-30 1988-05-30 浮動小数点乗算器 Pending JPH01300338A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63132148A JPH01300338A (ja) 1988-05-30 1988-05-30 浮動小数点乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63132148A JPH01300338A (ja) 1988-05-30 1988-05-30 浮動小数点乗算器

Publications (1)

Publication Number Publication Date
JPH01300338A true JPH01300338A (ja) 1989-12-04

Family

ID=15074480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63132148A Pending JPH01300338A (ja) 1988-05-30 1988-05-30 浮動小数点乗算器

Country Status (1)

Country Link
JP (1) JPH01300338A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474219A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 高速乗算器
JPH064271A (ja) * 1992-06-17 1994-01-14 Mitsubishi Electric Corp 乗算器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474219A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 高速乗算器
JPH064271A (ja) * 1992-06-17 1994-01-14 Mitsubishi Electric Corp 乗算器

Similar Documents

Publication Publication Date Title
Mohan et al. Residue number systems
US6099158A (en) Apparatus and methods for execution of computer instructions
US5184318A (en) Rectangular array signed digit multiplier
JPH02196328A (ja) 浮動小数点演算装置
Arnold et al. Redundant logarithmic arithmetic
GB2341702A (en) Floating-point multiply-accumulate unit
US5144576A (en) Signed digit multiplier
JPH04283831A (ja) 除算器
US5177703A (en) Division circuit using higher radices
US7921149B2 (en) Division and square root arithmetic unit
US20040010536A1 (en) Apparatus for multiplication of data in two's complement and unsigned magnitude formats
US4677583A (en) Apparatus for decimal multiplication
US4823300A (en) Performing binary multiplication using minimal path algorithm
JPH04355827A (ja) 開平演算装置
JP3306497B2 (ja) 浮動小数点乗算器における丸め回路
JP3660075B2 (ja) 除算装置
JPH01300338A (ja) 浮動小数点乗算器
JPH0519170B2 (ja)
US7003540B2 (en) Floating point multiplier for delimited operands
JPH04172526A (ja) 浮動小数点除算器
JPH0831024B2 (ja) 演算プロセッサ
Kumar et al. Simulation and synthesis of 32-bit multiplier using configurable devices
Gonzalez-Navarro et al. A study of decimal left shifters for binary numbers
JP2777265B2 (ja) 高基数開平演算装置
Fraser et al. An adaptive digital signal processor based on the residue number system