Вы находитесь на странице: 1из 10

Le microprocesseur

Chapitre
3

LE MICROPROCESSEUR

Introduction
Un microprocesseur est un circuit intégré complexe caractérisé par une très grande intégration
et doté des facultés d'interprétation et d'exécution des instructions d'un programme. Il est
chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit
aussi prendre en compte les informations extérieures et assurer leur traitement.

A l’heure actuelle, un microprocesseur regroupe, sur quelques millimètres carrés, des


fonctionnalités toujours plus complexes. Leur puissance continue de s’accroître et leur
encombrement diminue régulièrement.

3.1. Performance d’un microprocesseur


Intrinsèquement, les performances d’un microprocesseur se basent sur les trois critères
suivants:

 La longueur du mot de données : on parle de la largeur du bus de données.

 Le nombre d'octets que le microprocesseur peut adresser : on parle de la largeur du


bus d’adresses.

 Le nombre d’instructions qu’il est capable de traiter par seconde. Pour cela, on
définit:

- Cycle Par Instruction (CPI) : il représente le nombre moyen de cycles d’horloge


nécessaire pour l’exécution d’une instruction pour un microprocesseur donné.
- Millions d'Instructions Par Seconde (MIPS) : il représente la puissance de
traitement du microprocesseur.

FH
MIPS 
CPI

Avec FH est la fréquence de l’horloge exprimée en MHz.

Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la
fréquence d'horloge (limitation matérielle), soit diminuer le CPI (choix d'un jeu d'instruction
adapté).

2011/2012 1
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

3.2. Architecture de base d’un microprocesseur


Un microprocesseur est construit autour des principaux éléments suivants :

- L’unité de commande.
- L’unité de traitement.
- Les bus.

Ces éléments sont associés à des registres chargés de stocker les différentes informations
lors du traitement (opérandes, résultat de traitement, …).

Figure 1 : Architecture de base d’un microprocesseur.

3.2.1. Unité de commande


Elle est responsable de la lecture des instructions arrivant depuis la mémoire, faire le
décodage et envoyer les ordres d’exécutions nécessaires à l’unité de traitement.

3.2.2. Une unité de traitement


Elle est appelée aussi unité arithmétique et logique (UAL). Elle fonctionne sous une
impulsion de l’unité de commande (ordre). Elle assure les traitements nécessaires à
l'exécution des instructions.

3.2.3. Les bus


Ils assurent la communication et l’échange entre les différentes unités du processeur et
la mémoire principale. Les types des bus peuvent être classés comme suit :

- Le bus d’adresse : c’est un bus unidirectionnel. Il permet au processeur de


désigner à chaque instant la case mémoire auquel il veut faire appel. Il est composé
de n fils, on utilise donc un bus de n bits. La mémoire peut posséder au
maximum 2n cases mémoires ou adresses (adressables de 0 à 2n  1 ).
- Le bus de données : c’est un bus bidirectionnel. Il permet la circulation des
données. Lors d’une lecture, c’est la mémoire qui envoie un mot sur le bus (le
contenu de l’emplacement demandé). Lors d’une écriture, c’est le processeur qui
envoie le mot de données.
- Le bus de commande : appelé aussi bus de contrôle. Il synchronise les transferts
de données entre le processeur et les périphériques (la mémoire, les
entrées/sorties). On trouve en particulier le signal R/W (Read/Write), qui est utilisé
pour indiquer à la mémoire principale si l’on effectue un accès en lecture ou en
écriture.

2011/2012 2
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

3.2.4. Schéma fonctionnel

La figure ci-dessous représente l’architecture interne simplifiée d’un microprocesseur.

Figure 2 : Architecture interne du microprocesseur et cycle d’exécution d’une instruction.

Les informations circulent à l’intérieur du microprocesseur sur deux bus internes, l’un pour
les données et l’autre pour les adresses. On distingue les registres suivants :

- ACC : Accumulateur
- RW : Registre de Travail (W) ou encore Registre Tampon de l’UAL, il stocke
temporairement l’un des deux opérandes d’une instruction arithmétique.
- RE : Registre d’Etat, il stocke les indicateurs d’état appelé drapeaux ou flag (voir
détailles en chapitre 4).
- RI : Registre d’Instruction, il contient le code de l’instruction en cours d’exécution (lu
en mémoire via le bus de données).
- CO : Compteur Ordinal, il contient l’adresse de l’emplacement mémoire où se situe la
prochaine instruction à exécuter.
- RA : Registre d’Adresse, il contient l’adresse en MC de l’instruction (ou de l’opérande).
- RM : Registre Mot : il contient l’instruction (ou l’opérande).

2011/2012 3
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

3.3. Principe de fonctionnement

Le cycle d’exécution d’une instruction, illustré en détailles dans la figure 2 et sous une
version simplifiée dans la figure 3, est décrit par les 11-étapes suivantes :

1. Transfert de l’adresse de la nouvelle instruction du CO vers le RA.


2. Transfert de l’instruction cherchée dans le RM.
3. Transfert de l’instruction du RM vers le RI.
4. Décodage de l’instruction par le décodeur d’instructions ce qui permet de déterminer
l’opération à exécuter et l’adresse des opérandes.
5. L’unité de commande donne l’ordre de d’exécution à l’UAL.
6. Chargement de l’adresse de l’opérande sur le RA.
7. Incrémentation du CO pour pointer sur la prochaine opération.
8. Le contenu de l’emplacement mémoire correspondant à l’adresse de l’opérande est
placé dans le RM.
9. Transfert de contenu du RM dans l’accumulateur ou tout autre registre concerné par
l’opération en cours.
10. Exécution de l’opération par l’UAL sous le contrôle du Séquenceur.
11. Les drapeaux du RE sont positionnés.

Figure 3 : Représentation simplifiée du cycle d’exécution d’une instruction.

2011/2012 4
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

3.4. Structure d’une instruction


Les ordinateurs sont capables de faire un certain nombre d’opérations simples, par exemple
additionner deux nombres, tester le signe d’une valeur numérique, copier le contenu d’un
registre dans un autre registre, stocker en mémoire le résultat d’une opération, etc. Une
instruction machine doit fournir au CPU toutes les informations pour déclencher une
opération élémentaire. Elle doit contenir un code opération qui est essentiel pour spécifier le
type d’action demandé. En outre elle doit contenir une ou plusieurs adresses, par exemple,
l’adresse de l’opérande (ou des opérandes), l’adresse de sauvegarde du résultat, l’adresse de
l’instruction suivante. Par conséquent le format d’une instruction machine comportera un
champ code opération et jusqu’à quatre champs adresse. On parle d’instructions à n adresses,
n = 1, 2, 3, 4.
Sur certaines machines, les instructions sont toutes de même longueur, sur d’autres cette
longueur peut varier avec le code opération ou le mode d’adressage.

Code opération
Instruction à zéro adresse

Code opération Adresse


Instruction à une adresse

Code opération Adresse 1 Adresse 2


Instruction à deux adresses

Code opération Adresse 1 Adresse 2 Adresse 3


Instruction à trois adresses

On distingue six groupes d’instructions :

 Instructions de transfert de données : le transfert peut être de la mémoire au registre,


de registre au registre, de registre à mémoire (exemple : LOAD, MOVE, STORE).
 Instructions arithmétiques : addition, soustraction, multiplication, …
 Instructions logiques : ET, OU, NON, XOR, …
 Instructions de contrôle de séquence : branchements conditionnels ou non, appel de
procédure, etc.
 Instructions d’entrée/sortie (READ, WRITE,…).
 Instructions de manipulations diverses : décalage, conversion de format, permutation
circulaire de bits, échange d’octets, incrémentation, etc.

3.5. Les modes d’adressage

Les adresses spécifiées par les opérandes informent le processeur sur les emplacements des
données. Il existe plusieurs modes d’adressage qui spécifient la manière dont chaque
instruction détermine l’emplacement des valeurs des opérandes.
Pour retrouver l’adresse effective, où le mot à accéder est stocké, le processeur doit
transformer l’opérande selon le mode d’adressage associé à l’instruction en cours.

2011/2012 5
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

Les différents modes d’adressage :

 Adressage implicite
Le mode d'adressage implicite correspond à une instruction contenant uniquement le
code opérande. Il porte sur des registres particuliers (adressage registre).
(Exemple : incrémentation de l’accumulateur).

 Adressage immédiat
L’instruction supporte la donnée à utiliser. La donnée est représentée en hexadécimal
(Exemple : MOV AX, 20).

Code opération Valeur de l’opérande

 Adressage direct
L’instruction contient l’adresse d’un emplacement mémoire stockant la donnée.
L’adresse de l’emplacement est représentée en hexadécimal et placée entre crochets. Ce
mode d'adressage permet d'indiquer n'importe quel endroit dans la mémoire, le prix à
payer étant que l'on doit spécifier l'adresse concernée dans son intégralité.
(Exemple : MOV AX, 20).

 Adressage registre
Le champ adresse contient l’adresse du registre contenant l’opérande.
Code instruction
Code opération Adresse du registre Registre

Opérande

Figure 4 : Adressage registre.

 Adressage indirect
Le champ adresse contient l’adresse d’un pointeur sur la donnée (l’adresse de l’adresse
peut être contenue dans un registre ou dans une case mémoire)

 Adressage indirect par registre

Code instruction
Registre Mémoire
Code opération Adresse du registre

Adresse de
l’opérande Opérande

Figure 5 : Adressage indirect par registre.

2011/2012 6
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

 Adressage indirect par mémoire


Code instruction
Mémoire
Code opération Adresse du registre

Opérande

Adresse de
l’opérande

Figure 6 : Adressage indirect par mémoire.

 Adressage relatif
Dans le mode d’adressage relative (relative addressing), le spécificateur d’opérande
comprend l’adresse d’un registre ainsi que la valeur de déplacement.
Code instruction
Code opération Valeur de déplacement
Mémoire

+ Opérande

Registre de base
Figure 7 : Adressage relatif.

 Adressage indexé

Ce mode d’adressage est très bien utile lorsqu’on travaille, par exemple, sur des
tableaux. Considérons un bloc de n mots consécutifs débutant à l’adresse A, le jième mot
se trouve à l’adresse A+ (j-1). Pour référencer ce mot, il est possible d’utiliser un
registre d’index. L’adresse effective est calculée en additionnant le contenu de ce
registre d’index à l’adresse qui se trouve dans le champ adresse de l’instruction. Sur
certaines machines, tous les registres généraux peuvent être utilisés comme registres
d’index. La présence d’un registre d’index s’accompagne généralement de la possibilité
d’incrémentation et décrémentation automatiques.

2011/2012 7
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

Code instruction
Code opération Valeur de déplacement
Mémoire

+ Opérande

K
Registre d’index

Figure 8 : Adressage indexé.

 Adressage combiné
Dans le cas d’adressage combiné, l’indirection et l’indexation peuvent se combiner.
Exemple1 : adressage Indexé/Indirect
AE = (D+ (RI))
Exemple2 : Adressage (basé) Relatif/Indexé/Indirect
AE = (D+RB+ (RI))

3.6. Cycle d’exécution d’une instruction

Un cycle normal d’exécution d’une instruction est composé des étapes suivantes :

Recherche Obtenir l’instruction de la zone mémoire dans laquelle le programme est stocké
instruction

Décodage Déterminer les actions à réaliser et les opérandes nécessaires


instruction

Recherche Obtenir les valeurs des opérandes impliqués


opérande

Exécution Calculer le résultat


instruction

Stockage Ranger le résultat


résultat

Prochaine Déterminer la prochaine


instruction instruction

Figure 9 : Cycle d’exécution d’une instruction.

2011/2012 8
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en


binaire. Le traitement d’une instruction peut être décomposé en trois phases.

 Phase 1 : Recherche de l'instruction à traiter

1. Le CO contient l'adresse de l'instruction suivante du programme. Cette valeur est placée


sur le bus d'adresses par l'unité de commande qui émet un ordre de lecture.
2. 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.
3. L'instruction est stockée dans le registre instruction du processeur.

Figure 10 : Recherche de l'instruction à traiter.

 Phase 2 : Décodage de l’instruction et recherche de l'opérande

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 opératoire qui définit la nature de
l'opération à effectuer (addition, soustraction,...) et le nombre de mots de l'instruction.
1. Le décodeur d’instruction sous contrôle de l'unité de commande transforme
l'instruction en une suite de commandes élémentaires nécessaires au traitement de
l'instruction.
2. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de
commande récupère sa valeur sur le bus de données.
3. L’opérande est stocké dans un registre.

2011/2012 9
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI
Le microprocesseur

Figure 11 : Décodage de l’instruction et recherche de l'opérande

 Phase 3 : Exécution de l'instruction

1. Le micro-programme réalisant l'instruction est exécuté.


2. Les indicateurs sont positionnés (registre d'état).
3. L'unité de commande positionne le CO pour l'instruction suivante.

Figure 12 : Exécution de l'instruction


2011/2012 10
A.GUEDDANA, M.K.AZIZI , F.THELJANI, A.BOUBAKRI & H.WARTENI