MSR(Model Specific Register) 0x19C Bits [22:16] で温度が取得できることは確認できたが、このセンサーの値は、Tjmax への相対値であることがマニュアルに書かれている。しかし、そのTjmaxの値をMSRから取得する方法がマニュアルに書かれていない。
いろいろ探していたらば、
http://software.intel.com/en-us/forums/deleted-posts/topic/51574/page/1/
で、MSR 0xEE で取得が可能なようだが、undocumented だそうだ。ちょっと古い資料なので、85度か100度と書かれている。
http://www.xtremesystems.org/forums/showthread.php?t=179044&page=23
によると、0xEE の bit:30 で、0=100 1=85 といううわさもある。
一方、Q6600 では、95度らしいという書き込みもある。
http://www.xtremesystems.org/forums/showthread.php?t=179044&page=27
Atom の場合、20度室温で 0x19C Bits [22:16] から88前後が返されているので、100度にしても合わない。
http://download.intel.com/design/processor/datashts/320032.pdf
によると、a catastrophic processor temperature of 125°C (maximum), or if the THERMTRIP#
signal is asserted, ということで、125度とすると、ちょうど37度となり、それらしい値になる。
MSR 0xEE で取得してみると、
000000EE: 00000000 02F90002
となり、仕様が分からない。
http://www.bugtrack.almico.com/view.php?id=1150
によると、
if bit 30 of MSR(0x00EE) is 1 then
Tjmax=85
else
Tjmax=100
endif
if CPUID=0x06F2 then Tjmax=100
if CPUID=0x06FB then Tjmax=100
if CPUID=0x10676 then Tjmax=Tjmax+5
こんな情報もある。
それにしても、xtremesystems.org のスレッドがものすごいことになっているのには、驚いた。
いずれにしても、インテルが仕様をはっきり書いていない(NDAを結ばないともらえないらしい)のが悪いということがよくわかった。