JPH07248897A - コンピュータ・システムにおける例外からの回復方法、及びそのための装置 - Google Patents
コンピュータ・システムにおける例外からの回復方法、及びそのための装置Info
- Publication number
- JPH07248897A JPH07248897A JP6318815A JP31881594A JPH07248897A JP H07248897 A JPH07248897 A JP H07248897A JP 6318815 A JP6318815 A JP 6318815A JP 31881594 A JP31881594 A JP 31881594A JP H07248897 A JPH07248897 A JP H07248897A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- exception
- result
- instructions
- register
- 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
Links
- 238000000034 method Methods 0.000 title abstract description 21
- 238000011084 recovery Methods 0.000 title description 6
- 238000012545 processing Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 description 23
- 238000012360 testing method Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000004888 barrier function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】 (修正有)
【目的】実行時に発生するが、その発生の可能性が予測
できる例外からの、プログラム化され、かつパイプライ
ン化された回復のための方法及び装置を提供する。 【構成】条件付き置換命令が、実行時に発生した例外を
訂正するために、コンピュータ・システムの命令セット
内に提供される。条件付き置換命令はパイプライン化コ
ンピュータ・システムにおいて並列に、又はワイド・コ
ンピュータ・システムにおいて同時に、例外を発生させ
る可能性のある命令と共に実行されうる。条件付き置換
命令は例外を発生させる可能性のある命令が1つ、又は
複数の指定された例外を生成する場合、その命令の結果
をデフォルト値と置換する。
できる例外からの、プログラム化され、かつパイプライ
ン化された回復のための方法及び装置を提供する。 【構成】条件付き置換命令が、実行時に発生した例外を
訂正するために、コンピュータ・システムの命令セット
内に提供される。条件付き置換命令はパイプライン化コ
ンピュータ・システムにおいて並列に、又はワイド・コ
ンピュータ・システムにおいて同時に、例外を発生させ
る可能性のある命令と共に実行されうる。条件付き置換
命令は例外を発生させる可能性のある命令が1つ、又は
複数の指定された例外を生成する場合、その命令の結果
をデフォルト値と置換する。
Description
【0001】
【産業上の利用分野】本発明は、全般的にはコンピュー
タ・システムにおける実行時例外からの回復に関する。
より詳しくは、本発明は、実行時に発生するが、その発
生の可能性が予測できる例外からの、プログラム化さ
れ、かつパイプライン化された回復のための方法、及び
装置に関する。
タ・システムにおける実行時例外からの回復に関する。
より詳しくは、本発明は、実行時に発生するが、その発
生の可能性が予測できる例外からの、プログラム化さ
れ、かつパイプライン化された回復のための方法、及び
装置に関する。
【0002】
【従来の技術】コンピュータによって実行される大部分
の命令は1つ、又は複数のデータ・オペランドに対して
ある種の算術計算、又は論理演算を実行し、結果のデー
タを生成する。通常、命令は、データ・オペランドが記
憶される1つ、又は複数のレジスタと、演算の結果が記
憶されるレジスタを指定する。これらの命令のいくつか
は、副作用、又は例外をも前記命令の演算の結果として
発生させる可能性があり、それらは通常、記憶される結
果には反映されない。そのような例外の発生は通常、複
数のビット、又はフラグを含む状態語を状態レジスタに
記憶することによって示される。
の命令は1つ、又は複数のデータ・オペランドに対して
ある種の算術計算、又は論理演算を実行し、結果のデー
タを生成する。通常、命令は、データ・オペランドが記
憶される1つ、又は複数のレジスタと、演算の結果が記
憶されるレジスタを指定する。これらの命令のいくつか
は、副作用、又は例外をも前記命令の演算の結果として
発生させる可能性があり、それらは通常、記憶される結
果には反映されない。そのような例外の発生は通常、複
数のビット、又はフラグを含む状態語を状態レジスタに
記憶することによって示される。
【0003】例外を発生させる恐れのある典型的な命令
は、浮動小数点演算命令である。浮動小数点演算命令の
結果発生する可能性がある典型的な例外は、ゼロによる
除算、不正確、無効、桁溢れ、及び下位桁溢れである。
桁溢れ例外、及び下位桁溢れ例外は例えば、浮動小数点
の加算、減算、乗算、又は除算命令の結果、表現可能な
浮動小数点数の有限範囲を超える数が生成された時に発
生する。ゼロによる除算例外、不正確例外、及び無効例
外は、ゼロのオペランドによる除算等の浮動小数点演算
命令の結果が不定数となった時に発生する。
は、浮動小数点演算命令である。浮動小数点演算命令の
結果発生する可能性がある典型的な例外は、ゼロによる
除算、不正確、無効、桁溢れ、及び下位桁溢れである。
桁溢れ例外、及び下位桁溢れ例外は例えば、浮動小数点
の加算、減算、乗算、又は除算命令の結果、表現可能な
浮動小数点数の有限範囲を超える数が生成された時に発
生する。ゼロによる除算例外、不正確例外、及び無効例
外は、ゼロのオペランドによる除算等の浮動小数点演算
命令の結果が不定数となった時に発生する。
【0004】通常、命令の結果として例外が発生した
時、訂正処理をせずにプログラム実行を継続させること
はできない。例えば、浮動小数点除算命令でゼロによる
除算例外が発生した時、命令の結果は不定数になる。続
いて実行される浮動小数点除算命令の結果を使用した命
令は、誤った、あるいは無意味なデータとなる。
時、訂正処理をせずにプログラム実行を継続させること
はできない。例えば、浮動小数点除算命令でゼロによる
除算例外が発生した時、命令の結果は不定数になる。続
いて実行される浮動小数点除算命令の結果を使用した命
令は、誤った、あるいは無意味なデータとなる。
【0005】従って、様々な機構が例外の発生に対応す
るために利用されてきた。最も簡単だが、最も思い切っ
た対応は、例外が発生した時にプログラムの実行を単に
終了、又は中断するハードウェア機構である。この種の
ハードウェア機構は、プログラム実行が中止されるの
で、例外命令の結果が使用されて誤ったデータを生成す
るのを防止する。しかし、例外が発生するまでにプログ
ラムによって生成されたデータは通常失われる。プログ
ラムの実行が中断されると、どの命令、及びどの例外が
プログラムの実行を中断させたのかを識別することも難
しくなる。
るために利用されてきた。最も簡単だが、最も思い切っ
た対応は、例外が発生した時にプログラムの実行を単に
終了、又は中断するハードウェア機構である。この種の
ハードウェア機構は、プログラム実行が中止されるの
で、例外命令の結果が使用されて誤ったデータを生成す
るのを防止する。しかし、例外が発生するまでにプログ
ラムによって生成されたデータは通常失われる。プログ
ラムの実行が中断されると、どの命令、及びどの例外が
プログラムの実行を中断させたのかを識別することも難
しくなる。
【0006】しかし、多くの場合、データを失うことな
くプログラムの実行を継続し、あるいは停止することが
できるように何らかの訂正処理をとることによって例外
を処理することができる。典型的な訂正処理には、エラ
ー・メッセージ表示すること、計算を繰り返す前にユー
ザに異なる入力データを入力できるようにすること、あ
るいはプログラムの実行を首尾良く停止し、同時にデー
タを保持し、プログラムが停止した原因を識別すること
が含まれる。
くプログラムの実行を継続し、あるいは停止することが
できるように何らかの訂正処理をとることによって例外
を処理することができる。典型的な訂正処理には、エラ
ー・メッセージ表示すること、計算を繰り返す前にユー
ザに異なる入力データを入力できるようにすること、あ
るいはプログラムの実行を首尾良く停止し、同時にデー
タを保持し、プログラムが停止した原因を識別すること
が含まれる。
【0007】場合によっては、例外命令の後もプログラ
ムの実行を続行し、同時に例外命令の結果をデフォルト
の結果に置換することによって以後の命令で誤った結果
の生成を避けることも可能である。例えば、浮動小数点
除算演算を含むある計算では、ゼロのオペランドによる
除算に関して結果が定義される。具体的な例として、関
数sin(x)/xをコンピュータで計算する時、この関数に
は、浮動小数点除算命令によってsin(x)の値をxの値で
除算することが含まれる。xがゼロの時、浮動小数点除
算命令はゼロによる除算例外を生成し、不定浮動小数点
数の結果を生成する。しかし、この関数は、xがゼロの
時、関数の結果値を1にすることが知られている。プロ
グラムは、浮動小数点除算命令の不定の結果を1に置換
することで続行でき、置換された結果を使用する以後の
命令は正確なデータを生成する。数学用語では、この種
の例外は、除去可能特異点(removable singularity)と
して知られている。デフォルトの結果に置換する訂正処
理は、浮動小数点演算命令、及び非浮動小数点演算命令
によって発生する他の例外に使用することができる。
ムの実行を続行し、同時に例外命令の結果をデフォルト
の結果に置換することによって以後の命令で誤った結果
の生成を避けることも可能である。例えば、浮動小数点
除算演算を含むある計算では、ゼロのオペランドによる
除算に関して結果が定義される。具体的な例として、関
数sin(x)/xをコンピュータで計算する時、この関数に
は、浮動小数点除算命令によってsin(x)の値をxの値で
除算することが含まれる。xがゼロの時、浮動小数点除
算命令はゼロによる除算例外を生成し、不定浮動小数点
数の結果を生成する。しかし、この関数は、xがゼロの
時、関数の結果値を1にすることが知られている。プロ
グラムは、浮動小数点除算命令の不定の結果を1に置換
することで続行でき、置換された結果を使用する以後の
命令は正確なデータを生成する。数学用語では、この種
の例外は、除去可能特異点(removable singularity)と
して知られている。デフォルトの結果に置換する訂正処
理は、浮動小数点演算命令、及び非浮動小数点演算命令
によって発生する他の例外に使用することができる。
【0008】訂正処理は一般に、例外ハンドラとして知
られるソフトウェア・ルーチンで実行される。例外ハン
ドラは、エラー・メッセージを表示し、プログラムを首
尾良く終了させ、デフォルトの結果に置換し、あるいは
他の訂正処理をとる命令から成る。一般に、例外ハンド
ラは特定の例外、及びプログラム内の特定の命令に固有
のものである。
られるソフトウェア・ルーチンで実行される。例外ハン
ドラは、エラー・メッセージを表示し、プログラムを首
尾良く終了させ、デフォルトの結果に置換し、あるいは
他の訂正処理をとる命令から成る。一般に、例外ハンド
ラは特定の例外、及びプログラム内の特定の命令に固有
のものである。
【0009】例外に応答して訂正処理をとるために例外
ハンドラを呼び出すための2つの一般的な機構がある。
これらの機構は、「テスト・分岐」及び「トラップ」と
呼ばれている。テスト・分岐は純粋なソフトウェア機構
であり、オペランドの値が例外を発生させる可能性があ
る場合、命令のオペランドの値をテストし、適当な例外
ハンドラに分岐するために、例外命令となる可能性があ
るものの前に命令を挿入することを含む。例えば、除数
オペランドをテストし、除数オペランドがゼロの時に例
外ハンドラに分岐するためのテスト・分岐命令を、浮動
小数点除算命令の前に挿入することができる。その後、
例外ハンドラは、デフォルトの結果が定義されていれば
それを結果に置換したり、浮動小数点除算命令の後にプ
ログラムの実行を再開する等の適当な訂正処理をとるこ
とができる。テスト・分岐命令を使用するアプローチは
特に例外を処理するためのハードウェア機構を備えてい
ないコンピュータ、又は例外が発生した時に単にプログ
ラムの実行を終了させるコンピュータにおいて有用であ
る。
ハンドラを呼び出すための2つの一般的な機構がある。
これらの機構は、「テスト・分岐」及び「トラップ」と
呼ばれている。テスト・分岐は純粋なソフトウェア機構
であり、オペランドの値が例外を発生させる可能性があ
る場合、命令のオペランドの値をテストし、適当な例外
ハンドラに分岐するために、例外命令となる可能性があ
るものの前に命令を挿入することを含む。例えば、除数
オペランドをテストし、除数オペランドがゼロの時に例
外ハンドラに分岐するためのテスト・分岐命令を、浮動
小数点除算命令の前に挿入することができる。その後、
例外ハンドラは、デフォルトの結果が定義されていれば
それを結果に置換したり、浮動小数点除算命令の後にプ
ログラムの実行を再開する等の適当な訂正処理をとるこ
とができる。テスト・分岐命令を使用するアプローチは
特に例外を処理するためのハードウェア機構を備えてい
ないコンピュータ、又は例外が発生した時に単にプログ
ラムの実行を終了させるコンピュータにおいて有用であ
る。
【0010】トラップは、外部で生成される割込みに、
幾つかの点で類似しているハードウェア機構である。ト
ラップ機構を備えるコンピュータでは、メモリ内の1組
の位置が例外ハンドラの開始アドレスを記憶するために
除外、又は専有される。これらの記憶された開始アドレ
スをトラップ・ベクトルと呼ぶ。一般に、コンピュータ
によって発生しうる各例外のタイプごとに1つのトラッ
プ・ベクトルがある。例外が発生すると、トラップ機構
は一時的にプログラム実行を中断し、プログラムから、
例外用の対応するトラップ・ベクトルにおける例外ハン
ドラに強制的に実行を移す。コンピュータはそこで例外
ハンドラを実行して訂正処理を行う。プログラムの実行
が割り込まれたアドレスや、コンピュータのレジスタの
現在の内容等のプログラムの実行に関する情報(プログ
ラム・コンテキスト)は通常、トラップが生成される時
にスタック・メモリに記憶される。プログラム・コンテ
キストを記憶すると、例外ハンドラの実行が完了した後
にプログラムの実行を再開することができる。特定の点
でプログラムの再開を可能にするこの種のプログラム割
込みは、厳密な割込みとして知られている。
幾つかの点で類似しているハードウェア機構である。ト
ラップ機構を備えるコンピュータでは、メモリ内の1組
の位置が例外ハンドラの開始アドレスを記憶するために
除外、又は専有される。これらの記憶された開始アドレ
スをトラップ・ベクトルと呼ぶ。一般に、コンピュータ
によって発生しうる各例外のタイプごとに1つのトラッ
プ・ベクトルがある。例外が発生すると、トラップ機構
は一時的にプログラム実行を中断し、プログラムから、
例外用の対応するトラップ・ベクトルにおける例外ハン
ドラに強制的に実行を移す。コンピュータはそこで例外
ハンドラを実行して訂正処理を行う。プログラムの実行
が割り込まれたアドレスや、コンピュータのレジスタの
現在の内容等のプログラムの実行に関する情報(プログ
ラム・コンテキスト)は通常、トラップが生成される時
にスタック・メモリに記憶される。プログラム・コンテ
キストを記憶すると、例外ハンドラの実行が完了した後
にプログラムの実行を再開することができる。特定の点
でプログラムの再開を可能にするこの種のプログラム割
込みは、厳密な割込みとして知られている。
【0011】テスト・分岐機構とトラップ機構は共に、
ソフトウェアの複雑さを増大させ、プログラムの実行速
度を低下させる欠点を有する。テスト・分岐機構では、
プログラマは、例外を発生させる可能性のある様々なデ
ータをテストし、適当な例外ハンドラに分岐させるため
に、例外を発生させる可能性のある各命令の前に、いく
つかの命令を挿入しなければならない。テスト・分岐命
令を挿入すると、プログラミング・タスクが複雑にな
り、プログラム・サイズが増大する。例外を発生させる
可能性のある命令がループ、又は他の繰り返しルーチン
内にある場合、テスト・分岐命令を追加すると、プログ
ラムの実行速度に重大な影響を及ぼす速度ペナルティが
ループの各反復で課される。
ソフトウェアの複雑さを増大させ、プログラムの実行速
度を低下させる欠点を有する。テスト・分岐機構では、
プログラマは、例外を発生させる可能性のある様々なデ
ータをテストし、適当な例外ハンドラに分岐させるため
に、例外を発生させる可能性のある各命令の前に、いく
つかの命令を挿入しなければならない。テスト・分岐命
令を挿入すると、プログラミング・タスクが複雑にな
り、プログラム・サイズが増大する。例外を発生させる
可能性のある命令がループ、又は他の繰り返しルーチン
内にある場合、テスト・分岐命令を追加すると、プログ
ラムの実行速度に重大な影響を及ぼす速度ペナルティが
ループの各反復で課される。
【0012】トラップ機構では、速度ペナルティが課さ
れるのは、例外が実際に例外命令によって生成された時
だけである。しかし、厳密な割込みによって時間遅延が
発生するので、速度ペナルティが一層顕著なものになる
ことがある。又、例外ハンドラのプログラミングは、特
に訂正処理が単にデフォルトの結果に置換するものであ
る時に、より複雑になる恐れがある。例外命令の結果は
通常、レジスタに記憶され、レジスタの内容はスタック
・メモリ内にプログラムのコンテキストと共に記憶され
るので、デフォルトの結果に置換するには、スタック・
メモリの正しい位置に置換結果を記憶する必要がある。
このことは、スタック・メモリを適切に処理するために
多くのプッシュ、及びポップ操作を行う必要がある。
れるのは、例外が実際に例外命令によって生成された時
だけである。しかし、厳密な割込みによって時間遅延が
発生するので、速度ペナルティが一層顕著なものになる
ことがある。又、例外ハンドラのプログラミングは、特
に訂正処理が単にデフォルトの結果に置換するものであ
る時に、より複雑になる恐れがある。例外命令の結果は
通常、レジスタに記憶され、レジスタの内容はスタック
・メモリ内にプログラムのコンテキストと共に記憶され
るので、デフォルトの結果に置換するには、スタック・
メモリの正しい位置に置換結果を記憶する必要がある。
このことは、スタック・メモリを適切に処理するために
多くのプッシュ、及びポップ操作を行う必要がある。
【0013】これらの機構は共に、命令の実行を並列、
又は同時に行うことによってプログラムをより高速に実
行するパイプライン化コンピュータ、及びベクトル化コ
ンピュータでも問題を起こす。パイプライン化コンピュ
ータでは、命令が組立ラインのように実行される。各命
令は一連のステージで実行され、様々な実行ステージに
おけるいくつかの命令が同時に実行される。例えば、い
くつかのパイプライン化コンピュータは、読取り、実
行、及び書込みの3つの主要ステージを使用する。各ス
テージは、多数の副ステージを有することもできる。読
取りステージでは、コンピュータによって、命令とその
オペランドがメモリ、又はレジスタから読み取られる。
実行ステージでは、命令に関する演算がオペランドに対
して実行される。書込みステージでは、演算の結果がフ
ォーマット化され、レジスタ、又はメモリ記憶域に転送
される。1つの命令の実行ステージが実行される時、一
般にその前の命令は書込みステージにあり、次の命令は
読取りステージにある。パイプライン化コンピュータで
は複数の命令を同時に実行できるので、プログラムは一
般に、非パイプライン化コンピュータよりかなり高速に
実行される。
又は同時に行うことによってプログラムをより高速に実
行するパイプライン化コンピュータ、及びベクトル化コ
ンピュータでも問題を起こす。パイプライン化コンピュ
ータでは、命令が組立ラインのように実行される。各命
令は一連のステージで実行され、様々な実行ステージに
おけるいくつかの命令が同時に実行される。例えば、い
くつかのパイプライン化コンピュータは、読取り、実
行、及び書込みの3つの主要ステージを使用する。各ス
テージは、多数の副ステージを有することもできる。読
取りステージでは、コンピュータによって、命令とその
オペランドがメモリ、又はレジスタから読み取られる。
実行ステージでは、命令に関する演算がオペランドに対
して実行される。書込みステージでは、演算の結果がフ
ォーマット化され、レジスタ、又はメモリ記憶域に転送
される。1つの命令の実行ステージが実行される時、一
般にその前の命令は書込みステージにあり、次の命令は
読取りステージにある。パイプライン化コンピュータで
は複数の命令を同時に実行できるので、プログラムは一
般に、非パイプライン化コンピュータよりかなり高速に
実行される。
【0014】パイプライン化コンピュータでは、プログ
ラムの命令が全て同時に実行されるわけではない。通常
は、命令間に何らかのデータ依存性があるためである。
例えば、第1の命令の結果が次の命令のオペランドとし
て使用される時、書込みハザード後の読取りとして知ら
れる状況が発生する。結果は、書き込みが終わるまで読
みとることができないので、次の命令を第1の命令と同
時に実行することはできない。次の命令の読取りステー
ジは、第1の命令の書込みステージの後に続かなければ
ならない。データ依存性は、プログラムのコンパイル時
に、可能なら命令の順序をシフトし、又はデータ依存命
令の間に空命令を挿入することによって無効にすること
ができる。実行時に、データ依存性に関してチェック
し、データ依存命令の間に空命令を挿入するハードウェ
アを使用することもできる。
ラムの命令が全て同時に実行されるわけではない。通常
は、命令間に何らかのデータ依存性があるためである。
例えば、第1の命令の結果が次の命令のオペランドとし
て使用される時、書込みハザード後の読取りとして知ら
れる状況が発生する。結果は、書き込みが終わるまで読
みとることができないので、次の命令を第1の命令と同
時に実行することはできない。次の命令の読取りステー
ジは、第1の命令の書込みステージの後に続かなければ
ならない。データ依存性は、プログラムのコンパイル時
に、可能なら命令の順序をシフトし、又はデータ依存命
令の間に空命令を挿入することによって無効にすること
ができる。実行時に、データ依存性に関してチェック
し、データ依存命令の間に空命令を挿入するハードウェ
アを使用することもできる。
【0015】テスト・分岐機構は、パイプライン化コン
ピュータでは本質的に同時命令実行を妨げる欠点があ
る。同時実行が抑制されるたびに、プログラムの実行速
度が低減される。分岐命令が実行されるまで、シーケン
ス内の次の命令、又はリモート命令の2つの命令のうち
どちらを次に実行すべきか分からない。従って、命令の
同時実行は不可能である。この欠点は、2つの命令のう
ちのどちらが条件付き枝分かれ命令の後に続くかを予測
して、予測された命令の同時実行を開始するハードウェ
アによって部分的に補うことができる。しかし予測が常
に正しいものであるとは限らない。予測が不正確なもの
である時、ハードウェアは不正確に予測された命令の実
行を取り消し、他の命令の実行を開始しなければならな
い。従って、分岐が正確に予測されない時に一層の速度
ペナルティが課される。このようにハードウェア機能を
追加すると、パイプライン化コンピュータのコスト、及
び複雑さを増大させる。
ピュータでは本質的に同時命令実行を妨げる欠点があ
る。同時実行が抑制されるたびに、プログラムの実行速
度が低減される。分岐命令が実行されるまで、シーケン
ス内の次の命令、又はリモート命令の2つの命令のうち
どちらを次に実行すべきか分からない。従って、命令の
同時実行は不可能である。この欠点は、2つの命令のう
ちのどちらが条件付き枝分かれ命令の後に続くかを予測
して、予測された命令の同時実行を開始するハードウェ
アによって部分的に補うことができる。しかし予測が常
に正しいものであるとは限らない。予測が不正確なもの
である時、ハードウェアは不正確に予測された命令の実
行を取り消し、他の命令の実行を開始しなければならな
い。従って、分岐が正確に予測されない時に一層の速度
ペナルティが課される。このようにハードウェア機能を
追加すると、パイプライン化コンピュータのコスト、及
び複雑さを増大させる。
【0016】トラップ機構も、同時処理への割り込み、
パイプライン化コンピュータのハードウェアの複雑さ、
及びコストを増大させる欠点を有する。トラップ機構
は、実行を例外ハンドラに移した後に首尾良くプログラ
ムの実行に戻るために、割込み時点でプログラムの実行
を再開できるように、例外命令までのプログラム実行の
状態が保持される「厳密な割込み」を実行しなければな
らない。パイプライン化コンピュータでは複数の命令を
同時に実行するので、例外命令の後に続くいくつかの命
令は様々な実行ステージにある。いくつかの命令はすで
に、コンピュータのレジスタ内のデータ、又は例外レジ
スタ内の状況ビットを修正している可能性がある。例外
命令が発生した時点でプログラムの実行を停止するため
には、トラップ機構が、同時に実行している他の命令の
パイプラインを「ドレイン」できなければならない。パ
イプラインをドレインするには、例外命令に続くどの他
の命令が実行されたかを再呼出しし、その命令の効果を
取り消す必要がある。パイプライン化命令に厳密に割り
込むことができるそのようなハードウェアは、複数の同
時命令を記憶し、かつ取り消すことができなければなら
ないので、より複雑でかつ高価である。
パイプライン化コンピュータのハードウェアの複雑さ、
及びコストを増大させる欠点を有する。トラップ機構
は、実行を例外ハンドラに移した後に首尾良くプログラ
ムの実行に戻るために、割込み時点でプログラムの実行
を再開できるように、例外命令までのプログラム実行の
状態が保持される「厳密な割込み」を実行しなければな
らない。パイプライン化コンピュータでは複数の命令を
同時に実行するので、例外命令の後に続くいくつかの命
令は様々な実行ステージにある。いくつかの命令はすで
に、コンピュータのレジスタ内のデータ、又は例外レジ
スタ内の状況ビットを修正している可能性がある。例外
命令が発生した時点でプログラムの実行を停止するため
には、トラップ機構が、同時に実行している他の命令の
パイプラインを「ドレイン」できなければならない。パ
イプラインをドレインするには、例外命令に続くどの他
の命令が実行されたかを再呼出しし、その命令の効果を
取り消す必要がある。パイプライン化命令に厳密に割り
込むことができるそのようなハードウェアは、複数の同
時命令を記憶し、かつ取り消すことができなければなら
ないので、より複雑でかつ高価である。
【0017】いくつかのパイプライン化コンピュータ
は、例外を発生させる可能性のある命令の後にバリア演
算命令を挿入することを要件にすることによって、トラ
ップ機構を簡略化している。バリア演算命令は、以後の
命令が例外を発生させる可能性のある命令と同時に実行
されるのを妨ぐことによって同時処理を抑制する。これ
によって事実上、命令パイプラインがドレインされ、ト
ラップ、又は例外ハンドラへの分岐が可能になる。バリ
ア演算命令機構の欠点は、例外を発生させる恐れがある
命令が実行されるたびに同時処理が抑制されることであ
る。
は、例外を発生させる可能性のある命令の後にバリア演
算命令を挿入することを要件にすることによって、トラ
ップ機構を簡略化している。バリア演算命令は、以後の
命令が例外を発生させる可能性のある命令と同時に実行
されるのを妨ぐことによって同時処理を抑制する。これ
によって事実上、命令パイプラインがドレインされ、ト
ラップ、又は例外ハンドラへの分岐が可能になる。バリ
ア演算命令機構の欠点は、例外を発生させる恐れがある
命令が実行されるたびに同時処理が抑制されることであ
る。
【0018】
【発明が解決しようとする課題】本発明は、従来技術の
これらの、及びその他の欠点を克服した例外回復方法、
及び装置を提供する。
これらの、及びその他の欠点を克服した例外回復方法、
及び装置を提供する。
【0019】
【課題を解決するための手段】本発明によれば、コンピ
ュータ(パイプライン化コンピュータであってよい)の
命令セットが、1つ、又は複数の指定された例外を発生
させる命令に応答してデフォルトの値に置換すること等
の簡単な訂正処理をもたらす1つ、又は複数の「フィッ
クス・アップ」命令を含めることによって拡張される。
ュータ(パイプライン化コンピュータであってよい)の
命令セットが、1つ、又は複数の指定された例外を発生
させる命令に応答してデフォルトの値に置換すること等
の簡単な訂正処理をもたらす1つ、又は複数の「フィッ
クス・アップ」命令を含めることによって拡張される。
【0020】本発明の一実施例では、例えば、パイプラ
イン化コンピュータの命令セット内に条件付き置換命令
が含められる。条件付き置換命令は、1つ、又は複数の
発生の可能性がある例外、デフォルト値、及び結果レジ
スタから成る1組を指定する。条件付き置換命令は、プ
ログラム内の、例外を発生させる可能性がある命令の後
に挿入され、その例外を発生させる可能性がある命令の
結果をデフォルト結果に置換することによってプログラ
ムの実行を継続することができる、例外を発生させる可
能性がある命令が実行された時に、指定された例外を発
生させる場合、条件付き置換命令は、結果レジスタに記
憶された例外命令の結果をデフォルト値に置換する。
イン化コンピュータの命令セット内に条件付き置換命令
が含められる。条件付き置換命令は、1つ、又は複数の
発生の可能性がある例外、デフォルト値、及び結果レジ
スタから成る1組を指定する。条件付き置換命令は、プ
ログラム内の、例外を発生させる可能性がある命令の後
に挿入され、その例外を発生させる可能性がある命令の
結果をデフォルト結果に置換することによってプログラ
ムの実行を継続することができる、例外を発生させる可
能性がある命令が実行された時に、指定された例外を発
生させる場合、条件付き置換命令は、結果レジスタに記
憶された例外命令の結果をデフォルト値に置換する。
【0021】フィックス・アップ命令は、例外を発生さ
せる可能性のある命令、及びその他の命令と共にパイプ
ライン方式で実行することができる。例外を発生させる
可能性のある命令が例外を発生させたかどうかは、命令
を実行した結果として例外レジスタに記憶される状況ビ
ットによって示される。例外を発生させる可能性のある
命令は、その書込みステージの間に例外レジスタに状況
ビットを記憶する。条件付き置換命令は、その書込みス
テージの間に例外レジスタに記憶された状況ビットに基
づいて、状況ビットが1つ、又は複数の指定された例外
が発生したことを示す場合に、指定されたデフォルト値
を結果レジスタに記憶するように働く。これによって、
例外を訂正する条件付き置換命令は、パイプライン化コ
ンピュータにおいて書込みハザード後の読取りを発生さ
せずに、例外命令のすぐ後に続くことができる。
せる可能性のある命令、及びその他の命令と共にパイプ
ライン方式で実行することができる。例外を発生させる
可能性のある命令が例外を発生させたかどうかは、命令
を実行した結果として例外レジスタに記憶される状況ビ
ットによって示される。例外を発生させる可能性のある
命令は、その書込みステージの間に例外レジスタに状況
ビットを記憶する。条件付き置換命令は、その書込みス
テージの間に例外レジスタに記憶された状況ビットに基
づいて、状況ビットが1つ、又は複数の指定された例外
が発生したことを示す場合に、指定されたデフォルト値
を結果レジスタに記憶するように働く。これによって、
例外を訂正する条件付き置換命令は、パイプライン化コ
ンピュータにおいて書込みハザード後の読取りを発生さ
せずに、例外命令のすぐ後に続くことができる。
【0022】本発明の代替実施例では、条件付き置換命
令は、1つ、又は複数の指定された例外を発生させる命
令の結果に置換すべき、デフォルト値を含む記憶テーブ
ルをロードする。この条件付き置換命令は、それが訂正
すべき、例外を発生させる可能性のあるあらゆる命令の
前に置かれる。機能ユニットによって実行された命令の
結果は、メモリ、又はレジスタに記憶される前に記憶テ
ーブルを通過するように経路指定される。命令が1つ、
又は複数の指定された例外を発生させた場合、命令の結
果を、メモリ、又はレジスタ記憶域への経路内で、記憶
されているデフォルト値に置換する。命令の実行結果と
して、指定された例外が発生しなかった場合、命令の結
果はメモリ、又はレジスタ記憶域への経路において維持
される。
令は、1つ、又は複数の指定された例外を発生させる命
令の結果に置換すべき、デフォルト値を含む記憶テーブ
ルをロードする。この条件付き置換命令は、それが訂正
すべき、例外を発生させる可能性のあるあらゆる命令の
前に置かれる。機能ユニットによって実行された命令の
結果は、メモリ、又はレジスタに記憶される前に記憶テ
ーブルを通過するように経路指定される。命令が1つ、
又は複数の指定された例外を発生させた場合、命令の結
果を、メモリ、又はレジスタ記憶域への経路内で、記憶
されているデフォルト値に置換する。命令の実行結果と
して、指定された例外が発生しなかった場合、命令の結
果はメモリ、又はレジスタ記憶域への経路において維持
される。
【0023】この代替実施例による条件付き置換命令
は、指定された同一の例外に関して同一のデフォルト値
に置換する必要がある任意の数の後続する命令に対して
1度だけ実行すればよいという利点を有する。例えば、
この条件付き置換命令を1度実行して、「ループ」ルー
チンで繰り返し実行される、例外を発生させる可能性の
ある命令の結果をデフォルト値に置換するセット・アッ
プを行うことができる。
は、指定された同一の例外に関して同一のデフォルト値
に置換する必要がある任意の数の後続する命令に対して
1度だけ実行すればよいという利点を有する。例えば、
この条件付き置換命令を1度実行して、「ループ」ルー
チンで繰り返し実行される、例外を発生させる可能性の
ある命令の結果をデフォルト値に置換するセット・アッ
プを行うことができる。
【0024】本発明の他の特徴、及び利点は、添付の図
面に関して行う好適実施例の以下の詳細な説明から明ら
かになろう。
面に関して行う好適実施例の以下の詳細な説明から明ら
かになろう。
【0025】
【実施例】図1を参照すると、本発明の好適実施例によ
るパイプライン化コンピュータ・システム20は、多重信
号システム・バス30によってメモリ24、及び周辺装置26
に接続された中央演算処理装置(CPU)22を備えている。
メモリ24は、動的ランダム・アクセス・メモリ・チップ
であることが好ましいが、読取り専用メモリ・チップ、
又はその他の電子メモリ装置でもよい。メモリ24は、コ
ンピュータ・システム20上で所望のタスク、又は計算を
実施する1つ、又は複数のプログラム用のデータ、及び
命令を記憶する。
るパイプライン化コンピュータ・システム20は、多重信
号システム・バス30によってメモリ24、及び周辺装置26
に接続された中央演算処理装置(CPU)22を備えている。
メモリ24は、動的ランダム・アクセス・メモリ・チップ
であることが好ましいが、読取り専用メモリ・チップ、
又はその他の電子メモリ装置でもよい。メモリ24は、コ
ンピュータ・システム20上で所望のタスク、又は計算を
実施する1つ、又は複数のプログラム用のデータ、及び
命令を記憶する。
【0026】図2を参照すると、CPU22はプログラムの
命令を実行して、所望のタスク、又は計算を完了させる
ように動作する。メモリ24に記憶されている命令は、CP
U22内の命令ユニット34に読み込まれる。バス・インタ
フェース回路36は、システム・バス30上でメモリ24から
データ、及び命令を読み取り、メモリ24に書き込むため
に必要な信号を生成する。命令ユニット34は、命令をデ
コードして、その命令を実行するために機能ユニット40
に命令する制御信号を生成する。
命令を実行して、所望のタスク、又は計算を完了させる
ように動作する。メモリ24に記憶されている命令は、CP
U22内の命令ユニット34に読み込まれる。バス・インタ
フェース回路36は、システム・バス30上でメモリ24から
データ、及び命令を読み取り、メモリ24に書き込むため
に必要な信号を生成する。命令ユニット34は、命令をデ
コードして、その命令を実行するために機能ユニット40
に命令する制御信号を生成する。
【0027】命令ユニット34は、所定の1組の命令
(「命令セット」)に応答し、機能ユニット40によって
命令を実行するのに必要な制御信号を形成するように構
成されている。命令セット内の複数の命令の中には、論
理演算命令、算術演算命令、及び浮動小数点演算命令が
ある。この命令セットは、メモリと1組の汎用レジスタ
46との間と、レジスタ同士の間でデータを転送するため
のデータ転送命令も備えている(汎用レジスタという用
語は、本明細書では、整数値、又は固定小数点値を記憶
するレジスタと、浮動小数点値を記憶するレジスタの両
方を指すために使用される)。本発明によれば、命令セ
ットは更に、例外に応答して訂正処理を行うための命令
を含んでおり、好ましくは以下で説明する条件付き置換
命令を含んでいる。
(「命令セット」)に応答し、機能ユニット40によって
命令を実行するのに必要な制御信号を形成するように構
成されている。命令セット内の複数の命令の中には、論
理演算命令、算術演算命令、及び浮動小数点演算命令が
ある。この命令セットは、メモリと1組の汎用レジスタ
46との間と、レジスタ同士の間でデータを転送するため
のデータ転送命令も備えている(汎用レジスタという用
語は、本明細書では、整数値、又は固定小数点値を記憶
するレジスタと、浮動小数点値を記憶するレジスタの両
方を指すために使用される)。本発明によれば、命令セ
ットは更に、例外に応答して訂正処理を行うための命令
を含んでおり、好ましくは以下で説明する条件付き置換
命令を含んでいる。
【0028】機能ユニット40は、命令ユニット34に命令
された通りに命令を実行するための演算を実行する。命
令ユニット40は、汎用レジスタ46から選択されたレジス
タから、演算で使用される1つ、又は2つのオペランド
を読み取るための2つの読取りポート50、52を備えてい
る。機能ユニット40は、汎用レジスタ46から選択された
レジスタに演算の結果を書き込むための書込みポート54
も備えている。機能ユニット40は又、演算の実行時に例
外が発生したことを示すために、例外データを例外レジ
スタ58に書き込む。機能ユニット40によって例外データ
を例外レジスタから読み取ることもできる。
された通りに命令を実行するための演算を実行する。命
令ユニット40は、汎用レジスタ46から選択されたレジス
タから、演算で使用される1つ、又は2つのオペランド
を読み取るための2つの読取りポート50、52を備えてい
る。機能ユニット40は、汎用レジスタ46から選択された
レジスタに演算の結果を書き込むための書込みポート54
も備えている。機能ユニット40は又、演算の実行時に例
外が発生したことを示すために、例外データを例外レジ
スタ58に書き込む。機能ユニット40によって例外データ
を例外レジスタから読み取ることもできる。
【0029】図5を参照すると、好適実施例のCPU22
は、メモリ24からパイプライン方式で命令を実行する。
図5に示すように、各命令は、読取りステージ、実行ス
テージ、及び書込みステージの3つのステージで実行さ
れ、各ステージが完了するには通常1クロック・サイク
ルを要する。本発明の他の実施例では、命令をいくつか
のステージで実行することができる。CPU22は各クロッ
ク・サイクル中に、3つの命令からなる3つの異なるス
テージを同時に実行することができる。例えば、ある命
令の実行ステージは、直前の命令の書込みステージ、及
び直後の命令の読取りステージと同時に実行することが
できる。パイプライン化命令実行では、CPU22が命令を
実行できる速度を増加させることができる。
は、メモリ24からパイプライン方式で命令を実行する。
図5に示すように、各命令は、読取りステージ、実行ス
テージ、及び書込みステージの3つのステージで実行さ
れ、各ステージが完了するには通常1クロック・サイク
ルを要する。本発明の他の実施例では、命令をいくつか
のステージで実行することができる。CPU22は各クロッ
ク・サイクル中に、3つの命令からなる3つの異なるス
テージを同時に実行することができる。例えば、ある命
令の実行ステージは、直前の命令の書込みステージ、及
び直後の命令の読取りステージと同時に実行することが
できる。パイプライン化命令実行では、CPU22が命令を
実行できる速度を増加させることができる。
【0030】図3、及び5を参照すると、CPU22で実行
可能な命令セット内のいくつかの命令は、例外を発生さ
せることがある。例えば、浮動小数点演算命令は、ゼロ
による除算、不正確、無効、桁溢れ、及び下位桁溢れの
例外を発生させる恐れがある。浮動小数点命令以外の命
令も例外を発生させることがある。例えば、データ転送
命令は無効アドレスに関する例外等の例外を発生させる
ことがある。一般に、命令を首尾良く完了できない時、
あるいは命令が不定の結果、又は無効な結果を生成する
時に例外が発生する。従って、命令の結果生成されるど
んなデータでも、次の命令で使用された場合にエラーを
発生させる可能性がある。
可能な命令セット内のいくつかの命令は、例外を発生さ
せることがある。例えば、浮動小数点演算命令は、ゼロ
による除算、不正確、無効、桁溢れ、及び下位桁溢れの
例外を発生させる恐れがある。浮動小数点命令以外の命
令も例外を発生させることがある。例えば、データ転送
命令は無効アドレスに関する例外等の例外を発生させる
ことがある。一般に、命令を首尾良く完了できない時、
あるいは命令が不定の結果、又は無効な結果を生成する
時に例外が発生する。従って、命令の結果生成されるど
んなデータでも、次の命令で使用された場合にエラーを
発生させる可能性がある。
【0031】一例として、浮動小数点除算命令68(図
5)は、除数オペランドがゼロである時、ゼロによる除
算例外を発生させる。図3に示すように、機能ユニット
40は浮動小数点除算命令68に応答して、命令ユニット34
(図2)によって、浮動小数点除算演算を実行するよう
に命令される。除算命令68の読取りステージ70(図5)
の間に、機能ユニット40は、除算命令68によって指定さ
れた汎用レジスタ46内の2つのレジスタ74、75(図3)
から2つの浮動小数点オペランド、即ち被除数オペラン
ドと、除数オペランドを読み取る。除算命令68の実行ス
テージ78(図5)で、機能ユニット40は、オペランドに
対して浮動小数点除算演算を実行して商の結果を生成す
る。除数オペランドがゼロである場合、浮動小数点除算
演算の結果は一般的に不定となる。従って、機能ユニッ
ト40はゼロによる除算例外も発生させる。機能ユニット
40は、除算命令を実行することによって発生するあらゆ
る例外を示すために、書込みステージ84(図5)の間に
例外レジスタ58(図3)に例外データを書き込む。ゼロ
による除算例外が発生したことは、例外レジスタ58の所
定の位置82に状況ビットをセットすることによって示さ
れることが好ましい。又、書込みステージ84(図5)の
間に、機能ユニット40は、演算の結果を適当な浮動小数
点数のフォーマットにして、除算命令で指定された汎用
レジスタ46内のレジスタ88(図3)にその結果を書き込
む。ゼロによる除算例外等の例外が発生した場合、機能
ユニット40によってレジスタ88に記憶される結果は無効
になり、以後の命令で使用された場合にエラーが発生す
る。
5)は、除数オペランドがゼロである時、ゼロによる除
算例外を発生させる。図3に示すように、機能ユニット
40は浮動小数点除算命令68に応答して、命令ユニット34
(図2)によって、浮動小数点除算演算を実行するよう
に命令される。除算命令68の読取りステージ70(図5)
の間に、機能ユニット40は、除算命令68によって指定さ
れた汎用レジスタ46内の2つのレジスタ74、75(図3)
から2つの浮動小数点オペランド、即ち被除数オペラン
ドと、除数オペランドを読み取る。除算命令68の実行ス
テージ78(図5)で、機能ユニット40は、オペランドに
対して浮動小数点除算演算を実行して商の結果を生成す
る。除数オペランドがゼロである場合、浮動小数点除算
演算の結果は一般的に不定となる。従って、機能ユニッ
ト40はゼロによる除算例外も発生させる。機能ユニット
40は、除算命令を実行することによって発生するあらゆ
る例外を示すために、書込みステージ84(図5)の間に
例外レジスタ58(図3)に例外データを書き込む。ゼロ
による除算例外が発生したことは、例外レジスタ58の所
定の位置82に状況ビットをセットすることによって示さ
れることが好ましい。又、書込みステージ84(図5)の
間に、機能ユニット40は、演算の結果を適当な浮動小数
点数のフォーマットにして、除算命令で指定された汎用
レジスタ46内のレジスタ88(図3)にその結果を書き込
む。ゼロによる除算例外等の例外が発生した場合、機能
ユニット40によってレジスタ88に記憶される結果は無効
になり、以後の命令で使用された場合にエラーが発生す
る。
【0032】図5を参照すると、コンピュータ・システ
ム20では、例外を予測してデフォルト結果との置換によ
って結果を訂正することができる命令を発生させる、例
外の後に実行される条件付き置換命令92を使用すること
によって例外から回復することが可能である。例えば、
浮動小数点除算命令68が関数sin(x)/xを計算する一連の
命令の一部である場合、除算命令がゼロによる除算例外
を発生させた時に、条件付き置換命令92が使用され、ゼ
ロであるxを関数にとって既知の値と置換することがで
きる(即ち1)。条件付き置換命令による既知のデフォ
ルト結果の置換を使用して、大きな負の数、又は正の数
との置換によって桁溢れ例外、及び下位桁溢れ例外を訂
正し、空白値(null)との置換によって無効アドレス例外
を訂正する等、様々な他の例外を訂正することができ
る。
ム20では、例外を予測してデフォルト結果との置換によ
って結果を訂正することができる命令を発生させる、例
外の後に実行される条件付き置換命令92を使用すること
によって例外から回復することが可能である。例えば、
浮動小数点除算命令68が関数sin(x)/xを計算する一連の
命令の一部である場合、除算命令がゼロによる除算例外
を発生させた時に、条件付き置換命令92が使用され、ゼ
ロであるxを関数にとって既知の値と置換することがで
きる(即ち1)。条件付き置換命令による既知のデフォ
ルト結果の置換を使用して、大きな負の数、又は正の数
との置換によって桁溢れ例外、及び下位桁溢れ例外を訂
正し、空白値(null)との置換によって無効アドレス例外
を訂正する等、様々な他の例外を訂正することができ
る。
【0033】図6を参照すると、条件付き置換命令92は
一般に、命令コード94と、宛先レジスタ指定子96と、送
信元レジスタ指定子98と、例外指定子100を備えてい
る。命令コードは、命令ユニット34への命令を条件付き
置換命令として識別する。命令ユニット34は、条件付き
置換命令に関する命令コードを含む命令を受け取ると、
条件付き置換命令を実行するように機能ユニット40に命
令する。例外指定子100は、デフォルト値、又は置換値
を送信元レジスタ指定子98によって識別されるレジスタ
から、宛先レジスタ指定子96によって識別されるレジス
タに書き込むことによって条件付き置換命令が訂正する
1つ、又は複数の例外を識別する。
一般に、命令コード94と、宛先レジスタ指定子96と、送
信元レジスタ指定子98と、例外指定子100を備えてい
る。命令コードは、命令ユニット34への命令を条件付き
置換命令として識別する。命令ユニット34は、条件付き
置換命令に関する命令コードを含む命令を受け取ると、
条件付き置換命令を実行するように機能ユニット40に命
令する。例外指定子100は、デフォルト値、又は置換値
を送信元レジスタ指定子98によって識別されるレジスタ
から、宛先レジスタ指定子96によって識別されるレジス
タに書き込むことによって条件付き置換命令が訂正する
1つ、又は複数の例外を識別する。
【0034】図4、及び5を参照すると、例えば、条件
付き置換命令92の実行における読取りステージ104で、
機能ユニット40は送信元レジスタ指定子98によって識別
されるレジスタ106からデフォルト結果を読み取る。例
外指定子100によって指定された1つ、又は複数の例外
を除算命令68が発生させたかどうかを検出するために、
例外レジスタ58内の例外データが読み取られる。しか
し、例外データは除算命令68の書込みステージ84まで例
外レジスタ58に書き込まれないので、条件付き置換命令
92の書込みステージで読み取られる。例外指定子によっ
て指定された1つ、又は複数の例外が除算命令68によっ
て発生した場合、機能ユニット40は宛先レジスタ指定子
96によって指定されたレジスタにデフォルト結果を書き
込む。通常、宛先レジスタ指定子96は、結果が、定義済
みのデフォルト値に訂正されるように、例外を発生させ
た命令の結果が書き込まれるのと同じレジスタ88を指定
する。
付き置換命令92の実行における読取りステージ104で、
機能ユニット40は送信元レジスタ指定子98によって識別
されるレジスタ106からデフォルト結果を読み取る。例
外指定子100によって指定された1つ、又は複数の例外
を除算命令68が発生させたかどうかを検出するために、
例外レジスタ58内の例外データが読み取られる。しか
し、例外データは除算命令68の書込みステージ84まで例
外レジスタ58に書き込まれないので、条件付き置換命令
92の書込みステージで読み取られる。例外指定子によっ
て指定された1つ、又は複数の例外が除算命令68によっ
て発生した場合、機能ユニット40は宛先レジスタ指定子
96によって指定されたレジスタにデフォルト結果を書き
込む。通常、宛先レジスタ指定子96は、結果が、定義済
みのデフォルト値に訂正されるように、例外を発生させ
た命令の結果が書き込まれるのと同じレジスタ88を指定
する。
【0035】再び図5を参照すると、条件付き置換命令
92は、結果が利用可能になるまでの待ち時間を最小限に
抑えられるように、命令パイプラインにおいて訂正すべ
き例外を発生する命令68のすぐ後に続くことが好まし
い。しかし、命令68と条件付き置換命令92の間にある全
ての命令が、例外レジスタ58内の例外データを修正した
り、レジスタ88に結果を書き込んだり、レジスタ88内の
結果を読み取ったりしない限り、例外を発生させる可能
性のある命令68の後にどれだけの数の命令を置いても、
その後に条件付き置換命令92を置くことができる。
92は、結果が利用可能になるまでの待ち時間を最小限に
抑えられるように、命令パイプラインにおいて訂正すべ
き例外を発生する命令68のすぐ後に続くことが好まし
い。しかし、命令68と条件付き置換命令92の間にある全
ての命令が、例外レジスタ58内の例外データを修正した
り、レジスタ88に結果を書き込んだり、レジスタ88内の
結果を読み取ったりしない限り、例外を発生させる可能
性のある命令68の後にどれだけの数の命令を置いても、
その後に条件付き置換命令92を置くことができる。
【0036】図2、及び6を参照すると、コンピュータ
・システム20で、例外を発生させる可能性のある全ての
命令は、例外データをレジスタに記憶して、例外が発生
したことを示すことができなければならない。例外を発
生させる可能性のある命令を、条件付き置換命令92と、
命令92が訂正すべき命令68の間に配置できるようにする
ために、追加例外レジスタ106(図2)がCPU22に提供さ
れる。例外を発生させる命令は、例外レジスタ58にデフ
ォルトとして記憶されるそれらの例外データを有する
か、又はそれらの例外データを記憶するための追加例外
レジスタ106の1つを指定しなければならない。追加例
外レジスタ106が提供されると、条件付き置換命令92は
更に、例外レジスタ指定子108を備える。条件付き置換
命令92と、命令92が訂正すべき例外を発生させる命令68
は共に、例外レジスタ指定子108によって同じ例外レジ
スタを指定しなければならない。その場合、他の例外レ
ジスタを使用して例外を示す命令は、条件付き置換命令
92と、条件付き置換命令92が訂正すべき命令68の間に置
くことができるが、命令68の例外データを修正しない。
・システム20で、例外を発生させる可能性のある全ての
命令は、例外データをレジスタに記憶して、例外が発生
したことを示すことができなければならない。例外を発
生させる可能性のある命令を、条件付き置換命令92と、
命令92が訂正すべき命令68の間に配置できるようにする
ために、追加例外レジスタ106(図2)がCPU22に提供さ
れる。例外を発生させる命令は、例外レジスタ58にデフ
ォルトとして記憶されるそれらの例外データを有する
か、又はそれらの例外データを記憶するための追加例外
レジスタ106の1つを指定しなければならない。追加例
外レジスタ106が提供されると、条件付き置換命令92は
更に、例外レジスタ指定子108を備える。条件付き置換
命令92と、命令92が訂正すべき例外を発生させる命令68
は共に、例外レジスタ指定子108によって同じ例外レジ
スタを指定しなければならない。その場合、他の例外レ
ジスタを使用して例外を示す命令は、条件付き置換命令
92と、条件付き置換命令92が訂正すべき命令68の間に置
くことができるが、命令68の例外データを修正しない。
【0037】再び図5を参照すると、例外を発生させる
可能性のある、ある種の命令は複数のタイプの例外を生
成することができる。その様々なタイプの例外のそれぞ
れの訂正が同じデフォルト結果での置換だけで済む時、
必要とされる条件付き置換命令は1つだけである。条件
付き置換命令は、条件付き置換命令の例外指定子100内
の同じ置換によって訂正できる全ての例外を指定するこ
とによって、指定した例外のどれかが発生した時に必要
な置換を行う。
可能性のある、ある種の命令は複数のタイプの例外を生
成することができる。その様々なタイプの例外のそれぞ
れの訂正が同じデフォルト結果での置換だけで済む時、
必要とされる条件付き置換命令は1つだけである。条件
付き置換命令は、条件付き置換命令の例外指定子100内
の同じ置換によって訂正できる全ての例外を指定するこ
とによって、指定した例外のどれかが発生した時に必要
な置換を行う。
【0038】例外を発生させる可能性のある命令が発生
する恐れのある例外を訂正するのに、別の置換が必要と
される時、例外を発生させる可能性のある命令の後のパ
イプラインの中に複数の条件付き置換命令を挿入しなけ
ればならない。各条件付き置換命令は、別の例外、又は
同じ置換によって訂正できる例外のグループを訂正す
る。各条件付き置換命令の実行は、パイプライン化コン
ピュータ・システムにおいて、他の命令と同じ時間を要
する。従って、条件付き置換命令をプログラムに追加す
ると、プログラムの実行時間が増大する。しかし、並列
処理が影響を受けないので、この時間の増大は一般に、
パイプライン化コンピュータでのテスト・分岐、又はト
ラップ機構によって発生する増大よりもずっと少ない。
する恐れのある例外を訂正するのに、別の置換が必要と
される時、例外を発生させる可能性のある命令の後のパ
イプラインの中に複数の条件付き置換命令を挿入しなけ
ればならない。各条件付き置換命令は、別の例外、又は
同じ置換によって訂正できる例外のグループを訂正す
る。各条件付き置換命令の実行は、パイプライン化コン
ピュータ・システムにおいて、他の命令と同じ時間を要
する。従って、条件付き置換命令をプログラムに追加す
ると、プログラムの実行時間が増大する。しかし、並列
処理が影響を受けないので、この時間の増大は一般に、
パイプライン化コンピュータでのテスト・分岐、又はト
ラップ機構によって発生する増大よりもずっと少ない。
【0039】図7を参照すると、本発明の他の実施例に
よる「ワイド」コンピュータ・システム120で、CPU122
は、複数の命令を同時に実行する複数の機能ユニット12
4、126を備えている。CPU122は、システム・バス132、
及びバス・インタフェース回路134を介してメモリ(図
示せず)から命令を受け取る命令ユニット130を備えて
いる。命令ユニット130は、例外回復用の条件付き置換
命令を含む所定の命令セットの命令に応答する。
よる「ワイド」コンピュータ・システム120で、CPU122
は、複数の命令を同時に実行する複数の機能ユニット12
4、126を備えている。CPU122は、システム・バス132、
及びバス・インタフェース回路134を介してメモリ(図
示せず)から命令を受け取る命令ユニット130を備えて
いる。命令ユニット130は、例外回復用の条件付き置換
命令を含む所定の命令セットの命令に応答する。
【0040】命令ユニット130は、命令を受け取ると、
同時に実行できる複数の命令をグルーピングする。命令
ユニット130は次いで、グルーピングされた命令を各機
能ユニットで同時に1つずつ実行するよう、機能ユニッ
ト124、126それぞれに命令するための別々の制御信号を
生成する。各機能ユニット124、126は、汎用レジスタ14
4からオペランドを読み取るための読取りポート138ない
し141と、オペランドに対して実行された演算の結果を
汎用レジスタ144のうちの1つに書き込むための書込み
ポート148、149を備えている。しかし、例外レジスタは
必要とされない。
同時に実行できる複数の命令をグルーピングする。命令
ユニット130は次いで、グルーピングされた命令を各機
能ユニットで同時に1つずつ実行するよう、機能ユニッ
ト124、126それぞれに命令するための別々の制御信号を
生成する。各機能ユニット124、126は、汎用レジスタ14
4からオペランドを読み取るための読取りポート138ない
し141と、オペランドに対して実行された演算の結果を
汎用レジスタ144のうちの1つに書き込むための書込み
ポート148、149を備えている。しかし、例外レジスタは
必要とされない。
【0041】ワイド・コンピュータ・システム120で
は、条件付き置換命令は、それが訂正すべき命令と同時
に実行される。例えば、機能ユニット126で条件付き置
換命令が実行されるのと同時に、機能ユニット124で除
算命令が実行されうる。除算命令の実行中に例外が発生
した場合、機能ユニット124は例外通知バス152を通し
て、例外の発生を機能ユニット126に通知する。例外が
発生しなかった場合、機能ユニット124は、汎用レジス
タ144のうちの指定されたレジスタ154に除算命令の結果
を書き込む。例外が発生した場合、機能ユニット126
は、例外を訂正する置換結果を、指定されたレジスタ15
4に書き込む優先権が与えられる。
は、条件付き置換命令は、それが訂正すべき命令と同時
に実行される。例えば、機能ユニット126で条件付き置
換命令が実行されるのと同時に、機能ユニット124で除
算命令が実行されうる。除算命令の実行中に例外が発生
した場合、機能ユニット124は例外通知バス152を通し
て、例外の発生を機能ユニット126に通知する。例外が
発生しなかった場合、機能ユニット124は、汎用レジス
タ144のうちの指定されたレジスタ154に除算命令の結果
を書き込む。例外が発生した場合、機能ユニット126
は、例外を訂正する置換結果を、指定されたレジスタ15
4に書き込む優先権が与えられる。
【0042】又、次に実行される命令グループ内の条件
付き置換命令によって使用される例外データを記憶する
ために、例外レジスタ、又はレジスタがワイド・コンピ
ュータ・システム120に提供されうる。
付き置換命令によって使用される例外データを記憶する
ために、例外レジスタ、又はレジスタがワイド・コンピ
ュータ・システム120に提供されうる。
【0043】図8を参照すると、本発明の第3の実施例
によるコンピュータ・システム170で、CPU172は、機能
ユニット180から汎用レジスタ182への命令結果の経路17
8に挿入されたマルチプレクサ174と記憶テーブル176を
備えている。CPU172は、システム・バス188、及びバス
・インタフェース回路190を介してメモリ(図示せず)
から命令を検索する命令ユニット186も備えている。命
令ユニット186は、条件付き置換命令を含む所定の命令
セットの命令に応答する。
によるコンピュータ・システム170で、CPU172は、機能
ユニット180から汎用レジスタ182への命令結果の経路17
8に挿入されたマルチプレクサ174と記憶テーブル176を
備えている。CPU172は、システム・バス188、及びバス
・インタフェース回路190を介してメモリ(図示せず)
から命令を検索する命令ユニット186も備えている。命
令ユニット186は、条件付き置換命令を含む所定の命令
セットの命令に応答する。
【0044】コンピュータ・システム170では、条件付
き置換命令は事前に、例外を発生させる命令の結果に関
するデフォルト値への置換をセット・アップする。これ
は、1つ、又は複数の例外の組に関するデフォルト値を
記憶テーブル176に記憶することによって行われる。記
憶テーブル176は、デフォルト値への置換によって訂正
できる各例外ごとに1つのエントリを複数備えることが
好ましい。条件付き置換命令は、送信元レジスタ指定子
と例外指定子を備えることが好ましく、送信元レジスタ
指定子によって指定された汎用レジスタ182のうちの1
つから得たデフォルト値を、例外指定子によって指定さ
れた例外に関連する記憶テーブル176のエントリに記憶
するようCPU172に命令する。この条件付き置換命令は一
般に、宛先レジスタ指定子を備えた条件付き置換命令92
(図6)と同じ形のものであり、例外レジスタ指定子は
省略される。
き置換命令は事前に、例外を発生させる命令の結果に関
するデフォルト値への置換をセット・アップする。これ
は、1つ、又は複数の例外の組に関するデフォルト値を
記憶テーブル176に記憶することによって行われる。記
憶テーブル176は、デフォルト値への置換によって訂正
できる各例外ごとに1つのエントリを複数備えることが
好ましい。条件付き置換命令は、送信元レジスタ指定子
と例外指定子を備えることが好ましく、送信元レジスタ
指定子によって指定された汎用レジスタ182のうちの1
つから得たデフォルト値を、例外指定子によって指定さ
れた例外に関連する記憶テーブル176のエントリに記憶
するようCPU172に命令する。この条件付き置換命令は一
般に、宛先レジスタ指定子を備えた条件付き置換命令92
(図6)と同じ形のものであり、例外レジスタ指定子は
省略される。
【0045】マルチプレクサ174は、機能ユニット180で
実行される命令の結果として出力ポート198にある値
と、記憶テーブル176から得られるデフォルト値のうち
一方を選択する。選択される値は、実行された命令が、
前の条件付き置換命令によってデフォルト値が記憶され
ているような、例外を発生させたかどうかに依存する。
そのような例外が発生しなかった場合、マルチプレクサ
174は、出力ポート198にある値を選択する。そのような
例外が発生した場合、マルチプレクサ174は、その例外
用のデフォルト値を記憶テーブル176から選択する。マ
ルチプレクサ174によって選択された値は、命令の結果
の宛先として、実行された命令によって指定された汎用
レジスタに記憶される。
実行される命令の結果として出力ポート198にある値
と、記憶テーブル176から得られるデフォルト値のうち
一方を選択する。選択される値は、実行された命令が、
前の条件付き置換命令によってデフォルト値が記憶され
ているような、例外を発生させたかどうかに依存する。
そのような例外が発生しなかった場合、マルチプレクサ
174は、出力ポート198にある値を選択する。そのような
例外が発生した場合、マルチプレクサ174は、その例外
用のデフォルト値を記憶テーブル176から選択する。マ
ルチプレクサ174によって選択された値は、命令の結果
の宛先として、実行された命令によって指定された汎用
レジスタに記憶される。
【0046】コンピュータ・システム170では、例外を
発生させる可能性のある多数の命令、又は例外を繰り返
し発生させる可能性のある命令に適用できる単一の条件
付き置換命令によって、例外回復用の条件付き置換をセ
ット・アップすることができる。例えば、値x = a1,
a2,...an(nは2よりも大きな整数である)の配列に関
する関数sin(x)/xを計算するプログラムでは、ゼロによ
る除算用の記憶テーブル176内のエントリにデフォルト
値の1をロードすることができる。xの各値ごとに繰り
返されるルーチン内で比率sin(x)/xを計算する除算命令
は、xの値がゼロである時にゼロによる除算例外を発生
させる。そのような除算命令がゼロによる除算例外を発
生させると、マルチプレクサ174は記憶テーブル176から
デフォルト値の1を選択して、命令の結果として記憶す
る。
発生させる可能性のある多数の命令、又は例外を繰り返
し発生させる可能性のある命令に適用できる単一の条件
付き置換命令によって、例外回復用の条件付き置換をセ
ット・アップすることができる。例えば、値x = a1,
a2,...an(nは2よりも大きな整数である)の配列に関
する関数sin(x)/xを計算するプログラムでは、ゼロによ
る除算用の記憶テーブル176内のエントリにデフォルト
値の1をロードすることができる。xの各値ごとに繰り
返されるルーチン内で比率sin(x)/xを計算する除算命令
は、xの値がゼロである時にゼロによる除算例外を発生
させる。そのような除算命令がゼロによる除算例外を発
生させると、マルチプレクサ174は記憶テーブル176から
デフォルト値の1を選択して、命令の結果として記憶す
る。
【0047】本発明の原理を好適実施例に関して説明
し、図示してきたが、そのような原理から逸脱すること
なく本発明の構成、及び細部を修正できることが認識さ
れよう。例えば、本発明は、第1の命令によってレジス
タに書き込まれたデータが、同時に実行している第2の
命令によって使用できるように、前記レジスタを通過し
てその読取りポートに送るようにするためのバイパス機
構を含むパイプライン化コンピュータ・システムにも適
用することができる。更に、条件付き置換命令は、置換
結果が結果レジスタに書き込まれる例外のどんな論理的
組合せも指定することができる。
し、図示してきたが、そのような原理から逸脱すること
なく本発明の構成、及び細部を修正できることが認識さ
れよう。例えば、本発明は、第1の命令によってレジス
タに書き込まれたデータが、同時に実行している第2の
命令によって使用できるように、前記レジスタを通過し
てその読取りポートに送るようにするためのバイパス機
構を含むパイプライン化コンピュータ・システムにも適
用することができる。更に、条件付き置換命令は、置換
結果が結果レジスタに書き込まれる例外のどんな論理的
組合せも指定することができる。
【0048】他の例として、複数の例外レジスタ(図4
中のレジスタ58)を持たない複数の命令に関する例外情
報のための記憶域を提供するために、そのレジスタの代
わりに、命令の結果が送られる汎用レジスタ106に例外
情報を記憶することができる。浮動小数点値用の汎用レ
ジスタの場合、レジスタに記憶される、例外を発生させ
た命令の結果は無効な値、又は「数字でない」(NaN)値
であることが多い。通常の浮動小数点値表現では、多数
の異なるビットの組合せでNaN値を表す。NaN値用のこれ
らのビットの組合せの幾つかを特定の例外に割り当てる
ことによって、例外を発生させた命令によって汎用レジ
スタに記憶される結果値を使用して、1つ、又は複数の
指定された例外が発生したことを示すことができる。
中のレジスタ58)を持たない複数の命令に関する例外情
報のための記憶域を提供するために、そのレジスタの代
わりに、命令の結果が送られる汎用レジスタ106に例外
情報を記憶することができる。浮動小数点値用の汎用レ
ジスタの場合、レジスタに記憶される、例外を発生させ
た命令の結果は無効な値、又は「数字でない」(NaN)値
であることが多い。通常の浮動小数点値表現では、多数
の異なるビットの組合せでNaN値を表す。NaN値用のこれ
らのビットの組合せの幾つかを特定の例外に割り当てる
ことによって、例外を発生させた命令によって汎用レジ
スタに記憶される結果値を使用して、1つ、又は複数の
指定された例外が発生したことを示すことができる。
【0049】整数値、又は固定小数点値用の汎用レジス
タの場合、一般に全てのビットの組合せを使用して有効
な値を表す。従って、例外情報を表すために使用できる
ビットの組合せはない。これらのレジスタが例外情報を
表せるようにするには、各レジスタ内に追加ビット用の
記憶域を提供しなければならない。
タの場合、一般に全てのビットの組合せを使用して有効
な値を表す。従って、例外情報を表すために使用できる
ビットの組合せはない。これらのレジスタが例外情報を
表せるようにするには、各レジスタ内に追加ビット用の
記憶域を提供しなければならない。
【0050】汎用レジスタに例外情報が記憶されていれ
ば、例外を発生させる可能性のある命令が、その例外情
報を記憶するための例外レジスタを指定する必要はな
い。各命令の例外情報は、命令がその結果を記憶するた
めに指定するのと同じ汎用レジスタ(又は、固定小数点
レジスタの場合は、このために提供される追加ビット記
憶域)にNaNビットの組合せの1つとして記憶される。
例外を発生させる可能性のあるそのような命令は、宛先
レジスタ指定子96、又は例外レジスタ指定子108のどち
らかによって結果(及び例外情報)の汎用レジスタを指
定する条件付き置換命令をその後に続ける(そして訂正
される)ことができる。
ば、例外を発生させる可能性のある命令が、その例外情
報を記憶するための例外レジスタを指定する必要はな
い。各命令の例外情報は、命令がその結果を記憶するた
めに指定するのと同じ汎用レジスタ(又は、固定小数点
レジスタの場合は、このために提供される追加ビット記
憶域)にNaNビットの組合せの1つとして記憶される。
例外を発生させる可能性のあるそのような命令は、宛先
レジスタ指定子96、又は例外レジスタ指定子108のどち
らかによって結果(及び例外情報)の汎用レジスタを指
定する条件付き置換命令をその後に続ける(そして訂正
される)ことができる。
【0051】本発明の原理を適用できるこれらの多数の
利用可能な実施例について見ると、詳細な実施例が例示
のためのものに過ぎず、本発明の範囲を制限するもので
はないことを認識すべきである。むしろ、特許請求の範
囲、及びそれらの同等物の範囲、及び意図に含まれる全
てのそのような実施例を本発明として主張する。
利用可能な実施例について見ると、詳細な実施例が例示
のためのものに過ぎず、本発明の範囲を制限するもので
はないことを認識すべきである。むしろ、特許請求の範
囲、及びそれらの同等物の範囲、及び意図に含まれる全
てのそのような実施例を本発明として主張する。
【0052】以下に本発明の実施態様を列挙する。
【0053】1. コンピュータ・システムにおいて、
データ、及び命令を記憶するためのメモリと、記憶され
ているデータを命令に従って処理するための中央演算処
理装置であって、その中央演算処理装置がデータ転送命
令、論理演算命令、及び条件付き置換命令を備える命令
セットの各々を実行するように動作する中央演算処理装
置と、中央演算処理装置によって実行された命令のオペ
ランド、及び結果を記憶するための複数の汎用レジスタ
を備え、中央演算処理装置が、条件付き置換命令に応答
して、前に実行された命令の結果、選択された例外が発
生した場合に、汎用レジスタから選択された結果レジス
タに置換結果を記憶するように動作することを特徴とす
るコンピュータ・システム。
データ、及び命令を記憶するためのメモリと、記憶され
ているデータを命令に従って処理するための中央演算処
理装置であって、その中央演算処理装置がデータ転送命
令、論理演算命令、及び条件付き置換命令を備える命令
セットの各々を実行するように動作する中央演算処理装
置と、中央演算処理装置によって実行された命令のオペ
ランド、及び結果を記憶するための複数の汎用レジスタ
を備え、中央演算処理装置が、条件付き置換命令に応答
して、前に実行された命令の結果、選択された例外が発
生した場合に、汎用レジスタから選択された結果レジス
タに置換結果を記憶するように動作することを特徴とす
るコンピュータ・システム。
【0054】2. 条件付き置換命令が、命令が、命令
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットからなる所定のシーケ
ンスを備える命令コードと、置換結果を示すための置換
結果指定子と、選択された例外を示すための例外指定子
を備えることを特徴とする項番1に記載のコンピュータ
・システム。
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットからなる所定のシーケ
ンスを備える命令コードと、置換結果を示すための置換
結果指定子と、選択された例外を示すための例外指定子
を備えることを特徴とする項番1に記載のコンピュータ
・システム。
【0055】3. 置換結果指定子が、置換結果を含む
汎用レジスタから選択された置換結果レジスタを示し、
それによって、置換結果が、置換結果指定子によって間
接的に示されることを特徴とする項番2に記載のコンピ
ュータ・システム。
汎用レジスタから選択された置換結果レジスタを示し、
それによって、置換結果が、置換結果指定子によって間
接的に示されることを特徴とする項番2に記載のコンピ
ュータ・システム。
【0056】4. 条件付き置換命令が更に、汎用レジ
スタのうちのどれが結果レジスタであるかを示すための
結果レジスタ指定子を備えることを特徴とする項番3に
記載のコンピュータ・システム。
スタのうちのどれが結果レジスタであるかを示すための
結果レジスタ指定子を備えることを特徴とする項番3に
記載のコンピュータ・システム。
【0057】5. 命令セットからの命令を中央演算処
理装置が実行することによって例外が発生したかどうか
を示す例外データを記憶するための例外レジスタを備
え、中央演算処理装置が、条件付き置換命令に応答し
て、例外レジスタに記憶されている例外データが、前に
実行された命令の結果、選択された例外が発生したこと
を示す場合に、結果レジスタに置換結果を記憶するよう
に動作することを更に含む項番1に記載のコンピュータ
・システム。
理装置が実行することによって例外が発生したかどうか
を示す例外データを記憶するための例外レジスタを備
え、中央演算処理装置が、条件付き置換命令に応答し
て、例外レジスタに記憶されている例外データが、前に
実行された命令の結果、選択された例外が発生したこと
を示す場合に、結果レジスタに置換結果を記憶するよう
に動作することを更に含む項番1に記載のコンピュータ
・システム。
【0058】6. 中央演算処理装置が命令セットから
の命令を実行した結果、1つ、又は複数の例外が発生し
たかどうかを示す例外データをそれぞれ記憶する複数の
例外レジスタを備え、中央演算処理装置が、条件付き置
換命令に応答して、例外レジスタの中から選択されたも
のに記憶されている例外データが、前の命令を実行した
結果、選択された例外が発生したことを示す場合に、汎
用レジスタから選択された結果レジスタに置換結果を記
憶するように動作することを更に含む項番1に記載のコ
ンピュータ・システム。
の命令を実行した結果、1つ、又は複数の例外が発生し
たかどうかを示す例外データをそれぞれ記憶する複数の
例外レジスタを備え、中央演算処理装置が、条件付き置
換命令に応答して、例外レジスタの中から選択されたも
のに記憶されている例外データが、前の命令を実行した
結果、選択された例外が発生したことを示す場合に、汎
用レジスタから選択された結果レジスタに置換結果を記
憶するように動作することを更に含む項番1に記載のコ
ンピュータ・システム。
【0059】7. 条件付き置換命令が、命令が、命令
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットの所定のシーケンスを
備える命令コードと、置換結果を示すための置換結果指
定子と、選択された例外を示すための例外指定子と、例
外レジスタのうちの選択された1つを示すための例外レ
ジスタ指定子を備えることを特徴とする項番6に記載の
コンピュータ・システム。
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットの所定のシーケンスを
備える命令コードと、置換結果を示すための置換結果指
定子と、選択された例外を示すための例外指定子と、例
外レジスタのうちの選択された1つを示すための例外レ
ジスタ指定子を備えることを特徴とする項番6に記載の
コンピュータ・システム。
【0060】8. 中央演算処理装置が、命令セットの
他の命令と同時にパイプライン方式で条件付き置換命令
を実行するように動作することを特徴とする項番1に記
載のコンピュータ・システム。
他の命令と同時にパイプライン方式で条件付き置換命令
を実行するように動作することを特徴とする項番1に記
載のコンピュータ・システム。
【0061】9. 中央演算処理装置が、条件付き置換
命令に応答して、前に実行された命令の結果、選択され
た複数の例外のうちの1つ、又は複数が発生した場合に
結果レジスタに置換結果を記憶するように動作すること
を特徴とする項番1に記載のコンピュータ・システム。
命令に応答して、前に実行された命令の結果、選択され
た複数の例外のうちの1つ、又は複数が発生した場合に
結果レジスタに置換結果を記憶するように動作すること
を特徴とする項番1に記載のコンピュータ・システム。
【0062】10. 条件付き置換命令が、命令が、命令
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットの所定のシーケンスを
備える命令コードと、置換結果を示すための置換結果指
定子と、選択された複数の例外を示すための例外条件指
定子を備えることを特徴とする項番9に記載のコンピュ
ータ・システム。
セットの命令のうちの条件付き置換命令であることを示
すための1つ、又は複数のビットの所定のシーケンスを
備える命令コードと、置換結果を示すための置換結果指
定子と、選択された複数の例外を示すための例外条件指
定子を備えることを特徴とする項番9に記載のコンピュ
ータ・システム。
【0063】11. コンピュータ・システムにおいて、
データ、及び命令を記憶するためのメモリと、データを
記憶するための1組の汎用レジスタと、命令をメモリか
ら読み取ってデコードするための命令ユニットと、汎用
レジスタに接続され、汎用レジスタから読み取られたオ
ペランドに対して演算を実行するための論理回路を有す
る機能ユニットを備え、命令ユニットが、命令に応答し
て、機能ユニットに、汎用レジスタから選択された1
つ、又は複数のオペランド・レジスタから読み取られた
1つ、又は複数のオペランドに対して演算を実行させ、
かつ汎用レジスタから選択された結果レジスタに演算の
結果を記憶させるように動作し、命令ユニットが更に、
条件付き置換命令に応答して、機能ユニットに、演算を
実行した結果、1つ、又は複数の選択された1組の例外
が発生した場合に、結果レジスタに置換結果を記憶させ
るように動作することを特徴とするコンピュータ・シス
テム。
データ、及び命令を記憶するためのメモリと、データを
記憶するための1組の汎用レジスタと、命令をメモリか
ら読み取ってデコードするための命令ユニットと、汎用
レジスタに接続され、汎用レジスタから読み取られたオ
ペランドに対して演算を実行するための論理回路を有す
る機能ユニットを備え、命令ユニットが、命令に応答し
て、機能ユニットに、汎用レジスタから選択された1
つ、又は複数のオペランド・レジスタから読み取られた
1つ、又は複数のオペランドに対して演算を実行させ、
かつ汎用レジスタから選択された結果レジスタに演算の
結果を記憶させるように動作し、命令ユニットが更に、
条件付き置換命令に応答して、機能ユニットに、演算を
実行した結果、1つ、又は複数の選択された1組の例外
が発生した場合に、結果レジスタに置換結果を記憶させ
るように動作することを特徴とするコンピュータ・シス
テム。
【0064】12. 命令に応答して、機能ユニットで演
算を実行したことによって発生した例外を示す例外デー
タを記憶するための例外レジスタを備え、命令ユニット
が、命令に応答して、機能ユニットに、汎用レジスタか
ら選択された1つ、又は複数のオペランド・レジスタか
ら読み取られた1つ、又は複数のオペランドに対して演
算を実行させ、汎用レジスタから選択された結果レジス
タに論理演算の結果を記憶させ、かつ演算を実行した結
果、1つ、又は複数の例外が発生したかどうかを示す例
外データを例外レジスタに記憶させるように動作し、命
令ユニットが更に、条件付き置換命令に応答して、機能
ユニットに、例外レジスタ内の例外データによって、選
択された1つ、又は複数の例外が発生したことが示され
た場合に、結果レジスタに置換結果を記憶させるように
動作することを更に含む項番11に記載のコンピュータ・
システム。
算を実行したことによって発生した例外を示す例外デー
タを記憶するための例外レジスタを備え、命令ユニット
が、命令に応答して、機能ユニットに、汎用レジスタか
ら選択された1つ、又は複数のオペランド・レジスタか
ら読み取られた1つ、又は複数のオペランドに対して演
算を実行させ、汎用レジスタから選択された結果レジス
タに論理演算の結果を記憶させ、かつ演算を実行した結
果、1つ、又は複数の例外が発生したかどうかを示す例
外データを例外レジスタに記憶させるように動作し、命
令ユニットが更に、条件付き置換命令に応答して、機能
ユニットに、例外レジスタ内の例外データによって、選
択された1つ、又は複数の例外が発生したことが示され
た場合に、結果レジスタに置換結果を記憶させるように
動作することを更に含む項番11に記載のコンピュータ・
システム。
【0065】13. それぞれ、汎用レジスタに接続さ
れ、汎用レジスタから読み取られたオペランドに対して
演算を実行するための論理回路を有する、複数の機能ユ
ニットを備え、命令ユニットが、条件付き置換命令を含
む命令グループに応答して、第1の機能ユニットに、汎
用レジスタから選択された1つ、又は複数のオペランド
・レジスタから読み取られた1つ、又は複数のオペラン
ドに対して演算を実行させ、かつ汎用レジスタから選択
された結果レジスタに演算の結果を記憶させるように動
作し、命令ユニットが更に、命令グループに応答して、
第2の機能ユニットに、第1の機能ユニットで演算を実
行した結果、1つ、又は複数の選択された例外が発生し
た場合に、結果レジスタに置換結果を記憶させるように
動作することを更に含む項番11に記載のコンピュータ・
システム。
れ、汎用レジスタから読み取られたオペランドに対して
演算を実行するための論理回路を有する、複数の機能ユ
ニットを備え、命令ユニットが、条件付き置換命令を含
む命令グループに応答して、第1の機能ユニットに、汎
用レジスタから選択された1つ、又は複数のオペランド
・レジスタから読み取られた1つ、又は複数のオペラン
ドに対して演算を実行させ、かつ汎用レジスタから選択
された結果レジスタに演算の結果を記憶させるように動
作し、命令ユニットが更に、命令グループに応答して、
第2の機能ユニットに、第1の機能ユニットで演算を実
行した結果、1つ、又は複数の選択された例外が発生し
た場合に、結果レジスタに置換結果を記憶させるように
動作することを更に含む項番11に記載のコンピュータ・
システム。
【0066】14. 置換結果を記憶するための1つ、又
は複数のエントリを有する記憶テーブルであって、条件
付き置換命令に応答して、選択された1組の命令に関す
る置換結果が記憶される記憶テーブルと、機能ユニット
と汎用レジスタの間に挿入されたマルチプレクサであっ
て、演算を実行して1つ、又は複数の選択された例外が
発生した場合に、結果レジスタに記憶される結果を置換
結果と置換するように動作するマルチプレクサを備える
ことを更に含む項番11に記載のコンピュータ・システ
ム。
は複数のエントリを有する記憶テーブルであって、条件
付き置換命令に応答して、選択された1組の命令に関す
る置換結果が記憶される記憶テーブルと、機能ユニット
と汎用レジスタの間に挿入されたマルチプレクサであっ
て、演算を実行して1つ、又は複数の選択された例外が
発生した場合に、結果レジスタに記憶される結果を置換
結果と置換するように動作するマルチプレクサを備える
ことを更に含む項番11に記載のコンピュータ・システ
ム。
【0067】15. コンピュータにおいて例外実行状態
から回復する方法であって、コンピュータで処理すべき
プログラムから、例外を発生させる可能性のある命令、
及び条件付き置換命令を得る方法と、例外を発生させる
可能性のある命令、及び条件付き置換命令を実行する方
法であって、例外を発生させる可能性のある命令は結果
を生成し、条件付き置換命令は置換結果を生成する上記
方法と、例外を発生させる可能性のある命令を実行した
ことによって例外が発生した場合に、その結果を置換結
果と置換する方法を含むことを特徴とする方法。
から回復する方法であって、コンピュータで処理すべき
プログラムから、例外を発生させる可能性のある命令、
及び条件付き置換命令を得る方法と、例外を発生させる
可能性のある命令、及び条件付き置換命令を実行する方
法であって、例外を発生させる可能性のある命令は結果
を生成し、条件付き置換命令は置換結果を生成する上記
方法と、例外を発生させる可能性のある命令を実行した
ことによって例外が発生した場合に、その結果を置換結
果と置換する方法を含むことを特徴とする方法。
【0068】16. 例外を発生させる可能性のある命令
の実行ステップと、条件付き置換命令の実行ステップが
並列処理されることを特徴とする項番15に記載の方法。
の実行ステップと、条件付き置換命令の実行ステップが
並列処理されることを特徴とする項番15に記載の方法。
【0069】17. 例外を発生させる可能性のある命令
を実行するステップが、例外を発生させる可能性のある
命令を実行したことによって1つ、又は複数の例外が発
生したかどうかを示す例外データをレジスタに記憶する
ことを更に含み、条件付き置換命令を実行するステップ
が、例外レジスタに記憶されている例外データに応じ
て、例外を発生させる可能性のある命令を実行した結
果、1つ、又は複数の指定された例外のうちの少なくと
も1つが発生したかどうかを判定することを含む項番15
に記載の方法。
を実行するステップが、例外を発生させる可能性のある
命令を実行したことによって1つ、又は複数の例外が発
生したかどうかを示す例外データをレジスタに記憶する
ことを更に含み、条件付き置換命令を実行するステップ
が、例外レジスタに記憶されている例外データに応じ
て、例外を発生させる可能性のある命令を実行した結
果、1つ、又は複数の指定された例外のうちの少なくと
も1つが発生したかどうかを判定することを含む項番15
に記載の方法。
【0070】18. 1つ、又は複数の指定された例外の
うちの少なくとも1つが発生したかどうかを判定するス
テップが、演算を実行するステップの後に行われること
を特徴とする項番17に記載の方法。
うちの少なくとも1つが発生したかどうかを判定するス
テップが、演算を実行するステップの後に行われること
を特徴とする項番17に記載の方法。
【0071】19. 複数の条件付き置換命令を実行する
方法であって、条件付き置換命令のそれぞれが置換結果
を生成して1つ、又は複数の例外を指定し、条件付き置
換命令を実行するステップが、各条件付き置換命令ごと
に、条件付き置換命令によって指定された1つ、又は複
数の例外のうちの少なくとも1つが、第1の命令を実行
した結果として発生したかどうかを判定することと、1
つ、又は複数の指定された例外のうちの少なくとも1つ
が発生したと判定された場合に、その結果と条件付き置
換命令によって生成された置換結果とを置換することを
更に含む項番15に記載の方法。
方法であって、条件付き置換命令のそれぞれが置換結果
を生成して1つ、又は複数の例外を指定し、条件付き置
換命令を実行するステップが、各条件付き置換命令ごと
に、条件付き置換命令によって指定された1つ、又は複
数の例外のうちの少なくとも1つが、第1の命令を実行
した結果として発生したかどうかを判定することと、1
つ、又は複数の指定された例外のうちの少なくとも1つ
が発生したと判定された場合に、その結果と条件付き置
換命令によって生成された置換結果とを置換することを
更に含む項番15に記載の方法。
【0072】20. 条件付き置換命令を実行するステッ
プが、例外を発生させる可能性のある命令を実行する前
に、記憶テーブルに置換結果を記憶することを含み、判
定のステップ、及び置換値を結果レジスタに記憶するス
テップが、演算を実行するステップの後に行われること
を特徴とする項番15に記載の方法。
プが、例外を発生させる可能性のある命令を実行する前
に、記憶テーブルに置換結果を記憶することを含み、判
定のステップ、及び置換値を結果レジスタに記憶するス
テップが、演算を実行するステップの後に行われること
を特徴とする項番15に記載の方法。
【0073】
【発明の効果】本発明によれば、コンピュータ(パイプ
ライン化コンピュータであってよい)の命令セットが、
1つ、又は複数の指定された例外を発生させる命令に応
答してデフォルトの値に置換すること等の簡単な訂正処
理が可能となる。又、例外を発生させる恐れがある命令
が実行されるたびに同時処理が抑制されることもない。
ライン化コンピュータであってよい)の命令セットが、
1つ、又は複数の指定された例外を発生させる命令に応
答してデフォルトの値に置換すること等の簡単な訂正処
理が可能となる。又、例外を発生させる恐れがある命令
が実行されるたびに同時処理が抑制されることもない。
【図1】本発明の好適実施例によるパイプライン化コン
ピュータ・システムの概略ブロック図である。
ピュータ・システムの概略ブロック図である。
【図2】図1のコンピュータ・システム内の中央演算処
理装置(CPU)の一部の概略ブロック図である。
理装置(CPU)の一部の概略ブロック図である。
【図3】浮動小数点除算命令を実行する図2のCPU内の
機能ユニットのデータ・フロー図である。
機能ユニットのデータ・フロー図である。
【図4】条件付き置換命令を実行する図2の機能ユニッ
トのデータ・フロー図である。
トのデータ・フロー図である。
【図5】図1のCPU内で浮動小数点除算命令と条件付き
置換命令のパイプライン化、及び同時実行を示すタイミ
ング図である。
置換命令のパイプライン化、及び同時実行を示すタイミ
ング図である。
【図6】図4に示した条件付き置換命令用のマシン・コ
ードの図である。
ードの図である。
【図7】本発明の他の実施例によるコンピュータ・シス
テム内のCPUの一部の概略ブロック図である。
テム内のCPUの一部の概略ブロック図である。
【図8】本発明の第3の実施例によるコンピュータ・シ
ステム内のCPUの一部の概略ブロック図である。
ステム内のCPUの一部の概略ブロック図である。
22 CPU(中央演算処理装置) 24 メモリ 34 命令ユニット 40 機能ユニット 46 汎用レジスタ 58 例外レジスタ 92 条件付き置換命令 94 命令コード 174 マルチプレクサ 176 記憶テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジーヴ・グプタ アメリカ合衆国カリフォルニア州94024ロ ス・アルトス,エコー・ドライヴ・1052
Claims (1)
- 【請求項1】コンピュータ・システムにおいて、 データ、及び命令を記憶するためのメモリと、 記憶されているデータを命令に従って処理するための中
央演算処理装置であって、その中央演算処理装置がデー
タ転送命令、論理演算命令、及び条件付き置換命令を備
える命令セットの各々を実行するように動作する中央演
算処理装置と、 中央演算処理装置によって実行された命令のオペラン
ド、及び結果を記憶するための複数の汎用レジスタを備
え、 中央演算処理装置が、条件付き置換命令に応答して、前
に実行された命令の結果、選択された例外が発生した場
合に、汎用レジスタから選択された結果レジスタに置換
結果を記憶するように動作することを特徴とするコンピ
ュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17383693A | 1993-12-23 | 1993-12-23 | |
US173836 | 1993-12-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07248897A true JPH07248897A (ja) | 1995-09-26 |
Family
ID=22633712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6318815A Pending JPH07248897A (ja) | 1993-12-23 | 1994-12-21 | コンピュータ・システムにおける例外からの回復方法、及びそのための装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5596733A (ja) |
JP (1) | JPH07248897A (ja) |
DE (1) | DE4434895C2 (ja) |
GB (1) | GB2285155B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213135B2 (en) | 2003-04-24 | 2007-05-01 | International Business Machines Corporation | Method using a dispatch flush in a simultaneous multithread processor to resolve exception conditions |
US7469407B2 (en) | 2003-04-24 | 2008-12-23 | International Business Machines Corporation | Method for resource balancing using dispatch flush in a simultaneous multithread processor |
CN102087852A (zh) * | 2009-11-30 | 2011-06-08 | 雅马哈株式会社 | 声谐振器和声室 |
JP2015501019A (ja) * | 2011-10-03 | 2015-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンピュータ・システム内のオペランド活性情報の維持 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694587A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | Specialized millicode instructions for test PSW validity, load with access test, and character translation assist |
US5907708A (en) * | 1996-06-03 | 1999-05-25 | Sun Microsystems, Inc. | System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof |
US5828890A (en) * | 1997-01-30 | 1998-10-27 | Northbrook Services | System for interrupting program operation when an out-of-range value is encountered to correct a data value |
US6654879B1 (en) | 1997-01-30 | 2003-11-25 | Northbrook Services | Method and apparatus for analyzing code for out-of-range data involving base and seed tables/lists |
US6216222B1 (en) * | 1998-05-14 | 2001-04-10 | Arm Limited | Handling exceptions in a pipelined data processing apparatus |
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
JP3320358B2 (ja) * | 1998-06-18 | 2002-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイル方法、例外処理方法、及びコンピュータ |
US6189093B1 (en) * | 1998-07-21 | 2001-02-13 | Lsi Logic Corporation | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register |
JP2001202243A (ja) * | 1999-04-30 | 2001-07-27 | Hitachi Ltd | データ処理装置 |
US6640315B1 (en) | 1999-06-26 | 2003-10-28 | Board Of Trustees Of The University Of Illinois | Method and apparatus for enhancing instruction level parallelism |
US6442707B1 (en) * | 1999-10-29 | 2002-08-27 | Advanced Micro Devices, Inc. | Alternate fault handler |
US6904543B2 (en) * | 1999-12-24 | 2005-06-07 | Denso Corporation | Electronic control having floating-point data check function |
US7100025B1 (en) * | 2000-01-28 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Apparatus and method for performing single-instruction multiple-data instructions |
US7133951B1 (en) * | 2000-02-29 | 2006-11-07 | Bourekas Philip A | Alternate set of registers to service critical interrupts and operating system traps |
DE10101949C1 (de) * | 2001-01-17 | 2002-08-08 | Infineon Technologies Ag | Datenverarbeitungsverfahren |
DE10108107A1 (de) * | 2001-02-21 | 2002-08-29 | Philips Corp Intellectual Pty | Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung |
US6865731B2 (en) * | 2001-05-30 | 2005-03-08 | International Business Machines Corporation | Method and computer program product for testing application program software |
US20070174383A1 (en) * | 2001-12-11 | 2007-07-26 | Open Invention Network Llc | System and method for effectively configuring a marketsite application integrator |
JP3900485B2 (ja) * | 2002-07-29 | 2007-04-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 最適化装置、コンパイラプログラム、最適化方法、及び記録媒体 |
US7921250B2 (en) * | 2004-07-29 | 2011-04-05 | International Business Machines Corporation | Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions |
CN101727619A (zh) * | 2008-10-20 | 2010-06-09 | 鸿富锦精密工业(深圳)有限公司 | 标准作业流程播放系统与方法 |
US8549269B2 (en) * | 2009-03-10 | 2013-10-01 | International Business Machines Corporation | Method, apparatus or software for processing exceptions produced by an application program |
CN102156661B (zh) * | 2010-02-11 | 2013-06-12 | 华为技术有限公司 | 在线补丁的激活方法、装置及系统 |
US20120173923A1 (en) * | 2010-12-31 | 2012-07-05 | International Business Machines Corporation | Accelerating the performance of mathematical functions in high performance computer systems |
US20180173527A1 (en) * | 2016-12-15 | 2018-06-21 | Optimum Semiconductor Technologies, Inc. | Floating point instruction format with embedded rounding rule |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60136872A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | ベクトル処理装置 |
JPS6280743A (ja) * | 1985-10-01 | 1987-04-14 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | アドレス変換例外処理方法 |
JPH0769783B2 (ja) * | 1987-11-16 | 1995-07-31 | 日本電気株式会社 | 例外処理方式 |
US4879676A (en) * | 1988-02-29 | 1989-11-07 | Mips Computer Systems, Inc. | Method and apparatus for precise floating point exceptions |
US4903264A (en) * | 1988-04-18 | 1990-02-20 | Motorola, Inc. | Method and apparatus for handling out of order exceptions in a pipelined data unit |
US4875160A (en) * | 1988-07-20 | 1989-10-17 | Digital Equipment Corporation | Method for implementing synchronous pipeline exception recovery |
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 |
JP2858140B2 (ja) * | 1988-10-19 | 1999-02-17 | アポロ・コンピューター・インコーポレーテッド | パイプラインプロセッサ装置および方法 |
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 |
US4985825A (en) * | 1989-02-03 | 1991-01-15 | Digital Equipment Corporation | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
US5075844A (en) * | 1989-05-24 | 1991-12-24 | Tandem Computers Incorporated | Paired instruction processor precise exception handling mechanism |
CA2045735A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Computer performance by eliminating branches |
GB2254715B (en) * | 1991-07-10 | 1995-02-22 | Kashinath Narayan Dandeker | A control switch based on the Boolean false=0/0 and the Boolean true=(not 0)/(not 0) |
-
1994
- 1994-09-29 DE DE4434895A patent/DE4434895C2/de not_active Expired - Fee Related
- 1994-12-15 GB GB9425332A patent/GB2285155B/en not_active Expired - Fee Related
- 1994-12-21 JP JP6318815A patent/JPH07248897A/ja active Pending
- 1994-12-22 US US08/361,874 patent/US5596733A/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213135B2 (en) | 2003-04-24 | 2007-05-01 | International Business Machines Corporation | Method using a dispatch flush in a simultaneous multithread processor to resolve exception conditions |
US7469407B2 (en) | 2003-04-24 | 2008-12-23 | International Business Machines Corporation | Method for resource balancing using dispatch flush in a simultaneous multithread processor |
CN102087852A (zh) * | 2009-11-30 | 2011-06-08 | 雅马哈株式会社 | 声谐振器和声室 |
JP2015501019A (ja) * | 2011-10-03 | 2015-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンピュータ・システム内のオペランド活性情報の維持 |
US10061588B2 (en) | 2011-10-03 | 2018-08-28 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
Also Published As
Publication number | Publication date |
---|---|
GB2285155B (en) | 1998-06-17 |
GB2285155A (en) | 1995-06-28 |
US5596733A (en) | 1997-01-21 |
DE4434895A1 (de) | 1995-06-29 |
DE4434895C2 (de) | 1998-12-24 |
GB9425332D0 (en) | 1995-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5596733A (en) | System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction | |
US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
EP0111776B1 (en) | Interrupt processor | |
US5467473A (en) | Out of order instruction load and store comparison | |
US7395417B2 (en) | Register file backup queue | |
JP2004145903A (ja) | スーパースケーラマイクロプロセサ | |
US6216222B1 (en) | Handling exceptions in a pipelined data processing apparatus | |
KR0133237B1 (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 | |
TWI220960B (en) | Locking source registers in a data processing apparatus | |
US6243786B1 (en) | Apparatus and method for generating an interrupt prohibited zone in pipelined data processors | |
JPH096612A (ja) | カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置 | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
EP1039376A1 (en) | Efficient sub-instruction emulation in a vliw processor | |
JP3146058B2 (ja) | 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法 | |
EP0212132A1 (en) | Method and digital computer for recovering from errors | |
US5673391A (en) | Hardware retry trap for millicoded processor | |
EP1208424A2 (en) | Apparatus and method for reducing register write traffic in processors with exception routines | |
EP0211487A1 (en) | Conditional operations in computers | |
US11157277B2 (en) | Data processing apparatus with respective banked registers for exception levels | |
JP2824484B2 (ja) | パイプライン処理計算機 | |
JPH04218841A (ja) | 割り込み処理方式 | |
JPH076038A (ja) | 情報処理装置 |