Presentation on theme: "ARC: A self-tuning, low overhead Replacement Cache Nimrod Megiddo and Dharmendra S. Modha Presented by Gim Tcaesvk."— Presentation transcript:
ARC: A self-tuning, low overhead Replacement Cache Nimrod Megiddo and Dharmendra S. Modha Presented by Gim Tcaesvk
Cache Auxiliary memory Cache is expensive. The replacement policy is the only algorithm of interest.
Cache management problem Maximize the hit rate. Minimize the overhead. Computation Space
Beladys MIN Replaces the furthest referenced page. Optimum for every case. Provides upper bound of hit ratio. But, Who knows the future?
LRU (Least Recently Used) Replaces the least recently used page. Optimum policy for SDD (Stack Depth Distribution). Captures recency but not frequency. 01232321 0 1 2 1 2 3 3 2 2 3 3 2 3 2 1
LFU (Least Frequently Used) Replaces the least frequently used page. Optimum policy for IRM (Independent Reference Model). Captures frequency but not recency. 001123 0 0 1 0 1 23 0
Drawbacks of LFU Logarithmic complexity in cache size High frequently used page is hardly to paged out. Even if it is no longer useful.
LRU-2 Replaces the least 2 nd recently used page. Optimum online policy which knows at most 2 most recent reference for IRM.
Limitations of LRU-2 Logarithmic complexity Due to priority queue Tunable parameter, CIP (Correlated Information Period) 2(2,4) 1(1,3) 0(-,0)
2Q (modified LRU-2) Uses simple LRU list instead of the priority queue. Two parameter, K in and K out K in =Correlated Information Period K out =Retained Information Period
LIRS (Low Inter-reference Recency Set) Maintains 2 LRU stacks of different size. L lirs maintains LRU page at least twice recently seen. L hirs maintains LRU page only once recently seen. Works well for IRM, but not for SDD.
FBR (Frequency-Base Replacement) Divide LRU list into 3 sections; New Reference count in new section is not incremented. Middle Old Replaces page in old section with smallest reference count.
LRFU (Least Recently/Frequently Used) Exponential smoothing. λ is hard to tune.
MQ (Multi-Queue) Uses m LRU queues Q 0, Q 1, … Q m-1 Q i contains page that have been seen [2 i,2 i+1 ) times recently.