Daugiabranduolinis procesorius yra toks kompiuterio procesorius, kuriame fiziniame luste yra dvi ar daugiau vykdymo sekcijų — branduolių. Kiekvienas branduolys gali vykdyti instrukcijas taip, tarsi tai būtų atskiras mikroprocesorius, todėl viename luste esančios sekcijos dažnai atlieka užduotis lygiagrečiai ir nepriklausomai viena nuo kitos. Tikrieji daugiasluoksniai sprendimai (multi-chip) yra galimi, tačiau dauguma šiuolaikinių procesorių turi kelis branduolius viename silicio luste. Šiame luste kiekvienas branduolys dažniausiai turi panašią architektūrą ir gali veikti savarankiškai; iš esmės tai keli dažnai nepriklausomi vykdymo vienetai, veikdami kartu didina bendrą našumą.

Kas yra „dviejų branduolių“ ir „keturių branduolių“ procesoriai?

Dviejų branduolių procesorius reiškia, kad luste yra du nepriklausomi mikroprocesoriai (branduoliai), o keturių branduolių procesorius turi keturis. Kaip rodo pavadinimas, skaičius nurodo luste esančių branduolių skaičių — daugiau branduolių dažnai reiškia geresnį gebėjimą vienu metu vykdyti daugelį procesų ar gijų.

Kaip tai veikia praktiškai?

  • Operacinė sistema paskirsto programas ir jų darbo gijas (threads) tarp laisvų branduolių, todėl kelių užduočių vykdymas vyksta greičiau.
  • Kai programa parašyta taip, kad gali veikti keliomis gijom (multithreaded), ji gali tuo pačiu metu panaudoti kelis branduolius ir žymiai sutrumpinti vykdymo laiką.
  • Vieną branduolį gali užimti sudėtinga užduotis, o kiti branduoliai aptarnauti fonines užduotis (pvz., antivirusą, atnaujinimus ar naršyklės korteles).

Privalumai

  • Geresnis daugiadalykumas: leidžia patogiau ir sklandžiau paleisti kelias programas vienu metu.
  • Didesnis našumas: sudėtingoms, gerai parašytoms dauggijos programoms (pvz., vaizdų apdorojimas, vaizdo įrašų transkodavimas, mokymasis mašinoms) — ženklus spartėjimas.
  • Energijos ir terminis valdymas: keli branduoliai leidžia sumažinti vieno branduolio dažnį ir taip sumažinti energijos suvartojimą bei šilumos išskyrimą, kartu palaikant bendrą našumą.

Cache, magistralės ir branduolių tarpusavio bendradarbiavimas

Branduoliai dažnai dalijasi tam tikrais lusto ištekliais, pvz., L3 talpine (cache) ir atminties valdikliu. Tai leidžia greitai keistis duomenimis, bet gali sukelti spūstis, kai daug branduolių vienu metu prieina prie to paties išorinės atminties kanalo. Dizainas, talpyklos hierarchija ir atminties architektūra turi didelę įtaką realiam daugiabranduolio našumui.

Branduoliai vs gijos (threads) ir Hyper-Threading

Branduoliai yra fiziniai vykdymo vienetai, o gijos (threads) yra programinės vykdymo sekos. Kai kurios technologijos, pavyzdžiui, Intel Hyper-Threading, leidžia vienam fiziniam branduoliui apdoroti kelias gijas vienu metu (logiškai), taip padidinant resursų panaudojimą. Visgi loginių gijų skaičius nereiškia tokio paties našumo kaip fizinių branduolių padidėjimas — tikrai nauda priklauso nuo užduoties pobūdžio.

Ribotumai ir svarstymai

  • Ne visos programos pasinaudoja keliomis gijom: senos arba paprastos programos gali veikti vienoje gijoje, todėl papildomi branduoliai nepadės.
  • Amdahl’o dėsnis: spartėjimas nuo paralelizacijos priklauso nuo to, kokią programos dalį galima atlikti lygiagrečiai — yra ribų, kiek veiksminga padalinti darbą tarp branduolių.
  • Atminties pralaidumas ir talpyklos konfliktai: daug branduolių vienu metu gali apkrauti atminties magistralę, todėl našumas gali neproporcingai neaugti.

Praktiniai patarimai renkantis procesorių

  • Apsvarstykite, kokias programas dažniausiai naudosite: žaidimai dažnai labiau vertina vieno branduolio dažnį, o kūrybinės arba profesionalios programos — branduolių skaičių.
  • Žiūrėkite ne tik branduolių skaičių, bet ir architektūrą, dažnį, talpyklos dydį ir atminties palaikymą.
  • Mobiliesiems įrenginiams atkreipkite dėmesį į energijos vartojimo efektyvumą — daugiau branduolių nebūtinai reiškia geresnį akumuliatoriaus tarnavimo laiką.

Santrauka

Daugiabranduolinis procesorius leidžia vienu metu vykdyti daugiau užduočių, gerina našumą dauggijos scenarijuose ir suteikia lankstumo energijos valdyme. Tačiau realus privalumas priklauso nuo programinės įrangos palaikymo, atminties architektūros ir konkrečių naudojimo atvejų. Renkantis procesorių verta vertinti visą techninį paketą — branduolių skaičių, taktinį dažnį, talpyklas ir sistemos palaikymą.