# Zen 4

Zen 4 est le nom de code d’une microarchitecture de CPU conçue par AMD, sortie le 27 septembre 2022$^,$$^,$. Il est le successeur de Zen 3 et utilise le procédé N6 de TSMC pour les puces d’E/S, le procédé N5 pour les CCD et le procédé N4 pour les APU. Zen 4 équipe les processeurs de PC de bureau Ryzen 7000 (nom de code « Raphael »), les APU de bureau grand public de la série Ryzen 8000G (nom de code « Phoenix ») et les processeurs HEDT et de stations de travail Ryzen Threadripper série 7000 (nom de code « Storm Peak »). Il est également utilisé dans les processeurs pour ultraportables (nom de code « Dragon Range »), les processeurs pour portables fins et légers (noms de code « Phoenix » et « Hawk Point »), ainsi que les processeurs de serveur Epyc 8004/9004 (noms de code « Siena », « Genoa » et « Bergamo »).

## Description

Comme son prédécesseur, Zen 4 dans ses variantes de bureau Ryzen est composé d’une ou deux puces "Core Complex" (CCD) fabriquées avec le procédé 5 nm de TSMC et d’une puce d’E/S fabriquée avec le procédé 6 nm$^,$. Auparavant, la puce d’E/S de Zen 3 était fabriquée avec le procédé 14 nm de GlobalFoundries pour Epyc et 12 nm pour Ryzen. La puce d’E/S de Zen 4 inclut pour la première fois un processeur graphique intégré RDNA 2 (en) sur une architecture Zen. Zen 4 marque la première utilisation du procédé 5 nm pour les processeurs de bureau x86.
Sur toutes les plates-formes, Zen 4 ne prend en charge que la mémoire DDR5 et LPDDR5X sur PC portables, la prise en charge de la DDR4 et de la LPDDR4X ayant été abandonnée. De plus, Zen 4 prend en charge les nouveaux profils SPD (en) AMD EXPO pour un réglage plus complet de la mémoire et un overclocking par les fabricants de RAM. Contrairement au XMP d’Intel, EXPO est commercialisé comme une norme ouverte, sans licence et libre de droits pour décrire les paramètres du kit de mémoire, tels que la fréquence de fonctionnement, les timings et les tensions. Il permet d’encoder un ensemble plus large de timings pour obtenir de meilleures performances et une meilleure compatibilité. Cependant, les profils de mémoire XMP sont toujours pris en charge. EXPO peut également prendre en charge les processeurs Intel.
Tous les processeurs de bureau Ryzen disposent de 28 lignes PCI Express 5.0 (24 utilisables + 4 réservées). Cela signifie qu’un GPU discret peut être connecté par 16 lignes PCIe ou deux GPU par 8 lignes PCIe chacun. De plus, il existe désormais des interfaces PCIe 2 x 4 lignes, le plus souvent utilisées pour les périphériques de stockage M.2. Les fabricants de cartes mères peuvent configurer si les lignes reliant les GPU dans les emplacements physiques x16 sont configurées en PCIe 4.0 ou en PCIe 5.0. Enfin, 4 lignes PCIe 5.0 sont réservées à la connexion de la puce ou du chipset du pont sud.
Zen 4 est la première microarchitecture AMD à prendre en charge l’extension de jeu d’instructions AVX-512. La plupart des instructions vectorielles de 512 bits sont divisées en deux et exécutées en interne par les unités d’exécution SIMD de 256 bits. Les deux moitiés s’exécutent en parallèle sur une paire d’unités d’exécution et sont toujours suivies en tant que micro-OP unique (à l’exception des stockages), ce qui signifie que la latence d’exécution n’est pas doublée par rapport aux instructions vectorielles 256 bits. Il y a quatre unités d’exécution de 256 bits, ce qui donne un débit maximal de deux instructions vectorielles de 512 bits par cycle d’horloge, par exemple une multiplication et une addition. Le nombre maximal d’instructions par cycle d’horloge est doublé pour les vecteurs de 256 bits ou moins. Les unités de chargement et de stockage sont également de 256 bits chacune, ce qui permet de conserver le débit d’un maximum de deux chargements de 256 bits ou d’un stockage par cycle pris en charge par Zen 3. Cela se traduit par un maximum d’un chargement de 512 bits par cycle ou d’un stockage de 512 bits en deux cycles$^,$$^,$.
Autres fonctionnalités et améliorations par rapport à Zen 3$^,$ :
* La taille de la mémoire tampon de cible de branchement L1 (Branch Target Buffer ou BTB) a été augmentée de 50 %, pour atteindre 1500 entrées. Chaque entrée est désormais capable de stocker jusqu’à deux cibles de branchement, à condition que le premier branchement soit une branchement conditionnel et que le deuxième branchement se trouve dans la même ligne de cache alignée de 64 octets que le premier.
* Le BTB L2 est augmenté à 7000 entrées.
* Amélioration des prédicteurs de branchement directs et indirects.
* IBRS (Indirect Branch Restricted Speculation) automatique, où le mode spéculatif restreint au branchement indirect est automatiquement activé et désactivé lorsque le contrôle entre et sort de l’anneau 0 (mode "noyau"). Cela réduit le coût des transitions entre l’utilisateur et le "noyau".
* La taille du cache des OP a été augmentée de 68 %, pour atteindre 6750 OP. Le cache des OP est désormais capable de produire jusqu’à 9 macro-OP par cycle (au lieu de 6).
* La taille du tampon de réorganisation (ROB) est augmentée de 25 %, pour atteindre 320 instructions.
* Le fichier de registres d’entiers passe à 224 registres, le fichier de registres FP/vectoriel passe à 192 registres. Le fichier de registres FP/vectoriel a été élargi à 512 bits pour prendre en charge AVX-512. Ajout d’un nouveau fichier de registres de masques, capable de stocker 68 registres de masques.
* La taille de la file d’attente de chargement est augmentée de 22 %, passant à 88 chargements en attente.
* Le cache L2 est doublé, passant de 512 Kio à 1 Mio par cœur, de type associatif à 8 voies.
* ~13 % d’augmentation de l'IPC en moyenne.
* Fréquence maximale de cœur allant jusqu'à 5,7 GHz.
* Les vitesses de mémoire jusqu’à DDR5-5200 et LPDDR5X-7500 sont officiellement prises en charge.
* Dans les processeurs pour PC de bureau Ryzen 7000 et les processeurs pour portables Ryzen 7045, le GPU intégré contient deux unités de calcul RDNA 2 fonctionnant jusqu’à 2,2 GHz.

## Zen 4c

Zen 4c est une variante de Zen 4 avec des cœurs Zen 4 plus petits et des fréquences d’horloge plus basses, une consommation d’énergie, un cache L3 réduit par cœur, qui est destinée à faire tenir un plus grand nombre de cœurs dans un espace donné. Les cœurs plus petits et le nombre plus élevé de cœurs de Zen 4c sont conçus pour les charges de travail fortement multithreads telles que le cloud computing$^,$.
Un CCD Zen 4c comporte 16 cœurs Zen 4c plus petits, divisés en deux Core Complexes (CCX) de 8 cœurs chacun. Le CCD Zen 4c à 16 cœurs est 9,6 % plus grand en surface que le CCD Zen 4 à 8 cœurs ordinaire. La taille de la puce CCD Zen 4c mesure 72,7 mm$^2$ contre 66,3 mm$^2$ pour le CCD Zen 4. Cependant, un cœur Zen 4c individuel a un encombrement plus petit qu’un cœur Zen 4, ce qui signifie qu’un plus grand nombre de cœurs plus petits peuvent être intégrés dans le CCD. Un cœur Zen 4c est environ 35,4 % plus petit qu’un cœur Zen 4. En plus de l’encombrement réduit du cœur, la surface de la puce est encore économisée dans le CCD Zen 4c grâce à l’utilisation de cellules SRAM 6T à double port plus denses et à une réduction globale du cache L3 à 16 Mo par CCX à 8 cœurs. Les cœurs Zen 4c ont les caches L1 et L2 de la même taille que les cœurs Zen 4, mais la surface de puce du cache dans les cœurs Zen 4c est plus faible en raison de l’utilisation d’une SRAM plus dense et d’un cache plus lent. Les réseaux de connexion through-silicon via (TSV), qui sont utilisés pour l’empilement vertical des puces dans les CCD Zen 4 3D V-Cache, sont supprimés du CCD Zen 4c pour économiser de la surface sur le silicium. Même si le cœur Zen 4c a un encombrement plus petit, il est toujours capable de maintenir le même IPC que le cœur Zen 4 plus grand.
Contrairement aux E-cores Gracemont concurrents d’Intel, Zen 4c dispose de 2 threads par cœur avec un multithreading simultané. L’IPC d’un cœur Zen 4c est plus proche de celui d’un cœur Zen 4 que l'IPC d'un E-core Gracemont d'Intel ne l’est d’un P-core. De plus, Zen 4c prend en charge les mêmes jeux d’instructions que Zen 4, tels que AVX-512, ce qui n’est pas le cas avec les P-cores et E-cores d’Intel. Les E-cores Gracemont d’Intel ne prennent pas en charge les instructions AVX-512 contrairement aux P-cores Golden Cove.
| Cœur | Cœur | Zen 4 | Zen 4c |
| Nom de code | Coeur | Persephone | Dionysus |
| Nom de code | CCD | Durango | Vindhya |
| Coeurs (threads) par CCD | Coeurs (threads) par CCD | 8 (16) | 16 (32) |
| Coeurs (threads) par CCX | Coeurs (threads) par CCX | 8 (16) | 8 (16) |
| Cache L3 par CCD | Cache L3 par CCD | 32 Mo (32 Mo par CCX) | 32 Mo (16 Mo par CCX) |
| Taille de puce | Surface CCD | 66,3 mm$^2$ | 72,7 mm$^2$ |
| Taille de puce | Surface Coeur | 3,84 mm$^2$ | 2,48 mm$^2$ |
La variante Zen 4c a été lancée le 13 juin 2023 avec trois SKU Epyc Bergamo : 9734, 9754 et 9754S. Le SKU 9754S comporte 128 cœurs Zen 4c mais seulement 128 threads au lieu des 256 threads complets, car le multithreading simultané est désactivé. Zen 4c a été lancé le 18 septembre 2023 avec les processeurs de la série Epyc 8004, dont le nom de code est « Siena ». Avec jusqu’à 64 cœurs et 128 threads, Siena est conçu dans l'optique d'une plate-forme à moindre coût pour des serveurs d’entrée de gamme, de l’edge computing et des segments des télécommunications où une efficacité énergétique plus élevée est une priorité.
Zen 4c a fait ses débuts en dehors des processeurs de serveur dans la série Ryzen 7040U, nom de code « Phoenix 2 », qui a été lancée le 2 novembre 2023. Les processeurs Ryzen 3 7440U et Ryzen 5 7545U sont dotés à la fois de cœurs Zen 4 standard et de cœurs Zen 4c plus petits.