Szerző: Asztalos Olivér

2019. május 29. 18:45:00

Még egy lapáttal rátesz az ARM: jön a Cortex-A77

Tavaly bemutatott útitervének megfelelően jelentette be legújabb CPU-s mikroarchitektúráját, illetve az arra épülő első processzormagot az ARM. A brit tervezőcég Cortex-A77-es fejlesztése tovább növeli a tempót, amely az ígéret szerint 20-35 százalékkal múlja felül az idei év egyik slágerének számító Cortex-A76-ot.

Python everywhere! Gyere Pythonozni a HWSW rendezvényeire! Megmutatjuk, hogy a Python nem csak a fejlesztők nyelve, hiszen egyszerűsége miatt bárhol és bárki használhatja.

Bár legfrissebb fejlesztésénél az ARM nem eszközölt fundamentális módosításokat, az A77 több ponton eltér az épp egy éve bemutatott elődtől, amely számottevő gyorsulásban nyilvánulhat meg. A tavaly még Deimos kódnéven elhintett fejlesztés a Cortex-A76 által újonnan lefektetett alapokra építkezik, amivel a cég egy több generációra szóló családnak ágyazott meg. Ennek a vásárlópartnerek szempontjából egyik nagy előnye, hogy viszonylag könnyű rá frissíteni, a körítéshez nem kell hozzányúlni, maradhat a DynamIQ-ra felfűzött kialakítás a jól hatékonyságra kihegyezett Cortex-A55 magokkal együtt.

a77_frontend

Az ARM a klasszikus gyorsítótárakhoz nem nyúlt, így az L1-es tárak kapacitása továbbra is 64 kilobájt, az L2 mérete pedig igénytől függően 256 vagy 512 kilobájt lehet. Megjelent azonban a front-endben az Intelnél a Sandy Bridge, az AMD-nél pedig a Zen óta jelen lévő micro-op cache. Ebbe a már lefordított utasítások micro-opjai kerülnek, amelynek pozitív következményei nyilvánvalóak: találat esetén nincs szükség az utasítás cache olvasására, sem pedig utasításdekódolásra, így az utasításoknak kettővel kevesebb futószalag-lépcsőn kell áthaladniuk, továbbá a téves elágazásbecslés büntetése is ennyivel kevesebb. A tár 1536 uop-ot képes befogadni amely egyezik a Skylake, de elmarad a Zen 2048, valamint a tegnap bemutatott Sunnycove 2304 micro-op-os kapacitásától. Az ARM szerint ez arra elég, hogy a hit-rate (vagyis annak az aránya, hogy a bekért adat már a gyorsítótárban hever) 85 százalékos lehet, amely mind a végrehajtás sebességére, mind pedig a disszipációra kedvező hatással lehet.

A front-endél maradva: Az utasítások betöltésének sávszélessége ciklusonként nőtt, a késleltetés pedig csökkent. Az elágazásbecslés most is fejlődött, amelynek egyik kulcsa a ciklusonként 32-ről 64 bájtra növelt áteresztőképesség, még tovább redukálva a lehetséges hibás predikciók számát. Szintén ezt szolgálja a megnövelt Branch Target Buffer (BTB), amely 6000 helyett már 8000 bejegyzést képes tárolni. Ezzel, illetve a feljebb említett micro-op cache közreműködéssel a téves elágazásbecslések büntetése 11-ről 10 ciklusra csökkent. Ugyancsak javult a már amúgy is rendkívül hatékony előbetöltés, amelyet a mérnökök további egységekkel értek el. Ehhez társul az úgynevezett rendszertudatos működés, amely a platformonként változó memóriakarakterisztikához igyekszik hozzáigazítani a rendszert.

a77_decode

A dekódoláshoz is hozzányúlt az ARM, ahol felbukkant a legutóbb az Nvidia Denver kódnevű szakadár magjánál látott dinamikus kódoptimalizáció. A fejlesztés nem csak a nevében hasonlít, annak ugyanis az a feladata, hogy optimális sorrendbe állítsa a végrehajtásra váró utasításokat. A modern processzorokban ugyanis az áramkörök egy számottevő része nem az utasítások konkrét végrehajtásával foglalkozik, hanem azok átrendezésével, hogy a végrehajtóegységek a legmagasabb kihasználtsággal működhessenek. Anno ezt az Nvidia azért vetette be, hogy elég legyen egy egyszerűbb, in-order elven működő áramkört megtervezni. A Cortex-A77 azonban out-of-order logikát alkalmaz, amelyhez a Denverrel ellentétben nem egy kvázi szabadon programozható, hanem egy fix kódoptimalizációt társítottak a tervezők, ezzel növelve a hatékonyságot.

Az ARM a dekódert 50 százalékkal szélesítette ki, amely ezzel már 6 utasítás széles. Az A77 tehát egy ciklus alatt 6 utasítást képes lefordítani, amely a felsőkategóriás magok aktuális mezőnyében magas értéknek számít. Összevetés gyanánt: a Samsung M4 ugyancsak 6, az Intel Skylake 5, az AMD Zen 4 darab utasítás dekódolására képes. Ezzel párhuzamosan a ROB (ReOrder Buffer), tehát az átrendez körpuffert kapacitása is nőtt, 128-ről 160-ra. Ezen a téren láthatóan továbbra is takarékoskodik az ARM, a Samsung M4 ugyanis 228, az Intel Skylake pedig 224 bejegyzésre van felkészítve.

a77_exec

A front-end és a dekóder egyes fejlesztései most is a végrehajtók hatékonyabb etetését szolgálják. Az ARM ezen a fertályon is bővített, a további egy darab ALU-val az integer műveletek elvégzéséhez már 4+2 darab port áll rendelkezésre, amelyből kettő az elágazásbecslés működését szolgálja. A beépített plusz ALU képes egyciklusos, illetve a komplexebb kétciklusos művelet végrehajtásra is, ez pedig a tervezőcég szerint komoly előrelépést jelent számítási teljesítményben. Ugyancsak említésre érdemes, hogy immár két port képes AES műveletek elvégzésére, mely a titkosítást alkalmazó szoftverek esetében hozhat jelentős gyorsulást.

Mire lesz ez elég?

Összességében elmondható, hogy az ARM mindössze egy év után szokatlanul sok mindent átrajzol az A76-on. (Az Intel egykori, rendkívül sikeres stratégiájában ez a lépcső egyértelműen "takknak" számított volna.) A munkálatok természetesen jóval korábban elkezdődtek, mely alapján a tervezőcég nagyon komolyan gondolja, hogy pár éven belül számítási teljesítményben (is) faképnél hagyja az x86-os CPU-kat.

a77_vs_a76

Ezt támasztja alá, hogy belső SPEC benchmarkok alapján 20-35 százalékos IPC növekedést mért a brit tervezőcég, vagyis azonos órajelen ennyivel volt gyorsabb az A76-nál az A77, amely a változatlan, 7 nanométeres csíkszélességet, illetve a 17 százalékos területnövekedést tekintve tetemes ugrás. Összevetés gyanánt: az Intel szűk 4 év alatt csak 18, az AMD pedig bő 2 év alatt 13-15 százalékos előrelépést ért el.

a címlapról

Hirdetés

Python everywhere!

2020. február 23. 11:54

Gyere Pythonozni a HWSW rendezvényeire! Megmutatjuk, hogy a Python nem csak a fejlesztők nyelve, hiszen egyszerűsége miatt előszeretettel használják az üzemeltetők és DevOps szakemberek, tesztelők, illetve az adattudósok is, és elfut szinte bárhol, a mikrovezérlőktől egészen a böngészőkig.