Anche se probabilmente hai utilizzato un dispositivo con un processore AArch64 all'interno, potresti non sapere cosa significa. Ecco cosa devi sapere.
Ci sono molte CPU architetture là fuori, con i più grandi x86 E BRACCIO. Detto questo, AArch64 è probabilmente volato sotto il tuo radar. Anche l'appassionato di tecnologia abbastanza colto potrebbe non averne mai sentito parlare, nonostante sia presente in milioni di dispositivi. Bene, il fatto è che AArch64 non è tanto misterioso quanto è un termine tecnico molto confuso. Ecco cosa devi sapere su AArch64.
AArch64 è ARM64, più o meno
Fonte: Braccio
In breve, AArch64 è il nome ufficiale dell'architettura del set di istruzioni (ISA) a 64 bit di Arm introdotta con l'aggiornamento Armv8-A. Si riferisce quasi sempre ad AArch64. Non è chiaro esattamente perché ARM64 sia spesso usato al posto di AArch64, ma parte della confusione sembra derivare da due punti. Parte di ciò è dovuto al fatto che l'estensione a 64 bit di x86 è x86-64, quindi naturalmente l'estensione a 64 bit di ARM dovrebbe essere ARM64. Apple sembrava certamente pensarla così e si riferiva ad AArch64 come ARM64 fino al 2014. Per la maggior parte delle persone, "AArch64 è ARM64" è una spiegazione molto soddisfacente.
Se vuoi diventare davvero tecnico, AArch64 non è l'ISA, ma piuttosto il stato di esecuzione che consente alle CPU ARM di utilizzare (e utilizzare solo) il set di istruzioni A64 dell'ISA ARMv8, introdotto per la prima volta con l'architettura Armv8-A. Se questo suona confuso, è perché lo è. Anche se hai familiarità con l'architettura del computer, questo può essere difficile da capire, quindi lo spiegherò passo dopo passo.
Quindi, tecnicamente, AArch64 è uno stato, non un ISA, ma a nessuno importa, nemmeno lo stesso Arm.
ARM è una famiglia di ISA correlati e sebbene ISA diversi di solito implichino incompatibilità, ciò non è strettamente vero. Diverse versioni di ARM ISA sono denominate ARMv1, ARMv2 e così via, ma questi ISA contengono quelli che sono essenzialmente sub-ISA: profilo A, profilo M e profilo R. La differenza fondamentale tra questi sub-ISA è la quantità minima di istruzioni che ciascuno utilizza, con il profilo A che ne utilizza di più e il profilo M che ne utilizza di meno. Pertanto, ARM ISA è suddiviso in singole versioni come ARMv8, quindi tali versioni sono ulteriormente suddivise in diverse implementazioni dell'ISA.
Armv8-A è l'implementazione iniziale del profilo A dell'ISA ARMv8, che ha aggiunto due nuove cose: AArch32 e AArch64. Questi sono indicati come stati o modalità e consentono alle CPU ARM di accedere a diversi set di istruzioni, con AArch32 contenente le istruzioni A32 e T32 a 32 bit e AArch64 contenente le istruzioni A64 a 64 bit Istruzioni. Ad esempio, se un processore è attualmente nello stato AArch64 e desidera utilizzare le istruzioni A32, deve modificare il proprio stato in AArch32. Inoltre, in modalità AArch64, sono accessibili sia i registri a 32 bit che a 64 bit, mentre in modalità AArch32 sono utilizzabili solo i registri a 32 bit. La parte più confusa di tutto questo è che tutte queste cose sono indicate in modo variabile come ISA e persino Arm (la società che sviluppa ARM ISA) è colpevole di questo.
Ma se vogliamo essere super tecnici, ecco com'è in realtà: l'ottava versione di ARM ISA, ARMv8, è stata implementata per la prima volta con Armv8-A, che contiene due stati chiamati AArch32 e AArch64. Quando una CPU è nello stato AArch64, può eseguire istruzioni A64 a 64 bit. Quindi, tecnicamente, AArch64 è uno stato, non un ISA, ma a nessuno importa, nemmeno lo stesso Arm.
Perché sia a 32 bit che a 64 bit sono importanti per ARM
Quindi AArch64 è in realtà piuttosto complicato e dover cambiare stato solo per usare istruzioni a 32 e 64 bit sembra ingombrante. Il fatto è che il supporto sia per 32 bit che per 64 bit era troppo importante per lasciarlo perdere, quindi deve essere così. In realtà si trattava di due problemi principali: la necessità di supportare il vecchio software a 32 bit e il perseguimento di un calcolo moderno e ad alte prestazioni.
Se Arm non avesse incluso il supporto nativo per il software a 32 bit nel suo primo ISA a 64 bit, sarebbe potuto essere un disastro perché, in parole povere, nessuno vuole riscrivere il codice. Se ARMv8 richiedesse a tutti di scrivere un nuovo software da zero, avrebbe potuto far precipitare l'ISA in una spirale mortale, dove nessuno produce o acquista Dispositivi ARMv8 a causa della mancanza di software, e quindi gli sviluppatori non creano app a causa della mancanza di utenti, all'infinito fino a quando Arm non deve chiamarlo si chiude. Quindi, il supporto a 32 bit non era negoziabile.
D'altra parte, nemmeno l'implementazione del calcolo a 64 bit era un'opzione. Intel e AMD, le società dietro x86, utilizzavano architetture a 64 bit sin dai primi anni 2000 per i loro CPU straordinarie, sebbene all'epoca non vi fosse alcuna richiesta di chip ARM a 64 bit poiché i telefoni non ne avevano bisogno. Ma l'invenzione dello smartphone ha cambiato tutto e tutti volevano che i loro telefoni facessero più cose. Il supporto a 64 bit non solo aiuterebbe gli smartphone a diventare più potenti, ma aprirebbe anche la porta per le aziende di realizzare chip ARM per mercati in cui x86 dominava tradizionalmente, come laptop e server.
Fondamentalmente, tutta questa confusione di denominazione è nata dal bisogno di Arm di modernizzare la sua tecnologia in risposta alle mutevoli priorità. Forse Arm non aveva bisogno di implementare il supporto a 64 bit in questo modo, ma lo ha fatto, ed è così che è nato AArch64. Sebbene AArch64 non sia un ISA, è così che la maggior parte delle persone usa il termine, nel bene e nel male.