0% ont trouvé ce document utile (0 vote)
44 vues55 pages

"Microprocesseur 8086 : Architecture"

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues55 pages

"Microprocesseur 8086 : Architecture"

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture du microprocesseur

Le microprocesseur peut être


programmé pour effectuer des fonction
sur des données avec des instruction
écrites dans la mémoire.
Architecture du microprocesseur

le microprocesseur lit une instruction à la fois, la


fait correspondre avec son jeu d'instructions et
effectue la manipulation de données spécifiée.
le résultat est soit stocké dans la mémoire soit
affiché sur un périphérique de sortie
6086 microprocesseur
• c’est un microprocesseur 16 bits. L’ALU et les registres
internes fonctionnent avec des mots binaires de 16 bits.
• 8086 dispose d'un bus d'adresse de 20 bits pouvant
accéder à jusqu'à 2 20 = 1 Mo d'emplacements de
mémoire.
• 8086 a un bus de données 16 bits. Il peut lire ou écrire
des données dans une mémoire/port soit 16 bits soit 8
bits à la fois
6086 microprocesseur

multiplication et division matérielles, prise en


charge intégrée d'un coprocesseur
mathématique externe effectuer des
opérations mathématiques en virgule flottante
jusqu'à 100 fois plus rapidement que le
processeur seul via l'émulation logicielle
• Il peut préextraire jusqu'à 6 octets
μP 8086
d'instructions de la mémoire et les mettre
en file d'attente afin d'accélérer
l'exécution des instructions.
• Il dispose d'un bus d'adresse / de
données multiplexé AD0- AD15 et
A16 - A19.
• 8086 est conçu pour fonctionner en deux
modes, le mode minimum (configuration
à un seul microprocesseur) et le mode
maximum (coprocesseurs externes,
contrôleur de bus externe)
Architecture du microprocesseur 8086
Le 8086 se compose de deux sections principales:

1.l’unité d’interface
de bus
1.l’unité d’exécution
Architecture du microprocesseur 8086
ces deux unités sont indépendantes l'une de l'autre et se
comportent comme des processeurs opérationnels
asynchrones distincts (traitement parallèle)
lorsque l'UE décode une instruction ou exécute une instruction à l’intérieur
du microprocesseur, le BIU récupère (fetche) à l’avance les instructions de
la mémoire et les stocke dans la file d'attente d'instructions pour un
traitement plus rapide. jusqu'à 6 octets d'instructions, le flux peut être mis
en file d'attente (PIPELINE) en attendant le décodage et l'exécution.
le file d’attente augmente
l’efficacitée de l’utilisation de la
mémoire. la file d'attente agit
comme un tampon FIFO entre le
BIU et l'UE
l'UE sort des octets d'instruction au fur et à mesure des besoins, le premier
octet, dans la file d'attente, va immédiatement à l'UE lorsque la file d'attente
est vide après l'exécution de l'instruction de branchement. C'est également la
seule occasion où le processeur doit attendre une instruction (c'est-à-dire
lorsque la file d'attente est vidée après une instruction de transfert de
contrôle) sinon, toutes les autres fois, l'unité d'exécution reçoit des
instructions pré-fetched de la file d'attente BIU
• Le microprocesseur 8086 Architecture du
microprocesseur
possède au total 14
registres accessibles au
programmeur. Il est divisé
en quatre groupes.
Elles sont:
1. 4 registres à usage général
2. 4 registres index/
3. 4 registres de segment.
4. 2 autres registres
• Cette unité se compose de
4 sous-unités :
1. fille d’attente d’instructions
2. r e g i s t r e s d ’ a d d r e s s d e
segments mémoire
3. pointeur d’instructions
4. additionneur d'adresse
• Il fournit un bus de données bidirectionnel complet de 16 bits et un bus
d'adresse de 20 bits.
• L'unité d'interface de bus BIU onnecte le microprocesseur à des dispositifs
externes. BIU effectue les opérations suivantes :
1. Récupération d'instructions
2. Lecture et écriture de données d'opérandes de données pour la mémoire
3. Lecture et écriture de données d'entrée/sortie pour les périphériques
d'entrée/sortie.
4. Lecture et écriture de données pour les autres fonctions liées à
l'instruction et à l'acquisition de données.
5. la BIU utilise un mécanisme connu sous le nom de file d'attente
d'instructions pour mettre en œuvre une architecture de pipeline
l’unité d’interface de bus
l’unité d’interface de bus contrôle les bus de données, le
bus d’address, le bus de contrôle
l’unité d’interface de bus effectue les opérations
suivantes
1) l'extraction et la mise en file d'attente
d'instructions
2) l'extraction et le stockage d'opérandes
3)la relocalisation d'adresses
le BIU extrait en continu des instructions de la mémoire
pendant que le processeur exécute l'instruction en cours. Le
BIU stocke les octets extraits dans la file d'attente et l'UE
lira ces octets de la file d'attente au fur et à mesure de ses
besoins. l'interface mémoire est généralement beaucoup
plus lente que le temps d'exécution du processeur, ce qui
découple le cycle de temps de la mémoire du temps
d'exécution.
la mémoire du 8086 est de 1 Mo divisée en segments
(mémoire segmentée). le microprocesseur 8086 peut
parfois accéder à quatre segments. chaque segment a
une longueur maximale de 64 Ko. chaque segment est
une unité indépendante et adressable séparément
(registres de segments) chaque segment se voit attribuer
une adresse de base, qui est son emplacement de
départ dans l'espace mémoire. les segments peuvent
être adjacents, disjoints partiellement superposés ou
totalement superposés
8086 se compose de quatre registres de
segment de 16 bits. Ces registres sont
utilisés (adresse de base) avec les
registres de pointeur ∕ d'index dans l’UE
(valeur d’offset) 16 bits pour générer
l'adresse physique 20 bits requise pour
permettre au 8086/8088 d'adresser 1 Mo de
mémoire. Les registres de segment pointent
vers les quatre segments immédiatement
adressables.
(CS) est un registre de 16 bits qui stocke l'adresse de
base du mémoire segment de code(instructions) de 64
Ko. qui contient les instructions ou les programmes du
microprocesseur. le pointeur d'instruction (offset)est le
registre utilisé par le microprocesseur pour accéder aux
instructions du mémoire CS . Comme tous les autres
registres de segment, le registre (CS) ne peut pas être
modifié directement. Pendant l'exécution des instructions
de saut lointain, de retour lointain et l’appel lointain le
registre CS est automatiquement mis à jour
(SS) est un registre de 16 bits, contenant l'adresse
de base du mémoire segment pile de 64 Ko. Ce
segment est utilisé comme une mémoire de pile qui
fonctionne sur (LIFO). PUSH et POP sont les
principales instructions pour charger et récupérer
des données à partir du mémoire segment de pile .
Le registre SS (comme les autres registres de
segment) ne peut pas être initialisé en chargeant la
valeur immédiate dans le registre SS. Il peut être
modifié directement à l'aide de l'instruction POP.
(DS) :C’est un registre de 16 bits qui contient
l'adresse de base du mémoire segment de données
de 64 Ko. Le segment de données est utilisé pour
stocker les données(les opérandes). Ce registre de
segment ne peut pas être initialisé en chargeant la
valeur immédiate dans le registre DS mais peut être
modifié directement à l'aide des instructions POP et
LDS.
(ES)C’est un registre de 16 bits qui contient
l'adresse de base du mémoire Segment
supplémentaire de 64 Ko. Nous ne pouvons pas
initialiser le registre ES en chargeant une valeur
immédiate. Il peut être modifié à l'aide des
instructions POP et LES.
L'IP contient l’offset ou l'adresse logique du prochain octet à lire à partir du segment de
code. La valeur du registre CS adresse de base est multipliée par l’hexadécimale 10 H.
La valeur résultante est ajoutée au contenu du registre pointeur d'instruction pour
constituer une adresse physique de 20 bits. Ce modèle segmenté s'applique également
à tous les autres registres généraux et registres de segment du 8086. Par exemple, le SS
et le SP sont combinés de la même manière pour adresser le segment de pile dans la
mémoire physique.
l’unité d’exécution
• L'UE extrait les instructions de la file d'attente
dans le BIU, les décode, génère des opérandes l’unité d’exécution
si nécessaire, les passe au BIU et lui demande
d'effectuer la lecture ou l'écriture par cycles en
mémoire ou en I/O et d'effectuer l'opération
spécifiée par l'instruction sur les opérandes.
• Pendant l'exécution de l'instruction, l'UE teste les
indicateurs d'état et de contrôle (Flags) et les
met à jour en fonction des résultats de
l'exécution de l'instruction.
L'unité d'exécution se compose de 4
registres de données à usage général
de 16 bits qui peuvent être utilisés
comme 8 registres de données de 8
bits, 4 pointeurs et registres index
de 16 bits et un registre Flag de 16 bits.
Registres principaux

AX : Accumulateur 16 bits :
stocke le résultat 16 bits de
certaines opérations arithmétiques
et logiques.
Registres principaux
BX :
registre de base: Utilisé comme registre d’addresse
pour plusieur mode d'adressage de base
Registres principaux
CX
Registre de comptage:Utilisé pour
conserver la valeur de comptage dans
les instructions SHIFT, ROTATE et
LOOP.
Registres principaux
DX
Registre de Données : utilisé
pour stocker des données pour
les opérations de multiplication et
de division
Registres d'index

Le microprocesseur 8086 se compose de 4


pointeurs et registres d’index 16 bits:

SP Stack Pointer (pointeur de pile) Utilisé pour


contenir l'adresse d’offset du haut de la
mémoire de la pile.
Registres d'index

BP Pointeur de Base Utilisé pour


conserver la valeur d’offset pour
l'adressage des données du pile, on pout
accéder à n’inport quelle place de la
mémoire de pile.
Registres d'index

SI, D I C e sont des r egi s t r es d' i ndex , ét i quet és


respectivement comme index de source et index de
destination. Ils fonctionnent comme des registres
d'adresses dans divers modes d'adressage, mais ils ont
une fonction spécialisée en tant que registres par
défaut dans les instructions de chaîne.
Le microprocesseur 8086 consiste en un registre d'indicateurs 16 bits. Le registre
de Flags est un ensemble de 16 bascules indépendantes. Sur ces 16 bascules, 6
bascules sont utilisées pour indiquer certaines conditions de données et 3
bascules sont utilisées pour contrôler certaines opérations de contrôle de la
machine et les 6 bascules restantes sont réservées aux microprocesseurs à venir.
Le format du registre des drapeaux est illustré à la figure
1. Flag zéro (ZF) Le Flag zéro indique si le résultat d'une opération
mathématique ou logique est nul ou non nul. Pour un résultat nul,
ce bit sera activé, sinon ce bit sera effacé.
2. Flag de retenue (CF) Ce Flag est activé lorsqu'un report ou un
emprunt arithmétique a été généré à partir de la position de bit la
plus significative au cours d'une opération d'addition ou de
soustraction. Lorsqu'il est utilisé après une opération arithmétique, il
peut être considéré comme l'équivalent non signé du Flag de
débordement.
3. Flag de signe (SF) Cet Flag indique si le résultat d'une opération
mathématique est négatif ou positif. Si le résultat est positif, ce bit
sera effacé. En fait ce bit représente l'état du bit D 7 du dernier
résultat.
4. Flag de parité (PF) Le Flag de parité indique si le nombre de bits
définis est pair ou impair dans la représentation binaire du résultat
de la dernière opération. Si le résultat actuel est de parité paire,
alors ce bit sera activé. Si le résultat est de parité impaire, alors ce
bit sera nul. Ce Flag indique si le résultat actuel est de Parité paire
(1) ou de Parité impaire (0).
5. Flag de retenu auxiliaire (AC) Il indique la propagation du report
de la position D 3 à la position D 4 . Cet indicateur est utilisé pour
convertir le résultat binaire en un résultat BCD. Pour mieux
comprendre, considérons l'exemple.
6. Flag de débordement (OF)Cet Flag est utilisé dans les
opérations arithmétiques signées. Si le résultat signé comporte
plus de bits que l'opérande de destination, alors cet indicateur
sera défini ; sinon il sera effacé. Pour mieux comprendre,
considérons l'exemple.
Il y a trois Flag de contrôle dans 8086 qui sont
utilisés pour contrôler certaines opérations du
processeur.
Flag d'interruption (TF) Si cet indicateur est défini,
une interruption d'étape unique se produit après
l'exécution de l'instruction suivante. Cet indicateur
est utilisé pour le débogage en une seule étape. Ce
Flag est activé ou désactivé par des moyens logiciels
Flag d'activation d'interruption (IF) Cet indicateur
est utilisé pour masquer ou démasquer l'interruption
masquable. Lorsque cet indicateur est établi, les
interruptions masquables amèneront le
microprocesseur à transférer sa commande à un
emplacement spécifié par le vecteur d'interruption.
Cet indicateur est activé ou désactivé par des
moyens logiciels.
Flag de direction (DF) Cet indicateur est utilisé dans
les opérations liées aux chaînes. Il provoque la
décrémentation automatique des instructions de
chaîne dans le registre d'index approprié (SI ou DI)
lorsqu'il est défini. S'il est effacé, les registres d'index
seront en mode d'auto-incrémentation.
CONFIGURATION DES BROCHES DU 8086
Le 8086 est un circuit intégré à 40
b ro c h e s q u i f o n c t i o n n e s u r u n e
alimentation +5 V et trois fréquences
d'horloge : 5, 8 et 10 MHz. Le 8086
fonctionne à la fois dans des
configurations à processeur unique
et à multiprocesseurs (arithmetique
co-processor 8087 et input /output
processor 8089)pour atteindre des
niveaux de performances élevés.
SIGNAUX COMMUNS
Nom Fonction/Description Type
16 lignes d'adresse/données multiplexées qui portent l'adresse lorsque l'ALE=1, et
AD15 - AD0 fonctionnent plus tard comme des lignes de données D0 à D15, lorsque l'ALE=0 Bidirectionnel
Les lignes d'adresse A19 à A16, qui sont multiplexées avec les signaux d'état
A19 / S6 - A16 / S3 S6 à S3.
Sortie

sélectionner les 8 bits haut/bas de la banque de mémoire Sortie


Contrôle du mode minimum/maximum entrée
Lorsque ce signal=0, les données peuvent être reçues de la
Sortie
mémoire ou des périphériques d'entrée
cette entrée est examinée par une instruction WAIT. si l'entrée de
test passe à l'état 0, l'exécution se poursuivra, sinon le processeur entrée
reste dans un état inactif
SIGNAUX COMMUNS

acquittement des périphériques lents ou de la mémoire


READY entrée
indiquant qu'ils ont terminé le transfert de données
RESET Réinitialisation du système entrée
Demande d'interruption de type 2. une transition de 0 à 1 initie
NMI entrée
la réponse d'interruption à la fin de l'instruction en cours
Demande d'interruption - c ec i es t ut i l i s é par un
INTR entrée
périphérique externe pour interrompre le processeur,
CLK Horloge système entrée
Entrée
Vcc +5 V
d'alimentation
Masse
GND Masse
d'alimentation
SIGNAUX DE MODE MINIMAL
signale Cycle machine usage

ALE Address Latch Enable est mis à 1, si une adresse valide est disponible pour AD0 à AD15

Bank High Enable sélectionner les 8 bits haut/bas de la banque de mémoire

Read Data indiquer l'opération de lecture

Write Data indiquer l’operation de l’éciture

indiquer le fonctionnement de la mémoire si le signat est mis à 1


Memory / Input Output
haut sinon le fonctionnement des entrées/sorties

indiquer la disponibilité de données valides sur les lignes


Data Enable
d'adresse/de données

indique que le processeur envoie des données si ce signal, sinon il


Data Transmit/Receive
indique que le processeur reçoit une donnée
SIGNAUX DE MODE MAXIMUM

Signal de commande
Cycle machine S2 S1 S0 Fonction
généré par 8288

Data Enable 0 0 0 Acquittement d'interruption


Data Transmit/Recive 0 0 1 lecture E/S
Input/Output Write Command 0 1 0 écriture E/S
Input/Output Read Command 0 1 1 Arrêt
Memory Write Command 1 0 0 Récupération d'instructions
Memory Read Command 1 0 1 lecture de mémoire
Interrupt Acknowledge 1 1 0 écriture sur la mémoire
None None 1 1 1 Inactif
Cycles de BUS et Le chronogramme de fonctionnement
Les opérations de base effectuées par le bus CPU sont appelées
cycles de bus. Selon les activités du 8086, les cycles de bus peuvent
être classés comme suit :
1.Cycle de lecture de la mémoire (quatre états T)
2.Cycle d'écriture en mémoire (quatre états T)
3.Cycle de lecture E/S (quatre états T)
4.Cycle d'écriture d'E/S (quatre états T)
5.Cycle d'acquittement d'interruption (huit états T)
Cycles de BUS et Le chronogramme de fonctionnement
Le processeur a également la possibilité d'étendre la synchronisation des
cycles de bus en introduisant des états T supplémentaires appelés états
d'attente à l'aide du signal de commande READY. Le chronogramme
renseigne sur les différentes conditions des signaux lors de l'exécution d'un
cycle de bus. Les chronogrammes sont essentiels pour un concepteur de
système. la connaisance du chrongrammes permet de selecter lles
periphériques qui peut former un systeme avec un CPU
Cycle de lecture de la mémoire
Les chronogrammes de divers signaux impliqués dans la lecture
d'un mot (16 bits) à partir d'une adresse paire de la mémoire en
mode minimum sont illustrées à la Fig.
1. Le 8086 sort une adresse mémoire de 20 bits sur les
lignes AD0-AD15 et les lignes ADDR/STATUS.
2. Le signal de validation de verrouillage d'adresse ALE
est positionné au 1 au début de T1 puis positionné au
0 à la fin de T 1 . Cela permet aux verrous d'adresse
externes de verrouiller l'adresse (sur le front
descendant de ALE) et de rester sur ces lignes de
sortie.
3. Le signal de commande de direction DT/R est
positionné au 0 pour informer le tampon de données
bidirectionnel externe que le processeur doit recevoir
des données.
4. Le signal M/IO est maintenu à 1 pour indiquer l'accès
à la mémoire. Le BHE est maintenu à 0 pour activer la
banque de mémoire impaire/supérieure.
1. Les lignes AD0-AD15 deviennent inactives.
2. L'adresse est retirée des lignes ADDR/STATUS et les
signaux d'état S7-S3 sont émis sur ces lignes. (Le BHE
devient le signal d'état S7.)
3. A la fin de T2, le signal de commande de lecture RD
est activé au 0 pour activer le tampon de sortie de la
mémoire. Le temps pendant lequel RD reste bas est le
temps accordé à la mémoire pour charger les données
dans le bus de données.
4. Le signal DEN est activé au 0 pour activer les tampons
de données bidirectionnels externes.
5. Le signal READY de 8086 est échantillonné pendant
T 2 . (Si READY est à1, alors T 3 et T 4 sont exécutés,
sinon des états d'attente sont introduits.)
Aucune activité n'est effectuée pendant T 3 . L'état des
signaux à la fin de T2 est maintenu tout au long de T3.
1. Le RD est maintenu à haut et à ce moment (c'est-à-dire au
front montant de RD) les données sont verrouillées en 8086.
2. Le DEN est rendu haut pour désactiver le tampon de données
Les chronogrammes de divers signaux impliqués dans l'écriture d'un mot (16
bits) à partir d'une adresse paire de la mémoire en mode minimum sont
illustrées à la Figure.
1. Le 8086 sort une adresse mémoire de 20 bits sur les
lignes AD0-AD15 et les lignes ADDR/STATUS.
2. Le signal de validation de verrouillage d'adresse ALE est
positionné au 1 au début de T1 puis positionné au 0 à la
fin de T1. Cela permet aux verrous d'adresse externes de
verrouiller l'adresse (sur le front descendant de ALE) et
de rester sur leurs lignes de sortie.
3. Le signal de commande de direction DT/R est positionné
au 0 pour informer le tampon de données bidirectionnel
externe que le processeur doit recevoir des données.
4. Le signal M/IO est maintenu à à 1 pour indiquer l'accès à
la mémoire.Le BHE est maintenu à à 0 pour activer la
banque de mémoire impaire/supérieure.
1. Les lignes AD0-AD15 deviennent inactives.
2. L'adresse est retirée des lignes ADDR/STATUS et les
signaux d'état S7-S3 sont émis sur ces lignes. (Le BHE
devient le signal d'état S7.)
3. A la fin de T2, le signal de commande de lecture RD est
activé au 0 pour activer le tampon de sortie de la
mémoire. Le temps pendant lequel RD reste à 0 est le
temps accordé à la mémoire pour charger les données
dans le bus de données.
4. Le signal DEN est activé au 0 pour activer les tampons de
données bidirectionnels externes.
5. Le signal READY de 8086 est échantillonné pendant T2.
(Si READY est à 1, alors T3 et T4 sont exécutés, sinon
des états d'attente sont introduits.)
Aucune activité n'est effectuée pendant T3. L'état des signaux à la fin
de T2 est maintenu tout au long de T3.
1. Le RD est maintenu à 1 et à ce moment (c'est-à-dire au front
montant de RD) les données sont verrouillées dans 8086.
2. Le DEN est rendu haut pour désactiver le tampon de données.

Vous aimerez peut-être aussi