JPH06202868A - マルチスカラー・プロセッサ・システムにおける高速浮動小数点例外起動式操作の方法およびシステム - Google Patents

マルチスカラー・プロセッサ・システムにおける高速浮動小数点例外起動式操作の方法およびシステム

Info

Publication number
JPH06202868A
JPH06202868A JP5234430A JP23443093A JPH06202868A JP H06202868 A JPH06202868 A JP H06202868A JP 5234430 A JP5234430 A JP 5234430A JP 23443093 A JP23443093 A JP 23443093A JP H06202868 A JPH06202868 A JP H06202868A
Authority
JP
Japan
Prior art keywords
instruction
processor unit
floating point
point processor
output
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
JP5234430A
Other languages
English (en)
Other versions
JP2618187B2 (ja
Inventor
Christopher H Olson
クリストファー・エイチ・オルソン
Terence M Potter
テレンス・エム・ポター
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 JPH06202868A publication Critical patent/JPH06202868A/ja
Application granted granted Critical
Publication of JP2618187B2 publication Critical patent/JP2618187B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本願発明は、全般的に、マルチス
カラー・プロセッサ・システムにおける強化された性能
に関し、詳細には、マルチスカラー・プロセッサ・シス
テムにおいて浮動小数点例外操作をエネーブルするため
の方法およびシステムに関する。さらに詳細に言うと、
本願発明は、性能をそれほど劣化させずに、マルチスカ
ラー・プロセッサ・システムにおいて浮動小数点例外操
作をエネーブルするための方法およびシステムに関して
いる。
【0002】
【従来の技術】現代のデータ処理システムの設計者は、
そのようなシステムの性能の向上を試み続けている。デ
ータ処理システムの効率を高めるための1つの技術は、
サイクル・タイムを短縮し、1命令当たりサイクル(C
PI)率を下げることである。機能強化されたデータ処
理システムにこれらの技術を見事に適用した例として、
インターナショナル・ビジネス・マシーンズ・コーポレ
イション(IBM)のRISCシステム/6000(R
S/6000)コンピュータがある。RS/6000シ
ステムは、数値計算中心の科学技術適用業務、およびマ
ルチユーザ商用環境で高性能を発揮するように設計され
ている。RS/6000プロセッサはマルチスカラー実
施態様を使用する。すなわち、複数の命令が同時に発行
され実行される。
【0003】複数の命令を同時に発行して実行するに
は、高命令帯域幅で同時に実行できる独立した機能ユニ
ットが必要である。RS/6000システムは、パイプ
ライン式の性格をもつ別々のブランチ固定小数点プロセ
ッサ・ユニットと浮動小数点プロセッサ・ユニットを使
用することによってこれを実現している。そのようなシ
ステムでは、条件付きブランチ命令が実行されるので、
大幅なパイプライン遅延が発生することがある。条件付
きブランチ命令とは、1つまたは複数の他の命令の選択
された処理結果に応じて、アプリケーション内で指定さ
れた条件付きブランチを選ぶことを指示する命令であ
る。したがって、実行時遅延を回避するため、条件付き
ブランチ命令がパイプライン待ち行列を通って待ち行列
内の実行位置まで伝播して、条件付きブランチが解決さ
れる前に、待ち行列内の条件付きブランチ命令の後ろに
命令をロードしておく必要がある。
【0004】マルチスカラー・プロセッサ・システムの
遅延のもう1つの原因は、浮動小数点プロセッサ・ユニ
ットの動作が非同期的性格を有することである。浮動小
数点プロセッサ・ユニットに結合された命令の命令アド
レスは失われるので、浮動小数点プロセッサ・ユニット
内の命令が実行できない場合、そのために発生する例外
によってプロセス全体が停止してしまう。米国電気電子
学会では、浮動小数点プロセッサ・ユニット内で発生す
る可能性がある様々な例外のリストと、これらの例外の
処理方法を公表している。IEEE Standard for Binary F
loating-PointArithmetic, ANSI/IEEE Std. 754-1985を
参照のこと。これらの例外として、オーバーフロー、ア
ンダーフロー、不正確さ、無効動作、ゼロでの除算など
がある。これらの各例外にはそれぞれ、トラップできる
ようにする、あるいは指定された省略時の結果に戻れる
ようにする能力が関連している。
【0005】浮動小数点プロセッサ・ユニット・ハード
ウェアでは通常、発生する可能性がある例外と、これら
の例外をIEEE標準に従ってハードウェアで処理する
ための方法が指定されている。従来技術のマルチスカラ
ー・プロセッサ・システムでは一般に、例外の発生時
に、アプリケーションから適切なトラップ・ハンドラに
プログラム実行を転送するための方法が2つある。すな
わち、ソフトウェア・ポーリングとハードウェア割込み
である。ソフトウェア・ポーリングには、性能面で利点
がある。ソフトウェアは、エネーブルされる可能性のあ
る例外についてポーリングする時期を選ぶことができ
る。たとえば、トラップでエネーブルされる例外がゼロ
での除算だけである場合、コンパイラは、各浮動小数点
除算命令の後の例外命令上にポーリング・ブランチおよ
びリンクを配置することができる。この方法を使用する
ことができるのは、プログラムのコンパイル時に例外処
理の種類が決定できる場合である。
【0006】アプリケーションの実行時にどのような種
類の例外が生じるかを決定するのは困難なので、例外に
対して正確なハードウェア割込み処理を実施しなければ
ならない場合がある。この動作モードは、精密浮動小数
点例外起動式操作と呼ばれ、通常、プロセッサ全体を1
度に1命令しか実行しないモードにすることによって実
施されている。各命令は、固定小数点命令を含めて、次
の命令がディスパッチされる前に完了しておかねばなら
ない。この方法によって、実行時にトラップをエネーブ
ルまたはディスエーブルにすることができ、また、例外
を発生させた命令の正確なアドレスを識別することがで
きる。この技術では、浮動小数点例外を発生させた命令
を正確に識別することができるが、通常、名目プロセッ
サ速度の1/5ないし1/10に性能が低下する。
【0007】したがって、プロセッサ性能をそれほど劣
化させずに、マルチスカラー・プロセッサ・システム内
で浮動小数点例外起動式操作を使用可能にする方法およ
びシステムがあれば有益であることが、当業者には明ら
かであろう。
【0008】
【発明が解決しようとする課題】本願発明の1つの目的
は、マルチスカラー・プロセッサ・システムにおいて強
化された性能を提供することである。
【0009】本願発明の別の目的は、マルチスカラー・
プロセッサ・システムにおける浮動小数点例外起動式操
作のための改良された方法およびシステムを提供するこ
とである。
【0010】本願発明のもう1つの目的は、性能をそれ
ほど低下させずに、マルチスカラー・プロセッサ・シス
テムにおいて浮動小数点例外起動式操作を実施するため
の改良された方法およびシステムを提供することであ
る。
【0011】
【課題を解決するための手段】前述の諸目的は、以後説
明するようにして達成される。本願発明の方法およびシ
ステムを使用すれば、性能をそれほど劣化させずに浮動
小数点例外起動式操作を実施することができる。マルチ
スカラー・プロセッサ・システムでは、複数の独立した
機能ユニットを使用して、複数の命令を同時に発行し実
行することができる。この操作は通常、別々のブランチ
固定小数点プロセッサ・ユニットと浮動小数点プロセッ
サ・ユニットを使用して実現される。浮動小数点プロセ
ッサ・ユニット内の浮動小数点演算命令は、無効な演算
に関連する様々な例外のうちの1つを発生させる可能性
があるが、浮動小数点プロセッサ・ユニットがパイプラ
イン式性格をもつので、どの命令が例外を発生させたの
かを識別することはできない。前述の方法およびシステ
ムでは、浮動小数点演算命令が浮動小数点プロセッサ・
ユニットにディスパッチされるたびに、保持された命令
アドレスを持つ関連するダミー命令が固定小数点プロセ
ッサ・ユニットにディスパッチされる。その後、浮動小
数点プロセッサ・ユニットからの各命令の出力が、関連
するダミー命令の出力と同期化される。浮動小数点例外
を発生させた、浮動小数点プロセッサ・ユニット内の各
命令が、関連するダミー命令の保持された命令アドレス
を使用して正確に識別できる。
【0012】本願発明の上記その他の目的、特徴、およ
び利点は、以下の詳細な説明において明らかになろう。
【0013】
【実施例】図面、特に図1を参照する。本願発明の方法
およびシステムを実施するのに使用できるマルチスカラ
ー・コンピュータ・システム10の高水準ブロック図が
示されている。図に示すように、マルチスカラー・コン
ピュータ・システム10は、データ、命令などの格納に
使用するメモリ18を含むことが好ましい。メモリ18
内に格納されたデータまたは命令には、キャッシュ/メ
モリ・インタフェース20を使用して当業者に周知の方
法でアクセスすることが好ましい。キャッシュ/メモリ
・システムのサイズ設定および使用法は、データ処理技
術の範囲内で周知の専門技術であり、本願発明の対象で
はない。しかし、当業者には、現代の連想キャッシュ技
術を使用することにより、キャッシュ/メモリ・インタ
フェース20に一時的に格納されたデータを使用して、
大部分のメモリ・アクセスが実現できることが理解され
よう。
【0014】キャッシュ/メモリ・インタフェース20
からの命令は通常、命令待ち行列22にロードされる。
命令待ち行列22は、複数の待ち行列位置を含むことが
好ましい。マルチスカラー・コンピュータ・システムの
典型的な実施例では、命令待ち行列は8個の待ち行列位
置を含むことができるので、所与のサイクル中で、キャ
ッシュ/メモリ・インタフェース20によって渡される
有効な命令の数と、命令待ち行列22内で利用可能な空
間の量に応じて、命令待ち行列22に0ないし8個の命
令をロードすることができる。
【0015】このようなマルチスカラー・コンピュータ
・システムでは通常のことであるが、命令待ち行列22
は、複数の実行ユニットに命令をディスパッチするため
に使用される。図1に示すように、マルチスカラー・コ
ンピュータ・システム10は、浮動小数点プロセッサ・
ユニット24、固定小数点プロセッサ・ユニット26、
およびブランチ・プロセッサ・ユニット28を含む。し
たがって、命令待ち行列22は、単一サイクル中に、各
実行ユニットに1つずつ、0ないし3個の命令をディス
パッチすることができる。
【0016】命令待ち行列22からディスパッチされる
順次命令だけでなく、いわゆる「条件付きブランチ命
令」も、命令待ち行列22にロードしておき、ブランチ
・プロセッサで実行することができる。条件付きブラン
チ命令とは、1個または複数の順次命令の選択された処
理結果に応じてアプリケーション内から選ばれる、関連
する条件付きブランチを指定する命令である。マルチス
カラー・コンピュータ・システム10のようなパイプラ
イン式プロセッサ・システムにおいて実行時遅延をでき
るだけ短くするために、命令待ち行列内に条件付きブラ
ンチ命令が存在するかどうか検出し、条件付きブランチ
の結果を予測する。当業者には明らかであろうが、条件
付きブランチを「とらない」と予測されるときは、命令
待ち行列内の順次命令が単に現経路に沿って継続し、命
令の改変は行われない。しかし、ブランチの出現に関す
る予測が誤っている場合、命令待ち行列から、プログラ
ムの順序で条件付きブランチ命令の後にくる順次命令を
パージすると共に、ターゲット命令を取り出さねばなら
ない。あるいは、条件付きブランチを「とる」と予測さ
れた場合は、その予測が正しいことが判明すると、ター
ゲット命令が取り出され、条件付きブランチの次に使用
される。言うまでもなく、「とられる」という予測が誤
っていた場合、ターゲット命令をパージする必要があ
り、プログラムの順序で条件付きブランチ命令の後にく
る順次命令を取り出さねばならない。
【0017】図に示すように、マルチスカラー・コンピ
ュータ・システム10はまた、条件レジスタ32を含む
ことが好ましい。条件レジスタ32は、マルチスカラー
・コンピュータ・システム10内で処理される順次命令
の結果を使用して行うことができる様々な比較の結果を
一時的に格納するために使用される。したがって、浮動
小数点プロセッサ・ユニット24、固定小数点プロセッ
サ・ユニット26、およびブランチ・プロセッサ・ユニ
ット28はすべて、条件レジスタ32に結合されてい
る。条件レジスタ32内の特定の条件の状況を検出し、
ブランチ・プロセッサ・ユニット28に結合して、ター
ゲット・アドレスを生成することができる。次に、これ
らのアドレスを使って、ブランチを発生させる条件の発
生に応じてターゲット命令が取り出される。
【0018】その後、ブランチ・プロセッサ・ユニット
28は、ターゲット・アドレスを取出し機構30に供給
する。取出し機構30は、条件付きブランチの次にくる
必要のあるターゲット命令の取出しアドレスを算出し、
それらの取出しアドレスをキャッシュ/メモリ・インタ
フェース20に供給する。当業者には明らかなように、
キャッシュ/メモリ・インタフェース20内にそれらの
取出しアドレスと関連するターゲット命令が存在する場
合、それらのターゲット命令は命令待ち行列22内にロ
ードされる。あるいは、ターゲット命令をメモリ18か
ら取り出し、その後、それらの命令を取り出すのに必要
な遅延の後、キャッシュ/メモリ・インタフェース20
から命令待ち行列22にロードすることもできる。
【0019】図2を参照すると、本願発明の方法および
システムに従った高速浮動小数点例外操作を確立する手
順を示す高水準論理フローチャートが示されている。図
に示すように、プロセスは論理ブロック40から始ま
り、論理ブロック42に移る。論理ブロック42で、浮
動小数点例外起動式操作モードが選択されたかどうか判
定する。上述のように、IEEE発行のA Standard for
Binary Floating PointArithmetic ANSI/IEEE Standar
d 754-1985という浮動小数点例外用の標準が存在する。
【0020】例外を発生する可能性がある浮動小数点演
算の例としては、オーバーフロー、アンダーフロー、不
正確さ、無効動作、ゼロでの除算などがある。浮動小数
点プロセッサ・ユニットはパイプライン式かつ非同期的
性格をもつので、例外が発生したとき、その例外を発生
させた浮動小数点命令を正確に決定することはできな
い。従来技術のシステムでは、どの浮動小数点命令が例
外を発生させたかを正確に示すために、いわゆる「精
密」浮動小数点例外起動式操作が使用された。精密浮動
小数点例外起動式操作では、各命令を、次の命令が浮動
小数点プロセッサ・ユニットまたは固定小数点プロセッ
サ・ユニットにディスパッチされる前に完了しておく必
要がある。この技術によって、浮動小数点を発生させた
命令を識別することができる。しかし、この場合、性能
が1/5ないし1/10に低下する。したがって、当業
者には明らかなように、浮動小数点例外起動式モードを
より高いシステム速度で操作できることが望ましい。
【0021】さらに、図2を参照すると、浮動小数点例
外起動式モードを選択しない場合、このモードが選択さ
れるまで、図示されたプロセスが単に繰り返される。し
かし、浮動小数点例外モードがエネーブルされたと仮定
すると、プロセスは論理ブロック44に移る。論理ブロ
ック44で、浮動小数点プロセッサ・ユニットにディス
パッチするために命令待ち行列内で浮動小数点演算命令
(alu)が検出されたか否かを判定する。検出されな
かった場合、プロセスは再び論理ブロック42に戻っ
て、浮動小数点例外起動式モードがまだ選択されている
か否か判定する。
【0022】さらに、論理ブロック44を参照すると、
浮動小数点演算命令(alu)が検出された場合、プロ
セスは論理ブロック46に移る。論理ブロック46で、
浮動小数点プロセッサ・ユニットによるダミー命令の処
理時に命令アドレス・レジスタに保持できる命令アドレ
スを持つ関連するダミー命令を作成する。その後、論理
ブロック48で、浮動小数点演算命令(alu)が浮動
小数点プロセッサ・ユニットにディスパッチされるのと
同時に、ダミー命令が固定小数点プロセッサ・ユニット
にディスパッチされる。その後、プロセスは再び論理ブ
ロック42に戻り、浮動小数点例外起動式モードがまだ
選択されているかどうか判定する。
【0023】図3を参照すると、本願発明の方法および
システム(図1参照)に従った、固定小数点プロセッサ
・ユニット26の出力を浮動小数点プロセッサ・ユニッ
ト24の出力と同期化する手順を示す高水準論理フロー
チャートが示されている。図3に示すように、プロセス
は論理ブロック60から始まり、論理ブロック62に移
る。論理ブロック62で、浮動小数点プロセッサ・ユニ
ット内の命令が書戻しをクリアし、浮動小数点プロセッ
サ・ユニットから出力されようとしているか否か判定す
る。出力されようとしていない場合、その事象が発生す
るまで、プロセスが単に繰り返される。
【0024】さらにブロック62を参照すると、浮動小
数点プロセッサ・ユニットからの緊急出力が検出された
とき、プロセスは論理ブロック64に移る。論理ブロッ
ク64で、緊急出力が、図2に示したプロセスに従って
作成されたダミー命令であるか否か判定する。ダミー命
令でない場合、プロセスは単に論理ブロック66に移
る。論理ブロック66で、この命令が出力される。プロ
セスは次に、反復的に論理ブロック62に戻り、浮動小
数点プロセッサ・ユニットから次の命令が出力されるの
を待つ。
【0025】さらに、論理ブロック64を参照すると、
浮動小数点プロセッサ・ユニットから出力されようとし
ている命令がダミー命令である場合、プロセスは論理ブ
ロック68に移る。論理ブロック68で、浮動小数点プ
ロセッサ内の関連する演算命令の出力準備ができている
か否か判定する。準備ができていない場合、プロセスが
繰り返され、浮動小数点プロセッサ・ユニットに関連す
る命令の出力準備ができるまで、浮動小数点プロセッサ
・ユニットの出力はゲートされる。浮動小数点プロセッ
サ内の関連する演算命令の出力準備ができたと判定され
ると、プロセスは論理ブロック70に移る。論理ブロッ
ク70で、浮動小数点プロセッサ・ユニットから関連す
る浮動小数点命令が出力され、固定小数点プロセッサ・
ユニットからダミー命令が出力される。このようにし
て、例外を発生させた浮動小数点プロセッサ・ユニット
演算命令のアドレスが、各浮動小数点プロセッサ・ユニ
ット演算命令に関連するダミー命令の命令アドレスを参
照して正確に決定することができる。次に、上述のよう
に、プロセスは論理ブロック62に戻り、反復的に繰り
返す。
【0026】最後に図4を参照すると、本願発明の方法
およびシステム(図1参照)に従った、浮動小数点プロ
セッサ・ユニット24の出力を固定小数点プロセッサ・
ユニット26の出力と同期化する手順を示す高水準論理
フローチャートが示されている。上述の手順と同様に、
プロセスは論理ブロック80から始まり、論理ブロック
82に移る。論理ブロック82で、浮動小数点プロセッ
サ・ユニット出力を検出し、浮動小数点プロセッサ・ユ
ニット出力が存在しない場合、出力が発生するまで単に
プロセスが繰り返される。
【0027】論理ブロック82で、浮動小数点プロセッ
サ・ユニット出力が検出されると、プロセスは論理ブロ
ック84に移る。論理ブロック84で、浮動小数点プロ
セッサ・ユニットの出力が演算命令(alu)であるか
否かを決定し、演算命令でない場合、プロセスは論理ブ
ロック86に移る。論理ブロック86で、この命令を出
力する。プロセスは次に、反復的に論理ブロック82に
戻る。
【0028】再び論理ブロック84を参照すると、浮動
小数点プロセッサ・ユニットの出力が演算命令(al
u)である場合、プロセスは論理ブロック88に移る。
論理ブロック88で、固定小数点プロセッサ・ユニット
内の関連するダミー命令の出力準備ができているかどう
か判定する。準備ができていない場合、単にプロセスが
繰り返され、浮動小数点プロセッサ・ユニット内のダミ
ー命令の出力準備ができるまで、浮動小数点プロセッサ
・ユニットの出力はゲートされる。浮動小数点プロセッ
サ内の関連するダミー命令の出力準備ができたと判定さ
れると、プロセスは論理ブロック90に移る。論理ブロ
ック90で、浮動小数点命令および関連するダミー命令
を出力する。プロセスは次に、反復的に論理ブロック8
2に戻る。
【0029】本願発明の方法およびシステムは、保持さ
れた命令アドレスを持つ関連するダミー命令を使用する
ことによって、浮動小数点プロセッサ・ユニット演算命
令(alu)を強制的に固定小数点プロセッサ・ユニッ
トのパイプラインに入れる。このようにして、各浮動小
数点プロセッサ・ユニット命令に関連するアドレスを、
ダミー命令を含む固定小数点パイプライン内の各点に対
応する命令アドレス・レジスタ内に保持することができ
る。その後、本願発明の方法およびシステムでは、固定
小数点プロセッサ・ユニットが、浮動小数点プロセッサ
・ユニットを待ってからでないと、書戻しをクリアする
ことができない。この操作モードでは、システムの性能
をそれほど低下させずに、浮動小数点例外を発生させた
浮動小数点プロセッサ・ユニット命令のアドレスを正確
に決定することができる。
【0030】本明細書に記載した方法で操作すると、マ
ルチスカラー・プロセッサ・システム内のプロセッサ
が、固定小数点プロセッサ・ユニットと浮動小数点プロ
セッサ・ユニットのうちで速度の遅い方の最高速度で動
作し、唯一のシステム劣化は、固定小数点プロセッサ・
ユニット・パイプラインにおけるパイプライン位置内で
の浮動小数点プロセッサ・ユニット演算命令の位置決め
の結果発生するものだけである。通常マルチスカラー・
プロセッサ・システム内に提供されるブランチ・プロセ
ッサ・ユニットは、本願発明の方法およびシステムに影
響されないことに留意されたい。
【0031】浮動小数点プロセッサ・ユニットが倍精度
演算用の2サイクル・パイプラインを含み、固定小数点
プロセッサ・ユニットのパイプラインが一般に1サイク
ル・パイプラインであるシステムでは、システムが、例
外起動式操作モードでも例外非起動式操作モードでも浮
動小数点プロセッサ・ユニットによってゲートされるの
で、多数の浮動小数点演算命令を含む命令ストリーム中
で性能劣化が発生しない。
【0032】浮動小数点性能によってゲートされる命令
ストリームでは、浮動小数点起動式操作モードを選択す
ると、浮動小数点プロセッサ・ユニット・パイプライン
の方が密度が高いので、わずかな性能劣化を招く。しか
し、浮動小数点演算命令の数はそれほど多くなく、また
浮動小数点演算は一般に、ある命令を実行してからでな
いと、固定小数点プロセッサ・ユニットが、その命令が
書戻しをクリアするための準備ができないので、システ
ム劣化は、1浮動小数点演算命令当たり約1サイクルに
過ぎない。固定小数点プロセッサ・ユニットが標準モー
ドでシステム内の性能をゲートする状況では、浮動小数
点演算命令の割合を33%未満とする必要がある。なぜ
なら、浮動小数点プロセッサ・パイプラインは、倍精度
演算では1命令当たり1サイクルの間停止するからであ
る。本願発明の方法およびシステムに従って浮動小数点
例外操作をエネーブルすることによる劣化は一般に1/
2未満である。
【0033】本願発明を特に好ましい実施例に関して図
示し説明したが、当業者には明らかなように、本願発明
の精神および範囲から逸脱することなく、その形態およ
び細部に様々な変更を加えることができる。
【図面の簡単な説明】
【図1】本願発明の方法およびシステムを実施するのに
使用できるマルチスカラー・コンピュータ・システムの
高水準ブロック図である。
【図2】本願発明の方法およびシステムに従って高速浮
動小数点例外起動式操作を確立する手順を示す高水準論
理フローチャートである。
【図3】本願発明の方法およびシステムに従って固定小
数点プロセッサ・ユニットの出力を浮動小数点プロセッ
サ・ユニットの出力と同期化する手順を示す高水準論理
フローチャートである。
【図4】本願発明の方法およびシステムに従って浮動小
数点プロセッサ・ユニットの出力を固定小数点プロセッ
サ・ユニットの出力と同期化する手順を示す高水準論理
フローチャートである。
【符号の説明】
10 マルチスカラー・コンピュータ・システム 18 メモリ 20 キャッシュ/メモリ・インタフェース 22 命令待ち行列 24 浮動小数点プロセッサ・ユニット 26 固定小数点プロセッサ・ユニット 28 ブランチ・プロセッサ・ユニット 30 取出し機構 32 条件レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 テレンス・エム・ポター アメリカ合衆国78731、テキサス州オース チン、ツウィン・レッジ・コーヴ 6107

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】浮動小数点プロセッサ・ユニットと、固定
    小数点プロセッサ・ユニットと、複数のプロセッサ・ユ
    ニットに命令を同時にディスパッチする手段とを備える
    マルチスカラー・プロセッサ・システムにおいて高速浮
    動小数点例外起動式操作をエネーブルするための方法で
    あって、 各演算命令が浮動小数点プロセッサ・ユニットにディス
    パッチされるのに応じて、保持された命令アドレスを持
    つ関連するダミー命令をそれと同時に固定小数点プロセ
    ッサ・ユニットにディスパッチするステップと、 前記浮動小数点プロセッサ・ユニットからの各演算命令
    の出力を前記固定小数点プロセッサ・ユニットからの関
    連するダミー命令の出力と同期化するステップとを含
    み、浮動小数点例外を発生させた前記浮動小数点プロセ
    ッサ・ユニット内の各演算命令を正確に識別することが
    できることを特徴とする方法。
  2. 【請求項2】前記浮動小数点プロセッサ・ユニットから
    の各演算命令の出力を前記固定小数点プロセッサ・ユニ
    ットからの関連するダミー命令の出力と同期化する前記
    ステップが、前記浮動小数点プロセッサ・ユニットから
    の演算命令の出力が発生するまで前記固定小数点プロセ
    ッサ・ユニットからの関連するダミー命令の出力を遅延
    させるステップを含むことを特徴とする、請求項1に記
    載の、マルチスカラー・プロセッサ・システムにおいて
    高速浮動小数点例外起動式操作をエネーブルするための
    方法。
  3. 【請求項3】前記浮動小数点プロセッサ・ユニットから
    の各演算命令の出力を前記固定小数点プロセッサ・ユニ
    ットからの関連するダミー命令の出力と同期化する前記
    ステップが、前記固定小数点プロセッサ・ユニットから
    の関連するダミー命令の出力が発生するまで前記浮動小
    数点プロセッサ・ユニットからの演算命令の出力を遅延
    させるステップを含むことを特徴とする、請求項1に記
    載の、マルチスカラー・プロセッサ・システムにおいて
    高速浮動小数点例外起動式操作をエネーブルするための
    方法。
  4. 【請求項4】浮動小数点プロセッサ・ユニットと、固定
    小数点プロセッサ・ユニットと、複数のプロセッサ・ユ
    ニットに命令を同時にディスパッチする手段とを備える
    マルチスカラー・プロセッサ・システムにおいて高速浮
    動小数点例外起動式操作をエネーブルするためのシステ
    ムであって、 各演算命令が浮動小数点プロセッサ・ユニットにディス
    パッチされるのに応じて保持された命令アドレスを持つ
    関連するダミー命令をそれと同時に固定小数点プロセッ
    サ・ユニットにディスパッチする手段と、 前記浮動小数点プロセッサ・ユニットからの各命令の出
    力を前記固定小数点プロセッサ・ユニットからの関連す
    るダミー命令の出力と同期化する手段とを含み、浮動小
    数点例外を発生させた前記浮動小数点プロセッサ・ユニ
    ット内の各演算命令を正確に識別することができること
    を特徴とするシステム。
  5. 【請求項5】前記浮動小数点プロセッサ・ユニットから
    の各演算命令の出力を前記固定小数点プロセッサ・ユニ
    ットからの関連するダミー命令の出力と同期化する前記
    手段が、前記浮動小数点プロセッサ・ユニットからの演
    算命令の出力が発生するまで前記固定小数点プロセッサ
    ・ユニットからの関連するダミー命令の出力を遅延させ
    る手段を含むことを特徴とする、請求項4に記載の、マ
    ルチスカラー・プロセッサ・システムにおいて高速浮動
    小数点例外起動式操作をエネーブルするためのシステ
    ム。
  6. 【請求項6】前記浮動小数点プロセッサ・ユニットから
    の各演算命令の出力を前記固定小数点プロセッサ・ユニ
    ットからの関連するダミー命令の出力と同期化する前記
    手段が、前記固定小数点プロセッサ・ユニットからの関
    連するダミー命令が発生するまで前記浮動小数点プロセ
    ッサ・ユニットからの演算命令の出力を遅延させる手段
    を含むことを特徴とする、請求項4に記載の、マルチス
    カラー・プロセッサ・システムにおいて高速浮動小数点
    例外起動式操作をエネーブルするためのシステム。
JP5234430A 1992-10-09 1993-09-21 マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム Expired - Lifetime JP2618187B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/959,193 US5410657A (en) 1992-10-09 1992-10-09 Method and system for high speed floating point exception enabled operation in a multiscalar processor system
US959193 1992-10-09

Publications (2)

Publication Number Publication Date
JPH06202868A true JPH06202868A (ja) 1994-07-22
JP2618187B2 JP2618187B2 (ja) 1997-06-11

Family

ID=25501762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5234430A Expired - Lifetime JP2618187B2 (ja) 1992-10-09 1993-09-21 マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム

Country Status (2)

Country Link
US (1) US5410657A (ja)
JP (1) JP2618187B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3655403B2 (ja) * 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
US5884062A (en) * 1996-08-30 1999-03-16 Texas Instruments Incorporated Microprocessor with pipeline status integrity logic for handling multiple stage writeback exceptions
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
US6571265B1 (en) 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
JP4806402B2 (ja) * 2005-04-21 2011-11-02 パナソニック株式会社 プログラム難読化装置及び難読化方法
US7694112B2 (en) * 2008-01-31 2010-04-06 International Business Machines Corporation Multiplexing output from second execution unit add/saturation processing portion of wider width intermediate result of first primitive execution unit for compound computation
US7913067B2 (en) * 2008-02-20 2011-03-22 International Business Machines Corporation Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5006980A (en) * 1988-07-20 1991-04-09 Digital Equipment Corporation Pipelined digital CPU with deadlock resolution
US5109514A (en) * 1988-07-28 1992-04-28 Sun Microsystems, Inc. Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching

Also Published As

Publication number Publication date
JP2618187B2 (ja) 1997-06-11
US5410657A (en) 1995-04-25

Similar Documents

Publication Publication Date Title
US4879676A (en) Method and apparatus for precise floating point exceptions
US5051896A (en) Apparatus and method for nullifying delayed slot instructions in a pipelined computer system
US5699279A (en) Optimized binary adders and comparators for inputs having different widths
JP3120152B2 (ja) コンピューターシステム
JP2645669B2 (ja) データ処理システム
US5394351A (en) Optimized binary adder and comparator having an implicit constant for an input
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
US5675777A (en) Architecture for minimal instruction set computing system
US5442757A (en) Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
US5500943A (en) Data processor with rename buffer and FIFO buffer for in-order instruction completion
US7024543B2 (en) Synchronising pipelines in a data processing apparatus
US5590294A (en) Method and apparatus for retarting pipeline processing
JPS63131230A (ja) 情報処理装置
EP0899654B1 (en) A data processing system and method
JPH0766329B2 (ja) 情報処理装置
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
JP2742374B2 (ja) スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
JP2618187B2 (ja) マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JP2778717B2 (ja) データ処理ユニット
EP1050805B1 (en) Transfer of guard values in a computer system
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JP2819733B2 (ja) 情報処理装置