cache interference i

6
Cache Interference I Multi-threaded architecture causing interference among threads (inter-thread misses) and increasing the interferences inside threads (intra-thread misses) For instruction fetch, if the PC of different threads point to the same bank, then bank conflict occurs, we can only fetch one thread from one bank at a time, which means we can not achieve the anticipated fetch bandwidth

Upload: oriana

Post on 06-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Cache Interference I. Multi-threaded architecture causing interference among threads (inter-thread misses) and increasing the interferences inside threads (intra-thread misses) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Cache Interference I

Cache Interference I

• Multi-threaded architecture causing interference among threads (inter-thread misses) and increasing the interferences inside threads (intra-thread misses)

• For instruction fetch, if the PC of different threads point to the same bank, then bank conflict occurs, we can only fetch one thread from one bank at a time, which means we can not achieve the anticipated fetch bandwidth

Page 2: Cache Interference I

Cache Interference II

• It’s not only a problem for SMT [3], it comes to people’s attention also in conventional multithreaded architecture (context switch) [1], which shows similar results.

• Conventional caches are not suitable for the multi-threading architecture

Page 3: Cache Interference I

Cache interference can be positive and negative

• Positive interference happens when one context serves to load the cache with code or data that is also needed by another context. It is performing a limited pre-fetch for the other context, and cache miss rates are lowered

• The information cached by one context can knock out data needed by another context, this is negative interference and leads to a higher miss rate

• But the negative interference dominates over positive interference

Page 4: Cache Interference I

Cache structure

• For SMT, Shared Data Cache and Private Instruction Cache provide the best performance [2]

• Normally we have separate L-1 D-Cache and I-Cache

Page 5: Cache Interference I

Propose

• then for I-cache, I prefer splitted cache [4]. Split the cache into equal sized part, each one is assigned to a running thread, then we solve the problem of bank conflict for instruction fetch

• While for the D-cache, I prefer some dynamic structure cache

Page 6: Cache Interference I

Reference

1. Wolf-Dietrich Weber and Anoop Gupta, “Exploring the benefits of multiple hardware contexts in a multiprocessor architecture: Preliminary Results”, ISCA’89

2. D.M. Tullsen, S.J. Eggers, and H.M. Levy, “Simultaneous Multithreading: Maximizing On-Chip Parallelism”, ISCA’95

3. Jack L. Lo, Susan J. Eggers, Joel S. Emer, Henry M. Levy, Rebecca L. Stamm, and Dean M. Tullsen, “Converting Thread-Level Parallelism Into Instruction-Level Parallelism via Simultaneous Multithreading”, ACM Transactions on Computer Systems, August 1997

4. Montse Garcia, Jose Gonzalez and Antonio Gonzalez, “Data Caches for Multithreaded Processors”, in Multi-Threaded Execution, Architecture and Compilation Workshop (MTEAC), January 2000