高级计算机体系结构(精编).ppt

  1. 1、本文档共169页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级计算机体系结构(精编)

页着色(Page coloring) 页码连续的虚页并不一定会在内存中连续,即它们对应的实页不一定连续,它们还有可能映射到同一个cache页上。 coloring解决方法 : 即操作系统在为进程分配虚页时,禁止符合某种条件的实页映射到连续的虚页上。即要求相邻虚页所对应的实页的尾几号必须不相同。不相同的那几位就叫coloring code. cache/page coloring其实就是一个简单的内存分配算法,减少了cache冲突的机率,提高了性能。 * * 通过硬件预取降低失效率 指令预取 Alpha 21064 在Cache失效时取连续两块,多取的Cache块存放在流缓存(stream buffer)中,下一次Cache失效时先检查指令是否在流缓存中。 数据预取 Jouppi [1990]:对4KB的Cache,1项流缓存可以命中25%的Cache失效访问, 4项流缓存可以命中43%的Cache失效访问 Palacharla Kessler [1994]:指令和数据Cache各为四路组相联的64KB,对科学计算程序,8项流缓存可以命中 50%-70%的Cache失效访问 预取对访存带宽提出了更高的要求 * 通过软件预取降低失效率 软件预取都是数据预取 预取到寄存器: (HP PA-RISC loads) 预取到Cache: (MIPS IV, PowerPC, SPARC v. 9) 预取指令不发生例外,预取到Cache的指令可以不等待数据返回 预取指令开销:占用指令槽 多发射结构对预取指令占用指令槽不怎么敏感 龙芯2号对软件预取的支持 目标寄存器为0号寄存器的取数指令不发生例外,不阻塞流水线 * Cache优化小结 优化技术 失效延迟 命 中 率 命中时间 硬件复杂度 多级cache + 2 关键字优先 + 2 读失效优先 + 1 合并写缓存 + 1 Victim cache + + 2 增加块大小 - + 0 增加cache大小 + - 1 增加相联度 + - 1 伪相联、路猜测 + 2 编译优化 + 0 非阻塞cache + 3 硬件预取 + + 2i,3d 软件预取 + + 3 小而简单的cache - + 0 Cache和TLB访问并行 + 2 流水cache访问 + 1 * 一个处理器页大小为4KB,一级数据Cache大小为64KB,指出在直接相联、二路组相联、以及四路组相联的情况下需要页着色(page coloring)的地址位. 解: 页大小为4KB=212B,页内地址为[11:0]位。 cache 容量64KB=216B,地址范围为[15:0]; cache 块大小为32B=25B,地址范围为[4:0]。 1)直接相联: cache 索引位数为地址的[15:5],需要页着色的是地址[15:12],共4 位; 2)二路组相联: cache 索引位数为地址的[14:5],需要页着色的是地址[14:12],共3 位; 3)四路组相联: cache 索引位数为地址的[13:5],需要页着色的是地址[13:12],共2 位。 * 3. 通过分开指令Cache和数据Cache,能够消除因指令和数据冲突而引起的Cache缺失。现有一个由大小都为32KB的指令Cache和数据Cache组成的系统和另一个大小为64KB的一体Cache组成的系统相比较。假设在所有的存储器访问中数据访问占26%,取指令占74%。32KB指令Cache、数据Cache和64KB的一体Cache每千条指令缺失率分别为1.5、38和40。Cache命中时需要1个时钟周期,缺失代价为100个时钟周期,在一体Cache中,Load和Store命中需要额外一个时钟周期。 a) 计算并比较哪一个组织方式有更低的缺失率? b)求出每种组织下的存储器平均访问时间。 解: 1)MissRate = CacheMissOps/MemOps 每1000 条指令中load/store 指令的条数是1000×(26%/74%)=351 32KB 指令cache MissRate 为0.0015; 32KB 数据cache MissRate 为38/351=0.1083 指令cache 和数据cache 各32KB 的MissRate = (1.5 + 38)/(1000+351) = 0.0292 64KB 一体cache 的MissRate = 40/(1000+351) = 0.0296 所以指令cache 和数据cache 各32KB 组织方式缺失率更低 2) 指令cache 和数据cache 各32KB 的AMAT = (1000+1.5×100+38×100)/(1000+351)=3.66 64KB 一体cache 的AMAT = (1000+351+4

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档