您好,欢迎访问三七文档
第六章向量处理机6.1向量处理的基本概念6.2向量处理机的结构6.3提高向量处理机性能的方法6.4向量处理机实例6.5向量处理机的性能评价yangruioot@yahoo.com.cn计算机科学与技术向量由一组有序、具有相同类型和位数的元素组成,特别适合流水处理。在有些流水线处理机中,为了充分发挥流水线处理机的效率,实现高性能计算,设置了向量数据表示和相应的向量指令,称为向量处理机。不具有向量数据表示和相应的向量指令的流水线处理机,称为标量处理机。yangruioot@yahoo.com.cn计算机科学与技术典型的向量处理机1976年Cray-1超级计算机,浮点运算速度达到了每秒1亿次CDCCyber205,CrayY-MP,NECSX-X/44,FujitsuVP2600等,性能达到了每秒几十亿~几百亿次浮点运算yangruioot@yahoo.com.cn计算机科学与技术6.1向量的处理方式以计算表达式D=A×(B-C)为例A、B、C、D──长度为N的向量yangruioot@yahoo.com.cn计算机科学与技术6.1向量的处理方式横向(水平)处理方式向量计算是按行的方式从左到右横向地进行。先计算:d1←a1×(b1-c1)再计算:d2←a2×(b2-c2)……最后计算:dN←aN×(bN-cN)组成循环程序进行处理。qi←bi-cidi←qi×ai数据相关:N次功能切换:2N次不适合于向量处理机的并行处理。yangruioot@yahoo.com.cn计算机科学与技术6.1向量的处理方式纵向(垂直)处理方式向量计算是按列的方式从上到下纵向地进行。q1←b1-c1d1←q1×a1先计算……再计算……qN←bN-cNdN←qN×aN表示成向量指令:Q=B-CD=Q×A两条向量指令之间:数据相关:1次功能切换:1次yangruioot@yahoo.com.cn计算机科学与技术6.1向量的处理方式纵横(分组)处理方式又称为分组处理方式。把向量分成若干组,组内按纵向方式处理,依次处理各组。对于上述的例子,设:N=S×n+r其中N为向量长度,S为组数,n为每组的长度,r为余数。若余下的r个数也作为一组处理,则共有S+1组。运算过程为:yangruioot@yahoo.com.cn计算机科学与技术6.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次yangruioot@yahoo.com.cn计算机科学与技术向量处理机的结构因具体机器不同而不同。由所采用的向量处理方式决定。有两种典型的结构存储器-存储器型结构纵向处理方式采用寄存器-寄存器型结构分组处理方式采用6.2向量处理机的结构yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构6.2.1“存储器-存储器”结构在纵向处理方式中,向量长度N的大小不受限制,无论N有多大,相同的运算都用一条向量指令完成。此时,向量指令的源向量和目的向量都是存放在存储器中,运算的中间结果需要送回存储器(不是向量寄存器)。此时流水线运算部件的输入和输出端都直接(或经过缓冲器)与存储器相联。这就是“存储器-存储器”型结构。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构6.2.1“存储器-存储器”结构-适用于对向量长度不受限制的纵向处理方式采用纵向处理方式的向量处理机对处理机结构的要求:存储器-存储器结构向量指令的源向量和目的向量都是存放在存储器中,运算的中间结果需要送回存储器。流水线运算部件的输入和输出端都直接(或经过缓冲器)与存储器相联,从而构成存储器-存储器型操作的运算流水线。例如:STAR-100、CYBER-205yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构“存储器-存储器”型操作的运算流水线多端口存储系统流水处理部件ABC=A+Byangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构要充分发挥这种结构的流水线效率,存储器要不断地提供源操作数,并不断地从运算部件接收结果。(每拍从存储器读取两个数据,并向存储器写回一个结果)对存储器的带宽以及存储器与处理部件的通信带宽提出了非常高的要求。解决方法:一般是通过采用多体交叉并行存储器和缓冲器技术。例如,70年代初问世的Star100存储器:32个体交叉每个体的数据宽度:8个字(字长64位)最大数据流量:每秒2亿字yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构“存储器-存储器”型操作的运算流水线存储系统流水处理部件缓冲器缓冲器yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构向量的分组处理方式中,向量被分为每n个数据一组,以组为单位进行数据的分组和运算。此时对向量长度N没有限制,但是组的长度n是固定的。这样就可以设置能快速访问的向量寄存器来存放源向量、目的向量和中间结果。此时流水线的运算部件的输入、输出端都与向量寄存器相连。6.2.2“寄存器-寄存器”结构-适用于纵横处理方式yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构以CRAY-1机为例美国CRAY公司1976年每秒1亿次浮点运算时钟周期:12.5nsCRAY-1的基本结构1.功能部件共有12条可并行工作的单功能流水线,可分别流水地进行地址、向量、标量的各种运算。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构为向量运算提供6个单功能流水部件:整数加(3拍)逻辑运算(2拍)移位(4拍)浮点加(6拍)浮点乘(7拍)浮点迭代求倒数(14拍)括号中的数字为其流水经过的时间,每拍为一个时钟周期,即12.5ns。任何一个流水线只要满负荷工作都可以每拍流出一个结果元素。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构2.向量寄存组V组编号:V0~V7每组称为一个向量寄存器,即1个向量寄存器由64个寄存器构成,所以可存放一个长度不超过64的向量。V0~V7共8组,每组64个,一共有512个寄存器构成,每个寄存器都是64位。对于长度超过64的向量,分段处理,此时最后一段的长度可能小于64。每个向量寄存器可以每拍向功能部件提供一个数据元素,或者每拍接收一个从功能部件来的结果元素。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构3.标量寄存器S和快速暂存器T标量寄存器有8个:S0~S764位快速暂存器T用于在标量寄存器和存储器之间提供缓冲。向量屏蔽寄存器VM64位,每一位对应于向量寄存器的一个单元。作用:用于向量的归并、压缩、还原和测试操作、对向量某些元素的单独运算等。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构CRAY-1向量处理的一个显著特点每个向量寄存器Vi都有连到6个向量功能部件的单独总线。每个向量功能部件也都有把运算结果送回向量寄存器组的总线。流水结构运算器的每个功能部件都有寄存器与其相连。从而低速的主存不会妨碍流水结构运算器的连续运行。且运算器的功能部件可以重叠进行。yangruioot@yahoo.com.cn计算机科学与技术6.2向量处理机的结构只要不出现Vi冲突和功能部件冲突,各Vi之间和各功能部件之间都能并行工作,大大加快了向量指令的处理。Vi冲突:并行工作的各向量指令的源向量或结果向量使用了相同的Vi。例如:源向量相同V3←V1+V2V5←V4×V1功能部件冲突:并行工作的各向量指令要使用同一个功能部件。例如:都需使用乘法功能部件V3←V1×V2V5←V4×V6yangruioot@yahoo.com.cn计算机科学与技术CRAY-1指令系统标量类指令和向量类指令共128条。向量类指令共有4类:由于向量指令都是从向量寄存器而不是从主存取数,结果也是存入了向量寄存器,所以流水速度很高,而且减少了对主存带宽的要求。yangruioot@yahoo.com.cn计算机科学与技术提高向量处理机性能的方法设置多个功能部件,使它们并行工作;采用链接技术,加快一串向量指令的执行;采用循环开采技术,加快循环的处理;采用多处理机系统,进一步提高性能。6.3提高向量处理机性能的常用技术yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术设置多个独立的功能部件。这些部件能并行工作,并各自按流水方式工作,从而形成了多条并行工作的运算操作流水线。例如:CRAY-1向量处理机有4组12个单功能流水部件:向量部件:向量加,移位,逻辑运算浮点部件:浮点加,浮点乘,浮点求倒数标量部件:标量加,移位,逻辑运算,数“1”/计数地址运算部件:整数加,整数乘6.3.1设置多个功能部件yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术两条向量指令占用功能流水线和向量寄存器的4种情况①指令不相关例如:V0←V1+V2V6←V4*V5这两条指令分别使用各自所需的流水线和向量寄存器,可以并行执行。6.3.2链接技术yangruioot@yahoo.com.cn计算机科学与技术yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术②功能部件冲突例如:V3←V1+V2V6←V4+V5这两条指令都要使用加法流水线,发生了功能部件冲突(但向量寄存器不冲突)。当第一条指令流出时,占用加法流水线。第二条指令要等加法流水线变成空闲后,才能流出。yangruioot@yahoo.com.cn计算机科学与技术yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术③源寄存器冲突例如:V3←V1+V2V6←V1*V4这两条向量指令的源向量之一都取自V1。由于两者的首元素下标可能不同,向量长度也可能不同,所以难以由V1同时提供两条指令所需要的源向量。这两条向量指令不能同时执行。只有等第一条向量指令执行完、释放V1之后,第二条向量指令才能开始执行。yangruioot@yahoo.com.cn计算机科学与技术yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术④结果寄存器冲突:两条向量指令使用了相同的结果向量寄存器。例如:V4←V1+V2V4←V3*V5这两条指令都要访问目的寄存器V4。由于第一条指令在先,所以它先占用V4直到运算完成,然后再流出后一条指令。yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术当前一条指令的结果寄存器是后一条指令的源寄存器、且不存在任何其他冲突时,就可以用链接技术来提高性能。例如:V3←V1+V2V6←V3*V4yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术向量流水线链接:具有先写后读相关的两条指令,在不出现功能部件冲突和源向量冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。Cray-1向量处理的一个显著特点链接特性的实质:把流水线定向的思想引入到向量执行过程的结果。yangruioot@yahoo.com.cn计算机科学与技术6.3提高向量处理机性能的常用技术链接时,Cray-1中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间
本文标题:向量处理机.
链接地址:https://www.777doc.com/doc-2579312 .html