Wydawałoby się, że pomiar temperatury procesora to banalna rzecz. W przypadku (obecnie) najnowszych procesorów Intela z serii Core 2 Duo E8000, okazuje się, że nie jest to wcale takie proste. O co mi chodzi? A o to, że inną temperaturę pokazuje SpeedFan, inną CoreTemp, a inne programy jeszcze inną, co więcej temperatury te zmieniają się jeszcze pomiędzy wersjami programów! A na dodatek różnice nie są małe - sięgają 10 stopni. Nikt kto lubi podkręcać nie może przejść obojętnie wobec takiej rozbieżności temperatur. Skąd się bierze taka różnica?
Najpierw musimy omówić jak przebiega pomiar temperatury za pomocą wewnętrznych czujników procesora (po jednym na każdy rdzeń). Czujnik mierzy temperaturę, a wynik jest umieszczany w odpowiednim rejestrze, który następnie jest odczytywany przez program podający temperaturę. Jednak wartość w rejestrze wcale nie jest temperaturą danego rdzenia. Ta wartość pokazuje ile stopni brakuje do stałej Tj (junction temperature). Innymi słowy wartość z rejestru możemy opisać wzorem: Tj - T, gdzie T to aktualna temperatura. I tu pojawia się problem, gdyż do niedawna nikt nie wiedział ile wynosi Tj. CoreTemp przyjmował (a może dalej to robi?) Tj = 105 st. C dla procesorów z serii E8000. W konsekwencji pomiar temperatury procesora pod obciążeniem na boksowym chłodzeniu dawał powyżej 60 stopni. Gdy to zobaczyłem to nie mogłem uwierzyć, bo wynikałoby z tego, że mój nowy E8400 grzeje się bardziej od poprzedzającego go Athlona XP 2500+ (Barton). Niektóre programy przyjmowały Tj = 100 st. C, ale prawdziwe zdziwienie wywołał twórca programu RealTemp, który przyjął Tj = 95 st. C, co więcej za jego twierdzeniem szły dość mocne argumenty. Przemyślałem sprawę na własną rękę i wyszło mi, że to całkiem realne, żeby Tj wynosiło 95 stopni, jednak parę tygodni temu na Intel Developer Forum
ujawniono Tj dla wszystkich procesorów, dla których pozostawało ono nieznane. Tak oto dowiedzieliśmy się, że Tj dla procesorów E8000 wynosi 100 st. C.
Co więc zrobić, aby na pewno mieć poprawny odczyt temperatury? Pod Windowsem chyba najlepiej skorzystać z RealTemp i w ustawieniach zmienić Tj na 100 (RealTemp nie wymaga instalacji). Pod Linuksem natomiast cały czas miałem dobre Tj w lm-sensors. Komenda
sensors wypisuje (m.in.):
Core 0: +44.0°C (high = +78.0°C, crit = +100.0°C) - temperatura crit zdaje się być odpowiednikiem Tj, poza tym temperatura (przy obciążeniu) odpowiada uzyskanej pod Windowsem, przy pomiarze programem uznającym Tj = 100 st. C.
Na koniec chciałbym zwrócić uwagę na pewien szczegół. Czujniki w procesorach Intela nie są po to, żeby użytkownik mógł sobie sczytać temperaturę procesora, a służą jedynie do załączenia mechanizmów chroniących procesor przed przegrzaniem (thermal throttling, a potem wyłączenie procesora) i tym samym nie są zbyt dokładne, zwłaszcza kiedy temperatura jest daleka od Tj. Może warto zaufać bardziej czujnikowi na płycie głównej?
Wszystkie przedstawione tutaj opinie należą do ich autorów i twórca strony nie ponosi żadnej odpowiedzialności za ich treść.
W polu "Strona WWW" wpisywanie członu "http://" nie jest konieczne. Tagi (X)HTML wpisane w treści nie będą działać jako element strony, zamiast tego pojawią się w samym komentarzu. Komentarze obraźliwe, nie na temat lub niezgodne z prawem będą w miarę możliwości usuwane.