JP2016517092A5 - - Google Patents

Download PDF

Info

Publication number
JP2016517092A5
JP2016517092A5 JP2016503221A JP2016503221A JP2016517092A5 JP 2016517092 A5 JP2016517092 A5 JP 2016517092A5 JP 2016503221 A JP2016503221 A JP 2016503221A JP 2016503221 A JP2016503221 A JP 2016503221A JP 2016517092 A5 JP2016517092 A5 JP 2016517092A5
Authority
JP
Japan
Prior art keywords
instruction
branch instruction
counter
processor
branch
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.)
Granted
Application number
JP2016503221A
Other languages
English (en)
Other versions
JP2016517092A (ja
JP6257745B2 (ja
Filing date
Publication date
Priority claimed from US13/833,844 external-priority patent/US9411590B2/en
Application filed filed Critical
Publication of JP2016517092A publication Critical patent/JP2016517092A/ja
Publication of JP2016517092A5 publication Critical patent/JP2016517092A5/ja
Application granted granted Critical
Publication of JP6257745B2 publication Critical patent/JP6257745B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (5)

  1. プロセッサにおいて、コール分岐命令およびリターン分岐命令を実行するための方法であって、
    前記プロセッサが前記コール分岐命令と異なるリンクレジスタ操作命令をデコードすることに応じて、カウンタを初期値に設定するステップと、
    前記プロセッサがコール分岐命令をデコードすることに応じて、第1の定数だけ前記カウンタをインクリメントするステップと、
    前記プロセッサが前記コール分岐命令をデコードすることに応じて、プログラム順で次の命令のアドレスをリンクレジスタスタックにプッシュするステップと、
    前記プロセッサがリターン分岐命令をデコードすることに応じて、前記カウンタが前記初期値に等しくない値を有する場合に、第2の定数だけ前記カウンタをインクリメントするステップと、
    前記プロセッサが前記リターン分岐命令をデコードすることに応じて、前記カウンタが前記初期値に等しくない値を有する場合に、前記リターン分岐命令のためのターゲットアドレスを前記リンクレジスタスタックからポップするステップであって、前記カウンタの前記値が前記初期値に等しくないとき、前記リンクレジスタスタックからポップされた前記ターゲットアドレスは前記リターン分岐命令の正確なターゲットアドレスである、ステップと、
    前記ターゲットアドレスの正当性をチェックすることなく前記リターン分岐命令の実行を完了し、前記リターン分岐命令を回収するステップと
    を含む、方法。
  2. 前記初期値がゼロであり、前記第1の定数が1に等し、前記第2の定数がマイナス1に等しい、請求項1に記載の方法。
  3. リンクレジスタと、
    リンクレジスタスタックと、
    分岐カウンタと、
    プロセッサであって、
    前記リンクレジスタに書き込むコール分岐命令と異なる命令をデコードすることに応じて、前記分岐カウンタを初期値に設定し、
    コール分岐命令をデコードすることに応じて、第1の定数だけ前記分岐カウンタをインクリメントし、
    前記プロセッサが前記コール分岐命令をデコードすることに応じて、プログラム順で次の命令のアドレスを前記リンクレジスタスタックにプッシュし、
    リターン分岐命令をデコードすることに応じて、前記分岐カウンタが前記初期値に等しくない値を有する場合に、第2の定数だけ前記分岐カウンタをインクリメントし、
    前記プロセッサが前記リターン分岐命令をデコードすることに応じて、前記分岐カウンタが前記初期値に等しくない値を有する場合に、前記リターン分岐命令のためのターゲットアドレスを前記リンクレジスタスタックからポップし、
    前記ターゲットアドレスの正当性をチェックすることなく前記リターン分岐命令の実行を完了し、前記リターン分岐命令を回収する
    ように構成されたプロセッサであって、前記分岐カウンタの前記値が前記初期値に等しくないとき、前記リンクレジスタスタックからポップされた前記ターゲットアドレスは前記リターン分岐命令の正確なターゲットアドレスである、プロセッサと、
    を備える、装置。
  4. 前記初期値がゼロであり、前記第1の定数が1に等し、前記第2の定数がマイナス1に等しい、請求項3に記載の装置。
  5. 前記装置が、セルラー電話と、基地局とからなる集合から選択される、請求項3に記載の装置。
JP2016503221A 2013-03-15 2014-03-14 プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法 Expired - Fee Related JP6257745B2 (ja)

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 (3)

Publication Number Publication Date
JP2016517092A JP2016517092A (ja) 2016-06-09
JP2016517092A5 true JP2016517092A5 (ja) 2017-04-20
JP6257745B2 JP6257745B2 (ja) 2018-01-10

Family

ID=50629003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016503221A Expired - Fee Related JP6257745B2 (ja) 2013-03-15 2014-03-14 プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法

Country Status (6)

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

Families Citing this family (5)

* 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

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

Similar Documents

Publication Publication Date Title
JP2016517092A5 (ja)
EP3734447C0 (en) APPLICATION PROGRAM PROCESSING METHOD, APPARATUS, STORAGE MEDIUM AND COMPUTER APPARATUS
GB2549883A (en) Advanced processor architecture
EP2787444A3 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
JP2018130556A5 (ja)
WO2014009689A3 (en) Controlling an order for processing data elements during vector processing
EP3611618A4 (en) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND COMPUTER PROGRAM
EP3848912A4 (en) PORTABLE TERMINAL, WEIGHING DEVICE, PROGRAM, RECORDING MEDIA, SALES PROCESSING SYSTEM AND SALES PROCESSING METHOD
EP3588491A4 (en) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS AND COMPUTER PROGRAM
EP3690697A4 (en) VERIFICATION DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM
TWI799588B (zh) 積和運算裝置、積和運算電路、積和運算系統及積和運算方法
RU2015130841A (ru) Способ и устройство для использования команд пользователя
EP3651083A4 (en) PROVISION DEVICE, PROCESSING DEVICE, INFORMATION PROCESSING METHODS AND PROGRAM
EP3797693A4 (en) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND COMPUTER PROGRAM
JP2018523235A5 (ja)
EP3893087A4 (en) RESPONSE PROCESSING DEVICE, RESPONSE PROCESSING METHOD AND RESPONSE PROCESSING PROGRAM
EP3989235A4 (en) PROGRAM, TEST DEVICE, INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
JP2018122228A5 (ja) 塗布装置、情報処理装置、情報処理方法、プログラム
JP2018502425A5 (ja)
JP2016224731A5 (ja)
JP2015535634A5 (ja)
JP2019155124A5 (ja) 情報処理装置及びプログラム
JP2018501609A5 (ja)
DK3454246T3 (da) Fremgangsmåde til transmission og kontrol af gyldigheden af konfigurationsdata i et elektronisk system, tilhørende elektronisk system og computerprogramprodukt
JP2015163786A5 (ja)