alimentation boîtier carte 3D carte mère configuration disque dur ecran intel netbook nvidia
Nehalem : visite du cœur du Core i7... |
|
|
| Écrit par Pascal Thevenier |
| Vendredi, 24 Octobre 2008 14:52 |
Après les derniers Pentium 4 largement dominés par les Athlon 64 X2, les Core Duo et Core 2 Duo ont totalement inversé la vapeur. Les processeurs basés sur l’architecture Core ne souffrent d’aucun défaut : performances et overclocking sont au rendez-vous et riment avec consommation modérée et dissipation thermique contenue. Que demander de plus ? Une nouvelle architecture avec un processeur Quad Core natif, pardi ! Effectivement. Alors qu’AMD commercialise le Phenom – le seul processeur Quad Core natif – depuis bientôt un an, les Core 2 Quad d’Intel sont toujours composés de deux « dies » montés sur un même support… Avec l’architecture Nehalem, Intel entend bien combler ce retard et dans la foulée faire fi de certaines technologies un peu dépassées comme le bon vieux Front Side Bus. En développement depuis 2003, cette architecture prétend au titre de plus grande avancée technologique…
Philosophie de l’architecture… Courant septembre, nous avons eu la chance d’assister à une conférence donnée par Ronak Singhal, Nehalem Chief Architect et de partager sa table en compagnie de deux confrères. Le Pentium 4 et les Core i7 ont un point commun : ils ont été conçus par la même équipe de développement mais avec des impératifs cette fois bien différents. Une des lignes directrices de cette architecture est la performance par watt. Pour augmenter la puissance brute des processeurs, les ingénieurs connaissent certaines « recettes » mais toutes n’accusent pas les mêmes contreparties en termes de consommation ou en nombre de transistors nécessaires. Dans le cadre de Nehalem, seules les améliorations avec un ratio consommation, gain de puissance et augmentations contenue du nombre de transistors ont été retenues. La seconde grande caractéristique de la nouvelle architecture est sa modularité. En effet, elle doit pouvoir être adaptable facilement aux serveurs et stations de travail mais aussi aux ordinateurs portables. Pour concevoir une architecture très flexible, il a fallu segmenter toutes les parties du processeur afin de le rendre « modulaire ». S’il est très facile de coucher cette idée sur le papier, Ronak Singhal nous a confié que cette conception leur a donné du fil à retordre notamment au niveau de la « colle » (NDLR : les interconnexions) nécessaire à la combinaison des différentes parties… Après cinq années de recherche, l’architecture Nehalem est ancrée dans la réalité et ses différentes déclinaisons devraient répondre aussi bien aux besoins des serveurs que des ordinateurs portables.![]() Nehalem en quelques mots… Plutôt que de présenter un résumé en fin de parcours, nous avons décidé de dégrossir sommairement un processeur Core i7. Une des grandes différences de Nehalem vient de la présence de deux entités distinctes dans le processeur : Core et Uncore. La partie Core contient les unités d’exécution (dérivées de l’architecture « actuelle » Core) ainsi que les caches L1 et L2. Innovation de cette génération, la partie Uncore comporte le cache L3 et des contrôleurs : mémoire, bus de communication, gestion thermique, etc. Comme l’a déjà fait AMD avec l’Athlon 64, Intel a déplacé le contrôleur mémoire du northbridge vers la partie Uncore du processeur. A terme, celle-ci contiendra aussi le contrôleur PCI-Express et un ou plusieurs contrôleurs graphiques…Remarque : Le mot « core » désigne plusieurs choses ! Core, utilisé seul avec un majuscule désigne l'architecture précédente des Core 2 Duo (au même titre que NetBurst pour les Pentium 4 et Nehalem pour les Core i7). Le terme core désigne aussi le cœur d'éxécution du processeur notamment quand on parle de processeur double core (ou double cœur). Enfin, il est aussi utilisé comme nom propre (comme marque) dans Core 2 Duo, Core 2 Quad et Core i7. La partie Core de Nehalem Intel ne cache pas la parenté entre la nouvelle architecture Nehalem et « l’ancienne » Core. On retrouve donc toujours une approche : Wide Dynamic Execution - 4 wide decode/rename/retire. En d’autres mots, Nehalem présente toujours un maximum théorique de 4 opérations par cycle, comme son prédécesseur. Cependant, avec Nehalem, Intel s’est attelé à approcher le plus possible du maximum théorique. ![]() Pour améliorer l’unité d’exécution, Intel a travaillé sur trois grandes parties : l’entrée et le décodage (Front End), l’unité de traitement (Execution Engine, le « pipeline ») et la mémoire. . ![]() La macrofusion introduite par l’architecture précédente a été optimisée au niveau de la vitesse d’exécution et des ressources nécessaires. En outre, elle est étendue à de nouvelles instructions (relatives aux conditions de branchement) et opère aussi en 64bits. Au sein de l’architecture Nehalem, la macrofusion est plus complète, plus rapide, demande moins de ressources et consomme moins… Les boucles sont une structure particulièrement courante dans les programmes. Dans Core, Intel avait déjà réussi à limiter les unités actives durant ce type d’opération afin de réduire la consommation. Les boucles étaient alors cantonnées aux « Loop Stream Detector » et à l’unité de décodage. Dans l’architecture Nehalem, seul le « Loop Stream Dectector » est actif. Plus complexe que l’ancien, il est à présent (et pour la première fois dans un processeur) autonome. Intel est d’ailleurs assez fier d’avoir réussi cette première… ![]() Pipeline conventionnel ![]() Le LSD introduit par Core ![]() Le LSD de Nehalem La prédiction de branchement permet d’éviter les traitements inutiles et donc la consommation « inutile ». Déjà particulièrement efficace, l’unité de prédiction de branchement a encore été optimisée avec un double objectif : performances accrues et consommation réduite avec un maximum de prédictions correctes. Dans cette optique, Intel a amélioré la prédiction de branchement au niveau du cache L2 et du Return Stack Buffer (RSB). ![]() ![]() La technologie HyperThreading apparue dans les Pentium 4 Northwood est de retour. Aussi appelée SMT pour Simultaneous Multi-Threading, elle permet d’optimiser le remplissage des ports et de se rapprocher du rendement maximum de 4 instructions par cycle (à condition que les tâches soient « parallélisables »). L’implémentation du SMT requiert une augmentation de 10% du nombre de transistors dans l’unité d’exécution mais se traduit par des gains bien supérieurs en termes de performances. Intel a adapté les différents buffers internes en fonction de cette charge supplémentaire de travail. Compte tenu de la philosophie de l’architecture Nelahem, l’HyperThreading a parfaitement sa place dans les processeurs Core i7. Bien entendu, alimenter 4 cores avec HyperThreading, soit 8 processeurs logiques, nécessite une bande passante mémoire importante. ![]() SMP : Les theads vert et bleu se partagent les unités de traitement. ![]() Les gains engendrés par l'HyperThreading sont aujourd'hui importants. Dans l’architecture Nehalem, on retrouve trois niveaux de cache de type inclusif. Les données du cache L1 se retrouvent donc dans le cache L2 et dans le cache L3. Cette approche est non seulement plus efficace mais elle est aussi plus adaptée à une architecture modulaire. Dans chacun des caches, un bit permet de suivre l’état des données afin de savoir si elles ont été modifiées (ou non) et ainsi assurer la réplication correcte. Le dernier avantage des caches inclusifs est de réduire la latence et d’éviter les transferts incessants entre les niveaux.Dans le cas d’un Core i7 à 4 cœurs, le total des caches L1 et L2 consomme « seulement » 1280 Ko sur les 8192 Ko de cache L3. Il reste donc plus de 6,5 Mo pour d’autres données et instructions. La gestion des caches fait toujours intervenir les technologies Memory Disambiguation, Advanced Smart Cache et Hardware Prefetchers introduits avec l’architecture Core. Afin de faire face à l’augmentation de la taille du code à exécuter, les TLB (Translation lookaside buffer) ont été élargis que ce soit pour les données ou pour les instructions. Un TLB unifié de niveau 2 fait aussi son apparition.Certaines opérations nécessitent un alignement (MOVAPS/D, MOVDQA) alors que d’autres non (MOVUPS/D, MOVDQU). Par le passé, les instructions alignées s’exécutaient plus rapidement. Grâce au « Fast Unaligned Cache Access », l’architecture Nehalem est aussi rapide dans un cas comme dans l’autre. Le Hardware Prefetching (HWP) de l’architecture Nehalem est proche de celui utilisé par l’architecture Core et repose sur des algorithmes complexes mais éprouvés. Dans le cache L1, il se base sur un historique et/ou sur des adresses de chargement (load adress pattern). Au niveau du cache L2, le mécanisme repose principalement sur les « load adress patern ». Plus intelligent, le prefecth est aussi plus « agressif » et plus rapide. Il n’est plus nécessaire de le désactiver comme dans les Xeon actuels (NDRL : dans certaines applications, le HWP du cache L2 pénalisait les performances). ![]() La partie Uncore de Nehalem Pour la première fois, Intel utilise deux grandes entités dans son architecture. A côté de Core, Uncore est relativement plus simple même si elle intègre le grand cache L3 de 8 Mo. Cette approche s’inscrit en ligne droite dans la modularité qui est un des leitmotivs de Nehalem… Car la partie Uncore peut aussi s’adapter à la vocation du processeur. Dans le cas d’un serveur, plusieurs contrôleurs QPI (QuickPath Interconnect) pourront être installés afin de faciliter les interconnexions entre les processeurs. Le contrôleur mémoire (appelé IMC) triple canal DDR3 pourra être remplacé par une version plus simple pour créer une lignée de processeurs « mainstream ». La combinaison du QPI et de l’IMC permet aux processeurs de l’architecture Nehalem des interconnexions avantageuses. Ainsi, un processeur ayant besoin d’une énorme bande passante mémoire peut adresser directement la mémoire connectée à un autre processeur (Non-Uniform Memory Access ou NUMA). Ce type d’accès augmente cependant la latence de 58% mais elle reste inférieure à celle d’un Xeon actuel ! Mais pour contenir la consommation au maximum, Intel s’est attaqué au problème dans sa totalité. La plus grande partie de la consommation est liée au fonctionnement des unités (60%). La distribution de la fréquence représente 10% et enfin le « Leakage » (les pertes) est de l’ordre de 30%. Seul le processus de production (usage de High-K et optimisations) permet de réduire ce dernier poste. Grâce aux « C-States », il est possible d’agir sur les 70% restants quand le processeur n’est pas utilisé. Introduits au début des années 90, les modes C1 et C2 permettent d’arrêter le pipeline et la distribution de certaines fréquences. Ce n’est qu’à la fin des années 90 que le mode C3 a permis l’arrêt complet de la distribution des fréquences. Depuis quelques années, les tensions peuvent aussi être réduites via les modes C4, C5 et le récent C6.L’architecture Nehalem est en mesure de placer les cores d’exécution dans des « C-States » différents de manière totalement indépendante. Des interrupteurs permettent de couper complètement l’alimentation de chaque core afin d’abaisser la consommation à quasiment 0 ! Il s’agit d’une première car actuellement, tant qu’un core est actif, il faut continuer d’alimenter les autres… La partie Uncore du processeur a aussi fait l’objet de nombreuses attentions et supporte le mode C6, ce qui se traduit par l’arrêt d’une partie des circuits, le passage en mode basse tension des I/O et l’arrêt de la distribution de la fréquence Uncore. Dans le cas d’un Core i7 (4 cores) en pleine charge, la partie Uncore intervient à hauteur de ~25% dans la consommation totale. ![]() Retour du turbo ! Il ne s’agit bien entendu pas du mode turbo comme celui des 386 et 486 mais bien d’une évolution de l’IDA (ou Intel Dynamic Acceleration) introduite avec la plateforme mobile Santa Rosa. Concrètement, il s’agit d’accélérer les opérations mono thread en augmentant la fréquence de l’unité d’exécution active. Ainsi, un Core 2 Duo T7100 à 1800 MHz peut temporairement passer à 2000 MHz si un seul des cores est actif. ![]() L’architecture Nehalem va beaucoup plus loin grâce à son circuit de gestion de l’énergie très évolué. Tant que le processeur reste dans son enveloppe thermique, un, plusieurs ou même tous les cores pourront être accélérés indépendamment selon leur charge de travail. Le mode turbo est bien entendu débrayable. Intel souligne que les gains liés à ce mode seront très variables. En effet, les modèles les plus puissants ont moins de marge de manœuvre étant donné leur TDP plus élevé. En outre, l’action du turbo étant dynamique, un système de refroidissement très performant donnera de meilleurs résultats qu’un autre plus basique. Il faudra bien entendu appréhender ce nouveau mode de fonctionnement lors de la mesure des performances… A titre indicatif, Intel annonce un gain de 10% maximum sur le plus puissant des Core i7. Il devrait atteindre jusqu’à 50% dans la version Mobile de Nehalem (Dual Core) après optimisation des moyens de production. Comme pour le monitoring du circuit de gestion de l’énergie, Intel a prévu un logiciel pour surveiller et contrôler ce mode turbo. SSE4.2 Les processeurs Penryn ont introduit le jeu d’instructions SSE 4.1, Nehalem continue dans se sens avec SSE 4.2. Ces instructions accélèrent la recherche et la comparaison de chaînes notamment dans le traitement XML, le comptage ou encore le calcul de CRC. ![]() Conclusion Au plus profond de l’architecture Nehalem, on retrouve un pipeline d’exécution proche de celui utilisé par l’architecture Core. Déjà très performant, il a fait l’objet de nombreuses optimisations avec comme fil conducteur l’augmentation des performances sans débauche de transistors et sans augmentation conséquente de la consommation. Très facile à implémenter, particulièrement intéressante au niveau des gains de performances et peu pénalisante en nombre de transistors et sur le plan thermique, la technologie HyperThreading fait son grand retour. Le pipeline et les unités annexes ont été adaptées afin d’augmenter le rendement : plus gros buffers, nouveaux TLB, caches plus rapides, cache de niveau 3, Loop stream detector, optimisation du prefetch et macrofusion plus aboutie. Le design qui est cette fois totalement modulaire introduit pour la première fois deux grandes entités dans le processeur. La partie Core regroupe les unités de traitement et la partie Uncore (inédite) contient le contrôleur QPI (I/O), le triple contrôleur mémoire, l’unité de gestion thermique et le cache L3. Intel a aussi porté une attention particulière à la gestion de l’énergie et en même temps à l’optimisation de la puissance disponible (mode Turbo) avec une unité aussi complexe qu’un 486 entièrement dédiée à ces tâches. Optimisée pour un maximum de puissance par watts et dans l’optique d’une large modularité (de 2 à 8 cores), l’architecture Nehalem nous semble avoir tous les atouts nécessaires pour délivrer des performances exceptionnelles aussi bien dans un portable que dans un serveur et sans contrepartie !!! Les tests s’annoncent d’emblée passionnants… |