Návody: Jak efektivně odladit power management I. | Kapitola 5
Seznam kapitol
Kolik hodin denně běží vaše sestava? A kolik hodin z tohoto čísla běží na plný výkon? Internet, filmy a poslech hudby tvoří drtivou většinu úloh, které za den vás počítač obslouží. Je přitom úplně zbytečné, abyste film přehrávali s procesorem taktovaným na 4 GHz. Ukážeme si, jak zachovat výkon, odladit spotřebu a ušetřit klidně tisíce korun ročně.
Samotný procesor je také zařízení (Device) jako ta o kterých jsme hovořili v předchozí kapitole. Má většinou pouze stavy D0 a D3. Nás bude zajímat pouze stav D0, kdy je procesor napájen a funkční. Všechny stavy "C" vztahující se k procesoru jsou aplikovány pouze v nadřazeném režimu D0. Každý jistě některé základní stavy znáte, alespoň z BIOSu, podívejme se ale na úplně všechny a co vlastně znamenají:
C0 (Aktivní)
- V tomto stavu pracuje procesor na maximálním (nebo řízeném) taktu, zpracovává data a instrukce
- Úspora energie je buď nulová, nebo rovná P-stavům procesoru (pokud je tato funkce zapnutá)
C1 (Halt)
- Tento stav je dosažen příkazem *HLT* operačního systému
- Instrukční pipeline je pozastavena, procesor nezpracovává žádná data nebo instrukce, jádra jsou zastavena, cache L1 vyprázdněna
- Tuto funkci musí podporovat každý procesor
- Udržovací napětí je relativně vysoké, stejně jako takt
- Úspora energie je do 70 procent
- Uvedení do plného provozu se počítá v řádu ns (nano-sekundy)
C1E (Enhanced)
- Nepatří do EIST schématu, je zcela samostatné
- Větší úspora energie než C1
- Před přechodem do C1E se sníží napětí a frekvence
- Stále rychlý start do provozu
- Úspora energie 50-60 procent
C2 (Stop Grant)
- Jádra procesoru jsou vypnutá, nejsou vykonávány žádné operace
- Všechny I/O buffery jsou vypnuté, L1 cache vyprázdněná
- Úspora energie vyšší než 70 procent
- Uvedení do provozu v řádu stovek ns
C3 (Deep Sleep)
- Takt sběrnice a PLL obvody jsou vypnuté
- Všechny paměti cache jsou vyprázdněny (některé částečně)
- Úspora energie CPU je 70 procent, systém (deska) ale spotřebuje méně než u předchozích stavů
- Uvedení do provozu asi 50
µs (mikro-sekundy)
C4 (Deeper Sleep)
- Stejné jako u stavu C3
- Udržovací napětí je ale sníženo
- Data v L2 cache jsou postupně zahazována
- Úspora je až 98 procent energie
- Uvedení do provozu je až 160
µs
C5
- Stejné jako C4
- Data v L2 cache jsou vynulována
- Start procesoru déle než 200
µs
Úspora energie skoro 99 procent
C6
- Udržovací napětí je téměř nulové
- Všechny cache jsou vypnuté
- Spotřeba je téměř nulová
- Start systému více než 250
µs
Obrázek ukazuje, jak je možné kombinovat stavy u více jádrových procesorů. Na obrázku je klasické dvoujádro ve všech stavech, i když Intel i AMD aplikují snižování spotřeby jinak, mají tento princip společný. Nejvyšší možný stav je zde roven nejvyššímu stavu alespoň jednoho jádra. Znamená to, že pokud je například jedno jádro v režimu C0, celkový stav procesoru bude C0 i když všechna zbylá jádra mohou být vypnutá v režimu C3. Obrázek ukazuje možné kombinace.
P-Režimy (Performance - Výkon)
V režimu D0/C0 procesor pracuje a je plně funkční. V tu chvíli nastupuje další podmnožina stavů - "P". Ano, těmto stavům říkáme všelijak, Turbo Boost, Cool´n´Quiet, SpeedStep (EIST) atd. V tomto režimu má procesor definováno několik možných stavů. Ilustruje je náš obrázek nahoře. Však to dobře znáte, pokud povolíte úsporné funkce v BIOSu, bude si procesor v nečinnosti snižovat napětí, frekvenci a možná i zcela vypínat nějaká jádra. Výrobci dnes už nedodržují jednoduché schéma z obrázku, ale například Intel zabudoval pro řízení spotřeby do procesorů vlastní ovládací jednotku. Architektura Sandy Bridge dokáže zcela odpojovat nevyužitá jádra a tím razantně snižovat spotřebu v klidu i v mírné zátěži. Naopak to dělá v režimu Turbo.
U starších procesorů se ale vše řídilo podobnými schématy z obrázku. Každá P-Stav měl přidělen vlastní násobič a hladinu napětí, mezi všemi pak systém automaticky přepíná. Je také zcela běžné, že každé jádro může mít jinou hodnotu a být v jiném P-Stavu. Vytížené jádro je v maximálním stavu P0, natož zahálející jádro jede na nejnižším násobiči například ve stavu P4. Starší architektury měly PLL obvod společný pro všechna jádra, což je problém jelikož PLL musí být kvůli aktivními jádru stále napájeno. Moderní procesory (Phenom II, Core i7) ale už mají PLL a Vcc samostatné pro každé jádro, tato se pak dají zcela odpínat od napájení a taktu. Znamená to také, že každé jádro může mít zcela jinou frekvenci. Může dojít dokonce i k situaci, kdy jedno jádro pojede na absolutním maximu s Turbem a druhé může být zcela vypnuté.
CPU Thermal Monitor
Pokud se rádi "šťouráte" v BIOSu, u některých desek je možné vypínat a zapínat funkci CPU Thermal Monitor, nebo také CPU OverSpeed Protection a podobně. Ta je také specifikovaná v ACPI normách a má tři základní stupně a funkce:
TM1
Pokud je překročena nastavená hranice teploty, systém začne do CPU vkládat prázdné cykly k jeho ochlazení, ano je to známé "throttlování". Tento systém je funkční na každém jádru nezávisle, zpomalovat může třeba pouze jedno, nebo i všechna.
TM2
Pokud dojde k překročení hranice teploty, okamžitě je nastaven nejnižší možný násobič a napětí. My nyní už víme, že je nastaven nejnižší P-stav (P5). Tento způsob je lepší než první a musí být plně podporován přímo procesorem. U prvního se o vše stará operační systém.
ETM
Extrémní verze monitoru a ochrany kombinuje obě předchozí funkce. To už je ale procesor kousek od úplného vypnutí, jež nastane v okamžiku překročení nejvyšší možné hranice teplot.