ARM Cortex-A50 est une famille de processeur RISC64 bits développée par ARM Ltd qui implémente le jeu d'instructions de l'architectureARMv8 (également appelé AArch64). Elle prend la suite de la famille ARM Cortex-A. Annoncée le [1], 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)[2]. Cette génération garde la compatibilité avec le jeu d'instruction ARMv7-A pour faciliter la transition[3].
Historique
Premières implémentations
Le support de ce processeur a été ajouté par ARM au compilateur GCC en , la version stable 4.8.0, sortie le [4] est la première à supporter cette architecture, que GCC appelle AArch64[5]. La version 4.9.0, sortie le , 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)[6].
La société Applied Micro Circuits Corporation est la première à présenter des FPGA fonctionnels de ces processeurs en avec les processeurs X-Gene, capable de faire fonctionner une distribution Linux adaptée par Redhat avec Apache et php[8]. MITAC annonce en , au salon Computex 2013, des serveurs basés sur ce processeur. Ils devraient être disponibles dans le courant de l'année[9].
En , 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[10]. 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[11]
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[1].
Cette technologie permettra de placer jusqu’à 16 Cortex-A57 sur la même puce[3].
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[1].
Cette nouvelle génération pourra être couplée avec une nouvelle génération de processeurs graphiquesARM Mali que sont les familles Mali-T67X et Mali-T62X[3]. Un des premiers ARMv8 en ASIC, le MediaTek MT6732, est quant à lui annoncé avec un Mali-T760[12]
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.
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 bits 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' sur ce jeu d'instructions[13]. 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 [14],[15].