PCの温度測定の仕組み

PCの温度測定の仕組みの解説です。

    2000.01.21  Takapen Signed  


「センサーをCPUに付けていないのに、どうやって温度を計っているの?」
「マザーを変えたら、表示ソフトがすごい高温をしめすようになった。」
「CPUの温度が安定しない。20度も上がったり下がったり?」

などの質問が良く出されます。
ここでは、一般的な考え方と仕組みを解説します。
メーカーや表示ソフトにより、設定方法などが違いますので、基本を踏まえて応用してください。


<サーミスタ方式と、サーマル・ダイオード方式>

CPU・システム温度のモニタリングには、実は2つの方法があります。
サーミスタ方式 と、サーマル・ダイオード方式です。
現在主流の状態監視チップ「
LM78」やその互換チップ「W83782D」では、
その2つの方式を、同一のチップで選択して実現できるため、
質問のような混乱が生じていると思われます。

サーミスタ方式は、マザーの監視チップにつながるパターンから線を引き出し、
測りたい所にセンサーを貼り付ける(接触させる)方法です。
サーマル・ダイオード方式は、チップに埋め込まれたダイオードの信号線を、
監視チップに導いて温度に換算しますので、特にセンサーなどは見受けられません。


<2つの方法の切り替えと混乱>

2つの方法の切り替えが、ASUSで言えば、P2B-FとP3B-Fの間で行われました。
昔はサーミスタ・センサーで、今はサーマル・ダイオードで測定するのが一般的です。
他のボードメーカーもほぼ同時期で、
99年の中ごろまでに、この切り替えされた様です。

CPUでいえばPentiumII、Celeron(Mendocino)から、
CPUのダイにサーマル・ダイオードが埋め込まれました。

PPGA、FC−PGA用の下駄では、
初期のものは、CPUチップ内のサーマル・ダイオードからの信号線が、
下駄の配線上で結線されていませんでした。
ASUSの下駄などは、下駄の端子が省略されていました。
初期より結線されていたのは、MSIの
MS-6905 くらいしかなかったでしょうか。
CPUやマザーが対応しても、線がつながっていないのですから、測れるわけはありません。

また、
表示ソフト側の対応も必要でした。
サーミスタ方式と、サーマル・ダイオード方式では、抵抗値も、温度への換算テーブルも違います。
サーマル・ダイオード方式で測った値を、サーミスタ方式を前提としたソフトで表示させるので、
「温度が、異常に高い!255℃になる!」など、混乱が生まれました。
変に表示されるのは、当たり前ですね。
最近のソフトでは、「
Temperrature Sensor -> On-Die Thermal Diode」のチェックボックスがあるなど、
両対応になってきています。
それとて、ちゃんと知らずに設定してやらなければ、依然として「変だ!」と騒ぐことになります。

99年から、CPUに実装された機能を利用した、新しい温度計測方法へ変化したのです。
ふたつの測定方法の違いがあるのに、変だ変だと、いまだにBBSをにぎあわせています。

温度を正しく計測表示するには、
CPUの対応、下駄の対応、マザーの対応、ソフトの対応と設定の4条件が、
同一測定方法を前提に揃う必要がある
のです。


<温度測定のながれ>

昔のは、サーミスタで測定した結果(電気信号)を、監視チップを経由して、
SMB(System Management Bus)レジスタのI/Oポートを叩いて、情報を得て、
Windows上で表示ソフトが補正して、表示していました。
(2本線の先や、マザーからにょきっと出てシンクに当たるようになっていたね。)

今の主流は、チップに組み込まれたサーマル・ダイオード、
(オン・ダイの、CPUであれば、コアにこのダイオードが組み込まれています。)
を使って測定しています。
Intel系であれば、
CPUの15ピンと16ピンから、この温度情報が取り出し、
監視チップを経由して、SMB(System Management Bus)レジスタのI/Oポートを叩いて、
Windows上で表示ソフトが補正して、表示しています。

マザーがこのオン・ダイ・サーマル・ダイオードの測定信号に、対応していないと、
誤ってとんでもない結果を表示します。
さらに、PPGAやFCPGAのCPUの場合、下駄を使うことになりますが、
初期の下駄は、この15ピンと16ピンからの信号線が、結線されていなかった。
もっとすごいのは、AopenやASUSの初期下駄では、下駄の端子そのものが、省略されてた。
(対応マザーがまだ発売されておらずないのですから、当然といえば当然です)
こうした下駄では、CPUとマザーが対応していても、
下駄で線が切れているわけですから、正確に温度測定ができません。
MSIの下駄は、MS-6905Dから全てのピンと端子が結線されていましたので、
ばっちりでした。このことは、実はMS-6905Dの私の記事で、
ずべての端子が結線されているので選んだと、さらりと書いています。
説明するのが、あまりにも面倒なので、解説を書かなかったのです。)

ところで、対応していないと、どういう温度を表示するかというと、
255℃になるようです。
また、温度/ファン回転数のモニターを使う場合も、
サーマル・ダイオードに対応したソフトで、ちゃんと指定してやらないと、
正しく補正して表示してくれません。
99年中ごろからの変更ですから、意外とちゃんと表示できないソフトがあります。
この場合、どういう温度を表示するかというと、
いろいろのようですが、
85℃や125℃なんていうのが多いようです。

以上のように、CPU、マザー、下駄、ソフトの対応状況がバラバラの状態で、
ちょうど移行期にありましたので、「温度」問題は混乱を極めています。
興味があれば、
CPUの内部温度を測定しよう」という、以下のURLが、詳しく解説されています。
http://www.geocities.co.jp/SiliconValley-SanJose/5084/index.html
ぜひ、ご参照ください。



<どこを測っているか?>

最新のマザーは、どこを測っているか?ということです。
私のP2B-Fは、実はこのオン・ダイ・サーマル・ダイオードに対応していません。
そこで、対応しているBX6SEで測ってみました。

温度1は、環境処理チップの「W83782D」の、オンダイ・ダイオード
   「W83782D」は、大概、PCIバスの奥横についている小さなチップ
   電源投入後、じわじわ上がり、5分くらいで5度程度上昇します。
   通電/稼動しているチップの温度上昇ですね。
温度2は、CPU内蔵の、オンダイ・ダイオード
   CPUの負荷の高いベンチマークを動かすと、跳ね上がります。
温度3は、・・・これがなかなかわかりませんでした。一般にも、
   「どこを測っているの?」とよく話題になるやつです。
   英文マニュアルのボード配置図の隅っこに、見つけました!それらしき記号!!
   CMOSクリアジャンパー(
JP2)付近にダイオードがセットされています。
   ここに、鏝先を近づけたり、ドライヤーを当てると、
   温度3が一挙に上昇します。

たぶん、他のマザーも同じ様な処理だと思います。


<温度表示のくせ・感度・バラツキ>

ダイオード測定型か、サーミスタ測定型かによって、
温度については、表示のくせがあります。
(というか測定点がチップ内か、外部から間接的に測っているか。)

測定の仕方や、マザーによる抵抗値の違い、表示ソフトの補正方法が違うのに、
温度を比べて高い・低い、と議論しても、あまり実りはないように思います。
参考値として、実際の自分のマシンでくせと傾向を把握するのが一番です。

サーミスタ方式は、外部から間接的に、熱源から離れたところを、
測っているわけですから、温度変化には鈍感で、なだらかな曲線になります。


サーマル・ダイオード方式は、チップ内の熱源のすぐ横を測定しています。
よって負荷状況によって、温度変化は敏感に出ます。

温度は高めに表示されることが多いようです。
あまりにも敏感ですから、ソフト側で補正したり、
変化をなだらかにすることも、されているようです。
そのまま表示すると、負荷の切り替わりで、瞬間的に20〜30度くらいは上下します。
(BX6SEでは、無負荷15℃−>最大負荷40℃に、瞬間にハネ、逆に戻ります。)
これを、「安定しない」と誤解されている人も多いから、不思議なものです。

まずは、自分のマザーや下駄やソフトを良く知って、
(マザーのマニュアルやソフトのReadme.txtに詳しい解説があることも多いです。)
CPUの対応、下駄の対応、マザーの対応、ソフトの対応と設定の、4条件を揃えて、
温度監視結果を、安定動作やO/Cの強い味方にしましょう!