stringtranslate.com

AArch64

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

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

ARM-A (arquitectura de aplicación)

Anunciado en octubre de 2011, [2] ARMv8-A representa un cambio fundamental en la arquitectura ARM. Agrega un estado de ejecución opcional de 64 bits, denominado "AArch64", y el nuevo conjunto de instrucciones asociado "A64", además de un estado de ejecución de 32 bits, "AArch32", que admite el "A32" de 32 bits (original 32 -bit Arm) y conjuntos de instrucciones "T32" (Thumb/Thumb-2). Los últimos conjuntos de instrucciones proporcionan compatibilidad en el espacio de usuario con la arquitectura ARMv7-A de 32 bits existente. ARMv8-A permite ejecutar aplicaciones de 32 bits 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 . [3] ARM anunció sus núcleos Cortex-A53 y Cortex-A57 el 30 de octubre de 2012. [4] Apple fue el primero en lanzar un núcleo compatible con ARMv8-A ( Cyclone ) en un producto de consumo ( iPhone 5S ). AppliedMicro , utilizando una FPGA , fue el primero en realizar una demostración de ARMv8-A. [5] El primer SoC ARMv8-A de Samsung es el Exynos 5433 utilizado en el Galaxy Note 4 , que presenta dos grupos de cuatro núcleos Cortex-A57 y Cortex-A53 en una configuración big.LITTLE ; pero se ejecutará sólo en modo AArch32. [6]

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 . [7]

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

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 opción, tras su introducción en ARMv8-A; no está incluido en ARMv8-M.

Formatos de instrucción

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

ARMv8.1-A

En diciembre de 2014, se anunció ARMv8.1-A, [13] una actualización con "beneficios incrementales sobre v8.0". Las mejoras se dividieron en dos categorías: cambios en el conjunto de instrucciones y cambios en el modelo de excepción y 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 vectorial escalable (SVE)

Scalable Vector Extension (SVE) es "una extensión opcional de la arquitectura ARMv8.2-A y más reciente" desarrollada específicamente para la vectorización de cargas de trabajo científicas informáticas de alto rendimiento . [16] [17] La ​​especificación permite implementar longitudes de vectores variables de 128 a 2048 bits. La extensión es complementaria y no reemplaza a las extensiones NEON .

Ya se ha implementado una variante SVE de 512 bits en la supercomputadora Fugaku utilizando el procesador Fujitsu A64FX ARM; 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] El procesador AWS Graviton3 ARM implementó una versión más flexible, 2x256 SVE .

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

ARMv8.3-A

En octubre de 2016, se anunció ARMv8.3-A. Sus mejoras se dividieron 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 clasifican en estas categorías: [27] [28] [29]

ARMv8.5-A y ARMv9.0-A

En septiembre de 2018, se anunció ARMv8.5-A. Sus mejoras se clasifican en estas 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] ARMv9-A también agrega:

ARMv8.6-A y ARMv9.1-A

En septiembre de 2019, se anunció ARMv8.6-A. Sus mejoras se clasifican en estas categorías: [30] [42]

Por ejemplo, trampas detalladas, instrucciones de espera de evento (WFE), EnhancedPAC2 y FPAC. Las extensiones bfloat16 para SVE y Neon son principalmente para uso de aprendizaje profundo. [44]

ARMv8.7-A y ARMv9.2-A

En septiembre de 2020, se anunció ARMv8.7-A. Sus mejoras se clasifican en estas 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)

Se agregó compatibilidad opcional con AArch64 al perfil Armv8-R, y el primer núcleo de Arm que lo implementó fue el Cortex-R82. [50] Agrega el conjunto de instrucciones A64, con algunos cambios en las instrucciones de barrera de memoria. [51]

Referencias

  1. ^ "Descripción general". Conozca la arquitectura: comprensión de las extensiones Armv8.x y Armv9.x .
  2. ^ "ARM revela detalles técnicos de la próxima versión de la arquitectura ARM" (Presione soltar). Portabrazos . 27 de octubre de 2011. Archivado desde el original el 1 de enero de 2019 . Consultado el 20 de septiembre de 2013 .
  3. ^ Grisenthwaite, Richard (2011). "Vista previa de la tecnología ARMv8-A" (PDF) . Archivado desde el original (PDF) el 11 de noviembre de 2011 . Consultado el 31 de octubre de 2011 .
  4. ^ "ARM lanza la serie Cortex-A50, los procesadores de 64 bits con mayor eficiencia energética del mundo" (Presione soltar). Portabrazos . Consultado el 31 de octubre de 2012 .
  5. ^ "AppliedMicro presenta el primer núcleo ARM v8 de 64 bits del mundo" (Presione soltar). Microaplicado. 28 de octubre de 2011 . Consultado el 11 de febrero de 2014 .
  6. ^ "El Exynos 5433 de Samsung es un SoC ARM A57/A53". AnandTech . Consultado el 17 de septiembre de 2014 .
  7. ^ "Manual de referencia técnica del procesador ARM Cortex-A53 MPCore: extensión de criptografía". BRAZO . Consultado el 11 de septiembre de 2016 .
  8. ^ ab "Impacto de los niveles de excepción implementados". Conozca la arquitectura: modelo de excepción AArch64 . Brazo.
  9. ^ "Corteza-A32". Desarrollador de brazo .
  10. ^ "Cortex-A34". Desarrollador de brazo .
  11. ^ "Cortex-A72". Desarrollador de brazo .
  12. ^ "Procesador Cortex-A32 - ARM" . Consultado el 18 de diciembre de 2016 .
  13. ^ Brash, David (2 de diciembre de 2014). "La arquitectura ARMv8-A y su desarrollo continuo" . Consultado el 23 de enero de 2015 .
  14. ^ "Ignorar el 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 a". Comunidad de brazos . 22 de agosto de 2016 . Consultado el 8 de julio de 2018 .
  17. ^ ab "Serie de lanzamientos de GCC 8 - Cambios, nuevas funciones 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 (Comunicado de prensa) . Consultado el 8 de julio de 2018 .
  19. ^ "La japonesa Fugaku gana el título de supercomputadora más rápida del mundo" (Presione soltar). www.riken.jp. 23 de junio de 2020 . Consultado el 7 de diciembre de 2020 .
  20. ^ "La frontera de ORNL es la primera en romper el techo de exaflop". Top500 . 30 de mayo de 2022 . Consultado el 30 de mayo de 2022 .
  21. ^ "⚙ D71712 Implementación de SVE/SVE2 descendente (LLVM)". reseñas.llvm.org .
  22. ^ David Brash (26 de octubre de 2016). "Arquitectura ARMv8-A: adiciones 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 documento técnico que detalla la autenticación de puntero en ARMv8.3". 10 de enero de 2017.
  25. ^ "Instrucciones de punto flotante A64: FJCVTZS". arm.com . Consultado el 11 de julio de 2019 .
  26. ^ "Serie de lanzamientos de 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= se admite 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 Arm Architecture". comunidad.arm.com . 2 de noviembre de 2017 . Consultado el 15 de junio de 2019 .
  28. ^ "Explorando el aprendizaje automático de productos punto". comunidad.arm.com . 6 de diciembre de 2017 . Consultado el 15 de junio de 2019 .
  29. ^ "ARM prepara compatibilidad con ARMv8.4-A para el compilador GCC: Phoronix". www.phoronix.com . Consultado el 14 de enero de 2018 .
  30. ^ abcd "Extensiones y funciones ARMv8.x y ARMv9.x". Conozca la arquitectura: comprensión de las extensiones ARMv8.x y ARMv9.x .
  31. ^ "Anuncio de Arm Architecture ARMv8.5-A - Blog de procesadores - Procesadores - Comunidad Arm". comunidad.arm.com . Consultado el 26 de abril de 2019 .
  32. ^ "Manual de referencia de arquitectura Arm ARMv8, para perfil de arquitectura ARMv8-A". Desarrollador ARM . Consultado el 6 de agosto de 2019 .
  33. ^ "Arquitectura Arm MTE: mejora de la seguridad de la memoria". comunidad.arm.com . 5 de agosto de 2019 . Consultado el 27 de julio de 2021 .
  34. ^ "Adopción de la extensión Arm Memory Tagging en Android". Blog de seguridad en línea de Google . Consultado el 6 de agosto de 2019 .
  35. ^ "La solución de Arm para las necesidades futuras de inteligencia artificial, seguridad e informática especializada es la v9". Brazo | La Arquitectura para el Mundo Digital . Consultado el 27 de julio de 2021 .
  36. ^ Schor, David (30 de marzo de 2021). "Arm lanza ARMv9". Fusible WikiChip . 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 arquitectura de perfil A - Blog de procesadores - Procesadores - Comunidad Arm". comunidad.arm.com . 18 de abril de 2019 . Consultado el 25 de mayo de 2019 .
  39. ^ ab "Alineación de compatibilidad con 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". comunidad.arm.com . 23 de junio de 2021 . Consultado el 27 de julio de 2021 .
  41. ^ "Arm presenta su arquitectura informática confidencial". Fusible WikiChip . 23 de junio de 2021 . Consultado el 27 de julio de 2021 .
  42. ^ "Actualización de la arquitectura del perfil Arm A 2019". comunidad.arm.com . 25 de septiembre de 2019 . Consultado el 26 de septiembre de 2019 .
  43. ^ "Notas de la versión LLVM 11.0.0". lanzamientos.llvm.org . Consultado el 11 de marzo de 2021 .
  44. ^ "Extensiones BFloat16 para ARMv8-A". comunidad.arm.com . 29 de agosto de 2019 . Consultado el 30 de agosto de 2019 .
  45. ^ Weidmann, Martin (21 de septiembre de 2020). "Desarrollos de arquitectura Arm A-Profile 2020". comunidad.arm.com . BRAZO . Consultado el 28 de septiembre de 2022 .
  46. ^ "Extensión de matriz escalable para la arquitectura ARMv9-A". comunidad.arm.com . 14 de julio de 2021 . Consultado el 27 de julio de 2021 .
  47. ^ Weidmann, Martin (8 de septiembre de 2021). "Desarrollos de arquitectura Arm A-Profile 2021". comunidad.arm.com . BRAZO . Consultado el 28 de septiembre de 2022 .
  48. ^ "¿Qué hay de nuevo en LLVM 15? - Blog de arquitecturas y procesadores - Blogs de Arm Community - Arm Community". 27 de febrero de 2023 . Consultado el 15 de abril de 2023 .
  49. ^ "Desarrollos de arquitectura Arm A-Profile 2022 - Blog de arquitecturas y procesadores - Blogs de Arm Community - Arm Community". comunidad.arm.com . 29 de septiembre de 2022 . Consultado el 9 de diciembre de 2022 .
  50. ^ Frumusanu, Andrei (3 de septiembre de 2020). "ARM anunció Cortex-R82: primer procesador en tiempo real de 64 bits". AnandTech .
  51. ^ "Suplemento del manual de referencia de arquitectura de Arm: Armv8, para el perfil de arquitectura Armv8-R AArch64". brazo ltd.