Lai gan jūs, iespējams, esat izmantojis ierīci ar AArch64 procesoru, jūs, iespējams, nezināt, ko tas nozīmē. Lūk, kas jums jāzina.
Ir daudz CPU arhitektūras ārā, kur ir lielākie x86 un ARM. To sakot, AArch64, iespējams, ir lidojis zem jūsu radara. Pat diezgan labi lasīts tehnoloģiju entuziasts, iespējams, nekad par to nav dzirdējis, neskatoties uz to, ka tas ir pieejams miljoniem ierīču. Lieta ir tāda, ka AArch64 nav tik daudz noslēpumains, cik ļoti mulsinošs tehniskais termins. Lūk, kas jums jāzina par AArch64.
AArch64 ir ARM64, sava veida
Avots: Arm
Īsāk sakot, AArch64 ir Arm 64 bitu instrukciju kopas arhitektūras (ISA) oficiālais nosaukums, kas tika ieviesta ar Armv8-A atjauninājumu. Tas gandrīz vienmēr attiecas uz AArch64. Nav precīzi skaidrs, kāpēc ARM64 bieži tiek izmantots AArch64 vietā, taču šķiet, ka daļa neskaidrību rodas no divām vietām. Daļēji tas ir tāpēc, ka x86 64 bitu paplašinājums ir x86-64, tāpēc, protams, ARM 64 bitu paplašinājumam vajadzētu būt ARM64. Apple noteikti tā domāja un līdz 2014. gadam atsaucās uz AArch64 kā ARM64. Lielākajai daļai cilvēku "AArch64 ir ARM64" ir ļoti apmierinošs skaidrojums.
Ja vēlaties iegūt patiešām tehnisku, AArch64 nav ISA, bet drīzāk izpildes stāvoklis kas ļauj ARM CPU izmantot (un tikai izmantot) ARMv8 ISA A64 instrukciju kopu, kas pirmo reizi tika ieviesta ar Armv8-A arhitektūru. Ja tas izklausās mulsinoši, tas ir tāpēc, ka tā ir. Pat ja esat iepazinies ar datoru arhitektūru, to var būt grūti saprast, tāpēc es to paskaidrošu soli pa solim.
Tātad tehniski AArch64 ir valsts, nevis ISA, bet tas nevienam neinteresē, pat Arm ne.
ARM ir saistītu ISA saime, un, lai gan dažādi ISA parasti norāda uz nesaderību, tā nav gluži taisnība. Dažādas ARM ISA versijas tiek sauktas par ARMv1, ARMv2 un tā tālāk, taču šajos ISA būtībā ir ietverti apakš-ISA: A-profils, M-profile un R-profile. Galvenā atšķirība starp šiem apakš-ISA ir minimālais instrukciju skaits, ko katrs izmanto, A profilam izmantojot visvairāk un M profilam vismazāk. Tātad ARM ISA ir sadalīts atsevišķās versijās, piemēram, ARMv8, un pēc tam šīs versijas tiek sadalītas dažādās ISA versijās.
Armv8-A ir ARMv8 ISA sākotnējā A profila ieviešana, kas pievienoja divas jaunas lietas: AArch32 un AArch64. Tos sauc par stāvokļiem vai režīmiem, un tie ļauj ARM CPU piekļūt dažādām instrukciju kopām, ar AArch32, kas satur 32 bitu A32 un T32 instrukcijas, un AArch64, kas satur 64 bitu A64 instrukcijas. Piemēram, ja procesors pašlaik atrodas AArch64 stāvoklī un vēlas izmantot A32 instrukcijas, tam ir jāmaina stāvoklis uz AArch32. Turklāt AArch64 režīmā ir pieejami gan 32 bitu, gan 64 bitu reģistri, savukārt AArch32 režīmā ir izmantojami tikai 32 bitu reģistri. Pats mulsinošākais ir tas, ka visas šīs lietas tiek sauktas par ISA, un pat Arm (uzņēmums, kas izstrādā ARM ISA) ir vainīgs pie tā.
Bet, ja mēs runājam par īpaši tehnisku, tad patiesībā ir tā: ARM ISA astotā versija ARMv8 vispirms tika ieviesta ar Armv8-A, kurā ir divi stāvokļi, ko sauc par AArch32 un AArch64. Kad centrālais procesors atrodas AArch64 stāvoklī, tas var izpildīt 64 bitu A64 instrukcijas. Tātad tehniski AArch64 ir valsts, nevis ISA, bet tas nevienam neinteresē, pat Arm ne.
Kāpēc gan 32 biti, gan 64 biti ir svarīgi ARM?
Tātad AArch64 patiesībā ir diezgan sarežģīts, un stāvokļu pārslēgšana, lai izmantotu 32 bitu un 64 bitu instrukcijas, šķiet apgrūtinoša. Lieta tāda, ka gan 32 bitu, gan 64 bitu atbalsts bija pārāk svarīgs, lai to atstātu garām, tāpēc tam vienkārši ir jābūt šādam. Tas patiešām bija saistīts ar divām galvenajām problēmām: nepieciešamību atbalstīt veco 32 bitu programmatūru un izmantot modernu, augstas veiktspējas skaitļošanu.
Ja Arm savā pirmajā 64 bitu ISA neiekļāva vietējo atbalstu 32 bitu programmatūrai, tā varētu būt bijusi katastrofa, jo, vienkārši sakot, neviens nevēlas pārrakstīt kodu. Ja ARMv8 liktu visiem rakstīt jaunu programmatūru no nulles, tas varētu ievest ISA nāves spirālē, kur neviens neražo un nepērk ARMv8 ierīces programmatūras trūkuma dēļ, un pēc tam izstrādātāji neveido lietotnes lietotāju trūkuma dēļ bezgalīgi, līdz Armam tas ir jāizsauc pamet. Tātad 32 bitu atbalsts nebija apspriežams.
No otras puses, arī 64 bitu skaitļošanas neieviešana nebija risinājums. Intel un AMD, uzņēmumi aiz x86, jau kopš 2000. gadu sākuma ir izmantojuši 64 bitu arhitektūru. pārsteidzoši CPU, lai gan tajā laikā 64 bitu ARM mikroshēmas nebija pieprasītas, jo tālruņiem tās nebija vajadzīgas. Taču viedtālruņa izgudrojums mainīja visu, un visi vēlējās, lai viņu tālruņi darītu vairāk. 64 bitu atbalsts ne tikai palīdzētu viedtālruņiem kļūt jaudīgākiem, bet arī atvēra durvis uzņēmumiem ražot ARM mikroshēmas tirgiem, kur tradicionāli dominēja x86, piemēram, klēpjdatoriem un serveriem.
Būtībā visa šī nosaukšanas neskaidrība radās tāpēc, ka Arm vajadzēja modernizēt savu tehnoloģiju, reaģējot uz mainīgajām prioritātēm. Iespējams, Armam nebija nepieciešams ieviest 64 bitu atbalstu šādā veidā, taču tas notika, un tā radās AArch64. Lai gan AArch64 nav ISA, lielākā daļa cilvēku izmanto šo terminu, lai gan labāk vai sliktāk.