1. 性能监控机制: 事件监控为核心

性能监控机制中以事件监控机制核心,对发生的事件进行统计。

典型的,性能分析软件可以使用监控事件机制,对目标软件在执行过程中的某些事件进行监控。性能分析软件收集和分析目标软件事件发生次数

1. 性能监控机制

如上所示:对发生事件统计前,要开启计数器!!!选择监控的事件!!!,Intel为不同架构的处理器定义了多种多样的监控事件

在Intel平台上,使用两种counter(计数器)。

① general-purpose PMC(Performance Monitor Counter):通用的性能监控计数器

② Fixed-function counter(固定用途的性能监控计数器):Fixed-function计数器功能有限,但使用非常简单。

软件中可以设定,当counter发生溢出时产生PMI(Performance Monitoring Interrupt)或者PEBS中断来进行相应处理。PMI中断PEBS中断都使用PMI handler进行处理。

PMI可屏蔽的local APIC中的本地中断源(LVT!!!),在LVT Performance monitor寄存器中设置。

2. architectural与non-architectural性能监控事件

在Intel处理器上,performance monitoring机制分为两大类

non-architectural(非架构化):从Pentium处理器开始引入,包括早期的P6家族、Pentium4家族和Xeon处理器。

architectural(架构化):由Core微架构开始支持architectural化的performance monitoring机制。从最初的Core Sole和Core Duo处理器开始支持。

non-architectural性能监控机制与处理器Model相关的,也就是说不同的处理器Model可能会不一致(!!!)。而architectural的性能监控机制各个处理器Model中保持向下兼容

而在越往后的微架构处理器中,architectural化性能监控机制都得到增强,越新的处理器所支持的功能可能会越强大。

可以推广至其他的处理器机制,例如:non-architectural化MSR寄存器在各个处理器Model中地址是不同的(或者不同Model的处理器提供不同的MSR寄存器),而architectural化的MSR寄存器是保持向下兼容的,后续的处理器将增强。

3. 确定处理器的Model

我们在之前已经多次提及确定处理器的Model,必须从DisplayFamily_DisplayModel的值来确定,请参考4.4节所述。

在本章中主要围绕06_25H(即Westmere架构)模型进行探讨,Westmere架构继承于Nehalem架构,因此关于Nehalem架构的所有探讨均适合于Westmere架构,同时大部分也适合于Sandy Bridge架构

相关文章: