CHAPITRE I
Architecture et Fonctionnement d’un Microprocesseur
OBJECTIFS
Ce chapitre a les objectifs suivants :
S’introduire la description matériel d’un system à microprocesseur
S’expliquer la circulation des information dans un system à microprocesseur
S’expliquer le fonctionnement d’un microprocesseur
S’expliquer l’organisation de la mémoire central d’un calculateur
1. Introduction
Le plus important élément d’un system informatique (calculateur) est l’unité
centrale de traitement (UCT), en Anglais Central Processing Unit (CPU :). CPU
est constituée :
• d’une unité arithmétique et logique (UAL, ALU : Arithmetic and Logic
Unit) : c’est l’organe de calcul du calculateur ;
• de registres : zones de stockage des données de travail de l’UAL
(opérandes, résultats intermédiaires) ;
• d’une unité de contrôle (UC, CU : Control Unit) : elle envoie les ordres (ou
commandes) à tous les autres éléments du calculateur afin d’exécuter un
programme.
Fig.1. représente une architecture type d’un système à microprocesseur :
La mémoire centrale (main memory) contient le programme à exécuter et les
données à traiter.
L’unité d’entrées/sorties (Input/Output (I/O) est un intermédiaire entre le
calculateur et le monde extérieur.
1
Microprocesseur et Microcontrôleur
2
Microprocesseur et Microcontrôleur
Les microprocesseurs peuvent être classés selon la longueur maximale des mots
binaires qu’ils peuvent échanger avec la mémoire et les E/S : microprocesseurs 8
bits, 16, 32, ou 64bits...
Le bus peut être d´décompose en trois bus distincts :
• le bus d’adresses (address bus) permet au microprocesseur de spécifier l’adresse
de la case mémoire à lire ou à écrire ;
• le bus de données (data bus) permet les transferts entre le microprocesseur et la
mémoire ou les E/S ;
• le bus de commande (control bus) transmet les ordres de lecture et d’écriture de la
mémoire et des E/S. les bus de données et de commande sont bidirectionnels, le
bus d’adresse est unidirectionnel : seul le microprocesseur peut délivrer des
adresses (il existe une exception pour les circuits d’accès direct `a la mémoire,
DMA).
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 d’un 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. La bande passante d'un bus, c'est-à-dire le débit de
données qu'il peut transporter, est sa largeur multiplier par sa fréquence. Un Bus
3
Microprocesseur et Microcontrôleur
d'une largeur de 16 bits, cadencé à une fréquence de 133 Mhz possède donc une
bande passante égale à:
16 * 133.106 = 2128*106 bit/s=253.7 MB/s
3. Description Matérielle d’un Microprocesseur (Intel 8086)
On peut représenter un microprocesseur par son schéma fonctionnel (Fig.3.)
5
Microprocesseur et Microcontrôleur
6
Microprocesseur et Microcontrôleur
l’adresse est générée par le microprocesseur: c’est le signal ALE, (Address Latch
Enable).
Fonctionnement: omrane@univ-setif.dz
• si ALE = 1, le verrou est transparent (Q = D);
• si ALE = 0, mémorisation de la dernière valeur de D sur les sorties Q;
̅̅̅̅̅) ou d’écriture (𝑾𝑹
• les signaux de lecture (𝑹𝑫 ̅̅̅̅̅) ne sont générés par le
microprocesseur que lorsque les données sont présentes sur le bus A/D.
Exemples de bascules D : circuits 8282, 74373, 74573
̅̅̅̅̅̅: Data Enable, indique que des données sont en train de circuler sur le bus
𝐷𝐸𝑁
A/D (équivalent de ALE pour les données).
DT/𝑅̅ : Data Transmit/Receive, indique le sens de transfert des données :
• DT/𝑅̅ = 1 : données émises par le microprocesseur (écriture) ;
• DT/𝑅̅ = 0 : données reçues par le microprocesseur (lecture).
8
Microprocesseur et Microcontrôleur
Seuls les bits A1 `a A19 servent a designer une case mémoire dans chaque banque
de 512 Ko. Le microprocesseur peut ainsi lire et écrire des données sur 8 bits ou
sur 16 bits :
Table 2 : Les Signaux A0 et BHE
Le 8086 ne peut lire une donnée sur 16 bits en une seule fois, uniquement si l’octet
de poids fort de cette donnée est rangé a une adresse impaire et l’octet de poids
faible a une adresse paire (alignement sur les adresses paires), sinon la lecture de
9
Microprocesseur et Microcontrôleur
cette donnée doit se faire en deux opérations successives, d’où une augmentation
du temps d’exécution du transfert dû à un mauvais alignement des données.
Fig. 13. Réalisation des deux banques avec plusieurs boitiers mémoire Fig.14.Interface du Bus Adresse et Bus Donnée
4. Les mémoires
Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de
conserver et de restituer des informations (instructions et variables). C’est cette
capacité de mémorisation qui explique la polyvalence des systèmes numériques et
leur adaptabilité à de nombreuses situations. Les informations peuvent être écrites
ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, lecture
lorsqu'on récupère des informations précédemment enregistrées.
10
Microprocesseur et Microcontrôleur
11
Microprocesseur et Microcontrôleur
mémoire). La mémoire cache est une mémoire qui enregistre temporairement des
copies de données provenant d'une source, afin de diminuer le temps d'un accès
ultérieur (en lecture) d'un processeur à ces données. Elle est plus rapide et plus
proche du µp et plus petite.
SRAM (très rapide, simple d’utilisation mais compliqué à réaliser).
• Les mémoires mortes (ROM : Read Only Memory) ou mémoires non volatiles.
Elles conservent leur contenu en cas de coupure d’alimentation. Elles ne peuvent
être que lues par le microprocesseur (pas de possibilité d’écriture). On les utilise
pour stocker des données et des programmes de manière définitive.
Les types de ROM sont :
• ROM : Read Only Memory. Mémoire a lecture seule, sans écriture. Son
contenu est programmé une fois pour toutes par le constructeur. Avantage :
faible coût. Inconvénient : nécessite une production en très grande quantité.
• PROM: Programmable Read Only Memory. ROM programmable une seule fois
par l’utilisateur (ROM OTP : One Time Programming) en faisant sauter des
fusibles. Nécessite un programmateur spécialisé: application d’une tension de
programmation (21 ou 25 V) pendant 20 ms.
• EPROM : Erasable PROM, appelée aussi UVPROM. ROM programmable
électriquement avec un programmateur et effaçable par exposition a un
rayonnement ultraviolet pendant 30 minutes. exemple : 2764 (8 Ko), 27256 (32
Ko).Avantage : reprogrammable par l’utilisateur.
• EEPROM : Electrically Erasable PROM. ROM programmable et effaçables
électriquement. Lecture `a vitesse normale (≤ 100 ns). Ecriture (effacement) très
lente (≈10 ms). Application : les EEPROM contiennent des données qui peuvent
être modifiées de temps en temps, exemple : paramètres de configuration des
ordinateurs. Avantage : programmation sans extraction de la carte et sans
programmateur. Inconvénient: coût élevé.
13
Microprocesseur et Microcontrôleur
Dans un même boitier, une case mémoire est désignée par les bits d’adresses A0 à
A12.
Pour la mémoire no1, on doit avoir A13 = 0, A14 = 1 et A15 = 0 d’où la plage
d’adresses occupée par cette mémoire:
Pour la mémoire no3, on doit avoir A13 =0, A14 = 0 et A15 = 1 d’où la plage
d’adresses occupée cette mémoire :
15
Microprocesseur et Microcontrôleur
16
Microprocesseur et Microcontrôleur
17
Microprocesseur et Microcontrôleur
o Flags :
La donnée d’un couple (segment, offset) définit une adresse logique, notée sous la
forme : segment : offset.
L’adresse d’une case mémoire donnée sous la forme d’une quantité sur 20 bits (5
digits hexa) est appelée adresse physique car elle correspond à la valeur envoyée
réellement sur le bus d’adresses A0 - A19.
(Adresse physique=10xsegment+offset)16
A un instant donné, le 8086 a accès a 4 segments dont les adresses se trouvent dans
les registres de segment CS, DS, SS et ES. Le segment de code contient les
instructions du programme, le segment de données contient les données
manipulées par le programme, le segment de pile contient la pile de sauvegarde et
le segment supplémentaire peut aussi contenir des données.
Le registre CS est associé au pointeur d’instruction IP, ainsi la prochaine
instruction à exécuter se trouve à l’adresse logique CS : IP.
20
Microprocesseur et Microcontrôleur
Fig.22. L’adresse de l’instruction à exécuter Fig.23. Mémoire accessible par le 8086`a un instant donné
23
Microprocesseur et Microcontrôleur
- l'exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs,
on appelle alors cette configuration du nombre NaN (Not a number) les exposants
peuvent ainsi aller de -126 à +128.
Exemple de coder 1052,25 :
+1052,25 s'écrit en base 2 de la façon suivante: 010000011100,01. On veut l'écrire
sous la forme :
1,000001110001 x 210. Par conséquent, le bit s vaut 0, l'exposant vaut 10
(127+10=137):soit 10001001 et la mantisse est 000001110001. La représentation
du nombre 1052.25 en binaire avec la norme IEEE est:
01000100100000111000100000000000
Conversion Inverse est donnée par : No10=(-1)s(1+m)(2e-127)
Ex:
Représenter le réel (-23.4) en binaire en single-précision. Ans :C1BB3333
Convertir : 1 10010001 10001110001000000000000 en décimale. Ans :-407688
Le Code ASCII
Références :
1. Barry B. Brey, “The Intel Microprocessor“, Prentice-Hall International.
1997.
24
Microprocesseur et Microcontrôleur
25