stringtranslate.com

Archivo AArch64

Plataforma Armv8-A con chip CPU Cortex-A57 / A53 MPCore big.LITTLE

AArch64 o ARM64 es el estado de ejecución de 64 bits de la familia de arquitecturas ARM . Se introdujo por primera vez con la arquitectura Armv8-A y ha tenido muchas actualizaciones de extensión. [1]

Estado de ejecución de AArch64

Convenciones de nombres

Características de AArch64

Extensión: Sugerencia de recopilación de datos (ARMv8.0-DGH).

AArch64 se introdujo en ARMv8-A y se incluye en versiones posteriores de ARMv8-A. También se introdujo en ARMv8-R como una opción, después de su introducción en ARMv8-A; no se incluye en ARMv8-M.

Formatos de instrucciones

El código de operación principal para seleccionar a qué grupo pertenece una instrucción A64 está en los bits 25-28.

ARM-A (arquitectura de aplicación)

Anunciado en octubre de 2011, [3] ARMv8-A representa un cambio fundamental en la arquitectura ARM. Añade un estado de ejecución de 64 bits opcional, denominado "AArch64", y el nuevo conjunto de instrucciones "A64" asociado, además de un estado de ejecución de 32 bits, "AArch32", que admite los conjuntos de instrucciones "A32" (Arm original de 32 bits) y "T32" (Thumb/Thumb-2) de 32 bits. Los últimos conjuntos de instrucciones proporcionan compatibilidad en el espacio de usuario con la arquitectura ARMv7-A de 32 bits existente. ARMv8-A permite que las aplicaciones de 32 bits se ejecuten en un sistema operativo de 64 bits, y que un sistema operativo de 32 bits esté bajo el control de un hipervisor de 64 bits . [4] ARM anunció sus núcleos Cortex-A53 y Cortex-A57 el 30 de octubre de 2012. [5] Apple fue el primero en lanzar un núcleo compatible con ARMv8-A ( Cyclone ) en un producto de consumo ( iPhone 5S ). AppliedMicro , utilizando un FPGA , fue el primero en demostrar ARMv8-A. [6] El primer SoC ARMv8-A de Samsung es el Exynos 5433 utilizado en el Galaxy Note 4 , que cuenta con dos clústeres de cuatro núcleos Cortex-A57 y Cortex-A53 en una configuración big.LITTLE ; pero solo se ejecutará en modo AArch32. [7]

ARMv8-A incluye VFPv3/v4 y SIMD avanzado (Neon) como características estándar tanto en AArch32 como en AArch64. También agrega instrucciones de criptografía que admiten AES , SHA-1 / SHA-256 y aritmética de campos finitos . [8]

Un procesador ARMv8-A puede soportar uno o ambos de AArch32 y AArch64; puede soportar AArch32 y AArch64 en niveles de excepción más bajos y solo AArch64 en niveles de excepción más altos. [9] Por ejemplo, el ARM Cortex-A32 soporta solo AArch32, [10] el ARM Cortex-A34 soporta solo AArch64, [11] y el ARM Cortex-A72 soporta tanto AArch64 como AArch32. [12] Un procesador ARMv9-A debe soportar AArch64 en todos los niveles de excepción, y puede soportar AArch32 en EL0. [9]

ARMv8.1-A

En diciembre de 2014 se anunció ARMv8.1-A, [13] una actualización con "ventajas adicionales respecto de la versión 8.0". Las mejoras se dividían en dos categorías: cambios en el conjunto de instrucciones y cambios en el modelo de excepción y la traducción de memoria.

Las mejoras del conjunto de instrucciones incluyeron lo siguiente:

Las mejoras para el modelo de excepción y el sistema de traducción de memoria incluyeron lo siguiente:

ARMv8.2-A

En enero de 2016, se anunció ARMv8.2-A. [15] Sus mejoras se dividieron en cuatro categorías:

Extensión de vector escalable (SVE)

La extensión de vector escalable (SVE) es "una extensión opcional para la arquitectura ARMv8.2-A y posteriores" desarrollada específicamente para la vectorización de cargas de trabajo científicas de computación de alto rendimiento . [16] [17] La ​​especificación permite implementar longitudes de vector variables de 128 a 2048 bits. La extensión es complementaria a las extensiones NEON y no las reemplaza .

Ya se ha implementado una variante SVE de 512 bits en la supercomputadora Fugaku utilizando el procesador ARM Fujitsu A64FX ; esta computadora [18] fue la supercomputadora más rápida del mundo durante dos años, desde junio de 2020 [19] hasta mayo de 2022. [20] Una versión más flexible, 2x256 SVE, fue implementada por el procesador ARM AWS Graviton3 .

El compilador GCC admite SVE , con GCC 8 que admite la vectorización automática [17] y GCC 10 que admite intrínsecos de C. A partir de julio de 2020 , LLVM y clang admiten intrínsecos de C e IR. La propia bifurcación de LLVM de ARM admite la vectorización automática. [21]

ARMv8.3-A

En octubre de 2016 se anunció ARMv8.3-A. Sus mejoras se dividían en seis categorías: [22]

La arquitectura ARMv8.3-A ahora es compatible con (al menos) el compilador GCC 7. [26]

ARMv8.4-A

En noviembre de 2017 se anunció ARMv8.4-A. Sus mejoras se dividen en las siguientes categorías: [27] [28] [29]

ARMv8.5-A y ARMv9.0-A

En septiembre de 2018 se anunció ARMv8.5-A. Sus mejoras se clasificaron en las siguientes categorías: [30] [31] [32]

El 2 de agosto de 2019, Google anunció que Android adoptaría Memory Tagging Extension (MTE). [34]

En marzo de 2021, se anunció ARMv9-A. La base de ARMv9-A son todas las características de ARMv8.5. [35] [36] [37] ARMv9A también agrega:

ARMv8.6-A y ARMv9.1-A

En septiembre de 2019 se anunció ARMv8.6-A. Sus mejoras se clasificaron en las siguientes categorías: [30] [42]

Por ejemplo, trampas de grano fino, instrucciones de espera de evento (WFE), EnhancedPAC2 y FPAC. Las extensiones bfloat16 para SVE y Neon están destinadas principalmente al uso en aprendizaje profundo. [44]

ARMv8.7-A y ARMv9.2-A

En septiembre de 2020 se anunció ARMv8.7-A. Sus mejoras se clasificaron en las siguientes categorías: [30] [45]

ARMv8.8-A y ARMv9.3-A

En septiembre de 2021 se anunciaron ARMv8.8-A y ARMv9.3-A. Sus mejoras se clasificaron en estas categorías: [30] [47]

LLVM 15 es compatible con ARMv8.8-A y ARMv9.3-A. [48]

ARMv8.9-A y ARMv9.4-A

En septiembre de 2022, se anunciaron ARMv8.9-A y ARMv9.4-A, que incluyen: [49]

ARM-R (arquitectura en tiempo real)

La arquitectura ARM-R , específicamente el perfil Armv8-R, está diseñada para abordar las necesidades de las aplicaciones en tiempo real, donde el comportamiento predecible y determinista es esencial. Este perfil se centra en ofrecer alto rendimiento, confiabilidad y eficiencia en sistemas integrados donde las restricciones en tiempo real son críticas.

Con la introducción de la compatibilidad opcional con AArch64 en el perfil Armv8-R, las capacidades en tiempo real se han mejorado aún más. El Cortex-R82 [50] es el primer procesador que implementa esta compatibilidad extendida, lo que aporta varias características nuevas y mejoras al dominio del tiempo real. [51]

Características principales de Armv8-R con soporte AArch64

  1. Conjunto de instrucciones AArch64 (A64) :
    • La instrucción A64 [25] establecida en el Cortex-R82 proporciona manejo y operaciones de datos de 64 bits, lo que mejora el rendimiento para ciertas tareas computacionales y mejora la eficiencia general del sistema. [50]
    • Instrucción de ejemplo : ADD X0, X1, X2suma los valores de los registros de 64 bits X1 y X2 y almacena el resultado en X0. Esta operación de 64 bits permite realizar cálculos más grandes y complejos en comparación con las operaciones de 32 bits del conjunto de instrucciones A32 anterior.
  2. Gestión de memoria mejorada :
    • Instrucciones de barrera de memoria : El Cortex-R82 introduce instrucciones de barrera de memoria mejoradas para garantizar el orden correcto de las operaciones de memoria, lo cual es fundamental en sistemas en tiempo real donde el tiempo de las operaciones de memoria debe controlarse estrictamente. [52]
      • Barrera de sincronización de datos (DSB) : garantiza que todos los accesos a los datos antes de la barrera se completen antes de continuar con las operaciones posteriores.
      • Barrera de memoria de datos (DMB) : garantiza que todos los accesos a la memoria antes de la barrera se completen antes de que pueda continuar cualquier acceso a la memoria después de la barrera.
    • Ejemplo : En un sistema de control automotriz en tiempo real, se puede utilizar DSB para garantizar que los datos del sensor se escriban completamente en la memoria antes de que el sistema proceda con el procesamiento o la toma de decisiones, evitando la corrupción o inconsistencia de los datos.
  3. Espacio de direcciones mejorado :
    • Direccionamiento de 64 bits : AArch64 permite que el Cortex-R82 direccione un espacio de memoria mucho más grande en comparación con sus predecesores de 32 bits, lo que lo hace adecuado para aplicaciones que requieren una memoria extensa.
    • Ejemplo : Un sistema de automatización industrial complejo puede utilizar el espacio de direcciones ampliado para gestionar grandes conjuntos de datos y buffers de manera más eficiente, mejorando el rendimiento y la capacidad del sistema.
  4. Mejoras de rendimiento en tiempo real :
    • Manejo de interrupciones : con soporte para AArch64, el Cortex-R82 puede manejar interrupciones con menor latencia y previsibilidad mejorada, crucial para operaciones en tiempo real.
    • Ejemplo : En una aplicación robótica, el manejo mejorado de interrupciones del Cortex-R82 puede garantizar respuestas oportunas a estímulos externos, como cambios en los datos de los sensores o comandos de control.

Referencias

  1. ^ "Descripción general". Conozca la arquitectura: descripción de las extensiones Armv8.x y Armv9.x .
  2. ^ "Procesador Cortex-A32 – ARM" . Consultado el 18 de diciembre de 2016 .
  3. ^ "ARM revela detalles técnicos de la próxima versión de la arquitectura ARM" (Nota de prensa). Arm Holdings . 27 de octubre de 2011. Archivado desde el original el 1 de enero de 2019 . Consultado el 20 de septiembre de 2013 .
  4. Grisenthwaite, Richard (2011). «ARMv8-A Technology Preview» (PDF) . Archivado desde el original (PDF) el 11 de noviembre de 2011. Consultado el 31 de octubre de 2011 .
  5. ^ "ARM lanza la serie Cortex-A50, los procesadores de 64 bits más eficientes energéticamente del mundo" (Nota de prensa). Arm Holdings . Consultado el 31 de octubre de 2012 .
  6. ^ "AppliedMicro presenta el primer núcleo ARM v8 de 64 bits del mundo" (nota de prensa). AppliedMicro. 28 de octubre de 2011. Consultado el 11 de febrero de 2014 .
  7. ^ "El Exynos 5433 de Samsung es un SoC ARM A57/A53". AnandTech . Consultado el 17 de septiembre de 2014 .
  8. ^ "Manual de referencia técnica del procesador ARM Cortex-A53 MPCore: extensión de criptografía". ARM . Consultado el 11 de septiembre de 2016 .
  9. ^ ab "Impacto de los niveles de excepción implementados". Conozca la arquitectura: modelo de excepción AArch64 . Arm.
  10. ^ "Cortex-A32". Desarrollador de Arm .
  11. ^ "Cortex-A34". Desarrollador de Arm .
  12. ^ "Cortex-A72". Desarrollador de Arm .
  13. ^ Brash, David (2 de diciembre de 2014). «La arquitectura ARMv8-A y su desarrollo en curso» . Consultado el 23 de enero de 2015 .
  14. ^ "Ignorar byte superior (TBI)". WikiChip .
  15. ^ Brash, David (5 de enero de 2016). «Evolución de la arquitectura ARMv8-A» . Consultado el 7 de junio de 2016 .
  16. ^ "La extensión vectorial escalable sve para la arquitectura ARMv8". Comunidad Arm . 22 de agosto de 2016 . Consultado el 8 de julio de 2018 .
  17. ^ ab «Serie de lanzamientos de GCC 8: cambios, nuevas características y correcciones – Proyecto GNU – Free Software Foundation (FSF)». gcc.gnu.org . Consultado el 9 de julio de 2018 .
  18. ^ "Fujitsu completa el prototipo de CPU de supercomputadora Post-K y comienza las pruebas de funcionalidad – Fujitsu Global". www.fujitsu.com (Nota de prensa) . Consultado el 8 de julio de 2018 .
  19. ^ "El Fugaku japonés obtiene el título de supercomputadora más rápida del mundo" (Comunicado de prensa). www.riken.jp. 23 de junio de 2020. Consultado el 7 de diciembre de 2020 .
  20. ^ "Frontier de ORNL es el primero en romper el techo de exaflops". Top500 . 30 de mayo de 2022 . Consultado el 30 de mayo de 2022 .
  21. ^ "⚙ D71712 Implementación descendente de SVE/SVE2 (LLVM)". reviews.llvm.org .
  22. ^ David Brash (26 de octubre de 2016). "Arquitectura ARMv8-A: novedades de 2016".
  23. ^ . "[Ping~,AArch64] Agregar soporte de línea de comandos para -march=armv8.3-a". La extensión de autenticación de puntero se define como una extensión obligatoria en ARMv8.3-A y no es opcional
  24. ^ "Qualcomm publica un informe técnico que detalla la autenticación de puntero en ARMv8.3". 10 de enero de 2017.
  25. ^ ab "Instrucciones de punto flotante A64: FJCVTZS". arm.com . Consultado el 11 de julio de 2019 .
  26. ^ "Serie de versiones GCC 7: cambios, nuevas funciones y correcciones". Ahora se admite la arquitectura ARMv8.3-A. Se puede utilizar especificando la opción -march=armv8.3-a. [..] La opción -msign-return-address= es compatible para habilitar la protección de la dirección de retorno mediante extensiones de autenticación de puntero ARMv8.3-A.
  27. ^ "Presentación de las extensiones de 2017 a la arquitectura Arm". community.arm.com . 2 de noviembre de 2017 . Consultado el 15 de junio de 2019 .
  28. ^ "Explorando el aprendizaje automático de productos escalares". community.arm.com . 6 de diciembre de 2017 . Consultado el 15 de junio de 2019 .
  29. ^ "ARM prepara el soporte de ARMv8.4-A para el compilador GCC – Phoronix". www.phoronix.com . Consultado el 14 de enero de 2018 .
  30. ^ abcd "Extensiones y características de ARMv8.x y ARMv9.x". Conozca la arquitectura: Comprensión de las extensiones de ARMv8.x y ARMv9.x .
  31. ^ "Arquitectura Arm ARMv8.5-A Anuncio – Blog de procesadores – Procesadores – Comunidad Arm". community.arm.com . Consultado el 26 de abril de 2019 .
  32. ^ "Manual de referencia de arquitectura ARM ARMv8, para el perfil de arquitectura ARMv8-A". ARM Developer . Consultado el 6 de agosto de 2019 .
  33. ^ "Arquitectura Arm MTE: mejora de la seguridad de la memoria". community.arm.com . 5 de agosto de 2019 . Consultado el 27 de julio de 2021 .
  34. ^ "Adopción de la extensión de etiquetado de memoria Arm en Android". Blog de seguridad en línea de Google . Consultado el 6 de agosto de 2019 .
  35. ^ "La solución de Arm a las necesidades futuras de IA, seguridad y computación especializada es v9". Arm | La arquitectura para el mundo digital . Consultado el 27 de julio de 2021 .
  36. ^ Schor, David (30 de marzo de 2021). «Arm lanza ARMv9». WikiChip Fuse . Consultado el 27 de julio de 2021 .
  37. ^ Frumusanu, Andrei. "Arm anuncia la arquitectura ARMv9: SVE2, seguridad y la próxima década". www.anandtech.com . Consultado el 27 de julio de 2021 .
  38. ^ abc «Arm lanza SVE2 y TME para la arquitectura de perfil A – Blog de procesadores – Procesadores – Comunidad Arm». community.arm.com . 18 de abril de 2019 . Consultado el 25 de mayo de 2019 .
  39. ^ ab "Alineación del soporte de Arm SVE2 para GCC 10, LLVM Clang 9.0 – Phoronix". www.phoronix.com . Consultado el 26 de mayo de 2019 .
  40. ^ "Desbloquear el poder de los datos con Arm CCA". community.arm.com . 23 de junio de 2021 . Consultado el 27 de julio de 2021 .
  41. ^ "Arm presenta su arquitectura informática confidencial". WikiChip Fuse . 23 de junio de 2021 . Consultado el 27 de julio de 2021 .
  42. ^ "Actualización de la arquitectura del perfil Arm A 2019". community.arm.com . 25 de septiembre de 2019 . Consultado el 26 de septiembre de 2019 .
  43. ^ "Notas de la versión de LLVM 11.0.0". releases.llvm.org . Consultado el 11 de marzo de 2021 .
  44. ^ "Extensiones BFloat16 para ARMv8-A". community.arm.com . 29 de agosto de 2019 . Consultado el 30 de agosto de 2019 .
  45. ^ Weidmann, Martin (21 de septiembre de 2020). "Desarrollos de la arquitectura ARM A-Profile 2020". community.arm.com . ARM . Consultado el 28 de septiembre de 2022 .
  46. ^ "Extensión de matriz escalable para la arquitectura ARMv9-A". community.arm.com . 14 de julio de 2021 . Consultado el 27 de julio de 2021 .
  47. ^ Weidmann, Martin (8 de septiembre de 2021). "Desarrollos de la arquitectura ARM A-Profile 2021". community.arm.com . ARM . Consultado el 28 de septiembre de 2022 .
  48. ^ "¿Qué novedades hay en LLVM 15? - Blog sobre arquitecturas y procesadores - Blogs de la comunidad Arm - Comunidad Arm". 27 de febrero de 2023. Consultado el 15 de abril de 2023 .
  49. ^ "Desarrollos de la arquitectura Arm A-Profile 2022 - Blog de arquitecturas y procesadores - Blogs de la comunidad Arm - Comunidad Arm". community.arm.com . 29 de septiembre de 2022 . Consultado el 9 de diciembre de 2022 .
  50. ^ ab Frumusanu, Andrei (3 de septiembre de 2020). "ARM anunció Cortex-R82: el primer procesador en tiempo real de 64 bits". AnandTech .
  51. ^ "Suplemento del Manual de referencia de arquitectura Arm - Armv8, para el perfil de arquitectura AArch64 de Armv8-R". Arm Ltd.
  52. ^ "Manual de referencia técnica de Cortex-R82".

Enlaces externos