第3章流水线技术_向量优秀PPT.ppt
《第3章流水线技术_向量优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3章流水线技术_向量优秀PPT.ppt(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章流水线技术章流水线技术_向量向量2022/12/51现在学习的是第1页,共116页向量处理机是向量处理机是具有向量数据表示和向量指令系具有向量数据表示和向量指令系统的处理机。统的处理机。向量处理机是解决数值计算问题的一种高性向量处理机是解决数值计算问题的一种高性能计算机。能计算机。向量处理机属向量处理机属大型或巨型机大型或巨型机,也可以用微机加,也可以用微机加一台一台向量协处理器向量协处理器组成。组成。向量处理机一般都采用流水线结构,向量处理机一般都采用流水线结构,通常有多通常有多条并行工作的流水线。条并行工作的流水线。必须把要解决的问题转化为向量运算,才能发必须把要解决的问题转化为向
2、量运算,才能发挥向量处理机的效率。挥向量处理机的效率。2022/12/52现在学习的是第2页,共116页3.6.1向量流水机的基本系统结构向量流水机的基本系统结构1.标量流水线的局限性标量流水线的局限性处理机不具有向量数据表示,仅对标量数据进行流水处理机不具有向量数据表示,仅对标量数据进行流水处理。向量的处理通过标量循环程序完成。所以,处理。向量的处理通过标量循环程序完成。所以,(1)流水线工作的时钟周期不可能取得很短。流水线工作的时钟周期不可能取得很短。(2)取指令及译码的速率受限。取指令及译码的速率受限。即在一个时钟周期内最多只能启动一条指令,通常称即在一个时钟周期内最多只能启动一条指令,
3、通常称为为Flynn瓶颈。瓶颈。2.向量流水线向量流水线处理机具有向量数据表示,可通过向量指令对向量中处理机具有向量数据表示,可通过向量指令对向量中的各元素进行流水处理。的各元素进行流水处理。2022/12/53现在学习的是第3页,共116页3.6.1.1向量流水处理的主要特点向量流水处理的主要特点(1)在向量操作中,每个当前结果向量元素的计算在向量操作中,每个当前结果向量元素的计算与以前结果向量元素的计算是相互独立的,有利于与以前结果向量元素的计算是相互独立的,有利于发挥流水线的性能,允许向量流水线有较深的深度。发挥流水线的性能,允许向量流水线有较深的深度。(2)一条向量指令相当于一个标量循
4、环,可降低对一条向量指令相当于一个标量循环,可降低对指令访问带宽的要求,也消除了由循环转移可能引指令访问带宽的要求,也消除了由循环转移可能引起的控制相关。起的控制相关。(3)若向量指令所要访问的向量元素均相邻,则可若向量指令所要访问的向量元素均相邻,则可利用多模块、交叉存取的方法加快向量元素的存取利用多模块、交叉存取的方法加快向量元素的存取速度,减少访存等待时间的开销。速度,减少访存等待时间的开销。2022/12/54现在学习的是第4页,共116页在对相同数量的数据项进行操作时,向在对相同数量的数据项进行操作时,向量操作要比一串标量指令操作更快。量操作要比一串标量指令操作更快。向量流水机可使访
5、存和有效地址计算向量流水机可使访存和有效地址计算流水化。流水化。高档的向量机允许多个向量操作同时进高档的向量机允许多个向量操作同时进行,从而可开发对不同元素进行多个向行,从而可开发对不同元素进行多个向量操作的并行性。量操作的并行性。2022/12/55现在学习的是第5页,共116页3.6.1.2 3.6.1.2 向量机的基本系统结构向量机的基本系统结构向量机系统结构的分类向量机系统结构的分类存储器存储器存储器工作方式向量机存储器工作方式向量机向量操作的源向量和目的向量都取自或存向量操作的源向量和目的向量都取自或存放到主存中。放到主存中。寄存器寄存器寄存器工作方式向量机寄存器工作方式向量机向量操
6、作的源向量和目的向量都取自或向量操作的源向量和目的向量都取自或存放到向量寄存器中。存放到向量寄存器中。2022/12/56现在学习的是第6页,共116页典型的向量机基本系统结构典型的向量机基本系统结构向量机主要由向量机主要由标量流水部件和向标量流水部件和向量流水部件量流水部件组成,包含了组成,包含了向量功能向量功能部件、向量取存部件、向量寄存器部件、向量取存部件、向量寄存器或向量缓冲部件、标量寄存器、标或向量缓冲部件、标量寄存器、标量处理部件以及向量控制器量处理部件以及向量控制器等部件。等部件。2022/12/57现在学习的是第7页,共116页向量处理机的典型结构图向量处理机的典型结构图202
7、2/12/58现在学习的是第8页,共116页例:一个典型向量求解问题:例:一个典型向量求解问题:YaXY其中其中X和和Y为向量,初始值存放在存储器为向量,初始值存放在存储器中,中,a为标量。为标量。采用双精度运算时的算法:采用双精度运算时的算法:a乘乘X后再加后再加Y。2022/12/59现在学习的是第9页,共116页若用标量机运算,需要用标量指令对向量若用标量机运算,需要用标量指令对向量中的每个元素进行一次乘、加和存储操作,中的每个元素进行一次乘、加和存储操作,并且为了实现循环操作,每次必须要指明并且为了实现循环操作,每次必须要指明对对X和和Y中元素位置的下标变量进行增量,中元素位置的下标变
8、量进行增量,并使操作次数每次减并使操作次数每次减1,以判别循环是否结,以判别循环是否结束。束。设设X和和Y向量的首地址分别存放在向量的首地址分别存放在Rx和和Ry中,当向量元素长度为中,当向量元素长度为64时,用标量机处时,用标量机处理的循环程序段为:理的循环程序段为:2022/12/510现在学习的是第10页,共116页LDF0,a;标量;标量a装入装入F0ADDIR4,Rx,#512;将向量元素的末地址装;将向量元素的末地址装;入;入R4中中LOOP:LDF2,0(Rx);取向量元素;取向量元素X(i)MULDF2,F0,F2;a与与X(i)相乘相乘LDF4,0(Ry);取向量元素;取向量
9、元素Y(i)ADDDF4,F2,F4;aX(i)与与Y(i)相加相加SD0(Ry),F4;存结果向量元素;存结果向量元素ADDIRx,Rx,#8;增量向量元素;增量向量元素X下标下标ADDIRy,Ry,#8;增量向量元素;增量向量元素Y下标下标SUBR20,R4,Rx;R4RxR20,计算是,计算是;否到达限界值;否到达限界值BNZR20,LOOP;若循环未结束,转;若循环未结束,转LOOP2022/12/511现在学习的是第11页,共116页用向量机完成同样操作:用向量机完成同样操作:LDF0,a;标量;标量a装入装入F0LVV1,Rx;装入向量;装入向量X,LV为向为向量量取指令取指令MU
10、LTVV2,F0,V1;向量;向量X与标量与标量a相相乘乘LVV3,Ry;装入向量;装入向量YADDVV4,V2,V3;向量加;向量加aXYSVRy,V4;存结果向量,;存结果向量,SV为向量为向量存指令存指令2022/12/512现在学习的是第12页,共116页因为向量指令是对因为向量指令是对64个元素进行操作,且个元素进行操作,且没有对元素下标变量增量和判循环是否结没有对元素下标变量增量和判循环是否结束的指令,所以向量机只需执行束的指令,所以向量机只需执行6条指令即条指令即可完成操作,从而大大降低了对指令带宽可完成操作,从而大大降低了对指令带宽的要求。的要求。2022/12/513现在学习
11、的是第13页,共116页标量机与向量机计算标量机与向量机计算YaXY的比较的比较标量机标量机向量机向量机编程方式编程方式 采用标量指令,采用标量指令,循环程序循环程序采用向量采用向量指令指令指令条数指令条数96425786联锁频率联锁频率高高低低对指令带对指令带宽的要求宽的要求高高不高不高2022/12/514现在学习的是第14页,共116页3.6.1.3 3.6.1.3 向量启动时间和启动率向量启动时间和启动率一条向量指令执行所需时间一条向量指令执行所需时间Tvp:TvpTstnIrTst:向量流水线的启动时间,包括流水线:向量流水线的启动时间,包括流水线固有的延迟时间,用于设置为完成向量操
12、固有的延迟时间,用于设置为完成向量操作所需的相应参数作所需的相应参数(如向量长度等如向量长度等)。n:向量中元素长度:向量中元素长度Ir:启动率,表示向量流水线填满后,每流:启动率,表示向量流水线填满后,每流出一个结果所需时间。出一个结果所需时间。2022/12/515现在学习的是第15页,共116页例:一个向量乘法流水部件的启动时间为例:一个向量乘法流水部件的启动时间为l0个时钟个时钟周期。启动后的启动率为周期。启动后的启动率为1。对于长度为。对于长度为64的向量的向量乘法,产生每个向量元素结果所需时钟周期数为:乘法,产生每个向量元素结果所需时钟周期数为:对于运行速度较慢的向量流水操作,启动
13、时间的大对于运行速度较慢的向量流水操作,启动时间的大小对它的影响不大,但对于启动率为小对它的影响不大,但对于启动率为1的高速向量的高速向量流水操作,启动时间的增加就将使性能受到较大影流水操作,启动时间的增加就将使性能受到较大影响。响。2022/12/516现在学习的是第16页,共116页寄存器寄存器寄存器工作方式的影响因素寄存器工作方式的影响因素向量功能部件流水线的深度向量功能部件流水线的深度流水线的启动时间主要取决于功能部件流水线的深流水线的启动时间主要取决于功能部件流水线的深度。因为这是获取第一个流水结果所需的时间。度。因为这是获取第一个流水结果所需的时间。向量功能部件接收一个操作数的频率
14、向量功能部件接收一个操作数的频率流水线的启动率主要取决于相应的向量功能部件接流水线的启动率主要取决于相应的向量功能部件接收一个操作数的频率。当流水线处于充分流水状态收一个操作数的频率。当流水线处于充分流水状态时,就能在每个时钟周期开始时立即对一个新操作时,就能在每个时钟周期开始时立即对一个新操作数进行运算,从而可使启动率达到数进行运算,从而可使启动率达到1。2022/12/517现在学习的是第17页,共116页3.6.2向量操作长度控制和向量访问步长向量操作长度控制和向量访问步长1.向量操作长度控制向量操作长度控制实际程序中的向量长度往往并不与向实际程序中的向量长度往往并不与向量机的自然向量长
15、度相同。量机的自然向量长度相同。自然向量长度:向量寄存器型的向量机中,自然向量长度:向量寄存器型的向量机中,每个向量寄存器可存放的向量元素个数。每个向量寄存器可存放的向量元素个数。2022/12/518现在学习的是第18页,共116页程序中一个具体的向量操作长度在编程序中一个具体的向量操作长度在编译时经常是未知的,因为在一个代码段译时经常是未知的,因为在一个代码段中可能需要不同的向量长度。中可能需要不同的向量长度。例如求解单精度向量循环例如求解单精度向量循环SAXPY的代码段的代码段为:为:for(i=0;in;i+)Yia*XiYi;2022/12/519现在学习的是第19页,共116页可见
16、向量操作长度依赖于可见向量操作长度依赖于n值,而这个值,而这个n值值通常在编译时无法知道,往往要在运行时通常在编译时无法知道,往往要在运行时才可确定,而且这个长度也可能是过程的才可确定,而且这个长度也可能是过程的参数,因此在执行时很易改变。参数,因此在执行时很易改变。解决方法:解决方法:采用一个向量长度寄存器,存放采用一个向量长度寄存器,存放某一代码段操作的长度,由它来控制向量操某一代码段操作的长度,由它来控制向量操作的长度以及向量的装载和存储。作的长度以及向量的装载和存储。2022/12/520现在学习的是第20页,共116页在向量长度寄存器中存放的向量长度值不在向量长度寄存器中存放的向量长
17、度值不能超过向量寄存器的长度能超过向量寄存器的长度(MVL)。向量长度小于向量寄存器长度时,均可放向量长度小于向量寄存器长度时,均可放入向量寄存器。入向量寄存器。向量长度大于向量寄存器长度时,需将向量向量长度大于向量寄存器长度时,需将向量长度按向量寄存器长度分段,分段后的向量长度按向量寄存器长度分段,分段后的向量长度即是每次向量操作的长度,它必须等于长度即是每次向量操作的长度,它必须等于或小于向量寄存器长度。或小于向量寄存器长度。2022/12/521现在学习的是第21页,共116页采用分段技术后,采用分段技术后,SAXPY循环可写成如下形式:循环可写成如下形式:low0;VLn%MVL;*找
18、出零头长度值找出零头长度值for(j0;jn/MVL;j+)*外循环外循环for(ilow;ilowVL;i+)*以长度以长度VL操作操作Yia*XiYi;*主要操作主要操作lowlowVL;*下一向量的开始下一向量的开始VLMVL;*将长度值恢复成将长度值恢复成MVL;经分段处理后,第一段长度为经分段处理后,第一段长度为nmodMVL,而以,而以后各段的长度均为后各段的长度均为MVL。2022/12/522现在学习的是第22页,共116页2.向量访问步长向量访问步长存储器是一维线性空间,当需要在其中存放二维或存储器是一维线性空间,当需要在其中存放二维或多维数组时,必须将其各元素映射到一维线性
19、空间多维数组时,必须将其各元素映射到一维线性空间中。中。以行为主的存储方式:以行为主的存储方式:当按行进行元素访问时,要访问的元素的地址是当按行进行元素访问时,要访问的元素的地址是相邻连续的。当按列进行元素访问时,要访问的相邻连续的。当按列进行元素访问时,要访问的元素的地址是不连续的,需要采用向量跨步方式元素的地址是不连续的,需要采用向量跨步方式进行访问。进行访问。2022/12/523现在学习的是第23页,共116页例:元素为例:元素为100100的的ABC矩阵乘法的程序段矩阵乘法的程序段为:为:for(i0;i100;i+)for(j0;j100;j+)Ai,j0.0;for(k0;k75
20、%时,时,1亿次亿次/秒秒主存系统主存系统模模31体交叉访问,存储周期体交叉访问,存储周期400nsI/O通道通道20个,接外围系统个,接外围系统2022/12/562现在学习的是第62页,共116页(3)中央处理机结构)中央处理机结构三部分组成:三部分组成:Regs、流水部件和指令缓冲部件、流水部件和指令缓冲部件操作寄存器和后援寄存器操作寄存器和后援寄存器两组向量寄存器:两组向量寄存器:(8x64x64b)x2V,V向量长度寄存器:向量长度寄存器:VL(7b,128,即最多可传即最多可传64对向量元素)对向量元素)向量控制寄存器向量控制寄存器VM(64b),VM(64b)(屏蔽寄存器,(屏蔽
21、寄存器,用于向量的测试、归并、压缩和还原)用于向量的测试、归并、压缩和还原)标量寄存器标量寄存器S(8x64b)和标量后援寄存器和标量后援寄存器T(64x64b)M地址寄存器地址寄存器A(8x24b)和地址后援寄存器和地址后援寄存器B(64x64b)2022/12/563现在学习的是第63页,共116页功能部件功能部件1818个独立的专用功能部件个独立的专用功能部件一组地址部件一组地址部件-24b24b的短整运算的短整运算 AAAA(1 1),AM,AM(3 3)一组标量部件一组标量部件-64b64b整数和逻辑运算整数和逻辑运算 对对S S运算运算SA SA(1 1),SS,SS左右移位左右移
22、位(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)二组向量部件二组向量部件-6464位的非浮点数向量运算(位的非浮点数向量运算(V,VV,V)VA VA(1 1),VS,VS左右移位左右移位(3 3,2 2),VLg,VLg(1 1)2022/12/564现在学习的是第64页,共116页VV寄存器与功能部件的使用寄存器与功能部件的使用向量功能部件,浮点功能部件VkVjVi向量功能部件,浮点功能部件
23、VkVjVi2022/12/565现在学习的是第65页,共116页指令控制部件指令控制部件程序字计数器程序字计数器P(24b)P(24b)指令缓冲站指令缓冲站IB(4IB(4个站个站x16x16b)x16x16b)指令字缓冲寄存器指令字缓冲寄存器BIP(16b)BIP(16b)下一指令字寄存器下一指令字寄存器NIP(16b)NIP(16b)现行指令字寄存器现行指令字寄存器CIP(16b)CIP(16b)低部指令字寄存器低部指令字寄存器LIP(16b)LIP(16b)指令流出控制部件指令流出控制部件 ICIC4 4类向量指令格式与类向量指令格式与Cray-1Cray-1相似,但访存流水相似,但访
24、存流水m=16m=162022/12/566现在学习的是第66页,共116页向量与标量性能的平衡实际的应用问题实际的应用问题中通常既有中通常既有向量计算又有又有标 量计算,而且两类计算有一定的比例,而且两类计算有一定的比例向量平衡点向量平衡点(vectorbalancepoint):为了使向为了使向量硬件设备和标量硬件设备的利用率相等,量硬件设备和标量硬件设备的利用率相等,一个程序中向量代码所占的百分比。一个程序中向量代码所占的百分比。关键问题是:关键问题是:希望向量硬件和标量硬件都能 够充分利用,不要空闲。,不要空闲。2022/12/567现在学习的是第67页,共116页例如:一个系统的向量
25、运算速度为一个系统的向量运算速度为90Mflops,标量运算速度为标量运算速度为10Mfolps。如果程序的。如果程序的90是向量运算,是向量运算,10是标量运算。则向量平衡是标量运算。则向量平衡点为点为0.9。硬件利用率最高。硬件利用率最高。向量处理机的向量平衡点向量处理机的向量平衡点必须与用户程序的必须与用户程序的向量化程度相匹配。向量化程度相匹配。IBM向量计算机的设计思想向量计算机的设计思想与上述方法不同,它维持与上述方法不同,它维持较低的向量与标量比例,定在较低的向量与标量比例,定在35的范围之间。这的范围之间。这种做法能够适应通用应用问题对标量和向量处种做法能够适应通用应用问题对标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 技术 向量 优秀 PPT
限制150内