- Višejezgreni procesori integriraju nekoliko kompletnih jezgara unutar jednog čipa, dijeleći dio strujnih kola kako bi poboljšali troškove, potrošnju energije i performanse.
- Višeprocesorski sistem montira nekoliko fizičkih CPU-a na matičnu ploču, postižući slične efekte na nivou niti, ali uz veću složenost i veće troškove.
- Da biste zaista iskoristili prednosti više jezgara, potrebni su vam paralelni operativni sistemi i aplikacije, kao i tehnologije poput HyperThreadinga ili SMT-a kako biste izvukli maksimum iz svake jezgre.
- Potrošnja energije, rasipanje toplote i miniaturizacija tranzistora oblikuju evoluciju CPU-a, GPU-a i specijalizovanih čipova za vještačku inteligenciju i druge intenzivne upotrebe.
Ako danas otvorite gotovo bilo koji desktop računar, laptop ili čak pametni telefon, pronaći ćete višejezgreni procesor dizajniran za paralelni rad . Iako s ovom tehnologijom živimo već dugi niz godina, još uvijek postoji znatna zbrka oko toga šta znači imati više jezgara, kako se one razlikuju od posjedovanja više fizičkih procesora i kako se sve to uklapa s konceptima poput HyperThreadinga, SMT-a ili GPU-a.
Da bismo razjasnili svu ovu zbrku, hajde da smireno, ali direktno, pregledamo arhitekturu višejezgrenog CPU-a , ulogu svake komponente i kako je operativni sistem i softver koriste . Također ćemo ispitati stvarnu razliku između višejezgrenih i višeprocesorskih sistema, razgovarati o potrošnji energije i rasipanju topline, te zaključiti s osvrtom na ulogu GPU-a i čipova specijaliziranih za zadatke poput umjetne inteligencije i uređivanja videa.
Osnovna funkcija CPU-a u računaru
Procesor, poznati CPU ili Centralna procesorska jedinica , je elektronsko kolo koje interpretira i izvršava programske instrukcije . Izgrađen je od miliona ili milijardi tranzistora, organiziranih u logička vrata i interne puteve kroz koje cirkuliraju električni signali koji predstavljaju podatke i naredbe.
Upravo taj CPU omogućava računaru da od gomile čipova i žica postane mašina sposobna da transformiše električne signale u podatkovne operacije i, u mnogim slučajevima, u fizičke radnje u stvarnom svijetu . Bez procesora, PC, igraća konzola, mobilni telefon ili čak "pametni" uređaj bili bi tek nešto više od skupog ukrasa.
Kada pokrećete uredsku aplikaciju, kompajlirate kod, renderirate video ili jednostavno pretražujete internet, vaš CPU stalno čita instrukcije, premješta podatke između memorije, registara i perifernih uređaja te koordinira rad ostatka sistema . Ova orkestracija operacija mjeri se u hercima (Hz), što pokazuje koliko taktnih ciklusa u sekundi procesor može završiti.
Godinama se industrija prvenstveno fokusirala na frekvenciju: utrka za dostizanje i prevazilaženje gigaherca dovela je do arhitektura poput Intelovog NetBursta, dizajniranog za skaliranje u GHz . Ali kasnije su naišli na prepreku: svako povećanje frekvencije dovodilo je potrošnju energije i temperaturu do nivoa koje je teško kontrolisati konvencionalnim hladnjacima.
Šta je tačno procesorsko jezgro?
Unutar kućišta modernog CPU-a ne nalazi se jedna monolitna računarska jedinica, već nekoliko ponovljenih blokova: svaka jezgra je u suštini kompletan CPU integriran unutar istog čipa . Kombinacija svih ovih jezgara, njihovih keš memorija i internih magistrala je ono što obično nazivamo arhitekturom procesora.
Na tržištu potrošačkih PC računara, dominantna arhitektura je x86 i njena 64-bitna proširenja. Ova arhitektura definira skup instrukcija, registre, načine adresiranja i ukupno ponašanje jezgara . Procesori sa 2, 4, 8, 16 ili više jezgara izgrađeni su na njoj, a svi su sposobni izvršavati isti tip mašinskog koda.
Ako pogledamo detalje, vidjet ćemo da se svaka jezgra sastoji od nekoliko ključnih blokova koji rade zajedno kako bi brzo i uredno izvršavali instrukcije . Iako se specifične implementacije razlikuju ovisno o proizvođaču i generaciji, osnovni elementi su vrlo slični.
Tipična jezgra uključuje, između ostalog, sljedeće komponente:
- Upravljačka jedinica (UC): je zadužen/a za usmjerava tok instrukcija i sinhronizovano koordinira rad kernela i njegovu komunikaciju s memorijom i perifernim uređajimaGenerira kontrolne signale koji pokazuju šta treba čitati, pisati ili dekodirati u svakom ciklusu.
- Aritmetičko-logička jedinica (ALU): je dio koji Izvršava aritmetičke operacije (sabiranje, oduzimanje, pomjeranje) i logičke operacije (I, ILI, XOR, poređenje) na podacima koje prima.Obično postoji nekoliko ALU-ova za paralelizaciju mikrooperacija.
- ZapisiTo su male ćelije ultrabrze memorije gdje se privremeno pohranjuju podaci, adrese i međurezultati instrukcija koje se izvršavajuOni djeluju kao neposredna "radna grupa" jezgra.
Oko ovih elemenata nalaze se i keš memorije različitih nivoa (L1, L2, ponekad i dijeljeni L3), redovi instrukcija, logika predviđanja grananja i jedinice specijalizirane za operacije s pomičnim zarezom ili vektorske operacije . Sve se ovo kombinira kako bi se obradio kontinuirani tok instrukcija s najvećom mogućom efikasnošću.
Zašto smo prešli sa povećanja GHz na dodavanje više jezgara?
U ranim danima personalnih računara, najjednostavniji način za povećanje snage bio je povećanje brzine takta: što je više ciklusa takta u sekundi, to se više instrukcija moglo izvršiti, pod uslovom da je arhitektura to dozvoljavala . Postizanje prvog procesora od 1 GHz bila je važna prekretnica i za servere i za kućne računare.
Prvi komercijalni čip koji je dostigao gigaherc bio je DEC Alpha početkom 90-ih, procesor dizajniran za radne stanice i servere . Na kućnom tržištu, oko 1999. godine, Intel sa svojim Pentium III i AMD sa svojim Athlonom također su dostigli GHz barijeru, te se marketing neko vrijeme fokusirao na "što više GHz, to bolje".
Međutim, nakon određene tačke, proizvođači su otkrili da daljnje povećanje frekvencije dramatično povećava stvaranje toplote i potrošnju energije . Jezgro je trpjelo ogromna termička naprezanja, a potrebni sistemi hlađenja postali su nepraktični za prosječnog korisnika.
U tom kontekstu, pojavila se promjena strategije: ako je skaliranje u MHz i GHz postajalo sve manje održivo, logična alternativa bila je uvođenje više jezgara sposobnih za simultani rad na različitim zadacima . Umjesto jedne jezgre na 10 GHz, industrija je preusmjerila fokus na ponudu dvije, četiri, osam ili više jezgara koje rade na nižim frekvencijama.
Ideja je relativno jednostavna: ako je jedna jezgra sposobna obraditi određeni broj instrukcija po jedinici vremena, više jezgara može raspodijeliti radno opterećenje i povećati ukupne performanse, posebno ako je softver dizajniran za paralelni rad . To je osnova moderne višejezgrene arhitekture.
Prvi višejezgreni procesori i njihova evolucija
Iako su kućni korisnici počeli čuti za dvojezgrene procesore negdje sredinom 2000-ih, prvi višejezgreni procesori su se već koristili u serverskim okruženjima i velikim sistemima . Kao što je često slučaj, tehnologija je prvo došla iz korporativnog svijeta.
Jedna od prvih prekretnica bio je IBM POWER4, koji se smatra prvim komercijalnim procesorom s dvije jezgre integrirane na jednom čipu . Pojavio se oko 2000-2001. godine s frekvencijama od oko 1,1 GHz i bio je namijenjen vrhunskim serverima.
Na potrošačkom tržištu, skok se dogodio nešto kasnije. Intel je 2005. godine lansirao Pentium Extreme Edition 840, dvojezgreni desktop procesor koji je također uključivao HyperThreading , omogućavajući operativnom sistemu da vidi četiri logička procesora. Ubrzo nakon toga, AMD je odgovorio sa Athlonom X2.
U međuvremenu, istražen je još jedan put: višeprocesorski sistemi, u kojima matična ploča sadrži dva ili više kompletnih fizičkih CPU-a . Ova opcija je nudila visoke performanse, ali po cijenu složenosti, potrošnje energije i cijene, tako da je ostala prvenstveno namijenjena serverima i visokoperformansnim radnim stanicama.
Vremenom, zahvaljujući minijaturizaciji tranzistora, postalo je moguće integrirati sve više jezgara na jedno integrirano kolo, smanjujući veličinu i potrošnju energije po jedinici performansi . Proizvodni procesi od oko 7 nm ili čak i manji omogućili su uvođenje pravih čudovišta sa do 32 ili 64 jezgre na profesionalno tržište.
Višejezgreni naspram višeprocesorskog: jesu li isti?
Na konceptualnom nivou, višejezgreni sistem i višeprocesorski sistem su veoma slični: u oba slučaja postoji nekoliko "računarskih mozgova" sposobnih za istovremeno izvršavanje niti . Zato mnoga objašnjenja (poput onog od Superusera koje ste spomenuli) sažimaju razliku kao prvenstveno fizičku i ekonomsku.
U klasičnom višeprocesorskom sistemu, imate nekoliko fizičkih CPU-a instaliranih u različitim socketima na matičnoj ploči, svaki sa svojim jezgrama, keš memorijom i kontrolerom . Međutim, u modernom višejezgrenom čipu, sve te jezgre se nalaze unutar istog kućišta i dijele neke od sklopova, kao što su određene keš memorije ili pristup memoriji.
Šta ovo znači u praksi? To znači da je višejezgreni sistem obično efikasniji u smislu troškova, prostora i potrošnje energije nego korištenje nekoliko odvojenih fizičkih procesora za postizanje sličnog broja jezgara . Logika koherencije keša i interne magistrale su mnogo više integrirane i optimizirane.
Međutim, iz perspektive operativnog sistema i većine aplikacija, kernel je jednostavno izvršna jedinica sposobna za izvršavanje niti, bez obzira da li se nalazi na istom čipu kao i drugi kerneli ili na zasebnom CPU-u . Zato mnogi opisi pojednostavljuju i kažu da višejezgreni i višeprocesorski sistemi "rade istu stvar".
Uporedne tabele na nekim web stranicama (poput onih na koje ste dali link sa GeeksforGeeksa ili Javatpointa) ponekad preuveličavaju razlike, čak idući toliko daleko da tvrde stvari poput "višejezgreni sistem je dobar samo za pokretanje jednog brzog programa, a višeprocesorski sistemi su neophodni za više programa ", što nije tačno. Oba tipa sistema mogu pokretati više procesa i više niti; prava razlika leži u načinu na koji je obrađena fizička implementacija i u nijansama koherentnosti memorije, latencije i skalabilnosti.
Šta je potrebno da bi se zaista iskoristile prednosti višestrukih jezgara?
Stavljanje mnogo jezgara na silicijum je samo pola priče. Da bi se iz njih izvuklo maksimum, operativni sistem i, prije svega, aplikacije moraju biti dizajnirani tako da paralelizuju svoje opterećenje na više niti . Neko vrijeme, ovo je bila prava prepreka u prelasku na višejezgrene procesore.
Moderni operativni sistemi (Windows, Linux, macOS, itd.) su u potpunosti multiprocesni i sposobni za distribuciju procesa i niti među različitim dostupnim fizičkim i logičkim jezgrama . Raspoređivač je odgovoran za odlučivanje koja nit će se izvršavati na kojoj jezgri i koliko dugo.
Historijski problem nije bio toliko operativni sistem koliko korisnički softver. Mnogi stariji programi su napisani imajući na umu jednu nit izvršavanja, tako da čak i ako je računar imao 4 ili 8 jezgara, ta određena aplikacija bi zasitila samo jednu . U tim slučajevima, dodavanje više jezgara jedva je poboljšalo performanse tog specifičnog zadatka.
Vremenom, vođeni nuždom (video montaža, 3D dizajn, simulacije, serveri baza podataka itd.), programeri su počeli dizajnirati aplikacije sa istinskom višejezgrenom podrškom, dijeleći rad na niti koje mogu da se izvršavaju paralelno . Upravo u tom kontekstu koncepti niti procesa, podprocesa ili niti postaju istaknuti.
Danas se profesionalni programi za dizajn, renderiranje, montažu videa ili CAD obično vrlo dobro skaliraju s brojem jezgara i niti , dok su mnoge videoigre i dalje ograničenije jednom ili nekoliko teških niti (iako je također došlo do značajnog napretka u paralelizmu u igrama).
HyperThreading, SMT i logičke niti
Pored povećanja broja fizičkih jezgara, proizvođači su predstavili još jednu zanimljivu ideju: omogućavanje svakoj fizičkoj jezgri da istovremeno obrađuje više od jedne niti putem simultanog višenitnog rada . Kod Intela je ovo postalo poznato kao HyperThreading; kod AMD-a se obično naziva SMT (Simultaneous Multi-Threading - simultano višenitno radanje).
Osnova ove tehnike je da unutar kernela postoji mnogo izvršnih jedinica koje nisu uvijek 100% zauzete . Ako upravljate samo jednom niti, postoje trenuci kada kernel čeka podatke iz memorije ili rezultate iz drugog internog bloka, trošeći potencijal.
Simultani višenitni rad omogućava dvije (ili više) logičke niti da dijele istu fizičku jezgru i njene interne resurse, popunjavajući praznine u izvršnom toku . Operativnom sistemu se čini kao da je dostupno više "procesora", ali u stvarnosti, ono što je urađeno jeste da se bolje iskoristi postojeći hardver.
Na primjer, četverojezgreni procesor s omogućenim HyperThreadingom sistem će vidjeti kao osam logičkih procesora, što je korisno u scenarijima s mnogo laganih zadataka ili značajnim čekanjem memorije . Intel nudi ovu tehnologiju u mnogim svojim Core i Xeon linijama proizvoda, dok je AMD koristi u Ryzen i EPYC procesorima pod SMT okriljem.
Važno: Logička nit ne nudi iste performanse kao dodatna fizička jezgra, ali pruža primjetno poboljšanje pod određenim vrstama opterećenja . Zbog toga se prilikom korištenja Windows Task Managera ili drugih alata za praćenje koristi termin "prava jezgra" naspram "logičkih procesora".
Kako saznati koliko jezgara i niti ima vaš CPU
Na Windows sistemima, ako otvorite Upravitelj zadataka i odete na karticu Performanse, vidjet ćete poseban odjeljak za CPU . Tamo ćete pronaći informacije o broju fizičkih jezgara i broju dostupnih logičkih procesora (niti).
Važno je napomenuti da neki sistemski uslužni programi ili klasični alati ne razlikuju uvijek fizičke jezgre od logičkih niti i mogu ih jednostavno nazivati "procesorima ". Zato se procesor sa 6 jezgara i omogućenim SMT-om često pojavljuje kao 12 "CPU-ova" u određenim popisima.
U drugim operativnim sistemima situacija je slična: Linux nudi komande poput lscpu ili cat /proc/cpuinfo za pregled fizičkih jezgara i niti , a u macOS-u možete provjeriti sistemske informacije ili koristiti alate komandne linije.
Ova razlika između jezgara i niti je relevantna kada razumijete šta kupujete ili šta možete očekivati od svog računara: procesor sa 4 jezgre i 8 niti nije isti kao onaj sa 8 jezgara i 8 niti, čak i ako se oba reklamiraju kao "8 niti ". Potonji će uglavnom imati više sirove snage za visoko paralelna opterećenja.
Grafički procesori, mikroprocesori i druge povezane komponente
Iako se kada razmišljamo o višejezgrenoj arhitekturi obično fokusiramo na CPU, postoje i drugi specijalizirani procesori koji također rade s desetinama ili hiljadama jezgara kako bi ubrzali određene zadatke . Najpoznatiji primjer je GPU.
Grafička procesorska jedinica (GPU) je vrsta procesora dizajniranog za paralelno izvršavanje velikog broja jednostavnih operacija . Prvobitno je razvijena za ubrzavanje renderiranja grafike na računarima, konzolama i mobilnim uređajima, ali danas se široko koristi u vještačkoj inteligenciji, rudarenju kriptovaluta i naučnom računarstvu.
Poput CPU-a, GPU se sastoji od tranzistora i logičkih blokova, ali njegova unutrašnja arhitektura je optimizovana za masivni paralelizam, sa mnogo malih jezgara organizovanih u grupe sposobne za vrlo konzistentnu obradu velikih količina podataka . Zato se ističu u grafici i neuronskim mrežama.
U području tradicionalnih CPU-a, miniaturizacija je dovela do mikroprocesora: kompletnih CPU-a integriranih na jedan integrirani krug, s jednom ili više fizičkih jezgara . Danas su gotovo svi potrošački CPU-i višejezgreni mikroprocesori.
U ovom mikroprocesoru, svaka fizička jezgra se oslanja na ekosistem keš memorije, internih magistrala, memorije i ulazno/izlaznih kontrolera, a sve to smješteno u vrlo malom prostoru . To omogućava sastavljanje vrlo moćnih sistema na kompaktnim matičnim pločama, što je ključno za laptope, mini PC računare i ugrađene uređaje.
Potrošnja energije, toplota i dizajn podatkovnog centra
Potrošnja energije je jedan od faktora koji najviše utiču na evoluciju višejezgrenih CPU-a. Što više jezgri dodamo i što je veća brzina takta, više energije se rasipa kao toplina . Ova toplina se mora fizički ukloniti s čipa kako bi se spriječilo njegovo uništenje.
Kod kućnog računara, ovo znači veće hladnjake, snažnije ventilatore ili čak sisteme tečnog hlađenja . U podatkovnom centru, gdje hiljade servera rade punim kapacitetom, jednačina postaje kritična: troškovi hlađenja mogu biti ogromni.
Stoga, veliki pružatelji usluga u oblaku i hiperskalirani podatkovni centri dizajniraju infrastrukture s pažljivo planiranom kontrolom klime, toplim i hladnim prolazima, a u nekim slučajevima i direktnim tekućim hlađenjem komponenti . U konačnici, svaki ušteđeni vat po procesoru se množi na hiljade mašina.
Kod kuće, održivost također dolazi do izražaja: vrlo moćan računar može trošiti mnogo energije ako je stalno pod velikim opterećenjem . To je prihvatljivo za povremene zahtjevne zadatke, ali nema mnogo smisla ako ćete samo pretraživati internet, gledati videozapise i obavljati osnovne kancelarijske poslove.
Zato se proizvođači sve više fokusiraju na efikasnost: hibridne arhitekture s visokoperformansnim i visokoefikasnim jezgrama, dinamičko skaliranje frekvencije i napona te režimi dubokog mirovanja pomažu u smanjenju potrošnje energije kada nije potrebna puna snaga.
Specijalizovani čipovi i uloga veštačke inteligencije
Nedavna eksplozija umjetne inteligencije dovela je do pojave procesora i akceleratora posebno dizajniranih za mašinsko učenje i neuronske mreže . Ovdje više ne govorimo samo o CPU-ima i GPU-ima, već i o jedinicama poput Tensor Processing Units (TPU) ili Tensor Streaming Processors (TSP).
Ovi čipovi se fokusiraju na pružanje izuzetnih performansi u matričnim i vektorskim operacijama, tipičnim za obuku i zaključivanje AI modela . Obično uključuju stotine ili hiljade jednostavnih, ali visoko organizovanih računarskih jedinica kako bi se maksimizirao paralelizam podataka.
U području CPU-a opće namjene, postoje i modeli posebno dizajnirani za ova opterećenja. Na primjer, procesori s desetinama jezgara, kao što su određeni AMD Threadripper procesori ili vrhunski Intel Core i Intel Xeon modeli, visoko su cijenjeni za uređivanje videa, renderiranje i mješovite zadatke umjetne inteligencije i kreativnosti.
U zavisnosti od toga kako namjeravate koristiti računar, ima smisla dati prioritet određenim funkcijama u odnosu na druge: za profesionalno uređivanje videa, trebat će vam mnogo CPU jezgri i dobra GPU; za igranje igara, latencija i performanse po jezgri su veoma važne; a za opšte zadatke, gotovo svaki moderni CPU srednje klase će biti dovoljan.
Sve ovo koegzistira sa stalnim napretkom u gustoći tranzistora: svaka nova generacija proizvodnog procesa omogućava da se više logike smjesti u isti prostor ili da se smanji potrošnja energije uz slične performanse . To objašnjava zašto vidimo nedavne CPU-e koji daleko nadmašuju modele od prije samo nekoliko godina, kako po performansama tako i po efikasnosti.
Tranzistori: osnova cijele ove arhitekture
Ispod sveg žargona jezgara, niti, keš memorije i grafičkih procesora krije se skromna, ali fundamentalna komponenta: tranzistor, taj sićušni poluprovodnički uređaj koji kontrolira protok struje u kolu . Njegovo ime dolazi od "transfer resistor" (otpornik za prijenos).
U računarstvu, tranzistori se koriste za izgradnju logičkih vrata, registara, memorija i svih vrsta digitalnih blokova. Oni su odgovorni za fizičku implementaciju binarnog jezika 0 i 1 koji računari koriste za predstavljanje informacija i Booleove logike.
Evolucija moderne elektronike može se sažeti kao utrka za smještaj sve većeg broja tranzistora u manje prostora, uz istovremeno smanjenje potrošnje energije po tranzistoru . To je suština uzastopnih generacija proizvodnih procesa: od mikrometara (µm) do nanometara (nm) i veličina se nastavlja smanjivati.
U modernom višejezgrenom CPU-u, milijarde ovih sićušnih elektronskih prekidača rade punom brzinom. Njihova pouzdanost, veličina i efikasnost u konačnici određuju performanse i ograničenja bilo koje procesorske arhitekture.
Ako o tome razmislimo iz perspektive, sva magija pokretanja više niti, koordinacije više jezgara, dijeljenja keš memorije ili premještanja podataka između CPU-a, GPU-a i specijaliziranih akceleratora nije ništa više od gigantske koreografije tranzistora koji se uključuju i isključuju prateći vrlo dobro definirane obrasce.
Uzimajući u obzir sve navedeno, možemo dobiti mnogo jasniju predstavu o tome šta se zaista krije iza "višejezgrenog procesora" izvan samog broja jezgara. Broj jezgara i njihova frekvencija su važni, da, ali važni su i interna arhitektura, podrška za tehnologije poput HyperThreadinga ili SMT-a, energetska efikasnost, dizajn softvera koji ih koristi i kako rade s drugim procesorima poput GPU-a . Razumijevanje ovih komponenti omogućava vam da efikasnije odaberete svoj hardver i, prije svega, da stavite u kontekst šta te specifikacije koje vidite u tehničkim listovima zaista znače.