L - 3-AssociativeMapping - Virtual Memory
L - 3-AssociativeMapping - Virtual Memory
Associative Caches
Fully associative
Allow a given block to go in any cache entry
Requires all entries to be searched at once
Comparator per entry (expensive)
n-way set associative
Each set contains n entries
Block number determines which set
(Block number) modulo (#Sets in cache)
Search all entries in a given set at once
n comparators (less expensive)
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 2
Associative Cache Example
0 0 miss Mem[0]
8 0 miss Mem[8]
0 0 miss Mem[0]
5
6 2 miss Mem[0] Mem[6]
Associativity Example
7
Associativity Example
7
How Much Associativity
Increased associativity decreases miss
rate
But with diminishing returns
Simulation of a system with 64KB
D-cache, 16-word blocks, SPEC2000
1-way: 10.3%
2-way: 8.6%
4-way: 8.3%
8-way: 8.1%
31 10 9 4 3 0
Tag Index Offset
18 bits 10 bits 4 bits
Read/Write Read/Write
Valid Valid
32 32
Address Address
32 Cache 128 Memory
CPU Write Data Write Data
32 128
Read Data Read Data
Ready Ready
Multiple cycles
per access