映像规则
1.全相联映像
全相联:主存中的任一块可以被放置到Cache中的任意一个位置。
对比:阅览室位置-----随便坐
特点:空间利用率最高,冲突概率最低,实现最复杂
2.直接映像
直接映像:主存中的每一块只能放置到Cache中唯一的一个位置(循环分配)
对比:阅览室位置----只有一个位置可以坐
特点:空间利用率最低,冲突概率最高,实现最简单
3.组相联映像
组相联:主存中的每一块被放置到Cache中唯一的一个组中的任何一个位置
组的选择常采用位选择算法
若主存第i块映像到第k组,则:
k=i mod (G) (G 为Cache的组数)
查找方法
1.如何确定Cache中是否有所要访问的块?
若有的话如何确定其位置?
Cache块调入时记录存放的位置到目录表中
只需查找候选位置所对应的目录表项
并行查找与顺序查找
提高性能的重要思想:主候选位置(MRU块)(Most Recently Used)
并行查找的实现方法:
1.相联存储器
2.单体多字存储器+比较器
4路组相联Cache的查找过程:
直接映像Cache的查找过程:
替换算法
所要解决的问题:当新调入一块,而该块能够占用的Cache位置已被占满时,替换哪一块?
1.随机法:实现简单
2.FIFO:实现简单
3.LRU(最近最少):失效率低
4.LFU:最不常使用法
写策略
两种写策略
(1)写直达法:执行“写”操作时,不仅写入Cache,而且也写入下一级存储器
(2)写回法:执行“写”操作时,只写入Cache。仅当Cache中相应的块被替换时,才写回主存。(设置“污染位”)
两种写策略的比较
写回法的优点:速度快,占用存储器频带低
写直达法的优点:易于实现,一致性好
写缓冲器
写合并
当把数据写入写缓冲器时,判断本次写入单元的块地址是否与写缓冲器中某个有效快的地址相同,若是,则把新数据与该块合并