ISCA, le Symposium international d’architecture informatique est une conférence de l’IEEE que nous n’avons généralement pas tendance à entendre souvent de la part du public. La raison principale en est que la plupart des sessions et des articles ont tendance à être plus académiques, et donc généralement un peu plus éloignés de la pratique de ce que nous voyons dans les produits réels. Cette année, la conférence a changé de format en ajoutant une série de sessions de l’industrie, avec des présentations et des articles de diverses entreprises de l’industrie, couvrant des produits commerciaux réels dans la nature.

Parmi les sessions, l’équipe de développement du processeur SARC (Samsung Austin R&D Center) de Samsung a présenté un document intitulé «Evolution de l’architecture du processeur Samsung Exynos», détaillant les efforts de l’équipe au cours de ses 8 ans d’existence, et a présenté quelques caractéristiques clés de son bras personnalisé Cœurs de processeur allant de l’Exynos M1 au processeur Exynos M5 le plus récent ainsi qu’à la conception M6 inédite.

Pour rappel, l’équipe SARC de Samsung a été créée en 2011 pour développer des cœurs de processeur personnalisés que Samsung LSI déploierait ensuite dans ses SoC Exynos, allant de l’Exynos 8890 de première génération sorti en 2015 dans le Galaxy S7, jusqu’au plus Exynos 990 récent avec ses noyaux M5 dans le Galaxy S20. SARC avait achevé la microarchitecture M6 avant que l’équipe CPU n’ait appris qu’elle avait été dissoute en octobre 2019, à compter de décembre dernier.

Le document ISCA est le résultat de la volonté de Samsung de publier certaines des idées de l’équipe de développement qui étaient considérées comme dignes d’être préservées auprès du public, représentant essentiellement un burn-through de haut niveau de 8 ans de développement.

De M1 à M6: un µarch CPU à morphing continu

Le document présente un tableau général des différences microarchitecturales entre les cœurs de processeur personnalisés de Samsung:

La divulgation couvre certaines des caractéristiques bien connues de la conception, comme l’avait révélé Samsung lors de sa plongée en microarchitecture initiale sur CPU M1 lors de HotChips 2016, jusqu’à la plongée en profondeur M3 plus récente lors de HotChips 2018. Elle nous donne un aperçu de la nouvelle Microarchitectures M4 et M5 que nous avions mesurées dans nos revues S10 et S20, ainsi qu’un aperçu de ce qu’aurait été le M6.

La seule caractéristique clé de la conception de Samsung a été au fil des ans, elle était basée sur le même schéma RTL qui avait été lancé avec le cœur M1 en 2011, avec des améliorations continues des blocs fonctionnels des cœurs au fil des ans. Le M3 avait été un grand changement dans la conception, élargissant considérablement le noyau à plusieurs égards, comme passer d’une conception à 4 larges à un milieu à 6 larges.

Les nouvelles divulgations qui n’étaient pas publiques avant les nouveaux cœurs M5 et M6. Pour le M5, Samsung avait apporté des modifications plus importantes à la hiérarchie de cache des cœurs, comme le remplacement des caches L2 privés par un nouveau cache partagé plus grand, ainsi que la divulgation d’un changement dans la structure L3 d’une conception à 3 banques à une conception à 2 banques. conception de banque avec moins de latence.

Le noyau M6 inédit qui était en développement était apparemment un saut plus important en termes de microarchitecture. L’équipe SARC ici avait préparé de grandes améliorations, telles que le doublement des instructions L1 et des caches de données de 64 Ko à 128 Ko – un choix de conception qui n’est actuellement implémenté que par les cœurs CPU d’Apple à partir de l’A12.

Le L2 aurait doublé dans ses capacités de bande passante jusqu’à 64B / cycle, et il y aurait également eu une augmentation du L3 de 3 à 4MB.

Le M6 aurait été un cœur de décodage à 8 larges, ce qui, à notre connaissance, aurait été la microarchitecture commerciale la plus large que nous connaissions – du moins du côté du décodage.

Fait intéressant, même si le cœur aurait été beaucoup plus large, les unités d’exécution entières n’auraient pas beaucoup changé, juste en voyant un pipeline complexe ajouter une deuxième capacité de division entière, tandis que les pipelines de chargement / stockage seraient restés les mêmes que sur le M5 avec 1 unité de charge, 1 unité de stockage et 1 unité de charge / stockage.

Sur les pipelines à virgule flottante / SIMD, nous aurions vu une quatrième unité supplémentaire dotée de capacités FMAC.

Les TLB auraient vu de grands changements, tels que le L1 DTLB passant de 48 pages à 128 pages, et le TLB principal doublé de 4K pages à 8K pages (couverture de 32 Mo).

Le M6 aurait également la première fois depuis le M3 que la fenêtre hors-ordre du noyau aurait été augmentée, avec des fichiers de registres physiques entiers et à virgule flottante plus grands, et une augmentation du ROB (tampon de réorganisation) à partir de 228 à 256.

Une faiblesse clé des cœurs SARC semble avoir toujours été présente dans le noyau M5 et M6 à venir, et ce sont ses étapes de pipelines plus profondes, ce qui entraîne une pénalité d’erreur de prévision de 16 cycles relativement coûteuse, bien plus élevée que les conceptions plus récentes d’Arm qui tombent à 11. cycles.

Le document aborde plus en détail la conception des prédicteurs de branche, présentant la conception basée sur le Perceptron haché à l’échelle. La conception a été améliorée en permanence au fil des ans et des implémentations, améliorant la précision de la branche et réduisant ainsi le MPKI (erreurs de prédiction par kilo-instructions) en continu.

Un tableau intéressant qui est présenté est la quantité de structures de stockage que le prédicteur de branche prend dans le front-end, en Ko:

Nous ne connaissons aucun autre fournisseur ayant jamais divulgué de tels chiffres, il est donc intéressant de mettre les choses en contexte de ce qu’un front-end moderne doit héberger en termes de stockage (et ce n’est * que * le prédicteur de branche).

Le document donne plus de détails sur les méthodologies de prélecture des cœurs, couvrant l’introduction d’un cache µOP dans la génération M5, ainsi que les efforts de l’équipe pour renforcer le cœur contre les failles de sécurité telles que Spectre.

Améliorations générationnelles de l’IPC – 20% par an – 2,71x en 6 ans

Le document décrit en outre les efforts déployés par l’équipe du SARC pour améliorer la latence de la mémoire au fil des générations. Dans le noyau M4, l’équipe avait inclus un mécanisme de cascade charge-charge qui a réduit la latence effective du cycle L1 de 4 cycles à 3 sur les charges suivantes. Le M4 avait également introduit un contournement de chemin avec une nouvelle interface des cœurs de processeur directement vers les contrôleurs de mémoire, évitant le trafic via l’interconnexion, ce qui explique certaines des améliorations de latence les plus importantes que nous avons vues dans l’Exynos 9820. Le M5 avait introduit la recherche spéculative de cache contourne, émettant une demande à la fois pour l’interconnexion et les balises de cache simultanément, ce qui permet éventuellement d’économiser sur la latence en cas de manque de cache car la demande de mémoire est déjà en cours. La latence de charge moyenne a été constamment améliorée au fil des générations, passant de 14,9 cycles sur le M1 à 8,3 cycles sur le M6.

En termes d’améliorations de l’IPC, l’équipe du SARC a réussi à atteindre en moyenne 20% d’améliorations annuelles au cours des 8 années de développement. Le M3 avait été en particulier un grand bond en IPC comme le montre le graphique. Le M5 est à peu près en corrélation avec ce que nous avons vu dans nos benchmarks, avec une amélioration d’environ 15 à 17%. L’IPC pour le M6 est révélé comme ayant atteint une moyenne de 2,71 contre 1,06 pour le M1, et le graphique ici semble généralement indiquer une amélioration de 20% par rapport au M5.

Au cours de la séance de questions-réponses de la session, le présentateur du journal, Brian Grayson, avait répondu aux questions sur l’annulation du programme. Il avait révélé que l’équipe avait toujours été dans les temps et dans les délais avec des améliorations de performance et d’efficacité à chaque génération. Il a été déclaré que la plus grande difficulté de l’équipe était de faire extrêmement attention aux changements de conception futurs, car l’équipe n’avait jamais les ressources pour recommencer à zéro ou réécrire complètement un bloc. Il a été dit qu’avec le recul, l’équipe aurait fait différents choix dans le passé avec certaines des orientations de conception. Cette méthodologie de conception en série est en contraste avec la position d’Arm, ayant plusieurs centres de conception et équipes CPU de pointe, leur permettant de faire des choses telles que des re-conceptions radicales, comme le Cortex-A76.

L’équipe avait beaucoup d’idées d’améliorations pour les prochains cœurs tels que le M7, mais la décision d’annuler le programme proviendrait très haut de Samsung. Les cœurs de processeur SARC n’ont jamais été vraiment aussi compétitifs, souffrant d’une efficacité énergétique, de performances et d’une utilisation de la zone réduites par rapport aux conceptions d’Arm. Alors que le dernier Cortex-X1 d’Arm a été divulgué la semaine dernière pour des performances absolues, il me semble que la conception du M6 du SARC aurait eu des problèmes en concurrence avec lui.

Les auteurs de l’article sont extrêmement reconnaissants à Samsung d’avoir bien voulu autoriser la publication de l’article, et remercient les dirigeants du SARC pour leur gestion au fil des ans de ce projet de processeur «moonshot». SARC conçoit actuellement encore des interconnexions personnalisées, des contrôleurs de mémoire, ainsi que des architectures GPU personnalisées.

Lecture connexe: