JPH064271A - 乗算器 - Google Patents
乗算器Info
- Publication number
- JPH064271A JPH064271A JP4158255A JP15825592A JPH064271A JP H064271 A JPH064271 A JP H064271A JP 4158255 A JP4158255 A JP 4158255A JP 15825592 A JP15825592 A JP 15825592A JP H064271 A JPH064271 A JP H064271A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- multiplicand
- decoding
- circuit
- booth
- 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
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
- 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
-
- 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)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 高速で乗算をハードウェア的に実行すること
のできる乗算器を提供することを目的とする。 【構成】 乗算器は、被乗数を保持するレジスタ回路
(1a)と乗数を保持する乗数レジスタ回路(1b)
と、この乗数の所定の下位ビットを2次のブースのアル
ゴリズムに従ってデコードする2次のブースデコーダ回
路(3a)と、乗数の上位ビットを3次のブースアルゴ
リズムに従ってデコードする3次のブースデコーダ回路
とを含む。加算器アレイ(5a)における2次のブース
のアルゴリズムを利用する乗算操作と並列に3X生成回
路(6)において被乗数の3倍数が生成される。この加
算器アレイ(5a)の出力は3X生成回路の出力と共に
3次のブースのアルゴリズムに従って乗算動作を実行す
る加算器アレイ(5b)へ与えられる。3次のブースの
アルゴリズムに必要とされる被乗数の奇数倍データは2
次のブースのアルゴリズムに従う乗算動作と並列に実行
されるため、この3倍数生成に要する時間を見掛け上な
くすことができる。
のできる乗算器を提供することを目的とする。 【構成】 乗算器は、被乗数を保持するレジスタ回路
(1a)と乗数を保持する乗数レジスタ回路(1b)
と、この乗数の所定の下位ビットを2次のブースのアル
ゴリズムに従ってデコードする2次のブースデコーダ回
路(3a)と、乗数の上位ビットを3次のブースアルゴ
リズムに従ってデコードする3次のブースデコーダ回路
とを含む。加算器アレイ(5a)における2次のブース
のアルゴリズムを利用する乗算操作と並列に3X生成回
路(6)において被乗数の3倍数が生成される。この加
算器アレイ(5a)の出力は3X生成回路の出力と共に
3次のブースのアルゴリズムに従って乗算動作を実行す
る加算器アレイ(5b)へ与えられる。3次のブースの
アルゴリズムに必要とされる被乗数の奇数倍データは2
次のブースのアルゴリズムに従う乗算動作と並列に実行
されるため、この3倍数生成に要する時間を見掛け上な
くすことができる。
Description
【0001】
【産業上の利用分野】この発明は2進数表示された2数
の積をハードウェアで実行する乗算器に関する。
の積をハードウェアで実行する乗算器に関する。
【0002】
【従来の技術】多量の画像データを扱う画像処理分野お
よびコンピュータまたはCPU(中央演算処理装置)を
利用する情報処理の分野において、データを掛け合わせ
る乗算は重要な処理の1つである。乗算を必要とする処
理には、たとえばDCT(離散コサイン変換)、デジタ
ルフィルタ処理および行列演算などがある。
よびコンピュータまたはCPU(中央演算処理装置)を
利用する情報処理の分野において、データを掛け合わせ
る乗算は重要な処理の1つである。乗算を必要とする処
理には、たとえばDCT(離散コサイン変換)、デジタ
ルフィルタ処理および行列演算などがある。
【0003】このような分野においては、データは、通
常、2進数で表現される。乗算もしたがって、2進数表
示されたデータを掛け合わせることになる。
常、2進数で表現される。乗算もしたがって、2進数表
示されたデータを掛け合わせることになる。
【0004】図21は、4ビットの2進数の乗算の一例
を示す図である。図21においては2進数“1010”
と2進数“0101”の乗算が実行される。10進数の
乗算と同様のことが行なわれているだけである。2進数
表示においては、10進数と異なり、桁は、20 、
21 、22 、…と2の重みを有している。図21におい
て、点線で囲まれた中間和のことを部分積と称す。乗算
結果は、この部分積を各桁毎に加算することにより得ら
れる。
を示す図である。図21においては2進数“1010”
と2進数“0101”の乗算が実行される。10進数の
乗算と同様のことが行なわれているだけである。2進数
表示においては、10進数と異なり、桁は、20 、
21 、22 、…と2の重みを有している。図21におい
て、点線で囲まれた中間和のことを部分積と称す。乗算
結果は、この部分積を各桁毎に加算することにより得ら
れる。
【0005】図22は、4ビット2進数の乗算を実現す
る従来の並列乗算器の構成を示す図である。図22にお
いて、乗算器は、被乗数Xを保持するレジスタ回路1a
と、乗数Yを保持するレジスタ回路1bとを含む。被乗
数Xおよび乗数Yは共に4ビットデータであり、ビット
x4、x3、x2、x1およびビットy4、y3、y
2、y1をそれぞれ含む。ビットx4およびビットy4
は、データXおよびYの最上位ビットであり、ビットx
1およびy1はデータXおよびYのそれぞれの最下位ビ
ットである。レジスタ回路1aの保持するデータビット
は被乗数データ線2a上に伝達され、レジスタ回路1b
の保持するデータビットは乗数データ線2b上に伝達さ
れる。被乗数データ線2aは、データビットx4が伝達
されるデータ線2a4、データビットx3が伝達される
データ線2a3、データビットx2が伝達されるデータ
線2a2、およびデータビットx1が伝達されるデータ
線2a1を含む。
る従来の並列乗算器の構成を示す図である。図22にお
いて、乗算器は、被乗数Xを保持するレジスタ回路1a
と、乗数Yを保持するレジスタ回路1bとを含む。被乗
数Xおよび乗数Yは共に4ビットデータであり、ビット
x4、x3、x2、x1およびビットy4、y3、y
2、y1をそれぞれ含む。ビットx4およびビットy4
は、データXおよびYの最上位ビットであり、ビットx
1およびy1はデータXおよびYのそれぞれの最下位ビ
ットである。レジスタ回路1aの保持するデータビット
は被乗数データ線2a上に伝達され、レジスタ回路1b
の保持するデータビットは乗数データ線2b上に伝達さ
れる。被乗数データ線2aは、データビットx4が伝達
されるデータ線2a4、データビットx3が伝達される
データ線2a3、データビットx2が伝達されるデータ
線2a2、およびデータビットx1が伝達されるデータ
線2a1を含む。
【0006】乗数データ線2bは、データビットy1が
伝達されるデータ線2b1と、データビットy2が伝達
されるデータ線2b2と、データビットy3が伝達され
るデータ線2b3と、データビットy4が伝達されるデ
ータ線2b4を含む。
伝達されるデータ線2b1と、データビットy2が伝達
されるデータ線2b2と、データビットy3が伝達され
るデータ線2b3と、データビットy4が伝達されるデ
ータ線2b4を含む。
【0007】乗算器はさらに、被乗数データ線2aと乗
数データ線2bとの交点に対応して配置されるAND回
路AN11〜AN44を含む。図22において水平方向
に配置されるAND回路は1つの部分積を生成する。す
なわち、AND回路AN11〜AN14がデータビット
y1と被乗数Xとの積を生成する。AND回路AN21
〜AN24がデータビットy2と被乗数データXとの積
を与え、AND回路AN31〜AN34がデータビット
y3と被乗数Xとの積を与え、AND回路AN41〜A
N44がデータビットy4と被乗数Xとの積を与える。
数データ線2bとの交点に対応して配置されるAND回
路AN11〜AN44を含む。図22において水平方向
に配置されるAND回路は1つの部分積を生成する。す
なわち、AND回路AN11〜AN14がデータビット
y1と被乗数Xとの積を生成する。AND回路AN21
〜AN24がデータビットy2と被乗数データXとの積
を与え、AND回路AN31〜AN34がデータビット
y3と被乗数Xとの積を与え、AND回路AN41〜A
N44がデータビットy4と被乗数Xとの積を与える。
【0008】AND回路AN11〜AN44により生成
された部分積を加算して最終積X・Yを生成するため
に、加算回路AD11〜AD43が設けられる。AND
回路AN21〜AN23の出力をその一方入力Aに受け
る加算回路AD11、AD12およびAD13は半加算
器であり、その入力AおよびBに与えられたデータビッ
トを加算して出力Sから和データビットを出力するとと
もにキャリアウト出力COから2段目の加算回路へキャ
リ信号を出力する。AND回路AN31〜AN44の出
力をその入力Aに受ける加算回路は全加算器である。全
加算器は、入力AおよびBに与えられたデータビットと
キャリ入力CIに与えられた入力を加算し、出力Sから
和データビットを出力するとともにキャリアウト信号を
そのキャリ出力COから出力する。
された部分積を加算して最終積X・Yを生成するため
に、加算回路AD11〜AD43が設けられる。AND
回路AN21〜AN23の出力をその一方入力Aに受け
る加算回路AD11、AD12およびAD13は半加算
器であり、その入力AおよびBに与えられたデータビッ
トを加算して出力Sから和データビットを出力するとと
もにキャリアウト出力COから2段目の加算回路へキャ
リ信号を出力する。AND回路AN31〜AN44の出
力をその入力Aに受ける加算回路は全加算器である。全
加算器は、入力AおよびBに与えられたデータビットと
キャリ入力CIに与えられた入力を加算し、出力Sから
和データビットを出力するとともにキャリアウト信号を
そのキャリ出力COから出力する。
【0009】初段の加算回路AD11〜AD13はその
一方入力Aに対応のAND回路AN21〜AN23の出
力を受け、その他方入力Bに前段の部分積を生成するA
ND回路AN12〜AN14の出力を受ける。加算回路
AD11〜AD13のキャリ出力は次段の1ビット上位
の加算回路AD21〜AD23のそれぞれのキャリ入力
CIへ与えられる。加算回路AD21,AD22は対応
のAND回路AN31およびAN32の出力をその一方
入力Aに受け、その他方入力Bに、対応の加算回路AD
12およびAD13の出力を受ける。加算回路AD23
はその一方入力AにAND回路AN33の出力を受け、
その他方入力BにAND回路AN24の出力を受ける。
加算回路AD21〜AD23のキャリ出力は次段の1ビ
ット上位の加算回路AD31〜AD33のキャリ入力C
Iへ与えられる。
一方入力Aに対応のAND回路AN21〜AN23の出
力を受け、その他方入力Bに前段の部分積を生成するA
ND回路AN12〜AN14の出力を受ける。加算回路
AD11〜AD13のキャリ出力は次段の1ビット上位
の加算回路AD21〜AD23のそれぞれのキャリ入力
CIへ与えられる。加算回路AD21,AD22は対応
のAND回路AN31およびAN32の出力をその一方
入力Aに受け、その他方入力Bに、対応の加算回路AD
12およびAD13の出力を受ける。加算回路AD23
はその一方入力AにAND回路AN33の出力を受け、
その他方入力BにAND回路AN24の出力を受ける。
加算回路AD21〜AD23のキャリ出力は次段の1ビ
ット上位の加算回路AD31〜AD33のキャリ入力C
Iへ与えられる。
【0010】加算回路AD31〜AD33はAND回路
AN41〜AN43の出力をその一方入力Aに受ける。
加算回路AD31およびAD32はその他方入力Bに対
応の加算回路AD22およびAD23の加算出力(S)
を受ける。加算回路AD33はその他方入力BにAND
回路AN34の出力を受ける。
AN41〜AN43の出力をその一方入力Aに受ける。
加算回路AD31およびAD32はその他方入力Bに対
応の加算回路AD22およびAD23の加算出力(S)
を受ける。加算回路AD33はその他方入力BにAND
回路AN34の出力を受ける。
【0011】最終出力を生成する加算回路AD41は半
加算器であり、加算回路AD31のキャリ出力をその他
方入力Bに受け、加算回路AD32の加算出力Sをその
一方入力Aに受ける。加算回路AD41のキャリ出力は
隣接する加算回路AD42のキャリ入力CIへ与えられ
る。加算回路AD42はその一方入力Aに加算回路AD
33の加算出力Sを受け、その他方入力Bに加算回路A
D32のキャリ出力を受ける。加算回路AD42のキャ
リ出力は隣接する加算回路AD43のキャリ入力CIへ
与えられる。加算回路AD43はAND回路AN44の
出力と加算回路AD33のキャリ出力とを受ける。
加算器であり、加算回路AD31のキャリ出力をその他
方入力Bに受け、加算回路AD32の加算出力Sをその
一方入力Aに受ける。加算回路AD41のキャリ出力は
隣接する加算回路AD42のキャリ入力CIへ与えられ
る。加算回路AD42はその一方入力Aに加算回路AD
33の加算出力Sを受け、その他方入力Bに加算回路A
D32のキャリ出力を受ける。加算回路AD42のキャ
リ出力は隣接する加算回路AD43のキャリ入力CIへ
与えられる。加算回路AD43はAND回路AN44の
出力と加算回路AD33のキャリ出力とを受ける。
【0012】この図22に示す構成において、AND回
路AN11〜AN44と加算回路AD12、AD13、
AD22、AD23、AD32、およびAD33からな
るブロックすなわち点線で囲んだブロック5を加算器ア
レイと称す。最終の積結果を出力する加算器AD11、
AD21、AD31、AD41、AD42、およびAD
43からなるブロック、すなわち点線で囲んだブロック
10は、最終加算器列と称す。
路AN11〜AN44と加算回路AD12、AD13、
AD22、AD23、AD32、およびAD33からな
るブロックすなわち点線で囲んだブロック5を加算器ア
レイと称す。最終の積結果を出力する加算器AD11、
AD21、AD31、AD41、AD42、およびAD
43からなるブロック、すなわち点線で囲んだブロック
10は、最終加算器列と称す。
【0013】この図22に示す乗算器の構成は、AND
回路が部分積を生成し、各部分積の加算が加算回路にお
いて行なわれており、図21に一例を示す演算がこの乗
算器において実行される。
回路が部分積を生成し、各部分積の加算が加算回路にお
いて行なわれており、図21に一例を示す演算がこの乗
算器において実行される。
【0014】すなわち、この乗算器は、部分積をAND
回路により生成した後、加算回路により部分積を加算す
ることにより積演算を実現している。すなわち4ビット
の乗数Yと4ビットの被乗数Xとから8ビットの積Zを
生成している。
回路により生成した後、加算回路により部分積を加算す
ることにより積演算を実現している。すなわち4ビット
の乗数Yと4ビットの被乗数Xとから8ビットの積Zを
生成している。
【0015】図23は、図22に示す半加算器の構成の
一例を示す図である。図23において、半加算器は、そ
の入力AおよびBに与えられたデータビットを信号線4
3および44を介して受けるAND回路48と、信号線
43および44上のデータビットの排他的論理和をとる
ExOR回路49を含む。AND回路48からキャリ出
力COが出力され、ExOR回路49から加算出力Sが
生成される。この半加算器は、図23(B)に示すよう
に、入力AおよびBに与えられるデータビットが共に
“1”のときに信号線46上に“1”のキャリ出力CO
を生成する。ExOR回路49は不一致検出回路であ
り、入力AおよびBに与えられるデータビットの論理が
不一致のときに信号線47上の出力Sを“1”とする。
一例を示す図である。図23において、半加算器は、そ
の入力AおよびBに与えられたデータビットを信号線4
3および44を介して受けるAND回路48と、信号線
43および44上のデータビットの排他的論理和をとる
ExOR回路49を含む。AND回路48からキャリ出
力COが出力され、ExOR回路49から加算出力Sが
生成される。この半加算器は、図23(B)に示すよう
に、入力AおよびBに与えられるデータビットが共に
“1”のときに信号線46上に“1”のキャリ出力CO
を生成する。ExOR回路49は不一致検出回路であ
り、入力AおよびBに与えられるデータビットの論理が
不一致のときに信号線47上の出力Sを“1”とする。
【0016】図24(A)は図22に示す全加算器の構
成の一例を示す図である。図24(A)において、全加
算器は、信号線54を介して与えられる入力データビッ
トBを反転するインバータ回路IV1と、信号線53上
の入力データビットAを反転するインバータ回路IV2
と、インバータ回路IV2の出力に応答してインバータ
回路IV1の出力を通過させるトランスミッション回路
Tr2と、信号線53上の入力データビットAに応答し
て信号線54上の入力データビットBを通過させるトラ
ンスミッション回路Tr1とを含む。トランスミッショ
ン回路Tr1およびTr2は並列に設けられ、ゲートに
与えられた信号が“H”のときにノードNDへ信号を伝
達する。
成の一例を示す図である。図24(A)において、全加
算器は、信号線54を介して与えられる入力データビッ
トBを反転するインバータ回路IV1と、信号線53上
の入力データビットAを反転するインバータ回路IV2
と、インバータ回路IV2の出力に応答してインバータ
回路IV1の出力を通過させるトランスミッション回路
Tr2と、信号線53上の入力データビットAに応答し
て信号線54上の入力データビットBを通過させるトラ
ンスミッション回路Tr1とを含む。トランスミッショ
ン回路Tr1およびTr2は並列に設けられ、ゲートに
与えられた信号が“H”のときにノードNDへ信号を伝
達する。
【0017】全加算器はさらに、ノードND上の電位に
応答して信号線53上の入力データビットAを伝達する
トランスミッション回路Tr3と、ノードNDの信号電
位を反転するインバータ回路IV3と、インバータ回路
IV3の出力に応答して信号線55上に与えられたキャ
リ入力CIを伝達するトランスミッション回路Tr4と
を含む。トランスミッション回路Tr3およびTr4は
相補的に導通状態となり、信号線57上に加算出力Sを
生成する。
応答して信号線53上の入力データビットAを伝達する
トランスミッション回路Tr3と、ノードNDの信号電
位を反転するインバータ回路IV3と、インバータ回路
IV3の出力に応答して信号線55上に与えられたキャ
リ入力CIを伝達するトランスミッション回路Tr4と
を含む。トランスミッション回路Tr3およびTr4は
相補的に導通状態となり、信号線57上に加算出力Sを
生成する。
【0018】全加算器はさらに、インバータ回路IV3
の出力に応答して信号線55上の信号(キャリ入力)C
Iを通過させるトランスミッション回路Tr5と、信号
線55上のキャリ入力CIを反転するインバータ回路I
V4と、ノードND上の信号電位に応答してインバータ
回路IV4の出力を通過させるトランスミッション回路
Tr6と、トランスミッション回路Tr5またはトラン
スミッション回路Tr6の出力の一方を反転してキャリ
出力COを信号線56上に生成するインバータ回路IV
5を含む。トランスミッション回路Tr5およびTr6
は互いに相補的に導通状態となる。トランスミッション
回路Tr1〜Tr6はそのゲートへ“H”の信号(論理
“1”)の信号が与えられたときに導通状態となる。
の出力に応答して信号線55上の信号(キャリ入力)C
Iを通過させるトランスミッション回路Tr5と、信号
線55上のキャリ入力CIを反転するインバータ回路I
V4と、ノードND上の信号電位に応答してインバータ
回路IV4の出力を通過させるトランスミッション回路
Tr6と、トランスミッション回路Tr5またはトラン
スミッション回路Tr6の出力の一方を反転してキャリ
出力COを信号線56上に生成するインバータ回路IV
5を含む。トランスミッション回路Tr5およびTr6
は互いに相補的に導通状態となる。トランスミッション
回路Tr1〜Tr6はそのゲートへ“H”の信号(論理
“1”)の信号が与えられたときに導通状態となる。
【0019】図24(B)は、この図24(A)に示す
全加算器の入出力の関係を一覧にして示す図である。図
24(A)に示す全加算器は3ビットの入力A、B、お
よびCIを加算して2ビットの出力SおよびCOを生成
する。キャリ出力COが上位ビットとなる。今3ビット
A、BおよびCIがすべて“1”の状態を考える。この
ときトランスミッション回路Tr1を介してノードND
へビットBが伝達される。このノードNDに伝達された
“1”のビットBに従ってトランスミッション回路Tr
6が導通する。インバータ回路IV4は信号線55上の
“1”のビットCIを反転する。したがってインバータ
回路IV5から信号線56上には“1”の信号が出力さ
れる。
全加算器の入出力の関係を一覧にして示す図である。図
24(A)に示す全加算器は3ビットの入力A、B、お
よびCIを加算して2ビットの出力SおよびCOを生成
する。キャリ出力COが上位ビットとなる。今3ビット
A、BおよびCIがすべて“1”の状態を考える。この
ときトランスミッション回路Tr1を介してノードND
へビットBが伝達される。このノードNDに伝達された
“1”のビットBに従ってトランスミッション回路Tr
6が導通する。インバータ回路IV4は信号線55上の
“1”のビットCIを反転する。したがってインバータ
回路IV5から信号線56上には“1”の信号が出力さ
れる。
【0020】一方、ノードND上の“1”の信号に従っ
てトランスミッション回路Tr3が導通し、信号線53
上のビットAを信号線57上へ伝達する。これによりビ
ットCOおよびSが共に“1”となる。
てトランスミッション回路Tr3が導通し、信号線53
上のビットAを信号線57上へ伝達する。これによりビ
ットCOおよびSが共に“1”となる。
【0021】ビットA、B、およびCIがすべて“0”
の場合には、トランスミッション回路Tr2が導通し、
ノードNDへ“1”の信号を出力する(インバータ回路
IV1の効果)。ノードND上の“1”の信号によりト
ランスミッション回路Tr3が導通し、信号線53上の
“0”のビットAを信号線57上へ伝達する。これによ
りビットSは“0”となる。
の場合には、トランスミッション回路Tr2が導通し、
ノードNDへ“1”の信号を出力する(インバータ回路
IV1の効果)。ノードND上の“1”の信号によりト
ランスミッション回路Tr3が導通し、信号線53上の
“0”のビットAを信号線57上へ伝達する。これによ
りビットSは“0”となる。
【0022】一方、トランスミッション回路Tr6が導
通し、インバータ回路IV4の出力を通過させる。イン
バータ回路IV4は信号線55上の“0”の信号を受け
ている。したがってトランスミッション回路Tr6の出
力は“1”の信号となり、信号線56上のビットCO
は、インバータ回路IV5により“0”となる。
通し、インバータ回路IV4の出力を通過させる。イン
バータ回路IV4は信号線55上の“0”の信号を受け
ている。したがってトランスミッション回路Tr6の出
力は“1”の信号となり、信号線56上のビットCO
は、インバータ回路IV5により“0”となる。
【0023】ノードND上の信号が“1”であれば、ト
ランスミッション回路Tr6およびTr3が導通し、そ
うでない場合には、トランスミッション回路Tr4およ
びTr5が導通する。この図24(A)に示す構成によ
り、図24(B)に一覧にして示す論理演算(加算処
理)が実現される。
ランスミッション回路Tr6およびTr3が導通し、そ
うでない場合には、トランスミッション回路Tr4およ
びTr5が導通する。この図24(A)に示す構成によ
り、図24(B)に一覧にして示す論理演算(加算処
理)が実現される。
【0024】図22に示すように、2進数データの乗算
は加算を繰返し実行することにより実現される。部分積
の数は、乗数Yのビット数と等しくなる。図22に示す
乗算器は4ビットの乗算器である。一般に現在のコンピ
ュータの世界では、54ビット以上のデータが用いられ
ている。したがって、54ビット以上の乗算が必要とさ
れる。この場合、図22に示す加算器アレイ5が非常に
大規模となる。加算器アレイが大規模となると、各信号
は各加算回路を順次伝搬されているため、この加算器ア
レイにおける信号遅延が極めて大きくなる。この信号遅
延は加算回路の段数に伴って大きくなる。この加算回路
の段数は、乗算における部分積の数に比例する。
は加算を繰返し実行することにより実現される。部分積
の数は、乗数Yのビット数と等しくなる。図22に示す
乗算器は4ビットの乗算器である。一般に現在のコンピ
ュータの世界では、54ビット以上のデータが用いられ
ている。したがって、54ビット以上の乗算が必要とさ
れる。この場合、図22に示す加算器アレイ5が非常に
大規模となる。加算器アレイが大規模となると、各信号
は各加算回路を順次伝搬されているため、この加算器ア
レイにおける信号遅延が極めて大きくなる。この信号遅
延は加算回路の段数に伴って大きくなる。この加算回路
の段数は、乗算における部分積の数に比例する。
【0025】このため、部分積の数を低減して乗算を効
率的に行なうためにブース(Booth)のアルゴリズ
ムがよく利用される。このブースのアルゴリズムは、補
数表示された負の数を補正なしに乗算する方法である。
率的に行なうためにブース(Booth)のアルゴリズ
ムがよく利用される。このブースのアルゴリズムは、補
数表示された負の数を補正なしに乗算する方法である。
【0026】ブースのアルゴリズムにおいては、乗数Y
のデータビットがグループに分割される。図25に乗数
Yのグループ分割の一例を示す。図25においては2次
のブースアルゴリズムのグループ分割が示される。各グ
ループは3ビットを含む。隣接グループ間で1ビットが
共用される(図25においては斜線で示す)。1つのグ
ループにより1つの部分積が生成される。部分積の数は
2次のブースアルゴリズムの場合約1/2となる。一般
に、1つのグループがmビットを含むとき(m−1)次
のブースのアルゴリズムと呼ばれ、生成される部分積の
数は約1/(m−1)となる。ブースのアルゴリズムに
ついて以下に式を用いて説明する。
のデータビットがグループに分割される。図25に乗数
Yのグループ分割の一例を示す。図25においては2次
のブースアルゴリズムのグループ分割が示される。各グ
ループは3ビットを含む。隣接グループ間で1ビットが
共用される(図25においては斜線で示す)。1つのグ
ループにより1つの部分積が生成される。部分積の数は
2次のブースアルゴリズムの場合約1/2となる。一般
に、1つのグループがmビットを含むとき(m−1)次
のブースのアルゴリズムと呼ばれ、生成される部分積の
数は約1/(m−1)となる。ブースのアルゴリズムに
ついて以下に式を用いて説明する。
【0027】乗数Yは2の補数表示形式では次式(1)
で表わされる。
で表わされる。
【0028】
【数1】
【0029】式(1)において、ynは符号ビットであ
り、この乗数Yが正であるか負であるかを示す。データ
ビットyiは2進数値(1または0)である。各ビット
に付されている2j は各データビットの2進重み付けで
ある。
り、この乗数Yが正であるか負であるかを示す。データ
ビットyiは2進数値(1または0)である。各ビット
に付されている2j は各データビットの2進重み付けで
ある。
【0030】式(1)において、nが偶数でありかつy
0=0とすると、乗数Yは次の式(2)に示されるよう
に展開される。
0=0とすると、乗数Yは次の式(2)に示されるよう
に展開される。
【0031】
【数2】
【0032】乗数Yと被乗数Xとの積X・Yは部分積の
和で与えられる。したがって3ビットy2i、y2i+
1、y2i+2の値がわかれば、その部分積生成に必要
とされる演算が決定される。この3ビットy2i、y2
i+1、y2i+2とそのときに実行される演算との関
係を表1に示す。
和で与えられる。したがって3ビットy2i、y2i+
1、y2i+2の値がわかれば、その部分積生成に必要
とされる演算が決定される。この3ビットy2i、y2
i+1、y2i+2とそのときに実行される演算との関
係を表1に示す。
【0033】
【表1】
【0034】2次のブースのアルゴリズムにおいて行な
われる演算は0、±X、±2Xである。
われる演算は0、±X、±2Xである。
【0035】被乗数Xの2倍すなわち2Xは被乗数Xを
1ビット上位ビット方向にシフトさせるシフト回路によ
り容易に生成される。“−”演算はビット反転により実
現される。したがって、この3ビットの値によりそのと
きに実行される演算を決定すれば積演算を高速で行なう
ことができる。このブースのアルゴリズムは2次に限定
されず、3次、4次、…等高次のブースアルゴリズムも
存在する。式(3)および表2に、3次のブースアルゴ
リズムにおける乗数Yの分解と、そのときに実行される
演算とを示す。
1ビット上位ビット方向にシフトさせるシフト回路によ
り容易に生成される。“−”演算はビット反転により実
現される。したがって、この3ビットの値によりそのと
きに実行される演算を決定すれば積演算を高速で行なう
ことができる。このブースのアルゴリズムは2次に限定
されず、3次、4次、…等高次のブースアルゴリズムも
存在する。式(3)および表2に、3次のブースアルゴ
リズムにおける乗数Yの分解と、そのときに実行される
演算とを示す。
【0036】
【数3】
【0037】
【表2】
【0038】図26は、ブースのアルゴリズムを用いる
乗算器の構成を示す。図26において、乗算器は、被乗
数データXを保持するレジスタ回路1aと、乗数データ
Yを保持するレジスタ回路1bと、レジスタ回路1bか
ら乗数データ線2bを介して与えられる乗数データYを
ブースのアルゴリズムに従ってデコードし、そのデコー
ド結果を示す信号を出力するデコード回路3と、レジス
タ回路1aから被乗数データ線2a上に与えられた被乗
数データXと、デコード回路3からデコード結果出力線
8上に与えられた制御信号とに従ってブースのアルゴリ
ズムに従って部分積を生成するとともに部分積を加算し
て中間和を生成する加算器アレイ5と、加算器アレイ5
からの出力データを出力線9を介して受けて最終加算を
行なう最終加算器列10を含む。最終加算器列10から
被乗数データXと乗数データYとを乗算した乗算結果X
・Yを示すデータが信号線11上に伝達される。
乗算器の構成を示す。図26において、乗算器は、被乗
数データXを保持するレジスタ回路1aと、乗数データ
Yを保持するレジスタ回路1bと、レジスタ回路1bか
ら乗数データ線2bを介して与えられる乗数データYを
ブースのアルゴリズムに従ってデコードし、そのデコー
ド結果を示す信号を出力するデコード回路3と、レジス
タ回路1aから被乗数データ線2a上に与えられた被乗
数データXと、デコード回路3からデコード結果出力線
8上に与えられた制御信号とに従ってブースのアルゴリ
ズムに従って部分積を生成するとともに部分積を加算し
て中間和を生成する加算器アレイ5と、加算器アレイ5
からの出力データを出力線9を介して受けて最終加算を
行なう最終加算器列10を含む。最終加算器列10から
被乗数データXと乗数データYとを乗算した乗算結果X
・Yを示すデータが信号線11上に伝達される。
【0039】加算器アレイ5は、デコード回路3からデ
コード結果出力線8上に与えられる制御信号に応答して
選択動作を行なって部分積を生成するセレクタ回路を含
む。
コード結果出力線8上に与えられる制御信号に応答して
選択動作を行なって部分積を生成するセレクタ回路を含
む。
【0040】デコード回路3は、2次のブースアルゴリ
ズムに従ってデコード動作を行なう場合、先の表(1)
に示す演算が実行されるように制御信号を生成する。セ
レクタ回路からはこの制御信号に従って0、X、2Xが
生成される。−X、−2Xは、符号反転(ビット反転)
のみで生成される。2の補数表示での演算であれば、各
ビットの反転が実行される。加算器アレイ5の内部構成
は、図22に示す乗算器の構成においてAND回路に代
えてデコード回路3からのデコード結果出力に従って選
択動作を行なうセレクタが設けられる構成を備える。加
算器の配列は各段2ビット上位方向へずれる(2次のブ
ースアルゴリズムの場合)。
ズムに従ってデコード動作を行なう場合、先の表(1)
に示す演算が実行されるように制御信号を生成する。セ
レクタ回路からはこの制御信号に従って0、X、2Xが
生成される。−X、−2Xは、符号反転(ビット反転)
のみで生成される。2の補数表示での演算であれば、各
ビットの反転が実行される。加算器アレイ5の内部構成
は、図22に示す乗算器の構成においてAND回路に代
えてデコード回路3からのデコード結果出力に従って選
択動作を行なうセレクタが設けられる構成を備える。加
算器の配列は各段2ビット上位方向へずれる(2次のブ
ースアルゴリズムの場合)。
【0041】デコード回路3からのデコード結果出力線
8の数は、乗数データYのビット数と実行されるブース
のアルゴリズムの次数により決定される。
8の数は、乗数データYのビット数と実行されるブース
のアルゴリズムの次数により決定される。
【0042】図27は、4ビット乗数データYと4ビッ
ト被乗数データXとの乗算を行なう回路の構成を示す図
である。乗数データYは、ビットy1〜y4に加えてさ
らにビットy0(=0)を含む。被乗数データXはビッ
トx1〜x4を含む。デコード回路3は、ビットy0、
y1およびy2をデコードし、該デコード結果を示す信
号を出力線8aへ伝達するデコーダ3a1と、ビットy
2、y3およびy4をデコードし、そのデコード結果を
信号線8b上へ伝達するデコーダ3a2を含む。
ト被乗数データXとの乗算を行なう回路の構成を示す図
である。乗数データYは、ビットy1〜y4に加えてさ
らにビットy0(=0)を含む。被乗数データXはビッ
トx1〜x4を含む。デコード回路3は、ビットy0、
y1およびy2をデコードし、該デコード結果を示す信
号を出力線8aへ伝達するデコーダ3a1と、ビットy
2、y3およびy4をデコードし、そのデコード結果を
信号線8b上へ伝達するデコーダ3a2を含む。
【0043】加算器アレイ5は、レジスタ回路1aに保
持された被乗数データX(ビットx1〜x4)を1ビッ
ト上位方向へシフトし、2Xを生成するシフト回路10
2と、レジスタ回路1aの出力とシフト回路102の出
力とを受け、出力線8a上のデコード結果信号に応答し
て対応の演算を選択し第1の部分積を生成するセレクタ
回路104と、レジスタ回路1aからの被乗数データX
とシフト回路102からのシフトデータとを受け、出力
線8b上のデコード結果に従って対応の演算を選択し、
第2の部分積を生成するセレクタ回路106と、このセ
レクタ回路104および106により生成された部分和
を加算して中間和を生成する加算回路AD102および
AD104を含む。
持された被乗数データX(ビットx1〜x4)を1ビッ
ト上位方向へシフトし、2Xを生成するシフト回路10
2と、レジスタ回路1aの出力とシフト回路102の出
力とを受け、出力線8a上のデコード結果信号に応答し
て対応の演算を選択し第1の部分積を生成するセレクタ
回路104と、レジスタ回路1aからの被乗数データX
とシフト回路102からのシフトデータとを受け、出力
線8b上のデコード結果に従って対応の演算を選択し、
第2の部分積を生成するセレクタ回路106と、このセ
レクタ回路104および106により生成された部分和
を加算して中間和を生成する加算回路AD102および
AD104を含む。
【0044】加算器アレイ5の出力に従って最終の乗算
結果を出力する最終加算器列10は、加算回路AD10
0のキャリ出力と加算回路102の和出力を受ける加算
回路AD106と、加算回路AD102のキャリ出力と
加算回路AD104の和出力を受けるとともに加算回路
106のキャリ出力を受ける加算回路108と、セレク
タ回路106の出力と加算回路AD104のキャリ出力
と加算回路108のキャリ出力とを受ける加算回路AD
110と、セレクタ回路106の最上位ビット出力と加
算回路AD110のキャリ出力とを受ける加算回路AD
112を含む。加算回路AD100、AD102、AD
104、AD106、およびAD112は半加算器であ
り、加算回路AD108、およびAD110は全加算器
である。
結果を出力する最終加算器列10は、加算回路AD10
0のキャリ出力と加算回路102の和出力を受ける加算
回路AD106と、加算回路AD102のキャリ出力と
加算回路AD104の和出力を受けるとともに加算回路
106のキャリ出力を受ける加算回路108と、セレク
タ回路106の出力と加算回路AD104のキャリ出力
と加算回路108のキャリ出力とを受ける加算回路AD
110と、セレクタ回路106の最上位ビット出力と加
算回路AD110のキャリ出力とを受ける加算回路AD
112を含む。加算回路AD100、AD102、AD
104、AD106、およびAD112は半加算器であ
り、加算回路AD108、およびAD110は全加算器
である。
【0045】この図27に示す乗算器は、2次のブース
アルゴリズムに従って乗算を実行する。4ビットの乗数
データYおよび4ビットの被乗数データXとから8ビッ
トの乗算結果を生成する。セレクタ回路104および1
06はそれぞれ5ビットの容量を備えている。これは2
Xの演算が実行され、1ビット上位方向にシフトした状
態を表現するためである。シフト回路102の最下位ビ
ットは0に設定される。シフト回路102は、レジスタ
回路1aから与えられた被乗数データXを1ビット上位
方向へシフトする。
アルゴリズムに従って乗算を実行する。4ビットの乗数
データYおよび4ビットの被乗数データXとから8ビッ
トの乗算結果を生成する。セレクタ回路104および1
06はそれぞれ5ビットの容量を備えている。これは2
Xの演算が実行され、1ビット上位方向にシフトした状
態を表現するためである。シフト回路102の最下位ビ
ットは0に設定される。シフト回路102は、レジスタ
回路1aから与えられた被乗数データXを1ビット上位
方向へシフトする。
【0046】この図27に示すように、2次のブースア
ルゴリズムに従った場合、生成される部分積の数は2で
あり、加算回路も実質的に2段であり、図22に示す乗
算器の構成に比べて大幅に加算回路の段数が低減され
る。ここで、最終加算器列10に含まれる加算回路AD
112は全加算器で構成され、加算回路AD110のキ
ャリ出力をそのキャリ入力に受け、その一方入力が接地
されていてもよい。
ルゴリズムに従った場合、生成される部分積の数は2で
あり、加算回路も実質的に2段であり、図22に示す乗
算器の構成に比べて大幅に加算回路の段数が低減され
る。ここで、最終加算器列10に含まれる加算回路AD
112は全加算器で構成され、加算回路AD110のキ
ャリ出力をそのキャリ入力に受け、その一方入力が接地
されていてもよい。
【0047】図27に示すように、2次のブースアルゴ
リズムに従って乗算を行なえば、生成される部分積の数
は2となり、図22に示す通常の乗算器が生成する部分
積の数の半分となる。これにより、高速で乗算を実行す
ることができる。
リズムに従って乗算を行なえば、生成される部分積の数
は2となり、図22に示す通常の乗算器が生成する部分
積の数の半分となる。これにより、高速で乗算を実行す
ることができる。
【0048】図28は、3次のブースアルゴリズムに従
って乗算を行なう際の概念的構成を示す図である。図2
8において、3次のブースのアルゴリズムに従ってデコ
ード動作を行なう3次のブースアルゴリズムデコード回
路3は、乗数Yのビットy0〜yrからそれぞれ所定の
組の4ビットのデータを受けるデコーダ30a、30
b、…、30pを含む。このデコーダ30a〜30pの
各々は、与えられた4ビットデータの値に従って、表2
に示すデコード動作を行なって対応の演算を選択する信
号を生成する。
って乗算を行なう際の概念的構成を示す図である。図2
8において、3次のブースのアルゴリズムに従ってデコ
ード動作を行なう3次のブースアルゴリズムデコード回
路3は、乗数Yのビットy0〜yrからそれぞれ所定の
組の4ビットのデータを受けるデコーダ30a、30
b、…、30pを含む。このデコーダ30a〜30pの
各々は、与えられた4ビットデータの値に従って、表2
に示すデコード動作を行なって対応の演算を選択する信
号を生成する。
【0049】この乗算器はさらに、被乗数データX(ビ
ットx1〜xn)からこの被乗数データXの所定の定数
倍、すなわち±X、±2X、±3X、および±4Xを生
成する定数倍回路200と、デコード回路3の各デコー
ダ30a〜30pのそれぞれに対応して設けられ、出力
線8a〜8pからの制御信号に従ってこの定数倍発生回
路200からの出力のうちの1つを演算結果として選択
して出力するセレクタ回路202a、202b、…、2
02pを含む。セレクタ回路202a、202b、…、
202pからそれぞれ第1部分積、第2部分積、…、第
p部分積が生成される。
ットx1〜xn)からこの被乗数データXの所定の定数
倍、すなわち±X、±2X、±3X、および±4Xを生
成する定数倍回路200と、デコード回路3の各デコー
ダ30a〜30pのそれぞれに対応して設けられ、出力
線8a〜8pからの制御信号に従ってこの定数倍発生回
路200からの出力のうちの1つを演算結果として選択
して出力するセレクタ回路202a、202b、…、2
02pを含む。セレクタ回路202a、202b、…、
202pからそれぞれ第1部分積、第2部分積、…、第
p部分積が生成される。
【0050】乗算器はさらに、このセレクタ回路202
a〜202pからの部分積を加算する加算器204を含
む。この加算器204は、先の図26および図27に示
す加算器アレイと最終加算器列両者を含む。
a〜202pからの部分積を加算する加算器204を含
む。この加算器204は、先の図26および図27に示
す加算器アレイと最終加算器列両者を含む。
【0051】この図28に示す3次のブースアルゴリズ
ムに従って乗算を実行する場合、生成される部分積の数
はp個であり、乗数データYのビット数の1/3となっ
ている。
ムに従って乗算を実行する場合、生成される部分積の数
はp個であり、乗数データYのビット数の1/3となっ
ている。
【0052】定数倍生成回路200において±3Xを生
成する回路は被乗数データXを入力して2X+Xの加算
を実行する。±2Xおよび±4Xは被乗数データXのシ
フト動作により生成される。複号±は符号を反転するか
否かにより決定される。±3Xを生成するための回路の
みは、このようなシフト動作および符号反転のみで3倍
値3X生成することができず、このため被乗数データX
を用いてシフト動作および加算動作すなわち2Xを求め
る動作および2X+Xの加算を行なって3倍値3Xを求
める。
成する回路は被乗数データXを入力して2X+Xの加算
を実行する。±2Xおよび±4Xは被乗数データXのシ
フト動作により生成される。複号±は符号を反転するか
否かにより決定される。±3Xを生成するための回路の
みは、このようなシフト動作および符号反転のみで3倍
値3X生成することができず、このため被乗数データX
を用いてシフト動作および加算動作すなわち2Xを求め
る動作および2X+Xの加算を行なって3倍値3Xを求
める。
【0053】
【発明が解決しようとする課題】上述のごとく、2進数
の乗算においてはブースのアルゴリズムを利用すれば生
成される部分積の数が低減され、高速で乗算を行なうこ
とができる。たとえば54ビットの乗算を考える。ブー
スのアルゴリズムを利用しない通常の乗算においては部
分積が54個存在する。2次のブースのアルゴリズムを
用いた場合には生成される部分積の数が27個となる。
3次のブースのアルゴリズムを用いた場合は、生成され
る部分積の数は18個となる。すなわち、n次のブース
のアルゴリズムを用いると、通常の乗算を行なう場合と
比べて、生成される部分積の数は1/nに低減すること
ができ、乗算に必要とされる演算時間を短縮することが
できる。
の乗算においてはブースのアルゴリズムを利用すれば生
成される部分積の数が低減され、高速で乗算を行なうこ
とができる。たとえば54ビットの乗算を考える。ブー
スのアルゴリズムを利用しない通常の乗算においては部
分積が54個存在する。2次のブースのアルゴリズムを
用いた場合には生成される部分積の数が27個となる。
3次のブースのアルゴリズムを用いた場合は、生成され
る部分積の数は18個となる。すなわち、n次のブース
のアルゴリズムを用いると、通常の乗算を行なう場合と
比べて、生成される部分積の数は1/nに低減すること
ができ、乗算に必要とされる演算時間を短縮することが
できる。
【0054】しかしながらブースのアルゴリズムにも欠
点が存在する。乗数Yを2次のブースのアルゴリズムに
従ってデコードした場合には、この部分積を生成するた
めに、被乗数Xの2倍の値2Xが必要となる。また乗数
Yを3次のブースのアルゴリズムに従ってデコードした
場合には、部分積の生成のためには、被乗数Xの2倍、
3倍および4倍の値が必要となる。さらに、乗数Yを4
次のブースのアルゴリズムに従ってデコードした場合、
必要とされる部分積には、被乗数Xの2倍、3倍、4
倍、5倍、6倍、7倍、および8倍の値が必要となる。
点が存在する。乗数Yを2次のブースのアルゴリズムに
従ってデコードした場合には、この部分積を生成するた
めに、被乗数Xの2倍の値2Xが必要となる。また乗数
Yを3次のブースのアルゴリズムに従ってデコードした
場合には、部分積の生成のためには、被乗数Xの2倍、
3倍および4倍の値が必要となる。さらに、乗数Yを4
次のブースのアルゴリズムに従ってデコードした場合、
必要とされる部分積には、被乗数Xの2倍、3倍、4
倍、5倍、6倍、7倍、および8倍の値が必要となる。
【0055】2進数の場合、2倍、4倍、および8倍の
ように、2の累乗倍の値はデータをシフトするだけで簡
単に生成することができる。しかしながら、この3倍お
よび5倍のような値はこのようなシフト動作だけでは生
成することができない。3Xを生成する場合には、(2
X+X)という演算を実行する必要がある。この加算動
作には多くの時間が必要となる。すなわち内部演算の桁
数が増加すればその桁上げ(キャリ)に時間が長くな
り、3X、および5Xのような被乗数の3倍、5倍の値
を求める演算を高速で行なうことができない。このた
め、乗算を高速で行なうことができなくなるという問題
が生じる。
ように、2の累乗倍の値はデータをシフトするだけで簡
単に生成することができる。しかしながら、この3倍お
よび5倍のような値はこのようなシフト動作だけでは生
成することができない。3Xを生成する場合には、(2
X+X)という演算を実行する必要がある。この加算動
作には多くの時間が必要となる。すなわち内部演算の桁
数が増加すればその桁上げ(キャリ)に時間が長くな
り、3X、および5Xのような被乗数の3倍、5倍の値
を求める演算を高速で行なうことができない。このた
め、乗算を高速で行なうことができなくなるという問題
が生じる。
【0056】すなわち、3次のブースのアルゴリズムを
適用した場合、生成される部分積の数は低減されるもの
の、この生成された部分積の加算を実行する前に被乗数
Xの3倍の値を生成するために長時間を必要とし、結局
演算時間が長くなるという問題が生じる。この場合被乗
数Xのビット数が増加すれば、当然この3Xを生成する
回路における遅延が大きくなる。
適用した場合、生成される部分積の数は低減されるもの
の、この生成された部分積の加算を実行する前に被乗数
Xの3倍の値を生成するために長時間を必要とし、結局
演算時間が長くなるという問題が生じる。この場合被乗
数Xのビット数が増加すれば、当然この3Xを生成する
回路における遅延が大きくなる。
【0057】2次のブースのアルゴリズムを適用する場
合には、被乗数Xの2倍の値2Xのみが必要である。被
乗数Xの2倍の値2Xはシフト操作で簡単に生成するこ
とができる。被乗数Xの3倍の値3Xを生成する場合の
ように長時間を要しない。このため、2次のブースのア
ルゴリズムは、生成される部分積の数が低減される効果
が非常に大きくなり、乗算を行なう上で有利である。
合には、被乗数Xの2倍の値2Xのみが必要である。被
乗数Xの2倍の値2Xはシフト操作で簡単に生成するこ
とができる。被乗数Xの3倍の値3Xを生成する場合の
ように長時間を要しない。このため、2次のブースのア
ルゴリズムは、生成される部分積の数が低減される効果
が非常に大きくなり、乗算を行なう上で有利である。
【0058】上述の観点から、乗算器の設計において
は、3次以上のブースのアルゴリズムは使用されなかっ
た。3次以上のブースのアルゴリズムでは、シフト操作
で被乗数Xの定数倍を作成できない奇数倍を利用する必
要があり、このための回路における遅延時間が、生成さ
れる部分積の数の低減効果を相殺し、かつさらには、乗
数および被乗数のビットの増大に伴って、この部分積低
減効果よりも奇数倍を生成するための回路における遅延
が部分積低減効果を上回るためである。
は、3次以上のブースのアルゴリズムは使用されなかっ
た。3次以上のブースのアルゴリズムでは、シフト操作
で被乗数Xの定数倍を作成できない奇数倍を利用する必
要があり、このための回路における遅延時間が、生成さ
れる部分積の数の低減効果を相殺し、かつさらには、乗
数および被乗数のビットの増大に伴って、この部分積低
減効果よりも奇数倍を生成するための回路における遅延
が部分積低減効果を上回るためである。
【0059】しかしながら、2次のブースのアルゴリズ
ムに従って乗算を行なう場合、生成される部分積の数は
高々1/2になるだけである。近年の情報処理分野など
におけるデータビット数の増大が生じた場合このような
データを高速で乗算するためには、生成される部分積の
数をできるだけ低減するために、高次のブースのアルゴ
リズムを使用する必要がある。
ムに従って乗算を行なう場合、生成される部分積の数は
高々1/2になるだけである。近年の情報処理分野など
におけるデータビット数の増大が生じた場合このような
データを高速で乗算するためには、生成される部分積の
数をできるだけ低減するために、高次のブースのアルゴ
リズムを使用する必要がある。
【0060】それゆえ、この発明の1つの目的は、3次
以上の高次のブースのアルゴリズムを利用して高速で乗
算を実行することのできる乗算器を提供することであ
る。
以上の高次のブースのアルゴリズムを利用して高速で乗
算を実行することのできる乗算器を提供することであ
る。
【0061】また乗算するデータのビット数が大きくな
ると、被乗数データ線2aおよびブースデコード回路3
のデータ線8には大きな負荷がつく。乗数データ線2a
には図27に示すように、数多くのセレクタ回路が付随
し、またデコード結果出力線は、関連のセレクタ回路を
すべて駆動する必要があるためである。
ると、被乗数データ線2aおよびブースデコード回路3
のデータ線8には大きな負荷がつく。乗数データ線2a
には図27に示すように、数多くのセレクタ回路が付随
し、またデコード結果出力線は、関連のセレクタ回路を
すべて駆動する必要があるためである。
【0062】たとえば、図27においてはセレクタ回路
104および106は各ビット毎に選択動作を実行する
セレクタ回路を備えている。この信号線2aおよび8に
付随する負荷は、乗算されるデータのビット数が大きく
なるにつれて増大する。したがって、たとえばブースの
デコード回路の出力線8においては、デコード結果がそ
の出力線8の最遠方に到達するまでに長時間を要する。
信号線における伝搬遅延が生じるためである。
104および106は各ビット毎に選択動作を実行する
セレクタ回路を備えている。この信号線2aおよび8に
付随する負荷は、乗算されるデータのビット数が大きく
なるにつれて増大する。したがって、たとえばブースの
デコード回路の出力線8においては、デコード結果がそ
の出力線8の最遠方に到達するまでに長時間を要する。
信号線における伝搬遅延が生じるためである。
【0063】このように乗算するデータビット数が増大
すると、ブースのアルゴリズムの利用の有無にかかわら
ず、信号伝搬遅延が増大し、高速で乗算を行なうことが
できなくなるという問題が生じる。この状態は、たとえ
ば図22に示す乗算器の構成においても同様である。
すると、ブースのアルゴリズムの利用の有無にかかわら
ず、信号伝搬遅延が増大し、高速で乗算を行なうことが
できなくなるという問題が生じる。この状態は、たとえ
ば図22に示す乗算器の構成においても同様である。
【0064】さらに、ブースのアルゴリズムを利用する
場合、加算器アレイに含まれる加算回路および最終加算
器列に含まれる加算回路はブースのデコード回路がデー
タをデコードし、そのデコード動作により選択すべき演
算が決定した後でなければ加算動作を行なうことができ
ない。セレクタ回路の出力が確定しないためである。ブ
ースのデコード回路のデコード動作が完了しても、デコ
ード結果が出力線8上をその最遠方まで到達するのに時
間を要する。正確な乗算のためにはこの遅延時間を取込
む必要がある。このため、高速で乗算を行なうことがで
きないという問題が生じる。
場合、加算器アレイに含まれる加算回路および最終加算
器列に含まれる加算回路はブースのデコード回路がデー
タをデコードし、そのデコード動作により選択すべき演
算が決定した後でなければ加算動作を行なうことができ
ない。セレクタ回路の出力が確定しないためである。ブ
ースのデコード回路のデコード動作が完了しても、デコ
ード結果が出力線8上をその最遠方まで到達するのに時
間を要する。正確な乗算のためにはこの遅延時間を取込
む必要がある。このため、高速で乗算を行なうことがで
きないという問題が生じる。
【0065】以上のように従来の乗算器、特にブースの
アルゴリズムを用いる乗算器においては以下のような問
題点があった。
アルゴリズムを用いる乗算器においては以下のような問
題点があった。
【0066】(1) 3次以上のブースのアルゴリズム
では被乗数Xの3倍の値3Xなどの奇数倍のデータを生
成するのに長時間が必要とされ、高速動作性が損なわれ
る。
では被乗数Xの3倍の値3Xなどの奇数倍のデータを生
成するのに長時間が必要とされ、高速動作性が損なわれ
る。
【0067】(2) ブースのデコード回路の出力線に
大きな負荷が接続されるため、この出力線における信号
伝搬遅延が存在し、高速乗算を行なうことができない。
大きな負荷が接続されるため、この出力線における信号
伝搬遅延が存在し、高速乗算を行なうことができない。
【0068】(3) ブースのアルゴリズムを利用する
場合、ブースのデコード回路の出力が決定してからでな
いと加算回路は加算動作を実行することができない。こ
のため、高速で乗算を行なうことができない。
場合、ブースのデコード回路の出力が決定してからでな
いと加算回路は加算動作を実行することができない。こ
のため、高速で乗算を行なうことができない。
【0069】それゆえ、この発明の目的は、高速で乗算
を実行することのできる乗算器を提供することである。
を実行することのできる乗算器を提供することである。
【0070】この発明の他の目的は、高速で乗算を実行
することのできる、ブースのアルゴリズムを利用する乗
算器を提供することである。
することのできる、ブースのアルゴリズムを利用する乗
算器を提供することである。
【0071】この発明のさらに他の目的は、3次以上の
ブースのアルゴリズムを利用しても高速で乗算を行なう
ことのできる乗算器を提供することである。
ブースのアルゴリズムを利用しても高速で乗算を行なう
ことのできる乗算器を提供することである。
【0072】
【課題を解決するための手段】この発明に係る乗算器
は、以下の3つの独立の観点を備える。すなわち、 (1) 2次のブースのアルゴリズムと3次のブースの
アルゴリズムとを混在させる。
は、以下の3つの独立の観点を備える。すなわち、 (1) 2次のブースのアルゴリズムと3次のブースの
アルゴリズムとを混在させる。
【0073】(2) ブースのデコード回路を被乗数の
下位ビット側に設ける。
下位ビット側に設ける。
【0074】(3) ブースのデコード回路によるデコ
ード期間中に加算回路を動作させ、デコード結果に従っ
てその加算結果を選択する。
ード期間中に加算回路を動作させ、デコード結果に従っ
てその加算結果を選択する。
【0075】すなわち、請求項1に係る乗算器は、乗数
の所定数の下位ビットを2次のブースのアルゴリズムに
従ってデコードする第1のデコード手段と、乗数の残り
の上位ビットを3次以上の高次のブースのアルゴリズム
に従ってデコードする第2のデコード手段と、この第1
および第2のデコード手段の出力に従って部分積を生成
かつ加算し、乗算結果を出力する手段を備える。
の所定数の下位ビットを2次のブースのアルゴリズムに
従ってデコードする第1のデコード手段と、乗数の残り
の上位ビットを3次以上の高次のブースのアルゴリズム
に従ってデコードする第2のデコード手段と、この第1
および第2のデコード手段の出力に従って部分積を生成
かつ加算し、乗算結果を出力する手段を備える。
【0076】請求項2に係る乗算器は、乗数の所定数の
下位ビットを2次のブースのアルゴリズムに従ってデコ
ードする第1のデコード手段と、乗数の残りの上位ビッ
トを3次のブースのアルゴリズムに従ってデコードする
第2のデコード手段と、この第1および第2のデコード
手段の出力に従って第1および第2の部分積を生成する
手段を含む。この第2の部分積生成手段は被乗数Xと被
乗数Xの2倍2Xとの加算を行なう3倍数生成手段を含
む。2次のブースのアルゴリズムに従ってデコードされ
る乗数の下位ビットの数は、この3倍数生成手段が必要
とする時間により決定される。
下位ビットを2次のブースのアルゴリズムに従ってデコ
ードする第1のデコード手段と、乗数の残りの上位ビッ
トを3次のブースのアルゴリズムに従ってデコードする
第2のデコード手段と、この第1および第2のデコード
手段の出力に従って第1および第2の部分積を生成する
手段を含む。この第2の部分積生成手段は被乗数Xと被
乗数Xの2倍2Xとの加算を行なう3倍数生成手段を含
む。2次のブースのアルゴリズムに従ってデコードされ
る乗数の下位ビットの数は、この3倍数生成手段が必要
とする時間により決定される。
【0077】請求項3に係る乗算器は、被乗数からブー
スのアルゴリズムに必要とされる被乗数Xの定数倍を生
成する手段と、乗数をブースのアルゴリズムに従ってデ
コードする手段と、被乗数と定数倍生成手段の出力とを
受け、このデコード手段の出力に従ってブースのアルゴ
リズムに従った部分積を生成するセレクタ手段と、この
セレクタ手段の出力を加算して乗数と被乗数との積を生
成する手段と、被乗数を受けて、この定数倍生成回路の
定数倍データ出力後この被乗数データをセレクタ手段へ
与える入力手段とを備える。
スのアルゴリズムに必要とされる被乗数Xの定数倍を生
成する手段と、乗数をブースのアルゴリズムに従ってデ
コードする手段と、被乗数と定数倍生成手段の出力とを
受け、このデコード手段の出力に従ってブースのアルゴ
リズムに従った部分積を生成するセレクタ手段と、この
セレクタ手段の出力を加算して乗数と被乗数との積を生
成する手段と、被乗数を受けて、この定数倍生成回路の
定数倍データ出力後この被乗数データをセレクタ手段へ
与える入力手段とを備える。
【0078】請求項4の乗算器は、加算器アレイの一辺
と他辺に配置される乗数入力回路手段と被乗数入力回路
手段とを含む。この被乗数入力回路手段と乗数入力回路
手段はその下位ビット位置が互いに近接するように配置
される。
と他辺に配置される乗数入力回路手段と被乗数入力回路
手段とを含む。この被乗数入力回路手段と乗数入力回路
手段はその下位ビット位置が互いに近接するように配置
される。
【0079】請求項5に係る乗算器は、上記請求項4に
係る乗算器において、ブースのアルゴリズムに従ってデ
コード動作を行なうブースデコーダの下位ビット位置が
被乗数入力の下位ビット位置に近い方に配置される。
係る乗算器において、ブースのアルゴリズムに従ってデ
コード動作を行なうブースデコーダの下位ビット位置が
被乗数入力の下位ビット位置に近い方に配置される。
【0080】請求項6に係る乗算器は、被乗数を入力す
る被乗数入力手段と、この被乗数入力手段の下位ビット
側に配置され、乗数をブースのアルゴリズムに従ってデ
コードするデコード手段と、このデコード手段の出力と
被乗数入力手段の出力とに従って部分積の生成および加
算を行なって乗数と被乗数との積を出力する手段とを備
える。
る被乗数入力手段と、この被乗数入力手段の下位ビット
側に配置され、乗数をブースのアルゴリズムに従ってデ
コードするデコード手段と、このデコード手段の出力と
被乗数入力手段の出力とに従って部分積の生成および加
算を行なって乗数と被乗数との積を出力する手段とを備
える。
【0081】請求項7に係る乗算器は、被乗数を入力す
る被乗数入力手段と、この被乗数入力手段の下位ビット
位置側に設けられ、与えられた乗数をブースのアルゴリ
ズムに従ってデコードする第1のデコード手段と、被乗
数入力手段の上位ビット位置側に設けられ、与えられた
乗数をブースのアルゴリズムに従ってデコードする第2
のデコード手段とを含む。
る被乗数入力手段と、この被乗数入力手段の下位ビット
位置側に設けられ、与えられた乗数をブースのアルゴリ
ズムに従ってデコードする第1のデコード手段と、被乗
数入力手段の上位ビット位置側に設けられ、与えられた
乗数をブースのアルゴリズムに従ってデコードする第2
のデコード手段とを含む。
【0082】請求項8に係る乗算器は、この請求項7に
おける第1のデコード手段が乗数の下位ビットに対する
ブースのアルゴリズムに従ったデコード動作を行ない、
第2のデコード手段が乗数の上位ビットに対し、ブース
のアルゴリズムに従ってデコード動作を実行する。
おける第1のデコード手段が乗数の下位ビットに対する
ブースのアルゴリズムに従ったデコード動作を行ない、
第2のデコード手段が乗数の上位ビットに対し、ブース
のアルゴリズムに従ってデコード動作を実行する。
【0083】請求項9に係る乗算器は、請求項7の乗算
器において、第1のデコード手段が、乗数の下位ビット
のみに対しブースのアルゴリズムに従ってデコード動作
を実行し、第2のデコード手段が、乗数のすべてのビッ
トのデコード動作を実行する。
器において、第1のデコード手段が、乗数の下位ビット
のみに対しブースのアルゴリズムに従ってデコード動作
を実行し、第2のデコード手段が、乗数のすべてのビッ
トのデコード動作を実行する。
【0084】請求項10に係る乗算器は、乗数と被乗数
との部分積の加算を行なう加算手段と、乗数に対しブー
スのアルゴリズムに従ってデコード動作を行なうデコー
ド回路と、デコード回路の出力決定前に加算手段により
行なわれた加算結果からデコード回路出力に従って正し
い結果を選択する手段を含む。
との部分積の加算を行なう加算手段と、乗数に対しブー
スのアルゴリズムに従ってデコード動作を行なうデコー
ド回路と、デコード回路の出力決定前に加算手段により
行なわれた加算結果からデコード回路出力に従って正し
い結果を選択する手段を含む。
【0085】
【作用】請求項1に係る乗算器においては、被乗数の奇
数倍を生成する回路が必要とする遅延時間は、2次のブ
ースのアルゴリズムに従って部分積を生成するとともに
加算する期間内に隠蔽される。このため、乗算動作にお
いて奇数倍生成に要する時間を考慮する必要がなく、高
速で高次のブースのアルゴリズムを利用して乗算を実行
することができる。
数倍を生成する回路が必要とする遅延時間は、2次のブ
ースのアルゴリズムに従って部分積を生成するとともに
加算する期間内に隠蔽される。このため、乗算動作にお
いて奇数倍生成に要する時間を考慮する必要がなく、高
速で高次のブースのアルゴリズムを利用して乗算を実行
することができる。
【0086】請求項2の乗算器においては、特に3次の
ブースのアルゴリズムが利用され、3倍数生成回路が必
要とする遅延時間が2次のブースのアルゴリズムが消費
する遅延時間内に隠蔽される。これにより乗数および被
乗数のデータビット数が増大しても3次のブースのアル
ゴリズムを利用して高速で乗算を実行することができ
る。
ブースのアルゴリズムが利用され、3倍数生成回路が必
要とする遅延時間が2次のブースのアルゴリズムが消費
する遅延時間内に隠蔽される。これにより乗数および被
乗数のデータビット数が増大しても3次のブースのアル
ゴリズムを利用して高速で乗算を実行することができ
る。
【0087】請求項3に係る乗算器においては、被乗数
Xが加算器アレイに与えられる前に先に定数倍が生成さ
れている。このため定数倍を生成するのに要する時間が
削減され、高速で乗算を行なうことができる。
Xが加算器アレイに与えられる前に先に定数倍が生成さ
れている。このため定数倍を生成するのに要する時間が
削減され、高速で乗算を行なうことができる。
【0088】請求項4の発明においては、乗数データは
被乗数データの下位ビット側から与えられる。これによ
り加算器アレイにおける信号伝搬の遅延において、高速
でデータが確定する必要のある部分に対し高速で確定デ
ータが伝達され、信号伝搬遅延による影響を受けること
なく高速で乗算を行なうことができる。
被乗数データの下位ビット側から与えられる。これによ
り加算器アレイにおける信号伝搬の遅延において、高速
でデータが確定する必要のある部分に対し高速で確定デ
ータが伝達され、信号伝搬遅延による影響を受けること
なく高速で乗算を行なうことができる。
【0089】請求項5の乗算器においては、ブースのア
ルゴリズムに従ってデコード動作を行なうデコード手段
が被乗数の下位ビット側位置に設けられているため、こ
のデコード結果出力線における信号伝搬遅延の影響を受
けることなく、高速で下位ビット側からデコード結果信
号が確定状態となり、信号伝搬遅延の影響を受けること
なく高速でブースのアルゴリズムに従った乗算を実行す
ることができる。
ルゴリズムに従ってデコード動作を行なうデコード手段
が被乗数の下位ビット側位置に設けられているため、こ
のデコード結果出力線における信号伝搬遅延の影響を受
けることなく、高速で下位ビット側からデコード結果信
号が確定状態となり、信号伝搬遅延の影響を受けること
なく高速でブースのアルゴリズムに従った乗算を実行す
ることができる。
【0090】請求項6ないし9に係る乗算器において
は、加算器アレイの両側にブースのデコード手段を設け
たため、加算器アレイにおいて、高速で乗算を行なうこ
とが可能となるとともに、加算器アレイからの積結果を
示す出力信号を容易に取出すことが可能となる。
は、加算器アレイの両側にブースのデコード手段を設け
たため、加算器アレイにおいて、高速で乗算を行なうこ
とが可能となるとともに、加算器アレイからの積結果を
示す出力信号を容易に取出すことが可能となる。
【0091】請求項10に係る乗算器においては、ブー
スのデコード結果が確定する前に加算が行なわれてお
り、高速で乗算を行なうことができる。
スのデコード結果が確定する前に加算が行なわれてお
り、高速で乗算を行なうことができる。
【0092】
【実施例】以下の説明において、乗算される二数のうち
ブースのアルゴリズムに従ってデコードされる数を「乗
数」と呼び、デコードされない数を「被乗数」と呼ぶ。
ブースのアルゴリズムに従ってデコードされる数を「乗
数」と呼び、デコードされない数を「被乗数」と呼ぶ。
【0093】(実施例1)図1はこの発明の第1の実施
例である乗算器の全体の構成を概略的に示すブロック図
である。図1において、乗算器は、被乗数Xを保持する
被乗数レジスタ回路1aと、乗数Yを保持する乗数レジ
スタ回路1bと、乗数レジスタ回路1bからの乗数をブ
ースのアルゴリズムに従ってデコードするブースデコー
ド回路3を含む。ブースデコード回路3は、乗数レジス
タ回路1bからの乗数Yの所定数の下位ビットを受け、
2次のブースアルゴリズムに従ってデコード動作を行な
う2次のブースデコーダ回路3aと、乗数レジスタ回路
1bからの乗数Yの残りの上位ビットを3次のブースの
アルゴリズムに従ってデコード動作を行なう3次のブー
スデコーダ回路3bを含む。2次のブースデコーダ回路
3aからのデコード結果は出力線8aを介して加算器ア
レイ5aへ与えられる。3次のブースデコーダ回路3b
のデコード結果は出力線8bを介して加算器アレイ5b
へ与えられる。
例である乗算器の全体の構成を概略的に示すブロック図
である。図1において、乗算器は、被乗数Xを保持する
被乗数レジスタ回路1aと、乗数Yを保持する乗数レジ
スタ回路1bと、乗数レジスタ回路1bからの乗数をブ
ースのアルゴリズムに従ってデコードするブースデコー
ド回路3を含む。ブースデコード回路3は、乗数レジス
タ回路1bからの乗数Yの所定数の下位ビットを受け、
2次のブースアルゴリズムに従ってデコード動作を行な
う2次のブースデコーダ回路3aと、乗数レジスタ回路
1bからの乗数Yの残りの上位ビットを3次のブースの
アルゴリズムに従ってデコード動作を行なう3次のブー
スデコーダ回路3bを含む。2次のブースデコーダ回路
3aからのデコード結果は出力線8aを介して加算器ア
レイ5aへ与えられる。3次のブースデコーダ回路3b
のデコード結果は出力線8bを介して加算器アレイ5b
へ与えられる。
【0094】加算器アレイ5aは、被乗数レジスタ回路
1aからの被乗数Xと2次のブースデコーダ回路3aか
らのデコード結果信号とに従って、2次のブースアルゴ
リズムに従った部分積の生成および中間和の生成を行な
う。加算器アレイ5aは、2次のブースのアルゴリズム
に従うセレクタ回路(表1の演算選択)と、このセレク
タ回路により生成された部分積を加算して中間和を生成
する加算器のアレイを含む。
1aからの被乗数Xと2次のブースデコーダ回路3aか
らのデコード結果信号とに従って、2次のブースアルゴ
リズムに従った部分積の生成および中間和の生成を行な
う。加算器アレイ5aは、2次のブースのアルゴリズム
に従うセレクタ回路(表1の演算選択)と、このセレク
タ回路により生成された部分積を加算して中間和を生成
する加算器のアレイを含む。
【0095】加算器アレイ5bは、3次のブースデコー
ダ回路3bからのデコード結果信号と、被乗数レジスタ
回路1aからの被乗数Xと、加算器アレイ5aからの中
間和と、3倍数生成回路6からの3倍数データ(3X)
とを受け、3次のブースのアルゴリズムに従った部分積
を生成するとともに中間和を生成する。加算器アレイ5
bの出力は出力線9bを介して最終加算器列10へ与え
られる。
ダ回路3bからのデコード結果信号と、被乗数レジスタ
回路1aからの被乗数Xと、加算器アレイ5aからの中
間和と、3倍数生成回路6からの3倍数データ(3X)
とを受け、3次のブースのアルゴリズムに従った部分積
を生成するとともに中間和を生成する。加算器アレイ5
bの出力は出力線9bを介して最終加算器列10へ与え
られる。
【0096】3倍数生成回路6は、その構成は後に詳細
に説明するが、被乗数レジスタ回路1aからの被乗数X
を受けて(2X+X)の演算を行なって被乗数Xの3倍
数データを生成する。3倍数生成回路6は、図1におい
ては、加算器アレイ5aと加算器アレイ5bとの間に配
置されるように示される。最終加算器列10から、被乗
数Xと乗数Yとの乗算結果X・Yを示す2進数データが
信号線11上に出力される。次に各回路の具体的構成に
ついて説明する。
に説明するが、被乗数レジスタ回路1aからの被乗数X
を受けて(2X+X)の演算を行なって被乗数Xの3倍
数データを生成する。3倍数生成回路6は、図1におい
ては、加算器アレイ5aと加算器アレイ5bとの間に配
置されるように示される。最終加算器列10から、被乗
数Xと乗数Yとの乗算結果X・Yを示す2進数データが
信号線11上に出力される。次に各回路の具体的構成に
ついて説明する。
【0097】図2は加算器アレイ5aおよび5bの具体
的構成を示す図である。図2においては、加算器アレイ
5aおよび5bが同様の構成を有するため、加算器アレ
イ5として構成を示す。図2において、加算器アレイ5
は、アレイ状に配置された全加算器21を含む。全加算
器21は、その一方入力に被乗数データXまたは前段の
全加算器の和出力Sを受け、そのA入力にセレクタ回路
22の出力を受ける。キャリ入力CIには前段の1ビッ
ト下位の加算器のキャリ出力が与えられ、そのキャリ出
力COは次段の隣接ビットの加算器のキャリ入力CIへ
与えられる。
的構成を示す図である。図2においては、加算器アレイ
5aおよび5bが同様の構成を有するため、加算器アレ
イ5として構成を示す。図2において、加算器アレイ5
は、アレイ状に配置された全加算器21を含む。全加算
器21は、その一方入力に被乗数データXまたは前段の
全加算器の和出力Sを受け、そのA入力にセレクタ回路
22の出力を受ける。キャリ入力CIには前段の1ビッ
ト下位の加算器のキャリ出力が与えられ、そのキャリ出
力COは次段の隣接ビットの加算器のキャリ入力CIへ
与えられる。
【0098】この図2に示すアレイの構成は、先に図2
2において示した乗算器の構成においてAND回路に代
えてセレクタ回路を配置し、かつ用いられるブースのア
ルゴリズムに従ってその加算器の位置を上位ビット方向
へ所定ビット数シフトさせることにより得られる。この
全加算器21は図2におけるV方向およびH方向に所定
数配置される。セレクタ回路22は、用いられるブース
のアルゴリズムを実現するために必要とされる被乗数デ
ータ(たとえば0、X、2X:2次のブースアルゴリズ
ムの場合)を受け、出力線8を介して与えられるデコー
ド結果に従ってそのうちの1つを選択し、対応の全加算
器のA入力へ与える。このセレクタ回路22は用いられ
るブースアルゴリズムが2次のブースのアルゴリズムの
場合と3次のブースのアルゴリズムの場合とでその構成
が異なる。この構成について次に説明する。
2において示した乗算器の構成においてAND回路に代
えてセレクタ回路を配置し、かつ用いられるブースのア
ルゴリズムに従ってその加算器の位置を上位ビット方向
へ所定ビット数シフトさせることにより得られる。この
全加算器21は図2におけるV方向およびH方向に所定
数配置される。セレクタ回路22は、用いられるブース
のアルゴリズムを実現するために必要とされる被乗数デ
ータ(たとえば0、X、2X:2次のブースアルゴリズ
ムの場合)を受け、出力線8を介して与えられるデコー
ド結果に従ってそのうちの1つを選択し、対応の全加算
器のA入力へ与える。このセレクタ回路22は用いられ
るブースアルゴリズムが2次のブースのアルゴリズムの
場合と3次のブースのアルゴリズムの場合とでその構成
が異なる。この構成について次に説明する。
【0099】図3(A)は2次のブースアルゴリズムを
実現するためのセレクタ回路の構成を示す図である。セ
レクタ回路31は、データビット0が伝達される入力信
号線33aと、データビットxが伝達される入力信号線
33bと、データビット2xが伝達される入力信号線3
3cと、デコード結果が伝達される制御信号入力線80
aと、制御信号入力線80a上の信号に従って所望のデ
ータビットを出力する出力信号線35を含む。
実現するためのセレクタ回路の構成を示す図である。セ
レクタ回路31は、データビット0が伝達される入力信
号線33aと、データビットxが伝達される入力信号線
33bと、データビット2xが伝達される入力信号線3
3cと、デコード結果が伝達される制御信号入力線80
aと、制御信号入力線80a上の信号に従って所望のデ
ータビットを出力する出力信号線35を含む。
【0100】制御信号入力線80aは、データビット0
を選択するための制御信号入力線34aと、1倍の被乗
数データxを選択するための制御信号入力線34bと、
2倍の被乗数データビット2xを選択するための制御信
号入力線34cと、選択された被乗数データビットを反
転する制御信号入力線34fを含む。この制御信号入力
線34fによる反転動作により“−”の演算が実行され
る。この2次のブースのアルゴリズム用セレクタ回路3
1は、表1に示すデコード結果に従って演算を選択する
ものであり、制御信号入力線34a、34b、34cの
うちのいずれかが活性状態となり、またそのときの符号
に従って制御信号入力線34fが活性化される。
を選択するための制御信号入力線34aと、1倍の被乗
数データxを選択するための制御信号入力線34bと、
2倍の被乗数データビット2xを選択するための制御信
号入力線34cと、選択された被乗数データビットを反
転する制御信号入力線34fを含む。この制御信号入力
線34fによる反転動作により“−”の演算が実行され
る。この2次のブースのアルゴリズム用セレクタ回路3
1は、表1に示すデコード結果に従って演算を選択する
ものであり、制御信号入力線34a、34b、34cの
うちのいずれかが活性状態となり、またそのときの符号
に従って制御信号入力線34fが活性化される。
【0101】2倍データビット2xを伝達する入力線3
3cへ与えられる2倍データビットは、シフト動作によ
り生成されてもよく、被乗数レジスタ回路の出力線2a
を配線により1ビットシフトさせるハードワイヤ構成が
利用されてもよい。
3cへ与えられる2倍データビットは、シフト動作によ
り生成されてもよく、被乗数レジスタ回路の出力線2a
を配線により1ビットシフトさせるハードワイヤ構成が
利用されてもよい。
【0102】図3(B)は図1に示す加算器アレイ5b
に含まれる3次のブースアルゴリズムを実現するための
セレクタ回路の構成を示す図である。3次のブースアル
ゴリズム用セレクタ回路32は、データビット0を受け
る入力信号線33aと、1倍データビットxを受ける入
力信号線33bと、2倍データビット2xを受ける入力
信号線33cと、3倍数生成回路6からの3倍データビ
ット3xを受ける入力信号線33dと、4倍データビッ
ト4xを受ける入力信号線33eと、3次のブースデコ
ーダ回路3bからのデコード結果信号が伝達される制御
信号入力線80bを含む。
に含まれる3次のブースアルゴリズムを実現するための
セレクタ回路の構成を示す図である。3次のブースアル
ゴリズム用セレクタ回路32は、データビット0を受け
る入力信号線33aと、1倍データビットxを受ける入
力信号線33bと、2倍データビット2xを受ける入力
信号線33cと、3倍数生成回路6からの3倍データビ
ット3xを受ける入力信号線33dと、4倍データビッ
ト4xを受ける入力信号線33eと、3次のブースデコ
ーダ回路3bからのデコード結果信号が伝達される制御
信号入力線80bを含む。
【0103】制御信号入力線80bは、データビット0
を選択するための制御信号入力線34aと、データビッ
トxを選択するための制御信号入力線34bと、2倍デ
ータビット2xを選択するための制御信号入力線34c
と、3倍データビット3xを選択するための制御信号入
力線34dと、4倍データビット4xを選択するための
制御信号入力線34eと、選択したデータビットを反転
するための制御信号入力線34fを含む。セレクタ回路
32の出力は出力信号線35上へ伝達される。
を選択するための制御信号入力線34aと、データビッ
トxを選択するための制御信号入力線34bと、2倍デ
ータビット2xを選択するための制御信号入力線34c
と、3倍データビット3xを選択するための制御信号入
力線34dと、4倍データビット4xを選択するための
制御信号入力線34eと、選択したデータビットを反転
するための制御信号入力線34fを含む。セレクタ回路
32の出力は出力信号線35上へ伝達される。
【0104】この図3(B)に示すセレクタ回路32
は、表2に示すデコード動作に従って所定の演算に対応
するデータビットを選択する。この図3(A)および図
3(B)に示すセレクタ回路31および32の構成は、
制御信号入力線に与えられた信号に従って対応の入力信
号線上の信号を選択する構成であればよく、3対1マル
チプレクス回路および5対1マルチプレクス回路の機能
を備えておればよい。任意の構成を利用することができ
る。
は、表2に示すデコード動作に従って所定の演算に対応
するデータビットを選択する。この図3(A)および図
3(B)に示すセレクタ回路31および32の構成は、
制御信号入力線に与えられた信号に従って対応の入力信
号線上の信号を選択する構成であればよく、3対1マル
チプレクス回路および5対1マルチプレクス回路の機能
を備えておればよい。任意の構成を利用することができ
る。
【0105】加算器アレイ5に含まれる全加算器21の
構成は先に図7(A)において示したものと同様の構成
が利用される。別の全加算器の構成が利用されてもよ
い。この全加算器は、キャリ入力CI、キャリ出力CO
を有する2入力加算を実行する構成であればよい。
構成は先に図7(A)において示したものと同様の構成
が利用される。別の全加算器の構成が利用されてもよ
い。この全加算器は、キャリ入力CI、キャリ出力CO
を有する2入力加算を実行する構成であればよい。
【0106】図4は3倍数生成回路6の具体的構成の一
例を示す図である。この3倍数生成回路6は、全加算器
21からなる基本回路60が所定数一列に接続される。
全加算器21は、その入力Aに信号線52を介して2倍
データビット2xを受け、そのB入力に信号線51を介
して1倍被乗数データxを受け、その出力Sから和出力
を信号線53上へ伝達し、前段の全加算器からのキャリ
出力をそのキャリ入力CIに受け、隣接する全加算器2
1のキャリ入力へキャリアウト信号COを信号線54を
介して伝達する。信号線52上へ与えられる2倍被乗数
データはこの信号線51上に与えられる1倍被乗数デー
タを上位ビット側へ1ビットシフトさせるだけで生成で
きる。特別な2倍被乗数データを生成するための回路は
必要とされない。配線により実現される(図4において
破線で示す)。
例を示す図である。この3倍数生成回路6は、全加算器
21からなる基本回路60が所定数一列に接続される。
全加算器21は、その入力Aに信号線52を介して2倍
データビット2xを受け、そのB入力に信号線51を介
して1倍被乗数データxを受け、その出力Sから和出力
を信号線53上へ伝達し、前段の全加算器からのキャリ
出力をそのキャリ入力CIに受け、隣接する全加算器2
1のキャリ入力へキャリアウト信号COを信号線54を
介して伝達する。信号線52上へ与えられる2倍被乗数
データはこの信号線51上に与えられる1倍被乗数デー
タを上位ビット側へ1ビットシフトさせるだけで生成で
きる。特別な2倍被乗数データを生成するための回路は
必要とされない。配線により実現される(図4において
破線で示す)。
【0107】図1に示す2次および3次のブースデコー
ダ回路3aおよび3bはそれぞれ表1および表2に示す
デコード動作を実現する回路構成であればよい。任意の
回路構成が適用可能である。
ダ回路3aおよび3bはそれぞれ表1および表2に示す
デコード動作を実現する回路構成であればよい。任意の
回路構成が適用可能である。
【0108】図1に示す最終加算器列10は、この図4
に示す3倍数生成回路と同様の構成を備える。対応の入
力AおよびBに中間和を生成した対応の加算器の出力が
与えられ、キャリ入力CIに加算器アレイに含まれる最
終中間和生成回路のキャリ出力が与えられる。この構成
は図22に示す乗算器の構成と同様である。次に具体的
動作について説明する。
に示す3倍数生成回路と同様の構成を備える。対応の入
力AおよびBに中間和を生成した対応の加算器の出力が
与えられ、キャリ入力CIに加算器アレイに含まれる最
終中間和生成回路のキャリ出力が与えられる。この構成
は図22に示す乗算器の構成と同様である。次に具体的
動作について説明する。
【0109】今、一例として、乗数Yが54ビットのデ
ータであり、被乗数Xも54ビットデータの場合につい
て説明する。この場合の概略的構成を図5に示す。
ータであり、被乗数Xも54ビットデータの場合につい
て説明する。この場合の概略的構成を図5に示す。
【0110】図5は、乗数Yおよび被乗数Xが共に54
ビットデータの場合の加算器アレイの構成を示す図であ
る。図5において、2次のブースアルゴリズム用のデコ
ーダ回路3aは、18ビットのデータy1〜y18を受
けるとともに、最下位ビットy0として接地電位
(“0”)を受ける。2次のブースアルゴリズム用のデ
コーダ回路3aの出力線8aは9段のセレクタSEa1
〜SEa9へ接続される。セレクタ回路SEa1〜SE
a9の各々は、被乗数Xが54ビットであるため、55
ビットの単位回路を備える(2Xを生成するためであ
る)。
ビットデータの場合の加算器アレイの構成を示す図であ
る。図5において、2次のブースアルゴリズム用のデコ
ーダ回路3aは、18ビットのデータy1〜y18を受
けるとともに、最下位ビットy0として接地電位
(“0”)を受ける。2次のブースアルゴリズム用のデ
コーダ回路3aの出力線8aは9段のセレクタSEa1
〜SEa9へ接続される。セレクタ回路SEa1〜SE
a9の各々は、被乗数Xが54ビットであるため、55
ビットの単位回路を備える(2Xを生成するためであ
る)。
【0111】セレクタ回路SEa1〜SEa9からそれ
ぞれ2次のブースのアルゴリズムに従って部分積が生成
される。セレクタ回路SEa1〜SEa9がそれぞれ生
成する部分積の最小桁は図5の右に示しているように2
0 、22 、…、216となる。したがってセレクタ回路S
Ea2〜SEa9は上段のセレクタ回路に対して2ビッ
ト上位方向にシフトされて配置される。この部分積から
中間和を生成するために、加算器段ADa1〜ADa8
が設けられる。加算器段ADa1はセレクタ回路SEa
1およびSEa2の出力を加算する。加算器段ADa2
〜ADa8はそれぞれ対応のセレクタ回路の出力と前段
の加算器段の出力とを加算する。したがって、この2次
のブースアルゴリズムに従う加算器アレイ5aにおいて
は、加算器の段数は8段となる。
ぞれ2次のブースのアルゴリズムに従って部分積が生成
される。セレクタ回路SEa1〜SEa9がそれぞれ生
成する部分積の最小桁は図5の右に示しているように2
0 、22 、…、216となる。したがってセレクタ回路S
Ea2〜SEa9は上段のセレクタ回路に対して2ビッ
ト上位方向にシフトされて配置される。この部分積から
中間和を生成するために、加算器段ADa1〜ADa8
が設けられる。加算器段ADa1はセレクタ回路SEa
1およびSEa2の出力を加算する。加算器段ADa2
〜ADa8はそれぞれ対応のセレクタ回路の出力と前段
の加算器段の出力とを加算する。したがって、この2次
のブースアルゴリズムに従う加算器アレイ5aにおいて
は、加算器の段数は8段となる。
【0112】3次のブースアルゴリズム用のデコーダ回
路3bは、残りの上位36ビットy19〜y54を受け
る。その最下位ビットは接地電位に接続される。4ビッ
トずつ(最初の接地電位を含めて)1つの組としてデコ
ード動作が行なわれる。この3次のブースのアルゴリズ
ムを実現する加算器アレイ5bは、12段のセレクタ回
路SEb1〜SEb12を含む。加算器アレイ5bは、
2次のブースアルゴリズムを実現する加算器アレイ5a
の出力をも加算するため、12段の加算器段ADb1〜
ADb12が設けられる。加算器段ADb1はセレクタ
回路SEb1の出力と加算器アレイ5aからの出力(加
算器段ADa8の出力)とを加算する。セレクタ回路S
Eb1〜SEb12各々から3次のブースのアルゴリズ
ムに従った部分積が生成される。この各部分積の最小桁
は図5の右側に示すが、218、2 21、…、251となる。
路3bは、残りの上位36ビットy19〜y54を受け
る。その最下位ビットは接地電位に接続される。4ビッ
トずつ(最初の接地電位を含めて)1つの組としてデコ
ード動作が行なわれる。この3次のブースのアルゴリズ
ムを実現する加算器アレイ5bは、12段のセレクタ回
路SEb1〜SEb12を含む。加算器アレイ5bは、
2次のブースアルゴリズムを実現する加算器アレイ5a
の出力をも加算するため、12段の加算器段ADb1〜
ADb12が設けられる。加算器段ADb1はセレクタ
回路SEb1の出力と加算器アレイ5aからの出力(加
算器段ADa8の出力)とを加算する。セレクタ回路S
Eb1〜SEb12各々から3次のブースのアルゴリズ
ムに従った部分積が生成される。この各部分積の最小桁
は図5の右側に示すが、218、2 21、…、251となる。
【0113】今、以下の条件を仮定する。2次のブース
アルゴリズムを行なうためのデコーダ回路3aと3次の
ブースアルゴリズムに従ったデコード動作を行なうデコ
ーダ回路3bは同一の遅延量を備え、この遅延量は全加
算器1段分とする。
アルゴリズムを行なうためのデコーダ回路3aと3次の
ブースアルゴリズムに従ったデコード動作を行なうデコ
ーダ回路3bは同一の遅延量を備え、この遅延量は全加
算器1段分とする。
【0114】図3(A)および図3(B)に示す2次の
ブースアルゴリズム用セレクタ回路31と3次のブース
アルゴリズム用セレクタ回路32の遅延量も同一であ
り、その遅延量も全加算器1段分とする。
ブースアルゴリズム用セレクタ回路31と3次のブース
アルゴリズム用セレクタ回路32の遅延量も同一であ
り、その遅延量も全加算器1段分とする。
【0115】また被乗数の3倍数3Xを生成する3倍数
生成回路6において、この被乗数の3倍数3Xを生成す
るのに要する時間は全加算器9段分に相当すると仮定す
る。この場合、最終加算器列10は、3倍数生成回路6
と同様の回路で構成することが可能であるため(図4参
照)、その遅延量も全加算器9段の遅延量に相当する。
3倍数(3X)生成回路6において(2X+X)を演算
する場合、2倍数2Xは、配線により生成される。シフ
ト回路は利用されない。3倍数生成回路6の遅延量と最
終加算器列10の遅延量を等しくすることができる。こ
こで、3倍数生成回路6および最終加算器列10は、5
4段の全加算器を含む(キャリ伝搬)。したがって、実
際には54段の全加算器の遅延量が存在する。これは、
CLA(桁上げ先見法)などの高速化手法によりその遅
延量が全加算器の9段分に相当するように設定される。
この遅延量は一意的なものではない。
生成回路6において、この被乗数の3倍数3Xを生成す
るのに要する時間は全加算器9段分に相当すると仮定す
る。この場合、最終加算器列10は、3倍数生成回路6
と同様の回路で構成することが可能であるため(図4参
照)、その遅延量も全加算器9段の遅延量に相当する。
3倍数(3X)生成回路6において(2X+X)を演算
する場合、2倍数2Xは、配線により生成される。シフ
ト回路は利用されない。3倍数生成回路6の遅延量と最
終加算器列10の遅延量を等しくすることができる。こ
こで、3倍数生成回路6および最終加算器列10は、5
4段の全加算器を含む(キャリ伝搬)。したがって、実
際には54段の全加算器の遅延量が存在する。これは、
CLA(桁上げ先見法)などの高速化手法によりその遅
延量が全加算器の9段分に相当するように設定される。
この遅延量は一意的なものではない。
【0116】図5に示すように、乗数Yの54ビットy
1〜y54のうち、下位の18ビットy1〜y18を2
次のブースアルゴリズムのためのデコーダ回路3aに、
上位36ビットy19〜y54を3次のブースのアルゴ
リズム用のデコーダ回路3bへ接続する。この場合、図
5に示すように、2次のブースアルゴリズムのための加
算器アレイ5a内における遅延量は全加算器8段分の遅
延量となる(図2に示すように、全加算器のキャリ出力
COが次段の全加算器のキャリ入力へ与えられてい
る)。同様に3次のブースアルゴリズムのための加算器
アレイ5b内における遅延量は、全加算器12段分の遅
延量に等しくなる。
1〜y54のうち、下位の18ビットy1〜y18を2
次のブースアルゴリズムのためのデコーダ回路3aに、
上位36ビットy19〜y54を3次のブースのアルゴ
リズム用のデコーダ回路3bへ接続する。この場合、図
5に示すように、2次のブースアルゴリズムのための加
算器アレイ5a内における遅延量は全加算器8段分の遅
延量となる(図2に示すように、全加算器のキャリ出力
COが次段の全加算器のキャリ入力へ与えられてい
る)。同様に3次のブースアルゴリズムのための加算器
アレイ5b内における遅延量は、全加算器12段分の遅
延量に等しくなる。
【0117】通常、3次のブースのアルゴリズムを利用
して乗算を行なう場合、その乗算における操作において
生じる遅延量は、加算器アレイに含まれる加算器により
生じる遅延量と、3倍の被乗数を生成するために必要と
する遅延量とを含む。
して乗算を行なう場合、その乗算における操作において
生じる遅延量は、加算器アレイに含まれる加算器により
生じる遅延量と、3倍の被乗数を生成するために必要と
する遅延量とを含む。
【0118】本実施例においては、被乗数Xの3倍数を
生成するために必要とされる遅延量(全加算器9段分と
仮定されている)は、2次のブースアルゴリズムを利用
して加算している期間(加算器アレイ5aにおける全加
算器8段分の遅延量と、2次のブースのアルゴリズムに
従ったデコーダ回路3aにおける遅延量とを加えた遅延
量、すなわち全加算器9段分の期間)に隠蔽される。し
たがって、特別に被乗数の3倍数を生成するために必要
とされる遅延量を乗算操作に加算する必要がない。
生成するために必要とされる遅延量(全加算器9段分と
仮定されている)は、2次のブースアルゴリズムを利用
して加算している期間(加算器アレイ5aにおける全加
算器8段分の遅延量と、2次のブースのアルゴリズムに
従ったデコーダ回路3aにおける遅延量とを加えた遅延
量、すなわち全加算器9段分の期間)に隠蔽される。し
たがって、特別に被乗数の3倍数を生成するために必要
とされる遅延量を乗算操作に加算する必要がない。
【0119】すなわち、レジスタ回路1aにより、被乗
数データXが被乗数データ線2a上に与えられると、2
次のブースアルゴリズムのためのデコーダ回路3aと加
算器アレイ5aとにおける演算操作と並行して、3倍数
生成回路6において、被乗数Xの3倍数が生成される。
加算器アレイ5bは、2次のブースアルゴリズムを利用
する加算器アレイ5aの出力を加算する。したがって、
被乗数Xの3倍数を生成するために必要とされる遅延量
は隠蔽される。これにより、3次のブースのアルゴリズ
ムを利用することにより、生成される部分積の数を低減
し高速で乗算操作を行なうことができる。
数データXが被乗数データ線2a上に与えられると、2
次のブースアルゴリズムのためのデコーダ回路3aと加
算器アレイ5aとにおける演算操作と並行して、3倍数
生成回路6において、被乗数Xの3倍数が生成される。
加算器アレイ5bは、2次のブースアルゴリズムを利用
する加算器アレイ5aの出力を加算する。したがって、
被乗数Xの3倍数を生成するために必要とされる遅延量
は隠蔽される。これにより、3次のブースのアルゴリズ
ムを利用することにより、生成される部分積の数を低減
し高速で乗算操作を行なうことができる。
【0120】図6は、従来の乗算器における遅延量と本
実施例による乗算器における遅延量との比較を示す図で
ある。
実施例による乗算器における遅延量との比較を示す図で
ある。
【0121】図6(a)に示すように、たとえば図22
に示すような乗算器の構成を用いた場合、54の部分積
が生成される。したがって、中間和を生成するために5
3段の全加算器の遅延量が必要とされる。最終加算器列
における遅延量は全加算器9段の遅延量に相当すると仮
定している。したがって、従来の乗算器の場合、全加算
器62段の遅延量が必要とされる。
に示すような乗算器の構成を用いた場合、54の部分積
が生成される。したがって、中間和を生成するために5
3段の全加算器の遅延量が必要とされる。最終加算器列
における遅延量は全加算器9段の遅延量に相当すると仮
定している。したがって、従来の乗算器の場合、全加算
器62段の遅延量が必要とされる。
【0122】図6(b)に2次のブースアルゴリズムの
みを利用した乗算器における遅延量を示す。ブースデコ
ーダ回路における遅延量は全加算器1段の遅延量に相当
する。加算器アレイに含まれるブースのアルゴリズムに
従う選択動作に全加算器1段の遅延量が必要とされる。
2次のブースアルゴリズムを利用した場合、27個の部
分積が生成されるため、加算器アレイにおいては、26
段の加算器の遅延量が生じる。最終加算器列における遅
延量は全加算器9段分であると仮定している。したがっ
て、2次のブースのアルゴリズムのみを利用した場合に
は、54ビットのデータの乗算には、全加算器37段の
遅延量が必要とされる。
みを利用した乗算器における遅延量を示す。ブースデコ
ーダ回路における遅延量は全加算器1段の遅延量に相当
する。加算器アレイに含まれるブースのアルゴリズムに
従う選択動作に全加算器1段の遅延量が必要とされる。
2次のブースアルゴリズムを利用した場合、27個の部
分積が生成されるため、加算器アレイにおいては、26
段の加算器の遅延量が生じる。最終加算器列における遅
延量は全加算器9段分であると仮定している。したがっ
て、2次のブースのアルゴリズムのみを利用した場合に
は、54ビットのデータの乗算には、全加算器37段の
遅延量が必要とされる。
【0123】図6(c)に3次のブースのアルゴリズム
のみを利用した乗算器における遅延量を示す。ブースの
アルゴリズムによるデコード動作には全加算器1段の遅
延量が必要とされる。このデコード動作は被乗数Xの3
倍数を生成する3X生成動作と並行して実行される。3
X生成には全加算器9段の遅延量が必要とされる。次い
で、ブースのアルゴリズムに従った選択動作が実行され
る。これは全加算器1段の遅延量を必要とする。中間和
を生成するためには、3次のブースのアルゴリズムの場
合、18個の部分積が生成されるため、全加算器17段
の遅延量が必要とされる。最終加算においては全加算器
9段の遅延量が生じる。したがって、3次のブースアル
ゴリズムのみを利用した場合、全加算器36段の遅延量
が必要とされる。
のみを利用した乗算器における遅延量を示す。ブースの
アルゴリズムによるデコード動作には全加算器1段の遅
延量が必要とされる。このデコード動作は被乗数Xの3
倍数を生成する3X生成動作と並行して実行される。3
X生成には全加算器9段の遅延量が必要とされる。次い
で、ブースのアルゴリズムに従った選択動作が実行され
る。これは全加算器1段の遅延量を必要とする。中間和
を生成するためには、3次のブースのアルゴリズムの場
合、18個の部分積が生成されるため、全加算器17段
の遅延量が必要とされる。最終加算においては全加算器
9段の遅延量が生じる。したがって、3次のブースアル
ゴリズムのみを利用した場合、全加算器36段の遅延量
が必要とされる。
【0124】図6(d)に本実施例による2次のブース
アルゴリズムと3次のブースアルゴリズムとの両者を利
用する場合の遅延量が示される。この場合、2次のブー
スアルゴリズムを利用する部分においては、デコード動
作に必要とされる全加算器1段の遅延量、選択動作に必
要とされる全加算器1段の遅延量、および中間和を生成
するための8段の加算器の遅延量が生じる。この2次の
ブースのアルゴリズムを利用する乗算動作と並行して、
3Xの生成が実行される。3X生成には全加算器9段の
遅延量が必要とされる。3次のブースアルゴリズムに従
うデコード動作には全加算器1段の遅延量が生じる。こ
の3X生成と3次のブースアルゴリズムに従うデコード
動作とは並行して実行される。3次のブースアルゴリズ
ムに従う選択動作には全加算器1段の遅延量が生じる。
したがって、3次のブースアルゴリズムに従う選択動作
完了までに全加算器10段の遅延量が生じる。この3次
のブースアルゴリズムに従う選択動作完了までに必要と
される加算器10段の遅延量は、2次のブースアルゴリ
ズムを利用する加算動作完了(中間和生成)までに必要
とされる遅延量と等しい。2次のブースアルゴリズムを
利用する乗算操作と、3X生成操作とは並行して実行さ
れる。3次のブースアルゴリズムを利用する乗算操作に
は12段の加算器の遅延量が生じ、最終加算操作におい
て全加算器9段の遅延が生じる。したがって、合計全加
算器31段の遅延量が必要とされる。
アルゴリズムと3次のブースアルゴリズムとの両者を利
用する場合の遅延量が示される。この場合、2次のブー
スアルゴリズムを利用する部分においては、デコード動
作に必要とされる全加算器1段の遅延量、選択動作に必
要とされる全加算器1段の遅延量、および中間和を生成
するための8段の加算器の遅延量が生じる。この2次の
ブースのアルゴリズムを利用する乗算動作と並行して、
3Xの生成が実行される。3X生成には全加算器9段の
遅延量が必要とされる。3次のブースアルゴリズムに従
うデコード動作には全加算器1段の遅延量が生じる。こ
の3X生成と3次のブースアルゴリズムに従うデコード
動作とは並行して実行される。3次のブースアルゴリズ
ムに従う選択動作には全加算器1段の遅延量が生じる。
したがって、3次のブースアルゴリズムに従う選択動作
完了までに全加算器10段の遅延量が生じる。この3次
のブースアルゴリズムに従う選択動作完了までに必要と
される加算器10段の遅延量は、2次のブースアルゴリ
ズムを利用する加算動作完了(中間和生成)までに必要
とされる遅延量と等しい。2次のブースアルゴリズムを
利用する乗算操作と、3X生成操作とは並行して実行さ
れる。3次のブースアルゴリズムを利用する乗算操作に
は12段の加算器の遅延量が生じ、最終加算操作におい
て全加算器9段の遅延が生じる。したがって、合計全加
算器31段の遅延量が必要とされる。
【0125】この図6においては、乗数Yおよび被乗数
Xがレジスタ回路へラッチされる時間は0と設定されて
おり、また配線における信号伝搬遅延などはすべての乗
算器において同一であるため考慮していない。この図6
に明らかに見られるように、本発明による乗算器の構成
においては、乗算操作に要する時間が大幅に短縮されて
いる。
Xがレジスタ回路へラッチされる時間は0と設定されて
おり、また配線における信号伝搬遅延などはすべての乗
算器において同一であるため考慮していない。この図6
に明らかに見られるように、本発明による乗算器の構成
においては、乗算操作に要する時間が大幅に短縮されて
いる。
【0126】上述の説明においては、3倍数3Xを生成
するのに要する時間は、全加算器9段の遅延量に等しい
と仮定している。3X生成回路6の構成に従ってその遅
延量は異なる。3X生成に必要とされる時間を基準とし
て、2次のブースのアルゴリズムに従って乗算操作を行
なうために利用される乗数Yの下位のビット数を調節す
る。2次のブースのアルゴリズムで乗算操作を行なう場
合、用いられる乗数データビットの数が2pであれば、
全加算器(p−1)段の遅延量が必要とされる。3X生
成に必要とされる時間Tは、 T=k・t=((p−1)+1)t=p・t となる。ここで、tは全加算器1段の遅延量を示す。し
たがって、k=p、すなわち、3X生成に必要とされる
遅延量に含まれる全加算器の段数と2次のブースアルゴ
リズムに従って乗算される乗数Yの下位ビットの数の1
/2とを等しくする。これにより、3X生成と、2次の
ブースアルゴリズムに従った乗算操作とを並行して実行
することができ、高速で乗算を行なうことのできる乗算
回路を得ることができる。
するのに要する時間は、全加算器9段の遅延量に等しい
と仮定している。3X生成回路6の構成に従ってその遅
延量は異なる。3X生成に必要とされる時間を基準とし
て、2次のブースのアルゴリズムに従って乗算操作を行
なうために利用される乗数Yの下位のビット数を調節す
る。2次のブースのアルゴリズムで乗算操作を行なう場
合、用いられる乗数データビットの数が2pであれば、
全加算器(p−1)段の遅延量が必要とされる。3X生
成に必要とされる時間Tは、 T=k・t=((p−1)+1)t=p・t となる。ここで、tは全加算器1段の遅延量を示す。し
たがって、k=p、すなわち、3X生成に必要とされる
遅延量に含まれる全加算器の段数と2次のブースアルゴ
リズムに従って乗算される乗数Yの下位ビットの数の1
/2とを等しくする。これにより、3X生成と、2次の
ブースアルゴリズムに従った乗算操作とを並行して実行
することができ、高速で乗算を行なうことのできる乗算
回路を得ることができる。
【0127】(実施例2)前述のごとく、3次のブース
アルゴリズムを利用する場合、被乗数Xの3倍数を生成
するために長時間を要し、このため部分積の数低減とい
うブースアルゴリズムの効果が損なわれる。以下に、こ
の3X生成による遅延を排除し、高速で3次のブースア
ルゴリズムに従って乗算を行なう構成について説明す
る。
アルゴリズムを利用する場合、被乗数Xの3倍数を生成
するために長時間を要し、このため部分積の数低減とい
うブースアルゴリズムの効果が損なわれる。以下に、こ
の3X生成による遅延を排除し、高速で3次のブースア
ルゴリズムに従って乗算を行なう構成について説明す
る。
【0128】図7はこの発明の第2の実施例である乗算
器の全体の構成を示す図である。図7において、乗算器
は、乗数データYを信号線72bを介して受けて保持す
る乗数レジスタ回路1bと、乗数レジスタ回路1bに保
持された乗数データをデータ線2bを介して受けて3次
のブースのアルゴリズムに従ってデコード動作を行なう
3次のブースデコーダ回路4と、被乗数Xを信号線72
aを介して受けてこの被乗数Xの3倍数3Xを生成する
3X生成回路6と、3X生成回路6で生成した3倍数3
Xおよび被乗数Xを信号線73を受けて保持するX/3
X保持レジスタ回路71と、このレジスタ回路71の出
力を受け、3次のブースデコーダ回路4からのデコード
結果信号に従って、3次のブースアルゴリズムを利用し
た乗算を行なう加算器アレイ5bと、この加算器アレイ
5bからの中間和を加算し最終乗算結果を信号線11上
に出力する最終加算器列10を含む。加算器アレイ5b
は、3次のブースのアルゴリズムに従って選択動作を実
行する選択器を含む。
器の全体の構成を示す図である。図7において、乗算器
は、乗数データYを信号線72bを介して受けて保持す
る乗数レジスタ回路1bと、乗数レジスタ回路1bに保
持された乗数データをデータ線2bを介して受けて3次
のブースのアルゴリズムに従ってデコード動作を行なう
3次のブースデコーダ回路4と、被乗数Xを信号線72
aを介して受けてこの被乗数Xの3倍数3Xを生成する
3X生成回路6と、3X生成回路6で生成した3倍数3
Xおよび被乗数Xを信号線73を受けて保持するX/3
X保持レジスタ回路71と、このレジスタ回路71の出
力を受け、3次のブースデコーダ回路4からのデコード
結果信号に従って、3次のブースアルゴリズムを利用し
た乗算を行なう加算器アレイ5bと、この加算器アレイ
5bからの中間和を加算し最終乗算結果を信号線11上
に出力する最終加算器列10を含む。加算器アレイ5b
は、3次のブースのアルゴリズムに従って選択動作を実
行する選択器を含む。
【0129】この図7に示す乗算器の構成においては、
被乗数Xがレジスタ回路71にラッチされる前に3X生
成回路6において被乗数の3倍数3Xが生成される。し
たがって、加算器アレイ5bへは、被乗数Xと3倍数3
Xとが並列に与えられる。加算器アレイにおける乗算操
作において3倍数データを生成するために必要とされる
遅延は生じない。このため高速で3次のブースのアルゴ
リズムに従って乗算を行なうことができる。
被乗数Xがレジスタ回路71にラッチされる前に3X生
成回路6において被乗数の3倍数3Xが生成される。し
たがって、加算器アレイ5bへは、被乗数Xと3倍数3
Xとが並列に与えられる。加算器アレイにおける乗算操
作において3倍数データを生成するために必要とされる
遅延は生じない。このため高速で3次のブースのアルゴ
リズムに従って乗算を行なうことができる。
【0130】この図7に示す乗算器における乗算に必要
とされる時間を図8に示す。図8に示す遅延時間におい
ては、先の実施例1において用いられた仮定が利用され
る。乗数データYは54ビットであり、ブースのデコー
ド操作およびブースの選択操作それぞれに全加算器1段
の遅延量が必要とされ、最終加算および3X生成に9段
の全加算器の遅延量が生じると仮定される。3次のブー
スのアルゴリズムの場合、加算器アレイにおいては、
(54/3)−1=17より、17段の加算器の遅延量
が生じる。被乗数Xをレジスタ回路に保持した後に3倍
数3Xを生成する場合、必要とされる遅延時間量は全加
算器36段の遅延量に相当する。
とされる時間を図8に示す。図8に示す遅延時間におい
ては、先の実施例1において用いられた仮定が利用され
る。乗数データYは54ビットであり、ブースのデコー
ド操作およびブースの選択操作それぞれに全加算器1段
の遅延量が必要とされ、最終加算および3X生成に9段
の全加算器の遅延量が生じると仮定される。3次のブー
スのアルゴリズムの場合、加算器アレイにおいては、
(54/3)−1=17より、17段の加算器の遅延量
が生じる。被乗数Xをレジスタ回路に保持した後に3倍
数3Xを生成する場合、必要とされる遅延時間量は全加
算器36段の遅延量に相当する。
【0131】一方、被乗数Xをレジスタ回路にラッチす
る前に3倍数3Xを生成する場合には、被乗数Xがレジ
スタ回路にラッチされてから乗算が終了するまでに必要
とされる時間は全加算器28段の遅延量に等しくなる。
明らかに、3倍数3X生成に必要とされる時間が排除さ
れており、高速で3次のブースのアルゴリズムに従って
乗算を実行することができる。
る前に3倍数3Xを生成する場合には、被乗数Xがレジ
スタ回路にラッチされてから乗算が終了するまでに必要
とされる時間は全加算器28段の遅延量に等しくなる。
明らかに、3倍数3X生成に必要とされる時間が排除さ
れており、高速で3次のブースのアルゴリズムに従って
乗算を実行することができる。
【0132】なお、X/3X保持レジスタ回路71にお
いて被乗数Xと3倍数3Xを保持する場合、この被乗数
Xの各ビットと3倍数3Xの各ビットとが交互に配置さ
れる構成が利用されてもよい。
いて被乗数Xと3倍数3Xを保持する場合、この被乗数
Xの各ビットと3倍数3Xの各ビットとが交互に配置さ
れる構成が利用されてもよい。
【0133】上述のように、被乗数レジスタ回路へ被乗
数を入力する前に、3X生成回路で3倍数3Xを生成
し、3倍数3Xと被乗数Xとをレジスタ回路で保持して
おくことにより、高速で乗算を行なうことができる。
数を入力する前に、3X生成回路で3倍数3Xを生成
し、3倍数3Xと被乗数Xとをレジスタ回路で保持して
おくことにより、高速で乗算を行なうことができる。
【0134】(実施例3)図9は乗算器を含むシステム
の構成例を示す。図9において、集積回路装置500
は、外部から与えられるデータを処理し、乗算すべきデ
ータ、すなわち乗数データYと被乗数データXとを生成
する処理装置502と、被乗数データXと乗数データY
とを受けて乗算する乗算器504とを含む。処理装置5
02は、任意の処理装置であってよい。乗算されるべき
データを処理するものであればよい。処理装置502か
らはデータバス506を介してデータXおよびYが乗算
器504へ与えられる。データバス506において、上
位ビットに乗数データYが配置され、下位ビットに被乗
数データXが配置される。したがって、通常、乗算器5
04においては、その一方側(図9において上部)から
被乗数データXが入力され、他方側(図9において乗算
器504の左側辺)から乗数データYが与えられる。乗
算器504からの出力は図9における右側辺および底辺
から出力される。集積回路装置500の乗算結果は出力
ピン端子がこのアレイに沿って配置されているからであ
る。したがって、通常、乗算器504においては、乗数
レジスタ回路は加算器アレイの左側辺に沿って配置さ
れ、被乗数レジスタ回路は加算器アレイの上辺に沿って
配置される。
の構成例を示す。図9において、集積回路装置500
は、外部から与えられるデータを処理し、乗算すべきデ
ータ、すなわち乗数データYと被乗数データXとを生成
する処理装置502と、被乗数データXと乗数データY
とを受けて乗算する乗算器504とを含む。処理装置5
02は、任意の処理装置であってよい。乗算されるべき
データを処理するものであればよい。処理装置502か
らはデータバス506を介してデータXおよびYが乗算
器504へ与えられる。データバス506において、上
位ビットに乗数データYが配置され、下位ビットに被乗
数データXが配置される。したがって、通常、乗算器5
04においては、その一方側(図9において上部)から
被乗数データXが入力され、他方側(図9において乗算
器504の左側辺)から乗数データYが与えられる。乗
算器504からの出力は図9における右側辺および底辺
から出力される。集積回路装置500の乗算結果は出力
ピン端子がこのアレイに沿って配置されているからであ
る。したがって、通常、乗算器504においては、乗数
レジスタ回路は加算器アレイの左側辺に沿って配置さ
れ、被乗数レジスタ回路は加算器アレイの上辺に沿って
配置される。
【0135】図10は、乗算器に含まれる加算器アレイ
150における信号の伝搬経路を示す。この加算器アレ
イ150は中間和を生成するための加算器アレイと最終
積を生成するための最終加算器列を含んでもよい。この
加算器アレイ150において、被乗数Xの最上位ビット
をxn、最下位ビットをx1、乗数Yの最上位ビットを
yn、最下位ビットをy1でそれぞれ表わす。この場
合、点Aから点Bへ向かって信号が伝搬する(たとえば
図22における乗算器アレイの配置参照)。加算器アレ
イにおいては、加算器のキャリ出力が次段の隣接上位ビ
ットに設けられた加算器のキャリ入力または一方入力へ
与えられるためである。この信号伝搬経路が加算器アレ
イにおける遅延時間を決定する。したがって、加算器ア
レイ150内においては、その右上方の信号は左下方の
信号よりも早く確定しているのが好ましい。
150における信号の伝搬経路を示す。この加算器アレ
イ150は中間和を生成するための加算器アレイと最終
積を生成するための最終加算器列を含んでもよい。この
加算器アレイ150において、被乗数Xの最上位ビット
をxn、最下位ビットをx1、乗数Yの最上位ビットを
yn、最下位ビットをy1でそれぞれ表わす。この場
合、点Aから点Bへ向かって信号が伝搬する(たとえば
図22における乗算器アレイの配置参照)。加算器アレ
イにおいては、加算器のキャリ出力が次段の隣接上位ビ
ットに設けられた加算器のキャリ入力または一方入力へ
与えられるためである。この信号伝搬経路が加算器アレ
イにおける遅延時間を決定する。したがって、加算器ア
レイ150内においては、その右上方の信号は左下方の
信号よりも早く確定しているのが好ましい。
【0136】乗数データを伝達する信号線には、セレク
タ回路またはAND回路および配線容量などの負荷が付
随する。通常、乗算データが16ビット以上になると、
この負荷は無視することができない大きな値となり、無
視することのできない信号伝搬遅延を生じさせる。乗数
データまたはブースのデコード結果信号は図10のA点
よりもB点へ早く到達する。加算器アレイ150におけ
る加算(乗算操作)はA点に確定したデータが到達した
時点から開始される。したがって、乗数データまたはブ
ースデコード結果の信号伝搬遅延により乗算の高速性が
損なわれる。この欠点を克服する構成について以下に説
明する。
タ回路またはAND回路および配線容量などの負荷が付
随する。通常、乗算データが16ビット以上になると、
この負荷は無視することができない大きな値となり、無
視することのできない信号伝搬遅延を生じさせる。乗数
データまたはブースのデコード結果信号は図10のA点
よりもB点へ早く到達する。加算器アレイ150におけ
る加算(乗算操作)はA点に確定したデータが到達した
時点から開始される。したがって、乗数データまたはブ
ースデコード結果の信号伝搬遅延により乗算の高速性が
損なわれる。この欠点を克服する構成について以下に説
明する。
【0137】図11はこの発明の第3の実施例である乗
算器の構成を示す図である。図11においては、一例と
して2次のブースのアルゴリズムを利用する乗算器の構
成が示される。図11において、乗数データYを保持す
るレジスタ回路1bおよび、このレジスタ回路1bから
データ線2bを介して伝達される乗数データY(データ
ビットy1〜yn)を受けて2次のブースのアルゴリズ
ムに従ってデコード動作を実行するデコード回路3が、
加算器アレイ5aの図11における右側辺に沿って配置
される。すなわち、乗数データおよびブースのデコード
結果を生成する回路部分が被乗数データXの下位ビット
x1側に配置され、かつ乗数データYの下位ビットy1
が被乗数データXを保持するレジスタ回路に近接して出
力されるように配置される。
算器の構成を示す図である。図11においては、一例と
して2次のブースのアルゴリズムを利用する乗算器の構
成が示される。図11において、乗数データYを保持す
るレジスタ回路1bおよび、このレジスタ回路1bから
データ線2bを介して伝達される乗数データY(データ
ビットy1〜yn)を受けて2次のブースのアルゴリズ
ムに従ってデコード動作を実行するデコード回路3が、
加算器アレイ5aの図11における右側辺に沿って配置
される。すなわち、乗数データおよびブースのデコード
結果を生成する回路部分が被乗数データXの下位ビット
x1側に配置され、かつ乗数データYの下位ビットy1
が被乗数データXを保持するレジスタ回路に近接して出
力されるように配置される。
【0138】加算器アレイ5aは2次のブースアルゴリ
ズムを利用する選択回路を含み、2次のブースアルゴリ
ズムに従った部分積の生成、および中間和の生成を実行
する。加算器アレイ5aの出力はデータ線9aを介して
最終加算器列10へ与えられる。最終加算器列10から
積結果がデータ線11上に伝達される。
ズムを利用する選択回路を含み、2次のブースアルゴリ
ズムに従った部分積の生成、および中間和の生成を実行
する。加算器アレイ5aの出力はデータ線9aを介して
最終加算器列10へ与えられる。最終加算器列10から
積結果がデータ線11上に伝達される。
【0139】この図11に示す配置の場合、ブースのデ
コード結果は加算器アレイ5aの被乗数データXの下位
ビット側から入力される。すなわち、図10に示すA点
に到達する信号はB点に到達する信号よりも早く確定状
態となる。加算器アレイ5aにおいては、被乗数データ
Xの下位ビットからこの加算器アレイ5aの対角線方向
に沿って信号が伝搬する。上位ビットの信号線について
は、信号伝搬遅延が生じても、下位ビットの乗算結果が
確定するまでに確定データが到達していればよい。した
がって、図11に示すように、デコード回路3がその下
位ビットのデコード結果出力が被乗数データの下位ビッ
ト位置側から加算器アレイ5aへ入力する構成とするこ
とにより、加算器アレイ5aにおけるデコード結果の信
号伝搬遅延の影響を受けることなく高速で乗算操作を実
行することができる。
コード結果は加算器アレイ5aの被乗数データXの下位
ビット側から入力される。すなわち、図10に示すA点
に到達する信号はB点に到達する信号よりも早く確定状
態となる。加算器アレイ5aにおいては、被乗数データ
Xの下位ビットからこの加算器アレイ5aの対角線方向
に沿って信号が伝搬する。上位ビットの信号線について
は、信号伝搬遅延が生じても、下位ビットの乗算結果が
確定するまでに確定データが到達していればよい。した
がって、図11に示すように、デコード回路3がその下
位ビットのデコード結果出力が被乗数データの下位ビッ
ト位置側から加算器アレイ5aへ入力する構成とするこ
とにより、加算器アレイ5aにおけるデコード結果の信
号伝搬遅延の影響を受けることなく高速で乗算操作を実
行することができる。
【0140】図12はこの発明の第3の実施例の効果を
示す図である。図12(a)に、乗数データYが被乗数
データXの上位ビット側から入力する場合の演算時間を
示し、図12(b)に図11に示すように乗数データY
を被乗数データXの下位ビット側から入力する場合の演
算時間を示す。A点までに乗数データ(ブースのデコー
ド結果)が伝達される時間が被乗数データの下位ビット
側から入力した方が短くなり、その時間分演算操作に要
する時間が短くなる。アレイ部加算時間は同一である。
示す図である。図12(a)に、乗数データYが被乗数
データXの上位ビット側から入力する場合の演算時間を
示し、図12(b)に図11に示すように乗数データY
を被乗数データXの下位ビット側から入力する場合の演
算時間を示す。A点までに乗数データ(ブースのデコー
ド結果)が伝達される時間が被乗数データの下位ビット
側から入力した方が短くなり、その時間分演算操作に要
する時間が短くなる。アレイ部加算時間は同一である。
【0141】図11に示す構成において2次のブースア
ルゴリズムを利用した乗算器を示している。ブースのア
ルゴリズムを利用しない乗算器であっても、同様の効果
が得られる。また、利用されるブースのアルゴリズムは
3次以上の高次のブースのアルゴリズムであってもよ
い。すなわち、いずれの場合においても、乗算データま
たはブースのデコード結果を被乗数データXの下位ビッ
ト側から加算器アレイに入力することにより乗算の総演
算時間が短くなる。
ルゴリズムを利用した乗算器を示している。ブースのア
ルゴリズムを利用しない乗算器であっても、同様の効果
が得られる。また、利用されるブースのアルゴリズムは
3次以上の高次のブースのアルゴリズムであってもよ
い。すなわち、いずれの場合においても、乗算データま
たはブースのデコード結果を被乗数データXの下位ビッ
ト側から加算器アレイに入力することにより乗算の総演
算時間が短くなる。
【0142】ここで、図11に示す構成の場合、ブース
のデコード回路3および乗数データを保持するレジスタ
回路1bが被乗数データの下位ビット側に配置されてい
る。加算器アレイ5aからはこのデコード回路3および
レジスタ回路1bの方向へ乗算結果が出力される(図1
0参照)。この場合、加算器アレイからの積結果はデー
タ線8aおよび2bと異なる配線層で取出す多層配線構
造が利用される。
のデコード回路3および乗数データを保持するレジスタ
回路1bが被乗数データの下位ビット側に配置されてい
る。加算器アレイ5aからはこのデコード回路3および
レジスタ回路1bの方向へ乗算結果が出力される(図1
0参照)。この場合、加算器アレイからの積結果はデー
タ線8aおよび2bと異なる配線層で取出す多層配線構
造が利用される。
【0143】図13は、図11の配置を実現する乗数デ
ータおよび被乗数データを伝達する信号線の配線構造を
示す図である。図13において、被乗数データXは第1
層配線層602によりレジスタ回路1aへ伝達される。
データビットの配列順序はそのまま維持される。乗数デ
ータYはまず第1層配線層604により伝達される。こ
の第1層配線層604は次に第2層配線層606に接続
される。第2層配線層606は被乗数データXを伝達す
る第1層配線層602と交差する。次いでこの第2層配
線層606は再び第1層配線層608に接続される。こ
の第2層配線層606と第1層配線層608との間の接
続において、乗数データビットy1〜ynの配列順序が
逆転される。第1層配線層608は乗数格納用のレジス
タ回路1bへ与えられる。これにより、乗数データYの
最下位ビットy1が被乗数データXの最下位ビットx1
に近接して配置する構成が実現される。加算器アレイ5
からの出力は第2層配線層610からなるデータ線によ
り形成される。これにより乗数レジスタ回路1b(およ
びブースのデコーダ回路)が加算器アレイ5の右側(図
13において)に配置されている場合においても容易に
積結果を出力することができる。ここで、「第1層配線
層」および「第2層配線層」という名称は、単に便宜的
なものであり、実際の乗算器の構成において、半導体基
板上に最初に配設される配線層および2番目に配設され
る配線層を意味してはいない。データを伝達する配線層
が異なる層の配線層であることを示すために用いられて
いるだけである。
ータおよび被乗数データを伝達する信号線の配線構造を
示す図である。図13において、被乗数データXは第1
層配線層602によりレジスタ回路1aへ伝達される。
データビットの配列順序はそのまま維持される。乗数デ
ータYはまず第1層配線層604により伝達される。こ
の第1層配線層604は次に第2層配線層606に接続
される。第2層配線層606は被乗数データXを伝達す
る第1層配線層602と交差する。次いでこの第2層配
線層606は再び第1層配線層608に接続される。こ
の第2層配線層606と第1層配線層608との間の接
続において、乗数データビットy1〜ynの配列順序が
逆転される。第1層配線層608は乗数格納用のレジス
タ回路1bへ与えられる。これにより、乗数データYの
最下位ビットy1が被乗数データXの最下位ビットx1
に近接して配置する構成が実現される。加算器アレイ5
からの出力は第2層配線層610からなるデータ線によ
り形成される。これにより乗数レジスタ回路1b(およ
びブースのデコーダ回路)が加算器アレイ5の右側(図
13において)に配置されている場合においても容易に
積結果を出力することができる。ここで、「第1層配線
層」および「第2層配線層」という名称は、単に便宜的
なものであり、実際の乗算器の構成において、半導体基
板上に最初に配設される配線層および2番目に配設され
る配線層を意味してはいない。データを伝達する配線層
が異なる層の配線層であることを示すために用いられて
いるだけである。
【0144】(実施例4)図11に示すように乗数用レ
ジスタ回路1bおよびブースのデコード回路3を被乗数
データXの下位ビット側に配置した場合、多層配線構造
を利用することにより加算器アレイからの出力を取出す
ことができる。しかし配線の自由度が低減される。そこ
で、配線の自由度を大幅に改善するための構成を次に説
明する。
ジスタ回路1bおよびブースのデコード回路3を被乗数
データXの下位ビット側に配置した場合、多層配線構造
を利用することにより加算器アレイからの出力を取出す
ことができる。しかし配線の自由度が低減される。そこ
で、配線の自由度を大幅に改善するための構成を次に説
明する。
【0145】図14はこの発明の第4の実施例である乗
算器の構成を示す図である。図14において、この乗算
器は、乗数の所定数の下位ビットを保持するための第1
のレジスタ回路1b1と、このレジスタ回路1b1に保
持されたデータビットをデータ線2aに受け、2次のブ
ースのアルゴリズムに従ってデコード動作を行なうブー
スのデコーダ回路3−1と、乗数データYの上位ビット
を保持するレジスタ回路1b2と、レジスタ回路1b2
の保持するデータビットをデータ線2a2を介して受
け、2次のブースのアルゴリズムに従ってデコード動作
を行なうブースのデコーダ回路3−2を含む。レジスタ
回路1b1およびブースのデコーダ回路3−1は被乗数
データXの下位ビット側に配置され、レジスタ回路1b
2およびブースのデコーダ回路3−2は被乗数データX
の上位ビット側に配置される。この場合、図11に示す
構成と比べて、加算器アレイ5aからデータを取出すた
めの領域が確保される(ブースのデコーダ回路3−2お
よびレジスタ回路1b2の部分)。これにより容易に加
算器アレイ5aから積結果データを取出すことができ
る。
算器の構成を示す図である。図14において、この乗算
器は、乗数の所定数の下位ビットを保持するための第1
のレジスタ回路1b1と、このレジスタ回路1b1に保
持されたデータビットをデータ線2aに受け、2次のブ
ースのアルゴリズムに従ってデコード動作を行なうブー
スのデコーダ回路3−1と、乗数データYの上位ビット
を保持するレジスタ回路1b2と、レジスタ回路1b2
の保持するデータビットをデータ線2a2を介して受
け、2次のブースのアルゴリズムに従ってデコード動作
を行なうブースのデコーダ回路3−2を含む。レジスタ
回路1b1およびブースのデコーダ回路3−1は被乗数
データXの下位ビット側に配置され、レジスタ回路1b
2およびブースのデコーダ回路3−2は被乗数データX
の上位ビット側に配置される。この場合、図11に示す
構成と比べて、加算器アレイ5aからデータを取出すた
めの領域が確保される(ブースのデコーダ回路3−2お
よびレジスタ回路1b2の部分)。これにより容易に加
算器アレイ5aから積結果データを取出すことができ
る。
【0146】図14において、加算器アレイ5aにおい
ては、信号は右上から左下への対角線方向に沿って進
む。上位ビットの演算に関しては、加算器アレイ5aに
おける演算は早い時期にその出力データは決定されてい
なくてもよい。したがって、図14に示すように、乗数
データYの上位ビット用のレジスタ回路1b2およびデ
コーダ回路3−2を被乗数データXの上位ビット側に設
けたとしても演算に対しその信号伝搬遅延が及ぼす影響
は生じない。したがって、図14に示す構成を利用すれ
ば、加算器アレイ5aから積結果を取出す面積を十分に
確保しつつその高速演算性が損なわれることのない乗算
器が得られる。
ては、信号は右上から左下への対角線方向に沿って進
む。上位ビットの演算に関しては、加算器アレイ5aに
おける演算は早い時期にその出力データは決定されてい
なくてもよい。したがって、図14に示すように、乗数
データYの上位ビット用のレジスタ回路1b2およびデ
コーダ回路3−2を被乗数データXの上位ビット側に設
けたとしても演算に対しその信号伝搬遅延が及ぼす影響
は生じない。したがって、図14に示す構成を利用すれ
ば、加算器アレイ5aから積結果を取出す面積を十分に
確保しつつその高速演算性が損なわれることのない乗算
器が得られる。
【0147】(実施例5)図15はこの発明の第5の実
施例である乗算器の構成を示す図である。図15に示す
乗算器は、ブースのアルゴリズムに従って乗算を行なう
構成に加えてさらに、加算器アレイ5aの右側(被乗数
データXの下位ビット側)に、乗数データYの所定数の
下位ビットy1〜ypを受けるレジスタ回路1b1と、
このレジスタ回路1b1に保持されたデータを2次のブ
ースのアルゴリズムに従ってデコード動作を行なうブー
スのデコーダ回路3−1をさらに備える。ブースのデコ
ーダ回路3−1の出力はデータ線8aを介して加算器ア
レイ5aへ入力される。レジスタ回路1bは乗数データ
Yを保持し、ブースのデコード回路3は、このレジスタ
回路1bに保持された乗数データYの全ビットy1〜y
nを受けてデコードし、そのデコード結果をデータ線8
を介して加算器アレイ5aへ入力する。
施例である乗算器の構成を示す図である。図15に示す
乗算器は、ブースのアルゴリズムに従って乗算を行なう
構成に加えてさらに、加算器アレイ5aの右側(被乗数
データXの下位ビット側)に、乗数データYの所定数の
下位ビットy1〜ypを受けるレジスタ回路1b1と、
このレジスタ回路1b1に保持されたデータを2次のブ
ースのアルゴリズムに従ってデコード動作を行なうブー
スのデコーダ回路3−1をさらに備える。ブースのデコ
ーダ回路3−1の出力はデータ線8aを介して加算器ア
レイ5aへ入力される。レジスタ回路1bは乗数データ
Yを保持し、ブースのデコード回路3は、このレジスタ
回路1bに保持された乗数データYの全ビットy1〜y
nを受けてデコードし、そのデコード結果をデータ線8
を介して加算器アレイ5aへ入力する。
【0148】図15に示す構成の場合、加算器アレイ5
aにおいて、デコード結果の下位ビットの信号を伝達す
る信号線は両側のデコーダ回路3および3−1により駆
動される。これにより、高速で信号が確定すべきデータ
線上の信号が確定状態となり、被乗数データXの下位ビ
ット側の信号をより高速で確定状態とすることができ、
乗算に要する演算時間を大幅に短縮することが可能とな
る。
aにおいて、デコード結果の下位ビットの信号を伝達す
る信号線は両側のデコーダ回路3および3−1により駆
動される。これにより、高速で信号が確定すべきデータ
線上の信号が確定状態となり、被乗数データXの下位ビ
ット側の信号をより高速で確定状態とすることができ、
乗算に要する演算時間を大幅に短縮することが可能とな
る。
【0149】実施例3ないし実施例5に示す構成におい
て、2次のブースアルゴリズムを利用する乗算器の構成
が示されている。これは3次以上のブースのアルゴリズ
ムを利用する乗算器であってもよく、通常のブースのア
ルゴリズムを利用しない乗算器であってもよい。また2
次のブースのアルゴリズムと3次以上の高次のブースの
アルゴリズムの両者を利用する構成であってもよい。
て、2次のブースアルゴリズムを利用する乗算器の構成
が示されている。これは3次以上のブースのアルゴリズ
ムを利用する乗算器であってもよく、通常のブースのア
ルゴリズムを利用しない乗算器であってもよい。また2
次のブースのアルゴリズムと3次以上の高次のブースの
アルゴリズムの両者を利用する構成であってもよい。
【0150】(実施例6)従来の乗算器においては、ブ
ースデコーダによるデコード動作の完了後加算器アレイ
内で加算操作が実行される。このため、乗算に要する時
間が長くなる。そこで、以下に、このブースデコーダに
よるデコード動作に要する時間を見掛け上なくすことの
できる構成について以下に説明する。
ースデコーダによるデコード動作の完了後加算器アレイ
内で加算操作が実行される。このため、乗算に要する時
間が長くなる。そこで、以下に、このブースデコーダに
よるデコード動作に要する時間を見掛け上なくすことの
できる構成について以下に説明する。
【0151】図16はこの発明の第6の実施例である乗
算器の全体の構成を示す図である。図16において、乗
算器は、乗数を保持するための乗数レジスタ回路1b
と、乗数レジスタ回路1bからの乗数データをデータ線
2bを介して受けてブースのアルゴリズムに従ってデコ
ード動作を行なうブースのデコード回路3と、被乗数X
を保持する被乗数レジスタ回路1aを含む。この乗数レ
ジスタ回路1b、ブースのデコード回路3、および被乗
数レジスタ1aは先の実施例において説明したものと同
じ構成を備える。
算器の全体の構成を示す図である。図16において、乗
算器は、乗数を保持するための乗数レジスタ回路1b
と、乗数レジスタ回路1bからの乗数データをデータ線
2bを介して受けてブースのアルゴリズムに従ってデコ
ード動作を行なうブースのデコード回路3と、被乗数X
を保持する被乗数レジスタ回路1aを含む。この乗数レ
ジスタ回路1b、ブースのデコード回路3、および被乗
数レジスタ1aは先の実施例において説明したものと同
じ構成を備える。
【0152】乗算器はさらに、被乗数レジスタ回路1a
から被乗数データXをデータ線2aを介して受け、前処
理を行なう前処理加算器アレイ700と、ブースのデコ
ード回路3の所定の下位ビットのデコード結果信号を受
けてデコード動作を行なう後処理デコード回路704
と、後処理デコード回路704からのデコード結果を信
号線706を介して受け、前処理加算器アレイ700の
出力のうちの対応の出力を選択する選択回路702を含
む。前処理加算器アレイ700は、被乗数レジスタ回路
1aからの被乗数データXを受け、後処理デコード回路
704に与えられるデコード結果信号の数に対応する部
分積をすべて生成する。また前処理加算器アレイ700
は、この生成された可能な部分積の和すべてについて加
算を行なう。したがって、前処理加算器アレイ700に
おいては生成される部分積の可能な演算の組合せすべて
に対して加算が実行される。
から被乗数データXをデータ線2aを介して受け、前処
理を行なう前処理加算器アレイ700と、ブースのデコ
ード回路3の所定の下位ビットのデコード結果信号を受
けてデコード動作を行なう後処理デコード回路704
と、後処理デコード回路704からのデコード結果を信
号線706を介して受け、前処理加算器アレイ700の
出力のうちの対応の出力を選択する選択回路702を含
む。前処理加算器アレイ700は、被乗数レジスタ回路
1aからの被乗数データXを受け、後処理デコード回路
704に与えられるデコード結果信号の数に対応する部
分積をすべて生成する。また前処理加算器アレイ700
は、この生成された可能な部分積の和すべてについて加
算を行なう。したがって、前処理加算器アレイ700に
おいては生成される部分積の可能な演算の組合せすべて
に対して加算が実行される。
【0153】後処理デコード回路704は、ブースのデ
コード回路3からの所定数のデコード結果信号を受け前
処理加算器アレイ700が生成した加算結果のうちの対
応の1つを選択する信号を信号線706上に生成する。
選択回路702は、後処理デコード回路704からのデ
コード結果信号に従って、前処理加算器アレイ700か
らの加算結果の1つを選択する。
コード回路3からの所定数のデコード結果信号を受け前
処理加算器アレイ700が生成した加算結果のうちの対
応の1つを選択する信号を信号線706上に生成する。
選択回路702は、後処理デコード回路704からのデ
コード結果信号に従って、前処理加算器アレイ700か
らの加算結果の1つを選択する。
【0154】乗算器はさらに、このブースのデコード回
路3からの残りのデコード結果信号に従って、被乗数レ
ジスタ1aからの被乗数データを受けて部分積を生成す
るとともに、選択回路702から与えられた加算結果と
生成された部分積とを加算し中間和を生成する加算器ア
レイ5と、この加算器アレイ5で生成された中間和を加
算して乗算結果を生成する最終加算器列10を含む。次
に動作について説明する。
路3からの残りのデコード結果信号に従って、被乗数レ
ジスタ1aからの被乗数データを受けて部分積を生成す
るとともに、選択回路702から与えられた加算結果と
生成された部分積とを加算し中間和を生成する加算器ア
レイ5と、この加算器アレイ5で生成された中間和を加
算して乗算結果を生成する最終加算器列10を含む。次
に動作について説明する。
【0155】今、ブースのデコード回路3は、2次のブ
ースのアルゴリズムに従ってデコード動作を行なうと仮
定する。前処理加算器アレイ700は、2つの部分積の
生成および両者の加算を行なうと想定する。前処理加算
器アレイ700においては、第1および第2の部分積そ
れぞれについて−2X、−X、0、X、および2Xの各
演算操作に従って部分積が生成される。したがって第1
の部分積および第2の部分積はそれぞれ5種類生成され
る。この各5種類の操作について加算が実行される。し
たがって、この前処理加算器アレイ700から出力され
る加算結果は5・5=25種類存在する。
ースのアルゴリズムに従ってデコード動作を行なうと仮
定する。前処理加算器アレイ700は、2つの部分積の
生成および両者の加算を行なうと想定する。前処理加算
器アレイ700においては、第1および第2の部分積そ
れぞれについて−2X、−X、0、X、および2Xの各
演算操作に従って部分積が生成される。したがって第1
の部分積および第2の部分積はそれぞれ5種類生成され
る。この各5種類の操作について加算が実行される。し
たがって、この前処理加算器アレイ700から出力され
る加算結果は5・5=25種類存在する。
【0156】後処理デコード回路704へは、ブースの
デコード回路3からこの第1および第2の部分積に対す
るデコード結果信号が与えられる。後処理デコード回路
704はこの第1および第2の部分積それぞれに対する
演算指示信号をデコードし、信号線706上にこの25
種類の加算結果のうちの1つを指定する信号を発生す
る。選択回路702はこの信号線706上の信号に応答
してこの25種類の加算結果のうちの1つを選択して信
号線710を介して加算器アレイ5へ与える。
デコード回路3からこの第1および第2の部分積に対す
るデコード結果信号が与えられる。後処理デコード回路
704はこの第1および第2の部分積それぞれに対する
演算指示信号をデコードし、信号線706上にこの25
種類の加算結果のうちの1つを指定する信号を発生す
る。選択回路702はこの信号線706上の信号に応答
してこの25種類の加算結果のうちの1つを選択して信
号線710を介して加算器アレイ5へ与える。
【0157】この前処理加算器アレイ700における前
処理操作はブースのデコード回路3におけるデコード操
作および後処理デコード回路704におけるデコード操
作と並行して実行される。したがって、このブースのデ
コード回路3におけるデコード操作に要する遅延時間を
見掛け上なくすことができ、高速で乗算を実行すること
ができる。
処理操作はブースのデコード回路3におけるデコード操
作および後処理デコード回路704におけるデコード操
作と並行して実行される。したがって、このブースのデ
コード回路3におけるデコード操作に要する遅延時間を
見掛け上なくすことができ、高速で乗算を実行すること
ができる。
【0158】図17は、従来の乗算器と本実施例の乗算
器との乗算操作に要する時間の比較を示す図である。図
17(a)に従来の乗算器の乗算に要する時間を示し、
図17(b)に本実施例における乗算器の乗算に要する
時間を示す。従来の乗算器においては、ブースのデコー
ド操作後、このデコード結果に従った演算の選択が行な
われた後に加算器アレイ5において加算が実行され、次
いで最終加算器列で加算が行なわれて乗算結果が出力さ
れる。一方、図17(b)に示すように、本実施例にお
いては、前処理加算器アレイ700において、予め所定
数の部分積の生成および加算がブースのデコード操作と
並行して実行される。ブースのデコード操作の後に後処
理デコード回路704によるデコードが行なわれる。こ
のとき、加算器アレイ5においては、ブースのデコード
回路3からのデコード結果に従ってブースの選択操作が
実行される。このブースのデコード操作および後処理デ
コード操作は前処理加算器アレイ700の処理に要する
時間と同程度とされる。後処理デコード操作の後選択回
路702による選択が実行される。この後加算器アレイ
5において加算が行なわれ、かつ最終加算器列において
最終加算による乗算結果の生成が実行される。したがっ
て、図17(a)に示す従来の乗算器よりも、ブースの
デコード操作に要する時間をなくすことができ、高速で
乗算を実行することができる。図17(b)においては
選択回路702による選択操作における遅延時間を考慮
している。選択回路702は、マルチプレクス回路で構
成することができ、その遅延時間はゲート1段程度とす
ることができ、全加算器の1段の遅延量よりも小さくす
ることができる。加算器アレイにおけるブースのアルゴ
リズムに従う演算の選択は後処理デコード回路704に
おける後処理デコード操作と並行して実行される。した
がって、従来の乗算器よりもブースのデコード操作およ
びブースの選択操作による遅延量を排除することがで
き、高速で乗算を行なうことができる。
器との乗算操作に要する時間の比較を示す図である。図
17(a)に従来の乗算器の乗算に要する時間を示し、
図17(b)に本実施例における乗算器の乗算に要する
時間を示す。従来の乗算器においては、ブースのデコー
ド操作後、このデコード結果に従った演算の選択が行な
われた後に加算器アレイ5において加算が実行され、次
いで最終加算器列で加算が行なわれて乗算結果が出力さ
れる。一方、図17(b)に示すように、本実施例にお
いては、前処理加算器アレイ700において、予め所定
数の部分積の生成および加算がブースのデコード操作と
並行して実行される。ブースのデコード操作の後に後処
理デコード回路704によるデコードが行なわれる。こ
のとき、加算器アレイ5においては、ブースのデコード
回路3からのデコード結果に従ってブースの選択操作が
実行される。このブースのデコード操作および後処理デ
コード操作は前処理加算器アレイ700の処理に要する
時間と同程度とされる。後処理デコード操作の後選択回
路702による選択が実行される。この後加算器アレイ
5において加算が行なわれ、かつ最終加算器列において
最終加算による乗算結果の生成が実行される。したがっ
て、図17(a)に示す従来の乗算器よりも、ブースの
デコード操作に要する時間をなくすことができ、高速で
乗算を実行することができる。図17(b)においては
選択回路702による選択操作における遅延時間を考慮
している。選択回路702は、マルチプレクス回路で構
成することができ、その遅延時間はゲート1段程度とす
ることができ、全加算器の1段の遅延量よりも小さくす
ることができる。加算器アレイにおけるブースのアルゴ
リズムに従う演算の選択は後処理デコード回路704に
おける後処理デコード操作と並行して実行される。した
がって、従来の乗算器よりもブースのデコード操作およ
びブースの選択操作による遅延量を排除することがで
き、高速で乗算を行なうことができる。
【0159】前処理加算器アレイ700において生成さ
れる加算結果の数を最小とするためには、ブースのデコ
ード回路3と後処理デコード回路704の処理動作に要
する時間と同じ遅延を生じる加算処理をこの前処理加算
器アレイ700で実行するように構成すればよい。次
に、この前処理加算器アレイの具体的構成について説明
する。
れる加算結果の数を最小とするためには、ブースのデコ
ード回路3と後処理デコード回路704の処理動作に要
する時間と同じ遅延を生じる加算処理をこの前処理加算
器アレイ700で実行するように構成すればよい。次
に、この前処理加算器アレイの具体的構成について説明
する。
【0160】図18は、前処理加算器アレイの機能的構
成を示す図である。図18においては、第1の部分和S
1および第2の部分和S2が生成されかつこの第1およ
び第2の部分和S1およびS2の加算が実行される。第
1の部分和S1は、2次のブースのアルゴリズムに従っ
て、演算−2X、−X、0、Xおよび2Xそれぞれにつ
いて生成された部分和を備える。第2の部分和S2も同
様に2次のブースのアルゴリズムに従って、−2X、−
X、0、Xおよび2Xの部分和を生成する。この第1の
部分和S1の各部分和が第2の部分和S2の各部分和と
加算される。したがって、前処理加算器アレイ700か
らは、25種類の加算結果が生成される。選択回路70
2はこの25種類の加算結果から1つの加算結果(S1
+S2)を選択する。
成を示す図である。図18においては、第1の部分和S
1および第2の部分和S2が生成されかつこの第1およ
び第2の部分和S1およびS2の加算が実行される。第
1の部分和S1は、2次のブースのアルゴリズムに従っ
て、演算−2X、−X、0、Xおよび2Xそれぞれにつ
いて生成された部分和を備える。第2の部分和S2も同
様に2次のブースのアルゴリズムに従って、−2X、−
X、0、Xおよび2Xの部分和を生成する。この第1の
部分和S1の各部分和が第2の部分和S2の各部分和と
加算される。したがって、前処理加算器アレイ700か
らは、25種類の加算結果が生成される。選択回路70
2はこの25種類の加算結果から1つの加算結果(S1
+S2)を選択する。
【0161】図19は、この前処理加算器アレイと選択
回路の具体的配置を示す図である。図19において、ブ
ロック780は、前処理加算器アレイと選択回路両者を
含む。このブロック780は、25個の加算結果生成回
路750a〜750yを含む。この25個の加算結果生
成回路750a〜750y(図においては代表的に2つ
の加算結果生成回路のみを示す)は、各々、第1の部分
積生成回路760aと、第2の部分積S2を生成すると
ともに第1の部分積S1とこの第2の部分積S2との加
算を行なう第2の部分積生成回路761a〜761y
と、信号線706上の制御信号に従って、対応の加算結
果を信号線710上に伝達する選択接続回路762a〜
762yを含む。信号線706は、25本の制御信号線
からなるバスである。出力信号線710上の信号は加算
器アレイ5へ与えられる。各加算結果生成回路750a
〜750yのそれぞれにおいて、2次のブースアルゴリ
ズムの組合せに従った部分積の生成および加算が実行さ
れる。図19においては、加算結果生成回路750aに
おいて演算0による部分積S1(0)と第2の部分積S
2(0)とが生成され、この両者の和S1(0)+S2
(0)が生成される状態が示される。加算結果生成回路
750yは演算2Xを行なって第1および第2の部分積
S1(2X)およびS2(2X)を生成し、この両者を
加算して加算結果S1(2X)+S2(2X)を生成す
る。後処理デコード回路704から信号線706上に与
えられる信号はこの選択接続回路762a〜762yの
1つを導通状態とする。これにより出力信号線710上
に25個の加算結果生成回路750a〜750yのうち
の1つの加算結果が伝達される。
回路の具体的配置を示す図である。図19において、ブ
ロック780は、前処理加算器アレイと選択回路両者を
含む。このブロック780は、25個の加算結果生成回
路750a〜750yを含む。この25個の加算結果生
成回路750a〜750y(図においては代表的に2つ
の加算結果生成回路のみを示す)は、各々、第1の部分
積生成回路760aと、第2の部分積S2を生成すると
ともに第1の部分積S1とこの第2の部分積S2との加
算を行なう第2の部分積生成回路761a〜761y
と、信号線706上の制御信号に従って、対応の加算結
果を信号線710上に伝達する選択接続回路762a〜
762yを含む。信号線706は、25本の制御信号線
からなるバスである。出力信号線710上の信号は加算
器アレイ5へ与えられる。各加算結果生成回路750a
〜750yのそれぞれにおいて、2次のブースアルゴリ
ズムの組合せに従った部分積の生成および加算が実行さ
れる。図19においては、加算結果生成回路750aに
おいて演算0による部分積S1(0)と第2の部分積S
2(0)とが生成され、この両者の和S1(0)+S2
(0)が生成される状態が示される。加算結果生成回路
750yは演算2Xを行なって第1および第2の部分積
S1(2X)およびS2(2X)を生成し、この両者を
加算して加算結果S1(2X)+S2(2X)を生成す
る。後処理デコード回路704から信号線706上に与
えられる信号はこの選択接続回路762a〜762yの
1つを導通状態とする。これにより出力信号線710上
に25個の加算結果生成回路750a〜750yのうち
の1つの加算結果が伝達される。
【0162】図20は、前処理加算器アレイの他の構成
を示す図である。図20において、前処理加算器アレイ
700は、演算2X〜−2Xそれぞれに対して第1の部
分積を生成する部分積生成回路770と、演算2X〜−
2Xそれぞれに対して第2の部分積を生成する第2の部
分積生成回路772を含む。この第2の部分積生成回路
772は、第1の部分積生成回路770の1つの演算に
対し可能な5つの演算をするように配置される。この第
2の部分積生成回路772は、対応の第1の部分積と各
生成された第2の部分積との加算を実行する加算器を含
む。すなわち、図20に示す配置においては、第2の部
分積生成回路772は、第1の部分積生成回路770の
1つの演算に対し5種類の演算を実行し、並列にその加
算を行なって加算結果を生成するように配置される。こ
の第1の部分積生成回路770および第2の部分積生成
回路772は、被乗数データX全体に対して各演算毎に
配置されるのではなく、被乗数データXの各ビットに対
し図20に示す配置が用いられてもよい。選択回路70
2は、この前処理加算器アレイ700からの25種類の
加算結果のうちの1つを選択する。
を示す図である。図20において、前処理加算器アレイ
700は、演算2X〜−2Xそれぞれに対して第1の部
分積を生成する部分積生成回路770と、演算2X〜−
2Xそれぞれに対して第2の部分積を生成する第2の部
分積生成回路772を含む。この第2の部分積生成回路
772は、第1の部分積生成回路770の1つの演算に
対し可能な5つの演算をするように配置される。この第
2の部分積生成回路772は、対応の第1の部分積と各
生成された第2の部分積との加算を実行する加算器を含
む。すなわち、図20に示す配置においては、第2の部
分積生成回路772は、第1の部分積生成回路770の
1つの演算に対し5種類の演算を実行し、並列にその加
算を行なって加算結果を生成するように配置される。こ
の第1の部分積生成回路770および第2の部分積生成
回路772は、被乗数データX全体に対して各演算毎に
配置されるのではなく、被乗数データXの各ビットに対
し図20に示す配置が用いられてもよい。選択回路70
2は、この前処理加算器アレイ700からの25種類の
加算結果のうちの1つを選択する。
【0163】なお上述の実施例においては2次のブース
のアルゴリズムに従って2つの部分積を生成しかつこの
両者の加算を実行する構成を示している。しかしなが
ら、3つの部分積がこの前処理加算器アレイで生成され
てもよい。3つの部分積を生成する場合には、加算結果
は5・5・5=125個存在する。選択回路702はこ
の125個の加算結果のうちの1つを選択する。また用
いられるブースのアルゴリズムは3次以上の高次のブー
スのアルゴリズムであってもよい。
のアルゴリズムに従って2つの部分積を生成しかつこの
両者の加算を実行する構成を示している。しかしなが
ら、3つの部分積がこの前処理加算器アレイで生成され
てもよい。3つの部分積を生成する場合には、加算結果
は5・5・5=125個存在する。選択回路702はこ
の125個の加算結果のうちの1つを選択する。また用
いられるブースのアルゴリズムは3次以上の高次のブー
スのアルゴリズムであってもよい。
【0164】
【発明の効果】請求項1記載の発明に従えば、乗数デー
タの下位ビットを2次のブースのアルゴリズムを利用し
かつ上位ビット側は3次以上の高次のブースのアルゴリ
ズムを利用して乗算を行なうように構成しているため、
高次のブースのアルゴリズムを実現するために必要とさ
れる被乗数データの奇数倍生成に要する時間を見掛け上
なくすことができ、高速で乗算を実行することのできる
乗算器を得ることができる。
タの下位ビットを2次のブースのアルゴリズムを利用し
かつ上位ビット側は3次以上の高次のブースのアルゴリ
ズムを利用して乗算を行なうように構成しているため、
高次のブースのアルゴリズムを実現するために必要とさ
れる被乗数データの奇数倍生成に要する時間を見掛け上
なくすことができ、高速で乗算を実行することのできる
乗算器を得ることができる。
【0165】請求項2に係る発明に従えば、2次のブー
スのアルゴリズムが適用される乗数の下位ビットのビッ
ト数は、3次のブースのアルゴリズムにおいて必要とさ
れる3倍データを生成するために必要とされる時間(加
算回路の段数)と等しくしているため、3倍数生成と2
次のブースのアルゴリズムによる乗算操作とを完全に並
列に実行することができ、3倍数生成に要する時間を見
掛け上なくすことができ、高速で乗算を行なうことので
きる乗算器を得ることができる。
スのアルゴリズムが適用される乗数の下位ビットのビッ
ト数は、3次のブースのアルゴリズムにおいて必要とさ
れる3倍データを生成するために必要とされる時間(加
算回路の段数)と等しくしているため、3倍数生成と2
次のブースのアルゴリズムによる乗算操作とを完全に並
列に実行することができ、3倍数生成に要する時間を見
掛け上なくすことができ、高速で乗算を行なうことので
きる乗算器を得ることができる。
【0166】請求項3の発明に従えば、ブースのアルゴ
リズムに必要とされる被乗数の定数倍は被乗数データが
加算器アレイへ入力される前に生成されているため、定
数倍生成に必要とされる時間を省略することができ、高
速で乗算を行なうことのできる乗算器を得ることができ
る。
リズムに必要とされる被乗数の定数倍は被乗数データが
加算器アレイへ入力される前に生成されているため、定
数倍生成に必要とされる時間を省略することができ、高
速で乗算を行なうことのできる乗算器を得ることができ
る。
【0167】請求項4記載の発明に従えば、乗数データ
および被乗数データを互いの下位ビット方向から加算器
アレイへ入力しているため、下位ビットの乗算に必要と
される信号を高速で確定状態とすることができ、信号線
の負荷に起因する信号伝搬遅延の影響を受けることなく
高速で乗算を実行することのできる乗算器を得ることが
できる。
および被乗数データを互いの下位ビット方向から加算器
アレイへ入力しているため、下位ビットの乗算に必要と
される信号を高速で確定状態とすることができ、信号線
の負荷に起因する信号伝搬遅延の影響を受けることなく
高速で乗算を実行することのできる乗算器を得ることが
できる。
【0168】請求項5記載の発明に従えば、ブースのデ
コーダ回路の出力のうち下位ビットのデコード情報が被
乗数データの下位ビット側から入力されているため、こ
のデコード結果伝達線における信号の伝搬遅延の影響を
受けることなく高速で乗算を実行することのできる乗算
器を得ることができる。
コーダ回路の出力のうち下位ビットのデコード情報が被
乗数データの下位ビット側から入力されているため、こ
のデコード結果伝達線における信号の伝搬遅延の影響を
受けることなく高速で乗算を実行することのできる乗算
器を得ることができる。
【0169】請求項6記載の発明に従えば、ブースのア
ルゴリズムに従ってデコード動作を行なうデコーダ回路
が被乗数データの下位ビット側に設けられているため、
このデコード結果を伝達する信号線における信号伝搬遅
延の影響を受けることなく高速で演算を行なうことので
きる乗算器を得ることができる。
ルゴリズムに従ってデコード動作を行なうデコーダ回路
が被乗数データの下位ビット側に設けられているため、
このデコード結果を伝達する信号線における信号伝搬遅
延の影響を受けることなく高速で演算を行なうことので
きる乗算器を得ることができる。
【0170】請求項7に係る発明に従えば、ブースのア
ルゴリズムに従ってデコード動作を行なうデコーダ回路
が被乗数データの上位ビット側および下位ビット側両側
に設けられているため、デコード結果を伝達する信号線
の信号伝搬遅延の影響を受けることなく高速で乗算を行
なうことのできる乗算器を得ることができる。
ルゴリズムに従ってデコード動作を行なうデコーダ回路
が被乗数データの上位ビット側および下位ビット側両側
に設けられているため、デコード結果を伝達する信号線
の信号伝搬遅延の影響を受けることなく高速で乗算を行
なうことのできる乗算器を得ることができる。
【0171】請求項8に係る発明に従えば、乗数データ
の下位ビットをデコードするデコーダ回路を被乗数デー
タの下位ビット側に、乗数データの上位ビットをデコー
ドするデコーダ回路を被乗数データの上位ビット側に設
けたため、加算器アレイからの乗算結果を取出す信号線
の面積を確保することが可能となる。
の下位ビットをデコードするデコーダ回路を被乗数デー
タの下位ビット側に、乗数データの上位ビットをデコー
ドするデコーダ回路を被乗数データの上位ビット側に設
けたため、加算器アレイからの乗算結果を取出す信号線
の面積を確保することが可能となる。
【0172】請求項9記載の発明に従えば、被乗数デー
タの下位ビット側に乗数データの下位ビットのみをデコ
ードするブースのデコーダ回路が設けられかつ被乗数デ
ータの上位ビット側には、乗数データの全ビットをデコ
ードするブースのデコーダ回路が設けられているため、
この乗数データの下位ビットのデコード結果を伝達する
信号線が両側から駆動され、信号線の負荷に起因する信
号伝搬遅延の影響を受けることなく高速で乗算を行なう
ことのできる乗算器を得ることができる。このとき、加
算器アレイから乗算結果を取出す信号線に対し十分な面
積も合わせて確保される。
タの下位ビット側に乗数データの下位ビットのみをデコ
ードするブースのデコーダ回路が設けられかつ被乗数デ
ータの上位ビット側には、乗数データの全ビットをデコ
ードするブースのデコーダ回路が設けられているため、
この乗数データの下位ビットのデコード結果を伝達する
信号線が両側から駆動され、信号線の負荷に起因する信
号伝搬遅延の影響を受けることなく高速で乗算を行なう
ことのできる乗算器を得ることができる。このとき、加
算器アレイから乗算結果を取出す信号線に対し十分な面
積も合わせて確保される。
【0173】請求項10に係る発明によれば、ブースの
デコーダ回路のデコード動作中に加算器アレイにおいて
加算動作が実行されており、ブースのデコーダ回路の出
力に従って加算器アレイの出力が選択されるため、ブー
スのデコード動作に要する時間をなくすことができ、高
速で乗算を行なうことのできる乗算器を得ることができ
る。
デコーダ回路のデコード動作中に加算器アレイにおいて
加算動作が実行されており、ブースのデコーダ回路の出
力に従って加算器アレイの出力が選択されるため、ブー
スのデコード動作に要する時間をなくすことができ、高
速で乗算を行なうことのできる乗算器を得ることができ
る。
【図1】この発明の第1の実施例である乗算器の全体の
構成を示す図である。
構成を示す図である。
【図2】図1に示す加算器アレイの内部構成を具体的に
示す図である。
示す図である。
【図3】図2に示すセレクタ回路の具体的構成を示す図
である。
である。
【図4】図1に示す3倍数生成回路の具体的構成を示す
図である。
図である。
【図5】54ビットデータ乗算器における2次のブース
アルゴリズム用加算器アレイおよび3次のブースアルゴ
リズム用加算器アレイの具体的構成を示す図である。
アルゴリズム用加算器アレイおよび3次のブースアルゴ
リズム用加算器アレイの具体的構成を示す図である。
【図6】第1の実施例と従来例との乗算操作に必要とさ
れる時間の比較を示す図である。
れる時間の比較を示す図である。
【図7】この発明の第2の実施例である乗算器の構成を
示す図である。
示す図である。
【図8】図7に示す乗算器の効果を示す図である。
【図9】乗算器を含む集積回路装置の具体的構成を示す
図である。
図である。
【図10】加算器アレイにおける信号の伝搬方向を示す
図である。
図である。
【図11】この発明の第3の実施例である乗算器の構成
を示す図である。
を示す図である。
【図12】図11に示す乗算器の効果を示す図である。
【図13】図11に示す乗算器を実現するための配線構
造を示す図である。
造を示す図である。
【図14】この発明の第4の実施例である乗算器の構成
を示す図である。
を示す図である。
【図15】この発明の第5の実施例を示す図である。
【図16】この発明の第6の実施例の乗算器の構成を示
す図である。
す図である。
【図17】第6の実施例の効果を示す図である。
【図18】前処理加算器アレイの機能的構成を示す図で
ある。
ある。
【図19】図16の前処理加算器アレイと選択回路の配
置を示す図である。
置を示す図である。
【図20】図16の前処理加算器アレイの他の構成を示
す図である。
す図である。
【図21】4ビット2進数の乗算の一例を示す図であ
る。
る。
【図22】従来の4ビット乗算器の構成を示す図であ
る。
る。
【図23】図22に示す半加算器の構成および動作を示
す図である。
す図である。
【図24】図22に示す全加算器の構成および動作を示
す図である。
す図である。
【図25】ブースのアルゴリズムにおけるデータビット
のグループ分割を例示する図である。
のグループ分割を例示する図である。
【図26】従来のブースアルゴリズムを利用する乗算器
の構成を示す図である。
の構成を示す図である。
【図27】2次のブースのアルゴリズムを4ビット乗算
器に適用した際の構成を示す図である。
器に適用した際の構成を示す図である。
【図28】従来の3次のブースのアルゴリズムを利用す
る乗算器の構成を例示する図である。
る乗算器の構成を例示する図である。
1a 被乗数レジスタ回路 1b 乗数レジスタ回路 3 ブースデコード回路 3a 2次のブースデコーダ回路 3b 3次のブースデコーダ回路 5 加算器アレイ 5a 2次のブースのアルゴリズムを利用するセレクタ
回路を含む加算器アレイ 5b 3次のブースのアルゴリズムを利用するセレクタ
回路を含む加算器アレイ 10 最終加算器列 21 全加算器 31 2次のブースアルゴリズム用セレクタ回路 32 3次のブースアルゴリズム用セレクタ回路 4 3次のブースデコーダ回路 6 3X生成回路 71 X/3X保持レジスタ回路 3−1 ブースのデコーダ回路 3−2 ブースのデコーダ回路 1b1 レジスタ回路 1b2 レジスタ回路 700 前処理加算器アレイ 702 選択回路 704 後処理デコード回路
回路を含む加算器アレイ 5b 3次のブースのアルゴリズムを利用するセレクタ
回路を含む加算器アレイ 10 最終加算器列 21 全加算器 31 2次のブースアルゴリズム用セレクタ回路 32 3次のブースアルゴリズム用セレクタ回路 4 3次のブースデコーダ回路 6 3X生成回路 71 X/3X保持レジスタ回路 3−1 ブースのデコーダ回路 3−2 ブースのデコーダ回路 1b1 レジスタ回路 1b2 レジスタ回路 700 前処理加算器アレイ 702 選択回路 704 後処理デコード回路
Claims (10)
- 【請求項1】 複数ビットの乗数Yと被乗数Xとの乗算
をブースアルゴリズムに従って実行する乗算器であっ
て、 前記乗数Yの所定数の下位ビットを2次のブースアルゴ
リズムに従ってデコードする第1のデコード手段と、 前記乗数Yの残りの上位ビットを3次以上のブースアル
ゴリズムに従ってデコードする第2のデコード手段と、 前記第1のデコード手段の出力と前記被乗数Xとから第
1の部分積を生成する手段と、 前記第2のデコード手段からの出力と前記被乗数Xとか
ら第2の部分積を生成する手段と、 前記第1の部分積と前記第2の部分積とから前記乗数Y
と前記被乗数Xとの乗算結果を生成する手段とを備え
る、乗算器。 - 【請求項2】 複数ビットの乗数Yと被乗数Xとの乗算
をブースアルゴリズムに従って実行する乗算器であっ
て、 前記乗数Yの所定数の下位ビットを2次のブースアルゴ
リズムに従ってデコードする第1のデコード手段と、 前記乗数Yの残りの上位ビットを3次のブースアルゴリ
ズムに従ってデコードする第2のデコード手段と、 前記第1のデコード手段からの出力と前記被乗数Xとか
ら第1の部分積を生成する第1の部分積生成手段と、 前記第2のデコード手段の出力と前記被乗数Xとから第
2の部分積を生成する第2の部分積生成手段とを含み、
前記第2の部分積生成手段は前記被乗数Xと前記被乗数
Xの2倍とを加算して前記被乗数Xの3倍の値を生成す
る3倍数生成手段を含み、 前記第1の部分積と前記第2の部分積とから前記乗数Y
と前記被乗数Xとの乗算結果を生成する手段をさらに備
え、 前記下位ビットの所定数は、前記3倍数生成手段が前記
被乗数Xと前記被乗数Xの2倍の値との和を生成するの
に必要とされる時間により決定される、乗算器。 - 【請求項3】 乗数Yと被乗数Xとの乗算をブースアル
ゴリズムに従って実行する乗算器であって、 前記被乗数Xからブースアルゴリズムに必要とされる前
記被乗数Xの定数倍を生成する定数倍生成手段と、 前記被乗数Xを受け、前記定数倍生成手段の定数倍値出
力後、前記被乗数Xを出力する入力手段と、 前記乗数Yをブースアルゴリズムに従ってデコードする
デコード手段と、 前記デコード手段出力に従って、前記入力手段からの被
乗数Xと前記定数倍生成手段の出力とから部分積を生成
するセレクタ手段と、 前記セレクタ手段の出力を加算して前記乗数Yと前記被
乗数Xとの積を生成する積生成手段とを備える、乗算
器。 - 【請求項4】 複数ビットの乗数Yと複数ビットの被乗
数Xとの乗算を行なうための乗算回路であって、 前記乗数Yと前記被乗数Xとから部分積を生成する部分
積生成手段と、 前記部分積生成手段の出力を受けて加算して前記乗数Y
と前記被乗数Xとの積X・Yを生成する加算器アレイを
含む積生成手段と、 前記被乗数Xを受けて前記部分積生成手段へ与える被乗
数入力手段と、 前記被乗数入力手段の下位ビット位置に近い方に前記乗
数Yの下位ビット位置が配置され、前記乗数Yを受けて
前記部分積生成手段へ与える乗数入力手段とを備える、
乗算器。 - 【請求項5】 請求項4記載の乗算器であって、 前記部分積生成手段は、 前記乗数Yをブースアルゴリズムに従ってデコードする
デコード手段と、 前記被乗数Xから、前記ブースアルゴリズムに必要とさ
れる前記被乗数の定数倍を生成する定数倍生成手段と、 前記デコード手段の出力に応答して、前記定数倍生成手
段の出力と前記被乗数Xのいずれかを選択して部分積を
生成する部分積生成手段とを含む。 - 【請求項6】 複数ビットの乗数Yと複数ビットの被乗
数Xとの乗算をブースアルゴリズムに従って実行する乗
算器であって、 前記被乗数Xを伝達する被乗数伝達線と、 前記被乗数伝達線の下位ビット側に配置され、前記乗数
Yをブースアルゴリズムに従ってデコードするデコード
手段と、 前記デコード手段の出力と前記被乗数Xとから前記ブー
スアルゴリズムに従った部分積を生成する部分積生成手
段と、 前記部分積生成手段の部分積を加算して前記乗数Yと前
記被乗数Xとの積X・Yを生成する積手段とを備える、
乗算器。 - 【請求項7】 複数ビットの乗数Yと複数ビットの被乗
数Xとの乗算をブースアルゴリズムに従って実行する乗
算器であって、 前記被乗数Xを伝達する被乗数伝達線と、 前記被乗数伝達線の下位ビット側に設けられ、前記乗数
Yの所定ビットをブースアルゴリズムに従ってデコード
する第1のデコード手段と、 前記被乗数伝達線の上位ビット側に設けられ、前記乗数
Yを前記ブースアルゴリズムに従ってデコードする第2
のデコード手段と、 前記第1および第2のデコード手段の出力と前記被乗数
Xとからブースアルゴリズムに従った部分積を生成する
部分積生成手段と、 前記部分積生成手段の部分積を加算して前記乗数Yと前
記被乗数Xとの積X・Yを生成する積手段とを備える、
乗算器。 - 【請求項8】 請求項7記載の乗算器であって、 前記第1のデコード手段は、前記乗数Yの所定数の下位
ビットを前記ブースアルゴリズムに従ってデコードし、 前記第2のデコード手段は、前記乗数Yの残りの上位ビ
ットを前記ブースアルゴリズムに従ってデコードする。 - 【請求項9】 請求項7記載の乗算器であって、前記第
1のデコード手段は、前記乗数Yの所定の下位ビットの
みを前記ブースアルゴリズムに従ってデコードし、前記
第2のデコード手段が乗数の全ビットをデコードする。 - 【請求項10】 乗数Yと被乗数Xとの乗算をブースア
ルゴリズムに従って実行する乗算器であって、 前記乗数Yを前記ブースアルゴリズムに従ってデコード
するデコード手段を備え、 前記デコード手段は、前記被乗数Xと所定ビットの乗数
Yとのブースアルゴリズムよる部分積の加算結果から対
応の加算結果を選択する手段を備える、乗算器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4158255A JP2859779B2 (ja) | 1992-06-17 | 1992-06-17 | 乗算器 |
US08/063,488 US5426599A (en) | 1992-06-17 | 1993-05-19 | Hardware implemented multiplier for performing multiplication of two digital data according to booth algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4158255A JP2859779B2 (ja) | 1992-06-17 | 1992-06-17 | 乗算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH064271A true JPH064271A (ja) | 1994-01-14 |
JP2859779B2 JP2859779B2 (ja) | 1999-02-24 |
Family
ID=15667634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4158255A Expired - Lifetime JP2859779B2 (ja) | 1992-06-17 | 1992-06-17 | 乗算器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5426599A (ja) |
JP (1) | JP2859779B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100362186B1 (ko) * | 1995-12-29 | 2003-03-28 | 주식회사 하이닉스반도체 | 멀티플렉서를이용한직렬부스승산기 |
KR100431029B1 (ko) * | 2002-02-28 | 2004-05-10 | 학교법인연세대학교 | 부쓰 알고리즘을 이용한 스칼라 곱셈기 |
JP2016045685A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | 乗算回路及びその乗算方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07146781A (ja) * | 1993-11-19 | 1995-06-06 | Sony Corp | プロセツサ |
GB2287331B (en) * | 1994-03-02 | 1998-04-29 | Advanced Risc Mach Ltd | Electronic multiplying and adding apparatus and method |
US5574676A (en) * | 1994-09-02 | 1996-11-12 | Hewlett-Packard Company | Integer multiply instructions incorporating a subresult selection option |
US5646877A (en) * | 1995-05-25 | 1997-07-08 | Texas Instruments Incorporated | High radix multiplier architecture |
US5729485A (en) * | 1995-09-11 | 1998-03-17 | Digital Equipment Corporation | Fast determination of carry inputs from lower order product for radix-8 odd/even multiplier array |
US5825679A (en) * | 1995-09-11 | 1998-10-20 | Digital Equipment Corporation | Fast sign extend for multiplier array sums and carrys |
JP3532338B2 (ja) * | 1996-02-27 | 2004-05-31 | 株式会社ルネサステクノロジ | 乗算装置 |
US5935197A (en) * | 1997-03-21 | 1999-08-10 | Arm Limited | Data processing circuit and method of operation performing arithmetic processing on data signals |
US5875125A (en) * | 1997-07-07 | 1999-02-23 | International Business Machines Corporation | X+2X adder with multi-bit generate/propagate circuit |
JPH11134175A (ja) * | 1997-10-29 | 1999-05-21 | Toshiba Corp | 乗加減算器及び演算器 |
JP3417286B2 (ja) * | 1998-02-23 | 2003-06-16 | 株式会社デンソー | 乗算器 |
GB2397674B (en) * | 1999-12-23 | 2004-09-15 | Intel Corp | Processing multiply-accumulate operations in a single cycle |
US7296049B2 (en) * | 2002-03-22 | 2007-11-13 | Intel Corporation | Fast multiplication circuits |
US7191203B2 (en) * | 2002-09-25 | 2007-03-13 | Broadcom Corporation | Method and system for high-speed multiplication |
US20110264719A1 (en) * | 2008-10-30 | 2011-10-27 | Audioasics A/S | High radix digital multiplier |
US8417761B2 (en) * | 2008-12-08 | 2013-04-09 | International Business Machines Corporation | Direct decimal number tripling in binary coded adders |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01300338A (ja) * | 1988-05-30 | 1989-12-04 | Fujitsu Ltd | 浮動小数点乗算器 |
JPH03282619A (ja) * | 1990-03-29 | 1991-12-12 | Nec Corp | 乗算回路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0383965A1 (de) * | 1989-02-21 | 1990-08-29 | International Business Machines Corporation | Multiplizierwerk |
US4965762A (en) * | 1989-09-15 | 1990-10-23 | Motorola Inc. | Mixed size radix recoded multiplier |
US5150322A (en) * | 1990-06-05 | 1992-09-22 | Vlsi Technology, Inc. | Mixed-radix serial/parallel multipliers |
-
1992
- 1992-06-17 JP JP4158255A patent/JP2859779B2/ja not_active Expired - Lifetime
-
1993
- 1993-05-19 US US08/063,488 patent/US5426599A/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01300338A (ja) * | 1988-05-30 | 1989-12-04 | Fujitsu Ltd | 浮動小数点乗算器 |
JPH03282619A (ja) * | 1990-03-29 | 1991-12-12 | Nec Corp | 乗算回路 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100362186B1 (ko) * | 1995-12-29 | 2003-03-28 | 주식회사 하이닉스반도체 | 멀티플렉서를이용한직렬부스승산기 |
KR100431029B1 (ko) * | 2002-02-28 | 2004-05-10 | 학교법인연세대학교 | 부쓰 알고리즘을 이용한 스칼라 곱셈기 |
JP2016045685A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | 乗算回路及びその乗算方法 |
Also Published As
Publication number | Publication date |
---|---|
US5426599A (en) | 1995-06-20 |
JP2859779B2 (ja) | 1999-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH064271A (ja) | 乗算器 | |
KR940002479B1 (ko) | 고속 디지탈 병렬승산기(multiplier) | |
US7543011B2 (en) | Montgomery modular multiplier and method thereof using carry save addition | |
JP3667635B2 (ja) | 演算装置 | |
US20010009010A1 (en) | Data split parallel shifter and parallel adder/subtractor | |
JPH0713742A (ja) | 乗算装置 | |
JPH07210369A (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
US5070471A (en) | High speed multiplier which divides multiplying factor into parts and adds partial end products | |
US5303178A (en) | Multiplying system based on the Booth's algorithm and generating a positive or negative product in response to a mode signal | |
JP3556950B2 (ja) | 高速算術演算装置のけた上げ先見加算器段の数を減少させる構造及び方法 | |
WO2005086675A2 (en) | Arithmetic circuit with balanced logic levels for low-power operation | |
JPH09231055A (ja) | 論理演算回路及びキャリールックアヘッド加算器 | |
JPH09222991A (ja) | 加算方法および加算器 | |
JPH05158659A (ja) | 乗算器 | |
JP3515170B2 (ja) | 実数または複素数用の乗算器 | |
JP2734438B2 (ja) | 乗算装置 | |
JP4230234B2 (ja) | 全加算器用のパリティ予測回路 | |
JP3198795B2 (ja) | 加算器及び加算方法 | |
JPH1115641A (ja) | 冗長2進加算器を用いた乗算装置 | |
JP3198868B2 (ja) | 乗算処理装置 | |
JPH09190338A (ja) | 論理演算装置での数学的オーバフロー・フラグ発生遅延の除去 | |
JP3702475B2 (ja) | 回路自動生成装置 | |
JPH07118630B2 (ja) | 乗算用信号処理回路 | |
JPH05241793A (ja) | 倍精度乗算器 | |
JP3130797B2 (ja) | 積和演算処理方法およびその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19981117 |