美国加州大学伯克利分校计算机系Patterson教授和斯坦福大学计算机系Hennesssy教授是现今计算机设计领域非常受人尊敬的学者和开创者。John Hennessy精通硬件/软件,是具有传奇色彩的MIPS编译器和几代MIPS硬件产品的技术上的领导者。David Patterson是RISC最初提倡者之一。他创造了RISC一词,定义了RISC的含义,是Sun公司SPARC处理器的主要顾问。他提出了RAID(廉价磁盘冗余阵列),带来了为大量数据服务磁盘存储的工业的革命,并且又提出了NOW(工作站网络)的概念。该书是他们对组织研究和实践的全面而系统的总结。目前,世界上很多大学的计算机原理课程采用这本教材。国内也有大学采用这本教材的英文版。
\r\n 与同类著作相比,这本书具有结构清晰完整、系统性强、内容新颖、行文深入浅出,可读性好的特点。特别值得提出的是,这本书讲授计算机组织的基本要领和基础。更重要的是,本书提供了计算机组织的设计和基础框架,使读者能够继续学习的必要知识,从而可以保持在这一领域的前沿位置。这是一本能使读者在较短时间内全面了解、熟悉和掌握当代计算机系统发展主流技术和最新成就的优秀教材和专业参考书。
\r\n 本书是计算机及相关专业本科和研究生的经典教材。
\r\n
译者序\r\n序言\r\n前言\r\n计算机组织和在线设计\r\n第1章 计算机概念和技术\r\n 1.1 引言\r\n 1.2 程序内部\r\n 1.3 内部的硬件\r\n 1.3.1 鼠标\r\n 1.3.2 显示器\r\n 1.3.3 打开机箱\r\n 1.3.4 数据的安全\r\n 1.3.5 与其他计算机通信\r\n 1.4 集成电路:推动创新\r\n 1.5 实例:制造Pentium芯片\r\n 1.6 谬误和陷讲\r\n 1.7 结论\r\n 1.8 历史回顾和参考文献\r\n 1.8.1 第一台电子计算机\r\n 1.8.2 商业发展\r\n 1.8.3 各代计算机\r\n 1.8.4 参考文献\r\n 1.9 重要术语\r\n 1.10 习题\r\n第2章 性能评价\r\n 2.1 引言\r\n 2.2 性能测量\r\n 2.3 各种性能指标之间的关系\r\n 2.4 选择性能评价程序\r\n 2.5 性能比较与综合评价\r\n 2.6 实例:新型处理器的SPEC95基准程序及性能评价\r\n 2.7 谬误和陷阱\r\n 2.8 结论\r\n 2.9 历史回顾和参考文献\r\n 2.9.1 MIPS、MOPS以及FLOPS\r\n 2.9.2 早期综合性基准程序及核心基准程序的问题\r\n 2.9.3 将简单程序用于基准测试的问题\r\n 2.9.4 综合评价是不可靠的\r\n 2.9.5 SPEC基准程序集的性能\r\n 2.9.6 参考文献\r\n 2.10 重要术语\r\n 2.11 习题\r\n第3章 指令:机器的语言\r\n 3.1 引言\r\n 3.2 计算机硬件的操作\r\n 3.3 计算机硬件的操作数\r\n 3.4 指令的计算机内表示\r\n 3.5 决策指令\r\n 3.5.1 循环\r\n 3.5.2 case和switch语句\r\n 3.6 计算机硬件对过程的支持\r\n 3.6.1 使用更多的寄存器 \r\n 3.6.2 嵌套过程\r\n 3.6.3 为新数据分配空间\r\n 3.7 数据字以外\r\n 3.8 MIPS的其他寻址方式\r\n 3.8.1 常数据或立即数\r\n 3.8.2 分支和跳转指令的寻址\r\n 3.8.3 MIP寻址方式小结\r\n 3.8.4 机器语言的解码\r\n 3.9 启动程序\r\n 3.9.1 编译器\r\n 3.9.2 汇编程序\r\n 3.9.3 链接程序\r\n 3.9.4 加载程序\r\n 3.10 一个完整的例子\r\n 3.10.1 swap过程\r\n 3.10.2 sort过程\r\n 3.11 数组与指针\r\n 3.11.1 clear的数组版\r\n 3.11.2 clear的指针版\r\n 3.11.3 比较clear的两个版本\r\n 3.12 实例:PowerPC和80x86\r\n 3.12.1 IBM/Motorola PowerPC\r\n 3.12.2 Intel 80x86\r\n 3.13 谬误和陷阱\r\n 3.14 结论\r\n 3.15 历史回顾和参考文献\r\n 3.15.1 累加器体系结构\r\n 3.15.2 通用寄存器体系结构\r\n 3.15.3 紧凑代码和堆栈体系结构\r\n 3.15.4 高级语言计算机体系结构\r\n 3.15.5 精简指令集计算机体系结构\r\n 3.15.6 80x86简史\r\n 3.15.7 参考文献\r\n 3.16 重要术语\r\n 3.17 习题\r\n第4章 计算机的算术运算\r\n 4.1 引言\r\n 4.2 带符号数与无符号数\r\n 4.3 加法与减法\r\n 4.4 逻辑运算 \r\n 4.5 构造算术逻辑单元\r\n 4.5.1 1位ALU\r\n 4.5.2 32位ALU\r\n 4.5.3 MIPS的32位ALU\r\n 4.5.4 超前进位\r\n 4.6 乘法\r\n 4.6.1 第一种乘法算法及其硬件实现\r\n 4.6.2 第二种乘法算法及其硬件实现\r\n 4.6.3 第三种乘法算法及其硬件实现\r\n 4.6.4 带符号数乘法\r\n 4.6.5 布斯算法\r\n 4.6.6 MIPS中的乘法运算\r\n 4.6.7 小结\r\n 4.7 除法\r\n 4.7.1 第一种除法算法及其硬件实现\r\n 4.7.2 第二种除法算法及其硬件实现\r\n 4.7.3 第三种除法算法及其硬件实现\r\n 4.7.4 带符号数除法\r\n 4.7.5 MIPS中的除法运算\r\n 4.7.6 小结\r\n 4.8 浮点运算\r\n 4.8.1 浮点数表示方法\r\n 4.8.2 浮点数加法\r\n 4.8.3 浮点数乘法\r\n 4.8.4 MIPS的浮点指令\r\n 4.8.5 精确的算术运算\r\n 4.8.6 小结\r\n 4.9 实例:PowerPC和80x86中的浮点部件\r\n 4.9.1 PowerPC的乘累加指令\r\n 4.9.2 80x86的浮点体系结构\r\n 4.10 谬误和陷阱\r\n 4.11 结论\r\n 4.12 历史回顾和参考文献\r\n 4.12.1 有关浮点运算的第一场争论\r\n 4.12.2 浮点运算的差异性与可移植性\r\n 4.12.3 新不如旧\r\n 4.12.4 专家的烦恼\r\n 4.12.5 浮点运算的不断完善\r\n 4.12.6 最早采用IEEE754标准的芯片\r\n 4.12.7 IEEE754标准现状\r\n 4.12.8 参考文献\r\n 4.13 重要术语\r\n 4.14 习题\r\n第5章 处理器:数据通路及其控制\r\n第6章 利用流水线提高性能\r\n第7章 存储器层次数结构\r\n第8章 输入输出系统\r\n第9章 多处理器\r\n附录A 汇编程序、链接程序和SPIM模拟器\r\n附录B 逻辑设计基础\r\n附录C 控制器的硬件实现\r\n\r\n
关于本书
我们认为对计算机科学和工程的学习必须反映这一领域的当前情况,介绍组成计算的基本原则。同时,学习计算各方面的读者都需要了解决定计算机系统的能力、性能、直至计算机系统成功与否的组织设计原则。
现代计算机技术要求每个专家既懂硬件又懂软件,软硬件在多个层次上的交互提供了理解计算基础的框架。无论你感兴趣的是计算机科学还是电子工程,其中计算机设计和组成的中心思想是一致的。本书重点讲述软硬件的关系以及目前计算机系统的基本概念。
通常,大多数的书都把汇编语言、组织结构和设计当作不相关的子集介绍。在我们看来,随着计算机技术的发展,这种差别逐渐失去了意义。为了更透彻理解这个领域的广泛性,我们需要理解这几个方面的相互依赖关系。
本书适合具有少量汇编语言或逻辑设计知识,想了解计算机组织的基本结构;以及有上述背景知识,想学习如何设计计算机,并且想了解计算机系统工作原理的读者。
第2版的变化
在第2版中,我们有6个主要目标:使书中的内容更接近实际应用;使本书更适合初学者阅读;增加了万维网(world wide web,WWW)的内容;改善质量;改进教学方法;更新了实用技术部分的内容,以反映自1994年第1版以来计算机产业的进展,这也是我们编写第2版的主要原因。
首先,为了使书中的例子更具体,与实际应用更贴切,每一章我们都将展示这些想法是如何在IBM和Motorola最新推出的微处理器中实现的,从而使读者可以知道我们讨论的技术是怎样在台式机上实现的。每一章都增加“实例”一节,将书中介绍的想法同你每天使用的机器联系在一起。
其次,我们希望本书能使读者对计算机组织结构的整体有更好的了解。每一章都列有本章所讨论的关键术语。另外,我们还用日常生活中的例子来比喻计算机中微妙的道理:
■ 用商用飞机来展示带宽和延迟等性能上的差别。
■ 用间谍的隐蔽行动来说明过程调用和嵌套。
■ 用铅锤来解释前向逻辑是如何工作的。
■ 用洗衣房来表明流水线的运行和阻塞。
■ 用图书馆的桌子来比喻存储系统层次结构。
■ 用学员数增多引起管理开销的增长来说明在大规模多处理器上获得高性能的难度。
我们特别增加了汇编语言编程的例子,每个例子都有详细的说明,以帮助初学者更好地理解第3和第4章的汇编语言程序。在有关流水线的第6章我们增加了概述部分,使读者不必了解流水线数据通路和控制的细节即能理解有关流水线设计的重要观点和想法。
第三个目标是除正文讲述之外提供万维网上的链接和说明。
该网站提供了最新的相关机器的一些例子,可以帮助了解书中观点的最新实现。例如,网站增加了一个新的在线补充("WebExtension I”),用来与RISC体系结构作比较。另外,它还包括指向有关本书特定引用的其他站点的链接;如何使用PCspim的说明;SPIM模拟器在DOS和Windows环境下的最新版本;到SPIM其他版本的链接;对书中插图的访问;演讲幻灯片;到讲师主页的链接;在线指导手册。该网站还包括了第1版的补充附录("Web ExtensionⅡ”、“Web ExtensionⅢ”),希望能给读者提供有价值的参考。我们会定期更新这些主页以提供更新更好的链接。
第四,我们想通过修订版尽可能多地改进书中的不足。第1版使用p测试,以检验哪些方面良好,哪些方面还存在不足,我们取得了令人满意的改进结果。第2版同样使用了p测试。为了进一步减少书中的错误,我们延长了开发‘周期,更多的计算机专家参与了本书的制作过程。首先,Tod Amon校对了所有的习题,许多专家对习题给出了宝贵的建议。书中现有30%新的习题,还有30%改写过的习题,共有400道。我们相信这些习题已表述得更明确,可为更多的学生提供练习的机会。其次,KentWilken仔细阅读了测试版,提出了上百条建议。在我们修改了测试版之后,George Adams重新进行校对,再一次提出了上百条宝贵的建议。最后,我们检查了整个稿件,以找出编写过程中遗漏的错误。虽然本书还存在一定的错误,但我们确信第2版比第1版肯定是强得多了。
第五个目标是扩充书中内容的深度,解决第1版读者提出的难题。我们扩充了第3章介绍过程的内容,用大量的例子来说明过程的内部结构。第4章用更多的篇幅介绍先行进位机制和进位保存加法器。第5章,增加了几个寄存器以简化对多周期数据通路的说明。第6章加入了“流水线概述”一节,删去了大量介绍流水线细节的例子,从而大大减少了篇幅。我们对流水线的图表也做了大量的改动,使其更易理解和保持一致性。我们重新组织了第7章,首先集中介绍高速缓冲存储器,然后介绍虚拟存储器和转换缓冲,最后介绍它们的共同之处。在讲述虚存时,我们把重点放在它的硬件保护功能而不仅仅是层次存储的一部分。第8章集中于大量的定量描述及定向设计。第9章完全重写,以反映1994年以来并行处理工业的飞速发展。
最后,从第1版至今,计算机已能以1 teraFLOPS(每秒10次浮点数操作)的速度或每微秒百万浮点运算的速度运行程序,计算机首次战胜了人取得国际象棋的胜利,整个世界越来越欣喜于万维网的产生。这些事件发生的原因在于,计算机设计者们在过去的10年里将计算机的性能提高了100倍,并把多个机器连在一起以获得更高的性能。我们将介绍一些使这些奇迹得以实现的新的思想,例如第6章的分支预测和乱序执行,第7章的多层次和非阻塞的高速缓存,第8章的交换网络和新型总线技术,第9章的非均匀存储器访问、共享存储多处理器和机群。