计算机组成与体系结构:性能设计(英文版·原书第10版)
作者 : [美] 威廉·斯托林斯(William Stallings) 著
丛书名 : 经典原版书库
出版日期 : 2019-07-10
ISBN : 978-7-111-63146-0
定价 : 229.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 832
开本 : 16
原书名 : Computer Organization and Architecture: Designing for Performance,Tenth Edition
原出版社: Pearson Education Inc.
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。

图书特色

图书前言

第10版的新内容
自本书第9版出版以来,本领域创新和改进不断。在新版本中,我试着反映这些变化,并保持对整个领域广泛而全面的覆盖。为了本次修订,我们对第9版进行了广泛审阅,审阅者是讲授这些主题的教授和在本领域工作的专业人士。因此,全书进一步明晰或改进了许多地方的描述,也完善了插图。
除了这些用以提升教学效果和用户友好性的改动外,本书还有一些实质性的变化。全书的章节组织仍然和以前大致相同,但修订了许多资料,并添加了新资料。最值得注意的变化如下:
GPGPU(图形处理单元(GPU)上的通用计算):近年来最重要的新发展之一就是GPGPU的广泛使用,它与传统的CPU协作,以处理涉及大量数据的各种应用程序。书中新增加了一章专门讨论GPGPU。
异构多核处理器:多核架构的最新发展是异构多核处理器。多核处理器一章中添加了新的一节,考察了各种类型的异构多核处理器。
嵌入式系统:对第1章中的嵌入式系统概述部分做了大幅修订和扩充,以反映嵌入式技术的现状。
微控制器:就数量而言,当前我们所使用的几乎所有计算机都是嵌入式微控制器。第1章中的嵌入式系统部分现在包括微控制器。全书以ARM Cortex-M3微控制器为例贯穿始终。
云计算:新增了对云计算的讨论,第1章对其进行了概述,第17章进行了更详细的阐述。
系统性能:修订、扩充和重组了关于系统性能问题的部分,以使其显得更加清晰和透彻。第2章专门讨论了这个主题,而且系统性能问题将贯穿全书。
闪存:更新和扩充了闪存部分,现在包含对内存(第5章)与外存(第6章)闪存技术与组成的讨论。
非易失性RAM:本版添加的内容是三种重要的新非易失性固态RAM技术—STT-RAM、PCRAM和ReRAM,它们位于存储器层次结构中的不同位置。
直接缓存访问(DCA):为了满足高速网络连接的协议处理需求,Intel和其他制造商开发了DCA技术,它提供的吞吐量远远高于传统的直接内存访问(DMA)方法。作为新内容,第7章对DCA进行了详细讨论。
Intel酷睿微架构:与上一版相同,Intel x86系列自始至终都作为主要的示例系统。我们更新了这部分内容以反映新的Intel系统,尤其是Intel酷睿微架构,它用于PC和服务器产品。
家庭作业:增加了家庭作业的数量,这些作业都配有参考答案,可供学生练习。
对ACM/IEEE计算机科学课程指南 2013的支持
本书既适合学术读者,也适合专业读者。作为一本教科书,它可以用于计算机科学、计算机工程和电气工程专业的一学期或两学期的本科课程。这一版旨在支持ACM/IEEE计算机科学课程指南 2013(CS2013)的建议。CS2013把所有课程划分为三类:核心一级(所有的主题都应包含在课程中),核心二级(应包含所有或几乎所有的主题),选修(希望提供广度和深度)。在体系结构和组成(AR)部分,CS2013包括五个核心二级主题和三个选修主题,每个主题又有多个子主题。本书涵盖了CS2013列出的所有八个主题。表P.1给出了本教材对AR知识领域提供的支持。
表P.1 对CS2013 AR知识领域的覆盖
IAS知识单元 主题 本书覆盖章节
数字逻辑与数字系统(核心二级) " 计算机体系结构概述与历史
" 组合或时序逻辑/现场可编程门阵列作为基本的组合+时序逻辑构建模块
" 多种表示/分层的解释(硬件仅仅是另外一层)
" 物理约束(门延迟、扇入、扇出、能耗/功率) " 第1章
" 第11章
数据的机器级表示(核心二级) " 位、字节和字
" 数值数据的表示和数值的进制
" 定点和浮点系统
" 有符号和补码表示
" 非数值数据的表示(字符编码和图数据) " 第9章
" 第10章
汇编级计算机组成(核心二级) " 冯·诺依曼机的基本组成
" 控制单元;取指、译码和执行
" 指令集和类型(数据处理、控制、I/O)
" 汇编/机器语言编程
" 指令格式
" 寻址模式
" 子程序调用和返回机制(参照PL/语言翻译与执行)
" I/O和中断
" 共享内存的多处理器/多核结构
" SIMD与MIMD简介,Flynn分类法 " 第1章
" 第7章
" 第12章
" 第13章
" 第17章
" 第18章
" 第20章
" 第21章
" 附录A
存储系统的组织与结构(核心二级) " 存储系统及其技术
" 存储层次结构:时间和空间局部性
" 主存组成和操作
" 延迟、周期时间、带宽和交叉
" 缓存(地址映射、块大小、替换和存储策略)
" 多处理器缓存一致性/使用存储系统的内核间同步/原子性内存操作
" 虚拟存储器(页表、TLB)
" 故障处理和可靠性 " 第4章
" 第5章
" 第6章
" 第8章
" 第17章
接口与通信(核心二级) " I/O基本原理:握手,缓冲,可编程I/O,中断驱动的I/O
" 中断结构:向量化和优先级,中断确认
" 外部存储,物理组成和驱动
" 总线:总线协议,仲裁,直接内存访问(DMA)
" RAID体系结构 " 第3章
" 第6章
" 第7章
功能性组成(选修) " 实现简单的数据通路,包括指令流水线,冒险检测和解决
" 控制单元:硬布线实现与微程序实现
" 指令流水线
" 指令级并行(ILP)简介 " 第14章
" 第16章
" 第20章
" 第21章
多处理及其他体系结构(选修) " 举例介绍SIMD和MIMD指令集与体系结构
" 互联网络
" 共享多处理器内存系统和内存一致性
" 多处理器缓存一致性 " 第12章
" 第13章
" 第17章
性能提高(选修) " 超标量体系结构
" 分支预测,推测执行,乱序执行
" 预取
" 向量处理器和GPU
" 多线程的硬件支持
" 可扩展性 " 第15章
" 第16章
" 第19章

本书的目的
本书是关于计算机结构与功能的,它的目的是尽可能清晰完整地介绍现代计算机系统的性质与特点。
由于种种原因,这个任务颇具挑战性。首先,有各种各样的产品可以被称作计算机,从只值几美元的单芯片微处理器到价值数千万美元的超级计算机。多样性不仅表现在成本方面,还表现在尺寸、性能和应用方面。其次,计算机技术的特色就是变化一直非常迅速,且从未停止。这些变化涉及计算机技术的方方面面,从用于构造计算机组件的底层集成电路技术,到组合这些组件时越来越多地利用到的并行性组成的概念。
尽管计算机领域不断变化且非常多样,但某些基本概念始终是适用的。这些概念的应用取决于技术的现状和设计者的性价比目标。本书的目的是对计算机组成与体系结构进行全面讨论,并将它们与当代的设计问题联系起来。
副书名“性能设计”展示了本书采用的主题与方法。虽然获得高性能在计算机系统设计中一直都很重要,但这一需求从未像现在这样强烈,也从未这样难以满足。计算机系统所有的基本性能特征,包括处理器速度、内存速度、内存容量和互连数据速率,都在迅速增长。而且,它们的增长速度不尽相同,这使得很难设计一个平衡系统来最大化所有元素的性能和利用率。因此,计算机设计逐渐变成了一个游戏:改变一个部分的结构或功能来弥补另一个部分的性能不足。我们将在整本书中看到,这个游戏在许多设计决策中都发挥着作用。
和其他任何系统一样,计算机系统由一组相互关联的部件组成。描述系统特性最好的方式是它的结构和功能,结构是指部件的互连方式,而功能是指各个部件的操作。此外,计算机的组成是层次结构的。每个主要部件都可以分解为若干主要子部件,可以描述这些子部件的结构和功能,由此来进一步说明这个主要部件。为了清晰和易于理解,本书自上至下描述了这个层次结构:
计算机系统:主要部件是处理器、内存、I/O。
处理器:主要部件是控制单元、寄存器、ALU和指令执行单元。
控制单元:为处理器所有部件的操作和协调提供控制信号。传统上使用的是微程序实现,主要部件是控制存储器、微指令序列逻辑和寄存器。最近,微程序设计并不那么突出了,但仍然是一种重要的实现技术。
我们的目标是在清晰明确的上下文中展示新的内容,从而尽可能地帮助读者理解这些知识,同时,相比自下至上的方式,学生的学习积极性会更高。
在讨论过程中,我们从体系结构(机器语言程序员可见的系统属性)和组成(实现该体系结构的操作单元及其互连)两个角度来看系统的方方面面。
示例系统
本书旨在使读者了解当代操作系统的设计原则和实现问题。仅有纯粹的概念和理论是不够的,为了说明这些概念并把它们与必须做出的实际设计选择联系起来,我们选择了两个处理器系列作为运行示例:
Intel x86体系结构:非嵌入式计算机系统中应用最广泛的体系结构是x86。x86本质上是复杂指令集计算机(CISC),但是又具有一些精简指令集计算机(RISC)的特点。x86系列的最新成员使用了超标量和多核设计原则。x86体系结构特性的演变为计算机体系结构大多数设计原则的演变提供了一个独特的研究案例。
ARM:ARM体系结构大概是应用最广泛的嵌入式处理器,用于手机、iPod、远程传感器设备和许多其他设备。ARM本质上是RISC。ARM系列的最新成员使用了超标量和多核设计原则。
本书中的许多例子(但不是全部)都来自这两个计算机系列。许多其他系统,不论是当代的还是过去的,都体现了重要的计算机体系结构设计特性。
本书的组织结构
本书由六个部分组成:
引言
计算机系统
算术与逻辑
中央处理单元
并行结构(包括多核)
控制单元
本书具备很多教学特色,包括使用交互式仿真和大量图表来使讨论更加清晰。每章都有关键词列表、复习题、家庭作业以及扩展阅读建议。本书还包括常用缩略词列表和参考书目列表。
教师资源
教师的教辅资料可从本书的教师资源中心(IRC)获取,可以通过出版商网站www.pearsonhighered.com/stallings访问,也可以在本书的配套网站WilliamStallings.com/Computer-Organization上点击“Pearson Resources for Instructors”的链接访问。如需访问IRC,请通过pearsonhighered.com/educator/replocator/requestSalesRep.page与当地的Pearson销售代表联系,或致电Pearson教师服务热线1-800-526-0485。IRC提供以下资料:
项目手册:项目资源,包括文档和可移植的软件,以及本前言后面列出的所有项目类别的推荐项目作业。
参考答案手册:每章复习题和练习题的参考答案。
PPT:全部章节的PPT,适合用于教学。
PDF文档:本书所有的图表文件。
题库:每章的问题集。
样例教学大纲:本书包含的资料多于一学期所需的量。因此,为教师提供了几个样例教学大纲,以指导在有限时间内如何使用本书。这些样例都是基于教授本书第1版时的实际经验。
配套网站WilliamStallings.com/ComputerOrganization(点击Instructor Resources链接)包含如下内容:
使用本书的其他课程的网站链接。
Internet邮件列表的注册信息,供使用本书的教师之间以及与作者之间进行信息、建议与问题的交流。
学生资源
在新版本中,学生可以在两个网站上获得大量的原始支持材料。在WilliamStallings.com/ComputerOrganization(点击Student Resources链接)的配套网站上,有按章节组织的相关链接列表和勘误表。
购买新书的读者可以在6个月内访问付费内容网站,其中包含在线章节、在线附录、家庭作业与参考答案。
最后,WilliamStallings.com/StudentSupport.html上的Computer Science Student Resource Site由我维护。
项目和其他学生练习
对许多老师来说,计算机组成与体系结构课程的一个重要组成部分是一个或多个项目,通过这些项目,学生可以获得实践经验来强化课本中的概念。本书为此提供了无与伦比的支持,教师可将这些项目用于教学。Prentice Hall提供的教辅资源不仅包括如何布置和构建项目的指导,还包含一组针对各种项目类型和特定任务的用户手册,所有这些都是专门为本书编写的。教师可以针对下列各方面布置作业:
交互式仿真作业:说明见后文。
研究项目:一系列研究任务,指导学生在互联网上研究特定主题并撰写报告。
仿真项目:IRC支持使用两个仿真包:SimpleScalar可用于探索计算机组成与体系结构设计问题;SMPCache是一个强大的教学工具,能够检查对称多处理器的缓存设计问题。
汇编语言项目:使用一种简化的汇编语言CodeBlue,提供了基于流行的Core War概念的任务。
阅读/报告任务:文献论文列表,每章一篇或多篇论文,可以分配给学生阅读并撰写一篇简短的报告。
写作作业:一份写作作业清单,帮助学习书中的内容。
题库:包含是非题、多选题、填空题及答案。
这些多样化的项目和学生练习使教师能够把本书作为丰富学习体验的一个组成部分,也可以定制课程计划以满足师生的特定需求。详情请见本书附录A。
交互式仿真
本版的一个重要特征是结合了交互式仿真。这些仿真为理解现代计算机系统的复杂设计特性提供了一个强大的工具。共有20个交互式仿真用于说明计算机组成与体系结构设计的关键概念和算法。在本书的相应位置上,我们用图标表示有相关的交互式仿真可供学生在线使用。在动画中,用户可以设置初始条件,因此可以作为学生作业的基础。教师补充材料包括一组作业,每个对应一个动画。每个作业都有几个可以布置给学生的具体问题。
要访问动画,请点击本书网站http://williamstallings.com/ComputerOrganization上的旋转地球。
致谢
新版本受益于许多人的审阅,他们慷慨地献出了自己的时间和专业知识。以下教授和讲师审阅了全部或大部分内容:Molisa Derk(Dickinson State大学),Yaohang Li (Old Dominion大学),Dwayne Ockel (Regis大学),Nelson Luiz Passos(Midwestern State大学),Mohammad Abdus Salam(Southern大学),Vladimir Zwass(Fairleigh Dickinson大学)。
感谢为一个或多个章节提供了详细的技术意见的各位,他们是:Rekai Gonzalez Alberquilla,Allen Baum,Jalil Boukhobza,Dmitry Bufistov,Humberto Calderón,Jesus Carretero,Ashkan Eghbal,Peter Glaskowsky,Ram Huggahalli,Chris Jesshope,Athanasios Kakarountas,Isil Oz,Mitchell Poplingher,Roger Shepherd,Jigar Savla,Karl Stevens,Siri Uppalapati,Sriram Vajapeyam博士,Kugan Vivekanandarajah,Pooria M. Yaghini,Peter Zeno。
Peter Zeno撰写了第19章中的GPGPU部分。
Appalachian State大学的Cindy Norris教授、New Brunswick大学的Bin Mu教授以及Alaska 大学的Kenrick Mock教授提供了家庭作业。
Massachusetts大学的Aswin Sreedhar设计了交互式仿真作业,并编写了习题库。
西班牙Extremadura大学的Miguel Angel Vega Rodriguez教授、Juan Manuel Sanchez Perez教授(博士)和Juan Antonio Gomez Pulido教授(博士)编写了指导手册中的SMPCache问题,以及SMPCache用户指南。
Wisconsin大学的Todd Bezenek和Lehigh大学的James Stine编写了指导手册中的SimpleScalar问题,Todd还编写了SimpleScalar用户指南。
最后,我要感谢负责出版这本书的诸位编辑,他们所做的工作一如既往地出色。他们来自Pearson出版集团,特别是我的编辑Tracy Johnson,她的助理Kelsey Loanes,项目经理Carole Snyder,以及生产经理Bob Engelhardt。我还要感谢Mahalatchoumy Saravanan以及Jouve India的工作人员,他们迅速出色地完成了生产任务。还要感谢Pearson集团的营销和销售人员,没有他们的努力,这本书就不会呈现在大家面前。

上架指导

计算机\计算机组成

封底文字

本书以Intel x86和ARM两个处理器系列为例,深入讨论了计算机组成与体系结构的基本原理和实现,并将它们运用到当代的设计问题中。新版保持了之前版本的特色,全面覆盖整个领域,并在此基础上紧跟新技术的发展步伐。

第10版重要更新
 新增一章专门讨论GPGPU。
 新增一节介绍各种类型的异构多核处理器。
 对嵌入式系统部分做了大幅修订和扩充,加入了微控制器。
 新增章节以详细讲解云计算技术。
 修订、扩充和重组了关于系统性能问题的部分。
 更新闪存部分,包括内存和外存的闪存技术及组成。
 添加三种重要的非易失性固态RAM技术——STT-RAM,PCRAM,ReRAM。
 对直接缓存访问进行详细讨论。
 更新Intel酷睿微架构的相关示例。

作者简介
威廉·斯托林斯(William Stallings)  知名计算机图书作者,曾13次获得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。

作者简介

[美] 威廉·斯托林斯(William Stallings) 著:威廉·斯托林斯(William Stallings) 知名计算机图书作者,曾13次获得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。

推荐序

多年来,我一直活跃在计算机组成与体系结构领域,很高兴能为William Stallings这本内容详尽、覆盖全面的书的新版作序。在写序的过程中,我也在反思这些年来这个领域产生的趋势和变化。我是在出现重大创新与颠覆的时候,对计算机体系结构产生兴趣的。这种颠覆不仅是技术的进步引起的,可能更重要的是获取技术的方式。我们有了VLSI,教室里的学生也可以使用VLSI设计。这是多么激动人心的时刻!把大型机风格的计算机集成到一个硅芯片上是一座里程碑,而这个成就是由一个学术研究团队完成的,这就使它显得更为独特了。计算机体系结构的创新和多样性是这个时期的特点,其中一个主要趋势就是并行性。在20世纪70年代,我亲身体验了Illiac IV,它是计算机体系结构中显式并行的早期实例,并且开创了所有半导体存储器的先河。正是这种交互激发了我对计算机体系结构与组成的兴趣,尤其是计算机体系结构中的显式并行。
在整个20世纪80年代以及90年代早期,这一领域的研究蓬勃发展,出现了大量创新,其中大部分都是从大学里的创业项目发展为市场上的产品。然而,具有讽刺意味的是,正是同样的技术扭转了这一趋势。在计算机系统中,随着几种指令集体系结构的发展,多样性逐渐被近乎单一的文化所取代。摩尔定律是一个自我实现的预测,它成为行业指导原则,即基本设备速度和集成密度都呈指数级增长,后者每18个月就会翻一番。众所周知,这样的速度提高是计算机架构师的免费午餐,这样的集成度允许在微体系结构级别上进行更复杂的实现和创新。免费午餐当然也是有代价的,那就是满足摩尔定律所需的资本投资也呈指数级增长,这就再次限制了获得最先进技术的机会。此外,大多数用户发现,考虑到存在的缺陷和困难,等待下一代主流处理器比投资并行计算机创新要容易得多。少数需要极限性能的大型机构是例外,大规模科学仿真(如气候建模)和代码破解安全服务就是两个常见的例子。对其他人来说,这实际上就是一场兼容性游戏,从中受益的两个指令集是x86和ARM,后者适用于嵌入式系统,而前者则适用于几乎所有其他系统。这些指令集的实现中仍然有并行,只不过是隐式的,由体系结构来控制,而不是驱动它的指令流。
从20世纪90年代末到21世纪初,这种在单核计算机系统中隐式利用并发性的方法蓬勃发展。然而,尽管逻辑电路密度呈指数级增长,这种技术的高开发成本终结了这一时代。在超标量处理器中,逻辑器件成本不会随着发射宽度(并行度)线性增长,但有些组件却会随着发射宽度出现平方或立方关系的增长。尽管逻辑电路的指数增长可以维持这种持续发展,但有两个主要缺陷:越来越难以从命令式程序中发掘隐式并发性,由此导致指令发射槽的利用率也降低了。也许更重要的是,技术正在经历性能提升的新阻碍,即功耗。由于芯片过热,有些超标量处理器的研发计划都终止了。这些制约因素要求利用显式并行,尽管存在着兼容性的挑战。看起来创新和多样性又一次为这个领域开辟了新的研究空间。
或许自20世纪80年代以来,这一领域的研究从未如此有趣过。从主流处理器中发射宽度(隐式并行)的减少和内核数量(显式并行)的增加可以看出,这种多样性是经济原因造成的现实。但是,问题是如何在应用级和系统级上利用这样的并行,在这方面仍然存在有待解决的重大挑战。超标量处理器依赖处理器从单个指令流中获取并行性。如果我们换个角度,提供一个具有最大并行性的指令流,那么,如何在配置不同的处理器或者几代处理器(这些处理器要求不同级别的显式并行性)上利用它呢?由此,是否存在一种微架构能对在ISA中捕获到的最大并发性进行顺序化和调度来匹配处理器核当前的配置,从而在显式并行的世界中得到相同的兼容性?为了提高效率是否需要硬件操作系统呢?
上面描述的仅仅是当前我们面对的部分问题。回答这些问题以及其他更多问题需要在计算机组成和体系结构方面具有扎实的基础,William Stallings的这本书就提供了非常及时和全面的论述。它对必要的基础知识进行了完整的介绍,以简单明了的方式阐明了非常复杂的主题。同时,它还涉及本领域中新的发展情况,在这个领域,创新不仅存在于过去,而且正在发生。超标量发射和显式并行多核就是这样的例子。此外,新版本还包括两个全新的主题,一个是通用GPU的设计和使用,一个是云计算的最新趋势,它们都是最近才成为主流的。本书充分利用举例来突出涉及的理论问题,其中大多数例子都来自两种使用最广泛的指令集的发展,即x86和ARM。重申一下,本书的内容很完整,读之令人愉悦,希望它能激发更多的年轻研究者沿着我在过去40年中所喜爱的同一条道路前进!

Chris Jesshope
阿姆斯特丹大学教授(荣誉退休)
《Parallel Computers》(1981, 1988)的作者(与R. W. Hockney合著)

图书目录

第一部分 引言
第1章 基本概念和计算机演化 1
1.1 组成与体系结构 2
1.2 结构与功能 3
1.3 计算机简史 11
1.4 Intel x86体系结构的演化 27
1.5 嵌入式系统 29
1.6 ARM体系结构 33
1.7 云计算 39
1.8 关键词、复习题和练习题 42
第2章 性能问题 45
2.1 优化性能设计 46
2.2 多核、MIC和GPGPU 52
2.3 深刻理解性能的两个定律:Ahmdahl定律和Little定律 53
2.4 计算机性能的基本度量 56
2.5 计算均值 59
2.6 基准测试和SPEC 67
2.7 关键词、复习题和练习题 74
第二部分 计算机系统
第3章 计算机功能与互连的顶层视图 80
3.1 计算机组件 81
3.2 计算机功能 83
3.3 互连结构 99
3.4 总线互连 100
3.5 点对点互连 102
3.6 PCI Express 107
3.7 关键词、复习题和练习题 116
第4章 高速缓存 120
4.1 计算机存储系统概述 121
4.2 高速缓存存储器原理 128
4.3 高速缓存设计要素 131
4.4 Pentium 4 高速缓存结构 149
4.5 关键词、复习题和练习题 152
附录4A 两级存储的性能特征 157
第5章 内部存储器 165
5.1 半导体主存 166
5.2 纠错 174
5.3 DDR DRAM 180
5.4 闪存 185
5.5 新的非易失性固态存储器技术 187
5.6 关键词、复习题和练习题 190
第6章 外部存储器 194
6.1 磁盘 195
6.2 RAID 204
6.3 固态硬盘 212
6.4 光学存储器 217
6.5 磁带 222
6.6 关键词、复习题和练习题 224
第7章 输入/输出 228
7.1 外部设备 230
7.2 I/O模块 232
7.3 可编程I/O 235
7.4 中断驱动的I/O 239
7.5 直接存储器访问 248
7.6 直接高速缓存访问 254
7.7 I/O通道和处理器 261
7.8 外部互连标准 263
7.9 IBM zEnterprise EC12 I/O系统 266
7.10 关键词、复习题和练习题 270
第8章 操作系统支持 275
8.1 操作系统概述 276
8.2 调度 287
8.3 存储管理 293
8.4 Intel x86存储管理 304
8.5 ARM存储管理 309
8.6 关键词、复习题和练习题 314
第三部分 算术与逻辑
第9章 数字系统 318
9.1 十进制系统 319
9.2 按位记数系统 320
9.3 二进制系统 321
9.4 二进制与十进制的转换 321
9.5 十六进制表示 324
9.6 关键词和练习题 326
第10章 计算机算术运算 328
10.1 算术与逻辑单元 329
10.2 整数表示 330
10.3 整数算术运算 335
10.4 浮点表示 350
10.5 浮点算术运算 358
10.6 关键词、复习题和练习题 367
第11章 数字逻辑 372
11.1 布尔代数 373
11.2 门 376
11.3 组合电路 378
11.4 时序电路 396
11.5 可编程逻辑设备 405
11.6 关键词和练习题 409
第四部分 中央处理单元
第12章 指令集:特点与功能 412
12.1 机器指令特点 413
12.2 操作数类型 420
12.3 Intel x86和ARM的数据类型 422
12.4 操作类型 425
12.5 Intel x86和ARM的操作类型 438
12.6 关键词、复习题和练习题 446
附录12A 小端序、大端序和双端序 452
第13章 指令集:寻址模式与格式 456
13.1 寻址模式 457
13.2 x86和ARM的寻址模式 463
13.3 指令格式 469
13.4 x86和ARM指令格式 477
13.5 汇编语言 482
13.6 关键词、复习题和练习题 484
第14章 处理器结构与功能 488
14.1 处理器组成 489
14.2 寄存器组成 491
14.3 指令周期 496
14.4 指令流水线 500
14.5 x86处理器系列 517
14.6 ARM处理器 524
14.7 关键词、复习题和练习题 530
第15章 精简指令集计算机 535
15.1 指令执行特性 537
15.2 大寄存器文件的使用 542
15.3 基于编译器的寄存器优化 547
15.4 精简指令集架构 549
15.5 RISC流水线 555
15.6 MIPS R4000 559
15.7 SPARC 565
15.8 RISC与CISC之争 570
15.9 关键词、复习题和练习题 571
第16章 指令级并行与超标量处理器 575
16.1 概述 576
16.2 设计问题 581
16.3  Intel Core微架构 591
16.4 ARM Cortex-A8 596
16.5 ARM Cortex-M3 604
16.6 关键词、复习题和练习题 608
第五部分 并行结构
第17章 并行处理 613
17.1 多处理器结构 615
17.2 对称多处理器 617
17.3 高速缓存一致性和MESI协议 621
17.4 多线程和片上多处理器 628
17.5 集群 633
17.6 非均匀内存访问 640
17.7 云计算 643
17.8 关键词、复习题和练习题 650
第18章 多核计算机 656
18.1 硬件性能问题 657
18.2 软件性能问题 660
18.3 多核结构 665
18.4 异构多核结构 667
18.5 Intel Core i7-990X 676
18.6 ARM Cortex-A15 MPCore 677
18.7 IBM zEnterprise EC12大型机 682
18.8 关键词、复习题和练习题 685
第19章 通用图形处理单元 688
19.1 CUDA基础 689
19.2 GPU与CPU 691
19.3 GPU架构概述 692
19.4 Intel的Gen8 GPU 701
19.5 何时把GPU当作协处理器使用 704
19.6 关键词和复习题 706
第六部分 控制单元
第20章 控制单元操作 707
20.1 微操作 708
20.2 处理器的控制 714
20.3 硬布线实现 724
20.4 关键词、复习题和练习题 727
第21章 微程序控制 729
21.1 基本概念 730
21.2 微指令序列 739
21.3 微指令执行 745
21.4 TI 8800 755
21.5 关键词、复习题和练习题 766
附录A 计算机组成与体系结构教学项目 768
附录B 汇编语言与相关主题 774
参考文献 800


Contents

Foreword xiii Preface xv About the Author xxiii
PART ONE INTRODUCTION 1
Chapter.1 Basic Concepts and Computer Evolution 1
1.1 Organization and Architecture 2
1.2 Structure and Function 3
1.3 A Brief History of Computers 11
1.4 The Evolution of the Intel x86 Architecture 27
1.5 Embedded Systems 29
1.6 Arm Architecture 33
1.7 Cloud Computing 39
1.8 Key Terms, Review Questions, and Problems 42
Chapter.2 Performance Issues 45
2.1 Designing for Performance 46
2.2 Multicore, Mics, and GPGPUs 52
2.3 Two Laws that Provide Insight:Ahmdahl’s Law and Little’s Law 53
2.4 Basic Measures of Computer Performance 56
2.5 Calculating the Mean 59
2.6 Benchmarks and Spec 67
2.7 Key Terms, Review Questions, and Problems 74
PART TWO THE COMPUTER SYSTEM 80
Chapter.3 A Top-Level View of Computer Function and Interconnection 80
3.1 Computer Components 81
3.2 Computer Function 83
3.3 Interconnection Structures 99
3.4 Bus Interconnection 100
3.5 Point-to-Point Interconnect 102
3.6 PCI Express 107
3.7 Key Terms, Review Questions, and Problems 116
Chapter.4 Cache Memory 120
4.1 Computer Memory System Overview 121
4.2 Cache Memory Principles 128
4.3 Elements of Cache Design 131
4.4 Pentium 4 Cache Organization 149
4.5 Key Terms, Review Questions, and Problems 152
Appendix 4A Performance Characteristics of Two-Level Memories 157
Chapter.5 Internal Memory 165
5.1 Semiconductor Main Memory 166
5.2 Error Correction 174
5.3 DDR DRAM 180
5.4 Flash Memory 185
5.5 Newer Nonvolatile Solid-State Memory Technologies 187
5.6 Key Terms, Review Questions, and Problems 190
Chapter.6 External Memory 194
6.1 Magnetic Disk 195
6.2 RAID 204
6.3 Solid State Drives 212
6.4 Optical Memory 217
6.5 Magnetic Tape 222
6.6 Key Terms, Review Questions, and Problems 224
Chapter.7 Input/Output 228
7.1 External Devices 230
7.2 I/O Modules 232
7.3 Programmed I/O 235
7.4 Interrupt-Driven I/O 239
7.5 Direct Memory Access 248
7.6 Direct Cache Access 254
7.7 I/O Channels and Processors 261
7.8 External Interconnection Standards 263
7.9 IBM zEnterprise EC12 I/O Structure 266
7.10 Key Terms, Review Questions, and Problems 270
Chapter.8 Operating System Support 275
8.1 Operating System Overview 276
8.2 Scheduling 287
8.3 Memory Management 293
8.4 Intel x86 Memory Management 304
8.5 Arm Memory Management 309
8.6 Key Terms, Review Questions, and Problems 314
PART THREE ARITHMETIC AND LOGIC 318
Chapter.9 Number Systems 318
9.1 The Decimal System 319
9.2 Positional Number Systems 320
9.3 The Binary System 321
9.4 Converting Between Binary and Decimal 321
9.5 Hexadecimal Notation 324
9.6 Key Terms and Problems 326
Chapter.10 Computer Arithmetic 328
10.1 The Arithmetic and Logic Unit.329
10.2 Integer Representation 330
10.3 Integer Arithmetic 335
10.4 Floating-Point Representation 350
10.5 Floating-Point Arithmetic 358
10.6 Key Terms, Review Questions, and Problems 367
Chapter.11 Digital Logic 372
11.1 Boolean Algebra 373
11.2 Gates 376
11.3 Combinational Circuits 378
11.4 Sequential Circuits 396
11.5 Programmable Logic Devices 405
11.6 Key Terms and Problems 409
PART FOUR THE CENTRAL PROCESSING UNIT.412
Chapter.12 Instruction Sets: Characteristics and Functions 412
12.1 Machine Instruction Characteristics 413
12.2 Types of Operands 420
12.3 Intel x86 and ARM Data Types 422
12.4 Types of Operations 425
12.5 Intel x86 and ARM Operation Types 438
12.6 Key Terms, Review Questions, and Problems 446

Appendix 12A Little-, Big-, and Bi-Endian 452

Chapter.13 Instruction Sets:Addressing Modes and Formats 456
13.1 Addressing Modes 457
13.2 x86 and ARM Addressing Modes 463
13.3 Instruction Formats 469
13.4 x86 and ARM Instruction Formats 477
13.5 Assembly Language 482
13.6 Key Terms, Review Questions, and Problems 484
Chapter.14 Processor Structure and Function 488
14.1 Processor Organization 489
14.2 Register Organization 491
14.3 Instruction Cycle 496
14.4 Instruction Pipelining 500
14.5 The x86 Processor Family 517
14.6 The ARM Processor 524
14.7 Key Terms, Review Questions, and Problems 530
Chapter.15 Reduced Instruction Set Computers 535
15.1 Instruction Execution Characteristics 537
15.2 The Use of a Large Register File 542
15.3 Compiler-Based Register Optimization 547
15.4 Reduced Instruction Set Architecture 549
15.5 RISC Pipelining 555
15.6 MIPS R4000 559
15.7 SPARC 565
15.8 RISC versus CISC Controversy 570
15.9 Key Terms, Review Questions, and Problems 571
Chapter.16 Instruction-Level Parallelism and Superscalar Processors 575
16.1 Overview 576
16.2 Design Issues 581
16.3 Intel Core Microarchitecture 591
16.4 ARM Cortex-A8 596
16.5 ARM Cortex-M3 604
16.6 Key Terms, Review Questions, and Problems 608
PART FIVE PARALLEL ORGANIZATION 613
Chapter.17 Parallel Processing 613
17.1 Multiple Processor Organizations 615
17.2 Symmetric Multiprocessors 617
17.3 Cache Coherence and the MESI Protocol 621
17.4 Multithreading and Chip Multiprocessors 628
17.5 Clusters 633
17.6 Nonuniform Memory Access 640
17.7 Cloud Computing 643
17.8 Key Terms, Review Questions, and Problems 650
Chapter.18 Multicore Computers 656
18.1 Hardware Performance Issues 657
18.2 Software Performance Issues 660
18.3 Multicore Organization 665
18.4 Heterogeneous Multicore Organization 667
18.5 Intel Core i7-990X 676
18.6 ARM Cortex-A15 MPCore 677
18.7 IBM zEnterprise EC12 Mainframe 682
18.8 Key Terms, Review Questions, and Problems 685
Chapter.19 General-Purpose Graphic Processing Units 688
19.1 Cuda Basics 689
19.2 GPU versus CPU 691
19.3 GPU Architecture Overview 692
19.4 Intel’s Gen8 GPU 701
19.5 When to Use a GPU as a Coprocessor 704
19.6 Key Terms and Review Questions 706
PART SIX THE CONTROL UNIT.707
Chapter.20 Control Unit Operation 707
20.1 Micro-Operations 708
20.2 Control of the Processor 714
20.3 Hardwired Implementation 724
20.4 Key Terms, Review Questions, and Problems 727
Chapter.21 Microprogrammed Control 729
21.1 Basic Concepts 730
21.2 Microinstruction Sequencing 739
21.3 Microinstruction Execution 745
21.4 TI 8800 755
21.5 Key Terms, Review Questions, and Problems 766
Appendix A Projects for Teaching Computer Organization and Architecture 768
Appendix B Assembly Language and Related Topics 774
References 800

教学资源推荐
作者: [美] 兰德尔 E.布莱恩特(Randal E. Bryant)大卫 R. 奥哈拉伦(David R. O'Hallaron) 著
作者: Joseph A. Fisher Paolo Faraboschi Cliff Young
作者: [美]戴维·莫尼·哈里斯(David Money Harris) 哈维玛德学院,莎拉 L.哈里斯(Sarah L. Harris) 哈维玛德学院 著
作者: 李平 杜涛 王靖
参考读物推荐
作者: [英]姚文祥(Joseph Yiu) 著
作者: (美)Elecia White 著
作者: [土耳其] 卡格特·古尔图克(Cagatay Gurturk)著
作者: 汪文祥 邢金璋 著