JP2597736B2 - 高速乗算器 - Google Patents

高速乗算器

Info

Publication number
JP2597736B2
JP2597736B2 JP2187259A JP18725990A JP2597736B2 JP 2597736 B2 JP2597736 B2 JP 2597736B2 JP 2187259 A JP2187259 A JP 2187259A JP 18725990 A JP18725990 A JP 18725990A JP 2597736 B2 JP2597736 B2 JP 2597736B2
Authority
JP
Japan
Prior art keywords
multiplier
register
bit
multiplicand
adder
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
JP2187259A
Other languages
English (en)
Other versions
JPH0474219A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2187259A priority Critical patent/JP2597736B2/ja
Priority to US07/724,820 priority patent/US5226003A/en
Priority to KR1019910012187A priority patent/KR940008616B1/ko
Publication of JPH0474219A publication Critical patent/JPH0474219A/ja
Application granted granted Critical
Publication of JP2597736B2 publication Critical patent/JP2597736B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction 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/5336Reduction 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、乗算器に関し、特に高速処理の可能な直並
列乗算器に関する。
(従来の技術) 従来の乗算器には、並列のものと、直並列のものがあ
る。並列乗算器は、信号処理専用のVLSI等で用いられて
いるもので、全ての部分積を同時に足し合わせる為、極
めて高速の処理が可能である。しかし、その反面多大の
ハードウエアを要するので、汎用の信号処理プロセッサ
には不向きである。
一方、直並列乗算器は、少ないハードウエア量で構成
できる点で汎用に適するが乗算の際、加算演算を何回も
繰り返さねばならず、処理に多くの時間を要する。この
様な直並列乗算器の例を、第5図に示す。ここで、乗数
Y、被乗数Xは2進表現されたNビットの数とする。レ
ジスタ101に保持された乗数Yは、制御器103により下位
のビットから走査され、それが0であるか1であるかに
従い、セレクタ105を制御し、1である時には、レジス
タ107に保持された被乗数Xを、0である時には0列を
部分積として加算器109へ出力する。加算器109は、この
部分積とそれまでの中間結果とを足し合わせる。その結
果は、シフター111で1ビット右にシフトされ、中間結
果としてレジスタ113に保持され、再度加算器109の入力
となる。乗数Yの最上位のビットについての部分積の加
算が終わると、乗算結果が加算器109の出力から得られ
る。N×Nビットの乗算の場合には、32回の繰り返し演
算が必要である。
この様な直並列乗算器の加算回路を減らす方法として
は、ブースのアルコリズムが有効であり、広く使われて
いる。これは、乗数の複数のビットの列を同時に参照し
てその部分積をまとめて評価する方法である。まとめて
部分積を評価することにより、部分積の数は減らすこと
ができる。その例として、2次のブースのアルゴリズム
を用いた乗算器を第6図に掲げる。2次のブースのアル
ゴリズムは、次の式に従って演算を行うものである。
ただし、y-1=0 つまり、乗数の3ビットをまとめて評価することによ
り部分積(y2n-1+y2n−2y2n+1)・Xの数を半分に減ら
している。
第6図で、デコーダ115は、上式の括弧内の値に従っ
て、シフト信号117(2を掛ける)、反転信号119(−1
を掛ける)、切り替え信号121(0列を発生させる)、
を処理回路123に出力する。そして、シフター125は、2
ビット分シフトを行う。この方法だと、加算回数は半分
に減るが、32ビットの演算で16回の繰り返しが必要で、
まだかなりの回数加算を繰り返さねばならない。ブース
の次数を高くすれば、加算回数を減らせるが、従来の方
式ではハードウエアが多く、複雑になり、並列処理に対
する利点がうすれてくる。
(発明が解決しようとする課題) 以上の様に、従来の直並列乗算器では、加算回数が大
きく、処理時間が長いという欠点があった。
本発明は、上記問題点を解決するもので、その目的
は、少ない加算回数で乗算を行い得る簡単な構成の乗算
器を提供することである。
[発明の構成] (課題を解決するための手段) 上記課題を解決するために、本発明の高速乗算器は、
乗数を保持する第1のレジスタと、被乗数を保持する第
2のレジスタと、前記第1のレジスタに保持されている
乗数の値を走査して、ブースのアルゴリズムに従い前記
第2のレジスタに保持されている被乗数の3つの部分積
を生成する部分積生成回路と、これら3つの部分積と第
4の数との和を求める4−2コンプレッサの列と、この
4−2コンプレッサからの出力に接続された全加算器の
列と、この全加算器の列から出力された加算結果を保持
しシフトするシフトレジスタと、このシフトされた加算
結果をシフトアウト分を除いて前記4入力加算器の列の
入力に前記第4の数として戻す手段とからなり、前記4
−2コンプレッサの夫々は、前記3つの部分積と前記第
4の数から夫々1ビット入力し、下位の桁に属する前記
4−2コンプレッサからキャリーを受け取り、対応する
前記全加算器とその上位の桁に属する前記全加算器に夫
々1ビットづつ出力すると共に、その上位の桁に属する
前記4−2コンプレッサへキャリーを出力する高速乗算
器であって、前記部分積発生回路が乗算を行うに当たっ
て最初に部分積を発生される時のみ、前記被乗数の部分
積の1つを前記第4の数として発生させその他の3つの
部分積と共に前記加算器に入力させ、その後はシフトさ
れた加算結果を前記シフトレジスタから前記加算器に入
力させるセレクタを更に有する。
(作用) 上記構成によれば、繰り返し演算の回数が大幅に削減
できると共に、構成が簡単となる。
(実施例) 第1図に本発明による高速乗算器の実施例を示す。こ
の乗算器は、式(1)に示した2次のブースのアルゴリ
ズムを採用したものである。この乗算器は、乗数を保持
するレジスタ1と、被乗数を保持するレジスタ3と、乗
数のビット列を走査し式(1)の括弧内の値に対応する
制御信号を出力するデコーダ5と、このデコーダ5の出
力に基づいて被乗数に2,−2,1,−1,0のいずれかを掛け
た値を出力するセレクタ7,9,11,13と、4入力加算器を
構成する4−2コンプレッサ列15及び全加算器17と、レ
ジスタ19と、シフタ21とからなっている。
デコーダ5は、初回のみ式(1)の括弧内の値をn=
0,1,2,3についてデコードし、セレクタ7,9,11,13に制御
信号を出力する。その後のサイクルは、n=4,5,6、n
=7,8,9という具合に、nの3つの値についてデコード
しセレクタ7,9,11に出力する。その時、セレクタ13はシ
フタからの中間結果をコンプレッサ列15に出力する。
レジスタ1は、−1ビットから31ビット位置までの33
ビットのシフトレジスタであり、−1ビットには初期値
として0が与えられ、0ビット〜31ビットに乗数が転送
される。デコーダ5は、−1〜1ビット、1〜3ビッ
ト、3〜5ビット、5〜7ビットをデコードして、セレ
クタ7,9,11,13に制御信号を与える。レジスタ1は、1
サイクル毎にその内容を右に8ビットだけシフトする。
4入力加算器を構成する4−2コンプレッサ列15と全
加算器17のビット分の構成を第2図に示す。4−2コン
プレッサ15mは、加算すべき4つの入力ビットと下位か
らのキャリーCinを受け、出力信号Sを対応するビット
位置の全加算器17mへ、出力キャリーCを1ビット上位
の全加算器へ、キャリーCoutを1ビット上位の4−2コ
ンプレッサへ出力する。尚、最下位ビットのキャリー及
び出力キャリーは0に固定されている。即ち、4−2コ
ンプレッサは4入力2出力であり、全加算器は2入力1
出力である。この4−2コンプレッサ15−mの回路を第
3図に示す。
次に、この乗算器の動作を32ビットの数の乗算につい
て説明する。この場合、式(1)のn=0〜15に対応し
て部分席の数は16個である。最初に、デコーダ5は乗数
を走査しn=0〜3について括弧内を計算し、セレクタ
7,9,11,13に制御信号を送る。これらセレクタは、被乗
算に2,−2,1,−1,0を掛けた値を算出し、制御信号に基
づいてそのいずれかを4−2コンプレッサ列15に出力す
る。この処理は、シフト、反転、0列出力で行われ、出
力ビット位置はnは小さい方から夫々0〜33,2〜35,4〜
37,6〜39である。
これら4つの入力は、4−2コンプレッサ列15と全加
算器17によって加算され、レジスタ19に保持される。こ
のレジスタ19に保持されたデータは、シフタ21の24〜63
ビットに転送され6ビット分右へシフトされる。そし
て、シフトされた後のシフタ21の25〜57ビットに含まれ
るデータがセレクタ7へ転送される。
第2のサイクルでは、n=4〜6についてセレクタ9,
11,13から部分積が出力される。セレクタ13からはシフ
タ21の25〜57ビットの内容が出力される。これらの出力
は、4−2コンプレッサ列15と全加算器17で加算され、
レジスタ19で保持されシフタ21の26〜63ビットへ送られ
る。但し、シフタ21では6ビット分右へシフトされて、
25〜57ビットの内容がセレクタ7へ戻される。
以下、第3〜第5のサイクルでは、n=7〜9、n=
10〜12、n=13〜15について、第2のサイクルと同じ処
理が繰り返され、第5サイクルでシフタ21に加算結果が
得られる。
第4図に本発明による高速乗算器の他の実施例を示
す。この乗算器は、3次のブースのアルゴリズムを採用
したものである。3次のブースのアルゴリズムは、次ぎ
の式によって乗算を行う。
この実施例では、式(2)の一定のnについて括弧内
の3つの項、−22y、2y、y+y、の値をデコーダ25で
計算し制御信号をセレクタ27、1ビットシフタ29、イン
バータ31へ出力する。インバータ31の入力側には、2ビ
ットシフタ33が設けられている。セレクタ27、1ビット
シフタ29、インバータ31ではこの3つの項の値を被乗数
に掛けたものを4−2コンプレッサ列33に出力する。前
記実施例と同様に4−2コンプレッサ列35と全加算器37
で加算が行われ、結果がレジスタ39に保持される。レジ
スタ39は、35ビットの長さが有れば十分である。レジス
タ39の内容は、シフタ41の29〜63ビットに移されn=0
の時は2ビット、n=1〜10の時は3ビット右にシフト
される。シフトの後、シフタ41の29〜63ビットは4−2
コンプレッサ列33に戻される。n=10の時の部分積がシ
フトレジスタに収められて、乗算結果が得られる。この
例では、セレクタ27、1ビットシフタ29、インバータ3
1、2ビットシフタ33には加算演算は要求されず、3次
のブースアルゴリズムが極めて簡単な構成で実現でき
る。
以上、好ましい実施例について説明したが、本発明に
は多くの変形例やその他の実施例があることは言うまで
もない。
[発明の効果] 以上の様に本発明によれば、繰り返し演算の回数が大
幅に削減でき、高速の乗算器が簡単な構成で実現でき
る。
【図面の簡単な説明】
第1図は、本発明の一実施例による乗算器のブロック図
である。 第2図及び第3図は、本発明の乗算器に用いる4入力加
算器を構成する4−2コンプレッサのブロック図と回路
図である。 第4図は、本発明の他の実施例による乗算器のブロック
図である。 第5図及び第6図は、従来の乗算器を示すブロック図で
ある。 1,101,113……シフトレジスタ 3,19,39,107,111,125……レジスタ 5,25,115……デコーダ 7,9,11,13,27,105……セレクタ 15,25……4−2コンプレッサ 17,37,109……加算器

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】乗数を保持する第1のレジスタと、被乗数
    を保持する第2のレジスタと、前記第1のレジスタに保
    持されている乗数の値を走査して、ブースのアルゴリズ
    ムに従い前記第2のレジスタに保持されている被乗数の
    3つの部分積を生成する部分積生成回路と、これら3つ
    の部分積と第4の数との和を求める4−2コンプレッサ
    の列と、この4−2コンプレッサからの出力に接続され
    た全加算器の列と、この全加算器の列から出力された加
    算結果を保持しシフトするシフトレジスタと、このシフ
    トされた加算結果をシフトアウト分を除いて前記4入力
    加算器の列の入力に前記第4の数として戻す手段とから
    なり、前記4−2コンプレッサの夫々は、前記3つの部
    分積と前記第4の数から夫々1ビット入力し、下位の桁
    に属する前記4−2コンプレッサからキャリーを受け取
    り、対応する前記全加算器とその上位の桁に属する前記
    全加算器に夫々1ビットづつ出力すると共に、その上位
    の桁に属する前記4−2コンプレッサへキャリーを出力
    する高速乗算器であって、前記部分積発生回路が乗算を
    行うに当たって最初に部分積を発生される時のみ、前記
    被乗数の部分積の1つを前記第4の数として発生させそ
    の他の3つの部分積と共に前記加算器に入力させ、その
    後はシフトされた加算結果を前記シフトレジスタから前
    記加算器に入力させるセレクタを更に有することを特徴
    とする高速乗算器。
  2. 【請求項2】前記部分積生成回路は、ブースのアルゴリ
    ズムに従って前記乗数のビット列をデコードするデコー
    ダと、このデコーダからの出力に基づいて前記被乗数を
    シフト及び/又は反転した信号又は0列を出力する3つ
    のセレクタからなっていることを特徴とする請求項1に
    記載の高速乗算器。
  3. 【請求項3】前記ブースのアルゴリズムは2次であり、
    前記3つの部分積は、被乗数に2を掛けたもの、−2を
    掛けたもの、1を掛けたもの、−1を掛けたもの、0を
    掛けたもののいずれかが、乗数のビット列に従って生成
    されることを特徴とする請求項1に記載の高速乗算器。
JP2187259A 1990-07-17 1990-07-17 高速乗算器 Expired - Fee Related JP2597736B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2187259A JP2597736B2 (ja) 1990-07-17 1990-07-17 高速乗算器
US07/724,820 US5226003A (en) 1990-07-17 1991-07-02 Multi-path multiplier
KR1019910012187A KR940008616B1 (ko) 1990-07-17 1991-07-16 고속승산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2187259A JP2597736B2 (ja) 1990-07-17 1990-07-17 高速乗算器

Publications (2)

Publication Number Publication Date
JPH0474219A JPH0474219A (ja) 1992-03-09
JP2597736B2 true JP2597736B2 (ja) 1997-04-09

Family

ID=16202849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2187259A Expired - Fee Related JP2597736B2 (ja) 1990-07-17 1990-07-17 高速乗算器

Country Status (3)

Country Link
US (1) US5226003A (ja)
JP (1) JP2597736B2 (ja)
KR (1) KR940008616B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007094223A1 (ja) 2006-02-15 2007-08-23 Matsushita Electric Industrial Co., Ltd. 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612229A (ja) * 1992-06-10 1994-01-21 Nec Corp 乗累算回路
KR0158647B1 (ko) * 1995-05-22 1998-12-15 윤종용 부호/무부호 수 겸용 곱셈기
US5870322A (en) * 1995-05-22 1999-02-09 Samsung Electronics Co., Ltd. Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
US5764558A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficiently multiplying signed and unsigned variable width operands
DE19632246C1 (de) * 1996-08-09 1997-10-23 Siemens Ag Verfahren für eine Multiplikationsschaltung zur Multiplikation eines Multiplikanden und eines Multiplikators nach dem Booth-Verfahren in iterativen Schritten
US6009448A (en) * 1997-08-18 1999-12-28 Industrial Technology Research Institute Pipelined parallel-serial architecture for a modified least mean square adaptive filter
KR100464952B1 (ko) * 1997-08-30 2005-06-01 매그나칩 반도체 유한회사 논리회로를이용한4-2컴프레서
KR100477913B1 (ko) * 1997-12-30 2005-08-29 주식회사 하이닉스반도체 부스알고리즘을이용한멀티플라이어
KR100423903B1 (ko) * 2000-12-29 2004-03-24 삼성전자주식회사 고속 저전력 4-2 압축기
US6993071B2 (en) * 2001-03-20 2006-01-31 Koninklijke Philips Electronics, N.V. Low-cost high-speed multiplier/accumulator unit for decision feedback equalizers
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8615540B2 (en) * 2009-07-24 2013-12-24 Honeywell International Inc. Arithmetic logic unit for use within a flight control system
CN103268213A (zh) * 2013-04-19 2013-08-28 荣成市鼎通电子信息科技有限公司 无需存储器的dtmb中准循环矩阵高速乘法器
US11010166B2 (en) * 2016-03-31 2021-05-18 Intel Corporation Arithmetic logic unit with normal and accelerated performance modes using differing numbers of computational circuits

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59194242A (ja) * 1983-04-19 1984-11-05 Toshiba Corp ディジタル乗算累積加算装置
US4597053A (en) * 1983-07-01 1986-06-24 Codex Corporation Two-pass multiplier/accumulator circuit
JPH0640301B2 (ja) * 1983-09-22 1994-05-25 ソニー株式会社 並列乗算回路
US4769780A (en) * 1986-02-10 1988-09-06 International Business Machines Corporation High speed multiplier
US4745570A (en) * 1986-05-27 1988-05-17 International Business Machines Corporation Binary multibit multiplier
JPH01241622A (ja) * 1988-03-24 1989-09-26 Matsushita Electric Ind Co Ltd 乗算装置
JPH01300338A (ja) * 1988-05-30 1989-12-04 Fujitsu Ltd 浮動小数点乗算器
JP2635696B2 (ja) * 1988-07-12 1997-07-30 富士通株式会社 乗算命令処理方式
JPH083787B2 (ja) * 1988-10-21 1996-01-17 株式会社東芝 単位加算器および並列乗算器
JPH02114325A (ja) * 1988-10-25 1990-04-26 Matsushita Electric Ind Co Ltd 乗算器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007094223A1 (ja) 2006-02-15 2007-08-23 Matsushita Electric Industrial Co., Ltd. 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体

Also Published As

Publication number Publication date
JPH0474219A (ja) 1992-03-09
KR940008616B1 (ko) 1994-09-24
US5226003A (en) 1993-07-06
KR920003151A (ko) 1992-02-29

Similar Documents

Publication Publication Date Title
JP2597736B2 (ja) 高速乗算器
Townsend et al. A comparison of Dadda and Wallace multiplier delays
JP3667635B2 (ja) 演算装置
US6704762B1 (en) Multiplier and arithmetic unit for calculating sum of product
US6411979B1 (en) Complex number multiplier circuit
US4638449A (en) Multiplier architecture
Premkumar A formal framework for conversion from binary to residue numbers
Balajishanmugam High-performance computing based on residue number system: a review
US6480870B1 (en) Random number generator using lehmer algorithm
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
US5999962A (en) Divider which iteratively multiplies divisor and dividend by multipliers generated from the divisors to compute the intermediate divisors and quotients
JPH0776914B2 (ja) 乗算回路
JPS6226723B2 (ja)
CA2055900C (en) Binary tree multiplier constructed of carry save adders having an area efficient floor plan
Bader et al. A binary to residue conversion using new proposed non-coprime moduli set
JP2556300B2 (ja) 乗算装置
ASHER et al. Adaptive booth algorithm for three-integers multiplication for reconfigurable mesh
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
Murthy et al. Modulo 2n±1 adder/subtractors for DSP applications
JPS6259828B2 (ja)
EP0129039A1 (en) Improved multiplier architecture
JP3417172B2 (ja) 演算回路
JP2529890B2 (ja) 乗算剰余演算器
KR0154792B1 (ko) 비트 시리얼 기법을 이용한 미분기
JP3695561B2 (ja) 積和器

Legal Events

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