Što je AArch64? Što trebate znati o ovoj CPU arhitekturi

Iako ste vjerojatno koristili uređaj s AArch64 procesorom unutra, možda ne znate što to znači. Evo što trebate znati.

Postoji mnogo CPU-a arhitekture vani, a najveći su x86 i RUKA. Rekavši to, AArch64 je vjerojatno proletio ispod vašeg radara. Čak i prilično načitan tehnološki entuzijast možda nikad nije čuo za njega, unatoč činjenici da je prisutan u milijunima uređaja. Pa, stvar je u tome da AArch64 nije toliko misteriozan koliko je vrlo zbunjujući tehnički izraz. Evo što trebate znati o AArch64.

AArch64 je ARM64, na neki način

Izvor: Arm

Ukratko, AArch64 je službeni naziv za Armovu 64-bitnu arhitekturu skupa instrukcija (ISA) koja je uvedena s ažuriranjem Armv8-A. Gotovo uvijek se odnosi na AArch64. Nije točno zašto se ARM64 često koristi umjesto AArch64, ali čini se da dio zabune proizlazi iz dva mjesta. Dijelom je to zato što je 64-bitno proširenje x86 x86-64, pa bi prirodno ARM-ovo 64-bitno proširenje trebalo biti ARM64. Apple je sigurno mislio tako i nazivao AArch64 kao ARM64 do 2014. Za većinu ljudi, "AArch64 je ARM64" vrlo je zadovoljavajuće objašnjenje.

Ako želite biti stvarno tehnički, AArch64 nije ISA, već stanje izvršenja koji omogućuje ARM CPU-ima da koriste (i koriste samo) A64 skup instrukcija ARMv8 ISA, koji je prvi put predstavljen s Armv8-A arhitekturom. Ako ovo zvuči zbunjujuće, to je zato što jest. Čak i ako ste upoznati s arhitekturom računala, ovo može biti teško razumjeti, pa ću ovo objasniti korak po korak.

Tehnički gledano, AArch64 je država, a ne ISA, ali nikoga nije briga, čak ni sam Arm.

ARM je obitelj povezanih ISA-ova i iako različiti ISA-ovi obično impliciraju nekompatibilnost, to nije točno. Različite verzije ARM ISA nazivaju se ARMv1, ARMv2 i tako dalje, ali ti ISA sadrže ono što su u biti pod-ISA: A-profil, M-profil i R-profil. Osnovna razlika između ovih pod-ISA-ova je minimalna količina instrukcija koju svaki koristi, pri čemu A-profil koristi najviše, a M-profil koristi najmanje. Dakle, ARM ISA je podijeljen u pojedinačne verzije kao što je ARMv8, a zatim su te verzije dalje podijeljene u različite implementacije ISA.

Armv8-A je početna implementacija A-profila ARMv8 ISA, koja je dodala dvije nove stvari: AArch32 i AArch64. Oni se nazivaju stanja ili načini rada i dopuštaju ARM CPU-ima pristup različitim skupovima instrukcija, s AArch32 koji sadrži 32-bitne A32 i T32 upute, i AArch64 koji sadrži 64-bitni A64 upute. Na primjer, ako je procesor trenutno u AArch64 stanju i želi koristiti A32 instrukcije, mora promijeniti svoje stanje u AArch32. Dodatno, u načinu rada AArch64 dostupni su i 32-bitni i 64-bitni registri, dok su u načinu rada AArch32 upotrebljivi samo 32-bitni registri. Ono što najviše zbunjuje je to što se sve ove stvari različito nazivaju ISA, pa je čak i Arm (tvrtka koja razvija ARM ISA) kriva za to.

Ali ako smo super tehničari, to je zapravo ovako: osma verzija ARM ISA, ARMv8, prvi put je implementirana s Armv8-A, koji sadrži dva stanja nazvana AArch32 i AArch64. Kada je CPU u AArch64 stanju, može izvršavati 64-bitne A64 instrukcije. Tehnički gledano, AArch64 je država, a ne ISA, ali nikoga nije briga, čak ni sam Arm.

Zašto su i 32-bitni i 64-bitni važni za ARM

Dakle, AArch64 je zapravo prilično kompliciran, a mijenjanje stanja samo za korištenje 32-bitnih i 64-bitnih instrukcija čini se glomaznim. Stvar je u tome što je podrška za 32-bitnu i 64-bitnu verziju bila previše važna da bi se propustila, tako da jednostavno mora biti tako. Zapravo se svelo na dva glavna problema: potrebu za podrškom za stari 32-bitni softver i traženje modernog računalstva visokih performansi.

Da Arm nije uključio izvornu podršku za 32-bitni softver u svoj prvi 64-bitni ISA, to bi mogla biti katastrofa jer, jednostavno rečeno, nitko ne želi ponovno pisati kod. Da je ARMv8 zahtijevao od svih da napišu novi softver od nule, to bi ISA moglo dovesti u smrtonosnu spiralu, gdje nitko ne proizvodi niti kupuje ARMv8 uređaji zbog nedostatka softvera, a zatim programeri ne izrađuju aplikacije zbog nedostatka korisnika, ad infinitum dok ga Arm ne mora pozvati odustaje. Dakle, o 32-bitnoj podršci nije se moglo pregovarati.

S druge strane, neimplementacija 64-bitnog računalstva također nije bila opcija. Intel i AMD, tvrtke koje stoje iza x86, koristile su 64-bitne arhitekture od ranih 2000-ih za svoje nevjerojatni procesori, iako u to vrijeme nije bilo poziva za 64-bitne ARM čipove jer ih telefoni nisu trebali. Ali izum pametnog telefona promijenio je sve i svi su htjeli da njihovi telefoni rade više stvari. Ne samo da bi 64-bitna podrška pomogla pametnim telefonima da postanu moćniji, već je i otvorila vrata za tvrtke da proizvode ARM čipove za tržišta na kojima je x86 tradicionalno dominirao, poput prijenosnih računala i poslužitelji.

Uglavnom, cijela ova zbrka oko naziva nastala je jer je Arm morao modernizirati svoju tehnologiju kao odgovor na promjenjive prioritete. Možda Arm nije trebao implementirati 64-bitnu podršku na ovaj način, ali jest, i tako je nastao AArch64. Iako AArch64 nije ISA, većina ljudi tako koristi taj pojam, u dobru ili u zlu.