Cours Des Microprocesseurs
Cours Des Microprocesseurs
Cours Des Microprocesseurs
2020/2021
Les microprocesseurs
Pr MOHAMED HAMLICH
Microprocesseurs
Plan de la première partie du cours
• Définitions et caractéristiques
• Historique et évolution
• Structure interne du processeur
• Etapes d’exécution d’une instruction
• Architectures CISC et RISC
CISC
RISC
Architectures superscalaires
VLIW
Evolution des architectures
• Pipeline
• Parallélisme
2
• Mesure des performances d’un up
Pr MOHAMED HAMLICH
Le microprocesseur (CPU) Définition:
Extrait les instructions de la mémoire et les exécute.
Cycle de base:
1. Extraire
2. Décoder
3. Exécuter
4. Stockage
Plusieurs registres généraux de 8,16, 32 ou 64 bits.
Trois registres spéciaux:
• Compteur ordinal (PC: Program Counter): il contient l’adresse de la prochaine
instruction à exécuter,
• Pointeur de pile (SP: Stack Pointer): il contient l’adresse de la prochaine case
libre dans la pile
• Mot d’état (PSW): Registre d’état: il contient des indicateurs: des flags
ZF CF SF OF
3
Pr MOHAMED HAMLICH
Le microprocesseur
Définition:
En entrée :
1) Il dispose d ’une adresse dans la mémoire ;
2) Il charge le contenu de cette adresse et le
considère comme étant une instruction ;
Mémoire
3) Ensuite, il charge le contenu de l ’adresse contenant le
suivante, et il recommence. Adresse
programme
2000H I1
En sortie : I2
1) Il donne le résultat de la première instruction ; I3
Pr MOHAMED HAMLICH
Microprocesseur (CPU)
Définition:
• Exécute les instructions machines placées en mémoire
centrale (cerveau de l'ordinateur)
5
Pr MOHAMED HAMLICH
Microprocesseur
Définition:
• Circuit électronique cadencé au rythme d'une horloge interne
Cristal de quartz soumis à un courant électrique : envoie des impulsions
La puissance de traitement
S’exprime en MIPS
(Millions d’Instructions Par Seconde)
Le jeu d ’instructions
Pr MOHAMED HAMLICH
Historique et évolution
Le premier microprocesseur (Intel 4004) a été inventé
en 1971. Il s'agissait d'une unité de calcul de 4 bits,
cadencé à 108 kHz. Depuis, la puissance des
microprocesseurs augmente exponentiellement.
Pr MOHAMED HAMLICH
Historique et évolution
10
Pr MOHAMED HAMLICH
Historique et évolution
11
Pr MOHAMED HAMLICH
•Date : l’année de commercialisation du microprocesseur.
•Nom : le nom du microprocesseur.
•Nombre de transistors : le nombre de transistors contenus dans le
microprocesseur.
•Finesse de gravure (nm) : la largeur minimale possible
(en nanomètres) du canal des transistors.
•Fréquence de l’horloge : la fréquence du signal d'horloge interne qui
cadence le microprocesseur.
MHz = million(s) de cycles par seconde.
GHz = milliard(s) de cycles par seconde.
Pr MOHAMED HAMLICH
STRUCTURE INTERNE DU
PROCESSEUR
Un processeur est constitué au minimum :
d'une unité de commande qui coordonne le
fonctionnement,
d'une unité arithmétique et logique qui effectue les
traitements,
des registres qui permettent un stockage local.
13
Pr MOHAMED HAMLICH
PROCESSEUR
BUS INTERNE
Pr MOHAMED HAMLICH
STRUCTURE INTERNE
1) Unité de contrôle : lit les données, les décode puis les envoie à
l'unité d'exécution
2 registres pour la manipulation des instructions :
compteur ordinal : à chaque instant contient l’@ de la prochaine
instruction à exécuter (IE)
registre d’instruction : contient l'instruction à exécuter
Décodeur : circuits d’identification de IE
Séquenceur : exécution de la séquence de microcommandes de IE
rythmé par l’horloge du microprocesseur
pour son fonctionnement, il utilise les registres de l’UAL
Registre d’@ connecté au bus d’@ pour sélectionner un mot mémoire
Registre de données pour l’échange d’informations entre la mémoire
centrale et le processeur
15
Pr MOHAMED HAMLICH
STRUCTURE INTERNE
2) Unité d'exécution : accomplit les tâches venant de
l'unité de contrôle :
Registres : rapides (de 8, 16, 32 ou 64 bits), contiennent :
une adresse d’un mot mémoire
le contenu d’un mot mémoire (donnée)
Pr MOHAMED HAMLICH
STRUCTURE INTERNE
Microprocesseur
Interface Interface BA
de controle d’adresse
BC 18
Pr MOHAMED HAMLICH
Etape 0 : un registre appelé Compteur Ordinal contient l’adresse
de la première instruction à exécuter
Microprocesseur
Compteur
ordinal
Interface Interface BA
de controle d’adresse
BC 19
Pr MOHAMED HAMLICH
Etape 1 : la lecture de l’instruction I1 consiste à transférer le contenu
de la mémoire correspondante dans le registre d’instructions
Microprocesseur
Registre
d’instruction
Compteur
ordinal
Interface Interface BA
de controle d’adresse
BC 20
Pr MOHAMED HAMLICH
Etape 2 : l’analyse (décodage) du premier octet permet au microprocesseur de connaître le
nombre d’octets que comporte l’instruction ainsi que l’opération élémentaire a exécuter
Microprocesseur
Registre
d’instruction
Décodeur Compteur
de ordinal
fonctions
Interface Interface BA
de controle d’adresse
BC 21
Pr MOHAMED HAMLICH
Etape 3 : le microprocesseur effectue le traitement
correspondant (unité de traitement)
Microprocesseur
Registre Registre
Accu A Accu B
d'état d’instruction
Décodeur Compteur
de ordinal
UAL fonctions
Interface Interface BA
de controle d’adresse
BC 22
Pr MOHAMED HAMLICH
L'unité de traitement
• L’UAL (Unité Arithmétique et
BD interne Logique)
• deux registres de travail
contenant une donnée ou un
Registre
Accu A Accu B résultat : accumulateurs A et B
d'état
23
Pr MOHAMED HAMLICH
EXECUTION D'UNE INSTRUCTION
PORTANT SUR UN OPERANDE MEMOIRE
effectuer, et
24
Pr MOHAMED HAMLICH
1ère phase : recherche et décodage de l'instruction (cette
première phase est valable pour tout type d'instruction).
PROCESSEUR MEMOIRE
programme
UNITE DE COMMANDE code
BUS
compteur ordinal registre adresse
ADRESSE
adresse instruction adresse inst. instruction
1
registre instruction registre donnée
accumulateur
25
Pr MOHAMED HAMLICH
2ème partie : exécution de l'instruction
PROCESSEUR MEMOIRE
programme
UNITE DE COMMANDE code
BUS
compteur ordinal registre adresse
ADRESSE
adresse adresse donnée instruction
3
registre instruction
instruction décodée
donnée
UAL
accumulateur registre donnée
Pr MOHAMED HAMLICH
Fréquence d’horloge
27
Pr MOHAMED HAMLICH
ARCHITECTURES CISC ET RISC
• Constat: grande majorité des instructions disponibles sont très
peu utilisées
• Deux types d’architectures différentes:
28
Pr MOHAMED HAMLICH
ARCHITECTURES CISC ET RISC
• CISC (Complex Instructions Set Computer)= processeur à jeu
d'instructions classique tels que ceux utilisés sur les micro-
ordinateurs (Intel 386, Motorola 68030,...). Il s'agit de processeurs
complexes comportant beaucoup d'instructions (plusieurs
centaines). Certaines instructions sont complexes avec une grande
variété de formats.
• Dans les années 1970, après la naissance des premiers
microprocesseurs, les accès mémoires étaient relativement lents et
le processeur disposait de plusieurs cycles d'horloge (au moins 8 pour
le 68000) pour aller chercher, décoder et exécuter l'instruction. Ce
nombre de cycles permettait d'effectuer des calculs micro-séquencés
qui donnait lieu à des instructions très compliquées mais peu souvent
utilisées, ce qui justifie le nom de ce type de processeur : "Complex
Instruction Set computer". 29
Pr MOHAMED HAMLICH
30
Pr MOHAMED HAMLICH
• RISC (Reduced Instructions Set Computer) = processeur à jeu réduit
d'instructions tels que ceux utilisés sur les stations de travail (Alpha
de DEC, Power d'IBM, Sparc de Sun, PA8000 de HP, R8000 de
Mips,...).
• Utiliser des registres, de la mémoire locale rapide ou « cache »
pour éviter d'attendre.
• Paralléliser les instructions : techniques pipeline
• Instructions simples au format fixe
• 2 instructions pour l’accès à la mémoire : LOAD et STORE
• Le jeu d'instructions est réduit à une cinquantaine avec peu
d'instructions avec référence mémoire, exécution de la plupart des
instructions en un seul cycle machine, des instructions courtes
• Dans les années 80, cette approche devint possible grâce aux
progrès technologiques . Le gain en performance doit tendre vers «
une instruction en 1 cycle d’horloge ».
31
Pr MOHAMED HAMLICH
CISC et RISC
Processeurs CISC (‘Complex Instruction Set Computer'),
comme les processeurs Intel : lenteur de la mémoire =>
intérêt d’avoir des opérations complexes très spécialisées =>
moins nombreuses et moins d’accès aux données.
Mais 80% des programmes générés par les compilateurs font appel
a seulement 20% des instructions machine.
D'ou l'idée de l'architecture RISC de réduire le jeu d'instructions a
ces 20% d'instructions les plus utilisées, en cherchant a les optimiser
au maximum avec des séquenceurs câblés.
CISC RISC
jeu d'instructions large jeu d'instructions réduit
instructions complexes instructions simples
instructions de tailles différentes instructions de mêmes tailles
instructions de durées différentes instructions de mêmes durées
séquenceur micro-programmé séquenceur câblé
Pr MOHAMED HAMLICH
Processeur superscalaire
Pr MOHAMED HAMLICH
Architectures Superscalaires
•n unités d’exécution
•n instructions délivrées par cycle
•ordonnancement dynamique en matériel!!
Pr MOHAMED HAMLICH
Architecture Superscalaire
• Multiplie les unités fonctionnelles
36
Pr MOHAMED HAMLICH
Architecture VLIW
•Une seule unité de contrôle, une instruction très longue par cycle. Une autre
technique consiste à disposer d'unités d'exécution en parallèle mais d'agencer les
instructions respectives au niveau du compilateur de telle sorte qu'une longue
instruction correspondant à plusieurs instructions concaténées soit présentée au
processeur. Cet agencement statique à la compilation permet en théorie
d'atteindre des performances élevées par rapport aux techniques "superscalaires".
Cependant l'écriture de tels compilateurs demeure très difficile et les résultats
restent perfectibles, à moins d'utiliser des fonctions optimisées écrites en langage
machine.
37
Pr MOHAMED HAMLICH
Évolutions des architectures
(années 90)
• Adressage 64 bits
• Optimisations:
•…
38
Pr MOHAMED HAMLICH
Comment faire des processeurs plus rapides?
39
Pr MOHAMED HAMLICH
Qu’est ce que le software Pipelining?
• Parallélisme d’instructions
40
Pr MOHAMED HAMLICH
Software Pipelining (suite)
3 instructions simultanées dans le pipe
Charge Charge
l’instruction
Décode opérandes Exécute Ecriture
Charge Charge
l’instruction
Décode opérandes Exécute Ecriture
Charge Charge
l’instruction
Décode opérandes Exécute Ecriture
Pr MOHAMED HAMLICH
RCH DEC EXE STK
Pr MOHAMED HAMLICH 42
Pipeline
43
Pr MOHAMED HAMLICH
Pipeline
Pr MOHAMED HAMLICH
cycles 1 2 3 4 5 6 7 8
instructions
1 CH DC EX SV
2 CH DC EX SV
3 CH DC EX SV
4 CH DC EX SV
5 CH DC EX SV
45
Pr MOHAMED HAMLICH
Architecture 64 bits: Motivations
• Des applications nécessitant des ressources accrues
2 32 4GB
2 64 1800TB (théorique)
Pr MOHAMED HAMLICH
Les performances d ’un
micro-processeur
47
Pr MOHAMED HAMLICH
Le cache
• L’accès à la mémoire vive est lent, et celui au disque est encore plus
lent ;
• Pour éviter d ’accéder à la mémoire vive (RAM) ou au disque dur, on
utilise un cache.
Pr MOHAMED HAMLICH
Avantage et inconvénients
Avantage :
La mémoire cache permet au processeur de ne pas
être ralenti par la mémoire extérieure (RAM, disque
dur,…)
Inconvénients :
La mémoire cache est chère, et elle occupe de la place
sur le micro-processeur.
49
Pr MOHAMED HAMLICH
Le parallélisme
50
Pr MOHAMED HAMLICH
Carte mère bi-processeurs / double coeurs
Le parallélisme
• Implémenter des architectures d'électroniques numériques et les
algorithmes spécialisés pour celles-ci traiter des infos de manière
simultanées
Pr MOHAMED HAMLICH
51
Processeur multi-coeurs
52
Pr MOHAMED HAMLICH
Carte mère multi-processeurs
Pr MOHAMED HAMLICH
54
Carte mère double cœurs / bi-processeurs
Pr MOHAMED HAMLICH
55
Avantages des multi-cœurs
Avantages par rapport au mono-cœur : calculs en parallèle
puissance de calcul supérieure avec une fréquence d’horloge
(nb cycles/s) moins élevée
consomme moins d’énergie électrique
Pr MOHAMED HAMLICH
57
Inconvénients des multi-coeurs
- programmes repensés pour exploiter pleinement les
caractéristiques de ces processeurs
sinon ils ne peuvent utiliser qu’un des cœurs (baisse de
performance)
2006 - très peu de logiciels géraient le bi-cœurs (sauf sous
Linux): pas conçus pour tirer le maximum de cette technologie
OS peuvent diviser par eux-mêmes les calculs effectués par les
logiciels qu’ils exécutent
quadri-cœurs remplacent les bi-cœurs, car ils ne demandent
quasiment pas de modification logicielle.
Pr MOHAMED HAMLICH
58
Multi-processeurs et multi-cœurs
• Exemple : machine dotée de deux processeurs (de fréquence 2,8
GHz) et de quatre cœurs
la fréquence de calcul vaut 2,8 GHz (elle est propre au processeur
et non pas à chaque cœur)
seule la puissance du processeur (exprimée en FLO/s ou FLOPS :
« opérations à virgule flottante par seconde ») sera multiplié par le
nombre de cœurs.
Pr MOHAMED HAMLICH
59
Mesure de performances
Pour mesurer la performance d'un ordinateur, on utilise deux unités
mesure :
Pr MOHAMED HAMLICH
Mesure de performance
CPI = Nombre de cycles d'horloge par
instruction
Temps d' exécutionUC Nombre de cycles UC Temps de cycle pour un programme
ou
Nombre de cycles UC pour un programme
Temps d' exécutionUC
Fréquenced'horloge
Nombre de cycles UC pour un programme
CPI
Nombre d' instructions
Nombre d' instruction CPI
Temps UC Nombre d' instructions CPI Temps cycle d' horloge
Fréquenced' horloge
Pr MOHAMED HAMLICH
Exemple : Un ordinateur exécute un programme comportant 250
instructions de 3 types :
100 instructions de type 1
100 instructions de type 2
50 instructions de type 3
62
Pr MOHAMED HAMLICH
Le nombre de cycles par instruction de type 1 est 1,5
Le nombre de cycles par instruction de type 2 est 1
Le nombre de cycles par instruction de type 3 est 1,75
La fréquence de l'ordinateur est de 3,5 Ghz.
Calculer la performance MIPS.
63
Pr MOHAMED HAMLICH
La loi d’Amdahl
tempsd'exécutionancien
accélérationglobale 1
tempsd'exécutionnouveau fractionaméliorée
(1 fractionaméliorée)
accélérationaméliorée
exercice
Considérons un dispositif d’amélioration dix fois plus rapide que la
machine originelle mais que l’on ne peut utiliser que 40% du temps.
Quelle est l’accélération totale obtenue en intégrant ce dispositif ?
64
Pr MOHAMED HAMLICH
La loi d’Amdahl
65
Pr MOHAMED HAMLICH
Un programme est exécuté en 600 cycles d’horloges avec CPI=1.5
1) Donner le nombre d’instructions du programme
2) Sachant que F= 1,5Ghz, calculer le temps d’exécution.
3) En déduire le MIPS
Pr MOHAMED HAMLICH 66
Les systèmes numériques complexes tels que les calculateurs
doivent traiter des nombres, des chaînes de caractères
alphanumériques, des instructions.
A cette fin, ces informations sont représentées à l’aide de l’élément
binaire, noté eb ou bit (binary digit).
L’objectif de ce chapitre est de rappeler les notions fondamentales
du codage de l’information utilisé par les systèmes numériques.67
Pr MOHAMED HAMLICH
Représentation polynomiale d’un nombre
De
manière générale tout nombre N exprimé dans une base b peut se
décomposer sous la forme polynomiale suivante :
avec
• S est le signe du nombre
• ai est le symbole de rang i, ai ∈N et 0 ≤ ai < b
• an est le symbole de poids le plus fort (MSB :
Most Significant Bit si b = 2), et a−m est le symbole de
poids le plus faible (LSB : Least Significant Bit si b = 2)
68
Pr MOHAMED HAMLICH
Bases de numération usuelles et
représentation des nombres positifs.
Conversions entre bases de numération
Les bases de numération les plus utilisées sont la base décimale (b =
10), la base binaire (b = 2), et les bases dérivées de la base binaire :
base octale (b = 8) et base hexadécimale (b = 16).
69
Pr MOHAMED HAMLICH
Base b vers base 10
Pour convertirun nombre d’une base b vers la base décimale, on utilise
la méthode dite des additions qui consiste à utiliser la représentation
du nombre sous forme polynomiale (équation 1).
Exemple 1 : conversion du nombre binaire entier
70
Pr MOHAMED HAMLICH
Exemple 2 : conversion du nombre binaire fractionnaire
71
Pr MOHAMED HAMLICH
Exemple 3 : conversion du nombre octal entier
72
Pr MOHAMED HAMLICH
Exemple 4 : conversion du nombre hexadécimal fractionnaire:
73
Pr MOHAMED HAMLICH
Base 10 vers base b
Nombres entiers:
• Pour effectuer une conversion d’un entier décimal dans une autre
74
Pr MOHAMED HAMLICH
75
Pr MOHAMED HAMLICH
76
Pr MOHAMED HAMLICH
Nombres fractionnaires
77
Pr MOHAMED HAMLICH
78
Pr MOHAMED HAMLICH
79
Pr MOHAMED HAMLICH
• Il est visible sur les deux exemples précédents que la conversion peut
80
Pr MOHAMED HAMLICH
BASE 2 VERS BASE 8 OU 16
équivalent octale:
81
Pr MOHAMED HAMLICH
82
Pr MOHAMED HAMLICH
83
Pr MOHAMED HAMLICH
• Pour la conversion inverse, il suffit de développer chaque symbole de
la représentation dans la base B sur n bits.
84
Pr MOHAMED HAMLICH
Représentation binaire des nombres
signés
85
Pr MOHAMED HAMLICH
Représentation en complément à 2
• Le complément à 2 est le mode de représentation le plus utilisé en
arithmétique binaire et donc dans les ordinateurs pour coder les
nombres entiers.
• Dans cette représentation, les nombres positifs se représentent par
leur valeur binaire naturelle.
• Par exemple +6 est représenté par 0000 0110 sur un format de 8 bits.
• La représentation des nombres négatifs s’obtient comme suit
• On part de la représentation binaire naturelle de l’opposé
arithmétique du nombre à coder (nombre positif),
• On calcule son complément à 1 (CA1) ou complément restreint.
Celui-ci est obtenu en inversant tous ses bits,
• On en déduit son complément à 2 (CA2) ou complément vrai en
ajoutant 1 au niveau du LSB.
86
Pr MOHAMED HAMLICH
87
Pr MOHAMED HAMLICH
88
Pr MOHAMED HAMLICH
Nombres à virgule flottante
• Permet de représenter:
partie fractionnaire
(ex.: 23,5618)
11 - 89
Pr MOHAMED HAMLICH
90
Pr MOHAMED HAMLICH
91
Pr MOHAMED HAMLICH
• 12,75)10= (?)ieee754
• 12)10=1100)2
• 0,75x2=1,5
• 0,5x2=1
• 12,75)10=(1100,11)2=(1,10011)x2^3
• Exposant: 3+127=130=(10000010)2
• Pseudomantisse:(10011000000000000000000)
• 12,75)10=(0 10000010 10011000000000000000000)IEEE754
Pr MOHAMED HAMLICH 92
Codage en virgule flottante
• On utilise l’écriture semi-logarithmique suivante :
93
Pr MOHAMED HAMLICH
Nombres à virgule flottante
• Composition:
• Exposant: puissance de 10
• Exemple:
241506800 0,2415068109
94
Pr MOHAMED HAMLICH
Nombres à virgule flottante
32 bits
• Composition:
• Mantisse: 24 bits (1 le + significatif pas compté)
• Exposant: polarisé (127 est ajouté à l’exposant réel)
Pr MOHAMED HAMLICH
1011010010001 1,011010010001 212
32 bits
0 10001011 01101001000100000000000
S E F
96
Pr MOHAMED HAMLICH
97
Pr MOHAMED HAMLICH
98
Pr MOHAMED HAMLICH
Code ASCII
99
Pr MOHAMED HAMLICH
Code Unicode (ISO 8859-1)
Pour dépasser cette limite, une nouvelle norme sur 16 bits fut
créée.
100
Pr MOHAMED HAMLICH
Table des caractères ASCII
101
Pr MOHAMED HAMLICH