561 字
3 分钟
cache
局部性原理
- 时间局部性
- 同一个变量被反复访问,访问聚合类型的不同分量算空间局部性
- 循环里指令被重复执行
- 空间局部性
- 数组访问
工作原理
性能分析
命中率H:CPU欲访问的信息已在Cache中的比率 缺失(未命中)率: 设 tc为访问一次Cache所需时间, tm为访问一次主存所需时间,则Cache-主存系统的平均访问时间t为
- 先访问Cache,若Cache未 命中再访问主存
- 同时访问Cache和主存,若Cache命中则立即停止访问主存
多级Cache系统下的性能分析
映射方式
写策略
- 写命中
- write through 通常要配合一个write buffer来写入主存
- write back 缓存行要添加一个脏字段表明是否与主存内容一致
- 不命中
- 写分配,写完后为该内存块加入缓存项,通常搭配写回法使用。
- 写不分配,写完后内存块不放入缓存项,通常搭配全写法使用。
缓存项结构
- 有效
- 脏位
- LRU算法位 路组相连需要位的LRU算法位
- 高位标记
- 缓存内容
缓存淘汰策略
- 缓存淘汰策略
- 跟虚拟内存置换相比不会发生中断
多级Cache
其中,各级Cache之间一般采用全写法+非写分配法传递,而Cache-主存之间采用写回法+写分配法。
抖动
缓存发生频繁地淘汰置换
一致性
其他
- 遍历数组求命中率要注意是否数组与缓存项对齐,否则缺失次数容易出错
