- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 多线程使多个线程以重叠的方式共享单个处理器的功能单元。 7.6 同时多线程 为实现共享,处理器必须保存各个线程的独立状态。 硬件必须能够较快地完成线程间的切换。线程的切 换应该比进程的切换要高效的多,进程的切换一般 需要成百上千个处理器时钟周期。 第7章 多处理机 第一种方法:细粒度多线程技术 它在每条指令间都能进行线程的切换,从而导 致多个线程的交替执行。 主要优点:能够隐藏由任何或长或短的阻塞带来的 吞吐率的损失 主要缺点:减慢了每个独立线程的执行 目前有两种主要的多线程实现方法 7.6 同时多线程 第二种方法:粗粒度多线程技术 粗粒度多线程之间的切换只在发生代价较高、 时间较长的阻塞出现时。 缺点:不能有效地减少吞吐率的损失。 原因:由粗粒度多线程的流水线建立时间的开销造 成的。由于实现粗粒度多线程的CPU只执行单个线 程的指令,因此当发生阻塞时,流水线必须排空或 暂停。阻塞后切换的新的线程在指令执行产生结果 之前必须先填满整个流水线。 7.6 同时多线程 7.6.1 将线程级并行转换为指令级并行 同时多线程技术是一种在多流出、动态调度处理器上开发线程级并行和指令级并行的改进的多线程技术。 1. 产生的主要原因 现代多流出处理器通常含有多个并行的功能单元, 而单个线程不能有效地利用这些功能单元。 通过寄存器重命名和动态调度机制,来自各个独立 线程的多条指令可以同时流出,而不考虑他们之间 的相互依赖关系;其相互依赖关系将通过动态调度 机制得以解决。 7.6 同时多线程 2. 一个超标量处理器在以下几种配置时其性能的差别 支持多线程技术的超标量处理器 由于缺乏足够的指令级并行而限制了流出槽 的利用率。 支持粗粒度多线程的超标量处理器 通过线程的切换部分隐藏了长时间阻塞带来 的开销。由于只有当发生阻塞时才进行线程切换, 新线程还需要流水线建立时间,所以会产生一些 完全空闲的时钟周期。 7.6 同时多线程 支持细粒度多线程的超标量处理器 线程的交替执行消除了完全空闲的流出槽。由于在每个时钟周期内只流出一个线程的指令,指令级并行的限制仍然导致一个时钟周期内存在不少的空闲流出槽。 支持同时多线程的超标量处理器 通过在一个时钟周期内调度多个线程使用流出槽,从而同时实现线程级并行和指令级并行。 理想情况下,流出槽的使用率只受限于多个线程对资源的需求和可用资源间的不平衡。 7.6 同时多线程 图7.16: 超标量处理器中的4种不同的流出槽使用方法 开发的基础: 使用动态调度技术的处理器已经具有 了开发线程级并行所需的硬件设置。 动态调度超标量处理器有大量的虚拟寄存器组,可 以用来保存每个独立线程的寄存器状态。 由于寄存器重命名机制提供了唯一的寄存器标识符, 多个线程的指令可以在数据路径上混合执行,而不 会导致各线程间源操作数和目的操作数的混乱。 多线程技术可以通过在一个乱序执行的处理器上为 每个线程设置重命名表、保留各自的PC值、提供多 个线程的指令结果提交的能力来实现。 7.6 同时多线程 7.6.2 同时多线程处理器的设计 同时多线程只有在细粒度的实现方式下才有意义 并发多个同优先级的线程必然拉长单个线程的执 行时间 通过指定一个优先线程来减小这种影响,从 而在整体性能提高的同时对单个指定的线程性能 只产生较小的影响。 7.6 同时多线程 多个线程的混合执行将不可避免地影响单个线程 的执行时间 为提高单个线程的性能,应该为指定的优先线程尽可能多地向前取指,并且在分支预测失效和预取缓冲失效的情况下清空取指单元。但是这样限制了其他线程可用来调度的指令条数,从而减少了吞吐率。所有的多线程处理器都必须在这里寻求一种折衷方案。 7.6 同时多线程 只要一有可能,处理器就运行指定的优先线程。 从取指阶段开始就优先处理优先线程 只要优先线程的指令预取缓冲区未满,就为它 优先取指。只有当优先线程的缓冲区填满以后才为 其他线程预取指令。 当有两个优先线程时,需要并发预取两个指令流, 这给取指部件和指令cache的设置都增添了复杂度。 7.6 同时多线程 设计同时多线程处理器时面临的其他主要问题 指令流出单元也要优先考虑指定的优先线程,只有 当优先线程阻塞不能流出的时候才考虑其他线程。 设置用来保存多个上下文所需的庞大的寄存器文件 必须保持每个时钟周期的
您可能关注的文档
最近下载
- 角色模型制作综合规范.pdf VIP
- 汛期居民转移安置点疫情防控工作方案.doc VIP
- 最新BG201使用说明书20121024.pdf VIP
- 车辆维修定点服务项目投标方案(技术标).pdf
- 政府招聘人员协议书.docx VIP
- 2022电网生产调度系统检修工程预算编制与计算方法.docx VIP
- 吸入用一氧化氮-药品临床应用解读.pptx VIP
- Unit 1 Helping at home Part A 第1课时课件2025-2026学年度人教PEP英语四年级上册.pptx VIP
- 《GB3095-2012 环境空气质量标准》.pdf VIP
- GB21148-2020 足部防护 安全鞋.pdf VIP
文档评论(0)