第3章流水线技术祥解.ppt

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

* * 例:要进行向量运算 D=A×(B+C) 设向量长度≤64,且B和C已由存储器取至V0和V1,则完成运算的向量指令为: LD V3,A ;V3←A ADDV V2,V0,V1 ;V2←V0+V1 MULTV V4,V2,V3 ;V4←V2×V3 第一、二条指令因既无向量寄存器使用冲突,也无功能部件使用冲突,因而可并行执行。 第三条指令与第一、二条指令均存在先写后读相关冲突,因而可将第三条指令与第一、二条指令链接执行。 * * * * 设:把向量数据元素送往向量功能部件以及把结果存入向量寄存器需要1拍时间。 从存储器中把数据送入访存功能部件需要1 拍时间。 * * 若这三条指令全部用串行方法则所需时间为: [(1+6+1)+N-1)+[(1+6+1)+N-1]+[(1+7+1)+N-1)=3N+22拍 若前两条指令并行执行,第三条指令串行执行,则所需时间为: [(1+6+1)+N-1)+[(1+7+1)+N-1) =2N+15拍 采用并行和链接加速技术后,当被加工向量长度为N时,执行所需时间为: (1+6+1)+(1+7+1)+(N-1) =17+N-1 =N+16拍 建立时间 * * 实现链接的时间上的要求 ① 只有当前一指令的第一个结果分量送入结果向量寄存器的那一个时钟周期方可链接,若错过该时刻就无法进行链接,只有等前一向量指令全部执行完毕,释放向量寄存器资源后才能执行后面指令。 在上面的例子中,当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的延迟时间相等(如上例中的访存和浮点加功能部件延时均为6个时间单位)。 ②进行链接的向量指令的向量长度必须相等,否则就不可能链接。 * * 例:在CRAY-1机中,浮点功能部件中各功能段的执行时间为: 浮点加法:6拍;浮点乘法:7拍;求倒数:14拍;存储器存/取:6拍;启动功能部件: 1拍;打入结果: 1拍。 分析任务数为50时,下列指令段的完成时间: ① V0←存储器 ② V3←V1+V2 ③ V4←V0×V3 ④ V0←V4+V5 * * 分析: ①与②无功能和寄存器冲突,可并行。 ②与③先写后读数据相关,可以链接。 ④与②有功能冲突,必须在①与②执行完后,才能启动④,即④只能串行工作 。 ① V0←存储器 ② V3←V1+V2 ③ V4←V0×V3 ④ V0←V4+V5 执行时间: (1+6+1)+(1+7+1)+(50-1)+(1+6+1)+(50-1) =123拍 并行 链接 串行 * * 例:分析在CRAY-1机中,任务数为50时,下列指令段的完成时间。 ① V0←存储器 ② V1←V2+V3 ③ V6←V4×V5 分析:三条指令均无功能冲突,可采用全并行的方式,指令段的完成时间为: (1+7+1)+(50-1)=58拍 * * 例:分析在CRAY-1机中,任务数为50时,下列指令段的完成时间,设浮点求倒数的执行时间为14拍。 ① V2← V0×V1 ② V3←存储器 ③ V4←V2+V3 ④ V5←1/V4 分析: ①与②无功能和寄存器冲突,可并行。 ①与②节拍不一致, ③不能与①、②链接,只能串行执行。 ③与④先写后读数据相关,可以链接。 执行时间: (1+7+1)+(50-1)+ (1+6+1)+(1+14+1)+(50-1)=131拍 并行 链接 串行 * * 3.6.6.3 分段开采技术 1. 向量操作长度控制 ⑴ 实际程序中的向量长度往往并不与向量机的自然向量长度相同。 自然向量长度:向量寄存器型的向量机中,每个向量寄存器可存放的向量元素个数。 ⑵ 程序中一个具体的向量操作长度在编译时经常是未知的,因为在一个代码段中可能需要不同的向量长度。 * * 如果向量的长度大于向量寄存器的长度,则需要采用分段开采技术。 分段开采技术(向量循环) 当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。 分段开采由系统硬件和软件控制完成,对程序员是透明的。 * * 将向量长度按向量寄存器的长度(MVL)分段,分段后的向量长度即是每次向量操作的长度,它必须等于或小于向量寄存器长度。 向量长度小于向量寄存器长度时,均可放入向量寄存器。 向量长度大于向量寄存器长度时,需采用分段开采技术(向量循环)。 分段开采的实现 * * 向量寄存器 MVL 向量 向量长度 分段开采 * * 例: 设A和B是长度为N的向量,需要在Cray-1向量处理器上实现以下的循环操作:

文档评论(0)

光光文挡 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档