x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い
Intel x86/x86-64アーキテクチャで提供されるRDTSC
(Read Time Stamp Counter)命令とRDTSCP
(Read Time-Stamp Counter and Processor ID)命令は、そのタイムスタンプカウンタ読取動作に関して何が異なるのでしょうか。
RDTSC
では命令シリアライズが行われずOut-of-Orderプロセッサで不正確な値を読み取るが、後世代で追加されたRDTSCP
では命令シリアライズが強制されるという違いだけでしょうか?
また、RDTSCP
で同時に読み取られるIA32_TSC_AUX
MSRの使い道も知りたいです。