程序结构和程序执行

有两个方法来实现条件分支,一个是条件控制来实现条件分支,另一个是条件传送来实现条件分支。

int max(int a, int b)//条件控制
{          
    if(a>b)
        return a;
   else   return b; }

像 x > y的结果对处理器来说非常不可预测,即使最精密的分支预测硬件也只有50%的概率预测正确。

int max(int a, int b)//条件传送
{
      int A = a; int c = A<=b;
      if(c)
        A = b;
      return A; }

 

一般来说,同样功能的代码,条件传送要比条件控制性能好一些。这是因为处理器在遇到条件跳转时,只有当分支条件求值结束后才能决定分支往那边走。处理器采用非常精密的分支预测逻辑来猜测每条跳转指令是否会被执行,只要猜对了,指令流水线就会充满指令。可是一旦猜错了,则流水线后面的指令都要被推迟执行。

条件传送比条件控制的优越性在于处理器无需预测测试的结果就可以执行条件传送,处理器只需读源值,检查代码,然后要么更新目的寄存器,要么保持不变。

转载于:https://www.cnblogs.com/area-h-p/p/11585951.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值