- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统结构第四章
第四章 指令级并行 4.1 指令级并行的概念 4.2 指令的动态调度 4.3 动态分支预测技术 4.4 多指令流出技术 4.5 循环展开和指令调度 4.1 指令级并行的概念 几乎所有的处理机都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。 (ILP:Instruction-Level Parallelism) 本章研究:如何通过各种可能的技术,获得更多的指令级并行性。 硬件+软件技术 必须要硬件技术和软件技术互相配合,才能够最大限度地挖掘出程序中存在的指令级并行。 4.1 指令级并行的概念 流水线处理机的实际CPI 理想流水线的CPI加上各类停顿的时钟周期数: CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据冲突 + 停顿控制冲突 理想CPI是衡量流水线最高性能的一个指标。通过减少右边各项,就能减小总的CPI,从而提高IPC。 IPC:Instructions Per Cycle (每个时钟周期完成的指令条数) 4.1 指令级并行的概念 1. 循环级并行: 使一个循环中的不同循环体并行执行。 开发循环体中存在的并行性是指令级并行研究的重点之一 最基本的开发循环级并行的技术 循环展开(loop unrolling)技术 采用向量指令和向量数据表示 2. 相关与流水线冲突 静态指令调度 动态指令调度 4.1 指令级并行的概念 3. 对于正确地执行程序来说,必须保持的最关键的两个属性是:数据流和异常行为。 数据流:指数据值从其产生者指令到其消费者指令的实际流动。 保持异常行为是指:无论怎么改变指令的执行顺序,都不能改变程序中异常的发生情况。 即原来程序中是怎么发生的,改变执行顺序后还是怎么发生。 弱化为:指令执行顺序的改变不能导致程序中发生新的异常。 4.2 指令的动态调度 内容回顾: 相关 相关是指两条指令之间存在某种依赖关系,是程序固有的一种属性。 相关包括:名相关,数据相关,控制相关。 冲突( HAZARDS,也称为冒险) 冲突是指由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。 具体一次相关是否会导致实际冲突的发生以及该冲突会带来多长的停顿,则是流水线的属性。 流水线冲突包括:结构冲突,数据冲突,控制冲突。 4.2 指令的动态调度 3. 冲突的解决 1)结构冲突:停顿(流水线气泡) 2)数据冲突: 定向传送技术 定向传送与停顿相结合 指令调度(依靠编译器): 前提:在乱序流动的流水线中。 不足:可能会产生新的WAR或WAW冲突。 3)控制冲突: 预测分支失败 预测分支成功 延迟转移技术 4.2 指令的动态调度 静态调度 依靠编译器对代码进行静态调度,以减少相关和冲突。 它不是在程序执行的过程中,而是在编译期间进行代码调度和优化。 通过把相关的指令拉开距离来减少可能产生的停顿。 动态调度 在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。 4.2 指令的动态调度 一、动态调度的基本思想 考虑下面一段代码: DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F12,F6,F14 SUB.D指令与DIV.D指令关于F4相关,导致流水线停顿。 ADD.D指令与流水线中的任何指令都没有关系,但也因此受阻。 4.2 指令的动态调度 在前面的基本流水线中: 4.2 指令的动态调度 为了允许乱序执行,我们将5段流水线的译码阶段再分为两个阶段: 流出(Issue,IS):指令译码,检查是否存在结构冲突。 (in-order issue) 读操作数(Read Operands,RO):等待数据冲突消失,然后读操作数。 (out of order execution) 4.2 指令的动态调度 有的代码在采用乱序执行后可能会发生WAR冲突和WAW冲突。 例如,考虑下面的代码 DIV.D F4, F0, F2 SUB.D F10, F4, F6 ADD.D F6, F8, F14 DIV.D F10, F1, F3 4.2 指令的动态调度 二、Tomasulo算法 1.基本思想 核心思想: 记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小; 通过寄存器换名来消除WAR冲突和WAW冲突。 4.2 指令的动态调度 IBM 360/91首先采用了Tomasulo算法。 IBM 360/91的设计目标是基于整个360系列的统一指令集和编译器来实现高性能,而不是设计和
您可能关注的文档
- 计算机的发展及应用.ppt
- 数控技术4.2.ppt
- 苹果双系统安装教程.ppt
- 软件架构设计2008_温昱的演讲.ppt
- 03.防火分隔设施.ppt
- 浙江省台州市2010-2011学年高一上学期期末考试信息技术试题.doc
- 微型计算机的应用形态.ppt
- 大一期末计算机模拟考试7.doc
- 第11章典型光电系统的分析与设计.ppt
- 第二讲 个人电脑安全.ppt
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
文档评论(0)