Od poloviny let nabízely stolní CPU více jader CPU v jednom balíčku. Jedná se o vícejádrový procesor. Zatímco dřívější návrhy byly omezeny na dvě nebo čtyři jádra CPU, moderní CPU nabízejí až 64 fyzických jader na jednom CPU. Tento vysoký počet jader není standardní pro stolní procesory a je obecně vyhrazen pro špičkové pracovní stanice nebo servery. Typický počet jader v moderních stolních CPU je mezi 4 a 16. Ale co je to na vícejádrových CPU, které je činí dominantními v moderních počítačích?
Jednojádrový
Historicky bylo jednojádrové CPU omezeno na provádění pouze jednoho úkolu najednou. To přichází s celou řadou problémů. Například na moderním počítači běží obrovské množství procesů na pozadí. Pokud CPU může zpracovávat pouze jednu věc najednou, znamená to, že tyto procesy na pozadí musí proces na popředí ubírat na dobu zpracování. Chybějící mezipaměť navíc znamenají, že data je třeba načíst z – poměrně – pomalé paměti RAM. Během doby, kdy jsou data načítána z paměti RAM, procesor prostě sedí v nečinnosti, protože nemůže nic dělat, dokud data nezíská. To zadržuje běžící proces i všechny ostatní procesy, které čekají na jeho dokončení.
Zatímco moderní jednojádrové procesory nejsou díky vzestupu levných vícejádrových procesorů skutečně věcí, byly by schopny použít jiné moderní triky, aby fungovaly rychleji. Potrubí by umožnilo, aby každá jiná část zpracování instrukce byla použita současně, poskytuje výrazné zvýšení výkonu oproti použití pouze jedné fáze potrubí na takt cyklus. V širokém potrubí by bylo možné zpracovat více instrukcí v každé fázi potrubí za cyklus hodin. Zpracování mimo pořadí by umožnilo plánování instrukcí časově efektivnějším způsobem. Prediktor větvení by byl schopen předpovědět výsledek větvené instrukce a preventivně spustit předpokládanou odpověď.
Všechny tyto faktory by fungovaly dobře a poskytovaly by určitý výkon. Přidání jednoho nebo více jader však toto vše umožňuje a najednou umožňuje zpracování dvojnásobku dat najednou.
Vícejádrový
Přidání druhého jádra zní, jako by to mělo zdvojnásobit hrubý výkon. Věci jsou bohužel složitější. Programová logika je často jednovláknová, což znamená, že existuje pouze jedna věc, kterou se program pokouší udělat v jednom okamžiku. Co se však může stát, je, že jiné procesy mohou současně využívat jiné jádro. I když u většiny jednotlivých programů nedochází k žádnému zvýšení výkonu, poskytuje se navíc zdroj zpracování, účinně snižuje konkurenci o omezený zdroj, který poskytuje a zvýšení výkonu. Toto zvýšení výkonu, jednoduše ze snížení konkurence o čas procesoru, je nejvíce patrné při skoku ze singlu u dvoujádrového CPU se výnosy z dalšího zvyšování počtu jader snižují, i když obecně více lepší.
Aby bylo možné správně využít výhod vícejádrových systémů a skutečně dosáhnout solidního zvýšení výkonu, je třeba programy naprogramovat tak, aby využívaly více procesních vláken. Vícevláknovou logiku je notoricky obtížné spolehlivě provádět, protože je často obtížné se ji naučit a existuje mnoho potenciálních úskalí. Jeden příklad úskalí je známý jako podmínka závodu. Ve sporu jeden proces předpokládá, že jiný proces, který spustí, poběží hladce, a pak se pokusí udělat něco, co se spoléhá na to, že tento jiný proces běží hladce. Představte si například, že proces spouští jiný proces, který zavře jeden dokument a otevře jiný. Pokud původní proces řádně nezkontroluje, zda byl dokončen druhý proces, může to vést k neočekávaným výsledkům. Pokud například došlo k problému se zavíráním prvního dokumentu, může být stále otevřený, když do něj původní proces pouze zapisuje další data.
Tepelné problémy
Jedním z největších problémů, se kterým se vícejádrové procesory potýkají, je teplo. Zatímco jedno jádro CPU nevydává tolik tepla, dvě vydávají více. U procesorů s vysokým počtem jader může tato koncentrace tepla vést k nižšímu taktu zvýšení, protože CPU řídí svou teplotu. Nižší boost clock způsobí nižší výkon v jednovláknových aplikacích. To je často vidět v benchmarcích herního výkonu. Videohry jsou často velmi závislé na jediném vláknu. Jako takový je výkon s jedním vláknem pro hraní her často kritický. Procesory s vysokým počtem jader, jako jsou modely s 16 jádry, jsou často z vysoce výkonných zásobníků. Navzdory tomu lze pravidelně zjistit, že jsou překonány „menšími“ CPU s nižším počtem jader v jednovláknových benchmarcích. Tento problém je ještě zjevnější u CPU s ultra vysokým počtem jader, jako je 64jádrový AMD Threadripper, kde je takt znatelně nižší než u špičkových stolních CPU.
Úspěchy
Mnoho aplikací dokáže správně využít více jader CPU. Například vykreslování CPU je relativně snadný úkol paralelizovat. Zlepšení výkonu lze pozorovat až na 64 jádrech a více, i když žádný procesor v současnosti nenabízí více než 64 jader. Mnoho aplikací jednoduše nemůže být vícevláknových, protože jsou závislé na sekvenční logice. I když tyto nevidí nikde blízko zrychlení vícevláknového programu, skutečnost, že vícevláknové programy a další jednovláknové programy mohou používat jiná jádra CPU, uvolňují čas procesoru, což umožňuje lepší výkon.
Architektonické možnosti
U stolních procesorů bylo každé jádro CPU v rámci vícejádrového CPU obecně identické. Tato homogenita usnadňuje plánování práce na jádrech. Použití stejného opakujícího se designu také pomáhá udržet nízké náklady na vývoj. Mobilní procesory však již dlouho využívají heterogenní jádrové architektury. V tomto provedení jsou dvě nebo dokonce tři vrstvy jádra CPU. Každá vrstva může spouštět stejné procesy, ale některé jsou navrženy pro energetickou účinnost a jiné jsou vyladěny pro výkon. To se prokázalo jako recept na úspěch u zařízení napájených bateriemi, protože mnoho úkolů může více využívat pomalejší energeticky úsporná jádra, prodlužující životnost baterie, zatímco procesy s vysokou prioritou mohou stále běžet vysokou rychlostí když je potřeba.
Architektura CPU stolních počítačů se také ubírá směrem k návrhu heterogenního jádra. Alder Lake 12 od Intelučt generace Core CPU line je první stolní CPU, které to dokázalo. V tomto případě není hlavním hnacím faktorem menších jader nutně energetická účinnost, ale tepelná účinnost, i když to jsou dvě strany téže mince. Více výkonných jader poskytuje vysoký výkon, zatímco mnohá efektivní jádra zvládnou úkoly na pozadí, aniž by příliš ovlivnila hlavní jádra.
Závěr
Vícejádrový procesor je procesor, který obsahuje více procesorových jader v jednom balíčku, často, i když ne výhradně na stejné matrici. Vícejádrové procesory nenabízejí mnoho přímých zvýšení výkonu mnoha programů, ale zvýšením počtu jader nemusí programy s jedním vláknem tolik soutěžit o CPU. Některé programy mohou plně využívat výhod více jader a přímo využívat tolik, kolik je k dispozici. To poskytuje velké zvýšení výkonu, i když kvůli tepelným a energetickým omezením nemusí toto zvýšení nutně znamenat přímé zdvojnásobení výkonu se zdvojnásobením jader.