JPS6053329B2 - 加算装置 - Google Patents

加算装置

Info

Publication number
JPS6053329B2
JPS6053329B2 JP55033501A JP3350180A JPS6053329B2 JP S6053329 B2 JPS6053329 B2 JP S6053329B2 JP 55033501 A JP55033501 A JP 55033501A JP 3350180 A JP3350180 A JP 3350180A JP S6053329 B2 JPS6053329 B2 JP S6053329B2
Authority
JP
Japan
Prior art keywords
bit
carry
adder
iteration
multiplier
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
Application number
JP55033501A
Other languages
English (en)
Other versions
JPS55147738A (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS55147738A publication Critical patent/JPS55147738A/ja
Publication of JPS6053329B2 publication Critical patent/JPS6053329B2/ja
Expired 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/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

Landscapes

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

Description

【発明の詳細な説明】 本発明は桁上け保留加算器(CSA)トリー及び桁上げ
伝播加算器(CPA)を用いて通常の高速乗算装置の動
作速度と実質的に同等の動作速度を達成しつつ、ラッチ
の必要数及びチップ間の110ピンの必要数を最少化し
得る高速乗算装置の改良に関するものである。
従来装置 米国特許第3515344号は桁上げ保留加算器トリー
を用いた高速乗算器を開示している。
各々1つ又はそれ以上の桁上げ保留加算器ユニットより
成る複数の桁上げ保留加算器ステージが複数の複バイナ
リ・ビット・オペランドの合算を許容する形態に配列さ
れる。相次ぐ複数のオペランドは既に印加された複数の
オペランドの最終的な和の発生に先立つて加算器へ供給
される。IBMJOurnalOfResearcha
ndDevelOpmentl967年1月号第34乃
至53頁に掲載されたS.F.ArldersOn氏ら
の論文RIBMシステム37へモデル91、浮動小数点
実行ユニツトョは上記の米国特許第3515344号に
開示されたものと同様な高速乗算器を開示している。
IBMTDBl第加巻、第9号(197詳2月)第35
94乃至359頂に掲載されたD.T.Shen氏らの
論文1送り回路を用いた4−2桁上げ保留加算器ョは4
−2桁上げ保留加算器を開示している。
IBMTDB、第2皓、第9号(197F3jV−2月
)第3591乃至3593頁に掲載されたA.Wein
berger氏の.論文1ルツクアヘツドによる乗数復
号ョは性能を低下させることなくどのようにして乗数復
号器出力の数、被乗数倍数の選択のゲーテング及び被乗
数ビットのローデング回数を減するかを開示している。
197祥10月25日乃至27日に開催された1コンピ
ュータ算術に関する第4回シンポジウム議事録ョIEE
Eカタログ番号78CH1412−?、米国国会図書館
整理番号78−70857の第125乃至139頁に掲
載されたD.E.Atkins氏らの論文1複オペラン
ド・バイナリ加算に対する2つの手法の比較ョは各々長
さNのデジットのベクトル(デジット・ベクトル)とし
て符号化されたP〉2数の加算方法を示している。
それは桁上げルツクアヘツド加算器トリー及び桁上げ保
留加算器トリーを開示している。同上のシンポジウム議
事録第149乃至153頁に掲載されたR.S.Lim
氏の論文1高速乗算及び複サマンド(Summand)
加算ョはサマンド発生及びサマンド合計の見地から高速
乗算の問題を論議している。
デジタル・データ処理機における大きいバイナリ数の乗
算は時間を浪費する演算である。
コンビ・ユータは通常繰返し加算によつて乗算を実行し
、所要時間は所要加算回数によつて決まる。乗算のため
にたくさんの構造が提案されてきた。本装置は複数の乗
数バイナリ・ビットが同時に調べられて被乗数の倍数が
、前以つて発生された部分積へ加算されるようにする。
バイナリ数に対するこの形式の乗算方式の1つの例が米
国特許第3515344号([BM特許)に示されてい
る。このような従来の乗算装置においては、各々1つ又
はそれ以上の桁上げ保留加算器ユニットより成る複数の
桁上げ保留加算器ステージが複数の複バイナリ・ビット
・オペランドの合計を許容する構成になつている。
第1の複数の桁上げ保留加算器ステージは6個のオペラ
ンドを、和を表わす第1の出力信号と桁上げを表わす第
2の出力信号に変えるように配列されている。第2の複
数の桁上げ保留加算ステージは第2の複数のステージの
桁上げ出力及び和出力がその第2の複数のステージに対
する入力において第1の複数のステージからの桁上げ出
力及び和出力と組合されるようにループ態様に配列され
ている。桁上げ保留加算器ステージのうちの或るものは
、特定の時間期間に亘つてデータを保持するようにラッ
チ装置を含んでいる。第2の複数のステージを通る間の
信号遅延及び他のラッチ●ステージへ向うタイミング●
パルス入力間の時間は等しく、第1の複数のオペランド
の和を表わす第2の複数のステージからの出力は第2の
複数のオペランドの和を表わす第1の複数のステージの
出力と結合するようになつている。タイミング・パルス
、回路遅延、及びラッチされたステージは第2の複数の
桁上げ保留加算器ステージのみを通る間の遅延の割合に
等しい割合で加算器配列の入カヘオペランドを供給する
ことを許容する。前述の米国特許第3515344号に
示されたような高速乗算装置をCPUの回路モジュール
に適合させるのは困難であつた。
何故ならばそのような従来の乗算装置は、1つのチップ
上の桁上げ保留加算器トリーのすべての桁上げ及び和出
力が他のチップ上の桁上げ保留加算器トリーの入カへ接
続されることが必要とされるからである。更にラッチ回
路は桁上げ保留加算器トリーの桁上げ出力のために必要
とされる。本発明 従つて本発明の目的はラッチの必要性及びチップ間の1
10ピンの必要性を最小化する高速乗算装置を提供する
ことである。
本発明の他の目的はnビット並列加算器の単一の桁上げ
出力のみが他のチップへ供給されればよい所の高速乗算
装置を提供することである。
本発明の更に他の目的は4−2(4入力・2出力)桁上
け保留加算器トリーと言う新規な構成を使用した高速乗
算装置を提供することである。本発明の良好な実施例に
よれば、上記の諸目的は4−2桁上げ保留加算器トリー
において被乗数の4つの倍数を反復的に加算し、然る後
その上位桁位置からの単一の桁上げ出力及び4つの和出
力を有する4ビット並列加算器へ供給する所の新規な構
成によつて達成される。和出力だけがラッチされ、そし
て以前の部分積へ加算するため各反復毎に桁上げ伝播加
算器へ送られる。チップのための■10ピン割当ては、
4ビット並列加算器の単一の桁上げ出力だけしか他のチ
ップへ供給される必要がないので減少される。本発明は
浮動小数点及び/又は固定小数点のバイナリ数を乗算す
る事が希望される所のデータ処理装置の浮動小数点及び
/又は固定小数点算術ユニットにおいて使用される。
乗算されるべき浮動小数点の数は64個のバイナリ・ビ
ットより成るのが普通である。浮動小数点の数の最上位
桁位置即ちビット0位置はその数の符号を表わす。位置
1一7は底16(托進数)に対する指数値を表わし、位
置8−63はその数の小数部を表わす。小数部は14個
の1随デジットより成り、各デジットは4個のバイナリ
・ビットより成る。表された数の小数点はそのバイナリ
数の位置7と8の間にあるものと仮定される。浮動小数
点乗算では周知の通り、その数の小数部だけが乗算され
、これに反して指数値は最終的指数値を得るために加算
される。本発明の実施例では、数の小数部を表わすのに
5帽のバイナリ・ビットを用いた2つの浮動小数点バイ
ナリ数が互いに乗算される。短い浮動小数点演算のため
に使用される選択的乗算器は、乗数のビット40−63
及び有効被乗数のビット8−31だけと、残りのビット
0について処理する。固定小数点乗算演算に対する実施
例はハーフ・ワード選択及びフル・ワード選択を与える
ハーフ・ワード選択はビット位置16−47(ビット1
6は符号ビット、そしてビット17−47はデータ・ビ
ット)に被乗数を、ビット位置48−63(ビット48
は符号ビット、そしてビット49門−63はデータ・ビ
ット)に乗数を含む。フル・ワード選択はビット位置0
−31(ビット0は符号ビット、ぞして1−31はデー
タ・ビット)に被乗数を、ビット位置32−63(ヒッ
ト32は符号ビット、そして33−63はデータ・ピン
)ト)に乗数を含む。固定小数点の数は負のとき2の補
数形で表わされるのが普通てある。乗算演算に対する良
好な選択は下記のように要約される。
被乗数及び乗数の良好な整合は最終的な結果の整合の必
要性を減少させる。
第1図は複数の乗数バイナリ・ビットを同時に試験する
ことにより反復毎に部分積が発生される態様を図解して
いる。
第1図に示された特定例では、56ビットの被乗数と5
6ビットの乗数が乗算され、56ビットの乗数は7群の
8ビット乗数群(即ちビット56−63、ビット48−
55、ビット40−47、ビット32−39、ビット2
4−31、ビット16−23、ビット8−15)に分割
される。最初の反復期間即ち反復1において、56ビッ
ト被乗数は第1の8ビット乗数群(ビット56−63)
によつて乗算されて部分積P1を作る。次の反復期間即
ち反復2において、56ビット被乗数は第2の8ビット
乗数群(ビット48−55)によつて乗算されて部分積
P2を作る。同様に56ビット被乗数は夫々反復3乃至
7において第3乃至第7の8ビット乗数群よつて乗算さ
れる。最終結果を作るようにすべての部分積P1乃至P
7を加算するのに必要とされる時間を節約するために、
前述の米国特許第3515344号及び本発明の実施例
では、反復1で発生された部分積P1は8位置だけ右シ
フトされて、反復2で発生された部分積P2へ加算され
、中間和P2+P1×2−8を作る。同様にして各反復
3,4,5,6,7において、先行する反復期間に発生
された中間和が8位置だけ右シフトされて各反復におい
て新たに発生された部分積と加算される。第1表は夫々
の反復において中間和が発生される様子を示す。第1表
から知られる通り、反復7の終りにおいて発生された和
はP7+P6X78+P5×2−16+P4×2−24
+P3X2−32+P2×2−40+P1×2−48に
等しく、それが最終結果を表わす。本発明の良好な実施
例においては、各乗数群は、第2図に示されたような乗
数再符号化アルゴリズムに従つて更に復号される。
図示のように反復毎に乗数の8ビットに代えて9ビット
が(反復間に1ビット重複させて)復号される。9ビッ
ト乗数群の各々は更に4つの3ビット準群に(準群間に
1ビット重複させて)更に分割される。
反復4のみに対して4つの3ビット乗数準群を図示した
第2図において、ビット3−39は4つの3ビット乗数
準群■生1(ビット37−39)、MPL2(ビット3
5−37)、MPL3(ビット33−35)、及びMP
L4(ビット31−33)へ分割される。これらの乗数
準群は被乗数の倍数を発生するために復号され、それら
が部分積に対して加算又は減算される。被乗数の倍数は
その真数形又は補数形で被乗数の位置をシフトすること
によつて発生される。かくて被乗数が何位置だけシフト
されるべきか、及びその真数形又は補数形の何れでゲー
トされるべきかについて、再符号化アルゴリズムが決定
する。本発明の実施例で使用された特定の乗数再符号化
アルゴリズムはIBMTDBl第20巻、第9号(19
7師2月発行)第3591乃至3593頁に掲載された
A.Weinberger氏の論文1ルック・アヘツド
による乗数復号ョに示されている。第2表はどのように
して各乗数が復号されるかを示す。9ビット乗数群(R
l28,R64,R32,Rl6,R8,R4,R2,
Rl,R↓)が一定の反復において調べられている。
添字はビット位置の相対的な重みを示す。ビットRνは
次の下位9ビット群の上位ビットであり、ビットRl2
8は次の上位9ビット群の下位ビットである。ここで3
つの乗数ビット(R2,Rl,Rかを考察し、且つビッ
ト位置弓よりも低位のビットがすべて零であると仮定す
る。もしも乗数ビット(R2,Rl)が(イ),0)で
あつて×0演算を表しているならば、それらはROョと
して復号される。もしも(R2,Rl)が(イ),1)
であつて×1演算を表わしているならば、それらは1+
1ョとして復号される。もしも(R2,Rl)が(2,
0)であつて×2演算を表わしているならば、(Rem
4,−2)として復号される〔Rem4は記憶(Rem
ember)4を表わす〕。これは(被乗数)×4−(
被乗数)×2の演算が(被乗数)×2の演算に代えて実
行されることを意味する。×2及び×4の演算は被乗数
を×1に対して夫々左へ1ビット位置及び2ビット位置
だけシフトすることと等価てあるので、(被乗数)×4
−(被乗数)×2は被乗数を×1に対して真数形で2位
置だけ左シフトし、×1に対して補数形で1位置だけ左
シフトし、そしてシフトされた2つの被乗数を加算する
ことと等価である。×4演算即ち被乗数を×1に対して
2位置だけ左シフトすることは次の土位乗数準群(R8
,R4,R2)におけるR4=R4Jに等価であるので
、×4演算は準群(R2,Rl,Rl2)に対しては行
なわれずJRem4Jビットが発生されて次の上位準群
(R8,R4,R2)に対する演算において×4演算が
行なわれるようになる。第2表は直列に配列された4つ
の復号器によつてどのようにして記憶ビットが発生され
るかを示す。低位の復号器はその最下位ビットを記憶さ
れた入力として取扱う。後続の各復号器はその記憶され
た入力を下位復号器に対する入力の関数として決定する
。例えば記憶されたビットは下記の論理式に従つて発生
される。その結果として、復号器は上位ビットを記憶さ
れた出力として使用して、4つの選択信号(+6本−6
屯+128.−128)を発生する上位復号器を除き、
たつた3つの選択信号(夫々+1、一1、−2。
+4、−4、−8。+1巳−1eK−32)を発生する
だけでよい。乗数復号のこの概念は同時に9ビット以外
のものの復号に一般化しうること勿論である。
下位9ビット乗数群の下位ビットが1であるとき追加の
被乗数倍数が発生される。
このビットは8つの下位零が迫従する共有ビットより成
り、下位群と次の下位群との間で共有されるものと仮定
される。もしもこの次の下位群が反復yの最中(即ち第
1表の第1の反復に先立つ反復の最中)に復号されたな
らば、それは−128の倍数を作・り、第2表及び第3
表に従い、l位置右シフトされた被乗数の補数の選択を
要求する。この追加の乗数復号化及ひ被乗数選択を取扱
う望ましい方法は示されていないが、下記のように働く
。つまり反復yの最中に乗数レジスタ31中の乗数の下
位ビット (ビット63)が検出されそして乗数復号器
32中にラッチ・アップされる。反復1の最中にそのラ
ッチされたビットは上述の追加の被乗数倍数を選択し、
それを加算回路50の現在空になつている桁上げ伝播加
算器へ挿入する。第3表は第2表において復号された各
出力m1乃至M4がどれほど被乗数をシフトさせるかを
示す。
例えばm1=+1のとき、これは被乗数が7位置だけ右
シフトされて加算器トリー中へ真数形でゲートされる(
これについては後述される)ことを意味する。第1表と
関連して前に述べた通り部分積Pl,P2,P3・・・
・の各々は次の反復で新たに発生される部分積に加算さ
れる前に8位置だけ右シフトされなければならない。従
つて本発明の望ましい実施例においてはm=(Ml,m
2,lm3又はM4)=+1が右シフト7(RS7)と
して復号される。つまり左シフト1に右シフト8を加え
ることに等価である。同様にm=ー1は補数形でのRS
7として復号され、m=ー2は補数形でのRS6(=L
S2+RS8)として復号される。MJ=+128は真
数形でRSO(=LS8+RS8)として復号される。
第3図には第2図、第2表及び第3表に示された乗数再
符号化アルゴリズムを用いた乗算装置の基本的な機能ユ
ニットをブロック図の形で示され2ている。
第3図の乗算装置は被乗数レジスタ30及び乗数レジス
タ31を含む。7つの9ビット乗数群が乗数レジスタ3
1から乗数復号器32へ各反復毎に1群ずつゲートされ
、そこで所定の9ビット乗数群が第2表及び第3表の真
数表に従つて,復号されて各反復毎に復号出力Ml,m
2,m3及びM4を発生する。
実施例では乗数レジスタ31は相次ぐ反復で右に8ビッ
ト位置だけシフトされて、正しい9ビットが同じ9本の
信号線を介してそのレジスタから発生され乗数復号器3
2へ送り込まれるようにする。被乗数レジスタ30中の
被乗数はバス33を介して被乗数シフトTIC(真数/
補数)ゲート40へゲートされ、そこで被乗数は第3表
に示されたように真数形又は補数形の何れかで同表に示
す位置数だけ右シフトされて、被乗数の4つの倍数Ml
,M2,M3及びM4を作り出す。ゲート40からのこ
れらの被乗数の倍数Ml,M2,M3及びM4は次にバ
ス41,42,43,44を介して加算回路50へゲー
トされる。加算回路50は桁上け保留加算器トリー及び
桁上げ伝播加算器より成り、被乗数の倍数M1乃至M4
の合計演算を行なつて第1表に示されたような部分積P
l,P2・・・ ・・P7を作ると共に、これらの部分
積の合計演算を行なつて第1表に示されたような態様で
最終的な積を作るように働く。第4図は第3図に示され
た加算回路の4ビット分割部分を示すものであつて、通
常の技術を用いて実施されている。
第4図に示された加算回路は複数の3−2(3入力・2
出力)桁上げ保留加算器510乃至540と、1群の和
ラッチ560乃至566と、1群の桁上げラッチ570
乃至576と、桁上げ伝播加算器580とを含む桁上げ
保留加算器トリーより成る。4つのビット位置゜゜1゛
、642゛、“゜4゛及び“8゛だけが第4図に示され
ているけれども、当業者ならば任意所望の数のビット位
置を追加配置しうること及び同様な態様で相互接続し得
ることは明らかである。
Mll,Ml2,Ml4及びMl8は夫々第3図に示さ
れた被乗数シフトTIC(真数/補数)ゲート40から
発生された被乗数M1の重みづけされた“1゛、゜゜2
゛、゜゜4゛及び“゜8゛ビットを表わす。同様にM2
l、M22、M24及びM28は被乗数M2の重みづけ
された゜“1゛、“゜2゛、゜“4゛及び゛゜8゛ビッ
トを表わし、M3l,M32,M34及びM38は被乗
数M3の夫々重みづけされたビットを表わし、M4l,
M42,M44及びM4ノ8は被乗数M4の夫々重みづ
けされたビットを表わす。第4図の加算器トリーは各ビ
ット位置に6つの入力を有する。ビット位置“゜1゛の
加算器トリー部分は2つの第1ステージの3−2CSA
(桁上げ保留加算器)522及び524と、第2ステー
ジのCSA532と第3ステージの3−2CSA540
と、和ラッチ566と、桁上げラッチ576とより成る
。3−2桁上げ保留加算器桁の論理は3つの異なつたオ
ペランドからバイナリ1又はバイナリ0を受取つてその
出力に2つの信号(1つは印加されたバイナ!川の和を
表わす信号、他方は3つの入力によつて作られた桁上げ
を表わす信号)を発生することである。
バイナリ1即ち和を表わす有効出力信号はバイナリ1入
力の組合せが1又は3に等しいときに発生され、桁上げ
信号は2つ又は3つのバイナリ1入力が存在するとき発
生される。同様に“゜2゛ビット位置の加算器トリーは
一対の第1ステージ3−2CSA518及び520と、
第2ステージ3−2CSA530と、第3ステージ3−
2CSA538と、和ラッチ564と、桁上げラッチ5
74とを含む。
“゜4゛ビット位置の加算器トリー部分は一対の第1ス
テージ3一2CSA514及び516と、第2ステージ
3−2CSA528と、第3ステージ3−2CSA53
6と、和ラッチ562と、桁上げラッチ572とを含む
。“゜8゛ビット位置加算器トリー部分は一対の第1ス
テージ3−2CSA510及び512と、第2ステージ
3−2CSA526と、第3ステージ3−2CSA53
4と、和ラッチ560と、桁上げラッチ570とを含む
。和ラッチ560,562,564,566からのラッ
チされた和と、桁上げラッチ570,572,574,
576からのラッチされた桁上げは桁上げ伝播加算器5
80へ印加され、そこで入カオペランドの最一終和又は
最終桁上げが作られる。ビット位置“゜1げにおいて、
第1ステージCSA522及び524への6入力のうち
の4入力が4つの被乗数の倍数M1乃至M4の重みづけ
されたビットMll,M2l,M3l及びM4lを受取
り、他の2つの入力が先行の反復から和及び桁上げを受
取る。
CSA522からの和と、CSA524からの和と“゜
A゛ビット位置からの桁上げは第2ステージCSA53
2において加算さ−れるのに反して、CSA522から
の桁上げと、5CSA524からの桁上げは夫々662
3゛に重みづけされたCSA53O及び538へ供給さ
れる。第2ステージCSA532からの和は第3ステー
ジCSA54Oへ供給されてそこで゜゛ν゛ビット位置
からの桁上げと加算され、CSA532からの桁上げは
“2゛に重みづけされたCSA538へ供給される。第
3ステージCSA54Oからの和は和ラッチ566へ供
給されるのに対して、CSA54Oからの桁上げは桁上
げラッチ576へ供給される。同様な動作が゜“2゛、
“゜4゛及び“8゛ビット位置の加算器トリーによつて
実行さフれる。和ラッチ560,562,564及ひ5
66中にラッチされた和と、桁上げラッチ570,57
2,574及び576中にラッチされた桁上げは、正し
くシフトされて次の反復で適正なビット位置へフィード
バックされる。和ラッチ5670,562,564,5
66中の和と、桁上げラッチ570,572,574,
576中の桁上げは桁上げ伝播加算器580で加算され
てその乗算の最終結果を発生する。第4図の加算回路に
おいて実行されたアルゴリズム及び論理は前述の米国ノ
特許第3515344号(特公昭46−3897号)に
説明されているものと同じであ発明の詳細な説明は省く
ことにする。第4図の加算回路の配列は複数の複ビット
・オペランドの合計を許容することにより迅速な加算又
は乗算演算を達成するけれども、加算回路の配列は各々
多数のビット位置にまたがる複数のチップによつて構成
されるものと仮定すると(今日の実装技術ではこれが最
も現実的である)、これはチップ間の大量の110ピン
ばかりか大量のラッチを必要とする。
そのようなラッチ及び110ピンに対する必要性は本発
明に従う加算回路の配列により最少化される。
以下第5図を参照して詳述される。第5図は本発明の良
好な実施例に従つて構成された第3図の加算回路の4ビ
ット分割部分を示す。
それは各ビット位置毎に1つの4−2桁上げ保留加算器
(CSA)と、各nビット位置毎に1つのnビット加算
器(実施例では4ビット加算器)とを使用する。更に具
体的に言えば、各ビット位置毎に1つの4−2CSA6
10,612,614,616・・・・・・と、4ビッ
ト位置毎に1つの4ビット並列加算器620(更に一般
的に言えば各nビット位置毎に1つのnビット加算器)
と、各ビット位置毎に1うの和ラッチ630,632,
634,636・・・・・・と、各4ビット(又はnビ
ット)並列加算器620・・・・・・毎に1つの桁上げ
ラッチ640と、桁上け伝播加算器650と、レジスタ
670とより成る。4−2CSAは■BMTDBl第加
巻第9号(1978年2月発行)、第3594頁乃至3
59頂に掲載されたD.T.Shen及びA.Wein
berger両氏の論文0送り込み回路を用いた4−2
桁上げ加算器ョに示されており、これは本発明の要部を
構成しないので、第6図を参照して概略的に説明するに
止める。
その4−2CSAは4つの入カオベランドと次の下位加
算器からの横方向桁上げ入力とを受取つて、2つの出力
と次の上位加算器への横方向桁上け出力とを発生する。
横方向桁上げは4つの入カオペランドのみの関数である
が、他の2つの出力はそのCSAに対する5つの入力す
べての関数である。第7図は4−2CSAの論理ブロッ
ク図を示し、同図の゜゛゛内の数字はビットの重みを示
す。第4表は第6図の4−2CSAによつて構成される
論理を示す。第6図の4−2CSAの4個の入カオペラ
ンドW,X,Y,7及び桁上げ入力は重み1を有し、出
力Aは重み1を、出力B及び桁上げ出力は重み2を有す
ることを夫々の括弧書きで示す。
第4表の上下方向5段区分のうち、第1段左欄は4−2
CSAの入力W及びXを縦方向に示すための見出し欄て
ある。
第1段中央欄は第1横行00001111により桁上げ
入力(Cin)のオン入力(1)及びオフ入力(1を夫
々示し、第2横行00110011によりY入力を夫々
示し、第3横行01010101によりZ入力を示す。
第2段中央欄は上記のW,X,Y,Z入力及び桁上げ入
力の5入力の組合わせによつて定まるオン入力の個数を
示す。例えば5入力がすべて0であるときはオン入力の
個数が0てあることを左上隅のOで示し、5入力がすべ
て1てあるときはオン入力の個数が5であることを右入
隅の5で示し、入力Wが1、Xが0、そして他の入力が
すべて1であるときはオン入力の個数が4であることを
右下隅の1つ上に記入された4で示す。
段3段中央欄は5入力の組合わせにより桁上げ出力(C
Out)がオンになる場所をその重み2で示し、オフに
なる場所はブランクで示す。
第4段中央欄には、出力Bがオンになる入力組合わせに
対してその重み2が記入され、第5段中央欄は、出力A
がオンになる入力組合わせをその重み1で示す。
第2段以下の各右欄には対応する夫々の中央欄のデータ
を与える論理式を示す。第5図に戻ると、゜゜1゛ビッ
ト位置の4−2CSA616の4つのオペランド入力は
第3図に示された被乗数シフトTIC(真数/補数)ゲ
ート40からの4つの被乗数倍数Ml,M2,M3及び
M4の゜゜1゛に重みづけされたビットMll,M2l
,M3l及びM4lを受取る。その4一2CSA616
は更に、゛゜ν゛に重みづけされた4一2CSA(図示
せず)から桁上げ入力を受取つて2つの出力を発生する
。それらは4ビット加算器620と次の上位即ち゜゜2
゛ビット位置CSA6l4への桁上げ出力へ供給される
。他のCSA6lO,6l2及び614も同様に接続さ
れる。4ビット加算器620は4−2CSA612,6
14,616の各々からの2つの出力と、CSA6lO
からの1つの出力(出力A)と“゜ν゛ビット位置のC
SAからの1つの出力(出力B)とを受取る。それは更
に桁上げラッチ(桁上げラッチ640と類似のものであ
るが図示されていない)を通過した後に次の上位4ビッ
ト加算器(図示せず)からシフトされた形の桁上げをも
受取る。4ビット加算器620からの桁上げは桁上げラ
ッチ640中にラッチされ、その出力はシフトされた形
で次の下位4ビット加算器(図示せず)へ供給される。
4ビット加算器620からの和は夫々和ラッチ630,
632,634及び636へ供給され、その出力は桁上
げ伝播加算器650へ供給され、その出力は更にレジス
タ670へ供給される。
1つの反復の部分積を表示するレジスタ670の内容は
正しくシフトされ終つた後に次の反復で桁上け伝播加算
器650へ供給されて、先行する部分積が新たに発生さ
れた武分積へ加算されるようにする。
第5図の配列によれば隣接の4−2CSAからの.四対
の出力は、ラッチされた桁上げワードのうちの適正なも
のからフィードバックされる単一の桁上げと一緒に4ビ
ット加算器において結合されて4つの和ビットと唯1つ
の桁上げ出力とを作る。
4ビット加算器の出力はラッチされる。
ラッチさ・れた和ビットは桁上げ伝播加算器650へ発
送されるが、4番目毎のビット位置からのラッチされた
桁上げは4ビット加算器への入力桁上げとして、シフト
された形でフィードバックされる。本発明の実施例にお
いてなされた重要な変更は、4ビット並列加算器620
が4ビット位置毎に1つ配設されたこと、及び桁上げ伝
播加算器650が現在の部分積と先行の部分積の和を作
るために使用されたことである。上記の変更により、必
要とされる桁上げラッチの数が4ビット位置当り4つか
ら1つに減少され、且つ4ビット位置当りたつた1つの
桁上げを他のチップへ送れば足りるので110ピンの数
がかなり減少される。それに加えて、和ビット及び桁上
げビットが各ビット位置毎にフィードバックされる必要
性がもはや存在しないので、CSAトリーが6−2CS
Aトリーから4一2CSAトリーへと簡単化される。第
4図に示されたように通常の設計の4つの6−2桁上げ
保留加7算器を含む6−2CSAトリーは92ゲートを
含み且つ6ゲート・レベルの径路を含むのが普通である
のに対して、第5図に示されたように同一の基本法則を
用いて設計された4つの4−2桁上げ保留加算器を含む
4−2CSAトリーは56ゲートと3ゲ)一ト・レベル
の代表的径路しか必要とせず、4ビット並列加算器は3
2ゲートと3ゲート・レベルの代表的径路を必要とし、
合計すると88ゲートと6ゲート・レベルしか必要とし
ない。かくて本発明の実施例によればより多くのゲート
を必要とすることなく、しかもより長い遅延をもたらす
ことなしに、ラッチの必要数及び110ピンの必要数が
最少化されることがわかる。ラッチされた和出力は桁上
げ伝播加算器のみに、且つ反復毎に送られる。従つて平
常は遊んでいる桁上げ伝播加算器は各反復最中の複数ワ
ードを減少するに際して関与する。それに伴なう不利点
は最後の反復に続いて1つ余分のサイクルを要すること
である。これは最後の反復最中に加算器トリーからラッ
チされた桁上げワードがそれ自身により加算器トリーを
介して流出するのを許容して、桁上げ伝播加算器に入る
ラッチされた和ワードとして出現させるようにする。4
ビット並列加算器及び4−2CSAトリーが第5図の実
施例に使用れているけれども、任意のmビット並列加算
器及び任意のn−2CSAトリーが使用されてもよい。
第7図は第5図に示された本発明の実施例の改良を示す
。第7図の構成は第5図の4ビット加算器620の代り
に8ビット加算器622を使用する。その結果として、
第7図の構成は8ビット位置毎に唯1つの桁上げラッチ
しか必要とせず、従つて第5図の構成でなし得たよりも
更に桁上げラッチ及び110ピンの節約をなし得る。し
かし8ビット並列加算器の設計は、桁上げラッチの数の
減少によつて節約され得るよりも多額のコストを必要と
する。従つてmビット並列加算器の特定数mの選択は、
桁上げラッチの節約によつて得られる所のものと複ビッ
ト並列加算器を設計することによつて失なわれる所のも
のとの間の妥協である。同様にn−2CSAの特定数n
は利用し得る特定の乗数復号方式とCSAトリーのコス
ト及び性能とに依存して選択され得る。本発明の更に一
般化された構成のmビット分割部分が第8図に示される
。同図において参照番号710,712,714はn−
2CSA加算器を指し、参照番号720はmビット並列
加算器をそして参照番号730は桁上げラッチを指す。
或る種の状況下では、特定のn−2CSAに対する入力
ビットのうちの幾つかが永久的に零である。
これは各オペランドが隣接のオペランドに対して1つ又
はそれ以上のビット位置だけシフトされることに起因し
て、加算されるべきオペランド・ワードの幾つかの右端
又は左端ビット位置において生じ得る。そのような場合
には、これらの右端又は左端のビット位置を受取るため
のCSAはn−2CSAである必要はなくk−2CSA
(但しk半n)でよい。従つて本発明は複数の4−2又
はn−2CSAが使用される所の第5図,第7図又は第
8図に示された実施例に限定される必要はなく、CSA
加算器がn−2CSA及びk−2CSA及び/又はi−
2CSA(但しk及びiはnとは異なつた数であるもの
とする)の組合せより成る任意の変形をも包含する。
【図面の簡単な説明】
第1図は複数の乗数ビットが同時に調べられて被乗数の
倍数が既発生の部分積に加算されるようにする乗算演算
を概略的に示す図、第2図は各反復においてどのように
して複数の乗数ビットが調べられるかを示す図、第3図
は複数の複ビットのオペランドの合算を許容する高速乗
算装置の構成を示すブロック図、第4図は米国特許第3
515344号の教示に従つて作られた第3図の加算回
路の4ビット分割部分を示すブロック図、第5図は本発
明の原理に従つて作られた第3図の加算回路の4ビット
分割部分を示すブロック図、第6図は本発明の実施例て
使用された4−2桁上け保留加算器の論理ブロック図、
第7図は第5図に示された実E施例の改良を示すブロッ
ク図、第8図は本発明の一般化された形態を示す図であ
る。 第5図において、610,612,614,616・・
・・・・4−2(n−2)桁上げ保留加算器、620・
・・・・・4(m)ビット並列加算器、630,6−3
2,634,636・・・・・・和ラッチ、640・・
・・桁上げラッチ、650・・・・・・桁上げ伝播加算
器(第2の並列加算器)、670・・・・・ルジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 qビット乗数ワードのうちのpビット(p<q)が
    1回の反復で調べられて被乗数ワードのr倍数を発生し
    、上記倍数が互いに加算されて選択されたpビット乗数
    部分の部分積を作り、上記部分積は正しくシフトされた
    後に、次の反復において選択されるべき次の上位pビッ
    ト乗数部分のための上記次の反復において発生されるべ
    き部分積へ加算されて新たに発生される部分積と以前に
    発生され且つ正しくシフトされた部分積との和を発生し
    、その乗算の最後の反復の後と被乗数ワードと乗数ワー
    ドの最終的な積が作られるようにする乗算装置において
    部分積の反復加算を達成するための桁上げ保留/伝播加
    算装置であつて、入力オペランドの各ビット位置毎にn
    −2桁上げ保留加算器を1つ宛有し且つ各反復で発生さ
    れる上記被乗数ワードの倍数を含むn個の複ビット・オ
    ペランドを受取り、そのn個の複ビット・オペランドを
    その和及び桁上げを表わす2つの他の複ビット・オペラ
    ンドに減縮するためのn−2(n≧3)桁上げ保留加算
    器ステージと、上記オペランドの各mビット位置毎に1
    つ置かれ、それに対する入力オペランドの和を表示する
    m個の出力信号を作るため上記2つの他の複ビット・オ
    ペランドの対応するビットと最上桁位置からの桁上げと
    を受取る、少なくとも1つの第1のmビット並列加算器
    (但しmは上記n−2桁上げ保留加算器の数よりも多く
    ない)と、現在の反復において発生され上記第1のmビ
    ット並列加算器に対する入力オペランドの和を表わす上
    記第1のmビット並列加算器からの上記m個の出力信号
    と、以前の反復において発生され以前の部分積の上桁位
    置を表わすm個の出力信号とを各反復において受取る第
    2の並列加算器と、上記第1のmビット並列加算器から
    の上記桁上げを上記第1のmビット並列加算器の下桁入
    力へ送る手段とを含む桁上げ保留/伝播加算装置。 2 上記n−2桁上げ保留加算器ステージは4−2桁上
    げ保留加算器ステージである特許請求の範囲第1項記載
    の桁上げ保留/伝播加算装置。
JP55033501A 1979-05-04 1980-03-18 加算装置 Expired JPS6053329B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36198 1979-05-04
US06/036,198 US4228520A (en) 1979-05-04 1979-05-04 High speed multiplier using carry-save/propagate pipeline with sparse carries

Publications (2)

Publication Number Publication Date
JPS55147738A JPS55147738A (en) 1980-11-17
JPS6053329B2 true JPS6053329B2 (ja) 1985-11-25

Family

ID=21887206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP55033501A Expired JPS6053329B2 (ja) 1979-05-04 1980-03-18 加算装置

Country Status (4)

Country Link
US (1) US4228520A (ja)
EP (1) EP0018519B1 (ja)
JP (1) JPS6053329B2 (ja)
DE (1) DE3064366D1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484301A (en) * 1981-03-10 1984-11-20 Sperry Corporation Array multiplier operating in one's complement format
US4471455A (en) * 1982-02-04 1984-09-11 Dshkhunian Valery Carry-forming unit
US4523210A (en) * 1982-06-11 1985-06-11 Sperry Corporation Fast error checked multibit multiplier
US4594679A (en) * 1983-07-21 1986-06-10 International Business Machines Corporation High speed hardware multiplier for fixed floating point operands
DE3524981A1 (de) * 1985-07-12 1987-01-22 Siemens Ag Anordnung mit einem saettigbaren carry-save-addierer
JPS6297033A (ja) * 1985-10-24 1987-05-06 Hitachi Ltd 乗算装置
US4769779A (en) * 1985-12-16 1988-09-06 Texas Instruments Incorporated Systolic complex multiplier
US4769780A (en) * 1986-02-10 1988-09-06 International Business Machines Corporation High speed multiplier
US4831577A (en) * 1986-09-17 1989-05-16 Intersil, Inc. Digital multiplier architecture with triple array summation of partial products
US4862405A (en) * 1987-06-30 1989-08-29 Digital Equipment Corporation Apparatus and method for expediting subtraction procedures in a carry/save adder multiplication unit
EP0344226B1 (en) * 1987-08-25 1993-05-05 Hughes Aircraft Company High-speed digital adding system
US4910701A (en) * 1987-09-24 1990-03-20 Advanced Micro Devices Split array binary multiplication
JPH063839B2 (ja) * 1988-12-16 1994-01-12 株式会社東芝 半導体集積回路装置
US5327368A (en) * 1989-06-23 1994-07-05 Digital Equipment Corporation Chunky binary multiplier and method of operation
US5179713A (en) * 1989-11-13 1993-01-12 Chips And Technologies, Inc. Apparatus for allowing external control of local bus read using zero wait stats input of combined I/O and DRAM controller
US5150321A (en) * 1990-12-24 1992-09-22 Allied-Signal Inc. Apparatus for performing serial binary multiplication
US5241493A (en) * 1991-12-16 1993-08-31 International Business Machines Corporation Floating point arithmetic unit with size efficient pipelined multiply-add architecture
US5303176A (en) * 1992-07-20 1994-04-12 International Business Machines Corporation High performance array multiplier using four-to-two composite counters
US5623683A (en) * 1992-12-30 1997-04-22 Intel Corporation Two stage binary multiplier
US5636157A (en) * 1994-10-03 1997-06-03 International Business Machines Corporation Modular 64-bit integer adder
TW421757B (en) * 1996-06-06 2001-02-11 Matsushita Electric Ind Co Ltd Arithmetic processor
US5805491A (en) * 1997-07-11 1998-09-08 International Business Machines Corporation Fast 4-2 carry save adder using multiplexer logic
US5964827A (en) * 1997-11-17 1999-10-12 International Business Machines Corporation High-speed binary adder
US6167421A (en) * 1998-04-09 2000-12-26 Teranex, Inc. Methods and apparatus for performing fast multiplication operations in bit-serial processors
US6546410B1 (en) * 1999-11-16 2003-04-08 Advanced Micro Devices, Inc. High-speed hexadecimal adding method and system
CA2294554A1 (en) * 1999-12-30 2001-06-30 Mosaid Technologies Incorporated Method and circuit for multiplication using booth encoding and iterative addition techniques
DE10050589B4 (de) * 2000-02-18 2006-04-06 Hewlett-Packard Development Co., L.P., Houston Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
US7085797B2 (en) * 2002-02-26 2006-08-01 Broadcom Corporation Addition circuit for accumulating redundant binary numbers
US7302460B1 (en) 2003-09-11 2007-11-27 Altera Corporation Arrangement of 3-input LUT's to implement 4:2 compressors for multiple operand arithmetic
US20060004903A1 (en) * 2004-06-30 2006-01-05 Itay Admon CSA tree constellation
US7558948B2 (en) * 2004-09-20 2009-07-07 International Business Machines Corporation Method for providing zero overhead looping using carry chain masking
US8601048B2 (en) * 2005-01-05 2013-12-03 Broadcom Corporation Implementation of digital signal processing functions using maximal efficiency and minimal energy dissipation
US9459832B2 (en) 2014-06-12 2016-10-04 Bank Of America Corporation Pipelined multiply-scan circuit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3515344A (en) * 1966-08-31 1970-06-02 Ibm Apparatus for accumulating the sum of a plurality of operands
US3691359A (en) * 1970-07-28 1972-09-12 Singer General Precision Asynchronous binary multiplier employing carry-save addition
US3840727A (en) * 1972-10-30 1974-10-08 Amdahl Corp Binary multiplication by addition with non-verlapping multiplier recording
US4041292A (en) * 1975-12-22 1977-08-09 Honeywell Information Systems Inc. High speed binary multiplication system employing a plurality of multiple generator circuits

Also Published As

Publication number Publication date
JPS55147738A (en) 1980-11-17
EP0018519B1 (en) 1983-07-27
EP0018519A1 (en) 1980-11-12
DE3064366D1 (en) 1983-09-01
US4228520A (en) 1980-10-14

Similar Documents

Publication Publication Date Title
JPS6053329B2 (ja) 加算装置
US6446104B1 (en) Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
US3993891A (en) High speed parallel digital adder employing conditional and look-ahead approaches
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
US5844830A (en) Executing computer instrucrions by circuits having different latencies
JP3244506B2 (ja) 小型乗算器
US4972362A (en) Method and apparatus for implementing binary multiplication using booth type multiplication
US5253195A (en) High speed multiplier
US4320464A (en) Binary divider with carry-save adders
US4748582A (en) Parallel multiplier array with foreshortened sign extension
JPH07200260A (ja) 単一プロセッサにおける並列データ処理
US5184318A (en) Rectangular array signed digit multiplier
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US6728744B2 (en) Wide word multiplier using booth encoding
US5144576A (en) Signed digit multiplier
US4769780A (en) High speed multiplier
US5734599A (en) Performing a population count using multiplication
KR100308726B1 (ko) 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법
JPH02293929A (ja) デジタルシステム乗算の方法及び装置
US3840727A (en) Binary multiplication by addition with non-verlapping multiplier recording
EP0534760A2 (en) High speed multiplier device
US7693925B2 (en) Multiplicand shifting in a linear systolic array modular multiplier
EP0529755B1 (en) Method and apparatus for negating an operand of a multiplication operation
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction