JP3452246B2 - 投機実行命令例外制御方式 - Google Patents

投機実行命令例外制御方式

Info

Publication number
JP3452246B2
JP3452246B2 JP26440999A JP26440999A JP3452246B2 JP 3452246 B2 JP3452246 B2 JP 3452246B2 JP 26440999 A JP26440999 A JP 26440999A JP 26440999 A JP26440999 A JP 26440999A JP 3452246 B2 JP3452246 B2 JP 3452246B2
Authority
JP
Japan
Prior art keywords
instruction
register
branch
exception
stage
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
JP26440999A
Other languages
English (en)
Other versions
JP2001092659A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP26440999A priority Critical patent/JP3452246B2/ja
Publication of JP2001092659A publication Critical patent/JP2001092659A/ja
Application granted granted Critical
Publication of JP3452246B2 publication Critical patent/JP3452246B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、投機実行(分岐命
令の後続命令を分岐判定前に先行して実行すること)が
行われるパイプライン処理装置において投機実行命令
(投機実行において実行はしてしまったが先行の分岐命
令による判定がまだ済んでいない状態の命令)の例外制
御(特に、投機実行命令である演算命令において演算例
外が生じた際にその演算例外に関する情報を保持するた
めの制御)を行う投機実行命令例外制御方式に関する。
【0002】
【従来の技術】投機実行が行われるパイプライン処理装
置では、投機実行時に演算例外が検出された場合に、そ
の演算例外の原因となる演算命令が投機実行命令であっ
たときに、その演算命令が本当に実行されることが確定
するまで、演算例外が発生したことを何らかの手段で保
存し、正確に演算例外が発生した時点での当該演算例外
に関する実行状態を保持する必要がある。
【0003】例えば、パイプライン処理装置で実行され
る命令列として、以下のような命令列が存在する場合を
考える。
【0004】 命令1 ADD命令 命令2 分岐命令 命令3 FAD命令(FOF例外) 命令4 分岐命令 命令5 FMLT命令(FUF例外)
【0005】この場合に、命令3および命令5の演算命
令で、かっこ書きに示すように各々FOF例外(浮動小
数点オーバフロー例外)およびFUF例外(浮動小数点
アンダフロー例外)が発生したとする。このときに、命
令3は命令2の分岐命令の分岐予測先として実行される
ため、命令2の分岐予測が成功した後でないと、FOF
例外が発生したことにしてはならない。また、命令5
は、命令2および命令4の2つの分岐命令の分岐予測が
成功した後でないと、FUF例外が発生したことにして
はならない。
【0006】すなわち、上記のような場合には、分岐予
測が成功した後に、演算命令に演算例外が生じたことと
当該演算例外に関する情報(例外種別(例外要因)を示
す情報等)を保持する必要がある。
【0007】なお、このような演算例外に関する情報を
保持するためには、例えば、結果仮格納レジスタからソ
フトウェアビジブルレジスタへのコピー(ソフトウェア
ビジブルレジスタ更新)が当該演算命令の後続命令につ
いて抑止され、またPSW(Program Stat
us Word)に例外種別情報が保持される。
【0008】ここで、上記の例に示すように複数の演算
命令で演算例外が生じた場合に、プログラムの上での命
令実行順で最も古い演算命令(他の演算命令に先行した
実行順の演算命令)に関する演算例外が生じた以降(当
該演算命令の後続命令)についてはソフトウェアビジブ
ルレジスタ更新を抑止して、上記演算例外に関する実行
状態の保持を正確に(命令実行順を考慮して)行う必要
がある。
【0009】従来の投機実行命令例外制御方式では、こ
のような要請(必要性)に応じるために、ROB(Re
Order Buffer。リオーダバッファ)内に
例外検出フィールド(例外制御を実現するための専用の
フィールド)を設けること等によって、複雑かつ情報量
の多い態様で当該例外制御が実現されていた。
【0010】
【発明が解決しようとする課題】上述した従来の投機実
行命令例外制御方式では、ROB内に例外検出フィール
ドを設けること等によって例外制御が実現されていたの
で、ハードウェア的に複雑な構成が必要になり、ハード
ウェアコストの面で難点が生じるという問題点があっ
た。
【0011】本発明の目的は、上述の点に鑑み、従来ハ
ードウェアコストの面等で難点があった投機実行命令の
例外発生後の実行状態の正確な(命令実行順を考慮し
た)保存を容易に実現することができ、正確に例外発生
状態を把握することができる(演算例外を発生させた演
算命令(例外発生命令)の中で最古の演算命令の次の命
令以降についてのソフトウェアビジブルレジスタ更新を
正確に抑止できる)投機実行命令例外制御方式を提供す
ることにある。
【0012】
【課題を解決するための手段】本発明の投機実行命令例
外制御方式は、投機実行が行われるパイプライン処理装
置において、命令ディスパッチ時に各命令に分岐レベル
を付与し、分岐予測成功の発生に応じて前記パイプライ
ン処理装置における各分岐レベルレジスタの分岐レベル
を更新する制御を行う分岐レベル制御手段(例えば、分
岐レベルの生成・付与を行う分岐レベルカウンタ制御部
と分岐レベル持ち回り制御を実現する分岐レベルレジス
タ群とを含む分岐レベル制御手段)と、命令実行順で各
命令が登録され、書込みポインタ(WPTR)および読
出しポインタ(RPTR)によって書込みおよび読出し
の制御が行われるROBと、前記分岐レベル制御手段に
よって付与・更新される分岐レベル毎にエントリを有
し、各エントリ中にROB登録番号および例外種別情報
を保持し、各エントリ中の比較制御部の制御によって当
該各エントリに対する分岐レベルを持つ例外発生命令の
中で最古の命令の情報を当該エントリに登録する演算例
外バッファと、読出しポインタによって指示される前記
ROB内の命令がリタイア可能となった場合に当該命令
のROB登録番号とその時点における前記演算例外バッ
ファ中の分岐レベル0に対するエントリ中のROB登録
番号とを比較し、両方のROB登録番号が一致した場合
に当該命令の後続命令(当該命令の次の命令以降)に関
するソフトウェアビジブルレジスタ更新を抑止する抑止
手段と、前記抑止手段による抑止の契機となった命令に
対する前記演算例外バッファ中の例外種別情報を取得し
て保持する例外種別情報保持手段とを有する。
【0013】なお、より一般的には、本発明の投機実行
命令例外制御方式は、投機実行が行われるパイプライン
処理装置において、分岐レベルの付与・更新のための制
御を行う分岐レベル制御手段と、アウトオブオーダ実行
で逆転された命令同士の順序関係の正確な実行順序をR
OB登録番号を用いて認識することによって、前記分岐
レベル制御手段で付与・更新された分岐レベルが0の例
外発生命令の中で最古の命令の後続命令に関するソフト
ウェアビジブルレジスタ更新を命令実行順を考慮して抑
止する抑止手段とを有する構成であると表現することが
できる。
【0014】また、本発明の投機実行命令例外制御方式
は、分岐レベルカウンタ制御部,デコードステージ制御
部,分岐/メモリアクセス命令追越しバッファ,演算命
令追越しバッファ,EIステージ制御情報レジスタ,E
Gステージ制御情報レジスタ,AIステージ分岐レベル
レジスタ,AIステージ制御情報レジスタ,AWステー
ジ分岐レベルレジスタ,AWステージ制御情報レジス
タ,結果仮格納レジスタ,ソフトウェアビジブルレジス
タ,セレクタ群(後述する図2中のセレクタ13〜16
が該当する),EIステージYオペランドデータレジス
タ,EIステージZオペランドデータレジスタアドレス
計算器/分岐判定器,AIステージYオペランドデータ
レジスタ,AIステージZオペランドデータレジスタ,
ALU(Arithmetic and Logic
Unit),分岐予測成功レジスタ,アドレス結果レジ
スタ,演算例外レジスタ,演算結果レジスタ,およびA
NDゲートを含むパイプライン処理装置(図2に示すよ
うなパイプライン処理装置)に適用されることが1つの
態様として想定される。
【0015】
【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
【0016】図1は、本発明の一実施の形態に係る投機
実行命令例外制御方式の構成を示す図(ブロック図およ
び回路図によって形成される図)である。
【0017】図1を参照すると、本実施の形態に係る投
機実行命令例外制御方式は、分岐レベル制御手段100
の制御対象の分岐レベル毎にエントリを有し各エントリ
にROB登録番号(以下、「ROB#」と略す)および
例外種別情報を保持する演算例外バッファ28と、命令
実行順で各命令が登録されWPTR30(書込みポイン
タ)およびRPTR31(読出しポインタ)によって書
込みおよび読出しの制御が行われるROB29と、分岐
レベルの付与および変更を制御する分岐レベル制御手段
100と、RPTR31によって指示されるROB29
内の命令がリタイア可能となった場合に当該命令のRO
B#とその時点における演算例外バッファ28中の分岐
レベル0に対するエントリ中のROB#とを比較し両者
が一致した場合に当該命令の後続命令に関するソフトウ
ェアビジブルレジスタ12の更新を抑止する抑止手段2
00と、結果仮格納レジスタ11,ソフトウェアビジブ
ルレジスタ12,およびWDR(Write Data
Register。ライトデータレジスタ)35から
なるレジスタファイル300と、抑止手段200による
抑止の契機となった命令に対する演算例外バッファ28
中の例外種別情報を取得してPSW52中に保持する例
外種別情報保持手段400とを含んで構成されている。
【0018】演算例外バッファ28は、分岐レベルの
0,1,2,および3に対応する4つのエントリ(エン
トリe0,エントリe1,エントリe2,およびエント
リe3)を含んで構成されている。
【0019】演算例外バッファ28内の各エントリ(エ
ントリe0〜e3)は、最古演算例外発生命令ROB#
格納部(ROB#0格納部(図1中では「ROB#0」
と表記する)36,ROB#1格納部(図1中では「R
OB#1」と表記する)37,ROB#2格納部(図1
中では「ROB#2」と表記する)38,またはROB
#3格納部(図1中では「ROB#3」と表記する)3
9)と、最古演算例外発生命令Int(Interru
pt。ここでは「例外種別情報」を意味する)格納部
(Int0格納部(図1中では「Int0」と表記す
る)40,Int1格納部(図1中では「Int1」と
表記する)41,Int2格納部(図1中では「Int
2」と表記する)42,またはInt3格納部(図1中
では「Int3」と表記する)43)と、ROB#の比
較に基づいて各エントリに情報が登録されようとする例
外発生命令の中で最古の命令を検出する比較制御部4
4,45,46,または47とを含んで構成されてい
る。
【0020】ROB#0格納部36,ROB#1格納部
37,ROB#2格納部38,またはROB#3格納部
39には、各々、分岐レベル0〜3の例外発生命令(演
算例外が発生した演算命令)群の中で最古の命令のRO
B#が格納される。
【0021】Int0格納部40,Int1格納部4
1,Int2格納部42,またはInt3格納部43に
は、各々、分岐レベルが0〜3の例外発生命令群の中で
最古の命令の演算例外種別(演算例外要因)を示す例外
種別情報が格納される。
【0022】なお、演算例外バッファ28のエントリ
数、すなわち分岐レベルのレベル数は、分岐レベルを管
理するための回路の収容性(ハードウェアコスト)や、
分岐レベルを深くすること(レベル数を増加すること)
による性能向上に関する投資効果等が考慮されて決定さ
れる。一般的には、本実施の形態におけるように、0〜
3の4段階のレベル数が望ましい態様であると考えられ
る。ここで、あらかじめ決定されたレベル数を超えた分
岐命令の連続したディスパッチ(分岐レベルのオーバフ
ロー)が発生しないように、例えば、デコードステージ
制御部2(図2参照)において分岐命令のデコードを抑
える制御が行われる。
【0023】抑止手段200は、ROB#(ROB登録
番号)一致受けフラグ32と、リタイアVビット33
と、ROB出力制御情報レジスタ34と、コンパレータ
48と、リタイア書込み抑止フラグ49と、NOTゲー
ト50と、ANDゲート51とを含んで構成されてい
る。
【0024】図2は、本実施の形態に係る投機実行命令
例外制御方式が適用されるパイプライン処理装置の全体
構成を示すブロック図である。
【0025】図2を参照すると、このパイプライン処理
装置は、分岐レベルカウンタ制御部1と、デコードステ
ージ制御部2と、分岐/メモリアクセス命令追越しバッ
ファ3と、演算命令追越しバッファ4と、EIステージ
制御情報レジスタ(図2中では「制御情報ei」で示
す)5と、EGステージ制御情報レジスタ(図2中では
「制御情報eg」で示す)6と、AIステージ分岐レベ
ルレジスタ(図2中では「分Lai」で示す)7と、A
Iステージ制御情報レジスタ(図2中では「制御情報a
i」で示す)8と、AWステージ分岐レベルレジスタ
(図2中では「分Law」で示す)9と、AWステージ
制御情報レジスタ(図2中では「制御情報aw」で示
す)10と、結果仮格納レジスタ11と、ソフトウェア
ビジブルレジスタ12と、セレクタ13〜16と、EI
ステージYオペランドデータレジスタ17と、EIステ
ージZオペランドデータレジスタ18と、アドレス計算
器/分岐判定器19と、AIステージYオペランドデー
タレジスタ20と、AIステージZオペランドデータレ
ジスタ21と、ALU22と、分岐予測成功レジスタ2
3と、アドレス結果レジスタ24と、演算例外レジスタ
25と、演算結果レジスタ26と、ANDゲート27
と、演算例外バッファ28と、ROB29とを含んで構
成されている。ここで、分岐レベルカウンタ制御部1お
よび本パイプライン処理装置に存在する分岐レベルレジ
スタ群(AIステージ分岐レベルレジスタ7およびAW
ステージ分岐レベルレジスタ9も含まれる)を含んで図
1中の分岐レベル制御手段100が形成される。また、
図1中の、ROB29の周辺回路や、リタイア抑止手段
200の構成要素や、レジスタファイル300内のWD
R35や、PSW52を含む例外種別情報保持手段40
0や、演算例外バッファ28とROB29との間の信号
線については、図が煩雑になるので、図2には示してい
ない。
【0026】なお、図2中の各構成要素間の信号線につ
いては、次のa〜dに示すルールに則り、符号が付与さ
れるものとする(図2上では、「信号線」の文言や、説
明に不要な信号線の符号の記入を省略している)。 a.1つの構成要素と他の1つの構成要素とを結ぶ信号
線は、両構成要素の符号を信号の方向の順に連続して並
べる。例えば、デコードステージ制御部2とROB29
との間の信号線の符号は、「229」となる。 b.1つの構成要素と他の2つの構成要素とを結ぶ信号
線は、当該他の2つの構成要素のうちで数が小さい符号
を持つ構成要素を対象として、aに示すルールで符号を
連続して並べる。例えば、演算結果レジスタ26と結果
仮格納レジスタ11およびソフトウェアビジブルレジス
タ12との間の信号線の符号は、「2611」となる。 c.1桁の符号を持つ構成要素間の信号線は、aおよび
bに示すルールによる符号の中間に0を挿入する。例え
ば、分岐レベルカウンタ制御部1と分岐/メモリアクセ
ス命令追越しバッファ3および演算命令追越しバッファ
4との間の信号線の符号は、「103」となる。 d.例外として、信号線1002,312,および41
2が存在する。
【0027】図2中の構成要素のいくつかについて、以
下に、説明を加える。
【0028】分岐レベルカウンタ制御部1は、本パイプ
ライン処理装置における投機実行の制御に必要な分岐レ
ベルという制御情報を生成し各命令に付与する制御を行
う。
【0029】デコードステージ制御部2は、信号線10
02で供給される命令を解読(デコード)し、信号線2
03で命令ディスパッチ指示を行う。
【0030】分岐/メモリアクセス命令追越しバッファ
3は、分岐命令またはメモリアクセス命令を一旦溜め
て、発行可能な命令から選択して発行(issue)す
ることで、追い越し制御を行う。
【0031】演算命令追越しバッファ4は、演算命令を
一旦溜めて、発行可能な命令から選択して発行すること
で、追い越し制御を行う。
【0032】EIステージ制御情報レジスタ5およびE
Gステージ制御情報レジスタ6は、各々、分岐/メモリ
アクセス命令側パイプラインステージであるEIステー
ジおよびEGステージの命令に対応する命令制御情報レ
ジスタであり、EIステージおよびEGステージに存在
する命令の有効ビット(Vビット)およびROB#を持
ち回る。また、EIステージ制御情報レジスタ5には分
岐予測情報も格納され、その分岐予測情報が信号線51
9でアドレス計算器/分岐判定器19に送られる。
【0033】AIステージ分岐レベルレジスタ7および
AWステージ分岐レベルレジスタ9は、各々、演算命令
側パイプラインステ−ジであるAIステージおよびAW
ステージの命令に対応する分岐レベルを持ち回る。
【0034】AIステージ命令制御情報レジスタ8およ
びAWステージ命令制御情報レジスタ10は、各々、A
IステージおよびAWステージの命令に対応する命令制
御情報レジスタであり、AIステージおよびAWステー
ジのに存在する命令の有効ビットおよびROB#を持ち
回る。
【0035】結果仮格納レジスタ11は、投機実行によ
って先行して実行(演算)された結果を仮に保持してお
くデータ格納領域である。
【0036】ソフトウェアビジブルレジスタ12は、ソ
フトウェアによって参照可能なレジスタであり、投機実
行された命令が投機ではない状態(真に実行してもよい
状態)に遷移した場合に、結果仮格納レジスタ11に格
納されたデータがコピーされるレジスタである。ここ
で、投機実行された命令が投機ではない状態に遷移した
場合に、結果仮格納レジスタ11に格納されたデータを
ソフトウェアビジブルレジスタ12にコピーする動作
を、「リタイア」と呼ぶ。
【0037】図3は、図2に示すパイプライン処理装置
における演算命令および分岐命令のパイプラインでの動
作を説明するための図である。図3中の(a)は演算命
令のパイプラインでの動作を示しており、図3中の
(b)は分岐命令のパイプラインでの動作を示してい
る。
【0038】図4は、分岐レベルを用いた投機実行制御
の態様を説明するための図である。
【0039】図5は、図2中の分岐レベルカウンタ制御
部1の構成および動作を説明するための図である。
【0040】図6は、分岐レベル持ち回り制御(図1中
の分岐レベル制御手段100による分岐レベルの更新の
制御)の態様を説明するための図である。
【0041】図7は、図1に示す投機実行命令例外制御
方式におけるリタイアタイミングを説明するための図で
ある。
【0042】図8は、図1および図2中の演算例外バッ
ファ28に対する登録制御のタイミングを説明するため
の図である。
【0043】図9は、図1に示す投機実行命令例外制御
方式による例外発生命令(演算例外発生の原因となった
演算命令)の次の命令以降についてのソフトウェアビジ
ブルレジスタ更新抑止タイミングを説明するための図で
ある。
【0044】次に、上述のように構成された本実施の形
態に係る投機実行命令例外制御方式の動作について、以
下の(1)〜(4)において詳細に説明する。
【0045】(1) パイプライン処理装置における全
体的な動作 まず、本実施の形態に係る投機実行命令例外制御方式の
動作説明の前提として、図2に示すパイプライン処理装
置における全体的な動作について説明する。
【0046】(1−1) 分岐/メモリアクセス命令の
実行に関する動作 分岐/メモリアクセス命令の実行の際には、2種類のオ
ペランドYおよびZのオペランドデータを、結果仮格納
レジスタ11またはソフトウェアビジブルレジスタ12
から読み出す必要がある。
【0047】このために、分岐/メモリアクセス命令追
越しバッファ3は、信号線311および312で、オペ
ランドYおよびZのアドレスを結果仮格納レジスタ11
およびソフトウェアビジブルレジスタ12に送出する。
同時に、分岐/メモリアクセス命令追越しバッファ3
は、YおよびZの各々について、結果仮格納レジスタ1
1およびソフトウェアビジブルレジスタ12のどちらに
オペランドデータが存在するかを信号線313および3
14の各々で示す(信号線313および314がオン
(2進数の「1」)である場合にはソフトウェアビジブ
ルレジスタ12にオペランドデータが存在することを示
し、オフ(2進数の「0」)である場合には結果仮格納
レジスタ11にオペランドデータが存在することを示
す)。
【0048】セレクタ13および14(分岐/メモリア
クセス命令側オペランドセレクタ)は、信号線313お
よび314の信号の有無(オン/オフ)に基づき、ソフ
トウェアビジブルレジスタ12からオペランドデータを
読み出すか結果仮格納レジスタ11からオペランドデー
タを読み出すかを選択する。
【0049】このような操作によって読み出されたオペ
ランドデータは、EIステージYオペランドデータレジ
スタ17およびEIステージZオペランドデータレジス
タ18に格納され、アドレス計算器/分岐判定器19に
送られ、分岐先アドレスはアドレス結果レジスタ24に
格納され、分岐予測判定結果(分岐予測成功の場合に
「1」を示す情報)が分岐予測成功レジスタ23に格納
される。
【0050】分岐予測成功レジスタ23の分岐予測結果
は、信号線2327によってANDゲート27に送出さ
れる。
【0051】ANDゲート27は、この分岐予測結果と
EGステージ制御情報レジスタ6内の分岐命令の有効ビ
ットとのAND(論理積)を求めることにより分岐予測
成功信号(分岐予測の成功を「1」で示す信号)を生成
し、当該分岐予測成功信号を信号線2728を介して本
実施の形態において特徴的な構成要素である演算例外バ
ッファ28に送る(図1参照)。
【0052】(1−2) 演算命令の実行に関する動作 演算命令の実行の際にも、上記の(1−1)の場合と同
様に、2種類のオペランドYおよびZのオペランドデー
タを、結果仮格納レジスタ11またはソフトウェアビジ
ブルレジスタ12から読み出す必要がある。
【0053】このために、演算命令追越しバッファ4
は、信号線411および412で、オペランドYおよび
Zのアドレスを結果仮格納レジスタ11およびソフトウ
ェアビジブルレジスタ12に送出する。同時に、演算命
令追越しバッファ4は、YおよびZの各々について、結
果仮格納レジスタ11およびソフトウェアビジブルレジ
スタ12のどちらにオペランドデータが存在するかを信
号線415および416の各々で示す(信号線415お
よび416がオンである場合にはソフトウェアビジブル
レジスタ12にオペランドデータが存在することを示
し、オフである場合には結果仮格納レジスタ11にオペ
ランドデータが存在することを示す)。
【0054】セレクタ15および16(演算命令側オペ
ランドセレクタ)は、信号線415および416の信号
の有無(オン/オフ)に基づき、ソフトウェアビジブル
レジスタ12からオペランドデータを読み出すか結果仮
格納レジスタ11からオペランドデータを読み出すかを
選択する。
【0055】このような操作によって読み出されたオペ
ランドデータは、AIステージYオペランドデータレジ
スタ20およびAIステージZオペランドデータレジス
タ21に格納され、ALU22に送られる。そして、A
LU22における演算結果は演算結果レジスタ26に格
納され、演算例外検出結果(演算例外の発生を「1」で
示す情報)が演算例外レジスタ25に格納される。
【0056】演算例外レジスタ25の演算例外検出結果
は、信号線2528によって、本実施の形態において特
徴的な構成要素である演算例外バッファ28に送られる
(図1参照)。
【0057】(2) パイプラインにおける命令動作タ
イミング 次に、図3に基づき、図2に示すパイプライン処理装置
における演算命令および分岐命令のパイプライン動作タ
イミングについて説明する。
【0058】(2−1) 演算命令の動作タイミング 図3中の(a)を参照して、演算命令のパイプライン動
作タイミングを説明する。
【0059】演算命令は、まず、命令解読とディスパッ
チ(Dispatch)を行うDステージでディスパッ
チされ、ARステージで演算命令追越しバッファ4に移
行(格納)され、発行(Issue)されるのを待つ状
態となる。
【0060】そして、発行されたら、レジスタファイル
300(結果仮格納レジスタ11またはソフトウェアビ
ジブルレジスタ12)に対してリード(read)アド
レスが送出される(ARステージ)。
【0061】このアドレスに基づきオペランドデータが
読み出されて、AIステージYオペランドデータレジス
タ20およびAIステージZオペランドデータレジスタ
21にオペランドデータが格納される。そのステージが
AIステージである。
【0062】次に、ALU22で演算が実行され、AW
ステージで演算結果が得られる(演算結果が演算結果レ
ジスタ26に格納される)。それと同時に、演算例外も
検出される(演算例外検出結果が演算例外レジスタ25
に格納される)。さらに、演算結果は、AWステージの
次のステージで、レジスタファイル300に格納され
る。
【0063】(2−2) 分岐命令の動作タイミング 図3中の(b)を参照して、分岐命令のパイプライン動
作タイミングを説明する。
【0064】分岐命令は、Dステージでディスパッチさ
れ、MRステージで分岐/メモリアクセス命令追越しバ
ッファ3に移行(格納)され、発行されるのを待つ状態
となる。
【0065】演算命令の場合と同様に、MRステージで
送出されるリードアドレスに基づいて、レジスタファイ
ル300(結果仮格納レジスタ11またはソフトウェア
ビジブルレジスタ12)からオペランドデータがEIス
テージYオペランドデータレジスタ17およびEIステ
ージZオペランドデータレジスタ18に読み出され(E
Iステージ)、EGステージのタイミングでは、分岐先
アドレスが取得され(分岐先アドレスがアドレス結果レ
ジスタ24に格納され)、分岐予測判定結果(成功また
は失敗)が検出される(分岐予測判定結果が分岐予測成
功レジスタ23に格納される)。
【0066】(3) 分岐レベルによる投機実行制御の
態様 次に、図4,図5,および図6に基づき、分岐レベルを
用いた投機実行制御の態様について説明する。これによ
り、図1中の分岐レベル制御手段100の処理内容を明
確にする。
【0067】(3−1) 分岐レベルの考え方 まず、図4に基づき、投機実行制御における分岐レベル
の考え方について説明する。
【0068】ここでは、具体例として、図4に示すよう
に、命令1〜命令7の命令列が分岐命令によって区分さ
れている場合を考える。
【0069】この場合に、本実施の形態、ひいては本発
明では、図4に示すように各命令に「分岐レベル」とい
う制御情報が付与される。「分岐レベル」は、投機実行
時に分岐命令間の命令列を区分するために必要な情報で
あり、全ての命令に命令解読ステージ(Dステージ)で
付与され、分岐レベルが0の命令は非投機状態であると
みなされる。
【0070】図4に示す具体例においては、分岐予測成
功前の場合に、命令2の分岐命令さえ分岐予測成功/失
敗の判断がつかないとすると、(a)に示すように分岐
レベルが付与される。
【0071】図4中の(b)には、図4中の(a)の状
態において分岐予測成功が発生した場合の分岐レベルの
変化を示している。
【0072】分岐予測成功によって、「(a)の状態で
分岐レベルが1であった命令の分岐レベルは0となる」
というように、分岐レベルが更新される。すなわち、以
下に示すような法則に基づいて分岐レベルが移行する。
【0073】 分岐レベル0の命令 → 分岐レベル0のまま 分岐レベル1の命令 → 分岐レベル0に更新 分岐レベル2の命令 → 分岐レベル1に更新 分岐レベル3の命令 → 分岐レベル2に更新
【0074】本実施の形態、ひいては本発明の投機実行
命令例外制御方式では、このような「分岐レベル」とい
う考え方を使用することを前提として、演算結果の格納
制御や例外情報管理等が行われている。
【0075】(3−2) 分岐レベルカウンタに関する
動作 次に、図5に基づき、分岐レベルカウンタ制御部1の制
御に関する動作について説明する。
【0076】図5中の(a)には、分岐レベルカウンタ
制御部1の詳細な構成を示している。すなわち、分岐レ
ベルカウンタ制御部1は、分岐レベルカウンタ(図5中
では「分Lカウンタ」で示す)501と、インクリメン
タ502と、デクリメンタ503と、セレクタ504と
を含んで構成されている。また、信号線201で分岐命
令ディスパッチを受け、ANDゲート27の出力情報に
基づいて分岐予測成功または分岐予測失敗の信号を入力
する(なお、図5中の分岐予測成功および分岐予測失敗
の信号に関するANDゲート27と分岐レベルカウンタ
制御部1との間の信号線については図2には示していな
い)。さらに、セレクタ504の出力信号が、分岐レベ
ルカウンタ制御部1の出力信号線である信号線103上
に発行される。
【0077】図5中の(b)には、図5中の(a)に示
す分岐レベルカウンタ制御部1における制御の内容を真
理値表で示している。
【0078】分岐予測失敗が発生した場合には、正しい
分岐先命令がもう一度最初から実行し直されるので、分
岐レベルカウンタ501の値は無条件に0にされる。
【0079】また、分岐予測成功が発生した場合には、
後続命令群の分岐レベルは−1されるべきなので、分岐
レベルカウンタ501の値がデクリメンタ503によっ
て−1される。
【0080】さらに、分岐命令ディスパッチが発生した
場合には、そこで分岐レベルの区切りが生じたことにな
るので、後続命令にはより大きな値の分岐レベルが付与
される。したがって、分岐レベルカウンタ501はイン
クリメンタ502によって+1される。
【0081】またさらに、分岐予測成功と分岐命令ディ
スパッチとが同時に発生した場合には、+/−が相殺さ
れて値は不変となる。ここで、ディスパッチされた命令
に付与される分岐レベルは、分岐予測成功が同時に発生
した場合には、−1されなければならない。ただし、分
岐レベルが0の場合には、−1してはならない。
【0082】(3−3) 分岐レベル持ち回り制御 次に、図6に基づき、分岐レベル持ち回り制御(図2に
示すパイプライン処理装置内の各分岐レベルレジスタに
おける分岐レベルの値の更新に関する制御)について説
明する。
【0083】図6には、具体例として、演算命令追越し
バッファ4内の各エントリにおける分岐レベルレジスタ
およびAIステージ分岐レベルレジスタ7について、詳
細な分岐レベル持ち回り制御回路構成を示している(図
6中の「分LREG」は持ち回り制御のための周辺回路
を除く狭義の分岐レベルレジスタを示している)。
【0084】このような分岐レベルレジスタ(図6に示
すもの以外の本パイプライン処理装置内の各分岐レベル
レジスタについても同様)は全て同じ構成を有してお
り、分岐予測成功が発生した場合には、分岐レベルレジ
スタ群が同時に−1されなければならない。ただし、分
岐予測成功発生前の分岐レベルが0の場合には−1して
はならない。
【0085】また、分岐レベルレジスタがホールドされ
ている場合(図6中の「HLD」で示す信号が与えられ
ている場合)に分岐予測成功が発生したときには、次段
に送出する分岐レベルの情報をそのままホールド時の設
定値にすることで、ホールド時でも適切な分岐レベルの
更新が可能となる。
【0086】(4) 投機実行命令の例外制御に関する
動作 次に、以上の(1)〜(3)の処理が行われることを前
提として、本実施の形態に係る投機実行命令例外制御方
式における「投機実行命令の例外制御」(本発明に特徴
的な例外制御)に関する動作を説明する。
【0087】(4−1) ROB29に対する登録・解
放制御およびレジスタファイル300におけるリタイア
制御に関する動作 まず、図1を参照して、ROB29に対する命令の登録
および解放の制御と、レジスタファイル300における
リタイア制御とに関する動作について説明する。
【0088】デコードステージ制御部2からディスパッ
チされた全ての命令は、信号線229を介して、ROB
29に命令実行順(in−order)で登録される。
また、同タイミングで、分岐レベルカウンタ制御部1よ
り信号線103を介して送られてきた分岐レベルという
制御情報もROB29に格納される。
【0089】その際、登録された命令には、ROB#が
付与される。そして、当該ROB#は、各パイプライン
ステ−ジの制御情報に含まれ、命令の識別子としてリプ
ライデータ管理等の制御に利用される。
【0090】WPTR30は、ROB29に対して次回
に命令が登録される際のエントリ番号(ROB#となる
番号)を保持するカウンタであり、ROB29に新たな
命令が登録された時にカウントアップされる。
【0091】ROB29に登録された命令は、その命令
のリタイアが行われる時点でROB29から解放され
る。ROB29はFIFO(First In Fir
st Out)構造をとっており、ROB29から命令
が解放される時も命令実行順でその解放が行われる。よ
って、ROB29における最古の命令のエントリ番号
(ROB#)は常にRPTR31によって示され、1つ
の命令がリタイアされるとRPTR31はカウントアッ
プされる。
【0092】なお、命令のリタイア可能条件は、非投機
状態(先行する分岐命令の実行が全て完了し、その分岐
予測が当たっている状態)となることであり、ROB2
9内に存在する当該命令の分岐レベル(当該命令に対す
るROB29内のエントリ中の分岐レベルレジスタの
値)が0となることで判る。
【0093】命令がリタイアされると、結果仮格納レジ
スタ11に格納されているその命令の実行結果がソフト
ウェアビジブルレジスタ12にコピーされ、その命令の
実行内容をソフトウェアによって参照することが可能に
なり、その命令の実行が正式に完了する。
【0094】ここで、図7に基づいて、リタイア制御タ
イミングを具体的に説明する。
【0095】EGステージで分岐命令の分岐予測成功が
判明した場合には、その分岐命令に後続する演算命令が
登録されているROB29のエントリに存在する分岐レ
ベルレジスタがカウントダウンされる。
【0096】図7に示す具体例では、そのカウントダウ
ンによって、その分岐レベルレジスタの値(分岐レベ
ル)が0となり、当該演算命令は非投機状態になる。こ
の瞬間、当該演算命令はリタイア可能となり、リタイア
Vビット33(図1参照)のセットが行われ、ROB出
力制御情報レジスタ34にROB29からの読み出し情
報(ソフトウェアビジブルレジスタ12におけるライト
アドレス(WA))が格納される。
【0097】それと同時に、RPTR31によって示さ
れるアドレス(当該演算命令のROB#が該当する。図
7ではn)で結果仮格納レジスタ11から当該演算命令
の結果が読み出され、その読出しデータ(当該演算命令
の結果)がWDR35に格納される。
【0098】さらに、次のサイクル(ステージ)で、ソ
フトウェアビジブルレジスタ12がWE(Write
Enable。ライトイネーブル)となって、当該演算
命令の結果がROB出力制御情報レジスタ34内のライ
トアドレスによって特定されるソフトウェアビジブルレ
ジスタ12内の領域に格納される。
【0099】(4−2) 演算例外バッファ28に対す
る登録制御に関する動作 次に、演算例外バッファ28に対する登録制御の概要に
ついて説明する。
【0100】演算例外バッファ28への登録は、演算例
外を伴う演算命令がAWステージに現れたことによって
行われる。この「演算例外を伴う演算命令がAWステー
ジに現れたこと」は、信号線1028上のVaw(AW
ステージ制御情報レジスタ10中の情報の一部)と、信
号線2528上の演算例外レジスタ25内の演算例外種
別毎の演算例外の発生を示す情報(演算例外検出結果)
の6ビットOR出力とのAND(図1中の信号線100
0の値)が「1」になることによって判る。
【0101】この時、信号線928によって送られてく
る分岐レベル(AWステージ分岐レベルレジスタ9内の
分岐レベル)に対応する演算例外バッファ28内のエン
トリにおいて、当該演算命令よりも古い(プログラム上
の命令実行順で「古い」)命令の例外情報(ROB#お
よび例外種別情報)が既に登録されている場合には、演
算例外バッファ28には何も格納されず当該演算命令に
関する情報は捨てられる。
【0102】ここで、「演算例外バッファ28に古い命
令が既に登録されているか否か」の認識は、RPTR3
1の値(ROB29の先頭エントリ番号を示すROB
#),WPTR30の値(ROB29の最終エントリ番
号を示すROB#),情報を登録しようとする演算命令
のROB#,および演算例外バッファ28に既に登録さ
れている当該分岐レベルに対するエントリ中のROB#
の比較によって、比較制御部44〜47により判断され
る。
【0103】比較制御部44〜47による「演算例外バ
ッファ28に登録されようとしている命令と既に登録さ
れている命令とのいずれが古いかを検出する制御」につ
いて、簡単に説明を加える。
【0104】演算命令の実行は演算命令追越しバッファ
4の制御により、アウトオブオーダ(out−of−o
rder)で行われるため、先にAWステージに到達し
た命令が古い命令であるとは限らない。しかし、ROB
29に登録される順番はインオーダであるため、ROB
#の比較によってどちらの命令が古いかを知ることがで
きる(ただし、ROB29の登録が一回りしてWPTR
30の値とRPTR31との値が逆転する可能性もある
ので、WPTR30の値とRPTR31の値との大小関
係が逆転しないようにチェックする等の注意が必要にな
る)。
【0105】比較制御部44〜47は、このようなRO
B#の性質に基づくROB#の比較制御を行い、演算例
外バッファ28の各エントリに登録されようとしている
例外情報(AWステージの命令に関する演算例外の例外
情報)のストローブ信号(図1中のSで示す)の生成を
制御する。
【0106】また、分岐予測成功が発生した場合には、
演算例外バッファ28内のエントリe1〜e3のROB
#1格納部37,ROB#2格納部38,およびROB
#3格納部39ならびにInt1格納部41,Int2
格納部42,およびInt3格納部43の情報は、各
々、ROB#0格納部36,ROB#1格納部37,お
よびROB#2格納部38ならびにInt0格納部4
0,Int1格納部41,およびInt2格納部42に
シフトされる。ただし、若いエントリに既に有効な情報
が格納されている場合には、先行命令(より古い命令)
で演算例外が発生している場合に該当するので、シフト
されてきたROB#および例外種別情報は捨てられる。
【0107】次に、図8に基づき、演算例外バッファ2
8への登録制御のタイミングについて具体的に説明す
る。
【0108】図8中の(a)では、演算命令(分岐レベ
ルが2でありAWステージに存在する演算命令)でFO
F例外(浮動小数点オーバーフロー例外)が発生した場
合のタイミングを示している。この場合には、AWステ
ージの次のタイミングでInt2格納部42にはFOF
識別情報(例外種別情報の1つ)が格納され、ROB#
2格納部38にはROB#の「n」が格納される。
【0109】図8中の(b)では、分岐命令の分岐予測
成功時の演算例外バッファ28におけるシフト動作のタ
イミングについて示している。EGステージにおける分
岐予測成功の発生後に、Int3格納部43の情報(F
OF識別情報)はInt2格納部42に移行され、RO
B#3格納部39の情報(n)はROB#2格納部38
に移行される。
【0110】(4−3) ソフトウェアビジブルレジス
タ12の更新の抑止動作次に、図1および図9に基づ
き、本実施の形態、ひいては本発明において最も特徴的
な「演算例外発生後のソフトウェアビジブルレジスタ1
2の更新の抑止動作」について説明する。
【0111】図1中の抑止手段200は、図9に示すよ
うなタイミングで、当該抑止動作を行う。すなわち、演
算例外を発生させた演算命令の例外情報が演算例外バッ
ファ28のエントリe0(分岐レベル0に対応するエン
トリ)に登録されていた場合に、その演算命令がリタイ
ア動作にはいった時、すなわちリタイア可能の信号が点
灯した時(リタイアVビット33がセットされた時)
に、以下に示すような動作を行う。
【0112】まず、コンパレータ48によって、RPT
R31の内容(ROB#)とROB#0格納部36の内
容(ROB#)とを比較し、両方のROB#が一致する
か否かを判定する。
【0113】この判定で両方のROB#が一致した場合
には、その旨を示す信号をROB#一致受けフラグ32
で受けて、その次のタイミングでリタイア書込み抑止フ
ラグ49を点灯しっぱなしにする。
【0114】これによって、演算例外が発生した命令の
次の命令以降についてのソフトウェアビジブルレジスタ
12の更新は抑止される(NOTゲート50およびAN
Dゲート51の作用でソフトウェアビジブルレジスタ1
2のWE端子にオン信号が送出されることがなくな
る)。
【0115】ここで、抑止手段200は、上記の処理を
行うに際して、命令実行順を考慮した上で正確に当該抑
止を実現する。すなわち、演算例外の発生した演算命令
が複数存在する場合に、命令実行順(ROB#順)で最
古の演算命令について、その演算命令の次の命令以降に
ついてのソフトウェアビジブルレジスタ12の更新を抑
止する。
【0116】また、例外情報種別保持手段400は、上
記の抑止手段200による抑止処理の契機となった演算
命令に対する演算例外バッファ28中の例外種別情報
(Int0格納部40内の情報)を、リタイア書込み抑
止フラグ49に対するストローブ信号と同一のストロー
ブ信号に基づくタイミングでPSW52に登録し保持す
る。
【0117】
【発明の効果】以上説明したように、本発明によると、
以下に示すような効果が生じる。
【0118】第1の効果は、投機実行命令の例外制御に
おける演算例外発生後の実行状態の保存を簡易に、かつ
ハードウェアコストの面で優位に実現することができる
ということである。このような効果が生じる理由は、分
岐レベルの考え方を採用し、従来ROBに持たせていた
投機実行命令の例外制御に関する情報を、演算例外バッ
ファ等に持たせることができ、ROBにおけるハードウ
ェアの負担を少なくすることができる(例えば、情報量
が大きい例外種別情報をROBに持たせる必要がなくな
る)からである。
【0119】第2の効果は、演算例外発生後の実行状態
を保存して例外発生状態を把握するにあたって、正確に
(命令実行順を考慮して)その例外発生状態を把握する
ことができるということである。このような効果が生じ
る理由は、抑止手段の動作等によってROB#(ROB
登録番号)に基づく「命令実行順を考慮したソフトウェ
アビジブルレジスタの更新の抑止」を行うことができる
からである。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係る投機実行命令例外
制御方式の構成を示す図である。
【図2】図1に示す投機実行命令例外制御方式が適用さ
れるパイプライン処理装置の全体構成を示すブロック図
である。
【図3】図2に示すパイプライン処理装置における演算
命令および分岐命令のパイプラインでの動作を説明する
ための図である。
【図4】分岐レベルを用いた投機実行制御の態様を説明
するための図である。
【図5】図2中の分岐レベルカウンタ制御部の構成およ
び動作を説明するための図である。
【図6】分岐レベル持ち回り制御(図1中の分岐レベル
制御手段による分岐レベルの更新の制御)の態様を説明
するための図である。
【図7】図1に示す投機実行命令例外制御方式における
リタイアタイミングを説明するための図である。
【図8】図1および図2中の演算例外バッファに対する
登録制御のタイミングを説明するための図である。
【図9】図1に示す投機実行命令例外制御方式による例
外発生命令の次の命令以降についてのソフトウェアビジ
ブルレジスタ更新抑止タイミングを説明するための図で
ある。
【符号の説明】
1 分岐レベルカウンタ制御部 2 デコードステージ制御部 3 分岐/メモリアクセス命令追越しバッファ 4 演算命令命令追越しバッファ 5 EIステージ制御情報レジスタ 6 EGステージ制御情報レジスタ 7 AIステージ分岐レベルレジスタ 8 AIステージ制御情報レジスタ 9 AWステージ分岐レベルレジスタ 10 AWステージ制御情報レジスタ 11 結果仮格納レジスタ 12 ソフトウェアビジブルレジスタ 13,14,15,16,504 セレクタ 17 EIステージYオペランドデータレジスタ 18 EIステージZオペランドデータレジスタ 19 アドレス計算器/分岐判定器 20 AIステージYオペランドデータレジスタ 21 AIステージZオペランドデータレジスタ 22 ALU 23 分岐予測成功レジスタ 24 アドレス結果レジスタ 25 演算例外レジスタ 26 演算結果レジスタ 27,51 ANDゲート 28 演算例外バッファ 29 ROB 30 WPTR 31 RPTR 32 ROB#(ROB登録番号)一致受けフラグ 33 リタイアVビット 34 ROB出力制御情報レジスタ 35 WDR 36 ROB#0格納部 37 ROB#1格納部 38 ROB#2格納部 39 ROB#3格納部 40 Int0格納部 41 Int1格納部 42 Int2格納部 43 Int3格納部 44,45,46,47 比較制御部 48 コンパレータ 49 リタイア書込み抑止フラグ 50 NOTゲート 52 PSW 100 分岐レベル制御手段 200 抑止手段 300 レジスタファイル 400 例外種別情報保持手段 501 分岐レベルカウンタ 502 インクリメンタ 503 デクリメンタ

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 投機実行が行われるパイプライン処理装
    置において、分岐レベルの付与・更新のための制御を行
    う分岐レベル制御手段と、アウトオブオーダ実行で逆転
    された命令同士の順序関係の正確な実行順序をROB登
    録番号を用いて認識することによって、前記分岐レベル
    制御手段で付与・更新された分岐レベルが0の例外発生
    命令の中で最古の命令の後続命令に関するソフトウェア
    ビジブルレジスタ更新を命令実行順を考慮して抑止する
    抑止手段とを有することを特徴とする投機実行命令例外
    制御方式。
  2. 【請求項2】 投機実行が行われるパイプライン処理装
    置において、命令ディスパッチ時に各命令に分岐レベル
    を付与し、分岐予測成功の発生に応じて前記パイプライ
    ン処理装置における各分岐レベルレジスタの分岐レベル
    を更新する制御を行う分岐レベル制御手段と、命令実行
    順で各命令が登録され、書込みポインタおよび読出しポ
    インタによって書込みおよび読出しの制御が行われるR
    OBと、前記分岐レベル制御手段によって付与・更新さ
    れる分岐レベル毎にエントリを有し、各エントリ中にR
    OB登録番号および例外種別情報を保持し、各エントリ
    中の比較制御部の制御によって当該各エントリに対する
    分岐レベルを持つ例外発生命令の中で最古の命令の情報
    を当該エントリに登録する演算例外バッファと、読出し
    ポインタによって指示される前記ROB内の命令がリタ
    イア可能となった場合に当該命令のROB登録番号とそ
    の時点における前記演算例外バッファ中の分岐レベル0
    に対するエントリ中のROB登録番号とを比較し、両方
    のROB登録番号が一致した場合に当該命令の後続命令
    に関するソフトウェアビジブルレジスタ更新を抑止する
    抑止手段と、前記抑止手段による抑止の契機となった命
    令に対する前記演算例外バッファ中の例外種別情報を取
    得して保持する例外種別情報保持手段とを有することを
    特徴とする投機実行命令例外制御方式。
  3. 【請求項3】 ROB登録番号一致受けフラグ,リタイ
    アVビット,ROB出力制御情報レジスタ,コンパレー
    タ,リタイア書込み抑止フラグ,NOTゲート,および
    ANDゲートを含んで構成される抑止手段を有すること
    を特徴とする請求項2記載の投機実行命令例外制御方
    式。
  4. 【請求項4】 分岐レベルカウンタ制御部,デコードス
    テージ制御部,分岐/メモリアクセス命令追越しバッフ
    ァ,演算命令追越しバッファ,EIステージ制御情報レ
    ジスタ,EGステージ制御情報レジスタ,AIステージ
    分岐レベルレジスタ,AIステージ制御情報レジスタ,
    AWステージ分岐レベルレジスタ,AWステージ制御情
    報レジスタ,結果仮格納レジスタ,ソフトウェアビジブ
    ルレジスタ,セレクタ群,EIステージYオペランドデ
    ータレジスタ,EIステージZオペランドデータレジス
    タアドレス計算器/分岐判定器,AIステージYオペラ
    ンドデータレジスタ,AIステージZオペランドデータ
    レジスタ,ALU,分岐予測成功レジスタ,アドレス結
    果レジスタ,演算例外レジスタ,演算結果レジスタ,お
    よびANDゲートを含むパイプライン処理装置に適用さ
    れることを特徴とする請求項1,請求項2,または請求
    項3記載の投機実行命令例外制御方式。
  5. 【請求項5】 分岐レベルの生成・付与を行う分岐レベ
    ルカウンタ制御部と分岐レベル持ち回り制御を実現する
    分岐レベルレジスタ群とを含む分岐レベル制御手段を有
    することを特徴とする請求項1,請求項2,請求項3,
    または請求項4記載の投機実行命令例外制御方式。
  6. 【請求項6】 分岐レベルが0〜3の4段階のレベルで
    あることを特徴とする請求項1,請求項2,請求項3,
    請求項4,または請求項5記載の投機実行命令例外制御
    方式。
JP26440999A 1999-09-17 1999-09-17 投機実行命令例外制御方式 Expired - Lifetime JP3452246B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26440999A JP3452246B2 (ja) 1999-09-17 1999-09-17 投機実行命令例外制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26440999A JP3452246B2 (ja) 1999-09-17 1999-09-17 投機実行命令例外制御方式

Publications (2)

Publication Number Publication Date
JP2001092659A JP2001092659A (ja) 2001-04-06
JP3452246B2 true JP3452246B2 (ja) 2003-09-29

Family

ID=17402773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26440999A Expired - Lifetime JP3452246B2 (ja) 1999-09-17 1999-09-17 投機実行命令例外制御方式

Country Status (1)

Country Link
JP (1) JP3452246B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001363B2 (en) * 2005-04-04 2011-08-16 Globalfoundries Inc. System for speculative branch prediction optimization and method thereof
US7721076B2 (en) * 2006-12-18 2010-05-18 Intel Corporation Tracking an oldest processor event using information stored in a register and queue entry

Also Published As

Publication number Publication date
JP2001092659A (ja) 2001-04-06

Similar Documents

Publication Publication Date Title
US5887161A (en) Issuing instructions in a processor supporting out-of-order execution
US6775761B2 (en) System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
JP3014773B2 (ja) プロセサアーキテクチャ
JP2597811B2 (ja) データ処理システム
EP0851343B1 (en) System for processing floating point operations
US5913048A (en) Dispatching instructions in a processor supporting out-of-order execution
US5826055A (en) System and method for retiring instructions in a superscalar microprocessor
US6098167A (en) Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
JPS59114641A (ja) 割込処理装置
JPH0619707A (ja) 情報処理装置
US5870597A (en) Method for speculative calculation of physical register addresses in an out of order processor
CN101322111A (zh) 每个线程具有多个并发流水线的多线程处理器
US6317821B1 (en) Virtual single-cycle execution in pipelined processors
US6298435B1 (en) Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor
US6049868A (en) Apparatus for delivering precise traps and interrupts in an out-of-order processor
KR20010053623A (ko) 명령들의 철회시 물리적인 레지스터들을 선택적으로자유롭게 사용하도록 구성된 프로세서
US10255071B2 (en) Method and apparatus for managing a speculative transaction in a processing unit
JP3452246B2 (ja) 投機実行命令例外制御方式
US6880069B1 (en) Replay instruction morphing
US9323532B2 (en) Predicting register pairs
US6253310B1 (en) Delayed deallocation of an arithmetic flags register
JP5093237B2 (ja) 命令処理装置
US11663014B2 (en) Speculatively executing instructions that follow a status updating instruction
JP2824484B2 (ja) パイプライン処理計算機
JP2901573B2 (ja) スーパースカラー方式の情報処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080718

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090718

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100718

Year of fee payment: 7