Što je višejezgreni procesor?

Od sredine dvadesetih, stolni CPU-i nude više CPU jezgri u jednom paketu. Ovo je višejezgreni procesor. Dok su rani dizajni bili ograničeni na dvije ili četiri CPU jezgre, moderni CPU nude do 64 fizičke jezgre na jednom CPU-u. Toliki brojevi jezgri nisu standardni za procesore stolnih računala i općenito su rezervirani za vrhunske radne stanice ili poslužitelje. Uobičajeni broj jezgri u modernim stolnim procesorima je između 4 i 16. Ali što je to s višejezgrenim CPU-ima što ih čini dominantnima u modernim računalima?

Jedna jezgra

Povijesno gledano, jedan jezgreni CPU bio je ograničen na obavljanje samo jednog zadatka odjednom. Ovo dolazi s cijelim nizom problema. Na primjer, na modernom računalu postoji ogromna količina pozadinskih procesa. Ako CPU može obraditi samo jednu stvar u isto vrijeme, to znači da ti pozadinski procesi moraju oduzeti vrijeme obrade procesu u prvom planu. Dodatno, promašaji predmemorije znače da podatke treba dohvatiti iz – relativno – sporog RAM-a. Za vrijeme dok se podaci dohvaćaju iz RAM-a, procesor jednostavno miruje, jer ne može učiniti ništa dok ne dobije podatke. Ovo zadržava pokrenuti proces, kao i sve druge procese koji čekaju da se završi.

Iako moderni jednojezgreni procesori zapravo nisu stvar zahvaljujući porastu proračunskih višejezgrenih CPU-a, oni bi mogli koristiti druge moderne trikove kako bi radili brže. Cjevovod bi omogućio da se svaki različiti dio rukovanja instrukcijom koristi istovremeno, pružajući značajno povećanje performansi u odnosu na korištenje samo jedne faze cjevovoda po taktu ciklus. Široki cjevovod bi vidio da se može rukovati višestrukim uputama u svakoj fazi cjevovoda po taktu. Obrada izvan reda omogućila bi planiranje instrukcija na vremenski učinkovitiji način. Prediktor grananja mogao bi predvidjeti ishod instrukcije grananja i unaprijed pokrenuti pretpostavljeni odgovor.

Svi ovi čimbenici dobro bi funkcionirali i pružili određene performanse. Dodavanje jedne ili više jezgri, međutim, omogućuje sve to i u jednom trenutku omogućuje obradu dvostruko veće količine podataka odjednom.

Višejezgreni

Dodavanje druge jezgre zvuči kao da bi trebalo udvostručiti sirove performanse. Stvari su, nažalost, kompliciranije od toga. Programska logika je često jednonitna što znači da postoji samo jedna stvar koju program pokušava učiniti u bilo kojem trenutku. Međutim, ono što se može dogoditi je da drugi procesi mogu koristiti drugu jezgru u isto vrijeme. Iako ne postoji inherentno poboljšanje performansi za većinu pojedinačnih programa, pružanje dodatnog resursa za obradu, učinkovito smanjuje konkurenciju za ograničeni resurs, što pruža a povećanje performansi. Ovo povećanje performansi, jednostavno zbog smanjenja konkurencije za CPU vrijeme, najuočljivije je pri prelasku s jednog na dual-core CPU, dolazi do smanjenja povrata od daljnjeg povećanja broja jezgri, iako je općenito više bolje.

Da bi se na pravi način iskoristile prednosti višejezgrenih sustava i stvarno ostvarilo solidno povećanje performansi, programi moraju biti programirani da koriste više niti za obradu. Poznato je da je višenitnu logiku teško izvesti pouzdano jer ju je često teško naučiti i postoje mnoge potencijalne zamke. Jedan primjer zamke poznat je kao stanje utrke. U stanju utrke jedan proces pretpostavlja da će drugi proces koji on pokrene raditi glatko, a zatim pokušava učiniti nešto što se oslanja na to da će taj drugi proces raditi glatko. Na primjer, zamislite da proces pokreće drugi proces da zatvori jedan dokument i otvori drugi. Ako izvorni proces ispravno ne provjeri je li drugi proces dovršen, to može rezultirati neočekivanim ishodima. Ako je, na primjer, došlo do problema pri zatvaranju prvog dokumenta, on bi mogao još uvijek biti otvoren kada izvorni proces u njega samo zapiše više podataka.

U ovom stanju utrke, vrijednost varijable se očitava drugi put prije nego što se u nju upiše nova vrijednost, što dovodi do pogrešnog ukupnog odgovora.

Toplinski problemi

Jedan od najvećih problema s kojima se višejezgreni procesori na kraju bore je toplina. Dok jedna CPU jezgra ne ispušta toliko topline, dvije ispuštaju više. U CPU-ima s velikim brojem jezgri, ova koncentracija topline može rezultirati nižim taktom pojačanja jer CPU upravlja svojom temperaturom. Niži takt pojačanja uzrokovat će niže performanse u jednonitnim aplikacijama. To se često može vidjeti u mjerilima performansi igara. Videoigre se često jako oslanjaju na jednu nit. Kao takva, jednonitna izvedba često je kritična za igranje. CPU s visokim brojem jezgri, poput modela sa 16 jezgri, često su iz spremnika visokih performansi. Unatoč tome, redovito se može utvrditi da su bolji od "slabijih" CPU-a s nižim brojem jezgri u jednonitnim referentnim vrijednostima. Ovaj problem je još očitiji kod CPU-a s ultra-visokim brojem jezgri kao što je 64-jezgreni AMD Threadripper gdje je takt osjetno niži od vrhunskih CPU-a za stolna računala.

Uspjesi

Mnoge aplikacije mogu pravilno koristiti višestruke CPU jezgre. Na primjer, CPU renderiranje relativno je jednostavan zadatak za paralelizaciju. Poboljšanja performansi mogu se vidjeti sve do 64 jezgre, pa i više, iako nijedan CPU trenutno ne nudi više od 64 jezgre. Mnoge aplikacije jednostavno ne mogu biti višenitne jer se oslanjaju na sekvencijalnu logiku. Iako oni ne vide ni blizu ubrzanja programa s više niti, činjenica da programi s više niti i drugi programi s jednom niti mogu koristiti druge CPU jezgre oslobađa procesorsko vrijeme, omogućujući bolje izvođenje.

Arhitektonske mogućnosti

U stolnim procesorima, svaka CPU jezgra unutar višejezgrenog CPU-a općenito je identična. Ova homogenost čini planiranje rada na jezgrama jednostavnim. Korištenje istog dizajna koji se ponavlja također pomaže u smanjenju troškova razvoja. Mobilni procesori, međutim, već dugo koriste heterogene jezgrene arhitekture. U ovom dizajnu, postoje dva ili čak tri nivoa CPU jezgre. Svaka razina može pokretati iste procese, međutim, neki su dizajnirani za energetsku učinkovitost, a drugi su podešeni za performanse. Ovo se pokazalo kao recept za uspjeh za uređaje koji se napajaju baterijama jer mnogi zadaci mogu više koristiti sporije energetski učinkovite jezgre, povećavajući trajanje baterije, dok se procesi visokog prioriteta i dalje mogu izvoditi velikom brzinom kada je potrebno.

CPU arhitektura stolnih računala također se kreće u smjeru heterogenog dizajna jezgre. Intelov Alder Lake 12th Generation Core CPU linija je prvi desktop CPU koji to može. U ovom slučaju, glavni pokretački čimbenik manjih jezgri nije nužno energetska učinkovitost, već toplinska učinkovitost, iako su to dvije strane istog novčića. Posjedovanje više moćnih jezgri osigurava visoku izvedbu, dok mnoge učinkovite jezgre mogu rješavati pozadinske zadatke bez previše utjecaja na glavne jezgre.

Zaključak

Višejezgreni CPU je CPU koji ima više procesorskih jezgri u jednom paketu, često, ali ne isključivo na istoj matrici. Višejezgreni procesori ne nude mnogo izravnog poboljšanja performansi mnogim programima, međutim, povećanjem broja jezgri, programi s jednom niti ne moraju se toliko natjecati za CPU vrijeme. Neki programi mogu u potpunosti iskoristiti prednosti više jezgri, izravno koristeći onoliko koliko ih je dostupno. To daje veliko povećanje performansi, iako zbog toplinskih i energetskih ograničenja ovo povećanje nije nužno izravno udvostručenje performansi s udvostručenjem jezgri.