ARM big.LITTLE

A Wikipédiából, a szabad enciklopédiából

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és]

A 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é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.[7]

In-kernel switcher (CPU migráció)[szerkesztés]

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 (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és]

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.[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é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[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és]

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)[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]

  1. 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.
  2. 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.
  3. ARM's new Cortex-A12 is ready to power 2014's $200 midrange smartphones. The Verge, 2014. április 1.
  4. 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.)
  5. 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.)
  6. 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.)
  7. Peter Clarke: Benchmarking ARM’s big-little architecture, 2013. augusztus 6. (Hozzáférés: 2013. szeptember 17.)
  8. 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.)
  9. Brian Klug: Samsung Announces big.LITTLE MP Support in Exynos 5420. AnandTech, 2013. szeptember 11. (Hozzáférés: 2013. szeptember 16.)
  10. 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.)
  11. 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.)
  12. 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.)
  13. 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.
  14. Samsung Announces Exynos 5430: First 20nm Samsung SoC. AnandTech. (Hozzáférés: 2014. augusztus 14.)
  15. Samsung Introduces Galaxy Alpha, the evolution of Galaxy Design. Samsung Tomorrow. (Hozzáférés: 2014. augusztus 14.)[halott link]
  16. Samsung's Exynos 5433 is an A57/A53 ARM SoC. AnandTech. (Hozzáférés: 2014. szeptember 17.)
  17. MP6530, Renesas Mobile, December 2012, <http://renesasmobile.com/share/products/datasheets/renesasmobile-datasheet-mp6530.pdf>. Hozzáférés ideje: 2013-09-17
  18. 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.)
  19. 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.)
  20. 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.)
  21. Snapdragon 808 processor. Qualcomm, 2014. április 1.
  22. Snapdragon 810 processor. Qualcomm, 2014. április 1.

Források[szerkesztés]

Általános hivatkozások

Fordítás[szerkesztés]

Ez 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]

Kapcsolódó szócikkek[szerkesztés]