Čeprav ste verjetno že uporabljali napravo s procesorjem AArch64, morda ne veste, kaj to pomeni. Tukaj je tisto, kar morate vedeti.
Obstaja veliko procesorjev arhitekture tam zunaj, pri čemer so največji x86 in ROKA. Glede na to je AArch64 verjetno letel pod vašim radarjem. Tudi dokaj načitan tehnološki navdušenec morda še nikoli ni slišal zanj, kljub dejstvu, da je prisoten v milijonih naprav. No, stvar je v tem, da AArch64 ni toliko skrivnosten, kot je zelo zmeden tehnični izraz. Tukaj je tisto, kar morate vedeti o AArch64.
AArch64 je nekako ARM64
Vir: Arm
Na kratko, AArch64 je uradno ime za Armovo 64-bitno arhitekturo nabora ukazov (ISA), ki je bila predstavljena s posodobitvijo Armv8-A. Skoraj vedno se nanaša na AArch64. Ni natančno jasno, zakaj se ARM64 pogosto uporablja namesto AArch64, vendar se zdi, da del zmede izvira iz dveh mest. Delno zato, ker je 64-bitna razširitev x86 x86-64, zato bi morala biti 64-bitna razširitev ARM seveda ARM64. Apple je zagotovo mislil tako in je do leta 2014 AArch64 imenoval ARM64. Za večino ljudi je "AArch64 je ARM64" zelo zadovoljiva razlaga.
Če želite biti res tehnični, AArch64 ni ISA, ampak prej stanje izvajanja ki omogoča procesorjem ARM uporabo (in samo uporabo) nabora navodil A64 ISA ARMv8, ki je bil prvič predstavljen z arhitekturo Armv8-A. Če se to sliši zmedeno, je to zato, ker je. Tudi če ste seznanjeni z računalniško arhitekturo, je to lahko težko razumeti, zato vam bom to razložil korak za korakom.
Tehnično je torej AArch64 država, ne ISA, vendar nikogar ne zanima, niti Arm sam.
ARM je družina povezanih ISA, in čeprav različni ISA običajno pomenijo nezdružljivost, to ni povsem res. Različne različice ARM ISA se imenujejo ARMv1, ARMv2 in tako naprej, vendar ti ISA vsebujejo tisto, kar je v bistvu pod-ISA: A-profil, M-profil in R-profil. Osnovna razlika med temi sub-ISA je najmanjša količina navodil, ki jih vsak uporablja, pri čemer A-profil uporablja največ, M-profil pa najmanj. Torej je ARM ISA razdeljen na posamezne različice, kot je ARMv8, nato pa so te različice nadalje razdeljene na različne izvedbe ISA.
Armv8-A je začetna implementacija A-profila ARMv8 ISA, ki je dodal dve novi stvari: AArch32 in AArch64. Te se imenujejo stanja ali načini in omogočajo CPE-jem ARM dostop do različnih nizov ukazov, z AArch32, ki vsebuje 32-bitna navodila A32 in T32, in AArch64, ki vsebuje 64-bitni A64 navodila. Na primer, če je procesor trenutno v stanju AArch64 in želi uporabljati navodila A32, mora spremeniti svoje stanje v AArch32. Poleg tega so v načinu AArch64 dostopni tako 32-bitni kot 64-bitni registri, medtem ko so v načinu AArch32 uporabni samo 32-bitni registri. Najbolj zmeden del vsega tega je, da se vse te stvari različno imenujejo ISA in celo Arm (podjetje, ki razvija ARM ISA) je kriv za to.
Toda če smo super tehnični, je v resnici tako: osma različica ARM ISA, ARMv8, je bila prvič implementirana z Armv8-A, ki vsebuje dve stanji, imenovani AArch32 in AArch64. Ko je CPE v stanju AArch64, lahko izvaja 64-bitna navodila A64. Tehnično je torej AArch64 država, ne ISA, vendar nikogar ne zanima, niti Arm sam.
Zakaj sta tako 32-bitni kot 64-bitni za ARM pomembni
Torej je AArch64 pravzaprav precej zapleten in menjava stanja samo za uporabo 32-bitnih in 64-bitnih navodil se zdi okorna. Stvar je v tem, da je bila podpora tako za 32-bitne kot za 64-bitne različice preveč pomembna, da bi jo zanemarili, zato preprosto mora biti tako. V resnici je prišlo do dveh glavnih težav: potrebe po podpori stare 32-bitne programske opreme in prizadevanja za sodobno, visoko zmogljivo računalništvo.
Če Arm ne bi vključil izvorne podpore za 32-bitno programsko opremo v svoj prvi 64-bitni ISA, bi lahko bila katastrofa, ker, preprosto povedano, nihče noče prepisati kode. Če bi ARMv8 zahteval, da vsi pišejo novo programsko opremo iz nič, bi lahko ISA pahnil v smrtonosno spiralo, kjer nihče ne izdeluje ali kupuje Naprave ARMv8 zaradi pomanjkanja programske opreme, nato pa razvijalci ne izdelujejo aplikacij zaradi pomanjkanja uporabnikov, do neskončnosti, dokler je Arm ne mora poklicati odneha. Torej se o 32-bitni podpori ni bilo mogoče pogajati.
Po drugi strani tudi neuvedba 64-bitnega računalništva ni bila možnost. Intel in AMD, podjetji, ki stojita za x86, uporabljata 64-bitne arhitekture od zgodnjih 2000-ih za svoje neverjetni procesorji, čeprav takrat ni bilo nikakršnega poziva k 64-bitnim čipom ARM, saj jih telefoni niso potrebovali. Toda izum pametnega telefona je vse spremenil in vsi so želeli, da bi njihovi telefoni naredili več stvari. Ne samo, da bi 64-bitna podpora pomagala pametnim telefonom postati zmogljivejši, ampak je tudi odprla vrata za podjetja, da izdelujejo čipe ARM za trge, kjer je tradicionalno prevladoval x86, kot so prenosniki in strežniki.
V bistvu je celotna zmeda pri poimenovanju nastala, ker je Arm moral posodobiti svojo tehnologijo kot odgovor na spreminjajoče se prioritete. Morda Armu ni bilo treba implementirati 64-bitne podpore na ta način, vendar jo je, in tako je nastal AArch64. Čeprav AArch64 ni ISA, večina ljudi tako uporablja izraz, v dobrem ali slabem.