JP3233432B2 - 乗算器 - Google Patents

乗算器

Info

Publication number
JP3233432B2
JP3233432B2 JP06059592A JP6059592A JP3233432B2 JP 3233432 B2 JP3233432 B2 JP 3233432B2 JP 06059592 A JP06059592 A JP 06059592A JP 6059592 A JP6059592 A JP 6059592A JP 3233432 B2 JP3233432 B2 JP 3233432B2
Authority
JP
Japan
Prior art keywords
rounding
digit
carry
intermediate product
multiplier
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
Application number
JP06059592A
Other languages
English (en)
Other versions
JPH05265714A (ja
Inventor
秀仁 武和
弘道 山田
多加志 堀田
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 JP06059592A priority Critical patent/JP3233432B2/ja
Priority to US08/037,654 priority patent/US5408426A/en
Publication of JPH05265714A publication Critical patent/JPH05265714A/ja
Priority to US08/371,998 priority patent/US5623435A/en
Application granted granted Critical
Publication of JP3233432B2 publication Critical patent/JP3233432B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般に集積回路に関し、
特に、乗算器における部分積加算器の出力を加算し、丸
め、正規化する高速回路に関する。
【0002】
【従来の技術】従来の浮動小数点数の乗算方法を、図3
0のIEEE倍精度標準フォーマットを例に示す。浮動
小数点数は、図30(a)の様に符号、指数及び仮数か
らなる。IEEE倍精度標準フォーマットでは、語長6
4ビットのうち、符号部として1ビット、指数部として
11ビット、仮数部として52ビットが割り当てられ
る。各ビットは1または0の値で表され、数全体は2進
数として取り扱われる。仮数は1以上2未満の範囲にあ
り常に最上位桁は1であるので、仮数部の表記には最上
位桁の1を除いた小数点以下の部分だけが用いられる。
指数部の指数は、正の数として取り扱えるように実際の
指数の値にバイアス値が予め加算された値である。
【0003】被乗数、乗数は、図30(b)の様に符号
1a1、符号2b1、指数1a2、指数2b2、仮数1
a3、仮数2b3からなる。
【0004】浮動小数点数の乗算は仮数部と指数部の演
算に分かれる。仮数部の演算に関してまず述べる。図3
0(c)に示すように、表記されない1を付け加えたビ
ット長53の仮数2の各ビットに対応して、仮数1a
3、仮数2b3から部分積1c1〜部分積53c53が
生成される。全加算器をアレイ状に組み合わせた桁上げ
保存加算器である部分積加算器によって、これら部分積
1c1〜部分積53c53を加算し、中間積1d1及び
中間積2d2を得る。
【0005】次に、中間積1d1と中間積2d2を加算
することで、小数点の位置が最上位桁から1または2桁
目(乗数と被乗数の大きさで小数点の位置が決まる。た
だし、ハードウェアは106ビットで作られている。)
で、105ビットまたは106ビット長の積を得る。
【0006】次に、得られた積の小数点位置と整数部分
の値とビット長をIEEE倍精度標準フォーマットの仮
数のフォーマットに合わせる。まず、小数点以上が1桁
で、整数部が「1」になる様に小数点の位置をずらして
取り扱う(正規化)。正規化により、丸めの位置が決ま
るので、次に、丸め処理を行う。仮数は小数点以下52
ビットが必要なので、小数点以下52桁目を最下位桁と
し丸め処理を行う。丸め処理の加算により桁上げが生じ
小数点以上が2桁になった場合には再び正規化する。
【0007】次に、指数部の演算について述べる。ま
ず、指数部1と指数部2を加算する。指数部にはバイア
ス値が加算されているので、最初の指数部同志の加算結
果には2倍のバイアス値が含まれる。正しい指数を得る
ためには、加算結果から余分なバイアス値を引いて補正
する必要がある。仮数の小数点を1桁ずらして取り扱う
ために、指数の演算で指数に「1」を加算する。符号の
処理は、符号部1と符号部2が等しければ符号部を0、
符号部1と符号部2が等しくなければ符号部を1とす
る。
【0008】
【発明が解決しようとする課題】従来例では、長い桁上
げ伝播を要する中間積加算をまず行い、その結果、丸め
の位置が決まるので、その後丸め処理を行わざるをえな
い。従って、中間積加算と丸め処理を並列して実行する
ことができないため、高速な乗算は望めない。そこで、
この一連の処理を並列化して高速化し、高速乗算装置を
実現することを考える。なお、丸め処理として切り捨て
のみを行う乗算器の場合は、桁上げだけを考慮すれば良
いので、丸め処理としては、実質的には何もしない乗算
器でよい場合もある。本発明はこの様な回路にも適用で
きるものである。
【0009】本発明の一つの目的は、中間積加算の際の
加算と丸め処理とを並列に実行することで、高速な乗算
装置を提供することである。
【0010】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、乗数と被乗数の部分積を求め、得られた
部分積を加算して積を求める乗算器であって、上記部分
積から2つの中間積を求める部分積加算器と、2つの上
記中間積の予め定めた桁から上位桁について、下位桁か
らの桁上げの可能な値を複数仮定して、上記中間積を加
算し、仮定した値に対応して、複数の加算値を求める中
間積加算器と、上記中間積の加算と並行して、2つの上
記中間積から、上記中間積の予め定めた桁より下位桁か
らの桁上げ情報を生成する桁上げ先見回路と、上記桁上
げ先見回路の出力に基づいて、上記中間積加算器の加算
値を選択する選択回路とを有することとしたものであ
る。
【0011】
【作用】乗数と被乗数の部分積を求め、得られた部分積
を加算して積を求める乗算器において、部分積加算器
は、上記部分積から2つの中間積を求める。中間積加算
器は、2つの上記中間積の予め定めた桁から上位桁につ
いて、下位桁からの桁上げの可能な値を複数仮定して、
上記中間積を加算し、仮定した値に対応して、複数の加
算値を求める。桁上げ先見回路は、上記中間積の加算と
並行して、2つの上記中間積から、上記中間積の予め定
めた桁より下位桁からの桁上げ情報を生成する。選択回
路は、上記桁上げ先見回路の出力に基づいて、上記中間
積加算器の加算値を選択する。
【0012】
【実施例】図1に、本発明の実施例を示す。本実施例で
は、中間積加算と正規化と丸め処理を並列化するため
に、以下のような処理を行う。
【0013】中間積加算器には、106ビットの2数が
入力されるが、仮数部として使うのは、上位からある桁
までであることに着目して、中間積加算器では、中間積
のうち上位からある桁までを入力されて(信号140、
141)計算を行うこととする。その時に、計算に取り
込まなかった下位の桁から本来は、桁上がりがあるが、
この桁上がりの計算が終了するのを待っていると遅くな
るため、桁上がりは、1または0であることに注目し
て、信号140+信号141の計算と、信号140+信
号141+1の計算とを同時に計算し、桁上がりの情報
(桁上げ先見回路102が求める)が確定したときに、
上記の2つの値のいずれかを選択することとした。
【0014】ところで、最終的な計算結果の仮数部を5
2ビットにするために、丸めが通常行われる。このた
め、予め決められた丸め位置(丸め位置は、図30のe
(中間積1d1,2d2の和)が整数部として1桁であ
るか2桁であるかにより異なる)において、0または1
が加算されることになる。上記の桁上がりによる0また
は1とあわせると、0、1または2のいずれかが、信号
140+信号141の計算に加わることになる。そこ
で、本実施例では、信号140+信号141の計算(信
号119)と、信号140+信号141+1の計算(信
号118)と、信号140+信号141+2の計算(信
号117)とを同時に実行しておいて、さらに、桁上が
り(桁上げ先見回路102が求める)、丸め(丸め値計
算回路103が必要な情報を求める)を求めることも同
時に実行する。
【0015】そして、桁上がり、丸め、正規化による小
数点位置情報(中間積加算器105が求めた結果により
わかる)が確定したときにこれらにより、いずれかを選
択して(選択回路である条件決定回路104、セレクタ
106が行う)、並列化を実現している。
【0016】本実施例では、中間積加算器105は、中
間積1d1,2d2の下位から、55桁目から106桁
目について和を求める。
【0017】桁上げ先見回路102は、中間積1d1,
2d2の下位から、1桁目から51桁目に基づいて、5
2桁目の桁上げを計算する。
【0018】丸め値計算回路103は、中間積1d1,
2d2の下位から、52桁目から54桁目について、以
下の4パターンがありうるとして、4パターンについて
もとめる。まず、51桁目からの桁上げを1または0の
2通り考える。さらに、正規をするかどうかによる丸
め位置の移動があるかないかの2通りある。これらを組
合せて4パターンがある。
【0019】条件決定回路104は、4個の丸め値の候
補から、桁上げ先見回路102からの52桁目の桁上げ
情報と、中間積加算器105からの最上位桁に関する情
報(丸め位置情報)とより、1個を選択する。さらに、
決定された丸め値と、桁上げ先見回路102が出力する
54桁目から55桁目への桁上げとから、117,11
8,119のうちいずれを選択するかの信号127を作
り出力する。また、同時に、54桁目と53桁目の数字
も作成する。以下、詳細に説明する。
【0020】部分積加算器101は、被乗数と乗数の仮
数部である仮数1a3と仮数2b3を入力とし、仮数1
a3と仮数2b3から生成された部分積を桁上げ保存加
算し、中間積113と中間積114を出力する。中間積
113と中間積114は、最終の積を正規化し丸める回
路100に接続される。部分積加算器101の出力は、
各ビット位置において、「0」、「1」で表される。
【0021】IEEE倍精度標準フォーマットの乗算で
は、仮数部が53ビット(暗黙の1ビットを含む)であ
るため乗算器の部分積加算器101の出力である中間積
113及び中間積114は106ビットとなる。信号1
15及び信号116は中間積113及び中間積114の
最下位桁から54桁目迄で、信号140と信号141は
中間積113及び中間積114の下位より55桁目から
最上位桁迄である。信号115と信号116は桁上げ先
見回路102と丸め値計算回路103に接続される。
【0022】桁上げ先見回路102は、信号115と信
号116を入力とし信号115と信号116を加算した
場合の下位から51桁目からの桁上げ123と54桁目
からの桁上げ124を出力する。
【0023】丸め値計算回路103は、信号115と信
号116から丸めに必要なビット120と122を作
り、丸めの種類を示すモード信号146に基づき丸め値
121を計算する。桁上げ先見回路102の出力123
及び124と丸め値計算回路103の出力120、12
1及び122は、条件決定回路104に接続される。中
間積加算器105は、入力信号140と信号141の和
119、和119を「1」だけ増分した結果118及び
「2」だけ増分した結果117を出力する。中間積加算
器105の出力117、118及び119はセレクタ1
06のデータ線に接続される。
【0024】また、信号線118と119の最上位桁1
25及び126は、条件決定回路104に接続される。
【0025】条件決定回路104は、入力125、12
6より丸めの位置情報を得、これと桁上げ情報123か
ら丸め値を決定する。さらに、丸め値の加算による新し
い下位2ビット128を計算する。また、丸めによる桁
上げと下位からの桁上げ124から3出力中間積加算器
105の出力117、118、119を選択する信号1
27を出力する。127はセレクタ106の制御線に接
続される。また、128は、セレクタ106の出力12
9と信号線130を構成し、正規化器107に接続され
る。
【0026】また、セレクタ106の出力132は、正
規化器107と指数部のセレクタ110に接続される。
正規化器107は、正規化情報132に基づき、正規化
され暗黙の1ビットを捨てた状態の仮数部131を出力
する。以上が仮数部の演算動作である。
【0027】一方指数部の演算動作は、減算器108で
乗数の指数部134とバイアス133を減算し135を
出力する。加算器109で被乗数の指数部136と13
5の和137とその和を「1」だけ増分した138を出
力する。
【0028】出力137、138が正規化の結果得られ
る指数部で、セレクタ110で正規化情報132に基づ
き選択される。符号部は、2数の符号部142と143
を入力とする排他的論理和144の出力145で得られ
る。最終の積は145と139と131から得られる。
【0029】次に、乗算器を構成する各回路について説
明する。
【0030】中間積加算器105は、図2に示す構成を
とる。加算器200と201は初期桁上げ204と20
3をそれぞれ「0」と「1」に固定して、入力の和11
9と和119を「1」だけ増分した結果118を出力す
る。その加算と並列に加算器の入力信号140と信号1
41から、オール1予測器202を用いて加算結果11
8の下位からの「1」の連続の予測信号206をつく
る。
【0031】予測信号206の生成方法について説明す
る。図3に示されている様にn桁の2数の加算結果のオ
ール1の予測信号は、(n−1)桁までの予測信号とn桁
目だけの予測信号の論理積になる。オール1予測器20
2は、各桁の予測信号を組み合わせて使うことで、1桁
目までの予測信号から51桁目までの予測信号全てを作
り出す。
【0032】その方法について詳しく説明する。図4の
ように4桁を1つのブロックとして、各桁の予測論理4
00から403を用いて各予測信号404から407を
作る。論理ゲート408から410によりそれら予測信
号の論理積をとることで、ブロック内の1桁目から4桁
目までの予測信号404、411、412、413を作
る。このブロック内の1桁目から4桁目までの予測信号
を用いて、複数ブロックにわたる予測信号を次の様に作
る。
【0033】この図5に示すように、500から503
の4ブロックうち、下位にあるブロック(ブロック5
02に対しては、500、501)の4桁目までの予測
信号504、505、506と上位のブロックの1桁目
から4桁目までの予測信号との論理積をとり、ブロック
群500、501、502、503の内の最下位ブロッ
ク500の1桁目から考えた場合のオール1の予測信号
507を得る。
【0034】さらに、これらの信号と下位のブロック群
迄の予測信号508との論理積より、1桁目から考えた
予測信号509を得る。さらに上位のブロック群では、
当該ブロック群以下迄のオール1予測信号510とその
上位ブロック内での予測信号との論理積から、1桁目か
ら考えた予測信号を得る。
【0035】以上の方法により、1桁目までの予測信号
から51桁目までの予測信号206を得る。排他的論理
和205は、予測信号206と加算結果118の各桁の
排他的論理和117を出力する。予測信号206は、加
算結果118を「1」だけ増分したときに生じる各桁か
らの桁上がりの信号に相当する。そのため、118と2
06の排他的論理和117は、118を「1」だけ増分
したものになる。
【0036】桁上げ先見回路102は、図6に示すよう
に51ビットの桁上げ先見回路600と3ビットの桁上
げ先見回路601から成る。51ビットの桁上げ先見回
路600は、部分積加算器101の出力である中間積1
13と中間積114の最下位桁から51桁に相当する6
05と606を加算した場合の52桁目に繰り上がる桁
上げ信号123を作り出す。3ビット桁上げ先見回路6
01は、中間積113と中間積114の52桁目から5
4桁目に相当する603と604を入力とし、桁上げ伝
播関数608と桁上げ生成関数607をつくる。論理積
と論理和の複合ゲート602は、607、608、12
3を入力とし信号124を出力する。
【0037】信号608は52桁目に桁上がりがあった
ときの55桁目への桁上がり信号で、信号607は52
桁54桁間からの55桁目への桁上げ信号である。その
ため、信号124は中間積113と中間積114の1桁
目から54桁目に相当する信号115と信号116を加
算した場合に55桁目に繰り上がる桁上がり信号にな
る。
【0038】信号123は、丸め処理で作り出されたビ
ット情報の確定に使う。信号124は、中間積加算器1
05の出力の選択論理の生成に使う。
【0039】図7に示す丸め値計算回路103は、部分
積加算器101の出力の下位から54桁目から52桁目
までに相当する711と712を、51桁目以下からの
桁上げ信号123を仮定して加算する加算器700と7
01と、51桁目以下を加算した際のスティッキービッ
トを予測するスティッキービット予測器702と、丸め
回路703から706で構成される。
【0040】丸め回路703〜706は、丸めに必要な
桁と丸めの位置の両者を仮定した場合の個々についての
丸め処理を並列に行う。丸め回路703〜706は図8
に示す構成をとり、その機能表を図9に示す。丸め処理
に必要なビットは、最下位ビット、ガードビット、ステ
ィッキービット及び符号ビットである。
【0041】符号ビットを除いた各ビットは、図10に
示すように丸めの位置を基準にして決定される。丸めの
位置にあたるのがLSB(最下位ビット)で、その一桁下
位がガードビットになる。スティッキービットは、ガー
ドビットより下位の桁が全て「0」の時以外は値が
「1」となるビットをいう。スティッキービット予測器
702は、2数の加算結果のオール0の予測論理をもち
いて、最下位桁から51桁までのスティキービットを予
測する。
【0042】その構成を図11に示す。1桁分の予測論
理1101から1151までは、各桁の予測信号を出力
する。51入力論理積1152は、n桁の2数の加算結
果のオール0の予測論理に基づき、51桁分の各桁の予
測信号の論理積をとる。インバータ1153は1152
の出力を反転することで、スティッキービット709を
出力する。
【0043】通常、中間積加算器の結果が確定してから
丸めの位置が定まる。高速処理のため中間積加算器の結
果を待たずして丸め位置を仮定する。その場合の丸めに
必要なビットの求め方を述べる。
【0044】図30に示すように中間積加算器の出力の
小数点の位置は最上位桁から2桁目になる。丸め処理
で、小数点以下52桁目を丸めの位置とするが、小数点
以上は1桁であることが必要なので、最上位桁の値によ
り小数点と丸めの位置が移動する。最上位桁と丸めの位
置の関係は図10に示すようになる。最上位桁が「0」
の時丸めの位置が最下位桁から53桁目、最上位桁が
「1」の時丸めの位置が最下位桁から54桁目となる。
そして、各ビットの定義よりそれぞれの場合のガードビ
ットとスティッキービットの位置が定まる。図7に示す
加算器700、701によりそれぞれの場合の最下位ビ
ットとガードビット、スティッキービット予測器702
から最上位桁が「0」のときのスティッキービット70
9、信号709と出力120の最下位桁714との論理
和、信号709と出力122の最下位桁720との論理
和から、それぞれ、最上位桁が「1」のときのスティッ
キービット722、726を求める。
【0045】加算器700と701は下位からの桁上げ
710と727をそれぞれ「1」と「0」に固定し、下
位からの桁上げを仮定して2通りの加算結果120、1
22を出力する。さらに、120、122では異なる丸
めの位置を仮定して丸めに必要なビットを作る。上記の
方法で得られたビットは、正規化の有無(丸め位置の違
い)と下位からの桁上げの違い(丸めに必要なビットの
値の違い)による4グループである。
【0046】それらに各グループを入力とする丸め回路
703〜706のうち、703で正規化も桁上げもある
場合、704で正規化がなく桁上げがある場合、705
で正規化があり桁上げがない場合、706で正規化も桁
上げもない場合の丸め値を計算する。
【0047】条件決定回路104は、図12に示すよう
に桁上げ先見回路102の出力123を仮定して求め
た、丸め値1215(724)と1216(721)、
1217(725)と1218(723)、加算結果1
20と122を、確定した下位からの桁上げ123に従
い選択するセレクタ1201、1202、1203を有
する。
【0048】また、出力124を仮定して求めた中間積
加算器105の出力の最上位桁126と125を、確定
した桁上げ124に従い選択することにより丸めの位置
を示す信号1219を作り出すセレクタ1200を有す
る。
【0049】さらに、セレクタ1201〜1203の出
力から生成された丸め処理による55桁目への桁上げと
新しい54桁目と53ビット目の値をセレクタ1200
により確定した正規化の有無に従い選択するセレクタ1
204と1205を有する。
【0050】そして、確定した丸めによる桁上げ信号1
229と下位からの桁上げ信号124から中間積加算の
結果119、118、117を選択する信号127を生
成する。
【0051】各セレクタにより選択される信号および選
択されるビット数を図31、図32に示す。
【0052】正規化器の機能を図13に示す。正規化器
107は、選択された中間積加算器の出力129と条件
判定回路の出力128とを入力130とし、その小数点
以上の桁を1桁にする。さらに、小数点以上の1桁分
(暗黙の1ビットになる)を落し小数点以下だけを出力
131とする。最上位桁132(106ビット)が
「1」のとき132を捨てて残りを仮数部131として
出力する。最上位桁132(106ビット)が「0」の
とき、1桁下位のビットを捨てて、その残りを仮数部1
31として出力する。セレクタ110は、最上位桁13
2を用い正規化後の指数部を選択する。
【0053】以上の動作について、具体的な数値の1例
を図33に示して説明する。本図において、指数はあま
り意味が無いので仮数のみを示す。信号111,112
が図33のような場合、信号113〜120,122は
図33に示すようになる。信号121については、丸め
回路703〜706の出力線の束線であり、丸め回路
は、信号146、すなわち810〜813のモードに従
う。この場合、図9のROUND TO NEARES
T(四捨五入)を仮定する。この時に丸め回路703〜
706に入力されるL,G,S及びえられた信号72
1,722,723,724を図34に示す。こうして
得られた信号121,123,124,125,126
を図35に示す。
【0054】図12で信号123=0なのでセレクタ1
203により信号122が選ばれ、信号124=1なの
でセレクタ1200で信号125が選ばれる。信号12
3=0、信号125=1より、セレクタ1201、12
02、1204、1205により信号706が選ばれ
る。この結果、図36のようになる。信号127は、信
号1230、信号1231、信号1232の束線で、信
号128は、信号1233、1228の束線なので信号
127、128は、図37(a)のようになる。
【0055】図1において、信号127=010なので
セレクタ106では、信号118が選ばれる。図37
(b)のようになる。信号130には、信号128が下
位に付加されて、図37(c)のようになる。信号13
2は、信号130の最上位であり、信号132=1であ
る。信号132=1のときは、1ビット左にシフトする
ので、図37(d)のようになる。
【0056】図14は本発明の第2の実施例を示す。図
1に示す実施例と同じ部品には同じ記号を付けている。
本実施例では、図1に示す実施例に対して、桁位置調整
手段として、乗算器全体の入力と出力の桁合わせ器14
00、1401、1410、正規化器の制御論理140
9、中間積加算器105と指数部の2番目の加算器10
9の入力のセレクタ1405〜140を追加する。
【0057】また、丸め値計算回路103、桁上げ先見
回路102、条件決定回路104の一部を変更し、それ
ぞれ、1403、1402、1404とする。
【0058】これらの論理の追加及び変更により倍精度
の浮動小数点数の乗算に加え、単精度及び整数の乗算機
能が追加される。各追加及び変更論理について説明す
る。桁合わせ器1400と1401は異なるフォーマッ
トの数を倍精度と同様に取扱えるようにフォーマットを
変換する。単精度は倍精度と丸めの位置が同じになる様
に変換する。単精度、倍精度とも浮動小数点数は暗黙の
1ビットを付加するが、整数の場合には付加しない。
【0059】本実施例では整数乗算の場合、指数部の加
算器109を中間積加算器105と共に中間積加算の段
階で用いる。部分積加算器の出力である中間積113と
中間積114を分配し、セレクタ1405〜140
入力し実行する乗算の種類を示す信号1416で選択す
る。本実施例では、整数乗算のとき出力である中間積1
13と中間積114の上位12桁1411と1412の
加算を加算器109で実施する。図1の実施例では、加
算器109は正規化による指数への「1」の加算を仮定
している。同様に、上位12桁の加算は中間積加算器1
05からの桁上げ1425を仮定した加算であることか
ら、加算器109をそのまま共用する。
【0060】浮動小数点数の場合と整数の場合とでは、
中間積加算器の入力1419と1420の最下位の桁が
ずれているので桁上げ先見回路を図15のように変更す
る。
【0061】図15の桁上げ先見回路1402では、浮
動小数点数用に作られる信号123と124に加えて、
整数用に中間積113と中間積114の最下位から40
桁目の桁上げ先見信号1422を作る。丸め値計算回路
1403を図16に示す。
【0062】丸め値計算回路103は、異なる精度の浮
動小数点数で共用できる。整数乗算に対しては、丸め値
計算回路103を構成している丸め回路703から70
6の一部を変更する。変更した丸め回路1603から1
607とその機能表を図17図18に示す。図8でのイ
ンバータ802からNORゲート1702への変更によ
り、整数の乗算のときには丸め値を強制的に「0」とす
る。
【0063】条件判定回路を図19に示す。異なる精度
の浮動小数点数では最上位桁にあたる桁が中間積加算器
105の出力において異なる。そのため、条件判定回路
1404は、条件判定回路104に最上位桁選択回路1
900を追加し精度の違いに対応する。
【0064】また、整数と浮動小数点数では、下位から
の桁上げがそれぞれ信号1422と124と異なるた
め、セレクタ1934を設けて桁上げを選択し、桁上げ
信号1935を作る。この2点の追加により、整数と浮
動小数点数用の条件判定回路1404となる。
【0065】図19の最上桁選択回路1900の構成と
機能表を図20図21に示す。最上位桁選択回路の出
力1919は、各精度及び桁上げ1935に対応した最
上位桁である。浮動小数点数の処理では中間積加算器の
出力1424、1423を選択し、整数の処理では定数
を出力する。制御回路1409は、仮数部の正規化器を
制御する論理と、指数部の加算器109の出力を選択す
る論理から成る。浮動小数点数の精度別の処理は、最上
位桁を精度に対応して選択することで対応する。また、
整数の処理に対しては、仮数部は最上位桁を固定し常に
同じ正規化処理を行い、後段の桁合わせ器で補正処理を
することで対応する。指数部は中間積加算器からの桁上
げを選択信号に用いる。
【0066】図14の制御論理1409の構成を図22
に示す。セレクタ2200、2201、2202は、中
間積加算の3種類の仮定条件に対応している。各セレク
タは、精度に対応した最上位桁を選択する。中間積加算
器からの桁上げ1425は、中間積加算器への初期桁上
げの条件を仮定して求めた値である。セレクタ2203
は、中間積加算器105からの桁上げ1425を先見回
路1402で求めた桁上げ1422で選択する。
【0067】整数乗算を追加するために、この桁上げ信
号2204と各条件の最上位桁によって仮数部と指数部
の制御する。その機能表を図23に示す。仮数部の制御
信号1427は、浮動小数点数の処理のときは最上位桁
の値とし、整数処理のときは常に「1」に固定する。指
数部の制御信号1428は、浮動小数点数の処理のとき
は仮数部と同じ最上位桁の値とし、整数処理のときは桁
上げの値1425とする。
【0068】図14の桁合わせ器1410は、浮動小数
点数の処理に対しては、対応する精度のフォーマットに
出力1429を合わせる。
【0069】整数の処理では正規化器での処理を補正す
る。この補正処理について説明する。図14の正規化器
の出力131と指数部のセレクタの出力139は、出力
の桁合わせ器1410に入力される。仮数部131は、
暗黙の1ビットを捨てられる状態になって入力される。
浮動小数点の処理では、暗黙の1ビットを捨て各フォー
マットに合わせて出力される。整数の処理では、暗黙の
1ビットに相当するビットを活かすように補正され、各
フォーマットに合わせて出力される。
【0070】図24は、本発明の第3の実施例を示す。
検出手段であるチェッカー2401は、乗数と被乗数が
特殊数であるかないかをチェックする。特殊数である場
合には、特殊数の乗算結果に従い出力131、139を
マスクする本実施例において、特殊数生成器2402、
2403は、チェッカーからの出力2404、2405
をもとに、図25に示す特殊数の乗算結果のマトリック
スに従って出力2406、2407をマスクする。
【0071】本発明の第4の実施例として、丸め値計算
回路と条件判定回路の並列度を落した乗算装置を提供す
る。その構成を図26に示す。この構成は図1に示す実
施例を基にしているが、図14、図24の実施例にも適
用できる。
【0072】本実施例の丸め値計算回路2603を図2
7に示す。他の実施例に比べ加算器1個と丸め回路2個
を減らし、丸め位置だけを仮定して丸めに必要なビット
が確定してから丸めを行う。加算器2701は、桁上げ
先見回路102の出力123を初期桁上げとして、丸め
に必要なビット120を計算する。丸め回路2703と
2704は、この丸めに必要なビット120とステッキ
ービット予測器の出力2709を用いて、丸め位置を仮
定した丸め値121を出力する。
【0073】本実施例における条件判定回路2604を
図28に示す。仮定した2種類の丸め位置に対して、論
理ゲート2801〜2806によりそれぞれ丸めによる
中間積への桁上げと新しい最下位桁を求め、それらをセ
レクタ2807と2808で丸め位置の情報2809に
基づき確定させる。セレクタ2800は中間積加算器か
らの最上位桁125と126を下位からの桁上げ124
で選択し、丸め位置の情報2809を出力する。論理ゲ
ート2811〜2813は、丸めによる桁上げ2810
と下位からの桁上げ124から、中間積加算器105の
出力117〜119を選択するための信号127を生成
する。
【0074】図29に本発明による乗算器の乗算方法の
フローチャートを示す。本乗算方法では、中間積加算と
丸め処理と桁上げ予測が並列に実行される。中間積加算
は、将来必要な最終積のビット幅に対し適当な入力幅を
持つ加算器で行われる。その際、入力されない不必要な
下位からの桁上げと丸めによる桁上げを仮定して複数の
加算結果を求める。下位からの桁上げを仮定した加算結
果から2つの丸め位置を示す情報が得られる。
【0075】これと並列に丸め処理では、下位からの桁
上げと丸め位置を仮定して処理に必要なビットを求め
る。求めた各組のビットに対して、丸め値の計算と丸め
処理を実行する。次に、下位からの桁上げ予測の結果に
基づき丸め位置の情報から丸め位置を決定する。確定し
た桁上げと丸め位置から、丸め処理の結果を選ぶ。次
に、丸めによる桁上げと下位からの桁上げより中間積加
算器の結果を選択する。
【0076】本発明の一実施例によれば、乗算器に中間
積加算器と丸め処理器を並列に持っているため、丸めを
並列に実行できるため高速な浮動小数点乗算ができる。
【0077】本発明の他の実施例によれば、乗算器に入
力用桁合わせ器と出力用桁合わせ器と中間積加算に兼用
できる指数部加算器を持っているので、乗算器を異なる
精度の浮動小数点数の乗算と整数の乗算に使える。
【0078】本発明の更に他の実施例によれば、乗算器
に特殊数検出器と特殊数生成器を備えているので、乗算
器本体を変更せずに特殊数を含む乗算に使用できる。
【0079】
【発明の効果】本発明によれば、中間積加算の際の加算
と丸め処理とを並列に実行することで、高速な乗算装置
を提供できる。
【図面の簡単な説明】
【図1】本発明による乗算器の一実施例のブロック図。
【図2】本発明の乗算器を構成する中間積加算器。
【図3】中間積加算器の機能の説明図。
【図4】中間積加算器の機能の説明図。
【図5】中間積加算器の機能の説明図。
【図6】本発明の乗算器を構成する54ビットと51ビ
ットの桁上げ先見回路。
【図7】本発明の乗算器を構成する丸め値計算回路。
【図8】丸め値計算回路の機能の説明図。
【図9】丸め値計算回路の機能の説明図。
【図10】丸め値計算回路の機能の説明図。
【図11】丸め値計算回路の機能の説明図。
【図12】本発明の乗算器を構成する条件判定回路。
【図13】本発明の乗算器を構成する正規化器の機能の
説明図。
【図14】本発明によるの乗算器の他の実施例のブロッ
ク図。
【図15】本発明の整数乗算機能付き乗算器を構成する
54ビットと51ビットと40ビットの桁上げ先見回
路。
【図16】整数乗算機能付き乗算器を構成する丸め値計
算回路の説明図。
【図17】整数乗算機能付き乗算器を構成する丸め値計
算回路の説明図。
【図18】整数乗算機能付き乗算器を構成する丸め値計
算回路の説明図。
【図19】整数機能付き乗算器を構成する条件判定回路
の説明図。
【図20】整数機能付き乗算器を構成する条件判定回路
の説明図。
【図21】整数機能付き乗算器を構成する条件判定回路
の説明図。
【図22】整数機能付き乗算器の正規化器の機能の説明
図。
【図23】整数機能付き乗算器の正規化器の機能の説明
図。
【図24】本発明による乗算器の他の一実施例のブロッ
ク図。
【図25】本発明の特殊数処理機能付きの乗算器の説明
図。
【図26】本発明による乗算器の他の実施例のブロック
図。
【図27】並列度を下げた丸め値計算回路。
【図28】並列度を下げた条件判定回路。
【図29】本乗算器の乗算方法の説明図。
【図30】一般的な乗算方法の説明図。
【図31】本発明による信号の具体例の説明図。
【図32】本発明による信号の具体例の説明図。
【図33】本発明による信号の具体例の説明図。
【図34】本発明による信号の具体例の説明図。
【図35】本発明による信号の具体例の説明図。
【図36】本発明による信号の具体例の説明図。
【図37】本発明による信号の具体例の説明図。
【符号の説明】
100:正規化及び丸め回路 101:部分積加算器 102:桁上げ先見回路 103:丸め値計算回路 104:条件判定回路 105:中間積加算器 106:セレクタ 107:正規化器 108:指数部用加算器 109:指数部用減算器 110:セレクタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−40521(JP,A) 特開 平4−68435(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310 G06F 7/38 G06F 7/50

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】乗数と被乗数の部分積を求め、得られた部
    分積を加算して積を求める乗算器であって、 上記部分積から2つの中間積を求める部分積加算器と、 2つの上記中間積の予め定めた桁から上位桁について、
    下位桁からの桁上げおよび丸め値の可能な値を複数仮定
    して、上記中間積を加算し、仮定した値に対応して、複
    数の加算値を求める中間積加算器と、 上記中間積の加算と並行して、2つの上記中間積に基づ
    いて、丸め情報を計算する丸め値計算回路と、 上記中間積の加算と並行して、2つの上記中間積に基づ
    いて、上記中間積の予め定めた桁より下位桁から前記丸
    め値計算回路に入力された上記中間積の最下位桁への
    上げ情報を生成する桁上げ先見回路と、 上記丸め値計算回路及び上記桁上げ先見回路の出力に基
    づいて、上記中間積加算器の加算値を選択する選択回路
    とを有し、 上記丸め値計算回路は、 正規化による丸め位置の移動の有無及び下位からの桁上
    げの有無をそれぞれ仮定して、仮定したそれぞれの場合
    に対応して、4通りの丸め情報を計算し、 上記選択回路は、 確定した丸め位置の移動の有無及び桁上げの有無に従っ
    て、上記4通りの丸め情報からひとつを選択し、当該選
    択された丸め情報及び上記桁上げ情報に基づいて、中間
    積加算器の加算値を選択することを特徴とする乗算器。
  2. 【請求項2】乗数と被乗数の部分積を求め、得られた部
    分積を加算して積を求める乗算方法であって、 上記部分積から2つの中間積を求めること、 2つの上記中間積の予め定めた桁から上位桁について、
    下位桁からの桁上げおよび丸め値の可能な値を複数仮定
    して、上記中間積を加算し、仮定した値に対応して、複
    数の加算値を求めること、 上記中間積の加算と並行して、正規化による丸め位置の
    移動の有無及び下位からの桁上げの有無をそれぞれ仮定
    して、仮定したそれぞれの場合に対応して、2つの上記
    中間積に基づいて、4通りの丸め情報を計算すること、 上記中間積の加算と並行して、2つの上記中間積に基づ
    いて、上記中間積の予め定めた桁より下位桁前記丸め値
    計算回路に入力された上記中間積の最下位桁への桁上げ
    情報を生成すること、 確定した丸め位置の移動の有無及び桁上げの有無に従っ
    て、上記4通りの丸め情報からひとつを選択すること、 当該選択された丸め情報及び上記桁上げ情報に基づい
    て、上記複数の加算値からひとつを選択することよりな
    ることを特徴とする乗算方法。
  3. 【請求項3】請求項1記載の乗算器において、 浮動小数点数の種別情報を受付けて、丸めの位置が同じ
    になるように、異なる種別の浮動小数点数の桁位置の処
    理を種別ごとに行う桁位置調整手段を有することを特徴
    とする乗算器。
  4. 【請求項4】請求項1または3記載の乗算器において、 浮動小数点数の乗算を行う場合に指数部の加算を行う指
    数部加算器を更に備え、 整数の乗算を行う場合には、 上記部分積加算器は、整数の中間積を求め、 上記指数部加算器は、上記整数の中間積の上位の加算を
    行い、 上記中間積加算器は、上記整数の中間積の下位の加算を
    行うことを特徴とする乗算器。
JP06059592A 1992-03-17 1992-03-17 乗算器 Expired - Fee Related JP3233432B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP06059592A JP3233432B2 (ja) 1992-03-17 1992-03-17 乗算器
US08/037,654 US5408426A (en) 1992-03-17 1993-03-17 Arithmetic unit capable of performing concurrent operations for high speed operation
US08/371,998 US5623435A (en) 1992-03-17 1995-01-12 Arithmetic unit capable of performing concurrent operations for high speed operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06059592A JP3233432B2 (ja) 1992-03-17 1992-03-17 乗算器

Publications (2)

Publication Number Publication Date
JPH05265714A JPH05265714A (ja) 1993-10-15
JP3233432B2 true JP3233432B2 (ja) 2001-11-26

Family

ID=13146751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06059592A Expired - Fee Related JP3233432B2 (ja) 1992-03-17 1992-03-17 乗算器

Country Status (1)

Country Link
JP (1) JP3233432B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09269891A (ja) * 1996-04-01 1997-10-14 Hitachi Ltd 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置

Also Published As

Publication number Publication date
JPH05265714A (ja) 1993-10-15

Similar Documents

Publication Publication Date Title
JP3541066B2 (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
US5027308A (en) Circuit for adding/subtracting two floating point operands
EP0424086B1 (en) Arithmetic processing apparatus and method used thereby
EP0472139B1 (en) A floating-point processor
EP0351242B1 (en) Floating point arithmetic units
US5010508A (en) Prenormalization for a floating-point adder
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0544046B2 (ja)
US20080215660A1 (en) Three-Term Input Floating-Point Adder-Subtractor
JPH02232723A (ja) ディジタルコンピュータ用パイプライン式浮動小数点加減算器
CN116643718B (zh) 一种流水线结构的浮点融合乘加装置、方法及处理器
US5784307A (en) Division algorithm for floating point or integer numbers
JPH04283831A (ja) 除算器
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
Takagi et al. A hardware algorithm for integer division
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
US5818745A (en) Computer for performing non-restoring division
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US4979141A (en) Technique for providing a sign/magnitude subtraction operation in a floating point computation unit
JP3233432B2 (ja) 乗算器
US20030115236A1 (en) Elimination of rounding step in the short path of a floating point adder
US6317772B1 (en) Split remainder divider
US5432727A (en) Apparatus for computing a sticky bit for a floating point arithmetic unit

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees