A Summary (Cont.)
 
 
 How Is a Block Found? (Cont.)
The choice among direct-mapped, set-associative, or fully associative mapping depends on the cost of a miss versus the cost of implementing associativity, both in time and in extra hardware.
Virtual memory systems always use fully associative placement because of the factors:
 - Full associativity is beneficial, since misses are very expensive.
 
 
 - Full associativity allows software to use sophisticated replacement schemes that are designed to reduce the miss rate.
 
 
 - The full map can be easily indexed with no extra hardware and no searching required.
 
 
 Which Block Should Be Replaced on a Cache Miss?
 
There are the two primary strategies for replacement in set-associative or fully associative caches:
 - Random:
  Candidate blocks are randomly selected, possibly using some hardware assistance.
  For example, MIPS supports random replacement for   
| TLB |  misses.
  
 - Least recently used (LRU):
  The block replaced is the one that has been unused for the longest time.
 
 
The following two observations are noticed:
 - In practice, LRU is too costly to implement for memory hierarchies with more than a small degree of associativity, since tracking the usage information is costly.
  Therefore, LRU is often approximated.
 
 
 - In fact, random replacement, which is simple to build in hardware, can sometimes be better than the simple LRU approximations that can also be implemented in hardware.