Alates 20. aastate keskpaigast on lauaarvuti CPU-d pakkunud mitut protsessorituuma ühes paketis. See on mitmetuumaline protsessor. Kui varased kujundused piirdusid kahe või nelja protsessorituumaga, pakuvad tänapäevased protsessorid kuni 64 füüsilist tuuma ühel protsessoril. Kõrged põhiarvud ei ole lauaarvuti CPU-de jaoks standardsed ja need on tavaliselt reserveeritud tipptasemel tööjaamadele või serveritele. Tüüpiline tuumade arv kaasaegsetes lauaarvutite protsessorites on vahemikus 4 kuni 16. Aga mis on mitmetuumaliste protsessoritega, mis muudavad need kaasaegsetes arvutites domineerivaks?
Ühetuumaline
Ajalooliselt piirdus ühetuumaline protsessor ainult ühe ülesande korraga täitmisega. Sellega kaasneb terve rida probleeme. Näiteks kaasaegses arvutis töötab tohutul hulgal taustaprotsesse. Kui protsessor saab korraga töödelda ainult ühte asja, tähendab see, et need taustprotsessid peavad töötlemisaja esiplaani protsessist eemale võtma. Lisaks tähendab vahemälu puudujääk, et andmed tuleb hankida suhteliselt aeglasest RAM-ist. Ajal, mil andmeid RAM-ist hangitakse, on protsessor lihtsalt jõude, kuna ei saa enne andmete hankimist midagi teha. See hoiab tööprotsessi ja ka muid protsesse, mis ootavad selle lõpuleviimist.
Kuigi moodsad ühetuumalised protsessorid pole tänu eelarveliste mitmetuumaliste protsessorite kasvule tegelikult asjaks, saaksid nad kiiremini töötamiseks kasutada muid kaasaegseid nippe. Torujuhe võimaldaks juhendi käsitlemise iga erinevat osa samaaegselt kasutada, pakkudes märkimisväärset jõudlust, kui kasutada ainult ühte konveieri etappi kella kohta tsükkel. Lai konveier näeb ette, et igas konveieri etapis saab ühe kellatsükli jooksul töödelda mitut käsku. Tellimusest väljas töötlemine võimaldaks juhiseid ajasäästlikumalt ajastada. Haru ennustaja suudab ennustada hargnemisjuhise tulemust ja käivitada ennetavalt eeldatava vastuse.
Kõik need tegurid toimiksid hästi ja tagaksid teatud jõudluse. Ühe või mitme südamiku lisamine võimaldab aga seda kõike ja ühe hooga võimaldab töödelda kaks korda rohkem andmeid korraga.
Mitmetuumaline
Teise tuuma lisamine tundub, et see peaks kahekordistama töötlemata jõudluse. Asjad on kahjuks keerulisemad. Programmiloogika on sageli ühelõimeline, mis tähendab, et programm üritab korraga teha ainult ühte asja. Mis aga võib juhtuda, on see, et teised protsessid saavad samaaegselt kasutada teist tuuma. Kuigi enamikule üksikutele programmidele pole loomuomane jõudluse tõuge, on see lisavõimalus töötlemisressurssi, vähendab tõhusalt konkurentsi piiratud ressursi pärast, mis annab a jõudluse suurendamine. See jõudluse suurendamine, mis tuleneb lihtsalt konkurentsi vähendamisest CPU aja pärast, on kõige märgatavam singlilt hüppamisel kahetuumalise protsessori puhul väheneb tulu tuumade arvu edasisest suurendamisest, kuigi üldiselt on rohkem parem.
Mitmetuumaliste süsteemide õigeks ärakasutamiseks ja jõudluse märkimisväärseks suurendamiseks tuleb programmid programmeerida kasutama mitut töötlemislõimi. Mitmelõimelist loogikat on kurikuulsalt raske usaldusväärselt teostada, kuna seda on sageli raske õppida ja seal on palju võimalikke lõkse. Üks lõksu näide on tuntud kui võistlustingimus. Võistlusseisundis eeldab üks protsess, et teine protsess, mille ta käivitas, kulgeb sujuvalt, seejärel proovib see teha midagi, mis tugineb selle teise protsessi sujuvale kulgemisele. Näiteks kujutage ette, et protsess käivitab teise protsessi ühe dokumendi sulgemiseks ja teise avamiseks. Kui algne protsess ei kontrolli korralikult, kas teine protsess on lõpule viidud, võib see põhjustada ootamatuid tulemusi. Kui näiteks esimese dokumendi sulgemisel tekkis probleem, võib see olla endiselt avatud, kui algne protsess kirjutab sellele lihtsalt rohkem andmeid.
Termilised probleemid
Üks suurimaid probleeme, millega mitmetuumalised protsessorid lõpuks hädas on, on kuumus. Kuigi üks protsessori tuum ei eralda nii palju soojust, eraldavad kaks rohkem. Suure tuumaarvuga protsessorites võib see soojuskontsentratsioon põhjustada madalamat võimendustakti, kuna protsessor haldab oma temperatuuri. Madalam võimenduskell põhjustab ühe keermega rakendustes madalama jõudluse. Seda võib sageli näha mängude jõudluse võrdlusnäitajates. Videomängud sõltuvad sageli väga ühest lõimest. Sellisena on ühe keermega jõudlus mängimise jaoks sageli kriitilise tähtsusega. Suure tuumaarvuga protsessorid, nagu 16-tuumalised mudelid, pärinevad sageli suure jõudlusega pesadest. Sellele vaatamata võib ühe keermega võrdlusaluste puhul regulaarselt leida, et neid edestavad väiksema tuumade arvuga väiksemad CPU-d. See probleem on veelgi ilmsem ülikõrge tuumaarvuga protsessorites, nagu 64-tuumaline AMD Threadripper, mille taktsagedus on märgatavalt madalam kui tipptasemel lauaarvuti protsessoritel.
Edu
Paljud rakendused suudavad mitut protsessori tuuma õigesti kasutada. Näiteks protsessori renderdamist on suhteliselt lihtne paralleelida. Jõudluse paranemist võib näha kuni 64 tuumani ja rohkem, kuigi praegu ei paku ükski protsessor rohkem kui 64 tuuma. Paljusid rakendusi ei saa lihtsalt mitme lõimega ühendada, kuna need sõltuvad järjestikusest loogikast. Kuigi need ei näe ligilähedalegi mitmelõimega programmide kiirendamisele, on tõsiasi, et mitmelõimega programmid ja teised ühe lõimega programmid saavad kasutada teisi protsessori tuumasid, vabastab protsessori aega, võimaldades paremat esitus.
Arhitektuursed võimalused
Lauaarvutite protsessorites on mitmetuumalise CPU iga CPU tuum olnud üldiselt identne. See homogeensus muudab tuumade töö ajastamise lihtsaks. Sama korduva disaini kasutamine aitab ka arenduskulusid madalal hoida. Mobiilprotsessorid on aga pikka aega kasutanud heterogeenseid põhiarhitektuure. Selles disainis on kaks või isegi kolm protsessori tuuma taset. Iga tasand saab käitada samu protsesse, kuid mõned neist on mõeldud energiatõhususe tagamiseks ja teised on häälestatud jõudluse jaoks. See on osutunud akutoitel seadmete edu retseptiks, kuna paljud toimingud võivad aeglasemat rohkem kasutada energiasäästlikud tuumad, mis pikendavad aku kasutusaega, samas kui kõrge prioriteediga protsesse saab siiski käivitada suurel kiirusel kui vaja.
Lauaarvuti CPU arhitektuur liigub samuti heterogeense tuumdisaini suunas. Inteli Alder Lake 12th põlvkonna Core CPU line on esimene lauaarvuti CPU, mis seda teeb. Sel juhul ei ole väiksemate südamike peamiseks tõukejõuks tingimata energiatõhusus, vaid soojustõhusus, kuigi need on sama mündi kaks külge. Mitme võimsa tuuma omamine tagab suure jõudluse, samas kui paljud tõhusad tuumad saavad hakkama taustaülesannetega, ilma et see põhituumi liiga palju mõjutaks.
Järeldus
Mitmetuumaline protsessor on protsessor, millel on ühes paketis mitu töötlustuuma, sageli, kuid mitte ainult samal stantsil. Mitmetuumalised protsessorid ei paku paljudele programmidele suurt jõudlust, kuid tuumade arvu suurendamise tõttu ei pea ühe keermega programmid protsessori aja pärast nii palju konkureerima. Mõned programmid saavad mitut südamikku täielikult ära kasutada, kasutades otse ära nii palju kui saadaval on. See suurendab jõudlust, kuigi soojus- ja võimsuspiirangute tõttu ei pruugi see jõudluse otsene kahekordistumine koos tuumade kahekordistamisega olla.