一. 存储层次中的各种缓存
二. 高速缓存模型
(1)cache组成
包括三个部分:v t B
cache内部有S=2^s组,每组有E=2^e行,每行的结构如下:
包括有效位v,标志位tag,以及块,每块的大小是B=2^b字节
(2)地址
地址包括三个部分t s b:
- t 标记位:对应cache中行的标记位
- s组索引:对应cache的组号
- b块偏移:对饮cache行中的数据块偏移量
三. 不命中分类
冷不命中(强制不命中)
如果缓存是空的,则对任何数据的访问都是不命中的, 属于短暂事件
冲突不命中
- k+1层缓存相较于k 层缓存空间更小,只能存放k层缓存数据块的子集
- 例如,k+1层的块i 必须放在 k层的 (i mod 4) 块中
- 缓存够大,但是所需的多个数据块都被映射到同一个缓存块中,导致一直发生冲 突不命中
- 例如,块0和块8映射到同一个缓存块,反复引用块 0, 8, 0, 8, 0, 8, … 那么每次都会产生冲突
容量不命中
需访问相对稳定不变的数据集合,这个块的集合称之为工作集 (working set) ,其 大小超过缓存大小
四 .映像规则
(1)全相联印象
- 所谓全相联:主存中的任一块可以被放置到Cache中的任意一个位置
- 对比:阅览室位置── 随便坐
- 特点:空间利用率最高,冲突概率最低,实现最复杂
(2)直接印象
-
所谓直接映象:主存中的每一块只能被放置到Cache中唯一的一个位置 (循环分配)
-
对比:阅览室位置── 只有一个位置可以坐 特点:空间利用率最低,冲突概率最高,实现最简单
(3)组相联印象
- 所谓组相连映象:主存中的每一块可 以被放置到Cache中唯一的一个组中 的任何一个位置
- 一种直接映象和全相联的折中
- 选中组内一行被替换
- 替换策略:任选, 最近最少被使用(LRU),