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

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

Info

Publication number
JPH03116236A
JPH03116236A JP2135138A JP13513890A JPH03116236A JP H03116236 A JPH03116236 A JP H03116236A JP 2135138 A JP2135138 A JP 2135138A JP 13513890 A JP13513890 A JP 13513890A JP H03116236 A JPH03116236 A JP H03116236A
Authority
JP
Japan
Prior art keywords
instruction
exception
family
instructions
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2135138A
Other languages
English (en)
Other versions
JP2846407B2 (ja
Inventor
Robert L Jardine
ロバート エル ジャーディーン
Shannon J Lynch
シャノン ジェイ リンチ
Philip R Manela
フィリップ アール マネラ
W Horst Robert
ロバート ダブリュー ホースト
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers 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, 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデジタルコンピュータ、殊にデジタルコンピュ
ータの発令実行装置に関する。
〔従来の技術〕
デジタルコンピュータの設計における第1の目標はプロ
セッサの処理能力、即ち単位時間あたりに処理される命
令数を高めることである。そのための一つのアプローチ
は、プロセッサのハードウェア設計を改良してマシンサ
イクルタイムを少なくすることであった。もう一つのア
プローチはマシンサイクルあたり一命令を処理するよう
に設計されたアーキテクチャと命令集合を開発すること
であった0以上のアプローチは共に順次サイクルあたり
せいぜいl命令しか発しないとういう基本的な処理方法
のために、マシンサイクルあたりの最大処理能力が1命
令という論理的処理能力に限定されている。
サイクルあたり1命令以上の命令を発する方式がrCR
ISPマイクロプロセッサのハードウエアアーキテクチ
ャ」と題するディーラエル他の論文(1098ACMO
O84−749587゜ρp30−319)と「多重機
能ユニットプロセッサの性能改善させるための発令方法
」と題するアコスタ他の論文(I EEEコンピュータ
紀要、C−35巻、No、  9.9月86 、pp、
 815−828)中に記述されている。
命令を並行して発することに対する制約は命令群が同一
のマシンサイクル中に同一機能のプロセッサ装置の使用
を要求してはならないという点である。この制約はプロ
セッサアーキテクチャ内に含まれる資源に関係し、頻繁
に使用される機能単位の追加的なコピーを設けることに
よって幾分除去することができる。
上記のアコスタ他による論文は多重機能単位の存在を利
用するための益金発令方法を提示している。更に、上記
論文中に述べられたCRISPアーキテクチャによれば
、もう一つの命令と並行して分岐命令を実行することが
できる。更に、メインフレームにより、整数と浮動小数
点命令を種々の機能単位に並行して発送することが可能
であった。
然しなから、これら方式では全て、同時発令された命令
が互いに依存関係にないことが必要である。依存関係の
種類は以下に詳説するが、一対の命令間の基本的依存関
係は、その対命令中の第2の命令が対命令中の第1の命
令の実行によって生するデータを処理することである。
従って、第1の命令は第2の命令に先立って処理する必
要がある。
かくして、これら現存のプロセッサはすこぶる少数の命
令の組合せしか同時に発することはできず、また実行す
ることもできない。分岐命令はメモリ照会が不要で新た
な1アドレスだけしか計算する必要のない特殊なケース
である。同様にして、浮動小数点と整数命令はALU資
源しか必要とせず、メモリ照会を要しない。かくして、
命令相互間のデータ依存関係は存在しない。
上記制約に鑑みて、これらシステム中で並行発令される
命令の種類は極度に制限され、一定の限定された状況で
は2個の命令を1クロックで発することが可能だとはい
え、その平均処理能力は1命令あたり1クロックを大き
く土建ることは不可能である。
本発明においては、命令のファミリーは1クロック内で
並行して発することの可能なプログラム中の順次命令の
集合である。lファミリー内に含ませることの可能な命
令の種類の数は従来技術によるプロセッサ内に可能なも
のよりも大きい。
本発明の場合、lクロック中に、例えばALUとメモリ
に照会する形式の命令を含む命令のファミリーを発する
ことができる。特殊なパイプラインはその発された命令
ファミリーの受領と処理を容易にする資源を含む。その
ため、本発明はlクロックあたり1命令以上の命令処理
能力を考慮するものである。
本発明を一面から見ると、命令ファミリーが取出され解
説される。各命令についての解説情報は、その命令を実
行するためにどの資源が必要とされるかを表示するステ
ータス情報を含む。もしそのステータス情報が実行中資
源の競合が何ら生じないことを表示するならばその命令
ファミリーは1クロックで発せられる。
本発明のもう一つの面によれば、命令実行装置がデータ
依存関係を有する命令ファミリーを第2の命令のオペラ
ンドとして必要とされる第1の命令の生成データを設け
ることによって実行し、その後にその生成データをレジ
スタに書込むようになっている。
本発明の更にもう一つの面によれば、選択された命令集
合の命令の部分集合が並行処理用の候補として指名され
る。ファミリー内の各命令の解読結果のステータス情報
はその命令が並行処理の候補であるかどうかを示す。も
しステータス情報がファミリー内の全命令が候補であっ
て資源の競合が何ら生じないこを示すならば、そのファ
ミリーは並行して実行される。
本発明のもう一つの面によれば、ユニークな例外処理プ
ロシージャによって単一の命令用に開発された例外プロ
シージャを活用してシステムを単純化することができる
。システムはファミリーの実行中に例外の存在をテスト
する。もし例外が発見されるならば、そのファミリーと
関連するデ・−タの書込みは禁止されてシステムのマク
ロ状態を保存するようになっている。その場合、ファミ
リー内の命令は単独に実行されることによって現存の例
外処理プロシージャを利用できるようになっている。
本発明のもう一つの面によれば、分岐予測の誤りから回
復するための分岐復帰機構は分岐予測ビットと分岐条件
ビットを比較することによって予測の誤りをテストする
。予測が誤りの場合には、ファミリー内の分岐命令の位
置に応じて上記機構は異なる。もし分岐命令がファミリ
ー内の最後の命令であれば、パイプラインはフラッシさ
れ、正確な次の命令がパイプライン内に取出される。も
し分岐命令がファミリー内の最後の命令でなくて、分岐
に続くファミリー内の全命令と関連するデータの書込み
は禁止される必要がある場合には、パイプラインはフラ
ッシされ、正確な次の命令がパイブライン内に取出され
る。
本発明のその他の特徴と利点は図面と以下の詳細な解説
により明らかとなろう。
〔実施例〕
実施例はサイクルあたり1命令以上を発するようには設
計されていない現存プロセッサによって使用される目的
命令の集合を実行する。かくして、本実施例は現存シス
テムと下部方向に互換性をもち、システム用に書込まれ
たプログラムを実行することができる。然しなから、以
下に示すように、本システムの命令ファミリーの並行処
理能力によって処理能は劇的に向上する。
実施例は、各目的コードもしくはマクロ命令を実行する
制御信号がその命令にとって唯一のマイクロコードルー
チンによって提供されるようなマイクロプログラミング
された機械であることが望ましい。
目的命令集合からの対候補(PC)命令の部分集合が選
択され、2個のPCのファミリーを並行実行するための
特殊マイクロコードルーチンが制御メモリ内にストアさ
れる。何れの命令がPCの部分集合内に含まれるかの選
択は、アプリケーションプログラム中の命令の発生頻度
、命令の並行処理の困難さ、命令の並行処理に必要とさ
れる資源を含む種々の要素に依存する。これら特殊ルー
チンは以下に述べる如く、プロセッサ内の特殊資源に依
存する。
然しながら、ただPCのみから成るファミリーの場合で
さえ、もし資源の競合が発生する場合には、並行処理は
可能でない。従って、システムはこれらの場合には並行
処理を取消すことになる。
実行装置はかかる場合が頻繁に発生せず、また処理能力
を大きく低下させないように構成する。
本システムは目的命令集合を実行する非対プロセッサと
互換可能な目的コードである。このため、非対マシーン
により実行される目的コード命令の順列より成る目的コ
ードプログラムもまたプログラムに何ら変更を加えずに
対マシーンによって実行する必要がある。
かくして、本システムでは、プログラム内に発生ずる順
序立てられた対命令群は所定の条件が満たされた場合、
同時に発せられる。こらの条件の発生は命令解読時に発
生させられるステータスビットにより指示されることが
望ましい。
さて、図面について述べると、第1図は実施例のハイレ
ベルブロックダイアグラムである。(同様の参照番号は
敗因を通して同一もしくはそれに対応する部分を示す。
) 第1図において、読出し装置(FU)10は命令キャシ
ュ(IC)12と接続される。FU12は、正規のシー
ランス動作中にアドレスを増分し条件分岐・飛躍命令の
分岐目的(BRANCH−TARG)アドレスを計算す
るアドレス状態マシーンにより制御されるアドレス計算
ハードウェアを含む、IC12の出力は命令待ち行列レ
ジスタ(IQR)14.16に接続される。IQR14
,16と第1と第2の階位の0パイプラインレジスタ(
RO5とROF)1B、20は直列に接続され命令待ち
行列21を形成する。RO3とROF18.20の出力
は、それぞれ、第1と第20階別のルジスタの入力と、
第2のデコード装置と第1のデコード装置(DC3とD
CF)22.24の入力に接続される。2個のデコード
装置22.24の出力は第1と第2のDCOバス28.
30により対比論理装置(PLU)26のデータ入力に
接続される。これらバス上のステータスビットは第1と
第2のステータスバス32.34によりPLU26の制
御人力に接続される。PLU16は併合デコードバス(
MDB)36により実行装置(EU)26に接続される
データ出力と、FUCバス40によりPO26に接続さ
れるFU制御出力と、PUCバス42によりPO25に
接続されたPU接続出力を備える。また、EU36はま
た以下に述べるF l5sue  信号をアサートする
さて、以下に第1図のシステムの動作を説明する。命令
ファミリー内の第1と第2の命令はそれぞれROFとR
O320,18内にストアされる。
これらの命令はそれぞれのデコード装置22.24で解
読され、解読結果はそれぞれのDCOバス28.30上
に出力される。第1の解読結果は第1の入口点フィール
ド(EPT−F)と第1のステータスビット集合を含み
、第2の解読結果は、第2の入口点フィールド(EPT
−3)と第2のステータスビット集合を含む。各解読結
果におけるステータスビットは、それぞれの命令がPC
であるかどうか、またどの資源が命令を実行するに必要
であるかを示す。両方の解読結果からのステータス情報
はステータスバス32と34上のPLU制御ポートにま
わされる。
第1のステータスビットはPCと命名され、命令が一対
の候補であるかどうかを示す、第2のステータスビット
はE Py+smueと命名されマクロ命令が1クロッ
クだけしか必要としなかそれとも多数のクロックを必要
とするかを示す。もしそうであれば、次のクロック中に
次の命令が発せられる。
もし否であれば、FOFとRO520,18内のデータ
はF!の発信が生ずるまで変化しない。この信号はFU
IOにより受信され予備読出しが再開される。他のステ
ータスビットは命令がALUもしくはメモリアドレス指
定論理に対して実行を要求するかどうかを示す。
PLU26の出力はステータス情報に依存し、次の3つ
の可能性のうちの一つである。まづ、もし第1の命令が
PCでなければ、第1の命令の解読結果はMD838上
に出力されマイクロコードルーチンをアクセスし第1の
命令だけを単独に実行する。更に、FUCライン40と
PUCライン42上に発せられた信号によって次の単独
の命令がIC12から読出され第1の命令(ROF20
内にストア)だけがPO25の次段に発せられる。
そのため、プロセッサの並行発令能力は使用されない。
第2に、もし第1と第2の命令が共にPCであって対比
可能であれば、即ち、資源の競合が存在しなければ、第
1と第2の命令の解読結果は併合されてMDB 3 B
上に出力される。併合された解読結果はマイクロコード
にアクセスして第1と第2の命令をペアにして実行する
。更に、FUCライン40とPUCライン42上に発せ
られた信号によってプログラム内の次の2つの命令がI
C12から読出され、階位Oレジスタ18.20内にス
トアされた一対の命令がPO25の次段に発せられる。
第3に、もし、第1の命令がPCであるが第1と第2の
命令は対比不可能である場合、例えば資源競合の場合に
は、第1の命令の解読結果のサブフィールドがMC83
8上に出力され、マイクロコードルーチンにアクセスし
て第1の命令を単独に実行する。更に、FUCライン4
0とPOCライン42上に発せられた信号によって次の
単独命令がIC12から読取られ、第1の命令のみがR
OFレジスタ20からPO25の次段に発せられる。か
くして、プロセッサの並行発信能力は使用されない。
本システムの動作は具体例を考察することによって最も
よく理解することができる。これらの具体例はlスタッ
クをALU処理のデータソースとデータシンクとして活
用するプロセッサについてのものである。データはロー
ド/ストア処理によってメモリとスタック間で転送され
る。上記スタックは8個の物理的レジスタ(RO−R7
)と、スタックのトップに論理的に割りふられた物理レ
ジスタを指示するレジスタポインタ(RP)を含む。ス
タックレジスタは、スタックのトップのレジスタをAと
命名して、RP値によって明らかにされる論理的命名A
−Hを付与される。このタイプのプロセッサでは、デー
タの依存関係をスタックレジスタの競合による特徴をも
つ。もう一つのタイプの依存関係はRP競合である。命
令は全体としてRPを増分したり減分したりする。かく
して、命令のファミリーはRPの変化に対して競合する
要求条件をもつことになる。
第2図と第3図は、2個の命令のファミリーを標準的な
やり方で実行し1−ルーチンをリスティングして本発明
の並行命令実行を行う際に生ずるスタック形を示す環路
線図である。
第2図について述べると、2個の命令のLDI−LOA
Dファミリーを順次単独実行する際のスタック形が示さ
れている。これら命令は共にRPに対して定義されるH
レジスタにデータを書込む。
LDI実行中に、即値データがH(RO)に書込まれ、
RPは増分されてHがR1に変化する。その後、LOA
Dの実行中にキャッシュデータがHに書込まれ、RPは
再び増分されてHはR2に変化する。
第4図に示す標準的な3段パイプライン12について述
べると、R3バイブ947段中にこれら命令はそれぞれ
データをHレジスタに書込み、RPを増分する。かくし
て、並行処理はこれらレジスタとRPの競合の影響を除
去するための何ら特別の資源や手法がなくとも可能とな
ろう。
第5図に示す実施例で使用される比較的深度の高い6段
バイブラインについて対の並行処理方法を解説する。対
命令を並行処理するには、ロード命令のデータキャッシ
ュアドレスが階位2中に発生させられ、オペランドが取
出され、キャッシュデータがG(R1)に書込まれ、階
位3中に即値データが)I(RO)に書込まれる0階位
4中にRPは2だけ増分されることによってR1はAと
、R2はHと定義される。かくして、本発明のマイクロ
コードと資源によって一対の命令が並行して発せられ実
行することが可能になる。
第3図について述べると、2個の命令のLDD−DAD
Dファミリーを順次単独実行するためのスタック形が描
かれている。更に、第4図の3段バイブラインについて
述べると、LDDの実行中に、RPは増分されてAはR
2と定義されて0P−2データの高次フィールドがA(
R2)に書込まれ、0R−2データの低次フィールドが
階位2中にH(R3)に書込まれる。最後に、RPは再
び増分されて、階位3中にAはR3と定義される。
その後、DADDの実行中、C(R1)とA(R3)中
のデータは合計されてC(R1)に書込まれ、D(RO
)とB(R2)中のデータは階位2中に合計されてD(
RO)に書込まれ、RPは階位3中に2だけ減分される
第4図の3段パイプラインについて述べると、もし対命
令が並行して実行される場合には、データの書込みと合
計は階位3中に行われるため、解決不能なデータの競合
が生ずることになろう。
RPの変更に対する要求条件が競合するため、階位3中
に更なる競合が生ずることになろう。
第5図の6段パイプラインについて述べると、対命令を
並行実行するために、階位3中にop−2データが、階
位3中にデータキャシュから読出され、贈位4中にレジ
スタA(R1)とB(RO)の内容と、A(R1)とB
(RO)に書込まれた和と、贈位5中にH(R2)とG
(R3)に書込まれた原始0P−2データと合計される
。かくして、解決不能なレジスタもしくはRPの競合は
何ら生じない。
上記より、並行処理のためにはデータをスタック内のレ
ジスタに書込む前にデータにアクセスする必要があるこ
とが明らかである。第6図はその必要とされるアクセス
を容易にするレジスタ形を示した図である。第6図にお
いて、レジスタファイル60は4個の書込みボートと4
個の読出しボートを備えることによってダブルワードを
同時に転送することができるようになっている。更に、
バイパス回路62、バイパスバス64、キャシュデータ
、即値データおよびALU入力バス、マルチプレクサお
よびSB、、間の交叉接続によってレジスタファイル6
0に書込む前にデータに対して直接アクセスすることが
可能になる。そのため、深度パイプラインと多重ポート
レジスタファイルによって、マイクロコードは命令の多
くの組合せをファミリーとして実行することができる。
例えば、第3図に示すLDD−DADDの対を実行する
際、贈位3中にキャシュデータは直接データキャシュか
らCDHi c!:CDLoへ転送されその後にレジス
タファイアルへ書込まれる一方、0P−IHはRegA
からKHRegへ転送され、0P−ILはRegBから
KLRegへ転送される。
転送データの和は贈位4中にALUにより計算され、贈
位5中にRegAとRegBへ書込まれる。更に、CD
Hi とCDLo内のデータは贈位5中にRegHとR
egGへ書込まれる。
例えば、ロード命令とロード即値命令を含むファミリー
はlクロック中に発せられ処理することが可能である。
同様にロードと加算命令を含むファミリーを1クロック
中に発し処理することができる。
第7図は本発明の実施例のアーキテクチャを示す詳細な
ブロックダイアグラムである。デコード装置はROFと
RO320,18の命令に応答し第1と第2の入口点E
PFとEPSを発生する入口点テーブル(EPT)22
.24である。
EPT23,24の出力は、第1と第2のDCOバス2
8.30にそれぞれ接続される。第1のEPビットフィ
ールドF<0:15>はEPTF23から第1のDCO
バス28へ転送され、第2のEPビットフィールドS<
4:15>はEPTS24から第2のDCOバス30へ
転送される。ビットフィールドF<1.2.14.15
>は第1のステータスバス32により耐化論理72へ転
送れ、ビットフィールドS<5.6,7.8>は第2の
ステータスバス34により転送される。
ビットフィールドF<9:15>はFLSBバス76に
よってMUX/論理装置(MLU)74の0人力へ転送
され、ビットフィールドS〈9:15〉は5LSBバス
78によりMLU74の1人力へ転送される。
ビットフィールドF<2:8>はMMSBバス80上に
転送され、MLU74出力はMLSBバス82に転送さ
れる。MMSBとMLSBバス80.82は併合されて
併合EPT (MEPT)バス38のMSBとLSB部
分を形成する。MEPTはマイクロメモリ39からのマ
イクロコードをアクセスするために使用される。
耐化論理は、FUCバス40上を転送されパイプライン
に対命令もしくは単一命令を発するように指令するpc
とEPTl、、、、信号を発生する。
更に、相対pc信号がMLU74の09人力に接続され
たPCNPライン84上に転送され、ビットFく2〉は
多重制御ライン86上をMLU74の制御人力へ転送さ
れる。
第8図はMEPT<2 : 15>によりアドレス指定
されるマイクロメモリ39のメモリマツプである。ME
PTのMSBフィールドは、F〈2〉がMSBである場
合、常にF<2:8>に等しい。
MEPTのLSBフィールドはMLU74の出力に等し
く、NPPCと多重制御ライン84.86上の信号に依
存する。全PCのMSB、F<2>は、1の値を有し、
非PC全体についてOの値を有する。
対候補ではない第1の命令の場合、MSB、Fく2〉は
0であり、÷イクロコードアドレス(M E P T)
はアドレス空間92の下半分90内に配置される。対候
補の第1の命令の場合、MSB。
Fく2〉は1であり、マイクロコードアドレス(MEP
T)はアドレス空間の上半分94である。
MEPTを発生させるための第7図に示すシステムの動
作を第1の命令が対候補でない場合、対候補であるが対
化されていない場合、および対候補であって対化されて
いる場合について次に説明する。
第1の命令が対候補でない場合、F〈2〉は0で、ML
U74のO入力はMLSBバス82に接続されるため、
フィールドF<9:15>はMLSBバス82上を転送
され、MEPTは、 MEPT<2715 >= F<2 : 8>: F<9 : 15>   弐lそ
のためiMEPTはEPTFフィールドに等しくなる。
このアドレスは第8図に示すアドレス空間92の下半分
90内にある。かくして、MEPTはこの場合マイクロ
コードにアクセスし、第1の命令を単独命令として実行
する。
もし第1の命令が対候補であるが第2の命令と耐化可能
でない場合には、F〈2〉は1で、NPPCライン84
上の信号がセットされる。この場合、MLU74はフィ
ールド<0000000>をMLSBバス82に転送し
、MEPTはMEPT<2715>= F<2:8>:<0000000>  式2となる。そ
のため、MEPTはゼロ7個のストリングによって伴わ
れるEPTFのMSBフィールドに等しくなる。かくし
て、相対化対候補を実行するためのマイクロコードのア
ドレスは第8図に示すアドレス空間92の上半分94内
に配置される。
もし第1の命令が対候補であって対化される場合には、
Fく2〉は1で、NPPCライン84上の信号はセット
されない。この場合、MLU74フィールドS<9:1
5>をMLSBバス82に転送し、MEPTは MEPT<2 : 15>= F<21>:S<9:15>   式3となり、そのた
めMEPTはEPTSのLSBフィールドとEPTFの
MSBフィールドに等しくなる。第8図に示すように、
これらのアドレスはアドレス空間内の非対化指令のアド
レスの後に来る。
対命令が発せられるに続いて、例外や分岐予測の誤りの
如き事実が発生し、発せられた対命令の首尾良い実行や
退避を防止する。以下はこれら事実の発生と効率良く取
組むためのユニークな例外処理と分岐手段を説明したも
のである。
まづ例外処理に戻ると、例外はプロセッサ内部の条件に
よって惹起こされ命令の実行を防止する。
かかる条件の例は、ALUタイプの命令についての演算
オーバフローとメモリ照会形式の命令についてのページ
障害を含むものである。
例外に遭遇する命令につきそれぞれ、ソフトウェアと/
又はマイクロコードを含む特殊例外処理プロシージャが
単独で発せられる命令について開発されている。全体と
して、例外処理マイクロコードは例外が存在しない場合
に同一命令を実行するに必要なマイクロコードよりもず
っと複雑である。
第5図の6段パイプラインについて説明すると、例外条
件はパイプラインの贈位4中で発生する。
命令が対化される時に例外が発生するために、例外処理
に対するアプローチの一つはそれぞれの可能な対命令に
ついて例外を処理するための特殊マイクロコードをスト
アすることであろう。
然しなから、かかるアプローチは幾つかの欠点をもって
いる。例外に遭遇する命令に先立つ命令は完遂を許され
なければならないために、第1の命令と関連するメモリ
を完了させるために複雑な調整コードが必要となり、そ
の一方で対内の第2の命令と関連するメモリを防止する
ことが必要とされる場合もあろう。更に、1つ以上の例
外に遭遇することもあり得る。例えば、対(LOADと
ADD)はLOADにつきページ障害に、ADDにつき
オーバフロー例外に遭遇することもあろう。
更に、例外の組の数は非常に大きくなり、対の例外プロ
シージャをデバッグすることが極度に困難になる。
〔課題を解決するための手段〕
本発明の解決手段は単独で発せられる命令の例外処理に
つき既に存在する例外処理プロシージャを活用するもの
である。対命令を実行するためのマイクロコードはパイ
プラインの贈位4中に例外条件の存在をテストすること
によって例外を発見する。このプロシージャは第9図の
フローチャート内に示す。もし例外が発見された場合に
は、非対化再始動プロシージャが呼出され対命令を打切
り対内の第1命令を単独で発しなおす。
現存する例外処理プロシージャを活用するには、もしプ
ログラムが非対化命令マシーンにより実行中の場合には
発生したであろうマクロ状態と一致する単独命令例外処
理プロシージャに対して内部マクロ状態を提供する必要
がある。
この一致したマクロ状態は、例外が贈位4内で発見され
た時に贈位5中に発生するロードとストアを禁止する段
階を含む第10図のフローチャートに描かれた相対化再
始動プロシージャによって提供される。かくして、スタ
ックレジスタの内容は変化せず、内部マクロ状態は打切
られた対の直前に位置するプログラム内の命令の実行に
よって発生する状態である。このマクロ状態は、プログ
ラムが非対化命令マシーンにより実行される場合に例外
処理プロシージャに提示される状態と一致する。
贈位5のロードとストアを禁止する他に、非対化再始動
はパイプラインをフラッシしその対の第1命令を単独命
令として発しなおす。もし例外が第1の命令と関連した
ものであれば、その単独マイクロコードは再び同じ例外
に遭遇し、非対化命令マシーンの場合の如(例外を処理
することができる。
もしその例外が第2の命令と関連したものであれば、第
1の命令は事件なしに完了し、また第2の命令は再び例
外に遭遇することになろう。もし第2の命令がこの時対
になっていなければ、単独のマイクロコードが例外を処
理することになろう。
もし対になっていれば、もう一つの対になっていない再
始動が行われることになろう。
対になっていない再始動プロシージャは処理能力を低め
るが、例外発生の頻度が比較的少ないため、この不利益
は複雑度が著しく軽減されることに鑑みて受は容れるこ
とができる。
第11A〜IIG図は一対の命令が実行中に例外を処理
するための種々のパイプライン段とプロシージャを示す
ものである。
第11A図において、パイプライン25は、命令とアド
レスの待ち行列211と21A1および命令とアドレス
贈位レジスタ集合251と25Aを備える命令とアドレ
スの側に分割される。更に、命令マルチプレクサ901
とアドレスマルチプレクサ90Aは命令とアドレスサイ
ドのIQ2とIQ3レジスタとランクレジスタの出力を
、それぞれFUIOのアドレス計算ハードウェアに選択
的に接続する。第11B−100図において、イネーブ
ルとなったバスとレジスタは太線で示しである。
第11B図において、対命令A+Bは発令態勢にあり、
命令サイドの階位Oレジスタ181と201から出力さ
れ、AとBのアドレスはアドレスサイドの贈位0レジス
タ18Aと2OAから出力される。命令のビットはDC
Oバス28.30上のEPTへ転送される。
第110〜IIF図は贈位1から贈位4の対命令の進行
を描いたものである0階位4で、マイクロコードは演算
オーバーフロービットもしくはページ障害のセットの如
き例外をテストする。もし何ら例外が発見されなければ
、対命令は贈位5を通って継続し退避する。このテスト
は例外ステータスビットを分岐条件ビットとして活用す
るマイクロコード内の条件付分岐によって実行すること
ができる0例えば、ビットを示す例外は条件コードレジ
スタ内にストアされる演算オーバーフロービットとする
ことができよう。
第11G図は対比されていない再始動プロシージャを示
す。マイクロコードはアドレスマルチプレクサ90Aを
制御して命令Aのアドレスをアドレス計算ハードウェア
に転送する。更に、対A+Bとそれらのアドレスはそれ
ぞれ命令側とアドレス側の5個のレジスタを介して贈位
l内ヘロードされパイプラインのフラッシを開始する。
第11H図において、命令計算ハードウェアはIC12
から命令をアクセスし、マイクロコードはIQマルチプ
レクサを制御して命令を命令ROレジスタ201に、命
令アドレスをアドレスROレジスタ20Aに経路選択す
る。
第11!図において、命令Aとそのアドレスがそれぞれ
命令ROFとアドレスROF201と20Aに転送され
たところである。
第11J図において、命令Aは単独に発しなおされたと
ころである。
第11に図は非対化再始動プロシージャを実行するため
の制御システムのブロックダイヤグラムである。第11
に図について述べると、制御メモリの出力はMCR3レ
ジスタ100に接続され、それらはMCR4とMCR5
のレジスタ102.104の他に、マイクロコードパイ
プラインを形成し、同パイプラインは命令パイプライン
25と同期して動作し、パイプライン内の命令ファミリ
ーを実行するに必要な制御信号を提供する。贈位4のマ
イクロコードはANDゲート106の第1の入力ボート
に接続されるmビットフィールドを含む。EU36のA
LUにより発生させられた例外表示テストビットフィー
ルドはラッチされたMUX 110の入力に接続される
。MUXIIOの制御ボートは贈位5のマイクロコード
の制御フィールドに接続され、出力はANDゲート10
6の第2人力ボートへ接続される。ANDゲート106
の出力は第1デコーダ(DECり1120入カへ接続さ
れる。DECIの出力は例外条件が発見された場合にパ
イプラインをフラッシさせ贈位5の書込み操作を禁止す
る制御信号である。
さて、第11に図に示すシステムの動作を説明する。贈
位5のマイクロコードの制御フィールドによってMUX
IIOは実行中の命令ファミリーについてテストされる
特定の例外表示ステトビットを伝送することになる。も
し例外条件が発生したならば、伝送されるテストビット
は論理“l”となり、ANDゲート106は開き、mビ
ットの贈位5のマイクロコードフィールルドは解読され
て非対化再始動プロシージャ実行のための制御信号が発
生する。
もし例外条件が発生していなければ、伝送されるテスト
ビットは論理“0”であり、ANDゲート106は閉じ
、デコーダの出力によって非対化再始動プロシージャは
実行されない。
分岐命令処理のプロシージャを以下に第12図と第13
図のフローチャートについて解説する。
多くのパイプライン化されたシステムの如く、分岐予測
ラム(B P R)が含まれている。それぞれの分岐命
令についてBPR内の分岐予測ビット(B P B)の
状態は、それと関連する分岐命令が実行された最終時に
おける分岐条件の値を示す。
分岐条件ビットは再び同一値を有するものと仮定する。
第12図について述べると、もし分岐が行われないであ
ろうとBPBが予測すると、アドレスの昇順に予備読出
しが続けられる。もし分岐が行われると予測されると、
目的アドレスのアドレスが形成される間、予備読出しが
停止される。いったんこの目的アドレスが形成されると
、目的ロケーションにおいて予備読出しが再開される。
第7図について上記したように、MEPTは1対内の第
1と第2の命令のビットにより一義的に決定され、命令
の順序を反映する、即ち、MSBフィールドは第1命令
のEPからのビットを含み、LSBフィールドは第2命
令のEPからのビットを含む。この一義的なMEPTは
第1もしくは第2の命令が分岐命令であるかどうかを表
示するマイクロコードにアクセスする。
分岐条件は贈位4で求められる。BPBは一対の命令と
共にパイプ!Dビットとしてパイプライン内を移動し、
先に実行された命令によって設定された分岐条件ビット
(BCB)と比較される。
もしBPBと分岐条件ビットがマツチすれば、パイプラ
インの内容は正しく、正規の処理が続けられ、対命令は
退避する。もしBPBとBCBがマツチしなければ、パ
イプライン中の以下の命令は正しくなく分岐回復が起こ
らなければならない。
さて、第10図について述べると、分岐回復の第1ステ
ツプは分岐命令が対内の第1命令であるか第2命令であ
るかどうかに依存する。上述の如く、マイクロコードル
ーチンは2つの場合について異なっている。もし予測誤
りした分岐命令が対の第1命令であれば、第2命令の贈
位5の蓄積は当該命令が第1の命令に次いで実行される
べき命令ではないから禁止されるべきである。更に、続
く命令は全てパイプラインからフラッシされ、分岐に必
要とされる更新は全てやり直される。もし予測を誤った
分岐命令が対の第2命令である場合には、贈位5の対命
令と関連する記憶が完了する。
パイプラインの残りの段と先取り待ち行列は以前通すフ
ラッシされる。
分岐の予測誤りの場合には、新たなアドレスを形成して
プログラム内の分岐命令に続く正確な次の命令のロケー
ションで先取りを再開する。
テーブル1 第1       イエス   R5PE+1第1  
     ノー   R5PFのTARG第2    
   イエス   R5PS+1第2       ノ
ー   R5・PSのTARGアドレスの計算し直しは
BPBがBCBとマツチしない場合しか必要でない。分
岐予測は不正確であったため、分岐命令に続くパイプラ
イン内の命令は不正確である。そのため、もしBPBが
分岐が行われたということを表示すれば、分岐命令に続
くパイプライン内の命令のアドレスはBRANCIIT
ARGである。然しなから、次の命令アドレスはBRA
NCH+1でなければならない、同様にして、もしBP
Bが分岐が行われないことを示せば、分岐命令に続くパ
イプライン内の命令のアドレスはBRANCf(+1と
なる。然しなから、次の命令アドレスはBRANCH−
TARGでなければならない。
テーブル1について述べると、第1列において、マイク
ロコードは現在、パイプラインのレジスタR51−F内
に常駐する対内の第1命令が分岐命令であることを示す
。BPBは分岐が行われるであろうと予測誤りしたため
、次の命令のアドレスしB RA N CH−T A 
RGの代わりにBRANCH+1となるはづである。
第11A図に戻ると、今やR5P−F内に常駐する分岐
命令のアドレスはアドレス側MUX90Aを介してFU
IOのアドレス計算ハードウェアへ転送される。このア
ドレスは増分されて取出される次の命令のアドレス、B
RANCH+1を形成する。
テーブル1の第2列では、マイクロコードは第1の命令
が分岐命令であることを示す、BPBは分岐が行われな
いであろうと予測誤りしたために、次の命令のアドレス
はBRANCH+1の代わりにBRANCH−TARG
とならなければならない。
第11A図について述べると、現在、レジスタR51−
FとR5P−F内に常駐する分岐命令とそのアドレスは
、それぞれ命令サイドとアドレスサイドのMUX901
と90Bを介してFUIOのアドレス計算ハードウェア
へ回送される。その後、アドレス計算ハードウェアは取
出される次の命令のアドレス、BRANCH−TARG
を計算する。
第14図は分岐予測機構を製作する制御システムのブロ
ックダイアグラムである。制御メモリ39とMCR3、
MCR4、MCR5のレジスタ100.102.104
は第11に図について上記した如く接続される。更に、
制御パイプラインの各贈位は実行される命令に関する一
定の情輯をストアするパイプID(PID)レジスタ1
20を含んでいる。分岐予測RAM (BPR)122
は出力がPIDレジスタ120に接続されることによっ
て、分岐予測ビット(BPB)がパイプライン内を伝播
し分岐命令が実行されるようになっている0階位PID
レジスタ120内にストアされたBPBはコンパレータ
124の第1人力に接続され、条件コードレジスタ12
6内にストアされるかALUから転送される分岐条件ビ
ットはコンパレータ124の第2人力に接続される。贈
位4のマイクロコードのnビットフィールドは第1人力
に接続され、コンパレータ124の出力はMUX 12
7を介してANDゲート128の第2人力へ接続される
。MUX 127は贈位4のマイクロコードの制御フィ
ールドにより制御される。
ANDゲートの出力はデコーダ(DECA)130の入
力に接続される。DECA130の出力は分岐予測機構
を実行させる制御信号である。
次に第14図に示すシステムの動作を4つの別々のケー
スについて説明する。最初の2つのケースは、BCBが
先に実行された命令によって条件コードレジスタ126
内にセットされる1ビツトである場合の条件分岐命令に
関するものである。
上記の2ケースは先に実行されたファミリーもしくは分
岐命令を含む現在のファミリー内に先の命令が含まれて
いたがどうかによって区別される。
第2のケースは、BCBが先に実行された命令によりレ
ジスタファイル、例えばRegA内にストアされたデー
タを用いてALUによって計算される場合の条件分岐命
令に関する。更に、上記2ケースは先の命令が現在ファ
ミリー内に含まれるかどうかによって識別される。第1
のケースでは、条件コードレジスタ126内のBCBは
既に先の命令の実行中にセットされている。もしBCB
とPID120からのBPBがマツチしなければ、分岐
は予測誤りされたものであり、コンパレータ124の出
力がANDゲート128を開く、その後、nビット贈位
4マイクロコードフィールドはDECA130へ移され
分岐予測機構を実行するに必要な制御信号を発生する。
上記の如く、nビットフィールドはファミリー内の分岐
命令の位置を示し、従って、デコーダの出力はこのロケ
−シランによって異なることになろう。
もしBCBとBPBがマツチすれば、コンパレータ12
4の出力はANDゲート128閉じ、パイプラインの内
容は正確であるから、分岐回復機構を実行させる制御信
号は発生しない。
もし、BCBが現在ファミリー内の一命令により書込ま
れる条件コードレジスタ126からの1ビツトであれば
、BCBビットはレジスタファイルに書込まれる前にコ
ンパレータ124にklされなければならない。MUX
 127は贈位4中にALUの出力を直接コンパレータ
124へ提供するように制御された後、BCBは贈位4
中で条件コードレジスタに書込まれる。
もしBCBがALUにより計算されレジスタデータが先
のファミリー内の1命令により書込まれたならば、レジ
スタデータはALUに転送され、ALU出力はMUX 
127を介してコンパレータ124へ転送される。もし
レジスタデータが現在ファミリー内の一命令によって発
生させられたら、データはレジスタファイルに書込まれ
る前に第6図について述べたハードウェアを利用してA
LUに提供され、ALU出力は贈位4中にMUXを介し
てコンパレータ124へ転送される。その後同データは
贈位5中にレジスタファイルに書込まれる。
以上、本発明を2個の命令ファミリーを並行実行するシ
ステムについて述べてきたが、本発明の原理は2個以上
の命令ファミリーについても等しく適用可能である。そ
の場合、対論理は2個以上のステータスフィールドに応
するように修正され、そのファミリを並行実行するため
に特別のマイクロコードルーチンが書込まれることにな
ろう。
更に、マイクロコードプロセッサについて説明してきた
が、同システムは論理アレイを用いて制御信号を発生さ
せる機械にも適用することができる。両システムとも一
定状況において利点をもち、その選択は本発明の実施に
とって重要な問題ではない、更に、レジスタスタック以
外の形のレジスタを使用することもできる。
第17図について説明したステータスビットは対論理に
よって命令ファミリーのEPを併合すべきかどうかを判
断するために使用する。その代わり、EPは常に併合可
能とし、それと関連するマイクロコードは命令ファミリ
ーが並行して発せられかを制御することになろう。
更に、並行に発せられる目的命令部分集合の選択は必要
でない、マイクロコードルーチンは目標命令の集合から
の全ての可能な対命令について設けることができる。
かくして、本発明は望ましい実施例について解説したが
、その置換、変形は当業者にとって明らかであろう、従
ってそれは請求範囲に提示されるものを除いては本発明
を限定するものと考えるべきではない。
【図面の簡単な説明】
第1図は本発明のハイレベルブロックダイアグラム、 第2図は第1の対命令を順次並行処理する特殊例を示す
概略 図、 第3図は第2の対命令を順次並行処理する特殊例を示す
概略 図、 第4図は従来技術による3段パイプラインのブロック線
図、 第5図は本発明の実施例に使用される6段パイプライン
の概略線図、 第6図はバイパス回路を備えるマルチボートレジスタフ
ァイルの概略線図、 第7図は本発明の実施例に使用される対論理を示す概略
線図、 第8図は本発明の実施例に使用されるマイクロメモリの
メモリマツプのブロック 図、第9図は本発明の例外処
理プロシージャ例のフローチャート図、 第10図は本発明の非対再開始プロシージャの例のフロ
ーチャート図、 第11A図〜IIJ図は本発明の例外・分岐処理プロシ
ージャに関するパイプライン段を示す詳細概略線図、 第11に図は例外処理制御システムのブロックダイアグ
ラム、 第12図は本発明の分岐プロシージャ例のフローチャー
ト図、 第13図は分岐予測誤りを処理するプロシージャ例のフ
ローチャート図、 第14図は分岐予測機構制御システムのブロックダイア
グラム。 10・・・・・・読出し装置、 FU12・・・・・・アドレス計算ハードウェア、14
.16・・・・・・命令待ち行列レジスタ、18.19
・・・・・・パイプラインレジスタ、22.24・・・
・・・デコード装置、26・・・・・・対論理装置、 28.30・・・・・・バス。

Claims (8)

    【特許請求の範囲】
  1. (1)1クロック中に命令ファミリーを発し、命令を数
    段で実行するパイプラインを備えるデータプロセッサで
    、同パイプラインがメモリ基準値を計算しALU演算を
    実行する第1の所定段と、データを書込む第2の所定段
    を備え、その際、データプロセッサが単一命令の実行と
    関連する例外を処理する例外処理プロシージャを備える
    方法において、1クロック内に発せられる所定命令ファ
    ミリーの実行中に発生する例外処理用の例外処理プロシ
    ージャが以下のステップ、即ち、 第1の所定パイプライン段中に、所定ファミリー内の命
    令と関連する例外が所定ファミリーの実行中に発生した
    ことを示す表示を発生し、上記表示の存在をテストし例
    外の発生を検出し、 第2の所定パイプライン段中に、所定ファミリーの実行
    と関連するデータ書込みを禁止し、パイプラインの全段
    から命令をフラッシし、単独で実行されべき所定ファミ
    リー内の第1命令を再発令して現在の例外処理プロシー
    ジャを活用して、その例外が上記第1の命令と関連する
    場合に例外を処理できるようにする、ステップより成る
    前記プロシージャ方法。
  2. (2)上記テストステップが、 オーバフロービットがセットされたかどうかを判断し、
    ALU命令と関連する演算オーバフロー例外を表示する
    ステップを含む請求項1の方法。
  3. (3)上記テストステップが、ページ障害ビットがセッ
    トされたかどうかを判断し、メモリ参照命令と関連する
    ページ障害例外を表示するステップを含む請求項1の方
    法。
  4. (4)上記再発令ステップが、 ファミリー内の各命令のアドレスをストアし、上記第1
    命令のストアされたアドレスによってファミリー内の上
    記第1命令を単独でアクセスし、 上記第1命令を再発令する、ステップを有する請求項1
    のプロシージャ。
  5. (5)1クロック中に命令ファミリーを発し命令を数段
    で実行しるパイプラインを備える形式のデータプロセッ
    サで、同プロセッサがメモリ基準値を計算しALU演算
    を実行する第1の所定段とデータ書込み用の第2の所定
    段と、を備え、その際、データプロセッサが単一命令の
    例外と関連する例外処理用の例外処理プロシージャを備
    えるようになったものにおいて、1クロック中に発せら
    れる所定命令ファミリーの実行中に発生する例外処理用
    の例外処理システムが、第1の所定パイプライン段中に
    、所定ファミリー内の命令と関連する例外が所定ファミ
    リーの実行中に発生したことを示す表示を発生する手段
    と、 上記実行の存在をテストして例外の発生を検出する手段
    と、 第2の所定パイプライン段中に、所定ファミリーの例外
    と関連するデータ書込みを禁止する手段と、 パイプラインの全段から命令をフラッシする手段と、 単独で実行されるべき所定ファミリー内の第1命令を再
    発令して現存の例外処理プロシージャを活用して、例外
    が上記第1の命令と関連する場合にその例外を処理でき
    るようにした手段と、 から成る前記システム。
  6. (6)上記テスト手段が、 オーバーフロービットがセットされたかどうかをテスト
    してALU命令と関連する演算オーバーフロー例外を表
    示する手段を含む請求項5のシステム。
  7. (7)上記テスト手段が、ページ障害ビットがセットさ
    れたかどうかをテストしてメモリ参照命令と関連するペ
    ージ障害例外を表示する手段を備える請求項5のシステ
    ム。
  8. (8)上記再発令手段が、更に、 ファミリー内の各命令のアドレスをストアする手段と、 ファミリー内の上記第1命令を上記第1命令のストアア
    ドレスにより単独でアクセスする手段と、 上記第1の命令を再発令する手段と、 を備える請求項5のシステム。
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 1989-05-24

Publications (2)

Publication Number Publication Date
JPH03116236A true JPH03116236A (ja) 1991-05-17
JP2846407B2 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 株式会社東芝 電子計算機
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
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
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 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
US5644742A (en) * 1995-02-14 1997-07-01 Hal Computer Systems, Inc. Processor structure and method for a time-out checkpoint
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
US11461106B2 (en) 2019-10-23 2022-10-04 Texas Instruments Incorporated Programmable event testing
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
EP0399757A2 (en) 1990-11-28
AU631875B2 (en) 1992-12-10
DE69028138D1 (de) 1996-09-26
EP0399757B1 (en) 1996-08-21
JP2846407B2 (ja) 1999-01-13
EP0399757A3 (en) 1992-02-19
CA2016252A1 (en) 1990-11-24
DE69028138T2 (de) 1997-01-23
US5075844A (en) 1991-12-24

Similar Documents

Publication Publication Date Title
JPH03116236A (ja) 例外処理方法及び例外処理装置
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
US6266765B1 (en) Computer architecture capable of execution of general purpose multiple instructions
JP2597811B2 (ja) データ処理システム
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US4879676A (en) Method and apparatus for precise floating point exceptions
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
JP2539199B2 (ja) デジタルプロセッサ制御装置
US5822555A (en) Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
EP0094535B1 (en) Pipe-line data processing system
EP0378415A2 (en) Multiple instruction dispatch mechanism
JP3736866B2 (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット
EP0778519B1 (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
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