我已经看到了相关的问题,包括这里和这里,但似乎唯一提到的序列化指令rdtsc
是cpuid
。
不幸的是,cpuid
在我的系统上大约需要 1000 个周期,所以我想知道是否有人知道更便宜的(更少的周期,没有读取或写入内存)序列化指令?
我看了看iret
,但这似乎改变了控制流,这也是不可取的。
我实际上已经查看了 Alex 的关于 的回答中链接的白皮书rstscp
,但它说:
RDTSCP 指令等到所有先前的指令都已执行后才读取计数器。然而,后续指令可能在执行读取操作之前开始执行。
第二点似乎是让它不太理想。