Mitme tuumaga protsessor on arvutiprotsessor, millel on kaks või enam sektsiooni ehk tuuma. Kiibi iga sektsioon täidab käske nii, nagu oleks tegemist eraldi arvutiga — praktilises plaanis tähendab see, et sama kiip suudab samal ajal töödelda mitut ülesannet paralleelselt. Tegelikud protsessorid on endiselt ühel kiibil ja sellel kiibil näeb iga tuum enamasti välja nagu eraldi mikroprotsessor. Need on mitu enamasti sõltumatut tuuma, mis töötavad paralleelselt koos. Kahe tuumaga protsessor on mitme tuumaga protsessor, millel on kaks sõltumatut mikroprotsessorit. Neljatuumaline protsessor on samamoodi mitme tuumaga protsessor, millel on neli sõltumatut mikroprotsessorit. Protsessori nimi (nt kahe-, nelja- või kaheksa-tuumaline) põhinebki kiibil oleva mikroprotsessorite arvu pool.
Kuidas mitmetuumaline protsessor töötab?
Iga tuum sisaldab tavaliselt oma aritmeetika-loogikaühikut (ALU), juhtloogikat ja mõnikord ka eraldi vahemälu (L1, L2). Mitme tuuma puhul võivad tuumad jagada suuremat taseme vahemälu (nt L3) ning ühiseid süsteemibusse ja mäluühendusi. Operatsioonisüsteemi tööjaotus (scheduling) määrab, millised protsessid või lõimed (threads) saadetakse millisele tuumale, et saavutada paralleelne töötlus.
Eelised
- Suurem jõudlus paralleelsete ülesannete korral: mitmetuumaline kiip parandab jõudlust, kui tarkvara suudab töid paralleelselt käivitada (nt mitme veebilehe samaaegne teenindamine, videomonteerimine, multitegumtöötlus).
- Tõhusam energiatõhusus: mitu tuuma võivad saavutada sama läbitöötluse väiksemate taktsageduste juures võrreldes ühe väga kiire tuumaga, vähendades kuumenemist ja voolutarvet.
- Suurem töökindlus ja paindlikkus: kui üks tuum koormuse alla läheb, saavad muud tuumad endiselt tööd jätkata.
Piirangud ja tähelepanekud
- Paralleelsuse piirid: kõik tarkvara ei ole automaatselt paralleelne. Mõned algoritmid ja programmid ei saa kasu mitmest tuumast ilma spetsiaalse paralleelse programmeerimise või mitmelõimelisuse toe olemasoluta.
- Kommunikatsioonikulud: tuumade vahel andmete jagamine (nt ühine vahemälu või põhimälu) lisab sünkroniseerimise ja latentsuse kulusid, mis võivad piirata lineaarset jõudluse kasvu tuumade arvu kasvades.
- Kuumenemine ja jahutus: rohkem tuumasid võib suurendada soojuseralduse vajadust, mis nõuab paremat jahutust või madalamat taktsagedust suure koormuse korral.
Tuumad vs lõimed (cores vs threads)
Tuum (core) on füüsiline töötlemisseade kiibil. Lõim (thread) on programmiline tööühik, mida operatsioonisüsteem ajastab tuumadele. Mõned protsessorid toetavad mitmelõimelisust (hyper-threading), kus iga füüsiline tuum näib opsüsteemile kui kaks või enam loogilist lõime — see võib parandada protsessori kasutust teatud töökoormuste juures, kuid ei kahekordista alati jõudlust nagu täiendav füüsiline tuum.
Kus mitmetuumalistest protsessoritest kasu on?
- Serverid ja pilveteenused — mitmeserverine paralleelne töötlemine mitme samaaegse ühenduse teenindamiseks.
- Multimeedia — video- ja helitöötlus, renderdamine, kus töö saab jaotada paljudeks alamülesanneteks.
- Tarkvaraarendus ja simulatsioonid — mitmetuumaline käitamine kiirendab kompileerimist ja keerukate simulatsioonide läbiviimist.
- Igapäevane mitme rakenduse samaaegne kasutamine — veebilehitsejad, taustprotsessid, virtualiseerimine.
Kuidas valida õiget tuumade arvu?
Valik sõltub eelkõige sinu vajadustest: ühetuumalised/raskelt jadalised rakendused võivad eelistada kiiret ühe tuuma taktsagedust, samas mitme rakenduse ja paralleelse töö korral annab rohkem tuumasid tihti parema üldjõudluse. Mõtle ka energiatõhususele, soojushaldamisele ja tarkvara toe olemasolule (kas kasutatavad programmid toetavad mitmelõimelisust?).
Lõpetuseks: mitmetuumaline disain on tänapäeva töötlemise standard — sellest sõltub suur osa nii tavalistest lauaarvutitest kui ka mobiiltelefonidest, serveritest ja sisseintegreeritud süsteemidest. Mitme tuuma olemasolu ei taga automaatselt paremat jõudlust, kuid õigetes tingimustes ja vastava tarkvaratoega võimaldab see oluliselt paremat paralleelset töötlust.