Dans ce chapitre, nous allons examiner les particularités de l'architecture Core 2 qui représente entre fin 2006 et fin 2007, l'architecture la plus performante pour les PC. Nous parlerons également de l'architecture K10 chez AMD, successeur du K8.
L'architecture Netburst (Pentium 4) a été conçue dans l'optique d'améliorer les performances de l'architecture du Pentium III. Une rapide étude montre que plus le pipeline est profond, plus on peut monter en fréquence.
L'augmentation de la fréquence (et donc la profondeur du pipeline) couplée à la diminution de la finesse de gravure était sensée amener Intel à produire un processeur capable d'atteindre les 7 Ghz : le Tejas avec 45 étages de pipeline.
Si le premier Pentium 4 (architecture Willamette) ne fut pas un franc succès, en revanche son successeur le Northwood permit grace à des fréquences importantes (> à 2,8 Ghz) et un cache L2 de plus grande taille (512 ko au lieu de 256) de trouver le bon compromis pour un processeur performant.
Le successeur du Northwood, le Prescott, bien que doté d'un cache L2 de 1 Mo (double du Northwood) et d'un pipeline de 31 étages se montra parfois moins performant que le Northwood à fréquence égale. En outre, la dissipation thermique du Prescott était très importante et elle aurait augmenté avec l'allongement du pipeline et la montée en fréquence. Netburst aboutissait donc à une impasse.
En parallèle de l'architecture Netburst, Intel a développé l'architecture Mobile (Pentium M, Banias, 2003), dérivée de P6, et qui montra de sérieux atouts en termes de performances et d'économie d'énergie. L'architecture Mobile a donc conduit Intel à suivre deux voies différentes : l'une pour les portables et l'autre pour les ordinateurs de bureau et serveurs.
A l'automne 2006, lors de l'IDF (Intel Developper Forum), Intel a annoncé l'abandon de l'architecture Netburst au profit de l'architecture Core.
L'architecture Core est une nouvelle architecture performante qui fait la synthèse des architectures P6 et Netburst, mais est plus proche de P6 que de Netburst. Elle a été conçue pour s'adpater aux différents segments du marché : ordinateurs portables, de bureau et serveurs.
L'architecture Core (anciennement Merom) est aussi appelée NGMA pour Next Generation MicroArchitecture.
Fort de son succès avec l'architecture Mobile, Intel a enfourché un nouveau cheval de bataille qui consiste à vanter les mérites des processeurs performants et économes (en énergie = Watt per Instruction).
Les images suivantes sont issues de l'article de David Kanter sur le site RealWordTech.
Architecture Netburst (Pentium 4)
Architecture P6 (Pentium M)
Architecture Core
On rappelle que les instructions assembleur x86 sont qualifées de macro-opérations et qu'elles sont traduites en interne en 1 ou plusieurs micro-opérations. Par exemple une instruction de la forme ADD [mem],EAX
sera traduite en 3 micro-ops :
load R1,[mem]
addregs R1,eax
store [mem],R1
Depuis l'architecture Banias, on réalise de la micro-fusion en ne faisant qu'une seule opération des deux premières.
Comme on le voit sur le schéma précédent, Core dispose :
A ces décodeurs s'ajoute un mécanisme dit de macro fusion qui consiste à fusionner deux instructions x86 en une seule qui sera ensuite traduite par 1 micro-op. Il s'agit notamment des instructions de comparaison suivies d'un saut (caractéristiques des instructions if-then-else).
MOV EAX,[MEM1]
CMP EAX,[MEM2]
JNE else --> CMPJNE EAX, [MEM2], else
Au final, Core est capable de décoder au maximum 5 instructions par cycle d'horloge (4 + 1 instruction macro fusionnée quand cela est possible). On estime que la macro fusion autorise une diminution d'environ 10% des micro-op.
La prédiction a été améliorée de manière à booster les performances de l'architecture Core.
Utilisation du Loop Detector
lors d'une boucle seule la dernière itération conduit à exécuter une partie de code différente de celle des n-1 autres itérations. La table BHT (Branch History Table) ne mémorise pas assez d'informations pour prédire correctement la fin de la boucle au dela d'un certain nombre d'itérations et en général lors de la dernière itération on réalise une mauvaise prédiction de branchement. Le Loop Detector a pour but de remédier à ce problème en déterminant qu'elles instructions correspondent à des terminaison de boucles
Core reprend les caractéristiques du Yonah mais en étant plus performant (amélioration en largeur).
Yonah | Netburst | Core | |
Traitement d'éviction | 3 micro-op/cycle | 3 micro-op/cycle | 4 micro-op/cycle |
Taille du ReOrder Buffer | 126 | > 40 | 96 |
Taille de la Reservation Station | 24 | 46 | 32 |
Un problème communément rencontré lors de l'exécution dans le désordre, consiste à déterminer quelles données peuvent être chargées au préalable et non pas au moment ou on en a besoin. C'est ce que l'on qualifie de levée des ambiguités de la mémoire (Memory Disambiguation) qui consiste à déterminer si un load et un store possèdent la même adresse. Cette technique peut amener à une amélioration de 40% sur certains tests.
Sur l'exemple suivant, LOAD Y (instruction 2) ne peut intervenir avant STORE Y (instruction 1) car sinon, la valeur de Y ne sera pas à jour. Par contre, LOAD X (instruction 4) peut être effectuée à n'importe quel moment :
1 STORE Y
2 LOAD Y
3 STORE W
4 LOAD X
L'architecture Core possède 3 ports de répartition qui alimentent :
On note donc une augmentation d'UE qui sont en outre mieux organisées. De plus, Core est capable de traiter les opérations SSE 128 bits en 1 seul cycle, alors que Netburst doit s'y prendre à deux fois.
Instructions par cycle | Netburst | Mobile | Core | K8 |
x86 (entiers) | 3 | 2 | 3 | 3 |
SSE (entiers) | 1 8 int × 16 bits |
1 8 int × 16 bits |
3 24 int × 16 bits |
1 8 int × 16 bits |
x87 (virgule flottante) | 1 | 2 | 2 | 2 |
SSE (virgule flottante) | 1 2 flt × 64 bits |
1 2 flt × 64 bits |
2 4 flt × 64 bits |
1 2 flt × 64 bits |
En terme de performances, les ALU sont associées à 3 unités SSE de 128 bits capables donc de traiter 3 opérations SSE par cycle, ou 12 instructions sur des entiers 32 bits).
Concernant les deux unités SSE pour les flottants, l'une est consacrée à l'addition et l'autre à la multiplication. On atteint donc un débit d'une addition flottante par cycle.
CPU | Pentium D 800 | Pentium D 900 | Core 2 Duo | Athlon 64 X2 |
Finesse de gravure | ? | 65 nm | 65 nm | 90 nm |
Nombre de transistors | ? | 376 | 291 | 154 |
Taille du die | ? | 162 mm2 | 143 mm2 | 183 mm2 |
Taille du cache L2 | 2 × 1 Mo | 2 × 2 Mo | 2 / 4 Mo | 2 × 512 ko |
Prix | $ 110 | $ 160 | $ 224 à 900 | $ 170 à 400 |
Le cache L1 est de 64 ko, soit 32 ko pour les instructions (I-Cache) et 32 ko pour les données (D-Cache).
Organisation des caches L2 chez AMD
Comparativement à d'autres architectures (Pentium D, Athlon 64 X2) pour lesquelles chaque coeur possède son propre cache L2, l'architecture Core possède un seul cache L2. Chaque coeur peut donc utiliser une partie ou la presque totalité du cache L2 selon ses besoins.
Cette organisation du cache doit permettre une amélioration des performances en évitant à chaque coeur de disposer deux fois de la même donnée et donc d'avoir à la charger deux fois depuis la mémoire.
Modèle | Fréquence | FSB | Cache L2 | Prix | |
Serveur | 5160 | 3 Ghz | 1333 Mhz | 4 Mo | $851 |
5110 | 1,6 Ghz | 1333 Mhz | 4 Mo | $209 | |
Bureau | X6800 | 2,93 Ghz | 1066 Mhz | 4 Mo | $999 |
E6700 | 2,66 Ghz | 1066 Mhz | 4 Mo L2 | $530 | |
E6400 | 2,13 Ghz | 1066 Mhz | 2 Mo L2 | $224 | |
Portable | T7600 | 2,33 Ghz | 667 Mhz | 4 Mo L2 | $637 |
T5500 | 1,66 Ghz | 667 Mhz | 2 Mo L2 | $209 |
En termes de performances, le Core 2 Duo 6400 se place parfois à la hauteur d'un Athlon 64 FX-62 avec DDR2 800. Voir les dossiers suivants :
Résultats Linpack (issu de techreport.com)
Core 2 Duo : un succès commmercial
Intel annonce 5 millions de puces Core 2 Duo commercialisées dans les soixante jours qui sont suivi leur mise en vente le 27 juillet 2006.
Penryn est le nom de l'architecture Core 2 en 45nm qui succède à celle en 65nm. Au delà de la diminution de la finesse de gravure, quelques améliorations technologiques font leur apparition :
Depuis les années 60, la grande majorité des transistors des microprocesseurs utilisent la technologie MOSFET (metal–oxide–semiconductor field-effect transistor) utilisant le Silicium et le dioxyde de Silicium comme isolant. Avec l'arrivée de la technologie 45nm, Intel a modifié les couches en bleu et jaune sur la figure suivante :
Technologie 45 nm et nouveau diélectrique
Au final, les améliorations apportées concernent :
Cette technologie concerne la gamme mobile. Les processeurs mobiles sont capables lorsqu'ils sont en veille de diminuer leur tension de fonctionnement, leur fréquence ainsi que de déconnecter une partie de la mémoire cache, ce qui permet de prolonger l'autonomie des batteries.
Penryn : Deep Power Down Technology
Lorsqu'un des coeurs entre dans le mode deep power down, l'autre coeur peut augmenter sa fréquence tout en gardant le dégagement de chaleur dans les limites du TDP (Thermal Dissipation Power).
Penryn : Enhanced Dynamic Acceleration Technology
Cette amélioration concerne la FPU et la manière dont la division est gérée. Sur l'architecture Core 2, la division traite 2 bits par cycle d'horloge. Avec le Penryn elle est capable d'en traiter 4. La division est donc deux fois plus rapide.
Penryn : Fast Radix-16 Divider
Cette amélioration concerne la gestion des instructions SSE, notamment de conversion de format.
Intel introduit un nouveau jeu d'instruction SSE, dit SSE4.1. Certaines instructions comme MPSADBW
permettent de remplacer plusieurs autres instructions. Le site www.tomshardware.com en octobre 2007, a montré que sur un encodage vidéo, l'utilisation du SSE4.1 permet de passer de 4m10s (SSE3) à 2m59.
Modèle | Architecture | Core | Fréquence | Cache | FSB | Techno |
Core 2 Extreme QX9650 | Yorkfield | 4 | 2,9 Ghz | 2 × 6 Mo | 333 Mhz | 45 nm |
Core 2 Extreme QX6850 | Kentsfield | 4 | 3 Ghz | 2 × 4 Mo | 333 Mhz | 65 nm |
Core 2 Extreme X6800 | Conroe XE | 2 | 2,9 Ghz | 1 × 4 Mo | 266 Mhz | 65 nm |
Core 2 Extreme E6850 | Conroe | 2 | 3 Ghz | 1 × 4 Mo | 333 Mhz | 65 nm |
Core 2 E6400 | Conroe-2048 | 2 | 2,1 Ghz | 1 × 2 Mo | 266 Mhz | 65 nm |
Core 2 E6300 | Allendale | 2 | 1,8 Ghz | 1 × 2 Mo | 266 Mhz | 65 nm |
Liste de prix (novembre 2006) :
Intel a déjà révélé quelques détails concernant Nehalem :
Plusieurs dossiers concernant le Nehalem, rebaptisé Core i7 par Intel, sont apparus lors de la sortie de ce nouveau processeur :
Parmi les changements notables par rapport à l'architecture Core 2, on note :
Nom | Coeurs | Fréquence | Cache L3 | QPI | Prix |
Intel Core i7 920 | 4 | 2.66 Ghz | 8 Mo | 4.8 GT/s | 260 € |
Intel Core i7 940 | 4 | 2.93 Ghz | 8 Mo | 4.8 GT/s | 510 € |
Intel Core i7 965 | 4 | 3.20 Ghz | 8 Mo | 6.4 GT/s | 1000 € |
K10 est le nom de l'architecture des nouveaux processeurs AMD apparus en septembre 2007. Phenom et Opteron sont basés sur le coeur Barcelona. K10 est basée sur K8 l'architecture des Athlon 64.
L'ensemble des améliorations introduites par le K10 est résumé sur le schéma suivant :
Le K10 offre la même puissance théorique que l'architecture Core 2, soit :
Type de données | Core2/AMD K10 |
int x86 | 3 |
x87 | 2 |
SSE int (16 bits) | 24 (3 × 8) |
SSE simple précision (32 bits) | 8 |
SSE double précision (64 bits) | 4 |
Afin de soutenir le débit de l'IPC :
Lors de l'appel d'un sous-programme on utilise les instructions PUSH, POP, CALL, RET. Toutes ces instructions font appel à la pile et vont créer des dépendances :
instructions | comportement |
push Z push Y push X call func |
sub esp,4 ; mov [esp],Z sub esp,4 ; mov [esp],Y sub esp,4 ; mov [esp],X sub esp,4 ; mov [esp],eip ; jmp func |
push ebp mov ebp,esp push esi mov eax,[ebp+8] ... pop esi mov esp,ebp pop ebp ret |
sub esp,4 ; mov [esp],ebp mov esp,ebp sub esp,4 ; mov [esp],esi mov eax,[ebp+8] = [esp+12] ... mov esi,[esp-4] ; add esp,4 mov esp,ebp mov ebp,[esp-4] ; add esp,4 jmp [esp]; add esp,4 |
Afin d'optimiser l'accès à la pile, on ne décrémente pas toujours le sommet de pile, et parfois on utilise un mécanisme de synchronisation pour mettre à jour le sommet de la pile :
instructions | comportement |
push Z push Y push X call func |
mov [esp-4],Z mov [esp-8],Y mov [esp-12],X mov [esp-16],eip ; jmp func |
push ebp mov ebp,esp push esi mov eax,[ebp+8] ... pop esi mov esp,ebp pop ebp ret |
sub esp,4 ; mov [esp],ebp mov esp,ebp sub esp,4 ; mov [esp],esi mov eax,[ebp+8] = [esp+12] ... mov esi,[esp-4] ; add esp,4 mov esp,ebp mov ebp,[esp-4] ; add esp,4 jmp [esp]; add esp,4 |
Le cache L3 a pour but d'assurer la performance des 4 coeurs lorsqu'ils travaillent ensemble.
Cache | AMD K10 | Intel Core 2 Quad |
L1 |
|
|
L2 |
|
|
L3 |
|
aucun |
Core 1 |
Core 2 |
Core 3 |
Core 4 |
|||
L1 | L1 | L1 | L1 | |||
L2 |
L2 | L2 | L2 | |||
L3 |
||||||
System Request Interface Crossbar Switch |
||||||
Memory Controllers (2 × 64bits @ 667 Mhz) |
Hyper Transport 3.0 (8 × 16bits @ 2Ghz) |
Les latences des caches sont les suivantes :
La technologie Dual-Channel, bien qu'elle permette de traiter 128 bits, fonctionne en chargeant des données contigües. La technologie un-ganged du K10 permet d'accèder aux données situées à des données situées à des adresses indépendantes.
K10 : contrôleur mémoire indépendant
La technologie CoolCore permet d'éteindre un core qui n'est pas utilisé indépendamment de l'autre.
la technologie dual dynamic power management permet de séparer la tension d'alimentation du coeur de celle du contrôleur mémoire.
On rappelle que chez AMD, le contrôleur mémoire est intégré au niveau du CPU. Le bus hypertransport fait le lien entre la carte graphique et le south bridge.
Le bus hypertransport passera en version 3.0 et permettra de transférer 10400 Mo/s au lieu des 4000 Mo/s du K8. Le bus hypertransport peut également faire varier sa fréquence ainsi que sa largeur.
gamme serveurs :
Note : lors de leur sortie en novembre 2007, un malentendu a laissé croire à la presse européenne que les tarifs de lancement des Phenom seraient plutôt attractifs :
mais il s'agissait de prix hors taxe pour l'achat de 1000 processeurs. Le prix public était au final de l'ordre de :
L'achat d'un Phenom devenait donc très peu rentable car les différents tests réalisés par les sites spécialisés montrèrent que le Phenom 9600 (@ 2,3 Ghz) était moins performant qu'un Core 2 Quad 6600 qui coûtait dans les 230 euros. Ce manque de performance peut être expliqué en partie par la faible taille du cache L2 (512 ko) ainsi que celle du cache L3 (2 Mo) ainsi que par une fréquence trop faible (2,3 Ghz).
Apparue en septembre 2009, cette architecture a pour but de remplacer les Core 2 Duo/Quad et autres Pentium qui utilisent le socket 775. Les Lynnfield qui sont des Quad Core natifs utilisent le socket 1156 et le chipset P55 et sont dérivés de l'architecture Nehalem apparue avec le Core i7 900 Bloomfield. Les trois premiers processeurs de la gamme sont :
Parmi les caractèristiques notables des Lynnfield on peut noter :
Les processeurs Lynnfield/Bloomfield sont désormais conçus sous la forme core/uncore :
La partie uncore composée de millions de transistors (400 millions pour le Lynnfield) n'est pas assujetie aux performances. Intel utilise pour cette partie des transistors moins rapides qui possèdent moins de fuites de courant