KR101107812B1 - 잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 - Google Patents

잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 Download PDF

Info

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
Application number
KR1020097017596A
Other languages
English (en)
Korean (ko)
Other versions
KR20090102871A (ko
Inventor
마이클 스코트 맥일바인
제임스 노리스 디펜더퍼
토마스 앤드류 살토리우스
로드니 웨인 스미쓰
Original Assignee
콸콤 인코포레이티드
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 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20090102871A publication Critical patent/KR20090102871A/ko
Application granted granted Critical
Publication of KR101107812B1 publication Critical patent/KR101107812B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3867Concurrent 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)
KR1020097017596A 2007-01-24 2008-01-24 잘못 예측된 분기들에 대한 세그먼트화된 파이프라인 플러싱 Expired - Fee Related KR101107812B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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