Cache(高速缓冲存储器)

地址映射

数据从主存拿过来应该放到Cache的什么位置

替换算法

随机算法

FIFO(先进先出)

LRU(近期最少使用)

LFU(最不经常使用)

写策略

确保CPU修改Cache中数据副本后与主存数据母本一致

写命中

写回法

先只修改Cache的内容,不立即写入主存,为了表示数据是被修改过的,所以用一个脏位记录

当此块被换出时写入主存

image-20230517153910329

减少了访存次数,但存在数据不一致的隐患

全写法/写直通法

image-20230517154107600

将要写的数据字节写入Cache和写缓冲(SRAM实现,所以比写回法的直接写入主存快的多)中,写缓冲会自己一个个写到主存(此过程与CPU无关)

写的操作不频繁时效果非常好,但如果写操作繁琐,可能会因为写缓冲饱和而发生阻塞

写没命中

写分配法

先把主存中的块读到Cache中,然后就变成了写回法

image-20230517154636687

非写分配法

直接写入到主存,不用读入Cache(只有“读”未命中时才调入Cache)

相当于不用往Cache中写的全写法

image-20230517154834123

多级Cache

image-20230517160043749