- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SMT 吴江伟 1.线程级并行提出背景 1.在微处理器中开发的指令级并行不断提高,进一步开发出更多的ILP越来越难。 2.在有些程序中可能开发ILP本来就很难。 3.程序中可能有很多自然存在的更高一级的并行(在线事务处理系统、科学计算)。 2.什么是线程 线程是进程内的一个相对独立且可独立调度和指派的执行单元,比进程轻巧得多。也可以成为轻量级进程,它只拥有在运行过程中必不可少的一点资源(pc、一组寄存器、堆栈)。 3.实现多线程的关键原理基础 线程切换只需要几个时钟周期,最快可以每个时钟周期切换一次。而进程的切换一般需要成百上千个处理器时钟。 4.多线程的两种实现方法 细粒度多线程 特点:在没条指令之间都能进行线程的切换,从而使多个线程可以交替执行。通常以时间片轮转的方法实现这样的交替执行,轮转中跳过处于停顿的线程。CPU在每个时钟周期都能进行线程的切换。 优点:能够隐藏长时间和段时间停顿带来的损失。 缺点:减慢了每个独立线程的执行。 粗粒度多线程 特点:切换至发生在时间较长的停顿出现时(如:第二级Cache失效)。 优点:减少了切换次数,也不会降低单个线程的执行速度。 缺点:减少吞吐率的能力有限,特别是对于较短的停顿来说更是如此。 原因:由粗粒度多线程的流水线建立时间的开销造成的。粗粒度多线程的CPU只执行单个线程的指令,因此当发生停顿时,流水线必须排空或暂停。停顿后切换的新的线程在第一条指令执行完毕之前必须先填满整个流水线。 5.SMT和提出SMT的原因 同时多线程技术是一种在多流出、动态调度的处理器上同时开发线程级并行和指令级并行的技术。 1.现代多流出处理器通常含有多个并行的 功能单元,而单个线程不能有效利用这些功能单元。 2.通过寄存器重命名和动态调度机制,来自各个独立线程的多条指令可以同时流出,而不用考虑它们之间的相互依赖关系,其相互依赖关系通过动态调度机制得以解决。 6.同时多线程技术的开发基础 动态调度的处理器已经具备了开发线程级并行所需的许多硬件设置。 动态调度超标量处理器有一组虚拟寄存器,可以用作各独立现成的寄存器组。 由于寄存器重命名机制给各寄存器提供了唯一的标识,多个线程的指令可以在数据路径上混合执行,而不会导致个线程之间源操作数和目的操作数的混乱。 多线程可以在一个乱序执行的处理器的基础上实现,只要为每个线程设置重命名表、分别设置各自的pc并为多个线程提供指令确认的能力。 7.同时多线程处理器的一般设计原理 同时多线程只有在细粒度的实现方式下才有意义,因为动态调度超标量处理器一般都进行深度流水。 虽然细粒度调度方式会对单个线程的性能产生不利影响,但是可以通过指定优先线程来减小这种影响,既能保持多线程在性能上的优势,又对单个线程的性能影响比较小。 多个线程的混合执行不可避免地影响单个线程的执行速度。 1.为提高单个线程的性能,应该为指定的优先线程尽可能多地向前取指或者在分支指令的两条路径上都要向前取指。 2.在分支预测失效和预取缓冲失效的情况下需要清空取指单元。但是这样限制了其他线程可用来调度的指令条数,从而减少了吞吐率。 3.寻求折中方案。 8.单线程和多线程性能的平衡方法 一有可能,处理器就运行指定的优先线程。 从取指阶段开始就优先处理优先线程:只要优先线程的指令预缓冲区未满,就为它们优先取指。 只有优先线程的缓冲填满以后才为其他线程预取指令。 当有两个优先线程时,意味着需要并发预取两条指令流,这给取指部件和指令Cache增添了复杂度。 指令流出单元也要优先考虑指定的优先线程,只有当优先线程停顿不能流出的时候才考虑其他线程。 9.同时多线程处理器设计时面临的其他问题 保存多线程的现场需要设置更大的寄存器组 不能影响时钟周期,特别是在关键路径上。 需要保证由于并发执行多个线程带来的Cache冲突和TLB冲突不会导致明显的性能下降。 10.同时多线程处理器的关键部分 取指部件:取指部件关键在于其所采取的策略。基本的五种策略: (1)ICOUNT指优先从在译码, 重命名和指令队列中具有最少指令数目的某个线程中取指; (2)BRCOUNT指优先从在译码, 重命名和指令队列中具有最少分支指令数目的线程中取指; (3)MISSCOUNT指优先从具有最少正在进行的,未完成数据Cache不命中操作的线程中取指; (4)IQPOSN指位置最靠近定点或浮点队列头部的指令所属的线程优先级最低取指; (5) RR指用Round-Robin的方式从不同的线程中周期性取指,以上五种策略ICOUNT是最好的一种策略。当然各种改进的策略不断出现。 分子部分 目前同时多线程处理器采用Trace Cache技术, 它是比较先进的技术, 在
您可能关注的文档
最近下载
- 装饰装修工程投标文件技术部分.docx VIP
- 初中七年级上《综合实践》活动课程课件.pptx VIP
- 中华商业文化 课程标准.docx VIP
- 2025算法备案-算法安全自评估报告模板.docx VIP
- 三年级下册数学每日计算小纸条(含答案).pdf VIP
- T∕ZZB 1752-2020 热熔型压敏胶卷筒标签.docx VIP
- 一年级传统文化教学计划.docx VIP
- 关于《混凝土强度检验评定标准》(GB/T50107—2010)的解析.pdf VIP
- GB_T 17888.4-2020机械安全 接近机械的固定设施 第 4 部分 固定式直梯.docx VIP
- 2023年5月青少年软件编程Python等级考试五级真题(含答案和解析).docx VIP
文档评论(0)