第16章高性能微处理器的先进技术及典型结构.pptVIP

第16章高性能微处理器的先进技术及典型结构.ppt

  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文档。上传文档
查看更多
第 16 章 高性能微处理器的先进技术 及典型结构 本章主要内容 高性能微处理器的先进技术 高性能微处理器的典型结构 16.1 高性能微处理器所采用的先进技术 16.1.1 流水线中的“相关”及其处理技术 流水线技术是实现多条指令并行执行的重要技术。现在,它已成为建造高速CPU的一项基本实现技术。 流水级数为n的流水线,在理想情况下可以使处理器性能提高n倍。但是,在实际中,有一些情况会阻止指令流中的下一条指令在预定的时钟周期内执行,这种情况称为指令间的“相关”(dependency)或“险态”(hazard)。 指令间的“相关”会造成流水线的停顿,使指令不能连续不断地进入流水线,其结果是降低了流水线的工作效率。 指令间的“相关”是指后面一条指令需要等前面一条(或几条)指令的执行结果,或者要等前面的一条(或几条)指令用完它们所需要的硬件资源(如存储器)后才能执行完。也就是说,后面一条指令必须等待前面一条(或几条)指令流过流水线后才能执行完。 指令间的“相关”可分为:结构相关、数据相关和控制相关。 下面分别说明这三种“相关”的不同特性、产生原因及处理方法。 1. 结构相关 结构相关(structural dependency)亦称资源相关。它是指令流水线中在不同流水级(stage)上重叠执行的指令之间争用同一硬件资源时所产生的相关。例如,在流水线执行过程中出现访问存储器冲突就是结构相关的一个例子。 要缓解结构相关引起的流水线停顿问题,可以采用把具有访问冲突的资源配置成多套的办法来实现。例如,可以采用分开式的Cache,即由指令Cache和数据Cache分别提供指令和数据(即所谓哈佛结构),而且可以把这两个Cache的总线及存储器地址寄存器也分开成两套,使得当一条指令在某流水级上访问指令Cache时,另一条指令在其他流水级上可以在同一时间访问数据Cache。 2. 数据相关 在流水线中重叠执行的指令中,如果后一条指令依赖于前面一条指令的执行结果,就会出现数据相关(data dependency)。 在指令流水线中重叠执行的读数和写数指令之间,若要使用同一个存储单元或同一个通用寄存器时,就可能发生数据相关。这可通过下面的例子来说明。 设有相继的两条算术运算指令如下: ADD R3 , R2 , R1;(R3)+(R2)→R1 SUB R4 , R1 , R5 ;(R4)-(R1)→R5 假设采用4级流水,且分别是: 取指(F)、译码(D)、执行(E)和写结果(W),则上述两条指令在流水线中执行的时间图可能会出现如图16.1(a)所示的情况。 图16.1 数据相关及其处理方法 从图16.1(a)中可以看到,指令2从寄存器R1中取操作数是在流水级D,而指令1把结果送入寄存器R1是在流水级W。显然,指令2取操作数是在指令1把结果送入R1之前,所以指令2取来的是R1中先前(未执行指令1时)的旧内容,从而发生错误。 要解决数据相关,需要设置专门的检查数据相关的硬件,在每次取操作数时,把取数的地址同它前面正在流水线中尚未完成写数操作的所有写数指令的写数地址进行比较,如果有相同的,说明有数据相关存在,就必须采取相应措施。 就本例而言,解决数据相关最简单的办法就是推迟执行读数操作,等待相关的写数指令完成写数操作之后,再执行读数操作。如图16.1(b)所示。 从图16.1(b)可见,指令2要等待指令1在流水级W的操作完成之后才启动流水级D的操作,指令2在流水线中停顿了两个时钟周期。这种机制称为流水线互锁(pipeline interlock),是通过硬件实现的。也有的用软件(编译程序)的办法来实现。无论是通过软件还是硬件,显然,推迟执行读数操作的办法总要影响流水线的效率。为了尽量缩短数据相关时指令在流水线中停顿的时间,还有其他一些方法,在此不再详述。 共有三种类型的数据相关,分别是:先写后读相关(读-写相关),即RAW(Read After Write);先读后写相关(写-读相关),即WAR(Write After Read)和先写后写相关(写-写相关),即WAW(Write After Write)。 上面给出的例子属于“先写后读”(RAW)相关。 3. 控制相关 控制相关(control dependency)主要是由转移指令或其他能够改变程序计数器(PC)内容的指令在流水线中进行处理时引起的。以转移指令为例,如果发生转移,则流水线中在转移指令之后的指令要全部作废,需要重新按转移地址取指令后才开始执行。 转移指令又分为无条件转移和条件转移两种类型,它们对指令流水线效率产生的影响有所不同。无条件转移指令在指令译码发现它的同时已经知道了转移地址,可以较早地采取措施,因而对流水线效率的影响比条件转移指令要

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档