Vous êtes sur la page 1sur 13

CHAPITRE 3 : L’UNITE CENTRALE DE TRAITEMENT

1. INTRODUCTION

Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) est le
cerveau de l'ordinateur. Il permet de manipuler des informations numériques, c'est-à-dire des
informations codées sous forme binaire, de circuler les informations et d'exécuter les instructions
stockées en mémoire.

Un microprocesseur n’est rien d’autre qu’un processeur dont tous les constituants sont réunis sur la
même puce électronique (pastille de silicium), afin de réduire les coûts de fabrication et d’augmenter la vitesse
de traitement

Toute l'activité de l'ordinateur est cadencée par une horloge unique. Le microprocesseur est
caractérisé par la cadence maximale à laquelle il est capable de travailler, par la taille et le nombre de
données qu'il peut manipuler. Plus la circulation des données est rapide, plus l'ordinateur sera jugé
performant.

2. STRUCTURE D’UN MICROPROCESSEUR

Le processeur est grossièrement divisé en deux parties, l’unité de contrôle et l’unité de


traitement :

❖ L’unité de contrôle est responsable de la lecture en mémoire principale et du décodage des


instructions ;
❖ L’unité de traitement, aussi appelée Unité Arithmétique et Logique (U.A.L.), exécute les
instructions qui manipulent les données.

Ces deux unités communiquent avec la mémoire principale, la première pour lire les
instructions, la seconde pour recevoir/transmettre des données binaires. Ces trois éléments sont reliés
entre eux par des bus interne permettant les échanges d’informations. Les deux unités communiquent
également avec les différents autres périphériques (clavier, souris, écran, etc.).
Programmation Assembleur

Figure 1 : Architecture schématique d'un ordinateur

2.1. L’UNITE DE COMMANDE

Le rôle de l'unité de contrôle (ou unité de commande) est de coordonner le travail de toutes les
autres unités (UAL, mémoire,….) et d'assurer la synchronisation de l'ensemble.

Elle assure :

❖ la recherche (lecture) de l’instruction et des données à partir de la mémoire,

❖ le décodage de l’instruction et l’exécution de l’instruction en cours

❖ et prépare l’instruction suivante.

Elle est composé par :

❖ Un registre instruction (RI) : contient l’instruction en cours d’exécution. Chaque


instruction est décodée selon son code opération grâce à un décodeur.

❖ Un registre qui s’appelle 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 la première instruction du programme à exécuter.

❖ Un séquenceur : il organise (synchronise) l’exécution des instructions selon le rythme de


l’horloge, il génère les signaux nécessaires pour exécuter une instruction.
Programmation Assembleur

Figure 2 : Schéma d’une UC

L’exécution d’une instruction par l’UC passe par les étapes suivantes :

1. Chargement de la prochaine instruction à exécuter depuis la mémoire jusque dans le registre


instruction.

2. Modification du compteur ordinal pour qu’il pointe sur l’instruction suivante.

3. Décodage de l’instruction que l’on vient de charger.

4. Localisation dans la mémoire des éventuelles données utilisées par l’instruction.

5. Chargement des données, si nécessaire, dans les registres internes de l’unité centrale.

6. Exécution de l’instruction.

7. Stockage des résultats à leurs destinations respectives.

8. Retour à l’étape 1 pour exécuter l’instruction suivante.

2.2. L’UNITE DE TRAITEMENT

L’unité arithmétique et logique réalise une opération élémentaire (addition, soustraction,


multiplication, . . .). Elle regroupe les circuits qui assurent les fonctions logiques et arithmétiques de
bases (ET, OU, ADD, SUS,…..).

Elle est composée par les registres suivants :

❖ le registre accumulateur (ACC) : c’est un registre de travail qui sert à stocker un opérande
(données) au début d’une opération et le résultat à la fin.

❖ le registre d’état : Ce registre nous indique l’état du déroulement de l’opération. Il est


composé d’un ensemble de bits. Ces bits s’appellent indicateurs (drapeaux ou flags). Les indicateurs
Programmation Assembleur

sont mis à jours (modifiés) après la fin de l’exécution d’une opération dans l’UAL. Les principaux
indicateurs sont :

❖ Retenue : ce bit est mis à 1 si l’opération génère une retenue.


❖ Signe : ce bit est mis à 1 si l’opération génère un résultat négatif.
❖ Débordement : ce bit est mis à 1 s’il y a un débordement.
❖ Zero : ce bit est mis à 1 si le résultat de l’opération est nul.
❖ …

L’UAL exécute les additions, les soustractions et toutes les opérations simples sur ses entrées,
et qui produit un résultat placé dans le registre de sortie. Le contenu du registre de sortie peut alors
être placé dans un autre registre avant de rejoindre, si nécessaire, la mémoire.

On peut regrouper les instructions en trois catégories :

❖ Registre-mémoire (2 à 3 cycles) les instructions registre-mémoire permettent de charger


des mots dans des registres qui pourront, par exemple, être utilisés par d’autres
instructions comme entrées de l’UAL.
❖ Registre-registre (1 cycle) les instructions registre-registre typiques chargent deux
opérandes pris dans les registres, les placent dans les registres d’entrée de l’UAL,
exécutent sur eux une certaine opération et remettent le résultat dans un registre.
❖ Mémoire-mémoire (plusieurs cycles) Une instruction mémoire-mémoire prend ses
opérandes dans la mémoire et les place dans les registres entrées de l’UAL, exécute
ensuite une opération, et place le résultat en mémoire.

Figure 3 : Schéma d’une UAL


Programmation Assembleur

2.3. REMARQUE :

Le microprocesseur peut contenir d’autres registres autres que CO, RI et ACC. Ces registres
sont considérés comme une mémoire interne (registre de travail) du microprocesseur. Ils sont plus
rapides que la mémoire centrale, mais le nombre de ces registres est limité.

Généralement ces registres sont utilisés pour sauvegarder les données avant d’exécuter une
opération. La taille d’un registre de travail est égale à la taille d’un mot mémoire

Figure 4 : Schéma détaillé d’une machine*

Figure 5 : Une machine avec des registres de travail


Programmation Assembleur

3. CYCLE D’EXECUTION D’UNE INSTRUCTION

Le traitement d’une instruction est décomposé en trois phases :

❖ Phase 1 : rechercher l’instruction à traiter

❖ Phase 2 : décodage et rechercher de l’opérande

❖ Phase 3 : exécution de l’instruction et passer à l’instruction suivante

Chaque phase comporte un certain nombre d’opérations élémentaires (microcommandes)


exécutées dans un ordre bien précis (elles sont générées par le séquenceur). La phase 1 et 3 ne change
pas pour l’ensemble des instructions, par contre la phase 2 change selon l’instruction et le mode
d’adressage.

Phase 1 : Recherche de l’instruction à traiter

1. Le compteur ordinal 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 a 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 d’instruction du processeur.


Programmation Assembleur

Figure 6 : Phase 1: Recherche de l’instruction à traiter

Phase2 : Décodage de l’instruction de 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 a
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.

Figure 7 : Phase2 : Décodage de l’instruction de 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 drapeaux sont positionnés (registre d’état).

3. L’unité de commande positionne le PC pour l’instruction suivante


Programmation Assembleur

Figure 8 : Phase 3 : Exécution de l’instruction

4. JEU D’INSTRUCTIONS

Chaque microprocesseur possède un certain nombre limité d’instructions qu’il peut exécuter.
Ces instructions s’appellent jeu d’instructions. Le jeu d’instructions décrit l’ensemble des opérations
élémentaires que le microprocesseur peut exécuter.

Les instructions peuvent être classifiées en 4 catégories :

❖ Instruction d’affectation : elle permet de faire le transfert des données entre les registres et
la mémoire

✓ Écriture : registre → mémoire

✓ Lecture : mémoire → registre

❖ Les instructions arithmétiques et logiques (ET, OU, ADD,….)

❖ Instructions de branchement (conditionnelle et inconditionnelle)

❖ Instructions d’entrées sorties.


Programmation Assembleur

4.1. CODAGE D’UNE INSTRUCTION

Les instructions et leurs opérandes (données) sont stockés dans la mémoire. La taille d’une
instruction (nombre de bits nécessaires pour la représenter en mémoire) dépend du type de
l’instruction et du type de l’opérande.

L’instruction est découpée en deux parties :

❖ Code opération (code instruction) : un code sur N bits qui indique quelle instruction.

❖ Le champ opérande : qui contient la donnée ou la référence (adresse) à la donnée.

Le format d’une instruction peut ne pas être le même pour toutes les instructions. Le champ
opérande peut être découpé à son tour en plusieurs champs.

Il existe trois types de machine selon le nombre d’adresse indiquée dans une instruction :

➢ Machine à 3 adresses : Dans ce type de machine pour chaque instruction il faut préciser :
l’adresse du premier opérande du deuxième opérande et l’emplacement du résultat.

Exemple :

ADD A, B, C (CB+C)

Dans ce type de machine la taille de l’instruction est grande. Pratiquement il n’existe pas de
machine de ce type.

➢ Machine à 2 adresses : Dans de type de machine pour chaque instruction il faut préciser :
l’adresse du premier opérande et du deuxième opérande. L’adresse de résultat est implicitement
l’adresse du deuxième opérande.

Exemple :

ADD A, B (BA +B)


Programmation Assembleur

➢ Machine à 1 adresse : Dans de type de machine pour chaque instruction il faut préciser
uniquement l’adresse du deuxième opérande. Le premier opérande existe dans le register
accumulateur. Le résultat est mis dans le registre accumulateur.

Exemple :

ADD A (ACC(ACC) + A)

Ce type de machine est le plus utilisé.

4.2. MODE D’ADRESSAGE

Le champ opérande contient la donnée ou la référence (adresse) à la donnée. Le mode


d’adressage définit la manière dont le microprocesseur va accéder à l’opérande. En effet, le code
opération de l’instruction comporte un ensemble de bits pour indiquer le mode d’adressage.

Les modes d’adressage les plus utilités sont :

▪ Immédiat
▪ Direct
▪ Indirect
▪ Indexé
▪ Relatif

a. Adressage immédiat

L’opérande existe dans le champ adresse de l’instruction.

La taille de la donnée peut varier entre 1 et 2 octets


Exemple :

ADD 150

Cette commande va avoir l’effet suivant : ACC (ACC) + 150.


Si le registre accumulateur contient la valeur 200 alors après l’exécution son contenu sera égal à 350.
b. Adressage direct
Programmation Assembleur

Le champ opérande de l’instruction contient l’adresse de l’opérande (emplacement en mémoire).


Pour réaliser l’opération il faut le récupérer (lire) l’opérande à partir de la mémoire.

ACC  (ACC) + (ADR)


Exemple :
On suppose que l’accumulateur continent la valeur 20.

A la fin de l’exécution nous allons avoir la valeur 50 (20 + 30)


c. Adressage indirect

Le champ adresse contient l’adresse de l’adresse de l’opérande. Pour réaliser l’opération il faut
:

❖ Récupérer l’adresse de l’opérande à partir de la mémoire.


❖ Par la suite il faut chercher l’opérande à partir de la mémoire.

ACC (ACC) + ((ADR))


Exemple :
Programmation Assembleur

❖ Initialement l’accumulateur contient la valeur 20


❖ Il faut récupérer l’adresse de l’adresse (150).
❖ Récupérer l’adresse de l’opérande à partir de l’adresse 150 (la valeur 200)
❖ Récupérer la valeur de l’opérande à partir de l’adresse 200 (la valeur 40)
❖ Additionner la valeur 40 avec le contenu de l’accumulateur (20) et nous allons avoir la
valeur 60

d. Adressage relatif

L’adresse effective de l’opérande est relative à une zone mémoire. L’dresse de cette zone se trouve
dans un registre spécial (registre de base).

Adresse = ADR + (base)


Programmation Assembleur

e. Adressage indexé
L’adresse effective de l’opérande est relative à une zone mémoire. L’dresse de cette zone se trouve dans
un registre spécial (registre indexe).
Adresse opérande = ADR + (X)

5. PERFERMANCE D’UN PROCESSEUR

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.

MIPS = FH/CPI avec FH en Multiples de Hz