JPH11327903A - Ieee準拠浮動小数点ユニット - Google Patents

Ieee準拠浮動小数点ユニット

Info

Publication number
JPH11327903A
JPH11327903A JP11032530A JP3253099A JPH11327903A JP H11327903 A JPH11327903 A JP H11327903A JP 11032530 A JP11032530 A JP 11032530A JP 3253099 A JP3253099 A JP 3253099A JP H11327903 A JPH11327903 A JP H11327903A
Authority
JP
Japan
Prior art keywords
floating point
unit
register
exception
floating
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
JP11032530A
Other languages
English (en)
Other versions
JP3014381B2 (ja
Inventor
John Slagel Timothy
ティモシー・ジョン・スレーゲル
Frazel Macmanigal David
デビッド・フラゼル・マックマニガル
Steven Farrel Mark
マーク・スティーブン・ファレル
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 JPH11327903A publication Critical patent/JPH11327903A/ja
Application granted granted Critical
Publication of JP3014381B2 publication Critical patent/JP3014381B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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/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; 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/3017Runtime instruction translation, e.g. macros
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 IEEE754規格準拠の2進浮動小数点計
算を実行する際の変動を可能にするための3通りの別個
のメカニズムを提供する。 【解決手段】 FPUは、IEEE準拠の2進小数点命
令をハードウェアで実行した場合にミリコード・エミュ
レーションが必要になるような事象を動的に検出する特
殊条件検出器を有する。例外処理ユニットは、トラップ
・ハンドラを呼び出さずに例外条件の結果をトラップす
ることにより、ミリコード・エミュレーションを支援す
る。実行中に例外条件が検出された場合、マスク・ビッ
トがオンである場合、その結果はFPRに書き込まれ、
トラップ・ハンドラが呼び出される。そうではない場
合、デフォルト値が書き込まれ、フラグが設定され、プ
ログラムは実行を続ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータおよ
びコンピュータ・システムならびにその浮動小数点ユニ
ットに関し、特にIEEE754規格による浮動小数点
操作の実行に関し、その規格の変動がハードウェアまた
はハードウェアとミリコードとの組合せと共存できるよ
うにするものである。
【0002】
【従来の技術とその課題】「2進浮動小数点演算に関す
るIEEE規格」(IEEE754規格)は、特に例外
条件でのトラップ結果の定義が非常に複雑なものになっ
ている。IEEE754規格は、単一の実施態様を示し
ているわけではない。たとえば、アンダーフローは、小
ささに関する2通りの定義と、不正確さに関する2通り
の定義に応じて、4通りに定義されている。マイクロプ
ロセッサの開発は、IEEE754規格をサポートする
アーキテクチャをまず完成させてから、そのアーキテク
チャをサポートするマイクロプロセッサに取りかからな
ければならないという必要性によって妨げられていた。
【0003】
【課題を解決するための手段】本発明では、IEEE7
54規格準拠の2進浮動小数点計算を実行する際の変動
を可能にするための3通りの別個のメカニズムを提供す
る。最初の2通りのメカニズムは、IEEE準拠の2進
浮動小数点命令の実行が動的に変動できるようにするも
のである。第3のメカニズムは、特定の命令の実行を静
的に変動させるものである。
【0004】このアーキテクチャの実行の変動を可能に
する能力により、多様なやり方でマイクロプロセッサの
開発時間を削減することができた。ハードウェアでの実
装エラーは検証プロセスの後期になるまで分からない可
能性があるので、このような実装エラーを検出し、ミリ
コード・エミュレーションを呼び出すためのメカニズム
は、適当な最終修正になり得る。この修正(フィック
ス)は、ハードウェアの作り直しを必要としない。ハー
ドウェアの不正確な実装という希な事象の際にハードウ
ェアがエミュレーションを呼び出すだけであれば、パフ
ォーマンスはそれほど低下しない。
【0005】また、マイクロプロセッサの開発時間は、
アーキテクチャとマイクロプロセッサの並行開発を可能
にすることによって削減される。マイクロプロセッサが
ハードウェアを変更せずに機能を変更する能力を有して
いる場合、アーキテクチャの開発を、もはやマイクロプ
ロセッサの開発の前に行う必要はない。
【0006】
【発明の実施の形態】次に本発明をより詳細に説明する
と、図1からわかるように、好ましい実施例で提供する
浮動小数点ユニットFPUは、制御入力およびデータ入
力レジスタと、命令実行の結果をデータ出力を介して浮
動小数点ユニットから記憶ユニットに転送する制御およ
びデータ書込みステージ・レジスタとを有する。浮動小
数点ユニットは、通常、算術計算用の複数のパイプライ
ン・ステージと、1つの正規化ステージと、1つの丸め
ステージとを有し、そのパイプライン・ステージのそれ
ぞれは命令ストリームの処理中に個別の命令を含むこと
ができる。これらのステージは、データおよび制御入力
を受け取って浮動小数点計算を実行するデータフロー・
パイプライン10内で命令の処理が行われるように規則
正しく接続されている。結果のデータは制御とともにパ
イプラインから出力される。制御出力は、浮動小数点ア
レイ書込みイネーブルおよびアドレス、条件コード、プ
ログラム・ポインタを前進させる完了信号などのアーキ
テクチャ情報を更新するために使用される。
【0007】次に、開発時のフレキシビリティを可能に
するために、IEEE準拠の2進浮動小数点命令をハー
ドウェアで実行した場合にミリコード・エミュレーショ
ンが必要になるような事象を動的に検出する第1のメカ
ニズムを提供した。このような事象は、浮動小数点ユニ
ットでの命令の実行中に発生する。ミリコードがエミュ
レートできる事象の完全なセットは、ハードウェアの設
計プロセスの初期にあらかじめ決定される。当業者にと
って既知のミリコードは、IBMのS/390CMOS
プロセッサ用のCISCプロセッサに実装されており、
ミリモード中にマシンが実行するS/390に適したコ
ード内の高特権サブルーチンである。本発明の場合、浮
動小数点メカニズムは、ミリコードまたは初期プログラ
ム・ロードで設定可能なシステム・レジスタによって制
御される。事象の1つが検出されると、対応するシステ
ム・レジスタ・マスクをチェックして、操作を完了すべ
きかまたは抑止すべきかを判定する。抑止の場合、浮動
小数点は、任意の設計済み機構(ユーザがアクセスでき
る機構)に対するすべての更新を抑止し、擬似例外コー
ドを生成する。次に、この擬似例外コードは、ハードウ
ェア浮動小数点制御ワード(FPC)というハードウェ
ア・レジスタにそれを書き込むことにより、トラップ・
ハンドラに渡される。IEEE規格はアーキテクチャに
よっては例外ハンドラと呼ばれるトラップ・ハンドラを
定義しているが、これらの用語は本明細書では同等であ
ることに留意されたい。トラップ・ハンドラは、トラッ
プ・ハンドラまたは例外ハンドラと呼ばれるミリコード
・ルーチンを含むシステム・メモリ領域への分岐を引き
起こす割込み実行信号によって呼び出される。トラップ
・ハンドラは、ハードウェアFPCを読み取り、擬似例
外コードを解釈し、複数の個別命令を使用して浮動小数
点命令をエミュレートするミリコード・ルーチンを呼び
出す。
【0008】好ましい実施例によれば、抑止ユニット1
6は、抑止信号の制御下でFPUデータフロー・パイプ
ライン10の制御出力をゲートするために使用する。抑
止信号は、例外ハンドラ・ユニット20から供給され
る。抑止信号がアクティブである場合、FPUデータフ
ロー・パイプライン10は、設計済み機構を更新するこ
とができない。
【0009】特殊条件の検出は、特殊条件検出ユニット
14で実行される。このユニットは、無効操作、ゼロに
よる除算、指数オーバフロー、指数アンダーフロー、不
正確な結果など、アーキテクチャによって識別される5
つの例外条件の検出を担当する。また、このユニット
は、他の特殊事前定義事象も検出する。第1の事象は、
1つまたは複数のNaN(非数値)オペランドを有する
3オペランド命令が実行される場合である。第2の事象
は、非正規化入力オペランドを備えた2進拡張乗算、除
算、または平方根命令が実行される場合である。第3の
事象は、結果的に指数オーバフローが発生する2進浮動
小数点命令が実行される場合である。第4の事象は、結
果的に指数アンダーフローが発生する2進浮動小数点命
令が実行される場合である。これらの事象は、ハードウ
ェアで実現するには複雑であるか、エラーが発生しやす
いか、またはアーキテクチャ内で不安定な領域になるも
のであるとあらかじめ決定されている。例外条件および
特殊事象の発生は、例外ハンドラ・ユニット20に通知
される。
【0010】ディスエーブル・マスク・レジスタ18
は、特殊条件検出ユニット14によって特殊事象が検出
されたときに行われるアクションを制御するディスエー
ブル・ビットを含む。ディスエーブル・マスク・レジス
タ18は、上記の4つの特殊事象に対して1対1で対応
する4つのビットを含む。このレジスタは、システム・
ミリコードによるかまたはレジスタ走査初期設定により
更新することができる。
【0011】また、第2のメカニズムも提供した。この
第2のメカニズムは、トラップ・ハンドラを呼び出さず
に例外条件の結果をトラップすることにより、ミリコー
ド・エミュレーションを支援するために使用する。実行
中に例外条件が検出された場合、IEEE754規格で
はマスク・ビットの制御下で2通りのアクションを行う
必要がある。マスク・ビットがオンである場合、その結
果はFPRに書き込まれ、トラップ・ハンドラが呼び出
される。そうではない場合、デフォルト値が書き込ま
れ、フラグが設定され、プログラムは実行を続ける。こ
のメカニズムにより、IEEE754規格の変形が可能
になる。例外条件が発生した場合、トラップ結果は浮動
小数点レジスタ・アレイに書き込まれ、データ例外コー
ドは設計済みではない、すなわちユーザがアクセスでき
ないデータ例外コード・レジスタに書き込まれ、プログ
ラムは次の逐次命令に前進する。また、このメカニズム
は、ミリコードで設定可能な制御レジスタによって制御
される。
【0012】したがって、ハードウェアFPC(浮動小
数点制御ワード)22は、設計済みFPC24のハード
ウェア・バージョンであるレジスタである。これは、例
外条件の場合に行われるアクションを制御するマスク・
ビットを含む。無効操作、ゼロによる除算、指数オーバ
フロー、指数アンダーフロー、不正確な結果という5つ
の例外条件をそれぞれ制御する5つのマスク・ビットF
PC(8〜12)が存在する。また、アクティブである
場合、トラップ・ハンドラを呼び出さずに例外条件がト
ラップされるような追加のマスク・ビットFPC(7)
が存在する。最終的な結果はトラップ結果を浮動小数点
レジスタ・アレイに書き込むことであり、データ例外コ
ード(DXC)はハードウェアFPC22内に置かれ、
プログラム・ポインタは前進する。ハードウェアFPC
22は設計済みFPC24とは異なることに留意された
い。ハードウェアFPC22は、追加の設計済みではな
い例外条件が処理される方法を制御する追加ビットを含
む。ハードウェアFPC22は、アーキテクチャで識別
されないビットの組合せを有する。ハードウェアFPC
22は、ハードウェアおよびシステム・ミリコードから
のみアクセス可能であり、ユーザからはアクセスできな
い。
【0013】設計済みFPC24は、設計済み浮動小数
点制御ワードである。これは、ユーザからアクセス可能
であり、システム・ミリコードの制御下で更新される。
【0014】例外ハンドラ・ユニット20は、ハードウ
ェアFPC22およびディスエーブル・マスク・レジス
タ18に含まれるマスク・ビットの制御下で例外条件お
よび特殊事象を操作する。特殊事象が発生し、対応する
ディスエーブル・マスク・レジスタ・ビットがアクティ
ブである場合、例外ハンドラ・ユニット20はデータ例
外コード(DXC)を生成し、トラップ・ハンドラが呼
び出される。ディスエーブル・マスク・レジスタ18に
対応する事象の例外コードは、設計済みではなく、実デ
ータ例外を引き起こさないので、擬似例外であると見な
される。トラップ・ハンドラは、擬似例外コードを認識
し、ミリコード・エミュレーション・ルーチンに制御を
移す。5つの例外条件は、ハードウェアFPC22のレ
ジスタ・マスク・ビットFPC(8:12)によってそ
れぞれマスクされる。マスクされた例外条件が発生する
と、ハードウェアFPC22内のDXCコードが設定さ
れる。FPC(7)がアクティブである場合、抑止信号
が活動化され、割込み実行信号は活動化されない。ハー
ドウェアFPC(7)がアクティブではない場合、抑止
信号はアクティブではなく、割込み実行信号はアクティ
ブになる。
【0015】好ましい実施例は、2進の乗算後減算命令
の操作に関する乗算/減算イネーブル30の制御を有す
る。アクティブである場合、乗算後減算命令はOp3<
=Op3−Op1Op2を実行する。アクティブでは
ない場合、乗算後減算命令はOp3<=Op1Op2
−Op3を実行する。これにより、最後のメカニズムの
実現が可能になる。このメカニズムは、走査シーケンス
中にのみ設定可能な制御レジスタの制御下で乗算後減算
命令のハードウェア実行を静的に変更する。乗算後減算
命令の機能はOp3<=Op3−Op1Op2または
Op3<=Op1Op2−Op3のいずれかにするこ
とができ、Op1はオペランド1を表し、Op2はオペ
ランド2を表し、Op3はオペランド3を表す。この機
能の第1の形式は、IBMのS/390ベクトル・アー
キテクチャに実装されており、第2の形式はPower
PCアーキテクチャに実装される。(IBM、S/39
0、PowerPCアーキテクチャはすべて本出願人の
商標である。)IEEE754規格は乗算/減算を定義
していないが、これはその規格の単純な拡張である。本
発明のメカニズムは、静的再構成により両方の定義を満
足する。
【0016】第1のメカニズムの使用例は、NaN(非
数値)入力を有する3オペランド命令を処理するケース
である。乗算後減算命令のハードウェア実施態様では、
複数の入力オペランドがNaNである場合、データ出力
は入力オペランドの1つに等しくなり、優先順位は通知
NaNである方に与えられ、次にオペランド1、さらに
オペランド2に与えられると想定している。ハードウェ
アが作成された後でアーキテクチャが変更された場合、
ディスエーブル・マスク・レジスタ18の最上位ビット
をセットすることにより、ハードウェアを指定変更する
ことは容易なことである。特殊条件検出ユニット14
は、NaN入力および乗算後加算という3オペランド命
令を検出すると、この特定の事象が発生したことを例外
ハンドラ・ユニット20に通知する。次に例外ハンドラ
・ユニット20は、システム・ミリコードまたは初期プ
ログラム・ロードによって1という値に設定されたディ
スエーブル・マスク・ビット・レジスタ18のビット0
を調査する。このビットが0という値を有する場合、ハ
ードウェアで通常実行が行われるはずであるが、このビ
ットは1になっているので、抑止信号が抑止ユニット1
6に送られ、16進の83というデータ例外コードがハ
ードウェアFPC22に書き込まれ、割込み実行信号が
命令ユニットに送られて、例外ハンドラ・ルーチンに分
岐する。このルーチンは、データ例外コードを調査し、
ミリコード・ルーチンが一連の単純な命令によって乗算
後加算命令をエミュレートするルーチンに分岐しなけれ
ばならないことをこの固有のDXCコードが示している
と判定する。ルーチンの終わりに、乗算後加算命令を含
む元の命令ストリームに制御が戻される。このようにし
て、一般的な入力の場合にハードウェア・パフォーマン
スが維持されるが、NaN入力の場合、アーキテクチャ
定義が変更されるかまたはハードウェアにバグが存在す
る場合、ミリコード・ルーチンを呼び出すことができ
る。
【0017】本発明の第2のメカニズムの例は、整数へ
の除算という複雑命令の実現にある。この命令は、2つ
の浮動小数点数を除算し、整数の商とその剰余を報告す
る。命令全体はハードウェアで実現するには複雑すぎる
ので、より単純な命令を使用するミリコード・ルーチン
が作成された。商が決定されると、剰余操作は乗算後減
算命令にすぎない。しかし、ルーチンからのトラップを
引き起こさないように、制御されたやり方で乗算後減算
命令を実行する必要がある。剰余がアンダーフローを起
こす可能性があっても、剰余がアンダーフローを起こし
たときにトラップしないよう、整数への除算の操作全体
を定義することができる。メカニズム2は、任意の浮動
小数点命令を実行し、トラップを取らずにトラップ結果
を生成するが、トラップが取られなかったことをハード
ウェアFPC22に注記するための手段を提供する。ミ
リコードはこのルーチンに入る際に、トラップを呼び出
さないように、ハードウェアFPC22のマスク・ビッ
ト7を1に設定する。アンダーフロー条件を有する乗算
後減算操作が実行された場合、これは、特殊条件検出ユ
ニット14によって検出され、例外ハンドラ・ユニット
20に通知される。次にハードウェアFPC22のマス
ク・ビット7を調査して、必要なアクションを決定する
ことになる。このビットが0であったなら、割込み実行
信号がアクティブになって例外ハンドラを呼び出し、ア
ンダーフローに対応するデータ例外コード(16進の1
0)がハードウェアFPC22に書き込まれ、例外ハン
ドラ中にデータ例外コードが設計済みFPC24に書き
込まれる。しかし、マスク・ビット7は1なので、デー
タ例外コードはハードウェアFPC22には書き込まれ
るが、設計済みFPC24には決して書き込まれず、割
込み実行信号は非アクティブになる。このため、例外ハ
ンドラ・ルーチンではなく、ミリコード・ルーチン内の
次の命令を実行することができる。
【0018】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0019】(1)複数のパイプライン・ステージを有
する浮動小数点ユニット・データフロー・パイプライン
を含み、それぞれのパイプライン・ステージが前記デー
タフロー・パイプライン内の命令ストリームの処理中に
個々の命令を含むことができ、前記データフロー・パイ
プラインが浮動小数点計算を実行するためのデータおよ
び命令を受け取るためのデータ入力および制御入力なら
びに出力を有する、コンピュータ・システム用の浮動小
数点ユニット(FPU)であって、結果のデータは、浮
動小数点アレイ書込みイネーブルおよびアドレス、条件
コード、ならびに前記浮動小数点ユニット用のプログラ
ム・ポインタを前進させる完了信号を含むアーキテクチ
ャ情報を更新するために使用される制御出力とともに前
記パイプラインから出力され、前記浮動小数点ユニット
内での前記命令の実行中に発生する事象のうち、IEE
E準拠の2進浮動小数点命令のハードウェア実行がミリ
コード・エミュレーションを必要とするような事象を動
的に検出するための特殊条件検出ユニットをさらに含
み、前記特殊条件検出ユニットはミリコードで設定可能
かまたは初期プログラム・ロードで設定可能なシステム
・レジスタによって制御され、事象の1つが検出される
と、対応するシステム・レジスタ・マスクが例外ハンド
ラ・ユニットによってチェックされ、操作を完了すべき
かまたは抑止すべきかを判定する、浮動小数点ユニッ
ト。 (2)操作を抑止すべき場合、前記例外ハンドラ・ユニ
ットによって供給される抑止信号の制御下で、前記デー
タフロー・パイプラインの前記制御出力をゲートする一
方、設計済み機構に対するすべての更新を抑止し、擬似
例外コードを生成する抑止ユニットをさらに含む、上記
(1)に記載の浮動小数点ユニット。 (3)前記擬似例外コードが浮動小数点トラップ・ハン
ドラに渡され、該ハンドラが前記擬似例外コードを解釈
し、複数の個別命令を使用して前記命令をエミュレート
するミリコード・ルーチンを呼び出す、上記(2)に記
載の浮動小数点ユニット。 (4)前記抑止信号がアクティブである場合、前記デー
タフロー・パイプラインはいかなる設計済み機構も更新
することができない、上記(3)に記載の浮動小数点ユ
ニット。 (5)前記特殊条件検出ユニットは、アーキテクチャに
よって識別される例外条件の他に、1つまたは複数のN
aN(非数値)オペランドを有する3オペランド命令が
実行される第1の特殊事象と、非正規化入力オペランド
を備えた2進拡張乗算、除算、または平方根命令が実行
される第2の特殊事象と、結果的に指数オーバフローが
発生する2進浮動小数点命令が実行される第3の特殊事
象と、結果的に指数アンダーフローが発生する2進浮動
小数点命令が実行される第4の特殊事象とを含む他の特
殊事前定義事象も検出する、上記(3)に記載の浮動小
数点ユニット。 (6)前記特殊事象の発生が前記例外ハンドラ・ユニッ
トに通知される、上記(5)に記載の浮動小数点ユニッ
ト(FPU)。 (7)ディスエーブル・マスク・レジスタが、前記特殊
条件検出ユニットによって特殊事象が検出されたときに
行われるアクションを制御するディスエーブル・ビット
を含み、前記ディスエーブル・マスク・レジスタが、前
記事前定義事象に対して1対1で対応する4つのビット
を含み、前記ディスエーブル・マスク・レジスタが、シ
ステム・ミリコードによるかまたはレジスタ走査初期設
定により更新される、上記(5)に記載の浮動小数点ユ
ニット。 (8)例外条件の場合に行われるアクションを制御する
制御マスク・ビットを含むハードウェア浮動小数点制御
ワード・レジスタをさらに含む、上記(5)に記載の浮
動小数点ユニット。 (9)無効操作、ゼロによる除算、指数オーバフロー、
指数アンダーフロー、不正確な結果という5つの例外条
件をそれぞれ制御する5つの制御マスク・ビットが存在
する、上記(8)に記載の浮動小数点ユニット。 (10)アクティブである場合、浮動小数点トラップ・
ハンドラを呼び出さずに例外条件がトラップされるよう
な追加の制御マスク・ビットが存在する、上記(9)に
記載の浮動小数点ユニット。 (11)トラップ結果を浮動小数点レジスタ・アレイに
書き込むために、データ例外コードが前記ハードウェア
浮動小数点制御ワード・レジスタ内に置かれ、前記浮動
小数点プログラム・ポインタが前進する、上記(10)
に記載の浮動小数点ユニット。 (12)前記ハードウェア浮動小数点制御ワード・レジ
スタは、設計済みではない追加の例外条件が処理される
方法を制御する追加ビットを含み、前記浮動小数点アー
キテクチャで識別されないビットの組合せを有する点で
設計済み浮動小数点制御ワードとは異なり、前記ハード
ウェア浮動小数点制御ワード・レジスタは、ハードウェ
アおよびシステム・ミリコードからのみアクセス可能で
あって、ユーザからはアクセスできない、上記(5)に
記載の浮動小数点ユニット。 (13)前記設計済み浮動小数点制御ワードはユーザか
らアクセス可能であり、前記システム・ミリコードの制
御下で更新される、上記(12)に記載の浮動小数点ユ
ニット。 (14)前記例外ハンドラ・ユニットは、前記ハードウ
ェア浮動小数点制御ワード・レジスタおよび前記ディス
エーブル・マスク・レジスタに含まれる前記マスク・ビ
ットの制御下で前記例外条件および特殊事象を操作し、
もし特殊事象が発生して、対応するディスエーブル・マ
スク・レジスタ・ビットがアクティブである場合、前記
例外ハンドラ・ユニットはデータ例外コードを生成し、
前記トラップ・ハンドラが呼び出される、上記(13)
に記載の浮動小数点ユニット。 (15)前記ディスエーブル・マスク・レジスタに対応
する事象の例外コードが、擬似例外であると見なされ、
設計済みではなく、実データ例外を引き起こさない、上
記(14)に記載の浮動小数点ユニット。 (16)前記トラップ・ハンドラは擬似例外コードを認
識したとき、ミリコード・エミュレーション・ルーチン
に制御を移す、上記(14)に記載の浮動小数点ユニッ
ト。 (17)例外条件が前記ハードウェア浮動小数点制御ワ
ード・レジスタのレジスタ・マスク・ビットによってマ
スクされ、マスクされた例外条件が発生すると、前記ハ
ードウェア浮動小数点制御ワード・レジスタ内のデータ
例外コードが設定され、特定の抑止マスク・ビットがア
クティブである場合、前記抑止信号が活動化され、割込
み実行信号は活動化されないが、前記特定の抑止ビット
がアクティブではない場合、前記抑止信号はアクティブ
ではなく、前記割込み実行信号はアクティブになる、上
記(14)に記載の浮動小数点ユニット。 (18)乗算後減算命令の操作のために前記データフロ
ー・パイプラインに走査データを入力するように結合さ
れた乗算/減算イネーブル制御レジスタが設けられ、ア
クティブである場合、前記乗算後減算命令がOp3<=
Op3−Op1Op2を実行するが(Op1はオペラ
ンド1を表し、Op2はオペランド2を表し、Op3は
オペランド3を表す)、アクティブではない場合、前記
乗算後減算命令がOp3<=Op1Op2−Op3を
実行する、上記(5)に記載の浮動小数点ユニット。 (19)走査シーケンス中にのみ設定可能な前記乗算/
減算イネーブル制御レジスタの制御下で前記乗算後減算
命令の実行が静的に変更される、上記(18)に記載の
浮動小数点ユニット。
【図面の簡単な説明】
【図1】好ましい実施例の概要を示す概略図であり、特
に浮動小数点ユニット・データフロー・パイプラインと
例外ハンドラ・ユニットとの対話を示す図である。
【符号の説明】
10 FPUデータフロー・パイプライン 14 特殊条件検出ユニット 16 抑止ユニット 18 ディスエーブル・マスク・レジスタ 20 例外ハンドラ・ユニット 22 ハードウェアFPC 24 設計済みFPC 30 乗算/減算イネーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド・フラゼル・マックマニガル アメリカ合衆国12571 ニューヨーク州レ ッドフック ウェスト・バード・アベニュ ー 7 (72)発明者 マーク・スティーブン・ファレル アメリカ合衆国12569 ニューヨーク州プ レザント・バレー アール・ディー4 ボ ックス411

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】複数のパイプライン・ステージを有する浮
    動小数点ユニット・データフロー・パイプラインを含
    み、それぞれのパイプライン・ステージが前記データフ
    ロー・パイプライン内の命令ストリームの処理中に個々
    の命令を含むことができ、前記データフロー・パイプラ
    インが浮動小数点計算を実行するためのデータおよび命
    令を受け取るためのデータ入力および制御入力ならびに
    出力を有する、コンピュータ・システム用の浮動小数点
    ユニット(FPU)であって、結果のデータは、浮動小
    数点アレイ書込みイネーブルおよびアドレス、条件コー
    ド、ならびに前記浮動小数点ユニット用のプログラム・
    ポインタを前進させる完了信号を含むアーキテクチャ情
    報を更新するために使用される制御出力とともに前記パ
    イプラインから出力され、前記浮動小数点ユニット内で
    の前記命令の実行中に発生する事象のうち、IEEE準
    拠の2進浮動小数点命令のハードウェア実行がミリコー
    ド・エミュレーションを必要とするような事象を動的に
    検出するための特殊条件検出ユニットをさらに含み、前
    記特殊条件検出ユニットはミリコードで設定可能かまた
    は初期プログラム・ロードで設定可能なシステム・レジ
    スタによって制御され、事象の1つが検出されると、対
    応するシステム・レジスタ・マスクが例外ハンドラ・ユ
    ニットによってチェックされ、操作を完了すべきかまた
    は抑止すべきかを判定する、浮動小数点ユニット。
  2. 【請求項2】操作を抑止すべき場合、前記例外ハンドラ
    ・ユニットによって供給される抑止信号の制御下で、前
    記データフロー・パイプラインの前記制御出力をゲート
    する一方、設計済み機構に対するすべての更新を抑止
    し、擬似例外コードを生成する抑止ユニットをさらに含
    む、請求項1に記載の浮動小数点ユニット。
  3. 【請求項3】前記擬似例外コードが浮動小数点トラップ
    ・ハンドラに渡され、該ハンドラが前記擬似例外コード
    を解釈し、複数の個別命令を使用して前記命令をエミュ
    レートするミリコード・ルーチンを呼び出す、請求項2
    に記載の浮動小数点ユニット。
  4. 【請求項4】前記抑止信号がアクティブである場合、前
    記データフロー・パイプラインはいかなる設計済み機構
    も更新することができない、請求項3に記載の浮動小数
    点ユニット。
  5. 【請求項5】前記特殊条件検出ユニットは、アーキテク
    チャによって識別される例外条件の他に、1つまたは複
    数のNaN(非数値)オペランドを有する3オペランド
    命令が実行される第1の特殊事象と、非正規化入力オペ
    ランドを備えた2進拡張乗算、除算、または平方根命令
    が実行される第2の特殊事象と、結果的に指数オーバフ
    ローが発生する2進浮動小数点命令が実行される第3の
    特殊事象と、結果的に指数アンダーフローが発生する2
    進浮動小数点命令が実行される第4の特殊事象とを含む
    他の特殊事前定義事象も検出する、請求項3に記載の浮
    動小数点ユニット。
  6. 【請求項6】前記特殊事象の発生が前記例外ハンドラ・
    ユニットに通知される、請求項5に記載の浮動小数点ユ
    ニット(FPU)。
  7. 【請求項7】ディスエーブル・マスク・レジスタが、前
    記特殊条件検出ユニットによって特殊事象が検出された
    ときに行われるアクションを制御するディスエーブル・
    ビットを含み、前記ディスエーブル・マスク・レジスタ
    が、前記事前定義事象に対して1対1で対応する4つの
    ビットを含み、前記ディスエーブル・マスク・レジスタ
    が、システム・ミリコードによるかまたはレジスタ走査
    初期設定により更新される、請求項5に記載の浮動小数
    点ユニット。
  8. 【請求項8】例外条件の場合に行われるアクションを制
    御する制御マスク・ビットを含むハードウェア浮動小数
    点制御ワード・レジスタをさらに含む、請求項5に記載
    の浮動小数点ユニット。
  9. 【請求項9】無効操作、ゼロによる除算、指数オーバフ
    ロー、指数アンダーフロー、不正確な結果という5つの
    例外条件をそれぞれ制御する5つの制御マスク・ビット
    が存在する、請求項8に記載の浮動小数点ユニット。
  10. 【請求項10】アクティブである場合、浮動小数点トラ
    ップ・ハンドラを呼び出さずに例外条件がトラップされ
    るような追加の制御マスク・ビットが存在する、請求項
    9に記載の浮動小数点ユニット。
  11. 【請求項11】トラップ結果を浮動小数点レジスタ・ア
    レイに書き込むために、データ例外コードが前記ハード
    ウェア浮動小数点制御ワード・レジスタ内に置かれ、前
    記浮動小数点プログラム・ポインタが前進する、請求項
    10に記載の浮動小数点ユニット。
  12. 【請求項12】前記ハードウェア浮動小数点制御ワード
    ・レジスタは、設計済みではない追加の例外条件が処理
    される方法を制御する追加ビットを含み、前記浮動小数
    点アーキテクチャで識別されないビットの組合せを有す
    る点で設計済み浮動小数点制御ワードとは異なり、前記
    ハードウェア浮動小数点制御ワード・レジスタは、ハー
    ドウェアおよびシステム・ミリコードからのみアクセス
    可能であって、ユーザからはアクセスできない、請求項
    5に記載の浮動小数点ユニット。
  13. 【請求項13】前記設計済み浮動小数点制御ワードはユ
    ーザからアクセス可能であり、前記システム・ミリコー
    ドの制御下で更新される、請求項12に記載の浮動小数
    点ユニット。
  14. 【請求項14】前記例外ハンドラ・ユニットは、前記ハ
    ードウェア浮動小数点制御ワード・レジスタおよび前記
    ディスエーブル・マスク・レジスタに含まれる前記マス
    ク・ビットの制御下で前記例外条件および特殊事象を操
    作し、もし特殊事象が発生して、対応するディスエーブ
    ル・マスク・レジスタ・ビットがアクティブである場
    合、前記例外ハンドラ・ユニットはデータ例外コードを
    生成し、前記トラップ・ハンドラが呼び出される、請求
    項13に記載の浮動小数点ユニット。
  15. 【請求項15】前記ディスエーブル・マスク・レジスタ
    に対応する事象の例外コードが、擬似例外であると見な
    され、設計済みではなく、実データ例外を引き起こさな
    い、請求項14に記載の浮動小数点ユニット。
  16. 【請求項16】前記トラップ・ハンドラは擬似例外コー
    ドを認識したとき、ミリコード・エミュレーション・ル
    ーチンに制御を移す、請求項14に記載の浮動小数点ユ
    ニット。
  17. 【請求項17】例外条件が前記ハードウェア浮動小数点
    制御ワード・レジスタのレジスタ・マスク・ビットによ
    ってマスクされ、マスクされた例外条件が発生すると、
    前記ハードウェア浮動小数点制御ワード・レジスタ内の
    データ例外コードが設定され、特定の抑止マスク・ビッ
    トがアクティブである場合、前記抑止信号が活動化さ
    れ、割込み実行信号は活動化されないが、前記特定の抑
    止ビットがアクティブではない場合、前記抑止信号はア
    クティブではなく、前記割込み実行信号はアクティブに
    なる、請求項14に記載の浮動小数点ユニット。
  18. 【請求項18】乗算後減算命令の操作のために前記デー
    タフロー・パイプラインに走査データを入力するように
    結合された乗算/減算イネーブル制御レジスタが設けら
    れ、アクティブである場合、前記乗算後減算命令がOp
    3<=Op3−Op1Op2を実行するが(Op1は
    オペランド1を表し、Op2はオペランド2を表し、O
    p3はオペランド3を表す)、アクティブではない場
    合、前記乗算後減算命令がOp3<=Op1Op2−
    Op3を実行する、請求項5に記載の浮動小数点ユニッ
    ト。
  19. 【請求項19】走査シーケンス中にのみ設定可能な前記
    乗算/減算イネーブル制御レジスタの制御下で前記乗算
    後減算命令の実行が静的に変更される、請求項18に記
    載の浮動小数点ユニット。
JP11032530A 1998-02-19 1999-02-10 Ieee準拠浮動小数点ユニット Expired - Fee Related JP3014381B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/026,328 US6044454A (en) 1998-02-19 1998-02-19 IEEE compliant floating point unit
US09/026328 1998-02-19

Publications (2)

Publication Number Publication Date
JPH11327903A true JPH11327903A (ja) 1999-11-30
JP3014381B2 JP3014381B2 (ja) 2000-02-28

Family

ID=21831203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11032530A Expired - Fee Related JP3014381B2 (ja) 1998-02-19 1999-02-10 Ieee準拠浮動小数点ユニット

Country Status (3)

Country Link
US (1) US6044454A (ja)
JP (1) JP3014381B2 (ja)
KR (1) KR100317768B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032263A (ja) * 2003-07-07 2009-02-12 Renesas Technology Corp 情報処理装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247117B1 (en) * 1999-03-08 2001-06-12 Advanced Micro Devices, Inc. Apparatus and method for using checking instructions in a floating-point execution unit
US6408379B1 (en) * 1999-06-10 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for executing floating-point store instructions in a microprocessor
US6374345B1 (en) * 1999-07-22 2002-04-16 Advanced Micro Devices, Inc. Apparatus and method for handling tiny numbers using a super sticky bit in a microprocessor
US6571265B1 (en) * 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
US6658443B1 (en) 1999-11-03 2003-12-02 Sun Microsystems, Inc. Method and apparatus for representing arithmetic intervals within a computer system
US7353368B2 (en) * 2000-02-15 2008-04-01 Intel Corporation Method and apparatus for achieving architectural correctness in a multi-mode processor providing floating-point support
US6658444B1 (en) * 2000-11-09 2003-12-02 Sun Microsystems, Inc. Method and apparatus for performing a mask-driven interval division operation
US6829627B2 (en) 2001-01-18 2004-12-07 International Business Machines Corporation Floating point unit for multiple data architectures
US7730117B2 (en) * 2005-02-09 2010-06-01 International Business Machines Corporation System and method for a floating point unit with feedback prior to normalization and rounding
US20060179096A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation System and method for a fused multiply-add dataflow with early feedback prior to rounding
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US7765389B2 (en) * 2007-04-25 2010-07-27 International Business Machines Corporation Management of exceptions and hardware interruptions by an exception simulator
US10387151B2 (en) 2007-12-31 2019-08-20 Intel Corporation Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks
US7984273B2 (en) 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
US8447962B2 (en) * 2009-12-22 2013-05-21 Intel Corporation Gathering and scattering multiple data elements
US8443227B2 (en) * 2008-02-15 2013-05-14 International Business Machines Corporation Processor and method for workaround trigger activated exceptions
US8352241B2 (en) * 2009-02-26 2013-01-08 Microsoft Corporation Emulating legacy hardware using IEEE 754 compliant hardware
US10175990B2 (en) 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US20120059866A1 (en) * 2010-09-03 2012-03-08 Advanced Micro Devices, Inc. Method and apparatus for performing floating-point division
US8505089B2 (en) * 2010-12-27 2013-08-06 Kyocera Mita Corporation Image forming apparatus and control method for image forming apparatus
US20120173923A1 (en) * 2010-12-31 2012-07-05 International Business Machines Corporation Accelerating the performance of mathematical functions in high performance computer systems
US8972697B2 (en) 2012-06-02 2015-03-03 Intel Corporation Gather using index array and finite state machine
WO2013180738A1 (en) 2012-06-02 2013-12-05 Intel Corporation Scatter using index array and finite state machine
US11182127B2 (en) 2019-03-25 2021-11-23 International Business Machines Corporation Binary floating-point multiply and scale operation for compute-intensive numerical applications and apparatuses
CN111290790B (zh) * 2020-01-22 2023-03-24 安徽大学 一种定点转浮点的转换装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
JPH0683636A (ja) * 1992-09-02 1994-03-25 Fujitsu Ltd 浮動小数点演算装置
JPH0793153A (ja) * 1993-09-27 1995-04-07 Toshiba Corp 情報処理装置
JPH07210384A (ja) * 1994-01-24 1995-08-11 Fuji Xerox Co Ltd 浮動小数点演算装置
US5799179A (en) * 1995-01-24 1998-08-25 International Business Machines Corporation Handling of exceptions in speculative instructions
JP3495173B2 (ja) * 1996-02-14 2004-02-09 富士通株式会社 演算処理方法および演算処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032263A (ja) * 2003-07-07 2009-02-12 Renesas Technology Corp 情報処理装置

Also Published As

Publication number Publication date
KR100317768B1 (ko) 2001-12-22
US6044454A (en) 2000-03-28
KR19990072338A (ko) 1999-09-27
JP3014381B2 (ja) 2000-02-28

Similar Documents

Publication Publication Date Title
JP3014381B2 (ja) Ieee準拠浮動小数点ユニット
US5675777A (en) Architecture for minimal instruction set computing system
EP0331372B1 (en) Method of and apparatus using floating point execption signals for controlling several processors
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US6151669A (en) Methods and apparatus for efficient control of floating-point status register
US5500943A (en) Data processor with rename buffer and FIFO buffer for in-order instruction completion
US4713750A (en) Microprocessor with compact mapped programmable logic array
WO2010004243A2 (en) Interrupt processing
JPH0769783B2 (ja) 例外処理方式
JP3369204B2 (ja) プログラマブルコントローラ
US5410660A (en) System and method for executing branch on bit set/clear instructions using microprogramming flow
US6212539B1 (en) Methods and apparatus for handling and storing bi-endian words in a floating-point processor
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
GB2461851A (en) Processor, which stores interrupt enable flags in a location used for other functions
US5446909A (en) Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand
JPH06202868A (ja) マルチスカラー・プロセッサ・システムにおける高速浮動小数点例外起動式操作の方法およびシステム
JP2557629B2 (ja) 割込方式
US20230297824A1 (en) Programmable non-linear activation engine for neural network acceleration
KR100240108B1 (ko) 디지탈신호처리기의 조건부 분기 명령 수행방법
JPH0378832A (ja) デ―タ処理装置
JPS63247834A (ja) 浮動小数点関数擬似命令処理方法
JPH0651955A (ja) 浮動小数点演算機能を持つ情報処理装置
JPH03226830A (ja) 情報処理装置
Heudin et al. KIM200: a tagged-RISC architecture for gallium arsenide implementation
JPH03116324A (ja) 浮動小数点演算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071217

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081217

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091217

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091217

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101217

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101217

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111217

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees