Présentation
Mike Clark, architecte principal de la famille Zen depuis plus de trois décennies, a détaillé les différences majeures entre Zen 6 et Zen 6c lors d’une interview exclusive. La génération succède à Zen 5 en conservant deux familles de cœurs distinctes : un cœur haute fréquence (HF) et un cœur dense (c‑core) destiné aux charges de travail à fréquence réduite mais à plus grande capacité de file d’attente.
Architecture des cœurs
Le cœur dense de Zen 6c intègre un cache L3 complet de 4 MiB par cœur, soit 32 cœurs pour un total de 128 MiB de L3, ce qui représente le plus grand cache partagé jamais vu dans la lignée Zen. Cette configuration maximise l’IPC (instructions par cycle) du cœur dense, tandis que le cœur HF conserve une fréquence plus élevée mais un cache L3 plus restreint. La coexistence de ces deux variantes permet à AMD de proposer des produits ciblant à la fois la performance brute et l’efficacité énergétique.
Optimisations du pipeline et des unités
Le front‑end conserve le double décodage introduit avec Zen 5, capable de récupérer deux blocs de base simultanément. Des améliorations ont été apportées pour synchroniser plus efficacement les accès I‑cache et Op‑cache, réduisant la consommation d’énergie du décodage. Au niveau de l’exécution, le nombre d’unités de multiplication entière a été ramené de trois à deux, un choix justifié par l’observation d’un faible gain de performance sur Zen 5 et par la volonté de simplifier le planificateur distribué. En revanche, le vecteur a vu l’ajout de deux unités VNNI supplémentaires, renforçant les capacités d’inférence IA directement dans le cœur. Le chargeur vectoriel a doublé sa capacité, passant de deux à quatre charges simultanées (128 bits ou 256 bits), grâce à la disponibilité de 1 024 fils de données déjà présents pour les charges 512 bits.
Le scheduler flottant et d’autres files d’attente ont été agrandis dans Zen 6c, profitant de la cible de fréquence plus basse pour absorber davantage d’instructions sans pénaliser le débit. Cette stratégie évite la création d’un écart de programmation entre les deux cœurs, garantissant que les optimisations logicielles restent valables pour les deux variantes.
Impacts sur les performances et limites
Le L2 a été ré‑architecturé pour garantir un débit de 64 octets par cycle, même en présence de pré‑fetches agressifs. La gestion des conflits entre pré‑fetches et requêtes de demande a été optimisée, éliminant les goulets d’étranglement observés sur Zen 5. Le prédicteur de branche a vu sa latence de récupération réduite de plusieurs cycles tout en maintenant, voire en améliorant légèrement, son taux de précision, grâce à un affinement du mécanisme de mise à jour des tables de branche.
Ces améliorations se traduisent par un gain d’IPC notable sur les charges à forte intensité de calcul vectoriel et sur les workloads IA légers, tout en conservant une efficacité énergétique compétitive. Cependant, le nombre réduit d’unités de multiplication entière peut limiter les performances sur les charges fortement dépendantes des opérations entières, et la complexité accrue du scheduler vectoriel impose des exigences de conception plus strictes pour les futures générations.