MX2007010386A - Supresion de la actualizacion de un registro del historial en ramas por medio de ramas que terminan en bucle. - Google Patents
Supresion de la actualizacion de un registro del historial en ramas por medio de ramas que terminan en bucle.Info
- Publication number
- MX2007010386A MX2007010386A MX2007010386A MX2007010386A MX2007010386A MX 2007010386 A MX2007010386 A MX 2007010386A MX 2007010386 A MX2007010386 A MX 2007010386A MX 2007010386 A MX2007010386 A MX 2007010386A MX 2007010386 A MX2007010386 A MX 2007010386A
- Authority
- MX
- Mexico
- Prior art keywords
- branch
- loop
- bhr
- ending
- detected
- Prior art date
Links
- 238000011156 evaluation Methods 0.000 abstract 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
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)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Radar Systems Or Details Thereof (AREA)
- Molds, Cores, And Manufacturing Methods Thereof (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Se detectan instrucciones en ramas condicionales que terminan en bucles de codigo, y se impide que el registro historial en ramas (BHR) se actualice para almacenar evaluaciones en ramas que terminan en bucle. Esto evita que la rama que implementa iteraciones de bucle desplace otros historiales de evaluacion en ramas desde BHR. La rama que termina en bucle puede ser detectada estaticamente, por un compilador que utiliza una instruccion en ramas de tipo especifico o insertando bits indicadores en el codigo op de una instruccion en ramas que termina en bucle. Una instruccion en ramas que termina en bucle puede ser detectada dinamicamente como cualquier rama hacia atras, o almacenado el PC de la ultima o ultimas instrucciones una vez que se actualiza el BHR, y cotejando el PC de una instruccion en ramas con el(los) ultimo(s) registro(s) en ramas de PC (LBPC). Si el PC en ramas coincide, se suprime la actualizacion del BHR. La eliminacion de las ramas de iteracion de bucle fuera del BHR mejora el tiempo y precision del entrenamiento de prediccion en ramas.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/066,508 US20060190710A1 (en) | 2005-02-24 | 2005-02-24 | Suppressing update of a branch history register by loop-ending branches |
PCT/US2006/006531 WO2006091778A2 (en) | 2005-02-24 | 2006-02-24 | Suppressing update of a branch history register by loop-ending branches |
Publications (1)
Publication Number | Publication Date |
---|---|
MX2007010386A true MX2007010386A (es) | 2007-10-18 |
Family
ID=36577533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MX2007010386A MX2007010386A (es) | 2005-02-24 | 2006-02-24 | Supresion de la actualizacion de un registro del historial en ramas por medio de ramas que terminan en bucle. |
Country Status (11)
Country | Link |
---|---|
US (1) | US20060190710A1 (es) |
EP (2) | EP1851620B1 (es) |
JP (3) | JP5198879B2 (es) |
KR (1) | KR100930199B1 (es) |
CN (2) | CN101160561B (es) |
AT (1) | ATE483198T1 (es) |
DE (1) | DE602006017174D1 (es) |
ES (1) | ES2351163T3 (es) |
IL (1) | IL185362A0 (es) |
MX (1) | MX2007010386A (es) |
WO (1) | WO2006091778A2 (es) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
JP4393317B2 (ja) * | 2004-09-06 | 2010-01-06 | 富士通マイクロエレクトロニクス株式会社 | メモリ制御回路 |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US8904155B2 (en) * | 2006-03-17 | 2014-12-02 | Qualcomm Incorporated | Representing loop branches in a branch history register with multiple bits |
US7962724B1 (en) * | 2007-09-28 | 2011-06-14 | Oracle America, Inc. | Branch loop performance enhancement |
US7956552B2 (en) * | 2008-03-18 | 2011-06-07 | International Business Machiness Corporation | Apparatus, system, and method for device group identification |
US20090327674A1 (en) * | 2008-06-27 | 2009-12-31 | Qualcomm Incorporated | Loop Control System and Method |
JP5423156B2 (ja) * | 2009-06-01 | 2014-02-19 | 富士通株式会社 | 情報処理装置及び分岐予測方法 |
US20110047357A1 (en) * | 2009-08-19 | 2011-02-24 | Qualcomm Incorporated | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
CN101807145B (zh) * | 2010-04-16 | 2012-12-26 | 浙江大学 | 栈式分支预测器的硬件实现方法 |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US9690583B2 (en) | 2011-10-03 | 2017-06-27 | International Business Machines Corporation | Exploiting an architected list-use operand indication in a computer system operand resource pool |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US8959320B2 (en) | 2011-12-07 | 2015-02-17 | Apple Inc. | Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis |
US9304776B2 (en) | 2012-01-31 | 2016-04-05 | Oracle International Corporation | System and method for mitigating the impact of branch misprediction when exiting spin loops |
US9268569B2 (en) | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
US9858077B2 (en) | 2012-06-05 | 2018-01-02 | Qualcomm Incorporated | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media |
US20140156978A1 (en) * | 2012-11-30 | 2014-06-05 | Muawya M. Al-Otoom | Detecting and Filtering Biased Branches in Global Branch History |
US10503538B2 (en) * | 2014-06-02 | 2019-12-10 | International Business Machines Corporation | Delaying branch prediction updates specified by a suspend branch prediction instruction until after a transaction is completed |
US10289414B2 (en) | 2014-06-02 | 2019-05-14 | International Business Machines Corporation | Suppressing branch prediction on a repeated execution of an aborted transaction |
US10261826B2 (en) | 2014-06-02 | 2019-04-16 | International Business Machines Corporation | Suppressing branch prediction updates upon repeated execution of an aborted transaction until forward progress is made |
US10235172B2 (en) | 2014-06-02 | 2019-03-19 | International Business Machines Corporation | Branch predictor performing distinct non-transaction branch prediction functions and transaction branch prediction functions |
US10635446B2 (en) * | 2015-09-24 | 2020-04-28 | Qualcomm Incorporated | Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction |
US9639370B1 (en) * | 2015-12-15 | 2017-05-02 | International Business Machines Corporation | Software instructed dynamic branch history pattern adjustment |
GB2548603B (en) * | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
US20180349144A1 (en) * | 2017-06-06 | 2018-12-06 | Intel Corporation | Method and apparatus for branch prediction utilizing primary and secondary branch predictors |
US10613867B1 (en) | 2017-07-19 | 2020-04-07 | Apple Inc. | Suppressing pipeline redirection indications |
CN111177663B (zh) * | 2019-12-20 | 2023-03-14 | 青岛海尔科技有限公司 | 编译器的代码混淆改进方法及装置、存储介质、电子装置 |
US11941403B2 (en) * | 2020-06-19 | 2024-03-26 | Arm Limited | Selective prediction based on correlation between a given instruction and a subset of a set of monitored instructions ordinarily used to generate predictions for that given instruction |
US11113067B1 (en) * | 2020-11-17 | 2021-09-07 | Centaur Technology, Inc. | Speculative branch pattern update |
CN112988234A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向不稳定控制流循环体的分支指令辅助预测器 |
US11868779B2 (en) * | 2021-09-09 | 2024-01-09 | International Business Machines Corporation | Updating metadata prediction tables using a reprediction pipeline |
US11928474B2 (en) * | 2022-06-03 | 2024-03-12 | Microsoft Technology Licensing, Llc | Selectively updating branch predictors for loops executed from loop buffers in a processor |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS635442A (ja) * | 1986-06-26 | 1988-01-11 | Matsushita Electric Ind Co Ltd | プログラムル−プ検出記憶装置 |
US5175827A (en) * | 1987-01-22 | 1992-12-29 | Nec Corporation | Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table |
JP2555664B2 (ja) * | 1987-01-22 | 1996-11-20 | 日本電気株式会社 | 分岐ヒストリテーブル書込制御方式 |
JPH0715662B2 (ja) * | 1987-07-14 | 1995-02-22 | 日本電気株式会社 | 命令の先取りを行なう情報処理装置 |
JPH06243036A (ja) * | 1993-02-12 | 1994-09-02 | Hitachi Ltd | キャッシュ制御システム |
EP0623874A1 (en) * | 1993-05-03 | 1994-11-09 | International Business Machines Corporation | Method for improving the performance of processors executing instructions in a loop |
US5404473A (en) * | 1994-03-01 | 1995-04-04 | Intel Corporation | Apparatus and method for handling string operations in a pipelined processor |
JP3494484B2 (ja) * | 1994-10-12 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
US5752014A (en) * | 1996-04-29 | 1998-05-12 | International Business Machines Corporation | Automatic selection of branch prediction methodology for subsequent branch instruction based on outcome of previous branch prediction |
US5893142A (en) * | 1996-11-14 | 1999-04-06 | Motorola Inc. | Data processing system having a cache and method therefor |
US6253373B1 (en) * | 1997-10-07 | 2001-06-26 | Hewlett-Packard Company | Tracking loop entry and exit points in a compiler |
US6427206B1 (en) * | 1999-05-03 | 2002-07-30 | Intel Corporation | Optimized branch predictions for strongly predicted compiler branches |
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
US7017030B2 (en) * | 2002-02-20 | 2006-03-21 | Arm Limited | Prediction of instructions in a data processing apparatus |
JP3798998B2 (ja) * | 2002-06-28 | 2006-07-19 | 富士通株式会社 | 分岐予測装置および分岐予測方法 |
JP4243463B2 (ja) * | 2002-08-19 | 2009-03-25 | 株式会社半導体理工学研究センター | 命令スケジューリングのシミュレーション方法とシミュレーションシステム |
US7290089B2 (en) * | 2002-10-15 | 2007-10-30 | Stmicroelectronics, Inc. | Executing cache instructions in an increased latency mode |
JP3893463B2 (ja) * | 2003-04-23 | 2007-03-14 | 国立大学法人九州工業大学 | キャッシュメモリ、及びキャッシュメモリの電力削減方法 |
US20050102659A1 (en) * | 2003-11-06 | 2005-05-12 | Singh Ravi P. | Methods and apparatus for setting up hardware loops in a deeply pipelined processor |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
-
2005
- 2005-02-24 US US11/066,508 patent/US20060190710A1/en not_active Abandoned
-
2006
- 2006-02-24 WO PCT/US2006/006531 patent/WO2006091778A2/en active Application Filing
- 2006-02-24 MX MX2007010386A patent/MX2007010386A/es active IP Right Grant
- 2006-02-24 AT AT06735979T patent/ATE483198T1/de not_active IP Right Cessation
- 2006-02-24 EP EP06735979A patent/EP1851620B1/en not_active Not-in-force
- 2006-02-24 EP EP10181327A patent/EP2270651A1/en not_active Withdrawn
- 2006-02-24 ES ES06735979T patent/ES2351163T3/es active Active
- 2006-02-24 CN CN2006800126198A patent/CN101160561B/zh not_active Expired - Fee Related
- 2006-02-24 CN CN201310409847.0A patent/CN103488463B/zh not_active Expired - Fee Related
- 2006-02-24 DE DE602006017174T patent/DE602006017174D1/de active Active
- 2006-02-24 JP JP2007557182A patent/JP5198879B2/ja not_active Expired - Fee Related
- 2006-02-24 KR KR1020077021427A patent/KR100930199B1/ko not_active IP Right Cessation
-
2007
- 2007-08-19 IL IL185362A patent/IL185362A0/en unknown
-
2010
- 2010-11-30 JP JP2010266368A patent/JP2011100466A/ja not_active Withdrawn
-
2014
- 2014-08-08 JP JP2014162801A patent/JP2015007995A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN101160561A (zh) | 2008-04-09 |
JP2011100466A (ja) | 2011-05-19 |
ATE483198T1 (de) | 2010-10-15 |
KR20070105365A (ko) | 2007-10-30 |
CN101160561B (zh) | 2013-10-16 |
DE602006017174D1 (de) | 2010-11-11 |
CN103488463B (zh) | 2016-11-09 |
EP2270651A1 (en) | 2011-01-05 |
EP1851620B1 (en) | 2010-09-29 |
JP2015007995A (ja) | 2015-01-15 |
WO2006091778A3 (en) | 2007-07-05 |
CN103488463A (zh) | 2014-01-01 |
IL185362A0 (en) | 2008-02-09 |
KR100930199B1 (ko) | 2009-12-07 |
ES2351163T3 (es) | 2011-02-01 |
JP2008532142A (ja) | 2008-08-14 |
JP5198879B2 (ja) | 2013-05-15 |
US20060190710A1 (en) | 2006-08-24 |
WO2006091778A2 (en) | 2006-08-31 |
EP1851620A2 (en) | 2007-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MX2007010386A (es) | Supresion de la actualizacion de un registro del historial en ramas por medio de ramas que terminan en bucle. | |
MX2008011752A (es) | Registro de historial de ramificacion para ramificaciones de bucle. | |
KR101376900B1 (ko) | 이력에 의한 다음 인출 예측기 트레이닝 | |
JP2011100466A5 (es) | ||
CN102473086B (zh) | 提供分布式判定预测的方法、系统和计算机可访问介质 | |
JP2008532142A5 (es) | ||
US7962733B2 (en) | Branch prediction mechanisms using multiple hash functions | |
JP2009530754A5 (es) | ||
WO2009144539A3 (en) | Microprocessor techniques for real signal processing and updating | |
DE602007005790D1 (de) | Datenverarbeitungseinheit für Anweisungen in geschachtelten Schleifen | |
GB2441665A (en) | Primitives to enhance thread-level speculation | |
ATE510254T1 (de) | Bedingte ausführung über einen inhaltsadressierbaren speicher und modell einer parallel ausgeführten berechnung | |
TW200703037A (en) | Cryptographically secure modular polynomial reduction method and computational hardware for executing the same | |
DE602005024178D1 (de) | Behandlung von vordecodierungsfehlern über zweigkorrektur | |
DE602005017909D1 (de) | Selektives durchführen von abrufvorgängen für speicheroperationen während der spekulativen ausführung | |
Abel | Automatic generation of models of microarchitectures | |
KR20080067711A (ko) | 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템 | |
Milenkovic et al. | Microbenchmarks for determining branch predictor organization | |
GB2366042B (en) | Programmable prefetching of instructions for a processor executing a non-procedual program | |
Panirwala | Exploring Correlation for Indirect Branch Prediction. | |
Gruss | Software-based Microarchitectural Attacks and Operating System Features | |
Arora et al. | Assembly code optimization techniques for real time DSP implementation of speech codecs | |
Parallelism | Exploiting Instruction-Level Parallelism with Software Approaches | |
Gray | The StatiC Compiler and Language | |
Vijaykumar et al. | Skipper: A microarchitecture for exploiting control-flow independence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Grant or registration |