3.5 Cache
字数
562 字
阅读时间
3 分钟
一、Cache命中率的计算
二、Cache-主存映射方式
Cache中存储的信息:
- 有效位(0/1)+ 标记 + 整块数据
- 其中“标记”用于指明对应的内存块,不同映射方式,“标记”的位数不同
三种映射方式的优缺点
Cache行也可称为Cache块
1. 全相联映射
优点:
- Cache存储空间利用充分(一个主存地址的数据可以存放到Cache中的任意一个块中)
- 命中率高(Cache存储空间利用充分,内容多了,命中率自然就高) 缺点:查找“标记”最慢,有可能需要比对所有Cache行的标记(若提前找到,则命中Cache,不再比对后续的Cache行标记)
2. 直接映射
优点:
- 对于任意一个地址,只需要对比一次“标记”
- 速度最快(不需要多次比对“标记”)
缺点:(这两点可以视为捆绑,有其一必有其二)
- Cache存储空间利用不充分(每个主存地址都只有一个固定的对应Cache行)
- 命中率低
3. 组相联映射
优点:是另外两种方法的折中,综合效果较好
术语
n 路组相联映射 --> 每 n 个Cache行为一组
三、替换算法
TIP
直接映射 --- 如果对应位置非空,则毫无选择地直接替换 全相联映射 --- Cache完全满了才需要考虑替换,需要在全局选择替换哪一块 组相联映射 --- 分组内满了才需要替换,需要在分组内选择替换哪一块 故直接映射不需要替换算法
LFU算法的缺陷:曾经被经常访问的主存块在未来不一定会用到(导致曾经的主存块会在一段时间内不被替换),并没有遵循局部性原理,因此实际效果不如LRU