计算机体系结构 第5章 存储器-层次结构设计

计算机体系结构 第5章 存储器-层次结构设计
Cache:按块(block)进行管理的。Cache和主存均被分割成大小相同的块。对Cache和主存的访问是以块为基本单位。

5.2 基本原理

计算机体系结构 第5章 存储器-层次结构设计

问题1:映像规则

计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计

如何放置指定块

计算机体系结构 第5章 存储器-层次结构设计

问题2:块识别

计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计

问题3:块替换(在发生cache缺失时)

计算机体系结构 第5章 存储器-层次结构设计

习题

计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计

问题4:写策略

1.是否写回主存

计算机体系结构 第5章 存储器-层次结构设计
写直达的配置:
计算机体系结构 第5章 存储器-层次结构设计

2.对cache的是否写

计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计

5.3 性能分析

计算机体系结构 第5章 存储器-层次结构设计

习题

计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计
计算机体系结构 第5章 存储器-层次结构设计

怎样改善cache

计算机体系结构 第5章 存储器-层次结构设计

5.4减少Cache缺失率

按照产生失效的原因不同,可以把失效分为以下3类(简称为“3C”):
① 强制性失效(Compulsory Miss):首次访问失效
② 容量失效(Capacity Miss):容量过小,造成被丢弃的块,马上又调入的情况
③ 冲突失效(Conflict Miss):在组相联或直接映象Cache中,太多的块映象到同一组中,造成不断替换又调入的情况。

结论:
① 相联度越高,冲突失效就越少。
② 强制性失效和容量失效不受相联度的影响。
③ 强制性失效不受Cache容量的影响,但容量失效却随着容量的增加而减少。
④ 通常,有大小为N的直接映象Cache的失效率约等于大小为N/2的两路组相联Cache的失效率

1.减少强制性失效,可以增加块的大小

计算机体系结构 第5章 存储器-层次结构设计

2.提高相联度

增加块大小的方法会在降低失效率的同时增加失效开销,而提高相联度则是以增加命中时间为代价。

3.要减小容量失效,可以增大Cache的容量

减少了容量缺失和冲突缺失

4.编译器优化

计算机体系结构 第5章 存储器-层次结构设计
更大容量、更高相联度和块更大的Cache能够减少平均访存时间

5.5 减少缺失代价

1 采用两级Cache

在Cache和存储器之间增加另一级Cache,构成两级Cache:第一级Cache的容量相对较小,使其速度和快速CPU的时钟周期相匹配;而第二级Cache的容量相对较大,使它能捕获更多本来需要到主存去的访问,从而降低实际失效开销。

L1和L2之间的首要区别是L1的速度会影响CPU的时钟频率和失效开销,而L2的速度只影响L1的失效开销。

2 关键字优先和提前重启动

3 让读失效优先于写

4 Victim Cache(牺牲缓存)

5 非阻塞Cache

6 预取技术

5.8 加快地址转换

计算机体系结构 第5章 存储器-层次结构设计