KR101254067B1 - 절차 리턴 시퀀스들을 가속하기 위한 방법 및 시스템 - Google Patents

절차 리턴 시퀀스들을 가속하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101254067B1
KR101254067B1 KR1020107012265A KR20107012265A KR101254067B1 KR 101254067 B1 KR101254067 B1 KR 101254067B1 KR 1020107012265 A KR1020107012265 A KR 1020107012265A KR 20107012265 A KR20107012265 A KR 20107012265A KR 101254067 B1 KR101254067 B1 KR 101254067B1
Authority
KR
South Korea
Prior art keywords
instruction
logic circuit
return
command
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.)
Expired - Fee Related
Application number
KR1020107012265A
Other languages
English (en)
Korean (ko)
Other versions
KR20100087357A (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 KR20100087357A publication Critical patent/KR20100087357A/ko
Application granted granted Critical
Publication of KR101254067B1 publication Critical patent/KR101254067B1/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/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/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
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding

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)
KR1020107012265A 2007-11-02 2008-10-31 절차 리턴 시퀀스들을 가속하기 위한 방법 및 시스템 Expired - Fee Related KR101254067B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/934,264 US8341383B2 (en) 2007-11-02 2007-11-02 Method and a system for accelerating procedure return sequences
US11/934,264 2007-11-02
PCT/US2008/081947 WO2009059100A1 (en) 2007-11-02 2008-10-31 A method and a system for accelerating procedure return sequences

Publications (2)

Publication Number Publication Date
KR20100087357A KR20100087357A (ko) 2010-08-04
KR101254067B1 true KR101254067B1 (ko) 2013-04-12

Family

ID=40085506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012265A Expired - Fee Related KR101254067B1 (ko) 2007-11-02 2008-10-31 절차 리턴 시퀀스들을 가속하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US8341383B2 (enExample)
EP (1) EP2220556B1 (enExample)
JP (3) JP5301554B2 (enExample)
KR (1) KR101254067B1 (enExample)
CN (1) CN101884025B (enExample)
WO (1) WO2009059100A1 (enExample)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587580B2 (en) * 2005-02-03 2009-09-08 Qualcomm Corporated Power efficient instruction prefetch mechanism
US8341383B2 (en) * 2007-11-02 2012-12-25 Qualcomm Incorporated Method and a system for accelerating procedure return sequences
US9411590B2 (en) * 2013-03-15 2016-08-09 Qualcomm Incorporated Method to improve speed of executing return branch instructions in a processor
US9703948B2 (en) 2014-03-28 2017-07-11 Intel Corporation Return-target restrictive return from procedure instructions, processors, methods, and systems
GB2542831B (en) * 2015-09-30 2018-05-30 Imagination Tech Ltd Fetch unit for predicting target for subroutine return instructions
GB2551548B (en) 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction
US11055098B2 (en) * 2018-07-24 2021-07-06 Advanced Micro Devices, Inc. Branch target buffer with early return prediction
WO2021141760A1 (en) * 2020-01-06 2021-07-15 Quadric. Io, Inc Systems and methods for optimizing nested loop instructions in pipeline processing stages
US11586440B2 (en) * 2021-06-01 2023-02-21 International Business Machines Corporation Link stack based instruction prefetch augmentation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812813A (en) * 1996-07-29 1998-09-22 Integrated Device Technology, Inc. Apparatus and method for of register changes during execution of a micro instruction tracking sequence
US20030120906A1 (en) 2001-12-21 2003-06-26 Jourdan Stephan J. Return address stack

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0417916B1 (en) * 1989-09-13 1998-12-16 Digital Equipment Corporation Procedure state descriptor system for digital data processors
JPH06131250A (ja) * 1992-10-20 1994-05-13 Toshiba Corp データ処理装置
JPH07239782A (ja) * 1994-02-28 1995-09-12 Toshiba Corp 演算処理装置
JPH07281892A (ja) * 1994-04-06 1995-10-27 Hitachi Ltd 情報処理装置
JP2735523B2 (ja) * 1995-11-29 1998-04-02 日本電気アイシーマイコンシステム株式会社 プロシージャ・ステップ処理方法
US6151671A (en) * 1998-02-20 2000-11-21 Intel Corporation System and method of maintaining and utilizing multiple return stack buffers
US6094716A (en) 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6363473B1 (en) * 1999-04-01 2002-03-26 Compaq Information Technologies Group, L.P. Simulated memory stack in a stackless environment
JP3723019B2 (ja) * 1999-09-29 2005-12-07 富士通株式会社 サブルーチンリターン相当の命令の分岐予測を行う装置および方法
GB2358261B (en) * 2000-01-17 2004-06-09 Advanced Risc Mach Ltd Data processing with native and interpreted program instruction words
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
US7017030B2 (en) * 2002-02-20 2006-03-21 Arm Limited Prediction of instructions in a data processing apparatus
US7996659B2 (en) * 2005-06-06 2011-08-09 Atmel Corporation Microprocessor instruction that allows system routine calls and returns from all contexts
US7478228B2 (en) * 2006-08-31 2009-01-13 Qualcomm Incorporated Apparatus for generating return address predictions for implicit and explicit subroutine calls
US8341383B2 (en) * 2007-11-02 2012-12-25 Qualcomm Incorporated Method and a system for accelerating procedure return sequences

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812813A (en) * 1996-07-29 1998-09-22 Integrated Device Technology, Inc. Apparatus and method for of register changes during execution of a micro instruction tracking sequence
US20030120906A1 (en) 2001-12-21 2003-06-26 Jourdan Stephan J. Return address stack

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Microprocessor Report 1994, Mike Johnson, An Alternative to RISC: The Intel 80x86(1994) *

Also Published As

Publication number Publication date
JP5301554B2 (ja) 2013-09-25
CN101884025B (zh) 2014-04-09
JP2011503718A (ja) 2011-01-27
JP5815596B2 (ja) 2015-11-17
WO2009059100A1 (en) 2009-05-07
US20090119486A1 (en) 2009-05-07
KR20100087357A (ko) 2010-08-04
CN101884025A (zh) 2010-11-10
JP2015133126A (ja) 2015-07-23
EP2220556A1 (en) 2010-08-25
EP2220556B1 (en) 2019-03-06
JP2013211023A (ja) 2013-10-10
US8341383B2 (en) 2012-12-25

Similar Documents

Publication Publication Date Title
KR101254067B1 (ko) 절차 리턴 시퀀스들을 가속하기 위한 방법 및 시스템
US6898699B2 (en) Return address stack including speculative return address buffer with back pointers
JP5209633B2 (ja) ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法
EP2087420B1 (en) Methods and apparatus for recognizing a subroutine call
US9250912B2 (en) Fast index tree for accelerated branch prediction
US12411694B2 (en) Processor having adaptive pipeline with latency reduction logic that selectively executes instructions to reduce latency
US20070266228A1 (en) Block-based branch target address cache
US7827392B2 (en) Sliding-window, block-based branch target address cache
US20080065870A1 (en) Information processing apparatus
US20140019722A1 (en) Processor and instruction processing method of processor
US9250909B2 (en) Fast index tree for accelerated branch prediction
US20090070569A1 (en) Branch prediction device,branch prediction method, and microprocessor
US20220308888A1 (en) Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor
US20070294518A1 (en) System and method for predicting target address of branch instruction utilizing branch target buffer having entry indexed according to program counter value of previous instruction
TWI864776B (zh) 預測分支的方法和系統
JP2012043166A (ja) 演算処理装置

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

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

PG1501 Laying open of application

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

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

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

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-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

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-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

FPAY Annual fee payment

Payment date: 20160330

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

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

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

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Not in force date: 20190409

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

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