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


  在线购买
David A.Patterson;John L.Hennessy
7-111-20214-1
75.00
593
2007年04月12日
郑纬民 等
计算机 > 硬件与维护 > 接口
Elsevier
3559
简体中文
16开
Computer Organization and Design:The Hardware/Software Interface,Third Edition
教材
计算机科学丛书



1CD



软件设计者对软件系统运行环境的硬件技术是否了解、了解多少,会很大程度地影响软件系统的性能。同样,硬件设计者必须了解设计决策将对软件产生怎样的影响。本书着眼于当前计算机设计中最基本的概念,展示了软硬件间的关系。本书将帮助读者对计算机有更深入的认识。
  本书采用MIPS处理器作为展示计算机硬件技术基本功能的核心。书中逐条指令地列举了完整的MIPS指令集——汇编语言的核心、计算机算术运算、流水线、存储器层次结构以及I/O,并介绍了网络和多处理器结构的基本内容。
  将CPU性能和程序性能紧密地联系起来是本版的一个新增内容。作者展示了软件和硬件(如算法、编程语言、编译器、指令集系统结构以及处理器的实现)如何影响程序的性能。另外,本版对软硬件的讨论更加深入,并在光盘中为侧重硬件和侧重软件的读者分别提供了相关资料。
  随书光盘的内容非常丰富,不仅包括第9章、附录、本书网站内容、附加习题、术语表、参考文献、索引等,而且提供了HDL模拟器、MIPS模拟器以及FPGA设计工具等软件。

本书的主要特点
  ●将第2版全部更新,以反映最新技术。
  ●使用标准32位MIPS指令集作为教学指令集。
  ●反映了体系结构的最新进展:
   ·Intel lA-32        ·Web基准测试集SPEC Web99
    ·Power PC 604        ·嵌入式系统测试集EEMBC
    ·Pentium P4         ·AMD Opteron存储器层次结构
   ·Google的PC集群      ·AMD与IA-64比较
   ·处理器基准测试集SPEC   ·Intrinsity的FastMATH
     CPU2000          处理器服务器

  ●硬件方面的新资料:
   ·使用逻辑设计约定      ·使用FPGA设计
   ·用硬件描述语言设计     ·HDL模拟器和使用说明
   ·高级流水线设计       ·Xilinx CAD工具

  ●软件方面的新资料:
   ·编译器如何工作       ·如何实现面向对象程序设计语言
   ·如何优化编译器       ·程序设计语言、编译器、操作系统以及
                   数据库的历史
我们能体验的最美好的东西是神秘的事物。它是所有真正艺术和科学的来源。
  阿尔伯特·爱因斯坦《我的世界观》,1930
  关于本书
  我们认为,讲解计算机科学和工程必须反映这一领域的当前情况,同时介绍组成计算的基本原理。我们认为计算领域的各类读者都需要了解计算机组成原理,这些原理决定计算机系统的能力、性能,甚至成功与否。
  现代计算机技术要求各类专家既懂硬件又懂软件,因为了解软、硬件在多个层次上的交互,便能理解计算基础的框架。无论你是对硬件还是软件,对计算机科学还是电子工程感兴趣,计算机设计和组成的中心思想是一致的。因此,本书重点讲述软、硬件的关系以及目前计算机系统的基本概念。
  本书适用于:没有汇编语言或逻辑设计知识且想了解计算机组织结构基础知识的初学者;以及有汇编语言或逻辑设计背景知识,想学习如何设计计算机并且想了解计算机系统工作原理的读者。
  与本书相关的另一本书
  有些读者可能熟悉我们写的另一本书《计算机体系结构:量化研究方法》。我们写那本书的目的是通过坚实的工程基础和量化的性能/价格权衡描述计算机体系结构的基本原则。我们以实例和度量相结合的方法,在商用系统的基础上,建立实际的设计经验。目的是要说明计算机的体系结构可以通过量化的方法而非描述的方法来学习。它是为想了解计算机细节的专业人士准备的。
  而大部分人并非想成为计算机系统结构专家。然而,软件设计者对系统中硬件技术的理解程度在很大程度上决定了未来的软件系统的性能。因此,编译器的设计者、操作系统的设计者、数据库的设计者和其他软件设计人员都需要理解本书讲述的基本原理。同样,硬件设计者也应该清楚地认识到他们的工作对软件应用产生的影响。
  虽然我们两人合作写了《计算机体系结构:量化研究方法》和这本书,但本书并非前者的子集,我们针对不同的读者修订了书中的素材。另外,《计算机体系结构:量化研究方法》一书的后续版本也去除了介绍性的内容,因此两书重合的部分更少了。
  第3版的变化
  在本书第3版中,我们有六个主要目标:使本书既适合关心硬件的读者也适合关心软件的读者;改进教学方法;加强理解程序性能的内容;更新了技术内容以反映当前行业情况(因为第2版是1998年出版的);使书中的内容更接近计算机行业以外的实际应用;减少书本的篇幅。
  第一,下面的表格显示了软件知识和硬件知识在各章节中的分布。第1、4、7章是共同的内容,与经验和关注点无关。第2、3章可以看做是硬件相关的,但是对于关注软件的读者,特别是那些对编译器和面向对象编程语言感兴趣的读者而言,也是需要掌握的。第5、6章的第一节可以使关心软件的读者对该章有一个整体的了解。而关心硬件的读者会发现这两章是核心内容;根据各自背景不同,有些读者可能需要先读附录B“逻辑设计基础”以及57节“微程序设计:简化控制设计”和58节“使用硬件描述语言进行数字设计概述”。第8章关于输入/输出的内容对关心软件的读者很重要,如果时间允许也应该读一读。最后一章关于多处理器和集群,读与不读同样要看读者的时间而定。“历史回顾”部分也考虑到了均衡性,它们涵盖程序设计语言、编译器、数值处理软件、操作系统、网络协议和数据库。

章或附录 节 关注软件 关注硬件
第1章计算机概念和技术 11 ~ 16 17(历史)
第2章计算机指令 21 ~ 211 212(编译器) 213(C 排序) 214(Java) 215 ~ 218 219(历史)
第3章计算机的算术运算 31 ~ 39 312(历史)
附录D桌面计算机、服务器和嵌入式计算机上的RISC体系结构 D1 ~ D19
第4章性能 41 ~ 46 47(历史)
附录B逻辑设计基础 B1 ~ B13
第5章处理器:数据通路及其控制 51(概述) 52 ~ 57 58(微代码)
59(Verilog) 510 ~ 512 513(历史)
附录C控制器的硬件实现 C1 ~ C6
第6章利用流水线提高性能 61(概述) 62 ~ 66 67(Verilog)
68 ~ 69 610 ~ 612 613(历史)
第7章层次结构的存储器 71 ~ 78 79(历史)
第8章存储器、网络和其他外围设备 81 ~ 82 83(网络) 84 ~ 810
813(历史)
第9章多处理器和集群 91 ~ 910 911(历史)
附录A汇编程序、连接程序和SPIM模拟器 A1 ~ A12 现实世界中的计算机 在各章之间
仔细阅读 有时间应该读 参考资料 回顾或阅读 拓展阅读


  第二,根据第2版读者提到的困难,我们改善了书中观点的表述方式。我们在新书中加了五个模块帮助读者阅读。为了便于查询,我们在新术语第一次出现时,以脚注的形式给出了术语的定义。另一个变化是加入了“自测”部分,可以帮助读者检查对新概念的理解。还增加了额外的习题——更多练习(For More Practice),增加了自测和更多练习的参考答案,以帮助读者通过对照答案加深理解。我们受IBM System/360“绿卡”的启发,相信你会发现在编写MIPS汇编程序时,文前插页“MIPS参考数据卡”是一个很好的参考资料。我们的建议是你将这页从书的前页撕下来,折起来,装在口袋里,就像IBM S/360的程序员在20世纪60年代做的那样。
  第三,现代计算机太复杂了,分析一个程序的性能需要深入理解底层原则和所使用的计算机的组织方式。我们的目标是使读者能够了解程序的性能并指导他们如何改进。为了这一目标,我们在很多章节中加入了“理解程序性能”的小结,它们给出了该章内容如何影响实际程序的具体例子。
  第四,自本书第2版问世以来,硬件系统持续按照摩尔定律发展着。现在我们有了包括2亿个晶体管的处理器,包括10亿个晶体管的DRAM芯片,时钟频率达到了几GHz。“实例”中的例子更新到了现在的芯片。第3版还引入了AMD 64/IA32e,它是生命期很长的80x86体系结构的64位版本,被认为是IA64的克星。本书还反映了从并行总线到串行网络的迁移。后面的章节还谈到了Google,介绍了它的集群技术和在搜索领域内的杰出应用。
  第五,尽管许多计算机科学与工程专业的学生出于技术的原因而喜爱信息技术,还有一些人有更利他主义的兴趣,后者的群体中有很多女性和未被提及的少数派群体。因此,我们在每章之后加入了新的模块——“现实世界中的计算机”。我们的观点是信息技术比其他话题(如文化遗产保护、帮助第三世界国家、保护环境等)对人类更有价值,所以我们展示了一些非传统应用的具体例子。我们相信读者读了这些内容后,除了内在的令人感兴趣的技术外,读者更能够欣赏到计算机文化的魅力,就像读了每章后面的“历史回顾”内容一样。
  第六,书和人一样,会变得越来越厚,越来越老。通过现代技术,我们在增添上述内容的同时还将书本的页数缩减了几百页。如同前面的表格展示的,软件和硬件的核心内容留在了书中,那些只对一部分读者有额外价值的材料放到了随书的光盘中。这一方式使得作者可以提供大量的历史材料和更多的相关练习而不必担心书的篇幅。增加了光盘,我们就还可以放很多免费软件和很多老师都会在课堂上使用的辅导材料。
  为方便中国读者全面理解和学习本书的内容,本书中文翻译版将原放在光盘中的一些章节也留在了本书中。——编者注教学支持
  我们收集了很多材料帮助老师用本书授课。练习题的答案、书中的图表、笔记、课件以及其他材料都可以从出版商那里获得。需要更多的信息请访问出版商的网站:
  www.mkp.com/companions/1558606041
  结语
   从下面的致谢部分,你会看到我们尽了最大努力修改书中的错误。一本书的印刷次数越多,就有更多的机会来修改错误。如果你发现任何可能的错误,请发电子邮件到cod3bugs@mkp.com或写信与出版商联系。
  本书是两个人合作的结晶。我们共同探讨主要内容和表述方法,然后分别写一半的内容,再为另一半的草稿作审校。我们写了几乎同样页数的内容, 因此,我们共同承担读者对本书的任何批评。
  第3版致谢
  我们再次表达对Jim Larus的感激,感谢他为本书提供的关于汇编语言编程的专业见解。我们欢迎读者使用他所开发和维护的模拟器。我们的习题编辑Dan Sorin承担了增添新习题和答案的艰巨任务。Peter Ashenden在收集整理光盘中的内容时也付出了同样巨大的努力。
  我们要感谢很多的老师,他们参加了出版商的调查,阅读了我们的提议,参加了不同的兴趣小组分析并回应我们关于这一版的计划。他们是:哈特福德大学的Michael Anderson,新墨西哥大学的David Bader,空军技术学院的Rusty Baldwin,伊萨卡学院(Ithaca College)的John Barr,南部大学的Jack Briner,瑞典KTH的Mats Brorsson,富兰克林大学的Colin Brown,波因特-劳玛-拿撒勒大学的Lori Carter,东北大学的John Casey,Messiah学院的Gene Chase,马萨诸塞大学Lowell分校的George Cheney,以色列耶路撒冷理工学院的Daniel Citron,法国INRIA的Albert Cohen,PathScale的Lloyd Dickman,西班牙巴伦西亚理工大学的Jose Duato,华盛顿大学的Ben Dugan,加拿大萨斯喀彻温大学的Derek Eager,瑞典查尔姆斯理工大学的Magnus Ekman,南康涅狄格州立大学的Ata Elahi,宾夕法尼亚印第安那大学的Soundararajan Ezekiel,西北密苏里州立大学的Ernest Ferguson,宾夕法尼亚Lebanon谷学院的Michael Fry,阿肯色小石城大学的R. Gaede,加州大学尔湾分校的JeanLuc Gaudiot,威斯康星La Crosse大学的Thomas Gendreau,加州州立大学圣博那帝诺分校的George Georgiou,加拿大纽芬兰纪念大学的Paul Gillard,加利福尼亚州立工业大学波莫纳分校的Joe Grimes,古斯塔夫斯-艾道尔佛斯学院的Max Hailperin,明尼苏达州州立圣克劳德大学的Jayantha Herath,威斯康星大学麦迪逊分校的Mark Hill,弗吉尼亚技术大学的Michael Hsaio,加州大学圣克鲁兹分校的Richard Hughey,哥伦比亚大学的Tony Jebara,萨维尔大学的Elizabeth Johnson,圣母大学的Peter Kogge,BAH的Morris Lancaster,蒙大拿大学的Doug Lawrence,明尼苏达大学的David Lilja,加州圣克拉拉大学的Nam Ling,Agilent Technologies的Paul Lum,加拿大滑铁卢大学的Stephen Mann,卡内基-梅隆大学的Diana Marculescu,美国海军军官学校的Margaret McMahon,佛罗里达州立大学的Uwe MeyerBaese,弗吉尼亚大学的Chris Milner,西南浸信会大学的Tom Pittman,加州圣荷西州立大学的Jalel Rejeb,密苏里-罗拉大学的Bill Siever,弗吉尼亚大学的Kevin Skadron,科罗拉多州里吉斯大学的Pam Smallwood,洛基山学院的K. Stuart Smith,普利茅斯州立大学的William J. Taffe,德州农工大学的Michael E. Thomodakis,加拿大曼尼托巴大学的Ruppa K. Thulasiram,南阿拉巴马大学的Ye Tung,卡尔文学院的Steve VanderLeest,德州大学圣安东尼奥分校的Neal R. Wagner和加州大学戴维斯分校的Kent Wilken。
  我们还要感谢那些仔细阅读了本书手稿的人们;他们有些甚至反复阅读,以确保我们在修订时没有增加新的错误。他们是:麻省理工学院的Krste Asanovic,华盛顿大学的JeanLoup Baer,哈佛大学的David Brooks,普林斯顿大学的Doug Clark,科罗拉多大学Boulder分校的Dan Connors,加州大学戴维斯分校的Matt Farrens,马里兰大学学院公园分校的Manoj Franklin,莱斯大学的John Greiner,哈维玛德学院的David Harris,加州大学伯克利分校的Paul Hilfinger,惠普公司的Norm Jouppi,东北大学的David Kaeli,加州大学伯克利分校的David Oppenheimer,南加州大学的Timothy Pinkston,克莱蒙森大学的Mark Smotherman和威斯康星大学麦迪逊分校的David Wood。
  为了实现本版习题的70%都是新题的目标,我们招募了很多教授推荐的一些研究生。非常感谢他们的创造力和努力工作。他们是:马里兰州立大学的Michael Black,罗彻斯特大学的Lei Chen,麻省理工学院的Nirav Dave,罗彻斯特大学的Wael El Essawy,布朗大学的Nikil Mehta,罗彻斯特大学的Nicholas Nelson,德州大学奥斯汀分校的Aaron Smith和杜克大学的Charlie Wang。
我们要特别感谢Mark Smotherman,他仔细校读了本书,找出技术和写作上的错误,大大提高了这一版的质量。
  我们要感谢Morgan Kaufmann公司同意再次出版本书,这次是在Denise Penrose 的有力领导下完成的。她想出了书本和光盘混合发行的方法,并找到了上述在本书的写作过程中起着重要作用的许多人。
  Simon Crump负责整个出版过程。Summer Block进行了读者调查并整理他们的反馈。我们还要感谢许多帮助完成本书的自由职业者,特别是编排人员Nancy Logan和Dartmouth出版公司。
  以上提及的近100来人为本书的第3版做出了贡献,使本书成为我们所出的最好的一本书。感谢大家。
  David A.Patterson
  John L.Hennessy
目录
出版者的话
专家指导委员会
译者序
前言
第1章计算机概念和技术
11概述
12程序的表象之下
13打开计算机的机箱
14实例: 制造Pentium 4芯片
15谬误和陷阱
16结论
17历史回顾和深入阅读
18习题
现实世界中的计算机:信息技术在非IT
领域的40亿产值
第2章计算机指令
21概述
22计算机硬件的操作
23计算机硬件的操作数
24计算机中指令的表示
25逻辑运算
26分支指令
27计算机硬件的过程支持
28人机交互
29对32位立即数的MIPS编址
和寻址
210程序的翻译和启动运行
211编译器如何优化
212编译器如何工作初探
213以一个C程序的排序为例
214面向对象语言的实现
215数组与指针
216实例: IA32 指令
217谬误和陷阱
218结论
219历史回顾和深入阅读
220习题
现实世界中的计算机:用数据拯救我们的
环境
第3章计算机的算术运算
31概述
32有符号数与无符号数
33加法与减法
34乘法
35除法
36浮点运算
37实例: IA32中的浮点部件
38谬误和陷阱
39结论
310历史回顾和深入阅读
311习题
现实世界中的计算机:重建古代世界
第4章评估和理解性能
41概述
42CPU的性能和影响因素
43性能评估
44实例: 两个SPEC基准测试以及新型Intel处理器的性能评价
45谬误和陷阱
46结论
47历史回顾和深入阅读
48习题
现实世界中的计算机:使交通工具更快更安全
第5章处理器
51概述
52逻辑设计规则
53数据通路的建立
54一个简单的实现方案
55多周期实现方案
56异常
57微程序设计: 简化控制设计
58使用硬件描述语言进行数字设计概述
59实例: 近期的Pentium处理器的实现结构
510谬误和陷阱
511结论
512历史回顾和深入阅读
513习题
现实世界中的计算机:助力残障人士
第6章利用流水线提高性能
61流水线概述
62流水线的数据通路
63流水线中的控制
64数据冒险与转发
65数据冒险与阻塞
66分支冒险
67使用硬件描述语言对流水线进行建模
68异常
69高级话题: 如何提高性能
610实例:Pentium 4处理器的流水线
611谬误和陷阱
612结论
613历史回顾和深入阅读
614习题
现实世界中的计算机:无网守的大众通信方式
第7章层次结构的存储器
71概述
72高速缓存基础知识
73高速缓存性能的评估和提高
74虚拟存储器
75层次结构存储器的一般框架
76实例: Pentium P4和AMD Opteron的存储器层次结构
77谬误和陷阱
78结论
79历史回顾和深入阅读
710习题
现实世界中的计算机:保护世界艺术财富
第8章存储器、 网络和其他外围设备
81概述
82磁盘存储及其可靠性
83网络
84总线以及在处理器、 内存和I/O
设备之间的其他连接
85为处理器、 内存和操作系统提供
I/O设备接口
86I/O性能测量: 磁盘和文件系统的例子
87设计I/O系统
88实例: 数码相机
89谬误和陷阱
810结论
811历史回顾和深入阅读
812习题
现实世界中的计算机:通过更好的诊断来延长寿命
第9章多处理器和集群
91概述
92多处理器编程
93用单一总线连接的多处理器
94通过网络连接的多处理器
95集群
96网络拓扑结构
97片内多处理器和多线程技术
98实例: Google PC集群系统
99谬误和陷阱
910结论——计算机系统结构的
改良和变革
911历史回顾和深入阅读
912习题
附录A汇编器、链接器和
SPIM模拟器
附录B逻辑设计基础
附录C控制器的硬件实现
附录D桌面计算机、 服务器和嵌
入式计算机上的RISC体系
结构综述


美国加州大学伯克利分校计算机系的Patterson教授和斯坦福大学校长计算机系的Hennessy教授是现今计算机设计领域非常受人尊敬的学者和开创者。David A.Patterson教授是RISC的最初提倡者之一。他创造了RISC一词,定义了RISC的含义,是Sun公司SPARC处理器的主要顾问。他提出了RAID(廉价冗余磁盘阵列),带来了为大量数据服务器提供磁盘存储的工业革命,并且又提出了NOW(工作站网络)的概念,引领了当今集群技术的发展。John LHennessy教授精通硬件/软件两个方面,是具有传奇色彩的MIPS编译器和几代MIPS硬件产品技术上的领导者。该书是他们对计算机组织研究和实践的全面而系统的总结。目前,世界上很多大学的计算机原理课程都采用这本教材,国内也有大学采用这本教材。
  与同类著作相比,这本书行文深入浅出,具有结构清晰、系统性强、内容新颖、可读性好的特点。特别值得一提的是,这本书不仅讲授计算机组成的基本概念和基础,而且提供了计算机组成和设计的基本框架,使读者能够继续学习必要的知识,从而保持在这一领域的前沿位置。这正是我们将其翻译成中文并极力在国内推广的主要原因。这是一本能使读者在较短时间内全面了解、熟悉和掌握当代计算机系统发展主流技术和最新成就的优秀教材和专业参考书。其中译本的问世必将对我国计算机科学技术的教育和研究工作带来新的思路和素材。
  感谢机械工业出版社华章公司对出版本书中译本的支持,感谢清华大学计算机系高性能计算所各位同学在翻译和校对过程中所付出的辛勤努力。由于时间仓促、译者水平有限,文中定有不当或欠妥之处,还望读者批评指正。
  郑纬民
  2006年8月于清华园
读者书评
发表评论



高级搜索
微机接口技术实验教程
微型计算机接口技术
计算机组织与设计:硬件/软件接口(英文版.第2版)


版权所有© 2008 北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260