书籍详情
计算机组成结构方法(第五版)
作者:(荷)坦嫩鲍姆 著;刘卫东 译
出版社:人民邮电出版社
出版时间:2006-07-01
ISBN:9787115148919
定价:¥65.00
购买这本书可以去
内容简介
本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。本书适合作为计算机专业本科生计算机组成与结构课程的教材或参考书,也可供相关领域技术人员参考。
作者简介
AndrewS.Tanenbaum,国际知名的计算机科学家,荷兰皇家艺术和科学院院士,荷兰阿姆斯特丹自由大学计算机科学系教授。他讲授计算机组成、操作系统和计算机组成、操作系统和计算机网络等课程30多年,学生数以千计。Tanenbaum教授编著了15本畅销书(包括《计算机网络》、《现代操作系统》等经典教材),并因此获得ACM及其他学术组织颁发的多项荣誉。他是ACM和IEEE两会会士。
目录
第1章 概述 1
1.1 结构化计算机组成 1
1.1.1 语言、层次和虚拟机 1
1.1.2 现代多层次计算机 3
1.1.3 多层次计算机的演化 5
1.2 计算机体系结构的里程碑 8
1.2.1 第零代——机械计算机(1642—1945) 9
1.2.2 第一代——电子管计算机(1945—1955) 10
1.2.3 第二代——晶体管计算机(1955—1965) 12
1.2.4 第三代——集成电路计算机(1965—1980) 14
1.2.5 第四代——超大规模集成电路计算机(1980—?) 15
1.2.6 第五代——无所不在的计算机 17
1.3 计算机家族 17
1.3.1 技术和经济的推动 17
1.3.2 计算机谱系 19
1.3.3 一次性计算机 19
1.3.4 微控制器 21
1.3.5 游戏机 22
1.3.6 个人计算机 22
1.3.7 服务器 23
1.3.8 工作站群集 23
1.3.9 大型机 24
1.4 系列计算机举例 24
1.4.1 Pentium 4简介 25
1.4.2 UltraSPARC III简介 28
1.4.3 8051简介 29
1.5 公制计量单位 31
1.6 本书概览 32
习题 33
第2章 计算机系统组成 34
2.1 处理器 34
2.1.1 CPU的组成 35
2.1.2 指令执行 36
2.1.3 RISC和CISC 38
2.1.4 现代计算机设计原则 39
2.1.5 指令级并行 40
2.1.6 处理器级并行 43
2.2 主存储器 46
2.2.1 存储位 46
2.2.2 内存编址 46
2.2.3 字节顺序 47
2.2.4 纠错码 49
2.2.5 高速缓存 51
2.2.6 内存封装及其类型 53
2.3 辅助存储器 54
2.3.1 层次存储结构 54
2.3.2 磁盘 55
2.3.3 软盘 57
2.3.4 IDE盘 58
2.3.5 SCSI盘 59
2.3.6 RAID盘 60
2.3.7 只读光盘 63
2.3.8 可刻光盘 66
2.3.9 可擦写光盘 67
2.3.10 DVD 68
2.3.11 Blu-Ray 69
2.4 输入/输出设备 69
2.4.1 总线 69
2.4.2 终端 72
2.4.3 鼠标 75
2.4.4 打印机 76
2.4.5 通信设备 80
2.4.6 数码相机 86
2.4.7 字符编码 87
2.5 小结 90
习题 91
第3章 数字逻辑层 93
3.1 门和布尔代数 93
3.1.1 门 93
3.1.2 布尔代数 95
3.1.3 布尔函数的实现 96
3.1.4 等价电路 98
3.2 基本数字逻辑电路 100
3.2.1 集成电路 100
3.2.2 组合逻辑电路 102
3.2.3 算术电路 106
3.2.4 时钟 109
3.3 内存 110
3.3.1 锁存器 110
3.3.2 触发器 112
3.3.3 寄存器 114
3.3.4 内存组成 114
3.3.5 内存芯片 117
3.3.6 RAM和ROM 119
3.4 CPU芯片和总线 121
3.4.1 CPU芯片 122
3.4.2 计算机总线 123
3.4.3 总线宽度 125
3.4.4 总线时钟 126
3.4.5 总线仲裁 129
3.4.6 总线操作 132
3.5 CPU芯片举例 133
3.5.1 Pentium 4 133
3.5.2 UltraSPARC III 138
3.5.3 8051芯片 141
3.6 总线举例 143
3.6.1 ISA总线 144
3.6.2 PCI总线 145
3.6.3 PCI Express 151
3.6.4 通用串行总线 154
3.7 接口电路 157
3.7.1 输入/输出芯片 157
3.7.2 地址译码 158
3.8 小结 160
习题 161
第4章 微体系结构层 164
4.1 微体系结构举例 164
4.1.1 数据通路 165
4.1.2 微指令 169
4.1.3 微指令控制:Mic-1 171
4.2 指令系统举例:IJVM 174
4.2.1 栈 174
4.2.2 IJVM内存模型 176
4.2.3 IJVM指令集 177
4.2.4 将Java编译为IJVM 180
4.3 实现举例 181
4.3.1 微指令和符号 181
4.3.2 用Mic-1实现IJVM 185
4.4 微体系结构层设计 194
4.4.1 速度与价格 194
4.4.2 缩短指令执行路径长度 195
4.4.3 带预取的设计:Mic-2 200
4.4.4 流水线设计:Mic-3 203
4.4.5 七段流水线设计:Mic-4 207
4.5 提高性能 209
4.5.1 高速缓存 210
4.5.2 分支预测 214
4.5.3 乱序执行和寄存器重命名 218
4.5.4 推测执行 222
4.6 微体系结构层举例 223
4.6.1 Pentium 4 CPU的微体系结构 224
4.6.2 UltraSPARC III Cu CPU的微体系结构 228
4.6.3 8051 CPU的微体系结构 232
4.7 Pentium、UltraSPARC和8051三种CPU的比较 233
4.8 小结 234
习题 235
第5章 指令系统层 238
5.1 指令系统层概述 239
5.1.1 指令系统层的性质 239
5.1.2 存储模式 240
5.1.3 寄存器 242
5.1.4 指令 243
5.1.5 Pentium 4指令系统层概述 243
5.1.6 UltraSPARC III指令系统层概述 245
5.1.7 8051指令系统层概述 248
5.2 数据类型 250
5.2.1 数值数据类型 250
5.2.2 非数值数据类型 251
5.2.3 Pentium 4的数据类型 251
5.2.4 UltraSPARC III的数据类型 252
5.2.5 8051的数据类型 252
5.3 指令格式 252
5.3.1 指令格式设计准则 253
5.3.2 扩展操作码 255
5.3.3 Pentium 4指令格式 256
5.3.4 UltraSPARC III指令格式 257
5.3.5 8051指令格式 258
5.4 寻址 259
5.4.1 寻址方式 259
5.4.2 立即寻址 259
5.4.3 直接寻址 260
5.4.4 寄存器寻址 260
5.4.5 寄存器间接寻址 260
5.4.6 变址寻址 261
5.4.7 基址变址寻址 262
5.4.8 栈寻址 263
5.4.9 转移指令的寻址方式 265
5.4.10 操作码和寻址方式的关系 265
5.4.11 Pentium 4的寻址方式 267
5.4.12 UltraSPARC III的寻址方式 268
5.4.13 8051的寻址方式 269
5.4.14 寻址方式讨论 269
5.5 指令类型 270
5.5.1 数据移动指令 270
5.5.2 双操作数指令 271
5.5.3 单操作数指令 271
5.5.4 比较和条件转移指令 273
5.5.5 过程调用指令 274
5.5.6 循环控制指令 275
5.5.7 输入/输出指令 275
5.5.8 Pentium 4指令系统 278
5.5.9 UltraSPARC III指令系统 280
5.5.10 8051指令系统 282
5.5.11 指令集比较 284
5.6 控制流 285
5.6.1 顺序控制流和转移 285
5.6.2 过程 286
5.6.3 协同过程 289
5.6.4 陷阱 290
5.6.5 中断 291
5.7 详细举例:汉诺塔 294
5.7.1 Pentium 4汇编语言实现的汉诺塔 294
5.7.2 UltraSPARC III汇编语言实现的汉诺塔 296
5.8 IA-64体系结构和Itanium 2 297
5.8.1 Pentium 4的问题 298
5.8.2 IA-64模型:显式并行指令计算 299
5.8.3 减少内存访问 299
5.8.4 指令调度 300
5.8.5 减少条件转移:判定 301
5.8.6 推测加载 303
5.9 小结 303
习题 304
第6章 操作系统层 308
6.1 虚拟内存 309
6.1.1 内存分页 309
6.1.2 内存分页的实现 310
6.1.3 请求调页和工作集模型 313
6.1.4 页置换策略 314
6.1.5 页大小和碎片 315
6.1.6 分段 316
6.1.7 分段的实现 318
6.1.8 Pentium 4中的虚拟内存 320
6.1.9 UltraSPARC III的虚拟内存 323
6.1.10 虚拟内存和高速缓存 325
6.2 虚拟输入/输出指令 326
6.2.1 文件 326
6.2.2 虚拟输入/输出指令的实现 328
6.2.3 目录管理指令 330
6.3 用于并行处理的虚拟指令 331
6.3.1 进程创建 331
6.3.2 竞争条件 332
6.3.3 使用信号量的进程同步 335
6.4 操作系统实例 338
6.4.1 简介 338
6.4.2 虚拟内存实例 345
6.4.3 虚拟输入/输出举例 347
6.4.4 进程管理实例 356
6.5 小结 360
习题 361
第7章 汇编语言层 365
7.1 汇编语言简介 365
7.1.1 什么是汇编语言 365
7.1.2 为什么使用汇编语言 366
7.1.3 汇编语言语句的格式 368
7.1.4 伪指令 370
7.2 宏 372
7.2.1 宏定义、调用和扩展 372
7.2.2 带参数的宏 373
7.2.3 高级特性 374
7.2.4 汇编器中宏处理的实现 374
7.3 汇编过程 375
7.3.1 两趟汇编的汇编器 375
7.3.2 第一趟扫描 375
7.3.3 第二趟扫描 378
7.3.4 符号表 380
7.4 链接和加载 381
7.4.1 链接器的功能 382
7.4.2 目标模块的结构 384
7.4.3 绑定时间和动态重定位 385
7.4.4 动态链接 387
7.5 小结 390
习题 390
第8章 并行计算机体系结构 393
8.1 片内并行 394
8.1.1 指令级并行 394
8.1.2 片内多线程 399
8.1.3 单片多处理器 403
8.2 协处理器 407
8.2.1 网络处理器 407
8.2.2 媒体处理器 412
8.2.3 加密处理器 416
8.3 共享内存的多处理器 417
8.3.1 多处理器与多计算机 417
8.3.2 内存语义 423
8.3.3 UMA对称多处理器体系结构 426
8.3.4 NUMA多处理器系统 432
8.3.5 COMA多处理器系统 438
8.4 消息传递的多计算机 439
8.4.1 互连网络 440
8.4.2 MPP——大规模并行处理器 443
8.4.3 集群计算 450
8.4.4 多计算机的通信软件 454
8.4.5 调度 456
8.4.6 应用层的共享内存 456
8.4.7 性能 462
8.5 网格计算 466
8.6 小结 468
习题 469
第9章 推荐读物和参考文献 471
9.1 推荐读物 471
9.1.1 一般性和介绍性的读物 471
9.1.2 计算机系统组成 472
9.1.3 数字逻辑层 473
9.1.4 微体系结构层 473
9.1.5 指令系统层 474
9.1.6 操作系统层 475
9.1.7 汇编语言层 475
9.1.8 并行计算机体系结构 475
9.1.9 二进制数和浮点数 477
9.1.10 汇编语言程序设计 477
9.2 参考文献 478
附录A 二进制数 490
附录B 浮点数 499
附录C 汇编语言程序设计 505
1.1 结构化计算机组成 1
1.1.1 语言、层次和虚拟机 1
1.1.2 现代多层次计算机 3
1.1.3 多层次计算机的演化 5
1.2 计算机体系结构的里程碑 8
1.2.1 第零代——机械计算机(1642—1945) 9
1.2.2 第一代——电子管计算机(1945—1955) 10
1.2.3 第二代——晶体管计算机(1955—1965) 12
1.2.4 第三代——集成电路计算机(1965—1980) 14
1.2.5 第四代——超大规模集成电路计算机(1980—?) 15
1.2.6 第五代——无所不在的计算机 17
1.3 计算机家族 17
1.3.1 技术和经济的推动 17
1.3.2 计算机谱系 19
1.3.3 一次性计算机 19
1.3.4 微控制器 21
1.3.5 游戏机 22
1.3.6 个人计算机 22
1.3.7 服务器 23
1.3.8 工作站群集 23
1.3.9 大型机 24
1.4 系列计算机举例 24
1.4.1 Pentium 4简介 25
1.4.2 UltraSPARC III简介 28
1.4.3 8051简介 29
1.5 公制计量单位 31
1.6 本书概览 32
习题 33
第2章 计算机系统组成 34
2.1 处理器 34
2.1.1 CPU的组成 35
2.1.2 指令执行 36
2.1.3 RISC和CISC 38
2.1.4 现代计算机设计原则 39
2.1.5 指令级并行 40
2.1.6 处理器级并行 43
2.2 主存储器 46
2.2.1 存储位 46
2.2.2 内存编址 46
2.2.3 字节顺序 47
2.2.4 纠错码 49
2.2.5 高速缓存 51
2.2.6 内存封装及其类型 53
2.3 辅助存储器 54
2.3.1 层次存储结构 54
2.3.2 磁盘 55
2.3.3 软盘 57
2.3.4 IDE盘 58
2.3.5 SCSI盘 59
2.3.6 RAID盘 60
2.3.7 只读光盘 63
2.3.8 可刻光盘 66
2.3.9 可擦写光盘 67
2.3.10 DVD 68
2.3.11 Blu-Ray 69
2.4 输入/输出设备 69
2.4.1 总线 69
2.4.2 终端 72
2.4.3 鼠标 75
2.4.4 打印机 76
2.4.5 通信设备 80
2.4.6 数码相机 86
2.4.7 字符编码 87
2.5 小结 90
习题 91
第3章 数字逻辑层 93
3.1 门和布尔代数 93
3.1.1 门 93
3.1.2 布尔代数 95
3.1.3 布尔函数的实现 96
3.1.4 等价电路 98
3.2 基本数字逻辑电路 100
3.2.1 集成电路 100
3.2.2 组合逻辑电路 102
3.2.3 算术电路 106
3.2.4 时钟 109
3.3 内存 110
3.3.1 锁存器 110
3.3.2 触发器 112
3.3.3 寄存器 114
3.3.4 内存组成 114
3.3.5 内存芯片 117
3.3.6 RAM和ROM 119
3.4 CPU芯片和总线 121
3.4.1 CPU芯片 122
3.4.2 计算机总线 123
3.4.3 总线宽度 125
3.4.4 总线时钟 126
3.4.5 总线仲裁 129
3.4.6 总线操作 132
3.5 CPU芯片举例 133
3.5.1 Pentium 4 133
3.5.2 UltraSPARC III 138
3.5.3 8051芯片 141
3.6 总线举例 143
3.6.1 ISA总线 144
3.6.2 PCI总线 145
3.6.3 PCI Express 151
3.6.4 通用串行总线 154
3.7 接口电路 157
3.7.1 输入/输出芯片 157
3.7.2 地址译码 158
3.8 小结 160
习题 161
第4章 微体系结构层 164
4.1 微体系结构举例 164
4.1.1 数据通路 165
4.1.2 微指令 169
4.1.3 微指令控制:Mic-1 171
4.2 指令系统举例:IJVM 174
4.2.1 栈 174
4.2.2 IJVM内存模型 176
4.2.3 IJVM指令集 177
4.2.4 将Java编译为IJVM 180
4.3 实现举例 181
4.3.1 微指令和符号 181
4.3.2 用Mic-1实现IJVM 185
4.4 微体系结构层设计 194
4.4.1 速度与价格 194
4.4.2 缩短指令执行路径长度 195
4.4.3 带预取的设计:Mic-2 200
4.4.4 流水线设计:Mic-3 203
4.4.5 七段流水线设计:Mic-4 207
4.5 提高性能 209
4.5.1 高速缓存 210
4.5.2 分支预测 214
4.5.3 乱序执行和寄存器重命名 218
4.5.4 推测执行 222
4.6 微体系结构层举例 223
4.6.1 Pentium 4 CPU的微体系结构 224
4.6.2 UltraSPARC III Cu CPU的微体系结构 228
4.6.3 8051 CPU的微体系结构 232
4.7 Pentium、UltraSPARC和8051三种CPU的比较 233
4.8 小结 234
习题 235
第5章 指令系统层 238
5.1 指令系统层概述 239
5.1.1 指令系统层的性质 239
5.1.2 存储模式 240
5.1.3 寄存器 242
5.1.4 指令 243
5.1.5 Pentium 4指令系统层概述 243
5.1.6 UltraSPARC III指令系统层概述 245
5.1.7 8051指令系统层概述 248
5.2 数据类型 250
5.2.1 数值数据类型 250
5.2.2 非数值数据类型 251
5.2.3 Pentium 4的数据类型 251
5.2.4 UltraSPARC III的数据类型 252
5.2.5 8051的数据类型 252
5.3 指令格式 252
5.3.1 指令格式设计准则 253
5.3.2 扩展操作码 255
5.3.3 Pentium 4指令格式 256
5.3.4 UltraSPARC III指令格式 257
5.3.5 8051指令格式 258
5.4 寻址 259
5.4.1 寻址方式 259
5.4.2 立即寻址 259
5.4.3 直接寻址 260
5.4.4 寄存器寻址 260
5.4.5 寄存器间接寻址 260
5.4.6 变址寻址 261
5.4.7 基址变址寻址 262
5.4.8 栈寻址 263
5.4.9 转移指令的寻址方式 265
5.4.10 操作码和寻址方式的关系 265
5.4.11 Pentium 4的寻址方式 267
5.4.12 UltraSPARC III的寻址方式 268
5.4.13 8051的寻址方式 269
5.4.14 寻址方式讨论 269
5.5 指令类型 270
5.5.1 数据移动指令 270
5.5.2 双操作数指令 271
5.5.3 单操作数指令 271
5.5.4 比较和条件转移指令 273
5.5.5 过程调用指令 274
5.5.6 循环控制指令 275
5.5.7 输入/输出指令 275
5.5.8 Pentium 4指令系统 278
5.5.9 UltraSPARC III指令系统 280
5.5.10 8051指令系统 282
5.5.11 指令集比较 284
5.6 控制流 285
5.6.1 顺序控制流和转移 285
5.6.2 过程 286
5.6.3 协同过程 289
5.6.4 陷阱 290
5.6.5 中断 291
5.7 详细举例:汉诺塔 294
5.7.1 Pentium 4汇编语言实现的汉诺塔 294
5.7.2 UltraSPARC III汇编语言实现的汉诺塔 296
5.8 IA-64体系结构和Itanium 2 297
5.8.1 Pentium 4的问题 298
5.8.2 IA-64模型:显式并行指令计算 299
5.8.3 减少内存访问 299
5.8.4 指令调度 300
5.8.5 减少条件转移:判定 301
5.8.6 推测加载 303
5.9 小结 303
习题 304
第6章 操作系统层 308
6.1 虚拟内存 309
6.1.1 内存分页 309
6.1.2 内存分页的实现 310
6.1.3 请求调页和工作集模型 313
6.1.4 页置换策略 314
6.1.5 页大小和碎片 315
6.1.6 分段 316
6.1.7 分段的实现 318
6.1.8 Pentium 4中的虚拟内存 320
6.1.9 UltraSPARC III的虚拟内存 323
6.1.10 虚拟内存和高速缓存 325
6.2 虚拟输入/输出指令 326
6.2.1 文件 326
6.2.2 虚拟输入/输出指令的实现 328
6.2.3 目录管理指令 330
6.3 用于并行处理的虚拟指令 331
6.3.1 进程创建 331
6.3.2 竞争条件 332
6.3.3 使用信号量的进程同步 335
6.4 操作系统实例 338
6.4.1 简介 338
6.4.2 虚拟内存实例 345
6.4.3 虚拟输入/输出举例 347
6.4.4 进程管理实例 356
6.5 小结 360
习题 361
第7章 汇编语言层 365
7.1 汇编语言简介 365
7.1.1 什么是汇编语言 365
7.1.2 为什么使用汇编语言 366
7.1.3 汇编语言语句的格式 368
7.1.4 伪指令 370
7.2 宏 372
7.2.1 宏定义、调用和扩展 372
7.2.2 带参数的宏 373
7.2.3 高级特性 374
7.2.4 汇编器中宏处理的实现 374
7.3 汇编过程 375
7.3.1 两趟汇编的汇编器 375
7.3.2 第一趟扫描 375
7.3.3 第二趟扫描 378
7.3.4 符号表 380
7.4 链接和加载 381
7.4.1 链接器的功能 382
7.4.2 目标模块的结构 384
7.4.3 绑定时间和动态重定位 385
7.4.4 动态链接 387
7.5 小结 390
习题 390
第8章 并行计算机体系结构 393
8.1 片内并行 394
8.1.1 指令级并行 394
8.1.2 片内多线程 399
8.1.3 单片多处理器 403
8.2 协处理器 407
8.2.1 网络处理器 407
8.2.2 媒体处理器 412
8.2.3 加密处理器 416
8.3 共享内存的多处理器 417
8.3.1 多处理器与多计算机 417
8.3.2 内存语义 423
8.3.3 UMA对称多处理器体系结构 426
8.3.4 NUMA多处理器系统 432
8.3.5 COMA多处理器系统 438
8.4 消息传递的多计算机 439
8.4.1 互连网络 440
8.4.2 MPP——大规模并行处理器 443
8.4.3 集群计算 450
8.4.4 多计算机的通信软件 454
8.4.5 调度 456
8.4.6 应用层的共享内存 456
8.4.7 性能 462
8.5 网格计算 466
8.6 小结 468
习题 469
第9章 推荐读物和参考文献 471
9.1 推荐读物 471
9.1.1 一般性和介绍性的读物 471
9.1.2 计算机系统组成 472
9.1.3 数字逻辑层 473
9.1.4 微体系结构层 473
9.1.5 指令系统层 474
9.1.6 操作系统层 475
9.1.7 汇编语言层 475
9.1.8 并行计算机体系结构 475
9.1.9 二进制数和浮点数 477
9.1.10 汇编语言程序设计 477
9.2 参考文献 478
附录A 二进制数 490
附录B 浮点数 499
附录C 汇编语言程序设计 505
猜您喜欢