ATE483198T1 - Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweige - Google Patents
Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweigeInfo
- Publication number
- ATE483198T1 ATE483198T1 AT06735979T AT06735979T ATE483198T1 AT E483198 T1 ATE483198 T1 AT E483198T1 AT 06735979 T AT06735979 T AT 06735979T AT 06735979 T AT06735979 T AT 06735979T AT E483198 T1 ATE483198 T1 AT E483198T1
- Authority
- AT
- Austria
- Prior art keywords
- loop
- branch history
- history register
- ending
- suppressing
- Prior art date
Links
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)
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 |
---|---|
ATE483198T1 true ATE483198T1 (de) | 2010-10-15 |
Family
ID=36577533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AT06735979T ATE483198T1 (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 |
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 |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
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 |
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 |
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 |
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 |
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 |
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 |
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 WO PCT/US2006/006531 patent/WO2006091778A2/en active Application Filing
- 2006-02-24 ES ES06735979T patent/ES2351163T3/es active Active
- 2006-02-24 KR KR1020077021427A patent/KR100930199B1/ko not_active IP Right Cessation
- 2006-02-24 EP EP10181327A patent/EP2270651A1/de not_active Withdrawn
- 2006-02-24 EP EP06735979A patent/EP1851620B1/de not_active Not-in-force
- 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 AT AT06735979T patent/ATE483198T1/de not_active IP Right Cessation
- 2006-02-24 MX MX2007010386A patent/MX2007010386A/es active IP Right Grant
- 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
-
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 |
---|---|
EP1851620B1 (de) | 2010-09-29 |
DE602006017174D1 (de) | 2010-11-11 |
WO2006091778A3 (en) | 2007-07-05 |
IL185362A0 (en) | 2008-02-09 |
CN101160561A (zh) | 2008-04-09 |
JP2011100466A (ja) | 2011-05-19 |
CN103488463A (zh) | 2014-01-01 |
JP2008532142A (ja) | 2008-08-14 |
KR100930199B1 (ko) | 2009-12-07 |
EP1851620A2 (de) | 2007-11-07 |
EP2270651A1 (de) | 2011-01-05 |
WO2006091778A2 (en) | 2006-08-31 |
US20060190710A1 (en) | 2006-08-24 |
ES2351163T3 (es) | 2011-02-01 |
JP2015007995A (ja) | 2015-01-15 |
KR20070105365A (ko) | 2007-10-30 |
MX2007010386A (es) | 2007-10-18 |
CN101160561B (zh) | 2013-10-16 |
CN103488463B (zh) | 2016-11-09 |
JP5198879B2 (ja) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ATE483198T1 (de) | Unterdrückung der aktualisierung eines zweigverlaufsregisters durch schleifenbeendende zweige | |
ATE463788T1 (de) | Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen | |
DE112006004265A5 (de) | Grundfunktionen zum Verbessern von Thread-Level Spekulation | |
TW200705266A (en) | System and method wherein conditional instructions unconditionally provide output | |
DE602005007648D1 (de) | Dampfquelle für Beschichtungsanlage | |
BRPI0717068A2 (pt) | instruÇço e làgica para processar cadeias de texto. | |
DK1867743T5 (da) | Austenitisk rustfrit stål | |
DE602006020126D1 (de) | Ventilregelung für turbolader | |
EA200802428A1 (ru) | Комбинации агентов для биологической борьбы и нематоцидов, входящих в покрытие семян | |
DE602007006467D1 (de) | Programmierung eines multiprozessorsystems | |
MX2008011752A (es) | Registro de historial de ramificacion para ramificaciones de bucle. | |
FI20055630A (fi) | Kasvonaamio | |
ATE523092T1 (de) | Pflanzenproteinpellets | |
TW200703099A (en) | CPU structure with enhanced branch forecasting capability | |
EA200900452A1 (ru) | Способ повышения врождённой продуктивности растения | |
TW200627145A (en) | Updating instruction fault status register | |
WO2006116540A3 (en) | An application specific reconfigurable network processor | |
DK2229946T3 (da) | Anvendelse af vækst-stimulerende protein KIAA1524 | |
DE602006006271D1 (de) | Deckbandbefestigung für eine Leitschaufel | |
WO2007125390A3 (en) | Method and apparatus for moving area operator definition instructions statements within control flow structures | |
EA200801296A1 (ru) | Способ лечения метаболического синдрома | |
IL185613A0 (en) | Stop waiting for source operand when conditional instruction will not execute | |
DE602004019642D1 (de) | Absperrventil für fluorwasserstoffanlagen | |
AT505665A5 (de) | Rostfreier martensitischer chromstahl | |
BRPI0810600A2 (pt) | Composto amida, agente de controle de doença de planta e processo de controle de uma doença de planta |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RER | Ceased as to paragraph 5 lit. 3 law introducing patent treaties |