Newsletter

Abonnement
Désabonnement


Articles en rapport

Home Tests Dossiers Sandy Bridge : la théorie...
Erreur
  • JoomSEF: Cache file is corrupted.

Sandy Bridge : la théorie...

Imprimer Envoyer
Note des utilisateurs: / 0
MauvaisTrès bien 
Écrit par Pascal Thevenier   
Lundi, 03 Janvier 2011 22:47

Après Netburst qui semble avoir duré une éternité, Intel a introduit l’architecture Core, puis Nehalem. Depuis plusieurs années, les « Tick » et « Tock » s’enchainent avec respectivement un nouveau procédé de gravure et une nouvelle architecture. Aujourd’hui, Intel franchit une étape architecturale et Sandy Bridge est donc un « Tick ». Au fil des années, le constructeur a placé de plus en plus de fonctionnalités dans ses processeurs pour ensuite les intégrer directement dans le die. Ainsi, les « Westmere » se composent d’un die en 32 nm accompagné d’un contrôleur mémoire avec un contrôleur graphique en 45 nm, montés côte à côte sur un même support... Avec sa nouvelle architecture Sandy Bridge, Intel intègre cet ensemble directement dans le die ! Mais il ne s’agit pas de la seule avancée…




Petits et grands sauts…

L’évolution est faite de petites et de grandes avancées. Soit dit en passant, certaines « petites » avancées sont parfois plus grandes qu’elles ne paraissent aux yeux des utilisateurs... Un petit retour en arrière permet de se rendre compte de certains fils directeurs. Les Core 2 Duo ont été commercialisés en 65 nm. Grâce à la gravure en 45 nm et à la réduction de la taille du die, les premiers Core 2 Quad étaient composés de 2 dies de Core 2 Duo montés dans un même support. Avec l’architecture Nehalem, Intel a réalisé son premier processeur Quad Core d’un seul block (mono die) avec dans la foulée, l’intégration du contrôleur mémoire. Le passage à la gravure en 32 nm introduit avec les Westmere (Clarkdale et Arrandales) a permis à Intel d’ajouter un IGP en 45 nm dans le packaging.



Sandy Bridge

L’architecture Sandy Bridge est donc une nouveauté qui repose sur un processus de gravure déjà utilisé (32 nm). Les processeurs Core i5 et i7 de la série 2000 embarquent un total de 995 millions de transistors répartis sur 216mm². A tire comparatif, un Core i7 Lynnfield compte 774 millions de transistors sur une surface de 296 mm². Quant au Core i5 Clarkdale, il se compose de 382 millions de transistors en 32 nm sur 81 mm² pour le processeur (NDLR : attention, il s’agit d’un simple Dual Core) et 177 millions de transistors en 45 nm pour l’IGP sur 114 mm². Les Sandy Bridge ont donc 221 millions de transistors de plus que les Lynnfield, soit bien plus que le « northbridge » intégré des Westmere.


Maintenant que le contrôleur mémoire et le contrôleur vidéo se trouvent dans un même die, un élément n’a plus lieu d’être : leur bus de liaison. Dans les Sandy Bridge, la communication entre les différentes entités passe par un « ring bus » de 256 bits fonctionnant à la même fréquence que le processeur. Il relie les 4 cores d’exécution, le core graphique, le cache L3 (appelé à présent LLC ou Last Level Cache) et l’« uncore » (devenu System Agent). Cette approche est particulièrement intéressante. En effet, face à une augmentation des différentes unités (NDLR : 4 cores actuellement mais Intel ne compte pas en rester là) et l’intégration du cœur graphique, l’accès au cache L3 dans une architecture comme Nehalem aurait entrainé une complexité importante des liaisons ainsi que des pertes de performances. Le « ring bus » déjà utilisé par ATI sur d’anciennes générations de Radeon (Radeon HD 2900 XT) ou dans les réseaux « Token Ring » présente des avantages. Il permet facilement d’ajouter des entités dans la boucle et autorise une communication rapide (un saut par cycle) entre les éléments. A ce propos, Intel précise que cet anneau est unidirectionnel et comporte 4 voies différentes (correspondant à 4 types d’informations : data, request, aknowledge, et snoop). Assez curieusement, Intel explique que la communication passe par le chemin le plus court, ce qui est en opposition avec un bus unidirectionnel…


La seconde grande nouveauté vient du jeu d’instructions AVX ou Advanced Vector Extensions de type SIMD (Single Instruction, Multiple data). Il s’agit d’un set de fonctions vectorielles en 256 bits par « opposition » aux différents SSE limités au 128 bits. Les instructions AVX devraient accélérer les calculs en virgule flottante utilisés dans les traitements vidéo, les calculs de rendu 3D, l'application de certains filtres de type HDR, l’IDTC (inverse discrete cosine transform), etc. L’intégration des fonctions AVX a un impact sur les registres nécessaires et les cores d’exécution ont subi des améliorations sur lesquelles nous reviendrons. Pour profiter des gains de performances liés à AVX, il faudra impérativement disposer de Windows 7 avec le Service Pack 1 et attendre des applications conçues pour en tirer parti…


La dernière avancée majeure de Sandy Bridge est le « puissant » core graphique intégré. L’IGP des Sandy Bridge est une évolution de l’Intel HD Graphic introduit avec Westmere. On retrouve jusqu’à une douzaine d’unités de calcul de type vect4 comme dans les Radeon HD 6900. Il ne s’agit cependant pas d’un simple « die shrink » étant donné que le nouvel IGP supporte à présent DirectX 10.1 (contre DirectX 10). Le passage au 32 nm a cependant permis à Intel de booster les fréquences. De 900 MHz au maximum pour les Westmere, la fréquence maximale de la puce graphique grimpe à 1300 MHz dans certains Sandy Bridge. Intel a curieusement prévu deux variantes du core graphique : HD 3000 pour les Core i7 2000K et HD 2000 pour tous les autres. L’HD 3000 peut fonctionner à 1350 MHz et embarque 12 unités de calcul tandis que l’HD 2000 est limité à 1100 MHz pour ses 6 unités de calcul. Ce choix est des plus étranges dans la mesure où les « Core K » (débridés et prévus pour l’overclocking) se retrouveront toujours dans des machines avec une bonne grosse carte graphique… Et donc désactivés ! Toujours au chapitre des curiosités et complications, l’IGP peut s’overclocker mais uniquement grâce au chipset H67. Les cartes mères P67 sont conçues pour overclocker le processeur…


Des parties revues…

Le cache L3 rebaptisé LLC est segmenté en fonction du nombre de cores. Ainsi, un Core i7 2600K avec 4 cœurs voit son cache découpé en 4 blocs de 2 Mo. Curieusement, aucune zone du LLC n’est dédiée à la puce graphique. Ce cache aurait selon Intel un débit de 96 Go/s par segment pour un total de 384 Go/s car les blocs sont accessibles simultanément. Avec le logiciel Latency.exe (anciennement présent avec CPU-Z), nous avons mesuré une latence de 26 cycles sur le cache L3 du Core i7 2600K contre 36 cycles sur un Core i7 870, ce qui est assez impressionnant.


Le System Agent de Sandy Bridge correspond à la partie Uncore de Nehalem. Il contient toujours le contrôleur PCI-Express 2.0 (16 lignes ou 2 x 8 lignes), le contrôleur mémoire double canal DDR3-1333, le moteur graphique, le DMI et le circuit PCU (Power Control Unit). Ce dernier optimise l’utilisation des unités au niveau énergétique notamment l’arrêt des parties inutilisées. A noter au passage que l’alimentation électrique des Sandy Bridge est séparée en trois parties : les cores avec le cache LLC, le processeur graphique et le System Agent.

La partie la plus « visible » de ces révisions est certainement le support LGA 1155 qui remplace le LGA1156. Le format du processeur ne change pas (37,5 x 37,5 mm), pas plus que l’entraxe pour la fixation du système de refroidissement mais le nouveau format est totalement incompatible avec l’ancien en raison de la position des détrompeurs…


Par rapport à Nehalem, la fréquence du DMICLK (le « FSB » dans les anciennes générations de processeurs) est revue à la baisse de 133 MHz à 100 MHz. De plus, toutes les autres fréquences sont calées de manière synchrone sur cette fréquence de base notamment celle du PCI-Express mais aussi celles des interfaces PCI, SATA et USB. Toute augmentation de la fréquence DMICLK se reporte directement sur les autres sans possibilité de changer les ratios. Voilà qui n’est pas sans rappeler le bon vieux 440BX des Pentium II ! Jusqu’à présent, Intel utilisait un fonctionnement asynchrone autorisant une augmentation au niveau DMICLK tout en conservant des valeurs normalisées sur les autres bus. Intel explique que cette nouvelle approche permet d’éliminer les problèmes de latences liés au mode asynchrone. Cette explication nous laisse perplexes dans la mesure où de toutes manières, le bus PCI est cadencé à 33 MHz soit 1/3 du DMICLK. De plus, pour gérer de la DDR3-1333, il faut une base de 133 MHz… Il résulte de ces nouveaux choix un multiplicateur exceptionnellement élevé de 34 sur le Core i7 2600K. Ce dernier monte jusqu’à 38 en mode Turbo !



Turbo Boost 2 : CPU et GPU

Intel a introduit le mode Turbo avec l’architecture Nehalem. Le principe de base est simple : augmenter la fréquence d’un ou plusieurs cores tant que la totalité du processeur n’est pas sollicitée à 100%. Vu sous un autre angle, le Turbo fonctionne tant que le TDP n’est pas dépassé… Avec Sandy Bridge, Intel utilise une approche beaucoup plus agressive connue sous le nom de code interne « HUGS » pour Hurry Up Go Sleep. Bref, dépêche toi et retourne te coucher ! Le Turbo 2 permet ainsi de dépasser le TDP en profitant de l’inertie thermique. Si le processeur est « froid », il peut dépasser le TDP jusqu’à 25% avant d’atteindre une température fixée. A ce moment, si le processeur est toujours en charge, les fréquences seront revues à la baisse.


Le Turbo 2 agit aussi sur la puce graphique et le boost s’applique soit au processeur soit au processeur graphique ou même aux deux. Il reste à savoir, dans le cadre d’un jeu par exemple, s’il est préférable de booster le CPU ou le GPU… Dans tous les cas, la présence de la puce graphique dans le die lui-même permet à la Power Control Unit de gérer au mieux les montées en fréquence.



Gérer les 256 bits de l’AVX…

Les cores d’exécution ont fait l’objet de différentes optimisations et de plusieurs modifications des registres pour prendre en charge le jeu d’instructions 256 bits AVX. Côté « Front End » (zone d’entrée dans l’unité de traitement), Intel a ajouté un cache pour 1500 µOpérations. Les instructions passent par le Fetch et le Pre Decode pour se présenter dans l’Instruction Queue. En d’autres mots, le processeur va chercher les instructions du programme (fetch), réalise un décodage sommaire puis les place dans une file. Les unités de décodage voient leur travail allégé par le « 1,5K µOP cache » qui évite les décodages répétitifs. Il s’agit d’une nouveauté qui peut être assimilée à un cache L0.


Jusqu’à ici « ordonnées », les instructions entrent ensuite dans la partie OOO (Out-Of-Order). C'est-à-dire que les instructions ne sont plus agencées selon l’ordre du programme mais de manière à remplir au mieux les différents ports (ou pipelines). Grosso modo, tout est mélangé pour un traitement optimal mais doit pouvoir être replacé dans le bon ordre (grâce aux ROB ou Reorder Buffer) avant sa sortie (le « back end »). Avant de continuer, il faut savoir que le nombre de registres liés à une architecture est limité : 8 registres architecturaux en 32 bits et 16 en 64 bits. Un processeur en comporte beaucoup plus ; ils sont connus sous le nom de registres physiques. L’exécution OOO jongle entre les registres architecturaux et physiques pour augmenter les performances ainsi que le rendement du processeur.


Il existe différentes approches pour réordonner. Les architectures Core et Nehalem utilisent un ROB dont les résultats des µopérations sont associés à des informations sur les registres architecturaux et physiques et un RRF (Retirement Register File). Dans l’architecture Sandy Bridge (64 bits) qui introduit l’AVX en 256 bits, comme dans Netburst (32 bits) qui étrennait le set SSE en 128 bits, Intel utilise un PRF (Physical Register File) et les ROB contiennent seulement une référence vers ce fichier. Cette dernière approche est nettement plus adaptée aux traitements larges (128 bits à l’époque des Pentium 4 et 256 bits pour l’AVX de Sandy Bridge).


Entre le « front end » et le « back end », Sandy Bridge dispose de six ports comme Nehalem. Les ports 0, 1 et 5 sont les ALU et FPU (comme dans Nehalem et Core). Ici, elles exécutent aussi les instructions AVX. Dans les architectures précédentes, le port 2 s’occupait du « load » et le port 3 du « store ». Avec Sandy Bridge, ces ports assurent tous les deux les fonctions « load » et « store ». Ce renforcement des capacités load/store est une nécessité pour la manipulation des données issues d’AVX. Le port 4 reste dédié au stockage des donnés.


Conclusion

Par rapport aux écarts évidents entre Core et Nehalem, les différences entre Nehalem et Sandy Bridge semblent moindres. L’introduction du ring bus est pourtant une avancée capitale pour une architecture multi cores évolutive. Il permet une modularité beaucoup plus grande de la puce et donne un accès au cache L3 à la puce graphique. Les aménagements réalisés au niveau des registres ainsi que des ports load/store sont en adéquation avec l’arrivée du jeu d’instructions AVX 256 bits. Le Turbo Boost 2 est aussi une belle évolution et il devrait surtout se montrer intéressant dans le monde mobile où l’IGP sera plus souvent utilisé que dans un desktop (accompagné d’une carte graphique). L’approche « HUGS » qui consiste à pousser le processeur le plus rapidement à son maximum pour des temps de traitement plus courts nous plait beaucoup. Seule ombre au tableau, l’overclocking passe à présent uniquement par une augmentation du multiplicateur permise sur les processeurs de la série K…

Sandy Bridge : la pratique !

Mise à jour le Mardi, 22 Février 2011 15:48