KR102571623B1 - 초기 리턴 예측을 갖는 분기 타겟 버퍼 - Google Patents

초기 리턴 예측을 갖는 분기 타겟 버퍼 Download PDF

Info

Publication number
KR102571623B1
KR102571623B1 KR1020217004753A KR20217004753A KR102571623B1 KR 102571623 B1 KR102571623 B1 KR 102571623B1 KR 1020217004753 A KR1020217004753 A KR 1020217004753A KR 20217004753 A KR20217004753 A KR 20217004753A KR 102571623 B1 KR102571623 B1 KR 102571623B1
Authority
KR
South Korea
Prior art keywords
return
instruction
branch
btb
address
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
KR1020217004753A
Other languages
English (en)
Korean (ko)
Other versions
KR20210025677A (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 KR20210025677A publication Critical patent/KR20210025677A/ko
Application granted granted Critical
Publication of KR102571623B1 publication Critical patent/KR102571623B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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)
KR1020217004753A 2018-07-24 2019-07-17 초기 리턴 예측을 갖는 분기 타겟 버퍼 Active KR102571623B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/043,293 2018-07-24
US16/043,293 US11055098B2 (en) 2018-07-24 2018-07-24 Branch target buffer with early return prediction
PCT/US2019/042176 WO2020023263A1 (en) 2018-07-24 2019-07-17 Branch target buffer with early return prediction

Publications (2)

Publication Number Publication Date
KR20210025677A KR20210025677A (ko) 2021-03-09
KR102571623B1 true KR102571623B1 (ko) 2023-08-29

Family

ID=69179546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004753A Active KR102571623B1 (ko) 2018-07-24 2019-07-17 초기 리턴 예측을 갖는 분기 타겟 버퍼

Country Status (6)

Country Link
US (1) US11055098B2 (https=)
EP (1) EP3827338A4 (https=)
JP (1) JP7269318B2 (https=)
KR (1) KR102571623B1 (https=)
CN (1) CN112470122B (https=)
WO (1) WO2020023263A1 (https=)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663126B1 (en) * 2022-02-23 2023-05-30 International Business Machines Corporation Return address table branch predictor
CN116737240B (zh) * 2022-03-02 2024-08-06 腾讯科技(深圳)有限公司 分支预测方法、装置、处理器、介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120906A1 (en) 2001-12-21 2003-06-26 Jourdan Stephan J. Return address stack
US20050076193A1 (en) 2003-09-08 2005-04-07 Ip-First, Llc. Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US20140143494A1 (en) 2012-11-19 2014-05-22 Florida State University Research Foundation, Inc. Systems and methods for improving processor efficiency through caching

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604877A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for resolving return from subroutine instructions in a computer processor
US5964868A (en) * 1996-05-15 1999-10-12 Intel Corporation Method and apparatus for implementing a speculative return stack buffer
US5850543A (en) * 1996-10-30 1998-12-15 Texas Instruments Incorporated Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
US6957327B1 (en) * 1998-12-31 2005-10-18 Stmicroelectronics, Inc. Block-based branch target buffer
US6609194B1 (en) * 1999-11-12 2003-08-19 Ip-First, Llc Apparatus for performing branch target address calculation based on branch type
US7200740B2 (en) * 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
US6973563B1 (en) 2002-01-04 2005-12-06 Advanced Micro Devices, Inc. Microprocessor including return prediction unit configured to determine whether a stored return address corresponds to more than one call instruction
US20040003213A1 (en) 2002-06-28 2004-01-01 Bockhaus John W. Method for reducing the latency of a branch target calculation by linking the branch target address cache with the call-return stack
US8341383B2 (en) * 2007-11-02 2012-12-25 Qualcomm Incorporated Method and a system for accelerating procedure return sequences
US7882338B2 (en) * 2008-02-20 2011-02-01 International Business Machines Corporation Method, system and computer program product for an implicit predicted return from a predicted subroutine
US7913068B2 (en) * 2008-02-21 2011-03-22 International Business Machines Corporation System and method for providing asynchronous dynamic millicode entry prediction
US20120079255A1 (en) 2010-09-25 2012-03-29 Combs Jonathan D Indirect branch prediction based on branch target buffer hysteresis
US10338928B2 (en) 2011-05-20 2019-07-02 Oracle International Corporation Utilizing a stack head register with a call return stack for each instruction fetch
WO2013101152A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Embedded branch prediction unit
US20140250289A1 (en) * 2013-03-01 2014-09-04 Mips Technologies, Inc. Branch Target Buffer With Efficient Return Prediction Capability
US11099849B2 (en) 2016-09-01 2021-08-24 Oracle International Corporation Method for reducing fetch cycles for return-type instructions
US20190235873A1 (en) * 2018-01-30 2019-08-01 Samsung Electronics Co., Ltd. System and method of reducing computer processor power consumption using micro-btb verified edge feature
GB201802815D0 (en) * 2018-02-21 2018-04-04 Univ Edinburgh Branch target buffer arrangement for instruction prefetching
GB2577051B (en) * 2018-09-11 2021-03-03 Advanced Risc Mach Ltd Branch prediction using branch target buffer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120906A1 (en) 2001-12-21 2003-06-26 Jourdan Stephan J. Return address stack
US20050076193A1 (en) 2003-09-08 2005-04-07 Ip-First, Llc. Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US20140143494A1 (en) 2012-11-19 2014-05-22 Florida State University Research Foundation, Inc. Systems and methods for improving processor efficiency through caching

Also Published As

Publication number Publication date
US11055098B2 (en) 2021-07-06
CN112470122B (zh) 2022-05-10
JP7269318B2 (ja) 2023-05-08
JP2021532471A (ja) 2021-11-25
WO2020023263A1 (en) 2020-01-30
KR20210025677A (ko) 2021-03-09
EP3827338A4 (en) 2022-04-27
US20200034151A1 (en) 2020-01-30
EP3827338A1 (en) 2021-06-02
CN112470122A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
JP7160956B2 (ja) 分岐命令のタイプに基づく先行分岐予測の選択的実行
JP7513527B2 (ja) 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納
US10353710B2 (en) Techniques for predicting a target address of an indirect branch instruction
US20240231887A1 (en) Processing method and apparatus, processor, electronic device, and storage medium
KR102879786B1 (ko) 데이터 항목들을 프리페치하는 장치 및 방법
US11016771B2 (en) Processor and instruction operation method
KR102571623B1 (ko) 초기 리턴 예측을 갖는 분기 타겟 버퍼
US9652245B2 (en) Branch prediction for indirect jumps by hashing current and previous branch instruction addresses
EP4208783A1 (en) Alternate path for branch prediction redirect
US9158545B2 (en) Looking ahead bytecode stream to generate and update prediction information in branch target buffer for branching from the end of preceding bytecode handler to the beginning of current bytecode handler
US11579886B2 (en) System and method for multi-level classification of branches
JP7826225B2 (ja) マージされた分岐ターゲットバッファエントリ
US11687342B2 (en) Way predictor and enable logic for instruction tightly-coupled memory and instruction cache

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20210217

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
A302 Request for accelerated examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20220714

Comment text: Request for Examination of Application

PA0302 Request for accelerated examination

Patent event date: 20220714

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20221121

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20230531

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230823

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230824

End annual number: 3

Start annual number: 1

PG1601 Publication of registration