Advanced Caching Techniques: Approaches To Improving Memory System Performance
Advanced Caching Techniques: Approaches To Improving Memory System Performance
Victim cache
• small fully-associative cache
• contains the most recently replaced blocks of a direct-mapped
cache
• alternative to 2-way set-associative cache
• check it on a cache miss
• swap the direct-mapped block and victim cache block
• how do victim caches improve memory system performance?
Prefetching
+ reduces the number of misses
• stream buffers
• where prefetched instructions/data held
• if requested block in the stream buffer, then cache access is
cancelled for a prefetch
Interleaved memory:
• multiple memory banks
• word locations are assigned across banks
• interleaving factor: number of banks
• a single address can access all banks at once
Victim cache
TLB
Hardware or compiler-based prefetching
Cache-conscious compiler optimizations
Coupling a write-through memory update policy with a write buffer
Handling the read miss before replacing a block with a write-back memory
update policy
Sub-block placement
Non-blocking caches
Merging requests to the same cache block in a non-blocking cache
Requested word first or early restart
Cache hierarchies
Virtual caches
Pipelined cache accesses
Pseudo-set associative cache
Banked or interleaved memories
Independent memory banks
Wider bus