JP3532338B2 - 乗算装置 - Google Patents
乗算装置Info
- Publication number
- JP3532338B2 JP3532338B2 JP04011196A JP4011196A JP3532338B2 JP 3532338 B2 JP3532338 B2 JP 3532338B2 JP 04011196 A JP04011196 A JP 04011196A JP 4011196 A JP4011196 A JP 4011196A JP 3532338 B2 JP3532338 B2 JP 3532338B2
- Authority
- JP
- Japan
- Prior art keywords
- adder
- order
- partial product
- carry
- adders
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Image Generation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
し、特にワレス・ツリーを用いた乗算装置に関するもの
である。
行われる演算の一つであり、高速の計算システムを構成
する際、乗算速度を向上させることは必須である。この
ような高速の乗算を実現するための手法として、乗数を
修正して、部分積の総数を低減するブースのアルゴリズ
ムが良く知られている。また、部分積を樹木状に加算し
て更に部分積の総数を順次低減する、ワレス・ツリーを
用いた乗算装置も良く知られている。
の構成を示すブロック図である。かかる構成は例えば特
開平3−177922号において記載されている。被乗
数101及び乗数102は例えばいずれも16ビットで
構成される。ブース・エンコーダ103は乗数102を
修正した乗数(ここでは「修正乗数」と仮称する)を出
力する。
用いて修正乗数を求めれば部分積の総数を原初的にn分
の1に低減することができる。ここで「原初的」とは、
被乗数と修正乗数の1ビットとの演算によって得られる
部分積の総数に関することを意味し、かかる部分積を第
0次部分積と仮称する。
第0次部分積に要する回路規模が大きくなり、またこれ
にともなって第0次部分積の生成に要する時間も大きく
なるので、通常は2次のブースのアルゴリズムが多用さ
れる。図19に示された例でも2次のブースのアルゴリ
ズムが採用され、16ビットの1/2に相当する8ビッ
ト分の修正乗数を出力するブースエンコード素子45〜
52が、ブース・エンコーダ103において設けられて
いる。
04〜111は修正乗数であるとともに、シフタ/イン
バータ113〜120のそれぞれの制御信号でもある。
2次のブースのアルゴリズムにおいては修正乗数が1の
場合には被乗数をそのままにして、2の場合には1ビッ
トシフトさせ、更に修正乗数が負数である場合には反転
させることにより演算が行われる。よって、シフタ/イ
ンバータ113〜120はそれぞれ出力104〜111
に基づいて、被乗数101をそのままにして、或いは1
ビットシフトし、又はそれらを更に反転することにより
第0次部分積121〜128が生成される。
に位が高くなって行くので、その出力104〜111に
よって制御されるシフタ/インバータ113〜120に
よって生成される第0次部分積121〜128もこの順
に位が高い。そして2次のブースのアルゴリズムが採用
されているので、修正乗数において位が1ビット高いほ
ど、第0次部分積においては位が2ビット高くなる。
リー部129に入力し、樹木状に足し合わされて第1次
部分積、第2次部分積、…が生成される。部分積の次数
が高まるほど、その数は低減していく。
模式的に例示するブロック図である。「模式的」とした
のは、部分積同士のビットを整合させる様子が示されて
いないためである。ワレス・ツリー部129は第1次加
算器138,139及び第2次加算器140を有してい
る。第1次加算器138には4つの第0次部分積121
〜124が与えられ、一対(つまり総数としては2つ)
の第1次部分積141を生成する。また第1次加算器1
39には4つの第0次部分積125〜128が与えら
れ、一対の第1次部分積142を生成する。更に第2次
加算器140には2対(つまり総数としては4つ)の第
1次部分積141,142が与えられ、一対の最終部分
積(第2次部分積でもある)130を生成する。
する回路図である。4入力(キャリー・イン付き)2出
力(キャリー・アウト付き)の加算素子P0101〜P01n
が順次直列に接続されている。これらの加算素子P0101
〜P01nはいずれもキャリー・イン端子CIと、部分積
121〜124のそれぞれの1ビットを受ける入力端子
I1〜I4と、キャリー・イン端子CIと入力端子I1
〜I4とに与えられた合計5ビットの加算結果の下位ビ
ットを出力するサム端子Sと、いずれも同位の上位ビッ
トを出力するキャリー端子C及びキャリー・アウト端子
COとを備えている(CI+I1+I2+I3+I4=
C×2+CO×2+S)。そして、加算素子P01iのキ
ャリー・アウト端子COは加算素子P01(i+1)のキャリ
ー・イン端子CIに接続されている(1≦i≦n−
1)。
0も同様にして構成されているが、後述するように、第
1次加算器138,139ではn=23に、第2次加算
器140ではn=32あるいは24に設定される。
例示する回路図である。このような論理ゲートの組み合
わせによって上記動作を行う加算素子を実現することが
でき、キャリー・イン端子CIからの出力はキャリー・
アウト端子COからの出力には影響を与えない。
1において加算され、乗算結果74が得られる。最終加
算部131はその動作を高速に行うため、キャリー・ル
ック・アヘッド方式が多用される。
に示された従来の乗算装置の構成の内、シフタ/インバ
ータ113〜120と、第1次加算器138,139及
び第2次加算器140との接続関係のみを詳細に示した
回路図である。図23は仮想線Q4Q4によって図25
と、仮想線Q5Q5によって図24と、それぞれ連続す
る。また図26は仮想線Q6Q6によって図24と、仮
想線Q7Q7によって図25と、それぞれ連続する。
に、その構成要素である第1次加算器138,139及
び第2次加算器140が、シフタ/インバータ113〜
120と混在して配置される。
乗数101が16ビットであり、これを1ビット左へシ
フトする場合をも想定して17ビットのシフト/インバ
ート素子によって構成されている。例えばシフタ/イン
バータ113は最下位ビットから最上位ビットへ向かう
順にシフト/インバート素子B0101〜B0117を行方向に
並べて備えている。同様にして、シフタ/インバータ1
14〜120はそれぞれシフト/インバート素子B0201
〜B0217,B0301〜B0317,B0401〜B0417,B0501〜
B0517,B0601〜B0617,B0701〜B0717,B0801〜B
0817を備えている。
0123を備えている。4個の第0次部分積113〜116
は順次2ビットずつ位が異なるので、加算素子の数は1
7+(4−1)×2=23<個>となる。同様にして、
第1次加算器139は加算素子P0201〜P0223を備えて
いる。
分積の内の最下位のビットと、第1次加算器139に与
えられる第0次部分積の内の最下位のビットとは4×2
=8<ビット>異なるので、両者の出力である一対の第
1次部分積を受ける第2次加算器140は、23+8=
31<個>の加算素子P0301〜P0331に加え、第1次加
算器139の最上位ビットのキャリー端子Cの出力を受
ける加算素子P0332をも備えている。
数ビットを一括する配線であることを示し、その傍らに
付された数字はそのビット総数を示している。但し、ビ
ット総数が2である場合には特に数字を付してはいな
い。
0次部分積121は1ビットずつ加算素子P0101〜P
0117に与えられる。同様にして、第0次部分積122〜
128はそれぞれ加算素子P0103〜P0119,P0105〜P
0121,P0107〜P0123,P0201〜P0217,P0203〜P
0219,P0205〜P0221,P0207〜P0223に与えられる。
0101〜P0123のサム端子Sから得られるものは、それぞ
れ第2次加算器140の加算素子P0301〜P0323に与え
られる。そして各加算要素P0101〜P0123のキャリー端
子Cから得られるものは、それぞれ第2次加算器140
の加算素子P0302〜P0324に与えられる。各加算要素に
おいて、キャリー端子Cから得られるものは、サム端子
Sから得られるものよりも1ビット上位のものだからで
ある。
各加算要素P0201〜P0223のサム端子Sから得られるも
のは、それぞれ第2次加算器140の加算素子P0309〜
P0331に与えられる。そして各加算要素P0201〜P0223
のキャリー端子Cから得られるものは、それぞれ第2次
加算器140の加算素子P0310〜P0332に与えられる。
なるこのような配列は、相互間に信号を伝達する配線が
煩雑となることを回避するため、1ビット分の回路の幅
を等しく採る。従って、ワレス・ツリーによる加算が進
むにつれ(つまり加算器の次数が増大するにつれ)、加
算器の配置に必要な行方向の幅は増大する。図23乃至
図26で示された例に即して言えば、第2次加算器14
0の幅は第1次加算器138,139のそれよりも広
い。
に、2つの手法が採られる。第1には加算素子P0301〜
P0308の省略である。これらの各々は、加算素子P0101
〜P0108から2つ以下の入力しか与えられず、従って加
算素子P0301〜P0308はそれらにそれぞれ入力する値を
そのまま出力するに過ぎない為に省略可能である。
タ/インバータ113〜120と加算器138〜140
の左端を揃えて配置した様子を模式的に示すブロック図
である。これらの間の信号の伝達関係は図23乃至図2
6と同一であるので、煩雑を避けるために簡略化して示
している。但し加算素子P 0301 〜P0308は省略されてお
り、第2次加算器140の幅は加算器138,139の
それよりも1ビット分だけ広い。
列の整頓を行っても、乗算装置の配置に必要な領域の幅
は第1次加算器138,139及び第2次加算器140
の幅(23〜24ビット分)でほぼ決定してしまう。シ
フタ/インバータ113〜120が要求する幅は17ビ
ット分であり、6〜7ビット分の幅を持つ空き領域DS
1,DS2が存在してしまい、面積の有効な利用が阻ま
れる。
増大することにともない、第0次部分積の数が多くなる
ことによって増大する。また、加算器の次数も増加して
行くことでその傾向はより顕著となる。乗算装置におい
ては全体の構成の大半をシフタ/インバータ、加算器の
配列が占めるので、乗数のビット数が増大することは、
乗算装置全体の面積を縮小して製造コストを低減するこ
とを阻害する。更に配線長が長くなってしまい、性能劣
化をも招来するおそれもある。そしてマイクロプロセッ
サが扱う情報のビット数が増大する傾向にあることは言
を待たない。
なされたものであり、乗算装置に必要な面積を縮小する
技術を提供することを目的とし、以て当該乗算装置を備
える半導体集積回路のコストダウンを招来するものであ
る。
にかかる乗算装置は、被乗数と、乗数に基づいて得られ
る複数の修正乗数とを入力し、前記複数の修正乗数のそ
れぞれに対応した第0次部分積を生成する複数の部分積
生成部と、第j(0≦j≦i−1)次部分積を特定数毎
に加算して第i(1≦i)次部分積を生成する少なくと
も一つの第i次加算器を有し、部分積の数を順次減少さ
せつつ樹木状の加算を行って一対の最終部分積を出力す
るワレス・ツリー部と、前記最終部分積を加算すること
により、前記被乗数と前記乗数との乗算結果を得る最終
加算器とを備える。そして、前記ワレス・ツリー部の前
記第i次加算器のそれぞれは、前記乗算結果の特定の桁
を境界として分離され、互いに異なる行に配置される上
位加算器と下位加算器とを有する。
請求項1記載の乗算装置であって、前記第1次加算器は
一対設けられ、一方の前記第1次加算器の前記上位加算
器は、他方の前記第1次加算器の前記上位加算器よりも
行方向に短く、他方の前記第1次加算器の前記下位加算
器は、一方の前記第1次加算器の前記下位加算器よりも
行方向に短い。そして前記一方の前記第1次加算器の前
記上位加算器と、前記他方の前記第1次加算器の前記下
位加算器とが同一の行に配置される。
請求項2記載の乗算装置であって、前記部分積生成部の
一端と、前記第i次加算器のそれぞれの一端とが同一の
列に揃って配置される。
請求項1記載の乗算装置であって、前記部分積生成部の
それぞれが、前記第1次加算器の前記上位加算器に対応
する上位部と、前記第1次加算器の前記下位加算器に対
応する下位部とに分割され、前記第1次加算器の前記上
位加算器は、いずれかの前記部分積生成部の前記下位部
と同じ行に配置され、前記第1次加算器の前記下位加算
器は、いずれかの前記部分積生成部の前記上位部と同じ
行に配置される。
請求項1記載の乗算装置であって、前記乗数に基づいて
ブースのアルゴリズムに従って前記複数の修正乗数をそ
れぞれ生成する複数のブース・エンコーダを更に備え
る。
請求項5記載の乗算装置であって、前記部分積生成部の
それぞれが、前記第1次加算器の前記上位加算器に対応
する上位部と、前記第1次加算器の前記下位加算器に対
応する下位部とに分割され、前記複数のブース・エンコ
ーダの各々は、対応する前記部分積生成部の前記上位部
と同一の行に配置される。
請求項6記載の乗算装置であって、前記複数のブース・
エンコーダは、それぞれが対応する前記部分積生成部の
前記下位部と同一の行に配置される。
請求項7記載の乗算装置であって、前記複数のブース・
エンコーダの各々は、対応する前記部分積生成部の前記
上位部及び前記下位部に挟まれて配置される。
請求項6記載の乗算装置であって、前記第1次加算器の
前記上位加算器は、いずれかの前記部分積生成部の前記
下位部と同じ行に配置され、前記第1次加算器の前記下
位加算器は、いずれかの前記部分積生成部の前記上位部
と同じ行に配置される。
は、請求項9記載の乗算装置であって、前記複数のブー
ス・エンコーダの各々は、対応する前記部分積生成部と
は異なる前記部分積生成部の前記下位部または前記第i
次加算器の前記下位加算器と、対応する前記部分積生成
部の前記上位部との間に挟まれて配置される。
は、請求項5記載の乗算装置であって、前記部分積生成
部のそれぞれが、前記第1次加算器の前記上位加算器に
対応する上位部と、前記第1次加算器の前記下位加算器
に対応する下位部とに分割され、前記部分積生成部のそ
れぞれの前記上位部及び前記下位部は異なる行に配置さ
れ、前記複数のブース・エンコーダの各々は、対応する
前記部分積生成部の前記上位部が配置される行と、対応
する前記部分積生成部の前記下位部とが配置される行と
の間の行に配置される。
は、請求項1記載の乗算装置であって、前記第1次加算
器は一対設けられ、一方の前記第1次加算器の前記下位
加算器は、他方の前記第1次加算器の前記下位加算器に
関して、他方の前記第1次加算器の前記上位加算器と反
対側に配置される。
は、請求項1記載の乗算装置であって、前記ワレス・ツ
リー部は、前記第i次加算器のそれぞれの前記下位加算
器の最上位桁からそれぞれ得られるキャリーである下位
キャリーを加算するキャリー用加算器を更に有し、前記
最終加算器は、前記一対の最終部分積の上位側である一
方と、前記キャリー用加算器の出力との加算を行う前段
加算器と、前記前段加算器の出力と、前記一対の最終部
分積の下位側である他方のうち、前記下位キャリーを除
く部分とを入力して前記乗算結果を得る後段加算器とを
有する。
は、請求項1記載の乗算装置であって、前記ワレス・ツ
リー部は、前記第i次加算器の前記下位加算器の最上位
桁からそれぞれ得られる一対のキャリーである下位キャ
リー対の一方同士を加算するキャリー用加算器を更に有
し、前記第i次加算器の前記下位加算器の前記下位キャ
リー対の他方は、それぞれ前記第i次加算器の前記上位
加算器の最下位桁のキャリー・インとして機能し、前記
最終加算器は、前記一対の最終部分積の上位側である一
方と、前記キャリー用加算器の出力との加算を行う前段
加算器と、前記前段加算器の出力と、前記一対の最終部
分積の下位側である他方のうち、前記下位キャリーを除
く部分とを入力して前記乗算結果を得る後段加算器とを
有する。
は、請求項1記載の乗算装置であって、前記第i次加算
器の前記下位加算器の前記下位キャリー対の一方は、そ
れぞれ前記第i次加算器の前記上位加算器の最下位桁の
キャリー・インとして機能し、前記第i次加算器の前記
下位加算器の前記下位キャリー対の他方は、前記第(i
+1)次加算器の前記上位加算器の最下位桁の入力とし
て機能する。
す回路図である。図2は仮想線Q1Q1において図1
と、仮想線Q2Q2において図3と、それぞれ連続して
いる。また図4は仮想線Q3Q3において図3と連続し
ている。図1乃至図4には、図23乃至図26と対応し
た要素のみが示されており、図19に示された構成のう
ち図23乃至図26で省略された部分、つまりブース・
エンコーダ103や最終加算部131は図1乃至図4に
おいても省略されている。
法的なものとの2通りに把握される。第1の把握の仕方
はワレス・ツリーを構成する加算器を特定の桁で分割し
て異なる行に配置するというものであり、第2の把握の
仕方はワレス・ツリーにおける累積的な加算を2分し、
それぞれを空間的に互いに異なる方向に向けて進めると
いうものである。
正確には乗算結果の最下位から15ビット目と16ビッ
ト目との間を境界として、上位2ビット分のシフト/イ
ンバート素子B0116〜B0117を有する上位部1と、下位
15ビット分のシフト/インバート素子B0101〜B0115
を有する下位部2との2つから構成されていると見るこ
とができる。同様にして、シフタ/インバータ114は
乗算結果の最下位から15ビット目と16ビット目との
間を境界として(シフタ/インバータ114自身の最下
位から13ビット目と14ビット目を境界として)、上
位4ビット分のシフト/インバート素子B0214〜B0217
を有する上位部3と、下位13ビット分のシフト/イン
バート素子B0201〜B0213を有する下位部4の2つから
構成されていると見ることができる。シフタ/インバー
タ115は乗算結果の最下位から15ビット目と16ビ
ット目との間を境界として(シフタ/インバータ115
自身の最下位から11ビット目と12ビット目を境界と
して)、上位6ビット分のシフト/インバート素子B
0312〜B0317を有する上位部5と、下位11ビット分の
シフト/インバート素子B0301〜B0311を有する下位部
6の2つから構成されていると見ることができる。シフ
タ/インバータ116は乗算結果の最下位から15ビッ
ト目と16ビット目との間を境界として(シフタ/イン
バータ116自身の最下位から9ビット目と10ビット
目を境界として)、上位8ビット分のシフト/インバー
ト素子B0410〜B0417を有する上位部7と、下位9ビッ
ト分のシフト/インバート素子B0401〜B0409を有する
下位部8の2つから構成されていると見ることができ
る。
果の最下位から15ビット目と16ビット目との間を境
界として(シフタ/インバータ117自身の最下位から
7ビット目と8ビット目を境界として)、上位10ビッ
ト分のシフト/インバート素子B0508〜B0517を有する
上位部9と、下位7ビット分のシフト/インバート素子
B0501〜B0507を有する下位部10の2つから構成され
ていると見ることができる。シフタ/インバータ118
は乗算結果の最下位から15ビット目と16ビット目と
の間を境界として(シフタ/インバータ118自身の最
下位から5ビット目と6ビット目を境界として)、上位
12ビット分のシフト/インバート素子B0606〜B0617
を有する上位部11と、下位5ビット分のシフト/イン
バート素子B0601〜B0605を有する下位部12の2つか
ら構成されていると見ることができる。シフタ/インバ
ータ119は乗算結果の最下位から15ビット目と16
ビット目との間を境界として(シフタ/インバータ11
9自身の最下位から3ビット目と4ビット目を境界とし
て)、上位14ビット分のシフト/インバート素子B
0704〜B0717を有する上位部13と、下位3ビット分の
シフト/インバート素子B0701〜B0703を有する下位部
14の2つから構成されていると見ることができる。シ
フタ/インバータ120は乗算結果の最下位から15ビ
ット目と16ビット目との間を境界として(シフタ/イ
ンバータ120自身の最下位から1ビット目と2ビット
目を境界として)、上位16ビット分のシフト/インバ
ート素子B0802〜B0817を有する上位部15と、下位1
ビット分のシフト/インバート素子B0801を有する下位
部16の2つから構成されていると見ることができる。
15からは第0次部分積の内の上位側の部分である、上
位部分積17,19,21,23,25,27,29,
31がそれぞれ出力される。また、下位部2,4,6,
8,10,12,14,16からは第0次部分積の内の
下位側の部分である、下位部分積18,20,22,2
4,26,28,30,32がそれぞれ出力される。上
位部分積17と下位部分積18は部分積121を、上位
部分積19と下位部分積20は部分積122を、上位部
分積21と下位部分積22は部分積123を、上位部分
積23と下位部分積24は部分積124を、上位部分積
25と下位部分積26は部分積125を、上位部分積2
7と下位部分積28は部分積126を、上位部分積29
と下位部分積30は部分積127を、上位部分積31と
下位部分積32は部分積128を、それぞれ構成する。
は乗算結果の最下位から15ビット目と16ビット目と
の間を境界として上位8ビット分の加算素子P0116〜P
0123を有する上位加算器33と、下位15ビット分の加
算素子P0101〜P0115を有する下位加算器37の2つか
ら構成されていると見ることができる。また、第1次加
算器139は乗算結果の最下位から15ビット目と16
ビット目との間を境界として(第1次加算器139自身
の7ビット目と8ビット目との間を境界として)上位1
6ビット分の加算素子P0208〜P0223を有する上位加算
器35と、下位7ビット分の加算素子P0201〜P0207を
有する下位加算器34の2つから構成されていると見る
ことができる。
正確には乗算結果の最下位から15ビット目と16ビッ
ト目との間を境界として上位17ビット分の加算素子P
0316〜P0332を有する上位加算器36と、下位15ビッ
ト分の加算素子P0301〜P0315を有する下位加算器38
の2つから構成されていると見ることができる。
1次加算器138を構成する上位加算器33及び下位加
算器37は互いに異なる行に配置されている。同様にし
て第1次加算器139を構成する上位加算器35及び下
位加算器34は互いに異なる行に配置されており、更に
第2次加算器140を構成する上位加算器36及び下位
加算器38も互いに異なる行に配置されている。従っ
て、上記のようにシフタ/インバータ113〜120、
第1次加算器138,139、及び第2次加算器140
が配列された場合には、その行方向の幅の最大値は上位
加算器36の有する17ビットを越えることがない。
て行方向の幅の低減の阻止原因となっていた第1次加算
器138,139、及び第2次加算器140を分割して
配列することにより、行方向の幅の低減を可能とする。
0次部分積の上位部分積17,19,21,23,2
5,27,29,31が図1乃至図4において下方へと
伝達され、第1次加算器138,139のそれぞれの上
位加算器33,35によってそれぞれ第1次部分積の上
位部分積39,40が得られ、更に第2次加算器140
の上位加算器36によって第2次部分積の上位部分積4
3が得られる。
0,22,24,26,28,30,32が図1乃至図
4において上方へと伝達され、第1次加算器138,1
39のそれぞれの下位加算器37,34によってそれぞ
れ第1次部分積の下位部分積42,41が得られ、更に
第2次加算器140の下位加算器38によって第2次部
分積の下位部分積44が得られる。
的な加算は、第1次加算器138,139、及び第2次
加算器140を分割して配列することにより容易に行う
ことができる。これによって上下いずれの方向に第1次
以降の部分積を取り出す必要があっても、その全体を迂
回させる必要がなく、上位ビット、または下位ビットの
みを迂回させるのみでよい。
及び第2次加算器140を分割して配列した場合でもキ
ャリー端子C及びキャリー・アウト端子COからは信号
を得ることができる。例えば下位加算器34の最上位ビ
ットに対応する加算要素P0207のキャリー端子Cからは
信号61が得られる。また加算要素P0207のキャリー・
アウト端子COからは信号62が得られる。但し図2に
おいてはこれは上位加算器33の最下位ビットに対応す
る加算要素P0116のキャリー・イン端子CIに与えられ
るので、図示されていない。下位加算器37の最上位ビ
ットに対応する加算要素P0115のキャリー端子Cからは
信号63が、キャリー・アウト端子COからは信号64
が、それぞれ得られる。また下位加算器38の最上位ビ
ットに対応する加算要素P0315のキャリー端子Cからは
信号65が、キャリー・アウト端子COからは信号66
が、それぞれ得られる。これらの信号の伝搬に関するバ
リエーションは次次節の「C.キャリーの処理」におい
て示される。
列. 図1乃至図4に示されたような配列のままでは、行方向
の幅の最大値を小さく抑制することはできるが、面積の
利用効率を高めるためには、図27に示されたように、
シフタ/インバータ113〜120、第1次加算器13
8,139及び第2次加算器140の端部をそろえて配
列することが望ましい。本節において示される各種実施
の形態では面積の有効な利用を顕著にする配列のバリエ
ーションを提供する。
ある。シフタ/インバータ113〜120、第1次加算
器138,139及び第2次加算器140の相互間の第
0次乃至第2次部分積の伝達関係は図1乃至図4に示さ
れるものと同様であるので、図面の煩雑を回避するため
に図5においては省略している。
3〜120のいずれも分割されることなく、これらの端
部を揃えてこの順に上から下へと配列されている。第1
次加算器138の上位加算器33と、第1次加算器13
9の下位加算器34とはそれぞれの一端をシフタ/イン
バータ113〜120の端部に揃えつつ、シフタ/イン
バータ116とシフタ/インバータ117との間の同一
の行に配列している。また、第1次加算器138の下位
加算器37、第2次加算器140の下位加算器38はシ
フタ/インバータ113のすぐ上にこの順に上方へと配
列されている。更に、第1次加算器139の上位加算器
35、第2次加算器140の上位加算器36はシフタ/
インバータ120のすぐ下にこの順に下方へと配列され
ている。
ぞれの最上位ビットに対応するシフト/インバート素子
B0117,B0217,B0317,B0417と、上位加算器33の
最上位ビットに対応する加算素子P0123と、上位部9,
11,13,15の最上位ビットに対応するシフト/イ
ンバート素子B0517,B0617,B0717,B0817と、上位
加算器35の最上位ビットに対応する加算素子P
0223と、上位加算器36の最上位ビットに対応する加算
素子P0332とが、この順に上から下へと同一の列(図
中、左端の列)に配列されている。
最下位ビットに対応する加算素子P0301,P0101と、下
位部2,4,6,8のそれぞれの最下位ビットに対応す
るシフト/インバート素子B0101,B0201,B0301,B
0401と、下位加算器34の最下位ビットに対応する加算
素子P0201と、下位部10,12,14,16の最下位
ビットに対応するシフト/インバート素子B0501,B
0601,B0701,B0801と、上位加算器36の最下位ビッ
トに対応する加算素子P0316とが、この順に上から下へ
と同一の列(図中、右端の列)に配列されている。
3のビット数は、その下位加算器37のビット数よりも
ビット数が少ない。また第1次加算器139のうち、下
位加算器34のビット数は、その上位加算器35のビッ
ト数よりもビット数が少ない。従って、上位加算器33
と下位加算器34とを同一の行に配置しても、その行方
向の幅は第1次加算器138,139よりも短くなる。
ンバータの上位部と下位部との境界を、乗算結果の最下
位から15ビット目と16ビット目という、乗算結果の
ほぼ中央近傍に採っている。換言すれば、シフタ/イン
バータの総てを分割できるような位置に境界を採ってい
る。このため第2次加算器140はいずれも17ビット
を越えないビット数の上位加算器36及び下位加算器3
8に分割されて配置される。
領域DS1,DS2を内部に作ることなく、有効に面積
を利用してシフタ/インバータ113〜120、第1次
加算器138,139及び第2次加算器140の配列の
集積度を高めることができる。
応する加算素子P0315及び下位加算器37の最上位ビッ
トに対応する加算素子P0115を図中の左端の列に並べて
配置することもできるし、上位加算器35の最下位ビッ
トに対応する加算素子P0208を図中の右端の列に並
べても良い。
ある。実施の形態1とは異なり、第1次加算器138の
上位加算器33と、第1次加算器139の下位加算器3
4とが互いに異なる行に配置されている。そして、同一
のシフタ/インバータを構成する上位部及び下位部も、
互いに異なる行に配置されている。更に、第2次加算器
140の下位加算器38が配置されている行、第1次加
算器138の下位加算器37が配置されている行、第1
次加算器139の上位加算器35が配置されている行、
及び第2次加算器140の上位加算器36が配置されて
いる行にも、シフタ/インバータの上位部若しくは下位
部が配置されている。
タ/インバータ113の上位部1と第2次加算器140
の下位加算器38とが、第2行目にはシフタ/インバー
タ114の上位部3と第1次加算器138の下位加算器
37とが、第3行目にはシフタ/インバータ115の上
位部5とシフタ/インバータ113の下位部2とが、第
4行目にはシフタ/インバータ116の上位部7とシフ
タ/インバータ114の下位部4とが、第5行目には第
1次加算器138の上位加算器33とシフタ/インバー
タ115の下位部6とが、第6行目にはシフタ/インバ
ータ117の上位部9とシフタ/インバータ116の下
位部8とが、第7行目にはシフタ/インバータ118の
上位部11と第1次加算器139の下位加算器34と
が、第8行目にはシフタ/インバータ119の上位部1
3とシフタ/インバータ117の下位部10とが、第9
行目にはシフタ/インバータ120の上位部15とシフ
タ/インバータ118の下位部12とが、第10行目に
は第1次加算器139の上位加算器35とシフタ/イン
バータ119の下位部14とが、第11行目には第2次
加算器140の上位加算器36とシフタ/インバータ1
20の下位部16とが、それぞれ配置されている。
るのは第3,4,8,9行であり、その幅は21ビット
分に相当する。これは実施の形態1における行方向の幅
が17ビット分であったことと比較すると、配列に必要
な領域が行方向に大きいことを示している。しかし、行
数は実施の形態1において13行必要であったのに対
し、実施の形態2においては11行必要であり、列方向
に小さな領域で配列することが可能である。
り、列方向に大きな領域を準備することができない場合
であっても、空き領域を内部に作ることなく、有効に面
積を利用してシフタ/インバータ及び加算器の配列を行
うことができる。
ある。実施の形態1において図5を用いて示された配列
に対し、ブースエンコード素子45〜52をどの様に配
置するかを示している。
9,11,13,15、下位部2,4,6,8,10,
12,14,16、上位加算器33,35,36及び下
位加算器34,37,38の構成は既に図1乃至図6に
おいて示されたものと同一であるので、これらは単なる
ビット数に応じた行方向の幅を持ったブロックとして示
されている。但し、第0次部分積の上位部分積17,1
9,21,23,25,27,29,31及び下位部分
積18,20,22,24,26,28,30,32、
第1次部分積の上位部分積39,40及び下位部分積4
1,42、並びに第2次部分積の上位部分積43及び下
位部分積44は概念的に矢印で示している。正確な第0
次乃至第2次部分積の伝達関係は図1乃至図4に示され
たものと同一である。
されている行の上位部側にブースエンコード素子45〜
52はそれぞれ配置されている。そして修正乗数たる制
御信号104〜111がそれぞれシフタ/インバータ1
13〜120に与えられている。このように本実施の形
態によれば、全ての制御信号を同一の行に配置されたシ
フタ/インバータに与えれば良いので、制御信号の配線
が単純化され、その敷設が容易となる。
ある。実施の形態1において図5を用いて示された配列
に対し、ブースエンコード素子45〜52をどの様に配
置するかを示している。
されている行にブースエンコード素子45〜52はそれ
ぞれ配置されている。但し、実施の形態3において図7
に示された構成とは異なり、シフタ/インバータの上位
部と下位部との間に挟まれて配置されている。シフタ/
インバータの上位部の行方向の幅は各シフタ/インバー
タによって異なるので、ブースエンコード素子45〜5
2は行方向にずれて配置される(同一の列には配置され
ない)。
1がブースエンコード素子45〜52の左右から出力さ
れている。つまり、ブースエンコード素子45の左側か
ら出力された制御信号104はシフタ/インバータ11
3の上位部1へ、右側から出力された制御信号104は
シフタ/インバータ113の下位部2へ、それぞれ伝達
される。同様にして、ブースエンコード素子46の左側
から出力された制御信号105はシフタ/インバータ1
14の上位部3へ、右側から出力された制御信号105
はシフタ/インバータ114の下位部4へ、ブースエン
コード素子47の左側から出力された制御信号106は
シフタ/インバータ115の上位部5へ、右側から出力
された制御信号106はシフタ/インバータ115の下
位部6へ、ブースエンコード素子48の左側から出力さ
れた制御信号107はシフタ/インバータ116の上位
部7へ、右側から出力された制御信号107はシフタ/
インバータ116の下位部8へ、ブースエンコード素子
49の左側から出力された制御信号108はシフタ/イ
ンバータ117の上位部9へ、右側から出力された制御
信号108はシフタ/インバータ117の下位部10
へ、ブースエンコード素子50の左側から出力された制
御信号109はシフタ/インバータ118の上位部11
へ、右側から出力された制御信号109はシフタ/イン
バータ118の下位部12へ、ブースエンコード素子5
1の左側から出力された制御信号110はシフタ/イン
バータ119の上位部13へ、右側から出力された制御
信号110はシフタ/インバータ119の下位部14
へ、ブースエンコード素子52の左側から出力された制
御信号111はシフタ/インバータ120の上位部15
へ、右側から出力された制御信号111はシフタ/イン
バータ120の下位部16へ、それぞれ伝達される。
形態3と同様に制御信号の配線が単純化されてその敷設
が容易となる。しかもブースエンコード素子が行方向に
ずれて配置されるので、被乗数と平行に(つまり上下方
向から)乗数が与えられる場合にもそれをブースエンコ
ード素子に伝達する配線も単純化されてその敷設が容易
となる。
ある。実施の形態2において図6を用いて示された配列
に対し、ブースエンコード素子45〜52をどの様に配
置するかを示している。
ぞれの上位部1,3,5,7,9,11,13,15が
配置されている行の左側にブースエンコード素子45〜
52がそれぞれ配置されている。かかる配置を行うと、
ブースエンコード素子は、そこから2行分だけ下に位置
する下位部に制御信号を伝達する必要があるので、かか
る伝達に要する配線を行を横切って必要となり、複雑化
する。
々数本以下なので、配線の複雑化に伴う面積の増加は小
さい。従ってこのような配置を行っても実施の形態1で
得られる効果を殆ど損なうことが無い。
である。実施の形態2において図6を用いて示された配
列に対し、ブースエンコード素子45〜52をどの様に
配置するかを示している。
ぞれの上位部1,3,5,7,9,11,13,15が
配置されている行の右側にブースエンコード素子45〜
52がそれぞれ配置されている。かかる配置を行って
も、実施の形態5と同様に、配線の複雑化に伴う面積の
増加は小さいので、実施の形態3で得られる効果を殆ど
損なうことが無い。
よりも行方向の幅の制限の方が緩い場合に実施の形態3
のように行数を抑制するような配列が行われる。よっ
て、そのような制限下で被乗数と平行に乗数が与えられ
る場合には、実施の形態4よりも、実施の形態6が望ま
しい。
である。実施の形態2において図6を用いて示された配
列に対し、ブースエンコード素子45〜52をどの様に
配置するかを示している。
同一のシフタ/インバータを構成する上位部及び下位部
が互いに2行分だけ離れた行に配置されている。そして
実施の形態7では同一のシフタ/インバータを構成する
上位部が配置された行と、下位部が配置された行との間
の行に、対応するブースエンコード素子が配置される。
タ114の上位部3と第1次加算器138の下位加算器
37との間にブースエンコード素子45が、第3行目に
はシフタ/インバータ115の上位部5とシフタ/イン
バータ113の下位部2との間にブースエンコード素子
46が、第4行目にはシフタ/インバータ116の上位
部7とシフタ/インバータ114の下位部4との間にブ
ースエンコード素子47が、第5行目には第1次加算器
138の上位加算器33とシフタ/インバータ115の
下位部6との間にブースエンコード素子48が、第7行
目にはシフタ/インバータ118の上位部11と第1次
加算器139の下位加算器34との間にブースエンコー
ド素子49が、第8行目にはシフタ/インバータ119
の上位部13とシフタ/インバータ117の下位部10
との間にブースエンコード素子50が、第9行目にはシ
フタ/インバータ120の上位部15とシフタ/インバ
ータ118の下位部12との間にブースエンコード素子
51が、第10行目には第1次加算器139の上位加算
器35とシフタ/インバータ119の下位部14との間
にブースエンコード素子52が、それぞれ配置される。
コード素子45の左側から出力される制御信号104を
シフタ/インバータ113の上位部1へ伝達する配線の
長さと、右側から出力される制御信号104をシフタ/
インバータ113の下位部2へ伝達する配線の長さと
を、ほぼ等しく設計することができる。従って、同一の
シフタ/インバータにおける動作時間のずれを抑制する
ことができる。
合における実施の形態4、実施の形態6の効果は、実施
の形態7においても発揮される。
算器34の最上位ビットに対応する加算要素P0207
のキャリー端子Cからは信号61が、加算要素P0207の
キャリー・アウト端子COからは信号62が、下位加算
器37の最上位ビットに対応する加算要素P0115のキャ
リー端子Cからは信号63が、キャリー・アウト端子C
Oからは信号64が、下位加算器38の最上位ビットに
対応する加算要素P0315のキャリー端子Cからは信号6
5が、キャリー・アウト端子COからは信号66が、そ
れぞれ得られる。
ら16ビット目において加算されるべき値を有してお
り、以下の実施の形態ではこれらの処理についてのバリ
エーションが示される。
である。実施の形態1で図2を用いて示された配列にお
いて、信号61〜64,66を加算するための(キャリ
ー加算用の)4入力2出力の加算素子70を更に設けた
構成が示されている。下位部分積44は、信号65と、
それ以外の部分である信号群44aとから構成されてい
る。
・イン端子CIに与えられていたために略記されていた
信号62は、信号61,63,64と共に加算素子70
の4入力に与えられる。また、加算素子70のキャリー
・イン端子CIには加算素子P0315のキャリー・アウト
端子COから信号66が与えられる。
キャリー端子Cからはそれぞれ信号67,68が得ら
れ、キャリー・アウト端子COから信号69が得られ
る。信号65,67はいずれも乗算結果の下から16ビ
ット目において加算されるべき値であり、信号68,6
9はいずれも乗算結果の下から17ビット目において加
算されるべき値である。つまり、乗算結果の下から16
ビット目では信号65,67と第2次部分積の上位部分
積43の最下位ビットの2つのデータとを加算する必要
があり、乗算結果の下から17ビット目では信号68,
69と第2次部分積の上位部分積43の最下位ビットよ
りも1ビットだけ上位の2つのデータとを加算する必要
がある。
ロック図である。最終加算部131は上位加算器36と
同じく17ビット分だけ図21に示されるように接続さ
れた4入力2出力加算素子で構成された前段加算器72
と、32ビット分の2入力1出力加算素子で構成された
後段加算器73とで構成されている。
積43と、信号65,67〜69を入力し、ビット毎に
一対をなす信号群71を出力する。後段加算器73は信
号群44aを下位側で、信号群71を上位側で、それぞ
れ加算処理して乗算結果74を出力する。
算器73にはビット毎に一対の入力しか与えられず(換
言すれば、信号群44a,71はどのビットに於いても
互いに重なるということがないので)、これをキャリー
・ルック・アヘッド方式などにより容易に実現すること
ができる。しかも、前段加算器72において加算処理が
実行されている際には、後段加算器73の下位側(信号
群44aが入力するビット)の加算処理を並行して実行
することができるので、前段加算器72を設けたことに
よる速度劣化は生じない。このように本実施の形態によ
れば、実施の形態1の効果を損なうことなく、速度の遅
延もなく、キャリーの処理を行うことができる。
けるキャリーの処理について説明したが、他の実施の形
態2〜7に対しても同様にして適用することができる。
である。実施の形態1で図5を用いて示された配列にお
いて、信号61,63,66を加算するための(キャリ
ー加算用の)2入力(キャリー・イン端子CI付き)2
出力の加算素子75を更に設けた構成が示されている。
2が加算素子P0116のキャリー・イン端子CIに与えら
れていたが、本実施の形態においては信号64がこれに
与えられている。信号64も第1次加算器の下位加算器
のキャリーであるという点で信号62と等価であるため
である。
ー・イン端子CIに与えられている。このような信号6
2,64の与え方は、むしろ図23乃至図26で示され
た従来技術と共通した技術である。
入力に与えられ、信号66は加算素子75のキャリー・
イン端子CIに与えられている。
素子75における加算結果は多くとも1+1+1=11
であり、これを出力するには2ビットの信号があれば足
りる。つまり、加算素子75の出力するのはそれぞれ1
ビットの信号67,68のみで足り、キャリー・アウト
端子COは必要ない。従って、加算素子75の構成を加
算素子70の構成よりも簡素化することができ、また信
号69を伝達する為の配線も不要である。
ことから、これらを入れ換えることも可能である。図1
5は図14に示された構成に対して、信号62,64を
入れ換えた構成を示している。
けるキャリーの処理について説明したが、他の実施の形
態2〜7に対しても同様にして適用することができる。
個の場合について説明したが、第0次部分積の数が更に
増加してワレス・ツリーの加算段数(次数)が増加する
と、キャリーの入出力の組み合わせの自由度が増し、本
実施の形態の思想によって得られる効果は更に顕著とな
る。
図である。実施の形態1で図5を用いて示された配列に
おいて、信号61〜66の伝搬の様子を示したものであ
る。
られるキャリーの一方である信号62,64は第1次加
算器の上位加算器33,35へキャリー・インとして与
えられる(図16においては信号62が加算要素P0116
へ、信号64が加算要素P0208へ、それぞれ与えられて
いるが、これらは入れ換えても良い)。
40の上位加算器36の加算要素P0316には上位加算器
33からの(より正確には加算素子P0116のサム端子S
から出力される)1ビットと、上位加算器35からの
(より正確には加算素子P0208のサム端子Sから出力さ
れる)1ビットとの2ビットしか入力されていない。
40に属する加算要素P0316の他の入力端子であるキャ
リー・イン端子CI及び2つの入力端子に、それぞれ第
2次加算器140の下位加算器38の加算要素P0315か
ら対として得られるキャリーの一方である信号66と、
第1次加算器に属する加算要素P0115,P0207から対と
して得られるキャリーの他方である信号63,61を与
える様子が示されている。
搬させることにより、キャリー加算用の加算要素を別途
設ける必要はなく、ハードウェア量を削減することがで
きる。
38の加算要素P0315から対として得られるキャリーの
他方である信号65は、第2次部分積の下位部分積44
の中で最上位ビットに対応するので、後段加算器73の
うちの信号65に対応するビット(即ち第2次部分積の
下位部分積43の最下位ビット)におけるキャリー・イ
ンとして、後段加算器73に与えることができる。従っ
て、最終加算器131において前段加算器72をも省略
することができ、一層、ハードウェア量を削減すること
ができる。
ャリーの処理について説明したが、勿論、他の実施の形
態2〜7に対しても同様にして適用することができる。
次加算器を4入力2出力の加算素子で構成した場合につ
いて説明してきたが、3入力2出力の加算素子で構成す
ることもできる。
2次加算器134,135、第3次加算器136、第4
次加算器137によってワレス・ツリー部129を構成
した場合を例示するブロック図である。
1〜123が、第1次加算器133には第0次部分積1
24〜126が、第2次加算器134には第1次加算器
132の出力及び第1次加算器133の出力の上位側
(これらはいずれも第1次部分積である)が、第2次加
算器135には第1次加算器133の出力の下位側(こ
れは第1次部分積である)及び第0次部分積127,1
28が、第3次加算器136には第2次加算器134の
出力及び第2次加算器135の出力の上位側(これらは
いずれも第2次部分積である)が、第4次加算器137
には第3次加算器136の出力(これは第3次部分積で
ある)及び第2次加算器135の出力の下位側(これは
第2次部分積である)が、それぞれ与えられる。そして
第4次加算器137は最終部分積130を出力する。
算段数(次数)が多くなっても本発明を適用することが
できる。図18は3入力2出力の加算素子でワレス・ツ
リーを構成した場合の部分積の伝搬を示すブロック図で
ある。
1は上位部1,3,5から第0次部分積として出力され
る信号を加算し、第1次部分積として出力される2つの
出力を両方とも第2次加算器の一部である上位加算器2
05へ与える。また、第1次加算器の一部である上位加
算器202は上位部7,9,11から第0次部分積とし
て出力される信号を加算し、第1次部分積として出力さ
れる2つの出力の一方を上位加算器205へ与える。
位部13,15から第0次部分積として出力される信号
と共に、第2次加算器の一部である上位加算器206に
与えられる。上位加算器206から第2次部分積として
出力される2つの出力の一方は、第2次部分積として上
位加算器205から出力される信号と共に第3次加算器
の一部である上位加算器207に与えられる。上位加算
器207は第3次部分積として出力される2つの出力を
両方とも第4次加算器の一部である上位加算器208に
与える。上位加算器208には、上位加算器206から
第2次部分積として出力される2つの出力の他方も与え
られ、上位加算器208は第4次部分積として機能する
信号を出力する。
3は下位部12,14,16から第0次部分積として出
力される信号を加算し、第1次部分積として出力される
2つの出力を両方とも第2次加算器の一部である下位加
算器209へ与える。また、第1次加算器の一部である
下位加算器204は下位部6,8,10から第0次部分
積として出力される信号を加算し、第1次部分積として
出力される2つの出力の一方を下位加算器209へ与え
る。
位部2,4から第0次部分積として出力される信号と共
に、第2次加算器の一部である下位加算器210に与え
られる。下位加算器210から第2次部分積として出力
される2つの出力の一方は、第2次部分積として下位加
算器209から出力される信号と共に第3次加算器の一
部である下位加算器211に与えられる。下位加算器2
11は第3次部分積として出力される2つの出力を両方
とも第4次加算器の一部である下位加算器212に与え
る。下位加算器212には、下位加算器210から第2
次部分積として出力される2つの出力の他方も与えら
れ、下位加算器212は第4次部分積として機能する信
号を出力する。
されたそれと対応しており、よって図5乃至図16に示
されたような実施の形態と同様に、各シフタ/インバー
タ、加算器を配列し、面積の有効利用を図ることができ
る。
リズムを用いた場合について説明したが、ブースのアル
ゴリズムを用いない場合に於いても適用できることは言
を待たない。
置によれば、ワレス・ツリーを採用する乗算装置におい
て、行方向に最も長い配置領域を必要とする第i次加算
器のそれぞれを上位加算器と下位加算器とに分割し、こ
れらを互いに異なる行に配置することによって、行方向
に必要な配置領域の長さを短縮することができる。
によれば、一対の第1次加算器のいずれもが最終部分積
の特定の桁を境界として分離されることにより、上位加
算器の長さ及び下位加算器の長さは第1次加算器同士で
異なる。よって短いほうの上位加算器と、短い方の下位
加算器とを同一の行に配置することにより、乗算装置全
体の行方向の寸法を短くすることができる。
によれば、空き領域を無くし、集積度を高めることがで
きる。
る乗算装置によれば、第1次加算器の上位加算器と同じ
行に配置される下位部を有する部分積生成部や、第1次
加算器の下位加算器と同じ行に配置される上位部を有す
る部分積生成部が存在するので、これらの部分積生成部
を配置する行を節約することができる。
によれば、ブースのアルゴリズムによって修正乗数の数
を乗数の桁数よりも低減できるので、部分積生成部の数
を低減することができる。
る乗算装置によれば、ブース・エンコーダを配置するた
めの行を特に設ける必要がなく、修正乗数を伝達するた
めの配線が単純化され、その敷設が容易となる。
かる乗算装置によれば、部分積生成部は第1次加算器の
上位加算器及び下位加算器にそれぞれ対応する上位部及
び下位部に分割される。第1次加算器の上位加算器と下
位加算器は最終部分積の特定の桁を以て境界とするの
で、部分積生成部の上位部及び下位部も最終部分積の特
定の桁を以て分割されることになる。よって異なる部分
積生成部の上位部の長さは互いに異なり、同一の部分積
生成部に属する上位部と下位部とに挟まれて配置される
ブース・エンコーダは、対応する部分積生成部が異なれ
ば、行方向に異なる位置を占めることになる。よって、
乗数が与えられる方向が被乗数の与えられる方向と平行
である場合に、乗数をブース・エンコーダに伝達するた
めの配線が単純化され、その敷設が容易となる。
置によれば、ブース・エンコーダから得られる修正乗数
を、対応する部分積生成部の上位部、下位部に伝達する
経路の長さを等しくして信号伝搬のズレを抑制しつつ、
この発明のうち請求項4、請求項8にかかる乗算装置の
効果を得ることができる。
置によれば、第1次部分積の上位桁と下位桁とを互いに
反対方向に導き出すことにより、いずれの方向に第1次
以降の部分積を取り出す必要があっても、その全体を迂
回させる必要がなく、上位桁、または下位桁のみを迂回
させるのみでよい。
置によれば、後段加算器には桁毎に一対の入力しか与え
られず、換言すれば前段加算器の出力と、最終部分積の
下位側のうち下位キャリーを除く部分とはどの桁に於い
ても互いに重なるということがないので、これをキャリ
ー・ルック・アヘッド方式などにより容易に実現するこ
とができる。しかも、前段加算器において加算処理が実
行されている際には、後段加算器の下位側(最終部分積
の下位側のうち下位キャリーを除く部分)の加算処理を
並行して実行することができるので、前段加算器を設け
たことによる速度劣化は生じない。よって速度の遅延も
なく、キャリーの処理を行うことができる。
置によれば、キャリー用加算器の入力及び出力の数を抑
制することができるので、構成を簡易にしつつも、この
発明のうち請求項13にかかる乗算装置の効果を得るこ
とができる。
置によれば、キャリー用加算器を別途設けること無く、
また最終部分積の上位側と下位側の桁の重なりを調整す
るための前段加算器も必要なく、ハードウェア量を低減
しつつも、この発明のうち請求項13にかかる乗算装置
の効果を得ることができる。
思想を示すブロック図である。
基本的思想を示すブロック図である。
基本的思想を示すブロック図である。
思想を示すブロック図である。
る。
る。
図である。
図である。
図である。
ク図である。
ク図である。
ク図である。
である。
ク図である。
ロック図である。
ック図である。
ック図である。
ック図である。
る。
を示すブロック図である。
来の技術を示すブロック図である。
来の技術を示すブロック図である。
を示すブロック図である。
4,6,8,10,12,14,16 下位部、17,
19,21,23,25,27,29,31,39,4
0,43 上位部分積、18,20,22,24,2
6,28,30,32,41,42,44 下位部分
積、33,35,36 上位加算器、34,37,38
下位加算器、129 ワレス・ツリー部、45〜52
ブースエンコード素子、103 ブース・エンコー
ダ、70,75 加算素子、72 前段加算器、73
後段加算器、131 最終加算器、121〜128 第
0次部分積、113〜120 シフタ/インバータ、1
38,139 第1次加算器、140 第2次加算器。
Claims (15)
- 【請求項1】 被乗数と、乗数に基づいて得られる複数
の修正乗数とを入力し、前記複数の修正乗数のそれぞれ
に対応した第0次部分積を生成する複数の部分積生成部
と、 第j(0≦j≦i−1)次部分積を特定数毎に加算して
第i(1≦i)次部分積を生成する少なくとも一つの第
i次加算器を有し、部分積の数を順次減少させつつ樹木
状の加算を行って一対の最終部分積を出力するワレス・
ツリー部と、 前記最終部分積を加算することにより、前記被乗数と前
記乗数との乗算結果を得る最終加算器とを備え、 前記ワレス・ツリー部の前記第i次加算器のそれぞれ
は、前記乗算結果の特定の桁を境界として分離され、互
いに異なる行に配置される上位加算器と下位加算器とを
有する乗算装置。 - 【請求項2】 前記第1次加算器は一対設けられ、 一方の前記第1次加算器の前記上位加算器は、他方の前
記第1次加算器の前記上位加算器よりも行方向に短く、 他方の前記第1次加算器の前記下位加算器は、一方の前
記第1次加算器の前記下位加算器よりも行方向に短く、 前記一方の前記第1次加算器の前記上位加算器と、前記
他方の前記第1次加算器の前記下位加算器とが同一の行
に配置される、請求項1記載の乗算装置。 - 【請求項3】 前記部分積生成部の一端と、前記第i次
加算器のそれぞれの一端とが同一の列に揃って配置され
る、請求項2記載の乗算装置。 - 【請求項4】 前記部分積生成部のそれぞれが、前記第
1次加算器の前記上位加算器に対応する上位部と、前記
第1次加算器の前記下位加算器に対応する下位部とに分
割され、 前記第1次加算器の前記上位加算器は、いずれかの前記
部分積生成部の前記下位部と同じ行に配置され、 前記第1次加算器の前記下位加算器は、いずれかの前記
部分積生成部の前記上位部と同じ行に配置される、請求
項1記載の乗算装置。 - 【請求項5】 前記乗数に基づいてブースのアルゴリズ
ムに従って前記複数の修正乗数をそれぞれ生成する複数
のブース・エンコーダを更に備える、請求項1記載の乗
算装置。 - 【請求項6】 前記部分積生成部のそれぞれが、前記第
1次加算器の前記上位加算器に対応する上位部と、前記
第1次加算器の前記下位加算器に対応する下位部とに分
割され、 前記複数のブース・エンコーダの各々は、対応する前記
部分積生成部の前記上位部と同一の行に配置される、請
求項5記載の乗算装置。 - 【請求項7】 前記複数のブース・エンコーダは、それ
ぞれが対応する前記部分積生成部の前記下位部と同一の
行に配置される、請求項6記載の乗算装置。 - 【請求項8】 前記複数のブース・エンコーダの各々
は、対応する前記部分積生成部の前記上位部及び前記下
位部に挟まれて配置される、請求項7記載の乗算装置。 - 【請求項9】 前記第1次加算器の前記上位加算器は、
いずれかの前記部分積生成部の前記下位部と同じ行に配
置され、 前記第1次加算器の前記下位加算器は、いずれかの前記
部分積生成部の前記上位部と同じ行に配置される、請求
項6記載の乗算装置。 - 【請求項10】 前記複数のブース・エンコーダの各々
は、対応する前記部分積生成部とは異なる前記部分積生
成部の前記下位部または前記第i次加算器の前記下位加
算器と、対応する前記部分積生成部の前記上位部との間
に挟まれて配置される、請求項9記載の乗算装置。 - 【請求項11】 前記部分積生成部のそれぞれが、前記
第1次加算器の前記上位加算器に対応する上位部と、前
記第1次加算器の前記下位加算器に対応する下位部とに
分割され、 前記部分積生成部のそれぞれの前記上位部及び前記下位
部は異なる行に配置され、 前記複数のブース・エンコーダの各々は、対応する前記
部分積生成部の前記上位部が配置される行と、対応する
前記部分積生成部の前記下位部とが配置される行との間
の行に配置される、請求項5記載の乗算装置。 - 【請求項12】 前記第1次加算器は一対設けられ、 一方の前記第1次加算器の前記下位加算器は、他方の前
記第1次加算器の前記下位加算器に関して、他方の前記
第1次加算器の前記上位加算器と反対側に配置される、
請求項1記載の乗算装置。 - 【請求項13】 前記ワレス・ツリー部は、前記第i次
加算器のそれぞれの前記下位加算器の最上位桁からそれ
ぞれ得られるキャリーである下位キャリーを加算するキ
ャリー用加算器を更に有し、 前記最終加算器は、前記一対の最終部分積の上位側であ
る一方と、前記キャリー用加算器の出力との加算を行う
前段加算器と、 前記前段加算器の出力と、前記一対の最終部分積の下位
側である他方のうち、前記下位キャリーを除く部分とを
入力して前記乗算結果を得る後段加算器とを有する、請
求項1記載の乗算装置。 - 【請求項14】 前記ワレス・ツリー部は、前記第i次
加算器の前記下位加算器の最上位桁からそれぞれ得られ
る一対のキャリーである下位キャリー対の一方同士を加
算するキャリー用加算器を更に有し、 前記第i次加算器の前記下位加算器の前記下位キャリー
対の他方は、それぞれ前記第i次加算器の前記上位加算
器の最下位桁のキャリー・インとして機能し、 前記最終加算器は、前記一対の最終部分積の上位側であ
る一方と、前記キャリー用加算器の出力との加算を行う
前段加算器と、 前記前段加算器の出力と、前記一対の最終部分積の下位
側である他方のうち、前記下位キャリーを除く部分とを
入力して前記乗算結果を得る後段加算器とを有する、請
求項1記載の乗算装置。 - 【請求項15】 前記第i次加算器の前記下位加算器の
前記下位キャリー対の一方は、それぞれ前記第i次加算
器の前記上位加算器の最下位桁のキャリー・インとして
機能し、 前記第i次加算器の前記下位加算器の前記下位キャリー
対の他方は、前記第(i+1)次加算器の前記上位加算
器の最下位桁の入力として機能する、請求項1記載の乗
算装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04011196A JP3532338B2 (ja) | 1996-02-27 | 1996-02-27 | 乗算装置 |
TW085108971A TW313653B (en) | 1996-02-27 | 1996-07-23 | The multiplication element |
US08/686,072 US5867415A (en) | 1996-02-27 | 1996-07-24 | Multiplication element including a wallace tree circuit having adders divided into high and low order adders |
KR1019960056860A KR100245944B1 (ko) | 1996-02-27 | 1996-11-23 | 승산장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04011196A JP3532338B2 (ja) | 1996-02-27 | 1996-02-27 | 乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09231056A JPH09231056A (ja) | 1997-09-05 |
JP3532338B2 true JP3532338B2 (ja) | 2004-05-31 |
Family
ID=12571752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04011196A Expired - Lifetime JP3532338B2 (ja) | 1996-02-27 | 1996-02-27 | 乗算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5867415A (ja) |
JP (1) | JP3532338B2 (ja) |
KR (1) | KR100245944B1 (ja) |
TW (1) | TW313653B (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100403938B1 (ko) * | 1999-06-10 | 2003-11-01 | 한국전자통신연구원 | 대칭키 암호용 고속 (7, 3) 덧셈기 |
US6434587B1 (en) | 1999-06-14 | 2002-08-13 | Intel Corporation | Fast 16-B early termination implementation for 32-B multiply-accumulate unit |
JP4282193B2 (ja) * | 2000-01-13 | 2009-06-17 | 株式会社ルネサステクノロジ | 乗算装置 |
US7225217B2 (en) * | 2001-10-09 | 2007-05-29 | The Regents Of The University Of California | Low-power Booth-encoded array multiplier |
US6978426B2 (en) * | 2002-04-10 | 2005-12-20 | Broadcom Corporation | Low-error fixed-width modified booth multiplier |
US7313585B2 (en) * | 2003-08-30 | 2007-12-25 | Hewlett-Packard Development Company, L.P. | Multiplier circuit |
JP2005182238A (ja) * | 2003-12-17 | 2005-07-07 | Renesas Technology Corp | 演算装置 |
US7433912B1 (en) | 2004-02-19 | 2008-10-07 | Sun Microsystems, Inc. | Multiplier structure supporting different precision multiplication operations |
JP5630870B2 (ja) * | 2011-02-18 | 2014-11-26 | ルネサスエレクトロニクス株式会社 | 半導体集積回路のレイアウト方法及びプログラム |
CN111258545B (zh) * | 2018-11-30 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940002479B1 (ko) * | 1990-03-20 | 1994-03-24 | 후지쓰 가부시끼가이샤 | 고속 디지탈 병렬승산기(multiplier) |
US5325320A (en) * | 1992-05-01 | 1994-06-28 | Seiko Epson | Area efficient multiplier for use in an integrated circuit |
US5257217A (en) * | 1992-05-01 | 1993-10-26 | Seiko Epson Corporation | Area-efficient multiplier for use in an integrated circuit |
JP2859779B2 (ja) * | 1992-06-17 | 1999-02-24 | 三菱電機株式会社 | 乗算器 |
JP3153370B2 (ja) * | 1993-01-14 | 2001-04-09 | 三菱電機株式会社 | 乗算装置 |
US5504915A (en) * | 1993-08-05 | 1996-04-02 | Hyundai Electronics America | Modified Wallace-Tree adder for high-speed binary multiplier, structure and method |
JP2600591B2 (ja) * | 1993-11-19 | 1997-04-16 | 日本電気株式会社 | 乗算器 |
-
1996
- 1996-02-27 JP JP04011196A patent/JP3532338B2/ja not_active Expired - Lifetime
- 1996-07-23 TW TW085108971A patent/TW313653B/zh not_active IP Right Cessation
- 1996-07-24 US US08/686,072 patent/US5867415A/en not_active Expired - Lifetime
- 1996-11-23 KR KR1019960056860A patent/KR100245944B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5867415A (en) | 1999-02-02 |
TW313653B (en) | 1997-08-21 |
KR100245944B1 (ko) | 2000-03-02 |
KR970062889A (ko) | 1997-09-12 |
JPH09231056A (ja) | 1997-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110264719A1 (en) | High radix digital multiplier | |
US6029187A (en) | Fast regular multiplier architecture | |
Dadda | Some schemes for parallel multipliers | |
KR940002479B1 (ko) | 고속 디지탈 병렬승산기(multiplier) | |
US4525797A (en) | N-bit carry select adder circuit having only one full adder per bit | |
JPH0215088B2 (ja) | ||
JP3532338B2 (ja) | 乗算装置 | |
US4556948A (en) | Multiplier speed improvement by skipping carry save adders | |
US6018758A (en) | Squarer with diagonal row merged into folded partial product array | |
US5185714A (en) | Arithmetic operation processing apparatus | |
US5122982A (en) | Carry generation method and apparatus | |
US5111422A (en) | Circuit arrangement for calculating product sums | |
US6065033A (en) | Wallace-tree multipliers using half and full adders | |
US20020008648A1 (en) | Apparatus and method for reducing power and noise through reduced switching by recoding in a monotonic logic device | |
US4700325A (en) | Binary tree calculations on monolithic integrated circuits | |
US6978290B2 (en) | Carry ripple adder | |
Wang et al. | A new redundant binary number to 2's-complement number converter | |
JPH0312738B2 (ja) | ||
US6125379A (en) | Parallel VLSI shift switch logic devices | |
Ragunath et al. | Delay optimized binary to BCD converter for multi-operand parallel decimal adder | |
JPH056892B2 (ja) | ||
US20050044125A1 (en) | 4-2 Compressor | |
US5944777A (en) | Method and apparatus for generating carries in an adder circuit | |
KR970005175A (ko) | 파이프라인 구조에 근거한 곱셈/나눗셈 공유 처리기 구조 | |
Jaberipur et al. | Modulo-(2 q− 3) Multiplication with Fully Modular Partial Product Generation and Reduction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040130 |
|
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: 20040302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040303 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080312 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090312 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090312 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100312 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120312 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 9 |