当前位置:文档之家› 计算机系统结构

计算机系统结构

⑵另一种方法是垂直加工:
①先进行纵向加工所有B和C中的元素的对应加法,即 bi+ciki
②再进行纵向加工的乘法操作,即 kiai di
13
此时向量指令表示形式变成 K=B+C D=AK 由此可见,纵向加工具有较高的吞吐率,但需要一个中间向量 K(具有k1kn共n个分量),在M–M工作方式中都采用这种方式。 ⑶称为纵横向加工(或称为分组加工),以R–R工作方式的向量机 均采用此加工方式。
如Cray-1巨型机中,共有4组12个单功能流水部件,见P151图6.3。 第一组为向量功能部件,有向量加,移,逻辑运算3个功能部件。
16
延时
第二组为浮点部件,FADD,FMUL,浮点倒数。 17 第三组为标量功能部件,标量,逻辑运算 移位 数/计数4个部件。
第四组为地址功能部件,地址加和地址乘。 这些功能部件都是独立的,只要满足一定的约束条件,它们可以 并行操作,约束条件是: ①不存在使用R向的冲突。 ②不存在功能部件使用的冲突。 R向使用冲突:指并行工作的向量指令中的源向量或结果向量使 用相同的R向。 例: V4←V1+V2 V5←V2∧V3 功能部件冲突:指多条并行工作的向量指令共用了同一 个功能部 件。 例: V3←V1+V2 V6←V4+V5 理想情况,若有m个部件并行工作,可使运行速度提高m倍,由 于实际程序并行度有限和可能发生上述冲突,因此,能完全工作的 功能部件的总数总是<m。 18
第六章 向量流水处理
6.1 向量流水机的基本系统结构 6.1.1 向量流水处理的主要特点 6.1.2 向量机的基本系统结构 6.1.3 向量启动时间和启动率 6.2向量操作长度控制和向量访问步长 6.3 向量处理方法 6.4增强向量处理性能的方法 6.4.1多功能部件的并行操作 6.4.2 链接技术 6.4.3 条件执行语句和稀疏矩阵和加速处理方法 6.4.4 向量归约操作的加速方法 6.5向量处理性能的评估参数和方法 6.6向量化编译技术
循 环 体 共 有 9 条 指 令
对两程序比较,可见 ①标量机共需要执行964+2=578条指令,而向量机仅有6条指令 即可完成。 ②标量流水机中,流水线联锁(相关停顿)的频率远高于向量机, 标量机中每一个元素都有ADD等待MUL及SD等待ADD的情况。而 向量机每条指令只需停顿一次。 6.1.3 向量启动时间和启动率
4
LD F0,a ;标量a装入F0 ADDI R4,Rx,#512 ;将向量元素的末地址装入R4中 LOOP:LD F2,0(Rx) ;取向量元素x(i) MULD F2,F0,F2 ;a与x(i)相乘 LD F4,0(Ry) ;取向量元素y(i) ADDD F4,F2,F4 ;ax(i)与y(i)相加 SD 0(Ry),F4 ;存结果向量元素 ADDI Rx,Rx,#8 ;增量向量元素x下标 ADDI Ry,Ry,#8 ;增量向量元素y下标 SUB R20,R4,Rx ;R4-Rx→R20,计算是否到达限界值 BNZ R20 , LOOP ;若循环未结束,转LOOP 若用向量机来完成同样操作,则有: LD F0,a ;标量a装入F0 LV V1,Rx ;装入向量X,LV为向量取指令 MULTV V2,F0,V1 ;向量X与标量a相乘 LV V3,RY ;装入向量Y ADDV V4,V2,V3 ;向量加aX+Y 5 SV RY,V4 ;存结果向量,SV为向量存指令
14
设 N:向量长度 n:向量寄存器可表示的最大限度为,则 N=kn+r n≤N, r < n,k、n、r均为正整数。 k为组数,r为余数(余下的部分也作为一组处理)。 加工方式是:组内纵向加工,组间为横向加工。 第一组计算 k1n =b1n +c1n d1n =a1nk1n 第二组计算 k(n+1)2n =b(n+1)2n+c(n+1)2n d(n+1)2n =a(n+1)2n k(n+1)2n ┆ 由此可知,每组内各有两条向量指令,各组内有一次数据相关需 2次流水功能切换,只需n个中间向量寄存器单元k1n,Cray–1与一 15 些小巨型机都采用这种加工方式。
8
low=1 VL=(n mod MVL) * 找出零头长度值 do 20 j=0,(n/MVL) * 外循环 do 10 i=low,low+VL-1 * 以长度VL操作 内 循 V(i)=aX(i)+Y(i) * 主要操作 环 10 continue low=low+VL * 下一向量的开始 VL=MVL * 将长度恢复成MVL 20 continue 例: 有两个100100元素的矩阵A和B相乘的程序段如下: do 10 i=1,100 do 10 j=1,100 C(i,j)=0.0 do 10 k=1,100 10 C(i,j)=C(i,j)+A(i,k)B(k,j)
例:对于64个存储体,步长为32时,每隔一次访问(即两次访问 后)就会发生一次冲突。步长为8 时,每隔7次访问(即8 次访问后)才 会发生冲突。 此外,增加存储体数目,通常也可减少产生访问冲突的频率。 ☆ 为了使访存不发生冲突应设法使跨步和存储体数互为质数。 例:存储体数为17,而跨步长为16。
11
2
⑶若向量指令所要访问的向量元素均相邻,则可以在交 叉存储体中依次访问它们。由于一个向量中通常含有多个 元素,因此对存储器访问的延迟平均到每个元素上其访存 等待时间开销较小。 由以上这些特点: ⑴向量流水机对相同数量的数据项进行操作时,要比一 串标量指令操作更快。 ⑵向量流水机还可使访存和有效地址计算流水化。 ⑶高档向量机还允许多个向量操作同时进行,从而可开 发对不同元素进行多个向量操作的并行性。 6.1.2 向量机的基本系统结构 向量机系统结构按向量操作对象及结果主要存入在寄存 器中还是存放在存储器中,可分为R–R工作方式向量机和 3 M–M工作方式向量机两大类。
可见并行加链接技术的加速效率还是较高的。要实现链接,除了 前述条件之外,还有时间上的要求,即:只有当前一条指令的第一 结果分量R向的那一个时钟周期可链接,错过该时刻,就无法进 行链接,只有等前一向量指令全部执行完毕,释放R向资源后,才 能执行后面指令。
总 的 执 行 时 间 Tst 64 I r 10 64 1.16 每个结果需要的钟周期数 向量长度 64 64
对于R–R方式来说,流水线的启动时间主要取决于功能部件流水 的深度。
7
6.2向量操作长度控制和向量访问步长 向量寄存器型的向量机具有一个自然向量长度,即每个 向量寄存器中的向量元素个数,例 Cray-1机为64。但实 际程序中的向量长度往往不会与此长度相等。一个具体的 向量操作长度在编译时也常常是未知的,例如: do 10 i=1,n 10 y(i)=ax(i)+y(i) 在向量长度寄存器中存放的长度值≤向量寄存器的长度 (MVL)的向量均可放入向量寄存器。 向量长度>向量寄存器长度时,就必须将向量长度按向 量寄存器长度分段。分段后的向量长度即是每次向量操作 的长度,必须≤向量寄存器长度。 例1 向量流水机的基本系统结构
前面所介绍的标量流水机在实际应用中要使性能进一步 提高,通常要受到以下两个因素的约束: ⑴流水线的工作时钟不可能取得很短。 ⑵取指与译码的速率受到限制,即在一个时钟周期内最 多只能启动一条指令,通常称为Flynn瓶颈。
6.1.1 向量流水处理的主要特点: ⑴由于每一个当前结果向量元素的计算与以前结果向量 元素的计算是相互独立的,这就允许向量流水线有较深的 深度。 ⑵一条向量流水指令相当于一个标量循环,从而可降低 对指令访问带宽的要求,同时也消除了由循环转移起的控 制相关。
19
桌面
加法和访 存的延时
乘法延时
①采用并行和链接加速技术,当被加工向量的长度为N时,则执 充满后连续 行时间: 流水结果数 T=(1+6+1)+(1+7+1)+(N-1)=N+16拍
产生第1个结果的延时
20 39
②这三条指令全部用串行方法执行时则需要 T=[(1+6+1)+N-1]2+[(1+7+1)+N-1]=3N+22拍 ③前两条并行,第三条指令串行执行时需要 T=[(1+6+1)+N-1]+[(1+7+1)+N-1]=2N+15拍
9
向量由M•MR向,则在M•M中间隔存放的元素在R向中便成为逻 辑上相连续的,如果向量机支持对向量的跨步访问,则称这种向量 机为支持完全的一维数据显式访问。因为它能以行、列,甚至以对 角线访问这些方向上的元素, Cray-1巨型机就是这种向量机。
而M–M工作方式的Cyber–205巨型机中,则不支持这种完全一维 数据显式访问,它只能以连续方式访存。如果要进行跨步访问运算, 则必须先将这些在M•M中不连续存放的向量元素,先经过运算部件 进行依次排序,然后再送入M•M使它们相邻连续存放,最后再从 40 M•M中连续取出进行运算,显然这将大降低运算性能。 通常向量机,为了增加访存速率,大都采用低位地址多体交叉 M•M ,当向量机支持跨步长度访问时,就可能出现对同一存储体 访问间隔时间<访存周期时间,若使得上一次对某一存储体的访问 结束前,对同一存储体提出了新的访问要求,从而加剧访存冲突。
3
12
6.3 向量处理方法
例: D=A(B+C)的向量运算,A、D、C都是长度为n的向量。有 下列三种加工方式。 ⑴普遍采用的方法是按向量顺序计算的横向加工 d1=a1(b1+c1) d2=a2(b2+c2) dn=an(bn+cn)
这里每一步都要先进行bi+cik的运算,然后进行kai di运算, 这就要产生数据相关。
10
例:设有16个存储体,访问时间为12个时钟周期,共要访问64 个向量元素。
相关主题