一、cache类型
直接映射高速缓存 (多个组,每个组包含一个cache line)
组相联高速缓存 (多个组,每个组包含多个cache line)
全相联高速缓存 (一个组,包含cache的所有cache line)
二、cache line结构
——————————————————————————————————————————————
| 有效标志 | 标记 | 高速缓块(一个cache line) |
——————————————————————————————————————————————
说明:
1.有效标志:是一个1bit的标志位
2.标记:用于选定组中某一个cache line
3.高速缓块:实际的缓存数据
四、CPU如何取缓存
(1)分三步:组选择、行匹配、字抽取
(2)CPU发出地址————>cache硬件解析CPU发出的地址————>命中,则送出缓存数据
(3)CPU地址结构(假设32位处理器):
—————————————————————————————————————————————
| 标记(t位) | 组索引(s位) | 块偏移(b位) |
—————————————————————————————————————————————
bit31 bit0
cache硬件就是根据上面地址中的各个bit域,找到缓存中的某个数据。几乎和MMU查页表的过程一样。
五、cache容量计算公式:C = B * E * S
C: cache 容量
B: cache line大小
E: 一个组可以包含多少个cache line(与cache类型有关)
S: 有多少个组(与cache类型有关)