JP2705640B2 - 積和演算器 - Google Patents

積和演算器

Info

Publication number
JP2705640B2
JP2705640B2 JP7131048A JP13104895A JP2705640B2 JP 2705640 B2 JP2705640 B2 JP 2705640B2 JP 7131048 A JP7131048 A JP 7131048A JP 13104895 A JP13104895 A JP 13104895A JP 2705640 B2 JP2705640 B2 JP 2705640B2
Authority
JP
Japan
Prior art keywords
bit
signed
partial product
output
extender
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
JP7131048A
Other languages
English (en)
Other versions
JPH08305550A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP7131048A priority Critical patent/JP2705640B2/ja
Priority to US08/640,701 priority patent/US5784305A/en
Publication of JPH08305550A publication Critical patent/JPH08305550A/ja
Application granted granted Critical
Publication of JP2705640B2 publication Critical patent/JP2705640B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、積和演算器に関し、特
にブースの方法により符号付き乗算,符号なし乗算,お
よび符号付き固定小数点積和演算(乗算および加算)を
行う積和演算器に関する。なお、本願明細書では、適
宜、符号付き乗算および符号付き固定小数点積和演算を
「符号付き演算」といい、符号なし乗算を「符号なし演
算」という。
【0002】
【従来の技術】以前より、パーソナル・コンピュータや
エンジニアリング・ワークステーション等に採用される
汎用マイクロプロセッサは、符号付き乗算を行うための
符号付き乗算命令と符号なし乗算を行うための符号なし
乗算命令とを命令セットに備えていた。
【0003】ところで、近年、音声,オーディオまたは
画像の圧縮および伸長等のために、いわゆるディジタル
信号処理を高速に行う必要が生じてきた。
【0004】したがって、最近のマイクロプロセッサで
は、上述の既存の命令セット(符号付き/符号なし乗算
命令を備えた命令セット)に加えて、ディジタル信号処
理で頻繁に用いられる符号付き固定小数点積和演算を行
うための符号付き固定小数点積和演算命令が命令セット
に追加されることが一般的になりつつある。
【0005】このように、マイクロプロセッサの命令セ
ットに符号付き固定小数点積和演算命令を追加すること
により、次のような利点が生じる。すなわち、従来であ
れば、符号付き乗算命令および符号付き加算命令の2命
令で行われていた処理が、符号付き固定小数点積和演算
命令だけで(すなわち、1命令で)行えるようになるた
め、デジタル信号処理を大幅に高速化することができ
る。
【0006】本発明は、このようなマイクロプロセッサ
(ディジタル信号処理性能を強化したマイクロプロセッ
サ)に内蔵される積和演算器(符号付き/符号なし乗算
機能に加え符号付き固定小数点積和演算機能を持つ積和
演算器)を対象とするものである。
【0007】ここで、本発明で対象とする積和演算器に
は、nビット長(nは正の偶数。例えば16または3
2)の被乗数Xと、同じくnビット長の乗数Yと、同じ
くnビット長の加算値Zとが入力されるものとする。
【0008】この種の積和演算器では、次のおよび
に示すような処理が必要になる。
【0009】 符号付き乗算実行時(符号付き乗算命
令の実行時)または符号なし乗算実行時(符号なし乗算
命令の実行時)には、XとYとの符号付き乗算または符
号なし乗算を行って2nビット長の結果Rを出力する。
【0010】 符号付き固定小数点積和演算実行時に
は、XとYとの符号付き乗算を行って2nビット長の中
間結果を得て、その中間結果の上位側nビットに加算値
Zを符号付き加算して(2n+1)ビット長の結果Rを
出力する。なお、本発明で対象とする積和演算器で採用
される固定小数点数表現は、最上位ビット側に小数点を
固定する表現であるものとする。
【0011】従来、上述のような処理(機能)を実現す
る積和演算器としては、特開平4−252322号公報
(積和演算方法及びその装置)等に開示されている積和
演算器(当該公報では積和演算装置と表現されている)
が存在した。
【0012】以下に、当該公報に記載されている積和演
算器について、図3を使用して説明する。
【0013】図3に示す積和演算器(当該公報に記載さ
れた積和演算器の一例)は、第1のビット幅拡張器10
1と、第2のビット幅拡張器102と、ブースのデコー
ダ103と、(k+1)入力加算器ツリー104とを含
んで構成されている(kの値については後述する)。
【0014】この積和演算器は、ブースのデコーダ10
3を用いて符号付き乗算を行っている。ブースのデコー
ダの構成手法は、ウェステ(Neil H.E.Wes
te)らによる「プリンシプルズ・オブ・シーモス・ブ
イエルエスアイ・デザイン,ア・システムズ・パースペ
クティブ,セカンド・エディション(PRINCIPL
ES OF CMOS VLSI DESIGN,A
Systems Perspective,Secon
d Edition),Addison−Wesley
Publishing Company,ISBN
0−201−53376−6,第547〜555頁」に
示されている。
【0015】ここで、ブースのデコーダについての基本
的な考え方を説明する(この考え方における各式は、後
述する本発明の実施例の説明においても引用する)。
【0016】今、符号付きmビット長(mは自然数)の
被乗数X′と符号付きmビット長の乗数Y′の積P′
(P′=X′×Y′)を求めたいとする。
【0017】乗数Y′の各ビットをyi ′(iは0≦i
<mを満たす整数)で示し、 j=[m/2+0.5] ([ ]はガウス記号) (1) と置けば、Y′は次のように書き換えることができる。
【0018】 mが偶数の場合
【0019】
【数1】
【0020】 mが奇数の場合
【0021】
【数2】
【0022】式(3)または式(6)で定義される
i ′は、Y′の各ビット(y′-1およびy′-2を含
む)のうちの3つのビットの組み合わせによって、−
2,−1,0,1,および2のいずれかの値をとる。
【0023】求めたい積P′は、次のように表される。
【0024】
【数3】
【0025】したがって、j個の(m+1)ビット長の
部分積 Pi ′=X×Yi ′ (9) を生成し(先述のようにiは0≦i<mを満たす整数で
あるが、ここでは0≦i<jとなる)、j入力加算器ツ
リーでそれらの部分積Pi ′を加算すれば積P′が得ら
れる。
【0026】ブースのデコーダは、上述のj個の(m+
1)ビット長の部分積Pi ′を生成するデコーダであ
る。
【0027】次に、このようなブースのデコーダ(ブー
スのデコーダ103)を有する図3に示す積和演算器の
動作について説明する。
【0028】第1に、符号なし乗算実行時の動作につい
て説明する。
【0029】第1のビット幅拡張器101は、符号なし
nビット長の被乗数Xを入力し、符号切替えビット(符
号付き演算を行うか符号なし演算を行うかを示す1ビッ
ト長の情報。この場合には符号なし演算を行う旨を示し
ている)を参照して被乗数Xの上位1ビットの0拡張を
行う。
【0030】第2のビット幅拡張器102は、符号なし
nビット長の乗数Yを入力し、符号なし演算を行う旨を
示す符号切替えビットを参照して乗数Yの上位1ビット
の0拡張を行う。
【0031】ブースのデコーダ103は、第1のビット
幅拡張器101の出力と第2のビット幅拡張器102の
出力とを入力し、第1の部分積生成器〜第kの部分積生
成器により第1の部分積〜第kの部分積を生成する(ブ
ースのデコーダ103は、符号なし演算時であっても、
第1のビット幅拡張器101の出力および第2のビット
幅拡張器102の出力を符号付き数として扱って処理を
行う)。この場合の部分積の個数のkは、式(1)でm
=n+1としたときのjの値であり、k=[(n+1)
/2+0.5]となる。また、(n+1)は奇数である
ので、部分積を求めるためには式(6)で表される
i ′が使用される。
【0032】(k+1)入力加算器ツリー104は、0
を示す加算値Zとともにk個の部分積(ブースのデコー
ダ103内の第1の部分積生成器〜第kの部分積生成器
によって生成される部分積)を入力し((k+1)個、
すなわち[(n+1)/2+0.5]+1の個数の数値
を入力する)、XとYとの乗算結果を示す結果Rを出力
する。
【0033】第2に、符号付き固定小数点積和演算実行
時の動作について説明する。
【0034】第1のビット幅拡張器101は、符号付き
nビット長の被乗数Xを入力し、符号付き演算を行う旨
を示す符号切替えビットを参照して被乗数Xの上位1ビ
ットの符号拡張を行う。
【0035】第2のビット幅拡張器102は、符号付き
nビット長の乗数Yを入力し、符号付き演算を行う旨を
示す符号切替えビットを参照して乗数Yの上位1ビット
の符号拡張を行う。
【0036】ブースのデコーダ103は、第1のビット
幅拡張器101の出力と第2のビット幅拡張器102の
出力とを入力し、第1の部分積生成器〜第kの部分積生
成器により第1の部分積〜第kの部分積を生成する。こ
の場合の部分積の個数のkは、式(1)でm=n+1と
したときのjの値であり、k=[(n+1)/2+0.
5]となる。また、(n+1)は奇数であるので、部分
積を求めるためには式(6)で表されるYi ′が使用さ
れる。
【0037】(k+1)入力加算器ツリー104は、符
号付きnビット長の加算値Zとともにk個の部分積を入
力し((k+1)個、すなわち[(n+1)/2+0.
5]+1の個数の数値を入力する)、XとYとの乗算結
果に対するZの加算結果を示す結果Rを出力する。
【0038】なお、符号付き乗算実行時には、加算値Z
として0が入力された上で、符号付き固定小数点積和演
算実行時の動作が行われる。
【0039】このような積和演算器(特開平4−252
332号公報に記載されている積和演算器)は、以上の
ように、部分積の加算処理において加算値Zの加算も同
時に行っているので、それ以前の積和演算器に比べて積
和演算の高速化を図ることができる(当該公報中の段落
7参照)。
【0040】
【発明が解決しようとする課題】上述した従来の積和演
算器によれば、符号付き演算時にも符号なし演算時に
も、ブースのデコーダ(図3においてはブースのデコー
ダ103)によって生成される部分積の個数に1を加算
した個数(図3においては、(k+1)、すなわち
[(n+1)/2+0.5]+1)の入力数の加算器ツ
リーを用意する必要がある。加算器ツリーの入力数が多
くなると、当該加算器ツリーの構成が複雑になり、ハー
ドウェア量の増大および演算の遅延が生じ得るという問
題点がある。
【0041】例えば、図3に示す積和演算器でn=16
の場合を考えると、k+1=[(16+1)/2+0.
5]+1=10となり、10入力加算器ツリーを用意す
る必要がある。「ワラスの方法」としてよく知られてい
る加算器ツリーの構成手法(アイ・イー・イー・イー・
トランザクションズ・オン・コンピュータズ(IEEE
Transactions on Computer
s)第EC−13巻第1号(1964年2月)第14〜
17頁に掲載されたC.S.Wallaceによる論文
“A suggestion for paralle
l multipliers”に示された加算器ツリー
の構成手法)によれば、10入力加算器ツリーを構成す
るためには、5段のCSA(Carry Save A
dder。キャリセーブ加算器)と1個のキャリ伝播加
算器とが必要になる。これに対して、入力数を1だけ減
じた9入力加算器ツリーを構成する際には、4段のCS
Aと1個のキャリ伝播加算器とですむことになる。な
お、図4は、上述の加算器ツリーの構成手法における
「加算器ツリーの入力数(k′)とCSAの段数との関
係」を示す図である。
【0042】加算器ツリーの入力数の増加とCSAの段
数の増大とは、常に連動するわけではないが(図4参
照)、いずれにしても加算器ツリーの入力数の増加はそ
の加算器ツリーの構成の複雑化や演算の遅延を招き、ハ
ードウェア量の削減および積和演算の高速化の障害にな
るという問題点を生ぜしめていた。
【0043】本発明の目的は、上述の点に鑑み、乗数の
符号拡張の方法を工夫すること等により、加算器ツリー
への入力数を削減することができ、ハードウェア量が少
なくてすみ(例えば、加算器ツリーのCSAの段数を削
減する可能性が生じる)、高速に動作しうる積和演算器
を提供することにある。
【0044】
【課題を解決するための手段】本発明の積和演算器は、
nビット長の2進数に関する符号付き乗算機能,符号な
し乗算機能,および符号付き固定小数点積和演算機能を
持つ積和演算器において、nビット長の被乗数に対し、
符号なし演算時には1ビットの0拡張を行い、符号付き
演算時には1ビットの符号拡張を行うビット幅拡張器
と、nビット長の乗数に対し2ビットの0拡張を行う0
拡張器と、nビット長の加算値に対し1ビットの符号拡
張を行う符号拡張器と、前記0拡張器の出力を切出し開
始位置を最上位ビットから2ビットずつ下位ビットに移
動しながら3ビット単位で切り出した値と前記ビット幅
拡張器の出力とを第1の部分積生成器〜第(k−1)の
部分積生成器および第kの部分積生成器に供給して第1
の部分積〜第(k−1)の部分積および第kの部分積を
生成するブースのデコーダと、符号なし演算時には前記
ブースのデコーダによって生成された第kの部分積を選
択し、符号付き演算時には前記符号拡張器の出力を選択
するセレクタと、前記ブースのデコーダによって生成さ
れた第1の部分積〜第(k−1)の部分積と前記セレク
タの出力とを加算するk入力加算器ツリーとを有する。
【0045】
【作用】本発明の積和演算器では、ビット幅拡張器がn
ビット長の被乗数に対し符号なし演算時には1ビットの
0拡張を行い符号付き演算時には1ビットの符号拡張を
行い、0拡張器がnビット長の乗数に対し2ビットの0
拡張を行い、符号拡張器がnビット長の加算値に対し1
ビットの符号拡張を行い、ブースのデコーダが0拡張器
の出力を切出し開始位置を最上位ビットから2ビットず
つ下位ビットに移動しながら3ビット単位で切り出した
値とビット幅拡張器の出力とを第1の部分積生成器〜第
(k−1)の部分積生成器および第kの部分積生成器に
供給して第1の部分積〜第(k−1)の部分積および第
kの部分積を生成し、セレクタが符号なし演算時にはブ
ースのデコーダによって生成された第kの部分積を選択
し符号付き演算時には符号拡張器の出力を選択し、k入
力加算器ツリーがブースのデコーダによって生成された
第1の部分積〜第(k−1)の部分積とセレクタの出力
とを加算する。
【0046】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0047】図1は、本発明の積和演算器の一実施例の
構成を示すブロック図である。
【0048】本実施例の積和演算器は、nビット長の被
乗数Xを入力するビット幅拡張器1と、nビット長の乗
数Yを入力する0拡張器2と、nビット長の加算値Zを
入力する符号拡張器3と、ブースのデコーダ4と、セレ
クタ5と、結果Rを出力するk入力加算器ツリー6とを
含んで構成されている。なお、先にも述べたように、n
は正の偶数であり、例えば16(請求項4参照)や32
(請求項5参照)という値が考えられる(他に、n=6
4も一般的である)。
【0049】ブースのデコーダ4は、第1の部分積生成
器〜第kの部分積生成器を含んで構成されている。
【0050】図2は、本実施例の積和演算器におけるk
入力加算器ツリー6に入力される第1の部分積〜第kの
部分積および符号拡張器3の出力のビット開始位置およ
びビット長を示す図である。
【0051】次に、このように構成された本実施例の積
和演算器の動作について説明する。
【0052】第1に、符号なし乗算実行時の動作を説明
する。
【0053】本実施例の積和演算器は、符号なし乗算実
行時には、符号なしnビット長の被乗数Xと符号なしn
ビット長の乗数Yとを入力し、結果R(XとYとの乗算
結果)を出力する。
【0054】ビット幅拡張器1は、被乗数Xを入力し、
符号切替えビット(符号付き演算を行うか符号なし演算
を行うかを示す1ビット長の情報。この場合には符号な
し演算を行う旨を示している)を参照して被乗数Xに対
して1ビットの0拡張を行い、その出力をブースのデコ
ーダ4に送る。
【0055】0拡張器2は、乗数Yを入力し、乗数Yに
対して2ビットの0拡張を行い、その出力をブースのデ
コーダ4に送る。
【0056】ブースのデコーダ4は、0拡張器2の出力
の最上位ビットから切出し開始位置を2ビットずつ下位
ビットに移動しながら、3ビット長のビット列を切り出
す。このビット列の切出しは、式(1)でm=n+2と
したときに式(3)によってYi ′を求めるために必要
な3つのビット(y′(2i+1),y′2i,およびy′(2
i-1))を切り出して第iの部分積生成器(先述のように
iは0≦i<mを満たす整数であるが、ここでは0≦i
<kとなる)に供給するために行われる。
【0057】ここで、nが偶数であるから、mもまた偶
数である。また、ブースのデコーダ4によって生成され
る部分積の個数のkは、式(1)でm=n+2としたと
きのjの値に等しい。すなわち、kは以下の式(10)
に示すような値になる。 k=[(n+2)/2+0.5] (10)
【0058】ブースのデコーダ4内の第1の部分積生成
器〜第kの部分積生成器は、0拡張器2の出力から切り
出された3ビット長のビット列と、ビット幅拡張器1の
出力とを参照し、式(1)でm=n+2としたときに式
(9)で表される部分積Pi′(i=0〜(k−1))
を生成する。この部分積は、式(3)で分かるように、
ビット幅拡張器1の出力を−2,−1,0,1,または
2倍した値となる。
【0059】なお、ブースのデコーダ4は、符号なし演
算時であっても、ビット幅拡張器1の出力および0拡張
器2の出力を符号付き数として扱って処理を行う。
【0060】セレクタ5は、符号なし演算を行う旨を示
す符号切替えビットを参照し、第kの部分積(第kの部
分積生成器の出力)と符号拡張器3の出力とのうちから
第kの部分積を選択して出力する。
【0061】k入力加算器ツリー6は、第1の部分積〜
第(k−1)の部分積(第1の部分積生成器〜第(k−
1)の部分積生成器の出力)およびセレクタ5の出力
(第kの部分積生成器の出力)を加算し、結果Rとして
被乗数Xと乗数Yとを符号なし乗算した値を出力する。
【0062】第2に、符号付き固定小数点積和演算実行
時の動作を説明する。
【0063】本実施例の積和演算器は、符号付き固定小
数点積和演算実行時には、符号付きnビット長の被乗数
Xと符号付きnビット長の乗数Yとを入力し、XとYと
の符号付き乗算を行い2nビット長の途中結果を得て、
その途中結果の上位側nビットに符号付きnビット長の
加算値Zを加算して(2n+1)ビット長の結果Rを出
力する。なお、上述の「途中結果」は説明の便宜上用い
たものであり、この「途中結果」に該当する値が演算の
途中で実際に生成されるわけではない。
【0064】ビット幅拡張器1は、被乗数Xを入力し、
符号付き演算を行う旨を示す符号切替えビットを参照し
て被乗数Xに対して1ビットの符号拡張を行い、その出
力をブースのデコーダ4に送る。
【0065】0拡張器2は、乗数Yを入力し、乗数Yに
対して2ビットの0拡張を行い、その出力をブースのデ
コーダ4に送る。このような0拡張は、符号なし乗算実
行時との処理の整合性のために行われるものである(後
述するように、0拡張された最上位2ビットは当該積和
演算においては使用されない)。このように、0拡張器
2は、符号なし乗算実行時と符号付き固定小数点積和演
算実行時とで同一の処理を行う。
【0066】ブースのデコーダ4は、0拡張器2の出力
((n+2)ビット長の出力)の最上位2ビットを切り
捨て、第(n−1)ビットから切出し開始位置を2ビッ
トずつ下位ビットに移動しながら、3ビット長のビット
列を切り出す。このビット列の切出しは、式(1)でm
=nとしたときに式(3)によってYi ′を求めるため
に必要な3つのビット(y′(2i+1),y′2i,および
y′(2i-1))を切り出して第iの部分積生成器(先述の
ようにiは0≦i<mを満たす整数であるが、ここでは
0≦i<(k−1)となる)に供給するために行われ
る。すなわち、符号付き固定小数点積和演算実行時に
は、ブースのデコーダ4によって生成される部分積の個
数は(k−1)個であり、この(k−1)は式(1)で
m=nとしたときのjの値に等しい。
【0067】ブースのデコーダ4内の第1の部分積生成
器〜第(k−1)の部分積生成器は、0拡張器2の出力
から切り出された3ビット長のビット列と、ビット幅拡
張器1の出力とを参照し、式(1)でm=nとしたとき
に式(9)で表される部分積Pi ′(i=0〜(k−
2))を生成する。
【0068】なお、符号なし乗算実行時との整合性をと
るために、0拡張器2の出力の最上位2ビットを切り捨
てることなく、第kの部分積生成器によって第kの部分
積を生成することも可能である。しかし、この場合に
も、後述のように、この第kの部分積は当該積和演算で
使用されることはない。
【0069】一方、符号拡張器3は、加算値Zに対する
1ビットの符号拡張を行う。
【0070】セレクタ5は、符号付き演算を行う旨を示
す符号切替えビットを参照し、第kの部分積と符号拡張
器3の出力(符号拡張器3によって符号拡張された加算
値Z)のうちから符号拡張器3の出力を選択して出力す
る。
【0071】k入力加算器ツリー6は、第1の部分積〜
第(k−1)の部分積(第1の部分積生成器〜第(k−
1)の部分積生成器の出力)およびセレクタ5の出力
(符号拡張された加算値Z)を加算し、結果Rとして被
乗数Xと乗数Yとを符号付き乗算して加算値Zを加算し
た値を出力する。
【0072】なお、符号付き乗算実行時(符号付きnビ
ット長の被乗数Xと符号付きnビット長の乗数Yとの乗
算の実行時)には、加算値Zとして0が入力された上で
(加算値ZがZ=0と設定されて)、上述の符号付き固
定小数点積和演算実行時の動作が行われ、その符号付き
乗算が実現される(これにより、被乗数Xと乗数Yとの
間の符号付き乗算結果である結果Rが得られる)。
【0073】次に、図2を参照して、本実施例の積和演
算器の効果について説明する。
【0074】図2は、k入力加算器ツリー6に入力され
る部分積(第1の部分積〜第(k−1)の部分積および
第kの部分積)と符号拡張器3の出力(符号拡張器3に
よって符号拡張された加算値Z)のビット開始位置およ
びビット長を示す図である。
【0075】図2に示すように、本実施例の積和演算器
では、結果Rを求めるために、符号なし乗算実行時には
第1の部分積〜第kの部分積の合計k個の値を加算すれ
ばよい。また、符号付き固定小数点積和演算実行時(符
号付き乗算実行時を含む)にも、第1の部分積〜第(k
−1)の部分積および符号拡張器3の出力の合計k個の
値を加算すればよい。したがって、加算器ツリーの入力
数としてはk入力で充分であること(k入力加算器ツリ
ー6で加算器ツリーを構成すればよいこと)が分かる。
【0076】このことを、図3に示す従来の積和演算器
と比較して説明すると、以下のようになる。
【0077】図3に示す従来の積和演算器は、符号なし
演算時に符号なし乗数Yに対して1ビットの0拡張を施
して符号付き乗数に変換して部分積を生成していた。こ
れに対して、本実施例、ひいては本発明の積和演算器
は、符号なし乗数Yに対して2ビットの0拡張を施して
符号付き乗数に変換して部分積を生成している。このよ
うな「2ビットの0拡張」の結果として、部分積を求め
るために式(6)ではなく式(3)が使われることにな
り、符号付き演算時に0ビット拡張器2の出力の最上位
2ビットを使用する必要がなくなる。すなわち、符号付
き演算時には、第kの部分積が不要になる。本実施例の
積和演算器では、このように符号付き演算時に第kの部
分積が不要になるので、符号付き乗数を扱うときの部分
積の個数を1減らすことができ、加算器ツリーの簡素化
および高速化(演算の遅延の減少)を実現することがで
きる。
【0078】また、図2に示すように、符号なし乗算実
行時に加算される第kの部分積と、符号付き固定小数点
積和演算実行時に加算される加算値Z(符号拡張器3で
1ビットの符号拡張が施された加算値Z)のビット開始
位置およびビット長は完全に同一であり(共に、第nビ
ット目から始まって(n+1)ビット長である)、(n
+1)ビット長のセレクタ5を1個用意するだけで両者
を容易に切り替えることができる。すなわち、本実施
例、ひいては本発明の考え方によれば、既存の乗算器と
比較して、ごくわずかなハードウェア量の増加で、積和
演算器を実現することができる。
【0079】
【発明の効果】以上説明したように本発明は、0拡張器
によって乗数に対する2ビットの0拡張を施し、式
(6)ではなく式(3)の考え方を使用して部分積の生
成を行うこと等により、加算器ツリーの入力数を削減す
ることができ、加算器ツリーの構造の簡素化および加算
器ツリーにおける演算の遅延の減少が可能となり、従来
の積和演算器(図3参照)よりも少ないハードウェア量
ですみ、かつ従来の積和演算器よりも高速に動作する積
和演算器を実現することができるという効果を有する。
【0080】例えば、n=16の場合には、従来の積和
演算器では10入力加算器ツリーが必要であったの対
し、本発明の積和演算器では9入力加算器ツリーを使用
して構成することができる。これによって、「ワラスの
方法」で加算器ツリーを構成する場合に、従来の積和演
算器では5段のCSAと1個のキャリ伝播加算器とが必
要であったのに対し、4段のCSAと1個のキャリ伝播
加算器とで構成できるようになる(図4参照)。すなわ
ち、CSAの段数を1段減らせるため、従来よりもハー
ドウェア量を減らしながら、従来よりも演算時間を短縮
することができる(n≠16の場合、例えばn=32の
場合には、加算器ツリーの入力数の減少がCSAの段数
の減少に結びつかないときがあるが、CSAの段数の減
少の如何にかかわらず加算器ツリーの入力数の減少は上
述の効果の起因となり得る)。
【図面の簡単な説明】
【図1】本発明の積和演算器の一実施例の構成を示すブ
ロック図である。
【図2】図1中のk入力加算器ツリーに入力される第1
の部分積〜第kの部分積および符号拡張器の出力のビッ
ト開始位置およびビット長を示す図である。
【図3】従来の積和演算器の一例の構成を示すブロック
図である。
【図4】「ワラスの方法」で加算器ツリーを構成する場
合の加算器ツリーの入力数と当該加算器ツリーにおける
CSAの段数との関係を示す図である。
【符号の説明】
1 ビット幅拡張器 2 0拡張器 3 符号拡張器 4 ブースのデコーダ 5 セレクタ 6 k入力加算器ツリー R 結果 X 被乗数 Y 乗数 Z 加算値

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 nビット長の2進数に関する符号付き乗
    算機能,符号なし乗算機能,および符号付き固定小数点
    積和演算機能を持つ積和演算器において、 nビット長の被乗数に対し、符号なし演算時には1ビッ
    トの0拡張を行い、符号付き演算時には1ビットの符号
    拡張を行うビット幅拡張器と、 nビット長の乗数に対し2ビットの0拡張を行う0拡張
    器と、 nビット長の加算値に対し1ビットの符号拡張を行う符
    号拡張器と、 前記0拡張器の出力を切出し開始位置を最上位ビットか
    ら2ビットずつ下位ビットに移動しながら3ビット単位
    で切り出した値と前記ビット幅拡張器の出力とを第1の
    部分積生成器〜第(k−1)の部分積生成器および第k
    の部分積生成器に供給して第1の部分積〜第(k−1)
    の部分積および第kの部分積を生成するブースのデコー
    ダと、 符号なし演算時には前記ブースのデコーダによって生成
    された第kの部分積を選択し、符号付き演算時には前記
    符号拡張器の出力を選択するセレクタと、 前記ブースのデコーダによって生成された第1の部分積
    〜第(k−1)の部分積と前記セレクタの出力とを加算
    するk入力加算器ツリーとを有することを特徴とする積
    和演算器。
  2. 【請求項2】 符号付き演算時には0拡張器の出力の最
    上位2ビットを切り捨てるブースのデコーダを有するこ
    とを特徴とする請求項1記載の積和演算器。
  3. 【請求項3】 符号付き演算を行うか符号なし演算を行
    うかを示す符号切替えビットをビット幅拡張器およびセ
    レクタに与えることを特徴とする請求項1または請求項
    2記載の積和演算器。
  4. 【請求項4】 n=16であることを特徴とする請求項
    1,請求項2または請求項3記載の積和演算器。
  5. 【請求項5】 n=32であることを特徴とする請求項
    1,請求項2または請求項3記載の積和演算器。
JP7131048A 1995-05-01 1995-05-01 積和演算器 Expired - Fee Related JP2705640B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7131048A JP2705640B2 (ja) 1995-05-01 1995-05-01 積和演算器
US08/640,701 US5784305A (en) 1995-05-01 1996-05-01 Multiply-adder unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7131048A JP2705640B2 (ja) 1995-05-01 1995-05-01 積和演算器

Publications (2)

Publication Number Publication Date
JPH08305550A JPH08305550A (ja) 1996-11-22
JP2705640B2 true JP2705640B2 (ja) 1998-01-28

Family

ID=15048799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7131048A Expired - Fee Related JP2705640B2 (ja) 1995-05-01 1995-05-01 積和演算器

Country Status (1)

Country Link
JP (1) JP2705640B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233597B1 (en) * 1997-07-09 2001-05-15 Matsushita Electric Industrial Co., Ltd. Computing apparatus for double-precision multiplication

Also Published As

Publication number Publication date
JPH08305550A (ja) 1996-11-22

Similar Documents

Publication Publication Date Title
EP1576493B1 (en) Method, device and system for performing calculation operations
US5815422A (en) Computer-implemented multiplication with shifting of pattern-product partials
EP0613082B1 (en) 4:2 adder and multiplier circuit employing the same
US6609143B1 (en) Method and apparatus for arithmetic operation
US5784305A (en) Multiply-adder unit
TWI263402B (en) Reconfigurable fir filter
JP3139466B2 (ja) 乗算器及び積和演算器
US5343417A (en) Fast multiplier
JPH07271556A (ja) 電子乗算および加算装置および方法
Raju et al. Design and performance analysis of multipliers using Kogge Stone Adder
JP3297683B2 (ja) 乗算器
CN113608718A (zh) 一种实现素数域大整数模乘计算加速的方法
TW202319909A (zh) 用於將輸入集相乘之硬體電路及方法,以及非暫時性機器可讀儲存裝置
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JP3660075B2 (ja) 除算装置
JP2705640B2 (ja) 積和演算器
US6772186B1 (en) Multimedia multiply-adder
JP3526135B2 (ja) ディジタル信号処理装置
JP2765516B2 (ja) 積和演算器
JP3252954B2 (ja) 乗算方法および乗算回路
Tamilselvan et al. An efficient MAC design for image processing application
EP1504338A1 (en) "emod" a fast modulus calculation for computer systems
Saleh et al. Novel serial–parallel multipliers
JP3190826B2 (ja) 積和演算装置
JP2606326B2 (ja) 乗算器

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20111009

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20131009

Year of fee payment: 16

LAPS Cancellation because of no payment of annual fees