JPH11353179A - パイプライン制御デ―タ処理装置における例外の処理 - Google Patents

パイプライン制御デ―タ処理装置における例外の処理

Info

Publication number
JPH11353179A
JPH11353179A JP11133322A JP13332299A JPH11353179A JP H11353179 A JPH11353179 A JP H11353179A JP 11133322 A JP11133322 A JP 11133322A JP 13332299 A JP13332299 A JP 13332299A JP H11353179 A JPH11353179 A JP H11353179A
Authority
JP
Japan
Prior art keywords
exception
instruction
data processing
register
execution unit
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
JP11133322A
Other languages
English (en)
Inventor
Neal Hinds Christopher
ニール ヒンズ クリストファー
Vivien Jagger David
ビビアン ジャガー デビッド
Terrence Matheny David
ターレンス マシニイ デビッド
Paul Ellwood Matthew
ポール エルウッド マシュー
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JPH11353179A publication Critical patent/JPH11353179A/ja
Pending 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3856Reordering of instructions, e.g. using queues or age tags
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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)【要約】 【課題】 複数命令の同時実行時に発生する例外を処理
するデータ処理装置と方法を提供する。 【解決手段】 データ処理装置には実行ユニット200
と1組の論理例外レジスタ230とがある。複数のパイ
プラインステージをもつ該実行ユニットは、第1の命令
の実行中に例外を検出すると、該命令に関連する例外属
性を第1の例外レジスタに格納し、該例外の検出時、パ
イプラインステージ内の残りの全命令の実行を続けると
ともに、前記残りの命令の実行中に例外を検出すると、
前記命令に関連する例外属性を例外レジスタに格納し、
該格納済み例外属性を例外処理ツールに供給して、該第
1の命令と該残りの命令との処理中に発生する例外の回
復時に使用する。起動された例外処理ツールは、パイプ
ラインで実行中の命令から発生する全例外を処理する。
データ処理装置は、前記残りの命令を再実行する必要な
しに、次の命令の実行を続ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置に
おける例外の処理方法に関し、より詳細には、実行ユニ
ットの複数のパイプライン・ステージで複数の命令を同
時に実行できる状態のもとで例外を処理するデータ処理
装置と方法に関する。
【0002】
【発明が解決しようとする課題】データ処理装置では、
特定の処理タスクを実行する1つ以上の専用処理装置が
設けられていることは公知である。たとえば、乗算・累
積演算などの浮動小数点演算を実行するために浮動小数
点ユニットを設けることができる。このような専用処理
装置は、主プロセッサの一部であってもよいし、別のコ
プロセッサの内部に設けられてもよい。
【0003】このような専用処理装置によって実行され
る演算がいくつかの個々のステップに分解できる場合、
一般に処理装置の内部にいくつかのパイプライン処理ス
テージを設ける。この方法によれば、処理装置の内部で
いくつかの命令を同時に実行することが可能である。命
令がパイプラインに転送されると、処理装置は、その命
令に必要なソースデータをデータ・レジスタファイルか
ら取り出すのが普通であり、その命令が終了すると、所
定のデスティネーション・レジスタに結果データを格納
する。
【0004】このような命令を実行する場合、デスティ
ネーション・レジスタに適切な結果データが配置される
ことを保証するためには、処理装置によって例外条件を
検出できることが可能であり、そのような状態では、普
通、例外処理ツールを起動してその例外を処理すること
が必要である。
【0005】しかし、パイプライン制御アーキテクチャ
の場合、パイプラインに後続命令の発行の停止を要求す
るよりも、例外条件が遅れて検出されることがある。そ
のような命令は、終了させるか、再スタートさせなけれ
ばならない。この問題に対処するために、従来技術にお
いていくつかの手法が提供されている。
【0006】最初に、後続の命令のどれかがパイプライ
ンに入ることが可能になる前に、例外条件を発生するこ
とのあるパイプラインに入っている命令のどれもが終了
することを保証することによって、この問題を回避する
ことができる。このような方法は、モトローラ社のMC68
881チップに採用されたが、CPUは、現在の命令が終
了すると、次の命令を発行できるにすぎない。
【0007】これに代わりうる別の方法は、状態フレー
ムと呼ばれるかなり大きい面積のメモリを設けることで
あり、このメモリには、必要に応じて、パイプラインの
中間状態をすべて格納することができる。したがって、
例外条件が検出されたため、その例外を回復するために
例外処理ツールを起動する必要がある場合、例外処理ツ
ールが回復処理を終了したとき、パイプラインが以前の
状態に回復することができるように、パイプラインの全
ステージの状態を状態フレームに格納することができ
る。このような方法は、モトローラ社のMC68040チップ
に採用されていた。この方法には、命令が例外になる
と、パイプラインで現在実行中の後続の命令すべての終
了を妨害するという欠点がある。その上、この手法は、
以前に考察された、命令を1つだけ発行する手法に比較
してかなり複雑であり、例外状態のメモリへのストア、
またはメモリからのロードを処理するため、かなりの時
間を必要とする。
【0008】従来技術による処理装置で使用されていた
別の方法は、履歴バッファ、または再配置(reorder)
バッファを使用することであった。普通、再配置バッフ
ァは、データ処理装置の全命令ストリームを格納すると
ともに、データ処理装置の適切な処理装置に命令を送っ
た後、その命令と共同して、その命令が実行されたとき
に決定される結果データを再配置バッファに配置する論
理を備えている。各命令が再配置バッファの最低部に達
すると、たとえば、その結果データを適切なデスティネ
ーション・レジスタに格納することによって、各命令は
「用済み(retired)」になる。しかし、例外条件が用
済みになっている命令に関連していると、その例外を回
復するために例外処理ツールが起動される。回復処理の
後に、命令ストリームは、用済みになった命令の直後に
続く命令から再開する。
【0009】例外条件が発生することはきわめて希なの
で、再配置バッファの性能は非常に良いが、例外が発生
すると、それ以降(その例外が発生した命令を処理中の
処理装置ではない)全処理装置で実行中の後続の命令す
べてが再実行されるので、性能にかなりの打撃があるこ
とは明らかである。その上、再配置バッファは非常に複
雑なので、前に考察した2つの手法のいずれよりもチッ
プ面積が大きい。
【0010】本発明の目的は、専用処理装置で同時にい
くつかの命令を実行することができる状態で、例外条件
のより効率的な処理を可能にするデータ処理装置とその
方法を提供することである。
【0011】
【課題を解決する手段】したがって、本発明は以下のデ
ータ処理装置、すなわち、実行ユニットで最高'n'個の
命令が実行中でありうるように、複数の命令を実行する
複数のパイプライン・ステージを含む実行ユニットと、
各例外レジスタが、実行ユニットによる実行中に例外が
検出された命令に関連するいくつかの例外属性(attrib
utes)を格納することができる、少なくとも'n'個の論
理例外レジスタの1組と、第1の命令の実行中に例外が
検出されている場合、(i)前記第1の命令に関連する
前記例外属性を第1の前記例外レジスタに格納し、(i
i)例外が検出されたときにすでにパイプライン・ステ
ージに入っていた残りの命令のどれでもの実行を続ける
実行ユニットであって、前記残りの命令のどれかの実行
中に例外が検出されると、その命令に関連する例外属性
を前記例外レジスタに格納する実行ユニットとを含むデ
ータ処理装置であって、これによって、前記第1の命令
と前記残りの命令との処理中に発生する例外のどれでも
を回復する場合に使用するために、例外レジスタに格納
された例外属性を例外処理ツールに供給することができ
るデータ処理装置を提供する。
【0012】本発明によれば、例外が検出されると、そ
の例外を発生した命令に関連する例外属性は例外レジス
タに格納されるので、パイプライン・ステージの中の残
りの命令を連続して実行することが可能である。これら
の残りの命令のどれかが例外を発生すると、それらの命
令に関連する例外属性も例外レジスタに格納される。こ
の方法によれば、例外処理ツールが起動すると、例外処
理ツールは、パイプラインで実行された命令から発生す
る例外のどれでもを処理することができる。この方法
は、例外が処理されてしまうと、第1の例外が検出され
たときにパイプラインに存在していた命令のどれでもを
再実行することを必要とせずに、データ処理装置が次の
命令の実行を続けるという利点がある。その上、データ
処理装置の他のどの処理装置も、第1の例外を発生した
命令の後に実行された全命令を再実行する必要がない。
それだけでなく、第1の例外が検出されたときのパイプ
ラインの状態をメモリに格納するためにかなりの時間を
かける必要がない。
【0013】データ処理装置は、例外属性を格納するた
めに少なくとも'n'個の論理例外レジスタを備えてい
る。これらの論理例外レジスタは、物理的に別のレジス
タに設けてもよいし、少数の大規模論理レジスタの一部
として設けてもよい。たとえば、4つの32ビット例外
レジスタを、4つの別々の32ビット・レジスタで設け
てもよいし、あるいは、2つの64ビット・レジスタに
中に設けてもよい。
【0014】例外処理ツールは、データ処理装置の一部
として設けてもよいし、別に設けてもよい。好適実施例
では、データ処理装置は、例外レジスタから例外属性を
受信するためと、前記第1の命令と前記残りの命令の処
理中に発生する前記例外を回復するための所定の動作を
適用するために設けられた例外処理ツールを備えてい
る。
【0015】例外を検出したとき例外処理ツールを起動
しうる方法が多数あることは、当業者には理解できるで
あろう。たとえば、データ処理装置は、例外処理ツール
を起動するために、例外が検出されると直ちに例外信号
を発行してもよい。しかし、好適実施例では、前記第1
の命令で例外が検出されたときに、処理のために別の命
令が実行ユニットに転送されると、データ処理装置は、
前記例外処理ツールを起動する例外信号を発行する。好
適実施例では、例外処理ツールが、前記第1の命令と前
記残りの命令との処理中に発生する例外を回復するため
に使用される所定の動作を終了すると、実行ユニット
は、前記別の命令に対して、命令の処理を開始する。
【0016】好適実施例では、データ処理装置は、前記
命令を実行するため実行ユニットによって要求されるソ
ースデータと、前記命令の実行後に決定される結果デー
タとを格納する1組のデータ・レジスタをさらに含む。
このような好適実施例では、例外処理ツールは、命令を
実行するときに例外が検出されると、実行ユニットによ
って格納される結果データを、例外処理ツールによって
決定された訂正済みデータで上書きすることが望まし
い。
【0017】データ処理装置は、実行ユニットによって
実行される命令を解読して、解読された命令を実行ユニ
ットに転送する復号器をさらに備えていることが望まし
い。
【0018】データ処理装置のいくつかの異なる位置に
実行ユニットを設けることができることは理解できるで
あろう。たとえば、CPUの算術論理演算ユニット(A
LU)のように、実行ユニットを主プロセッサの特定の
論理ユニットとして主プロセッサに設けてもよく、別の
コプロセッサに設けてもよい。好適実施例では、データ
処理装置は主プロセッサとコプロセッサとを備えてお
り、コプロセッサは、前記実行ユニットと前記1組の例
外レジスタとを含み、主プロセッサから受信した命令を
実行する。
【0019】好適実施例では、前記第1の命令における
例外の検出に続いて、処理するために主プロセッサが次
の命令をコプロセッサに送ると、コプロセッサは、主プ
ロセッサに例外信号を発行するが、この例外信号によ
り、主プロセッサは前記例外処理ツールを起動する。
【0020】例外処理ツールが、ソフトウエアまたはハ
ードウエアで、またはハードウエアおよびソフトウエア
の組み合わせで実現できることは、当業者には理解でき
るであろう。しかし、好適実施例では、例外処理ツール
は、主プロセッサによって実行される例外サポート・コ
ードで実現されている。
【0021】本発明によれば、コプロセッサは、いかな
るパイプライン処理動作でも実行することができる。し
かし、好適実施例では、コプロセッサは浮動小数点ユニ
ットである。
【0022】好適実施例では、実行ユニットによる命令
の実行中にいくつかの異なる例外を検出することができ
る。その例外は、たとえば、実行ユニットによって決定
される命令の結果データが所定の数値範囲を超過してい
ることを示すオーバーフロー例外でもよく、そのとき例
外レジスタに格納される例外属性は、少なくとも例外の
型と前記結果データを識別する。
【0023】これに代わるものとして、その例外は、実
行ユニットによって決定される命令の結果データが、所
定の数値範囲以下であることを示すアンダーフロー例外
でもよく、そのとき例外レジスタに格納される例外属性
は、少なくとも例外の型、前記結果データおよびビット
を丸めるために必要な追加データを識別する。実行ユニ
ットによって適用される丸めを識別するため、または例
外処理ツールによって決定された結果に必要な丸めを計
算するために、これらの丸めビットを使用することがで
きる。
【0024】別の例外は不当演算例外であり、例外レジ
スタに格納される例外属性は、少なくとも、例外の型、
命令の演算の型、および命令のソースデータを識別す
る。これに代わる例外としては、サポートされていない
オペランド(以下、未サポート・オペランド)例外であ
り、この場合も例外レジスタに格納される例外属性は、
少なくとも、例外の型、命令の演算の型、および命令の
ソースデータを識別する。
【0025】検出できる例外の別の例は、命令がある数
をゼロで除算しようとしていることを示すゼロによる除
算の例外であり、この場合に例外レジスタに格納される
例外属性は、少なくとも例外の型と、その命令のための
ソースデータの符号情報とを識別する。
【0026】第2の側面から見ると、本発明は、データ
処理装置を作動させるために以下に示すステップを含む
方法を提供する。すなわち、この方法は、実行ユニット
で同時に最高'n'個の命令が実行中でありうるように、
実行ユニットの複数のパイプライン・ステージで複数の
命令を実行するステップと、各論理例外レジスタが、実
行ユニットによる実行中に例外が検出された命令に関連
するいくつかの例外属性を格納することができる、少な
くとも'n'個の論理例外レジスタを設けるステップと、
第1の命令の実行中に例外が検出された前記第1の命令
に関連する前記例外属性を第1の前記例外レジスタに格
納するステップと、前記例外が検出されたときにすでに
パイプライン・ステージに入っていた残りの命令のどれ
でもの実行を続けるステップと、前記残りの命令のどれ
かの実行中に例外が検出されると、その命令に関連する
例外属性を、前記例外レジスタに格納するステップと、
前記第1の命令と前記残りの命令との処理中に発生する
例外のどれでもを回復するときに使用するために、例外
レジスタに格納された例外属性を例外処理ツールに供給
するステップとを含む。
【0027】
【発明の実施の形態】添付の図面に示す本発明の好適実
施例を参照し、さらに例のみを示して本発明を説明す
る。
【0028】図1は、本発明の好適実施例によるデータ
処理装置の各種要素を示すブロック図である。CPUコ
ア100は、メモリ130またはキャッシュ120から
取り出した命令を実行し、これらの命令に必要なデータ
もメモリ130またはキャッシュ120から取り出され
る。さらにコプロセッサ浮動小数点ユニット(FPU)
110が設けられているので、CPUコア100は、浮
動小数点命令をCPUコアで実行するのではなく、適切
な浮動小数点命令をFPU110に送る。実行された命
令から得られたデータは、CPU100またはFPU1
10に設けられたレジスタに格納され、続いてキャッシ
ュ120および/またはメモリ130に書き込まれる。
さらにデータ処理装置は、入出力(I/O)システム1
40を介して外部装置に接続可能である。
【0029】次に図2を参照して、本発明の第1の実施
例によるFPU110を詳細に説明する。図示のとお
り、いくつかのパイプライン・ステージを備えた実行ユ
ニット200が設けられており、この例では、4つのパ
イプライン・ステージE1、E2、E3、E4がある。
FPU110によってCPU100から各命令が受信さ
れると、各命令は復号器210によって解読された後、
実行ユニット200に転送される。好適実施例では、F
PU110は、この段階でCPU100に信号を送り返
し、命令がまだ実行されていなくても命令を受信したこ
とを示す。これでCPU100は動作を続けることが可
能になる。
【0030】解読された命令がパイプラインの第1ステ
ージE1に入ると、レジスタファイル240の適切なレ
ジスタから、その命令を実行するために必要なソースデ
ータが取り出され、命令を実行するために必要な各種ス
テップが実行ユニットのパイプライン・ステージで実行
される。ステージE4で命令が終了すると、レジスタフ
ァイル240の指定されたデスティネーション・レジス
タに結果データが格納される。好適実施例では、レジス
タファイル240に32個のレジスタがあるが、必要に
応じて、これよりも多いか少ないレジスタを用意すれば
よいことは明らかである。
【0031】本発明の第1の実施例によれば、実行ユニ
ット200による実行中に例外が検出された命令に関連
する例外属性を格納するために、いくつかの例外状態レ
ジスタ230が設けられている。一例として、結果デー
タが所定の数値範囲を超過した場合、ステージE4でオ
ーバーフロー例外が検出される。実行ユニット200
は、たとえば、仮数部と変更された指数部などのデータ
をデスティネーション・レジスタに格納することができ
るが、デスティネーション・レジスタに格納された結果
データは中間結果にすぎず訂正が必要であることを示す
ため、例外を発生する必要がある。
【0032】例外が検出されると、いくつかの例外属性
が例外状態レジスタ230の第1のレジスタに格納され
る。好適実施例で格納される正確な例外属性については
後で詳細に考察する。
【0033】例外が検出されてしまうと、別の命令がパ
イプラインに入ることはできないが、パイプライン(た
とえば、ステージE1、E2またはE3)ですでに処理
中であった命令はどれでも終了することができる。好適
実施例のFPU110は、復号器210でCPU100
から別の命令が受信されると、CPUが例外処理ツール
を起動するように、CPUに例外信号を返す。好適実施
例では、この例外信号は、この別の命令の受信に応答し
て送られる中止信号(abort signal)の形をなしてい
る。この中止信号によって、CPU100は例外処理ツ
ールを起動する。
【0034】パイプラインの残りの命令を実行中に、さ
らに例外が検出されると、後でこれらの例外を回復する
ために必要な例外属性も、別の例外状態レジスタ230
に格納される。この方法によれば、例外処理ツールが起
動されると、例外処理ツールは、パイプラインによって
実行される命令から発生するいかなる例外でも処理する
ことができる。これは、例外が処理されてしまうと、第
1の例外が検出されたときにパイプラインに存在してい
た命令、または実際にCPUまたは他のプロセッサによ
って処理された別の命令のどれでもを再実行することを
必要とせず、さらに第1の例外が検出された後のパイプ
ラインの状態を格納するために長い遅れを必要とせず
に、データ処理装置が次の命令の実行を継続できるとい
う利点がある。
【0035】 命令の処理中に検出される例外だでけで
なく、実際に命令が実行される前に、入力例外と呼ぶあ
る種の例外を検出することができる。このような入力例
外の一例が不当演算例外である。したがって、解読され
た命令がパイプラインの第1ステージE1に入ると、そ
の命令が例外を発生することが明らかであるか否かを決
定するために、実行ユニットがいくつかのチェックを実
行することが望ましい。このような入力例外が検出され
ると、適切な例外属性が例外状態レジスタ230に格納
される。その上、このような入力例外が例外処理ツール
によって処理されることを可能にするためには、その命
令が利用され得る必要がある。図2に示す第2の実施例
では、このことは、解読された命令が実行ユニット20
0の第1のステージE1に転送されるのと同時に、入力
例外レジスタ220に格納されている解読された命令に
よって達成される。
【0036】好適実施例では、FPU110によって検
出できる例外には、6つの型があって、これらの例外は
例外処理ツールを起動する。これらの例外は、オーバー
フロー(OF)、アンダーフロー(UF)、不正確(in
exact:IX)、不当演算(IO)、ゼロによる除算
(DZ)および未サポート・オペランド(UO)であ
る。IO例外、DZ例外およびUO例外は、命令が実行
される前に検出可能な入力例外であり、好適実施例で
は、OF例外、UF例外およびIX例外は、普通、命令
の処理中にステージE4で検出されるのが普通である。
これに代わる方法として、たとえば、ソースデータの指
数部を見直すことによって、入力例外としてOF例外お
よびUF例外を検出することができる。
【0037】例外処理ツールによりこれらの例外を処理
可能にするため、このような例外が検出されるたびに、
以下の情報、すなわち、例外の型(6つの例外の型を指
定するためには3ビットで十分である)と、デスティネ
ーション・レジスタに対するポインタ(32個のレジス
タのどれかを指定するためには5ビットで十分である)
と、命令の精度の指示(単精度または倍精度を指定する
ために1ビットが必要である)と、UF例外に必要な丸
めビット(好適実施例では2ビットが必要である)と、
が例外状態レジスタ230に格納される。
【0038】その上、入力例外の場合、入力例外を発生
する命令は入力例外レジスタ220に格納される。さら
にFPU110内の(示されていない)汎用制御レジス
タには、FPU110の実行ユニット200によって適
用される丸めモード(RM)の詳細が含まれるので、実
行ユニット200によってデスティネーション・レジス
タに配置された中間果データを見直す場合、例外処理ツ
ールはRM情報にアクセスするであろう。
【0039】FPU110の代替実施例が図3に示され
ているが、図2の実施例と共通の要素は同じ参照番号で
示されている。この実施例では、例外レジスタは、例外
レジスタ320の形となり、各例外レジスタは、命令を
格納するための第1の部分310と、追加される例外属
性(以下、追加例外属性)を格納するための第2の部分
300を備えている。
【0040】復号器210によって第1の命令が解読さ
れ、実行ユニット200に転送されると、この命令は第
1の例外レジスタ320の部分310にコピーされる
が、図3に示すように、例外レジスタ320は、論理的
に最上部の例外レジスタであると考えてよい。第1の命
令がステージE1からステージE2に移ると、パイプラ
インを通る命令の進行を写像するため、第1の例外レジ
スタの論理的位置が変わり、パイプラインのステージE
1に転送される次の命令を格納するために、新しい最上
部の例外レジスタが使用される。例外が検出されずに第
1の命令がパイプラインを通過すると想定すると、レジ
スタファイル240の適切なデスティネーション・レジ
スタに結果データが格納され、新しい命令に第1の例外
レジスタを再使用することができる。
【0041】どれでも特定の命令が例外を発生すると、
追加例外属性を格納するために、対応する例外レジスタ
320の第2の部分300が使用される。図2の説明を
参照すると、同じ情報が必要である。しかし、第1の部
分310に格納された命令は、デスティネーション・レ
ジスタに対するポインタに、その命令の精度の指示と操
作符号とをすでに与えているので、第2の部分300に
格納される必要があるものは、例外の型と、必要な場合
には、UF例外に必要な丸めビットである。
【0042】好適実施例では、入力例外はステージE1
で検出され、他の例外は、ステージE4で検出されるの
が普通である。第1の例外が検出されると、対応する例
外レジスタ320の追加部分300に、第1の例外が格
納される。このとき別の命令をパイプラインに入れるこ
とはできないが、すでにパイプラインに入っていた残り
の命令は終了することができる。命令の終了に成功する
と、どの追加例外属性も対応する例外レジスタ320の
追加部分300に格納されずに、適切なデスティネーシ
ョン・レジスタに結果データが書き戻される。しかし、
これらの残りの命令のどれかが例外を発生すると、必要
な追加例外属性が対応する例外レジスタ320の追加部
分300に格納される。FPU110によって次の命令
が受信されると、CPU100に中止信号が転送されて
例外処理ツールが起動する。例外処理ツールは、これら
の命令から発生する例外のすべてを処理することができ
る。
【0043】例外レジスタ320は、例外を含んでいる
例外レジスタが相互に隣接して論理的に配置されるよう
に、再配置されることが望ましい。この方法によれば、
例外レジスタ320のすべてが例外を含んでいないかぎ
り、例外処理ツールが例外レジスタ320をすべて読む
必要はない。その代わり、例外処理ツールが起動される
と、例外処理ツールが、例外を含んでいない例外レジス
タに到達するまで、例外処理ツールは、例外レジスタを
読むことを継続する必要があるにすぎない。残りの例外
レジスタのすべては、例外を含んでいないと想定する。
【0044】図2または図3の装置のいずれかに適用で
きる第3の実施例として、残りの例外属性を格納する関
連例外レジスタを指定するために使用されているポイン
タを使用して、検出されたすべての例外に対する例外の
型を保持する例外レジスタに、例外の型に関する情報を
個別に格納してもよい。この例では、例外処理ツール
は、例外レジスタ内の各例外の型を交互に見て、必要に
応じて追加例外属性を取り出す。その例外レジスタの空
きフィールドに到達すると直ちに、すべての例外が処理
されてしまっていると考えられ、正規の処理が再開され
る。後で図5を参照して、例外処理ツールの動作を詳細
に考察する。
【0045】好適実施例のFPU110によって実行さ
れる4ステージ・パイプライン処理の一例が図4に示さ
れている。図4に示されている論理は、結果=B+(A
×C)のような乗算・累積演算を実行する。この論理
は、入力Cを'1'に設定することによって簡単な加算演
算を実行できるし、あるいは入力Bを'0'に設定するこ
とによって簡単な乗算演算を実行できる。さらにこのよ
うな論理を補足して除算も実行できるようにすること
は、当業者には理解できるであろう。しかし、説明を簡
単にするために、この追加論理は示されていない。
【0046】図4に示すように、第1のステージE1は
乗算A×Cを実行する乗算器26から構成され、桁上げ
を退避する様式(carry save format)の出力を、ラッ
チ410、420にそれぞれ供給する。その間に入力B
がラッチ400に格納される。次にステージE2で、加
算器28がラッチ410、420に格納された値を加算
し、結果はラッチ440に格納される。また、ステージ
E2の実行中に入力Bがラッチ430に格納される。
【0047】ステージE3では、ラッチ430、440
に格納された値は、両者の値の位置が相互に整列(alig
n)ことを可能にするため、それぞれ整列/シフト論理
34を通過する。次にこれらの値は加算器32によって
加算され、結果はラッチ450に格納される。次にステ
ージE4では、必要な正規化を実行できるようにするた
め、この結果は正規化/シフト論理を通過し、加算器3
6の1つの入力にこの値が供給される。加算器36のも
う1つの入力は丸める値(rounding value)であり、こ
の丸める値が形成されると、加算器36の出力はデータ
の丸められた値を表す。この丸める値が形成されるの
は、正規化/シフト論理34の結果を訂正する調整が必
要な場合である。この加算器からの出力はラッチ460
にラッチされる。
【0048】図5は、本発明の好適実施例による例外処
理ツールによって実行されるステップを示す流れ図であ
る。前述のとおり、例外処理ツールは、ソフトウエアま
たはハードウエアで、またはハードウエアとソフトウエ
アの組み合わせで実現される。しかし、好適実施例で
は、例外処理ツールは、CPU100上で実行するソフ
トウエア・サポート・コード(software support cod
e)で形成される。
【0049】中止信号を受信すると、CPU100は、
ステップ500でソフトウエア・サポート・コードを実
行する。サポート・コードは、ステップ510で第1の
例外状態レジスタ230、320を読む。次にステップ
520で、その第1の例外状態レジスタの内容によって
正当な例外が示されているか否かが決定される。これ
は、例外の型が例外レジスタに配置されていることを想
定した事例であり、これは少なくとも、第1の反復にお
ける事例である。
【0050】正当な例外が存在していると想定すると、
ソフトウエア・サポート・コードは、ステップ540で
例外の型を決定し、ステップ550で適切な例外ルーチ
ンを適用する。好適実施例では、ソフトウエア・サポー
ト・コードは、「バイナリ浮動小数点演算に関するIEEE
規格」、ANSI/IEEE Std754-1985、米国電気電子学会(I
nstitute of Electrical and Electronic Engineers, I
nc.), ニューヨーク, 100017(以下、IEEE 754-1985規
格と呼ぶ)に準拠しているので、ステップ550で適切
なルーチンが適用されIEEE 754-1985で指定された結果
を決定する。したがって、一例として例外がオーバーフ
ロー例外の場合、ソフトウエア・サポート・コードは、
丸めモードに依存してデスティネーション精度(destin
ationprecision)に対して正しく符号がつけられた大き
な数(correctly signedinfinity)、すなわち最大の有
限数(largest finite number)を発生する。
【0051】次にステップ560で、処理中の例外の型
が、ユーザが可能にした(user-enabled)例外であるか
否かが決定される。好適実施例では、FPU110のレ
ジスタには、(各例外に1つある)いくつかの例外イネ
ーブルビットがあるが、例外イネーブルビットは、浮動
小数点例外を処理するためのIEEE 754-1985仕様書の要
求条件に準拠している。これは、IEEE 754-1985仕様書
によって指定された結果を発生するのではなく、例外を
処理するためユーザ独自の処理コードをユーザが設ける
ことを可能にする。したがって、ユーザによって特定の
型の命令に対するイネーブルビットが設定されている
と、処理はステップ570に進み、ここでユーザの処理
コードが呼び出されて例外を処理する。しかし、イネー
ブルビットが設定されないと、処理はステップ580に
進み、ここで、ステップ550で決定されたIEEE 754-1
985準拠の結果が、デスティネーション・レジスタに書
き込まれる。
【0052】IEEE 754-1985規格は、どんな特定の例外
の型が発生したか否かを、ユーザが決定できることを要
求している。ユーザが、レジスタで対応するイネーブル
ビットを設定していなかった場合は、事実上、このよう
な例外の処理はユーザに透明であるから、それぞれ特定
の型の例外をサポート・コードが処理する場合に設定さ
れる別の1組の例外状態ビットが、レジスタに与えられ
る。したがって、ステップ590で、対応する例外状態
ビットが設定される。たとえば、オーバーフロー例外が
サポート・コードによって処理され、IEEE 754-1985規
格による結果がデスティネーション・レジスタに格納さ
れると、オーバーフローに対する例外状態ビットがレジ
スタに設定される。したがって、後でユーザがレジスタ
を調べると、オーバーフローが発生していることが判
る。
【0053】上記ステップが実行された後、処理はステ
ップ600に進み、ここで次の例外状態レジスタが読ま
れる。次に処理はステップ520に戻り、ここで、正当
な例外が存在するか否かが決定される。正当な例外が存
在すると、例外状態レジスタに格納されたすべての例外
が処理されてしまうまで、処理が反復される。好適実施
例では、例外レジスタに正当な例外が1つもないことが
読まれると、直ちに処理はステップ530に進み、ここ
でソフトウエア・サポート・コード(softwaresupport
code)が出力され、正規の処理が再開される。好適実施
例では、前に考察したとおり、FPUに中止信号を発行
させる命令(すなわち、最初の例外が検出された後に到
着した第1の命令)を使用して、FPUは処理を再開す
る。
【0054】本発明の特定の実施例を説明してきたが、
本発明は特定の実施例に限定されるものではなく、本発
明の範囲内で多数の修正や追加ができることは明らかで
あろう。たとえば、物理的に別のコプロセッサを備えた
CPUについて好適実施例を説明してきたが、これは必
要な事例ではない。たとえば、浮動小数点ユニットを主
プロセッサ内に設けてもよい。さらに上で考察したレジ
スタファイル、例外状態レジスタ、およびコプロセッサ
によって使用されるその他のレジスタを、コプロセッサ
内に配置する必要はないが、データ処理装置のどこか別
の適切な位置に設けてもよい。さらに、次に示す従属ク
レームの特徴の各種組み合わせは、本発明の範囲を逸脱
することなく、独立クレームの特徴を用いてつくること
ができる。
【図面の簡単な説明】
【図1】本発明の好適実施例によるデータ処理装置の要
素を示すブロック図。
【図2】本発明の第1の実施例によるコプロセッサの要
素を示すブロック図。
【図3】本発明の第2の実施例によるコプロセッサの要
素を示すブロック図。
【図4】いくつかのパイプライン・ステージを備えた実
行ユニットの例を示すブロック図。
【図5】本発明の好適実施例による例外処理ツールによ
って実行されるステップを示すフローチャート。
【符号の説明】
26 乗算器 28 加算器 30 整列/シフト論理 32 加算器 34 正規化/シフト論理 36 加算器 100 CPU 110 CPUコア 120 キャッシュ 130 メモリ 140 入出力システム 200 実行ユニット 210 復号器 220 入力例外レジスタ 230、320 例外状態レジスタ/例外レジスタ 240 レジスタファイル 300 例外レジスタの命令格納部 310 例外レジスタの追加例外属性格納部 400、410、420、430、440、450、4
60 ラッチ
フロントページの続き (72)発明者 デビッド ターレンス マシニイ アメリカ合衆国 テキサス,オースチン, バックソーン ドライブ 10706 (72)発明者 マシュー ポール エルウッド アメリカ合衆国 テキサス,オースチン, スタッガーブラッシュ ロード 4701,ナ ンバー2034

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置であって、 実行ユニットで最高'n'個の命令が実行中でありうるよ
    うに、複数の命令を実行する複数のパイプライン・ステ
    ージを含む実行ユニットと、 各例外レジスタが、実行ユニットによる実行中に例外が
    検出された命令に関連するいくつかの例外属性を格納す
    ることができる、少なくとも'n'個の論理例外レジスタ
    の1組と、 第1の命令の実行中に例外が検出されている場合、
    (i)前記第1の命令に関連する前記例外属性を第1の
    前記例外レジスタに格納し、(ii)例外が検出されたと
    きにすでにパイプライン・ステージに入っていた残りの
    命令のどれでもの実行を続ける実行ユニットであって、
    前記残りの命令のどれかの実行中に例外が検出される
    と、その命令に関連する例外属性を前記例外レジスタに
    格納する実行ユニットと、を含むデータ処理装置であっ
    て、 これによって、前記第1の命令と前記残りの命令との処
    理中に発生する例外のどれでもを回復する場合に使用す
    るために、例外レジスタに格納された例外属性を例外処
    理ツールに供給することができるデータ処理装置を提供
    する。
  2. 【請求項2】 請求項1記載のデータ処理装置であっ
    て、前記例外レジスタから例外属性を受信するととも
    に、前記第1の命令と前記残りの命令との処理中に発生
    する前記例外を回復するため所定の動作を適用する例外
    処理ツールをさらに含むデータ処理装置。
  3. 【請求項3】 請求項1記載のデータ処理装置におい
    て、前記第1の命令で例外が検出されたとき、実行のた
    め別の命令が実行ユニットに転送されると、前記データ
    処理装置が前記例外処理ツールを起動する例外信号を発
    行する、データ処理装置。
  4. 【請求項4】 請求項3記載のデータ処理装置であっ
    て、前記例外レジスタから前記例外属性を受信するとと
    もに、前記第1の命令と前記残りの命令との処理中に発
    生する前記例外を回復するため所定の動作を適用する例
    外処理ツールをさらに含むデータ処理装置において、前
    記例外処理ツールが前記所定の動作を終了すると、前記
    実行ユニットが前記別の命令を使用して命令を処理する
    ことを開始するデータ処理装置。
  5. 【請求項5】 請求項1記載のデータ処理装置であっ
    て、前記命令を実行するために前記実行ユニットによっ
    て要求されるソースデータと、前記命令を実行した後に
    決定される結果データとを格納する1組のデータ・レジ
    スタをさらに含むデータ処理装置。
  6. 【請求項6】 請求項2記載のデータ処理装置であっ
    て、前記命令を実行するために前記実行ユニットによっ
    て要求されるソースデータと、前記命令を実行した後に
    決定される結果データとを格納する1組のデータ・レジ
    スタと、例外が検出された命令を実行すると、前記実行
    ユニットによって格納された結果データを、例外処理ツ
    ールによって決定され訂正されたデータで上書きする例
    外処理ツールとを、さらに含むデータ処理装置。
  7. 【請求項7】 請求項1記載のデータ処理装置であっ
    て、前記実行ユニットによって実行される命令を解読す
    るとともに、解読された命令を前記実行ユニットに転送
    する復号器をさらに含むデータ処理装置。
  8. 【請求項8】 請求項1記載のデータ処理装置であっ
    て、主プロセッサと、前記実行ユニットと前記1組の例
    外レジスタとをさらに含むとともに、前記主プロセッサ
    から受信した命令を実行するコプロセッサとを、さらに
    含むデータ処理装置。
  9. 【請求項9】 請求項8記載のデータ処理装置におい
    て、前記第1の命令の前記例外の検出に続いて、次に前
    記主プロセッサが実行のため前記コプロセッサに命令を
    送ると、前記コプロセッサが、前記主プロセッサに例外
    信号を発行するデータ処理装置であって、前記例外信号
    により、前記主プロセッサが前記例外処理ツールを起動
    するデータ処理装置。
  10. 【請求項10】 請求項9記載のデータ処理装置におい
    て、前記例外処理ツールが、前記主プロセッサによって
    実行される例外サポート・コードとして実現されるデー
    タ処理装置。
  11. 【請求項11】 請求項8記載のデータ処理装置におい
    て、前記コプロセッサが浮動小数点ユニットであるデー
    タ処理装置。
  12. 【請求項12】 請求項1記載のデータ処理装置におい
    て、前記例外が、前記実行ユニットによって決定される
    前記命令の結果データが所定の数値範囲を超過すること
    を示すオーバーフロー例外であると、前記例外レジスタ
    に格納された例外属性が、少なくとも例外の型と前記結
    果データとを識別するデータ処理装置。
  13. 【請求項13】 請求項1記載のデータ処理装置におい
    て、前記例外が、前記実行ユニットによって決定される
    前記命令の結果データが所定の数値範囲以下であること
    を示すアンダーフロー例外であると、前記例外レジスタ
    に格納された例外属性が、少なくとも例外の型、前記結
    果データおよび追加的に要求される何らかの丸めビット
    を識別するデータ処理装置。
  14. 【請求項14】 請求項1記載のデータ処理装置におい
    て、前記例外が不当演算例外であると、前記例外レジス
    タに格納された例外属性が、少なくとも例外の型、命令
    の演算の型および命令のソースデータを識別するデータ
    処理装置。
  15. 【請求項15】 請求項1記載のデータ処理装置におい
    て、前記例外が不当演算例外であると、前記例外レジス
    タに格納された例外属性が、少なくとも例外の型、命令
    の演算の型および命令のソースデータを識別データ処理
    装置。
  16. 【請求項16】 請求項1記載のデータ処理装置におい
    て、前記例外が、命令がゼロによる除算をしようとして
    いることを示すゼロによる除算の例外であると、前記例
    外レジスタに格納された前記例外属性が、少なくとも例
    外の型と、前記命令に対するソースデータの符号情報と
    を識別するデータ処理装置。
  17. 【請求項17】 データ処理装置を作動させる方法であ
    って、 実行ユニットで同時に最高'n'個の命令が実行中であり
    うるように、実行ユニットの複数のパイプライン・ステ
    ージで複数の命令を実行するステップと、 各論理例外レジスタが、実行ユニットによる実行中に例
    外が検出された命令に関連するいくつかの例外属性を格
    納することができる、少なくとも'n'個の論理例外レジ
    スタを設けるステップと、 第1の命令の実行中に例外が検出された前記第1の命令
    に関連する前記例外属性を第1の前記例外レジスタに格
    納するステップと、 前記例外が検出されたときにすでにパイプライン・ステ
    ージに入っていた残りの命令のどれでもの実行を続ける
    ステップと、 前記残りの命令のどれかの実行中に例外が検出される
    と、その命令に関連する例外属性を、前記例外レジスタ
    に格納するステップと、 前記第1の命令と前記残りの命令との処理中に発生する
    例外のどれでもを回復するときに使用するために、例外
    レジスタに格納された例外属性を例外処理ツールに供給
    するステップと、を含む方法。
JP11133322A 1998-05-14 1999-05-13 パイプライン制御デ―タ処理装置における例外の処理 Pending JPH11353179A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/078,595 US6216222B1 (en) 1998-05-14 1998-05-14 Handling exceptions in a pipelined data processing apparatus
US078595 1998-08-31

Publications (1)

Publication Number Publication Date
JPH11353179A true JPH11353179A (ja) 1999-12-24

Family

ID=22145050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11133322A Pending JPH11353179A (ja) 1998-05-14 1999-05-13 パイプライン制御デ―タ処理装置における例外の処理

Country Status (3)

Country Link
US (1) US6216222B1 (ja)
JP (1) JPH11353179A (ja)
GB (1) GB2339312B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
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
US6842849B2 (en) 2001-05-21 2005-01-11 Arm Limited Locking source registers in a data processing apparatus
US6687690B2 (en) 2001-06-14 2004-02-03 International Business Machines Corporation Employing a combined function for exception exploration in multidimensional data
US7269714B2 (en) * 2001-09-24 2007-09-11 Broadcom Corporation Inhibiting of a co-issuing instruction in a processor having different pipeline lengths
GB2382175A (en) * 2001-11-20 2003-05-21 Hewlett Packard Co Reconfigurable processor
JP2004062309A (ja) * 2002-07-25 2004-02-26 Fujitsu Ltd 不当命令処理方法及びプロセッサ
US7360070B1 (en) * 2003-08-13 2008-04-15 Apple Inc. Specialized processing upon an occurrence of an exceptional situation during the course of a computation
US20060156177A1 (en) * 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
US7996662B2 (en) * 2005-11-17 2011-08-09 Apple Inc. Floating point status/control register encodings for speculative register field
CN100495322C (zh) * 2006-05-18 2009-06-03 中国科学院计算技术研究所 对预处理微指令发生异常多层嵌套进行处理的设备及方法
CN100385391C (zh) * 2006-05-25 2008-04-30 西北工业大学 嵌入式实时精确异常机制的硬件实现方法
JP2008262437A (ja) * 2007-04-13 2008-10-30 Renesas Technology Corp プロセッサシステムおよび例外処理方法
US7861072B2 (en) * 2007-06-25 2010-12-28 Microsoft Corporation Throwing one selected representative exception among aggregated multiple exceptions of same root cause received from concurrent tasks and discarding the rest
US8146085B2 (en) * 2007-06-25 2012-03-27 Microsoft Corporation Concurrent exception handling using an aggregated exception structure
WO2016014081A1 (en) * 2014-07-25 2016-01-28 Hewlett-Packard Development Company, L.P. Exception handling predicate register
US11216280B2 (en) * 2019-11-26 2022-01-04 Arm Limited Exception interception

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
US5237700A (en) * 1990-03-21 1993-08-17 Advanced Micro Devices, Inc. Exception handling processor for handling first and second level exceptions with reduced exception latency
JP2682232B2 (ja) * 1990-11-21 1997-11-26 松下電器産業株式会社 浮動小数点演算処理装置
US5692169A (en) 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
US5559977A (en) * 1992-08-04 1996-09-24 Intel Corporation Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage
CA2105806C (en) 1992-09-18 2001-11-20 Paul V. Jeffs Apparatus for implementing interrupts in pipelined processors
EP0649085B1 (en) 1993-10-18 1998-03-04 Cyrix Corporation Microprocessor pipe control and register translation
GB2284493B (en) 1993-12-01 1998-04-01 Intel Corp Exception handling in a processor that performs speculative out-of-order instruction execution
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
US5537559A (en) * 1994-02-08 1996-07-16 Meridian Semiconductor, Inc. Exception handling circuit and method
US6006030A (en) * 1995-02-17 1999-12-21 Vlsi Technology, Inc. Microprocessor with programmable instruction trap for deimplementing instructions
US5603047A (en) * 1995-10-06 1997-02-11 Lsi Logic Corporation Superscalar microprocessor architecture
US5740391A (en) 1996-03-01 1998-04-14 Hewlett-Packard Co. Preventing premature early exception signaling with special instruction encoding
US5774711A (en) * 1996-03-29 1998-06-30 Integrated Device Technology, Inc. Apparatus and method for processing exceptions during execution of string instructions
US5748936A (en) * 1996-05-30 1998-05-05 Hewlett-Packard Company Method and system for supporting speculative execution using a speculative look-aside table
US5826070A (en) * 1996-08-30 1998-10-20 International Business Machines Corporation Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit
US5983338A (en) * 1997-09-05 1999-11-09 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
US6128722A (en) 1998-02-13 2000-10-03 International Business Machines Corporation Data processing system having an apparatus for exception tracking during out-of-order operation and method therefor

Also Published As

Publication number Publication date
GB9907257D0 (en) 1999-05-26
US6216222B1 (en) 2001-04-10
GB2339312A (en) 2000-01-19
GB2339312B (en) 2003-04-02

Similar Documents

Publication Publication Date Title
JP2539199B2 (ja) デジタルプロセッサ制御装置
US4879676A (en) Method and apparatus for precise floating point exceptions
US4745547A (en) Vector processing
JPH11353179A (ja) パイプライン制御デ―タ処理装置における例外の処理
US8103858B2 (en) Efficient parallel floating point exception handling in a processor
US6098167A (en) Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
JPS59114641A (ja) 割込処理装置
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JP2004145903A (ja) スーパースケーラマイクロプロセサ
JPH07160501A (ja) データ処理システム
JPH0792739B2 (ja) 浮動小数点データ正規化方式
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
JP2633475B2 (ja) 選択的セーブ方法及びシステム
KR100864890B1 (ko) 데이터 처리장치에서의 소스 레지스터 록킹
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
US6237076B1 (en) Method for register renaming by copying a 32 bits instruction directly or indirectly to a 64 bits instruction
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
EP0212132A1 (en) Method and digital computer for recovering from errors
EP0306891A2 (en) Pipelined slave protocol for high performance CPU-FPU cluster
US4991130A (en) Normalization control system for floating point arithmetic operation
JP2000235489A (ja) プロセッサ
JP3240660B2 (ja) データ処理装置