计算机系统结构(原书第2版)
作者 : Rob Williams
译者 : 赵学良 等
丛书名 : 计算机科学丛书
出版日期 : 2007-10-31
ISBN : 7-111-22356-6
定价 : 49.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 397
开本 : 16开
原书名 : Computer Systems Architecture: A Networking Approach, Second Edition
原出版社: PB
属性分类: 教材
包含CD :
绝版 :
图书简介

“计算机系统结构”是计算科学与工程及相关专业大学第一学年的基础性课程,历时两个学期,内容依次涉及数字逻辑电路、硬件外设、软件层、网络通信和操作系统。
  本书紧密联系实际,注重动手实践,利用学生感兴趣和亲身体验过的技术来提高学习的积极性。同时强调了现代计算机与网络环境中其他设备的协作依赖关系,增加了对ARM和安腾(Itanium)处理器的介绍,以及数据通信延伸领域的最新内容。

本书特点
  ●使用实际的处理器(奔腾处理器),学生在家中使用自己的机器就能够完成绝大部分的练习作业。
  ●内容组织合理,深入浅出。材料取自于作者自己从事教学和实验工作的真实需求。
  ●介绍数据传输和通信相关的思想和概念,为联网和网络通信相关的课程打下基础。
  ●每章结束后的练习均经过精心挑选,本书的练习答案请登录机工新阅读网站www.cmpreading.com下载。
  ●书中用到许多现代的、商业化的实例,能够有效地激发读者学习的兴趣,并将理论与实际结合起来。

图书特色

图书前言

为变动如此之快的学科(如计算科学)编写教科书,是一份十分具有挑战性的体验。对于本书的第2版,一种极大的诱惑是,简单地创建一个执行查找替换任务的宏,由它根据情况插入或删除额外的零,以完成所有数值型参数的更新!尽管根本性的技术和原理没有太大的变化,但对当前处理器的速度及内存的大小有个清晰的认识,还是相当重要的。了解宽带连接能够提供的下载速度也比较有用。当我们对事物做出估计时,能够立即说出结果,并从常识的角度看看是否合理或者是否可行,是一种很有价值的技能。所有的科学家和工程师都在练习这项能力,程序员也不例外。我还清晰地记得,有一次我估计文件传输需要花费6个小时的时间,并因此失掉了一份商业合约。直到后来,我才意识到我忘记将这个数字除以10,因为我误将字节/秒当做位/秒。
  在新版中,我专门为Intel 64位安腾处理器辟出一章,提供了更多的篇幅对它进行更详细的介绍,这是因为安腾处理器代表了后RISC时代的新型重要架构。引入术语RISC和后RISC,是为了更清楚地区分最初的简单但快速的处理器和最近更为复杂的继任者。本书采用ARM CPU作为微控制器的代表性架构,使用Intel StrongARM/XScale作为实际的例子。为了反映USB与程序员和计算机用户日益紧密的关系,本书对USB通信做了更多、更详细的说明。调制解调器技术已经做了更新,将56 k拨号设备和ADSL宽带设备包括了进来。便携式设备的广泛流行依赖于音频和视频压缩技术的飞速发展,本书专门为此增加一节内容,介绍了MPEG算法。介绍万维网和搜索引擎的部分已经过重新修订和更新,以Google为例进行讲述。
本书新增一章介绍并行技术、集群技术和网格计算,其中介绍了新型的IBM Cell处理器,这种处理器会催生游戏机产业的新生,或许最终会引发桌面计算的革命。
在准备新版的过程中,我有机会改正前一版中所犯的一些错误,但也有可能会引入一些新的错误。书中出现这些错误也有好的一面,就是我能够收到来自于全世界的电子邮件,指出书中的问题。再次感谢那些和我联系并指出书中错误的人。
  在此,我还要感谢对本书做出主要贡献的两位编辑,第1版的编辑Keith Mansfield和第2版的编辑Simon Plumtree。没有他们的鼓励和努力,这些文字现在可能依旧以troff/pic文件的形式保存在我的硬盘上。
  rob.williams@uwe.ac.uk

  第1版前言
  本书的由来
  本书是根据第一学年的学位课程—计算机系统结构(Computer Systems Architecture,uqc104s1)而编写的,我在英国布里斯托尔的西英格兰大学(University of the West of England,UWE)讲授这门课程多年。这门课程历经扩展、压缩和再次扩展,所以它已经历过好几次彻底的整顿与重组。我们培养的许多毕业生都投入到不断发展壮大的电信产业中,人们对这一领域的兴趣日益高涨。因此,这门课程以及这本书反映出了这种倾向性,人们期望这门课程不仅适用于计算机科学,同时还要适应数据通信和联网的需要。
  学生
  十年前,当学生开始学习第一学年的课程时,他们在计算学科方面的资质和经历都十分有限;如今,超过半数的新生早已成功地完成计算领域的两学年课程(A等或BTEC)。他们可能注册参加了计算机科学(Computer Science)、软件工程(Software Engineering)或实时系统计算(Computing for Real-Time Systems)方面的学士学位课程。尤其是最后一项,吸引了那些对新的领域和事物(比如联网、Unix、嵌入式系统或实时程序设计)十分敏锐的技术狂热者。考虑到这些要求更高的听众,我尝试在课程中注入新的思想,并紧跟最新的技术动向。如果他们认为这门课程“太容易”或者“过时”,那么他们就会变得不耐烦并撤消该课程。本书尝试利用他们已有的经验,在此基础上进行教学。
  另一项常常为学生所提及的顾虑,是关于课程中数学的位置。本课程不需要任何高级的数学知识,只是偶尔会用到简单的代数和算术知识。常识是最重要的资源!同样,我们也不会涉及到焊接。这并不是电子技术课程。
  技术的进步
  跟上技术前进的步伐,是所有计算机课程和书籍所面临的一个问题。所以,尽管奔腾处理器十分复杂,我还是选择基于奔腾处理器来编写本书,以应对这种挑战。那些看似能够在市场上保持领先地位好几年的系统,现在可能在发布后数月内被取代。许多软件工具,在大学等研究机构有机会获得拷贝之前,已经被从事商业开发的程序员研究并采用了很长时间。因此,计算领域内的课程需要被不断地评估审查,以在更广泛的范围内保持其时效性。我的学生们可能会回家去使用他们自己的计算机系统,因为他们自己的计算机系统比大学实验室中的系统要先进得多,这并不奇怪。但是,使我忧虑的是,计算领域变得越来越赶时髦,这有可能会导致在课堂上讨论过的思想和例子被认为是过时的东西,尽管它们在学术上和理论上完全正确。基于这种考虑,我希望在本书中引入了足够多的、新的、现代的材料,从而能够保持对学生的吸引力。
  本书的使用
  我们的学习方法虽然各不相同,但有效使用文字的能力,很久以来一直是现代文明的核心。我们都从记录在纸张上的别人的经验中受益很多。忽略这个巨大的资源等同于自残手足。万维网(World Wide Web,WWW)的引入对每个人的读写能力提出了更高的要求。大多数网页依旧严重依赖于文字来表达有效的信息。尽管一幅图可能胜过千言万语,但最初的认知常常来自于伴随的文字信息。
  在每一章的开头,都用一幅图来表达该章的内容,模仿我们熟悉的Windows Explorer文件浏览器。通过它,我们可以清晰地了解每一章在学科中的上下文(前后关系)。它不是一份内容清单,相反,它更像是一个表意符号。每一章后面都给出一系列问题,答案在本书最后提供。读者并非一定要认认真真地自己解答每个问题,然后再去看答案!在本书结尾处,还提供一份完整的术语表,提供它的意图是帮助读者应对大量的术语。我们都对这种情况感到遗憾,然而,这是成为全面的计算机专业技术人员所必须面对和克服的困难之一,不能简单地加以忽略。
  操作系统和编程语言
  在讲授一门课程或在计算机上撰写文字时,选择使用哪种语言或操作系统,可能会是一件具有较强感情色彩的事情。传统上,大学课程一直尽量避免与商业相关的问题,坚持使用被学术界广泛接受的事物。我曾经试图在履行一份商业合同时使用Pascal,接下来遇到了各种各样完全能够预料的问题,但是,这些问题我们从未真正和我们的学生论及过,这的确让人备感挫折。有过这种经历以后,我就一直力图在我的教学中使用在商业上可行的工具。全世界到处都可以见到的两种操作系统是Unix和Windows NT(包括Windows 2000)。我希望读者最好能够接触到所有的系统,以便于更好地完成实习作业。Linux是Unix的绝佳例子,尽管我在这本教材中使用Sun Microsystem的Solaris进行讲解。对于语言,我假定读者在学习计算机系统课程的同时,正在学习一门编程语言,因而能够很快具备C语言的基本技能,能够理解我给出的代码片段。但我并不期望每个人都是C++专家。
  为了帮助读者测试书中给出的例子,并试着解决每章末尾给出的问题,本书包括了Microsoft Developer Studio Visual C++的学生版本。附录给出一些指导性的注解,以帮助读者安装软件包并快速地学会如何使用它。尽管我们只用它来编写一些十分基本的程序示例,但是如果读者有足够的精力,也可以继续学习C++、面向对象编程,以及使用MFC(Microsoft Foundation Classes,微软基本类库)等。同时,为了支持读者的学习,本书还提供了源代码的示例,以及一个十分有效的在线学习系统。
  面向实践的课程定位
  读者正在学习的课程与我们的课程可能会在许多方面存在不同。我规划了24周的课程,拆分成两个学期。这样,每一章服务于一周的课程。课程的次序以及课程的扩展,由每周实验课中所进行的实习作业而定。我相信,基本上是实习作业充分地巩固了对技术的理解。我永远不会相信未经实际工作检验的软件设计!减少实验课,或者将它们与授课过程中进行的理论性论述隔离开来,都会弱化我们理解和吸收新观点的能力。我们都有各自不同的学习方式,有些人喜欢听,有些人喜欢读,等等。就个人而言,我一直觉得实践活动能够使人对新概念的理解更牢固和持久。
“听过会忘记,看过才会牢记,参与过才能理解个中含义。”
  致指导老师
  学生读者
  在写这本书时,我所考虑的典型读者是计算科学(computing)或相关领域第一学年的学生。他们至少会参加某些您每周讲授的课程,完成练习题,阅读教材并与他们的朋友讨论作业。他们还会经常访问因特网,可能在家中,也可能是在学校。但是,依据我的经验,要想通过这门学位课程,仅仅依靠上述活动中的某一项是不够的。另外,您的学生也不会只学习计算机系统和联网,很可能他们还会同时参加程序设计、系统设计、数学方法以及电子学等课程。一门成功的课程应该帮助学生将这些经验都融汇贯通,并且鼓励不同学科间的相互对照。这正是本书能够帮助他们做到的事情,他们在本书中能够找到指向他们正在学习的其他领域的链接及路标。
  和许多其他课程一样,我们的学位课程,被集成到一个可以灵活组合的方案中,其中还为学生提供第二学年的一些选择。我发现,许多学生在第一学年中需要这些可选课程的简要介绍,以便做出正确的决定。尤其是系统管理、操作系统和联网,可能是学生完全陌生的领域。本书的目的就是在给予学生计算系统实践和原理方面基础知识的同时,也起到“基层性课程”的作用。
  实习作业单
  我在本书的配套网站(www.pearsoned.co.uk./williams)上,提供我授课时使用的每周作业单样本。它们注重于在刚讲授的课程中所涉及的理论性知识的各个方面。作业单常常也是后续课外作业的引导。如您所见,我们依旧将学生的实验室作业与他们的课堂知识紧密地结合起来,尽管这对于组合式课程常常是难以做到的。
  评估考核
  由于本课程的实践面向性,我设置了两套经过评估的程序设计作业。现在,为第一学期准备的是一份汇编程序的练习,使用Visual C Developer Studio。它的内容涉及使用PC的COM端口进行串行通信。第二个作业是一组练习,构建在第一个作业的基础之上。它要求编制软件来支持面向分组的环形网络,同样使用PC的COM端口。第二个程序设计作业完全使用C语言,涉及到协议协商和协同工作。这份作业的目的是为第二学年与联网相关的课程以及最后学年的分布式系统方面的课程打基础。作为课程评测的一部分,我要求学生演示他们的代码,并回答一系列与结构和功能相关的问题。虽然这样做需要许多时间,但就我的经验而言,这是一项值得做的投资。
  相对于仅在期末进行一次考试,我更倾向于设置几个课堂测试。因为这样做能够定期给学生有用的反馈信息,同时允许教师及时给予纠正。每一章后面列出的问题,能够帮助学生为测试进行准备,同时在本书最后对答案进行了汇总。测试的样本可以从出版商的网站得到,相关的内容受到保护。
  致谢
  感谢Phil Naylor提供第13章中管理脚本的例子,以及为我们的由Sun工作站组成的网络提供出色的维护。我还要真挚地感谢我的同事Bob Lang和Craig Duffy,他们耐心地阅读了本书的早期草稿,并给出了十分有用的意见。在此,我还要提及参加过实时系统计算学士学位课程的许多学生,不管是以前的学生还是现在的学生,他们的幽默感和决心常常使耗时很长的调试过程变得轻松愉快。对于任何教师来说,看到学生进步,看到他们在技术上更加自信,成功地毕业并开始有益的事业,就是最好的回报。
  随着本书的成长,我妻子由最初的怀疑态度也变为了温和的容许,接下来,随着文字铺满起居室的地板,她又变得惊慌和不相信。尽管她也对本书做了校对及编辑上的努力,但所有的错误都是我自己的,我希望您能够将您的意见和观点反馈给我(rob.williams@uwe.ac.uk)。
  我还得赞扬Brian Kernighan,因为他的pic语言真是太棒了,我使用它设计了文中所有的线路图。最初的正文是用emacs编辑的,格式编排工作都是使用Richard Stallman GNU程序组中的groff完成的。正是在本书的编写过程中,我体会到了使用pic编制图表的乐趣。
  Rob Williams
  西英格兰大学计算科学系,英国布里斯托尔
  2000年7月
  本书的出版商要向下面的学者表示感谢,他们为本书提供了极有价值的建议和鼓励:
  Hernk Corporaal
  荷兰Delft大学
  Peter Hood
  英国Huddersfield大学
  Prasant Mohaptra
  美国密歇根州大学
  Henk Neefs
  比利时Gent大学
  Andy Pimentel
  荷兰阿姆斯特丹大学
  Mike Scott
  爱尔兰都柏林城市大学
  Bernard Weinberg
  美国前密歇根州立大学
  出版商致谢
  我们要感谢下面的机构允许我们使用相关的受版权保护的资料:
图9-2由Intersil公司授权使用,Intersil Corporation版权所有;图12-3来自于Hatfield,D.J.和Gerald,J.(1971)“Program restructuring for virtual memory”IBM系统期刊,第10卷,No. 3,189页,国际商业机器公司(IBM)版权所有(1971),由IBM系统期刊授权复印;图15-14和15-15中Netscape Communicator浏览窗口由Netscape Communications公司版权所有(2005),使用得到许可。Netscape Communications公司并未批准、赞助、支持或赞成本书的出版,并且也不对本书的内容负责;图15-20和表15-6来自于The Anatomy of a Largescale Hypertextual Web Search Engine(Brin S. and Page L, 2000),获得Google的许可;图21-19得到英国IPAQ Repair and Parts,Ratby的许可;屏幕截图的出版获得微软公司的许可。
  在某些情况下,我们无法找到受版权保护的资料的所有者,如果有人能够给予我们任何相关的信息,帮助我们找到版权的所有者,我们将会十分感激。

封底文字

“计算机系统结构”是计算科学与工程及相关专业大学第一学年的基础性课程,历时两个学期,内容依次涉及数字逻辑电路、硬件外设、软件层、网络通信和操作系统。
  本书紧密联系实际,注重动手实践,利用学生感兴趣和亲身体验过的技术来提高学习的积极性。同时强调了现代计算机与网络环境中其他设备的协作依赖关系,增加了对ARM和安腾(Itanium)处理器的介绍,以及数据通信延伸领域的最新内容。

  本书特点
  ●使用实际的处理器(奔腾处理器),学生在家中使用自己的机器就能够完成绝大部分的练习作业。
  ●内容组织合理,深入浅出。材料取自于作者自己从事教学和实验工作的真实需求。
  ●介绍数据传输和通信相关的思想和概念,为联网和网络通信相关的课程打下基础。
  ●每章结束后的练习均经过精心挑选,本书的练习答案请登录机工新阅读网站(www.cmpreading.com)下载。
  ●书中用到许多现代的、商业化的实例,能够有效地激发读者学习的兴趣,并将理论与实际结合起来。

作者简介

Rob Williams:Rob Williams: 是位于英国布里斯托的西英格兰大学计算机系统技术学院院长。他在实时系统领域造诣颇深,同时还是GWE/GNE、Marconi Avionics和Nexoi Office System的微处理器系统工程师。

译者简介

赵学良 等:暂无简介

译者序

作为译者,大部分时间都是字斟句酌、小心翼翼、瞻前顾后、殚精竭虑,翻过书的最后一页后,才有机会舒口气,放松一下,考虑有什么东西需要告诉读者。编写序言是个很难得的机会,人蹲久了就要站起来伸伸手脚,翻译和做人莫不如此。
读书者,直奔主题者有之,细细品味者亦有之。想来,也会有读者与这篇序擦肩而过。过宝山而空回?我不敢说,别人也未必同意。凡译者序,皆会介绍原著,所不同者程度而已,或言过其实,或洋洋洒洒,或浅尝辄止,不一而足。
  我曾为自己的第一本译作写了很长的序言,之后,逐次递减,一度不再为译作写序。后来有读者在留言中提到说会仔细地阅读序言,我才再做冯妇,又写下这篇不短的序。生活就好像一个圆,转了一圈后你会发现又来到起点。抽刀断水,逝者如斯,时过境迁,感慨良多呀!
  科学的殿堂不存在拥有后就能睥睨天下、统制一切的魔戒,但却存在许多能够打开其大门的钥匙。本书无疑就是其中之一。钥匙当然可以分为很多类,但最根本的两类无疑是能够开锁的钥匙和不能够开锁的钥匙。我们需要学习书籍,但目的却不是书籍,而是书籍所讲述的知识领域。它就如同一扇窗、一幅地图、一本游记或是留有前人足迹的路,赋予读者一双能够透过迷雾看得更远的眼睛。
  我有幸翻译了本书的第1版和第2版,由于第1版并未出版,所以读者也不用去寻找第1版的中译本。计算机技术发展的速度如此之快,以至于第1版时使用的一些数据(比如处理器的主频、存储器的速度和容量)在今天看来都有些遥远;第1版中的一些预测和想象,今天都变成了现实,甚至走得更远。第2版中在这些方面做了大量的改动。第1版出版后的这段时间内,计算机和网络对于人们工作、生活和娱乐的影响更加深入,64位桌面计算成为现实,移动设备(手机、PDA、MP3等)大量走入人们的日常生活,因特网对于社会的影响无孔不入,……。本书的第2版针对技术的新发展和出现的新事物也做了相应的调整和改动。
  总体来看,本书具有以下三个特点:
  ·内容新且全面,深浅适当;
  ·注重实践,提倡学习与动手结合;
  ·给出大量Internet链接,方便进一步的学习。
  本书从第1版到第2版,仅仅几年内,就不得不做出大量的调整以适应最新的变化,可以预见,当读者将散发着墨香的本书捧在手中时,又会有许多新的事物涌现,计算机的发展可能又出现新的方向(比如多核等)。只有主动地适应这种变化才能跟上这个时代的步伐。
  “计算机系统结构”这门课程是高校计算机及相关专业的一门重要的专业基础课,旨在从计算机组织和结构的角度出发,让读者学习和领会计算机系统。本书是作者多年讲授这门课程的经验集成,已在英国西英格兰大学等多所高校使用多年。此时,将本书引进到国内,也会丰富计算机体系结构教材的市场,使高校任课教师选用教材时又多了一个好的选择。
  其实,越是基础性、入门性的课程,对学生的影响越深远,有很多人都有这样的体会:当离开学校十年以后再次聚首时,依旧觉得还是大学一年级时入门性课程对自己的影响最大,在以后的工作和学习中,这些基础知识会随读者接触不同的领域而浮现。“纸上学来终觉浅,绝知此事要躬行”,在学习过程中要充分利用书后的练习、实践作业和课外读物,尽最大可能地缩小学习和工作之间的落差。
  在这里,我要感谢机械工业出版社,以及所有让这本中译本出版成为可能的人。参与本书翻译和审校的人还有董健、靳友英、乔艳、乔颖等,也感谢他们为本书的出版做出的努力。
  本书涉及面广、内容丰富,术语量大,但由于译者水平有限,译文中不当之处在所难免,诚请读者批评指正并不吝赐教。
  赵学良
  2007年4月

图书目录

译者序
第2版前言
第1版前言
第一部分  计算机的基本功能及其构成
第1章 导论:软硬件接口 1
1.1 计算机系统及网络通信的重要性 1
1.2 硬件和软件的互相依赖 2
1.3 硬件编程:VHDL 3
1.4 人人都应了解的系统管理问题 4
1.5 语音、图像和数据:技术的趋同现象 5
1.6 窗口界面(WIMP) 5
1.7 因特网:连接所有的网络 7
1.8 使用PC:学习CSA的更多理由 9
1.9 小结 10
实习作业 10
练习 10
课外读物 11
第2章 冯·诺依曼体系结构的特征 13
2.1 以2为基:二进制的优点 13
2.2 程序控制存储:通用机器 13
2.3 指令代码:控制机器动作的
指令系统 14
2.4 转换:编译器和汇编器 15
2.5 链接:将程序组合到一起 16
2.6 解释器:执行高级命令 16
2.7 代码共享和重用:不要总是
从头做起 17
2.8 数据编码:数值和字符 18
2.9 操作系统:Unix和Windows 20
2.10 客户机服务器计算:网络时代
的方式 22
2.11 可重配置硬件:读取-执行的
另一种替代方式 23
2.12 小结 23
实习作业 23
练习 24
课外读物 24
附录:以11为基的计数 25
第3章 功能部件和读取-执行周期 26
3.1 各部分的命名:CPU、存储器、
IO单元 26
3.2 CPU的读取-执行周期:高速且单调 29
3.3 系统总线:同步或异步 31
3.4 系统时钟:指令周期时序 32
3.5 预取:前期工作以使速度得到提高 34
3.6 存储器长度:寻址宽度 35
3.7 字节次序:微软与Unix,
以及Intel与Motorola 36
3.8 简单的输入输出:并行端口 38
3.9 小结 38
实习作业 38
练习 39
课外读物 39
第4章 构成计算机的逻辑电路:
控制单元 40
4.1 电子积木和逻辑电路:模块化器件
的优点 40
4.2 基本逻辑门 40
4.3 真值表和多路复用器:简单但有效
的设计工具 42
4.4 可编程逻辑器件:可重新配置的
逻辑芯片 44
4.5 交通灯控制器:无法避免 46
4.6 根据真值表实现电路:一些实用提示 47
4.7 译码器逻辑:控制单元及存储器
的根本所在 48
4.8 CPU控制单元:“核心“ 49
4.9 洗衣机控制器:简单的CU 49
4.10 RISC与CISC译码:使计算机
的处理速度更快 52
4.11 小结 53
实习作业 53
练习 54
课外读物 54
第5章 构成计算机的逻辑电路:
算术逻辑单元 55
5.1 德·摩根等价定律:逻辑互换性 55
5.2 二进制加法:半加器、全加器、
并行加法器 55
5.3 二进制减法:2的补码的整数格式 57
5.4 二进制移位:桶形移位器 58
5.5 整数乘法:移位和相加 60
5.6 浮点数:从极大到极小 63
5.7 小结 65
实习作业 66
练习 66
课外读物 66
第6章 计算机的逻辑构成:存储器 67
6.1 数据存储 67
6.2 存储设备 68
6.3 静态存储器 69
6.4 动态存储器 70
6.5 DRAM刷新 71
6.6 分页访问存储器:EDO和SDRAM 71
6.7 存储器映射:寻址和译码 73
6.8 IO端口映射 75
6.9 小结 77
实习作业 77
练习 77
课外读物 78
第7章 Intel奔腾CPU 79
7.1 奔腾:高性能的微处理器 79
7.2 CPU寄存器:数据和地址变量的
临时存储区 82
7.3 指令集:基本奔腾指令集简介 85
7.4 指令的结构:CU如何理解指令 86
7.5 CPU状态寄存器:十分短期的存储
空间 87
7.6 寻址方式:构建有效地址 89
7.7 执行流水线:RISC加速技术 90
7.8 奔腾4:扩展 91
7.9 Microsoft Developer Studio:
调试器的使用 92
7.10 小结 94
实习作业 95
练习 95
课外读物 96
第8章 子例程 97
8.1 子例程的目的:节省空间和精力 97
8.2 返回地址:堆栈的引入 98
8.3 使用子例程:HLL程序设计 99
8.4 堆栈:大多数操作的基本要素 100
8.5 参数传递:将子例程具体化 100
8.6 堆栈框架:所有局部变量 102
8.7 对HLL的支持:CPU针对子例程
处理的特性 104
8.8 中断服务例程:由硬件调用的
子例程 104
8.9 访问操作系统例程:后期绑定 105
8.10 小结 106
实习作业 106
练习 106
课外读物 106
第9章 简单的输入输出 107
9.1 基本IO方法:轮询、中断和DMA 107
9.2 外设接口寄存器:程序员的角度 108
9.3 轮询:单字符IO 111
9.4 中断处理 114
9.5 关键数据的保护:如何与中断通信 119
9.6 缓冲IO:驱动中断设备的驱动程序 122
9.7 直接内存访问:自治的硬件 123
9.8 单字符IO:屏幕和键盘例程 124
9.9 小结 125
实习作业 126
练习 126
课外读物 126
第10章 串行通信 127
10.1 串行传输:数据、信号和时序 127
10.2 数据的格式:编码技术 127
10.3 时序同步:频率和相位 129
10.4 数据编码和错误控制:奇偶校验、
检验和、汉明码和CRC 131
10.5 流量控制:硬件和软件方法 137
10.6 16550 UART:RS232 138
10.7 串行鼠标:机械或光学 142
10.8 串行端口 144
10.9 USB:通用串行总线 144
10.10 调制解调器:载波调制 147
10.11 小结 151
实习作业 152
练习 152
课外读物 152
第11章 并行连接 153
11.1 并行接口 153
11.2 Centronics:大于打印端口但小于
总线 153
11.3 SCSI:小型计算机系统接口 155
11.4 IDE:智能驱动电路 158
11.5 AT/ISA:计算机标准的成功案例 158
11.6 PCI:外设部件的互连 160
11.7 即插即用:自动配置 162
11.8 PCMCIA:个人计算机存储卡国际
联盟 163
11.9 小结 164
实习作业 165
练习 165
课外读物 165
第12章 存储体系 166
12.1 系统的性能 166
12.2 访问局部化:利用重复 167
12.3 指令及数据的高速缓存:
匹配内存和CPU的速度 171
12.4 高速缓存映射 172
12.5 虚拟内存:分段和按需页面调度 174
12.6 地址公式化:时间、地点和数量 178
12.7 硬盘使用:参数、访问调度和
数据安排 179
12.8 性能提高:块、高速缓存、碎片
整理、调度、RAM磁盘 181
12.9 光盘:CD-DA、CD-ROM、
CD-RW和DVD 182
12.10 DVD:数字通用光盘 184
12.11 MPEG:视频和音频压缩 185
12.12 闪存:新型软盘 190
12.13 小结 190
实习作业 190
练习 191
课外读物 191
第二部分  网络通信及复杂性的增加
第13章 程序员的观点 193
13.1 不同的观点与不同的需求 193
13.2 应用程序用户及办公软件包 193
13.3 系统管理:软件安装和维护 195
13.4 HLL程序员:Java、C++和BASIC 198
13.5 系统编程:汇编和C 200
13.6 硬件工程师:硬件的设计和维护 202
13.7 分层虚拟机:体系结构简介 202
13.8 汇编器:简单的转换器 203
13.9 编译器:转换及其他诸多工作 204
13.10 小结 205
实习作业 205
练习 205
课外读物 206
第14章 局域网 207
14.1 用户之间的纽带:电子邮件、
打印机和数据库 207
14.2 PC网络接口:布线和接口卡 210
14.3 以太网:带冲突检测的载波
侦听、多路访问 213
14.4 局域网的寻址:逻辑和物理方案 215
14.5 主机名:另外一个转换层 217
14.6 分层和封装:TCP/IP软件堆栈 217
14.7 网络文件系统:跨网络共享文件 218
14.8 网络的互连:网关 219
14.9 socket编程:WinSock简介 220
14.10 小结 222
实习作业 223
练习 223
课外读物 224
第15章 广域网 225
15.1 Internet的起源 225
15.2 TCP/IP基本协议 226
15.3 TCP错误处理和流量控制 229
15.4 IP路由:数据包如何找到正确的路径 230
15.5 DNS:分布式域名数据库 234
15.6 万维网的起源 236
15.7 浏览Web:Netscape Navigator 236
15.8 HTTP 239
15.9 搜索引擎Google 241
15.10 操作系统互连:一种理想的方案 243
15.11 小结 245
实习作业 245
练习 245
课外读物 246
第16章 其他网络 247
16.1 PSTN:电话网络 247
16.2 Cellnet:移动通信提供商 251
16.3 ATM:异步传输模式 257
16.4 消息传递:无线寻呼和分组
无线网络 260
16.5 ISDN:全数字 261
16.6 DSL:数字用户线路 264
16.7 有线电视:数据传输设施 264
16.8 小结 266
实习作业 267
练习 267
课外读物 267
第17章 操作系统 269
17.1 历史渊源:基本功能的发展 269
17.2 Unix:操作系统的里程碑 271
17.3 概要结构:模块化 273
17.4 进程管理:初始化和调度 273
17.5 调度决策:时间片划分、抢先
和协作 277
17.6 任务通信:管道和重定向 278
17.7 排斥和同步:信号量和信号 279
17.8 内存分配:malloc()和free() 283
17.9 用户界面:GUI和外壳 284
17.10 输入输出管理:设备处理程序 285
17.11 小结 287
实习作业 287
练习 287
课外读物 288
第18章 Windows XP 289
18.1 Windows GUI:满足用户的需求 289
18.2 Win32:推荐的用户API 290
18.3 进程和线程:多任务 290
18.4 内存管理:虚拟内存的实现 291
18.5 Windows注册表:集中化的管理
数据库 291
18.6 NTFS:Windows NT文件系统 293
18.7 文件访问:ACL、权限和安全 293
18.8 共享软件组件:OLE、DDE和COM 295
18.9 Windows XP主机:Winframe终端
服务器 295
18.10 小结 296
实习作业 296
练习 296
课外读物 296
第19章 档案管理系统 298
19.1 数据存储:文件系统和数据库 298
19.2 PC文件分配表:FAT 303
19.3 Unix索引节点:不同的方式 305
19.4 Microsoft NTFS 308
19.5 RAID:更安全的磁盘子系统 309
19.6 文件安全:访问控制 311
19.7 CD可移植文件系统:多个区段
内容清单 312
19.8 小结 313
实习作业 313
练习 313
课外读物 314
第20章 图形输出 315
20.1 计算机和图形:捕获、存储、
处理和重现 315
20.2 PC图形接口卡:图形协处理器 320
20.3 激光打印机:机电一体化 323
20.4 Adobe PostScript:页面描述语言 325
20.5 WIMP:重塑计算机的形象 327
20.6 Win32:图形API及其他 328
20.7 X窗口系统:分布式处理 329
20.8 MMX技术:辅助图形计算 329
20.9 小结 330
实习作业 330
练习 331
课外读物 331
第21章 RISC处理器:ARM和SPARC 332
21.1 RISC的优点:更高的指令吞吐量 332
21.2 流水线技术:更多的并行操作 335
21.3 超标量方法:并行的并行 336
21.4 寄存器存储:更多的CPU寄存器 336
21.5 分支预测方法:流水线的维护 338
21.6 编译器支持:RISC的重要组成部分 339
21.7 ARM 32位CPU的起源 339
21.8 StrongARM处理器:32位微控制器 345
21.9 HP iPAQ:StrongARM PDA 347
21.10 Puppeteer:StrongARM SBC 348
21.11 Sun SPARC:RISC架构的标量
处理器 350
21.12 嵌入式系统:交叉开发技术 351
21.13 小结 352
实习作业 352
练习 352
课外读物 353
第22章 VLIW处理器:EPIC安腾 354
22.1 安腾64位处理器简介 354
22.2 安腾汇编语言:对CPU控制更多 359
22.3 运行时调试:gvd/gdb 363
22.4 未来的处理器设计 364
22.5 小结 364
实习作业 365
练习 365
课外读物 365
第23章 并行处理 366
23.1 并行处理基础 366
23.2 指令级并行:流水线化 368
23.3 超标量:多执行单元 368
23.4 未来的对称、共享内存并行处理 368
23.5 单芯片多处理器:IBM Cell 370
23.6 集群和网格:应用级并行 372
23.7 小结 373
实习作业 374
练习 374
课外读物 374
附录  Microsoft Visual Studio 8 Express版 375
术语表 383
参考文献 396
习题答案

教学资源推荐
作者: [美]玛里琳·沃尔夫(Marilyn Wolf) 著
作者: 袁春风 主编武港山 吴海军 余子濠 编著
作者: 陈仪香 陈彦辉 编著
参考读物推荐
作者: 陆平 赵培 左奇 等编著
作者: [丹麦]克劳斯·埃尔克(Klaus Elk) 著
作者: Douglas Schmidt,Michaes Stal,Hans Rohnert,Frank Buschmann