A múlt század közepe óta az asztali CPU-k több CPU magot kínálnak egyetlen csomagban. Ez egy többmagos processzor. Míg a korai tervezések két vagy négy CPU magra korlátozódtak, a modern CPU-k akár 64 fizikai magot is kínálnak egyetlen CPU-n. Az ilyen magas alapértékek nem szabványosak az asztali CPU-k számára, és általában a csúcskategóriás munkaállomások vagy szerverek számára vannak fenntartva. A modern asztali CPU-k tipikus magszáma 4 és 16 között van. De mi a helyzet a többmagos CPU-kkal, amelyek dominánssá teszik őket a modern számítógépekben?
Egymagos
A történelem során az egyetlen mag CPU csak egyetlen feladat végrehajtására korlátozódott. Ez a problémák egész sorával jár. Például egy modern számítógépen hatalmas mennyiségű háttérfolyamat fut. Ha egy CPU egyszerre csak egy dolgot tud feldolgozni, az azt jelenti, hogy ezeknek a háttérfolyamatoknak el kell távolítaniuk a feldolgozási időt az előtérben lévő folyamattól. Ezenkívül a gyorsítótár hiánya azt jelenti, hogy az adatokat - viszonylag - lassú RAM-ból kell lekérni. Amíg az adatok lekérik a RAM-ból, a processzor egyszerűen tétlenül áll, mivel nem tud semmit csinálni, amíg meg nem kapja az adatokat. Ez visszatartja a futó folyamatot, valamint minden más folyamatot, amely a befejezésre vár.
Bár a modern egymagos processzorok nem igazán számítanak a pénztárcabarát többmagos CPU-k térnyerésének, képesek lennének más modern trükkök bevetésére is a gyorsabb működés érdekében. Egy csővezeték lehetővé tenné az utasítás kezelésének minden egyes részét egyidejűleg, jelentős teljesítménynövekedést biztosít a folyamat egyetlen szakaszának óránkénti használatához képest ciklus. Egy széles csővezetéknél több utasítást lehetne kezelni minden egyes folyamatszakaszban órajelenként. Az Out Of Order feldolgozás lehetővé tenné az utasítások időhatékonyabb ütemezését. Az elágazás-előrejelző képes lenne megjósolni egy elágazási utasítás kimenetelét, és előre futtatni a feltételezett választ.
Mindezek a tényezők jól működnek, és bizonyos teljesítményt nyújtanak. Egy vagy több mag hozzáadása azonban mindezt lehetővé teszi, és egy csapásra kétszer annyi adat feldolgozását teszi lehetővé.
Többmagos
Egy második mag hozzáadása úgy hangzik, mintha megduplázná a nyers teljesítményt. A dolgok sajnos ennél bonyolultabbak. A programlogika gyakran egyszálú, ami azt jelenti, hogy egy program egyszerre csak egy dolgot próbál meg végrehajtani. Megtörténhet azonban, hogy más folyamatok is használhatják a másik magot egyidejűleg. Noha a legtöbb egyedi programnak nincs benne rejlő teljesítménynövekedés, egy extra szolgáltatás feldolgozási erőforrás, hatékonyan csökkenti a versenyt egy korlátozott erőforrásért, amely biztosítja a teljesítménynövelés. Ez a teljesítménynövekedés, pusztán a CPU-időért folytatott versengés csökkentéséből adódóan, akkor a legszembetűnőbb, ha egyetlenről ugrunk egy kétmagos CPU esetében csökken a megtérülés a magok számának további növeléséből, bár általában több jobb.
A többmagos rendszerek megfelelő kihasználásához és tényleges teljesítménynövekedéshez a programokat több feldolgozási szál használatára kell programozni. A többszálú logikát köztudottan nehéz megbízhatóan megvalósítani, mivel gyakran nehéz megtanulni, és sok lehetséges buktató is lehet. Egy példa a buktatóra versenyfeltételként ismert. Versenykörülmények között az egyik folyamat azt feltételezi, hogy egy másik folyamat, amelyet elindított, zökkenőmentesen fog lefutni, majd megpróbál valamit tenni, ami a másik folyamat zökkenőmentes lefutására támaszkodik. Képzelje el például, hogy egy folyamat elindít egy másik folyamatot az egyik dokumentum bezárásához, és egy másik megnyitásához. Ha az eredeti folyamat nem ellenőrzi megfelelően, hogy a második folyamat befejeződött-e, az váratlan eredményekhez vezethet. Ha probléma merült fel például az első dokumentum bezárásakor, akkor is nyitva lehet, amikor az eredeti folyamat csak több adatot ír rá.
Hőproblémák
Az egyik legnagyobb probléma, amellyel a többmagos processzorok végül küzdenek, a hő. Míg egy CPU mag nem ad ki annyi hőt, kettő többet ad le. A magas magszámú CPU-knál ez a hőkoncentráció alacsonyabb boost-órajelet eredményezhet, mivel a CPU kezeli a hőmérsékletét. Az alacsonyabb gyorsítóóra alacsonyabb teljesítményt eredményez az egyszálas alkalmazásokban. Ez gyakran látható a játékteljesítmény-benchmarkokban. A videojátékok gyakran nagymértékben egyetlen szálra támaszkodnak. Mint ilyen, az egyszálú teljesítmény gyakran kritikus a játék szempontjából. A nagy magszámú CPU-k, mint például a 16 magszámú modellek, gyakran nagy teljesítményű rekeszekből származnak. Ennek ellenére rendszeresen felülmúlják azokat a „kisebb” CPU-kat, amelyek alacsonyabb magszámmal rendelkeznek az egyszálú benchmarkokban. Ez a probléma még nyilvánvalóbb az olyan rendkívül nagy magszámú CPU-k esetében, mint a 64 magos AMD Threadripper, ahol az órajel észrevehetően alacsonyabb, mint a csúcskategóriás asztali CPU-ké.
Sikerek
Sok alkalmazás képes megfelelően kihasználni több CPU magot. Például a CPU renderelés viszonylag könnyen párhuzamosítható feladat. Teljesítményjavulás egészen 64 magig és még magasabb szintig látható, bár jelenleg egyetlen CPU sem kínál 64 magnál többet. Sok alkalmazás egyszerűen nem lehet többszálú, mivel szekvenciális logikára támaszkodik. Bár ezek közel sem gyorsítják a többszálú programok, az a tény, hogy a többszálú programok és más egyszálú programok más CPU magokat is használhatnak, ez felszabadítja a processzoridőt, ami jobb teljesítmény.
Építészeti lehetőségek
Az asztali processzorokban a többmagos CPU-n belül általában minden CPU-mag azonos. Ez a homogenitás egyszerűvé teszi a magokon végzett munka ütemezését. Ugyanazon ismétlődő kialakítás használata a fejlesztési költségek csökkentését is segíti. A mobil processzorok azonban régóta használnak heterogén magarchitektúrákat. Ebben a kialakításban két vagy akár három szintű CPU-mag található. Mindegyik szint ugyanazokat a folyamatokat futtathatja, azonban néhányat az energiahatékonyságra terveztek, mások pedig a teljesítményre vannak hangolva. Ez bebizonyította a siker receptjét az akkumulátorral működő eszközök esetében, mivel sok feladat többet használhat a lassabbnál energiatakarékos magok, növelve az akkumulátor élettartamát, miközben a magas prioritású folyamatok továbbra is nagy sebességgel futtathatók amikor szükség van.
Az asztali CPU architektúra szintén a heterogén magtervezés irányába mozdul el. Intel Alder Lake 12th generációs Core CPU vonal az első asztali CPU, amely ezt megteszi. Ebben az esetben a kisebb magok fő hajtóereje nem feltétlenül az energiahatékonyság, hanem a termikus hatásfok, bár ez ugyanannak az éremnek a két oldala. A több nagy teljesítményű mag nagy teljesítményt biztosít, míg sok hatékony mag képes kezelni a háttérfeladatokat anélkül, hogy túlzottan befolyásolná a fő magokat.
Következtetés
A többmagos CPU olyan CPU, amely több processzormagot tartalmaz egyetlen csomagban, gyakran, bár nem kizárólag ugyanazon a szerszámon. A többmagos CPU-k nem nyújtanak sok program közvetlen teljesítménynövekedését, azonban a magok számának növelésével az egyszálú programoknak nem kell annyira versenyezniük a CPU-időért. Egyes programok teljes mértékben ki tudják használni a több magot, és annyit közvetlenül felhasználnak, amennyi elérhető. Ez nagy teljesítménynövekedést biztosít, bár a hő- és teljesítménykorlátok miatt ez a növekedés nem feltétlenül jelenti a teljesítmény megduplázódását a magok megduplázásával.