AArch64

AArch64 o ARM64 è l'estensione a 64 bit della famiglia di architetture ARM.

Piattaforma Armv8-A con CPU Cortex-A57/A53 MPCore big.little

È stata introdotta per la prima volta con l'architettura Armv8-A. Arm pubblica una nuova estensione ogni anno.

Estensioni e funzionalità ARMv8.x e ARMv9.x

Annunciata nell'ottobre 2011, ARMv8-A rappresenta un cambiamento fondamentale nell'architettura ARM. Aggiunge un'architettura a 64 bit opzionale, denominata "AArch64", e l'associato nuovo set di istruzioni "A64". AArch64 fornisce la compatibilità nello spazio utente con l'esistente architettura a 32 bit ("AArch32"/ARMv7-A) e il set di istruzioni ("A32"). Il set di istruzioni Thumb a 16-32 bit, indicato come "T32", non ha una controparte a 64 bit. ARMv8-A consente l'esecuzione di applicazioni a 32 bit in un sistema operativo a 64 bit e il controllo di un sistema operativo a 32 bit da parte di un hypervisor a 64 bit. ARM ha annunciato i propri core Cortex-A53 e Cortex-A57 il 30 ottobre 2012. Apple è stata la prima a usare un core compatibile con ARMv8-A (Cyclone) in un prodotto destinato ai consumatori (iPhone 5S). AppliedMicro, tramite l'utilizzo di un FPGA, è stata la prima dimostrazione di ARMv8-A. Il primo SoC ARMv8-A di Samsung è stato l'Exynos 5433 utilizzato nel Galaxy Note 4, che presenta due cluster di quattro core Cortex-A57 e Cortex-A53 in configurazione big.little, ma può funzionare solo in modalità AArch32.

Sia in AArch32 che in AArch64, ARMv8-A rende obbligatorio l'utilizzo delle unità VFPv3/v4 e SIMD avanzato (NEON). Aggiunge inoltre istruzioni di crittografia che supportano AES, SHA-1/SHA-256 e aritmetica a campi finiti.

Convenzioni di denominazione

Caratteristiche di AArch64

Estensione: suggerimento per la raccolta dei dati (ARMv8.0-DGH)

AArch64 è stato introdotta in ARMv8-A ed è inclusa nelle versioni successive di ARMv8-A. È stato introdotta anche in ARMv8-R come opzione, dopo la sua introduzione in ARMv8-A; è esclusa da ARMv8-M.

ARMv8.1-A

Nel dicembre 2014 è stata annunciata ARMv8.1-A, un aggiornamento con "vantaggi incrementali rispetto alla v8.0". I miglioramenti rientravano in due categorie: modifiche al set di istruzioni e modifiche al modello di eccezione e alla conversione degli indirizzi di memoria.

ARMv8.2-A

Nel gennaio 2016 è stata annunciata ARMv8.2-A. I suoi miglioramenti rientravano in quattro categorie:

ARMv8.3-A

Nell'ottobre 2016 è stata annunciata ARMv8.3-A. I suoi miglioramenti rientravano in sei categorie:

L'architettura ARMv8.3-A è ora supportata a partire dal compilatore GCC 7.

ARMv8.4-A

Nel novembre 2017 è stata annunciata ARMv8.4-A. I suoi miglioramenti rientravano in queste categorie:

ARMv8.5-A e ARMv9.0-A

A settembre 2018 è stata annunciata ARMv8.5-A. I suoi miglioramenti rientravano in queste categorie:

Il 2 agosto 2019, Google ha annunciato che Android avrebbe adottato l'estensione MTE.

Nel marzo 2021 è stata annunciata ARMv9-A. La linea di base di ARMv9-A è costituita da tutte le funzionalità di ARMv8.5. ARMv9-A aggiunge anche SVE2 (Scalable Vector Extension 2), TME (Transactional Memory Extension) e CCA (Confidential Compute Architecture).

ARMv8.6-A e ARMv9.1-A

A settembre 2019 è stata annunciata ARMv8.6-A. I suoi miglioramenti rientravano in queste categorie:

ARMv8.7-A e ARMv9.2-A

A settembre 2020 è stata annunciata ARMv8.7-A. I suoi miglioramenti rientravano in queste categorie:

ARMv8.8-A e ARMv9.3-A

Nel settembre 2021 sono stati annunciati ARMv8.8-A e ARMv9.3-A. I loro miglioramenti rientravano in queste categorie:

LLVM 15 supporta ARMv8.8-A e ARMv9.3-A.

ARMv8.9-A e ARMv9.4-A

Nel settembre 2022 sono stati annunciati ARMv8.9-A e ARMv9.4-A, che includono:

Armv8-R (architettura in tempo reale)

Il supporto AArch64 opzionale è stato aggiunto al profilo Armv8-R, con Cortex-R82 come primo core Arm che lo implementa. Aggiunto il set di istruzioni A64, con alcune modifiche alle istruzioni della barriera di memoria.

Note

  1. ↑ developer.arm.com, https://developer.arm.com/documentation/102378/0201.
  2. ↑ Copia archiviata (PDF), su arm.com, 2011. URL consultato il 31 October 2011 (archiviato dall'url originale l'11 novembre 2011).
  3. ↑ Copia archiviata, su anandtech.com. URL consultato il 17 September 2014 (archiviato dall'url originale l'11 maggio 2019).
  4. ↑ infocenter.arm.com, http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500e/CJHDEBAF.html. URL consultato l'11 September 2016.
  5. ↑ arm.com, https://www.arm.com/products/processors/cortex-a/cortex-a32-processor.php. URL consultato il 18 December 2016.
  6. ↑ community.arm.com, https://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development. URL consultato il 23 January 2015.
  7. ↑ community.arm.com, https://community.arm.com/groups/processors/blog/2016/01/05/armv8-a-architecture-evolution. URL consultato il 7 June 2016.
  8. ↑ David Brash, community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/armv8-a-architecture-2016-additions.
  9. ↑ Copia archiviata, su patches.linaro.org. URL consultato il 18 maggio 2023 (archiviato dall'url originale il 26 febbraio 2021).
    «pointer authentication extension is defined to be mandatory extension on ARMv8.3-A and is not optional»
  10. ↑ qualcomm.com, https://www.qualcomm.com/news/onq/2017/01/10/qualcomm-releases-whitepaper-detailing-pointer-authentication-armv83.
  11. ↑ arm.com, http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100069_0610_00_en/hko1477562192868.html. URL consultato l'11 July 2019.
  12. ↑ gcc.gnu.org, https://gcc.gnu.org/gcc-7/changes.html.
    «The ARMv8.3-A architecture is now supported. It can be used by specifying the -march=armv8.3-a option. [..] The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions.»
  13. ↑ (EN) community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/introducing-2017s-extensions-to-the-arm-architecture. URL consultato il 15 June 2019.
  14. ↑ (EN) community.arm.com, https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/exploring-the-arm-dot-product-instructions. URL consultato il 15 June 2019.
  15. ↑ (EN) www.phoronix.com, https://www.phoronix.com/scan.php?page=news_item&px=GCC-ARMv8.4-A-Patches. URL consultato il 14 January 2018.
  16. ↑ (EN) community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-a-profile-architecture-2018-developments-armv85a. URL consultato il 26 April 2019.
  17. ↑ (EN) ARM Developer, https://developer.arm.com/docs/ddi0487/ea. URL consultato il 6 August 2019.
  18. ↑ (EN) community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/enhancing-memory-safety. URL consultato il 27 July 2021.
  19. ↑ (EN) Google Online Security Blog, https://security.googleblog.com/2019/08/adopting-arm-memory-tagging-extension.html. URL consultato il 6 August 2019.
  20. ↑ (EN) Arm | The Architecture for the Digital World, https://www.arm.com/company/news/2021/03/arms-answer-to-the-future-of-ai-armv9-architecture. URL consultato il 27 July 2021.
  21. ↑ (EN) Copia archiviata, su WikiChip Fuse. URL consultato il 27 July 2021 (archiviato dall'url originale il 27 luglio 2021).
  22. ↑ Copia archiviata, su www.anandtech.com. URL consultato il 27 July 2021 (archiviato dall'url originale il 30 marzo 2021).
  23. ↑ (EN) community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a. URL consultato il 26 September 2019.
  24. ↑ releases.llvm.org, https://releases.llvm.org/11.0.1/docs/ReleaseNotes.html. URL consultato l'11 March 2021.
  25. ↑ community.arm.com, https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2020. URL consultato il 28 September 2022.
  26. ↑ (EN) community.arm.com, https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/scalable-matrix-extension-armv9-a-architecture. URL consultato il 27 July 2021.
  27. ↑ community.arm.com, https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021. URL consultato il 28 September 2022.
  28. ↑ community.arm.com, https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/llvm-15. URL consultato il 15 aprile 2023.
  29. ↑ (EN) community.arm.com, https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-2022. URL consultato il 9 dicembre 2022.
  30. ↑ Copia archiviata, su AnandTech. URL consultato il 18 maggio 2023 (archiviato dall'url originale il 3 settembre 2020).
  31. ↑ developer.arm.com, https://developer.arm.com/documentation/ddi0600/ac.

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica