WikiDer > Счетчик производительности оборудования
Эта статья нужны дополнительные цитаты для проверка. (Апрель 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В компьютеры, счетчики производительности оборудования, или аппаратные счетчики представляют собой набор специализированных регистры встроен в современный микропроцессоры для хранения подсчетов операций, связанных с оборудованием, в компьютерных системах. Опытные пользователи часто полагаются на эти счетчики для проведения низкоуровневых анализ производительности или же настройка.
Реализации
Количество доступных аппаратных счетчиков в процессоре ограничено, а каждый ЦПУ Модель может иметь множество различных событий, которые разработчик может захотеть измерить. Каждый счетчик может быть запрограммирован с индексом отслеживаемого типа события, например промаха кэша L1 или ошибочного предсказания перехода.
Один из первых процессоров, в которых реализован такой счетчик и соответствующая инструкция. RDPMC
для доступа к нему был Intel Pentium, но они не были задокументированы до Терье Матисен написал статью о реверс-инжиниринге их в Байт Июль 1994 г.[1]
В следующей таблице показаны некоторые примеры процессоров и количество доступных аппаратных счетчиков:
Процессор | доступные счетчики HW |
---|---|
UltraSparc II | 2 |
Pentium III | 2 |
ARM11 | 2 |
AMD Athlon | 4 |
IA-64 | 4 |
ARM Cortex-A5 | 2[2] |
ARM Cortex-A8 | 4 |
ARM Cortex-A9 MPCore | 6 |
МОЩНОСТЬ4 | 8 |
Pentium 4 | 18 |
По сравнению с программными методами
По сравнению с ПО профилировщики, аппаратные счетчики обеспечивают доступ с низкими накладными расходами к большому количеству подробной информации о производительности, связанной с функциональными блоками ЦП, кешами, основной памятью и т. д. Еще одним преимуществом их использования является то, что в целом не требуется никаких изменений исходного кода. Однако типы и значения аппаратных счетчиков варьируются от одного типа архитектуры к другому из-за различий в организациях оборудования.
Могут возникнуть трудности с сопоставлением показателей производительности низкого уровня с исходным кодом. Ограниченное количество регистров для хранения счетчиков часто вынуждает пользователей проводить несколько измерений для сбора всех желаемых показателей производительности.
Выборка на основе инструкций
Современное суперскалярный процессоры планируют и выполняют несколько инструкций вышел из строя за один раз. Эти «текущие» инструкции могут быть удалены в любое время, в зависимости от доступа к памяти, попаданий в кэш, задержек в конвейере и многих других факторов. Это может привести к тому, что события счетчика производительности будут связаны с неправильными инструкциями, что сделает точный анализ производительности трудным или невозможным.
AMD представила методы для устранения некоторых из этих недостатков. Например, в процессорах Opteron реализованы [3] в 2007 году метод, известный как выборка на основе инструкций (или IBS). Реализация IBS от AMD предоставляет аппаратные счетчики как для выборки выборки (передняя часть суперскалярного конвейера), так и для выборки операций (задняя часть конвейера). Это приводит к дискретным данным производительности, связывающим удаленные инструкции с «родительской» инструкцией AMD64.
Смотрите также
Рекомендации
- ^ "Секреты Pentium". Gamedev.net. Получено 2012-02-14.
- ^ Cortex-A5 Техническое справочное руководство
- ^ «Выборка на основе инструкций: новый метод анализа производительности для процессоров AMD семейства 10h» (PDF). AMD. Получено 2015-10-16.