我试图理解性能事件的含义:dTLB 加载和 dTLB 存储?
当启用虚拟内存时,每次内存访问的虚拟地址都需要在TLB中查找,以获得相应的物理地址并确定访问权限和特权(或者在映射无效的情况下引发异常)。这dTLB-loads
and dTLB-stores
事件分别表示数据存储器加载或存储访问的 TLB 查找。是perf
这些事件的定义。但确切的含义取决于微架构。
在韦斯特米尔、斯凯湖、卡比湖、咖啡湖、坎农湖(可能还有冰湖),dTLB-loads
and dTLB-stores
被映射到MEM_INST_RETIRED.ALL_LOADS
and MEM_INST_RETIRED.ALL_STORES
, 分别。在 Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Goldmont、Goldmont Plus 上,它们被映射到MEM_UOP_RETIRED.ALL_LOADS
and MEM_UOP_RETIRED.ALL_STORES
, 分别。在 Core2、Nehalem、Bonnell、Saltwell 上,它们被映射到L1D_CACHE_LD.MESI
and L1D_CACHE_ST.MESI
, 分别。 (请注意,在 Bonnell 和 Saltwell 上,事件的官方名称是L1D_CACHE.LD
and L1D_CACHE.ST
以及使用的事件代码perf
仅记录在英特尔手册第 3 卷中,未记录在其他有关性能事件的英特尔来源中。)dTLB-loads
and dTLB-stores
Silvermont 和 Airmont 不支持事件。
在所有当前的 AMD 处理器上,dTLB-loads
被映射到LsDcAccesses
and dTLB-stores
不支持。然而,LsDcAccesses
计算加载和存储的 TLB 查找次数。在其他供应商的处理器上,dTLB-loads
and dTLB-stores
不支持。
See 硬件缓存事件和性能了解如何绘制地图perf
核心事件到原生事件。
The dTLB-loads
and dTLB-stores
不同微架构上的同一程序的事件计数可能不同,不仅因为微架构的差异,而且因为事件的含义本身不同。因此,即使程序的微体系结构行为在微体系结构上是相同的,事件计数仍然可能不同。可以找到所有 Intel 微架构上本机事件的简要描述here可以找到一些微架构的更详细描述here.
有关的:如何解释 perf iTLB-loads,iTLB-load-misses.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)