1、6.1 向量数据表示方式 6.2 向量处理机的结构 6.3 向量处理方式 6.4 向量处理机的关键技术 6.5 向量处理机实例 6.6 向量处理机的性能评价 6.7 向量处理机的发展,第6章 向量处理机,具有向量数据表示和向量指令系统的处理机 向量处理机是解决数值计算问题的一种高性能计算机 向量处理机属大型或巨型机,也可以用微机加一台向量协处理器组成 向量处理机一般都采用流水线结构,通常有有多条并行工作的流水线 必须把要解决的问题转化为向量运算,才能发挥向量处理机的效率,6. 向量数据表示方式,6.1.1 从标量到向量 6.1.2 等间距向量表示法 6.1.3 带位移量的向量表示法 6.1.4
2、 稀疏向量表示法,例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: LOAD R0, ST ;读循环初值1
3、0LOAD R1, ED ;读循环终值1010LOAD R2, L ;读内存地址增量4MOVE R3, R2MUL R3, R0 ;计算向量偏移量,;初始值为40 LOOP: LOAD R4,A(R3) ;读A向量的一个元素,LOAD R5, B(R3) ;读B向量的一个元素ADD R4, R5 ;加一个元素STORE R4, C(R3) ;写C向量的一个元素ADD R3, R2 ;改变向量偏移量INC R0 ;循环次数增1CMP R0, R1 ;循环是否结束BLE LOOP ;循环未结束转LOOP, ;否则继续HALT ;停机 ST: 10 ;循环初值 ED: 1010 ;循环终值 L: 4
4、 ;内存地址增量,6.1.2 等间距向量表示法,例如:我国研制的银河向量机,有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向量起始地址:Af 优点:每个向量可以带有位移,能够通过控制向量实现可变增量。能够表示稀
5、疏向量。,带位移量的向量表示法,6.1.4 稀疏向量表示法,定义:0元素很多,非0元素很少的向量称为稀疏向量 采用压缩方法存储稀疏向量可以节省存储空间。 可以还原之后进行运算,也可以用压缩方法直接进行运算,6.2 向量处理机的结构,主要采用两种方法: 存储器存储器结构 多个独立的存储器模块并行工作 处理机结构简单对存储系统的访问速度要求很高 寄存器寄存器结构 运算通过向量寄存器进行 需要大量高速寄存器对存储系统访问速度的要求降低,1. 存储器存储器结构向量处理机中有多个高速流水线运算部件,存储器的访问速度是关键采用多个存储体交叉和并行访问来提高存储器速度例如:CRAY-1有64个存储体,每个处
6、理机访问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向量处理机结构,有三种处理方式:横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地
8、进行。 纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。 纵横处理方式,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。,6.3 向量处理方式,要根据向量运算的特点和向量处理机的类型选择向量的处理方式。 以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。for (i = 1;i = n;i+) yi = ai ( bi + ci );,1. 横向处理方式 也称为水平处理方式,横向加工方式等 逐个分量进行处理:假设中间结果为T(I) 计算第1个分量: T(1) B(1)C(1) Y(1) A(1)T(1) 计算第2
9、个分量: 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)T(2) Y(N) = A(N)
10、 T(N),采用向量指令只需要2条: VADD B, C, T VMUL A, T, Y 这种处理方式适用于向量处理机 数据相关不影响流水线连续工作。不同的运算操作只需要切换1次。这种处理方式适用于存储器-存储器结构,3. 纵横处理方式 用于寄存器-寄存器结构的向量处理机中,向量寄存器的长度是有限的。 当向量长度N大于向量寄存器长度n时,需要分组处理。分组方法:其中:为余数, 共分组。组内采用纵向处理方式,组间采用横向处理方式。因此,也称为分组处理方式,纵横向加工方式等。,运算过程为: 第组: T(1, n) = B(1, n) + C(1, n) Y(1, n) = A(1, n)T(1,
11、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不写入主存储器,实际的应用问题中通常既有向量计算又有标量计算,而且两类计算有一定的比例向量平衡点(vector balance point):为了
12、使向量硬件设备和标量硬件设备的利用率相等,一个程序中向量代码所占的百分比。关键问题是:希望向量硬件和标量硬件都能够充分利用,不要空闲。,6.4 向量处理机的关键技术 6.4.1 向量与标量性能的平衡,例如:一个系统的向量运算速度为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) 向量与向量操作:ViVj OP Vk (2) 向量与标量操作:Vi Sj
14、 OP Vk (3) 向量取:Vi存储器 (4) 向量存:存储器 Vi,一种向量处理机的指令格式,向量运算中的相关和冲突向量运算中的数据相关和功能部件冲突: 采用顺序发射顺序完成方式 (1)写读数据相关。 (2)读读数据相关,或向量寄存器冲突。 (3)运算部件冲突。V0 V1V2 V0 V1V2 V3 V4 V5 V3 V0 V4 (a)不相关的指令 (b)写读数据相关,V0 V1V2 V0 V1V2 V3 V4V5 V3 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 向量循环开采技术,当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开采技术,也称为向量分段开采技术。 例6
17、.2:A和B为长度N的向量。for (i=1; iN; i+)ai=5*b(i)+c; 当向量长度N为64或更小时,计算A数组的7条指令序列是:,1:S15.0 在标量寄存器内设置常数2:S2C 将常数C装入标量寄存器3:VLN 在VL寄存器内设置向量长度4:VoB 将B向量读入向量寄存器5:V1S1 Vo B数组的每个分量乘常数6:V2S2V1 C和5 B(x)相加7:AV2 将结果向量存入A数组 当N超过64时,要采用向量循环开采技术。在进入循环前,把N除以64,确定循环次数。如果有余数,则在第一次循环中首先计算。,第4条到第7条指令组成循环1:S15.0 在标量寄存器内设置常数2:S2C
18、 将常数C装入标量寄存器3:VLN 在VL寄存器内设置向量长度for (i=0; 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+V1 C0和C1分别是与向量寄存器V0和V1相关的分量计数器。初始时,计数器C0和C1都置成0,V00中的初始值也置成0。 浮点加法流水线的延迟时间为8个周期。 假定向量长度为64,只作一个向量循环。 在开始的8个周期,计数器C0一直为0,在此
19、之后,每个周期期加1。C1每个周期加1。,V00=V00+V10=0+V10 V01=V00+V11=0+V11 V07=V00+V17=0+V17 V08=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 向量处
20、理机实例,6.5.1 典型向量处理机6.5.2 CRAY Y-MP向量处理机6.5.3 向量协处理器,向量处理机主要出自美国和日本。 美国著名的向量计算机公司有:CRAYCDCTI等 日本公司有:NECFujitsuHitachi等,6.5.1 典型的向量处理机,机器型号,美国和日本制造的向量处理机,Cray IS,配置,特点,有10条流水线的 单处理机,12.5 ns,COS/CF7 2.1,第一台基于ECL 的超级计算机, 1976年问世,典型向量处理机,Cray 2S/4-256,256M字存储器 的4台处理机, 4.lns, COS或 UNIX/CF77 3.0,16K字的本地存 储器
21、,移植了 UNIXV, 1985问世,机器型号,CrayX-MP 416,配置,特点,16M字存储器的 4台处理机,128 M字SSD, 8.5ns, COS CF77 5.0,使用共享寄存器 组用于IPC, 1983年问世,CrayY-MP 832,128M字存储器的 8台处理机, 6ns, CF77 5.0,XMP的改进 型, 1988年问世,每台处理机2条 向量流水线, 16 台处理机, 4.2ns, Unicos/CF77 5.0,Cray Y-MP C-90,最大的Cray机器 1991年问世,机器型号,CDCCyber 205,配置,特点,有4条流水线的 单处理机, 20ns, 虚
22、拟OS/FTN200,存储器到存储器 系统结构, 1982年问世,ETA 10E,单处理机, 10.5ns, ETAV/FTN 200,Cyber 205的后 继型号, 1985年问世,每台处理机4组 流水线, 4台处理 机, 2.9ns, F77SX, 22Gflops,NEC SX-X/44,1991年问世,机器型号,Fujitsu VP2600/10,配置,特点,5条流水线的单 处理机和双标量 处理机, 3.2ns, MSP. EX /F77 EX/VP,使用可重构微 向量寄存器和 屏蔽, 1991年问世,512MB存储器, 18条流水线的单 处理机,4ns, FORT77/HAP V2
23、3-OC,Hitachi820/80,64个通道,最大 传输速率 288MB/S, 1988年问世,6.5.2 CRAY Y-MP向量处理机,由1至8个处理机组成,共享中央存储器、I/O子系统、处理机通信子系统和实时钟。 中央存储器由256个交叉访问的存储体组成。每个处理机对4个存储器端口交叉访问。 CPU的时钟周期为6ns。 每个CPU由14个功能部件组成,分为向量、标量、地址和控制四个子系统。 使用了大量地址寄存器、标量寄存器、向量寄存器、中间寄存器和临时寄存器。 可以实现功能流水线灵活的链接。 I/O子系统支持三类通道,传输速率分别为6兆字节/秒,100兆字节/秒和1G字节/秒。,6.5
24、.3 向量协处理器,以中小型机或微机作主机,向量处理部件作为外围设备,加速向量的处理速度。 向量协处理器是为中小型用户设计的,解决科学计算中大量向量处理任务的一种装置。 FPS-164是最典型的向量协处理器,美国浮点系统公司生产。每个向量处理器有两个乘加部件,两组向量寄存器,两组标量寄存器。向量寄存器有2组4个个操作数,每个操作数个字节。 各向量处理器同步地运算,但它们处理的数据各不相同。 向量操作可以和标量处理器中的标量操作同时进行,FPS-164向量协处理器的结构,6.6 向量处理机的性能评价,衡量向量处理机性能的主要指标有:向量指令处理时间Tvp、最大性能R、半性能向量长度n1/2等。
25、1. 向量指令处理时间Tvp执行一条长度为n的向量指令的时间Tvp表示为:TvpTs + Tvf + (n - 1) Tc其中:Ts为向量流水线的建立时间。Tvf为向量流水线的流过时间。Tc为流水线“瓶颈”段的执行时间。,如果每段执行时间都等于一个时钟周期,则有:Tvps + e + (n - 1) 其中:s为向量流水线建立所需的时钟周期数。e为向量流水线流过所需的时钟周期数。n为向量长度。为时钟周期长度。 通常把几条能在一个时钟周期内同时开始执行的向量指令称为一个编队 (Chime)。 同一个编队中的指令不存在功能部件冲突和数据相关。,例6.3:假设一台向量处理机中功能部件的启动开销为:取数
26、和存数部件12个时钟周期、乘法部件7个时钟周期、加法部件6个时钟周期。先把下列向量操作分成编队,然后计算每个编队的开始时间、获得第一个结果元素的时间和获得最后一个结果元素的时间。LV V1,Rx ;取向量xMULTSV V2,F0,V1 ;向量和标量相乘LV V3,Ry ;取向量YADDV V4,V2,V3 ;加法SV Ry,V4 ;存结果,解:第一条指令LV为第1个编队。MULTSV指令和第2条LV指令为第2个编队。ADDV指令为第3个编队。SV指令为第4个编队。如果向量长度为n,则每个编队的开始时间、获得第一个结果元素和最后一个结果元素时间如下表所示:,如果有3个访问存储器部件,并且不考虑
27、控制的复杂性,采用向量链接技术,只需要:12 + 7 + 6 + 12 + n 136 + n个周期。 如果考虑向量长度大于向量寄存器长度时,则需要分段开采。 向量长度为n的一组向量操作的整个执行时间为:其中:Tloop为执行标量代码的开销,Tstart为每个编队的向量启动开销,MVL是向量寄存器的长度,Tloop是一个常数,在Cray 1中机为15。,例6.5:在一台向量处理机上实现ABs操作,其中A和B是长度为200的向量,s是一个标量。向量寄存器长度为64。各功能部件的启动时间与上例相同。求总的执行时间。 解:因为向量长度超过了向量寄存器的长度,所以要采取分段开采方法。每次循环主要由下面
28、三条向量指令组成:LV V1, Rb ;取向量BMULTVS V2,V1,Fs ;向量和标量相乘SV Ra,V2 ;存向量假设A和B分别放在Ra和Rb之中,s放在Fs中,三条指令之间存在有写读数据相关,因此必须把它们分成3个编队,Tchime= 3。T2004(15 + Tstart) + 200360(4Tstart)+ 600660(4Tstart)其中:Tstart=12 + 7 + 12 = 31,因此,T200660 + 431784每个结果元素的平均执行时间为:768/200 3.9个周期。,例6.6:在某台向量处理机上的执行代码由如下5条指令组成:1:LV V1,Rx ;取向量x
29、2:MULTSV V2,F0,V1 ;向量和标量相乘3:LV V3,Ry ;取向量Y4:ADDV V4,V2,V3 ;加法5:SV Ry,V4 ;存结果主要参数与上例相同,求总的执行时间。,解:指令1、2,指令3、4和指令5分成三个编队,前两个编队中两条指令采用向链接技术执行。Tchime=3, Tloop=15,Tstart=12+7+12+6+12=49,MVL=64。,2. 最大性能R R表示当向量长度为无穷大时的向量流水线的最大性能。常在评价峰值性能时使用。其中:n为向量长度;Tn为一组向量操作的整个执行时间。 对于例6.6,假设时钟频率为200MHZ。每个循环有2个浮点操作,则有:,
30、3.半性能向量长度n1/2 为达到一半R值所需的向量长度称为半性能向量长度n1/2。 主要用来评价向量流水线的建立时间对性能的影响。CRAY-1的n1/21020,CYBER 205的n1/2100。由MFLOPS定义可知:,对于例6.6,如果向量处理机的时钟频率为200MHz。因为:R=100MFLOPS,因此有:1002 2 n1/2Tn1/2 200假设:n1/2 64,因此:Tn1/2 64 + 3 n1/2 解得:1002 2 n1/2(64 + 3 n1/2) 200643 n1/28 n1/25 n1/264n1/212.8 所以取:n1/213,6.7 向量处理机的发展,向量计
31、算机系统结构的主要优点:(1) 通过流水线方式有效提高了存储器带宽(2) 流水结构的运算器有很高的性能价格比(3) 非常简单的机制就能满足通信和同步要求 向量处理机通常以Mflops(Millin of Floating pointperconu)作为速度单位。 一般认为,在标量计算机中,执行一次浮点运算需要条指令,平均需条指令。,1. 向量计算机系统结构的发展趋势是:(1) 提供多种向量运算指令。(2) 除具有向量处理功能外还有其它功能。(3) 采用多层次的存储器系统。(4) 流水线技术与并行技术相结合。 2. 向量计算机系统结构要解决的六个技术问题:(1) 处理机带宽,有两条途径: 运算部
32、件采用流水线结构。 用多个运算器构成并行系统。,(2)存储器带宽,多种解决方法: 用多个独立的存储体构造大容量存储器系统。 采用多层次的存储器系统提高访问速度。 采用Cache和可寻址的寄存器组效果最好。 采用流水线技术,存储系统的速度快520倍(3)输入输出带宽,有1029个DMA通道。(4)通信带宽,共享存储器或互连网络。(5)同步系统,多流水线结构通过控制程序使所有流水线能够同步工作。(6) 多用途,例如,能够处理非数值计算问题,本章重点: 1.向量的表示方法 2.向量运算中的相关性与向量链接技术 3.向量递归技术 4.向量处理机的性能评价练习题:6.6/(2)(3)(8) 6.8 6.106.13 6.14 6.15 6.16,