我已經看到相關的問題,包括here和here,但似乎唯一的序列化提到的指令rdtsc
是cpuid
。有比cpuid更便宜的序列化指令嗎?
不幸的是,cpuid
把我的系統上大體有1000個週期,因此,如果有人知道更便宜的(週期更少,沒有讀取或寫入到內存)串行指令我想知道?
我看着iret
,但這似乎改變了控制流,這也是不可取的。
其實我已經看了看Alex的答案鏈接有關rstscp
的whitespaper,但它說:
的RDTSCP指令等待,直到所有先前的指令已經 閱讀櫃檯前執行。 但是,在執行讀操作 之前,可能會開始執行後續的 指令。
第二點似乎是使它不理想。
關於編輯:你讀過下一節嗎?他們正好爲此添加了CPUID(避免了在RDTSCP之上重新排序的後續指令) – Leeor