Kas yra AArch64? Ką reikia žinoti apie šią procesoriaus architektūrą

Nors tikriausiai naudojote įrenginį su AArch64 procesoriumi, galbūt nežinote, ką tai reiškia. Štai ką reikia žinoti.

Yra daug procesorių architektūros ten, o didžiausios yra x86 ir RANKA. Tai pasakius, AArch64 tikriausiai praskriejo po jūsų radaru. Net gana gerai skaitęs technologijų entuziastas galbūt niekada apie tai negirdėjo, nepaisant to, kad jis yra milijonuose įrenginių. Na, reikalas tas, kad AArch64 nėra tiek paslaptingas, kiek labai painus techninis terminas. Štai ką reikia žinoti apie AArch64.

AArch64 yra ARM64

Šaltinis: Arm

Trumpai tariant, AArch64 yra oficialus Arm's 64 bitų instrukcijų rinkinio architektūros (ISA), kuri buvo pristatyta su Armv8-A atnaujinimu, pavadinimas. Beveik visada nurodo AArch64. Neaišku, kodėl ARM64 dažnai naudojamas vietoj AArch64, tačiau atrodo, kad dalis painiavos kyla iš dviejų vietų. Dalis to yra todėl, kad 64 bitų x86 plėtinys yra x86-64, todėl natūraliai ARM 64 bitų plėtinys turėtų būti ARM64. Panašu, kad „Apple“ taip manė ir AArch64 vadino ARM64 iki 2014 m. Daugeliui žmonių „AArch64 yra ARM64“ yra labai patenkinamas paaiškinimas.

Jei norite gauti tikrai technikos, AArch64 yra ne ISA, o veikiau vykdymo būsena kuri leidžia ARM procesoriams naudoti (ir tik naudoti) ARMv8 ISA A64 instrukcijų rinkinį, kuris pirmą kartą buvo pristatytas su Armv8-A architektūra. Jei tai skamba painiai, taip yra todėl, kad taip yra. Net jei esate susipažinę su kompiuterių architektūra, tai gali būti sunku suprasti, todėl paaiškinsiu tai žingsnis po žingsnio.

Taigi techniškai AArch64 yra valstybė, o ne ISA, bet niekam tai nerūpi, net pačiam Armui.

ARM yra susijusių ISA šeima, ir nors skirtingos ISA paprastai reiškia nesuderinamumą, tai nėra visiškai tiesa. Įvairios ARM ISA versijos vadinamos ARMv1, ARMv2 ir t. t., tačiau šiose ISA yra iš esmės antrinės ISA: A profilis, M profilis ir R profilis. Pagrindinis skirtumas tarp šių sub-ISA yra minimalus kiekvieno naudojamų instrukcijų kiekis, kai A profilis naudoja daugiausiai, o M profilis naudoja mažiausiai. Taigi, ARM ISA yra padalintas į atskiras versijas, tokias kaip ARMv8, o tada tos versijos toliau skirstomos į skirtingus ISA diegimus.

Armv8-A yra pradinis A-profilio ARMv8 ISA diegimas, kuris pridėjo du naujus dalykus: AArch32 ir AArch64. Jie vadinami būsenomis arba režimais ir leidžia ARM procesoriams pasiekti skirtingus instrukcijų rinkinius, su AArch32, kuriame yra 32 bitų A32 ir T32 instrukcijos, ir AArch64, kuriame yra 64 bitų A64 nurodymus. Pavyzdžiui, jei procesorius šiuo metu yra AArch64 būsenoje ir nori naudoti A32 instrukcijas, jis turi pakeisti savo būseną į AArch32. Be to, AArch64 režimu pasiekiami ir 32 bitų, ir 64 bitų registrai, o AArch32 režimu galima naudoti tik 32 bitų registrus. Painiausia viso to dalis yra ta, kad visi šie dalykai įvairiai vadinami ISA ir dėl to kalta net Arm (ARM ISA kurianti įmonė).

Bet jei kalbame itin techniškai, tai iš tikrųjų taip yra: aštuntoji ARM ISA versija ARMv8 pirmą kartą buvo įdiegta su Armv8-A, kurioje yra dvi būsenos, vadinamos AArch32 ir AArch64. Kai CPU yra AArch64 būsenoje, jis gali vykdyti 64 bitų A64 komandas. Taigi techniškai AArch64 yra valstybė, o ne ISA, bet niekam tai nerūpi, net pačiam Armui.

Kodėl ARM svarbūs ir 32 bitai, ir 64 bitai

Taigi AArch64 iš tikrųjų yra gana sudėtingas, o būsenų perjungimas vien norint naudoti 32 bitų ir 64 bitų instrukcijas atrodo sudėtingas. Reikalas tas, kad tiek 32 bitų, tiek 64 bitų palaikymas buvo per daug svarbus, kad būtų atsisakyta, todėl jis tiesiog turi būti toks. Tai iš tikrųjų kilo dėl dviejų pagrindinių problemų: poreikio palaikyti seną 32 bitų programinę įrangą ir siekti šiuolaikinio, didelio našumo skaičiavimo.

Jei Arm neįtrauktų savosios 32 bitų programinės įrangos palaikymo į savo pirmąją 64 bitų ISA, tai galėjo būti nelaimė, nes, paprasčiau tariant, niekas nenori perrašyti kodo. Jei ARMv8 būtų reikalaujama, kad visi rašytų naują programinę įrangą nuo nulio, tai galėjo įvesti ISA į mirties spiralę, kurioje niekas negamina ir neperka. ARMv8 įrenginiai dėl programinės įrangos trūkumo, o tada kūrėjai nekuria programų dėl vartotojų trūkumo, iki begalybės, kol Arm turi tai paskambinti pasitraukia. Taigi, 32 bitų palaikymas buvo nediskutuotinas.

Kita vertus, 64 bitų skaičiavimo neįdiegimas taip pat nebuvo išeitis. „Intel“ ir „AMD“, įmonės, gaminančios x86, nuo 2000-ųjų pradžios naudojo 64 bitų architektūrą. nuostabūs procesoriai, nors tuo metu 64 bitų ARM lustų nebuvo reikalaujama, nes telefonams jų nereikėjo. Tačiau išmaniojo telefono išradimas pakeitė viską, ir visi norėjo, kad jų telefonai veiktų daugiau. 64 bitų palaikymas ne tik padėtų išmaniesiems telefonams tapti galingesniais, bet ir atvertų duris įmonėms gaminti ARM lustus rinkoms, kuriose tradiciškai dominuoja x86, pavyzdžiui, nešiojamiesiems kompiuteriams ir serveriai.

Iš esmės visa ši pavadinimų painiava kilo dėl to, kad Arm reikėjo modernizuoti savo technologiją, reaguojant į besikeičiančius prioritetus. Galbūt Arm nereikėjo tokiu būdu įdiegti 64 bitų palaikymo, bet tai padarė, ir taip atsirado AArch64. Nors AArch64 nėra ISA, dauguma žmonių vartoja šį terminą, gerai ar blogai.