Vous êtes sur la page 1sur 7

CHAP 1 :

GGENERALITES SUR LES SYSTEMES A MICROPROCESSEURR

I. Notions essentielles

I-1- Microprocesseur

Le microprocesseur ou unité centrale de traitement (CPU : Central Processing Unit) est un circuit électronique

complexe caractérisé par une très grande intégration, capable de comprendre et d’exécuter un ensemble d’instructions

d’un programme.

I-2- Langage machine

Le langage machine est l’association de séquences de bits organisés sous forme d’octets (instruction machine)

compréhensible par le microprocesseur.

I-3- Langage d’assemblage

Le langage d’assemblage est la traduction en langue humaine du langage machine en utilisant des mnémoniques ;

c’est-à-dire que l’on donne des noms aux instructions machines en rapport avec l’action effectuée. Malheureusement il

y a un langage machine par CPU, donc il y a aussi un langage d’assemblage par CPU.

Les codes écrits en langage d’assemblage sont traduits vers le langage machine par le biais d’un programme qu’on

appelle assembleur.

NB : le langage d’assemblage (en anglais : assembly language ou assembly) est le langage de programmation dans

lequel on écrit le programme ; alors que l’assembleur (en anglais : assembler) est le programme qui traduit le source

écrit en langage d’assemblage vers le langage machine. Il est dans l’usage de pratiquer l’abus qui consiste à employer

le terme assembleur à la place de l’expression langage d’assemblage.

I-4- Programme

Un programme est une séquence d’instructions stockées dans une mémoire qui vont être exécutées à partir d’une

adresse de départ. Ces instructions vont interagir plus ou moins directement avec des données se trouvant aussi en

mémoire.

En effet, une instruction est une très courte séquence d’octets dont une partie renseigne le microprocesseur sur

l’action à effectuer (c’est le code opératoire) et une autre partie éventuelle renseigne sur quelles données faire porter

l’action quand il est nécessaire de les spécifier (ce sont les opérandes).

II. Environnement minimum d’un système à microprocesseur

Le microprocesseur ne peut fonctionner sans un environnement minimum comportant :

- Une zone de mémoire vive pour les données et les résultats

- Une zone de mémoire morte pour le programme

- Une ou plusieurs interfaces pour les périphériques.

La structure de l’environnement minimum d’un système à microprocesseur est la suivante :

MEMOIRE

MORTE (ROM)

MEMOIRE

VIVE (RAM)

INTERFACE POUR PERIPHERIQUE D’ENTREE / SORTIE

Horloge
Horloge

Microprocesseur

POUR PERIPHERIQUE D’ENTREE / SORTIE Horloge Microprocesseur Bus d’adresses Bus de données Bus de commande 1

Bus d’adresses

Bus de données

Bus de commande

II-1- Liaisons entre les différentes entités

Un système à microprocesseur (par exemple un ordinateur) se compose principalement d’un microprocesseur (CPU), de mémoires (ROM et RAM) et des unités d’interface pour périphérique (clavier, souris, scanner, carte son, écran, imprimante …). Le CPU est la pièce maîtresse de tout le système ; les mémoires et les périphériques étant à son service. Le CPU est connecté aux périphériques et aux mémoires à l’aide de trois groupes de conducteurs en parallèle appelés bus et ayant chacun une fonction spécifique :

- Le bus de données (Data bus) : il assure le transfert des informations du microprocesseur vers les éléments de son environnement et inversement. Il est donc bidirectionnel. Le nombre de fils constituants le bus de données est égal à la capacité de traitement du microprocesseur. Par exemple un microprocesseur 16 bits traite les données en les exploitant par groupe de 16 bits, un microprocesseur 32 bits traite les données en les exploitant par groupe de 32 bits.

- Le bus d’adresses (Address bus) : il permet la sélection des informations à traiter dans un espace mémoire ou à partir d’un périphérique. Il est unidirectionnel. Si le bus d’adresses est constitué de n conducteurs alors l’espace mémoire peut avoir 2 n emplacements possibles.

- Le bus de commande (Control bus) : il est constitué de quelques conducteurs qui assurent la synchronisation des flux d’information sur les bus de données et d’adresses.

NB : l’horloge est nécessaire pour la mise en route du microprocesseur. En effet, elle permet de rythmer (cadencer) l’exécution des tâches à effectuer par le microprocesseur.

II-2- Les mémoires

Les mémoires sont des circuits électroniques qui peuvent enregistrer, conserver et restituer des informations binaires. Chaque bit est enregistré dans une cellule mémoire (ou point mémoire). Il existe des dispositifs mémoires permettant de manipuler de très grandes quantités d’informations.

On distingue généralement deux familles de mémoires :

- Les mémoires RAM (Random Access Memory) : mémoire à accès aléatoire.

- Les mémoires ROM (Read Only Memory) : mémoire à lecture seulement.

a. Mémoires RAM

Ce sont des mémoires dans lesquelles l’on peut écrire et lire une information à tout moment ; d’où l’appellation

"mémoires vives". Elles sont volatiles, c’est-à-dire que l’on perd les données qu’elles contiennent en cas de coupure

d’alimentation.

Parmi les mémoires vives, on distingue :

-

Les SRAM (Static RAM) : leurs cellules sont faites de bistables (bascules). Elles sont plus rapides car leur

temps d’accès est très faible.

-

Les DRAM (Dynamic RAM) : leurs cellules sont faites de micro-accumulateurs (condensateurs). Leur

particularité c’est que pour éviter que les micro-accumulateurs qui les constituent se déchargent sous peine de

perdre l’information, elles doivent être rechargées périodiquement ; on dit qu’on rafraîchit la mémoire. Cette

disposition les rend moins rapide que les SRAM.

b.

Mémoires ROM

Les ROM sont des mémoires où seules les opérations de lectures sont autorisées. Les informations qu’elles contiennent sont conservées en permanence, même lors d’une coupure d’alimentation. Elles sont également appelées mémoires mortes ou mémoires fixes. Avec les diverses évolutions technologiques, on distingue différents types de mémoires ROM :

- Les ROM (Read Only Memory). Ce sont les ROM typiques. Les informations sont écrites une fois pour de bon

chez le concepteur.

- Les PROM (Programmable ROM). Elles peuvent être programmées une seule fois par l’utilisateur à l’aide

d’un programmateur de mémoire. Elles sont aussi dites PROM à fusibles.

-

Les EPROM (Erasable PROM). Ce sont des mémoires qui peuvent être reprogrammées à condition d’en avoir

effacé au préalable le contenu par un rayonnement ultra-violet. On les appelle aussi UV-PROM. Pour les

reprogrammer il faut un programmateur nécessitant une tension de programmation élevée (généralement

supérieure à 12V).

-

Les EEPROM (Electrically Erasable PROM). C’est une amélioration technologique des EPROM. Ce sont des

mémoires qui peuvent être effacées et reprogrammées électriquement avec une tension relativement faible

(5V).

-

Les mémoires FLASH. Ce sont en fait, à la base, des mémoires de type EEPROM et donc en possède les

principales caractéristiques mais avec des améliorations technologiques notables. Le temps de

reprogrammation est plus bref et elles supportent plusieurs centaines de milliers de cycles de

reprogrammation.

c.

Organisation d’une mémoire

Une mémoire est organisée comme une structure matricielle de L lignes et C colonnes. Chaque ligne est une case mémoire (ou emplacement mémoire).

Dans chaque case mémoire on peut mémoriser 1 bit part colonne. Donc dans une case mémoire on peut mémoriser une donnée de C bits.

Le nombre de cases mémoires pouvant être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro appelé adresse. L’accès à une case mémoire se fait alors par l’intermédiaire de son adresse. L’adresse est un nombre binaire de n bits.

Pour des adresses de n bits, on peut sélectionner 2 n cases mémoires possibles. Ainsi comme pour chaque adresse correspond une et une seule case mémoire, le circuit mémoire dispose d’un décodeur d’adresses qui permet de choisir la case mémoire adressée parmi les 2 n .

Par ailleurs, un boîtier mémoire comprend une entrée de commande qui permet de définir le type d’action que l’on effectue (lecture/ écriture) et une entrée de sélection qui permet de mettre les entrées/sorties du boîtier en haute impédance (c’est-à-dire de mettre le boîtier hors service).

Bus de données

de mettre le boîtier hors service). Bus de données D 7 D 6 D 5 D

D7 D6 D5 D4 D3 D2 D1 D0

Commande de lecture/écriture L3 A1 L2 Décodeur Bus d’adresses L1 A0 d’adresses L0 Commande de
Commande de
lecture/écriture
L3
A1
L2
Décodeur
Bus d’adresses
L1
A0
d’adresses
L0
Commande de
sélection du circuit

Structure d’une mémoire de quatre cases mémoires d’un octet

d. Capacité d’une mémoire

Une opération de lecture ou d’écriture de la

mémoire suit le cycle suivant :

- 1 ère action : sélection de l’adresse
- 2 ème action : choix de l’opération à effectuer (lecture ou écriture)

- 3 ème action : sélection du circuit mémoire

- 4 ème action : lecture ou écriture de la donnée.

La capacité caractérise le nombre de bits ou d’octets mémorisables par un circuit mémoire. Elle est souvent exprimée

en kilobits ou en kilo-octets.

Pour un circuit mémoire ayant un bus d’adresses de n bits et un bus de donnée de D bits (c’est-à-dire D bits dans

une case mémoire), alors la capacité est :

Remarque :

C = 2 n x D (en bits)

ou bien

C = 2 n x 2 -3 x D = 2 n-3 x

D (en octets).

1 octet = 2 3 = 8 bits

1 kilobit (Kb) = 2 10 bits

1 Mégabit (Mb) = 2 10 Kb =2 20 bits

1 Gigabit (Gb) = 2 10 Mb = 2 20 Kb = 2 30 bits.

1 kilo-octet (Ko) = 2 10 octets

1 Mégaoctet (Mo) = 2 10 Ko =2 20 octets

1 Gigabit (Go) = 2 10 Mo = 2 20 Ko = 2 30 octets.

III.

Structure et fonctionnement dun microprocesseur

Le cœur d’un système à microprocesseur est l’unité centrale de traitement (UC) ou CPU, ou tout simplement

microprocesseur.

Le microprocesseur est un circuit séquentiel pouvant effectuer une suite d’opérations binaires en fonction d’une

instruction. Il se compose essentiellement de :

- Une unité de commande ou unité de contrôle.

- Une unité Arithmétique et Logique (UAL) ou Arithmetic and logic Unit (ALU)

- Registres

III-1- Architecture interne d’un microprocesseur

Le microprocesseur exécute les instructions qui constituent un programme. Pour réaliser cette tâche, les divers

éléments qui le constituent sont classés en deux grands blocs qui sont :

- Le bloc unité de commande (ou unité de contrôle)

- Le boc UAL

Tous ces blocs fonctionnent en manipulant des registres divers.

BUS interne Registre Registre PC Registre RI Registre Registre Registre Décodeur UAL Séquenceur RE
BUS interne
Registre
Registre
PC
Registre
RI
Registre
Registre
Registre
Décodeur
UAL
Séquenceur
RE
Accumulateur
Horloge
UnitéUnité d'exécutiond'exécution
Unité de commande (ou de contrôle)

a- L’unité de commande

Elle supervise le déroulement de toutes les opérations (actions) effectuées par le microprocesseur. Elle se compose de :

- Une horloge qui permet la synchronisation des tâches effectuées.

- Un séquenceur qui est chargé de générer tous les signaux de commande et de gérer le séquencement

(ordonancement) des tâches effectuées.

- Un registre d’instruction (RI) dans lequel est stocké l’instruction qui est en cours d’exécution.

- Un compteur de programme ou compteur ordinal ou Program Counter (PC) qui est un registre particulier

chargé de contenir l’adresse de l’emplacement mémoire où est stockée la prochaine instruction à exécuter

(c’est-à-dire à envoyer dans le RI) après celle qui est encours de traitement.

Remarque : au début du lancement ou de l’exécution d’un programme, le PC (Program Counter) est toujours initialisé pour contenir l’adresse de l’emplacement mémoire où se trouve stockée la première instruction du programme.

- Un décodeur qui est chargé de décoder l’instruction contenue dans le registre d’instruction (RI) et de générer

les signaux en conséquence qu’il doit acheminer au séquenceur.

- Un registre d’état (RE) ou registre de condition formé de plusieurs appelés flag ou fanion (drapeau) qui sont positionnés à un certain niveau logique par l’UAL après chaque opération. Selon le microprocesseur, on distingue plusieurs bits du registre d’état dont entre autres :

o

Le bit de retenue ou Carry (C) : c’est un bit qui est positionné à un lorsqu’une retenue est générée après une opération arithmétique entre les bits de plus fort poids de deux opérandes.

o

Le bit indicateur de zéro (Z) : c’est un bit qui est positionné à un lorsque tous les bits de l’accumulateur ou d’un registre particulier sont à zéro après une opération.

o

Le bit de signe (S) : c’est un bit qui est positionné à un lorsque le MSB de l’accumulateur est un.

o

Le bit de dépassement ou Overflow (O) : c’est un bit qui est positionné à un lorsque des opérations arithmétiques dans une représentation binaire donnée indique un résultat erroné.

o

Le bit de demi-retenue ou Half Carry (H) ou (DC) : c’est un bit qui est positionné à un lorsque le quartet inférieur génère une retenue vers le quartet supérieur dans un calcul sur des octets.

b- L’unité dexécution ou UAL

L’UAL est chargé d’effectuer les opérations arithmétiques (addition, soustraction, multiplication, division …) et logiques (Et, Ou, Non, …) ; mais aussi des opérations de test sur les données.

Les données traitées par l’UAL proviennent soit de la mémoire, soit d’une unité d’entrée/sortie, soit d’un registre. Le résultat des traitements est transféré soit vers la mémoire, soit vers une unité d’entrée/sortie ou dans un registre. Les entrées de l’UAL sont connectées aux bus internes par l’intermédiaire de registres dont l’un est particulier : l’accumulateur. L’accumulateur est un registre par lequel transite pratiquement toutes les opérations.

NB :

Outre l’accumulateur, les autres registres qui servent au stockage temporaire des données manipulées appelés registres à usage général (ou GPR : General Purpose Register).

Certains microprocesseurs disposent d’un registre particulier appelé pointeur de pile (SP : Stack Pointer). Ce registre est destiné à contenir l’adresse d’une autre zone mémoire appelée la pile. On dit que le pointeur de pile pointe sur une adresse de la pile. La pile est en effet, une partie de la mémoire réservée pour sauvegarder les adresses de certaines instructions quand il y a un saut dans le programme. La pile est du type LIFO (Last In First Out) ; c’est à dire que la dernière adresse empilée (sauvegardée dans la pile) est la première à être dépilée (ressortie de la pile).

III-2- Puissance d'un microprocesseur

La notion de puissance est la capacité de traiter un grand nombre d'opérations par seconde portant sur de grands mots et en grande quantité. Généralement la puissance se détermine donc sur les trois critères suivants :

La longueur des mots : données et instructions (on parle de largeur du bus des données).

Le nombre d'octets que le microprocesseur peut adresser (on parle de largeur du bus des adresses).

La vitesse d'exécution des instructions liée à la fréquence de fonctionnement de l'horloge de synchronisation exprimée en MHz ou en GHz.

Le nombre d’instructions dans le jeu d’instructions. On distingue :

- Les microprocesseurs à jeu d’instructions réduit : RISC (Reduced Instructions Set Computer). Chacune d’elles s’exécute en un cycle instruction.

- Les microprocesseurs à jeu d’instructions complexes (importants) : CISC (Complex Instructions Set Computer). Chacune d’elles s’exécute en plusieurs cycles instructions.

III-3- Fonctionnement d’un microprocesseur

a- Charges incombant au microprocesseur

Dans un système à microprocesseur, le microprocesseur a à sa charge des fonctions suivantes :

Fournir les signaux de synchronisation et de commande à tous les éléments du système ;

Prendre en charge les instructions et les données dans la mémoire ;

Transférer des données entre la mémoire et les dispositifs d’entrées/sorties, et vice versa ;

Décoder des instructions ;

Effectuer les opérations arithmétiques et logiques commandées par les instructions ;

Réagir aux signaux de commande fournis par les entrées/sorties (comme par exemple le signal RESET et les INTERRUPTIONS).

b- Structure d’une instruction

Un microprocesseur exécute un programme qui est en effet une suite d’instructions stockées dans une mémoire. Une instruction peut être codée sur un ou plusieurs octets et a le format général suivant :

Code opératoire
Code opératoire
octets et a le format général suivant : Code opératoire Code opératoire O p é r

Code opératoire

Opérandes

Une instruction est donc formée d’un code opératoire (l’action ou opération à effectuer) et d’opérandes (données sur lesquelles porte l’action à effectuer)

c- Déroulement d'une instruction

Le déroulement d'une instruction se fait en trois phases : une phase de Recherche (Fetch), une phase de Décodage (Decode) et une phase d'Exécution (Execute).

Phase de recherche

Pendant la phase de recherche ou cycle de recherche, l’instruction est chargée de la mémoire vers le registre d’instruction (RI). En effet, pour que cela se déroule, le contenu du compteur ordinal (Program Counter : PC) est placé sur le bus d’adresse et une case mémoire est sélectionnée. La mémoire reçoit un ordre de lecture, les données sont transférées à l’intérieur du microprocesseur vers le registre instruction et le cycle de recherche est terminé.

Phase de décodage

La deuxième phase est la phase de décodage ou cycle de décodage. Au cours de ce cycle, le contenu du registre d’instruction (RI) est analysé par le décodeur pour déterminer la nature de l’opération ainsi que le nombre et le type des opérandes : le code de l’instruction est alors identifié et le microprocesseur sait ce qu’il faut faire.

Il faut noter que pendant que l’instruction est décodée, le pointeur d’instruction ou compteur ordinal (PC) est incrémenté de façon à pointer vers l’instruction suivante (c’est-à-dire indiquer l’adresse de l’instruction suivante), puis le processus de lecture et de décodage des instructions recommence.

Au cours de ce cycle :

Phase d'exécution

Les informations décodées sont communiquées au séquenceur qui charge les opérandes dans les registres appropriés et envoi à l’ALU les signaux de commandes lui indiquant l’opération à effectuer.

L’ALU exécute l’opération et positionne les indicateurs du registre d’état.

1 2 3 4 5 7 6 9 8
1
2
3
4
5
7
6
9
8

Illustration du déroulement d’une instruction

d- Temps d’exécution d’une instruction

Une période élémentaire d’horloge est appelée microcycle. L’ensemble des microcycles qui concourent à l’exécution d’une instruction est appelé cycle d’instruction (ou cycle instruction).

Le temps d'exécution d'une instruction dépend du type de l'opération à exécuter. En effet, un cycle instruction peut s'étendre sur plusieurs microcycles (périodes d'horloge).

On indique par cycle CPU le temps d'exécution de l'instruction la plus courte.

Chaque instruction est caractérisée par le nombre de périodes d’horloge (ou microcycles) qu’elle utilise (ces données fournies par le fabricant du microprocesseur).

L’horloge délivre un signal d’une fréquence donnée qui arrive directement au séquenceur et c’est ce dernier qui permet d’enchaîner les différentes étapes de l’exécution d’une instruction. Cette horloge est constituée par un oscillateur à quartz dont les circuits peuvent être internes ou externes au microprocesseur.

peuvent être internes ou externes au microprocesseur. Cycle instruction en 3 microcycles Cycle instruction en 9

Cycle instruction en 3 microcycles

au microprocesseur. Cycle instruction en 3 microcycles Cycle instruction en 9 microcycles Exemple : Soit une

Cycle instruction en 9 microcycles

Exemple :

Soit une horloge de fréquence f = 10 MHz ; ce qui correspond à une période T = 1/f = 0,1 µs. Si l’instruction s’exécute en 9 microcycles, la durée d’exécution de l’instruction est : 9 × 0,1 = 0, 9 µs.