体系结构第5章 第5讲.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
体系结构第5章 第5讲

举例: /* 修改前 */ for (i=0; i N; i=i+1) for (j=0; j N; j=j+1) { r=0; for (k=0; k N; k=k+1) { r=r+y[i][k]*z[k][j]; } x[i][j]=r; } 计算过程 失效次数:2N3+N2 /* 修改后 */ for (jj=0; jj N; jj=jj+B) for (kk=0; kk N; kk=kk+B) for (i=0; i N; i=i+1) for (j=jj; j min(jj+B-1,N); j=j+1) { r=0; for (k=kk; k min(kk+B-1,N); k=k+1) {  r=r+y[i][k]*z[k][j]; } x[i][j]=x[i][j]+r; } 计算过程 失效次数:(N/B)×(N/B)×N×(2B) +N2 = 2N3/B+N2 5.4 减少Cache失效开销 写缓冲及写合并 让读失效优先于写 子块放置技术 请求字处理技术 多级Cache 非阻塞Cache技术 写直达Cache中,因为所有的写请求都必须发送到下级存储层次中,所以经常使用一个写缓冲来降低失效开销。 如何提高写缓冲的效率和利用率? 写合并 5.4.1 写缓冲及写合并 3. 在写回法Cache中,也可采用写缓冲器 1. Cache中的写缓冲器导致对存储器访问的 复杂化 2. 解决问题的方法(读失效的处理) 推迟对读失效的处理及到写缓冲排空 (缺点:读失效的开销增加) 检查写缓冲器中的内容:增加硬件 5.4.2 让读失效优先于写 5.4.3 子块放置技术 把Cache块进一步划分为更小的块(子块),并给每个子块赋予一位有效位,用于指明该子块中的数据是否有效。 Cache与下一级存储器之间以子块为单位传 送数据。但标识仍以块为单位。 谢谢! * 容量失效:注意是全相联条件下的。 * 冲突失效:注意是组相联或直接映象cache下的。 实际怎么测?相同容量cache,相同应用,先全相联测失效次数,再组相联测失效次数,差? * 这些方法和后面15种方法的关系。 * 前提:在cache中失效而在预取缓冲里命中也算命中,所以这是一种讲师失效率的方法; 如果把在预取缓冲里命中而在cache中失效看成失效,则这是一种减小失效开销的方法。 * 效果十分明显,硬件预取通常是下一个或几个相邻的块,trace比较简单。 * 编译预取更加智能,故障状态需要很多回退处理。 * 编译优化所限,主要针对循环,得到的好处也最大,因为是数据密集计算。 * 注意b数组的后面两行并未使用,但用于占据cache空间。 * 失效次数和程序运行情况有关。 * 预取深度和硬件有关。 * 注意题目的假设,预取可以被重叠才有意义。 * 优化和编译预取都属于编译技术,但后者更广泛。 * 成对使用的数据紧凑进cache。 * 数据访问的顺序和存放的顺序相匹配。 * 数据访问的顺序和存放的顺序相匹配。 * 分块也是一种在大数据集时使数据的访问顺序和存放顺序尽量一致的方法。 * 失效结果可以从执行过程或程序循环组织两方面计算。 * X: N*B * N/B * N/B =N**3/B Y: N**2 * N/B =N**3/B Z: B**2 * N/B * N/B =N**2 * 怎样理解:子块失效开销小于完整块的失效开销? 在写直达策略里: 1。对子块读失效,要作废块里的所有有效子块,读回新的一个子块,更新tag; --如果子块大小是原来块大小的1/n,可能增大失效率 (可能把其它子块也作废了) 2。对子块写失效,要作废块里的所有有效子块,写一个新的子块,更新tag,并把子块写回主存; --如果子块大小是原来块大小的1/n,可能增大失效率(可能把其它子块也作废了,失效开销还是写回一个子块的开销) 在写回策略里: 1。对子块读失效,要作废并写回所有有效子块,读回新的一个子块,更新tag; --可能增大失效率,如子块大小等于原来的块大小,失效开销就是原来几倍块写回的开销,如果子块大小是原来块大小的1/n,失效开销就是原来的x/n 2。对子块写失效,要作废并写回所有有效子块,写一个新的子块,更新tag; 同上 * 引入写缓冲时

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档