Счетчик производительности оборудования - Hardware performance counter

В компьютеры, счетчики производительности оборудования, или аппаратные счетчики представляют собой набор специализированных регистры встроен в современный микропроцессоры для хранения подсчетов операций, связанных с оборудованием, в компьютерных системах. Опытные пользователи часто полагаются на эти счетчики для проведения низкоуровневых анализ производительности или же настройка.

Реализации

Количество доступных аппаратных счетчиков в процессоре ограничено, а каждый ЦПУ Модель может иметь множество различных событий, которые разработчик может захотеть измерить. Каждый счетчик может быть запрограммирован с индексом отслеживаемого типа события, например промаха кэша L1 или ошибочного предсказания перехода.

Один из первых процессоров, в которых реализован такой счетчик и соответствующая инструкция. RDPMC для доступа к нему был Intel Pentium, но они не были задокументированы до Терье Матисен написал статью о реверс-инжиниринге их в Байт Июль 1994 г.[1]

В следующей таблице показаны некоторые примеры процессоров и количество доступных аппаратных счетчиков:

Процессордоступные счетчики HW
UltraSparc II2
Pentium III2
ARM112
AMD Athlon4
IA-644
ARM Cortex-A52[2]
ARM Cortex-A84
ARM Cortex-A9 MPCore6
МОЩНОСТЬ48
Pentium 418

По сравнению с программными методами

По сравнению с ПО профилировщики, аппаратные счетчики обеспечивают доступ с низкими накладными расходами к большому количеству подробной информации о производительности, связанной с функциональными блоками ЦП, кешами, основной памятью и т. д. Еще одним преимуществом их использования является то, что в целом не требуется никаких изменений исходного кода. Однако типы и значения аппаратных счетчиков варьируются от одного типа архитектуры к другому из-за различий в организациях оборудования.

Могут возникнуть трудности с сопоставлением показателей производительности низкого уровня с исходным кодом. Ограниченное количество регистров для хранения счетчиков часто вынуждает пользователей проводить несколько измерений для сбора всех желаемых показателей производительности.

Выборка на основе инструкций

Вывод профиля IBS из CodeAnalyst.

Современное суперскалярный процессоры планируют и выполняют несколько инструкций вышел из строя за один раз. Эти «текущие» инструкции могут быть удалены в любое время, в зависимости от доступа к памяти, попаданий в кэш, задержек в конвейере и многих других факторов. Это может привести к тому, что события счетчика производительности будут связаны с неправильными инструкциями, что сделает точный анализ производительности трудным или невозможным.

AMD представила методы для устранения некоторых из этих недостатков. Например, в процессорах Opteron реализованы [3] в 2007 году метод, известный как выборка на основе инструкций (или IBS). Реализация IBS от AMD предоставляет аппаратные счетчики как для выборки выборки (передняя часть суперскалярного конвейера), так и для выборки операций (задняя часть конвейера). Это приводит к дискретным данным производительности, связывающим удаленные инструкции с «родительской» инструкцией AMD64.

Смотрите также

Рекомендации

  1. ^ "Секреты Pentium". Gamedev.net. Получено 2012-02-14.
  2. ^ Cortex-A5 Техническое справочное руководство
  3. ^ «Выборка на основе инструкций: новый метод анализа производительности для процессоров AMD семейства 10h» (PDF). AMD. Получено 2015-10-16.