| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sommaire
Chapitre 1 : Introduction, Concepts de base Chapitre 2 : Architecture d'un ordinateur Chapitre 3 : Microprocesseur Chapitre 4 : Mémoires Chapitre 5 : L'architecture Core 2, K10 et Core i7 Chapitre 6 : Optimisation : au coeur du core Bibliographie 5. L'Architecture Core 2, K10 et Core i7
Core 2 : simply the best processor in the world
Paul Otellini, CEO d'Intel, Juillet 2006. 5.1 Introduction 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. 5.2 Les racines du Core Le successeur du Pentium III 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. Willamette et Northwood 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 Prescott 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. L'architecture Mobile 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. L'architecture Core 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). 5.3 Les architectures P6, Netburst et Core 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 5.3.1 Etape de décodage
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
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
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. 5.3.2 Prédiction de branchement
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 5.3.3 Exécution Out-Of-Order
Core reprend les caractéristiques du Yonah mais en étant plus performant (amélioration en largeur).
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 :
5.3.4 Unités d'exécution
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.
Digital Media Boost 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.
5.3.5 Cache L1 et cache L2 unifié
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. 5.3.6 La gamme
5.3.7 Performances
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) 5.3.8 News
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.
5.4 Penryn, Core 2 en 45nm 5.4.1 Caractéristiques
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 :
5.4.2 Technologie 45nm
Depuis les années 60, la grande majorité des transistors des microprocesseurs utilisent la technologie MOSFET 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 :
5.4.3 Deep power down technology
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 5.4.4 Enhanced dynamic acceleration 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 Power Design). ![]() Penryn : Enhanced Dynamic Acceleration Technology 5.4.5 Fast radix-16 divider
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 5.4.6 super shuffle engine
Cette amélioration concerne la gestion des instructions SSE, notamment de conversion de format. ![]() Penryn : Super Shuffle Engine
Intel introduit un nouveau jeu d'instruction SSE, dit SSE4.1. Certaines instructions comme
Liste de prix (novembre 2006) :
5.5 Nehalem successeur du Penryn en 2008 5.5.1) prévisions 2007
Intel a déjà révélé quelques détails concernant Nehalem :
![]() Prévisions Intel 2007 5.5.2) Novembre 2008, sortie du 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 :
Les premiers Nehalem, Novembre 2008 5.5.3) Core et Uncore
5.6 L'architecture AMD K10 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 : ![]() Améliorations du K10 / K8 5.6.1 Amélioration de l'IPC (Instruction Level Parallelism)
Le K10 offre la même puissance théorique que l'architecture Core 2, soit :
Afin de soutenir le débit de l'IPC :
5.6.2 Sidebank stack optimizer
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 :
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 :
5.6.3 L3 memory cache
Le cache L3 a pour but d'assurer la performance des 4 coeurs lorsqu'ils travaillent ensemble.
Les latences des caches sont les suivantes :
5.6.4 Independent memory controller
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 5.6.5 Gestion de l'énergie
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. 5.6.7 Hypertransport 3.0
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. 5.6.8 Architectures
gamme serveurs :
![]() K10 : feuille de route (roadmap) des serveurs ![]() K10 : feuille de route (roadmap) des serveurs (page 2) 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ée 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). pour approfondir
5.7 Intel Lynnfield (Core i5,i7) - 2009
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 :
5.7.1 le mode turbo
5.7.2 core et uncore
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
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| © 2006-2009 Jean-Michel Richer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||