计算机组织与体系结构
-
单片机原理与应用技术张友德等编本书以东芝(TOSHIBA)的TLCS-87/C系列单片机为典型例子,全面阐述了新型单片机的工作原理和应用技术,包括系统结构、指令系统、常规的和特殊的输入/输出功能模块的原理和使用方法,单片机的汇编语言和C语言程序设计技术,以及单片机开发工具、开发环境使用和单片机应用系统的研制方法。书中还编人了系统的软件实验、软硬件综合实验,并提供了丰富的硬件和软件范例。本书可作为高等院校电子类专业的新型单片机和嵌入式系统基础的教材,也可作为电子科技人员的参考书。前言单片计算机又名嵌入式微控制器(Embeddedmicrocontrollerunit),自2世纪7年代诞生以来,发展十分迅速,单片机的结构和功能日趋完善。以单片机为内核的简易嵌入式系统技术——单片机应用技术,已成为计算机技术中一个独特的重要分支,单片机的应用已深入到国民经济的各个领域。面对智能化的电子时代,对于培养电子应用产品设计人员的大专院校电子类专业,已将“单片机”作为一门必修的基础课程。本书的编写目的之一是为这门课程提供一种新型的单片机应用技术和嵌入式系统基础的教材。由于单片机的品种很多,我们采取以点带面的手法,以东芝(TOSHIBA)8位新型单片机——TLCS—87/C系列中的TMP86C47/46、TMP86C7单片机为典型例子,阐明新型的单片机工作原理和应用技术。单片机课程是技术性和实践性很强的课程,本书的内容重点是单片机内部各个部件的应用方法、编程技术和上机实验训练。书中含有很多汇编语言和C语言的程序范例,供读者编程时参考。在嵌入式系统中一般都用高级语言编程,用C语言编写控制程序,实现对多种类型对象的实时控制是一种必须的嵌入式系统技术基础,重视单片机中的C语言程序设计技术介绍是本书的一个特点。本书共分为十一章。第1章为单片机的综合性介绍;第2章介绍了TLCS—87/C的系统结构和相关的应用技术;第3章详述了TLCS—87/C指令寻址方式,概括性地分类介绍了TLCS—87/C的指令系统;第4-7章阐述了TLCS—87/C最典型的I/O接口部件的结构、工作原理、应用和编程方法;第8、9章分别介绍了TLCS—87/C的汇编语言和C语言的程序设计方法和上机方法,并给出了许多实例;第1章主要介绍了TLCS—87/C单片机开发工具(STF87/C)的硬件和调试软件的使用方法;第11章为TLCS—87/C单片机的实验指导书,共编排3个软件实验,11个硬软件综合实验。每个实验均列出了实验目的、相关硬件线路、实验内容、实验程序框图,并给出汇编语言或C语言实验程序范例,要求学生上机验证给出的实验程序功能,编写并调试用另一种语言编写的程序,使其达到同样的功能。由于第4—7章是独立的功能模块论述,可以根据教学课时裁减,实验内容也可以视学生基础编排:只做部分实验;只验证给出的实验程序功能;只编写和调试一种语言的实验程序;编写和调试所有的实验程序;可以在实验台硬件基础上另外做一些单项实验(中断实验验……)。AD实本书的第1—7章和第1章由张友德编写,第8、9章由谢伟毅编写,第11章由张友德、季雪峰、邓长飞编写。陈章龙教授、涂时亮教授对本书作了仔细的审阅,并提出了许多宝贵的意见。在编写过程中得到东芝电子(上海)有限公司吕建铭先生、中芝软件(上海)有限公司黄钲华先生、沈涛先生的大力支持。在此一并向他们表示感谢!本书所采用的逻辑符号中,有一部分是国外流行的符号,国家标准中相应符号的对照请参阅附录D。由于编者水平有限,书中错误和不妥之处请读者批评指正这些符号与我国编者
-
微型计算机原理姚燕南[等]编本书以80386/80486为样板机,介绍微型计算机的数据类型,微处理器结构及微型计算机工作原理,半导体存储器与存储器管理技术,寻址方式、指令系统及汇编语言程序设计,中断、异常及输入输出接口技术。最后,对数学协同处理器、微机系统及其操作系统作了简介。本书的特点是注意了由浅入深、循序渐进,并从应用角度出发,软硬相结合地讲述了基本原理及使用方法,每章都有习题和思考题。本书系高等院校电子信息类控制专业的重点规划教材,也适用于相近专业,并可作为从事微机开发应用方面的技术人员的参考用书。
-
MCS-51系列单片机系统及其应用蔡美琴等著《MCS-51系列单片机系统及其应用(第2版)》自第一版出版以来,已过去了十几年。此次修订是在第一版的基础上增加近年来msc-51系列单片机新产品和新技术的介绍,如c语言在单片机中的应用、串行接口扩展、在线编程系统。主要内容包括:mcs-51单片机结构、指令系统、程序系统、程序设计、系统扩展技术、单片机应用系统设计(包括传感器通道接口扩展抗干扰的对策)、应用系统开发和调试方法(包括aedk51/96系统介绍)等。《MCS-51系列单片机系统及其应用(第2版)》是为高等院校计算机及相关专业本科生编写的教材,具有较强的系统性、先进性和实用性。内容由浅入深,配有习题,便于自学。本书还可供从事微机应用,尤其是从事测试、控制和智能仪器仪表等工作的工程技术人员阅读参考。
-
CMOS射频集成电路设计(美)李(Lee,T.H) 著,余志平 等译;余志平译本书全面深入地介绍了如何设计千兆赫兹(GHz)CMOS射频集成电路。本书首先回顾了集成电路元件的特性、MOS器件物理和晶体管模型,RLC并联、串联和其他形式的振荡网络,以及分布式系统的特点及其与集总参数电路的区别。然后详细讨论了现代高频宽带放大器的设计。接下来介绍了关键的射频功能块,包括低噪声放大器(LNA)、基准电压源、混频器、射频功率放大器、振荡器和频率综合器。最后探讨了发送接收器的总体结构并展望了射频电路未来发展的前景。书中包括许多非常有用的电路图和其他插图,除第1章和最后一章外,每章的后面都附有许多启发性的习题,是高年级本科生和研究生学习有关射频电子学方面课程的理想教科书,对于从事射频集成电路设计或相关领域的工程技术人员来说也是一本非常有益的参考书。
-
TMS320C5000系列DSP系统设计与开发实例汪春梅等编本书全面介绍TMS32C5DSP系统设计与开发。内容以TMS32C55xDSP为重点,首先介绍数字信号处理器的硬件结构、汇编指令、存储结构和寻址方式;结合片内集成外设的结构和功能,给出片内集成外设驱动程序开发方法及部分片内外设的调试方法;本书还介绍了DSP的集成开发环境CCS和DSP/BIOS的原理和使用;如何在DSP上实现嵌入式实时操作系统;最后结合DSP软、硬件的设计,给出了详细的设计方法和丰富的应用实例。本书旨在从应用的角度使读者掌握DSP的基本原理、系统设计和软硬件开发。本书内容丰富、新颖、实用性强,适合从事数字信号处理的科技人员和高校师生阅读。自2世纪8年代初DSP芯片出现以来,DSP技术已取得了突飞猛进的发展,DSP芯片在性能提高的同时,价格却不断下降。随着DSP芯片性价比的不断提高,DSP的应用领域也不断扩展,从军用、航天等高端产品到各种民用产品随处可见DSP的身影。DSP生产厂商在改进芯片功能的同时,也十分注意开发方法的改进,现在进行DSP的开发可借助各种集成开发工具和第三方提供的各种算法。DSP技术集成了数字信号处理技术和现代微电子技术的成果,作为新技术革命的重要基础在各个领域得到了广泛应用。无论是在计算机外设、通信、工业控制、航空航天、精密仪器,还是在家用电器中,DSP无处不在。在国外,DSP芯片已经得到了广泛的应用;在我国,DSP技术也正以极快的速度被应用到科技和国民经济的各个领域。因此,DSP技术已经成为科技人员必须掌握的一门重要的实用技术。现在主要DSP厂家包括得州仪器(TI)公司、美国模拟器件(AD)公司和摩托罗拉(Motorola)公司等。其中TI公司的DSP产品种类最多,应用最广。因此,了解和使用TI公司的DSP芯片进行系统设计和开发的方法是很重要的。DSP是一个复杂的系统,本书以TMS32C5系列为例,详细介绍DSP设计开发的整个过程,内容涵盖DSP软、硬件的各个开发环节。本书第1章介绍DSP技术的发展概况和应用领域;第2章在数字信号处理和DSP系统的基础上,重点阐述TMS32C55x处理器的硬件结构、汇编指令、存储结构、寻址方式;第3章着重介绍TMS32C55x系列片内集成外设的结构、功能,以及驱动程序的开发,并给出部分片内外设的测试过程;第4和第5章涉及DSP的集成开发环境CCS和DSP/BIOS的原理和使用;第6章则以mC/OS-Ⅱ嵌入式实时操作系统为例,介绍实时操作系统的基本概念、运行原理和向DSP移植嵌入式操作系统的方法;第7、8章详细介绍DSP软、硬件的设计方法,并列举应用实例。针对TMS32C5DSP系统设计与开发,在书中介绍大量实用DSP系统,能够满足DSP的应用和设计人员之需,书中所列出的大量的典型应用实例,可在实际开发中直接引用。本书由汪春梅策划,分为8章,其中第1、4、5章由任治刚编写,第6、7、8章由孙洪波编写,第2章由汪春梅编写,第3章由孙洪波和汪春梅共同编写,全书由汪春梅、孙洪波统稿,朱铭锆审校。在编写过程中,张崇明和孙晨玉做了大量工作。朱铭锆参与选题并提供了部分资料。电子工业出版社给予了极大的鼓励和支持。作者在此一并致谢。希望此书对读者有所裨益,也希望有助于DSP技术的推广。限于作者的水平,书中的错误在所难免,恳请读者不吝赐教!作者24年2月于上海
-
计算机系统结构——量化研究方法(美)John L.Hennessy,(美)David A.Patterson著;郑纬民等译为什么我们写这本书在本书的三个版本中,我们的目标一直是描述揭示未来科技发展方向的基本原理。我们关于计算机系统结构的热情没有消退,正如同我们从第一版开始就不断重复的那样:“这绝不是无聊的纸上谈兵式的计算机科学:这个学科闪耀着夺目的智慧火花,还需要平衡市场购买力和性能价格比,它可能导致巨大的失败,也可能带来伟大的成功。”在写第一版时,我们的主要目标是改变人们学习和认识计算机系统结构的方法。我们感到这个目标依然重要。这是一个日新月异的领域,我们必须研究实际的例子,评估实际的机器,而不是仅仅给出一堆毫无必要的定义和设计。我们在此热烈地欢迎那些从一开始就和我们在一起的人们,同时也热烈欢迎现在加入到我们中间的人们。自始至终我们都将用定量的方法对真实的机器进行分析。和前几个版本一样,我们努力编写这个新版本,使其既适用于专业的工程师和设计者,也适用于学习高等计算机系统结构和设计课程的人士。同样,这一版将致力于通过强调价格和性能的综合考虑以及良好的工程设计,来阐明计算机系统结构。我们相信这个领域在不断地成熟,正在成为精确量化长期建立的科学和工程理论的基础。在我们199年的第一版和1996年的第二版中描述的理论能够成功地应用于揭示现今计算机技术领域的状况,这使我们得到了莫大的满足。我们期望在未来的几十年中,读者能够应用这本书中的基本理论得到同样满意的结果。关于第三版本书的第三版本来应该是很容易写的:和前两个版本相同,我们的量化研究方法没有改变,我们的着眼点还是计算机设计中的基本原理。和第二版一样,书中的例子已经进行了更新。但这个领域中日新月异的进展和新出现的市场,以及和这些市场相关的方法,使得我们几乎重写了整本书。在第二版发行后的六年里,计算机系统结构的发展一直没有减缓过。当编写第二版的时候,我们就发现有许多的新概念需要介绍,还有一些材料应该有更基本的定位。我们的系列丛书从本书的第一版开始,接着是“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”(《计算机组织与设计:硬件/软件接口》),然后是本书和“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”的第二版,现在出的本书第三版,已经是我们系列丛书中的第五本了。一些过时的概念被移到了“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”这本书或者本书的附录中。这和我们的目标是一致的,即在最新的计算机技术环境中介绍概念。所以,本书第二版中只有少量有意义的部分被保留,而第一版中几乎所有内容都已经被替换了。可能最让我们吃惊的是,现在计算机系统结构领域已经被分成了彼此相关但又有不同的三个市场部分,每一部分都有自己独特的需求。在本书的第一版和第二版中介绍的性能价格比主题内容仍然能够很好地说明台式计算机部分。另外两个新的部分是嵌入式计算机和服务器,为了反映这些变化,这一版做了两点比较大的改动:第一点,我们拓展了标准化的成功这一方面的内容;第二点,我们加入了一个称为“其他视角:……”的新部分,用视频游戏、数码相机和可视电话等材料补充了各章的“综合:……”主题中的传统例子。和台式机相比,嵌入式计算机更加关注低能耗。通常情况下,它们只用来运行单个程序,采用电池供电,没有主动制冷机制,对能量的利用率要求非常严格。为了阐述嵌入式处理器方面的内容,我们增加了一些内容,例如采用EEMBC标准来评测系统的性能,还有多媒体处理器和DSP指令集的一些设计准则。附录中包含了关于最流行的嵌入式指令集结构的材料,本书中还包括了平衡性能和能耗的一些方法,介绍了两个强调低能耗的例子:Transmeta和低能耗MIPS处理器,还提到了嵌入式系统的一些例子,包括PlayStation-2视频游戏机、Sanyo数码相机以及Nokia移动电话。台式机强调性能,服务器则不同,它更强调系统的可靠性、可扩展性和吞吐量。通常情况下,这种系统包含多个处理器和多块磁盘。本书解释了可靠性的概念,给出了很难得的组件故障率的统计数据。除了评测处理器性能的SPEC2基准测试,我们还介绍了文件服务器的TPC数据库基准测试以及SPEC基准测试。本书中介绍的服务器处理器的例子包括Intel的IA-64处理器和Sun的UltraSPARCIII处理器,服务器系统的例子包括SunFire68,SunWildfire,EMCSymmetrix,EMCCelerra,Google集群计算机和IBM事务处理集群计算机。在第三版中,我们继续采用真实世界的例子来说明我们的思想。另外,“综合:……”部分的例子是1%新增的。这部分包括MIPS64指令集结构,IntelPentiumIII和Pentium4的流水线组织,IntelIA-64结构和微结构(microarchitecture),Alpha21264存储器层次结构,SunWildfire多处理器,EMCSymmetrix存储阵列,EMECelerra文件服务器和Google搜索引擎。“其他视角:……”部分介绍了真实世界中的嵌入式处理器和服务器,包括TrimediaTMS多媒体处理器,PowerPC多线程处理器,SonyPlaystation-2上动画引擎的存储器层次结构,SunFire68/UltraSPARCIII存储器层次结构,EmpowerTelMXP嵌入式多处理器,Sanyo数码相机和Nokia移动电话。根据读者的建议,我们改进了练习部分。所有的练习都经过了复查,减少了不明确的地方,去掉了不合适的题目,同时我们还加入了许多新的习题。应许多读者的要求,我们在附录B中给出了部分习题的答案。为了方便读者的阅读,我们加入了一些比较新的特性。例如,我们用流行的64位MIPS系统结构代替了假想的32位DLX系统结构,因为使用现有的软件显然比我们另外开发并维护自己的编译器更有意义。在附录中我们包含了数十种指令集结构的描述,还包括了它们的基本教程、流水线的简单介绍以及向量处理器和浮点运算算法。论题的选择和组织就如同从前一样,我们采用保守的方法进行论题的选择,由于在这个领域中有太多有意义的想法,超过了基本理论所能够覆盖的范围。我们没有去全面综述每种结构,而是把我们的论述集中在任何新机器中都可能涉及到的核心概念。关键标准是选择那些已经成功地经受了考验并得到了充分的应用,同时能够使用定量的术语进行讨论的观点。我们确定是否选择一个新论题时,所遇到的第一个困难就是由于某些论题已经发展得更为重要,原来只需要几页篇幅的描述,而现在几页根本不能说明问题。第二个困难是某些以前我们没有包括进来的论题已经成长为需要基于我们的定量标准和它们成功的市场表现进行讨论的主题了。为了讨论这些新的材料,我们减少了介绍性知识所占的比例,并且假定读者了解“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”这本书中的介绍性概念。考虑到对流水线不熟悉的读者,我们在附录A中包括了对流水线的基本介绍(如果读者想要更深入地了解流水线的基本知识,请参阅“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”一书)。我们的目的一直都是尽力提供从其他类似来源不能获得的材料,所以我们在可能的时候就会重点介绍一些高级内容。实际上有几个本书中全面介绍的系统,其他文献中是找不到相关描述的。内容概述第1章主要讲计算机设计的基本量化原理和性能的评测方法。这一章指出了技术的作用和影响计算机系统价格的因素。本章总结了台式机、服务器和嵌入式计算机市场中的性能评测和性价比评测,同时考虑了嵌入式处理器的能量利用率。第2章包括了指令集设计的基本原理和示例。本章除了给出基于SPEC2基准测试的指令集使用量化数据,还介绍了贯穿全书的MIPS64系统结构。这个版本中新加入了数字信号处理器的原理,包括其基本功能和评测方法。这一章还介绍了现代编译器的结构,讲述了它们如何影响传统计算机,DSP和多媒体扩展指令集的功能。同时给出了一个和多媒体处理器对照的例子:TrimediaTM52,这个处理器的指令集混合了多媒体指令和MIPS指令。附录C到G扩展了这一章的内容,加入了十几种流行的指令集。第3章和第4章主要介绍高性能处理器中的指令级并行技术,包括超标量技术、分支预测、猜测执行、动态调度以及相关的编译器技术。这些技术发展非常迅速,尽管我们用了57页的附录(附录A,以第二版第3章为基础),我们仍然需要用两章的篇幅来介绍一些相对高级的内容。这一版的第3章主要描述基于硬件的指令级并行技术,而第4章把重点放在了与之相关的编译技术上。第3章用IntelPentium系列处理器作为主要示例,而第4章的示例采用IntelIA-64架构的第一个实现版本:Itanium。第5章首先介绍了cache的基本原理,然后讨论了现在比较有挑战性的问题:存储器层次结构优化设计。除了传统的例子,例如Alpha21264,AMDAthlon,IntelPentiumIII和Pentium4以外,这一章还介绍了SonyPlaystation-2视频游戏机上的动画引擎和使用UltraSPARCIII处理器的SunFire68服务器的存储器层次结构。书中描述了应用带宽优化技术的DRAM芯片,例如RAMBUS,并分析了它们的性价比。另外,这一章还包括了台式机cache的SPEC2基准测试性能数据,以及cache在多媒体和服务器应用程序中的性能。第6章讨论了多处理器系统,重点放在共享内存的系统结构上。这一章开头讨论了在线程级并行层次上不同应用领域的特性,然后讨论了对称和分布式内存结构的基本组织原理和性能。这一章的基本论题是同步、内存一致性模型和多线程(包括并发多线程)。另外,本章还讨论并分析了采用分布式内存结构扩展对称式结构的SunWildfire设计。第7章讲述存储系统,本章进行了极为可观的修订,增加了可靠性和实用性方面的内容、RAID的基本介绍、可用性基准测试和难得的实际系统故障统计数据。这一章提供了队列理论的介绍和I/O性能的基准测试数据。除了对传统总线的介绍外,还介绍了嵌入式总线和服务器总线。这一章后面部分描述的5个设计实例,通过越来越实际的性能要求对一个I/O系统不断进行改进,同时进行了平均故障时间的评估。EMC提供了把这些都综合在一起的实例,这是这些系统相关文档的首次公布。本章对数码相机的剖析使得读者能够从嵌入式的视角对存储系统进行理解和研究,同时从历史的角度给出了最真切的RAID系统发展和普及的历程。第8章的目标是从计算机系统结构的角度介绍网络。由于该领域发展十分迅速,因此重点介绍概念和基本原理。本章开头提供了一个通用的框架,给出了在各种情况下网络设计的基本思想,包括局域网、存储区域网络和广域网,并对因特网技术进行了总结。本章的后半部分深入探讨了集群技术及其在科学计算和数据库程序方面的应用,还详细讨论了集群系统的性价比,包括了机房和网络带宽的价格。最后通过对Google搜索引擎使用的集群系统的讨论,总结了这一章的内容。本书的附录编号从A到I。附录A是流水线基本概念的指南,对流水线不熟悉的读者应该在读第3章、第4章之前先阅读附录A,了解一下流水线的基本知识。附录B是部分练习题的解答。附录C更新了第二版中RISC附录的内容,加入了64位Alpha,MIPS,PowerPC和SPARC及其多媒体扩展指令的描述,同时该附录中还包括了流行的嵌入式指令集,例如ARM,Thumb,SuperH,MIPS16和MitsubishiM32R。附录D介绍了8x86系统结构。附录E和附录F分别对应两种在系统结构发展历史上有一定意义的结构,它们是VAX(附录E)和IBM36/37(附录F)。附录G包含了更新过的一些向量处理器的知识。附录H描述计算机算法,附录I则介绍了一致性协议的实现。限于篇幅,本书纸介版本附录C到I只给出其标题,具体内容请到www.mkp.com/CA3浏览或下载。总体上说,这个版本有7%的内容是新的。如果不包含联机的附录,那么第三版比第一版长1%,如果包含网上的在线附录,那么第三版比第一版长3%。内容导读对于本书其实并没有一个最好的阅读顺序。我们编写这本书的时候,就已经考虑到要保证读者能够按照多种顺序来阅读这本书。本书中有一些章节需要按照一定先后顺序阅读::第2章、第3章、第4章和第7章、第8章这几章。读者应该从第1章开始阅读,在阅读第6章之前先阅读第5章。如果需要了解附录C、附录D、附录E、附录F和附录H的内容,应该在第2章之前阅读。如果读者准备阅读附录A,那么应该在第3章、第4章之前进行。附录G的内容和第3章、第4章的内容形成了很有趣的对照:建议穿插阅读。虽然有很多阅读的方法,但我们还是建议读者采用如下两种主要的阅读方法:1.由内到外(Insideout)。这种方法的指导思想是:处理器设计是计算机系统结构的基础,与处理器无关的章节只有在时间充足的情况下才去阅读。先从第1章开始,然后是处理器的内部结构(第2章、第3章和第4章)、存储器层次结构(第5章),接着是多处理器(第6章)和存储系统(第7章),最后是网络和集群(第8章)。2.由外到内(Outsidein)。这种方法的指导思想是:当今计算机系统结构中有挑战性的问题都在处理器之外,处理器内部的知识只有在时间充足的情况下才去阅读。先从第1章开始,然后是存储器层次结构(第5章)、多处理器(第6章)、存储系统(第7章)、网络和集群系统(第8章),最后用指令集和流水线来进行总结(第2章、第3章和第4章)。章节结构和习题每个章节中,所有的内容都按照相同的模式组织。在每一章的开始我们引入该章的主要论题。然后是相关问题部分,主要讲述这章中所涉及的思想是如何和其他章节中的思想相互影响相互作用的。接着是“综合:……”部分,描述了如何将这些思想应用于实际的机器,并且由此来组织这些思想。接下来是“其他视角:……”部分,这是第三版的新特性,通过实际的嵌入式或者服务器系统的例子使读者对本章的内容有新的认识。下一个部分是谬误和易犯的错误部分,主要目的是使读者能够从其他人的错误中得到教训。我们指出了通常存在的误解和非常难以避免的结构上的陷阱,力图使读者对这些拦路虎保持警惕。每一章的最后是结论、历史回顾和参考文献几部分,对这些章节中所提到的思想给出评价并对这些发明创造的历史背景进行介绍。我觉得这就像是一部计算机设计的戏剧一样。参考文献是为了方便学习系统结构的学生进行查找。如果读者有时间,我们推荐阅读一些本书提到的领域中的经典论文。从原创作者那里直接体验这些思想是非常有乐趣和教育意义的。谬误和易犯的错误以及历史回顾是前两个版本中最受欢迎的部分。本书每章后面都有习题,总共有超过2道习题。每个习题号后面的括号中都会指出回答该问题所需要阅读的主要相关章节。我们希望这能够帮助读者避免做那些还没有阅读相应章节的练习,同时这也提供了评判结果合理与否的参考内容。注意对于标有量号(★)的题目,我们在附录B中给出了解答。我们还将习题分类,估计了各个问题可能需要花费的时间:[1]5分钟以内(阅读和理解)[2]15到2分钟内写出完整解答[25]1个小时内写出完整解答[3]短程序设计:少于一整天的编程[4]大程序设计:2周的时间[5]学期设计(一个小团队2到4周的时间)[讨论]和其他对计算机系统结构感兴趣的人进行讨论的题目补充MorganKaufmann出版社还可以向使用该书的正式教员提供一本教师手册(“Instructor誷Manual”),该手册给出了本书所有练习题的全面解答。众多的附录材料可以从MorganKaufmann的主页上得到(www.mkp.com)。由于我们使用的是标准的指令集,所以我们已经不需要提供专用的软件。主页中包含了MIPS结构的相关内容,例如模拟器、编译器和汇编器等。这个主页还包括了勘误表、书中插图的eps版本,以及读者可能感兴趣的相关材料的链接。为了感谢读者的一贯支持,出版社将经常性地加入新的内容,并且补充到相关站点的链接中。帮助改进这本书阅读这本书还有可能挣钱。谈谈性能价格比吧!如果你读了后面的致谢,你就会看到在修正错误上,我们有很长的路要走。因为一本书会多次印刷,我们有机会进行更多的校订。如果你发现了任何错误①,请通过电子邮件(ca3bugs@mkp.com)和出版社联系。第一位报告某个错误,并且该错误被我们在下一次印刷中纠正的读者将获得1美元的奖金。请查阅http://www.mkp.com主页的勘误表,看看所发现的错误是否已经有人报告了。我们将处理错误报告,并在一年左右发送核实结果,请耐心等待。我们也非常欢迎对于本书内容的建议,希望读者能把宝贵的建议发送到另一个电子邮件地址ca3comments@mkp.com②。结束语本书又是一次真正合作的结晶,我们每人写了一半的章节和一半的附录。我们无法想像,如果没有另外一个人的工作,我们需要多长的时间才能完成这本书。我们在看上去没有希望的时候相互鼓励,共同深入地说明比较困难的概念,在周末时为长达1页的书稿进行检查,以及在沉重的责任和压力使得我们难以拿起笔的时候互相宽慰。因此,我们将再次共同承担读者在阅读后的各种批评。美国斯坦福大学计算机系Hennessy教授和加州大学伯克利分校计算机系Patterson教授是现今计算机设计领域非常受人尊敬的学者和开拓者。JohnHennessy精通软硬件两个方面,是具有传奇色彩的MIPS编译器和几代MIPS硬件产品技术上的领导者。DavidPatterson是RISC的最初提倡者之一。他首创了RISC一词,定义了RISC的含义,是Sun公司SPARC处理器的主要顾问。他提出了RAID(独立/廉价磁盘冗余阵列)的概念,推动了为海量数据服务器提供磁盘存储解决方案的工业革命,并且还提出了NOW(工作站网络)的概念。该书是他们对计算机组织、系统结构研究和实践的全面而系统的总结。目前,世界上很多大学的计算机系统结构课程采用这本教材。国内也有大学采用这本教材的英文版。与同类著作相比,这本书具有结构清晰完整、系统性强、内容新颖、行文深入浅出和可读性强的特点。特别值得强调的是,这本书讲授计算机组织和系统结构的量化研究方法能够使读者深入、扎实地掌握基本概念和理论,同时培养一种科学、规范而且有效的学习和科研方法乃至思想。这也是本书能在世界范围内备受推崇以及我们把它翻译成中文并极力在国内推广的主要原因。这是一本能使读者在较短时间内全面了解、熟悉和掌握当代计算机系统结构发展主流技术和最新成就的优秀教材和专业参考书。其中译本的问世必将为我国计算机科学技术教育和研究工作带来新的思路和灵感。感谢电子工业出版社对出版中译本(第三版)的支持,感谢清华大学计算机系许多同学在翻译和校对过程中所付出的辛勤努力。由于时间仓促、译者水平有限,文中定有不当或欠妥之处,还望读者批评指正。本书系统而全面地介绍了计算机系统的设计基础、指令集系统结构、流水线和指令级并行技术、层次化存储系统与存储设备、互连网络以及多处理器系统等重要内容。对计算机系统结构的论述主要以较流行的64位MIPS结构为基础,通过量化分析的方法进行。本书内容丰富全面,既介绍了当今计算机系统结构的最新研究成果,也引述了大量有影响的计算机系统设计开发方面的实践经验。全书编排层次合理,叙述由浅入深。各章结尾还附有大量的习题和参考文献。本书既可以作为高等院校计算机专业高年级学生和研究生学习“计算机系统结构”、“计算机原理”等课程的教科书或参考书,也可供与计算机相关的专业人士学习参考。BillJoy,Sun微系统公司的首席科学家兼首席执行官。非常幸运,二十多年前我能在加州大学伯克利分校的DavidPatterson教授指导下学习计算机系统结构。我非常欣赏他的课程,那时正是RISC架构发展的初期。在离开伯克利后帮助创建Sun微系统公司的过程中,我有很多想法来自于他的课程教学,以及这本非常重要的书。今天,一个好消息是,这本书的内容覆盖了许多当代非常重要的知识。未来的好消息是,仍然有无数激动人心的、富有挑战性的工作等着我们去完成。而本书无疑是一个很好的开始。我参加过的最成功的项目都是由简单的想法开始,并采用从经验中总结来的简单数学模型来完成的。计算机技术正在迅速地发展,各种新的应用不断出现,这促使我们需要新的简单模型来理解未来可能出现的新事物,理解新的应用如何在各种不同的方面影响我们的系统。第1章介绍的定量方法是理解这些问题的重要工具。我们尤其希望在不远的将来,各种或大或小的系统都会更加强调用最小的能耗达到应用的要求。这方面还有许多工作需要去做。在我的职业生涯中,我接触过许多不同的指令集。我开始编程的时候用的是PDP-8计算机,它的指令集非常简单,我的一个朋友甚至通过打孔纸带的数据就能理解程序。我用PDP-11的汇编器写了许多程序,包括一个VAX上的Pascal语言解释程序(本书第一版中的一个例子)。VAX的成功使得UNIX系统在早期的互联网中得到了广泛的传播。PDP-11和VAX是非常传统的复杂指令集(CISC)结构,其相对简洁的指令集使得它几乎无法使用流水线。在多年的公开访谈中,我都把VAX11/78的性能作为基准,它的速度广为人知,因为在很长一段时间内,该系统结构的快速实现一直没有出现。微处理器的x86以及68x等复杂指令集出现后,VAX的性能就显得很落伍了。微处理器的价格优势使得它们渐渐取得了统治地位。这个时候,精简指令集系统结构(RISC)出现了。这种结构最早由IBM的JohnCocke提出,Patterson和Hennessy为它正式命名并大力提倡,并由POWERPC,MIPS和SPARC等微处理器实现。这些实现证明采用简单的寄存器指令集能够获得高性能的流水线。一般来说,采用RISC的程序代码比较长,由此需要更高的取指令(fetch)带宽,第1章中的技术和CarverMead的经典论断所揭示的未来CMOS技术的发展趋势告诉我们,这点代价是值得的。对当前所存在问题的思考和对未来计算的展望,使得我们更倾向于RISC系统结构,这将成为本书关注的中心。第2章(以及相关的附录)介绍了当代以及历史上有影响的指令集结构。虽然经历了近二十年的努力,RISC结构还远不能成为系统结构的终结者。前后有十几年的时间里我参与了SPARC结构的设计及其几个版本的实现,现在我正在参与另外两种不同结构处理器的设计,它们是:picoJava,它实现了大部分的JAVA虚拟机指令,这是一种简洁的字节码高级指令;MAJC,一种简单的多线程超长指令字(VLIW,Verylonginstructionword)处理器,主要用于Java程序和多媒体应用。这两种结构针对不同的新市场应用,即低能耗的嵌入式设备领域和能够在一定的能耗和成本下采用并行计算获得高性能的领域。这两者现在都还没有取得广泛的商业成功。但我认为未来会有许多不同的工业标准结构(ISA)受到青睐。对历史的深入了解可以让我们深受启发,通过对过去成功设计的研究,可以发现它们是如何在几个关键因素,例如程序大小、执行速度和能耗等方面取得平衡的。这些经验将为我们今天的设计提供帮助。第3章和第4章讲述了指令级并行(ILP),这种能力可以使计算机在同一时刻执行多条指令。在过去的二十几年中,RISC技术和超长指令字技术大大促进了这一领域的发展。但是,在IntelItanium的结构设计中,RISC技术,特别是VLIW技术需要很高的能耗。当我们试图获得更高的指令级并行度的时候,我们遇到了设计中的难题:如果需要同时执行N条语句,那么晶体管数量和能耗的需求将以N2的态势迅速增长。另一种方法是采用简单的流水线,比较现实的指令级并行度,并混合使用其他的并行方法,例如每处理器多线程和每芯片多处理器技术。对于未来的高性能系统设计,最大的挑战就是要明白并行执行是完全可能的,但在实际中融合其他并行度低但是能耗也低也更简单的技术才是明智的做法。在研究所的时候,我经常开玩笑地说高速缓存是计算机科学中惟一重要的思想。事实上,高速缓存技术确实极大地影响了计算机系统的设计。第5章介绍了经典的高速缓存设计和主存储器层次结构以及虚拟内存技术。现在,类似于Java的高级编程语言开始采用垃圾回收和内存越界检查技术来支持更可靠的软件设计,这样可以避免内存共享错误和缓冲区溢出等大程序中常见的错误。只有类似于Java的高级语言才支持自动存储管理,只有这样才能实现真正的软件组件。但是在现在的存储器层次结构上,要实现垃圾回收功能是非常困难的。设计这样的系统或者设计这样的语言是研究的热点,虽然我们取得了很大成功,但仍然有很长的路要走。Java语言能够很好地支持线程级并行。这是实现简单、高效的高性能系统的关键,这种方法避免了前面所说的N2问题,但也带来了新的挑战。第6章将对这一领域进行基本的介绍。传统的做法是每一个处理器放在一块单独的芯片上,由于存储器层次结构的问题以及同步操作本身的高昂代价,在不同处理器之间保持同步非常困难。Java语言试图解决这个问题。我们的尝试是在Java语言规范(我是作者之一)中给出用Java实现内存模型的一个描述。我们清醒地看到,这个描述存在技术上的问题(可修正),我们需要对存储器层次结构进行仔细思考,以便使我们设计的语言能够更好地运行在新的系统平台上。我们把Java规范看做是未来将要完成的许多工作的第一步。和第7章描述的一样,存储系统由原来连接在单个计算机的一个组成部分,变成了一种独立的网络资源。这让人想起了计算机图形技术的发展史,随着图形处理重要性的增加,原来由主机处理的功能被单独分割出来,成为了独立的图形处理芯片。在接下来的几年中,一切将会发生巨大的改变,大量的并行主处理器将拥有比主板之外的图形处理单元更好的性能。与此类似,存储技术将会有突破性的进展,例如分子电子学和纳米技术将会大大降低存储设备的价格并缩短访问时间。这将鼓励人们把数据备份在不同的计算节点上,而不是通过网络共享。存储技术将发生和图形技术类似的变化。同样,存储系统也将会有非常严格的健壮性要求,不仅仅是针对硬件错误,还要考虑软件错误以及人为操作失误。这将是近几年一个非常有挑战性的课题。第8章提供了计算机互连和网络的一个基本介绍。这方面我的模型来自于Sun公司另外一位创始人AndyBechtolsheim,他经常说:“以太网不败!”。更为合适的表述是:给出网络互连的要求,不管以太网有什么缺点,总会有一款经过某些修改的以太网协议版本在市场上获得胜利。原因何在?很明显,以太网协议具有简单和使用广泛的特点,然而更加有说服力的原因是,采用以太网协议我们能够立即开始工作,而不需要争论对最终结果无关紧要的细节。这个经验能够适用于本书中有关计算机系统结构的一切领域。多年以前,DavePatterson曾经说过,对于一个新的项目,你只能获得有限的“亮点”(clevernessbeans)。即你只能在设计中有限的几个方面采用很“聪明”的做法,如果想在方方面面都采用“聪明”的做法,那么你的设计很可能达不到最终的目标,甚至无法工作或者无法完成。在二十多年的设计中我学到的一个教训就是:在设计的过程中,你必须要选择最重要的部分并且将重点放在那里。真正的智慧是知道应该放弃什么,知道什么是无法企及的是具有这种能力的关键。同样,你必须要仔细选择你的猜想。很多年以前我参加了在夏威夷举行的一个会议,在会上,富有传奇色彩的计算机设计师MauriceWilkes为我们做了一次演讲。他说,在他的记忆中,好的研究总是包含一些猜想,这些猜想也许在当时看来是不切实际的,但是在未来有可能实现。如果这些猜想实现了,那么你将发现你做了非常伟大的研究。例如,XeroxPARC的研究小组给出了一个猜想:人人都使用带有图形界面的个人电脑,通过互连网络连接其他人的机器,并采用便宜的Xerography技术进行打印。现在看来,他们的预言是多么的准确,他们的工作是多么的重要啊!在我们的时代,在计算机系统结构领域中,我想将会有许多猜想变为现实。有一些甚至不会有争议,例如摩尔定律将在近十年内继续有效,也许十年之后大规模芯片设计的复杂程度将会达到它的物理极限。更毋庸置疑的是,分子技术有可能极大地降低存储和逻辑元件的价格,光学互连技术将极大地增加网络的带宽并减少传输的错误率,软件仍然会因为编写困难而不可靠,安全问题将继续成为人们关心的重点。本书详细介绍了计算机系统结构发展的趋势。下一代的计算机设计者能够利用本书中的知识精华甄别优劣,减少缺陷,从而设计出各种样式和大小的系统。计算机系统结构设计正变得越来越多样化,也越来越有趣。让我们立即启程探索,或者再次征服这个领域吧,而本书将是最好的起点。芯片中见!
-
单片机原理与应用武庆生 仇 梅本书以MCS-51系列单片机为主,介绍了MCS系列单片机的工作原理及应用技术。内容包括单片机基础知识、MSC-51系列单片机组成原理、指令系统、汇编语言程序设计、串行接口及定时器、计数器、中断技术、应用系统扩展、应用系统实例、应用系统开发以及MCS-96系统列单片机组成原理。本书由浅入深,自成系统,每章后均附有思考题与习题,特别适合作为大中专教材,亦适合自学和从事单片机工作的工作技术人员参考。
-
DSP算法设计与系统方案周霖主编;李枫,潘娜编著本书内容主要包括两部分,第一部分介绍了各种数字滤波器和FFT等常用数字信号处理算法韵设计及其DSP实现;第二部分介绍了DSP的各个应用领域的系统设计方案,包括小波分析、变频矢量控制、神经网络、雷达信号处理、语音信号处理、生物医学信号处理、图像信号处理等方面,主要介绍了DSP在这些方面应用时的硬件、软件设计方案,并对某些典型系统的性能进行了仿真。本书旨在使读者在已经掌握了DSP基础知识的前提下,对其在各种领域的开发和使用有较深入的了解,使专业人员能尽快地掌握DSP的系统设计和软硬件开发方法。本书可供从事DSP芯片开发的广大科技人员和大专院校相关专业师生阅读参考。
-
单片机原理及应用教程倪继烈等编本书全面、系统地介绍了MCS-51单片机的结构、原理、接口技术、扩展应用等知识,主要内容包括:计算机基本工作原理、计算机运算基础、单片微型机的组成原理、MCS-51系列单片机的指令系统、汇编语言程序设计、MCS-51单片机的扩展应用、MCS-51单片机接口技术、实验指导书等,并且每章都附有学习目标、本章小结和习题。本书内容先进,简明扼要,深入浅出,便于教学与自学。它既可以作为大专院校各专业单片机原理及应用的通用教材和成人高等教育的培训教材、自学读本,也可供工程技术人员参考。
-
数字信号微处理器的原理与开发李刚主编《数字信号微处理器的原理与开发(第2版)》全面而又详细地介绍了TMS320C54x系列数字信号处理器的硬件结构和工作原理、应用设计和开发技术。《数字信号微处理器的原理与开发(第2版)》可作为相关专业研究生和高年级本科生的教材,也可以作为从事DSP应用开发的科技人员的参考资料。