计算机系统结构-4-指令级并行答辩.ppt

  1. 1、本文档共147页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1 指令级并行的概念 4.2 指令的动态调度 4.3 控制相关的动态解决技术 4.4 多指令流出技术;4.1 指令级并行的概念;1.流水线处理器的实际CPI;2. 本章要研究的技术以及它们所克服的停顿;3.几个概念;最基本的开发循环级并行的技术 指令调度(scheduling)技术 循环展开(loop unrolling)技术 换名(renaming)技术 ;4.1.1 循环展开调度的基本方法;3. 本章使用的浮点流水线的延迟;例4.1 对于下面的源代码,转换成DLX汇编语言,在不进行指令调度和进行指令调度两种情况下,分析代码一次循环的执行时间。 for (i=1; i<=1000; i++) x[i] = x[i] + s;;解:(1) 变量分配寄存器 整数寄存器R1:循环计数器,初值为向量 中最高端地址元素的地址。 浮点寄存器F2:保存常数S。 假定最低端元素的地址为8。 (2) DLX汇编语言后的程序 Loop: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop ;(3) 程序执行的实际时钟;(4) 指令调度以后,程序的执行情况;(5) 例子中的问题及解决方案;例4.2 体现循环展开技术的特点;解:;(1) 展开后没有调度的代码;结果分析:;(2) 对指令序列进行优化调度;结果分析:;4. 循环展开和指令调度时要注意的问题;4.1.2 相关性;1. 数据相关(data dependence);指令的相关距离(distance) 两条指令之间的指令条数。 分析数据相关的主要工作: (1) 确定指令的相关性,找到所有可能产生停 顿的地方。 (2) 确定必须严格遵守的数据的计算顺序。 (3) 确定指令的最大相关距离,确定程序中可 能的最大并行性。;2. 名相关(name dependence); 消除名相关;例:我们对例4.2编译过程进行分析,来仔细考察 换名的过程。 (1) 首先,仅仅去除4遍循环体中的分支指令, 得到以下由17条指令构成的指令序列:;;(2) 编译器可以通过对相关链上存储器访问偏移 量的直接调整,将前3条SUBI指令消除掉,从而得到下面一个14条指令构成的指令序列: ;Loop: LD F0 , 0(R1) ADDD F4 , F0 , F2 SD 0(R1) , F4 LD F0 , -8(R1) ADDD F4 , F0 , F2 SD -8(R1) , F4 LD F0 , -16(R1) ADDD F4 , F0 , F2 SD -16(R1) , F4 LD F0 , -24(R1) ADDD F4 , F0 , F2 SD -24(R1) , F4 SUBI R1 , R1 , #32 BNEZ R1 , Loop ;(3) 通过寄存器换名,消除名相关。 得到右边的指令序列: ;3.控制相关(control dependence) ; 处理控制相关的两个原则: (1) 与控制相关的指令不能移到分支指令之 前,即控制有关的指令不能调度到分支 指令控制范围以外; (2) 与控制无关的指令不能移到分支指令之 后,即控制无关的指令不能调度到分支 指令控制范围以内。 ;再考察例4.2: 假设循环展开时,循环控制分支指令没有去除, 则指令序列如下: ;Loop: LD F0 , 0(R1) ADDD F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 BEQZ R1 , Exit LD F0 , 0(R1) ADDD F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 BEQZ R1 , Exit ;4.2 指令的动态调度;4.2.1 动态调度的原理 ;为了允许乱序执行,我们将基本流水线的译码阶段 再分为两个阶段: (1)流出(Issue,IS):指令译码,检查是否存 在结构阻塞。 (2)读操作数

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档