《计算机体系结构基础》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:胡伟武,苏孟豪,王焕东,汪文祥,章隆兵,肖俊华,刘苏,陈新科,吴瑞阳,李晓钰著
  • 出 版 社:北京市:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111579786
  • 页数:294 页
图书介绍:本书由国内从事微处理器设计的一线科研人员编写而成。作者从微处理器设计的角度出发,充分考虑计算机体系结构的学科完整性,强调体系结构、基础软件、电路和器件的融会贯通。全书共分16章,包括指令系统结构、计算机硬件结构、CPU微结构、并行处理结构、计算机性能分析等主要内容,重点放在作为软硬件界面的指令系统结构,以及包含CPU、GPU、南北桥协同的计算机硬件结构上。本书可作为高等学校“计算机体系结构”课程的本科生教材,同时也适合相关专业研究生或计算机技术人员参考阅读。

第一部分 引言 2

第1章 引言 2

1.1 计算机体系结构的研究内容 2

1.1.1 一以贯之 2

1.1.2 什么是计算机 5

1.1.3 计算机的基本组成 6

1.2 衡量计算机的指标 8

1.2.1 计算机的性能 8

1.2.2 计算机的价格 10

1.2.3 计算机的功耗 11

1.3 计算机体系结构的发展 12

1.3.1 摩尔定律和工艺的发展 13

1.3.2 计算机应用和体系结构 17

1.3.3 计算机体系结构发展 18

1.4 体系结构设计的基本原则 20

1.4.1 平衡性 20

1.4.2 局部性 21

1.4.3 并行性 22

1.4.4 虚拟化 23

1.5 本章小结 24

习题 24

第二部分 指令系统结构 26

第2章 指令系统 26

2.1 指令系统简介 26

2.2 指令系统设计原则 26

2.3 指令系统发展历程 28

2.3.1 指令集的演变 28

2.3.2 存储管理的演变 29

2.3.3 运行级别的演变 31

2.4 本章小结 32

习题 32

第3章 指令集结构 33

3.1 地址空间 33

3.2 操作数 36

3.2.1 数据类型 36

3.2.2 访存地址 36

3.2.3 寻址方式 36

3.3 指令操作和编码 37

3.4 RISC指令集比较 38

3.5 C语言的机器表示 43

3.6 本章小结 46

习题 47

第4章 异常与中断 48

4.1 异常分类 48

4.2 异常处理 48

4.3 中断 50

4.3.1 中断的优先级和原子性 50

4.3.2 向量化中断 51

4.3.3 中断传递机制 52

4.4 本章小结 52

习题 52

第5章 存储管理 53

5.1 存储管理的原理 53

5.2 TLB的结构和使用 55

5.3 TLB异常的处理 57

5.4 本章小结 60

习题 61

第6章 软硬件协同 62

6.1 函数调用规范 62

6.1.1 MIPS ABI整数寄存器约定 62

6.1.2 MIPS ABI函数调用约定 63

6.1.3 MIPS堆栈布局 64

6.2 中断的生命周期 66

6.3 系统调用过程 67

6.4 同步与通信 68

6.4.1 基于互斥的同步机制 68

6.4.2 非阻塞的同步机制 69

6.5 本章小结 70

习题 70

第三部分 计算机硬件结构 72

第7章 计算机组成原理和结构 72

7.1 冯·诺依曼结构 72

7.2 计算机的组成部件 73

7.2.1 运算器 73

7.2.2 控制器 73

7.2.3 存储器 74

7.2.4 输入设备 77

7.2.5 输出设备 77

7.3 计算机系统硬件结构发展 79

7.3.1 CPU-GPU-北桥-南桥四片结构 80

7.3.2 CPU-北桥-南桥三片结构 81

7.3.3 CPU-弱北桥-南桥三片结构 81

7.3.4 CPU-南桥两片结构 82

7.3.5 SoC单片结构 82

7.4 处理器和IO设备间的通信 82

7.4.1 IO寄存器寻址 83

7.4.2 处理器和IO设备之间的同步 83

7.4.3 存储器和IO设备之间的数据传送 84

7.4.4 IO中断控制器 85

7.5 本章小结 86

习题 86

第8章 计算机总线接口技术 87

8.1 总线概述 87

8.2 总线分类 88

8.3 片上总线 88

8.4 内存总线 93

8.5 系统总线 99

8.5.1 HyperTransport总线 99

8.5.2 HyperTransport包格式 102

8.6 IO总线 103

8.6.1 PCIE总线 103

8.6.2 PCIE包格式 104

8.7 本章小结 105

习题 105

第9章 计算机系统启动过程分析 106

9.1 处理器核初始化 106

9.1.1 处理器复位 107

9.1.2 调试接口初始化 107

9.1.3 TLB初始化 108

9.1.4 Cache初始化 109

9.2 总线接口初始化 111

9.2.1 内存初始化 112

9.2.2 IO总线初始化 113

9.3 设备的探测及驱动加载 113

9.4 多核启动过程 117

9.4.1 初始化时的多核协同 117

9.4.2 操作系统启动时的多核唤醒 118

9.5 本章小结 120

习题 120

第四部分 CPU的微结构 122

第10章 二进制与逻辑电路 122

10.1 计算机中数的表示 122

10.1.1 二进制 122

10.1.2 定点数的表示 123

10.1.3 浮点数的表示 125

10.2 MOS晶体管工作原理 127

10.2.1 半导体 128

10.2.2 NMOS和PMOS晶体管 128

10.3 CMOS逻辑电路 130

10.3.1 数字逻辑电路 130

10.3.2 常见CMOS电路 134

10.3.3 CMOS电路延迟 136

10.4 本章小结 137

习题 137

第11章 简单运算器设计 139

11.1 定点补码加法器 139

11.1.1 一位全加器 139

11.1.2 行波进位加法器 140

11.1.3 先行进位加法器 141

11.2 减法运算实现 144

11.3 比较运算实现 145

11.4 移位器 145

11.5 本章小结 146

习题 147

第12章 定点补码乘法器 148

12.1 补码乘法器 148

12.2 Booth乘法器 150

12.3 华莱士树 154

12.4 本章小结 158

习题 158

第13章 指令流水线 159

13.1 单周期处理器 159

13.2 流水线处理器 161

13.3 指令相关和流水线冲突 164

13.4 提高流水线效率的技术 168

13.4.1 多发射数据通路 169

13.4.2 动态调度 169

13.4.3 转移预测 173

13.4.4 Cache 174

13.5 本章小结 175

习题 177

第五部分 并行处理结构 180

第14章 并行编程基础 180

14.1 程序的并行行为 180

14.1.1 指令级并行性 180

14.1.2 数据级并行性 181

14.1.3 任务级并行性 181

14.2 并行编程模型 181

14.2.1 单任务数据并行编程模型 182

14.2.2 多任务共享存储编程模型 182

14.2.3 多任务消息传递编程模型 182

14.2.4 共享存储与消息传递编程模型的编程复杂度 183

14.3 典型并行编程环境 186

14.3.1 数据并行SIMD编程 186

14.3.2 POSIX编程标准 187

14.3.3 OpenMP标准 189

14.3.4 消息传递编程接口 195

习题 198

第15章 多核处理结构 200

15.1 多核处理器的发展演化 200

15.2 多核处理器的访存结构 203

15.2.1 通用多核处理器的片上Cache结构 203

15.2.2 存储一致性模型 205

15.2.3 Cache一致性协议 207

15.3 多核处理器的互连结构 211

15.4 多核处理器的同步机制 216

15.5 典型多核处理器 221

15.5.1 龙芯3号多核处理器 221

15.5.2 Intel SandyBridge架构 222

15.5.3 IBM Cell处理器 224

15.5.4 NVIDIA GPU 225

15.5.5 Tile64处理器 227

习题 229

第六部分 系统评价与性能分析 232

第16章 计算机系统评价和性能分析 232

16.1 计算机系统性能评价指标 232

16.1.1 计算机系统常用性能评价指标 232

16.1.2 并行系统的性能评价指标 236

16.2 测试程序集 237

16.2.1 微基准测试程序 238

16.2.2 SPEC CPU基准测试程序 246

16.2.3 并行系统基准测试程序 251

16.2.4 其他常见的基准测试程序集 252

16.3 性能分析方法 253

16.3.1 分析建模的方法 255

16.3.2 模拟建模的方法和模拟器 256

16.3.3 性能测量的方法 258

16.4 性能测试和分析实例 270

16.4.1 动态执行指令的数目和分类 271

16.4.2 SPEC CPU基准测试程序的分值对比 273

16.4.3 动态执行指令数对比 274

16.4.4 IPC对比 276

16.4.5 分支误预测率和分支吞吐率对比 277

16.4.6 存储访问延迟对比 280

16.4.7 存储访问操作的并发性 281

16.4.8 并发操作性对比 282

习题 283

总结:什么是计算机体系结构 285

参考文献 293