title.jpg (18540 バイト)


 

CPUの温度測定あれこれ

LastModified 02/10/14

 

さて、今回は温度計測の話です。今迄さんざんCPU温度をネタにしながら、温度計測の方法については全然書いていませんでした。いやあ、申し訳ないっす。とりあえず、私が行っている温度計測の方法について記述します。最近のOverclockブームのなかではとかく温度及び冷却が話題になりますが、

一体どこの温度の事を話してんねん!

と思う事がままあります。また、最近のCPUは発熱が少なくなりヒートシンクなどは体温以下の場合もままあるので体感での話しなどは全くあてになりません。まあ本来、厳密な温度計測は零点補正機能がある熱電対でも使用しないと測定できない訳ですが、素人ができる範囲でなるべくデータの精度をあげるべく試行錯誤した結果の思い込みとでも思って頂ければ幸いです。

「で、きみ自身はどうしているのだ?」
「私?自分自身が常に正義の側に立っていると思い込むんですよ。」
(ギャビン・ライアル著 「深夜プラス1」より)

 


1 サーミスタによる温度計測

sermista.jpg (9047 バイト)

pin_head.jpg (8776 バイト)

さて、温度計測です。一番お手軽なのはサーミスタによる実測でしょう。私がよく使うのは左の写真の様な先端がフィルム状の10kΩタイプです。これはASUSのP2用オプションとして市販されているタイプでDOSパラでは\300と非常に安く販売されています。(shopにより価格差が激しく\1000以上で販売している所もあります)

これを市販の5inchベイ内蔵タイプのセンサーユニットに接続します。最近は、パーツショップでも多チャンネルのものがよく販売されているのですが、視野角が狭く非常に見にくいので好みではありません。

5bay_sensor.jpg (11461 バイト)

写真のものは2年程前に今は亡きA-masterで購入したものです。2chしかないのですが、非常に見やすくフェイスも気に入っています。このタイプはもうどこにも売っていませんね。故障時に備えて予備が欲しい所ですがセンサユニット側は、サーミスタの付け替えが容易にできる用に、ピンにしてあります。

でまあ、CPUの温度を測るに当たってはCPUにサーミスタを貼りつける訳ですが、一体どこに貼ればいいんだという問題があります。

P3-OLGA.jpg (14960 バイト)

上の写真は Pentium-3 です。赤丸のコア脇、青丸のコア横というのは便宜的に私が呼んでいる呼び方です。当初は、コア脇に貼っていましたが、OLGAコアに対応する為にグラファイトアダプタをつけてコアの周りを埋めてしまうと、設置ができなくなるのでコア横に貼る事にしました。(写真でも貼っていますね) しかし当然ながら、この設置場所の移動で計測温度はかなり変化します。そもそも温度を計測するのはCPUの動作温度域を把握する為ですが、これで本当に情報としてあてになるのかはいつも疑問に思っていました。


2 W83782DによるCPU内部温度計測

W83782D.jpg (49976 バイト) さてそんな折り、事の起こりは4月の波止場・・・じゃなくて[廃人の庵]の掲示板[廃人茶房]におけるヒロ坊さんの書き込みでした。MBM4のHP曰く、Abit BX6rev2 に実装されているモニターチップ Winbond W83782DにはCPU内部温度直読機能があり、[R266 パターンに 30kΩ抵抗、C241 パターンに 3300 pF のコンデンサを接続すれば、MotherBoard Monitor V4 でCPU内のサーマルダイオードの読み出しができる]との事。すわ!とばかりに改造すべしと自分の BX6rev2 を見て見ると・・・・なんと最初から実装されている! (その後情報を集めた所、BX6rev2の初期のrevisionに限り実装されている様です。Abit が何故その後止めてしまったかは謎ですが・・・)

実際にMBM4をインストールしてみると300A@450MHz Vcore=2.1V 気温 : 21℃の条件下で halt 命令が効くNTを起動してみた所、負荷をかけると、コア脇実測 26→29℃、 コア内部 26→38℃と見事に読み出せます。特にPhotoshop等のアプリ起動時には、あっという間に35℃位まで跳ね上がり、起動終了後にはまたあっという間に26℃位まで戻ります。いやぁ、面白い!また、NT無負荷時はコア脇もコア内部もほとんど同温度という結果が得られました。

まあ、その後の事は説明するまでもないでしょう。コアの内部温度計測結果は本サイトの各Contentsに嫌という程記載しています。結果として、如何にコア脇(あるいはコア横)の実測結果が,CPUの動作指標としてあてにならないかという事を痛感しています。

モニターチップによるコア内部温度測定については、linkページにあるおのさんの[CPUの内部温度を測定しよう]に非常に詳細に紹介されていますので、是非そちらもご覧下さい。


3 ハードウェアによるCPU内部温度計測

上記の様に、W83782D等のモニターチップによりCPU内部温度計測は可能となります。しかし、最近はCPU内部温度計測をサポートするマザーが増えてきたにしても、やはりマザー選択の幅が狭まる事等から、ハード的にCPU内部温度を読み出せないかと思う様になりました。特に、Aopen TypeR系への乗り換えを検討するに当たっては何か手だてを考えなければなりません。

今更、内部温度が読み出せない環境に移行するなど考えられませんし・・・

そんな折り、2つの資料が入手できました。ひとつはトランジスタ技術1999年 7月号に記載されていた[Celeron温度モニタ・アダプタの製作]記事で、もうひとつは OverClock'Dream に記載されていたエンジニアの坂巻さん作の温度計測回路です。

これらの資料は非常に参考になりました。しかし、トラ技の記事はサーマルダイオード信号をOPアンプで増幅した後、周波数に変換してSMバスに入れてFANの回転数としてソフトで読み出すという非常にややこしい事をしています。また坂巻さんの回路はCPU温度信号を増幅して、1℃の温度を0.01V(22℃で0.22V出力)として出力している為、常に電圧計を接続しなければなりません。

なんかもう少しお手軽な方法ないかいなと考えていた所に、秋月電子ICL7136CPL使用デジタル温度計キットを見つけました。A/Dコンバータと液晶表示を持つ温度計なので何とか利用できるんじゃないかと考えた訳です。CPUに通電しない状態でも温度が測れる様にと9V電池で駆動できるタイプを購入(\2000)してみました。

購入してマニュアルを見るとビンゴ!です。標準の温度センサは SEIKOのCMOS温度センサ S-8100Bを利用する様になっているのですが、汎用サーマルダイオード用とする為の回路変更の説明(抵抗を3個所変更するだけ)も記載されておりその為の部品も同梱されていました。

kit.jpg (25353 バイト)

キットの部品です。可変抵抗x2、コンデンサx6、抵抗x5 程度の部品しかありませんので、あっという間に組み立て可能です。組立にあたっては1個所だけ変更を行いました。キットでは、サーマルダイオードと電池を接続する抵抗が100Ωとなっています。この抵抗によりサーマルダイオードに供給する電流を決定しています。

Intel の仕様ではサーマルダイオードの室温における電圧降下は630mVになっていますが、その際の電流値は記載されていません。トラ技の記事では35μA, 坂巻さんの回路では 50μAとなっています。まあこの間であれば問題なかろうと考えました。(9-0.63)V/35〜50μA=167 〜 240 kΩなので168kΩの抵抗を使用しています。

また、この抵抗は、サーマルダイオードに電流を供給する為の物なので、W83782D等が最初から実装されサーマルダイオードに電流が供給されているマザー(BX6rev2の様に)では不要です。というか、そのタイプのマザーでは2重に電流を供給してしまう事になるので、出力が訳がわからなくなる、あるいは最悪サーマルダイオードが破損する可能性もあります。

 

1999.11.16追記

kairozu_1.jpg (73203 バイト) kairozu_2.jpg (105371 バイト)

C-MOSセンサ S-8100B による回路

サーマルダイオード回路

上記回路図は秋月電子さんの御許可を頂きマニュアルより抜粋させて頂きました。
秋月電子さんにはこの場を借りて御礼申し上げます。

 

では実際のCPUとの接続ですが、370PPGAの場合は、AL31ピンがアノード、AL29ピンがカソードに、SLOT1の場合はB14ピンがアノード、B15ピンがカソードとなります。ま、ちょっとピンボケで恐縮ですが、下の写真の様な感じです。どちらも素のソケットを買ってきてピンから直接結線しています。ちなみに、接続にはノイズ防止の為に、2芯のシールド線を使っています。

ppga-b14.jpg (22774 バイト) slot1-b14.jpg (17704 バイト)

2000.05.02追記1

CPUに接続した線をケース外部に引き出すに当たってはマザー交換に備えてコネクタ接続したいのが人情です。しかし、電気系に詳しい先輩より「こーゆー微弱な電圧を測る場合は、コネクタ部の酸化皮膜の影響が大きいよ」と言われて、不便ながらケース外に引き出した線と温度計をハンダづけしています。実際にどれだけ影響があるかわかりませんが、誤差要因はなるべく減らすに限りますからね。

 

さて、これで回路はできあがりました。しかし、厄介なのは温度較正です。確実に温度が把握できる環境を作ってやり、そこでゼロ点較正と増幅率を合わせてやらねばなりません。恒温槽が利用できればベストでしょうが素人がおいそれと利用できる様なものではありません。頭を絞った結果が下の写真です。

zero_adjust.jpg (22147 バイト) room_adjust.jpg (21708 バイト)

氷水により零度較正

室温による較正

頭捻ってこれかい!

結局、氷水と室温の2点で合わせてやる事にしました。本当なら沸騰したお湯を使えばリニアリティも出せるのでしょうが、流石にねぇ?

0〜25℃での較正になるので出力の直線性に問題はありそうですが、まあ経験上CPU温度も大体40℃位までの計測で事足りるので目を瞑っておく事にしました。(本当はアルコールor水銀温度計を使わなければならないのでしょうが^^;

石斬りしたPPGA300Aをビニールにくるんで氷水に浸けてゼロ点を、室温で増幅率をという風に何回か較正を繰り返し微調整を行います。いやあ。これがなかなかしんどいです。コツとしては、CPUをビニールでくるんで氷水に浸ける際になるべく空気を抜いておく事と焦らない事でしょうか? 気をつけてはいたのですが、何時の間にかビニールに水が染みてCPUが水浸しという事が何回もありました。ま、相変わらず酷い扱いでわわね。

較正が終わった所で、Abit BX6rev2 に接続(前述の168kΩの抵抗は外して)した所、W83782Dによる計測結果に対して2℃程高く出力されました。W83782Dがどの様な調整になっているかわかりませんが、そもそもCPUのサーマルダイオード毎に特性が違う事もあるので、[較正している分こちらの方が正しいだろう]と考えました。負荷やVcoreによる発熱への追従も良好です。

どうやら成功したみたいです

1999.11.16追記
と書きましたが、改めて考えてみるとW83782Dからサーマルダイオードにどれだけの電流値が供給されているか把握していないので、比較してもあまり意味が無いですね^^; まあ、これまでの計測結果と大体同じレベルの出力ですので、較正している分間違いはないと思いますが。

最後に Aopen AX6BC TypeR Vspec2 への接続です。B14,B15ピン信号は下左の写真の様にマザーの裏側から取り出します。下右の写真の様に通電しない状態で室温が読み出せています。(計測回路はアルミボックスに入れて、電源スイッチをつけています)

AX6BC-b14.jpg (29036 バイト) AX6BC-set.jpg (25947 バイト)

通電した状態でも見事に温度の読み出しが可能です。この結果が、[FSB133Overへの道]に記載したデータです。


2000.01.05追記

さて、偉そうに自慢しておきながら何ですが、[Polarlogic ArctiCooler]でコア内部温度を計測した所、やたら高い温度が出てきました。どうにも納得いかないので再度較正を行う事にしました。

前回の較正の問題点は、以下の通りです。
1. [氷水-室温]で較正したので狭い温度域(0〜25℃)でしか較正できておらず、リニアリティの保証に疑問がある。
2. 氷水を使った際にビニールが水漏れし、端子に水が付着して、出力が変動した可能性がある。
3. CPUを水につけているのが不安で、注意したつもりでも、温度が下がりきる前に調整を行った可能性がある。

よって、今回は水を使わずに較正を行う方法を考えてみました。

cal_300A.jpg (16916 バイト)

前回の較正で氷水を使ったのは温度0℃の状態を作り出せるからです。しかし冷静に考えてみれば、一定の温度状態を作り出せる環境は身の回りに結構あります。

そこで、[石斬り]した300AのCPUコアにサーミスタを貼り付けて、その温度とCPU内部サーマルダイオードの出力を合わせてやる事にしました。

これなら、PentiumV系でも容易に較正可能でしょう。

以下が較正に利用した温度が一定になる環境です。結構色々あるものですね。事前に、アルコール温度計で大体の温度域を把握しておくと良いでしょう。

cal_freezer.jpg (11437 バイト)

cal_dryer.jpg (17845 バイト)

冷凍庫 -15℃
パーシャル冷蔵庫 -1℃
室外 7.5℃
室内 15.3℃
電気毛布 27.4℃

冷蔵庫

食器乾燥機

食器乾燥機 58.5℃

一回の較正では最低1時間は放置して温度が安定する様にします。正月3が日をかけて、合計15回程の較正を行いました。結果として、-15〜60℃までの領域で良好なリニアリティの確保を確認できました。(当然ながら、家族には凄まじく不評を買いましたが^^;)

この結果を持って、[Polarlogic ArctiCooler]の測定をやり直しました。P3125の結果を見ると、[真・巨大クーラ比較]の際とほとんど同じ結果を得られています。どうやらうまくいった様です。ヤレヤレ・・・

2000.4.1追記

上記秋月温度計よるCPUコア温度測定については、おのさんのお弟子さんのいとうさんが検証されています。抵抗を変更する事による電流値を小さくして誤差を小さくする検討や、可変抵抗の変更による較正を楽にする改造、電池から12VACアダプタへの変更による電圧降下対策等、非常に詳細な検討をされています。是非、併せてご覧下さい。

2000.5.2追記

この秋月温度計によるCPU内部温度計測についてはs5さんが成功され、記事にしておられます。特に、マニュアルのパーツリストの誤記については私が書き忘れていた事ですね。さーて次は一体誰だ!?(爆)

2000.5.9追記

とか書いていたら次は、おのさんでした。やっぱり(笑) しかし、おのさんいとうさんの師弟コンビでサーマルダイオード直読みについては、最早語られ尽くした感すらありますね。お二人とも素晴らしい内容です。あと半年早くやってくれてたら、色々悩まなくても済んだのになあ(爆)


4 独り言

さて、如何だったでしょうか? たかが温度計測、されど温度計測。やればやったで、これはこれで奥が深いものです。最近では、標準でコア内部温度が読めるマザーが増えている中、馬鹿な事やってるなあという感じは否めませんが、やはり試行錯誤と工夫の果ての成功は、何物にも代え難い達成感があります。

Clockを上げる事も面白いですが、こういうのもOverClockの楽しみだと思いませんか?

 

「たとえ刹那でも・・・。刹那でも人には必要なのだ。幸福が。」
(水樹 和佳著 「イティハーサ」14巻あとがきより」

Contents

HOME