COMPTOIR
  
register

×

zen 2 micro architecture

Test • AMD Zen 2 : X570 & Ryzen 7 3700X / Ryzen 9 3900X
zen 2 micro architecture
zen2 prédicteur de branchement
zen2 décodeur (comme canal +, ouais !!)
zen2 calcul des opérations flottantes
zen2 calculs entiers
zen2 sous-système mémoire

• Zen2, la mise à jour qui booste bien l'ipc

Après Zen, qui marque la renaissance d'AMD dans la course à la performance côté CPU, nous avons eu droit à un Zen+. Cependant, l'agencement interne n'a pas vu de changement : seul un passage au 12 nm s'est effectué, ce qui a néanmoins grandement corrigé les défauts de jeunesse, à savoir une compatibilité mémoire limitée, la latence d'accès à cette dernière et un retard conséquent en fréquence face à la concurrence bleue. Cette mouture mérite donc à juste titre sa numérotation pour ce qui est des changements architecturaux, au prix d'une obscuration des termes, puisque la série 3000 répond au nom de Zen 2 si on exclut les séries G.

 

Pour cette mise à jour, AMD fait coup double. Au contraire d'un Tick-Tack-Tock-Tock-Tock enroué, les rouges ont simultanément effectué un saut dans les finesses de gravure avec le passage au 7 nm en UV profonds, et une révision majeure de sa micro architecture, avec entre autres l’arrivée tonitruante des chiplets hors du segment HEDT. L'agencement général ne comporte pas de modification structurelle - nous vous invitons à relire la partie consacrée à ce sujet dans notre dossier sur Zen - nous voyons mal comment il aurait pu en être autrement. Il faut dire que les plateformes x86 et ARM semblent converger vers ce design, découpant les instructions après décodage en micro-opérations, elles-mêmes affectées à différents ports plus ou moins spécialisés.

 

zen 2 micro architecture [cliquer pour agrandir]

 

Pas de surprise, le SMT a deux voies est conservé, par contre AMD annonce avoir travaillé sur à peu près tout le contenu du CPU : aussi bien l'étage de décodage et de lecture des instructions que sur les ports de calcul entier, mais surtout flottant, en se mettant à jour par rapport à Skylake, sujet sur lequel nous reviendrons un peu plus loin.

 

La partie de chargement des instructions, premier étage du pipeline d'exécution d'un CPU, voit quelques améliorations mineures. Le prédicteur de branchement de Zen, basé sur un réseau de neurones, est abandonné pour une version déterministe nommée TAgged GEometric (TAGE). Une implémentation développée au niveau recherche vers 2006 en France, pour l’anecdote. Les caches nécessaires à ces prédictions (BTB, pour Branch Target Buffer) de niveau 1 et 2 suivent une augmentation, de quoi améliorer les performances pour les codes présentant un nombre important de sauts.

 

zen2 prédicteur de branchement [cliquer pour agrandir]

 

Passons désormais à l'étage de décodage, où les instructions x86 sont découpées en micro-opérations RISC. Pas de grandes modifications mis à part l'élargissement du cache des micro-ops (issues de la sortie du prédicteur de branchement) qui passe de 2k à 4k entrées.

 

zen2 décodeur (comme canal +, ouais !!) [cliquer pour agrandir]

 

Un des grands changements par rapport à Zen premier du nom, est l'élargissement du débit de calcul des opérations flottantes, mise à jour rattrapant le retard sur Skylake. Désormais, Zen 2 est capable d'assurer un débit de 256 bits par cycle, contre la moitié pour Zen. Il en résulte une augmentation globale des performances en AVX, puisque ces extensions manipulent justement des vecteurs flottants sur 256 bits. De plus, la latence de la multiplication flottante passe à 3 cycles, un ajout toujours bon à prendre.

 

zen2 calcul des opérations flottantes [cliquer pour agrandir]

 

Qui dit élargissement du débit de calcul, dit aussi élargissement de la bande passante mémoire : il faut bien charger les données de quelque part ! Cela commence par les unités de calcul entier, qui sont également utilisées pour le calcul d'adresse. Ici aussi, la structure rattrape Skylake : trois ports de calculs d'adresse (contre 2 sur Zen) et 4 pour le calcul entier (pas de changement). Au passage, les unités de répartition des micro-opérations et le tampon de ré-ordonnancement de ces micro-opérations, sont élargis avec respectivement un passage de 84 à 92 entrées et de 192 à 224 entrées.

 

zen2 calculs entiers [cliquer pour agrandir]

 

Par souci d'équilibrage du CPU, le sous-système mémoire est lui aussi revu... et copie celui de Skylake, encore une fois : deux unités de lecture et une d'écriture, toutes assurant un débit de 256 bits par cycle (soit 32 octets), contre deux unités de lecture-écriture fusionnés @ 16o/cycle auparavant.

 

zen2 sous-système mémoire [cliquer pour agrandir]

 

C'en est fini pour la partie calcul de Zen 2, destination mémoire à la page suivante.



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 ?