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

问题描述

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

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

望大神解析~

解决方案

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

时间: 2025-01-01 11:35:36

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

tcpip-TCPIP详解卷一第二版中关于TIME_WAIT态的问题

问题描述 TCPIP详解卷一第二版中关于TIME_WAIT态的问题 在TCPIP详解卷一第二版英文版的第622页, 作者描述了一个使用SO__REUSEADDR来实现地址复用的例子, 在例子的第一行,作者输入了两次"sock -A -v -s 6666",这里输入两次有什么深意吗? 之后作者又输入了"sock -b 32840 -v 127.0.0.1 6666"代表本地客户端从32840端口连接到本地的6666端,这里直接就提示地址被使用,这是什么原因?这个端口与

Windows Phone 7 界面设计与交互指南第二版中英译本

自微软揭开Windows Phone 7 以来,已经受到外界大量关注.其与众不同的Metro设计风格使它个性十足.而诺基亚与微软的合作也让大家拭目以待. 去年微软发布了第二版Windows Phone 7的界面设计与交互指南.笔者本以为这只是对此前发布的CTP(微软内部的预览版)版本做了些许补遗,于是打算快速做一个中文增订本.可是入手以后才发现这次的第二版增加了大量新内容,并且对之前的内容做了大幅修改. 于是两周之后,这本全新的中英对照的Windows Phone 7设计指南才得以问世.本指南详

risc-关于《深入理解计算机系统》中 CISC 和 早期的RISC 的区别

问题描述 关于<深入理解计算机系统>中 CISC 和 早期的RISC 的区别 <深入理解计算机系统>(中文第2版)中236页对比 CISC 和 早期的RISC 的区别中有这样一段:CISC:对机器级程序来说实现细节是不可见的.ISA 提供了程序和如何执行程序之间的清晰的抽象.早期的RISC:对机器级程序来说实现细节是可见的.有些 RISC 机器禁止某些特殊的指令序列,而有些跳转要到下一条指令执行完了以后才会生效.编译器必须在这些约束条件下进行性能优化. 解决方案 这个真的很有难度,

《Android 应用案例开发大全(第二版)》——6.7节获取第三方程序中可调用的窗口

6.7 获取第三方程序中可调用的窗口 Android开发权威指南(第二版) 第X问1 源代码目录:src/ch06/InvokeSinaWeibo 现在很多程序中使用的功能并未包含在程序本身,都是通过各种插件方式获得的其他程序的资源.例如,经常会使用到的"分享"功能就是调用了系统中所有可以处理某类资源的窗口来实现的,如果这样的窗口多于一个,就会显示一个选择列表. 如果想利用其他程序中的资源,首先要了解程序对外的接口.但很多程序并没有公开相应的接口,在这种情况下,就需要通过该程序的APK

C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题

问题描述 C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题 /* Note:Your choice is C IDE */ #include "stdio.h" #define MAXHIST 15 //柱状图长度 #define MAXWORD 11 //单词长度 #define IN 1 #define OUT 0 void main() { int c,i,nc,state; int len; int maxvalue; //wl[]的最大值 int

深入理解计算机系统-之-内存寻址(六)--linux中的分页机制

linux的分页机制 四级分页机制 前面我们提到Linux内核仅使用了较少的分段机制,但是却对分页机制的依赖性很强,其使用一种适合32位和64位结构的通用分页模型,该模型使用四级分页机制,即 页全局目录(Page Global Directory) 页上级目录(Page Upper Directory) 页中间目录(Page Middle Directory) 页表(Page Table) 页全局目录包含若干页上级目录的地址: 页上级目录又依次包含若干页中间目录的地址: 而页中间目录又包含若干页

OSGi原理与最佳实践(精选版)中第二个例子 找不到org.mortbay.jetty 这个Bundle 求解决办法??

问题描述 OSGi原理与最佳实践(精选版)中第二个例子找不到org.mortbay.jetty这个Bundle求解决办法?? 解决方案 解决方案二:看下下面帖子配置http://blog.sina.com.cn/s/blog_9671d5180101r5dg.html

head first c#-Head First C#第二版 在C#程序中添加一个.sdf项目

问题描述 Head First C#第二版 在C#程序中添加一个.sdf项目 ![图片说明](http://img.ask.csdn.net/upload/201508/03/1438578490_69763.jpg 本人C#新人 用<Head First C#>学习时 ,有一页让人在一个C#项目中新建一个.sdf项目 但是我找不到后缀名为.sdf的文件 求指点 本人安装了微软官方的vs2013 和SQL Server 2008 但是这两个怎样使用不是很了解 怎样连接不是很懂 希望懂得大神能详

拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜. 整体来说 Python 核心 部分是主要内容,高级主题 部分作为应用扩展内容.后半部分篇幅较短,内容不够深入,只到了解的层面,好在横向够广(每一个主