网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机体系结构-向量处理.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 向量处理 主要参考:Professor David A. Patterson的讲稿 传统指令级并行技术的问题 挖掘ILP的传统方法的主要缺陷: 1) 提高流水线的时钟频率: 提高时钟频率,有时导致CPI随着增加 (branches, other hazards) 2) 指令预取和译码: 有时在每个时钟周期很难预取和译码多条指令 3) 提高Cache命中率 : 在有些计算量较大的应用中(科学计算)需要大量的数据,其局部性较差,有些程序处理的是连续的媒体流(multimedia),其局部性也较差。 Alternative Model:Vector Processing 向量处理机具有更高层次的操作,一条向量指令可以处理N个或N对操作数(处理对象是向量) 向量处理机的基本特性 向量处理机的基本思想:把两个向量的对应分量进行运算,产生一个结果向量。 简单的一条向量指令包含了多个操作 = fewer instruction fetches 每一结果独立于前面的结果 = 长流水线,编译器保证操作间没有相关性 =硬件仅需检测两条向量指令间的相关性 = 较高的时钟频率 向量指令以已知的模式访问存储器 = 可有效发挥多体交叉存储器的优势 = 可通过重叠减少存储器操作的延时 - 64 elements = 不需要数据Cache! (仅使用指令cache) 在流水线控制中减少了控制相关 Operation Instruction Count: RISC v. Vector Processor (from F. Quintana, U. Barcelona.) Spec92fp Operations (Millions) Instructions (M) Program RISC Vector R / V RISC Vector R / V swim256 115 95 1.1x 115 0.8 142x hydro2d 58 40 1.4x 58 0.8 71x nasa7 69 41 1.7x 69 2.2 31x su2cor 51 35 1.4x 51 1.8 29x tomcatv 15 10 1.4x 15 1.3 11x wave5 27 25 1.1x 27 7.2 4x mdljdp2 32 52 0.6x 32 15.8 2x 向量处理机的基本结构 memory-memory vector processors: 所有的向量操作是存储器到存储器的 vector-register processors: 除了load 和store操作外,所有的操作是向量寄存器与向量寄存器间的操作 向量机的Load/Store结构 1980年以后的所有的向量处理机都是这种结构: Cray, Convex, Fujitsu, Hitachi, NEC 下面我们也主要针对这种结构 向量处理机的基本组成单元 Vector Register: 固定长度的一块区域,存放单个向量 至少2个读端口和一个写端口 典型的有8-32 向量寄存器,每个寄存器存放64到128个64位的元素 Vector Functional Units (FUs): 全流水化的,每一个clock启动一个新的操作 一般4到8个FUs: FP add, FP mult, FP reciprocal (1/X), integer add, logical, shift; 可能有些重复设置的部件 Vector Load-Store Units (LSUs): 全流水化地load 或store一个向量,可能会配置多个LSU部件 Scalar registers: 存放单个元素用于标量处理或存储地址 用交叉开关连接(Cross-bar to connect) FUs , LSUs, registers “DLXV” Vector Instructions Instr. Operands Operation Comment ADDV V1,V2,V3 V1=V2+V3 vector + vector ADDSV V1,F0,V2 V1=F0+V2 scalar + vector MULTV V1,V2,V3 V1=V2xV3 vector x vector MULSV V1,F0,V2 V1=F0xV2 scalar x vector LV V1,R1 V1=M[R1..R1+63] load, stride=1 LVWS V1,R1,R2 V1=M[R1..R1+63*R2] load, stride=R

文档评论(0)

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

没有什么可以说的

1亿VIP精品文档

相关文档