[b][u]
Reprenant certains des fondements du Pentium M, la nouvelle architecture Intel Core qui nous préoccupe aujourd’hui vise à corriger la plupart des errements du NetBurst des Pentium 4. Et si Intel se base en partie sur le travail qu’il a déjà effectué avec les processeurs mobiles, ce n’est pas franchement un hasard. En effet, tandis que les Pentium 4 Northwood rencontraient déjà un certain succès dans le monde des PC de bureau, le fondeur s’est bien vite rendu compte que ceux-ci étaient totalement inadaptés aux ordinateurs portables. Il faut se souvenir que les portables Pentium 4 étaient généralement massifs, bruyants avec en prime une autonomie déplorable ! Autant de raisons qui avaient poussé Intel à plancher sur le Banias, le premier processeur pensé dès le départ pour consommer peu, s’échauffer modérément tout en délivrant des performances équivalentes si ce n’est supérieures à ses pairs. Héritier des Pentium M, la micro-architecture Intel Core introduit nombre d’optimisations destinées à offrir le meilleur ratio performance/consommation possible. D’après les services marketing du groupe, l’architecture Intel Core s’illustre grâce à cinq technologies ou vecteurs que nous allons évoquer dans les lignes qui suivent. Mais avant toute chose, soulignons que contrairement aux Pentium 4, les processeurs Intel Core 2 Duo profitent d’une architecture à pipeline court : seulement 14 pipelines contre 31 pour les Prescott
[center]http://img.clubic.com/photo/000000F000262928.jpg
Intel core: un projet bien ambitieux[/center]
On commence par la technologie Intel Wide Dynamic Execution qui se pose en héritière du moteur d’exécution dynamique des Pentium Pro, Pentium II et autres Pentium III. L’idée est ici de rendre chacun des curs d’exécution littéralement plus large afin de lui permettre de récupérer, répartir, exécuter et retourner jusqu’à quatre instructions par cycle d’horloge contre un maximum de trois instructions pour les Pentium M et Pentium 4. Intel en profite au passage pour augmenter la taille du cache dédié au stockage des instructions alors que les algorithmes de prédiction de branchement sont annoncés comme plus efficaces. Concrètement, les prédictions se font à un rythme d’une par cycle d’horloge, contre une prédiction tous les deux cycles d’horloge sur les Pentium 4 et Pentium M.
Au-delà de ces nouveautés, la grande innovation introduite par l’architecture Intel Core est à n’en pas douter la « macrofusion ». Derrière ce terme barbare se cache un procédé visant à réduire les temps d’exécution et pour bien saisir sa portée, il nous faut rappeler un concept de base commun à nombre de processeurs. Dans le cadre de l’exécution d’un programme, ou plus particulièrement d’une fonction bien précise, le processeur reçoit diverses instructions x86. Avant d’être exécutées, celles-ci sont pré-décodées, triées et enfin décodées avant d’atteindre les ALU, unités arithmétiques, qui auront finalement la charge de les exécuter. Avec la macrofusion Intel propose de combiner, en amont, des paires d’instructions en une seule instruction interne, ou micro-op, pendant le décodage afin de gagner en efficacité. Du coup notre décodeur d’instructions, qui est capable, rappelons-le, de traiter un maximum de quatre instructions par cycle, se voit en mesure de récupérer un total de cinq instructions depuis la file d’attente, deux instructions étant alors fusionnées et traitées par un seul et même décodeur. Pour l’heure, un petit nombre d’instructions prédéfinies profite de ce traitement de faveur comme, et ce n’est qu’un exemple parmi d’autres, une comparaison suivie d’un saut conditionnel.
[center]http://img.clubic.com/photo/000000DC00310102.jpg[/img][img]http://img.clubic.com/photo/000000DC00310103.jpg
Fonctionnement avec et sans macrofusion[/center]
La nouvelle micro-architecture d’Intel profite également de la fusion des micro-ops, ou micro opérations, une fonction introduite avec les Pentum M et étendue aux instructions SSE depuis le Yonah ou Intel Core Duo. Typiquement, les processeurs récents qui fonctionnent en Out-Of-Order éclatent les macro-instructions x86 en opérations basiques avant que celles-ci n’atteignent le pipeline. En fusionnant des micro-opérations provenant d’une même macro-op, on réduit le nombre de micro-ops qu’il faut exécuter tout en améliorant ce qu’on appelle le scheduling, c’est-à-dire l’agencement des tâches au sein du processeur. Intel indique qu’avec l’architecture Core le nombre de micro-ops qu’il est possible de fusionner est étendu, sans toutefois donner plus de précision.
Avec le Pentium 4, Intel avait encore étendu le vénérable jeu d’instructions x86 en proposant des instructions 128-bits dites SSE (Streaming SIMD Extension). Spécialement conçues pour répondre aux besoins des programmes multimédias, les instructions SSE restent d’actualité avec l’Intel Core. C’est donc fort logiquement que la dernière micro-architecture d’Intel gère les jeux d’instructions SSE, SSE2 et SSE3 tout en inaugurant de nouvelles instructions regroupées sous la bannière SSE4. Ces dernières sont au nombre de huit et se concentrent sur la vidéo. Non content d’étendre le spectre de ses instructions SSE, Intel propose avec son architecture Core l’Advanced Digital Media Boost. Il s’agit ici d’augmenter significativement la vitesse de traitement des instructions SSE. Jusqu’à présent, les instructions SSE s’exécutaient au rythme d’une instruction tous les deux cycles d’horloge. Avec la micro-architecture Intel Core, le fondeur se propose tout simplement de multiplier par deux le débit en faisant en sorte qu’une instruction 128-bit SSE s’exécute en un seul et même cycle d’horloge. Pour y parvenir, Intel s’appuie dorénavant sur trois unités arithmétiques, contre deux pour le Core Duo, et toutes sont capables de traiter les instructions SSE en 128 bits donc.
[center]http://img.clubic.com/photo/000000DC00310133.jpg
Les possibilités offertes par l’Advanced Digital Media Boost[/center]
Du côté de la mémoire cache, l’Intel Core est pourvu de la technologie Advanced Smart Cache déjà étrennée par le processeur Yonah autrement connu sous le nom d’Intel Core Duo. Indispensable pour un processeur double-cur, cette fonction découle du SmithField ou Pentium D. Il faut en effet se souvenir que lorsqu’Intel lançait le Pentium D, son premier processeur double-cur, chacun des curs disposait alors de sa propre mémoire cache de second niveau sans pour autant qu’une communication entre les mémoires caches ne soit possible sauf à passer par le chipset et à engorger le bus système. Dorénavant, la mémoire cache de second niveau est partagée entre les curs, et ce, de manière dynamique. Ainsi, en fonction de la charge de l’un des deux curs, le processeur peut décider d’allouer 70 % de la mémoire cache au premier cur et 30 % au second tout en réajustant en permanence cette répartition. Mieux, si chacun des curs a besoin des mêmes données en cache, l’architecture Intel Core ne stockera celles-ci qu’une seule fois évitant de gaspiller de la place comme avec les Pentium D ou même les Athlon 64 d’AMD. Enfin, lorsqu’un seul des deux curs a un besoin impérieux de mémoire cache de second niveau, l’Advanced Smart Cache peut lui attribuer la totalité du cache ce qui n’est pas possible sur les architectures concurrentes où, dans un cas de figure semblable, la mémoire cache du second cur ne sert finalement à rien. Qui plus est, Intel annonce une bande passante maximale de 10,4 Go/s pour la mémoire cache de second niveau.
[center]http://img.clubic.com/photo/0000014000310101.jpg
Diagramme de l’architecture Intel Core 2 Duo[/center]
Outre l’architecture de la mémoire cache, les ingénieurs d’Intel se sont également penchés sur les accès mémoire afin d’offrir une bande passante et des performances supérieures. Si l’Intel Core est toujours dépourvu d’un contrôleur mémoire intégré, qui reste donc l’apanage des seuls Athlon 64, Intel propose une fonction qu’il appelle « Memory Disambiguation ». L’idée est ici d’améliorer l’efficacité de traitement dans le désordre des instructions en raccourcissant les délais d’accès aux données stockées en mémoire. Pour y parvenir, les unités d’exécution ont désormais la possibilité de charger, et ce, de manière spéculative, les données requises par les instructions sur le point de s’exécuter, avant même que toutes les instructions précédentes ne se soient exécutées. La chose est un rien complexe, mais il s’agit en gros de s’assurer que les données sont là où et quand les cores d’exécution en ont besoin. Dans un processeur comme le Pentium 4, lorsque le CPU remet en ordre les instructions en attente, il ne peut pas reprogrammer les opérations que l’on qualifie de load (chargement de données pour les instructions sur le point de s’exécuter) avant les opérations de store (stockage des instructions), car il pourrait violer certaines dépendances de données. Intel utilise donc divers algorithmes pour évaluer si un load peut être exécuté avant le store précédent afin d’offrir le plus haut niveau de parallélisme alors qu’une unité entière est dédiée aux opérations load et une autre aux opérations store dans le processeur.
[center]http://img.clubic.com/photo/0000014000310105.jpg
Le die des core2duo[/center]
L’architecture Intel Core se dote, en plus de la fonction dite de « Memory Disambiguation », d’un plus grand nombre de prefetchers. Rappelons que les prefetchers ont pour rôle de charger certaines données (ou instructions) avant que celles-ci ne soient requises par le processeur pour les placer dans le cache du CPU afin d’accélérer encore la rapidité d’exécution globale. Intel utilise dorénavant deux prefetchers par cache L1 et deux prefetchers pour le cache L2, soit un total de huit prefetchers pour un processeur double-coeur. En augmentant le nombre de load qui peuvent s’exécuter depuis la mémoire cache plutôt que la mémoire système participe à réduire les temps de latence et donc à améliorer les performances.
Bien que nous n’ayons pas encore tous les détails physiques des processeurs Intel Core 2 Duo, sachez que ceux-ci profitent du procédé de fabrication en 65 nm déjà étrenné par les Pentium D de la série 900 (Presler). Double-cur, les Core 2 Duo embarquent 4 Mo de mémoire de second niveau partagés entre chaque cur. De plus, chacun des curs embarque 32 Ko de mémoire cache de premier niveau pour les instructions et 32 Ko pour les données. La latence du cache L1 s’élève à trois cycles. Côté fréquence de fonctionnement, les Core 2 Duo disposent d’un bus système de 1066 MHz (4x 266 MHz) et pour l’instant le modèle E6700 atteint la fréquence de 2,66 GHz alors que la déclinaison Extreme est cadencée à 2,93 GHz.
Les Core 2 Duo reprennent qui plus est à leur compte nombre des améliorations passées d’Intel au niveau des « T’s ». On a donc droit au support de VT, la technologie de virtualisation, à la prise en charge EM64T pour les environnements 64 bits ou encore au Execute Disable Bit. En revanche, l’HyperThreading n’est pas de la partie du moins avec les Core 2 Duo. L’EIST qui régule la fréquence et le voltage du processeur est toujours d’actualité et du côté des fonctions de gestion d’énergie, Intel clame à qui veut l’entendre que son Conroe offre une meilleure granularité puisqu’il est capable de couper la plupart des unités de la puce, même en pleine charge. Nous aurons probablement l’occasion de revenir sur ces petits détails lors de prochains tests. Sachez que physiquement les Core 2 Duo se présentent au format Socket LGA775, Intel n’ayant pas jugé utile de changer de socket, ce qui est en soi plutôt une bonne nouvelle.
http://www.configspc.com/images/core2duo.gif