JP3852782B2 - 分岐予測機構を持つ命令制御装置及びその制御方法 - Google Patents
分岐予測機構を持つ命令制御装置及びその制御方法 Download PDFInfo
- Publication number
- JP3852782B2 JP3852782B2 JP2005500202A JP2005500202A JP3852782B2 JP 3852782 B2 JP3852782 B2 JP 3852782B2 JP 2005500202 A JP2005500202 A JP 2005500202A JP 2005500202 A JP2005500202 A JP 2005500202A JP 3852782 B2 JP3852782 B2 JP 3852782B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- prediction
- branch instruction
- control
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000002401 inhibitory effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 24
- 238000003672 processing method Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
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
ID又は、IID)が割り当てられている。実行パイプライン上ではアウトオブオーダ方式の処理に従って、各命令が処理されるが、命令完了時にはIIDに基づいて、前述のインオーダ処理で命令の完了が行われる。
第1の条件を満たす場合は:+RSBR_VALID & −RSBR_BRHIS_HIT & +RSBR_RESOLVED & +RSBR_TAKENが真である場合であり、
第2の条件を満たす場合は:+RSBR_VALID & +RSBR_BRHIS_HIT & +RSBR_RESOLVED & −RSBR_TAKENが真である場合であり、
第3の条件を満たす場合は:+RSBR_VALID & +RSBR_BRHIS_HIT & +RSBR_TAV & −RSBR_TGTCP_MATCHが真である場合であり、
第4の条件を満たす場合は:+RSBR_PHANTOM_VALIDが真である場合である。
(1)+RSBR_VALIDは、RSBR114エントリが分岐命令であることを示す。
(2)+RSBR_BRHIS_HITは、そのエントリがBRHIS113で“分岐する”と予測されたことを示す。
(3)+RSBR_RESOLVEDは、そのエントリの分岐条件が確定したことを示す。
(4)+RSBR_TAKENは、そのエントリが分岐することを示す。
(5)+RSBR_TAVは、そのエントリの分岐アドレスが確定したことを示す。
(6)+RSBR_TGTCP_MATCHは、そのエントリの予測分岐アドレスが正しいアドレスであることを示す。
(7)+RSBR_PHANTOM_VALIDは、分岐命令でない命令を、分岐命令のように分岐すると判断したことを示す。
記号は、負論理であることを示す。即ち、例えば、上述の(1)+RSBR_VALIDについては、” そのエントリがBRHIS113で“分岐する”と予測された”時に、+RSBR_VALIDは正である。一方、”
そのエントリがBRHIS113で“分岐する”と予測された”時に、+RSBR_VALIDは負である。又、記号”&”は論理積の演算を示す。
Claims (8)
- 記憶手段からの命令のフェッチ制御を行う命令フェッチ制御手段と、
前記記憶手段からフェッチされた命令を一時記憶する命令バッファ手段と、
前記フェッチされた命令のうち分岐命令の分岐予測を行う分岐命令予測手段と、
前記命令フェッチ制御手段、前記命令バッファ手段及び前記分岐命令予測手段を制御する分岐命令制御手段とを有し、前記命令をアウトオブオーダに実行する命令制御装置において、
前記分岐命令制御手段が、前記分岐命令の分岐条件が確定したことにより前記分岐命令予測手段による分岐予測が誤りであると判断した場合には、
前記分岐予測が誤りであると判断してから分岐先アドレスが確定するまでの間、前記分岐命令制御手段が、前記命令フェッチ制御手段による命令フェッチ制御を継続して抑止するとともに、前記命令バッファ手段の無効化を継続して行うことを特徴とする命令制御装置。 - 前記分岐命令制御手段は、
前記分岐命令予測手段により分岐が成立すると予測された分岐命令について分岐が成立しない場合、又は
前記分岐命令予測手段により分岐が成立しないと予測された分岐命令について分岐が成立する場合、又は
前記分岐命令予測手段により分岐が成立すると予測された分岐命令の分岐先アドレスが誤りである場合、又は
前記分岐命令予測手段により分岐命令でない命令を分岐命令であるかのごとく分岐が成立すると予測する場合、
の何れかの場合に、前記分岐命令予測手段による分岐予測が誤りであると判断することを特徴とする請求項1記載の命令制御装置。 - 記憶制御手段により制御される記憶手段からの命令のフェッチ制御を行う命令フェッチ制御手段と、
前記記憶手段からフェッチされた命令を一時記憶する命令バッファ手段と、
前記命令バッファ手段から供給される命令のデコードを行う命令デコード手段と、
前記デコードされた命令のうち分岐命令の分岐予測を行う分岐命令予測手段と、
前記命令フェッチ制御手段、前記命令バッファ手段、前記命令デコード手段及び前記分岐命令予測手段を制御する分岐命令制御手段とを有し、前記命令をアウトオブオーダに実行する命令制御装置において、
前記分岐命令制御手段が、前記分岐命令の分岐条件が確定したことにより前記分岐命令予測手段による分岐予測が誤りであると判断した場合には、
前記分岐予測が誤りであると判断してから分岐先アドレスが確定するまでの間、前記分岐命令制御手段は前記記憶制御手段に対して、前記分岐命令予測手段による分岐予測が誤りであることにより誤って実行されようとしている命令についてのオペランド要求の無効化制御を継続して行うとともに、前記命令デコード手段の無効化制御を継続して行うことを特徴とする命令制御装置。 - 前記分岐命令制御手段は、
前記分岐命令予測手段により分岐が成立すると予測された分岐命令について分岐が成立しない場合、又は
前記分岐命令予測手段により分岐が成立しないと予測された分岐命令について分岐が成立する場合、又は
前記分岐命令予測手段により分岐が成立すると予測された分岐命令の分岐先アドレスが誤りである場合、又は
前記分岐命令予測手段により分岐命令でない命令を分岐命令であるかのごとく分岐が成立すると予測する場合、
の何れかの場合に、前記分岐命令予測手段による分岐予測が誤りであると判断することを特徴とする請求項3記載の命令制御装置。 - 記憶装置からの命令のフェッチを行う命令フェッチステップと、
前記記憶装置からフェッチされた命令を命令バッファに一時記憶する命令バッファステップと、
前記フェッチされた命令のうち分岐命令の分岐予測を行う分岐命令予測ステップとを有し、前記命令をアウトオブオーダに実行する命令制御方法であって、
前記分岐命令の分岐条件が確定したことにより前記分岐命令予測ステップの分岐予測が誤りであると判断した場合には、前記分岐予測が誤りであると判断してから分岐先アドレスが確定するまでの間、
前記命令フェッチステップにおける命令フェッチを継続して抑止する命令フェッチ抑止ステップと、
前記命令バッファステップの無効化を継続して行う命令バッファ無効化ステップとを実行することを特徴とする命令制御方法。 - 前記分岐命令予測ステップにおいて分岐が成立すると予測された分岐命令について分岐が成立しない場合、又は
前記分岐命令予測ステップにおいて分岐が成立しないと予測された分岐命令について分岐が成立する場合、又は
前記分岐命令予測ステップにおいて分岐が成立すると予測された分岐命令の分岐先アドレスが誤りである場合、又は
前記分岐命令予測ステップにおいて分岐命令でない命令を分岐命令であるかのごとく分岐が成立すると予測する場合、
の何れかの場合に、前記分岐命令予測ステップによる分岐予測が誤りであると判断することを特徴とする請求項5記載の命令制御方法。 - 記憶装置からの命令のフェッチを行う命令フェッチステップと、
前記フェッチされた命令のデコードを行う命令デコードステップと、
前記デコードされた命令のうち分岐命令の分岐予測を行う分岐命令予測ステップとを有し、前記命令をアウトオブオーダに実行する命令制御方法であって、
前記分岐命令の分岐条件が確定したことにより前記分岐命令予測ステップの分岐予測が誤りであると判断した場合には、前記分岐予測が誤りであると判断してから分岐先アドレスが確定するまでの間、
前記分岐命令予測ステップにおける前記分岐予測の誤りにより誤って実行されようとしている命令についてのオペランド要求の無効化制御を継続して行うオペランド要求無効化ステップと、
前記命令デコードステップにおける命令デコードの無効化を継続して行う命令デコード無効化ステップとを実行することを特徴とする命令制御方法。 - 前記分岐命令予測ステップにおいて分岐が成立すると予測された分岐命令について分岐が成立しない場合、又は
前記分岐命令予測ステップにおいて分岐が成立しないと予測された分岐命令について分岐が成立する場合、又は
前記分岐命令予測ステップにおいて分岐が成立すると予測された分岐命令の分岐先アドレスが誤りである場合、又は
前記分岐命令予測ステップにおいて分岐命令でない命令を分岐命令であるかのごとく分岐が成立すると予測する場合、
の何れかの場合に、前記分岐命令予測ステップによる分岐予測が誤りであると判断することを特徴とする請求項7記載の命令制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/006668 WO2004107163A1 (ja) | 2003-05-28 | 2003-05-28 | 分岐予測機構を持つ命令制御装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004107163A1 JPWO2004107163A1 (ja) | 2006-07-20 |
JP3852782B2 true JP3852782B2 (ja) | 2006-12-06 |
Family
ID=33485773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005500202A Expired - Fee Related JP3852782B2 (ja) | 2003-05-28 | 2003-05-28 | 分岐予測機構を持つ命令制御装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3852782B2 (ja) |
WO (1) | WO2004107163A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4706883B2 (ja) * | 2009-03-17 | 2011-06-22 | セイコーエプソン株式会社 | 生体試料定量方法 |
JP2013131036A (ja) | 2011-12-21 | 2013-07-04 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
JP7100258B2 (ja) * | 2018-10-10 | 2022-07-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4853840A (en) * | 1986-01-07 | 1989-08-01 | Nec Corporation | Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed |
JPH07306785A (ja) * | 1994-05-11 | 1995-11-21 | Toshiba Corp | 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 |
JP2000181711A (ja) * | 1998-12-18 | 2000-06-30 | Hitachi Ltd | 命令フェッチのキャンセル方式 |
JP2000322257A (ja) * | 1999-05-10 | 2000-11-24 | Nec Corp | 条件分岐命令の投機的実行制御方法 |
-
2003
- 2003-05-28 JP JP2005500202A patent/JP3852782B2/ja not_active Expired - Fee Related
- 2003-05-28 WO PCT/JP2003/006668 patent/WO2004107163A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2004107163A1 (ja) | 2006-07-20 |
WO2004107163A1 (ja) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4856100B2 (ja) | 非アラインドメモリアクセス予測 | |
JP6113705B2 (ja) | ロック命令を実行するためのプロセッサ及び装置 | |
US7870369B1 (en) | Abort prioritization in a trace-based processor | |
JP4763727B2 (ja) | 分岐予測ミスを訂正するシステムおよび方法 | |
US8250349B2 (en) | Branch prediction control device having return address stack and method of branch prediction | |
JP5137948B2 (ja) | ローカル及びグローバル分岐予測情報の格納 | |
JP5425627B2 (ja) | 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置 | |
EP1296229B1 (en) | Scoreboarding mechanism in a pipeline that includes replays and redirects | |
JP2008530714A5 (ja) | ||
JP2008530713A5 (ja) | ||
US6981131B2 (en) | Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction | |
WO2008029450A1 (fr) | Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement | |
US10067875B2 (en) | Processor with instruction cache that performs zero clock retires | |
JP3977931B2 (ja) | データプロセッサにおける条件分岐実行を制御するための方法および装置 | |
US6934828B2 (en) | Decoupling floating point linear address | |
JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
JP3839755B2 (ja) | 命令制御方法及びプロセッサ | |
JP3852782B2 (ja) | 分岐予測機構を持つ命令制御装置及びその制御方法 | |
US7636837B2 (en) | Apparatus and method for controlling instructions at time of failure of branch prediction | |
EP1296228B1 (en) | Instruction Issue and retirement in processor having mismatched pipeline depths | |
US6738897B1 (en) | Incorporating local branch history when predicting multiple conditional branch outcomes | |
JP3843048B2 (ja) | 分岐予測機構を有する情報処理装置 | |
JP7409208B2 (ja) | 演算処理装置 | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
JP2020060946A (ja) | 演算処理装置及び演算処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060530 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060728 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060831 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090915 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130915 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |