JPH07114455A - パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行 - Google Patents

パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行

Info

Publication number
JPH07114455A
JPH07114455A JP6186921A JP18692194A JPH07114455A JP H07114455 A JPH07114455 A JP H07114455A JP 6186921 A JP6186921 A JP 6186921A JP 18692194 A JP18692194 A JP 18692194A JP H07114455 A JPH07114455 A JP H07114455A
Authority
JP
Japan
Prior art keywords
adder
product
zero
input register
operand
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
JP6186921A
Other languages
English (en)
Other versions
JP2729027B2 (ja
Inventor
Son Dao-Trong
ソン・ダオーツロング
Juergen Haas
ユールゲン・ハース
Rolf Mueller
ロルフ・ミュラー
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 JPH07114455A publication Critical patent/JPH07114455A/ja
Application granted granted Critical
Publication of JP2729027B2 publication Critical patent/JP2729027B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • 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

Landscapes

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

Abstract

(57)【要約】 【目的】 パイプライン浮動小数点プロセッサにおける
高速乗算−加算命令の待ちサイクルを不要とする。 【構成】 加算パイプラインを再構成する。 1.乗算器Mから整列器AL1、2へパスNDを介して
正規化されたデータのフィードバックを行う。 2.積の先頭のゼロの桁の可能性を考慮してデータ・パ
スの両側で左への1桁の桁送り、及び保護桁のZ1、2
による特別なゼロ設定を行う。 3.オーバフロー及びアンダーフローの認知のために9
ビットでの指数形成、及びアンダーフローのために、真
ゼロ値ユニット(T/C)による飛びで指数結果がゼロ
にリセットされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、乗算−加算シーケンス
の性能を向上させるパイプライン式浮動小数点プロセッ
サ(floating-point processor:FLPT)における配
置及び方法に関し、これによれば乗算が3つのサイクル
内で実行される。すなわち、オペランドの読取り、部分
和の形成及び最終結果のための部分和の加算である。さ
らに、この加算においても3つのサイクル、すなわちオ
ペランドの読取り、オペランドの整列及び加算を必要と
する。
【0002】
【従来の技術】浮動小数点プロセッサ(FLPT)は、
科学計算アプリケーションを実行するため、メイン・プ
ロセッサ(CPU)に機能を追加するべく用いられる。
IBMエンタープライズ・システム/9000(ES/
9000)の入門レベルのモデル(例えば9221)に
おいては、浮動小数点プロセッサはCPUに強固に結合
されており、全てのIBM システム/390浮動小数
点命令を実行する。全ての命令はハードウェア的にコー
ド化されているため、マイクロ命令は不要である。さら
に、全体の性能を高めるために、2進整数の乗算もまた
浮動小数点プロセッサ上で実行される。
【0003】図1は、上記の浮動小数点プロセッサのデ
ータ・フローを示す。浮動小数点プロセッサについて
は、IBM Journal of Research and Development, Vol.
36, Number 4, July 1992に詳細な記載がある。CPU
は、4つのステージ(段階)のパイプラインに基づいて
いるが、浮動小数点プロセッサはその最もよく利用され
る命令、例えば、倍精度オペランドに対して1サイクル
中で加算、減算、及び乗算を実行するために5つのステ
ージのパイプラインを必要とする(詳細については、
「ESA/390 Architecture」, IBM Form No.: G580-1017-
00を参照されたい)。
【0004】CPUは、浮動小数点プロセッサのために
オペランドのアドレスを決定し、キャッシュからオペラ
ンドを与え、そして全ての例外を処理する。5つのステ
ージのパイプラインとは、CPU上で実行される命令取
出し、レジスタ読出し、オペランド再整列、加算、及び
正規化とレジスタ記憶である。
【0005】CPUとの同期を保持するために、浮動小
数点プロセッサが1以上のサイクルを必要とする場合に
は必ず浮動小数点待ち信号が立ち上げられる。そしてC
PUは、この待ち信号がそのプログラム・カウンタに達
する以前に消失するまで待ってから、バス上に維持され
ていた次の順次命令を開始する。
【0006】IBM システム/390のアーキテクチ
ャは、割込みが正確であることを要求するので、例外が
発生しそうな場合には必ず待ち条件も呼出される。さら
に図1に示されるように、先行する命令の結果が用いら
れる場合に待ちサイクルを避けるための多くのバイパス
・バスが用いられている。待ちサイクルは、1つの命令
の結果がすぐに次の順次命令(next sequential instru
ction:NSI)により用いられる場合にのみ必要とさ
れる。例えば、加算命令が乗算命令に続く場合などであ
り、乗算命令の結果は加算命令の加数により加算されな
ければならない。
【0007】図1に示されたデータ・フロー(流れ)
は、小数部処理のために2つの並行するパスを有する。
1つは、全ての非乗算・非除算命令が実行される加算パ
スであり、もう1つは、乗算及び除算のために特別に設
計された乗算パスである。加算パスは、一定(60個)
のビット幅を有し、オペランド・スイッチャ、整列器、
加算器、及び正規化シフタからなる。各オペランドにつ
いて2つの整列器を用いる代りにスイッチャをオペラン
ドの切換えのために用いることにより、整列器を1つ省
くことができる。さらにこのスイッチャは他の命令のた
めにも必要とされるものであり、これによって回路素子
をはるかに少なくできる。
【0008】乗算パスは、58ビット乗算器のためのブ
ース・エンコーダ、58×60ビットの積項の和及び桁
上げを生成する乗算器マクロ、及び結果である積を与え
る92ビット加算器とからなる。符号パス及び指数パス
は、加算パスと一致するように調整される。指数パス
は、先に触れたIBM システム/390のアーキテク
チャにより規定されるように、全ての例外と真のゼロ状
態を処理する。
【0009】他の全ての命令の実行は、加算パス及び乗
算パスの中へマージされており、最小限の論理回路のみ
を必要とする。従って、図1のデータ・フローは、単な
る加算、減算及び乗算動作に対して必要とされるよりも
多くの機能ブロックと乗算器ステージを示している。
【0010】さらに図1からわかるように、データ・フ
ローはより小さな部分であるFA、FB、FC、FD、
MA、MB、PS、PC及びPL(典型的には、入力制
御を有するレジスタ)へ区分される。これらの区分及び
浮動小数点命令の3つの主要なグループ区分は、 1)加算/減算、ロード 2)乗算 3)除算 である。これらは、科学計算アプリケーションにおいて
最もよく用いられる命令である。最初の2つの命令グル
ープは1つのサイクル内で実行され、除算はできるだけ
高速に行われる。
【0011】加算命令については、パイプラインの最初
の2つのステージにおいて、命令とオペランドの取出し
のみが行われる。全てのデータ処理は、パイプラインの
ステージ3及びステージ4に集中している。ステージ5
において、結果が浮動小数点レジスタに戻され書込まれ
る。
【0012】ロード命令は、ゼロに等しいオペランドに
よる加算であるかのように処理される。ステージ3にお
いて、整列シフトの量を決定するために双方のオペラン
ドの指数が比較される。そして、より小さい指数をもつ
オペランドが、再整列のために整列器へ渡される。パイ
プラインのステージ4において整列させられたオペラン
ドが加算される。加算においてキャリアウト(carry-ou
t)が生じる場合があり、その結果、前記のアーキテク
チャにおいては1桁だけ位を右へ桁送りする。よって、
それに応じて指数は減らされる。
【0013】ステージ4ではまだ時間に余裕があるの
で、指数増加、指数調整又は乗算もしくは除算指数のい
ずれが要求されているかを選択する入力マルチプレクサ
(図1)をもつ1つの指数加算器のみを用いて、指数計
算がその加算の後に順次行われる。
【0014】ゼロ・ロードの検知は、16進数の桁の和
を計算することにより、キャリイン(carry-in)を進め
ることなく行われる。桁の位iについての16進数和0
及びFが決定され、マルチプレクサ内に与えられる。こ
の位に対するキャリインは、その桁の結果がゼロである
か否かを選択する。このキャリ・ビットは、加算器とし
て用いられる同じ桁上げ先見回路から生じるので、さら
に別の回路は不要である。前述の論理を用いることによ
り、桁送り量は加算結果とほぼ同時に決定することがで
きる。
【0015】指数例外もまた、オーバフローであれアン
ダーフローであれステージ4で検知される。一方、次の
命令はすでに開始されている。前述のように、次の順次
命令の実行を保留するためにステージ3で待ち状態が生
じることもある。有効な加算の場合における待ち状態
は、以下のときに生じる。−中間的な結果の指数が7F
(16進数)であり、かつ指数増分が加算器からのキャ
リアウトにより生じるとき。−中間的な結果の指数が0
Dよりも小さく、かつ非正規化オペランドに対する正規
化が必要なとき。ここで、指数は正規化桁送り量により
減らされなければならず、この量は多くとも0D(十進
数の14)のはずなので、指数のアンダーフローを生じ
る。
【0016】乗算は、部分的な積項の直列加算を備える
修正ブース・アルゴリズム乗算器を用いることにより実
行される。それは、多くの高性能の数値演算コプロセッ
サにおける3つの命令サイクル内で行われるものであ
る。すなわち、 1.オペランド読取り 2.部分和形成 3.最終結果のための部分和の加算(図3を参照のこ
と)
【0017】第1及び第3のサイクルのデータ・バイパ
スにより、次の命令に対して同じ結果を用いる場合は1
つのサイクルを省くことができる。しかしながら、それ
でも尚、先行する乗算の結果を加数又は被加数として用
いる加算命令がその乗算命令のすぐ後に続く場合は、図
3からわかるように1つの待ちサイクルが必要とされ
る。
【0018】数学的問題、特に行列計算を解く場合に、
加算命令が乗算の結果を用いるような乗算−加算のシー
ケンスが非常に頻繁に用いられる。IBMのRS600
0等のリスク(RISC:reduced instruction set comput
er)・システムは、2つの動作を1つの複合命令に組合
わせることが可能な基本的な設計を有する。しかしなが
ら、この設計は前述のESA/390アーキテクチャに
は適合しない。古いプログラムは、ESA/390から
の結果とは異なる結果を与える可能性がある。これを避
けるために、1つの待ちサイクルを挿入しなければなら
ない(図3)。
【0019】
【発明が解決しようとする課題】性能計算においては、
LINPACKループが非常によく用いられる。これは
5つの命令のシーケンスから構成される。 1)ロード 2)乗算 3)加算 4)記憶(ストア) 5)分岐戻り 分岐命令は、通常、ゼロ−サイクルで処理されるので、
付加される待ちサイクルが25%の性能低下をもたらす
ことになる。本発明の目的は、主に、直前の乗算結果を
用いる大量の乗算−加算シーケンスをもつ行列計算を行
う必要がある場合に、パイプライン浮動小数点プロセッ
サの性能を向上させることである。
【0020】
【課題を解決するための手段】本発明のこの目的は、以
下の4つの修正により実現される。 1.乗算器Mから整列器AL1及びAL2へのフィード
バック・パスNDを介しての正規化されたデータのデー
タ・フィードバック。 2.積の先頭にゼロの桁がある可能性を考慮するため
の、データ・パスの両側にあるSL1及びSL2による
左への1桁の桁送り(保護桁(guard digit)の特別ゼ
ロ設定)。 3.Z1及びZ2におけるオーバフロー及びアンダーフ
ローの認識に対する9ビットによる指数生成。アンダー
フローに起因して、指数結果が真のゼロにより即座にゼ
ロにリセットされる。 4.双方の整列器AL1及びAL2が16桁へ拡張され
る。 上記特徴をパイプライン浮動小数点プロセッサに適用す
ることにより、乗算−加算命令において25%の性能の
向上が達成される。
【0021】
【実施例】図5に示すパイプライン浮動小数点プロセッ
サの新しいデータ・フローは、図6により示されるよう
に乗算−加算の命令シーケンスのゼロ待ち処理が可能で
あり、実質的に4つの修正により得られるものである。
すなわち、 1.乗算器Mから整列器AL1及びAL2へのフィード
バック・パスNDを介しての正規化されたデータのデー
タ・フィードバック。 2.積の先頭にゼロの桁がある可能性を考慮するため
の、データ・パスの両側にあるSL1及びSL2による
左への1桁の桁送り(保護桁(guard digit)の特別ゼ
ロ設定)。 3.Z1及びZ2におけるオーバフロー及びアンダーフ
ローの認識に対する9ビットによる指数生成。アンダー
フローに起因して、指数結果が真のゼロにより即座にゼ
ロにリセットされる。 4.双方の整列器AL1及びAL2が16桁へ拡張され
る。
【0022】高速の乗算−加算命令シーケンスを実行す
るために、次の段階的手順が必要である(図6を参照の
こと)。 1.乗算実行のためにオペランドOPDI及びOPDI
Iを読取る。 2.中間的な指数積を計算し、乗算アレイMの中に乗算
のための部分和を形成する。同時に、加算のためのオペ
ランドOPD1を読取る。 3.最終的な積を得るために乗算アレイの部分和を加算
し、及びそのデータを加算のためにフィードバックす
る。それと並行して、16桁フレーム内の整列のために
指数の比較が行われる。その後、もし積の先頭の桁がゼ
ロであれば、1桁の左桁送りにより最終的な整列が調整
される。しかしながら、次の場合を考慮しなければなら
ない。すなわち、 a)積が真にゼロである。よって、乗算器アレイMから
得たオペランドは、ゼロにされる。 b)中間の積指数がOPD1指数よりも小さい。この場
合、積は整列され、それ以上特別な動作をとる必要はな
い。 c)中間の指数がOPD1指数よりも大きい。この場
合、加数を整列する必要がある。 もし積がその先頭の桁にゼロをもっていなければ、その
積の保護桁をゼロに設定しなければならない。しかし、
積が先頭にゼロをもっていれば、双方のオペランド(乗
算及びOPD1からの結果オペランド)が1桁だけ左へ
桁送りされ、そして整列器の16番目の桁(図6のデー
タ・フローの例)がその結果の保護桁となる。 4.双方のオペランドが適切に整列されると、(図4と
図6の比較からわかるように)待ちサイクルを全く必要
とすることなくそれらが加算されて乗算−加算命令シー
ケンスの最終的な結果となる。
【0023】以下に記載する例1乃至例10(図7乃至
図16)は、加算、乗算、及び1つのオペランドが先行
する乗算の結果である加算を直後に伴う乗算に対して、
結果を計算しなければならない様々な状態と浮動小数点
プロセッサのデータ・フローが図2、図3及び図6によ
る異なるパイプラインのステージにおけるこれらの状況
をいかに処理するかを示している。
【0024】以下の、例1乃至例6(図7乃至図12)
からなる第1のグループでは、図5による新しい浮動小
数点プロセッサのデータ・フローにおける汎用的な加算
及び乗算動作の間に起り得る様々な状態が示されてい
る。 例1(図7) オペランドOPD1及びOPD2(被加数及び加数)
は、「オペランド読取り」の間に中間的な加算器入力レ
ジスタFA及びFBへ転送される。これらのオペランド
は、小数部の値と指数とからなる。指数05と07が適
合しないので、オペランド整列のために小さい方の指数
の位を2つほど右へ桁送りする必要がある。これは、
「オペランド整列」の間に行われる。オペランドOPD
1のアンダーフロー値7は、後に加算結果(中間値又は
最終値)を「加算」の間に形成しなければならないとき
に用いるために保護桁GDにより捕捉される。整列器A
L1及びAL2による整列の後、さらにシフタ(桁送り
器)SL1及びSL2並びにSL1とゼロ検知器Z1と
の間に相互接続される真値/補数ユニットT/Cを介し
て渡した後に、オペランドが加算器ADD−Aの入力レ
ジスタFC及びFDに記憶される。ADD−Aは、例1
に示される中間的な結果IR1を算出する。
【0025】結果の小数部部分の正規化は、ノーマライ
ザ(正規化器)NORM−Aにより行われなければなら
ず、その結果、切捨てられた正規化小数部となり、それ
から指数が調整される。その後、最終的な結果又は和が
出力レジスタFEに記憶される。以上の全ての動作は、
浮動小数点プロセッサのパイプラインのステージである
「加算」において行われる。
【0026】例2(図8) 例2では、オペランドOPD2がオペランドOPD1よ
りも小さいさらに汎用的な加算が示されている。従って
オペランドOPD1の小数部は、オペランド整列のた
め、両指数(05、01)の差(4)だけ右へ桁送りさ
れなければならない。加算の中間結果IR1が先頭に3
つのゼロをもつので、3だけ左へ桁送りする必要があ
り、その結果、最終結果FRの指数02となって加算器
出力レジスタFEに記憶される。
【0027】例3(図9) 例3では、オペランドOPDI及びOPDIIが乗算器
入力レジスタMA、MBへ読込まれている状態での乗算
が示されている。先の例と同様に、オペランドは小数部
と指数とからなる。乗算器アレイMで部分和が形成さ
れ、中間値として乗算器出力レジスタPC及びPSに記
憶される。この例では、簡易にするために実際の値は省
かれている。部分的積加算により、中間結果IR2が算
出されるが、この中の1つの小数部部分が先頭にゼロを
もっている。このため、1だけ左へ桁送りされ、05か
ら04へと指数調整される。よって、このとき出力レジ
スタFEは、切捨てられ正規化された小数部と調整され
た指数とを含む。
【0028】例4(図10) この例では、桁送り動作は、積加算の後は必要ないよう
に見える。出力レジスタFE内の最終結果の位の数を正
規化するために切捨てのみが必要とされる。
【0029】例5(図11) 例5では、負の指数(−49、−50)とOPDIの小
数部がOPDIIのそれよりも大きいような小数部とを
もつオペランドが示されている。小数部の値はオーバフ
ローを生じないように見える。例が示すように、最終結
果FRのために、中間結果IR2を1だけ左へ桁送りす
る動作のみが指数調整として必要である。しかしなが
ら、FRが真のゼロとなるように指数アンダーフローが
行われた。
【0030】例6(図12) 例6は、負のオペランドをもつ非常に簡単な例を示して
おり、レジスタFE内の最終結果FRを形成するために
IR2の切捨てのみが必要である。
【0031】次の例7乃至例10(図13乃至図16)
からなる第2のグループは、乗算−加算命令のゼロ待ち
処理及びパイプラインの異なるステージ1乃至4で実行
される様々な段階的手順を示している。
【0032】例7(図13) 図示のとおり、乗算は、3つの処理段階A1乃至A2
と、加算のために必要な同じ番号の処理段階B1乃至B
3とを必要とする。従って、全体の動作は、パイプライ
ンの4つのステージ1乃至4の中で行われる。処理段階
A1の間に、双方のオペランドOPDI及びOPDII
が乗算器アレイMの入力レジスタMA及びMBへ読取ら
れる(第1のパイプライン段階)。
【0033】パイプラインの次のステージ2において、
処理段階A2の乗算の部分和が形成され、続いて、後に
加算されるために乗算器出力レジスタPC及びPSへ転
送される。同じステージ2であっても処理段階B1にお
いては、オペランドOPD1が加算器ADD−Aのため
に中間的な入力レジスタFAへ読取られる。もう一方の
中間的な加算器入力レジスタFB内に前の通常加算命令
から残されていた古い内容は、この場合には無関係であ
る。なぜなら、乗算−加算命令の加算のための第2のオ
ペランド(OPD2)は、次のパイプラインのステージ
3の処理段階A3において加算器ADD−Mで部分和を
総計し、そして先に図5に関して述べたようにフィード
バック・パスNDを介してフィードバックされる中間結
果IR1を与え、オペランドOPD2を形成することに
より算出されるからである。
【0034】図5に示したとおり、オペランドは、加算
器入力レジスタFC及びFDへ渡される過程において、
必要に応じて、指数が適合していない場合は整列器AL
1、AL2及びシフタSL1、SL2で整列動作を受け
なければならず、あるいは、加算器ADD−Aでの実際
の加算の前に保護桁GDを含む先頭のゼロを取除かなけ
ればならない場合にはゼロ設定動作を受けなければなら
ない。
【0035】いくつかの特別な状況が例7に示されてい
る。{1}(尚、図面中では、数字を丸で囲った表記で
示されている)で示すように、IR1は、パイプライン
のステージ3において1つの余分な桁GDとともに(4
ビット)パスNDを介してフィードバックされる。保護
桁(GD=8)は、ステージ3の処理段階A3で行われ
た積加算から生じたものである。{2}(尚、図面中で
は、数字を丸で囲った表記で示されている)は、3つの
位だけ右へ桁送りすることにより生じるオペランドOP
D1の整列が、2つのGD(1、1)の分だけデータ幅
を拡張させることを示している。参照マーク{3}
(尚、図面中では、数字を丸で囲った表記で示されてい
る)の位においては、IR1からレジスタFDへ転送さ
れるオペランドが先頭のゼロを有しており、左へ桁送り
することによりこれを取除いた結果、指数Expが05
から04へ変わることが示されている。
【0036】ステージ3の処理段階A3において、さら
にFEの内容が切捨てられ正規化される。これにより、
−1の指数調整が行われる(05から04へ)。さらに
ステージ4の処理段階B3において最終結果を形成する
ために、最終の加算動作に先立って指数調整のための左
への桁送りが必要である。加算の結果は、IR2に中間
値として記憶されるが、尚切捨てられ正規化されなけれ
ばならない。この手順において、もし保護桁がある場合
はこれを取除いてから最終結果をFEへ転送しなければ
ならない。出力レジスタは最終結果FRを含む。
【0037】例8(図13) 例8においては、例7で論じられたものと異なるオペラ
ンドの値によって生じる特別な状況が、{4}及び
{5}(尚、図面中では、数字を丸で囲った表記で示さ
れている)で示されている。{4}では、FD内の保護
桁GDの別個のゼロ設定が必要であり、第3の段階の処
理段階3において行われる。{5}(尚、図面中では、
数字を丸で囲った表記で示されている)では、FC内の
オペランドの小数部部分を切捨てる必要がある。このこ
とは、左への1桁の桁送りをする必要がないことを意味
し、従って、先頭のn+1桁のみが加算へと渡される。
【0038】例9(図15) 例9では、ステージ3の処理段階B2において、乗算の
結果として中間的にFDに記憶されたオペランドが付加
的な保護桁を必要とするような{6}(尚、図面中で
は、数字を丸で囲った表記で示されている)で示される
特別な状況がある。双方のオペランドの指数が既に調整
されているので(いずれも05)、引続いて桁送り動作
をする必要がない。
【0039】例10(図16) 最後の例10では、指数のアンダーフローがいかに処理
されるかが{7}(尚、図面中では、数字を丸で囲った
表記で示されている)で示されている。指数のアンダー
フローは、さらに1ビット(q)を必要とし、そしても
し真のゼロ状態がT/Cユニットにより検知された場合
はパスNDを介するデータ・フィードバックを取消すこ
とが必要である。
【0040】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0041】(1)乗算器(M)での乗算に先立ってオ
ペランド(OPEI、OPEII)を中間的に記憶する
ための第1の入力レジスタ(MA)及び第2の入力レジ
スタ(MB)と、該乗算器の出力に接続されかつ第1の
加算器(ADD−M)での加算に先立って該乗算の部分
和を中間的に記憶するための加算器出力レジスタ(P
C、PS)と、該加算器の出力に接続されかつ該部分和
の総計(OPD2)を正規化するための第1の正規化器
(NORM−M)とを備える乗算域(MS)と、加算の
ためにオペランド(OPD1、OPD2)を中間的に記
憶するための第3の入力レジスタ(FA)及び第4の入
力レジスタ(FB)と、第2の加算器(ADD−A)で
の該オペランドの加算に先立って双方のオペランドを中
間的に記憶するための第1の加算器入力レジスタ(F
C)及び第2の加算器入力レジスタ(FD)と、該第1
の加算器入力レジスタに接続されかつオペランドの真値
/補数形成のために該第3の入力レジスタと真値/補数
ユニット(T/C)との間に相互接続されるオペランド
(OPD1)整列用の第1の整列器(AL1)と、前記
第4の入力レジスタに接続されるオペランド(OPD
2)整列用の第2の整列器と、該第2の加算器の出力に
接続されかつ最終結果を正規化するための第2の正規化
器(NORM−A)とを備える加算域(AS)とを有す
る浮動小数点プロセッサの配置であって、待ちサイクル
を必要とせずに高速の乗算−加算命令を実行するため
に、前記第1の正規化器の出力を前記第1及び第2の整
列器の入力へ接続するフィードバック・パス(図4のN
D)と、前記第1の整列器と前記真値/補数ユニットと
の間に相互接続される第1の左桁送り器(SL1)と、
前記真値/補数ユニットと前記第1の加算器入力レジス
タとの間に相互接続されるゼロ設定器(Z1)と、前記
第2の整列器と前記第2の加算器入力レジスタに接続さ
れる第2のゼロ設定器(Z2)との間に相互接続される
第2の左桁送り器(SL2)とを設けることを特徴とす
る浮動小数点プロセッサの配置。 (2)上記(1)に記載の浮動小数点プロセッサの配置
において待ちサイクルを必要とせずに高速の乗算−加算
命令を実行する方法であって、1)乗算器(M)の第1
の入力レジスタ(MA)及び第2の入力レジスタ(M
B)へ乗算のためのオペランド(OPDI、OPDI
I)を読取るステップと、2)前記乗算器(M)により
部分和を形成するステップと、3)積の指数計算を実行
し、もしその積が先頭にゼロを有していれば1だけ指数
を減らし、かつ同時に加算のオペランド(OPD1)を
読取るステップと、4)乗算の部分和を加算し、その結
果である中間値をフィードバック・パス(ND)を介し
て整列器(AL1、AL2)へフィードバックするステ
ップと、5)前記積の中間値及び前記加数(OPD1)
の指数同士を比較し、もしそれらが一致しなければ適切
な整列を実行するステップと、6)以下の場合、すなわ
ち、a.もし前記積が真にゼロであれば、前記乗算器か
らフィードバックされるオペランドがゼロに設定され
る、b.もし前記中間的な積の指数が前記加数オペラン
ド(OPD1)の指数よりも小さいか等しいならば、該
積が整列させられる、c.もし前記中間的な積の指数が
前記加数オペランドの指数よりも大きいならば、該加数
が整列させられる、のいずれかの場合が当てはまるか否
かを検査するステップと、7)前記積が先頭にゼロをも
たない場合、該積の保護桁があればそれをゼロに設定す
るステップと、8)前記積が先頭にゼロをもつ場合、双
方のオペランドが桁送り器(SL1、SL2)により1
桁だけ左へ桁送りされ、かつその結果、前記整列器の最
下位桁が保護桁となるステップと、9)双方のオペラン
ドが適切に整列させられたとき、第2の加算器(ADD
−A)により加算されて、高速の乗算−加算命令の最終
的な結果を得るステップとを有する高速の乗算−加算命
令を実行する方法。
【0042】
【発明の効果】上述のような本願の特徴的構成を用いる
ことにより、パイプライン式浮動小数点プロセッサにお
いて、直前の乗算結果を用いる乗算−加算命令シーケン
スから待ちサイクルを省くことが可能となり、処理効率
が向上した。
【図面の簡単な説明】
【図1】従来のパイプライン浮動小数点プロセッサのブ
ロック図を示す。
【図2】図1のパイプライン浮動小数点プロセッサにお
いて、加算命令を処理するパイプラインのステージを表
す概略図である。
【図3】図1のパイプライン浮動小数点プロセッサにお
いて、乗算命令を処理するパイプラインのステージを表
す概略図である。
【図4】図1のパイプライン浮動小数点プロセッサにお
いて、乗算−加算命令シーケンスを処理するパイプライ
ンのステージを表す概略図である。
【図5】本発明により改良されたパイプライン浮動小数
点プロセッサのブロック図である。
【図6】乗算−加算命令シーケンスを処理する、図5の
浮動小数点プロセッサのパイプライン・ステージの概略
図である。
【図7】図5の浮動小数点プロセッサにおける汎用的な
加算及び乗算動作の一例である。
【図8】図5の浮動小数点プロセッサにおける汎用的な
加算及び乗算動作の一例である。
【図9】図5の浮動小数点プロセッサにおける汎用的な
加算及び乗算動作の一例である。
【図10】図5の浮動小数点プロセッサにおける汎用的
な加算及び乗算動作の一例である。
【図11】図5の浮動小数点プロセッサにおける汎用的
な加算及び乗算動作の一例である。
【図12】図5の浮動小数点プロセッサにおける汎用的
な加算及び乗算動作の一例である。
【図13】図5の浮動小数点プロセッサにおける新しい
乗算−加算命令の一例である。
【図14】図5の浮動小数点プロセッサにおける新しい
乗算−加算命令の一例である。
【図15】図5の浮動小数点プロセッサにおける新しい
乗算−加算命令の一例である。
【図16】図5の浮動小数点プロセッサにおける新しい
乗算−加算命令の一例である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ユールゲン・ハース ドイツ72074、チュービンゲン、ダイムレ ルシュトラーセ 6 (72)発明者 ロルフ・ミュラー ドイツ71032、ボーブリンゲン、ハウフシ ュトラーセ 8/1

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】乗算器(M)での乗算に先立ってオペラン
    ド(OPEI、OPEII)を中間的に記憶するための
    第1の入力レジスタ(MA)及び第2の入力レジスタ
    (MB)と、該乗算器の出力に接続されかつ第1の加算
    器(ADD−M)での加算に先立って該乗算の部分和を
    中間的に記憶するための加算器出力レジスタ(PC、P
    S)と、該加算器の出力に接続されかつ該部分和の総計
    (OPD2)を正規化するための第1の正規化器(NO
    RM−M)とを備える乗算域(MS)と、 加算のためにオペランド(OPD1、OPD2)を中間
    的に記憶するための第3の入力レジスタ(FA)及び第
    4の入力レジスタ(FB)と、第2の加算器(ADD−
    A)での該オペランドの加算に先立って双方のオペラン
    ドを中間的に記憶するための第1の加算器入力レジスタ
    (FC)及び第2の加算器入力レジスタ(FD)と、該
    第1の加算器入力レジスタに接続されかつオペランドの
    真値/補数形成のために該第3の入力レジスタと真値/
    補数ユニット(T/C)との間に相互接続されるオペラ
    ンド(OPD1)整列用の第1の整列器(AL1)と、
    前記第4の入力レジスタに接続されるオペランド(OP
    D2)整列用の第2の整列器と、該第2の加算器の出力
    に接続されかつ最終結果を正規化するための第2の正規
    化器(NORM−A)とを備える加算域(AS)とを有
    する浮動小数点プロセッサの配置であって、待ちサイク
    ルを必要とせずに高速の乗算−加算命令を実行するため
    に、 前記第1の正規化器の出力を前記第1及び第2の整列器
    の入力へ接続するフィードバック・パス(図4のND)
    と、 前記第1の整列器と前記真値/補数ユニットとの間に相
    互接続される第1の左桁送り器(SL1)と、 前記真値/補数ユニットと前記第1の加算器入力レジス
    タとの間に相互接続されるゼロ設定器(Z1)と、 前記第2の整列器と前記第2の加算器入力レジスタに接
    続される第2のゼロ設定器(Z2)との間に相互接続さ
    れる第2の左桁送り器(SL2)とを設けることを特徴
    とする浮動小数点プロセッサの配置。
  2. 【請求項2】請求項1に記載の浮動小数点プロセッサの
    配置において待ちサイクルを必要とせずに高速の乗算−
    加算命令を実行する方法であって、 1)乗算器(M)の第1の入力レジスタ(MA)及び第
    2の入力レジスタ(MB)へ乗算のためのオペランド
    (OPDI、OPDII)を読取るステップと、 2)前記乗算器(M)により部分和を形成するステップ
    と、 3)積の指数計算を実行し、もしその積が先頭にゼロを
    有していれば1だけ指数を減らし、かつ同時に加算のオ
    ペランド(OPD1)を読取るステップと、 4)乗算の部分和を加算し、その結果である中間値をフ
    ィードバック・パス(ND)を介して整列器(AL1、
    AL2)へフィードバックするステップと、 5)前記積の中間値及び前記加数(OPD1)の指数同
    士を比較し、もしそれらが一致しなければ適切な整列を
    実行するステップと、 6)以下の場合、すなわち a.もし前記積が真にゼロであれば、前記乗算器からフ
    ィードバックされるオペランドがゼロに設定される b.もし前記中間的な積の指数が前記加数オペランド
    (OPD1)の指数よりも小さいか等しいならば、該積
    が整列させられる c.もし前記中間的な積の指数が前記加数オペランドの
    指数よりも大きいならば、該加数が整列させられる のいずれかの場合が当てはまるか否かを検査するステッ
    プと、 7)前記積が先頭にゼロをもたない場合、該積の保護桁
    があればそれをゼロに設定するステップと、 8)前記積が先頭にゼロをもつ場合、双方のオペランド
    が桁送り器(SL1、SL2)により1桁だけ左へ桁送
    りされ、かつその結果、前記整列器の最下位桁が保護桁
    となるステップと、 9)双方のオペランドが適切に整列させられたとき、第
    2の加算器(ADD−A)により加算されて、高速の乗
    算−加算命令の最終的な結果を得るステップとを有する
    高速の乗算−加算命令を実行する方法。
JP6186921A 1993-09-29 1994-08-09 パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行 Expired - Lifetime JP2729027B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP93115706A EP0645699A1 (en) 1993-09-29 1993-09-29 Fast multiply-add instruction sequence in a pipeline floating-point processor
DE93115706.9 1993-09-29

Publications (2)

Publication Number Publication Date
JPH07114455A true JPH07114455A (ja) 1995-05-02
JP2729027B2 JP2729027B2 (ja) 1998-03-18

Family

ID=8213307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6186921A Expired - Lifetime JP2729027B2 (ja) 1993-09-29 1994-08-09 パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行

Country Status (3)

Country Link
US (1) US5517438A (ja)
EP (1) EP0645699A1 (ja)
JP (1) JP2729027B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012084142A (ja) * 2007-12-07 2012-04-26 Nvidia Corp 融合型積和演算機能ユニット

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668984A (en) * 1995-02-27 1997-09-16 International Business Machines Corporation Variable stage load path and method of operation
WO1996033457A1 (en) * 1995-04-18 1996-10-24 International Business Machines Corporation Block-normalization in multiply-add floating point sequence without wait cycles
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5721892A (en) * 1995-08-31 1998-02-24 Intel Corporation Method and apparatus for performing multiply-subtract operations on packed data
US6058408A (en) * 1995-09-05 2000-05-02 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US5936872A (en) * 1995-09-05 1999-08-10 Intel Corporation Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations
US6237016B1 (en) 1995-09-05 2001-05-22 Intel Corporation Method and apparatus for multiplying and accumulating data samples and complex coefficients
US5983253A (en) * 1995-09-05 1999-11-09 Intel Corporation Computer system for performing complex digital filters
US6470370B2 (en) 1995-09-05 2002-10-22 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US5822459A (en) * 1995-09-28 1998-10-13 Intel Corporation Method for processing wavelet bands
US5787026A (en) * 1995-12-20 1998-07-28 Intel Corporation Method and apparatus for providing memory access in a processor pipeline
US5621674A (en) * 1996-02-15 1997-04-15 Intel Corporation Computer implemented method for compressing 24 bit pixels to 16 bit pixels
US6115730A (en) * 1996-02-28 2000-09-05 Via-Cyrix, Inc. Reloadable floating point unit
US5831885A (en) * 1996-03-04 1998-11-03 Intel Corporation Computer implemented method for performing division emulation
US5880983A (en) * 1996-03-25 1999-03-09 International Business Machines Corporation Floating point split multiply/add system which has infinite precision
US5790445A (en) * 1996-04-30 1998-08-04 International Business Machines Corporation Method and system for performing a high speed floating point add operation
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
US5790444A (en) * 1996-10-08 1998-08-04 International Business Machines Corporation Fast alignment unit for multiply-add floating point unit
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
KR100265355B1 (ko) * 1997-05-22 2000-09-15 김영환 마이크로프로세서에서 2사이클 파이프라인방식으로 부동소수점 데이터를 곱셈 연산하는 장치
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6275838B1 (en) * 1997-12-03 2001-08-14 Intrinsity, Inc. Method and apparatus for an enhanced floating point unit with graphics and integer capabilities
US6115729A (en) * 1998-08-20 2000-09-05 Arm Limited Floating point multiply-accumulate unit
US6256655B1 (en) * 1998-09-14 2001-07-03 Silicon Graphics, Inc. Method and system for performing floating point operations in unnormalized format using a floating point accumulator
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6697832B1 (en) * 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US6912557B1 (en) * 2000-06-09 2005-06-28 Cirrus Logic, Inc. Math coprocessor
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
US7225216B1 (en) * 2002-07-09 2007-05-29 Nvidia Corporation Method and system for a floating point multiply-accumulator
US7290023B2 (en) * 2003-11-20 2007-10-30 International Business Machines Corporation High performance implementation of exponent adjustment in a floating point design
US8190669B1 (en) 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
WO2007094047A2 (ja) * 2006-02-14 2007-08-23 Fujitsu Ltd 演算装置および演算方法
US8037119B1 (en) 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US8051123B1 (en) 2006-12-15 2011-11-01 Nvidia Corporation Multipurpose functional unit with double-precision and filtering operations
US9519458B1 (en) * 2014-04-08 2016-12-13 Cadence Design Systems, Inc. Optimized fused-multiply-add method and system
TWI638313B (zh) 2017-11-07 2018-10-11 瑞昱半導體股份有限公司 浮點數運算電路及方法
JP7115211B2 (ja) * 2018-10-18 2022-08-09 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN111596886B (zh) * 2019-02-21 2026-01-16 超威半导体公司 混合矩阵乘法流水线

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6148037A (ja) * 1984-08-13 1986-03-08 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 浮動小数点演算装置
JPS61282928A (ja) * 1985-06-10 1986-12-13 Hitachi Ltd 浮動小数点演算装置
JPS63255735A (ja) * 1987-04-13 1988-10-24 Oki Electric Ind Co Ltd 浮動小数点乗算器
JPH0283728A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 浮動小数点乗算装置
JPH02306337A (ja) * 1989-05-22 1990-12-19 Koufu Nippon Denki Kk 浮動小数点データ正規化方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01170111A (ja) * 1987-12-25 1989-07-05 Hitachi Ltd ディジタル・シグナル・プロセッサ
US4916651A (en) * 1988-01-29 1990-04-10 Texas Instruments Incorporated Floating point processor architecture
US4969118A (en) * 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5212662A (en) * 1989-01-13 1993-05-18 International Business Machines Corporation Floating point arithmetic two cycle data flow
US5204828A (en) * 1989-02-10 1993-04-20 Intel Corporation Bus apparatus having hold registers for parallel processing in a microprocessor
US5241493A (en) * 1991-12-16 1993-08-31 International Business Machines Corporation Floating point arithmetic unit with size efficient pipelined multiply-add architecture
US5375078A (en) * 1992-12-15 1994-12-20 International Business Machines Corporation Arithmetic unit for performing XY+B operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6148037A (ja) * 1984-08-13 1986-03-08 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 浮動小数点演算装置
JPS61282928A (ja) * 1985-06-10 1986-12-13 Hitachi Ltd 浮動小数点演算装置
JPS63255735A (ja) * 1987-04-13 1988-10-24 Oki Electric Ind Co Ltd 浮動小数点乗算器
JPH0283728A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 浮動小数点乗算装置
JPH02306337A (ja) * 1989-05-22 1990-12-19 Koufu Nippon Denki Kk 浮動小数点データ正規化方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012084142A (ja) * 2007-12-07 2012-04-26 Nvidia Corp 融合型積和演算機能ユニット

Also Published As

Publication number Publication date
EP0645699A1 (en) 1995-03-29
JP2729027B2 (ja) 1998-03-18
US5517438A (en) 1996-05-14

Similar Documents

Publication Publication Date Title
JP2729027B2 (ja) パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行
US6647404B2 (en) Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
US6163791A (en) High accuracy estimates of elementary functions
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US8239440B2 (en) Processor which implements fused and unfused multiply-add instructions in a pipelined manner
US5373461A (en) Data processor a method and apparatus for performing postnormalization in a floating-point execution unit
US5394351A (en) Optimized binary adder and comparator having an implicit constant for an input
US5204829A (en) Interleaving operations in a floating-point numeric processor
US20200371805A1 (en) Floating-point scaling operation
US5943249A (en) Method and apparatus to perform pipelined denormalization of floating-point results
US5999960A (en) Block-normalization in multiply-add floating point sequence without wait cycles
US4975868A (en) Floating-point processor having pre-adjusted exponent bias for multiplication and division
US5241493A (en) Floating point arithmetic unit with size efficient pipelined multiply-add architecture
US8838664B2 (en) Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format
US7720900B2 (en) Fused multiply add split for multiple precision arithmetic
US11068238B2 (en) Multiplier circuit
CN107608655B (zh) 微处理器中执行fma指令的方法和微处理器
Schwarz et al. FPU implementations with denormalized numbers
JPH04227531A (ja) パイプライン浮動小数点プロセッサ
WO2017081435A1 (en) Lane position information for processing of vector
US5583806A (en) Optimized binary adder for concurrently generating effective and intermediate addresses
Quinnell et al. Bridge floating-point fused multiply-add design
Schwarz et al. Hardware implementations of denormalized numbers
Gerwig et al. High performance floating-point unit with 116 bit wide divider
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system