Document sans nom PDF
Abonnez-vous à
Bull Direct :

 Votre email
 
RSS Press Events
Archives

 

 

 

Les processeurs NEHALEM-EP d’Intel se mettent au vert
Par Jean-François Lemerre, Bull

PAROLE D'EXPERT

Nouvelle architecture, nouvelles fonctionnalités : le dernier-né des processeurs Intel® Xeon® concilie performance et efficacité énergétique
   
Ancien élève de l'Ecole Polytechnique de Paris, Jean-François Lemerre est responsable du département Performances au sein de la BU SDD (Server Design and Development). Il représente Bull dans les organismes officiels de performance tels que SPEC ou TPC.

Le socket Nehalem-EP (NHM) est le nom de code du dernier né des processeurs Xeon® 5500 d’Intel qui intègre une nouvelle microarchitecture d’Intel succédant à l'Enhanced Intel Core architecture. EP est la version de Nehalem qui permet de concevoir des serveurs bi sockets. Son architecture est optimisée pour offrir un ratio performance-consommation très élevé.

Les autres sockets utilisant le cœur Nehalem sont la version single socket pour poste de travail, vendue sous le nom de Core i7 et la version EX (expandable, scalable) permettant de construire des serveurs comptant quatre sockets et plus.

Nehalem-EP, tout comme Core i7, offre quatre cœurs intégrés sur la même puce. Il est comme la gamme précédente Penryn (plus précisément Harpertown dans la déclinaison dual socket) réalisé en technologie 45 nm1. Il est compatible x86-64.

Ses principales caractéristiques sont les suivantes :

Nehalem-EP

Dispositifs pour démultiplier les performances des applications : contrôleur mémoire intégré, cœur NHM et hyperthreading optimisés, cache renforcé 
Un contrôleur mémoire intégré : une nouveauté dans l'architecture Intel. Le composant North-bridge de l’architecture précédente a disparu ; il permettait à l’ensemble des cœurs d’accéder à une mémoire centralisée. C’était un goulot d’étranglement mesurable dans de nombreuses applications.
La connexion directe de la mémoire sur chaque socket permet à la bande passante d’accès à la mémoire de croître avec le nombre de processeurs. En effet, chaque socket fournit trois canaux mémoire DDR3 fonctionnant jusqu’à 1333 MHz. Cela donne un débit théorique de 32 Go/s par socket, soit 64 Go/s pour un serveur bi-socket, à comparer aux 21 Go/s du FSB de la gamme précédente. Ceci permet de multiplier par trois le débit mémoire théorique. En pratique, on mesure un débit proche de 40 Go/s pour les deux sockets avec le benchmark STREAM.

Avec cette nouvelle architecture, le temps d’accès à la mémoire n’est plus uniforme, il dépend de la position respective du cœur et des barrettes mémoire accédées, on parle de mémoire NUMA (Non Uniform Memory Architecture). Le temps d’accès aux données est nettement plus rapide lorsqu’un processeur utilise la mémoire attachée au socket auquel il appartient que lorsqu’il utilise la mémoire du socket distant. On parle de facteur NUMA, ratio entre ces deux temps d’accès aux données.
L’impact en termes de performance est minimisé grâce à deux apports des nouveaux serveurs.

Le cœur NHM permet une amélioration significative des performances malgré une fréquence plutôt inférieure à celle de la génération précédente. En fait, tout a été fait pour effectuer plus d'instructions par cycle.
Parmi les améliorations constatées, le moteur d'exécution Out Of Order a été amélioré par une taille plus grande du buffer de ré-ordonnancement des instructions et le mécanisme de prédiction de branchement a été revu en améliorant l'efficacité de cette prévision et en diminuant la pénalité des mauvaises prédictions. Le décodage des instructions x86 en micro instructions élémentaires fusionnées est encore plus efficace. Enfin, le jeu d'instruction SSE4.2 a été complété,  les instructions de synchronisation (LOCK*) sont plus efficaces et un support amélioré de la virtualisation est mis en œuvre.

L'hyperthreading a lui aussi été amélioré en doublant un certain nombre de registres. Ceci permet de jouer deux threads sans perte de temps : dès que le premier est bloqué par une attente quelconque de ressources, la mémoire par exemple, on « passe la main » à l'autre thread en utilisant les registres associés. Cette technologie, efficace dans le domaine des bases de données, dégradait le niveau de performance atteint en High Performance Computing (HPC), on a pu vérifier que ce n’est plus le cas avec ce nouveau cœur.

Un cache partagé entre les 4 cœurs de taille importante (8 Mo) apporte également une amélioration significative. Il remplace les deux fois deux caches de l'architecture Penryn et permet d'avoir des taux de « miss » très faibles. Les données présentes à ce niveau peuvent donc être accédées plus rapidement par les quatre cœurs. Nehalem utilise une architecture à trois niveaux de cache où le cache partagé est le dernier niveau. Chaque cœur accède ainsi au cache partagé de dernier niveau à travers les caches de niveau 1, inchangés à 32 K instructions et 32 K données et  un cache de niveau 2 de 256 Koctets. Tous ces caches sont inclusifs, ce qui simplifie la gestion de la cohérence. Les latences d’accès aux données de ces différents caches sont de quatre cycles, soit 1,4 ns pour L1,  de 10 cycles soit 3,3 ns pour L2 et de 40 cycles, soit 13 ns pour le cache de dernier niveau.

Des fonctionnalités inédites au cœur du processeur pour optimiser l’efficacité énergétique
Un autre aspect extrêmement intéressant du socket Nehalem-EP est la possibilité de gérer la consommation électrique des processeurs. Ceci est possible grâce au changement dynamique de la fréquence et de la tension d’alimentation des processeurs, qui permet de piloter leur consommation électrique. Celle-ci est en effet pour partie, proportionnelle à la fréquence et au carré de la tension. Il faut noter que ce mécanisme permet de mettre en mode « idle » certaines parties du circuit en passant la fréquence à 0 et qu’il intègre la mesure de la consommation électrique au niveau de chaque socket.

De tels pilotages peuvent être mis en œuvre soit pour limiter la consommation, soit pour augmenter les performances. Par exemple, lorsque certains cœurs sont inutilisés, il sera possible de les passer dans l’état « idle » pour, soit suivre une politique de gestion intelligente de l'énergie lorsqu’il est souhaitable de ne pas dépasser un seuil défini de consommation, soit bénéficier de l’énergie rendue ainsi disponible pour augmenter sa fréquence d'exécution, c'est le mode Turbo.

Schéma de référence d’un serveur bi-socket Nehalem-EP

Nehalem-EP

Du processeur aux applications, les bénéfices de Nehalem-EP sont directement évalués par les experts Bull

En conclusion, considérons l’utilisation par deux serveurs Bull équipés respectivement des architectures Harpertown et Nehalem-EP. Pour chaque serveur, on considèrera deux sockets, quatre cœurs par socket, utilisés à la fréquence maximum. On obtient ainsi :

1 nm : nanomètres
2 GT/s : Giga Transfert par seconde
3 Gigaflops : un milliard d'opérations en virgule flottante par seconde
4 Ktpm : Kilo transactions par minute