DE602006017174D1 - Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweige - Google Patents
Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweigeInfo
- Publication number
- DE602006017174D1 DE602006017174D1 DE602006017174T DE602006017174T DE602006017174D1 DE 602006017174 D1 DE602006017174 D1 DE 602006017174D1 DE 602006017174 T DE602006017174 T DE 602006017174T DE 602006017174 T DE602006017174 T DE 602006017174T DE 602006017174 D1 DE602006017174 D1 DE 602006017174D1
- Authority
- DE
- Germany
- Prior art keywords
- branches
- branch
- suppression
- wearing
- update
- 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.)
- Active
Links
- 230000001629 suppression Effects 0.000 title 1
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)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Radar Systems Or Details Thereof (AREA)
- Molds, Cores, And Manufacturing Methods Thereof (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
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 |
---|---|
DE602006017174D1 true DE602006017174D1 (de) | 2010-11-11 |
Family
ID=36577533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE602006017174T Active DE602006017174D1 (de) | 2005-02-24 | 2006-02-24 | Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweige |
Country Status (11)
Country | Link |
---|---|
US (1) | US20060190710A1 (de) |
EP (2) | EP2270651A1 (de) |
JP (3) | JP5198879B2 (de) |
KR (1) | KR100930199B1 (de) |
CN (2) | CN101160561B (de) |
AT (1) | ATE483198T1 (de) |
DE (1) | DE602006017174D1 (de) |
ES (1) | ES2351163T3 (de) |
IL (1) | IL185362A0 (de) |
MX (1) | MX2007010386A (de) |
WO (1) | WO2006091778A2 (de) |
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 | 浙江大学 | 栈式分支预测器的硬件实现方法 |
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 |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
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 |
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 |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
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 |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
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 |
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 |
US10289414B2 (en) | 2014-06-02 | 2019-05-14 | International Business Machines Corporation | Suppressing branch prediction on a repeated execution of an aborted transaction |
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 |
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 | プログラムル−プ検出記憶装置 |
JP2555664B2 (ja) * | 1987-01-22 | 1996-11-20 | 日本電気株式会社 | 分岐ヒストリテーブル書込制御方式 |
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 |
JPH0715662B2 (ja) * | 1987-07-14 | 1995-02-22 | 日本電気株式会社 | 命令の先取りを行なう情報処理装置 |
JPH06243036A (ja) * | 1993-02-12 | 1994-09-02 | Hitachi Ltd | キャッシュ制御システム |
EP0623874A1 (de) * | 1993-05-03 | 1994-11-09 | International Business Machines Corporation | Verfahren zur Ausführung von Befehlen in einer Schleife |
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 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 EP EP10181327A patent/EP2270651A1/de not_active Withdrawn
- 2006-02-24 MX MX2007010386A patent/MX2007010386A/es active IP Right Grant
- 2006-02-24 KR KR1020077021427A patent/KR100930199B1/ko not_active IP Right Cessation
- 2006-02-24 DE DE602006017174T patent/DE602006017174D1/de active Active
- 2006-02-24 WO PCT/US2006/006531 patent/WO2006091778A2/en active Application Filing
- 2006-02-24 JP JP2007557182A patent/JP5198879B2/ja not_active Expired - Fee Related
- 2006-02-24 AT AT06735979T patent/ATE483198T1/de not_active IP Right Cessation
- 2006-02-24 EP EP06735979A patent/EP1851620B1/de not_active Not-in-force
-
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 |
---|---|
MX2007010386A (es) | 2007-10-18 |
JP2015007995A (ja) | 2015-01-15 |
IL185362A0 (en) | 2008-02-09 |
JP2011100466A (ja) | 2011-05-19 |
KR100930199B1 (ko) | 2009-12-07 |
EP1851620B1 (de) | 2010-09-29 |
EP2270651A1 (de) | 2011-01-05 |
WO2006091778A2 (en) | 2006-08-31 |
KR20070105365A (ko) | 2007-10-30 |
ATE483198T1 (de) | 2010-10-15 |
EP1851620A2 (de) | 2007-11-07 |
CN103488463A (zh) | 2014-01-01 |
ES2351163T3 (es) | 2011-02-01 |
CN101160561B (zh) | 2013-10-16 |
JP2008532142A (ja) | 2008-08-14 |
CN101160561A (zh) | 2008-04-09 |
JP5198879B2 (ja) | 2013-05-15 |
US20060190710A1 (en) | 2006-08-24 |
CN103488463B (zh) | 2016-11-09 |
WO2006091778A3 (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE602006017174D1 (de) | Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweige | |
EA200802428A1 (ru) | Комбинации агентов для биологической борьбы и нематоцидов, входящих в покрытие семян | |
DE602006010897D1 (de) | Wiederbefestigbares saugfähiges kleidungsstück | |
BRPI0515986A (pt) | combinações de substáncias ativas fungicidas | |
BRPI0818981A2 (pt) | "máscara respiratória com painéis estiráveis" | |
DE602005007648D1 (de) | Dampfquelle für Beschichtungsanlage | |
MX2007000611A (es) | Tratamiento de la piel con luz y un agente benefico para mitigar el acne. | |
ATE394925T1 (de) | Konzentrierte wässrige formulierungen für den pflanzenschutz | |
BRPI0922989A8 (pt) | liberação sustentada de nutrientes in vivo | |
CL2008003395A1 (es) | Compuestos derivados de 1h-2-tia-1,5,8-triaza-naftaleno 2,2-dioxido; compuestos intermediarios; metodo para controlar plantas; y composicion herbicida que comprende a dichos compuestos. | |
CL2008001768A1 (es) | Composicion plaguicida que comprende un compuesto derivado de estrigolactona y un compuesto fungicida; metodo para controlar de modo curativo o preventivo los hongos fitopatogenos de los cultivos; y su uso. | |
DE112006004265A5 (de) | Grundfunktionen zum Verbessern von Thread-Level Spekulation | |
UY31563A1 (es) | Azolilmetiloxiranos, su uso y agentes que los contienen | |
UY31562A1 (es) | Azolilmetiloxiranos, su uso y agentes que los contienen | |
UY31560A1 (es) | Azolilmetiloxiranos, su uso y agentes que los contienen | |
FI20055630A (fi) | Kasvonaamio | |
EA200900452A1 (ru) | Способ повышения врождённой продуктивности растения | |
EA201001364A1 (ru) | Пестицидные комбинации | |
TW200703099A (en) | CPU structure with enhanced branch forecasting capability | |
CR11656A (es) | Composiciones fungicidas con 3'-bromo-2,3,4-6'-tetrametoxi-2'-6-dimetilbenzofenona | |
EA201170849A1 (ru) | Применение 5-пиридин-4-ил(1,3)тиазолов для борьбы с фитопатогенными грибами | |
DE502006003741D1 (de) | Schutzbekleidung mit reflexbändern | |
IL185613A0 (en) | Stop waiting for source operand when conditional instruction will not execute | |
WO2010092014A3 (en) | Pesticidal mixtures | |
ATE404156T1 (de) | Ein matrizenband |