Académique Documents
Professionnel Documents
Culture Documents
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Objectifs du Cours
Apprendre les concepts associés au microprocesseur généraliste:
4
Introduction (suite)
Les besoins :
calculs de plus en plus rapide
calculs de moins en moins contraignants
calculs moins sujet aux erreurs
automatisation des calculs
10
Historique (la période WWII )
12
Historique (la période WWII )
Quelques caractéristiques de la machine Colossus:
1500 à 2400 Tubes à vide (ancêtre du Transistor)
Effectue environs 5000 opérations/seconde
13
Historique (la période WWII )
Quelques éléments de réponse:
le Harvard mark I est un ordinateur généraliste, alors que le
Colossus est un ordinateur spécialisé (une seule tache)
les tubes à vides sont beaucoup plus rapide que les relais
électromécaniques
l’industrie militaire a beaucoup plus d’avance sur l’industrie
civile à cause des moyens matériels et humains, surtout en
période de guerre.
14
L’ère de l’électronique
Ce n’est qu’après la fin de la seconde guerre mondiale
que
les ordinateurs entièrement électronique voient le jour.
L’utilisation des relais électromécaniques est
définitivement
abandonnée au profit des tubes à vide. 15
Historique (la période 1945-1955 )
Quelques réalisations pertinentes:
En 1946,
John vonEckert
Neumann , un mathématicien
et Mauchly construisent l’ENIAC
de génie (Electronic
qui a
Numerical Integrator and Computer)
participé
à la conception de l’ENIAC, entreprend de réaliser une
version
améliorée de l’ENIAC, l’IAS (Institute for Advanced Studies).
Ses
idées révolutionnèrent les ordinateurs et définiront les
architectures
16
de base des ordinateurs et des microprocesseurs du futur.
Historique (la période 1945-1955 )
Quelques avancées majeures proposées par von Neumann:
l’entrée et la sortie A N T
P ORT
I M
18
Architecture de von Neumann
Le circuit intégré
permet
d’incorporer plusieurs
transistors dans une
même puce.
24
Historique (la période 1958-1971)
Avancées apportés par l’intégration:
25
L’invention du circuit intégré permettra une dizaine
L’ère des
d’année
Microprocesseurs
plus tard, plus précisément en 1971, à la compagnie
Intel,
fondée trois ans plutôt par Robert Noyce, Gordon Moore,
et
Andrew Grove, de développer le premier microprocesseur:
26
Historique (la période 1971-?)
Caractéristiques du 4004:
microprocesseur 4 bits (mots de 4 bits)
intègre 2300 transistors
atteint la vitesse de 740 kHz
En à peine
un25jeu
ans,
dele464004, dont les dimensions
instructions machine ne dépassent pas
quelques
grammes,
28
Historique (la période 2018-?)
L’après loi Moore:
Cette loi connaitra, surement, dans les années qui viennent, sa limite car
31
Microprocesseurs
Définition et Classification des Microprocesseurs
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Définitions
1. Le microprocesseur générique est un circuit intégré
qui
regroupe l’unité arithmétique et logique (UAL) et l’unité
de commande en son sein.
2. Le microprocesseur peut être assimilé à un ordinateur
intégré dans un même circuit, mais sans mémoire
centrale
ni de périphériques d’entrée et de sortie.
2
Définitions (suite)
Le microprocesseur est capable d’interpréter les instructions contenues
dans un programme, de les exécuter et de fournir le résultat.
Microprocesseurs généralistes
Microprocesseurs spécialisés
Microcontrôleurs
5
Microprocesseurs généralistes
Caractéristiques:
Conforme à la définition générale (UAL+UC)
Exemple:
le CPU (Central Processing Unit) dans les
ordinateurs
sont des microprocesseurs généralistes.
6
Microprocesseurs spécialisés
Ces microprocesseurs incluent des composants
spécifiques
ou utilisent des architectures optimisées pour
pouvoir
réaliser des taches précises avec une grande
vitesse
(le DSPs
Les temps(Digital
réel peut être Processors)
Signal une des finalités).
en sont un exemple typique.
8
Conclusion
Dans ce cours nous allons essentiellement traiter les
microprocesseurs
généralistes dont les principes architecturaux ainsi que les
principes
de fonctionnement peuvent facilement être étendues aux
autres
catégories de processeurs. Pour le TP, on travaillera sur
des
Microcontrôleurs ARM (MBED).
9
Thank you
for your attention
10
Microprocesseurs
Architecture générale et blocs fonctionnels
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Architecture générale
2
Définition du Bus
Le bus comporte N lignes et connecte plusieurs blocs entre eux. Il y a
plusieurs types de bus en ce qui concerne les microprocesseurs:
Le bus de données
Le bus d’adressage
Le bus de commande
3
Bus de données
Le bus de données sert à transférer les données entre le processeur et
la mémoire et les périphériques. La donnée peut être lue ou écrite ce
qui implique que ce bus est bidirectionnel.
4
Le bus d’adresses sert à pointer une adresse mémoire
6
Architecture interne
7
Registres
Les registres sont des mémoires élémentaires (registres) dont
la
capacité mémoire est faible et la vitesse très grande. Ils sont
utilisés
dans le microprocesseur pour stocker des données, des adresses, l’
état
des opérations effectuées dans l’UAL, etc.
Il y a des registres communs pour tous les microprocesseurs et un
nombre de registres à usage ‘général’ qui dépend de chaque μp
8
Registres et blocs fonctionnels de l’UC
1. Registre PC
Le registre PC (Program Counter) ou compteur ordinal en français,
contient l’adresse mémoire de la prochaine instruction à exécuter.
Il est initialisé avec l’adresse de la première instruction du
programme.
Par la suite il s’incrémente après l’exécution de chaque instruction.
2. Registre d’instruction
9
Registres et blocs fonctionnels de l’UC
3. Le décodeur d’instruction
10
Registres et blocs fonctionnels de l’UC
5. Le registre d’adresse
Le registre d’adresse contient l’adresse de l’instruction suivante
ou l’adresse mémoire d’une donnée à lire ou un
emplacement
mémoire pour écrire une donnée. Il est donc utilisé pour pointer
vers l’adresse mémoire don le microprocesseur a besoin.
11
Registres et blocs fonctionnels de l’UT
12
Registres de l’unité de traitement
2. L’UAL
13
Registres de l’unité de traitement
Le registre d’état contient
3. Registre d’étatplusieurs bits qui indiquent chacun l’état
ou
le résultat d’une opération. Ces bits sont souvent appelés
Flags
(drapeaux). Ce registre a une importance capitale car il
différencie
un microprocesseur (ordinateur) du simple calculateur car ces
Flags
conditionnent le déroulement du programme. 14
Registres de l’unité de traitement
4. Registre de données
Ce registre sert d’interface entre le bus de données externe et le bus
de
données interne et de registre de stockage temporaire des données
circulant dans les deux sens (mémoire-μp et μp- mémoire)
5. Registres supplémentaires
Il peut exister un nombre de registres supplémentaires sur chaque μp
qui servent à réaliser des opérations sur des données (transférer des
données par exemple)
15
Fonctionnement de l’UT
16
L’horloge
L’horloge est l’élément qui donne la cadence des opérations. Sa
fréquence
détermine entre autres les performances d’un microprocesseur.
L’horloge
est un circuit électronique oscillateur. Souvent un quartz (externe) est
utilisé pour donner la cadence pour l’horloge (ex: une PLL).
17
Les signaux
Deux types de signaux:
Signaux d’état (entrant vers le bloc de commande et de
séquencement).
Ces signaux sont utilisés par le séquenceur pour produire la deuxième
catégorie de signaux, les signaux de commande (sortant du bloc de
commande et de séquencement vers les autres blocs).
18
Les signaux de commande
1. Read/write
Ce signal sert à indiquer le sens que prennent les données. Si les
données doivent être lues (c’est Read qui est activé). Si les données
doivent être écrites en mémoire (c’est write qui est activé).
19
Exécution d’une instruction
1. Chargement
Ramener la prochaine instruction à exécuter depuis la mémoire et
la
charger dans le registre d’instructions
2. Modification du PC
Modification du PC (program counter) pour pointer la
prochaine
instruction
3. Décodage
Le décodeur d’instructions décode l’instruction qui se trouve dans le
registre d’instructions
20
Exécution d’une instruction
4. Emplacement des données
Déterminer l’emplacement mémoire des données sur lesquelles
s’effectue l’opération
5. Chargement des données
Charger les données nécessaires pour l’exécution de
l’instruction
dans le registre de données.
6. Exécution
Exécution de l’instruction
7. Retour à l’étape 1
21
Thank you
for your attention
22
Microprocesseurs
Systèmes à Microprocesseurs
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Systèmes à Microprocesseurs
Définition
2
Systèmes à Microprocesseurs
3
Les mémoires
La mémoire ROM (Read Only Memory)
Les mémoires ROM (read only memory) sont des mémoires dites
mortes où l’on ne peut pas écrire. Ces mémoires sont écrite une fois
en usine et ne peuvent plus être effacées ou réécrite. Elles sont utilisées
pour stocker des données ou des programmes qui ne changent pas.
5
Les périphériques
6
Les périphériques
Fonctionnement
7
Les interruptions
Rôle
8
Les interruptions
Types
9
Thank you
for your attention
10
Microprocesseurs
Exploitation
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Modes d’adressage
Définition
N bits K bits
Le contenu de l’accumulateur est additionné avec 200 et le résultat est
mis dans l’accumulateur
N bits K bits
La valeur 200 est transférée vers le registre R2
4
Adressage Immédiat
Utilisation
5
Adressage Direct
Codage de l’instruction
6
Adressage Direct
Exemples avec des instruction d’assembleur
N bits K bits
Le contenu de l’accumulateur est additionné avec le contenu de
l’adresse 0x200
N bits K bits
Le contenu de l’adresse 0x200 est transféré vers le registre R2
7
Adressage Direct
Utilisation
Le mode d’adressage direct est utilisé avec des variables dont les
adresses ne changent pas (l’emplacement ne change pas) mais
dont les valeurs changent au cours de l’exécution. Ce mode nécessite
plus de temps que le précédent pour son exécution mais permet de
travailler avec des variables.
8
Adressage par Registre
Le mode d’adressage par registre est semblable à l’adressage direct
sauf que les opérandes se trouvent dans des registres et non dans
des mémoires. Ce mode est très utilisé.
Codage de l’instruction
Exemple de Code opération Registre
syntaxe 1
N bits K bits
Exemple de Code opération Registre 1 Registre2
syntaxe 2
N bits K bits
9
Adressage par Registre
Exemples avec des instruction d’assembleur
Exemple 1 INC R0
N bits K bits
Exemple 2 MOV R2 R0
N bits K bits
Le contenu du registre R0 est transféré vers le registre R2
10
Adressage par Registre
Utilisation
Le fait que l’accès aux registres est beaucoup plus rapide que l’accès
à la mémoire, ce mode d’adressage permet l’exécution d’instructions
plus vite que le mode d’adressage direct. Ce mode est aussi utilisé
dans le cas où une boucle de programme utilise une donnée souvent.
Ainsi, les programmes se trouvent exécutés plus rapidement.
11
Adressage Registre Indirect
Dans le mode d’adressage registre indirect, le registre ne contient
pas l’opérande mais l’adresse de cette dernière.
Codage de l’instruction
Exemple de Code opération Registre
syntaxe 1
N bits K bits
Exemple de Code opération Registre 1 Registre2
syntaxe 2
N bits K bits
Le registre contient l’adresse de l’opérande. Le symbole @ désigne
l’adressage indirect en assembleur.
12
Adressage Registre Indirect
Exemples avec des instruction d’assembleur
N bits K bits
L’opérande se trouvant dans l’adresse indiqué par R0 est ajouté au
contenu de l’accumulateur et le résultat est mis dans l’accumulateur.
N bits K bits
Le contenu de l’adresse contenue dans R0 est transféré vers R2.
13
Adressage Registre Indirect
Utilisation
14
Adressage Registre Indirect
Exemple (tiré du livre de Tanenbaum)
MOV R1,#0 ; accumulate the sum in R1, initially 0
MOV R2,#A ; R2 = address of the array A
MOV R3,#A+4096 ; R3 = address of the first word beyond A
LOOP: ADD R1,(R2) ; register indirect through R2 to get operand
ADD R2,#4 ; increment R2 by one word (4 bytes)
CMP R2,R3 ; are we done yet?
BLT LOOP ; if R2 < R3, we are not done, so continue
Exemple 1
MOV R2, I(R1)
Exemple 2
AND R2,I(R1)
17
Adressage Indexé
Utilisation
18
Adressage Indexé
Exemple (tiré du livre de Tanenbaum)
MOV R1,#0 ; accumulate the OR in R1, initially 0
MOV R2,#0 ; R2 = index, i, of current product: A[i] AND B[i]
MOV R3,#4096 ; R3 = first index value not to use
LOOP: MOV R4,A(R2) ; R4 = A[i]
AND R4,B(R2) ; R4 = A[i] AND B[i]
OR R1,R4 ;OR all the Boolean products into R1
ADD R2,#4 ; i = i + 4 (step in units of 1 word = 4 bytes)
CMP R2,R3 ; are we done yet?
BLT LOOP ; if R2 < R3, we are not done, so continue
19
Adressage Indexé
Exemple (tiré du livre de Tanenbaum)
20
Adressage Base Indexé
Dans ce mode d’adressage, l’emplacement mémoire de l’opérande
est indiqué par la somme d’une base (début d’adresse d’une page
mémoire contenu dans un registre) et d’index (décalage contenu
dans un registre) .
Codage de l’instruction
Exemple de Code opération Registre 1 Registre2 Registre3
syntaxe
N bits K bits
L’adresse de l’opérande est calculée en additionnant la valeur du
contenu du registre 2 et du contenu du registre 3. La destination du
résultat de l’opération est stocké dans le registre1.
21
Adressage Base Indexé
Exemples avec des instruction d’assembleur
Exemple 1
MOV R1, (R2+R3)
Exemple 2
AND R1, (R2+R3)
22
Adressage Base Indexé
Utilisation
23
Adressage Base Indexé
Exemple (tiré du livre de Tanenbaum)
MOV R1,#0 ; accumulate the OR in R1, initially 0
MOV R2,#0 ; R2 = index, i, of current product: A[i] AND B[i]
MOV R5,#A ; put the address of A in R5
MOV R6,#B ; put the address of B in R6
MOV R3,#4096 ; R3 = first index value not to use
LOOP: MOV R4, (R2+R5) ; R4 = A[i]
AND R4, (R2+R6) ; R4 = A[i] AND B[i]
OR R1,R4 ;OR all the Boolean products into R1
ADD R2,#4 ; i = i + 4 (step in units of 1 word = 4 bytes)
CMP R2,R3 ; are we done yet?
BLT LOOP ; if R2 < R3, we are not done, so continue
24
Autres modes d’adressages
Il y a une multitude de modes d’adressages. Mais en définitive ce qu’il
faut retenir est que chaque mode apporte une utilité particulière mais aussi
une complexité. Ce n’est pas nécessaire de tous les connaitre. Il faut
savoir que chaque microprocesseur a un nombre définit de modes
d’adressage. En pratique, il vaut mieux avoir un seul voir quelques modes
bien définis que d’avoir une multitude de modes qui compliquent la tâche
de décodage d’instructions.
25
Exemple d’adressage pré indexé d’ARM
Exemple 1 LDR R0, [Rn, #Offset]
L’adresse effective AE=Rn+Offset (ici Rn veut dire contenu du
registre de base Rn)
26
Exemple d’adressage pré indexé d’ARM
Exercice
27
Exemple d’adressage pré indexé d’ARM
Solution
Cas 3 EA = R5 + R2*4=0X00001542+0X00004000=0X00005542
28
Format des Instructions
Définition
Une instruction est écrite sur N bits (32 bits dans le cas du LPC1768).
Elle contient un en-tête qu’on appelle opcode (operation code) qui
définit l’opération à effectuer. D’autres informations sont présentes
dans l’instruction et qui renseignent sur l’adresse de l’opérande, du
mode d’adressage, de la destination du résultat, etc.
29
Format des Instructions
Quelques formats possibles
Code opération
30
Format des Instructions
Taille des instructions
La taille des instructions peut être variable dans un microprocesseur. Il est vrai
qu’utiliser une taille fixe pour toutes les instructions parait plus facile à décoder
par le µp cependant cela veut dire que toutes les instructions sont codés comme
la plus longue instruction! Il est vrai aussi qu’une instruction petite prend
moins de place en mémoire et on pourrait penser qu’elle prend moins de temps
à être décodée. Cependant la complexité introduite par l’ utilisation de tailles
différentes pour les instructions augmente le temps de décodage d’où la nécessité
d’un compromis.
31
Format des Instructions
Nombre de bits alloués aux opérations et à l’adressage
On suppose qu’on a (N+K) bits pour coder une instruction. N bits pour
l’opcode et K bits pour l’adressage. Cela veut dire qu’on peut disposer
de 2N opérations différentes que le µp peut effectuer et de 2K mémoire
adressable. Si on change ça pour (N-1) bits pour l’opcode et (K+1) bits
pour l’adressage, on aura le double de mémoire adressable et la moitié
d’opérations différentes. Le choix du nombre de bits alloués à chaque
tache obéit à un compromis.
Code opération Adresse
N bits K bits 32
Format des Instructions
Exemple (tiré du livre de Tanenbaum)
33
Format des Instructions
Exemple (tiré du livre de Tanenbaum)
34
Format des Instructions
Exemple (tiré du livre de Tanenbaum)
35
Format des Instructions
Exemple (tiré du livre de Tanenbaum)
1111 1110 0000 zzzz
opcode 1111 1110 0001 zzzz
de 12 bits .
.
.
37
Format des Instructions
Exemple2 (tiré du livre : ARM Assembly
Language with Hardware experiments)
31 28 27 26 25 24 21 20 19 16 15 12 11 0
Cond 0 0 I Op code S Rn RD Opérande2
38
Format des Instructions
Exemple2 (tiré du livre : ARM Assembly
Language with Hardware experiments)
39
Format des Instructions
Exemple2 (tiré du livre : ARM Assembly
Language with Hardware experiments)
4. S: si le bit S=0 alors on ne change pas les drapeaux (Flags) du Registre PSR
(registre d’état) si le bit S=1 c’est l’inverse
5. Rn: est le premier opérande; ça peut être un des 16 registre (R0 à R15)
6. Rd: est le registre de destination; ça peut être un des 16 registre (R0 à R15)
7. Opérande2: si I=0 alors l’opérande 2 est un registre et son format est: #
11 7 6 5 4 3 0
# Shift SH 0 Rm
40
Format des Instructions
Exemple2 (tiré du livre : ARM Assembly
Language with Hardware experiments)
8. #Shift: donne le nombre de fois que Rm doit être décalée
9. SH: détermine le type décalage (00: LSL décalage logique à gauche; 01: LSR
décalage logique à droite; 10: ASR décalage arithmétique à droite; 11: ROR
rotation à droite)
10. Rm: deuxième opérande
Remarque: Si le bit 4 de l’opérande 2 est égale à 1, alors le nombre de fois que
Rm doit etre décalée est dans un registre.
Si I=1, alors l’opérande 2 à le format suivant:
11 0
Valeur immédiate 0
41
Format des Instructions
Exercice
Solution: E0821183
Cond I Op code S Rn RD #shift SH Rm
1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1
42
Jeu et catégories d’instructions
Définition
43
Catégories d’instructions
44
Catégories d’instructions
1. Instructions de transfert de données
Ces instructions sont les plus basiques. Elles servent à transférer des
données d’un emplacement vers un autre. Exemples: LOAD pour charger
une donnée à partir d’un emplacement mémoire vers un registre; STORE
pour déplacer une donnée d’un registre vers la mémoire; et MOV pour
déplacer une donnée d’un registre vers un autre.
45
Catégories d’instructions
2. Instructions d’opérations arithmétiques
46
Catégories d’instructions
2. Instructions d’opérations logiques
1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 A
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C
Pour récupérer notre caractère de 8 bits nous avons besoin d’une autre instruction
48
Catégories d’instructions
2. Instructions d’opérations logiques
LSR R4, R3, #16 Décalage à droite de 16 bits, le résultat est dans R4
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 R4
49
Catégories d’instructions
3. Instructions de décalage
50
Catégories d’instructions
4. Instructions conditionnelles
Certaines instructions ont besoin qu’une condition soit vérifiée pour être
exécutées. Généralement ces instructions utilisent les Flags du registre
d’état comme information préalable à l’exécution.
51
Catégories d’instructions
5. Instructions d’E/S
52
Catégories d’instructions
5. Instructions d’E/S
5.1. E/S programmé avec mode occupé (busy waiting)
53
Catégories d’instructions
5. Instructions d’E/S
5.2. E/S commandé à l’aide d’interruptions
54
Catégories d’instructions
5. Instructions d’E/S
5.3. E/S utilisant l’accès direct à la mémoire (DMA)
56
Microprocesseurs
La mémoire
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Introduction
2
Rappels
3
Les mémoires Vives
4
Les mémoires Mortes
5
Hiérarchie Mémoires
Plus on descend plus le prix de
l’unité mémoire diminue
7
Types de mémoires
Dynamic RAM (DRAM)
Les DRAM ne sont pas construites autour de flip-flop. C’est plutôt des
cellules avec chacune un transistor et un minuscule condensateur. Les
condensateurs se chargent et se déchargent symbolisant les 1 et 0 logiques
parce que les charges électriques ont tendance à diminuer (fuite ‘leakage’
); ces mémoires doivent être rafraichies périodiquement. Une logique
externe est utilisée à ces fins. Cela induit une plus grande complexité que
dans le cas des SRAM. Cependant, elle ont une grande capacité mémoire.
8
Types de mémoires
DRAM vs. SRAM
Les DRAM n’ont besoin que d’un transistor et d’un condensateur pour 1
bit mémoire alors que la meilleure des SRAM a besoin de 6 transistors
pour 1 bit mémoire. C’est pour ça que la plupart des mémoires sont
construites à base de DRAMs. La capacité mémoire des DRAMs peut
atteindre des Giga octets.
9
Types de mémoires
Synchronous DRAM (SDRAM)
Les SDRAM sont des mémoires hybrides combinant les SRAM et les
DRAM. Cette mémoire a besoin de l’horloge pour se synchroniser. Ce
type de mémoire a besoin de l’horloge (front montant ou descendant
ou les deux dans le cas des DDR) pour utiliser les données à son entrée
(lire) ou écrire sur le bus. Les DDR SDRAM sont des mémoires SDRAM
(voir la technologie DDR) utilisées comme mémoire principale dans les
Ordinateurs (c’est ce qu’on appelle communément la RAM).
10
Types de mémoires
Programmable ROM (PROM)
Ces des mémoires qu’on peut programmer une seule fois. Ces mémoires
contiennent une sorte de minuscule fusibles organisés en matrice. Ces
fusibles sont détruit à l’aide d’une haute tension appliquée à une pin du
circuit. Préalablement on aurait choisit la ligne et la colonne du fusible.
11
Types de mémoires
Erasable PROM (EPROM)
Ces des mémoires PROM qu’on peut reprogrammer. Elle sont effacées à
l’aide d’une exposition à une lumière ultraviolet.
Erasable EPROM (EEPROM)
Ces des mémoires EPROM qu’on peut reprogrammer électriquement. La
EEPROM a l’avantage de pouvoir être programmée in situ. Les EEPROM
n’ont pas vocation à remplacer les DRAM et SRAM car elle est beaucoup
moins rapide que ces dernières et a moins de capacité mémoire. Les EEPROM
sont utilisés dans des environnements où on a besoin de non volatilité.
12
Types de mémoires
Mémoires Flash
Ces des mémoires EEPROM avec une plus grande capacité mémoire et
une très grande vitesse. C’est le genre de mémoire qu’on trouve dans les
cartes de développements tel le LPC 1768. Elles contiennent le programme
qu’on charge à travers notre compilateur. Elles peuvent atteindre plusieurs
dizaines de Giga Octets.
13
Mémoire Cache
Définition
C’est une mémoire dont la vitesse d’accès est grande (vient juste derrière
les registres) et qui se trouve à proximité ou à l’intérieur même du
microprocesseur. Elle sert à enregistrer une partie du programme et données
en cours d’utilisation afin d’éviter des accès vers les mémoires externes
qui est très coûteux en temps.
14
Organisation de la Mémoire
Une mémoire est divisée en unités atomique d’une taille de n bits. Chaque
unité atomique est adressable. Il parait donc clair que l’organisation de la
mémoire influe sur l’adressage. On voit dans ce qui suit l’exemple de deux
mémoires de même taille (4M bits) mais qui sont organisés différemment.
15
Organisation de la Mémoire
Exemple tiré du livre de Tanenbaum
16
Organisation de la Mémoire
Mémoire 512K*8bits:
Afin d’adresser 512K d’emplacements mémoires il faut 19 lignes d’adresses
(19 bits). Pour écrire ou lire une donnée de la mémoire on a besoin de 8 bits
d’où les D0 à D7. Trois signaux sont nécessaires pour le fonctionnement de
cette mémoire à savoir le CS (chip select) qui sert à sélectionner la mémoire,
le WE (write enable) indique que les données sont écrites et non lues (ça
sert à indiquer la direction pour les données), et enfin le OE (output enable)
lorsqu’il n’est pas utilisé déconnecte les sorties par rapport au circuit.
17
Organisation de la Mémoire
Mémoire 4096K*1bits:
4096K d’emplacements mémoires sont organisés en matrices de 2048*2048
ce qui implique un autre type d’adressage (ligne, colonne). D’abord la ligne
est sélectionnée à l’aide de 11 bits et du signal RAS (row address strobe).
Par la suite la colonne est sélectionnée avec 11 bits toujours et le signal
CAS (column address strobe). Cela veut dire qu’il faut deux cycles pour
adresser une case mémoire! Mais par contre il faut moins de pins pour ce
genre de mémoire. Ce type de sélection s’appelle sélection linéaire.
18
Organisation de la Mémoire
Les mémoires larges sont souvent utilisés dans une forme matricielle n*n.
Cependant l’unité atomique n’est plus un bit mais 4, 8 ou 16 bits. Pour des
raisons de normalisation plusieurs constructeurs ont optés pour une unité
atomique de 8 bits (1 octet).
19
Unité de Gestion de la
Mémoire (MMU)
Dans les microprocesseurs actuels l’utilisation de mémoires virtuelles sert
à augmenter la capacité mémoire réelle (physique) de la machine. En réalité,
le programmeur écrit son programme comme si son environnement cible
contient une mémoire très large voire infinie. Or ce n’est pas le cas. L’idée
d’utiliser de la mémoire virtuelle permet de mieux utiliser les capacités
mémoire physiques dont nous disposons.
20
Unité de Gestion de la
Mémoire (MMU)
La pagination
21
Unité de Gestion de la
Mémoire (MMU)
La pagination
Le fait que ce ne sont pas toutes les pages du programme qui sont mappées
vers la mémoire physique augmente la capacité mémoire et ce en ne
mappant que les parties du programme en cours d’exécution par exemple. Il
faut savoir que toutes les pages du programme sont transférées en mémoire
de masse (disque dur). Si le MMU ne trouve pas en mémoire vive (RAM)
l’information souhaitée il appelle la page ou segment (contient plusieurs
pages) qui contient l’information en mémoire de masse.
22
Unité de Gestion de la
Mémoire (MMU)
La pagination: principe
23
En utilisant une mémoire virtuelle, si une adresse mémoire
d’un programme est émise sans qu’elle ne soit présente dans
la mémoire physique , le μp enregistre les données présente
dans la mémoire physique dans le disque dur et ramène la
page des adresses virtuelles vers la mémoire principale.
Ainsi l’utilisation de l’espace mémoire réel est optimisée.
24
Unité de Gestion de la
Mémoire (MMU)
La segmentation
Le segmentation permet de partager la mémoire en segments distincts de
tailles différentes (à l’inverse de la pagination). D’ailleurs, un segment contient
plusieurs pages. Cela dans le but de séparer les données du programme entre
autre. La segmentation peut être appliquée à la mémoire physique comme elle
peut être utilisée pour une mémoire virtuelle. L’adressage d’une adresse
donnée se fait en utilisant l’adressage base indexé en plus du numéro du
segment.
25
Unité de Gestion de la
Mémoire (MMU)
Utilité
4. L’arbitrage du Bus (garantit qu’à un instant donnée il n’y ait qu’un maitre du Bus)
26
Adressage des E/S
Une partie des adresses servent à pointer la mémoire (une des mémoires se
trouvant sur le bus d’adresses) . Le reste sert à adresser les périphériques
d’entrée sortie. On dit bien adresser car les E/S sont adressés de la même
manière qu’une mémoire. Aussi, il faut savoir qu’une partie des bits servent
à sélectionner le périphérique à adresser (ex: 0xxxxxxH pour la ROM pour
le programme de démarrage). C’est les bits qui servent à actionner le chip
select (CS) du circuit à adresser. Un circuit basé sur une logique
combinatoire sert de décodeur d’adresses.
27
Polling/mode interruptible
Polling
Polling veut dire littéralement scruter ou sonder. Cette opération est l’attente
du processeur d’un événement (une donné qui arrive sur un périphérique par
exemple). Au fait, le μp interroge les périphériques périodiquement pour
savoir si une donnée est prête ou si un périphérique est prêt par exemple.
Cette technique a le défaut de faire perdre du temps au μp qui pourrait faire
d’autres taches au lieu de scruter les différents périphériques.
28
Polling/mode interruptible
Mode Interruptible
29
Thank you
for your attention
30
Microprocesseurs
Circuits d’Interface Remarquables
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Le Timer
2
Le Timer
Fonctionnement
3
Le Timer
Exemple
4
Les circuit Debug
5
Les circuit Debug
Exemple: le JTAG
6
Les mémoires Tampon
7
Le DMA
Définition
8
Le DMA
Utilisation
10
Le DMA
Utilisation
11
Le DMA
Utilités
1. Augmenter les capacités multitâches du microprocesseur (système)
Remarques:
1. il se peut qu’il y ait un conflit entre le μp et le DMA (lors de l’écriture d’une
donnée en mémoire par exemple). Dans ce cas la priorité est donnée au DMA car
le microprocesseur a les ressources pour garder sa donnée.
2. Les mémoires tampons sont utilisés par le DMA pour des transferts de données
à partir du disque dur par exemple.
12
Le gestionnaire d’interruptions
Définition
13
Le gestionnaire d’interruptions
Fonctionnement
14
Le Chien de garde
Définition et utilité
15
Thank you
for your attention
16
Microprocesseurs
Optimisation de l’architecture de Von Neumann
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Rappels
Architecture de Harvard
3
Optimisation de l’architecture
de Von Neumann
Nécessité
4
Optimisation de l’architecture
de Von Neumann
Nécessité
Il faut noter aussi que les instructions complexes étaient plus proche des
langages haut niveau (C, Java, etc.): exemple l’opération de division . Cela
a induit à un grand nombre d’instructions complexes vu que pour chaque
nouvelle tache à effectuer il fallait ajouter une nouvelle instruction. Cela a
résulté sur ce qu’on appelle aujourd'hui les architectures CISC (Complex
Instruction Set Computer) .
5
Architecture CISC
Principales caractéristiques de l’architecture CISC
Les architectures CISC étaient quasiment les seules sur le marché jusqu’à
l’avènement des architecture RISC
6
Optimisation de l’architecture
de Von Neumann
Solution Possibles
1. Parmi les solutions possibles, il y a le développement de μp avec une
architecture Harvard. Cependant cette solution est onéreuse . Certains μp
ont quand même adoptés cette solution (les DSP, les PICs et certains ARMs)
7
Architecture RISC
Principales caractéristiques de l’architecture RISC
1. Jeu d’instruction réduit (instructions de base)
8
RISC vs. CISC
Tableau adapté du cours de Dr. Omar Cheikhrouhou
9
RISC vs. CISC
À la fin des années 1980 et début 1990 le débat était à son summum
concernant laquelle des deux architectures était la meilleure. En réalité, les
architectures RISC ont apportés un nouvel élan à l’industrie et l’as boosté
Au fil des années les performances des deux architectures se rapprochèrent
surtout que certains processeurs CISC incluent des cœurs processeurs RISC!
Le choix d’une architecture par rapport à une autre se fait selon l’application.
10
Notion de Pipeline
Avec l’introduction des processeurs RISC, on l’a vu, la durée d’une
instruction est d’un cycle d’horloge. Mais est-ce que c’est vraiment le
cas? Au fait, non. On dira même, évidemment non. Car, comme on l’a
déjà vu, l’exécution d’une instruction suit un cheminement constitué de
plusieurs étapes, nécessaires, dont voici les principales:
Chacune de ces étapes est exécutée en un cycle d’horloge (dans le cas des μp RISC),
alors comment peut-on dire que la durée des instruction dans les μp RISC est d’un
cycle d’horloge, alors que c’est 3 dans ce cas?
13
Notion de Pipeline
Analogie: Exemple de la fabrication du pain
15
Notion de Pipeline
Analogie: Exemple de la fabrication du pain
16
Notion de Pipeline
Analogie: Exemple de la fabrication du pain
Il faut remarquer aussi que pour réaliser un pipeline à N étages (dans notre
exemple 4), il nous faut 4 systèmes (personnes et/ou machines) pour que
ça puisse fonctionner en parallèle. Il est évident que si le Boulanger est
tous seul et sans aucune machine il ne pourra pas réaliser les 4 étapes du
pipeline en même temps ( d’où l’expression être au four et au moulin). Si
par exemple le boulanger possède une machine à pétrir (un pétrin) et
un four et sachant que l’étape où le pain est laissé pour gonfler ne
nécessite pas de traitement; le pipeline peut fonctionner.
18
Notion de Pipeline
Exemple d’un pipeline à 4 étages
19
Notion de Pipeline
Exemple d’un pipeline à 4 étages
20
Notion de Pipeline
Exemple d’un pipeline à 4 étages
21
Architecture Pipeline
Problèmes:
1. Dépendance de données
2. Dépendance de contrôle
2. Dépendance structurelle
22
Architecture Pipeline
Problèmes: 1. La dépendance de données
C’est le cas où deux instructions qui sont dans le pipeline ont besoin de lire
ou d’écrire dans les mêmes registres ou adresses mémoire. Parfois, une
instruction a besoin d’une donnée qui est le résultat d’une autre instruction. Si
l’ordre des lectures/écritures n’est pas respecté, il y aura des erreurs.
23
Architecture Pipeline
Problèmes: 2. La dépendance de contrôle
24
Architecture Pipeline
Problèmes: 3. La dépendance Structurelle
C’est le cas où deux instructions ont besoins d’utiliser une même ressource
en même temps. Il y aura donc conflit sur quelle instruction utilisera la
ressource en premier. Ce genre de problèmes peut provoquer le blocage du
pipeline. Une solution à ce genre de problèmes consiste à dupliquer la
ressource.
25
Thank you
for your attention
26
Microprocesseurs
Virgule fixe, virgule flottante
Mourad Adnane
Département d’Èlectronique, Ècole Nationale Polytechnique 2020
1
Introduction
Problème de la virgule
1 0 0 0 0 0, 0 1 -1*(0*0.5+1*0.25)=-0.25
8
Virgule Flottante
La norme IEEE 754
9
Virgule Flottante
La norme IEEE 754
1. Le bit signe est soit 1 pour les nombres négatifs, soit 0 pour les
nombres positifs.
2. L’exposant est la somme de la puissance en 2 plus le chiffre 127.
En réalité 8 bits peuvent aller de 0 à 255 pour la puissance de 2.
Afin de pouvoir utiliser cette puissance dans les deux sens, i.e., vers
les plus grands nombres comme vers les plus petits nombres. Ainsi,
de 0 à 127 c’est les puissances négatives de 2 et de 128 à 255 se
sont les puissances positives.
10
Virgule Flottante
La norme IEEE 754
12
Virgule Flottante
La norme IEEE 754
13
Virgule Flottante
Multiplication et addition
Addition
On met les deux nombres au même exposant , additionner les mantisses et ensuite
normaliser.
Multiplication
14
Virgule Flottante
Unité de calcul en virgule flottante
15
Thank you
for your attention
16