Professional Documents
Culture Documents
Le microprocesseur Intel 8086 est un microprocesseur 16 bits, apparu en 1978. Cest le premier microprocesseur de la famille Intel 80x86 (8086, 80186, 80286, 80386, 80486, Pentium, ...). Il se prsente sous la forme dun bo tier DIP (Dual In-line Package) ` e a 40 broches :
GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8086 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET (S2) (S1) (S0) (QS0) (QS1) (RQ/GT0) (RQ/GT1) (mode maximum)
cours de microprocesseur
ISET Rad`s e
20
4.2
horloge
CLK RESET
contrle du microprocesseur
4.3
CLK : entre du signal dhorloge qui cadence le fonctionnement du microprocesseur. Ce e signal provient dun g n rateur dhorloge : le 8284. e e
4,77 MHz quartz 14,318 MHz 8284 CLK READY 8086 RESET gnrateur d'horloge
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E
21
RESET : entre de remise ` z ro du microprocesseur. Lorsque cette entre est mise ` e a e e a l tat haut pendant au moins 4 p riodes dhorloge, le microprocesseur est r initialis : il e e e e va ex cuter linstruction se trouvant ` ladresse FFFF0H (adresse de bootstrap). Le signal e a de RESET est fourni par le gn rateur dhorloge. e e READY : entre de synchronisation avec la m moire. Ce signal provient galement du e e e g n rateur dhorloge. e e TEST : entre de mise en attente du microprocesseur dun vnement ext rieur. e e e e MN/MX : entre de choix du mode de fonctionnement du microprocesseur : e
mode minimum (MN/MX = 1) : le 8086 fonctionne de mani`re autonome, il gn`re e e e lui-meme le bus de commande (RD, WR, ...) ;
mode maximum (MN/MX = 0) : ces signaux de commande sont produits par un cont oleur de bus, le 8288. Ce mode permet de raliser des syst`mes multiprocese e seurs.
NMI et INTR : entres de demande dinterruption. INTR : interruption normale, NMI e (Non Maskable Interrupt) : interruption prioritaire. INTA : Interrupt Acknowledge, indique que le microprocesseur accepte linterruption. HOLD et HLDA : signaux de demande daccord dacc`s direct ` la m moire (DMA). e a e S0 ` S7 : signaux d tat indiquant le type dop ration en cours sur le bus. a e e A16/S3 ` A19/S6 : 4 bits de poids fort du bus dadresses, multiplexs avec 4 bits a e d tat. e AD0 ` AD15 : 16 bits de poids faible du bus dadresses, multiplexs avec 16 bits de a e donnes. Le bus A/D est multiplex (multiplexage temporel) do` la ncessit dun e e u e e d multiplexage pour obtenir s par ment les bus dadresses et de donnes : e e e e
22
1 cycle de bus T1 CLK T2 T3
T4
T1
T2
T3
T4
ADi
adresse
donne
adresse
donne
Le dmultiplexage des signaux AD0 ` AD15 (ou A16/S3 ` A19/S6) se fait en m morisant e a a e ladresse lorsque celle-ci est prsente sur le bus A/D, ` laide dun verrou (latch), ene a semble de bascules D. La commande de m morisation de ladresse est gn re par le e e ee microprocesseur : cest le signal ALE, Address Latch Enable. Circuit de dmultiplexage A/D : e
LATCH ALE bus d'adresses 8086 H Q D x 20 A0 - A19 bus de donnes 20 AD0 - AD15 A16/S3 - A19/S6 D0 - D15 S3 -S6
Fonctionnement : 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 ; e e les signaux de lecture (RD) ou d criture (WR) ne sont gn rs par le microprocese e ee e e seur que lorsque les donnes sont prsentes sur le bus A/D.
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E
4.3 - Description et utilisation des signaux du 8086 Exemples de bascules D : circuits 8282, 74373, 74573.
23
D0 D1 8282 D7 STROBE OE
Q0 Q1
Q7
RD : Read, signal de lecture dune donne. e WR : Write, signal d criture dune donne. e e M/IO : Memory/Input-Output, indique si le 8086 adresse la m moire (M/IO = 1) ou les e entr es/sorties (M/IO = 0). e DEN : Data Enable, indique que des donnes sont en train de circuler sur le bus A/D e ( quivalent de ALE pour les donnes). e e DT/R : Data Transmit/Receive, indique le sens de transfert des donnes : e DT/R = 1 : donnes mises par le microprocesseur ( criture) ; e e e DT/R = 0 : donnes re ues par le microprocesseur (lecture). e c
1 cycle de bus T1 CLK T2 T3 T4
ADi
adresse
donne
ALE
Les signaux DEN et DT/R sont utiliss pour la commande de tampons de bus (bu ers) e permettant dampli er le courant fourni par le microprocesseur sur le bus de donnes. e
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e
24
BHE : Bus High Enable, signal de lecture de loctet de poids fort du bus de donnes. e Le 8086 poss`de un bus dadresses sur 20 bits, do` la capacit dadressage de 1 Mo ou e u e 512 Kmots de 16 bits (bus de donnes sur 16 bits). e Le mga-octet adressable est divis en deux banques de 512 Ko chacune : la banque e e inf rieure (ou paire) et la banque sup rieure (ou impaire). Ces deux banques sont e e s lectionnes par : e e A0 pour la banque paire qui contient les octets de poids faible ; BHE pour la banque impaire qui contient les octets de poids fort.
A1 - A19 bus d'adresses
A1 A0 A2 A1
D0 D0 D1 D1 banque paire D7 D7
A19 A18 A0 CS A1 A0 A2 A1 D0 D8 D1 D9 banque impaire D7 D15 A19 A18 BHE D0 - D15 bus de donnes
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E
CS
25
Seuls les bits A1 ` A19 servent ` d signer une case m moire dans chaque banque de a a e e 512 Ko. Le microprocesseur peut ainsi lire et crire des donnes sur 8 bits ou sur 16 bits : e e BHE A0 0 0 0 1 1 0 1 1 octets transf rs ee les deux octets (mot complet) octet fort (adresse impaire) octet faible (adresse paire) aucun octet
Remarque : le 8086 ne peut lire une donne sur 16 bits en une seule fois, uniquement si e loctet de poids fort de cette donne est rang ` une adresse impaire et loctet de poids e e a faible ` une adresse paire (alignement sur les adresses paires), sinon la lecture de cette a donne doit se faire en deux op rations successives, do` une augmentation du temps e e u dex cution du transfert du ` un mauvais alignement des donnes. e a e R alisation des deux banques avec plusieurs bo tiers m moire : e e
bus d'adresses A1 - A19
A1 A0 A2 A1 64 K x 8
D0 D0 D1 D1 D7 D7
CS A1 A0 A2 A1 64 K x 8 D7 A16 A15 CS D7 D0 D0 D1 D1
banque paire
A1 A0 A2 A1 64 K x 8
D0 D8 D9 D1 D7 D15
banque impaire
cours de microprocesseur
ISET Rad`s e
8282 D STR Q
A15 A8
WR RD M/IO
A7 A0
8286
D15 D8
EN DIR D7 D0
A 8286 EN DIR
M/IO RD WR
4.4
Le 8086 est constitu de deux units fonctionnant en parall`le : e e e lunit dex cution (EU : Execution Unit) ; e e lunit dinterface de bus (BIU : Bus Interface Unit). e
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E
27
pointeur d'instruction
16
registres temporaires
UAL
ole des deux units : e lunit dinterface de bus (BIU) recherche les instructions en m moire et les range e e dans une le dattente ; lunit dex cution (EU) ex cute les instructions contenues dans la le dattente. e e e Les deux units fonctionnent simultanment, do` une acc l ration du processus dex cution e e u ee e dun programme (fonctionnement selon le principe du pipe-line). Le microprocesseur 8086 contient 14 registres r partis en 4 groupes : e Registres gn raux : 4 registres sur 16 bits. e e
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e
Ils peuvent etre galement consid rs comme 8 registres sur 8 bits. Ils servent ` contee ee a nir temporairement des donnes. Ce sont des registres gn raux mais ils peuvent e e e etre utiliss pour des op rations particuli`res. Exemple : AX = accumulateur, CX e e e = compteur. Registres de pointeurs et dindex : 4 registres sur 16 bits. Pointeurs : SP : Stack Pointer, pointeur de pile (la pile est une zone de sauvegarde de donnes en cours dex cution dun programme) ; e e BP : Base Pointer, pointeur de base, utilis pour adresser des donnes sur e e la pile. Index : SI : Source Index ; DI : Destination Index. Ils sont utiliss pour les transferts de cha nes doctets entre deux zones e m moire. e Les pointeurs et les index contiennent des adresses de cases m moire. e Pointeur dinstruction et indicateurs ( ags) : 2 registres sur 16 bits. Pointeur dinstruction : IP, contient ladresse de la prochaine instruction ` ex cuter. a e Flags :
O D I T 15 14 13 12 11 10 9 8 CF : indicateur de retenue (carry) ; PF : indicateur de parit ; e AF : indicateur de retenue auxiliaire ; ZF : indicateur de zro ; e
S 7
Z 6 5
A 4
P 2
C 0
SF : indicateur de signe ; TF : indicateur dex cution pas ` pas (trap) ; e a IF : indicateur dautorisation dinterruption ; DF : indicateur de dcrmentation ; e e OF : indicateur de dpassement (ove ow). e Registres de segments : 4 registres sur 16 bits. CS : Code Segment, registre de segment de code ;
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E
29
DS : Data Segment, registre de segment de donnes ; e SS : Stack Segment, registre de segment de pile ; ES : Extra Segment, registre de segment supplmentaire pour les donnes ; Les e e registres de segments, associs aux pointeurs et aux index, permettent au mie croprocesseur 8086 dadresser lensemble de la m moire. e
4.5
Lespace m moire adressable par le 8086 est de 220 = 1 048 576 octets = 1 Mo (20 bits e dadresses). Cet espace est divis en segments. Un segment est une zone m moire de e e 64 Ko (65 536 octets) d nie par son adresse de d part qui doit etre un multiple de 16. e Dans une telle adresse, les 4 bits de poids faible sont ` z ro. On peut donc reprsenter a e e ladresse dun segment avec seulement ses 16 bits de poids fort, les 4 bits de poids faible e tant implicitement ` 0. a Pour d signer une case m moire parmi les 216 = 65 536 contenues dans un segment, il e e su t dune valeur sur 16 bits. Ainsi, une case m moire est rep re par le 8086 au moyen de deux quantits sur 16 bits : e ee e ladresse dun segment ; un dplacement ou o set (appel aussi adresse e ective) dans ce segment. e e Cette m thode de gestion de la m moire est appele segmentation de la m moire. e e e e 1 Mo FFFFFH
00000H
La donne dun couple (segment,o set) d nit une adresse logique, note sous la forme e e segment : o set. Ladresse dune case m moire donne sous la forme dune quantit sur 20 bits (5 digits e e e hexa) est appele adresse physique car elle correspond ` la valeur envoye r ellement e a e e sur le bus dadresses A0 - A19.
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e
30
4 bits 0000
16 bits adresse physique 20 bits Ainsi, ladresse physique se calcule par lexpression :
adresse physique = 16 segment + o set car le fait dinjecter 4 zros en poids faible du segment revient ` e ectuer un dcalage de e a e 4 positions vers la gauche, cest ` dire une multiplication par 24 = 16. a A un instant donn, le 8086 a acc`s ` 4 segments dont les adresses se trouvent dans les e e a registres de segment CS, DS, SS et ES. Le segment de code contient les instructions du programme, le segment de donnes contient les donn es manipules par le programme, le e e e segment de pile contient la pile de sauvegarde et le segment supplmentaire peut aussi e contenir des donnes. e Le registre CS est associ au pointeur dinstruction IP, ainsi la prochaine instruction ` e a a ex cuter se trouve ` ladresse logique CS : IP. e
1 Mo
FFFFFH
0
ISET Rad`s e
00000H
cours de microprocesseur HAGG ` GE, 2003 E
31
De meme, les registres de segments DS et ES peuvent etre associs ` un registre dindex. e a Exemple : DS : SI, ES : DI. Le registre de segment de pile peut etre associ aux registres e de pointeurs : SS : SP ou SS : BP. M moire accessible par le 8086 ` un instant donn : e a e 1 Mo extra segment FFFFFH ES : DI offset = DI ES : 0000H
segment de pile
offset = SP
SS : SP SS : 0000H
segment de donnes
DS : SI offset = SI DS : 0000H
segment de code 0
offset = IP
CS : IP CS : 0000H 00000H
Remarque : les segments ne sont pas ncessairement distincts les uns des autres, ils e peuvent se chevaucher ou se recouvrir compl` tement. e
1 Mo segment de pile segment de donnes segment de code SS : 0000H DS : 0000H CS : 0000H 0 00000H FFFFFH 1 Mo FFFFFH
00000H
32
Contenu des registres apr`s un RESET du microprocesseur : e IP = 0000H CS = FFFFH DS = 0000H ES = 0000H SS = 0000H Puisque CS contient la valeur FFFFH et IP ex cute par le 8086 se trouve donc ` ladresse e e a ladresse physique FFFF0H (bootstrap). Cette le programme principal qui initialise ensuite les la valeur 0000H, la premi`re instruction e logique FFFFH : 0000H, correspondant ` a instruction est gn ralement un saut vers e e autres registres de segment.
4.6
Le microprocesseur 8088
Le microprocesseur 8088 est identique au 8086 sauf que son bus de donnes externe est e sur 8 bits au lieu de 16 bits, le bus de donnes interne restant sur 16 bits. e Le 8088 a t produit par Intel apr`s le 8086 pour assurer la compatibilit avec des circuits ee e e p riph riques d j` existant, fabriqus pour les microprocesseurs 8 bits 8080 et 8085. e e ea e Di rences avec le 8086 : e les broches AD8 ` AD15 deviennent A8 ` A15 (bus de donnes sur 8 bits) ; a a e la broche BHE nexiste pas dans le 8088 car il ny a pas doctet de poids fort sur le bus de donnes ; e la broche M/IO devient IO/M pour la compatibilit avec danciens circuits dE/S. e Au niveau de larchitecture interne, pas de di rences avec le 8086 sauf que la le dattente e des instructions passe de 6 ` 4 octets. a
ISET Rad`s e
cours de microprocesseur