我正在尝试理解Memory barrier是如何工作的,为什么要使用它,以及在什么情况下应该使用它。然而,我不完全确定在什么情况下,安排指令的顺序会更有效率,有人能给我举个例子吗?
发布于 2010-10-17 11:50:05
它很有用的一种情况是浮点计算-这些通常比“正常”指令花费更长的时间,所以对于CPU来说,将这些指令放在一边运行几条指令是很有用的,而其他正常的程序指令发生在主ALU中。
它还有助于保持所有流水线处于活动状态-一些CPU有多个指令流水线(例如,一个专门用于分支,两个专门用于算术运算符,以及几个用于浮点和SIMD指令)。重新排序指令允许CPU保持所有流水线充满,而不是为几条指令留出一条空的,因此加快了程序的执行。
即使对于单个流水线,重新排序指令也可以通过删除连续的相关指令来帮助保持流水线充满-请参阅http://en.wikipedia.org/wiki/Instruction_pipeline
https://stackoverflow.com/questions/3953016
复制