JP2846407B2 - 例外処理方法及び例外処理装置 - Google Patents

例外処理方法及び例外処理装置

Info

Publication number
JP2846407B2
JP2846407B2 JP2135138A JP13513890A JP2846407B2 JP 2846407 B2 JP2846407 B2 JP 2846407B2 JP 2135138 A JP2135138 A JP 2135138A JP 13513890 A JP13513890 A JP 13513890A JP 2846407 B2 JP2846407 B2 JP 2846407B2
Authority
JP
Japan
Prior art keywords
instruction
exception
pipeline
instructions
group
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.)
Expired - Lifetime
Application number
JP2135138A
Other languages
English (en)
Other versions
JPH03116236A (ja
Inventor
エル ジャーディーン ロバート
ジェイ リンチ シャノン
アール マネラ フィリップ
ダブリュー ホースト ロバート
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.)
TANDEMU KONPYUUTAAZU Inc
Original Assignee
TANDEMU KONPYUUTAAZU Inc
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 TANDEMU KONPYUUTAAZU Inc filed Critical TANDEMU KONPYUUTAAZU Inc
Publication of JPH03116236A publication Critical patent/JPH03116236A/ja
Application granted granted Critical
Publication of JP2846407B2 publication Critical patent/JP2846407B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明はデジタルコンピュータ、殊にデジタルコンピ
ュータにおける例外の処理の方法及び装置に関する。
従来の技術 デジタルコンピュータの設計における第1の目標はプ
ロセッサの処理能力、即ち単位時間あたりに処理される
命令数を高めることである。そのための一つのアプロー
チは、プロセッサのハードウェア設計を改良してマシン
サイクルタイムを少なくすることである。もう一つのア
プローチはマシンサイクルあたり一命令を処理するよう
に設計されたアーキテクチャと命令集合を開発すること
であった。以上のアプローチは共に順次サイクルあたり
せいぜい1命令しか発しないという基本的な処理方法の
ために、マシンサイクルあたりの最大処理能力が1命令
という論理的処理能力に限定されている。
サイクルあたり1命令以上の命令を発する方式が、
「CRISPマイクロプロセッサのハードウェアアーキテク
チャ」と題するディーツェル(Ditzel)他の論文(1098
ACM 0084−7495 87,309−319ページ)、及び「多重機
能ユニットプロセッサの性能を改善させるための命令発
行のアプローチ」と題するアコスタ(Acosta)他の論文
(IEEE Transactions on Computers,Vol.C−35,No.9,19
86年9月,815−828ページ)中に記述されている。
命令を並行して発することに対する制約は、命令群が
同一のマシンサイクル中に同一機能のプロセッサ装置の
使用を要求してはならないという点である。この制約は
プロセッサアーキテクチャ内に含まれる資源に関係し、
頻繁に使用される機能単位の追加的なコピーを設けるこ
とによって幾分除去することができる。
上記のアコスタ他による論文は、多重機能単位の存在
を利用するための並行命令発行のアプローチを提示して
いる。更に、上記論文中に述べられたCRISPアーキテク
チャによれば、もう一つの命令と並行して分岐命令を実
行することができる。更に、メインフレームにより、整
数と浮動小数点命令を種々の機能単位に並列して発行す
ることが可能であった。
然しながら、これら方法では全て、同時に発行された
命令が互いに依存関係にないことが必要である。依存関
係の種類は以下に詳説するが、一対の命令間の基本的依
存関係は、その対命令中の第2の命令が対命令中の第1
命令の実行によって生するデータを処理することであ
る。従って、第1の命令は第2の命令に先立って処理す
る必要がある。
かくして、これら現存のプロセッサはすこぶる少数の
命令の組合せしか同時に発することはできず、また実行
することもできない。分岐命令はメモリ照会が不要で新
たな1アドレスだけしか計算する必要のない特殊なケー
スである。同様にして、浮動小数点と整数命令はALU資
源しか必要とせず、メモリ照会を要しない。かくして、
命令相互間のデータ依存関係は存在しない。
上記制約に鑑みて、これらシステム中で並行に発行さ
れる命令の種類は極度に制限され、一定の限定された状
況では2個の命令を1クロックで発することが可能だと
はいえ、その平均処理能力は1命令あたり1クロックを
大きく上廻ることは不可能である。
本書において、『命令ファミリー』とは、1プログラ
ム内における順次命令のグループであって且つ1のクロ
ックの中で並行して発行することの可能な命令グループ
をいう。本発明において、その1ファミリー内に含ませ
ることの可能な命令の種類の数は、従来技術によるプロ
セッサ内に可能なものよりも相当に大きい。
本発明の場合、1クロック中に、例えばALUとメモリ
に照会する形式の命令を含む命令のファミリーを発する
ことができる。特定のパイプラインは、発行された命令
ファミリーの受領と処理を容易にする資源を含む。従っ
て、本発明は、1クロックあたり1命令を超える命令の
処理能力を提供するものである。
本発明によれば、ユニークな例外処理プロシージャに
よって単一の命令用に開発された例外プロシージャを活
用してシステムを単純化することができる。システム
は、1つのファミリーの実行中に、1つの例外の存在を
テストする。もし、例外が発見されたならば、そのファ
ミリーと関連するデータの書込みが禁止されて、システ
ムのマクロ状態を保存する。次に、ファミリー内の命令
は、存在する例外処理プロシージャが利用され得るよう
に、単独で発行される。
本発明のその他の特徴と利点は図面と以下の詳細な説
明により明らかとなる。
実施例 本発明の実施例となるプロセッサは、1サイクルあた
り2つ以上の命令を発するようには設計されていない現
存のプロセッサによって使用できるターゲット命令のセ
ットを実行できる。従って、本実施例のプロセッサは、
現存システムと下位互換性をもち、現存システム用に書
込まれたプログラムを実行することができる。然しなが
ら、以下に示すように、本発明のプロセッサシステムの
命令ファミリー(前記したように、1プログラム内にお
ける順次命令のグループであって且つ1つのクロックの
中で並行して発行することの可能な命令のグループ)の
並行処理能力によって、処理能力は劇的に向上する。
本発明の好ましい実施例では、マイクロプログラミン
グされたマシーンが用いられており、各オブジェクトも
しくはマクロ命令を実行する制御信号が、その命令にと
って固有のマイクロコードルーチンによって提供され
る。
ターゲット命令のセットから、対候補(PC)となる命
令の小セットが選択されて、2個の対候補(PC)の命令
ファミリーを並行実行するための特殊マイクロコードル
ーチンが制御メモリ内にストアされる。ここで、対候補
(以下、PCと略称する)とは、上記したように、ターゲ
ット命令セットから並行して実行できる対としてグルー
プ分けされた命令の小セットをいう。何れの命令がPCの
小セット内に含まれるかの選択は、アプリケーションプ
ログラム中の命令の発生頻度、命令並行処理の困難さ、
命令の並行処理に必要とされる資源を含む種々の要素に
依存する。これら特殊ルーチンは以下に述べる如く、プ
ロセッサ内の特殊資源に依存する。
然しながら、ただPC(対候補)のみから成るファミリ
ーの場合でさえ、もし資源の競合がが発生する場合に
は、並行処理は可能でない。従って、システムはこれら
の場合には並行処理を取消すことになる。実行装置はか
かる場合が頻繁に発生せず、また処理能力を大きく低下
させないように構成される。
本実施例に係るシステムは、ターゲット命令セットを
実行する非対動作プロセッサ(従来のプロセッサ)とオ
ブジェクトコード互換性がある。このため、非対動作マ
シーンにより実行される整列順のオブジェクトコードか
ら成るオブジェクトコードプログラムが、そのプログラ
ムへ何ら変更を加えないでも、本発明の対動作マシーン
によって実行できる必要がある。
従って、本実施例のシステムでは、プログラム内に整
列順の対の命令グループが、所定の条件が満たされる
と、同時に発行される。好ましい実施例において、これ
らの条件の発生は、命令のデコード時に発生されるステ
ータスビットにより指示される。
さて、図面について述べると、第1図は実施例のハイ
レベルブロックダイアグラムである。同じ符号は図面を
通じて同じ部分又は対応する部分を示す。
第1図において、フェッチ装置(FU)10は命令キャッ
シュ(IC)12と接続される。FU12は、アドレス状態マシ
ーンにより制御されるアドレス計算ハードウェアを含ん
でおり、通常のシーケンス動作中にアドレスを増分し、
条件分岐及びジャンプ命令についての分岐ターゲット
(BRANCH−TARG)アドレスを計算する。IC12の出力は、
命令待ち行列レジスタ(IQR)14、16に接続される。IQR
14及び16と、ランク0の第1及び第2のパイプラインレ
ジスタ(ROFとROS)20及び18は、直列に接続されて命令
待ち行列21を形成する。ROS18及びROF20の出力は、それ
ぞれ、ランク1の第2及び第1のパイプラインレジスタ
に接続され、また、第2デコード装置(DCS)24の入力
及び第1デコード装置DCF22の入力に接続されている。
2つのデコード装置DCS、DCFの出力は、それぞれ、第1
デコード出力(DCO)バス28及び第2デコード出力(DC
O)バス30によって対化論理装置(PLU)26のデータ入力
に接続されている。対化論理装置(以下、PLU)は、一
対のデコードした命令からのデコードの結果を調べて、
その2つの命令が一対として並行に発行されて実行され
得るかどうかを判定する機能を有する。上記デコード出
力バス28、30のステータスビットは、第1ステータスバ
ス32及び第2ステータスバス34によってPLU26の制御入
力に接続されている。PLU26は、併合デコードバス(MD
B)38によって実行装置(EU)36に接続されるデータ入
力と、フェッチ制御装置(FUC)バス40によってFU10に
接続されるフェッチ装置(FU)制御出力と、パイプライ
ン装置制御(PUC)バス42によってパイプライン装置(P
U)に接続されたパイプライン装置(PU)制御出力とを
有する。実行装置(EU)36には、後述のFlssue信号をア
サートする。
さて、以下に第1図のシステム動作を説明する。命令
ファミリー内の第1命令及び第2命令はそれぞれROF20
とROS18内にストアされる。これらの命令はそれぞれの
デコード装置22、24でデコードされ、デコード結果はそ
れぞれのDCOバス28、30上に出力される。第1のデコー
ド結果は第1の入口点フィールド(EPT F)と第1の
ステータスビットのセットを含み、第2のデコード結果
は、第2の入口点フィールド(EPT S)と第2のステ
ータスビットのセットを含む。各デコード結果における
ステータスビットは、それぞれの命令がPCであるかどう
か、またどの資源が命令を実行するに必要であるかを示
す。両方のデコード結果からのステータス情報はステー
タスバス32と34上のPLU制御ポートに送られる。
第1のステータスビットは、PCと呼ばれて、その命令
が対候補であるかどうかを示す。第2のステータスビッ
トは、EPTIssueと命名されて、マクロ命令が1個のクロ
ークだけしか必要としないか、多数のクロックを必要と
するかを示す。多数のクロックが必要な場合、次のクロ
ックの間に、後続の命令が発せられる。1個のクロック
だけしか必要としない場合、ROF20とROS18のデータは、
信号FIssueが生ずるまで、変化しない。この信号はFU1
0により受信され先読取り(プリフェッチ)が再開させ
る。その他のステータスビットは、命令がALUもしくは
メモリアドレス指定論理に対して実行を要求するかどう
かを示す。
PLU26の出力はステータス情報に依存し、次の3つの
可能性のうちの一つを出力する。先ず、もし第1の命令
がPCでなければ、第1の命令のデコード結果は併合デコ
ードバス(MDB)38上に出力されマイクロコードルーチ
ンをアクセスし第1の命令だけを単独に実行する。更
に、FUCライン40とPUCライン42上に発せられた信号によ
って次の単独の命令がIC12から読出され第1の命令(RO
F20内にストア)だけがPU25の次段に発せられる。その
ため、プロセッサの並行発行能力は使用されない。
第2に、もし第1命令と第2命令がPC(対候補)であ
って対化可能(並行発行及び実行が可能)であれば(即
ち、資源の競合が存在しなければ)第1命令と第2命令
のデコード結果は併合されてMDB38上に出力される。併
合されたデコード結果は、第1命令と第2命令を対にし
て実行するようにマイクロコードにアクセスする。更に
FUCライン40とPUCライン42上に発せられた信号によって
プログラム内の次の2つの命令がIC12から読出され、ラ
ンク0のレジスタ18、20内にストアされた一対の命令が
PU25の次のランク(ランク1)に発行される。
第3に、もし、第1命令がPC(対候補)であるが第1
命令と第2命令は対化不可能である場合(例えば資源競
合の場合)には、第1命令のデコード結果のサブフィー
ルドがMCB38上に出力され、第1命令を単独に実行する
ようにマイクロコードルーチンにアクセスする。更に、
FUCライン40及びPUCライン42上に発行された信号によっ
て次の単独命令がIC12から読取られ、第1命令のみがRO
FレジスタからPC25の次段のレジスタに発せられる。従
って、プロセッサの並行発行能力は使用されない。
本システムの動作は具体例を考察することによって最
もよく理解することができる。これらの具体例は、1つ
のスタックを、ALU動作のためのデータソース及びデー
タシンクとして利用するプロセッサについてのものであ
る。データは、メモリとスタックとの間でロード及びス
トア動作によって転送される。このスタックは、8個の
物理レジスタ(ランクR0−ランクR7)を含み、また、こ
の物理レジスタを指示する、スタックの上部に論理的に
割りふられたレジスタポインタ(RP)を含む。スタック
レジスタには、論理指示名A〜Hが付与され、これら
は、スタックの上部のレジスタをAとする、PR値によっ
て定められる。このタイプのプロセッサでは、データの
依存性が、スタックレジスタの競合によって特徴付けら
れる。もう一つのタイプの依存関係はRP競合である。命
令は全体としてRPを増分したり減分したりする。かくし
て、命令のファミリーはRPの変化に対して競合する要求
をもつことになる。
第2図と第3図は、2個の(一対)の命令ファミリー
を標準的なやり方で実行する間に生ずるスタックの構成
と本発明に従って並行に命令を実行するための1つのル
ーチンを掲げた図式的な図である。
第2図について述べると、2個の命令のLDI−LOADフ
ァミリーを順次単独実行する際のスタック形が示されて
いる。ここでLDIは、命令内に含まれる即値データを指
定の場所にロードする命令であり、LOADは、データを指
定のソースからレジスタへ転送する命令である。これら
命令は共にRPに対して定義されるHレジスタにデータを
書込む。LDI実行中に、即値データがレジスタH(ラン
ク0すなわちR0)に書込まれ、RPは増分されてレジスタ
HがR1(ランク1)に変化する。その後、LOADの実行中
にキャッシュデータがレジスタHに書込まれ、RPは再び
増分されてレジスタはR2に変化する。
第4図に示す標準的な3段のパイプライン12について
述べると、R3(ランク3)のパイプライン段中には、こ
れら命令はそれぞれデータをHレジスタに書込み、RPを
増分する。従って、並行処理は、これらレジスタとRPの
競合の影響を除去するため何ら特別の資源や手法なしに
は、可能にならない。
第5図に示す実施例で使用される比較的深度の高い6
段のパイプラインについて対の並行処理方法を解説す
る。対命令を並行処理するには、ロード命令のデータキ
ャッシュアドレスがランク2中に発生させられ、オペラ
ンドが取出され、キャッシュデータがレジスタG(R1)
に書込まれ、ランク3中において即値データがレジスタ
H(R0)に書込まれる。ランク4中においてRPは2だけ
増分されることによってR1はAと、R2はHと定義され
る。かくして、本発明のマイクロコードと資源によって
一対の命令が並行して発行され実行することが可能にな
る。
第3図について述べると、2個の命令のLDD−DADDフ
ァミリーを順次単独実行するためのスタック構成が描か
れている。ここで、LDDは、指定の場所の2ワード(ダ
ブルワード)をレジスタへロードする命令であり、DADD
は、2つのダブルワードを加算してその合計を得る命令
である。更に、第4図の3段パイプラインについて述べ
ると、LDDの実行中に、RPは増分されてレジスタAはR2
と定義されてOP2データの高次フィールド(H)がレジ
スタAに書込まれ、OR2データの低次フィールド(L)
がランク2中にレジスタH(R3)に書込まれる。最後
に、RPは再び増分されて、ランク3中にレジスタAはR3
と定義される。その後、DADDの実行中、レジスタC(R
1)及びレジスタA(R3)中のデータは合計されてC(R
1)に書込まれ、レジスタD(R0)とレジスタB(R2)
中のデータはランク2中に合計されてレジスタD(R0)
に書込まれ、RPはランク3中に2だけ減分される。
第4図の3段パイプラインについて述べると、もし対
命令が並行して実行される場合には、データの書込みと
合計はランク3中に行われるため、解決不能なデータの
競合が生ずることになる。RPの変更に対する要求条件が
競合するため、ランク3中に更なる競合が生ずることに
なろう。
第5図の6段パイプラインについて述べると、対命令
を並行実行するために、ランク3中にOP2データが、ラ
ンク3中にデータキャッシュから読出され、ランク4中
にレジスタA(R1)とB(R0)の内容が合計され、ラン
ク5中にその合計がレジスタA(R1)とB(R0)に書込
まれるとともに最初のOP2データがレジスタH(R2)と
G(R3)に書込まれる。かくして、解決不能なレジスタ
もしくはRPの競合は何ら生じない。
上記より,並行処理は、データをスタック内のレジス
タに書き込む前に、データへのアクセスを要求すること
が分かる。第6図は、その要求されるアクセスを容易に
するレジスタの構成を示した図である。第6図におい
て、レジスタファイル60は、4個の書き込みポートと4
個の読み出しポートを備え、ダブルワードを同時に転送
することができるようになっている。更に、バイパス回
路62と、バイパスパス64と、キャッシュデータ65a及び
即値データ65b間のワイドマルチプレクサ及び相互接続6
5と、ALU入力バス65cと、SBus65dとが、データのレジス
タファイル60への書き込みの前に、データの直接のアク
セスを可能にしている。従って、深いパイプライン構成
のマルチポートレジスタファイル60によって、マイクロ
コードは命令の多くの組合せをファミリーとして実行す
ることができる。
例えば、第3図に示す、LDD−DADDの対を実行する
際、ランク3においては、キャッシュデータは、レジス
タファイルへ書き込まれる前に、直接、データキャッシ
ュ66からCDHi67aとCDLo67bへ転送される一方、OP1−H
は、RegAからKHReg67cへ転送され、OP1−Lは、RegBか
らKLReg67dへ転送される。転送されたデータの和は、ラ
ンク4において、ALU68によって計算されて、ランク5
において、RegA及びRegBへ書き込まれる。更に、CDHi67
aとCDLo67b内のデータは、ランク5において、RegHとRe
gGへ書き込まれる。
例えば、ロード命令とロード即値命令を含むファミリ
ーは、1クロック中に発せられ処理することが可能であ
る。同様にロードと加算命令を含むファミリーが1クロ
ック中に発せられ処理することが可能である。
第7図は発明の実施例の対化論理装置26のアーキテク
チャを示す詳細なブロックダイアグラムである。デコー
ド装置(DCF:DCS)の入口は、ROF20とROS18の命令に応
答して第1入口点EPF及び第2入口点EPSを発生する第1
入口点テーブル(EPTF22)及び第2入口点テーブル(EP
TS24)である。
EPTF22及びEPTS24の出力は、それぞれ、第1DCOバス28
及び第2DCOバス30に接続されている。第1入口点(EP
F)ビットフィールドF<0:15>は、EPTF22から第1DCO
バス28へ転送され、第1入口点(EPS)ビットフィール
ドS<4:15>は、EPTS24から第2DCOバス30へ転送され
る。ビットフィールドF<1,2,14,15>は、第1ステー
タスバス32により対化論理部72に転送され、また、ビッ
トフィールドS<5,6,7,8>は、第2ステータスバス34
により対化論理部72に転送される。
ビットフィールドF<9:15>は、FLSBバス76によって
マルチプレクサ/論理装置(MLU)74の0側の入力へ転
送され、ピットフィールドS<9:15>は、SLSBバス78に
よりMLU74の1側の入力へ転送される。
ビットフィールドF<2:8>はMMSBバス80上に転送さ
れ、MLU74出力はMLSBバス82に転送される。MMSBとMLSB
バス80、82は併合されて併合EPT(MEPT)バス38のMSBと
LSB部分を形成する。MEPTはマイクロメモリ39からのマ
イクロコードをアクセスするために使用される。
対化論理部72は、FUCバス40上を転送されパイプライ
ンに対命令もしくは単一命令を発するように指令するPC
及びEPC信号を発生する。更に、非対のPC信号が、MLU74
の09入力に接続された、PCNPライン84上に転送され、ビ
ットF<2>は多重制御ライン86上をMLU74の制御入力
へ転送される。
第8図は、MEPT<2:15>によりアドレス指定されるマ
イクロメモリ39のメモリマップである。MEPTのMSBフィ
ールドは、F<2>がMSBである場合、常にF<2:8>に
等しい。MEPTのLSBフィールドは、MLU74の出力に等し
く、NPPCライン84及び多重制御ライン86上の信号に依存
する。全対候補PCのMSB,F<2>は、1の値を有し、非
対のPC全体について0の値を有する。
対候補ではない第1の命令の場合、MSB、F<2>は
0であり、マイクロコードアドレス(MEPT)はアドレス
空間92の上半分90内に配置される。対候補の第1の命令
の場合、MSB,F<2>は1である。マイクロコードアド
レス(MEPT)はアドレス空間の下半分94である。
MEPTを発生させるための第7図に示すシステムの動作
を、3つの場合、すなわち、第1の命令が対候補でない
場合、第1候補が対候補であるが第2命令と、対化され
ていない場合、および第1命令が対候補であって第2命
令と対化されている場合について次に説明する。
第1の命令が対候補でない場合、F<2>は0で、ML
U74の0入力はMLSBバス82に接続されるため、フィール
ドF<9:15>はMLSBバス82上を転送され、MEPTは、下式
1のようになる。
MEPT<2:15>=F<2:8>:F<9:15> 式1 そのため;MEPTはEPTFフィールドに等しくなる。このア
ドレスは第8図に示すアドレス空間92の上半分90内にあ
る。かくして、MEPTはこの場合マイクロコードにアクセ
スし、第1の命令を単独命令として実行する。
第1命令が対候補であるが第2の命令と対化可能でな
い場合には、F<2>は1で、NPPCライン84上の信号が
セットされる。この場合、MLU74はフィールド<0000000
>をMLSBバス82に転送し、MEPTは、 MEPT<2:15>=F<2:8>:<0000000> 式2 となる。そのため、MEPTはゼロ7個のストリングによっ
て伴われるEPTFのMSBフィールドに等しくなる。かくし
て、非対化対候補を実行するためのマイクロコードのア
ドレスは第8図に示すアドレス空間92の下半分94内に配
置される。
もし第1の命令が対候補であって対化される場合に
は、F<2>は1で、NPPCライン84上の信号はセットさ
れない。この場合MLU74フィールドS<9:15>とMLSBバ
ス82に転送し、MEPTは、 MEPT<2:15>=F<2:8>:S<9:15> 式3 となり、そのためMEPTはEPTSのLSBフィールドとEPTFのM
SBフィールドに等しくなる。第8図に示すように、これ
らのアドレスはアドレス空間内の非対化指令のアドレス
の後に来る。
対命令が発行された後、この発行された対命令の首尾
良い実行やリタイアを阻止する例外や分岐予測の誤りの
如き事実が発生することがある。以下はこれら事実の発
生と効率良く取組むためのユニークな例外処理と分岐手
段を説明したものである。
先ず、例外処理について参照すると、例外は、命令の
実行を阻害するプロセッサ内部の条件によって惹起され
る。かかる条件の例は、ALUタイプの命令についての演
算オーバフローやメモリ参照形式の命令についてのペー
ジフォルトを含むものである。
例外に遭遇する各命令について、ソフトウェア及び/
又はマイクロコードを含む特定の例外処理プロシージャ
が、単独で発行される命令のためにに開発されていた。
一般に、例外処理マイクロコードは、例外が存在しない
場合に同じ命令を実行するに必要とされるマイクロコー
ドと対比すると、とても複雑である。
第5図の第6段パイプラインについて説明すると、例
外条件が、パイプラインのランク4中で発生している。
例外は命令が対化される時に発生しているために、例外
処理に対するアプローチの一つは、それぞれの可能な対
命令ごとに、例外を処理するための特定のマイクロコー
ドをストアすることであろう。
然しながら、かかるアプローチは幾つかの欠点をもっ
ている。例外に遭遇した命令より前の命令は完了されね
ばならないために、第1の命令と関連するストア作業を
完了させるために複雑な調整コードが必要となり、その
一方で第2命令に関連するストア作業を阻止することが
必要とされるであろう。更に、2つ以上の例外に遭遇す
ることもあり得る。例えば、対命令(LOADとADD)は、L
OADに対してページフォルトに、ADDに対してオーバフロ
ー例外に遭遇することもあろう。更に、例外の組合せの
数は非常に多くなり、対の例外プロシージャをデバッグ
することが極めて困難である。
本発明の解決手段は、単独で発せられる、命令の例外
処理について既に存在する例外処理プロシージャを活用
するものである。対命令を実行するためのマイクロコー
ドは、パイプラインのランク4中に例外条件の存在をテ
ストすることによって例外を発見する。このプロシージ
ャは、第9図のフローチャート内に示されている。もし
例外が発見された場合には、非対化再始動プロシージャ
が呼出され対命令を打切り対内の第1命令を単独で発行
しなおす。
利用される現存の例外処理プロシージャにとっては、
プログラムが非対化命令マシーンにより実行中の場合に
発生したであろう内部マクロ状態を、該内部マクロ状態
に一致する単一の命令例外処理プロシージャに提示する
必要があった。
この一致したマクロ状態は、第10図のフローチャート
に示される非対化再始動プロシージャによって提供さ
れ、そのプロシージャは、例外がランク4内で発見され
ると、ランク5において生ずるロードとストアを禁止す
る段階を含んでいる。かくして、スタックレジスタの内
容は変化しないし、内部マクロ状態は、打切った対命令
の直前に位置する命令の実行から得られた状態である。
このマクロ状態は、プログラムが非対化命令マシーンに
より実行される場合に例外処理プロシージャに例示され
る状態と一致する。
ランク5のロードとストアを禁止する他に、非対化再
始動はパイプラインのレジスタをフラッシュし、その対
の第1命令を単独命令として再発行する。もし例外が第
1命令と関連したものであれば、その単独マイクロコー
ドは再び同じ例外に遭遇して、非対化命令マシーンの場
合の如く例外を処理することができる。
もしその例外が第2の命令と関連したものであれば、
第1の命令は条件なしに完了し、また第2の命令は再び
例外に遭遇することになろう。もし第2の命令がこの時
対になっていなければ、単独のマイクロコードが例外を
処理することになろう。もし対になっていれば、もう一
つの非対化再始動が行われることになる。
対になっていない再始動プロシージャは処理能力を低
めるが、例外発生の頻度が比較的少ないため、この不利
益は複雑度が著しく軽減されることに鑑みて受け入れる
ことができる。
第11A〜11G図は一対の命令が実行中に例外を処理する
ための種々のパイプライン段とプロシージャを示すもの
である。
第11A図において、パイプライン25は、命令サイドと
アドレスサイドとに分割されており、命令待ち行列21I
及びアドレス待ち行列21Aと、命令ランクレジスタセッ
ト25I及びアドレスランクレジスタセット25Aとを備えて
いる。更に、命令マルチプレクサ90Iとアドレスマルチ
プレクサ90Aとは、命令サイドのIQ2レジスタ及びIQ3レ
ジスタと、アドレスサイドのPQ2レジスタ及びPQ3レジス
タと、ランク5のレジスタ出力を、それぞれ、FU10のア
ドレス計算ハードウェアに選択的に接続する。第11B〜1
1G図において、イネーブルとなったバスとレジスタは太
線で示してある。
第11B図において、対の命令A+Bが発行可能態勢に
あり、命令サイドのランク0のレジスタ181と201とから
出力され、AとBのアドレスP(A),P(B)は、アド
レスサイドのランク0のレジスタ18Aと20Aとから出力さ
れる。命令のビットはDCOバス28、30上のEPTへ転送され
る。
第11C〜11F図はランク1からランク4の対命令の進行
を描いたものである。ランク4で、マイクロコードは、
演算オーバーフロービットもしくはページフォルトの設
定等の例外をテストする。もし何ら例外が検出されなけ
れば、対命令はランク5を通って、その後リタイアす
る。このテストは、例外ステータスビットを分岐条件ビ
ットとして利用するマイクロコード内の条件分岐によっ
て実行することができる。例えば、例外を示すビット
は、条件コードレジスタ内にストアされた演算オーバー
フロービットとすることができる。
第11G図は対化されていない再始動プロシージャを示
す。マイクロコードはアドレスマルチプレクサ90Aを制
御して命令Aのアドレス計算ハードウェアに転送する。
更に、対A+Bとそれらのアドレスは、命令サイド及び
アドレスサイドのランク1〜5のレジスタに、それぞれ
ロードされて、パイプラインのフラッシを開始する。
第11H図において、命令計算ハードウェアは、1C12か
ら命令Aをアクセスし、マイクロコードは、命令を命令
R0レジスタ20Iに、命令アドレスをアドレスR0レジスタ2
0Aに送るように、IQマルチプレクサを制御する。
第11I図は、命令Aとそのアドレスは、それぞれ、命
令ROF20IとアドレスROF20Aとに転送されたところを示
す。
第11J図は、命令Aが、単独ものとして、再発行され
たところを示す。
第11K図は、非対化再始動プロシージャを実行するた
めの制御システムのブロックダイヤグラムである。第11
K図について述べると、制御メモリの出力はMCR3レジス
タ100に接続され、MCR3レジスタ100は、MCR4レジスタ10
2とMCR5レジスタ104と組合せて、命令パイプライン25と
同期して動作するマイクロコードパイプラインを形成
し、そのパイプライン内の命令ファミリーを実行するの
に必要な制御信号を提供する。ランク4のマイクロコー
ドは、mビットのフィールドを含んでおり、ANDゲート1
06の第1の入力ボートに接続される。EU(実行装置)36
のALU108により発生された例外表示テストビットフィー
ルドは、ラッチ可能なMUX110の入力に接続されている。
MUX110の制御ボートは、ランク4のマイクロコードの制
御フィールド(nビット)に接続されており、MUX110の
出力は、ANDゲート106の第2入力ポートへ接続されてい
る。ANDゲート106の出力は、第1デコーダ(DECI)112
の入力へ接続される。DECIの出力は、例外条件が発見さ
れた場合、パイプラインをフラッシさせランク5の書込
み操作を禁止する制御信号である。
さて、第11K図に示すシステムの動作を説明する。ラ
ンク5のマイクロコードの制御フィールドによって、MU
X110は実行中の命令ファミリーについてテストされる特
定の例外表示テストビットを伝送することになる。もし
例外条件が発生したならば、伝送されたテストビットは
論理“1"となり、ANDゲート106は開き、mビットのラン
ク5のマイクロコードフィールドがデコードされて非対
化再始動プロシージャ実行のための制御信号が発生す
る。もし例外条件が発生していなければ、伝送されたテ
ストビットは論理“0"であり、ANDゲート106は閉じ、デ
コーダの出力は、非対化再始動プロシージャを実行させ
ることはない。
分岐命令処理のプロシージャが、以下に第12図と第13
図のフローチャートを参照して説明される。多くのパイ
プライン化されたシステムの如く、分岐予測RAM(Branc
h Prediction RAM:BPR)が含まれている。それぞれの分
岐命令について、BPR内の分岐予測ビット(BPB)の状態
は、それと関連する分岐命令が実効された最終時におけ
る分岐条件の値を示す。分岐条件ビットは、再び同一値
を有するものと仮定する。第12図について述べると、も
し分岐が行われないであろうとBPBが予測すると、アド
レスの昇順に先読出しが続けられる。分岐が行われると
予測されると、先読出しは、ターゲットアドレスのアド
レスが形成される間、停止される。このターゲットアド
レスが形成されると、先読出しはターゲットロケーショ
ンにおいて再開する。
第7図について上記したように、MEPT(Merged Entry
Point Table)は、対を成す第1命令と第2命令のビッ
トにより一義的に決定され、命令の順序を反映する、即
ち、MSBフィールドは第1命令のEPからのビットを含
み、LSBフィールドは第2命令のEPからのビットを含
む。この一義的なMEPTは、第1命令もしくは第2命令が
分岐命令であるかどうかを表示するマイクロコードにア
クセスする。
分岐条件はランク4で評価される。BPBは、一対の命
令と共にパイプIDビットとしてパイプライン内を移動
し、先に実行された命令によって設定された分岐条件ビ
ット(BCB)と比較される。もしBPBとBCB(分岐条件ビ
ット)がマッチすれば、パイプラインの内容は正しく、
正規の処理が続けられて、対命令はリタイアする。もし
PBPとBCBがマッチしなければ、パイプライン中のその後
の命令は正しくない分器回路が起こらなければならな
い。
さて、第13図について述べると、分岐回復の第1ステ
ップは、分岐命令が対内の第1命令であるか第2命令で
あるかどうかに依存する。上述の如く、マイクロコード
ルーチンは2つの場合について異なっている。もし予測
誤りした分岐命令が対の第1命令であれば、第2命令の
ランク5の蓄積は当該命令が第1の命令に次いで実行さ
れるべき命令ではないから禁止されるべきである。更
に、その後に続く命令は全てパイプラインからフラッシ
され、分岐に必要とされる更新は全てやり直される。
もし予測を誤った分岐命令が対の第2命令である場合
には、ランク5の対命令と関連する記憶が完了する。パ
イプラインの残りの段と先読出し待ち行列は以前通りフ
ラッシされる。
分岐の予測誤りの場合には、新たなアドレスを形成し
てプログラム内の分岐命令に続く正確な次の命令のロケ
ーションでも先読出しを再開する。
アドレスの計算し直しはBPBがBCBとマッチしない場合
だけ必要である。分岐予測は不正確であったため、分岐
命令に続くパイプライン内の命令は不正確である。その
ため、もしBPBが分岐が行われたということを表示すれ
ば、分岐命令に続くパイプライン内の命令のアドレスは
BRANCH−TARGである。然しながら、次の命令アドレスは
BRANCH+1でなければならない。同様にして、もしBPB
が分岐が行われないことを示せば、分岐命令に続くパイ
プライン内の命令のアドレスはBRANCH+1となる。然し
ながら、次の命令アドレスはBRANCH−TARGとなるべきで
ある。
テーブル1について述べると、第1列において、マイ
クロコードは、現在、パイプラインのレジスタR5I−F
内に常駐する対内の剤1命令が分岐命令であることを示
す。BPBが分岐で行われるであろうと予測誤りしたた
め、次の命令のアドレスは、BRANCH−TARGの代わりにBR
ANCH+1となるはずである。
第11A図に戻ると、今、R5P−F内に常駐する分岐命令
のアドレスは、アドレス側MUX90Aを介してFU10のアドレ
ス計算ハードウェアへ転送される。このアドレスは増分
されて読出される次の命令のアドレス、BRANCH+1を形
成する。
テーブル1に戻って、このテーブル1の第2列では、
マイクロコードは、第1命令が分岐命令であることを示
す。BPBは分岐が行われないであろうと予測誤りしたた
めに、次の命令のアドレスはBRANCH+1の代わりにBRAN
CH−TARGとならなければならない。
第11A図について述べると、現在、レジスタR5I−Fと
R5P−F内に常駐する分岐命令とそのアドレスは、それ
ぞれ命令サイドとアドレスサイドのMUX90Iと90Bを介し
てFU10のアドレス計算ハードウェアへ回送される。その
後、アドレス計算ハードウェアは、読み出されるべき次
の命令のアドレス、BARNCH−TARGを計算する。
第14図は、分岐予測のメカニズムを実施する制御シス
テムのブロックダイヤグラムである。第11K図について
説明した如く、制御メモリ39とMCR3レジスタ100とMCR4
レジスタ102とMCR5レジスタ104とが、接続される。制御
パイプラインの各ランクは、実行されている命令に関す
る一定の情報をストアするパイプID(PID)レジスタ120
を含んでいる。分岐予測RAM(BPR)122は、出力がPIDレ
ジスタ120に接続されて、分岐予測ビット(BPB)がパイ
プライン内を伝播し分岐命令が実行されるようになって
いる。ランク4のPIDレジスタ120内にストアされたBPB
は、コンパレータ124の第1入力に接続されており、条
件コードレジスタ(CCR)126内にストアされる分岐条件
ビット(BCB)またはALUから転送される分岐条件ビット
(BCB)が、マルチプレクサ(MUX)127を経由して、コ
ンパレータ124の第2入力に接続される。ランク4のマ
イクロコードのnビットフィールドは、ANDゲート128の
第1入力に接続され、コンパレータ124の出力はANDゲー
ト128の第2入力へ接続される。MUX127は、ランク4の
マイクロコードの制御フィールドにより制御される。AN
Dゲート128の出力はデコーダ(DECA)130の入力に接続
される。DECA130の出力は分岐予測機構を実行させる制
御信号である。
次に第14図に示すシステムの動作を4つの別々のケー
スについて説明する。最初の2つのケースは、BCBが、
先に実行された命令によって条件コードレジスタ126内
にセットされたビットである場合の条件分岐命令に関す
るものである。この2つのケースは、前記の先に実行さ
れた命令が、先に実行されたファミリーに含まれるか、
もしくは分岐命令を含む現在のファミリー内に含まれる
かどうかによって区別される。
第2の2つのケースは、BCBが、先に実行された命令
によりレジスタファイル(例えばRegA)内にストアされ
たデータを用いてALUによって計算される場合の条件分
岐命令に関する。これら2つのケースは、先の命令が現
在ファミリー内に含まれるかどうかによって識別され
る。第1のケースでは、条件コードレジスタ126内のBCB
は、既に、先の命令の実行中にセットされている。もし
BCBとPID120からのBPBがマッチしなければ、分岐は予測
誤りされたものであり、コンパレータ124の出力がANDゲ
ート128を開く。その後、nビットのランク4のマイク
ロコードフィールドが、DECA130へ移され、分岐予測メ
カニズムを実行するのに必要な制御信号を発生する。上
記の如く、nビットフィールドは、ファミリー内の分岐
命令の位置を示し、従って、デコーダの出力は、その位
置に依存して異なることになろう。
もしBCBとBPBがマッチすれば、コンパレータ124の出
力はANDゲート128を閉じ、分岐回復メカニズムを実行さ
せる制御信号は、パイプラインの内容は正確であるの
で、発生されない。
もし、BCBが、現在ファミリー内の命令により書込ま
れる条件コードレジスタ126からのビットであれば、BCB
ビットは、レジスタファイルに書込まれる前に、コンパ
レータ124に提供されなければならに。ムウー127は、ラ
ンク4中に、ALUの出力を直接コンパレータ124へ提供す
るように制御されて、その後、BCBが、ランク4中に条
件コードレジスタに書込まれる。
もしBCBがALUにより計算され且つレジスタデータが先
のファミリー内の命令によって書込まれたならば、レジ
スタデータはALUに転送され、ALU出力はMUX127を介して
コンパレータ124へ転送される。
もしレジスタデータが現在ファミリー内の命令によっ
て発生させられたら、データは、レジスタファイルに書
込まれる前に、第6図について述べたハードウェアを利
用してALUに提供され、また、ALU出力は、ランク4中に
MUXを介してコンパレータ124へ転送される。その後同デ
ータはランク5中にレジスタファイルに書込まれる。
以上、本発明を2個の命令を並行実行するシステムに
ついて述べてきたが、本発明の原理は2個以上の命令フ
ァミリーについても等しく適用可能である。その場合、
対化論理は2個以上のステータスフィールドに応ずるよ
うに修正され、そのファミリを並行実行するために特別
のマイクロコードルーチンが書込まれることになる。
更に、マイクロコードプロセッサについて説明してき
たが、本発明に係るシステムは、論理アレイを用いて制
御信号を発生させるマシーンにも適用することができ
る。両システムとも一定状況において利点をもち、その
選択は本発明の実施にとって重要な問題ではない。更
に、レジスタタック以外のレジスタ構成を使用すること
もできる。
第7図を参照して説明したステータスビットは、対化
論理によって、命令ファミリーのEP(エントリポイン
ト)を併合すべきかどうかを定めるのに使用される。代
替例として、EPは常に併合されるものとすることもで
き、その場合、アクセスしたマイクロコードが、命令フ
ァミリーが並行して発行されることを制御することにな
ろう。
更に、並行に発行され得るターゲット命令の小セット
の選択は必須ではない。マイクロコードルーチンは、タ
ーゲット命令のセットからあらゆる可能な対の命令のた
めに、提供され得る。
かくして、本発明は望ましい実施例について説明した
が、その置換、変形は当業者にとって明らかであろう。
従ってそれは特許請求の範囲に提示されるものを除いて
は本発明を限定するものと考えるべきではない。
【図面の簡単な説明】
第1図は、本発明のハイレベルのブロック図である。 第2図は、第1の対命令を順次並行処理する特殊例を示
す図である。 第3図は、第2の対命令を順次並行処理する特殊例を示
す図である。 第4図は、従来技術による3段パイプラインのブロック
線図である。 第5図は、本発明の実施例に係る6段パイプラインの線
図である。 第6図は、バイパス回路を備えるマルチポートレジスタ
ファイルのブロック図である。 第7図は、本発明の実施例に係る対化論理装置のブロッ
ク図である。 第8図は、本発明の実施例に使用されるマイクロメモリ
のメモリマップを示す図である。 第9図は、本発明の例外処理プロシージャのフローチャ
ートである。 第10図は、本発明の非対再開始プロシージャのフローチ
ャートである。 第11A図〜11J図は、本発明の例外・分岐処理プロシージ
ャに関するパイプライン段を示すブロック図である。 第11K図は、例外処理制御システムのブロック図であ
る。 第12図は、本発明の分岐プロシージャのフローチャート
である。 第13図は、分岐予測誤りを処理するプロシージャのフロ
ーチャートである。 第14図は、分岐予測制御システムのブロック図である。 10……読出し(フェッチ)装置、 12……内部キャッシュ(IC) 14,16……命令待ち行列レジスタ、 18,19……パイプラインレジスタ、 22,24……デコード装置、 26……対化論理装置(PLU)、 28,30……デコード出力バス、 32,34……ステータスバス、 36……実行装置、 38……併合デコードバス。
フロントページの続き (72)発明者 フィリップ アール マネラ アメリカ合衆国 カリフォルニア州 94062 レッドウッド シティ アイリ ス ストリート 406 (72)発明者 ロバート ダブリュー ホースト アメリカ合衆国 イリノイ州 61821 シャンペイン ロブソン パーク ドラ イヴ 2804 (56)参考文献 特開 平2−47725(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】1クロックの間に1つの命令グループを発
    する構成のデータプロセッサであって、メモリの基準値
    を計算してALU動作を行う第1のステージとデータを書
    き込む第2のステージとを含む、いくつかのステージに
    おいて命令を実行するパイプラインを含んでおり、1個
    の命令の実行に関連する例外を処理する例外処理プロシ
    ージャを有するデータプロセッサ中において、1クロッ
    クの間に発した命令グループの実行中に生じる1つの例
    外を処理する例外処理プロシージャが、次のステップ: 前記パイプラインの第1ステージにおいて、命令グルー
    プ中の1つの命令に関連する1つの例外がその命令グル
    ープの実行中に生じたことを示す表示を発生し、 例外の発生を検出するように、前記表示の存在のテスト
    を行い、 前記パイプラインの第2ステージの間において、前記命
    令グループの実行に関連するデータの書き込みを禁止
    し、 前記パイプラインの全ステージから命令をフラッシュ
    し、 前記命令グループ内の第1の命令を単独で実行されるよ
    うに再発行し、これにより、該第1命令が例外に遭遇す
    るときに現在の例外処理プロシージャがその例外を処理
    するように利用される ことを含むことを特徴とする例外処理方法。
  2. 【請求項2】請求項1に記載の方法において、前記テス
    トステップは、オーバフロービットがALU命令に関連し
    た演算オーバフロー例外を表示するようにセットされた
    かどうかを判定するステップを含むことを特徴とする方
    法。
  3. 【請求項3】請求項1に記載の方法において、前記テス
    トステップは、ページフォルトビットがメモリ参照命令
    に関連したページフォルト例外を表示するようにセット
    されたかどうかを判定するステップを含むことを特徴と
    する方法。
  4. 【請求項4】請求項1に記載の方法において、前記第1
    命令再発行ステップは、 前記命令グループの各命令のアドレスを格納するステッ
    プと、 前記第1命令の前記格納したアドレスを用いて前記命令
    グループ内の第1命令に単独にアクセスするステップ
    と、 前記第1命令を再発行するステップと から成ることを特徴とする方法。
  5. 【請求項5】1クロックの間に1命令グループを発する
    構成のデータ処理装置であって、メモリの基準値を計算
    してALU動作を行う第1のステージとデータを書き込む
    第2のステージとを含む、いくつかのステージにおいて
    命令を実行するパイプラインを含んでおり、1個の命令
    の実行に関連する例外を処理する例外処理プロシージャ
    を有するデータ処理装置中において、1クロックの間に
    発した命令グループの実行中に生じる1つの例外を処理
    する例外処理装置が、 前記パイプラインの第1ステージにおいて、命令グルー
    プ中の1つの命令に関連する1つの例外がその命令グル
    ープの実行中に生じたことを示す表示を発生する手段
    と、 例外の発生を検出するように、前記表示の存在のテスト
    を行う手段と、 前記パイプラインの第2ステージの間において、前記命
    令グループの実行に関連するデータの書き込みを禁止す
    る手段と、 前記パイプラインの全ステージから命令をフラッシュす
    る手段と、 前記命令グループ内の第1の命令を単独で実行されるよ
    うに再発行する手段であって、これにより、該第1命令
    が例外に遭遇するときに現在の例外処理プロシージャが
    その例外を処理するように利用されるようにする再発行
    手段とを含むことを特徴とする例外処理装置。
  6. 【請求項6】請求項5に記載の装置において、前記テス
    トを行う手段は、オーバフロービットがALU命令に関連
    した演算オーバフロー例外を表示するようにセットされ
    たかをどうかをテストする手段を含むことを特徴とする
    装置。
  7. 【請求項7】請求項5に記載の装置において、前記テス
    トを行う手段は、ページフォルトビットがメモリ参照命
    令に関連したページフォルト例外を表示するようにセッ
    トされたかどうかをテストする手段を含むことを特徴と
    する装置。
  8. 【請求項8】請求項5記載の装置において、前記第1命
    令の再発行手段は、 前記命令グループの各命令のアドレスを格納する手段
    と、 前記第1命令の前記格納したアドレスを用いて前記命令
    グループ内の第1命令に単独にアクセスする手段と、 前記第1命令を再発行する手段と から成ることを特徴とする装置。
JP2135138A 1989-05-24 1990-05-24 例外処理方法及び例外処理装置 Expired - Lifetime JP2846407B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/357,238 US5075844A (en) 1989-05-24 1989-05-24 Paired instruction processor precise exception handling mechanism
US357238 1994-12-01

Publications (2)

Publication Number Publication Date
JPH03116236A JPH03116236A (ja) 1991-05-17
JP2846407B2 true JP2846407B2 (ja) 1999-01-13

Family

ID=23404836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2135138A Expired - Lifetime JP2846407B2 (ja) 1989-05-24 1990-05-24 例外処理方法及び例外処理装置

Country Status (6)

Country Link
US (1) US5075844A (ja)
EP (1) EP0399757B1 (ja)
JP (1) JP2846407B2 (ja)
AU (1) AU631875B2 (ja)
CA (1) CA2016252A1 (ja)
DE (1) DE69028138T2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
JP2581236B2 (ja) * 1989-11-16 1997-02-12 三菱電機株式会社 データ処理装置
US5555384A (en) * 1989-12-01 1996-09-10 Silicon Graphics, Inc. Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5280615A (en) * 1990-03-23 1994-01-18 Unisys Corporation Out of order job processing method and apparatus
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
US5193181A (en) * 1990-10-05 1993-03-09 Bull Hn Information Systems Inc. Recovery method and apparatus for a pipelined processing unit of a multiprocessor system
DE69228083T2 (de) * 1991-03-14 1999-05-20 Fujitsu Ltd., Kawasaki, Kanagawa Verfahren und Vorrichtung zur Steuerung von Pipelineoperationen
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
US5416913A (en) * 1992-07-27 1995-05-16 Intel Corporation Method and apparatus for dependency checking in a multi-pipelined microprocessor
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
US5488706A (en) * 1992-12-18 1996-01-30 Amdahl Corporation Retry request system in a pipeline data processing system where each requesting unit preserves the order of requests
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
US5421022A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Apparatus and method for speculatively executing instructions in a computer system
US5428807A (en) * 1993-06-17 1995-06-27 Digital Equipment Corporation Method and apparatus for propagating exception conditions of a computer system
US6138230A (en) * 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5649225A (en) * 1994-06-01 1997-07-15 Advanced Micro Devices, Inc. Resynchronization of a superscalar processor
US5649136A (en) * 1995-02-14 1997-07-15 Hal Computer Systems, Inc. Processor structure and method for maintaining and restoring precise state at any instruction boundary
US5764971A (en) * 1996-12-11 1998-06-09 Industrial Technology Research Institute Method and apparatus for implementing precise interrupts in a pipelined data processing system
US6098166A (en) * 1998-04-10 2000-08-01 Compaq Computer Corporation Speculative issue of instructions under a load miss shadow
US6192466B1 (en) * 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs
US6453412B1 (en) * 1999-07-20 2002-09-17 Ip First L.L.C. Method and apparatus for reissuing paired MMX instructions singly during exception handling
US6654869B1 (en) * 1999-10-28 2003-11-25 International Business Machines Corporation Assigning a group tag to an instruction group wherein the group tag is recorded in the completion table along with a single instruction address for the group to facilitate in exception handling
US20040199755A1 (en) * 2003-04-07 2004-10-07 Zeev Sperber Apparatus and methods for exception handling for fused micro-operations by re-issue in the unfused format
US7200742B2 (en) 2005-02-10 2007-04-03 International Business Machines Corporation System and method for creating precise exceptions
US8239638B2 (en) * 2007-06-05 2012-08-07 Apple Inc. Store handling in a processor
US11403110B2 (en) * 2019-10-23 2022-08-02 Texas Instruments Incorporated Storing a result of a first instruction of an execute packet in a holding register prior to completion of a second instruction of the execute packet
CN111679857B (zh) * 2020-06-15 2024-01-23 上海兆芯集成电路股份有限公司 高效能复杂指令译码的微处理器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
JPH0766329B2 (ja) * 1985-06-14 1995-07-19 株式会社日立製作所 情報処理装置
EP0208181A1 (en) * 1985-06-28 1987-01-14 Hewlett-Packard Company Programme counter queue for a pipelined processor
SE454921B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser
CA1313275C (en) * 1987-11-30 1993-01-26 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
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

Also Published As

Publication number Publication date
AU5515490A (en) 1990-11-29
DE69028138D1 (de) 1996-09-26
US5075844A (en) 1991-12-24
EP0399757B1 (en) 1996-08-21
CA2016252A1 (en) 1990-11-24
JPH03116236A (ja) 1991-05-17
EP0399757A3 (en) 1992-02-19
EP0399757A2 (en) 1990-11-28
DE69028138T2 (de) 1997-01-23
AU631875B2 (en) 1992-12-10

Similar Documents

Publication Publication Date Title
JP2846407B2 (ja) 例外処理方法及び例外処理装置
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
JP2810211B2 (ja) データプロセッサの命令処理システム
US4879676A (en) Method and apparatus for precise floating point exceptions
US5758112A (en) Pipeline processor with enhanced method and apparatus for restoring register-renaming information in the event of a branch misprediction
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US4777594A (en) Data processing apparatus and method employing instruction flow prediction
JP2539199B2 (ja) デジタルプロセッサ制御装置
US7444498B2 (en) Load lookahead prefetch for microprocessors
US6247122B1 (en) Method and apparatus for performing branch prediction combining static and dynamic branch predictors
US6279105B1 (en) Pipelined two-cycle branch target address cache
JPH0334024A (ja) 分岐予測の方法とそのための装置
JPH05250159A (ja) 記憶装置内の複数の命令間の依存を解決するための装置および方法
US20060179265A1 (en) Systems and methods for executing x-form instructions
EP0778519A2 (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking
US20100031011A1 (en) Method and apparatus for optimized method of bht banking and multiple updates
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
JPH06131180A (ja) 命令処理方式および命令処理装置

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

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: 20081030

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091030

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091030

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101030

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101030

Year of fee payment: 12