ARM uvedl nová jádra Cortex-A78 a Cortex-X1. O 30 % lepší IPC, výkon konkurující Applu

Cortex-A78 je spíš mírná evoluce jádra A77 a hlavně zlepšuje spotřebu. Cortex-X1 je však první z nové linie jdoucí po maximálním výkonu konkurujícím Applu (a Intelu/AMD).

3

V posledních letech vydává ARM každý rok nové „big“ jádro pro mobily – loni Cortex-A77, o rok před tím Cortex-A76 a tak dále. Letos to bude trochu jiné. Vychází totiž další pokračovatel v této linii Cortex-A78, ale zároveň ještě jedno výkonnější jádro.

Novinka Cortex-X1 otevírá nový o třídu vyšší výkonnostní segment a ARM se v této linii pouští za vyšším výkonem se širším jádrem. Pokud vám vadilo, že jádra ARM Cortex se zaměřují jenom na energetickou efektivitu a minimalizaci zabrané plochy na čipu a nekonkurují ve hrubém výkonu jádrům Apple, linie Cortex X jde přesně po tomto: výkonnější a „širší“ architektuře s vyšším IPC.

Předchozí
Následující

Cortex-X1: ARM leze do o kategorii vyššího zelí nyní patřícího jen Applu

Mainstreamové Cortexy A76, A77 a A78 jsou štíhlejší jádra než třeba architektury M3 a M4 Samsungu a jádra Apple. Bývá to vnímáno jako deficit, který mají ARM procesory pro telefony s Androidem proti telefonům od Applu. Ale ves kutečnosti tento rozdíl v absolutním výkonu nikdy asi nebyl jen v tom, že má Apple víc peněz na výkon a/nebo lepší inženýry, i když finanční faktor přítomen asi také bude.

Apple prodává celé telefony a v průměru má asi ze všech výrobců nejvyšší ceny a výdělky na jedno zařízení. Čipy si navrhuje sám a nese cenu jen za vyrobené wafery. Ale ta se v mnohasetdolarové částce celkem ztrácí – výrobní náklady samotného procesoru tedy mohou být výrazně vyšší, než co je jinak únosné.

Slajdy k vydání architektury ARM Cortex X1 – 02Naproti tomu firmy jako Qualcomm a MediaTek prodávají samotné čipy výrobcům telefonů a musí si konkurovat cenou. Kvůli tomu jsou pod tlakem mít čip co nejmenší, protože pokud by zdražili, levnější konkurent je může podtrhnout. Kvůli tomuto se na ploše jader ve většině čipů spíše šetří a ARM Holdings musí respektovat tuto poptávku. Menší jádra ARM Cortex také typicky mají zátěžový příkon až poloviční proti jádrům Applu. I toto dovoluje zlevnit celkový návrh.

Proto byla jádra Cortex dosud vždy menší a ač měly poslední Cortexy stejný nebo teď už i lepší výkon na 1 W proti Applu, absolutní výkon byl vždy nižší. Ovšem s Cortexem-X1 přináší ARM Holdings další architekturu, která přinese výkonnější jádro, jehož roli z výše uvedených důvodů Cortexy řady A nehrály.

Slajdy k vydání architektury ARM Cortex X1 – 03
Slajdy k vydání architektury ARM Cortex-X1

Umožněno je to tím, že linie X asi bude mít sekundární použití v serverech (coby architektura Neoverse). a vedle toho také tím, že ARM využívá stavební prvky z menšího jádra A78 a buduje z nich příbuzné IP. Tím se ušetří náklady, stejný tým v podstatě pracoval na jádru X1 zároveň s jádrem A78. U tohoto jádra umožnilo „rozštěpení“ udělat změny, které třeba pomáhají efektivitě na úkor výkonu. U jádra X1 je to naopak – díky tomu, že existuje i A78, může Cortex-X1 dělat změny, které efektivitě ubližují v zájmu výkonu.

Cortex-X1 alias Hera

Mimochodem, kódové označení jádra X1 je Hera, tedy Herkulova nevlastní matka, která mu ráda znepříjemňovala život (trošku nám tu hapruje jazyk, Hercules je latinská podoba jména Hérakles, Héra zase řecká, latinsky by mělo být Juno, což už ale ARM dřív použil pro vývojovou desku platformy ARMv8).

Širší jádro

Cortex-X1 podporuje stejnou generaci instrukční sady(ARMv8.2) jako A78, jelikož mají stejné základy, ale představuje celkově širší architekturu. Začíná to u dekodérů, kterých je pět místo čtyř a dokáží tedy zpracovat pět instrukcí za takt. A jeho mOP cache dokáže poslat k dalšímu zpracování až osm dekódovaných macroOPů místo šesti za cyklus. Pokud tedy procesor jede jenom z mOP cache, dokáže zpracovávat osm instrukcí za takt.

Slajdy k vydání architektury ARM Cortex X1 – 04
Srovnání architektury ARM Cortex-X1 a Cortex-A78

mOP cache je také zvětšená na dvojnásobnou kapacitu, což by mělo mít přímý dopad na IPC. Podobnou operaci provedl také Zen 2, kde ale muselo AMD současně zmenšit tradiční L1 pro kód, což ARM neudělal. Kapacita mOP cache je 3000 instrukcí, což je méně než u Zenu 2 (4000) ale víc než u Intelu – jeho Ice Lake/Sunny Cove má „jen“ 2250 položek, Skylake má 1500. Zvětšený je proti Cortexu-A77/A78 také L0 BTB (branch target buffer) ze 64 na 96 položek.

Podobně jako z mOP cache může proudit až osm instrukcí za takt, lze tento počet operací zpracovat také ve fázi přejmenování registrů a dispatch. „Okno“, v kterém se provádí přehazování operací při out-of-order vykonávání instrukcí, je výrazně větší než u Cortexu A78 – ze 160 instrukcí se nafouklo na 224.

Toto by mělo přímo zvyšovat IPC. A současně jde o jednu z věcí, kde bylo třeba obětovat maximální efektivitu – proto dosud Cortexy držely kratší fronty proti třeba x86 procesorům. Také LSU pipeline mají údajně o třetinu větší okno pro optimalizaci I/O.

Slajdy k vydání architektury ARM Cortex A78 – 05ALU pořád jen čtyři, ale výkon FPU se zdvojnásobil

Kde kupodivu rozšíření nenastalo, je u hlavního výpočetního backendu, kde zůstaly stále stejné čtyři ALU, místo aby ARM třeba zvýšil počet na šest. Opět jsou dvě jednoduché, dvě zvládající násobení (z nich jedna umí i dělení). K tomu dvě jednotky pro větvení, jako u Cortexu A78. Také tři AGU jsou stejné.

Slajdy k vydání architektury ARM Cortex X1 – 05
Slajdy k vydání architektury ARM Cortex-X1: schéma jádra a vykonávacích jednotek

Ovšem velké posílení nastalo v FPU/SIMD výkonu, který byl dosud slabým místem jader ARM Cortex. Cortexy A76, A77 a A78 mají dvě jednotky pro SIMD operace Neon. Ve floating point operacích mají šířku 128 bitů jako operace SSE u x86 (ale podle některých informací je pro snad celočíselné operace výkon poloviční, což by efektivně dávalo 64 bitů jako u MMX). Dnešní Intely a AMD mají mnohem vyšší SIMD výkon.

U Cortexu-X1 to ARM změnil a tyto dvě pipeline v podstatě sakumprásk zkopíroval a přidal ještě jednou (včetně mixu instrukcí, které umí). Díky tomu má X1 čtyři pipeline pro Neon a propustnost těchto SIMD výpočtů může být až dvojnásobná. Měla by asi být podobná jako u architektury AMD Zen (předtím, než Zen 2 rozšířil jednotky na 256 bitů).

Dvojnásobné cache

Další oblast, kde se zvyšuje výkon, jsou cache. U L1 jsou kapacity 64+64 KB už bez 32KB varianty. Datová L1 je zde ale složená ze dvojnásobku banků a poskytuje dvojnásobnou propustnost. L2 cache (ta je vyhrazená pro jádro) byla zvětšená z 512 KB na 1 MB. A také sdílená L3 cache je dvojnásobná – skýtá už 8 MB.

Slajdy k vydání architektury ARM Cortex X1 – 07L2 nabízí také dvojnásobnou propustnost. Ovšem zároveň je u ní dosažená velmi nízká latence jen 10 cyklů. Přitom srovnatelná 1MB L2 cache u ARM jádra Neoverse N1 pro servery měla latenci 11 cyklů). Zatímco Cortex-A78 zmenšil L2 TLB, zde byl naopak zvětšen na 2048 stránek.

Cortex X1 má ale stále krátkou 13stupňovou pipeline, která je stavěná na vysoké IPC díky malým postihům za neodhadnuté větvení (10 cyklů). Toto je něco, co se nedalo v rámci společného vývoje s Cortexem-A78 asi změnit a bude to limitovat výkon architektury X1. Takováto optimalizace na krátkou pipeline totiž snižuje dosažitelné frekvence. Cortex-X1 bude tak asi mít podobné maximální takty a v praxi se asi budou nejrychlejší implementace pohybovat pořád okolo 3 GHz.

Článek pokračuje na další stránce.

Předchozí
Následující

3 KOMENTÁŘE