CHAPITRE 3- LE PROCESSEUR 1 INTRODUCTION microprocesseur
Composition d'un processeur Schéma de principe d'un processeur 32 bits Un processeur n'est pas une unité de calcul Cette dernière est incluse dans le processeur qui fait aussi appel à (1) une unité de contrôle, (2) une unité d'entrée-sortie, à (3) des registres et à (4) une horloge
Types et performances des processeurs
Page 3 Ecole Polytechnique Fédérale de Lausanne ♦ Un processeur effectue sans arrêt une boucle composée de trois phases: • recherche (fetch) de l’instruction: l’adresse en mémoire de l’instruction à exécuter est stockée en permanence dans un registre du processeur, appelé PC(Program Counter)
Fonctionnement et performance des processeurs
Unités de calcul entier doivent gérer des nombres de même taille que les registres généraux Bus internes doivent avoir aussi cette même taille Registre général peut contenir une adresse mémoire Définit alors aussi la taille maximale de mémoire adressable par le processeur 32 bits : 232 octets = 4 Go
Registres de la famille Intel 64 - FIL Lille 1
Il est possible de n’utiliser qu’une portion de ces registres constituée de 32 bits : dans le cas du registre rax cette portion est nommée eax On peut également n’utiliser que 16 bits (les processeurs intel étaient à l’origine d’une capacité de 16 bits ; le «e» de eax signifiant extended) De ce cas la portion du registre
Introduction à l’architecture des microprocesseurs
• Processeur programmable peut effectuer toutes sortes de tâches • On crée un jeux d’instructions = « langage » codé en binaire • On écrit un programme (= suite d’instructions décrivant la tâche à effectuer) qu’on stocke en mémoire • On fabrique un processeur permettant d’exécuter les programmes écrits
Introduction aux architectures des microprocesseurs
encore réduit car il suffit de donner l’indice du registre Si la donnée est en mémoire, un registre peut servir de pointeur ou de registre d’adresse (mode d’adressage indirect) Dans ce cas l’instruction ne contient que l’indice de ce registre d’adresse et le processeur va effectuer un cycle supplémentaire pour accéder à
Architecture interne des microprocesseurs
exemple l’adresse de la donnée à lire ou écrire en mémoire – registre IR : permet de stocker les 32 bits du code de l’instruction courante pendant toute la durée d’exécution de cette instruction – registre DT : permet de stocker les 32 bits de la donnée qu’on vient de lire en mémoire avant de la stocker dans un accumulateur Ai
Chapitre : LE MICROPROCESSEUR
Lors de cette opération, le contenu des adresses suivantes de la mémoire est lu également et placé dans la mémoire cache du processeur De cette façon, les prochaines instructions recherchées seront disponibles plus rapidement (à condition que le contenu ne soit pas modifié d'ici là)
[PDF] difference entre registre et memoire
[PDF] sphere armillaire
[PDF] registre d'adresse
[PDF] sphère armillaire ancienne
[PDF] registre d'instruction processeur
[PDF] astrolabe
[PDF] circulaire douane maroc 2017
[PDF] admission temporaire marchandise maroc
[PDF] dedouanement jet ski maroc prix
[PDF] relativité générale einstein
[PDF] admission temporaire définition
[PDF] relativité générale cours et exercices corrigés pdf
[PDF] dotation touristique maroc 2016
[PDF] cours de relativité générale
Eduardo Sanchez
Laboratoire de Systèmes Logiques
Ecole Polytechnique Fédérale de Lausanne
Types et performances
des processeursEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 2Structure d'un ordinateurprocesseur
mémoireentrées/sorties bus d'adresse bus de données bus de contrôleséquenceurséquenceur micromémoiremicromémoire registresregistres opérateursopérateurs contrôletraitementEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 3¨Un processeur effectue sans arrêt une boucle composée de trois phases: ·recherche (fetch) de l'instruction: l'adresse en mémoire de l'instruction à exécuter est stockée en permanence dans un registre du processeur, appelé PC(Program Counter). L'instruction pointée par le PCest cherchée dans la mémoire et stockée dans un autre registre du processeur: le IR(InstructionRegister)
·décodage de l'instruction (decode): chaque instruction est identifiée, grâce à un code (opcode). En fonction de ce code, le processeur choisit la tâche à exécuter, c'est-à-dire la séquence de micro-instructions à exécuter ·exécution (execute) de l'instruction: à la fin de cette phase, on retourne à la première phaseExécution d'une instructionEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 4lecture de l'instructionlecture de l'instruction décodagedécodageADDADD
MOVEMOVE
LOADLOAD
STORESTOREinitialisationinitialisation
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 5MAR ¬PC
MDR ¬M[PC]
PC ¬PC+1
IR ¬MDRMAR ¬PC
MDR ¬M[PC]
PC ¬PC+1
IR ¬MDR
chercher l'opérande chercher l'opérandeexécuterexécuterPC¬adresse initialePC¬adresse initialedécodification de IRdécodification de IRopérandeopérande
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 6Instructions machine
¨Chaque instruction machine (assembleur) doit avoir les éléments suivants: ·le code de l'opération (opcode): un code binaire identifiant l'opération à réaliser (addition, décalage, etc) ·la référence de l'opérande source: il peut y en avoir plusieurs ·la référence de l'opérande destination ·la référence à la prochaine instruction à exécuter: une indication d'où chercher la prochaine instruction. Dans la plupart de cas, cetteréférence est inutile, implicite ¨Les opérandes, source et destination, peuvent être cherchés à trois endroits différents:·la mémoire principale
·les registres internes
·les dispositifs d'entrée/sortie (périphériques)Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 7¨Représentation des instructions:
Chaque instruction est stockée dans la mémoire comme une chaîne de bits. L'instruction est divisée en plusieurs champs, correspondant à ses différents éléments. L'organisation de ces différents champs est appelée le format de l'instruction. Il est possible, pour un même processeur, d'avoir plusieurs formats, de longueurs différentes. Pour faciliter la lecture des programmes en langages machine, on utilise une représentation symbolique, où les opcodes sont représentés par des abréviations appélées mnémoniques. Des exemples courants sont:·ADDaddition
·SUBsoustraction
·LOADchargement d'un registre interne à partir de la mémoire ·STOREchargement de la mémoire à partir d'un registre interneEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 8¨Types d'instruction:
Un processeur doit avoir un ensemble d'instructions machine (le répertoire d'instructions) qui lui permettent de réaliser n'importe quel traitement d'information. Vu d'une autre façon, le répertoire d'instructions d'un processeur doit être capable d'interpréter n'importe quelle instruction d'un langage de haut niveau. En général, on peut diviser les instructions d'un processeur en 4 classes: ·traitement des données: instructions arithmétiques et logiques·gestion de la mémoire
·mouvement des données
·contrôle: instructions de saut dans le programmeEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 9¨Nombre d'opérandes:
Le nombre d'opérandes, ainsi que leur emplacement, a une très grande importance, à cause de l'influence sur la taille des instructions et sur la vitesse d'exécution. Il est courant de trouver une classification des processeurs selon ce paramètre:·processeurs à accumulateur
·processeurs à registres généraux
·processeurs à pile
¨Types d'opérandes:
Les principaux types de données traités directement par les processeurs sont: adresses, nombres, caractères et données logiques¨Modes d'adressage:
Cést la façon de spécifier l'adresse des opérandesEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 10Processeurs à accumulateur
¨Les résultats de toutes les opérations sont stockés dans un registre particulier, l'accumulateur ¨Toutes les variables sont stockées dans la mémoire ¨Exemples: DEC PDP-8, Intel 8080, Motorola 6800¨Exemple de programme:
x := y + zLOADyACC¬M[y]ADD zACC¬ACC + M[z]
STORE xM[x]¬ACC
¨Le format d'une instruction doit utiliser deux champs:·le code de l'opération (opcode)
·l'adresse de l'opérande (l'accumulateur est toujours un opérandepar défaut)Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 11Processeurs à registres généraux
¨Les variables utilisées le plus fréquemment sont stockées dans un ensemble de registres internes:·les accès sont plus rapides
·les adresses sont plus courtes
¨Exemples: IBM 360/370, DEC PDP-11, Intel x86, Motorola 68000,Sparc, PowerPC, MIPS
¨Les opérations peuvent avoir lieu seulement avec les registres (architecture LOAD/STORE), ou avec un, deux ou trois opérandes en mémoire. Exemples:ADDRx, RyRx¬Rx + Ry
ADDRx, Ry, RzRx¬Rx + Ry + Rz
ADDRx, yRx¬Rx + M[y]
ADDx, yM[x]¬M[x] + M[y]
ADDx, y, zM[x]¬M[y] + M[z]
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 12Processeurs à pile
¨Les opérandes se trouvent toujours au sommet d'une pile, dans la mémoire. Et le résultat est toujours stocké au sommet de la pile. En conséquence, une instruction typique ne contient pas d'adresse d'opérande ¨Un registre particulier du processeur, le stack pointer(SP), pointe toujours au sommet de la pile¨Exemples: Burroughs B5000, HP 300
¨Les instructions de base sont:
PUSHxM[SP]¬M[x]
POPxM[x]¬M[SP]
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 13Exemple de compilation
¨Phrase en langage de haut niveau:
P := (Q*R + S*T)*(U + V)
¨Compilation pour un processeur à registres:LDR0, Q
MULR0, R
LDR1, S
MULR1, T
ADDR0, R1
LDR1, U
ADDR1, V
MULR0, R1
STR0, P
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 14¨Compilation pour un processeur à pile: PUSHQ PUSHR MUL PUSHS PUSHT MUL ADD PUSHU PUSHV ADD MUL POPPEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 15Performance d'un processeur
¨Deux paramètres peuvent être utilisés pour mesurer la performance d'un processeur: ·le temps de réponse ou temps d'exécution d'une certaine tâche: temps écoulé entre le début et la fin d'exécution de la tâche ·throughput: quantité total de travail réalisé dans un certain temps ¨L'amélioration du temps de réponse implique toujours une amélioration du throughput. Toutefois, le contraire n'est pas toujours vrai: une augmentation du nombre de processeurs d'un ordinateur augmente le throughput, sans améliorer nécessairement le temps de réponse ¨Nous allons considérer le temps d'exécution comme paramètre principal pour le calcul de la performance d'un processeurEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 16¨Le rapport de performance entre deux machines A et B est: et l'on dit que A est n fois plus rapide que B ¨Pour le calcul de performance, on tient compte seulement du CPU time, inférieur à l'elapsed timeperformance = 1 temps d'exécutionperformance A performance B temps Btemps A = n =Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 17¨Le temps d'exécution dépend de trois facteurs: ·le nombre d'instructions machine exécutées, ·le nombre moyen de cycles d'horloge par instruction machine et·la période d'horloge
Temps =1/ performance =
(nombre d'instructions) x (nombre de cycles par instruction) x (période d'horloge)Temps =
IC x CPI
fclock cycles per instructionInstruction countEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 18¨Pour une architecture donnée (un certain répertoire d'instuctions), il est possible d'améliorer la performance par trois moyens différents:·augmenter la fréquence d'horloge
·améliorer l'organisation interne pour diminuer le CPI ·améliorer le compilateur pour diminuer le IC ou pour augmenter le taux d'utilisation des instructions avec un CPI moindreEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 19Processeurs RISC et CISC
¨Lors de la conception d'une architecture, il est possible de privilégier l'un oul'autre des paramètres qui interviennent dans la performance d'un processeur ¨Il existe deux types de processeurs, selon le paramètre optimisé: ·processeurs CISC(Complex Instruction Set Computer) ·processeurs RISC(Reduced Instruction Set Computer)Temps =1/ performance =
(nombre d'instructions) x (nombre de cycles par instruction) x (période d'horloge)CISC RISCEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 20Caractéristiques des processeurs RISC
¨Une seule taille d'instruction: 32 bits
¨Très peu de modes d'adressage (absence d'adressage indirect) ¨Architecture load/store: aucune opération avec la mémoire¨Nombre élevé de registres
¨Pipeline
¨Architectures superscalaires
¨Mémoire cache
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 21Architecture standard
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 22Le pipeline
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 23Architecture superscalaire
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 24Histoire de RISC
CDC6600
IBM709
IBM801 (1975-79)
Berkeley
(D. Patterson)Stanford (J. Hennessy)MIPS (1982)RISC I (1980-81)
RISC II
SOAREduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 25Processeurs RISC commerciaux
¨Silicon Graphics: MIPS1986
pipeline¨Hewlett-Packard: HP-PA1986
pipeline¨Sun: SPARC1987
superscalaire¨Apple-IBM-Motorola: Power PC1990
superscalaire¨DEC: Alpha1992
pipelineEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 26Mesure de performance: SPEC2000
¨Pour résoudre le problème du choix des programmes de test (benchmarks) à utiliser pour mesurer la performance, plusieurs fabricants se sont associés pour créer SPEC (StandardPerformance Evaluation Corporation)
¨Il y deux groupes principaux de benchmarks, l'un pour les nombres entiers et l'autre pour les nombres réels. Une valeur de performance est calculée pour chacun de ces groupes, appelée SPECint et SPECfp. Une seule valeur est donnée pour chaque groupe: la moyenne géométrique ¨La valeur baselineest calculée avec un maximum de 4 flags de compilation, les mêmes pour tous les programmesEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 27¨Le premier groupe de benchmarksa été publié en 1989, avec des nouvelles versions en 1992, 1995 et 2000 ¨SPEC CPUint2000: 12 programmes écrits en C et C++ ¨SPEC CPUfp2000 : 14 programmes écrits en Fortran et C ¨La machine de référence est une Sun Ultra5_10 à 300 MHz: sa performace reçoit une valeur de 100 SPEC2000 ¨La performance mesurée par SPEC ne dépend pas seulement du processeur: elle dépend également du système de mémoire et du compilateur. Par contre, elle ne tient pas compte des entrées/sorties, du réseau ni du graphisme¨Le site web de SPEC est:
http://www.spec.orgEduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 28
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 29Alpha
21264BIBM
Power3-IISun
Ultra-IIIHP
PA-8600MIPS
R12000Intel
P4Fréquence(MHz)8334509005524001500
Superscalaire444443
Pipeline7/97/814/157/9622/24
Taille(mm2)115163210477204217
Transistors (M)15.423291307.242
Puissance (W)753665602555
SPECint2000b518286438417320524
SPECfp2000b590356427400319549Processeurs actuels
Cache (I/D)32K/64K12K/8K64K/64K32K/64K512K/1M32K/32KDésordre(instr)803205648126AMDAthlon
12003 9/11
0.18-6
11737
76
443