流水线问题系统结构 .ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2020/11/24 动态转移预测的方法有很多种,预测的准确性除了与程序本身的特性有关之外,还主要与记录的历史信息的复杂程度有关。一般来说,记录的历史信息越复杂,其预测的准确性越高,当然,所需要的硬件代价也越大。 ⒊提前形成条件码 对于一般条件转移指令,转移条件码是由上一条运算型指令产生的。 对于大多数情况下,可以在运算实际开始之前或在运算中间就能产生条件码,不必等到运算完成之后。因此,只要在运算部件的入口处设置一个比较器,通过比较两个操作数的符号或阶码就能提前形成结果的正负号、是否为“0”、是否溢出等条件码。 如果能在一个时钟之内就产生条件码,则正好可以提供给下一条条件转移指令使用。 有一种用来控制循环次数的计数转移指令在条件转移指令中占有很大的比例,而且这种指令要随循环程序反复执行很多次,因此,在流水线处理机中对这种条件转移指令要作特殊处理。例如,有下面一段循环程序。 LOAD R1,NUM LOOP: … … DEC R1 BNE LOOP HELT NUM: n 对于这种循环程序中的计数转移指令,前面已介绍过两种处理方法。一种是延迟转移技术,另一种是“先行控制技术”中介绍的转移预测技术。下面,介绍在流水线处理机中经常采用的一种方法。 首先,要由编译程序在对原程序进行编译时发现这种计数转移指令。当程序中出现这种指令时,把“DEC R1”指令提前到循环体前面。这样,上面一段程序被编译成如下程序: LOAD R1,NUM LOOP: LDEC R1 … LBNE LOOP HELT NUM: n 测试“先写后读”数据相关的方法是:在流水线的读操作数功能段设置一个相联比较器,在指令读操作数之前,把源操作数地址与已经在流水线中的从读操作数功能段到写结果功能段之间的所有指令的目标地址进行比较,如果发现有一个地址是相等的,则表明发生了“先写后读”数据相关。 测试“先读后写”数据相关和“写-写”数据相关的方法是:在流水线的写结果功能段设置相联比较器,把自己的目标操作数地址分别与已经进入流水线的指令序号比自己小的源操作数地址和目标操作数地址进行比较,如果发现与某一条指令的源操作数地址相等,则说明发生了“先读后写”数据相关; 如果发现与某一条指令的目标操作数地址相等,则说明发生了“写-写”数据相关。 ⒉数据相关及其避免方法 有三种数据相关:“先写后读”、“先读后写”、“写-写”数据相关。 在处理机执行程序的过程中,只有避免了数据相关,程序执行结果的语义才是正确的。 在流水线中避免发生数据相关的方法可以分为两大类:一类是延迟执行,另一类是建立专用路径。 采用延迟执行方法避免数据相关的流水线工作时序如图5.58所示。 这种方法的优点是流水线的控制简单,缺点是流水线的吞吐率和效率低。 在指令流水线中,建立专用路径的方法如图5.57所示。 在采用顺序流动方式时,建立有这种专用数据路径的流水线工作时序如图5.61所示。 与没有建立专用数据路径的图5.58相比,指令k +2可以提前两个时钟周期执行,从而流水线的吞吐率和效率有比较大的提高。在流水线中建立专用数据路径已经成为高性能处理机普遍采用的方法。 通过建立专用路经来避免数据相关的基本原理是数据重定向。 ⒊数据重定向 在单条流水线中,建立专用路经的方法主要有两种。 ⑴对于“先写后读”数据相关,如图5.62(a)所示。 经过这样的改变后,可以避免“先写后读”数据相关,或缩短发生“先写后读”数据相关的时间。 ⑵对于“写-写”数据相关,如图5.62(b)所示。 经过这样的改变后,就可以完全避免发生“写-写”数据相关。 另外,“先读后写”数据相关一般发生在多功能流水线或有多条流水线的处理机中,在只有一个写功能段的单条流水线中一般不会发生“先读后写”数据相关。 在有多条流水线的超标量处理机中,解决“先读后写”数据相关的方法是设置一个缓冲寄存器,只要把发生相关的源存储单元中的内容复制到这个缓冲寄存器中,“先读后写”数据相关就可以避免。 下面通过一个例子说明在程序执行过程中,如何通过数据重定向来避免数据相关的,程序如下: k: LOAD F1,A k+1: FADD F1,F2 k +2: FMUL F1,F3 k +3: STORE F1,B 程序执行过程中数据流程如图5.63(a)所示。 根据上面介绍的数据重定向的基本原理,为了处理“先写后读”数据相关,专门设置了A→FADD、FADD →FMUL、FMUL →B三条专用路径,同时,撤销了F1 →FADD和F1 →FMUL的路径。 为了处理“写-写”数据相关,撤销了A →F1、FA

文档评论(0)

锦绣中华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档