Technologie: jak snížit spotřebu procesoru na minimum

Procesory mají na jedné straně stále větší možnosti a výkony a na straně druhé stále menší a menší spotřebu. Jak je to možné? Jaká kouzla jejich výrobci používají?

Tento článek vyšel v Computeru 12/10

Abychom mohli dojít k velmi úspornému procesoru, musíme někde začít. Vycházejme ze staršího stolního procesoru, který nemá žádnou metodu k úspoře spotřeby. Takový procesor má velký příkon, takže vyprodukuje mnoho tepla a tento nešvar má po celou dobu provozu – rozdíl mezi chodem naprázdno a maximálním zatížením je nízký. To zvyšuje náklady na provoz, ale také to umožňuje bez dalších financí provozovat na pozadí různé výpočty typu SETI@home a hledat UFO, nebo třeba hledat lék na rakovinu.

Prapůvodní postupy

Základem všech úspor je výrobní technologie. Čím menší je procesor, tím menší má spotřebu, proto je možné při přechodu na menší výrobní technologii spotřebu snížit. To byl třeba problém původních procesorů Intel 486, které se vyráběly 1µm technologií, což bylo pro 50MHz modely příliš. Po přechodu na 0,8µm technologii se problém vyřešil, a tak bylo možné procesory provozovat dokonce na vyšší frekvenci, aniž měly nějak vyšší spotřebu.

Další cestou je vyměnit softwarovou cestu za hardwarovou. Pokud se nějaký problém řeší pomocí dlouhého programu, trvá to dlouho, takže má výpočet velkou spotřebu energie. Pokud se postup převede na hardware, je úloha vyřešena neporovnatelně rychleji, což sníží množství energie pro daný výpočet. Příkladem je matematický koprocesor, který je od počátku 90. let trvalou součástí našich počítačů. Bez něj jsou matematické výpočty i tisíckrát pomalejší, to znamená také výrazně náročnější na energii. Matematický koprocesor je pro procesor něco jako kalkulačka pro člověka: procesor předá koprocesoru zadání, jež je rychle vyřešeno a výsledek předán zpět. Přestože procesor má sám nějakou spotřebu, vyřeší úlohu tak rychle, že vlastně výrazně šetří energii.

Klepněte pro větší obrázek
intel Core i5

Efektivita výpočtů je dalším postupem. Příkladem je přechod z 64bitových výpočtů na 128bitové (instrukce SSE). Programátor i předtím rozkazoval provádět 128bitové operace, ty si ale procesory rozdělily na dvě 64bitové, což samozřejmě nějakou dobu trvalo. V létě 2006, kdy se objevily procesory Core2 Duo a konkurenční AMD přešlo z K8 na K10, se někdejší 64bitové jednotky nahradily plně 128bitovými, takže se příkazy vykonají najednou.

Napětí: DOLŮ!

Snad nejstarší cestou ke snížení spotřeby procesoru je snížení napájecího napětí – když snížíme napětí, snížíme spotřebu. Zároveň ale lze zvýšit frekvenci natolik, až procesor topí stejně jako předtím, nicméně pracuje rychleji. Prvním krokem byl přechod od 5V verzí k napětí 3,3 V a od té doby se napětí stále snižuje; nyní se pohybujeme řekněme mezi 0,5 a 2 V. Ale čím je napětí menší, tím menší je maximální frekvence – napětí se tedy sníží na takovou úroveň, aby ještě šlo pracovat v celém rozpětí plánované provozní frekvence. Tak vznikají moderní procesory pro stolní počítače.

Příkladem, kdy snížení napětí výrazně pomohlo, byly první procesory Intel Pentium. Ty pracovaly na 5 V a zvládly maximálně 66 MHz (a ještě s problémy). Přešlo se na 3,3 V, zároveň se zlepšila výrobní technologie přechodem z 0,8 µm na 0,6 µm a výsledkem jsou Pentia, zvládající až 120 MHz (tedy téměř dvojnásobek).

Frekvence: DOLŮ!

Frekvence procesoru se již měří v GHz, a tak se není čemu divit, že je to další z klíčových parametrů pro snížení spotřeby. Ta se totiž zvýší čtyřikrát, když stoupne frekvence na dvojnásobek. Nižší frekvence umožňuje snížit napětí ještě víc, než je tomu při plném výkonu, stále však platí, že čím je vyšší frekvence procesoru, tím je vyšší výpočetní výkon, proto je potřeba s vysokými frekvencemi procesorů bojovat s mírou.

Poprvé se o snižování frekvence pro stolní procesory začalo hovořit po roce 2000. Procesory již většinu možností pro zvýšení výpočetního výkonu vyčerpaly, proto se soustředily hlavně na vyšší frekvenci. Jenže tak stoupalo i množství tepla a bylo jasné, že zvyšování frekvence procesoru je cesta do pekel. Přišla tedy myšlenka použít v procesoru dvě jádra na nižší frekvenci místo jediného. Tím se snížilo množství tepla na jádro, ale zároveň se zvýšil výpočetní výkon.

Klepněte pro větší obrázek
Intel Pentium

Následující příklad uváděl Intel při tvorbě Pentia D, což jsou vlastně dvě Pentia 4 v jednom pouzdru. Zvýšením frekvence o 20 % se dosáhlo zvýšení výpočetního výkonu jen o 13 %, ale spotřeba stoupla o 73 %. Na druhé straně snížení frekvence o 20 % znamenalo snížení výpočetního výkonu jen o 13 %, zato spotřeba klesla o 49 %. Když má jedno podtaktované jádro poloviční spotřebu, tak se přidalo druhé. Dohromady mají původní spotřebu, ale výpočetní výkon stoupl o 73 % v porovnání s jediným jádrem na plný výkon.

Vedle stolních procesorů existují i jejich mobilní dvojníci. Notebooky tak mají procesory s nižší spotřebou, které se dociluje kombinací nižšího napětí a o trochu nižší frekvence. Co když je potřeba snížit napětí ještě víc, aby se ušetřilo víc energie? Prostě se napětí a frekvence sníží ještě o něco víc. To je základ procesorů LV (Low Voltage), prioritou je spotřeba i výkon zároveň. Jsou ale počítače, pro které mají i procesory LV příliš vysokou spotřebu, a pak přichází ke slovu extrémní snížení napětí při dalším snížení frekvence. Tak vznikají procesory ULV (Ultra Low Voltage). Ty mají na prvním místě spotřebu, výkon je až vzadu.

Hlavně reagovat pružně

Existuje více cest, jak si pohrát s napětím. Lze to provádět nejen nastavením v továrně, ale přímo v průběhu chodu. Intel přišel s jednoduchým řešením, které pojmenoval Intel SpeedStep: když je notebook ve zdroji, pracuje naplno (HFM = High Frequency Mode), když je v akumulátorovém provozu, pracuje na nižším napětí a frekvenci (LFM = Low Frequency Mode). Je to jednoduché a účinné, ale nereaguje to na potřeby uživatele, navíc přepnutí mezi těmi dvěma stavy mohlo způsobit problémy ve zvuku či při přenosu dat v USB. Co s tím?

Základem je fakt, že procesor většinou nepracuje. A kdo nepracuje, ať nejí. Takže pokud procesor „nemá do čeho píchnout“, sníží se mu frekvence i napětí, když zase práci má, tak se frekvence a napětí vrátí na původní hodnoty. Technicky řečeno vedle stálého snížení je možné napětí upravovat dynamicky v závislosti na činnosti procesoru.

Jednotlivá firemní řešení se liší tím, jak velké či malé skoky napětí a frekvence dělá. Také se oddělila regulace napětí od regulace frekvence; oboje se dělá nezávisle. Příchodem vícejádrových procesorů se přidala časem možnost regulovat napětí a frekvenci pro každé jádro zvlášť. Autorů řešení je celá řada od AMD přes Intel až po firmy Transmeta a VIA Technologies. Známe tedy technologie AMD PowerNow!, AMD Cool'n'Quiet, Enhanced Intel SpeedStep Technology (EIST), VIA PowerSaver. To jsou obchodní nálepky na různé varianty a kombinace redukce spotřeby. Například Enhanced EIST je technologie použitá u vícejádrových procesorů Intelu, které mají společnou cache.

Další úhel pohledu je dostatečně pružné reagování na potřeby. Ona myšlenka měnit napětí je dobrá, ale jsou reakce přiměřené? Napětí je nutné měnit po co nejmenším kroku, frekvenci také (ušitá na míru situace) a změna musí být navíc rychlá. Tuto ideu začala propagovat VIA Technologies s dvojitými hodinami – napětí a frekvenci lze upravovat podle výrobce dvakrát rychleji než u konkurence.

Velikost cache

Pojmem „cache“ se rozumí rychlá vyrovnávací paměť. Ta si pamatuje kopie naposledy načítaných informací z hlavní paměti (také se jí říká operační). A protože cache je výrazně rychlejší než hlavní paměť, její použití zrychluje práci procesoru. Dnes jsme na cache životně závislí.

Vliv cache na výkon procesoru byl znám u prvních procesorů Intel Celeron (bez L2 cache) nebo Pentium M (nezvykle velká L2). Tam cache kapacity 1 MB zabírala na svou dobu velkou plochu, přibližně polovinu čipu (v té době měly procesory Pentium 4 cache L2 poloviční kapacity – jen 512 KB).

Na jedné straně cache vychvalujeme, na druhé je to přívažek: zabírá značné místo na čipu, takže je o tu plochu procesor dražší, a také má samozřejmě nějaký příkon, ale s tím už si lze někdy poradit. Například procesor Intel Atom N270 umí technologii L2 Dynamic Cache Sizing: jen aktuálně používaná část se napájí a zbytek se vypne, díky čemuž se spotřeba procesoru sníží. Samozřejmě se nezapomíná na klady cache a její kapacita se snižuje jen tehdy, pokud je jádro procesoru zatížené jen minimálně či je dokonce uspané. Na kapacitu cache sahá třeba stav Enhanced Deeper Sleep.

Shodný jazyk

Aby se výrobci shodli, začalo se používat označení pro různé stavy v rámci ACPI (Advanced Configuration and Power Interface). Pro procesory jsou režimy činnosti popsány písmenem „C“ (jako CPU). Stav C0 „Active“ znamená běžný režim, kdy procesor pracuje. C1 „Halt“ je stav, kdy jsou všechna jádra uspaná příkazem HLT (halt = stůj) nebo MWAIT (čekej). Většina frekvencí v procesoru je vypnuta, procesor se ale může kdykoli vrátit zpět do provozního stavu C0. Návrat trvá obvykle méně než 1 µs (dokonce i jen 10 ns). Tento stav musí umět všechny procesory schopné ACPI. Dnes je běžné jít o krok dál a podporovat pokročilý stav C1, zvaný C1 Enhanced (nebo jen C1E), který navíc snižuje spotřebu redukcí napětí a snížením zbytku frekvencí na LFM.

Další je stav C2 „Stop Grant“. Ten rovněž uspává, ale více a návrat do C0 trvá asi desetkrát déle. Také se označuje jako Stop-Clock, tedy že vypne frekvence. Je méně výhodný než C1E. Stav C3 „Deep Sleep“ má odlišný význam podle počtu jader. Vícejádrové procesory přestávají sledovat sběrnici, takže data v cache jsou neplatná. Pro jediné jádro jsou paměťové operace mimo provoz, ale obsah cache je stále platný. Probuzení trvá přibližně pětsetkrát déle než z C2.

Stav C4 „Deeper Speep“ vychází ze stavu C3, ale ještě výrazněji snižuje napětí procesoru a redukuje data v cache L2. Stav C5 nastane, jestliže se ve stavu C4 obsah cache L2 sníží na nulu. Stav C6 je podobný stavu C4, jen napětí pro cache snižuje ještě výrazněji a L2 cache se vypíná úplně.

Různé stavy výkonu (power) se označují zase písmenem „P“. Stavem P0 se označuje situace, kdy má procesor maximální výkon (tj. napětí a frekvenci), stav P1 má o trochu nižší napětí a takt oproti P0 a takto se může postupovat až po P16. V grafu naleznete příklad procesoru VIA C7-M, který používá stavy P0 až P7.

Klepněte pro větší obrázek
Výkonové stavy na skutečném procesoru

Intel Turbo Boost

Technologie Intel Turbo Boost na dočasné zvýšení frekvence je někdy přezdívaná automatické přetaktování. To do úspor na první pohled nepatří, ale v kombinaci s mobilními procesory to tak začalo fungovat. Technologie umožňuje zvýšit takt procesoru z oficiální frekvence na vyšší, obě hodnoty definuje výrobce. U stolních modelů to je skutečně možné brát jako přetaktování, ale u notebookových se toho využilo tak, že se běžná provozní frekvence uměle snížila, čímž se logicky sníží i produkce tepla. Při potřebě vyššího výkonu se tento takt může výrazně zvýšit, i více než dvojnásobně.

Pro příklad porovnejme stolní a mobilní procesor se stejnou maximální frekvencí. Styčnou plochou vedle maximální frekvence bude identický čip, shodný stepping, stejný počet jader a kapacita cache pamětí. Takovou dvojicí je nejrychlejší mobilní procesor od Intelu Core i7-920QM Extreme Edition, k němu se hodí desktopový Core i5-750. Oba mají maximální takt jediného jádra 3,2 GHz, jediným rozdílem je absence HyperThreadingu u stolního modelu i5-750. K těmto dvěma se přidá třetí, Core i5-750S – stolní model upravený na trošku nižší spotřebu. Výsledky porovnání naleznete v tabulce.

Klepněte pro větší obrázek
Tři podobné a přesto tolik rozdílené procesory

Také se vám zdá zvláštní, že ekvivalent nejrychlejšího mobilního procesoru je průměrný procesor do desktopu? To je právě ono; notebookové procesory používají slabší patici (ekvivalent LGA 1156), takže mají jen dva kanály RAM (pro LGA 1366 jsou tři). Stolní přece jen mívají vyšší takt.

Začněme stolním modelem i5-750. Ten ještě spoří energii, jen když musí, takže má provozní frekvenci nastavenou na 2,67 GHz. Tu provozuje tak dlouho, dokud se procesor nezačne uspávat; za provozu se nic neděje. Na druhou stranu pokud neprodukuje moc tepla, může se automaticky přetaktovat: pokud jsou v provozu 3 nebo 4 jádra, zvýší se jejich takt jen na 2,8 GHz, když poběží 1 či 2 jádra, přetaktují se na 3,2 GHz. To je o 20 % více než nominální 2,67 GHz.

Druhá stolní verze i5-750S má nižší nominální frekvenci, jen 2,4 GHz. Na tomto taktu procesor pracuje stále, i ve chvíli, kdy by se mohl přetaktovat pro 4 jádra, dokonce i když jedno jádro spí. Až když pracují jen dvě jádra či jedno jediné, může se frekvence zvýšit na 3,2 GHz.

Mobilní i7-920QM má razantnější úsporu, i proto je základní frekvence nastavena jen na 2 GHz (o čtvrtinu méně než u stolního modelu). Za běžného provozu může ale takt snižovat při honbě za další úsporou, a to až na 1,2 GHz. Jestliže se procesor příliš nezahřívá, může se při čtyřech jádrech mírně přetaktovat (max. 2,267 GHz). Při dvou pracujících jádrech dochází k výraznému skoku na 3,067 GHz a jediné jádro pracuje na 3,2 GHz. To je o 60 % více, než nominální 2 GHz.

Jaký je tedy výsledek? Mobilní verze má sice ve většině stavů nižší výpočetní výkon, zato vyzáří jen 55 W TDP oproti desktopovému bratříčkovi. Ten vyprodukuje 95 W TDP, což je o více než 72 % víc. Můžeme také říci, že mobilní verze má o více než 40 % nižší spotřebu. Přitom pokud stačí provoz jediného jádra, jsou na tom stejně.

Komunikace s okolím

Nejen v samotných jádrech lze něco ušetřit, procesor totiž také komunikuje se svým okolím, čipovou sadou. To ale také spotřebuje ne zrovna málo energie. Jak se proti tomu dá bojovat?

Existuje hned několik cest. Opět je zde idea snižovat spotřebu při sníženém využití sběrnice procesoru. První je snížení taktu (jak nečekané!). Nejkrajnějším případem snížení frekvence je její vypnutí, Intel tomu říká Dynamic Bus Parking. Když lze omezovat frekvenci, tak se určitě přidá také nižší komunikační napětí.

Další cestou je zmenšení datové šířky, například místo čtyř párů se použijí jen dva páry datových spojení, a teoreticky se tak spotřeba energie sníží na polovinu, stejně jako přenosová rychlost. AMD to použil už u procesoru Turion X2 Ultra, kdy z 16bitové sběrnice HyperTransport 3.0 sníží šířku vždy na polovinu, tj. na 8, 4, 2 či 1 bit, a nakonec vypne komunikaci úplně. Protože se jedná o plně duplexní sběrnici, kdy jde na každou stranu 16 bitů, upravuje se datová šířka individuálně pro každý směr zvlášť.

Seškrtání funkčních bloků

Dnešní procesory jsou přece jen obří celky s předlouhým seznamem funkčních bloků. Ty sice zvyšují výpočetní výkon, na druhé straně ale také zvyšují spotřebu. V poslední době začaly vznikat procesory, jejichž autoři přehodnotili význam jednotlivých částí.

Příkladem jsou procesory Intel Atom. Ty vzešly z procesoru Core2 Duo, ale po morbidní zeštíhlovací redukci. Spotřeba procesoru byla na prvním místě, pak cena procesoru, pak dlouho, dlouho nic a až kdesi vzadu je teprve výpočetní výkon. A tak se škrtalo. Cache se zmenšila na 512 kB, počet jader se snížil na jediné, dokonce došlo i na funkční bloky jádra. Asi nejviditelnějším omezením byla chybějící jednotka OOO.

Out-of-Order (OOO) je metoda pro zrychlení práce procesoru. Původně se příkazy vykonávaly přesně v tom pořadí, v jakém přicházely, to však není vždy ideální. Proto jsou jednotkou OOO příkazy prozkoumány a případně zpřeházeny tak, aby se sice vykonalo vše tak, jak má být, ale v lepším pořadí. Samotná OOO technologie je užitečná, bohužel s sebou ale nese daň v podobě velké plochy čipu a velké spotřeby. Proto se Intel rozhodl při tvorbě Atomů jednotku OOO z procesoru odstranit.

Na to, že redukovat funkce není jednoduché, se přišlo právě u Atomů. Jsou takové úlohy, kde jediné jádro postačí, objevily se ale hlasy, že to chce tak dva Atomy. Proto se dva čipy zavřely do jednoho pouzdra, a tak vznikly první dvoujádrové Atomy. Výpočetní výkon se zajímavě zvýšil, nicméně spotřeba stoupla na dvojnásobek, tedy ze 4 na 8 W. Pro některé uživatele se přesto až tato varianta stala tou optimální.

Stolní versus mobilní?

Jak je vidět, také dnešní stolní procesory mohutně používají spořivé technologie, které bychom hledali jen v noteboocích. Jaký je tedy rozdíl mezi procesorem pro desktop a pro notebook?

Rozdíl určitě není v použitých technologiích – ty se buď do procesoru zahrnou, nebo ne – důležitý je způsob jejich použití. Situace je podobná jako u motoru auta. Jeden řidič jede agresivně, jeho prioritou je výkon a připravenost onen výkon dokázat. Motor se točí ve vysokých otáčkách, mnohdy i v případech, kdy je to zbytečné. Daní za výhody je vysoká spotřeba. Na druhou stranu lehká noha na plynu nevytáčí motor zbytečně do otáček, díky vnímání krajiny řidič využívá dojezdu na volnoběh, při delším čekání třeba na přejezdu či červené motor vypne. Vůz pak sice nefrčí jako formule, ale zato má nízkou spotřebu.

Procesory to dělají podobně. Stolní procesor je v roli svižného řidiče, proto jej výrobce nastaví tak, aby sice také spořil nějakou energii, ale současně aby nebrzdil uživatele. Notebookový procesor má jinou prioritu, proto se bude uspávat či vypínat častěji a také jeho běžná provozní frekvence bude nižší. Sice nebude mít tak briskní reakce, zato dokáže uhlídat spotřebu na požadované úrovni. Díky tomu se nebude ani přehřívat, ani nebude nutit uživatele každou chvíli hledat zásuvku.

Témata článku: Hardware, Počítače, Technologie, Intel, Procesor, Turbo, Motor, Deeper, Boost, UFO, Seti, Grant

16 komentářů

Nejnovější komentáře

  • Vladimír Brada 5. 9. 2010 14:08:58
    Ubuntu mi příjde jako dobrý OS a jede všude :-) Ono by i Windows 7 mohly...
  • faker 27. 8. 2010 19:18:10
    děláš čest naší katedře;-)
  • Dr.ZUBR 27. 8. 2010 8:28:09
    Ono je docela umění napsat článek, aby byl čtivý. Samozžejmě je třeba brát...
Určitě si přečtěte

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

** Novinka od Asusu míří přímo proti MacBooku od Applu ** Nabídne daleko více výkonu za stejné peníze

2.  12.  2016 | David Polesný | 130

Sbíječky vyměnili za klávesnice. Nový projekt má za cíl přeučit horníky na programátory

Sbíječky vyměnili za klávesnice. Nový projekt má za cíl přeučit horníky na programátory

** Programátorů je málo a horníků bez práce po uzavření dolu Paskov bude moc ** Problém řeší unikátní projekt ** Pilotní kurz dává naději, že by z horníků mohli být použitelní kodéři

28.  11.  2016 | David Polesný | 79