Université Constantine II Electronique des composants et systèmes Cours de L1 -TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE Université Constantine 2 Le../01/2013 Les Microprocesseurs-partie2
8. Amélioration des performances d un microprocesseur 19/11/2014 2
1. Le jeu d'instructions qu il peut exécuter. Un processeur peut exécuter plusieurs dizaines, voire centaines ou milliers, d instructions différentes. 2. La complexité de son architecture. Cette complexité se mesure par le nombre de transistors contenus dans le microprocesseur. Plus le microprocesseur contient de transistors, plus il pourra effectuer des opérations complexes, et/ou traiter des chiffres de grande taille. 19/11/2014 3
3. Largeur des données : le nombre de bits que le processeur peut traiter ensemble. Les microprocesseurs actuels peuvent traiter des nombres sur64 bitsensemble. Le nombre debitsest en rapport direct avec : la capacité à traiter de grands nombres rapidement, et des nombres d'une grande précision (nombres de décimales significatives). 4. Finesse de gravure (nm): le diamètre (en nm) du plus petit fil reliant deux composantes du microprocesseur. En comparaison, l'épaisseur d'un cheveu humain est de 100microns = 100000 nm. En 2014 on arrive à des finesses de gravure de l ordre de 10 nm. En augmentant la finesse de gravure, on se rapproche des limites en deçà desquelles le comportement électrique des matériaux relève de moins en moins de la physique classique, mais de plus en plus de la mécanique quantique. C est quoi???? 19/11/2014 4
5. La vitesse de l horloge. Le rôle de l horloge est de cadencer le rythme du travail du processeur. + la vitesse augmente, + le processeur effectue d'instructions en une seconde. Inconvénients de l'augmentation de la fréquence : le processeur consomme d'électricité, il chauffece qui nécessite une solution de refroidissement du processeur adaptée; la fréquence est limitée par les temps de commutation des portes logiques Entre deux «coups d'horloge», les signaux numériques doivent avoir le temps de parcourir tout le trajet nécessaire à l'exécution de l'instruction attendue ; 19/11/2014 5
6. Performances d un microprocesseur On peut caractériser la puissance d un microprocesseur par le nombre d instructions qu il est capable de traiter par seconde. Pour cela, on définit: A. le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles d horloge nécessaire pour l exécution d une instruction pour un microprocesseur donné. B. le MIPS (Millions d'instructions Par Seconde)qui représente la puissance de traitement du microprocesseur. avec F H en MHz MIPS= F H /CPI 19/11/2014 6
Pour augmenter les performances d un microprocesseur, on peut donc soit : augmenter la fréquence d'horloge (limitation matérielle) soit diminuer le CPI(choix d'un jeu d'instruction adapté). Améliorer l architecture de base (amélioration technologique) 19/11/2014 7
Notion Actuellement l architecture des microprocesseurs se composent de deux grandes familles : L architecture CISC (Complex Instruction Set Computer) L architecture RISC (Reduced Instruction Set Computer) 19/11/2014 8
la conception de machines CISC vue que la mémoire travaillait très lentement par rapport au processeur, on pensait qu il était plus intéressant de soumettre au microprocesseur des instructions complexes. On a donc eu tendance à incorporer au niveau processeur des instructions plus proches de la structure des langage de haut niveau. C est donc une architecture avec un grand nombre d instructions où le microprocesseur doit exécuter des tâches complexes par instruction unique. Pour une tâche donnée, une machine CISC exécute ainsi un petit nombre d instructionsmais chacune nécessite un plus grand nombre de cycles d horloge. Le code machine de ces instructions varie d une instruction à l autre et nécessite donc un décodeur complexe (micro-code) 19/11/2014 9
Des études statistiques menées au cours des années 70 ont clairement montré que les programmes se contentaient le plus souvent d'affectations, d'additions et de multiplications par des constantes. Ainsi, 80% des traitements des langages de haut niveau faisaient appel à seulement 20% des instructions du microprocesseur. D où l idée de réduire le jeu d instructions à celles le plus couramment utilisées et d en améliorer la vitesse de traitement. C est donc une architecture dans laquelle les instructions sont en nombre réduit (chargement, branchement, appel sous-programme). Chacune de ces instructions s exécutent ainsi en un cycle d horloge. Les accès à la mémoire s effectue seulement à partir de deux instructions (Exemple: Loadet Store). Remarque Par contre, les instructions complexes doivent être réalisées à partir de séquences basées sur les instructions élémentaires, ce qui nécessite un compilateur très évolué dans le cas de programmation en langage de haut niveau. 19/11/2014 10
Si on diminue le nombre d'instructions, on crée des instructions complexes (CISC) qui nécessitent plus de cycles pour être décodées et si on diminue le nombre de cycles par instruction, on crée des instructions simples (RISC) mais on augmente alors le nombre d'instructions nécessaires pour réaliser le même traitement. 19/11/2014 11
Architecture RISC 1. instructions simples ne prenant qu un seul cycle 2. instructions au format fixe 3. décodeur simple (câblé) 4. beaucoup de registres 5. seules les instructions LOAD et STORE ont accès à la mémoire 6. peu de modes d adressage 7. compilateur complexe Architecture CISC 1. instructions complexes prenant plusieurs cycles 2. instructions au format variable 3. décodeur complexe (microcode) 4. peu de registres 5. toutes les instructions sont susceptibles d accéder à la mémoire 6. beaucoup de modes d adressage 7. compilateur simple 19/11/2014 12
Un programme informatique est un ensemble d'instructions exécutées par un processeur. Chaque instruction nécessite un à plusieurs cycles d'horloge, Les microprocesseurs séquentielsexécutent l'instruction suivante lorsqu'ils ont terminé l'instruction en cours. Dans le cas du parallélisme d'instructions, le microprocesseur pourra traiter plusieurs instructions dans le même cycle d'horloge, à condition pas besoin simultanément d une même ressource interne. Autrement dit, le processeur exécute des instructions qui se suivent, et ne sont pas dépendantes l'une de l'autre. 19/11/2014 13
Principe L exécution d une instruction est décomposéeen une succession d étapes et chaque étape correspond à l utilisation d une des fonctions du microprocesseur. Lorsqu une instruction se trouve dans l une des étapes, les composants associés aux autres étapes ne sont pas utilisés. Le fonctionnement d un microprocesseur simple n est donc pas efficace. L architecture pipeline (en file) permet d améliorer l efficacité du microprocesseur. En effet, lorsque la première étape de l exécution d une instruction est achevée, l instruction entre dans la seconde étape de son exécution et la première phase de l exécution de l instruction suivante débute. 19/11/2014 14
19/11/2014 15
19/11/2014 16
Il peut donc y avoir une instruction en cours d exécution dans chacune des étapes et chacun des composants du microprocesseur peut être utilisé à chaque cycle d horloge. L efficacité est maximale. Le temps d exécution d une instruction n est pas réduit mais le débit d exécution des instructions est considérablement augmenté. Une machine pipeline se caractérise par le nombre d étapes utilisées pour l exécution d une instruction, on appelle aussi ce nombre d étapes le nombre d étages du pipeline 19/11/2014 17
Dans cette structure, la machine débute l exécution d une instruction à chaque cycle et le pipeline est pleinement occupé à partir du quatrième cycle. Le gain obtenu dépend donc du nombre d étages du pipeline. En effet, pour exécuter n instructions, en supposant que chaque instruction s exécute en k cycles d horloge, il faut : n.k cycles d horloge pour une exécution séquentielle. kcycles d horloge pour exécuter la première instruction puis n-1cycles pour les n-1 instructions suivantes si on utilise un pipeline de k étages Le gain obtenu est donc de :G=(n*k)/k+n-1 19/11/2014 18
La mise en place d un pipeline pose plusieurs problèmes. plus le pipeline est long, plus le nombre de cas où il n est pas possible d atteindre la performance maximale est élevé. Les principaux cas où la performance d un processeur pipeline peut être dégradé ; 1. Les instructions ont besoins d une même ressource de processeur (conflit de dépendance), 2. lorsqu une instruction produit un résultat et que l instruction suivante utilise ce résultat avant qu il n ait pu être écrit dans un registre, 19/11/2014 19
La mise en place d un pipeline pose plusieurs problèmes. 3. chaque fois qu une instruction de branchement est exécutée, il faut normalement attendre de connaître l adresse de destination du branchement pour pouvoir charger l instruction suivante. Les instructions qui suivent le saut et qui sont en train d être traitées dans les étages inférieurs le sont en général pour rien, il faudra alors vider le pipeline. Pour atténuer l effet des branchements, il existe des technique et des algorithmes spécifiques 19/11/2014 20
Une autre façon de gagner en performance est d exécuter plusieurs instructions en même temps. L'approche superscalaireconsiste à doter le microprocesseur de plusieurs unités de traitementtravaillant en parallèle. Les instructions sont alors réparties entre les différentes unités d'exécution. Il faut donc pouvoir soutenir un flot important d instructions et pour cela disposer d un cache performant 19/11/2014 21
La technologie superscalaire (en anglais superscaling) consiste à disposer plusieurs unités de traitement en parallèle afin de pouvoir traiter plusieurs instructions par cycle. 19/11/2014 22
19/11/2014 23
Le principe est de d exécuter les instructions de façon pipelinéedans chacune des unités de traitement travaillant en parallèle 19/11/2014 24
19/11/2014 25
Un processeur multi-coeurest tout simplement un processeur composé non pas de 1 mais de 2 (ou 4 ou 8) unités de calcul. pour un processeur bi-coeur(ou DualCore) le processeur dispose à fréquence d'horloge égale d'une puissance de calcul deux fois plus importante. le gain n'est pas systématiquement visible. Il faut que les logiciels et les systèmes d'exploitation sachent gérer correctement ces processeurs afin qu'un gain significatif soit perceptible. sous Windows, seul Vista et Sept exploitent correctement ces processeurs. Dans ce cas, la version 64 bits est conseillée. 19/11/2014 26
19/11/2014 27
Date Nom Nombre de transistors Finesse de gravure (nm) Fréquence de l'horloge 1971 Intel 4004 2 300 10 000 108 khz 1974 Intel 8008 6 000 6 000 2 MHz 1979 Intel 8088 29 000 3 000 5 MHz 1982 Intel 80286 134 000 1 500 1985 Intel 80386 275 000 1 500 1989 Intel 80486 1 200 000 1 000 1993 Pentium (Intel P5) 3100000 800 à 250 1997 Pentium II 7 500 000 350 à 250 1999 Pentium III 9 500 000 250 à 130 2000 Pentium 4 42 000 000 180 à 65 6 à 16 MHz (20MHz chez AMD) 16 à 40MHz 16 à 100 MHz 60 à 233 MHz 233 à 450 MHz 450 à Largeur des données MIPS 4 bits/4 bits bus 8 bits/8 bits bus 16 bits/8 16 bits/16 16 à 32 bits/32 32 bits/32 32 bits/64 32 bits/64 32 bits/64 1400MHz 1,3 à 32 bits/64 3,8 GHz 0,06 0,64 0,33 1 5 20 100 300 510 1700 19/11/2014 28
Date 2004 2006 2007 2008 2008 2008 Nom Pentium 4 D (Prescott) Core 2 Duo (Conroe) Core 2 Quad (Kentsfield ) Core 2 Duo (Wolfdale) Core 2 Quad (Yorkfield) Intel Core i7 (Bloomfiel d) Nombre de transistors Finesse de gravure (nm) 125000 000 90 à 65 291 000 000 65 2*291 000 000 65 410 000 000 45 2*410 000 000 45 731 000 000 45 Fréquence de l'horloge 2.66 à 3,6 GHz 2,4GHz (E6600) 3GHz (Q6850) 3,33GHz (E8600) 3,2GHz (QX9770) 3,33GHz (Core i7 975X) Largeur des données MIPS 32 bits/64 64 bits/64 64 bits/64 64 bits/64 64 bits/64 64 bits/64 9000 22000 2*22000 (?) ~24 200 ~2*24 200? 19/11/2014 29
Date 2009 2010 2011 2011 2012 Nom Intel Core i5/i7 (Lynnfield) Intel Core i7 (Gulftown) Intel Core i3/i5/i7 (Sandy Bridge) Intel Core i7/xeon (Sandy Bridge-E) Intel Core i3/i5/i7 (Ivy Bridge) Nombre de transistors Finesse de gravure (nm) 774 000 000 45 1170000 000 32 1160000 000 32 2270000 000 32 1400000 000 22 Fréquence de l'horloge 306 GHz (I7 880) 3,47GHz (Core i7 990X) 3,5GHz (Core i7 2700K) 3,5GHz (Core i7 3970X) 3,5GHz (Core i7 3770K) Largeur des données MIPS 64 bits/64 64 bits/64 64 bits/64 64 bits/64 64 bits/64 76383 147 600 19/11/2014 30