您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 计算机系统结构 第4章
1、1/72▲第4章向量处理机2/72▲4.1向量的处理方式4.2向量处理机的结构4.3提高向量处理机性能的常用技术4.4向量处理机的性能评价4.5向量处理机实例3/72▲向量由一组有序、具有相同类型和位数的元素组成。在流水线处理机中,设置向量数据表示和相应的向量指令,称为向量处理机。不具有向量数据表示和相应的向量指令的流水线处理机,称为标量处理机。典型的向量处理机1976年Cray-1超级计算机浮点运算速度达到了每秒1亿次CDCCyber205,CrayY-MP,NECSX-X/44,FujitsuVP2600等性能达到了每秒几十亿~几百亿次浮点运算4/72▲4.1向量的处理方式以计算表达式D=A×(B-C)为例A、B、C、D──长度为N的向量5/72▲4.1向量的处理方式1.横向(水平)处理方式向量计算是按行的方式从左到右横向地进行。先计算:d1←a1×(b1-c1)再计算:d2←a2×(b2-c2)……最后计算:dN←aN×(bN-cN)组成循环程序进行处理。qi←bi-cidi←qi×ai数据相关:N次功能切换:2N次不适合于向量处理机的并行处理。6/。
2、72▲4.1向量的处理方式2.纵向(垂直)处理方式向量计算是按列的方式从上到下纵向地进行。q1←b1-c1d1←q1×a1先计算……再计算……qN←bN-cNdN←qN×aN表示成向量指令:Q=B-CD=Q×A两条向量指令之间:数据相关:1次功能切换:1次7/72▲4.1向量的处理方式3.纵横(分组)处理方式又称为分组处理方式。把向量分成若干组,组内按纵向方式处理,依次处理各组。对于上述的例子,设:N=S×n+r其中N为向量长度,S为组数,n为每组的长度,r为余数。若余下的r个数也作为一组处理,则共有S+1组。运算过程为:8/72▲4.1向量的处理方式先算第1组:Q1~n←B1~n-C1~nD1~n←Q1~n×A1~n再算第2组:Q(n+1)~2n←B(n+1)~2n-C(n+1)~2nD(n+1)~2n←Q(n+1)~2n×A(n+1)~2n依次进行下去,直到最后一组:第S+1组。每组内各用两条向量指令。数据相关:1次功能切换:2次9/72▲向量处理机的结构因具体机器不同而不同。由所采用的向量处理方式决定。有两种典型的结构存储器-存储器型结构纵向处理方。
3、式采用寄存器-寄存器型结构分组处理方式采用4.2向量处理机的结构10/72▲4.2向量处理机的结构4.2.1“存储器-存储器”结构1.采用纵向处理方式的向量处理机对处理机结构的要求:存储器-存储器结构向量指令的源向量和目的向量都是存放在存储器中,运算的中间结果需要送回存储器。流水线运算部件的输入和输出端都直接(或经过缓冲器)与存储器相联,从而构成存储器-存储器型操作的运算流水线。例如:STAR-100、CYBER-20511/72▲4.2向量处理机的结构“存储器-存储器”型操作的运算流水线存储系统流水处理部件缓冲器缓冲器12/72▲4.2向量处理机的结构2.要充分发挥这种结构的流水线效率,存储器要不断地提供源操作数,并不断地从运算部件接收结果。(每拍从存储器读取两个数据,并向存储器写回一个结果)对存储器的带宽以及存储器与处理部件的通信带宽提出了非常高的要求。解决方法:一般是通过采用多体交叉并行存储器和缓冲器技术。例如,70年代初问世的Star100存储器:32个体交叉每个体的数据宽度:8个字(字长64位)最大数据流量:每秒2亿字13/72▲4.2向量处理机的结构在向量。
4、的分组处理方式中,对向量长度N没有限制,但组的长度n却是固定不变的。对处理机结构的要求:寄存器-寄存器结构设置能快速访问的向量寄存器,用于存放源向量、目的向量及中间结果。让运算部件的输入、输出端都与向量寄存器相联,就构成了“寄存器-寄存器”型操作的运算流水线。典型的寄存器-寄存器结构的向量处理机美国的CRAY-1、我国的YH-1巨型机4.2.2“寄存器-寄存器”结构14/72▲4.2向量处理机的结构以CRAY-1机为例美国CRAY公司1976年每秒1亿次浮点运算时钟周期:12.5ns1.CRAY-1的基本结构功能部件共有12条可并行工作的单功能流水线,可分别流水地进行地址、向量、标量的各种运算。16/72▲4.2向量处理机的结构6个单功能流水部件:进行向量运算整数加(3拍)逻辑运算(2拍)移位(4拍)浮点加(6拍)浮点乘(7拍)浮点迭代求倒数(14拍)括号中的数字为其流水经过的时间,每拍为一个时钟周期,即12.5ns。17/72▲4.2向量处理机的结构向量寄存组V由512个64位的寄存器组成,分成8块。编号:V0~V7每一个块称为一个向量寄存器,。
5、可存放一个长度(即元素个数)不超过64的向量。每个向量寄存器可以每拍向功能部件提供一个数据元素,或者每拍接收一个从功能部件来的结果元素。标量寄存器S和快速暂存器T标量寄存器有8个:S0~S764位快速暂存器T用于在标量寄存器和存储器之间提供缓冲。18/72▲4.2向量处理机的结构向量屏蔽寄存器VM64位,每一位对应于向量寄存器的一个单元。作用:用于向量的归并、压缩、还原和测试操作、对向量某些元素的单独运算等。2.CRAY-1向量处理的一个显著特点每个向量寄存器Vi都有连到6个向量功能部件的单独总线。每个向量功能部件也都有把运算结果送回向量寄存器组的总线。19/72▲4.2向量处理机的结构只要不出现Vi冲突和功能部件冲突,各Vi之间和各功能部件之间都能并行工作,大大加快了向量指令的处理。Vi冲突:并行工作的各向量指令的源向量或结果向量使用了相同的Vi。例如:源向量相同V3←V1+V2V5←V4∧V1功能部件冲突:并行工作的各向量指令要使用同一个功能部件。例如:都需使用乘法功能部件V3←V1×V2V5←V4×V620/72▲4.2向量处理机的结构3.CRAY-1向量。
6、指令类型Vk←ViopVjVk←SiopVjVk←主存主存←Vi21/72▲提高向量处理机性能的方法设置多个功能部件,使它们并行工作;采用链接技术,加快一串向量指令的执行;采用循环开采技术,加快循环的处理;采用多处理机系统,进一步提高性能。4.3提高向量处理机性能的常用技术22/72▲4.3提高向量处理机性能的常用技术设置多个独立的功能部件。这些部件能并行工作,并各自按流水方式工作,从而形成了多条并行工作的运算操作流水线。例如:CRAY-1向量处理机有4组12个单功能流水部件:向量部件:向量加,移位,逻辑运算浮点部件:浮点加,浮点乘,浮点求倒数标量部件:标量加,移位,逻辑运算,数“1”/计数地址运算部件:整数加,整数乘4.3.1设置多个功能部件23/72▲4.3提高向量处理机性能的常用技术1.两条向量指令占用功能流水线和向量寄存器的4种情况指令不相关例如:V0←V1+V2V6←V4*V5这两条指令分别使用各自所需的流水线和向量寄存器,可以并行执行。功能部件冲突例如:V3←V1+V2V6←V4+V54.3.2链接技术24/72▲4.3提高向量处理机性能的常。
7、用技术这两条指令都要使用加法流水线,发生了功能部件冲突(但向量寄存器不冲突)。当第一条指令流出时,占用加法流水线。第二条指令要等加法流水线变成空闲后,才能流出。源寄存器冲突例如:V3←V1+V2V6←V1*V4这两条向量指令的源向量之一都取自V1。由于两者的首元素下标可能不同,向量长度也可能不同,所以难以由V1同时提供两条指令所需要的源向量。这两条向量指令不能同时执行。只有等第一条向量指令执行完、释放V1之后,第二条向量指令才能开始执行。25/72▲4.3提高向量处理机性能的常用技术结果寄存器冲突两条向量指令使用了相同的结果向量寄存器。例如:V4←V1+V2V4←V3*V5这两条指令都要访问目的寄存器V4。由于第一条指令在先,所以它先占用V4直到运算完成,然后再流出后一条指令。2.当前一条指令的结果寄存器是后一条指令的源寄存器、且不存在任何其他冲突时,就可以用链接技术来提高性能。例如:V3←V1+V2V6←V3*V426/72▲4.3提高向量处理机性能的常用技术向量流水线链接:具有先写后读相关的两条指令,在不出现功能部件冲突和源向量冲突的情况下,可以把功能部件链接起来进行。
8、流水处理,以达到加快执行的目的。Cray-1向量处理的一个显著特点链接特性的实质把流水线定向的思想引入到向量执行过程的结果。27/72▲4.3提高向量处理机性能的常用技术链接时,Cray-1中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间,从存储器中把数据送入访存功能部件也需要一拍时间。(同步的要求)28/72▲4.3提高向量处理机性能的常用技术例4.1考虑在Cray-1上利用链接技术执行以下4条指令:V0←存储器//访存取向量:7拍V2←V0+V1//向量加:3拍V3←V2A3//按(A3)左移:4拍V5←V3∧V4//与操作:2拍画出链接示意图,并求该链接流水线的通过时间。如果向量长度为64,则需要多少拍才能得到全部结果。解对这4条指令进行分析可知:它们既没有部件冲突,也没有寄存器冲突,相邻两条指令之间都存在先写后读相关,因而可以把访存流水线、向量加流水线、向量移位流水线以及向量逻辑运算流水线链接成一个较长的流水线。123V0…12461235a7存储器读取流水线存储器V1…V2…V3…V4…V5…向量加c流水线ddf1234左移流水线gi向量与流水线j。
9、jlCray-1的流水线链接举例30/72▲4.3提高向量处理机性能的常用技术链接操作的时间图:t0t1t2t3t4t5t6t7t8t9t10t11t12t13t14t15t16t17t18t19t20t21t22t23t24t25t26t27t28t29t30t31t32…V5-0V5-1V5-2V5-3V5-4V5-5V5-6V5-7V5-8…abcdefghijkl31/72▲4.3提高向量处理机性能的常用技术a:存储字到“读功能部件”的传送时间b:存储字经过“读功能部件”的通过时间c:存储字从“读功能部件”到V0分量的传送时间d:V0和V1中操作数到整数加功能部件的传送时间e:整数加功能部件的通过时间f:和从整数加功能部件到V2分量的传送时间g:V2中的操作数分量到移位功能部件的传送时间h:移位功能部件的通过时间i:结果从移位功能部件到V3分量的传送时间j:V3和V4中的操作数分量到逻辑部件的传送时间k:逻辑功能部件的通过时间l:最后结果到V5分量的传送时间32/72▲4.3提高向量处理机性能的常用技术例4.2在CRAY-1上用链接技术进行向量运算D=A×(B+C)假设向量长度。
10、N≤64,向量元素为浮点数,且向量B、C已存放在V0和V1中。画出链接示意图,并分析非链接执行和链接执行两种情况下的执行时间。解用以下三条向量完成上述运算:V3←存储器//访存取向量AV2←V0+V1//向量B和向量C进行浮点加V4←V2×V3//浮点乘,结果存入V4……………V4V21236…V0V1浮点加1237…V3访存461235存储器浮点乘链接示意图34/72▲4.3提高向量处理机性能的常用技术3条指令全部用串行方法执行,则执行时间为:[(1+6+1)+N-1]+[(1+6+1)+N-1]+[(1+7+1)+N-1]=3N+22(拍)前两条指令并行执行,然后再串行执行第3条指令,则执行时间为:[(1+6+1)+N-1]+[(1+7+1)+N-1]=2N+15(拍)第1、2条向量指令并行执行,并与第3条指令链接执行。[(1+6+1)]+[(1+7+1)]+(N-1)=N+16(拍)35/72▲4.3提高向量处理机性能的常用技术进行向量链接的要求保证:无向量寄存器使用冲突和无功能部件使用冲突只有在前一条指令的第一个结果元素送入结果向量寄存器的那一个时钟周期才可以进行链接。
本文标题:计算机系统结构 第4章
链接地址:https://www.777doc.com/doc-3661125 .html