JPH11511579A - 浮動小数点処理装置のためのリザベーションステーション - Google Patents

浮動小数点処理装置のためのリザベーションステーション

Info

Publication number
JPH11511579A
JPH11511579A JP9513395A JP51339597A JPH11511579A JP H11511579 A JPH11511579 A JP H11511579A JP 9513395 A JP9513395 A JP 9513395A JP 51339597 A JP51339597 A JP 51339597A JP H11511579 A JPH11511579 A JP H11511579A
Authority
JP
Japan
Prior art keywords
operand
format
result
bus
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9513395A
Other languages
English (en)
Inventor
ゴダード,マイケル・ディ
ゴベアス,ケルビン・ディ
ブジャノス,ノーマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH11511579A publication Critical patent/JPH11511579A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes

Landscapes

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

Abstract

(57)【要約】 フォーマット変換論理を備えたリザベーションステーションにより、浮動小数点機能ユニットおよび非浮動小数点機能ユニットの両方を組込んだスーパースカラーコンピュータ処理システムの実現が可能になる。浮動小数点リザベーションステーションにおけるオペランドデータを外部フォーマットから内部浮動小数点フォーマットに変換することにより、このような浮動小数点リザベーションステーションを組込んだシステムは(たとえばリオーダバッファ内、オペランドおよび結果バス上ならびに非浮動小数点機能ユニット内の)浮動小数点算術ユニットの外部にある同一の外部フォーマットのオペランドデータの表記を可能にし、さらに浮動小数点算術ユニット内での特定的な内部表記(内部浮動小数点フォーマット)の使用を可能にする。複数の機能ユニットおよび当該浮動小数点リザベーションステーションを組込んだシステムにより、浮動小数点命令および非浮動小数点命令間の並列性を利用するためのスーパースカラー技術の使用が可能になる。なぜなら、オペランドおよび結果は同一の外部フォーマットで外部的に表記されるからである。浮動小数点リザベーションステーション内の特定の論理によりオペランドフォーマットが変換される。

Description

【発明の詳細な説明】 浮動小数点処理装置のためのリザベーションステーション発明の背景 発明の分野 この発明はスーパースカラープロセッサに関し、特に、複数の機能ユニットを 含むスーパースカラープロセッサ内の機能ユニットのためのリザベーションステ ーションに関する。関連技術の説明 技術分野において知られているように、浮動小数点数は指数および仮数として 2進フォーマットで表わされ得る。指数は2などの基数が累乗される、べき数を 表わし、仮数は基数によって乗算される数である。したがって、浮動小数点数に よって表わされる実際の数は、指数によって特定されたべき数まで累乗された基 数に等しい量が乗算された仮数である。このように、どのような特定の数も浮動 小数点表記ではfxBeまたは(f,e)として近似でき、ここでfはn桁の符 号付仮数であり、eはm桁の符号付整数の指数であり、Bは基数系である。多く のコンピュータシステムで用いられている基数系はB=2である2進法であるが 、システムの中には基数系として10進法(B=10)または16進法(B=1 6)を用いるものもある。浮動小数点数は加算、減算、乗算または除算すること ができ、2進浮動小数点数にこれらの算術演算を行なうための、計算のための構 造は技術分野において周知である。 実用的なコンピュータでは、数の仮数部分は無限の「精度」は有さない(すな わち浮動小数点数の仮数に無限の桁数の数字を割当てることはできない)。その 代わりに、浮動小数点数は、通常は固定桁数を有するレジスタにおいて処理され る。このため、加算、減算、乗算または除算される2つの入力オペランドの各々 が正確な表示であっても、演算結果はレジスタの固定桁数よりもより有効桁の多 いものとなるだろう。この結果、精度の低い(しかし依然として正確である)結 果の表示を、正規化および丸め演算の処理によってレジスタの固定桁数の中に詰 め込む必要がある。 正規化とは、同じ値を有するすべての浮動小数点数が同じ表示を有することを 保証する処理である。典型的に、2進浮動小数点数の正規化は、最上位ビットが 1になるまで仮数のビットを左にシフトすることにより行なわれる。仮数と指数 のべき数まで累乗された基数との積が一定になるよう指数が減少される。正規化 された数の仮数における最上位ビットは常に1であるため、(実際は、精度をさ らに1ビット分上げるためれに用いられる1ビット位置を有効に開けるように) 浮動小数点表示はこのビットを暗黙に表わすことが多い。明示的または暗黙の最 上位ビットを含むにせよ含まないにせよ、これらの有効ビットはともに有効数字 として知られている。正規化処理は、この有効数字内で表わされる有効ビット数 を最大にする。浮動小数点数の丸め演算とは、数の精度を下げてその数の表示を より小さな数の有効ビットに適合させるようにする処理のことである。浮動小数 点数表示には4つの典型的な丸め演算モードがあり、すなわちこれらは切上げ、 切捨て、四捨五入および打切りである(Dewar,Microprocessors: A Programmer 's View,McGraw-Hill Publishing Co.,New York,1990,の議論に関する pp.1 40-143を参照)。 また指数の桁数が有限であることにより、表わされる得る数の大きさには制限 がある。これらの制限を超える算術結果はアンダフローおよびオーバフローとし て知られている。算術オーバフローおよびアンダフローには数の2つの範囲がそ れぞれ対応する。算術演算の結果が、表わされ得る最も大きな正の値より大きい かまたは表わされ得る最も大きな負の値未満であれば、算術オーバフローが起こ る。この一方で、算術演算の結果が小さすぎて表わせない場合には、正または負 の算術アンダフローのいずれかが起こっている。 典型的には浮動小数点指数はバイアスによって表わされる(すなわちバイアス された指数は真の指数値とバイアス定数との和に等しい)。バイアス定数は典型 的には2n-1−1、ただしnは指数ビット数であるが、バイアス定数によりバイア スされた指数が符号なし整数として表わされる。この符号なし表示により2つの 浮動小数点数の指数がビットごとに左から右に比較できるようになり、比較論理 が簡単になる。最初に異なるビット位置は数を順序づける役割を果たし、真の指 数はバイアスされた指数からバイアスを減算することにより決定できる。 表わされ得る(最大から最小までの)数の精度および範囲、記憶要件および算 術結果の計算に要するサイクルの間での種々のトレードオフを表わす一連の浮動 小数点フォーマットが存在する。一般に、長いフォーマットは高い記憶要件を要 し、精度および利用できる範囲の増加は(主に乗算および除算演算である)算術 演算の速度低下をもたらす。 ANSI IEEE規格754は、単精度、倍精度および拡張倍精度を含むい くつかの浮動小数点フォーマットを規定する。図1aを参照して、32ビットの 単精度浮動小数点数のフォーマットは、1ビットの符号フィールド「S」と、8 ビットのバイアスされた指数フィールド「exp」と、(明示的に表わされては いないが暗黙のうちに2進小数点11の1つだけ左にあると想定される)いわゆ る「隠れ」ビットと、23ビットの「有効数字」とに分割される。 次に図1bを参照して、倍精度浮動小数点数のフォーマットではバイアスされ た指数フィールドのサイズが11ビットに、かつ有効数字のサイズが52ビット に増大される。隠れビットは、1であると想定されるが倍精度フォーマットにお いては暗黙のうちに設けられる(暗黙に想定される2進小数点12の1つだけ左 )。 次に図1cを参照して、拡張倍精度(以下拡張精度と呼ぶ)の浮動小数点フォ ーマットの最小要件が示されている。ANSI IEEE規格754によると、 少なくとも64ビットの有効数字および15ビットのバイアスされた指数が与え られなければならない。単精度フォーマットおよび倍精度フォーマットとは対照 的に、拡張精度浮動小数点フォーマットは有効数字内に暗黙の2進小数点13を 設け、2進小数点の左の桁が明示的に表わされる。「隠れ」ビットは存在せず、 その代わり有効数字の(図1cに「h」として示される)最上位ビットが拡張精 度フォーマットにおいては明示される。IEEE規格では中間結果の計算のため の内部フォーマットとして考えられているが、フォーマットは実際には、外部フ ォーマット(すなわちメモリに表わされかつプログラマがアクセス可能である) として、インテル コーポレイション(Intel Croporation)によるi8038 7(商標)を含む多くの浮動小数点ユニットによって支持されている。 計算処理能力を最大にするために、複数の機能ユニットを用いて命令レベルの 並列性を可能にするよう多くのスーパースカラー技術が提案されている。命令の 並列性とは、複数の機能ユニットを含むプロセッサにおいて1つ以上の命令を同 時に(並行して)実行することであると説明できよう。パイプライン化技術は単 一の機能ユニット内での命令の並列性の利用にかかわり、スーパースカラー技術 は2つ以上の機能ユニットにわたって命令の並列性を利用することにかかわる。 スーパースカラー技術によって利用される命令の並列性は、スーパースカラー技 術が、別々のオペランドを用いた同一の命令だけではなく、異なった命令を並行 して実行できるという点で、データの並列性と対照的であろう。スーパースカラ ープロセッサ設計の技術分野において公知であるこれらの技術には、命令のアウ トオブオーダ(追越し)発行、命令のアウトオブオーダ完了および命令の投機的 実行が含まれる。 命令のアウトオブオーダ発行は、実行コード内の命令の実際の順とあまり関係 なく機能ユニットに命令を発行することに関する。アウトオプオーダ発行を利用 するスーパースカラープロセッサは、その命令ディスパッチシーケンスを作成す るときには、所与の命令の出力(結果)とその後の命令の入力(オペランド)と の間の依存関係によって制約を受けるだけでよい。一方、アウトオブオーダ完了 はプログラムシーケンスにおいてそれより先にある命令を完了する前に、所与の 命令を完了する(たとえばその結果を記憶する)ことを可能にする技術である。 最後に、投機的実行は、(たとえば分岐の)予測結果に基づいて命令のシーケン スを実行することに関する。投機的実行(すなわち分岐が正確に予測されている という仮定のもとでの実行)は、分岐状態が実際に評価されるのを待つことなく プロセッサが命令を実行できるようにする。分岐が正確に予測されることが多く 、かつ不正確な予測結果を訂正する適切な有効な方法が利用できると仮定すれば 、命令の並列性(すなわち並行実行に利用できる命令数)は典型的には投機的実 行によって増加するだろう(Johnson,Superscalar Processor Design,Prentic e-Hall,Inc.,New Jersey,1991の分析に関するpp.63-77を参照)。 これらの技術の各々に関連した命令の並列性を利用するための構成設計は、さ まざまな論文および文献において提案されている。議論に関してはJohnson の1 27頁から146頁(アウトオブオーダ発行)、103頁から126頁(アウト オブオーダ完了および依存関係)ならびに87頁から102頁(分岐予測誤りの リカバリ)を参照されたい。命令の並列性を利用するためのアーキテクチャ上の 試みは、リザベーションステーションおよびリオーダバッファである。本質的に はリザベーションステーションは、複数の機能ユニットを含むプロセッサ内の所 与の機能ユニットのための命令およびオペランドバッファであるが、命令および オペランドのバッファに加えて、リザベーションステーションは他の機能ユニッ トから結果を直接受取るための手段を提供する。このように、まだオペランドが 利用できない命令であっても、そのオペランドがレジスタに記憶されてその後レ ジスタから取出されるのを待つことなく、所与の機能ユニットに関するリザベー ションステーションにディスパッチすることができる。IBMジャーナル(IBM Journal)1967年1月号第11巻に記載のトマスロ(Tomasulo)による「複 数の実行ユニットを利用するための効率的アルゴリズム」(An Efficient Algor ithm for Exploiting Multiple Execution Units)には、各々がリザベーション ステーションを有する複数の機能ユニットを含む浮動小数点プロセッサの実現例 が開示されている。トマスロは「機能ユニット」ではなく「実行ユニット」とい う用語を用いているが、この状況では概念は類似する。 リオーダバッファは複数の機能ユニットを含むプロセッサにおけるレジスタの 投機的(すなわちアウトオブオーダ)状態を維持する、内容アドレス可能記憶装 置である。各命令がデコードされると、リオーダバッファエントリが命令の結果 を記憶するよう割当てられ、結果を識別するよう一時的な識別子すなわちタグが 作成される。通常の命令シーケンスでは所与のレジスタは何度も書込まれ得るた め、命令シーケンスの種々の点におけるレジスタの状態に対応して多数のリオー ダバッファエントリが割当てられることとなる。オペランドとしてレジスタ値を 要する命令がディスパッチされると、最も最近割当てられたリオーダバッファエ ントリが参照されるか、または必要なレジスタ場所に対応するリオーダバッファ エントリがない場合には、レジスタファイルに記憶された値が用いられる。対応 するリオーダバッファエントリが割当てられていると仮定すると、オペランド値 を計算する命令が完了している場合には所与の命令に必要なオペランド値がリオ ーダバッファによって与えられ、そうでなければタグが与えられ、結果が利用で きるようになれば命令がそれを認識できるようにする。リオーダバッファを組込 んだスーパースカラープロセッサ設計はリオーダバッファエントリをリタイアす る(すなわちエントリ値をレジスタファイルに記憶するかまたは必要でなくなっ たエントリを破棄する)ための機構をさらに提供する。 リオーダバッファの実現によりレジスタリネーミング、分岐予測誤りの例外処 理および命令のアウトオブオーダ完了を含むさまざまなスーパースカラー技術が 容易になる。リザベーションステーションおよびリオーダバッファを含むスーパ ースカラー構成により、リオーダバッファからオペランドを受取りかつリオーダ バッファにそれらの結果を記憶する機能ユニット間での命令の並列性の利用がさ らに容易になる。 浮動小数点ユニットは典型的に、装置の内部にある専用浮動小数点レジスタを 有し、かつ拡張精度浮動小数点数に関するIEEE754の最小要件に一致する かまたはそれをわずかに超える内部浮動小数点フォーマットを用いる、コプロセ ッサとして実現されている。内部浮動小数点レジスタはレジスタスタック(たと えばインテル社のi486(商標)Microprocessor Family Programmer's Refer ence Manual のpp.15-1 から15-2までを参照)または一連のアキュムレータ(た とえばタムラ他(Tamura et al.)の米国特許第5,128,888号の「多数 のアキュムレータを有する算術ユニット」(“Arithmetic Unit Having Multipl e Accumulators”)を参照)として実現されることが多い。このような構成はオ ペランドが内部浮動小数点レジスタにロードされたときに(たとえば単精度、倍 精度および拡張精度の浮動小数点である)オペランドデータを外部フォーマット から内部フォーマットに変換する。これらのレジスタに記憶されたデータで演算 するその後の浮動小数点命令および(内部フォーマットで表わされる)中間結果 は内部レジスタに書き戻される。さらに、結果は外部フォーマットに変換し直さ れ、浮動小数点ユニットの外部にある汎用レジスタに送られる。典型的に、(た とえば分岐テスト、メモリへの記憶およびI/Oなどの)非浮動小数点演算は汎 用レジスタに外部フォーマットで記憶された浮動小数点値で行なう必要がある。 複数の機能ユニット、リザベーションステーションおよびリオーダバッファを 含む浮動小数点ユニットの設計はJohnson による文献の44頁から45頁に示さ れている。図2は整数ユニット22を有するこのような浮動小数点ユニット21 を組込んだプロセッサのブロック図である。プロセッサは1対のレジスタファイ ル(23および24)と1対のリオーダバッファ(25および26)とを含み、 第1のレジスタファイル/リオーダバッファの組合せは整数装置のためのもので あり、第2の組合せは浮動小数点ユニットのためのものである。図2に示される プロセッサの設計は、独立した整数および浮動小数点レジスタ(およびリオーダ バッファ)を維持するため、1つの(整数または小数点)演算装置内で計算され かつ他の演算装置におけるオペランドとして必要とされる結果は、その後の計算 に用いられるよう第2の装置に伝達される必要がある。発明の概要 この発明の利点は、内部フォーマットでデータを表わす浮動小数点機能ユニッ トと外部フォーマットでデータを表わす他の機能ユニットとを統合することであ る。浮動小数点ユニットおよび他の機能ユニットの両方によって用いられたオペ ランドおよび発生した結果に関する単一のデータ記憶装置の使用を可能にするこ とにより、この発明は浮動小数点機能ユニットおよび他の機能ユニットによって 実行される命令間での並列性を利用するためのスーパースカラー技術の使用を可 能にする。 この発明の別の利点は、整数の算術に浮動小数点算術パイプラインを使用でき ることである。スーパースカラー技術は浮動小数点機能ユニットによって実行さ れた整数命令および他の機能ユニットによって実行された命令間での並列性を利 用するために用いられ得る。 これらおよび他の利点はこの発明において実現され、この発明は1つの実施例 においては、共通演算コードバス、共通オペランドバスおよび共通結果バスに結 合された複数の機能ユニットを有するプロセッサ内の浮動小数点機能ユニットの ためのリザベーションステーションである。浮動小数点機能ユニットは算術ユニ ットを含む。リザベーションステーションは、オペランドデータレジスタ、バス インターフェイス論理および第1のフォーマット変換論理を備えた実行待命令バ ッファを含む。バスインターフェイス論理は一方では共通オペランドバスと共通 結果バスとの間に結合され、他方ではオペランドデータレジスタに結合されて、 実行待命令バッファのオペランドデータレジスタにオペランドデータを選択的に 受取る。第1のフォーマット変換論理はオペランドデータレジスタと算術ユニッ トのオペランド入力との間に結合され、外部データフォーマットの組のうちの1 つから内部データフォーマットの組のうちの1つに選択的に変換されたオペラン ドデータを算術ユニットに供給する。 別の実施例において、リザベーションステーションは、算術ユニットの結果出 力と共通結果バスとの間に結合された第2のフォーマット変換論理をさらに含む 。第2のフォーマット変換論理は内部データフォーマットの組のうちの1つにお いて結果データ値を受取り、その結果データ値を外部データフォーマットの組の うちの1つに変換し、変換された結果データ値を共通結果バスに与える。 さらに別の実施例において、リザベーションステーションは、高速転送データ 経路と、実行待命令バッファにおいてバッファされた命令に必要なオペランドと 算術ユニットからの結果値との一致を検出するための手段とをさらに含む。高速 転送データ経路は算術ユニットの結果出力と算術ユニットのオペランド入力との 間に結合され、算術ユニットに算術結果を選択的に与える。検出手段は実行待命 令バッファと高速転送データ経路との間に結合される。一致を検出することによ り、検出手段が高速転送データ経路を選択的に能動化する。 さらに他の実施例では、浮動小数点機能ユニットは乗算および加算パイプライ ンなどの複数の算術ユニットを含む。さらなる実施例において、第1のフォーマ ット変換論理は16、32および64ビットの整数外部フォーマットからの整数 オペランドを選択的に変換して、内部拡張精度フォーマットの通常のアライメン トにおける正規化されていない浮動小数点値として整数オペランドをエンコード する。整数オペランドを選択的に変換することにより浮動小数点機能ユニットの 算術ユニットが整数オペランドで演算できるようになる。 さらなる実施例において、リザベーションステーションの第1のフォーマット 変換論理は内部フォーマットオペランドを選択的に送り、第2のフォーマット変 換論理は内部フォーマット結果を選択的に送り、浮動小数点機能ユニットの外部 の浮動小数点レジスタ構成を表わせるようにする。たとえば、外部的に表わされ た浮動小数点レジスタ構成はx86浮動小数点スタックであり得、第1および第 2のフォーマット変換論理は、内部フォーマットおよび外部フォーマットオペラ ンドが浮動小数点機能ユニットの外部のレジスタファイル/リオーダバッファに 表わされるようにする。 この発明のさらに別の実施例は複数の機能ユニットを有するスーパースカラー デジタルコンピュータシステムである。コンピュータシステムは演算コードおよ びオペランドポインタを与えるための命令デコーダと、第1のデータフォーマッ トでデータを記憶しそれを取出すためのデータ記憶装置と、第1のデータフォー マットで機能ユニットにオペランドを与えるためのオペランドバスと、第1のデ ータフォーマットで機能ユニットからの結果を通信するための結果バスと、命令 デコーダから受取られた演算コードに応答してオペランドで演算を行なうための 第1および第2の機能ユニットとを含む。第1の機能ユニットは第1のタイプの 演算コードに応答して演算を行ない、第1のリザベーションステーションと、第 2のデータフォーマットのオペランドに算術演算を行ない第2のデータフォーマ ットで結果を与えるための算術ユニットと、結果を第2のデータフォーマットか ら第1のデータフォーマットに変換するためのデータフォーマット変換器とを含 む。第1のリザベーションステーションは、第1のオペランドバッファと、結果 バスから結果を選択的に受取るためのバスインターフェイス論理と、オペランド データを第1のデータフォーマットから第2のデータフォーマットに変換するた めのデータフォーマット変換器とを含む。第2の機能ユニットは第2のタイプの 演算コードに応答して演算を行ない、第2のリザベーションステーションと実行 装置とを含む。第2のリザベーションステーションはオペランドバッファと、結 果バスから結果を選択的に受取るためのバスインターフェイス論理とを含む。図面の簡単な説明 この発明ならびにその多くの目的、特徴および利点は添付の図面を参照すると 当業者にはよりよく理解され明らかとなるであろう。図面において、 図1aは、単精度浮動小数点数のフォーマットを示す図であり、 図1bは、倍精度浮動小数点数のフォーマットを示す図であり、 図1cは、拡張精度浮動小数点数のフォーマットを示す図であり、 図2は、リザベーションステーションおよびリオーダバッファを組込んだ先行 技術のスーパースカラープロセッサ設計の概略ブロック図であり、 図3は、この発明の教示に従って構成されたリザベーションステーションを組 込んだ浮動小数点ユニットの概略ブロック図であり、 図4は、この発明によって処理された浮動小数点数の内部拡張精度フォーマッ トを示す図であり、 図5は、この発明の教示に従って構成されたリザベーションステーションの概 略ブロック図であり、 図6は、この発明の教示に従って構成されたフォーマット変換論理の概略ブロ ック図であり、 図7は、この発明の教示に従って構成されたアドレス可能浮動小数点定数記憶 装置の概略ブロック図であり、 図8は、この発明の教示に従って構成された結果フォーマット変換論理の概略 ブロック図である。発明の詳細な説明 図3はスーパースカラープロセッサのための浮動小数点算術ユニットFPU3 00を示す。FPU300はリザベーションステーションFRES310と、制 御論理FCNTL362と、2つの算術ユニット(加算パイプラインFADD3 30および乗算パイプラインFMUL341)と、丸め演算装置FRND350 とを含む。さらに、FPU300は3つの内部バス(内部Aオペランドバス37 2、内部Bオペランドバス374および丸め演算バス376)と、プリディテク ト装置FPDET320とを含む。 リザベーションステーションは、複数の機能ユニットを含むプロセッサアーキ テクチャ内の所与の機能ユニットへの命令および/またはデータバッファとして 役割を果たすインターフェイスである。リザベーションステーションを組込んだ プロセッサは所与の機能ユニットからの結果を、結果を待機している機能ユニッ トのリザベーションステーションに転送して、オペランドが利用できるようにな る前に命令が機能ユニットにディスパッチされるようにするプロトコルを実現す る。ここに開示されるリザベーションステーションは、オペランドおよび結果タ グを用いることによりこのプロトコルを実現し、結果バス上の値にポストされた タグと所与のリザベーションステーションによって保持されたオペランドタグと が一致すると、結果バス上の値が、未決演算に必要なオペランドとしてリザベー ションステーションの中に導かれる必要があることを示す。しかしながら、結果 とオペランド位置とを照合するための他のな手段も可能であることを理解された い。 図3は付加的な機能ユニット303を示す。機能ユニット303は所与のスー パースカラープロセッサ構成に含まれ得る(たとえば整数、分岐、ロード/記憶 装置などの)任意のタイプの機能ユニットを表わす。付加的な機能ユニット30 3はまた、FPU300に類似した付加的な浮動小数点ユニットを表わす。付加 的な機能ユニット303にはリザベーションステーション303.1および実行 装置303.2を組込まれている。機能ユニット303は命令デコーディング論 理IDECODE302、レジスタファイル/リオーダバッファRFILE/R OB301および他の機能ユニットと、FPU300およびそのリザベーション ステーションFRES312に関して先に説明した態様で相互作用する。典型的 に、スーパースカラープロセッサアーキテクチャにはいくつかの当該装置が含ま れ得る。 浮動小数点リザベーションステーションFRES310は外部バスのグループ 380を介してFPUの外部にあるソースから演算コード、オペランド、タグお よび結果を受取る。さまざまな周知のバス設計が適するが、非浮動小数点命令の ディスパッチおよび実行を含む全体的な命令帯域を最適にするために、各バスタ イプ(すなわち演算コード、オペランド、オペランドタグ、結果、結果タグおよ び宛先タグバス)を複数例用いてもよい。さらに、固定および浮動小数点機能ユ ニットの統合を最適にするために多重オペランドバスを介して浮動小数点オペラ ンドの全幅がFRES310に送られてもよい。多数の演算コード、オペランド 、結果およびタグバスの使用は、引用によって援用される、1994年4月26 日に出願されたホワイト他(White et al.)らの発明者による「混合整数/浮動 小 数点固定ピッチコア」(“Mixed Integer/Floating Polnt Fixed Pitch Core” )と題された同時係属中の特許出願連続番号第08/233,563号〈代理人 の事件番号M−2518−IP〉に、より詳細に記載されている。しかしながら 、明瞭化のためにこの明細書では単一論理バスが仮定される。 次に図3を参照して、浮動小数点ユニット300の動作を説明する。各浮動小 数点命令に関する演算コードは、演算コードバス381を介して命令デコードユ ニットIDECODE302からFPU300のFRES装置310にディスパ ッチされる。IDECODE302はさらにオペランドポインタを発生し、線3 91を介してこれらのポインタをRFILE/ROB301に与える。適切な命 令デコードユニットは、引用によって援用される1993年10月29日に出願 されたウィット他(Witt et al.)らの発明者による「スーパースカラー命令デ コーダ」(“Superscalar Instruction Decoder”)と題された同時係属中の特 許出願連続番号第08/146,383〈代理人の事件番号M−2280〉に開 示されている。オペランドポインタは、ディスパッチされた命令によってオペラ ンドとして参照される、RFILE/ROB301内のレジスタ場所を特定する 役割を果たす。所与の浮動小数点演算に関するオペランドデータおよび/または タグ(すなわちディスパッチされた演算コードによって参照されるRFILE/ ROB301の場所に関するオペランドおよび/またはオペランドタグ)は、外 部オペランドおよびタグバスを介してFPU300のFRES装置310に、R FILE/ROB301によって与えられる。図3は外部AおよびBオペランド バス(388および387)ならびにAおよびBオペランドタグバス(386お よび385)を示す。オペランドデータが命令ディスパッチに利用できれば(た とえばデータがRFILE/ROBにあれば)、データは適切な外部オペランド バスの線(すなわちAオペランドについては外部Aオペランドバス388であり 、Bオペランドについては外部Bオペランドバス387)を介してRFILE/ ROB301からFRES310に送られる。これに代えてオペランドがまだ利 用できなければ(すなわち実行待命令の結果を表わしていれば)オペランドタグ はRFILE/ROB301によってFRES310に与えられる。図3の実施 例では、このタグは適切なオペランドタグバス(386または385)を介して 与 えられる。代替的な実施例(図示せず)では、オペランドタグは(388および 387に類似する)外部AおよびBオペランドバスの線に与えられ、オペランド タグバスは除外される。いずれの実施例でも、タグはFRES310が後にオペ ランドとして実行待演算の結果を受取ることができるようにする。AおよびBオ ペランドに関しては、一方のオペランドが利用でき、よってそれを適切な外部オ ペランドバス(388または387)に送ることができるのと同時に、他方のオ ペランドは未決演算の結果を表わし、その代わりにオペランドタグを適切なオペ ランドタグバス(386または385)を介してディスパッチてきるという点で 、両者は互いに独立している。 FRES310は、宛先タグバス382を介して各浮動小数点命令に関する宛 先タグをさらに受取る。RFILE/ROB301によって宛先タグバス382 に駆動されるこの宛先タグは後に、FRES310によって結果タグとして結果 タグバス384にポストされる。FRES310は対応する浮動小数点結果を結 果バス383にさらに駆動する。FRES310は、所与の命令がFPU300 にディスパッチされたときに実行待であった(したがってそれらの結果は利用で きなかった)命令の結果を結果バス383を介して受取る。 開示したスーパースカラープロセッサアーキテクチャ内の機能ユニット(すな わちFPU300および303などの付加的な機能ユニット)の各々は、外部バ スのグループ380上に結果値および特定結果タグをポストする。このような結 果タグは結果値として同じバスサイクル中にか、またはバス調停方式がそのよう に支持するのであれば初期のバスサイクル中にポストされ得る。結果タグバス3 84の結果タグと、FRESレジスタに受取られて一時的に記憶されている未決 浮動小数点命令に関するオペランドタグとを比較することにより、FRES31 0はこれらの未決命令のオペランドに対応する結果を認識する。FRES310 はタグが一致すると結果バス383に表われる値を受入れる。 FRES310は2つの状態が一致するまで各浮動小数点命令とその関連した オペランドとをバッファする。まず、必要な浮動小数点算術ユニットを利用でき るようにする必要があり、次にAおよびBオペランドの両方を利用可能な状態に する必要がある(すなわちオペランドタグ参照があればそれらを解決する必要が ある)。FPU300は少なくとも1つの算術ユニットを含む。ここで開示する 実施例では、FPU300には2つの算術ユニット、すなわち加算パイプライン FADD330および乗算パイプラインFMUL341が含まれる。代替的な複 数の算術ユニットも可能である。たとえば、除算、平方根、三角関数または超越 関数用に構成された算術ユニットが含まれてもよく、正規化または浮動小数点フ ォーマット変換のための特定的な装置が組込まれてもよく、さらに所与の算術ユ ニットを複数個設けてもよい。また、複数の浮動小数点ユニット(たとえばFP U300および付加的な機能ユニット303)を組込んだスーパースカラープロ セッサにおいて、個々の浮動小数点ユニットが、類似したまたは異なった複数の 算術ユニットを組込んでもよい。 図3に示される浮動小数点乗算パイプライン341は任意の適切な設計を有す る。パイプライン式浮動小数点乗算器は技術分野においては周知であり、多くの 文献および論文に記載されている。たとえば HwangおよびBriggsのComputer Arc hitecture and Parallel Processing,McGraw-Hill Book Company,New York,1 984,pp.170-174 を参照されたい。 浮動小数点加算パイプラインFADD330は浮動小数点加算を行ない、かつ 共有されたオペランド正規化論理を与えるよう構成される。適切に構成された加 算器および正規化論理は技術分野において周知である。浮動小数点加算を行ない 、かつ正規化されていないオペランドを浮動小数点算術ユニットに与える前に正 規化するための正規化論理を与えるよう構成された適切な加算パイプラインは、 引用によって援用されるガプタ他(Gupta et al.)の「パイプライン型浮動小数 点処理ユニットの正規化」(“Normalizing Pipelined Floating Point Process ing Unit)の米国特許第5,058,048号に記載されている。 浮動小数点値は85ビットの拡張精度フォーマットで内部的に表わされるが、 他の内部フォーマットを用いてもよい。図4は内部拡張精度フォーマットを示し 、このフォーマットでは、図1a、図1bおよび図1cに示される単精度、倍精 度および拡張精度フォーマットと比較すると、指数および有効数字を表わすため のビットが追加されている。17ビットのバイアス指数、67ビットの有効数字 および1ビットの符号フィールドが設けられている。有効数字内には、明示的な 隠 れビット(「h」)が設けられ、正規化された浮動小数点値に関する2進小数点 は隠れビットと63ビット部分との間にあるようになっている。(ガードビット 「g」、丸めビット「r」およびスティッキービット「st」の)3つの付加的 なビットにより浮動小数点結果が(FRND350によって)64ビットの外部 拡張精度有効数字に正確に丸め演算され、すなわち内部フォーマットが無限精度 を有するかのごとく丸め演算される。 AおよびBオペランドはFRES310によって(たとえば図1a、図1bお よび図1cの単精度、倍精度および拡張精度フォーマットである)外部浮動小数 点フォーマットならびに(たとえば16ビット、30ビット、および64ビット の整数フォーマットである)整数フォーマットから変換され、内部拡張精度フォ ーマットにおいて内部AおよびBオペランドバス372および374に駆動され る。浮動小数点算術ユニット(FADD330およびFMUL341)の各々は 、バス372および374からその内部拡張精度オペランドを受取り、内部拡張 精度結果を計算し、これを丸め演算バス376に駆動する。 図3に開示される実施例では、内部AおよびBオペランドバス372および3 74には表わされておらず、よって算術ユニット(FADD330およびFMU L341)またはFPDET320には与えられない。その代わりに各オペラン ドの符号ビットが1対のライン371を介してFRES310によってFCNT L362に与えられる。FCNTL362は算術結果の符号を決定し、例示的に 示される制御バス378を介してその結果の符号をFRND350に直接与える か、信号はバス上のすべての装置に与えられる必要はない。符号ビットがFRN D350に直接与えられるため、丸め演算バス376は符号ビットをさらに除外 する。 丸め演算装置FRND350は丸め演算バス376からこれらの結果を受取り 、ANSI IEEE規格754によって特定された4つの丸め演算モードのい ずれかに従って結果を丸め演算する。開示される実施例では、(一般には比較的 静的である)選択された特定的な丸め演算モードがFCNTL362によってラ イン378に駆動された制御信号によって示される。FPU300(図示せず) の外部の丸め演算制御レジスタの状態が変化すると、IDECODE302がそ の 変化に対して浮動小数点命令の発行を直列にする必要がある。しかしながら、た とえば超越関数に関するマイクロコード化された命令シーケンスには丸め演算モ ードにおける連続したいくつかの変化が必要であるため、丸め演算モードは各マ イクロコード命令と関連し、ライン371を介してFRES310によってFC NTL362に与えられる。 FRND350は、所望の結果フォーマットおよび選択された丸め演算モード に従って丸め演算された結果をFRES310に与える。結果フォーマットは単 精度、倍精度および拡張精度浮動小数点ならびに(たとえば16、32および6 4ビット整数の)さまざまな整数フォーマットを含み得る。丸め演算された結果 をFRND350によって与えると同時に、浮動小数点制御装置FCNTL36 2は対応する宛先タグをFRES310に与える。FCNTL362はFRES 310から受取られた宛先タグ(各浮動小数点命令に対し1つの宛先タグ)を記 憶し続け、FPU内の算術および非算術ユニット(すなわちFADD330、F MUL341、FPDET320およびFRND350)の内部段に対応する一 連のラッチを通してこれらの宛先タグを伝搬する。このように、ラッチを通るタ グの伝搬は、装置のさまざまな段におけるオペランドの処理に対応する。 FRES310はFRND350によって与えられた丸め演算された浮動小数 点結果を外部フォーマットに整列させる。FRES310は外部フォーマットの 浮動小数点(または整数)結果を結果バス383に駆動し、それと同時に、対応 する結果タグを結果タグバス384に駆動する。FRES310は受取られた宛 先タグと次の浮動小数点命令に関するオペランドタグとをさらに比較する。この ようにして、次の浮動小数点命令に関するオペランドでもある浮動小数点結果値 が特定できる。このような場合、FRES310はFRND350から受取られ た内部フォーマットの浮動小数点結果を内部オペランドバス(372または37 4)の一方に高速転送する。 FRES310によって結果バス383に駆動された浮動小数点結果値はRF ILE/ROB301に受取られ、結果タグバス384のタグ値に従ったRFI LE/ROB場所に記憶される。さらに、結果タグバス384の結果タグが機能 ユニットのリザベーションステーションの命令に関するオペランドタグに対応す る場合には、結果バス383に書込まれた浮動小数点結果値は、付加的な機能ユ ニット303などの他の機能ユニットのリザベーションステーションに受入れら れる。後の命令に関するオペランドに対応する浮動小数点結果は一般に、先に特 定された(かつ以下により詳細に説明する)高速転送データ経路を介して送られ るが、場合によっては、FRES310によって結果バス383に書込まれた値 が結果バス383からのオペランドとして浮動小数点リザベーションステーショ ン自体(FRES310)によって受入れられてもよい。このように、1つの浮 動小数点命令の結果はまだ未決定のオペランドタグとしてAおよびBオペランド の両方が表わされる、後の浮動小数点命令に関するオペランドとしてFRES3 10の中に戻され得る。複数の小数点命令をバッファするこの発明の実施例はま た、結果バス383を介してFRES310の中に浮動小数点結果を戻し得る。 FRND350は、丸め演算演算を行なうことなく、また、結果をFRES3 10に駆動することなく、内部AまたはBオペランドバス(372または374 )のいずれかに、丸め演算バス376に表われる内部拡張精度フォーマットの浮 動小数点値を駆動し得る。このような演算モードは、算術ユニットを複数回通る こと、または複数の算術ユニットを用いて支持される命令のために用いられるが 、この命令にはたとえば、FADD330に設けられた正規化回路構成を通して 非正規化オペランドの各々をまず通過させ、その後、正規化されたオペランドを FMUL341に与えて乗算することにより実現される、非正規化浮動小数点数 の乗算かある。非正規化値としても知られているまだ正規化されていない値は、 非正規化浮動小数点値である。丸め演算装置に関する特定的な演算モードは、制 御バス378を介してFRND350によって受取られたFCNTL362から の制御信号によって選択される。 プリディテクト装置FPDET320は内部AおよびBオペランドバス372 および374から内部拡張精度フォーマットのAおよびBオペランドをさらに受 取る。FPDET320は0オペランド、無限オペランド、非数(NaN)オペ ランドおよび非正規化オペランドとしてこのような状態を検出する。開示される 実施例では、(Aexponent>Bexponent)および(Bexponent>Aexponent)な どの付加的な状態がFADD330で検出されるが、代替的な実施例はこのよう な状態に関するFPDET320検出論理を組込んでもよい。検出された状態信 号は制御バス378を介して制御論理FCNTL362に与えられる。さらに、 FPDET320は算術結果を強制的に内部拡張精度フォーマットで丸め演算バ ス376に出力してもよい。算術ユニットをバイパスする論理を有するプリディ テクト装置320の設計は、本件と同じ日に出願され、かつ引用によって援用さ れる、ゴダード他(“Goddard,et al.”)らの発明者による「強いられた算術結 果を有する浮動小数点ユニット」(“Floating Point Unit with Forced Arithm etic Results”)と題された同時係属中の特許出願連続番号第xx/xxx,x xx〈代理人の事件番号M−2579〉に記載されている。 次に図5を参照して、FRES310は浮動小数点命令および関連データを待 ち行列に入れるためのバッファ511と、タグ比較論理513と、高速転送タグ 比較論理531と、オペランド選択論理512と、オペランドフォーマット変換 論理514および515と、浮動小数点定数記憶装置516と、結果フォーマッ ト変換論理532と、リザベーションステーション制御論理533とを含む。浮 動小数点命令およびその関連データ(すなわちAおよびBオペランド、宛先タグ ならびにAおよびBオペランドタグ)は外部バスのグループ380を介してFR ES310によって受取られ、バッファ511で待ち行列に入れられる。 図5の実施例では、バッファ511は単一エントリバッファとして編成される が、他のバッファ設計も可能である。たとえば、バッファ511は多重エントリ FIFOバッファかまたは何らかの他の優先順位付待ち行列順序付けを実現する ための論理を備えた多重エントリバッファとして実現されてもよい。適切なバッ ファ設計は技術分野において周知である。バッファ511が空であれば浮動小数 点命令(すなわち演算コード)およびその関連データは外部バスのグループ38 0を介してIDECODE302によってディスパッチされたときにエントリ5 11.1の中に直接導かれ、もし一杯であれば、信号(FPTFULL)がリザ ベーションステーション制御論理FPURSCTL533によってライン522 上のIDECODE302に返され、リザベーションステーションが一杯で別の 浮動小数点命令がディスパッチされるべきではないことを示す。FPTFULL はバッファエントリが再び利用できるようになるとクリアされる。 IDECODE302によってディスパッチされた各浮動小数点命令に関する 演算コードは演算コードバス381を介してFRES310によって受取られる 。各演算コードに関連したデータには、AおよびBオペランドデータバス388 および387から読出された値と、AおよびBオペランドタグバス386および 385から読出されたAおよびBオペランドタグと、宛先タグバス382から読 出された宛先タグとが含まれる。これらのデータはバッファ511にある関連し た演算コードとともに記憶される。リテラルAおよびBオペランド値は演算コー ドを有して到達し得るが、現在の命令がディスパッチされたときにAおよび/ま たはBオペランドのリテラル値が利用できなければ(すなわち現在の命令がディ スパッチされたときにいずれかのまたは両方のオペランド値が、ディスパッチさ れているがまだ完了していない別の命令の結果に対応するならば)、FRES3 10は算術ユニット(FADD330またはFMUL341、FDIV342) に命令を発行する前に、結果バス383に表われる対応する結果を待機する必要 がある。オペランドタグ上にある、またはそれと関連した、タグ有効ビットは、 オペランドデータではなく(オペランドタグバス386および385を介して) RFILE/ROB301から受取られたオペランドタグが有効であることを示 す。この場合、FRES310は511においてバッファされたオペランドタグ 値と結果タグバス384にポストされた結果タグとを比較して、オペランドデー タとして導かれるべき結果バス383上の結果を特定する。 タグ比較論理513はマルチプレクサ制御信号をオペランド選択論理512に 駆動する一連の比較器を含む。タグ比較論理513はライン519.2を介して バッファ511の第1のエントリ(511.1)に記憶されたAオペランドタグ (以下AT1とする)を読出し、それと結果タグバス384から読出された結果 タグとを比較する。AT1が結果タグと一致すれば、制御ライン518.1はマ ルチプレクサ512.1において結果バス入力を選択し、結果バス383に表わ れる値はバッファエントリ511.1のAオペラントルジスタ(A1)の中に導 かれる。同様に、結果タグバス384から読出された結果タグと比較され、一致 していれば、対応するオペランド選択マルチプレクサ(512.2)の結果バス 入力が能動化され、結果バス383の値は対応するオペランドレジスタ(B1) の中に導かれる。多重エントリバッファのタグ比較論理およびオペランド選択論 理設計は当業者には明らかであろう。所与の結果タグは複数のオペランドタグと 一致し得るため、結果バス383の値は1つより多いオペラントルジスタの中に 導かれ得る。タグ比較論理513は、タグ一致があればそれを示すリザベーショ ンステーション制御バス536を介してFPURSCTL533に信号を与える 。バス構造として536で図5に示したものは単に例示の目的であって、この明 細書を通してたとえばポイントツーポイント制御ラインなどの代替的な制御信号 経路が考えられることに留意されたい。 開示された実施例では、結果タグ値はバスサイクルの段階1(f2)中に有効 になり、結果値は同じサイクルの段階2(f1)中に有効になる。代替的な実施 例は、バッファ511に選択的に結果データを受取るための代替的なバスインタ フェース論理設計を組込んでもよい。たとえば、別々のバスサイクル中または単 一バスサイクルの単一段階中に結果タグおよび結果値を与えることはいずれも可 能である。さらに、結果データの特定は代替的なコーディングによって行なわれ てもよい。たとえば、結果の特定は結果バス383を介して受取られた結果デー タにエンコーディングされた情報を用いて行なうことができる。 FPU300以外のソースから外部AおよびBオペランドバス388および3 87または結果バス383を介してFRES310に到達する浮動小数点オペラ ンドは(たとえば単精度、倍精度または外部拡張精度浮動小数点フォーマットま たは整数フォーマットである)外部フォーマットで表わされる。一方浮動小数点 ユニットは、表わされ得る中間結果の範囲(大きさ)を増加するための付加的な 指数ビットを含む内部拡張精度フォーマットで、浮動小数点値を内部的に表わす 。開示された実施例ては、この内部拡張精度フォーマットは、正確な丸め演算を 支持するべく有効数字に付加的なビットをさらに含む、図4において先に示した 85ビットの拡張精度フォーマットである。もちろん代替的なおよび/または付 加的な内部および外部フォーマットも可能であり、特に80ビットより多いビッ トを与える拡張精度フォーマットも可能である。 一般に、FRES310はオペランドを外部フォーマットから内部フォーマッ トにインライン変換する。しかしながら、ここに開示した実施例では浮動小数点 スタックからのオペランド、すなわち浮動小数点スタックのx86アーキテクチ ャの特徴に対応するRFILE/ROB301エントリから外部AおよびBオペ ランドバス388および387を介して到達するオペランドは、FPU300の 外部に記憶され精度の落とされた内部フォーマットでFRES310に到達する 。精度の落とされたこの内部フォーマットは、ガード、丸め演算およびスティッ キービットが除外された内部拡張精度フォーマットと均等であるが、他の代替も 可能である。 外部フォーマットまたは精度の落とされた内部フォーマットのいずれかで到達 するオペランドはALIGNA514またはALIGNB515によって内部フ ォーマットに変換される。FRND350からFRES310に与えられた浮動 小数点結果は、所与の命令に関する結果フォーマットに従って丸め演算される。 このような丸め演算結果はALIGNRES532によって結果バス383にお ける適切なビット位置に整列され、対応する命令に関する結果フォーマットによ って、特定的なリアライメントが決定する。丸め演算されたこのような浮動小数 点結果が、バッファエントリ511.1において待ち行列に入れられた浮動小数 点命令に関するオペランドでもある場合には、リアライメントなしに適切な内部 オペランドバス(372または374)に「高速転送」され得る。 浮動小数点フォーマット変換論理ALIGNA514およびALIGNB51 5はAおよびBオペランドを外部フォーマットから内部拡張精度フォーマットに 変換する。フォーマット変換には、指数のバイアス調整と、ターゲットフォーマ ットにおける正しい位置にソース有効ビットをシフトすることが必要である。図 5の実施例では、演算コードビットは関連したオペランドのフォーマットを示す 。したがって演算コードビットはバッファエントリ511.1によってALIG NA514およびALIGNB515に与えられ、正しい変換を選択するように する。 内部拡張精度フォーマットにおける変換されたAオペランドデータはライン5 14.3およびラインドライバ520を介してALIGNA514によって内部 Aオペランドバス372に駆動される。図5の実施例では、Bオペランドデータ はオペランドのリテラル値を表わすか、またはこれに代えて、定数記憶装置FC NST516から浮動小数点定数を選択するためのインデックスを表わし得る。 前者の場合では、ラインドライバ521は内部拡張精度値を内部Bオペランドバ ス374に駆動し、後者の場合にはB1の内容はFCNST516の中を指示さ れるために用いられ、かくして指示された定数値はライン516.2を介してマ ルチプレクサ512.2に与えられ、それはここでインデックスを置換する。1 サイクルの遅延を受けたあと、内部拡張精度定数はラインドライバ521によっ て内部Bオペランドバス374に駆動される。浮動小数点定数は内部拡張精度フ ォーマットでFCNST516によって与えられるためフォーマット変換は必要 でない。変換された2つの単一定数(すなわち精度の低い定数)を1つのFCN ST516エントリに記憶し単一インデックスでアクセスすることもできる。 開示された実施例では、演算コードビットはBオペランドデータがFCNST 516へのリテラル値またはインデックスを表わすかどうかを示す。これらのビ ットはFPURSCTL553によって受取られる。定数ルックアップが示され ると、FPURSCTL553はリザベーションステーション制御バス536を 介して入力選択信号をマルチプレクサ512.2に与える。先程と同様に、リザ ベーションステーション制御バス536の使用は例示の目的のものであり、代替 的な制御信号経路も考えられる。浮動小数点命令が1対の定数に対して演算され ることは滅多にないため、定数は例示的にBオペランド位置として示される単一 のオペランド位置にアドレスされ、あまり発生することがないので2つの命令に よる等価シーケンスで十分である。FCNST516はPLAとして実現され、 この場合FPURSCTL553は例示的に示されるリザベーションステーショ ン制御バス536およびライン516.3を介してPLAプリチャージ信号をさ らに与える。 FRES310は511.1に記憶された演算コード(OP1)およびその関 連データが有効であることを示す演算コード有効信号(FOPVAL)を制御バ ス378を介してFCNTL362に駆動する。FOPVAL信号に応答して、 FCNTL362はOP1を読出し、その後FPUの算術および非算術ユニット (FADD380、FMUL341、FPDET320およびFRND350) を通るオペランドデータの流れを両方制御する。FCNTL362はバッファエ ントリ511.1からの宛先タグ(DT1)をさらに受取り、演算コードおよび 任意のパイプラインスケジューリング制約に従って内部ラッチの組を通して宛先 タグを伝搬する。適切な算術ユニットの中にオペランドが導かれると、FCNT L362は例示的に示される制御バス378を介してオペランド受入信号(FO PACC)をFPURSCTL533に駆動し、このオペランド受入信号は51 1.1の命令がFPUによって受入れられており、バッファエントリ511.1 の内容が上書きできることを示す。場合によっては(たとえばFPDET320 またはFRND350などの)別の算術ユニットが内部AおよびBオペランドバ ス372および374を駆動できるようにすることが必要である。一例としては 非正規化オペランドの乗算が挙げられ、ここでは(例示的に示されるFADD3 80である)算術ユニットが内部AおよびBオペランドバス372および/また は374から受取られた非正規化値を正規化し、結果として生じた正規化された オペランドを丸め演算バス376に駆動する。その後FRND350が、正規化 されたオペランドを丸め演算バス376から受取り、その正規化されたオペラン ドを、それが入来した内部オペランドバス(すなわち内部Aオペランドバス37 2または内部Bオペランド374のいずれか)に駆動する。このような場合、F CNTL362は例示的に示される制御バス378を介して制御信号(FPSE RIAL)をFRES310に駆動し、これによりラインドライバ520および 521が内部AおよびBオペランドバス372および374へのFRES出力を 浮遊状態とする。 次に図6を参照して、変換論理ALIGNA514の機能および構成が示され る。ALIGNB515は類似した設計を有する。指数はバイアスを有して表わ されるため、浮動小数点フォーマット間での変換にはバイアス調整が必要である 。先に留意したとおり、Nビット指数のバイアスは2N-1−1である(すなわち 単精度に関して規定された8ビット指数については7Fhであり、11ビットの 倍精度指数については3FFhであり、15ビットの外部拡張精度指数について は3FFFhである)。外部浮動小数点フォーマットから内部拡張精度フォーマ ットへの変換時の指数バイアスの正しい調整量は、ターゲットフォーマットのバ イアスとソースフォーマットのバイアスとの差である。内部拡張精度の17ビッ ト 指数に関する指数バイアスはFFFFhであるため、単精度からの変換にはFF 80hのバイアス調整が必要であり、倍精度からの変換にはFC00hのバイア ス調整が必要であり、外部拡張精度からの変換にはC000hのバイアス調整が 必要である。 バイアス調整論理はバイアス調整された指数を生成するよう17ビット加算器 を用いることができる。しかしながら、バイアス調整定数の構成は特殊でありか つソース指数のビット幅は制限されているため、単一インバータを含む簡単な加 算器を設計してもよい。図6はALIGNA514において3つの簡単なバイア ス調整加算器614.1、614.2および614.3を含む実施例を示す。バ イアス調整加算器614.1の演算は以下の例によって説明される。単精度から 内部拡張精度への変換時の、指数に対する正確なバイアス調整は、下記のとおり バイアス値FF80hを8ビットの単精度バイアス指数に加算することにより行 なわれる。 ここで指数の低位7ビットは0または1のいずれをも表わし得るため「X」と して示される。上位9ビットは指数が8ビット値(単精度指数)であるため0と して示される。ビット7,「?」は最適化された加算器の制御ビットである。指 数のうち7ビットは常に1に加算され、バイアス調整定数の次の8つの上位ビッ トの各々は1に等しいため、和の(すなわち調整された指数の)ビット8から1 5まで(“*”として示される)は指数のビット7の補数に等しく、和のビット 16は指数のビット7に等しい。バイアス調整加算器614.1はこの最適化さ れた加算器の実現例を示す。 倍精度および外部拡張精度フォーマットへの変換のためのバイアス調整には類 似した加算器設計が用いられてもよい。バイアス調整加算器614.2はバイア ス調整定数FC00hを11ビットの倍精度指数に加算する実現例を示し、バイ アス調整加算器614.3はバイアス調整定数C000hを15ビットの外部拡 張精度指数に加算する実現例を示す。ブロック614.5、614.6および6 14.7における残りの論理はアライメント論理であり、このアライメント論理 は符号および有効ビットを85ビットの内部拡張精度フォーマット内の位置にシ フトし、隠れビットを発生し、各浮動小数点変換に関する有効数字の残りの低位 ビットを0で満たす。ブロック614.9は内部拡張精度フォーマットを満たす 、精度の落とされた内部フォーマットオペランドの変換のための論理を示す。ブ ロック614.9の変換により、浮動小数点スタックをRFILE/ROB30 1においてFPU300の外部に示すことができるようになる。 整数アライメント論理614.8はオペランドデータを整数フォーマットから 内部拡張精度フォーマットに変換する(ふたたび図4を参照)。整数アライメン ト論理614.8(図示せず)の設計はブロック614.5、614.6および 614.7に示されるアライメント論理のものに類似する。整数アライメントは 、(たとえば8、16、32または64ビット整数である)nビット整数の低位 n−1ビットを小数部の低位ビットにシフトし、小数部の残りの上位ビットを符 号拡張し、符号ビット(ビットn)を符号位置にシフトし、予め定められた値を 指数フィールドに配置して、内部拡張精度フォーマットの通常のアライメント内 に、非正規化浮動小数点値としてエンコーディングされた64ビット整数を生成 する。予め定められた指数値は指数バイアスに関して調整された(ターゲットフ ォーマットにおける)暗黙の2進小数点の右の有効ビット数に等しい。したがっ て、値は予め定められており、整数ソースフォーマットとは独立である。ターゲ ットフォーマットが内部拡張精度フォーマットである、開示された実施例では、 予め定められた値は1003Eh(3Fh+FFFFhであり、ここで3Fhは 十進法の63の16進法表記である)に等しい。また、開示された実施例では、 非正規化浮動小数点値としてエンコーディングされた64ビット整数はFADD 330に送られて正規化されるが、整数アライメント論理614.8において専 用の正規化回路構成を有する代替的な実施例(図示せず)が所望に応じて実現さ れてもよい。 図示していない実施例では、ALIGNB515の設計はALIGNA514 の設計に実質的に類似する。しかしながら、スタック指向の浮動小数点命令セッ トを支持する図5の実施例では、ALIGNB515は整数から内部拡張精度へ の変換論理(614.8に相当する)しか含まない。スタック指向命令セットは 典型的には、命令ごとに新しいオペランドを1つだけ導入し、よって図5の実施 例は、例示的に示されるAオペランドに関するデータ経路である1つだけのデー タ経路に沿って全オペランドフォーマット変換をもたらす。Aオペランドデータ 経路における整数アライメント論理614.8に関連して、Bオペランド経路に おける制限された整数アライメント論理は、FMUL314などのFPU300 の算術ユニットが、非正規化内部拡張精度値として エンコーディングされた整 数オペランドでの整数算術に用いられることができるようにする。 図8は結果フォーマット変換論理ALIGNRES532を示す。ALIGN RES532は、ALIGNA514の、対応するアライメント論理によって行 なわれたビットアライメント変換を逆にする。ALIGNRES532は82ビ ットの丸め演算された結果をFRND350から受取り、ライン550.1に示 された結果フォーマットに対応するビット位置にこれらの82ビットのうちいく つかをシフトする。単精度結果フォーマットに関するビットシフトは変換経路8 32.1に従って行なわれ、倍精度および外部拡張精度結果フォーマットに関す るビットシフトはそれぞれ変換経路832.2および832.3に従って行なわ れる。(ALIGNA514の整数アライメント論理614.8に対応する)変 換経路832.4は同様に、外部構成の整数−レジスタビットマッピングに従っ て整数フォーマットを整列する。マルチプレクサ832.5は整列された特定的 な結果を選択し、ライン550.3を介してその丸め演算され、整列された結果 を結果バス383に与える。当業者には、さまざまな変換経路(すなわち832 .1、832.2、832.3および832.4)に沿ったアライメント機能の 共通性を利用するようALIGNRES532のアライメントおよび選択論理を 最適化できることが認識されるであろう。たとえば、各浮動小数点フォーマット の符号ビットおよび上位8つの指数ビットのアライメントは共通のアライメント 論理によって行なうことができる。したがって図8は、適切なアライメント論理 のビットの経路を示す。共通性の利用を含む、このような論理の適切な最適化は こ こに開示される実施例の一部分として考えられる。ライン832.6は精度が落 とされた内部フォーマット結果(すなわち「r」「g」および「st」ビットを 有さない内部拡張精度)をRFILE/ROB301においてFPU300の外 部に示される浮動小数点スタックに与えるための無変換経路を表わす。 再び図5を参照して、ライン550.2にFRND350によって与えられた 、丸め演算されているが整列されていない結果がラインドライバ534および5 35にさらに与えられ、これらのラインドライバは制御バス536を介してFP URSCTL533によって与えられた制御用信号に従って、内部Aオペランド バス372または内部Bオペランドバス374のいずれかに当該結果を再び駆動 して戻す。前述のとおり、バス536の図は例示的なものであり代替的な実施例 も考えられる。このように、外部フォーマットに従って整列された結果は外部結 果バス383に与えられ、さらに、適切であれば、対応する整列されていない結 果が未決浮動小数点命令に関するオペランドとして内部オペランドバスにさらに 高速転送され得る。高速転送するための特定的な結果は、ライン519.3およ び519.4を介してバッファ511から未決命令に関するAおよびBオペラン ドタグを受取り、かつそれらのオペランドタグをライン562.2にFCNTL 362から受取られた宛先タグと比較する、高速転送タグ比較論理531によっ て行なわれる。AおよびBオペランドタグの一致はFCNTL362に与えられ る。タグ一致は、ライン550.2に与えられた結果が実行待命令に必要なオペ ランドであり、(整列されて結果バス383に与えられることに加えて)適切な 内部オペランドバス372または374に直接駆動される必要があることを示す 。この高速転送経路により、外部結果バスからの結果の導入に関連し得る余分な バスサイクルの遅延がなくなる。 後の命令に関するオペランドに対応する浮動小数点結果は一般に、上述の高速 転送データ経路を介して送られるが、場合によってはFRES310によって結 果バス383に書込まれた値が、余分なバスサイクルの遅延にもかかわらず結果 バス383からオペランドとして導かれてもよい。特に、それに対してAおよび Bオペランドがいずれもまだ未決定のオペランドタグとして表わされる、後の浮 動小数点命令に関するオペランドとして、1つの浮動小数点命令の結果をFRE S310の中に戻すこともできる。この場合、後に表われる結果/オペランドの みが高速転送経路を介して与えられることとなる。さらに、バッファ511内に 複数のエントリを含むこの発明の代替的な実施例では、バッファ511において 待ち行列に入れられた最も優先度の高い(すなわち次の)命令の、未決定のオペ ランドについては高速転送経路を利用するが、優先度の低い(すなわち後の)命 令については浮動小数点結果を結果バス383を介してFRES310にサイク ルバックする。 浮動小数点リザベーションステーションFRES310に(たとえばALIG NA514、ALIGNB515およびALIGNRES532の)フォーマッ ト変換論理を組込むと、内部および外部フォーマットの両方において、RFIL E/ROB301内および結果バス383上に、浮動小数点値を維持することが できるプロセッサアーキテクチャとなる。RFILE/ROB301に記憶され た浮動小数点値は(たとえば単精度、倍精度および外部拡張精度フォーマットな らびに整数フォーマットの)外部フォーマットに維持されるため、これらのRF ILE/ROB301エントリはFPU300および非浮動小数点機能ユニット によって共有され得る。付加的な機能ユニット303は(たとえば整数、分岐お よびロード/記憶装置の)非浮動小数点ユニットを含む任意のタイプの機能ユニ ットを表わす。典型的には、スーパースカラープロセッサには多くのこれらの実 行装置が含まれ得る。FPU300および付加的な機能ユニット303によって 外部フォーマットで結果バス383に駆動された結果値は、浮動小数点および非 浮動小数点機能ユニットの両方によって受取られる(すなわちFPU300のF RES310および付加的な機能ユニット303の両方が、タグが一致した時に は結果バス383から外部フォーマット値を導く)。付加的な機能ユニット30 3は付加的な浮動小数点機能ユニットをさらに表わし得る。 オペランド値を外部フォーマットから内部フォーマットに変換して、RFIL E/ROB301での共有記憶と、結果バス383上での結果値の共用とを可能 にすることにより、(たとえばALIGNA514、ALIGNB515および ALIGNRES532を有するFRES310の)データフォーマット変換論 理を組込んだ浮動小数点リザベーションステーションによりさらに、プロセッサ アーキテクチャが(たとえばレジスタリネーミング、分岐予測、アウトオブオー ダ発行およびアウトオブオーダ完了の)スーパースカラー技術を用いて浮動小数 点命令および非浮動小数点命令間での命令の並列性を利用できるようになる。フ ォーマット変換論理(ALIGNA514およびALIGNB515)内での指 数バイアス調整のために、簡単な加算器(614.1、614.2および614 .3)を利用すると、FRES310はこれらのフォーマット変換の実行を非常 に短い待ち時間および低い複雑性で行なう。変換待ち時間が短いと外部浮動小数 点データの演算速度が増し、浮動小数点データはFPU310の外部の、付加的 な機能ユニット303などの他の機能ユニットに利用できるような、レジスタに 維持できるようになり、データの依存性を間接化させるためにスーパースカラー 技術を用いることができる。 浮動小数点定数は、行なわれる変換が、定数のインデックス値から内部拡張精 度表記へのものであるという特定的な場合のオペランドフォーマット変換を表わ す。アドレス可能記憶装置から浮動小数点定数を与えることは、引用によって援 用され本件と同じ日に出願された、マイケル ディー・ゴダード他(Michael D .Goddard,et al.)らの発明者による「浮動小数点処理装置のためのアドレス 可能定数記憶装置を含むリザベーションステーション」(“Reservation Station Including Addressable Constant Store for a Floating Point Processing Un it”)と題された同時係属中の特許出願連続番号第xx/xxx,xxx号〈代 理人の事件番号M−3532US〉に記載されている。図5の実施例では、いく つかの演算コードにより、バッファエントリ511.1のレジスタB1に記憶さ れた値がリテラルオペランド値ではなく定数記憶装置FCNST516へのイン デックスを表わすことが示されている。オペランド値が(演算コードエンコーデ ィングではなく)オペランドコーディングとして定数インデックスを表わすこと を示すための代替的な手段でも適しているであろう。さらに、代替的な実施例に はAおよびBオペランドデータ経路の両方での定数ルックアップ機能が含まれる が、このような機能は各命令に対して1つしか新しいオペランド値が導入されな い、スタック中心の命令の組を実現する浮動小数点ユニットにおいては必要ない だろう。ここに開示した実施例では、FCNST516はライン516.1を介 して レジスタB1の内容を受取る。OP1に記憶された演算コードが、Bオペランド値 が定数インデックスを表わすことを示せば、FPURSCTL533はライン5 16.3を介してPLAプリチャージ信号をFCNST516に与え、その後F CNST516が定数インデックスに従って内部拡張精度定数値を与える。FP URSCTL533は定数入力を選択するオペランド選択マルチプレクサ512 .2に制御信号を与え、定数値はB1に記憶されたインデックスを上書きする。 代替的な実施例(図示せず)では、インデックスされた定数値は、バッファ51 1を通して送られるのではなく、FCNST516からBオペランドバスに直接 駆動される。このように直接的に結合された実施例に適する選択論理は当業者に は明らかであろう。 定数インデックスが決定し浮動小数点値がバッファ511のレジスタB1にお いて置換されるとFRES310の演算が正常に進行する。しかしながら、(た とえば383、387または388の)外部バスを介してか、またはFRND3 50から到達したオペランドと比較すると、かくして与えられた浮動小数点定数 値には(実際には内部拡張精度浮動小数点表記のガード「g」および丸め演算「 r」ビット位置にある)2つの付加的な精度ビットが含まれる。この結果、(た とえばバッファ511のB1である)BオペラントルジスタはAオペランドレジ スタよりもわずかに幅が広い。外部バスを介してかまたはFRND350から到 達するBオペランドの対応ビットはFRES310によって0で満たされる。 図7は浮動小数点定数記憶装置FCNST516の編成を示す。FCNST5 16は内部拡張精度フォーマットで表わされた定数の、アドレス可能記憶装置7 16.1である。開示された実施例では、超越関数の計算のためのπ、eおよび 多項式級数の定数の表記を含む、256個までの浮動小数点値がアドレス可能記 憶装置716.1に記憶される。図7に開示された実施例では、アドレス可能記 憶装置716.1は8入力および84出力のPLAとして実現され、ライン51 6.1の8つのビットインデックスは記憶装置へのアドレスの役割を果たす。( 全内部拡張精度フォーマットでありスティッキービットがない)84ビットの浮 動小数点定数値は516.2に与えられる。これに代えて、1度のアクセスで2 つの低精度単一定数が与えられてもよい。 さまざまな実施例を参照してこの発明を説明したが、これらの実施例は例示的 なものであってこの発明の範囲はそれらに制限されないことが理解されるであろ う。説明した実施例には多くの変更、修正、付加および改良が可能である。たと えば、代替的な組の内部および外部フォーマットが可能である。さらに、重複し た組の内部および外部フォーマットも可能であり、所与のデータフォーマットが 内部的および外部的に用いられてもよい。このようなフォーマットに表わされた オペランド値には変換は必要ないだろう。さらに、スタック指向および非スタッ ク指向浮動小数点命令の組の両方に関するリザベーションステーションの実現が 考えられる。これらおよび他の変更、修正、付与および改良は以下の請求の範囲 に規定される本発明の範囲内にあるだろう。
【手続補正書】特許法第184条の8第1項 【提出日】1997年10月14日 【補正内容】 浮動小数点処理装置のためのリザベーションステーション発明の背景 発明の分野 この発明はスーパースカラープロセッサに関し、特に、複数の機能ユニットを 含むスーパースカラープロセッサ内の機能ユニットのためのリザベーションステ ーションに関する。関連技術の説明 EP−A−0 651 321には、本出願人による先行技術のスーパースカ ラーマイクロプロセッサが開示されている。 US−A−3 930 232には、先行技術の全フォーマット型デジタルコ ンピュータが開示されている。 EP−A−0 287 115には、先行技術のコプロセッサおよびそれを制 御するための方法が開示されている。 EP−A−0 450 802には、本出願人による先行技術の算術ユニット が開示されている。 技術分野において知られているように、浮動小数点数は指数および仮数として 2進フォーマットで表わされ得る。指数は2などの基数が累乗される、べき数を 表わし、仮数は基数によって乗算される数である。したがって、浮動小数点数に よって表わされる実際の数は、指数によって特定されたべき数まで累乗された基 数に等しい量が乗算された仮数である。このように、どのような特定の数も浮動 小数点表記ではfxBeまたは(f,e)として近似でき、ここでfはn桁の符 号付仮数であり、eはm桁の符号付整数の指数であり、Bは基数系である。多く のコンピュータシステムで用いられている基数系はB=2である2進法であるが 、システムの中には基数系として10進法(B=10)または16進法(B=1 6)を用いるものもある。浮動小数点数は加算、減算、乗算または除算すること ができ、2進浮動小数点数にこれらの算術演算を行なうための、計算のための構 造は技術分野において周知である。 実用的なコンピュータでは、数の仮数部分は無限の「精度」は有さない(すな わち浮動小数点数の仮数に無限の桁数の数字を割当てることはできない)。その 代わりに、浮動小数点数は、通常は固定桁数を有するレジスタにおいて処理され る。このため、加算、減算、乗算または除算される2つの入力オペランドの各々 が正確な表示であっても、演算結果はレジスタの固定桁数よりもより有効桁の多 いものとなるだろう。この結果、精度の低い(しかし依然として正確である)結 果の表示を、正規化および丸め演算の処理によってレジスタの固定桁数の中に詰 め込む必要がある。 請求の範囲 1.互いに結果を転送するように結合された複数の機能ユニット(300,30 3)を有するプロセッサにおけるリザベーションステーションであって、前記機 能ユニットのうちの第1のもの(300)のための前記リザベーションステーシ ョン(310)は、 オペランドデータレジスタ(511.1)を含む未決命令バッファと、 第1のフォーマット変換論理(514)とを含み、前記第1のフォーマット変 換論理は前記実行待命令バッファと前記第1の機能ユニットの算術ユニット(3 30,341,342)の第1のオペランド入力との間に結合され、前記算術ユ ニットに、外部データフォーマットの組のうちの1つから内部データフォーマッ トの組のうちの1つに選択的に変換されたオペランドデータを与え、さらに 第2のフォーマット変換論理(515)を含み、前記第2のフォーマット変換 論理は前記算術ユニットの前記結果出力に結合され、前記機能ユニット(330 ,303)のうちの他のものに、前記内部データフォーマットのうちの1つから 前記外部データフォーマットのうちの1つに選択的に変換された前記結果データ を与え、 前記算術ユニットの結果出力と前記算術ユニットの第2のオペランド入力との 間に結合され、データフォーマット変換を行なうことなく前記算術ユニットに前 記結果データを選択的に与える高速転送データ経路を特徴とする、リザベーショ ンステーション。 2.前記第1および第2のオペランド入力が、前記算術ユニットの、同じオペラ ンド入力に対応する、請求項1に記載のリザベーションステーション。 3.前記第1および第2のオペランド入力のうち一方が、前記算術ユニットのA オペランド入力に対応し、前記第1のおよび第2のオペランド入力のうちの他方 が、前記算術ユニットのBオペランド入力に対応する、請求項1に記載のリザベ ーションステーション。 4.前記未決命令バッファ(511)と前記高速転送データ経路との間に結合さ れ、前記結果データと前記未決命令バッファにおいてバッファされた命令に関す るオペランドとの一致を検出するための第1の検出手段(531)をさらに含み 、 前記一致の検出により前記高速転送データ経路が能動化される、請求項1に記載 のリザベーションステーション。 5.前記第1のフォーマット変換論理がバイアス調整加算器(614)を含み、 前記バイアス調整加算器(614)は、 Nビット指数入力と、 インバータと、 Mビット指数出力とを備え、MはNより大きく、前記指数出力のM番目のビッ トは前記指数入力のN番目のビットに結合され、前記指数出力のN−1から1ま でのビットは、前記指数入力のN−1から1までのビットにそれぞれ結合され、 前記インバータは前記指数入力の前記N番目のビットを反転し、かつ前記指数出 力のM−1からNまでのビットとして前記反転されたビットを与えるよう結合さ れる、請求項1に記載のリザベーションステーション。 6.Mが、所望のバイアス調整定数に従う、請求項5に記載のリザベーションス テーション。 7.前記外部データフォーマットの組が、単精度浮動小数点フォーマット、倍精 度浮動小数点フォーマットおよび外部拡張精度浮動小数点フォーマットを含み、 前記内部データフォーマットの組は内部拡張精度フォーマットを含む、請求項1 から6のいずれかに記載のリザベーションステーション。 8.前記算術ユニットが浮動小数点算術ユニットを備え、 前記外部データフォーマットの組は16、32および64ビット整数フォーマ ットを含み、 前記第1のフォーマット変換論理(514)は、前記整数フォーマットのうち の1つから整数オペランドを変換し、内部拡張精度フォーマットの通常のアライ メント内に、非正規化浮動小数点値として前記整数オペランドをエンコーディン グするよう適合され、前記整数オペランドの前記選択的な変換により、前記浮動 小数点算術ユニットが前記整数オペランドで演算できるようになる、請求項1か ら5のいずれかに記載のリザベーションステーション。 9.前記浮動小数点レジスタ構成か、x86浮動小数点スタックを含み、 前記第1および第2のフォーマット変換論理は、前記内部フォーマットおよび 外部フォーマットデータの両方が、前記浮動小数点機能ユニットの外部にあるリ オーダバッファにおいて表わされるようにする、請求項10に記載のリザベーシ ョンステーション。 10.前記実行待命令バッファ(511)が、浮動小数点命令に関する演算コー ドを受取るよう結合された演算コードレジスタをさらに含み、 前記第1のフォーマット変換論理は前記演算コードルジスタに結合され、個々 の演算コードは、前記第1のフォーマット変換論理によって行なわれる特定的な 変換のために選択される、請求項1から5のいずれかに記載のリザベーションス テーション。 11.前記浮動小数点機能ユニットが、前記算術ユニットの前記結果出力を前記 第2のフォーマット変換論理(515)および前記高速転送データ経路に結合す る丸め演算装置(350)をさらに含む、請求項1に記載のリザベーションステ ーションを有する浮動小数点機能ユニット。 12.それらの間で結果を転送するよう結合された複数の機能ユニット(330 ,341,342)を有するプロセッサの第1の機能ユニットにおいてデータを 処理するための方法であって、 第1の外部フォーマットにおいてオペランドを受取るステップと、 前記第1の外部フォーマットから第1の内部フォーマットに前記オペランドを 選択的に変換するステップと、 前記変換されたオペランドで第1の演算を行なうステップとを含み、前記第1 の演算により第2の内部フォーマットにおいて結果が与えられ、さらに 前記結果を第2の外部フォーマットに選択的に変換し、かつ前記変換された結 果を前記第1の機能ユニットの外部に与えるステップと、 前記第2の変換と同時に、変換することなく前記結果を選択的に与え、前記第 1の機能ユニットにおいて前記結果で第2の演算を行なうステップとを含む、方 法。 13.前記オペランドに関連した第1の演算コードを受取るステップをさらに含 み、前記第1の演算コードは前記第1の内部フォーマットおよび前記第1の演算 のために選択され、さらに 前記第2の演算のために選択される第2の演算コードを受取るステップを含む 、請求項12に記載の方法。 14.前記第1の演算に関連した結果タグを受取るステップと、 第2の演算コードおよびそれに関連したオペランドタグを受取るステップとを 含み、前記第2の演算コードは前記第2の演算のために選択され、さらに 前記結果タグと前記オペランドタグとが一致したときに、前記変換されていな い結果を前記第2の演算のオペランドとして与えるステップをさらに含む、請求 項12に記載の方法。 15.前記複数の機能ユニット(300,303)に結合されたリオーダバッフ ァに前記変換された結果を表わすステップをさらに含む、請求項12に記載の方 法。 16.前記第1および第2の内部フォーマットが同じ内部フォーマットである、 請求項12に記載の方法。 17.前記第1および第2の外部フォーマットが同じ外部フォーマットである、 請求項12に記載の方法。 18.浮動小数点機能ユニット(300)を有するプロセッサにおいて浮動小数 点データフォーマット間で変換するためのバイアス調整加算器(614)であっ て、前記バイアス調整加算器は、 Nビット指数入力と、 インバータと、 Mビット指数出力とを含み、MはNより大きく、前記指数出力のM番目のビッ トは前記指数入力のN番目のビットに結合され、前記指数出力のN−1から1ま でのビットは、前記指数入力のN−1から1までのビットにそれぞれ結合され、 前記インバータは、前記指数入力の前記N番目のビットを反転し、かつ前記指数 出力のM−1からNまでのビットとして前記反転されたビットを与えるよう結合 される、バイアス調整加算器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ゴベアス,ケルビン・ディ アメリカ合衆国、78741 テキサス州、オ ースティン、ハントウィック・ドライブ、 2504、ナンバー・206 (72)発明者 ブジャノス,ノーマン アメリカ合衆国、78749 テキサス州、オ ースティン、ドネガル・ロード、6905 【要約の続き】 る。浮動小数点リザベーションステーション内の特定の 論理によりオペランドフォーマットが変換される。

Claims (1)

  1. 【特許請求の範囲】 1.共通演算コードバス、共通オペランドバスおよび共通結果バスに結合された 複数の機能ユニットを有するプロセッサにおける、オペランド入力と結果出力と を備えた算術ユニットを有する浮動小数点機能ユニットのためのリザベーション ステーションであって、前記リザベーションステーションは、 オペランドデータレジスタを含む未決命令バッファと、 前記共通オペランドバスと前記オペランドデータレジスタとの間に、かつ前記 共通結果バスと前記オペランドデータレジスタとの間に結合されて、前記オペラ ンドデータレジスタの中にオペランドデータを選択的に受取るためのバスインタ フェース論理と、 前記オペランドデータレジスタと前記算術ユニットの前記オペランド入力との 間に結合されて、外部データフォーマットの組のうちの1つから内部データフォ ーマットの組のうちの1つに選択的に変換されたオペランドデータを前記算術ユ ニットに与えるための第1のフォーマット変換論理とを備えた、リザベーション ステーション。 2.前記算術ユニットの結果出力と共通結果バスとの間に結合された第2のフォ ーマット変換論理をさらに含み、前記第2のフォーマット変換論理は、前記内部 データフォーマットの組のうちの1つで結果データ値を受取り、前記結果データ 値を前記外部データフォーマットの組のうちの1つに変換し、さらに前記共通結 果バスに前記変換された結果データ値を与える、請求項1に記載のリザベーショ ンステーション。 3.前記算術ユニットの結果出力と前記算術ユニットのオペランド入力との間に 結合された高速転送データ経路をさらに含み、前記高速転送データ経路は前記結 果データ値を前記算術ユニットに選択的に与え、さらに 前記実行待命令バッファにおいてバッファされた命令に関するオペランドと前 記結果データ値との一致を検出するための第1の検出手段を含み、前記第1の検 出手段は前記実行待命令バッファと前記高速転送データ経路との間に結合され、 一致を検出することにより前記第1の検出手段が前記高速転送データ経路を選択 的に能動化するようになる、請求項1に記載のリザベーションステーション。 4.前記算術ユニットの結果出力と前記算術ユニットのオペランド入力との間に 結合された高速転送データ経路をさらに含み、前記高速転送データ経路は前記結 果データ値を前記算術ユニットに選択的に与え、さらに 前記未決命令バッファでバッファされた命令と前記結果データ値との一致を検 出するための第1の検出手段を含み、前記第1の検出手段は前記実行待命令バッ ファと前記高速転送データ経路との間に結合され、一致を検出することにより第 1の検出手段が前記高速転送データ経路を選択的に能動化するようになる、請求 項2に記載のリザベーションステーション。 5.前記外部データフォーマットの組が単精度浮動小数点フォーマット、倍精度 浮動小数点フォーマットおよび外部拡張精度浮動小数点フォーマットを含み、前 記内部データフォーマットの組が内部拡張精度フォーマットを含む、請求項2に 記載のリザベーションステーション。 6.前記外部データフォーマットの組が16、32および64ビットの整数フォ ーマットをさらに含む、請求項5に記載のリザベーションステーション。 7.前記第1のフォーマット変換論理が、16、32および64ビットの外部整 数フォーマットから整数オペランドを選択的に変換して、前記内部拡張精度フォ ーマットの通常アライメント内に前記整数オペランドを非正規化浮動小数点値と してエンコーディングし、前記整数オペランドを選択的に変換することにより前 記浮動小数点機能ユニットの前記算術ユニットが整数オペランドで演算できるよ うになる、請求項6に記載のリザベーションステーション。 8.前記第1のフォーマット変換論理が内部フォーマットオペランドを選択的に 通し、前記第2のフォーマット変換論理が内部フォーマット結果を選択的に通し 、前記浮動小数点機能ユニットの外部にある浮動小数点レジスタ構成の表記を可 能にする、請求項4に記載のリザベーションステーション。 9.前記浮動小数点レジスタ構成がx86浮動小数点スタックであり、前記第1 および第2のフォーマット変換論理により、前記内部および外部フォーマットオ ペランドが前記浮動小数点機能ユニットの外部にあるレジスタファイル/リオー ダバッファに表記されるようになる、請求項8に記載のリザベーションステーシ ョン。 10.前記実行待命令バッファが、前記浮動小数点命令に関する演算コードを受 取るための前記共通演算コードバスに結合された演算コートルジスタをさらに含 み、前記第1のフォーマット変換論理は前記演算コードレジスタに結合され、個 々の前記演算コードは前記オペランドデータフォーマットを示し、かつ前記第1 のフォーマット変換論理によって行なわれる特定的な変換を選択する、請求項6 に記載のリザベーションステーション。 11.前記実行待命令バッファが単一エントリバッファである、請求項10に記 載のリザベーションステーション。 12.前記実行待命令バッファが複数エントリバッファである、請求項10に記 載のリザベーションステーション。 13.前記実行待命令バッファがFIFOとして編成される、請求項12に記載 のリザベーションステーション。 14.前記第1のフォーマット変換論理がビットアライメント論理およびバイア ス調整加算器を含む、請求項10に記載のリザベーションステーション。 15.前記バイアス調整加算器が、Nビット指数入力、インバータおよびMビッ ト指数出力を含み、前記N番目の入力ビットは前記M番目の出力ビットに結合さ れ、前記N−1から1までの入力ビットは前記N−1から1までの出力ビットに それぞれ結合され、前記インバータは前記N番目の入力ビットと前記M−1から Nまでの出力ビットとの間に結合され、ただしMはNより大きい、請求項14に 記載のリザベーションステーション。 16.前記第1のフォーマット変換論理が、Nビット指数入力、インバータおよ びMビット指数出力を含むバイアス調整加算器を備え、前記N番目の入力ビット は前記M番目の出力ビットに結合され、前記N−1から1までの入力ビットは前 記N−1から1までの出力ビットにそれぞれ結合され、前記インバータは前記N 番目の入力ビットと前記M−1からNまでの出力ビットとの間に結合され、ただ しMはNより大きい、請求項1に記載のリザベーションステーション。 17.前記実行待命令バッファにおいてバッファされた命令に関するオペランド と前記共通結果バスのデータ値との一致を検出するための第2の検出手段をさら に含み、前記第2の検出手段は前記実行待命令バッファと前記バスインタフェー ス論理との間に結合され、一致を検出することにより、前記第2の検出手段が、 前記バスインタフェース論理が前記オペランドデータレジスタへの前記共通結果 バスに前記データ値を受取ることができるようにする、請求項4に記載のリザベ ーションステーション。 18.オペランドタグが前記共通オペランドバスのオペランドに関連し、結果タ グが前記共通結果バスの結果に関連し、宛先タグが前記共通演算コードバスの演 算コードに関連し、 前記実行待命令バッファがオペランドタグレジスタおよび宛先タグレジスタを さらに含み、 前記第1および第2の検出手段がタグ整合論理を構成する、請求項17に記載 のリザベーションステーション。 19.内部オペランドバスが前記リザベーションステーションの前記第1のフォ ーマット変換論理と前記算術ユニットの前記オペランド入力との間に結合され、 前記浮動小数点機能ユニットは丸め演算コンプレックスをさらに含み、前記丸め 演算コンプレックスは、 前記算術ユニットの前記結果出力に結合された丸め演算バスと、 前記丸め演算バスに結合された入力と前記第2のフォーマット変換論理に結合 された出力とを有する丸め演算装置とを備え、 それにより前記丸め演算コンプレックスは前記算術ユニットの前記結果出力を 前記第2のフォーマット変換論理に結合する、請求項2に記載のリザベーション ステーションを有する浮動小数点機能ユニット。 20.内部オペランドバスが前記リザベーションステーションの前記第1のフォ ーマット変換論理と前記算術ユニットの前記オペランド入力との間に結合され、 前記浮動小数点機能ユニットは丸め演算コンプレックスをさらに含み、前記丸め 演算コンプレックスは、 前記算術ユニットの前記結果出力に結合された丸め演算バスと、 前記丸め演算バスに結合された入力と前記第2のフォーマット変換論理に結合 された出力とを有する丸め演算装置とを備え、 それにより前記丸め演算コンプレックスは前記算術ユニットの前記結果出力を 前記第2のフォーマット変換論理および前記高速転送データ経路に結合する、請 求項4に記載のリザベーションステーションを有する浮動小数点機能ユニット。 21.前記浮動小数点機能ユニットが、前記内部オペランドバスに結合されたオ ペランド入力と前記丸め演算バスに結合された結果出力とを有する付加的な算術 ユニットをさらに含む、請求項20に記載の浮動小数点機能ユニット。 22.前記算術ユニットおよび前記付加的な算術ユニットの各々が、加算パイプ ライン、乗算パイプライン、除算装置、平方根装置ならびに三角関数、超越関数 、正規化および浮動小数点フォーマット変換に関する特定的な装置を含む、算術 ユニットの組から選択される、請求項21に記載の浮動小数点機能ユニット。 23.前記付加的な算術ユニットおよび前記算術ユニットが実質的に類似した装 置である、請求項22に記載の浮動小数点機能ユニット。 24.前記付加的な算術ユニットが乗算パイプラインを含み、前記算術ユニット が加算パイプラインを含む、請求項21に記載の浮動小数点機能ユニット。 25.複数の第1のデータフォーマットのオペランドデータを機能ユニットに与 えるためのオペランドバス、前記機能ユニットに演算コードを与えるための演算 コードバスおよび前記第1のデータフォーマットにおいて前記機能ユニットから の結果データを通信するための結果バスを有するプロセッサにおける、第2のデ ータフォーマットのオペランドデータで演算するための算術ユニットを有する浮 動小数点機能ユニットのためのリザベーションステーションであって、前記リザ ベーションステーションは、 レジスタ段のアレイを備え、前記アレイは前記オペランドバスに結合されたオ ペランド入力、オペランド出力、前記演算コードバスに結合された演算コード入 力、および演算コード出力を有し、前記レジスタ段の各々はオペランドデータレ ジスタおよび演算コートルジスタを備え、さらに前記リザベーションステーショ ンは、 前記結果バスからの結果データを前記アレイの前記オペランドデータレジスタ に選択的に受取るためのバスインターフェイス論理を備え、前記選択的に受取ら れたデータは前記アレイの前記演算コードレジスタに記憶された演算コードに関 するオペランドであり、さらに前記リザベーションステーションは、 前記オペランドデータを前記複数の第1のデータフォーマットから前記第2の データフォーマットに選択的に変換するためのデータフォーマット変換器を備え 、前記データフォーマット変換器は前記アレイの前記オペランド出力に結合され たデータ入力、前記アレイの前記演算コード出力に結合されて、行なわれるフォ ーマット変換を選択するための制御ポート、および前記算術ユニットに結合され たデータ出力を有する、リザベーションステーション。 26.前記複数の第1のデータフォーマットが単精度浮動小数点フォーマット、 倍精度浮動小数点フォーマットおよび外部拡張精度浮動小数点フォーマットを含 み、前記第2のデータフォーマットは内部拡張精度浮動小数点フォーマットであ る、請求項25に記載のリザベーションステーション。 27.前記複数の第1のデータフォーマットが整数データフォーマットをさらに 含む、請求項26に記載のリザベーションステーション。 28.前記整数データフォーマットが16ビットの符号付整数フォーマット、3 2ビットの符号付整数フォーマットおよび64ビットの符号付整数フォーマット のうちの1つである、請求項27に記載のリザベーションステーション。 29.前記アレイレジスタ段が単一段バッファである、請求項25に記載のリザ ベーションステーション。 30.前記データフォーマット変換器が、Nビット指数入力、インバータおよび Mビット指数出力を備えたバイアス調整加算器を含み、前記N番目の入力ビット は前記M番目の出力ビットに結合され、N−1から1までの入力ビットはN−1 から1までの出力ビットにそれぞれ結合され、前記インバータは前記N番目の入 力ビットと前記M−1からNまでの出力ビットとの間に結合され、ただしMはN より大きい、請求項25に記載のリザベーションステーション。 31.オペランドデータを第1のデータフォーマットから第2のデータフォーマ ットに選択的に変換するためのデータフォーマット変換器を有するリザベーショ ンステーションにおいて、バイアス調整加算器は、 Nビット指数入力と、 Mビット指数入力とを含み、ただしMはNより大きく、前記指数入力のN番目 のビットは前記指数出力のM番目のビットに結合され、前記指数入力のN−1か ら1までのビットは前記指数出力のN−1から1までのビットにそれぞれ結合さ れ、さらに前記バイアス調整加算器は、 前記指数入力のN番目のビットと前記指数出力のM−1からNまでのビットと の間に結合されたインバータを含む、バイアス調整加算器。 32.複数の機能ユニットを有するスーパースカラーデジタルコンピュータであ って、前記スーパースカラーデジタルコンピュータは、 命令データを与えるための第1の出力とオペランドポインタを与えるための第 2の出力とを有する命令デコーダと、 データ記憶装置とを含み、前記データ記憶装置は、前記データ記憶装置に結果 を受取る入力およびオペランドとしての選択されたデータを与える出力を有し、 前記データ記憶装置は第1のフォーマットでデータを記憶し、さらに前記スーパ ースカラーデジタルコンピュータは、 前記命令デコーダの前記第2の出力に結合されて前記データ記憶装置からオペ ランドを選択するオペランド選択ポートと、 前記データ記憶装置の前記出力に結合されて第1のフォーマットオペランドを 前記機能ユニットに与えるオペランドバスと、 前記データ記憶装置の入力に結合されて前記機能ユニットからの第1のフォー マット結果を前記データ記憶装置に通信する結果バスと、 前記命令デコーダの前記第1の出力から受取られた第1のタイプの命令に応答 してオペランドに演算を行なうための第1の機能ユニットとを備え、前記第1の 機能ユニットは、 第1のリザベーションステーションを含み、前記第1のリザベーションステー ションは、 前記オペランドバスに結合されて前記第1のフォーマットオペランドを受取り 、かつ前記結果バスに結合されてオペランドとして前記第1のフォーマット結果 を選択的に受取る第1のオペランドバッファと、 前記第1のオペランドバッファに結合されて前記第1のフォーマットオペラン ドデータを受取りそれを第2のフォーマットに変換する第1のフォーマット変換 論理とを含み、前記第1の機能的ユニットはさらに、 前記第1のフォーマット変換論理に結合されてオペランド入力において第2の フォーマットオペランドを受取り、前記第2のフォーマットで算術演算を行なう 算術ユニットとを含み、前記算術ユニットは前記第2のフォーマットで結果出力 に結果を与え、さらに前記第1の機能的ユニットは、 前記算術ユニットの前記結果出力と前記結果バスとの間に結合されて前記第2 のフォーマット結果を前記第1のデータフォーマットに変換する第2のフォーマ ット変換論理を含み、さらに前記スーパースカラーデジタルコンピュータは、 前記命令デコーダの前記第1の出力から受取られた第2のタイプの命令に応答 してオペランドに対して演算を行なうための第2の機能ユニットを備え、前記第 2の機能ユニットは、 前記オペランドバスに結合されて前記第1のフォーマットオペランドを受取り 、かつ前記結果バスに結合されてオペランドとして前記第1のフォーマット結果 を選択的に受取る第2のオペランドバッファを有する第2のリザベーションステ ーションと、 前記第2のオペランドバッファに結合されて前記第1のフォーマットオペラン ドを受取り、かつ前記第1のフォーマットで演算を行なう実行装置とを含み、前 記実行により前記第1のフォーマット結果が前記結果バスに与えられる、スーパ ースカラーデジタルコンピュータ。 33.前記第1の機能ユニットが浮動小数点機能ユニットであり、前記第1のフ ォーマットが単精度浮動小数点フォーマットおよび倍精度浮動小数点フォーマッ トを含み、前記第2のフォーマットは内部拡張精度浮動小数点フォーマットを含 み、前記第1のフォーマット変換論理は前記第1のフォーマットのうちの1つか ら前記第2のフォーマットのうちの1つに選択的に変換し、前記第2のフォーマ ット変換論理は前記第2のフォーマットのうちの1つから前記第1のフォーマッ トのうちの1つに選択的に変換する、請求項32に記載のスーパースカラーデジ タルコンピュータシステム。 34.前記第1のリザベーションステーションが、 前記第1のオペランドバッファに関連した実行待命令記憶装置をさらに含み、 前記実行待命令記憶装置は前記第1のタイプの命令を受取るよう前記命令デコー ダに結合され、さらに 前記算術ユニットの前記結果出力と前記算術ユニットの前記オペランド入力と の間に結合された高速転送データ経路を含み、前記高速転送データ経路は前記第 1のフォーマット結果を前記算術ユニットに選択的に与え、さらに 前記実行待命令記憶装置においてバッファされた命令に関するオペランドと前 記第1のフォーマット結果との一致を検出するための手段を含み、前記検出手段 は前記実行待命令記憶装置と前記高速転送データ経路との間に結合され、一致を 検出することにより前記検出手段が前記高速転送データ経路を選択的に能動化す る、請求項32に記載のスーパースカラーデジタルコンピュータシステム。 35.前記第1のフォーマットが、16、32および64ビット整数フォーマッ トをさらに含む、請求項33に記載のリザベーションステーション。 36.前記第1のフォーマット変換論理が前記16、32および64ビット整数 フォーマットから整数オペランドを選択的に変換して、前記内部拡張精度フォー マットの通常のアライメント内の非正規化浮動小数点値として前記整数オペラン ドをエンコーディングし、前記整数オペランドを選択的に変換することにより前 記浮動小数点機能ユニットの前記算術ユニットが前記整数オペランドで演算でき るようになる、請求項35に記載のリザベーションステーション。 37.前記第1のフォーマット変換論理が前記第2のフォーマットオペランドを 選択的に通過させ、前記第2のフォーマット変換論理が第2のフォーマット結果 を選択的に送って、前記データ記憶装置における浮動小数点レジスタ構成の表記 を可能にする、請求項34に記載のリザベーションステーション。 38.前記データ記憶装置カルジスタファイル/リオーダバッファを備え、前記 浮動小数点レジスタ構成はx86浮動小数点スタックを含み、前記第1および第 2のフォーマット変換論理により、前記第1および第2のフォーマットオペラン ドが前記レジスタファイル/リオーダバッファにおける前記浮動小数点機能ユニ ットの外部に表わされるようになる、請求項37に記載のリザベーションステー ション。 39.複数の機能ユニットを有するプロセッサにおいて、共通オペランドバスか ら第1のデータフォーマットのオペランドおよびオペランドタグを受取り、かつ 共通結果バスに前記第1のデータフォーマットの結果を与える前記複数の機能ユ ニット間で命令を並行して実行するための方法は、 演算コード、前記第1のデータフォーマットにおける演算コード値、および宛 先タグを有する第1の命令をディスパッチするステップと、 前記第1の機能ユニットの第1のリザベーションステーションに、前記第1の 命令ディスパッチステップからの前記第1の命令を記憶するステップと、 前記第1の命令を記憶するステップにおいて記憶された前記第1の命令を前記 第1のリザベーションステーションから前記第1の機能ユニットの第1の実行装 置に発行するステップと、 前記第1の命令ディスパッチステップからの前記第1の命令を前記第1の実行 装置において実行するステップと、 演算コード、オペランドタグおよび宛先タグを有する第2の命令をディスパッ チするステップと、 第2の機能ユニットの第2のリザベーションステーションに、前記第2の命令 ディスパッチステップからの前記第2の命令を記憶するステップと、 前記結果バスの結果値に関連したタグと前記第2の命令の前記オペランドタグ との一致を検出するステップと、 前記第2のリザベーションステーションにおける前記結果値を前記第2の命令 のオペランド値として記憶するステップと、 前記結果データ記憶ステップにおいて記憶された前記結果データを含む、前記 第2の命令記憶ステップにおいて記憶された前記第2の命令を、前記第2のリザ ベーションステーションから前記第2の機能ユニットの第2の実行装置に発行す るステップと、 前記第2の命令発行ステップからの前記第2の命令を前記第2の実行装置にお いて実行するステップとを備え、 前記第1の命令実行ステップおよび前記第2の命令実行ステップのうちの一方 が、 前記第2のデータフォーマットで命令の実行を行なうステップと、 前記命令の実行を行なうステップの結果を前記第1のデータフォーマットで前 記結果バスに与えるステップとを備える、方法。 40.複数の機能ユニットを有するプロセッサにおいて、第1のデータフォーマ ットにおいてオペランドを受取り、かつ前記第1のデータフォーマットにおける 結果を共通結果バスに与える、前記複数の機能ユニット間で並行して命令を実行 するための方法は、 第1の機能ユニットに第1の命令をディスパッチするステップを備え、前記第 1の命令は演算コードおよびタグを有し、前記第1の機能ユニットは第1のリザ ベーションステーションおよび第1の実行装置を有し、さらに 前記第1の機能ユニットに第1のオペランドを与えるステップを備え、前記第 1のオペランドは前記第1の命令に関連し、さらに 前記第1のリザベーションステーションに、前記第1の命令ディスパッチステ ップからの前記第1の命令を記憶するステップと、 前記第1のリザベーションステーションに、前記第1のオペランドを与えるス テップからの前記第1のオペランドを記憶するステップと、 前記第1の実行装置において、前記第1のオペランド記憶ステップにおいて記 憶された前記第1のオペランドによって、前記第1の命令記憶ステップにおいて 記憶された前記第1の命令を実行するステップと、 前記第1の命令実行ステップからの第1の結果を前記結果バスに与えるステッ プと、 前記第1の命令記憶ステップにおいて記憶された前記第1の命令からの前記タ グを、前記第1の結果を与えるステップにおいて与えられた前記第1の結果に関 連づけるステップと、 第2の命令を第2の機能ユニットにディスパッチするステップとを備え、前記 第2の命令は演算コードおよびタグを有し、前記第2の機能ユニットは第2のリ ザベーションステーションおよび第2の実行装置を有し、さらに 前記第2の機能ユニットに第2のオペランドを与えるステップを備え、前記第 2のオペランドは前記第2の命令に関連し、さらに 前記第2のリザベーションステーションに、前記第2の命令ディスパッチステ ップからの前記第2の命令を記憶するステップと、 前記第2のリザベーションステーションに、前記第2のオペランドを与えるス テップからの前記第2のオペランドを記憶するステップと、 前記第2のオペランドを前記第1のデータフォーマットから第2のデータフォ ーマットに変換するステップと、 前記第2の実行装置において、前記第2のオペランド変換ステップからの前記 変換された第2のオペランドによって、前記第2の命令記憶ステップにおいて記 憶された前記第2の命令を実行するステップと、 前記第2のデータフォーマットから前記第1のデータフォーマットに第2の結 果を変換するステップとを備え、前記第2の結果は前記第2の命令実行ステップ からのものであり、さらに 前記第2の結果変換ステップからの前記変換された第2の結果を前記結果バス に与えるステップと、 前記第2の命令記憶ステップにおいて記憶された前記第2の命令からの前記タ グを前記変換された第2の結果を与えるステップにおいて与えられた前記変換さ れた第2の結果に関連づけるステップとを備え、 前記第1のオペランドを与えるステップおよび前記第2のオペランドを与える ステップのうち一方が、 オペランドタグを与えるステップと、 前記オペランドタグと前記結果バスの結果に関連したタグとの一致を検出する ステップと、 前記結果バスからオペランドとして前記結果を受取るステップとを備える、方 法。 41.算術ユニットを有する浮動小数点ユニットのためのリザベーションステー ションにおいて、複数の第1のデータフォーマットから第2のデータフォーマッ トに浮動小数点オペランドを変換するための方法であって、前記各第1のデータ フォーマットは符号、指数および有効数字を含み、前記第2のデータフォーマッ トは符号、指数および有効数字を含み、前記方法は、 演算コードおよびオペランドを有する命令を受取るステップを備え、前記オペ ランドは前記複数の第1のデータフォーマットのうちの1つで表わされ、前記演 算コードは前記オペランドの前記データフォーマットを示し、さらに 前記命令受取ステップにおいて受取られた命令をバッファに記憶するステップ と、 前記命令記憶ステップにおいて記憶された前記演算コードおよびオペランドを 含む前記命令を前記バッファから取出すステップと、 前記命令取出しステップにおいて取出された前記演算コードを検査することに より、前記命令取出しステップにおいて取出された前記オペランドのフォーマッ トを決定するステップと、 前記命令取出しステップにおいて取出された前記オペランドを前記第2のデー タフォーマットに変換するステップとを備え、前記オペランド変換ステップは、 前記命令取出しステップにおいて取出された前記オペランドの符号に等しい符 号ビットを与えるステップと、 前記命令取出しステップにおいて取出された前記オペランドの指数のバイアス を調整することにより、変換された指数フィールドを与えるステップとを備え、 前記バイアス調整は、前記第2のデータフォーマットに関する前記指数バイアス と前記フォーマット決定ステップにおいて決定されたフォーマットに関する指数 バイアスとの差に等しく、さらに前記オペランド変換ステップは、 前記命令取出しステップにおいて取出された前記オペランドの有効数字を、前 記変換された有効フィールドの最上位ビットにシフトし、かつ前記変換された有 効フィールドの残りの低位ビットすべてをゼロで満たすことにより、変換された 有効フィールドを与えるステップを備え、さらに前記方法は、 前記命令取出しステップにおいて取出された前記演算コードおよび前記符号ビ ット、変換された指数フィールドならびに前記オペランド変換ステップにおいて 与えられた前記変換された有効フィールドを含む命令を前記算術ユニットに発行 するステップを備える、方法。 42.前記複数の第1のデータフォーマットが、単精度浮動小数点フォーマット 、倍精度浮動小数点フォーマットおよび外部拡張精度浮動小数点フォーマットを 含み、前記第2のデータフォーマットは内部拡張精度浮動小数点フォーマットで ある、請求項41に記載の方法。 43.前記変換された指数フィールドを与えるステップにおけるバイアス調整が 、前記命令取出しステップにおいて取出された前記オペランドの指数に、予め定 められたバイアス調整定数を加算することにより行なわれ、前記予め定められた 定数は、前記第2のデータフォーマットに関する前記指数バイアスと前記フォー マット決定ステップにおいて決定されたフォーマットに関する前記指数バイアス との差に等しく、前記加算は単一インバータを含む加算器を用いて行なわれる、 請求項41に記載の方法。 44.操作バス、オペランドバス、オペランドタグバス、結果バスおよび結果タ グバスを有するプロセッサのための機能ユニットであって、 浮動小数点演算コードフィールド、オペランドフィールドおよびオペランドタ グフィールドを有するメモリと、 前記演算コードバス、前記オペランドバスおよび前記タグバスから、前記メモ リの、選択されたフィールドに演算パラメータを制御可能に書込むための書込経 路とを備え、前記演算パラメータは第1のタイプの書込事象に関しては前記操作 バスからの演算コードと前記オペランドバスからの第1の外部フォーマットのオ ペランドとを含み、さらに 前記メモリからの前記第1の外部フォーマットのオペランドを順に制御可能に 発行するための読出経路と、 前記読出経路から発行された前記オペランドを前記第1の外部フォーマットか ら内部フォーマットに変換するための第1のフォーマット変換器と、 前記フォーマット変換器からの、内部的にフォーマット化されたオペランドで の演算に基づいた結果を与えるための実行装置とを備え、前記結果は内部フォー マットにあり、さらに 前記実行装置からの結果を前記内部フォーマットから第2の外部フォーマット に変換するための第2のフォーマット変換器を備える、機能ユニット。 45.前記メモリが、単一命令に対応する演算パラメータに関する多重フィール ドを有する単一エントリメモリである、請求項44に記載の機能ユニット。 46.前記メモリが多重エントリメモリであり、前記各エントリは単一命令に対 応する演算パラメータに関する多重フィールドを有し、前記書込経路は、前記演 算コードバス、前記オペランドバスおよび前記タグバスからの演算パラメータを 、前記メモリの、選択されたエントリのうちの選択されたフィールドに制御可能 に書込む、請求項44に記載の機能ユニット。 47.前記実行装置が浮動小数点算術ユニットであり、前記第1の外部フォーマ ットおよび前記第2の外部フォーマットの各々は単一精度浮動小数点フォーマッ ト、倍精度浮動小数点フォーマットおよび外部拡張精度浮動小数点フォーマット を含む外部フォーマットの組から独立して選択され、前記内部フォーマットは内 部拡張精度フォーマットである、請求項44に記載の機能ユニット。 48.前記第1の外部フォーマットおよび前記第2の外部フォーマットが同じフ ォーマットである、請求項47に記載の機能ユニット。 49.前記外部フォーマットの組が16、32および64ビット整数フォーマッ トをさらに含む、請求項47に記載の機能ユニット。 50.前記第1のフォーマット変換器が、外部16、32および64ビット整数 フォーマットから整数オペランドを選択的に変換して、前記内部拡張精度フォー マットの通常のアライメント内の非正規化浮動小数点値として前記整数オペラン ドをエンコーディングし、前記第2のフォーマット変換器は前記外部16、32 および64ビット整数フォーマットのうちの1つに非正規化浮動小数点結果値を 選択的に変換し、前記整数オペランドの選択的な変換により、前記算術ユニット が整数オペランドで演算しかつ整数結果を与えることができるようにする、請求 項49に記載の機能ユニット。 51.前記第1のフォーマット変換器が、Nビット指数入力、インバータおよび Mビット指数出力を備えたバイアス調整加算器を含み、前記N番目の入力ビット は前記M番目の出力ビットに結合され、N−1から1までの入力ビットはN−1 から1までの出力ビットにそれぞれ結合され、前記インバータは前記N番目の入 力ビットとM−1からNまでの出力ビットとの間に結合され、ただしMはNより 大きい、請求項44に記載のリザベーションステーション。 52.前記演算パラメータは、第2のタイプの書込事象に関しては前記演算コー ドバスからの演算コードと前記オペランドタグバスからのオペランドタグとを含 み、第3のタイプの書込事象に関しては前記結果タグバスからの結果タグと前記 結果バスからの結果とを含み、前記機能ユニットはさらに、 前記結果タグバスの前記結果タグと前記メモリにおける前記オペランドタグの いずれかとの間の整合を検出するための整合検出回路と、 前記整合検出回路に応答して、前記結果バスからの結果を、前記整合するオペ ランドタグを含む前記メモリエントリのオペランドフィールドに書込むためのメ モリ更新経路とを備える、請求項44に記載の機能ユニット。 53.演算コードバス、第1および第2のオペランドバス、第1および第2のオ ペランドタグバス、宛先タグバス、結果バスならびに結果タグバスを有するスー パースカラープロセッサのための機能ユニットであって、 複数のエントリを有するメモリを備え、前記各エントリは、浮動小数点演算コ ードフィールド、第1および第2のオペランドフィールド、第1および第2のオ ペランドタグフィールドならびに宛先タグフィールドを含み、さらに 前記演算コードバス、前記第1および第2のオペランドバス、前記第1および 第2のタグバスならびに前記宛先タグバスからの演算パラメータを、前記メモリ の、選択されたエントリに制御可能に書込むための書込経路とを備え、前記演算 パラメータは、 第1のタイプの書込事象に関しては、前記演算コードバスからの浮動小数点演 算コードと、前記第1および第2のオペランドバスからの外部フォーマットにお ける第1および第2の浮動小数点オペランドとを含み、さらに 第2のタイプの書込事象に関しては、前記演算コードバスからの演算コードと 、前記第1および第2のオペランドタグバスからの第1および第2のオペランド タグとを含み、さらに 第3のタイプの書込事象に関しては、前記演算コードバスからの浮動小数点演 算コードと、前記第1および第2のオペランドバスのうちの1つからの前記第1 および第2の浮動小数点オペランドのうちの1つと、前記第1および第2のオペ ランドタグバスのうちの1つからの前記第1および第2のオペランドタグバスの うちの1つとを含み、さらに 第4のタイプの書込事象に関しては、前記結果タグバスからの結果タグと、前 記結果バスからの前記外部フォーマットにおける結果とを含み、さらに前記機能 ユニットは、 前記外部フォーマットにおける前記メモリからの前記第1および第2のオペラ ンドを順に制御可能に発行するための読出経路と、 前記結果タグバスの前記結果タグと前記メモリの前記第1および第2のオペラ ンドタグのうちのいずれかとの間の整合を検出するための整合検出回路と、 前記整合検出回路に応答して、前記結果バスからの結果を、前記整合オペラン ドタグを含む前記メモリエントリの前記オペランドフィールドに書込むためのメ モリ更新経路と、 前記メモリから発行された前記オペランドを内部フォーマットに変換するため の第1のフォーマット変換器と、 前記フォーマット変換器からの前記第1および第2の内部的にフォーマット化 されたオペランドでの演算に基づいた結果を与えるための算術ユニットと、 前記算術ユニットからの結果を前記外部フォーマットに変換するための第2の フォーマット変換器と、 前記第1のフォーマット変換器、前記算術ユニットおよび前記第2のフォーマ ット変換器における発行されたエントリの前記オペランドの処理に並行して、前 記メモリの、前記発行されたエントリの前記宛先タグをラッチするための宛先タ グラッチ回路と、 前記外部フォーマットの結果を前記第2のフォーマット変換器から前記結果バ スに駆動するための駆動回路とを備える、機能ユニット。 54.演算コードを送出するための演算コードバス、外部フォーマットにおいて オペランドを送出するためのオペランドバス、オペランドタグを送出するための オペランドタグバス、宛先タグを送出するための宛先タグバス、前記外部フォー マットで結果を送出するための結果バスおよび結果タグを送出するための結果タ グバスを有するスーパースカラープロセッサのための機能ユニットであって、 複数のデータエントリを含むFIFOメモリを備え、前記各データエントリは 演算コードフィールド、オペランドフィールド、オペランドタグフィールドおよ び宛先タグフィールドを含み、前記メモリは演算コード出力、オペランド出力お よび宛先タグ出力を含み、さらに 前記FIFOメモリの前記演算コードフィールドを前記演算コードバスに制御 可能に結合する第1の書込経路と、 前記FIFOメモリの前記オペランドフィールドを前記オペランドバスに制御 可能に結合する第2の書込経路と、 前記FIFOメモリの前記オペランドタグフィールドを前記演算コードタグバ スに制御可能に結合する第3の書込経路と、 前記FIFOメモリの前記結果フィールドを前記結果バスに制御可能に結合す る第4の書込経路と、 前記結果タグバスおよび前記オペランドタグフィールドに結合された入力と、 前記第3の書込経路に結合されて前記FIFOメモリの前記結果フィールドのう ちの一致するものを前記結果バスに結合することを制御するための制御出力とを 有する一致検出回路と、 前記メモリのオペランド出力に結合された入力および出力を有する外部−内部 フォーマット変換器と、 前記外部−内部変換器の出力に結合された入力および出力を有する算術ユニッ トと、 前記算術ユニットの出力に結合された入力および出力を有する内部−外部フォ ーマット変換器と、 前記メモリの前記宛先タグ出力に結合された入力および出力を有する宛先タグ ラッチ回路と、 前記宛先タグパイプラインの出力および前記算術ユニットの出力に結合された それぞれの入力および前記結果バスに結合された出力とを有するドライバ回路と を備える、機能ユニット。 55.共通演算コードバス、共通オペランドバスおよび共通結果バスに結合され た複数の機能ユニットを有するプロセッサにおいて、前記機能ユニットのうちの 1つにおいてデータを処理するための方法は、 前記演算コードバスからの演算コードおよび前記オペランドバスからの外部フ ォーマットのオペランドをメモリに書込むステップと、 前記メモリから前記オペランドを発行するステップと、 前記第1のオペランド発行ステップからの前記オペランドを第1の内部フォー マットに変換するステップと、 前記オペランド変換ステップからの前記オペランドでの演算に基づいた結果を 与えるステップとを含み、前記結果は第2の内部フォーマットであり、さらに 前記第1の結果を与えるステップからの結果を前記外部フォーマットに変換す るステップを含む、方法。 56.前記第1および第2の内部フォーマットが同一である、請求項55に記載 の方法。 57.共通演算コードバス、共通オペランドバス、共通オペランドタグバス、共 通結果バスおよび共通結果タグバスに結合された複数の機能ユニットを有するプ ロセッサにおいて、前記機能ユニットのうちの1つにおいてデータを処理するた めの方法は、 前記演算コードバスからの第1の演算コードおよび前記オペランドバスからの 関連したオペランドタグをメモリに書込むステップと、 前記第1の演算コードおよびオペランドタグ書込ステップの後に、前記演算コ ードバスからの第2の演算コードおよび前記オペランドバスからの外部フォーマ ットの関連したオペランドを前記メモリに書込むステップと、 前記結果タグバスの結果タグと前記第1の演算コードに関連した前記メモリに おける前記オペランドタグとの一致を検出するステップと、 前記結果バスからの第1の結果を前記メモリに書込むステップとを含み、前記 第1の結果は前記第1の演算コードに関連したオペランドであり、さらに 前記メモリからの前記第1の演算コードおよび前記第2の演算コードに関連し た前記オペランドを順に発行するステップと、 前記発行ステップからの前記オペランドを順に内部フォーマットに変換するス テップと、 前記内部フォーマット変換ステップからの前記オペランドでの演算に基づいた 結果を順に与えるステップと、 前記与えるステップからの結果を順に前記外部フォーマットに変換するステッ プとを含む、方法。
JP9513395A 1995-09-26 1996-07-19 浮動小数点処理装置のためのリザベーションステーション Pending JPH11511579A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/533,725 US5878266A (en) 1995-09-26 1995-09-26 Reservation station for a floating point processing unit
US08/533,725 1995-09-26
PCT/US1996/012006 WO1997012317A1 (en) 1995-09-26 1996-07-19 Reservation station for a floating point processing unit

Publications (1)

Publication Number Publication Date
JPH11511579A true JPH11511579A (ja) 1999-10-05

Family

ID=24127197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9513395A Pending JPH11511579A (ja) 1995-09-26 1996-07-19 浮動小数点処理装置のためのリザベーションステーション

Country Status (5)

Country Link
US (2) US5878266A (ja)
EP (1) EP0870227A1 (ja)
JP (1) JPH11511579A (ja)
KR (1) KR19990063734A (ja)
WO (1) WO1997012317A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022531403A (ja) * 2019-05-03 2022-07-06 テスラ,インコーポレイテッド 指定したバイアスを用いた浮動小数点演算を用いた行列乗算命令のためのシステム及び方法
JP2022184701A (ja) * 2021-06-01 2022-12-13 晶心科技股▲ふん▼有限公司 共有機能部を有するマイクロプロセッサ

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6061749A (en) * 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6289437B1 (en) * 1997-08-27 2001-09-11 International Business Machines Corporation Data processing system and method for implementing an efficient out-of-order issue mechanism
US6061782A (en) * 1997-11-29 2000-05-09 Ip First Llc Mechanism for floating point to integer conversion with RGB bias multiply
US6253311B1 (en) * 1997-11-29 2001-06-26 Jp First Llc Instruction set for bi-directional conversion and transfer of integer and floating point data
US6289365B1 (en) * 1997-12-09 2001-09-11 Sun Microsystems, Inc. System and method for floating-point computation
US6055554A (en) 1998-03-04 2000-04-25 Internatinal Business Machines Corporation Floating point binary quad word format multiply instruction unit
US6157998A (en) * 1998-04-03 2000-12-05 Motorola Inc. Method for performing branch prediction and resolution of two or more branch instructions within two or more branch prediction buffers
KR100322277B1 (ko) * 1998-11-20 2002-03-08 권 기 홍 확장 명령어를 가진 중앙처리장치
US20030046516A1 (en) * 1999-01-27 2003-03-06 Cho Kyung Youn Method and apparatus for extending instructions with extension data of an extension register
US6748107B1 (en) * 1999-08-05 2004-06-08 Microsoft Corporation Implementation and uses of XsRGB
US6363523B1 (en) * 1999-11-12 2002-03-26 Sun Microsystems, Inc. Optimization of N-base typed arithmetic expressions
US7207037B2 (en) * 1999-11-12 2007-04-17 Sun Microsystems, Inc. Overflow sensitive arithmetic instruction optimization using chaining
US8453133B2 (en) * 1999-11-12 2013-05-28 Oracle America, Inc. Optimization of N-base typed arithmetic instructions via rework
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US7319700B1 (en) * 2000-12-29 2008-01-15 Juniper Networks, Inc. Communicating constraint information for determining a path subject to such constraints
US7243217B1 (en) 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
US6976153B1 (en) * 2002-09-24 2005-12-13 Advanced Micro Devices, Inc. Floating point unit with try-again reservation station and method of operation
US7293162B2 (en) * 2002-12-18 2007-11-06 Fujitsu Limited Split data-flow scheduling mechanism
KR20050119125A (ko) * 2003-03-19 2005-12-20 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 프로세서
CN100340999C (zh) * 2003-11-14 2007-10-03 微星科技股份有限公司 一种数字音乐转换装置
US20050228844A1 (en) * 2004-04-08 2005-10-13 International Business Machines Corporation Fast operand formatting for a high performance multiply-add floating point-unit
US20110060892A1 (en) * 2009-09-09 2011-03-10 Via Technologies, Inc. Speculative forwarding of non-architected data format floating point results
US10289412B2 (en) * 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US10175985B2 (en) 2016-03-28 2019-01-08 International Business Machines Corporation Mechanism for using a reservation station as a scratch register
US10719056B2 (en) * 2016-05-02 2020-07-21 International Business Machines Corporation Merging status and control data in a reservation station
US10990389B2 (en) 2019-04-29 2021-04-27 Micron Technology, Inc. Bit string operations using a computing tile

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3930232A (en) * 1973-11-23 1975-12-30 Raytheon Co Format insensitive digital computer
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
JPS59149539A (ja) * 1983-01-28 1984-08-27 Toshiba Corp 固定小数点−浮動小数点変換装置
US4789956A (en) * 1985-10-16 1988-12-06 Harris Corp. Maximum negative number detector
JPS63259727A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd コプロセツサのインタ−フエイス方式
US4823260A (en) * 1987-11-12 1989-04-18 Intel Corporation Mixed-precision floating point operations from a single instruction opcode
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5155816A (en) * 1989-02-10 1992-10-13 Intel Corporation Pipelined apparatus and method for controlled loading of floating point data in a microprocessor
US5155820A (en) * 1989-02-21 1992-10-13 Gibson Glenn A Instruction format with designations for operand lengths of byte, half word, word, or double word encoded in address bits
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US4941120A (en) * 1989-04-17 1990-07-10 International Business Machines Corporation Floating point normalization and rounding prediction circuit
US5058048A (en) * 1990-04-02 1991-10-15 Advanced Micro Devices, Inc. Normalizing pipelined floating point processing unit
US5206828A (en) * 1990-04-02 1993-04-27 Advanced Micro Devices, Inc. Special carry save adder for high speed iterative division
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5053631A (en) * 1990-04-02 1991-10-01 Advanced Micro Devices, Inc. Pipelined floating point processing unit
US5128888A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. Arithmetic unit having multiple accumulators
US5095458A (en) * 1990-04-02 1992-03-10 Advanced Micro Devices, Inc. Radix 4 carry lookahead tree and redundant cell therefor
JP3178746B2 (ja) * 1991-09-25 2001-06-25 松下電器産業株式会社 浮動小数点数のためのフォーマット変換装置
US5262973A (en) * 1992-03-13 1993-11-16 Sun Microsystems, Inc. Method and apparatus for optimizing complex arithmetic units for trivial operands
US5257215A (en) * 1992-03-31 1993-10-26 Intel Corporation Floating point and integer number conversions in a floating point adder
US5450607A (en) * 1993-05-17 1995-09-12 Mips Technologies Inc. Unified floating point and integer datapath for a RISC processor
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
WO1995031767A1 (en) * 1994-05-11 1995-11-23 Vlsi Technology, Inc. Floating-point processor with apparent-precision based selection of execution-precision
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022531403A (ja) * 2019-05-03 2022-07-06 テスラ,インコーポレイテッド 指定したバイアスを用いた浮動小数点演算を用いた行列乗算命令のためのシステム及び方法
JP2022184701A (ja) * 2021-06-01 2022-12-13 晶心科技股▲ふん▼有限公司 共有機能部を有するマイクロプロセッサ

Also Published As

Publication number Publication date
US6122721A (en) 2000-09-19
WO1997012317A1 (en) 1997-04-03
US5878266A (en) 1999-03-02
EP0870227A1 (en) 1998-10-14
KR19990063734A (ko) 1999-07-26

Similar Documents

Publication Publication Date Title
JPH11511579A (ja) 浮動小数点処理装置のためのリザベーションステーション
US5761105A (en) Reservation station including addressable constant store for a floating point processing unit
JP4344870B2 (ja) 特殊浮動小数点数の迅速な検出のための浮動小数点値のタグ付け
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US5940311A (en) Immediate floating-point operand reformatting in a microprocessor
US6108772A (en) Method and apparatus for supporting multiple floating point processing models
US5805475A (en) Load-store unit and method of loading and storing single-precision floating-point registers in a double-precision architecture
US7113969B1 (en) Formatting denormal numbers for processing in a pipelined floating point unit
US6490607B1 (en) Shared FP and SIMD 3D multiplier
US5917741A (en) Method and apparatus for performing floating-point rounding operations for multiple precisions using incrementers
US6487575B1 (en) Early completion of iterative division
US6105129A (en) Converting register data from a first format type to a second format type if a second type instruction consumes data produced by a first type instruction
JP3618821B2 (ja) 複数の型のオペレーションを同時並列で実行するためのプロセッサコア、およびオペレーションに用いられるオペランドデータを処理し通信する方法
US5748516A (en) Floating point processing unit with forced arithmetic results
US5931943A (en) Floating point NaN comparison
US5675758A (en) Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
US6405305B1 (en) Rapid execution of floating point load control word instructions
US6148395A (en) Shared floating-point unit in a single chip multiprocessor
US6247117B1 (en) Apparatus and method for using checking instructions in a floating-point execution unit
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JP2004537084A (ja) 電力管理のための性能抑制機構を採用するマイクロプロセッサ
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
EP0653703A1 (en) Temporary pipeline register file for a superpipelined superscalar processor
US5884062A (en) Microprocessor with pipeline status integrity logic for handling multiple stage writeback exceptions
US5991863A (en) Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor