Когда виртуальная память включена, виртуальный адрес каждого отдельного доступа к памяти необходимо искать в TLB, чтобы получить соответствующий физический адрес и определить разрешения и привилегии доступа (или вызвать исключение в случае недопустимого сопоставления).События dTLB-loads
и dTLB-stores
представляют поиск TLB для загрузки памяти данных или доступа к хранилищу соответственно.Это perf
определение этих событий.но точное значение зависит от микроархитектуры.
На Уэстмере, Скайлэйке, Каби-Лейк, Кофей-Лейк, Кэннон-Лейк (и, возможно, Ледяное озеро), dTLB-loads
и dTLB-stores
сопоставлены с MEM_INST_RETIRED.ALL_LOADS
и MEM_INST_RETIRED.ALL_STORES
соответственно.На Сэнди-Бридж, Айви-Бридж, Хасвелл, Бродвелл, Голдмонт, Голдмонт Плюс они сопоставлены с MEM_UOP_RETIRED.ALL_LOADS
и MEM_UOP_RETIRED.ALL_STORES
соответственно.На Core2, Nehalem, Bonnell, Saltwell они сопоставлены с L1D_CACHE_LD.MESI
и L1D_CACHE_ST.MESI
соответственно.(Обратите внимание, что в Bonnell и Saltwell официальными названиями событий являются L1D_CACHE.LD
и L1D_CACHE.ST
, а коды событий, используемые perf
, документированы только в томе 3 руководства Intel, а не в других источниках Intel по событиям производительности.) События dTLB-loads
и dTLB-stores
не поддерживаются в Silvermont и Airmont.
На всех текущих процессорах AMD dTLB-loads
отображается на LsDcAccesses
, а dTLB-stores
не поддерживается.Тем не менее, LsDcAccesses
считает TLB-запросы как для загрузки, так и для хранения.На процессорах других производителей dTLB-loads
и dTLB-stores
не поддерживаются.
См. Аппаратные события кэширования и perf , чтобы узнать, как сопоставить perf
события ядра с собственными событиями.
Количество событий dTLB-loads
и dTLB-stores
для одной и той же программы на разных микроархитектурах может отличаться не только из-за различий в микроархитектурах, но и из-за того, что сам смысл событий различен.Следовательно, даже если микроархитектурное поведение программы оказалось одинаковым на микроархитектурах, число событий может все же быть другим.Краткое описание нативных событий для всех микроархитектур Intel можно найти здесь , а более подробное описание некоторых микроархитектур можно найти здесь .
как интерпретировать перфоленты iTLB-нагрузки, перегрузки iTLB-нагрузки .