JP2812365B2 - 乗算回路 - Google Patents

乗算回路

Info

Publication number
JP2812365B2
JP2812365B2 JP1147795A JP14779589A JP2812365B2 JP 2812365 B2 JP2812365 B2 JP 2812365B2 JP 1147795 A JP1147795 A JP 1147795A JP 14779589 A JP14779589 A JP 14779589A JP 2812365 B2 JP2812365 B2 JP 2812365B2
Authority
JP
Japan
Prior art keywords
multiplier
circuit
multiplication
indicates
value
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
JP1147795A
Other languages
English (en)
Other versions
JPH0312737A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP1147795A priority Critical patent/JP2812365B2/ja
Priority to US07/471,787 priority patent/US5073870A/en
Priority to CA002008774A priority patent/CA2008774C/en
Priority to EP90101842A priority patent/EP0381161B1/en
Priority to DE69032811T priority patent/DE69032811T2/de
Publication of JPH0312737A publication Critical patent/JPH0312737A/ja
Priority to US07/730,602 priority patent/US5144574A/en
Application granted granted Critical
Publication of JP2812365B2 publication Critical patent/JP2812365B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は二つの変数A,Bの積A×Bを高速に求める乗
算回路に係り、特に、乗算を繰返し利用するMeなるべき
乗演算およびMemodNなるべき乗剰余演算を高速処理する
のに有用な乗算回路に関する。
〔従来の技術〕
乗算は基本的には何度も加算を繰返して演算する必要
があり、演算の桁数が長くなると、加算の桁上り伝搬が
高速化を妨げる要因となる。第7図は、A×Bなる乗算
を、乗数Bの2進数における各桁に対応して被乗数Aを
ずらしながら加算した例を示している。
この種の乗算を高速化する方法として、桁の長さに関
係なく加算を実行できるキャリーセーブ加算を利用する
手法が一般に知られている。この手法は、変数XをXC
XSの2つの変数によりX=XS+2XCと表現する冗長表現
を採用し、XにYをたすとき、 ((2XC)・XS)∨(XS・Y)∨(Y・(2XC)), (2XC)XSY, を実行し(ここで、“・”は論理積、“∨”は論理和、
“”は排他的論理和を示す)、それらの値を新たにそ
れぞれXC,XSとし、Xの値を X←XS+2XC と更新するというものである(ここで、“←”は代入を
示す)。これを乗算に応用し、例えば第7図の場合、Y
としてAの桁をずらす部分積をキャリーセーブ加算して
求め、最終のキャリーセーブ加算が行われた後は、必要
に応じてX←XS+2XCの桁上がり伝搬加算を行い、2つ
の変数でない単一表現のXを生成する。
しかしながら、この方法では、最終段のキャリーセー
ブ加算が終わった後、桁上り伝搬加算を実行するので、
べき乗計算のようにB←A×BやB←B×Bなどの乗算
を繰り返し実行する場合、乗算終了毎に桁上り伝搬加算
をすることは高速化の制限要因となる。
これを改善する方法としては、最終段のキャリーセー
ブ加算の結果が乗数として使われる場合、桁上り伝搬加
算をせずに冗長表現のまま乗算を実行する手法がある
(高木,矢島:『中間積のリコードによる繰り返し乗算
の高速化について』情報処理学会第36回(昭和63年前
期)全国大会4C−1)。この手法は、冗長表現の被乗数
Bから直接的に2進数で2桁毎に{−2,−1,0,1,2}の
いずれかの乗数値を生成するものである。この値によ
り、第7図の例の場合、Aの2の補数をとる(つまり−
1倍すること)、1桁シフトを扱う(つまり2倍するこ
と)などして{−2A,−A,0,A,2A}の何れかの部分積を
生成し、桁ずらしして、第8図に示すように2桁ずつ加
算を行うことができる。
乗算を2桁ずつずらして加算することで実現し、加算
回数を半分程度に削減する手法は、既に基数4のBOOTH
の乗算方式で知られる(参考文献;〔4〕K.Hwang:“コ
ンピュータの高速演算方式",近代科学社(1980).)
が、高木らの手法はこれを冗長表現の乗数B用に拡張し
たものである。
〔発明が解決しようとする課題〕
二つの変数A,Bの積A×Bを求めるにあたり、乗数B
がBSとBCによりB=BS+2BCの関係を持つ冗長表現され
ているとし、桁毎に下位桁から順にBS[1],B
S[2],…の様に、BSおよびBCを表現する。このと
き、高木らの手法は、第9図に示す関係から(ck+1,
sk)を生成し、これから2桁毎の乗数値を生成する。し
かしながら、第9図中には選択部分が4箇所あり、sk
決定するにはその下位桁の値により決定する必要があ
り、ck+skの2桁毎の乗数値を決定するには、ckを確定
する必要から更に下位の値により決定する必要があり、
選択的な値を確定するためのデータへのメモリアクセス
制御が多くなり、速度低下ならびに装置の複雑化に伴う
ハード量増大が生じる。
この様に、高木らの手法は下位桁の乗数を使い乗数値
を確定するため、上位桁から順に乗数値を必要とする場
合(例えば森田:『RSA暗号向き高速剰余乗算法』情報
処理学界第38回(平成元年前期)全国大会6J−2(1989
年)の乗算方法を冗長表現のまま繰り返し利用すると
き)等では、特に高速化制限要因となる。
本発明の目的は、上記問題の解決を図り、速度性能に
すぐれた乗算回路を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明は、キャリーセー
ブ加算用の冗長表現のまま基数4の乗数値を直接(確定
的に)生成する機構により、桁上がり伝搬加算を不要と
して、上下どちらの桁からでも乗数値を生成できる乗算
回路を提供するものである。
〔作 用〕
二つの変数A,Bについて、R←A×Bを実行すること
とし、乗数B、積Rとも冗長表現であると、B=BS+2B
C,R=RS+2RCとする。A,BS,BC,RS,RCはレジスタなどに
蓄積されているとする。また、最終結果ばかりでなく途
中経過の作業変数としてもRを用いる。また、BSなどの
各桁を2進表現で桁毎にBS[i](最下位桁のiは1と
し、BSの下位桁からi桁目の桁の値を表す)表現するも
のとする。
乗数Bの変数BS,BCは、レジスタ上で第2図に示すよ
うな配置になっているとし、全桁(k=1,2,…,「n/2
+1)に渡って、BS[2k]・BS[2k−1]・BC[2k−
1]・BC[2k−2]=0が成立する条件で(ただしB
S[i],BC[i]で、i=1,2,…,n以外のものはすべて
0とする)、領域“k"のBS,BCから、第3図のテーブル
よりskを生成し、領域“k−1"から求まるckを使い、 b(k)←ck+sk なる基数4の乗算値b(k)を求める。なお、第3図の
テーブルはメモリ上に蓄積しても良いが、特に次式の演
算を実行しても求められる。
c(k)←BS[2k−2]∨BC[2k−3]∨(BS[2k−3]・BC[2k−4]) …(2) ここで、“×”は通常の算術乗算、“+”は通常の算術
加算、“−”は通常の算術減算、“”は排他的論理
和、“∨”は論理和、“・”は論理積、上線は否定を示
す。
この結果、明らかにb(k)は{−2,−1,0,1,2}の
いずれかとなる。
k=1,2,…,「n/2+1のすべてに渡って、必ずし
もBS[2k]・BS[2k−1]・BC[2k−1]・BC[2k−
2]=0(ただし、BC[0]=0)でない場合、前記処
理に先立ち以下の処理を実行する。
BS(2BC)とBS・(2BC)をそれぞれ新たなBSとBC
する。ただし、ここの係数2は上位桁へ1桁シフトする
ことを意味し、BC[0]=0である。これにより、i=
1,2,…,nに対し、BS[i]・BC[i]=0となり、前記
条件BS[2k]・BS[2k−1]・BC[2k−1]・BC[2k−
2]=0に対する十分条件となり、第3図のテーブルま
たは上記(1),(2)式のb(k)生成演算が利用で
きるようになる。
〔実施例〕
以下、本発明の一実施例について図面により説明す
る。
第1図は本発明による乗算回路の一実施例の全体構成
図を示したもので、レジスタブロック10及び演算ブロッ
ク20に大別される。
第1図において、Aレジスタ11は被乗数Aを蓄積す
る。Bレジスタ12は乗数Bを蓄積するが、乗数Bは変数
BSとBCによりB=BS+2BCなる関係の冗長表現とし、BS
はBSレジスタ12−1に、BCはBCレジスタ12−2にそれぞ
れ蓄積する。第2図は、レジスタ12−1,12−2上での
BS,BCの配置を示したものである。Rレジスタ13は最終
結果および途中経過の作業変数Rを蓄積するが、該作業
変数Rも変数RSとRCによりR=RS+2RCなる関係の冗長
表現とし、RSはRSレジスタ13−1に、RCはRCレジスタ13
−2にそれぞれ蓄積する。
b(k)生成回路21は、第3図に示すテーブルを備
え、全桁(k=1,2,…,「n/2+1)に渡って、変数
Bから基数4の乗数値b(k)(ただし、b(k)←ck
+sk)を生成する回路である。第3図のテーブルは、BS
とBCの組合せ(BS[2k],BC[2k−1],BS[2k−1],B
C[2k−2])に対し、乗数値b(k)を生成するため
に使う変数(ck+1,sk)の関係を示したもので、 組合せ(0,0,0,0)のときデータ(0, 0)、 組合せ(0,0,0,1)のときデータ(0, 1)、 組合せ(0,0,1,0)のときデータ(0, 1)、 組合せ(0,0,1,1)のときデータ(1,−2)、 組合せ(0,1,0,0)のときデータ(1,−2)、 組合せ(0,1,0,1)のときデータ(1,−1)、 組合せ(0,1,1,0)のときデータ(1,−1)、 組合せ(0,1,1,1)のときデータ(1, 0)、 組合せ(1,0,0,0)のときデータ(1,−2)、 組合せ(1,0,0,1)のときデータ(1,−1)、 組合せ(1,0,1,0)のときデータ(1,−1)、 組合せ(1,0,1,1)のときデータ(1, 0)、 組合せ(1,1,0,0)のときデータ(1, 0)、 組合せ(1,1,0,1)のときデータ(1, 1)、 組合せ(1,1,1,0)のときデータ(1, 1)、 組合せ(1,1,1,1)のときはデータがないことを表わし
ている。なお、b(k)は第3図のテーブルの代りに、
先の(1),(2)式の演算を実行しても求められる。
生成される乗算値b(k)は−2,−1,0,1,2のいずれか
の値をとる。
A変形回路22は、b(k)生成回路21で生成されたb
(k)の−2,−1,0,1,2の各値に応じて、Aレジスタ11
の被乗数Aを“1桁上位へシフトし2の補数をとる”、
“2の補数をとる”、“0を出力する”、“そのままと
する”、“1桁上位へシフトする”のいずれかに変形す
る回路である。R変形回路23は、RSレジスタ13−1およ
びRCレジスタ13−2のRS,RCを下位へ2桁シフトする回
路である。
キャリーセーブ加算回路24は、A変形回路22とR変形
回路23の出力を入力してキャリーセーブ加算を繰返し、
結果のRSとRCを新たにRSレジスタ13−1及びRCレジスタ
13−2に蓄積する回路である。桁上り伝搬加算器25は、
最終のキャリーセーブ加算結果のRS,RCについてR←RS
+2RCの桁上がり伝搬加算を行い、単一の値の乗算結果
を出力する回路である。
第1図の乗算処理の概要は次の通りである。初めに、
作業変数Rを0に初期化する。なお、Rの実体はレジス
タ13−1,13−2に蓄積されるRS,RCなので、初期化は該
レジスタ13−1,13−2についてRS←0,RC←0を実行する
ことで実現する。その後は、b(k)生成回路21で変数
Bから乗数b(k)を生成しつつ、A変形回路22でb
(k)・Aを実行し、同時に、R変形回路23でRS←4RS
(2桁下位桁へのシフト)、RC←4RC(2桁下位桁への
シフト)を実行するとともに、キャリーセーブ加算回路
24で、 (2RCRS(b(k)A), ((2RC)・RS)∨(RS・(b(k)A))∨(b(k)A)・2RC)) のキャリーセーブ加算を実行し、新たにそれぞれの値を
RSとRCとしてレジスタ13−1,13−2に蓄積する処理を繰
返す。
乗算を繰返す場合で、乗算結果Rを乗数として新たな
Aなる値にたいしてA×Rを行う時は、本乗算回路のB
レジスタ12にRレジスタ13のRを冗長表現のまま代入す
る。この時のキャリーセーブ加算器回路は後述の第4図
で示すような回路構成で実現できる。
同様に乗算を繰返す場合で、乗算結果Rを用いて次に
R×Rを行う時は、Rレジスタ13のRを冗長表現のまま
Aレジスタ11とBレジスタ12に代入する。しかし、この
ときは被乗数Aも冗長表現なので、上記と異なる4入力
加算のキャリーセーブ加算回路が必要になる。この時の
キャリーセーブ加算回路は後述の第5図で示すような回
路構成で実現できる。
乗算結果を単一の値として取出したい場合は、桁上り
伝搬加算器(リップルキャリー加算器、桁上り先見加算
器等)25によりRS+2RCなる桁上がり伝搬加算をさせて
実現する。
第4図はキャリーセーブ加算回路24の具体的構成例で
ある。部分積P(=b(k)A)と、RSとRCにより冗長
表現される作業変数R(ただしR=RS+2RC)との加算
を実行するキャリーセーブ加算回路は、一般に第6図に
示す回路で実現できる。しかし、全桁(k=1,2,…,
「n/2+1)に渡ってRS[2k]・RS[2k−1]・RC[2
k−1]・RC[2k−2]=0(ただしRC[0]=0)の
条件が常に成立しないので、乗算結果のRをそのまま次
の乗算の乗数bとして使う場合、 BS←RS(2RC),BC←RS・(2RC)に対応する回路が
新たに必要となる。
これに対し、第4図はキャリーセーブ加算を以下の様
に実行し、上式の処理を不要とするものである。
つまり、第4図ではiのnから1までの各整数に対応
して、 c[i]←P[i]・RS[i−2],s[i]←P[i]RS[i−2] を第1の半加算器41で処理し、 t[i]←RC[i−3]∨[i−1] なる論理和をOR回路42でとり、 RC[i]←s[i]・t[i],RS[i]←s[i]t[i] を第2の半加算器43で処理する回路構成にして、逐次乗
算の途中経過であるRCとRSを更新する。ここで、最終段
を半加算器としているので、上記条件は常に成立する。
一般に、全加算器は半加算器2個分の回路量で済むの
で、本実施例は殆ど回路量の増大なく実施できる。
第5図はキャリーセーブ加算回路24の別の具体的構成
例であり、第4図の構成を冗長表現の被乗数Aに対して
拡張したものである。本キャリーセーブ加算回路は、PS
とPCにより冗長表現される部分積P(Pはb(k)Aに
より生成し、P=PS+2PCで表現される)とRSとRCによ
り表現される作業変数R(ただしR=RS+2RC)との加
算を実行する。つまり、iのnから1までの各整数に対
応して、 c1[i]←PS[i]・RS[i−2],s1[i]←PS[i]RS[i−2] を第1の半加算器51で処理し、 t[i]←RC[i−3]∨C1[i−1] なる論理和をOR回路52でとり、 c2[i]←(s[i]・PC[i−1])∨(PC[i−1]・t[i])∨(t
[i]・s1[i]),s2[i]←s1[i]PC[i−1]t[i] を全加算器52で処理し、 RC[i]←s2[i]・c2[i−1],RS[i]←s2[i]c2[i−1] を第2の半加算器54で処理する。
〔発明の効果〕
以上の説明から明らかな如く、本発明によれば以下の
ような効果が得られる。
(1)乗数が冗長表現の乗数から基数4で、任意の桁か
ら順に求められるので、特に剰余乗算などに有効であ
る。
(2)高木らの方法と異なり、値の選択が不要な分だけ
本発明は演算量及びハード量を削減する効果がある。特
に上位桁から下位桁に順に乗数を求める時は速度におい
て著しい効果がある。
(3)全桁(k=1,2,…)に渡って、BS[2K]・BS[2k
−1]・BC[2k−1]・BC[2k−2]=0が成立する条
件はそれほど特殊な条件でなく、従来、キャリーセーブ
加算回路を構成していた全加算器を出力段を半加算器か
らなる構成に置き換えることで容易に成立させることが
できる。
【図面の簡単な説明】
第1図は本発明の乗算回路の一実施例の全体構成図、第
2図は冗長表現の乗数Bの配列を示す図、第3図は本発
明で乗数値b(k)を生成するために使う変数(ck+1,s
k)の参照テーブルを示す図、第4図及び第5図は本発
明で使用するキャリーセーブ加算回路の具体的構成例を
示す図、第6図は従来からの一般的キャリーセーブ加算
回路を示す図、第7図は乗算の基本原理を説明する図、
第8図はキャリーセーブ加算による乗算を説明する図、
第9図は従来における乗数値b(k)を生成するために
使う変数(ck+1,sk)の参照テーブルを示す図である。 11……Aレジスタ、12−1……BSレジスタ、12−2……
BCレジスタ、13−1……RSレジスタ、13−2……RCレジ
スタ、21……b(k)生成回路、22……A変形回路、23
……R変形回路、24……キャリーセーブ加算回路、25…
…桁上り伝搬加算器。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】二つの変数A,Bの積A×Bを求める乗算回
    路であって、 乗数Bを変数BSとBCによりB=BS+2BCなる関係で表現
    し、変数BSとBCは2進数で下からi桁目の値をそれぞれ
    Bs[i]とBc[i]で表わし、全桁k=1,2,・・・,
    「n/2+1(「xはx以上の最小の整数を示す)と
    したとき、組合せ(BS[2k],BC[2k−1],BS[2k−
    1],BC[2k−2])に対するデータ(ck+1,sk)を表示
    する参照テーブルとして、 ただし、×は(ck+1,sk)なる値を持たないことを示す なるテーブルを備えて、k=1,2,・・・,「n/2+1
    の各々に対し、該テーブルからskとckを参照してb
    (k)←sk+ckなる乗数値(←は代入を示す。c1=0と
    する)を生成する手段と、 上記生成された乗数値b(k)の−2,−1,0,1,2の各値
    に応じて、被乗数Aを1桁上位へシフトし2の補数をと
    る、2の補数をとる、0を出力する、そのままとする、
    1桁上位へシフトするのいずれかに変形する手段と、 上記変形された被乗数を2桁上位側へずらして積算して
    いく手段とからなることを特徴とする乗算回路。
  2. 【請求項2】k=1,2,・・・,「n/2+1に関して乗
    数Bより、上記ck,skを収容する参照テーブルに代わっ
    て、 c(k)←BS[2k−2]∨BC[2k−3]∨(BS[2k−3]・BC[2k−4]) を求める演算手段(ここで、“×”は通常の算術乗算、
    “+”は通常の算術加算、“−”は通常の算術減算、
    “”は排他的論理和、“∨”は論理和、“・”は論理
    積を示す)を設けたことを特徴とする請求項(1)記載
    の乗算回路。
JP1147795A 1989-01-30 1989-06-09 乗算回路 Expired - Fee Related JP2812365B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP1147795A JP2812365B2 (ja) 1989-06-09 1989-06-09 乗算回路
US07/471,787 US5073870A (en) 1989-01-30 1990-01-29 Modular multiplication method and the system for processing data
CA002008774A CA2008774C (en) 1989-01-30 1990-01-29 Modular multiplication method and the system for processing data
EP90101842A EP0381161B1 (en) 1989-01-30 1990-01-30 Modular multipication method and the system
DE69032811T DE69032811T2 (de) 1989-01-30 1990-01-30 Verfahren und System zur modularen Multiplikation
US07/730,602 US5144574A (en) 1989-01-30 1991-07-16 Modular multiplication method and the system for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1147795A JP2812365B2 (ja) 1989-06-09 1989-06-09 乗算回路

Publications (2)

Publication Number Publication Date
JPH0312737A JPH0312737A (ja) 1991-01-21
JP2812365B2 true JP2812365B2 (ja) 1998-10-22

Family

ID=15438382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1147795A Expired - Fee Related JP2812365B2 (ja) 1989-01-30 1989-06-09 乗算回路

Country Status (1)

Country Link
JP (1) JP2812365B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4954019B2 (ja) * 2007-10-30 2012-06-13 三洋電機株式会社 演算装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
外村元伸、「冗長2進数表現による繰返し乗算方式」、情報処理学会論文誌,1990年,Vol.31,No.6,P.861−869

Also Published As

Publication number Publication date
JPH0312737A (ja) 1991-01-21

Similar Documents

Publication Publication Date Title
Orup Simplifying quotient determination in high-radix modular multiplication
Ding et al. High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication
JP4201980B2 (ja) マルチプレシジョン整数演算用の装置
EP1293891A2 (en) Arithmetic processor
JPH0612229A (ja) 乗累算回路
JPS6347874A (ja) 算術演算装置
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US6009450A (en) Finite field inverse circuit
JPH0368416B2 (ja)
US5528529A (en) Electronic multiplying and adding apparatus and method
JPH0477932B2 (ja)
Kaihara et al. Bipartite modular multiplication
Kelley et al. Parallelized very high radix scalable Montgomery multipliers
JP2812365B2 (ja) 乗算回路
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
JP3660075B2 (ja) 除算装置
JP4223819B2 (ja) べき乗剰余演算装置及びそのプログラム
JP4850884B2 (ja) べき乗剰余演算器
JPH0621983B2 (ja) 乗算器
JP2821849B2 (ja) 高次方程式の求根装置
SU711570A1 (ru) Арифметическое устройство
Pinckney et al. Parallelized Booth-encoded radix-4 Montgomery multipliers
JPS6259828B2 (ja)
Amrutha et al. HIGH-SPEED DOUBLE MULTIPLICATION ARCHITECTURE FOR PARALLEL MULTIPLICATION USING MASTROVITO MULTIPLIER.
JPH1049347A (ja) 乗算器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees