1、第6章 向量处理机,包仲贤兰州兰州理工大学计算机与通信学院,2018年9月30日星期日,计算机系统结构 第六章 向量处理机,1,6.1 向量数据表示方式6.2 向量处理机的结构6.3 向量处理方式6.4 向量处理机的关键技术6.5 向量处理机实例,第6章 向量处理机,具有向量数据表示和向量指令系统的处理机向量处理机是解决数值计算问题的一种高性能计算机向量处理机属大型或巨型机,也可以用微机加一台向量协处理器组成向量处理机一般都采用流水线结构,通常有有多条并行工作的流水线必须把要解决的问题转化为向量运算,才能发挥向量处理机的效率,6. 向量数据表示方式,6.1.1 从标量到向量6.1.2 等间距向
2、量表示法6.1.3 带位移量的向量表示法6.1.4 稀疏向量表示法,例6.1:一个简单的C语言程序如下:for (i = 10; i = 1010; i+) ci = ai + bi+5 ;在向量处理机上, 可以只用一条指令:C(10:1010)=A(10:1010) + B(15 :1015)一条向量指令可处理个或对操作数在标量处理机上用10多条指令,其中有8条指令要循环1000次。采用多寄存器结构的两地址指令编写程序存储器采用字节编址方式,字长为32位,6.1.1 从标量到向量,在一般标量处理机中需要如下指令序列来实现(A、B、C分别是向量a、b、c在内存中的起始地址):,START:LO
3、ADR0,ST ;读循环初值10LOADR1,ED ;读循环终值1010LOADR2,L ;读内存地址增量4MOVER3,R2MULR3,R0 ;计算向量偏移量, ;初始值为40LOOP:LOADR4,A(R3) ;读A向量的一个元素,LOADR5, B(R3) ;读B向量的一个元素 ADDR4, R5 ;加一个元素 STORER4, C(R3) ;写C向量的一个元素 ADDR3, R2 ;改变向量偏移量 INCR0 ;循环次数增1 CMPR0, R1 ;循环是否结束 BLELOOP ;循环未结束转LOOP, ;否则继续 HALT ;停机ST: 10 ;循环初值ED: 1010 ;循环终值L:
4、 4 ;内存地址增量,6.1.2 等间距向量表示法,三个参数表示一个等间距向量:向量起始地址:A向量长度:L向量间距:f,例如:我国研制的银河向量机,有8个向量寄存器V0V7,每个向量寄存器由64个64位的寄存器组成,存储器字长64位,采用字节编址方式,则连续向量的间距为 f=8。向量指令采用三地址形式:例如:Vi Vj OP Vk,向量长度(VL)= 50,则实际完成的运算是:V3,00V3,49与V5,00V5,49分别相加, 结果放在V1,00V1,49中。,6.1.3 带位移量的向量表示法,用三个参数表示一个向量: 向量基地址:A 向量长度:L 向量位移量:f向量有效长度:Lf 向量起
5、始地址:Af优点:每个向量可以带有位移,能够通过控制向量实现可变增量。 能够表示稀疏向量。,带位移量的向量表示法,6.1.4 稀疏向量表示法,定义:0元素很多,非0元素很少的向量称为稀疏向量采用压缩方法存储稀疏向量可以节省存储空间。可以还原之后进行运算,也可以用压缩方法直接进行运算,6.2 向量处理机的结构,主要采用两种方法:存储器存储器结构多个独立的存储器模块并行工作处理机结构简单 对存储系统的访问速度要求很高寄存器寄存器结构运算通过向量寄存器进行需要大量高速寄存器 对存储系统访问速度的要求降低,1. 存储器存储器结构 向量处理机中有多个高速流水线运算部件, 存储器的访问速度是关键 采用多个
6、存储体交叉和并行访问来提高存 储器速度 例如:CRAY-1有64个存储体,每个处理机访问4个存储体 STAR-100采用32个存储体交叉,每个存储体并行读出8个64位数据 我国研制的YH-1向量计算机有37个存储体,操作数缓冲栈和写结果缓冲栈主要用于解决访问存储器冲突。虽然采用质数个存储体能消除访问存储器的冲突,但是,数据经过多次运算之后,在存储体中分布必然发生改变主要优缺点: 硬件结构简单, 造价低;速度相对较低,操作数缓冲栈,写结果缓冲栈,主存储器,流水线运算部件,2. 寄存器-寄存器结构 把存储器-存储器结构中的缓冲栈改为向量 寄存器 运算部件需要的操作数从向量寄存器中读取, 运算的中间
7、结果也写到向量寄存器中。 向量寄存器与标量寄存器的主要差别是: 一个向量寄存器能够保存一个向量, 连续访问一个向量的各个分量。 需要有标量寄存器和地址寄存器等。,采用寄存器-寄存器结构的主要优点: 降低主存储器的流量 例如:采用寄存器-寄存器结构的CRAY-1与采用存储器-存储器结构的STAR-100比较, 运算速度高3倍多, 而主存流量低2.5倍。,8个向量寄存器86464,主存储器8MB64个个体,12个流水线结构的运算部件,缓冲寄存器6464,标量寄存器864,缓冲寄存器6424,地址寄存器824,指令缓冲寄存器25616,CRAY-1向量处理机结构,6.3 向量处理方式,有三种处理方式
8、: 横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。纵横处理方式,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。,要根据向量运算的特点和向量处理机的类型选择向量的处理方式。以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。 for (i = 1;i = n;i+) yi = ai ( bi + ci );,1. 横向处理方式也称为水平处理方式,横向加工方式等逐个分量进行处理:假设中间结果为T(I)计算第1个分量:T(1)
9、B(1)C(1)Y(1) A(1)T(1)计算第2个分量:T(2) B(2)C(2)Y(2) A(2)T(2) 计算最后一个分量:T(N) B(N)C(N)Y(N)A(N)T(N),存在两个问题: 在计算向量的每个分量时,都发生写读数据相关。流水线效率低 如果采用多功能流水线,必须频繁进行流水线切换 横向处理方式对向量处理机不适合 即使在标量处理机中,也经常通过编译器进行指令流调度。,2. 纵向处理方式 也称为垂直处理方式,纵向加工方式等T(1) = B(1) + C(1)T(2) = B(2) + C(2)T(n) = B(n) + C(n)Y(1) = A(1)T(1)Y(2) = A(2
10、)T(2)Y(N) = A(N) T(N),采用向量指令只需要2条: VADDB, C, T VMULA, T, Y 这种处理方式适用于向量处理机 数据相关不影响流水线连续工作。 不同的运算操作只需要切换1次。 这种处理方式适用于存储器-存储器结构,3. 纵横处理方式用于寄存器-寄存器结构的向量处理机中,向量寄存器的长度是有限的。当向量长度N大于向量寄存器长度n时,需要分组处理。 分组方法: 其中:为余数, 共分组。 组内采用纵向处理方式,组间采用横向处理方式。因此,也称为分组处理方式,纵横向 加工方式等。,运算过程为: 第组:T(1, n) = B(1, n) + C(1, n)Y(1, n
11、) = A(1, n)T(1, n) 第组:T(n+1, 2n) = B(n+1, 2n)C(n+1, 2n)Y(n+1, 2n) = A(n+1, 2n)T(n+1, 2n) 最后第k+1组:T(kn+1, N) = B(kn+1, N) + C(kn+1, N)Y(kn+1, N) = A(kn+1, N) + T(kn+1, N),每组用两条向量指令, 每组发生相关两次, 其中组内发生数据相关一次, 组间切换时发生相关一次。 主要优点: 减少访问主存储器的次数 例如:中间变量T不写入主存储器,6.4 向量处理机的关键技术6.4.1 向量与标量性能的平衡,实际的应用问题中通常既有向量计算又
12、有标 量计算,而且两类计算有一定的比例 向量平衡点(vector balance point):为了使向 量硬件设备和标量硬件设备的利用率相等, 一个程序中向量代码所占的百分比。 关键问题是:希望向量硬件和标量硬件都能 够充分利用,不要空闲。,例如:一个系统的向量运算速度为90Mfolps, 标量运算速度为10Mfolps。如果程序的90 是向量运算,10是标量运算。则向量平衡 点为0.9。硬件利用率最高。 向量处理机的向量平衡点必须与用户程序的 向量化程度相匹配。 IBM向量计算机的设计思想与上述方法不同, 它维持较低的向量与标量比例,定在35的 范围之间。这种做法能够适应通用应用问题 对标
13、量和向量处理要求。,机器型号,几种超级计算机的向量性能和标量性能,Fujitsu VP400,Cray IS,Cray 2S,Cray X-MP,Cray Y-MP,Hitachi S820,NEC SX2,向量性能Mflops,标量性能Mflops,向量平衡点,85.0,9.8,0.90,151.5,11.2,0.93,143.3,13.1,0.92,201.6,17.0,0.92,737.3,17.8,0.98,424.2,9.5,0.98,207.1,6.6,0.97,6.4.2 向量链接技术,向量指令的类型 以CRAY-1向量处理机为例, 有四类指令,两种指令格式:(1) 向量与向量操
14、作:ViVj OP Vk(2) 向量与标量操作:Vi Sj OP Vk(3) 向量取:Vi存储器(4) 向量存:存储器 Vi,一种向量处理机的指令格式,向量运算中的相关和冲突 向量运算中的数据相关和功能部件冲突: 采用顺序发射顺序完成方式 (1)写读数据相关。 (2)读读数据相关,或向量寄存器冲突。 (3)运算部件冲突。 V0 V1V2V0 V1V2 V3 V4 V5V3 V0 V4 (a)不相关的指令(b)写读数据相关,V0 V1V2V0 V1V2 V3 V4V5V3 V1 V4 (c)功能部件冲突(d)读读数据相关 向量链接技术(chaining)当前一条指令的结果寄存器可以作为后继指令的
15、操作数寄存器时,多条有数据相关的向量指令并行执行,这种技术称为两条流水线的链接技术。,例如:有如下3条向量指令: 1: V3 A 2: V2 V0V1 3: V4 V2V3第1、2条指令没有数据相关和功能部件冲突,可以同时开始执行。第3条指令与第1、2条指令均存在写读数据相关,可以链接执行。,浮点加,7,1,2,3,4,5,6,Mem,V0,V1,V2,V3,V4,1,2,3,4,5,6,1,2,3,4,5,6,浮点乘,三种执行方式比较:(1) 如果向量长度为N,三条指令采用串行方法 执行的时间为: (1+6+1)+N-1+(1+6+1)+N-1+(1+7+1)+N-1 = 3N+22 拍(2
16、) 如果前两条指令并行执行,第三条指令串行 执行,则执行时间为: (1+6+1)+N-1+(1+7+1)+N-1 = 2N+15 拍(3) 如果采用链接技术,则执行时间为: (1+6+1)+(1+7+1)+(N-1)=17+N-1 = N+16 拍,实现链接的条件:(1)没有向量寄存器冲突和运算部件冲突。(2)只有第一个结果送入向量寄存器的那一个 周期可以链接。(3)先行的两条指令产生运算结果的时间必须 相等。(4)两条向量指令的向量长度必须相等。,6.4.3 向量循环开采技术,当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开
17、采技术,也称为向量分段开采技术。例6.2:A和B为长度N的向量。 for (i=1; i=N/64; i+) 4:VoB 将B向量读入向量寄存器5:V1S1 Vo B数组的每个分量乘常数6:V2S2V1 C和5 B(x)相加7:AV2 将结果向量存入A数组 ,6.4.4 向量递归技术,向量指令一般为3地址,但递归运算用两地址。用递归向量技术求和: V0V0+V1C0和C1分别是与向量寄存器V0和V1相关的分量计数器。初始时,计数器C0和C1都置成0,V00中的初始值也置成0。浮点加法流水线的延迟时间为8个周期。假定向量长度为64,只作一个向量循环。在开始的8个周期,计数器C0一直为0,在此之后
18、,每个周期期加1。C1每个周期加1。,V00=V00+V10=0+V10V01=V00+V11=0+V11 V07=V00+V17=0+V17V08=V00+V18=V10+V18 V015=V07+V115=V17+V115 V016=V08+V116=V10+V18+V116 V056=V048+V156=V10+V18+V116+V124+V132+V140+V148+V156 V063=V055+V163=V17+V115+V123+V131+V139+V147+V155+V163经过8次运算,得到8个结果,分别是8个数的和,第1次加法,第2次加法,第8次加法,6.5 向量处理机实例,
19、6.5.1 典型向量处理机6.5.2 CRAY Y-MP向量处理机6.5.3 向量协处理器,6.5.1 典型的向量处理机,向量处理机主要出自美国和日本。美国著名的向量计算机公司有: CRAY CDC TI等日本公司有: NEC Fujitsu Hitachi等,机器型号,美国和日本制造的向量处理机,Cray IS,配置,特点,有10条流水线的单处理机,12.5ns,COS/CF7 2.1,第一台基于ECL的超级计算机,1976年问世,典型向量处理机,Cray2S/4-256,256M字存储器的4台处理机,4.lns, COS或UNIX/CF77 3.0,16K字的本地存储器,移植了UNIXV,
20、1985问世,机器型号,Cray X-MP 416,配置,特点,16M字存储器的4台处理机,128M字SSD, 8.5ns, COS CF77 5.0,使用共享寄存器组用于IPC,1983年问世,Cray Y-MP 832,128M字存储器的8台处理机, 6ns, CF77 5.0,XMP的改进型,1988年问世,每台处理机2条向量流水线, 16台处理机, 4.2ns, Unicos/CF77 5.0,CrayY-MPC-90,最大的Cray机器1991年问世,机器型号,CDC Cyber 205,配置,特点,有4条流水线的单处理机, 20ns, 虚拟OS/FTN200,存储器到存储器系统结构
21、,1982年问世,ETA 10E,单处理机, 10.5ns, ETAV/FTN 200,Cyber 205的后继型号,1985年问世,每台处理机4组流水线, 4台处理机, 2.9ns, F77SX,22Gflops,NECSX-X/44,1991年问世,机器型号,FujitsuVP2600/10,配置,特点,5条流水线的单处理机和双标量处理机, 3.2ns, MSP. EX/F77 EX/VP,使用可重构微向量寄存器和屏蔽,1991年问世,512MB存储器,18条流水线的单处理机,4ns,FORT77/HAPV23-OC,Hitachi 820/80,64个通道,最大传输速率288MB/S,1
22、988年问世,6.5.2 CRAY Y-MP向量处理机,由1至8个处理机组成,共享中央存储器、I/O子系统、处理机通信子系统和实时钟。中央存储器由256个交叉访问的存储体组成。每个处理机对4个存储器端口交叉访问。CPU的时钟周期为6ns。每个CPU由14个功能部件组成,分为向量、标量、地址和控制四个子系统。使用了大量地址寄存器、标量寄存器、向量寄存器、中间寄存器和临时寄存器。可以实现功能流水线灵活的链接。I/O子系统支持三类通道,传输速率分别为6兆字节/秒,100兆字节/秒和1G字节/秒。,6.5.3 向量协处理器,以中小型机或微机作主机,向量处理部件作为外围设备,加速向量的处理速度。向量协处理器是为中小型用户设计的,解决科学计算中大量向量处理任务的一种装置。FPS-164是最典型的向量协处理器,美国浮点系统公司生产。每个向量处理器有两个乘加部件,两组向量寄存器,两组标量寄存器。向量寄存器有2组4个个操作数,每个操作数个字节。各向量处理器同步地运算,但它们处理的数据各不相同。向量操作可以和标量处理器中的标量操作同时进行,FPS-164向量协处理器的结构,本章重点:1.向量的表示方法2.向量运算中的相关性与向量链接技术3.向量循环和递归技术,