Vous êtes sur la page 1sur 13

Chapitre I Architecture d’un microprocesseur

I.1 Introduction

Une chaine de traitement de l’information est basée sur l’utilisation d’un composant
électronique programmable pour le stockage et la gestion de données. Cela à travers
l’exécution d’un programme informatique qui réalise des fonctions bien déterminées. Les
hautes performances des microprocesseurs permettent l’utilisation de ces composants dans
différents domaines d’application comme l’électronique et l’automatique.

Figure. I.1

I.2 Organisation d’un microprocesseur

Un système à microprocesseur est souvent décrit par le schéma de la figure I.2. Dans ce
cas du système, on trouve : la mémoire centrale, les interfaces d’entrées/sorties et l’unité
centrale (CPU).

Figure. I.2

1
Chapitre I Architecture d’un microprocesseur

En effet, le microprocesseur exécute un programme en langage Assembleur en utilisant


divers composants (figure I.2). Dans ce cas, on trouve trois types de bus permettant de faire
circuler les adresses, données et les commandes. Une mémoire pour stocker les instructions et
les données formant les programmes, cela en code machine. De plus, les interfaces sont des
circuits intégrés permettant au processeur de dialoguer et de contrôler des périphériques
d’entrées/sorties.

I.2.1 Le processeur

Soit en Anglais Central Processor Unit (CPU), c’est elle qui permet d’exécuter les
programmes en langage Assembleur, cela est cadencé par un signal d’horloge. Généralement,
elle se compose de deux unités : l’unité de traitement (UT) et l’unité de commande (UC).

Figure. I.3
L’unité de commande (UC) : elle assure la recherche et le décodage des
instructions du programme ainsi que la génération des signaux de commande et
de synchronisation.
L’unité de traitement (UT) : elle se charge d’exécuter les opérations
arithmétiques ou logiques liées à chaque instruction du programme.

I.2.2 La mémoire

Elle permet de stocker les données et les instructions formant le programme. Elle se
caractérise par : la capacité, le temps d’accès à la donnée et le format du bus de donnée.
On peut représenter une mémoire par un tableau d’une seule colonne avec plusieurs cases,
chaque case mémoire permet de stocker une donnée ou une instruction sous forme de mots
binaires (figure I.4). On distingue 02 types de mémoires: vives et mortes. La figure. I.4
(a) montre le boitier d’une mémoire et la figure. I.4 (b) présent le schéma simplifié d’une
mémoire

2
Chapitre I Architecture d’un microprocesseur

(a) (b)
Figure. I.4

I.2.3 Les interfaces d’entrées/sorties

Une interface d'entrées/sorties (E/S) est un circuit permettant au processeur de


communiquer avec l'environnement extérieur (périphériques).
Les interfaces d'E/S sont connectées au microprocesseur à travers le bus d'adresse, le bus
données et le bus de commande.
Nous citons comme exemple le PPI 8255A qui est un circuit d’interface parallèle
développé par INTEL pour le microprocesseur INTEL 8086.

I.2.4 Les registres

Ils sont des emplacements mémoire de petites tailles (8,16 et 32 bits) intégrées au niveau
du processeur afin de réaliser divers opérations comme la manipulation des données et la
définition des adresses.
Aussi, ils sont généralement fabriqués avec des bascules et ils se caractérisent par un
temps de lecture/écriture très rapide.
Sur la figure I.5 nous présentons un exemple d’un registre de quatre bascules D.

Figure. I.4

3
Chapitre I Architecture d’un microprocesseur

I.2.5 Les bus

Il existe trois types de bus permettant de faire circuler les adresses (BA), les données (BD)
et les commandes (BC).

I.3 Principe de fonctionnement du microprocesseur


Un programme en langage Assembleur est composé d'instructions rangées aux adresses
croissantes de la mémoire.
Le microprocesseur (µP) doit accomplir les tâches suivantes:
1. Il doit appeler une instruction qu'il lit en mémoire (recherche).
2. Il la décode, c'est-à-dire, qu'il traduit en commandes internes ce qu'elle lui dit de
faire (décodage).
3. Il l'exécute en tant que opération (exécution).

Figure. I.5

Le déroulement de l'exécution des instructions d'un programme en Assembleur est


cadencé par un signal d’horloge permettant ainsi, selon un cycle d’horloge, de faire une
recherche, décodage et exécution de chaque insurrection du programme, ceci de manière
ordonnancée.

Figure. I.6

4
Chapitre I Architecture d’un microprocesseur

D’une autre part, le fonctionnement d’un µP est basé sur l’utilisation de différents
registres, citant comme exemples :
a) L'accumulateur: c’est un registre du travail.

b) Le compteur de programme (PC): c'est un registre qui contient l'adresse de


l'instruction suivante du programme.

c) Registre d'instruction (RI) : c'est un registre qui contient l'instruction suivante qui
sera décodé pour qu'elle soit exécutée par l'unité de traitement.

d) Registre d’état : formé d’indicateurs souvent appelé ‘’bits flags’’.

I.4 Architecture de V. Neumann

La plupart des systèmes à microprocesseurs se basent sur l’architecture de Von Neumann,


représentée sur la figure. I.5.
Dans le cas de l’architecture de Von Neumann, on trouve une seul mémoire centrale
permettant de stocker les instructions formant le programme ainsi que les données des
programmes.

Figure. I.7

I.5 Différents types

Le jeu d’instruction se définit comme étant l’ensemble d’instructions qui sont


compréhensible par le processeur. Selon le jeu d’instruction, on distingue deux grandes
familles :
La famille CISC (Complex Instruction Set Computer).
La famille RISC (Reduced Instruction Set Computer).

5
Chapitre I Architecture d’un microprocesseur

Un processeur CISC se caractérise par un jeu d’instruction étalé, cela entre 75-150. Citons
comme exemple le processeur INTEL 8086.
Dans le cas de la famille RISC, on trouve un jeu d’instructions réduit. Comme les
microcontrôleurs PIC (jeu de 35 instructions).

I.6 Architecture externe d’un microprocesseur 16bits

On considère le microprocesseur Intel 8086.

I.6.1 Structure externe du 8086

Le microprocesseur Intel 8086 est un µP 16 bits, apparu en 1978. C’est le premier


microprocesseur de la famille Intel 80xxx.
Il se présente sous la forme d’un boitier DIP (Dual In-line Package) à 40 broches. Il est
alimenté par une tension de 5V (figure I.8).

Figure. I.8

Les pins du 8086 se divisent par leur fonctions en plusieurs catégories: Adresse, données,
CONTROLE/STATUS et alimentation/ masse. Le schéma fonctionnel du 8086 peut être
donc, représenté par la figure ci-dessous.

6
Chapitre I Architecture d’un microprocesseur

Figure. I.9

I.6.1.1 Brochage et fonction des Pins du 8086

1. La pine CLK : entrée du signal d’horloge qui cadence le fonctionnement du


microprocesseur, ce signal provient du 8284.
On note que le 8284 est un générateur d’horloge (15 MHz Crystal).

2. Les lignes de contrôle A/D

AD0 à AD15 : Ces lignes représentent 16 bits de bus d'adresse multiplexés avec 16 bits de
lignes de données.
-Pendant T1, elles représentent des lignes d'adresse A15-A0.
-Pendant T2, T3, T4, elles représentent des lignes de données D0-D15.
A16/S3 à A19/S6 : Ces lignes adresse sont multiplexées avec les lignes d´état. Ce sont les
4bits de poids forts.
-Pendant T1, elles représentent des lignes d'adresse A19-A16.
-Pendant T2, T3, T4, elles représentent des signaux d'état S6-S3.
S0 à S7 : signaux d’état indiquant le type d’opération en cours sur le bus.
S3 et S4 : Lorsque le bus de donnée est actif, les sorties S3 et S4 donnent le nom du registre
segment qui a servit à générer l'adresse physique.

7
Chapitre I Architecture d’un microprocesseur

S5 : la ligne S5 donne l'état du FLAG d'autorisation d'interruption.


S6 : le S6 est toujours zéro tant que le µ processeur est sur le but.
ALE (Address Latch Enable ) : Ce signal est une impulsion active pendant T1, elle indique
que l’information qui circule dans bus A/D est une adresse.
Elle est fournie par le Cpu pour verrouiller les lignes d'adresse au cours des cycles T2, T3, T4.
RD : Read, signal de lecture d’une donnée.
WR : Write, signal d´écriture d’une donnée.
M/IO : Memory/Input-Output, indique si le CPU adresse la mémoire (M/IO = 1) ou les
entrées/sorties (M/IO = 0).

DEN (Data Enable) : indique que des données sont en train de circuler sur le bus A/D
(équivalente de ALE pour les données).
DT/R (Data Transmit/Receive) : indique le sens de transfert des données :
DT/R = 1 : données émises par le microprocesseur (écriture).
DT/R = 0 : données reçues par le microprocesseur (lecture).

Le chronogramme de séparation de bus Adresse/données (A/D) est le suivant :

Figure. I.10

8
Chapitre I Architecture d’un microprocesseur

Le chronogramme de sens de transfert de données sur le bus de données est le suivant :

Figure. I.11

3. Les lignes du contrôle du µP et de Status

READY : Entrée de synchronisation avec la mémoire.


TEST : Entrée de mise en attente du microprocesseur d’un évènement extérieur.
RESET : Entrée de remise à zéro du microprocesseur.
MN/MX : indique dans quel mode le processeur doit fonctionner
HIGH: minimum mode. LOW: maximum mode.
BHE : Bus High Enable, signal de lecture de l’octet de poids fort du bus de données.
Il est utilisé avec A0 pour sélectionner le mot entier, octet fort, octet faible ou aucun.

4. Les lignes des interruptions

NMI et INTR : Entrées de demande d’interruption.


INTR : interruption normale,
NMI (Non Maskable Interrupt) : interruption prioritaire.
INTA : Interrupt Acknowledge, indique que le microprocesseur accepte l’interruption.

5. Les lignes du DMA

9
Chapitre I Architecture d’un microprocesseur

HOLD et HLDA : Signaux de demande d’accord d’accès direct à la mémoire (DMA).

I.6.2 Structure interne du 8086

Le 8086 est composé principalement de deux unités : unité d’exécution (Execution Unit
EU) et l’unité d’interfaçage de bus (Bus interface Unit BIU).

Figure. I.12

a) EU : Cette unité est chargée de faire le décodage ainsi que l’exécute des
instructions qui lui sont transmises par la BIU. Elle est basée essentiellement sur une
unité de traitement qui utilise une unité arithmétique et logique (UAL de 16 bits) et
une unité de décodage. On trouve également des registres généraux et un registre
d’état.
b) BIU : Elle effectue toutes les opérations de bus sur l'EU, comme les transferts de
données entre le CPU et la mémoire ou entre le CPU les interfaces d’E/S. Aussi,
elle récupère et stocke les instructions à traiter et définit les adresse des instructions.
De plus, elle permet d'établir les transmissions avec les bus du système.
Pendant que l'EU du 8086/8088 exécute les informations qui lui sont transmises,
l'instruction suivante est chargée dans la BIU. Les instructions qui suivront sont placées dans
une file d'attente. Lorsque l'EU a fini de traiter une instruction la BIU lui transmet
instantanément l'instruction suivante, et charge la troisième instruction en vue de la
transmettre à l'EU.

10
Chapitre I Architecture d’un microprocesseur

I.6.2.1 Les registres du 8086

Le microprocesseur 8086 contient 14 registres répartis en 4 groupes : Registres de travails,


Registres de segments, Registres de pointeurs et d’index et le registre FLAG.

Figure. I.13

1. Registres de travails
On trouve quatre registres d’usage général : AX, BX, CX et DX. Chacun de ces registres
est de 16-bits de large, mais Ils peuvent être également considérés comme 8 registres sur 8
bits.
a) AX : (Accumulateur) : registre de travail principal. Utilisé dans la multiplication
et la division de mots. Ainsi qu'aux opérations d'E/S.
b) BX : (registre de base) : employé pour l'adressage de données dans une zone
mémoire séparée du code (offset).
c) CX : (Le compteur) : utilisé comme un compteur de répétition pour les boucles et
pour les opérations de chaînes.
d) DX : utilisé dans les opérations de multiplication et de division de mots. Il peut
également contenir le numéro de port d'E/S. Il sert comme extension au registre
AX pour contenir un nombre 32 bits.

2. Registres de segments
On trouve quatre registres de 16 bits. Ils sont employés par la CPU pour déterminer les
adresses de segment de mémoire.
a) CS (code segment) : Il pointe sur le segment (zone mémoire) qui contient les
codes des instructions du programme exécutable.
b) DS (Data segment) : Le registre segment de données pointe sur la zone mémoire
de données.
c) ES (Extra segment) : segment auxiliaire pour données.
d) SS (Stack segment) : Le registre SS pointe sur la pile.

11
Chapitre I Architecture d’un microprocesseur

3. Registres de pointeurs et d’index


Ils sont utilisés comme pointeurs de mémoire.
a) SI (source indexe) : Il est associé au registre DS, il sert aussi pour les instructions
de chaîne de caractères, en effet il pointe sur le caractère source.
b) DI (Destination indexe) : Il est associé aux registres (DS ou ES), il sert aussi
pour les instructions de chaîne de caractères, il pointe alors sur la destination.
c) Les pointeurs SP et BP ( Stack pointer et base pointer ) : Ils sont associés au
registre SS, Ils pointent sur la zone pile. Pour le registre BP a un rôle proche de
celui de BX, le registre SP Pointe sur la tête de la pile.
d) Le pointeur IP : Associé au registre CS, il a seulement une fonction qui est
d'indiquer la prochaine instruction à exécuter par le CPU.
4. Le registre d’état (FLAG)
La plupart des instructions arithmétiques et logiques affectent le registre d'état du
processeur (ou registre de FLAG).
C’est un registre de 16 bits. Six des drapeaux sont des indicateurs d'état reflétant les
propriétés du résultat de la dernière instruction arithmétique ou logique. Trois des indicateurs
peuvent être activés ou remis à zéro par le programmeur: (TF, IF, DF).

Figure. I.14
Où,
CF : indicateur de retenue (carry) ;
PF : indicateur de parité;
AF : indicateur de retenue auxiliaire ;
ZF : indicateur de zéro ;
SF : indicateur de signe ;
TF : indicateur d’exécution pas à pas (trap) ;
IF : indicateur d’autorisation d’interruption ;
DF : indicateur de décrémentation ;
OF : indicateur de dépassement (overflow).

12
Chapitre I Architecture d’un microprocesseur

I.6.3 Segmentation de la mémoire

Le processeur 8086 a un bus d'adresses du bit 20 (A0-A19), Ceci permet au processeur


d'adresser 220 emplacements mémoire différents (1 Mo).
Donc,
L'adresse de la première case mémoire : 0000 0000 0000 0000 0000B (=00000H)
L'adresse la dernière casse est : 1111 1111 1111 1111 1111b (=FFFFFH)
Le problème qui se pose est comment représenter ces adresses au sein du 8086 qui est
formé uniquement de registres de 16 bits soit 4 digits au maximum (en hexadécimal).
La firme INTEL a proposé de fractionner (partager) la mémoire totale adressable de 1 Mo
(220) en bloc de 64 (216) ko appelés segments (zones mémoires). C-à-d,
220/216=16 segment
Puis, on utilise deux registres pour adresser une case mémoire : registre de segment
combiné au registre d’offset. Donc, une adresse se présente toujours sous la forme
‘’segment:offset’’.

Tableau. I.1

13

Vous aimerez peut-être aussi