JPH0651946A - セルフ・タイム式浮動小数点例外フラグを利用したレジスタ・ファイル書き込み許可の検定 - Google Patents

セルフ・タイム式浮動小数点例外フラグを利用したレジスタ・ファイル書き込み許可の検定

Info

Publication number
JPH0651946A
JPH0651946A JP5166336A JP16633693A JPH0651946A JP H0651946 A JPH0651946 A JP H0651946A JP 5166336 A JP5166336 A JP 5166336A JP 16633693 A JP16633693 A JP 16633693A JP H0651946 A JPH0651946 A JP H0651946A
Authority
JP
Japan
Prior art keywords
exception
floating point
flag
result
signal
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
JP5166336A
Other languages
English (en)
Other versions
JP3403759B2 (ja
Inventor
Russell W Mason
ラッセル・ダブリュ・メイソン
Steven T Mangelsdorf
スティーヴン・ティー・マンゲルスドルフ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0651946A publication Critical patent/JPH0651946A/ja
Application granted granted Critical
Publication of JP3403759B2 publication Critical patent/JP3403759B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/49926Division by zero

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 浮動小数点演算等の結果をレジスタ・ファイ
ルに書き込むに際し、書き込み許可信号にグリッチを生
じることなく、待ち時間の短縮を図る。 【構成】 浮動小数点処理装置(116,118,12
0)の論理回路はデータ自体の遷移に従ってタイミング
がとられるセルフ・タイム式であり、出力を有効ベクト
ル出力を表わすレベルに変更するのに十分な入力ベクト
ル論理状態が生じるまで、無効ベクトル出力を表わす所
定の論理レベルを維持し、それぞれの例外フラグをセル
フ・タイム式浮動小数点例外論理回路に対するベクトル
入力として識別し、本クロック・サイクルにおいて結果
として、例外を生じなかった。あるいは、生じる可能性
がないと判定されるとき、例外フラグの状態を変更す
る。トラップ・ハンドラー(122)は、それぞれの例
外フラグからの信号および制御論理回路(124)から
のクロック(CK)に基づく例外許可信号を受け、現ク
ロックと同位相の間で、例外フラグからの信号の変更に
より、浮動小数点処理装置の演算結果をメモリセル(1
02)に書き込むための書き込み許可信号を出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、浮動小数点例外を扱う
ための例外論理に関するものであり、とりわけ、浮動小
数点処理装置によるセルフ・タイム式浮動小数点例外フ
ラグを利用したレジスタ・ファイル書き込み許可を検定
するためのシステムに関するものである。
【0002】
【従来の技術】最近になって、浮動小数点乗算、除算、
加算、及び、命令のロードまたは記憶の同時実行を可能
にする浮動小数点プロセッサが設計され、これによっ
て、浮動小数点プロセッサの処理効率が大幅に向上する
ことになった。例えば、1992年2月24〜28日の
プロシーディングス・オブ・ザ・コムプコン・スプリン
グ・1992,ダイジェスト・オブ・ペーパーズ,サン
フランシスコ・カリフォルニア(Proceeding
s of the Compcon Spring19
92,Digest of Papers,San F
rancisco,CA)における「高速スーパースカ
ラーPA−RISCプロセッサ」と題する論文には、デ
ィラノ(DeLano)他によって、格段に優れた性能
及び構造密度を獲得した、整数プロセッサ及び浮動小数
点コ・プロセッサから構成される中央演算処理装置に関
する解説がある。動的論理を用いることによって、セル
フ・タイム式論理システムを利用したこうした回路の速
度及び密度特性が開発された。
【0003】浮動小数点例外を取扱うのは、ディラノ
(DeLano)他によって解説されたタイプの浮動小
数点コ・プロセッサの場合、クリティカルなタイミング
経路であることが分かっている。例えば、命令によっ
て、浮動小数点例外によるトラップが生じる場合、もと
のオペランド・レジスタの内容及び宛先レジスタの内容
を保存して、トラップ(または例外)・ハンドラが、例
外を適正に処理できるようにしなければならない。しか
し、宛先レジスタの内容を乱すことのないようにするた
め、浮動小数点演算にトラップが生じなかったことが分
かるまで、宛先レジスタには、書き込むことができな
い。オーバフロー、アンダフロー、及び、不正確といっ
た例外は、結果の丸めに基づくものであるため、例外フ
ラグは、結果の前に計算することができない。結果とし
て、結果及び例外フラグは、同じ位相で有効になるのが
普通である。あいにく、前述の浮動小数点プロセッサ
は、この特性を利用して、結果が有効になる同じ位相に
おいてレジスタ・ファイルに対する書き込みを行わなか
った。代わりに、クロックの次の位相において、レジス
タ・ファイルに書き込みを行うように、制御ライン・ド
ライバのセット・アップが行われた。これは、一般に、
レジスタ・ファイル書き込み信号にグリッチを生じさせ
ることになる可能性を有した、例外フラグ信号における
静的ハザードまたはグリッチを処理するために行われ
た。
【0004】あいにく、レジスタ・ファイルに対する結
果の書き込みを1位相分遅延させると、浮動小数点演算
に、さらに、待ち時間が追加されることになる。浮動小
数点性能に影響するこの追加待ち時間を防止するため、
レジスタ・ファイルに通さずに、レジスタ・ファイルに
対して書き込まれる浮動小数点演算の結果をオペランド
として用いることができるようにするには、一般に、特
別なレベルのバイパスが必要になる。このため、制御設
計にかなりの領域と複雑性が付加されるので、一般には
望ましくない。従って、待ち時間が最短の浮動小数点・
データ経路を設けるため、浮動小数点演算の結果が有効
になる同じ位相において、宛先レジスタに書き込むこと
が望ましい。しかし、これを行うためには、レジスタ・
ファイルに対する書き込み許可に、グリッチの恐れがな
いようにしなければならない(すなわち、書き込み許可
信号から静的ハザードを除去しなければならない)。す
なわち、例外がなく、宛先レジスタに書き込まれること
になる場合、及び、こうした場合に限って、レジスタ・
ファイルに対する書き込み許可を与えなければならな
い。書き込み許可によって、例外の場合に、グリッチを
生じて、真になり、それから、偽に戻ることが許されて
はならない。
【0005】
【発明が解決しようとする課題】本発明は、こうした要
求を満たすように設計されている。当該技術における上
述の要求は、セルフ・タイム式浮動小数点処理装置によ
るセルフ・タイム式浮動小数点例外フラグに応答して、
浮動小数点レジスタ・ファイルに書き込み許可を与える
ことによって満たされる。これによって、結果及び例外
フラグが有効になる同じ位相において、浮動小数点演算
の結果をレジスタ・ファイルに書き込むことが可能にな
り、従って、状態によって待ち時間を短縮することが可
能になる。例えば、演算時、浮動小数点例外に遭遇する
と、レジスタ・セルには、書き込みが行われない。これ
は、単に「無効」ではなく、まだ、例外の可能性のある
状態に対応するセルフ・タイム式浮動小数点例外フラグ
の「無効」状態を定義し、結果が有効になるが、「非ト
ラップ」から「トラップ」に遷移できないクロック期間
に、「トラップ」から「非トラップ」に遷移するよう
に、浮動小数点処理装置のトラップを定義することによ
って、保証される。結果として、浮動小数点演算の結果
及びトラップが有効になる同じ位相において、グリッチ
のない書き込み許可信号の発生が可能になる。
【0006】
【課題を解決するための手段】本発明の望ましい実施例
は、結果が有効になる同じクロック位相において、例外
のない記憶レジスタに対して、処理装置による演算結果
を書き込む方法に関するものである。本発明によるこう
した方法は、処理装置の例外フラグにプリチャージを行
って、現在のクロックサイクルにおいて例外が生じた
か、あるいは、まだ、生じる可能性のあることを表した
第1の論理レベルにするステップと、現在のクロック・
サイクルに、処理装置による演算を開始するステップ
と、演算によって生じる例外のチェックを行って、例外
処理の必要を確認するステップと、
【0007】チェック・ステップにおいて、現在のクロ
ック・サイクルにおいて、例外処理を施す必要のある例
外が生じなかったか、あるいは、生じる可能性がないと
判定されると、処理装置の例外フラグを例外の不在を示
す第2の論理レベルに変更するステップと、処理装置の
例外フラグが第2の論理レベルに変更されたことを表
す、グリッチのない制御信号を発生するステップと、グ
リッチのない制御信号に応答し、現在のクロック・サイ
クル時に、演算結果を記憶レジスタに書き込むステップ
から構成されることが望ましい。
【0008】本発明の方法は、浮動小数点演算を行い、
浮動小数点の例外がなければ、浮動小数点演算の結果を
記憶レジスタに書き込むことによって実現するのが望ま
しい。本発明による浮動小数点プロセッサは、クロック
・サイクル時に、浮動小数点演算を実施する浮動小数点
演算装置、グリッチのない制御信号を発生するための手
段、及び、浮動小数点演算の結果を記憶レジスタに書き
込むための手段から構成するのが望ましい。望ましい実
施例の場合、浮動小数点演算装置は、浮動小数点演算装
置の例外フラグにプリチャージを行って、現在のクロッ
クサイクルにおいて浮動小数点例外が生じたか、あるい
は、まだ、生じる可能性のあることを表した第1の論理
レベルにし、現在のクロック・サイクルにおいて、浮動
小数点演算によって、例外処理を施す必要のある例外が
生じなかったか、あるいは、生じる可能性がないと判定
されると、例外フラグを浮動小数点例外の不在を示す第
2の論理レベルに変更するセルフ・タイム式論理回路か
ら構成される。一方、制御信号発生手段が、例外フラグ
が第2の論理レベルに変更されたことを表す制御信号を
発生し、同時に、書き込み手段が、グリッチのない制御
信号に応答し、同じクロック・サイクルの間に記憶レジ
スタの浮動小数点演算の結果を書き込む。
【0009】
【作用】望ましい実施例の場合、制御信号発生手段は、
例外フラグに応答して、例外フラグが第2の論理レベル
にあるか否かを判定し、例外フラグが、全て、第2の論
理レベルである場合に限って、グリッチのない制御信号
を出力する論理ゲートから構成される。すなわち、例外
フラグは、セルフ・タイム式であり、現在の浮動小数点
演算の結果として、浮動小数点例外が生じなかったこと
が明らかになる場合に限って有効になる。
【0010】
【実施例】本書において開示され、請求される内容の発
明者は、セルフ・タイム式浮動小数点処理装置によるセ
ルフ・タイム式例外に応答して、書き込み許可信号を発
生する浮動小数点プロセッサを開発することによって、
当該技術における上述の要求を満たした。本発明の現在
のところ望ましい実施例を実現する浮動小数点プロセッ
サについては、図1〜図3に関連して後述することにす
る。ただし、当該技術の熟練者には明らかなように、こ
れらの図に関連して本書に示す説明は、例示だけを目的
としており、本発明の範囲に制限を加えるつもりは全く
ない。例えば、本発明は、浮動小数点回路構成に限定す
る必要はないし、例外を生じる他のタイプの処理回路構
成を含めることも可能である。従って、本発明の範囲に
関する全ての問題は、付属の請求項に基づいて解決する
ことが望ましい。
【0011】図1には、本発明による浮動小数点プロセ
ッサのサンプル実施例が示されている。図示のように、
浮動小数点プロセッサは、メモリ・セル102のそれぞ
れ64ビットのレジスタにデータをロードするロード/
記憶論理回路100を具備し、これら64ビット・レジ
スタから浮動小数点プロセッサのデータ・キャッシュ
(不図示)に記憶すべき出力値を検出する検知増幅器を
含んでいる。メモリ・セルは、スタティック・ラム(S
RAM)または当該技術の熟練者にとって周知の他のメ
モリ・デバイスから構成することが可能であり、2倍精
度の演算用に32の64ビット・レジスタとして、ある
いは、単精度の演算用に64の32ビット・レジスタと
して構成することも可能である。アドレス論理回路10
4は、浮動小数点プロセッサの命令キャッシュ(不図
示)からデータに関するアドレスを受信し、当該技術の
熟練者にとって既知の技法に従ってアドレス・データを
事前復号することが可能である。アドレス論理回路10
4からの読み取りアドレスは、読み取りアドレス・デコ
ーダ106によって復号され、読み取り許可信号がメモ
リ・セル102の適合するレジスタに送られる。同様
に、本発明に従って発生した書き込み許可信号が、書き
込みアドレス・デコーダ108に送られると、アドレス
論理回路104からの書き込みアドレスは、書き込みア
ドレス・デコーダ108によって復号され、書き込み許
可信号がメモリ・セル102の適合するレジスタに送ら
れる。
【0012】次に、例えば、浮動小数点処理装置に送る
べきメモリ・セル102からの出力値を検出する検知増
幅器を備えることが可能な読み取り論理回路110によ
って、メモリ・セル102のレジスタに記憶されたオペ
ランド等を読み取ることが可能になる。次に、オペラン
ドが、下流のオペランド・アライメント装置112及び
114に送られ、さらに、浮動小数点ALU116、浮
動小数点乗算器118、及び、浮動小数点除算/平方根
装置120といった、それぞれの浮動小数点処理装置に
入力される。これら浮動小数点処理装置によるオペラン
ドに対する演算結果は、さらに、後続の浮動小数点演算
に備えて、メモリ・セル102のレジスタに記憶するた
め送り返される。また、当該技術の熟練者には、明らか
なように、メモリ・セル102には、浮動小数点例外デ
ータ等を記憶するためのレジスタを設けることも可能で
ある。
【0013】上述のように、本発明は、浮動小数点AL
U116,浮動小数点乗算器118及び、浮動小数点除
算/平方根装置120によって実施される浮動小数点演
算の結果は、結果及び例外フラグが有効になる同じ位相
においてレジスタ・ファイル102に書き込むことが可
能である。これは、本発明に従って、例外フラグを単調
にし(すなわち、評価相において単一の遷移しか行わな
い)、評価相を「トラップ」(すなわち、例外)状態に
おいて開始し、評価相の間に、グリッチのない書き込み
許可信号を発生できるようにすることによって可能にな
る。すなわち、浮動小数点処理装置浮動小数点ALU1
16、浮動小数点乗算器118、及び、除算/平方根装
置120は、1991年4月12日に提出され、本発明
と同じ譲受人に譲渡された米国特許出願第07/68
4,720号において、イエッター(Yetter)に
よって解説されたセルフ・タイミング論理技法を実施す
ることによって、結果が有効になる同じ位相の間にグリ
ッチのない例外信号を発生する。
【0014】前述の特許出願においてイエッター(Ye
tter)が解説のように、セルフ・タイム式論理回路
は、クロック・エッジに応答するのではなく、データ自
体の遷移に従ってタイミングがとられる。こうしたセル
フ・タイム式システムは、論理経路における個々の論理
状態すなわち「ベクトル成分」を集合的に概念化するこ
とによって定義され、指定される、それぞれの「ベクト
ル論理状態」を符号化するための論理経路を実現する。
すなわち、「無効」ベクトル論理状態は、全てのベクト
ル成分が、論理低(論理「0」または低電気信号レベ
ル)である場合と定義される。一方、「有効」ベクトル
論理状態のそれぞれは、ベクトル論理状態のベクトル成
分の1つ及び1つだけが、論理高(論理「1」または高
電気信号レベル)を示すといったような、各種案によっ
て指定される。次に、ベクトル論理状態の符号化は、2
つ以上の論理経路によって有効ベクトル論理状態を定義
し、一方、全ての論理経路が低論理レベルを示す場合に
は、無効ベクトル論理状態の定義を行うことによって、
処理することができる。
【0015】本発明による浮動小数点プロセッサの論理
回路は、意図する論理機能を維持し、適正に実施するた
めには、周期的に電気的プリチャージまたは再生を行う
必要があるので、動的論理ゲートと同様のセルフ・タイ
ム式論理回路によって構成するのが望ましい。しかし、
本発明に従って、入力を「ベクトル論理状態」と定義す
ることによって、論理回路は、出力を有効ベクトル出力
を表すレベルに変更するのに十分な入力ベクトル論理状
態が生じるまで、無効ベクトル出力を表す所定の論理レ
ベルを維持する。この場合、本発明の論理回路は、上流
の論理機能の結果として、有効ベクトル入力によって要
求される場合に限って、有効出力を発生する。結果とし
て、出力が状態を変更すると、全ての入力ベクトルが、
有効であることが分かる。
【0016】本発明は、それぞれの例外フラグをセルフ
・タイム式浮動小数点例外論理回路に対するベクトル入
力として識別し、さらに、本クロック・サイクルにおい
て、結果として、例外を生じなかった、あるいは、生じ
る可能性がないと判定されると、この結論を書き込むだ
けで、イエッター(Yetter)によって解説された
概念を浮動小数点プロセッサのクリティカルなデータ経
路における例外フラグの処理にまで拡張した。このた
め、ベクトル論理の「無効」状態は、前述のイエッター
(Yetter)の出願における場合のように「無効」
ではなく、「まだ例外の可能性がある」と定義される。
【0017】図1に示すように、浮動小数点ALU11
6,浮動小数点乗算器118、または、除算/平方根装
置120によって出力されるそれぞれのセルフ・タイム
式例外フラグは、本発明に従って書き込み許可信号を発
生する例外論理回路を備えたトラップ・ハンドラ122
に送られる。トラップ・ハンドラ122は、従来のトラ
ップ処理回路要素以外に、結果として、現在の浮動小数
点演算において浮動小数点例外に遭遇しなかったと判定
された場合に限って、出力信号「結果書き込み許可」を
送り出す例外論理回路を備えている。この時点に限っ
て、書き込みアドレス・デコーダ108が許可になり、
結果は、レジスタ・ファイル102に書き込まれる。
【0018】演算において、丸めプロセスの終了時に、
例えば、現在の浮動小数点演算の結果として例外が生じ
なかったと判定されると、それぞれの浮動小数点処理装
置浮動小数点ALU116,浮動小数点乗算器118、
及び、除算/平方根装置120は、それぞれ、例外フラ
グの状態を変更する。すなわち、セルフ・タイム式論理
技法を利用して、例外の存在を示すため前もってチャー
ジされていた浮動小数点例外フラグの値をディスチャー
ジすることによって、出力の論理レベルが変更される。
従って、結果として、現在の浮動小数点演算中に、浮動
小数点例外が生じなかったと判定された場合に限って、
論理レベルが変更される。例えば、高論理レベルから低
論理レベルへのこの遷移(図2の(c))は、現在の浮
動小数点演算中に浮動小数点例外の生じたこと、及び、
レジスタ・ファイル102に対する浮動小数点演算結果
の書き込みが安全であることを表している。
【0019】図1に示すように、トラップ・ハンドラ1
22は、中央演算処理装置の一部をなし、従って、入力
クロック信号CK(例えば、100MHz)に応答可能
な制御論理回路124から例外許可信号を受信する。こ
れらの例外許可信号は、特定の例外フラグに関していっ
たいトラップが望ましいのか否かを指示する。すなわ
ち、例外許可信号によって、トラップを実施すべきか、
あるいは、トラップ機能を実施する代わりに、ゼロ、無
限等の値を用いるべきかが指示される。これらの例外許
可信号は、浮動小数点処理時の初期に許可になるので、
トラップ・ハンドラ122は、浮動小数点演算の完了前
に、その演算に関して特定の例外を許可にするか否かを
知ることになる。これらの例外許可信号の値は、どの例
外を許可にするかを指定するため、制御論理回路124
のレジスタに保持することができるが、当該技術の熟練
者には明らかなように、メモリ・セル102には、こう
した浮動小数点例外データ等を記憶するためのレジスタ
を含むことも可能である。
【0020】図2の(a)〜2(d)には、書き込み許
可信号「結果書き込み許可」が、本発明に従っていかに
発生するかを表したタイミング図が示されている。図2
の(a)に示すように、入力クロック信号CKは、「無
効」すなわち低状態と、「有効」すなわち高状態を有し
ており、約100MHzの周波数で動作可能である。浮
動小数点処理装置の例外フラグは、図2の(c)に示す
ように入力クロック信号CKの「無効」部分の間に、プ
リチャージされて高になるのが普通である。従って、図
2の(c)に示すように、浮動小数点例外がなければ、
入力クロック信号CKの「有効」すなわち評価部分の間
に、浮動小数点例外フラグは低になる。例外信号は、セ
ルフ・タイム式のため、グリッチを生じないで、低にな
り、次に、浮動小数点例外が生じると、高になるので、
本発明によれば、単調であり、グリッチがなくなる。
【0021】図2の(b)には、浮動小数点処理装置の
結果の出力が示されている。図示のように、浮動小数点
処理は、浮動小数点例外が有効になる入力クロック信号
CKの同じ部分の間に完了する。解説を容易にするた
め、図2の(c)における例外フラグは、図2の(b)
の結果出力が許可になるのと同時に有効になるように図
示されているが、当該技術の熟練者には、明らかなよう
に、浮動小数点例外フラグは、通常、結果の丸めに基づ
いており、従って、結果が有効になる後に限って有効に
なるので、浮動小数点処理結果は、例外フラグが許可に
なる前のある時点において、出力として利用可能になる
(図2の(b)に虚線で示すように)。上述のように、
セルフ・タイム式のため、浮動小数点例外フラグは、結
果として、例外がないと判定された場合に限って、状態
を変更する。従って、図2の(c)の場合、入力クロッ
ク信号CK時に実施される浮動小数点演算において、例
外が生じないので、例外フラグ出力は、タイミング間隔
BとCの間において低になる。一方、入力クロック信号
CK時に、例外が生じない場合、プリチャージした例外
フラグ出力は、タイミング間隔DとEの間に高になる。
従って、浮動小数点例外が生じないので、図2の(d)
に示す「結果書き込み許可」信号によってのみ、タイミ
ング間隔BCの間に書き込みアドレス・デコーダ108
が許可になる。図示のように、入力クロック信号CKが
低になると、結果の出力(図2の(b))、例外フラグ
(図2の(c))、及び、書き込み許可信号(図2の
(d))は、リセットされる。
【0022】
【発明の効果】従って、本発明に従って、グリッチのな
い入力クロック信号CK例外信号を発生するため、浮動
小数点処理装置によって出力される例外フラグについ
て、制御論理回路124によって加えられる例外許可信
号によって論理的にアンド演算を施し、次に、下記の式
に従って、その結果にオア演算を施すだけでよい:結果
書き込み許可=inv(オーバフロー*オーバフロー許
可+アンダーフロー*アンダーフロー許可+不正確*不
正確許可+除数0*除数0許可+無効*無効許可+不実
行)。
【0023】図3に示すように、この式は、アンドゲー
ト300〜308、オアゲート310、及び、インバー
タ312を利用して実施することができる。オーバフロ
ー、アンダーフロー、及び、不正確な例外信号だけが、
浮動小数点演算時において、丸め回路からの到着が遅れ
るので、これらの例外信号は、クリティカルなタイミン
グ経路になる。対応する許可信号は、浮動小数点演算の
前にセット・アップされるので、本質的に直流である
が、他の例外フラグは、ソース・オペランドの比較に基
づいており、丸めに基づく例外フラグの前に、有効にな
る。後者のフラグは、タイミング経路がクリティカルに
はならないので、実施が容易である。また、例外フラグ
は、入力クロック信号CKが低(「無効」)の場合、プ
リチャージされて高になり、例外がある場合に、グリッ
チを生じて低になり、それから高になることはできない
ので、「結果書き込み許可」は、入力クロック信号CK
が有効であれば、駆動されて低(「偽」)になり、レジ
スタ・ファイル102への書き込みを禁止する浮動小数
点例外のない場合に限って、高(「真」)になるだけで
ある。さらに、結果が有効である場合と同じクロック状
態において、レジスタ・ファイル102への書き込みが
可能になるので、本発明によれば、待ち時間の状態を排
除することができ、明らかな性能の利点が得られる。第
2レベルのバイパスを可能にする制御及び論理の要求も
なくなるので、かなりのチップ領域が節約され、結果と
しての複雑性が解消される。
【0024】本発明によれば、浮動小数点処理装置の例
外フラグは、最終的に、現在の浮動小数点演算の結果、
浮動小数点例外が生じないと判定された場合に限って、
プリチャージされて、低になる。従って、セルフ・タイ
ム式例外フラグの値をモニターし、例外フラグが例外を
表示しない場合に限って、レジスタ・ファイル102に
結果を書き込むことによって、本発明に従って、グリッ
チがないと認定された書き込み許可信号を送り出すこと
が可能になる。当該技術の熟練者には、明らかなよう
に、本発明にとって重要なことは、書き込み許可信号
は、例外フラグの状態の変化に応答するので、次のクロ
ック・エッジの受信時ではなく、例外フラグの状態が変
化するとすぐに、レジスタ・ファイルに対する書き込み
が可能になるという点である。さらに、本発明のトラッ
プ・ハンドラ122に加えられるグリッチのない信号に
よって、例外フラグのセルフ・タイミングが書き込みア
ドレス・デコーダ108に伝搬可能になるので、グリッ
チのないタイミングが保持されることになる。従って、
セルフ・タイミングは、回路要素を介してリプルを生じ
るので、本発明の回路要素が、入力クロック信号CKに
よってエッジ・トリガされる場合には、不必要である。
【0025】本発明の典型的な実施例についてここまで
詳述してきたが、当該技術における熟練者には明らかな
ように、本発明の新規の教示及び利点からあまり逸脱す
ることなく、典型的な実施例に多くの修正を追加するこ
とが可能である。例えば、浮動小数点プロセッサのセル
フタイム式論理回路は、ゲート・コンポーネント間にお
いて単調級数として論理的判定を行うことが可能であ
り、この結果、データは、特定の論理経路における低か
ら高への状態の遷移だけを考慮して、高から低への状態
の遷移は考慮せずに、論理ゲートのステージ間で転送さ
れる。これは、各論理状態毎に真の相補出力を加えて、
一方が評価後低になり、もう一方が高になるようにする
ことによって実施可能である。論理状態の遷移方向を知
ることによって、スイッチング・コンポーネントの特定
のハードウェア設計を操作することによって、逆方向に
は不利であるにもかかわらず、単調方向における速度を
最大にすることができる。従って、こうした全ての修正
は、下記の請求項に規定の本発明の範囲に含まれるもの
とする。
【図面の簡単な説明】
【図1】本発明におけるセルフタイム式浮動小数点例外
フラグ書き込み許可技術を実施した浮動小数点データ通
路の実施例を示す図である。
【図2】図1のシステムの動作を理解するためのタイミ
ング信号を示す図である。
【図3】浮動小数点処理ユニットからのセルフタイム式
例外フラグに応答して修飾された書き込み許可信号を発
生するための単純で典型的な論理回路の実施例を示す図
である。
【符号の説明】
100 ロード/ストア論理回路 102 メモリセル 104 アドレス論理回路 106 読み取りアドレスデコーダ 108 書き込みアドレスデコーダ 110 読み取り論理回路 112,114 オペランドアライメント 116 浮動小数点ALU 118 浮動小数点乗算器 120 浮動小数点除算/平方根装置 122 トラップハンドラー 124 制御論理回路 300,302,304,306,308 アンドゲー
ト 310 オアゲート 312 インバータ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 次の各段階からなる、例外の不在に処理
    装置(116,118,120)によるデータ演算の結
    果を記憶レジスタ(102)に書き込む寸法。 (イ)前記処理装置の例外フラグをプリチャージし、現
    在のクロックサイクルに例外が生じたか、あるいは、ま
    だ生じる可能性があることを表わした第1の論理レベル
    にする段階。 (ロ)現在のクロックサイクルに、前記処理装置による
    演算を開始する段階。 (ハ)前記演算により生じた例外のチェックを行って、
    例外処理の必要を確認する段階。 (ニ)前記チェック段階において、現在のクロックサイ
    クルで例外処理を施す必要のある例外が生じなかった
    か、あるいは、生じる可能性がないと判定されると、前
    記処理装置の例外フラグを例外の不在を示す第2の論理
    レベルに変更する段階。 (ホ)前記処理装置の例外フラグが第2の論理レベルに
    変更されたことを表わすグリッチのない制御信号(結果
    書き込み許可)を発生する段階。 (ヘ)前記グリッチのない制御信号に応答して、現在の
    クロックサイクル時に、前記演算結果を前記記憶レジス
    タに書き込む段階。
JP16633693A 1992-06-16 1993-06-11 データ演算の結果を記憶レジスタに書き込む方法およびプロセッサ Expired - Fee Related JP3403759B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/899,202 US5257214A (en) 1992-06-16 1992-06-16 Qualification of register file write enables using self-timed floating point exception flags
US899,202 1992-06-16

Publications (2)

Publication Number Publication Date
JPH0651946A true JPH0651946A (ja) 1994-02-25
JP3403759B2 JP3403759B2 (ja) 2003-05-06

Family

ID=25410621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16633693A Expired - Fee Related JP3403759B2 (ja) 1992-06-16 1993-06-11 データ演算の結果を記憶レジスタに書き込む方法およびプロセッサ

Country Status (2)

Country Link
US (1) US5257214A (ja)
JP (1) JP3403759B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005639A (ja) * 1999-06-21 2001-01-12 Toshiba Corp 浮動小数点演算装置
JP2007295128A (ja) * 2006-04-21 2007-11-08 Daihen Corp 論理集積回路、その演算用回路のソース、及びそのソースを記録したコンピュータ読み取り可能な記録媒体

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
US5537538A (en) * 1993-12-15 1996-07-16 Silicon Graphics, Inc. Debug mode for a superscalar RISC processor
US5721857A (en) * 1993-12-30 1998-02-24 Intel Corporation Method and apparatus for saving the effective address of floating point memory operations in an out-of-order microprocessor
US5546599A (en) * 1994-03-31 1996-08-13 International Business Machines Corporation Processing system and method of operation for processing dispatched instructions with detected exceptions
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
TW260765B (ja) * 1994-03-31 1995-10-21 Ibm
US5559976A (en) * 1994-03-31 1996-09-24 International Business Machines Corporation System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions
US5644779A (en) * 1994-04-15 1997-07-01 International Business Machines Corporation Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction
JPH07281893A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システム及び演算方法
CN103092564B (zh) * 1995-08-31 2016-04-06 英特尔公司 执行乘加指令的处理器和对分组数据执行乘加操作的系统
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5726596A (en) * 1996-03-01 1998-03-10 Hewlett-Packard Company High-performance, low-skew clocking scheme for single-phase, high-frequency global VLSI processor
US5760610A (en) * 1996-03-01 1998-06-02 Hewlett-Packard Company Qualified universal clock buffer circuit for generating high gain, low skew local clock signals
US7003650B2 (en) * 1999-02-17 2006-02-21 Elbrus International Method for prioritizing operations within a pipelined microprocessor based upon required results
US7085940B2 (en) * 2002-05-09 2006-08-01 International Business Machines Corporation Floating point unit power reduction via inhibiting register file write during tight loop execution
WO2006026858A1 (en) * 2004-09-07 2006-03-16 Research In Motion Limited Floating point encoding systems and methods

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769783B2 (ja) * 1987-11-16 1995-07-31 日本電気株式会社 例外処理方式
JP3076046B2 (ja) * 1989-01-31 2000-08-14 日本電気株式会社 例外検出回路
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005639A (ja) * 1999-06-21 2001-01-12 Toshiba Corp 浮動小数点演算装置
JP2007295128A (ja) * 2006-04-21 2007-11-08 Daihen Corp 論理集積回路、その演算用回路のソース、及びそのソースを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
US5257214A (en) 1993-10-26
JP3403759B2 (ja) 2003-05-06

Similar Documents

Publication Publication Date Title
JP3403759B2 (ja) データ演算の結果を記憶レジスタに書き込む方法およびプロセッサ
US6115808A (en) Method and apparatus for performing predicate hazard detection
JP3688270B2 (ja) プロセッサの停止
US6304955B1 (en) Method and apparatus for performing latency based hazard detection
US4758945A (en) Method for reducing power consumed by a static microprocessor
US4748559A (en) Apparatus for reducing power consumed by a static microprocessor
US5500943A (en) Data processor with rename buffer and FIFO buffer for in-order instruction completion
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
US5598362A (en) Apparatus and method for performing both 24 bit and 16 bit arithmetic
US5619664A (en) Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms
US5666300A (en) Power reduction in a data processing system using pipeline registers and method therefor
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
JPH0769783B2 (ja) 例外処理方式
JP2682232B2 (ja) 浮動小数点演算処理装置
US20070288724A1 (en) Microprocessor
US5815420A (en) Microprocessor arithmetic logic unit using multiple number representations
EP0644481A1 (en) Back-up logic for dual execution unit processor
US6070218A (en) Interrupt capture and hold mechanism
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
US5530659A (en) Method and apparatus for decoding information within a processing device
US6466497B1 (en) Secondary precharge mechanism for high speed multi-ported register files
US7234044B1 (en) Processor registers having state information
CA2317080C (en) Facilitation of register updates in an out-of-order processor
US7062635B2 (en) Processor system and method providing data to selected sub-units in a processor functional unit
US7991816B2 (en) Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090228

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090228

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100228

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees