|
|
1
5
其中一个很有用的例子是浮点运算——这些运算通常比“普通”指令要花更长的时间,因此CPU可以将这些指令运行到多个指令的一边,而其他普通程序指令则发生在主ALU中。 它还可以帮助保持所有管道的活动状态—一些CPU具有多条指令管道(例如,一条专门用于分支,一对专门用于算术运算符,一对专门用于浮点和SIMD指令)。重新排序指令允许CPU保持所有的管道满,而不是让一个空的用于几个指令,这样可以加快程序的执行速度。 即使对于单个管道,重新排序指令也可以通过删除连续的相关指令来帮助保持管道满-请参阅 http://en.wikipedia.org/wiki/Instruction_pipeline |
|
|
gd1234 · 编译器会知道跳过这个循环吗? 2 年前 |
|
|
ChrisB · 为什么Rust不为内存布局重新排序枚举中的字段? 2 年前 |
|
|
Hans · 避免在C++中优化未使用的变量? 3 年前 |