[go: up one dir, main page]

JP3210420B2 - 整数上の乗算回路 - Google Patents

整数上の乗算回路

Info

Publication number
JP3210420B2
JP3210420B2 JP16708392A JP16708392A JP3210420B2 JP 3210420 B2 JP3210420 B2 JP 3210420B2 JP 16708392 A JP16708392 A JP 16708392A JP 16708392 A JP16708392 A JP 16708392A JP 3210420 B2 JP3210420 B2 JP 3210420B2
Authority
JP
Japan
Prior art keywords
bit
bits
integer
full adder
output
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
JP16708392A
Other languages
English (en)
Other versions
JPH0612236A (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.)
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 DE69329260T priority patent/DE69329260T2/de
Priority to EP93304879A priority patent/EP0576262B1/en
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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は整数上の乗算回路に関
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路に関するものである。本発明は、大きな桁数
の乗算を必要とするRSA暗号(池野信一,小山謙二:
“現代暗号学”,電子情報通信学会,1986,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との乗算を行う整数上の乗算回路であつて、1
ビツト毎にnクロツクに分けて上位桁から入力される整
数Aの各1ビツトに対して、各々が整数Bのそれぞれ異
なるmビツトを並列に乗算するh個の1ビツト×mビツ
トの乗算器と、h個の2ビツトキヤリー付きmビツトフ
ルアダーであって、各々が、前記乗算器の1つの出力
と、1つ下位桁の2ビツトキヤリー付きmビツトフルア
ダーの前回のクロツク時の出力の下位からm+1ビット
以上の部分を1ビット上位にシフトした値と、自分自
身の前回のクロツク時の出力の下位ビツトを1ビット
上位にシフトしたフイードバツク値とを加算する、h個
の2ビツトキヤリー付きmビツトフルアダーと、各々
が、前記2ビツトキヤリー付きmビツトフルアダーの1
つのm+2ビツトの出力を格納し、次のクロックで当該
フルアダーに下位ビツトをフィードバックし、下位か
らm+1ビット目以上の部分を上位の前記2ビツトキヤ
リー付きmビツトフルアダーに出力する、h個のm+2
ビツトのレジスタとを備え、最上の前記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+1
ビット目以上の部分を1ビット上位にシフトした値と、
同じ演算エレメント内の前記レジスタからの前回のクロ
ツク時の前記mビツトフルアダーでの加算結果の下位
ビツトを1ビット上位にシフトしたフイードバツク値と
を加算し、前記レジスタは、前記mビツトフルアダーの
m+2ビツトの出力を同時に保持し、下位ビツトを同
じ演算エレメント内の前記mビツトフルアダーにフイー
ドバツクし、下位からm+1ビット目以上の部分を上位
桁の前記mビツトフルアダーに提供し、最上の前記演
算エレメント内の前記m+2ビツトのレジスタから乗算
結果A・Bを上位桁より順次出力することを特徴とす
る。
【0008】ここで、前記2ビツトキヤリー付きmビツ
トフルアダーは、複数の2入力フルアダーまたはハーフ
アダーによつて実現される。
【0009】
【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+B0 ここで、X=2 m とし、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ビツト上位に
シフトされて、式の係数を表す各乗算器からの出力と
加算される。従つて、各レジスタの下位ビツトは1ビ
ツト上位にシフトされた状態で加算器にフイードバツク
入力され、各レジスタのm+1ビツト目以上1ビツト
上位にシフトされた状態で、右隣の加算器に入力され
る。従つて、加算器では1ビットずれたmビツト同士の
加算が行われ、桁上がりがあればm+2ビツトの出力が
行われて再びレジスタに格納される。
【0017】次のクロツクでA1 が入力されたときも、
2 が入力されたときと同様の演算が行われる。すなわ
、各レジスタのm+1ビツト目の桁上がりビツトがキ
ヤリーとして右隣の加算器の下位から2ビット目に入力
され、各レジスタのm+2ビツト目の桁上がりビツトが
キヤリーとして右隣の加算器の下位から3ビット目に入
力される。すなわち、各レジスタのm+1ビツト目は右
隣のレジスタの最下位ビツトと同じビット位置を表すの
で、加算器においては最下位のキヤリービツトではなく
下位から2ビット目のキヤリービツトとして扱い、各レ
ジスタのm+2ビツト目は右隣のレジスタの下位から2
ビツト目と同じビット位置を表すので、加算器において
は下位から3ビット目のキヤリービツトとして扱う必要
がある。従つて、加算器からは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)とからなる同一の演
算素子(エレメント)の繰り返しによる構成は、VLS
I等の大規模回路を構成しやすいという利点もある。ま
た、複数の領域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ビツトレジスタ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310 G06F 7/60 WPI(DIALOG)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 h,m,nを正の整数とする場合に、n
    ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
    行う整数上の乗算回路であつて、 1ビツト毎にnクロツクに分けて上位桁から入力される
    整数Aの各1ビツトに対して、各々が整数Bのそれぞれ
    異なるmビツトを並列に乗算するh個の1ビツト×mビ
    ツトの乗算器と、 h個の2ビツトキヤリー付きmビツトフルアダーであっ
    て、各々が、前記乗算器の1つの出力と、1つ下位桁の
    2ビツトキヤリー付きmビツトフルアダーの前回のクロ
    ツク時の出力の下位からm+1ビット目以上の部分を1
    ビット上位にシフトした値と、自分自身の前回のクロツ
    ク時の出力の下位ビツトを1ビット上位にシフトした
    フイードバツク値とを加算する、h個の2ビツトキヤリ
    ー付きmビツトフルアダーと、 各々が、前記2ビツトキヤリー付きmビツトフルアダー
    の1つのm+2ビツトの出力を格納し、次のクロックで
    当該フルアダーに下位ビツトをフィードバックし、
    位からm+1ビット目以上の部分を上位の前記2ビツト
    キヤリー付きmビツトフルアダーに出力する、h個のm
    +2ビツトのレジスタとを備え、 最上の前記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+1ビット目
    上の部分を1ビット上位にシフトした値と、同じ演算エ
    レメント内の前記レジスタからの前回のクロツク時の前
    記mビツトフルアダーでの加算結果の下位ビツトを1
    ビット上位にシフトしたフイードバツク値とを加算し、 前記レジスタは、前記mビツトフルアダーのm+2ビツ
    トの出力を同時に保持し、下位ビツトを同じ演算エレ
    メント内の前記mビツトフルアダーにフイードバツク
    し、下位からm+1ビット目以上の部分を上位桁の前記
    mビツトフルアダーに提供し、 最上の前記演算エレメント内の前記m+2ビツトのレ
    ジスタから乗算結果A・Bを上位桁より順次出力するこ
    とを特徴とする整数上の乗算回路。
  3. 【請求項3】 前記2ビツトキヤリー付きmビツトフル
    アダーは、複数の2入力フルアダーまたはハーフアダー
    によつて実現されることを特徴とする請求項1または2
    記載の整数上の乗算回路。
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 整数上の乗算回路
DE69329260T DE69329260T2 (de) 1992-06-25 1993-06-23 Gerät zum Multiplizieren von Ganzzahlen mit vielen Ziffern
EP93304879A EP0576262B1 (en) 1992-06-25 1993-06-23 Apparatus for multiplying integers of many figures
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 JPH0612236A (ja) 1994-01-21
JP3210420B2 true 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 (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
US12327179B2 (en) 2021-02-08 2025-06-10 Samsung Electronics Co., Ltd. Processor, method of operating the processor, and electronic device including the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX9801571A (es) * 1995-08-31 1998-05-31 Intel Corp Aparato para realizar operaciones de multiplica-suma en datos empacados.

Cited By (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
US12327179B2 (en) 2021-02-08 2025-06-10 Samsung Electronics Co., Ltd. Processor, method of operating the processor, and electronic device including the same

Also Published As

Publication number Publication date
JPH0612236A (ja) 1994-01-21

Similar Documents

Publication Publication Date Title
EP1293891B2 (en) Arithmetic processor accomodating different finite field size
US5764554A (en) Method for the implementation of modular reduction according to the Montgomery method
US6209016B1 (en) Co-processor for performing modular multiplication
CA2225899A1 (en) A method and apparatus for finite field multiplication
JP2744091B2 (ja) 有限体の乗法的逆数元を計算するデータ処理方法及び装置
US6009450A (en) Finite field inverse circuit
US6061706A (en) Systolic linear-array modular multiplier with pipeline processing elements
US6917956B2 (en) Apparatus and method for efficient modular exponentiation
JP3213628B2 (ja) Mを法として長い整数を乗算するための算術ユニット及びそのような乗算デバイスを具えるr.s.a.変換器
US8244790B2 (en) Multiplier and cipher circuit
JP3210420B2 (ja) 整数上の乗算回路
US20030182343A1 (en) Fast multiplication circuits
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
EP1504338B1 (en) "emod" a fast modulus calculation for computer systems
KR100480997B1 (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
JP2000207387A (ja) 演算装置及び暗号処理装置
EP1455270A2 (en) Method and apparatus for basis conversion in finite field and a multiplier
JP3129525B2 (ja) 整数上の乗算回路
JPH03661B2 (ja)
JPH05197525A (ja) オペランドを否定するための否定方法及び否定回路
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
JP3129524B2 (ja) 整数上の乗算回路及び乗算方法
JP3129526B2 (ja) 整数上の乗算回路
EP0281303A3 (en) Modulo arithmetic processor chip
JPH0612237A (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: 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