首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在什么情况下,乱序执行会产生更有效的代码?

在什么情况下,乱序执行会产生更有效的代码?
EN

Stack Overflow用户
提问于 2010-10-17 19:32:48
回答 1查看 294关注 0票数 4

我正在尝试理解Memory barrier是如何工作的,为什么要使用它,以及在什么情况下应该使用它。然而,我不完全确定在什么情况下,安排指令的顺序会更有效率,有人能给我举个例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-17 19:50:05

它很有用的一种情况是浮点计算-这些通常比“正常”指令花费更长的时间,所以对于CPU来说,将这些指令放在一边运行几条指令是很有用的,而其他正常的程序指令发生在主ALU中。

它还有助于保持所有流水线处于活动状态-一些CPU有多个指令流水线(例如,一个专门用于分支,两个专门用于算术运算符,以及几个用于浮点和SIMD指令)。重新排序指令允许CPU保持所有流水线充满,而不是为几条指令留出一条空的,因此加快了程序的执行。

即使对于单个流水线,重新排序指令也可以通过删除连续的相关指令来帮助保持流水线充满-请参阅http://en.wikipedia.org/wiki/Instruction_pipeline

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3953016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档