阅读MSR MPERF有哪些条件?

时间:2013-10-15 20:23:35

标签: assembly x86 x86-64 intel msr

我正在尝试阅读MPERF和APERF MSR。但是,当我这样做时,机器重新启动,可能是因为GP异常。

以下是我使用的代码:

; Read MPERF register
mov ecx, 0xe7
rdmsr

rdmsr上的代码中断。我有一台Intel Haswell处理器。我在长模式下运行。

我很确定我在Ring 0中运行,因为我正在运行自己的操作系统。而且,如果我这样做:

; Read PAT register
mov ecx, 0x277
rdmsr

它毫无例外地运作。

阅读此特定寄存器(MPERF)的其他条件是什么?

1 个答案:

答案 0 :(得分:2)

我想在您的情况下,所需的MSR被融合或不受设计支持,CPUID可以批准它。 作为计算核心频率的替代方案,请参考Finding out the CPU clock frequency (per core, per processor),在答案中有一个不依赖于MPERF MSR寄存器的配方