×

使用Tomasulo算法实现循环展开和指令调度的示例详细说明

消耗积分:3 | 格式:pptx | 大小:0.06 MB | 2019-12-09

哄哄1060

分享资料个

充分开发指令之间存在的并行性,找出不相关的指令序列,让它们在流水线上重叠并行执行。

增加指令间并行性最简单和最常用的方法

开发循环级并行性——循环的不同迭代之间存在的并行性。

在把循环展开后,通过重命名和指令调度来开发更多的并行性。

编译器完成这种指令调度的能力受限于两个特性:

程序固有的指令级并行性;

流水线功能部件的执行延迟。

我们使用的浮点流水线延迟为:  

  对体系结构寄存器重命名,提供更大的寄存器集合;缓冲来自寄存器的操作数。Tomasulo方案中组合使用两种不同的技术。源操作数缓冲消除了当操作数在寄存器中可用时出现的WAR冒险。对寄存器重命名,再结合对结果的缓存,直到对寄存器早期数据的引用全部结束,这样也有可能消除WAR冒险。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !