For faster navigation, this Iframe is preloading the Wikiwand page for AArch64.

AArch64

Plataforma Armv8-A amb Cortex-A57 / A53 MPCore gran. PETIT xip de CPU

AArch64 o ARM64 és l'extensió de 64 bits de la família d'arquitectures ARM.

Es va introduir per primera vegada amb l'arquitectura Armv8-A. Arm llança una nova extensió cada any.[1]

Extensions i funcions ARMv8.x i ARMv9.x

[modifica]

Anunciat l'octubre de 2011, ARMv8-A representa un canvi fonamental a l'arquitectura ARM. Afegeix una arquitectura opcional de 64 bits, anomenada "AArch64", i el nou conjunt d'instruccions "A64" associat. AArch64 proporciona compatibilitat amb l'espai d'usuari amb l'arquitectura de 32 bits existent ("AArch32" / ARMv7-A) i el conjunt d'instruccions ("A32"). El conjunt d'instruccions Thumb de 16-32 bits s'anomena "T32" i no té una contrapartida de 64 bits. ARMv8-A permet executar aplicacions de 32 bits en un sistema operatiu de 64 bits i un sistema operatiu de 32 bits sota el control d'un hipervisor de 64 bits.[2] ARM va anunciar els seus nuclis Cortex-A53 i Cortex-A57 el 30 d'octubre de 2012. Apple va ser la primera a llançar un nucli compatible amb ARMv8-A (Cyclone) en un producte de consum (iPhone 5S). AppliedMicro, utilitzant una FPGA, va ser el primer a fer una demostració d'ARMv8-A. El primer SoC ARMv8-A de Samsung és l'Exynos 5433 utilitzat al Galaxy Note 4, que inclou dos grups de quatre nuclis Cortex-A57 i Cortex-A53 en un gran.PETIT configuració; però només s'executarà en mode AArch32.[3]

Tant per a AArch32 com per a AArch64, ARMv8-A fa que VFPv3/v4 i SIMD avançat (Neon) sigui estàndard. També afegeix instruccions de criptografia compatibles amb AES, SHA-1/SH-256 i aritmètica de camps finits.[4]

ARMv8.1-A

[modifica]

El desembre de 2014, ARMv8.1-A [5] es va anunciar una actualització amb "avantatges incrementals respecte a la v8.0". Les millores es divideixen en dues categories: canvis al conjunt d'instruccions i canvis al model d'excepció i la traducció de memòria.

Les millores del conjunt d'instruccions inclouen les següents:

  • Un conjunt d'instruccions de lectura-escriptura atòmiques AArch64.
  • Addicions al conjunt d'instruccions SIMD avançades tant per a AArch32 com per a AArch64 per habilitar oportunitats per a algunes optimitzacions de biblioteca:
    • Signat Saturació Arrodonit Doblar Multiplicar Acumular, retornant la meitat alta.
    • Signat Saturació Arrodonit Doblament Multiplicació Resta, retornant la meitat alta.
    • Les instruccions s'afegeixen en formes vectorials i escalars.
  • Un conjunt d'instruccions de càrrega i emmagatzematge AArch64 que poden proporcionar un ordre d'accés a la memòria limitat a regions d'adreces configurables.
  • Les instruccions CRC opcionals de la v8.0 esdevenen un requisit a ARMv8.1.

ARMv8.2-A

[modifica]

El gener de 2016, es va anunciar ARMv8.2-A.[6] Les seves millores es divideixen en quatre categories:

  • Processament de dades de punt flotant de mitja precisió opcional (la mitja precisió ja era compatible, però no per al processament, només com a format d'emmagatzematge).
  • Millores del model de memòria
  • Introducció de l'extensió de fiabilitat, disponibilitat i servei (extensió RAS)
  • Introducció de perfils estadístics

ARMv8.3-A

[modifica]

L'octubre de 2016, es va anunciar ARMv8.3-A. Les seves millores es divideixen en sis categories: [7]

  • Autenticació de punter (només AArch64); extensió obligatòria (basada en un nou xifratge de blocs, QARMA) a l'arquitectura (els compiladors necessiten explotar la funció de seguretat, però com que les instruccions es troben a l'espai NOP, són compatibles cap enrere encara que no proporcionen seguretat addicional als xips més antics).
  • Virtualització imbricada (només AArch64)
  • Suport avançat de números complexos SIMD (AArch64 i AArch32); per exemple, rotacions per múltiples de 90 graus.
  • Nova instrucció FJCVTZS (Converteix JavaScript de coma flotant a punt fix signat, arrodonint cap a zero).
  • Un canvi al model de consistència de memòria (només AArch64); per donar suport al model RCpc (no predeterminat) més feble (processador coherent de llançament) de C++11/C11 (el model de coherència C++11/C11 per defecte ja era compatible amb l'ARMv8 anterior).
  • Suport del mecanisme d'identificació per a memòria cau més grans visibles al sistema (AArch64 i AArch32)

ARMv8.4-A

[modifica]

El novembre de 2017, es va anunciar ARMv8.4-A. Les seves millores van caure en aquestes categories: [8][9][10]

  • "Extensions criptogràfiques SHA3 / SHA512 / SM3 / SM4 "
  • Suport de virtualització millorat
  • Capacitats de monitorització i particions de memòria (MPAM).
  • Un nou estat segur EL2 i monitors d'activitat
  • Instruccions de producte de punts enters signats i sense signar (SDOT i UDOT).

ARMv8.5-A i ARMv9.0-A

[modifica]

El setembre de 2018, es va anunciar ARMv8.5-A. Les seves millores van caure en aquestes categories: [11][12][13]

  • Extensió d'etiquetatge de memòria (MTE)
  • Indicadors d'objectiu de branca (BTI) per reduir "la capacitat d'un atacant per executar codi arbitrari",
  • Instruccions del generador de números aleatoris: "proporciona números aleatoris deterministes i veritables conformes a diversos estàndards nacionals i internacionals"

ARMv8.6-A i ARMv9.1-A

[modifica]

El setembre de 2019, es va anunciar ARMv8.6-A. Les seves millores van caure en aquestes categories: [14][15]

  • Multiplicació de matrius generals (GEMM)
  • suport de format bfloat16
  • Instruccions de manipulació de matrius SIMD, BFDOT, BFMMLA, BFMLAL i BFCVT
  • millores per a la virtualització, la gestió del sistema i la seguretat
  • i les següents extensions (que LLVM 11 ja va afegir suport per a [16]):
    • Virtualització de comptador millorada (ARMv8.6-ECV)
    • Trampes de gra fi (ARMv8.6-FGT)
    • Virtualització de monitors d'activitat (ARMv8.6-AMU)

ARMv8.7-A i ARMv9.2-A

[modifica]

El setembre de 2020, es va anunciar ARMv8.7-A. Les seves millores van caure en aquestes categories: [17][18]

  • Extensió de matriu escalable (SME) (només ARMv9.2). SME afegeix noves funcions per processar matrius de manera eficient, com ara:
    • Emmagatzematge de rajoles Matrix
    • Transposició de matrius sobre la marxa
    • Carregar/emmagatzemar/inserir/extreure vectors de rajoles
    • Producte exterior de la matriu de vectors SVE
    • "Mode de streaming" SVE
  • Suport millorat per a connexió en calent PCIe (AArch64)
  • Càrrega atòmica de 64 bytes i emmagatzematge als acceleradors (AArch64)
  • Wait For Instruction (WFI) i Wait For Event (WFE) amb temps d'espera (AArch64)
  • Enregistrament Branch-Record (només ARMv9.2)

ARMv8.8-A i ARMv9.3-A

[modifica]

El setembre de 2021, es van anunciar ARMv8.8-A i ARMv9.3-A. Les seves millores van caure en aquestes categories: [19][20]

  • Interrupcions no emmascarables (AArch64)
  • Instruccions per optimitzar les operacions d'estil memcpy() i memset() (AArch64)
  • Millores al PAC (AArch64)
  • Branques condicionals indicades (AArch64)

ARMv8.9-A i ARMv9.4-A

[modifica]

El setembre de 2022, es van anunciar ARMv8.9-A i ARMv9.4-A, incloent: [21]

  • Millores de l'arquitectura del sistema de memòria virtual (VMSA).
    • Permisos indirectes i superposicions
    • Enduriment de la traducció
    • Taules de traducció de 128 bits (només ARMv9)
  • Extensió de matriu escalable 2 (SME2) (només ARMv9)
    • Instruccions multi-vector
    • Predicats multi-vectors
    • Compressió de pes 2b/4b
    • 1b xarxes binàries
    • Recollida prèvia de rang
  • Pila de control vigilat (GCS) (només ARMv9)
  • Informàtica confidencial
    • Contextos de xifratge de memòria
    • Assignació del dispositiu

Referències

[modifica]
  1. «Overview» (en anglès). Learn the architecture: Understanding the Armv8.x and Armv9.x extensions.
  2. Grisenthwaite, Richard. «ARMv8-A Technology Preview» (en anglès). Arxivat de l'original el 11 November 2011. [Consulta: 31 octubre 2011].
  3. «Samsung's Exynos 5433 is an A57/A53 ARM SoC» (en anglès). AnandTech. [Consulta: 17 setembre 2014].
  4. «ARM Cortex-A53 MPCore Processor Technical Reference Manual: Cryptography Extension» (en anglès). ARM. [Consulta: 11 setembre 2016].
  5. Brash, David. «The ARMv8-A architecture and its ongoing development» (en anglès), 2 December 2014. [Consulta: 23 gener 2015].
  6. Brash, David. «ARMv8-A architecture evolution» (en anglès), 05-01-2016. [Consulta: 7 juny 2016].
  7. David Brash. «ARMv8-A architecture – 2016 additions» (en anglès), 26-10-2016.
  8. «Introducing 2017's extensions to the Arm Architecture» (en anglès). community.arm.com. [Consulta: 15 juny 2019].
  9. «Exploring dot product machine learning» (en anglès). community.arm.com. [Consulta: 15 juny 2019].
  10. «ARM Preps ARMv8.4-A Support For GCC Compiler – Phoronix» (en anglès). www.phoronix.com. [Consulta: 14 gener 2018].
  11. «ARMv8.x and ARMv9.x extensions and features» (en anglès). Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions.
  12. «Arm Architecture ARMv8.5-A Announcement – Processors blog – Processors – Arm Community» (en anglès). community.arm.com. [Consulta: 26 abril 2019].
  13. «Arm Architecture Reference Manual ARMv8, for ARMv8-A architecture profile» (en anglès). ARM Developer. [Consulta: 6 agost 2019].
  14. «ARMv8.x and ARMv9.x extensions and features» (en anglès). Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions.
  15. «Arm A profile architecture update 2019» (en anglès). community.arm.com. [Consulta: 26 setembre 2019].
  16. «LLVM 11.0.0 Release Notes» (en anglès). releases.llvm.org. [Consulta: 11 març 2021].
  17. «ARMv8.x and ARMv9.x extensions and features» (en anglès). Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions.
  18. Weidmann, Martin. «Arm A-Profile Architecture Developments 2020» (en anglès). community.arm.com. ARM, 21-09-2020. [Consulta: 28 setembre 2022].
  19. «ARMv8.x and ARMv9.x extensions and features» (en anglès). Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions.
  20. Weidmann, Martin. «Arm A-Profile Architecture Developments 2021» (en anglès). community.arm.com. ARM, 08-09-2021. [Consulta: 28 setembre 2022].
  21. «Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community» (en anglès). community.arm.com. [Consulta: 9 desembre 2022].
{{bottomLinkPreText}} {{bottomLinkText}}
AArch64
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?