计算机系统结构 第 3 章 流水线技术_向量_第1页
计算机系统结构 第 3 章 流水线技术_向量_第2页
计算机系统结构 第 3 章 流水线技术_向量_第3页
计算机系统结构 第 3 章 流水线技术_向量_第4页
计算机系统结构 第 3 章 流水线技术_向量_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-2-213.6 3.6 向量流水技术向量流水技术(第(第3章章 续)续)2022-2-22 向量处理机是向量处理机是具有向量数据表示和向量指令具有向量数据表示和向量指令系统的处理机。系统的处理机。 向量处理机是解决数值计算问题的一种高性向量处理机是解决数值计算问题的一种高性能计算机。能计算机。 向量处理机属向量处理机属大型或巨型机大型或巨型机,也可以用微机,也可以用微机加一台加一台向量协处理器向量协处理器组成。组成。 向量处理机一般都采用流水线结构,向量处理机一般都采用流水线结构,通常有通常有多条并行工作的流水线。多条并行工作的流水线。 必须把要解决的问题转化为向量运算,才能必须把要

2、解决的问题转化为向量运算,才能发挥向量处理机的效率。发挥向量处理机的效率。2022-2-233. 6.1 向量流水机的基本系统结构向量流水机的基本系统结构 1. 标量流水线的局限性标量流水线的局限性 处理机不具有向量数据表示,仅对标量数据进行流水处理机不具有向量数据表示,仅对标量数据进行流水处理。向量的处理通过标量循环程序完成。所以,处理。向量的处理通过标量循环程序完成。所以, (1) 流水线工作的时钟周期不可能取得很短。流水线工作的时钟周期不可能取得很短。 (2) 取指令及译码的速率受限。取指令及译码的速率受限。 即在一个时钟周期内最多只能启动一条指令,通常即在一个时钟周期内最多只能启动一条

3、指令,通常称为称为Flynn瓶颈。瓶颈。 2. 向量流水线向量流水线 处理机具有向量数据表示,可通过向量指令对向量中处理机具有向量数据表示,可通过向量指令对向量中的各元素进行流水处理。的各元素进行流水处理。2022-2-243.6.1.1 向量流水处理的主要特点向量流水处理的主要特点 (1) 在向量操作中,每个当前结果向量元素的计在向量操作中,每个当前结果向量元素的计算与以前结果向量元素的计算是相互独立的,算与以前结果向量元素的计算是相互独立的,有利于发挥流水线的性能,允许向量流水线有有利于发挥流水线的性能,允许向量流水线有较深的深度。较深的深度。 (2) 一条向量指令相当于一个标量循环,可降

4、低一条向量指令相当于一个标量循环,可降低对指令访问带宽的要求,也消除了由循环转移对指令访问带宽的要求,也消除了由循环转移可能引起的控制相关。可能引起的控制相关。 (3) 若向量指令所要访问的向量元素均相邻,则若向量指令所要访问的向量元素均相邻,则可利用多模块、交叉存取的方法加快向量元素可利用多模块、交叉存取的方法加快向量元素的存取速度,减少访存等待时间的开销。的存取速度,减少访存等待时间的开销。2022-2-25 在对相同数量的数据项进行操作时,在对相同数量的数据项进行操作时,向量操作要比一串标量指令操作更向量操作要比一串标量指令操作更快。快。 向量流水机可使访存和有效地址计向量流水机可使访存

5、和有效地址计算流水化。算流水化。 高档的向量机允许多个向量操作同高档的向量机允许多个向量操作同时进行,从而可开发对不同元素进时进行,从而可开发对不同元素进行多个向量操作的并行性。行多个向量操作的并行性。2022-2-263.6.1.2 3.6.1.2 向量机的基本系统结构向量机的基本系统结构 向量机系统结构的分类向量机系统结构的分类 存储器存储器 存储器工作方式向量机存储器工作方式向量机 向量操作的源向量和目的向量都取自或向量操作的源向量和目的向量都取自或存放到主存中。存放到主存中。 寄存器寄存器 寄存器工作方式向量机寄存器工作方式向量机 向量操作的源向量和目的向量都取自或向量操作的源向量和目

6、的向量都取自或存放到向量寄存器中。存放到向量寄存器中。2022-2-27典型的向量机基本系统结构典型的向量机基本系统结构 向量机主要由向量机主要由标量流水部件和标量流水部件和向量流水部件向量流水部件组成,包含了组成,包含了向向量功能部件、向量取存部件、量功能部件、向量取存部件、向量寄存器或向量缓冲部件、向量寄存器或向量缓冲部件、标量寄存器、标量处理部件以标量寄存器、标量处理部件以及向量控制器及向量控制器等部件。等部件。2022-2-28向量处理机的典型结构图向量处理机的典型结构图2022-2-29 例:一个典型向量求解问题:例:一个典型向量求解问题: YaXY 其中其中X和和Y为向量,初始值存

7、放在存储为向量,初始值存放在存储器中,器中,a为标量。为标量。 采用双精度运算时的算法:采用双精度运算时的算法:a乘乘X后再后再加加Y。2022-2-210 若用标量机运算,需要用标量指令对向若用标量机运算,需要用标量指令对向量中的每个元素进行一次乘、加和存储量中的每个元素进行一次乘、加和存储操作,并且为了实现循环操作,每次必操作,并且为了实现循环操作,每次必须要指明对须要指明对X和和Y中元素位置的下标变中元素位置的下标变量进行增量,并使操作次数每次减量进行增量,并使操作次数每次减1,以判别循环是否结束。以判别循环是否结束。 设设X和和Y向量的首地址分别存放在向量的首地址分别存放在Rx和和Ry

8、中,当向量元素长度为中,当向量元素长度为64时,用标时,用标量机处理的循环程序段为:量机处理的循环程序段为:2022-2-211 LD F0,a ;标量;标量a装入装入F0 ADDI R4,Rx,#512 ;将向量元素的末地址装;将向量元素的末地址装 ;入;入R4中中 LOOP:LD F2,0(Rx) ;取向量元素;取向量元素X(i) MULD F2,F0,F2 ;a与与X(i)相乘相乘 LD F4,0(Ry) ;取向量元素;取向量元素Y(i) ADDD F4,F2,F4 ;aX(i)与与Y(i)相加相加 SD 0(Ry),F4 ;存结果向量元素;存结果向量元素 ADDI Rx,Rx,#8 ;

9、增量向量元素;增量向量元素X下标下标 ADDI Ry,Ry,#8 ;增量向量元素;增量向量元素Y下标下标 SUB R20,R4,Rx ;R4RxR20,计算是,计算是 ;否到达限界值;否到达限界值 BNZ R20,LOOP ;若循环未结束,转;若循环未结束,转LOOP2022-2-212 用向量机完成同样操作:用向量机完成同样操作: LD F0,a ;标量;标量a装入装入F0 LV V1,Rx ;装入向量;装入向量X,LV为向为向 量取指令量取指令 MULTV V2,F0,V1 ;向量;向量X与标量与标量a相乘相乘 LV V3,Ry ;装入向量;装入向量Y ADDV V4,V2,V3 ;向量加

10、;向量加aXY SV Ry,V4 ;存结果向量,;存结果向量,SV为为向量存指令向量存指令2022-2-213 因为向量指令是对因为向量指令是对64个元素进行操作,个元素进行操作,且没有对元素下标变量增量和判循环是且没有对元素下标变量增量和判循环是否结束的指令,所以向量机只需执行否结束的指令,所以向量机只需执行6条指令即可完成操作,从而大大降低了条指令即可完成操作,从而大大降低了对指令带宽的要求。对指令带宽的要求。2022-2-214标量机与向量机计算标量机与向量机计算YaXY的比较的比较标量机标量机向量机向量机编程方式编程方式 采用标量指令,采用标量指令,循环程序循环程序采用向量采用向量指令

11、指令指令条数指令条数96425786联锁频率联锁频率高高低低对指令带对指令带宽的要求宽的要求高高不高不高2022-2-2153.6.1.3 3.6.1.3 向量启动时间和启动率向量启动时间和启动率 一条向量指令执行所需时间一条向量指令执行所需时间Tvp: TvpTstnIr Tst:向量流水线的启动时间,包括流水:向量流水线的启动时间,包括流水线固有的延迟时间,用于设置为完成向线固有的延迟时间,用于设置为完成向量操作所需的相应参数量操作所需的相应参数(如向量长度等如向量长度等)。 n:向量中元素长度:向量中元素长度 Ir:启动率,表示向量流水线填满后,:启动率,表示向量流水线填满后,每流出一个

12、结果所需时间。每流出一个结果所需时间。2022-2-216 例:一个向量乘法流水部件的启动时间为例:一个向量乘法流水部件的启动时间为l0个时钟个时钟周期。启动后的启动率为周期。启动后的启动率为1。对于长度为。对于长度为64的向量的向量乘法,产生每个向量元素结果所需时钟周期数为:乘法,产生每个向量元素结果所需时钟周期数为: 对于运行速度较慢的向量流水操作,启动时间的对于运行速度较慢的向量流水操作,启动时间的大小对它的影响不大,但对于启动率为大小对它的影响不大,但对于启动率为1的高速向的高速向量流水操作,启动时间的增加就将使性能受到较量流水操作,启动时间的增加就将使性能受到较大影响。大影响。 16

13、. 164641064I64Trst向量长度总的执行时间每个结果所需时钟周期2022-2-217寄存器寄存器 寄存器工作方式的影响因素寄存器工作方式的影响因素 向量功能部件流水线的深度向量功能部件流水线的深度 流水线的启动时间主要取决于功能部件流水线的流水线的启动时间主要取决于功能部件流水线的深度。因为这是获取第一个流水结果所需的时间。深度。因为这是获取第一个流水结果所需的时间。 向量功能部件接收一个操作数的频率向量功能部件接收一个操作数的频率 流水线的启动率主要取决于相应的向量功能部件流水线的启动率主要取决于相应的向量功能部件接收一个操作数的频率。当流水线处于充分流水接收一个操作数的频率。当

14、流水线处于充分流水状态时,就能在每个时钟周期开始时立即对一个状态时,就能在每个时钟周期开始时立即对一个新操作数进行运算,从而可使启动率达到新操作数进行运算,从而可使启动率达到1。2022-2-2183.6.2 向量操作长度控制和向量访问步长向量操作长度控制和向量访问步长 1. 向量操作长度控制向量操作长度控制 实际程序中的向量长度往往并不与实际程序中的向量长度往往并不与向量机的自然向量长度相同。向量机的自然向量长度相同。 自然向量长度:向量寄存器型的向量机自然向量长度:向量寄存器型的向量机中,每个向量寄存器可存放的向量元素中,每个向量寄存器可存放的向量元素个数。个数。2022-2-219 程序

15、中一个具体的向量操作长度在程序中一个具体的向量操作长度在编译时经常是未知的,因为在一个代码编译时经常是未知的,因为在一个代码段中可能需要不同的向量长度。段中可能需要不同的向量长度。 例如求解单精度向量循环例如求解单精度向量循环SAXPY的代的代码段为:码段为: for (i=0;in;i+) Yia*XiYi;2022-2-220 可见向量操作长度依赖于可见向量操作长度依赖于n值,而这个值,而这个n值通常在编译时无法知道,往往要在运值通常在编译时无法知道,往往要在运行时才可确定,而且这个长度也可能是行时才可确定,而且这个长度也可能是过程的参数,因此在执行时很易改变。过程的参数,因此在执行时很易

16、改变。 解决方法:解决方法:采用一个向量长度寄存器,采用一个向量长度寄存器,存放某一代码段操作的长度,由它来控存放某一代码段操作的长度,由它来控制向量操作的长度以及向量的装载和存制向量操作的长度以及向量的装载和存储。储。2022-2-221 在向量长度寄存器中存放的向量长度值在向量长度寄存器中存放的向量长度值不能超过向量寄存器的长度不能超过向量寄存器的长度(MVL)。 向量长度小于向量寄存器长度时,均可向量长度小于向量寄存器长度时,均可放入向量寄存器。放入向量寄存器。 向量长度大于向量寄存器长度时,需将向量长度大于向量寄存器长度时,需将向量长度按向量寄存器长度分段,分段向量长度按向量寄存器长度

17、分段,分段后的向量长度即是每次向量操作的长度,后的向量长度即是每次向量操作的长度,它必须等于或小于向量寄存器长度。它必须等于或小于向量寄存器长度。2022-2-222 采用分段技术后,采用分段技术后, SAXPY循环可写成如下形式:循环可写成如下形式: low0; VLn % MVL; *找出零头长度值找出零头长度值 for ( j0; jn/MVL; j+) *外循环外循环 for ( ilow; ilowVL;i+) *以长度以长度VL操作操作 Yia*XiYi ; *主要操作主要操作 lowlowVL ; *下一向量的开始下一向量的开始 VLMVL ; *将长度值恢复成将长度值恢复成MV

18、L ; 经分段处理后,第一段长度为经分段处理后,第一段长度为n mod MVL,而以,而以后各段的长度均为后各段的长度均为MVL。2022-2-2232. 向量访问步长向量访问步长 存储器是一维线性空间,当需要在其中存放存储器是一维线性空间,当需要在其中存放二维或多维数组时,必须将其各元素映射到二维或多维数组时,必须将其各元素映射到一维线性空间中。一维线性空间中。 以行为主的存储方式:以行为主的存储方式: 当按行进行元素访问时,要访问的元素的地当按行进行元素访问时,要访问的元素的地址是相邻连续的。当按列进行元素访问时,址是相邻连续的。当按列进行元素访问时,要访问的元素的地址是不连续的,需要采用

19、要访问的元素的地址是不连续的,需要采用向量跨步方式进行访问。向量跨步方式进行访问。2022-2-224 例:元素为例:元素为100100的的ABC矩阵乘法的程序矩阵乘法的程序段为:段为: for ( i0; i100;i+) for ( j0; j100;j+) Ai,j0.0; for ( k0; k75%时,时,1亿次亿次/秒秒 主存系统主存系统 模模31体交叉访问,存储周期体交叉访问,存储周期400ns I/O通道通道 20个,接外围系统个,接外围系统2022-2-263 (3)中央处理机结构)中央处理机结构 三部分组成:三部分组成:Regs、流水部件和指令缓冲部件、流水部件和指令缓冲部

20、件 操作寄存器和后援寄存器操作寄存器和后援寄存器 两组向量寄存器:两组向量寄存器: (8x64x64b)x2 V, V 向量长度寄存器:向量长度寄存器:VL ( 7b, 128, 即最多可传即最多可传64对向量元素)对向量元素) 向量控制寄存器向量控制寄存器 VM(64b), VM(64b) (屏蔽寄存器,(屏蔽寄存器,用于向量的测试、归并、压缩和还原)用于向量的测试、归并、压缩和还原) 标量寄存器标量寄存器S(8x64b)和标量后援寄存器和标量后援寄存器T(64x64b) M 地址寄存器地址寄存器A(8x24b)和地址后援寄存器和地址后援寄存器B(64x64b)2022-2-264 功能部件

21、功能部件 1818个独立的专用功能部件个独立的专用功能部件 一组地址部件一组地址部件- -24b24b的短整运算的短整运算 AAAA(1 1), AM, AM(3 3) 一组标量部件一组标量部件- -64b64b整数和逻辑运算整数和逻辑运算 对对S S运算运算SA SA (1 1), SS, SS左右移位左右移位(1 1), , SLg SLg (0 0),SP,SP计数计数(1 1,2 2) 二组浮点部件二组浮点部件- -向量、标量运算(分别与向量、标量运算(分别与V, VV, V接)接) FA FA (5 5), FM , FM (6 6), FR, FR倒数近似值倒数近似值(6 6) 二

22、组向量部件二组向量部件- -6464位的非浮点数向量运算(位的非浮点数向量运算(V,VV,V) VA VA (1 1), VS, VS左右移位左右移位(3 3,2 2), VLg , VLg (1 1)2022-2-265V V寄存器与功能部件的使用寄存器与功能部件的使用向量功能部件,浮点功能部件VkVjVi向量功能部件,浮点功能部件VkVjVi2022-2-266 指令控制部件指令控制部件 程序字计数器程序字计数器P(24b)P(24b) 指令缓冲站指令缓冲站IB(4IB(4个站个站x16x16b)x16x16b) 指令字缓冲寄存器指令字缓冲寄存器BIP (16b)BIP (16b) 下一指

23、令字寄存器下一指令字寄存器NIP (16b)NIP (16b) 现行指令字寄存器现行指令字寄存器CIP (16b)CIP (16b) 低部指令字寄存器低部指令字寄存器LIP (16b)LIP (16b) 指令流出控制部件指令流出控制部件 ICIC 4 4类向量指令格式与类向量指令格式与Cray-1Cray-1相似,但访存流水相似,但访存流水m=16m=162022-2-267向量与标量性能的平衡实际的应用问题实际的应用问题中通常既有中通常既有向量计算又有又有标 量计算,而且两类计算有一定的比例,而且两类计算有一定的比例 向量平衡点向量平衡点(vector balance point):为了使向

24、为了使向 量硬件设备和标量硬件设备的利用率相等,量硬件设备和标量硬件设备的利用率相等, 一个程序中向量代码所占的百分比。一个程序中向量代码所占的百分比。 关键问题是:关键问题是:希望向量硬件和标量硬件都能 够充分利用,不要空闲。,不要空闲。2022-2-268例如:一个系统的向量运算速度为一个系统的向量运算速度为90Mflops, 标量运算速度为标量运算速度为10Mfolps。如果程序的。如果程序的90 是向量运算,是向量运算,10是标量运算。则向量平衡是标量运算。则向量平衡 点为点为0.9。硬件利用率最高。硬件利用率最高。 向量处理机的向量平衡点向量处理机的向量平衡点必须与用户程序的必须与用

25、户程序的 向量化程度相匹配。向量化程度相匹配。IBM向量计算机的设计思想向量计算机的设计思想与上述方法不同,与上述方法不同,它维持较低的向量与标量比例,定在它维持较低的向量与标量比例,定在35的的范围之间。这种做法能够适应通用应用问题范围之间。这种做法能够适应通用应用问题对标量和向量处理要求。对标量和向量处理要求。2022-2-269机器型号Fujitsu VP400Cray ISCray 2SCray X-MPCray Y-MPHitachi S820NEC SX2向量性能Mflops标量性能Mflops向量平衡点85.09.80.90151.511.20.93143.313.10.9220

26、1.617.00.92737.317.80.98424.29.50.98207.16.60.972022-2-2703.6.4.2 3.6.4.2 链接技术链接技术 链接特性:链接特性: 当相邻两条指令存在先写后读相关时,当相邻两条指令存在先写后读相关时,只要前一条指令的结果向量的第一个元只要前一条指令的结果向量的第一个元素产生并存入结果向量寄存器,就可以素产生并存入结果向量寄存器,就可以将它作为下一条指令的源操作数,启动将它作为下一条指令的源操作数,启动下一条指令的运算,从而将两个或两个下一条指令的运算,从而将两个或两个以上的功能部件链接起来。以上的功能部件链接起来。2022-2-271 链

27、接技术:链接技术:当从一个流水线部件得到的当从一个流水线部件得到的结果直接送入另一个功能流水线的操作结果直接送入另一个功能流水线的操作数寄存器时所发生的连接过程。换句话数寄存器时所发生的连接过程。换句话说,中间结果不必送回存储器或寄存器,说,中间结果不必送回存储器或寄存器,并在向量操作完成以前就使用它。并在向量操作完成以前就使用它。 2022-2-272 在寄存器在寄存器寄存器系统结构中,所寄存器系统结构中,所有的向量操作数在把它们送入流水有的向量操作数在把它们送入流水线之前,都要预先装入向量寄存器线之前,都要预先装入向量寄存器中。中间和最后结果中。中间和最后结果( (流水线输出流水线输出)

28、)在把它们存入主存储器以前,也要在把它们存入主存储器以前,也要把它们装入向量寄存器中。把它们装入向量寄存器中。 2022-2-273 链接技术是利用向量指令间存在的链接技术是利用向量指令间存在的先写后读的数据相关性来加快向量先写后读的数据相关性来加快向量指令序列执行速度的技术。指令序列执行速度的技术。 链接技术的实质是标量链接技术的实质是标量流水定向流水定向传传送方法在向量寄存器中的应用。送方法在向量寄存器中的应用。2022-2-274 当发出向量指令时,所要求的功能流水当发出向量指令时,所要求的功能流水线和操作数寄存器便要预定若干个时钟线和操作数寄存器便要预定若干个时钟周期,其值取决于向量长

29、度。使用同一周期,其值取决于向量长度。使用同一组功能部件或操作数寄存器的后继向量组功能部件或操作数寄存器的后继向量指令在预定被释放之前是不能发出的。指令在预定被释放之前是不能发出的。两个或更多的向量指令如果是不相关的,两个或更多的向量指令如果是不相关的,便可以同时使用不同功能流水线和不同便可以同时使用不同功能流水线和不同的向量寄存器。这种并发的指令能以相的向量寄存器。这种并发的指令能以相继的时钟周期发出。继的时钟周期发出。 2022-2-275 结果寄存器可能成为后继指令的操作数寄存结果寄存器可能成为后继指令的操作数寄存器。在器。在Cray 1中,这种技术称为两条流水线中,这种技术称为两条流水

30、线的链接的链接(chaining)。链接是从流水线的内部。链接是从流水线的内部定向概念发展而来的。定向概念发展而来的。 链接允许当第一个链接允许当第一个结果刚刚可用时就马上发出相继的操作。当结果刚刚可用时就马上发出相继的操作。当然,所需要的功能流水线和操作数寄存器必然,所需要的功能流水线和操作数寄存器必须恰当地预定,否则,链接操作就不得不挂须恰当地预定,否则,链接操作就不得不挂起直到所需要的资源变为可用为止。起直到所需要的资源变为可用为止。 2022-2-276功能部件和操作数寄存器的预定(冲突)功能部件和操作数寄存器的预定(冲突)2022-2-277 例:向量加和向量乘的操作例:向量加和向量

31、乘的操作 ADDV V1,V2,V3 ;V1V2V3 MULTV V4,V1,V5 ;V4V1V5 这两条指令间对这两条指令间对V1向量寄存器存在先写后读相关,向量寄存器存在先写后读相关,如果使向量寄存器如果使向量寄存器V1在同一时钟周期内,既接收在同一时钟周期内,既接收一个功能部件送来的运算结果,又可把这一结果一个功能部件送来的运算结果,又可把这一结果作为下一个向量指令运算所需的源操作数送给另作为下一个向量指令运算所需的源操作数送给另一个功能部件,就可使这两个部件链接起来进行一个功能部件,就可使这两个部件链接起来进行操作。通常把这种链接称为超级向量操作。操作。通常把这种链接称为超级向量操作。

32、 当链接进入充分流水操作状态后,在一个时钟周当链接进入充分流水操作状态后,在一个时钟周期内就可同时获取两个操作结果。期内就可同时获取两个操作结果。2022-2-278 例:以下例:以下4条向量指令序列链接在一起执行一种复条向量指令序列链接在一起执行一种复合的功能:合的功能: V0存储器存储器 ;读存储器;读存储器 V2V0+V1 ;向量加;向量加 V3V2A3 ;右移;右移 V5V3V4 ;求逻辑积;求逻辑积 下图给出的图解说明表示把存储器读流水线、向下图给出的图解说明表示把存储器读流水线、向量加流水线、向量移位流水线和向量逻辑乘流水量加流水线、向量移位流水线和向量逻辑乘流水线链接成一个较长的

33、流水线。寄存器线链接成一个较长的流水线。寄存器A3的内容决的内容决定移位计数值。定移位计数值。2022-2-2792022-2-280时间特征时间特征2022-2-2812022-2-282 例:要进行向量运算例:要进行向量运算 DA(BC) 设向量长度设向量长度64,且,且B和和C已由存储器取至已由存储器取至V0和和V1,则完成运算的向量指令为:则完成运算的向量指令为: LD V3,A ;V3A ADDV V2,V0,V1 ;V2V0V1 MULTV V4,V2,V3 ;V4V2V3 第一、二条指令因既无向量寄存器使用冲突,也无第一、二条指令因既无向量寄存器使用冲突,也无功能部件使用冲突,因

34、而可并行执行。第三条指令功能部件使用冲突,因而可并行执行。第三条指令与第一、二条指令均存在先写后读相关冲突,因而与第一、二条指令均存在先写后读相关冲突,因而可将第三条指令与第一、二条指令链接执行。可将第三条指令与第一、二条指令链接执行。2022-2-2832022-2-284 采用并行和链接加速技术后,当被加工向量长度采用并行和链接加速技术后,当被加工向量长度为为N时,执行所需时间为:时,执行所需时间为: (161)(171)(N1)17N1N16拍拍 若这三条指令全部用串行方法则所需时间为:若这三条指令全部用串行方法则所需时间为: (161)N1(161)N1(171)N13N22拍拍 若前

35、两条指令并行执行,第三条指令串行执行,若前两条指令并行执行,第三条指令串行执行,则所需时间为:则所需时间为: (161)N1(171)N12N15拍拍 注意:由于同步的要求,数据进入和流出每个功注意:由于同步的要求,数据进入和流出每个功能部件,包括访存都需要能部件,包括访存都需要1拍时间。拍时间。2022-2-285 实现链接的时间上的要求:实现链接的时间上的要求: 只有当前一指令的第一个结果分量送入结果向只有当前一指令的第一个结果分量送入结果向量寄存器的那一个时钟周期方可链接量寄存器的那一个时钟周期方可链接,若错过该,若错过该时刻就无法进行链接,只有等前一向量指令全部时刻就无法进行链接,只有

36、等前一向量指令全部执行完毕,释放向量寄存器资源后才能执行后面执行完毕,释放向量寄存器资源后才能执行后面指令。指令。 在上面的例子中,当一条向量指令的两个源操作在上面的例子中,当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,数分别是两条先行指令的结果寄存器时,要求先要求先行的两条指令产生运算结果的时间必须相等,即行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的延迟时间相等要求有关功能部件的延迟时间相等(如上例中的访如上例中的访存和浮点加功能部件延时均为存和浮点加功能部件延时均为6个时间单位个时间单位)。 进行进行链接的向量指令的向量长度必须相等链接的向量指令的向量长度必

37、须相等,否,否则就不可能链接。则就不可能链接。2022-2-286 例:在例:在CRAY1机中,浮点功能部件中各功能段机中,浮点功能部件中各功能段的执行时间为:的执行时间为: 浮点加法:浮点加法:6拍;浮点乘法:拍;浮点乘法:7拍;求倒数:拍;求倒数:14拍;拍;存储器存存储器存/取:取:6拍;启动功能部件:拍;启动功能部件: 1拍;打入结拍;打入结果:果: 1拍。拍。 分析任务数为分析任务数为50时,下列指令段的完成时间:时,下列指令段的完成时间: V0存储器存储器 V3V1V2 V4V0V3 V0V4V52022-2-287 分析:分析: 与与无功能和寄存器冲突,可并行。无功能和寄存器冲突

38、,可并行。 与与先写后读数据相关,可以链接。先写后读数据相关,可以链接。 与与有功能冲突,必须在有功能冲突,必须在与与执行完后,才执行完后,才能启动能启动,即,即只能串行工作只能串行工作 。 V0存储器存储器 V3V1V2 V4V0V3 V0V4V5 执行时间:执行时间: (161)(171)(501)(161)(501) 123拍拍并行并行链接链接串行串行2022-2-288 例:分析在例:分析在CRAY1机中,任务数为机中,任务数为50时,下列时,下列指令段的完成时间。指令段的完成时间。 V0存储器存储器 V1V2V3 V6V4V5 分析:三条指令均无功能冲突,可采用全并行的分析:三条指令

39、均无功能冲突,可采用全并行的方式,指令段的完成时间为:方式,指令段的完成时间为: (171)(501)58拍拍2022-2-289 例:分析在例:分析在CRAY1机中,任务数为机中,任务数为50时,下列时,下列指令段的完成时间,设浮点求倒数的执行时间为指令段的完成时间,设浮点求倒数的执行时间为14拍。拍。 V2 V0V1 V3存储器存储器 V4V2V3 V51/ V4 分析:分析: 与与无功能和寄存器冲突,可并行。无功能和寄存器冲突,可并行。 与与节拍不一致,节拍不一致, 不能与不能与、链接,只能链接,只能串行执行。串行执行。 与与先写后读数据相关,可以链接。先写后读数据相关,可以链接。 执行

40、时间:执行时间: (171)(501) (161)(1141)(501)131拍拍并行并行链接链接串行串行2022-2-2903.6.5 3.6.5 向量处理性能的评估参数和方法向量处理性能的评估参数和方法 衡量向量处理机的性能主要是向量衡量向量处理机的性能主要是向量指令的处理时间指令的处理时间Tvp、向量长度为无、向量长度为无穷大时的向量处理机的最大性能穷大时的向量处理机的最大性能R、半性能向量长度半性能向量长度n1/2和向量方式的工和向量方式的工作速度优于标量串行方式工作时所作速度优于标量串行方式工作时所需的向量长度临界值需的向量长度临界值nv等。下面讨等。下面讨论这些参数。论这些参数。

41、2022-2-291 在向量处理机上,执行一条向量长度为在向量处理机上,执行一条向量长度为n的的向量指令的时间向量指令的时间Tvp可表示为:可表示为: TvpTsTvf(n-1)Tc 其中,其中,Ts为向量流水线的建立时间,它包括为向量流水线的建立时间,它包括向量起始地址的设置、计数器加向量起始地址的设置、计数器加1,条件转,条件转移指令执行等。移指令执行等。Tvf为向量流水线的流过时为向量流水线的流过时间,它是一条指令从开始译码到流过流水线间,它是一条指令从开始译码到流过流水线得到第一个结果的时间。得到第一个结果的时间。Tc为流水线为流水线“瓶颈瓶颈”段的执行时间。段的执行时间。1. 向量指

42、令的处理时间向量指令的处理时间Tvp 2022-2-292 如果不存在如果不存在“瓶颈瓶颈”流水段,每段的执流水段,每段的执行时间都等于一个时钟周期,则上式也行时间都等于一个时钟周期,则上式也可以写成:可以写成: Tvpse(n-1) 其中,其中,s为向量流水线建立时间所需的为向量流水线建立时间所需的时钟周期数,时钟周期数,e为向量流水线流过时间为向量流水线流过时间所需的时钟周期数,所需的时钟周期数,n为向量长度,为向量长度,为为时钟周期。时钟周期。 2022-2-293向量编队向量编队 一组向量操作的执行时间主要取决于下面三一组向量操作的执行时间主要取决于下面三个因素:向量的长度、向量操作之

43、间是否存个因素:向量的长度、向量操作之间是否存在流水功能部件的冲突和数据的相关性。在流水功能部件的冲突和数据的相关性。 1)能在一个时钟周期内一起开始执行的向)能在一个时钟周期内一起开始执行的向量指令称为一个编队。(一定不存在流水功量指令称为一个编队。(一定不存在流水功能部件的冲突和数据的相关性能部件的冲突和数据的相关性RAW除外除外) 2)有冲突和相关的指令分在不同的编队。)有冲突和相关的指令分在不同的编队。 3)一个编队的运行时间为队中耗时最长的)一个编队的运行时间为队中耗时最长的指令运行时间指令运行时间2022-2-294 例例3.6.5.1:假设每种流水功能部件只有一:假设每种流水功能

44、部件只有一个,则下面一组向量操作能分成个,则下面一组向量操作能分成4个编队:个编队: LV V1, Rx ;取向量;取向量x MULTSV V2,F0,V1 ;向量和标量相乘;向量和标量相乘 LV V3,Ry ;取向量;取向量Y ADDV V4,V2,V3 ;加法;加法 SV Ry,V4 ;存结果;存结果 第一条指令第一条指令LV为第一个编队。为第一个编队。MULTSV指令因为指令因为与第一条与第一条LV指令相关,它们不能在同一个编队中。指令相关,它们不能在同一个编队中。2022-2-295 MULTSV指令和第二条指令和第二条LV指令之间不存在功能部指令之间不存在功能部件冲突和数据相关,所以

45、这两条指令为第二个编件冲突和数据相关,所以这两条指令为第二个编队。队。ADDV指令与第二条指令与第二条LV指令数据相关,所以指令数据相关,所以ADD为第三个编队。为第三个编队。SV指令与指令与ADDV指令数据相指令数据相关,所以它为第四个编队。所以这一组向量操作关,所以它为第四个编队。所以这一组向量操作划分为以下四个编队划分为以下四个编队: 1LV 2MULTSV LV 3ADDV 4SV 2022-2-296 一个编队计算一个元素的执行时间记为一个编队计算一个元素的执行时间记为Tchime,它与向量长度无关(,它与向量长度无关( 1拍)。因拍)。因此,一组由此,一组由m个编队组成的向量操作的

46、执个编队组成的向量操作的执行时间为行时间为m个个Tchime。如果向量长度为。如果向量长度为n,则整个程序的向量操作的执行时间为则整个程序的向量操作的执行时间为mn个时钟周期。上述例子中,因为整个时钟周期。上述例子中,因为整个程序分为个程序分为4个编队,所以要花费个编队,所以要花费4个个Tchime。2022-2-297 除了上述向量操作的真正执行时间除了上述向量操作的真正执行时间外,还需要考虑向量的启动时间外,还需要考虑向量的启动时间Tstart,Tstart是向量操作流水线的延是向量操作流水线的延迟,它等于流水功能部件的流水段迟,它等于流水功能部件的流水段数,也即流水线的深度。它和上述数,

47、也即流水线的深度。它和上述的向量流水线的流过时间几乎相等。的向量流水线的流过时间几乎相等。2022-2-298 例例3.6.5.2 :假设一台向量处理机中功能:假设一台向量处理机中功能部件的启动开销为:取数和存数部件为部件的启动开销为:取数和存数部件为12个时钟周期、乘法部件为个时钟周期、乘法部件为7个时钟周个时钟周期、加法部件为期、加法部件为6个时钟周期。则例个时钟周期。则例6.5.1中每个编队的开始时间、获得第一中每个编队的开始时间、获得第一个结果元素的时间和获得最后一个结果个结果元素的时间和获得最后一个结果元素的时间如下表所示。元素的时间如下表所示。 (未考虑链接情况)(未考虑链接情况)

48、2022-2-299 如果向量长度如果向量长度n为为64,则得到一个结果元素的平均,则得到一个结果元素的平均时间为:时间为:4+(41/64)=4.64个时钟周期。个时钟周期。编队编队开始开始t第第1个结果个结果t最后最后1个结果个结果t1. LV01212+(n-1)2. MULTSV LV11+n+112+n+1224+n+ (n-1)3. ADDV24+2n24+2n+630+2n+ (n-1)4. SV30+3n30+3n+1242+3n+ (n-1)2022-2-2100程序段的执行时间程序段的执行时间 考虑向量长度大于向量寄存器长度时,则需考虑向量长度大于向量寄存器长度时,则需要分

49、段开采。分段开采的开销由执行标量代要分段开采。分段开采的开销由执行标量代码的开销码的开销Tloop和每个编队的向量启动开销和每个编队的向量启动开销Tstart组成。所以向量长度为组成。所以向量长度为n的向量操作的向量操作(程序段)的整个执行时间为:(程序段)的整个执行时间为:chimestartloopnTnm)TT(MVLnT2022-2-2101 为了简单起见,我们把为了简单起见,我们把Tloop看作是看作是一个常数,一个常数,Cray 1机器的机器的Tloop约等约等于于15。 下面我们用例子来说明下面我们用例子来说明Tn和和Tstart的计算。的计算。2022-2-2102 例例3.6

50、.5.3:在一台向量处理机上实:在一台向量处理机上实现现ABs操作,其中操作,其中A和和B是长度是长度为为200的向量,的向量,s是一个标量。向量是一个标量。向量寄存器长度为寄存器长度为64。各功能部件的启。各功能部件的启动时间见本动时间见本PPT50。求总的执行时。求总的执行时间。间。2022-2-2103 解:因为向量长度超过了向量寄存器的长度,解:因为向量长度超过了向量寄存器的长度,所以要采取分段开采方法。每次循环主要由所以要采取分段开采方法。每次循环主要由下面下面3条向量指令组成条向量指令组成: LV V1,Rb MULTSV V2,V1,F0 (s已预存入已预存入F0) SV Ra

51、,V2 3条指令相关,条指令相关,m=3; n=200 n/64=4 (取整,(取整,零头算零头算1组)组)2022-2-2104 Tn=4(15+Tstart)+32001 =660+4 Tstart 又又3组串行工作,组串行工作, Tstart=7(load)+7(mul)+6(store)=20 Tn=660+80=740 节拍节拍 一个结果元素的平均执行时间一个结果元素的平均执行时间(包括启包括启动开销动开销)为为740/200=3.7。 下面讨论编队中考虑链接的情况下面讨论编队中考虑链接的情况2022-2-2105 例例3.6.5.4:在某台向量处理机上执行:在某台向量处理机上执行DAXPY (Double-Precisio n a* X plus Y)代码,即完成代码,即完成YaX+Y,其中其中X和和Y是向量,最初存放在内存。是向量,最初存放在内存。a是一是一个标量。它们的向量指令如下:个标量。它们的向量指令如下: (MVL=64)LV V1, Rx ;12MULTSV V2,F0,V1 ;7 LV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论