hereおよびhereを含む関連する質問を見てきましたが、シリアル化についてこれまでに言及された唯一の命令rdtsc
はcpuid
.
残念ながら、cpuid
私のシステムでは約1000サイクルかかるので、より安価な(サイクルが少なく、メモリへの読み取りまたは書き込みがない)シリアル化命令を誰かが知っているかどうか疑問に思っていますか?
を見ましたiret
が、それは制御フローを変更するようで、これも望ましくありません。
についてのアレックスの回答にリンクされているホワイトペーパーを実際に見ましたが、次のrstscp
ように書かれています。
RDTSCP 命令は、カウンターを読み取る前に、前のすべての命令が実行されるまで待機します。ただし、後続の命令は、読み取り操作が実行される前に実行を開始する場合があります。
その2番目のポイントは、理想的ではないことです。