CPP Linux: о RDTSC

Я использую следующую функцию в моем коде:

static __inline__ unsigned long long rdtsc(void){
  unsigned long long int x;
  __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
  return x;
}

Эта функция возвращает количество тактов с момента последней загрузки? Где я могу найти документацию по этой функции?

1 ответ

RDTSC получает количество циклов процессора с момента последнего сброса, см. википедию.

Руководство по набору инструкций Intel, том 2А и В, в качестве более надежного источника:

Процессор монотонно увеличивает счетчик меток времени MSR каждый тактовый цикл и сбрасывает его в 0 при каждом сбросе процессора. См. "Счетчик меток времени" в главе 16 Руководства разработчика программного обеспечения для архитектуры Intel® 64 и IA-32, том 3B, для получения подробной информации о поведении счетчика меток времени.

в качестве примечания: вы не должны излучать байты, а используйте RTDSC инструкция мнемоническая, делает ее намного более читаемой.

Другие вопросы по тегам