RU2009102809A - Способы и устройства для проактивного управления кэшем адресов ветвлений - Google Patents

Способы и устройства для проактивного управления кэшем адресов ветвлений Download PDF

Info

Publication number
RU2009102809A
RU2009102809A RU2009102809/08A RU2009102809A RU2009102809A RU 2009102809 A RU2009102809 A RU 2009102809A RU 2009102809/08 A RU2009102809/08 A RU 2009102809/08A RU 2009102809 A RU2009102809 A RU 2009102809A RU 2009102809 A RU2009102809 A RU 2009102809A
Authority
RU
Russia
Prior art keywords
btac
prediction module
replacement
branch prediction
module circuit
Prior art date
Application number
RU2009102809/08A
Other languages
English (en)
Other versions
RU2421783C2 (ru
Inventor
Богуслав РИХЛИК (US)
Богуслав РИХЛИК
Original Assignee
Квэлкомм Инкорпорейтед (US)
Квэлкомм Инкорпорейтед
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед (US), Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед (US)
Publication of RU2009102809A publication Critical patent/RU2009102809A/ru
Application granted granted Critical
Publication of RU2421783C2 publication Critical patent/RU2421783C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

1. Система многостадийного прогнозирования ветвлений, содержащая ! кэш адресов ветвлений (BTAC), выполненный с возможностью сохранять запись BTAC; и ! схему модуля прогнозирования ветвлений, выполненную с возможностью сохранять информацию состояния, причем схема модуля прогнозирования ветвлений выполнена с возможностью использовать информацию состояния, прогнозируя направление инструкции ветвления, причем схема модуля прогнозирования ветвлений выполнена с возможностью управлять записью BTAC на основе информации состояния в ответ на фактическое разрешение инструкции ветвления. ! 2. Система по п.1, в которой схема модуля прогнозирования ветвлений выполнена с возможностью удалять запись BTAC из BTAC. ! 3. Система по п.1, в которой схема модуля прогнозирования ветвлений выполнена с возможностью поддерживать запись BTAC в BTAC в течение большего периода времени. ! 4. Система по п.1, в которой BTAC выполнен с возможностью поддерживать сохраненной одну или более записей в порядке замены, и в которой схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать позицию записи BTAC в порядке замены. ! 5. Система по п.4, в которой схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать позицию записи BTAC на более высокую в порядке замены, чем ее текущая позиция, чтобы повышать вероятность замены записи BTAC. ! 6. Система по п.1, дополнительно содержащая указатель замены, при этом BTAC использует политику замены модифицированного циклического алгоритма и при этом схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать указатель замены так, чтобы указывать на запись BTAC. ! 7. Сис�

Claims (17)

1. Система многостадийного прогнозирования ветвлений, содержащая
кэш адресов ветвлений (BTAC), выполненный с возможностью сохранять запись BTAC; и
схему модуля прогнозирования ветвлений, выполненную с возможностью сохранять информацию состояния, причем схема модуля прогнозирования ветвлений выполнена с возможностью использовать информацию состояния, прогнозируя направление инструкции ветвления, причем схема модуля прогнозирования ветвлений выполнена с возможностью управлять записью BTAC на основе информации состояния в ответ на фактическое разрешение инструкции ветвления.
2. Система по п.1, в которой схема модуля прогнозирования ветвлений выполнена с возможностью удалять запись BTAC из BTAC.
3. Система по п.1, в которой схема модуля прогнозирования ветвлений выполнена с возможностью поддерживать запись BTAC в BTAC в течение большего периода времени.
4. Система по п.1, в которой BTAC выполнен с возможностью поддерживать сохраненной одну или более записей в порядке замены, и в которой схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать позицию записи BTAC в порядке замены.
5. Система по п.4, в которой схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать позицию записи BTAC на более высокую в порядке замены, чем ее текущая позиция, чтобы повышать вероятность замены записи BTAC.
6. Система по п.1, дополнительно содержащая указатель замены, при этом BTAC использует политику замены модифицированного циклического алгоритма и при этом схема модуля прогнозирования ветвлений выполнена с возможностью модифицировать указатель замены так, чтобы указывать на запись BTAC.
7. Система по п.1, размещенная в процессоре.
8. Способ управления кэшем адресов ветвлений (BTAC), содержащий этапы, на которых
принимают направление ветвления традиционной инструкции ветвления, которое фактически разрешено;
оценивают информацию состояния схемы модуля прогнозирования ветвления в ответ на принятое направление ветвления; и
управляют записью в BTAC, связанной с инструкцией условного ветвления, согласно информации состояния схемы модуля прогнозирования ветвлений.
9. Способ по п.8, в котором управление записью в BTAC содержит этап, на котором удаляют запись из BTAC.
10. Способ по п.8, в котором управление записью в BTAC содержит этап, на котором сохраняют запись BTAC в BTAC в течение большего периода времени.
11. Способ по п.8, дополнительно содержащий этап, на котором поддерживают записи сохраненными в BTAC в порядке замены, при этом управление записью в BTAC содержит этап, на котором модифицируют позицию записи BTAC в порядке замены.
12. Способ по п.11, в котором модификация позиции записи BTAC содержит этап, на котором модифицируют указатель замены так, чтобы указывать на запись BTAC.
13. Способ уменьшения вероятности нескольких циклов очистки конвейера, содержащий этапы, на которых
неявно прогнозируют первое направление для инструкции условного ветвления;
прогнозируют второе направление для инструкции условного ветвления на основе информации состояния;
управляют записью кэша адресов ветвлений (BTAC), связанной с инструкцией условного ветвления, в ответ на конфликт между первым направлением и вторым направлением.
14. Способ по п.13, в котором использование информации состояния для управления BTAC содержит удаление записи BTAC из BTAC.
15. Способ по п.13, в котором использование информации состояния для управления BTAC содержит поддержание записи BTAC в BTAC в течение большего периода времени.
16. Способ по п.13, дополнительно содержащий этап, на котором поддерживают одну или более записей сохраненными в BTAC в порядке замены, при этом использование информации состояния для управления BTAC содержит модификацию позиции записи BTAC в порядке замены.
17. Способ по п.16, в котором модификация позиции записи BTAC содержит модификацию указателя замены так, чтобы указывать на запись BTAC.
RU2009102809/08A 2006-06-29 2007-06-28 Способы и устройства для проактивного управления кэшем адресов ветвлений RU2421783C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/427,349 2006-06-29
US11/427,349 US8935517B2 (en) 2006-06-29 2006-06-29 System and method for selectively managing a branch target address cache of a multiple-stage predictor

Publications (2)

Publication Number Publication Date
RU2009102809A true RU2009102809A (ru) 2010-08-10
RU2421783C2 RU2421783C2 (ru) 2011-06-20

Family

ID=38846531

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009102809/08A RU2421783C2 (ru) 2006-06-29 2007-06-28 Способы и устройства для проактивного управления кэшем адресов ветвлений

Country Status (12)

Country Link
US (2) US8935517B2 (ru)
EP (2) EP2035921B1 (ru)
JP (4) JP5558814B2 (ru)
KR (1) KR101074621B1 (ru)
CN (1) CN101479700B (ru)
BR (1) BRPI0713434A2 (ru)
CA (1) CA2654231A1 (ru)
ES (1) ES2386478T3 (ru)
MX (1) MX2008016116A (ru)
RU (1) RU2421783C2 (ru)
TW (1) TWI386850B (ru)
WO (1) WO2008003019A2 (ru)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3798998B2 (ja) * 2002-06-28 2006-07-19 富士通株式会社 分岐予測装置および分岐予測方法
US8935517B2 (en) * 2006-06-29 2015-01-13 Qualcomm Incorporated System and method for selectively managing a branch target address cache of a multiple-stage predictor
JP5145809B2 (ja) * 2007-07-31 2013-02-20 日本電気株式会社 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム
WO2010081942A1 (fr) 2008-12-05 2010-07-22 Alex Hr Roustaei Piles ou micro piles a hydrogene avec un generateur d ' hydrogene
FR2956869B1 (fr) 2010-03-01 2014-05-16 Alex Hr Roustaei Systeme de production de film flexible a haute capacite destine a des cellules photovoltaiques et oled par deposition cyclique des couches
JP2011209774A (ja) * 2010-03-26 2011-10-20 Fujitsu Ltd 分岐予測方法及びその方法を実行する分岐予測回路
US8375565B2 (en) 2010-05-28 2013-02-19 Western Digital (Fremont), Llc Method for providing an electronic lapping guide corresponding to a near-field transducer of an energy assisted magnetic recording transducer
US8351307B1 (en) 2010-06-04 2013-01-08 Western Digital (Fremont), Llc Trailing edge optimized near field transducer having non-rectangular pin cross section
US8320219B1 (en) 2010-06-15 2012-11-27 Western Digital (Fremont), Llc Trailing edge optimized near field transducer
JP5656074B2 (ja) * 2011-02-21 2015-01-21 日本電気株式会社 分岐予測装置、プロセッサ及び分岐予測方法
US9201654B2 (en) * 2011-06-28 2015-12-01 International Business Machines Corporation Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions
US8749790B1 (en) 2011-12-08 2014-06-10 Western Digital (Fremont), Llc Structure and method to measure waveguide power absorption by surface plasmon element
CN104220980B (zh) 2011-12-29 2018-01-19 英特尔公司 经管理的指令缓存预取
US9280351B2 (en) 2012-06-15 2016-03-08 International Business Machines Corporation Second-level branch target buffer bulk transfer filtering
US9298465B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Asynchronous lookahead hierarchical branch prediction
US9430241B2 (en) 2012-06-15 2016-08-30 International Business Machines Corporation Semi-exclusive second-level branch target buffer
US20140006752A1 (en) * 2012-06-27 2014-01-02 Qualcomm Incorporated Qualifying Software Branch-Target Hints with Hardware-Based Predictions
US10042776B2 (en) * 2012-11-20 2018-08-07 Arm Limited Prefetching based upon return addresses
US9441938B1 (en) 2013-10-08 2016-09-13 Western Digital (Fremont), Llc Test structures for measuring near field transducer disc length
JP6393590B2 (ja) * 2013-11-22 2018-09-19 株式会社半導体エネルギー研究所 半導体装置
US9563430B2 (en) 2014-03-19 2017-02-07 International Business Machines Corporation Dynamic thread sharing in branch prediction structures
US20170371669A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Branch target predictor
US10353819B2 (en) * 2016-06-24 2019-07-16 Qualcomm Incorporated Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system
GB2553582B (en) * 2016-09-13 2020-07-08 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
US10613869B2 (en) * 2018-03-29 2020-04-07 Arm Limited Branch target address provision
US20210149676A1 (en) * 2019-11-14 2021-05-20 Higon Austin R&D Center Corporation Branch Prediction Method, Branch Prediction Unit and Processor Core

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2018A (en) * 1841-03-26 Joseph francis
US4018A (en) * 1845-05-01 Closing and opening the- entrances to beehives
JP2560889B2 (ja) * 1990-05-22 1996-12-04 日本電気株式会社 マイクロプロセッサ
TW345637B (en) 1994-02-04 1998-11-21 Motorola Inc Data processor with branch target address cache and method of operation a data processor has a BTAC storing a number of recently encountered fetch address-target address pairs.
JP3494484B2 (ja) * 1994-10-12 2004-02-09 株式会社ルネサステクノロジ 命令処理装置
JP3765111B2 (ja) 1995-08-29 2006-04-12 株式会社日立製作所 分岐登録命令を有するプロセッサ
JPH10105401A (ja) * 1996-09-30 1998-04-24 Fujitsu Ltd プロセッサの分岐命令予測装置
US7103794B2 (en) * 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US5890008A (en) * 1997-06-25 1999-03-30 Sun Microsystems, Inc. Method for dynamically reconfiguring a processor
US5964870A (en) * 1997-09-22 1999-10-12 Intel Corporation Method and apparatus for using function context to improve branch
US6263427B1 (en) * 1998-09-04 2001-07-17 Rise Technology Company Branch prediction mechanism
US6553488B2 (en) * 1998-09-08 2003-04-22 Intel Corporation Method and apparatus for branch prediction using first and second level branch prediction tables
US6601161B2 (en) * 1998-12-30 2003-07-29 Intel Corporation Method and system for branch target prediction using path information
US6357016B1 (en) 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6732260B1 (en) * 2000-03-06 2004-05-04 Intel Corporation Presbyopic branch target prefetch method and apparatus
US7000096B1 (en) * 2000-08-03 2006-02-14 International Business Machines Corporation Branch prediction circuits and methods and systems using the same
US7200740B2 (en) 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
KR20040014988A (ko) * 2001-06-29 2004-02-18 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 간접 브랜치 타겟 어드레스 예측을 위한 방법, 장치 및컴파일러
US7082520B2 (en) * 2002-05-09 2006-07-25 International Business Machines Corporation Branch prediction utilizing both a branch target buffer and a multiple target table
US6965983B2 (en) 2003-02-16 2005-11-15 Faraday Technology Corp. Simultaneously setting prefetch address and fetch address pipelined stages upon branch
US7266676B2 (en) * 2003-03-21 2007-09-04 Analog Devices, Inc. Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays
US7831817B2 (en) * 2003-04-15 2010-11-09 Arm Limited Two-level branch prediction apparatus
KR100528479B1 (ko) * 2003-09-24 2005-11-15 삼성전자주식회사 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법
DE602005027338D1 (de) * 2004-04-21 2011-05-19 Fujitsu Ltd Abzweigungsvorhersageeinrichtung, verfahren dafür und prozessor
US7437543B2 (en) * 2005-04-19 2008-10-14 International Business Machines Corporation Reducing the fetch time of target instructions of a predicted taken branch instruction
US8935517B2 (en) * 2006-06-29 2015-01-13 Qualcomm Incorporated System and method for selectively managing a branch target address cache of a multiple-stage predictor

Also Published As

Publication number Publication date
CN101479700A (zh) 2009-07-08
KR20090031751A (ko) 2009-03-27
EP2434393B1 (en) 2017-12-20
CN101479700B (zh) 2015-06-03
US8782383B2 (en) 2014-07-15
EP2035921A2 (en) 2009-03-18
JP2017107578A (ja) 2017-06-15
CA2654231A1 (en) 2008-01-03
JP2009543223A (ja) 2009-12-03
BRPI0713434A2 (pt) 2012-03-13
JP2015144001A (ja) 2015-08-06
WO2008003019A3 (en) 2008-05-02
TW200816046A (en) 2008-04-01
RU2421783C2 (ru) 2011-06-20
US8935517B2 (en) 2015-01-13
MX2008016116A (es) 2009-01-20
EP2035921B1 (en) 2012-06-06
EP2434393A1 (en) 2012-03-28
WO2008003019A2 (en) 2008-01-03
KR101074621B1 (ko) 2011-10-17
ES2386478T3 (es) 2012-08-21
US20080005543A1 (en) 2008-01-03
TWI386850B (zh) 2013-02-21
US20120042155A1 (en) 2012-02-16
JP2013229038A (ja) 2013-11-07
JP5558814B2 (ja) 2014-07-23

Similar Documents

Publication Publication Date Title
RU2009102809A (ru) Способы и устройства для проактивного управления кэшем адресов ветвлений
RU2671049C2 (ru) Выгрузка в файловой системе
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
US11537584B2 (en) Pre-caching of relational database management system based on data retrieval patterns
JP2009543223A5 (ru)
US9348517B2 (en) Using a migration threshold and a candidate list for cache management of sequential write storage
US20150212943A1 (en) Methods for combining access history and sequentiality for intelligent prefetching and devices thereof
US20080010414A1 (en) Method and apparatus for dynamic priority-based cache replacement
US10740240B2 (en) Method and arrangement for saving cache power
WO2011144477A1 (en) Managing write operations to an extent of tracks migrated between storage devices
RU2003119149A (ru) Система и способ для предварительной выборки данных в кэш-памяти, основанной на интервале неудач
KR20060130120A (ko) 캐시 메모리 및 그 제어 방법
US20090094435A1 (en) System and method for cache access prediction
US20200257534A1 (en) Hierarchical metadata predictor with periodic updates
JPWO2011049051A1 (ja) キャッシュメモリおよびその制御方法
JP2017072982A (ja) 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム
US10684857B2 (en) Data prefetching that stores memory addresses in a first table and responsive to the occurrence of loads corresponding to the memory addresses stores the memory addresses in a second table
CN115048142A (zh) 缓存访问命令处理系统、方法、装置、设备和存储介质
CN109799897A (zh) 一种减少gpu二级缓存能耗的控制方法及装置
JP2017072981A (ja) 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム
CN104516827B (zh) 一种读缓存的方法及装置
Chen et al. HDCat: Effectively identifying hot data in large-scale I/O streams with enhanced temporal locality
US11977488B2 (en) Cache prefetching method and system based on K-Truss graph for storage system, and medium
CN117472446B (zh) 基于处理器的多级取指目标缓冲器的分支预测方法
JPH10269028A (ja) 外部記憶装置とキャッシュメモリの制御方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190629