Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page...

14
Cache Replacement Policy • On a cache miss, how do we choose which entry to replace? " - Assuming the new entry is ~ ,more Ukely to be used in the near future - In direct mapped caches, not an issue I • Policy goal: reduce cache misses - Improve expected case performance - Also: reduce likelihood of very poor performance

Transcript of Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page...

Page 1: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Cache Replacement Policy

• On a cache miss, how do we choose which entry to replace? " - Assuming the new entry is~,more Ukely to be used

in the near future

- In direct mapped caches, not an issue I

• Policy goal: reduce cache misses - Improve expected case performance

- Also: reduce likelihood of very poor performance

Page 2: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

MIN, LRU, LFU

• MIN - Replace the cache entry that will not be used for the

longest time into the future - Optimality proof based on exchange: if evict an entry

used sooner, that will trigger an earlier cache miss

• Least Recently Used (LRU) - Replace the cache entry that has not been used for

the longest time in the past - Approximation of MIN

• Least Frequently Used (LFU) - Replace the cache entry used the least often (in the

recent past)

Page 3: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

LRU/MIN for Sequential Scan

LRU Reference ,A B C D E A B C D E A B C D E

1 A E D C

2 B A E D

3 C B A E

4 D C B

M.IN

1 A + + +

2 B + + C

3 C + . D +

4 D E + +

Page 4: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

LRU Reference A B A C B D A D E D A E B A C

1 A + + + +

2 B + +

3 C E

4 D + + C

FIFO

1 A + + E

2 B + A +

3 C + 8

4 D + + C

IN

1 A + + + +

2 B + + C

3 C E

4 ·o +

Page 5: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Belady's Anomaly

FIFO (3 ,slots)

Reference A B C D A B E A B C D E

A D E +

2 B A + C

3 C B + D

FIFO (4 slots)

A + E D

2 :e + A E

3 C B

D C

Page 6: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Question

• How accurately do we need to track the least recently/least frequently used page? - If miss cost is low, any approximation will do

• Hardware caches

- If miss cost is high but number of pages is large, any not recently used page will do

• Main memory paging with small pages

- If miss cost is high and number of pages is small, need to be precise

• Main memory paging with superpages

Page 7: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Clock Algorithm: Estimating LRU

• Hardware sets use bit

• Periodically, OS sweeps through all pages

• If page is unused, reclaim

• If page is used, mark as unused

Page Frames

0- use:O

3- use:O

4- use:O

l ··· 8- use:0 7-use:1

(LQ.e-JI: f "-)"- \r.~el ;A f 1{;-<...I ,,.,.,....,,r1 Cofe-r<•f'

v ~ e. I,, :1--~ I, (' ~;;,e.- h.. ~le. ( v~ ,.+,, J \ y ;-,..9-e.JC ._.Q) I 0 +- .J' v ~r+~ ( f ')'-~ -\:>r e. ... J. 1--y~- f n,..

Page 8: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Nth Chance: Not Recently Used

• Instead of one b·it per page, keep an integer - notlnUseSince: number of sweeps since last use

• Periodically sweep through all page frames if (page is used) {

notlnUseForXSweeps = O;

} else if (notlnUseForXSweeps < N) {

notlnUseForXSweeps++;

} else {

reclaim page; write modifications if needed

}

Page 9: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Implementation Note

• Clock and Nth Chance can run synchronously - In page fau_lt handler, run algorithm to find next page to

evict - Might require writing changes back to disk first

• Or asynchronously - Create a thread to maintain a pool of recently unused,

clean pages ·

- Find recently unused dirty pages, write mods back to disk - Find recently unused clean pages, mark as invalid and

move to pool - On page fault, check if requested page is in pool! - If not, evict page from the pool

Page 10: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Recap

• MIN is optimal

- replace the page or cache entry that will be used farthest into the future

• LRU is an approximati-on of MIN

- For programs that exhibit spatial and temporal locality

• Clock/Nth Chance is an approximation of LRU

- Bin pages into sets of "not recently used"

Page 11: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Working Set Model

• Working Set: set of memory locations that need to be cached for reasonable cache hit rate

• Thrashing: when system has too small a cache

Page 12: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

100%

75%

Q) -ro a: 50% -I

25%

0%

Cache Working Set

1 2 4 8

Cache Size (KB)

l) :-~fe.rc.-4 f f'o ~ r'l-r- s

~ :-ll k~"~ ~-:-~f-~rc.."-+ tvfve.s

C. o I+ .{ fJ ~ ~ <. { ~" [ ~ {-.. .l)_ ~ (, "' S"°"b M L"- s+ruc.. ~'6"--1

--t-,.;, l'tt os>1:e »_ ... +c... c~""+c..r ,.._e..-.b vy ,,.._ 5"'""06 ((. ,~4)+tvc.. +,'},""-J'

16

Page 13: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Phase Change Behavior

100%

75%

Q) +-' cu a: 50% +-' ·-I

25%

0% L _______________________ ~

Time

Page 14: Cache Replacement Policy - courses.cs.washington.edu · Recap • MIN is optimal - replace the page or cache entry that will be used farthest into the future • LRU is an approximati-on

Question

• What happens to system performance as we increase the number of processes?

- If the sum of the working sets > physical memory?

~ ~ c,v

'-; ('~

X. ~< .)., ~~ ~}- ~~~

,Jf .J

,t_ ~ t° f lb c.e.-S~e.- <