Okostelefonos SoC-határozó

Hardveres alapfogalmak: SoC, CPU, IPC és magok

Az okostelefonok és táblagépek kapcsán egyre többször lehet találkozni az SoC kifejezéssel, melyről talán még olvasóink egy része sem tudja, hogy pontosan mi, sokan pedig a processzorral keverik össze. Pedig az SoC (System On a Chip) egy olyan integrált áramkör (IC), aminek részét képezik a perifériakezelő rendszerek, a CPU-mag vagy -magok, jellemzően az integrált grafikus vezérlő és még sok minden más. Elektronikai eszköz alatt ugye az okostelefonokat, táblagépeket, tágabb értelemben számítógépet érthetjük, de a lényeg itt tényleg az, hogy fizikailag csak egyetlen egy chip van, aminek részét képezik a már említett egységek (perifériakezelő rendszerek, a CPU, adott esetben a GPU stb.). A definíció itt elég nehéz, egy SoC-t elméletileg csak egy hajszál választja el egy mikrokontrollertől, melyek a rajtuk található CPU-nak és a programozható I/O kezelőknek köszönhetően szintén SoC-k, de a mikrokontrollerek specializáltabb szerkezetek, mint amikről mi most beszélünk. Egyetlen leírható különbség van, mégpedig az, hogy a mikrokontrollerekben található valamennyi memória, míg az okostelefonos szemszögből megközelített SoC-kben nem, mivel az „mellettük” van. Ennél persze gyakorlatiasabb megközelítés az, hogy mikrokontrollernek nevezzük azt a specializált hardvert, ami képes működtetni mondjuk egy gyerekeknek szánt szintetizátort, míg az SoC jelzőt a komolyabb számítási kapacitással rendelkező egységekre aggatjuk rá – minden mikrokontroller SoC, de ez fordítva nem igaz. Ebből az egészből persze nem ezt kell látni, hanem azt, hogy a gyártók a helymegtakarítás miatt használnak SoC-ket a hordozható eszközöknél. Egy lapka kisebb alaplapot igényel, mint kettő, azaz több hely marad az akkumulátornak vagy kisebb lehet a telefon. Épp ezért jelenthető ki, hogy pár kivételtől eltekintve ma már szinte minden okostelefonban és táblagépben SoC található – ezért is olvadt kicsit össze a processzor és az SoC fogalma.

Az előző bekezdésben több olyan fogalom is bejött a képbe, melyek erősen magyarázatra szorulnak. Talán a legtöbbek számára a CPU mond valamit, ez a Central Processing Unit angol szóhármas rövidítése, melyet magyarul központi feldolgozóegységként szoktunk emlegetni. Ez az egység az elektronikai eszköz agya, az okostelefonoknál egyben talán a legösszetettebb, legtöbb tranzisztort tartalmazó hardver is, mely az utasítások értelmezését és végrehajtását vezérli – és rengeteg egyéb, számunkra érdekes tulajdonsága van. Például az órajel, melynek mértékegysége a Hertz (Hz), de a nagy számok miatt már évtizedek óta Megahertz (MHz), jó pár éve pedig Gigahertz (GHz) egységeket használunk: 1 GHz = 1000 MHz = 1 000 000 kHz = 1 000 000 000 Hz.

Óra és órajel

A processzorokban található óra magában foglal egy kvarckristályt, ami az órajel előállításához szükséges rezgés stabilitását adja, ezt mérjük ugyebár Hertzben. A processzor részegységei az órajel ütemére végzik feladataikat; amikor egy részegység megkapja az órajelet egy elektronikus jel formájában, akkor elvégzi a soron következő műveletet, majd amikor megkapja a következő jelet, akkor a következő műveletet végzi el. Egy másodperc alatt egy mai processzor egysége több milliószor kap jelet, ami a gigahertzes mértékegységek alapján kikövetkeztethető. Az órajel sebességének így ahhoz az időhöz kell alkalmazkodnia, amennyi időbe telik egy részegységnek a rá kijelölt művelet elvégzése (különben akkor jönne a következő művelet, amikor az előző még feldolgozás alatt van, ami problémákat okozna). Ez lényegében azt eredményezheti, hogy a processzor egységeinek a leglassabb elem miatt kell várakozniuk, amit persze különféle megoldásokkal orvosolnak. Ám a műveletet nem szabad összetéveszteni az utasítással: egy utasítás végrehajtása több órajelciklust is igénybe vehet.

Sokan a mai napig azt hiszik, hogy az órajel a teljesítmény mértékegysége és minél nagyobb a szám, annál nagyobb a számítási teljesítmény, azaz kvázi annál gyorsabb a processzor, de ez tévedés. Ez az általános nézet anno a Pentium 4-es asztali processzorok bemutatkozásával terjedt el (pontosabban az Intel próbálta terjeszteni), majd később az AMD Athlon megjelenése mutatott rá arra, hogy nem igaz. Egy adott processzor teljesítményét két szimpla változó szorzatának eredményeként kapjuk meg. Ezek a változók az órajel (pl. 2,6 GHz) és az IPC, azaz Instructions Per Cycle, magyarul egy órajelciklus alatt elvégzett műveletek száma. Egyértelmű, hogy két CPU közül a magasabb órajelű a gyorsabb, ha ugyanolyan IPC-vel rendelkeznek, tehát ha két azonos típusról van szó, ellenben ha két különböző típusú CPU-ról beszélünk, akkor az órajel ismerete önmagában nem elég ahhoz, hogy kiderüljön, melyik a gyorsabb (feltételezve, hogy a két különböző típusú processzor az IPC-t kivéve minden más paraméter szempontjából megegyezik). Azt, hogy egy adott CPU milyen IPC-vel rendelkezik, nem lehet konkrétan meghatározni, hiszen tudni kellene azt is, hogy milyen műveletről van szó, azonban a CPU-tesztek ki szokták mutatni, ha egy adott architektúra azonos órajelen gyorsabb, mint egy másik. Mivel az okostelefonoknál és a táblagépeknél ma már nagyon fontos, hogy milyen teljesítményre számíthatunk, gyakorlatilag az összes platformon vannak olyan tesztprogramok, melyek nagyjából biztos összehasonlítási alapot adnak bizonyos részterületeken – ezeket a szoftvereket mi is használjunk a készülékek tesztelésekor.

Tegra 3
NVIDIA Tegra 3

A processzoroknál nagyon fontos paraméter a magok száma, ma ugye egy, két, négy és nyolcmagos megoldások is piacon vannak. Sokan úgy gondolják, hogy a magok számának duplázása egyben 200 százalékos sebességet is jelent, de ez sajnos távolról sem igaz; a több processzormagnak azoknál a feladatoknál van értelme, ahol a műveleteket lehet párhuzamosítani, ráadásul ott is csak akkor, ha a feladat végrehajtását kérő szoftvert optimalizálták többmagos rendszerre. Mindezt egy nagyon egyszerű példával lehet leírni: képzeljük el magunkat és egy barátunkat, mint egy-egy processzormagot. Matematikai feladatokat kell megoldanunk, az első egy összeadás, mondjuk 3+4: itt nyilván nincs előnyünk abból, hogy egy barátunk is segít számolni, hiszen legfeljebb azt tudjuk csinálni, hogy mindketten egyszerre kiszámoljuk és kétszer lesz meg ugyanaz az eredményünk. Ellenben egy kicsit komplexebb műveletnél már meg lehet osztani a feladatokat; a (3+4)*(4+3) esetében például három műveletünk van, két összeadás és egy szorzás. Ha mi megcsináljuk az első összeadást, a barátunk közben megcsinálhatja a másikat, nekünk pedig ezután csak a szorzás marad, azaz bár nekünk három műveletnyi idő lett volna elvégezni a feladatot, a barátunk segítségével kettő alatt meglettünk. Mindez azonban csak akkor működik, ha a feladatokat megkapjuk és van köztünk kommunikáció, ez okostelefonos rendszerknél viszont nem ilyen triviális ez az egész. Az Android rendszer például csak a 3.0-s (Honeycomb) verzió óta támogatja rendszerszinten a kétmagos processzorokat, épp ezért is kapott kritikákat annak idején a korábbi rendszerrel piacra került LG Optimus 2X, melyben ugyan kétmagos CPU működött, de azt a rendszer nem tudta kihasználni. El kell viszont különíteni magát az Androidot és a szoftvereket, a lehetőségek ugyanis nem ugyanazok. Egy operációs rendszernél felhasználói élmény szempontjából talán fontosabb az, hogy milyen gyorsan kerülnek kiszámításra a felhasználói felülettel kapcsolatos műveletek, mint az, hogy sok processzormagunk legyen. Igaz ugyan, hogy vannak háttérfolyamatok, de azok inkább memória, nem pedig processzorigényesek. Ellenben mondjuk webböngészéskor jól jöhet egy négymagos rendszer; egy mag számolja a JavaScript műveleteket (mivel ez egy párhuzamos feldolgozást nem támogató nyelv), a többi mag pedig a sorban megnyíló újabb és újabb böngészőablakokat, azaz három darab fül megnyitásáig még egyértelmű előnyünk van. Ugyanígy egy játéknál is jól jön, ha egy processzormag foglalkozik a fizikai számításokkal és egy másik a mesterséges intelligenciával, de hangsúlyozni kell, hogy mindez csak akkor működőképes, ha a szoftverfejlesztők erre lehetőséget adnak. Operációs rendszerek tekintetében egyébként nincs nagy különbség a több mag kihasználásának tekintetében, nem lehetne azt mondani, hogy az Android vagy mondjuk a Windows Phone jobb vagy rosszabb, mint a többiek.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés