KR20090095633A - 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 - Google Patents
낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20090095633A KR20090095633A KR1020097013847A KR20097013847A KR20090095633A KR 20090095633 A KR20090095633 A KR 20090095633A KR 1020097013847 A KR1020097013847 A KR 1020097013847A KR 20097013847 A KR20097013847 A KR 20097013847A KR 20090095633 A KR20090095633 A KR 20090095633A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- patch
- instruction cache
- prefetch
- line
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims abstract description 63
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
Description
Claims (20)
- 명령 프리패치 방법으로서,패치 어드레스(fetch address)가 명령 캐시에서 누락되었다(miss)는 통지를 수신하는 단계;상기 누락을 야기한 상기 패치 어드레스의 속성을 결정하는 단계; 및상기 속성에 기초하여 명령들의 라인을 프리패칭하는 단계를 포함하는, 명령 프리패치 방법.
- 제 1 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스임을 표시하는, 명령 프리패치 방법.
- 제 1 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스이며 상기 타겟 어드레스가 캐시 라인의 X% 이상임을 표시하는, 명령 프리패치 방법.
- 제 1 항에 있어서,상기 속성은 상기 패치 어드레스가 상기 명령 캐시에서 짝수(even) 어드레스임을 표시하는, 명령 프리패치 방법.
- 제 1 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스이거나 또는 상기 패치 어드레스가 상기 명령 캐시에서 짝수 어드레스임을 표시하는, 명령 프리패치 방법.
- 제 1 항에 있어서,상기 프리패칭하는 단계는 누락된 명령의 패칭 및 명령들의 연관된 라인을 명령들의 프리패치 라인과 조합함으로써 긴 데이터 전송을 인에이블하는 단계(enabling)를 더 포함하는, 명령 프리패치 방법.
- 제 1 항에 있어서, 상기 프리패칭하는 단계는,프리패칭될 명령들의 라인이 상기 명령 캐시에 존재하는지를 결정하는 단계; 및상기 프리패칭될 명령들의 라인이 상기 명령 캐시에 존재하지 않는 경우 명령들의 라인을 프리패칭하는 단계를 더 포함하는, 명령 프리패치 방법.
- 제 1 항에 있어서, 상기 프리패칭하는 단계는,상기 속성으로서, 순차적 동작의 타겟 어드레스에서 상기 누락을 야기한 상 기 패치 어드레스가 발행하였음을 결정하는 단계; 및상기 속성에 기초하여 명령들의 라인의 상기 프리패칭을 디스에이블시키는 단계(disabling)를 더 포함하는, 명령 프리패치 방법.
- 제 2 항에 있어서,상기 비순차적 동작은 상기 명령 캐시에 연결되는 프로세서의 로직으로부터 결정되는, 명령 프리패치 방법.
- 제 2 항에 있어서,상기 비순차적 동작은 상기 패치 어드레스를 이전의 패치 어드레스와 비교함으로써 결정되는, 명령 프리패치 방법.
- 명령 캐시 및 프리패치 시스템으로서,패치 어드레스가 누락되었다는 통지(notification)를 발생시키도록 구성된 명령 캐시(instruction cache);상기 누락을 야기한 상기 패치 어드레스의 속성을 결정하도록 구성된 프리패치 결정 로직; 및상기 속성에 기초하여 명령들의 라인을 프리패치하도록 구성된 프리패치 로직을 포함하는, 명령 캐시 및 프리패치 시스템.
- 제 11 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스임을 나타내는, 명령 캐시 및 프리패치 시스템.
- 제 11 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스이고 상기 타겟 어드레스가 캐시 라인에서 X% 이상임을 나타내는, 명령 캐시 및 프리패치 시스템.
- 제 11 항에 있어서,상기 속성은 상기 패치 어드레스가 상기 명령 캐시의 짝수(even) 어드레스임을 나타내는, 명령 캐시 및 프리패치 시스템.
- 제 11 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스이거나 또는 상기 패치 어드레스가 상기 명령 캐시의 짝수 어드레스임을 나타내는, 명령 캐시 및 프리패치 시스템.
- 제 11 항에 있어서,상기 명령 캐시에 연결되며 상기 패치 어드레스를 발생시키도록 구성되는 프로세서; 및비순차적 분기형(branch type) 동작을 나타내는 제어 신호들을 발생시키도록 구성되는 상기 프로세서 내의 로직을 더 포함하는, 명령 캐시 및 프리패치 시스템.
- 메모리 시스템으로서,패치 어드레스가 누락되었다는 통지(notification)를 발생시키기도록 구성된 명령 캐시;상기 누락을 야기한 상기 패치 어드레스의 속성을 결정하고 상기 누락된 패치 어드레스와 상기 속성에 기초하여 누락 정보를 발생시키도록 구성된 프리패치 결정 로직; 및을 포함하는, 메모리 시스템.
- 제 17 항에 있어서,상기 누락된 패치 어드레스와 연관된 명령들은 프리패치된 명령들을 포함하는, 메모리 시스템.
- 제 18 항에 있어서,상기 누락된 패치 어드레스와 연관된 명령들은 버스트 전송(burst transfer)시 상기 명령 캐시에 제공되는, 메모리 시스템.
- 제 17 항에 있어서,상기 속성은 상기 패치 어드레스가 비순차적 동작의 타겟 어드레스임을 나타내는, 메모리 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/608,309 US8060701B2 (en) | 2006-12-08 | 2006-12-08 | Apparatus and methods for low-complexity instruction prefetch system |
US11/608,309 | 2006-12-08 | ||
PCT/US2007/086254 WO2008073741A1 (en) | 2006-12-08 | 2007-12-03 | Methods and apparatus for low-complexity instruction prefetch system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090095633A true KR20090095633A (ko) | 2009-09-09 |
KR101095204B1 KR101095204B1 (ko) | 2011-12-16 |
Family
ID=39226565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097013847A KR101095204B1 (ko) | 2006-12-08 | 2007-12-03 | 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8060701B2 (ko) |
EP (1) | EP2097809B1 (ko) |
JP (2) | JP5859185B2 (ko) |
KR (1) | KR101095204B1 (ko) |
CN (2) | CN102968294B (ko) |
AT (1) | ATE513261T1 (ko) |
WO (1) | WO2008073741A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917731B2 (en) * | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US20110231634A1 (en) * | 2010-03-22 | 2011-09-22 | Fishel Liran | System and method for grouping alternative possibilities in an unknown instruction path |
WO2013101121A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Managed instruction cache prefetching |
US10175987B2 (en) * | 2016-03-17 | 2019-01-08 | International Business Machines Corporation | Instruction prefetching in a computer processor using a prefetch prediction vector |
US20210081323A1 (en) * | 2019-09-12 | 2021-03-18 | Marvell International Ltd. | Method of improving l1 icache performance with large programs |
CN111399913B (zh) * | 2020-06-05 | 2020-09-01 | 浙江大学 | 一种基于预取的处理器加速取指方法 |
US11422934B2 (en) * | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11561796B2 (en) | 2020-07-15 | 2023-01-24 | International Business Machines Corporation | Linked miss-to-miss instruction prefetcher |
CN112416438A (zh) * | 2020-12-08 | 2021-02-26 | 王志平 | 一种流水线预分支的实现方法 |
US11822922B2 (en) | 2021-12-31 | 2023-11-21 | International Business Machines Corporation | Miss-driven instruction prefetching |
CN115480826B (zh) * | 2022-09-21 | 2024-03-12 | 海光信息技术股份有限公司 | 分支预测器、分支预测方法、装置和计算设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS615357A (ja) * | 1984-06-07 | 1986-01-11 | Fujitsu Ltd | デ−タ処理装置 |
JPS63146143A (ja) * | 1986-12-10 | 1988-06-18 | Hitachi Ltd | 記憶装置の転送制御方式 |
JP2786886B2 (ja) * | 1989-05-17 | 1998-08-13 | 富士通株式会社 | プリフェッチ制御方法およびプリフェッチ制御装置 |
JPH0588891A (ja) * | 1991-09-30 | 1993-04-09 | Toshiba Corp | キヤツシユメモリ制御装置 |
JP3590427B2 (ja) * | 1994-08-30 | 2004-11-17 | 株式会社ルネサステクノロジ | 先行読出機能付命令キャッシュメモリ |
US5809529A (en) * | 1995-08-23 | 1998-09-15 | International Business Machines Corporation | Prefetching of committed instructions from a memory to an instruction cache |
US6119222A (en) * | 1996-12-23 | 2000-09-12 | Texas Instruments Incorporated | Combined branch prediction and cache prefetch in a microprocessor |
US6728839B1 (en) * | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
JP2000242557A (ja) * | 1999-02-25 | 2000-09-08 | Nec Corp | キャッシュプリフェッチ装置 |
JP2000347934A (ja) * | 1999-06-02 | 2000-12-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリ装置 |
JP2001142698A (ja) * | 1999-11-12 | 2001-05-25 | Mitsubishi Electric Corp | メモリアクセス方式 |
US6584549B2 (en) * | 2000-12-29 | 2003-06-24 | Intel Corporation | System and method for prefetching data into a cache based on miss distance |
US20030105926A1 (en) * | 2001-12-03 | 2003-06-05 | International Business Machies Corporation | Variable size prefetch cache |
US7032076B2 (en) * | 2002-09-16 | 2006-04-18 | Intel Corporation | Prefetching data in a computer system |
-
2006
- 2006-12-08 US US11/608,309 patent/US8060701B2/en active Active
-
2007
- 2007-12-03 AT AT07865095T patent/ATE513261T1/de not_active IP Right Cessation
- 2007-12-03 CN CN201210397919.XA patent/CN102968294B/zh active Active
- 2007-12-03 WO PCT/US2007/086254 patent/WO2008073741A1/en active Application Filing
- 2007-12-03 JP JP2009540408A patent/JP5859185B2/ja not_active Expired - Fee Related
- 2007-12-03 CN CN2007800447776A patent/CN101548266B/zh active Active
- 2007-12-03 KR KR1020097013847A patent/KR101095204B1/ko active IP Right Grant
- 2007-12-03 EP EP07865095A patent/EP2097809B1/en not_active Not-in-force
-
2015
- 2015-02-02 JP JP2015018674A patent/JP6030160B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102968294B (zh) | 2015-07-22 |
JP5859185B2 (ja) | 2016-02-10 |
US8060701B2 (en) | 2011-11-15 |
JP2015122094A (ja) | 2015-07-02 |
KR101095204B1 (ko) | 2011-12-16 |
ATE513261T1 (de) | 2011-07-15 |
CN101548266B (zh) | 2012-12-05 |
JP2010512580A (ja) | 2010-04-22 |
WO2008073741A1 (en) | 2008-06-19 |
US20080140996A1 (en) | 2008-06-12 |
JP6030160B2 (ja) | 2016-11-24 |
EP2097809B1 (en) | 2011-06-15 |
EP2097809A1 (en) | 2009-09-09 |
CN102968294A (zh) | 2013-03-13 |
CN101548266A (zh) | 2009-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101095204B1 (ko) | 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 | |
US10248570B2 (en) | Methods, systems and apparatus for predicting the way of a set associative cache | |
US8683136B2 (en) | Apparatus and method for improving data prefetching efficiency using history based prefetching | |
RU2438165C2 (ru) | Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша | |
JP5323936B2 (ja) | 推論的割込みベクトルプリフェッチのための装置および方法 | |
US9396117B2 (en) | Instruction cache power reduction | |
JP5254342B2 (ja) | n−ウェイキャッシュを用いるシステムおよび方法 | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
KR20090042303A (ko) | 가변 길이 명령 세트의 브랜치 명령의 최종 입도와 캐싱된 브랜치 정보의 관련 | |
US6823430B2 (en) | Directoryless L0 cache for stall reduction | |
US20130262826A1 (en) | Apparatus and method for dynamically managing memory access bandwidth in multi-core processor | |
US20110202727A1 (en) | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache | |
CN101697117B (zh) | 用于实时Java处理器的字节码高速缓存装置及存取方法 | |
CN201556199U (zh) | 用于实时Java处理器的字节码高速缓存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141128 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150930 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161125 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170929 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190924 Year of fee payment: 9 |