BRPI0608139A2 - método e equipamento para gerenciar uma pilha de retorno - Google Patents

método e equipamento para gerenciar uma pilha de retorno

Info

Publication number
BRPI0608139A2
BRPI0608139A2 BRPI0608139-8A BRPI0608139A BRPI0608139A2 BR PI0608139 A2 BRPI0608139 A2 BR PI0608139A2 BR PI0608139 A BRPI0608139 A BR PI0608139A BR PI0608139 A2 BRPI0608139 A2 BR PI0608139A2
Authority
BR
Brazil
Prior art keywords
return
stack
addresses
callback
instruction
Prior art date
Application number
BRPI0608139-8A
Other languages
English (en)
Inventor
Jefrey Todd Bridges
James Norris Dieffenderfer
Thomas Andrew Sartorius
Rodney Wayne Smith
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0608139A2 publication Critical patent/BRPI0608139A2/pt

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802—Instruction prefetching
    • G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003—Arrangements for executing specific machine instructions
    • G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054—Unconditional branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
    • G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482—Procedural
    • G06F9/4484—Executing subprograms
    • G06F9/4486—Formation of subprogram jump address

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)
  • Advance Control (AREA)
  • Pile Receivers (AREA)

Abstract

MéTODO E EQUIPAMENTO PARA GERENCIAR UMA PILHA DE RETORNO. Um processador inclui um circuito de pilha de retorno utilizado para predizer endereços de retorno de procedimento para pré-busca de instrução, em que um controlador de pilha de retorno determina o número de níveis de retorno associados a uma dada instrução de retorno, e extrair esse número de endereços de retorno da pilha de retorno. A extração de múltiplos endereços de retorno da pilha de retorno permite que o processador faça a pré-busca do endereço de retorno do procedimento de chamada original em uma cadeia de chamadas de procedimento sucessivas. Em uma modalidade, o controlador de pilha de retorno lê o número de níveis de retorno a partir de um valor embutido na instrução de retorno. Um compilador complementar calcula os valores de nível de retorno para dadas instruções de retorno e embute tais valores nelas no tempo de compilação. Em outra modalidade, o circuito de pilha de retorno segue dinamicamente o número de níveis de retorno pela contagem das chamadas dQ procedimento (desvios) em uma cadeia de chamadas de procedimento sucessivas.
BRPI0608139-8A 2005-02-18 2006-02-17 método e equipamento para gerenciar uma pilha de retorno BRPI0608139A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/061,975 US7203826B2 (en) 2005-02-18 2005-02-18 Method and apparatus for managing a return stack
PCT/US2006/005775 WO2006089188A2 (en) 2005-02-18 2006-02-17 Method and apparatus for managing a return stack

Publications (1)

Publication Number Publication Date
BRPI0608139A2 true BRPI0608139A2 (pt) 2009-11-17

Family

ID=36914213

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0608139-8A BRPI0608139A2 (pt) 2005-02-18 2006-02-17 método e equipamento para gerenciar uma pilha de retorno

Country Status (10)

Country Link
US (1) US7203826B2 (pt)
EP (1) EP1853995B1 (pt)
JP (2) JP2008530712A (pt)
KR (1) KR101026978B1 (pt)
CN (2) CN101156135A (pt)
AT (1) ATE476701T1 (pt)
BR (1) BRPI0608139A2 (pt)
DE (1) DE602006015923D1 (pt)
IL (1) IL185303A0 (pt)
WO (1) WO2006089188A2 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI261197B (en) * 2005-05-20 2006-09-01 Benq Corp Method for finding function call stack in run time for a computer system
US20070061555A1 (en) * 2005-09-15 2007-03-15 St Clair Michael Call return tracking technique
US8578347B1 (en) * 2006-12-28 2013-11-05 The Mathworks, Inc. Determining stack usage of generated code from a model
CN100573461C (zh) * 2008-05-07 2009-12-23 浙江大学 在嵌入式系统中分析堆栈使用的方法
EP2592792B1 (en) * 2010-08-30 2017-09-27 Huawei Technologies Co. Ltd. Instruction processing method of network processor and network processor
US10042776B2 (en) * 2012-11-20 2018-08-07 Arm Limited Prefetching based upon return addresses
GB2542831B (en) * 2015-09-30 2018-05-30 Imagination Tech Ltd Fetch unit for predicting target for subroutine return instructions
US20170090927A1 (en) * 2015-09-30 2017-03-30 Paul Caprioli Control transfer instructions indicating intent to call or return
US20210303470A1 (en) * 2020-03-27 2021-09-30 Micron Technology, Inc. Sequential prefetching through a linking array
US11586440B2 (en) * 2021-06-01 2023-02-21 International Business Machines Corporation Link stack based instruction prefetch augmentation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60105046A (ja) * 1983-11-11 1985-06-10 Nec Corp アドレススタツク制御方式
JPS63311439A (ja) * 1987-06-12 1988-12-20 Nec Corp コ−ル・リタ−ン方式
JPH01216429A (ja) * 1988-02-24 1989-08-30 Nec Corp マイクロコンピュータ
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
JPH02224026A (ja) * 1988-11-17 1990-09-06 Nec Corp スタック回路
JP3049561B2 (ja) * 1990-05-21 2000-06-05 東洋通信機株式会社 プロダクションシステムとプロダクションシステムの変換装置
US5522072A (en) * 1990-09-04 1996-05-28 At&T Corp. Arrangement for efficiently transferring program execution between subprograms
JPH04317129A (ja) * 1991-04-17 1992-11-09 Nec Ibaraki Ltd マイクロプログラムアドレススタック回路
US5313634A (en) 1992-07-28 1994-05-17 International Business Machines Corporation Computer system branch prediction of subroutine returns
JPH0728644A (ja) * 1993-07-12 1995-01-31 Seiko Epson Corp データ処理装置
US6035321A (en) 1994-06-29 2000-03-07 Acis, Inc. Method for enforcing a hierarchical invocation structure in real time asynchronous software applications
US5706491A (en) * 1994-10-18 1998-01-06 Cyrix Corporation Branch processing unit with a return stack including repair using pointers from different pipe stages
US6035118A (en) * 1997-06-23 2000-03-07 Sun Microsystems, Inc. Mechanism to eliminate the performance penalty of computed jump targets in a pipelined processor
US6151671A (en) * 1998-02-20 2000-11-21 Intel Corporation System and method of maintaining and utilizing multiple return stack buffers
JP3513038B2 (ja) * 1998-12-10 2004-03-31 富士通株式会社 命令フェッチ制御装置
US6289444B1 (en) * 1999-06-02 2001-09-11 International Business Machines Corporation Method and apparatus for subroutine call-return prediction
US6560696B1 (en) * 1999-12-29 2003-05-06 Intel Corporation Return register stack target predictor
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
US20040049666A1 (en) * 2002-09-11 2004-03-11 Annavaram Murali M. Method and apparatus for variable pop hardware return address stack
CN1447244A (zh) * 2003-04-03 2003-10-08 杭州中天微系统有限公司 一种设计在cpu里的侦测缓冲区溢出的方法
US7293265B2 (en) * 2003-05-15 2007-11-06 Intel Corporation Methods and apparatus to perform return-address prediction
CN1294468C (zh) * 2004-04-09 2007-01-10 南京大学 一种防止缓冲区溢出攻击的动态堆栈内存管理方法

Also Published As

Publication number Publication date
WO2006089188A2 (en) 2006-08-24
US20060190711A1 (en) 2006-08-24
CN101156135A (zh) 2008-04-02
EP1853995A2 (en) 2007-11-14
CN102707933B (zh) 2017-03-01
CN102707933A (zh) 2012-10-03
ATE476701T1 (de) 2010-08-15
KR101026978B1 (ko) 2011-04-11
EP1853995B1 (en) 2010-08-04
KR20070106783A (ko) 2007-11-05
JP2008530712A (ja) 2008-08-07
IL185303A0 (en) 2008-02-09
JP2012123810A (ja) 2012-06-28
DE602006015923D1 (de) 2010-09-16
US7203826B2 (en) 2007-04-10
WO2006089188A3 (en) 2007-01-04
JP5579694B2 (ja) 2014-08-27

Similar Documents

Publication Publication Date Title
IL185303A0 (en) Method and apparatus for managing a return stack
BRPI1001929A2 (pt) Execução atômica remota de manipulação adaptativa
BR112022001191A2 (pt) Combinações fungicidas, misturas e composições e usos das mesmas
GB2463828A (en) Technique for preserving cached information during low power mode
BR112021022080A2 (pt) Método de ativação de dispositivo terminal e aparelho, dispositivo de rede e dispositivo terminal
WO2006124242A3 (en) Function-level just-in-time translation engine with multiple pass optimization
SG150490A1 (en) Virtual machine (vm) migration between processor architectures
EP1635263A3 (en) Method and apparatus for dynamically instrumenting executable codes
BR112012027745A2 (pt) método e composição imunogênica para tratamento de neoplásia
BR112013028501A2 (pt) aparelho e método para processamento de dados seguro baseado em hardware utilizando regras de faixa de endereço de memória de armazenamento temporário
ATE540353T1 (de) Einteilen von threads in einem prozessor
BRPI0924058A2 (pt) anticorpos contra inibidor da via de fator tecidual
BRPI1010460A8 (pt) Método para monitoração da condição de um aparelho localizado em uma instalação submersa e meio de monitoração de condição para a monitoração de um componente de uma instalação submersa
NO20050098L (no) Testing av mulige primtall for kryptografiske applikasjoner
BR112015013917A2 (pt) método, unidade de computação, e sistema
BR112012016253A2 (pt) "método para levantamento geofísico tendo pelo menos uma fonte e um receptor, conjunto de dados de levantamento geofísico adquirido indicativo".
BR112016002637A2 (pt) sincronização de barreira com cálculo dinâmico de largura
NO20090969L (no) Sammensetninger og fremgangsmater som anvender anti-CS1 antistoffer for a behandle multippel myeloma
AR062098A1 (es) Metodo para analizar datos que tienen propiedades compartidas y distintas
BR112013006419A2 (pt) aparelho, método de instalação
BR112012006402A2 (pt) método e aparelho configurado para estimar a localização de um dispositivo de usuário em uma rede sem fio, e, programa de computador.
MX343120B (es) Calabaza con resistencia mejorada a la enfermedad.
WO2009072030A3 (en) Method of operating a medical device
NO20092894L (no) Snoresystem for sko
FR2970099B1 (fr) Procede de chargement d'un code d'au moins un module logiciel

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 6A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2161 DE 05/06/2012.

B15K Others concerning applications: alteration of classification

Ipc: G06F 9/38 (2006.01), G06F 9/30 (2018.01), G06F 9/4