由于Cache很小,主存很大,Cache很容易装满,Cache满了怎么办?
——采用替换算法。
- 全相联映射:Cache完全满了才需要替换,需要在全局中选择替换哪一块。
- 直接映射:如果对应位置非空,则毫无选择地直接替换。
- 组相联映射:分组内满了才需要替换,需要在分组内选择替换哪一块。
替换算法只有在全相联映射和组相联映射中才会被用到,直接映射无需使用替换算法。
接下来以全相联映射为例分别介绍随机算法(RAND)、先进先出算法(FIFO)、近期最少使用算法(LRU)、最近不经常使用算法(LFU)。
随机算法:
先进先出算法:
抖动现象:频繁的换入换出现象(刚被替换的块很快又被调入)
近期最少使用算法(LRU):