
VIA C3のthermal diode
初出 2002.01.02
去年(2001年)の10月、ながおさんという方からメールを頂き、VIAのC3 CPU(Samuel2コア)にはthermal diodeが搭載されているようだというお知らせを頂きました。
それ以前に、VIAのCyrixIII CPU(Samuel1コア)については、CyrixIIIのdata sheetにthermal diodeの記述があるにもかかわらず、thermal diodeが搭載されていないことを確認しています。(CyrixIIIはCeleron互換?を参照)
そもそも、VIAという会社はdata sheetと現実とが時々(しばしば)合致していないことがあることで有名な会社だそうです。data sheetの記述が正確でないなどとは、まともな会社ではとても信じられないことですが、この会社ではよくあることのようです。
CyrixIIIのdata sheetを信じ、2個もCyrixIIIを購入してだまされた私としては二度とVIAの製品など購入するつもりはなかったのです。
しかし、C3にthermal diodeが搭載されているのであれば、一応その特性を測定しておくことがこのようなサイトを開いている者の義務である(毎回何を大げさな)というものです。
そこで、とりあえず「VIAには二度と関わらない」という決心を脇に置いておいて、C3のthermal diodeの特性測定を実行することにしました。まぁかなり安いCPUですからそんなに懐も痛みませんしね。
ところが残念なことに、私の地元ではC3などというマイナーなCPUを置いているパーツ屋はありませんでした。やむをえず、またしても友人のいとうさんに秋葉原買い出し係お願いしてしまいました。
![]()
これが買ってきていただいたCPUです。VIA C3 CPU 700MHz(100MHz×7)リテールです。
裏面の刻印にはVIA C3 700MHz(100×7.0) 1.6V AG20AQ0 0123 TAIWAN 820761とあります。たぶん0123というのが製造週でしょうか。
リテール品ですので、当然ヒートシンクも付属していましたが、その可愛いこと。ノースチップのヒートシンクとしてちょうど良さそうな可愛らしいヒートシンクでした。C3の発熱はCeleronなどと比べて非常に少ないので小さなヒートシンクでも十分なのでしょう。
測定方法はthermal diodeの個体差 その3と全く同じです。断熱容器としてクーラボックスを用意し、発熱体として電球を入れて、温度を上げていくことで特性を測定しました。
測定結果です。3回の測定をしてその平均を取り、少数以下を四捨五入しています。
比較のためにCeleron566のデータを青字で記載してあります。このCeleron566は前回Palominoとの比較でも使用しましたが、CoppermineコアCPUのthermal diodeの平均に近い特性を持ったCPUです。
Palomino(Athlon MP)の時もそうだったのですが、C3のthermal diodeの特性もPentium系のthermal diodeのものとかなり違っているようです。同一温度、同一動作電流で比較してみると、C3の動作電圧は50mV程度大きくなっています。Palominoは30mV程度でしたから、それ以上の差という事になります。
動作電流 CPU 20℃ 30℃ 40℃ 50℃ 60℃ 70℃ 10μA C3 678 657 638 617 596 576 Cele566 631 610 590 570 548 529 25μA C3 702 683 663 644 623 605 Cele566 654 634 615 596 575 556 50μA C3 719 701 682 664 645 626 Cele566 672 652 634 615 595 577 100μA C3 737 719 702 683 666 648 Cele566 690 671 653 635 616 598 200μA C3 756 739 722 704 687 670 Cele566 708 690 672 655 636 619
とりあえず、C3のデータをグラフにしてみたものがこれです。
![]()
グラフは、下から動作電流が10μA、25μA、50μA、100μA、200μAのものです。
こうしてみると温度特性は直線ですから、INTEL系との特性差を気にしなければC3でもダイ温度測定は可能です。
ただ、W83782Dなどのモニタチップは、INTEL系CPUのthermal didoeで温度を測定するように作られていますから、そのままで、C3の温度測定をしようとすると実際の温度よりも低い温度が表示されてしまうでしょう。
C3はCeleron互換を売り物にしているCPUですから、Celeron用のマザーで動かすことが前提になっています。(もちろん完全互換ではないため動作しないマザーもありますが。)Celeron用の最近のマザーはほとんどがW83782Dか同系列のモニタチップによってCPUのthermal diode温度を測定するようになっています。
これらのマザーではC3でも一見CPU温度が表示されますが、その温度は正確ではないということになります。実際よりもかなり低い温度が表示されるでしょう。たぶん室温よりも低い温度表示になるのではないかと想像します。どの程度低い温度が表示されるのかは少し面倒な検討が必要ですので、別の機会にしたいと思います。
50mV程度の差があるのだから、約2mV/℃として25℃の差ではないかと思われるかもしれませんが、これは動作電流が同じである場合です。とりあえず、Pentium系との比較のために上のグラフにCeleron566のデータを加えたのが下のグラフです。
実際のW83782Dの回路では、30kΩとダイオードを直列にしたものに3.6Vがかかるようになっています。ダイオードの特性が違うと、この時のダイオードの(見かけの)抵抗値も違うことになり、特性の違うダイオードでは動作電流が違うことになるのです。
したがって、どの程度の測定誤差が生じるかは、ダイオードの特性式(電圧−電流、温度−電圧)を求めて少し複雑な計算を実行する必要があります。結構面倒ですので、別の機会にさせていただきます。
![]()
青いグラフがCeleron566のものです。
重ねると見難くなるので、100μAのグラフだけを抜き出したものがこれです。ついでにPalomino(Athlon MP)のデータも書き入れてみました。
![]()
緑のグラフがPalominoのものです。Celeronとの差はPalominoよりもさらに大きくなっているのが判ります。
最後に、MAX1617での測定について考えておきます。
過去に何度も言いましたが、MAX1617での温度測定式は次の式です。
T = (Vd2-Vd1)*q / nk*ln(I2/I1)ここで、I1が10μA、I2が100μAの時にはI2/I1は10になります。
また、qは1.602×10-19、kは1.38×10-23です。nについては、C3のdata sheetには何も書いてありませんので1.000として、上の式を計算するとこんなふうになります。
T = 5.04×(Vd2-Vd1)この時の電圧の単位はmVです。温度Tは絶対温度です。
さてこの式と上の測定データを使って温度を求めてみましょう。
あらぁ?どうしたんでしょう、この結果は。MAX1617方式であればほぼ正確な温度がでると思っていたのに。
実際の温度 (℃) 10μA時の電圧 (mV) 100μA時の電圧 (mV) 計算による温度 (℃) 20 678 737 24.4 30 657 719 39.5 40 638 702 49.6 50 617 683 59.6 60 596 666 79.8 70 576 648 89.9
20℃の時を除けばほとんどぴったり10℃の差が出ているではないですか。どうしてこんな事になるのでしょう。測定が間違っているのか?それとも理論が間違っているのか?
しまった。C3の特性なんか測るんじゃなかった。
これは困った。どうしよう・・・。測定が間違っていたとは思いたくない(3回も測定して平均していますし、その3回の測定値も±1mV以内でしたので)のですが、測定値に2mVの誤差があるとほぼ10℃の差が出ます。もう少し正確に測定する必要があるのかもしれませんが、これ以上の精度の測定は私の持っている測定器では不可能です。