Architecture Core : Intel dévoile sa ' 9e ' génération x86
La nouvelle génération de processeurs x86 sera déclinée pour plates-formes mobiles, PC et serveurs. Elle entend concilier performance maximale et consommation électrique minimale.
01net.
le 10/08/06 à 07h00
Dévoilée à l'occasion de la dernière conférence développeurs du printemps 2006, Intel Core, la nouvelle architecture processeur d'Intel représente ce qu'on pourrait qualifier de neuvième génération de processeurs x86 de la marque. Un
peu d'histoire. Le Pentium inaugurait en son temps la génération P5 (dans la lignée des célèbres 8086,80286, i386 et autres i486), les Pentium II, III et Pro, la génération P6, les Pentium 4, Pentium D et autres Xeon, la génération P7 dite
' NetBurst ', et le Pentium M, au c?"ur de Centrino, la génération P8, déclinée en versions Banias (Core Solo, monoc?"ur) et Yonah (Core Duo, double c?"ur).
La caractéristique la plus marquante d'Intel Core est son architecture 64 bits avec jeu d'instructions EM64T et technologie de virtualisation VT intégrée, contrairement à celles des Core Solo et Core Duo, toujours 32 bits. De
même, les précédentes architectures Intel x86 traitaient déjà des données sur 128 bits, notamment en présence d'instructions SSE, mais ne disposaient que de chemins de données internes de 64 bits de large. Il leur fallait donc traiter deux
opérations sur 64 bits pour finaliser une instruction SSE. L'architecture Core, avec son Advanced Digital Media Boost, met en place un véritable chemin de données interne de 128 bits de part en part.
Découpler lecture et écriture pour accélérer les traitements
Autre évolution notable, bien que l'ensemble des processeurs Intel disposent, depuis le Pentium Pro, d'un mécanisme ' out of order engine ' permettant au processeur d'exécuter les
instructions non interdépendantes les unes des autres dans n'importe quel ordre, les instructions liées à la mémoire sont généralement exécutées selon la séquence originale codée dans le programme, dans un souci évident d'éviter les problèmes
d'incohérence des données. Avec Core, Intel va encore plus loin et inaugure un mécanisme dit de ' Memory Disambiguation ', lequel vise à localiser dans le programme d'origine l'ensemble des instructions
mémoire pouvant être exécutées indépendamment les unes des autres.
Il s'agit notamment de découpler les opérations de lecture en mémoire de celles d'écriture, quand cela est possible, afin d'accélérer les traitements. Toujours en matière de gestion des instructions, Core exploite à présent un
pipeline d'une profondeur ' raisonnable ' de 14 niveaux, à comparer aux 31 de celui du Pentium 4 Prescott. De quoi réduire l'impact de certains branchements conditionnels qui imposent un
' vidage ' du pipeline, très consommateur de ressources dans les architectures basées sur un réseau de pipelines très profond telles que celle du Pentium 4.
Même si l'architecture Core représente une évolution notable du design des Pentium M et Core Duo, elle reprend à son compte ce qui a fait le succès de ces derniers. Ainsi, le cache L2 On-Die du processeur est partagé entre les deux
c?"urs avec allocation dynamique. Autrement dit, dans l'hypothèse d'un cache L2 d'une taille de 2 Mo, un c?"ur pourra, selon ses besoins, accaparer 1,5 Mo et laisser les 512 Ko restants au second c?"ur. Lequel pourra
dynamiquement requérir plus tard que la taille du cache L2 qui lui est attribuée soit revue à la hausse. Mieux, ce cache partagé exploite également un système de double unité de ' prefetch ',
c'est-à-dire de préchargement intelligent des données depuis la RAM principale.
Si l'un des deux c?"urs demande l'accès à une donnée en RAM, qui sera donc chargée dans le cache L2, cette donnée, stockée une seule fois, sera immédiatement disponible pour le second c?"ur. Core ne s'arrête pas là car elle
intègre en plus, dans chacun des c?"urs, deux unités de prefetch relatives aux données et une autre relative aux instructions. Soit au total, huit unités de préchargement par processeur double c?"ur.
Fusionner deux instructions en une seule
Parallèlement à ce mécanisme, le concept de Macro Fusion d'instructions a également été repris. Il s'agit de fusionner deux micro-instructions x86 en une seule dans un souci de performance et de réduction de la consommation d'énergie.
La nouvelle micro-instruction ainsi créée nécessite en effet mécaniquement moins d'énergie pour son exécution que celle requise pour les deux micro-opérations qu'elle réunit. Attention toutefois, si les instructions de branchement (JNE pour jump if
not equal) peuvent, par exemple, être fusionnées avec celles de comparaison (CMP), ce n'est pas le cas avec toutes les autres instructions.
Dans le détail, Core peut charger dans sa file d'attente jusqu'à cinq instructions par cycle d'horloge, même si le c?"ur n'est capable d'en décoder que quatre, toujours en un cycle (au cas où, justement, deux d'entre elles
pourraient être fusionnées). Pour ce faire, l'architecture Core dispose d'un planificateur de ressources à cinq ports, dont trois sont utilisés pour envoyer les micro-instructions aux unités de traitement arythmétique et logique (UAL), elles-mêmes
spécialisées (ici dans l'addition de nombres flottants FAdd, là dans leur multiplication FMul, etc.). Les deux autres ports étant dédiés aux opérations de lecture (LOAD) et écriture (STORE) en mémoire, chacun intégrant sa propre unité de génération
d'adresses mémoire.
La nouvelle architecture Intel se veut donc synonyme de performance maximale (4 micro-opérations) par cycle d'horloge, mais elle est aussi donnée pour une consommation électrique minimale (lire encadré). Un tour de force si la
chose se vérifie. Il faut dire qu'Intel mise lourdement sur Core. Il compte bien reproduire avec elle ce qu'il a fait avec son architecture NetBurst, adaptée à toutes les plates-formes, depuis celles pour PC portables (Mobile Pentium 4) jusqu'à
celles pour serveurs SMP (Xeon MP), en passant par celles des PC de bureau. Intel Core adoptera donc les mêmes déclinaisons avec, notamment, les processeurs baptisés Conroe, Woodcrest et Merom (disponibles dès juillet pour les premiers Conroe).
Intel estime que cette architecture représentera 40 % de ses ventes dès le début de 2007.
L'architecture Core prévoit un partage dynamique de la mémoire cache de niveau 2 entre les coeurs, favorisé par une disposition en miroir parfaitement symétrique de ces derniers. Chaque coeur est capable de charger cinq
micro-instructions par cycle d'horloge, d'en décoder et d'en exécuter quatre.
Réduire la consommation d'énergie
En concevant sa nouvelle architecture, Intel avait, outre la performance, un autre objectif : réduire la consommation électrique du processeur et, par voie de conséquence, son enveloppe thermique. Des points qui lui ont posé
tant de problèmes par le passé, que ce soit avec ses Pentium 4 ou avec ses Xeon. Core introduit pour ce faire l'Advanced Power Gating. Ce mécanisme permet au processeur de désactiver certaines composantes de chacun de ses c?"urs si elles se
révèlent inexploitées, par exemple, les unités de traitement en virgule flottante si le programme manipule exclusivement des nombres entiers.
Le constructeur dédouble également certains des bus internes des c?"urs (ex. : le bus interne 128 bits divisé en deux bus de 64 bits), afin de pouvoir désactiver dynamiquement la partie inexploitée (ex. : si
l'on ne traite aucune donnée de type SSE 128 bits). Mieux, l'architecture Core introduit un mécanisme de communication entre le processeur et son environnement immédiat quant aux aspects énergétiques. Voilà qui permet, par exemple, une bonne
intelligence entre le régulateur de tension de l'alimentation et les besoins du processeur à un instant t.
voir
ftp://download.intel.com/technology/architecture/new_architecture_06.pdf
Livre blanc Intel sur l'architecture Core.
http://www.intel.com/vpro/pdfs/vpro_brochure.pdf
Documentation Intel sur la plate-forme PC d'entreprise Vpro à base Core.