COMPTOIR
  
register

×

zen2 cache

Test • AMD Zen 2 : X570 & Ryzen 7 3700X / Ryzen 9 3900X
zen2 cache
zen2 archi logique du cache
zen2 archi cache
zen2 nouvelles instructions
zen2 / spectre V4 correction
zen2 infinity fabric

• Une hiérarchie de cache revue

Alors que Zen 1/+ arborait ses 8 Mo de L3 par die, Zen 2 joue la surenchère avec un doublement de cette capacité, mais un accès plus difficile de par un cloisonnement encore plus prononcé entre dies. Comment tout cela fonctionne-t-il ? Voyons cela ensemble.

 

zen2 cache [cliquer pour agrandir]

 

Sur la structure générale, rien ne semble changer à première vue : un Core Complex (CCX) est toujours composé de 4 cœurs (et 8 threads), 512 Ko de L2 privé par cœur, 32 Ko de L1. Toutefois, AMD le dote de 16 Mo de L3 en lieu et place des 8 Mo de Zen premier du nom, un changement conséquent pour le coup.

 

Un des goulots d'étranglement de Zen était l'Infinity Fabric, l’interconnexion qui permet de conserver la cohérence de cache. Une variable peut ainsi faire un saut entre le L3 d'un CCX vers un cœur d'un autre CCX. Mais cela se paie cher, à la fois en latence et en conséquence sur l'overclocking, car il est difficile de faire monter en fréquence ce système. Pour Zen 2, AMD a été radical : le L3 est désormais totalement privé par CCX, c'est-à-dire que des groupes de 3 ou 4 cœurs (selon le modèle) partagent 16 Mo de L3 épicétout, même si votre CPU en contient en tout 64 Mo. Cela n'a cependant rien de choquant, puisque c'est déjà la manière de compter le L2 (512 Ko par cœur, compté comme 2 Mo de L2 sur un quad-core).

 

Par contre, cela explique le pourquoi du doublement de sa taille, qui permet aux applications monothreads de se retrouver avec autant de cache L3 que sur Zen, et donc de ne pas afficher de dégradation de performance dans ce cas de figure ! Si vous suivez, cela signifie aussi que Zen 2 est plus prompt à grimper en fréquence que Zen, en dépit d'une nouvelle finesse de gravure pas forcément maîtrisée à la perfection.

 

zen2 archi logique du cache [cliquer pour agrandir]

 

Avec les dies, l'encapsulation continue en introduisant la notion de chiplet. Ils peuvent être de 2 types pour cette génération : le premier est composé de deux CCX formant ce qu'AMD nomme un CCD, pour Compute Die. Chaque processeur Zen 2 est également composé d'un cIOD (le die d'entrée/sortie) gravé en 12 nm. À ce dernier, s'ajoute donc un ou deux CCD utilisant cette fois le process 7 nm. Bien que la taille du cIOD soit plus importante que celle des CCD, du fait du différentiel de densité lié aux processus de fabrication respectifs, les caches sont physiquement bel et bien dans le dernier cité. Le cIOD ne contient "que" les entrées/sorties directes qui évitent le chipset : PCIe, NVMe, SATA, USB, et bien sûr le contrôleur mémoire capable de gérer deux canaux. On reconnaîtra en fait dans ce die une nouvelle incarnation du Northbridge-Southbridge fusionné, comme quoi l'informatique finit par revenir à ses sources !

 

zen2 archi cache [cliquer pour agrandir]

 

Comme vu dans la partie précédente, le débit entre les registres et le L1 est doublé, suivant l'élargissement du pipeline vectoriel, quant au L3,  il reste de type victime. Néanmoins, sa promotion en version privée par CCX engendre une latence supplémentaire lors des accès mémoire, puisqu'il faut alors consulter et invalider le cas échéant les lignes de cache d'autres CCX contenant les données recherchées.

 

zen2 nouvelles instructions [cliquer pour agrandir]

 

Avec une structure cache qui se complexifie encore un peu plus, il n'est pas surprenant de voir AMD ajouter quelques instructions, afin de donner plus de libertés au programmeur quant à la gestion mémoire. CLWB, déjà présent chez Intel, permet d'écrire la donnée en mémoire alors qu'elle n'est présente que dans un cache. WBNOINVD permet de propager en mémoire toutes les données du cache sans pour autant les évincer et d'autres répartitions seront possibles via des compteurs hardware, ici aussi il s'agit d'un réalignement sur les bleus qui proposent une fonctionnalité similaire sur les gammes serveurs.

 

zen2 / spectre V4 correction [cliquer pour agrandir]

 

Qui dit cache et mémoire dit également vulnérabilités, puisque Spectre et Meltdown (et leurs dérivés !) se cachent dans cette infrastructure. AMD étant assez épargné de ces découverts, Zen 2 ne corrige finalement en hard qu'une seule faille : SSB ou Speculative Store Bypass, aussi connu sous le nom de Spectre V4.

 

zen2 infinity fabric [cliquer pour agrandir]

 

SI l'infinity fabric a été retirée entre CCX, elle reste présente dans ces Zen 2 pour relier entre eux le(s) CCD et le cIOD au travers de sa seconde itération. AMD annonce ainsi avoir retravaillé son design afin d'améliorer son débit, sa consommation et surtout sa latence, en découplant sa fréquence (Fclk) de la fréquence du système mémoire unifié (Uclk), nous verrons ce qu'il en est dans la suite de ce test.

 

En parlant de suite, rendez-vous page suivante pour en apprendre plus sur son intégration pour les premières moutures grand public.



Un poil avant ?

Test • AMD RX 5700 XT & RX 5700

Un peu plus tard ...

Bon plan • Le Ryzen 7 3700X à 338,31 € (préco)

Les 253 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur qui pipotronne en Québec, le Jeudi 06 Février 2020 à 17h16  
Bon... Je vais donc y aller pour le 9900K. J'espérais mieux en jeu du 3900X, mais les correctifs ne sont pas encore au point sur Zen2.
par Un ragoteur RGB en Île-de-France, le Mercredi 11 Septembre 2019 à 19h12  
vous en êtes ou de la maj avec les 3600&3800 ??? mon coeur balance entre 3600 &3700x et sans vous je suis perdu
par Eric B., le Vendredi 23 Août 2019 à 12h34  
Je suis en train de retester tous les CPU suite à une maj de notre protocole et des derniers AGESA pour Zen 2. Cela inclus également un test sur chipsets antérieurs au X570.
par Cronff, le Vendredi 23 Août 2019 à 11h26  
Bonjour le Comptoir

Peut-on espérer des tests sur B450 ou X470?
Ou un petit dossier du genre?
par Nicolas D., le Jeudi 15 Août 2019 à 18h42  
par thrawn du Grand Est, le Lundi 22 Juillet 2019 à 21h16
Yop, Je regarde pour changer de proc pour plus de performance en applicatif (compilation principalement) et donc j'ai lancé la compilation de gcc (time make -j8) avec la même version que vous, même configuration.
J'ai un i7 930 cadencé à 3.5 GHz (en comptant le turbo-boost).
J'obtient
real 10m31,177s
user 53m38,096s
sys 2m22,389s

Sur votre graphique de compilation gcc, quel temps prenez vous ?
Le user je suppose ?

Parce que sinon, c'est vraiment bizarre !

Je tourne sur ArchLinux, kernel 5.2.
Ca c'est très étrange... Tu compilais bien la version 8.2 en --target=x86_64-linux-gnu --disable-multilib ? Nous prenons le temps réel, le User étant la somme sur tous les threads du temps passé en mode utilisateur, ça ne serait pas très intéressant .
par thrawn du Grand Est, le Lundi 22 Juillet 2019 à 21h16  
Yop, Je regarde pour changer de proc pour plus de performance en applicatif (compilation principalement) et donc j'ai lancé la compilation de gcc (time make -j8) avec la même version que vous, même configuration.
J'ai un i7 930 cadencé à 3.5 GHz (en comptant le turbo-boost).
J'obtient
real 10m31,177s
user 53m38,096s
sys 2m22,389s

Sur votre graphique de compilation gcc, quel temps prenez vous ?
Le user je suppose ?

Parce que sinon, c'est vraiment bizarre !

Je tourne sur ArchLinux, kernel 5.2.
par Cronff, le Mardi 16 Juillet 2019 à 14h20  
par Thomas N., le Mardi 16 Juillet 2019 à 13h25
Yop. 8c vs 6c y'a pas photo si tu fais de l'applicatif, prends le 3700X.
Merci Thomas
par Thomas N., le Mardi 16 Juillet 2019 à 13h25  
par Cronff, le Mardi 16 Juillet 2019 à 11h49
J'hésite entre le 3600X et le 3700X
Il y a 100€ d'écart entre les deux mais en l'absence de tests pour l'instant, j'ai du mal à me décider.

C'est pour une config aplicative...
Yop. 8c vs 6c y'a pas photo si tu fais de l'applicatif, prends le 3700X.
par Cronff, le Mardi 16 Juillet 2019 à 11h49  
Salut à tous

J'hésite entre le 3600X et le 3700X
Il y a 100€ d'écart entre les deux mais en l'absence de tests pour l'instant, j'ai du mal à me décider.

C'est pour une config aplicative: compilation type Yocto/embarqué, CAO, à venir quelques montages vidéos et de l'IA (mais ça je le donnerais à manger à une 2060 Super)..

L'idée c'est que cette config tienne la route pour les 5 à 7 années à venir

Vos avis z'avisés sont les bienvenus
par Eric B., le Lundi 15 Juillet 2019 à 18h42  
Merci pour la précision . Je viens de mettre à jour le passage à ce sujet. Comme écrit dans mon précédent message, nous détaillerons ce point dans quelques temps.
par Un médecin des ragots en Île-de-France, le Lundi 15 Juillet 2019 à 15h50  
par Eric B., le Lundi 15 Juillet 2019 à 13h23
Il suffit de lire le texte accompagnant les graphiques... Peut-être un problème d'AIDA64, mais à vérifier dans quelques temps, une fois nos dossiers en cours terminés et les AGESA plus mûrs.
Étant futur acquéreur d'un ryzen, je viens faire une recherche et il y a bien un problème de bande passante droite sur le 3700x et non présent sur 3900x, article sur tom's
par Un ragoteur qui draille en Île-de-France, le Lundi 15 Juillet 2019 à 12h54  
Il y a pas un bug dans votre test, car le write RAM me semble bien trop faible ?