- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构第四章节
第四章 指令级并行 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系列的统一指令集和编译器来实现高性能,而不是设计和
您可能关注的文档
- 【2017年整理】洪源经济适用房模板施工方案.doc
- 自动控制原理第六章节 控制系统补偿与综合1.ppt
- 【2017年整理】活塞连杆组的拆装——教案.doc
- 自动控制原理 第一章节 绪论.ppt
- 自动检测技术课后答案10第五章节-第八章节作业.ppt
- 【2017年整理】洪泽湖路施工总结修改后12.28.doc
- 绿城舟山百合公寓建筑的设计方案介绍.ppt
- 肇庆百年辛亥之旅路线的设计.ppt
- 老板油烟机3件套PK集成.ppt
- 网页的设计基本流程.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)