JP2012230687A - 誤予測された分岐のためにフラッシュするセグメント化パイプライン - Google Patents
誤予測された分岐のためにフラッシュするセグメント化パイプライン Download PDFInfo
- Publication number
- JP2012230687A JP2012230687A JP2012133878A JP2012133878A JP2012230687A JP 2012230687 A JP2012230687 A JP 2012230687A JP 2012133878 A JP2012133878 A JP 2012133878A JP 2012133878 A JP2012133878 A JP 2012133878A JP 2012230687 A JP2012230687 A JP 2012230687A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- pipeline
- instructions
- mispredicted
- branch
- 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
Links
- 238000011010 flushing procedure Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 7
- 239000000872 buffer Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 102100036939 G-protein coupled receptor 20 Human genes 0.000 description 2
- 101001071355 Homo sapiens G-protein coupled receptor 20 Proteins 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 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, look ahead
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
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
【解決手段】プロセッサ・パイプラインは、プログラム順序を外れる命令より前の上位部分と、上位部分より後の1つ又は複数の下位部分とにセグメント化される。分岐命令が誤予測されたことが検出されると、上位パイプラインはフラッシュされ、正しい分岐ターゲット・アドレスから命令をフェッチする際における遅延を最小化する。下位パイプラインは、誤予測された分岐命令がコンファームし、その時点でコミットされていない命令全てが下位パイプラインからフラッシュされるまで実行を継続することができる。誤予測された分岐識別子を追加することによって、既存の例外パイプライン・フラッシュ・メカニズムが用いられ、下位パイプラインをフラッシュする複雑さ及びハードウェア・コストを低減することができる。
【選択図】図2
Description
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
順不同実行を可能とするパイプライン化されたプロセッサにおいて命令を実行する方法であって、
分岐命令誤予測を検出すると、命令がプログラム順序を外れる時点より前に、上位パイプラインをフラッシュすることと、
前記誤予測された分岐命令を実行のためにコミットすると、前記命令がプログラム順序を外れる時点より後に、コミットされていない命令全てを下位パイプラインからフラッシュすることと
を備えた方法。
[C2]
前記誤予測された分岐命令をコンファームすると、前記誤予測された分岐命令を、命令順序付けメカニズムにおけるように示すことを更に備えたC1に記載の方法。
[C3]
前記コミットされていない命令全てを下位パイプラインからフラッシュすることは、前記誤予測された分岐命令が、コミットされた最も新しい命令である場合、前記命令順序付けメカニズムにおける誤予測された分岐命令インジケータに応答して命令をフラッシュすることを備えたC2に記載の方法。
[C4]
前記プロセッサは2つ以上のパイプラインを含み、分岐命令を実行する各パイプラインは、前記命令順序付けメカニズムにおける誤予測された分岐命令インジケータを設定するように動作可能なコンファーム・ステージを含むC2に記載の方法。
[C5]
前記上位パイプラインのフラッシュ後、正しい分岐ターゲット・アドレスから命令をフェッチすることを備えたC1に記載の方法。
[C6]
前記上位パイプラインのフラッシュ後、コミットされていない命令全てが前記下位パイプラインからフラッシュされるまで、命令がプログラム順序を外れる時点以前の上位パイプラインを停止することを更に備えたC5に記載の方法。
[C7]
推測的に割り当てられた前記リソースが、レジスタ再命名リソースを含むC6に記載の方法。
[C8]
コミットされていない命令を前記下位パイプラインからフラッシュすると、コミットされていない命令に推測的に割り当てられたリソースの割当を解除するC1に記載の方法。
[C9]
コミットされていない命令に推測的に割り当てられたリソースの割当を解除することは、コミット済レジスタ再命名テーブルの内容を、推測的レジスタ再命名テーブルにコピーすることを含むC8に記載の方法。
[C10]
制御論理と、
命令がプログラム順序を外れることができるポイントより前の上位パイプラインと、前記命令が順序を外れることができるポイントより後の1つ又は複数の下位パイプラインとを備えた、セグメント化された命令実行パイプラインとを備え、
前記制御論理は、誤予測された分岐を検出すると、前記上位パイプラインから全ての命令をフラッシュするように動作可能であり、更に、前記誤予測された分岐命令を実行のためにコミットすると、コミットされていない命令全てを前記下位パイプラインからフラッシュするように動作可能であるプロセッサ。
[C11]
前記制御論理は更に、前記上位パイプラインをフラッシュした後のサイクルにおいて、正しい分岐ターゲット・アドレスから命令をフェッチするように動作可能であるC10に記載のプロセッサ。
[C12]
前記制御論理は更に、前記上位パイプラインのフラッシュ後、前記上位パイプラインの終点に保留を設置し、コミットされていない命令全てを前記下位パイプラインからフラッシュすると、前記保留を除去するように動作可能であるC11に記載のプロセッサ。
[C13]
前記制御論理は、コンファーム及びコミットされた状態の命令をトラックするように動作可能な命令順序付けメカニズムであり、前記誤予測された分岐命令が、コンファームされた最も新しい命令である場合、コミットされていない命令全てを前記下位パイプラインからフラッシュするように更に動作可能な命令順序付けメカニズムを含むC10に記載のプロセッサ。
[C14]
前記命令順序付けメカニズム内の各エントリは、関連付けられた命令が、誤予測された分岐命令であるかを示すインジケーションを含む。
[C15]
分岐命令を実行する下位パイプラインの各々は、分岐命令が誤予測されたと判定されると、誤予測された分岐インジケーションを前記命令順序付けメカニズム内に設定するように動作可能なコンファーム状態を含むC14に記載のプロセッサ。
[C16]
汎用レジスタ(GPR)論理識別子を物理レジスタに動的に関連付けるように動作可能なGPRを更に備え、前記GPRは、
複数の物理レジスタと、
現在のGPR論理識別子全ての物理レジスタへのマッピングを含む推測的再命名テーブル(SRT)と、
コミットされた命令のみについて、GPR論理識別子の物理レジスタへのマッピングを含むコミット済再命名テーブル(CRT)とを備え、
前記制御論理は、コミットされていない命令全てを前記下位パイプラインからフラッシュすると、前記CRTの内容を前記SRTにコピーするように動作可能であるC10に記載のプロセッサ。
Claims (16)
- 順不同実行を可能とするパイプライン化されたプロセッサにおいて命令を実行する方法であって、
分岐命令誤予測を検出すると、命令がプログラム順序を外れる時点より前に、上位パイプラインをフラッシュすることと、
前記誤予測された分岐命令を実行のためにコミットすると、前記命令がプログラム順序を外れる時点より後に、コミットされていない命令全てを下位パイプラインからフラッシュすることと
を備えた方法。 - 前記誤予測された分岐命令をコンファームすると、前記誤予測された分岐命令を、命令順序付けメカニズムにおけるように示すことを更に備えた請求項1に記載の方法。
- 前記コミットされていない命令全てを下位パイプラインからフラッシュすることは、前記誤予測された分岐命令が、コミットされた最も新しい命令である場合、前記命令順序付けメカニズムにおける誤予測された分岐命令インジケータに応答して命令をフラッシュすることを備えた請求項2に記載の方法。
- 前記プロセッサは2つ以上のパイプラインを含み、分岐命令を実行する各パイプラインは、前記命令順序付けメカニズムにおける誤予測された分岐命令インジケータを設定するように動作可能なコンファーム・ステージを含む請求項2に記載の方法。
- 前記上位パイプラインのフラッシュ後、正しい分岐ターゲット・アドレスから命令をフェッチすることを備えた請求項1に記載の方法。
- 前記上位パイプラインのフラッシュ後、コミットされていない命令全てが前記下位パイプラインからフラッシュされるまで、命令がプログラム順序を外れる時点以前の上位パイプラインを停止することを更に備えた請求項5に記載の方法。
- 推測的に割り当てられた前記リソースが、レジスタ再命名リソースを含む請求項6に記載の方法。
- コミットされていない命令を前記下位パイプラインからフラッシュすると、コミットされていない命令に推測的に割り当てられたリソースの割当を解除する請求項1に記載の方法。
- コミットされていない命令に推測的に割り当てられたリソースの割当を解除することは、コミット済レジスタ再命名テーブルの内容を、推測的レジスタ再命名テーブルにコピーすることを含む請求項8に記載の方法。
- 制御論理と、
命令がプログラム順序を外れることができるポイントより前の上位パイプラインと、前記命令が順序を外れることができるポイントより後の1つ又は複数の下位パイプラインとを備えた、セグメント化された命令実行パイプラインとを備え、
前記制御論理は、誤予測された分岐を検出すると、前記上位パイプラインから全ての命令をフラッシュするように動作可能であり、更に、前記誤予測された分岐命令を実行のためにコミットすると、コミットされていない命令全てを前記下位パイプラインからフラッシュするように動作可能であるプロセッサ。 - 前記制御論理は更に、前記上位パイプラインをフラッシュした後のサイクルにおいて、正しい分岐ターゲット・アドレスから命令をフェッチするように動作可能である請求項10に記載のプロセッサ。
- 前記制御論理は更に、前記上位パイプラインのフラッシュ後、前記上位パイプラインの終点に保留を設置し、コミットされていない命令全てを前記下位パイプラインからフラッシュすると、前記保留を除去するように動作可能である請求項11に記載のプロセッサ。
- 前記制御論理は、コンファーム及びコミットされた状態の命令をトラックするように動作可能な命令順序付けメカニズムであり、前記誤予測された分岐命令が、コンファームされた最も新しい命令である場合、コミットされていない命令全てを前記下位パイプラインからフラッシュするように更に動作可能な命令順序付けメカニズムを含む請求項10に記載のプロセッサ。
- 前記命令順序付けメカニズム内の各エントリは、関連付けられた命令が、誤予測された分岐命令であるかを示すインジケーションを含む。
- 分岐命令を実行する下位パイプラインの各々は、分岐命令が誤予測されたと判定されると、誤予測された分岐インジケーションを前記命令順序付けメカニズム内に設定するように動作可能なコンファーム状態を含む請求項14に記載のプロセッサ。
- 汎用レジスタ(GPR)論理識別子を物理レジスタに動的に関連付けるように動作可能なGPRを更に備え、前記GPRは、
複数の物理レジスタと、
現在のGPR論理識別子全ての物理レジスタへのマッピングを含む推測的再命名テーブル(SRT)と、
コミットされた命令のみについて、GPR論理識別子の物理レジスタへのマッピングを含むコミット済再命名テーブル(CRT)とを備え、
前記制御論理は、コミットされていない命令全てを前記下位パイプラインからフラッシュすると、前記CRTの内容を前記SRTにコピーするように動作可能である請求項10に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/626,443 | 2007-01-24 | ||
US11/626,443 US7624254B2 (en) | 2007-01-24 | 2007-01-24 | Segmented pipeline flushing for mispredicted branches |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009547432A Division JP2010517183A (ja) | 2007-01-24 | 2008-01-24 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014121814A Division JP6208084B2 (ja) | 2007-01-24 | 2014-06-12 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012230687A true JP2012230687A (ja) | 2012-11-22 |
JP5866259B2 JP5866259B2 (ja) | 2016-02-17 |
Family
ID=39327442
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009547432A Pending JP2010517183A (ja) | 2007-01-24 | 2008-01-24 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
JP2012133878A Expired - Fee Related JP5866259B2 (ja) | 2007-01-24 | 2012-06-13 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
JP2014121814A Expired - Fee Related JP6208084B2 (ja) | 2007-01-24 | 2014-06-12 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
JP2016082077A Expired - Fee Related JP6370829B2 (ja) | 2007-01-24 | 2016-04-15 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009547432A Pending JP2010517183A (ja) | 2007-01-24 | 2008-01-24 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014121814A Expired - Fee Related JP6208084B2 (ja) | 2007-01-24 | 2014-06-12 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
JP2016082077A Expired - Fee Related JP6370829B2 (ja) | 2007-01-24 | 2016-04-15 | 誤予測された分岐のためにフラッシュするセグメント化パイプライン |
Country Status (10)
Country | Link |
---|---|
US (1) | US7624254B2 (ja) |
EP (1) | EP2115572B1 (ja) |
JP (4) | JP2010517183A (ja) |
KR (1) | KR101107812B1 (ja) |
CN (1) | CN101601009B (ja) |
BR (1) | BRPI0807405A2 (ja) |
CA (1) | CA2674720C (ja) |
MX (1) | MX2009007949A (ja) |
RU (1) | RU2427889C2 (ja) |
WO (1) | WO2008092045A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9738197B2 (en) | 2011-11-29 | 2017-08-22 | Ts Tech Co., Ltd. | Mounting member and airbag module-equipped seat |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624254B2 (en) * | 2007-01-24 | 2009-11-24 | Qualcomm Incorporated | Segmented pipeline flushing for mispredicted branches |
US9384003B2 (en) * | 2007-10-23 | 2016-07-05 | Texas Instruments Incorporated | Determining whether a branch instruction is predicted based on a capture range of a second instruction |
US7877586B2 (en) * | 2008-02-01 | 2011-01-25 | International Business Machines Corporation | Branch target address cache selectively applying a delayed hit |
US8099586B2 (en) * | 2008-12-30 | 2012-01-17 | Oracle America, Inc. | Branch misprediction recovery mechanism for microprocessors |
US20110320787A1 (en) * | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
CA2801382C (en) | 2010-06-29 | 2018-12-18 | Exxonmobil Upstream Research Company | Method and system for parallel simulation models |
US8862861B2 (en) | 2011-05-13 | 2014-10-14 | Oracle International Corporation | Suppressing branch prediction information update by branch instructions in incorrect speculative execution path |
US8886920B2 (en) | 2011-05-13 | 2014-11-11 | Oracle International Corporation | Associating tag to branch instruction to access array storing predicted target addresses for page crossing targets for comparison with resolved address at execution stage |
CN102360282A (zh) * | 2011-09-26 | 2012-02-22 | 杭州中天微系统有限公司 | 快速处置分支指令预测错误的流水线处理器装置 |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
JP6117432B2 (ja) * | 2013-05-30 | 2017-04-19 | インテル コーポレイション | パイプラインソフトウェアの動的な最適化 |
US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10255074B2 (en) | 2015-09-11 | 2019-04-09 | Qualcomm Incorporated | Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06230961A (ja) * | 1993-01-04 | 1994-08-19 | Motorola Inc | データ処理システムにおいてバックアップ機能を備えてレジスタ再命名を実行する方法 |
JPH07160500A (ja) * | 1993-10-18 | 1995-06-23 | Cyrix Corp | 推論的実行を行うマイクロプロセッサ |
US5586278A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
US5627985A (en) * | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5812839A (en) * | 1994-01-03 | 1998-09-22 | Intel Corporation | Dual prediction branch system having two step of branch recovery process which activated only when mispredicted branch is the oldest instruction in the out-of-order unit |
JP2001356905A (ja) * | 2000-04-28 | 2001-12-26 | Stmicroelectronics Inc | スタックに基づいたパイプライン型プロセッサにおけるレジスタ依存性を取扱うシステム及び方法 |
JP2003271381A (ja) * | 2002-03-18 | 2003-09-26 | Nec Computertechno Ltd | エラー訂正制御回路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152155B2 (en) * | 2005-02-18 | 2006-12-19 | Qualcomm Incorporated | System and method of correcting a branch misprediction |
US7624254B2 (en) * | 2007-01-24 | 2009-11-24 | Qualcomm Incorporated | Segmented pipeline flushing for mispredicted branches |
-
2007
- 2007-01-24 US US11/626,443 patent/US7624254B2/en not_active Expired - Fee Related
-
2008
- 2008-01-24 EP EP08713995.2A patent/EP2115572B1/en active Active
- 2008-01-24 CN CN200880002977.XA patent/CN101601009B/zh not_active Expired - Fee Related
- 2008-01-24 WO PCT/US2008/051966 patent/WO2008092045A1/en active Application Filing
- 2008-01-24 BR BRPI0807405-4A patent/BRPI0807405A2/pt not_active Application Discontinuation
- 2008-01-24 RU RU2009131712/08A patent/RU2427889C2/ru not_active IP Right Cessation
- 2008-01-24 KR KR1020097017596A patent/KR101107812B1/ko not_active IP Right Cessation
- 2008-01-24 JP JP2009547432A patent/JP2010517183A/ja active Pending
- 2008-01-24 MX MX2009007949A patent/MX2009007949A/es active IP Right Grant
- 2008-01-24 CA CA2674720A patent/CA2674720C/en not_active Expired - Fee Related
-
2012
- 2012-06-13 JP JP2012133878A patent/JP5866259B2/ja not_active Expired - Fee Related
-
2014
- 2014-06-12 JP JP2014121814A patent/JP6208084B2/ja not_active Expired - Fee Related
-
2016
- 2016-04-15 JP JP2016082077A patent/JP6370829B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06230961A (ja) * | 1993-01-04 | 1994-08-19 | Motorola Inc | データ処理システムにおいてバックアップ機能を備えてレジスタ再命名を実行する方法 |
JPH07160500A (ja) * | 1993-10-18 | 1995-06-23 | Cyrix Corp | 推論的実行を行うマイクロプロセッサ |
US5812839A (en) * | 1994-01-03 | 1998-09-22 | Intel Corporation | Dual prediction branch system having two step of branch recovery process which activated only when mispredicted branch is the oldest instruction in the out-of-order unit |
US5627985A (en) * | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5586278A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
JP2001356905A (ja) * | 2000-04-28 | 2001-12-26 | Stmicroelectronics Inc | スタックに基づいたパイプライン型プロセッサにおけるレジスタ依存性を取扱うシステム及び方法 |
JP2003271381A (ja) * | 2002-03-18 | 2003-09-26 | Nec Computertechno Ltd | エラー訂正制御回路 |
Non-Patent Citations (3)
Title |
---|
CSND200300525009; 中森章: 'コンピュータアーキテクチャ その直感的アプローチ4 並列処理の基本,スーパスカラ' Oh!X 2001春号 , 20010301, Pages:256-275, ソフトバンクパブリッシング株式会社 * |
JPN6013042251; 中森章: 'コンピュータアーキテクチャ その直感的アプローチ4 並列処理の基本,スーパスカラ' Oh!X 2001春号 , 20010301, Pages:256-275, ソフトバンクパブリッシング株式会社 * |
JPN6013044218; Haitham Akkary, Ravi Rajwar, Srikanth T. Srinivasan: 'Checkpoint Processing and Recovery: Toward Scalable Large Instruction Window Processors' Proceedings of the 36th International Symposium on Microarchitecture(MICRO-36'03) , 2003, Pages:423-434, IEEE * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9738197B2 (en) | 2011-11-29 | 2017-08-22 | Ts Tech Co., Ltd. | Mounting member and airbag module-equipped seat |
Also Published As
Publication number | Publication date |
---|---|
CN101601009A (zh) | 2009-12-09 |
EP2115572B1 (en) | 2015-03-11 |
CA2674720C (en) | 2015-02-03 |
JP2016167284A (ja) | 2016-09-15 |
WO2008092045A1 (en) | 2008-07-31 |
MX2009007949A (es) | 2009-08-07 |
US7624254B2 (en) | 2009-11-24 |
CA2674720A1 (en) | 2008-07-31 |
JP5866259B2 (ja) | 2016-02-17 |
KR20090102871A (ko) | 2009-09-30 |
JP2014211881A (ja) | 2014-11-13 |
JP2010517183A (ja) | 2010-05-20 |
KR101107812B1 (ko) | 2012-01-25 |
JP6370829B2 (ja) | 2018-08-08 |
EP2115572A1 (en) | 2009-11-11 |
CN101601009B (zh) | 2015-09-16 |
JP6208084B2 (ja) | 2017-10-04 |
RU2009131712A (ru) | 2011-02-27 |
RU2427889C2 (ru) | 2011-08-27 |
BRPI0807405A2 (pt) | 2014-07-08 |
US20080177992A1 (en) | 2008-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6370829B2 (ja) | 誤予測された分岐のためにフラッシュするセグメント化パイプライン | |
US6079014A (en) | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state | |
US6553480B1 (en) | System and method for managing the execution of instruction groups having multiple executable instructions | |
JP6009608B2 (ja) | 条件付き命令が無条件で出力を提供するシステム及び方法 | |
US5687338A (en) | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor | |
JP4763727B2 (ja) | 分岐予測ミスを訂正するシステムおよび方法 | |
US5809271A (en) | Method and apparatus for changing flow of control in a processor | |
US9311084B2 (en) | RDA checkpoint optimization | |
US9575754B2 (en) | Zero cycle move | |
US5913048A (en) | Dispatching instructions in a processor supporting out-of-order execution | |
US9740553B2 (en) | Managing potentially invalid results during runahead | |
JP3132755B2 (ja) | プロセッサのアーキテクチャ状態を維持するための方法および装置 | |
US5987600A (en) | Exception handling in a processor that performs speculative out-of-order instruction execution | |
JPH10283181A (ja) | プロセッサ内で命令を発行するための方法および装置 | |
JP2008530713A5 (ja) | ||
US20090198981A1 (en) | Data processing system, processor and method of data processing having branch target address cache storing direct predictions | |
US9535744B2 (en) | Method and apparatus for continued retirement during commit of a speculative region of code | |
US20170109168A1 (en) | Method and apparatus for managing a speculative transaction in a processing unit | |
US10387162B2 (en) | Effective address table with multiple taken branch handling for out-of-order processors | |
EP1150203A2 (en) | System and method for handling register dependency in a stack-based pipelined processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131210 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20131213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140110 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140612 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140619 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20140711 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150728 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5866259 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |