流水和现代处理器技术.ppt
《流水和现代处理器技术.ppt》由会员分享,可在线阅读,更多相关《流水和现代处理器技术.ppt(208页珍藏版)》请在三一办公上搜索。
1、第五章 重叠、流水和现代处理器技术,北京航空航天大学计算机学院2005 年 4 月,主要内容:基本问题流水线技术向量流水技术现代处理器技术,基本问题,如何提高CPU执行效率?TCPU=IN*CPI*TC IN:执行程序中的指令总数;CPI:执行每条指令所需的平均时钟周期数;TC:时钟周期的时间长度。,基本问题,其中:Ii 表示第i种指令在程序中执行次数,CPII表示执行一条第i类指令所需的平均时钟周期数,IN 为程序中所有的指令类数.,顺序执行方式 一条指令的执行过程:取指令-分析-执行执行n条指令所用的时间为:如每段时间都为t,则执行n条指令所用的时间为:T=3nt主要优点:控制简单,节省设
2、备。主要缺点:执行指令的速度慢,功能部件的利用率很低。,指令执行方式分析,此时,执行n条指令的时间为:T=(2+2n)t主要优点:指令的执行时间缩短功能部件的利用率明显提高主要缺点:需要增加一些硬件控制过程稍复杂,一次重叠执行方式(一种最简单的流水线方式),二次重叠执行方式,把取第k+1条指令提前到分析第k条指令同时执行如果三个过程的时间相等,执行n条指令的时间为:T=(2+n)t理想情况下同时有三条指令在执行处理机的结构要作比较大的改变(必须采用先行控制方式),主要内容:基本问题流水线技术向量流水技术现代处理器技术,流水线技术,包含以下内容:流水线的分类流水线的表示方法流水线的特点流水线的性
3、能分析非线性流水线技术,流水线的分类,从流水线具有功能多少来看,可以分为单功能流水线和多功能流水线。单功能流水线只能实现一种功能的流水处理。,多功能流水线是指同一流水线的各段之间可以通过不同的连接方式实现多种不同的运算或功能。,流水线的分类,流水功能段,浮点加、减法运算,定点乘法运算,按多功能流水线的各段能否允许同时用多种不同功能连接流水,可把流水线分为静态流水线和动态流水线。静态流水线在某一时间内各段只能按一种功能连接流水。动态流水线的各段在同一时间内可按不同运算或功能连接。,流水线的分类,可同时进行浮点加、减运算和定点乘法运算的流水线,流水线的分类,从流水线中各功能段之间是否有反馈回路,可
4、以把流水线分为线性流水线和非线性流水线。,流水线的分类,流水线的表示方法,流水线的表示法有三种:连接图、时空图、预约表。主要考虑前二种。1、简单流水线的连接图表示流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。一个流水阶段与另一个流水阶段相连形成流水线。指令从流水线一端进入,经过流水线的处理,从另一端流出。有些复杂指令 在执行阶段也采用流水线方式工作,称为操作流水线。,2、一种指令流水线一般4至12个流水段,等于及大于8个流水段的称为超流水线处理机。,流水线的表示方法,3、流水线的时空图采用“时空图”表示流水线的工作过程。一条简单流水线的时空
5、图:,流水线的表示方法,一个浮点加法器流水线的时空图(由求阶差、对阶、尾数加和规格化4个流水段组成):,流水线的表示方法,在流水线的每一个功能部件的后面都要有一个缓冲器,称为锁存器、闸门寄存器等,它的作用是保存本流水段的执行结果。各流水段的时间应尽量相等,否则回引起阻塞、断流等。只有连续提供同类任务才能充分发挥流水线的效率。在流水线的每一个流水线段中都要设置一个流水锁存器。流水线需要有“装入时间”和“排空时间”。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。,流水线的主要特点,衡量流水线性能的主要指标有:吞吐率、加速比和效率1、吞吐率(Though Put)求流水线吞吐率的最基本公式
6、:TP=n/Tkn为任务数,Tk为完成n个任务所用时间各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为:Tk=(k+n-1)Dt k为流水线的段数,D t为时钟周期,线性流水线的性能分析,线性流水线的性能分析,吞吐率:最大吞吐率为:各段执行时间不相等、输入连续任务情况下:吞吐率为:最大吞吐率为:,线性流水线的性能分析,流水线各段执行时间不相等的解决办法,线性流水线的性能分析,一是将“瓶颈”流水段细分(如果可分的话):二是将“瓶颈”流水段重复设置:,线性流水线的性能分析,流水段重复设置的流水线,线性流水线的性能分析,2、加速比(Speedup)计算流水线加速比的基本公式:S=顺
7、序执行时间T0/流水线执行时间Tk各段执行时间相等,输入连续任务情况下加速比为:最大加速比为:各段执行时间不等,输入连续任务情况下实际加速比为:,线性流水线的性能分析,线性流水线的性能分析,3、效率(Efficiency)计算流水线效率的一般公式:各流水段执行时间相等,输入n个连续任务流水线的效率为:流水线的最高效率为:,线性流水线的性能分析,线性流水线的性能分析,各流水段执行时间不等,输入n个连续任务流水线的效率为:,线性流水线的性能分析,线性流水线的性能分析,流水线的吞吐率、加速比与效率的关系:因为因此:E=TP Dt,S=kE,线性流水线的性能分析,4、流水线性能分析举例 对于单功能线性
8、流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。例5.2:用一条4段浮点加法器流水线求8个浮点数的和:ZABCDEFGH,线性流水线的性能分析,解:Z=(A+B)+(C+D)+(E+F)+(G+H),1,时间,空间,2,3,求阶差,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,对阶,尾数加,规格化,加数,A,C,E,G,A+B,E+F,B,D,F,H,C+D,G+H,A+B+C+D,E+F+G+H,结果,A+B,C+D,E+F,G+H,A+B+C+D,E+F+G+H,Z,线性流水线的性能分析,7个浮点
9、加法共用了15个时钟周期。流水线的吞吐率为:流水线的加速比为:流水线的效率为:,线性流水线的性能分析,什么是非线性流水线?如果存在反馈回路,当一个任务在流水线中流过时,在同一个流水段中可能要经过多次。不能每一个时钟周期向流水线输入一个新任务。这样的流水线就是非线性流水线。非线性流水线的调度问题就是要解决要隔多少个时钟周期向流水线输入一个新任务才能使流水线 的各个流水段都不发生冲突。表示一个非线性流水线需要用到连接图和预约表。,非线性流水线技术,S1,S2,S3,S4,输出,输入,反馈线,非线性流水线1的连接图,非线性流水线的预约表,S1,S2,S3,S4,输出,输入,反馈线,非线性流水线2的连
10、接图,非线性流水线的预约表,预约表横坐标表示流水线的时钟周期,纵坐标表示流水线的各个流水段,中间有“X”表示该流水段在这一个时钟周期处于工作状态,空白表示该流水段在这一个时钟周期不工作。一行中可以有多个“X”,表示一个任务在不同时钟周期重复使用了同一流水段;一列中有多个“X”表示在同一个时钟周期同时占用了多个流水段。预约表的行数是流水线的段数,预约表的列数是一个任务从进入流水线到流水线中输出所经过的时钟周期数。向一条非线性流水线的输入端连续输入两个任务之间的时间间隔称为非线性流水线的启动距离,以时钟周期数表示。,非线性流水线技术,当使用某些启动距离时,将在某些流水段发生冲突,即两个或两个以上任
11、务同时争用一个流水段。引起非线性流水线流水段冲突的启动距离称为禁启动止距离。不发生冲突的启动距离是一个循环数列。使非线性流水线的任何一个流水段在任何一个时钟周期都不发生冲突的循环数列称为非线性流水线的启动循环。,非线性流水线技术,启动距离为5的流水线预约表,(5)是一个循环,称为恒定循环。,非线性流水线技术,启动距离为(1,7)循环时的流水线预约表,要正确地调度一条非线性流水线,首先要找出流水线的所有禁止启动距离。所有禁止启动启动距离组合在一起成为一个数列,称为禁止向量。,非线性流水线技术,由预约表得到禁止向量的方法:将预约表的每一行中任意两个“X”之间的距离都计算出来,去掉重复的,这种数组成
12、的一个数列就是这条非线性流水线的禁止向量。例如:前述的非线性流水线,其禁止向量为(3,4,6)。把一个启动循环内的所有启动距离相加,然后再除以这个循环内的启动距离个数,就得到这个启动循环的平均启动距离。非线性流水线无冲突调度的主要目标是要找出具有最小平均启动距离的启动循环,按照这样的启动循环向非线性流水线的输入端输入任务,流水线的工作速度最快,而且所有流水段在任何时间都没有冲突。,非线性流水线技术,例子:一条有4个流水段的非线性流水线,每个流水段的延迟时间都相等,它的预约表如下图:,非线性流水线技术,(1)写出流水线的禁止向量和初始冲突向量(2)画出调度流水线的状态图(3)求流水线的最小启动循
13、环和最小启动距离(4)求平均启动距离最小的恒定循环。,解:(1)禁止向量为(2,4,6)冲突向量:用二进制表示,长度是禁止向量的最大距离。冲突向量C=(C6C5C4C3C2C1),由禁止向量,C2=C4=C6=1,其余位为0,冲突向量为 C=(101010)。,非线性流水线技术,(2)由冲突向量构造一张图:将C放到一个6位逻辑右移移位器,当从移位器右移出0,用移位器中的值与初始冲突向量做“按位或”,得到一个新的冲突向量。当移位器移出1,不做任何处理。重复这个步骤。对产生的每一个新的冲突向量做同样处理。在初始冲突向量和所有形成的冲突向量之间,箭头连接。,非线性流水线技术,(3)从状态图中可以找到
14、许多不发生流水段冲突的启动循环。,只要找到简单循环,进而确定平均启动距离最小的启动循环。它们是:(1,7)、(3,5,7)、(5,7)等,最小启动循环是具有最小平均最小启动距离的启动循环。,非线性流水线技术,最小循环为(1,7)、(3,5)最小恒定循环为(5),最小启动循环为(3,5)的流水线工作状态,非线性流水线技术,最小启动循环为(1,7)的流水线工作状态,非线性流水线技术,恒定启动循环(5)的流水线工作状态,启动周期,重复启动周期,非线性流水线技术,主要内容:基本问题流水线技术向量流水技术现代处理器技术,向量流水技术,向量处理的特点向量处理机的基本结构向量处理的方法向量处理的关键技术,向
15、量流水处理的主要特点,1、向量流水处理的主要特点(1)各个元素的操作一般相同且数据相互独立,不存在相关。非常适合于流水处理;(2)一条向量指令相当于一个标量循环,可降低对指令访问带宽的要求;(3)一般采用多体交叉存储,支持跨步长度访问,向量处理机的基本概念,具有向量数据表示和向量指令系统的处理机称为向量处理机。向量处理机是解决数值计算问题的一种高性能计算机结构。向量处理机一般都采用流水线结构,往往有多条流水线并行 工作。向量处理机通常属大型或巨型机,也可以用微机加一台向量 协处理器组成。一般向量计算机中包括有一台高性能标量处理机。必须把要解决的问题转化为向量运算,向量处理机才能充分 发挥作用。
16、,一个典型向量求解问题:Y=a*X+Y 其中X和Y为向量,初始值存放在存储器中,a为标量。通常,根据这一求解表达式是单精度还是双精度操作,分别称为SAXPY(Single-precision AX plus Y)或DAXPY循环,表示是单精度或双精度的A乘X后再加Y。,若用向量机来完成同样操作,则有:LD F0,a;标量a装入F0 LV V1,Rx;装入向量X,LV为向量取指令 MULTV V2,F0,V1;向量X与标量a相乘 LV V3,Ry;装入向量Y ADDV V4,V2,V3;向量加aX+Y SV Ry,V4;存结果向量,SV为向量存指令 向量机只需执行6条指令,从而可大大降低对指令带
17、宽要求,向量处理机的基本结构,向量处理机的基本结构形式 按向量操作对象及结果主要存放方式分类:1)存储器存储器工作方式向量机 利用多个独立的存储器模块并行工作。2)寄存器寄存器工作方式向量机 主要利用向量寄存器。,存储器存储器结构,采用多个存储体交叉和并行访问来提高存储器速度;操作数缓冲栈和写结果缓冲栈主要用于解决访问存储器冲突;主要优缺点:硬件结构简单,造价低。速度相对比较低。早期的向量处理多采用这种存储器-存储器结构。,寄存器寄存器结构(Cray1),寄存器寄存器结构,把存储器-存储器结构中的缓冲栈改为向量寄存器,运算部件需要的操作数从向量寄存器中读取,运算的中间结果也写到向量寄存器中。向
18、量寄存器与标量寄存器的主要差别是:一个向量寄存器能够保存一个向量,例如:64个64位寄存器。采用寄存器-寄存器结构的主要优点:降低主存储器的流量。例如:寄存器-寄存器结构的CRAY-1与存储器-存储器结构的STAR-100比较,运算速度高3倍多(时钟周期为40:12.5),主存储器流量低2.5倍。,1976年,CRAY公司推出CRAY-1向量机,开始了向量机的蓬勃发展,其峰值速度为0.1 Gflops。,Cray 1,1985年,CRAY-2,1G flops1990年,SX-3,22G flops1991年,Cray-YMP-C90,16Gflops,Cray 2,Cray XMP/4,CR
19、AY Y-MP816系统结构,1991年多向量处理器时间并行+空间并行256交叉存储16MB1GB大量使用寄存器64位浮点/定点,1983年12月,银河-I巨型计算机由国防科技大学计算机研究所研制成功。银河-II并行巨型计算机由国防科技大学计算机研究所于1992年11月研制成功。,银河1,银河2,向量处理方法,向量处理方式有三种类型:1横向处理方式:向量计算是按行的方式从左至右横向地进行。也称水平处理方式,横向加工方式等。2纵向处理方式:向量计算是按列的方式自上而下纵向地进行。也称垂直处理方式,纵向加工方式等。3纵横处理方式:横向处理和纵向处理相结合的方式。也称分组处理方式,纵横向加工方式等。
20、以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。for(i=1;i=N;i+)yi=ai(bi+ci);,逐个分量进行处理:假设中间结果为T(I)。计算第1个分量:T(1)=B(1)+C(1)Y(1)=A(1)T(1)计算第2个分量:T(2)=B(2)+C(2)Y(2)=A(2)T(2)计算最后一个分量:T(N)=B(N)+C(N)Y(N)=A(N)T(N)即逐个求Y中的N个分量,先进行相加t1b1+c1,其中t1为暂存单元,然后相乘y1t1a1。,横向处理方式,横向处理方式,存在两个问题:在计算向量的每个分量时,都发生写读数据相关。流水线效率低。如果采用多功能流水线,必须
21、频繁进行流水线切换。结论:这种加工方式不适合于向量流水处理。,纵向处理方式,先纵向加工所有B和C向量中元素对的相加操作,中间结果暂存到t1tN中,然后再纵向加工所有对应元素的乘法操作。T(1)=B(1)+C(1)T(2)=B(2)+C(2)T(n)=B(n)+C(n)Y(1)=A(1)T(1)Y(2)=A(2)T(2)Y(n)=A(n)T(n)用向量指令形式表示时,变成:T=B+C Y=TA,纵向处理方式,特点:流水线功能的切换只需一次。可获得较高的吞吐率。数据相关不影响流水线连续工作,可采用向量链接技术。结论:这种处理方式适用于向量处理机。,纵横处理方式,纵横向加工(或称为分组加工)以寄存器
22、寄存器方式工作的向量机都采用这种加工方式。因为向量寄存器的长度有限(如CRAY-1的长度为64)。当向量长度超过向量寄存器可表示的最大限度n时,就不得不分组加以处理。假设向量长度为N,则有N=kn+r,其中nN,rn,n、k、r均为正整数,k为组数,r为余数(余下的部分也作为一组处理)。它的加工方式是:组内纵向加工,组间为横向加工。第一组计算:t1n=b1n+c1n y1n=a1n+t1n再算第二组:tn+12n=bn+12n+cn+12n yn+12n=an+12n+tn+12n,向量处理的关键技术,向量与标量性能的平衡向量链接技术向量循环开采技术,向量与标量性能的平衡,实际的应用问题中通常
23、既有向量计算又有标量计算,而且两类计算有一定的比例。向量平衡点(vector balance point):为了使向量硬件设备和标量硬件设备的利用率相等,一个程序中向量代码所占的百分比。关键问题是:向量硬件和标量硬件都能充分利用,都不空闲。向量处理机的向量平衡点必须与用户程序的向量化程度相匹配。,向量与标量性能的平衡,几种超级计算机向量和标量的性能,向量链接技术,向量运算中的相关和冲突 向量运算中的数据相关和功能部件冲突主要有:写读数据相关;读读数据相关,或向量寄存器冲突;运算部件冲突。V0V1V2 V0V1V2V3V4 V5 V3V0 V4(a)不相关的指令(b)写读数据相关V0V1V2 V
24、0V1V2V3V4V5 V3V1 V4(c)功能部件冲突(d)读读数据相关,向量链接技术,利用向量指令间存在的先写后读的数据相关性来加快向量指令序列执行速度的技术称为链接技术。具体的说,结果寄存器可能成为后继指令的操作数寄存器,两条有数据相关的向量指令并行执行。例如:ADDV V1,V2,V3;V1V2+V3 MULTV V4,V1,V5;V4V1V5 分析:这两条指令间对V1向量寄存器存在先写后读相关,通常必须等加法指令做完后才可开始乘法指令,但如果使向量寄存器(例中的V1)在同一时钟周期内,既接收一个功能部件送来的运算结果,又可把这一结果作为下一个向量指令运算所需的源操作数送给另一个功能部
25、件,那就可使这两个部件链接起来进行操作。当链接进入充分流水操作状态后,在一个时钟周期内就可同时获取两个操作结果。,向量链接技术,以CRAY-1为例,设有如下向量运算:D=A(B+C)假设向量长度64,且B和C已由存储器取至V0和V1,则下面3条向量指令就可完成上述运算:LD V3,A;V3a ADDV V2,V0,V1;V2V0+V1 MULTV V4,V2,V3;V4V2V3,向量链接技术,LD V3,A;V3a ADDV V2,V0,V1;V2V0+V1 MULTV V4,V2,V3;V4V2xV3,情况一:若这三条指令全部用串行方法则所需时间为:(1+6+1)+N-1+(1+6+1)+N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水 现代 处理器 技术
链接地址:https://www.31ppt.com/p-6307041.html