piaotiejun 2014-09-24 10:44 采纳率: 0%
浏览 2204

《深入理解计算机系统》第二版中的关于条件转移的疑问

《深入理解计算机系统》第二版3.6.6条件转移指令:
这一部分讲的大概意思是不是这样:
if (statement1) {
statement2;
} else {
statement3;
}
如果statement1容易计算,那么使用数据的条件转移,将statement2,statement3计算出来,在判断statement1,通过statement1的结果决定执行statement2还是statement3;
如果statement1不容易计算,那么使用控制的条件转移,cpu做出分支预测,预测statement1的结果(现假设预测结果是进入if),那么执行statement2,执行过程中发现错误,再返回执行statement3;

望大神解析~

  • 写回答

1条回答

  • piaotiejun 2014-09-25 04:25
    关注

    问题中的理解貌似不对,其过程如下:
    if (statement1) {
    statement2;
    } else {
    statement3;
    }
    如果statement2、statement3都容易计算,那么会执行数据的条件转移,计算statement2及statement3,然后判断statement1;
    否则执行控制的条件转移,cpu做出分支预测,预测statement1的结果(现假设预测结果是进入if),那么执行statement2,执行过程中发现错误,再返回执行statement3;

    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向