JPH01140330A - 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル - Google Patents

高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル

Info

Publication number
JPH01140330A
JPH01140330A JP63228290A JP22829088A JPH01140330A JP H01140330 A JPH01140330 A JP H01140330A JP 63228290 A JP63228290 A JP 63228290A JP 22829088 A JP22829088 A JP 22829088A JP H01140330 A JPH01140330 A JP H01140330A
Authority
JP
Japan
Prior art keywords
floating point
cpu
instruction
instructions
execution
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
JP63228290A
Other languages
English (en)
Inventor
Sorin Iacobovici
ソリン イアコボビッチ
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor 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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of JPH01140330A publication Critical patent/JPH01140330A/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
    • 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
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 斂排分互 本発明はデータ処理方式乃至はシステムに関するもので
あって、更に詳細には、浮動小数点例外の正確さを犠牲
にすること無しに、システムの中央処理装置(CPU)
の実行装置を越えて浮動小数点命令の実行をパイプライ
ン動作させることを可能とする新規なスレーブインター
フェースプロトコルに関するものである。
死末皮4 最近の先例を見ない発展にも拘らず、今日のVLSI技
術は、分向、コンピュータ設計者に、どの特徴をCPU
チップに集積化させるか又どの特徴をコブロセサ(協働
プロセサ、coprocessor)チップ内に組み込
むかを決定することを強制している。幾つかの例外を除
き、CPU用の浮動小数点計算サポートはコブロセサ内
において実施される。
浮動小数点サポートをコブロセサ内において実現するこ
とには2つの主要な利点がある。第1に、浮動小数点装
置(FPU)に対するCPUサポートは、完全な浮動小
数点機能をCPUチップ上に組み込むことよりも、必要
とするトランジスタの数は著しく少ない。残りのトラン
ジスタを使用してCPU!!数性能を増大させることが
可能である。
第2に、高浮動小数点性能が絶対的に必要なものではな
い場合には、浮動小数点命令(FP命令)をソフトウェ
アでエミュレートすることが可能であり、従って浮動小
数点装置チップに対する必要性を取り除くことによって
システムのコストを低下させることが可能である。
別体の浮動小数点装置チップ上で浮動小数点サポートを
実現することの欠点は1通常、CPU−FPU通信オー
バーヘッドの為に性能が低いことと、能率的なCPU−
FPU通信プロトコルをサポートする為に必要とされる
CPUピン数が高いことである。
浮動小数点命令は、マイクロプロセサの現在の技術水準
の命令アーキテクチャ−の位置である。
そうであるから、FP全命令、その命令がオンチップ浮
動小数点実行装置によって実行されるか又はオフチップ
浮動小数点装置によって実行されるかに拘らずマイクロ
プロセサをベースにしたシステムにおいて同一的に実行
されねばならない。この場合に、同一的な実行とは、浮
動小数点命令例外(FP例外)の場合に同一の結果及び
同一の応答の両方のことを意味する。
例外は、命令実行の通常のシーケンス即ち順番を変化さ
せる条件、イベント(事象)及びエラーである。
典型的なマイクロプロセサアーキテクチャ−は、単精度
(32ビツト)及び倍精度(64ビツト)の両方に対し
て多数の浮動小数点レジスタ(FPレジスタ)を使用し
ている。これらのレジスタは、マイクロプロセサの汎用
レジスタである整数レジスタを補充するものである。マ
イクロプロセサ命令組の実現において、命令タイプは、
どのタイプのレジスタを使用すべきであるかを示す。例
えば、1つ又はそれ以上のレジスタオペランドを持った
FP全命令、FPレジスタを使用することを示す。
この基準に対する例外は、整数/浮動小数点変換及び浮
動小数点/整数変換命令であり、それらは浮動小数点オ
ペランドに対してはFPレジスタを使用することを又整
数オペランドに対しては汎用レジスタを使用することを
示す。
ある場合には、FP全命令フェイルして、IEEE75
4スタンダードによって決められている例外の1つを発
生する場合が成る。この様なスタンダードな例外の1例
は、有限数をOで割算する試みがなされる場合である。
例外タイプは、典型的に浮動小数点ステータスレジスタ
として指定されるマイクロプロセサアーキテクチャによ
って構成される別のレジスタ内にステータスビットによ
って表される。例外の発生によってセントされると、こ
れらのビットはソフトウェアによってクリアされる迄不
変のまま残存する。浮動小数点ステータスレジスタのそ
の他のビットは、該ソフトウェアがFP例外の各タイプ
を別々にマスクすることを可能とさせる。マスクされて
いないFP例外の発生は、浮動小数点ステータスレジス
タの適切なステータスビットをセットし且つCPUをト
ラップし、一方マスクしたFP例外の発生は、浮動小数
点ステータスレジスタの対応するステータスビットのみ
をセットする。
典型的に、特別のタイプのインタラブド(割込み)即ち
Trap (FPU)がマスクされていないFP例外に
対してマイクロプロセサアーキテクチャ−によって構成
される。マスクされていないFP例外が発生すると、C
PUはフェイルした命令のプログラムカウンタ値を格納
し且つ特別のルーチンヘジャンプする。Trap (F
PU)サービスルーチンは、その例外を発生した問題を
ソフトウェア内に固定し且つ該FP全命令再実行する場
合がある。FP例外処理ルーチンは、通常、浮動小数点
ライブラリーの一部である。
FP例外がサービスされる時に格納したシステムステー
タスは常にシーケンシャル(逐次的)なアーキテクチャ
−モデルと一致しているので、マスクされていないFP
例外は正確なインタラブドを発生する。アーキテクチャ
−のパイプライン型実現において正確なインタラブドを
達成する為に特別の注意を払うへきである。このことは
、パイプライン型命令は、シーケンシャルアーキテクチ
ャ−モデルによって決定されるものと異なった順番でシ
ステムステータスを修正する場合があるという事実に起
因するものである。
上述した如く、マイクロプロセサは、通常、別体の浮動
小数点装置コブロセサにおいて浮動小数点アーキテクチ
ャ−を実現する。即ち、浮動小数点装置は、CPUに対
しての遠隔浮動小数点実行装置の役割を担う。そうであ
るから、CPUは実行されるべき命令及びイベントメモ
リオペランドを77動小数点装置へ送給する。FPレジ
スタ及び浮動小数点ステータスレジスタは浮動小数点装
置チップの一部として実現される。その結果、FP命令
オペランドがFPレジスタ内にある場合に、そのオペラ
ンドを読取又は書き込む為にCPUのサポートは必要と
はされない。
浮動小数点装置によるFP命令実行の終わりに。
CPUは通常法の命令へ進むことが自由である。
然し乍ら、成る場合にそうではなくて、例えば、浮動小
数点比較命令の場合における如<CPUプロセサステー
タスレジスタにおけるビットをFP全命令変化させる場
合、又はFP命令実行の間にFP何例外発生する場合等
である。
上述した2つの条件は1通常、特別のラインrTrap
Jをアサート即ち活性化させることにより浮動小数点装
置によってCPUに対して信号を送ることが可能である
その他の全ての場合において、浮動小数点装置は、別の
ラインrDoneJをアサートすることによってFP全
命令所定の通りに完了したことを表す信号を発する。F
P命令宛先がFP全命令1つである場合には、CPUは
そのまま手続を進めることが可能である。その宛先がメ
モリ内にある場合には、CPUは浮動小数点装置からの
結果をメモリ内に格納せねばならない。
正確なFP何例外維持する為の直接的な解決法は、浮動
小数点装置によるFP命令実行の結果が既知となる迄、
CPUをストール即ち機能停止状態とさせておくことで
ある。FPレジスタ内の1つに宛先を持ったFP全命令
場合における如く。
現在のFP全命令支持する為にCPUによってエキスト
ラな作業を行なうことが必要でない場合でも、CPUは
次の命令に進む前にrDoneJ信号を待つ。その結果
、FP何例外発生すると、その例外をサービス即ち実施
する前に適切なプログラムカウンタ値PC及びシステム
ステータスが操作システムによってセーブ(保存)され
る。
第1図は、典型的な現在の技術水準の32ビツトマイク
ロプロセサのCPU−FPUクラスタを示したシステム
ブロック図である。CPUl0は浮動小数点袋gf12
へ命令及びメモリオペランドを書き込み、且つ第2図に
示したtイミング線図に示される如く、特別の2クロツ
クスレーブパストランザクシヨンを使用して、浮動小数
点装置12から結果及びステータスを読み取る。CPU
パッケージピンを節約する為に、CPU−FPUインタ
ーフェースは、データバス及び幾つかの特別の制御ライ
ン(SPC,DONE、TRAP)を使用する。
CPU−FPUバスを包含する浮動小数点装置12及び
CPUl0の異なった資源におけるFP全命令よって使
われる時間は第3図によって表される。第3図に示した
例は、レジスタ対しジスタFP命令、即ち両方のオペラ
ンドを有し且っFPレジスタ内に宛先を有する命令であ
る。第3図は、デコードされたFP全命令CPU実行に
到達した時から、浮動小数点装置12からのrDone
J信号が処理されて、CPUl0が次の命令で続行する
ことを許容する迄の実行フェーズのみを示している。
第3図に示した浮動小数点実行装置はパイプライン構成
とされている0本例における該FPU実行装置の処理能
力は2クロツクサイクルであり。
一方その待ち時間は6クロツクサイクルであり。
即ち3段パイプライン構成である。このことは。
現在の技術水準の浮動小数点データバスチップの内部ア
ーキテクチャ−及び性能と適合性がある。
該性能を特定する為に使用されるクロックサイクルはC
PU等価クロックである。
第3図に示した如く、FP命令実行時間は1表示した全
てのステージにおける命令によって使用される時間の和
である。そうであるから、この実現の場合、命令処理能
力は、命令待ち時間と等しい。従って、加算フロート(
浮動)、減算フロート、又は乗算フロート等の簡単な命
令に対する高FPU実行装置処理能力(命令光たり2ク
ロツクサイクル)に拘らず、(:PU−FPUクラスタ
はこれらのFP全命令14クロツクサイクルで実行する
。上述した如く、この高オーバーヘッドは。
従来のCPUは次の命令に進む前にrDoneJ信号を
待つという事実に起因している。このことは正確なFP
全命令達成する簡単な方法ではあるが、それはCPU処
理能力を使用する上で非効率的なものである。
且−攻 本発明は、以上の点に鑑みなされたものであって、上述
した如き従来技術の欠点を解消し、従来のプロトコルの
利点を維持し且つ殆どの浮動小数点命令に関連する欠点
を除去した新規なコブロセサインターフェースプロトコ
ルを有するデータ処理方式及び方法を提供することを目
的とする。
青−双 本発明に拠れば、CPU−FPUプロトコルオーバーヘ
ッドを除去する為に、FP命令実行をパイプライン化す
る。以下に説明する如く、二三の特別の場合を除いて、
CPUは、浮動小数点装置へFP命令を供給した後に次
のFP命令へ進む。
供給されたFP命令は、浮動小数点装置内においてキュ
ーされ、それが実行される順番を待つ。FP命令実行の
結果、即ち成功裡に完了したか又は例外のいずれである
かを表す信号が、FP命令が浮動小数点装置へ供給され
たのと同一の順番でCPUによって受は取られる。正確
な浮動小数点例外を維持する為に、CPU内の回復機構
がプログラムカウンタ値及び浮動小数点装置へ供給され
た命令に関係するその他の関連性ある情報を保存する。
本発明の1実施例に拠れば、浮動小数点装置に対して局
所的ではないシステムステータスを変化させるトップオ
ブスタック(Top−of−5tack)等の命令又は
アドレスモードの場合、命令実行はシリアル化即ち直列
化される。即ち、CPUは次の命令に進む前に、停止し
て且つ以前に発行したFP命令が終了するのを待つ。浮
動小数点装置に対して局所的ではないシステムステータ
スは、CPU汎用レジスタ又は特別レジスタ等の浮動小
数点装置内部において使用されていない全てのレジスタ
及び全てのメモリ位置から構成される。本発明の別の実
施例に拠れば、FP命令及び整数命令実行は、整数命令
の実行によって修正されるCPUレジスタの内容を保存
するCPU内の「シャドウレジスタ」を与えることによ
ってオーバーラツプされる。
去i鮮 以下、添付の図面を参考に1本発明の具体的実施の態様
に付いて詳細に説明する。
上述した如く、本発明に拠れば、浮動小数点装置実行装
置が使用可能になる迄浮動小数点装置が発行された命令
をバッファする間にCPUの実行装置が次の命令へ進む
ことを許容することによって、CPU及び浮動小数点装
置(FPU)コブロセサの間のインターフェースに通常
関連するプロトコルオーバーヘッドを取り除いている。
特別の場合を除いて、浮動小数点装置へF命令を発行し
た後に次の整数又は浮動小数点命令(FP命令)の実行
へCPUが進むことを許容することによって、CPU−
FPUクラスタは高処理能力を達成する。以下に更に詳
細に説明する如く、正確な浮動小数点命令例外(FP例
外)を維持する為に回復機構が設けられている。
従来のCPUアーキテクチャ−においては、回復機構が
設けられていないと、新たな命令の実行と共にCPUに
よってシステムステータスが変更される。その結果、F
P命令は不正確となり、従って、CPUアーキテクチャ
−と不適合となる。
このことを防止する為に、従来のCPU実行装置は、以
前の命令の全てが例外無しの点を通過した後にのみ次の
命令へ進行する。
本発明に拠れば、その他の関連性のある情報と共に変化
することの可能なレジスタの内容を、CPU内の特別の
格納機構、即ち浮動小数点命令FIFO(PIF)内に
保存乃至は格納することによってFP例外を正確に保存
することが可能である。該レジスタは、第5図に示した
如く、対応するFP命令が浮動小数点装置へ発行される
時に、浮動小数点命令FIFo内に保存される。現在の
FP命令を浮動小数点装置へ発行するのと並列的に、C
PU実行装置は、命令のプログラムカウンタ値を浮動小
数点命令FIFO内にロードし、且つ特別の場合を除い
て、次の命令へ進行する。CPUがFP命令シーケンス
の実行のみならず、FP命令及び整数命令ともオーバー
ラツプする場合には、プロセサステータスレジスタも浮
動小数点命令FIFO内に保存され、一方整数命令によ
って修正されるべきCPUレジスタは、第5図に示した
如く、「シャドウ(shadow)」レジスタ内に保存
される。
本発明のパイプライン型スレーブプロトコルにおいては
、rDoneJ信号及びrTrapJ信号は、従来技術
に関しての上に説明した非パイプライン型プロトコルに
対してのものと同一の条件を表している。即ち、rDo
neJは成功したFP全命令完了を表し、一方rTra
pJはCPUのPSRを変化させるFP全命令又はマス
クしていないFP何例外発生を表す。浮動小数点装置は
、これらの信号を同一の順番でアサート即ち活性化させ
、その場合に、それらが対応するFP全命令CPUによ
って浮動小数点装置に対して発行されたものである。C
PUによって受は取られた「DoneJ信号は、単に、
浮動小数点命令FIFOを前進させる。その結果、浮動
小数点命令FIFOの出力におけるレジスタ値は、浮動
小数点装置によって現在実行中のFP全命令対応する。
実行中のFP全命令rTrapJ信号をアサートするこ
とによってCPUへ例外の信号を送ると、CPUは修正
したレジスタを浮動小数点命令PIFOの出力からの保
存した値で置換し1次いで該PIFをフラッシュする。
この様に、Trap (FPU)が実行を開始すると、
システムステータスは、正確なFP何例外要求するシー
ケンシャルなアーキテクチャ−モデルと一致する。
2つのパイプライン化スレーブ手法が考えられる。1つ
の手法は、FP全命令整数命令の並列実行、即ちオーバ
ーラッピング、を可能とさせる。
他の手法は、FP全命令みの並列実行を可能とさせる。
 FP全命令整数命令の実行のオーバーラツプは、−層
高い性能を提供することが可能であるが、FP何例外正
確な性質を維持する為にCPU内部において実現される
べき比較的複雑な回復機構を必要とする。この手法の為
のCPU及び浮動小数点操作に付いては、第6図に示し
たフローチャートに詳細に示しである。
第7図は、この手法の為の浮動小数点命令FIFOのコ
ンフィギユレーション即ち形態を示している。
FP全命令整数命令とを並列的に実行することを許容す
る場合、プログラムカウンタPCが浮動小数点命令FI
Fo内に保存されるのみでなく、CPUのプロセサステ
ータスレジスタPSRも保存される。このことが必要と
されるのは、整数命令の幾つかはプログラムステータス
レジスタピットを修正させ且つプログラムステータスレ
ジスタはFP何例外場合にその元の値に回復されねばな
らないからである。
以下に説明する特別の場合を除いて、FP全命令浮動小
数点装置へ発行した後にCPUは次の命令へ進むことが
可能である。CPUの実行装置、CPU−FPUバス、
FPUコントローラ、FPU実行装置等のFP命令実行
のパイプライン化を第4図に示しである。特別の場合が
発生しない限り、CPU−FPUクラスタは、パイプラ
インの最低速度ステージの処理能力に等しいピーク処理
能力を与える(第4図に示した例の場合、レジスタ対し
ジスタFP命令実行に対し2CPUクロツクサイクル)
。このことは、非パイプライン化スレーブインターフェ
ースの場合におけるよりも一層高い処理能力である。
FP命令宛先がメモリ内であると、CPUは浮動小数点
装置へ命令及びオペランドを送り1次いで、停止して浮
動小数点命令FIFOが空となるのを待つことが可能で
ある。この場合に、PIF空条件は、浮動小数点装置へ
送った全てのFP全命令成功裡に完了され且つ最後の命
令の結果がCPUがそのメモリ宛先を読み取り且つ格納
する為に使用可能であることを表す。
このアプローチ即ち手法は、順番の狂ったメモリ修正を
防止し、一方性能を最大化させる。何故ならば、オプコ
ード(opcode)及びイベントメモリオペランドが
、共面のFP全命令浮動小数点装置実行とオーバーラツ
プされて浮動小数点装置へ送られるからである0次の整
数命令がメモリ宛先を持っていると、CPUはこのこと
を検知し且つ停止して、PIF空条件を待機せねばなら
ない。
このことは、FP何例外発生することがないことを決定
する前に、メモリ修正、即ちシステムステータス変化を
防止する為に行なわれる。
第9図に示した如く、別の手法は、FP全命令CPUへ
発行された時にFIF内にエキストラなビット、即ちM
ビットを保存し、且っCPUが次の命令へ進むことを許
容することである。メモリ内の宛先を持ったFP全命令
浮動小数点装置によって実行される場合、CPUは、P
IFの底部にあるMビットを見ることによりこれがその
場合であることを知る。Mビットがセットされ且っ「D
oneJ信号が浮動小数点装置から受は取られると、C
PUは、浮動小数点装置がデータバス上のその結果の値
を駆動する間に、アドレス信号及び適切な制御信号をア
サートすることによって浮動小数点装置からメモリへそ
の結果を直接的に書き込むことが可能である。
FPレジスタ内の宛先を有するFP全命令CPUレジス
タ内の宛先を持った整数命令が続く場合、該FP全命令
浮動小数点装置へ発行した直後にCPUはこれらの命令
の実行を開始することが可能である。これを行なう為に
且つ正確なFP例外を維持する為に、CPUは「シャド
ウレジスタ」を実現せねばならない。これらシャドウレ
ジスタは、それらが修正される前に、CPUレジスタの
古い値を保存する為に使用される。FP例外の場合。
CPUは、該シャドウレジスタ内の値を使用してそのレ
ジスタ値を回復させる。その結果、システムステータス
は、シーケンシャルアーキテクチャ−モデルと一致乃至
は一貫して維持される。
CPUプロセサステータスレジスタを修正する浮動小数
点比較と同様に、FP全命令、CPUに対して完了の信
号を送り、rTrapJラインをアサートする。rTr
apJがCPUの介入を要求すると、CPUは該命令及
びオペランドを浮動小数点装置へ送り5次いで停止して
、rTrapJを待つ。
CPUレジスタを暗に変化させるトップオブスタックの
如きアドレスモードも、CPUに夫って検知され且つ注
意深く処置されねばならない。1つの可能な手法は、S
Pレジスタを浮動小数点命令FIFO内に保存し且つそ
れをFP例外の場合に回復させることである。然し乍ら
、この複雑化は、トップオブスタックオペランドを有す
るFP全命令パイプライン化させることを可能とさせる
性能見返りによって正当化されることはない。より簡単
な手法は、トップオブスタックオペランドを有するFP
全命令CPUに検知させ且つ浮動小数点命令FIFOが
空となった後、即ち以前のFP全命令全てを成功裡に完
了した後のおいてのみ、それらを浮動小数点装置へ発行
させることである。
上述した各機構のCPU性能に対しての貢献度をより完
全に理解する為に、CTPフォートランコンパイラでコ
ンパイルされたウェットストーン(Whetstone
)ベンチマークを解析した。該解析の目的は、パイプラ
イン化することの可能なFP全命令グループを検知する
ことであった。これらを。
宛先メモリを有するFP全命令終了するグループ、宛先
CPUレジスタを持った整数命令で終了するグループ、
宛先メモリを持った整数命令で終了するグループ等に類
分けさせた。該解析の結果を第8図のグラフに示しであ
る。
第8図に示した分布から明白な如く、浮動小数点性能改
善に対する最大の貢献はパイプライン化。
即ちFP命令逐次実行のオーバーラツプ化に起因するも
のであることが分かる。幸運なことに、FP命令パイプ
ライン化に対するCPUサポートは比較的簡単である。
上述した如<FP全命令び整数命令実行をオーバーラツ
プさせる、即ちPSR及びFIF等を除きCPUシャド
ウレジスタを実現するべく試みる場合に、サポート機構
が複雑となる。然し乍ら、第8図に示した如く、この様
なオーバーラツプを利用する場合の数は最小であり。
CPUレジスタ内の宛先を有する整数命令で終了するF
P命令グループのみを包含している。
科学的プログラムの様にFP全命令高度に使用するプロ
グラムの場合、FP全命令び整数命令のオーバーラツプ
を利用する場合の数は第8図に示した場合よりも更に一
層まれである。
FP全命令び整数命令実行のオーバーラツプを可能とさ
せるCPU特徴の性能利得は低く且つ実現上の複雑性が
高いので1本発明の好適実施例は、FP命令パイプライ
ン化のみをサポートするlifitを実現させている。
上述したより一層完全な解決法と好適な解決法との間の
差異は、次の命令が整数命令である場合には、FP全命
令浮動小数点装置へ発行した後にCPUが停止するとい
う事実にある。CPUは、浮動小数点命令FIFOが空
となった時、即ち全ての発行されたFP全命令成功裡に
完了された時にのみ、整数命令の実行を開始する。
整数命令に遭遇した場合にFP命令実行をシリアル化す
る為の決定は、CPUシャドウレジスタに対する必要性
を除去する。CPUは、プロセサステータスレジスタを
アップデートするFP全命令停止するので、浮動小数点
命令FIF○は、上述し且つ第9図に示した如く、浮動
小数点装置へ発行されたFP全命令プログラムカウンタ
及び究極的にMビットのみを保存することが必要である
上述した如く、プログラムカウンタ値は、対応するFP
全命令浮動小数点装置へ発行される時にFIFへ入力さ
れる。
FP命令パイプライン化のみのCPU及び浮動小数点装
置のサポートの1例を第10図にフローチャートの形で
詳細に示しである。入力するFP全命令保存する浮動小
数点装置FIFOは、cpUの浮動小数点命令FIFO
よりも一層深い。同時に、FP命令実行の結果を表す信
号(rDo ne」又はrTrapJ)が、CPUが対
応するFP全命令発行したのと同一の順番で浮動小数点
装置によってアサートされる。これら2つの条件の結果
として、浮動小数点装置がそれ以上命令を受は付けるこ
とが出来ない場合に、CPUへ信号を送る為の特別のラ
インを設けることが必要ではない。このことは、浮動小
数点装置のFIFOが満杯となるチャンスを持つ前に浮
動小数点命令FIFOが満杯となることに起因してCP
Uが停止するからである。
上述したCPU−FPUクラスタによって達成される性
能は、実行されるワークロード即ち作業負担、コンパイ
ラの能力、及び浮動小数点装置の速度等に依存する。
メモリ対しジスタFP命令は、より低い処理能力を持っ
ている。何故ならば、CPU実行装置及びCPU−FP
Uバスは、各32ビツトオペランドワードをフェッチし
且つそれを浮動小数点装置へ転送する為に該各ワードに
対して2つのエキストラなりロックサイクルを必要とす
る。メモリ対レジスタ命令を使用することは、最初にメ
モリオペランドをFPレジスタ内にロードし次いでレジ
スタ対レジスタ命令を実行することよりも、より良好な
性能を与える。それにも拘らず、メモリオペランドが1
つを越えるFP全命令よって使用される場合には、2番
目の手法の方が良い場合がある。
実行時間は、全命令待ち時間であり、即ちシリアル化F
P命令に対して、及び整数命令の前の最後のFP全命令
対して、CPU−FPUクラスタに対して14クロツク
である。
浮動小数点命令FIFO深さは、性能と実現複雑性との
間の妥協とすべきである。
要約すると、高速浮動小数点実行装置は、現在の技術水
準のマイクロプロセサに過剰な数のトランジスタを組み
込むことを必要とする。高速浮動小数点装置コブロセサ
チップの場合、CPU−FPU通信プロトコルの効率は
、浮動小数点性能に対する臨界的な要因となる。浮動小
数点装置によるFP全命令実行の結果をCPUに待たせ
るプロトコルは、性能を著しく劣化させる。本発明のパ
イプライン化したスレーブプロトコルは、それらの実行
をCPU実行装置を越えてパイプライン化させることに
よって殆どのFP全命令対するCPU−FPU通信オー
バーヘッドを取り除いている。
同時に、正確なFP例外を維持する為に回復機構をCP
U内に実現させる。その結果、正確な例外を犠牲とする
こと無しに、CPUは非常に高い浮動小数点性能をサポ
ートすることが可能である。
以上、本発明の具体的実施の態様に付いて詳細に説明し
たが1本発明はこれら具体例にのみ限定されるべきもの
では無く、本発明の技術的範囲を逸脱すること無しに種
々の変形が可能であることは勿論である。
【図面の簡単な説明】
第1図は現在の技術水準の32ビツトマイクロプロセサ
のCPU−FPUクラスタを示した概略ブロック図、第
2図は第1図に示したクラスタ内の浮動小数点装置への
メモリオペランド又はFP全命令CPU’l込を示した
タイミングチャート図、第3図は従来のスレーブプロト
コルを使用してCPU−FPUバスを包含する浮動小数
点装置及びCPUの異なった資源においてFP全命令よ
って費やされる時間を示したタイミング線図、第4図は
本発明のプロトコルを使用してCPU−FPUバスを包
含する浮動小数点装置及びCPUの異なった資源におい
てFP全命令よって費やされる時間を示したタイミング
線図、第5図は本発明に基づきFP全命令パイプライン
化を示したブロック線図、第6A図乃至第6C図は本発
明のプロトコルの実現の1例を示したフローチャートの
各部分図、第7図は本発明に基づ<FP全命令IFOの
コンフィギユレーションを示した概略図、第8図はウェ
ットストーンベンチマークにおけるFP全命令異なった
グループを示したグラフ図、第9図は本発明に基づ<F
P全命令IFOの別の実施例のコンフィギユレーション
を示した概略図、第10図は本発明に基づきCPU−F
PUパイプライン化スレーブプロトコルに対してのCP
Uサポートノ実現の1例を示したフローチャート図、で
ある。 (符号の説明) 10:CPU 12:浮動小数点装置 特許出願人    ナショナル セミコンダクタ コー
ポレーション FIG、6A FIG、6B Pτノ+ (eP啄■−r+) 2、・47・う’−’t−te、:タ ロつ り一1u−’)’翫−一−

Claims (1)

  1. 【特許請求の範囲】 1、中央処理装置(CPU)及び前記CPUにより出さ
    れる浮動小数点命令を実行する為の浮動小数点装置を有
    するデータ処理方式において、前記浮動小数点装置にお
    いて実行された浮動小数点命令の結果が例外である場合
    に前記CPUステータス情報を回復することが可能であ
    る様に前記浮動小数点装置によるパイプライン型実行の
    為に前記CPUによって出される浮動小数点命令に関連
    するCPUステータス情報を格納する為の格納手段が前
    記CPU内に設けられていることを特徴とするデータ処
    理方式。 2、特許請求の範囲第1項において、前記ステータス情
    報が前記CPUによって出された浮動小数点命令のプロ
    グラムカウンタ値を有することを特徴とするデータ処理
    方式。 3、特許請求の範囲第2項において、前記ステータス情
    報が、前記浮動小数点装置へ出された浮動小数点命令の
    指定がメモリ内であるか否かを表す情報を有することを
    特徴とするデータ処理方式。 4、特許請求の範囲第2項において、前記ステータス情
    報は、前記CPUによって出される浮動小数点命令に関
    連するCPUのプロセサステータスレジスタの内容を有
    することを特徴とするデータ処理方式。 5、特許請求の範囲第4項において、浮動小数点命令及
    び整数命令の実行がオーバーラップしており、且つ前記
    浮動小数点装置への浮動小数点命令の発行に対応する時
    間に前記CPUのステータスに関連する付加的な情報を
    格納するシャドウ格納手段が前記CPU内に設けられて
    おり、前記付加的ステータス情報は、浮動小数点命令の
    実行の結果が例外である場合にCPUレジスタの内容を
    回復させることが可能である様に整数命令の実行によっ
    て修正されるCPUレジスタの内容を有するものである
    ことを特徴とするデータ処理方式。 6、中央処理装置(CPU)及び浮動小数点命令を実行
    する浮動小数点装置を有するデータ処理方式において、
    正確な例外を維持しながら浮動小数点命令のパイプライ
    ン型実行を行なう方法において、浮動小数点命令を出し
    、前記浮動小数点命令を前記浮動小数点装置内に格納し
    、浮動小数点命令が前記CPUによる発行の順番に従っ
    て逐次実行される様に爾後に発行される浮動小数点命令
    を前記浮動小数点装置内に格納し、各浮動小数点命令の
    発行に対応する時間に前記CPUのステータスに関連す
    るCPU情報を格納し、その浮動小数点命令の実行の結
    果が例外である場合に対応する浮動小数点命令用のステ
    ータス情報を回復する、上記各ステップを有することを
    特徴とする方法。 7、特許請求の範囲第6項において、前記CPU内に格
    納した情報は、前記浮動小数点命令の指定がメモリ内で
    あるか否かを表す情報を有することを特徴とする方法。 8、特許請求の範囲第7項において、前記浮動小数点命
    令の指定がメモリ内である場合、前記CPUは、前記浮
    動小数点装置が結果の値をシステムデータバス上に駆動
    する間に、アドレス及び適切な制御信号を活性化させる
    ことによって前記浮動小数点命令の結果をメモリへ書き
    込むことを特徴とする方法。 9、中央処理装置(CPU)及び前記CPUによって発
    行される浮動小数点命令を実行する為の浮動小数点装置
    を有するデータ処理装置において、正確な例外を維持し
    ながら浮動小数点命令のパイプライン型実行を行なう方
    法において、浮動小数点命令を発行し、前記CPUによ
    って発行された順番に逐次実行を行なう為に以前に発行
    された浮動小数点命令で前記浮動小数点装置内に浮動小
    数点命令をキューさせ、前記浮動小数点命令の発行に対
    応する時間に前記CPUのステータスに関連するCPU
    情報を格納し、実行用の整数命令を発行し、前記整数命
    令の発行に対応する時間に前記CPUのステータスに関
    連するCPU付加情報を格納し、前記浮動小数点命令を
    実行し、前記浮動小数点命令の結果が例外である場合に
    前記ステータス情報及び付加ステータス情報を回復する
    、上記各ステップを有することを特徴とする方法。
JP63228290A 1987-09-11 1988-09-12 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル Pending JPH01140330A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9608087A 1987-09-11 1987-09-11
US96.080 1987-09-11

Publications (1)

Publication Number Publication Date
JPH01140330A true JPH01140330A (ja) 1989-06-01

Family

ID=22255183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63228290A Pending JPH01140330A (ja) 1987-09-11 1988-09-12 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル

Country Status (2)

Country Link
EP (1) EP0306891A3 (ja)
JP (1) JPH01140330A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549670B2 (ja) * 2009-06-23 2014-07-16 セイコーエプソン株式会社 集積回路装置及び電子機器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69034028T2 (de) * 1989-05-04 2003-10-09 Texas Instruments Inc., Dallas Verfahren und System zur Bestimmung von Min/Max Werten
GB2282473B (en) * 1993-10-02 1998-01-07 Motorola Inc A history buffer system
WO1996025705A1 (en) * 1995-02-14 1996-08-22 Fujitsu Limited Structure and method for high-performance speculative execution processor providing special features
US5898877A (en) * 1996-02-29 1999-04-27 Sanyo Electric Co., Ltd. Processor using special instruction set to enhance exception handling
JP4160705B2 (ja) * 1999-10-15 2008-10-08 富士通株式会社 プロセッサ及びプロセッサシステム
US8775125B1 (en) 2009-09-10 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for improved processing performance

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549670B2 (ja) * 2009-06-23 2014-07-16 セイコーエプソン株式会社 集積回路装置及び電子機器

Also Published As

Publication number Publication date
EP0306891A2 (en) 1989-03-15
EP0306891A3 (en) 1992-04-01

Similar Documents

Publication Publication Date Title
JP2597811B2 (ja) データ処理システム
US5500943A (en) Data processor with rename buffer and FIFO buffer for in-order instruction completion
US5838988A (en) Computer product for precise architectural update in an out-of-order processor
JP3637920B2 (ja) スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
US8544022B2 (en) Transactional memory preemption mechanism
US5958047A (en) Method for precise architectural update in an out-of-order processor
US6085312A (en) Method and apparatus for handling imprecise exceptions
US5913048A (en) Dispatching instructions in a processor supporting out-of-order execution
US6219778B1 (en) Apparatus for generating out-of-order results and out-of-order condition codes in a processor
US5590294A (en) Method and apparatus for retarting pipeline processing
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
RU2282235C2 (ru) Блокирование исходных регистров в устройстве обработки данных
US6052777A (en) Method for delivering precise traps and interrupts in an out-of-order processor
JP2843750B2 (ja) スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
US6049868A (en) Apparatus for delivering precise traps and interrupts in an out-of-order processor
JP2001142699A (ja) パイプラインプロセッサにおける命令データの転送メカニズム
JPH01140330A (ja) 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル
JP2001142701A (ja) プロセッサにおけるパイプライン制御用メカニズムおよび方法
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
CN101790719A (zh) 低开销/省电处理器同步机制及其应用
JP2004038753A (ja) プロセッサ及び命令制御方法
US5761492A (en) Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set
CN100447737C (zh) 指令流水线中实现访存精确例外的处理方法
EP0762271A2 (en) Early completion of floating-point operations during load/store multiple operations
JPS623347A (ja) エラ−回復情報退避方式