Kaj je večjedrni procesor?

Od sredine devetdesetih let prejšnjega stoletja namizni procesorji ponujajo več jeder CPU v enem paketu. To je večjedrni procesor. Medtem ko so bile zgodnje zasnove omejene na dve ali štiri jedra procesorja, sodobni procesorji ponujajo do 64 fizičnih jeder na enem procesorju. Tako visoko število jeder ni standardno za namizne procesorje in je na splošno rezervirano za vrhunske delovne postaje ali strežnike. Običajno število jeder v sodobnih namiznih procesorjih je med 4 in 16. Toda kaj je z večjedrnimi procesorji, zaradi česar prevladujejo v sodobnih računalnikih?

Eno jedro

Zgodovinsko gledano je bil en jedrni procesor omejen na opravljanje le ene naloge hkrati. To prinaša celo vrsto težav. Na primer, na sodobnem računalniku se izvaja ogromno procesov v ozadju. Če lahko CPE obdeluje samo eno stvar naenkrat, to pomeni, da morajo ti procesi v ozadju vzeti čas obdelave procesu v ospredju. Poleg tega izpadi predpomnilnika pomenijo, da je treba podatke pridobiti iz – sorazmerno – počasnega RAM-a. V času, ko se podatki pridobivajo iz RAM-a, procesor preprosto miruje, saj ne more storiti ničesar, dokler ne dobi podatkov. To zadrži tekoči proces in vse druge procese, ki čakajo na dokončanje.

Medtem ko sodobni enojedrni procesorji zaradi porasta proračunskih večjedrnih procesorjev v resnici niso nekaj, bi lahko uporabili druge sodobne trike, da bi delovali hitreje. Cevovod bi omogočil, da se vsak različni del ravnanja z navodilom uporablja hkrati, zagotavlja znatno povečanje zmogljivosti v primerjavi z uporabo samo ene stopnje cevovoda na uro cikel. V širokem cevovodu bi bilo mogoče obravnavati več navodil v vsaki stopnji cevovoda na takt. Obdelava Out Of Order bi omogočila načrtovanje navodil na časovno učinkovitejši način. Napovedovalec razvejanja bi lahko predvidel izid ukaza razvejanja in vnaprej zagnal domnevni odgovor.

Vsi ti dejavniki bi dobro delovali in zagotovili določeno učinkovitost. Dodajanje enega ali več jeder pa omogoča vse to in v hipu omogoča obdelavo dvakratne količine podatkov naenkrat.

Večjedrni

Dodajanje drugega jedra se zdi, kot da bi moralo podvojiti surovo zmogljivost. Stvari so na žalost bolj zapletene od tega. Programska logika je pogosto enonitna, kar pomeni, da program poskuša narediti samo eno stvar hkrati. Lahko pa se zgodi, da lahko drugi procesi istočasno uporabljajo drugo jedro. Čeprav večini posameznih programov ni lastnega povečanja zmogljivosti, je zagotavljanje dodatnega procesni vir, učinkovito zmanjša konkurenco za omejen vir, ki zagotavlja a povečanje zmogljivosti. To povečanje zmogljivosti, preprosto zaradi zmanjšanja konkurence za čas procesorja, je najbolj opazno pri skoku z enega pri dvojedrnem CPE-ju se zmanjšajo donosi zaradi nadaljnjega povečanja števila jeder, čeprav je na splošno več boljše.

Če želite ustrezno izkoristiti prednosti večjedrnih sistemov in dejansko videti solidno povečanje zmogljivosti, je treba programe programirati za uporabo več procesnih niti. Znano je, da je večnitno logiko težko narediti zanesljivo, saj se je pogosto težko naučiti in obstaja veliko potencialnih pasti. En primer pasti je znan kot stanje dirke. V stanju tekmovanja en proces predpostavlja, da bo drug proces, ki ga zažene, potekal gladko, nato pa poskuša narediti nekaj, kar je odvisno od tega, da je drugi proces potekal gladko. Na primer, predstavljajte si, da proces zažene drug proces, da zapre en dokument in odpre drugega. Če prvotni postopek ne preveri ustrezno, ali je bil drugi postopek zaključen, lahko to povzroči nepričakovane rezultate. Če je na primer prišlo do težave pri zapiranju prvega dokumenta, je morda še vedno odprt, ko prvotni proces vanj samo zapiše več podatkov.

V tem tekmovalnem stanju se vrednost spremenljivke prebere drugič, preden se vanjo zapiše nova vrednost, kar vodi do napačnega splošnega odgovora.

Težave s toploto

Ena največjih težav, s katerimi se na koncu spopadajo večjedrni procesorji, je toplota. Medtem ko eno jedro procesorja ne oddaja toliko toplote, dve oddajata več. V procesorjih z velikim številom jeder lahko ta koncentracija toplote povzroči nižjo pospešeno uro, saj CPE upravlja svojo temperaturo. Nižja pospeševalna ura bo povzročila nižjo zmogljivost v enonitnih aplikacijah. To je pogosto mogoče opaziti v merilih uspešnosti igranja. Video igre so pogosto zelo odvisne od ene niti. Kot taka je enonitna zmogljivost pogosto kritična za igranje iger. CPE z visokim številom jeder, kot so 16-jedrni modeli, so pogosto iz visoko zmogljivih zabojnikov. Kljub temu se lahko redno ugotovi, da jih prekašajo »manjši« procesorji z nižjim številom jeder v enonitnih merilih uspešnosti. Ta težava je še bolj očitna pri procesorjih z izjemno velikim številom jeder, kot je 64-jedrni AMD Threadripper, kjer je takt opazno nižji kot pri vrhunskih namiznih procesorjih.

Uspehi

Številne aplikacije lahko pravilno uporabljajo več jeder procesorja. Na primer, CPE upodabljanje je razmeroma enostavna naloga za paralelizacijo. Izboljšave zmogljivosti je mogoče opaziti vse do 64 jeder in več, čeprav trenutno noben CPU ne ponuja več kot 64 jeder. Številnih aplikacij preprosto ni mogoče večnitnih, saj so odvisne od zaporedne logike. Čeprav ti ne vidijo niti približno hitrosti večnitnega programa, je dejstvo, da večnitni programi in drugi enonitni programi lahko uporabljajo druga jedra CPE, sprosti procesorski čas, kar omogoča boljše izvedba.

Arhitekturne možnosti

V namiznih procesorjih je bilo vsako jedro procesorja znotraj večjedrnega procesorja na splošno enako. Zaradi te homogenosti je načrtovanje dela na jedrih preprosto. Uporaba istega ponavljajočega se dizajna prav tako pomaga znižati stroške razvoja. Mobilni procesorji pa že dolgo uporabljajo heterogene jedrne arhitekture. V tej zasnovi sta dve ali celo tri ravni CPE jedra. Vsaka raven lahko izvaja enake procese, vendar so nekateri zasnovani za energetsko učinkovitost, drugi pa so prilagojeni za zmogljivost. To se je izkazalo kot recept za uspeh pri napravah, ki se napajajo iz baterij, saj lahko veliko opravil bolj uporablja počasnejše energijsko učinkovita jedra, kar podaljšuje življenjsko dobo baterije, medtem ko se procesi z visoko prioriteto še vedno lahko izvajajo pri visoki hitrosti ko je potrebno.

Tudi arhitektura procesorjev namiznih računalnikov se premika v smeri heterogene zasnove jedra. Intelov Alder Lake 12th Generation Linija Core CPU je prvi namizni CPE, ki to omogoča. V tem primeru glavni dejavnik manjših jeder ni nujno energetska učinkovitost, temveč toplotna učinkovitost, čeprav sta to dve plati istega kovanca. Več zmogljivih jeder zagotavlja visoko zmogljivost, medtem ko lahko veliko učinkovitih jeder opravi opravila v ozadju, ne da bi preveč vplivala na glavna jedra.

Zaključek

Večjedrni CPE je CPE, ki ima več procesorskih jeder v enem samem paketu, pogosto, čeprav ne izključno na isti matrici. Večjedrni procesorji ne ponujajo veliko neposrednega povečanja zmogljivosti za številne programe, vendar s povečanjem števila jeder programom z eno nitjo ni treba toliko tekmovati za čas procesorja. Nekateri programi lahko v celoti izkoristijo več jeder in neposredno uporabijo toliko, kolikor jih je na voljo. To zagotavlja veliko povečanje zmogljivosti, čeprav zaradi toplotnih in močnostnih omejitev to povečanje ni nujno ravno podvojitev zmogljivosti s podvojitvijo jeder.