本书的前4个版本都是建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念上的。今天,与第1版出版时相比,这个基本概念依旧正确,所以它仍然是第5版的基础。和前4版一样,我们将详细讨论数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层。
尽管保留了基本的结构,但第5版还是包含了许多或大或小的改动,以跟上飞速更新的计算机产业的步伐。例如,本版的实例均已改成当前的主流计算机系统,即Intel公司的Pentium4、Sun公司的UltraSPARC m和Intel的8051。其中,Pentium 4是桌面计算机的主流CPU;UltraSPARCⅢ则是服务器采用的主流CPU,广泛应用于中型和大型多处理器系统中。.
也许,8051用在本书的实例中可能会让一些读者感到惊讶,毕竟它已经有数十年历史了。然而,随着嵌入式系统应用的迅速增长,8051终于迎来了自己的时代。无论是收音机闹钟还是微波炉,几乎所有电子设备都嵌入了计算机系统。8051由于成本极其低廉,软件和外部设备支持异常丰富,并且有数量众多的程序员使用,所以它在嵌入式系统领域得到了广泛的应用。
几年来,许多教本课程的老师多次询问关于汇编语言程序设计的内容,第5版增加了一个附录C,包含了汇编语言程序设计的材料,同时也放在了随书光盘’中。我选择的是8088的汇编语言,主要原因在于它是当前流行的Pentium汇编的先前版本。我当然也可以选择UltraSPARC或者MIPS,甚至其他没人听说过的CPU作例子,但作为目的性很强的教学工具,选择8088的理由更充分一些,因为大多数学生家里都有一台Pentium计算机,而Pentium能运行8088的汇编语言程序。尽管如此,调试汇编语言程序依然比较困难,我提供了一系列的工具供读者学习汇编语言程序设计,包括8088的汇编器、模拟程序和跟踪程序,这些工具可在Windows、UNIX和Linux下运行。这些工具可在随书光盘中得到,也可从本书的Web站点下载(站点地址见后)。
这些年来,本书变得越来越厚。由于学科本身的发展和对它的更深入了解,这也是不可避免的。因此,使用本书作为教材时,可能就无法在一门课(一个学期)中讲完所有内容。一种可行的讲授方法是,至少包含第1、2和3章的全部内容,第4章的前4节,以及第5章。其余的时间教师可根据兴趣介绍第4章剩余部分和第6、7和8章的部分内容。
下面逐章介绍一下对第4版的主要改动。第1章依然是对计算机体系结构发展的历史回顾,指出所走过的历程和发展道路上的主要里程碑。介绍了更广泛的计算机系列和本书所用的三种机型(Pentium 4、UltraSPARC III和8051)。
第2章中,修改了关于输入/输出设备的内容,重点强调了现代的外部设备技术,包括数码相机、DSL和通过有线电缆接人因特网。
第3章做了一些改动,本版论述了计算机总线和现代的I/O芯片。对用作示例的三种新机型在芯片级做了介绍。增添了有关PCI Express总线的新内容,预期PCI Express总线将很快取代PCI总线。..
第4章讲解计算机是如何运行的,一直颇受好评,因此与上一版相比没做大的改变。当然,新增了讨论Pentium 4、UltraSPARC III和8051的微体系结构层的内容。
第5、6和7章仅根据新实例做了改写,其他基本没有改动。第6章用Windows XP取代Windows NT作为例子,但从本书所讨论的层次看,区别并不大。
相反,第8章做了重大的修改,以反映在并行计算机领域各方面的新的研究动向,其中覆盖了5类不同的并行系统,从片上并行(指令级并行、片上多线程和单片多处理器)到协处理器组、共享内存系统和集群,最后,还简单论述了网格技术。本章采用了许多新的例子,如TriMedia CPU、BlueGene/L、RedStorm和Google集群。
第9章的参考文献也做了很大改动。计算机组成是一个迅速发展的领域,本版中超过半数的参考文献是第4版出版后出现的新文献。
附录A和附录B没有修改,但增加了一个全新的附录C,内容是汇编语言程序设计。它可作为使用随书光盘或本书网站提供的工具进行汇编语言程序设计的指导于册,由阿姆斯特丹自由大学的EVen Wattel博士编写。Wattel博士有多年使用这些工具教学的经验。十分感谢他编写了这个附录。
除汇编语言的工具之外,本书网站还包含一个配合第4章使用的图形模拟器。它是由Oberlin学院的Richard Salter教授编制的,可用于帮助学生掌握第4章讨论的基本原理。十分感谢Richard Salter教授提供该软件。
另外,本书所用到的插图和供教师使用的PowerPoint幻灯片也可从网站得到,网址是http://www.prenhall.com/tanenbaum。从网页上点击本书的链接,并从菜单项中选择你所找的页面即可。
各大学使用本书作为教材的教师可通过联系Pearson公司业务代表获得习题解答。
许多人读过本书的全部或部分手稿,提出了有益的建议,或以其他方式提供了帮助。我要特别感谢Nikitas Alexandridis、Shekar Borkar、Herbert Bos、Scott Cannon、Doug Carmean、Alan Charlesworth、Eric Cota-Robles、Michael Fetterman、Quinn Jacobson、Thilo Kielmann、Iffat Kazi、Saul Levy、Ahmed Louri、Abhijit Pandya、Krist Petersen、Mark Russinovich、Ronald Schroeder和Saim Ural,感谢他们的帮助。
我还要感谢Jim Goodman对本书(尤其是第4章和第5章)的卓越贡献。使用Java虚拟机的主意是他提出的,使本书增色不少。
最后,我要再次感谢Suzanne的爱和耐心,她一直陪伴我完成了15本著作的写作。Barbara和Marvin总是开心果,他们现在也知道了教授是如何谋生的。荷兰皇家艺术和科学院2004年授予我盼望多年的院士称号,将我从某些意义不大的学术活动(如没完没了的乏味的委员会会议)中解脱出来,我要永远感谢他们。...
Andrew S.Tanenbaum
.