Насколько мне известно, нет инструкции, которая бы специально "осушала" трубопровод. Этого легко достичь, используя инструкцию сериализации.
CPUID - это инструкция сериализации, которая означает именно то, что вы ищете. Каждая инструкция выдается до того, как она гарантированно будет выполнена перед инструкцией CPUID.
Таким образом, следующий эффект должен получить желаемый эффект:
cpuid
rdtsc
# stuff
cpuid
rdtsc
Но, кроме того, я не рекомендую вам это делать. На ваши «вещи» все еще могут влиять многие другие вещи вне вашего контроля (такие как кэши ЦП, другие процессы, запущенные в системе и т. Д.), И вы никогда не сможете устранить их все. Лучший способ получить точную статистику производительности - выполнить операции, которые вы хотите измерить, по крайней мере, несколько миллионов раз и усреднить время выполнения пакета.
Редактировать: В большинстве ссылок на инструкции для CPUID упоминаются его свойства сериализации, такие как приложение к руководству по NASM B .
Редактировать 2 : Также, возможно, захотите взглянуть на этот связанный вопрос .