ARM annonce sa nouvelle génération de processeurs : les Cortex A75 et A55,
spécifiquement prévus pour sa technologie DynamIQ
ARM est à la fois une société qui conçoit (mais ne fabrique pas) des processeurs et le nom de l’architecture de ces processeurs. Elle vend donc des blocs que d’autres sociétés peuvent intégrer aux processeurs qu’elles fabriquent (comme Samsung pour ses Exynos et certains processeurs de Qualcomm), de telle sorte qu’elles peuvent développer des processeurs complets très rapidement, le travail ayant été prémâché par ARM. (D’autres sociétés, comme Apple ou Qualcomm, préfèrent n’utiliser que les instructions ARM et concevoir complètement leurs processeurs de zéro.)
Fin mai, la société a annoncé deux nouveaux blocs de processeur : les Cortex A75 (optimisé pour la performance ; qui succède au A73) et A55 (optimisé pour la consommation énergétique, qui succède au A53 de 2012). La société est organisée pour produire de nouveaux cœurs variés quant à leurs utilisations possibles avec une cadence élevée (de nouvelles conceptions chaque année dans chaque segment), les deux processeurs n’ont pas grand-chose en commun dans leurs détails — ce qui n’empêche de combiner plusieurs cœurs de chaque type dans un processeur haut de gamme, pour bénéficier d’une faible consommation quand les besoins en puissance ne sont pas énormes, mais avec toujours plus de puissance de calcul sous le capot.
Cortex A55 : une augmentation de performance et de l’efficacité énergétique
L’A55 est un cœur de calcul assez petit, incapable de réordonner les instructions qu’il effectue (contrairement aux cœurs plus gros, qui changent l’ordre des instructions pour utiliser au mieux leur architecture). Le point noir de l’architecture précédente était le système mémoire, qui limitait la partie de calcul pur. Ainsi, ARM a repensé le module de préchargement depuis la mémoire (la lecture est complètement séparée de l’écriture), mais a aussi intégré un cache L2 plus près de la partie calcul, l’objectif étant de réduire la latence de 50 % lors d’un accès direct en mémoire (un changement lié à DynamIQ, voir plus loin). Un cache L3 a aussi été ajouté. L’effet est immédiat : sur un test de copie de mémoire (LMBench), le temps d’exécution est presque divisé par deux. Les autres améliorations concernent principalement le prédicteur de branchement.
Globalement, d’après les chiffres d’ARM, à fréquence égale, un cœur A55 gagne 18 % en performance par rapport à son prédécesseur pour des opérations sur des nombres entiers (SPECint) et même 38 % avec des nombres à virgule flottante (SPECfp). Lors de tests plus réalistes, ce cœur a un score 21 % plus élevé au test Geekbench v4, 14 % pour Octane v2. En pratique, l’augmentation de performance devrait être plus importante, vu que la comparaison se voulait aussi égale que possible (même taille des caches L1, L2, pas de cache L3, fréquence égale, même compilateur, etc.), ce qui a obligé à désactiver certaines fonctionnalités de l’A55.
La consommation d’énergie est presque constante, avec une augmentation de 3 % — mais, en pratique, elle sera plus faible à performance égale, grâce aux nombreuses améliorations apportées. Ainsi, l’efficacité énergétique augmente de 15 % pour SPECint.
Cortex A75 : une même consommation pour une meilleure performance
L’A75 est un cœur bien plus gros que l’A55, ce qui lui permet d’effectuer un prétraitement plus poussé avant l’exécution du code. Ainsi, par rapport au A73, il peut décoder trois instructions par cycle (au lieu de deux). Il n’y a pas plus d’unités de calcul, mais plus de files pour stocker les microopérations à effectuer : ainsi, on passe de six microopérations effectuées à huit par cycle. Côté NEON (pour des instructions effectuant la même opération sur une série de valeurs à la fois — c’est le principe du SIMD, implémenté côté x86 par les instructions SSE et AVX), les changements sont similaires, avec cependant une troisième unité de calcul, dédiée aux accès à la mémoire.
Globalement, l’augmentation de performance est perceptible, que ce soit sur des tests synthétiques (22 % d’augmentation pour SPECint, 33 % pour SPECfp, 16 % pour LMBench) ou réels (48 % sur Octane v2, 34 % sur Geekbench v4).
DynamIQ, le nouveau nom de big.LITTLE
Pour améliorer la consommation énergétique des processeurs de ses clients tout en proposant un haut niveau de performance, ARM a développé ces dernières années big.LITTLE. Cette technologie permet de rassembler plusieurs cœurs différents (A53 et A73, par exemple) et de les activer et désactiver selon la charge de calcul : les cœurs sont rassemblés dans deux grappes (de maximum quatre cœurs), l’une ou l’autre étant choisie selon les calculs à effectuer. En d’autres termes, l’hétérogénéité était assez limitée, puisqu’on avait une grappe de cœurs peu puissants (LITTLE) et l’autre de cœurs plus puissants (big), sans solution intermédiaire. Des implémentations plus complexes n’avaient pas cette limitation et pouvaient exploiter tous les cœurs des deux grappes simultanément — mais les grappes doivent rester homogènes.
Les besoins ont continué d’évoluer, ce qui a rendu big.LITTLE problématique pour l’évolution future, d’où DynamIQ : l’objectif est d’avoir une technologie plus flexible, qui permet d’utiliser plus de cœurs (potentiellement plus spécialisés), tout en augmentant la performance.
Les Cortex A55 et A75 sont spécifiquement prévus pour exploiter au mieux DynamIQ. Ainsi, chaque cœur possède ses caches L2 privés, très près des parties effectuant les calculs, pour une performance optimale. Les caches L3, au contraire, sont partagés au niveau d’une grappe, de telle sorte qu’une tâche peut passer d’un cœur à l’autre d’une même grappe sans devoir trop accéder à la mémoire externe à la grappe (forcément lente).
Ces grappes peuvent alors être interconnectées : avec huit cœurs par grappe, trente-deux grappes par puce, on peut encore monter avec une interconnexion CCIX entre puces. Chaque cœur de chaque grappe peut être désactivé individuellement — même si la fréquence doit être identique pour tous les cœurs activés d’un même “domaine”, prédéfini à l’avance par le constructeur (les huit cœurs d’une grappe peuvent cependant avoir chacun leur domaine, dans une implémentation plus complexe : chaque domaine doit avoir son propre régulateur de tension pour gérer la fréquence).
Mali G72: des améliorations itératives
Finalement, ARM a aussi annoncé un nouveau processeur graphique, le G72. L’objectif est multiple : s’adapter aux nouveaux besoins en puissance (des jeux mobiles avec une haute fidélité de rendu) et aux nouvelles applications (apprentissage automatique et réalité virtuelle). Le G72 n’apporte pas une architecture complètement renouvelée (c’était le cas du G71, avec l’architecture Bifrost), mais bien améliorée sur certains points particuliers.
Les améliorations se concentrent sur des détails, qui ont toutefois leur importante : l’efficacité énergétique est ainsi améliorée de 25 %, la densité de performance de 20 % (c’est-à-dire une augmentation de performance de 40 % à surface et à consommation équivalente).
Ainsi, certaines instructions trop complexes et peu souvent utilisées ont été retirées et remplacées par plusieurs instructions, qui prennent donc plus de cycles — en diminuant la complexité du processeur. L’impact en performance est négligeable, puisque ces instructions sont peu utilisées. Au contraire, certaines instructions complexes ont été optimisées dans le cadre des opérations graphiques (ne respectant pas forcément la norme IEEE 754 : ces variations des instructions ne sont pas impactées).
Cependant, la plupart des gains en performance viennent plutôt des caches, tous quelque peu impactés : les caches L1, d’écritures et de temporisation des tuiles sont plus grands ; la logique des caches d’instruction a été améliorée pour limiter les défauts et donc les accès directs en mémoire. L’effet principal est donc de réduire les besoins en bande passante du GPU : cela tombe bien, les opérations en mémoire sont parmi les plus énergivores.
Grâce à ces gains, pour une performance équivalente, on pourra utiliser moins de cœurs G72 et donc gagner en place sur le processeur (ce qui en diminue le coût) ; ceux qui ont besoin de meilleures performances pourront mettre plus d’unités de calcul sur une même surface, ce qui est aussi avantageux.
Sources et images : Exploring DynamIQ and ARM’s New CPUs: Cortex-A75, Cortex-A55, ARM Announces Mali-G72: Bifrost Refined for the High-End SoC.
Et vous ?
Qu'en pensez-vous ?
Partager