《计算机系统结构》PPT课件.ppt
《《计算机系统结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《计算机系统结构》PPT课件.ppt(111页珍藏版)》请在三一办公上搜索。
1、计算机系统结构,主讲 蔡启先,第8章 多处理器系统,8.1 指令级并行性的限制和超线程技术,8.2 多处理器构成的系统结构,第8 章 多处理器系统,8.3 多处理器的Cache一致性,8.5 集群系统,8.4 多处理器系统的同步机制,8.6 多处理器系统的程序并行性,8.7 曙光5000超级计算机,第8章 多处理机系统Chapter 8 Multiprocessers,8.1 指令级并行性的限制和超线程技术 8.2 多处理器构成的系统结构 8.3 多处理器的Cache一致性8.4 多处理器系统的同步机制 8.5 集群系统 8.6 多处理器系统的程序并行性 8.7 曙光5000超级计算机本章小结
2、,8.1指令级并行性的限制和超线程技术,指令级并行性的限制 超线程技术 限制单处理器发展的其它主要因素,8.1.1 指令级并行性的限制,1.理想处理器 2.理想处理器难以接近(1)转移预测、重命名和相关性分析上依靠静态的编译分析是不可能完美的,动态分析受窗口局限(2)错误的预测限制了指令的并行度(3)寄存器的数目有限(4)此外,每时钟周期发射指令数量、功能单元及单元延迟、寄存器文件端口、功能单元队列、对转移发射的限制、对存储器并行访问的限制以及对指令提交的限制等都是影响指令级并行的因素。,8.1.2 超线程(Hyper-Threading)技术,超线程技术是指在单处理器中采用的线程级并行技术,
3、又称简单多线程技术。超线程有两种主要方法:细粒度超线程和粗粒度超线程。同时多线程(SMT)是超线程的一个改进版本,它使用多发射和动态调度机制在开发线程级并行的同时开发指令级并行。,8.1.3 限制单处理器发展的其它主要因素,尽管单处理器在提高指令集并行及采用超线程并行技术方面做出了很大努力,但在如下几个方面受到局限:(1)指令级并行约束及超线程技术的限制已经不太可能提高更多的并行性。(2)仅靠提高频率的办法,难以实现性能的突破。反而带来功耗和内存、I/O速度平衡的问题。(3)不断增加的单核芯片面积提高了生产成本,并且使得设计和验证所花费的时间变得更长。(4)功耗与性能比问题日渐突出。,多核处理
4、器结构 多处理器结构 多处理器并行处理定量分析和所遇到的问题,8.2 多处理器构成的系统结构,多核处理器是指在一个芯片上集成多个处理器核心,即CMP(Chip Multiprocessor,CMP单芯片多处理器)。这多个核心间联系非常紧密,甚至共享L1、L2和L3 Cache等。CMP通常可分为同构CMP和异构CMP 在存储层次上,CMP结构的互连采用共享二级或三级Cache的CMP结构,每个处理器核心拥有私有的一级或二级Cache,且所有处理器核心共享下一级 Cache。核间通信机制目前有两种,一种基于总线共享的Cache结构,一种基于片上的互连结构。,8.2.1 多核处理器结构,CMP在实
5、际使用中具有如下优点:(1)微处理器厂商一般采用现有的成熟单核处理器作为处理器核心,从而可缩短设计和验证周期,节省研发成本。(2)控制逻辑简单,扩展性好,易于实现。(3)通过动态调节电压/频率、负载优化分布等,可有效降低CMP功耗。(4)CMP采用共享Cache或者内存的方式,多线程的通信延迟较低。,8.2.1 多核处理器结构,这种结构的特性是:(1)结构中的每个处理器取自己的指令并对自己的数据进行操作,即每个处理器执行自己的指令流,很容易实现多线程并行机制。(2)MIMD灵活性强;(3)MIMD结构中的众多处理器可以由同一种处理器来组成,8.2.2 多处理器结构,8.2.2.1 MIMD计算
6、机概述,按照多处理器组成的规模,多处理器大致可分为4个层次。(1)多核处理器(2)中小规模多处理器(3)大规模多处理器(4)集群 商业集群和客户集群,8.2.2.1 MIMD计算机概述,两种典型的结构:集中式共享存储器系统结构和分布式存储器系统结构。1集中式共享存储器系统,8.2.2.2 MIMD计算机的基本结构,集中式共享存储器多处理器系统的优点是:(1)可以与传统的单处理器系统软件兼容。(2)程序设计容易。(3)通信开销小。集中式共享存储器的结构组成的处理器不能太多,主要受到访存冲突和互联网络的带宽和复杂性的限制,2分布式存储器多处理器系统,分布式存储器的主要优点是:如果大部分访存是对节点
7、内的本地存储器进行的,这样做是增大存储器带宽的比较经济的方法;缩短了本地存储器访问的时延。具有较好的扩展性。主要缺点是由于处理器不再共享单一集中存储器,处理器间的数据通信在某种程度上变得更加复杂,且时延也更大。,分布式存储器有两种进行处理器之间通信的方式。一种是分布式共享存储器(Distributed Shared-Memory,简称DSM)系统,它将物理上分开的存储器在逻辑上统一为一个地址空间,通过load和store操作在统一的地址空间上隐式地传递数据。另一种是各个处理器都有自己的私有地址空间,它们在逻辑上分散,相互独立。数据通信往往通过显式地在处理器之间传递消息来完成。,Gustafso
8、n定律:扩展加速比=N+(1-N)*S其中,N表示处理器的数量,S表示程序中串行部分的比例。虽然多处理器有利于程序级、进程级乃至线程级的并行处理,但存在着两个问题是并行开发所要面对的。一是程序可获得的并行度是有限的。二是执行模块之间的通信开销。这限制了多处理器系统的性价比的提高。要解决这两个问题,一是在软件中采用更好的并行算法来提高并行度。二是改进系统结构,如在硬件上缓存共享数据,在确保存储器一致性的前提下,如何使用Cache来减少远程访问频率。三是在软件上重新构造数据来尽可能增加本地访问。此外,还可以使用多线程或预取技术来减少时延的影响。,8.2.3 多处理器并行处理定量分析和所遇到的问题,
9、8.3 多处理器的Cache一致性,对称式共享存储器系统和多处理器的Cache一致性 分布式共享存储器系统和基于目录的Cache一致性,8.3.1 对称式共享存储器系统和多处理器的Cache一致性,对称式共享存储器系统 多处理器的Cache一致性 监听式协议实现多处理器的Cache一致性,8.3.1.1 对称式共享存储器系统,8.3.1.1 对称式共享存储器系统,对称式共享存储器系统支持共享和私有数据的缓存,私有数据被单个处理器使用,而共享数据则被多个处理器使用,基本上是通过读写共享数据完成处理器之间的通信。把一个私有数据缓存之后,支该数据的访问就可以在Cache中形成副本,这样做除了会减少访
10、问时延和降低对存储器带宽的要求外,还能减少多个处理器同时读取共享数据时的竞争现象。然而,把共享数据放入Cache又出现了一个新的问题:Cache一致性。,8.3.1.2 多处理器的Cache一致性,所谓多处理器的Cache一致性问题,是指由于缓存共享数据,两个不同的处理器所保存的存储器视图可能是通过各自的Cache得到的。因此,如果没有其它的防范措施,则会导致两个处理器分别得到两个不同的值。解决多处理器的Cache一致性问题的方法有软件方法、总线监听法和目录表法。,8.3.1.2 多处理器的Cache一致性,软件方法主要依靠编译程序进行分析,同时需要硬件机制的配合,使共享信息安排在主存中,而避
11、免将它们存放到Cache中。这需要一种机制,使软件能够对数据进行标记,并按时序进行调度。另外对于具有良好结构的循环级并行程序,且在循环中需要显式地复制数据,使用软件方法有可能大大降低访存开销。软件方法的优点是不需要硬件提供很多支持,减少了硬件的复杂性,降低了对互连网络通信量的要求。其局限性在于编译器进行一致性处理的能力是很有限的,并且只能用于共享存储器的系统。,8.3.1.3 监听式协议实现多处理器的Cache一致性,监听式协议对于采用总线互连共享主存的多处理器系统,可利用总线的播送来实现。它让各个处理器上的Cache控制器对总线进行监视或监听,来确定它们是否含有总线或交换机上请求的数据块的副
12、本,从而跟踪共享数据,以保证Cache一致性。监听式协议使用硬件解决办法。有两种方法可以实现监听式协议:写无效协议和写更新或写广播协议。,8.3.2 分布式共享存储器系统和基于目录的Cache一致性,各个节点带有目录的分布式存储器多处理器系统所谓目录式协议,是指把物理存储器的共享状态存放在一个地点,称之为目录。目录表中每项保存了每个Cache数据块的使用情况。为了防止访问目录表成为瓶颈,需要使目录随存储器分布。,各个节点带有目录的分布式存储器多处理器系统,一般目录表中记录的Cache数据块的状态主要有:共享:该Cache数据块具有正确的副本。未缓存:没有任何一个处理器含有该数据块的副本。修改:
13、只有一个处理器拥有该Cache数据块的正确副本并且对该块执行过写操作,因此其它存储器中与之对应的副本是无效的。这个处理器成为该块的所有者。无效:由于某个处理器执行写操作,使得本处理器含有该数据块的副本被标记为无效状态。,目录表的具体作法可分为3种。(1)全映象目录表法。(2)有限目录表法。(3)链式目录表法。目录式协议的实现要占据一些存储空间,比监听式协议的开销略微偏高,但是可以用来扩展更多的处理器,很适合于分布式共享存储器系统。监听式协议要求处理器在修改数据块时向所有处理器广播Cache缺失的信息,这种方法实现简单,但也限制了其扩展性。,8.4 多处理器系统的同步机制,基本硬件原语8.4.2
14、 同步机制的实现 多线程同步机制带来的问题,8.4.1 基本硬件原语,实现多处理器系统同步的关键是要有一个能够以原子方式对存储器执行读写操作的硬件原语集合。硬件原语可有多种不同的形式,但都必须支持原子方式的读写操作,并能够返回操作是否成功的信息。这些硬件原语是构造多种不同的用户层同步操作的基本构件,比如锁和屏障等。一般来说,硬件原语对应用程序员是透明的,而是由系统程序员用这些硬件原语构建一个同步库来支持线程的同步机制。,基本的硬件原语,(1)原子互换。典型的构建同步原语的操作,它将一个寄存器中的值与一个存储器中的值进行互换。用这种原语可建立基本的同步机制。例如可建立一个简单的锁(一个共享的变量
15、),其中0表示锁是打开的,1表示锁是关闭的。如果某个处理器要访问存储器,可通过将寄存器中的1与存储器中的锁的值交换,若返回值为1,表明有其它处理器占用了该锁,不能访问;若返回值为0,表明无其它处理器占用,并已被该处理器占用,且此时存储器锁值为1,在这个处理器将锁释放之前,其它处理器无法占用。如果有两个处理器试图同时进行这种互换,这就发生了竞争。此时,只能有一个处理器首先执行互换并得到返回值0,而另一个处理器执行互换时得到返回值1。应用互换原语实现同步的关键是这种操作具有原子性:互换是不可分割的,两个同时进行的互换操作将被排序进行,不可能进行这种互换时都返回0值。,基本的硬件原语,(2)测试并置
16、位(test-and-set)。这是许多早期的多处理器系统采用的同步操作。它先对一个数值进行测试,若该数值通过了检测则执行设置。例如在测试数值为0时将其设置为1,这与前述原子互换类似。(3)读取并加1(fetch-and-increment)。它返回存储器中的值并以原子操作的方式使存储器中的值加1。若用0表示同步变量未被占用,则可以像使用原子互换一样得到类似的结果。当然,这类操作还有其它用途。,基本的硬件原语,(4)读取并更新(fetch-and-update)。这是一种新型的同步原子操作,可以包含上述同步原语的功能。这一对指令包括一条专门的装载指令,称为链接装载(load linked)或上
17、锁装载(load locked)即LL指令;还包括一条称为条件存储(store condition)即SC指令。LL指令和SC指令按顺序执行。如果LL指令指定的存储单元的地址值在对应的SC指令执行之前被改变了,则条件存储失败。如果处理器在这两条指令之间作了线程切换,则条件存储也失败。SC指令返回一个数值,成功返回1,失败返回0。这是一种非阻塞机制,它不采用锁的操作,不会导致其它线程的阻塞,可以避免死锁的发生。,8.4.2 同步机制的实现,用一致性机制实现锁 屏障同步的实现 事务存储器,8.4.2.1 用一致性机制实现锁,基于原子操作,就可以利用多处理器的一致性来实现自旋锁(spin lock)
18、。自旋锁是指处理器通过循环的方法来不断尝试取得的锁。自旋锁适用于对锁的占用时间很短并且上锁时间很快的情况。下面的代码实现原子互换来锁定R1指定的自旋锁:ADDIR2,R0,#1;让R2=0lockit:EXCHR2,0(R1);互换,将0写 入锁变量 BNEZR2,lockit;若未锁定继续尝试,虽然自旋锁的方案简单,但互斥的锁操作会带来较大的通信流量,对拥有较多数目的处理器系统来说会带来困难。一种解决办法是将锁的竞争分散到多个锁上,避免频繁进行Cache块的更新。还有采用链接装载和条件存储机制来实现非阻塞自旋锁等。,8.4.2.2 屏障同步的实现,屏障(Barrier)是一种同步操作,它要求
19、各线程等待,直到所有线程都到达屏障。屏障同步函数需要对到达的线程数量进行计数,线程计数器是一个共享变量。下面程序可实现屏障同步函数:lock(counterlock);/上锁,计数器锁的更新保护是原子的if(count=0)release=0;/首次到达的线程复位release标志count=count+1;/对到达的线程计数unlock(counterlock);/解锁if(count=total)/若计数值达到必须到达屏障同步函数的线程数count=0;/则复位计数器release=1;/release为1表示所有线程已到达屏障elsespin(release=1);/否则继续等待,直到所
20、有线程到达屏障,8.4.2.2 屏障同步的实现,在大量处理器构成的系统中,可使用组合树的数据结构来实现屏障同步机制。这种方式将锁资源的竞争分解成层次化的树型结构的竞争。,8.4.2.3 事务存储器,事务存储器(transaction memory)是一种解决多线程同步和互斥问题、协调多线程对同一个存储器的访问方式的硬件技术,是一种非互锁的机制,能使系统并行地执行原子操作。这里事务被定义为锁的作用范围。每个事物由一个线程试探性地执行而不请求锁。如果事务执行顺利,它将提交无需其它动作;如果事务执行中检测到冲突,该事物则整体放弃,方法是进行事物的回滚(roll back)并重新开始,直至事务成功提交
21、。在事务没有成功提交之前,其操作结果不会对其它线程产生影响。事务执行由线程中的一组指令构成,它具有串行性、分离性、原子性和一致性。事务存储器必须实现存储器的分离机制、冲突检测机制、原子提交机制和回滚机制。,8.4.2.3 事务存储器,硬件事务存储器实际上将事务的访存限制在本地Cache中,所修改的数据在提交时才被写回共享存储器,在提交之前不会影响其它线程。其它线程如果对本事务修改的数据项进行访问将导致线程放弃。基于软件的事务存储器使用软件来管理事务,它可以建立在Cache一致性机制和前述同步机制的基础上。与软件的互斥和锁机制相比,事务存储器由于可以消除共享存储器中锁变量竞争引起的大量访存操作,
22、并消除了死锁操作,因而具有更高的性能。,8.4.3 多线程同步机制带来的问题,(1)数据竞争数据竞争是由于各线程对共享数据读-写访问和写-写访问顺序的不确定性引起的。(2)同步同步是解决数据竞争的措施,目的是使数据访问按一定的顺序进行,但是同步机制会带来许多复杂性和一定的开销。(3)线程停顿线程停顿是同步操作带来的后果。在采用互斥量对共享资源进行锁定时,如果某个互斥量没有被解锁,则会使等待这个锁的线程停顿。,8.4.3 多线程同步机制带来的问题,(4)死锁死锁是线程无限期的停顿现象。它通常出现在对资源的占有和对其它资源的等待出现环形依赖关系的时候。(5)伪共享伪共享是线程之间的非真正的数据共享
23、引起的相关性。常见的有Cache数据块的伪共享现象。本来两个线程并没有真正共享同一个数据变量,但由于两个线程的访问数据都在同一个Cache块中,从而导致对该数据块的争用。这种现象会使系统的性能下降。,8.5 集群系统,集群系统及其特点 概述 集群系统的分类 集群系统的特点 集群系统的关键技术,集群系统及其特点,多处理器系统可以在不同的层次上实现,根据硬件实现的方式有芯片级、板卡级、机柜级等。集群(cluster)系统是以板卡级或机柜级多处理器系统为节点,通过标准局域网络构成的并行计算机系统,又称机群系统。集群系统中的每一个节点都是完整的能独立工作的计算机系统,这些计算机系统可以是同构的,也可能
24、是异构的,它们通过高速通信网络,并在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效协同并行完成特定的任务。,8.5.1.1 概述,集群系统的发展简介,集群系统的研究与开发工作是从二十世纪八十年代开始的,它起源于集群系统的良好的性能可扩展性(scalability)。尽管通过增加CPU个数和内存容量等方法来提高性能,由此出现了向量机、对称多处理机(SMP)等,但是当CPU的个数超过某一阈值,象SMP多处理机系统的可扩展性就变得极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的
25、。,集群系统的发展简介,1980年中后期10M以太网问世和1990年PVM(Parallel Virtual Machine)的发布,使集群系统有了可移植的并行编程环境;1991年开放源码的Linux操作系统的发布为集群系统的研究注入了新的活力,1993年Berkeley COW引起了巨大的反响。从此集群计算技术被广为关注,并迅速发展。从互联网中心服务器的变化来看,可以清晰地观察到集群结构是中心服务器的发展趋势。,90年代以前,中心服务器一般都用大型机(Mainframe)。大型机可以完成一切的应用和服务,用户从终端通过网络完成应用。这种应用模式带来许多的好处:应用集中、比较好部署、系统监控、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统结构 计算机系统 结构 PPT 课件
链接地址:https://www.31ppt.com/p-5604263.html