CH 4. Introduction aux Microprocesseurs

publicité
Microprocesseurs & Microcontrôleurs
Lotfi BOUSSAID
Département de Génie Électrique
Ecole Nationale d’Ingénieurs de Monastir
[email protected]
2016 - 2017
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
2
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
3
CH 1. Codage de l’Information
Histoire des systèmes de numération
o Vers la fin des années 30, Claude Shannon démontra qu'à l'aide de contacteurs il était
possible d'effectuer des opérations logiques en associant le nombre 1 pour « vrai » et
0 pour « faux ».
o Ce codage de l'information est nommé base binaire.
o L'homme calcule depuis 2000 ans avant Jésus-Christ avec 10 chiffres (0, 1, 2, 3, 4, 5, 6,
7, 8, 9), on parle alors de base décimale (ou base 10).
o Toutefois dans des civilisations plus anciennes ou pour certaines applications actuelles
d'autres bases de calcul ont et sont toujours utilisées :
• base sexagésimale (60), utilisée par les Sumériens ;
• base vicésimale (20), utilisée par les Mayas ;
• base duodécimale (12), les anglo-saxons dans le système d’heure ;
• base quinaire (5), utilisée par les Mayas ;
• base binaire (2), utilisée par l'ensemble des technologies numériques
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
4
CH 1. Codage de l’Information
Bit
•
•
•
Le terme bit signifie « Binary Digit », c'est-à-dire 0 ou 1 ;
Un bit : deux états sont possibles : soit 1, soit 0 ;
Deux bits : 4 états possibles : 00, 01, 10 et 11
Poids des bits
Dans un nombre binaire, la valeur d'un bit, appelée poids, dépend de la position
du bit en partant de la droite.
Nombre binaire
Poids
1
1
1
1
1
1
1
1
27=128
26=64
25=32
24=16
23=8
22=4
21=2
20=1
Octet
L'octet (byte) est une unité d'information composée de 8 bits.
Il permet de stocker un caractère, tel qu'une lettre ou un chiffre.
Le plus petit nombre est représenté par : 00000000 = 0
Le plus grand nombre est représenté par : 11111111 = 255
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
5
CH 1. Codage de l’Information
Un kilooctet (ko) = 210 octets = 1024 octets
Un Mégaoctet (Mo) = 220 octets = 1024 ko = 1 048 576 octets
Un Gigaoctet (Go) = 230octets = 1024 Mo = 1 073 741 824 octets
Un Téraoctet (To) = 240 octets = 1024 Go = 1 099 511 627 776 octets
Systèmes de numération en base 2, 8 et 16
Dans un système de base b > 1, les symboles 0, 1, 2, .. b-1 sont appelés chiffres.
Tout nombre entier positif peut être représenté par une expression de la forme :
𝑁 = 𝑛𝑖=0 𝑎𝑖 𝑏𝑖 Forme canonique
On utilise la notation condensée : N = (an an-1 … a1 a0 )b
En base 10 : (132)10 = 1 x 102 + 3 x 101 + 2 100
En binaire : (132)10 = 1 x 27 + 0 x 26 + 0 x 25 + 0 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 0 x 20 = (10000100)2
En base 8 : (132)10 = 2 x 82 + 0 x 81 + 4 x 80 = (204) 8
En base 16 : (132)16 = 8 x 161 + 4 x 160 = (84)16
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
6
CH 1. Codage de l’Information
Systèmes de numération en
base 2, 8 et 16
Décimal
Binaire
Hexadécimal
Octal
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
8
10
9
1001
9
11
10
1010
A
12
11
1011
B
13
12
1100
C
14
13
1101
D
15
14
1110
E
16
15
1111
F
17
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
7
CH 1. Codage de l’Information
Conversions entre systèmes
Binaire
Décimal
Lotfi BOUSSAID
Hexadécimal
Microprocesseurs & Microcontrôleurs
8
CH 1. Codage de l’Information
Conversions entre systèmes
 Méthode des soustractions successives
 Méthode des divisions successives
 Méthode de regroupement
 Méthode d’éclatement
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
9
CH 1. Codage de l’Information
Conversions entre systèmes
• Méthodes des divisions successives
(125)10 = (1111101)2
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
10
CH 1. Codage de l’Information
Conversions entre systèmes
• Méthodes des soustractions successives
(235)10 = (?)8
80 = 1; 81 = 8; 82 = 64; 83 = 512
235 – 64 = 171; 171 – 64 = 107; 107 – 64 = 43; => 3 x 64
43 – 8 = 35; 35 – 8 = 27; 27 – 8 = 19; 19 - 8 = 11; 11 - 8 = 3 => 5 x 8
3 – 1 = 2; 2 – 1 = 1; 1 – 1 = 0; => 3 x 1
(235)10 = 3 x 64 + 5 x 8 + 3 x 1 = (353)8
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
11
CH 1. Codage de l’Information
Conversions entre systèmes
• Méthode de regroupement
(001 111 101 010 11 1 100)2
(1111 1010 1011 1100)2
(F
A
B
C)16
(1
7
5
2
7
4)8
• Méthode d’éclatement
(5 3 7 2 6)8
(101 011 111 010 110)2
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
12
CH 1. Codage de l’Information
Limitation des représentations
Le nombre de symboles n’est pas infini.
Sur n bits il n’est possible d’écrire que :
2n nombres différents!
(De 0 à 2n-1)
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
13
CH 1. Codage de l’Information
Codage des entiers
 Les entiers naturels
 Les entiers relatifs
o Codage en complément à 1 (restreint)
o Codage en complément à 2
 Récapitulatif: codage sur 4 bits
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
14
CH 1. Codage de l’Information
Les entiers naturels
 Sur 8 bits (un octet) on peut écrire 28 nombres différents, soit les entiers naturels de 0 à
255.
 Codage standard ASCII sur 1 octet (American Standard Code for Information Interchange)
 De 0 à (31)d, les codes ASCII ne sont pas imprimable
-
(10)10 = (0A)16 début de ligne
-
(13)10 = (0D)16 passage à la ligne
-
De (32)10 à (127)10 les codes ASCII sont standards
-
(48)10= (30)16 caractère ‘0’
-
(49)10 = (31)16 caractère ‘1’
-
(65)10 = (41)16 caractère ‘A’
-
(97)10 = (61) 16 caractère ‘à’
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
15
CH 1. Codage de l’Information
Les entiers relatifs
 Comment stocker des entiers qui peuvent être soit positifs soit négatifs?
 Il faut stocker le signe et la valeur absolue!
 Sur n bits, le plus grand positif sera au mieux de 2n-1-1
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
16
CH 1. Codage de l’Information
Codage en complément à 1 (restreint) sur n bits
 Signe sur le premier bit à gauche,
 Les positifs sont codés comme des entiers naturels en ajoutant 1 zéro à gauche
pour obtenir n bits,
 Pour les négatifs tous les bits sont inversés par rapport au codage en entier
naturel sur n bits.
 Exemple:
(00010011)CR code +19
(11101100)CR code -19
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
17
CH 1. Codage de l’Information
Codage en complément à 2 sur n bits
 Signe sur le premier bit à gauche,
 Les positifs sont codés comme des entiers naturels en ajoutant 1 zéro à
gauche pour obtenir n bits.
 Pour les négatifs on ajoute 1 au codage en complément à 1 sur n bits.
 Exemple:
(00010011)CR code +19
(11101101)CR code -19
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
18
CH 1. Codage de l’Information
Codage des entiers relatifs sur 4 bits
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
19
CH 1. Codage de l’Information
Opérations
 En complément à un
• Le codage se fait en une étape
• L’addition en deux étapes
 En complément à deux
• Le codage se fait en deux étapes
• L’addition se fait en une étape
• Il est utilisé dans les machines actuelles
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
20
CH 1. Codage de l’Information
Nombres Fractionnaires
N = an2n + an-1 2n-1 + … + a1 21 + a020 + a-12-1 + a-22-2 + …
Cette dernière formule peut donc servir de conversion binaire-décimal.
Exemple : an2n + an-1 2n-1 + … + a1 21 + a0 + a-1(1/2) + a-2 (1/4) + …
0,0112 = 0 x (1/2) + 1 x (1/4) + 1 x (1/8)
= 0 + 0,25 + 0,125 = (0,375)10
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
21
CH 1. Codage de l’Information
Nombres Fractionnaires
Exemple : (0,5625)10
Réponse : (0,10010000)2
Pour passer du décimal à une autre base, il suffit de multiplier par la base en
question au lieu de 2.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
22
CH 1. Codage de l’Information
Nombres Fractionnaires
Pour un nombre constitué d’une partie entière et d’une partie
fractionnaire, on convertit les deux parties séparément, la partie entière
avec l’une des méthodes de conversion des entiers, la partie fractionnaire
avec les méthodes présentées dans la présente section.
Exemple: convertir (123,21)4 en décimal
1234= 1 x 42+ 2 x 41 + 3 40 = 2710
0,214= 2 x 4-1 + 1 x 4-2 = 2 x 0,25 + 1 x 0,0625 = 0,562510
Réponse : 27,562510
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
23
CH 1. Codage de l’Information
Nombres Fractionnaires
Le développement s’arrête lorsque la précision voulue est obtenue
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
24
CH 1. Codage de l’Information
Nombres Fractionnaires
Virgule fixe
Partie entière
Partie fractionnaire
32
32
Inconvénients : étendue de représentation limitée
- 32 bits seulement dans la partie entière
- 32 bits seulement dans la partie fractionnaire
- Perte de précision pour les petits nombres
Complexité de traitement de la virgule lors d’opérations telles que la multiplication et
la division.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
25
CH 1. Codage de l’Information
Nombres Fractionnaires
Virgule fixe
Exemples :
1,0 = 00000001,0000000016
-1,0= FFFFFFFF,0000000016
0,5= 00000000,8000000016
-0,5= FFFFFFFF,8000000016
Plus petit nombre positif : 00000000,00000001 = 1 / 4 294 967 296
Plus grand nombre positif :7FFFFFFF,FFFFFFFF = +2 147 483 647,999999999767
Plus grand nombre négatif : 80000000,00000000 = -2 147 483 648, 999999999767
Plus petit nombre négatif : FFFFFFFF,FFFFFFFF = -1 / 4 294 967 296
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
26
CH 1. Codage de l’Information
Nombres Fractionnaires
Virgule flottante simple précision
la norme IEEE 754: X = (-1)S x1,M x2E-127
S :Signe, M :Mantisse, E : Exposant
Exemple :
9 = (-1)0 x 1,125 x 23 (9/8=1+1/8)
S=0 E=130 M=1/8
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
27
CH 1. Codage de l’Information
Nombres Fractionnaires
Virgule flottante simple précision
Exemple :
100010= 3E816= 11111010002= 1,111101000 x 29
s= 0 car nombre positif
E - 127 = 9  E = 136 = 100010002
M= 1,111101000 donc f= ,111101000
0 10001000 11110100000000000000000
qu’on peut écrire 447A0000IEEE en groupant les bits 4 par 4 et en les
codant en hexadécimal
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
28
CH 1. Codage de l’Information
Nombres Fractionnaires
Virgule flottante double précisions
-
La mantisse M est normalisée sous la forme 1;
f et l’exposant est ajusté en conséquence;
La partie f est codée sur 52bits;
On ajoute 1023 à E et le total est codé sur 11 bits ;
S est le signe de la mantisse.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
29
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
30
CH 2. Les portes logiques
La Porte Non (Not)
Table de vérité
Entrée
Sortie
E
S
E
S
0
1
1
0
S=𝑬
Entrée
Sortie
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
31
CH 2. Les portes logiques
La Porte ET (AND)
Table de vérité
S= A · B
Lotfi BOUSSAID
A
B
S
0
0
0
1
0
0
0
1
0
1
1
1
Microprocesseurs & Microcontrôleurs
32
CH 2. Les portes logiques
La Porte Non ET (NAND)
Table de vérité
S= A · B
Lotfi BOUSSAID
A
B
S
0
0
1
1
0
1
0
1
1
1
1
0
Microprocesseurs & Microcontrôleurs
33
CH 2. Les portes logiques
La Porte OU (OR)
Table de vérité
S= A + B
Lotfi BOUSSAID
A
B
S
0
0
0
1
0
1
0
1
1
1
1
1
Microprocesseurs & Microcontrôleurs
34
CH 2. Les portes logiques
La Porte Non OU (NOR)
Table de vérité
S= A + B
Lotfi BOUSSAID
A
B
S
0
0
1
1
0
0
0
1
0
1
1
0
Microprocesseurs & Microcontrôleurs
35
CH 2. Les portes logiques
La Porte OU Exclusif (XOR)
Table de vérité
S = A ⊕𝑩
Lotfi BOUSSAID
A
B
S
0
0
0
1
0
1
0
1
1
1
1
0
Microprocesseurs & Microcontrôleurs
36
CH 2. Les portes logiques
La Porte Non OU Exclusif (XNOR)
Table de vérité
S = A ⊕𝑩
Lotfi BOUSSAID
A
B
S
0
0
1
1
0
0
0
1
0
1
1
1
Microprocesseurs & Microcontrôleurs
37
CH 2. Les portes logiques
Buffer à trois états
S=E
si Activation = 1
S=E
si Activation = 0
S=Z
si Activation = 0
S=Z
si Activation = 1
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
38
CH 2. Les portes logiques
4 Types de Buffer à trois états
Activation = 1
Sortie inversée
Activation = 1
Sortie non inversée
Activation = 0
Sortie inversée
Activation = 0
Sortie non inversée
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
39
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
40
CH 3. Les Registres, les mémoires et les ALU
La bascule D
Latch
D
H
Qn
D
H
Qn
D
H
Qn
0
1
0
0
↑
0
0
↓
0
1
1
1
1
↑
1
1
↓
1
X
0
Qn-1
X
Lotfi BOUSSAID
0 ou 1 Qn-1
X
0 ou 1 Qn-1
Microprocesseurs & Microcontrôleurs
41
CH 3. Les Registres, les mémoires et les ALU
La bascule D
Différence de comportement entre le Latch et la bascule
H
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
42
CH 3. Les Registres, les mémoires et les ALU
Les Registres à décalage






Registres à entrée série et sortie série
Registres à entrée série ou entrée parallèle et sortie série
Registres à entrée série et sortie parallèle
Registres à entrée parallèle et sortie parallèle (avec sortie 3 états)
Registres à décalage bidirectionnel
Registres à entrée série et sortie série ou entrée ou sortie parallèle
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
43
CH 3. Les Registres, les mémoires et les ALU
Les Registres à décalage
Registre à entrée série et sorties parallèles
Registre à entrées parallèles et sorties parallèles
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
44
CH 3. Les Registres, les mémoires et les ALU
Les multiplexeurs
Le multiplexeur a des entrées de sélection
(adresses) et des entrées d'informations
(données).Avec deux entrées de sélection
on obtient 4 combinaisons. Un
multiplexeur qui a n entrées de sélection
aura 2n entrées d'information.
Exemple: B=0 A=1
B=1 A=0
D0
D1
D2
D3
 S=D1
 S=D2
S
AB
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
45
CH 3. Les Registres, les mémoires et les ALU
Les Décodeurs / Codeurs
Décodeur
Un décodeur :
A une entrée binaire de n bits
correspond 2n combinaisons et
M sorties telles que 2n≥M.
Codeur
Le codeur :
Une seule entrée parmi M est
activée à la fois, ce qui
correspond à un nombre
binaire en sortie.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
46
CH 3. Les Registres, les mémoires et les ALU
Addition binaire
0+0=0
1+0=1
1 + 1 = 0 avec retenue de 1
1+1+1 = 1 avec retenue de 1
Demi
Additionneur
Somme : OU exclusif
Retenue : AND
A
B
S
A
B
R
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
47
CH 3. Les Registres, les mémoires et les ALU
Addition binaire
Dans l'additionneur complet, les reports précédents et suivants doit être pris en compte
Addition hexadécimal
B3
10110011
78
+ 01111000
retenues
Total
Lotfi BOUSSAID
+1 00000000
1 0010 1011
Microprocesseurs & Microcontrôleurs
48
CH 3. Les Registres, les mémoires et les ALU
Soustraction binaire
La soustraction est réalisée à l'aide de l'addition.
On utilise pour cela le complément à 2.
Le codage par complémentation permet de transformer une soustraction en addition.
Soit une soustraction décimale : 9 -5 = 4 et en binaire :
0000 1001 -0000 0101 = 0000 0100
Le complément à 1 de 0000 0101 est : 1111 1010
Et le complément à 2 est : 1111 1010 + 1 = 1111 1011
En binaire signé le bit le plus à gauche est un 1 (nombre négatif)
Nous obtenons l'addition suivante :
0000 1001 + 1111 1011 = 0000 0100
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
49
CH 3. Les Registres, les mémoires et les ALU
Additionneur 4 bits : Le 4008
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
50
CH 3. Les Registres, les mémoires et les ALU
 A et B sont les entrées de l’ALU; se sont les données à
manipuler qu’on appelle “Operands” ;
 R est la sortie, le résultat de traitement ;
 F est le code (Instruction) qui parviens de l’Unité de
Contrôle ;
 D indique l’état de la sortie, connue aussi par la condition
du code, elle indique les cas tels que la retenue (carry-in),
le dépassement (Overflow), la division par zéro, etc.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
51
CH 3. Les Registres, les mémoires et les ALU
 Unité logique AND et OR
•
Exécute AND et OR
 Additionneur complet
•
Additionneur complet 1-bit
 ALU 1-bit
•
Exécute AND, OR, et l’addition
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
52
CH 3. Les Registres, les mémoires et les ALU
ALU 1 bits : Ajout de la soustraction
 Inverser chaque bit (par l’inverseur)
de b et rajouter 1
 Implémentation :
Solution: a + (-b) = a + (b’ +1)
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
53
CH 3. Les Registres, les mémoires et les ALU
ALU 1 bits : Fonction NOR
 NOR (a,b) = not (a or b) = not(a) . Not(b)
 Implémentation :
Ajouter un inverseur au niveau de a
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
54
CH 3. Les Registres, les mémoires et les ALU
ALU 32 bits :
 La sortie Result fournit le résultat de la fonction appliquée aux entrées A et B
 La sortie Zero indique si toutes les sorties sont à zéro.
 La sortie Overflow indique le dépassement qui résulte après une opération
d’addition ou de soustraction; pour le binaire non signé cette sortie ne fournit une
information utile;
 La sortie Carry out indique la retenue et le dépassement des entiers non signés.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
55
CH 3. Les Registres, les mémoires et les ALU
ALU 32 bits : Deux fonctions AND et OR
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
56
CH 3. Les Registres, les mémoires et les ALU
ALU 32 bits : Trois fonctions AND, OR et ADD
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
57
CH 3. Les Registres, les mémoires et les ALU
ALU 32 bits : Quatre fonctions AND, OR , ADD et SUBSTRACT
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
58
CH 3. Les Registres, les mémoires et les ALU
Unité Arithmétique et Logique 4 bits : Le 74LS381
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
59
CH 3. Les Registres, les mémoires et les ALU
Les Mémoires
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
60
CH 3. Les Registres, les mémoires et les ALU
Hiérarchie des mémoires
Les différents éléments de la mémoire d’un ordinateur sont ordonnés en
fonction des critères suivants :
 Temps d’accès
 Capacité
 Coût par bit
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
61
CH 3. Les Registres, les mémoires et les ALU
Hiérarchie des mémoires
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
62
CH 3. Les Registres, les mémoires et les ALU
Types d’accès
 Accès séquentiel (e.g. bande magnétique): le plus lent de tous
 Accès direct ou aléatoire (e.g. mémoire centrale, registres) : chaque
information a une adresse.
 Accès semi-séquentiel (e.g. disques)
 Accès par le contenu ou associatif (e.g. mémoire cache)
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
63
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
La mémoire à accès direct (RAM) : chaque bit a une adresse
(adresse rangée + adresse colonne).
La mémoire dite statique (SRAM) : Les éléments de mémoire sont des
bistables et l’information reste sur la sortie tant que les signaux de lecture
sont appliqués.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
64
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire à m bits par adresse
Capacité totale : n x n x m bits
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
65
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Statique 1 bit
La mémoire statique nécessite 6 transistors par bit et s’avère très coûteuse en pratique, même si elle
est la plus rapide. Les puces de mémoire statique ont donc une capacité relativement modeste.
On utilise la mémoire statique pour la mémoire cache.
Quatre de ces six transistors constituent deux inverseurs mis en tête-bêche et les deux derniers,
commandés par la ligne d'adresse A, relient les inverseurs aux lignes de données
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
66
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Statique 128 Ko
Nombre total de bits : 128K x 8 = 1 Mbit.
Nombre total d’adresses = 217 = 128 Ko.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
67
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Statique 128 Ko
Nombre total de bits : 128K x 8 = 1 Mbit.
Nombre total d’adresses = 217 = 128 Ko.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
68
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Dynamique 1 bit
On utilise donc pour la mémoire centrale la mémoire
dynamique ou DRAM. Dans ce cas, l’élément de
mémoire est une capacité et est beaucoup moins
coûteux. L’inconvénient est que l’information est
volatile et qu’il faut la rafraîchir périodiquement
(chaque ms environ).
Mémoire dynamique 1 bit
La ligne A est appelée ligne de commande ou ligne d'adresse.
La ligne B est la ligne de donnée sur laquelle est lu ou écrit le bit d'information.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
69
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Dynamique
 Dans le cas de la mémoire dynamique, l’adresse est scindée en deux moitiés,
l’adresse de rangée et l’adresse de colonne. On applique d’abord l’adresse de
rangée. On active la ligne RAS (Row Address Select). Puis on applique
l’adresse de colonne. On active finalement la ligne CAS (Column Address
Select).
 Ceci permet de réduire de moitié le nombre de broches de la puce.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
70
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Dynamique
Mémoire dynamique :
chronogramme
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
71
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Morte
 ROM (Read Only Memory)
 PROM(Programmable Read Only Memory)
 EPROM (Electrically Programmable Read Only Memory)
 EAROM (Electrically Alterable Read Only Memory)
 EEPROM (Electrically Erasable Programmable Read Only Memory)
Une partie du système d’exploitation se trouve souvent en mémoire morte.
C’est le cas pour le BIOS du PC et le Toolbox du Macintosh.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
72
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Morte
Le principe de fonctionnement
d'une PROM est fort similaire à
celui d'une ROM.
Dans une PROM vierge, les diodes
sont en série avec de petits
fusibles.
La programmation se fait en
brûlant les fusibles pour les
positions des bits devant être mis
à 1.
Cette opération est irréversible.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
73
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Cache
 La mémoire centrale étant lente par rapport à la vitesse d’horloge des
processeurs actuels, on utilise une mémoire cache ou antémémoire de capacité
plus faible et faite de mémoire statique entre le processeur et la mémoire
centrale. On y place les données les plus récemment utilisées. Elle contient
donc une petite partie de la mémoire centrale.
 Lors d’un accès mémoire, le système de gestion de mémoire cache doit
déterminer si l’information désirée se trouve dans le cache. Si elle s’y trouve, on
n’a pas besoin d’aller en mémoire centrale et on obtient l’information à la
vitesse du cache (~5ns).
 Si elle ne s’y trouve pas, on la copie de la mémoire centrale vers le cache, de
sorte qu’elle s’y trouvera la prochaine fois.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
74
CH 3. Les Registres, les mémoires et les ALU
Mémoires à semi-conducteurs
Mémoire Cache
 Un cache est donc inutile et même nuisible pour un programme qui n’aurait
aucune boucle, ou qui n’utiliserait jamais de données contigües.
 Les processeurs modernes ont deux caches internes (L1):
o un pour les instructions,
o un pour les données,
 On utilise aussi habituellement un cache externe d’une capacité beaucoup plus
grande (L2).
 Pentium :
o Cache interne :instructions : 16 Ko
o données : 16 Ko
o Cache externe :512 Ko
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
75
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
76
CH 4. Introduction aux Microprocesseurs
Motivations
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
77
CH 4. Introduction aux Microprocesseurs
Histoire des calculateurs
Les ordinateurs mécaniques
Abaque
Pascaline
Métier à tisser Falcon
Lotfi BOUSSAID
Boulier chinois
Machine à différence
Microprocesseurs & Microcontrôleurs
78
CH 4. Introduction aux Microprocesseurs
Histoire des calculateurs
Les ordinateurs électroniques
 En 1946 premier ordinateur
ENIAC (Electronics Numerical
Integrator and Calculator)
 17000 tubes à vide
 50 000 câbles électriques
 30 Tones
 Traitement de 100 000
opérations par seconde
 Se Programme par un nouveau
câblage de ses circuits
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
79
CH 4. Introduction aux Microprocesseurs
Histoire des calculateurs
Les ordinateurs électroniques
 1948 Fabrication du transistor par les laboratoires BELL
 1958 Invention du circuit intégré par TEXAS INSTRUMENTS
 1960 Fabrication du circuit intégré numérique
 1971 Premier Microprocesseur le 4004 d’Intel
•
•
•
•
•
Lotfi BOUSSAID
2250 Transistors
4 bits
45 Instructions
40-50K instructions par secondes
Horloge 100 KHz
Microprocesseurs & Microcontrôleurs
80
CH 4. Introduction aux Microprocesseurs
Histoire des calculateurs
Les microprocesseurs
Année
μP
# Bits
Taille Mémoire # Instr.
Lotfi BOUSSAID
Caractéristiques
Microprocesseurs & Microcontrôleurs
81
CH 4. Introduction aux Microprocesseurs
Les microprocesseurs
Architecture des microordinateurs à base de microprocesseur μP
WR
RD
IOW
IOR
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
82
CH 4. Introduction aux Microprocesseurs
Le CPU 8085AH 8 bits d’Intel
 Il existe en plusieurs versions 8085A, 8085AH, 8085AH-1 et
8085AH-2 ;
 Fonctionnement à 3 MHz, 5 MHz et 6 MHz ;
 1,3 μs par cycle d’instruction pour le 8085AH, 0,8 μs pour
8085AH-2 et 0,67 μs pour le 8085AH-1 ;
 Générateur d’horloge interne (avec quartz externe ou
réseau LC ou RC ) ;
 4 vecteurs d’interruption dont 1 non masquable
 Interface série en entrée et en sortie
 Précision arithmétique binaire, décimale et double
 Possibilité d’adressage mémoire Direct jusqu’à 64 Ko de
mémoire;
 Disponible en version à 40 broches
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
83
CH 4. Introduction aux Microprocesseurs
Architecture du CPU
8085AH 8 bits
d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
84
CH 4. Introduction aux Microprocesseurs
Architecture du CPU 8085AH 8 bits d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
85
CH 4. Introduction aux Microprocesseurs
Machine cycle status and control signals
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
86
CH 4. Introduction aux Microprocesseurs
Opcode fetch MOV B,C
Data Bus
Adress Bus
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
CH 4. Introduction aux Microprocesseurs
Opcode fetch MOV B,C
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
88
RappelCHsur
les Architectures
Microprogrammées
4. Introduction
aux Microprocesseurs
Fetch & Execute operation
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
89
CH 4. Introduction aux Microprocesseurs
Instruction MVI A,45H
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
90
CH 4. Introduction aux Microprocesseurs
Instruction LXI H,2035H
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
91
CH 4. Introduction aux Microprocesseurs
Le KIT SDK-85
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
92
CH 3. Les Registres, les mémoires et les ALU
Le KIT SDK-85
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
93
CH 4. Introduction aux Microprocesseurs
Von Neumann
MÉMOIRE
CPU
IO
IO
IO
•••••
BUS SYSTÈME
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
94
CH 4. Introduction aux Microprocesseurs
Harvard
BUS SYSTÈME
BUS INSTRUCTIONS
MÉMOIRE
DONNÉES
MÉMOIRE
PROGRAMME
CPU
IO
IO
IO
•••••
BUS DONNÉES
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
95
CH 4. Introduction aux Microprocesseurs
Les processeurs CISC (Complex Instructions Set Computer)
Les avantages
• Instructions plus proches d'un langage de haut niveau
• Programmation plus compact
• Écriture plus rapide et plus élégante des applications
• Moins d'occupation mémoire des programmes
• Exécution nécessite moins d'octets mémoire
Les inconvénients
• beaucoup trop de codes d'instruction différents
• taille des instructions élevée et variable (1 à 15 bytes – octets par instruction)
• structure des instructions non standardisées: exécution complexe, peu performante
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
96
CH 4. Introduction aux Microprocesseurs
Les processeurs RISC (Reduced Instructions Set Computer)
• Nette séparation entre les instructions d'accès mémoire et les autres
• Instructions standardisées, en taille et en durée d'exécution
• Unité de décodage câblée, non microcodée architecture pipeline, superscalaire
• Très nombreux registres à usage général
• Un ou plusieurs cache (s) internes(s) ainsi que des tampons internes et un jeu
d'instruction réduit aux instructions simples
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
97
CH 4. Introduction aux Microprocesseurs
Le pipeline (ou pipelining)
• LI : Lecture de l'Instruction (en anglais FETCH instruction) depuis le cache ;
• DI : Décodage de l'Instruction (DECODe instruction) et recherche des opérandes;
• EX : Exécution de l'Instruction (EXECute instruction)
• MEM : Accès mémoire (MEMory access), écriture ou chargement de la mémoire ;
• ER : Ecriture (Write instruction) de la valeur calculée dans les registres.
Objectif du pipeline : Être capable de réaliser chaque étape en
parallèle avec les étapes amont et aval
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
98
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Les ordinateurs séquentiels :
 Augmentation des performances 2 fois / 14 mois (Lois de Moore)
Insuffisance pour certaines applications :
météorologie, synthèse et reconstruction d'images, simulations
numériques, etc.
Développer des calculateurs parallèles
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
99
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Applications Grand Challenge également appelées « Applications 3T »,
parce qu'elles nécessitent pour leur exécution [1]:
• 1 Téra flops (floating operation per second) ;
• 1 Téra octet de mémoire centrale ;
• 1 Téra octet par seconde de bande passante pour produire les résultats.
Ces applications ne sont réalisables actuellement qu’en
faisant recours à un parallélisme massif :
Plus de 8000 processeurs GPP !!
[1] François PELLEGRINI, Architecture et systèmes des calculateurs parallèles, ENSEIRB, Octobre 2003.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
100
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Classification de M. J. Flynn
Proposée en 1966 et basée sur la notion de flux de données et d’instructions
Architecture SISD « Single Instruction stream, Single Data stream »
• Traitement séquentiel (architecture Von Neumann) ex: monoprocesseur
• Mono unité de contrôle (CU) cherche une Instruction (IS) de la mémoire
• Le CU génère les signaux de contrôle appropriés au monoprocesseur (PE) pour traiter une donnée
unique (DS) ex: une opération à la fois
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
101
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Classification de M. J. Flynn
Architecture SIMD « Single Instruction
stream, Multiple Data stream »
 CU unique et multiple PEs
 CU cherche une instruction de la mémoire et après
décodage, diffuse les signaux de contrôle à tous les
PEs
 Une horloge globale pilote tous les PEs
 A un moment donné, tous les PEs exécutent de
manière synchrone la même instruction mais sur un
ensemble différent de données
 Processeur SIMD appelé aussi processeur vectoriel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
102
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Classification de M. J. Flynn
Architecture MISD « Multiple Instruction stream, Single Data stream »
• Utilisée dans le cas où la même donnée doit être exécuté de plusieurs façons
• Ex: Plusieurs filtres qui opèrent sur le même flux de données
Plusieurs algorithmes de cryptographie essayant de cracker le même message codé.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
103
CH 4. Introduction aux Microprocesseurs
Les calculateurs Parallèles
Classification de M. J. Flynn
Architecture MIMD « Multiple Instruction stream, Multiple Data stream »
 Multiprocesseurs : chacun exécute
son propre instruction pour traiter les
données qui lui ont été allouées.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
104
Plan du cours
 CH 1. Codage de l’Information
 CH 2. Les Portes Logiques
 CH 3. Les Registres, les mémoires et les ALU
 CH 4. Introduction aux Microprocesseurs
 CH 5. Le Microprocesseur 8086 d’Intel
 CH 6. Le Microcontrôleur PIC16F84 de Microchip
 CH 7. Introduction à la Programmation en Langage de Haut Niveau
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
105
CH 5. Le Microprocesseur 8086 d’Intel
Introduction
 Premier microprocesseur 16 bits fabriqué
par la société Intel
L’espace mémoire adressable est organisé en deux
bancs de 512ko chacun; Banc Pair et Banc Impair. La
ligne d’adresse A0 est utilisée pour la sélection du
banc pair et le signal de contrôle BHE est utilisé pour
l’accès au banc impair.
 Approximativement 29000 transistors, 40
pin DIP, Tension 5V
 Pas d’horloge interne; Horloge externe
asymétrique à rapport cyclique de 33%
 20 bits d’adresses peut adresser jusqu’à
220=1Mo d’espace mémoire.
Lotfi BOUSSAID
Utilise 16 lignes d’adresses pour les E/S et la
communication avec les périphériques  peut
générer 216=64k d’adresses.
Fonctionne en deux modes:
Mode Minimum et Mode Maximum, au moyen des
signaux MN et MX.
Microprocesseurs & Microcontrôleurs
106
CH 5. Le Microprocesseur 8086 d’Intel
Caractéristiques générales du 8086
 Microprocesseur 16 bits avec une architecture issue de celle du 8080.
 Jeu d'instructions très puissant (multiplication et division câblées).
 Il utilise pour l’adressage des segments spécialisés (transportabilité).
 Il peut fonctionner soit en mode minimum, soit en mode maximum.
 La mémoire de un Mo est vu comme un bloc de 512 Kilo-mots.
 le bus d’adresses et de données sont multiplexés.
 L’espace mémoires des E/S est séparé du reste de la mémoire.
 Il est totalement compatible avec le microprocesseur 8088.
 Il présente 1 entrée d’interruption logicielle et 2 entrées matérielles.
 Il dispose de circuits d'interface ou de traitements spécialisés.
 Peut reprendre les circuits périphériques des microprocesseurs 8 bits.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
107
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
108
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
109
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
110
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
111
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Le μP 8086 peut fonctionner selon deux
modes: Mode Minimum et Mode Maximum.
En mode minimum le μP ne coopère avec aucun
coprocesseur et ne peut être utilisé en mode
multiprocesseurs.
En mode maximum, le 8086 peut fonctionner
en multiprocesseurs ou en coopération avec un
coprocesseur.
Les opérations en mode Minimum ou
maximum sont décidées par la broche MN/MX
(Active par niveau bas).
Quand cette broche est au niveau haut, le
8086 opère en mode minimum.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
112
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Pins 24 -31
Pour les opérations en mode minimum, MN/𝐌𝐗 est relié au
VCC (Niveau Haut)
Le 8086 génère tous les signaux du bus de control
DT/R (Data Transmit/ Receive) Signal pour contrôler la
direction du flux de données.
DEN (Data Enable) Sortie d’activation de l’émetteur /
récepteur
ALE (Address Latch Enable) Utile pour démultiplexer
les lignes d’adresses et de données en utilisant
des latches externes.
M/IO Utilisée pour différencier entre l’accès mémoire
et les accès d’E/S. Pour les instructions mémoires, il est
haut. Pour les instructions d’E/S, il est bas.
WR Le signal Write est à l’état bas quand le processeur écrit
une donnée dans la mémoire ou dans le port d’E/S.
INTA (Interrupt Acknowledge) Quand la demande
d’interruption est acceptée par le microprocesseur,
cette sortie est à l’état bas.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
113
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Pins 24 -31
Pour les opérations en mode minimum, MN/𝐌𝐗 est relié au
VCC (Niveau Haut)
Le 8086 génère tous les signaux du bus de control
HOLD
Signal d’entrée au processeur pour
demander le contrôle du bus. Utilisé par le contrôleur
de
DMA pour avoir le contrôle sur le bus.
HLDA
Lotfi BOUSSAID
(Hold Acknowledge)
Signal d’acquittement envoyé par le
processeur au bus en réponse au signal
HOLD.
Acknowledge passe haut, quand le
processeur accepte le signal HOLD.
Microprocesseurs & Microcontrôleurs
114
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Durant les opérations du mode maximum, MN/ 𝐌𝐗
est à la masse (Niveau bas)
Les Pins 24 -31 sont réaffectés
𝑆0, 𝑆1, 𝑆2 Status signals; utilisés par le contrôleur
de bus du 8986 pour générer le timing du bus et le
contrôle des signaux. Ils sont décodés comme
indiqué au tableau ci-dessous.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
115
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Durant les opérations du mode maximum, MN/ 𝐌𝐗
est à la masse (Niveau bas)
Les Pins 24 -31 sont réaffectés
𝑄𝑆0, 𝑄𝑆1 (Queue Status)
Le processeur fournit l’état de la file d’attente à travers ces
lignes. L’état de la file d’attente peut être utilisé par un
composant externe pour vérifier l’état interne de file
d’attente du 8086.
Les sorties QS0 et QS1 peuvent être interprétées comme
indiqué ci-dessous :
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
116
CH 5. Le Microprocesseur 8086 d’Intel
Brochage et signaux
Durant les opérations du mode maximum, MN/ 𝐌𝐗
est à la masse (Niveau bas)
Les Pins 24 -31 sont réaffectés
RQ/GT0, RQ/GT1
(Bus Request / Bus Grant)
Ces demandes sont utilisées par un autre bus local maître
pour forcer le processeur à libérer le bus local à la fin du cycle
de bus.
Cette broche est bidirectionnelle.
La demande sur GT0 va avoir une priorité plus élevé que GT1
Un signal de sortie est activé par le préfixe de l’instruction
LOCK.
Reste actif jusqu’à la fin de l’instruction préfixée par LOCK.
Le 8086 émet un signal bas sur la broche LOCK pendant
l’exécution de l’instruction préfixée par LOCK pour empêcher
d’autres bus maîtres pour avoir le contrôle sur le bus système.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
117
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
118
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
119
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
120
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
121
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
122
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
123
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
124
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
125
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
126
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
127
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
128
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
129
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
130
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
131
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
132
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
133
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
134
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
135
CH 5. Le Microprocesseur 8086 d’Intel
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
136
CH 5. Le Microprocesseur 8086 d’Intel
Bus Timing for a READ Operation
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
137
CH 5. Le Microprocesseur 8086 d’Intel
BUS Timing
Durant la période T1:
 Les adresses sont placées sur le bus d’Adresses / Données.
 Les signaux M/IO, ALE et DT/R spécifient le composant à sélectionner mémoire ou E/S,
Latch les adresses sur les bus d’adresses et fixe la direction du transfert de données sur
le bus.
Durant la période T2:
 Le 8086 émet le signal RD ou WR, DEN, et écrit la donnée.
 DEN autorise la mémoire ou l’E/S à recevoir la donnée pour l’écriture et le 8086 à
recevoir la donnée pour la lecture.
Durant la période T3:
 Ce cycle est fourni pour autoriser la mémoire à accéder à la donnée.
 READY est prélevé à la fin de T2.
 Si niveau bas, T3devient un cycle d’attente.
 Sinon, la donnée est prélevée à la fin de T3.
Durant la période T4:
 Tous les signaux du bus sont désactivés pour la préparation du cycle suivant du bus.
 La donnée est prélevée durant les lectures, et aura lieu durant les écritures.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
138
CH 5. Le Microprocesseur 8086 d’Intel
Les modes d ’adressages
 Le code exécutable d'un programme est toujours pointés par le contenu du
registre IP par rapport au contenu du registre CS.
 Les données stockées en pile de sauvegarde sont toujours pointées par le
contenu du registre SP par rapport au contenu du registre SS.
 Les positions mémoires représentant des données sont pointées par une
adresse effective AE par rapport au contenu d'un segment qui dépend de la
composition de l’adresse effective.
 Les données à manipuler peuvent être dans des registres, dans la mémoire,
dans la pile ou spécifiées immédiatement dans l’instruction.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
139
CH 5. Le Microprocesseur 8086 d’Intel
Les modes d ’adressages
1. Adressage des registres
Concerne tout transfert ou toute opération, entre deux registres de même taille, ou sur
un registre.
MOV SI , CX
2. Adressage immédiat
La valeur immédiate 4E41 est recopiée dans CX. Dans ce mode d'adressage l'opérande
apparaît dans l'instruction elle-même.
MOV CX , 4E41
3. Adressage direct
Dans ce mode on spécifie directement l'adresse de l'opérande dans l'instruction.
exemple : MOV AX , Adr
La valeur adrest une constante (un déplacement) qui doit être ajouté au contenu du
registre DS pour former l'adresse physique de 20 bits.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
140
CH 5. Le Microprocesseur 8086 d’Intel
Les modes d ’adressages
4. Adressage basé
L’offset est contenu dans un registre de base BX ou BP.
Exemple : MOV AL, [BX]
Transfère la donnée dont l’offset est contenu dans le registre de base BX vers le registre AL.
Le segment associé par défaut au registre BX est le segment de données : on dit que
l’adressage est basésur DS ;
5. Adressage indexé
Semblable à l’adressage basé, sauf que l’offset est contenu dans un registre d’index SI ou DI,
associés par défaut au segment de données.
Exemple : MOV AL,[SI]
Charge le registre AL avec le contenu de la case mémoire dont l’offset est contenu dans SI
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
141
CH 5. Le Microprocesseur 8086 d’Intel
L’adressage des Entrées / Sorties
Les entrées sorties sont situées dans un espace d'adressage indépendant de la mémoire.
Iles ne font l'objet d'aucune segmentation. Deux possibilités sont utilisées.
Adressage direct :
l'adresse du port est donnée directement par le programme. On n'accède qu'aux 256
premiers octets, ou aux 128 premiers mots d'entrées sorties.
IN AX , 0A8H
OUT 0A8H , AL
Adressage par registre :
l'adresse du port est contenue dans le registre DX. On accède alors aux 64 Ko, 32 K-mots,
d'entrées sorties .
OUT DX , AL
IN AX , DX
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
142
CH 5. Le Microprocesseur 8086 d’Intel
Instructions du 8086
Transfert de données
-MOV
-POP
-OUT
Instructions arithmétiques
-ADD
-DIV
-MUL
Instructions logiques
-OR
-AND
-DEC / INC
Décalages et rotations
-ROL
-RCL
-SAL
Instructions de branchement
-JMP
-CALL
-JCXZ
Lotfi BOUSSAID
Manipulations de caractères
-REP MOVS
-REP MOVSB
-REP MOVSW
Instructions de commande
-INT N
-STI
-CLI
Remarque
Un ou plusieurs indicateurs
d’état peuvent être affectés par
l’exécution de ces instructions.
Microprocesseurs & Microcontrôleurs
143
Architecture du 80x86-Pentium
Unité
d’interface de
bus
Unité
d’exécution
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
144
Architecture du 80x86-Pentium
Accumulateur
Base
Registres Généraux
Count
Data
Stack Pointer
Registres pointeurs
Base Pointer
Source Index
Destination index
Registres index
Code Segment
Data Segment
Stack Segment
Extra Segment
Lotfi BOUSSAID
Registre compteur de programme
Registres de
Segment
Registre des indicateurs
Microprocesseurs & Microcontrôleurs
145
Architecture du 80x86-Pentium
Exemple de programme en assembleur sous C++ (Pentium)
Calcul du maximum d’un vecteur
#include <stdio.h>
char VECT[5];
char RES;
char Chaine;
int MaxElemVect;
void main (void)
{
int NbElem = 5;
VECT[0] = 2;
VECT[1] = 3;
VECT[2] = 1;
VECT[3] = 7;
VECT[4] = 0;
// Debut de la partie assembleur
__asm
{
MOV ECX, NbElem ; (ECX)=NbElem
DEC ECX
MOV ESI, 0 ; i := 0
Lotfi BOUSSAID
MOV AL, VECT[ESI] ; (AL) = MAX = VECT[0]
INC ESI ; i := 1
NEXT: MOV AH, VECT[ESI] ; (AH) = VECT[i]
CMP AL, AH
JGE SUP ; MAX >= VECT[i] ?
MOV AL, AH ; MAX < VECT[i] (AL) = VECT[i]
SUP: INC ESI ; MAX >= VECT[i] i = i + 1
LOOP NEXT ; (ECX) = (ECX) - 1
MOV RES, AL ; (AL) → RES
} // Fin de la partie assembleur
MaxElemVect = RES;
printf ("\nElement maximum du vecteur = %d\n\n",
MaxElemVect);
}
Microprocesseurs & Microcontrôleurs
146
Architecture du 80x86-Pentium
Organisation d’une carte mère à base d’un PC
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
147
Architecture du 80x86-Pentium
Architecture d’un PC
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
148
Calculateurs
à basedude
Processeurs GPP
Architecture
80x86-Pentium
Les interruptions du 8086
•
Il existe 2 catégories d’interruptions: les interruptions hardware et les interruptions
software
– Les interruptions hardware surviennent lorsque les lignes RST, NMI ou INTR du 8086 sont
activées.
– Les interruptions software surviennent lorsque l’instruction INT apparaît ou lors
d’exceptions logicielles (exemples: débordement de pile (stack overflow), division par
zéro…).
– Les sauts conditionnels ou inconditionnels ainsi que les appels de sous-routines ne sont pas
des interruptions.
•
Toutes les interruptions ont un numéro de 0 à 255, sauf reset. Certains numéros sont fixés par le
matériel, d’autres par les concepteurs du 8086 et finalement il en reste de disponibles pour le
programmeur.
•
Les interruptions ont des priorités. Elles sont, du plus prioritaire au moins prioritaire: Reset, INT,
NMI et INTR. À l’intérieur d’une de ces catégories, l’INT avec le numéro le plus bas est
habituellement la plus prioritaire.
•
Une interruption de haute priorité peut interrompre une interruption de priorité inférieure.
•
Une interruption de basse priorité ne peut pas interrompre une interruption de priorité égale ou
supérieure. L’interruption Reset est la plus prioritaire.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
149
Calculateurs
à basedude
Processeurs GPP
Architecture
80x86-Pentium
Interruptions matérielles (1)
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
150
Calculateurs
à basedude
Processeurs GPP
Architecture
80x86-Pentium
Interruptions matérielles (2)
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
151
Calculateurs
à basedude
Processeurs GPP
Architecture
80x86-Pentium
Interruptions vectorisées
•
La table des vecteurs d’interruption contient l’adresse des instructions à exécuter lorsqu’une
interruption survient. Pour chaque interruption, la table contient 4 bytes d’information: CS et IP.
La taille de la table des vecteurs d’interruption est donc :
256 ints * 4bytes = 1Ko.
•
La table des vecteurs d’interruption commence à l’adresse 00000h et elle finit à l’adresse 003FFh.
Ne pas mettre de segments à cet endroit!!!
•
Lorsqu’une interruption survient, le numéro de l’interruption permet de trouver l’emplacement
des instructions à exécuter. Le numéro de l’interruption est multiplié par 4 afin de trouver
l’adresse du CS et du IP à rechercher (IP est à l’adresse inférieure, suivi de CS). Puis un JMP à CS:IP
est fait. CS:IP est un « vecteur » vers le code à exécuter afin de répondre à l’interruption.
– Exemple: Si le contenu de la mémoire, à partir de l’adresse 00000h est 00h, 01h, 02h, 03h,
04h, 05h, 06h, 07h, 08h, etc... et que l’interruption 1 survient, alors la routine à l’adresse
0706:0504 sera exécutée.
•
Reset est la seule interruption sans numéro. Pour reset, CS:IP = FFFF0H.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
152
Calculateurs
à basedude
Processeurs GPP
Architecture
80x86-Pentium
Séquence d’évènements après une interruption
Lors d’une interruption logicielle ou matérielle, les évènements suivants se produisent :
1. Le 8086 termine l’instruction en cours.
2. Le drapeau IF est testé si l’interruption provient de la ligne d’interruption matérielle (INTR).
Si le drapeau est à 0, l’interruption est ignorée.
3. Si une autre interruption de priorité supérieure ou égale est en cours, l’interruption est
ignorée.
4. 3 registres sont mis sur la pile (PUSH) dans l’ordre qui suit : les drapeaux, CS actuel, puis IP
actuel. Le drapeau IF est mis à 0 après le PUSH des flags.
5. Un JMP est exécuté avec à l’adresse CS:IP trouvée dans la table des vecteurs d’interruption à
partir du numéro de l’interruption.
6. La routine de service de l’interruption (ISR ou Interrupt Service Routine) est exécutée.
7. Théoriquement, la dernière instruction de l’ISR est IRET (Interrupt RETurn). Un IRET est
équivalent à trois POP dans cet ordre: IP, CS et drapeaux.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
153
Calculateurs
à base
Processeurs GPP
Architecture
dude
80x86-Pentium
Interruptions Internes (Exceptions)
•
Les interruptions internes sont des interruptions qui peuvent se produire sans que l’instruction INT
soit présente. Il s’agit d’exceptions qui surviennent quand un évènement logiciel spécial arrive
(division par zéro par exemple)
•
L’interruption 0 survient lorsque le diviseur de DIV ou IDIV est 0.
•
L’interruption 4 survient lorsque le drapeau Overflow est 1 et que l’instruction INTO est exécutée.
•
Les interruptions 1 et 3 servent pour du debug de programme.
Note: Comme pou toutes les interruptions, les interruptions internes désactivent les interruptions
matérielles.
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
154
154
Calculateurs
à base
Processeurs GPP
Architecture
dude
80x86-Pentium
Transfert par accès direct à la mémoire
4
5
2
1
3
Lotfi BOUSSAID
Microprocesseurs & Microcontrôleurs
155155
155
Téléchargement