高相联度cache的性能分析与优化.docxVIP

  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文档。上传文档
查看更多
高相联度cache的性能分析与优化 1 虚拟多体cache的提出和实现 在过去10年中,cpu速度显著增加,平均每年增加55%。但是主存速度的提高却慢得多,例如,DRAM的速度每年只提高约7%。因此,CPU和主存之间在性能上的差距越来越大。现代计算机一般都采用Cache来解决这个问题。 在影响Cache性能的诸多因素中,相联度是非常重要的一个。相联度是指当一个数据块从主存调入Cache时,Cache中可用于存放该数据块的位置(称为候选位置)的个数。普遍采用的直接映象Cache的相联度为1,其主要优点是命中时间小,但其失效率较高。而组相联(相联度≥2)Cache则相反,其优点是失效率低,Hill和Smith指出,与直接映象相比,两路组相联(相联度为2)可以把失效次数减少30%。但其命中时间较长,并因此常导致CPU的时钟周期变长(因为大多数微处理器的访问Cache是处于关键通路上)。 近年来,人们一直在致力于研究既能获得具有较低的失效率,又能保持命中时间小(与直接映象Cache相同)的特点的Cache,并已提出了一些方案。但这些方案的相联度都只是接近于2,没有解决高相联度的高效实现问题。 相联度越高,失效率就越低,而且高相联度在许多情况下是非常重要的,例如当失效开销较大或当存储器互连访问延迟较大时。在多处理机中,这两种情况都可能发生。在单处理机中,当仅有一级Cache,而Cache与存储器的速度差距又较大时,会出现失效开销较大的情况。此外,高相联度还能减少发生Cache抖动的可能性,当重复访问m个映象到同一组(设相联度为n)的不同块时,若nm,就有可能会导致抖动。增大n能有效地减少抖动。 文章提出了一种能高效地实现高相联度的方案———虚拟多体Cache,这种方案既能有效地实现高相联度,又能保持接近于直接映象Cache的命中时间。文中首先对相关的工作进行了分析,然后论述虚拟多体Cache的思想和两种具体实现方案———顺序虚拟多体Cache(SMC-Cache)和并行虚拟多体Cache(PMC-Cache)。最后,对方案进行了性能评价。文中介绍了性能参数,并对模拟结果进行了分析。 2 伪相联cache与psacache 近年来,人们提出了不少改进Cache性能的方案,其中与文中工作关系较大的有:Hash-Rehash Cache,伪相联Cache,PSA Cache,MRU Cache等。 Hash-Rehash Cache所能实现的相联度为2。对于每一次Cache访问,采用位选择算法确定两个候选位置:第一个位置的地址通过直接从该访问的块地址的低位截取获得,第二个位置的地址则是通过把第一个位置的地址的最高位变反而求得。伪相联Cache和PSA Cache也是按这种映象规则确定其候选位置。 Hash-Rehash Cache按“第一候选位置→第二候选位置”的顺序查找,若在第一个位置上命中,则把相应的数据送给CPU,访问结束;否则检测第二个位置。若在第二个位置上命中,则把在这两个位置上的块对调。但是,若在这两个位置上都失效,就需从存储器调块。伪相联Cache是Hash-Rehash Cache的改进,主要区别是它给每个位置增设了一个称为Rehash的标志位。当处理Cache访问时,若第一个位置的Rehash位为“1”,则不必再往下查找。这样便可过滤掉不必要的查找。与伪相联Cache相比,PSA Cache的主要区别是利用访存指令的相关信息预测出第一候选位置的地址(查表)。 上述三种都是相联度接近于2的方案。模拟结果表明,在失效率上,Hash-Rehash Cache比两路组相联Cache高一些,伪相联Cache非常接近于(但大于)两路组相联Cache,而PSA Cache则与两路组相联Cache相同。在平均访问时间上,则是伪相联Cache最小。因此,在后面的性能分析中,只与伪相联Cache进行比较。 在相联度大于2的组相联Cache实现方面,目前已提出的方案主要有两种MRU Cache(MRU是Most Recently Used的缩写):一种是由Kessler等人提出,另一种则是由Chang等人提出。 在Kessler的方案中,对于同一组中的各候选位置是按某种顺序依次串行检查的。这种顺序由一个称为MRU表的表格给出。由于在每次访问Cache(进行搜索)之前,都需先用有效地址作为索引从MRU表中读取相应的MRU信息,所以会延长Cache访问周期,或者需要专门留出一个周期用于访问MRU表。因此,中指出,这种方案对一级Cache不合适。 Chang的MRU Cache主要是在传统4路组相联的基础上增加了前瞻性地提供数据的机制。在这种方案中,MRU信息(设置有一个MRU表)被用来猜测性地从4个候选数据中选出一个送给CPU,并同时进行标识的比较

文档评论(0)

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

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

1亿VIP精品文档

相关文档