Aucun titre de diapositive

publicité
Architecture Fondamentale
des Microprocesseurs
Institut Supérieur d’Electronique du Nord
41 Boulevard Vauban - 59046 Lille Cedex - France
1
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Architecture d’un ordinateur
Canaux de
communication (bus)
Unité
centrale
Mémoire
centrale
Contrôleurs d’entrée/sortie
ou interface
2
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Les types d’architecture : SISD

Une instruction manipule une seule donnée
(Single Instruction Single Data)
instruction
3
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Les types d’architecture : SIMD

Une instruction manipule un ensemble de
données (Single Instruction Multiple Data) :
machine tableau
instruction
4
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Les types d’architecture : MISD

5
Un ensemble d’instructions manipule une seule
donnée (Multiple Instruction Single Data) :
machine vectorielle ou pipeline
Instruction 1
Instruction 2
Instruction 2
Instruction 3
Instruction 3
Instruction 4
Instruction 4
Instruction 5
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Les types d’architecture : MIMD

Un ensemble d’instructions manipule un
ensemble de données (Multiple Instruction
Multiple Data) : machine multi-processeurs
SIMD
SISD
SISD
6
MISD
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Architecture de Von Neuman

Machine de Von Neuman (1945)


7
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 2002
Mémoire centrale : rôle et fonctions

Rôle : mémorisation des instructions et des
données

code binaire (algèbre de Boole)



Fonctions d’accès :


8
0 : absence de courant
1 : présence de courant
écriture : mémorisation d’une information
lecture : récupération d’une information
préalablement enregistrée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Mémoire centrale : constituants

Cellule mémoire : circuit électronique chargé
de mémoriser un seul bit d’information

Mémoire centrale :



9
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 2002
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)
2006
FF
2005
FE
Entier signé sur 16 bits
(valeur -2)
2004
10
2003
B9
2002
0E
2001
77
2000
92
Flottant IEEE sur 32 bits
(valeur -1,2345.10-4)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Unité centrale : composition

11
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 2002
Unité de contrôle
intel 8085
Bus de communication interne
Registre d’instruction
Accumulateur
Registre B Registre C
Registre D Registre E
UAL
Registre H Registre L
Décodeur
d’instructions
et séquenceur
Indicateurs
Unité de contrôle
Horloge
12
Interruptions
Bus de contrôle
Pointeur de pile SP
Compteur ordinal PC
Registre d’adresse
Registre de donnée
Bus d’adresse
Bus de donnée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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 :



13
bus d’adresse et de donnée
fonctions d’accès à la mémoire centrale
interruptions, ...
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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)
compilateur
...
if (i == 0) {
i = 1 ;
}
j = 2 ;
...
14
assembleur
...
cmp
bne
move
label: move
...
i,#0
label
#1,i
#2,j
...
1000
1004
1007
100B
3E332000
2A100B
3F332001
3F332102
...
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Instructions
mnémonique
code opération (opcode)
...
i,#0
label
#1,i
#2,j
...
1000
1004
1007
100B
opérande(s)
adresse
cmp
bne
move
label: move
...
étiquette
15
3E 332000
2A 100B
3F 332001
3F 332102
...
opérande(s)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Exécution d’un programme
intel 8085
Bus de communication interne
Registre d’instruction
Accumulateur
Registre B Registre C
Registre D Registre E
UAL
Registre H Registre L
Décodeur
d’instructions
et séquenceur
Indicateurs
Unité de contrôle
Horloge
16
Interruptions
Bus de contrôle
Pointeur de pile SP
Compteur ordinal PC
Registre d’adresse
Registre de donnée
Bus d’adresse
Bus de donnée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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
PC
17
1004
0B
1006
10
1005
2A
1004
00
1003
20
1002
33
1001
3E
1000
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Unité arithmétique et logique (ALU)
intel 8085
Bus de communication interne
Registre d’instruction
Accumulateur
Registre B Registre C
Registre D Registre E
UAL
Registre H Registre L
Décodeur
d’instructions
et séquenceur
Indicateurs
Unité de contrôle
Horloge
18
Interruptions
Bus de contrôle
Pointeur de pile SP
Compteur ordinal PC
Registre d’adresse
Registre de donnée
Bus d’adresse
Bus de donnée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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

19
caractérisation du dernier résultat produit par l’ALU
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Registres
intel 8085
Bus de communication interne
Registre d’instruction
Accumulateur
Registre B Registre C
Registre D Registre E
UAL
Registre H Registre L
Décodeur
d’instructions
et séquenceur
Indicateurs
Unité de contrôle
Horloge
20
Interruptions
Bus de contrôle
Pointeur de pile SP
Compteur ordinal PC
Registre d’adresse
Registre de donnée
Bus d’adresse
Bus de donnée
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Registres

Registres généraux





Registres spécialisés



21
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
compteur ordinal (Program Counter - PC)
registre d’état (Status Register - SR)
pointeur de pile (Stack Pointer - SP)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Exemple d’exécution
...
if (i == 0) {
i = 1 ;
}
j = 2 ;
...
...
cmp
bne
move
label: move
...
3322
3321
3320
i,#0
label
#1,i
#2,j
1000
1004
1007
100B
100F
PC
04
02
10
...
3E332100
2A100B
3F332101
3F332002
...
100F
????
1000
1007
1004
(variable i)
(variable j)
SR (indicateur Z)
?
0
3319
22
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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 :



23
indirect avec déplacement (8086, 68000)
pré/post indexé (68000)
facteur d’échelle (80386)
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Modes d’adressage (1)
immédiat (constante)
0
registre
R2
direct / absolu
24
[3044]
1111
R1
2222
R2
3333
R3
4444
R4
33
6666
3046
3E
4444
3044
2222
3042
0000
3040
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Modes d’adressage (2)
indirect via registre
indirect via registre
avec déplacement
25
[R2]
[R2-2]
R1
1111
R2
3044
6666
3046
R3
3333
4444
3044
R4
4444
2222
3042
0000
3040
R1
1111
R2
3044
6666
3046
R3
3333
4444
3044
R4
4444
2222
3042
0000
3040
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Jeu d’instructions (1)
déplacement
MOV
MOV
26
R3,R2
MOV
destination,source
1111
R1
2222
R2
3333
2222
R3
4444
R4
1111
2002
2222
FFFC
2000
3333
1FFE
4444
1FFC
[2000],-4
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Jeu d’instructions (2)
opérations
ADD
ADD
R3,R2
NOT
NOT [R2]
27
destination,source
1111
R1
2222
R2
3333
5555
R3
4444
R4
destination
R1
1111
R2
3044
6666
3046
R3
3333
4444
BBBB
3044
R4
4444
2222
3042
0000
3040
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Jeu d’instructions (3)

Saut inconditionnel - JMP adresse



Saut conditionnel - JNZ adresse


28
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
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 2002
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




// création d’un nouveau sommet
// sauvegarde de l’adresse de retour
// saut au sous-programme
Retour d’un sous-programme : RETURN


29
SP  SP - k
[SP]  PC
PC  adresse
PC  [SP]
SP  SP + k
// restauration de l’adresse de retour
// destruction du sommet
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Exemple d’exécution
1 ...
2 CALL 100
3 ...
99
100
101
102
201
102
100
200
101
4
2
3
PC
1004
3
101
...
CALL 200
RETURN
...
1002
1000
pile (k = 2)
199 ...
200 RETURN
201 ...
30
SP
1000
1004
1002
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
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
Capteur
Programme en cours
Unité
centrale
Appel du 18
31
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Téléchargement