? 向量处理机结构目前已成为解决数值计算问题的一种最重要的高性能结构 。
向量处理机的性能价格比是很引人注目的,因为与相同价格的串行处理机相比,它们的向量运算吞吐量要高出 1~ 2
个数量级 。 但是,这种吞吐量提高只是对特定结构问题而言,也就是说,局限于那些可以转化为向量运算的问题 。
第六章 向量流水线技术 (P347)—— 前言
本章任务了解 向量处理机特点,一般结构,
并掌握 提高向量处理机性能方法 。
6.1 特点多数为巨型机,绝大多数向量处理机都采用流水线结构。当一条流水线不能达到所要求性能时,设计者往往采用 多条单功能流水线。
第六章 向量流水线技术 ----向量处理机的结构为实现向量化处理,向量处理机操作部件一般采用流水线结构。下面是典型的向量加法器结构:
向量处理机设计中要解决两个问题:
( 1)设法维持连续数据流(提供连续的 A和 B)。
( 2)设法降低对存储器压力。
向量处理机一般采取以下技术措施:
( 1)用多独立存储器模块达到需要带宽。例 STAR-
100,32体。
( 2)增设高速中间存储器 ——向量寄存器。
根据采用技术措施不同,向量处理机分为两种不同结构:
( 1)存储器 ——存储器结构
( 2)寄存器 ——寄存器结构第一节 向量处理机的结构
( 1)存储器 —— 存储器结构第一节 向量处理机的结构主存储器由多个存储器模块构成。流水线运算器与主存储器系统间有三条相互独立的数据通路,各数据通路可同时工作。
第一节 向量处理机的结构
假设一个存储周期占两个处理机周期。
下图是计算 C=A+ B最理想方法。
第一节 向量处理机的结构典型系统,CDC的 STAR-100,1973年完成。
主要技术参数,主频,40ns;字长,64位;主存容量,100万字,磁芯存储器,32体,存储周期为 1.28微妙,每个体的数据宽度为 8个字,
STAR-100存储系统的频带宽度为,( 32*8) /1.28微妙 =2*字 /秒
使主存有较高带宽的另一种方法是由一级或多级中间存储器形成一个层次结构存储器系统,其中带宽最高的这级存储器安排在距处理器最近位置 。 即寄存器一寄存器结构 。
CRAY-1是世界上第一台向量流水处理巨型机 。 是美国
Cray公司于 1976年提供产品 。 运算速度达亿次/秒以上巨型机 。 速度这么高的一个原因是它采用了层次结构的存储器系统 。
第一节 向量处理机的结构
( 2)寄存器 -寄存器结构简化的 Cray-l的框图:主存与流水结构运算器间有一级或两级中间存储器。
中间存储器与 CACHE比特点:不透明;访问快;支持新数据结构
( 3) 两种结构的简单比较:
第一种结构是依靠主存来保证流水线所需的操作数。因此主存必须具有至少和运算器所要求带宽一样高的带宽。这就要求主存或者存取速度足够快,或者分为多个独立的存储模块,或者两者都具备,因为运算器要求的最大带宽非常高。
第二种结构是通过容量比主存小得多的中间存储器即寄存器来保证很高的带宽。这样,低速存取主存就不会妨碍流水结构运算器连续运行。第二种结构的另一好处是流水结构运算器可以重叠进行,因为 高速寄存器带宽足以满足几个流水结构运算部件的带宽要求 。
第一节 向量处理机的结构
6.2 典型工作方式
CRAY-1是世界上第一台向量流水处理巨型机。
(1) CRAY-1技术术语向量寄存器组 V0,V1,……,V7。
分量计数器链接方式 (P370)
启动、输出延迟(各 1拍)。
D=A*( B+ C)向量长度< =64,
B和 C已取至 V0和 V1,
V3←A
V2 ←V0 + V1
V4 ←V2*V3
第一、二条指令既无寄存器冲突,也无功能部件冲突,可并行执行。
第三条与第一、二条指令均存在先写后读的相关冲突,可将第三条与第一、二条指令链接 。
由于同步的要求,数据进入和流出每个功能部件,包括访存都需要 1拍时间。
(2) 链接技术( 369)
前一条指令结果不必送回存储器直接作为后一条指令的操作数,甚至可在前一条指令完成之前就使用其结果。
若采用链接技术,则执行时间为:
( 1+ 6+ 1)+( 1+ 7+ 1)+( N- l)
= N+ 16拍若这三条指令全部用串行方法,则执行时间为:
[ (1+ 6+ 1)+ N- 1]+ [(1+ 6十 1)+ N- 1]+ [(1+ 7+ 1)+ N- 1]
= 3N+ 22拍若前两条指令并行执行,第三条指令串行执行,则执行时间为:
[( 1+ 6+ 1)+ N- 1]+[( 1+ 7+ l)+ N- 1]
= 2N+ 15拍假设向量长度为 N,
分析:
1,实现链接除了无向量寄存器使用冲突和无功能部件使用冲突外,还有 时间 上的要求,只有当前一条指令的第一个结果分量送入结果向量寄存器的那一个时钟周期方可链接,若错过该时刻就不能进行链接,
只有当前一条向量指令全部执行完毕,释放向量寄存器资源后才能执行后面指令。
2,另外,当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的 延迟时间相等,此外还要求这两条向量指令的 向量长度必须相等,否则也不能链接。
功能部件冲突 ── 指令运算符号相同;
Vi变量冲突 ── 指令中使用的 Vi变量相同,具体有 3种形式,
即左同名、右同名、上右下左同名。
冲突,① A=B+C ② A=B+C ③ A=B+C
A=D*E D=B*E B=D*E
相关,④ A=B+C
D=A*E
(4) CRAY-1分析指令的 3条策略无相关,无冲突 ── 同时启动;
有相关,无冲突 ── 链接启动;
有冲突 ── 顺序执行;
( 链接,前条指令结果不必送回存储器直接作为后条指令操作数
,甚至可在前条指令完成之前就使用其结果)
(5)计算向量程序执行时间工具 ── 多流水线时空图 (结合 P391题
6.6实例学习 )
(3) 冲突及其分类
6.3 向量处理机的性能评价( P386)
一共有 4个性能指标,Tvp,R∞,n1/2,nv。
6.3.1 向量指令处理时间 Tvp
6.3.1.1 单条向量指令执行时间(第 9行开始)
Tvp = Ts + Tvf + ( n - 1 ) Tc
其中,Tvp —— 一条向量指令执行总时间
Ts —— 配套标量指令的折算时间
Tvf —— 流水线流过时间,即 计算第一个分量所需时间
n —— 向量中包含的 分量数
Tc —— 流水线“瓶颈”段 时间,Tc = max{Δ ti}
(注:该公式仅比标量流水线时间公式 Tk = ( k + n - 1 )
max{Δ ti}多了一项,辅助标量指令折算时间,Ts而已,参见 P286公式 5.22 )
6.3.1.2 不使用链接技术的指令组时间(第 18行开始)
指令之间不论是存在冲突还是相关关系,都不能编入同一编队。
(编队:几条能在一个时钟内一起开始执行的向量指令称为一个编队)
例 6.4-6.5 对下列指令组编队,并求 出每个 编队的开始、获得第一个分量结果、获得最后一个分量结果的时间(参见 P387表 6.4,但是与下面推导数据有出入)
LV V1,Rx
MULTSV V2,F0,V1
LV V3,Ry
ADDV V4,V2,V3
SV Ry,V4
编队:由于指令 1与 2之间关于 V1相关、指令 3与 4之间关于 V3相关、指令 4与 5
之间关于 V4相关,所以它们必须分在不同的编队。结果如下编队 1:指令 1
编队 2:指令 2、指令 3
编队 3:指令 4
编队 4:指令 5
不使用链接技术的时空图与各编队时间访存
12段指令 1 指令 3 指令 5
乘法
7段指令 2
加法
6段指令 4
12 n-1 12 n-1 6 n-1 12 n-1 时间
6.3.1.3 考虑分段开采的指令组时间( P387倒数 第 15行开始)
说明:当向量长度超过寄存器组长度时,需要采用分段开采的算法,每段长度等于寄存器组长度。指令组执行总时间如下其中,Tn —— 指令组执行总时间
n —— 向量中包含的 分量数
MVL —— 寄存器组长度 (CRRY-1为 64)
Tloop —— 配套标量指令的折算时间,即前面公式中的
Ts
Tstart —— 流水线流过时间,即前面公式中的 Tvf
Tchime —— 编队数
( 注:这是一个近似公式; CRAY-1机器的 Tloop = 15)
c h i m es t a r tl o o pn TnTTM V LnT
6.3.1.4 使用链接技术的指令组时间( P388第 13行开始)
指令之间只有存在冲突关系时,才不能编入同一编队。相关指令可通过链接技术编入同一编队。
例 6.7 指令组同例 6.4,因使用链接技术,编队结果与之不同。即指令 1与
2链接在同一编队,指令 3与 1冲突要分开,指令 3与 4链接在同一编队,指令 5
与 3冲突要分开。结果如下
LV V1,Rx
MULTSV V2,F0,V1 编队 1:指令 1、指令 2
LV V3,Ry
ADDV V4,V2,V3 编队 2:指令 3、指令 4
SV Ry,V4 编队 3:指令 5
不论向量长度是否大于寄存器组长度,均可代入分段开采时间公式,计算指令组执行总时间。此处 Tchime = 3,Tloop = 15,Tstart = 12+7+12+6+12
= 49,MVL=64。注意公式法得数与下页图解法的得数不完全相同。

644364
34915
64







nnn
n
n
TnTT
M V L
n
T c h i m es t a r tl o o pn
使用链接技术的时空图与各编队时间(设 n < 64,即不分段。)
访存
12段指令 1 指令 3 指令 5
乘法
7段指令 2
加法
6段指令 4
12 7 n-1 12 6 n-1 12 n-1 时间总时间 = 3n + 46
R∞ 表示当向量长度为无穷大时的向量流水线的最大性能,
单位为 MFLOPS。
6.3.2 最大性能 R∞
它是向量流水线性能达到 R∞ 的 1/2时对应的向量长度。
6.3.3 半性能向量长度 n1/2
它表示向量流水方式的工作速度优于标量串行方式工作时所需的向量长度临界值。
6.3.4 临界长度 nv
本章小结
(1) 向量流水处理机 特点 ;
(2) 冲突及其分类 ;
(3) CRAY-1分析指令的 3条策略 ;
(4) 链接方式;
(5) 启动、输出延迟(各 1拍)。
习题,P391,题 6(注意阅读 P372倒数第 9行-倒数第 6行),7
,10,题 9(选做) 。
附录 1 第六章参考答案 (P391)
题 6.6(注意阅读 P372倒数第 9行-倒数第 6行)
解:
已知 n=32,k加 =6,k乘 =7,k访存 =6,k倒数 =14,启动、输出延迟各 1。求各小题总拍数。
(1) V0 ← 存储器
V1 ← V 2 + V3 并行
V4 ← V 5 * V6
访存加乘
9 31
总拍数 =40(并行执行,以最长指令为准)
(2) V2 ← V 0 * V1 并行
V 3 ← 存储器
V 4 ← V 2 + V3 串行 ( P372)
乘访存加
9 31 8 31
总拍数 =79(第 3条错过时机,不能链接)
已知 n=32,k加 =6,k乘 =7,k访存 =6,k倒数 =14,启动、输出延迟各 1。
求总拍数。
( 3) V 0 ← 存储器 并行
V 3 ← V 1 + V 2 链接
V 4 ← V 0 * V 3
V 6 ← V 4 + V 5 串行访存加乘
8 9 31 8 31
总拍数 =87 (第 4 条功能部件冲突)
( 4) V 0 ← 存储器 链接
V 1 ← 1 / V 0 链接
V 3 ← V 1 + V 2 链接
V 5 ← V 3 * V 4
访存倒数加乘
8 16 8 9 31
总拍数 =72 (各条依次链接)