计算机科学丛书:计算机组成与设计:硬件、软件接口 原书第5版作者: [美]帕特森 出版时间:2020年版内容简介本书是计算机组成的经典教材,着眼于当前计算机设计中最基本的概念,详细展示软硬件件的关系,介绍当代计算机系统发展的主流技术和最新成就。本书以MIPS处理器为例介绍计算机硬件技术、汇编语言、计算机算术、流水线以及存储器层次结构等基本技术。书中强调从串行处理到并行处理的最新革新,每章中都包含并行硬件和软件的主题,以软硬件协同设计发挥多核性能为最终目标。另外,本版与时俱进地使用了如ARMCortexA8和IntelCorei7等现代设计来说明计算机设计的基本原理。本书适合作为高等院校计算机专业教材,对广大技术人员也有很高的参考价值。 [1] 目录出版者的话本书赞誉译者序前言作者简介第1章 计算机概要与技术11.1 引言11.1.1 计算应用的分类及其特性21.1.2 欢迎来到后PC时代31.1.3 你能从本书学到什么41.2 计算机系统结构中的8个伟大思想61.2.1 面向摩尔定律的设计61.2.2 使用抽象简化设计61.2.3 加速大概率事件61.2.4 通过并行提高性能71.2.5 通过流水线提高性能71.2.6 通过预测提高性能71.2.7 存储器层次71.2.8 通过冗余提高可靠性71.3 程序概念入门71.4 硬件概念入门101.4.1 显示器111.4.2 触摸屏121.4.3 打开机箱121.4.4 数据安全151.4.5 与其他计算机通信161.5 处理器和存储器制造技术171.6 性能201.6.1 性能的定义201.6.2 性能的度量221.6.3 CPU性能及其因素231.6.4 指令的性能241.6.5 经典的CPU性能公式251.7 功耗墙271.8 沧海巨变:从单处理器向多处理器转变291.9 实例:Intel Core i7基准311.9.1 SPEC CPU基准测试程序311.9.2 SPEC功耗基准测试程序321.10 谬误与陷阱331.11 本章小结351.12 历史观点和拓展阅读361.13 练习题36第2章 指令:计算机的语言402.1 引言402.2 计算机硬件的操作432.3 计算机硬件的操作数442.3.1 存储器操作数452.3.2 常数或立即数操作数472.4 有符号数和无符号数482.5 计算机中指令的表示532.6 逻辑操作582.7 决策指令602.7.1 循环612.7.2 case/switch语句632.8 计算机硬件对过程的支持642.8.1 使用更多的寄存器662.8.2 嵌套过程672.8.3 在栈中为新数据分配空间692.8.4 在堆中为新数据分配空间702.9 人机交互722.10 MIPS中32位立即数和寻址752.10.1 32位立即数752.10.2 分支和跳转中的寻址762.10.3 MIPS寻址模式总结782.10.4 机器语言解码792.11 并行与指令:同步812.12 翻译并执行程序832.12.1 编译器832.12.2 汇编器842.12.3 链接器852.12.4 加载器872.12.5 动态链接库872.12.6 启动一个Java程序892.13 以一个C排序程序作为完整的例子902.13.1 swap过程902.13.2 sort过程912.14 数组与指针962.14.1 用数组实现clear962.14.2 用指针实现clear972.14.3 比较两个版本的clear972.15 高级内容:编译C语言和解释Java语言982.16 实例:ARMv7(32位)指令集982.16.1 寻址模式992.16.2 比较和条件分支1002.16.3 ARM的特色1002.17 实例:x86指令集1022.17.1 Intel x86的改进1022.17.2 x86寄存器和数据寻址模式1032.17.3 x86整数操作1052.17.4 x86指令编码1072.17.5 x86总结1082.18 实例:ARMv8(64位)指令集1082.19 谬误与陷阱1092.20 本章小结1102.21 历史观点和拓展阅读1112.22 练习题112第3章 计算机的算术运算1173.1 引言1173.2 加法和减法1173.3 乘法1213.3.1 顺序的乘法算法和硬件1213.3.2 有符号乘法1243.3.3 更快速的乘法1243.3.4 MIPS中的乘法1243.3.5 小结1253.4 除法1253.4.1 除法算法及其硬件结构1253.4.2 有符号除法1283.4.3 更快速的除法1283.4.4 MIPS中的除法1293.4.5 小结1293.5 浮点运算1303.5.1 浮点表示1313.5.2 浮点加法1353.5.3 浮点乘法1383.5.4 MIPS中的浮点指令1393.5.5 算术精确性1453.5.6 小结1463.6 并行性和计算机算术:子字并行1483.7 实例:x86中流处理SIMD扩展和高级向量扩展1493.8 加速:子字并行和矩阵乘法1503.9 谬误与陷阱1533.10 本章小结1553.11 历史观点和拓展阅读1583.12 练习题159第4章 处理器1624.1 引言1624.2 逻辑设计的一般方法1654.3 建立数据通路1674.4 一个简单的实现机制1734.4.1 ALU控制1734.4.2 主控制单元的设计1754.4.3 为什么不使用单周期实现方式1814.5 流水线概述1824.5.1 面向流水线的指令集设计1864.5.2 流水线冒险1864.5.3 对流水线概述的小结1914.6 流水线数据通路及其控制1924.6.1 图形化表示的流水线2004.6.2 流水线控制2034.7 数据冒险:旁路与阻塞2064.8 控制冒险2144.8.1 假定分支不发生2154.8.2 缩短分支的延迟2154.8.3 动态分支预测2164.8.4 流水线小结2204.9 异常2214.9.1 MIPS体系结构中的异常处理2214.9.2 在流水线实现中的异常2224.10 指令级并行2264.10.1 推测的概念2274.10.2 静态多发射处理器2274.10.3 动态多发射处理器2314.10.4 能耗效率与高级流水线2334.11 实例:ARM Cortex-A8和Intel Core i7流水线2344.11.1 ARM Cortex-A82354.11.2 Intel Core i7 9202364.11.3 Intel Core i7 920的性能2384.12 运行更快:指令级并行和矩阵乘法2404.13 高级主题:通过硬件设计语言描述和建模流水线来介绍数字设计以及更多流水线示例2424.14 谬误与陷阱2424.15 本章小结2434.16 历史观点和拓展阅读2434.17 练习题243第5章 大容量和高速度:开发存储器层次结构2525.1 引言2525.2 存储器技术2555.2.1 SRAM技术2565.2.2 DRAM技术2565.2.3 闪存2585.2.4 磁盘存储器2585.3 cache的基本原理2595.3.1 cache访问2615.3.2 cache缺失处理2655.3.3 写操作处理2665.3.4 一个cache的例子:内置FastMATH处理器2675.3.5 小结2695.4 cache性能的评估和改进2705.4.1 通过更灵活地放置块来减少cache缺失2725.4.2 在cache中查找一个块2755.4.3 替换块的选择2765.4.4 使用多级cache结构减少缺失代价2775.4.5 通过分块进行软件优化2805.4.6 小结2835.5 可信存储器层次2835.5.1 失效的定义2835.5.2 纠正一位错、检测两位错的汉明编码(SEC/DED)2845.6 虚拟机2875.6.1 虚拟机监视器的必备条件2895.6.2 指令集系统结构(缺乏)对虚拟机的支持2895.6.3 保护和指令集系统结构2895.7 虚拟存储器2905.7.1 页的存放和查找2935.7.2 缺页故障2945.7.3 关于写2975.7.4 加快地址转换:TLB2975.7.5 集成虚拟存储器、TLB和cache 3005.7.6 虚拟存储器中的保护3025.7.7 处理TLB缺失和缺页3035.7.8 小结3075.8 存储器层次结构的一般框架3095.8.1 问题1:一个块可以被放在何处3095.8.2 问题2:如何找到一个块3105.8.3 问题3:当cache缺失时替换哪一块3115.8.4 问题4:写操作如何处理3115.8.5 3C:一种理解存储器层次结构行为的直观模型3125.9 使用有限状态机来控制简单的cache3145.9.1 一个简单的cache3145.9.2 有限状态机3155.9.3 一个简单的cache控制器的有限状态机3165.10 并行与存储器层次结构:cache一致性3175.10.1 实现一致性的基本方案3185.10.2 监听协议3195.11 并行与存储器层次结构:冗余廉价磁盘阵列3205.12 高级内容:实现cache控制器3205.13 实例:ARM Cortex-A8和Intel Core i7的存储器层次结构3205.14 运行更快:cache分块和矩阵乘法3245.15 谬误和陷阱3265.16 本章小结3295.17 历史观点和拓展阅读3295.18 练习题329第6章 从客户端到云的并行处理器3406.1 引言3406.2 创建并行处理程序的难点3426.3 SISD、MIMD、SIMD、SPMD和向量机3456.3.1 在x86中的SIMD:多媒体扩展3466.3.2 向量机3466.3.3 向量与标量的对比3476.3.4 向量与多媒体扩展的对比3486.4 硬件多线程3506.5 多核和其他共享内存多处理器3526.6 图形处理单元简介3556.6.1 NVIDIA GPU体系结构简介3566.6.2 NVIDIA GPU存储结构3576.6.3 GPU展望3586.7 集群、仓储级计算机和其他消息传递多处理器3606.8 多处理器网络拓扑简介3636.9 与外界通信:集群网络3666.10 多处理器测试集程序和性能模型3666.10.1 性能模型3686.10.2 Roofline模型3696.10.3 两代Opteron的比较3706.11 实例:评测Intel Core i7 960和NVIDIA Tesla GPU的Roofline模型3736.12 运行更快:多处理器和矩阵乘法3766.13 谬误与陷阱3786.14 本章小结3796.15 历史观点和拓展阅读3816.16 练习题382附录A 汇编器、链接器和SPIM仿真器389附录B 逻辑设计基础437索引494 上一篇: 网络空间安全重点规划丛书 代码安全 杨东晓 2020年版 下一篇: Android 10 Kotlin编程通俗演义 牛搞 2020年版