JPH10326183A - 乗算器 - Google Patents

乗算器

Info

Publication number
JPH10326183A
JPH10326183A JP10106379A JP10637998A JPH10326183A JP H10326183 A JPH10326183 A JP H10326183A JP 10106379 A JP10106379 A JP 10106379A JP 10637998 A JP10637998 A JP 10637998A JP H10326183 A JPH10326183 A JP H10326183A
Authority
JP
Japan
Prior art keywords
partial product
multiplier
carry
bit
save
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.)
Pending
Application number
JP10106379A
Other languages
English (en)
Inventor
Kalavai Janardhan Raghunath
ジャナーダン ラグハナス カラヴァイ
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies 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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH10326183A publication Critical patent/JPH10326183A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49994Sign extension
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F7/5338Reduction 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 each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】 桁上げ保存加算を用いた乗算器から純粋な桁
上げ保存出力を得る。 【解決手段】 乗算器は機能的に3つのセクションに分
かれる。第1セクション10では、ブースエンコーディ
ングプロセスが実行され、部分積が生成される。第2セ
クション(桁上げ保存加算)11では、部分積が桁上げ
保存法を用いて加算される。最終セクション(併合)1
2では、すべての部分積に対する総和項と桁上げ項が足
し合わされて単一の値となり、この値が、乗算の結果と
しての積となる。符号拡張ビットを用いて、各部分積
を、その部分積の和に対して予想される最大長にあらか
じめ拡張しておくことにより、任意の2つの数に対する
純粋桁上げ保存和では、オーバーフローが決して起こら
ないことが保証される。部分積の事前拡張は、最初の部
分積を除いて、部分積ごとに1つのみの符号拡張ビット
の追加しか必要としない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、数値データの自動
処理技術に関し、特に、そのような処理において桁上げ
保存乗算を実現する方法の改良に関する。
【0002】
【従来の技術】一般にディジタルコンピュータにおいて
実行されるような数値データの自動処理技術において、
与えられた演算の処理時間を短縮するため、もしくは、
与えられたレベルの処理をなるべく少ないハードウェア
の複雑さで実行するため、またはその両方のためのいく
つもの技術が過去数十年にわたって開発されてきてい
る。このような技術のうちには、ディジタルの加算器お
よび乗算器ならびに2の補数形式での数の表現を単純化
して負数の扱いの問題を回避するための桁上げ保存アー
キテクチャの使用がある。これらの技術はそれぞれ、今
日のディジタルコンピュータによって実行される数値処
理で日常的に用いられる。
【0003】
【発明が解決しようとする課題】桁上げ保存アーキテク
チャを用いた2の補数乗算器は自動数値処理技術分野で
は周知である。そのうちもっともよく知られているもの
は、1951年にAndrewBoothによって開発されたアル
ゴリズムに基づくものであり、ブース乗算器として知ら
れている。このような桁上げ保存乗算器では、内部処理
は桁上げ保存形式で実行されるが、その出力は、積の各
ビットの「桁上げ」項と「総和」項の併合を通じて「二
進」形式に逆変換される。しかし、多くの場合、乗算器
の出力を桁上げ保存形式で別のプロセスに送ることが好
ましい。併合操作前に桁上げ保存乗算器から出力を取り
出すことは可能であり、この出力は名目上桁上げ保存形
式ではあるが、このような出力は純粋な桁上げ保存出力
ではなく、その使用は後続の処理におけるエラーにつな
がる可能性がある。特に、このような疑似桁上げ保存出
力は、オーバーフロー条件の検出や飽和操作の実行に信
頼性がない。また、このような疑似桁上げ保存出力では
信頼性の高い符号拡張を行うことができない。
【0004】
【課題を解決するための手段】本発明によれば、2の補
数桁上げ保存乗算器から純粋な桁上げ保存出力を得る方
法が実現される。このため、2の補数桁上げ保存乗算器
における各部分積、およびすべての部分積の総和を、純
粋桁上げ保存形式で得る方法が実現される。この方法
は、乗算器の各部分積に符号拡張ビットを追加してこの
ような純粋桁上げ保存形式を実現することを含む。
【0005】
【発明の実施の形態】以下の説明は、部分的には、コン
ピュータシステム内でのデータビットに対する演算のア
ルゴリズムおよび記号的表現で行う。理解されるよう
に、このようなアルゴリズム的記述および表現は、コン
ピュータ処理技術の当業者によって技術内容を伝えるた
めに普通に用いられる手段である。
【0006】ここで(また、一般的に)アルゴリズムと
は、所望の結果に至るステップの自己充足的な列であ
る。これらのステップは一般に、物理量の操作を含む。
通常(必然的ではないが)、これらの量は、蓄積、転
送、加算、比較などの操作を受けることが可能な電気的
あるいは磁気的信号の形をとる。便宜上、また、通常の
用法に合わせるため、これらの信号を適宜、ビット、
値、要素、記号、文字、項、数などと呼ぶ。しかし、強
調されるべき点であるが、このような用語は、適当な物
理量に関連するものであって、単にその量に付けた便宜
的なラベルにすぎない。
【0007】数値データの機械処理を考える際の出発点
は、データを提示する形式の決定である。まず、記数法
を選択しなければならない。歴史的には、数の機械処理
は2(二進法)、8(八進法)、10(十進法)および
16(十六進法)を底として表現された数を扱ってき
た。現在の数値データの機械処理ではほとんど二進法が
選択されるようになっているため、ここでは、本発明の
方法を説明するためにこの方法を用いる。しかし、当業
者には明らかなように、本発明の方法は容易に他の記数
法にも拡張することができる。
【0008】また、自動処理システムにより算術演算を
実行する際に、負の数を表現し負の数に対して演算する
方法について考えなければならない。従来の符号と大き
さによる表現(すなわち、対象となる数の絶対値および
それが正であるか負であるかを示す符号であって、通常
は符号が正であることが含意される)を用いることも可
能であるが、この表現形式は機械処理で実装するのが困
難(かつ高価)である。そのため、自動的に実行される
算術プロセスでは、補数と、対象となる数の符号を示す
追加ビット(通常は最上位ビット)を使用することが一
般的になっている。補数形式で数を処理する方法と、補
数の使用に伴う利点は、当業者に周知であり、ここでは
さらに詳細には説明しない。
【0009】2種類の補数が一般に用いられている。す
なわち、基数の補数(真補数)と、減基数の補数(擬補
数)である。基数とは、用いている記数法の底のことで
ある。二進法で表された数では、擬補数は1の補数と呼
ばれ、対象となる二進数の各ビットの補数をとる(すな
わち、すべての1を0に変え、0を1に変える)ことに
よって形成される。二進数の真補数は2の補数と呼ば
れ、その数の1の補数に1を加えることによって形成さ
れる。当業者には知られているように、上述のような1
の補数および2の補数の形成法は、主として二進数に固
有の便法である。任意の記数法でこのような補数をとる
理論的基礎は周知であり、ここでの本発明の方法の説明
において詳細に説明する必要はない。
【0010】主として、1の補数では値0に2つの表現
があるのに対して2の補数では一意的な0の表現がある
ため、機械処理アプリケーションでは数値を表現するた
めに2の補数表現が主に選択されている。従って、2の
補数表現を用いて本発明の方法の説明をすることにし、
2の補数表現は本発明の実施例の一部と見なすことがで
きる。しかし、当業者には明らかなように、ここで説明
する本発明の方法は、他の補数形式にも容易に拡張可能
である。
【0011】数値データの機械処理で実行される基本的
な算術演算は加算である。加算は、機械処理では、加算
器という論理デバイスによって実装される。各加算器
は、加算される3個までの数値に対して1ビットを処理
する。さらに効率的な演算では、加算器は通常は並列化
され(そのような並列な加算器の数は少なくとも加算さ
れる数のビット数に等しい)、その結果、加算される数
のすべてのビットが同時に処理される。もちろん、この
ような並列加算器は、あるビット桁から他のビット桁へ
の桁上げを取り扱わなければならず、さまざまな並列加
算器構成がこの要求に対処するために開発されている。
このような並列加算器構成のうちで最もよく知られたも
のには、桁上げ伝搬加算器、桁上げ先見加算器、および
桁上げ保存加算器がある。これらの並列加算器構成はす
べて当業者に周知であり、本発明の実施例の一部を形成
する桁上げ保存加算器を除いては、ここではさらに詳細
には説明しない。
【0012】桁上げ保存加算器は、処理時間およびハー
ドウェアの複雑さの両方において、桁上げ伝搬加算器お
よび桁上げ先見加算器よりも有効であると考えられてい
る。従って、ほとんどの機械処理アプリケーションの並
列加算器として選択されている。本質的には、桁上げ保
存加算器の固有の特徴は以下のように説明することがで
きる。他の並列加算器では、全ビットにわたって、ある
ビット桁位置で加算により生じた桁上げをその左隣のビ
ット桁位置に伝搬しなければならないが、桁上げ保存加
算器ではその代わりに、加算される各ビットセットごと
に2つの出力項、すなわち、総和項と桁上げ項を備え
る。各ビット桁位置ごとに、桁上げ項が、もう1つのn
ビット数(nは加算される数のビット数である)として
次の段に(並列に、かつ、左に1ビット桁位置だけシフ
トして)送られる。その後、総和項と桁上げ項のそれぞ
れの「小計」が加算されて、この加算の総計が得られ
る。桁上げ保存加算器の主な利点は乗算において明らか
となり、この点について以下でさらに詳細に説明する。
【0013】機械処理において乗算は(紙と鉛筆による
処理と同様に)基本的に、乗数の各ビットを被乗数の全
ビットにかけることである。二進法で表された数の場
合、各ビットは1または0のいずれかであるため、乗数
の各ビットに対応する部分積は、乗数ビットが0のとき
は各ビット桁位置が0となり、乗数ビットが1のときは
被乗数の各ビットと同じ値(1または0)となる。これ
らの部分積は、もちろん、処理される乗数の各ビットご
とに左に1ビット桁位置ずつシフトされて、加算され、
被乗数と乗数の乗算の結果としての積が得られる。桁上
げ保存加算器を用いた場合、部分積と、先行する項との
各加算は桁上げ保存形式で表される(すなわち、各ビッ
ト桁位置は総和項と桁上げ項の両方を有する)。桁上げ
項と総和校は、すべての部分積にわたって並列に加算さ
れ、乗算の結果としての積は、すべての部分積にわたる
総和項の合計と、すべての部分積にわたる桁上げ項の合
計(総和項の合計に対して左に1ビットシフトしたも
の)との「総計」として求められる。このような乗算に
おける部分積の加算に桁上げ保存法を適用することによ
り、処理時間が大幅に削減されることがわかっている。
従って、この方法は、機械処理における乗算に一般的に
用いられている。
【0014】機械実装された乗算の場合、表現形式ある
いは乗算プロセスの特性を活用するように開発されたさ
まざまなアルゴリズムを用いることによっても処理時間
は改善される。このようなアルゴリズムの簡単な例には
以下のようなものがある。 (1)乗数における0に対する部分積を生成するステッ
プをとばして、2ビット桁位置だけ次の部分積をシフト
する。これにより、スキップされる各部分積ごとに、1
行分のビット加算器を除去するとともに、それに伴い処
理時間が削減される。 (2)0の並びを探索し、対応する回数だけ次の部分積
をシフトする。このような乗算アルゴリズムで最も一般
的に用いられているものの1つに、前述のブースのアル
ゴリズムがあり、特に、Nainidzu-Wang乗算器として知
られる設計修正を加えたものがある(N. Wang, "Digita
l MOS Integrated Circuits: Design for Application
s", Prentice-Hall, 1989、参照)。この修正ブース乗
算器は、本発明の方法の実施例として用いられる。しか
し、理解されるべき点であるが、本発明の方法は、他の
機械プロセス乗算にも容易に拡張される。
【0015】図1は、部分積の桁上げ保存加算を用いた
2の補数ブース乗算器の概略図である。図示のように、
このような乗算器は機能的に3つのセクションに分かれ
る。第1セクション10では、ブースエンコーディング
プロセスが実行され、部分積が生成される。ブースエン
コーディングプロセスは当業者に周知であり、さらに説
明をする必要はないが、一般に部分積の個数は乗数のビ
ット数の約半数となることを注記しておく。第2セクシ
ョン(桁上げ保存加算)11では、部分積が桁上げ保存
法を用いて加算される。最終セクション(併合)12で
は、すべての部分積に対する総和項と桁上げ項が足し合
わされて単一の値となり、この値が、乗算の結果として
の積となる。
【0016】既に説明したように、数値データの機械処
理におけるアプリケーションには、乗算器の出力を他の
機能へ桁上げ保存形式で転送することが好ましい場合が
ある。併合セクションの直前の点(図の13)で乗算器
からの出力を取り出すことが可能ではあるが、これは名
目上桁上げ保存形式であっても、この出力は純粋な桁上
げ保存形式ではないため、オーバーフロー条件の検出や
飽和操作の実行のような機能の実行でエラーを引き起こ
す可能性がある。この問題が生じる理由は、従来技術の
桁上げ保存加算セクションにおける部分積の加算が、M
SB符号ビットにおける暗黙のオーバーフローに対処し
ていないためである。
【0017】本発明の方法は、桁上げ保存加算器の桁上
げ項と総和項の合計が純粋桁上げ保存形式で行われるよ
うに乗算器の桁上げ保存加算プロセスを修正することに
より、桁上げ保存出力を必要とする他の処理で使用可能
にする。この結果を達成するため、本発明は、符号拡張
として知られる技術を利用する。この技術は当業者に周
知であるが、以下で簡単に説明する。
【0018】既に説明したように、機械処理では、数の
符号は一般にその数の最上位ビットにおける追加ビット
によって表現される。機械プロセッサのロジックは、こ
の符号ビットが、この数に対して実行される通常の算術
演算のようには処理されないようにし、むしろ、その算
術演算の結果に対する正しい符号を保存するようになっ
ている。このような符号ビットは算術演算では処理され
ないため、数の最上位ビット桁位置の左に1個または複
数のそのようなビットを追加することは、数の最上位ビ
ット位置の左に0を追加することと同じ効果を有する。
実際、正の数(符号ビットは0)の場合、プロセスは同
一であり、負の数(符号ビットは1)の場合、プロセッ
サによる負の符号ビットの扱いは、「符号付き」の数の
値が追加符号ビットの追加によって変化しないように行
われる。こうして、このような符号拡張は通常、ビット
長が等しくない2個の数のビット数を等しくするために
用いられ、このような等化は、さまざまな機械処理演算
において所望されるものである。
【0019】本発明の方法は、部分積の中間和がそれぞ
れ純粋桁上げ保存形式であれば、乗算器(例えば図1)
の桁上げ保存加算セクションの出力が純粋桁上げ保存形
式になるという認識によるものである。この目的の実現
(すなわち、乗算器の部分積の中間和をそれぞれ純粋桁
上げ保存形式にすること)は、次の2つの主要な考え方
に従う。 (1)任意の2つの数に対する純粋桁上げ保存和は、そ
の和のオーバーフローが決して起こらないことを保証す
ることによって実現される。 (2)それぞれ長さがkビットの2つの数の和の最大k
+1ビット長である。例えば、11ビットの2つの数の
和は12ビット以下である。
【0020】(2)の知識を用いると、(1)に記載し
た結果は、本発明の方法によれば、符号拡張ビットを用
いて、各部分積を、その部分積の和に対して予想される
最大長にあらかじめ拡張しておくことによって実現され
る。符号拡張ビットは、拡張された数の値を変えないた
め、加算プロセスの結果は不変であるが、それにより結
果はオーバーフローを避けるのに適当な長さであること
が保証される。このような部分積の事前拡張は一般に、
部分積ごとに1つのみの符号拡張ビットの追加しか必要
としないが、場合によっては、特に最初の部分積生成で
は、その部分積の長さを、加算されることになる後続の
部分積と等しくするために、追加の符号拡張ビットが必
要になることがある。
【0021】本発明の方法の適用例を図2に示す。この
図で、例示した2の補数12×10ブース乗算器のブー
スエンコーディングステップによって生成される部分積
が、本発明の方法により追加された符号拡張ビットとも
に示されている。ブースエンコーディングによって生成
される5個の部分積は、a0,a1,...,a12;b0,b
1,...,b12;f0,f1,...,f12;d0,d1,...,
12;およびe0,e1,...,e12で表されている。
(注意すべき点であるが、この図および次の図では、最
上位ビット(MSB)を添字0で表し、このビットは符
号ビットでもあり、また、最下位ビット(LSB)を、
被乗数の最大桁数に対応する添字(ここでは12)で表
すという規約に従う。)また、2の補数ブースエンコー
ディングは、2の補数形式を完成するために各部分積に
対する丸めビットを生成する。この丸めビットは図中で
は添字rで示されている。
【0022】本発明の方法の例として、部分積の「b」
の行(図では参照符号21で示す)を考える。ここで
は、図からわかるように、部分積は、1つの符号拡張ビ
ットb 0の追加によって拡張されている。しかし、同じ
く図からわかるように、部分積の「a」の行20(この
行に「b」の行が加算される)は、単一の符号拡張ビッ
トa0であらかじめ拡張しておくだけではなく、ブース
エンコーディングプロセスに固有の各部分積に対する2
ビット桁位置のシフトのために、さらに2個のそのよう
な符号拡張ビット(全部で3個の符号拡張ビットとな
る)を追加して、加算される項の長さが等しくなるよう
に維持しなければならない。
【0023】次に、部分積の「f」の行22を考える。
これも同様に、本発明の方法により、1つの符号拡張ビ
ットf0によりあらかじめ拡張される。また、同じく図
からわかるように、ブースエンコーディングシフトによ
り、この項は、「a」と「b」の部分積の和よりも2ビ
ット桁位置だけ長い。従って、原理的には、「a」と
「b」の部分積の和は、「f」の部分積に加える前に、
さらに2個の符号拡張ビットによって事前に符号拡張し
ておく必要がある。しかし、本発明の第2実施例によれ
ば、この「ブースシフト」事前拡張は避けられる。これ
は、「d」と「e」の部分積に加えられる和についても
同様である。この第2実施例は図3を参照すれば理解さ
れる。図3は、本発明の方法による乗算器の桁上げ保存
加算セクションの実装を示す。
【0024】図3は、4行のビット加算器(ビット桁位
置に対応する番号を含む円)を示す。これは、図2の5
個の部分積の加算に必要であり、桁上げ保存加算構成で
接続されている。各ビット加算器は3個の入力を有し、
これらは、図示されているように、与えられた加算器段
(行)で加算される部分積ビットからなる。また、各ビ
ット加算器は2個の出力を有し、これらは、その加算器
によって加算されるビットの総和項および桁上げ項を表
す。各ビット桁位置の最後のビット加算器の出力にはバ
スデバイス(▽の記号で表され、2個の入力および1個
の出力を有する)があり、これは、そのビット桁位置の
桁上げ項および総和項を別々の桁上げバスおよび総和バ
スに変換するように動作する。これらのバスの出力は、
図2の25および26や、図3のこれらのバスデバイス
の出力に示したような完全な総和項および桁上げ項とな
る。
【0025】次に、図3の加算器の第2行(参照符号4
1で示す)について考える。図中のビット加算器への入
力によって示されているように、この加算器段は、
「f」の部分積(図2)を、「a」と「b」の部分積の
加算から得られた総和項および桁上げ項と足し合わせ
る。しかし、ブースエンコーディングシフトにより、
「f」の部分積ビットは、「a」と「b」の部分積の加
算の結果の左に2ビット桁位置だけシフトされ、その結
果、その結果よりも長さが2ビットだけ長い数を表す。
これは、図2の部分積、および、図3の第2加算器段4
1の上位2個のビット加算器によって示されている。ま
た、図3は、本発明が、加算プロセスに対して長さの等
しい数を提供するために、結果に2個の符号拡張ビット
を追加する必要性をいかにして回避しているかをも示し
ている。このような追加の符号拡張ビットの追加によ
り、総和項および桁上げ項の値は、第1の符号拡張ビッ
トが追加されたときのもの(すなわち、図3の第1加算
器段40のa0項とb0項の和)に等しいため、この第1
符号拡張ビットの追加の結果の値は、40および41に
示すように、第2段加算器の上位2個のビット加算器に
渡すことができる。この渡すプロセスは、第3加算器段
の42および第4加算器段の43でも(一般的には、第
1段の後のすべての加算器段で)反復され、段あたり2
個のビット加算器が節約される。
【0026】
【発明の効果】
[結論]以上、桁上げ保存加算を用いた乗算器から純粋
な桁上げ保存出力を得る方法の改善について説明した。
本発明の方法により、部分積の各加算の和が純粋桁上げ
保存形式で行われるため、桁上げ保存形式におけるオー
バーフローの問題が解決される。本発明による乗算器の
各加算器段では、部分積ビットが符号拡張ビットを用い
て適切に拡張されるため、情報の損失がない。本発明の
方法によれば、加算器段の桁上げ保存出力におけるオー
バーフローが、暗黙にも明示的にもなくなり、乗算器の
桁上げ保存加算セクションの最終出力は純粋桁上げ保存
形式となる。
【0027】以上、本発明の実施例について詳細に説明
したが、当業者であれば、本発明の特許請求の範囲の記
載による技術的範囲内でさまざまな変形例を構成するこ
とが可能である。特に、上記では、本発明の方法に関し
て、2の補数の桁上げ保存ブース乗算器を用いた実施例
について説明したが、本発明の方法は、他の桁上げ保存
乗算器実装にも容易に拡張される。
【図面の簡単な説明】
【図1】桁上げ保存アーキテクチャを用いた一般的な従
来のブース乗算器の概略図である。
【図2】本発明の方法により改良されたブース乗算器に
おいて、デコードされた部分積を示す図である。
【図3】本発明の方法により実装した例示的な12×1
0ブース乗算器の桁上げ保存加算セクションの図であ
る。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A.

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 乗算器から純粋桁上げ保存出力を得る方
    法において、 部分積のセットを生成するステップと、 与えられた部分積と先行する項との加算の結果が純粋桁
    上げ保存形式となるように前記部分積に対する演算を行
    う演算ステップと、 前記演算ステップを前記部分積に反復適用した結果の総
    和項および桁上げ項を求めるステップとからなることを
    特徴とする、乗算器から純粋桁上げ保存出力を得る方
    法。
  2. 【請求項2】 前記演算ステップは、符号拡張ビットを
    用いて各部分積を事前拡張することによって実行される
    ことを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記部分積の事前拡張は、与えられた部
    分積と先行する項との加算の結果にオーバーフローがな
    いように行われることを特徴とする請求項2に記載の方
    法。
  4. 【請求項4】 前記部分積の事前拡張は、最初の部分積
    以外の各部分積に1個の符号拡張ビットを追加すること
    によって実行されることを特徴とする請求項2に記載の
    方法。
  5. 【請求項5】 前記乗算器は、演算される値の2の補数
    表現に基づいていることを特徴とする請求項1に記載の
    方法。
  6. 【請求項6】 前記乗算器はブース乗算器として構成さ
    れていることを特徴とする請求項1に記載の方法。
  7. 【請求項7】 請求項1に記載の方法を実行するように
    構成された桁上げ保存乗算器。
  8. 【請求項8】 前記乗算器によって生成される部分積の
    最上位ビット桁位置の加算から生じる総和項および桁上
    げ項が、次の部分積の1つ以上上位のビット桁位置から
    のビットを入力とするビット加算器に入力されることを
    特徴とする請求項7に記載の乗算器。
  9. 【請求項9】 桁上げ保存加算部を有する乗算器におい
    て、 部分積のセットを生成する手段と、 与えられた部分積と先行する項との前記桁上げ保存加算
    部による加算の結果が純粋桁上げ保存形式となるように
    前記部分積に対する演算を行う演算手段と、 前記演算手段を前記部分積に反復適用する手段とからな
    ることを特徴とする乗算器。
  10. 【請求項10】 前記演算手段は、符号拡張ビットを用
    いて各部分積を事前拡張する手段を有することを特徴と
    する請求項9に記載の乗算器。
  11. 【請求項11】 前記部分積の事前拡張は、与えられた
    部分積と先行する項との加算の結果にオーバーフローが
    ないように行われることを特徴とする請求項9に記載の
    乗算器。
  12. 【請求項12】 前記部分積の事前拡張は、最初の部分
    積以外の各部分積に1個の符号拡張ビットを追加するこ
    とによって実行されることを特徴とする請求項10に記
    載の乗算器。
  13. 【請求項13】 前記乗算器は、演算される値の2の補
    数表現に基づいていることを特徴とする請求項9に記載
    の乗算器。
  14. 【請求項14】 前記乗算器はブース乗算器として構成
    されていることを特徴とする請求項9に記載の乗算器。
JP10106379A 1997-04-30 1998-04-16 乗算器 Pending JPH10326183A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84174397A 1997-04-30 1997-04-30
US08/841743 1997-04-30

Publications (1)

Publication Number Publication Date
JPH10326183A true JPH10326183A (ja) 1998-12-08

Family

ID=25285593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10106379A Pending JPH10326183A (ja) 1997-04-30 1998-04-16 乗算器

Country Status (4)

Country Link
EP (1) EP0875822A3 (ja)
JP (1) JPH10326183A (ja)
CN (1) CN1201182A (ja)
TW (1) TW407245B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100405288C (zh) * 2004-05-27 2008-07-23 扬智科技股份有限公司 乘法器的符号延伸方法及结构
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
CN111488133B (zh) * 2020-04-15 2023-03-28 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器

Also Published As

Publication number Publication date
EP0875822A2 (en) 1998-11-04
EP0875822A3 (en) 1999-11-17
TW407245B (en) 2000-10-01
CN1201182A (zh) 1998-12-09

Similar Documents

Publication Publication Date Title
CN103294445B (zh) 产生用于多项式运算的部分乘积的设备和方法
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH06250823A (ja) ポピュレーション・カウントの計算装置
JP2585649B2 (ja) 除算回路
JP3551113B2 (ja) 除算器
JPH0573269A (ja) 加算器
JP3003467B2 (ja) 演算装置
JP2006172035A (ja) 除算・開平演算器
US5289399A (en) Multiplier for processing multi-valued data
JPH10326183A (ja) 乗算器
US3489888A (en) Floating point look-ahead binary multiplication system utilizing two's complement notation for representing negative numbers
US20020161810A1 (en) Method and apparatus for multiplication and/or modular reduction processing
US6766346B2 (en) System and method for computing a square of a number
JP3660075B2 (ja) 除算装置
US7167885B2 (en) Emod a fast modulus calculation for computer systems
JPH10187416A (ja) 浮動小数点演算装置
Blair The equivalence of twos-complement addition and the conversion of redundant-binary to twos-complement numbers
KR101247164B1 (ko) 큰 수 곱셈 방법 및 디바이스
US5381380A (en) Divide circuit having high-speed operating capability
US6704761B1 (en) Carry-save multiplier/accumulator system and method
JP2705162B2 (ja) 演算処理装置
JP2777265B2 (ja) 高基数開平演算装置
JP2907276B2 (ja) 演算処理装置
JP2000010763A (ja) 除算回路
JP3122622B2 (ja) 除算装置