多处理器系统内存读写效率探究.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缺失和多处理器数据不一致会带来的相应的内存 读写性能损耗。该文基于这个问题,设计了面向多线程内存 读写延时的内存读写效率的测试方法。并通过的实验,指出 了绑定同一个处理器,会使得对共享内存数据访问的效率提 高。并基于这个测试结果给出了对并行程序的优化建议。 关键词:多处理器系统;内存性能;性能评估 中图分类号:TP316文献标识码:A文章编号: 1009-3044(2012)36-8814-04 从单处理器系统到多处理器系统,是一次里程碑式的飞 跃。而随着电子器件成本的减少,多核系统的应用也变得越 来越广泛。但是,多处理器系统比单处理器系统更负责,从 而带来了很多问题。在现在在单机系统中比较流行的SMP多 核结构,在内存性能上,与单处理器系统就有很大不同。其 中比较重要的一项就是高速缓存的数据一致性[1]。高速缓 存的数据一致性问题表现在程序上,就是当多处理器并行的 处理同一个内存中的数据,会造成L2 Cache的缺失,从而 使得高速缓存的同步消耗掉一定的性能。而在以前的很多测 试方法中,是没有考虑在不同处理器上访问同一个内存的性 能损耗,比如Lmbench测试套件⑵,Lmbench是对内存从低 地址到高地址,依次测量不同地址位的读写延时,而没有考 虑并行状态下,数据同步的开销。该文考虑到多处理器在数 据一致性上的开销,以及L2 Cache缺失率的影响,提出一 种面向多线程内存读写延时的内存性能评估方法。 1存储器的层次结构 在理想情况下,编程者总是希望存储容量无限大,而访 存速度又是尽量快。解决这个问题的一个较经济的方法就是 采用存储器层次结构,其依据是程序访问的局部性原理和内 存技术的性能价格比原则。所谓程序的局部性原理,就是认 为大部分程序不是均衡的访问所有代码和数据。而内存技术 的性能价格比原则是,存储技术越快,价格越低,因此存储 读写越快,存储器容量越小。为了解决存储器读写速度与存 储器存储大小之间的矛盾,依据程序的局部性理论,计算机 的学者们提出了一种较为经济的解决办法,就是存储器的层 次结构。如图1所示。 为了匹配CPU的高速计算,越是快速的存储器,离CPU 越近,当然,考虑到性价比,存储量也越小。当CPU计算需 要访问数据的时候,则在离自己最近的存储器层次读取数 据。当相应的存储器层次访问不到相应的数据,则在更远更 慢存储量更大的存储层次访问数据,如果依然访问不到,则 再往更远的一层访问,以此类推。我们称在相应的存储器层 次能访问到目标数据称为命中,不能访问到目标数据称为不 命中。由于程序的局部性原理,在低层次离CPU较近的存储 器层次命中的概率非常的高。在现代计算机系统中,大部分 程序的低层次存储器Cache命中率高达90%以上[3]。 随着CPU性能的提高,存取效率和计算速度之间的不平 衡性变得越来越显著,因此存储层次的重要性不断增加。例 如,在1980年,微处理器是不带Cache的,但是到了 2001 年,处理器内部通常带有两级Cacheo随着多级存储结构的 发展,数据的一致性问题也变得越来越复杂。所谓的数据的 一致性问题,就是不同存储器层次数据不一致的问题。举个 例子,当CPU要读写数据时,总是操作离自己最近的存储器, 而当CPU改变了低层次存储器,比如Cache,中的数据时, 由于存储总线的速度较慢,因此大部分的系统结构,都不会 立即把Cache中相应的数据块写入高一层的存储器,比如内 存。那么在CPU改变Cache后,到Cache把相应数据块写入 内存中这段时间。Cache中的数据和内存中的数据时不一致 的。这就是多级存储层次中的数据一致性问题 2多处理器的高速缓存一致性 在多处理器系统中,数据的一致性问题的影响变得更为 严重[4]。因为多处理器系统中,并行程序并非像单处理器 系统中的“伪并行”运行,而由于多处理器能够同时执行不 同的指令流,并行程序变成了 “真并行”运行。而此时,数 据的不一致性造成的影响会更为严重,而相对的Cache性能 成为影响多处理器系统的关键资源[5-6] o 举个例子,CPU1修改内存地址为A的数据,由XI变为 X2o而此时CPU1发现地址A的数据由于最近读写过,存在 于LI Cache中。那么CPU1会把LI Cache中地址A的数据 由XI修改为X2o假设此时CPU2要读地址A的数据,并且 LI Cache中也存在地址A的数据。而由于存储器层次的数据 不一致性,如果CPU LI Cache中的数据还未来得及写回, 会导致L2 Cache的数据与CPU1的数据不同。进

文档评论(0)

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

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

1亿VIP精品文档

相关文档