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-X2: nejvýkonnější architektura od ARMu

Výkonné jádro Cortex-X2 navazuje na architekturu Cortex-X1 (podrobnosti o ní najdete zde) a má stejnou úlohu, tedy zajistit co nejvyšší jednovláknový výkon. Důležité je, že ARM u svých jader Cortex řady A vždy mířil na to, aby byl výkon vybalancovaný s dobrou energetickou efektivitou a zároveň také jádro nebylo příliš velké co do plochy čipu. Cortex-X2 je navržen tak, že jde za vyšším výkonem i tam, kde už to znamená, že má nižší energetickou efektivitu (spotřeba Cortexu X1 v mobilech zdá se dosahovala až 3,5–5,0 W) i menší efektivitu ve vztahu mezi výkonem a plochou zabranou na čipu.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

V mobilech proto toto jádro někdy může být třeba jen jedno, doplněné Cortexy-A710. ARM nicméně zmiňuje, že by toto jádro mohlo být používáno v „zařízeních s větší obrazovkou“, což by mohlo naznačovat, že by se mohly třeba od Qualcommu objevit čipy s touto architekturou pro notebooky, kde by už snad těchto jader mohl najednou figurovat více.

První ARMv9, bez 32 bitů

Zdá se, že Cortex-X2 není úplně zbrusu nová architektura, spíše jde o evoluční zlepšení stavěné na základě předchozího X1 (za návrhem stojí tým ARMu v texaském Austinu). Přidání podpory pro všechny funkce ARMv9 ale samozřejmě vyžadovalo značné přepracování všeho možného. ARM uvádí, že podnikl mnoho cílených úprav ve všech částech.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

Další velká změna je, že z jádra byla odstraněna všechna podpora pro spouštění 32bitových aplikací, toto jádro už tedy podporuje jen a pouze 64bitový režim, což patrně zjednodušilo návrh a ušetřilo nějaké tranzistory.

Tip: ARM uvádí novou generaci CPU architektury. ARMv9 má SVE, SVE2 a bezpečnostní novinky

Důraz na predikci větvení

ARM uvádí, že by měl být výrazně zlepšený prediktor větvení, který ARM považuje za klíčový pro efektivitu. Prediktor pracuje s větším objemem informací, má větší efektivní kapacitu Branch Target Bufferu. Úspěšnost má být znatelně lepší než u starší generace, počet chybně odhadnutých větvení na určitý počet instrukcí vykonaného kódu má být proti X1 výrazně nižší.

Predikce větvení také běží samostatně odděleně od kroku Fetch, což ovšem už měly předchozí generace. Tento přístup má za cíl vykrývat „bubliny“ ve využití výpočetních jednotek zaviněné chybnou predikcí. Cílem je, aby tyto části frontendu mohly běžet napřed před zbytkem zpracování a v případě chybné predikce měly pár cyklů navíc k tomu, aby začaly zpracovávat správnou cestu kódem, než dalším fázím zpracování dojde práce.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

Zajímavé je, že ARM zredukoval hloubku celé pipeline z 11 na 10 cyklů – jeden stupeň vykonávání byl eliminován ve fázi dispatch, která dřív zabrala dva cykly. Přitom jádra Cortex již teď měla na dnešní poměry spíš dost krátkou pipeline, pročež také nedosahují frekvence výrazně přes 3 GHz. Ovšem zkrácení pipeline zkracuje postih za nesprávně odhadnuté větvení a tím zlepšuje přímo IPC.

Podle ARMu byl zisk ve výkonu dost velký na to, aby ospravedlnil poměrně velký dopad na plochu čipu a také dalekosáhlé redesignování jádra, které si toto vyžádalo. Přes zkrácení pipeline údajně nemá utrpět frekvenční potenciál jádra, má tedy zhruba běhat na stejných taktech jako X1, nebo to alespoň ARM slibuje.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

Hlubší fronty

ARM zdá se nepřidal výpočetní jednotky ani nerozšířil jádro na zpracování více operací za cyklus, (počet ALU tak zůstal na čtyřech, pro ty, kdo sledují tento parametr). Out-of-order fronty ale byly naopak posíleny, reorder buffer se z 224 položek zvětšil na 288 položek, a je tedy už větší než u Zenu 3 (ten má na svůj výkon značně malou hloubku 256 položek, zatímco Ice Lake/Tiger Lake od Intelu 352). Efektivně je hloubka i lepší, protože jádro prý také má zlepšené schopnosti spojovat operace dohromady, díky čemuž pak zabírají jen jednu položku místo dvou.

Prohloubené jsou i různé fronty Load/Store části, tedy buffery, do nichž se řadí operace čtení a zapisování do do paměti (cache). Mají být až o 33% větší, takže jádro může naráz zpracovávat víc těchto operací a tím je lépe optimalizovat. L1 TLB pro data byl zvětšen ze 40 na 48 položek. Prodloužení různých těchto front obecně zvyšuje IPC. Macro-Op cache zůstala stejná a má 3000 položek.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

Dále také mají být zdokonalené prefetchery, včetně vylepšeného temporálního prefetcheru, který měly už jádra X1 a A78 a byl víceméně unikátní. Stejně jako prediktory větvení je prefetch oblast, ve které se dělají neustále inkrementální evoluční zlepšení a současně jde o vysoce důležitý faktor ve zlepšování IPC. Podobně jako predikce větvení totiž prefetch může rozhodovat o tom, jestli jádro bude mít možnost vytížit své jednotky, nebo bude přešlapovat naprázdno při čekání na data a tím mít nízký výkon.

SVE a SVE 2 konečně

Spolu s ARMv9 také je konečně podporována nová architektura SIMD instrukcí v jednotce FPU/SIMD: SVE a SVE 2 s flexibilní šířkou vektoru. Ukazuje se ale, že s tou flexibilitou to je lehce omezenější, než se možná čekalo. Na první pohled by se mohlo zdát, že flexibilní šířka elegantně řeší problém s big.LITTLE procesory, kde malá jádra nemohou mít velkou šířku vektoru, ale velká ano (osobně jsem si to aspoň tak představoval).

Ovšem pokud je toto možné, zatím tak daleko ARM nedospěl, právě asi kvůli kompatibilitě s malými jádry má Cortex-X2 šířku jednotek, ale i zpracovávaného vektoru SVE jen 128 bitů, tedy stejnou, jako měly jednotky Neon v Cortexu X1 (ve světě x86 procesorů je to srovnatelné s instrukcemi SSE*, AVX* jsou již 256bitové). FPU/SIMD pipeline jsou čtyři, takže hrubý výpočetní výkon se nezměnil.

Kde se výkon zlepší, bude v AI aplikacích běžících na těchto SIMD jednotkách. Jádro bude podporovat 16bitové hodnoty bfloat16 a 8bitové INT8, což má umožnit až dvojnásobný výkon v AI aplikacích. Ale ty samozřejmě musí být překompilované a/nebo přepsané, aby používaly patřičné nové instrukce.

Výsledné zvýšení výkonu na 1 MHz

Jak se tedy všechny tyto změny podepsaly na výkonu jádra? Zdá se, že Cortex-X2 nebude nějaký velký skok, kde by se IPC zlepšilo skokově – toto možná dodá příští generace, ale tato první řada ARMv9 je konzervativnější. ARM uvádí, že Cortex-A2 má mít až o 16 % vyšší výkon při stejné frekvenci, což znamená o 16 % lepší IPC.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

Je to ovšem lehce vylepšené srovnání, protože jde o predikci pro jádra se stejnou 64KB L1 a 1MB L2 cache, ale pro Cortex-X2 ARM použil 8MB L3 cache, zatímco pro Cortex-X1 jen 4MB. Toto může samo dělat několikaprocentní zlepšení, takže reálný nárůst IPC je asi nižší a marketing si tu trošku zamanipuloval (ovšem přiznaně). Vedle toho ARM slibuje také ten až 2× vyšší výkon v AI, což je onou podporou bfloat16/INT8.

ARM také ukázal tento graf, podle kterého bude Cortex-X2 svůj vyšší výkon dosahovat také za cenu určitého zvýšení spotřeby, pokud by obě jádra byla na stejném procesu.

Architektura ARM Cortex-X2 Zdroj: ARM, via AnandTech

V mobilních zařízeních tedy může nastat problém, kdy stále 5nm Cortexy-X2 nebudou schopné dosáhnout proklamovaný výkon, protože spotřeba (problematická už u Cortexu-X1 v 5nm Qualcomm Snapdragonu 888Samsung Exynosu 2100) bude bránit v delším udržení maximální frekvence. V noteboocích by ale na vyšší příkon (pořád se asi bavíme jen třeba o 6–8 W) výměnou za lepší výkon asi celkem schoval a vyplatil.

Článek pokračuje na další straně.

Galerie: Architektura ARM Cortex-X2

Předchozí
Následující

10 KOMENTÁŘE