多处理器系统内存读写效率探究

多处理器系统内存读写效率探究

ID:31774806

大小:60.90 KB

页数:8页

时间:2019-01-18

多处理器系统内存读写效率探究_第1页
多处理器系统内存读写效率探究_第2页
多处理器系统内存读写效率探究_第3页
多处理器系统内存读写效率探究_第4页
多处理器系统内存读写效率探究_第5页
资源描述:

《多处理器系统内存读写效率探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、多处理器系统内存读写效率探究摘要:通过分析存储器的层次结构,引出了从单处理器系统到多处理器系统存储器层次结构的新问题,即高速缓存一致性的问题。因此,在多线程同时对共享内存进行读写操作时,Cache缺失和多处理器数据不一致会带来的相应的内存读写性能损耗。该文基于这个问题,设计了面向多线程内存读写延时的内存读写效率的测试方法。并通过的实验,指出了绑定同一个处理器,会使得对共享内存数据访问的效率提高。并基于这个测试结果给出了对并行程序的优化建议。关键词:多处理器系统;内存性能;性能评估中图分类号:TP316文献标识码:A文章编号:1009-3044(2012)36-8814-04从单处

2、理器系统到多处理器系统,是一次里程碑式的飞跃。而随着电子器件成本的减少,多核系统的应用也变得越来越广泛。但是,多处理器系统比单处理器系统更负责,从而带来了很多问题。在现在在单机系统中比较流行的SMP多核结构,在内存性能上,与单处理器系统就有很大不同。其中比较重要的一项就是高速缓存的数据一致性[1]。高速缓存的数据一致性问题表现在程序上,就是当多处理器并行的处理同一个内存中的数据,会造成L2Cache的缺失,从而使得高速缓存的同步消耗掉一定的性能。而在以前的很多测试方法中,是没有考虑在不同处理器上访问同一个内存的性能损耗,比如Lmbench测试套件⑵,Lmbench是对内存从低地址

3、到高地址,依次测量不同地址位的读写延时,而没有考虑并行状态下,数据同步的开销。该文考虑到多处理器在数据一致性上的开销,以及L2Cache缺失率的影响,提出一种面向多线程内存读写延时的内存性能评估方法。1存储器的层次结构在理想情况下,编程者总是希望存储容量无限大,而访存速度又是尽量快。解决这个问题的一个较经济的方法就是采用存储器层次结构,其依据是程序访问的局部性原理和内存技术的性能价格比原则。所谓程序的局部性原理,就是认为大部分程序不是均衡的访问所有代码和数据。而内存技术的性能价格比原则是,存储技术越快,价格越低,因此存储读写越快,存储器容量越小。为了解决存储器读写速度与存储器存储

4、大小之间的矛盾,依据程序的局部性理论,计算机的学者们提出了一种较为经济的解决办法,就是存储器的层次结构。如图1所示。为了匹配CPU的高速计算,越是快速的存储器,离CPU越近,当然,考虑到性价比,存储量也越小。当CPU计算需要访问数据的时候,则在离自己最近的存储器层次读取数据。当相应的存储器层次访问不到相应的数据,则在更远更慢存储量更大的存储层次访问数据,如果依然访问不到,则再往更远的一层访问,以此类推。我们称在相应的存储器层次能访问到目标数据称为命中,不能访问到目标数据称为不命中。由于程序的局部性原理,在低层次离CPU较近的存储器层次命中的概率非常的高。在现代计算机系统中,大部分

5、程序的低层次存储器Cache命中率高达90%以上[3]。随着CPU性能的提高,存取效率和计算速度之间的不平衡性变得越来越显著,因此存储层次的重要性不断增加。例如,在1980年,微处理器是不带Cache的,但是到了2001年,处理器内部通常带有两级Cacheo随着多级存储结构的发展,数据的一致性问题也变得越来越复杂。所谓的数据的一致性问题,就是不同存储器层次数据不一致的问题。举个例子,当CPU要读写数据时,总是操作离自己最近的存储器,而当CPU改变了低层次存储器,比如Cache,中的数据时,由于存储总线的速度较慢,因此大部分的系统结构,都不会立即把Cache中相应的数据块写入高一层

6、的存储器,比如内存。那么在CPU改变Cache后,到Cache把相应数据块写入内存中这段时间。Cache中的数据和内存中的数据时不一致的。这就是多级存储层次中的数据一致性问题2多处理器的高速缓存一致性在多处理器系统中,数据的一致性问题的影响变得更为严重[4]。因为多处理器系统中,并行程序并非像单处理器系统中的“伪并行”运行,而由于多处理器能够同时执行不同的指令流,并行程序变成了“真并行”运行。而此时,数据的不一致性造成的影响会更为严重,而相对的Cache性能成为影响多处理器系统的关键资源[5-6]o举个例子,CPU1修改内存地址为A的数据,由XI变为X2o而此时CPU1发现地址A

7、的数据由于最近读写过,存在于LICache中。那么CPU1会把LICache中地址A的数据由XI修改为X2o假设此时CPU2要读地址A的数据,并且LICache中也存在地址A的数据。而由于存储器层次的数据不一致性,如果CPULICache中的数据还未来得及写回,会导致L2Cache的数据与CPU1的数据不同。进而导致CPU2中LICache中地址A上的值还是XI,并未修改为X2。这样就会造成多处理器结构中的高速缓存一致性问题。一般情况下,如果在一个存储系统中读取的任意一个数据项返

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。