Softwarové chlazení a řešení problémů s ním
5.12.2003, Eagle , článek
Pojem softwarové chlazení na platformě AMD zná asi každý, kdo se zajímal o snížení teploty procesoru. Zároveň je však téměř synonymem k tomuto pojmu i slovo "problém". V tomto článku si vysvětlíme princip softwarového chlazení, ukážeme postup, jak ho zapnout a nakonfigurovat procesor, a uvedeme, jaké jsou se softwarovým chlazením spojené problémy i s možnými variantami řešení. Teplota se v případě nevytížení tímto způsobem sníží až o 10 stupňů!
Kapitoly článku:
- Softwarové chlazení a řešení problémů s ním
- Jak softwarové chlazení zapnout
- Tabulka čipsetů a nastavení dělitele frekvence
- Problémy a možná řešení
- Výsledky
Softwarové chlazení - co to je
Princip chlazení pomocí software je již poměrně starou záležitostí. První programy se objevily již v dobách Windows 95 (např. program Rain). Tyto programy posílaly procesoru privilegiovanou instrukci HLT (binárně F4), která procesor přepnula do stavu Halt. V tomto stavu bylo pozastaveno provádění instrukcí a procesor "spal" do doby, než mu bylo zaslán signál přerušení.
Pozn: Intel procesory s HyperThreading se v případě instrukce HLT chovají jako dva nezávislé čipy, tj. při spuštění HLT na logickém procesoru 0 se uspí pouze tento procesor a logický procesor 1 pokračuje v činnosti. Používáte-li některý ze starších programů posílající v době nevytížení HLT instrukce a máte čip s HyperThreading, je patrně čas na upgrade programu.
Výhodou instrukce HLT je, že jí podporuje prakticky každý moderní procesor. Díky tomu může operační systém (nebo jiný program běžící s nejvyššími privilegii - pod Windows jsou to ovladače zařízení SYS / VXD) v době nečinnosti procesor uspávat a šetřit tak elektřinou. Se sníženým příkonem klesá i tepelný výkon, tj. teplota se snižuje. Díky tomu je možné snížit otáčky větráků, takže celkově může být systém tišší.
Chlazení na platformě Socket A od AMD
Procesory AMD pro socket A samozřejmě podporují HLT instrukce. Kromě toho ale ještě podporují přepínání do režimu Stop Grant. Kompletní schéma je znázorněno zde:
Schéma může být na první pohled nepřehledné, přitom je docela jednoduché.
Procesor běžně pracuje v režimu C0 (Working state).
Do úsporného režimu C1 (Halt) se procesor dostává spuštěním privilegiované instrukce HLT, tj. čistě softwarově. Procesor po zjištění HLT instrukce vyvolá na sběrnici FSB signál Halt special cycle. North bridge čipsetu zjistí tento signál a odpojí sběrnici FSB. Tím se procesor dostane do stavu Halt. Probudí ho z něj až přerušení.
Úsporný režim C2 (Stop Grant) je spuštěn hardwarově přivedením logické jedničky na pin STPCLK#. Procesor vyvolá na sběrnici FSB signál Stop Grant special bus cycle. Čipset zjistí tento signál a odpojí sběrnici FSB. Tím se procesor přepne do stavu Stop Grant. Z režimu Stop Grant se procesor dostane přivedením logické nuly na pin STPCLK#.
O samotnou změnu stavu na pinu STPCLK# se stará south bridge čipové sady. Ten umožňuje čistě hardwarové spuštění nebo spuštění po zásahu software. Hardwarové spuštění je typické pro tzv. Clock throttling, umělé zpomalování v případě přehřívání. Některé základní desky mají v nabídce BIOSů položku ke zpomalování s volitelným procentuelním zpomalením. Ta provádí přesně to, že základní deska po zjištění příliš vysoké teploty nastavuje (v čase) ve zvoleném poměru pin STPCLK#, čímž se procesor ochlazuje.
Pozn.: V grafu je ještě režim Probe - ten nás pro účely tohoto článku nemusí zajímat. Dále je v grafu režim FID_Change. O tomto režimu jsem mluvil v článku o změně násobičů za chodu - odkaz zde.
Jak moc to "chladí"?
Pro představu, jak moc elektřiny procesor zkonzumuje v režimu Stop Grant, jsem sestavil následující tabulku.
Uvedené hodnoty pro Stop Grant jsou pro nejmenší 8x zpomalení hodin (o tom budu mluvit později). Pro největší zpomalení 512x jsou maximální hodnoty kolem dvou Ampér.
Již na první pohled je vidět, že hodnoty proudového odběru při Stop Grant režimu jsou řádově jiné, menší, než v plně operačním režimu. Úspora energie (a tím i snížení teploty) jsou proto velmi velké. Také si všimněte, že hodnoty ve Stop Grant nezávisí na frekvenci procesoru, ale především na napětí a typu čipu - je to logické, protože procesor vlastně spí a počet hodinových cyklů tak není příliš určující. Jak moc je určují, upřesním za chvíli.
Princip chlazení pomocí software je již poměrně starou záležitostí. První programy se objevily již v dobách Windows 95 (např. program Rain). Tyto programy posílaly procesoru privilegiovanou instrukci HLT (binárně F4), která procesor přepnula do stavu Halt. V tomto stavu bylo pozastaveno provádění instrukcí a procesor "spal" do doby, než mu bylo zaslán signál přerušení.
Pozn: Intel procesory s HyperThreading se v případě instrukce HLT chovají jako dva nezávislé čipy, tj. při spuštění HLT na logickém procesoru 0 se uspí pouze tento procesor a logický procesor 1 pokračuje v činnosti. Používáte-li některý ze starších programů posílající v době nevytížení HLT instrukce a máte čip s HyperThreading, je patrně čas na upgrade programu.
Výhodou instrukce HLT je, že jí podporuje prakticky každý moderní procesor. Díky tomu může operační systém (nebo jiný program běžící s nejvyššími privilegii - pod Windows jsou to ovladače zařízení SYS / VXD) v době nečinnosti procesor uspávat a šetřit tak elektřinou. Se sníženým příkonem klesá i tepelný výkon, tj. teplota se snižuje. Díky tomu je možné snížit otáčky větráků, takže celkově může být systém tišší.
Chlazení na platformě Socket A od AMD
Procesory AMD pro socket A samozřejmě podporují HLT instrukce. Kromě toho ale ještě podporují přepínání do režimu Stop Grant. Kompletní schéma je znázorněno zde:
Schéma může být na první pohled nepřehledné, přitom je docela jednoduché.
Procesor běžně pracuje v režimu C0 (Working state).
Do úsporného režimu C1 (Halt) se procesor dostává spuštěním privilegiované instrukce HLT, tj. čistě softwarově. Procesor po zjištění HLT instrukce vyvolá na sběrnici FSB signál Halt special cycle. North bridge čipsetu zjistí tento signál a odpojí sběrnici FSB. Tím se procesor dostane do stavu Halt. Probudí ho z něj až přerušení.
Úsporný režim C2 (Stop Grant) je spuštěn hardwarově přivedením logické jedničky na pin STPCLK#. Procesor vyvolá na sběrnici FSB signál Stop Grant special bus cycle. Čipset zjistí tento signál a odpojí sběrnici FSB. Tím se procesor přepne do stavu Stop Grant. Z režimu Stop Grant se procesor dostane přivedením logické nuly na pin STPCLK#.
O samotnou změnu stavu na pinu STPCLK# se stará south bridge čipové sady. Ten umožňuje čistě hardwarové spuštění nebo spuštění po zásahu software. Hardwarové spuštění je typické pro tzv. Clock throttling, umělé zpomalování v případě přehřívání. Některé základní desky mají v nabídce BIOSů položku ke zpomalování s volitelným procentuelním zpomalením. Ta provádí přesně to, že základní deska po zjištění příliš vysoké teploty nastavuje (v čase) ve zvoleném poměru pin STPCLK#, čímž se procesor ochlazuje.
Pozn.: V grafu je ještě režim Probe - ten nás pro účely tohoto článku nemusí zajímat. Dále je v grafu režim FID_Change. O tomto režimu jsem mluvil v článku o změně násobičů za chodu - odkaz zde.
Jak moc to "chladí"?
Pro představu, jak moc elektřiny procesor zkonzumuje v režimu Stop Grant, jsem sestavil následující tabulku.
čip | revize | frekvence v MHz | napětí | Working State maximum | Stop Grant maximum | Stop Grant typicky |
Thoroughbred | A0 | 1467 | 1.5V | 32.9A | 5.87A | 3.7A |
Thoroughbred | A0 | 1600 | 1.5V | 35.0A | 5.87A | 3.7A |
Thoroughbred | A0 | 1667 | 1.6V | 37.7A | 7.68A | 4.7A |
Thoroughbred | A0 | 1667 | 1.65V | 36.5A | 8.85A | 5.4A |
Thoroughbred | B0 | 1533 | 1.5V | 34.0A | 5.4A | 3.9A |
Thoroughbred | B0 | 1533 | 1.6V | 31.9A | 8.1A | 4.9A |
Thoroughbred | B0 | 2000 | 1.65V | 41.4A | 8.9A | 5.9A |
Barton | A2 | 2000 | 1.6V | 37.5A | 8.75A | 6.88A |
Barton | A2 | 2083 | 1.65V | 41.4A | 12.1A | 7.2A |
Uvedené hodnoty pro Stop Grant jsou pro nejmenší 8x zpomalení hodin (o tom budu mluvit později). Pro největší zpomalení 512x jsou maximální hodnoty kolem dvou Ampér.
Již na první pohled je vidět, že hodnoty proudového odběru při Stop Grant režimu jsou řádově jiné, menší, než v plně operačním režimu. Úspora energie (a tím i snížení teploty) jsou proto velmi velké. Také si všimněte, že hodnoty ve Stop Grant nezávisí na frekvenci procesoru, ale především na napětí a typu čipu - je to logické, protože procesor vlastně spí a počet hodinových cyklů tak není příliš určující. Jak moc je určují, upřesním za chvíli.