CARP: Compression Aware Replacement Policies Overview Motivation

advertisement
CARP: Compression Aware Replacement Policies
Tyler Huberty, Rui Cai, Gennady Pekhimenko
Overview
Motivation
•Traditional cache replacement and insertion policies mainly
focus on block reuse
•Recent literature has proposed cache compression, a
promising technique to increase on-chip cache capacity
[Pekhimenko et. al., PACT’12]
•In a compressed cache, block size is an additional dimension
•Observation: The block most likely to be reused soon may no
longer be the best block to keep in the cache
•Key Idea: Use compressed block size in making cache
replacement decisions
•Solution: We propose three mechanisms: Min-LRU, MinEviction, and Global Min-Eviction
Problem: How can we maximize cache performance utilizing
both block reuse and size?
• No existing policy considers the many varied block sizes and potentials for
reuse in making a replacement decision
Example
4x
Insert
LRU
Set 0
4x
x
x
x
Set 0
Set 0
4x
Shortcoming of Traditional LRU
•LRU evicts more than necessary,
underutilizing cache capacity
Percentage of Cache Blocks in Set
We propose compression aware replacement policies
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
64
56-63
48-55
40-47
32-39
24-31
16-23
8-15
0-7
Benchmark
Distribution of Compressed Block Sizes (in bytes):
potentially useful to replacement decision
Mechanisms
Insert
4x
Insert
Set 0
LRU
2x
{70%,2x} {50%,x} {50%,x}
Assigning Values to Block
Before Eviction
Set 0
4x
x
x
x
Before Eviction
Set 0
Set 0
4x
x
x
x
Marking
Set 0
50
50
35
Sort
Set 0
4x
x
x
x
Replacement
Set 0
x
x
2x
Replacement
•Policy 1: Min-LRU
35
50
50
Assign Values
•Value function: f(block reuse, block size)
•Monotonically increasing with respect to
block reuse
•Monotonically decreasing with respect to
block size
•Plane (see figure) achieves these goals, but
is complex to implement in hardware
•Reuse/Size (see figure) approximates plane
and is less complex
•Probability of reuse predictor: RRIP [Jaleel
et. al., ISCA’10] derivative
•Policy 2: Min-Eviction
Insight: LRU evicts more blocks than
necessary
Key Idea: Evict only the minimum number of
LRU blocks
Insight: Keeping multiple compressible blocks
with less reuse may be more valuable than a
single uncompressible block of higher reuse
Key Idea: Assign a value based on reuse and
compressibility to all blocks and on replacement,
evict the set of blocks with the least value
3D Plane
Reuse/Size
Results
Conclusions
•Min-LRU: 1% increase in IPC over LRU
•Min-Eviction: 3% increase in IPC over LRU
•IPC increase due to MPKI decrease
Min-Eviction: a novel replacement policy for the
compressed cache
Normalized IPC
1.28
LRU
1.23
Min-LRU
1.18
RRIP
Min-Eviction
1.13
1.08
• Outperforms current state-of-the-art replacement policies
• First to consider both compressed block size and probability of reuse
• Simple to implement
Further Work:
• Global Min-Eviction: a global replacement policy for the compressed
decoupled variable way cache that applies similar insight as MinEviction
• Fairness in compressed cache replacement
• Multi-core evaluation and analysis (see paper): 4% increase in
normalized weighted speedup over LRU in heterogeneous workloads
1.03
0.98
0.93
0.88
Benchmark
2MB cache size, Base-Delta-Immediate compression scheme, 4Ghz x86 in-order, 1B instructions
Download