Я видел связанный с этим вопрос, включая здесь и здесь, но кажется, что единственная инструкция когда-либо для сериализации rdtsc
есть cpuid
.
К сожалению, cpuid
занимает примерно 1000 циклов в моей системе, поэтому мне интересно, знает ли кто-нибудь о более дешевой (меньше циклов и не читает или записывает в память) инструкции сериализации?
Я посмотрел на iret
, но это, похоже, изменяет поток управления, что также нежелательно.
Я действительно посмотрел на белую газету, связанную с Алексом, в ответ на rstscp
, но он говорит:
Инструкция RDTSCP ждет, пока все предыдущие инструкции не были выполненных перед чтением счетчика. Однако последующие инструкции могут начать выполнение до того, как операция чтения выполняется.
Эта вторая точка, кажется, делает ее менее идеальной.