【问题标题】:Reading TEMPERATURE_TARGET directly from CPU [closed]直接从 CPU 读取 TEMPERATURE_TARGET [关闭]
【发布时间】:2016-09-20 20:47:13
【问题描述】:

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

【问题讨论】:

  • 您使用的是什么操作系统?

标签: python c++ c cpu-registers


【解决方案1】:

这取决于操作系统。

在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. TCC 激活温度:MSR (1A2h) TEMPERATURE_TARGET[23:16]
  • 0x00001a2 是注册号。
  • 第一个rdmsr 命令读取字段温度控制偏移
  • 第二个rdmsr 命令读取字段TCC Activation Temperature

【讨论】:

  • 所有极限核心指南都有(第 29 页)'Bit Attrib Default Description 31:16 RSVD-P 0000h Reserved--Protected 15:0 R0-V 0000h THERM_MARGIN--该字段提供平台固件在 2 的补码 8.8 格式中,瞬时温度余量的运行平均值高于 Tspec。注意 - DTS 2.0 Thermal Margin CSR 是 MSR (1A1h) PACKAGE_THERM_MARGIN' 的镜像,这会使命令 sudo rdmsr --bitfield 15:0 -c 0x00001a1 吗?为此我得到 CPU 0 无法读取 MSR 0x00001a1
  • @LeonLewis 你试过sudo rdmsr --bitfield 15:0 -c 0x0000000吗?
猜你喜欢
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多