90 likes | 191 Views
RegionTracker: Optimizing On-Chip Cache Lookups. What is a Cache?. Memory. Either Big & Slow or Small & Fast. CPU. Fast. Big & Slow. Memory. Small & Fast. CPU. Cache. How Does a Cache Work?. Address:. Tag Array. Data Array. =. =. =. =. Select. Towards Large On-Chip Caches.
E N D
What is a Cache? Memory Either Big & Slow or Small & Fast CPU Fast Big & Slow Memory Small & Fast CPU Cache
How Does a Cache Work? Address: Tag Array Data Array = = = = Select
Towards Large On-Chip Caches Memory: CPU: CPU Cache CPU 1989 1971
Towards Large On-Chip Caches CPU CPU CPU CPU CPU Cache Cache 1995 2006 CPU CPU CPU CPU • Larger, Slower caches • How can we make caches Fast again?
Tag Lookup Plays Critical Role • Larger Caches are Slower, and use More Power • Serial Tag-Data lookup to reduce power CPU • Search for Tag in Tag Array • Then read desired block from data array Tag Array Data Array • Lots of fine-grain information • Can We Improve This?
Key Insight Memory • Only a fewregions in cache at a time. • Can we use something small and fast to track these regions? Cache
RegionTracker Design 4 • Cached Block Vector (CBV) • Cached Region Hash (CRH) (not shown) • Track which Regions are currently Cached • Allocated new CBV entry on access to new region • Combine Coarse-Grain and Fine-Grain Information 28
Results and Insights • Takes advantage of common program behavior • Access a few large, continuous areas of memory at a time • Simple, Small Structures • Compact Information Encoding & Fast Access • Still use tag array when RegionTracker misses • Reduces Cache Latency • Can Reduce Cache Lookup Power • Software does NOT change