Čo je AArch64? Čo potrebujete vedieť o tejto architektúre CPU

click fraud protection

Aj keď ste pravdepodobne používali zariadenie s procesorom AArch64 vo vnútri, možno neviete, čo to znamená. Tu je to, čo potrebujete vedieť.

Existuje veľa CPU architektúry tam vonku, pričom tie najväčšie sú x86 a ARM. Napriek tomu AArch64 pravdepodobne preletel pod vaším radarom. Dokonca aj pomerne dobre čitateľný technický nadšenec o ňom možno nikdy nepočul, napriek tomu, že je prítomný v miliónoch zariadení. Ide o to, že AArch64 nie je ani tak tajomný, ako je to veľmi mätúci technický termín. Tu je to, čo potrebujete vedieť o AArch64.

AArch64 je niečo ako ARM64

Zdroj: Arm

Stručne povedané, AArch64 je oficiálny názov pre architektúru 64-bitovej inštrukčnej sady (ISA) od spoločnosti Arm, ktorá bola predstavená s aktualizáciou Armv8-A. Takmer vždy odkazuje na AArch64. Nie je presne jasné, prečo sa ARM64 často používa namiesto AArch64, ale zdá sa, že časť zmätku pramení z dvoch miest. Je to čiastočne preto, že 64-bitové rozšírenie x86 je x86-64, takže prirodzene 64-bitové rozšírenie ARM by malo byť ARM64. Apple si to určite myslel a do roku 2014 označoval AArch64 ako ARM64. Pre väčšinu ľudí je "AArch64 je ARM64" veľmi uspokojivé vysvetlenie.

Ak chcete byť skutočne technický, AArch64 nie je ISA, ale skôr exekučný stav ktorý umožňuje procesorom ARM používať (a iba používať) inštrukčnú sadu A64 ARMv8 ISA, ktorá bola prvýkrát predstavená s architektúrou Armv8-A. Ak to znie zmätočne, je to preto, že to tak je. Aj keď ste oboznámení s počítačovou architektúrou, môže to byť ťažké pochopiť, takže to vysvetlím krok za krokom.

Technicky teda AArch64 je štát, nie ISA, ale nikoho to nezaujíma, dokonca ani Arm sám.

ARM je rodina príbuzných ISA, a hoci rôzne ISA zvyčajne znamenajú nekompatibilitu, nie je to úplne pravda. Rôzne verzie ARM ISA sa nazývajú ARMv1, ARMv2 atď., ale tieto ISA obsahujú to, čo sú v podstate podriadené ISA: A-profil, M-profile a R-profile. Základným rozdielom medzi týmito podriadenými ISA je minimálne množstvo inštrukcií, ktoré každá používa, pričom A-profil používa najviac a M-profil najmenej. ARM ISA sa teda delí na jednotlivé verzie, ako napríklad ARMv8, a potom sa tieto verzie ďalej delia na rôzne implementácie ISA.

Armv8-A je počiatočná implementácia profilu A ARMv8 ISA, ktorá pridala dve nové veci: AArch32 a AArch64. Tieto sa označujú ako stavy alebo režimy a umožňujú procesorom ARM prístup k rôznym súborom inštrukcií, s AArch32 obsahujúcim 32-bitové inštrukcie A32 a T32 a AArch64 obsahujúcim 64-bitové A64 inštrukcie. Napríklad, ak je procesor momentálne v stave AArch64 a chce použiť inštrukcie A32, musí zmeniť svoj stav na AArch32. Navyše v režime AArch64 sú prístupné 32-bitové aj 64-bitové registre, zatiaľ čo v režime AArch32 sú použiteľné iba 32-bitové registre. Najviac mätúce na tom všetkom je, že všetky tieto veci sa premenlivo označujú ako ISA a dokonca aj Arm (spoločnosť, ktorá vyvíja ARM ISA) je vinná.

Ale ak sme supertechnickí, v skutočnosti je to takto: ôsma verzia ARM ISA, ARMv8, bola prvýkrát implementovaná s Armv8-A, ktorá obsahuje dva stavy nazývané AArch32 a AArch64. Keď je CPU v stave AArch64, môže vykonávať 64-bitové inštrukcie A64. Technicky teda AArch64 je štát, nie ISA, ale nikoho to nezaujíma, dokonca ani Arm sám.

Prečo pre ARM záleží na 32-bitovej aj 64-bitovej verzii

Takže AArch64 je v skutočnosti dosť komplikovaný a nutnosť prepínať stavy len na použitie 32-bitových a 64-bitových inštrukcií sa zdá byť ťažkopádna. Ide o to, že podpora 32-bitovej aj 64-bitovej verzie bola príliš dôležitá na to, aby sme ju prehliadli, takže to tak jednoducho musí byť. V skutočnosti to viedlo k dvom hlavným problémom: potrebe podporovať starý 32-bitový softvér a snahe o moderné, vysokovýkonné počítače.

Ak by Arm do svojej prvej 64-bitovej ISA nezahrnul natívnu podporu pre 32-bitový softvér, mohla to byť katastrofa, pretože, jednoducho povedané, nikto nechce prepisovať kód. Ak by ARMv8 vyžadoval, aby každý napísal nový softvér od začiatku, mohlo by to dostať ISA do špirály smrti, kde nikto nevyrába ani nekupuje Zariadenia ARMv8 pre nedostatok softvéru a potom vývojári nevytvárajú aplikácie pre nedostatok používateľov donekonečna, kým to Arm nebude musieť zavolať končí. Takže o 32-bitovej podpore sa nedalo vyjednávať.

Na druhej strane neprichádzala do úvahy ani implementácia 64-bitových výpočtov. Intel a AMD, spoločnosti stojace za x86, používali 64-bitové architektúry od začiatku 2000 úžasné CPU, hoci v tom čase neexistovala požiadavka na 64-bitové čipy ARM, pretože telefóny ich nepotrebovali. Vynález smartfónu však všetko zmenil a každý chcel, aby jeho telefóny robili viac vecí. 64-bitová podpora by nielen pomohla smartfónom stať sa výkonnejšími, ale otvorila aj dvere pre spoločnosti na výrobu čipov ARM pre trhy, kde tradične dominuje x86, ako sú notebooky a serverov.

V podstate celý tento zmätok v názvoch vznikol z toho, že Arm potreboval modernizovať svoju technológiu v reakcii na meniace sa priority. Možno Arm nepotreboval implementovať 64-bitovú podporu týmto spôsobom, ale urobil, a tak vznikol AArch64. Hoci AArch64 nie je ISA, väčšina ľudí tento výraz používa v dobrom aj zlom.