充分开发指令之间存在的并行性,找出不相关的指令序列,让它们在流水线上重叠并行执行。
增加指令间并行性最简单和最常用的方法
开发循环级并行性——循环的不同迭代之间存在的并行性。
在把循环展开后,通过重命名和指令调度来开发更多的并行性。
编译器完成这种指令调度的能力受限于两个特性:
程序固有的指令级并行性;
流水线功能部件的执行延迟。
我们使用的浮点流水线延迟为:
对体系结构寄存器重命名,提供更大的寄存器集合;缓冲来自寄存器的操作数。Tomasulo方案中组合使用两种不同的技术。源操作数缓冲消除了当操作数在寄存器中可用时出现的WAR冒险。对寄存器重命名,再结合对结果的缓存,直到对寄存器早期数据的引用全部结束,这样也有可能消除WAR冒险。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !