附录A 流水基础和中级概念.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
附录A 流水线基础和中级概念 事实上这是一个三段论的问题。 亚瑟·柯南道尔《福尔摩斯探案集》 A.1 介绍 在阅读本章之前,许多读者可能通过其他书籍(例如我们写的更加基础的书籍:计算机的组成与设计)对流水线问题有了一定的了解。由于第三章和第四章的内容在很大程度上依赖于这份材料,读者必须确保在继续阅读本书之前对本附录的内容有比较全面的熟悉和了解。当你阅读第三章的时候,你会发现回过头来看看这部分内容是非常有帮助的。 我们从流水线的基本内容开始,包括对数据相关和“冒险”的介绍,以及流水线的实现等。本节介绍基本的5级RISC流水线技术,该技术是其他附录的基础。第A.2节讲述“冒险”的问题,包括“冒险”如何引发数据相关,以及如何处理“冒险”问题等。第A.3节讲述简单的5级RISC流水线是如何实现的,主要讨论“冒险”及其处理方法。 第A.4节讨论不同体系结构和流水线技术的交互,包括相当重要的例外处理问题,以及它与流水线的交互作用。因为第A.4节是理解第三章内容的关键,所以对中断处理及中断处理之后的恢复过程不是很熟悉的读者会发现,阅读这一节是非常有用的。 第A.5节讨论基本的5级流水线如何被扩展为可以处理浮点运算的长流水线结构。第A.6节把以上的概念结合在一起,以一个实际的超流水线处理器——MIPS R4000/4400为例进行学习,该处理器包括有8级的整数流水线和浮点流水线。与之对照,在第A.7节讨论使用5级流水线的MIPS 4300系列,这个系列的产品在嵌入式系统中被广泛运用。 第A.8节介绍动态调度的概念,及用记分牌实现动态调度的方法,该方法可作为一种学习动态调度方法的捷径,同时,它也是第三章中的一个核心问题。第A.8节还对第三章提到的Tomasulo算法作了简单介绍。尽管不涉及记分牌方法也可以理解Tomasulo算法,但通过记分牌方法可以更简单和更容易地理解Tomasulo算法。 本附录的最后三节(第A.9节~第A.11节)讲述了谬误和缺陷,总结了该附录的主要思想,并提供本附录所讲述的主要观点的简要历史。 A.1.1 什么是流水线 流水线是多条指令同时执行的一种实现技术。目前,流水线已经成为高速CPU中采用的关键技术。 流水线就像装配线那样。在汽车装配线上,一辆汽车的装配过程分为很多步骤,每一个骤步完成汽车生产的一部分。在流水线中的每一个步骤与其他任何一个步骤都并行执行,尽管装配的是不同的汽车。在计算机的流水线中,流水线的每一个步骤完成一条指令的一部分。就像装配线那样,不同的步骤并行完成流水线中不同指令的不同部分。每一个步骤称为一个流水节拍或一个流水阶段。一个流水节拍与另一个流水节拍相连接形成流水线。指令从一端进入,经过这些流水节拍的处理,从另一端流出,就象汽车在装配线上的处理过程一样。 在汽车装配线上,吞吐量定义为每小时的汽车产量,它取决于汽车从装配线流出的速度。与之相似,指令流水线的吞吐量取决于指令流出流水线的速度。由于指令步紧密相连,所有的流水节拍也必须同步工作,就象装配线那样。指令沿流水线移动一次的时间间隔就是一个机器周期。因为所有指令步同时工作,所以机器时间决定于最慢的指令步。在计算机中,这个机器周期通常是一个时钟周期(有时是两个时钟周期,很少是多个),尽管时钟周期可能有多个阶段。 流水线设计者的任务是平衡各个流水节拍的长度,就象装配线设计者力争平衡每一步阶段的时间那样。如果每一步都得到最佳平衡,那么每条指令在流水线上的平均时间在最理想情况下等于: 在这种情况下,流水线的加速比等于流水线的节拍数,就好像在一个有N个装配段的流水线上,可以同时有N部汽车在装配。但是,通常的流水线加速比和流水线节拍之间不会得到这么好的平衡,而且流水线需要有一些附加的时间开销。因此,每条指令在流水线上的平均执行时间不会达到上面的最小值,尽管可以很接近。 通过以上的说明可以知道,流水线能够减少指令的平均执行时间。当你从不同角度看流水线时,这个减少量也相应有所不同。可以认为是减少了每条指令的平均时钟周期数(CPI),也可以认为是减少了时钟周期的长度,还可以认为在这两个方面都减少了。如果研究对象是一台每条指令分为多个时钟周期的机器,那么流水线可以看作是减少了CPI——这是我们将采纳的基本观点。如果研究对象是每条指令执行一个长周期,那么流水线减少的是机器的时钟周期。 流水线是一种在连续指令流中开发指令级并行性的技术。与某些加速技巧(参看第六章)相比,流水线的明显长处是:它对编程者是透明的。在本附录中,我们将首先看到一个经典的5级流水线。在其他章节中,还讨论了现代处理中采用的一些更加经典的流水线技术。在继续介绍流水线之前,我们需要一个简单的指令集,就是我们在下面要介绍的。 A.1.2 RISC指令集基础 贯穿在本书中,我们使用RISC(精简指令集计算机)体

文档评论(0)

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

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

1亿VIP精品文档

相关文档