计算机科学丛书 当四 原书第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
Ⅷ 使得处理器可以由单独的一章而不是两章来呈现,并且有关处理器的内容通过删除得到了加强。 在第3版中单独作为一章的有关性能的内容,在本版中被合并到了第1章。 第三个目的是提升本书的教学方法。现在第1章变得更加充实,内容包括性能、集成电路、 功耗,为全书奠定了基础。第2、3章原本以演进的风格进行编写,以“单细胞”的体系结构开 始,并以第3章最后的完整MIPS体系结构结束。这种松散的写作风格不能很好地适应现代读者 的需要。本版将所有的整型指令集归并到第2章,使第3章成为多数读者可以选读的内容,并且 每节各自独立,读者不再需要阅读之前的所有节。因此,与之前版本相比,现在第2章是一个更 好的参考资料。由于多周期实现会分散读者的注意力,而处理器现在变为单独的一章,所以第4 章的编写效果更好。第5章新增了构建cache控制器的部分,此外,CD中新增的部分包含了该 cache的Verilog代码。 第3版配有CD,使得书的页数减少,从而降低了书的价格。而且,有兴趣的读者还可更深 入地阅读其中的参考资料。但是,我们积极减少页数的同时,读者却要过于频繁地在书和CD之 间来回使用。本版中将不会出现这个问题。现在,CD中有每章的拓展阅读,以及四个章节的更 加深人的材料。另外,所有练习都集中在书中,在书和CD之间进行交替使用的次数应该比较 少了。 对于那些想知道为什么我们在本书中包含了CD的读者,答案也很简单:CD中包含了那些 我们觉得无论读者在哪里都应该很容易并且即刻可以获得的内容。如果你对更进一步的内容感 兴趣,或者你想复习一个VHDL教程(举例来说),它就在CD中,可供你使用。CD的另一个特 点是,能极大地加强你对材料的学习:它包含了一个搜索引擎,使你可以搜索书中或CD本身的 文本中的任何字符串。如果你正在寻找书的索引中没有包含的内容,你可以简单地输人你要搜 索的文本和想要显示在搜索结果中的页码。这是一个非常有用的特点,我们希望当你阅读和回 顾本书的时候,可以经常使用。 这是一个快速发展的领域,并且对于本书新的版本也是同样的情况,编写新版的一个重要 的目的就是更新技术内容。AMD Opteron X4模型2356(代码为Barcelona)用来运行书中第1、 4、5和7章的示例。第1、6章增加了SPEC中新的功耗测试程序的结果。第2章增加了ARM体 系结构的部分,ARM是当前世界上最流行的32位指令集体系结构。第5章新增了一部分内容介 绍虚拟机,其重要性再次呈现出来。第S章对Opteron X4多核的cache性能测量进行了详细的描 述,以及对其竞争对手Intel Nehalem(将在本版书出版之后进行发布)的性能测量进行了一些细 节描述。第6章第一次描述了Flash存储器,同时也对Sun公司的卓越的小型服务器进行了描述, 它包含由8个核、16个DMM和8个碟片组成的1Uit的磁盘。第6章还描述了关于长期磁盘失 效的最新研究结果。第7章涵盖了有关并行的大量话题,包括多线程、SMD、向量、GPU、性能 模型、测试程序和多处理器网络,并描述了Opteron X4额外的3个多核处理器:Intel Xeon模型 e5345(Clovertown)、IBM Cell模型OS20和Sun微系统T2模型5120(Niagara2)。 最后的目的是,在这个网络时代,尽量使习题对教师有用,因为布置家庭作业一直是学习资 料的一个重要方式。然而,几乎是在本书出现的同时,习题答案就会立刻被贴出。对此,我们采 取两种方式。首先,专家撰稿人一直在努力为书中的每一章编写全新的习题。第二,大多数习题 都有一个含有多种可供替换的量化参数的表格,这些参数用于回答该问题,这种方式为练习题 提供了量化描述支持。对指导教师如何选择布置练习而言,绝对的数量加上灵活性使得学生很 难在线找到与习题对应的答案。指导教师还可以按照自己的意愿改变这些量化参数,有效阻止 那些依赖互联网寻找固定不变的习题集答案的学生。我们认为这种新方法是对本书有价值的补 充,无论你是学生还是教师,请让我们知道对于你来说它的效果如何。 我们保留了以往版本中有用的书本元素。为使本书更好地作为参考书,我们还在新术语第 PDG
X 一次出现的页的页脚放置了定义。书中标题为“理解程序性能”部分的内容用于帮助读者理解 他们的程序性能,以及如何进行提高,就像书中“硬件/软件接口”部分会帮助读者理解有关接 口的权衡问题一样。“宏观图”部分仍然存在,以使读者看到整个“森林”而不是每一棵 “树”。“小测验”部分通过在每章的最后提供答案,帮助读者在第一时间加强他们对内容的理 解。本版同样提供了MIPS参考数据,这是从IBM System/360得到的灵感,并对可去掉的数据进 行了更新,在编写MPS汇编语言程序时,应该是一个方便的参考。 教学支持 我们已收集了大量材料供教师授课使用,包括题解、各章测验、本书的图表、讲义注解和幻 灯片等,都可从出版商处获得。如需更多信息,请访问以下网址: textbooks.elsevier.com/9780123744937 结语 从下面的致谢中,你会知道我们花费了大量精力去修改本书的错误。由于本书印刷了多次, 因此我们有机会做更多的校正。如果你发现有遗留的错误,请通过电子邮件与出版社联系: cod4bugs@mkp.com。 本版标志了Hennessy和Patterson自l989年以来长期合作的中止。由于要管理一所世界知名 大学,Hennessy校长将不能继续实质性地承担新版本的编写工作。留下的作者感觉像个总是和伙 伴一起演出的演员,突然被推到戏台上独自表演。所以,在致谢名单中列出的人和Berkeley的同 行们在撰写本书的过程中甚至起了更大的作用。 第4版致谢 感谢David Kirk、John Nickolls和他们在NVIDIA的同事们(Michael Garland、John Mon- trym、Doug Voorhies、Lars Nyland、Erik Lindholm、Paulius Micikevicius、Massimiliano Fatica、Stuart Oberman和Vasily Volkov)提供了第一个深入介绍GPU的附录A。再次感谢Microsoft Research的 Jim Larus贡献了他在汇编语言方面的专长,并欢迎本书读者使用他开发并维护的仿真器。 也要感谢许多专家的贡献,他们为新版编写了大量新的练习题。写出好的练习题并不是一 件容易的任务,在此感谢每位贡献者长期而艰苦地开发具有挑战性并吸引人的题目: ·第l章:Javier Bruguera(Universidade de Santiago de Compostela) 。第2章:John Oliver(Cal Poly,San Luis Obispo)、Nicole Kaiyan(University of Ade- laide)Milos Prvulovic Georgia Tech) ·第3章:Matthew Farrens(University of California,Davis) ●第4章:Milos Prvulovic(Georgia Tech) ·第5章:Jichuan Chang、Jacob Leverich、Kevin Lim和Partha Ranganathan(均来自 Hewlett-Packard),Nicole Kaiyan (University of Adelaide) ●第6章:Perry Alexander(University of Kansas) ·第7章:David Kaeli(Northeaster University) 感谢Peter Ashenden编辑和评价了所有的新习题,并完成本书的CD和新的幻灯片的制作。 感谢普林斯顿大学的David August和Prakash Prabhu提供了每章测验题。 感谢硅谷的同行们提供了大量新的技术数据: ·AMD一Opteron X4(Barcelona)的详细数据和测量数据:William Brantley、Vasileios Liaskovitis、Chuck Moore和Brian Waldecker. PDG
X ·Intel-一在Intel Nehalem上的预报信息:Faye Briggs。 ·Micron--一第6章中闪存的背景信息:Dean K☒ein。 ·Sun Microsystems--一第2章中SPEC2006基准测试程序的混合指令测量和第6章中Sun Server x4150的详细数据和测量数据:Yan Fisher、John Fowler、Darryl Gove、Paul Joyce、Shenik Mehta、Pierre Reynes、Dimitry Stuve、Durgam Vahia和David Weaver。 ·U.C.Berkeley-一Krste Asanovic(在第7章中提供了软件并发与硬件并行的思想), James Demmel和Velvel Kahan(有关并行性和浮点计算的注释),Zhangxi Tan(在第5 章中设计了cache控制器及其Verilog程序),Sam Williams(在第7章中提供了屋顶线模 型及其多核测量结果的数据),以及我在Par Lab中的所有同事,他们对全书的并行性 主题给出了大量的建议和回馈。 感谢许多教师的贡献,他们回答出版商的问卷调查,评审我们的提议,出席小组会议,对第 4版计划进行分析和回答。他们是中心组:Mark Hill(Wisconsin大学,Madison),E.J.Kim(Tex- asA&M大学),Jihong Kim(Seoul National大学),Lu Peng(Louisiana州立大学),Dean Tullsen (UC San Diego),Ken Vollmar(Missouri州立大学),David Wood(Wisconsin大学,Madison),Ki Hwan Yum(Texas大学,San Antonio),以及评审:Mahmoud Abou-Nasr(Wayne州立大学),Per ry Alexander(Kansas大学),Hakan Aydin(George Mason大学),Hussein Badr(New York州立大 学at Stony Brook),Mac Baker(Virginia Military Institute),Ron Barne(George Mason大学), Douglas Blough (Georgia Institute of Technology),Kevin Bolding (Seattle Pacific),Miodrag Bol- ic (Ottawa),John Bonomo Westminster College),Jeff Braun Montana Tech),Tom Briggs (Shippensburg大学),Scott Burgess(Humboldt州立大学),Fazli Can(Bilkent大学),Warren R.Carithers (Rochester Institute of Technology),Bruce Carlton (Mesa Community College),Nicholas Carter(Illinois大学at Urbana-Champaign),Anthony Cocchi(City大学of New York),Don Cooley (Utah州立大学),Robert D.Cupper(Allegheny College),Edward W.Davis(North Carolina州立大 学),Nathaniel.J Davis(Air Force Institute of Technology),Molisa Derk(Oklahoma City大学),De- rek Eager(Saskatchewan大学),Ernest Ferguson(Northwest Missouri州立大学),Rhonda Kay Gaede (Alabama大学),Etienne M.Gagnon(UQAM),Costa Gerousis(Christopher Newport大学),Pal Gillard(Memorial大学of Newfoundland),Michael Goldweber(Xavier大学),Georgia Grant(College of San Mateo),Merrill Hall (The Master's College),Tyson Hall (Southern Adventist),Ed Har- court(Lawrence大学),Justin E.Harlow(South Florida大学),Paul F.Hemler(Hempden-Sydney College),Martin Herbordt Boston),Steve J.Hodges Cabrillo College),Kenneth Hopkinson (Corell大学),Dalton Hunkins(St.Bonaventure大学),Baback Izadi(州立大学of New York一New Paltz),Reza Jafari,Robert W.Johnson Colorado Technical),Bharat Joshi North Carolina 学,Charlotte),Nargarajan Kandasamy(Drexel大学),Rajiv Kapadia,Ryan Kastner(California大 学,Santa Barbara),Jim Kirk(Union大学),Geoffrey S.Knauth(Lycoming College),Manish M.Kochhal(Wayne州立大学),Suzan Koknar-Tezel(Saint Joseph's大学),Angkul Kongmunvattana (Columbus州立大学),April Kontostathis(Ursinus College),Christos Kozyrakis(Stanford大学), Danny Krizanc(Wesleyan大学),Ashok Kumar,S.Kumar(Texas大学),Robert N.Lea(Houston) 大学,Baoxin Li(Arizona州立大学),Li Liao(Delaware大学),Gary Livingston(Massachusetts大 )Michael Lyle,Duoglas W.Lynn (Oregon Institute of Technology),Yashwant K.Malaiya (Colo- rado州立大学),Bill Mark(Texas大学at Austin),Annanda Mondal(Claflin大学),Alvin Moser (Seattle大学),Walid Najjar(California大学,Riverside),Danial J.Neebel(Loras College),John Nestor (Lafayette College),Joe Oldham (Centre College),Timour Paltashev,James Parkerson (Ar- PDG
Ⅺ kansas大学),Shaunak Pawagi(SUNY at Stony Brook),Steve Pearce,Ted Pedersen(Minnesota大 学),Gregory D Peterson(Tennessee大学),Dejan Raskovic(Alaska大学,Fairbanks),Brad Rich- ards(Puget Sound大学),Roman Rozanov,.Louis Rubinfield(Villanova大学),Md Abdus Salam (Southern大学),Augustine Samba(Kent州立大学),Robert Schaefer(Daniel Webster College), Carolyn.JC.Schauble(Colorado州立大学),Keith Schubert(CSU San Bernardino),William L Schultz,Kelly Shaw(Richmond大学),Shahram Shirani(McMaster大学),Scott Sigman(Drury 大学),Bruce Smith,David Smith,JefW.Smith(Georgia大学,Athens),Philip Snyder(Johns Hopkins大学),Alex Sprintson(Texas A&M),Timothy D.Stanley(Brigham Young大学),Dean Ste- vens(Morningside College),Norza Tabrizi(Kettering大学),Yuval Tamir(UCLA),Alexander Taubin(Boston大学),Will Thacker(Winthrop大学),Mithuna Thottethodi(Purdue大学),Mang hui Tu(Southern Utah大学),Rama Viswanathan(Beloit College),Guoping Wang(Indiana-Purdue 大学),Patricia Wenner(Bucknell大学),Kent Wilken(California大学,Davis),David Wolfe Gustavus Adolphus College),David Wood Wisconsin,Madison),Mohamed Zahran City Col- lege of New York),Gerald D.Zarnett (Ryerson),Nian Zhang (South Dakota School of Mines Technology),Jiling Zhong(Troy大学),Huiyang Zhou(Central Florida大学),Weiyu Zhu(Illinois Wesleyan大学)。 特别感谢Berkeley大学的相关人士,他们为本版最具挑战性的内容(第7章和附录A)提供 了大量回.馈信息。他们是Krste Asanovic、Christopher Batten、Rastilav Bodik、Bryan Ca- tanzaro、Jike Chong、Kaushik Data、Greg Giebling、Anik Jain、Jae Lee、Vasily Volkov和 Samuel Williams。 感谢Mark Smotherman-一遍又一遍地反复寻找本书中的技术错误和写作错误,显著改进了 这一版的写作质量。鉴于本版像是个人演出,他所发挥的作用就更为重要了。 感谢Morgan Kaufmann公司的Denise Penrose同意再次出版本书。Nathaniel McFadden是本 版的策划编辑,每周都与我讨论本书内容。Kimberlee Honjo负责组织用户调查和回馈。 感谢Dawnmarie Simpson管理本书的出版过程,同时感谢对本版做出贡献的许多自由职业 者,特别是Multiscience出版社的Alan Rose和diacriTech公司,为本书完成了排版。 以上提到的近200名人士为本版提供了大量帮助,使之成为我所希望的最好的书。 David A.Patterson A鸟光 券 PDG
目录 Computer Organization and Design:The Hardware/Software Interface,4E 出版者的话 2.4有符号和无符号数…50 译者序 2.5计算机中指令的表示…54 前言 2.6逻辑操作 4… 59 2.7决策指令 61 第】章计算机概要与技术…1 2.7.1循环… 62 1,1引言…1 2.7.2ca3e/switch语句…64 1.1.1计算应用的分类及其特性…2 2.8计算机硬件对过程的支持…65 1.1.2你能从本书学到什么…3 2.8.1使用更多的寄存器…………66 1.2程序概念人门… 4 2.8.2嵌套过程…68 1.3硬件概念人门……7 2.8.3在栈中为新数据分配空间 69 1.3.1剂析鼠标……8 2.8.4在堆中为新数据分配空间 70 1.3.2显示器…8 2.9人机交互…72 1.3.3打开机箱 9 ·2.10MS中32位立即数和地址的寻址…75 1.3.4数据安全…12 2.10.132位立即数… 75 1.3.5与其他计算机通信…13 2.10.2分支和跳转中的寻址…76 1.3.6处理器和存储器制造技术 ……14 2.10.3MIPS寻址模式总结 78 1.4性能…15 2.10.4机器语言解码 79 1.4.1性能的定义…15 2.11并行与指令:同步 81 1.4.2性能的测量…17 2.12翻译并执行程序 …83 1.4.3CPU性能及其因素…18 2.12.1编译器…… 84 1.4.4指令的性能…19 2.12.2汇编器… 84 1.4.5经典的CPU性能公式…19 2.12.3链接器… 85 1.5功耗墙…21 2.12.4加载器…… 87 1.6沧海巨变:从单处理器向多处理器 2.12.5动态链接库… 87 转变…… 23 2.12.6启动一个Java程序 ……88 1.7实例:制造以及AMD Opteron X4基准·25 2.13以一个C排序程序为例 ”4”4。 89 1.7.1 SPEC CPU基准测试程序·27 2.13.13wap过程…89 1.7.2SPEC功耗基准测试程序…28 2.13.2s0xt过程…90 1.8谬误与陷肼…… 29 2.14数组与指针… 95 1.9本章小结 …31 2.14.1用数组实现clear 0…4g 96 1.10拓展阅读……… 32 2.14.2用指针实现clear… 96 1.11练习题…… 32 2.14.3比较两个版本的clear …97 第2章指令:计算机的语言… 42 2.15高级内容:编译C语言和解释 2.】引言…42 Jav阳语言…98 2.2计算机硬件的操作… 43 2.16实例:ARM指令集 …98 2.3计算机硬件的操作数… 46 2.16.1寻址模式…99 2.3.1存储器操作数… 47 2.16.2比较和条件分支 ……100 2.3.2常数或立即数操作数… 49 2.16.3ARM的特色…100 PDG