JPH0612236A - 整数上の乗算回路及び乗算方法 - Google Patents

整数上の乗算回路及び乗算方法

Info

Publication number
JPH0612236A
JPH0612236A JP4167083A JP16708392A JPH0612236A JP H0612236 A JPH0612236 A JP H0612236A JP 4167083 A JP4167083 A JP 4167083A JP 16708392 A JP16708392 A JP 16708392A JP H0612236 A JPH0612236 A JP H0612236A
Authority
JP
Japan
Prior art keywords
bit
integer
bits
full adder
register
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
Application number
JP4167083A
Other languages
English (en)
Other versions
JP3210420B2 (ja
Inventor
Keiichi Iwamura
恵市 岩村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP16708392A priority Critical patent/JP3210420B2/ja
Priority to EP93304879A priority patent/EP0576262B1/en
Priority to DE69329260T priority patent/DE69329260T2/de
Publication of JPH0612236A publication Critical patent/JPH0612236A/ja
Priority to US08/512,620 priority patent/US5524090A/en
Application granted granted Critical
Publication of JP3210420B2 publication Critical patent/JP3210420B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【目的】乗算回路において大きな桁数を分割して演算す
る場合に、小さな桁数の乗算器を用いて桁上がりを考慮
した効率的な回路及び乗算方法を提供する。 【構成】h,m,nを正の整数とし、nビツトの整数A
と(h×m)ビツトの整数Bとの乗算を行う回路におい
て、1×mビツトの乗算器とmビツトフルアダーとm+
2ビツトのレジスタとからなる演算エレメントを整数B
のmビツトに対応してh個備え、整数Aの各1ビツトに
整数Bのmビツトが乗算されて、mビツトフルアダーに
出力され、フルアダーでは、各乗算器の出力と、下位桁
のレジスタからの前回のクロツク時の下位桁のmビツト
フルアダーの上位3ビツトと、同じレジスタからの前回
のクロツク時のフルアダーでの加算結果の下位m−1ビ
ツトを1桁上位にシフトしたフイードバツク値とを加算
し、上位3ビツトを上位桁のフルアダーの下位3ビツト
に提供し、nクロツク後のm+2ビツトのレジスタの内
容を乗算結果A・Bとする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は整数上の乗算回路に関
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路及びその方法に関するものである。本発明
は、大きな桁数の乗算を必要とするRSA暗号(池野信
一,小山謙二:“現代暗号学”,電子情報通信学会,1
986,6章)のような暗号化技術をはじめとして多く
の整数演算に利用することができる。
【0002】
【従来の技術】ゲートアレイの設計や基板設計におい
て、小さな桁数の整数上の乗算器は、セルライブラリや
TTL等が用意されているため手軽に構成することがで
きる。しかし、大きな桁数の乗算回路を実現しようとし
た場合には、セルライブラリ等がないので自分で設計し
なければならない。ところが、大きな桁数の乗算器を自
分で設計する場合、小さな桁数の乗算器の回路構成をそ
のまま拡張したのでは、回路構成が非常に複雑になり実
現が難しい。
【0003】また、入力値を所定ビツト毎に分割して複
数クロツクで乗算を行おうとする場合、入力値を多項式
と見なすと、ガロア体(宮川洋,岩垂好裕,今井秀樹:
“符号理論”,昭晃堂,1973,4章)のような桁上
がりのない演算系では、図2のような回路によつて乗算
が行われることが知られている。図2中、*Bi はB i
(i=0,…,n−1)を乗数としたmビツト*mビツ
トのガロア体上の乗算器、EXはmビツトのEXOR、
rはmビツトのレジスタである。
【0004】しかし、整数上の乗算では、図2のような
分割演算を行うと分割演算した桁毎に桁上がりが生じる
ため、効率的な乗算器を実現することは難しい。
【0005】
【発明が解決しようとしている課題】本発明は、上述の
欠点を除去し、乗算回路において大きな桁数の入力値を
分割して演算する場合に、小さな桁数の乗算器を用いて
桁上がりを考慮した効率的な整数上の乗算回路及び乗算
方法を提供することを目的とする。
【0006】
【課題を解決するための手段】この課題を解決するため
に、本発明の整数上の乗算回路は、h,m,nを正の整
数とする場合に、nビツトの整数Aと(h×m)ビツト
の整数Bとの乗算を行う整数上の乗算回路であつて、整
数Aが1ビツト毎にnクロツクに分けて上位桁から入力
され、該整数Aの各1ビツトに整数Bの所定のmビツト
を乗算する前記整数Aに対して並列につながれる1ビツ
ト×mビツトの乗算器と、該乗算器の出力と、前回のク
ロツク時の1つ下位桁の2ビツトキヤリー付きmビツト
フルアダーのm,m+1及びm+2の上位3ビツトと、
前回のクロツク時の同じ桁の2ビツトキヤリー付きmビ
ツトフルアダーの下位m−1ビツトを1桁上位にシフト
したフイードバツク値とを加算する前記2ビツトキヤリ
ー付きmビツトフルアダーと、前記2ビツトキヤリー付
きmビツトフルアダーのm+2ビツトの出力を同時に入
出力する、2つの前記2ビツトキヤリー付きmビツトフ
ルアダー間につながれるm+2ビツトのレジスタとを備
え、nクロツク後の前記m+2ビツトのレジスタの内容
を乗算結果A・Bとする。
【0007】又、h,m,nを正の整数とする場合に、
nビツトの整数Aと(h×m)ビツトの整数Bとの乗算
を行う整数上の乗算回路であつて、1ビツト×mビツト
の乗算器と2ビツトキヤリー付きmビツトフルアダーと
m+2ビツトのレジスタとからなる演算エレメントを整
数Bの所定のmビツトに対応してh個備え、前記乗算器
には整数Aが1ビツト毎にnクロツクに分けて上位桁か
ら並列に入力され、該整数Aの各1ビツトに整数Bの所
定のmビツトが乗算されて、前記mビツトフルアダーに
出力され、前記mビツトフルアダーでは、前記各乗算器
の出力と、下位桁の前記レジスタからの前回のクロツク
時の下位桁の前記mビツトフルアダーのm,m+1及び
m+2の上位3ビツトと、同じ演算エレメント内の前記
レジスタからの前回のクロツク時の前記mビツトフルア
ダーでの加算結果の下位m−1ビツトを1桁上位にシフ
トしたフイードバツク値とを加算し、前記レジスタは、
前記mビツトフルアダーのm+2ビツトの出力を同時に
保持し、下位m−1ビツトを同じ演算エレメント内の前
記mビツトフルアダーにフイードバツクし、上位3ビツ
トを上位桁の前記mビツトフルアダーの下位3ビツトに
提供し、nクロツク後の前記m+2ビツトのレジスタの
内容を乗算結果A・Bとする。
【0008】ここで、前記2ビツトキヤリー付きmビツ
トフルアダーは、複数の2入力フルアダーまたはハーフ
アダーによつて実現される。
【0009】又、本発明の整数上の乗算方法は、h,
m,nを正の整数とする場合に、nビツトの整数Aと
(h×m)ビツトの整数Bとの乗算を行う整数上の乗算
方法であつて、1ビツト×mビツトの乗算器と、2ビツ
トキヤリー付きmビツトフルアダーと、該フルアダーの
出力を記憶する整数Bの桁に対応してアドレス配置され
る複数領域を有する少なくともm+2ビツトのメモリと
を備え、(A) 整数Aのn分割された1ビツト(Ai )と
整数Bのh分割されたmビツト(Bj )とを前記1ビツ
ト×mビツトの乗算器で乗算する行程と、(B) 乗算結果
と前記メモリの所定領域(Rj-1 )の上位3ビツトと所
定領域(Rj )の下位m−1ビツトとを前記フルアダー
で加算する行程と、(C) 加算結果を前記メモリの所定領
域(Rj )に記憶する行程とを備え、前記行程(A) 〜
(C) を各Ai(i=n−1,n−2,…,0の順)につい
て、B j のjをn−1から0まで変化させて繰り返し、
全行程終了後の前記メモリの内容を乗算結果A・Bとす
る。
【0010】
【実施例】本実施例ではnビツトの整数Aとh・mビツ
トの整数Bとの乗算器を想定するが、簡単のためにh=
nとして説明する。この限定により一般性が失われるこ
とはない。すなわち、nビツトの整数Aとn・mビツト
の整数Bとし、A・B=Cの演算を実行することを考え
る。ここで、mビツトの2つの整数a,bの乗算a・b
=cを実行する乗算器は公知の構成、例えばセルライブ
ラリやTTL等によつて簡単に実現できる。
【0011】整数Aを1ビツト毎に、整数Bをmビツト
毎にn分割すると、次のように表せる。
【0012】A=An-1 ・2n-1 +An-2 ・2n-2 +…
+A1 ・2+A0 B=Bn-1 ・Xn-1 +Bn-2 ・Xn-2 +…+B1 ・X+
0 ここで、X=2m-1 とし、A,Bについて上位桁からn
分割したビツト系列を、各々Ai ,Bi (i=n−1,
…,0)とする。この場合、整数A,Bは多項式とみな
すことができるので、A・Bは次のように表すことがで
きる。
【0013】
【数1】 A・B=An-1 ・B・2n-1 +An-2 ・B・2n-2 +… +A1 ・B・2+A0 ・B ここでは、一般性が失われることはないので、n=4の
場合を考える。
【0014】 A・B=A3 ・(B3 ・X3 +B2 ・X2 +B1 ・X+B0 )・23 +A2 ・(B3 ・X3 +B2 ・X2 +B1 ・X+B0 )・22 +A1 ・(B3 ・X3 +B2 ・X2 +B1 ・X+B0 )・2 +A0 ・(B3 ・X3 +B2 ・X2 +B1 ・X+B0 ) これを、図1のような回路の乗算器で構成する。図1は
i (i=n−1,…,0)が1ビツト単位、Bi がm
ビツト単位のときの乗算回路である。図1は1×mビツ
トの乗算器4個(×B0 〜×B3 )と、2ビツトキヤリ
ー付きmビツトフルアダー4個(+0 〜+3 )と、m+
2ビツトのレジスタ4個(R0 〜R4 )から構成され
る。図1において各レジスタの初期状態はオール“0”
とする。
【0015】最初のクロツクでA3 が入力されると、
式の各項の係数A3 ・Bi (i=3,…,0)が各乗算
器から出力され、各フルアダーを通して各々のレジスタ
に格納される。
【0016】次のクロツクでA2 が入力されたとき、
式の各項の係数A2 ・Bi (i=3,…,0)が各乗算
器から出力される。式は式に対して2進数で1桁大
きいので、レジスタ内に格納された値は1ビツト上位に
シフトされて、式の係数を表す各乗算器からの出力と
加算される。従つて、各レジスタの下位m−1ビツトは
1ビツト上位にシフトされて加算器にフイードバツク入
力され、各レジスタのmビツト目は右隣の加算器の最下
位ビツトに入力される。従つて、加算器ではmビツト同
士の加算が行われ、桁上がりがあればm+1ビツトの出
力が行われて再びレジスタに格納される。
【0017】次のクロツクでA1 が入力されたときも、
2 が入力されたときと同様の演算が行われるが、各レ
ジスタのm+1ビツト目の桁上がりビツトがキヤリーと
して右隣の加算器の2桁目に入力される。すなわち、各
レジスタのm+1ビツト目は右隣のレジスタの最下位ビ
ツトと同じ桁を表すので、加算器においては最下位のキ
ヤリービツトではなく2桁目のキヤリービツトとして扱
う必要がある。従つて、加算器からはm+2ビツトの出
力が行われ再びレジスタに格納される。これによつて、
上の〜式までの各項の係数の加算が行われたことに
なる。
【0018】次のクロツクで最後の入力A0 が入力され
たとき、同様の演算によつて〜式の各項の係数の加
算が行われ、A・Bの乗算が行われたことになる。後は
引続きクロツクわ入力し、最上位桁のレジスタの上位ビ
ツトから乗算結果A・Bを上位桁から出力しても良い
し、各レジスタの内容を読み出して最終乗算結果A・B
を作成しても良い。これによつてAの値が分割入力され
るときA・Bの演算が効率的に行われる。
【0019】本例では、整数Aを1ビツトづつ分割し、
n=4として説明したが、一般性を失うことなく、整数
Aをmビツトに分割されたn・mビツトの数とし、nと
hとが異なる任意の整数の乗算にまで拡張される。この
場合には、mビツト×mビツトの乗算器が使用される。
【0020】また、図1においてキヤリーを持つフルア
ダーは、複数の2入力フルアダーとハーフアダーの組合
せによつて実現できることも明かである。また、図1に
おいて右端のレジスタを省いたり、更にフルアダーとレ
ジスタを付け加えても同様の乗算器が構成できるのは明
かである。
【0021】また、図1のような乗算器(×Bj )とフ
ルアダー(+j )とレジスタ(Rj)とからなる同一の
演算素子(エレメント)の繰り返しによる構成は、VL
SI等の大規模回路を構成しやすいという利点もある。
また、複数の領域Rj を有するメモリを使用して、ソフ
トウエアにより上記演算素子に対応する演算を順にある
いは並列に行うことにより、同様の演算結果が得られる
ことは明らかである。尚、本発明は、複数の機器から構
成されるシステムに適用しても、1つの機器から成る装
置に適用しても良い。また、本発明はシステム或は装置
にプログラムを供給することによつて達成される場合に
も適用できることは言うまでもない。
【発明の効果】本発明により、乗算回路において大きな
桁数の入力値を分割して演算する場合に、小さな桁数の
乗算器を用いて桁上がりを考慮した効率的な整数上の乗
算回路及び乗算方法を提供できる。
【図面の簡単な説明】
【図1】本実施例の整数上の乗算回路を示す図である。
【図2】公知のガロア体上の多項式の乗算回路を示す図
である。
【符号の説明】
R…m+2ビツトレジスタ、+…2ビツトキヤリー付き
2mビツトフルアダー、×Bi …Bi (i=0,…,n
−1)を乗数とした1ビツト×mビツトの整数上の乗算
器、*Bi …Bi (i=0,…,n−1)を乗数とした
1ビツト*mビツトのガロア体上の乗算器、EX…mビ
ツトのEXOR、r…mビツトレジスタ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 h,m,nを正の整数とする場合に、n
    ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
    行う整数上の乗算回路であつて、 整数Aが1ビツト毎にnクロツクに分けて上位桁から入
    力され、該整数Aの各1ビツトに整数Bの所定のmビツ
    トを乗算する前記整数Aに対して並列につながれる1ビ
    ツト×mビツトの乗算器と、 該乗算器の出力と、前回のクロツク時の1つ下位桁の2
    ビツトキヤリー付きmビツトフルアダーのm,m+1及
    びm+2の上位3ビツトと、前回のクロツク時の同じ桁
    の2ビツトキヤリー付きmビツトフルアダーの下位m−
    1ビツトを1桁上位にシフトしたフイードバツク値とを
    加算する前記2ビツトキヤリー付きmビツトフルアダー
    と、 前記2ビツトキヤリー付きmビツトフルアダーのm+2
    ビツトの出力を同時に入出力する、2つの前記2ビツト
    キヤリー付きmビツトフルアダー間につながれるm+2
    ビツトのレジスタとを備え、 nクロツク後の前記m+2ビツトのレジスタの内容を乗
    算結果A・Bとすることを特徴とする整数上の乗算回
    路。
  2. 【請求項2】 h,m,nを正の整数とする場合に、n
    ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
    行う整数上の乗算回路であつて、 1ビツト×mビツトの乗算器と2ビツトキヤリー付きm
    ビツトフルアダーとm+2ビツトのレジスタとからなる
    演算エレメントを整数Bの所定のmビツトに対応してh
    個備え、 前記乗算器には整数Aが1ビツト毎にnクロツクに分け
    て上位桁から並列に入力され、該整数Aの各1ビツトに
    整数Bの所定のmビツトが乗算されて、前記mビツトフ
    ルアダーに出力され、 前記mビツトフルアダーでは、前記各乗算器の出力と、
    下位桁の前記レジスタからの前回のクロツク時の下位桁
    の前記mビツトフルアダーのm,m+1及びm+2の上
    位3ビツトと、同じ演算エレメント内の前記レジスタか
    らの前回のクロツク時の前記mビツトフルアダーでの加
    算結果の下位m−1ビツトを1桁上位にシフトしたフイ
    ードバツク値とを加算し、 前記レジスタは、前記mビツトフルアダーのm+2ビツ
    トの出力を同時に保持し、下位m−1ビツトを同じ演算
    エレメント内の前記mビツトフルアダーにフイードバツ
    クし、上位3ビツトを上位桁の前記mビツトフルアダー
    の下位3ビツトに提供し、 nクロツク後の前記m+2ビツトのレジスタの内容を乗
    算結果A・Bとすることを特徴とする整数上の乗算回
    路。
  3. 【請求項3】 前記2ビツトキヤリー付きmビツトフル
    アダーは、複数の2入力フルアダーまたはハーフアダー
    によつて実現されることを特徴とする請求項1または2
    記載の整数上の乗算回路。
  4. 【請求項4】 h,m,nを正の整数とする場合に、n
    ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
    行う整数上の乗算方法であつて、 1ビツト×mビツトの乗算器と、2ビツトキヤリー付き
    mビツトフルアダーと、該フルアダーの出力を記憶する
    整数Bの桁に対応してアドレス配置される複数領域を有
    する少なくともm+2ビツトのメモリとを備え、 (A) 整数Aのn分割された1ビツト(Ai )と整数Bの
    h分割されたmビツト(Bj )とを前記1ビツト×mビ
    ツトの乗算器で乗算する行程と、 (B) 乗算結果と前記メモリの所定領域(Rj-1 )の上位
    3ビツトと所定領域(Rj )の下位m−1ビツトとを前
    記フルアダーで加算する行程と、 (C) 加算結果を前記メモリの所定領域(Rj )に記憶す
    る行程とを備え、 前記行程(A) 〜(C) を各Ai(i=n−1,n−2,…,
    0の順)について、B j のjをn−1から0まで変化さ
    せて繰り返し、全行程終了後の前記メモリの内容を乗算
    結果A・Bとすることを特徴とする整数上の乗算方法。
JP16708392A 1992-06-25 1992-06-25 整数上の乗算回路 Expired - Fee Related JP3210420B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP16708392A JP3210420B2 (ja) 1992-06-25 1992-06-25 整数上の乗算回路
EP93304879A EP0576262B1 (en) 1992-06-25 1993-06-23 Apparatus for multiplying integers of many figures
DE69329260T DE69329260T2 (de) 1992-06-25 1993-06-23 Gerät zum Multiplizieren von Ganzzahlen mit vielen Ziffern
US08/512,620 US5524090A (en) 1992-06-25 1995-08-08 Apparatus for multiplying long integers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16708392A JP3210420B2 (ja) 1992-06-25 1992-06-25 整数上の乗算回路

Publications (2)

Publication Number Publication Date
JPH0612236A true JPH0612236A (ja) 1994-01-21
JP3210420B2 JP3210420B2 (ja) 2001-09-17

Family

ID=15843097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16708392A Expired - Fee Related JP3210420B2 (ja) 1992-06-25 1992-06-25 整数上の乗算回路

Country Status (1)

Country Link
JP (1) JP3210420B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465874C (zh) * 1995-08-31 2009-03-04 英特尔公司 根据指令对数据执行运算的方法、处理器和系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7806832B2 (en) 2007-04-30 2010-10-05 The General Electric Company False positive reduction in SPO2 atrial fibrillation detection using average heart rate and NIBP
KR102911856B1 (ko) 2021-02-08 2026-01-15 삼성전자주식회사 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465874C (zh) * 1995-08-31 2009-03-04 英特尔公司 根据指令对数据执行运算的方法、处理器和系统

Also Published As

Publication number Publication date
JP3210420B2 (ja) 2001-09-17

Similar Documents

Publication Publication Date Title
EP1293891B1 (en) Arithmetic processor accomodating different finite field size
Mohan Residue number systems: algorithms and architectures
CN110351087B (zh) 流水线型的蒙哥马利模乘运算方法
JP5266354B2 (ja) ガロア拡大体・積算/積算加算・積和演算装置
US6009450A (en) Finite field inverse circuit
US6061706A (en) Systolic linear-array modular multiplier with pipeline processing elements
US3805043A (en) Serial-parallel binary multiplication using pairwise addition
JP3516503B2 (ja) 電子乗算および加算装置および方法
JP3213628B2 (ja) Mを法として長い整数を乗算するための算術ユニット及びそのような乗算デバイスを具えるr.s.a.変換器
JPH08101779A (ja) 有限領域におけるモジュラ計算用の電子回路
CN1717653B (zh) 带有查询表的乘法器
US20030182343A1 (en) Fast multiplication circuits
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
JPH0612236A (ja) 整数上の乗算回路及び乗算方法
EP1504338B1 (en) "emod" a fast modulus calculation for computer systems
JP3129525B2 (ja) 整数上の乗算回路
KR100480997B1 (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
JP3129524B2 (ja) 整数上の乗算回路及び乗算方法
JP3129526B2 (ja) 整数上の乗算回路
JPH0612237A (ja) 整数上の乗算回路
JPH0612235A (ja) 整数上の乗算回路及び乗算方法
JPH0612232A (ja) 整数上の乗算回路
JPH0612231A (ja) 整数上の乗算回路
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
Meher et al. An Efficient Look-up Table-based Approach for Multiplication over GF (2 m) Generated by Trinomials

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

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

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees