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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]
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
[Link], [Link] , [Link], [Link] & [Link]