(转)动态转移预测

动态转移预测

一、动态转移预测概述

1、  动态移预测的概念

  1)  动态转移预测就是利用硬件来动态地预测转移指令的转移行为,以减少转移指令对流水线性能的影响,也就是减少转移指令的转移开销。

  2)  动态转移预测相对的是静态转移预测,所谓的静态转移预测,是指在编译阶段由软件技术来实现对转移指令的预测

  3)  动态转移预测发生在程序编译之后、执行之前

 

2、  态转移预测的思想

  利用前面一条转移指令的行为去预测后面一条转移指令的行为

3、  态转移预测的实现

 1)  预测是由硬件来实现

 2)动态转移预测的实现方案

    一位转移预测缓冲器

    二位转移预测缓冲器

    相关转移预测缓冲器

    目标转移预测缓冲器

 3)具体实现方法

 设置一个用来预测转移指令转移行为的硬件,这个硬件叫做转移预测缓冲器

 转移预测缓冲器实际上是一个存储器,存放了转移指令的转移行为

 IF段取出一条转移指令时,利用转移指令的低位地址去访问转移预测缓冲器,在读出转移指令的同时也读 出了对转移指令转移行为的预测值

 

4、动态转移预测要解决的问题

动态转移预测要解决的对问题是由转移指令所引起的控制相关和控制冒险

 

5、动态转移预测的原理

在没有采用动态转移预测的流水线中,如果采用第一种实现方式,转移指令在ID流水段判断转移行为,在EX流水段计算目标地址,在MEM流水段完成转移;如果采用的是第二种方案,在ID流水段判断转移指令的转移行为、计算转移目标地址、转移完成。从上述可知,不管是采用哪种实现方案,在没有使用动态转移预测的流水线中,转移指令的转移是否成功要到ID流水段结束后才能知道。但采用动态转移预测后,在IF流水段取出指令后,利用指令的低位地址去访问转移预测缓冲器,也就是在读出转移指令的时候,对转移指令转移行为的预测值也被读出,所以在采用动态转移预测的流水线中,转移指令在IF流水段就可以知道其转移行为,也就是提前一个时钟周期知道其转移行为,所以可以减少流水线停顿。

 

6、动态转移预测的性能

1)预测的正确率

 假设一段程序有n条转移指令,在执行的时候其中有m条转移指令的预测是正确的,那么预测的正确率为m/n

2)预测错误的恢复策略

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值