向量流水线计算机技术.ppt
向量处理机结构目前已成为解决数值计算问题的一种最重要的高性能结构。向量处理机的性能价格比是很引人注目的,因为与相同价格的串行处理机相比,它们的向量运算吞吐量要高出12个数量级。但是,这种吞吐量提高只是对特定结构问题而言,也就是说,局限于那些可以转化为向量运算的问题。,第六章 向量流水线技术(P347)前言,本章任务了解向量处理机特点、一般结构,并掌握提高向量处理机性能方法。,6.1 特点 多数为巨型机,绝大多数向量处理机都采用流水线结构。当一条流水线不能达到所要求性能时,设计者往往采用多条单功能流水线。,第六章 向量流水线技术-向量处理机的结构,为实现向量化处理,向量处理机操作部件一般采用流水线结构。下面是典型的向量加法器结构:,向量处理机设计中要解决两个问题:(1)设法维持连续数据流(提供连续的A和B)。(2)设法降低对存储器压力。向量处理机一般采取以下技术措施:(1)用多独立存储器模块达到需要带宽。例STAR-100,32体。(2)增设高速中间存储器向量寄存器。根据采用技术措施不同,向量处理机分为两种不同结构:(1)存储器存储器结构(2)寄存器寄存器结构,第一节向量处理机的结构,(1)存储器存储器结构,第一节向量处理机的结构,主存储器由多个存储器模块构成。流水线运算器与主存储器系统间有三条相互独立的数据通路,各数据通路可同时工作。,第一节向量处理机的结构,假设一个存储周期占两个处理机周期。下图是计算C=AB最理想方法。,第一节向量处理机的结构,典型系统: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*(BC)向量长度=64,B和C已取至V0和 V1,V3AV2 V0V1V4 V2*V3第一、二条指令既无寄存器冲突,也无功能部件冲突,可并行执行。第三条与第一、二条指令均存在先写后读的相关冲突,可将第三条与第一、二条指令链接。,由于同步的要求,数据进入和流出每个功能部件,包括访存都需要1拍时间。,(2)链接技术(369)前一条指令结果不必送回存储器直接作为后一条指令的操作数,甚至可在前一条指令完成之前就使用其结果。,若采用链接技术,则执行时间为:(1 61)(17 1)(Nl)=N16拍若这三条指令全部用串行方法,则执行时间为:(161)N1(16十1)N1(171)N1=3N 22拍若前两条指令并行执行,第三条指令串行执行,则执行时间为:(1 61)N1(17 l)N1=2N 15拍,假设向量长度为N,,分析:实现链接除了无向量寄存器使用冲突和无功能部件使用冲突外,还有时间上的要求,只有当前一条指令的第一个结果分量送入结果向量寄存器的那一个时钟周期方可链接,若错过该时刻就不能进行链接,只有当前一条向量指令全部执行完毕,释放向量寄存器资源后才能执行后面指令。另外,当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的延迟时间相等,此外还要求这两条向量指令的向量长度必须相等,否则也不能链接。,功能部件冲突 指令运算符号相同;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 向量指令处理时间Tvp6.3.1.1 单条向量指令执行时间(第9行开始)Tvp=Ts+Tvf+(n-1)Tc其中:Tvp 一条向量指令执行总时间Ts 配套标量指令的折算时间Tvf 流水线流过时间,即计算第一个分量所需时间n 向量中包含的分量数Tc 流水线“瓶颈”段时间,Tc=maxti(注:该公式仅比标量流水线时间公式Tk=(k+n-1)maxti多了一项“辅助标量指令折算时间”Ts而已,参见P286公式5.22),6.3.1.2 不使用链接技术的指令组时间(第18行开始)指令之间不论是存在冲突还是相关关系,都不能编入同一编队。(编队:几条能在一个时钟内一起开始执行的向量指令称为一个编队)例6.4-6.5 对下列指令组编队,并求出每个编队的开始、获得第一个分量结果、获得最后一个分量结果的时间(参见P387表6.4,但是与下面推导数据有出入)LV V1,RxMULTSV V2,F0,V1LV V3,RyADDV V4,V2,V3SV 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 使用链接技术的指令组时间(P388第13行开始)指令之间只有存在冲突关系时,才不能编入同一编队。相关指令可通过链接技术编入同一编队。例6.7 指令组同例6.4,因使用链接技术,编队结果与之不同。即指令1与2链接在同一编队,指令3与1冲突要分开,指令3与4链接在同一编队,指令5与3冲突要分开。结果如下LV V1,RxMULTSV V2,F0,V1编队1:指令1、指令2LV V3,RyADDV V4,V2,V3编队2:指令3、指令4SV Ry,V4编队3:指令5,使用链接技术的时空图与各编队时间(设n 64,即不分段。)访存12段 指令1 指令3 指令5乘法7段 指令2加法6段 指令4 12 7 n-1 12 6 n-1 12 n-1 时间总时间=3n+46,6.3.1.4 考虑分段开采的指令组时间(P387倒数第15行开始)说明:当向量长度超过寄存器组长度时,需要采用分段开采的算法,每段长度等于寄存器组长度。指令组执行总时间如下其中:Tn 指令组执行总时间n 向量中包含的分量数MVL 寄存器组长度(CRRY-1为64)Tloop 配套标量指令的折算时间,即前面公式中的TsTstart 流水线流过时间,即前面公式中的TvfTchime 编队数(注:这是一个近似公式;CRAY-1机器的Tloop=15),例6.7 指令组同例6.4,因使用链接技术,编队结果与之不同。即指令1与2链接在同一编队,指令3与1冲突要分开,指令3与4链接在同一编队,指令5与3冲突要分开。结果如下LV V1,RxMULTSV V2,F0,V1编队1:指令1、指令2LV V3,RyADDV V4,V2,V3编队2:指令3、指令4SV Ry,V4编队3:指令5不论向量长度是否大于寄存器组长度,均可代入分段开采时间公式,计算指令组执行总时间。此处Tchime=3,Tloop=15,Tstart=12+7+12+6+12=49,MVL=64。注意公式法得数与图解法的得数不完全相同。,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,+V,3,并行,V4,V,5,*,V,6,访存,加,乘,9 31,总拍数,=40,(并行执行,以最长指令为准),(2)V,2,V,0,*,V,1,并行,V,3,存储器,V,4,V,2,+V,3,串行,(,P372,),乘,访存,加,9 31 8 31,总拍数,=79,(第,3,条错过时机,不能链接),已知n=32,k加=6,k乘=7,k访存=6,k倒数=14,启动、输出延迟各1。求总拍数。,