计算机系统结构-第5章(2016年-second)课件

上传人:我*** 文档编号:137929509 上传时间:2020-07-12 格式:PPT 页数:32 大小:297.50KB
返回 下载 相关 举报
计算机系统结构-第5章(2016年-second)课件_第1页
第1页 / 共32页
计算机系统结构-第5章(2016年-second)课件_第2页
第2页 / 共32页
计算机系统结构-第5章(2016年-second)课件_第3页
第3页 / 共32页
计算机系统结构-第5章(2016年-second)课件_第4页
第4页 / 共32页
计算机系统结构-第5章(2016年-second)课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《计算机系统结构-第5章(2016年-second)课件》由会员分享,可在线阅读,更多相关《计算机系统结构-第5章(2016年-second)课件(32页珍藏版)》请在金锄头文库上搜索。

1、第5章 存储层次 讲解者:刘东波 联系方式:15574884845,Cache性能分析 降低Cache不命中率的方法 本讲小结,本讲主要内容,重点与难点,重点 根据平均访存时间公式和CPU执行时间公式进行Cache性能分析 降低Cache不命中率的6种方法 难点 Cache性能分析 伪相联Cache工作原理,5.2.7 Cache的性能分析,不命中率 与硬件速度无关 容易产生一些误导 平均访存时间 平均访存时间 命中时间失效率失效开销,5.2.7 Cache的性能分析,非常重要!,程序执行时间 CPU时间(CPU执行周期数+存储器停顿周期数) 时钟周期时间 其中: 存储器停顿时钟周期数“读”的

2、次数读不命中率读不命中开销“写”的次数写不命中率写不命中开销 存储器停顿时钟周期数访存次数不命中率不命中开销,CPU时间(CPU执行周期数+访存次数不命中率不命中开销) 时钟周期时间,=IC(CPIexecution每条指令的平均访存次数不命中率 不命中开销) 时钟周期时间,5.2 Cache基本知识,例5.1 用一个和Alpha AXP类似的机器作为第一个例子。假设Cache不命中开销为50个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期,访问Cache不命中率为2%,平均每条指令访存1.33次。试分析Cache对性能的影响。 解 CPU时间有cacheIC (CPI

3、execution每条指令的平均访存次数 不命中率不命中开销) 时钟周期时间 IC (2.01.332 %50) 时钟周期时间 IC 3.33 时钟周期时间,5.2 Cache基本知识,考虑Cache的不命中后,性能为: CPU时间有cacheIC(2.01.332 %50)时钟周期时间 IC3.33时钟周期时间 实际CPI :3.33 3.33/2.0 = 1.67(倍) CPU时间也增加为原来的1.67倍。 但若不采用Cache,则: CPI2.0501.3368.5,5.2 Cache基本知识,Cache不命中对于一个CPI较小而时钟频率较高的CPU来说,影响是双重的: CPIexecu

4、tion越低,固定周期数的Cache不命中开销的相对影响就越大。 在计算CPI时,不命中开销的单位是时钟周期数。因此,即使两台计算机的存储层次完全相同,时钟频率较高的CPU的不命中开销较大,其CPI中存储器停顿这部分也就较大。 因此Cache对于低CPI、高时钟频率的CPU来说更加重要。,例5.2 考虑两种不同组织结构的Cache:直接映像Cache和两路组相联Cache,试问它们对CPU的性能有何影响?先求平均访存时间,然后再计算CPU性能。分析时请用以下假设:,(1)理想Cache(命中率为100%)情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.3次。 (2)两种Cache

5、容量均为64KB,块大小都是32字节。 (3)在组相联Cache中,由于多路选择器的存在而使CPU的时钟周期增加到原来的1.10倍。这是因为对Cache的访问总是处于关键路径上,对CPU的时钟周期有直接的影响。,(4) 这两种结构Cache的不命中开销都是70ns。(在实际应用中,应取整为整数个时钟周期) (5) 命中时间为1个时钟周期,64KB直接映像Cache的不命中率为1.4%,相同容量的两路组相联Cache的不命中率为1.0%。,5.2 Cache基本知识,解 平均访存时间为: 平均访存时间命中时间不命中率不命中开销 因此,两种结构的平均访存时间分别是: 平均访存时间1路2.0(0.0

6、1470)2.98ns 平均访存时间2路2.01.10(0.01070)2.90ns 两路组相联Cache的平均访存时间比较低。 CPU时间IC(CPIexecution每条指令的平均访存次数 不命中率不命中开销) 时钟周期时间 IC(CPIexecution 时钟周期时间每条指令的 平均访存次数不命中率不命中开销时钟周期时间),5.2 Cache基本知识,因此: CPU时间1路 IC(2.02(1.30.01470) 5.27IC CPU时间2路 IC(2.021.10(1.30.01070) 5.31IC,直接映像Cache的平均性能好一些。,5.2 Cache基本知识,平均访存时间命中时

7、间不命中率不命中开销 可以从三个方面改进Cache的性能: 降低不命中率 减少不命中开销 减少Cache命中时间 17种Cache优化技术 8种用于降低不命中率 5种用于减少不命中开销 4种用于减少命中时间,5.2.8 改进Cache的性能,三种类型的不命中(3C) 强制性不命中(Compulsory miss) 当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性不命中。 (冷启动不命中,首次访问不命中) 容量不命中(Capacity miss ) 如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生不命中。这种不

8、命中称为容量不命中。,5.3 降低Cache不命中率,5.3.1 三种类型的不命中,5.3 降低Cache不命中率,冲突不命中(Conflict miss) 在组相联或直接映像Cache中,若太多的块映像到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突不命中。 (碰撞不命中,干扰不命中) 三种不命中所占的比例 图示I(绝对值) 图示(相对值),5.3 降低Cache不命中率,5.3 降低Cache不命中率,5.3 降低Cache不命中率,可以看出: 相联度越高,冲突不命中就越少; 强制性不命中和容量不命中不受相联度的影响;

9、 强制性不命中不受Cache容量的影响,但容量不命中却随着容量的增加而减少。,5.3 降低Cache不命中率,减少三种不命中的方法 强制性不命中:增加块大小,预取 (本身很少) 容量不命中:增加容量 (抖动现象) 冲突不命中:提高相联度 (理想情况:全相联) 许多降低不命中率的方法会增加命中时间或不命中开销,5.3 降低Cache不命中率,不命中率与块大小的关系 对于给定的Cache容量,当块大小增加时,不命中率开始是下降,后来反而上升了。 原因: 一方面它减少了强制性不命中; 另一方面,由于增加块大小会减少Cache中块的数目,所以有可能会增加冲突不命中。 Cache容量越大,使不命中率达到

10、最低的块大小就越大。 增加块大小会增加不命中开销,5.3.2 增加Cache块大小,5.3 降低Cache不命中率,不命中率随块大小变化的曲线,5.3 降低Cache不命中率,各种块大小情况下Cache的不命中率,5.3 降低Cache不命中率,最直接的方法是增加Cache的容量 缺点: 增加成本 可能增加命中时间 这种方法在片外Cache中用得比较多,5.3.3 增加Cache的容量,5.3 降低Cache不命中率,采用相联度超过8的方案的实际意义不大。 2:1 Cache经验规则 容量为N的直接映像Cache的不命中率和容量为N/2的两路组相联Cache的不命中率差不多相同。 提高相联度是

11、以增加命中时间为代价。,5.3.4 提高相联度,5.3 降低Cache不命中率,多路组相联的低不命中率和直接映像的命中速度 伪相联Cache的优点 命中时间小 不命中率低,5.3.5 伪相联 Cache (列相联 Cache ),优点,缺点,直接映像,组相联,命中时间小,命中时间大,不命中率高,不命中率低,基本思想及工作原理 (动画演示) 在逻辑上把直接映像Cache的空间上下平分为两个区。对于任何一次访问,伪相联Cache先按直接映像Cache的方式去处理。若命中,则其访问过程与直接映像Cache的情况一样。若不命中,则再到另一区相应的位置去查找。若找到,则发生了伪命中,否则就只好访问下一级

12、存储器。,5.3 降低Cache不命中率,缺点: 多种命中时间,快速命中与慢速命中 要保证绝大多数命中都是快速命中。,不命中开销,5.3 降低Cache不命中率,指令和数据都可以预取 预取内容既可放入Cache,也可放在外缓冲器中。 例如:指令流缓冲器 指令预取通常由Cache之外的硬件完成 预取效果 Joppi的研究结果 指令预取 (4KB,直接映像Cache,块大小16字节) 1个块的指令流缓冲器: 捕获1525的不命中 4个块的指令流缓冲器: 捕获50 16个块的指令流缓冲器:捕获72,5.3.6 硬件预取,5.3 降低Cache不命中率,数据预取 (4KB,直接映像Cache) 1个数

13、据流缓冲器:捕获25的不命中 还可以采用多个数据流缓冲器 Palacharla和Kessler的研究结果 流缓冲器:既能预取指令又能预取数据 对于两个64KB四路组相联Cache来说: 8个流缓冲器能捕获5070的不命中 预取应利用存储器的空闲带宽,不能影响对正常不命中的处理,否则可能会降低性能。,5.3 降低Cache不命中率,一种能减少冲突不命中次数而又不影响时钟频率的方法。 基本思想 在Cache和它从下一级存储器调数据的通路之间设置一个全相联的小Cache,称为“牺牲”Cache(Victim Cache)。用于存放被替换出去的块(称为牺牲者),以备重用。 工作过程,5.3.9 “牺牲” Cache,5.3 降低Cache不命中率,作用 对于减小冲突不命中很有效,特别是对于小容量的直接映像数据Cache,作用尤其明显。 例如 项数为4的Victim Cache: 能使4KB Cache的冲突不命中减少20%90%,本章小结,掌握Cache性能分析的方法,熟练运用公式计算CPU执行时间和平均访存时间 掌握Cache不命中的三种类型的产生原因及其相互关联 掌握常见6种降低Cache不命中率的方法,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号