3、替换算法
当Cache访问不命中,需要对主存访问并将数据块装入Cache时,Cache行中原来的数据将被替换。对于组相联映射和相联映射,主存中特定块可以对应多组或任意Cache行,这就需要一种替换算法决定替换哪一Cache行。常用的算法有4种:
最近最少使用 LRU,替换在Cache中驻留时间最长且未被引用的块。
先进先出 FIFO,替换在Cache中驻留时间最长的块。
最不经常使用 LFU,替换在Cache中引用最少的块。
随机替换,随机替换候选块中的一个,与以前使用情况无关。
其中最近最少使用算法是对先进先出算法和最不经常使用算法的综合,因此也是最有效的算法,特别是对于两路组相联结构,这种算法用硬件实现十分容易。