KR101107812B1 - 잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 - Google Patents
잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 Download PDFInfo
- Publication number
- KR101107812B1 KR101107812B1 KR1020097017596A KR20097017596A KR101107812B1 KR 101107812 B1 KR101107812 B1 KR 101107812B1 KR 1020097017596 A KR1020097017596 A KR 1020097017596A KR 20097017596 A KR20097017596 A KR 20097017596A KR 101107812 B1 KR101107812 B1 KR 101107812B1
- Authority
- KR
- South Korea
- Prior art keywords
- instructions
- pipeline
- instruction
- branch
- delete delete
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- 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 OR CALCULATING; 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/3867—Concurrent instruction execution, e.g. pipeline or 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)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/626,443 US7624254B2 (en) | 2007-01-24 | 2007-01-24 | Segmented pipeline flushing for mispredicted branches |
| US11/626,443 | 2007-01-24 | ||
| PCT/US2008/051966 WO2008092045A1 (en) | 2007-01-24 | 2008-01-24 | Segmented pipeline flushing for mispredicted branches |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20090102871A KR20090102871A (ko) | 2009-09-30 |
| KR101107812B1 true KR101107812B1 (ko) | 2012-01-25 |
Family
ID=39327442
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020097017596A Expired - Fee Related KR101107812B1 (ko) | 2007-01-24 | 2008-01-24 | 잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US7624254B2 (https=) |
| EP (1) | EP2115572B1 (https=) |
| JP (4) | JP2010517183A (https=) |
| KR (1) | KR101107812B1 (https=) |
| CN (1) | CN101601009B (https=) |
| BR (1) | BRPI0807405A2 (https=) |
| CA (1) | CA2674720C (https=) |
| MX (1) | MX2009007949A (https=) |
| RU (1) | RU2427889C2 (https=) |
| WO (1) | WO2008092045A1 (https=) |
Families Citing this family (24)
| 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 | 杭州中天微系统有限公司 | 快速处置分支指令预测错误的流水线处理器装置 |
| EP2786905B1 (en) | 2011-11-29 | 2018-10-31 | TS Tech Co., Ltd. | Mounting member, and airbag module-equipped seat |
| US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
| CN105164637B (zh) * | 2013-05-30 | 2017-12-19 | 英特尔公司 | 用于执行循环的方法、系统、装置和处理器以及机器可读介质 |
| US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
| US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
| US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
| US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
| 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 |
| US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
| US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
| US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
| 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 |
| 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 |
| CN121300858A (zh) * | 2025-09-02 | 2026-01-09 | 北京微核芯科技有限公司 | 分支指令预测方法、装置和设备 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SU1300471A1 (ru) * | 1985-11-01 | 1987-03-30 | Предприятие П/Я Г-4677 | Устройство дл выполнени условных переходов в конвейерном процессоре |
| US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
| EP0649086B1 (en) | 1993-10-18 | 2000-07-19 | National Semiconductor Corporation | Microprocessor with speculative execution |
| ES2138051T3 (es) * | 1994-01-03 | 2000-01-01 | Intel Corp | Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico. |
| 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 |
| US7496734B1 (en) * | 2000-04-28 | 2009-02-24 | Stmicroelectronics, Inc. | System and method for handling register dependency in a stack-based pipelined processor |
| JP3667703B2 (ja) * | 2002-03-18 | 2005-07-06 | エヌイーシーコンピュータテクノ株式会社 | エラー訂正制御回路 |
| 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 RU RU2009131712/08A patent/RU2427889C2/ru not_active IP Right Cessation
- 2008-01-24 KR KR1020097017596A patent/KR101107812B1/ko not_active Expired - Fee Related
- 2008-01-24 BR BRPI0807405-4A patent/BRPI0807405A2/pt not_active Application Discontinuation
- 2008-01-24 CA CA2674720A patent/CA2674720C/en not_active Expired - Fee Related
- 2008-01-24 CN CN200880002977.XA patent/CN101601009B/zh not_active Expired - Fee Related
- 2008-01-24 WO PCT/US2008/051966 patent/WO2008092045A1/en not_active Ceased
- 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 EP EP08713995.2A patent/EP2115572B1/en not_active Not-in-force
-
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
Also Published As
| Publication number | Publication date |
|---|---|
| US20080177992A1 (en) | 2008-07-24 |
| JP6370829B2 (ja) | 2018-08-08 |
| WO2008092045A1 (en) | 2008-07-31 |
| JP6208084B2 (ja) | 2017-10-04 |
| CA2674720A1 (en) | 2008-07-31 |
| CN101601009A (zh) | 2009-12-09 |
| JP2016167284A (ja) | 2016-09-15 |
| CA2674720C (en) | 2015-02-03 |
| MX2009007949A (es) | 2009-08-07 |
| JP2014211881A (ja) | 2014-11-13 |
| US7624254B2 (en) | 2009-11-24 |
| JP2012230687A (ja) | 2012-11-22 |
| RU2427889C2 (ru) | 2011-08-27 |
| EP2115572B1 (en) | 2015-03-11 |
| RU2009131712A (ru) | 2011-02-27 |
| CN101601009B (zh) | 2015-09-16 |
| JP5866259B2 (ja) | 2016-02-17 |
| BRPI0807405A2 (pt) | 2014-07-08 |
| KR20090102871A (ko) | 2009-09-30 |
| EP2115572A1 (en) | 2009-11-11 |
| JP2010517183A (ja) | 2010-05-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101107812B1 (ko) | 잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 | |
| JP4763727B2 (ja) | 分岐予測ミスを訂正するシステムおよび方法 | |
| US5687338A (en) | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor | |
| US5729728A (en) | Method and apparatus for predicting, clearing and redirecting unpredicted changes in instruction flow in a microprocessor | |
| US8627044B2 (en) | Issuing instructions with unresolved data dependencies | |
| CN101815984B (zh) | 错误的推测性更新的链接栈修复 | |
| US20080201563A1 (en) | Apparatus for Improving Single Thread Performance through Speculative Processing | |
| US6973563B1 (en) | Microprocessor including return prediction unit configured to determine whether a stored return address corresponds to more than one call instruction | |
| US10310859B2 (en) | System and method of speculative parallel execution of cache line unaligned load instructions | |
| JP2008530713A5 (https=) | ||
| US10289415B2 (en) | Method and apparatus for execution of threads on processing slices using a history buffer for recording architected register data | |
| JP2013515306A5 (https=) | ||
| WO2007092273A2 (en) | Method and apparatus for enforcing memory reference ordering requirements at the l1 cache level | |
| US20070113056A1 (en) | Apparatus and method for using multiple thread contexts to improve single thread performance | |
| HK1112982A (en) | System and method of correcting a branch misprediction |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U12-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20141230 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 4 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 5 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| FPAY | Annual fee payment |
Payment date: 20161229 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 6 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 7 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
Not in force date: 20190113 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20190113 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |