现代计算机组成与体系结构
作者 : [美]吉姆·莱丁(Jim Ledin) 著
译者 : 王党辉 王继禾 张萌 安建峰 译
丛书名 : 计算机科学丛书
出版日期 : 2022-03-01
ISBN : 978-7-111-70108-8
适用人群 : 本书适用于软件开发人员、计算机专业学生、系统设计师、计算机科学家、逆向工程师,以及所有希望理解现代计算机系统(从微型嵌入式设备到智能手机,再到仓储规模的云服务器群等)的体系结构和设计原则的人。
定价 : 119.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 312
开本 : 16
原书名 : Modern Computer Architecture and Organization
原出版社: Packt Publishing Ltd.
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书对现代计算设备进行了介绍,包括其中可能出现的每一项重要技术和子系统,并阐释其与其他系统部件之间的关系。全书分为三部分。第1部分介绍计算机体系结构基础知识,包括计算机体系结构的基本概念、数字逻辑、处理器元件、计算机系统组件、硬件软件接口、专用计算领域。第二部分介绍处理器体系结构和指令集,涉及处理器和存储器体系结构、性能增强技术、专用处理器扩展、现代处理器体系结构和指令集、RISC-V体系结构和指令集。第三部分介绍计算机体系结构的应用,包括处理器虚拟化、具体的应用程序类别(包括移动设备、个人电脑、游戏系统、互联网搜索引擎和神经网络)、计算机体系结构未来的方向。读完本书,读者将掌握目前在广泛多样的数字系统中所使用的计算机体系结构。

图书特色

展现现代处理器关键技术,涵盖RISC-V处理器实现细节

图书前言

本书介绍了在现代处理器和计算机体系结构中使用的关键技术和组件,并针对具体需求讨论了不同体系结构的决策如何影响计算机的配置优化。
简单来说,现代计算机是一种复杂的设备。然而,当以层次化的方式来看时,每一层的复杂功能就变得明晰了。本书涵盖了众多主题,但只对各个主题进行有限深度的探讨。本书的目标是对现代计算设备进行简单明了的介绍,包括其中可能出现的每一项重要技术和每一个子系统,并阐释设备与其他系统组件之间的关系。
本书不会提供一份冗长的参考书单,如果读者想深入阅读,可以自行在互联网上查找相关内容。
学完本书,读者将掌握目前在广泛多样的数字系统中所使用的计算机体系结构,还将了解体系结构的发展趋势,以及未来几年可能出现的一些颠覆性技术,这些突破或许会极大地影响计算系统体系结构的发展。
目标读者
本书适用于软件开发人员、计算机专业学生、系统设计师、计算机科学家、逆向工程师,以及所有希望理解现代计算机系统(从微型嵌入式设备到智能手机,再到仓储规模的云服务器群等)的体系结构和设计原则的人。
本书内容
本书共14章,各章主要内容如下:
第1章从自动化计算设备的简史开始,介绍了推动设备性能飞跃的重大技术进步。之后讨论了摩尔定律,评估了其在过去几十年的适用性和对未来的影响。最后以6502微处理器为例,介绍了计算机体系结构的基本概念。
第2章介绍了作为开关元件的晶体管,并解释了其在构造逻辑门中的应用。然后介绍了如何结合简单的门来构建触发器和寄存器。该章还介绍了时序逻辑(即包含状态信息的逻辑),最后讨论了时钟数字电路。
第3章从通用处理器的概念性描述开始介绍组成处理器的要素。该章讨论了指令集、寄存器集、指令加载、解码、执行和排序的概念,还讨论了内存的加载和存储操作。该章还涵盖了分支指令及其在循环处理和条件处理中的应用。最后介绍了导致中断处理和I/O操作的一些实际因素。
第4章讨论了包括多级缓存在内的计算机存储及其与处理器的接口,讲述了包括中断处理、缓冲和专用I/O处理器在内的I/O需求。该章还讨论了键盘、鼠标、显示器和网络接口等I/O设备的一些特定需求。最后给出了这些组件在现代计算机应用中的实例,包括智能移动设备、个人计算机、游戏系统、云服务器和专用机器学习系统。
第5章讨论了如何实现计算机操作系统必须提供的高级服务,包括磁盘I/O、网络通信以及与用户交互。该章描述了从处理器指令集和寄存器级别开始实现这些特性的软件层。最后介绍了引导、多处理和多线程等操作系统功能。
第6章探索了对大多数用户不直接可见的计算领域,包括实时系统、数字信号处理和GPU处理。该章还讨论了与每个计算领域相关的特定需求,并介绍了实现这些特性的现代设备。
第7章深入研究了冯·诺依曼体系结构、哈佛体系结构和改进型哈佛体系结构等现代处理器体系结构。该章讨论了分页虚拟内存的实现,介绍了内存管理功能在计算机体系结构中的实际实现,并描述了内存管理单元的功能。
第8章讨论了计算机系统中的性能提升技术,这些技术旨在使系统达到峰值执行速度。该章主要介绍提高系统性能的重要技术,包括缓存、指令流水线、指令并行和SIMD处理。
第9章重点关注通常在处理器指令集级别实现的扩展,以提供超出一般数据处理需求的附加系统功能。提供的扩展包括特权模式、浮点数、功耗管理和系统安全管理。
第10章研究了现代处理器(x86、x64和ARM等)设计中的体系结构和指令集特性。处理器长达几十年的多轮更新换代往往面临兼容性挑战,对历史特性的支持需求往往会增加下一代处理器的复杂性。该章研究了由支持计算机历史特性需求引起的处理器体系结构的一些问题。
第11章介绍了RISC-V处理器体系结构及其指令集。RISC-V是一个完全开源、免费的精简指令集计算机体系结构规范。其完整的用户模式(非特权)指令集规范已经发布,并且当前有许多该体系结构的硬件实现可用。对指令集进行多种扩展的规范开发工作正在进行中。该章涵盖RISC-V体系结构的特性和可用变体,介绍了其指令集,还讨论了RISC-V体系结构在移动设备、个人计算机和服务器中的应用。
第12章介绍了与处理器虚拟化相关的概念,阐述了虚拟化带来的好处。该章介绍了基于开源工具和操作系统的虚拟化实例,这些开源工具可以在通用计算机上执行各种计算机体系结构和操作系统的指令集精确表示。该章还讨论了虚拟化在开发和部署实际的应用程序中的好处。
第13章结合前几章讨论的主题,开发了一种方法来设计计算机系统以满足用户的独特需求。该章讨论了一些具体的应用程序类别,包括移动设备、个人计算机、游戏系统、互联网搜索引擎和神经网络。
第14章展望计算机体系结构的未来。该章回顾了计算机体系结构发展过程中的重大进步和当前的发展趋势,并推断了这些趋势可能的发展方向,还讨论了可能改变计算机体系结构未来发展的潜在颠覆性技术。最后,该章为计算机架构师的发展提供了建议,以帮助他们适应未来的发展。
如何利用本书
本书每一章的末尾都有一个习题集,建议读者尝试解答所有习题。书中提供了所有习题的完整答案,读者也可以从https://github.com/PacktPublishing/Modern-Computer-Architecture-and-Organization上查阅答案。
如果代码示例和习题答案有更新,将会放在现有的GitHub存储库中。
我们还在https://github.com/PacktPublishing/上提供了丰富的图书和视频列表以及对应的代码包。
代码运行
可以访问https://bit.ly/2UWc6Ov查看本书代码的运行视频。
本书约定
文本中的代码体:用于指示代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。例如:“使用SBC指令执行减法会使新手6502汇编语言程序员更加困惑。”
代码块示例:

命令行输入或输出如下所示:

粗体:表示一个新的术语、一个重要的词,或读者在屏幕上看到的词。例如:“因为有4个集合,所以物理地址的集合字段减少到2位、标志字段增加到24位。”
提示或重要的说明
像这样展现。

上架指导

计算机\计算机组成

封底文字

本书是一本关于现代处理器与计算机体系结构的实用指南,既深入浅出地介绍了现代计算机系统的工作原理并探索了处理器的内在行为,又通过大量实例阐释计算机体系结构的应用,可以帮助你快速了解现代处理器关键技术、组件及发展趋势,设计更高效、可扩展性更好的软件系统。
本书首先介绍计算机体系结构的基础知识,包括晶体管、逻辑门、时序逻辑和指令操作等;然后介绍x86、x64、ARM和RISC-V等现代处理器体系结构及其指令集;之后介绍计算机体系结构的应用,针对具体需求讨论了不同体系结构的决策如何影响计算机的配置优化;最后展望计算机体系结构的未来发展方向,讨论了可能改变计算机体系结构未来发展的潜在颠覆性技术。
学完本书,你将能:
掌握晶体管技术和数字电路原理。
理解计算机处理器的基本功能单元。
理解流水线和超标量执行。
使用浮点数据格式。
理解监控模式的目的和操作。
在低成本的FPGA板上实现完整的RISC-V处理器。
探索虚拟机实现的相关技术。
编写量子计算程序并在量子计算机上运行。

图书目录

前言
第一部分 计算机体系结构基础知识
第1章 计算机体系结构简介2
1.1 自动化计算设备的演进2
1.1.1 巴贝奇分析机2
1.1.2 ENIAC3
1.1.3 IBM PC4
1.1.4 iPhone6
1.2 摩尔定律7
1.3 计算机体系结构9
1.3.1 二进制数和十六进制数9
1.3.2 6502微处理器12
1.3.3 6502指令集13
1.4 总结15
1.5 习题15
第2章 数字逻辑17
2.1 电路17
2.2 晶体管18
2.3 逻辑门19
2.4 锁存器21
2.5 触发器23
2.6 寄存器24
2.7 加法器25
2.8 时钟27
2.9 时序逻辑28
2.10 硬件描述语言28
2.11 总结32
2.12 习题32
第3章 处理器要素33
3.1 一个简单的处理器33
3.1.1 控制单元34
3.1.2 算术逻辑单元36
3.1.3 寄存器 39
3.2 指令集40
3.3 寻址方式40
3.3.1 立即寻址方式41
3.3.2 绝对寻址方式41
3.3.3 绝对索引寻址方式42
3.3.4 间接索引寻址方式43
3.4 指令类型44
3.4.1 内存加载指令和存储指令 44
3.4.2 寄存器到寄存器的数据传送指令45
3.4.3 堆栈指令45
3.4.4 算术运算指令45
3.4.5 逻辑运算指令46
3.4.6 分支指令46
3.4.7 子程序调用和返回指令46
3.4.8 处理器标志指令47
3.4.9 中断相关的指令47
3.4.10 空操作指令47
3.5 中断处理47
3.5.1 IRQ处理47
3.5.2 NMI处理48
3.5.3 BRK指令处理49
3.6 输入/输出操作50
3.6.1 程序查询I/O51
3.6.2 中断驱动I/O51
3.6.3 直接存储器访问51
3.7 总结52
3.8 习题52
第4章 计算机系统组件54
4.1 技术要求54
4.2 内存子系统54
4.3 MOSFET简介55
4.4 用MOSFET构建DRAM电路56
4.4.1 电容器56
4.4.2 DRAM位单元57
4.4.3 DDR4 SDRAM58
4.4.4 GDDR60
4.4.5 预取60
4.5 I/O子系统61
4.5.1 串行数据总线和并行数据总线61
4.5.2 PCI Express62
4.5.3 SATA63
4.5.4 M.264
4.5.5 USB64
4.5.6 Thunderbolt64
4.6 图形显示65
4.6.1 VGA65
4.6.2 DVI66
4.6.3 HDMI66
4.6.4 DisplayPort66
4.7 网络接口67
4.7.1 以太网67
4.7.2 Wi-Fi67
4.8 键盘和鼠标68
4.8.1 键盘68
4.8.2 鼠标69
4.9 现代计算机系统规范69
4.10 总结70
4.11 习题70
第5章 硬件-软件接口71
5.1 设备驱动程序71
5.1.1 并行端口72
5.1.2 PCIe设备驱动程序73
5.1.3 设备驱动程序结构74
5.2 BIOS75
5.3 引导过程77
5.3.1 BIOS引导77
5.3.2 UEFI引导77
5.3.3 嵌入式设备 78
5.4 操作系统78
5.5 进程和线程80
5.6 多处理84
5.7 总结84
5.8 习题85
第6章 专用计算领域86
6.1 实时计算86
6.2 数字信号处理89
6.2.1 模数转换器和数模转换器89
6.2.2 DSP硬件特性91
6.2.3 信号处理算法92
6.3 GPU处理95
6.4 专用体系结构示例98
6.5 总结99
6.6 习题99
第二部分 处理器体系结构和指令集
第7章 处理器和存储器体系结构102
7.1 技术要求102
7.2 冯·诺依曼体系结构、哈佛体系结构、改进型哈佛体系结构102
7.2.1 冯·诺依曼体系结构102
7.2.2 哈佛体系结构104
7.2.3 改进型哈佛体系结构104
7.3 物理内存和虚拟内存105
7.4 分页虚拟内存107
7.4.1 页面状态位109
7.4.2 内存池110
7.5 内存管理单元111
7.6 总结113
7.7 习题113
第8章 性能提升技术114
8.1 高速缓存114
8.1.1 多级处理器缓存115
8.1.2 静态RAM116
8.1.3 一级缓存117
8.1.4 直接映射缓存117
8.1.5 组相联映射缓存119
8.1.6 全相联映射缓存120
8.1.7 处理器缓存写策略121
8.1.8 二级缓存和三级缓存122
8.2 指令流水线123
8.2.1 超流水线125
8.2.2 流水线冒险125
8.2.3 微操作和寄存器重命名126
8.2.4 条件分支127
8.3 同时多线程128
8.4 SIMD处理129
8.5 总结129
8.6 习题130
第9章 专用处理器扩展131
9.1 技术要求131
9.2 处理器的特权模式131
9.2.1 中断和异常处理131
9.2.2 保护环133
9.2.3 监控模式和用户模式135
9.2.4 系统调用135
9.3 浮点数运算136
9.3.1 8087浮点协处理器137
9.3.2 IEEE 754浮点数标准138
9.4 功耗管理139
9.5 系统安全管理140
9.6 总结142
9.7 习题142
第10章 现代处理器体系结构与指令集143
10.1 技术要求143
10.2 x86体系结构与指令集143
10.2.1 x86寄存器集145
10.2.2 x86寻址方式147
10.2.3 x86指令类别149
10.2.4 x86指令格式152
10.2.5 x86汇编语言153
10.3 x64体系结构与指令集155
10.3.1 x64寄存器集156
10.3.2 x64指令类别和格式156
10.3.3 x64汇编语言157
10.4 32位ARM体系结构与指令集158
10.4.1 ARM寄存器集160
10.4.2 ARM寻址方式161
10.4.3 ARM指令类别162
10.4.4 ARM汇编语言164
10.5 64位ARM体系结构与指令集166
10.6 总结168
10.7 习题169
第11章 RISC-V体系结构与指令集171
11.1 技术要求171
11.2 RISC-V体系结构与功能171
11.3 RISC-V基础指令集173
11.3.1 计算指令173
11.3.2 控制流指令174
11.3.3 访存指令174
11.3.4 系统指令175
11.3.5 伪指令176
11.3.6 特权级177
11.4 RISC-V扩展178
11.4.1 M扩展178
11.4.2 A扩展178
11.4.3 C扩展179
11.4.4 F扩展和D扩展179
11.4.5 其他扩展180
11.5 64位RISC-V180
11.6 标准RISC-V配置181
11.7 RISC-V汇编语言181
11.8 在FPGA中实现RISC-V182
11.9 总结185
11.10 习题185
第三部分 计算机体系结构的应用
第12章 处理器虚拟化188
12.1 技术要求188
12.2 虚拟化介绍188
12.2.1  虚拟化类型188
12.2.2 处理器虚拟化的类型190
12.3 虚拟化的挑战193
12.3.1 不安全指令194
12.3.2 影子页表194
12.3.3 安全性194
12.4 虚拟化现代处理器195
12.4.1 x86处理器虚拟化195
12.4.2 ARM处理器虚拟化196
12.4.3 RISC-V处理器虚拟化196
12.5 虚拟化工具197
12.5.1 VirtualBox197
12.5.2 VMware Workstation197
12.5.3 VMware ESXi198
12.5.4 KVM198
12.5.5 Xen198
12.5.6 QEMU198
12.6 虚拟化和云计算199
12.7 总结199
12.8 习题200
第13章 领域专用计算机体系结构201
13.1 技术要求201
13.2 设计满足特定需求的计算机系统201
13.3 智能手机体系结构202
13.4 PC体系结构204
13.4.1 Alienware Aurora Ryzen Edition游戏台式机204
13.4.2 Ryzen 9 3950X的分支预测205
13.4.3 Nvidia GeForce RTX 2080 Ti GPU205
13.4.4 Aurora子系统206
13.5 仓储式计算体系结构 207
13.5.1 WSC硬件207
13.5.2 基于机架的服务器209
13.5.3 硬件故障管理 210
13.5.4 电力消耗210
13.5.5 WSC作为多级信息缓存211
13.6 神经网络与机器学习体系结构211
13.7 总结213
13.8 习题214
第14章 计算机体系结构的未来发展方向215
14.1 计算机体系结构的发展历程215
14.2 未来的发展趋势216
14.2.1 重温摩尔定律216
14.2.2 3D堆叠217
14.2.3 提高设备的专用化程度217
14.3 潜在的颠覆性技术218
14.3.1 量子物理学218
14.3.2 自旋电子学219
14.3.3 量子计算219
14.3.4 碳纳米管222
14.4 培养适应未来发展的技能222
14.4.1 持续学习222
14.4.2 会议与期刊223
14.5 总结224
14.6 习题224
习题答案225
第1章习题答案225
第2章习题答案236
第3章习题答案240
第4章习题答案248
第5章习题答案249
第6章习题答案251
第7章习题答案253
第8章习题答案255
第9章习题答案256
第10章习题答案263
第11章习题答案289
第12章习题答案295
第13章习题答案298
第14章习题答案300

教学资源推荐
作者: [英]艾伦?克莱门茨(Alan Clements)著
作者: 袁春风 吴海军 武港山 余子濠 编著
作者: Linda Null,Julia Lobur
作者: [美]道格拉斯·科莫(Douglas Comer)著
参考读物推荐
作者: Mark Artiges等
作者: 汪文祥 邢金璋 著