Managing cache
How to manage cache efficiently?
Temporal locality
copy data into cache when accessed
Spatial locality
copy 2k block of data including accessed data item
How to choose range of addresses to copy?
Might choose data from addr - delta to addr + delta
where delta is 2k-1
However, this is not so convenient to manage
Instead, use all addresses with same upper n-k bits
Example:
Want to access data with address A31-0.
Copy 32 bytes with addresses:
A31-5 00000
A31-5 00001
A31-5 00010
   . . .
A31-5 11111
These 32 bytes are called a cache line.
The upper 27 bits are the tag.