内容简介
本书是一本关于现代处理器与计算机体系结构的实用指南,既深入浅出地介绍了现代计算机系统的工作原理并探索了处理器的内部行为,又通过大量实例阐释计算机体系结构的应用,并对计算机体系结构相关重要领域的新技术进行介绍,使抽象的理论知识得以具体化,帮助读者快速了解现代处理器关键技术、组件及发展趋势,设计更高效、可扩展性更好的软件系统。本书包含了自第1版出版以来的一些最新技术,并增加了计算机体系结构相关重要领域的新内容。新的章节包括网络安全、区块链和比特币挖矿,以及自动驾驶汽车计算体系结构等。
目录
序
前言
作者简介
审校者简介
第1章 计算机体系结构简介1
1.1 自动计算设备的发展1
1.1.1 查尔斯·巴贝奇的分析机1
1.1.2 ENIAC3
1.1.3 IBM PC 3
1.1.4 iPhone5
1.2 摩尔定律6
1.3 计算机体系结构 8
1.3.1 使用电压电平表示数据值8
1.3.2 二进制数和十六进制数8
1.3.3 6502微处理器11
1.3.4 6502指令集 13
1.4 总结14
1.5 习题15
第2章 数字逻辑16
2.1 电路16
2.2 晶体管17
2.3 逻辑门17
2.4 锁存器20
2.5 触发器22
2.6 寄存器23
2.7 加法器24
2.8 时钟26
2.9 时序逻辑27
2.10 硬件描述语言27
2.11 总结30
2.12 习题31
第3章 处理器要素32
3.1 一个简单的处理器32
3.1.1 控制单元33
3.1.2 算术逻辑单元35
3.1.3 寄存器 39
3.2 指令集40
3.3 寻址方式40
3.3.1 立即寻址方式40
3.3.2 绝对寻址方式41
3.3.3 绝对索引寻址方式41
3.3.4 间接索引寻址方式43
3.4 指令类型44
3.4.1 内存加载和存储指令 44
3.4.2 寄存器到寄存器的数据传输
指令44
3.4.3 栈指令44
3.4.4 算术运算指令45
3.4.5 逻辑运算指令45
3.4.6 分支指令46
3.4.7 子程序调用和返回指令46
3.4.8 处理器标志指令46
3.4.9 中断相关的指令46
3.4.10 空操作指令47
3.5 中断处理47
3.5.1 IRQ处理47
3.5.2 NMI处理48
3.5.3 BRK指令处理48
3.6 I/O操作50
3.6.1 程序查询I/O50
3.6.2 中断驱动I/O51
3.6.3 直接内存访问51
3.7 总结52
3.8 习题52
第4章 计算机系统组件53
4.1 内存子系统53
4.2 MOSFET简介54
4.3 用MOSFET构建DRAM电路55
4.3.1 电容器55
4.3.2 DRAM位单元56
4.3.3 DDR5 SDRAM58
4.3.4 GDDR59
4.3.5 预取60
4.4 I/O子系统60
4.4.1 并行数据总线和串行数据
总线60
4.4.2 PCI Express62
4.4.3 SATA63
4.4.4 M.263
4.4.5 USB63
4.4.6 Thunderbolt 64
4.5 图形显示64
4.5.1 VGA65
4.5.2 DVI65
4.5.3 HDMI66
4.5.4 DisplayPort66
4.6 网络接口66
4.6.1 以太网66
4.6.2 Wi-Fi67
4.7 键盘和鼠标68
4.7.1 键盘68
4.7.2 鼠标68
4.8 现代计算机系统规格69
4.9 总结70
4.10 习题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引导78
5.3.3 可信引导78
5.3.4 嵌入式设备 79
5.4 操作系统79
5.5 进程和线程80
5.6 多处理85
5.7 总结86
5.8 习题86
第6章 专用计算领域87
6.1 实时计算87
6.2 数字信号处理90
6.2.1 ADC和DAC90
6.2.2 DSP硬件特性92
6.2.3 信号处理算法93
6.3 GPU处理96
6.4 专用体系结构示例99
6.5 总结100
6.6 习题100
第7章 处理器和存储器体系结构102
7.1 冯·诺伊曼体系结构、哈佛体系
结构、改进型哈佛体系结构102
7.1.1 冯·诺伊曼体系结构102
7.1.2 哈佛体系结构103
7.1.3 改进型哈佛体系结构104
7.2 物理内存和虚拟内存105
7.2.1 分页虚拟内存107
7.2.2 页面状态位 109
7.2.3 内存池110
7.3 内存管理单元111
7.4 总结113
7.5 习题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 全相联缓存121
8.1.7 处理器缓存写策略121
8.1.8 二级处理器缓存和三级
处理器缓存122
8.2 指令流水线123
8.2.1 超流水线 125
8.2.2 流水线冒险126
8.2.3 微操作和寄存器重命名127
8.2.4 条件分支128
8.3 同时多线程128
8.4 SIMD处理129
8.5 总结130
8
前言/序言
前 言
欢迎阅读本书。自第1版出版以来,我非常高兴收到了读者的大量反馈和建议。当然,我非常感激读者的所有反馈,特别是指出本书错误和遗漏的读者。
本书介绍了在现代处理器和计算机体系结构中使用的关键技术和组件,并针对具体需求,讨论了不同体系结构的决策如何影响计算机的配置优化。
现代计算机是一种复杂的设备。然而,当以层次化的方式来看时,每一级的复杂功能都很明晰。本书涵盖了众多主题,但只在有限的深度内对各个主题进行探讨。本书的目标是为现代计算设备进行一个简要明了的介绍,包括每一项重要技术和子系统,并阐释其与其他系统组件之间的关系。
本书包含自第1版出版以来出现的一些最新技术,并增加了计算机体系结构相关重要领域的新内容。新的章节包括网络安全、区块链和比特币挖矿,以及自动驾驶汽车计算体系结构等。
尽管计算系统的安全性一直非常重要,但是,最近不法黑客利用操作系统和应用程序的主要漏洞进行攻击,对世界各国造成了很大的负面影响。这些网络攻击凸显了计算机系统设计师将网络安全作为系统架构基本要素的必要性。
本书不会提供一个冗长的参考书单,如果读者想深入阅读,可以自行在互联网上查找相关内容。
互联网上聚集了大量的知识,如果读者能免于网上一些喧嚣言论的影响,就会发现互联网是一个巨大、凉爽、安静的图书馆。学会使用你最喜欢的搜索引擎的高级功能,同时,要学会从未知的观点中分辨出高质量的信息。如果读者对获得的信息有任何疑问,可以尝试检索多个信息来源。请重视信息的来源:如果要寻找有关Intel处理器的信息,请搜索Intel发布的文档。
阅读本书,读者将详细了解目前在广泛多样的数字系统中使用的计算机体系结构。读者还将了解当前体系结构技术的发展趋势,以及未来几年可能的一些突破性进展,这些突破或许会极大地影响计算系统结构的发展。
目标读者
本书适用于软件开发人员、计算机工程专业的学生、系统设计师、计算机科学专业人士、逆向工程师,以及希望了解各类现代计算机系统——从微型嵌入式设备到智能手机,再到仓储规模的云服务器群——的架构和设计原理的其他人员。读者还可探索这些技术在未来几年可能的发展方向。对计算机处理器的大体了解有益于阅读本书,但这并不是必需的。
本书内容
本书包含以下内容。
第1章首先介绍自动计算设备的简史,并描述了推动计算性能飞跃的重大技术进步。之后讨论摩尔定律,评估其在过去几十年中的适用性和对未来的影响。最后以6502微处理器为例,介绍计算机体系结构的基本概念。
第2章介绍作为开关元件的晶体管,并解释其在构造逻辑门中的应用。然后介绍如何通过组合简单的逻辑门来实现触发器和寄存器等。该章还将介绍时序逻辑的概念,时序逻辑是包含状态信息的逻辑,最后讨论使用时钟控制的数字电路。
第3章首先从概念上描述通用处理器。该章介绍指令集、寄存器集、指令加载、解码、执行和排序等概念,还将介绍内存加载和存储操作。随后介绍分支指令及其在循环和条件处理中的应用,最后介绍导致中断处理和I/O操作的一些实际因素。
第4章讨论包括多级缓存在内的计算机存储器及其与处理器的接口,还介绍包括中断处理、缓冲和专用I/O处理器在内的I/O需求。该章还将讨论包括键盘、鼠标、视频显示器和网络接口等I/O设备的一些特定需求,最后列举了这些元件在现代计算机应用中的描述性实例,包括智能移动设备、个人计算机、游戏系统、云服务器和专用机器学习系统。
第5章讨论计算机操作系统必须提供的高级服务的实现,包括磁盘I/O、网络通信和人机交互。该章将从处理器指令集和寄存器层面开始,介绍实现这些功能的软件层。最后介绍包括引导、多进程和多线程在内的操作系统功能。
第6章探索大多数用户往往不直接可见的计算领域,包括实时系统、数字信号处理和GPU处理。该章将讨论与每个计算领域相关的特定需求,并介绍实现这些功能的现代设备。
第7章深入研究包括冯·诺伊曼体系结构、哈佛体系结构和改进型哈佛体系结构在内的现代处理器体系结构。该章还讨论分页虚拟内存的实现,介绍计算机体系结构中内存管理功能的实现以及内存管理单元的功能。
第8章讨论许多实际计算机体系结构中的性能增强技术,这些技术的目标是使系统达到峰值执行速度。该章的主题是提高系统性能的重要技术,包括高速缓冲存储器的使用、指令流水线、指令级并行和单指令多数据(Single Instruction Multiple Data,SIMD)处理。
第9章重点介绍在处理器指令集级别实现的扩展,以提供超出一般数据处理需求之外的额外系统功能。该章介绍的扩展包括处理器的特权模式、浮点数运算、功耗管理和系统安全管理。
第10章研究包括x86、x64和ARM处理器在内的现代处理器设计中的体系结构和指令集特性。生产一系列处理器系列生产几十年之后便会面临需要保持代码向