Skip to content

3.5 Cache

字数
562 字
阅读时间
3 分钟

一、Cache命中率的计算

二、Cache-主存映射方式

Cache中存储的信息:

  1. 有效位(0/1)+ 标记 + 整块数据
  2. 其中“标记”用于指明对应的内存块,不同映射方式,“标记”的位数不同

三种映射方式的优缺点

Cache行也可称为Cache块
1. 全相联映射

优点:

  1. Cache存储空间利用充分(一个主存地址的数据可以存放到Cache中的任意一个块中)
  2. 命中率高(Cache存储空间利用充分,内容多了,命中率自然就高) 缺点:查找“标记”最慢,有可能需要比对所有Cache行的标记(若提前找到,则命中Cache,不再比对后续的Cache行标记)
2. 直接映射

优点:

  1. 对于任意一个地址,只需要对比一次“标记”
  2. 速度最快(不需要多次比对“标记”)

缺点:(这两点可以视为捆绑,有其一必有其二)

  1. Cache存储空间利用不充分(每个主存地址都只有一个固定的对应Cache行)
  2. 命中率低
3. 组相联映射

优点:是另外两种方法的折中,综合效果较好

术语

n 路组相联映射 --> 每 n 个Cache行为一组

三、替换算法

TIP

直接映射 --- 如果对应位置非空,则毫无选择地直接替换 全相联映射 --- Cache完全满了才需要考虑替换,需要在全局选择替换哪一块 组相联映射 --- 分组内满了才需要替换,需要在分组内选择替换哪一块 故直接映射不需要替换算法

LFU算法的缺陷:曾经被经常访问的主存块在未来不一定会用到(导致曾经的主存块会在一段时间内不被替换),并没有遵循局部性原理,因此实际效果不如LRU

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写