并行计算机体系结构第三章.ppt
《并行计算机体系结构第三章.ppt》由会员分享,可在线阅读,更多相关《并行计算机体系结构第三章.ppt(215页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 流水和向量处理3.1提高计算机速度的措施MIPS=IPC*fc其中其中IPC为每拍流出的指令条数。提高为每拍流出的指令条数。提高IPC和和fc是提高是提高计算机速度最直接最有效的方法。计算机速度最直接最有效的方法。提高提高IPC:增加每拍并行流出的指令条数和配置更多的:增加每拍并行流出的指令条数和配置更多的功能部件。空间并行。功能部件。空间并行。提高提高fc:功能部件应该能在更高的频率下工作。时间平:功能部件应该能在更高的频率下工作。时间平行。行。可以用可以用P=O(s*f)衡量系统的潜在性能,)衡量系统的潜在性能,s是与设备是与设备量成正比的功能部件并行度,量成正比的功能部件并行度,
2、f是主频。是主频。3.1.1 提高频率提高系统的频率是提高系统性能的最直接的方法,但提高系统的频率是提高系统性能的最直接的方法,但是频率的提高具有很大的难度:是频率的提高具有很大的难度:1.器件的速度和集成度器件的速度和集成度 2.流水线分站的代价和效率流水线分站的代价和效率 3.高速信号传输高速信号传输 4.时钟沿的离散时钟沿的离散 5.高密度组装工艺和冷却技术高密度组装工艺和冷却技术*往往当通过提高频率来提高计算机的速度不能满足要往往当通过提高频率来提高计算机的速度不能满足要求时,我们才考虑空间并行性求时,我们才考虑空间并行性3.1.1 空间并行为了达到更高的主频,需要特殊技术并且代价巨大
3、。为了达到更高的主频,需要特殊技术并且代价巨大。这导致了大规模并行处理系统这导致了大规模并行处理系统MPP的出现。的出现。可以设置多个功能部件支持向量、超标量、超长指令可以设置多个功能部件支持向量、超标量、超长指令字和超流水结构。空间并行性可以有效提高计算机速字和超流水结构。空间并行性可以有效提高计算机速度,速度提高的最大倍数度,速度提高的最大倍数=e 性价比:性价比:PCR=1/(T/k+td)(C+kd)其中其中k为流水线站数,为流水线站数,T为每段执行时间,为每段执行时间,td为站流水为站流水线的延迟时间,线的延迟时间,C为功能部件的价格。为功能部件的价格。流水线的设计原理令(令(PCR
4、)=0,得到,得到因为因为(PCR)0,所以此时,所以此时k站流水线的性价比最高站流水线的性价比最高同时为了减少站寄存器的位数,分段时往往选在连线最少同时为了减少站寄存器的位数,分段时往往选在连线最少的部位。如果每段时间无法保持一致,则的部位。如果每段时间无法保持一致,则M(最大段执(最大段执行时间)和行时间)和td同时决定了流水线的工作周期。其频率为同时决定了流水线的工作周期。其频率为1/(M+td).由于工程实现时元件的布局和器件时间参数离散等原因,由于工程实现时元件的布局和器件时间参数离散等原因,到达各站寄存器的时钟信号时离散的。到达各站寄存器的时钟信号时离散的。流水线的设计原理设相邻两
5、站的最大离散值为设相邻两站的最大离散值为,则工作频率降低为,则工作频率降低为1/(M+td+)。书本书本35-36页,图页,图3.2 信号穿透问题。信号穿透问题。非线性流水线的调度非线性流水线调度的任务是要找出一个最小的循环周非线性流水线调度的任务是要找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。效率最高。1.1.非线性流水线的表示非线性流水线的表示线性流水线能够用流水线连接图唯一表示线性流水线能够用流水线连接图唯一表示对于非线形流水线
6、,连接图不能唯一表示工作流程,对于非线形流水线,连接图不能唯一表示工作流程,因此,引入流水线预约表因此,引入流水线预约表例如:例如:非线形流水线的连接图和预约表非线形流水线的连接图和预约表 一张预约表可能与多个流水线连接图相对应 一个流水线连接图对应于多张预约表2.2.非线性流水线的冲突非线性流水线的冲突 启动距离:连续输入两个任务之间的时间间隔启动距离:连续输入两个任务之间的时间间隔 流水线冲突:几个任务争用同一个流水段流水线冲突:几个任务争用同一个流水段3.3.无冲突调度方法无冲突调度方法由由E.S.DavidsonE.S.Davidson及其学生于及其学生于19711971年提出年提出禁
7、止向量禁止向量:预约表中每一行任意两个:预约表中每一行任意两个“”之间距离之间距离的集合。上例中为的集合。上例中为(3 3,4 4,6 6)冲突向量冲突向量:C(CmCm-1C2C1)其中:其中:m是是禁止向量中的最大值。禁止向量中的最大值。如果如果i在禁止向量中,则在禁止向量中,则Ci1,否则,否则Ci0。上上例中例中C C(101100)(101100)例:一条例:一条4 4功能段的非线性流水线,每个功能段的延功能段的非线性流水线,每个功能段的延迟时间都相等为迟时间都相等为t ,它的预约表如下:,它的预约表如下:(1)(1)写出流水线的禁止向量和初始冲突向量。写出流水线的禁止向量和初始冲突
8、向量。(2)(2)画出调度流水线的状态图。画出调度流水线的状态图。(3)(3)求最小启动循环和最小平均启动距离。求最小启动循环和最小平均启动距离。(4)(4)求平均启动距离最小的恒定循环。求平均启动距离最小的恒定循环。(5)(5)按照最小启动循环连续输入按照最小启动循环连续输入4 4个任务,求流水线个任务,求流水线实际吞吐率。实际吞吐率。解:解:(1)(1)禁止向量为:禁止向量为:(2(2,4 4,6)6)初始冲突向量:初始冲突向量:S=101010S=101010(2)(2)构造状态图构造状态图 S S逻辑右移逻辑右移2 2、4 4、6 6位时,不作任何处理,位时,不作任何处理,逻辑右移逻辑
9、右移1 1、3 3、5 5和大于等于和大于等于7 7时:时:S S右移右移1 1位之后:位之后:010101101010010101101010111111111111,S S右移右移3 3位之后:位之后:000101101010000101101010101111101111,S S右移右移5 5位之后:位之后:000001101010000001101010101011101011,S S右移右移7 7位或大于位或大于7 7位后:还原到它本身。位后:还原到它本身。101111101111右移右移5 5位之后:位之后:000001101010000001101010101011101011,
10、101011101011右移右移3 3位之后:位之后:000101101010000101101010101111101111,101011101011右移右移5 5位之后:位之后:000001101010000001101010101011101011。简单循环:简单循环:状态图中各种冲突向量只经过一次的启动循环。状态图中各种冲突向量只经过一次的启动循环。(3)(3)最小的启动循环最小的启动循环为(为(1 1,7 7)和()和(3 3,5 5),平均启动距离为平均启动距离为 4 4。(4)(4)启动距离最小的恒定循环为(启动距离最小的恒定循环为(5 5)(4)(4)按照最小启动循环(按照最小
11、启动循环(1 1,7 7)连续输入)连续输入4 4个任务,流水线实际个任务,流水线实际吞吐率为:吞吐率为:1/1/(4 4 t)数据相关(局部相关)数据相关:在执行本条指令的过程中,如果用到的指数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址量等是前面指令的执行结果,这令、操作数、变址量等是前面指令的执行结果,这种相关称为数据相关。种相关称为数据相关。控制相关:由条件分支指令、转子程序指令、中断等控制相关:由条件分支指令、转子程序指令、中断等引起的相关。引起的相关。解决数据相关的方法有两种:解决数据相关的方法有两种:推后处理推后处理设置专用路径设置专用路径1.1.指令相关指令相关
12、发生指令相关的情况:发生指令相关的情况:n:STORE R1,STORE R1,n+1+1 n+1+1:满足关系:满足关系:结果地址结果地址(n)指令地址指令地址(n+1)+1)当第当第n条指令还没有把执行结果写到主存之前,取出条指令还没有把执行结果写到主存之前,取出的第的第n+1+1条指令显然是错误的。条指令显然是错误的。在在k个流水段的流水线处理机中,第个流水段的流水线处理机中,第n条指令要修改从条指令要修改从第第n+1到第到第n+k 指令中的任意一条指令,都可能指令中的任意一条指令,都可能造成程序执行结果发生错误。造成程序执行结果发生错误。在采用先行控制方式的处理机中,如果执行部件正在在
13、采用先行控制方式的处理机中,如果执行部件正在执行第执行第n条指令,与下述情况之一发生相关,都可条指令,与下述情况之一发生相关,都可能造成程序执行结果发生错误能造成程序执行结果发生错误:存放在先行操作栈中的指令存放在先行操作栈中的指令正在指令分析器中分析的指令正在指令分析器中分析的指令已经预取到先行指令缓冲栈中的指令已经预取到先行指令缓冲栈中的指令更严重的是:有些分支指令,可能已经在指令分析器更严重的是:有些分支指令,可能已经在指令分析器中执行完成。中执行完成。解决指令相关的根本办法是:解决指令相关的根本办法是:在程序执行过程中不允许修改指令。在程序执行过程中不允许修改指令。现代程序设计方法要求
14、程序具有再入性,可以被递归现代程序设计方法要求程序具有再入性,可以被递归调用等,也要求不修改指令。调用等,也要求不修改指令。在在IBM370IBM370系列机中,用系列机中,用“执行执行”指令来解决:在程序指令来解决:在程序执行过程中既能够修改指令,程序又具有再入性。执行过程中既能够修改指令,程序又具有再入性。“执行执行”指令执行由第二地址指令执行由第二地址(X(X2 2)+(B)+(B2 2)+D)+D2 2)决定的主存数据区决定的主存数据区中的指令。中的指令。2.2.主存操作数相关主存操作数相关(相邻两条指令之间出现对主存同相邻两条指令之间出现对主存同一单元要求先写后读的关联一单元要求先写
15、后读的关联)发生主存操作数相关的指令序列:发生主存操作数相关的指令序列:n:OP A1,A2,A3 ;A1(A2)OP(A3)n+1:OP A1,A2,A3 ;A1(A2)OP(A3)出现下列情况之一,就发生主存操作数相关:出现下列情况之一,就发生主存操作数相关:A1(n)A2(n1)A1(n)A3(n1)解决办法解决办法(出现概率低出现概率低,不宜采用设置专用通路不宜采用设置专用通路):对于访问主存储器的请求,写结果的优先级高于读操对于访问主存储器的请求,写结果的优先级高于读操作数,实现自动推后处理。作数,实现自动推后处理。3.3.通用寄存器数据相关通用寄存器数据相关发生寄存器数据相关的可能
16、性很大,影响面也很大发生寄存器数据相关的可能性很大,影响面也很大 n:OP R1,A2 ;R1(R1)OP(A2)n+1:OP R1,R2 ;R1(R1)OP(R2)发生发生R1(n)R1(n1)称为称为R1数据相关。数据相关。发生发生R1(n)R2(n1)称为称为R R2数据数据相关。相关。解决通用寄存器数据相关的方法:解决通用寄存器数据相关的方法:方法一:把读操作数、写运算结果与指令执行合在一方法一:把读操作数、写运算结果与指令执行合在一个节拍。个节拍。采用一种典型的运算器结构,通用寄存器到运算器采用一种典型的运算器结构,通用寄存器到运算器之间建立有直接数据通路,即不设置缓冲寄存器或之间建
17、立有直接数据通路,即不设置缓冲寄存器或锁存器。锁存器。当发生下述情况时,不能采用这种方法:当发生下述情况时,不能采用这种方法:当寄存器个数多时,读写寄存器的时间长当寄存器个数多时,读写寄存器的时间长当功能部件的执行时间比较长,或要求指令的执行时当功能部件的执行时间比较长,或要求指令的执行时间短时间短时 方法二:建立相关专用通路方法二:建立相关专用通路(ByPass)(ByPass)由于发生寄存器数据相关的情况很普遍,一般计算机由于发生寄存器数据相关的情况很普遍,一般计算机系统都采用专用数据通路,以增加硬件为代价减少系统都采用专用数据通路,以增加硬件为代价减少速度损失。速度损失。在运算器的输出端
18、到锁存器输入端之间建立一条专用在运算器的输出端到锁存器输入端之间建立一条专用的数据通路。的数据通路。变址相关:变址相关:在采用变址寻址方式的处理机中,由于变在采用变址寻址方式的处理机中,由于变址量放在寄存器中,因此,可能发生与通用寄存器址量放在寄存器中,因此,可能发生与通用寄存器数据相关类似变址相关,发生概率较高,通常多采数据相关类似变址相关,发生概率较高,通常多采用设置专用通路的方法解决相关问题。用设置专用通路的方法解决相关问题。4.LOAD4.LOAD相关相关 LOAD操作的执行时间可能比较长 n:LOAD R1,A ;R1(A)n+1:ADD R1,R2 ;R1(R1)OP(R2)如果
19、R1(n)R2(n1),或 R1(n)R1(n1),则发生LOAD数据相关。解决方法:解决方法:方法一:方法一:由编译器在由编译器在LOADLOAD之后插入不发生数据相关的之后插入不发生数据相关的指令,指令,由于由于LOADLOAD的执行时间不确定,不能根本解决的执行时间不确定,不能根本解决问题问题方法二:方法二:由硬件自动插入空操作,直到由硬件自动插入空操作,直到LOADLOAD操作完成操作完成在单条流水线处理机中,也可以停止节拍发生器,直在单条流水线处理机中,也可以停止节拍发生器,直到数据从存储器中读出为止。到数据从存储器中读出为止。控制相关(全局相关)因程序的执行方向可能被改变而引起的相
20、关,也称为因程序的执行方向可能被改变而引起的相关,也称为全局相关全局相关。主要包括:主要包括:无条件转移、一般条件转移、复合条件转无条件转移、一般条件转移、复合条件转移、中断移、中断等。等。1.1.无条件转移无条件转移在流水线处理机中,无条件转移指令不进入执行流水在流水线处理机中,无条件转移指令不进入执行流水段,一般在指令译码阶段就实际执行完成。段,一般在指令译码阶段就实际执行完成。如果在处理机中设置有指令先行缓冲栈,则要全部或如果在处理机中设置有指令先行缓冲栈,则要全部或部分作废先行指令缓冲栈中的指令。部分作废先行指令缓冲栈中的指令。如果转移目标指令如果转移目标指令L L不在先行指令缓冲栈中
21、不在先行指令缓冲栈中,则要将,则要将先行指令缓冲栈中的所有指令全部作废,并等待取先行指令缓冲栈中的所有指令全部作废,并等待取出转移目标指令出转移目标指令L L。如果转移目标指令如果转移目标指令L L在先行指令缓冲栈中在先行指令缓冲栈中,只要作废,只要作废先行指令缓冲栈中的部分指令。先行指令缓冲栈中的部分指令。无条件转移指令一般对指令执行部件的工作不会造成无条件转移指令一般对指令执行部件的工作不会造成影响。影响。为进一步减少无条件转移指令造成的影响,为进一步减少无条件转移指令造成的影响,在先行指在先行指令缓冲栈的入口处增设一个专门处理无条件转移指令缓冲栈的入口处增设一个专门处理无条件转移指令的指
22、令分析器令的指令分析器2.2.一般条件转移一般条件转移 k:;置条件码CC k+1:JMP(CC)L ;如果CC为真转向L L:当条件码是上一条指令产生时,相关最严重当条件码是上一条指令产生时,相关最严重无论转移是否成功,条转移指令都在指令分析阶段就无论转移是否成功,条转移指令都在指令分析阶段就已经执行完成。已经执行完成。无论转移不成功或不成功,指令分析器要停顿一段时无论转移不成功或不成功,指令分析器要停顿一段时间,等待条件码产生。间,等待条件码产生。如果转移成功:指令如果转移成功:指令L L已经在先行指令缓冲栈,指令已经在先行指令缓冲栈,指令分析器接着分析器接着“分析分析L L”,如果指令,
23、如果指令L L不在先行指令缓不在先行指令缓冲栈,指令分析器要等待一个周期。冲栈,指令分析器要等待一个周期。转移不成功,对程序执行影响不大,转移不成功,对程序执行影响不大,当转移成功时,不仅指令执行过程变成完全串行,而当转移成功时,不仅指令执行过程变成完全串行,而且要作废先行指令缓冲栈中的大量指令。且要作废先行指令缓冲栈中的大量指令。在采用流水线方式的处理机中,要通过软件与硬件的在采用流水线方式的处理机中,要通过软件与硬件的多种手段来近可能地降低转移成功的概率,减少转多种手段来近可能地降低转移成功的概率,减少转移成功造成的影响。移成功造成的影响。3.3.复合条件转移复合条件转移 k k:OP L
24、;OP L;产生条件码,并决定是否转向产生条件码,并决定是否转向L L L L:如果转移不成功:不造成任何影响,就象普通的运算如果转移不成功:不造成任何影响,就象普通的运算型指令一样型指令一样如果转移成功:造成的影响比一般条件转移指令还要如果转移成功:造成的影响比一般条件转移指令还要大得多。大得多。全部或部分作废先行指令缓冲栈、先行操全部或部分作废先行指令缓冲栈、先行操作栈、先行读数栈和指令分析器中的指令。作栈、先行读数栈和指令分析器中的指令。必须采取策略,减小转移成功造成的影响。必须采取策略,减小转移成功造成的影响。条件分支对流水线的影响处理好条件转移和中断的关键问题有两个:处理好条件转移和
25、中断的关键问题有两个:要确保流水线能够正常工作要确保流水线能够正常工作减少因减少因“断流断流”引起的吞吐率和效率的下降引起的吞吐率和效率的下降1.1.条件分支的处理方法条件分支的处理方法条件转移指令对流水线的影响很大,必须采取措施来条件转移指令对流水线的影响很大,必须采取措施来减少这种影响。可能的措施有:减少这种影响。可能的措施有:(1)(1)延迟转移技术和指令取消技术延迟转移技术和指令取消技术只能用于单流水线处理机中,且流水线的级数不能太只能用于单流水线处理机中,且流水线的级数不能太多;多;据统计,据统计,编译器调度一条指令成功的概率在编译器调度一条指令成功的概率在90以以上,而调度两条指令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算机体系结构 第三
限制150内