Kuigi olete tõenäoliselt kasutanud seadet, mille sees on AArch64 protsessor, ei pruugi te teada, mida see tähendab. Siin on, mida peate teadma.
Protsessoreid on palju arhitektuurid seal väljas, kusjuures suurimad on x86 ja ARM. Seda öeldes on AArch64 tõenäoliselt lennanud teie radari alla. Isegi üsna palju lugenud tehnikahuviline ei pruugi sellest kunagi kuulnud olla, hoolimata asjaolust, et see on olemas miljonites seadmetes. Asi on selles, et AArch64 pole niivõrd salapärane, kuivõrd väga segane tehniline termin. Siin on, mida peate AArch64 kohta teadma.
AArch64 on omamoodi ARM64
Allikas: Arm
Lühidalt öeldes on AArch64 ametlik nimi Armi 64-bitise käsukomplekti arhitektuuri (ISA) jaoks, mis võeti kasutusele Armv8-A värskendusega. Peaaegu alati viitab see AArch64-le. Pole täpselt selge, miks ARM64 sageli AArch64 asemel kasutatakse, kuid osa segadust näib tulenevat kahest kohast. Osa sellest on tingitud sellest, et x86 64-bitine laiendus on x86-64, nii et loomulikult peaks ARM-i 64-bitine laiendus olema ARM64. Apple näis kindlasti nii arvavat ja viitas AArch64-le kui ARM64-le kuni 2014. aastani. Enamiku inimeste jaoks on "AArch64 on ARM64" väga rahuldav selgitus.
Kui soovite saada tõeliselt tehniliseks, pole AArch64 ISA, vaid pigem täitmise olek mis võimaldab ARM-i protsessoritel kasutada (ja ainult kasutada) ARMv8 ISA A64 käsukomplekti, mis võeti esmakordselt kasutusele Armv8-A arhitektuuriga. Kui see kõlab segadusse ajavalt, on see sellepärast, et see on nii. Isegi kui olete arvutiarhitektuuriga tuttav, võib sellest olla raske aru saada, seega selgitan seda samm-sammult.
Nii et tehniliselt on AArch64 riik, mitte ISA, kuid see ei huvita kedagi, isegi mitte Arm ise.
ARM on seotud ISA-de perekond ja kuigi erinevad ISA-d viitavad tavaliselt kokkusobimatusest, pole see tõsi. ARM ISA erinevaid versioone nimetatakse ARMv1, ARMv2 ja nii edasi, kuid need ISA-d sisaldavad sisuliselt alam-ISA-sid: A-profiil, M-profiil ja R-profiil. Põhiline erinevus nende alam-ISAde vahel on minimaalne juhiste hulk, mida igaüks kasutab, kusjuures A-profiil kasutab kõige rohkem ja M-profiil kõige vähem. Seega jagatakse ARM ISA üksikuteks versioonideks, näiteks ARMv8, ja seejärel jagatakse need versioonid ISA erinevateks rakendusteks.
Armv8-A on ARMv8 ISA esialgne A-profiili juurutus, mis lisas kaks uut asja: AArch32 ja AArch64. Neid nimetatakse olekuteks või režiimideks ja need võimaldavad ARM-i protsessoritel juurdepääsu erinevatele käsukomplektidele, AArch32, mis sisaldab 32-bitiseid A32 ja T32 juhiseid, ja AArch64, mis sisaldab 64-bitist A64 juhiseid. Näiteks kui protsessor on praegu AArch64 olekus ja soovib kasutada A32 juhiseid, peab ta muutma oma olekuks AArch32. Lisaks on AArch64 režiimis juurdepääsetavad nii 32-bitised kui ka 64-bitised registrid, samas kui AArch32 režiimis on kasutatavad ainult 32-bitised registrid. Kõige segasem osa selle kõige juures on see, et kõiki neid asju nimetatakse varieeruvalt ISA-deks ja isegi Arm (ARM ISA-d arendav ettevõte) on selles süüdi.
Aga kui me oleme ülitehnilised, siis nii see tegelikult on: ARM ISA kaheksas versioon ARMv8 rakendati esmakordselt Armv8-A-ga, mis sisaldab kahte olekut nimega AArch32 ja AArch64. Kui protsessor on AArch64 olekus, saab see täita 64-bitisi A64 käske. Nii et tehniliselt on AArch64 riik, mitte ISA, kuid see ei huvita kedagi, isegi mitte Arm ise.
Miks on ARM-i jaoks olulised nii 32-bitine kui ka 64-bitine?
Nii et AArch64 on tegelikult üsna keeruline ja olekute vahetamine lihtsalt 32-bitiste ja 64-bitiste juhiste kasutamiseks tundub tülikas. Asi on selles, et nii 32-bitise kui ka 64-bitise tugi oli liiga oluline, et sellest loobuda, nii et see lihtsalt peab nii olema. Tõepoolest, see taandus kahele peamisele probleemile: vajadus toetada vana 32-bitist tarkvara ja kasutada kaasaegset suure jõudlusega andmetöötlust.
Kui Arm ei lisanud oma esimesse 64-bitisesse ISA-sse 32-bitise tarkvara loomulikku tuge, oleks see võinud olla katastroof, sest lihtsalt öeldes ei taha keegi koodi ümber kirjutada. Kui ARMv8 oleks nõudnud kõigilt uue tarkvara nullist kirjutamist, oleks see võinud viia ISA surmaspiraali, kus keegi ei tee ega osta ARMv8 seadmed tarkvara puudumise tõttu ja seejärel ei tee arendajad kasutajate puudumise tõttu rakendusi, kuni Arm peab seda kutsuma lõpetab. Niisiis, 32-bitine tugi ei olnud läbiräägitav.
Teisest küljest ei olnud 64-bitise andmetöötluse rakendamata jätmine ka valik. Intel ja AMD, x86 taga olevad ettevõtted, on 2000. aastate algusest kasutanud oma jaoks 64-bitist arhitektuur. hämmastavad protsessorid, kuigi sel ajal 64-bitiste ARM-kiipide järele ei nõutud, kuna telefonid neid ei vajanud. Kuid nutitelefoni leiutamine muutis kõike ja kõik soovisid, et nende telefonid teeksid rohkem asju. 64-bitine tugi mitte ainult ei aitaks nutitelefonidel võimsamaks muutuda, vaid avas ka ukse ettevõtetele, et teha ARM-kiipe turgude jaoks, kus traditsiooniliselt domineeris x86, nagu sülearvutid ja serverid.
Põhimõtteliselt tekkis kogu see nimesegadus sellest, et Arm pidi vastavalt muutuvatele prioriteetidele oma tehnoloogiat moderniseerima. Võib-olla ei pidanud Arm sel viisil 64-bitist tuge juurutama, kuid seda tehti ja nii tekkis AArch64. Kuigi AArch64 ei ole ISA, kasutab enamik inimesi seda terminit nii heas või halvas mõttes.