JP6257745B2 - プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法 - Google Patents
プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法 Download PDFInfo
- Publication number
- JP6257745B2 JP6257745B2 JP2016503221A JP2016503221A JP6257745B2 JP 6257745 B2 JP6257745 B2 JP 6257745B2 JP 2016503221 A JP2016503221 A JP 2016503221A JP 2016503221 A JP2016503221 A JP 2016503221A JP 6257745 B2 JP6257745 B2 JP 6257745B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch instruction
- counter
- link register
- processor
- 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
Links
Images
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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect 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/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
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)
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 JP2016517092A5 (enExample) | 2017-04-20 |
| JP6257745B2 true 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 (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)
| 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)
| 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 |
-
2013
- 2013-03-15 US US13/833,844 patent/US9411590B2/en active Active
-
2014
- 2014-03-14 CN CN201480013935.1A patent/CN105144084B/zh not_active Expired - Fee Related
- 2014-03-14 EP EP14720842.5A patent/EP2972789B8/en active Active
- 2014-03-14 WO PCT/US2014/029778 patent/WO2014145101A1/en not_active Ceased
- 2014-03-14 JP JP2016503221A patent/JP6257745B2/ja not_active Expired - Fee Related
- 2014-03-14 KR KR1020157029133A patent/KR20150130513A/ko not_active Abandoned
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 |
| KR20150130513A (ko) | 2015-11-23 |
| US9411590B2 (en) | 2016-08-09 |
| WO2014145101A1 (en) | 2014-09-18 |
| EP2972789A1 (en) | 2016-01-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6257745B2 (ja) | プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法 | |
| KR101827747B1 (ko) | 동일한 데이터 조건에 의존하는 인접 명령의 실행 제어 | |
| KR101643675B1 (ko) | 명령 프로세싱 회로들, 및 관련 프로세서 시스템들, 방법들 및 컴퓨터―판독 가능 매체들에서 반대 컨디션들을 갖는 조건부 기록 명령들의 융합 | |
| US9740493B2 (en) | System and method of loop vectorization by compressing indexes and data elements from iterations based on a control mask | |
| TW201224919A (en) | Execute at commit state update instructions, apparatus, methods, and systems | |
| CN112740175A (zh) | 基于加载路径历史的分支预测 | |
| US11036507B2 (en) | Processor testing using pairs of counter incrementing and branch instructions | |
| JP5815596B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
| US11048511B2 (en) | Data processing device data processing method and recording medium | |
| US11392383B2 (en) | Apparatus and method for prefetching data items | |
| CN107589960B (zh) | 一种基于寄存器访问冲突检测的dsp指令模拟方法 | |
| EP2972791B1 (en) | Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache | |
| US9251022B2 (en) | System level architecture verification for transaction execution in a multi-processing environment | |
| EP3198400B1 (en) | Dependency-prediction of instructions | |
| CN107870780B (zh) | 数据处理装置和方法 | |
| US9588747B2 (en) | Method and apparatus for converting programs | |
| KR20250018505A (ko) | 프로세서의 루프 버퍼로부터 실행되는 루프에 대해 분기 예측기를 선택적으로 업데이트하는 기법 | |
| CN117311816A (zh) | 处理指令的方法、处理器、电子装置及存储介质 | |
| JP2004516572A (ja) | スペキュレーティブ・レジスタの調整 | |
| IL273130B1 (en) | Transaction nesting depth testing instruction | |
| US20140281368A1 (en) | Cycle sliced vectors and slot execution on a shared datapath | |
| CN121002479A (zh) | 用于聚合条件分支操作的条件分支指令 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A529 | Written submission of copy of amendment under article 34 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A529 Effective date: 20150910 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170314 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170314 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170316 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170519 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170612 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170907 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171106 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171205 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6257745 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |