2024. április 19., péntek

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Core2 és a hibás szenzorok?

  • (f)
  • (p)
Írta: |

Túl alacsony, vagy túl magas a maghő? Minden szoftver mást mond? Tényleg rosszak a szenzorok...

[ ÚJ TESZT ]

Túl alacsony, vagy túl magas a maghő? Minden szoftver mást mond? Tényleg rosszak a szenzorok a Wolfdale processzorokban?

Ezt a fordítást eredetileg egy kérésre dobtam össze az egyik processzorokkal foglalkozó topicban, ám úgy gondoltam, hogy jobb, ha szem előtt van, így kicsit hivatalosabb stílust faragtam neki, és feltettem ide is.

Sokan, sokszor belefutnak abba a problémába, hogy a különböző monitorozó, diagnosztikai programok egymásnak ellentmondó értékeket szolgáltatnak a processzor magjainak hőmérsékleteiről. Ugyanígy sokszor kérdés, hogy milyen hőmérsékleti határokig üzemelnek a mai modern Intel processzorok, illetve mi történik, ha a hibás adatokra hagyatkozva hibás döntéseket hozunk. Erre és még sok minden másra adhat választ a sokak által használt RealTemp nevű alkalmazás felhasználói leírása, mely által lehetővé válik, hogy - megfelelő kalibráció után - pontos és összevethető adatokat nyerjünk gépeink lelkének hőmérsékleti viszonyairól.

Az alábbiakban a http://www.techpowerup.com/realtemp/docs.php oldalon található leírás lényegi elemeinek fordítását találhatják azok, akik még nem olvasták, vagy esetleg nem bírják ilyen szinten az angol nyelvet. Jelen fordítás nem tér ki a program teljes testreszabásához szükséges beállítások fordítására, csak a lényegre igyekeztem fókuszálni.

A Program

A RealTemp egy hőmérséklet monitorozó szoftver, amelyet Intel processzorokhoz (Intel single Core, Dual Core Quad Core) fejlesztettek. A processzor minden magján egy digitális hőszenzor található (Digital Thermal Sensor - DTS), amely egy különbözeti hőmérsékletet mutat, mely különbség a mag aktuális hőmérséklete és a TjMax (Thermal junction Max) között áll fenn az adott pillanatban. A TjMax a mag azon maximális hőmérséklete, melyen még biztonságosan üzemel. Ahogy melegszik a processzor, úgy csökken a DTS által adott (distance to TjMax) érték. Amikor ez az érték eléri a 0-t, a CPU védelmi funkciói bekapcsolnak, visszaveszi a szorzót és a feszültséget, hogy megvédje magát a túlhevüléstől. Ebből látszik, hogy minél távolabb célszerű tartani a CPU hőmérsékletét a TjMax-tól. (A RealTemp nem működik P4 és AMD processzorokkal.)

Amennyiben ismerjük az adott CPU TjMax értékét, és ki tudjuk olvasni a DTS-ből a distance to TjMax-ot, egyszerű képlet alapján meghatározható az aktuális maghőmérséklet: TjMax - DTS

A Probléma

Ezzel a metódussal két probléma van. Az egyik, hogy az Intel nem adott ki adatokat az asztali CPU-k TjMax értékeiről. A listákon csupán 100 fokos TjMax szerepel a 65 nm-es és 105+ fokos TjMax a 45 nm-es mobil processzorok esetében, de olyan publikáció nem látott napvilágot, mely az asztali CPU-kkal foglalkozna. (Azóta több CPU-nak ismert a TjMax értéke, mérések alapján - a ford.) Emiatt a legtöbb monitorozó progi csak tippelni tudja a TjMax-ot.

(Időközben az Intel publikált jónéhány TjMax értéket, ezeket itt találjátok: http://www.tomshardware.co.uk/intel-dts-specs,news-29460.html - a ford.)

Az Intel készített egy programot, mely a TjMax-on alapult, sokan ez alapján készítettek monitorozó szoftvereket. Ez az Intel Thermal Analysis Tool (TAT) volt. Sajnos ez a program, melyet eredetileg laptop CPU-k tesztelésére készítettek, és később sem módosították, alapvetően nem volt alkalmas asztali processzorok hőmérsékletmérésére, de legalábbis értelmezhetetlen adatokat szolgáltatott.

A második probléma, hogy a DTS által szolgáltatott adatok bizonyos tartományokban nem követik lineárisan a magok valós hőmérsékletét.

Ezek közül a problémák közül egy is pontatlan mérést eredményezhet, de a kettő együtt, akár 20 fokos eltérést is okozhat. Ez elfogadhatatlan, ezért írtam a RealTemp-t.

Tesztelés

Nagyon egyszerű lett volna készíteni egy újabb monitorozó programot a fenti problémák ismeretében, ám szerettem volna tiszta lappal kezdeni, és csak saját eredmények alapján elindulni.

Amikor elkezdtem méréseket végezni egy Fluke 62-es infrahőmérővel, megfigyeltem, hogy jelentős gond van a DTS által szolgáltatott adatokkal, amire sok programozó alapozza a szofvere által jelzett maghőmérsékleteket. A DTS adatai (még mindig a distance to TjMax-ról van szó - a ford.) ugyanis nem követik lineárisan a magok hőmérsékletét a CPU teljes működési hőtartományában. Emlékezzümk vissza, hogy az Intel azért és arra készítette a szenzort, hogy a segítségével megóvja a CPU-t a túlhevüléstől (értelemszerűen így csak a magas hőfok tartományokban lehetett szempot a pontosság - a ford.). Ez nagyszerű, azonban megfigyeltem, hogy ha a DTS átlépi a 35 fokos különbséget, a CPU valós hőmérsékletétől függetlenül, ugyanazt az adatot adja (tehát 35 fokot). Ez a probléma minden Core-alapú CPU-nál fennáll.

Az általam tesztelt E8400 magasabb hőmérsékleteket jelzett szenzorosan, mint a valóságban idle, míg a szintén tesztelt E6400 alcsonyabb hőmérsékleteket jelzett. Az eltérés először csekély volt, de minél távolabb kerültünk a TjMax-tól, úgy váltak az adatok mind pontatlanabbá. Az akkor elérhető (és a fentiekben jelzett formulát használó) programok nem küszöbölték ki a problémákat, így jelentősen alá vagy fölé mértek. Még rosszabbak voltak azok a programok, melyek úgy lettek megírva, hogy magasabb TjMax-szal számoltak. Ezek alapján csak téves idle és load hőmérsékleteket kaphattunk. Egy gyors Google keresés megmutatta, hogy milyen széles körben elterjedt ez a probléma.

Erre egyébként akkoriban derült először fény, amikor megjelentek az első csúcskategóriás léghűtők, mint pl. a Thermalright Ultra 120 eXtreme. Néhány júzer ugyanis közzétett olyan idle eredményeket, melyek azt mutatták, hogy a magok hőmérséklete alacsonyabb volt, mint a környezet hőmérséklete. Az eXtreme egy nagyszerű hűtő, de még ez sem változtatja meg a fizika törvényszerűségeit. Nyilvánvalóan léghűtéssel nem mehetünk a környezet hőmérséklete alá a maghőkkel. A jelenséget én is tapasztaltam az E6400-ammal, de nem láttam át a probléma nagyságát, amíg meg nem néztem egy E8400-at.

Lementem a pincébe, és a következő, meglepő eredményeket kaptam a CoreTemp aktuális verziójával.

A képen a két proci egyaránt 1600MHz-en üzemel. Hűtésre egy Tuniq Towert használtam, maximális fordulatszámra állított ventivel, a VCore mindkét esetben 1.08V volt. Tehát minden körülmény azonos volt, csupán a CPU-k különböztek.

Egy Core proci, ha ilyen feszen és órajelen fut, minimális hőenergiát termel. Egy jó léghűtővel közel azonos, ha nem egyforma eredményt kellett volna kapnunk, ám itt például 25 fok az eltérés (34 vs 9). Világos volt, hogy az eredmények nem lehetnek helyesek. Az E6400-am értelemszerűen nem futhatott a 12 fokos környezeti hőmérséklet alatt, és kizárt volt, hogy a kisebb, kifinomultabb, energiatakarékosabb E8400, ennyivel melegebb legyen, mint a pince légköre. Végeztem még néhány gyors mérést, melyekből kiderült, hogy a CoreTemp 105 fokos TjMax-szal számolt, ami nyilvánvalóan helytelen érték.

A további mérésekből kiderült, hogy az új E8000-es széria TjMax értéke 95 fok. Ez megmagyaráz 10 fok eltérést a CoreTemp adataiban, de még mindig marad 15 fok különbség.

Az egyetlen megoldás az lehetett, hogy az E6400 eredményei túl alacsonyak, és az E8400 adatai még a korrigált TjMax-szal is túl magasak. Az infra hőmérővel mért differencia 5 fok volt. A SpeedFan 100 fokos TjMax-szal számolt az E8400 esetében, ezért - 5 fokot korrigáltam rajta. Amikor a korrekt TjMax-szal számoltam, az infrahőmérőm 35 fokot mutatott, míg a SpeedFan 40-et. Mindeközben a Coretemp és az Everest egyöntetűen 50 fokról számoltak be.

A mérésekről egyébként itt találtok bővebb információkat.

Kalibráció

A fenti tapasztalatokat és néhány további mérést felhasználva, kidolgoztam egy egyszerű korrigálási faktort, hogy segítségével kiküszöbölhessük a DTS idle mérési hibáját. A RealTemp Idle kalibrációjával beállítottam az E8400 esetében (-2)-t, és az E6400 esetében (+2)-t, így nagyon pontos hőmérsékleti adatokat kaptam végre mindkét processzor esetében a 10 és 100 fok közötti hőmérséklet-tartományban.

Amennyiben korrekt adatokat szeretnénk kapni a CPU-nk hőmérsékletéről, javasolt kalibrálni RealTemp-ünket, hogy ne téves TjMax alapján kalkuláljon.

Először is derítsük ki, hogy a processzorunk szenzora alá vagy fölé mér. Az én eljárásom azon alapul, hogy a CPU hőtermelését minimálisra csökkentjük. Ezt megtehetjük a frekvencia csökkentésével, és a hozzá tartozó minimális VCore beállításával. Fontos, hogy a léghűtőnk ventilátorát maximális fordulaton járassuk. Javasolt a szorzó visszavétele is minimumra, és az energiagazdálkodó funkciók aktiválása (C1E, SpeedStep). Indítsuk újra a gépet, majd pl. CPU-Z-vel csekkoljuk az órajelet és a VCore-t.

A fenti lépésekkel nagy mértékben csökkentettük a hőtermelést, így általánosságban elmondható, hogy levett oldallappal a léghűtött kétmagos CPU-nk hőmérséklete 4-5 fokkal lehet legfeljebb magasabb, mint a szoba hőmérséklete. Négymagos CPU-k esetében ez a különbség 6-7 fok. Amennyiben a RealTemp által jelzett hőmérséklet alacsonyabb, mint a fentiek alapján várható lenne, akkor kattintsunk a Settings-re, és az Idle Calibration-nál adjunk meg egy pozitív korrekciót úgy, hogy az aktuálisan jelzett hőmérséklet megfeleljen, illetve a lehető legjobban közelítsen a szobahőből levezetett eredményhez. Értelemszerűen, ha a jelzett hőfok túl magas, úgy negatív korrekciót kell alkalmaznunk.

Ennyi a kalibrálás menete. Amíg a TjMax érték korrekt, és elvégzed ezt a fenti, szimpla kalibrációt, a jelzett hőértékek megbízhatók és egymással összehasonlíthatók lesznek (azonos szoftververziót és kalibrálást feltételezve természetesen).

Ez a teszt és kalibráció csak az idle hőmérsékletekre vonatkozik ugyan, de mivel a szenzorok 60 fok fölött már nagyon pontosan mérnek, így nincs szükség load kalibrációra.

RealTemp.ini file

Ez a file tartalmazza a RealTemp beállításait, de a 2.6-os verziótól kezdve nincs szükség rá, hogy felhasználó szinten módosítsuk a tartalmát. Az összes itt szereplő érték módosítható a Settings ablakban.

Idle kalibráció

Bármilyen érték használható -3.0 és 3.0 között, a pontosabb mérési eredmények elérése érdekében. A folyamat részletes leírása a cikkben, Kalibráció címszó alatt található. Minden maghoz különböző érték állítható be.

TjMax beállítása

Az Intel nem publikált pontos TjMax értékeket az asztali processzoraihoz, így ez a lehetőség azon felhasználók számára lehet hasznos, akik tudják, vagy tudni vélik processzoruk pontos TjMax értékét. A tesztek alatt nem láttam szükségét ezen opciónak, de elképzelhető, hogy egyes tapasztalt felhasználók be szeretnék állítani az általuk helyesnek vélt, remélhetőleg kimért értékeket, ha úgy gondolják, hogy a RealTemp rossz adatokkal dolgozik. Bármilyen érték megadható 70 és 120 között.

Maghő kijelzése

Kiválasztható, hogy a system tray-en mely magok hőmérsékletét jelezze ki a program. Az egyes magokat különböző színekkel is kiírathatjuk a magok alatti gomb segítségével.

Betűtípus beállítása

Jelenleg 4 különböző betűtípusból választhatjuk ki a számunkra megfelelőt, a magok hőmérséklete a kiválasztott betűtípussal kerül kiírásra a system tray-en. A szélső jobb oldali gombbal választhatjuk az RTFont-ot, melyet a letöltött, tömörített állomány tartalmaz. XP felhasználóknak ezt manuálisan kell telepíteniük a Vezérlőpultban, vagy egyből a Font mappába. A kitömörített betűkészlet file-t egyszerűen be kell másolni a Font mappába, és kész is. Vista felhasználóknak jobb egérrel kell a betűkészlet ikonjára kattintaniuk, és a felbukkanó menüben kiválasztani a megfelelő, fent megjelölt célmappát. Ez a betűkészlet hasonlatos a digitális hőmérő betűihez, amit a mérések során használtam.

VID

Ez az a minimális és maximális magfeszültség, amit a CPU kap a laptól, abban az esetben, ha BIOS-ban AUTO vagy Default beállítást alkalmaztunk. A laptól és az alkalmazott beállításoktól függően eltérhetünk ettől az értéktől. A VID csak egy ajánlott érték, nem azonos a CPU által aktuálisan kapott feszültséggel. Az aktuális magfeszültség megállapításához használjuk például a CPU-Z programot. A valós idejű VID kijelzése a RealTemp főablakának jobb felső részén változhat, amennyiben az energiagazdálkodási funkciók (SpeedStep, C1E) aktívak, és a processzor nincs terhelés alatt.

Eddig tehát az írás, tuningra, hőmérőzésre fel!

* * *

UPDATE!

A fordítás ügyében váltottam pár levelet a RealTemp készítőjével, Kevin Glynn-el, így tájékoztathatlak Titeket, hogy jövő héten kerül fel egy update-elt dokumentum a Techpowerup.com-ra a programmal kapcsolatban. Amennyiben van rá igény, annak alapján én is frissítem az írást. Kevinnek egyébként természetesen nem volt kifogása a fordítás megjelenése ellen, sőt kifejezetten hálás volt programjának ilyetén módon történő népszerűsítéséért. Mindjárt el is küldte a RealTemp legutolsó bétájának linkjét. Aki esetleg még nem látta volna, itt találja:

RealTemp 2.90 RC12 http://www.fileden.com/files/2008/3/3/1794507/RealTempBeta.zip

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.