并行计算机体系结构第三章.ppt
《并行计算机体系结构第三章.ppt》由会员分享,可在线阅读,更多相关《并行计算机体系结构第三章.ppt(215页珍藏版)》请在三一办公上搜索。
1、第三章 流水和向量处理,3.1提高计算机速度的措施,MIPS=IPC*fc其中IPC为每拍流出的指令条数。提高IPC和fc是提高计算机速度最直接最有效的方法。提高IPC:增加每拍并行流出的指令条数和配置更多的功能部件。空间并行。提高fc:功能部件应该能在更高的频率下工作。时间平行。可以用P=O(s*f)衡量系统的潜在性能,s是与设备量成正比的功能部件并行度,f是主频。,3.1.1 提高频率,提高系统的频率是提高系统性能的最直接的方法,但是频率的提高具有很大的难度:1.器件的速度和集成度 2.流水线分站的代价和效率 3.高速信号传输 4.时钟沿的离散 5.高密度组装工艺和冷却技术*往往当通过提高
2、频率来提高计算机的速度不能满足要求时,我们才考虑空间并行性,3.1.1 空间并行,为了达到更高的主频,需要特殊技术并且代价巨大。这导致了大规模并行处理系统MPP的出现。可以设置多个功能部件支持向量、超标量、超长指令字和超流水结构。空间并行性可以有效提高计算机速度,速度提高的最大倍数=部件设备量增加的倍数。上述不等式的原因主要是有存储和外设限制造成的,为了提高速度往往需要高带宽存储系统的支持和高效的I/O能力,我们将在后面的章节讨论存储系统和I/O系统。当然在MPP中各个结点相联还需要不同的互联网络的支持。,先行控制技术补充,1.顺序执行方式执行n条指令所用的时间为:如果每段时间都为t,则执行n
3、条指令所用的时间为:T3 n t主要优点:控制简单,节省设备主要缺点:速度慢,功能部件的利用率低,2.一次重叠执行方式如果两个过程的时间相等,则执行n条指令的时间为:T(1+2n)t主要优点:指令的执行时间缩短,功能部件的利用率明显提高。主要缺点:需要增加一些硬件,控制过程稍复杂。,3.二次重叠执行方式如果三个过程的时间相等,执行n条指令的时间为:T(2n)t在理想情况下,处理机中同时有三条指令在执行。处理机的结构要作比较大的改变,需要采用先行控制技术。,先行控制方式的原理,1.采用二次重叠执行方式必须解决两个问题:(1)有独立的取指令部件、指令分析部件和指令执行部件 把一个集中的指令控制器,
4、分解成三个独立的控制器:存储控制器、指令控制器、运算控制器(2)要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器,2.解决访存冲突的方法:(1)采用低位交叉存取方式:这种方法不能根本解决冲突问题。读指令、读操作数、写结果。(2)两个独立的存储器:独立的指令存储器和数据存储器。如果再规定,执行指令的执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。,(3)采用先行控制技术 采用先行控制技术的关键是缓冲技术和预处理技术。缓冲技术通常用在工作速度不固定的两个功能部件之间
5、。设置缓冲栈的目的是用以平滑功能部件之间的工作速度。在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。,先行处理机结构,1.三个独立的控制器:存储控制器、指令控制器、运算控制器。2.四个缓冲栈:先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。3.处理机组成,4.先行指令缓冲栈的组成作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。设置两个程序计数器:先行程序计数器PC1,用来指示取指令,现行程序计数器PC,记录指令分析器正在分析的指令地址。5.存在的主要问题:各类指令“分析”和“执行”的时间相差很大数据相关转移或转子程序指令,先行指令缓冲栈
6、的组成,指令执行时序,设置了指令缓冲栈,取指令的时间就可以忽略不计。一条指令的执行可分为2个过程1.分析指令和执行指令时间不相等时的情况,采用先行缓冲栈的指令执行过程 先行读数栈,先行操作栈,后行写数栈。理想情况下,指令执行部件应该一直忙碌。连续执行n条指令的时间为:,先行缓冲栈,设置先行缓冲栈的目的:使指令分析器和指令执行部件能够独立工作。1.先行指令缓冲栈:处于主存储器与指令分析器之间用它来平滑主存储器取指令和指令分析器使用指令之间的速度差异RR型指令,不必处理,直接送先行缓冲栈RS型指令,主存有效地址送先行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成RR*指令送先行
7、缓冲栈,RI型指令,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成RR*指令送先行缓冲栈转移指令,一般在指令分析器中直接执行。先行操作栈处于指令分析器和运算控制器之间使指令分析器和运算器能够各自独立工作。采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。,先行读数栈处于主存储器与运算器之间平滑运算器与主存储器的工作每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个。当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。,后行写数栈每个后行缓冲寄
8、存器由地址寄存器、数据寄存器和标志三部分组成。指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR*指令送入先行操作栈。当运算器执行这条RR*型写数指令时,只要把写到主存的数据送到后行写数栈的数据寄存器中即可。,采用先行控制方式时一个程序的执行情况:,缓冲深度的设计方法,以静态分析为主,通过模拟来确定缓冲深度。1.先行指令缓冲栈的设计 考虑两种极端情况:假设缓冲深度为DI(1)先行指令缓冲栈已经充满指令流出的速度最快,例如连续分析RR型指令,设这种指令序列的最大长度为L1,平均分析一条这种指令的时间为t1;指令
9、流入的速度最慢,设平均取一条指令的时间为t2。从主存储器中取到先行指令缓冲栈中的指令条数是L1DI条。,应该满足如下关系:L1 t1(LIDI)t2 计算出缓冲深度为:如果这种指令流的连续长度超过L1,则先行指令缓冲栈失去作用。(2)先行指令缓冲栈原来为空输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的最大长度为 L2,平均取一条这种指令的时间为 t2;,输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令;设平均分析一条指令的时间为 t1。分析的指令条数是L2DI条。应该满足如下关系:(L2DI)t1 L2t2 计算出缓冲深度为:如果这种指令流的连续长度超过L2,先行指
10、令缓冲栈失去缓冲作用。,设计举例在一般处理机中连续执行短指令的概率大。例:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用4个周期,如果这种指令的平均长度为9,即90的指令是执行时间短的指令。解:计算先行指令缓冲栈的缓冲深度为:,先行指令缓冲栈的工作时间关系第1个周期,取走指令k+1,请求取指令第4个周期末尾,指令k+8取到先行指令缓冲栈第8个周期末尾,指令k+9取到先行指令缓冲栈第9个周期,分析指令k+9,先行指令缓冲栈空第10个周期,指令分析器等待,其余缓冲栈的设计原则一般有关系:DIDCDRDW 其中:DI是先行指令缓冲栈的缓
11、冲深度,DC是先行操作栈的缓冲深度,DR是先行读数栈的缓冲深度,DW是后行写数栈的缓冲深度。例如:IBM370/165机:DI4,DC3,DR2,DW1。我国研制的两台大型计算机:DI8,DCDR4,DW2。DI12,DCDR6,DW2。,流水线工作原理,1.流水寄存器流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等。在一般流水线时空图中不画出流水寄存器。,2.一种指令流水线一般4至12个流水段,8个流水段的称为超流水线处理机3.流水线时空图,一个浮点加
12、法器流水线的时空图,4.流水线的主要特点只有连续提供同类任务才能发挥流水线效率尽量减少因条件分支造成的“断流”通过编译技术提供连续的相同类型操作每个流水线段都要设置一个流水寄存器时间开销:流水线的执行时间加长是流水线中需要增加的主要硬件各流水段的时间应尽量相等 流水线处理机的基本时钟周期等于时间最长的流水段的时间长度。流水线需要有“装入时间”和“排空时间”,流水线的分类,1.线性流水线与非线性流水线 流水线的各个流水段之间是否有反馈信号线性流水线(Linear Pipelining):每一个流水段都流过一次,而且仅流过一次非线性流水线(Nonlinear Pipelining):某些流水段之间
13、有反馈回路或前馈回路。线性流水线能够用流水线连接图唯一表示非线性流水线必须用流水线连接图和流水线预约表共同表示,2.按照流水线的级别来分 处理机级流水线,又称为指令流水线。例如:在采用先行控制器的处理机中,各功能部件之间的流水线,部件级流水线(操作流水线)如浮点加法器流水线 宏流水线(Macro Pipelining)处理机之间的流水线称,每个处理机对同一个数据流的不同部分分别进行处理。,3.单功能流水线与多功能流水线 单功能流水线:只能完成一种固定功能的流水线。Cray-1计算机种有12条,YH-1计算机有18条 Pentium有一条5段定点和一条8段浮点流水线。Pentium有两条定点和一
14、条浮点指令流水线。多功能流水线:流水线的各段通过不同连接实现不同功能 Texas公司的ASC机,8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。,4.静态流水线与动态流水线静态流水线:同一段时间内,各个功能段只能按照一种方式连接,实现一种固定的功能。,动态流水线:在同一段时间内,各段可以按照不同的方式连接,同时执行多种功能。,5.流水线的其他分类方法按照数据表示方式:标量流水线和向量流水线按照控制方式:同步流水线和异步流水线顺序流水线与乱序流水线,乱序流水线又称为无序流水线、错序流水线或异步流水线等。,线性流水线的性能分析,主要指标:吞
15、吐率、加速比和效率1.吞吐率(Though Put)流水线吞吐率的最基本公式:其中:n为任务数,k为完成n个任务所用的时间。各段执行时间相等,输入连续任务情况下,完成n个任务需要的总时间为:Tk(kn1)t 其中:k 为流水线的段数,t为时钟周期。,Tk=k t+(n-1)t=(k+n-1)t,吞吐率为:最大吞吐率为:,各段时间不等,完成n个连续任务:吞吐率:最大吞吐率:流水线各段执行时间不相等的解决办法,(1)将“瓶颈”部分再细分(如果可分的话),2.加速比(Speedup)计算加速比的基本公式:各段执行时间相等,输入连续任务情况下,(不考虑栈寄存器时间)加速比:最大加速比:各段时间不等,输
16、入连续任务情况下,实际加 速比为:,当流水线段数增加时,需要连续输入的任务数也必须增加,3.效率(Efficiency)计算流水线效率的一般公式:各流水段时间相等,输入n个连续任务,流水线的效率为:最高效率为:各流水段时间不等,输入n个连续任务,流水 线效率为:,流水线的吞吐率、加速比与效率的关系:因为:因此:ETPt,SkE,流水线性能分析举例对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。对于输入不连续任务,或多功能流水线,通常采用基本公式计算。例:用一条4段浮点加法器流水线求8个浮点数的和:ZABCDEFGH,解:Z(AB)(CD)(
17、EF)(GH),解:,流水线的设计原理,为提高系统效率我们当然希望流水线分站越多越好,但是站寄存器的存在增加了流水线的延迟和代价,降低了功能部件的时间利用率和流水线的性价比。站数的确定,可以用流水线功能时间利用率不小于e和最高性能价格比以及器件和工艺条件综合决定。效率:T/(T+ktd)=e 性价比:PCR=1/(T/k+td)(C+kd)其中k为流水线站数,T为每段执行时间,td为站流水线的延迟时间,C为功能部件的价格。,流水线的设计原理,令(PCR)=0,得到因为(PCR)0,所以此时k站流水线的性价比最高同时为了减少站寄存器的位数,分段时往往选在连线最少的部位。如果每段时间无法保持一致,
18、则M(最大段执行时间)和td同时决定了流水线的工作周期。其频率为1/(M+td).由于工程实现时元件的布局和器件时间参数离散等原因,到达各站寄存器的时钟信号时离散的。,流水线的设计原理,设相邻两站的最大离散值为,则工作频率降低为1/(M+td+)。书本35-36页,图3.2 信号穿透问题。,非线性流水线的调度,非线性流水线调度的任务是要找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。1.非线性流水线的表示线性流水线能够用流水线连接图唯一表示对于非线形流水线,连接图不能唯一表示工作流程,因此,引入流水线预约表例如:,非线形流水
19、线的连接图和预约表,一张预约表可能与多个流水线连接图相对应,一个流水线连接图对应于多张预约表,2.非线性流水线的冲突 启动距离:连续输入两个任务之间的时间间隔 流水线冲突:几个任务争用同一个流水段,3.无冲突调度方法由及其学生于1971年提出禁止向量:预约表中每一行任意两个“”之间距离的集合。上例中为(3,4,6)冲突向量:C(CmCm-1C2C1)其中:m是禁止向量中的最大值。如果i在禁止向量中,则Ci1,否则Ci0。上例中C(101100),例:一条4功能段的非线性流水线,每个功能段的延迟时间都相等为t,它的预约表如下:(1)写出流水线的禁止向量和初始冲突向量。(2)画出调度流水线的状态图
20、。(3)求最小启动循环和最小平均启动距离。(4)求平均启动距离最小的恒定循环。(5)按照最小启动循环连续输入4个任务,求流水线实际吞吐率。,解:(1)禁止向量为:(2,4,6)初始冲突向量:S=101010(2)构造状态图 S逻辑右移2、4、6位时,不作任何处理,逻辑右移1、3、5和大于等于7时:S右移1位之后:010101101010111111,S右移3位之后:000101101010101111,S右移5位之后:000001101010101011,S右移7位或大于7位后:还原到它本身。,101111右移5位之后:000001101010101011,101011右移3位之后:00010
21、1101010101111,101011右移5位之后:000001101010101011。,简单循环:状态图中各种冲突向量只经过一次的启动循环。(3)最小的启动循环为(1,7)和(3,5),平均启动距离为 4。(4)启动距离最小的恒定循环为(5)(4)按照最小启动循环(1,7)连续输入4个任务,流水线实际吞吐率为:1/(4 t),数据相关(局部相关),数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址量等是前面指令的执行结果,这种相关称为数据相关。控制相关:由条件分支指令、转子程序指令、中断等引起的相关。解决数据相关的方法有两种:推后处理设置专用路径,1.指令相关发生指令相关的情
22、况:n:STORE R1,n+1 n+1:满足关系:结果地址(n)指令地址(n+1)当第n条指令还没有把执行结果写到主存之前,取出的第n+1条指令显然是错误的。在k个流水段的流水线处理机中,第n条指令要修改从第n+1到第n+k 指令中的任意一条指令,都可能造成程序执行结果发生错误。,在采用先行控制方式的处理机中,如果执行部件正在执行第n条指令,与下述情况之一发生相关,都可能造成程序执行结果发生错误:存放在先行操作栈中的指令正在指令分析器中分析的指令已经预取到先行指令缓冲栈中的指令更严重的是:有些分支指令,可能已经在指令分析器中执行完成。,解决指令相关的根本办法是:在程序执行过程中不允许修改指令
23、。现代程序设计方法要求程序具有再入性,可以被递归调用等,也要求不修改指令。在IBM370系列机中,用“执行”指令来解决:在程序执行过程中既能够修改指令,程序又具有再入性。,“执行”指令执行由第二地址(X2)+(B2)+D2)决定的主存数据区中的指令。,2.主存操作数相关(相邻两条指令之间出现对主存同一单元要求先写后读的关联)发生主存操作数相关的指令序列: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)解决办法(出现概率低,不宜采用设置专用通路):对于访
24、问主存储器的请求,写结果的优先级高于读操作数,实现自动推后处理。,3.通用寄存器数据相关发生寄存器数据相关的可能性很大,影响面也很大 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)称为R2数据相关。,解决通用寄存器数据相关的方法:方法一:把读操作数、写运算结果与指令执行合在一个节拍。采用一种典型的运算器结构,通用寄存器到运算器之间建立有直接数据通路,即不设置缓冲寄存器或锁存器。当发生下述情况时,不能采用这种方法:当寄存器个数多时,读写寄存器的时间长当功能部件的执行时间比较长,
25、或要求指令的执行时间短时,方法二:建立相关专用通路(ByPass)由于发生寄存器数据相关的情况很普遍,一般计算机系统都采用专用数据通路,以增加硬件为代价减少速度损失。在运算器的输出端到锁存器输入端之间建立一条专用的数据通路。,变址相关:在采用变址寻址方式的处理机中,由于变址量放在寄存器中,因此,可能发生与通用寄存器数据相关类似变址相关,发生概率较高,通常多采用设置专用通路的方法解决相关问题。,4.LOAD相关 LOAD操作的执行时间可能比较长 n:LOAD R1,A;R1(A)n+1:ADD R1,R2;R1(R1)OP(R2)如果 R1(n)R2(n1),或 R1(n)R1(n1),则发生L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算机体系结构 第三
链接地址:https://www.31ppt.com/p-6117078.html