流水线技术向量处理机.ppt
流水线技术向量处理机现在学习的是第1页,共43页(1)水平(横向)处理方式 Kibici DiKiai 相关:N 次 功能切换:2N 次虚拟存储器的特点现在学习的是第2页,共43页(2)垂直(纵向)处理方式 KBC DKA 相关:次 功能切换:次对处理机结构的要求:存储器-存储器型操作的运算流水线对存储器的带宽要求很高。例如:STAR-100,CYBER-2053.5 向量处理机虚拟存储器的特点现在学习的是第3页,共43页3.5 向量处理机虚拟存储器的特点现在学习的是第4页,共43页(3)分组(纵横)处理方式 把向量分成长度为某个固定值的若干组,组内按纵向方式处理,依次处理各组。每组内:相关:次 功能切换:次3.5 向量处理机虚拟存储器的特点现在学习的是第5页,共43页3.5 向量处理机虚拟存储器的特点现在学习的是第6页,共43页对处理机结构的要求:寄存器-寄存器型操作的运算流水线。举例虚拟存储器的特点现在学习的是第7页,共43页2.向量处理机的速度评价方法 标量处理机:通常用每秒执行多少指令 MIPS(Million Instructions Per Second)来衡量机器的运算速度。向量处理机:常用每秒取得多少个浮点运算 结果表示机器速度,以MFLOPS(Million of Floating Point Per Second)作为测量单位。另一种评定计算机速度的方法:比较法。(选择一台速度指标得到公认的机器作为标准机,给定一些典型的基准程序。)3.5 向量处理机虚拟存储器的特点现在学习的是第8页,共43页3.5.2 提高向量处理机性能的主要技术1.CRAY-I简介 美国CRAY公司 1976年 每秒亿次浮点运算 主频:80MHz 字长:64位2.CRAY-1的基本结构 向量运算部件:个 整数加,逻辑运算,移位 浮点加,浮点乘,求倒数3.5 向量处理机虚拟存储器的特点现在学习的是第9页,共43页 向量寄存器组:864 V0 V7 每个 Vi 每个向量运算部件 向量长度寄存器VL 向量屏蔽寄存器VM CRAY-1向量处理的显著特点:只要不出现Vi冲突和向量功能部件冲突,各个Vi之间和各个向量功能部件之间都能并行工作,大大加快了向量指令的处理。3.5 向量处理机虚拟存储器的特点现在学习的是第10页,共43页3.CRAY-1向量指令类型 Vk Vi op Vj Vk Si op Vj Vk 主存 主存 ViVi冲突:指的是并行工作的各向量指令的源向 量或结果向量的Vi有相同的。向量功能部件冲突:指同一个向量功能部件被 一条以上的并行工作向 量指令所使用。3.5 向量处理机虚拟存储器的特点现在学习的是第11页,共43页3.5 向量处理机虚拟存储器的特点现在学习的是第12页,共43页4.链接技术 当两条指令出现“写后读”相关时,若它们 不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相 接,形成一个链接流水线,进行流水处理。链接特性实质上是把流水线“定向”的思想 引入到向量执行过程的结果。3.5 向量处理机虚拟存储器的特点现在学习的是第13页,共43页虚拟存储器的特点现在学习的是第14页,共43页例3.7 对 上 述 向 量 运 算 D=A*(B+C),若 向 量长度N64,向量元素为浮点数,则在B、C取到V0、V1后,就可用以下三条向量指令求解:(1)V3存储器(访存,载入A)(2)V2V0V1(浮点加)(3)V4V2*V3(浮点乘,存D)解:链接过程如图3.44所示:3.5 向量处理机虚拟存储器的特点现在学习的是第15页,共43页 三条向量指令全部用串行方法执行,则总 的执行时间为:(1+6+1)+N-1+(1+6+1)+N-1 +(1+7+1)+N-1=3N+22 拍 3.5 向量处理机虚拟存储器的特点现在学习的是第16页,共43页 前 两 条 向 量 指 令 并 行 执 行 之 后,再 执 行 第 三条向量指令,则总的执行时间为:(1+6+1)+N-1+(1+7+1)+N-1 =2N+15 拍 采用向量链接技术,所需拍数(亦称为链接 流水线的流水时间)为:(1+6+1)+(1+7+1)=17 拍 则三条向量指令总执行时间为:(1+6+1)+(1+7+1)+(N-1)=N+16 拍 3.5 向量处理机虚拟存储器的特点现在学习的是第17页,共43页5.向量链接的一些主要要求:(除了要保证无向量寄存器使用冲突和无向 量功能部件使用冲突的条件之外)在 进 行 链 接 的 时 候,只 有 在 前 一 条 向 量 指 令 的 第 一 个 结 果 元 素 送 入 结 果 向 量 寄 存 器 的 那 一 个 时 钟 周 期 才 可 以 进 行 链 接,若 错 过 该 时 刻就不能进行链接。只有当前一条向量指令全部执行完毕,释放 相应的向量寄存器资源后才能执行后面的向 量指令。3.5 向量处理机虚拟存储器的特点现在学习的是第18页,共43页 当一条向量指令的两个源操作数分别是两条 先行向量指令的结果寄存器时,要求先行的 两条向量指令产生运算结果的时间必须相等,即要求有关向量功能部件的延迟时间相等。只有所有可以链接执行的向量指令的向量长 度相等时,它们之间才能链接执行,否则它 们之间也不能链接执行。3.5 向量处理机现在学习的是第19页,共43页6.向量循环或分段开采技术 如果向量的长度大于向量寄存器的长度,该如何处理呢?向量循环:长向量循环分段处理的程序结构。把长向量分成固定长度的段,然后循环分 段处理,一次循环只处理一个向量段。这种分段向量处理技术也称为分段开采。将长向量循环分段处理是由系统硬件和软件控 制完成的,对程序员透明。3.5 向量处理机虚拟存储器的特点现在学习的是第20页,共43页 例3.8 设A和B是长度为N的向量,考虑在Cray-1向量处理器上实现如下的循环操作。DO 10 I=1,N 10 A(I)=5.0*B(I)+1.0 当N 64时,可以用如下指令序列实现上 述循环操作:S15.0 ;将常数5.0送入标量寄存器S1S21.0 ;将常数1.0送入标量寄存器S2VLN ;在向量长度寄存器VL中设置向量长度N3.5 向量处理机虚拟存储器的特点现在学习的是第21页,共43页V0B ;从存储器中将向量B读入向量寄存器V0V1S1*V0;向量B中的每个元素分别和常数S1 相乘V2S2+V1;向量V1中的每个元素分别和常数 S2相加AV2;将计算结果从向量寄存器V2存入存 储器的向量A3.5 向量处理机虚拟存储器的特点现在学习的是第22页,共43页 当N 64时,就需要进行分段开采。在进 行分段开采时,首先必须根据向量长度计算 出循环次数K:一般来说,N并不一定总是64的倍数,所以如果N/64有余数,那么余数L为:3.5 向量处理机64K=NL=N 6464N虚拟存储器的特点现在学习的是第23页,共43页S15.0 ;将常数5.0送入标量寄存器S1S21.0 ;将常数1.0送入标量寄存器S2VLL ;在向量长度寄存器VL中设置向量长度LV0B ;从存储器中将向量B0.L-1读入向量 寄存器V0V1S1*V0;向量B中的每个元素分别和常数S1相乘;V2S2+V1;向量V1中的每个元素分别和常数S2相加AV2 ;将计算结果从向量寄存器V2存入存储器 的向量A0.L-1处理余数部分,计算L个元素 虚拟存储器的特点现在学习的是第24页,共43页For(I=0 to K-1)V0B ;从存储器中将向量BL+I*64L+I*64+63 读入向量寄存器V0V1S1*V0 ;向量B中的每个元素分别和常数S1相乘;V2S2+V1 ;向量V1中的每个元素分别和常数S2相加AV2 ;将计算结果V2存入存储器的向量 AL+I*64 L+I*64+63循环K次,分段处理 现在学习的是第25页,共43页衡量向量处理机性能的主要参数:1.向量指令的处理时间 执行一条向量长度为n的向量指令所需的时间为:3.5.3 向量处理机的性能评价 Tvp=Ts+Tvf+(n-1)Tcl Ts:向量处理单元流水线的建立时间,包括:向量起始地址的设置、计数 器加1、条件转移指令执行等。3.5 向量处理机现在学习的是第26页,共43页l Tvf:向量处理单元流水线的流过时间,它 是从向量指令开始执行到得到第一个 计算结果(向量元素)所需的时间。l Tc :向量处理单元流水线“瓶颈”段的执行 时间。如果向量处理单元流水线不存在“瓶颈”段,每 段的执行时间等于一个时钟周期,则上式也可 以写为:Tvp=s+e+(n-1)Tclk3.5 向量处理机现在学习的是第27页,共43页l s:向量处理单元流水线建立所需的时 钟周期数;l e:向量流水线流过所需的时钟周期数;l Tclk:时钟周期时间。可以再改写为:Tvp=(Tstart+n)Tclkl Tstart:向量功能部件启动所需的时钟 周期数;l n:向量元素个数。3.5 向量处理机现在学习的是第28页,共43页 对于一组向量指令,其执行时间主要取决于 三个因素:l 向量的长度l 向量操作之间是否链接l 向量功能部件的冲突和数据的相关性 把几条能在同一个时钟周期内一起开始执行的 向量指令集合称为一个编队。3.5 向量处理机现在学习的是第29页,共43页例3.9 假设每种向量功能部件只有一个,那么下面的一组向量指令能分成几个编队?LV V1,Rx MULTSV V2,R0,V1 LV V3,RyADDV V4,V2,V3 SV Ry,V43.5 向量处理机现在学习的是第30页,共43页解:第一编队:LV 第二编队:MULTSV;LV 第三编队:ADDV 第四编队:SVl 一个编队内所有向量指令执行完毕所需要 的时间为:clkistartclkijstartjicTnTTnTT)(max+=+=3.5 向量处理机现在学习的是第31页,共43页 假设第i个编队中所有向量指令处理的向量元素个数均为n。:第i个编队的执行时间;:第i个编队中第条指令所使用向量功能部 件的启动时钟周期数。icTijstartTl 经过编队后的向量指令序列总的执行时间为:clkstartclkmiistartmiclkistartmiicvTmnTTmnTTnTTT)()()(111+=+=+=3.5 向量处理机现在学习的是第32页,共43页l 编队并采用分段开采技术后,向量指令序列 执行所需的总的时钟周期数为:MVL:向量处理机的向量寄存器长度。mnTTMVLnMVLMVLnnmTTMVLmTTMVLnTstartloopstartloopstartloopn+=-+=)()()(3.5 向量处理机现在学习的是第33页,共43页例3.10 在某向量处理机上执行DAXPY的向量指令序列,也即计算双精度浮点向量表达式。其中和是双精度浮点向量,最初保存在外部存储器中,是一个双精度浮点常数,已存放在浮点寄存器F0中。计算该表达式的向量指令序列如下:LV V1,RxMULTFV V2,F0,V1LV V3,RyADDV V4,V2,V3SV Ry,V43.5 向量处理机现在学习的是第34页,共43页解:第一编队:LV V1,Rx 第二编队:MULTFV V2,F0,V1;LV V3,Ry 第三编队:ADDV V4,V2,V3 第四编队:SV Ry,V4 假设向量存储部件的启动需要12个时钟周期,向量乘法部件的启动需要7个时钟周期,向量加法部件的启动需要6个时钟周期,向量寄存器长度MVL64,那么对n个向量元素进行DAXPY表达式计算所需的时钟周期数为:3.5 向量处理机现在学习的是第35页,共43页 如果考虑采用向量链接技术,那么DAXPY的向量指令序列可以编队为:第一编队:LV V1,Rx;MULTFV V2,F0,V1 第二编队:LV V3,Ry;ADDV V4,V2,V3 第三编队:SV Ry,V4nnnnmnTTMVLnTstartloopn457644)126121215(64)(+=+=+=3.5 向量处理机现在学习的是第36页,共43页第一编队启动需要12+7=19个时钟周期;第二编队启动需要12+6=18个时钟周期;第三编队启动仍然需要12个时钟周期。采用链接技术后,对n个向量元素进行DAXPY表达式计算所需的时钟周期数为:nnnnmnTTMVLnTstartloopn364643)12181915(64)(+=+=+=3.5 向量处理机现在学习的是第37页,共43页2.向量处理机的峰值性能R R表示当向量长度为无穷大时,向量处理机 的最高性能,也称为峰值性能。向量处理机的峰值性能可以表示为:的时钟周期数向量指令序列执行所需时钟频率算次数向量指令序列中浮点运=nRlim 对于例题3.10向量指令序列中的操作而言,只有“MULTFV V2,F0,V1”和“ADDV V4,V2,V3”两条浮点操作向量指令。假设该向量处理机的时钟频率为200MHz,那么:3.5 向量处理机现在学习的是第38页,共43页的时钟周期数向量指令序列执行所需时钟频率算次数向量指令序列中浮点运=nRlim 2 n 200=nlimMFLOPSn64 64 3 nMFLOPS 2 n 200=nlim4 nMFLOPS=100 MFLOPS3.5 向量处理机现在学习的是第39页,共43页3.半性能向量长度n1/2 向量处理机的运行性能达到其峰值性能的 一半时所必须满足的向量长度。它是评价向量功能部件的流水线建立时间 对向量处理机性能影响的重要参数。对于上面的例子,由于该向量处理机的峰 值性能R100 MFLOPS,所以根据半性能向量长度得定义有:3.5 向量处理机现在学习的是第40页,共43页假设 64,那么有:n1/2643n1/2 2n1/2 20050 8n1/2 5n1/2 64,n1/2 12.8n1/2 132n1/2 200643n1/2n1/264 503.5 向量处理机现在学习的是第41页,共43页4.向量长度临界值nv 对于某一计算任务而言,向量方式的处理速 度优于标量串行方式处理速度时所需的最小向量 长度。对于上述DAXPY的例子,假设nv64,在标 量串行工作方式下实现DAXPY循环的开销为10个 时钟周期。那么在标量串行方式下,计算DAXPY 循环所需要的时钟周期数为:3.5 向量处理机现在学习的是第42页,共43页Ts=(1012127612)nv=59nv 在向量方式下,计算DAXPY循环所需要的时钟周期数为:Tv=643nv 根据向量长度临界值的定义,有:Tv=Ts 643nv=59nv3.5 向量处理机=6456=2nv现在学习的是第43页,共43页