您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量指令 >

第五章向量流水与向量处理机ppt

发布时间:2019-06-30 09:45 来源:未知 编辑:admin

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  第5章 向量流水与向量处理机;第5章 向量流水与向量处理机;5.1 向量流水的概念与工作原理;5.1.1 向量流水的概念与特点; 2.向量流水处理的主要特点 ① 一条向量指令相当于一个标量循环。这样,可降低对指令访问速度(带宽)的要求,还可消除标量机中由于循环而引起的控制(资源)相关。 ② 每一个结果元素仅与参加运算的元素有关,与上一次运算的值无关,因此向量流水线可以有较大的深度。 ③ 若要访问的向量元素相邻,可存储到多体交叉存储器中,以提高访存速度。 ④ 在一般向量流水机中,允许访问存储器与有效地址的计算流水化,在高档向量流水机中还允许多个向量操作同时进行,即多向量并行操作。;5.1.2 向量处理机的基本组成; 2.向量处理机的基本组成 1976年美国CRAY公司推出寄存器—-寄存器结构的向量机,易操作,速度快,指令系统简洁,因而很快成为向量处理机的主流机型。比如CRAY公司的Y-MP和C-90,日本Fujitsu公司的VP2000、VPP300/500,以及我国的YH等。 向量机的基本结构如图5.1所示,由一个标量流水部件和一个向量流水部件组成。其中标量流水部件是为实现向量中的标量运算而设置的,包括标量功能部件和若干个标量寄存器。向量流水部件主要用于向量运算,包括向量功能部件、向量存取部件、向量寄存器以及向量控制器等。;图5.1 向量处理机基本系统结构 ;3.向量运算 【例5.1】设有长度同为64的两个向量X和Y,其地址分别由寄存器Rx和Ry表示,通过分析Y=a×X+Y,来说明向量运算过程,其中a 为标量。 解:根据题意a为标量,每一个向量元素占8个字节单元,在标量计算机中通过循环程序实现向量运算,程序如下: LD F0,a, ;标量a送入寄存器F0 ADDI R4,Rx,#512 ;向量元素的末地址送入R4 LOOP:LD F2,0(Rx) ;取向量元素X(i) MULD F2,F0,F2 ;F2←a×X(i) LD F4,0(Ry) ;取向量元素Y(i) ADDD F4,F2,F4 ;F4←a×X(i)+ Y(i) SD 0(Ry),F4 ;存结果元素 ADDI Rx,Rx,#8 ;修改向量X元素的下标 ADDI Ry,Ry,#8 ;修改向量Y元素的下标 SUB R10,R4,Rx ;R10←(R4)-(Rx) BNZ R10,LOOP ;若没有结束转移到LOOP; 在向量机上使用向量机指令编程如下,其中Rx和Ry表示向量寄存器: LD F0,a ;标量a送入寄存器F0 LV V1,Rx ;取向量X MULTV V2,F0,V1 ;V2←a×X LV V3,Ry ;取向量Y ADDV V4,V2,V3 ;V4←a×X+ Y SV Ry,V4 ;存结果 通过对上述程序进行分析可以看出,在标量机上进行运算共执行9×64+2=578条指令,其中还包含大量的延迟等待。而在向量机上进行运算,仅需要6条向量指令。;5.1.3 向量启动时间与结果流出时间; 可以看出,对于运算速度较慢的向量流水操作,启动时间影响不大;对于速度较快向量流水操作,启动时间会产生较大的影响。 对于寄存器—-寄存器型向量处理机来说,向量启动时间主要取决于功能部件流水线的深度,结果流出时间取决于向量功能部件以多快的频率接收数据。当向量较长时,启动稳定后的结果流出时间可视为1。;5.1.4 向量操作长度控制与向量访问步长; 当向量长度小于向量寄存器的长度时,直接存入向量寄存器,其长度存入向量长度寄存器中。如果向量长度大于向量寄存器的长度时,须分段存储和运算。向量长度寄存器的值等于向量寄存器长度MVL。采用分段技术后,上述程序可修改成如下形式: LOW=1 VL=(n MOD MVL) ;取向量的零头 DO 20 J=0,(N/MVL) ;确定外循环次数 DO 10 I=LOW,LOW+VL-1 ;按长度VL操作 Y(I)= a*X(I)+Y(I) ;运算 10 CONTINUE LOW=LOW+VL ;指向下一次开始运算的向量 VL=MVL ;修改向量长度寄存器的值 20 CONTINUE 在上述分段运算中,第一次运算的长度为(n MOD MVL),以后各次的长度为MVL,循环次数为(N/MVL)+1。; 2.向量访问步长与跨步访问 目前,存储器一般采用一维地址,若存储二维或者多维数组时,须将其元素映象到一维地址空间中。常以行或列为主来存储各个元素。对于以行为主的存储方式,当按行访问时各行元素地址相邻;按列访问时,各列中相邻元素不再相邻。这个间隔称为跨步,这时的访问称为跨步访问。 例如,设有100×100的数组A和B,求C=A×B。设计 FORTRAN循环程序如下: DO 10 I=1,100 DO 10 J=1,100 C(I,J)=0.0 DO 10 K=1,100 10 A(I,J)= C(I,J)+ A(I,K)*B(K,J); 按照K循环读取存储器中的数据时,数组A的元素按行存储,按行读取,数据地址连续;数组B的元素按行存储,按列读取,地址不连续,跨步为100。 但是向量元素读出存入向量寄存器之后,逻辑上连续。如果向量处理机能支持对向量元素的跨步访问,称为支持完全一维数据显式访问。它能以行、列甚至对角线的方向访问数组元素。上述CRAY-1巨型机就属于这种类型。而CYBER-205采用存储器—-存储器结构,不支持这种完全一维数据显式访问。 通常,向量处理机要有一个专用地址流部件,来进行这种跨步向量元素的访问,甚至支持子矩阵访问、上下三角形和平行四边形访问。 3. 多体交叉存储器的使用 为提高访存速率,大多数计算机采用低位地址交叉多体存储器。当向量机支持跨步访问时,可能出现对同一存储体访问的时间间隔小于存储器的访问周期,从而出现冲突。 设某处理机有16个存储体,访问时间为12个时钟周期,共有64个向量元素。跨步为1时,共需12+64=76个时钟周期;若跨步为16的整倍数,每个元素的读写时间为12个时钟周期,访问64个元素的时间为64×12=768个时钟周期。为了访存不冲突,跨步应当与存储体数互质,比如存储体数为17,跨步为16。;5.2 向量处理与增强向量处理性能的方法;5.2.1 向量处理方法; 2.纵向加工 也称为垂直加工法,它是先进行所有纵向B+C的操作,中间结果暂存到中间向量K中,然后再进行所有纵向乘法操作A×K,如图5.2所示。; 3.纵横向加工 当参加运算的向量长度n大于向量寄存器的长度N时,需要分段进行,这样就产生了纵横向加工方式。段内纵向加工,段间横向加工,表示如下: 第一段计算: K1~N=B1~N+C1~N D1~N= K1~N×A1~N 第二段计算: KN+1~2N=BN+1~2N+CN+1~2N DN+1~2N= KN+1~2N×AN+1~2N …… 显然每一段两条向量指令、一次数据相关和两次流水线功能部件切换,中间向量寄存器长度为N。;5.2.2 增强向量处理性能的方法; 1.多功能部件的并行操作 ; 图5.3中,各个功能部件相互独立,只要满足一定的约束条件就能并行工作,即不存在向量寄存器使用冲突,不存在功能部件使用冲突。 (1)向量寄存器使用冲突 例如: V5←V1+V2 V4←V2∧V3 这两条向量指令都使用向量寄存器V2作为源操作向量,因此两条指令不能同时执行。类似地,还有结果向量寄存器冲突。 ; (2)功能部件使用冲突 例如: V1←V2+V3 V4←V5+V6 两条指令都要使用浮点加法器,因此谁也不能执行。 理想情况下,若有M个相互独立的功能部件,应当使系统速度提高M倍。但是由于存在可能出现的冲突,使得能完全并行工作的功能部件往往小于M。 2.向量链接技术 (1)向量链接技术的概念 在向量操作中也可象标量机中使用定向传送技术那样来提高执行部件的速度,称为向量链接技术。设有如下指令序列: ADDV V1,V2,V3 ;V1←V2+V3 MULTV V4,V1,V5 ;V4←V1×V5; 第一条加法结果存入V1,后一条使用V1作为源操作向量,即先写后读数据相关。若寄存器V1在同一时钟周期既接收加法运算结果,又把这一结果送到乘法部件,就能使两个部件链接起来工作,称为超级向量操作。充分流水状态后,一个时钟周期就可获取两个运算结果。 (2)向量链接技术的实现 需设专门机制,检测每一条向量指令能否与前一条指令链接操作。若能,则把前一条指令执行的第一结果分量作为本指令的源操作数,并启动本指令。以D=A×(B+C)为例: ; 设向量长度n≥64,且向量B和C已经取至向量寄存器V0和V1。这样,可用三条指令完成: LD V3,A ;V3←A ADDV V2,V0,V1 ;V2←V0+V1 MULTV V4,V2,V3 ;V4←V2×V3 前二条指令没有向量寄存器冲突,也没有功能部件冲突,并行执行。第三条指令与前两条指令均存在先写后读的数据相关,因此可与前两条指令链接执行,如图5.4所示。; 图5.4 向量并行操作与链接 ; 如果前两条指令并行执行,且与第三条指令链接,节拍数为: (1+6+1)+(1+7+1)+n-1=n+16 注意:实现链接除了上述约束条件之外还有时间上的要求,即在前一条指令的第一个结果分量送入结果向量寄存器的那一时钟周期才能链接,否则无法再链接。另外,两条向量指令所处理的向量的长度也必须相等。 3.加快条件语句执行与稀疏矩阵的加速处理方法 (1)加快条件语句执行 对于条件语句的执行,可采用向量屏蔽技术,设有如下FORTRAN循环程序: DO 10 I=1,64 IF (A(I).NE.0) THEN A(I)=A(I)-B(I) ENDIF 10 CONTINUE; 采用向量屏蔽技术,使减法仅在A(I)≠0时执行。在高档向量机中设有屏蔽向量寄存器VM。可通过向量测试指令对向量A(I)进行0测试,当A(I)中某元素为0时,屏蔽向量寄存器的相应位清0;而A(I)≠0时,则将相应位置1。这样,对应于屏蔽向量寄存器为1的位的元素可以参加运算,为0的位的元素不能参加运算。程序如下,设向量A和B的起始地址在寄存器Ra和Rb中。 LV V1,Ra ;将向量A装入V1 LV V2,Rb ;将向量B装入V2 LD F0,#0 ;F0←0 SENSV F0,V1 ;若V1(I)≠0时,VM(I)置1,否则清0 SUBV V1,V1,V2 ;在屏蔽向量的控制下进行减法运算 CVM ;将屏蔽向量寄存器置全1,即不再屏蔽 SV Ra,V1 ;存结果 其中SENSV是设置屏蔽向量的指令,SUBV是在屏蔽向量的控制下进行减法运算的指令;CVM是清除屏蔽向量寄存器的指令,将VM的所有位置1,不再屏蔽。; (2)稀疏矩阵的加速处理方法 稀疏矩阵是包含大量0元素的矩阵,典型的稀疏矩阵求和运算的程序如下: DO 10 I=1,n 10 A(K(I))=A(K(I))+B(M(I)) 这里使用了指标向量K和M指示A和B中的非零元素。在这一运算中,要求A和B有相同的非零向量长度n。此外,也可以使用位向量来指明其中的非零元素。 在向量处理机中支持这种稀疏矩阵运算的基本结构是使用指标向量的散射—-聚合(Scatter gather)操作,如图5.5所示。其中聚合操作如图5.5(a)所示,根据指标向量的内容选取向量元素,它的地址由基地址加上指标向量中给定的地址偏移量而形成。比如指标向量寄存器I=1单元的内容(偏移量)为4,与基地址100相加,再取稀疏向量104单元的600送入稠密向量寄存器I=1单元。聚合操作后得稠密向量。 若要恢复成稀疏向量,可使用散射操作,借助于同一指标向量来完成,其过程如图5.5(b)所示,与聚合操作正好相反。;图5.5 向量的聚合与散射 ; 4.向量归约操作的加速方法 对于象一维数组那样的向量归约求值,结果是一个标量值。对向量归约(Reduction)操作往往难以向量化。但是,可根据运算的类型和过程进行分解,找出向量化的操作,分别处理。从而提高整体运算的速度。下面以向量点积为例说明: RED=0.0 DO 10 I=1,64 10 RED=RED+A(I)*B(I) ;5.3 向量处理性能的评价参数 与评价方法;5.3.1 机器向量长度与向量流水处理时间;R∞ = Lim = (5.6); 半性能长度参数n1/2表示向量流水性能达到最大值的一半时的向量长度,也是一个重要参数。为了解n1/2的含义,Tvp可表示如下: Tvp=(n1/2+n)Tc=(n1/2+n)/R∞ (5.7) 与式5.2或5.3比较,可知n1/2=To/Tc=s+l -1。 (5.8) 3.标量循环时间与最大性能 对于串行工作的标量机,完成同样的工作需要的Tsp为: Tsp=Ts1+nlTcs=(s1+nl)Tcs 其中Ts1为标量循环建立时间,Tcs为标量部件的时钟周期,s1是为建立标量循环所需要的节拍数。对于n个元素对,它的平均执行时间为: tsp=Tsp/n 当n→∞时,tsp=lTcs,R∞=1/lTcs。;5.3.2 向量流水操作中处理时间及速率与向量长度的关系;图5.6 标量循环和向量流水操作中处理时间及处理速率与向量长度的关系 ;5.3.3向量流水处理中与向量长度 有关的参数;R = (5.9);5.4 向量化编译技术; DO 20 I=1,N 20 IF(L(I).NE.0) A(I)=A(I)+1 使用向量化指令,可写成: WHERE (L(I).NE.0) A(1:N)=A(1:N)+1 ;转换成WHERE结构;图5.8 向量机优化编译技术 ;5.5向量处理机举例;5.5.1 多向量多处理机系统CRAY Y-MP;图5.9 CRAY Y-MP 816系统结构; 2.CPU系统组成 每一个CPU系统如图虚线个功能部件组成,分为向量、标量、地址和控制四个子系统,使向量与标量指令可以并行执行。整个CPU系统包括大量地址寄存器、标量寄存器、向量寄存器、中间寄存器和暂存寄存器,通过对寄存器、多条存储器与算术/逻辑流水线的使用,可实现多条功能流水线的灵活链接。指令缓冲器可存放512条16位指令字,实现64位浮点或整型算术运算。 I/O子系统为各CPU共享,支持三类通道传送,速率分别为8MBps、100MBps和1GBps。;5.5.2 C-90; 在C-90向量处理机中运行UNICON操作系统。该操作系统是在UNIX Ⅴ和Berkeley BSD 4.3的基础上经过扩充而成的。同时,该系统还提供向量化的FORTRAN 77和C编译器。在求解大型问题时,往往使多台C-90构成机群系统,如图5.10 所示,是由4台C-90构成的机群系统。每个C-90设有本地存储器,但是固态存储器SSD为4个C-90所共享,

  “原创力文档”前称为“文档投稿赚钱网”,本网站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】

http://bluecaleel.com/xiangliangzhiling/210.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有