ARMv9, registeruppsättning och instruktioner för icke-x86-processorer

För några veckor sedan, ARM introducerade den nionde generationen av uppsättningen register och instruktioner som används i processorer med ISA med samma namn. ARMv9 är namnet under vilket den nya versionen av denna ISA har döpts, vilken kommer att användas i framtida SoC för PostPC-enheter. Vad är ARMv9 och vad är nytt med tidigare versioner, hur kommer de framtida ARM-processorerna att se ut?

En ISA är inget annat än det språk som de olika processorerna förstår och markerar därför vad uppsättningen enor och nollor betyder i koden de kör. Binären för en x86 CPU har inte samma betydelse som binären för en ARM-processor till exempel.

ARMv9

Utvecklingen av teknik gör det dock nödvändigt att lägga till nya instruktioner till ISA, vilket ger dem möjlighet att lägga till nya funktioner för att öka deras prestanda, säkerhet när de bearbetar data eller möta nya utmaningar som presenteras för dem.

I den här artikeln ska vi prata om den nionde generationen av ISA ARM, som efter år syftar till lågförbrukande processorer och mikrokontroller har beslutat att vara mer ambitiösa och gå in på den marknad som kräver högsta prestanda, datacenter och hög prestanda dator eller HPC.

Skalbara vektortillägg 2

SVE ARMv9

Den japanska Fujitsu skapade för sin ARM-kärna en serie proprietära tillägg som heter SVE, som står för Scalable Vector Extensions. Från dess namn kanske du har gissat att vi pratar om en uppsättning SIMD-instruktioner. Låt oss inte glömma att neoninstruktioner har använts i processorer med ISA ARM i flera år. Vilket kommer att ersättas av SVE2-instruktionerna i ARMv9.

SVE skapades av Fujitsu för sin Fugaku superdator, som använder sina A64-FX-kärnor. Avsikten? Dra nytta av den dataparallellitet som krävs av vetenskaplig databehandling, som använder högre precisionstal. Detta översätts till mycket större SIMD-enheter och därmed fler bitar.

Eftersom ARM: s intresse är att föra sina kärnor till högpresterande datormarknad och servrar har de beslutat att anta SVE och slå ihop det med Neon för att skapa SVE2. Den största fördelen som SVE tillför Neon? Det här är storlek-agnostiska instruktioner, så det är inte nödvändigt att ha en version av varje instruktion för olika storlekar som är fallet med AVX-instruktioner på x86.

Minnesvärden i ARMv9

reinos ARMv9

Ett intressant koncept som ISA ARMv9 lägger till ekvationen är begreppet realms, som består av att kunna ta del av minnesadresseringen och göra att koden som körs i den inte påverkar resten av systemet, därför är det helt isolerad. Vilket är perfekt för implementering av virtuella maskiner där ett operativsystem körs samtidigt som ett annat på samma CPU.

Normalt har CPU: er olika privilegieringsnivåer, men med det världsomfattande konceptet som har lagts till i ARMv9 kommer det att bli möjligt att köra virtuella maskiner lättare på en CPU med ARM ISA, men fördelarna med detta är inte bara begränsade till virtuella maskiner, men kan också användas i specifika applikationer.

Så ARMv9 verkar vara en förlängning av ISA som är mer förberedd för datacenter och andra typer av datorer där virtualisering och säkerhet är mycket viktigare än andra funktioner. Inte överraskande är att ARM kriger mot Intel och AMD på server-CPU-marknaden, där x86-processorer dominerade marknaden fram till nu.

Tillägg för minnesmärkning

Tillägg för minnesmärkning ARM

De är inte nya för ARMv9 utan snarare för version 8.5. Dess nytta? Det är en mekanism som ansvarar för att hålla reda på all olaglig minnesåtkomst som görs av program. En olaglig åtkomst är inget annat än en åtkomst till en minnesadress som programmet inte har behörighet att komma åt. Vad är nyttan med detta? Eftersom det tjänar till att undvika det så kallade buffertöverflödet, är ett vanligt säkerhetsproblem i alla processorer som uppstår när mängden kopierad data överstiger minnesreserven och skriver oväntad kod i närliggande minnesadresser.

Om minnesöverflödet lyckas kommer den ursprungliga koden att ersättas med ny in-minneskod, som kommer att köras av CPU så snart den når minnet. Så det är viktigt att undvika detta, särskilt om vi talar om datacenter som tenderar att tjäna miljoner användare samtidigt och där ett buffertöverflöde kan användas för att stjäla komprometterade användardata.

MTE är inte en del av själva ISA utan är en mekanism implementerad i Northbridge av ARMv9-processorer som spårar alla minnesåtkomster och vars funktionalitet är att undvika minnesflöden på ett transparent sätt.

ARMv9 endast för datacenter och servrar?

datacenter

Nyheterna i ISA ARMv9 som vi har beskrivit i de föregående avsnitten har en markerad specifik karaktär och har ingenting att göra med användningen i de klassiska enheterna där ISA ARM vanligtvis ses. Av dem alla kallar det SVE kraftfullt, eftersom en av anledningarna till att du vanligtvis inte ser stora SIMD-enheter i processorer för PostPC-enheter är den enorma energiförbrukning som deras användning antar.

För närvarande är de enda två kärnorna som ARM tillkännagav två från familjen Neoverse. Å ena sidan NeoVerse V1 under kodnamnet “Zeus” och å andra sidan Neoverse N2 under kodnamnet “Perseus”. Det här är inte kärnor som du kommer att se i en framtida smartphone, utan i datacenter och servrar för högpresterande datorer av företag som Amazon AWS, Oracle, Tencent, Google, etc.

ARM har ännu inte meddelat någon kärna för PostPC-enheter som smartphones och surfplattor. Även om vi inte kan glömma att målet med ARM är att förskjuta x86 på olika marknader, inte bara på servrar utan också på PC. Köp av NVIDIA och dess stora inflytande på PC-videospelsmarknaden kan komma med speldatorer med ARM och NVIDIA GPU, även om det är en framtid som kommer att behöva mycket stöd från utvecklare av videospel och inte själva NVIDIA-ARM.