Dual-core: proč nemůže uspět
Situace, kdy v jednom okamžiku je spuštěn jediný program, je dnes prakticky nereálná. Tak to fungovalo možná v dobách DOSu, ale pod multitaskingovými operačními systémy (např. Windows) něco takového nepřipadá v úvahu - v jeden okamžik máme spuštěný Internet Explorer, který kombinujeme s Windows Media Playerem, s ICQ klientem, poštovním klientem atd.
Plánovač, který přiděluje jednotlivým procesorům úlohy čekající ve frontě (na základě jejich priority procesů), má na dual-core k dispozici dvojnásobek výpočetního výkonu než na klasickém procesoru. Nyní již může v jeden okamžik běžet Internet Explorer i ICQ klient, což dříve nebylo možné (musely se střídat).
Vypadá to vše úžasně ideálně, realita je ale jiná. Ten zásadní problém je totiž v tom, jak moc jednotlivé programy požadují výkon procesoru. Faktem totiž je, že oni ho nevyžadují prakticky vůbec. Již mnoho let převažuje názor, že na kancelářskou práci stačí s přehledem 1 GHz AMD Duron, tedy procesor, který už se několik let neprodává. Všechny ty Internet Explorery, ICQ klienti, Windows Media Playery, poštovní klienti, download manažeři a další tuny programů jsou tak (ne)náročné, že je hravě zvládne obsloužit i z pohledu informačních technologií procesor dinosaurus. Je jasné, že pakliže otevřené okno Internet Exploreru s reklamou v Macromedia Flash vyžaduje pět procent výkonu procesoru a neaktivní okno jednu tisícinu výkonu, pakliže ICQ klient si vystačí s jedním procentem, poštovní klient s jednou tisícinou... , tak se nikdy nemůžeme dostat do situace, kdy máme výkonu nedostatek. Zátěž moderního procesoru i při desítkách spuštěných programů je v řádu jednotek procent. Proto dual-core nemá pro kancelářské nasazení význam. A nebo přece?
Jeden význam by tu přeci jenom byl - odezva. Drtivá většina majitelů dvouprocesorových počítačů si velmi chválí odezvu jejich miláčků. Tím, že je možné spouštět dvě vlákna najednou, se významně snižuje čas potřebný pro vyřízení některé náročné kancelářské situace - když spouštíte jakýkoli program, zároveň se načítá množství DLL knihoven starajících se o standardní windowsí vzhled. Vytížení procesoru tak momentově vyskočí na 100%. Jinými slovy se už Microsoft Word nemusí startovat čtyři vteřiny, ale jenom dvě. Stojí to ale za to? To nechám na každém z vás.
Pozitivního vlivu dvou procesorů se ale můžeme dočkat i za jiných situací. Protože některé části počítačů nejsou zrovna dvakrát ideálně navrženy, může být výkon dual-core vs. jednojádrový procesor i více než desetkrát tolik. Je to v situacích, kdy obsluhou některých hardwarových zařízení ztrácí procesor příliš mnoho času. Tak například u disku pracujícího v režimu PIO (Programmable Input Output), který pro přenos dat vyžaduje trvalou asistenci, jednojádrový procesor stráví 95 procent času právě operacemi spojenými s diskem. Na samotné programy mu tudíž zbude úplné minimum času. V tomto případě dvoujádrový procesor přináší extrémní výhody - jedno jádro se vypořádává s pevným diskem, zatímco to druhé se věnuje programům. Je přeci jenom rozdíl, jestli programům věnujeme pět procent času výpočetní části nebo sto procent. Můžete namítat, že PIO režim se už právě z těchto důvodů dávno nepoužívá - je to pravda, ale v počítači jsou stále i jiná zařízení, která jsou problematická: sběrnice PCI, audio v podobě AC97 kodeku, RAID řadiče atd.
No a konečně jsou i situace, kdy spouštíme zátěžové programy - například kompilujeme kód nějakého programu, balíme soubory WinRARem atp. Při těchto záležitostech je počítač prakticky nepoužitelný a to klidně po dobu desítek minut. Program je tak náročný, že vše ostatní skoro nereaguje. A i kdyby se nám podařilo spustit například film (... kterým bychom zahnali nudu), snížíme tím výkon oné pro nás důležité aplikace, což není právě žádoucí. Dual-core má na toto řešení - na jednom procesoru běží důležitý program, na druhém zábava (film, audio, Internet atp.).
Celkově vzato tedy dual-core v případě více aplikací nepřináší vyšší výkon (vyjma oné "situace s diskem"), ale především pohodlí - programy se spouští rychleji, je možné dělat věci, o kterých dosud nebylo možné ani vzdáleně uvažovat. Znovu však opakuji, že primárně to není o vyšším výkonu!
Poznámka: Plánovač operačního systému musí umět obsloužit více procesorů. Jestliže na to není připraven, bude se dvoujádrový procesor chovat jako jednojádrový - druhé jádro nebude vůbec rozpoznáno! Tak tomu bude například v systémech DOS či Windows 95/98/Me.
Tak proč to ti výrobci dělají?
Jak vidíte, s multithreadingem to není vůbec jednoduché. Proč se tedy výrobci s dual-core tak snaží a tlačí ho ven? Realita je, že dual-core je pro ně záchranou. Není to o tom, že by chtěli být velmi hodní na zákazníky, ale jen a pouze o tom, že v oboru IT je pro dosažení úspěchu třeba inovací (narozdíl např. od hornictví - kolesové rypadlo staré 20 let je v zásadě stejné jako nové kolesové rypadlo... zkuste si takto porovnat procesory). Čím dál tím pokročilejší technologie mají čím dál tím větší problémy s překonáváním fyzikálních bariér. Dual-core je právě důsledkem toho, že výrobci jsou NESCHOPNÍ překonávat fyzikální bariéry. Nic jiného v tom nehledejte, kdyby to dělat nemuseli, tak to nedělají, protože to pro ně znamená značné náklady navíc a ještě to potencionálně může nabourávat jejich prodeje serverových procesorů.
Idea stojící za dual-core je asi taková, že pro dosažení vysokých frekvencí je potřeba vysoké napětí. To zvyšuje proudový odběr, což pak dohromady ve výsledku spotřebu.
Graf ukazuje, jaký je rozdíl ve spotřebě při rostoucím napětí a s konstantním napětím.
Tím, že snížíme frekvenci, můžeme zároveň snížit i napětí. Pokles o 200 MHz může dnes přinést např. o 0.1V nižší napětí, což je skoro 10 procent. Snížení napětí o 10 zredukuje spotřebu o 20 procent. Když tímto způsobem snížíme spotřebu jednoho jádra řekněme na 60W, můžeme přidat jádro druhé. Dohromady se dostaneme na stejnou spotřebu jako u jednojádrového čipu, výkon však bude podstatně lepší. Jinými slovy u Intelu pak platí, že:
2x 3.2 GHz (125A) > 1x 3.8 GHz (119A)
To ale samozřejmě za předpokladu, že aplikace jsou schopny dvou jader využít... což ne vždy platí. Na druhou stranu, marketingovou masáží je možné vnutit spotřebitelům prakticky cokoliv.
V praxi ale očekávejme spíše vyšší spotřebu. Ani jeden z výrobců nechce, aby jeho dual-core řešení frekvencí příliš zaostávala za jednojádrovými modely, proto to s tím poklesem napětí nemyslí tak razantně.
Vpravo fotografie nového typu boxovaného chladiče pro Pentium D - značně přibylo mědi s vysokou tepelnou vodivostí i žeber s velkou plochou
(foto: Tom's Hardware)
Nové Pentium D a Pentium eXtreme Edition budou vyžadovat základní desky se schopností dodat až 125A. Současné Pentium 4 s jádrem Prescott je certifikováno pro 119A, což se v našich testech ukázalo jako trochu nadnesené (u Pentia D to ale nadnesené zjevně nebude).
Typická spotřeba procesoru (TDP) se posouvá ze současných 115W deklarovaných pro jednojádrový Prescott na 130W. Na ComputerBase měřili spotřebu počítače při zatížení několika různými aplikacemi:
Ve všech ohledech horší výsledky než u nejžravějších současných procesorů - Pentií 4 Prescott na frekvencích 3.6 až 3.8 GHz. Někdy pak dost podstatně horší.
Mohli jsme mít geniální produkt, ale nemáme
Dual-core procesory v sobě integrují dvě jádra, která mají redukované napětí. To znamená, že každé z jader u dual-core je svojí charakteristikou spotřeby podobné těm povedenějším kusům jednojádrových procesorů (jednojádrové Pentium 4 na stejné frekvenci spotřebuje víc než jedno ze dvou jader dual-core, protože má vyšší napětí). Náklady na výrobu dual-core jsou proto vysoké a kvalita procesorů také poměrně vysoká.
Je až s podivem, proč výrobci nebyli schopni přijmout opatření, která by z dual-core udělala naprosto neodolatelný produkt - dynamické vypínání jádra. Nápad je takový, že když by byl procesor vytěžován pouze jedním threadem, jedno jádro by se, za asistence operačního systému, vypnulo (z dual-core by se stal jednojádrový procesor) a ono zbylé by za chodu zvýšilo napětí i frekvenci na úroveň současných jednojádrových procesorů. Naopak v okamžiku, kdy by ve frontě čekalo více threadů, by fungovaly obě jádra. Díky této strategii by bylo dosaženo optimálního výkonu jak v jednovláknových, tak v multithreaded aplikacích při zachování rozumné spotřeby. Holt ne vždy výrobci myslí na uživatele.