计算机组成与系统结构(第二版)
¥58.00定价
作者: 裘雪红
出版时间:2020-09
出版社:西安电子科技大学出版社
- 西安电子科技大学出版社
- 9787560657615
- 2版
- 349561
- 平装
- 16开
- 2020-09
- 678
- 456
- TP30
- TP自动化技术、计算机技术
内容简介
本书主要讲述计算机的基本体系结构、基本组成原理和基本实现方法,涉及的内容包括从计算机底层的CPU核心直到最上层的并行系统架构,具体介绍了各种计算机系统中采用的数据表示与运算方法、指令设计与流水线处理技术、存储体系与存储技术、输入/输出系统与I/O技术、并行体系结构及互连技术等成熟技术与新技术,并结合新产品、新系统说明了各种技术的应用。
本书力求语言精练,深入浅出,通俗易懂,重点突出,在强调原理的同时注重技术与实例的结合,在强调基础知识的同时注重新技术的融入。
本书与教育部高等学校教学指导委员会下设的计算机科学与技术教学指导委员会制定的计算机科学与技术专业规范中建议的“计算机组成与体系结构”教学大纲和ACM/IEEECS课程指南吻合,涵盖了全国硕士研究生入学考试计算机科学与技术学科联考大纲中“计算机组成原理”课程的内容,适用于“计算机组成与体系结构”和“计算机组成原理”课程的教学与自学,能够给学生建立完整的计算机组成与体系结构的基本概念和知识体系。
本书力求语言精练,深入浅出,通俗易懂,重点突出,在强调原理的同时注重技术与实例的结合,在强调基础知识的同时注重新技术的融入。
本书与教育部高等学校教学指导委员会下设的计算机科学与技术教学指导委员会制定的计算机科学与技术专业规范中建议的“计算机组成与体系结构”教学大纲和ACM/IEEECS课程指南吻合,涵盖了全国硕士研究生入学考试计算机科学与技术学科联考大纲中“计算机组成原理”课程的内容,适用于“计算机组成与体系结构”和“计算机组成原理”课程的教学与自学,能够给学生建立完整的计算机组成与体系结构的基本概念和知识体系。
目录
第1章 绪论 1
1.1 计算机的发展历史 1
1.1.1 发展历史 1
1.1.2 摩尔定律 4
1.2 计算机的基本组成 6
1.2.1 硬件系统 6
1.2.2 软件系统 8
1.2.3 指令集体系结构 9
1.2.4 高级语言程序的执行过程 13
1.3 计算机的层次概念 17
1.3.1 计算机系统的层次结构 17
1.3.2 计算机体系结构、组成与实现 18
1.4 计算机分类及性能描述 19
1.4.1 计算机分类 19
1.4.2 计算机系统性能描述 22
1.4.3 Amdahl定律 24
习题 26
第2章 计算机系统中的数据表示 27
2.1 概述 27
2.1.1 数的进制及转换 27
2.1.2 无符号数与有符号数的定义 27
2.1.3 定点数与浮点数的定义 28
2.2 定点数 28
2.2.1 原码 28
2.2.2 补码 30
2.2.3 反码 31
2.2.4 移码 32
2.2.5 不同编码的比较 34
2.3 浮点数 35
2.3.1 浮点数的表示方法 35
2.3.2 IEEE 754标准 39
2.4 BCD码 41
2.5 非数值数据 41
2.5.1 ASCII码 41
2.5.2 汉字编码 43
2.5.3 Unicode与UTF8 44
2.6 检错与纠错码 45
2.6.1 码距与校验位位数 45
2.6.2 奇偶校验码 46
2.6.3 海明校验码 47
2.6.4 循环冗余校验码 50
习题 54
第3章 运算方法与运算器 57
3.1 定点数运算 57
3.1.1 加减运算 57
3.1.2 乘法运算 66
3.1.3 除法运算 74
3.2 逻辑与移位运算 80
3.2.1 逻辑运算 80
3.2.2 移位运算 82
3.3 浮点数运算 85
3.3.1 浮点加减运算 85
3.3.2 浮点乘除运算 87
3.3.3 浮点数运算的实现方法 89
3.4 运算器基本结构 90
3.4.1 三种基本结构 90
3.4.2 运算器实例 91
习题 92
第4章 存储系统 96
4.1 存储系统概述 96
4.1.1 存储系统的层次结构 96
4.1.2 存储器的分类 97
4.1.3 存储器的性能指标 97
4.2 主存储器 99
4.2.1 主存的结构 99
4.2.2 随机读写存储器RAM 101
4.2.3 只读存储器ROM 111
4.2.4 相联存储器 115
4.2.5 主存储器设计方法 117
4.3 高速缓冲存储器 129
4.3.1 工作原理 129
4.3.2 地址映射与变换 130
4.3.3 替换算法 140
4.3.4 更新策略 142
4.3.5 Cache性能测量 142
4.3.6 Cache性能提高 144
4.4 虚拟存储器 148
4.4.1 虚拟存储器概述 148
4.4.2 虚拟存储器管理 149
4.4.3 RISCV中页式虚拟存储器的实现 153
4.5 外部存储器(辅助存储器) 160
4.5.1 磁表面存储原理及记录方式 160
4.5.2 磁盘存储器 163
4.5.3 固态硬盘 166
4.5.4 光存储器 169
4.5.5 移动存储设备 170
习题 171
第5章 指令系统 179
5.1 指令系统概述 179
5.2 指令系统结构层定义 181
5.2.1 存储模式 181
5.2.2 寄存器组织 184
5.2.3 数据类型 186
5.2.4 I/O模式 187
5.2.5 指令类型 187
5.3 指令设计 189
5.3.1 指令格式 189
5.3.2 地址码设计 189
5.3.3 操作码设计 190
5.3.4 指令长度设计 194
5.4 寻址方式 195
5.4.1 基本寻址方式 195
5.4.2 RISCV和x86寻址方式 198
5.5 指令系统结构的发展 200
5.5.1 CISC 200
5.5.2 RISC 201
5.6 指令系统实例 202
5.6.1 RISCV指令系统 202
5.6.2 x86指令系统 207
习题 211
第6章 中央处理器 215
6.1 CPU的功能与结构 215
6.1.1 CPU的功能 215
6.1.2 基础的RISCV系统结构 216
6.1.3 简化的x86系统结构 218
6.1.4 微操作 220
6.1.5 控制器的组成 225
6.2 硬布线控制器设计 226
6.2.1 RISCV系统控制单元设计 226
6.2.2 类x86系统控制单元设计 227
6.3 微程序控制器设计 233
6.3.1 微程序控制原理 233
6.3.2 微指令设计 236
6.3.3 微程序设计及示例 246
6.3.4 微程序控制器设计 249
6.4 微程序控制器与硬布线控制器的比较 251
6.5 CPU性能的测量与提高 252
6.5.1 CPU性能测量 252
6.5.2 提高CPU速度的策略 258
6.5.3 多核与多线程技术 258
6.6 CPU实例 263
6.6.1 Intel Core 2 CPU 263
6.6.2 MIPS R10000 CPU 264
习题 266
第7章 流水线技术 271
7.1 流水线处理的概念 271
7.1.1 流水线的处理方式 271
7.1.2 CPU中流水线的一般结构及运作 271
7.1.3 流水线的类型 272
7.2 浮点运算流水线 276
7.2.1 浮点加减运算流水线 276
7.2.2 浮点乘除运算流水线 279
7.3 指令流水线 282
7.3.1 基本的指令流水线 283
7.3.2 指令流水线策略 285
7.3.3 指令流水线设计方法——RISCV基本指令流水线设计示例 288
7.3.4 指令系统对流水线设计的支持 292
7.4 流水线性能测量 293
7.4.1 时空图 293
7.4.2 吞吐率 294
7.4.3 加速比 296
7.4.4 效率 296
7.4.5 流水线性能分析 297
7.5 指令流水线的性能提高 301
7.5.1 流水线的基本性能问题 301
7.5.2 结构冒险 302
7.5.3 数据冒险 303
7.5.4 控制冒险 305
7.6 多发射处理器 311
7.6.1 多发射的概念 311
7.6.2 超标量处理器 313
7.6.3 超长指令字处理器 315
7.6.4 多发射处理器的限制 317
7.7 指令级并行概念 318
7.7.1 指令流水线的限制 318
7.7.2 突破指令流水线限制的途径 319
7.7.3 指令级并行的限制 320
习题 320
第8章 总线与输入/输出系统 324
8.1 概述 324
8.1.1 总线 324
8.1.2 输入/输出系统 325
8.1.3 外部设备 326
8.2 总线技术 326
8.2.1 总线类型与结构 327
8.2.2 总线信息传输方式 332
8.2.3 总线仲裁 337
8.2.4 典型的总线 342
8.3 输入/输出接口 350
8.4 输入/输出技术 352
8.4.1 程序查询方式 353
8.4.2 中断方式 354
8.4.3 直接存储器存取方式 364
8.4.4 I/O通道方式 370
习题 373
第9章 并行体系结构 375
9.1 计算机体系结构的并行性 375
9.2 计算机体系结构的分类 378
9.3 互连网络 380
9.3.1 基本概念 380
9.3.2 互连网络的表示及性能参数 381
9.3.3 集中式交换网络 383
9.3.4 分布式交换网络 392
9.4 向量处理机 396
9.4.1 基本的向量体系结构 397
9.4.2 现代的向量超级计算机Cray X1 399
9.5 多处理器系统 401
9.5.1 UMA对称多处理器系统 401
9.5.2 多处理器系统的Cache一致性 403
9.5.3 NUMA对称多处理器系统 409
9.6 图形处理单元体系结构 411
9.6.1 简介 411
9.6.2 GPU体系结构 413
9.6.3 GPU编程方式 417
9.6.4 多线程多处理器体系结构 421
9.6.5 GPU内存系统 423
9.6.6 GPU应用实例 426
9.7 多计算机系统 427
9.7.1 多计算机系统的体系结构 427
9.7.2 消息传递机制 430
9.7.3 大规模并行处理系统 432
9.8 云计算 435
9.8.1 云计算的概念 435
9.8.2 云计算系统实例——Google云计算平台 438
9.9 高性能计算机发展现状 440
9.10 并行处理面临的挑战 441
习题 442
参考文献 446
1.1 计算机的发展历史 1
1.1.1 发展历史 1
1.1.2 摩尔定律 4
1.2 计算机的基本组成 6
1.2.1 硬件系统 6
1.2.2 软件系统 8
1.2.3 指令集体系结构 9
1.2.4 高级语言程序的执行过程 13
1.3 计算机的层次概念 17
1.3.1 计算机系统的层次结构 17
1.3.2 计算机体系结构、组成与实现 18
1.4 计算机分类及性能描述 19
1.4.1 计算机分类 19
1.4.2 计算机系统性能描述 22
1.4.3 Amdahl定律 24
习题 26
第2章 计算机系统中的数据表示 27
2.1 概述 27
2.1.1 数的进制及转换 27
2.1.2 无符号数与有符号数的定义 27
2.1.3 定点数与浮点数的定义 28
2.2 定点数 28
2.2.1 原码 28
2.2.2 补码 30
2.2.3 反码 31
2.2.4 移码 32
2.2.5 不同编码的比较 34
2.3 浮点数 35
2.3.1 浮点数的表示方法 35
2.3.2 IEEE 754标准 39
2.4 BCD码 41
2.5 非数值数据 41
2.5.1 ASCII码 41
2.5.2 汉字编码 43
2.5.3 Unicode与UTF8 44
2.6 检错与纠错码 45
2.6.1 码距与校验位位数 45
2.6.2 奇偶校验码 46
2.6.3 海明校验码 47
2.6.4 循环冗余校验码 50
习题 54
第3章 运算方法与运算器 57
3.1 定点数运算 57
3.1.1 加减运算 57
3.1.2 乘法运算 66
3.1.3 除法运算 74
3.2 逻辑与移位运算 80
3.2.1 逻辑运算 80
3.2.2 移位运算 82
3.3 浮点数运算 85
3.3.1 浮点加减运算 85
3.3.2 浮点乘除运算 87
3.3.3 浮点数运算的实现方法 89
3.4 运算器基本结构 90
3.4.1 三种基本结构 90
3.4.2 运算器实例 91
习题 92
第4章 存储系统 96
4.1 存储系统概述 96
4.1.1 存储系统的层次结构 96
4.1.2 存储器的分类 97
4.1.3 存储器的性能指标 97
4.2 主存储器 99
4.2.1 主存的结构 99
4.2.2 随机读写存储器RAM 101
4.2.3 只读存储器ROM 111
4.2.4 相联存储器 115
4.2.5 主存储器设计方法 117
4.3 高速缓冲存储器 129
4.3.1 工作原理 129
4.3.2 地址映射与变换 130
4.3.3 替换算法 140
4.3.4 更新策略 142
4.3.5 Cache性能测量 142
4.3.6 Cache性能提高 144
4.4 虚拟存储器 148
4.4.1 虚拟存储器概述 148
4.4.2 虚拟存储器管理 149
4.4.3 RISCV中页式虚拟存储器的实现 153
4.5 外部存储器(辅助存储器) 160
4.5.1 磁表面存储原理及记录方式 160
4.5.2 磁盘存储器 163
4.5.3 固态硬盘 166
4.5.4 光存储器 169
4.5.5 移动存储设备 170
习题 171
第5章 指令系统 179
5.1 指令系统概述 179
5.2 指令系统结构层定义 181
5.2.1 存储模式 181
5.2.2 寄存器组织 184
5.2.3 数据类型 186
5.2.4 I/O模式 187
5.2.5 指令类型 187
5.3 指令设计 189
5.3.1 指令格式 189
5.3.2 地址码设计 189
5.3.3 操作码设计 190
5.3.4 指令长度设计 194
5.4 寻址方式 195
5.4.1 基本寻址方式 195
5.4.2 RISCV和x86寻址方式 198
5.5 指令系统结构的发展 200
5.5.1 CISC 200
5.5.2 RISC 201
5.6 指令系统实例 202
5.6.1 RISCV指令系统 202
5.6.2 x86指令系统 207
习题 211
第6章 中央处理器 215
6.1 CPU的功能与结构 215
6.1.1 CPU的功能 215
6.1.2 基础的RISCV系统结构 216
6.1.3 简化的x86系统结构 218
6.1.4 微操作 220
6.1.5 控制器的组成 225
6.2 硬布线控制器设计 226
6.2.1 RISCV系统控制单元设计 226
6.2.2 类x86系统控制单元设计 227
6.3 微程序控制器设计 233
6.3.1 微程序控制原理 233
6.3.2 微指令设计 236
6.3.3 微程序设计及示例 246
6.3.4 微程序控制器设计 249
6.4 微程序控制器与硬布线控制器的比较 251
6.5 CPU性能的测量与提高 252
6.5.1 CPU性能测量 252
6.5.2 提高CPU速度的策略 258
6.5.3 多核与多线程技术 258
6.6 CPU实例 263
6.6.1 Intel Core 2 CPU 263
6.6.2 MIPS R10000 CPU 264
习题 266
第7章 流水线技术 271
7.1 流水线处理的概念 271
7.1.1 流水线的处理方式 271
7.1.2 CPU中流水线的一般结构及运作 271
7.1.3 流水线的类型 272
7.2 浮点运算流水线 276
7.2.1 浮点加减运算流水线 276
7.2.2 浮点乘除运算流水线 279
7.3 指令流水线 282
7.3.1 基本的指令流水线 283
7.3.2 指令流水线策略 285
7.3.3 指令流水线设计方法——RISCV基本指令流水线设计示例 288
7.3.4 指令系统对流水线设计的支持 292
7.4 流水线性能测量 293
7.4.1 时空图 293
7.4.2 吞吐率 294
7.4.3 加速比 296
7.4.4 效率 296
7.4.5 流水线性能分析 297
7.5 指令流水线的性能提高 301
7.5.1 流水线的基本性能问题 301
7.5.2 结构冒险 302
7.5.3 数据冒险 303
7.5.4 控制冒险 305
7.6 多发射处理器 311
7.6.1 多发射的概念 311
7.6.2 超标量处理器 313
7.6.3 超长指令字处理器 315
7.6.4 多发射处理器的限制 317
7.7 指令级并行概念 318
7.7.1 指令流水线的限制 318
7.7.2 突破指令流水线限制的途径 319
7.7.3 指令级并行的限制 320
习题 320
第8章 总线与输入/输出系统 324
8.1 概述 324
8.1.1 总线 324
8.1.2 输入/输出系统 325
8.1.3 外部设备 326
8.2 总线技术 326
8.2.1 总线类型与结构 327
8.2.2 总线信息传输方式 332
8.2.3 总线仲裁 337
8.2.4 典型的总线 342
8.3 输入/输出接口 350
8.4 输入/输出技术 352
8.4.1 程序查询方式 353
8.4.2 中断方式 354
8.4.3 直接存储器存取方式 364
8.4.4 I/O通道方式 370
习题 373
第9章 并行体系结构 375
9.1 计算机体系结构的并行性 375
9.2 计算机体系结构的分类 378
9.3 互连网络 380
9.3.1 基本概念 380
9.3.2 互连网络的表示及性能参数 381
9.3.3 集中式交换网络 383
9.3.4 分布式交换网络 392
9.4 向量处理机 396
9.4.1 基本的向量体系结构 397
9.4.2 现代的向量超级计算机Cray X1 399
9.5 多处理器系统 401
9.5.1 UMA对称多处理器系统 401
9.5.2 多处理器系统的Cache一致性 403
9.5.3 NUMA对称多处理器系统 409
9.6 图形处理单元体系结构 411
9.6.1 简介 411
9.6.2 GPU体系结构 413
9.6.3 GPU编程方式 417
9.6.4 多线程多处理器体系结构 421
9.6.5 GPU内存系统 423
9.6.6 GPU应用实例 426
9.7 多计算机系统 427
9.7.1 多计算机系统的体系结构 427
9.7.2 消息传递机制 430
9.7.3 大规模并行处理系统 432
9.8 云计算 435
9.8.1 云计算的概念 435
9.8.2 云计算系统实例——Google云计算平台 438
9.9 高性能计算机发展现状 440
9.10 并行处理面临的挑战 441
习题 442
参考文献 446