• ZEN, une nouvelle architecture

Si au début du millénaire, la course à la fréquence prédominait, on se souviendra ainsi du duel Intel/AMD à qui franchirait le premier le seuil psychologique du gigahertz avec leurs Pentium III / Athlon respectifs, les années qui suivirent ont montré que c'était une très mauvaise idée... Tour à tour, les 2 concepteurs de processeurs centraux se sont cassés les dents avec une architecture privilégiant la fréquence à l'efficience. Bien sûr, Intel aidé par sa supériorité dans le domaine des process de fabrication a mieux traversé cette épreuve, il n'empêche qu'ils semblent à présent d'accord sur un point : il ne faut en aucun cas négliger l'IPC (Instruction par cycle). C'est ainsi qu'est né Zen après 4 ans de gestation sous la houlette de Jim Keller : AMD s'était fixé l'objectif d'augmenter de 40% l'IPC par rapport aux derniers processeurs CMT (la précédente architecture), en pratique le résultat serait encore meilleur dans ce domaine, ce qui aurait surpris Lisa Su, comme elle l'a déclaré quelques jours avant le lancement en grande pompe :

 

ipc

 

Maintenant que la philosophie a été exposée, voyons comment AMD a mis tout cela en pratique. Un cœur Zen est constitué comme tout processeur moderne, d'un Front-End (nous reviendrons sur ce dernier un peu plus tard), partie ô combien importante dans l'efficience et chargée d'extraire du code x86 les instructions à réaliser et les convertir en micro-opérations qui pourront être traitées très rapidement par les unités d'exécution de type RISC. On notera qu'AMD continue à dissocier à ce niveau les calculs sur nombres entiers ou à virgule, point indispensable avec CMT puisque les unités de calcul flottant (FPU) étaient mutualisées entre coeurs, mais ce n'est plus le cas pour Zen. Au final, 6 micro-ops pourront être envoyées pour les entiers et 4 pour les flottants simultanément. Notons enfin que les opérations mémoire sont assurées par 2 AGU et que le cache L1 est constitué de 64 Ko pour les instructions et 32 Ko pour les données.

 

Cœur Zen [cliquer pour agrandir]

Un cœur Zen

 

L'efficacité du Front End dépend en grande partie de sa prédiction de branchements. Cette dernière doit parvenir à "deviner" quelle sera la branche d'un programme à poursuivre lorsqu'une condition est présente dans le code. Une erreur étant très pénalisante en termes de cycles d'horloge, il est donc indispensable d'obtenir un taux de succès très élevé lors des prédictions. AMD utilise pour cela un réseau neuronal simple couplé à un TLB (cache permettant la traduction des adresses virtuelles) conséquent.

 

Prédiction de branchements [cliquer pour agrandir]

Prédiction de branchements

  

Chaque cœur se voit également doté d'un cache L2 de type inclusif, deux accès distincts permettant de sauvegarder très rapidement le contenu des L1 (data et instruction) dans le cache de niveau 2. Par rapport à Bulldozer (2 Mo / module), la quantité de L2 est réduite à 512 Ko / cœur, il est par contre beaucoup plus rapide et correspond au double de ce qu'intègre Intel sur ses propres architectures (256 Ko).

 

cache de niveau 2 [cliquer pour agrandir]

Cache de niveau 2

 

Pour finir avec les cœurs Zen, un des plus gros changements par rapport à leurs prédécesseurs est la prise en charge du SMT (Simultaneous Multi Threading). De quoi s'agit-il ? En fait, de l'utilisation de 2 files distinctes pour la gestion des micro-ops, permettant ainsi de saturer au maximum les ressources, via la création de 2 cœurs virtuels à partir d'un seul physique. Intel nomme cette fonctionnalité HyperThreading, qui est présente dans ses processeurs depuis de longues années.

 

SMT [cliquer pour agrandir]Le SMT made in AMD

 

Maintenant que nous avons rapidement décrit un cœur Zen, voyons comment ces derniers sont mis en œuvre dans cette première itération de l'architecture. En pratique, AMD accoste 4 cœurs et 8 Mo de cache L3 au sein d'une structure nommée CPU Complex ou plus simplement CCX. Notons que ce cache est de type victime, il est donc constitué pour la plupart des données éjectées du cache de niveau 2.

 

CCX [cliquer pour agrandir]

CPU Complex (CCX)

 

Comme indiqué sur le schéma précédent, le L3 est en fait partitionné en 4, chaque portion de 2 Mo étant liée à un cœur. Ce n'est pas sans conséquence en termes de latence selon que les données devant être traitées soient présentes dans la partie associée au cœur les réclamant ou à un autre. AMD tente de noyer le poisson en déclarant que la latence moyenne est similaire puisque ce phénomène est valable pour chaque cœur, plus La Palice tu meurs...

 

cache de niveau 3 [cliquer pour agrandir]

Cache de niveau 3

 

Il ne vous aura pas échappés qu'un CCX ne comporte "que" 4 cœurs, alors que les CPU commercialisés vont jusqu'à 8 et probablement plus à l'avenir. Pour cela AMD interconnecte tout simplement les CCX entre eux. Comment diable ? Par le biais de ce qu'il appelle une Data Fabric qui correspond en gros à un commutateur. Ce n'est pas tout, les contrôleurs mémoire, PCIe, USB 3.0, SATA et même audio peuvent également être interfacés par le biais d'une Data Fabric, décidément très flexible. Est-elle suffisamment rapide pour autant ?

 

Data Fabric [cliquer pour agrandir]

Data Fabric

 

Terminons notre tour d'horizon de Zen avec Pure Power qui correspond aux divers mécanismes mis en oeuvre par AMD pour améliorer l'efficacité énergétique de ses nouveaux processeurs. On notera d'ailleurs la possibilité d'attribuer un niveau de tension différent selon les cœurs, ce qui permet d'envisager des fréquences très variables. Les concepteurs indiquent avoir ajouté de très nombreux points de contrôles thermique et électrique permettant une gestion très fine de l'énergie. Cela conduirait à des gains impressionnants surtout si l'on cumule ceux liés à l'architecture, le design de la puce, l'évolution de la finesse de gravure et Pure Power, nous ne manquerons pas de mesurer ce point en fin de dossier.

 

Pure Power [cliquer pour agrandir]

Gains énergétiques cumulés

 

Voilà pour Zen, passons page suivante à la première itération issue de cette toute nouvelle architecture.




Sommaire

Page n°1 : Préambule
Page n°2 : Zen, une nouvelle architecture
Page n°3 : Ryzen
Page n°4 : AM4 & X370
Page n°5 : Asus Crosshair VI Hero
Page n°6 : MSI X370 XPower Gaming Titanium
Page n°7 : Configurations et protocole de test
Page n°8 : Impact SMT et DDR4
Page n°9 : Performances synthétiques
Page n°10 : Compression et encryptage
Page n°11 : Création 3D et vidéo
Page n°12 : Traitement photos
Page n°13 : Encodage vidéo
Page n°14 : Rendu scènes 3D
Page n°15 : Compilation
Page n°16 : Performances ludiques
Page n°17 : Indices de performance
Page n°18 : Consommation & efficacité
Page n°19 : Overclocking & températures
Page n°20 : Verdict

Les 110 Ragots
   
Les ragots sont actuellement
ouverts à tous, c'est open bar !