第7章答案_多发射数据通路.docVIP

第7章答案_多发射数据通路.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在多发射乱序执行的处理器上,编译器的调度还需要吗?请举例论证你的观点。 解:编译器的调度还是需要,通常是采用编译器的静态调度和硬件的动态调度相结合来提高流水线的效率。静态指令调度是在还不知道程序某些动态信息和行为的情况下,根据所分析的指令之间依赖关系以及目标机的资源状况,对指令序列进行重排,从而减少流水线停顿。因为动态调度只是在某个指令窗口中进行调度,例如是64个指令窗口中选择指令进行调度和执行。而编译器可以在更大的指令窗口进行调度,例如在程序块或者块之间等进行调度。 典型的例子有:1)编译器进行的循环展开,消除控制相关和增加可调度的指令数目。2)延迟槽指令,编译器可以把有效的指令放入到延迟槽进行执行。 请给出一种在多发射动态调度的处理器上解决访存相关的方案。 解:1)使用store buffer来作为一个临时性位置存放写操作的值。在store指令提交的时候才写入到cache中。 2)store指令按程序的顺序写回到cache中。任何访问相同地址的load可以从之前的store指令中获得值,即load forwarding技术。 3)两种方法:一是非推测的方法,后续的load指令不能超过前面的store指令,通常采用load forwarding技术;二是推测的方法,speculative load execution。例如一条store指令后面有一条load指令,而store指令的访存地址还没有计算出来,很可能load的地址就是store的指令的地址,因此可能存在着RAW相关。推测的方法speculative load-store reordering是一种推测执行的技术,就像分支预测之后的推测执行一样,可以把阻塞的store指令之后的load指令提前执行,等store指令访存地址计算之后,和其后续的load指令的访存地址进行比较,如果访存地址有交叉,则需要取消该load指令,以及和它相关的后续指令,重新开始执行,和分支误预测一样处理。 以下有4段MIPS代码片段,每段包含两条指令: ① DADDI LD R2, R2, 2 R2, 4(R2) ② DSUB SD R3, R1, R2 R2, 7(R1) ③ S.D S.D F2, 7(R1) F2, 200(R7) ④ BLE SD R2, place R2, 7(R2) 解:1) ①中存在RAW相关和WAW相关; ②中没有相关; ③中可能存在访存相关; ④中存在控制相关。(假设没有延迟槽) 通过重命名机制可以消除WAW和WAR相关。通过延迟槽技术或者可以消除控制相关。 2)①不可以同时发射,②③④可以同时发射。 解: (1) 循环展开2次 L: L.D F0, 0(R1) ; load X[i] L.D F4, 0(R2) ; load Y[i] MUL.D F0, F0, F2 ; a*X[i] L.D F6, -8(R1) ; load X[i-1] L.D F8, -8(R2) ; load Y[i-1] MUL.D F6, F6, F2 ; a*X[i-1] ADD.D F0, F0, F4 ; a*X[i] + Y[i] DSUBUI R2, R2, 16 ADD.D F6, F6, F8 ; a*X[i-1]+ Y[i-1] DSUBUI R1, R1, 16 S.D F0, 16(R2) ; store Y[i] BNEZ R1, L S.D F6, 8(R2) ; store Y[i-1] 计算一个元素需13/2=6.5拍。 (2) 假设双发射流水线中有彼此独立的一条定点流水线和一个浮点流水线。 定点指令线 浮点指令线 L: L.D F0, 0(R1) L.D F6, -8(R1) L.D F10, -16(R1) MUL.D F0, F0, F2 L.D F14, -24(R1) MUL.D F6, F6, F2 L.D F4, 0(R2) MUL.D F10, F10, F2 L.D F8, -8(R2) MUL.D F14, F14, F2 L.D F12, -16(R2) ADD.D F0, F0, F4 L.D F16, -24(R2) ADD.D F6, F6, F8 DSUBUI R2, R2, 32 ADD.D F10, F10, F12 DSUBUI R1, R1, 32 ADD.D F14, F14, F16 S.D F0, 32(R2) S.D F6, 24(R2) S.D F10, 16(R2) BNEZ R1, L S.D F14, 8(R2) 计算每个元素需要15/4=3.

文档评论(0)

renweng + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档