ATE535862T1 - Schiebefenster, blockbasierter sprungzieladressenzwischenspeicher - Google Patents
Schiebefenster, blockbasierter sprungzieladressenzwischenspeicherInfo
- Publication number
- ATE535862T1 ATE535862T1 AT07797948T AT07797948T ATE535862T1 AT E535862 T1 ATE535862 T1 AT E535862T1 AT 07797948 T AT07797948 T AT 07797948T AT 07797948 T AT07797948 T AT 07797948T AT E535862 T1 ATE535862 T1 AT E535862T1
- Authority
- AT
- Austria
- Prior art keywords
- block
- instruction
- btac
- branch
- instructions
- 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/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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- 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
-
- 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
-
- 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)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,186 US7827392B2 (en) | 2006-06-05 | 2006-06-05 | Sliding-window, block-based branch target address cache |
PCT/US2007/070111 WO2007143508A2 (en) | 2006-06-05 | 2007-05-31 | Sliding-window, block-based branch target address cache |
Publications (1)
Publication Number | Publication Date |
---|---|
ATE535862T1 true ATE535862T1 (de) | 2011-12-15 |
Family
ID=38654617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AT07797948T ATE535862T1 (de) | 2006-06-05 | 2007-05-31 | Schiebefenster, blockbasierter sprungzieladressenzwischenspeicher |
Country Status (7)
Country | Link |
---|---|
US (1) | US7827392B2 (de) |
EP (1) | EP2024820B1 (de) |
JP (2) | JP5231403B2 (de) |
KR (1) | KR101016541B1 (de) |
CN (2) | CN101460922B (de) |
AT (1) | ATE535862T1 (de) |
WO (1) | WO2007143508A2 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827392B2 (en) * | 2006-06-05 | 2010-11-02 | Qualcomm Incorporated | Sliding-window, block-based branch target address cache |
US8407187B2 (en) | 2010-06-16 | 2013-03-26 | Microsoft Corporation | Validating files using a sliding window to access and correlate records in an arbitrarily large dataset |
US9201658B2 (en) * | 2012-09-24 | 2015-12-01 | Apple Inc. | Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries |
US9262328B2 (en) * | 2012-11-27 | 2016-02-16 | Nvidia Corporation | Using cache hit information to manage prefetches |
US9639471B2 (en) | 2012-11-27 | 2017-05-02 | Nvidia Corporation | Prefetching according to attributes of access requests |
US9563562B2 (en) | 2012-11-27 | 2017-02-07 | Nvidia Corporation | Page crossing prefetches |
GB2501582B (en) * | 2013-02-11 | 2014-12-24 | Imagination Tech Ltd | Speculative load issue |
US9489204B2 (en) * | 2013-03-15 | 2016-11-08 | Qualcomm Incorporated | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process |
US10747540B2 (en) * | 2016-11-01 | 2020-08-18 | Oracle International Corporation | Hybrid lookahead branch target cache |
US20190004805A1 (en) * | 2017-06-28 | 2019-01-03 | Qualcomm Incorporated | Multi-tagged branch prediction table |
US11915004B2 (en) * | 2021-12-20 | 2024-02-27 | Arm Limited | Control flow prediction |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
US5414822A (en) * | 1991-04-05 | 1995-05-09 | Kabushiki Kaisha Toshiba | Method and apparatus for branch prediction using branch prediction table with improved branch prediction effectiveness |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
KR100310581B1 (ko) * | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | 분기목표버퍼의추측기록메카니즘 |
US5577217A (en) * | 1993-05-14 | 1996-11-19 | Intel Corporation | Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions |
US5574871A (en) * | 1994-01-04 | 1996-11-12 | Intel Corporation | Method and apparatus for implementing a set-associative branch target buffer |
US5530825A (en) * | 1994-04-15 | 1996-06-25 | Motorola, Inc. | Data processor with branch target address cache and method of operation |
JP3494484B2 (ja) * | 1994-10-12 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
JP3494736B2 (ja) * | 1995-02-27 | 2004-02-09 | 株式会社ルネサステクノロジ | 分岐先バッファを用いた分岐予測システム |
GB9521980D0 (en) * | 1995-10-26 | 1996-01-03 | Sgs Thomson Microelectronics | Branch target buffer |
US5864697A (en) * | 1996-06-28 | 1999-01-26 | Texas Instruments Incorporated | Microprocessor using combined actual and speculative branch history prediction |
US5774710A (en) * | 1996-09-19 | 1998-06-30 | Advanced Micro Devices, Inc. | Cache line branch prediction scheme that shares among sets of a set associative cache |
US5918044A (en) * | 1996-10-31 | 1999-06-29 | International Business Machines Corporation | Apparatus and method for instruction fetching using a multi-port instruction cache directory |
JPH10133874A (ja) * | 1996-11-01 | 1998-05-22 | Mitsubishi Electric Corp | スーパスカラプロセッサ用分岐予測機構 |
DE69727773T2 (de) * | 1996-12-10 | 2004-12-30 | Texas Instruments Inc., Dallas | Verbesserte Verzweigungsvorhersage in einem Pipelinemikroprozessor |
US6119222A (en) * | 1996-12-23 | 2000-09-12 | Texas Instruments Incorporated | Combined branch prediction and cache prefetch in a microprocessor |
US6108775A (en) * | 1996-12-30 | 2000-08-22 | Texas Instruments Incorporated | Dynamically loadable pattern history tables in a multi-task microprocessor |
TW357318B (en) * | 1997-03-18 | 1999-05-01 | Ind Tech Res Inst | Branching forecast and reading device for unspecified command length extra-purity pipeline processor |
US6263427B1 (en) * | 1998-09-04 | 2001-07-17 | Rise Technology Company | Branch prediction mechanism |
US6601161B2 (en) * | 1998-12-30 | 2003-07-29 | Intel Corporation | Method and system for branch target prediction using path information |
EP1150213B1 (de) * | 2000-04-28 | 2012-01-25 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Datenverarbeitungssystem und Verfahren |
JP2004505345A (ja) * | 2000-07-21 | 2004-02-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分岐ターゲットバッファを有するデータプロセッサ |
US20020194462A1 (en) * | 2001-05-04 | 2002-12-19 | Ip First Llc | Apparatus and method for selecting one of multiple target addresses stored in a speculative branch target address cache per instruction cache line |
US7707397B2 (en) | 2001-05-04 | 2010-04-27 | Via Technologies, Inc. | Variable group associativity branch target address cache delivering multiple target addresses per cache line |
US7162619B2 (en) * | 2001-07-03 | 2007-01-09 | Ip-First, Llc | Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer |
US6675279B2 (en) * | 2001-10-16 | 2004-01-06 | International Business Machines Corporation | Behavioral memory enabled fetch prediction mechanism within a data processing system |
US6877083B2 (en) * | 2001-10-16 | 2005-04-05 | International Business Machines Corporation | Address mapping mechanism for behavioral memory enablement within a data processing system |
US6792521B2 (en) * | 2001-10-16 | 2004-09-14 | International Business Machines Corporation | Behavioral memory mechanism for a data processing system |
JP3738842B2 (ja) * | 2002-06-04 | 2006-01-25 | 富士通株式会社 | 遅延分岐機能を備えた情報処理装置 |
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 |
US7174444B2 (en) * | 2003-03-31 | 2007-02-06 | Intel Corporation | Preventing a read of a next sequential chunk in branch prediction of a subject chunk |
US7124287B2 (en) * | 2003-05-12 | 2006-10-17 | International Business Machines Corporation | Dynamically adaptive associativity of a branch target buffer (BTB) |
US20040250054A1 (en) * | 2003-06-09 | 2004-12-09 | Stark Jared W. | Line prediction using return prediction information |
US7096348B2 (en) * | 2003-12-15 | 2006-08-22 | Freescale Semiconductor, Inc. | Method and apparatus for allocating entries in a branch target buffer |
JP2006048132A (ja) * | 2004-07-30 | 2006-02-16 | Fujitsu Ltd | 分岐予測装置、分岐予測装置の制御方法、情報処理装置 |
US7328332B2 (en) * | 2004-08-30 | 2008-02-05 | Texas Instruments Incorporated | Branch prediction and other processor improvements using FIFO for bypassing certain processor pipeline stages |
KR100630702B1 (ko) * | 2004-10-05 | 2006-10-02 | 삼성전자주식회사 | 명령어 캐쉬와 명령어 변환 참조 버퍼의 제어기, 및 그제어방법 |
US7447882B2 (en) * | 2005-04-20 | 2008-11-04 | Arm Limited | Context switching within a data processing system having a branch prediction mechanism |
US7827392B2 (en) * | 2006-06-05 | 2010-11-02 | Qualcomm Incorporated | Sliding-window, block-based branch target address cache |
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 |
US7707396B2 (en) * | 2006-11-17 | 2010-04-27 | International Business Machines Corporation | Data processing system, processor and method of data processing having improved branch target address cache |
US7937573B2 (en) * | 2008-02-29 | 2011-05-03 | Freescale Semiconductor, Inc. | Metric for selective branch target buffer (BTB) allocation |
-
2006
- 2006-06-05 US US11/422,186 patent/US7827392B2/en active Active
-
2007
- 2007-05-31 WO PCT/US2007/070111 patent/WO2007143508A2/en active Application Filing
- 2007-05-31 KR KR1020097000082A patent/KR101016541B1/ko not_active IP Right Cessation
- 2007-05-31 CN CN2007800204454A patent/CN101460922B/zh not_active Expired - Fee Related
- 2007-05-31 CN CN201210473534.7A patent/CN103019652B/zh not_active Expired - Fee Related
- 2007-05-31 EP EP07797948A patent/EP2024820B1/de not_active Not-in-force
- 2007-05-31 AT AT07797948T patent/ATE535862T1/de active
- 2007-05-31 JP JP2009514477A patent/JP5231403B2/ja not_active Expired - Fee Related
-
2012
- 2012-12-07 JP JP2012268455A patent/JP5734945B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009540439A (ja) | 2009-11-19 |
US7827392B2 (en) | 2010-11-02 |
EP2024820B1 (de) | 2011-11-30 |
JP5734945B2 (ja) | 2015-06-17 |
EP2024820A2 (de) | 2009-02-18 |
WO2007143508A2 (en) | 2007-12-13 |
KR20090017687A (ko) | 2009-02-18 |
CN103019652B (zh) | 2015-04-29 |
US20070283134A1 (en) | 2007-12-06 |
KR101016541B1 (ko) | 2011-02-24 |
WO2007143508A3 (en) | 2008-01-31 |
CN101460922B (zh) | 2013-01-02 |
JP2013080497A (ja) | 2013-05-02 |
CN103019652A (zh) | 2013-04-03 |
JP5231403B2 (ja) | 2013-07-10 |
CN101460922A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ATE535862T1 (de) | Schiebefenster, blockbasierter sprungzieladressenzwischenspeicher | |
WO2006102635A3 (en) | Branch target address cache storing two or more branch target addresses per index | |
US9921850B2 (en) | Instruction sequence buffer to enhance branch prediction efficiency | |
BR112019005257A2 (pt) | predição de violação de memória | |
WO2008003019A3 (en) | Methods and apparatus for proactive branch target address cache management | |
US20170322811A1 (en) | Instruction sequence buffer to store branches having reliably predictable instruction sequences | |
WO2007042482A3 (en) | Computer-implemented method and processing unit for predicting branch target addresses | |
WO2011163407A3 (en) | Region based technique for accurately predicting memory accesses | |
WO2008057815A3 (en) | Managing storage of individually accessible data units | |
US10042776B2 (en) | Prefetching based upon return addresses | |
CY1111421T1 (el) | Ακυρωση αποθηκευσης, καθαρισμος καταχωρησεων των θεσεων προσκαιρης αποθηκευσης | |
BRPI0600876A (pt) | método de processamento de dados, mìdia de armazenamento e sistema de processamento de dados | |
US9250912B2 (en) | Fast index tree for accelerated branch prediction | |
JP2009543223A5 (de) | ||
CL2007002926A1 (es) | Anticuerpo antilinfotoxina alfa (lt-alfa); composicion con el anticuerpo; hibridoma pta-7538; acido nucleico codificante del anticuerpo; vector y celula huesped que comprenden el acido nucleico; metodo para inhibir la proliferacion celular activada p | |
TW200719216A (en) | Call return stack way prediction repair | |
WO2007016393A3 (en) | Instruction cache having fixed number of variable length instructions | |
TW200813823A (en) | Block-based branch target address cache | |
US20180247694A1 (en) | Data tables in content addressable memory | |
US20080040592A1 (en) | Control of a branch target cache within a data processing system | |
US10394559B2 (en) | Branch predictor search qualification using stream length prediction | |
WO2006102665A3 (en) | Global modified indicator to reduce power consumption on cache miss | |
WO2008155829A1 (ja) | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 | |
EA200801297A1 (ru) | Способ снижения уровня постпрандиальной глюкозы | |
US20200364055A1 (en) | Efficient load value prediction |