Я пытаюсь понять, как тестировать одну инструкцию, и нашел следующую статью о тестировании Intel: https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-32-ia-64-benchmark-code-execution-paper.pdf
Таким образом, мы используем rdtsc
, чтобы прочитать количество тактов. Но, как указано в руководстве Intel 17.17 TIME-STAMP COUNTER
, ранее процессор увеличивает его с фиксированной частотой, которая может отличаться от текущей тактовой частоты.
Для процессоров Pentium 4, процессоров Intel Xeon [...]: время
счетчик штампов увеличивается с постоянной скоростью. Этот показатель может быть установлен
по максимальному отношению частоты ядра к частоте процессора или
может быть установлен максимальной разрешенной частотой, на которой
процессор загружен.
Итак, у меня есть 2 вопроса:
- Есть ли способ получить фактические тактовые частоты процессора, как
rdtsc
, полученный для более старых процессоров?
- Есть ли способ измерить количество мопов в какой-либо инструкции? В частности, я хочу, чтобы вы сравнили разницу мопов, которая требуется, когда инструкция конвейерна, а не (например, когда та же самая команда повторяется, когда цикл развернут)