计算机系统结构-第-3-章-流水线技术-向量剖析教学提纲.pptVIP

计算机系统结构-第-3-章-流水线技术-向量剖析教学提纲.ppt

  1. 1、本文档共116页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统结构-第-3-章-流水线技术-向量剖析;3. 6.1 向量流水机的基本系统结构;3.6.1.1 向量流水处理的主要特点;在对相同数量的数据项进行操作时,向量操作要比一串标量指令操作更快。 向量流水机可使访存和有效地址计算流水化。 高档的向量机允许多个向量操作同时进行,从而可开发对不同元素进行多个向量操作的并行性。;3.6.1.2 向量机的基本系统结构;典型的向量机基本系统结构;向量处理机的典型结构图;例:一个典型向量求解问题: Y=a×X+Y 其中X和Y为向量,初始值存放在存储器中,a为标量。 采用双精度运算时的算法:a乘X后再加Y。;若用标量机运算,需要用标量指令对向量中的每个元素进行一次乘、加和存储操作,并且为了实现循环操作,每次必须要指明对X和Y中元素位置的下标变量进行增量,并使操作次数每次减1,以判别循环是否结束。 设X和Y向量的首地址分别存放在Rx和Ry中,当向量元素长度为64时,用标量机处理的循环程序段为:; LD F0,a ;标量a装入F0 ADDI R4,Rx,#512 ;将向量元素的末地址装 ;入R4中 LOOP:LD F2,0(Rx) ;取向量元素X(i) MULD F2,F0,F2 ;a与X(i)相乘 LD F4,0(Ry) ;取向量元素Y(i) ADDD F4,F2,F4 ;aX(i)与Y(i)相加 SD 0(Ry),F4 ;存结果向量元素 ADDI Rx,Rx,#8 ;增量向量元素X下标 ADDI Ry,Ry,#8 ;增量向量元素Y下标 SUB R20,R4,Rx ;R4-Rx→R20,计算是 ;否到达限界值 BNZ R20,LOOP ;若循环未结束,转LOOP;用向量机完成同样操作: LD F0,a ;标量a装入F0 LV V1,Rx ;装入向量X,LV为向 量取指令 MULTV V2,F0,V1 ;向量X与标量a相乘 LV V3,Ry ;装入向量Y ADDV V4,V2,V3 ;向量加aX+Y SV Ry,V4 ;存结果向量,SV为向量存指令;;标量机与向量机计算Y=a×X+Y的比较;3.6.1.3 向量启动时间和启动率;例:一个向量乘法流水部件的启动时间为l0个时钟周期。启动后的启动率为1。对于长度为64的向量乘法,产生每个向量元素结果所需时钟周期数为: 对于运行速度较慢的向量流水操作,启动时间的大小对它的影响不大,但对于启动率为1的高速向量流水操作,启动时间的增加就将使性能受到较大影响。 ;寄存器 — 寄存器工作方式的影响因素;3.6.2 向量操作长度控制和向量访问步长;;可见向量操作长度依赖于n值,而这个n值通常在编译时无法知道,往往要在运行时才可确定,而且这个长度也可能是过程的参数,因此在执行时很易改变。 解决方法:采用一个向量长度寄存器,存放某一代码段操作的长度,由它来控制向量操作的长度以及向量的装载和存储。;在向量长度寄存器中存放的向量长度值不能超过向量寄存器的长度(MVL)。 向量长度小于向量寄存器长度时,均可放入向量寄存器。 向量长度大于向量寄存器长度时,需将向量长度按向量寄存器长度分段,分段后的向量长度即是每次向量操作的长度,它必须等于或小于向量寄存器长度。;采用分段技术后, SAXPY循环可写成如下形式: low=0; VL=n % MVL; *找出零头长度值 for ( j=0; j<n/MVL; j++) { *外循环 for ( i=low; i<low+VL;i++) *以长度VL操作

您可能关注的文档

文档评论(0)

151****0277 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档