6计算机组成原理第6章流水线原理.ppt

6计算机组成原理第6章流水线原理.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
减少分支暂停时钟周期数 减少流水线处理分支指令时的暂停时钟周期数有如下两种途径: 在流水线中尽早判断出分支转移是否成功; 尽早计算出分支转移成功时的 PC 值(即分支的目标地址)。 为了优化处理分支指令,在流水线中应该同时采用上述两条途径,缺一不可。即使知道分支转移的目标地址,而不知道分支转移是否成功对减少暂停是徒劳的;知道分支转移是否成功,而不知道分支转移的目标地址,同样对降低分支损失毫无帮助。下面让我们看看如何基于这些思想,从硬件上改进流水线,达到降低分支损失的目的。 在流水线中,分支指令通常需要测试分支条件寄存器的值是否为0,所以可以把测试分支条件寄存器的操作移到 ID 段完成,从而使得在 ID 周期末就完成分支转移成功与否的检测。   另外,由于要尽早计算出两个 PC 值(分支转移成功和失败时的 PC 值),也可以将计算分支目标地址的操作移到 ID 段完成。为此,需要在 ID 段增设一个加法器(注意,为了避免结构相关,不能用EX段的 ALU 功能部件来计算分支转移目标地址)。下图是对流水线进行上述改进后的流水线数据通路。容易看出,基于上述改进后的流水线数据通路,处理分支指令只需要一个时钟周期的暂停。 减少分支暂停时钟周期数 降低流水线分支损失的方法有许多种。前面论述了改进流水线硬件减少流水线暂停周期的方法。这里主要从编译技术的角度,论述四种降低流水线分支损失的简单方法。首先需要说明的是,这些方法对分支转移成功与否进行的预测都是静态的,并在整个程序的执行过程中保持这种预测结论,即:要么总是认为分支转移成功,要么总是认为分支转移失败。 冻结(freeze)或排空(flush)流水线的方法 在流水线中,处理分支最简单的方法是冻结或排空流水线,保持或清除流水线在分支指令之后读入的任何指令,直到知道分支指令的目标地址以及分支转移是否成功为止。这种方法优点在于其对硬件和软件的要求都十分简单,我们前面采用的就是这种方法。 预测分支失败的方法 如果流水线采用预测分支失败的方法处理分支指令,那么当流水线译码到一条分支指令时,流水线继续取指令,并允许该分支指令后的指令继续在流水线中流动。当流水线确定分支转移成功与否以及分支的目标地址之后,如果分支转移成功,流水线必须将在分支指令之后取出的所有指令转化为空操作,并在分支的目标地址处重新取出有效的指令;如果分支转移失败,那么可以将分支指令看作是一条普通指令,流水线正常流动,无需将在分支指令之后取出的所有指令转化为空操作。 预测分支成功的方法 另一种降低流水线分支损失的方法便是预测分支成功,一旦流水线译码到一条指令是分支指令,且完成了分支目标地址的计算,我们就假设分支转移成功,并开始在分支目标地址处取指令执行。 在某些流水线中,特别是那些具有隐含设置条件码或分支条件更复杂指令的流水线机器中,在确定分支转移成功与否之前,便可以知道分支的目标地址,这时采用这种方法便可以降低这些流水线的分支损失。 4.延迟分支(delayed branch)方法 为降低流水线分支损失而采用的第四种方法就是延迟分支方法。其主要思想是从逻辑上“延长”分支指令的执行时间。延迟长度为 n 的分支指令的执行顺序是:    分支指令    顺序后继指令1    ……    顺序后继指令 n    如果分支成功,分支目标处指令 所有顺序后继指令都处于分支延迟槽(branch-delay slots)中,无论分支成功与否,流水线都会执行这些指令。 基于延迟分支方法,无论分支成功与否,其流水线时空图所描述的流水线的行为是类似的,流水线中均没有插入暂停周期,从而极大地降低了流水线分支损失。从图中可以看出,实际上是处于分支延迟槽中的指令“掩盖”了流水线原来所必需插入的暂停周期。 6.6 非线性流水线调度技术 调度问题的提出: 一个任务在通过非线性流水线时对有些功能段要通过多次(非线性定义),所以容易与紧跟而来的后继任务发生设备争用。 调度机构的作用就是合理安排前后任务进入流水线的相差时间,既要避免争用,又要使相差时间尽可能少,以提高吞吐率。 1. 非线性流水线的表示 一条非线性流水线一般需要一个各功能段间的连接图和一张预约表共同表示。 下图是一条4个功能段组成的非线性流水线,它有从S1到S4 的单方向传输线。但它有两条反馈线和一条前馈线;输出端不一定在最后一个功能段,而可能从任意一个功能段输出。 输出 输入 S1 S2 S3 S4 2. 非线性流水线的预约表 ×

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档