- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统结构 第八章 并行处理机 向量处理机 6.1 向量数据表示方式 6.1.1 从标量到向量 6.1.2 等间距向量表示法 6.1.3 带位移量的向量表示法 6.1.4 稀疏向量表示法 6.1.1 从标量到向量 在一般标量处理机中需要如下指令序列来实现(A、B、C分别是向量a、b、c在内存中的起始地址): 6.1.1 从标量到向量 6.1.2 等间距向量表示法 三个参数表示一个等间距向量: 向量起始地址:A 向量长度:L 向量间距:f 例如:我国研制的银河向量机,有8个向量寄存器V0~V7,每个向量寄存器由64个64位的寄存器组成,存储器字长64位,采用字节编址方式,则连续向量的间距为 f=100。向量指令采用三地址形式: 例如:Vi ? Vj OP Vk,向量长度(VL)= 50,则实际完成的运算是: V3,00~V3,49与V5,00~V5,49分别相加, 结果放在V1,00~V1,49中。 6.1.3 带位移量的向量表示法 用三个参数表示一个向量: 向量基地址:A 向量长度:L 向量位移量:f 向量有效长度:L-f 向量起始地址:A+f 优点:每个向量可以带有位移,能够通过控制向量实现可变增量。 能够表示稀疏向量。 带位移量的向量表示法 6.1.4 稀疏向量表示法 定义:0元素很多,非0元素很少的向量称为稀疏向量 采用压缩方法存储稀疏向量可以节省存储空间。 可以还原之后进行运算,也可以用压缩方法直接进行运算 6.2 向量处理方式 有三种处理方式: 横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。 纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。 纵横处理方式,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。 要根据向量运算的特点和向量处理机的类型选择向量的处理方式。 以一个简单的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+1, N) + T(kn+1, N) 每组用两条向量指令
文档评论(0)