1、向量处理机 向量处理机(vector computer),面向向量型并行计算,以流水线结构为主的并行处理计算机。向量是计算机系统中经常使用的一种数据类型,向量由一组有序、具有相同类型和位数的元素组成。采用先行控制和重叠操作技术、运算流水线、交叉访问的并行存储器等并行处理结构,对提高运算速度有重要作用。但在实际运行时还不能充分发挥并行处理潜力。向量运算很适合于流水线计算机的结构特点。为了成分发挥流水线处理机的效率,实现高性能计算,有得流水线处理机设置了向量数据表示和相应的向量指令,这就是所谓的向量处理机。向量型并行计算与流水线结构相结合,能在很大程度上克服通常流水线计算机中指令处理量太大、存储访
2、问不均匀、相关等待严重、流水不畅等缺点,并可充分发挥并行处理结构的潜力,显著提高运算速度。内容简介:向量处理机(vector computer),面向向量型并行计算,以流水线结构为主的并行处理计算机。向量运算是一种较简单的并行计算,适用面很广,机器实现比较容易,使用也比较方便,因此向量处理机(向量机)获得了迅速发展。TI ASC(1972 年)和CDC STAR-100 (1973 年)是世界上第一批向量巨型计算机(巨型机)。到 1982年底,世界上约有 60 台巨型机,其中大多数是向量机。中国于 1983 年研制成功的每秒千万次的 757 机和亿次的“银河”机也都是向量机。 向量机适用于线性
3、规划、傅里叶变换、滤波计算以及矩阵、线性代数、偏微分方程、积分等数学问题的求解,主要解决气象研究与天气预报、航空航天飞行器设计、原子能与核反应研究、地球物理研究、地震分析、大型工程设计,以及社会和经济现象大规模模拟等领域的大型计算问题。1.向量的运算:在普通计算机中,机器指令的基本操作对象是标量,而向量机除了有标量处理功能外还具有功能齐全的向量运算指令系统。对一个向量的各分量执行同一运算,或对同样维数的两个向量的对应分量执行同一运算,或一个向量的各分量都与同一标量执行同一运算,均可产生一个新的向量,这些是基本的向量运算。此外,尚可在一个向量的各分量间执行某种运算,如连加、连乘或连续比较等操作,
4、使之综合成一个标量。为了提高向量处理能力,基本型向量运算在执行中可以有某种灵活性,如在位向量控制下使某些分量不执行操作 ,或增加其他特殊向量操作,如两个维数不等的单调上升整数向量的逻辑合并、向量的压缩和还原。2.向量的处理方式:向量的处理方式有三种:横向处理方式、纵向处理方式、纵横处理方式。采用不同的处理方式,其向量处理机的结果也会有所不同。以计算表达式 D=A(BC)为例 A、B、C、D 长度为 N 的向量横向(水平)处理方式:向量计算是按行的方式从左到右横向地进行。先计算: d1a1(b1c1)再计算: d2a2(b2c2)最后计算: dNaN(bNcN)组成循环程序进行处理。qibici
5、diqiai数据相关:N 次 功能切换:2N 次不适合于向量处理机的并行处理。纵向 (垂直)处理方式:这时机器采用向量全长的纵向加工方式,每执行一个向量运算都要从头至尾执行全部分量的运算,操作数或结果向量都直接取自主存或写入主存。主存的数据传输率须按运算部件速度的 34 倍来配置。纵向加工向量机设置交叉访问的、数量众多的存储体和很宽的数据通路,并以超长字为单位进行访问,以便满足要求。这样,就使成本高、主存系统灵活性差,难以实现对繁多的主存向量的高效存取。此外,向量运算的起步时间长,短向量运算速度下降幅度大。向量计算是按列的方式从上到下纵向地进行。q1b1c1 d1q1a1先计算 再计算 qNb
6、NcN dNqNaN表示成向量指令:QBCDQA两条向量指令之间:数据相关:1 次 功能切换:1 次纵横 (分组)处理方式:这时机器采用向量分段纵横加工方式,并设置有小容量高速度的多个向量运算寄存器。计算向量运算表达式时,每个向量运算每次只执行一段分量。从主存取出的操作数向量和运算产生的中间结果向量,可以逐段存放在向量寄存器中,运算部件主要访问向量寄存器组。这样,就能保证运算部件进行高速运算,同时又能减轻主存的负担,使对主存数据传输率的要求比纵向加工下降 70%左右。美国的 CRAY-1 机和中国的 757 机都属于这种型式。纵横处理方式又称为分组处理方式。把向量分成若干组,组内按纵向方式处理
7、,依次处理各组。对于上述的例子,设:N=Snr其中 N 为向量长度,S 为组数,n 为每组的长度,r 为余数。若余下的 r 个数也作为一组处理,则共有 S+1 组。运算过程为:先算第 1 组:Q1nB1nC1nD1nQ1nA1n再算第 2 组:Q(n+1)2nB(n+1)2nC(n+1)2nD(n+1)2nQ(n+1)2nA(n+1)2n依次进行下去,直到最后一组:第 S+1 组。每组内各用两条向量指令。数据相关:1 次 功能切换:2 次3.向量处理机的结构:向量处理机的结构因具体机器的不同而不同。可以说,它是由所采用的向量处理方式决定的。有两种典型的结构:存储器-存储器结构,寄存器-寄存器结
8、构。纵向处理方式宜用前者,二分组处理方式则宜用后者。“存储器-存储器”结构:采用纵向处理方式的向量处理机对处理机结构的要求:存储器存储器结构向量指令的源向量和目的向量都是存放在存储器中,运算的中间结果需要送回存储器。 流水线运算部件的输入和输出端都直接(或经过缓冲器)与存储器相联,从而构成存储器-存储器型操作的运算流水线。例如:STAR-100、CYBER-205 存储系统 流 水 处 理 部 件缓 冲 器缓 冲 器“存储器存储器”型操作的运算流水线要充分发挥这种结构的流水线效率,存储器要不断地提供源操作数,并不断地从运算部件接收结果。(每拍从存储器读取两个数据,并向存储器写回一个结果)对存储
9、器的带宽以及存储器与处理部件的通信带宽提出了非常高的要求。解决方法:一般是通过采用多体交叉并行存储器和缓冲器技术。“寄存器-寄存器”结构:在向量的分组处理方式中,对向量长度 N 没有限制,但组的长度 n 却是固定不变的。对处理机结构的要求:寄存器寄存器结构设置能快速访问的向量寄存器,用于存放源向量、目的向量及中间结果。让运算部件的输入、输出端都与向量寄存器相联,就构成了“寄存器寄存器”型操作的运算流水线。典型的寄存器寄存器结构的向量处理机。美国的 CRAY-1、我国的 YH-1 巨型机。CRAY-1 共有 12 条可并行工作的单功能流水线,可分别流水地进行地址、向量、标量的各种运算。CRAY-
10、1 向量处理的显著特点:每个向量寄存器 Vi 都有连到 6 个向量功能部件的单独总线,每个向量功能部件也都有把运算结果送回向量寄存器组的总线。只要不出现 Vi冲突和功能部件冲突,各 Vi 之间和各功能部件之间都能并行工作,大大加快了向量指令的处理。Vi 冲突:并行工作的各向量指令的源向量或结果向量使用了相同的 Vi。功能部件冲突:并行工作的各向量指令要使用同一个功能部件。4.提高向量处理机性能的常用方式:为了提高向量处理机的性能,可以采用多种方法:(1)设置多个功能部件,使它们并行工作;(2)采用链接技术,加快一串向量指令的执行;(3)采用循环开采技术,加快循环的处理;(4)采用多处理机系统,
11、进一步提高性能。设置多个功能部件:设置多个独立的功能部件。这些部件能并行工作,并各自按流水方式工作,从而形成了多条并行工作的运算操作流水线。例如: CRAY-1 向量处理机有 4 组 12 个单功能流水部件:向量部件:向量加,移位,逻辑运算浮点部件:浮点加,浮点乘,浮点求倒数标量部件:标量加,移位,逻辑运算,数“1”/计数地址运算部件:整数加,整数乘链接技术:两条向量指令占用功能流水线和向量寄存器的 4 种情况(1)指令不相关这两条指令分别使用各自所需的流水线和向量寄存器,可以并行执行。(2)功能部件冲突这两条指令都要使用加法流水线,发生了功能部件冲突(但向量寄存器不冲突)。当第一条指令流出时
12、,占用加法流水线。第二条指令要等加法流水线变成空闲后,才能流出。 (3)源寄存器冲突这两条向量指令的源向量之一都取自 V1。由于两者的首元素下标可能不同,向量长度也可能不同,所以难以由 V1 同时提供两条指令所需要的源向量。这两条向量指令不能同时执行。只有等第一条向量指令执行完、释放 V1 之后,第二条向量指令才能开始执行。(4)结果寄存器冲突两条向量指令使用了相同的结果向量寄存器。这两条指令都要访问目的寄存器 V4。由于第一条指令在先,所以它先占用 V4 直到运算完成,然后再流出后一条指令。向量流水线链接:具有先写后读相关的两条指令,在不出现功能部件冲突和源向量冲突的情况下,可以把功能部件链
13、接起来进行流水处理,以达到加快执行的目的。Cray-1 向量处理的一个显著特点 链接特性的实质把流水线定向的思想引入到向量执行过程的结果。链接时,Cray-1 中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间,从存储器中把数据送入访存功能部件也需要一拍时间。分段开采技术:如果向量的长度大于向量寄存器的长度,该如何处理呢? 向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。采用多处理机系统:许多新型向量处理机系统采用了多处理机系统结构。5.向量处理机的性能评价:衡量向量处理机性能的主要参数 :向量指令的处理时间 T
14、vp,向量长度为无穷大时的向量处理机的最大性能 R,半性能向量长度 n1/2,向量长度临界值 nv。向量指令的处理时间 Tvp:执行一条向量长度为 n 的向量指令所需的时间为:Tvp=Ts+Te+(n-1)TcTs :向量处理部件流水线的建立时间,为了使处理部件流水线能开始工作(即开始流入数据)所需要的准备时间。 Te :向量流水线的通过时间,第一对向量元素通过流水线并产生第一个结果所花的时间 。Tc :流水线的时钟周期时间。向量处理机的峰值性能 R:R 表示当向量长度为无穷大时,向量处理机的最高性能,也称为峰值性能。半性能向量长度 n1/2:半性能向量长度 n1/2 是指向量处理机的性能为其
15、最大性能的一半时所需的向量长度。是评价向量流水线的建立时间对性能影响的重要参数。向量长度临界值 nv:向量长度临界值 nv 是指:对于某一计算任务而言,向量方式的处理速度优于标量串行方式处理速度时所需的最小向量长度。6.向量处理机的软件与应用:向量机一般配有向量汇编和向量高级语言,供用户编制能发挥具体向量机速度潜力的向量程序。只有研制和采用向量型并行算法,使程序中包含的向量 运算越多、向量越长,运算速度才会越高。面向各种应用领域的向量程序库的建立,能方便用户使用和提高向量机的解题效率。向量识别程序是编译程序中新开发的一部分,用于编译时自动识别采用通常串行算法的源程序中的向量运算成分,并编译成相
16、应的向量运算目标程序,以提高向量机计算大量现存非向量程序的计算速度。向量识别技术还有待进一步发展和完善,以提高识别水平。向量处理机的发展方向是多向量机系统或细胞结构向量机。实现前者须在软件和算法上取得进展,解决如任务划分和分派等许多难题;后者则须采用适当的互连网络,用硬件自动解决因用户将分散的主存当作集中式的共存使用而带来的矛盾,才能构成虚共存的细胞结构向量机。它既具有阵列机在结构上易于扩大并行台数以提高速度的优点,又有向量机使用方便的优点。向量处理机体系结构具有很多优势,一个是向量程序精简,所需操作步骤少。向量指令和标量指令最大的差别在于一条向量指令包含了很多操作。因此执行一个给定的任务,向
17、量指令比标量指令组成的程序要少得多,所以,向量指令在执行的时候只需要很简单的控制器,避免了在运行的时候花费过多的时钟周期;另一个是存储系统的性能高,利用充分。由于存储系统和处理机之间日益增加的速度差距,现有的超标量微指令体系结构需要增大 cache 来维持存储系统的性能。处理机所需的每个数据项都是真正所用到的数据,而不是 cache来支持的所谓的预取,而且访存的信息直接由硬件来传输,这些信息能够通过很多方法来提高存储系统的性能,一些研究已经表明在向量处理机上使用类似于超标量流水线的技术,即使是上百个周期的主存延时,也不会造成太大的性能损失;还有一个优势是向量处理机具有低功耗和高实时性。向量指令
18、具有局部计算的特征,也就是说,当一条向量指令开始执行,只有对应的功能单元和寄存器内联总线需要加电,从而可以很方便大风减小功耗,而针对实时应用程序,向量处理机可以被设计为具有高度可预测、高度自主决策的系统。提高实时性能时,令 cache 失效和分支预测的问题将不再需要考虑,向量体系结构高度结构化的特征使得向量体系结构简单、可决策化,具有高实时性的潜力。向量体系结构的计算机可以向多个方向发展,随着技术的进步和体系结构的发展,我们会面临更大规模更大的并行处理,向量体系结构凭借它们先天的优势和良好的适应性在未来的应用中一定走在前头。向量指令集自然的表达了数据级的并行,这种并行能被用于很多方面。为了适应多媒体程序、图形处理的需求,在未来制造高性能微处理器的时候,就可以发挥出向量指令集的这些优点,为我们提供更好,更加简单,功耗更低的处理器。