替换算法
1.先进先出法(FIFO)
理解:如果最后位置不够了就把最早进去的替换掉了。
如下图👇
这里面对命中的理解就是,你之前已经在这个存储器里了,再次遍历你,就是命中,如果你是第一次进去,那就是载入。
上图16进去就是替换,把最早进去的替换掉🙊🙊
2.最不经常使用法(LFU)
理解:最后位置不够,使用次数最少的(也就是上标最大的)被替换掉,如果有两个都是上标最大的,谁先进去,就替换谁(就是同样的上标,谁位置在上面就换谁,这个载入是从上往下载入的)。
如下图👇
3.近期最少使用法(LRU)
理解:其实这个和最不经常使用法很像,但是区别在于近期最少使用法替换的是最近的不常使用的,比如两个都是没使用3次,但是近期使用法会替换的位置在下面的,因为遍历是从上往下,而最不经常使用法就是替换在上面的,它是先进去的,是最。
如下图👇
使用替换算法的原因是程序运行一段时间后,cache存储空间已满,有新数据进去就要替换掉已有的数。
目的在于提高cache的命中率,可采用硬件也可以采用软件。但算法也存在抖动。