【发布时间】:2013-07-31 13:51:36
【问题描述】:
我在 32-nm Intel Westmere 处理器上运行 Linux。我担心来自性能计数器的 DTLB 未命中数上看似矛盾的数据。我用随机内存访问测试程序(单线程)进行了两次实验,如下所示:
-
实验 (1):我使用以下性能计数器计算了 DTLB 未命中数
DTLB_MISSES.WALK_COMPLETED ((Event 49H, Umask 02H) -
实验(2):我通过以下两个计数器值相加来计算 DTLB 未命中数
MEM_LOAD_RETIRED.DTLB_MISS (Event CBH, Umask 80H)MEM_STORE_RETIRED.DTLB_MISS (Event 0CH, Umask 01H)
我希望这些实验的输出是相似的。然而,我发现实验(1)中报告的数字几乎是实验(2)中的两倍。我不知道为什么会这样。
有人可以帮助阐明这种明显的差异吗?
【问题讨论】:
标签: performancecounter tlb intel-vtune