ARM uvádí ARMv9 jádra: Cortex-X2 a A710, nové malé jádro Cortex-A510 je jako Bulldozer

10

ARM vydal nová jádra Cortex, první s podporou ARMv9 a SVE. Rozebrali jsme jejich architekturu a výkon, který s nimi ARM slibuje.

Před nedávnem ARM představoval podrobnosti své serverové architektury Neoverse V1 a částečně o generaci novější Neoverse N2. Právě jádro Neoverse N2 bylo zajímavé tím, že jde o první oznámenou architekturu již přinášející verzi instrukční sady ARMv9. ARM sdělil, že serverové jádro N2 je derivátem jádra řady Cortex pro mobilní zařízení, notebooky a PC, které se teprve chystá k uvedení a také tedy bude prvním ARM jádrem s podporou ARMv9 pro široké masy uživatelů.

Tato první ARMv9 jádra „pro běžný lid“ teď firma ARM oficiálně odhalila, a jsou ve skutečnosti rovnou tři: základní „prostřední jádro“ Cortex-A710, které navazuje na linii A76, A77 a A78. Ale současně i nové nejvýkonnější jádro Cortex-X1 zaměřené na co nejvyšší jednovláknový výkon.

Do třetice pak ale přichází také nové malé úsporné jádro, Cortex-A510. A to je také velmi zajímavé. Jednak ARM tuto linii už velmi dlouho neaktualizoval a Cortex-A55 už byl poněkud vousatý. Navíc je ale Cortex-A510 zcela nová architektura a do této kategorie CPU architektur přináší velké změny. Některé paradoxně budete znát z minulosti, a to z procesorů, které byste si v tomto kontextu asi nepředstavili.

Předchozí
Následující

Cortex-A510: úplná novinka v malých jádrech se starým překvapením

Zatímco X2 a A710 jsou poslední výhonky z už léta se odvíjející linie, třetí jádro je úplně nové a mělo by jít o novou architekturu, tentokrát vyvinutou týmem ARMu v Cambridge v průběhu minulých čtyř let. Také zde přišlo nové trojmístné označení, jde ovšem o následníka Cortexu-A55.

Cortex-A510 bude plnit roli malého jádra, zaměřeného na co nejnižší spotřebu a velmi malou zabranou plochu. Také toto jádro podporuje instrukční sadu ARMv9, oproti A710 je to už ale zase bez 32bitové kompatibility.

Zatímco Apple (a v budoucnu Intel) svá malá jádra staví relativně výkonná a s out-of-order architekturou, ARM zdá se toto nesdílí, nejspíš právě kvůli nárokům na energii a počet tranzistorů – tato jádra totiž musí pokrývat procesory pro levné telefony, kde je tlak na co nejnižší cenu. Cortex-A710 je proto opět in-order architektura. Ovšem ARM slibuje, že z něho přesto vymáčkl značný výkon.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Jako Bulldozer?

Největší pozdvižení na začátek. ARM pro toto úsporné in-order jádro převzal koncepci, která proslavila (ale typicky spíš negativně) architekturu AMD Bulldozer a její deriváty. Cortexy-A510 budou mít totiž jednotku SIMD/FPU sdílenou mezi dvěma jádry, čímž vzniká stavební kámen nazvaný komplex. ARM tomu říká Merged-Core architektura.

Komplex je tvořen dvěma spojenými jádry, která mají každé vlastní celočíselnou část. A to celou včetně frontendu, dekodérů a fetche, takže integrace/sdílení není tak velká jako u Bulldozeru. Ale L2 cache, L2 TLB a zejména FPU a SIMD jednotka jsou přítomné jen v jedné instanci sdílené mezi oběma polovinami komplexu. Mimo SIMD operací je takto sdílená také akcelerace šifrování.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

V mobilním procesoru tak typicky místo čtyř jader A55 budete mít dva komplexy Cortex-A510, nicméně ty se budou chovat jako čtyři jádra. Architektura podle ARMu umožňuje zredukovat komplex na 100% plnohodnotné jádro tím, že v něm bude se stejnou FPU jednotkou umístěno jen jedno celočíselné jádro místo dvou. Toto ale nebude asi příliš efektivní na zabranou plochu, takže pravděpodobně nepůjde o častou implementaci.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Důvod použití sdílené FPU je asi právě snížení plochy jader. Cortex-A710 má totiž jako předchozí jádra podporu pro SVE, a to buď s dvěma 128bitovými, nebo dokonce jen s dvěma 64bitovými pipeline (v big.LITTLE procesoru mohou být i 64bitové, ale šířka vektoru z pohledu softwaru bude kvůli kompatibilitě pořád 128bitová, všechny SVE instrukce pak budou konzumovat obě pipeline naráz).

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Podpora těchto SIMD instrukcí ale zřejmě je o dost náročnější a potřebuje víc tranzistorů, což vedlo ARM k tomuto pokusu plochu jader (přesněji celého jejich klastru) snížit. Protože SIMD instrukce jsou méně běžné než základní celočíselné operace, může zvlášť pro malá jádra toto být dobrý kompromis. Bulldozer neměl zas tak špatný výkon ani v úlohách, které SIMD silně využívaly, takže v malých jádrech, určených spíše pro pomocné účely, by to mohlo být úspěšnější než v AMD FX. Při použití dvou 128bitových pipeline je ostatně výkon této jednotky teoreticky 2× než výkon jednotky Cortexu-A55, takže zde by skutečně nemusela nastat regrese ve finálním výkonu. ARM tvrdí, že negativní dopad je jen v jednotkách procent.

In-order jádro s výkonem (starého) out-of-order jádra

Samotné jádro Cortex-A510 je 3-wide, tedy stavěná na zpracování až tří instrukcí za takt s jednoduchým in-order vykonáváním instrukcí. Neumí tedy za běhu instrukce přeházet v pořadí, aby tím zlepšilo výkon skrze maximální využití svých výpočetních jednotek. Více instrukcí najednou může vykonat, jen když sou v kódu hned vedle sebe a jejich složení odpovídá volným jednotkám.

Tuto slabinu ARM kompenzuje použitím pokročilých prediktorů větvení a prefetcherů z Cortexu X2. Jádro má 32KB+32KB nebo 64KB+64KB L1 cache, L2 cache v komplexu může mít kapacitu od nula do 512 KB.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Zatímco fetch jádra bude číst až čtyři instrukce (128 bitů kódu) za cyklus, dekodéry už jsou jen tři, což dává onen limit třech instrukcí za cyklus. To je ovšem zlepšení proti Cortexu-A55 s dvěma dekodéry.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Stejně jako dekodéry také byl zvýšen počet ALU ze dvou na tři, dále je ve celočísleném výpočetním backendu komplexní jednotka pro násobení nebo dělení a jednotka zpracovávající větvení.

Load/Store jednotky jsou dvě a umožňují buď jedno čtení a jeden zápis za cyklus, nebo dvě čtení (dva zápisy nelze), šířka čtení je 128bitů, tedy dost pro 128bitový vektor Neon/SVE. Cortex-A55 měl šířku těchto cest jen 64 bitů. Navíc mělo toto jádro podporu jen pro jedno čtení a jeden zápis za takt, nepodporovalo místo toho dvě čtení za takt (mělo totiž vyhrazené jednotky store a load, kdežto A710 má jednotky load a kombinovanou load/store).

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Podle ARMu se u této architektury podařilo přes in-order zpracování instrukcí dosáhnout výkonu, který se blíží do určité míry velkým jádrům v minulých procesorech. Cortex-A510 má údajně zaostává jen o 10 % v IPC za out-of-order jádrem Cortex-A73 z roku 2017. To jinak pořád často používají levné telefony jako „big“ jádro (pokud tedy SoC není ještě lacinější a nemá jen samá jádra CortexA-55/A53). Je ovšem pravda, že A510 také dosáhne nižších frekvencí, jen asi 85 % taktu, který by zvládl Cortex-A73 (a výkon je IPC krát takt). Ovšem Cortex-A510 má zejména spotřebovávat o 35 % méně energie.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Tímto srovnáním chce automaticky ARM ukázat, že in-order jádro nemusí automaticky znamenat pomalost, ovšem je pravda, že Cortex-A73 je ještě jádro z doby, než začal ARM dělat největší pokroky ve výkonu (pak přišly kumulativně Cortexy A75, A76, A77 a výkon se dostal úplně jinam).

IPC

Ve srovnání s Cortexem-A55 coby přímým předchůdcem má nový Cortex-A510 dosáhnout až o 35 % lepší výkon v SPECint2006, o 50 % lepší výkon v SPECfp2006 (asi půjde o jednovláknový test, takže se neprojeví postih ze sdílení FPU). V LMbench má dokonce být nárůst výkonu až 62 %. Toto má být při stejných frekvencích, ale zase je zde ten problém, že ARM srovnává stará jádra s 4MB L3 cache s novým opatřeným 8MB L3 cache, což způsobuje, že nárůst IPC vypadá lepší, než co jádro samo o sobě dosáhlo.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

Cortex-A510 však při výrobě stejným procesem má mít sice výrazně vyšší maximální výkon, ale také s o dost vyšší spotřebou. Efektivita se má zlepšit také, ale méně, než výkon. Pokud by se obě jádra zekvalizovala na stejnou spotřebu, pak bude mít Cortex-A510 o 10 % vyšší výkon. Při stejném výkonu (který A510 dodá už při nižším taktu) má být spotřeba nižší až o 20 %, což ale platí pro pásmo, kdy A55 běží na svých nejvyšších možných frekvencích, které jsou méně efektivní. Jinak se na nižších taktech podle grafu ARMu křivka efektivity de fakto překrývá s novým jádrem, což by znamenalo, že jádro A510 dosáhlo jen parity v efektivitě a čím se odlišuje, je schopnost vyškálovat výkon výš než A55.

Architektura ARM Cortex-A510 Zdroj: ARM, via AnandTech

I zde lze tedy říct, že ARM neudělal v této generaci nějaké revoluční pokroky (ve výkonu ano, ale vycházíme z toho, že má měřítkem úspěchu malých jader být právě efektivita). Opět ale asi může platit, že v této generaci si vybralo daň přidání podpory pro ARMv9, takže v když je ta konečně z krku, možná se v dalších generacích objeví větší pokrok v úspornosti. Otázka samozřejmě je, kdy se další generace objeví, protože malá jádra ARM typicky neaktualizuje každoročně. Nyní by prý novější verze měly přicházet častěji, ale jednoleté odstupy to asi pořád nebudou.

Galerie: Architektura ARM Cortex-A510

Propojení DSU-110

ARM jinak pro tuto generaci jader jádra uvádí i novou propojovací logiku DynamIQ Shared Unit-110, která je úplně nově redesignovaná proti předchozímu propojení používanému v mobilních procesorech. Tato logika má vylepšit energetickou efektivitu i řadu dalších věcí, asi nejviditelnější novinka ale je, že podporuje větší maximální L3 cache – nově až 16 MB. To logicky může zvýšit výkon procesorů. Má ale stoupnout i propustnost, kterou jádra budou moci z L3 cache vytěžit, a to také propustnost dostupná pro jedno jediné aktivní jádro.

ARM DynamIQ Shared Unit-110 Zdroj: ARM, via AnandTech

Je zajímavé, že ARM změnil topologii tohoto propojení. Dříve nebyla její povaha prozrazována, ale dost možná šlo o crossbar, tedy plně propojenou sběrnici, kde mělo každé jádro jednotlivá přímá napojení na všechna ostatní.

Nyní ARM ale přešel na prstencovou sběrnici, jakou má Intel v desktopových a notebookových procesorech. Přesněji, jsou to prstence dva propojené, kdy každý obsluhuje čtyři jádra, přesněji čtyři bloky L3 cache, které k jádru přísluší (komplex dvou jader A510 zřejmě vystupuje jako jen jeden takový klient). Oba prstence jsou obousměrné a použití dvou propojených místo jediného má zkrátit maximální latence komunikace.

ARM DynamIQ Shared Unit-110 Zdroj: ARM, via AnandTech

Budou čtyřjádra nebo osmijádra Cortex-X2?

Na základě této propojovací logiky lze mít konfigurace začínající u jednoduchých čtyřjader (s dvěma komplexy) Cortex-A510 až k osmijádrovým procesorům. Ty mohou mít třeba dvě jádra A710 a šest (tři komplexy) A570, nebo složení 4+4. Podporovaná je i konfigurace čtyř A510, tří výkonnějších prostředních A710 a jednoho výkonného X2, což se asi objeví v mobilech – letošní čipy jako Snapdragon 888 a Exynos 2100 toto používají.

ARM DynamIQ Shared Unit-110 Zdroj: ARM, via AnandTech

Ovšem pro notebooky nebo PC už nyní ARM explicitně uvádí variantu, kdy by procesor měl čtyři prostřední jádra Cortex-A710 a k tomu čtyři výkonnější Cortexy-X2, Logika dokonce má již podporovat i úplně homogenní osmijádro se samými jádry Cortex-X2. To by mohlo mít maximální zátěžovou spotřebu třeba až 40–50W, při snížení frekvencí v all-core zátěži by to ale mohlo být docela použitelné i v noteboocích.

ARM DynamIQ Shared Unit-110 Zdroj: ARM, via AnandTech

U Cortexu-X1 ještě ARM vůbec podobné konfigurace jako možnost neuváděl a naopak uvedl design počítající pro osobní počítače a notebooky s osmi jádry Cortex-A78C. Proti tomu tedy teď nastává posun a je možné, že nyní nějaký partner ARMu opravdu vytvoří takový výkonnější procesor pro notebooky nebo dokonce desktopy.

Galerie: ARM DynamIQ Shared Unit-110

Zdroje: ARM, AnandTech

ARM uvádí ARMv9 jádra: Cortex-X2 a A710, nové malé jádro Cortex-A510 je jako Bulldozer
Ohodnoťte tento článek!
5 (100%) 7 hlasů
Předchozí
Následující

10 KOMENTÁŘE