ARM big.LITTLE
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.[1] 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.[2] 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.[3][4]
Végrehajtási állapot-migráció
szerkesztésA különböző processzormagokat három módon lehet[5] egy big.LITTLE kialakításban elrendezni, a kernelben megvalósított ütemezőtől függően.[6] 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
szerkesztésA 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.[7]
In-kernel switcher (CPU migráció)
szerkesztésAz 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 (a 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)
szerkesztésA 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.[8]
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.[9][10]
Az ütemezés
szerkesztésA 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
szerkesztés- 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
szerkesztésegylapká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)[11][12] | 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)[13] | 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)[10] | 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)[10] | 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)[14] | 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[15] |
Samsung Exynos 5 Octa (5433 modell)[16] | 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[17] | 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[18] | 28 nm | négymagos Cortex-A15 | négymagos Cortex-A7 | PowerVR G6230 | kétcsatornás DDR3/DDR3L/LPDDR3 vagy LPDDR2[19] | |||
MediaTek MT6595[20] | 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)[21] | 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)[22] | 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
szerkesztés- ↑ ARM Holdings (19 October 2011). "ARM Unveils its Most Energy Efficient Application Processor Ever; Redefines Traditional Power And Performance Relationship With big.LITTLE Processing". Sajtóközlemény. Elérés: 2012-10-31.
- ↑ ARM Holdings. "ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors". Sajtóközlemény. Elérés: 2012-10-31.
- ↑ ARM's new Cortex-A12 is ready to power 2014's $200 midrange smartphones. The Verge, 2014. április 1.
- ↑ ARM Cortex A17: An Evolved Cortex A12 for the Mainstream in 2015. AnandTech, 2014. április 1. [2014. szeptember 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. szeptember 28.)
- ↑ Brian Jeff: Ten Things to Know About big.LITTLE. ARM Holdings, 2013. június 18. [2013. szeptember 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. szeptember 17.)
- ↑ George Grey: big.LITTLE Software Update. Linaro, 2013. július 10. [2013. október 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. szeptember 17.)
- ↑ Peter Clarke: Benchmarking ARM’s big-little architecture, 2013. augusztus 6. (Hozzáférés: 2013. szeptember 17.)
- ↑ Big.LITTLE Processing with ARM Cortex™-A15 & Cortex-A7, ARM Holdings, September 2013, <http://www.arm.com/files/downloads/big.LITTLE_Final.pdf>. Hozzáférés ideje: 2013-09-17 Archivált másolat. [2012. április 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. szeptember 28.)
- ↑ Brian Klug: Samsung Announces big.LITTLE MP Support in Exynos 5420. AnandTech, 2013. szeptember 11. (Hozzáférés: 2013. szeptember 16.)
- ↑ a b c Samsung Unveils New Products from its System LSI Business at Mobile World Congress. Samsung Tomorrow. [2014. március 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. február 26.)
- ↑ Andrew Cunningham: Samsung’s new eight-core Exynos 5 Octa SoC promises not to hog battery. Ars Technica, 2013. január 10. (Hozzáférés: 2013. január 10.)
- ↑ James Trew: Samsung announces eight-core Exynos 5 'Octa' chip at CES. Engadget, 2013. január 9. (Hozzáférés: 2013. január 10.)
- ↑ Samsung Electronics (10 September 2013). "Samsung Primes Exynos 5 Octa for ARM big.LITTLE Technology with Heterogeneous Multi-Processing Capability". Sajtóközlemény. Elérés: 2013-09-17.
- ↑ Samsung Announces Exynos 5430: First 20nm Samsung SoC. AnandTech. (Hozzáférés: 2014. augusztus 14.)
- ↑ Samsung Introduces Galaxy Alpha, the evolution of Galaxy Design. Samsung Tomorrow. (Hozzáférés: 2014. augusztus 14.)[halott link]
- ↑ Samsung's Exynos 5433 is an A57/A53 ARM SoC. AnandTech. (Hozzáférés: 2014. szeptember 17.)
- ↑ MP6530, Renesas Mobile, December 2012, <http://renesasmobile.com/share/products/datasheets/renesasmobile-datasheet-mp6530.pdf>. Hozzáférés ideje: 2013-09-17
- ↑ Allwinner UltraOcta A80 processor packs a PowerVR Series6 GPU with 64 cores. Imagination, 2014. március 1. [2014. szeptember 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. szeptember 28.)
- ↑ A80. Allwinner, 2014. május 1. [2014. május 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. május 1.)
- ↑ MT6595 Octa-core LTE platform. MediaTek, 2014. április 1. [2014. április 15-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. április 14.)
- ↑ Snapdragon 808 processor. Qualcomm, 2014. április 1.
- ↑ Snapdragon 810 processor. Qualcomm, 2014. április 1.
Források
szerkesztés- Általános hivatkozások
- Nicolas Pitre: Linux support for ARM big.LITTLE. LWN.net, 2012. február 15. [2012. október 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. október 18.)
- Paul McKenney: A big.LITTLE scheduler update. LWN.net, 2012. június 12. [2012. október 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. október 18.)
- Jake Edge: KS2012: ARM: A big.LITTLE update. LWN.net, 2012. szeptember 5. [2012. november 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. október 18.)
- Jon Stokes: ARM's new Cortex A7 is tailor-made for Android superphones. Ars Technica, 2011. október 20. (Hozzáférés: 2012. október 31.)
- Andrew Cunningham: ARM goes 64-bit with new Cortex-A53 and Cortex-A57 designs. Ars Technica, 2012. október 30. (Hozzáférés: 2012. október 31.)
Fordítás
szerkesztésEz a szócikk részben vagy egészben az ARM big.LITTLE című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
További információk
szerkesztés- big.LITTLE Processing
- big.LITTLE Processing with ARM CortexTM-A15 & Cortex-A7 (PDF) (teljes technikai magyarázat)