基本信息
- 原书名:Parallel Computer Organization and Design
- 作者: (美)米歇尔·杜波依斯(Michel Dubois)
- 译者: 范东睿 叶笑春 王达
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111562238
- 上架时间:2017-4-1
- 出版日期:2017 年4月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 计算机组织与体系结构 > 综合
教材

内容简介
目录
赞誉
译者序
前言
第1章 总述1
1.1 什么是计算机体系结构2
1.2 并行体系结构的基本组成3
1.2.1 处理器4
1.2.2 存储6
1.2.3 互连9
1.3 并行体系结构10
1.3.1 指令级并行10
1.3.2 线程级并行10
1.3.3 向量和阵列处理器11
1.4 性能12
1.4.1 基准测试集13
1.4.2 Amdahl定律15
1.5 技术挑战19
1.5.1 功耗和能量19
1.5.2 可靠性19
前言
但是,这样快速的发展在未来可能无法维持下去,流水线深度已经达到可用的极限,由于功耗限制,主频也无法大幅突破。随着技术的发展以及片上资源的变少,可靠性、复杂性和功耗成为计算机设计考虑的首要问题,而不再是传统上考虑的成本、面积和性能。这些趋势促进了并行处理和并行体系结构的发展,因为这是解决当前和未来可能面临的体系结构问题的一条新的甚至可能是唯一的途径。人们普遍认为,我们需要利用并行处理才能使计算机领域呈现一片新的景象,而这个巨大的改变会产生深远的社会影响。因此,无论是工业界还是学术界,对并行体系结构的兴趣都已从工程上的好奇转换为实在的任务。
随着时间的流逝,各层次的并行化已经成为现代计算机系统发展的瓶颈。多处理器结构通过连接多个处理器提供了可扩展的性能表现,并已在高端系统领域称霸数十载。多处理器开发线程级并行(TLP),允许大型应用拥有很多线程,如计算机图形、科学/工程计算、数据库管理以及通信服务。随着体系结构和编译器技术的发展,微体系结构则开发指令级并行(ILP),并且获得了良好的性能表现。内存系统结构为了跟上指令吞吐量的需求,通过允许同时访问大量数据并保证执行的正确性而获得了快速发展。互连和相关的协议也不断改进,可以有效连接成百上千个处理器以及主频为几GHz的芯片。最近,微处理器的体系结构集成了系统级并行结构的范例,如向量处理和多处理器。在片上多处理器时代,每个微处理器都有多个核或CPU,每个核可以并发执行多个线程。
并行体系结构很难设计也很难编程,我们必须理解并行体系结构带来的问题。本书针对最新的指令级并行和线程级并行技术给出了清晰易懂的讲解,此外,还将可靠性和功耗作为设计目标进行讲解。先前计算机体系结构方面的教材主要将性能作为设计考虑的核心问题。然而,现在尽管性能依旧是设计中的一个主要问题,但是复杂性、功耗和可靠性等其他问题也成为很重要的设计因素,这本关于并行计算机体系结构的新书将会讲解这些内容。
本书的基本目的是解释并行体系结构如何工作以及分析当今并行体系结构的正确设计,尤其是在技术受限的情况下。我们一般不会给出性能数据,并且尽力回避系统的具体细节描述。我们鼓励读者阅读发布在相关会议或期刊上的资料,详细的参考书目和历史发展回顾将会发布在网上。这会留下更多空间来讲解设计的基本问题,同时鼓励学生思考、创新、实现自己的设计。为了达到实践和创新的层次,全面了解现存的设计和实际问题以及限制因素是必需的过程。本书利用丰富的例子来解释概念,并且激发读者自己思考。此外,本书还用两章(第8章和第9章)的篇幅描述了一些工业界和学术界使用的系统和工具。
习题是学习的重要部分,每章之后的习题都采用问答题形式,有些很长很难的题目被分成了多个子问题。习题的主要目的是给学生创造机会以对每章的概念有深刻的理解,并且培养学生的抽象思维能力。
本书适合对计算机体系结构感兴趣的计算机、电子工程和计算机科学专业的高年级本科生以及研究生阅读,也适合计算机行业中的工程师参考。由于本书涵盖了从微处理器到多处理器的大量知识,既包括基本内容也包含一些前沿的研究点,因此在教学时,可以通过选择不同的章节来适应不同的难度级别。学生可以学到硬件结构和组成多处理器的各个部分,以及技术发展趋势对于体系结构的影响,还有与性能、功耗、可靠性和功能正确性相关的设计问题等。本书可以用于研究生的基础课程,也可以用于接下来的高阶研究课程。本书的预修课程是计算机体系结构及组成,涵盖指令集和简单流水线处理器体系结构等内容。例如五级流水线及其控制相关的知识,包括前递、停顿和刷新等问题,这些可以帮助学生理解微处理器章节中更复杂的硬件问题。为了体现完整性,本书也包括了基本的指令集、流水线和存储等相关概念。由于现代微体系结构会影响多处理器的特征,因此了解其工作原理是必需的,此外还需要一定的编程知识。
内容纲要
本书整体内容完备,同时我们也尽力保证每一章都是独立且完备的,这可能会导致一些重复。本书共9章。第1章给出了计算机体系结构领域的基本观点,概述处理器、内存、互连网络、性能问题(主要是如何评判计算机系统)以及讨论技术发展对未来体系结构的影响。
对工艺实现细节的理解也是非常重要的,因为很多体系结构的设计决策都受底层工艺的影响。因此在第2章中,我们对CMOS进行回顾并探讨相关问题。有VLSI设计背景的学生可以略过某些讲解。这一章主要是针对计算机科学专业的学生,他们可能对电子工程和CMOS技术只有粗略的了解。这部分知识对理解本书其他部分没有影响,但是可以帮助学生理解为什么如今的体系结构会是这样,并了解一些设计决策的原因。这一章同其他章节的明显区别在于只介绍工艺相关的知识。
第3、4和6章讲述了并行系统设计的几个基本方面:处理器、存储和互连网络。第3章讲述微体系结构,对指令集和基本的机器结构(如五级流水线)进行了概括介绍,并在这一过程中给出了本书其他部分用到的指令集和基本ISA原理。这一章重点强调异常以及异常处理方法,因为异常对于开发微体系结构中的并行性有很大影响。有体系结构背景的学生可以略过该章的大部分内容。该章主要介绍通过各种软硬件方法来开发指令级并行。首先,考虑静态调度处理器(包括超标量处理器,它是五级流水线的扩展)中的设计问题。由于没有哪种机制可以进一步优化静态调度的指令并开发ILP,因此编译器技术就显得十分重要。而动态乱序(OoO)执行处理器则可以在几百条指令的执行窗口内重新动态调度(编译后)指令。在第3章,我们会一步步讲解OoO处理器的发展,从Tomasulo算法开始一直到可以推测调度的推测执行处理器,这也是目前最先进的OoO处理器。乱序执行处理器是处理器体系结构设计的一个极端,由于其支持动态调度,因而随着并行指令数的增加会带来复杂性和功耗等问题。并行微体系结构设计的另一个极端是超长指令字(VLIW)结构。在这种结构中,在编译阶段就决定了所有的动作(包括什么时候取指、译码和开始执行),这极大地降低了硬件复杂性和功耗。而实际处理器设计可以在两个极端之间进行折中,显式并行指令计算(Explicity Parallel Instruction Computing,EPIC)就是这样的一个尝试。最后,处理器还通过向量微体系结构来开发细粒度并行,向量处理在性能和功耗方面都很有效,并且广泛用于多媒体和信号处理应用中。
第4章讲解存储层次结构在硬件层的特点。如今,需要多层次并发存储结构来为并行微体系结构提供足够的指令和数据。这包括非阻塞cache设计以及软硬件预取策略。这些方法必须保证内存行为的正确性。另一个理解并行体系结构的重要因素是虚拟存储系统。正是因为有了虚存,现代体系结构必须能处理精确异常,多处理器必须采取相关的机制来保证每个处理器虚存的一致性(在第5章中介绍)。
第6章主要讲解互连网络问题。互连网络连接系统部件(系统区域网络,SAN)或者片上资源(片上网络,OCN)。由于并行体系结构性能的提高需要允许多个部件的并行访问,因此互连网络的设计对性能和功耗都极其重要,设计空间很大。第6章提供了互连网络设计的完整介绍,包括性能模型、交换策略、网络拓扑、路由算法和交换结构等。
第5、7和8章是关于多处理器的。第5章给出了消息传递和共享内存多处理器的基本结构和机制。首先通过程序例子讲解编程模型和基本的应用编程接口,这样可以方便读者理解体系结构中需要的各种机制。该章分层给出了消息传递所需的基本体系结构支持,从各种消息传递原语到实现所需的基本交换协议,再到加速所需的相关硬件支持。第5章其余部分关注共享内存系统。共享内存系统有几种可行的组织方式,不过出于商业上的考虑,目前最主要的方式是利用现有的商业微处理器来搭建新的多处理器系统,这些现有的微处理器都有自己的cache。共享内存系统的每个处理器和片上多处理器的每个核都有自己的私有指令cache、数据cache和虚地址转换cache。因此必须采取某些机制保证它们在结构上的一致性。该章将介绍总线系统和分布式共享内存系统(cc-NUMA和COMA)这两大类结构。
第5章介绍了共享内存系统的体系结构,而第7章则主要解决共享内存多处理器的逻辑属性问题,包括同步、一致性和存储一致性模型,这三者之间有着紧密且微妙的联系。同步原语和对应的机制对于多线程程序的执行至关重要,必须要有硬件支持。在多个cache和缓存中同一个地址对应的多个备份需要保证一致性。共享内存系统最终的正确性在于存储一致性,它规定了访存的动态交错顺序。本书从静态调度处理器和动态调度处理器两方面描述了存储一致性模型的实现。第7章是本书中理论性最强的一章,但是也并不要求读者具备相关的理论背景。
第8章讲解片上多处理器(CMP)。由于具有集成密度高、通信延迟低的特点,因此CMP有可能带来新的、更简单高效的编程模型。在CMP环境中,CPU相对低廉,可以用于各种新型计算模式。本章包括CMP相关的诸多内容,如CMP体系结构、核内多线程、事务内存、推测多线程和辅助执行等。
最后,第9章关注计算机体系结构设计的量化评估模型。计算机体系结构的很多设计决策是基于一系列在面积、性能、功耗和可靠性等方面的权衡而得出的。任何旨在改进现有实现的设计都必须经过严格的量化评估以评价这些改进的有效性。因此,学生和实践人员需要理解探索设计空间的量化方法。在本章中,我们会介绍很多这类话题,比如模拟方法、采样技术、工作负载特征刻画方法等。
致谢
编写本书花费了5年时间,这是我们的本科生和研究生教学经验以及多年实践经验的结晶。并行计算机体系结构和并行处理无论在短期还是长期都扮演着重要的角色。因此,我们将在并行体系结构和并行编程方面继续努力教授计算机科学和计算机工程专业的学生。本书是我们对这一目标的贡献。
Michel Dubois
序言
我们从2005年开始从事多核和众核体系结构的研究,一直在寻找一本系统讲解并行体系结构的优秀入门教材和参考书,本书的出现令我们眼前一亮,这正是我们一直想要的那本教材。
本书的作者是并行计算机体系结构领域的知名学者,教材内容的权威性无需多言。在前言中,作者也给出了非常详细的章节纲要及学习指导,建议读者参考。此外,本书之所以是一本极其出色的教材,我们认为原因还在于其具有以下特色:
内容完备且易懂。本书在重点介绍最新的并行计算机体系结构的同时,对传统单核体系结构中的基本概念和原理也进行了简要介绍,并且讲解方式浅显易懂,即使计算机体系结构知识背景比较薄弱的读者也可以较快入门。
每一章自成体系,内容相对独立且完备。研究人员和工程人员可以有针对性地快速切入相关章节进行学习和查阅,教师在教学环节中也可以根据学生实际情况选择相关章节施教,比如难度较大的第7章更适合研究生课程。
针对体系结构量化评估工具编写了专门的章节。模拟器是计算机体系结构研究和教学中极其重要的工具,然而现有的体系结构教材中往往忽略了对这类工具的介绍。本书在第9章中对量化评估工具进行了系统全面的阐述,这对体系结构领域的初学者来讲是非常有价值的。
本书的翻译工作由范东睿、叶笑春、王达共同协作完成。在翻译过程中,我们也修正了原书中的一些小错误。不过由于我们的水平和精力有限,可能会引入新的错误,恳请大家不吝赐教。
本书的完成得益于中科院计算所许多老师和同学的无私支持。衷心感谢张志敏研究员对译稿部分章节的审校,感谢李文明、吴萌、向陶然、严明玉、李戈、张伍召、张承龙等对译稿的贡献。另外,本书的出版还得到了机械工业出版社的大力帮助,在此也对出版社各位同仁在翻译和审校等环节的辛勤付出表示感谢。
译者
2017年2月
媒体评论
Shubu Mukherjee,Cavium公司
这本书不仅可以帮助你清晰理解并行系统的原理,而且对于并行系统设计者来说也是不可多得的好书。
陈云霁,中国科学院计算技术研究所
未来的电子系统都会由内置微处理器组成,因此对体系结构的理解至关重要。从处理器的基本知识到内存结构再到片上多处理器,本书系统介绍了计算机体系结构的基本问题,通篇流畅,易于理解,是一本出色的工具书。
Uri Weiser,以色列理工学院
这本书对于理解基本的片上技术、互连网络的限制以及它们对于计算机体系结构设计的影响很有帮助。所有计算机系统相关领域的学生和开发人员都应该首先掌握平台无关的单核和多核基本原理,正如本书所呈现的一样。
Mateo Valero,巴塞罗那超算中心
在过去的几年里,处理器体系结构发生了由单核向多核的重大转变,这个领域中需要一本易懂且与时俱进的书。本书既可以作为了解多核和并行体系结构的入门书,也可以作为工程师和研究人员的参考书。
Olivier Temam,法国INRIA
高级计算机体系结构领域需要一本综合性强、权威性高但又浅显易懂的教科书和参考书,本书满足了这一需求。威斯康星大学三门关于计算机体系结构的课程所讲授的所有关键原理和概念,在本书中都得以呈现,并且组织良好、深思熟虑、易于教学,并没有用晦涩抽象的技巧以及大量的量化数据使得读者手足无措。特别是第8章讲述的片上多处理器的内容紧跟工业发展前沿,最后一章的量化评估更是点睛之笔,这些是本书能从同类书中脱颖而出的关键。
Mikko Lipasti,威斯康星大学麦迪逊分校
本书对于计算机系统的各个方面都有深刻的见解,是本领域中一本综合性强、系统性完善并且紧跟时代发展的书。本书经过精心编排,保证每章都独立、完备,使读者无需阅读整本书就可以理解每章的主题。本书内容丰富、连贯、清晰,书中的问题也利于培养创造性思维。我推荐此书作为所有计算机设计领域的研究生、青年研究者和工程师的必读书。
张立新,中国科学院计算技术研究所
并行体系结构是计算机系统获得高性能和高效率的关键。本书从多个层面讲述了并行体系结构的知识,包括从简单的晶体管到完全成熟的CMP等内容,学习本书的过程将是一段难忘的旅程。
Ronny Ronen,Intel公司
多核芯片使得并行体系结构无处不在,也使得对并行体系结构的理解变得非常必要。本书系统地讲解了并行系统体系结构,并以简洁的方式介绍了cache一致性和内存一致性的基本原理,是用于研究生一学期教学的理想教科书。
Lawrence Rauchwerger,得克萨斯农工大学
本书是现在并行体系结构方向最好的一本书,我计划在课上使用这本书,它以清晰明了的方式讲述了并行计算最前沿的知识。
Trevor Mudge,密歇根大学