直接从 CPU 读取 TEMPERATURE_TARGET

Reading TEMPERATURE_TARGET directly from CPU

我想直接从我的 Intel i7-5930k 中的 TEMPERATURE_TARGET 寄存器中读取 TCC 将被激活的最低温度。英特尔的 Socket Thermal Guide (http://www.intel.com/content/www/us/en/processors/core/core-i7-lga2011-3-tmsdg.html) 说 TEMPERATURE_TARGET 寄存器中有一个软件可读字段。有没有办法使用命令行工具或编写一些代码来读取此字段以获取 Linux 中的绝对处理器温度?

这取决于OS。

在 linux 上,您可以使用 rdmsr 阅读它(阅读模型 特定寄存器)

在 ubuntu 上,您可以尝试以下操作:

sudo apt-get install msr-tools
sudo modprobe msr
sudo rdmsr --bitfield 15:8 -c 0x00001a2
sudo rdmsr --bitfield 23:16 -c 0x00001a2

Returns 0x120x69 在我的机器上。

说明

来自 Thermal Mechanical Design Guidelines(第 20 页):

  1. Temperature Control (T_CONTROL ) Offset: MSR (1A2h) TEMPERATURE_TARGET[15:8]
  2. TCC Activation Temperature: MSR (1A2h) TEMPERATURE_TARGET[23:16]
  • 0x00001a2为注册号
  • 第一个 rdmsr 命令读取字段 Temperature Control Offset
  • 第二个rdmsr命令读取字段TCC激活温度