cpuid用作序列化指令以防止在基准测试时执行ooo,因为基准指令的执行可能会在rdtsc单独使用之前重新排序.我的问题是,是否依然可能下面的说明rdtsc中之间的重新排序cpuid和rdtsc?由于rdtsc不是序列化指令,指令可以在它周围自由重新排序?
小智 1
由于 RDTSC 原则上不依赖于任何输入(它不接受任何参数),因此 OOO 管道将尽快运行它。在它之前添加序列化指令的原因是不让 RDTSC 更早执行。
John McCalpin这里有一个答案,你可能会发现它很有用。他解释了 RDTSCP 指令的 OOO 重新排序(其行为与 RDTSC 不同),您可能更喜欢使用它。
| 归档时间: |
|
| 查看次数: |
263 次 |
| 最近记录: |