4

我试图了解内存屏障是如何工作的,为什么要使用它以及在什么情况下应该使用它。但是我不完全确定在什么情况下安排指令的顺序会更有效,谁能给我一个例子?

4

1 回答 1

5

它有用的一种情况是浮点计算 - 这些通常比“正常”指令花费更长的时间,因此 CPU 在多条指令上运行这些指令是有用的,而其他正常的程序指令发生在主指令中铝。

它还可以帮助保持所有管道处于活动状态 - 一些 CPU 具有多个指令管道(例如,一个专门用于分支,一对专门用于算术运算符,还有一对用于浮点和 SIMD 指令)。对指令进行重新排序可以让 CPU 保持所有的流水线都是满的,而不是为几条指令留一个空的,从而加快程序的执行速度。

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

于 2010-10-17T11:50:04.997 回答