Microprocesseurs
et Microcontrôleur
Définition d’un microprocesseur μp
le microprocesseur est un
dispositif électronique
programmable
Définition d’un microprocesseur μp
Le microprocesseur traite les nombres
et effectue sur eux des opérations
arithmétiques ou logiques selon le
programme stocké en mémoire et
produit un nombre en résultat
Utilité d’un microprocesseur
•le microprocesseur est utilisé pour gérer un
ensemble de tache qui contrôle les
événement
•la programmation du microprocesseur
permet d’exécuter une variété de tache
les applications des microprocesseurs
L'application des microprocesseurs s’augmente de jour en
jour Certaines des applications sont :
1) Instruments scientifiques
2) terminal intelligentes
3) Contrôles du convoyeur
4) Traitement de texte
5) Jeux électroniques
7) Commandes des feux de circulation
8) Commandes de chauffage et d'éclairage de la maison
9) Système de sécurité et d'alarme incendie
10) Appareils électroménagers
11) Enseignement assisté par ordinateur
12) Contrôle en ligne de l'instrumentation de laboratoire
13) Ordinateurs de bureau
14) terminal d'E/S pour ordinateurs.
Terminologies : Registre
Un registre est un groupe de cellules de stockage
binaires (bascules) adaptées pour contenir des
informations binaires.
Terminologies : mémoire
Une unité de mémoire est un dispositif vers
lequel des informations binaires sont
transférées pour le stockage et à partir duquel
les informations sont récupérées lorsqu'elles
sont nécessaires pour le traitement
Terminologies : Pointeur d'instruction
Pointeur d'instruction est le registre
( PC) qui contient l'adresse mémoire
de l'instruction en cours d'exécution
ou prochainement exécutée (suivant
l'architecture).
Une fois l'instruction chargée, il est
automatiquement incrémenté pour
pointer l'instruction suivante.
Terminologies : bus d'adresse
Un bus d'adresse (une
série de lignes
connectant deux
périphériques ou plus)
utilisé pour spécifier
une adresse physique.
Terminologies : bus d'adresse
Lorsqu'un processeur ou
un périphérique doit lire
ou écrire dans un
emplacement mémoire, il
spécifie cet emplacement
mémoire sur le bus
d'adresse (la valeur à lire
ou à écrire est envoyée
sur le bus de données)
Terminologies : mot
La taille du "mot" fait référence au nombre de
bits traités par un processeur en une seule fois.
La taille du bus de données, la taille de
l'instruction et la taille de l'adresse sont
généralement des multiples de la taille du mot.
Terminologies : Langage machine
Le langage machine, ou code
machine, est la suite de bits qui est
interprétée par le processeur d'un
ordinateur exécutant un programme
informatique.
Terminologies : op-code
Op-code (operation code)est la partie
d'une instruction en langage machine
qui spécifie l'opération à effectuer.(+ ,- ,
OR, AND)
Terminologies : Registre d'instructions
l e r e g i s t r e
d'instructions (IR) est la
partie de l'unité de
c o n t r ô l e d ' u n
processeur qui contient
l'instruction (op-code)
en cours d'exécution ou
de décodage.
Terminologies : Registre d'instructions
Dans les processeurs
simples, chaque
instruction à exécuter est
chargée dans le registre
d'instructions, qui la
conserve pendant qu'elle
est décodée, préparée et
finalement exécutée, ce
qui peut prendre plusieurs
étapes.
Terminologies : Décodeur d'instruction
le décodeur qui extrait
l'opcode d'instruction du
registre d'instructions et le
décode pour générer des
signaux de commande
appropriés correspondant
à l'instruction
Terminologies : UAL
L'unité arithmétique et
logique (UAL), est l'organe du
processeur chargé
d'effectuer les opérations de
calculs et logique
Terminologies : Accumulateur
un accumulateur est un regist re
spécial, incorporé dans le processeur,
où les résultats intermédiaires de
l'UAL sont versés.
Sans accumulateur il faudrait verser
le résultat de l'UAL dans la mémoire
cent rale, pui s l e r e c h a r g e r p o u r
effectuer l'opération suivante
Terminologies : Accumulateur
Sans accumulateur le résultat de calcul
serait à son tour versé dans la
mémoire centrale. Cette façon de faire
ralentirait considérablement les
opérations, car les accès à la mémoire
centrale sont beaucoup plus lent que
ceux fait sur un registre, tel un
accumulateur.
Terminologies : Le registre d'état, flag registre
Le registre d'état, ou registre de Flags, est un
ensemble de bits représentant des Flags au sein
d'un processeur.
Terminologies : Le registre d'état, flag registre
Les bits composant le registre d'état sont indépendants les uns des
autres, et la valeur de chacun apporte une information
supplémentaire quant au résultat d'une opération antérieure.
En effet, au cours d'un calcul, le processeur va automatiquement
mettre à jour le registre d'état, en plus de fournir le résultat de
l'opération.
Terminologies : Registre de données temporaire
l'ALU a deux entrées:
1) entrée alimentée par l'accumulateur A
2) entrée alimentée par le registre de données temporaire Temp
Terminologies : Registre de données temporaire
le programmeur ne peut pas accéder à ces
instructions arithmétiques et logiques. Pour
exécuter un traitement sur une donnée qui se
trouve dans un registre B,le contenu de ce
registre est transféré au Temp
pour appliquer la deuxième entrée à l'ALU
Terminologies : control logic
La logique de contrôle est
r e s p o n s a b l e d u
fonctionnement de toutes les
a u t r e s p a r t i e s d u
microprocesseur ensemble.
il maintient la synchronisation en fonctionnement des
différentes parties du microprocesseur
Terminologies : logique de contrôle
La logique de contrôle reçoit le signal de décodeur
d’instruction qui décode l’instruction stockée dans le
registre d’instruction.
La logique de contrôle génère le
signal nécessaire pour effectuer
cette instruction. Elle traite
également les interruptions
Terminologies : Bus de données interne
Le bus de données interne
relie les différentes parties
du microprocesseur entre
elles et il permet la transfert
de données entre ces parties
à travers. Ce bus de données
interne est contrôlé par La
logique de contrôle.
Pile d'exécution (Pile)
Une pile est une structure de
données qui stocke des
informations sur les sous-
programmes actifs d'un
programme informatique.
Terminologies : Pointeur de pile SP
C'est un registre important que le
programmeur utilise fréquemment.
le pointeur de pile est un registre
spécial (dans les registres internes)
qui donne l'adresse mémoire de la
zone de pile
microprocesseur
un groupe de circuits électroniques ( intégration
entre l’unité UAL avec un ensemble des registres et
une unité de contrôle )fabriqués sur une puce à
semi-conducteur qui peut lire des instructions
binaires écrites en mémoire et traiter des
données binaires en fonction de ces
instructions
microprocesseur
le microprocesseur est une intégration
entre l’unité UAL avec un ensemble
des registres et une unité de contrôle unité de contrôle
qui peut lire les instruction binaires
écrite dans la mémoire et traite les
données selon ces instructions ensemble des
ALU
registres
adresse 0000 REG0
mémoires binaires 0001 REG1
0010 REG2
0011 REG3
1. un dispositif de stockage à 0100 REG4
0101 REG5
semi-conducteur composé de
A3 0110 REG6
registres qui stockent des bits A2 0111 REG7
A1 1000 REG8
binaires A0 1001 REG9
1010 REG10
2. deux grandes catégories 1011 REG11
1100 REG12
• Lire/Écrire mémoire (R/W) 1101 REG13
1110 REG14
• Lecture seulement (ROM) 1111 REG15
D7 ligne de données D0
entrées/sorties (inputs/outputs)
• les dispositifs d'entrée tels que les commutateurs et
les claviers fournissent des informations binaires au
microprocesseur.
• les périphériques de sortie tels que les LEDs, les
écrans vidéo et les imprimantes reçoivent des
informations du microprocesseur
Systèmes à base de microprocesseur
Un système à base de microprocesseur est formé des trois éléments :
- Une unité CPU (central processing unit )
- Une mémoire (ROM et RAM)
- Des ports d’entrées/sorties.
Les trois modules sont interconnectés par un système de Bus
le MPU communique avec la mémoire et les E/S à l'aide du bus système
composé de :
• bus d'adresses : non directionnel et transporte les adresses mémoire et E/S
• bus de données : bidirectionnel ; transférer des données binaires et des
instructions entre le MPU et la mémoire et les E/S
• Bus de contrôle : lecture et écriture des signaux de synchronisation affirmés
par le MPU
Du langages machine aux langages évolué
LANGAGE MACHINE : instruction binaire
tous les programmes sont convertis en langage machine d'un processeur
pour l’exécution
Mnémonique: langage intermédiaire (Assembleur)
Instruction Hex Mnémonique Description processeur
10000000 80 ADD B add reg B to Acc intel 8085
00101000 28 ADD A,R0 Add reg R0 to Acc intel 8051
00011011 18 ABA Add Acc A and B MOTOROLA 6811
langage Assembleur
langage Assembleur
Langage d'assemblage : instruction machine
représentée en mnémoniques
a une correspondance biunivoque avec les
instructions de la machine
efficace dans l'exécution et l'utilisation de la
mémoire ; et spécifique à la machine
langages évolué
Langage évolué BASIC, C, C++.
•écrit dans l'énoncé de la langue parlée
(comme l'anglais, l’arabe).
•facile à écrire.
• nécessite une grande mémoire et moins
efficace dans l'exécution
Format de données (8 bits)
Entiers non signés : les huit bits (bit7 à bit0)
représentent la grandeur du nombre
gamme de 00 à FF en Hex et 0 à 255 en décimal
Format de données (8 bits)
Entiers signés : sept bits (bit6 à bit0) représentent la grandeur
du nombre.
le 8éme bit (bit 7) représente le signe d'un nombre.
le nombre est positif lorsque le bit 7 est égale à 0
le nombre est négatif lorsque le bit 7 est 1.
nombres positifs : 00 à 7F (0 à 127)
nombres négatifs : 80 à FF (-1 à -128)
tous les nombres négatifs sont représentés en complément à 2
Format de données (8 bits)
nombres décimaux codés binaires (BCD)
les 8 bits d'un nombre sont divisé en groupes de quatre,
et chaque groupe représente un chiffre décimal de 0 à 9.
les combinaisons de quatre bits de A à F en
hexadécimal ne sont pas valides dans les nombres BCD
Exemple:
0010 0101 représente le codage binaire du nombre
décimal 25 dont la valeur est différente de 25H
Exemple de systèmes basés sur un microprocesseur
matériel système
comprend des composants discrets tels qu'un
microprocesseur, une mémoire et des E/S
composant connecté par des bus d'adresse, de données
et de contrôle
logiciel système
un groupe de programmes qui surveille les fonctions de
l'ensemble du système
Exemple : Système de température basé sur μP
capteur de
température
convertisseur ventilo chauffage
minuterie
A/N
Port Port Port de
d’entrée A de sortie B sortie C
unité de
microprocesseur
système des Bus
mémoire mémoire Port de
Flash R/W sortie (LCD)
systèmes basés sur un microcontrôleur
• comprend un microprocesseur, des ports d'E/S, une
mémoire et des périphériques de soutien (tels que des
minuteries) sur une seule puce à semi-conducteur (plus
rapide)
• les bus ne sont généralement pas disponibles pour un
concepteur de système
• Les ports d'E/S sont généralement multiplexés et peuvent
être programmés pour exécuter différentes fonctions
Exemple : Système de température basé sur
microcontroleur
Microcontrôleur
unité microprocesseur
Périphériques
Capteur de température
Flash A Ventilateur
Mémoire
élément de chauffage
R/W B LCD
Mémoire
Conv
minuterie C
A/N
le microprocesseur simple
Le modèle simple d’un microprocesseur est un circuit numérique
séquentiel qui permet d’expliquer le fonctionnement du bloc
microprocesseur
Le circuit numérique séquentiel se compose de :
1- compteur incrémental (up-counter):
c’est un compteur 4 bit qui compte de 0 à 15 et qui
commence toujours par 0 le compteur est piloté par
un signal horloge et sa sortie est donnée au
décodeur A
2- décodeur A
c’est un décodeur 4:16 bit. les 4 entrées sont
utilisées pour activer les sorties de ce décodeur afin
de sélecter un registre parmi l’ensemble des registre
Le circuit numérique séquentiel se compose de :
ensemble de registres:
L’ensemble de registres est constitué de16
registres de 3 bit, chaque registre peut
enregistrer un mot de 3 bit. les sorties sont
connectés à un bus commun à travers
commutateur d'activation de sortie. la sortie
du décodeur A est utilisée pour activer les
signaux des registres (R 0 -R15) une sortie du
décodeur est activée a la fois selon le signal
d’entrée, donc la donnée d’un seul registre
est disponible au bus commun
Le circuit numérique séquentiel se compose de :
Bus commun
le bus commun à 3 bit est connecté
au registre A, registre B et le
registre I à travers le Switch. si le
Switch est dans la position A le bus
commun est connecté au registre
A ou auregistre B sinon il est
connecté au registre I. la position
de Switch est contrôlé par le circuit
de contrôle du Switch
Le circuit numérique séquentiel se compose de :
Registre I:
Il est utilisé pour stocker les données qui viennent du bus
commun
Décodeur B:
c’est un décodeur 3:8. les données provenant du registre I
sont utilisées comme entrée du décodeur. si le Switch est
dans la position B, ces données sont décodées et utilisées
pour sélecter le circuit de contrôle approprié à partir de l’unité
de contrôle comme il est montré dans le tableau
Op-code Unité de contrôle Op-code Unité de contrôle
D2 D1 D0 sélectée D2 D1 D0 sélectée
000 MOV A, C 100 AND
001 MOV B, C 101 OR
010 ADD 110 LOAD A
011 SUB 111 LOAD B
Le circuit numérique séquentiel se compose de :
unité de contrôle: Il se compose de 8 circuit de contrôle.
ces circuits sont utilisée pour générer les signaux qui select
les opérations de ALU et active le signal d’entrée du
registre A et de registre B. Un seul circuit de contrôle est
activé à la fois selon la sortie de décodeur
instruction Description
Le circuit de contrôle active le signal d’entrée du
MOV A, C registre A et le signal de sortie du registre C les
données sont copiées du registre C vers le registre A
Le circuit de contrôle active le signal d’entrée du
MOV B, C registre B et le signal de sortie du registre C les
données sont copiées du registre C vers le registre B
instruction Description
Le circuit de contrôle génère le signal de contrôle nécessaire
ADD pour l’opération de l’addition qui doit être effectué par l’ALU
comme par exemple A+B→C
Le circuit de contrôle génère le signal de contrôle nécessaire
SUB pour l’opération de la soustraction qui doit être effectué par
l’ALU comme par exemple A-B→C
le circuit de contrôle génère le signal de contrôle nécessaire
AND pour l’opération logique AND qui doit être effectué par l’ALU
le circuit de contrôle génère le signal de contrôle nécessaire
OR pour l’opération logique OR qui doit être effectué par l’ALU
le circuit de contrôle génère le signal de contrôle qui active le
signal d’entrée pour le registre A. il indique également que le
load A
circuit de commande de l'interrupteur doit changer la position
de l'interrupteur sur A
le circuit de contrôle génère le signal de contrôle qui active le
signal d’entrée pour le registre B. il indique également que le
load B
circuit de commande de l'interrupteur doit changer la position
de l'interrupteur sur A
Le circuit numérique séquentiel se compose de :
circuit de contrôle de Switch :
le circuit de contrôle de Switch est
responsable de la position de Switch. il
obtient son entrée à partir de l’unité de
contrôle de LOAD A et LOAD B. si une
des ces entrées est activée il change la
positon de Switch vers la position A, si
no il conserve la position de Switch sur B.
Le circuit numérique séquentiel se compose de :
ALU
l’ALU prend l’entrée à partir du
registre A et le registre B. cette
entrée est traitée selon l'opération
sélectionnée par l'unité de
contrôle. le résultat du processus
est stocké dans le registre C
Fonctionnement : Exemple addition de 2 nombres
On veut faire l’addition de deux nombre 4=1002 et 2=0102
Etapes:
[Link] 1er nombre
[Link] 2eme nombre
[Link] 2 nombres
Fonctionnement : Exemple addition de 2 nombres
1. charger l’Op-Code de l’opération LOAD A
dans le registre R0
2. charger le nombre 4 dans le registre R1
3. charger l’Op-Code de l’opération LOAD B
dans le registre R2
4. charger le nombre 2 dans le registre R3
5. charger l’Op-Code de l’opération ADD
dans le registre R4
Fonctionnement : Exemple addition de 2 nombres
1. Le compteur incrémental 4 bit commence initialement par 0, la
sortie du compteur est 0
2. le décodeur select le 1 er Registre R 0 à partir du de
l’ensemble des registres donc les données du registres
R0 sont disponible sur bus commun
3. le Switch est initialement à la position B, les données sur le
bus commun sont décodées, selon ces données,
4. l’unité de contrôle select les opérations et l'ALU effectue
l'opération choisie
Fonctionnement : Exemple addition de 2 nombres
étape 1: la sortie du compteur (0000)
initialement le compteur est dans la
condition de Reset. le Décodeur A
select le registre R 0 les données du
registre R0 (110) est disponible
sur le bus commun. le décodeur B
utilise ces données pour sélecter
l’opération, comme la donnée est 110 le
décodeur B sélecte l’opération LOAD A.
l’opération LOAD A active l’entrée du
registre A et change la position du
Switch de la position B vers à position A
Fonctionnement : Exemple addition de 2 nombres
étape 2 la sortie du compteur (0001)
le décodeur A select le registre
R 1 une fois le registre R1 est
sélecté 100 est disponible sur le
bus commun. ces données sont
directement transférées au registre
A car le Switch est sur la position
A et l’entrée de registre est déjà
activée. après le transfert des
données la position de Switch est
changé de la position A à la
position B
Fonctionnement : Exemple addition de 2 nombres
étape 3 la sortie du compteur (0010)
le décodeur A select le registre R2.
une fois le registre R2 est sélecté,
les données du registre R2 (1 1 1)
sont disponible sur le bus commun.
le décodeur B utilise ces données
pour sélecter l’opération du ALU. le
décodeur B select l’opération LOAD
B. l’opération LOAD B active
l’entrée du registre B et change la
position de Switch de la position B à
la position A
Fonctionnement : Exemple addition de 2 nombres
étape4 la sortie de compteur (0011)
le décodeur A select le registre R3.
une fois le registre R3 est
sélectionné les données du registre
3 (010) est disponible sur le bus
commun. ces données sot
directement transférées au registre
B car le Switch est positionné sur A
et l’entrée du registre B et toujours
activée. Après le transfert des
données la position du Switch est
changée de la position A à la
position B
Fonctionnement : Exemple addition de 2 nombres
étape5 la sortie de compteur (0100)
le décodeur A select le registre R4.
une fois le registre R4 est
sélectionné les données du registre
R4(010) est disponible sur le bus
commun. comme la donnée est 010,
le décodeur B select l’opération
ADD. le circuit de contrôle ADD
génère un signal pour que l’ALU
effectue l’opération ADD. l’ALU
addition le contenu du registre A et
le registre B et enregistre le résultat
dans le registre C.
Conclusion
On peut utiliser le même circuit pour les opérations de soustraction,
multiplication division, AND logique, OR logique, cela peut être atteint
par l’écriture des Op-code avec les données nécessaires avec le
programme dans la matrice des registres. les opération LOAD A, LOAD
B. nécessite deux étapes. la première l’entrée de registre est activée et
la position du Switch est changée. dans la seconde les données
actuelle sont déplacées (les opérandes). pour compléter une opération
il nous faut un op-code ou par fois un op-code et un opérande . cette
opération complete est une instruction (op-code+opérandes)
Terminologies : microprocesseur, mémoire
le bloc microprocesseur
est composé d’un compteur,
un circuit de contrôle de
Switch, d’un décodeur B
d’une unité de contrôle d’un
ALU et des registres
mémoire: c’est une
combinaison entre une
matrice des registres d’un
circuit décodeur
Terminologies : programme
programme: la séquence d’instruction écrite pour une opération spécifique.
compteur de programme : le compteur de programme est utilisé pour
localiser les instruction dans le programme.
Terminologies : bus d’adresse/données
adresse et bus d’adresse: la sortie du compteur de programme est fournie au mémoire de
décodeur A du mémoire décode la sortie du compteur pour localiser le registre spécifique
dans la mémoire. la sortie du compteur du programme est le bus d’adresse . données et bus
des données: les données dans les registres sont utilisées sous différents forme comme les
op-codes, les opérandes les données sont transformées par un groupe de ligne : bus de
données
les trois blocs de la figure montre trois différents
phases impliquées dans le processus différentes phases du
d’exécution. processus d'exécution
1) Récupérer 2) décoder 3) exécuter
Récupérer: dans cette phase le microprocesseur
place le contenu du compteur de programme de
le bus d’adresse et obtiens le code d’instruction,
l’op-code à partir de la mémoire adressée. le
microprocesseur sauvegarde l’op-code dans le
registre d’instruction
décode:dans cette phase l’op-code dans le
registre d’instruction est décodé pour générer le
signal de contrôle approprié pour exécuter
l’instruction.
exécuter : dans cette phase le microprocesseur
génère le signal de contrôle approprié et exécute
l’instruction