ARMv9, set de înregistrări și instrucțiuni pentru procesoare non-x86

Acum cateva saptamani, ARM a introdus a noua generație a setului de registre și instrucțiuni utilizate în procesoare cu ISA cu același nume. ARMv9 este numele sub care a fost botezată noua versiune a acestui ISA, care va fi utilizată în viitoarele SoC-uri pentru dispozitivele PostPC. Ce este ARMv9 și ce este nou în versiunile anterioare, cum vor arăta viitoarele procesoare ARM?

Un ISA nu este altceva decât limbajul înțeles de diferiți procesoare și, prin urmare, marchează ceea ce înseamnă setul de unități și zero în codul pe care îl execută. Binarul pentru un x86 Procesor nu are aceeași semnificație ca binarul pentru un procesor ARM de exemplu.

ARMv9

Cu toate acestea, avansarea tehnologiei face necesară adăugarea de noi instrucțiuni ISA-urilor, ceea ce le oferă posibilitatea de a adăuga noi funcționalități pentru a-și spori performanța, securitatea la procesarea datelor sau pentru a face față noilor provocări care le sunt prezentate.

În acest articol vom vorbi despre a noua generație a ISA ARM, care după ani îndreptate către procesoare și microcontrolere cu consum redus au decis să fie mai ambițioși și să intre pe piața care necesită cea mai înaltă performanță, cea a centrelor de date și a performanțelor ridicate. calcul sau HPC.

Extensii vectoriale scalabile 2

SVE ARMv9

Fujitsu japonez a creat pentru nucleul său ARM o serie de extensii proprietare numite SVE, care înseamnă Extensii vectoriale scalabile. Din numele său, ați fi ghicit că vorbim despre un set de instrucțiuni SIMD. Să nu uităm că în procesoarele cu ISA ARM de ani de zile s-au folosit instrucțiunile Neon. Care va fi înlocuit de instrucțiunile SVE2 din ARMv9.

SVE a fost creat de Fujitsu pentru supercomputerul său Fugaku, care folosește nucleele sale A64-FX. Intentia? Profitați de paralelismul de date cerut de calculul științific, care utilizează numere de precizie mai mare. Acest lucru se traduce prin unități SIMD mult mai mari și, prin urmare, mai mulți biți.

Deoarece interesul ARM este de a-și aduce nucleele pe piața de calculatoare și servere de înaltă performanță, au decis să adopte SVE și să o îmbine cu Neon pentru a crea SVE2. Cel mai mare avantaj pe care SVE îl adaugă Neonului? Acestea sunt instrucțiuni de dimensiune agnostică, deci nu este necesar să aveți o versiune a fiecărei instrucțiuni pentru dimensiuni diferite, așa cum este cazul cu instrucțiunile AVX pe x86.

Tărâmuri de memorie în ARMv9

reinos ARMv9

Un concept interesant pe care ISA ARMv9 îl adaugă la ecuație este conceptul de tărâmuri, care constă în posibilitatea de a lua parte la adresarea memoriei și de a face codul care este executat în ea să nu afecteze restul sistemului, prin urmare este total izolat. Ceea ce este ideal pentru implementarea mașinilor virtuale în care un sistem de operare rulează în același timp cu altul pe același procesor.

În mod normal, CPU-urile au niveluri diferite de privilegii, dar cu conceptul tărâmurilor care a fost adăugat în ARMv9 va fi posibil să rulați mai ușor mașini virtuale care rulează pe un procesor cu ARM ISA, dar avantajele acestui lucru nu se limitează doar la mașinile virtuale, dar poate fi folosit și în aplicații specifice.

Deci, ARMv9 pare a fi o extensie la ISA mai pregătită pentru centrele de date și alte tipuri de computere în care virtualizarea și securitatea sunt mult mai importante decât alte funcționalități. Nu este surprinzător că ARM duce un război împotriva Intel și AMD pe piața CPU a serverelor, unde procesoarele x86 au dominat piața până acum.

Extensii de etichetare a memoriei

Extensii de etichetare a memoriei ARM

Nu sunt noi pentru ARMv9, ci mai degrabă pentru versiunea 8.5. Utilitatea sa? Este un mecanism însărcinat cu urmărirea tuturor acceselor de memorie ilegale făcute de programe. Un acces ilegal nu este altceva decât un acces la o adresă de memorie pe care programul nu are permisiunea să o acceseze. La ce folosește acest lucru? Deoarece servește la evitarea așa-numitei depășiri de tampon, o problemă comună de securitate în toate procesoarele care apare atunci când cantitatea de date copiate depășește rezerva de memorie, scriind codul neașteptat în adresele de memorie vecine.

Dacă depășirea memoriei este reușită, atunci codul original va fi înlocuit cu un nou cod în memorie, care va fi executat de CPU de îndată ce ajunge în memorie. Deci, este important să evităm acest lucru, mai ales dacă vorbim despre centre de date care au tendința de a deservi milioane de utilizatori în același timp și unde poate fi folosit un overflow de tampon pentru a fura date de utilizator compromise.

MTE nu face parte din ISA în sine, ci este un mecanism implementat în Northbridge de procesoare ARMv9 care urmărește toate accesele de memorie și a căror funcționalitate este de a evita revărsările de memorie într-un mod transparent.

ARMv9 numai pentru centre de date și servere?

Centru de date

Noutățile ISA ARMv9 pe care le-am descris în secțiunile anterioare au un caracter specific marcat și nu au nimic de-a face cu utilizarea în dispozitivele clasice în care se vede de obicei ISA ARM. Dintre toate acestea, apelează SVE puternic, deoarece unul dintre motivele pentru care nu vedeți de obicei unități SIMD mari în procesoare pentru dispozitivele PostPC este consumul enorm de energie pe care îl presupune utilizarea lor.

În acest moment, singurele două nuclee anunțate de ARM sunt două din familia Neoverse. Pe de o parte, NeoVerse V1 sub numele de cod „Zeus” și, pe de altă parte, Neoverse N2 sub numele de cod „Perseus”. Acestea nu sunt nuclee pe care le veți vedea într-un viitor smartphone, ci în centrele de date și servere pentru calcul de înaltă performanță ale unor companii precum Amazon AWS, Oracle, Tencent, Google etc.

ARM nu a anunțat încă niciun kernel pentru dispozitivele PostPC, cum ar fi smartphone-urile și tabletele. Deși nu putem uita că scopul ARM este de a deplasa x86 pe diverse piețe, nu numai pe servere, ci și pe computer. Achiziționarea de către NVIDIA și influența sa mare pe piața jocurilor video pentru PC poate aduce sosirea computerelor de jocuri cu ARM-uri și GPU-uri NVIDIA, deși este un viitor care va avea nevoie de mult sprijin din partea dezvoltatorilor de jocuri video și nu a NVIDIA-ARM în sine.