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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49952—Sticky bit
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49957—Implementation of IEEE-754 Standard
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction 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/5336—Reduction 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/5338—Reduction 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
り、演算速度を向上すること。 【解決手段】集積化された倍精度型浮動小数点掛け算回
路を含む装置は、複数の入力信号端子、複数の出力信号
端子及び2分木加算器アレイを備える。2分木加算器ア
レイは、複数の乗数データ及び複数の被乗数データを複
数の入力信号端子を介して入力するとともに、それらに
対応する積データを複数の出力信号端子を介して出力す
るために入力端子及び出力端子に接続される。2分木加
算器アレイは複数のエッジを備えた規則的な構造物の中
に集積化され、複数のエッジのうちの第1のエッジに沿
って位置調整されるとともに、複数の入力信号端子及び
出力信号端子は複数のエッジのうちの第2のエッジに沿
って配置される。
Description
掛け算器に係り、詳しくは、クリティカル・パス遅延を
減少させた浮動小数点型の掛け算器に関する。
号プロセッサ内にて用いられ、最近ではRISC型プロ
セッサ内にて用いられている。倍精度の浮動小数点演算
は、積を生成すべく53個の部分積の和をとるという本
質的に低速の演算を含む。IEEE754標準に準拠し
た乗算においても、積の正確な丸め、指数の調節及び正
確な例外フラグの生成が含まれる。最近のRISC型プ
ロセッサに内蔵された掛け算器ユニットもパイプライン
化、小型化及び高速化される必要がある。上記全ての要
求を満たすためには、賢明な機能的及び物理的分割が要
求される。
情に鑑みてなされたものであって、その目的は、掛け算
器間の相互連結部を減少させることにより、演算速度を
向上することが可能な浮動小数点型掛け算器及びその演
算方法を提供することにある。
点型掛け算器は、遅延を整合するとともに、2分木加算
器中の相互連結距離を減少させることにより、クリティ
カル・パス遅延を減少させている。
掛け算器は、入力信号端子、出力信号端子及び2分木加
算器アレイからなる。2分木加算器アレイは、入力信号
端子を介して乗数データ及び被乗数データを入力し、出
力信号端子を介してそれらのデータに対応する積データ
を出力すべく、入力信号端子及び出力信号端子に接続さ
れている。2分木加算器アレイは複数のエッジを備えた
規則的な構造体中に集積化され、2分木加算器アレイは
上記エッジのうちの1つに沿って位置調整される。入力
信号端子及び出力信号端子は別の1つのエッジに沿って
配置される。好ましい実施形態において、2分木加算器
アレイは折れ曲がった3ステージ・パイプライン構造を
有する。この構造は加算器のインターリーブされた行
と、加算器の隣接した行の間の相互連結部とを備える。
加算器の各行は加算器とほぼ同数であり、対応する相互
連結部は加算器の行間とほぼ等しい距離を有する。
ステージにわたって演算する。(図2−図9は図1をよ
り詳細に示す図である。)第1のステージ(符号化ステ
ージ)において、乗数オペランド及び被乗数オペランド
は、それぞれ基数4の改変ブース符号化(radix-4 modi
fied Booth encoding)と乗算木(multiply tree)を通
過する。部分積(partial product)の中間和及び木の
結果は桁上げ保留フォーマットである。第2のステージ
(加算器アレイ・ステージ)において、条件付き和加算
器(conditional-sum adder)は桁上げ保留フォーマッ
トから2値形態へ結果を変換し、積を決定するために使
用される。第3のステージ(出力加算器ステージ)にお
いて、丸め及びフラグの生成が行われる。掛け算器は、
1サイクルのスループット及び3サイクルの待ち時間を
有する。
のステージは、4対2圧縮器(4:2compressor)、即ち
5対3のカウンター(5:3 counter)からなる基数4の
改変ブース符号化2分木により実行される。符号化手法
は27個の部分積を出力する。それら部分積は図1のブ
ロック0,1,3,4,7,8,にて生成される。4対
2圧縮器が使用されていることから、3個の部分積を生
成するブロック10を除く各ブロックは4個の部分積を
生成する。
部及び側部から始まり木の底部へ向かう従来のインプリ
メンテーションとは異なり、このインプリメンテーショ
ンは木の同一の側に配置された乗数と、ステージ化され
た結果とを有する。即ち、パイプライン・レジスタは木
の中に組み込まれ、被乗数と同一の側へ流れが定められ
る。この方法の利点は、相互連結部距離を減少させると
ともに、相互連結部遅延(interconnect delay)を次の
ステージへプッシュすることである。
raight-forward layout)に役立たない。相互連結部に
起因する木の通過による遅延を最小とすべく、部分積生
成器(partial product generator)及び加算器からな
る行の配置は、ワイヤの長さが行の間で平衡(balanc
e)するように行われる。木が「左に位置調整」される
とともに、いくらかの場合にはその調整が大幅であるた
めに生じる垂直距離及び水平距離の双方が考慮される。
距離及び水平ビット距離を示す。アレイを通過するクリ
ティカル・パスは、大きな水平シフトを伴う行、例えば
行0,2,6,12を含む。このパスを減少させるため
に、これらの行は互いに近づけて配置される。図10は
使用される配置を示す。アレイはインターリーブされて
いる。
るビット数が異なることであり、その数は61ビットか
ら76ビットまで変化する。木のその領域を減少させる
ために、大きな行の中にあるいくつかの加算器は、より
少ないセルを備えた行へ「曲げられる」(folded)。そ
の曲げは、タイミングに影響しないように行われる。更
に多くの曲げが行われてもよいが、これにより木を通る
クリティカル・パスに影響を与えることがある。
に基づき設計され、5つの入力信号{x3,x2,x
1,x0,cin}を入力し、3つの出力信号{carry ,c
out,sum }を出力する。全ての入力及び出力sumは1の
重みを有し、2つの出力carry,coutは2の重みを有す
る。それは式(1)で示される。
ており、入力xのみに対して依存することから、図示す
るように共に接続される加算器からなる行はcinからcou
tへの桁上げの任意のリプリングを禁止しない。xiか
らsum又はcarryへの遅延が、隣接する加算器のxiから
coutへの遅延とcinからsumへの遅延とを結合した遅延と
ほぼ等しくなるように更に加算器は設計される。
算段階は、52ビットの条件付き和加算器を使用する。
その加算器は最小遅延のために分割される再帰的構造を
備えている。図示するように、Nビットの条件付き加算
器はより小さな2つの条件付き加算器から構成され、2
つのうちの一方はjビットの幅を有し、他方は(N−
j)ビットの幅を有する。2つの2対1マルチプレクサ
(2:1 multiplexor)は上位の和及び桁上げの結果を出
力するために使用される。これらの出力は下位jビット
の加算器からの桁上げにより選択される。一般的に、大
きな論理出力に起因する容量性負荷(capacitive loadi
ng)を扱うために、マルチプレクサに対する選択は全て
一時記憶(buffer up)される。これらのより小さな加
算器も、順に更に小さな条件付き和加算器から構成され
る。
どのように分割されるかによって影響される。位置jに
おいて分割されたNビットの加算器に対する遅延は、T
(N,j)として式(2)のように定義される。
対する最適な遅延である。Tbuf はバッファの遅延であ
り、図13左側の加算器上のビット数、即ち(N−j)
の関数である。Tsel はマルチプレクサが選択してから
出力するまでの遅延である。Tmux はマルチプレクサが
データを出力するまでの遅延である。Nビット加算器に
対する最適な遅延Topt (N)は簡単に式(3)により
示される。ここで、jは1から(N−1)まで変化す
る。
大の問題(min-max problem)であり、このインプリメ
ンテーションのために内部に形成された有効な動的プロ
グラミング解法に大いに役に立つ。
ー・ビットは、第2のステージにおいて生成される。一
般的に、桁上げ保留フォーマットにおける下位51ビッ
トは、全て合計されるとともに、論理和が計算される。
しかしながら、本発明に基づき、予め和を演算するため
に、任意の51ビットの加算器を必要することなく、ス
ティッキー・ビットは桁上げ保留フォーマットにおける
木の出力から直接的に生成される。その結果、大幅な時
間及び領域が節約される。ここで、s1,c1はそれぞ
れ木からの出力sum,carryである。
ことにより直接的に計算される。
用することにより、丸め演算を行うために増分器(incr
ementer)は要求されない。丸め後の正確な結果を選択
するために、マルチプレキシングのみが必要となる。
積(桁上げ保留フォーマット)がアレイにより生成され
た後、ビット104とビット103との間に小数点が生
じ、上位53ビットのみが仮数の結果として使用され
る。下位53ビットは正確な丸めを行うためのみに使用
される。丸めが行われた後、ビット105、即ちMSB
(最上位ビット)の値に応じて、ビット105〜53又
はビット104〜52の何れかが使用される。別の方法
で、MSBが設定されない場合、ビット104〜52が
使用され、指数はインクリメントされない。丸め自身
は、MSBを設定するために伝搬する。これは丸め後に
オーバーフローとなる場合の方法である。図14は、丸
め後にビット105に基づきアレイの結果から仮数がど
のように選択されるかを示す。同図において、L,G,
R,SはそれぞれLSB(最下位ビット)、ガードビッ
ト、丸めビット及びスティッキー・ビットを表す。
び丸めは、鎖線で示すパイプライン・レジスタを用いて
別のステージにて行われる。アレイからの下位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]を形成すべく、条件付
き和加算器を用いて加算される。
て生じ得る丸めとに起因して、2つの桁上げをビット位
置54へ導入する可能性がある。1つの桁上げのみがビ
ット54へ伝搬されることを確実にするため、ビット1
05〜ビット51にて半加算器の行が使用される。
正確に対処すべく、最終的な選択ロジックにより要求さ
れる信号c54v,c54nをそれぞれ生成するため
に、2つの加算器、ovf及びnovfが使用される。
信号c54v,c54nはビット位置54への桁上げで
あり、それぞれオーバーフロー及び非オーバーフロー
(non-overfow)を示す。L,G,R,Sビット及び丸
め手法ビットは、2つの丸め値を生成するために丸めロ
ジックにより使用される。ある値が仮数のオーバーフロ
ーを表すと仮定し、その他の値が仮数の非オーバーフロ
ーを表すと仮定する。オーバーフロー(manv)及び非オ
ーバーフロー(mann)に対する最終的な仮数の下位1及
び2ビットを形成するために、これらの丸めビットはそ
れぞれLビット及び{L,G}ビットに加算される。
形成するために、manv又はmannの何れかを備えた条件付
き和加算器からの適切なsum0及びsum1を結合する。表3
は選択ロジックのための真理値表である。式8に示すよ
うに、その表の鍵はオーバーフロー信号のための式であ
る。桁上げの結果としてMSBが設定され、51ビット
の加算において、ビット54への桁上げがない場合に、
第1の項が参照される。非オーバーフローにおいてビッ
ト54へのいくらかの桁上げに起因してMSBが設定さ
れる場合に、第2の項が参照される。この桁上げは丸め
自身、即ち丸め後にオーバーフローする場合に起因す
る。
されるものと同様である。領域の節約に関し、乗算、除
算及び平方根演算は全て丸めハードウエアを共有する。
乗算、除算又は平方根演算の結果の間の付加的なマルチ
プレキシングのみが、図15に示すブロックへの信号の
入力前に要求される。
の間の一つの違いは、仮数のオーバーフローの取り扱い
である。乗算では、オーバーフローが生じる場合、増分
された指数が使用される。これに対して、除算及び平方
根演算では、小数点はMSBのすぐ右側に用いられる。
従って、仮数の、MSBがゼロである場合、減分された
指数が選択される。表4は指数が乗算、除算及び平方根
演算に対してどのように選択されるのかを示す。
け算器は、乗数の木及び最終的な加算ステージにおいて
遅延整合技術を提供するとともに、除算及び平方根演算
ユニットと共有する丸めハードウエアを提供する。この
結果、本発明の浮動小数点型掛け算器その演算方法は、
掛け算器間の相互連結部を減少させることにより、演算
速度を向上することができる。
の発明の趣旨を逸脱しない範囲内で様々な他の改良や置
き換えを行ってもよい。本発明においては、特定の望ま
しい実施形態に関して述べたが、特許請求の範囲に記載
の発明はそのような特定の実施形態に限定されるもので
はない。特許請求の範囲は本発明の範囲を定義するもの
であり、それにより特許請求の範囲内の構造及び方法、
並びにそれらと均等のものが含まれる。
点型掛け算器その演算方法は、掛け算器間の相互連結部
を減少させることにより、演算速度を向上することがで
きるという効果を発揮する。
すブロック図。
延を平衡させるために使用される行の順序を表す図。
の4対2圧縮器を示すブロック図。
オーバーフローのための仮数の選択を示す図。
を示すブロック図。
t,sum…出力信号。
Claims (30)
- 【請求項1】集積化された倍精度浮動小数点型掛け算回
路を含む装置であって、前記掛け算回路は、 複数の入力信号端子と、 複数の出力信号端子と、 2分木加算器アレイとを備え、 前記2分木加算器アレイは、複数の乗数データ及び複数
の被乗数データを前記複数の入力信号端子を介して入力
するとともに、それらに対応する積データを前記複数の
出力信号端子を介して出力するために前記入力端子及び
出力端子に接続され、 前記2分木加算器アレイは複数のエッジを備えた規則的
な構造物の中に集積化されるとともに、前記複数のエッ
ジのうちの第1のエッジに沿って位置調整され、前記複
数の入力信号端子及び出力信号端子は前記複数のエッジ
のうちの第2のエッジに沿って配置される装置。 - 【請求項2】前記2分木加算器アレイはインターリーブ
されている請求項1に記載の装置。 - 【請求項3】前記2分木加算器アレイは複数行の加算器
を備え、前記複数行のうちの各行はほぼ等しい数の加算
器を含む請求項1に記載の装置。 - 【請求項4】前記2分木加算器アレイは複数行の加算器
を備えるとともに、前記複数行の加算器のうちの隣接す
る加算器間に複数の相互連結部を備え、前記複数の相互
連結部は、前記複数行の加算器の間においてほぼ等しい
長さを有する請求項1に記載の装置。 - 【請求項5】前記2分木加算器アレイは折り曲げ型3ス
テージ・パイプライン構造である請求項1に記載の装
置。 - 【請求項6】前記2分木加算器アレイは、 符号化ステージと、 加算器配列ステージと、 出力加算器ステージとを備え、 前記符号化ステージは、前記複数の乗数データ及び前記
複数の被乗数データを入力し、それらに対応する複数の
部分積データを出力するために、前記複数の入力信号端
子に接続され、 前記加算器アレイ・ステージは、前記複数の部分積デー
タを入力するとともにそれらのデータの和を計算し、そ
れらに対応する複数の和データを出力するために、前記
符号化ステージに接続され、 前記出力加算器ステージは、前記複数の和データを入力
するとともにそれらのデータの和を計算し、それらに対
応する複数の積データを出力するために、前記加算器ア
レイ・ステージに接続される請求項1に記載の装置。 - 【請求項7】前記加算器アレイ・ステージは複数の4対
2圧縮器を備える請求項6に記載の装置。 - 【請求項8】前記出力加算器ステージは条件付き和加算
器を備える請求項6に記載の装置。 - 【請求項9】前記掛け算器が集積化される集積回路を更
に備える請求項1に記載の装置。 - 【請求項10】前記掛け算器が内蔵されるコンピュータ
を備える請求項1に記載の装置。 - 【請求項11】集積化された倍精度浮動小数点型掛け算
回路を備える装置を提供する方法であって、 複数の入力信号端子を提供する工程と、 複数の出力信号端子を提供する工程と、 2分木加算器アレイを提供する工程とを備え、 前記2分木加算器アレイは、複数の乗数データ及び複数
の被乗数データを前記複数の入力端子を介して入力する
とともに、それらに対応する積データを前記複数の出力
信号端子を介して出力するために、前記入力端子及び出
力端子に接続され、 前記2分木加算器は複数のエッジを備えた規則的な構造
物の中に集積化されるとともに、前記複数のエッジのう
ちの第1のエッジに沿って位置調整され、前記複数の入
力信号端子及び出力信号端子は前記複数のエッジのうち
の第2のエッジに沿って配置される装置を提供する方
法。 - 【請求項12】前記2分木加算器アレイを提供する工程
は、インターリーブされた2分木加算器アレイを提供す
る工程を備える請求項11に記載の装置を提供する方
法。 - 【請求項13】前記2分木加算器アレイを提供する工程
は、複数行の加算器を備える2分木加算器アレイを提供
する工程を備え、前記複数行のうちの各行はほぼ等しい
数の加算器を含む請求項11に記載の装置を提供する方
法。 - 【請求項14】前記2分木加算器アレイを提供する工程
は、複数行の加算器を備えた2分木加算器アレイを提供
する工程を備え、前記2分木加算器アレイは複数行のう
ちの隣接する行の間に複数の相互連結部を備える複数行
の加算器を含み、 前記複数の相互連結部のうちの対応する相互連結部は、
前記複数行の加算器の間においてほぼ等しい長さを有す
る請求項11に記載の装置を提供する方法。 - 【請求項15】前記2分木加算器アレイを提供する工程
は、折り曲げ型3ステージ・パイプライン構造を有する
2分木加算器アレイを提供する工程を備える請求項11
に記載の装置を提供する方法。 - 【請求項16】前記2分木加算器アレイを提供する工程
は、 符号化ステージを提供する工程と、 加算器アレイ・ステージを提供する工程と、 出力加算器ステージを提供する工程とを備え、 前記符号化ステージは、前記複数の乗数データ及び前記
複数の被乗数データを入力し、それらに対応する複数の
部分積データを出力するために、前記複数の入力信号端
子に接続され、 前記加算器アレイ・ステージは、前記複数の部分積デー
タを入力するとともにそれらのデータの和を計算し、そ
れらに対応する複数の和データを出力するために、前記
符号化ステージに接続され、 前記出力加算器ステージは、前記複数の和データを入力
するとともに、それらのデータの和を計算し、それらに
対応する複数の積データを出力するために、前記加算器
アレイ・ステージに接続される請求項11に記載の装置
を提供する方法。 - 【請求項17】前記加算器アレイ・ステージを提供する
工程は複数の4対2圧縮器を提供する工程を備える請求
項16に記載の装置を提供する方法。 - 【請求項18】出力加算器ステージを提供する工程は条
件付き和加算器を備える請求項16に記載の装置を提供
する方法。 - 【請求項19】前記掛け算器が集積化される集積回路を
提供する工程を更に備える請求項11に記載の装置を提
供する方法。 - 【請求項20】前記掛け算器が内蔵されるコンピュータ
を提供する工程を更に備える請求項11に記載の装置を
提供する方法。 - 【請求項21】集積化された構造物内において倍精度浮
動小数点の乗算を実行する方法であって、 複数の乗数データ及び複数の被乗数データを複数の入力
端子を介して入力する工程と、 複数の乗数データ及び被乗数データに対応する2分木加
算器アレイを備えた複数の積データを複数の出力信号端
子を介して出力する工程とを備え、 前記2分木加算器アレイは複数のエッジを備えた規則的
な構造物の中に集積化されるとともに、前記複数のエッ
ジのうちの第1のエッジに沿って位置調整され、前記複
数の入力信号端子及び出力信号端子は前記複数のエッジ
のうちの第2のエッジに沿って配置される乗算を実行す
る方法。 - 【請求項22】複数の乗数データ及び被乗数データに対
応する2分木加算器アレイを備えた複数の積データを複
数の出力信号端子を介して出力する工程は、インターリ
ーブされた2分木加算器アレイを備えた複数の積データ
を出力する工程を備える請求項21に記載の乗算を実行
する方法。 - 【請求項23】複数の乗数データ及び被乗数データに対
応する2分木加算器アレイを備えた複数の積データを複
数の出力信号端子を介して出力する工程は、複数行の加
算器を備える2分木加算器アレイを備えた複数の積デー
タを出力する工程を備え、前記複数行のうちの各行はほ
ぼ等しい数の加算器を含む請求項21に記載の乗算を実
行する方法。 - 【請求項24】複数の乗数データ及び被乗数データに対
応する2分木加算器アレイを備えた複数の積データを複
数の出力信号端子を介して出力する工程は、2分木加算
器アレイを備えた複数の積データを出力する工程を備
え、前記2分木加算器アレイは複数行の加算器のうちの
隣接する行の間に複数の相互連結部を備える複数行の加
算器を含み、 前記複数の相互連結部のうち対応する相互連結部は、前
記複数行加算器の間においてほぼ等しい長さを有する請
求項21に記載の乗算を実行する方法。 - 【請求項25】複数の乗数データ及び被乗数データに対
応する2分木加算器アレイを備えた複数の積データを複
数の出力信号端子を介して出力する工程は、複数の積デ
ータを出力する工程を備え、前記積データは折り曲げ型
3ステージ・パイプライン構造を有する2分木加算器ア
レイを備える請求項21に記載の乗算を実行する方法。 - 【請求項26】複数の乗数データ及び被乗数データに対
応する2分木加算器アレイを備えた複数の積データを複
数の出力信号端子を介して出力する工程は、 符号化ステージにより前記乗数データ及び前記複数の被
乗数データを入力する工程と、それらに対応する複数の
部分積データを出力する工程と、 加算器アレイ・ステージにより前記複数の部分積データ
を入力する工程及びそれらのデータの和を計算する工程
と、それらに対応する複数の和データを出力する工程
と、 出力加算器ステージにより前記複数の和データを入力す
る工程及びそれらのデータの和を計算する工程と、それ
らに対応する複数の積データを出力する工程とを備える
請求項21に記載の乗算を実行する方法。 - 【請求項27】加算器アレイ・ステージにより前記複数
の部分積データを入力する工程及びそれらのデータの和
を計算する工程と、それらに対応する複数の和データを
出力する工程はと、複数の4対2圧縮器により前記複数
の部分積データを入力する工程及びそれらのデータの和
を計算する工程と、それらに対応する和データを出力す
る工程とを備える請求項26に記載の乗算を実行する方
法。 - 【請求項28】出力加算器ステージにより前記複数の和
データを入力する工程及びそれらのデータの和を計算す
る工程と、それらに対応する複数の積データを出力する
工程とは、条件付き和加算器により前記複数の和データ
を入力する工程及びそれらのデータの和を計算する工程
と、それらに対応する複数の積データを出力する工程と
を備える請求項26に記載の乗算を実行する方法。 - 【請求項29】集積回路内にて前記工程を行う請求項2
1に記載の乗算を実行する方法。 - 【請求項30】コンピュータ内にて前記工程を行う請求
項21に記載の乗算を実行する方法。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007215192A (ja) * | 2006-02-09 | 2007-08-23 | Altera Corp | プログラマブルロジックデバイスのための特殊処理ブロック |
Families Citing this family (59)
| 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)
| 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 | 日本電気株式会社 | 乗算器 |
-
1995
- 1995-07-05 US US08/498,145 patent/US5790446A/en not_active Expired - Fee Related
-
1996
- 1996-07-03 JP JP17351696A patent/JP3761977B2/ja not_active Expired - Fee Related
- 1996-07-03 KR KR1019960026782A patent/KR970008893A/ko not_active Withdrawn
Cited By (1)
| 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 |