JP3230354B2 - 高速10進乗算器 - Google Patents

高速10進乗算器

Info

Publication number
JP3230354B2
JP3230354B2 JP30210793A JP30210793A JP3230354B2 JP 3230354 B2 JP3230354 B2 JP 3230354B2 JP 30210793 A JP30210793 A JP 30210793A JP 30210793 A JP30210793 A JP 30210793A JP 3230354 B2 JP3230354 B2 JP 3230354B2
Authority
JP
Japan
Prior art keywords
digit
circuit
output
multiplier
multiplicand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP30210793A
Other languages
English (en)
Other versions
JPH07160477A (ja
Inventor
敏光 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP30210793A priority Critical patent/JP3230354B2/ja
Publication of JPH07160477A publication Critical patent/JPH07160477A/ja
Application granted granted Critical
Publication of JP3230354B2 publication Critical patent/JP3230354B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は高速10進乗算器に関す
る。
【0002】
【従来の技術】図10に従来の10進乗算器の構成図を示
す。従来の10進乗算器は、初めに被乗数の2倍、4
倍、8倍を生成してレジスタ等の倍数保持回路30に保持
しておく。次に、生成してある被乗数の1、2、4、8
倍の値を倍数選択回路40により乗数の1桁の値に合わせ
て組合せて選択し、10進加算器6で加算する。これを
部分積として出力レジスタ7に保持し、乗数の各桁にお
いて部分積を得て、桁合わせをしながら加算することを
繰り返すことにより最終結果の積を得る。
【0003】この方法では、乗数1桁の部分積を得るの
に通常1〜2サイクル必要で、かつ最終結果である積を
得るには、乗数の桁数倍の演算サイクルを必要とする。
また、被乗数の2倍、4倍、8倍等を生成してレジスタ
等に保持しておく必要があり、このための演算サイクル
も必要である。
【0004】
【発明が解決しようとする課題】これをさらに高速化す
るには、被乗数の1桁と乗数の1桁との積を生成する桁
乗算器(九九表に相当するもの)を被乗数の桁数×乗数
の桁数だけ並べて各桁同士の部分積を同時に生成し、そ
の結果をすべて加算することにより、1サイクルの演算
時間で10進乗算を実現することが考えられるが、回路
のハードウェア量は膨大なものになる。
【0005】本発明は、乗数の各桁を偶数+1に分けて
乗算することにより、桁乗算器を簡易化し、またその結
果の加算においても奇数を偶数+1に置き換えることに
より、加算回路の簡易化を図り、全体の回路規模を小さ
くすることを目的とする。
【0006】
【課題を解決するための手段】図1は本発明の実施例の
構成図である。入力された被乗数を保持する被乗数レジ
スタ1と、入力された乗数を保持する乗数レジスタ2
と、被乗数レジスタ1の各桁を偶数+1の形に分離する
被乗数偶数化回路12と被乗数“1”化回路11と、乗数レ
ジスタ2の各桁を偶数+1の形に分離する乗数偶数化回
路22と乗数“1”化回路21と、被乗数レジスタ1の各桁
と乗数偶数化回路22の各桁とを入力して各1桁同士の積
を生成し、それぞれ2桁の数を出力する桁偶数乗算器ア
レイ3と、桁偶数乗算器アレイ3の各出力の上位桁の数
Rを偶数+1の形に分離する上位桁偶数化回路32と上位
桁“1”化回路31と、桁偶数乗算器アレイ3の出力の下
位桁Sと被乗数偶数化回路12の出力とを選択し下位桁S
とし、また上位桁偶数化回路32と0とを選択し上位桁
R’として桁偶数加算器ツリー4へ入力する主選択回路
42と、上位桁“1”化回路31の出力と被乗数“1”化回
路11の出力とを選択してキャリー加算器ツリーへ入力す
る従選択回路41と、主選択回路42通過後の各出力の下位
桁の数Sと上位桁の出力R’とを同位の桁毎に2つずつ
トーナメント形式で加算し、トーナメントの各段階で発
生するキャリー成分Cを分離出力する桁偶数加算器ツリ
ー4と、上位桁“1”化回路31の出力と、桁偶数加算器
ツリー4のトーナメントの各段階で発生するキャリー成
分Cとをすべて加算するキャリー加算器ツリー5と、桁
偶数加算器ツリー4の出力とキャリー加算器ツリーの出
力とを加算する10進加算器6と、10進加算器6の出
力を保持する出力レジスタ7および保持レジスタ71と、
第1のサイクルで、主選択回路42により桁偶数乗算器ア
レイ3の出力を選択し、従選択回路41により上位桁
“1”化回路31の出力を選択して演算を行い、第2のサ
イクルで、主選択回路42により被乗数偶数化回路12の出
力を選択し、従選択回路41により被乗数“1”化回路11
の出力の出力を選択して演算を行い、第3のサイクル
で、第1のサイクルの結果と第2のサイクルの結果とを
加算するように制御する制御回路8とを備える。
【0007】
【作用】本発明の基本原理は、奇数=偶数+1であるこ
とを利用して、すべての数を偶数と1とに変換すること
により回路を簡易化することである。
【0008】被乗数をN、乗数をM=M’+Iとする。
ここで、M’は各桁が偶数、Iは各桁が1または0であ
る数である。 N×M=N×(M’+I)=N×M’+N×I すなわち、積は、乗数の各桁の値が奇数のとき−1して
偶数とし、その偶数値と被乗数との積を演算したもの
と、乗数の奇数値の桁を1、偶数値の桁を0で置き換え
た値と被乗数との積を演算したものとを加えることによ
り得られる。
【0009】〔1〕N×M’の演算 M’の各桁の数は偶数であるから、N×M’の各桁同士
の積は図2(B)に示す半九九表の機能をもった桁偶数
乗算器によって得られる。通常の1桁の数同士の積を得
るためには図2(A)の九九表の機能をもった桁乗算器
が必要である。桁乗算器は、BCDコードの場合、入力
が被乗数4ビットと乗数4ビットの8ビット、出力が8
ビットのコード変換器として構成できる。ところで、前
述のように、乗数が偶数に限られるなら、桁乗算器の乗
数入力は偶数に限ることができ、九九表を簡易化して図
2(B)のように半九九表とすることができる。これ
は、入力が被乗数入力4ビットと乗数3ビット(偶数な
ので最下位は0に決まっているから不要)の7ビット、
出力が6ビット(最大値が10進で72で、偶数に限ら
れるから最上位と最下位のビットは不要)のコード変換
器として構成でき、回路を簡単にすることができる。
【0010】被乗数Nがn桁、乗数M’がm桁の数であ
るとすると、n×m個の桁偶数乗算器より成る桁偶数乗
算器アレイ3が必要で、その出力を桁合わせをしてすべ
て加算すれば積が得られる。各々の桁偶数乗算器の積出
力はそれぞれ2桁以下の偶数値であり、図2(B)のよ
うになるが、これを下位桁Sと上位桁Rとに分離したも
のが図3の(A)と(B)である。従ってその内の下位
桁Sは偶数である。上位桁Rは奇数である場合がある
が、これは奇数=偶数+1により、R=R’+Tとし
て、偶数R’と1または0のTとで置き換えることがで
きる。図4に上位桁を偶数化したR’とTとを示す。
【0011】桁偶数乗算器アレイ3の出力は、桁毎に考
えるとそれぞれ最大m個の下位桁Sと上位桁Rとがあ
る。Sの数は、結果の最下位桁の1個から上位へ向かっ
てm−1桁まで1づつ増え、また最上位桁の1個から下
位へ向かってm−1桁までも同様である。R(R’)の
数は1桁上位へずれるが同様である。従って、桁毎に最
初に最大m個のRとSとを加え、その結果のm個の数を
2個づつ組み合わせてトーナメント形式で加算する。す
なわちツリー状に構成した桁加算器群によって演算す
る。トーナメント(桁加算器)の段数は、1+log2m以
上の最小の整数で表される。このとき、各段における結
果の下位桁Sと上位桁C(キャリー)とを別々にして演
算する。
【0012】下位桁の演算は、10進1桁同士の桁加算
器を使うとすれば、図5(A)に示す加算表の機能をも
ったものが必要になる。ところが、SとR’が偶数であ
るので、その和も偶数であり、従ってその下位桁は偶数
であるから、以下のトーナメント加算の結果の下位桁出
力もすべて偶数である。よって、桁加算器は図5(B)
に示す半加算表の機能をもった桁偶数加算器でよい。図
6はそれを下位桁Sと上位桁C出力に分けて示したもの
である。
【0013】上位側の桁Cは同様に各段毎にトーナメン
ト演算をするが、最初のRから分離したTを含めてCの
値はすべて1または0であるので、その加算回路はより
単純なものとなる。なお、各段毎にトーナメント演算を
した結果は、前の段の結果と加算して次の段に渡す。
【0014】このようにした加算器ツリーを桁数分設け
て桁偶数加算器ツリー4およびキャリー加算器ツリー5
とし、その結果は桁偶数加算器ツリー4出力の下位桁側
出力とキャリー加算器ツリー5出力のキャリー出力とし
て得られるので10進多桁加算器6で加算すると積(N
×M’)がえられる。なお、加算器ツリーは前述の理由
により、上位および下位のm−1桁分については加算す
る数が少ないので、規模を小さくできる。
【0015】〔2〕N×Iの演算 Iの各桁の値は1または0である。従って1のときだけ
意味があり、また、NはMと同様に、N=N’+J
(N’の各桁は偶数、Jの各桁は1または0)に置き換
えられる。よって、桁偶数乗算器アレイ出力の代わり
に、Iが1の列に限り、N’をSの代わりに、JをTの
代わりに、その他の列は0に、R’出力は0にして、桁
偶数加算器ツリー4と、キャリー加算器ツリー5に入力
することにより、N×Iの結果が得られる。この切り替
えは主選択回路42と従選択回路41とによって行なう。
【0016】最後に〔1〕と〔2〕の結果を加算して目
的の積N×Mが得られる。
【0017】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1において、10進1桁はBCDコードで表現
し、4ビットであり、被乗数レジスタがn桁、乗数レジ
スタがm桁であるとする。被乗数偶数化回路12と被乗数
“1”化回路および乗数偶数化回路22と乗数“1”化回
路はそれぞれ被乗数レジスタと乗数レジスタの各桁を上
位3ビットと1ビットに分離して取り出すだけである。
【0018】桁偶数乗算器アレイはn列×m行個の桁偶
数乗算器を並べたものである。それぞれの桁偶数乗算器
の出力は上位桁Rと下位桁Sの2桁であり、図7に示す
ようになる。これをすべて加算すればよいが、そのまま
では回路が大きくなるので、次のようにする。上位桁R
は上位桁偶数化回路32と上位桁“1”化回路31とによっ
て偶数R’と1とに分離する。上位桁偶数化回路32と上
位桁“1”化回路31とは、それぞれの桁の4ビットを上
位3ビットと下位1ビットとに分離するだけの回路であ
る。このようにして得られたSとR’とはすべて偶数で
ある。同じ位のSとR’とを2個づつ組にして加算し、
その結果をまた2個づつ組にして加算し・・・というよ
うにトーナメント式に桁偶数加算器を構成し1個の結果
を得る。図7の枠で示した桁の場合は図8に示すような
ツリー状の構成となる。これをn+m個並べて桁偶数加
算器ツリー4とする。ただし、図7から判るように、下
位および上位側ではツリーの規模は小さくてよい。最下
位ではSが、最上位ではR’がそのまま出力されるだけ
である(加算器も不要)。桁偶数加算器ツリー4で演算
するのは下位桁だけで、その途中で発生する上位桁(キ
ャリー)は別に各段階毎にトーナメント加算器を構成し
て加算し、さらに前段のトーナメント加算器の結果を加
算する。キャリー側の加算器は最終結果はともかく、最
初の値は1または0であるので、回路はより単純なもの
である。これも、キャリー加算器ツリー5としてまとめ
る。
【0019】主選択回路42は、演算の第1サイクルでは
桁偶数乗算器アレイの下位桁Sと上位桁偶数化回路32の
出力R’とを桁偶数加算器ツリー4に入力し、第2サイ
クルでは被乗数偶数化回路12の出力と0とを桁偶数加算
器ツリー4に入力するものである。
【0020】桁偶数加算器ツリー4の出力とキャリー加
算器ツリーの出力とを、10進多桁加算器6で加算す
る。制御回路8は、第1サイクルでN×M=N×(M’
+I)=N×M’+N×IのN×M’の演算を行い、加
算した結果を出力レジスタ7に保持する。第2サイクル
でN×Iを得て出力レジスタ7にセットすると同時に保
持レジスタ71に第1サイクルの結果を移す。第3サイク
ルで出力レジスタ7と保持レジスタ71とを加算して最終
結果である積を出力レジスタ7に得る。
【0021】以下、図9に示す具体的な数値による演算
の例によって説明する。図9において、4桁の被乗数4
567と4桁の乗数4567との乗算を示す。第1サイ
クルで、4567×4466を演算する。桁偶数乗算器
アレイにより、に示すように各桁の数を得る。これ
は、上位桁RをR’とTとに分離すると’に示すよう
になる。ここからトーナメント加算が始まる。SとR’
の組を加算し、に示すようにSとCとを得る。ここか
らSとCを別々に2つづつ組み合わせて(’)加算す
る()。Tおよび各段階でのCをそれぞれ加算する。
最後に、’に示すように、桁偶数加算器ツリー4およ
びキャリー加算器ツリー5の出力として得られ、それを
10進多桁加算器6によって加算しての結果を得る。
【0022】第2サイクルで、4567×0101を演
算する。被乗数4567の偶数化された4466をSの
代わりに、“1”化された0101をTの代わりとし、
第1サイクルと同様に演算する。
【0023】に示すように、第3サイクルで、第1サ
イクルの結果と第2サイクルの結果とを加算して最終結
果である積を得る。なお、乗数の各桁がすべて偶数であ
ることを検出することによって第2、第3サイクルの処
理を省略することができる。
【0024】
【発明の効果】以上説明したように、本発明によれば、
乗数、被乗数の桁数によらず非常に速い10進乗算器を
実現することができる。また、回路のハードウェア量
を、普通に構成した場合に比べて、ほぼ半分程度にする
ことができる。
【図面の簡単な説明】
【図1】本発明の実施例の構成図である。
【図2】10進1桁×1桁の乗算器の機能を説明する図
である。
【図3】下位桁と上位桁の分離を説明する図である。
【図4】上位桁の偶数化を説明する図である。
【図5】10進1桁×1桁の加算器の機能を説明する図
である。
【図6】桁偶数加算器の下位桁と上位桁(キャリー)の
分離を説明する図である。
【図7】桁偶数乗算器アレイの構成を説明する図であ
る。
【図8】桁偶数加算器ツリーの構成を説明する図であ
る。
【図9】具体的数値による動作説明図である。
【図10】従来例の構成図である。
【符号の説明】
1 被乗数レジスタ 12 被乗数偶数化回路 11 被乗数“1”化回路 2 乗数レジスタ 22 乗数偶数化回路 21 乗数“1”化回路 3 桁偶数乗算器アレイ 32 上位桁偶数化回路 31 上位桁“1”化回路 42 主選択回路 41 従選択回路 4 桁偶数加算器ツリー 5 キャリー加算器ツリー 6 10進多桁加算器 7 出力レジスタ 71 保持レジスタ 8 制御回路 30 倍数保持回路 40 倍数選択回路

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力された被乗数を保持する被乗数レジ
    スタ(1)と、 入力された乗数を保持する乗数レジスタ(2)と、 被乗数レジスタ(1)の各桁を偶数+1の形に分離する
    被乗数偶数化回路(12)と被乗数“1”化回路(11)
    と、 乗数レジスタ(2)の各桁を偶数+1の形に分離する乗
    数偶数化回路(22)と乗数“1”化回路(21)と、 被乗数レジスタ(1)の各桁と乗数偶数化回路(22)の
    各桁とを入力して各1桁同士の積を生成し、それぞれ2
    桁の数を出力する桁偶数乗算器アレイ(3)と、 桁偶数乗算器アレイ(3)の各出力の上位桁の数Rを偶
    数+1の形に分離する上位桁偶数化回路(32)と上位桁
    “1”化回路(31)と、 桁偶数乗算器アレイ(3)の出力の下位桁Sと、被乗数
    偶数化回路(12)の出力とを選択し下位桁Sとし、また
    上位桁偶数化回路(32)と、0とを選択し上位桁R’と
    して桁偶数加算器ツリー(4)へ入力する主選択回路
    (42)と、上位桁“1”化回路(31)の出力と被乗数
    “1”化回路(11)の出力とを選択してキャリー加算器
    ツリーへ入力する従選択回路(41)と、 主選択回路(42)通過後の各出力の下位桁の数Sと上位
    桁の出力R’とを同位の桁毎に2つずつトーナメント形
    式で加算し、トーナメントの各段階で発生するキャリー
    成分Cを分離出力する桁偶数加算器ツリー(4)と、 上位桁“1”化回路(31)の出力と、桁偶数加算器ツリ
    ー(4)のトーナメントの各段階で発生するキャリー成
    分Cとをすべて加算するキャリー加算器ツリー(5)
    と、 桁偶数加算器ツリー(4)の出力とキャリー加算器ツリ
    ー(5)の出力とを加算する10進多桁加算器(6)
    と、 全体を制御する制御回路(8)とを備える高速10進乗
    算器。
  2. 【請求項2】 10進多桁加算器(6)の出力を保持す
    る出力レジスタ(7)と、保持レジスタ(71)とを備
    え、 制御回路(8)は、第1のサイクルで、主選択回路(4
    2)により桁偶数乗算器アレイ(3)の出力を選択し、
    従選択回路(41)により上位桁“1”化回路(31)の出
    力を選択して演算を行い、第2のサイクルで、主選択回
    路(42)により被乗数偶数化回路(12)の出力を選択
    し、従選択回路(41)により被乗数“1”化回路(11)
    の出力の出力を選択して演算を行い、第3のサイクル
    で、第1のサイクルの結果と第2のサイクルの結果とを
    加算するように制御することを特徴とする請求項1に記
    載の高速10進乗算器。
JP30210793A 1993-12-02 1993-12-02 高速10進乗算器 Expired - Fee Related JP3230354B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30210793A JP3230354B2 (ja) 1993-12-02 1993-12-02 高速10進乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30210793A JP3230354B2 (ja) 1993-12-02 1993-12-02 高速10進乗算器

Publications (2)

Publication Number Publication Date
JPH07160477A JPH07160477A (ja) 1995-06-23
JP3230354B2 true JP3230354B2 (ja) 2001-11-19

Family

ID=17905020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30210793A Expired - Fee Related JP3230354B2 (ja) 1993-12-02 1993-12-02 高速10進乗算器

Country Status (1)

Country Link
JP (1) JP3230354B2 (ja)

Also Published As

Publication number Publication date
JPH07160477A (ja) 1995-06-23

Similar Documents

Publication Publication Date Title
US4825401A (en) Functional dividable multiplier array circuit for multiplication of full words or simultaneous multiplication of two half words
JPS6375932A (ja) ディジタル乗算器
US6065033A (en) Wallace-tree multipliers using half and full adders
JP3230354B2 (ja) 高速10進乗算器
US20050228845A1 (en) Shift and recode multiplier
JP2001195235A (ja) 乗算装置
US5142490A (en) Multiplication circuit with storing means
US5883825A (en) Reduction of partial product arrays using pre-propagate set-up
JPS58129653A (ja) 乗算方式
US5777915A (en) Multiplier apparatus and method for real or complex numbers
JP3284690B2 (ja) 10進乗算器
US5954791A (en) Multipliers with a shorter run time
JP3433487B2 (ja) 2進10進変換器
JP3230349B2 (ja) 10進乗算器
JP3241642B2 (ja) 2進10進変換回路
JP2635696B2 (ja) 乗算命令処理方式
EP0129039B1 (en) Improved multiplier architecture
JPS58181143A (ja) デイジタル乗算器
JPS6155690B2 (ja)
SU1073771A1 (ru) Устройство умножени двоично-дес тичных цифр
JPH11282651A (ja) 並列乗算器
JPH0368415B2 (ja)
SU1381717A1 (ru) Преобразователь кодов
SU1621182A1 (ru) Реверсивный преобразователь двоичного кода в двоично-дес тичный
SU1509875A1 (ru) Устройство дл умножени

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: 20010814

LAPS Cancellation because of no payment of annual fees