Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20021
Architecture Fondamentaledes Microprocesseurs
Institut Supérieur d’Electronique du Nord41 Boulevard Vauban - 59046 Lille Cedex - France
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20022
Architecture d’un ordinateur
Unitécentrale
Mémoirecentrale
Contrôleurs d’entrée/sortieou interface
Canaux de communication (bus)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20023
Les types d’architecture : SISD
Une instruction manipule une seule donnée(Single Instruction Single Data)
instruction
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20024
Une instruction manipule un ensemble de données (Single Instruction Multiple Data) :machine tableau
Les types d’architecture : SIMD
instruction
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20025
Les types d’architecture : MISD
Un ensemble d’instructions manipule une seule donnée (Multiple Instruction Single Data) :machine vectorielle ou pipeline
Instruction 1
Instruction 2
Instruction 3
Instruction 4
Instruction 2
Instruction 3
Instruction 4
Instruction 5
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20026
Les types d’architecture : MIMD
Un ensemble d’instructions manipule un ensemble de données (Multiple Instruction Multiple Data) : machine multi-processeurs
MISDSISD
SISD
SIMD
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20027
Architecture de Von Neuman
Machine de Von Neuman (1945) programme : suite d’instructions codées en binaire
et mémorisées en mémoire centrale données : codées en binaire et mémorisées en
mémoire centrale les instructions sont exécutées séquentiellement par
l’unité centrale une instruction manipule une seule donnée (SISD)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20028
Mémoire centrale : rôle et fonctions
Rôle : mémorisation des instructions et des données code binaire (algèbre de Boole)
0 : absence de courant 1 : présence de courant
Fonctions d’accès : écriture : mémorisation d’une information lecture : récupération d’une information
préalablement enregistrée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20029
Mémoire centrale : constituants
Cellule mémoire : circuit électronique chargé de mémoriser un seul bit d’information
Mémoire centrale : construire un mot à partir d’un ensemble de cellules construire un ensemble de mots créer un mécanisme d’accès à un mot dans
l’ensemble des mots : adressage
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200210
Mémoire centrale : vision logique
Vision logique : tableau de mots plus ou moins grand mécanisme d’adressage : chaque mot est repéré par
son emplacement (adresse) dans le tableau (indice)
Flottant IEEE sur 32 bits(valeur -1,2345.10-4)92
77
B9
0E
Entier signé sur 16 bits(valeur -2)FE
FF2006
2004
2005
2003
2002
2001
2000
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200211
Unité centrale : composition
L’unité centrale (CPU - Central Processing Unit) regroupe 5 blocs fonctionnels :
l’unité de contrôle
l’unité arithmétique et logique
les registres généraux
les registres spécialisés
l’interfaçage avec l’extérieur
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200212
Unité de contrôle
Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions
intel 8085Bus de communication interne
Registre D
Registre H
Registre C
Registre E
Registre L
Registre B
Compteur ordinal PC
Pointeur de pile SP
Accumulateur
Indicateurs
Registre d’instruction
Décodeur d’instructions et séquenceur
Unité de contrôleRegistre d’adresse Registre de donnée
UAL
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200213
Unité de contrôle
Elle contrôle la totalité du fonctionnement de l’unité centrale lecture, décodage, et exécution des instructions
lecture et écriture des données en mémoire centrale
lecture et écriture des registres
contrôle de l’unité arithmétique et logique
contrôle de l’interface avec l’extérieur : bus d’adresse et de donnée fonctions d’accès à la mémoire centrale interruptions, ...
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200214
Programme
Un programme écrit en langage évolué (C) n’est pas compréhensible directement par la machine (i.e. par l’unité de contrôle)
...if (i == 0) { i = 1 ;}j = 2 ;...
... cmp i,#0 bne label move #1,ilabel: move #2,j ...
compilateur
... 1000 3E332000 1004 2A100B 1007 3F332001 100B 3F332102 ...
assembleur
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200215
Instructions
étiquette adresse
mnémonique code opération (opcode)
opérande(s) opérande(s)
... cmp i,#0 bne label move #1,ilabel: move #2,j ...
... 1000 3E 332000 1004 2A 100B 1007 3F 332001 100B 3F 332102 ...
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200216
Exécution d’un programme
Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions
intel 8085Bus de communication interne
Registre D
Registre H
Registre C
Registre E
Registre L
Registre B
Compteur ordinal PC
Pointeur de pile SP
Accumulateur
Indicateurs
Registre d’instruction
Décodeur d’instructions et séquenceur
Unité de contrôleRegistre d’adresse Registre de donnée
UAL
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200217
Exécution d’un programme
Le compteur ordinal (PC ou Program Counter) registre spécialisé contient à tout moment l’adresse de l’instruction qui
va être exécutée
3E
33
00
20
10
2A
0B
PC 1004
1006
1004
1005
1003
1002
1001
1000
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200218
Unité arithmétique et logique (ALU)
Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions
intel 8085Bus de communication interne
Registre D
Registre H
Registre C
Registre E
Registre L
Registre B
Compteur ordinal PC
Pointeur de pile SP
Accumulateur
Indicateurs
Registre d’instruction
Décodeur d’instructions et séquenceur
Unité de contrôleRegistre d’adresse Registre de donnée
UAL
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200219
Unité arithmétique et logique (ALU)
Rôle : calcul d’opérations élémentaires opérations arithmétiques
addition, soustraction, multiplication, division changement de signe
opérations logiques et, ou, ou exclusif, inversion décalage, rotation
Traite des mots de taille fixe (1, 2, 4 octets)
Génère les indicateurs caractérisation du dernier résultat produit par l’ALU
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200220
Registres
Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions
intel 8085Bus de communication interne
Registre D
Registre H
Registre C
Registre E
Registre L
Registre B
Compteur ordinal PC
Pointeur de pile SP
Accumulateur
Indicateurs
Registre d’instruction
Décodeur d’instructions et séquenceur
Unité de contrôleRegistre d’adresse Registre de donnée
UAL
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200221
Registres
Registres généraux opérandes pour l’unité arithmétique et logique résultats des calculs (accumulateur) en nombre variable (2 à plusieurs dizaines) taille = taille des mots traités par l’ALU
Registres spécialisés compteur ordinal (Program Counter - PC) registre d’état (Status Register - SR) pointeur de pile (Stack Pointer - SP)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200222
3322
3321
3320
3319
(variable i)
(variable j)
Exemple d’exécution
SR (indicateur Z)
PC
0
100F
02
04
0
????
02
04
?
10000410 0
100704
10 0
100404
10
... cmp i,#0 bne label move #1,ilabel: move #2,j ...
... 1000 3E332100 1004 2A100B 1007 3F332101 100B 3F332002 100F ...
...if (i == 0) { i = 1 ;}j = 2 ;...
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200223
Modes d’adressage des opérandes
Permettent de localiser précisément les opérandes d’une instruction immédiat (constante) registre (donnée « anonyme ») direct (donnée « variable ») en mémoire centrale indirect (pointeur sur ...) en mémoire centrale via un
registre autres suivant la puissance du CPU :
indirect avec déplacement (8086, 68000) pré/post indexé (68000) facteur d’échelle (80386)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200224
Modes d’adressage (1)
3E
33
immédiat (constante) 0
registre R2
direct / absolu [3044]
4444
2222
3333
1111 R1
R3
R2
R4
0000
4444
2222
6666 3046
3042
3044
3040
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200225
Modes d’adressage (2)
indirect via registre [R2]
indirect via registreavec déplacement
[R2-2]
4444
3044
3333
1111R1
R3
R2
R4
0000
4444
2222
6666 3046
3042
3044
3040
4444
3044
3333
1111R1
R3
R2
R4
0000
4444
2222
6666 3046
3042
3044
3040
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200226
Jeu d’instructions (1)
déplacement MOV destination,source
MOV R3,R2
MOV [2000],-4
R1
R3
R2
R44444
3333
1111
2222
2002
1FFE
2000
1FFC4444
3333
1111
2222
2222
FFFC
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200227
Jeu d’instructions (2)
opérations
ADD R3,R2
NOT [R2]
R1
R3
R2
R44444
3333
1111
2222
ADD destination,source
NOT destination
4444
3044
3333
1111R1
R3
R2
R4
0000
4444
2222
6666 3046
3042
3044
3040
5555
BBBB
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200228
Jeu d’instructions (3)
Saut inconditionnel - JMP adresse le compteur ordinal (PC) est remplacé par l’adresse spécifiée
par l’instruction l’exécution du programme reprend à partir de la nouvelle
valeur du compteur ordinal Saut conditionnel - JNZ adresse
la condition porte sur la valeur d’un ou de plusieurs indicateurs de l’UAL (registre d’état)
le compteur ordinal (PC) est remplacé par l’adresse spécifiée par l’instruction si et seulement si la condition est vérifiée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200229
Sous-programme
Vision logique : 2 composants une pile mémorisée en mémoire centrale le pointeur de sommet de pile (Stack Pointer - SP)
Appel d’un sous-programme : CALL adresse SP SP - k // création d’un nouveau sommet [SP] PC // sauvegarde de l’adresse de retour PC adresse // saut au sous-programme
Retour d’un sous-programme : RETURN PC [SP] // restauration de l’adresse de retour SP SP + k // destruction du sommet
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200230
pile (k = 2)
1004
1002
1000
PC
SP
Exemple d’exécution
3
1002
3
101
101
3
1000
101
201
3
1000
101
102
3
1002
101
4
3
1004
2
1004
100
1002
3
101
200
3
1000
101
3
3
1004
1 ... 2 CALL 100 3 ...
99 ...100 CALL 200101 RETURN102 ...
199 ...200 RETURN201 ...
101
101
3
1002
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200231
Interruptions
Définition : arrivée d’un événement extérieur à l’unité centrale
Action : appel forcé d’un sous-programme d’interruption,
indépendant du programme en cours d ’exécution
Unitécentrale
Programme en cours
Appel du 18
CapteurProgramme en coursProgramme en cours