Vous êtes sur la page 1sur 13

CHAPITRE 2 : LE MICROPROCESSEUR

Objectifs :
 Connaître le rôle du microprocesseur
 Connaître les différents composants d’un microprocesseur et leurs rôles
 Comprendre le fonctionnement du microprocesseur et l’interaction entre les différentes unités
 Maîtriser les étapes nécessaires à l’exécution des programmes par le microprocesseur
I- 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 au système 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.
II- ORGANISATION INTERNE DE BASE D’UN MICROPROCESSEUR
Le microprocesseur renferme tous les circuits logiques qui permettent de rechercher, décoder et
exécuter automatiquement les instructions logées en mémoire. Le µP peut être considéré comme un
automate composé de deux ensembles :
 La partie opérative : Elle permet d’effectuer les opérations arithmétiques et logiques sur les données
ainsi que de calculer l’adresse mémoire des instructions ou des données. On peut aussi appeler cette
partie Unité de traitement. Elle regroupe les circuits qui assurent les traitements nécessaires à
l'exécution des instructions.
 La partie commande (Unité de commande): Elle est notamment composée d’un registre instruction
où est stocké le code de l’instruction à exécuter. Ce registre est associé à un séquenceur chargé de
délivrer l’ensemble des signaux internes nécessaires au fonctionnement de la partie opérative du µP.
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de
l'instruction. Comme chaque instruction est codée sous forme binaire, elle en assure le décodage pour
enfin réaliser son exécution puis effectue la préparation de l'instruction suivante.
II-1 PARTIE OPERATIVE (UNITE DE TRAITEMENT)
L’unité de traitement est composée de trois principales unités d’exécution, la première est l’unité
arithmétique et logique (UAL) puis deux autres ont été ajoutés qui sont l’unité de calcul en virgule flottante
et l’unité multimédia pour des raisons d’optimisation des performances des microprocesseurs.
A) Unité Arithmétique et Logique
Elle est composée de circuits logiques
tels que les additionneurs, soustracteurs,
comparateurs logiques…etc., afin d’effectuer les
calculs et les opérations logiques des différents
instructions à exécuter, les données à traiter se
présentent aux entrées de l’UAL, sont traités,
puis le résultat est fourni en sortie et
généralement stocké dans un registre dit
accumulateur. Les informations qui concernent
l’opération sont envoyées vers le registre d’état.
(fig.1) fig.1
Exemples de fonctionnement de l’UAL
La figure 2 représente un ALU et 2 registres spécialisés, les accumulateurs A et B, d’un µP Motorola.
Chaque entrée de l’UAL peut être connectée :
 à un accumulateur
 au bus de données externe
La sortie de l’UAL est connectée à un des 2 accumulateurs. Ces connexions se font
à l’aide de bus internes (non représentés) que l’on peut aiguiller. Et le séquenceur
de la partie commande a pour rôle de commander tous les aiguillages nécessaire,
durant l’exécution d’une instruction.
Fig.2
1/13 Chapitre 2 : Le Microprocesseur
 Addition : (fig.3)
On désire réaliser une addition entre le
contenu de l’accumulateur A et une constante
rangée en mémoire programme. La ligne de
programme en assembleur est : ADDA #$10 qui
signifie le contenu de A, par exemple 22h, est
additionné à la donnée 10h qui provient du bus de
données. Lorsque l’opération est terminée,
l’ancien contenu de A est remplacé par le résultat, ici 32h. fig.3
 Décalage sur un mot binaire : (fig.4)
On peut également opérer un
décalage à gauche de A avec l’instruction
ASLA (qui signifie Arithmetic Shift Left
A) Si on suppose que A contient
initialement 94h soit 10010100b alors le
résultat du décalage est 00101000b soit
28h.
fig.4
B) Le Registre Accumulateur
C’est un registre de travail très important de l’UAL, dans la plus part des opérations arithmétiques et
logiques, l’accumulateur contient un des opérandes avant l’exécution et le résultat après. Il peut aussi servir
de registre tampon dans les opérations d’entrée/sortie. Généralement, l’accumulateur a la même taille qu’un
mot mémoire.
Naturellement, le programmeur a accès à ce registre qui est toujours très sollicité pendant le
traitement des données. Certains processeurs ont plusieurs accumulateurs et dans ce cas, les codes opérations
précisent l’accumulateur utilisé.
C) Le Registre d’état (PSW program status word)
C’est un registre qui contient les différents bits appelés drapeaux (Flags) indiquant l’état d’une
condition particulière dans le μP. Ces bits peuvent être testés par un programme et donc décider des suites
d’actions à prendre.
Pour exécuter correctement son travail, le séquenceur doit en outre connaître l’état d’un certain
nombre d’autres composants et disposer d’informations concernant la ou les opérations qui ont déjà été
exécutées (par exemple, doit on tenir compte dans l’addition en cours d’une éventuelle retenu préalable
générée par une addition précédente). Le registre d’état fournit ces informations.
Le nombre de bits de ce registre change d’un microprocesseur à un autre, par exemple pour le cas
d’un 6809 ce registre est de 8 bits mais pour le 8088 ce registre est de 16 bits.
Les différents bits du registre d’état sont :
 Bit de retenu : c’est le bit C ou carry. ce bit est à 1 s’il y a une retenu qui est générée lors d’une
opération arithmétique.
 Bit de parité : le bit P, ce bit est mis à 1 si le nombre de 1 dans l’accumulateur est pair.
 Bit de retenu intermédiaire : le bit AC (auxiliary carry), il est mis à 1 si une retenu est générée entre
groupes de 4 bits (passage de retenu).
 Le bit zéro : il est à 1 si le résultat d’une opération arithmétique est nul.
 Le bit de signe : il est à 1 si le résultat d’une opération arithmétique est négatif.
 Le bit de dépassement de capacité : le bit O pour overflow, il est à 1 s’il y a dépassement de capacité
dans les opérations arithmétiques. Par exemple sur 8 bits en complément à 2, les nombres binaires
sont codés sur 8 bits. On peut coder les nombres variant de –128 (100000000) à +127(01111111).
Si on fait 107+28 cela donne 135 qui ne peut pas être représenté, d’ou génération de débordement.
D) Unité de calcul en virgule flottante :

2/13 Chapitre 2 : Le Microprocesseur


C’est une unité qui est capable de réaliser les opérations de calcul pour les réels ainsi que les calculs
mathématiques et scientifiques complexes. A l’origine la tâche de cette unité était réalisée par tout un
processeur à part, en 1989 elle a été intégré dans les microprocesseurs afin d’optimiser les calculs.
E) Unité multimédia :
C’est une unité qui est chargée d’accélérer l’exécution des programmes multimédia comportant des
vidéos, du son, graphisme en 3D etc.… Cette unité porte le nom de MMX pour les premiers pentiums
(MultiMedia extensions) intégrants des fonctions de gestion du multimédia, de même la technologie
3DNOW pour les AMD et SSE pour les pentiums III.

II-2 PARTIE COMMANDE


A) Compteur Ordinal (Pointeur de Programme)
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. Aussi appelé le compteur de
programme : (en anglais Program Counter PC) il est constitué par un registre dont le contenu représente
l’adresse de la prochaine instruction à exécuter. Il est donc initialisé avec l'adresse de la première
instruction du programme. Puis il sera incrémenté automatiquement pour pointer vers la prochaine
instruction à exécuter.
Exemple : (PC)=10000H ; il pointe la mémoire qui contient l'instruction MOV C,B 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 sera supposée être organisée en octets).
B) Séquenceur (Bloc logique de commande)
Il organise l'exécution des instructions au rythme d’une horloge. Il élabore tous les signaux de
synchronisation internes ou externes (bus de commande) du microprocesseur en fonction des divers signaux
de commande provenant du décodeur d’instruction ou du registre d’état par exemple. Il s'agit d'un automate
réalisé soit de façon câblée (obsolète), soit de façon micro-programmée, on parle alors de micro-
microprocesseur.
Le séquenceur est réalisé avec une structure qui comprend une mémoire ROM intégrée. Celle-ci
contient des micros instructions (à ne pas confondre avec les instructions contenues dans la mémoire
programme). La mémoire des micros instructions n’est pas accessible à l’utilisateur. Chaque phase décrite
d’exécution d’une instruction nécessite plusieurs micros instructions et donc plusieurs cycles d’horloge.
Le séquenceur génère :
 les signaux du bus de commande ( / , etc.),
 les signaux internes aux µP (gestion des registres, de l’UAL., aiguillages des bus internes, etc.).
B.1) Horloge du Séquenceur
Les signaux (externes et internes) produits par le séquenceur sont synchrones d’un signal d’horloge
produit par un oscillateur. L’oscillateur peut être :
 à quartz : C’est le cas le plus fréquent. Dans ce cas Il peut être constitué de :
o une « circuiterie » interne au µP et un quartz externe.
o un oscillateur externe comprenant son quartz et son électronique
 à réseau RC : On rencontre ce cas avec des µC bon marché où la durée précise d’exécution d’une
instruction n’a pas beaucoup d’importance.
B.2) Durée d’exécution d’une instruction (cycle machine)
Le temps d’exécution d’une instruction s’exprime en « cycles machine » ; un cycle machine
correspondant à un nombre entier de périodes de l’horloge. Selon les constructeurs de µP, on utilise les
termes « cycles machine » (CPU cycle) ou « durée d’état » (state time).
A chacune des phases d’exécution d’une instruction correspond en général un cycle machine. Pour la
durée de chaque phase, on rencontre 2 cas :
 la durée de chaque phase est fixe. C’est le cas le plus fréquent avec des µP et µC relativement lent
(cycle machine > qqs centaines de ns)

3/13 Chapitre 2 : Le Microprocesseur


 la durée d’une phase comportant un accès à une mémoire ou à une unité d’échange externe est
variable, pour permettre des accès à des organes rapides ou lents. En général c’est l’état d’une broche
externe du µP/µC qui détermine s’il faut ou non rajouter des cycles d’horloge.
Par exemple avec un 80C196 avec un quartz de 20 MHz, lors d’un accès à une mémoire EPROM de temps
d’accès élevé, il faut générer une impulsion sur l’entrée READY du µC pour augmenter la durée de la phase
de lecture en insérant des états d’attente (wait state) dans le cycle machine.
Lorsque la durée de chaque phase est fixe, le constructeur donne pour chaque instruction, sa durée
d’exécution exprimée en cycles machine.
Exemple de durée d’exécution d’une instruction : Pour un 68HC11, la durée de chaque phase (recherche
instruction en mémoire, exécution) est fixe. Un cycle machine correspond à 4 périodes d’horloge. Les
instructions durent de 2 à 6 cycles machines. Avec un quartz à 8MHz, un cycle machine dure 500ns ; une
instruction est exécutée en 1 à 3µs.
B-3) Décomposition en cycle machine
1) cycle machine à deux phases ; recherche et exécution
On utilise un µP type 6809. Le
microprocesseur va exécuter l’instruction
EOR #$5A pour laquelle un OU
EXCLUSIF est réalisé entre le contenu de
l’accumulateur A (E7h par exemple) et la
donnée 5Ah ; le résultat stocké dans A.
On suppose que le code opération
est rangé à l’adresse AFFFh. On note (R)
le contenu d’un registre.
1er cycle machine (phase) : (fig.5)
- Le contenu du (PC) est placé sur le bus
d’adresses,
- Le registre instruction est chargé avec le
code de l’instruction EOR, (IR) = 3Dh,
- (IR) est décodé et le µP sait qu’il doit
aller chercher l’opérande à l’adresse
suivante, fig.5 : recherche du code opération
- le contenu du PC est incrémenté d’une unité

2ème cycle machine (fig.6 et 7)


- Le contenu du (PC) est placé sur le bus
d’adresse.
- La donnée 5Ah est transférée vers
l’U.A.L
- le µC exécute l’opération est stocke le
résultat dans l’accumulateur,
- puis le PC est préparé pour l’instruction
suivante et s’incrémente d’une autre unité.
Remarque :
Durant ce 2ème cycle machine, il y a eu
plusieurs phases gérées par le séquenceur.
L’exécution complète de l’instruction dure
2 cycles machine. fig. 6 : Recherche de l’opérande

4/13 Chapitre 2 : Le Microprocesseur


Fig.7 : Calcul puis stockage du résultat

2) Cycle machine en trois phases : Recherche, Décodage et exécution


 Phase 1 : Recherche de l’instruction à
exécuter (fig.8)
1. Le PC 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. Fig.8 Recherche

 Phase 2 : Décodage de l’instruction et recherche de l’opérande (fig.9)


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, rotation,...) et le nombre de
mots de l'instruction.
1. 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. Fig.9 Décodage

 Phase 3 : Exécution de l’instruction (fig.10)


1. Le microprogramme réalisant l'instruction est
exécuté.
2. Les drapeaux sont positionnés (registre d'état).
3. L'unité de commande positionne le contenu du
PC pour l'instruction suivante.

Fig.10 Exécution

5/13 Chapitre 2 : Le Microprocesseur


B- 4) Réalisation du Séquenceur
 Séquenceur câblé : réalisé entièrement à base de la logique combinatoire et de la logique
séquentielle ce séquenceur est plus rapide mais complexe dans la réalisation. (Fig.11)
 Séquenceur micro programmé : réalisé entièrement à base d’une mémoire ROM de pagination et de
microprogrammation. Nécessite un compteur ordinal pour la lecture séquentielle des micros
commandes à partir de la mémoire de microprogrammes. Ce séquenceur est moins rapide mais facile
à réaliser (fig.12)

Fig.11 : Séquenceur Câblé fig.12 : Séquenceur micro programmé

C) Unité de Décodage (fig.13)


Le décodeur décompose et analyse l’instruction
se trouvant dans le registre d’instructions, selon
le code opération, il envoie la nature des
opérations à effectuer à l’unité de commande et
précisément 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.

Exemple : (fig.14) fig.13 : liaison de l’unité avec les autres blocs


Pour un microprocesseur ayant un format
d’instructions à deux adresses, l’instruction
d’addition de deux variables en mémoire A et B
est représenté dans le registre d’instructions
comme dans la figure 14

Fig.14 : représentation de l’addition

D) Le registre d’instruction
Il contient l’instruction qui doit être traitée par le microprocesseur, cette instruction est recherchée en
mémoire puis placée dans ce registre pour être décodée par le décodeur et préparée pour l’exécution.
Une instruction est une opération élémentaire d’un langage de programmation, c’est à dire le plus petit
ordre que peut comprendre un ordinateur.
6/13 Chapitre 2 : Le Microprocesseur
Exemple : ADD A,B cette instruction correspond à un ordre donné à l’ordinateur en langage
assembleur qui permet de faire l’addition entre les données A et B.
Toute instruction présente en fait deux types d’informations :
- Ce qu’il faut faire comme action (addition, affichage, division …)
- Avec quelles données réaliser cette action.
Composition d’une instruction :
- Zone opération : Cette zone permet de déterminer la nature de l’opération à effectuer par le
microprocesseur.
- Zone adresse : contient les adresses en mémoire des opérandes qui participent dans une opération,
dans certains cas elle contient l’opérande même. Il existe plusieurs modes d’adressages pour
accéder aux données.
II-3 AUTRES REGISTRES ET UNITES
A) Registre d’adresse
C’est un registre qui contient l’adresse du mot à accéder en mémoire centrale. A chaque accès
mémoire, l’adresse recherchée est stockée dans ce registre. Il a la taille d’une adresse qui est la même que
celle du bus d’adresses ce qui permet de déterminer le nombre de mots mémoires adressables et l’espace
mémoire adressable.
B) Le registre mot mémoire ou registre de données
Il Contient le mot mémoire faisant objet d’une opération de lecture ou d’écriture dans la mémoire
centrale. Ce registre a la taille d’un mot mémoire qui est la même que celle des registres de travail et
l’accumulateur qui est égale à la taille du bus de données.
Le schéma ci dessous montre le fonctionnement des deux registres d’adresses et de mot mémoire.
La lecture et l’écriture dans la mémoire
centrale se fait de la façon suivante :
- Lecture : l’adresse du mot à lire est
transférée au registre d’adresse, le
dispositif d’accès à la mémoire se
charge de chercher le mot et de le
mettre dans le registre mot mémoire.
- Ecriture : le registre d’adresse est
chargé par l’adresse mémoire ou on
va écrire, le mot à écrire est placé
dans le registre mot mémoire.
Lorsque l’ordre de l’écriture est
donné, le contenu des cases
mémoires sera écrasé et remplacé par
la nouvelle valeur. Par contre, en cas de lecture, le contenu des cases mémoire n’est pas détruit.
C) Le registre pointeur de pile : (Stack Pointer)
 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
 La pile est gérée en LIFO : (Last IN First
Out) dernier entré premier sorti. Le
fonctionnement est identique à une pile
d'assiette
 Le pointeur de pile SP pointe le haut de la
pile (31000H dans le schéma), 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.
7/13 Chapitre 2 : Le Microprocesseur
Exemple:
PUSH A empilera le registre A et POP A le dépilera. Sur la figure ci-dessous, on va montrer le
fonctionnement de la pile lors d'instructions comme PUSH et POP.
Question :
Que se passera-t-il durant l'exécution du programme commençant en 12E30H? Que vaudra SP et que
contiendra la pile à cette adresse, à la fin du programme ?

Réponse :
Le programme 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
D) Les registres d'index
(index source SI et
index destination DI)
Les registres d’index peuvent être utilisés
comme des registres généraux pour
sauvegarder et pour compter. Mais en
plus ils ont une fonction spéciale qui est
de grande utilité dans la manipulation
des tableaux de données. Ils peuvent en
effet être utilisés pour manipuler des
adresses et permettent de mémoriser une
adresse, suivant une forme particulière
d’adressage, appelée adressage indexée.
Exemple : MOV A,[SI+10000H] place le
contenu de la mémoire d'adresse
10000H+le contenu de SI, dans le
registre A.

E) Unité de mémoire cache


La mémoire cache a pour fonction principale d’optimiser les accès aux différentes instructions et
données que le microprocesseur a besoin lors de l’exécution des programmes. La tâche de cette unité est de
mettre dans la mémoire cache qui est beaucoup plus rapide que la mémoire centrale, les informations les plus
utilisées et que le microprocesseur a besoin fréquemment. L’accès aux informations sera donc plus rapide et
l’exécution des programmes est plus optimale.
Le principe de stockage des informations dans cette mémoire se fait par un contrôleur qui utilise des
algorithmes spécifiques qui permettent de choisir quelles sont les données et les instructions dans la mémoire
centrale à mettre dans cette mémoire et quand il faut les remplacer puisque la taille de la mémoire cache est
très limitée par rapport à la taille de la mémoire centrale.
Il existe deux niveaux de mémoire cache. La cache de niveau 1 est toujours intégrée au
microprocesseur, sa taille est de quelques kilooctets et peut atteindre 256 KO dans certains
8/13 Chapitre 2 : Le Microprocesseur
microprocesseurs. La cache de second niveau est généralement sur la carte mère, sa taille varie de 256 KO
jusqu’à 1MO.
F) Unités de segmentation et de pagination :
Ces unités sont devenues nécessaires surtout pour les microprocesseurs de la famille INTEL X86 en
raison de leurs façons particulières de gestion de la mémoire.
Ces unités permettent de traduire les adresses logiques manipulées dans les programmes en adresses
physiques qui correspondent à des adresses réelles en mémoire. Ces unités varient d’un microprocesseur à
l’autre selon la technologie de gestion de la mémoire utilisée.

G) Unité d’interface de bus :


Gère les échanges à travers le bus entre microprocesseur et les autres composantes, si le
microprocesseur a besoin par exemple d’une donnée en mémoire vive, l’unité d’interface de bus se charge de
la ramener en contrôlant l’accès mémoire et en mettant le résultat sur le bus de données qui va l’acheminer
vers le registre de données.
II-4 LES BUS
On appelle Bus, en informatique, un ensemble de liaisons physiques (câbles, pistes de circuits
imprimés, ...) pouvant être exploitées en commun par plusieurs éléments matériels afin de communiquer. Les
Bus ont pour but de réduire le nombre de traces nécessaires à la communication des différents composants
en mutualisant les communications sur une seule voie de données. Dans le cas où la ligne sert uniquement à
la communication de deux composants matériels, on parle parfois de port (port série, port parallèle, ...).
Un Bus est caractérisé par le volume d'informations transmises simultanément (exprimé en bits),
correspondant au nombre de lignes sur lesquelles les données sont envoyées de manière simultané. Une
nappe de 32 fils permet ainsi de transmettre 32 bits en parallèle. On parle ainsi de "largeur de bus" pour
désigner le nombre de bits qu'il peut transmettre simultanément.
D'autre part, la vitesse du bus est également définie par sa fréquence (exprimée en Hertz), c'est-à-
dire le nombre de paquets de données envoyés ou reçus par seconde. On parle de cycle pour désigner chaque
envoi ou réception de données. De cette façon, il est possible de connaître la bande passante d'un bus, c'est-
à-dire le débit de données qu'il peut transporter, en multipliant sa largeur par sa fréquence. Un Bus d'une
largeur de 16 bits, cadencé à une fréquence de 133 Mhz possède donc une bande passante égale à :
16 x 133 x 106 = 2128 x 106 bit/s,
Soit 2128 x 106/8 = 266 x 106 octets/s
Soit 266 x 106/1024 = 259,7 x 103Ko/s
Soit 259,7 x 103/1024 = 253,7 Mo/s
A) Bus de données
Il permet de véhiculer des données du microprocesseur vers un composant ou d'un composant vers le
microprocesseur. Il est donc bidirectionnel. Le nombre de fils de ce bus varie suivant les microprocesseurs (8
/ 16 / 32 / 64 bits). Dans la littérature, les différents fils de ce bus sont appelés D0, D1, ..., Dp-1, si le bus a
"p" fils.
B) Bus d’adresse.
La mémoire est composée de nombreuses cases mémoires. Chaque case est repérée par une adresse. Lorsque
le microprocesseur veut, par exemple, lire une case, il doit indiquer à quelle adresse elle se trouve. Il met
cette adresse sur le bus des adresses. La case mémoire reconnaît alors son adresse et met sur le bus de
données son contenu.

9/13 Chapitre 2 : Le Microprocesseur


Exemple : Bus d’adresse 16 bits - données sur
8 bits.
Dans l'exemple précédent, le microprocesseur
écrit la donnée 10101111 dans la case
mémoire d'adresse 1011 1111 0110 1010.
Le bus d’adresse est unidirectionnel : du
microprocesseur vers les autres composants.
Il se compose de 16 à 32 fils, suivant les
microprocesseurs, que l'on nomme A0, A1, ...,
An-1.

Le tableau suivant donne l’espace mémoire


adressable en fonction du nombre des lignes
d’adresses.

C) Bus des commandes.


Le bus des commandes est constitué d'un ensemble de fils de "commandes", permettant la synchronisation et
bien sûr la commande des boîtiers mémoires et entrées/sorties par le microprocesseur. Dans le cas précédent,
la cellule mémoire doit savoir à quel instant elle doit mettre son contenu sur le bus de données. Pour cela, le
microprocesseur possède une broche appelée Read ( ) qu'il met à 0 (0v) lorsque la cellule doit agir. De
même, lors d'une écriture du microprocesseur vers la cellule, il met sa broche Write ( ) à 0 (0V). Les
signaux RD et WR sont des signaux de synchronisation, de contrôle et de commande. Ils sont reliés aux
autres composants par un bus: le bus des commandes. Celui-ci comporte d'autres signaux de commandes.

10/13 Chapitre 2 : Le Microprocesseur


III- NOTION D’ARCHITECTURE RISC ET CISC
Actuellement l’architecture des microprocesseurs se compose de deux grandes familles :
- L’architecture CISC (Complex Instruction Set Computer)
- L’architecture RISC (Reduced Instruction Set Computer)
III- 1 L’architecture CISC
- L'accès à la mémoire extérieure est relativement lent
- L'exécution d'une instruction nécessite plusieurs étapes
Dans les années 1970, après la naissance des premiers microprocesseurs, les accès mémoires étaient
relativement lents et le processeur disposait de plusieurs cycles d'horloge (au moins 8 pour le 68000) pour
aller chercher, décoder et exécuter l'instruction. Ce nombre de cycles permettait d'effectuer des calculs
micro-séquencés qui donnait lieu à des instructions très compliquées mais peu souvent utilisées, ce qui
justifie le nom de ce type de processeur : "Complex Instruction Set computer".

III- 2 L’architecture RISC


Dans les années 80, cette approche devint possible grâce aux progrès technologiques. Le gain en
performance doit tendre vers « une instruction en 1 cycle d’horloge ».
Dans la fin des années 1980, il est devenu plus facile d'intégrer de la mémoire rapide sous forme de bancs de
registre, mémoire locale ou mémoire cache au sein même du processeur. Le micro-séquencement des
instructions ne se justifiait plus mais les instructions devait être assez simples pour être exécutées le plus vite
possible, c'est à dire en 1 cycle. Le concept "Reduced Instruction Set Computer" était né.
Il n'en demeure pas moins qu'il faut toujours les mêmes étapes pour exécuter une instruction RISC : Aller la
chercher en mémoire, La décoder, L'exécuter
Une façon simple de "paralléliser" ces étapes est de les mettre en pipeline.
D'autre part les calculs effectués sur des registres permettent de simplifier l'architecture et de faciliter le
respect des performances. Pour charger ces registres ou sauver leurs valeurs en mémoire, il suffit d'avoir
respectivement 2 instructions simples LOAD et STORE.
Architecture RISC Architecture CISC
- instructions simples ne prenant qu’un seul cycle - instruction complexes prenant plusieurs cycles
- instruction au format fixe - instructions au format variable
- décodeur simple (câblé) - décodeur complexe (microcode)
- beaucoup de registres - peu de registres
- seules les instructions LOAD et STORE ont accès à la - toutes les instructions sont susceptibles
mémoire d’accéder à la mémoire
- peu de modes d’adressage - beaucoup de modes d’adressage
- compilateur complexe - compilateur simple
11/13 Chapitre 2 : Le Microprocesseur
IV- MODELES DE FONCTIONNEMENT DU MICROPROCESSEUR
IV-1 Utilisation du pipeline
Le pipeline d'instruction permet d'exécuter une
nouvelle instruction à chaque cycle d'horloge.
Dans cet exemple, il y a 3 étapes : Fetch,
Décode et Exécute.
Lors de l'étape 3, l'instruction 3 est dans la phase
Fetch, alors que l'instruction 2 est décodée et
l'instruction 1 est exécutée. Au cycle d'après
c'est l'instruction 2 qui sera exécutée.
Les instructions ont toujours besoin de 3 étapes
mais le débit d'instruction est au rythme de
l'horloge.

IV-2 Super Pipeline


Certains processeurs comme le pentium ont de
nombreux niveaux de pipeline (>20).
Cette technique "super pipeline" permet de diminuer les
temps critiques et donc d'augmenter la fréquence de
fonctionnement.
En revanche, la rupture du pipeline est pénalisante.

IV-3 Le super scalaire


Cette technique vise à mettre en parallèle plusieurs processeurs.
Cette technique "super scalaire" repose sur une unité interne d'ordonnancement dynamique des instructions
de façon à profiter pleinement du parallélisme.

12/13 Chapitre 2 : Le Microprocesseur


IV-4 La rupture du pipeline
Le pipeline peut rompre pour
différentes raisons. Voici quelques cas
importants :
- L'exécution d'un LOAD ou
STORE : Dans une architecture
Von Neumann, il faut un cycle
pour présenter l'adresse de la
donnée de façon à ce que celle-
ci soit transférée du processeur
vers la mémoire. D'autre part il
faut 1 cycle en plus car le
temps entre la mémoire et le
registre est trop long. Plutôt
que de réduire la fréquence
d'horloge, il est préférable de rajouter un registre tampon et donc 1 cycle.
- L'exécution d'un branchement : Le branchement s'effectue à l'issue du cycle d'exécution. Les N-1
instructions (N étant le nombre d'étages de pipeline), qui suivent le branchement ne sont pas exécutés
si le branchement a lieu. Certains processeurs utilisent l’unité d’exécution pour effectuer des
opérations de sauvegarde de l'adresse de retour dans un registre, dans le cas d'un appel à un sous
programme.
IV-5 VLIW (Une seule unité de contrôle, une instruction très longue par cycle)
Cette technique consiste à
disposer d'unités d'exécution en
parallèle mais d'agencer les
instructions respectives au niveau du
compilateur de telle sorte qu'une
longue instruction correspondant à
plusieurs instructions concaténées
soit présentée au processeur. Cet
agencement statique à la compilation
permet en théorie d'atteindre des
performances élevées par rapport aux
techniques "super scalaires".
Cependant l'écriture de tels
compilateurs demeure très difficile et les résultats restent perfectibles, à moins d'utiliser des fonctions
optimisées écrites en langage machine.
La technique VLIW est très utilisées dans les processeurs de traitement du signal car elle permet de
réduire la surface silicium, donc le coût, et offre des performances très rapides si on dispose de bibliothèques
écrites en assembleur pour pouvoir profiter du parallélisme.
Les processeurs généralistes (pentium, AMD) sont soumis à des fortes contraintes de compatibilité et
de généricité permettant difficilement ce type d'approche.
PERFORMANCES D’UN MICROPROCESSEUR
On peut caractériser la puissance d’un microprocesseur par le nombre d’instructions qu’il est capable de traiter par
seconde. Pour cela, on définit :
- le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles d’horloge nécessaire pour
l’exécution d’une instruction pour un microprocesseur donné.
- le MIPS (Millions d'Instructions Par Seconde) qui représente la puissance de traitement du microprocesseur.
FH
MIPS= avec FH en MHz
CPI
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é).

13/13 Chapitre 2 : Le Microprocesseur