计算机组织结构 第七章复习笔记
1. 两种写策略
写策略是区分不同Cache设计方案的一个重要标志。
写直达法(也称为存直达法)
执行“写”操作时,不仅写入Cache,而且也写入下一级存储器。
写回法(也称为拷回法)
执行“写”操作时,只写入Cache。仅当Cache中相应的块被替换时,才写回主存。 (设置“修改位”)
2. Cache的性能分析
不命中率
与硬件速度无关
容易产生一些误导
平均访存时间
平均访存时间 = 命中时间+不命中率×不命中开销
3. 程序执行时间
CPU时间=(CPU执行周期数+存储器停顿周期数)× 时钟周期时间
其中:
存储器停顿时钟周期数=“读”的次数×读不命中率×读不命中开销+“写”的次数×写不命中率×写不命中开销
存储器停顿时钟周期数=访存次数×不命中率×不命中开销
例题:用一个和Alpha AXP类似的机器作为第一个例子。假设Cache不命中开销为50个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期,访问Cache不命中率为2%,平均每条指令访存1.33次。试分析Cache对性能的影响。
解:
CPU时间有cache=IC ×(CPIexecution+每条指令的平均访存次数
×不命中率×不命中开销)× 时钟周期时间
=IC ×(2.0+1.33×2 %×50)× 时钟周期时间
=IC × 3.33× 时钟周期时间
考虑Cache的不命中后,性能为:
CPU时间有cache=IC×(2.0+1.33×2 %×50)×时钟周期时间
=IC×3.33×时钟周期时间
实际CPI :3.33
3.33/2.0 = 1.67(倍)
CPU时间也增加为原来的1.67倍。
但若不采用Cache,则:
CPI=2.0+50×1.33=68.5
4. 改进Cache的性能
可以从三个方面改进Cache的性能:
降低不命中率
减少不命中开销
减少Cache命中时间
- 假如降低Cache不命中率
相联度越高,冲突不命中就越少;
强制性不命中和容量不命中不受相联度的影响;
强制性不命中不受Cache容量的影响,但容量不命中却随着容量的增加而减少。
减少三种不命中的方法
强制性不命中:增加块大小,预取
(本身很少)
容量不命中:增加容量
(抖动现象)
冲突不命中:提高相联度
(理想情况:全相联)
(1)增加块大小
对于给定的Cache容量,当块大小增加时,不命中率开始是下降,后来反而上升了。
原因:
一方面它减少了强制性不命中;
另一方面,由于增加块大小会减少Cache中块的数目,所以有可能会增加冲突不命中。
Cache容量越大,使不命中率达到最低的块大小就越大。
增加块大小会增加不命中开销
(2)增加Cache容量:
最直接的方法是增加Cache的容量
缺点:
增加成本
可能增加命中时间
这种方法在片外Cache中用得比较多
(3)提高相联度
采用相联度超过8的方案的实际意义不大。
2:1 Cache经验规则
容量为N的直接映象Cache的不命中率和容量为N/2的两路组相联Cache的不命中率差不多相同。
提高相联度是以增加命中时间为代价。
5. 伪相联Cache的优点
命中时间小
不命中率低
是结合了直接映像和组相联的优点
平均访存时间计算
计算三种方式的平均访存时间。
最通用的计算公式:平均访存时间=命中时间+不命中率*不命中开销
-
直接映像的平均访存时间=
-
2路组相联映像的平均访存时间=
-
伪相联映像的平均访存时间=
Cache的CPU时间
直接映像的CPU时间=
二路组相联的CPU时间=
伪相联映像的CPU时间=
例题:
(1) 理想 Cache(命中率为 100%)情况下的 CPI 为 2.0,时钟周期为 2ns,平均每条指令访存 1.2 次;
(2) 直接映像、2 路组相联映像、伪相联映像这三种 Cache 的容量均为 32 KB,块大小都是 32 字节;
(3) 组相联映像 Cache 中的多路选择器使 CPU 的时钟周期增加了 10%;
(4) 这三种 Cache 的失效开销都是 40 个时钟周期;
(5) 命中时间为 1 个时钟周期;
(6) 32 KB 直接映象 Cache 的失效率为 2%,32 KB 两路组相联映像 Cache 的失效率为1.8%;
(7) 对于伪相联映像 cache,若按直接映像找到(即正常命中)的位置处没有发现匹配时,而在另外一个位置才找到(即伪命中)数据需要 2 个额外的周期;
(8)假设指令条数为 100 条,CPU 的主频是 500MHz。
试计算回答下列问题:(注:结果保留 2 位小数。)
(1)( 6 分) 直接映象、2 路组相联映像、伪相联映像 Cache 的平均访问时间分别是多
少纳秒(ns)?
解:
套公式即可: