计算机科学丛书 当四 原书第4版 计算机组成与设计 硬件/软件接口 (美)David A.Patterson John L,Hennessy著章德昌见晓慢安建修零保 Computer Organization and Design The Hardware Software Interface foenh Editoa COMPUTER ORGANIZATION AND DESIGN THE HARDWARE /SOFTWARE INTIRFACE DAVIDA FATTERSON JOHN L HINNESSY M 别光盘 机城工立出板杜 Cnno Mochne Piess
译者序| Computer Organization and Deaign:The Hardware/Software Interface,4E David A.Patterson和John L.Hennessy是目前国际知名院校计算机专业领域的双巨擘。他们合 著的《Computer Organization and Design:The Hardware/Software Interface)》又发行了第4版。该书 是他们对计算机组织研究和实践的全面而系统的总结。目前,世界上很多大学的计算机原理课 程都采用这本教材,国内也有不少大学采用这本教材。 我们认为第4版最主要的特点是强调了计算机从串行到并行的最新变革。本版在每章中都强 调了并行硬件和软件的主题,以软硬件协同设计发挥多核性能为最终目标。本版特别描述了一 种评测多核性能的Roofline模型,使用SPEC2006程序集更新了所有处理器的性能评测结果。此 外,本版还首次描述了面向可视计算优化的高度多线程多处理器GPU。 感谢清华大学郑纬民教授对前三版中译本所做的工作,是他使得这本重要教材在国内有了 广泛的读者。 除封面署名之外,西北工业大学计算机学院的史莉雯、姚涛、任向隆、郑乔石、韩立敏等也 参加了本书的翻译和校对工作。由于译者水平有限,文中肯定存在一些翻译不当或理解欠妥的 地方,希望读者批评指正。 康继昌 2011年10月于西北工业大学 家子他 PDG
前言 Computer Organization and Design:The Hardware/Software Interface,4E 神秘是一种我们能够体验到的最美丽的东西。 它是所有真正艺术和科学的源泉。 一一阿尔伯特·爱因斯坦,《我的世界观》,1930 关于本书 我们认为,在学习计算机科学与工程时,除了掌握计算的基本原理外,还应该了解该领域当 今的最新状态。我们也感觉到,计算领域中各种读者希望有机会欣赏到计算机系统的组织范例。 后者决定了计算机系统的功能、性能,甚至成功与否。 现代计算机技术需要各种计算方面的专家,他们不仅能理解硬件,而且能理解软件。硬件和 软件之间在许多层次上的相互关系,提供了理解计算基本原理的框架。无论你的主要兴趣是硬 件还是软件,是计算机科学还是电气工程,计算机组成与设计中的中心思想是相同的。因而,本 书着重于展示硬件与软件之间的相互关系,重点介绍概念,这是当今计算机的基础。 最近单处理器已发展为多核微处理器,这也印证了本书自第1版就预测的这一发展前景。有 些程序员忽视了这一发展趋势,他们仍希望计算机体系结构专家、编译器编写者和芯片工程师 能够帮助他们,让程序不作任何改进就可以更快地运行在新型处理器上。但是,这样的时代已经 过去了。为了使程序更快地运行,必须将其并行化。程序员在编程时不用考虑硬件的并行特性, 这一目标要很多年才能实现。我们认为,至少在下一个十年里,大多数程序员必须理解软硬件接 口,才能使程序在并行计算机上有效地运行。 本书适合以下读者:在汇编语言或逻辑设计方面只有少许经验,需要理解基本的计算机组 成的读者:具有汇编语言或逻辑设计的基础,需要学习如何设计计算机,或要进一步理解计算机 系统是如何工作的读者。 与本书相关的另一本书 有些读者可能已熟悉作者的另一本书《Computer Architecture:A Quantitative Approach》°。该 书已广为流传,经常以作者姓名命名,称为“Hennessy and Patterson'”(本书则经常被称为“Patter-- son and Hennessy'”)。我们写该书的目的是要用坚实的工程基础和量化的性价比权衡,来描述计 算机体系结构的原理。我们以商用产品为例,用测量的方法来描述实际的设计经验。我们的目标 是用量化的方法而不是用描述的方法学习计算机体系结构,希望这一方法有助于培养能精确理 解计算机的专业人才。 本书的大多数读者并不一定要成为计算机体系结构的设计者。但是,未来软件设计人员对 与软件系统一起工作的基本硬件技术的理解程度,将严重影响软件系统的性能和能效。因此,编 译器编写者、操作系统设计者、数据库程序员,以及其他大多数软件工程师对本书提出的原理必 须有充分的了解。同样,硬件设计者也必须清楚地理解他们的工作对应用软件的影响。 所以,本书的内容远多于“Hennessy and Patterson”,,而且这些内容已大量修订,以适应不同 专业的读者。我们对再版“Hennessy and Patterson'”时删除大量介绍性材料的效果感到满意,这 使得新版与第1版内容的重叠大大降低,本书亦是如此。 ⊙机械工业出版社已出版了本书的第3版、第4版和第5版影印书,书名为《计算机体系结构:量化研究方法》。 PDG
第4版的修订目的 第4版的修订目的包括:第一,描述微处理器的多核革命,全书将贯穿并行软硬件的思想; 第二,梳理已有的内容以腾出篇幅介绍并行性;第三,从总体上提高教材水平;第四,更新技术 内容,以反映自2004年第3版出版以来业界的新变化;第五,利用当今互联网时代的有利条件, 提供了大量有用的练习题。 在详细介绍第4版的修订目的之前,首先看下表。该表给出了本书的主要内容,并为关注硬 件和关注软件的两种读者分别进行了导读。其中,第1、4、5和7章对两种读者是同样重要的。 第1章更新了引言部分,增加了功耗重要性和由其引出的微处理器从单核转向多核的讨论,以及 性能评价和基准测试程序的相关材料(这在第3版中是独立的一章)。第2章对于硬件读者来说 很可能是复习性材料;而对于软件读者来说是重要的阅读材料,特别是想要深人学习编译器和 面向对象语言的读者。它包括第3版中第3章的内容,介绍了完整的MPS体系结构(浮点指令 除外)。第3章适合对定点运算或者对浮点运算感兴趣的读者,有些人可能不需要学习第3章, 可以跳过去。第4章是把第3版的两章合并起来介绍流水线处理器。其中,4.】节、4.5节和 4.10节为关注软件的读者提供了流水线概述。关注硬件的读者将发现第4章提供了流水线处理 器的核心技术,读者需要根据自己的专业背景,决定是否首先阅读附录C中提供的逻辑设计部 分。第5章和第6章描述的存储器对关注软件的读者是极为重要的,如果时间允许,其他读者也应 该尽量深入阅读。第7章介绍了多核、多处理器和集群,是业界最新的内容,每个人都应该阅读。 章/附录 节 关注软件 关注硬件 第1章计算机概要与技术 1.1w1.9 ① ① 1.10(历史) ④ ④ 2.12.14 ① ② 第2章指令:计算机的语言 2.15(编译器&Java) ③ 2.16-2.19 ① ② 2.20(历史) ④ ④ 附录E RISC指令集体系结构 E.1-E.19 ③ 3.13.9 第3章计算机的算术运算 ② ② 3.10(历史) ⊙ ④ 附录C逻辑设计基础 C.1-C13 ② 4.1(引言) ① ① 4.2(逻辑设计惯例) 4.3~4.4(简单实现) ① ② ① 4.5(流水线概述) ③ ① 第4章处理器 4.6(流水线数据通路) ① 4.7~4.9(冒险、异常) ① 4.10-4.11((并行、实例) ① ① 4.12(Verilog流水线控制) ③ 4.13~4.14(谬误) ① ① 4.15(历史) ④ 附录D控制通路的硬件实现 D.1-D.6 ③ 5.1-5.8 ① ① 第5章大容量和高速度:开发存储器层次结构 5.9(实现cache挖制器) ③ 5.10-5.12 ① ① 5.13(历史) ④ ④ PDG
I (续) 章/附录 效 关注软件 关注硬件 6.1-6.10 ① ③ 6.11(网络) 第6章存储器和其他V0主题 ③ ③ 6.12-6.13 ① ③ 6.14(历史) ④ ④ 7.1-7.13 第7章多核、多处理器和集群 ① ① 7.14(历史) ④ ④ 附录A图形和计算GPU A1-A.12 ③ 团 附录B汇编器、链接器和SPIM仿真器 B.1-B.12 ⑤ ⑤ 仔细阅读:① 有时间可读:③ 作为参考:⑤ 回顾或阅读:② 拓展阅读: ⑦ 第4版修订的第一个目的是使第3版位于光盘中作为单独一章的并行性成为本书最为重要的 内容,其中最为明显的例子是第7章。特别需要说明的是,第7章引人了Roofline(屋顶线)性 能模型,并将之用于对4个新型多核体系结构的性能评价。评价结果表明屋顶线模型对于多核微 处理器具有相当的洞察力,可以媲美于cache的3C模型。 在明确了并行性的重要地位之后,除了在第7章专门讲述并行之外,本版在前6章中的每一 章都专门开辟一节强调了并行性。 ·1.6沧海巨变:从单处理器向多处理器转变指出功耗的限制如何迫使业界转向并行性 以及并行性为什么是有益的。 ·2.11并行与指令:同步讨论了共享变量的加锁,尤其是MIPS的Load Linked和Store Conditional指令。 ·3.6并行性和计算机算术:结合律讨论了数值精度与浮点运算的挑战。 ·4.10并行和高级指令级并行讨论了各种高级指令级并行(LP),包括超标量、推测 和超长指令字(VLW)、循环展开和乱序操作(OO0),同时也对流水线深度和功耗之 间的关系进行了讨论。 ·5.8并行与存储器层次结构:cache一致性讨论了cache一致性、连贯性和侦听协 议等。 ·6.9并行性与/O:廉价磁盘冗余阵列。将RAD描述成/0系统和高效可用的IC0 系统。 第7章总结了发展并行性的乐观理由,分析了为何本次并行性的发展应该比过去更加成功。 令我特别高兴的是,NVIDIA的首席科学家David Kirk和首席架构师John Nickolls为本版撰写 了关于图形处理器GPU的附录A。GPU是对计算机体系结构的一种新的、有趣的推动,附录A 第一次对GPU进行了深人介绍。该附录基于本版的并行主题,提出了一种计算风格:允许程序 员以多指令多数据(MMD)的方式思考,然而硬件在任何可能的时候仍尽量以单指令多数据 (SMD)的风格执行。由于GPU价格便宜并且使用广泛一甚至在很多笔记本电脑中都可找到 它们一并且它们的编程环境是免费可用的,所以它们提供了一个可用于许多人进行实验的并 行硬件平台。 第二个目的是梳理该书,以便为介绍并行方面的新内容留出空间。第一步是简单地使用更 细致的杭理方式对前三版累积下来的所有段落从前到后进行检查,看它们是否仍有在书中存在 的需要。粗略的改变是章节的合并以及主题的舍弃。Mark Hill建议舍弃书中多周期处理器的实 现这部分内容,取而代之的是,在存储器层次的章节中增加有关多周期cache控制器的内容。这 PDG