计算机组成与设计:硬件/软件接口(原书第5版ARM版)/(美)大卫A.帕特森
全新正版 极速发货
¥
78.22
5.6折
¥
139
全新
库存37件
作者 [美]大卫·A. 帕特森David A. Patterson 约翰·L.亨尼斯Joh
出版社 机械工业出版社
ISBN 9787111608943
出版时间 2018-10
装帧 平装
开本 16开
定价 139元
货号 1201772514
上书时间 2024-12-16
商品详情
品相描述:全新
商品描述
作者简介 戴维?A.帕特森(David A.Patterson),Patte rson与Hennessy共同荣获了2017年度“图灵奖”,以表彰他们在计算机体系结构领域的开创性贡献。Patte rson现为Google杰出工程师,之前为加州大学伯克利分校教授。他曾任ACM主席一职.目前是ACM和IEEE会士,美国艺术与科学院和计算机历史博物馆院士,并入选了美国国家工程院、国家科学院和硅谷工程名人堂。他领导了RISCI的设计与实现工作,并且是RAID项目的。 目录 出版者的话赞誉译者序前言作者简介第1章 计算机的抽象与技术 11.1 引言 11.1.1 计算机应用的分类和特点 21.1.2 欢迎来到后PC时代 31.1.3 你能从本书中学到什么 41.2 计算机体系结构中的8个伟大思想 61.2.1 面向摩尔定律的设计 61.2.2 使用抽象简化设计 71.2.3 加速大概率事件 71.2.4 通过并行提高性能 71.2.5 通过流水线提高性能 71.2.6 通过预测提高性能 71.2.7 存储器层次结构 71.2.8 通过冗余提高可靠性 71.3 程序表象之下 81.4 硬件包装之下 101.4.1 显示器 111.4.2 触摸屏 121.4.3 打开机箱 131.4.4 数据的安全存储 151.4.5 与其他计算机通信 161.5 处理器和存储器制造技术 171.6 性能 201.6.1 性能的定义 201.6.2 性能的度量 221.6.3 CPU的性能及其度量因素 241.6.4 指令的性能 241.6.5 经典的CPU性能公式 251.7 功耗墙 281.8 沧海巨变:从单处理器向多处理器转变 291.9 实例:Intel Core i7基准测试 321.9.1 SPEC CPU基准测试程序 321.9.2 SPEC功耗基准测试程序 341.10 谬误与陷阱 341.11 本章小结 361.12 历史观点与拓展阅读 371.13 练习题 38第2章 指令:计算机的语言 422.1 引言 422.2 计算机硬件的操作 442.3 计算机硬件的操作数 462.3.1 存储器操作数 472.3.2 常数或立即数操作数 502.4 有符号数和无符号数 512.5 计算机中指令的表示 562.6 逻辑操作 612.7 决策指令 642.7.1 循环 652.7.2 边界检查的简便方法 672.7.3 case/switch语句 672.8 计算机硬件对过程的支持 682.8.1 使用更多的寄存器 692.8.2 过程嵌套 712.8.3 在栈中为新数据分配空间 732.8.4 在堆中为新数据分配空间 742.9 人机交互 762.10 LEGv8中的宽立即数和地址的寻址 792.10.1 宽立即数 792.10.2 分支中的寻址 802.10.3 LEGv8寻址模式总结 822.10.4 机器语言解码 822.11 并行与指令:同步 862.12 翻译并启动程序 882.12.1 编译器 882.12.2 汇编器 892.12.3 链接器 902.12.4 加载器 922.12.5 动态链接库 922.12.6 启动Java程序 942.13 综合实例:C排序程序 952.13.1 swap过程 952.13.2 sort过程 972.14 数组和指针 1012.14.1 用数组实现clear 1022.14.2 用指针实现clear 1022.14.3 比较两个版本的clear 1032.15 不错主题:编译C和解释Java 1042.16 实例:MIPS指令集 1042.17 实例:ARMv7(32位)指令集 1052.18 实例:x86指令集 1062.18.1 Intel x86的演进 1072.18.2 x86寄存器和数据寻址模式 1082.18.3 x86整数操作 1102.18.4 x86指令编码 1122.18.5 x86总结 1122.19 实例:ARMv8指令集的其他部分 1132.19.1 完整的ARMv8整数算术逻辑指令 1142.19.2 完整的ARMv8整数数据传输指令 1162.19.3 完整的ARMv8分支指令 1172.20 谬误与陷阱 1182.21 本章小结 1192.22 历史观点与拓展阅读 1212.23 练习题 121第3章 计算机的算术运算 1283.1 引言 1283.2 加法和减法 1283.3 乘法 1313.3.1 顺序乘法算法及硬件 1313.3.2 有符号乘法 1343.3.3 更快速的乘法 1343.3.4 LEGv8中的乘法 1343.3.5 小结 1353.4 除法 1353.4.1 除法算法及硬件 1353.4.2 有符号除法 1373.4.3 更快速的除法 1383.4.4 LEGv8中的除法 1383.4.5 小结 1393.5 浮点运算 1403.5.1 浮点表示 1413.5.2 异常和中断 1423.5.3 IEEE 754浮点标准 1423.5.4 浮点加法 1453.5.5 浮点乘法 1483.5.6 LEGv8中的浮点指令 1503.5.7 算术准确性 1543.5.8 小结 1563.6 并行与计算机算术:子字并行 1573.7 实例:x86中的流处理SIMD扩展和不错向量扩展 1583.8 实例:其他的ARMv8算术指令 1603.8.1 完整的ARMv8整数和浮点算术指令 1603.8.2 完整的ARMv8 SIMD指令 1613.9 加速:子字并行和矩阵乘法 1633.10 谬误与陷阱 1663.11 本章小结 1683.12 历史观点与拓展阅读 1713.13 练习题 171第4章 处理器 1754.1 引言 1754.1.1 一种基本的LEGv8实现 1764.1.2 实现概述 1764.2 逻辑设计的一般方法 1784.3 建立数据通路 1804.4 一种简单的实现机制 1874.4.1 ALU控制 1874.4.2 主控制单元的设计 1884.4.3 数据通路的操作 1914.4.4 完成控制单元 1944.4.5 为什么不使用单周期实现 1954.5 流水线概述 1974.5.1 面向流水线的指令集设计 2004.5.2 流水线冒险 2004.5.3 流水线概述小结 2064.6 流水线数据通路及其控制 2074.6.1 图形化表示的流水线 2154.6.2 流水线控制 2184.7 数据冒险:旁路与阻塞 2214.8 控制冒险 2314.8.1 假定分支不发生 2314.8.2 减少分支延迟 2324.8.3 动态分支预测 2344.8.4 流水线小结 2364.9 异常 2364.9.1 LEGv8体系结构中的异常处理 2374.9.2 流水线实现中的异常 2384.10 指令级并行 2414.10.1 推测的概念 2424.10.2 静态多发射 2434.10.3 动态多发射 2464.10.4 动态流水线调度 2474.10.5 能耗效率与不错流水线 2494.11 实例:ARM Cortex-A53和Intel Core i7流水线 2504.11.1 ARM Cortex-A53 2514.11.2 Intel Core i7 920 2534.11.3 Intel Core i7 920的性能 2554.12 加速:指令级并行和矩阵乘法 2564.13 不错主题:采用硬件设计语言描述和建模流水线的数字设计技术以及更多流水线示例 2584.14 谬误与陷阱 2584.15 本章小结 2594.16 历史观点与拓展阅读 2604.17 练习题 260第5章 大容量和高速度:开发存储器层次结构 2715.1 引言 2715.2 存储器技术 2755.2.1 SRAM技术 2755.2.2 DRAM技术 2755.2.3 闪存 2775.2.4 磁盘存储器 2775.3 cache的基本原理 2795.3.1 cache访问 2805.3.2 cache缺失处理 2855.3.3 写操作处理 2855.3.4 cache实例:Intrinsity FastMATH处理器 2875.3.5 小结 2895.4 cache性能的评估和改进 2895.4.1 通过更灵活的块放置策略来减少cache缺失 2925.4.2 在cache中查找块 2955.4.3 替换块的选择 2965.4.4 使用多级cache减少缺失代价 2975.4.5 通过分块进行软件优化 2995.4.6 小结 3035.5 可信存储器层次结构 3035.5.1 失效的定义 3035.5.2 纠1检2汉明码(SEC/DED) 3055.6 虚拟机 3085.6.1 虚拟机监视器的要求 3095.6.2 指令集体系结构(缺乏)对虚拟机的支持 3095.6.3 保护和指令集体系结构 3105.7 虚拟存储器 3105.7.1 页的存放和查找 3135.7.2 缺页故障 3155.7.3 用于大型虚拟地址的虚拟内存 3165.7.4 关于写 3185.7.5 加快地址转换:TLB 3185.7.6 Intrinsity FastMATH TLB 3195.7.7 集成虚拟存储器、TLB和cache 3225.7.8 虚拟存储器中的保护 3235.7.9 处理TLB缺失和缺页 3245.7.10 小结 3265.8 存储器层次结构的一般框架 3285.8.1 问题1:块放在何处 3285.8.2 问题2:如何找到块 3295.8.3 问题3:cache缺失时替换哪一块 3305.8.4 问题4:写操作如何处理 3305.8.5 3C:一种理解存储器层次结构行为的直观模型 3315.9 使用有限状态机控制简单的cache 3325.9.1 一个简单的cache 3335.9.2 有限状态机 3335.9.3 一个简单cache控制器的有限状态机 3355.10 并行与存储器层次结构:cache一致性 3365.10.1 实现一致性的基本方案 3375.10.2 监听协议 3375.11 并行与存储器层次结构:廉价冗余磁盘阵列 3395.12 不错主题:实现cache控制器 3395.13 实例:ARM Cortex-A53和Intel Core i7的存储器层次结构 3395.14 实例:ARMv8系统的剩余部分以及特殊指令 3435.15 加速:cache分块和矩阵乘法 3455.16 谬误与陷阱 3465.17 本章小结 3495.18 历史观点与拓展阅读 3505.19 练习题 350第6章 并行处理器:从客户端到云 3626.1 引言 3626.2 创建并行处理程序的难点 3646.3 SISD、MIMD、SIMD、SPMD和向量 3676.3.1 x86中的SIMD:多媒体扩展 3686.3.2 向量 3686.3.3 向量与标量 3706.3.4 向量与多媒体扩展 3706.4 硬件多线程 3726.5 多核和其他共享内存多处理器 3756.6 图形处理单元 3786.6.1 NVIDIA GPU体系结构简介 3796.6.2 NVIDIA GPU存储结构 3806.6.3 正确理解GPU 3816.7 集群、仓储式计算机和其他消息传递多处理器 3836.8 多处理器网络拓扑简介 3866.9 与外界通信:集群网络 3896.10 多处理器基准测试程序和性能模型 3896.10.1 性能模型 3916.10.2 Roof?line模型 3926.10.3 两代Opteron的比较 3936.11 实例:Intel Core i7 960 和NVIDIA Tesla GPU的评测及Roof?line模型 3966.12 加速:多处理器和矩阵乘法 3996.13 谬误与陷阱 4026.14 本章小结 4036.15 历史观点与拓展阅读 4056.16 练习题 405附录A 逻辑设计基础 414索引 470网络内容附录B 图形处理单元附录C 控制器的硬件实现附录D RISC指令集体系结构术语表扩展阅读 内容摘要 本书由2017年图灵奖得主Patterson和Hennessy共同撰写,是计算机体系结构领域的经典教材,强调软硬件协同设计及其对性能的影响。本书采用ARMv8体系结构,讲解硬件技术、汇编语言、计算机算术运算、流水线、存储器层次结构以及I/O的基本原理。新内容涵盖平板电脑、云基础设施、ARM(移动计算设备)以及x86(云计算)体系结构,新实例包括IntelCorei7、ARMCortex-A53以及NVIDIAFermiGPU。本书适合作为高等院校计算机专业的教材,也适合广大专业技术人员参考。 精彩内容 神秘是我们所能体验的好看好的事物,它是所有真正的艺术和科学的源泉。—阿尔伯特·爱因斯坦,《我的信仰》,1930年关于本书我们学习计算机科学与工程时,不仅需要了解这个领域内的近期新进展,同时也需要掌握计算技术背后的基本原理和组成结构。计算机系统的组成决定了系统的功能和性能,是系统成功与否的关键。因此,计算领域各个方向的读者都能从计算机系统组成理论的学习中受益。随着现代计算机技术的发展,计算领域的各个方向都需要对硬件和软件均有深入理解的专业人士。硬件和软件在各个层次上的相互关系,为理解计算技术的基本原理提供了框架。无论你感兴趣的是硬件还是软件,是计算机科学还是电气工程,计算机组成与设计的核心思想都是相同的。因此,本书着重展示计算机硬件与软件间的相互关系,并重点介绍当今计算机中的基础概念。当前,微处理器由单核发展为多核,这一趋势印证了本书自第1版就提出的观点。过去,程序员可以忽略我们的建议,在计算机体系结构专家、编译器开发者以及芯片工程师的帮助下,他们一行代码也不用修改,就能让程序更快或更高效地运行在新型微处理器上。但是,这样的时代已经一去不返了。为了使程序运行得更快,就必须要实现并行化。虽然许多研究者的目标是希望程序员在编写程序时无须考虑底层硬件的并行特性,但这一目标还要很多年才能实现。我们认为,至少在下一个十年里,大多数程序员仍必须理解硬件/软件接口,才能编写出在并行计算机上高效运行的程序。本书适合以下读者:在汇编语言或(数字)逻辑设计方面只有少许经验,需要对计算机组成的基本原理有所理解;具有汇编语言或逻辑设计基础,需要学习如何设计计算机,或者需要进一步理解计算机系统是如何工作的。与本书相关的另一本书有些读者可能对《计算机体系结构:量化研究方法》一书有所了解,也就是人们常说的“Hennessy and Patterson”(本书则常被称为“Patterson and Hennessy”)。我们撰写“量化研究方法”那本书,意在通过坚实的工程基础和量化的开销/性能权衡方法来描述计算机体系结构的原理。书中以商用系统为基础,将案例和测量方法相结合,以期帮助读者积累实际的设计经验。我们希望阐明的是,计算机体系结构可以通过“量化”的方法而不是“描述”的方法来学习。因此,它主要面向需要对计算机体系结构有详细了解的计算机专业人士。本书的大多数读者可能并不打算成为计算机体系结构专家。然而,软件设计人员对底层硬件技术的理解程度,将对软件系统的性能和能效产生显著影响。因此,编译器开发者、操作系统设计者、数据库程序员以及其他大多数软件工程师都应当对本书所介绍的原理有充分了解。同样,硬件设计人员也必须清楚地理解他们的工作将对软件应用产生何种影响。因此,本书绝非“量化研究方法”一书的子集,而是进行了大量扩充和修订,以满足不同层次的读者。我们在“量化研究方法”的后续版本中删除了很多介绍性的内容,较之这两本书的第1版,现在重叠的内容已经大幅减少,这是一个令人高兴的变化。这一版为何采用ARMv8指令集的选择对于一本计算机体系结构教科书而言是很好关键的。无论一种指令集多受欢迎,如果它对初学者来说花哨难懂,我们仍会放弃这种巴洛克式的华美。初次接触的指令集应当是指令集中的“典范”,足以被牢记心间,就像牢记初恋一样。你或许不会相信,初恋和初次接触的指令集都有令人记忆犹新的魔力。虽然当年也有很多种指令集可供选择,但在撰写“量化研究方法”的第1版时,我们自己构造了一种RISC风格的指令集—MIPS。MIPS指令集很好简洁而且广受欢迎,因此从第1版开始,那本书的后续版本以及我们的其他相关书籍都采用MIPS指令集作为范例。MI
— 没有更多了 —
以下为对购买帮助不大的评价