¿Qué es AArch64? Lo que necesita saber sobre esta arquitectura de CPU

Aunque probablemente hayas usado un dispositivo con un procesador AArch64 en su interior, es posible que no sepas lo que significa. Esto es lo que necesita saber.

Hay muchas CPU arquitecturas por ahí, siendo los más grandes x86 y BRAZO. Habiendo dicho eso, AArch64 probablemente haya pasado desapercibido. Es posible que incluso los entusiastas de la tecnología bastante cultos nunca hayan oído hablar de él, a pesar de que está presente en millones de dispositivos. Bueno, la cuestión es que AArch64 no es tan misterioso como un término técnico muy confuso. Esto es lo que necesita saber sobre AArch64.

AArch64 es ARM64, una especie de

Fuente: Brazo

En resumen, AArch64 es el nombre oficial de la arquitectura del conjunto de instrucciones (ISA) de 64 bits de Arm que se introdujo con la actualización Armv8-A. Casi siempre se refiere a AArch64. No está claro exactamente por qué ARM64 se usa a menudo en lugar de AArch64, pero parte de la confusión parece provenir de dos lugares. En parte se debe a que la extensión de 64 bits de x86 es x86-64, por lo que, naturalmente, la extensión de 64 bits de ARM debería ser ARM64. Apple ciertamente pareció pensar que sí y se refirió a AArch64 como ARM64 hasta 2014. Para la mayoría de las personas, "AArch64 es ARM64" es una explicación muy satisfactoria.

Si quiere ser realmente técnico, AArch64 no es el ISA, sino el estado de ejecución que permite que las CPU ARM usen (y solo usen) el conjunto de instrucciones A64 de ARMv8 ISA, que se introdujo por primera vez con la arquitectura Armv8-A. Si esto suena confuso, es porque lo es. Incluso si está familiarizado con la arquitectura de computadoras, esto puede ser difícil de entender, así que lo explicaré paso a paso.

Entonces, técnicamente, AArch64 es un estado, no una ISA, pero a nadie le importa, ni siquiera a Arm.

ARM es una familia de ISA relacionadas, y aunque diferentes ISA generalmente implican incompatibilidad, eso no es estrictamente cierto. Las diferentes versiones de ARM ISA se denominan ARMv1, ARMv2, etc., pero estas ISA contienen lo que son esencialmente sub-ISA: perfil A, perfil M y perfil R. La diferencia básica entre estas sub-ISA es la cantidad mínima de instrucciones que cada una usa, con el perfil A usando la mayoría y el perfil M usando la menor. Por lo tanto, ARM ISA se divide en versiones individuales, como ARMv8, y luego esas versiones se dividen en diferentes implementaciones de ISA.

Armv8-A es la implementación inicial de perfil A de ARMv8 ISA, que agregó dos elementos nuevos: AArch32 y AArch64. Estos se conocen como estados o modos, y permiten que las CPU ARM accedan a diferentes conjuntos de instrucciones, con AArch32 que contiene las instrucciones A32 y T32 de 32 bits, y AArch64 que contiene las instrucciones A64 de 64 bits instrucciones. Por ejemplo, si un procesador se encuentra actualmente en el estado AArch64 y quiere usar instrucciones A32, debe cambiar su estado a AArch32. Además, en el modo AArch64, se puede acceder a los registros de 32 y 64 bits, mientras que en el modo AArch32 solo se pueden utilizar los registros de 32 bits. La parte más confusa de todo esto es que todas estas cosas se denominan de forma variable ISA e incluso Arm (la empresa que desarrolla ARM ISA) es culpable de esto.

Pero si estamos siendo súper técnicos, así es como es: la octava versión de ARM ISA, ARMv8, se implementó por primera vez con Armv8-A, que contiene dos estados llamados AArch32 y AArch64. Cuando una CPU está en el estado AArch64, puede ejecutar instrucciones A64 de 64 bits. Entonces, técnicamente, AArch64 es un estado, no una ISA, pero a nadie le importa, ni siquiera a Arm.

Por qué tanto 32 bits como 64 bits son importantes para ARM

Por lo tanto, AArch64 es bastante complicado, y tener que cambiar de estado solo para usar instrucciones de 32 bits y 64 bits parece engorroso. La cuestión es que la compatibilidad con 32 bits y 64 bits era demasiado importante para dejarla pasar, así que tiene que ser así. Realmente se redujo a dos problemas principales: la necesidad de admitir software antiguo de 32 bits y buscar una informática moderna y de alto rendimiento.

Si Arm no incluyera soporte nativo para software de 32 bits en su primer ISA de 64 bits, podría haber sido un desastre porque, en pocas palabras, nadie quiere reescribir el código. Si ARMv8 requiriera que todos escribieran nuevo software desde cero, podría haber puesto a ISA en una espiral de muerte, donde nadie fabrica ni compra Dispositivos ARMv8 debido a la falta de software, y luego los desarrolladores no crean aplicaciones debido a la falta de usuarios, infinitamente hasta que Arm tenga que llamarlo en paz. Por lo tanto, el soporte de 32 bits no era negociable.

Por otro lado, no implementar la computación de 64 bits tampoco era una opción. Intel y AMD, las empresas detrás de x86, habían estado utilizando arquitecturas de 64 bits desde principios de la década de 2000 para su CPU increíbles, aunque en ese momento no había demanda de chips ARM de 64 bits porque los teléfonos no los necesitaban. Pero la invención del teléfono inteligente cambió todo, y todos querían que sus teléfonos hicieran más cosas. El soporte de 64 bits no solo ayudaría a los teléfonos inteligentes a ser más potentes, sino que también abrió la puerta para que las empresas fabriquen chips ARM para mercados donde tradicionalmente dominaba x86, como computadoras portátiles y servidores.

Básicamente, toda esta confusión de nombres surgió de la necesidad de Arm de modernizar su tecnología en respuesta a las prioridades cambiantes. Quizás Arm no necesitaba implementar el soporte de 64 bits de esta manera, pero lo hizo, y así fue como surgió AArch64. Aunque AArch64 no es una ISA, así es como la mayoría de la gente usa el término, para bien o para mal.