Vous êtes sur la page 1sur 79

Micro-processeur

Wafa Makni

1
Introduction
• Le Processeur CPU est le cerveau de l'ordinateur,
• Il permet de manipuler des informations

numériques, c'est-à-dire des informations codées

sous forme binaire, et d'exécuter les instructions

stockées en mémoire.

2
Introduction
• Un microprocesseur est un circuit intégré
complexe.
• Il résulte de l'intégration sur une puce de
fonctions logiques combinatoires (logiques ou
arithmétique) et séquentielles (registres,
compteur, etc..).
• Il est capable d'interpréter et d'exécuter les
instructions d'un programme.

3
Introduction
• pour fonctionner, le processeur est cadencé
au rythme d'une horloge interne.
• La fréquence d'horloge (appelée également
cycle, correspondant au nombre d'impulsions
par seconde, s'exprime en Hertz (Hz) ).
• A chaque top d'horloge le processeur exécute
une action, correspondant à une instruction
ou une partie d'instruction.

4
Langage de programmation

5
Langage de programmation
• Le langage machine est le langage compris par
le microprocesseur.
• Ce langage est difficile à maîtriser puisque
chaque instruction est codée par une
séquence propre de bits.
• Afin de faciliter la tâche du programmeur, on
a créé différents langages plus ou moins
évolués.

6
Langage de programmation
• Le langage assembleur est le langage le plus «
proche » du langage machine.
• Il est composé par des instructions en général
assez rudimentaires que l’on appelle des
mnémoniques.
• Ce sont essentiellement des opérations de
transfert de données entre les registres et
l'extérieur du microprocesseur (mémoire ou
périphérique), ou des opérations arithmétiques
ou logiques.

7
Langage de programmation
• Chaque instruction représente un code
machine différent. Chaque microprocesseur
peut posséder un assembleur différent
• La difficulté de mise en œuvre de ce type de
langage, et leur forte dépendance avec la
machine a nécessité la conception de langages
de haut niveau, plus adaptés à l'homme, et
aux applications qu'il cherchait à développer.

8
Langage de programmation
• (C, Pascal, Java, etc…).
• Chaque instruction en langage de haut niveau
correspondra à une succession d’instructions en
langage assembleur.
• Une fois développé, le programme en langage de
haut niveau n’est donc pas compréhensible par le
microprocesseur.
• Il faut le compiler pour le traduire en assembleur
puis l’assembler pour le convertir en code
machine compréhensible par le microprocesseur.
Ces opérations sont réalisées à partir de logiciels
spécialisés appelés compilateur et assembleur.
9
Langage de programmation

10
Comparaison
Langage haut niveau / Assembleur

Langage haut niveau Langage assembleur


+ rapide à coder - temps de programmation élevé
+ Langage facile - Langage complexe
(architecture du µP, les
registres…)
- Exécution lente (code non
optimisé donc le compilateur va + Exécution rapide ( programme
engendrer un programme optimisé ce que le compilateur
beaucoup plus volumineux) ne fait pas)

11
Langage assembleur
• Un langage assembleur est un langage de bas niveau qui
représente le langage machine sous une forme lisible par l’être
humain.
• le langage assembleur permet d’écrire les instructions du
microprocesseur en mnémoniques plutôt qu’en binaire (code
machine).
• Chaque microprocesseur a son propre langage machine Seul le
langage C est commun à tous.

• Pour chaque microprocesseur on associe son compilateur

12
Instructions

Une instruction est composée de deux champs :

▪ le code opération, représentant l'action que le processeur doit accomplir ;


▪ le code opérande, définissant les paramètres de l'action. Le code opérande
dépend de l'opération. Il peut s'agir d'une donnée ou bien d'une adresse
mémoire.
▪ Exemple, l'instruction assembleur « MOV AX, BX » va copier la donnée qui se
trouve dans le registre BX dans le registre AX .

13
Instructions
Les instructions machine sont réparties selon les
types suivants:
• instructions de traitement ayant pour fonction
d'effectuer les opérations arithmétiques et
logiques
• instructions d'échange permettant le transfert
des données entre la mémoire et les unités
périphériques
• instructions de rupture de séquence ayant pour
rôle de modifier la séquence de déroulement des
instructions.

14
Instructions
En général, les instructions renferment les
informations suivantes:
• le code opération
• un ou des opérandes
• l'endroit où doit être rangé le résultat
• Elles peuvent aussi indiquer l'adresse de la
prochaine instruction.

15
Instructions
• Si le langage machine peut être différent d'une
machine à une autre, c'est que certaines
caractéristiques des instructions peuvent varier,
entre autres:
• La longueur de l'instruction (nombre de bits).
• Le nombre d'opérandes.
• La longueur de chaque opérande.
• La longueur du code d'opération.
• La nature des opérations possibles.

16
Format général d'une instruction.
❑ Format général d'une instruction à trois opérandes

▪ Cette instruction comporte un code d'opération, et 3 "spécificateurs d'opérande".


en général des adresses d'opérande.
▪ Toutes les adresses doivent avoir la même longueur (m bits dans le schéma).
▪ Si l'instruction est codée sur n bits, il reste donc: n bits - 3m bits (l'espace occupé par
les adresses) pour le code d'opération.
17
Format général d'une instruction.

18
Répertoire d'instructions
• L'ensemble des instructions qu'une machine peut exécuter
constitue son répertoire d'instructions ou jeu d'instructions.
• La longueur du code opération détermine le nombre
d'opérations différentes qui constituent le répertoire
• Plus le code opération est court, plus le répertoire sera limité.
• Il doit cependant contenir au moins une instruction pour:
communiquer avec l'extérieur
entrer et sortir des données
effectuer une rupture de séquence ou un test

19
Répertoire d'instructions
• À l'inverse, plus le code opération est long,
plus le répertoire d'instruction de la machine
est grand, ce qui permet d'ajouter au
répertoire de base d'autres instructions plus
sophistiquées, et par le fait-même, d'en
accroître la complexité le coût.

20
Répertoire d'instructions
Exemple:

• instruction sur 18 bits


• 3 opérandes de 5 bits
• un code d'opération sur 3 bits
• nombre de cellules de mémoire adressables: 25 = 32
cellules nombre d'instructions du répertoire: 23 = 8
instructions

21
Répertoire d'instructions
• Imaginons la même machine, mais avec 2
opérandes au lieu de 3.
• Les 18 bits de l'instruction pourraient, par
exemple, se répartir ainsi: 2 opérandes de 7
bits et un code d'opération de 4 bits
• nombre de cellules de mémoire adressables:
27 = 128
• cellules nombre d'instructions du répertoire:
24 = 16 instructions

22
Répertoire d'instructions
• Comme on le constate, le répertoire
d'instruction a doublé et le nombre de cellules
de mémoire adressables a quadruplé par
rapport à l'instruction à trois adresses.
• En fait, dans les instructions à 3 adresses, le
3ème opérande ne sert qu'à indiquer l'adresse
de rangement du résultat, puisque les
opérations logiques et arithmétiques
s'effectuent sur deux opérandes à la fois.

23
Les 3 bits du code d'opération permettent de disposer de 8 instructions
différentes.
Le répertoire pourrait être le suivant:

24
▪ la première colonne donne le code d'opération
binaire (sur 3 bits); chaque opération est
symbolisée par le mnémonique correspondant.
▪ Les lettres A, B et C désignent des adresses
symboliques et (A), (B) et (C) désignent le contenu
des cellules d'adresses A, B et C (les adresses
effectives).
▪ Les affectations sont représentées par <= :
▪ C <=(A) signifie de placer à l'adresse C le contenu de
la cellule d'adresse A.
25
Nombre d'opérandes
❑ Instruction à 4 adresses

Exemple : ADD X, Y, Z, W
L'instruction signifie: (Z) <= (X) + (Y) & (W)
▪ additionner les contenus des cellules de mémoire d'adresse X et Y
▪ placer le résultat de l'addition dans la cellule d'adresse Z,
▪ aller chercher la prochaine instruction à la cellule d'adresse W. 26
Nombre d'opérandes
❑ Instruction à 3 adresses

Un processeur fonctionnant avec de telles instructions


localise l'instruction suivante à l'aide d'un registre
compteur ordinal.
Le compteur ordinal doit comporter m bits de position,
car il est destiné à recevoir des adresses. 27
Nombre d'opérandes
❑ Instruction à 2 adresses

▪ Les instructions à 2 adresses sont les plus courantes.

28
Nombre d'opérandes
❑ Instruction à une adresse

un registre supplémentaire pour stocker temporairement les valeurs


intermédiaires pendant le calcul. Ce registre, appelé accumulateur
(ACC.) peut contenir la donnée source ou le résultat du calcul.

29
Instruction à une adresse

30
Nombre d'opérandes
❑ Instruction à 0 adresse
Le processeur à 0 adresse possède un accumulateur particulier qu'on
nomme pile.
▪ Une pile est un rangement par ordre chronologique.
Contrairement à un accumulateur ordinaire, placer une donnée
dans une pile ne détruit pas son contenu précédent.
▪ celui-ci sera plutôt repoussé au fond de la pile.
▪ Généralement, l'accès aux données se fait dans l'ordre inverse où
celles-ci ont été rangées dans la pile; on désigne souvent ce type
d'accès par le sigle anglais LIFO (Last In, First Out).
▪ Cela implique qu'on a accès qu'à la donnée qui est au sommet de
la pile (soit la dernière entrée) ou aux données se trouvant dans
des emplacements consécutifs à partir du sommet.

31
32
33
34
35
36
Les modes d’adressage
• Adressage implicite : L’instruction contient
seulement le code opération.
Exemple : NOT AX ; permet de complémenter le
contenu du registre AX.
• Adressage immédiat : La donnée est fournie
immédiatement après l’instruction
Exemple : MOV AL, 21h ; permet de transférer
21h dans le registre AL.

37
Les modes d’adressage
• Adressage d’un registre : La donnée est contenue
dans un registre.
Exemple : MOV AX, BX : charge le contenu du
registre BX dans le registre AX.
• Adressage direct ou étendu : L’instruction
comporte l’adresse effective de la case mémoire
où se trouve la donnée.
• Exemple : MOV BL, [0200h] ; transfère le contenu
de la case mémoire d’adresse 0200h vers le
registre BL.
38
Les modes d’adressage
• Adressage indirect par registre: indiquer une
adresse dans un registre
• MOV R3,[R2]
• Adressage relatif :l’adresse réelle, c’est
l’adresse indiquée dans l’instruction, ajoutée à
une adresse de référence contenue dans un
registre le plus souvent ou dans une case
mémoire particulière.

39
Architecture de base d’un
microprocesseur
• microprocesseur est construit de deux éléments principaux :

• Une unité de commande


• Une unité de traitement

40
unité de commande
• l’unité de commande est responsable de la lecture en

mémoire principale et du décodage des instructions ;

• Elle est composé par :

• Un registre instruction (RI) : contient l’instruction en cours

d’exécution.

Chaque instruction est décoder selon sont code opération grâce

à un décodeur.
41
unité de commande
• Un registre qui s’appel compteur ordinal (CO) ou
le compteur de programme (CP ) : contient
l’adresse de la prochaine instruction à exécuter
(pointe vers la prochaine instruction à exécuter ).
Initialement il contient l’adresse de le première
instruction du programme à exécuter.

• Un séquenceur : il organise (synchronise)


l’exécution des instruction selon le rythme de
l’horloge, il génère les signaux nécessaires pour
exécuter une instruction.

42
Unité de contrôle et commande

L’unité de décodage envoie la nature des opérations à effectuer vers le séquenceur qui va
ensuite générer les microcommandes nécessaires aux différents composants participant à
l’exécution de l’instruction en cours. 43
44
unité de commande

45
Unité de traitement
• Elle regroupe les circuits qui assurent les traitements
nécessaires à l'exécution des instructions :
• L’Unité Arithmétique et Logique (UAL) est un
circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage ,
etc…) ou arithmétique (Addition,
soustraction).

46
Unité de traitement
• Le registre d'état est généralement composé de 8 bits.
Chacun de ces bits est un indicateur dont l'état dépend du
résultat de la dernière opération effectuée par l’UAL.
• On les appelle indicateur d’état ou flag ou drapeaux.
• Dans un programme le résultat du test de leur état
conditionne souvent le déroulement de la suite du
programme.
• On peut citer par exemple les indicateurs de :
• retenue (carry : C)
• retenue intermédiaire (Auxiliary-Carry : AC)
• signe (Sign : S)
• débordement (overflow : OV ou V)
• zéro (Z)
• parité (Parity : P) ƒ
47
Unité de traitement
• Les accumulateurs sont des registres de travail
qui servent à stocker une opérande au début
d'une opération arithmétique et le résultat à
la fin de l'opération.

48
49
Cycle d’exécution d’une instruction
Le traitement d’une instruction par le processeur
se décompose en trois étapes :
▪ Recherche de l’instruction
▪ Décodage de l’instruction
▪ Exécution de l’instruction

50
Cycle d’exécution d’une instruction
• Lors du premier cycle, le contenu du compteur
programme (PC) est déposé sur le bus des adresses
et envoyé vers la mémoire au moment approprié.

• Le bus de commande produit ensuite un signal de


lecture en mémoire.

• Quand la mémoire reçoit le signal de lecture, les


données qu'elle contient à l'adresse spécifiée sont
déposées sur le bus de données du système.

51
Cycle d’exécution d’une instruction
• Le microprocesseur lit alors l'information sur
le bus de données et la dépose dans un registre
interne appelé registre d'instruction (IR,
Instruction Register).

• On peut dire alors que l'instruction a été


recherchée en mémoire.

52
Cycle d’exécution d’une instruction
• Une fois que l'instruction se trouve dans IR,
l'unité de commande du microprocesseur la
décode et produit la séquence appropriée de
signaux internes et externes permettant son
exécution.

53
Cycle d’exécution d’une instruction
Phase 1 : Recherche de l'instruction à traiter

54
Cycle d’exécution d’une instruction
Phase 1 : Recherche de l'instruction à traiter

1. Mettre le contenu du CO dans le registre


d’adresse mémoire (R@M)
2. Commande de lecture à partir de la mémoire
3. Sélection de l’instruction (Adresse
d’instruction) et son contenu est transféré
vers le registre de Données Mémoire (RDM)
4. Transfert du contenu du RDM dans le registre
instruction (RI) du processeur.
55
Cycle d’exécution d’une instruction
Phase 2 : Décodage de l’instruction et recherche de l'opérande

56
Cycle d’exécution d’une instruction
Phase 2 : Décodage de l’instruction et recherche de l'opérande

1. Analyse et décodage du code opération.


2. Transfert de l’ADresse de l ’OPérande dans le
R@M
3. Commande de lecture.
4. Sélection de l’opérande (Adresse opérande)
et son contenu est transféré vers le RDM
5. Transfert du contenu du RDM vers l’UAL.
57
Cycle d’exécution d’une instruction
Phase 3 : Exécution de l'instruction et passer à l’instruction suivante

58
Cycle d’exécution d’une instruction
Phase 3 : Exécution de l'instruction et passer à l’instruction suivante

1. Commande de l’exécution de l’opération (ou


exécution de l’instruction).
2. Les drapeaux sont positionnés (registre
d'état).
3. L'unité de commande positionne le CO pour
l'instruction suivante. (CO) +1 => CO

59
Pipeline
• Technique utilisée pour optimiser le temps
d’exécution d’un processus répétitif.
• Avec un pipeline, le processeur peut commencer à
exécuter une nouvelle instruction sans attendre que
la précédente soit terminée
• Plusieurs instructions se trouvent simultanément en
cours d'exécution au cœur du micro-processeur.
• Afin de mettre en œuvre un pipeline, la première
tâche est de découper l'exécution des instructions en
plusieurs étapes
60
Pipeline

▪ Exemple sans pipeline


• Dans un micro-processeur sans pipeline, les instructions
sont exécutées les unes après les autres
• En supposant que chaque étape met 1 cycle d'horloge, il
faut donc 5 cycles pour exécuter une instruction, 15
cycles horloges pour 3 instructions.

61
Pipeline

▪ Pipeline (exemple pipeline 5 étages)

Il faut 9 cycles pour exécuter 5 instructions


Au 5e cycle, tous les étages sont en cours d'exécution.

62
Pipeline
▪ Pipeline
▪ Exemple: 5 étapes sont nécessaires pour traiter une instruction
• IF (Instruction Fetch) charge l'instruction à exécuter dans le pipeline.
• ID (Instruction Decode) décode l'instruction
• EX (Execute) exécute l'instruction (par la ou les unités arithmétiques et
logiques).
• MEM (Memory), accès mémoire en lecture ou écriture ;
• WB (Write Back) écriture du résultat d'une lecture ou d'un calcul dans
les registres.

63
Pipeline

64
Problèmes « aléas »

65
Problèmes « aléas »
• Lorsqu’un aléa se produit, cela signifie qu’une instruction ne peut
continuer à progresser dans le pipeline.
• Pendant un ou plusieurs cycles, l’instruction va rester bloquée
dans un étage du pipeline, mais les instructions situées plus en
avant pourront continuer à s’exécuter jusqu’à ce que l’aléa ait
disparu.
• Plus le pipeline possède d’étages, plus la pénalité est grande.
• Les compilateurs s’efforcent d’engendrer des séquences
d’instructions permettant de maximiser le remplissage du
pipeline. Les étages vacants du pipeline sont appelés des « bulles
» de pipeline, en pratique une bulle correspond en fait à une
instruction NOP (No OPeration) émise à la place de l’instruction
bloquée.
66
Problèmes « aléas »

67
Pipeline

Exercice N1

68
Pipeline
Exercice N1

69
Pipeline
Exercice N1

70
Pipeline
Exercice N2

71
Pipeline
Correction de l’exercice
N2

72
Architecture CISC/RISC
• Actuellement l’architecture des
microprocesseurs se composent de deux
grandes familles :
• L’ architecture CISC (Complex Instruction Set
Computer)
• L’architecture RISC (Reduced Instruction Set
Computer)

73
Architecture CISC/RISC

74
Architecture CISC/RISC

75
La mémoire cache
▪ Le cache est une mémoire intercalée entre la mémoire centrale et
un processeur. Elle est souvent fabriquée avec de la mémoire
SRAM.

▪ Cette mémoire enregistre temporairement des copies de données


provenant de la mémoire centrale. Elle est plus petite, plus rapide
et plus proche du processeur que la mémoire centrale.

▪ Cette mémoire est placée dans la puce du processeur afin de


diminuer le temps d’ accès aux informations.

76
La mémoire cache
▪ Les mots de mémoire centrale les plus
fréquemment utilisés sont placés dans la
mémoire cache.
▪ Le processeur cherche d’abord la donnée ou
l’instruction dans la mémoire cache, en cas d’
échec le processeur fait accès à la mémoire
centrale est place l’information dans le cache.
▪ Ultérieurement si cette information est
demandée elle sera obtenue plus rapidement.

77
principe de cache

78
principe de cache
• Si la donnée ou l’instruction requise est présente
dans le cache, elle est alors envoyée directement
au microprocesseur.
=> On parle de succès de cache. (a) ƒ
si la donnée ou l’instruction n’est pas dans le cache,
le contrôleur de cache envoie alors une requête à la
mémoire principale. Une fois l’information
récupérée, il la renvoie au microprocesseur tout en
la stockant dans le cache. => On parle de défaut de
cache. (b)

79

Vous aimerez peut-être aussi