内容简介
《并行计算机组成与设计》以简单易懂的方式讲解错综复杂的并行体系结构,引导读者了解并行计算机的工作原理,同时鼓励读者创新并实现自己的设计。全书共9章,内容涵盖底层电子工艺、微体系结构、存储结构、互连网络、多处理器、片上多处理器以及量化评估模型等。每一章都独立且完备,既包含全面的基本概念,也涵盖一些前沿研究点。本书适合作为高等院校计算机相关专业的教材,教师可根据课程及学生的层次选取不同的主题。同时,对于工程师和研究者,本书也是不可多得的有益参考。
作者简介
Michel Dubois,南加州大学谢明(Ming Hsieh)电子工程系教授。
Murali Annavaram,南加州大学谢明(Ming Hsieh)电子工程系副教授。
Per Stenstrm,瑞典哥德堡查尔姆斯理工大学计算机工程教授
目录
出版者的话赞誉译者序前言第1章 总述11.1 什么是计算机体系结构21.2 并行体系结构的基本组成31.2.1 处理器41.2.2 存储61.2.3 互连91.3 并行体系结构101.3.1 指令级并行101.3.2 线程级并行101.3.3 向量和阵列处理器111.4 性能121.4.1 基准测试集131.4.2 Amdahl定律151.5 技术挑战191.5.1 功耗和能量191.5.2 可靠性191.5.3 连线延迟201.5.4 设计复杂度201.5.5 尺寸缩小极限和CMOS终点21习题22第2章 工艺及其影响252.1 概述252.2 电学基本定律262.2.1 欧姆定律262.2.2 电阻262.2.3 电容272.3 MOSFET晶体管和CMOS反相器272.4 工艺变更302.5 功耗和能耗312.5.1 动态功耗312.5.2 静态功耗352.5.3 功耗和能量指标372.6 可靠性382.6.1 故障和错误382.6.2 可靠性指标392.6.3 故障率和老化402.6.4 瞬时故障422.6.5 间歇性故障442.6.6 永久性故障482.6.7 工艺偏差及其对故障的影响48习题49第3章 处理器微结构513.1 概述513.2 指令集架构523.2.1 指令类型和操作码533.2.2 指令混合553.2.3 指令操作数553.2.4 异常、陷阱和中断583.2.5 存储一致性模型603.2.6 本书的核心ISA603.2.7 CISC和RISC613.3 静态调度流水线633.3.1 经典五级流水线643.3.2 指令乱序完成693.3.3 超流水和超标量CPU723.3.4 分支预测733.3.5 静态指令调度733.3.6 静态流水线的优缺点773.4 动态调度流水线783.4.1 解决数据相关:Tomasulo算法793.4.2 推测执行823.4.3 动态分支预测833.4.4 支持推测的Tomasulo算法873.4.5 动态内存歧义消除893.4.6 显式寄存器重命名913.4.7 指令发射后的寄存器读取933.4.8 推测指令调度943.4.9 打破数据流限制:值预测973.4.10 单周期多指令983.4.11 处理复杂ISA983.5 超长指令字微结构993.5.1 动态和静态技术1003.5.2 VLIW体系结构1003.5.3 循环展开1023.5.4 软件流水1033.5.5 非循环VLIW调度1083.5.6 谓词指令1093.5.7 推测内存歧义消除1103.5.8 异常1103.6 EPIC微结构1123.7 向量微结构1133.7.1 算术/逻辑向量指令1133.7.2 内存向量指令1143.7.3 向量分段开采和链接1153.7.4 条件语句1163.7.5 scatter和gather操作117习题118第4章 存储层次1364.1 概述1364.2 金字塔形存储层次1374.2.1 访存局部性1384.2.2 存储层次中的一致性1384.2.3 存储包含1394.3 cache层次1394.3.1 cache映射及组织方式1394.3.2 替换策略1424.3.3 写策略1434.3.4 cache层次的性能1444.3.5 cache失效的分类1454.3.6 非阻塞cache1454.3.7 cache预取和预加载1474.4 虚拟存储1494.4.1 引入虚存的动机1494.4.2 从操作系统视角看到的虚拟存储1494.4.3 虚地址转换1514.4.4 访存控制1514.4.5 多级页表1524.4.6 反向页表1534.4.7 旁路转换缓冲1534.4.8 带物理标识的虚地址cache1544.4.9 带虚标识的虚地址cache157习题157第5章 多处理器系统1625.1 概述1625.2 并行编程模型1635.2.1 共享内存系统1645.2.2 消息传递系统1665.3 基于消息传递的多处理器系统1675.3.1 消息传递原语1675.3.2 消息传递协议1695.3.3 消息传递协议的硬件支持1705.4 基于总线的共享内存系统1715.4.1 多处理器cache组织1725.4.2 一个简单的侦听cache协议1735.4.3 侦听cache协议的设计空间1765.4.4 协议变种1815.4.5 多阶段侦听cache协议的设计问题1845.4.6 通信事件的分类1885.4.7 TLB一致性1905.5 可扩展共享内存系统1925.5.1 目录协议的基本概念和术语1935.5.2 目录协议实现方法1935.5.3 目录协议的扩展性1975.5.4 层次化系统2005.5.5 页面迁移和复制2015.6 全cache共享内存系统2045.6.1 基本概念、硬件结构和协议2045.6.2 平坦COMA206习题207第6章 互连网络2146.1 概述2146.2 互连网络的设计空间2156.2.1 设计概念综述2156.2.2 延迟和带宽模型2176.3 交换策略2216.4 拓扑结构2236.4.1 间接网络2236.4.2 直接网络2266.5 路由技术2296.5.1 路由算法2296.5.2 死锁避免和确定性路由231
前言/序言
前 言Parallel Computer Organization and Design 在飞速发展的技术驱动下,计算机体系结构成为一个快速发展的领域。自20世纪90年代中期以来,计算系统的速度和可靠性显著增强,这主要得益于技术的发展、更快的主频和更深的流水线。这些改进将高性能计算机带给大众,对社会产生了深远影响,促进了网络创新和人类活动中生产力的大幅提升。我们所处的信息革命如同18世纪的工业革命,没有人会否认这次革命得益于技术的发展和微处理器体系结构的发展。 但是,这样快速的发展在未来可能无法维持下去,流水线深度已经达到可用的极限,由于功耗限制,主频也无法大幅突破。随着技术的发展以及片上资源的变少,可靠性、复杂性和功耗成为计算机设计考虑的首要问题,而不再是传统上考虑的成本、面积和性能。这些趋势促进了并行处理和并行体系结构的发展,因为这是解决当前和未来可能面临的体系结构问题的一条新的甚至可能是唯一的途径。人们普遍认为,我们需要利用并行处理才能使计算机领域呈现一片新的景象,而这个巨大的改变会产生深远的社会影响。因此,无论是工业界还是学术界,对并行体系结构的兴趣都已从工程上的好奇转换为实在的任务。 随着时间的流逝,各层次的并行化已经成为现代计算机系统发展的瓶颈。多处理器结构通过连接多个处理器提供了可扩展的性能表现,并已在高端系统领域称霸数十载。多处理器开发线程级并行(TLP),允许大型应用拥有很多线程,如计算机图形、科学/工程计算、数据库管理以及通信服务。随着体系结构和编译器技术的发展,微体系结构则开发指令级并行(ILP),并且获得了良好的性能表现。内存系统结构为了跟上指令吞吐量的需求,通过允许同时访问大量数据并保证执行的正确性而获得了快速发展。互连和相关的协议也不断改进,可以有效连接成百上千个处理器以及主频为几GHz的芯片。最近,微处理器的体系结构集成了系统级并行结构的范例,如向量处理和多处理器。在片上多处理器时代,每个微处理器都有多个核或CPU,每个核可以并发执行多个线程。 并行体系结构很难设计也很难编程,我们必须理解并行体系结构带来的问题。本书针对最新的指令级并行和线程级并行技术给出了清晰易懂的讲解,此外,还将可靠性和功耗作为设计目标进行讲解。先前计算机体系结构方面的教材主要将性能作为设计考虑的核心问题。然而,现在尽管性能依旧是设计中的一个主要问题,但是复杂性、功耗和可靠性等其他问题也成为很重要的设计因素,这本关于并行计算机体系结构的新书将会讲解这些内容。 本书的基本目的是解释并行体系结构如何工作以及分析当今并行体系结构的正确设计,尤其是在技术受限的情况下。我们一般不会给出性能数据,并且尽力回避系统的具体细节描述。我们鼓励读者阅读发布在相关会议或期刊上的资料,详细的参考书目和历史发展回顾将会发布在网上。这会留下更多空间来讲解设计的基本问题,同时鼓励学生思考、创新、实现自己的设计。为了达到实践和创新的层次,全面了解现存的设计和实际问题以及限制因素是必需的过程。本书利用丰富的例子来解释概念,并且激发读者自己思考。此外,本书还用两章(第8章和第9章)的篇幅描述了一些工业界和学术界使用的系统和工具。 习题是学习的重要部分,每章之后的习题都采用问答题形式,有些很长很难的题目被分成了多个子问题。习题的主要目的是给学生创造机会以对每章的概念有深刻的理解,并且培养学生的抽象思维能力。 本书适合对计算机体系结构感兴趣的计算机、电子工程和计算机科学专业的高年级本科生以及研究生阅读,也适合计算机行业中的工程师参考。由于本书涵盖了从微处理器到多处理器的大量知识,既包括基本内容也包含一些前沿的研究点,因此在教学时,可以通过选择不同的章节来适应不同的难度级别。学生可以学到硬件结构和组成多处理器的各个部分,以及技术发展趋势对于体系结构的影响,还有与性能、功耗、可靠性和功能正确性相关的设计问题等。本书可以用于研究生的基础课程,也可以用于接下来的高阶研究课程。本书的预修课程是计算机体系结构及组成,涵盖指令集和简单流水线处理器体系结构等内容。例如五级流水线及其控制相关的知识,包括前递、停顿和刷新等问题,这些可以帮助学生理解微处理器章节中更复杂的硬件问题。为了体现完整性,本书也包括了基本的指令集、流水线和存储等相关概念。由于现代微体系结构会影响多处理器的特征,因此了解其工作原理是必需的,此外还需要一定的编程知识。 内容纲要本书整体内容完备,同时我们也尽力保证每一章都是独立且完备的,这可能会导致一些重复。本书共9章。第1章给出了计算机体系结构领域的基本观点,概述处理器、内存、互连网络、性能问题(主要是如何评判计算机系统)以及讨论技术发展对未来体系结构的影响。 对工艺实现细节的理解也是非常重要的,因为很多体系结构的设计决策都受底层工艺的影响。因此在第2章中,我们对CMOS进行回顾并探讨相关问题。有VLSI设计背景的学生可以略过某些讲解。 ……
并行计算机组成与设计 电子书 下载 mobi epub pdf txt