JPH0934688A - 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法 - Google Patents

遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法

Info

Publication number
JPH0934688A
JPH0934688A JP8173516A JP17351696A JPH0934688A JP H0934688 A JPH0934688 A JP H0934688A JP 8173516 A JP8173516 A JP 8173516A JP 17351696 A JP17351696 A JP 17351696A JP H0934688 A JPH0934688 A JP H0934688A
Authority
JP
Japan
Prior art keywords
data
binary tree
providing
adder array
stage
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
JP8173516A
Other languages
English (en)
Other versions
JP3761977B2 (ja
Inventor
K Eu Robert
ケイ. ユー ロバート
B Zeiner Gregory
ビー. ザイナー グレゴリー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0934688A publication Critical patent/JPH0934688A/ja
Application granted granted Critical
Publication of JP3761977B2 publication Critical patent/JP3761977B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • 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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • 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/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • 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/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49952Sticky bit
    • 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/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation of IEEE-754 Standard
    • 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)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】掛け算器間の相互連結部を減少させることによ
り、演算速度を向上すること。 【解決手段】集積化された倍精度型浮動小数点掛け算回
路を含む装置は、複数の入力信号端子、複数の出力信号
端子及び2分木加算器アレイを備える。2分木加算器ア
レイは、複数の乗数データ及び複数の被乗数データを複
数の入力信号端子を介して入力するとともに、それらに
対応する積データを複数の出力信号端子を介して出力す
るために入力端子及び出力端子に接続される。2分木加
算器アレイは複数のエッジを備えた規則的な構造物の中
に集積化され、複数のエッジのうちの第1のエッジに沿
って位置調整されるとともに、複数の入力信号端子及び
出力信号端子は複数のエッジのうちの第2のエッジに沿
って配置される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、浮動小数点型の
掛け算器に係り、詳しくは、クリティカル・パス遅延を
減少させた浮動小数点型の掛け算器に関する。
【0002】
【従来の技術】一般に、掛け算器ユニットはデジタル信
号プロセッサ内にて用いられ、最近ではRISC型プロ
セッサ内にて用いられている。倍精度の浮動小数点演算
は、積を生成すべく53個の部分積の和をとるという本
質的に低速の演算を含む。IEEE754標準に準拠し
た乗算においても、積の正確な丸め、指数の調節及び正
確な例外フラグの生成が含まれる。最近のRISC型プ
ロセッサに内蔵された掛け算器ユニットもパイプライン
化、小型化及び高速化される必要がある。上記全ての要
求を満たすためには、賢明な機能的及び物理的分割が要
求される。
【0003】
【発明が解決しようとする課題】この発明は前述した事
情に鑑みてなされたものであって、その目的は、掛け算
器間の相互連結部を減少させることにより、演算速度を
向上することが可能な浮動小数点型掛け算器及びその演
算方法を提供することにある。
【0004】
【課題を解決するための手段】本発明に基づく浮動小数
点型掛け算器は、遅延を整合するとともに、2分木加算
器中の相互連結距離を減少させることにより、クリティ
カル・パス遅延を減少させている。
【0005】本発明の一実施形態に基づく浮動小数点型
掛け算器は、入力信号端子、出力信号端子及び2分木加
算器アレイからなる。2分木加算器アレイは、入力信号
端子を介して乗数データ及び被乗数データを入力し、出
力信号端子を介してそれらのデータに対応する積データ
を出力すべく、入力信号端子及び出力信号端子に接続さ
れている。2分木加算器アレイは複数のエッジを備えた
規則的な構造体中に集積化され、2分木加算器アレイは
上記エッジのうちの1つに沿って位置調整される。入力
信号端子及び出力信号端子は別の1つのエッジに沿って
配置される。好ましい実施形態において、2分木加算器
アレイは折れ曲がった3ステージ・パイプライン構造を
有する。この構造は加算器のインターリーブされた行
と、加算器の隣接した行の間の相互連結部とを備える。
加算器の各行は加算器とほぼ同数であり、対応する相互
連結部は加算器の行間とほぼ等しい距離を有する。
【0006】
【発明の実施の形態】図1に示すように、掛け算器は3
ステージにわたって演算する。(図2−図9は図1をよ
り詳細に示す図である。)第1のステージ(符号化ステ
ージ)において、乗数オペランド及び被乗数オペランド
は、それぞれ基数4の改変ブース符号化(radix-4 modi
fied Booth encoding)と乗算木(multiply tree)を通
過する。部分積(partial product)の中間和及び木の
結果は桁上げ保留フォーマットである。第2のステージ
(加算器アレイ・ステージ)において、条件付き和加算
器(conditional-sum adder)は桁上げ保留フォーマッ
トから2値形態へ結果を変換し、積を決定するために使
用される。第3のステージ(出力加算器ステージ)にお
いて、丸め及びフラグの生成が行われる。掛け算器は、
1サイクルのスループット及び3サイクルの待ち時間を
有する。
【0007】仮数の53×53ビットの乗算である第1
のステージは、4対2圧縮器(4:2compressor)、即ち
5対3のカウンター(5:3 counter)からなる基数4の
改変ブース符号化2分木により実行される。符号化手法
は27個の部分積を出力する。それら部分積は図1のブ
ロック0,1,3,4,7,8,にて生成される。4対
2圧縮器が使用されていることから、3個の部分積を生
成するブロック10を除く各ブロックは4個の部分積を
生成する。
【0008】図10に示すように、入力の流れが木の上
部及び側部から始まり木の底部へ向かう従来のインプリ
メンテーションとは異なり、このインプリメンテーショ
ンは木の同一の側に配置された乗数と、ステージ化され
た結果とを有する。即ち、パイプライン・レジスタは木
の中に組み込まれ、被乗数と同一の側へ流れが定められ
る。この方法の利点は、相互連結部距離を減少させると
ともに、相互連結部遅延(interconnect delay)を次の
ステージへプッシュすることである。
【0009】2分木の複雑さは、直送式レイアウト(st
raight-forward layout)に役立たない。相互連結部に
起因する木の通過による遅延を最小とすべく、部分積生
成器(partial product generator)及び加算器からな
る行の配置は、ワイヤの長さが行の間で平衡(balanc
e)するように行われる。木が「左に位置調整」される
とともに、いくらかの場合にはその調整が大幅であるた
めに生じる垂直距離及び水平距離の双方が考慮される。
【0010】表1は、異なる行におけるセル間の垂直行
距離及び水平ビット距離を示す。アレイを通過するクリ
ティカル・パスは、大きな水平シフトを伴う行、例えば
行0,2,6,12を含む。このパスを減少させるため
に、これらの行は互いに近づけて配置される。図10は
使用される配置を示す。アレイはインターリーブされて
いる。
【0011】
【表1】 不規則な木の構造により生じる別の問題は、各行におけ
るビット数が異なることであり、その数は61ビットか
ら76ビットまで変化する。木のその領域を減少させる
ために、大きな行の中にあるいくつかの加算器は、より
少ないセルを備えた行へ「曲げられる」(folded)。そ
の曲げは、タイミングに影響しないように行われる。更
に多くの曲げが行われてもよいが、これにより木を通る
クリティカル・パスに影響を与えることがある。
【0012】図11に示すように、4対2圧縮器は表2
に基づき設計され、5つの入力信号{x3,x2,x
1,x0,cin}を入力し、3つの出力信号{carry ,c
out,sum }を出力する。全ての入力及び出力sumは1の
重みを有し、2つの出力carry,coutは2の重みを有す
る。それは式(1)で示される。
【0013】 20・(x3+x2+x1+x0+cin)=21 ・(carry+cout)+20・ sum (1)
【0014】
【表2】 図12に示すように、信号coutは入力cinからは独立し
ており、入力xのみに対して依存することから、図示す
るように共に接続される加算器からなる行はcinからcou
tへの桁上げの任意のリプリングを禁止しない。xiか
らsum又はcarryへの遅延が、隣接する加算器のxiから
coutへの遅延とcinからsumへの遅延とを結合した遅延と
ほぼ等しくなるように更に加算器は設計される。
【0015】図13に示すように、加算器の最終的な加
算段階は、52ビットの条件付き和加算器を使用する。
その加算器は最小遅延のために分割される再帰的構造を
備えている。図示するように、Nビットの条件付き加算
器はより小さな2つの条件付き加算器から構成され、2
つのうちの一方はjビットの幅を有し、他方は(N−
j)ビットの幅を有する。2つの2対1マルチプレクサ
(2:1 multiplexor)は上位の和及び桁上げの結果を出
力するために使用される。これらの出力は下位jビット
の加算器からの桁上げにより選択される。一般的に、大
きな論理出力に起因する容量性負荷(capacitive loadi
ng)を扱うために、マルチプレクサに対する選択は全て
一時記憶(buffer up)される。これらのより小さな加
算器も、順に更に小さな条件付き和加算器から構成され
る。
【0016】この加算器の通過による遅延は、加算器が
どのように分割されるかによって影響される。位置jに
おいて分割されたNビットの加算器に対する遅延は、T
(N,j)として式(2)のように定義される。
【0017】 T(N,j)=max[Topt (j)+T buf (N-j)+T sel T opt (N-j)+T mux ] (2) 式(2)において、Topt (i)はiビットの加算器に
対する最適な遅延である。Tbuf はバッファの遅延であ
り、図13左側の加算器上のビット数、即ち(N−j)
の関数である。Tsel はマルチプレクサが選択してから
出力するまでの遅延である。Tmux はマルチプレクサが
データを出力するまでの遅延である。Nビット加算器に
対する最適な遅延Topt (N)は簡単に式(3)により
示される。ここで、jは1から(N−1)まで変化す
る。
【0018】 T opt (N)=min[T(N,J)] (3) Topt (N)を計算する際の問題は、再帰的な最小−最
大の問題(min-max problem)であり、このインプリメ
ンテーションのために内部に形成された有効な動的プロ
グラミング解法に大いに役に立つ。
【0019】正確な丸めを行うために必要なスティッキ
ー・ビットは、第2のステージにおいて生成される。一
般的に、桁上げ保留フォーマットにおける下位51ビッ
トは、全て合計されるとともに、論理和が計算される。
しかしながら、本発明に基づき、予め和を演算するため
に、任意の51ビットの加算器を必要することなく、ス
ティッキー・ビットは桁上げ保留フォーマットにおける
木の出力から直接的に生成される。その結果、大幅な時
間及び領域が節約される。ここで、s1,c1はそれぞ
れ木からの出力sum,carryである。
【0020】
【数1】 また、スティッキー・ビットは「1」検出器を使用する
ことにより直接的に計算される。
【0021】 スティッキー=t0+t1+ …+t50 (7) 両sum,(sum+1)を生成すべく、条件付き和加算器を使
用することにより、丸め演算を行うために増分器(incr
ementer)は要求されない。丸め後の正確な結果を選択
するために、マルチプレキシングのみが必要となる。
【0022】倍精度型の乗算において、106ビットの
積(桁上げ保留フォーマット)がアレイにより生成され
た後、ビット104とビット103との間に小数点が生
じ、上位53ビットのみが仮数の結果として使用され
る。下位53ビットは正確な丸めを行うためのみに使用
される。丸めが行われた後、ビット105、即ちMSB
(最上位ビット)の値に応じて、ビット105〜53又
はビット104〜52の何れかが使用される。別の方法
で、MSBが設定されない場合、ビット104〜52が
使用され、指数はインクリメントされない。丸め自身
は、MSBを設定するために伝搬する。これは丸め後に
オーバーフローとなる場合の方法である。図14は、丸
め後にビット105に基づきアレイの結果から仮数がど
のように選択されるかを示す。同図において、L,G,
R,SはそれぞれLSB(最下位ビット)、ガードビッ
ト、丸めビット及びスティッキー・ビットを表す。
【0023】図15に示すように、最終的な加算演算及
び丸めは、鎖線で示すパイプライン・レジスタを用いて
別のステージにて行われる。アレイからの下位50ビッ
トは、2つの信号c51,Sを生成するために使用され
る。信号c51はビット51への桁上げである。信号c
51に沿うビット53〜51は、Lビット、Gビット及
びRビットを生成するために加算され、その他のビット
105:54(ビット105〜ビット54)は2つの結
果、sum0[105:54](ビット105〜ビット54
の和)及びsum1[105:54]を形成すべく、条件付
き和加算器を用いて加算される。
【0024】信号c51とビット53又はビット52に
て生じ得る丸めとに起因して、2つの桁上げをビット位
置54へ導入する可能性がある。1つの桁上げのみがビ
ット54へ伝搬されることを確実にするため、ビット1
05〜ビット51にて半加算器の行が使用される。
【0025】丸め後にオーバーフローする場合に対して
正確に対処すべく、最終的な選択ロジックにより要求さ
れる信号c54v,c54nをそれぞれ生成するため
に、2つの加算器、ovf及びnovfが使用される。
信号c54v,c54nはビット位置54への桁上げで
あり、それぞれオーバーフロー及び非オーバーフロー
(non-overfow)を示す。L,G,R,Sビット及び丸
め手法ビットは、2つの丸め値を生成するために丸めロ
ジックにより使用される。ある値が仮数のオーバーフロ
ーを表すと仮定し、その他の値が仮数の非オーバーフロ
ーを表すと仮定する。オーバーフロー(manv)及び非オ
ーバーフロー(mann)に対する最終的な仮数の下位1及
び2ビットを形成するために、これらの丸めビットはそ
れぞれLビット及び{L,G}ビットに加算される。
【0026】最終的な選択ロジックは、最終的な仮数を
形成するために、manv又はmannの何れかを備えた条件付
き和加算器からの適切なsum0及びsum1を結合する。表3
は選択ロジックのための真理値表である。式8に示すよ
うに、その表の鍵はオーバーフロー信号のための式であ
る。桁上げの結果としてMSBが設定され、51ビット
の加算において、ビット54への桁上げがない場合に、
第1の項が参照される。非オーバーフローにおいてビッ
ト54へのいくらかの桁上げに起因してMSBが設定さ
れる場合に、第2の項が参照される。この桁上げは丸め
自身、即ち丸め後にオーバーフローする場合に起因す
る。
【0027】 overflow=sum[0]+(c54_n ・ sum1[105]) (8)
【0028】
【表3】 乗算に対する丸めは、除算及び平方根演算に対して要求
されるものと同様である。領域の節約に関し、乗算、除
算及び平方根演算は全て丸めハードウエアを共有する。
乗算、除算又は平方根演算の結果の間の付加的なマルチ
プレキシングのみが、図15に示すブロックへの信号の
入力前に要求される。
【0029】しかしながら、乗算、除算又は平方根演算
の間の一つの違いは、仮数のオーバーフローの取り扱い
である。乗算では、オーバーフローが生じる場合、増分
された指数が使用される。これに対して、除算及び平方
根演算では、小数点はMSBのすぐ右側に用いられる。
従って、仮数の、MSBがゼロである場合、減分された
指数が選択される。表4は指数が乗算、除算及び平方根
演算に対してどのように選択されるのかを示す。
【0030】
【表4】 前述したように、本発明に基づく高速の浮動小数点型掛
け算器は、乗数の木及び最終的な加算ステージにおいて
遅延整合技術を提供するとともに、除算及び平方根演算
ユニットと共有する丸めハードウエアを提供する。この
結果、本発明の浮動小数点型掛け算器その演算方法は、
掛け算器間の相互連結部を減少させることにより、演算
速度を向上することができる。
【0031】この発明の構造及び動作方法において、こ
の発明の趣旨を逸脱しない範囲内で様々な他の改良や置
き換えを行ってもよい。本発明においては、特定の望ま
しい実施形態に関して述べたが、特許請求の範囲に記載
の発明はそのような特定の実施形態に限定されるもので
はない。特許請求の範囲は本発明の範囲を定義するもの
であり、それにより特許請求の範囲内の構造及び方法、
並びにそれらと均等のものが含まれる。
【0032】
【発明の効果】以上詳述したように、本発明の浮動小数
点型掛け算器その演算方法は、掛け算器間の相互連結部
を減少させることにより、演算速度を向上することがで
きるという効果を発揮する。
【図面の簡単な説明】
【図1】本発明の一実施形態に基づく2分木加算器を示
すブロック図。
【図2】図1のブロック図の詳細を示す図。
【図3】図1のブロック図の詳細を示す図。
【図4】図1のブロック図の詳細を示す図。
【図5】図1のブロック図の詳細を示す図。
【図6】図1のブロック図の詳細を示す図。
【図7】図1のブロック図の詳細を示す図。
【図8】図1のブロック図の詳細を示す図。
【図9】図1のブロック図の詳細を示す図。
【図10】図1の2分木を示す図であり、相互連結部遅
延を平衡させるために使用される行の順序を表す図。
【図11】図1の4対2圧縮器を示す概略図。
【図12】水平リップル桁上げに相互連結されない図1
の4対2圧縮器を示すブロック図。
【図13】図1の条件付き和加算器を示すブロック図。
【図14】図1の2分木に対するオーバーフロー及び非
オーバーフローのための仮数の選択を示す図。
【図15】図1の2分木の丸めデータパス及びロジック
を示すブロック図。
【符号の説明】
x3,x2,x1,x0,cin…入力信号、carry,cou
t,sum…出力信号。
フロントページの続き (72)発明者 ロバート ケイ. ユー アメリカ合衆国 94560 カリフォルニア 州 ニュウアーク セバーン ドライブ 35496 (72)発明者 グレゴリー ビー. ザイナー アメリカ合衆国 95129 カリフォルニア 州 サンノゼ ダートムーア ウェイ 6608

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】集積化された倍精度浮動小数点型掛け算回
    路を含む装置であって、前記掛け算回路は、 複数の入力信号端子と、 複数の出力信号端子と、 2分木加算器アレイとを備え、 前記2分木加算器アレイは、複数の乗数データ及び複数
    の被乗数データを前記複数の入力信号端子を介して入力
    するとともに、それらに対応する積データを前記複数の
    出力信号端子を介して出力するために前記入力端子及び
    出力端子に接続され、 前記2分木加算器アレイは複数のエッジを備えた規則的
    な構造物の中に集積化されるとともに、前記複数のエッ
    ジのうちの第1のエッジに沿って位置調整され、前記複
    数の入力信号端子及び出力信号端子は前記複数のエッジ
    のうちの第2のエッジに沿って配置される装置。
  2. 【請求項2】前記2分木加算器アレイはインターリーブ
    されている請求項1に記載の装置。
  3. 【請求項3】前記2分木加算器アレイは複数行の加算器
    を備え、前記複数行のうちの各行はほぼ等しい数の加算
    器を含む請求項1に記載の装置。
  4. 【請求項4】前記2分木加算器アレイは複数行の加算器
    を備えるとともに、前記複数行の加算器のうちの隣接す
    る加算器間に複数の相互連結部を備え、前記複数の相互
    連結部は、前記複数行の加算器の間においてほぼ等しい
    長さを有する請求項1に記載の装置。
  5. 【請求項5】前記2分木加算器アレイは折り曲げ型3ス
    テージ・パイプライン構造である請求項1に記載の装
    置。
  6. 【請求項6】前記2分木加算器アレイは、 符号化ステージと、 加算器配列ステージと、 出力加算器ステージとを備え、 前記符号化ステージは、前記複数の乗数データ及び前記
    複数の被乗数データを入力し、それらに対応する複数の
    部分積データを出力するために、前記複数の入力信号端
    子に接続され、 前記加算器アレイ・ステージは、前記複数の部分積デー
    タを入力するとともにそれらのデータの和を計算し、そ
    れらに対応する複数の和データを出力するために、前記
    符号化ステージに接続され、 前記出力加算器ステージは、前記複数の和データを入力
    するとともにそれらのデータの和を計算し、それらに対
    応する複数の積データを出力するために、前記加算器ア
    レイ・ステージに接続される請求項1に記載の装置。
  7. 【請求項7】前記加算器アレイ・ステージは複数の4対
    2圧縮器を備える請求項6に記載の装置。
  8. 【請求項8】前記出力加算器ステージは条件付き和加算
    器を備える請求項6に記載の装置。
  9. 【請求項9】前記掛け算器が集積化される集積回路を更
    に備える請求項1に記載の装置。
  10. 【請求項10】前記掛け算器が内蔵されるコンピュータ
    を備える請求項1に記載の装置。
  11. 【請求項11】集積化された倍精度浮動小数点型掛け算
    回路を備える装置を提供する方法であって、 複数の入力信号端子を提供する工程と、 複数の出力信号端子を提供する工程と、 2分木加算器アレイを提供する工程とを備え、 前記2分木加算器アレイは、複数の乗数データ及び複数
    の被乗数データを前記複数の入力端子を介して入力する
    とともに、それらに対応する積データを前記複数の出力
    信号端子を介して出力するために、前記入力端子及び出
    力端子に接続され、 前記2分木加算器は複数のエッジを備えた規則的な構造
    物の中に集積化されるとともに、前記複数のエッジのう
    ちの第1のエッジに沿って位置調整され、前記複数の入
    力信号端子及び出力信号端子は前記複数のエッジのうち
    の第2のエッジに沿って配置される装置を提供する方
    法。
  12. 【請求項12】前記2分木加算器アレイを提供する工程
    は、インターリーブされた2分木加算器アレイを提供す
    る工程を備える請求項11に記載の装置を提供する方
    法。
  13. 【請求項13】前記2分木加算器アレイを提供する工程
    は、複数行の加算器を備える2分木加算器アレイを提供
    する工程を備え、前記複数行のうちの各行はほぼ等しい
    数の加算器を含む請求項11に記載の装置を提供する方
    法。
  14. 【請求項14】前記2分木加算器アレイを提供する工程
    は、複数行の加算器を備えた2分木加算器アレイを提供
    する工程を備え、前記2分木加算器アレイは複数行のう
    ちの隣接する行の間に複数の相互連結部を備える複数行
    の加算器を含み、 前記複数の相互連結部のうちの対応する相互連結部は、
    前記複数行の加算器の間においてほぼ等しい長さを有す
    る請求項11に記載の装置を提供する方法。
  15. 【請求項15】前記2分木加算器アレイを提供する工程
    は、折り曲げ型3ステージ・パイプライン構造を有する
    2分木加算器アレイを提供する工程を備える請求項11
    に記載の装置を提供する方法。
  16. 【請求項16】前記2分木加算器アレイを提供する工程
    は、 符号化ステージを提供する工程と、 加算器アレイ・ステージを提供する工程と、 出力加算器ステージを提供する工程とを備え、 前記符号化ステージは、前記複数の乗数データ及び前記
    複数の被乗数データを入力し、それらに対応する複数の
    部分積データを出力するために、前記複数の入力信号端
    子に接続され、 前記加算器アレイ・ステージは、前記複数の部分積デー
    タを入力するとともにそれらのデータの和を計算し、そ
    れらに対応する複数の和データを出力するために、前記
    符号化ステージに接続され、 前記出力加算器ステージは、前記複数の和データを入力
    するとともに、それらのデータの和を計算し、それらに
    対応する複数の積データを出力するために、前記加算器
    アレイ・ステージに接続される請求項11に記載の装置
    を提供する方法。
  17. 【請求項17】前記加算器アレイ・ステージを提供する
    工程は複数の4対2圧縮器を提供する工程を備える請求
    項16に記載の装置を提供する方法。
  18. 【請求項18】出力加算器ステージを提供する工程は条
    件付き和加算器を備える請求項16に記載の装置を提供
    する方法。
  19. 【請求項19】前記掛け算器が集積化される集積回路を
    提供する工程を更に備える請求項11に記載の装置を提
    供する方法。
  20. 【請求項20】前記掛け算器が内蔵されるコンピュータ
    を提供する工程を更に備える請求項11に記載の装置を
    提供する方法。
  21. 【請求項21】集積化された構造物内において倍精度浮
    動小数点の乗算を実行する方法であって、 複数の乗数データ及び複数の被乗数データを複数の入力
    端子を介して入力する工程と、 複数の乗数データ及び被乗数データに対応する2分木加
    算器アレイを備えた複数の積データを複数の出力信号端
    子を介して出力する工程とを備え、 前記2分木加算器アレイは複数のエッジを備えた規則的
    な構造物の中に集積化されるとともに、前記複数のエッ
    ジのうちの第1のエッジに沿って位置調整され、前記複
    数の入力信号端子及び出力信号端子は前記複数のエッジ
    のうちの第2のエッジに沿って配置される乗算を実行す
    る方法。
  22. 【請求項22】複数の乗数データ及び被乗数データに対
    応する2分木加算器アレイを備えた複数の積データを複
    数の出力信号端子を介して出力する工程は、インターリ
    ーブされた2分木加算器アレイを備えた複数の積データ
    を出力する工程を備える請求項21に記載の乗算を実行
    する方法。
  23. 【請求項23】複数の乗数データ及び被乗数データに対
    応する2分木加算器アレイを備えた複数の積データを複
    数の出力信号端子を介して出力する工程は、複数行の加
    算器を備える2分木加算器アレイを備えた複数の積デー
    タを出力する工程を備え、前記複数行のうちの各行はほ
    ぼ等しい数の加算器を含む請求項21に記載の乗算を実
    行する方法。
  24. 【請求項24】複数の乗数データ及び被乗数データに対
    応する2分木加算器アレイを備えた複数の積データを複
    数の出力信号端子を介して出力する工程は、2分木加算
    器アレイを備えた複数の積データを出力する工程を備
    え、前記2分木加算器アレイは複数行の加算器のうちの
    隣接する行の間に複数の相互連結部を備える複数行の加
    算器を含み、 前記複数の相互連結部のうち対応する相互連結部は、前
    記複数行加算器の間においてほぼ等しい長さを有する請
    求項21に記載の乗算を実行する方法。
  25. 【請求項25】複数の乗数データ及び被乗数データに対
    応する2分木加算器アレイを備えた複数の積データを複
    数の出力信号端子を介して出力する工程は、複数の積デ
    ータを出力する工程を備え、前記積データは折り曲げ型
    3ステージ・パイプライン構造を有する2分木加算器ア
    レイを備える請求項21に記載の乗算を実行する方法。
  26. 【請求項26】複数の乗数データ及び被乗数データに対
    応する2分木加算器アレイを備えた複数の積データを複
    数の出力信号端子を介して出力する工程は、 符号化ステージにより前記乗数データ及び前記複数の被
    乗数データを入力する工程と、それらに対応する複数の
    部分積データを出力する工程と、 加算器アレイ・ステージにより前記複数の部分積データ
    を入力する工程及びそれらのデータの和を計算する工程
    と、それらに対応する複数の和データを出力する工程
    と、 出力加算器ステージにより前記複数の和データを入力す
    る工程及びそれらのデータの和を計算する工程と、それ
    らに対応する複数の積データを出力する工程とを備える
    請求項21に記載の乗算を実行する方法。
  27. 【請求項27】加算器アレイ・ステージにより前記複数
    の部分積データを入力する工程及びそれらのデータの和
    を計算する工程と、それらに対応する複数の和データを
    出力する工程はと、複数の4対2圧縮器により前記複数
    の部分積データを入力する工程及びそれらのデータの和
    を計算する工程と、それらに対応する和データを出力す
    る工程とを備える請求項26に記載の乗算を実行する方
    法。
  28. 【請求項28】出力加算器ステージにより前記複数の和
    データを入力する工程及びそれらのデータの和を計算す
    る工程と、それらに対応する複数の積データを出力する
    工程とは、条件付き和加算器により前記複数の和データ
    を入力する工程及びそれらのデータの和を計算する工程
    と、それらに対応する複数の積データを出力する工程と
    を備える請求項26に記載の乗算を実行する方法。
  29. 【請求項29】集積回路内にて前記工程を行う請求項2
    1に記載の乗算を実行する方法。
  30. 【請求項30】コンピュータ内にて前記工程を行う請求
    項21に記載の乗算を実行する方法。
JP17351696A 1995-07-05 1996-07-03 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法 Expired - Fee Related JP3761977B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/498,145 US5790446A (en) 1995-07-05 1995-07-05 Floating point multiplier with reduced critical paths using delay matching techniques
US08/498145 1995-07-05

Publications (2)

Publication Number Publication Date
JPH0934688A true JPH0934688A (ja) 1997-02-07
JP3761977B2 JP3761977B2 (ja) 2006-03-29

Family

ID=23979769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17351696A Expired - Fee Related JP3761977B2 (ja) 1995-07-05 1996-07-03 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法

Country Status (3)

Country Link
US (1) US5790446A (ja)
JP (1) JP3761977B2 (ja)
KR (1) KR970008893A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007215192A (ja) * 2006-02-09 2007-08-23 Altera Corp プログラマブルロジックデバイスのための特殊処理ブロック

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704761B1 (en) * 1997-04-30 2004-03-09 Lucent Technologies Inc. Carry-save multiplier/accumulator system and method
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
AUPS102902A0 (en) * 2002-03-13 2002-04-11 Hearworks Pty Ltd A method and system for reducing potentially harmful noise in a signal arranged to convey speech
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US20090234866A1 (en) * 2008-03-17 2009-09-17 Paul Caprioli Floating Point Unit and Cryptographic Unit Having a Shared Multiplier Tree
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8356185B2 (en) * 2009-10-08 2013-01-15 Oracle America, Inc. Apparatus and method for local operand bypassing for cryptographic instructions
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996601B2 (en) * 2012-06-21 2015-03-31 Advanced Micro Devices, Inc. Method and apparatus for multiply instructions in data processors
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150319A (en) * 1991-05-03 1992-09-22 Sun Microsystems, Inc. Circuitry for rounding in a floating point multiplier
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
JP2600591B2 (ja) * 1993-11-19 1997-04-16 日本電気株式会社 乗算器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007215192A (ja) * 2006-02-09 2007-08-23 Altera Corp プログラマブルロジックデバイスのための特殊処理ブロック

Also Published As

Publication number Publication date
JP3761977B2 (ja) 2006-03-29
US5790446A (en) 1998-08-04
KR970008893A (ko) 1997-02-24

Similar Documents

Publication Publication Date Title
JP3761977B2 (ja) 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US7313585B2 (en) Multiplier circuit
US4969118A (en) Floating point unit for calculating A=XY+Z having simultaneous multiply and add
KR940002479B1 (ko) 고속 디지탈 병렬승산기(multiplier)
Vazquez et al. Improved design of high-performance parallel decimal multipliers
US10255041B2 (en) Unified multiply unit
GB2223112A (en) Four to two adder cell for parallel multiplication
US6782405B1 (en) Method and apparatus for performing division and square root functions using a multiplier and a multipartite table
US5784305A (en) Multiply-adder unit
EP0613082A1 (en) 4:2 adder and multiplier circuit employing the same
US5285406A (en) High speed mixed radix adder
US10853037B1 (en) Digital circuit with compressed carry
JP7637787B2 (ja) シストリックアレイにおける乗算器および加算器
KR100308726B1 (ko) 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법
US8577952B2 (en) Combined binary/decimal fixed-point multiplier and method
EP0428942B1 (en) Plural-bit recoding multiplier
US4823300A (en) Performing binary multiplication using minimal path algorithm
JP3227538B2 (ja) 2進整数乗算器
Baluni et al. A fully pipelined modular multiple precision floating point multiplier with vector support
Mohan New residue to binary converters for the moduli set {2 k, 2 k− 1, 2 k-1− 1}
JPH04172526A (ja) 浮動小数点除算器
EP0450752B1 (en) High speed mixed radix adders
JP2765516B2 (ja) 積和演算器
Aggoun et al. Bit-level pipelined digit-serial multiplier

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060112

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees