GIGABYTE GA-K8VT800Proの改造

初出 2005.2.7

久しぶりのうれしい改造ネタです。最近では改造が可能なマザーを見つけること自体が至難の業です。なぜなら、Pentium4マザーはほとんど全てが標準でthermal diode温度測定に対応しているからです。対応しているマザーを改造する必要などありません。

改造するためには、thermal diode温度測定に対応したモニタチップを搭載しながら、その機能を使用していないマザーを探さなくてはなりません。Pentium4マザーを探してもたぶん無駄なので、Athlonマザーを探すことになります。

今回紹介するのは、GIGABYTEのSocket754 Athlon64マザーGA-K8VT800Proです。
このマザーは、そろそろ値段もこなれてきたAthlon64を導入するために、去年(2004年)の夏に購入したものです。もちろん、購入した時点では改造が可能なマザーだなどということは知りませんでした。

購入してすぐ、いつものようにバラックで組み上げてMBMを走らせてみました。下の左側の画像です。
センサー1とセンサー2はそれらしい温度が表示されていますが、センサー3は0表示です。
GA-K8VT800でのMBM画像1 GA-K8VT800でのEasyTune4の画像
GIGABYTEのマザーにはモニタソフトとしても使用できるEasyTune4というソフトが標準でついてきますので、走らせてみました。上の右側の画像です。

温度はCPU温度しか表示されません。この温度はどうやらMBMのセンサー2に対応しているようです。センサー1をどうして表示しないのか・・・?その理由はマザーの温度測定回路を調べてすぐにわかりました。

GA-K8VT800Proの温度測定用チップはスーパーI/OチップのIT8705Fです。

GA-K8VT800のIT8705F GA-K8VT800のIT8705F周辺の抵抗、コンデンサ
GA-K8VT800のCPUソケット中心にあるサーミスタRS2
GA-K8VT800の温度測定回路
驚くべきことに、センサー1(89番端子)にはR222という固定抵抗が接続されていました。サーミスタではありませんから、温度がどんなに変化をしてもモニタソフトの表示は一定のままでしょう。EasyTune4がセンサー1を表示しないのも頷けます。表示してもまったく無意味だからです。

R222の隣にあるRS1という空きパターンはサーミスタ用だと考えられます。R222を取り外してRS1にサーミスタを接続してやれば温度測定に使えるでしょう。

センサー2(88番端子)はCPUソケットの中心にあるRS2というサーミスタに接続されていました。EasyTune4ではこの温度をCPU温度として表示しています。

そして、最後のセンサー3(87番端子)が、なんとthermal diode(CPUのA26端子)に接続されていたのです。ただし、thermal didoeに電流を供給するための抵抗R217が空きパターンになっています。
この空きパターンに抵抗を取り付けてやればthermal diodeによる温度測定が可能になるはずです。その昔、懐かしいABIT BX6 Rev2.0でやったことと同じ改造です。

もちろん早速30kΩの抵抗を取り付けてみました。半田ごてをあたためて、チップ抵抗をパーツ箱から取り出して、老眼鏡をかけて(笑)。

R217の空きパターンに取り付けた30kオームの抵抗 30kオームを取り付けた後のMBM画像

最近老眼鏡をかけてさえ細かいところがよく見えなくなっているので、あまりきれいに取り付けができていません。でも、これで大丈夫でした。
右側が取り付け後のMBMの画像です。

困ったことに、センサー3のthermal diode温度が−22度というとんでもない表示になっています。
この状態でCPUに負荷をかけると温度表示は上昇していきますので、測定回路に問題があるわけではなく、表示に誤差があるだけなのですが、それでも−22度ではねぇ。本当だったらうれしい温度ですけど。

前回のClawHammer/NewcastleとPrescottとNehemiahで、Athlon64のthermal diodeの特性を測定したときに、このままでは60〜70度くらいの誤差が出るでしょう(実際よりも低く表示される。)と書きましたが、まさしく70度くらいの誤差が出ているようです。

MBMは誤差を修正するための補正ができるようになっていますが、それも50度までで、70度などという補正は無理です。

MBMでの温度補正

思案の末に思いついたのが、R217に取り付ける抵抗値を大きくすることです。抵抗値を大きくしてやれば、thermal diodeに流れる電流が小さくなり、その結果MBMの温度表示が高くなるはずです。
thermal diodeの温度特性をご覧ください。動作電流を小さくするとdiodeの両端電圧は下がります。両端電圧が下がるということは温度表示は上がることになります。電流を変化させたときの温度−電圧特性は(だいたい)平行ですし、ClawHammer/NewcastleとPrescottとNehemiahのグラフでもAthlon64の温度−電圧特性とIT8705Fが標準にしているDeschutesコアの温度−電圧特性は(だいたい)平行になっていますから、この方法でたぶんうまくいくと考えました。

問題はR217に取り付ける抵抗値をいくらにするかです。R217に半固定抵抗を取り付けて試行錯誤を繰り返した結果、最終的に500kΩにしました。

この画像は、500kΩを取り付けたときのMBMの画像です。
500kオームを取り付けた後のMBM画像
まだ誤差が出ているようです。センサー3(thermal diode)の温度表示がセンサー2(CPUソケット内のサーミスタ)の温度よりも低くなっています。抵抗をもっと大きくしたほうがいいのですが、そうすると別の問題が出てくるのです。

IT8705Fの90番端子(VREF)には基準電圧として4.096V(この値を「切りのいい値」と思う人は何かにかなり毒されています。)が出力されているとIT8705Fのdata sheetに書かれています。私の実測では4.10Vでした。
500kΩの抵抗とdiodeを直列にして4.096Vの電圧をかけていますから、diodeに流れる電流Iは次の式で求められます。
I=(4.096−diodeの両端電圧)÷500kΩ
diodeの両端電圧は、温度によって変化しますがだいたい0.7Vくらいです。したがって電流Iは6〜7μAということになります。たしか、Athlon64のdata sheetのどこかにthermal diodeの動作電流として最低5μA、最大500μAと書いてあった記憶がありましたので、これ以上抵抗を大きくして電流を小さくすることには抵抗があります。

それに、誤差はどうやら20度程度にまで収まっているようですから、MBMの温度補正でうまくいく可能性があります。問題は、誤差がどの程度になっているのかというこことです。

そこで、A7V333の測定誤差と同じやり方で秋月温度計を取り付けてMBMの表示との差を見てみました。

秋月温度計の表示  34.8  37.3  39.9  41.8  43.0  44.7  46.7  48.4  51.7  56.0
MBMの表示  17  19  22  23  24  26  27  29  32  36
両方の差  17.8  18.3  17.9  18.8  19.0  18.7  19.7  19.4  19.7  20.0


CPUの周波数と動作電圧を少しずつ変えて、発熱ソフトを走らせた時の温度を読んでいったわけです。今回、発熱ソフトにはSuper Piを使用しました。

上の表から見ると、MBMの補正値は19度にしてやればほぼ正確な温度が測定できるようになります。
これが最終的に測定できるようになったMBMの画像(左)と、取り付けた半固定抵抗の写真(右)です。半固定抵抗は、両面接着テープでIT8705Fに張り付けてあります。
最終のMBM画像 R217の空きパターンに取り付けた半固定抵抗
というわけで、今回の改造は大成功となりました。めでたし、めでたし。
MBMと秋月温度計の比較をしていて面白い現象に出会いました。MBMを動作させる前は正常だった秋月温度計の表示が、MBMを動作させたとたんに乱れて一定しなくなってしまったのです。
原因を調べた結果、IT8705FのVREF(90番端子電圧)が短い周期で4.10Vと2.03Vに切り替わっていることを確認しました。VREFというのは基準電圧であって電圧が変化してはいけないはずでなのですが。

以前に鉄人に続けのいとうさんから、やはりGIGABYTEのPentium4マザーで同じ現象になったことを聞いていましたが、自分の目で改めてその現象を確認し、「へぇ〜」という思いです。

なぜこのような現象が起こるのかは不明です。MBMのセンサー3をサーミスタモードにするとこの現象は起きなくなりますので、thermal diodeモードの測定に原因がありそうです。試しにMBPlobeとLM78Monも試してみましたが、やはりセンサー3をthermal diodeモードにすると同じ現象が起こります。

前のページへ