Vous êtes sur la page 1sur 13

MICROPROCESSEURS & MICROCONTROLEURS

PREMIERE PARTIE : MICROPROCESSEURS

Chapitre II- Architecture de base d'un Microprocesseur

II-1 Introduction

Les systèmes à base de processeur (microprocesseur ou microcontroleur) sont des systèmes


numériques complexes. Ils sont construits et organisés autour d'un microprocesseur (ou
microcontrôleur). On les retrouvent sur les micro-ordinateurs, les téléphones, les appareils
électroménagers, les appareils hi-fi, les voitures, les avions, etc. Dans l`industrie ils sont
intégrés dans les machines de production et de fabrication comme les robots industriels, les
machines à outils (fraiseuse, perceuse, etc.), les automates programmables industriels. Les
appareils et les équipements deviennent de plus en plus "intelligents". Ils sont dotés d'un
système de traitement d'information complexe et sophistiqué qui nécessite l’usage d'un
système à microprocesseur dont la taille n'a pas cessé de diminuer.

II-2 Architecture de base

L’architecture, dite de Von Neumann décompose l’ordinateur en quatre parties distinctes :


• Le processeur qui s'articule autour d’une unité arithmétique et logique (UAL ou ALU en
anglais) ou unité de traitement (chargée d’effectuer les opérations de base) et d’une unité de
contrôle (chargée du séquençage des opérations) ;
• Les registres qui sont des petites mémoires de travail.
• La mémoire principale qui contient à la fois les données et le programme exécuté par
l’unité de contrôle.
• Les dispositifs d’entrée-sortie, qui permettent de communiquer avec le monde extérieur.
Les différents composants sont reliés par des bus.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 1/ 13
II-2-1 Unité Arithmétique et logique
L'unité arithmétique et logique est une unité basée sur les circuits logiques combinatoires et
dont le rôle est de réaliser plusieurs fonctions sur un couple d'entrées. Elle permet d'exécuter
plusieurs fonctions de type arithmétique (addition, soustraction, ...).
Elle peut aussi exécuter plusieurs fonctions logiques (et, ou, ...). Le schéma ci-dessous
montre les différents éléments fournis à l'unité arithmétique et logique, et les différents
éléments fournis par l'unité arithmétique et logique.

Une commande mode permet de spécifier le type de calcul (arithmétique ou logique). La


commande fonction sur k bits, permet d'indiquer l'une parmi les 2 k fonctions possibles dans
le mode considéré. La fonction sélectionnée s'appliquera sur les données A et B pour fournir
le résultat F. L'entrée Cin sera utilisée dans le mode arithmétique comme retenue entrante,
tandis que la sortie Cout sera la retenue sortante dans ce même mode arithmétique.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 2/ 13
II-2-2 L’unité de commande et de contrôle
C'est l'unité de controle qui supervise le déroulement de toutes les opérations au sein du
Processeur. Elle est constituée principalement de :

• l'horloge : C'est l'horloge qui génère les signaux qui permettent le cadencement et la
synchronisation de toutes les opérations. C'est un signal carré qui a une fréquence fixe (3
Ghz par exemple) : a chaque coup (front) d'horloge, le microprocesseur réalise une tâche
élémentaire. L'exécution d'une instruction nécessite plusieurs coups d'horloges.

• Le compteur programme PC : Le compteur programme (PC : program counter) est un


registre (pointeur) qui contient l'adresse de la case mémoire où est stockée le prochain
élément d'instruction qui devra être chargé dans le processeur pour être analysé et exécuté.
Au début de l'exécution d'un programme, le PC est initialisé par le système d'exploitation à
l'adresse mémoire où est stockée la première instruction du programme. Le compteur
programme est, ensuite, incrémenté automatiquement chaque fois qu'un élément
d'instruction est chargée dans le processeur. Pendant que le microprocesseur exéuté une
instruction, le PC pointe déjà sur l'adresse de la prochaine instruction à exécuter.

• Le registre d'instruction RI : C'est là où le CPU stocke l'instruction en cours


d'exécution.

• Le décodeur : C'est lui qui se charge de "décoder" l'instruction contenue dans RI,
générer les signaux logiques correspondant et les communiquer au séquenceur.

• Le séquenceur : Il gère le séquencement des opérations et génère les signaux de


commande qui vont activer tous les éléments qui participeront à l'exécution de l'instruction
et spécialement l'ALU.

• Le registre d'état : Le registre d'état est formé de plusieurs bits appelés drapeaux ou
indicateurs (Flags) qui sont positionnés par l'ALU après chaque opération.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 3/ 13
Voici quelques indicateurs :
• Z (Zero) : il est positionné à 1 pour indiquer que le résultat de l'opération est égal
à Zéro.
• C (Carry): indique que l'opération a généré une retenue.
• H (Half Carry) : indique une retenue intermédiare .
• N (Negative) : indique que le résultat est négatif …
• P (Parity) : indicateur de parité

II-2-3 Les registres et l'accumulateur

Le processeur utilise toujours des registres, qui sont des petites mémoires internes très
rapides d'accès, pour stocker temporairement une donnée, une instruction ou une adresse.
Chaque registre stocke 8, 16, 32 bits, etc.
Le nombre exact de registres dépend du type de processeur et varie typiquement entre une
dizaine et une centaine.
Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour
stocker les résultats des opérations arithmétiques et logiques.
L'accumulateur intervient dans une proportion importante des instructions. Par exemple,
examinons ce qu'il se passe lorsque le processeur exécute une instruction comme ``Ajouter
5 au contenu de la case mémoire d'adresse 180'' :

• Le processeur lit et décode l'instruction;


• le processeur demande à la mémoire la contenu de l'emplacement 180;
• la valeur lue est rangée dans l'accumulateur;
• l'unité de traitement (UAL) ajoute 5 au contenu de l'accumulateur;
• le contenu de l'accumulateur est écris en mémoire à l'adresse 180.
• C'est l'unité de commande qui déclenche chacune de ces actions dans l'ordre.
• L'addition proprement dite est effectuée par l'UAL.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 4/ 13
II-2-4 Exécution d’un programme
Le rôle d'un processeur est d'exécuter des programmes. Un programme est une suite
d'instructions écrites une par ligne. Une instruction peut être plus ou moins sophistiquée
selon le langage utilisé. Pour un langage de bas niveau comme l'assembleur, une instruction
réalise une tache élémentaire comme une addition. Avec un langage de haut niveau comme
Java, une instruction peut réaliser un ensemble de taches qui nécessiterait plusieurs
instructions en Assembleur.
Un processeur quel qu'il soit sait exécuter un ensemble bien défini de codes machines (jeux
d'instructions). Chaque code machine est un nombre binaire de quelques octets, il
correspond à une instruction élémentaire bien définie.

L'instruction MOV BP,41h (assembleur) qui signifie : placer le nombre 41h dans le registre
BP. On utilise généralement le codage hexadécimal (BD 41 00) tant pour les instructions
que pour les données.

Remarque :
L'intérêt du langage assembleur est que chaque instruction que nous écrivons correspond à
une instruction élémentaire du processeur. C'est comme si on travaillait directement en
langage machine. Ainsi, on sait exactement tout ce que fait le processeur lors de
l'exécution d'un programme.

Quand on demande l'exécution d'un programme, celui-ci est chargé par le système
d'exploitation (à partir du disque dur ou autre support externe) dans une zone de la mémoire
RAM. La RAM étant organisée en octets, chaque élément d'instruction est donc stocké dans

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 5/ 13
une position mémoire. L'adresse (le numéro) de la case mémoire de début est communiquée
au processeur pour qu'il commence l'exécution au bon endroit.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 6/ 13
II-3 Fonctionnement d'un Microprocesseur
Le schéma ci-dessous présente les différents éléments de base d'un microprocesseur.

Les mémoires Tampon sont des registres (unités mémoires contenant un seul mot de 8, 16,
32 ou 64 bits). Leur rôle consiste à stocker l'information (donnée ou adresse) durant le laps
de temps nécessaire pour un traitement donné.
II-3-1 : Indicateurs
A chaque opération, le microprocesseur positionne un certain nombre de bascules d'état. Ces
bascules sont appelées aussi indicateurs d'état ou drapeaux (status, flags en anglais). Par
exemple, si une soustraction donne un résultat nul, l'indicateur de zéro (Z) sera mis à 1. Ces
bascules sont regroupées dans le registre d'état :
On peut citer comme indicateurs:
– retenue (carry : C) : ce bit est positionné à 1 lorsqu'une opération arithmétique
produit une retenue
– retenue intermédiaire (Auxiliary-Carry : AC ou H) : Sur les opérations
arithmétiques, ce bit signale une retenue entre groupes de 4 bits (Half-byte: demi-
octet) d'une quantité de 8 bits.
– signe (Sign : S) : est mis à 0 lorsque le signe d'une donnée binaire est positif, et
mis à 1 lorsque le nombre est négatif
– débordement (Overflow : O) : Cet indicateur est mis 1, lorsqu'il y a un
dépassement de capacité pour les opérations arithmétiques en complément à 2.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 7/ 13
– zéro (Z) : ce bit vaut 1 si le résultat d'une opération est égal à 0
– parité (Parity : P) : est mis à 0 (parité paire) pour indiquer que le résultat d'une
opération comporte un nombre pair de bits à 1.
Les flags jouent un rôle très précieux dans l'interprétation des résultats des différentes
opérations réalisées par le microprocesseur. Ils offrent ainsi la possibilité de corriger certains
résultats.
Exemple: addition de nombres binaire sur 8 bits
11111100
+ 10000010
----------------
(1) 01111110

Il apparaît que si l'on considère seulement les huit premiers bits de ce résultat, il est erroné.
Le neuvième bit est mémorisé dans le registre d'état et constitue le flags C : C=1
Il revient alors au programmeur de corriger le résultat obtenu, en testant la valeur de du bit
II-3-2 Registres
Il y’a deux types de registres : les registres d'usage général, et les registres d'adresses
(pointeurs).

II-3-2-1 Les registres d'usage général.


Ce sont des mémoires rapides, à l'intérieur du microprocesseur, qui permettent à l'UAL de
manipuler des données à vitesse élevée. Ils sont connectés au bus de données interne au
microprocesseur. L'adresse d'un registre est associée à son nom (on donne généralement
comme nom une lettre) A, B,C...

Exemple :
MOV C,B: transfert du contenu du registre B dans le registre C.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 8/ 13
II-3-2-2 Les registres d'adresses (pointeurs).
Ce sont des registres connectés au bus d’adresses. On peut citer comme registre:
– Le compteur ordinal (pointeur de programme PC) ;
– Le pointeur de pile (stack pointer SP) ;
– Les registres d'index (index source SI et index destination DI).

Le compteur ordinal (pointeur de programme PC) :


Il contient l'adresse de l'instruction à rechercher en mémoire. L'unité de commande
incrémente le compteur ordinal (PC) du nombre d'octets sur lequel l'instruction, en cours
d'exécution, est codée. Le compteur ordinal contiendra alors l'adresse de l'instruction
suivante.

Exemple : Cas d'un microprocesseur 8086 de INTEL


(PC)=10000H ;
Supposons qu'il pointe la cellule mémoire qui contient l'instruction MOV CX,BX qui est
codée sur deux octets (89 D9H) ; l'unité de commande incrémentera de deux le contenu du
PC :
(PC) = 10002H (la mémoire étant organisée en octets).

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 9/ 13
Le pointeur de pile (stack pointer SP)
Il contient l'adresse de la pile. Celle-ci est une partie de la mémoire, elle permet de stocker
des informations (le contenu des registres) relatives au traitement des interruptions et des
sous-programmes.
pile est gérée en LIFO : (Last IN First Out) dernier entré premier sorti. Le fonctionnement
est identique à une pile d'assiettes. Le pointeur de pile SP pointe le haut de la pile qui
correspond à la dernière information entrée dans la pile. Il est décrémenté avant chaque
empilement, et incrémenté après chaque dépilement.
Il existe deux instructions pour empiler et dépiler: PUSH et POP.
Exemple:
PUSH A empilera le registre A et POP A le dépilera. La figure suivante montre l’évolution
du pointeur de pile durant l’exécution du programme commençant en 12E30H.

Le processeur commence par sauvegarder le contenu de C dans la pile (PUSH C). Pour cela
(SP) est décrémenté de deux ((SP)=31000H-2=30FFEH), puis on effectue l'écriture de (C)
dans la mémoire à l'adresse (SP) : (30FFEH) = 6142H.
Pour PUSH A on obtient : (30FFCH)=1234H, et pour PUSH B : (30FFAH)=2D5AH. Pour
l'instruction POP B, (SP) est chargé dans le registre B (SP=30FFAH ; B=2D5AH) puis (SP)
est incrémenté de deux (SP= 30FFAH+2=30FFCH). Enfin, pour POP A on obtient :
A=1234H et (SP=30FFCH + 2 = 30FFEH).

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 10/ 13
Les registres d'index (index source SI et index destination DI).
Les registres d'index permettent de mémoriser une adresse particulière (par exemple : début
d'un tableau). Ces registres sont aussi utilisés pour adresser la mémoire de manière
différente. C'est le mode d'adressage indexé.
Exemple :
MOV A,[SI+10000H] place le contenu de la mémoire d'adresse 10000H + le contenu de SI,
dans le registre A.

II-3-2-3 Principe d’exécution d'une instruction.


Le programme exécuté par un microprocesseur est une suite d’instructions stockées dans la
mémoire. Une instruction peut être codée sur un ou plusieurs octets. Le format d’une
instruction est donc le suivant :

Le programme est stocké en mémoire centrale :

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 11/ 13
Pour exécuter le programme contenu dans la mémoire centrale, le séquenceur du
microprocesseur exécute lui-même un programme appelé micro-code, contenu dans une
mémoire morte à l’intérieur du microprocesseur. Le séquenceur est dirigé par une horloge
qui délivre un signal de fréquence donnée permettant d’enchaîner les différentes étapes de
l’exécution d’une instruction

Chaque instruction est caractérisée par le nombre de périodes d’horloge (ou microcycles)
qu’elle utilise (donnée fournie par le fabricant du microprocesseur).

Dans cette architecture standard, l’exécution d’une instruction se fait en trois étapes:
– Recherche de l'instruction (Fetch) ;
– Décodage (decode) ;
– Exécution (execute).

II-3-2-3 Recherche de l'instruction.


Le contenu de PC (compteur ordinal) est placé sur le bus d’adresse (c'est l'unité de

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 12/ 13
commande qui établit la connexion). L'unité de commande (UC) émet un ordre de lecture
(READ=RD=1). Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la
case mémoire sélectionnée est disponible sur le bus des données. L'unité de commande
charge la donnée dans le registre d'instruction pour décodage.

Exemple :
Le microprocesseur place le contenu de PC (10000H) sur le bus d’adresse et met RD à 1
(cycle de lecture). La mémoire met sur le bus de données le contenu de sa mémoire n°
10000H (ici 89D9H qui est le code de MOV C,B ). Le microprocesseur place dans son
registre d'instruction le contenu du bus de données (89D9H). L'unité de commande décode
et exécute l'instruction (MOV C,B).

II-3-2-4 Le Décodage de l’instruction.


Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut être
codée sur plusieurs mots. Ce premier mot contient le code de l'instruction qui définit la
nature de l'opération à effectuer (addition, rotation,...) et le nombre de mots de l'instruction.
L'unité de commande décode le code de l'instruction pour pouvoir l'exécuter.

II-3-2-5 L'exécution de l'instruction


Après l’exécution de l’instruction par micro-programme, les indicateurs sont positionnés (O,
S, Z, A, P, C). L'unité de commande positionne le compteur ordinal (PC) pour l'instruction
suivante : cette action est en faite réalisée pendant l'exécution de l'instruction en cours et
non pas après.

Cours Microprocesseurs et Microcontrôleurs • Enseignant : Pascal ONIANGUE


Page 13/ 13

Vous aimerez peut-être aussi