当前: 首页 - 图书专区 - 计算机组成与设计:硬件/软件接口(原书第5版)
计算机组成与设计:硬件/软件接口(原书第5版)


  在线购买
[美] 戴维 A.帕特森 (David A. Patterson) 加州大学伯克利分校 约翰 L.亨尼斯(John L. Hennessy) 斯坦福大学 著
978-7-111-50482-5
99.00
552
2015年07月08日
王党辉 康继昌 安建峰 等译
计算机 > 计算机组织与体系结构
Elsevier (Singapore) Pte Ltd
1969
简体中文
16
Computer Organization and Design:The Hardware/Software Interface,Fifth Edition
教材
计算机科学丛书








本书是计算机组成的经典教材,着眼于当前计算机设计中最基本的概念,详细展示软硬件间的关系,介绍当代计算机系统发展的主流技术和最新成就。本书以MIPS处理器为例介绍计算机硬件技术、汇编语言、计算机算术、流水线以及存储器层次结构等基本技术。书中强调从串行处理到并行处理的最新革新,每章中都包含并行硬件和软件的主题,以软硬协同设计发挥多核性能为最终目标。另外,本版与时俱进地使用了如ARM Cortex A8和Intel Core i7等现代设计来说明计算机设计的基本原理。
这是一本应该保存在书架上的计算机体系结构的教材。本书既陈旧又新颖,因为它不但介绍了基本原理——摩尔定律、抽象、加速大概率事件、冗余、存储层级、并行和流水线,也使用如ARM Cortex A8和Intel Core i7等现代设计对这些基本原理进行了说明。
—— Mark D. Hill, 威斯康星大学麦迪逊分校计算机科学系教授、系主任
教材的选择是一个非常令人沮丧的折衷过程——教学方法、内容的覆盖面、行文造句的质量、描述的精确程度、成本等都需要考虑。这是一本不需要在这些方面进行折衷且涉及各个方面的书。它不仅是一部计算机组成的教科书,也是所有计算机科学教科书的范本。
—— Michael Goldweber,Xavier大学计算机科学系教授
当前,半导体加工工艺按比例缩小的困难是系统功耗的限制,在移动系统和大数据处理器领域,该限制与不断增长的性能需求之间的矛盾越来越尖锐。第5版除了为读者提供计算机体系结构的介绍,还为读者准备了为应对该矛盾而必须在设计方面做的修改。在这个计算技术的新领域,必须进行软硬件协同设计,另外,系统级体系结构优化与部件级优化一样重要。
—— Christors Kozyrakis,斯坦福大学电子工程和计算机科学系副教授
本书是计算机组成与设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。本书特别关注移动计算和云计算,通过平板电脑、云体系结构以及ARM(移动计算设备)和x86(云计算)体系结构来探索和揭示这场技术变革。
与前几版一样,本书采用MIPS处理器讲解计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能。

本书特点
更新例题、练习题和参考资料,重点关注移动计算和云计算这两个新领域。
涵盖从串行计算到并行计算的革命性变革,第6章专门介绍并行处理器,每章中都涉及并行硬件和软件的相关主题。
全书采用Intel Core i7、ARM Cortex-A8和NVIDIA Fermi GPU作为实例。
增加“运行更快”这一新实例,说明正确理解硬件技术的重要性,它能使软件性能提高200倍。
讨论并强调计算机体系结构的“8个伟大思想”——通过并行提高性能、通过流水线提高性能、通过预测提高性能、面向摩尔定律的设计、存储器层次、使用抽象简化设计、加速大概率事件和通过冗余提高可靠性。
访问本书配套网站(textbooks.elsevier.com/9780124077263)可获取更多资源,包括深入学习所需的高级内容、附录、术语表、参考文献以及推荐阅读材料。



David A. Patterson
加州大学伯克利分校计算机科学系教授,IEEE和ACM会士,美国国家工程院、国家科学院和美国艺术与科学院院士,美国计算机历史博物馆院士,并入选硅谷工程名人堂。Patterson曾荣获加州大学杰出教学奖、ACM Karlstrom奖、IEEE Mulligan教育奖章和本科生教学奖。由于对RISC技术的贡献,他获得了IEEE技术成就奖和ACM Eckert-Mauchly奖;而在RAID方面的贡献为他赢得了IEEE Johnson信息存储奖;他还和Hennessy分享了IEEE John von Neumann奖章和C&C奖金。Patterson作为美国总统信息技术顾问委员会委员,还曾担任计算机研究协会(CRA)主席和ACM主席。这些杰出的工作使他荣获了ACM和CRA颁发的杰出服务奖。





John L. Hennessy 
斯坦福大学的第10任校长,从1977年开始在该校电子工程与计算机系任教。Hennessy教授是IEEE和ACM会士,美国国家工程院、国家科学院和美国哲学院院士,美国艺术与科学院院士。他获得过众多奖项,包括:2000年与Patterson共同获得IEEE John von Neumann奖章;2001年Eckert-Mauchly奖,以表彰他对RISC技术的贡献;2001年Seymour Cray计算机工程奖。他还拥有7个荣誉博士学位。1981年,Hennessy在斯坦福大学开始MIPS研究项目,1984年参与创建MIPS计算机系统(现在的MIPS技术公司),开发了第一款商用RISC微处理器。除了技术活动与大学工作外,他还是多家创业公司的顾问和投资者。


王党辉
1975年生于陕西省周至县。2005年获得西北工业大学计算机学院工学博士学位。现为西北工业大学计算机学院副教授。2007年在比利时鲁汶大学和欧洲微电子中心(IMEC)进修,2012~2013年8月在美国匹兹堡大学电子与计算机工程系访问研究。主要研究方向为计算机系统结构、新型存储系统、高可靠计算机系统等。承担“计算机组成原理”“计算机系统结构”“汇编语言与接口技术”等课程的教学工作。




康继昌 
1930年生于上海市。1951年毕业于交通大学电机工程系。历任哈尔滨军事工程学院讲师、副教授,西北工业大学教授、系主任,中国航空学会第二、三届理事,国务院学位委员会第一、二、三届学科评议组成员。长期从事机载计算机的研究工作。20世纪60年代初主持研制成功我国第一台机载计算机,并得到推广应用。后又主持研制成功多种型号的计算机。





安建峰 
1977年生于河北省保定市。2009年获得西北工业大学计算机学院工学博士学位。现为西北工业大学计算机学院副教授。2010年在比利时鲁汶大学和欧洲微电子中心(IMEC)进修,2014年在新加坡国立大学计算机学院访问研究。主要研究方向为高性能计算机体系结构、嵌入式系统软硬件协同设计、FPGA可重构电路等。承担“计算机组成原理”“计算机系统结构”“SoC设计方法学”等课程的教学工作。
我们能体验的最美好的事物是神秘,它是所有真正的艺术和科学的源泉。
——阿尔伯特·爱因斯坦,《我的信仰》,1930
关于本书
在学习计算机科学与工程时,除了掌握计算的基本原理外,还应该了解该领域的最新进展。各种计算领域中的读者应有机会学习计算机系统的组成理论,因为这是决定计算机系统的功能、性能甚至成功与否的关键。
现代计算机技术需要各种计算方面的专家,他们应对硬件和软件都有深入的理解。硬件和软件在多个层次上的相互关系成为理解计算基本原理的框架。无论你的主要兴趣是硬件还是软件,是计算机科学还是电气工程,计算机组成与设计的基本思想都是相同的。因此,本书着重展示硬件与软件的关系,并重点介绍当今计算机中的基础概念。
近年来,处理器已经由单核发展为多核,这也印证了本书自第1版就预测的发展趋势。有些程序员忽略了这一发展趋势,他们希望计算机体系结构专家、编译器设计者和芯片工程师能够帮助他们,让程序不做任何修改就可以更快或更高效地在新型处理器上运行。但是,这样的时代已经一去不返了。为了使程序运行得更快,必须将其并行化。然而,许多研究者的目标是希望程序员在编写程序时不需要考虑硬件的并行特征,这一目标要很多年才能实现。至少在下一个十年里,大多数程序员必须理解硬件/软件接口,才能编写出能在并行计算机上高效运行的程序。
本书适合以下读者:在汇编语言或逻辑设计方面只有少许经验,需要理解基本计算机组成的读者;具有汇编语言或逻辑设计的基础,需要学习如何设计计算机,或者要进一步理解计算机系统如何工作的读者。
与本书相关的另一本书
有些读者可能已经熟悉作者的另一本书《Computer Architecture:A Quantitative Approach》。该书已广为流传,经常以作者姓名命名,称为“Hennessy and Patterson”(本书则常称为“Patterson and Hennessy”)。我们写该书的目的是要用坚实的工程基础和量化的性价比权衡来描述计算机体系结构的原理。我们以商用系统为例,用测量的方法来描述实际的设计经验。我们的目标是用量化的方法而不是用描述的方法学习计算机体系结构,希望这一方法有助于培养能精确理解计算机的专业人才。

  机械工业出版社已出版了本书的第3版、第4版和第5版影印书,书名为《计算机体系结构:量化研究方法》。——编辑注
本书的大多数读者并不一定要成为计算机体系结构的设计者。但是,未来软件设计人员对与软件系统协同工作的基本硬件技术的理解程度,将直接影响软件系统的性能和能效。因此,编译器设计者、操作系统设计者、数据库程序员以及其他大多数软件工程师对本书的原理必须有充分的了解。同样,硬件设计者也必须清楚地理解他们的工作对软件的相应影响。
所以,本书的内容远多于“Hennessy and Patterson”,而且进行了大量修订,以适应不同专业的读者。我们对再版“Hennessy and Patterson”时删除的大量介绍性材料的效果感到满意,这使得新版与第1版内容的重叠大大降低,本书亦如此。
第5版的变化
第5版有6个主要的目标:使用运行例子的方法论证理解硬件的重要性;对前面已经提到的重要技术采用黑体的方式进行强调;对例子进行了更新,以反映从PC时代到后PC时代的发展;将I/O吞吐率方面的材料贯穿在整本书中,而不是集中在一章中;对技术内容进行了更新,以反映自2009年第4版出版以来工业界的变化;将附录和可选章节(目录中带有图标的章节)的内容放在互联网上(booksite.elsevier.com/9780124077263/index.php),而不是放在CD上,降低了本书的成本,也使该版本变成了一部电子书。
在详细介绍第5版的修订目标之前,首先看下表。该表给出了本书的主要内容,并为关注硬件和关注软件的两种读者分别进行了导读。其中,第1、4、5和6章对两种读者同等重要。第1章讨论了能耗的重要性和由其引发的处理器从单核向多核的转变,并介绍了计算机设计中的8个伟大思想。第2章对于硬件读者来说很可能是复习性材料,而对于软件读者来说则是重要的阅读材料,特别是希望深入学习编译器和面向对象编程语言的读者。第3章适合对定点运算或者浮点运算感兴趣的读者,有些读者可能不需要学习第3章。然而,我们将在本章介绍矩阵乘法运行的例子,展示如何采用子字并行方法将性能提高4倍,因此不要跳过3.6~3.8节。第4章介绍了流水线处理器。其中,4.1、4.5和4.10节给出了流水线概述,4.12节给出了进一步提高矩阵乘法运算性能的方法,这些小节对于软件设计者来说比较重要。对于硬件设计者,第4章是核心内容。另外,根据读者知识背景的不同,可以选择是否首先阅读附录C中的逻辑设计部分。最后一章是多核、多处理器和集群系统,这一章是全新的内容,因此所有读者都应该阅读。本版的重要组织结构是使许多思想的引入更加自然,例如GPU、仓储式计算机和集群系统中的关键——网络接口卡的软硬件接口。

章/附录 节 关注软件 关注硬件
第1章 计算机概要与技术1.1~1.111.12(历史)
第2章 指令:计算机的语言2.1~2.142.15(编译器和Java)2.16~2.202.21(历史)
附录E RISC指令集体系结构E.1~E.17
第3章 计算机的算术运算3.1~3.53.6~3.8(子字并行)3.9~3.10(谬误)3.11(历史)
附录B 逻辑设计基础B.1~B.13
第4章 处理器4.1(引言)4.2(逻辑设计惯例)4.3~4.4(简单实现)4.5(流水线概述)4.6(流水线数据通路)4.7~4.9(冒险和异常)4.10~4.12(并行和实例)4.13(Verilog流水线控制)4.14~4.15(谬误)4.16(历史)
(续)章/附录节关注软件关注硬件
附录D 控制通路的硬件实现D.1~D.6
第5章 大容量和高速度:开发存储器层次结构5.1~5.105.11(廉价冗余磁盘阵列) 5.12(Verilog cache控制器)5.13~5.165.17(历史)
第6章 从客户端到云的并行处理器6.1~6.86.9(网络)6.10~6.146.15(历史)
附录A 汇编器、链接器和SPIM仿真器A.1~A.11
附录C 图形处理单元C.1~C.13仔细阅读  有时间阅读  作为参考  回顾或阅读  拓展阅读

第5版的第一个目标是使用一个例子来论证理解硬件对提高性能和能效的重要性。正如前面所述,在第3章,我们采用子字并行将矩阵乘法加速4倍,在第4章通过循环展开将性能翻倍,证明了指令集并行的价值。第5章通过分块技术对cache进行优化,再次将性能翻倍。第6章通过在16个处理器上的线程级并行获得了14倍的加速比。这4种优化技术仅仅在原始的矩阵乘法例子中的C代码上增加了24行。
第二个目标是通过提早介绍计算机体系结构设计中的8个伟大思想并在整本书中明确指出它们的应用之处来帮助读者理解计算机设计的精髓。我们采用黑体文字的方式向读者提醒这8个思想的应用情况,在书中大约有100次引用。每一章中至少有7处应用这些思想的例子,并且每个思想至少被引用5次。通过并行提高性能、流水线和预测技术是引用次数最多的3个思想,紧接着是摩尔定律。第4章讲述处理器,是例子最多的一章,也是最吸引计算机设计者的一章。每一章都能找到的伟大思想是通过并行提高性能,这是近年来计算机领域中的一个重要发展方向。
第三个目标是通过例子和材料来识别计算技术从PC时代进入后PC时代的变化。因此,第1章直接介绍了平板电脑而没有介绍PC,第6章介绍了云计算的基础设施。另外,在指令集方面,我们介绍了后PC时代中个人移动设备里使用的ARM指令集,以及在PC时代和云计算中占主导地位的x86指令集。
第四个目标是将I/O吞吐率方面的材料贯穿在整本书中,而不是集中在一章中,这与第4版中将并行性贯穿全书一样,因此,本版可在1.4、4.9、5.2、5.5、5.11和6.9节中找到I/O相关的材料。我们的想法是如果不把这些内容集中在一章,则读者(和教师)能更好地学习与掌握I/O。
计算机是一个快速发展的领域,对于本书新的版本也是如此,编写新版的一个重要目的是更新技术内容。实际的例子就是反映后PC时代特点的ARM Cortex A8和Intel Core i7,其他的亮点包括新的ARMv8 64位指令集、讲解GPU特有术语的教程、组成云的仓储式计算机的内涵以及对10G以太网卡的深入理解。
为了保持纸质书的厚度及其与电子书的兼容性,我们一改以前版本的做法,将可选内容由随书CD改为网络在线的形式。
最后,我们更新了本书的所有练习题。
在对内容进行修订的同时,我们保留了以往版本中有用的元素。为使本书更好地作为参考书,我们还在新术语第一次出现时给出了定义。书中标题为“理解程序性能”部分的内容有助于读者理解程序的性能,以及如何提高性能,就像书中“硬件/软件接口”部分会帮助读者理解有关接口的权衡问题一样。“重点”部分仍然存在,以使读者看到整个“森林”而不是每一棵“树”。每章最后提供“小测验”部分的答案,帮助读者在第一时间加强对内容的理解。本版同样提供了MIPS参考数据(这是从IBM System/360“绿卡”得到的灵感),并对数据进行了更新,在编写MIPS汇编语言程序时,这应该是一个很好的参考。
教学支持 爱思唯尔(ELS):关于本书教辅资源,使用教材的老师需通过爱思唯尔的教材网站(www.textbooks.elsevier.com)注册并通过审批后才能获取相关资源。具体方法如下:在www.textbooks.elsevier.com教材网站查找到该书后,点击“instructor manual”便可申请查看该教师手册。有任何问题,请致电010-85208853。——编辑注
我们收集了大量材料供教师授课使用,包括题解、图表、幻灯片等,可从出版商处获得。如需更多信息,请访问网址:textbooks.elsevier.com/9780124077263。
结语
从下面的致谢中,你可以发现我们花费了大量精力去修改本书的错误。由于本书印刷了多次,因此我们有机会做更多的校正。如果你发现有遗留的错误,请通过电子邮件与出版社联系:cod5bugs@mkp.com。
本版标志着Hennessy和Patterson自1989年以来长期合作的第二次中止。由于要管理一所世界知名的大学,Hennessy校长将不能继续承担新版本的实际编写工作。留下Patterson一人感觉自己像个总是和伙伴们一起演出的演员,突然被推到前台独自表演。所以,在致谢名单中列出的人和Berkeley的同行们在本书的撰写过程中甚至起了更大的作用。
第5版致谢
在本书的每一版中,我们都非常幸运地得到了来自许多读者、评审者和其他人员的帮助。每个人的帮助都使本书更加完美。
由于第6章做了巨大的修改,因此我们对其思想和内容进行了单独的评审,并基于每位评审人的反馈意见做了修改。感谢Stanford大学的Christos Kozyrakis,他建议在集群中使用网络接口来论证I/O的软硬件接口,并对该章的组织提出了意见。还要感谢Stanford大学的Mario Flagsilk,他提供了NetFPGA NIC的细节、表格以及性能评估。另外,以下人员对本章提出了修改建议:Northeastern大学的David Kaeli、HP实验室的Partha Ranganathan、Wisconsin大学的David Wood以及Berkeley大学的同事Siamak Faridani、Shoaib Kamil、Yunsup Lee、Zhangxi Tan和Andrew Waterman。
我们要对UC Berkeley的Rimas Avizenis表示特别的感谢,他开发了不同版本的矩阵乘法程序,并提供了相应的性能数据。当我在UCLA读研究生时,我与他的父亲一起工作,能够与他一起在UCB共事是一件美好的事情。
我也要对我的长期合作伙伴——UC Berkeley的Randy Katz表示感谢。我们共同讲授研究生的计算机体系结构课程,他在开发计算机体系结构的伟大思想方面提供了很大的帮助。
感谢David Kirk、John Nickolls和他们在 NVIDIA的同事们(Michael Garland、John Montrym、Doug Voorhies、Lars Nyland、Erik Lindholm、Paulius Micikevicius、Massimiliano Fatica、Stuart Oberman、Vasily Volkov)提供了第一个深入介绍GPU的附录。再次感谢Jim Larus,他现在是EPFL计算机与通信科学学院的院长,为本书发挥了在汇编语言方面的专长,欢迎本书读者使用他所开发和维护的模拟器。
非常感谢South Carolina大学的Jason Bakos,他在第4版的基础上对本版的练习题进行了更新。第4版的练习题由以下人员编写:Perry Alexander(Kansas 大学)、Javier Bruguera(de Santiago de Compostela大学)、Matthew Farrens(California大学Davis分校)、David Kaeli(Northeastern大学)、Nicole Kaiyan(Adelaide大学)、John Oliver(Cal Poly,San Luis Obispo)、Milos Prvulovic(Georgia理工大学)和HP的Jichuan Chang、Jacob Leverich、Kevin Lim、Partha Ranganathan。
感谢Jason Bakos开发了新的幻灯片。
感谢许多教师的贡献,他们回答出版商的调查问卷、评审我们的提议、出席小组会议,并对本版的计划进行分析和反馈。他们是:
2012焦点小组:Bruce Barton(Suffolk County Community学院),Jeff Braun(Montana理工大学),Ed Gehringer(North Carolina State),Michael Goldweber(Xavier大学),Ed Harcourt(St.Lawrence大学),Mark Hill(Wisconsin大学Madison分校),Patrick Homer(Arizona大学),Norm Jouppi(HP实验室),Dave Kaeli(Northeastern大学),Christos Kozyrakis(Stanford大学),Zachary Kurmas(Grand Valley州立大学),Jae C.Oh(Syracuse大学),Lu Peng(Louisiana州立大学),Milos Prvulovic(Georgia理工),Partha Ranganathan(HP实验室),David Wood(Wisconsin大学),Craig Zilles(Illinois大学香槟分校)。
参考调查和审阅的学者:Mahmoud Abou-Nasr(Wayne州立大学),Perry Alexander(Kansas大学),Hakan Aydin(George Mason大学),Hussein Badr(New York州立大学Stony Brook分校),Mac Baker(Virginia Military学院),Ron Barnes(George Mason大学),Douglas Blough(Georgia理工),Kevin Bolding(Seattle Pacific大学),Miodrag Bolic(Ottawa大学),John Bonomo(Westminster学院),Jeff Braun(Montana理工大学),Tom Briggs(Shippensburg大学),Scott Burgess(Humboldt州立大学),Fazli Can(Bilkent大学),Warren R.Carithers(Rochester理工学院),Bruce Carlton(Mesa Community学院),Nicholas Carter(Illinois大学香槟分校),Anthony Cocchi(New York城市大学),Don Cooley(Utah州立大学),Robert D.Cupper(Allegheny学院),Edward W.Davis(North Carolina州立大学),Nathaniel J.Davis(Air Force理工学院),Molisa Derk(Oklahoma 城市大学),Derek Eager(Saskatchewan大学),Ernest Ferguson(Northwest Missouri州立大学),Rhonda Kay Gaede(Alabama大学),Etienne M.Gagnon(UQAM),Costa Gerousis(Christopher Newport大学),Paul Gillard(Newfoundland纪念大学),Michael Goldweber(Xavier大学),Georgia Grant(San Mateo学院),Merrill Hall(The Master’s 学院),Tyson Hall(Southern Adventist大学),Ed Harcourt(St.Lawrence大学),Justin E.Harlow(South Florida大学),Paul F.Hemler(Hampden-Sydney学院),Martin Herbordt(Boston大学),Steve J.Hodges(Cabrillo学院),Kenneth Hopkinson(Cornell大学),Dalton Hunkins(St.Bonaventure大学),Baback Izadi(New York州立大学New Paltz分校),Reza Jafari,Robert W.Johnson(Colorado Technical大学),Bharat Joshi(North Carolina大学Charlotte分校),Nagarajan Kandasamy(Drexel大学),Rajiv Kapadia,Ryan Kastner(California大学Santa Barbara分校),E.J.Kim(Texas A&M大学),Jihong Kim(Seoul国立大学),Jim Kirk(Union大学),Geoffrey S.Knauth(Lycoming学院),Manish M.Kochhal(Wayne州立大学),Suzan Koknar-Tezel(Saint Joseph大学),Angkul Kongmunvattana(Columbus州立大学),April Kontostathis(Ursinus学院),Christos Kozyrakis(Stanford大学),Danny Krizanc(Wesleyan 大学),Ashok Kumar,S.Kumar(Texas 大学),Zachary Kurmas(Grand Valley州立大学),Robert N.Lea(Houston大学),Baoxin Li(Arizona州立大学),Li Liao(Delaware大学),Gary Livingston(Massachusetts大学),Michael Lyle,Douglas W.Lynn(Oregon理工学院),Yashwant K Malaiya(Colorado州立大学),Bill Mark(Texas大学Austin分校),Ananda Mondal(Claflin大学),Alvin Moser(Seattle大学),Walid Najjar(California大学Riverside分校),Danial J.Neebel(Loras学院),John Nestor(Lafayette学院),Jae C.Oh(Syracuse大学),Joe Oldham(Centre学院),Timour Paltashev,James Parkerson(Arkansas大学),Shaunak Pawagi(SUNY Stony Brook分校),Steve Pearce,Ted Pedersen(Minnesota大学),Lu Peng(Louisiana州立大学),Gregory D Peterson(Tennessee大学),Milos Prvulovic(Georgia理工),Partha Ranganathan(HP实验室),Dejan Raskovic(Alaska大学Fairbanks分校),Brad Richards(Puget Sound大学),Roman Rozanov,Louis Rubinfield(Villanova大学),Md Abdus Salam(Southern大学),Augustine Samba(Kent州立大学),Robert Schaefer(Daniel Webster学院),Carolyn J.C.Schauble(Colorado州立大学),Keith Schubert(CSU San Bernardino分校),William L.Schultz,Kelly Shaw(Richmond大学),Shahram Shirani(McMaster大学),Scott Sigman(Drury大学),Bruce Smith,David Smith,Jeff W.Smith(Georgia大学,Athens),Mark Smotherman(Clemson大学),Philip Snyder(Johns Hopkins大学),Alex Sprintson(Texas A&M),Timothy D.Stanley(Brigham Young大学),Dean Stevens(Morningside学院),Nozar Tabrizi(Kettering大学),Yuval Tamir(UCLA),Alexander Taubin(Boston大学),Will Thacker(Winthrop大学),Mithuna Thottethodi(Purdue大学),Manghui Tu(Southern Utah大学),Dean Tullsen(UC San Diego分校),Rama Viswanathan(Beloit学院),Ken Vollmar(Missouri州立大学),Guoping Wang(Indiana-Purdue大学),Patricia Wenner(Bucknell大学),Kent Wilken(California大学Davis分校),David Wolfe(Gustavus Adolphus学院),David Wood(Wisconsin大学Madison分校),Ki Hwan Yum(Texas大学San Antonio分校),Mohamed Zahran(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大学)。
特别感谢Mark Smotherman一遍又一遍地查找本书中的技术错误和写作错误,他的工作显著地改进了这一版的质量。
还要感谢Morgan Kaufmann公司同意在Todd Green和Nate McFadden的领导下对本书进行再版,没有他们的工作,我不可能完成本书。我们还要感谢Lisa Jones和Russell Purdy,她们分别负责管理出版过程和封面设计。新封面将本版中后PC时代的内容和第1版的封面呼应了起来。
以上提到的近150名人士为本版提供了大量帮助,使之成为我们希望的最好的书。

David A.Patterson
出版者的话
本书赞誉
译者序
前言
作者简介
第1章 计算机概要与技术1
 1.1 引言1
  1.1.1 计算应用的分类及其特性2
  1.1.2 欢迎来到后PC时代3
  1.1.3 你能从本书学到什么4
 1.2 计算机系统结构中的8个伟大思想6
  1.2.1 面向摩尔定律的设计6
  1.2.2 使用抽象简化设计6
  1.2.3 加速大概率事件6
  1.2.4 通过并行提高性能7
  1.2.5 通过流水线提高性能7
  1.2.6 通过预测提高性能7
  1.2.7 存储器层次7
  1.2.8 通过冗余提高可靠性7
 1.3 程序概念入门7
 1.4 硬件概念入门10
  1.4.1 显示器11
  1.4.2 触摸屏12
  1.4.3 打开机箱12
  1.4.4 数据安全15
  1.4.5 与其他计算机通信16
 1.5 处理器和存储器制造技术17
 1.6 性能20
  1.6.1 性能的定义20
  1.6.2 性能的度量22
  1.6.3 CPU性能及其因素23
  1.6.4 指令的性能24
  1.6.5 经典的CPU性能公式25
 1.7 功耗墙27
 1.8 沧海巨变:从单处理器向多处理器转变29
 1.9 实例:Intel Core i7基准31
  1.9.1 SPEC CPU基准测试程序31
  1.9.2 SPEC功耗基准测试程序32
 1.10 谬误与陷阱33
 1.11 本章小结35
 1.12 历史观点和拓展阅读36
 1.13 练习题36
第2章 指令:计算机的语言40
 2.1 引言40
 2.2 计算机硬件的操作43
 2.3 计算机硬件的操作数44
  2.3.1 存储器操作数45
  2.3.2 常数或立即数操作数47
 2.4 有符号数和无符号数48
 2.5 计算机中指令的表示53
 2.6 逻辑操作58
 2.7 决策指令60
  2.7.1 循环61
  2.7.2 case/switch语句63
 2.8 计算机硬件对过程的支持64
  2.8.1 使用更多的寄存器66
  2.8.2 嵌套过程67
  2.8.3 在栈中为新数据分配空间69
  2.8.4 在堆中为新数据分配空间70
 2.9 人机交互72
 2.10 MIPS中32位立即数和寻址75
  2.10.1 32位立即数75
  2.10.2 分支和跳转中的寻址76
  2.10.3 MIPS寻址模式总结78
  2.10.4 机器语言解码79
 2.11 并行与指令:同步81
 2.12 翻译并执行程序83
  2.12.1 编译器83
  2.12.2 汇编器84
  2.12.3 链接器85
  2.12.4 加载器87
  2.12.5 动态链接库87
  2.12.6 启动一个Java程序89
 2.13 以一个C排序程序作为完整的例子90
  2.13.1 swap过程90
  2.13.2 sort过程91
 2.14 数组与指针96
  2.14.1 用数组实现clear96
  2.14.2 用指针实现clear97
  2.14.3 比较两个版本的clear97
 2.15 高级内容:编译C语言和解释Java语言98
 2.16 实例:ARMv7(32位)指令集98
  2.16.1 寻址模式99
  2.16.2 比较和条件分支100
  2.16.3 ARM的特色100
 2.17 实例:x86指令集102
  2.17.1 Intel x86的改进102
  2.17.2 x86寄存器和数据寻址模式103
  2.17.3 x86整数操作105
  2.17.4 x86指令编码107
  2.17.5 x86总结108
 2.18 实例:ARMv8(64位)指令集108
 2.19 谬误与陷阱109
 2.20 本章小结110
 2.21 历史观点和拓展阅读111
 2.22 练习题112
第3章 计算机的算术运算117
 3.1 引言117
 3.2 加法和减法117
 3.3 乘法121
  3.3.1 顺序的乘法算法和硬件121
  3.3.2 有符号乘法124
  3.3.3 更快速的乘法124
  3.3.4 MIPS中的乘法124
  3.3.5 小结125
 3.4 除法125
  3.4.1 除法算法及其硬件结构125
  3.4.2 有符号除法128
  3.4.3 更快速的除法128
  3.4.4 MIPS中的除法129
  3.4.5 小结129
 3.5 浮点运算130
  3.5.1 浮点表示131
  3.5.2 浮点加法135
  3.5.3 浮点乘法138
  3.5.4 MIPS中的浮点指令139
  3.5.5 算术精确性145
  3.5.6 小结146
 3.6 并行性和计算机算术:子字并行148
 3.7 实例:x86中流处理SIMD扩展和高级向量扩展149
 3.8 加速:子字并行和矩阵乘法150
 3.9 谬误与陷阱153
 3.10 本章小结155
 3.11 历史观点和拓展阅读158
 3.12 练习题159
第4章 处理器162
 4.1 引言162
 4.2 逻辑设计的一般方法165
 4.3 建立数据通路167
 4.4 一个简单的实现机制173
  4.4.1 ALU控制173
  4.4.2 主控制单元的设计175
  4.4.3 为什么不使用单周期实现方式181
 4.5 流水线概述182
  4.5.1 面向流水线的指令集设计186
  4.5.2 流水线冒险186
  4.5.3 对流水线概述的小结191
 4.6 流水线数据通路及其控制192
  4.6.1 图形化表示的流水线200
  4.6.2 流水线控制203
 4.7 数据冒险:旁路与阻塞206
 4.8 控制冒险214
  4.8.1 假定分支不发生215
  4.8.2 缩短分支的延迟215
  4.8.3 动态分支预测216
  4.8.4 流水线小结220
 4.9 异常221
  4.9.1 MIPS体系结构中的异常处理221
  4.9.2 在流水线实现中的异常222
 4.10 指令级并行226
  4.10.1 推测的概念227
  4.10.2 静态多发射处理器227
  4.10.3 动态多发射处理器231
  4.10.4 能耗效率与高级流水线233
 4.11 实例:ARM Cortex-A8和Intel Core i7流水线234
  4.11.1 ARM Cortex-A8235
  4.11.2 Intel Core i7 920236
  4.11.3 Intel Core i7 920的性能238
 4.12 运行更快:指令级并行和矩阵乘法240
 4.13 高级主题:通过硬件设计语言描述和建模流水线来介绍数字设计以及更多流水线示例242
 4.14 谬误与陷阱242
 4.15 本章小结243
 4.16 历史观点和拓展阅读243
 4.17 练习题243
第5章 大容量和高速度:开发存储器层次结构252
 5.1 引言252
 5.2 存储器技术255
  5.2.1 SRAM技术256
  5.2.2 DRAM技术256
  5.2.3 闪存258
  5.2.4 磁盘存储器258
 5.3 cache的基本原理259
  5.3.1 cache访问261
  5.3.2 cache缺失处理265
  5.3.3 写操作处理266
  5.3.4 一个cache的例子:内置FastMATH处理器267
  5.3.5 小结269
 5.4 cache性能的评估和改进270
  5.4.1 通过更灵活地放置块来减少cache缺失272
  5.4.2 在cache中查找一个块275
  5.4.3 替换块的选择276
  5.4.4 使用多级cache结构减少缺失代价277
  5.4.5 通过分块进行软件优化280
  5.4.6 小结283
 5.5 可信存储器层次283
  5.5.1 失效的定义283
  5.5.2 纠正一位错、检测两位错的汉明编码(SEC/DED)284
 5.6 虚拟机287
  5.6.1 虚拟机监视器的必备条件289
  5.6.2 指令集系统结构(缺乏)对虚拟机的支持289
  5.6.3 保护和指令集系统结构289
 5.7 虚拟存储器290
  5.7.1 页的存放和查找293
  5.7.2 缺页故障294
  5.7.3 关于写297
  5.7.4 加快地址转换:TLB297
  5.7.5 集成虚拟存储器、TLB和cache 300
  5.7.6 虚拟存储器中的保护302
  5.7.7 处理TLB缺失和缺页303
  5.7.8 小结307
 5.8 存储器层次结构的一般框架309
  5.8.1 问题1:一个块可以被放在何处309
  5.8.2 问题2:如何找到一个块310
  5.8.3 问题3:当cache缺失时替换哪一块311
  5.8.4 问题4:写操作如何处理311
  5.8.5 3C:一种理解存储器层次结构行为的直观模型312
 5.9 使用有限状态机来控制简单的cache314
  5.9.1 一个简单的cache314
  5.9.2 有限状态机315
  5.9.3 一个简单的cache控制器的有限状态机316
 5.10 并行与存储器层次结构:cache一致性317
  5.10.1 实现一致性的基本方案318
  5.10.2 监听协议319
 5.11 并行与存储器层次结构:冗余廉价磁盘阵列320
 5.12 高级内容:实现cache控制器320
 5.13 实例:ARM Cortex-A8和Intel Core i7的存储器层次结构320
 5.14 运行更快:cache分块和矩阵乘法324
 5.15 谬误和陷阱326
 5.16 本章小结329
 5.17 历史观点和拓展阅读329
 5.18 练习题329
第6章 从客户端到云的并行处理器340
 6.1 引言340
 6.2 创建并行处理程序的难点342
 6.3 SISD、MIMD、SIMD、SPMD和向量机345
  6.3.1 在x86中的SIMD:多媒体扩展346
  6.3.2 向量机346
  6.3.3 向量与标量的对比347
  6.3.4 向量与多媒体扩展的对比348
 6.4 硬件多线程350
 6.5 多核和其他共享内存多处理器352
 6.6 图形处理单元简介355
  6.6.1 NVIDIA GPU体系结构简介356
  6.6.2 NVIDIA GPU存储结构357
  6.6.3 GPU展望358
 6.7 集群、仓储级计算机和其他消息传递多处理器360
 6.8 多处理器网络拓扑简介363
 6.9 与外界通信:集群网络366
 6.10 多处理器测试集程序和性能模型366
  6.10.1 性能模型368
  6.10.2 Roofline模型369
  6.10.3 两代Opteron的比较370
 6.11 实例:评测Intel Core i7 960和NVIDIA Tesla GPU的Roofline模型373
 6.12 运行更快:多处理器和矩阵乘法376
 6.13 谬误与陷阱378
 6.14 本章小结379
 6.15 历史观点和拓展阅读381
 6.16 练习题382
附录A 汇编器、链接器和SPIM仿真器389
附录B 逻辑设计基础437
索引494
D.Patterson和J.Hennessy是计算机领域的知名学者,为计算机学科和产业的发展做出了巨大贡献,他们合著的《Computer Organization and Design:The Hardware/Software Interface》一书现已发行了第5版。该书对计算机组成的研究和设计实践进行了全面系统的总结。目前,国际上许多大学的计算机原理或计算机体系结构课程都采用这本教材,国内也有不少大学采用这本教材。
第5版在保持计算机组成方面传统论题以及前4版特点的基础上,引入了许多近几年计算机领域发展的新论题,如移动计算、大数据等。另外,在实例方面也与时俱进地采用ARM Cortex A8和Intel Core i7等现代设计对计算机组成的基本原理进行说明。
感谢机械工业出版社华章公司一直关注本书的引进和中译本的出版工作,姚蕾编辑和朱秀英编辑为中译本的翻译工作提出了大量宝贵意见。
感谢清华大学郑纬民教授对前3版中译本所做的工作,是他使得这本重要教材在国内有了广泛的读者。感谢西北工业大学康继昌教授、樊晓桠教授和安建峰副教授对第4版中译本所做的工作,是他们使得第5版的翻译有了很好的基础,另外,康继昌教授和安建峰副教授也参与了本版的翻译工作。
西北工业大学计算机学院的研究生赵磊、刘朝锋、庄淼、马鑫、朱迪、朱艳娜等也参加了本书的翻译和校对工作。本书的翻译工作还得到了国家自然科学基金项目(No.61472322)的支持。
由于译者水平有限,书中难免存在一些翻译不当或理解欠妥的地方,希望读者批评指正。

王党辉
2015年2月于西北工业大学
计算机\计算机组成
读者书评
发表评论



高级搜索
深入理解计算机系统(原书第3版)
OpenStack系统架构设计实战
从M2M到物联网:架构、技术及应用


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才