计算机系统结构第章流水线技术.ppt

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

* 在向量方式下,计算DAXPY循环所需要的时钟周期数为: Tv = 64+3nv 根据向量长度临界值的定义,有: Tv = Ts 64+3nv = 59nv = 64 56 = 2 nv * * * * 第四页 * 第四页 * * * 第七页 * * * 2)为了计算是否需要推迟时间,以及推迟多少时间,先计算冲突部件的有关时间。 ①源冲突: 从第一次送出到第二次送出之前1τ ②目冲突: 从第一次接收到第二次接收之前1τ ③功能块: 从第一次送出到第二次送入之前1τ 源冲突(V1): 1+7+1+1+6+1+1+4+1+1+14+1=39(τ) 目冲突(V0): 1+1+7+1+1+6+1+1+4+1+1+14+1+1+7=48(τ) 功能块(×): 1+1+6+1+1+4+1+1+14+1=31(τ) 说明:乘法功能部件冲突最严重,上述三个时间以最短时间为准。 * 3)推迟时间计算: ①当长度大于最短有关时间时,实际需要推迟时间为: 向量时间 – 有关时间 ②当长度小于等于有关时间时,实际不用推迟,可视为表面冲突。 本例推迟时间为:64-31=33(τ) 4)完成运算用时计算:顺利连接时间+推迟时间 1+6+1+1+7+1+1+6+1+1+4+1+1+14+1+1+7+1+(64-1)+33=152(τ) 5)性能: 6*64/(152*10-8)≈253M FLOPS * 补充:关于向量指令冲突 1)源寄存器冲突:邻近向量指令使用了同一源向量寄存器,如上例中的V1。 2)目寄存器冲突:邻近向量指令使用了同一目向量寄存器,如上例中的V0。 3)功能部件冲突:邻近向量指令使用了同一功能部件,如上例中的乘法功能部件。解决冲突的办法是推迟法。 冲突又分为表面冲突与实际冲突 如上例中,向量长度为30时,仅表面冲突。 * 课后习题第7题:在CRAY-1机上,在下列指令组中,组内哪些指令可以链接?哪些不可以链接?不能链接的原因是什么?完成各指令所需的拍数(设向量长度均为64,打入寄存器及启动功能部件各需1τ)。 (1)V0←存储器(6τ) ; V1←V2+V3(6τ) ; V4←V5×V6(7τ) (2)V2←V0×V1; V3←存储器; V4←V2+V3 (3)V0←存储器; V2←V0×V1; V3←V2+V0; V6←V3+V4 (4)V0←存储器; V1←1/V0(14τ) ; V3←V1×V2; V5←V3+V4 * 解: (1)既不相关又不冲突—并行执行(不可链接) 1+7+1+(64-1)=72(τ) 3*64/(72*10-8 )≈267MFLOPS (2)有相关,不冲突——可链接 1+7+1+1+6+1+(64-1)=80(τ) 3*64/(80*10-8)= 240 MFLOPS * (3)条条指令相关,但有冲突——不能顺利链接 源冲突(V0): 1+7+1=9(τ) →推迟 64-9=55τ 功能块冲突(加): 1τ→推迟 64-1=63τ 用时: 1+6+2+7+2+6+2+6+1+(64-1)+118 =214(τ) 性能: 4*64/(214*10-8) ≈120M FLOPS * (4)条条相关,且无冲突——可顺利链接 用时: 1+6+2+14+2+7+2+6+1+(64-1)=104(τ) 性能: 4*64/(104*10-8)≈246M FLOPS * 3.5.5提高向量处理机的方法 1.链接技术 前面已经详细介绍了,这里不再叙述。 2.向量循环或分段开采技术 如果向量的长度大于向量寄存器的长度,该如何处理呢? 当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。 这种技术称为分段开采技术。 由系统硬件和软件控制完成,对程序员是透明的。 * 例3-9 设A和B是长度为N的向量,考虑在Cray-1向量处理器上实现以下的循环操作: DO 10 I = 1,N 10 A(I)= 5.0 * B(I) + 1 * S1 ← 5.0 ;将常数5.0送入标量寄存器S1 S2 ← 1.0 ;将常数1.0送入标量寄存器S2 VL ← N ;在向量长度寄存器VL中设置向量长度N V0 ← B ;从存储器中将向量B读入向量寄存器V

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档