JP5520779B2 - 分岐誤予測バッファを用いるためのシステム及び方法 - Google Patents

分岐誤予測バッファを用いるためのシステム及び方法 Download PDF

Info

Publication number
JP5520779B2
JP5520779B2 JP2010246340A JP2010246340A JP5520779B2 JP 5520779 B2 JP5520779 B2 JP 5520779B2 JP 2010246340 A JP2010246340 A JP 2010246340A JP 2010246340 A JP2010246340 A JP 2010246340A JP 5520779 B2 JP5520779 B2 JP 5520779B2
Authority
JP
Japan
Prior art keywords
branch
instruction
instructions
prediction
bmb
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.)
Active
Application number
JP2010246340A
Other languages
English (en)
Japanese (ja)
Other versions
JP2011100454A (ja
JP2011100454A5 (enExample
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.)
Ceva DSP Ltd
Original Assignee
Ceva DSP Ltd
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 Ceva DSP Ltd filed Critical Ceva DSP Ltd
Publication of JP2011100454A publication Critical patent/JP2011100454A/ja
Publication of JP2011100454A5 publication Critical patent/JP2011100454A5/ja
Application granted granted Critical
Publication of JP5520779B2 publication Critical patent/JP5520779B2/ja
Active 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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

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)
  • Executing Machine-Instructions (AREA)
JP2010246340A 2009-11-04 2010-11-02 分岐誤予測バッファを用いるためのシステム及び方法 Active JP5520779B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/611,937 US9952869B2 (en) 2009-11-04 2009-11-04 System and method for using a branch mis-prediction buffer
US12/611,937 2009-11-04

Publications (3)

Publication Number Publication Date
JP2011100454A JP2011100454A (ja) 2011-05-19
JP2011100454A5 JP2011100454A5 (enExample) 2013-12-19
JP5520779B2 true JP5520779B2 (ja) 2014-06-11

Family

ID=43413571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010246340A Active JP5520779B2 (ja) 2009-11-04 2010-11-02 分岐誤予測バッファを用いるためのシステム及び方法

Country Status (4)

Country Link
US (2) US9952869B2 (enExample)
EP (1) EP2330500B1 (enExample)
JP (1) JP5520779B2 (enExample)
CA (1) CA2719615C (enExample)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005462A1 (en) * 2010-07-01 2012-01-05 International Business Machines Corporation Hardware Assist for Optimizing Code During Processing
US9342432B2 (en) 2011-04-04 2016-05-17 International Business Machines Corporation Hardware performance-monitoring facility usage after context swaps
US8868886B2 (en) 2011-04-04 2014-10-21 International Business Machines Corporation Task switch immunized performance monitoring
US20130055033A1 (en) 2011-08-22 2013-02-28 International Business Machines Corporation Hardware-assisted program trace collection with selectable call-signature capture
US8874884B2 (en) 2011-11-04 2014-10-28 Qualcomm Incorporated Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold
US9235419B2 (en) 2012-06-11 2016-01-12 International Business Machines Corporation Branch target buffer preload table
US9753733B2 (en) * 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
US9135015B1 (en) * 2014-12-25 2015-09-15 Centipede Semi Ltd. Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction
US10296350B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences
US10296346B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences based on pre-monitoring
US9916164B2 (en) * 2015-06-11 2018-03-13 Intel Corporation Methods and apparatus to optimize instructions for execution by a processor
US10908902B2 (en) * 2016-05-26 2021-02-02 International Business Machines Corporation Distance based branch prediction and detection of potential call and potential return instructions
JP2019101543A (ja) 2017-11-29 2019-06-24 サンケン電気株式会社 プロセッサ及びパイプライン処理方法
US10901743B2 (en) * 2018-07-19 2021-01-26 International Business Machines Corporation Speculative execution of both paths of a weakly predicted branch instruction
US10915322B2 (en) * 2018-09-18 2021-02-09 Advanced Micro Devices, Inc. Using loop exit prediction to accelerate or suppress loop mode of a processor
JP7100258B2 (ja) * 2018-10-10 2022-07-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11182166B2 (en) * 2019-05-23 2021-11-23 Samsung Electronics Co., Ltd. Branch prediction throughput by skipping over cachelines without branches
CN110688160B (zh) * 2019-09-04 2021-11-19 苏州浪潮智能科技有限公司 一种指令流水线处理方法、系统、设备及计算机存储介质
WO2021205529A1 (ja) * 2020-04-07 2021-10-14 日本電信電話株式会社 情報処理装置、情報処理方法、およびプログラム
WO2022212220A1 (en) * 2021-03-27 2022-10-06 Ceremorphic, Inc. Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
US20220308887A1 (en) * 2021-03-27 2022-09-29 Redpine Signals, Inc. Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
US20220308888A1 (en) * 2021-03-27 2022-09-29 Redpine Signals, Inc. Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor
JP7319439B1 (ja) * 2022-08-30 2023-08-01 株式会社スギノマシン バリ取り工具
US20240385841A1 (en) * 2023-05-18 2024-11-21 Qualcomm Incorporated Fetching beyond predicted-taken branch instructions in fetch bundles of processor-based devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS549456B2 (enExample) 1972-07-05 1979-04-24
JPS6051948A (ja) 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPH01106141A (ja) 1987-10-19 1989-04-24 Mitsubishi Electric Corp データ処理装置
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5850542A (en) * 1995-09-15 1998-12-15 International Business Machines Corporation Microprocessor instruction hedge-fetching in a multiprediction branch environment
US5734881A (en) 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
SE510295C2 (sv) 1997-07-21 1999-05-10 Ericsson Telefon Ab L M Metod vid processor för att hantera villkorade hoppinstruktioner samt processor anpassad att verka enligt den angivna metoden
US8285976B2 (en) 2000-12-28 2012-10-09 Micron Technology, Inc. Method and apparatus for predicting branches using a meta predictor
US7010675B2 (en) * 2001-07-27 2006-03-07 Stmicroelectronics, Inc. Fetch branch architecture for reducing branch penalty without branch prediction
US6918030B2 (en) * 2002-01-10 2005-07-12 International Business Machines Corporation Microprocessor for executing speculative load instructions with retry of speculative load instruction without calling any recovery procedures
US7197630B1 (en) 2004-04-12 2007-03-27 Advanced Micro Devices, Inc. Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation
EP1826667A4 (en) * 2004-11-25 2008-07-23 Matsushita Electric Industrial Co Ltd COMMAND FEEDING DEVICE
US7437543B2 (en) * 2005-04-19 2008-10-14 International Business Machines Corporation Reducing the fetch time of target instructions of a predicted taken branch instruction
TWI328771B (en) * 2005-07-15 2010-08-11 Nvidia Corp Pipelined central processing unit structure and method of processing a sequence of instructions

Also Published As

Publication number Publication date
CA2719615C (en) 2019-04-09
US20180210735A1 (en) 2018-07-26
JP2011100454A (ja) 2011-05-19
US20110107071A1 (en) 2011-05-05
US9952869B2 (en) 2018-04-24
EP2330500B1 (en) 2013-08-28
US10409605B2 (en) 2019-09-10
CA2719615A1 (en) 2011-05-04
EP2330500A1 (en) 2011-06-08

Similar Documents

Publication Publication Date Title
JP5520779B2 (ja) 分岐誤予測バッファを用いるためのシステム及び方法
EP3850480B1 (en) Controlling accesses to a branch prediction unit for sequences of fetch groups
US9378020B2 (en) Asynchronous lookahead hierarchical branch prediction
US7917731B2 (en) Method and apparatus for prefetching non-sequential instruction addresses
US8578141B2 (en) Loop predictor and method for instruction fetching using a loop predictor
US20120311308A1 (en) Branch Predictor with Jump Ahead Logic to Jump Over Portions of Program Code Lacking Branches
CN1255986A (zh) 基于惩罚的高速缓冲存储器和置换技术
TW200813822A (en) D-cache miss prediction and scheduling
US11099850B2 (en) Branch prediction circuitry comprising a return address prediction structure and a branch target buffer structure
CN101176060A (zh) 每索引存储两个或更多分支目标地址的分支目标地址高速缓冲存储器
US8028180B2 (en) Method and system for power conservation in a hierarchical branch predictor
US10922082B2 (en) Branch predictor
CN101681258A (zh) 使用可变长度指令集处理器中分支目标地址缓存的分支预测
CN101501635B (zh) 用于减少在分支目标地址高速缓冲存储器中查找的方法和设备
EP4020167A1 (en) Accessing a branch target buffer based on branch instruction information
EP2348399B1 (en) System and method for processing interrupts in a computing system
US10740102B2 (en) Hardware mechanism to mitigate stalling of a processor core
EP4081899A1 (en) Controlling accesses to a branch prediction unit for sequences of fetch groups

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131101

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131101

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20131101

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20131125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140228

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: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140407

R150 Certificate of patent or registration of utility model

Ref document number: 5520779

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250