欢迎来到天天文库
浏览记录
ID:13273053
大小:628.50 KB
页数:10页
时间:2018-07-21
《同时多线程体系cache设计与优化研究综述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、同时多线程体系Cache设计与优化研究综述摘要:在现代计算机系统中,Cache的设计对整体性能有着重要的影响。同时多线程体系中,多个线程的资源共享产生了Cache冲突问题,为了保证处理器的吞吐率,要设计一个合理的Cache结构,并进行Cache的参数进行优化的配置。本文描述了超长指令字处理器中Cache的结构,主要包括Cache的映射方法和管理方法,并利用空间压缩技术提高了Cache的容量和利用率,利用Cache的参数配置方法减少能量的消耗。关键词:同时多线程;VILW;Cache冲突;Cache优化1引言在现代计算机系统中,对存储器的设计基本上都是基于层次存储
2、体系的基本原理,大部分的存储系统可以分为四个层次:寄存器、高速缓存(Cache)、主存和外存,其中高速缓存有效地解决了处理速度和存储速度的匹配问题,成为现在计算机中的一种重要的存储技术,因此Cache的设计对计算机整体的性能有重要的影响。随着微处理器体系结构技术的不断发展,从单一指令流中开发指令级并行性已经变得越来越困难,指令发射窗口、寄存器文件等部件的设计复杂度随着规模的增大而呈指数增长,而它们带来的实际效果并不明显,因此SMT和CMP等开发任务级并行性的技术受到研究人员的关注。SMT技术是指在同一个处理器上虚拟多个逻辑处理器,每个逻辑处理器上运行一个任务(线
3、程),但它们同时共享一套执行部件。SMT能够利用流水线上由于指令并行性不足、Cache失效等问题产生的间隙,从而提升处理器的实际性能。超长指令字(VILW)[1]处理器能够同时发射多条指令,其指令调度完全依赖于编译器,硬件较简单,得益于编译技术的进步,这类处理器目前在高性能微处理器领域比较流行。尽管如此,VLIW处理器尚未发挥出全部潜力,其障碍不仅来源于程序本身,还在于诸多动态因素,如Cache失效等,SMT技术能够帮助VLIW处理器减小上述障碍的影响,使其更有效地利用资源,从而提高处理器的实际性能。多个线程之间的资源共享能够提高功能单元的利用率,随着线程数的增
4、加,处理器的吞吐率会增高,同时线程之间的资源共享也使得各线程拥有的资源相对减少,单个线程的性能下降。线程间的资源竞争体现在两个方面,一是计算单元的竞争,另一方面是存储资源Cache的竞争,Cache的竞争比较复杂,也比较难解决。多线程的资源共享使得Cache的冲突失效显著增加,冲突失效的增多不仅加大了各级Cache的负担,还会降低处理器的吞吐率,而降低冲突失效的有效方法是增大Cache的组相联度,但是在Cache容量不变的情况下,增加组相联度将不可避免地增大容量失效率,因此同时多线程体系的情况下Cache的配置是十分复杂的事情。2VILW体系的Cache结构设计
5、2.1VILW的分布式结构在VLIW体系中,连接线延迟是当前和今后制约处理器速度的重要因素,解决这个问题的一个途径是将处理器划分成叫做机群的半独立功能单元,每个机群由本地的寄存器文件,一个机群由一个本地寄存器文件和一些功能单元的集合,当L1数据Cache是集中式的时候称这个结构为局部分布式体系结构[2]。在机群内的本地通信速度要比机群间的通信快,因此分配给不同机群的指令要保证最小的全局通信量和最高的负载均衡效果。图1是一个半分布式的机群的配置图,它不仅解决了连接线延迟的问题,还可以减少电源的消耗。10图1局部分布式体系结构与门延迟相比,连接线延迟成为制约速度的决
6、定因素,通过集中的L1数据Cache很难使所有的机群都能快速访问到,Cache只能距离其中的几个机群近一点,不能满足所有的速度要求,因此分布式的数据Cache成为影响微处理器性能的关键。将L1数据Cache分割成不同的小模块,将一个模块分配给一个机群,这样访问本地的Cache模块速度会快一点。图2是这样的全分布式的机群配置图。图2全分布式体系结构2.2L1Cache映射方法数据Cache的分布式模式同时产生的问题有如何将L1数据Cache分割成不同的Cache模块,数据如何映射到这些Cache模块,新的Cache一致性问题产生,也需要一个机制来保证一致性。超标量
7、处理器在运行时确定要发射的指令条数,静态调度的超标量处理器必须检查要发射的指令间以及已发射的指令间的相关性,在静态调度的处理器(例如VLIW)上,编译器的支持可以减少由于数据冲突带来的停顿,编译器生成代码的效率直接影响整体的性能,同时需要调度指令使本地Cache访问的比例大一点。Sanchez和Gonzalez提出了一种将L1数据Cache分割成小模块并将Cache模块分配给机群的方法,为了保证Cache一致性,采用了基于Snoop的Cache一致性协议。MultiWLIW用数据依赖图来表示循环,采用摆动模调度(SwingModuleScheduling)对每个
8、节点排序,模调度中,所有
此文档下载收益归作者所有