(8.2.2)--N50-安腾高性能处理机体系结构.pptVIP

(8.2.2)--N50-安腾高性能处理机体系结构.ppt

  1. 1、本文档共46页,可阅读全部内容。
  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文档。上传文档
查看更多

10.4.1推断执行技术而安腾处理机可以通过编译优化消除条件语句中的分支指令,将该结构转化成顺序的推测执行结构:

①cmpeqP1,P2=0,x;//无条件执行:将r4寄存器的值与0比较,若相等则置推断寄存器P1为1,P2为0,否则置推断寄存器P1为0,P2为1②(P1)addm=1,m//若P1为1,则m+1送m

③(P2)addm=-1,m//若P2为1,则m-1送m

从判定流程上,似乎上面的三条语句并没有从逻辑上改变if-then-else结构的执行过程。但如果我们能够把这个例子和安腾体系结构结合起来,还是可以从这个简单的例子中体会到安腾处理机的设计思想。10.4.1推断执行技术安腾处理机设计思想首先,安腾指令系统中的每条指令都能够支持推断执行,所以第二条指令和第三条指令中的条件判断并不需要使用专门的判断指令。虽然后面两条指令是条件执行的,但整体条件判断结构不再需要分支指令。其次,指令中的推断操作的安排是由编译器在编译过程中完成的,不需要处理机在执行指令的非常短的时间内动态安排各条指令的条件执行。最后,每条指令中虽然可以指定推断寄存器,但取指令、指令译码和执行操作并不需要等到推断寄存器的取值确定后再进行。下面可以看一下传统流水线与安腾处理机比较。传统流水线与安腾处理机比较10.4.2推测技术1、存储器访问延迟与指令级并行在现代计算机体系结构中,多级存储体系能够有效提高存储系统的性能价格比。但是,在多个功能单元实现并行处理的处理机中,执行指令的速度仍然受到存储器访问速度的制约。现代RISC处理机用专用指令访问内存,取数指令往往成为影响处理机性能的瓶颈。见下图看一下取数指令对处理机并行执行指令的影响。取数指令对处理机并行执行指令的影响给出的实例显示了取数指令对处理机并行执行指令的影响。现利用具有四个并行执行单元的超标量处理机完成如下的指令序列:

①load(a)//从内存单元取数至寄存器a

②k=k+1

③i=i-1

④n=n+3

⑤q=q+a

假设所有的算术运算指令可以在一个时钟周期中完成,而访存指令需要三个时钟周期。前四条指令可以分别安排在四个执行单元中并行执行。如果load指令所要访问的内存单元并没有被调入cache,那么load指令直接访问内存需要三个时钟周期才能执行完毕。而第五条指令依赖于load指令取得的操作数,所以在执行第五条指令之前需要等待两个时钟周期,从而所有的执行单元都必须闲置两个时钟周期,这就大大降低了执行效率。10.4.2推测技术2、控制推测解决处理机访存延迟的办法就是将访存操作尽可能提前执行。在安腾处理机中,控制推测技术用于解决上述与取数指令有关的控制相关问题。3、数据推测

控制推测技术能够解决分支和取数操作中的控制相关,但在指令优化过程中还可能存在数据相关。【例3】考察下面包含分支与取数指令的程序段:if(r3=0)

thenr2=r2+1elser1=[r3]

其功能是判断指针寄存器r3的值是否为零:若是则将寄存器r2加1;否则将r3指向的内存单元的内容加载到寄存器r1中。其原始汇编代码如下:

①cmp.eqP1,P2=0,r3;//无条件执行:将r3寄存器的值与0比较,若相等则置推断寄存器P1为1,P2为0,否则置推断寄存器P1为0,P2为1

②(P1)addr2=1,r2//若P1为1,则r2+1送r2③(P2)ld8r1=[r3]//若P2为1,则以r3的内容为地址访存.,8字节操作数被加载至寄存器r1.为了减少访存延迟,希望将第3条取数指令提前至第1条指令的前面,或是更早的位置。但第3条指令是推断执行的,其实际结果只有在P2为真的情况下才会被真正存储。如果第3条指令固执行错误而引起异常处理,但最后发现该取数指令实际上并不需要执行,那么将浪费大量时间。

安腾体系结构采用的控制推测技术对此的解决方案由编译器将一条取数指令分解为两条指令:

(1)推测取数指令(loads),可以提前到适当位置先期执行取数操作,但如果需要进行异常处理时,并不真正调用操作系统的异常处理例程,而仅仅设置一个与被装入寄存器相关联的标志。这一标志就是每个通用寄存器中64位以外的延迟异常标记(NaT)位。

(2)推测检查指令chks),安排在原来的取数指令位置,也即真正使用数据之前的位置。chks指令检查被装入的寄存器的延迟异常标记位:如果有未被执行的异常处理,则转入异常处理程序;否则,处理机将loads指令的执行结果保存,并继续执行下一条指令。【例4】按照上面的处理方式,安腾的编译器将对例3的汇编代码进行优化①1d8.Sr1=

文档评论(0)

恬淡虚无 + 关注
实名认证
文档贡献者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档