JPH09245019A - 積和演算回路 - Google Patents

積和演算回路

Info

Publication number
JPH09245019A
JPH09245019A JP8053038A JP5303896A JPH09245019A JP H09245019 A JPH09245019 A JP H09245019A JP 8053038 A JP8053038 A JP 8053038A JP 5303896 A JP5303896 A JP 5303896A JP H09245019 A JPH09245019 A JP H09245019A
Authority
JP
Japan
Prior art keywords
output
overflow
product
booth
input
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.)
Granted
Application number
JP8053038A
Other languages
English (en)
Other versions
JP3710193B2 (ja
Inventor
Mikihiko Odaka
巳季彦 小高
Mitsuharu Baba
光晴 馬場
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP05303896A priority Critical patent/JP3710193B2/ja
Publication of JPH09245019A publication Critical patent/JPH09245019A/ja
Application granted granted Critical
Publication of JP3710193B2 publication Critical patent/JP3710193B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 積生成時の不要なオーバーフロー発生を予測
することができ、飽和演算機能付き符号拡張方式の積和
演算回路においても2入力加算器を2つ別々の回路で必
要としない積和演算回路を提供する。 【解決手段】 積和演算回路100は、2次のブース理
論を用いてブースエンコードを行うブースエンコーダ1
04と、被乗数とブースエンコーダ104からの出力に
より(M/2)個の部分積を生成・加算し、2個の中間
積に圧縮して出力する乗算アレイと106と、被乗数及
び乗数に基づいて積生成時に不要なオーバーフローが発
生するか否かを予測するオーバーフロー予測回路105
と、乗算アレイ106から出力された2個の中間積と累
積データを加算して出力を2本に絞る桁上げ保存加算器
107と、桁上げ保存加算器107からの2本の出力を
加算し、加算和を積和演算結果として出力し、(M+
N)bitを超えるキャリーアウトも出力する2入力加
算器108と、オーバーフロー予測回路105からの出
力と2入力加算器108のキャリーアウト出力との排他
的論理和をとる排他的論理和ゲート109とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列乗算器等に用
いられる積和演算回路に係り、詳細には、例えば2次ブ
ース(Booth)理論及び符号拡張方式の乗算器を用いた
積和演算回路に関する。
【0002】
【従来の技術】乗算器はディジタル演算処理装置におい
て加算器、遅延回路とともに最も基本的な回路の1つで
あり、集積度の向上によりMbit×Nbit乗算を一
気に実行する並列乗算器も既にオンチップ化されてい
る。並列乗算器の基本的な構造は、被乗数に乗数の1b
itを掛け合わせた結果得られる部分積生成と、生成さ
れた部分積を乗数bitの重みに従って桁を合わせ加算
する積和演算回路からなる。
【0003】従来のこの種の積和演算回路としては、例
えば「ディジタルCMOSの回路設計」コロナ社,p1
84〜p191に記載されたものがある。
【0004】乗算アレイの構造を符号拡張の扱いの差に
より、主に3パターンの区分が広く知られており、最も
単純な構造の符号拡張方式と、上記文献による符号伝搬
方式及び符号生成方式(符号不拡張方式)である。
【0005】従来、乗算器を用いた積和演算器では累積
を計算する際のオーバーフローを検出することが困難で
あった。累積計算時のオーバーフロー発生は後のデータ
の値が全く不正確となるため、信号処理等の処理ではオ
ーバーフローは避けなければならない。これを避けるに
は演算実行毎にオーバーフローの発生の有無をチェック
する必要がある。さらには、オーバーフローが発生した
時には、計算結果を正又は負の最大値に抑える飽和演算
を行う場合もある。何れにしても積和演算においてオー
バーフローの検出を行うということは極めて重要なこと
であり、この処理を高速かつハード量を少なく実行する
ことが望まれる。
【0006】本来、(Mbit×Nbit)の乗算を行
い、(M+N)bitの積を得る場合、(M+N)bi
tを超えるオーバーフローを発生することはない。しか
し、符号拡張方式の乗算アレイ部において、2次のブー
ス(Booth)理論を用いた場合、部分積加算時に符号拡
張部の加算によりキャリーアウトが発生することがあ
る。これは2次のブース理論により、「−1」あるいは
「−2」とエンコードされた場合の部分積は、被乗数の
2の補数を(M+N)bitに符号(この場合、1)拡
張するためである。ちなみに、更に「−2」にエンコー
ドされた場合は1bit上位側にシフトする。
【0007】この場合、出力される桁上げ出力を無視す
るために、乗算アレイ部では、(M/2)個の部分積を
2個の中間積に圧縮し、それらを2入力桁上げ伝搬加算
器に入力し、その加算和を積として得ておき、2入力桁
上げ伝搬加算器によって得た積と累積データを加算する
ためにはもう1つ別の2入力桁上げ伝搬加算器を用意
し、その加算器に積と累積データを入力していた。
【0008】図4は上述した飽和演算機能付き積和演算
回路の回路構成図である。
【0009】図4において、積和演算回路10は、ブー
スエンコーダ11、乗算アレイ12及び2入力加算器1
3,14から構成される。
【0010】上記ブースエンコーダ11は、2次のブー
ス(Booth)理論を用いるために、乗数のうち隣り合う
3bitを選択条件とするブースエンコードを行うため
のものである。
【0011】上記乗算アレイ12は、被乗数にブースエ
ンコーダ11によりエンコードされた乗数を掛け合わせ
て部分積を生成する。
【0012】上記2入力加算器13は、乗算アレイ12
からの部分積を加算するための加算器である。
【0013】上記2入力加算器14は、2入力加算器1
3からの積に累積データを加算するための加算器であ
る。
【0014】このように、積和演算回路10では、累積
の計算を2入力加算器13,14を2段直列接続し、後
段の2入力加算器14で累積データを加算し出力された
積和演算結果からオーバーフローの判定を行っていた。
【0015】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の積和演算回路10にあっては、累積データを
加算するために2つの2入力加算器13,14を備えた
構成となっていたため、回路規模が大きくなり、かつ遅
延性能への影響も大きく動作周波数の改善が難しいとい
う問題点があった。
【0016】この問題を改善するためには、2入力加算
器の入力側に全加算器を設け、この全加算器で2個の中
間積と累積データを加算して出力を2本に絞り、この出
力を加算する方法を用いればよい。ところが、これまで
は積和演算時に発生する桁上げ出力が、積生成時に生じ
る無視するべきオーバーフロー発生の要素を2個の中間
積が含んでいるため、オーバーフロー出力が不正確とな
りそのまま全加算器に入力することはできなかった。
【0017】本発明は、積生成時の不要なオーバーフロ
ー発生を予測することができ、飽和演算機能付き符号拡
張方式の積和演算回路においても2入力加算器を2つ別
々の回路で必要とせず、遅延性能及び積和演算のスルー
プットを高めることができる積和演算回路を提供するこ
とを目的とする。
【0018】
【課題を解決するための手段】本発明に係る積和演算回
路は、乗算対象となる2個の2進数M、N(M、Nは任
意のビット数)の乗算による積(Mビット×Nビット)
と加算を行う任意の1個の2進数(M+Nビット)を入
力信号として(M+N)ビットの積和演算を行う積和演
算回路において、被乗数と乗数から部分積を生成・加算
し、中間積に圧縮して出力する乗算アレイと、被乗数及
び乗数に基づいて積生成時にオーバーフローが発生する
ことを予測するオーバーフロー予測手段と、乗算アレイ
から出力された中間積と累積データを加算し、該加算和
を積和演算結果として出力するとともに、(M+N)ビ
ットを超えるキャリーアウトも出力する加算手段とを備
えて構成する。
【0019】さらに、上記積和演算回路が、2次のブー
ス(Booth)理論を用いてブースエンコードを行うブー
スエンコーダを備え、乗算アレイは、被乗数とブースエ
ンコーダからの出力により(M/2)個の部分積を生成
・加算し、2個の中間積に圧縮して出力する構成であっ
てもよく、ブースエンコーダは、乗数のうち隣り合う3
ビットを選択条件とする2次のブース理論を用いたブー
スエンコードを行うブースエンコーダであってもよい。
【0020】また、オーバーフロー予測手段は、加算手
段の累積計算時にオーバーフローの発生予測を行い得る
ように構成されており、加算手段は、累積計算時に発生
したオーバーフローとオーバーフロー予測手段により予
測したオーバーフローとの論理をとり出力する手段を備
えた構成であってもよい。
【0021】また、加算手段は、乗算アレイから出力さ
れた2個の中間積と累積データを加算して出力を2本に
絞る桁上げ保存加算器と、桁上げ保存加算器からの2本
の出力を加算し、加算和を積和演算結果として出力し、
(M+N)ビットを超えるキャリーアウトも出力する2
入力加算器とを備えた構成でもよい。
【0022】また、オーバーフロー予測手段は、入力さ
れた被乗数がALL0であることを検出するALL0検
出手段と、乗数のブースエンコード結果を判定する判定
手段とを備え、ALL0検出手段の出力及び判定手段の
出力に基づいてオーバーフローの発生を予測するように
してもよく、判定手段は、乗数のブースエンコード結果
について、−1、−2を出力するエンコーダの数、若し
くは−1、−2を出力する場合のビット位置のうち少な
くとも何れか一つ以上を基にオーバーフローを判定する
ようにしてもよい。
【0023】
【発明の実施の形態】本発明に係る積和演算回路は、2
次ブース(Booth)理論及び符号拡張方式の乗算器を用
いた(Mbit×Nbit)+(M+N)bitの積和
演算回路に適用することができる。
【0024】図1は本発明の第1の実施形態に係る積和
演算回路の構成図である。図1に示す積和演算回路は符
号拡張方式の乗算アレイを用いた積和演算回路に適用し
た例である。
【0025】図1において、積和演算回路100は、入
力端子101,102,103、ブースエンコーダ10
4、オーバーフロー予測回路105(オーバーフロー予
測手段)、乗算アレイ106、桁上げ保存加算器10
7、2入力加算器108、排他的論理和ゲート109及
び出力端子110,111から構成される。入力端子1
01には被乗数が、入力端子102には乗数が、入力端
子103には累積データがそれぞれ入力され、出力端子
110から積和演算結果が、出力端子111からオーバ
ーフローが出力される。
【0026】上記桁上げ保存加算器107及び2入力加
算器108は、全体として加算手段112を構成する。
【0027】上記ブースエンコーダ104は、入力され
た乗数により2次ブースエンコードを行い、エンコード
結果(+2,+1,0,−1,−2)を出力する。
【0028】上記オーバーフロー予測回路105は、被
乗数及び乗数に基づいて積生成時に不要なオーバーフロ
ーが発生するか否かを予測し、不要なオーバーフローが
発生するときは「1」を、発生しないときは「0」を出
力する。
【0029】上記乗算アレイ106は、符号拡張方式の
乗算アレイ部であり、被乗数とブースエンコーダ104
からの出力により(M/2)個の部分積を生成・加算
し、2個の中間積に圧縮して出力する。
【0030】上記桁上げ保存加算器107は、乗算アレ
イ106から出力された2個の中間積と累積データを加
算して出力を2本に絞る。
【0031】上記2入力加算器108は、桁上げ保存加
算器107からの2本の出力を加算する(M+N)bi
tの最終桁上げ伝搬加算器であり、加算和を積和演算結
果として出力し、(M+N)bitを超えるキャリーア
ウトも出力する。
【0032】上記排他的論理和ゲート109は、オーバ
ーフロー予測回路105からの出力と2入力加算器10
8のキャリーアウト出力との排他的論理和をとりその排
他的論理和出力をオーバーフローとして出力する。
【0033】このように、積和演算回路100は、2次
のブース理論を用いてブースエンコードを行うブースエ
ンコーダ104と、被乗数とブースエンコーダ104か
らの出力により(M/2)個の部分積を生成・加算し、
2個の中間積に圧縮して出力する乗算アレイと106
と、被乗数及び乗数に基づいて積生成時に不要なオーバ
ーフローが発生するか否かを予測するオーバーフロー予
測回路105と、乗算アレイ106から出力された2個
の中間積と累積データを加算して出力を2本に絞る桁上
げ保存加算器107と、桁上げ保存加算器107からの
2本の出力を加算し、加算和を積和演算結果として出力
し、(M+N)bitを超えるキャリーアウトも出力す
る2入力加算器108と、オーバーフロー予測回路10
5からの出力と2入力加算器108のキャリーアウト出
力との排他的論理和をとる排他的論理和ゲート109と
を備えて構成する。
【0034】図2は上記オーバーフロー予測回路105
の回路構成を示す図であり、このオーバーフロー予測回
路105の回路動作は後述する図3のフローで示され
る。
【0035】図2において、オーバーフロー予測回路1
05は、入力端子201,202、ALL0検出回路2
03(ALL0検出手段)、ブースマイナス判定回路2
04、2進木・逆2進木AND回路205、ブースマイ
ナス・1連続性判定回路206、ブースマイナスカウン
タ207、2入力AND回路208,209、4入力O
R回路210、AND回路211及び出力端子212か
ら構成される。入力端子201には被乗数が、入力端子
202には乗数がそれぞれ入力され、出力端子212か
らはオーバーフローが出力される。
【0036】上記ブースマイナス判定回路204、2進
木・逆2進木AND回路205、ブースマイナス・1連
続性判定回路206、ブースマイナスカウンタ207、
2入力AND回路208,209、4入力OR回路21
0及びAND回路211は、全体として判定手段213
を構成する。
【0037】上記ALL0検出回路203は、入力され
た被乗数がALL0の場合は「1」を出力し、ALL0
でない場合は「0」を出力する。
【0038】上記ブースマイナス判定回路204は、N
/2組のANDNRとインバータから構成され、該当す
る入力3bitをブースエンコーダ104に入力した際
に「−1」あるいは「−2」がブースエンコーダ104
から出力される場合に「1」を出力する。
【0039】上記2進木・逆2進木AND回路205
は、入力された乗数において最上位bitから各奇数b
itまでの「1」の連続性の判定を行う。論理的には、
最上位bitから各奇数bitまでの乗数を入力とする
(N/2−1)出力の多入力AND回路となるが、2進
木・逆2進木構造を採用することにより、効率的に実現
することが可能である。また、乗数入力は最上位bit
(ここでは、0)から最下位から2bit目(ここで
は、N−3)までである。
【0040】上記ブースマイナス・1連続性判定回路2
06は、ブースマイナス判定回路204のN/2本の出
力のうち最上位の出力を除いた(N/2−1)本とブー
スマイナス判定回路204からの(N/2−1)本の出
力を入力とし、それぞれの入力を上位側から2入力AN
Dに入力し、出力される(N/2−1)本の信号のOR
論理をとることでブースマイナスを出力したエンコーダ
入力より上位の乗数がALL1である場合を検出する。
【0041】上記ブースマイナスカウンタ207は、ブ
ースマイナス判定回路204の出力するN/2bitの
信号に含まれる「1」の個数をカウントし、0個、1
個、複数個の3つのパターンに分類し、それぞれに対応
する端子に「1」を出力し、他の端子には「0」を出力
する。
【0042】上記2入力AND回路208は、ブースマ
イナスカウンタ207の「=1」出力を入力とブースマ
イナス・1連続性判定回路206の出力を入力とし、ブ
ースマイナスが1個であり、ブースマイナスを出力した
エンコーダ入力より上位の乗数がALL1である場合を
検出する。
【0043】上記2入力AND回路209は、ブースマ
イナスカウンタ207の「=1」出力を入力とブースマ
イナス・1連続性判定回路206の出力を入力とし、ブ
ースマイナスが1個であり、ブースマイナスを出力した
エンコーダが最上位のエンコーダである場合を検出す
る。
【0044】上記4入力OR回路210は、ブースマイ
ナスカウンタ207の「≧2」出力と2入力AND回路
208の否定及び2入力AND回路209の否定を入力
とし、被乗数がALL0ではない時のオーバーフローを
検出する。
【0045】上記AND回路211は、ALL0検出回
路203の出力の否定と4入力OR回路210の出力を
入力とし、積生成時に発生する不要なオーバーフローを
出力する。
【0046】次に、上述のように構成された積和演算回
路100の動作を説明する。
【0047】本積和演算回路100は、乗算には2次ブ
ース理論と符号拡張方式を採用した乗算アレイを用い、
かつ積結果と累積結果の加算器に対し、オーバーフロー
予測回路105を設け、累積計算時に発生するオーバー
フロー検出を行うことにより累積用3入力加算器を桁上
げ保存加算器と2入力加算器で構成可能にしたことを特
徴としている。
【0048】まず、積和演算回路100の全体動作を説
明し、次いで図3のフローチャートを参照しながらオー
バーフロー予測回路105の動作について説明する。
【0049】図1に示すように、入力端子101に被乗
数、入力端子102に乗数、入力端子103に累積デー
タがそれぞれ入力されると、ブースエンコーダ104
は、入力された乗数により2次ブースエンコードを行
い、エンコード結果(+2,+1,0,−1,−2)を
乗算アレイ106に出力する。
【0050】一方、入力端子101,102に入力され
た被乗数、乗数はオーバーフロー予測回路105にも入
力され、オーバーフロー予測回路105は、後述するよ
うに被乗数及び乗数に基づいて積生成時に不要なオーバ
ーフローが発生するか否かを予測し、不要なオーバーフ
ローが発生するときは「1」を、発生しないときは
「0」を出力する。
【0051】乗算アレイ106では、符号拡張方式によ
り、被乗数とブースエンコーダ104からの出力により
(M/2)個の部分積を生成・加算し、2個の中間積に
圧縮して桁上げ保存加算器107に出力する。桁上げ保
存加算器107では、乗算アレイ106から出力された
2個の中間積に、入力端子103から入力された累積デ
ータを加算して出力を2本に絞り2入力加算器108に
出力する。
【0052】2入力加算器108では、桁上げ保存加算
器107からの2本の出力を桁上げ加算し、積和演算結
果(M+N)bitを出力端子110から出力するとと
もに、(M+N)bitを超えるキャリーアウトを排他
的論理和ゲート109に出力する。排他的論理和ゲート
109は、オーバーフロー予測回路105からの出力と
2入力加算器108のキャリーアウト出力との排他的論
理和をとりその排他的論理和出力をオーバーフローとし
て出力する。
【0053】以下、図3のフローチャートを参照しなが
らオーバーフロー予測回路105の動作を説明する。
【0054】図3はオーバーフロー予測回路105の動
作を示すフローチャートであり、図2に示すオーバーフ
ロー予測回路105の各部に対応する動作部分は破線で
囲んでいる。
【0055】図3に示すフローチャートは、以下1.及
び2.のような判定を段階的に行っていることを示して
いる。なお、図中、STはフローの各ステップを示す。
【0056】1.被乗数がALL0の時 オーバーフローが発生することはない。
【0057】2.被乗数がALL0ではない時 (1)乗数をブースエンコードした結果、−1、−2を出
力するエンコーダがない場合 オーバーフローが発生することはない。
【0058】(2)乗数をブースエンコードした結果、−
1、−2を出力するエンコーダが複数個ある場合 オーバーフローが発生する。
【0059】(3)乗数をブースエンコードした結果、−
1、−2を出力するエンコーダが1個のみの場合 ・−1、−2が最上位で出力される時は、オーバーフロ
ーが発生することはない。
【0060】・−1、−2を出力するエンコーダよりも
上位のエンコーダが全て「0」の時は、オーバーフロー
が発生することはない。なお、この場合、−1、−2を
出力したエンコーダよりも上位のエンコーダの入力は、
全て「1」でなければならない。エンコーダ出力が
「0」となるケースはエンコーダの全出力が「0」の場
合とエンコーダの全出力が「1」の場合があるが、全入
力が「0」の場合は−1、−2を出力するエンコーダの
1つ上位のエンコーダ出力が「0」とはなり得ないため
である。
【0061】・上記以外の場合、オーバーフローが発生
する。
【0062】具体的には、図3において、まず、ステッ
プST1で入力端子201からALL0検出回路203
に被乗数B=b0,b1,…,bn-1(但し、bn=0。ま
た、nは語長を表す。)1.被乗数がALL0の時 を入力し、ステップST2で数1に示す式に従って入力
された被乗数BのALL0をとり、ステップST3でA
LL0か(Z=1か)否かを判別する。上記ステップS
T2及びステップST3の処理は図2のALL0検出回
路203に相当し、入力された被乗数BがALL0の場
合は「1」を出力し、ALL0でない場合は「0」を出
力することになる。
【0063】
【数1】
【0064】ステップST3でZ=1と判別したときは
被乗数BがALL0であるからオーバーフローが発生す
ることはないと判断しステップST4に進んでオーバー
フロー予測回路105の処理を終える。
【0065】ステップST3でZ=0と判別したときは
被乗数BがALL0でない時であるから上述したように
乗数のブースエンコードの結果として、オーバーフロー
が発生する可能性があると判断してステップST5に進
む。ステップST5では、入力端子202からブースマ
イナス判定回路204に乗数A=a0,a1,…,an-1
(但し、an=0。また、nは語長を表す。)を入力
し、ステップST6でステップST7のブースマイナス
判定をi≦n/2−1(nは語長)になるまでループさ
せる。
【0066】すなわち、ステップST7で数2に示す式
に従って、入力された乗数Aについて入力3bitをブ
ースエンコーダ104に入力した際に「−1」あるいは
「−2」がブースエンコーダ104から出力される計算
を行い、「−1」あるいは「−2」が出力される時の個
数yiをi≦n/2−1の各奇数bitまで繰り返す。
【0067】上記ステップST6及びステップST7の
処理は図2のブースマイナス判定回路204に相当し、
該当する乗数入力3bitをブースエンコーダ104に
入力した際に「−1」あるいは「−2」がブースエンコ
ーダ104から出力される場合に「1」を出力すること
になる。ここで、ブースエンコーダ104は、入力され
た乗数により2次ブースエンコードを行い、エンコード
結果(+2,+1,0,−1,−2)を乗算アレイ10
6に出力している。
【0068】
【数2】
【0069】ステップST8では、数3に示す式に従っ
て、入力3bitをブースエンコーダ104に入力した
際に「−1」あるいは「−2」がブースエンコーダ10
4から出力される場合に「1」を出力する際の個数yi
をカウントし、ステップST9でこのカウントをn/2
−1になるまで繰り返す。
【0070】
【数3】
【0071】ステップST10で上記個数yiをn/2
−1になるまで繰り返した結果の総数xが0か(x=0
か)、1か(x=1か)、複数か(x≧2か)を判別す
る。上記ステップST8〜ステップST10の処理は図
2のブースマイナスカウンタ207に相当し、ブースマ
イナス判定回路204の出力するN/2bitの信号に
含まれる「1」の個数をカウントし、0個、1個、複数
個の3つのパターンに分類し、それぞれに対応する端子
に「1」を出力し、他の端子には「0」を出力する。こ
こで、0個、1個、複数個の3つのパターンに分類して
いるのは、上述したように、被乗数がALL0ではない
時において、乗数をブースエンコードした結果、−1、
−2を出力するエンコーダの有無、又はその個数によっ
てオーバーフローが発生する、若しくは発生しないこと
を判別するためである。
【0072】ステップST10でx=0と判別したとき
には、被乗数がALL0ではないが−1、−2を出力す
るエンコーダがない場合であるからオーバーフローが発
生することはないと判断してステップST4に進んでオ
ーバーフロー予測回路105の処理を終える。
【0073】ステップST10でx=0と判別したとき
には、ステップST11でブースエンコーダ104の
「−1」あるいは「−2」の最初の個数y0が「1」で
あるか(y0=1か)否かを判別し、y0=1のときは−
1、−2を出力するエンコーダが1個のみの場合である
が−1、−2が最上位で出力される時であるからオーバ
ーフローが発生することはないと判断してステップST
4に進んでオーバーフロー予測回路105の処理を終え
る。上記ステップST11の処理は図2のブースマイナ
ス・1連続性判定回路206に相当する。
【0074】ここで、図2に示すように、2進木・逆2
進木AND回路205の2進木・逆2進木構造により、
最上位bit(ここでは、0)から最下位から各奇数b
itまでの「1」の連続性が判定され、ブースマイナス
・1連続性判定回路206が、ブースマイナス判定回路
204のN/2本の出力のうち最上位の出力を除いた
(N/2−1)本とブースマイナス判定回路204から
の(N/2−1)本の出力を入力とし、それぞれの入力
を上位側から2入力AND208,209に入力し、出
力される(N/2−1)本の信号のOR論理をとること
でブースマイナスを出力したエンコーダ入力より上位の
乗数がALL1である場合を検出するようにする。
【0075】図3のフローに戻って、ステップST11
でy0=1でないと判別したときは、ブースマイナスの
個数y1,y2,…,y(n/2)-1が1(y1,y2,…,y
(n/2)-1=1)の該当するステップST12〜ステップ
ST14に分岐する。
【0076】y1=1のときはステップST12で乗数
a0とa1が「0」か「1」かを判別し、a0とa1が
「0」のときは−1、−2を出力するエンコーダよりも
上位のエンコーダが全て「0」の時であるからオーバー
フローが発生することはないと判断してステップST4
に進んでオーバーフロー予測回路105の処理を終え、
a0とa1が「1」のときはオーバーフローが発生すると
判断してステップST15に進んでオーバーフロー予測
回路105の処理を終える。
【0077】y2=1のときはステップST13で乗数
a0,a1,a2及び3aが「0」か「1」かを判別し、a
0,a1,a2及びa3が「0」のときは−1、−2を出力
するエンコーダよりも上位のエンコーダが全て「0」の
時であるからオーバーフローが発生することはないと判
断してステップST4に進んでオーバーフロー予測回路
105の処理を終え、a0,a1,a2及びa3が「1」の
ときはオーバーフローが発生すると判断してステップS
T15に進んでオーバーフロー予測回路105の処理を
終える。
【0078】y(n/2)-1=1のときはステップST14
で乗数a0,a1,a2及びan-3が「0」か「1」かを判
別し、a0,a1,a2及びan-3が「0」のときは−1、
−2を出力するエンコーダよりも上位のエンコーダが全
て「0」の時であるからオーバーフローが発生すること
はないと判断してステップST4に進んでオーバーフロ
ー予測回路105の処理を終え、a0,a1,a2及びan
-3が「1」のときはオーバーフローが発生すると判断し
てステップST15に進んでオーバーフロー予測回路1
05の処理を終える。
【0079】上記ステップST12〜ステップST14
の処理は全体として図2のブースマイナス・1連続性判
定回路206、ブースマイナスカウンタ207、2入力
AND回路208,209、4入力OR回路210及び
AND回路211に相当する。すなわち、2入力AND
回路208が、ブースマイナスカウンタ207の「=
1」出力を入力とブースマイナス・1連続性判定回路2
06の出力を入力とし、ブースマイナスが1個であり、
ブースマイナスを出力したエンコーダ入力より上位の乗
数がALL1である場合を検出し、また2入力AND回
路209が、ブースマイナスカウンタ207の「=1」
出力を入力とブースマイナス・1連続性判定回路206
の出力を入力とし、ブースマイナスが1個であり、ブー
スマイナスを出力したエンコーダが最上位のエンコーダ
である場合を検出し、さらに4入力OR回路210が、
ブースマイナスカウンタ207の「≧2」出力と2入力
AND回路208の否定及び2入力AND回路209の
否定を入力とし、被乗数がALL0ではない時のオーバ
ーフローを検出するものである。
【0080】そして、AND回路211が、ALL0検
出回路203の出力の否定と4入力OR回路210の出
力を入力とし、積生成時に発生する不要なオーバーフロ
ーを出力する。
【0081】以上説明したように、本実施形態に係る積
和演算回路100は、2次のブース理論を用いてブース
エンコードを行うブースエンコーダ104と、被乗数と
ブースエンコーダ104からの出力により(M/2)個
の部分積を生成・加算し、2個の中間積に圧縮して出力
する乗算アレイと106と、被乗数及び乗数に基づいて
積生成時に不要なオーバーフローが発生するか否かを予
測するオーバーフロー予測回路105と、乗算アレイ1
06から出力された2個の中間積と累積データを加算し
て出力を2本に絞る桁上げ保存加算器107と、桁上げ
保存加算器107からの2本の出力を加算し、加算和を
積和演算結果として出力し、(M+N)bitを超える
キャリーアウトも出力する2入力加算器108と、オー
バーフロー予測回路105からの出力と2入力加算器1
08のキャリーアウト出力との排他的論理和をとる排他
的論理和ゲート109とを備え、オーバーフロー予測回
路105が、入力された被乗数がALL0であること、
及び乗数のブースエンコード結果について、−1、−2
を出力するエンコーダの数、若しくは−1、−2を出力
する場合のビット位置を基にオーバーフローを予測する
構成となっているので、積生成時の不要なオーバーフロ
ー発生を予測することができ、飽和演算機能付き符号拡
張方式の積和演算回路100において、従来例のように
2入力加算器を2つ別々の回路で必要とせず、遅延性能
及び積和演算のスループットを高めることができる。
【0082】すなわち、従来例では累積データを加算す
るための2つの2入力加算器13,14が必要であり、
回路規模が大きくなり、かつ遅延性能への影響も大きく
動作周波数の改善が難しく、また、これを回避するため
の2入力加算器の入力側に全加算器を設ける方法も2次
のブース理論を用いることからオーバーフロー発生が発
生する可能性があり出力が不正確となりそのまま全加算
器に入力することはできなかった。これに対し、本実施
形態に係る積和演算回路100では、オーバーフロー予
測回路105によって、積生成時の不要なオーバーフロ
ー発生を予測することができ、飽和演算機能付き符号拡
張方式の積和演算回路100においても2入力加算器1
08は1個で済み、遅延性能及び積和演算のスループッ
トを高めることができる。
【0083】なお、上述の実施形態では、2次ブース理
論及び符号拡張方式の乗算器を用いた(Mbit×Nb
it)+(M+N)bitの積和演算回路に適用した例
であるが、加算手段の累積計算時にオーバーフローの発
生予測を行い得るオーバーフロー予測手段を備えるもの
であればどのような積和演算回路に適用してもよい。例
えば、部分積の生成に2次のブース理論を用いない並列
乗算器に用いることもできる。
【0084】また、上記積和演算回路100及びオーバ
ーフロー予測回路105を構成する各種回路及びゲート
回路の種類や数、種類接続状態などは前述した上述の実
施形態に限られないことは言うまでもなく、積和演算回
路100全体がDSP等を構成する算術回路の一部であ
ってもよい。
【0085】さらに、上述の各実施形態では、並列乗算
器等に用いられる積和演算回路に適用しているが、(M
bit×Nbit)+(M+N)bitの積和演算を行
う回路であればどのような装置にも適用することもでき
る。
【0086】
【発明の効果】本発明に係る積和演算回路では、被乗数
と乗数から部分積を生成・加算し、中間積に圧縮して出
力する乗算アレイと、被乗数及び乗数に基づいて積生成
時にオーバーフローが発生することを予測するオーバー
フロー予測手段と、乗算アレイから出力された中間積と
累積データを加算し、該加算和を積和演算結果として出
力するとともに、(M+N)ビットを超えるキャリーア
ウトも出力する加算手段とを備えて構成しているので、
積生成時の不要なオーバーフロー発生を予測することが
でき、飽和演算機能付き符号拡張方式の積和演算回路に
おいても2入力加算器を2つ別々の回路で必要とせず、
遅延性能及び積和演算のスループットを高めることがで
きる。
【図面の簡単な説明】
【図1】本発明を適用した実施形態に係る積和演算回路
の構成図である。
【図2】上記積和演算回路のオーバーフロー予測回路の
回路構成図である。
【図3】上記積和演算回路のオーバーフロー予測回路の
動作を説明するためのタイミングチャートである。
【図4】従来の積和演算回路の構成図である。
【符号の説明】
100 積和演算回路、101,102,103,20
1,202 入力端子、104 ブースエンコーダ、1
05 オーバーフロー予測回路(オーバーフロー予測手
段)、106 乗算アレイ、107 桁上げ保存加算
器、108 2入力加算器、109 排他的論理和ゲー
ト、110,111,212 出力端子、112 加算
手段112、203 ALL0検出回路(ALL0検出
手段)、204 ブースマイナス判定回路、205 2
進木・逆2進木AND回路、206 ブースマイナス・
1連続性判定回路、207 ブースマイナスカウンタ、
208,209 2入力AND回路、210 4入力O
R回路、211 AND回路、213 判定手段

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 乗算対象となる2個の2進数M、N
    (M、Nは任意のビット数)の乗算による積(Mビット
    ×Nビット)と加算を行う任意の1個の2進数(M+N
    ビット)を入力信号として(M+N)ビットの積和演算
    を行う積和演算回路において、 被乗数と乗数から部分積を生成・加算し、中間積に圧縮
    して出力する乗算アレイと、 被乗数及び乗数に基づいて積生成時にオーバーフローが
    発生することを予測するオーバーフロー予測手段と、 前記乗算アレイから出力された中間積と累積データを加
    算し、該加算和を積和演算結果として出力するととも
    に、(M+N)ビットを超えるキャリーアウトも出力す
    る加算手段とを備えることを特徴とする積和演算回路。
  2. 【請求項2】 さらに、上記請求項1記載の積和演算回
    路において、 2次のブース(Booth)理論を用いてブースエンコード
    を行うブースエンコーダを備え、 前記乗算アレイは、被乗数と前記ブースエンコーダから
    の出力により(M/2)個の部分積を生成・加算し、2
    個の中間積に圧縮して出力することを特徴とする積和演
    算回路。
  3. 【請求項3】 前記ブースエンコーダは、乗数のうち隣
    り合う3ビットを選択条件とする2次のブース理論を用
    いたブースエンコードを行うブースエンコーダであるこ
    とを特徴とする請求項2に記載の積和演算回路。
  4. 【請求項4】 前記オーバーフロー予測手段は、前記加
    算手段の累積計算時にオーバーフローの発生予測を行い
    得るように構成されており、 前記加算手段は、累積計算時に発生したオーバーフロー
    と前記オーバーフロー予測手段により予測したオーバー
    フローとの論理をとり出力する手段を備えたことを特徴
    とすることを特徴とする請求項1記載の積和演算回路。
  5. 【請求項5】 前記加算手段は、前記乗算アレイから出
    力された2個の中間積と累積データを加算して出力を2
    本に絞る桁上げ保存加算器と、 前記桁上げ保存加算器からの2本の出力を加算し、加算
    和を積和演算結果として出力し、(M+N)ビットを超
    えるキャリーアウトも出力する2入力加算器とを備える
    ことを特徴とする請求項1又は4に記載の積和演算回
    路。
  6. 【請求項6】 前記オーバーフロー予測手段は、入力さ
    れた被乗数がALL0であることを検出するALL0検
    出手段と、 乗数のブースエンコード結果を判定する判定手段とを備
    え、 前記ALL0検出手段の出力及び前記判定手段の出力に
    基づいてオーバーフローの発生を予測するようにしたこ
    とを特徴とする請求項1又は4に記載の積和演算回路。
  7. 【請求項7】 前記判定手段は、乗数のブースエンコー
    ド結果について、−1、−2を出力するエンコーダの
    数、若しくは−1、−2を出力する場合のビット位置の
    うち少なくとも何れか一つ以上を基にオーバーフローを
    判定することを特徴とする請求項6に記載の積和演算回
    路。
JP05303896A 1996-03-11 1996-03-11 積和演算回路 Expired - Fee Related JP3710193B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05303896A JP3710193B2 (ja) 1996-03-11 1996-03-11 積和演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05303896A JP3710193B2 (ja) 1996-03-11 1996-03-11 積和演算回路

Publications (2)

Publication Number Publication Date
JPH09245019A true JPH09245019A (ja) 1997-09-19
JP3710193B2 JP3710193B2 (ja) 2005-10-26

Family

ID=12931728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05303896A Expired - Fee Related JP3710193B2 (ja) 1996-03-11 1996-03-11 積和演算回路

Country Status (1)

Country Link
JP (1) JP3710193B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100403194B1 (ko) * 2000-06-21 2003-10-23 주식회사 에이디칩스 승산장치
KR100477913B1 (ko) * 1997-12-30 2005-08-29 주식회사 하이닉스반도체 부스알고리즘을이용한멀티플라이어
JP2012528391A (ja) * 2009-05-27 2012-11-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 飽和を伴う整数乗算および乗算加算演算
JP2019040225A (ja) * 2017-08-22 2019-03-14 日本電信電話株式会社 光乗算器および光乗算方法
CN111258633A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN113031918A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100477913B1 (ko) * 1997-12-30 2005-08-29 주식회사 하이닉스반도체 부스알고리즘을이용한멀티플라이어
KR100403194B1 (ko) * 2000-06-21 2003-10-23 주식회사 에이디칩스 승산장치
JP2012528391A (ja) * 2009-05-27 2012-11-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 飽和を伴う整数乗算および乗算加算演算
JP2019040225A (ja) * 2017-08-22 2019-03-14 日本電信電話株式会社 光乗算器および光乗算方法
CN111258633A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN113031918A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片

Also Published As

Publication number Publication date
JP3710193B2 (ja) 2005-10-26

Similar Documents

Publication Publication Date Title
Seo et al. A new VLSI architecture of parallel multiplier–accumulator based on Radix-2 modified Booth algorithm
US7720899B2 (en) Arithmetic operation unit, information processing apparatus and arithmetic operation method
Efstathiou et al. Modified Booth modulo 2/sup n/-1 multipliers
KR19980041776A (ko) 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
Venkatachalam et al. Approximate sum-of-products designs based on distributed arithmetic
US8554819B2 (en) System to implement floating point adder using mantissa, rounding, and normalization
JP3710193B2 (ja) 積和演算回路
JPH08212058A (ja) 加算オーバフロ検出回路
Gonzalez-Navarro et al. Binary integer decimal-based floating-point multiplication
Kornerup Reviewing high-radix signed-digit adders
US10374580B2 (en) FIR filter circuit design method using approximate computing
EP1296223A2 (en) Adder incrementer circuit
Son et al. Design and implementation of scalable low-power Montgomery multiplier
US9575725B1 (en) Specialized processing block with embedded pipelined accumulator circuitry
Vergos et al. Diminished-1 modulo 2n+ 1 squarer design
Ramesh et al. Efficient implementation of 16-bit multiplier-accumulator using radix-2 modified booth algorithm and SPST adder using Verilog
Sunder et al. Area-efficient diminished-1 multiplier for Fermat number-theoretic transform
KR20110085385A (ko) 부스 부호화 기반 병렬방식 곱셈누적기
KR100853787B1 (ko) 가변 진법 나눗셈 연산기
US7640286B2 (en) Data processing apparatus and method for performing floating point multiplication
Rémi et al. Multiple Constant Multiplication: From Target Constants to Optimized Pipelined Adder Graphs
Kim et al. Digit-serial modular multiplication using skew-tolerant domino CMOS
JP3675111B2 (ja) 3入力比較器
Fathi et al. Improving Accuracy, Area and Speed of Approximate Floating-Point Multiplication Using Carry Prediction
US20040181567A1 (en) Method and device for floating-point multiplication, and corresponding computer-program product

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050809

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080819

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090819

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090819

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100819

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100819

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100819

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110819

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120819

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120819

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120819

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130819

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees