Skip to content

Intel CPUで温度を計測する

This content is a draft and will not be included in production builds.

CPUが温度センサーを持っているか

Section titled “CPUが温度センサーを持っているか”

CPUID 命令を機能テーブル(リーフ) 6(power management) で呼び出すと、DTSビットにセンサーの有無が格納される。

[!info] DTSビットはDigital Thermal Sensorビットの略で、CPUID命令でEAXレジスタに格納された値の下位1ビットのこと

DTSビットが1なら MSR 命令でモデル固有のレジスタ(model-specific register)から値を取り出す。MSR 命令は EAXEDX レジスタに値をセットする。

EDX レジスタの最上位ビットがReading Validフラグを表す。このビットが0の場合は取得できていない。

EAX レジスタの17〜23bitがDTSの値で、この値はTCC activation temperatureとの差を表しているらしい。TCC activation temperatureはインテルプロセッサーの温度に関する情報によるとTjunction maxとも呼ばれている。

EAX レジスタの28〜32bitはResolution in Degrees Celsiusらしいが、摂氏の解像度と言われてもなんのことやら。