计算机科学丛书 计算机组成与体系结构 第4版
作者: (美)琳达·纳尔,朱莉娅·洛博著;张钢等译
出版时间:2019年版
丛编项: 计算机科学丛书
内容简介
全书揭示现代计算机的内部工作方式,采用大量真实的例子,引导读者逐步由浅入深地学习计算机体系结构的概念和理论。
目录
出版者的话
译者序
前言
第1章 绪论1
1.1 引言1
1.2 计算机的主要部件2
1.3 一个实例系统:吃力地读专业词汇3
1.4 太阳城
组织12
1.5 发展历史13
1.5.1 第零代:机械计算机(1642~1945年)13
1.5.2 第一代:电子管计算机(1945~1953年)15
1.5.3 第二代:晶体管计算机(1954~1965年)18
1.5.4 第三代:集成电路计算机(1965~1980年)20
1.5.5 第四代:超大规模集成电路计算机(1980~)20
1.5.6 摩尔定律22
1.6 计算机层次结构23
1.7 云计算:计算即服务24
1.8 冯·诺依曼模型26
1.9 非冯·诺依曼模型28
1.10 并行处理器和并行计算29
1.11 并行性:机器智能的
推动者——深蓝和沃森30
本章小结32
扩展阅读32
参考文献33
复习题34
习题35
第2章 计算机系统中的数据表示37
2.1 引言37
2.2 按位计数系统37
2.3 不同进制之间的转换38
2.3.1 无符号整数的转换38
2.3.2 小数的转换40
2.3.3 2的幂次作为基数的计数系统之间的转换41
2.4 有符号整数表示42
2.4.1 原码42
2.4.2 补码系统45
2.4.3 有符号数的移码表示49
2.4.4 无符号数与有符号数50
2.4.5 计算机、算术和布斯算法50
2.4.6 进位和溢出53
2.4.7 使用移位进行二进制乘法和除法54
2.5 浮点数表示55
2.5.1 一个简单的模型55
2.5.2 浮点运算57
2.5.3 浮点误差58
2.5.4 IEEE- 754浮点太阳城
59
2.5.5 表数范围、精度和准确度60
2.5.6 有关浮点数的其他问题61
2.6 字符编码62
2.6.1 二进制编码的十进制63
2.6.2 EBCDIC64
2.6.3 ASCII64
2.6.4 Unicode65
2.7 错误检测与纠错67
2.7.1 循环冗余校验67
2.7.2 汉明码69
2.7.3 里德-所罗门纠错码74
本章小结74
扩展阅读75
参考文献75
复习题76
习题76
特别关注:数据记录和传输的编码82
第3章 布尔代数与数字逻辑88
3.1 引言88
3.2 布尔代数89
3.2.1 布尔表达式89
3.2.2 布尔代数的基本定律90
3.2.3 化简布尔表达式91
3.2.4 求反92
3.2.5 表示布尔函数93
3.3 逻辑门94
3.3.1 逻辑门符号94
3.3.2 通用逻辑门95
3.3.3 多输入逻辑门96
3.4 数字组件96
3.4.1 数字电路及其与布尔代数的关系96
3.4.2 集成电路97
3.4.3 汇总:从问题描述到电路99
3.5 组合逻辑电路100
3.5.1 基本概念100
3.5.2 典型的组合逻辑电路示例100
3.6 时序电路105
3.6.1 基本概念105
3.6.2 时钟105
3.6.3 触发器105
3.6.4 有限状态机108
3.6.5 时序电路示例112
3.6.6 时序逻辑的应用:卷积编码和维特比检测115
3.7 电路设计119
本章小结119
扩展阅读120
参考文献120
复习题121
习题122
特别关注:卡诺图128
第4章 一个简单的计算机模型MARIE139
4.1 引言139
4.2 CPU基本知识和组织结构139
4.2.1 寄存器139
4.2.2 ALU140
4.2.3 控制单元140
4.3 总线140
4.4 时钟143
4.5 输入/输出子系统144
4.6 存储器的组成和寻址方式145
4.7 中断148
4.8 MARIE149
4.8.1 组织结构149
4.8.2 寄存器和总线150
4.8.3 指令集架构151
4.8.4 寄存器传输表示153
4.9 指令的执行过程155
4.9.1 取指-译码-执行周期155
4.9.2 中断和指令周期155
4.9.3 MARIE的I/O157
4.10 一个简单的程序157
4.11 关于编译程序的讨论159
4.11.1 编译程序的作用159
4.11.2 使用汇编语言的原因160
4.12 指令集的扩展161
4.13 关于译码的讨论:硬连线和微程序控制166
4.13.1 机器控制166
4.13.2 硬连线控制169
4.13.3 微程序控制171
4.14 实际的计算机体系结构174
4.14.1 Intel体系结构175
4.14.2 MIPS体系结构179
本章小结181
扩展阅读182
参考文献183
复习题184
习题185
第5章 仔细审视指令集架构192
5.1 引言192
5.2 指令格式192
5.2.1 指令集设计决策192
5.2.2 小端和大端方式193
5.2.3 CPU内部的存储:堆栈和寄存器195
5.2.4 操作数个数和指令长度196
5.2.5 扩展操作码199
5.3 指令类型202
5.3.1 数据传送202
5.3.2 算术运算202
5.3.3 布尔逻辑运算指令203
5.3.4 位操作指令203
5.3.5 输入/输出指令203
5.3.6 传送控制指令204
5.3.7 专用指令204
5.3.8 正交指令集204
5.4 寻址204
5.4.1 数据类型204
5.4.2 寻址方式205
5.5 指令流水线207
5.6 指令集架构实例210
5.6.1 Intel211
5.6.2 MIPS211
5.6.3 Java虚拟机212
5.6.4 ARM215
本章小结216
扩展阅读217
参考文献218
复习题218
习题219
第6章 存储器224
6.1 引言224
6.2 存储器类型224
6.3 存储器的层次结构225
6.4 高速缓存227
6.4.1 缓存映射策略229
6.4.2 替换策略240
6.4.3 有效访问时间和命中率240
6.4.4 发生缓存失效的时间241
6.4.5 缓存写策略241
6.4.6 指令和数据缓存243
6.4.7 缓存的级别244
6.5 虚拟存储器244
6.5.1 分页245
6.5.2 使用分页管理的有效访问时间250
6.5.3 汇总:使用缓存、TLB和分页技术252
6.5.4 分页和虚拟存储器的优缺点253
6.5.5 分段253
6.5.6 分段和分页的组合254
6.6 存储器管理实例254
本章小结255
扩展阅读255
参考文献256
复习题256
习题257
第7章 输入/输出和存储系统263
7.1 引言263
7.2 I/O及其性能263
7.3 阿姆达尔定律263
7.4 I/O体系结构266
7.4.1 I/O控制方法267
7.4.2 字符I/O与块I/O271
7.4.3 I/O总线操作272
7.5 数据传输模式274
7.5.1 并行数据传输275
7.5.2 串行数据传输276
7.6 磁盘技术277
7.6.1 硬盘驱动器278
7.6.2 固态硬盘280
7.7 光盘282
7.7.1 CD- ROM282
7.7.2 DVD285
7.7.3 蓝光光盘286
7.7.4 光盘记录方式286
7.8 磁带287
7.9 RAID290
7.9.1 RAID- 0290
7.9.2 RAID- 1291
7.9.3 RAID- 2291
7.9.4 RAID- 3292
7.9.5 RAID- 4293
7.9.6 RAID- 5293
7.9.7 RAID- 6294
7.9.8 RAID DP295
7.9.9 混合RAID系统297
7.10 数据存储的未来298
本章小结300
扩展阅读300
参考文献301
复习题302
习题303
特别关注:数据压缩308
第8章 系统软件327 8.1
引言327
8.2 操作系统327
8.2.1 操作系统的历史328
8.2.2 操作系统的设计332
8.2.3 操作系统的服务332
8.3 保护环境335
8.3.1 虚拟机336
8.3.2 子系统和分区337
8.3.3 保护环境和系统结构的演变339
8.4 编程工具340
8.4.1 汇编程序和汇编340
8.4.2 链接器342
8.4.3 动态链接库342
8.4.4 编译器344
8.4.5 解释器346
8.5 Java:以上全部346
8.6 数据库软件351
8.7 事务管理器354
本章小结356
扩展阅读356
参考文献357
复习题357
习题358
第9章 可供选择的体系结构360
9.1 引言360
9.2 RISC设备361
9.3 Flynn分类法365
9.4 并行和多处理器体系结构367
9.4.1 超标量和超长指令字368
9.4.2 向量处理器369
9.4.3 互连网络370
9.4.4 共享存储器的多处理器373
9.4.5 分布式计算375
9.5 其他的并行处理方法377
9.5.1 数据流计算377
9.5.2 神经网络379
9.5.3 脉动阵列381
9.6 量子计算382
本章小结384
扩展阅读385
参考文献385
复习题387
习题388
第10章 嵌入式系统专题390
10.1 引言390
10.2 嵌入式硬件概述391
10.2.1 太阳城
的嵌入式系统硬件391
10.2.2 可重构硬件394
10.2.3 定制设计的嵌入式硬件398
10.3 嵌入式软件概述403
10.3.1 嵌入式系统的存储器组织403
10.3.2 嵌入式操作系统404
10.3.3 嵌入式系统的软件开发406
本章小结407
扩展阅读408
参考文献409
复习题410
习题410
第11章 性能测量和分析412
11.1 引言412
11.2 计算机性能公式412
11.3 数学准备工作413
11.3.1 均值的含义413
11.3.2 统计学和语义417
11.4 基准测试418
11.4.1 时钟频率、MIPS和FLOPS419
11.4.2 综合测试基准:Whetstone、Linpack和Dhrystone420
11.4.3 SPEC基准421
11.4.4 事务处理性能委员会基准424
11.4.5 系统仿真428
11.5 CPU性能优化428
11.5.1 分支优化429
11.5.2 使用好的算法和简单代码431
11.6 磁盘性能433
11.6.1 理解问题433
11.6.2 物理因素434
11.6.3 逻辑因素434
本章小结438
扩展阅读438
参考文献439
复习题440
习题440
第12章 网络的组成和体系结构444
12.1 引言444
12.2 早期的商用计算机网络444
12.3 早期的学术和科研网络:因特网的根源和体系结构444
12.4 网络协议I:ISO/OSI统一协议447
12.4.1 一个小故事447
12.4.2 OSI参考模型448
12.5 网络协议II:TCP/IP网络体系结构451
12.5.1 IPv4452
12.5.2 IPv4的麻烦453
12.5.3 传输控制协议456
12.5.4 TCP的工作过程457
12.5.5 IPv6460
12.6 网络组成464
12.6.1 物理传输介质465
12.6.2 接口卡469
12.6.3 中继器469
12.6.4 集线器469
12.6.5 交换机470
12.6.6 网桥和网关470
12.6.7 路由器和路由471
12.7 因特网