Az ARM big.LITTLE egy az ARM Holdings által fejlesztett heterogén számítástechnikai architektúra, melyben (viszonylag) lassabb, kisebb fogyasztású processzor magokat (viszonylag) hatékonyabb és energiaigényesebb magokkal párosítanak. A szándék egy olyan többmagos processzor létrehozására irányul, amely jobban képes alkalmazkodni a dinamikus számítási igényekhez és kevesebbet fogyaszt, mint ami egyedül az órajel skálázásával elérhető.

2011 októberében a big.LITTLE architektúrát az ARM Cortex-A7 maggal együtt jelentették be, amelyet felépítésében eleve a Cortex-A15-tel kompatibilisnek terveztek. 2012 októberében az ARM bejelentette a Cortex-A53 és Cortex-A57 (ARMv8-A) magokat, amelyek szintén kompatibilisek egymással és együtt használhatók egy big.LITTLE csipben. Az ARM később bejelentette a Cortex-A12 magot is a Computex 2013 rendezvényen, amelyet a Cortex-A17 bejelentése követett 2014 februárjában, ez a kettő szintén párosítható egy big.LITTLE konfigurációban a Cortex-A7 típusú maggal.

Végrehajtási állapot-migráció A különböző processzormagokat három módon lehet egy big.LITTLE kialakításban elrendezni, a kernelben megvalósított ütemezőtől függően. Mindegyikben az ütemező átkapcsolhat a lassabb és gyorsabb magok között, tetszőleges irányban, a teljesítmény optimalizálása végett. Az átkapcsolás során a különböző sebességű processzormagok között át kell adni a teljes futási környezetet, ezt nevezik a végrehajtási vagy futási állapot migrációjának. Klaszterezett kapcsolás A klaszteres modell megközelítés az első és legegyszerűbb megvalósítás, amelyben a processzort egyenlő méretű, „big” vagy „LITTLE” magokat tartalmazó klaszterekbe sorolják. Az operációs rendszer ütemezője egyszerre csak egy klasztert lát; mikor a teljes processzor terhelése átlépi az alacsony és magas szintek közötti határt, akkor a rendszer klasztert vált. Minden releváns adat átadódik a közös L2 gyorsítótáron keresztül, az egyik mag-klaszter kikapcsol, a másik aktiválódik. Ebben a rendszerben Cache Coherent Interconnect (CCI) összekapcsolást alkalmaznak. Ezt a modellt implementálták pl. a Samsung Exynos 5 Octa (5410) egylapkás rendszerében.

In-kernel switcher (CPU migráció) thumb|320px|big.LITTLE IKS Az in-kernel switcher (IKS, kernelbeli átkapcsoló) módszerrel történő CPU migráció előfeltétele a magok megfelelő elrendezése; ilyenkor egy „big” mag egy „LITTLE” maggal van párosítva, és a csipen sok ilyen azonos páros kialakítására van lehetőség. Minden pár egy virtuális magként működik, és a működés alatt egy valódi mag van (teljesen) bekapcsolva és csak ez az egy mag fut egy időben. A „big” mag fut nagy terhelés esetén, és a „LITTLE” mag, mikor a terhelés alacsony. Mikor a virtuális mag terhelése megváltozik (magas és alacsony között), akkor a belépő mag bekapcsol, a futási állapot átadódik, a kilépő mag lekapcsolódik, és a feldolgozás az új magban folytatódik. Az átváltás a cpufreq keretrendszer segítségével történik. A Linux 3.11-hez egy teljes big.LITTLE IKS implementáció lett hozzáadva. A big.LITTLE IKS egy jelentős előrelépés a klaszteres migrációhoz képest, a fő különbség abban áll, hogy ebben minden pár külön látható / elérhető az ütemező számára.

Az összetettebb elrendezés együtt jár a „big” és „LITTLE” magok nemszimmetrikus csoportosításával. Egyetlen lapkán egy vagy több „big” mag és sokkal több „LITTLE” mag is elhelyezhető, vagy fordítva. Az Nvidia ehhez hasonló rendszert alkotott a kis fogyasztású „kísérő mag” (companion core) beépítésével a Tegra 3 egylapkás rendszerébe.

Heterogén multiprocesszálás (globális feladatütemezés) thumb|320px|big.LITTLE MP A big.LITTLE leghatékonyabb használati modellje a heterogén multiprocesszálás (MP), amely lehetővé teszi az összes fizikai mag egyidejű használatát. A magas prioritású vagy nagy számítási teljesítményt igénylő szálak ebben az esetben a „big” magokhoz rendelhetők, míg az alacsonyabb prioritású vagy kisebb intenzitásigényű szálak, mint például a háttérfeladatok, a „LITTLE” magokkal hajthatók végre.

A Linux kernel fővonalába már beépítették az upstream big.LITTLE GTS patcheket, a Linux 3.10-től kezdve. Ezt a modellt alkalmazzák a Samsung Exynos 5 Octa (5420, 5422, 5430) és Hexa (5260) csipekben. Az ütemezés A páros elrendezés lehetővé teszi az operációs rendszer számára átlátszó átkapcsolást a már létező dinamikus feszültség és frekvenciaváltó eszköz (DVFS) használatával. A létező DVFS támogatás a kernelben (pl. a cpufreq a Linuxban) egyszerűen egy frekvencia- és feszültséglistát lát és ezek fokozatai között kapcsol át belátása szerint, pontosan úgy, ahogy a létező hardveren teszi. Ekkor azonban az alacsonyabb szintű foglalatok a „LITTLE”, a magasabb szintűek pedig a „big” magokat aktiválják.

Alternatív megoldásként az összes mag láthatóvá tehető a kernel ütemező számára, amely eldönti, hogy melyik szál vagy folyamat melyik magnak lesz kiosztva. Ez szükséges a nem párosított elrendezésekben, de a párosított magokkal is használható. Ez egyedi problémákat állít a kernel ütemezője elé, amelyben eddig azt feltételezték, legalábbis a modern tömegcikk-hardverek körében, hogy az SMP rendszerben minden mag egyenrangú (azonos).

A globális feladatütemezés előnyei A terhelés finomabb felbontásban történő vezérlése, mint ami a magok között migrálható. Mivel az ütemező közvetlenül migrálja a feladatokat a magok között, a kernel többletterhelése csökken és az energiamegtakarítás ennek megfelelően növekszik. Az ütemezőben való megvalósítás miatt az átváltási döntések végrehajtása gyorsabb, mint az IKS-hez kialakított cpufreq keretrendszerben. Lehetőség nyílik a nem-szimmetrikus egycsipes rendszerek (SoC-k) könnyű támogatására (pl. 2 Cortex-A15 mag és 4 Cortex-A7 mag egy rendszerben). Az összes mag egyidejű használatának lehetősége javítja az egylapkás rendszer teljes adatátviteli sebességét, tehát a csúcsteljesítményt, az IKS-sel összehasonlítva.

Implementációk egylapkás rendszer technológia „big” mag „LITTLE” mag GPU memóriainterfész rádió-technológiák elérhetőség eszközök HiSilicon K3V3 28 nm 1,8 GHz kétmagos Cortex-A15 1,2 GHz kétmagos Cortex-A7 Mali-T658 2013 második fele HiSilicon Kirin 920 28 nm 1.7-2,0 GHz Cortex-A15 1.3-1,6 GHz négymagos Cortex-A7 Mali-T628MP4 LPDDR3 LTE CAT6 TBA Samsung Exynos 5 Octa (5410 modell) 28 nm 1.6-1,8 GHz négymagos Cortex-A15 1,2 GHz négymagos Cortex-A7 PowerVR SGX544MP3 32 bites kétcsatornás 800 MHz LPDDR3 (12,8 GB/s) 2013, második negyed Exynos 5 alapú Samsung Galaxy S4 Samsung Exynos 5 Octa (5420 modell) 28 nm 1.8-2,0 GHz négymagos Cortex-A15 1,3 GHz négymagos Cortex-A7 Mali-T628MP6 32 bites kétcsatornás 933 MHz LPDDR3e (14,9 GB/s) 2013, negyedik negyed Exynos 5 alapú Samsung Galaxy Note 3 Samsung Exynos 5 Octa (5422 modell) 28 nm 2,1 GHz négymagos Cortex-A15 1,5 GHz négymagos Cortex-A7 Mali-T628MP6 32 bites kétcsatornás 933 MHz LPDDR3e (14,9 GB/s) 2014, második negyed Exynos 5 alapú Samsung Galaxy S5, Odroid-XU3 Samsung Exynos 5 Hexa (5260 modell) 28 nm 1,7 GHz kétmagos Cortex-A15 1,3 GHz négymagos Cortex-A7 Mali-T624 32 bites kétcsatornás 800 MHz LPDDR3e (12,8 GB/s) 2014, második negyed Samsung Galaxy Note 3 Neo Samsung Exynos 5 Octa (5430 modell) 20 nm 1,8 GHz négymagos Cortex-A15 1,3 GHz négymagos Cortex-A7 Mali-T628MP6 32 bites kétcsatornás 1066 MHz LPDDR3e (17,0 GB/s) LTE CAT6 2014, harmadik negyed Samsung Galaxy Alpha Samsung Exynos 5 Octa (5433 modell) 20 nm 1,9 GHz négymagos Cortex-A57 1,3 GHz négymagos Cortex-A53 Mali-T760 32 bites kétcsatornás 825 MHz LPDDR3e (13,2 GB/s) LTE CAT6 2014, negyedik negyed Samsung Galaxy Note 4 (SM-N910C) Renesas Mobile MP6530 28 nm 2 GHz kétmagos Cortex-A15 1 GHz kétmagos Cortex-A7 PowerVR SGX544 kétcsatornás LPDDR3 LTE CAT4 Allwinner A80 Octa 28 nm négymagos Cortex-A15 négymagos Cortex-A7 PowerVR G6230 kétcsatornás DDR3/DDR3L/LPDDR3 vagy LPDDR2 MediaTek MT6595 28 nm 2,2 GHz négymagos Cortex-A17 1,7 GHz négymagos Cortex-A7 PowerVR G6200 (600 MHz) 32 bites kétcsatornás 933 MHz LPDDR3 (14,9 GB/s) LTE CAT4 2014, második negyed MediaTek MT6595M 28 nm 2,0 GHz négymagos Cortex-A17 1,5 GHz négymagos Cortex-A7 PowerVR G6200 (450 MHz) 32 bites kétcsatornás 933 MHz LPDDR3 (14,9 GB/s) LTE CAT4 2014, második negyed MediaTek MT6595 Turbo 28 nm 2,5 GHz négymagos Cortex-A17 1,7 GHz négymagos Cortex-A7 PowerVR G6200 (600 MHz) 32 bites kétcsatornás 933 MHz LPDDR3 (14,9 GB/s) LTE CAT4 TBD Qualcomm Snapdragon 808 (MSM8992) 20 nm 2,0 GHz kétmagos Cortex-A57 négymagos ARM Cortex-A53 Adreno 418 64 bites 933 MHz LPDDR3 (14,9 GB/s) LTE Cat 6/7 2015 első fele Qualcomm Snapdragon 810 (MSM8994) 20 nm 2,0 GHz négymagos Cortex-A57 négymagos ARM Cortex-A53 Adreno 430 64 bites kétcsatornás 1600 MHz LPDDR4 (25,6 GB/s) LTE Cat 6/7 2015 első fele

Jegyzetek

Források Általános hivatkozások

Fordítás

További információk big.LITTLE Processing big.LITTLE Processing with ARM CortexTM-A15 & Cortex-A7 (PDF) (teljes technikai magyarázat) Kapcsolódó szócikkek ARM

Kategória:Mikroprocesszorok big.LITTLE Kategória:Heterogén számítástechnika