- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11--第5章-1-存储系统-计算机系统结构
* 有些流水方式的机器采用记分牌或Tomasulo控制方法,允许指令乱序执行,CPU无需在Cache失效时停顿。 例如,数据失效发生后,CPU在等待数据Cache给出数据的同时可以进行从指令Cache中取指令等工作。 非阻塞Cache或非锁定Cache技术:Cache在失效时仍允许CPU进行其他的命中访问。这种“失效下命中”(hit under miss)的优化措施在Cache失效时,不是完全拒绝CPU的访问,而是能处理部分访问,从而减少了实际失效开销。如果进一步允许多个失效重叠,可进一步减少失效开销。 但是,“失效下命中”措施大大增加了Cache控制器的复杂度,因为这时可能有多个访存同时进行。 5.4.4 非阻塞Cache技术 * 可以同时处理的失效个数越多,所能带来的性能上的提高就越大。对于SPEC92典型程序,下图给出了对于不同的重叠失效个数,非阻塞数据Cache的平均存储器等待时间(以周期为单位)与阻塞Cache平均存储器等待时间的比值(越小性能越好)。所考虑的Cache采用直接映象,容量为8KB,块大小为32B。 图中前14个是浮点程序;后4个是定点程序。显然,非阻塞Cache浮点性能改善大。 * 在Cache和存储器之间增加另一级Cache,构成两级Cache:第一级Cache的容量相对较小,使其速度和快速CPU的时钟周期相匹配;而第二级Cache的容量相对较大,使它能捕获更多本来需要到主存去的访问,从而降低失效开销。 5.4.5 采用两级Cache 尽管增加一级存储层次在概念上直观、简单,但性能分析却变得复杂了。用下标Ll和L2分别表示第一级和第二级Cache,原有的公式就变为: 所以,有 * 下面我们对于两级Cache系统采用以下术语: ① 局部失效率:对于某一级Cache来说,其计算公式为 局部失效率=该级Cache的失效次数/到达该级Cache的访存次数 ② 全局失效率:对于某一级Cache来说,其计算公式为 全局失效率=该级Cache的失效次数/CPU发出的访存总次数 例5.12 假设在1000次访存中,L1失效40次,L2失效20次。试问:在这种情况下,该Cache系统的局部失效率和全局失效率各是多少? 解 : L1的失效率(全局和局部)是40/1 000,即4%; L2的局部失效率是20/40,即50%,L2的全局失效率是20/1 000,即2%。 * L1和L2之间的首要区别: L1的速度主要影响CPU的时钟频率; L2的速度只影响L1的失效开销。对于L2,在设计时可以有更多的考虑空间,许多不适合于L1的方案对于L2却可以使用。L2的设计中有两个问题需要权衡:它能否降低L1的失效开销?它的成本是多少? 首先看L2的容量。因为L1中的所有信息都会出现在L2中,L2的容量应比L1大许多。如果L2只是稍大一点,局部失效率将很高。因此,L2的容量一般较大,比如coretex A9的L2可达到8MB。大容量意味着L2实际上没有太多的容量失效,只剩下一些强制性失效和冲突失效,减少L2的失效率即降低L1的失效开销。 现在的问题是:相联度(组相联中的路数)对L2的作用是否会更大? 是否可以降低L1 的失效开销。 * 例5.13 给出有L2的以下数据: ①对于直接映象,命中时间L2=10个时钟周期。 ② 两路组相联使命中时间增加0.1个时钟周期,即10.1个时钟周期。 ③ 对于直接映象,局部失效率L2=25%。 ④ 对于两路组相联,局部失效率L2=20%。 ⑤ 失效开销L2=50个时钟周期。 试问L2的相联度对失效开销的影响如何? 解:对一个直接映象的L2来说,L1的失效开销为: 失效开销直接映象,L1=10+25%×50个时钟周期=22.5个时钟周期 对于两路组相联L2来说,命中时间增加了0.1个时钟周期,故L1的失效开销为: 失效开销两路组相联,L1=10.1十20%×50个时钟周期=20.1个时钟周期 对于L1,L2采用两路组相联使其失效开销更小。 * 还可以采用增加L2块大小的方法来减少失效率。对于大容量的L2来说,增加块大小对冲突失效影响不大。而且由于访存时间相对来说较长,所以64 B、128 B、甚至256 B的块大小都是L2经常使用的。 为了减少平均访存时间,可以让容量较小的L1采用较小的块,而让容量较大的L2采用较大的块。在这种情况下,仍可实现包容性,但在处理L2失效时要做更多的工作:替换第二级Cache中的块时,必须作废所有对应于该块的L1中的块。这样不但会使L1失效率有所增加,而且会造成不必要的作废。如果结合使用其他一些性
文档评论(0)