计算机组织与结构(雷建军)资料.pptVIP

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2、全相联映射 主存中的每一个字块可以映射到Cache 存储器的任何一个字块位置上。 允许从已被占满的Cache 存储器中替换出任何一个旧字块。 * 需要将存储器的高M 位(除掉块内地址部分)与Cache 中的所有块地址标记进行比较,以确定是否命中。 需要一个比较复杂的替换策略问题,即决定将数据块调入Cache 中什么位置,将Cache 中哪一块数据调出到主存。 优点:块冲突的概率低,Cache 的利用率高。 缺点:Cache 中块表查找的速度慢,控制复杂(Cache 的速度要求高,全部比较和替换策略都要用硬件实现,实现起来也比较困难)。 * 3、组相联映射 是全相联映射和直接映射的一种折衷方案。 将存储空间分成若干组,各组之间是直接映射,而组内各块之间则是全相联映射。 判断块命中和替换算法比全相联映射方法简单,块冲突的概率比直接映射方法的低,命中率介于直接映射和全相联映射方法之间。 * Cache分成2R组,每组2k块 例如,设R=3,k=1,考虑主存字块15可映射到Cache的哪一些字块中。根据公式,可得: =(7mod 23)×21+p =14+p 又:0≤p≤2k-1=21-1=1 (每组中的块) 即: p=0或1 代入后得j=14(p=0)或15(p=1)。所以主存模块15可映射到Cache字块14或15,在第7组。 同样可计算出主存字块17可映射到Cache的第0块或第1块。 * * 5.4.3 替换策略 替换策略:Cache 中的一个存储块要与主存中的若干个存储块相对应,若在调入主存中一个存储块时,Cache 中相应的位置已被其它存储块占有,则必须去掉—个旧的字块,让位于一个新的字块。 先进先出(FIFO) 策略和近期最少使用(LRU) 策略 1.先进先出(FIFO) 策略 FIFO(First In First Out)策略:把一组中最先调入Cache存储器的字块替换出去。 好处:不需要随时记录各个字块的使用情况,所以实现容易,开销小。 * 2.近期最少使用(LRU) 策略 LRU(Least Recently Used) 策略:把一组中近期最少使用的字块替换出去。 要求:需随时记录Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块。 好处:LRU替换策略的平均命中率比FIFO要高,且当分组容量增大时,能提高该替换策略的命中率。 * 5.4.4 Cache写策略 Cache内容是部分主存内容的副本,应该保持一致,而CPU 对Cache的写入更改了Cache 内容。 写策略:如何进行写操作使主存与Cache内容保持一致。 1、全写法 当写Cache命中时,Cache与主存同时发生写修改,当写Cache未命中时,直接向主存进行写入。 每块无需通过设置修改位来进行判断,缺点是Cache在CPU向主存写数据时没有起到高速缓存的作用。 2、写回法 当对Cache写命中时,只修改Cache的内容,而不立即写入主存,只当此块被换出时才写回主存。写未命中时,将此主存块复制到Cache后,在Cache中对其修改,只当此块被换出时才写回主存。 好处:能显著减少写主存次数;坏处:存在Cache/主存不一致的隐患。 3、写一次法: 写回法与全写法的结合。写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。 其它Cache监听到写信号后,可以对该块做无效处理。这便于维护系统全部Cache的一致性。 而后若对Cache此行的再次或多次写命中,则按照写回法处理。 * 5.4.5 Cache的性能分析 在一个程序执行期间,设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,则定义命中率h 为: h=Nc/(Nc+Nm) 增加Cache的目的,希望 Cache的命中率尽量接近1,这样在性能上能使主存的平均读出时间尽可能接近Cache的读出时间。由于程序访问的局部性,这是可能的。 * 访问效率 若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,h表示命中率。 则Cache/主存系统的平均访问时间ta为: ta=h*tc+(1-h)*tm  则访问效率e 为: e = tc/ta = tc/(h*tc+(1-h)*tm) = 1/(r+(1-r)h) r=tm/tc表示主存慢于Cache的倍率 h越接近1越好,r值不易太大 * 5.4.6 改进Cache性能的措施 改进Cache性能,应该降低Cache失效率。 产生失效的原因: (1) 强制性失效 (Compulsory miss) 当第一次访问一个块时,该块不在 Cach

文档评论(0)

文档资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档