直接从CPU读取TEMPERATURE_TARGET

时间:2016-05-23 20:30:17

标签: python c++ c cpu-registers

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

1 个答案:

答案 0 :(得分:2)

这取决于操作系统。

在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

在我的计算机上返回0x120x69

<强>解释

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

  
      
  1. 温度控制(T_CONTROL)偏移:MSR(1A2h)   TEMPERATURE_TARGET [15:8]
  2.   
  3. TCC激活温度:MSR(1A2h)TEMPERATURE_TARGET [23:16]
  4.   
  • 0x00001a2是注册号。
  • 第一个rdmsr命令读取字段温度控制偏移
  • 第二个rdmsr命令读取字段 TCC激活温度