超标量流水线多发射策略教学要点与教学方法探讨.docVIP

超标量流水线多发射策略教学要点与教学方法探讨.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
超标量流水线多发射策略教学要点与教学方法探讨   摘要:计算机系统结构课程中超标量流水线的多发射策略是教学的重点和难点,文章介绍在讲授多发射策略时遇到的指令发射过程和数据写回过程方面的问题,提出在教材的基础上引入了带有先行窗口的双发射超标量流水线、重排序缓冲器和调度栈等实例,既充实了超标量流水线的内容,又有效地化解了教学难点。   关键词:计算机系统结构;超标量流水线;多发射策略;重排序缓冲器;调度栈      计算机系统结构是一门从组织和结构的角度上学习和领会计算机系统的课程,是计算机专业学生的一门重要专业基础课。现代的计算机系统结构中几乎处处都包含着不同层次的并行处理的概念和技术,计算机系统结构课程中很重要的一部分内容就是介绍不同层次和不同类型的并行性。超标量流水线是课程的重要内容,特别是超标量流水线引入了真正意义上的指令级并行性,因此超标量也是课程的一个教学难点。学生从完全串行的环境进入到并行处理的新环境,对其最大的困难是转变看问题和理解问题的观念,真正学会从并行的角度思考问题。   近十年来,天津大学计算机科学与技术学院一直采用由William Stallings编写的《Computer Organization and Architecture Designing for Performance》英文原版书作为教材[1]。在该教材中,以双发射超标量流水线为例介绍了三种指令多发射策略,即:按序发射-按序完成(IIIC: In-order Issue and In-order Completion)策略,按序发射-无序完成(IIOC: In-order Issue Out-of-order Completion)策略,无序发射-无序完成(OIOC: Out-of-order Issue Out-of-order Completion)策略。本文结合在超标量流水线多发射策略教学过程中遇到的几个问题进行讨论。   1教学要点与问题   1.1IIIC的要点与问题   按照教材中的介绍,IIIC策略中的要点有两个方面:一是前一次发射的指令没有完成时,后面的指令不能发射执行;二是一次发射的指令同时执行写回操作。   从图1中译码(Decode)段可以看到,在第2个周期末指令I3和指令I4就已经完成了指令译码工作,但是指令I3直到第4个周期才开始执行。其原因是上一次发射的指令中I1直到第3个周期末才执行完。在上一次发射的指令没有执行完之前,新的指令不能发射。这就是按序发射、按序完成策略中的一个约束和要求。   从图1中写回(Write)段的第4、第6和第8个周期可以看到,指令I1和指令I2同时执行写回操作,指令I3和指令I4同时执行写回操作,指令I5和指令I6同时执行写回操作。      讲完这一段内容后,学生们经常会提出如下两个问题:为什么在按序发射、按序完成策略中,I3和I4并没有按照I3先执行写回操作,I4后执行写回操作的顺序执行,而是等到I3和I4都执行完后,一同执行写回操作?“两条指令同时执行写回操作”与字面上理解的“按序完成”并不一样,这样做还是按序完成吗?为什么不能在I3完成后就执行写回操作?   1.2IIOC的要点与问题   按照教材中的介绍,IIOC策略中的要点有两个方面:一是可以在前一次发射的指令没有完成时可以发射后面的指令,只要指令间没有相互约束就行,虽然也是按序发射,但是与按序发射、按序完成策略有所不同;二是只要指令执行完并且不存在数据冲突就可以执行写回操作。   从图2中译码(Decode)段可以看到,在第2个周期末指令I3和指令I4完成指令译码工作,紧接着指令I3在第3个周期就开始执行,没有任何等待。从图2中写回(Write)段可以看到,在第3个周期I2执行写回操作,第4个周期I1执行写回操作,明显是无序完成。      讲完这一段内容后,学生们经常会提出如下问题:在IIIC策略中,当前一次发射的指令没有执行完时,后面的指令不能发射执行;而在IIOC策略中,当前一次发射的指令还没有执行完时,后面的指令只要准备好了就可以发射。为什么同是按序发射,执行的发射条件和过程却不一样?   1.3OIOC的要点与问题   在OIOC策略中首先要澄清的概念是取指令的顺序只能按照程序在内存中的顺序取,无序发射并不是无序取指令!指令的无序发射是借助流水线中的窗口(Window)实现的。   从图3中可以看出,在第3个周期尽管I4未被执行,但是I5和I6指令仍执行了译码操作。在第4个周期窗口(Window)中存放了三条指令,即第3个周期未发射出去的指令I4和在第3个周期译码的指令I5和指令I6。从图3的执行段(Execute)可以看到I6在第4个周期执行,而I5在第5个周期执行,即

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档