
本书是普通高等教育“十一五”国家级规划教材。全书共 6 章。第 1 章简要介绍计算机系统结构的基本概念,以及计算机系统结构的形成和发展过程。第 2 章到第 6 章以现代计算机系统结构和并行处理为主线,本着计算机系统结构中硬中有软、软中有硬、相互转换、彼此渗透的观点,从原理、结构、分析、设计和实现等方面,对 CPU 及加速部件、存储系统结构、流水线结构、并行处理机、多处理机系统、RISC结构、集群、网格、云计算及虚拟化技术等进行了比较深入的分析和探讨。本书是高等学校计算机专业本科生“计算机系统结构”课程的通用教材,也可作为有关专业研究生的教材和科技工作者的参考书。
前 言 本书是在1997年出版的“九五”国家级规划教材《计算机系统结构》、2003年出版的普通高等教育“十五”国家级规划教材《计算机系统结构(第2版)》和2010年出版的普通高等教育“十一五”国家级规划教材《计算机系统结构(第3版)》的基础上,吸取了计算机系统结构和并行处理发展的新理论、新成果和国外同类教材的优点,并对《计算机系统结构(第3版)》进行较大修改和增补后编写而成的。 “计算机系统结构”是一门非常注重教授思想和方法的课程。计算机系统结构以功能和性能为目标,紧密围绕计算、存储、网络三方面来提高系统性能,以满足社会不断增长的需求。 本书非常注重理论联系实践,读者通过学习OpenMP,CUDA,MPI等并行编程及性能调优方法将有助于理解和掌握系统结构的基础理论和方法,并建立系统级的思想。 本书包括6章内容。 第 1 章简要介绍计算机系统结构的基本概念,以及计算机系统结构的形成和发展过程。 第 2 章到第 6 章以现代计算机系统结构和并行处理为主线,本着计算机系统结构中硬中有软、软中有硬、相互转换、彼此渗透的特点,从原理、结构、分析、设计和实现等方面,对CPU及加速部件、存储系统结构、流水线结构、并行处理机、多处理机系统、RISC结构、集群、网格、云计算及虚拟化技术等进行了比较深入的分析和探讨。 本书的建议学时数为40~60学时。 本书力求文字精练,内容具体、准确,反映现代计算机系统结构的发展水平。希望通过本书的出版,听取各方面意见,为今后本书质量进一步提高并成为精品教材打下良好基础。 与第3版相比,本书主要有如下特点: 第一,反映了国内外计算机系统结构方面比较成熟的研究成果和最新发展。 第二,增加了较多的新内容,凡属于计算机系统结构的主要内容均有涉及。 第三,对许多关键知识点的陈述更加深入,吸取了国外同类教材的部分量化研究方法,力求从系统定量分析和系统设计的维度来介绍计算机系统结构的基本概念和基本分析方法。 本书各章内容相对独立,教师使用时可以根据不同要求任选其中的章节组织教学。 非常感谢刘宝化、王陈星宇、邓荣、陆唯佳、赵爱华、丁淋、曾庆威、徐扬、陈璐瑶、李钦、顾文君在本书编写过程中提供的帮助。 由于编者水平有限,书中难免存在一些缺点和错误,希望广大读者批评指正,以便在重印时及时改正。需要指出的是:本书中“处理机”和“处理器”并没有刻意统一,因为一般早期的称为“处理机”,后期随着技术的发展称为“处理器”,本书尽量按照业界习惯使用,不做严格区分。本书为读者提供配套的教学资料(含教学课件等),有需要者请登录华信教育资源网(www.hxedu.com.cn),注册之后免费下载。 作 者
目 录 第1章 计算机系统结构导论 1 1.1 计算机系统的基本概念 1 1.2 计算机系统的发展 1 1.2.1 冯·诺依曼体系结构的特点 2 1.2.2 器件发展对系统结构的影响 3 1.2.3 应用对系统结构的影响 4 1.2.4 算法对系统结构的影响 5 1.2.5 价格对系统结构的影响 5 1.2.6 功耗对系统结构的影响 5 1.3 计算机系统的功能和结构 6 1.3.1 计算机系统的层次结构 6 1.3.2 计算机系统结构定义 8 1.3.3 计算机组成与实现 9 1.3.4 计算机系统结构、组成和实现三者的关系 9 1.3.5 计算机系统的特性 10 1.4 计算机系统设计的方法 12 1.4.1 软、硬件取舍的基本原则 12 1.4.2 计算机系统设计的定量原则 12 1.4.3 计算机系统的设计任务 14 1.4.4 计算机系统的设计步骤 15 1.5 现代计算机系统结构的研究领域 16 1.5.1 计算机系统结构分类 16 1.5.2 现代计算机系统结构研究方向 19 1.5.3 计算机系统结构发展趋势 19 1.6 小结 21 习题 22 第2章 处理器及其相关技术 24 2.1 CPU组成 24 2.2 数据表示 25 2.3 指令优化 26 2.3.1 指令格式优化 26 2.3.2 指令系统分析 28 2.4 指令集 29 2.4.1 RISC和CISC 29 2.4.2 RISC-V 30 2.5 时钟频率 31 2.6 并行 31 2.6.1 指令级并行 31 2.6.2 线程级并行 32 2.6.3 数据并行和SIMD指令集 32 2.7 多核技术 33 2.8 CPU内部互连 34 2.8.1 早期的星形总线与跨Socket互连 34 2.8.2 Intel环形总线架构 35 2.8.3 Intel Mesh总线架构 37 2.8.4 AMD CCX架构和Infinity Fabric总线 37 2.9 CPU外部互连 39 2.10 OpenMP多线程并行编程 41 2.10.1 编译制导语句 41 2.10.2 API函数 42 2.11 GPU 44 2.11.1 GPU概述 44 2.11.2 GPU硬件结构 46 2.11.3 GPU的存储层次 48 2.12 CUDA 48 2.12.1 CUDA简介 48 2.12.2 线程管理 49 2.12.3 CUDA编程 49 2.13 OpenMP-CUDA混合编程 51 2.14 多核CPU-GPU计算平台任务调度 54 2.15 小结 57 习题 58 第3章 存储系统结构 61 3.1 地址映像和变换 61 3.1.1 程序的定位 61 3.1.2 全相联映像及其变换 66 3.1.3 直接映像及其变换 67 3.1.4 组相联映像及其变换 68 3.1.5 段相联映像及其变换 71 3.2 替换算法及其实现 72 3.2.1 替换算法的分析 72 3.2.2 LRU替换算法的实现 75 3.3 并行主存系统 77 3.3.1 并行主存系统频宽分析 77 3.3.2 单体多字存储器 78 3.3.3 多体交叉存储器 79 3.3.4 地址空间的划分和访问周期的控制 81 3.4 高速缓冲存储器(Cache) 84 3.4.1 Cache基本结构和工作原理 84 3.4.2 Cache的替换算法分析 86 3.4.3 Cache的透明性 87 3.4.4 任务切换对失效率的影响 88 3.4.5 多处理机系统的Cache结构 89 3.4.6 Cache-主存层次性能分析 90 3.4.7 Cache性能计算 92 3.5 虚拟存储器 97 3.5.1 虚拟存储器基本结构和工作原理 97 3.5.2 虚地址和辅存实地址的变换 98 3.5.3 多用户虚拟存储器 99 3.5.4 加快地址变换的方法 102 3.5.5 虚拟存储器性能分析 105 3.6 主存保护与控制 108 3.6.1 主存保护 108 3.6.2 主存控制部件 111 3.6.3 磁盘冗余阵列 112 3.7 小结 115 习题 116 第4章 流水线结构 118 4.1 流水线结构原理 118 4.1.1 重叠方式 118 4.1.2 先行控制 121 4.1.3 流水线技术 123 4.2 线性流水线性能指标 126 4.2.1 吞吐率 126 4.2.2 加速比 127 4.2.3 效率 127 4.2.4 流水线段数选择 128 4.3 非线性流水线 130 4.3.1 预约表和等待时间分析 130 4.3.2 无冲突调度 133 4.3.3 流水线调度优化 135 4.4 流水线相关处理 138 4.4.1 局部相关及处理 138 4.4.2 全局相关及处理 139 4.4.3 流水线中断处理 139 4.5 超级流水处理机 140 4.5.1 超标量处理机 140 4.5.2 超流水线处理机 143 4.5.3 超长指令字处理机 144 4.6 小结 146 习题 147 第5章 并行处理机与多处理机系统 150 5.1 系统结构中的并行性概念 150 5.2 并行处理机基本结构 151 5.2.1 分布式存储器结构 153 5.2.2 共享式存储器结构 159 5.2.3 并行处理机特点 160 5.3 并行处理机互连网络 160 5.3.1 互连网络基本概念 161 5.3.2 单级互连函数 162 5.3.3 互连网络特性 165 5.3.4 静态互连网络 166 5.3.5 动态互连网络 171 5.3.6 多级互连网络 173 5.3.7 互连网络寻径 177 5.4 多处理机系统 182 5.4.1 多处理机系统的定义 183 5.4.2 多重处理对处理机特性的要求 183 5.5 多处理机结构 185 5.5.1 多处理机的基本结构 185 5.5.2 多处理机的互连网络 186 5.5.3 多处理机系统的存储器结构 192 5.5.4 多处理机系统的特点 196 5.6 多处理机的软件 197 5.6.1 算术表达式的并行算法 197 5.6.2 程序并行性分析 198 5.6.3 并行程序语言 199 5.6.4 多处理机的操作系统 202 5.7 多处理机系统实例 205 5.7.1 多处理机 205 5.7.2 Cmmp多处理机 207 5.8 小结 209 习题 210 第6章 集群、网格和云计算 212 6.1 集群概述 212 6.2 集群系统的软硬件组成 214 6.2.1 计算节点 214 6.2.2 网络 215 6.2.3 存储节点 216 6.2.4 管理节点 218 6.2.5 MPI并行编程 220 6.3 集群系统的设计和维护 224 6.3.1 集群系统的设计 224 6.3.2 集群系统的维护 228 6.4 集群系统的性能测试 230 6.4.1 性能评价和测量 230 6.4.2 Linpack测试 232 6.5 高性能集群计算机系统实例 233 6.6 网格 235 6.6.1 网格概述 235 6.6.2 网格技术简介 235 6.7 云计算 237 6.7.1 云计算概述 237 6.7.2 云计算的关键技术 240 6.7.3 OpenStack开源虚拟化平台 245 6.8 大数据 247 6.9 小结 249 习题 250 参考文献 251
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0414770