ARM Cortex-A50
# ARM Cortex-A50

ARM Cortex-A50 est une famille de processeur RISC 64 bits développée par ARM Ltd qui implémente le jeu d'instructions de l'architecture ARMv8 (également appelé AArch64). Elle prend la suite de la famille ARM Cortex-A. Annoncée le 30 octobre 2012, elle est composée de deux versions : Cortex-A53 (LITTLE) destiné aux applications très basse consommation qui reprend les principes du Cortex-A7, et le Cortex-A57 (big), successeur du Cortex-A15 pour des applications nécessitant plus de puissance (smartphones, tablettes, serveurs et laptops). Cette génération garde la compatibilité avec le jeu d'instruction ARMv7-A pour faciliter la transition.

## Historique

### Premières implémentations

Le support de ce processeur a été ajouté par ARM au compilateur GCC en octobre 2012, la version stable 4.8.0, sortie le 22 mars 2013 est la première à supporter cette architecture, que GCC appelle AArch64. La version 4.9.0, sortie le 22 avril 2014, apporte des optimisations de compilation pour les architectures de type Big.LITTLE utilisant le jeu d'instructions ARMv8, ainsi que l'utilisation de cryptographie et de contrôle de redondance cyclique (CRC).

Les sociétés AMD, Broadcom, Calxeda, HiSilicon, MediaTek, Samsung et ST Microelectronics ont déjà signé des accords de propriété intellectuelle.

La société Applied Micro Circuits Corporation est la première à présenter des FPGA fonctionnels de ces processeurs en avril 2012 avec les processeurs X-Gene, capable de faire fonctionner une distribution Linux adaptée par Redhat avec Apache et php. MITAC annonce en juin 2013, au salon Computex 2013, des serveurs basés sur ce processeur. Ils devraient être disponibles dans le courant de l'année.

En juillet 2014, ARM présente la plate-forme de développement autour du SoC Juno développé par ARM, composé d'un système d'exploitation livré par Linaro et d'une carte mère nommée Juno Versatile Express board, reprenant les principes de la Versatile Express board en les remettant au goût du jour. Le SoC JUNO présent sur cette carte, contient entre autres deux cœurs Cortex-A57 et quatre cœurs Cortex-A53 en architecture big.LITTLE, ainsi qu'un processeur graphique Mali TM-T624, possédant quatre cœurs de shaders. Le but de cette plate-forme n'est pas l'utilisation finale, mais les tests pratiques du développement sur du matériel, en attendant les implémentations finales de différents constructeurs

## Nouveautés de l'architecture

L'ARM Cortex-A53 devrait avoir des performances similaires aux Cortex-A9 tout en utilisant au maximum un quart de la consommation électrique de ceux-ci.

Cette technologie permettra de placer jusqu’à 16 Cortex-A57 sur la même puce.

La technologie big.LITTLE déjà utilisée sur la 3e génération des Cortex-A, pour coupler un ou plusieurs processeurs Cortex-A7 (LITTLE) très basse consommation avec un ou plusieurs Cortex-A15 plus puissants (big) ou bien des Cortex-A12 et Cortex-A17, de puissance intermédiaire (big également) lors de besoin ponctuel de puissance, sera aussi accessible sur cette nouvelle génération.

Cette nouvelle génération pourra être couplée avec une nouvelle génération de processeurs graphiques ARM Mali que sont les familles Mali-T67X et Mali-T62X. Un des premiers ARMv8 en ASIC, le MediaTek MT6732, est quant à lui annoncé avec un Mali-T760

Une accélération de chiffrage intégrée devrait, d'après ARM, diviser également par 10 le temps de calcul par rapport à un calcul conventionnel sur CPU uniquement.

En février 2014, ARM annonce le Cortex-A72, 3,5 fois plus puissant que le Cortex-A15 qui devrait continuer à utiliser le bus CCI-500 et pourrait être couplé au GPU Mali-T880.

## Améliorations des jeux d'instructions, registres et adressage mémoire

* Nouveau jeu d'instructions A64
   * 31 registres 64 bits généraux
   * Les instructions gardent une longueur de 32 bits et sont majoritairement identiques à ceux d'AArch32
   * La majorité des instructions acceptent des arguments 32 ou 64 bits.
   * L'adressage est en 64 bits
* SIMD avancé (NEON) amélioré
   * Passage de 16 à 32 registres 128 bits, également accessibles par VFPv4
   * Support des virgules flottantes double-précision
   * Totalement compatible avec la norme IEEE 754
   * Les instructions de chiffrement/déchiffrement AES et hashage SHA-1/SHA-2 utilisent également ces registres
* Nouveau système d'exceptions
   * Moins d'accumulation de registres et de modes
   * Conversion de la gestion de la mémoire de l'espace d'adressage virtuel 48 bit existant, basé sur le LPAE (Large Physical Address Extensions), qui a été conçu pour être facilement étendu à 64 bits.

## Système d'exploitation

Le noyau Linux était porté dès le mois d'août 2012 sur ce jeu d'instructions. Cette architecture ARM est la première à gérer le 64 bits (instructions et données). La mémoire est quant à elle adressée sur 48 $bits^,.$

## Implémentations

| Marque | Modèle | CPU | GPU | Année |
| - | - | - | - | - |
| Altera | (SoC) Stratix 10 | 4 Cortex-A53 | n.d. | 2015 |
| Apple | A7 | 2 cœurs ARMv8 « Cyclone » à 1,7 GHz | n.d. | 20 septembre 2013 |
| ARM | Juno | 4 Cortex-A53 2 Cortex-A57 | Mali-T624 | juillet 2014 (SoC peu performant dédié au développement) |
| Applied Micro Circuits Corporation (en) | X-Gene | (FPGA Xilinx Virtex-6) | | 2012 |
| Applied Micro Circuits Corporation (en) | APM883204-X1 X-Gene APM883208-X1 X-Gene | 4 * Cortex-A50 à 2,4 GHz(ASIC, 40 nm) + 4 ARM Cortex-A5 + ARM Cortex-M3 8 * Cortex-A50 à 2,4 GHz(ASIC, 40 nm) + 4 ARM Cortex-A5 + ARM Cortex-M3 | n.d. | été 2014 |
| Broadcom | BCM2837 | 4 Cortex-A53 à 1,2 GHz | VideoCore IV à 400MHz | 2016 pour le Raspberry Pi 3B |
| Broadcom | BCM2837B0 | 4 Cortex-A53 à 1,4 GHz | VideoCore IV à 400MHz | 2018 pour le Raspberry Pi 3B+ |
| Cavium | ThunderX | 48 Cortex-A50 à 2,4 GHz | orienté serveur | ?, annoncé en juin 2014 |
| Marvell | PXA1928 | 4 Cortex-A53 | n.d. | 2014 |
| MediaTek | MT6732 | 4 Cortex-A53 à 1,5 GHz | Mali-T760 | septembre $2014^,$ |
| MediaTek | MT6735 | 4 Cortex-A53 à 1.3 GHz | Mali-T720 | avril 2015 |
| MediaTek | MT6752 | 8 Cortex-A53 à 1,7 GHz | Mali-T760 | septembre 2014 |
| MediaTek | MT6795 | 8 Cortex-A53 jusqu'à 2,2 GHz | PowerVR G6 | décembre 2014 |
| MediaTek | MT8173 | 2 Cortex-A53 et 2 Cortex-A57 jusqu'à ? GHz | PowerVR G6 | sources disponibles pour Linux depuis décembre 2014 |
| Rockchip | RK3368 (MayBach) | 8 Cortex-A53 28 nm | PowerVR G6110 GL ES 3.0 GPU | décembre 2014 |
| Samsung | Exynos GH7 | n.d. | n.d. | 2014 |
| AllWinner | H64 | 4 Cortex-A53 | n.d. | hiver 2014 |
| AllWinner | 9X | big.LITTLE Cortex-A53 + Cortex-A57 | n.d. | Q4 2015 |
| Nvidia | Tegra K1 2e génération | n.d. | « Maxwell » | 2015 |
| Samsung | S5P6818 | 8 Cortex-A53 de 1,4 à 1,6 GHz en 28 nm | Mali-400MP | $n.d.^,$ |
| HiSilicon | Kirin 950 | big.LITTLE 4 Cortex-A72 à 2,3 GHz 4 Cortex-A53 à 1,8 GHz | Mali-T880 MP4 à 900 MHz | |

## Lien externe

* (en) Cortex-A50 Series sur le site d'ARM.
