[工学]计算机系统结构清华大学出版社第6章.ppt

[工学]计算机系统结构清华大学出版社第6章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]计算机系统结构清华大学出版社第6章

第六章 向量处理机 * 向量处理机 具有向量数据表示和向量指令系统的处理机。 向量处理机是解决数值计算问题的一种高性能计算机。 向量处理机属大型或巨型机,也可以用微机加一台向量协处理器组成。 向量处理机一般都采用流水线结构,通常有多条并行工作的流水线。 必须把要解决的问题转化为向量运算,才能发挥向量处理机的效率。 从标量到向量 例:一个简单的C语言程序如下: for (i = 10; i = 1010; i++) c[i] = a[i] + b[i+5] ; 在向量处理机上, 可以只用一条指令: C(10:1010)=A(10:1010) + B(15 :1015) 一条向量指令可处理N个或N对操作数 在标量处理机上用10多条指令,其中有8条指令要循环1000次。 采用多寄存器结构的两地址指令编写程序。 存储器采用字节编址方式,字长为32位。 从标量到向量(续) 在一般标量处理机中需要如下指令序列来实现(A、B、C分别是向量a、b、c在内存中的起始地址): 从标量到向量(续) 等间距向量表示法 三个参数表示一个等间距向量: 向量起始地址:A 向量长度:L 向量间距:f 等间距向量表示法(续) 例如:我国研制的银河向量机,有8个向量寄存器V0~V7,每个向量寄存器由64个64位的寄存器组成,存储器字长64位,采用字节编址方式,则连续向量的间距为 f=8。向量指令采用三地址形式: 例:Vi ? Vj OP Vk,向量长度(VL)= 50,则实际完成的运算是: V3,00~V3,49与V5,00~V5,49分别相加, 结果放在V1,00~V1,49中。 向量处理方式 有三种处理方式: 横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。 纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。 纵横处理方式,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。 要根据向量运算的特点和向量处理机的类型选择向量的处理方式。 以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。 for (i = 1;i = n;i++) y[i] = a[i] ×( b[i] + c[i] ); 1. 横向处理方式 也称为水平处理方式,横向加工方式等。 逐个分量进行处理:假设中间结果为T(I) 计算第1个分量: T(1) =B(1)+C(1) Y(1) =A(1)×T(1) 计算第2个分量: 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) ×T(N) 采用向量指令只需要2条: VADD B, C, T VMUL A, T, Y 这种处理方式适用于向量处理机 数据相关不影响流水线连续工作。 不同的运算操作只需要切换1次。 这种处理方式适用于存储器-存储器结构 3. 纵横处理方式 用于寄存器-寄存器结构的向量处理机中,向量寄存器的长度是有限的。 当向量长度N大于向量寄存器长度n时,需要分组处理。 分组方法:N=K·n+r 其中:r为余数, 共分K+1组。 组内采用纵向处理方式,组间采用横向处理方式。因此,也称为分组处理方式,纵横向加工方式等。 运算过程为: 第1组: T(1, n) = B(1, n) + C(1, n) Y(1, n) = A(1, n)×T(1, n) 第2组: 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

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档