- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同时多线程体系Cache设计与优化研究综述
同时多线程体系Cache设计与优化研究综述
摘要:在现代计算机系统中,Cache的设计对整体性能有着重要的影响。同时多线程体系中,多个线程的资源共享产生了Cache冲突问题,为了保证处理器的吞吐率,要设计一个合理的Cache结构,并进行Cache的参数进行优化的配置。本文描述了超长指令字处理器中Cache的结构,主要包括Cache的映射方法和管理方法,并利用空间压缩技术提高了Cache的容量和利用率,利用Cache的参数配置方法减少能量的消耗。
关键词:同时多线程;VILW;Cache冲突;Cache优化
1 引言
在现代计算机系统中,对存储器的设计基本上都是基于层次存储体系的基本原理,大部分的存储系统可以分为四个层次:寄存器、高速缓存(Cache)、主存和外存,其中高速缓存有效地解决了处理速度和存储速度的匹配问题,成为现在计算机中的一种重要的存储技术,因此Cache的设计对计算机整体的性能有重要的影响。
随着微处理器体系结构技术的不断发展,从单一指令流中开发指令级并行性已经变得越来越困难,指令发射窗口、寄存器文件等部件的设计复杂度随着规模的增大而呈指数增长,而它们带来的实际效果并不明显,因此SMT和CMP等开发任务级并行性的技术受到研究人员的关注。SMT技术是指在同一个处理器上虚拟多个逻辑处理器,每个逻辑处理器上运行一个任务(线程),但它们同时共享一套执行部件。SMT能够利用流水线上由于指令并行性不足、Cache失效等问题产生的间隙,从而提升处理器的实际性能。
超长指令字(VILW)[1]处理器能够同时发射多条指令,其指令调度完全依赖于编译器,硬件较简单,得益于编译技术的进步,这类处理器目前在高性能微处理器领域比较流行。尽管如此,VLIW处理器尚未发挥出全部潜力,其障碍不仅来源于程序本身,还在于诸多动态因素,如Cache失效等,SMT技术能够帮助VLIW处理器减小上述障碍的影响,使其更有效地利用资源,从而提高处理器的实际性能。
多个线程之间的资源共享能够提高功能单元的利用率,随着线程数的增加,处理器的吞吐率会增高,同时线程之间的资源共享也使得各线程拥有的资源相对减少,单个线程的性能下降。线程间的资源竞争体现在两个方面,一是计算单元的竞争,另一方面是存储资源Cache的竞争,Cache的竞争比较复杂,也比较难解决。多线程的资源共享使得Cache的冲突失效显著增加,冲突失效的增多不仅加大了各级Cache的负担,还会降低处理器的吞吐率,而降低冲突失效的有效方法是增大Cache的组相联度,但是在Cache容量不变的情况下,增加组相联度将不可避免地增大容量失效率,因此同时多线程体系的情况下Cache的配置是十分复杂的事情。
2 VILW体系的Cache结构设计
2.1 VILW的分布式结构
在VLIW体系中,连接线延迟是当前和今后制约处理器速度的重要因素,解决这个问题的一个途径是将处理器划分成叫做机群的半独立功能单元,每个机群由本地的寄存器文件,一个机群由一个本地寄存器文件和一些功能单元的集合,当L1数据Cache是集中式的时候称这个结构为局部分布式体系结构[2]。在机群内的本地通信速度要比机群间的通信快,因此分配给不同机群的指令要保证最小的全局通信量和最高的负载均衡效果。
图1是一个半分布式的机群的配置图,它不仅解决了连接线延迟的问题,还可以减少电源的消耗。
图1 局部分布式体系结构
与门延迟相比,连接线延迟成为制约速度的决定因素,通过集中的L1数据Cache很难使所有的机群都能快速访问到,Cache只能距离其中的几个机群近一点,不能满足所有的速度要求,因此分布式的数据Cache成为影响微处理器性能的关键。将L1数据Cache分割成不同的小模块,将一个模块分配给一个机群,这样访问本地的Cache模块速度会快一点。图2是这样的全分布式的机群配置图。
图2 全分布式体系结构
2.2 L1 Cache映射方法
数据Cache的分布式模式同时产生的问题有如何将L1数据Cache分割成不同的Cache模块,数据如何映射到这些Cache模块,新的Cache一致性问题产生,也需要一个机制来保证一致性。
超标量处理器在运行时确定要发射的指令条数,静态调度的超标量处理器必须检查要发射的指令间以及已发射的指令间的相关性,在静态调度的处理器(例如VLIW)上,编译器的支持可以减少由于数据冲突带来的停顿,编译器生成代码的效率直接影响整体的性能,同时需要调度指令使本地Cache访问的比例大一点。
Sanchez和Gonzalez提出了一种将L1数据Cache分割成小模块并将Cache模块分配给机群的方法,为了保证Cache一致性,采用了基于Snoop的Cache一致性协议。MultiWLIW用数据依赖图来表示循环,采用摆动模调度(Swing Module S
您可能关注的文档
最近下载
- 《6. 观察与比较》教学设计2024-2025学年科学一年级上册教科版(2024).docx VIP
- 《基于UbD理论的小学数学单元教学设计研究》课题研究方案.doc
- 部编本小学语文3~6年级单元主题及核心素养表.docx
- 群联(PS2303PS2251-03刷ISP固件详细量产修复教程.doc
- 小班科学《风车转起来》PPT课件.ppt VIP
- 2020年工业机器人行业市场分析调研报告.docx
- 民航服务心理与实务 课件 模块4项目3 识用旅客个性心理与服务.pptx
- 第三单元名著导读《朝花夕拾——二十四孝图》知识点梳理 部编版语文七年级上册(教师版).pdf
- 间歇性导尿技术及操作步骤PPT课件.pptx VIP
- 现代工程设计制图习题集第五版王启美答案.pdf
文档评论(0)