JPH0527948A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPH0527948A
JPH0527948A JP3202452A JP20245291A JPH0527948A JP H0527948 A JPH0527948 A JP H0527948A JP 3202452 A JP3202452 A JP 3202452A JP 20245291 A JP20245291 A JP 20245291A JP H0527948 A JPH0527948 A JP H0527948A
Authority
JP
Japan
Prior art keywords
adder
carry
bit
data
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
Application number
JP3202452A
Other languages
English (en)
Inventor
Hiromi Yagi
博美 八木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP3202452A priority Critical patent/JPH0527948A/ja
Publication of JPH0527948A publication Critical patent/JPH0527948A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 この発明は、セルサイズを大幅に広げること
なく、より高速な演算装置を提供することを目的とす
る。 【構成】 この発明は、演算装置の乗算部で生成された
部分積を加算するとき、乗算アレイからの出力を受けて
最終の部分積の加算を行なう加算回路において、生成さ
れた部分積のうちLSPと、MSPの加算を並列に行な
う。MSPの加算回路は複数のアダーセクションに分割
され、各アダーセクションで最下位の符号ビットの1つ
下の桁に予めLSPからのキャリーの有無と丸めによる
桁上げの有無に応じて、”0”、”1”、”2”を加算
する3通りの加算を同時に行なう。LSPからのキャリ
ーと丸めによる桁上げの有無が決まった時点で3通りの
MSPの加算結果のうち1つを選択する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、演算装置に係り、特に
浮動小数点乗算装置に好適な演算装置に関する。
【0002】
【従来の技術】IEEE規格に準拠した浮動小数点乗算
方法について、32ビットからなるデータ
【0003】 を例にとり以下に説明する。
【0004】符号はSAとSBの排他的論理和(EX−
OR)から結果が得られ、指数はeA+eB−127か
ら結果が得られる。
【0005】尚、eA,eBは8ビットからなる。
【0006】仮数はオペランドA、Bの23ビットから
なる仮数部fA,fBに隠れビット(Hidden B
it、以下HBと記す)を1ビット加えて(1.fA)
×(1.fB)の乗算が得られる。この場合、仮数部は
24ビットの乗算となるから乗算結果は図9に示すよう
に48ビットとなる。乗算結果48ビットの最上位ビッ
ト、いわゆるオーバーフロービット(以下Vと記す)に
1が立っていなければ仮数部を正規化するために乗算結
果を下位側へ1ビットシフトし指数に1を加算する。
【0007】尚、Vのデータが0であればシフトしな
い。
【0008】次に、乗算結果48ビットの下位の所定ビ
ットと丸めの種類と符号結果とから、丸めによる桁上げ
は発生するかどうかを判断する。その結果丸めによる桁
上げが発生すれば乗算結果48ビットの所定の位置に1
を加算する。発生しなければ加算する必要はない。これ
らの操作の後、仮数部の乗算としてHBより1ビット下
位のビットから23ビットを出力する。この乗算フロー
を図11に示す。
【0009】しかし、上記のように丸めにより桁上げの
有無が決まってから仮数部の所定の位置に1を加算した
結果と、加算していない結果との両方を用意しておき、
丸めの桁上げの有無によっていずれかを選択すれば乗算
時間が短くなることが知られている。このことを以下に
詳しく説明する。
【0010】Vと丸めによる桁上げの有無の関係は次の
6通りが考えられる。
【0011】丸め前の乗算結果のVデータが1で丸め
による桁上げが有るとき、乗算結果の上位24ビットを
右へ1ビットシフト後に前記24ビットのLSBに1加
算を行なうと、Vのデータが再び1となる場合。
【0012】丸め前の乗算結果のVのデータが1で丸
めによる桁上げが有るとき、乗算結果の上位24ビット
を右へ1ビットシフト後に前記24ビットのLSBに1
加算を行なってもVのデータが1とならない場合。
【0013】丸め前の乗算結果のVのデータが0で丸
めによる桁上げが有るとき、Vから数えて25ビット目
に1の加算を行なうとVのデータが1となる場合。
【0014】丸めの乗算結果のVのデータが0で丸め
による桁上げが有るとき、Vから数えて25ビット目に
1の加算を行なってもVのデータが0である場合。
【0015】丸め前の乗算結果のVのデータが1で丸
めによる桁上げが無い場合。
【0016】丸め前の乗算結果のVのデータが0で丸
めによる桁上げが無い場合。
【0017】これら6通りのうちの場合は実際にはあ
りえないことであるから除外する。
【0018】の場合は、丸め前の乗算結果のVから数
えて24ビット目(以後、2LSBと記す。)に1を加
算し、Vから数えて2ビット目、即ちHBから2LSB
までを丸め後の乗算結果として出力する。
【0019】の場合は、丸め前の乗算結果がHBから
LSBまでの24ビットの全てが”1”のとき生じる。
LSBはVから数えて25ビット目である。この場合、
丸めによる桁上げの1加算によってHBからLSBまで
の24ビット全てのデータが”0”となるから、2LS
Bに加算し、HBから2LSBまでの23ビットを丸め
後の乗算結果としてもよい。
【0020】の場合は、丸め前の乗算結果のLSBの
データが1のとき、2LSBに1加算し、丸め後の乗算
結果としてHBより1ビット下位のビットから2LSB
までの22ビットにLSBのデータの0を追加して出力
すればよい。またlSBのデータが0のとき、丸め後の
乗算結果として、1加算しないでHBより1ビット下位
のビットから2LSBまでの22ビットにLSBのデー
タの1を追加して出力すればよい。
【0021】の場合は、HBから2LSBの23ビッ
トを乗算結果として出力する。
【0022】の場合は、HBの1ビット下位のビット
からLSBまでの23ビットを乗算結果として出力す
る。
【0023】尚、の場合は指数に1加算を行な
う。
【0024】以上の〜の各場合から判るように、丸
めの桁上げ処理を行なうとき、1加算する位置は2LS
Bでよいことがわかる。
【0025】このような演算を行なう浮動種数点乗算装
置の構成を図14に示す。
【0026】仮数部のデータであり23ビットからなる
fA及びfBが供給され乗算演算を行なう乗算アレイ1
の出力側が、加算器2、加算器3及び加算器4に接続さ
れる。加算器2及び加算器3は、乗算アレイ1より送出
される部分積データを加算し加算器3は上位24ビット
の乗算器を、加算器2は下位24ビットの乗算結果を送
出する最終段の加算器であり、加算器4も加算器2及び
3と同様の加算器であり2LSBに1を加算した上位2
4ビットの乗算結果を送出する加算器である。又、加算
器2より発生するキャリー信号の出力端子が加算器3及
び4に接続される。このように加算器3及び4は、供給
される信号が乗算アレイ1の出力信号で同じであり、
又、下位から送出されるキャリー信号も同じであり、同
じ加算器が2つ配置されている構成をなす。
【0027】加算器2の出力側は、演算値の丸めによる
桁上げを検出する検出回路5に接続され、又、加算器2
のLSBデータ出力端子は仮数部選択信号生成回路6に
接続される。加算器3及び加算器4のオーバーフロービ
ット出力端子は仮数部選択信号生成回路6及び指数部選
択信号生成回路7に接続され、加算器3の桁上げ信号出
力端子は、さらに丸めによる桁上げ検出回路5に接続さ
れている。
【0028】丸めによる桁上げ検出回路5は、加算器2
より24ビットからなる出力データが供給され、加算器
3より桁上げ信号及び2LSBデータが供給され、さら
にまるめの種類を示す信号及びデータSA,SBに基づ
く符号結果が供給されることで、丸めによる桁上げの有
無を示す信号R0、R1を送出する回路である。
【0029】尚、信号R0はVデータが0の場合、信号
R1はVデータが1のときのそれぞれ丸めによる桁上げ
の有無を示す信号である。
【0030】加算器3の出力側は、演算結果のデータを
右へ1ビット分シフトする右1シフタ8を介してマルチ
プレクサ10に接続されるとともに、付加回路15を介
してマルチプレクサ10に接続される。尚、付加回路1
5に供給される加算器3の出力データは、VとHBとが
除かれた22ビットである。また、OR回路14の入力
側には加算器2のLSB出力端子と丸めによる桁上げ検
出回路5の信号R0の出力端子が接続される。又、付加
回路15は、供給される22ビットからなるデータの最
下位ビットより1ビット下位にOR回路14が送出する
ビットデータを付加する回路である。
【0031】加算器4の出力側も加算器3と同様に演算
結果のデータを右へ1ビット分シフトする右1シフタ9
を介してマルチプレクサ10に接続されるとともに、付
加回路16を介してマルチプレクサ10に接続される。
【0032】尚、付加回路16に供給される加算器4の
出力データは、VとHBとが除かれた22ビットであ
る。又、付加回路16には、0の信号が供給され、加算
器4により供給される22ビットからなるデータの最下
位ビットよりビット下位に0のデータを付加する回路で
ある。
【0033】マルチプレクサ10には、図14に示すよ
うに、AないしDのデータが供給され、マルチプレクサ
10は仮数部選択信号生成回路6より送出される信号に
よってこれらのAないしDのデータを選択する回路であ
る。
【0034】尚、データAは、加算器3の出力データで
あるHBから2LSBまで23ビットが右1シフタ8に
よって右へ(下位側へ)1ビットシフトしたデータであ
る。
【0035】データBは、上述したように、加算器3の
出力データのVとHBを除いた22ビットのデータに、
最下位ビットより1ビット下位にOR回路14が送出す
る1ビットのビットデータを加算して23ビットとした
データである。
【0036】尚、追加する1ビットのデータは、加算器
2より出力される最上位ビット(第10図ではLSBと
記述)と丸め桁上げ検出回路の出力信号であるR0信号
とOR論理から生成される。
【0037】データCは、加算器4の出力データである
HBから2LSBまでの23ビットが右1シフタ9によ
って右へ1ビットシフトされたデータである。
【0038】データDは、上述したように、加算器4の
出力データのVとHBを除いた22ビットのデータに最
下位ビットより1ビット下位に”0”を付加して23ビ
ットとしたデータである。
【0039】上述した〜の各々場合が上記データA
ないしDのいずれに対応するかは以下に示す通りであ
る。即ち、の場合がデータCに対応し、の場合がデ
ータCに対応し、の場合でLSBが1のときは、デー
タDに対応し、の場合でLSBが0ときには、データ
Bに対応し、の場合がデータAに対応し、の場合が
データBにそれぞれ対応する。
【0040】仮数部選択信号生成回路6は、加算器2よ
り供給されるLSBのデータと、加算器3より供給され
るVデータと、加算器4より供給されるVデータと、丸
め桁上げ検出回路4が送出する信号R0、R1とから上
記の〜のいずれの場合かを判断し、その結果をマル
チプレクサ10に送出する。
【0041】マルチプレクサ10は、仮数部選択信号生
成回路6より供給される信号にて供給されているAない
しDのデータのいずれかを選択し、その結果を仮数部結
果として出力する。
【0042】一方、指数回路11では、eA+eB−1
27の演算が行なわれ、指数回路11の出力側は、イン
クリメンタ12を介してマルチプレクサ13に接続され
るとともに、マルチプレクサ13へ直接接続される。
【0043】インクリメンタ12は、指数回路11より
供給されるデータに1を加算し、その結果データをマル
チプレクサ13へ送出する回路である。
【0044】マルチプレクサ13は、インクリメンタ1
2より供給されるデータと指数回路11より供給される
データとのいずれかを、指数部選択信号生成回路7が送
出する信号に従い選択する回路である。
【0045】指数部選択信号生成回路7の入力側には、
加算器3及び4のVデータ出力端子が接続され、丸め桁
上げ検出回路5が送出するR0信号出力端子が接続さ
れ、指数部選択信号生成回路7はこれらの供給されるデ
ータに基づいてマルチプレクサ13に供給されているい
づれのデータを選択するかを指示する信号を送出する回
路である。
【0046】
【発明が解決しようとする課題】上述したように、予
め、マルチプレクサ10へAないしDの4通りの結果デ
ータを送出し、丸めによる桁上げの有無が決まるとその
信号を基にマルチプレクサ10にてそれらのうちより真
の結果を選択することで乗算時間の短縮を図っている。
【0047】しかし、丸めによる桁上げの有無を決定す
るには、仮数部の乗算結果のLSBと上述した正規化す
るしかないかを決めるオーバーフロービットは必要であ
る。特にオーバーフロービットの算出には時間がかか
り、丸めにより桁上げの有無を決定するために、全ビッ
トの仮数部の乗算結果が計算されるのを待たねばなら
ず、乗算時間が長くかかるという問題があった。第14
図で示した回路においては、オーバーフロービットが算
出されるまで、乗算アレイでの部分積の生成及び加算時
間に48ビットの加算時間を加算した時間を必要とす
る。
【0048】本発明はのような問題点を解決するために
なされたものにして、セルサイズを大幅に広げることな
く、より高速な演算装置を提供することをその課題とす
る。
【0049】
【課題を解決するための手段】この発明は、演算装置の
乗算部で生成された部分積を加算するとき、乗算アレイ
からの出力を受けて最終の部分積の加算を行なう加算回
路において、生成された部分積のうち最下位ビットの1
つの下の桁未満(以下、LSPという。)と、1つ下の
桁以上(以下、MSPという。)の加算を並列に行なう
演算装置であって、MSPの加算を複数のアダーセクシ
ョンに分割し、各アダーセクションでMSPについては
最下位の符号ビットの1つ下の桁に予めLSPからのキ
ャリーの有無と丸めによる桁上げの有無に応じて、”
0”、”1”、”2”を加算する3通りの加算を同時に
行なうと共に、LSPからのキャリーと丸めによる桁上
げの有無が決まった時点で3通りのMSPの加算結果の
うち1つを選択することを特徴とする。
【0050】更に、この発明の演算装置は、最下位のア
ダーセクションは最下の符号ビットの1つ下の桁と、最
下位の符号ビットとの2ビットの加算を行なうととも
に、最下位の符号ビットの1つ下の桁に”0”加算、”
1”加算の夫々を行なう手段と、最下位の符号ビット
に”1”加算する手段を備え、3通りのMSPの加算に
応じた3つの加算結果を出力することを特徴とする。
【0051】また、この発明の演算装置は、前記アダー
セクションにおいて、最下位を除くアダーセクションは
そのアダーセクションの最下位桁に何も加算しない第1
の加算手段と、1加算する第2の加算手段と、第1、第
2の加算手段の出力を受け、1つ下位のアダーセクショ
ンからの第1、第2、第3のキャリー入力によりいずれ
か一方を出力する第1、第2、第3のデータ・セレクタ
を設け、且つ第1、第2の加算手段のキャリー出力と、
前記第1のキャリー出力とからそのアダーセクションの
第1のキャリーを生成する第1のキャリー生成回路と、
前記第1、第2の加算手段のキャリー出力と前記第1の
キャリー入力から第2、第3のキャリーを生成する第
2、第3のキャリー生成回路を設けたことを特徴とす
る。
【0052】この発明の演算装置は、最下位のアダーセ
クションの第1、第2、第3のキャリーは、1つ上位の
アダーセクションの各々第1、第2、第3のキャリー生
成回路へ伝設され、1つ上位のアダーセクションの第
1、第2、第3のキャリーを生成し、出力することを特
徴とする。
【0053】この発明の第2の発明にかかる演算装置
は、3つの入力データA、B(について、加数Cが乗数
Bと同じビット数かまたはそれ以下のビット数でA×B
+Cを実行する演算装置において、AとBの乗算結果に
Cを加算するときA×Bの乗算アレイ内の1段目と2段
目の部分積にCを加算する手段を備えたことを特徴とす
る。
【0054】
【作用】本発明は、仮数の乗算部の最終加算回路を上位
と下位とで2つに分割し、夫々並列に計算するので乗算
時間が短縮できる。
【0055】更に、最終段の加算回路の上位側は予め下
位側からキャリーの有無と丸めによる桁上げの有無を考
慮して上位桁の最下位桁に”0”、”1”、”2”を加
算した3つの結果を算出するので、下位桁側からのキャ
リーと丸めによる桁上げの有無によって、更に上位桁の
計算をやり直す必要はなく全体の乗算時間が短縮され
る。
【0056】また第2の発明は、A×Bの乗算装置の所
定のハーフアダーをフルアダーに置き換え、且つ所定の
位置にハーフアダーを追加するだけで、演算速度を損な
うことなく、A×B+Cを実行する演算装置が実現でき
る。
【0057】
【実施例】以下、本発明の実施例を浮動小数点乗算装置
に適用した場合につき図1ないし図10に従い説明す
る。尚、図1において図14と同じ構成部分については
同じ符号を付し説明を省略する。
【0058】本発明の演算装置は、生成された部分積を
加算するとき、乗算アレイ1からの出力を受けて最終の
部分積の加算を行なう加算回路に特徴を有する。即ち、
図1に示すように、生成された部分積の内最下位の符号
ビットの1つ下の桁未満(以下、LSPと記す)と1つ
下の桁以上(以下、MSPと記す)とに分割し、各分割
したデータを夫々計算する加算回路を設けたものであ
る。
【0059】従って、乗算アレイ1の出力側、MSPの
加算処理を行なう加算回路20及びLSPの加算処理を
行なう加算器22に接続され、加算器22のキャリー信
号出力端子は、マルチプレクサ21に接続される。ま
た、加算器20の出力側は、マルチプレクサ21に接続
される。このマルチプレクサ21の出力側に右1シフタ
8、9を介してマルチプレクサ10に接続されると共
に、OR回路14を介して又は0ビットを付加してマル
チプレクサ10に接続される。
【0060】加算器20は、乗算アレイ1より供給され
るMSPデータを加算する回路であり、図14に示す従
来例にて、2つの加算器を図2、図4及び図5で示すよ
うな加算回路に構成したものである。
【0061】その他の構成部は図14に示す構成部分と
同一である。
【0062】さて、上述したMSP加算回路20は、L
SP加算回路22からのキャリーの有無と丸めによる桁
上げの有無を予め考慮して、最下位の符号ビットの1つ
下の桁に”+0”、”+1”、”+2”した結果の3通
りを計算する。図9において、MSPの加算回路を夫
々”+0”、”+1”、”+2”に対応するように、3
つの加算回路で構成されている。この丸めによる桁上げ
を最下位の符号ビットの1つ下の桁に加算することで行
なう方法は上述した従来技術において2LSBに1加算
する方法と同じ方法である。
【0063】尚、本実施例においては最下位の符号ビッ
トの1つ下の桁を「Q」と記す。
【0064】ここで、LSP加算回路22からのキャリ
ー出力と丸めによる桁上げにおいて、Qに加算する条件
は次の通りである。
【0065】LSP加算回路22からのキャリーが無
く且つ丸めによる桁上げが無い場合は、Q+0。
【0066】LSP加算回路22からのキャリーが有
り且つ丸めによる桁上げが無い場合は、Q+1。
【0067】LSP加算回路22からのキャリーが有
り且つ丸めによる桁上げが有る場合は、Q+2。
【0068】このように、LSP加算回路22からのキ
ャリーと丸めによる桁上げの有無を予め考慮すると、Q
+0、Q+1、Q+2の3通りで良いことが分かる。
【0069】そこで、まず、LSP加算回路22からの
キャリーが決まれば上述の3つの結果のうち2通りを以
下のように決定し選択する。
【0070】LSP加算回路22からキャリーが無い
場合Q+0,Q+1。
【0071】LSP加算回路22からキャリーが有る
場合Q+1,Q+2。
【0072】選択された2つは上述した従来例の2LS
B+0と2LSB+1に相当し、丸め操作とそれ以降の
動作は図14の従来例と同じ動作を行なう。
【0073】このように本実施例の乗算装置は、上述し
た加算回路20、22及びマルチプレクサ21を除き従
来例と同様の動作を行なう。即ち、仮数部データである
FA、FB、が乗算アレイ1で乗算されその結果が加算
器20及び22へ送出される。
【0074】丸めによる桁上げ検出回路5には、マルチ
プレクサ21が送出する24ビットのデータ、丸め種類
の信号、及び符号結果が供給され、桁上げ検出回路5
は、丸めによる桁上げの有無の信号R0、R1を送出す
る。
【0075】尚、信号R0、R1については上述したも
のと同一である。
【0076】仮数部選択信号生成回路6には、上述した
桁上げ検出回路5が送出する信号R0、R1、マルチプ
レクサ21が送出するVのデータ及び加算器2が送出す
るLSBのデータが供給され、仮数部選択信号生成回路
6は、マルチプレクサ10に供給されるAないしDの信
号のいずれかを選択するか決定する選択信号を供給され
る信号に基づいて生成し、生成した信号をマルチプレク
サ10へ送出する。
【0077】尚、マルチプレクサ10に送出されるAな
いしDのデータは以下に示す通りである。
【0078】Aのデータは、加算器20の出力データの
HBから2LSBまでの23ビットが右1シフタ8にて
右へ(下位側へ)1ビットシフトされたデータであり、
Bのデータは、加算器20の出力データのVとHBのデ
ータを除いた22ビットのデータに最下位ビットより1
ビット下位に1ビットのデータを追加して23ビットと
したデータである。尚、追加する1ビットのデータは加
算器22より出力される最下位ビット(図1ではLSB
と記述)と、丸め桁上げ検出回路5が送出するR0信号
とのOR論理から生成される。Cのデータは加算回路2
0の出力データのHBないし2LSBの23ビットが右
1シフタ9にて1ビットシフトされたデータである。D
のデータは加算回路20の出力データのVとHBのデー
タを除いた22ビットのデータに最下位ビットより1ビ
ット下位に”0”を付加して23ビットとしたデータで
ある。
【0079】マルチプレクサ10は、仮数部選択信号生
成回路6より供給された選択信号により上記AないしD
のデータの内からいずれか1つを選択し、仮数部結果と
して送出する。
【0080】本発明は上述したように、2通りの結果が
出力されるまでのMSPを加算回路20にてQ+0、Q
+1、Q+2の3通りを計算するのであるが、図9に示
すように3つの加算回路をそのまま用いていたのでは、
回路規模が大きくなり、計算時間も従来例と変わりはな
い。そこで、本発明においては、MSP加算回路20を
複数のアダーセクションに分割し、最下位のアダーセク
ションをQ+0、Q+1、Q+2のため4つのフルアダ
ーと1つのハーフアダーで構成した。最下位を除くアダ
ーセクションは2つの加算回路と3つのデータ・セレク
タと3つのキャリー生成回路を設けたことで、加算時間
の高速化と面積の縮小化を図っている。ここでQは生成
部分積のうち最下位の符号ビットの1つ下の桁を示す。
【0081】次にMSP加算回路20の構成について更
に説明する。本実施例においては32ビットの浮動小数
点の乗算について説明している。32ビットの場合、符
号が1ビット、指数部が8ビット、仮数部が23ビット
である。上述したように、仮数部を乗算する場合、仮数
部23ビットの最上位ビットの1つ上のビットに”1”
を拡張して計算する(Hidden Bit)。
【0082】図6に示すように、2次のブースと+1ア
ルゴリズムを用いた乗算を行なうと、部分積は13個生
成され、1個が26ビットとなる。
【0083】そして、+アルゴリズムによる1加算は、
図6の13段目の部分積の下に示している。
【0084】ところで、並列乗算器の乗算アレイ部の最
終加算の各桁は3入力になる。そこで、図7で示すよう
に、この3入力をフルアダーでまとめて2出力にし、各
竹の2出力を最終段の加算回路で加算し、積を求める。
しかし、図6で示すように、+1アルゴリズムを用いる
場合、更に所定の桁に1を加算する必要が有る。
【0085】+1アルゴリズムによる1加算は、図7に
示すように、乗算アレイ内にもう一段フルアダー(斜線
を施したフルアダー)を設け、そのフルアダーの一端子
をVCCと接続することで行なえば、スピードを落とす
ことなく加算できる。フルアダーの一端子がGNDと接
続しているのは+1アルゴリズムによる1加算は行われ
なくてよい桁である。
【0086】ところで、図7の部分積の内最下位の符号
ビットの1つ下の桁は+1アルゴリズムによる1加算を
しなくても構成できる。即ち、図8に示すように、フル
アダーの”0”入力を”0”のままにしておけば、Q
+0、”1”にすればQ+1が実現できる。この図8の
ように、フルアダーを2つ用意し、他の2入力は共通に
して、残りの1入力を”0”にする場合(図中フルアダ
ー)と”1”にする場合(図中フルアダー)とに分
ければ良い。
【0087】このように、生成部分積の符号ビットの1
つ下の桁に2加算するとき、乗算アレイで1加算するた
めに、フルアダーを図8に示すように追加して構成す
ることもできる。
【0088】しかしながら、図16のように、フルアダ
ーを乗算アレイ内の生成部分積の最下位の符号ビットの
1つ下の桁に1加算するために追加すると、乗算アレイ
の規則性が乱れ、マスクパターンのレイアウト作業の時
間がかかるという難点がある。
【0089】そこで、この発明においては、最下位のア
ダーセクションの構成を工夫し、Q+0、Q+1,Q+
2の加算を行うようにしている。ここで、Qは生成部分
積のうち最下位の符号ビットの1つ下の桁を示す。
【0090】本発明による最下位のアダーセクション
は、MSPの最下位2ビットの加算((A1,A0)+
(B1,B0))を行なう。A1,A0,B1,B0は
乗算アレイの出力でA1,B1は生成部分積の最下位の
符号ビットの桁にA0,B0は最下位の符号ビットより
1つ下の桁に相当する。
【0091】本発明による最下位のアダーセクションの
一実施例を図3に示す。この最下位のアダーセクション
は、4つのフルアダー211、213、214および2
15と1つのハーフアダー212とで構成されている。
【0092】Q+0に対応する結果S0 1、S0 0とキャリ
ー出力C0 1は、ハーフアダー212(HA)によるA0
+B0からS0 0を、フルアダー211(FA)による
A1+B1+C0 0からS1 0、C0 1を得る。ここで、C0 0
はHAのキャリー出力である。
【0093】Q+1に対応する結果S1 1、S1 0とキャリ
ー出力C1 1は、フルアダー213(FA)によるA0
+B0+1からS1 0を、フルアダー214(FA)に
よるA1+B1+C1 0からS1 1、C1 1を得る。ここで、
1 0はフルアダー213(FA)のキャリー出力であ
る。
【0094】Q+2に対応する結果S2 1、S2 0とキャリ
ー出力C2 1は、ハーフアダー212(HA)によるA0
+B0からS2 0を、フルアダー215(FA2)による
A1+B1+C0 0+1からS2 1、C2 1を得る。
【0095】これは2進数だとQに2を加算するのは、
Qより1ビット上位のビットに1加算することと同じこ
とによる。フルアダー215(FA2)の動作は次のよ
うになる。
【0096】
【表1】
【0097】A1+B1+C0 0+1の計算で*印で示し
たパターンのみ2ビット(C2 1、S2 1)で結果が表示で
きない。即ち、結果が1+1+1+1=100となって
しまう。
【0098】しかしA1、B0を生成する乗算アレイ内
のフルアダー(FA)は+1アルゴリズムによる1加算
をしなくてよいから、このフルアダー(FA)の入力を
X、Yとすると真理表は表2のようになり、A1とB0
が同時に1になることはない。よって上表の*印と△印
のパターンは考えなくてよく、A1+B1+C0 0+1の
結果が3ビットになることはない。
【0099】従って、フルアダー215(FA2)は、
3入力、2出力で構成できる。
【0100】
【表2】
【0101】フルアダー(FA2)の回路の一実施例を
図3に示す。このフルアダーは、図に示すように、ノア
回路と2つのEXOR回路とインバータで構成すること
ができる。
【0102】図4に、本発明による最下位のアダーセク
ションをMSPの加算回路に用いた例を示す。
【0103】図4中のAはMSPの加算回路で、図2で
示す最下位のアダーセクションを除いてものである。こ
の一実施例を図5に示す。図5は最上位のアダーセクシ
ョンのみ6ビットの加算を行ない、それ以外は4ビット
の加算を行なう例である。
【0104】本発明による最下位のアダーセクション
は、生成部分積の符号ビットの1つ下の桁に2加算する
とき、生成部分積の符号ビットに1加算しているので、
乗算アレイ内で1加算しなくてすみ乗算アレイの規則性
を乱さずかつより小さい回路規模で構成できる。
【0105】次に、図5に従い本発明に適用されるMS
Pの加算回路20について、更に説明する。
【0106】MSP加算回路20は、生成された上位2
4ビットの符号ビットを、複数のグループ、本実施例で
は6つのグループに分割する。そのグループに対応する
6つのアダーセクション201、202、203、20
4、220および210に分割し、最下位のアダーセク
ション210のみ、図2に示すように、生成部分積の符
号ビットの1つ下の桁に2加算するとき生成部分積の符
号ビットに1加算するように4つのフルアダー211、
213、214及び215と1つのハーフあだー212
とで構成している。
【0107】そしてフルアダー211より第1のキャリ
ー出力C0 1、フルアダー214より第2のキャリー出力
1 1、フルアダー215より第3のキャリー出力C2 1
夫々出力される。
【0108】最下位のアダーセクション210より1つ
以上のアダーセクション220は予めキャリー出力を考
慮してキャリー入力が”0”の加算手段とキャリー入力
が”1”の加算手段を設け、先の最下位のアダーセクシ
ョンの第1、第2、第3のキャリー出力によって、この
セクション220におけるQ+0、Q+1、Q+2の加
算結果を得る。本実施例において、キャリー出力が”
0”の加算手段は第1の加算手段221、キャリー出力
が”1”の加算手段は第2の加算手段222である。
【0109】そして、第1のキャリーC0 1が0のとき第
1の加算手段221、1のとき第2の加算手段222の
出力結果とする。第2、第3のキャリーC1 1、C2 1につ
いても同様にこのセクションにおけるQ+1、Q+2の
加算結果が得られる。
【0110】また、第1、第2の加算手段221、22
2からキャリーと第1のキャリーは第1のキャリー生成
回路223に入力され、このセクション220における
Q+0に対応した第1のキャリー出力C0 5を生成する。
【0111】即ち、第1のキャリーC0 5が0のとき第1
の加算手段221、第1のキャリーC0 5が1のとき第1
の加算手段222からのキャリーの値を出力するよう第
1のキャリー生成回路223が構成される。
【0112】同様に第2、第3のキャリー入力C1 1、C
2 1に対しても夫々、第2のキャリー生成回路224、第
3のキャリー生成回路225において、夫々キャリーの
値を出力する。
【0113】また、第1の加算手段221および第2の
加算手段222の加算結果は、第1のデータセレクタ2
27および第3のデータセレクタ228に出力される。
【0114】そして、第1のデータセレクタ226は第
1のキャリーC0、第2のデータセレクタ227は第2
のキャリーC1、第3のデータセレクタ228は第3の
キャリーC2 5によって、このセクションにおけるQ+
0、Q+1、Q+2に対応した加算結果S0 5〜S0 2、S
1 5〜S1 2、S2 5〜S2 2が選択される。
【0115】すなわち、第1のデータセレクタ226
は、第1のキャリーC0 3が”0”のとき第4の加算手段
221の結果を、”1”のときは第5の加算手段222
の結果を選択出力する。
【0116】第2、第3のデータセレクタも同様であ
る。
【0117】また、キャリー生成回路はOR回路、ナン
ド回路、インバータで構成することができる。
【0118】そして、更に上位のアダーセクション20
1〜204は、アダーセクション220の回路構成と全
く同じ回路構成であり、1つの下位のアダーセクション
からの第1、第2、第3のキャリーによりこのセクショ
ンのQ+0、Q+1、Q+2に対応した加算結果を選択
して出力し、第1、第2、第3のキャリーも同じく生成
し、上位のアダーセクションに伝搬する。
【0119】このように、上位のアダーセクションにお
いても3つの加算結果の出力とキャリーの伝搬がなされ
ている。
【0120】而して、図5においては24ビットのデー
タ入力に対し、6ビットずつのアダーセクション201
と4ビットずつのアダーセクション202、203、2
04、220に分割している。A0〜A23、B0〜B
23、A1’、B0’は乗算アレイ1からの出力、A
1’、B0’はアレイ内で部分積のうち最下位の符号ビ
ットの1つの桁に1加算した結果である。
【0121】S0 0〜S0 23はQ+0、S1 0〜S1 23はQ+
1、S2 0〜S2 23はQ+2の24ビット加算結果、C0 3
は最下位のアダーセクション210の第1のキャリー、
1 3、C2 3も同様に第2、第3のキャリーである。
【0122】C0 5、C1 5、C2 5は最下位から数えて2番
目のアダーセクションの第1、第2第3のキャリーを示
す。又、以後、C0は第1のキャリー、C1は第2のキャ
リー、C2は第3のキャリーを夫々示す。
【0123】アダーセクション220において、第1の
加算手段221はA+B、第3の加算手段222はA+
B+1を行なう。
【0124】上記したようにMSPの加算回路20を構
成すると、3つの加算回路で構成するよりも回路規模が
小さくなり、チップ面積も縮小できる。
【0125】更に、計算時間も3つの加算回路で構成す
る場合にはMSPのビット数分の加算時間を要するが、
本発明による構成だと、最下位のアダーセクションにお
ける加算時間に各アダーセクションのキャリー生成回路
のキャリー伝搬時間を加算しただけの時間に短縮でき
る。
【0126】また、LSPとMSPを分割し、夫々並列
に計算しているため、48ビットの乗算結果を得るため
の最終段の加算回路における加算時間は図14の従来装
置に比べて約半分に短縮できる。
【0127】尚、上記実施例は32ビット浮動小数点の
場合を示したが、本実施例は32ビットに限るものでは
ない。
【0128】また、上記実施例は浮動小数点の乗算装置
について説明したが、浮動小数点に限らず本行数の大き
な乗算装置に適用することも可能である。
【0129】次にA×B+Cの演算を実行する場合のこ
の発明の第2の発明の実施例について説明する。このA
×B+Cの演算を実行するには、従来技術では、図15
に示すように、乗算回路でA×Bを行なった後、その結
果に加算回路でCを加算していた。
【0130】しかしながら、この従来の方法だと演算時
間が長いこと、また乗算回路以外に加算回路も設けなく
てはならず、回路規模が大きくなる欠点があった。
【0131】そこで、A×Bの乗算装置内の所定のハー
フアダーをフルアダーに置き換え、かつ所定の位置にハ
ーフアダーを追加するだけで、演算速度を損なうことな
くA×B+Cを実行する演算装置を実現するようにした
ものが第2の発明の実施例である。
【0132】A×Bの一例として、A、B共に8ビット
の2つの補数の場合を示す。2次のブースのアルゴリズ
ムによってA×Bは、 A=−a+a+a+a+a+a+a
+a B=−b+b+b+b+b+b+b
+b とすると、 A×B= (b−2b)2・A +(b+b−2b)2・A +(b+b−2b)2・A +(b+b−2b)2・A で表わされる。
【0133】各桁の係数はbi-1、bi、bi+1の連続す
る3つのBの値によって決まり、0、±1、±2の値を
とる。このことにより部分積は0、±A、±2Aとな
る。−A、−2AはA、2Aを反転する操作すなわちマ
イナスを行なう。
【0134】また2つの補数表示の2進数の乗算におい
て、部分積を2次のブースのアルゴリズムで求めた場
合、それぞれの部分積が2つの補数表示となる。
【0135】この実施例では、生成された部分積を加算
するとき、回路規模を大きくしないということと、乗算
速度の低下を招かないために、部分積の最上位ビット
(符号ビット)を反転し所定の位置に1加える手法、即
ち、+1アルゴリズムを用いる。
【0136】その一例を図11に示す。図中○は生成部
分積、●は符号反転ビット、”1”は+1アルゴリズム
による1加算、(1)は部分積が−Aまたは−2Aとな
ったときマイナスをつくるためにAまたは2Aの各ビッ
トを反転し最下位ビット(LSB)に1加算するが、こ
のときのLSBに1加算する動作を行なう。
【0137】図16に図11のアルゴリズムを回路にし
た例を示す。
【0138】図16において、Hはハーフアダー、Fは
フルアダー、H又はFの1つの入力が1と接続している
のは図11中の”1”、compと接続しているのは図
11中の(1)に相当する。最終段の加算回路は、各ビ
ットを2入力にしぼった中間部分積を加算する。
【0139】ここでA×BにCを加算するとき、図16
において1段目と2段目の部分積を加算するハーフアダ
ーに着目し、このハーフアダーをフルアダーに置き換え
てCを加算する。図16においてハーフアダーのない最
下位の2ビットについてはハーフアダーを追加し、部分
積とCの加算を行なう。
【0140】このようにCを加算すれば乗算アレイ内で
加算段数を増やす必要はなくA×B+Cの演算時間もA
×B+C(A、B、C共に8ビット)の一実施例を示
す。斜線で示したフルアダーは前述のようにハーフアダ
ーをフルアダーに置き換えたもので、斜線で示したハー
フアダーは1段目の部分積の最下位2ビットとCの最下
位2ビットを加算するために設けたハーフアダーであ
る。
【0141】図16と図13を比較して最もトリーの深
いところすなわち、そのビットの部分性が通るフルアダ
ー又はハーフアダーの数は図16、図13共に同じで、
フルアダーを3個通る経路である。このことから本発明
によると演算速度を損なうことなくA×B+Cが構成で
きる。
【0142】また予め本発明によるA×B+Cを構成し
ておいて、A×の結果が欲しいときはC入力を0とすれ
ばA×Bが得られる。
【0143】A×BとA×B+Cの2つのセルを用意す
るのではなく、A×B+Cが1つあれば、柔軟な演算が
可能となる。
【0144】このように、この発明によるA×B+Cの
演算装置は、A×Bとほぼ同程度である。
【0145】A×B+CでC=0とすることで、すなわ
ち、C入力を0にすると、A×Bの乗算結果も得られ
る。
【0146】
【発明の効果】以上説明したように、本発明によれば、
乗算部の最終段加算回路を上位と下位とで2つに分割し
て、夫々並列に計算するので、乗算時間を短縮すること
ができる。
【0147】更に、予め下位側からのキャリーの有無と
丸めによる桁上げの有無を考慮して、上位側の最下位桁
に”0”、”1”、”2”を加算した3つの結果を算出
するので、下位側からのキャリーと丸めによる桁上げの
有無により、再度上位側の計算をやり直す必要はなく、
全体の乗算時間が短縮できる。
【0148】また、A×Bの乗算装置内の所定のハーフ
アダーをフルアダーに置き換え、且つ所定の位置にハー
フアダーを追加するだけで、演算速度を損なうことな
く、A×B+Cを実行する演算装置が実現できる。
【図面の簡単な説明】
【図1】本発明の演算装置の一実施例を示すブロック図
である。
【図2】本発明に適用されるMSP加算回路の最終アダ
ーセクションの構成を示すブロック図である。
【図3】本発明に用いられる最終アダーセクションのフ
ルアダーの一実施例を示す回路図である。
【図4】本発明に適用されるMSP加算回路の構成を示
すブロック図である。
【図5】本発明に適用されるMSP加算回路の構成を示
すブロツク図である。
【図6】浮動小数点を+1アルゴリズムを用いて乗算し
た部分積の関係を示す模式図である。
【図7】本発明に用いられる並列乗算器の構成を示す模
式図である。
【図8】本発明に用いられる並列乗算器の構成を示す模
式図である。
【図9】本発明の演算装置の概念を示す構成図である。
【図10】乗算動作を説明するための図である。
【図11】乗算動作を説明するためのフローチャートで
ある。
【図12】この発明の第2の発明において、+1アルゴ
リズムを用いて8ビットの乗算を行なった場合の部分積
を示す模式図である。
【図13】この発明の第2の発明の実施例を示す模式図
である。
【図14】従来の浮動小数点乗算装置の構成を示すブロ
ツク図である。
【図15】従来の(A×B+C)の演算装置を示すブロ
ツク図である。
【図16】+1アルゴリズムを用いた8ビットの乗算回
路を示すブロック図である。
【符号の説明】
1 乗算アレイ 5 丸め桁上げ検出回路 6 仮数部選択信号生成回路 10 マルチプレクサ 20 MSP加算回路 21 マルチプレクサ 22 LSP加算回路

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 演算装置の乗算部で生成された部分積を
    加算するとき、乗算アレイからの出力を受けて最終の部
    分積の加算を行なう加算回路において、生成された部分
    積のうち最下位ビットの1つの下の桁未満(以下、LS
    Pという。)と、1つ下の桁以上(以下、MSPとい
    う。)の加算を並列に行なう演算装置であって、MSP
    の加算を複数のアダーセクションに分割し、各アダーセ
    クションでMSPについては最下位の符号ビットの1つ
    下の桁に予めLSPからのキャリーの有無と丸めによる
    桁上げの有無に応じて、”0”、”1”、”2”を加算
    する3通りの加算を同時に行なうと共に、LSPからの
    キャリーと丸めによる桁上げの有無が決まった時点で3
    通りのMSPの加算結果のうち1つを選択することを特
    徴とする演算装置。
  2. 【請求項2】 最下位のアダーセクションは最下の符号
    ビットの1つ下の桁と、最下位の符号ビットとの2ビッ
    トの加算を行なうとともに、最下位の符号ビットの1つ
    下の桁に”0”加算、”1”加算の夫々を行なう手段
    と、最下位の符号ビットに”1”加算する手段を備え、
    3通りのMSPの加算に応じた3つの加算結果を出力す
    ることを特徴とする請求項1に記載の演算装置。
  3. 【請求項3】 前記アダーセクションにおいて、最下位
    を除くアダーセクションはそのアダーセクションの最下
    位桁に何も加算しない第1の加算手段と、1加算する第
    2の加算手段と、第1、第2の加算手段の出力を受け、
    1つ下位のアダーセクションからの第1、第2、第3の
    キャリー入力によりいずれか一方を出力する第1、第
    2、第3のデータ・セレクタを設け、且つ第1、第2の
    加算手段のキャリー出力と、前記第1のキャリー出力と
    からそのアダーセクションの第1のキャリーを生成する
    第1のキャリー生成回路と、前記第1、第2の加算手段
    のキャリー出力と前記第1のキャリー入力から第2、第
    3のキャリーを生成する第2、第3のキャリー生成回路
    を設けたことを特徴とする請求項1に記載の演算装置。
  4. 【請求項4】 最下位のアダーセクションの第1、第
    2、第3のキャリーは、1つ上位のアダーセクションの
    各々第1、第2、第3のキャリー生成回路へ伝設され、
    1つ上位のアダーセクションの第1、第2、第3のキャ
    リーを生成し、出力することを特徴とする請求項1に記
    載の演算装置。
  5. 【請求項5】 3つの入力データA、B、Cについて、
    加数Cが乗数Bと同じビット数かまたはそれ以下のビッ
    ト数でA×B+Cを実行する演算装置において、AとB
    の乗算結果にCを加算するときA×Bの乗算アレイ内の
    1段目と2段目の部分積にCを加算する手段を備えたこ
    とを特徴とする演算装置。
JP3202452A 1991-07-17 1991-07-17 演算装置 Pending JPH0527948A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3202452A JPH0527948A (ja) 1991-07-17 1991-07-17 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3202452A JPH0527948A (ja) 1991-07-17 1991-07-17 演算装置

Publications (1)

Publication Number Publication Date
JPH0527948A true JPH0527948A (ja) 1993-02-05

Family

ID=16457762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3202452A Pending JPH0527948A (ja) 1991-07-17 1991-07-17 演算装置

Country Status (1)

Country Link
JP (1) JPH0527948A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527060A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド 拡張された削減ツリー回路構成を有するブース乗算器
US7809783B2 (en) 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527060A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド 拡張された削減ツリー回路構成を有するブース乗算器
US7809783B2 (en) 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry

Similar Documents

Publication Publication Date Title
JP3761977B2 (ja) 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法
JP3492638B2 (ja) 浮動小数点乗算器
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US5465226A (en) High speed digital parallel multiplier
US5278783A (en) Fast area-efficient multi-bit binary adder with low fan-out signals
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JP2000259394A (ja) 浮動小数点乗算器
US5798955A (en) High-speed division and square root calculation unit
JPS60163128A (ja) 乗算回路
US6704762B1 (en) Multiplier and arithmetic unit for calculating sum of product
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP2972498B2 (ja) 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器
KR100308726B1 (ko) 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법
US5867413A (en) Fast method of floating-point multiplication and accumulation
KR100627993B1 (ko) 3입력 분할 가산기
JPH0317132B2 (ja)
EP0361886B1 (en) Improved floating point computation unit
JPH04165530A (ja) 浮動小数点乗算装置
JPH0527948A (ja) 演算装置
JPH0374419B2 (ja)
JPH0464091B2 (ja)
US6317772B1 (en) Split remainder divider
JPH056263A (ja) 加算器およびその加算器を用いた絶対値演算回路
JP2734438B2 (ja) 乗算装置