KR20150130513A - 프로세서에서 브랜치 리턴 명령들을 실행하는 속도를 개선시키기 위한 방법 - Google Patents

프로세서에서 브랜치 리턴 명령들을 실행하는 속도를 개선시키기 위한 방법 Download PDF

Info

Publication number
KR20150130513A
KR20150130513A KR1020157029133A KR20157029133A KR20150130513A KR 20150130513 A KR20150130513 A KR 20150130513A KR 1020157029133 A KR1020157029133 A KR 1020157029133A KR 20157029133 A KR20157029133 A KR 20157029133A KR 20150130513 A KR20150130513 A KR 20150130513A
Authority
KR
South Korea
Prior art keywords
branch
processor
instruction
counter
instructions
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.)
Abandoned
Application number
KR1020157029133A
Other languages
English (en)
Korean (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 KR20150130513A publication Critical patent/KR20150130513A/ko
Abandoned legal-status Critical Current

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/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/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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
KR1020157029133A 2013-03-15 2014-03-14 프로세서에서 브랜치 리턴 명령들을 실행하는 속도를 개선시키기 위한 방법 Abandoned KR20150130513A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/833,844 US9411590B2 (en) 2013-03-15 2013-03-15 Method to improve speed of executing return branch instructions in a processor
US13/833,844 2013-03-15
PCT/US2014/029778 WO2014145101A1 (en) 2013-03-15 2014-03-14 Method to improve speed of executing return branch instructions in a processor

Publications (1)

Publication Number Publication Date
KR20150130513A true KR20150130513A (ko) 2015-11-23

Family

ID=50629003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157029133A Abandoned KR20150130513A (ko) 2013-03-15 2014-03-14 프로세서에서 브랜치 리턴 명령들을 실행하는 속도를 개선시키기 위한 방법

Country Status (6)

Country Link
US (1) US9411590B2 (enExample)
EP (1) EP2972789B8 (enExample)
JP (1) JP6257745B2 (enExample)
KR (1) KR20150130513A (enExample)
CN (1) CN105144084B (enExample)
WO (1) WO2014145101A1 (enExample)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934831B2 (en) * 2014-04-07 2018-04-03 Micron Technology, Inc. Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters
US10120688B2 (en) * 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions
US20180203703A1 (en) * 2017-01-13 2018-07-19 Optimum Semiconductor Technologies, Inc. Implementation of register renaming, call-return prediction and prefetch
GB2571996B (en) * 2018-03-16 2020-09-09 Advanced Risc Mach Ltd Branch target variant of branch-with-link instruction
US10831884B1 (en) * 2019-09-16 2020-11-10 International Business Machines Corporation Nested function pointer calls
CN114647445A (zh) * 2020-12-18 2022-06-21 意法半导体(格勒诺布尔2)公司 在处理器上的逆向工程检测方法和对应集成电路
US20240220267A1 (en) * 2022-12-30 2024-07-04 Akeana, Inc. Return address stack with branch mispredict recovery

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4164037A (en) * 1976-10-27 1979-08-07 Texas Instruments Incorporated Electronic calculator or microprocessor system having combined data and flag bit storage system
US4112495A (en) * 1977-02-09 1978-09-05 Texas Instruments Incorporated Electronic calculator or microprocessor having a selectively loadable instruction register
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5179673A (en) * 1989-12-18 1993-01-12 Digital Equipment Corporation Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
US5623614A (en) 1993-09-17 1997-04-22 Advanced Micro Devices, Inc. Branch prediction cache with multiple entries for returns having multiple callers
US6157999A (en) * 1997-06-03 2000-12-05 Motorola Inc. Data processing system having a synchronizing link stack and method thereof
US6092188A (en) 1997-12-23 2000-07-18 Intel Corporation Processor and instruction set with predict instructions
US6170054B1 (en) 1998-11-16 2001-01-02 Intel Corporation Method and apparatus for predicting target addresses for return from subroutine instructions utilizing a return address cache
SE513431C2 (sv) * 1999-01-11 2000-09-11 Ericsson Telefon Ab L M Buffert för icke-rapporterade hopp
US6848044B2 (en) * 2001-03-08 2005-01-25 International Business Machines Corporation Circuits and methods for recovering link stack data upon branch instruction mis-speculation
US7024537B2 (en) * 2003-01-21 2006-04-04 Advanced Micro Devices, Inc. Data speculation based on addressing patterns identifying dual-purpose register
US20080040576A1 (en) 2006-08-09 2008-02-14 Brian Michael Stempel Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set
US7478228B2 (en) * 2006-08-31 2009-01-13 Qualcomm Incorporated Apparatus for generating return address predictions for implicit and explicit subroutine calls
US7617387B2 (en) 2006-09-27 2009-11-10 Qualcomm Incorporated Methods and system for resolving simultaneous predicted branch instructions
GB2448149B (en) * 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
US8438372B2 (en) * 2007-10-05 2013-05-07 Qualcomm Incorporated Link stack repair of erroneous speculative update
US7971044B2 (en) * 2007-10-05 2011-06-28 Qualcomm Incorporated Link stack repair of erroneous speculative update
US8341383B2 (en) * 2007-11-02 2012-12-25 Qualcomm Incorporated Method and a system for accelerating procedure return sequences
US10042776B2 (en) 2012-11-20 2018-08-07 Arm Limited Prefetching based upon return addresses

Also Published As

Publication number Publication date
US20140281394A1 (en) 2014-09-18
EP2972789B8 (en) 2020-03-04
CN105144084A (zh) 2015-12-09
EP2972789B1 (en) 2019-11-20
CN105144084B (zh) 2018-03-20
JP2016517092A (ja) 2016-06-09
US9411590B2 (en) 2016-08-09
WO2014145101A1 (en) 2014-09-18
EP2972789A1 (en) 2016-01-20
JP6257745B2 (ja) 2018-01-10

Similar Documents

Publication Publication Date Title
KR20150130513A (ko) 프로세서에서 브랜치 리턴 명령들을 실행하는 속도를 개선시키기 위한 방법
US9195466B2 (en) Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
KR102478874B1 (ko) 비순차적 하드웨어 소프트웨어 공동 설계된 프로세서에서 스택 동기화 명령어를 갖는 술어 값의 스택을 구현하고 유지하기 위한 방법 및 장치
US9823929B2 (en) Optimizing performance for context-dependent instructions
WO2014004706A1 (en) Qualifying software branch-target hints with hardware-based predictions
US20100299505A1 (en) Instruction fusion calculation device and method for instruction fusion calculation
US20180173534A1 (en) Branch Predictor with Branch Resolution Code Injection
US20140189331A1 (en) System of improved loop detection and execution
KR20150091462A (ko) 충돌 검출을 수행하고, 레지스터의 콘텐츠를 다른 레지스터의 데이터 구성요소 위치들로 브로드캐스트하기 위한 시스템들, 장치들 및 방법들
WO2012106716A1 (en) Processor with a hybrid instruction queue with instruction elaboration between sections
US11663011B2 (en) System and method of VLIW instruction processing using reduced-width VLIW processor
CN101371223B (zh) 运算数的提早有条件选择
EP2972791B1 (en) Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache
CN108369508A (zh) 使用处理器指令前缀的二进制转换支持
US20060182135A1 (en) System and method for executing loops in a processor
CN107589960B (zh) 一种基于寄存器访问冲突检测的dsp指令模拟方法
KR101847889B1 (ko) 프로세서 모드들을 스위칭하기 위해 호출된 함수의 어드레스의 최하위 비트들의 이용
US9146741B2 (en) Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media
CN104714780A (zh) 一种超标量流水线保留站处理指令的方法及装置
US7020769B2 (en) Method and system for processing a loop of instructions
CN111857822A (zh) 一种运算装置及其操作方法
US20140280271A1 (en) Instruction and logic for processing text strings
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath
CN120858343A (zh) 基于距离的存储器消歧预测
CN117762487A (zh) 一种指令执行控制方法、芯片、电子设备及存储介质

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
A302 Request for accelerated examination
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

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PA0302 Request for accelerated examination

St.27 status event code: A-1-2-D10-D17-exm-PA0302

St.27 status event code: A-1-2-D10-D16-exm-PA0302

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

PC1904 Unpaid initial registration fee

St.27 status event code: A-2-2-U10-U14-oth-PC1904

St.27 status event code: N-2-6-B10-B12-nap-PC1904

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000