Mikä on AArch64? Mitä sinun tulee tietää tästä suorittimen arkkitehtuurista

click fraud protection

Vaikka olet todennäköisesti käyttänyt laitetta, jonka sisällä on AArch64-prosessori, et ehkä tiedä mitä se tarkoittaa. Tässä on mitä sinun on tiedettävä.

Prosessoreita on monia arkkitehtuurit siellä, suurimmat ovat x86 ja ARM. AArch64 on luultavasti lentänyt tutkasi alle. Jopa melko paljon lukenut tekniikan harrastaja ei ehkä ole koskaan kuullut siitä, vaikka se on läsnä miljoonissa laitteissa. No, asia on, että AArch64 ei ole niinkään mysteeri, vaan se on hyvin hämmentävä tekninen termi. Tässä on mitä sinun tulee tietää AArch64:stä.

AArch64 on tavallaan ARM64

Lähde: Arm

Lyhyesti sanottuna AArch64 on virallinen nimi Armin 64-bittiselle käskysarjaarkkitehtuurille (ISA), joka otettiin käyttöön Armv8-A-päivityksen yhteydessä. Se viittaa melkein aina AArch64:ään. Ei ole selvää, miksi ARM64:ää käytetään usein AArch64:n sijasta, mutta osa hämmennystä näyttää johtuvan kahdesta paikasta. Osa siitä johtuu siitä, että x86:n 64-bittinen laajennus on x86-64, joten luonnollisesti ARM: n 64-bittisen laajennuksen tulisi olla ARM64. Apple näytti varmasti ajattelevan niin ja viittasi AArch64:ään nimellä ARM64 vuoteen 2014 asti. Useimmille ihmisille "AArch64 on ARM64" on erittäin tyydyttävä selitys.

Jos haluat todella tekniseksi, AArch64 ei ole ISA, vaan pikemminkin suoritustila jonka avulla ARM-suorittimet voivat käyttää (ja vain käyttää) ARMv8 ISA: n A64-käskysarjaa, joka esiteltiin ensimmäisen kerran Armv8-A-arkkitehtuurin kanssa. Jos tämä kuulostaa hämmentävältä, se johtuu siitä, että se on sitä. Vaikka olet perehtynyt tietokonearkkitehtuuriin, sitä voi olla vaikea ymmärtää, joten aion selittää tämän vaihe vaiheelta.

Joten teknisesti AArch64 on valtio, ei ISA, mutta kukaan ei välitä, ei edes Arm itse.

ARM on perhe toisiinsa liittyviä ISA: ita, ja vaikka erilaiset ISA: t yleensä viittaavat yhteensopimattomuuteen, se ei ole täysin totta. ARM ISA: n eri versioita kutsutaan nimellä ARMv1, ARMv2 ja niin edelleen, mutta nämä ISA: t sisältävät olennaisesti ali-ISA: ita: A-profiilin, M-profiilin ja R-profiilin. Perusero näiden ali-ISA: iden välillä on kunkin käyttämien ohjeiden vähimmäismäärä, kun A-profiili käyttää eniten ja M-profiili vähiten. Joten ARM ISA on jaettu yksittäisiin versioihin, kuten ARMv8, ja sitten nämä versiot jaetaan edelleen eri ISA-toteutuksiin.

Armv8-A on ARMv8 ISA: n ensimmäinen A-profiilin toteutus, joka lisäsi kaksi uutta asiaa: AArch32 ja AArch64. Näitä kutsutaan tiloiksi tai tiloiksi, ja niiden avulla ARM-suorittimet voivat käyttää erilaisia ​​käskysarjoja, jossa AArch32 sisältää 32-bittiset A32- ja T32-ohjeet ja AArch64, joka sisältää 64-bittisen A64:n ohjeet. Esimerkiksi, jos prosessori on tällä hetkellä AArch64-tilassa ja haluaa käyttää A32-käskyjä, sen on vaihdettava tila AArch32:een. Lisäksi AArch64-tilassa sekä 32-bittiset että 64-bittiset rekisterit ovat käytettävissä, kun taas AArch32-tilassa vain 32-bittiset rekisterit ovat käytettävissä. Hämmentävin osa tässä kaikessa on, että kaikkia näitä asioita kutsutaan vaihtelevasti ISA: iksi ja jopa Arm (ARM ISA: ta kehittävä yritys) on syyllinen tähän.

Mutta jos ollaan superteknisiä, näin se itse asiassa on: ARM ISA: n kahdeksas versio, ARMv8, toteutettiin ensin Armv8-A: lla, joka sisältää kaksi tilaa nimeltä AArch32 ja AArch64. Kun CPU on AArch64-tilassa, se voi suorittaa 64-bittisiä A64-käskyjä. Joten teknisesti AArch64 on valtio, ei ISA, mutta kukaan ei välitä, ei edes Arm itse.

Miksi sekä 32- että 64-bittisellä on merkitystä ARM: lle?

Joten AArch64 on itse asiassa melko monimutkainen, ja tilojen vaihtaminen vain 32- ja 64-bittisten ohjeiden käyttämiseksi näyttää hankalalta. Asia on, että tuki sekä 32-bittiselle että 64-bittiselle oli liian tärkeä ohitettavaksi, joten sen on vain oltava näin. Se johtui todella kahdesta suuresta ongelmasta: vanhojen 32-bittisten ohjelmistojen tukemisesta ja nykyaikaisen, tehokkaan tietojenkäsittelyn tavoittelusta.

Jos Arm ei sisällyttänyt natiivitukea 32-bittisille ohjelmistoille ensimmäiseen 64-bittiseen ISA: han, se olisi voinut olla katastrofi, koska yksinkertaisesti sanottuna kukaan ei halua kirjoittaa koodia uudelleen. Jos ARMv8 vaatisi kaikkien kirjoittamaan uusia ohjelmistoja tyhjästä, se olisi voinut asettaa ISA: n kuolemankierteeseen, jossa kukaan ei tee tai osta ARMv8-laitteet ohjelmistojen puutteen vuoksi, ja sitten kehittäjät eivät tee sovelluksia käyttäjien puutteen vuoksi, loputtomiin, kunnes Arm joutuu kutsumaan sitä lopettaa. Joten 32-bittinen tuki ei ollut neuvoteltavissa.

Toisaalta 64-bittisen tietojenkäsittelyn käyttämättä jättäminen ei myöskään ollut vaihtoehto. Intel ja AMD, x86:n takana olevat yritykset, olivat käyttäneet 64-bittisiä arkkitehtuureja 2000-luvun alusta lähtien hämmästyttäviä suorittimia, vaikka tuolloin 64-bittisiä ARM-siruja ei vaadittu, koska puhelimet eivät tarvinneet niitä. Mutta älypuhelimen keksintö muutti kaiken, ja kaikki halusivat puhelimiensa tekevän enemmän asioita. 64-bittinen tuki ei vain auttaisi älypuhelimia tehostamaan, vaan se myös avaisi oven yrityksille valmistamaan ARM-siruja markkinoille, joilla x86 on perinteisesti hallitseva, kuten kannettavat tietokoneet ja palvelimia.

Pohjimmiltaan tämä koko nimeämishäiriö johtui siitä, että Arm joutui modernisoimaan tekniikkaansa vastauksena muuttuviin prioriteetteihin. Ehkä Armin ei tarvinnut ottaa käyttöön 64-bittistä tukea tällä tavalla, mutta se teki, ja näin AArch64 syntyi. Vaikka AArch64 ei ole ISA, useimmat ihmiset käyttävät tätä termiä niin hyvässä kuin pahassa.