Sunteți pe pagina 1din 97

1.1.

Descrierea generala a procesoarelor x86 pe 16 biti

n figurile 1.2 i 1.3 sunt prezentate schemele bloc ale celor dou uniti
centrale. Aa cum am spus ambele ncorporeaz dou blocuri de prelucrare
separate, UE i UIM. UE este identic la ambele procesoare, UIM diferind prin
aceea c la 8086 ea lucreaz pe o magistral de date de 16 bii cu coad de
instruciuni de 6 octei; la 8088 magistrala este de 8 bii iar coada de 4 octei.
1

UE are funcia de a executa toate instruciunile, comunicnd prin date i


adrese cu UIM i manipulnd registrele generale, indicatorii de condiii i
unitatea aritmetic/logic. Cu excepia ctorva conexiuni externe de comand,
UE este complet izolat de exteriorul procesorului. UIM are funcia de a
executa toate ciclurile de acces la magistrala extern, fiind alctuit din
registrele de segment, registrele de comunicaie intern, pointer-ul de
instruciuni, stiva pentru codul obiect al instruciunii i un sumator specializat.
Operaiile pe care le face UIM sunt: obinerea adresei prin adunarea valorii
segmentului cu valoarea deplasamentului, transferarea datelor spre UE pe
magistrala de date intern, de 16 bii, a unitii aritmetice/logice, i ncrcarea n
avans, preextragerea, codurilor obiect ale instruciunilor din memoria sistemului
n coada de ateptare, de unde vor fi preluate de UE.
UNITATEA DE
EXECUTIE (UE)

MAGISTRALA
ADRESE (20 biti)

REGISTRE
GENERALE
AH
BH
CH
DH

AL
BL
CL
DL

UNITATEA DE
INTERFATA CU
MAGISTRALA
(UIM)

AX
BX
CX
DX

MAGISTRALA
DATE (16 biti)

SP
BP
DI
SI

CS
DS
SS
ES
IP
REGISTRE DE
-COMUNICATIIINTERNE

MAGISTRALA
DE DATE UAL
(16 biti)

LOGICA DE
COMANDA A
MAGISTRALEI

MAGISTRALA
8086

REGISTRE TEMPORARE

UNITATE
ARITMETICA-LOGICA
(UAL)

LOGICA DE
COMANDA
UE

COADA DE
INSTRUCTIUNI (Q)

MAGISTRALA Q
(8 biti)
1

INDICATORI DE CONDITII

Figura 1.2. Schema bloc a microprocesorului 8086

UE extrage, atunci cnd este gata s execute o instruciune, codul obiect


al acesteia din coada de ateptare, trecnd apoi la execuia ei. n cazul n care
coada de ateptare nu are nici-un octet, UE va atepta pn ce UIM va extrage
codul din memoria sistemului. Dac n cursul execuiei unei instruciuni este
necesar accesul la o locaie de memorie sau la un port de I/O, UE va face, de
asemenea, o cerere ctre UIM pentru ca aceasta s execute ciclul de magistral
dorit.
Cele dou blocuri, UE i UIM, funcioneaz independent. La 8086, dac
cel puin doi octei din coad sunt liberi i UE nu are nici-o cerere ctre
2

UIM, aceasta din urm va executa ciclii de extragere n scopul ocuprii ntregii
cozi. La 8088, UIM extrage cod obiect atunci cnd coada are cel puin un octet
liber. Dac UE are nevoie de un acces la magistral i UIM se afl n timpul
unui ciclu de extragere, UE va atepta terminarea acestui ciclu nainte de a fi
luat n considerare cererea.

UNITATEA DE
EXECUTIE (UE)

MAGISTRALA
ADRESE (20 biti)

REGISTRE
GENERALE
AH
BH
CH
DH

AL
BL
CL
DL

UNITATEA DE
INTERFATA CU
MAGISTRALA
(UIM)

AX
BX
CX
DX

MAGISTRALA
DATE (8 biti)

SP
BP
DI
SI

CS
DS
SS
ES
IP
REGISTRE DE
-COMUNICATIIINTERNE

MAGISTRALA
DE DATE UAL
(16 biti)

LOGICA DE
COMANDA A
MAGISTRALEI

MAGISTRALA
8088

REGISTRE TEMPORARE

UNITATE
ARITMETICA-LOGICA
(UAL)

LOGICA DE
COMANDA
UE

COADA DE
INSTRUCTIUNI (Q)

MAGISTRALA Q
(8 biti)
1

INDICATORI DE CONDITII

Figura 1.3. Schema bloc a microprocesorului 8088

Registrele programabile ale microprocesorului 8086 sunt nfiate n


figura 1.4. Prezentm n continuare registrele n legtur cu modurile de
adresare ale lui 8086 deoarece multe din acestea sunt utilizate de logica de
adresare a memoriei.
AX este acumulatorul principal utilizat, de exemplu, de instruciunile de
I/O care transfer datele de obicei prin intermediul acestui registru. BX poate fi
folosit att ca acumulator ct i ca registru baz pentru calcularea adreselor de
memorie. CX poate fi acumulator sau se utilizeaz ca numrtor n execuia
instruciunilor iterative. DX poate fi folosit ca acumulator sau ca registru
numrtor pentru adresarea zonelor de memorie n transferuri cu port-urile de
intrare/ieire.
3

15
7

0 7

Un registru de 16 biti

Doua registre de 8 biti

AH

AL (sau A)

AX(=AH,AL) Registru acumulator principal

H,L

BH

BL

BX(=BH,BL) Registru acumulator si baza

B,C

CH

CL

CX(=CH,CL) Registru acumulator /numarator

D,E

DH

DL

DX(=DH,DL) Registru acumulator /numarator /


date I/E
Numele registrelor de 16 biti
Numele registrelor de 8 biti

15

SP

Numerotarea bitilor
Pointer stiva (SP)
Pointer baza (BP)
Index sursa (SI)
Index destinatie (DI)

PC

Numarator program (PC)


Segment cod (CS)
Segment date (DS)

Registru de segment

Segment stiva (SS)


Segment extern (ES)

Numele
registrelor
8080
echivalente

Starea
Registrele hasurate au echivalent 8080

Figura 1.4. Registrele programabile ale microprocesorului 8086

Adresele de memorie pe 20 de bii, generate de 8086, se calculeaz prin


nsumarea coninutului unui registru de segment cu o adres efectiv. Adresa
efectiv se calculeaz printr-o varietate de moduri de adresare ca i la alte
microprocesoare. Registrul de segment selectat este nti deplasat la stnga cu
patru poziii i apoi adunat cu adresa efectiv, generndu-se o adres de 20 de
bii:
Coninutul registrului de segment:
Adresa efectiv de memorie:

SSSS SSSS SSSS SSSS 0000 +


0000 EEEE EEEE EEEE EEEE

Adresa de memorie pe 20 de bii:

SSSM MMMM MMMM MMMM MMMM

Registrele de segment sunt folosite deci ca registre de baz care pot puncta orice
locaie de memorie aflat la o adres multiplu de 16. Fiecare registru de
segment identific nceputul unei zone de memorie, al unui segment, de 64
4

koctei. Deoarece 8086 are patru registre de segment n orice moment, din
ntreaga memorie vor fi selectate numai patru segmente de cte 64 koctei. Nu
se impune nici-o restricie asupra coninutului registrelor de segment, ceea
nseamn c aceste registre identific numai originea segmentelor care pot fi
plasate oriunde n spaiul de adresare de 1 Moctet al microprocesorului.
Memoria de 1 Moctet nu este deci mprit n pagini de 64 koctei, ci adresat
pe segmente care pot fi separate sau suprapuse.

15

SP
BP
SI

J,J,J,J

Adresa destinatie

DI

K,K,K,K

0 K K K K

PC

N N N N 0
R R R R K

15

Adresa sursa

CS
DS

0 J J J J
M M M M 0

M,M,M,M

SS
ES

Adresa pe 20 de biti

S S S S J

Adresa pe 20 de biti

N,N,N,N

Figura 1.5. Calculul adresei de memorie pentru instruciuni pe iruri de date

Cele patru registre de segment ndeplinesc funcii de adresare diferite:


n funcie de tipul accesului la memorie, cod, date, stiv i extern , calculul
adresei folosete registrul de segment asociat. Astfel la o extragere de
instruciune, numrtorul de program, PC, este adunat cu coninutul registrului
de segment de cod, CS. La orice instruciune de lucru cu stiva, de tip Push, Pop,
Call sau Return, adresa de memorie se calculeaz adunnd coninutul pointerului de stiv, SP, cu coninutul registrului de segment de stiv, SS. La
instruciunile pe iruri de date pentru calculul adreselor surs i destinaie sunt
utilizate registrele index SI i DI mpreun cu registrele de segment DS i ES,
figura 1.5. Observm c pentru aceste instruciuni este necesar ca irurile surs
i destinaie s fie plasate fiecare n cadrul unui singur spaiu de adresare de 64
koctei, nu neaprat acelai. Instruciunile care acceseaz date calculeaz adresa
prin adunarea adresei efective cu coninutul registrelor de segment DS sau SS.
5

Dm n tabelul 1.1 o prezentare sintetic a modurilor de calculare a adresei de


memorie.
Tabelul 1.1. Calculul adreselor de memorie
Referina
de memorie

Registrul
de segment

DS
(CS, SS, ES)1

Registrul Registrul Deplasament pe 16 Deplasament pe 8


Fr
baz
index
bii, fr semn
bii, semn extern deplasament

DS
SS
(CS, DS, ES)1

BP

SS
DS
ES
CS

SP

PC

SI
DI
SI
DI

SI
DI

SI
DI

CS
DS

PC
DX

BX
Date

Stiv
iruri
Extragere
instruciune
Salt
Date I/O

Note: 1. Depirea segmentului permite nlocuirea registrelor de segment DS sau SS cu


unul din celelalte registre.
2. semnific deplasamentele care pot fi utilizate la calculul adresei

Vom prezenta nti opiunile de adresare a datelor. Cea mai simpl


adresare este cea direct. n acest caz registrul DS este adunat cu un offset sau
deplasament pe 16 bii dat de doi octei din codul obiect al instruciunii. Dac se
folosesc registrele index SI sau DI, prin adunarea coninutului unuia din acestea
cu coninutul registrului DS se obine o adresare implicit. Prin adugarea
deplasamentului, de 16 sau 8 bii, obinem o adresare direct indexat. Dac
deplasamentul e pe 8 bii atunci cel mai semnificativ bit, semnul, se extinde pe
nc 8 bii, mai semnificativi, pentru a forma un deplasament pe 16 bii, de
exemplu:
Deplasament:
Semn extins:
Deplasament:
Semn extins:

1111 1111

0000 0000

1010
1010
0101
0101
6

1101
1101
1010
1010

sau

Adresa mai poate fi calculat i prin utilizarea unui registru-baz


obinndu-se o adresare relativ. Pentru adresarea relativ a datelor se pot
utiliza dou registre de baz, BX i BP, adresele gsindu-se n segmentul DS,
pentru date, i, respectiv, n segmentul SS, pentru stiv. n primul fel de
adresare relativ cu baz a datelor, coninutul registrului BX este adunat la
adresa efectiv calculat n unul din modurile exemplificate mai sus. Putem
avea deci trei feluri de adresri relative: directe, implicite sau directe indexate.
n al doilea fel de adresare, calculul adresei se face adunnd la adresa efectiv
coninutul registrului de segment SS.
n legtur cu utilizarea registrelor generale ca registre de baz atragem
aici atenia asupra unui mod de adresare a dispozitivelor de I/O prin intermediul
registrului DX. n acest mod de adresare coninutul registrului DX este plasat pe
magistrala de adrese fr a fi adunat cu vreun registru de segment. Acesta este
singurul mod de adresare n care coninutul unui registru este scos direct pe
magistral ca adres fr a fi n prealabil prelucrat n logica de segmentare.
Toate instruciunile de salt condiionat utilizeaz adresarea relativ la
programe, cu registru de baz PC, permindu-se astfel generarea unui cod
relocabil. Deplasamentul pe 8 bii reprezint un numr binar cu semn cuprins n
gama (128, +127).
Pentru instruciunile de salt necondiionat i de apel sunt folosite trei
moduri de adresare: adresare relativ la program, registru de baz PC, cu
deplasament pe 8 sau 16 bii; adresare direct; adresare indirect. n adresarea
indirect se utilizeaz una din formele de adresare descrise mai sus pentru a citi
din memorie o nou adres de memorie. Exist dou opiuni de adresare
indirect: una n care cuvntul de 16 bii citit din memorie e ncrcat n PC i
instruciunea de salt sau apel adreseaz o locaie de memorie din cadrul
segmentului CS curent; cealalt n care se citesc dou cuvinte de 16 bii pentru a
fi ncrcate n PC, respectiv CS i care permite adresarea oricrei locaii din
spaiul de memorie al microprocesorului.
n figura 1.6 dm structura registrului de stare al microprocesorului
8086 coninnd indicatorii de condiii.
Indicatorul Transport, C sau CF, este inversat indicnd de fapt un
mprumut: dup o scdere, realizat de procesor n complement fa de 2, acest
bit va fi pus pe "1" dac nu a existat transport la bitul cel mai semnificativ i pus
pe "0" dac a existat un transport.
Indicatorul Paritate, P sau PF, este pus pe "1" dac rezultatul conine un
numr par de "1" i pe "0" dac rezultatul operaiei are un numr impar de "1"uri.
Indicatorul Zero, Z sau ZF, este standard fiind pus pe "1" dac
rezultatul operaiei e zero i pe "0" dac rezultatul nu este zero.
7

Indicatorul Semn, S sau SF, este pus pe "1" dac rezultatul unei operaii
este negativ avnd bitul cel mai semnificativ "1" i pus pe "0" dac rezultatul
este pozitiv.
Indicatorul Direcie, D sau DF, determin dac operaiile pe iruri vor
incrementa sau decrementa registrele index. Dac Direcie este "1" atunci
coninuturile registrelor SI i DI vor fi decrementate, irurile fiind accesate
ncepnd cu adresele cele mai mari. Dac indicatorul este "0" coninutul
registrelor SI i DI va fi incrementat, irurile fiind accesate ncepnd cu adresele
cele mai mici.
Indicatorul Validare/Invalidare ntrerupere, I sau IF, trebuie s fie "1"
pentru a valida ntreruperile i "0" pentru a le invalida (cu excepia NMI).
Indicatorul Derut, T sau TF, face ca microprocesorul 8086 s intre n
modul de lucru "pas-cu-pas" i este strns legat de sistemul de ntreruperi (vezi
1.4.5.1 i 2.3.6).
Indicatorul Depire, O sau OF este, de asemenea, legat de sistemul de
ntreruperi i de execuia instruciunii INTO.
Indicatorul Transport Auxiliar, A sau AF indic, dup o operaie, un
transport din bitul 3 n 4.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SP

- - - - O D I T S Z - A - P - C

Bitul
Registrul de stare
Biti rezervati, normal pe 0
Transport
Paritate
Transport auxiliar
Zero
Semn
Deruta
Validare/invalidare Intrerupere
Directie
Depasire

Figura 1.6. Registrul de stare

1.2.

CONEXIUNILE EXTERNE

Microprocesoarele 8086 i 8088 sunt fabricate n capsule DIL cu 40 de


conexiuni externe. Aceste conexiuni sunt indicate n figurile 1.7 i 1.8. Vom
descrie n continuare semnificaiile lor.

GND

40

VCC

GND

40

VCC

AD14

39

AD15

AD14

39

AD15

AD13

38

A16/S3

AD13

38

A16/S3

AD12

37

A17/S4

AD12

37

A17/S4

AD11

36

A18/S5

AD11

36

A18/S5

AD10

35

AD10

35

AD 9

34

AD 9

34

AD 8

33

AD 8

33

AD 7

32

A19/S6
___
BHE/S7
___
MN/MX
__
RD

AD 7

32

AD 6

10

31

HOLD

AD 6

10

AD 5

11

30

AD 5

11

AD 4

12

29

AD 4

12

29

AD 3

13

28

AD 3

13

28

AD 2

14

27

AD 2

14

27

AD 1

15

26

HLDA
__
WR
__
M/IO
_
DT/R
___
DEN

AD 1

15

26

A19/S6
___
BHE/S7
___
MN/MX
__
RD
__ ___
RQ/GT0
__ ___
RQ/GT1
____
LOCK
__
S2
__
S1
__
S0

AD 0

16

25

AD 0

16

25

QS0

NMI

17

24

NMI

17

24

INTR

18

23

ALE
___
INTA
____
TEST

INTR

18

23

QS1
____
TEST

CLK

19

22

READY

CLK

19

22

READY

GND

20

21

RESET

GND

20

21

RESET

8086
CPU

8086
CPU

MOD MAXIM

MOD MINIM

Figura 1.7. Conexiunile externe ale microprocesorului 8086

31
30

GND

40

VCC

A15

A14

39

A15

38

A16/S3

A13

38

A16/S3

37

A17/S4

A12

37

A17/S4

A11

36

A18/S5

A11

36

A18/S5

A10

35

A10

35

A19/S6

A9

34

A9

34

A8

33

A8

33

AD 7

32

A19/S6
___
SS0
___
MN/MX
__
RD

AD 7

32

AD 6

10

31

HOLD

AD 6

10

AD 5

11

30

AD 5

11

AD 4

12

29

AD 4

12

29

AD 3

13

28

AD 3

13

28

AD 2

14

27

AD 2

14

27

AD 1

15

26

HLDA
__
WR
__
IO / M
_
DT/R
___
DEN

AD 1

15

26

HIGH
___
MN/MX
__
RD
__ ___
RQ/GT0
__ ___
RQ/GT1
______
LOCK
__
S2
__
S1
__
S0

AD 0

16

25

AD 0

16

25

QS0

NMI

17

24

NMI

17

24

INTR

18

23

ALE
___
INTA
____
TEST

INTR

18

23

QS1
____
TEST

CLK

19

22

READY

CLK

19

22

READY

GND

20

21

RESET

GND

20

21

RESET

GND

40

VCC

A14

39

A13

A12

8088
CPU

8088
CPU

31
30

MOD MAXIM

MOD MINIM

Figura 1.8. Conexiunile externe ale microprocesorului 8088

1.2.1.

CONEXIUNILE EXTERNE ALE MICROPROCESORULUI


8086

1.2.1.1. Semnalele comune modurilor de lucru minim i maxim


AD15AD0, Address/Data Bus, magistrala de adrese/date, intrri/ieiri
3-stri active pe "1". Pe aceste linii sunt multiplexate n timp adresele de
memorie (cei mai puin semnificativi 16 bii) sau de I/O, n starea T1, i
10

magistrala de date, n strile T2, T3, TW, T4 1 . Multiplexarea magistralelor a


fost impus de necesitatea de a mpacheta microprocesorul ntr-o capsul de 40
de conexiuni. AD0, ca adres A0, are pentru selecia octetului de date mai puin
semnificativ, D7D0, aceeai funcie ca i semnalul BHE , descris mai jos;
pentru octetul mai semnificativ, D15D8, A0 este "0" n timpul strii T1, la
transferarea unui octet de date pe poriunea mai puin semnificativ a
magistralei, n operaii cu memoria sau cu dispozitivele de I/O. AD15AD0 sunt
trecute n starea a treia, de impedan nalt, n timpul operaiilor de achitare a
ntreruperii i a cererii de preluare a magistralei.
A19/S6A16/S3, Address/Status, adrese/stri, ieiri 3-stri. n timpul
strii T1 reprezint cei mai semnificativi bii de adres n operaiile cu memoria;
n operaiile de I/O aceste semnale sunt "0". Pentru ambele tipuri de operaii, pe
timpul strilor T2, T3, TW i T4, la aceste ieiri se gsete o parte din starea
microprocesorului: S6=0, indicnd c 8086 acceseaz magistrala, S5=I,
Validare/Invalidare ntrerupere, actualizat la nceputul fiecrei perioade a
ceasului CLK, iar S4 i S3 preciznd ce registru de relocare, DS, CS, SS sau ES,
va fi utilizat n acel moment pentru accesarea datelor. Semnificaia biilor de
stare S4 i S3 este urmtoarea:
A17/S4

A16/S3

0
0
1

0
1
0

Semnificaie

Date externe (relativ la segmentul din ES)


Stiv (relativ la segmentul din SS)
Cod sau nimic (relativ la segmentul din CS sau
o valoare n lips "0")
Date (relativ la segmentul din DS)

Informaia de stare este necesar n aciunile de diagnosticare a


structurilor realizate n jurul procesorului 8086. S4 i S3 mai pot fi utilizai
pentru selecia bancurilor de memorie asociate fiecare cte unui registru de
segment. Aceast tehnic permite partajarea memoriei n funcie de segment n
vederea expandrii ei peste spaiul de adresare direct de 1 Moctet. De
asemenea, n acest fel, se asigur o posibilitate de protecie n cazul operaiilor
eronate de scriere prin suprapunere n dou segmente i distrugerea informaiei
n unul dintre segmente. Conexiunile A19/S6A16/S3 sunt trecute n starea a
treia n timpul operaiei de achitare a unei cereri de preluare a magistralei
microprocesorului.
BHE /S7, Bus High Enable/Status, validare octet mai semnificativ/stare.
Ieire 3-stri. n timpul strii T1 ieirea BHE are funcia de a selecta transferul
datelor pe poriunea mai semnificativ a magistralei de date, biii D15D8, fiind
"0" n T1 timpul ciclilor de citire, scriere i ntrerupere. BHE poate fi utilizat la
selecia dispozitivelor de I/O pe 8 bii conectate pe poriunea mai semnificativ
1

Descrierea strilor T este dat n 1.4.1

11

a magistralei de date. Bitul de stare S7 este validat n timpul strilor T2, T3 i


T4. Conexiunea este trecut n starea a treia n timpul unei operaii de preluare a
magistralei.
MN / MX , Minimum/Maximum, comanda modului de lucru
minim/maxim. Intrare. Dac MN / MX este conectat la "0" microprocesorul
trateaz conexiunile 2431 n modul maxim, pentru care un circuit specializat
pentru comanda magistralei, 8288, interpreteaz biii de stare S2 , S1 i S0
pentru a genera semnale de comand compatibile cu standardul de interfa
Multibus. Pentru MN / MX conectat la +5V, modul minim, 8086 genereaz
singur, la conexiunile 2431, semnalele de comand. n 1.4.2 i 1.4.3 se dau
dou exemple de utilizare a procesorului 8086 n modurile minim i maxim.
RD , Read, citire. Ieire 3-stri activ pe "0". Comand de citire
indicnd c procesorul efectueaz un ciclu de citire memorie sau I/O, funcie de
starea conexiunii S2 ( M / IO ). RD este activat pe "0" n timpul strilor T2, T3
i TW ale oricrui ciclu de citire, dup trecerea n starea a treia a magistralei
locale a microprocesorului. Conexiunea este trecut n starea de impedan
nalt n timpul unei operaii de preluare a magistralei.
READY, gata. Intrare activ pe "1". Reprezint, n timpul unei operaii
de scriere sau citire, un semnal de achitare din partea memoriei sau
dispozitivului de I/O adresat, certificnd validitatea transferului de date cu
microprocesorul. Semnalul de achitare emis de memorie sau de I/O trebuie s
fie sincronizat pentru a putea fi utilizat n mod corect de procesor prin
satisfacerea timpilor de set-up i hold. Aceast sincronizare se face cu ajutorul
unui alt circuit specializat necesar n sistemele cu 8086: generatorul de ceas
8284.
INTR, Interrupt Request, cerere ntrerupere. Intrare activ pe nivel "1".
Procesorul eantioneaz aceast intrare sincronizat intern n ultimul ciclu de
ceas al fiecrei instruciuni, pentru a intra, dac INTR=1, ntr-o operaie de
achitare a ntreruperii. La achitarea ntreruperii se va apela o subrutin pe baza
unei tabele de vectori localizate n memoria sistemului. ntreruperea poate fi
mascat intern prin program punnd pe "0" bitul de validare a ntreruperii.
TEST , intrare activ pe "0". Aceast intrare, sincronizat intern cu
frontul pozitiv al fiecrui impuls de ceas CLK, este examinat de instruciunea
WAIT: dac intrarea este "0", microprocesorul i continu execuia, dac este
"1", va atepta intrnd n aa-numita stare inactiv, TI, executat n general de
UIM atunci cnd nu poate s execute un ciclu de magistral (vezi 1.4.1).
NMI, Non-Maskable Interrupt, ntrerupere nemascabil. Intrare activ
pe front pozitiv producnd la sfritul instruciunii n curs o ntrerupere de tipul
2 (vezi 1.4.5.1). Achitarea acestui tip de ntrerupere conduce la apelarea unei
subrutine pornind de la o tabel de vectori aflat n memorie. Intrarea este
sincronizat intern i nu poate fi mascat prin program.

12

RESET, iniializare. Intrare activ pe "1". Semnalul aplicat la aceast


conexiune este sincronizat intern i, dac este activ cel puin patru perioade de
ceas, conduce la terminarea activitii curente a microprocesorului i
iniializarea execuiei dup revenirea lui pe "0".
CLK, Clock, ceas. Intrare ce asigur funcionarea sincron a
microprocesorului i a controlorului de magistral. Factorul de umplere al
ceasului este 33%.

1.2.1.2. Semnalele specifice modului de lucru minim


Aa cum am menionat n 1.1, una dintre caracteristicile cele mai
interesante ale microprocesoarelor 8086/8088 este i posibilitatea de a selecta
configuraia de baz a mainii, modul de lucru cel mai potrivit aplicaiei, prin
conectarea la VCC sau GND a intrrii MN / MX .
n modul minim, 8086 permite realizarea de uniti centrale mai
restrnse ca volum, satisfcnd zona aplicaiilor pe 16 bii mici i medii. n
acest mod de lucru procesorul i menine capacitatea de adresare a memoriei de
1M, a I/O de 64k, precum i magistrala de 16 bii, genernd conexiunile 2431
direct, fr ajutorul unui circuit de comand specializat. Sunt toate semnalele
necesare manipulrii magistralelor, DT / R , DEN , ALE, M / IO , semnalele de
comand pentru operaiile de citire, scriere, achitarea ntreruperii, RD , WR ,
INTA , precum i semnalele HOLD, HLDA necesare operaiilor simple de
transfer cu acces direct implementate cu ajutorul controloarelor DMA obinuite,
de exemplu 8257 (vezi i [9]).
n continuare, vom descrie, pe scurt, semnificaia conexiunilor 2431
ale circuitului 8086 n modul de lucru minim.
M / IO , Memory/Input-Output, memorie/intrare-ieire. Ieire 3-stri
utilizat pentru a distinge accesele la memorie, M / IO =1, de cele la
dispozitivele de I/O, M / IO =0. Ieirea este validat n starea T4 precedent
unui ciclu de magistral rmnnd activ pn la sfritul strii T4 a ciclului
curent. Ieirea, echivalent cu S2 n modul maxim, este trecut n starea a treia
n ciclii de achitare a cererii de preluare a magistralei microprocesorului.
WR , Write, scriere. Ieire 3-stri activ pe "0" ce indic faptul c
procesorul execut un ciclu de scriere a memoriei sau a I/O. Ieirea este activ
n strile T2, T3 i TW, fiind trecut n starea de impedan nalt n ciclii de
achitare a cererii de preluare a magistralei microprocesorului.
INTA , Interrupt Aknowledge, achitare ntrerupere. Ieire activ pe "0"
utilizat pentru generarea unui semnal de eantionare a citirii n ciclii de
achitare a ntreruperii. Ieirea INTA este activ n timpul strilor T2, T3 i TW
ale fiecrui ciclu de ntrerupere.

13

ALE, Address Latch Enable, validarea latch-urilor de adrese. Ieire


activ pe "1" utilizat pentru memorarea adreselor generate de microprocesor pe
magistrala multiplexat local n latch-urile de adrese ale sistemului.
DT / R , Data Transmit/Receive, trasmisie/recepie date. Ieire utilizat
pentru comanda direciei transceiver-elor de date: transmisie pentru DT / R =1,
recepie pentru DT / R =0, sensul fiind raportat la microprocesor. Ieirea este
trecut n starea a treia n timpul ciclilor de achitare a cererii de preluare a
magistralei.

DEN , Data Enable, validare date. Ieire 3-stri activ pe "0" folosit
pentru validarea transceiver-elor de date. Este "0" n timpul operaiilor cu
memoria i cu dispozitivele de I/O precum i n timpul ciclilor de achitare
ntrerupere ( INTA ), pentru citiri (i INTA ) de la mijlocul lui T2 la mijlocul lui
T4, iar pentru scrieri de la nceputul lui T2 la mijlocul lui T4. Ieirea este trecut
n starea de impedan mare n timpul ciclilor de achitare a unei cereri de
preluare a magistralei.
HOLD, cerere de preluare a magistralei microprocesorului. Intrare

activ pe "1".
HLDA, achitare a cererii de preluare a magistralei. Ieire activ pe "1".

Dup recepionarea unei cereri HOLD microprocesorul va activa, la


mijlocul strii T1, semnalul de achitare HLDA, trecnd n acelai timp n starea
a treia magistrala local (AD15AD0, A19/S6A16/S3) i ieirile de comand
( RD , BHE /S7, M / IO , DT / R , WR , DEN ). La terminarea operaiei de
transfer direct dispozitivul care a activat semnalul HOLD l va dezactiva
trecndu-l pe "0", dup care procesorul va dezactiva la rndul lui semnalul de
achitare HLDA. Magistrala local i ieirile de comand vor fi activate cnd
microprocesorul va avea nevoie s execute un ciclu de magistral. Menionm
c intrarea HOLD nu este asincron i c, pentru asigurarea timpului de set-up,
este necesar sincronizarea extern.

1.2.1.3. Semnalele specifice modului de lucru maxim


n acest mod de lucru, obinut prin legarea conexiunii MN / MX la
GND, 8086 permite implementarea configuraiilor multiprocesor i/sau cuplarea
procesoarelor pentru extinderea setului de instruciuni, a coprocesoarelor. n
modul maxim este necesar folosirea controlorului de magistral 8288 pentru
ca, prin redefinirea conexiunilor 2431, s se obin aceast cretere a
performanelor.
14

RQ / GT1 , RQ / GT0 , Request/Grant Bus Access Control, comenzi de

cerere/achitare a accesului la magistrala microprocesorului. Intrri/ieiri active


pe "0" folosite de alte dispozitive de tip master, aflate pe magistrala local,
pentru a fora microprocesorul s elibereze aceast magistral la sfritul
ciclului n curs. Aceste conexiuni sunt prevzute cu rezistene interne legate la
VCC, ceea ce permite s fie lsate n gol. RQ / GT0 este prioritar fa de
RQ / GT1 .
LOCK , blocare. Ieire 3-stri activ pe "0". Indic celorlalte dispozitive
de tip master aflate pe magistrala local a microprocesorului, c nu pot prelua
aceast magistral atta timp ct LOCK =0. Ieirea este activat de o
instruciune cu prefix LOCK rmnnd activ nc o perioad de ceas dup
execuia acestei instruciuni cu prefix. Ieirea este trecut n starea a treia pe
timpul ciclurilor de achitare a unei cereri de preluare a magistralei.

S2 S0 , Status, stare. Ieiri 3-stri active n timpul strilor T4, T1 i T2


i inactive, n starea pasiv (1,1,1) n timpul strilor T3 i TW dac semnalul de
la conexiunea READY este "1". Starea S2 S0 este folosit de controlorul 8288
pentru a genera semnalele de comand necesare n operaiile de acces la
memorie sau la I/O. Orice schimbare a acestor semnale n timpul strii T4
indic nceputul unui ciclu de magistral, revenirea n starea pasiv n T3 sau
TW indicnd sfritul ciclului de magistral. Semnificaia ieirilor S2 S0 este
urmtoarea:
S2

S1

S0

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Semnificaie

Achitare ntrerupere
Citire port I/O
Scriere port I/O
Oprire (Halt)
Citire instruciune
Citire memorie
Scriere memorie
Stare pasiv (nici-un ciclu de magistral)

Conexiunile S2 S0 sunt trecute n starea a treia n timpul ciclurilor de


achitare a unei cereri de preluare a magistralei.
QS1, QS0, Queue Status, starea cozii de instruciuni. Ieiri validate n

ciclul de ceas urmtor unei operaii cu stiva. Aceste ieiri permit urmrirea din
exterior a execuiei instruciunilor avnd, atunci cnd sunt validate, urmtoarea
semnificaie:

15

QS1

QS0

0
0

0
1

Nici o operaie
Extragerea primului octet al codului-operaie

1
1

0
1

Coada goal (nici un octet n coad)


Extragerea octetului urmtor al codului-operaie

1.2.2.

Semnificaie

CONEXIUNILE EXTERNE ALE MICROPROCESORULUI


8088

Precizm n acest subcapitol numai conexiunile a cror semnificaie


difer de cea a microprocesorului 8086, prezentat n 1.3.1.

1.2.2.1. Semnalele comune modurilor de lucru minim i maxim


AD7AD0, Address/Data Bus, magistral de adrese/date. Difer de
magistrala multiplexat a procesorului 8086 numai prin mrimea de 8 bii fa
de 16.
A15A8, Address Bus, magistral de adrese. Ieiri 3-stri reprezentnd
biii 815 ai adresei. Spre deosebire de AD15AD8, aceti bii nu mai sunt
multiplexai nefiind necesar memorarea lor n latch-uri cu ajutorul semnalului
ALE. A15A8 rmn valizi pe durata ntregului ciclu de magistral, strile
T1T4.

Conexiunile MN / MX , RD , READY, INTR, TEST , NMI, RESET, CLK


au aceleai semnificaii cu cele ale microprocesorului 8086.

1.2.2.2. Semnalele specifice modului de lucru minim


IO / M , Input-Output/Memory, intrare-ieire/memorie. Ieire 3-stri
semnificnd pentru IO / M =1 un ciclu de I/O iar pentru IO / M =0 un ciclu de
memorie. Activarea acestei ieiri respect aceleai relaii de timp ca i ieirea
M / IO a lui 8086.

SS0 , S0 Status, starea S0. Ieire 3-stri echivalent cu bitul de stare S0


din modul maxim. mpreun cu IO / M i DT / R , ultima conexiune avnd
aceeai semnificaie ca i la 8086, codific starea ciclului de magistral n curs:
16

IO / M

DT / R

SS0

Semnificaie

1
1
1
1
0
0
0
0

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Achitare ntrerupere
Citire port I/O
Scriere port I/O
Oprire (Halt)
Citire instruciune
Citire memorie
Scriere memorie
Stare pasiv

Celelalte conexiuni specifice modului minim de lucru al


microprocesorului 8088, WR , INTA , ALE, DEN , HOLD i HLDA, rmn cu
aceleai funcii ca la 8086.

1.2.2.3. Semnalele specifice modului de lucru maxim


Semnalele specifice modului de lucru maxim al microprocesorului
8088, S2 , S1 , S0 , RQ / GT1 , RQ / GT0 , LOCK , QS1 i QS0 sunt aceleai cu
ale microprocesorului 8086 n modul maxim. Conexiunea SS0 este "1" n acest
mod de lucru.

1.3.

FUNCIONAREA MICROPROCESORULUI 8086

Vom descrie n cele ce urmeaz funcionarea microprocesorului 8086


din punct de vedere al utilizrii lui hardware.

1.3.1.

CICLII DE MAGISTRAL AI MICROPROCESORULUI


8086. PREZENTARE GENERAL

8086 comunic cu exteriorul prin intermediul unei magistrale de


comenzi i a unei magistrale multiplexate n timp de adrese, stri i date. Aa
cum am menionat, tehnica multiplexrii n timp a permis, atunci cnd a fost
dezvoltat circuitul, utilizarea cea mai eficient a celor 40 de conexiuni
exterioare ale capsulei n care s-a mpachetat microprocesorul. Aceast
magistral multiplexat, denumit i magistral local, poate fi amplificat
direct i condus n sistem, latch-area, memorarea adresei fcndu-se distribuit
n modulele de memorie sau de I/O. O alt abordare este cea a demultiplexrii
unice a adreselor i datelor lng procesor, cu ajutorul unui singur grup de
17

latch-uri pentru adrese i a transceiver 2 -elor pentru date. Microprocesorul


extrage cod sau transfer date executnd aa numiii cicli de magistral. Un
ciclu de magistral poate fi definit ca un eveniment asincron n care nti se
valideaz o adres, a unei locaii de memorie sau a unui dispozitiv periferic,
apoi se genereaz fie un semnal de comand a citirii, pentru capturarea datelor
de la dispozitivul adresat, fie un semnal de comand a scrierii asociat cu
emiterea datelor ce trebuie transmise dispozitivului adresat. Observm
ntrebuinarea termenului ciclu de magistral n locul mai vechiului termen ciclu
main folosit n descrierea funcionrii unor procesoare pe 8 bii ca 8080 sau
Z80. Ciclii de magistral trebuie nelei ca grupuri de perioade de ceas
reprezentnd activitatea extern a microprocesorului fr a avea o legtur
explicit i ordonat cu execuia curent a unei instruciuni aa cum aveau ciclii
main (vezi de exemplu ciclii M1, M2, M3 ai unui ciclu-instruciune Z80 [9]).
n figura 1.9 este nfiat diagrama de baz reprezentnd ciclii de citire i
scriere pe care i execut microprocesorul pe magistrala sa de comunicaie cu
exteriorul. Aceast diagram va fi detaliat n capitolele urmtoare pentru
modurile de lucru minim i maxim.
Orice ciclu de magistral, TCY, are cel puin patru perioade de ceas,
numite stri T. n timpul primei stri T, T1, procesorul valideaz adresa A19A0
pe magistrala multiplexat. Tot acum se genereaz semnalul ALE, de ctre 8086
sau de controlorul de magistral 8288, n funcie de modul de lucru. Acest
semnal servete memorrii adresei n circuite de tip latch, de exemplu 74LS373
sau 8282, pe frontul negativ al acestui impuls garantndu-se validitatea adresei.
A doua stare, T2, este destinat schimbrii direciei magistralei,
microprocesorul invalidnd adresa i, pentru un ciclu de citire, trecnd
magistrala, cei mai puin semnificativi 16 bii, n starea a treia, iar pentru un
ciclu de scriere validnd datele. Transceiver-ele de date sunt validate, cu
ajutorul semnalului DEN, n T1 sau T2, n funcie de configuraia sistemului i
direcia transferului. Tot n T2 sunt generate i comenzile de citire, RD ,
scriere, WR sau achitare ntrerupere, INTA , precum i starea S7S3 n locul
biilor de adres A19A16 i a semnalului BHE .
n T3, pentru un ciclu de scriere, microprocesorul menine biii de stare
i datele ce trebuie transmise, iar n cazul unui ciclu de citire 8086 eantioneaz
datele pstrnd RD =0. Dac memoria sau dispozitivul de I/O selectat nu sunt
capabile s asigure transferul datelor pn n T4 ele trebuie s avertizeze de
acest lucru procesorul poziionnd, nainte de T3, semnalul READY pe "0". n
acest fel ciclul de magistral se prelungete prin introducerea de ctre
microprocesor, ntre T3 i T4, a unor stri de ateptare TW al cror numr
depinde de timpul necesar dispozitivului adresat pentru a asigura transferul.
Activitatea procesorului pe magistral n timpul unei stri TW este aceeai ca n
2

Circuite amplificatoare bidirecionale cum sunt, de exemplu, 8286 sau 74LS245

18

T3. Ieirea din strile TW se face la iniiativa dispozitivului, dup trecerea


timpului necesar asigurrii corectitudinii transferului de date, prin trecerea
semnalului READY pe "1".
Un ciclu de magistral se termin cu starea T4 prin dezactivarea
comenzilor i eliberarea magistralei locale.

T1

Citire

Scriere

(4+NWAIT)=TCY

(4+NWAIT)=TCY

T2

T3 TWAIT T4

T1

T2

T3 TWAIT T4

CLK
Inactive in starea
precedenta starii T4

ALE
__ __
S2S0
___
BHE/
A19A16

Adrese/
Stari

___
BHE/
A19A16

S7S3

S7S3

Rezervare a magistralei
pentru intrare date

Adrese/
Date

D15D0
valide

A15A0

A15A0

Iesire date
D15D0

__ ____
RD,INTA
READY

READY
__
DT/R

WAIT

READY
WAIT

Timp acces memorie

____
DEN
___
WR
Figura 1.9. Ciclii de magistral ai microprocesorului 8086. Diagrama de baz

19

Ciclul de
magistrala 1
CLK
UE

Ciclul de
magistrala 2

Ciclul de
magistrala 3

T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4
UE solicita un
octet de cod
obiect. Stiva fiind
goala UIM
executa un ciclu
de magistrala

UE calculeaza adresa operandului in


7 perioade de ceas. La sfarsitul celei
de-a saptea perioade UE solicita un
acces la magistrala.

UE asteapta ca
datele solicitate
sa fie introduse in
stiva de UIM

UIM extrage 4 octeti de cod si ii


octeti de cod
stocheaza in stiva. Stiva mai are inca
obiect pe care UE doi octeti liberi.
ii extrage astfel
incat stiva este
golita imediat

UIM extrage date


de la locatia
adresata de UE

UIM UIM extrage 2

Ciclul de
magistrala 5

CLK
UE

Ciclul de
magistrala 4

Stari inactive

T1 T2 T3 T4 TI TI TI TI TI TI TI TI TI TI TI TI
UE executa o operatie aritmetica in 9
perioade de ceas

UIM UIM extrage inca UIM este inactiva


doi octeti de cod
si ii introduce in
stiva, Stiva este la
sfarsitul acestui
ciclu plina.

UE termina executia instructiunii si


extrage din stiva microprocesorului
un nou octet de cod pentru a incepe
executia unei noi instructiuni
UIM ramane inactiva deoarece UE
a extras din stiva numai un singur
octet.

Figura 1.10. Un exemplu de funcionare suprapus a celor dou blocuri funcionale ale
microprocesorului 8086

ntre ciclii de magistral, executai de unitatea central numai atunci


cnd trebuie transferate instruciuni sau operanzi la memorie sau dispozitivele
de I/O, pot aprea aa numitele stri inactive, TI, n timpul crora procesorul
20

execut operaii interne. Dac ciclul precedent a fost o scriere, 8086 va menine
n timpul strii TI informaia de stare S7S3 din ciclul de magistral precedent i
datele anterior emise pe magistrala multiplexat. Atunci cnd operaia
precedent a fost o citire, n afara meninerii strii S7S3, microprocesorul va
lsa n TI magistrala de date n starea de impedan nalt.
Datorit modului de lucru suprapus al celor dou blocuri funcionale,
UE i UIM, activitatea exterioar a microprocesorului nu va aprea, ca n cazul
mainilor din generaiile anterioare, de exemplu Z80, ca o succesiune de
operaii de extragere a codului, de fetch-uri, i de transferuri corespunztoare de
date cu memoria sau dispozitivele de I/O. La 8086 extragerea codului i
transferurile de operanzi asociate unei instruciuni pot fi separate prin ciclii de
magistral executai de UIM n scopul umplerii stivei interne de 6 octei. De
asemenea, pot aprea desincronizri, ntrzieri, ntre citirea i nceputul
execuiei unei instruciuni. n figura 1.10, [4], se exemplific modul de lucru
suprapus al celor dou blocuri funcionale ale microprocesorului. Observm c
UE este activ n timpul execuiei instruciunilor i inactiv atunci cnd ateapt
codul obiect sau date pe care nu le poate obine dect prin intermediul unor cicli
de magistral executai de UIM. Activitatea UE se desfoar n secvene cu un
numr variabil de perioade de ceas, negrupate, aa cum am spus mai sus, n cicli
main de lungime fix. Pe de alt parte, UIM grupeaz perioadele de ceas n
cicli de magistral, dar numai cnd microprocesorul execut un transfer de cod
sau date cu exteriorul. n restul timpului UIM rmne inactiv.

1.3.2.

FUNCIONAREA MICROPROCESORULUI N MODUL


MINIM

Conectarea intrrii MN / MX a microprocesorului 8086 la +5V permite


selectarea semnificaiei funcionale a grupului de conexiuni externe 2431 ale
circuitului n vederea utilizrii lui n modul minim, pentru realizarea de
configuraii simple sau medii, cu o singur unitate central. n figura 1.11 este
prezentat o astfel de configuraie organizat n jurul lui 8086 funcionnd n
modul minim. Cu linie continu sunt desenate circuitele i semnalele necesare
pentru alctuirea unei structuri foarte simple. Cu linie punctat sunt indicate
circuitele i semnalele suplimentare necesare pentru implementarea unor
structuri de complexitate medie.
21

VCC

8284 A
Generator ceas
___
RES

CLK
READY
RESET

RDY
GND

8086
Generare stari
WAIT

___
MN/MX
__
M/IO
____
INTA
___
RD
___
WR
_
DT/R
____
DEN

VCC

ALE
AD0AD15

CLK
ADRESE/DATE
(magistrala multiplexata)

A16A19
____
BHE

Latch-uri
adrese sistem
(2 sau 3)

Adrese sistem

_
G
DIR

Transceiver-e
(optionale)
(2 )
_
G

GND

Necesare pentru
cresterea puterii de
comanda a
magistralei de date

A0
Date

___
___ ___
CSOH CSOL WE OD
2142 RAM (4)
(2)
(2)
1Kx8 1Kx8

__
CE

__
OE

2716-2 PROM (2)


(2)
(2)
2Kx8 2Kx8

___
CS

__
RD

___
WR

Dispozitiv de I/E

Figura 1.11. Microprocesorul 8086 n modul minim

n acest subcapitol vom interpreta diagramele de timp corespunztoare


operaiilor externe, de magistral, ale microprocesorului 8086 lucrnd n modul
minim. n analizele de timp care urmeaz ne vom referi la figura 1.12 unde sunt
date diagramele detaliate de catalog, pentru modul de lucru minim i la tabelele
1.2 i 1.3 cu valorile parametrilor asociai acestor diagrame [6]. n funcionarea
pe magistral a lui 8086 se pot pune n eviden, n modul minim ca i n modul
maxim, urmtoarele secvene de timp principale: adresarea, ciclul de citire,
ciclul de scriere, achitarea ntreruperii, introducerea strilor de ateptare,
preluarea magistralei.

1.3.2.1. Adresarea
Adresarea memoriei sau a dispozitivelor de I/O se face prin
demultiplexarea n timp a informaiilor de pe magistrala local a
microprocesorului, cu ajutorul semnalului ALE destinat memorrii adreselor n
latch-urile de adrese ale sistemului. n operaia de adresare vom analiza nti
raportul ntre adrese i ALE apoi ntrzierea adreselor pn la apariia lor pe
magistrala demultiplexat a sistemului.
22

Tabelul 1.2. Parametrii 8086 pentru modul minim. Cerine de timp


Parametru

Semnificaie

Valoare
minim

Valoare
maxim

TCLCL
TCLCH
TCHCL
TCH1CH2

Perioada ceasului CLK


Timpul ct CLK=0
Timpul ct CLK=1
Frontul cresctor al
ceasului CLK
Frontul descresctor al
ceasului CLK
Timpul de stabilizare, de
set-up, al datelor la citire
Timpul de meninere, de
hold, al datelor la citire
Timpul de set-up al
semnalului RDY la
intrarea n circuitul
8284A msurat fa de
frontul descresctor al lui
CLK
Timpul de hold al
semnalului RDY la
intrarea n 8284A
Timpul de set-up al
semnalului READY la
intrarea n 8086
Timpul de hold al
semnalului READY la
intrarea n 8086
Timpul necesar ca
intrarea READYs fie
considerat inactiv fa
de nceputul strii T3
Timpul de set-up al
semnalului HOLD
Timpul de set-up al
semnalelor INTR,
NMI, TEST

200ns
118ns
69ns

500ns

TCL2CL1
TDVCL
TCLDX
TR1VCL

TCLR1X
TRYHCH
TCHRYH
TRYLCL

THVCH
TINVCH

TILIH

TIHIL

10ns
10ns

Condiii de test
i observaii

Msurat ntre valorile 1,0V i


3,5V ale semnalului CLK
Msurat ntre valorile 3,5V i
1,0V ale semnalului CLK

30ns
10ns
35ns

Acest timp este necesar


pentru semnalul asincron
RDY pentru a garanta
recunoaterea lui n
urmtoarea perioada a lui
CLK

0ns
118ns
30ns
8ns

READY mai poate deveni


inactiv maximum 8ns n T3
transformnd aceast stare
ntr-o stare de ateptare TW

35ns
30ns

Frontul de cretere,
pozitiv, al semnalelor de
intrare (cu excepia lui
CLK)
Frontul descresctor,
negativ, al semnalelor de intrare
(exceptnd CLK)

23

20ns

Timp necesar pentru ca


aceste semnale asincrone s
fie recunoscute n urmtoarea
perioad a ceasului CLK
De la 0,8V la 2,0V

12ns

De la 2,0V la 0,8V

Tabelul 1.3. Parametrii 8086 pentru modul minim. Rspunsuri n timp


Parametru

TCLAV
TCLAX
TCLAZ
TLHLL
TCLLH
TCHLL
TLLAX
TCLDV
TCHDX
TWHDX
TCVCTV
TCHCTV
TCVCTX
TAZRL

TCLRL

Semnificaie

Valoare
minim

ntrzierea validrii adresei fa de


10ns
CLK
Timpul de meninere al adresei
10ns
ntrzierea pn la trecerea adreselor n TCLAX
starea a treia
Durata impulsului ALE
TCLCH
20ns
ntrzierea activrii semnalului ALE
ntrzierea dezactiv. semnalului ALE
Timpul de hold al adresei vs. ALE
TCHCL
10ns
ntrzierea validrii datelor vs. CLK
10ns
Timpul de hold al datelor vs. CLK
10ns
TCLCH
Timpul de hold al datelor dup WR
30ns
10ns
ntrzierea de activare a comenzilor
DEN , WR , INTA
10ns
ntrzierea de activare/dezactivare a
comenzii DT / R
ntrzierea la inactivarea comenzilor
10ns
DEN , WR , INTA
ntrzierea ntre momentul trecerii
0ns
adreselor n starea a treia i activarea
comenzii de citire RD
10ns
ntrzierea activrii comenzii RD

TCLRH ntrzierea la inactivarea comenzii RD


10ns
TRHAV ntrzierea ntre inactivarea RD i
TCLCL
45ns
activarea urmtoarei adrese
TCLHAV ntrzierea validrii semnalului HLDA
10ns
TRLRH Durata comenzii RD
2TCLCL
75ns
TWLWH Durata comenzii WR
2TCLCL
60ns
TAVAL ntrzierea ntre validarea adresei i
TCLCH
terminarea impulsului ALE
60ns
TOLOH Frontul cresctor al semnalelor de
ieire
TOHOL Frontul descresctor al semnalelor de
ieire

24

Valoare
maxim

Condiii de test
i observaii

110ns

Msurtorile au
fost fcute
adugndu- se la
ieirile corespunztoare ale
microprocesorului
CL=20100pF

80ns

80ns
85ns

110ns

110ns
110ns
110ns

165ns
150ns

160ns

20ns

De la 0,8V la 2,0V

12ns

De la 2,0V la 0,8V

T1

T2

T3

T4

VCH
CLK (Iesire 8284)

VCL

TW
TCHCL

TCHCTV

TCLCH

__
M/IO
TCLAV

___
BHE/S7,A19/S6A16/S3

TCLDV

___
BHE,A19A16
TCLLH TLHLL

TCHDX

S7S3

TCLAX

ALE
TAVAL

RDY (Intrare in 8284)

TCHLL

VIH

TR1VCL

VIL
TCLR1X
TRYLCL

TCHRYX

READY (Intrare in 8086)


TCLAV TAVAL

AD15AD0
Ciclu de citire
(WR,INTA="1")

___
RD

TLLAX
TCLAZ
TCLAX
AD15AD0

TRYHCH
TCLDX

TDVCL

DATA IN

TCLRL
TRLRH

_
DT/R
____
DEN

Figura 1.12. Diagrame de timp pentru modul minim

25

T1

T3

TW

T4

TCLCL

VCH
CLK (Iesire 8284)

T2

VCL
TCHCL

TCHCTV

TCH1CH2

TCL2CL1

TCLCH

__
M/IO
TCLAV

___
BHE/S7,A19/S6A16/S3

TCHDX

TCLDV

___
BHE,A19A16

TCLLH

TLHLL

S7S3

TCLAX
TCHLL

ALE

TAVAL
TCLAV TAVAL TCLAX
TCLDV TCLAX

Ciclu de scriere
___ ____
(RD,INTA,
_
DT/R="1" )

AD15AD0

TCHDX
DATE

AD15AD0
TCVCTV

TCVCTX

____
DEN
___
WR

TCVCTX
TWLWH
TWHDX

TCLAZ
TDVCL

AD15AD0
____
Ciclu INTA
__ ___
RD, WR ="1"
___
BHE="0"

_
DT/R

TCLDX

Tip
intrerupere
TCHCTV
TCHCTV
TCVCTV

____
INTA

TCVCTX

TCVCTV
__ ___ ____
RD, WR , INTA="1"
_
DT/R= nedeterminat
(Starea de HALT)

____
DEN
Adresa invalida

Starea de HALT

TCLAV

Figura 1.12. Continuare

Relaia de timp ntre adres i ALE este garantat de fabricantul


microprocesorului astfel nct capturarea unei adrese valide s se fac simplu
prin folosirea unor latch-uri ca 8282 sau 74LS373. Este bine totui s discutm
26

detaliat relaia de timp ntre adres i ALE ea fiind important n aprecierea


corectitudinii memorrii unei adrese valide de pe magistrala multiplexat a lui
8086. Se cunoate c latch-urile folosite n mod obinuit, ca 8282 sau 74LS373,
sunt transparente atunci cnd ALE=1 ele memornd, capturnd, datele de la
intrare, n cazul nostru o adres, pe frontul negativ al semnalului ALE. n acest
caz ne intereseaz starea liniilor de adres fa de momentul terminrii
impulsului ALE. O situaie defavorabil va surveni atunci cnd ntrzierea de
apariie a adreselor, TCLAV, este maxim i ALE se termin cel mai repede,
TCHLL fiind minim, zero. Rezult de aici c adresa ar fi garantat valid,
nainte de terminarea lui ALE, cu TCLCHminTCLAVmax= 118ns110ns= 8ns
ceea ce, dei ar asigura un timp de stabilizare, de set-up, suficient pentru latchurile menionate mai sus (0ns pentru 8282 i 5ns pentru 74LS373), nu constituie
o garanie de proiectare sigur. ntr-adevr, analiza de mai sus ignor un alt
parametru, cu adevrat important n relaia de timp adres/ALE i anume
TAVAL, timpul de garantare al unei adrese valide naintea terminrii
semnalului ALE. Acest timp este dat, conform tabelului 1.2, de ecuaia
TAVAL= TCLCH60ns i este prioritar fa de rezultatul obinut mai sus prin
luarea n considerare numai a relaiilor de timp independente ale semnalelor fa
de ceasul microprocesorului. nlocuind, obinem n situaia cea mai
defavorabil, pentru 8086 lucrnd la 5MHz, TAVAL= 118ns60ns= 58ns.
Timpul de meninere, de hold, al adresei dup frontul negativ al
semnalului ALE este dat de TLLAX= TCHCL10ns prioritar, de asemenea, fa
de valoarea obinut prin luarea n considerare a ntrzierilor TCHLL i TCLAX
fa de CLK. n situaia cea mai defavorabil fabricantul garanteaz un timp de
meninere minim TLLAXmin= TCHCLmin10ns= 69ns10ns= 59ns fa de o
valoare
minim
negativ
obinut
arificial
prin
TCHCLminTCHLLmax+TCLAXmin= 69ns85ns+10ns= 6ns. Semnificaia lui
TCLAXmin se refer la performana microprocesorului de a-i inactiva
magistrala n cazul n care nu este condiionat de un semnal ALE prea lent
datorat, de exemplu, ncrcrii capacitive mai mari a ieirii. Timpii TLLAX i
TCLAX definesc momentul comutrii, dup terminarea impulsului ALE, a
ntregii magistrale multiplexate, att pentru ciclii de citire ct i pentru cei de
scriere. n timpul operaiilor de citire, dup ALE, conexiunile AD150 vor fi
trecute n starea de impedan nalt iar, pentru operaiile de scriere, comutate
pe datele ce urmeaz a fi scrise. AD1916 comut din adrese n stri pentru
ambele tipuri de cicli. Durata impulsului ALE este garantat de relaia TLHLL=
TCLCH20ns, minimum 98ns, i nu de TCLCHTCLLH+TCHLL care, n
cazul cel mai defavorabil, ar fi condus la o valoare minim pentru ALE de
118ns80ns+0ns= 38ns.
O alt relaie de timp care ne intereseaz n faza de adresare este
ntrzierea adreselor demultiplexate, dup latch-uri, fa de adresele emise de
27

microprocesor pe magistrala local multiplexat. Utiliznd latch-uri ca 8282 sau


74LS373 adresa nu se va transmite dect dup ce ALE=1. Comparnd
ntrzierea maxim a emiterii adreselor, TCLAVmax= 110ns, cu ntrzierea
maxim a apariiei impulsului ALE, TCLLHmax=80ns, deducem c ntrzierea
maxim a apariiei adreselor pe magistrala demultiplexat de adrese a sistemului
este dat de TCLAVmax+tlatch unde tlatch este ntrzierea maxim de propagare
prin latch-uri (30ns pentru 8282, 18ns pentru 74LS373)

1.3.2.2. Ciclul de citire


Operaia de citire propriu-zis const din: (1) trecerea magistralei locale
AD15AD0 n starea a treia pentru a permite preluarea de ctre microprocesor a
datelor, (2) activarea comenzii de citire RD , (3) validarea transceiver-elor de
date, dac sunt prevzute, cu ajutorul comenzii DEN i (4) stabilirea direciei
acestora prin intermediul semnalului DT / R . Precizarea direciei de circulaie a
datelor n transceiver se face prin poziionarea DT / R =0, recepie-date, la

nceputul ciclului de magistral astfel nct acest semnal nu ridic probleme de


timp. Problema cea mai important, ca relaie de timp, la citirea datelor de ctre
microprocesor este ca acestea s fie validate, plasate, pe magistrala local
respectndu-se timpii de stabilizare, set-up, i meninere, hold, impui de 8086,
TDVCL respectiv TCLDX. Corectitudinea datelor depinde, pe de-o parte, de
selecia i ntrzierea n rspuns ale dispozitivului de memorie sau de I/O
adresat, iar pe de alt parte de validarea i ntrzierea transceiver-elor folosite n
sistem.
Activarea comenzii DEN asigur un timp suficient pentru ca
transceiver-ele s fie deschise circulaiei datelor spre magistrala local a
microprocesorului asigurndu-se timpul minim de stabilizare a datelor.
Valoarea minim a acestui timp pentru frecvena de 5MHz a ceasului e dat de
relaia TCLCL +TCHCLmin TCVCTVmax TDVCLmin= 200ns + 69ns 110ns
30ns = 129ns. Invalidarea datelor prin invalidarea tansceiver-ului asigur timpul
minim de meninere al datelor, TCLDXmin=10ns, deoarece ntrzierea minim la
dezactivarea comenzii DEN , fa de aceeai referin ca i TCLDX, este
TCVCTXmin=10ns i ntrzierea trecerii n starea a treia a transceiver-elor este
cel puin 0ns. De asemenea, important aici este i durata ntre momentul
invalidrii transceiver-elor, implicnd eliberarea magistralei locale a
microprocesorului, i momentul emiterii de ctre 8086 pe aceast magistral a
unei noi adrese. Aceast durat este pentru frecvena de 5MHz a ceasului de
minimum TCLCLTCVCTXmax+TCLAVmin= 200ns110ns+10ns= 100ns.
ntrzierea plasrii datelor pe magistral de ctre dispozitivul citit se
datoreaz nti seleciei circuitului, apoi comenzii efective de citire. De obicei,
28

selecia se face pe baza adreselor, ceea ce nu pune probleme de timp, adresarea


fcndu-se, aa cum am vzut, la nceputul ciclului de magistral. Rmne
ntrzierea datorat comenzii efective de citire RD . Timpul minim "oferit" de
microprocesor dispozitivului citit pentru a plasa datele pe magistrala local, cu
ajutorul comenzii RD , fr introducerea unor stri de ateptare TW, la
frecvena ceasului de 5MHz i asigurndu-se timpul minim de stabilizare este
dat de formula 2TCLCLTCLRLmaxTDVCLmin= 2200ns165ns30ns=
205ns. Acesta este timpul pe care l au la dispoziie datele pentru a fi "extrase",
"accesate", cu ajutorul comenzii RD din dispozitivul adresat i a parcurge
magistralele i circuitele interpuse pn la microprocesor. Introducerea strilor
de ateptare adaug la acest timp cte o perioad TCLCL pentru fiecare stare
TW introdus. Durata minim a impulsului de citire, parametru important
pentru dispozitivele de memorie sau I/O ce urmeaz a fi utilizate n sistem, este
garantat de relaia TRLRH= 2TCLCL75ns= 325ns prioritar fa de formula
2TCLCLTCLRL+TCLRH care ar conduce n cazul cel mai defavorabil la
2200ns165ns+10ns= 245ns. Timpul de meninere minim al datelor,
TCLDXmin=10ns, este asigurat i pe aceast cale datorit faptului c ntrzierea
minim a dezactivrii comenzii RD , fa de aceeai referin ca i TCLDX, este
TCLRHmin=10ns.
n sisteme configurate minimal, fr transceiver-e, dispozitivele de
memorie i/sau I/O sunt plasate direct pe magistrala local multiplexat a
microprocesorului. n aceast situaie nu mai este necesar folosirea semnalelor
DEN i DT / R , adresele i comanda efectiv de citire, RD , fiind suficiente.
Utilizarea corect n timp a magistralei locale este asigurat de garantarea
activrii semnalului RD cel puin odat cu trecerea magistralei locale n starea a
treia, TAZRLmin=0ns, i de asigurarea unui timp minim ntre dezactivarea lui
RD , i validarea unei adrese noi de ctre 8086, TRHAVmin= TCLCL45ns=
155ns.

1.3.2.3. Ciclul de scriere


Scrierea efectiv presupune generarea datelor, activarea comenzii de
scriere i comanda transceiver-elor. Dup cum se vede n figura 1.12, pe timpul
operaiei de scriere DT / R este meninut pe "1" ceea ce se asigur prin trecerea
pe "1" a acestui semnal la sfritul oricrui ciclu de magistral care implic
citire de date, aa cum am artat deja n 1.4.2.2. Deci comanda direciei
transceiver-elor, DT / R , vine n ciclul de scriere poziionat pe "1" din ciclul
sau ciclii precedeni, ea rmnnd nemodificat, pe transmisie, n timpul
operaiei de scriere. Astfel microprocesorul poate s activeze comanda de
29

validare a transceiver-elor, DEN , nc din starea T1, pe timpul operaiei de


adresare, fr s perturbe adresa emis pe magistrala local. Aceast validare
avansat este necesar pentru minimizarea ntrzierii datelor, momentul emiterii
efective a lor gsind transceiver-ele deschise. Comanda de scriere, WR , i
datele sunt activate cu acelai front negativ al ceasului CLK de la nceputul strii
T2. La nceputul scrierii apare o zon de incertitudine datorat ntrzierilor
diferite TCVCTV=10110ns pentru WR i TCLDV=10110ns pentru date, ea
fiind de maximum 100ns ntre cele dou evenimente, de exemplu dac
TCVCTV=10ns i TCLDV=110ns. Aceast incertitudine a relaiei ntre date i
comanda WR la nceputul comenzii de scriere impune proiectantului s
utilizeze n sistem dispozitive de memorie sau I/O care s captureze datele pe
frontul pozitiv al semnalului WR sau s imagineze diverse adaptri, circuite,
care s asigure preluarea de ctre dispozitive a datelor de scriere dup trecerea
perioadei de incertitudine. Microprocesorul 8086 garanteaz validitatea datelor
fa de frontul pozitiv al comenzii de scriere WR , fr introducerea unor stri
de ateptare, o durat dat de formula 2TCLCLTCLDV+TCVCTX.
Introducerea strilor TW adaug un timp TCLCL pentru fiecare stare de
ateptare. n situaia cea mai defavorabil, pentru frecvena de 5MHz a ceasului,
obinem un timp garantat de minimum 2200ns110ns+10ns=300ns. Timpul de
meninere al datelor dup dezactivarea comenzii de scriere este garantat de
TWHDX=TCLCH30ns fiind de minimum 118ns30ns=80ns. TWHDX este
prioritar fa de timpul obinut prin referiri la ceasul microprocesorului cu
formula TCLCH+TCHDXTCVCTX care ar conduce la o valoare minim de
118ns+10ns110ns=18ns.
La sfritul scrierii microprocesorul comut datele n adrese, dac
urmeaz imediat un nou ciclu de magistral, T1 dup T4, sau se trece n starea a
treia, n cazul n care magistrala va fi cedat datorit achitrii unei cereri HOLD
sau RQ . Aa cum am spus i n 1.4.1, dac nu urmeaz imediat un nou ciclu
de magistral procesorul va menine datele emise anterior n timpul operaiei de
scriere. Asigurarea timpului de meninere a datelor la sfritul scrierii, dup
transceiver-e, la dispozitivul receptor, se face i prin invalidarea comenzii DEN
cu o ntrziere de minimum TCLCHmin+ TCVCTXmin TCVCTXmax= 118ns +
10ns 110ns = 18ns. Menionm acum c acest rezultat este abstract el
presupunnd n formula de mai sus c o ntrziere de acelai tip, aici TCVCTX,
poate fi simultan minim i maxim. n realitate acest lucru nu este posibil, o
component electronic nefiind capabil s demonstreze n acelai timp, pentru
acelai parametru, ntrziere maxim i minim. Argumentul conduce la
concluzia c rezultatele obinute n analize de timp cum este i cea de mai sus
reprezint ntr-adevr cazurile cele mai defavorabile, nemai fiind necesare
amendri suplimentare pentru a da garanii proiectantului. n situaia de fa
30

ntrzierea real ntre momentul inactivrii comenzilor WR i DEN este de


aproximativ 60ns [10].

1.3.2.4. Ciclul de achitare a ntreruperii

Vom descrie aici numai ciclul de magistral specific achitrii


ntreruperii mascabile, urmnd ca ntr-un alt capitol s prezentm pe larg
structura mecanismului de ntreruperi al microprocesorului 8086 i ntreaga lui
activitate de pe magistral la achitarea unei ntreruperi.
ntreruperile mascabile generate de sistem sunt sesizate de procesor la
intrarea INTR i sunt mascate de bitul I, indicatorul de condiii pentru
Validare/Invalidare ntreruperi , din registrul de stare. n timpul ultimului ciclu
de ceas al fiecrei instruciuni, cu unele excepii ce vor fi precizate ulterior,
microprocesorul eantioneaz linia INTR. Dac INTR este gsit pe "1" i I
poziionat pe Validare-ntreruperi 8086 va executa o secven de achitare a
ntreruperii. Pentru a garanta achitarea de ctre microprocesor a ntreruperii
INTR va trebui meninut pe "1" pn cnd procesorul intr n ciclul de achitare
i activeaz semnalul de rspuns INTA . Semnalul de cerere de ntrerupere este
de tip activ pe nivel el fiind sincronizat intern de ctre procesor cu frontul
pozitiv al ceasului CLK i testat apoi, cum am mai spus, n ultimul ciclu de ceas
al instruciunii n curs. Dac detectarea ntreruperii, la sfritul execuiei
instruciunii n curs, se produce n timp ce UIM execut un ciclu de magistral,
extrgnd o nou instruciune n vederea umplerii cozii de ateptare, INTR
trebuie s satisfac i un timp de stabilizare de cel puin dou perioade de ceas
nainte de ultima stare, T4, a ciclului executat de UIM, pentru ca ntreruperea s
fie achitat imediat dup terminarea acestuia. n cazul n care timpul de set-up
fa de sfritul acestui eventual ciclu de magistral executat de UIM nu este
asigurat, achitarea ntreruperii se mai poate amna pn dup derularea a nc
unui ciclu de magistral, dac exist vreunul n ateptare.
Secvena hardware, specific, de achitare a ntreruperii mascabile,
INTR, de ctre microprocesorul 8086 este compus din cicli INTA separai prin
dou stri inactive TI, figura 1.13. Cei doi cicli de magistral INTA sunt, aa

cum se poate vedea i n figura 1.12, asemntori logic cu ciclii de citire,


comanda RD nlocuindu-se cu semnalul de achitare INTA . Difer doar relaiile
de timp referitoare la INTA i magistrala AD15AD0.
31

T1

T2

T3

T4

Ti

Ti

T1

T2

T3

T4

ALE
_____
LOCK
(semnal
intern)
____
INTA
AD15AD0

Tipul
intreruperii
Reactivare numai cand coada de asteptare nu este plina

Figura 1.13. Secvena de achitare a unei ntreruperi n modul minim

n timpul ciclilor INTA faza de adresare nu este efectiv, n sensul c


ALE poate ncrca n latch-uri o adres nedeterminat, magistrala multiplexat
fiind trecut n starea a 3-a n T1. Aceast situaie impune ca dispozitivele de
memorie sau I/O s nu fie selectate i/sau validate pe magistrala sistemului n
operaiile de citire cu semnale care s reprezinte numai decodificri ale
adreselor specifice ci cu semnale care s nglobeze i comanda efectiv de
citire, RD , pentru modul de lucru minim. Semnalul ALE este generat n timpul
ciclilor de achitare cu scopul de a fi utilizat, cum se va arta mai trziu, n
sisteme complexe cu mai multe controloare de ntreruperi, 8086 lucrnd n
modul maxim.
Primul ciclu INTA este destinat semnalizrii nceputului achitrii
ntreruperii atenionnd sistemul s-i pregteasc rspunsul pentru al doilea
ciclu INTA . n timpul acestui prim ciclu microprocesorul nu va citi magistrala
de date, el efectund anumite operaii interne necesare achitrii ntreruperii.
Rspunsul dispozitivului care ntrerupe este un octet reprezentnd aa-numitul
tip al ntreruperii ce urmeaz a fi citit i prelucrat apoi de procesor pentru a se
obine adresa efectiv a subrutinei de tratare a ntreruperii. Tipul ntreruperii
este citit de microprocesor, n al doilea ciclu INTA , pe jumtatea mai puin
semnificativ AD7AD0 a magistralei locale. Aceasta impune ca dispozitivele
specifice, controloarele de ntreruperi, care, n cadrul secvenelor de achitare,
rspund prin generarea tipului de ntrerupere s fie plasate pe jumtatea mai
puin semnificativ a magistralei de date, la adrese pare.
Pe durata secvenei de achitare, magistrala multiplexat de adrese/date
este trecut n starea a 3-a, de impedan mare, n T1, la nceputul fiecrui ciclu
INTA , cu o ntrziere dat de parametrul TCLAZ fa de frontul negativ de la
. Starea
ns, S7de
S3adrese/stri,
, comutat nA19/S6
T2, este
validnuisunt
are
primii
16 strii
bii A15
nceputul
T1.A0
Liniile
superioare
A16/S3
valoarea:
=S6=0,
S5=IF,
S4=S3=0.
Magistrala
AD0nedeterminat
rmne n starea
trecute
n S7
starea
a 3-a
dar adresa,
A19
A16, are AD15
o valoare
ca ia
32

3-a pn n ciclul de ceas urmtor strii T4 a fiecruia din cei doi cicli de
magistral INTA . n cazul n care, pe timpul achitrii ntreruperii, coada de
ateptare a microprocesorului nu este plin, pe magistrala AD pot fi plasate, n
timpul strilor inactive TI, date n condiiile discutate anterior n 1.4.1. Datele
reprezentnd tipul ntreruperii trebuie s satisfac aceleai cerine pentru timpii
de stabilizare i meninere, TCLDV i TCLDX, fa de frontul negativ al
ceasului de la nceputul strii T4 din al doilea ciclu INTA , ca i datele dintr-un
ciclu de citire.
Ieirea M / IO va fi poziionat pe "0" indicnd sistemului, n timpul
ciclilor INTA , o operaie de intrare/ieire. Semnalul LOCK , intern n cazul
funcionrii microprocesorului 8086 n modul minim, va fi i el activat ntre
strile T2 ale celor doi cicli de achitare pentru a preveni achitarea de ctre UIM
a unei cereri de magistral ntre cei doi cicli INTA . Asupra prioritii ntre
cererea de ntrerupere i cererea de magistral vom reveni n 1.4.5.4.
Comenzile de validare i sens pentru transceiver-e, DEN i DT / R , sunt
activate n fiecare ciclu INTA avnd aceleai relaii de timp ca i n cazul
ciclilor de citire. ntre cei doi cicli INTA , DEN i DT / R sunt dezactivate.
Relaiile de timp pentru semnalul de achitare INTA sunt identice cu
cele ale comenzii de scriere WR . Astfel, pe baza acestor relaii obinem un timp
de acces, de la validarea comenzii INTA pn la stabilizarea pe magistrala
microprocesorului a datelor reprezentnd timpul ntreruperii, dat de formula
2TCLCL TCVCTV TDVCL care, pentru cazul cel mai defavorabil conduce
la valoarea 2TCLCL TCVCTVmax TDVCLmin= 2200ns 110ns 30ns =
260ns. Mrirea timpului de acces se poate face prin introducerea de stri TW
care, pentru fiecare stare introdus, adaug la acest timp o perioad TCLCL.
Garantarea timpului de meninere TCLDX necesar procesorului pentru
capturarea datelor pe frontul negativ de la nceputul strii T4 se asigur prin
condiionarea meninerii datelor pe magistral cu INTA =0 i DEN =0 i
invalidarea acestor comenzi cu cel puin TCVCTXmin=10ns dup frontul CLK
menionat. Durata minim a impulsului INTA rezult din relaia
2TCLCLTCVCTV+TCVCTX, conducnd, pentru un ceas de 5MHz, la o
valoare teoretic minim de 2200ns110ns+10ns= 300ns. Avnd n vedere c
n realitate microprocesorul nu poate s manifeste simultan, pentru acelai
semnal, att ntrzieri maxime ct i minime, rezult o valoare practic minim
de 340ns [10]. Pentru eliberarea magistralei la sfritul celor doi cicli INTA
trebuie inut cont, pe de-o parte, de ntrzierea maxim a comenzii INTA ,
TCVCTXmax=110ns, iar pe de alt parte de momentul cnd microprocesorul
activeaz magistrala n starea T1 imediat urmtoare strii T4 din al doilea ciclu
INTA . Rezult un timp minim de TCLCLTCVCTXmax+TCLAVmin=
200ns110ns+10ns= 100ns n care dispozitivul care a plasat pe magistral tipul
ntreruperii trebuie s-i invalideze ieirile. Acelai timp rezult i lund n
33

considerare invalidarea datelor datorit comenzii DEN , pentru sisteme n care


se folosesc transceiver-e.
1.3.2.5. Introducerea strilor de ateptare
Strile de ateptare, TW, pot fi inserate, n timpul operaiilor de citire,
scriere sau achitare a ntreruperii pentru a se facilita transferul de date cu
dispozitive de memorie sau de I/O mai lente. Strile TW se insereaz ntre
strile T3 i T4. Pentru a introduce o stare de ateptare ntr-un ciclu de
magistral semnalul READY trebuie inactivat, pus pe "0", la sfritul strii T2
iar pentru a nu intra ntr-o stare de ateptare sau pentru a iei din ea, intrarea
READY a microprocesorului trebuie activata, trecut pe "1", nainte de frontul
pozitiv al ceasului din T3, respectiv din TW.
Introducerea strilor de ateptare se poate face n dou moduri dictate,
n general, de complexitatea configuraiilor: primul este acela al sistemelor
considerate n mod normal not ready nepregtite, al doilea al sistemelor aflate
n mod normal n starea ready pregtite pentru transfer.
n cazul primei abordri, considerate clasic, dac dispozitivul selectat
care primete o comand, RD , WR sau INTA , are timp s o execute n ritmul
impus de microprocesor el va trebui s activeze n timp util intrarea READY
pentru a permite procesorului s-i ncheie ciclul de magistral prevenindu-se
astfel introducerea strilor TW, ca n figura 1.14. Dac dispozitivul selectat nu
poate executa comanda n ritmul microprocesorului el va introduce una sau mai
multe stri de ateptare meninnd pe "0" un timp corespunztor intrarea
READY a lui 8086. Aceast soluie se preteaz, de obicei, sistemelor complexe
cu mai multe procesoare sau celor realizate pe magistrale standard cum ar fi
Multibus, unde ntrzierile de propagare i de acces la magistral sunt relativ
mari i multe din operaiile externe microprocesorului nu se pot executa la
viteza lui maxim. Dispozitivele cele mai rapide, puine n cazul adaptrii
prezentei soluii, vor trebui s activeze semnalul READY ca n figura 1.14
pentru a permite funcionarea sistemului la viteza maxim. n cazul n care nu se
respect relaiile de timp necesare poate fi introdus o stare TW n plus.
A doua abordare presupune c majoritatea operaiilor externe
microprocesorului se pot face n ritmul impus de el i deci c semnalul READY
este n mod normal activ, pe "1". Dispozitivele mai lente, mai puine sau mai
puin solicitate n configuraiile pentru care alegem aceast implementare, vor
trebui s dezactiveze semnalul READY pentru a introduce stri TW ca, de
exemplu, n figura 1.15. Metoda sistemelor n stare normal ready conduce n
general la scheme mai simple i este potrivit cu configuraiile mici,
monoprocesor, unde nu se pun probleme de vitez legate, cum am menionat, de
accesul la o magistral complex sau la resurse localizate pe module diferite
34

cum e cazul configuraiilor complexe, multiprocesor. Dezavantajul acestei


metode apare n posibilitatea terminrii anormale a unui ciclu de magistral
datorit dezactivrii incorecte, fr respectarea relaiilor de timp impuse, a
semnalului READY. De aceea, pentru a obine siguran n funcionarea
sistemului, metoda impune analizarea atent a relaiilor de timp legate de
accesul microprocesorului la toate dispozitivele de memorie i/sau I/O.
T1

T2

T3

T4

CLK
Intrarea
READY
la 8086

READY activ
minimum 118 ns
(TRYHCHmin)
TCHRYXmin=30ns

Figura 1.14. Prevenirea introducerii unor stri de ateptare n sisteme normale not-ready

T1

T2

T3

TW

T4

CLK
Intrarea
READY
la 8086

Timp de mentinere
TCHRYXmin=30ns

READY inactiv
maximum 8 ns in T3
( TRYLCLmin=-8 ns)

Timp minim de stabilizare


pentru ca urmatoarea stare sa
fie T4 (TRYHCHmin=118ns)

Figura 1.15. Introducerea unei stri de ateptare n sisteme normal ready

Dup cum vedem n figurile detaliate 1.14 i 1.15 dar i n diagramele


de catalog din figura 1.12 utilizarea intrrii READY ascult de cerine diferite n
READYa
corecte de
a microprocesorului,
fabricantul
interzice
modificarea
funcie
metoda folosit. n cazul
sistemelor
n starea
normal intrrii
ready, pentru
din
"1"
n
"0"
pe
timpul
ct
CLK
mai
este
"0"
n
starea
T3.
Menionm
c
aceste
introduce o stare TW, intrarea READY a microprocesorului trebuie pus pe
"0"
restricii
sunt
rezolvate
n
cazul
utilizrii
circuitului
de
ceas
8284
care
asigur
i
n cel mult 8ns (TRYLCLmin= 8ns) dup sfritul strii T2, nceputul strii T3.
formarea
semnalului
READY
aa
cum
vom
arta
n
1.4.4.4.
n
cazul
sistemelor
Dup depirea acestei limite permise, pentru garantarea unei funcionri
35

n starea normal not ready pentru a preveni introducerea strilor de ateptare


intrarea READY trebuie trecut pe "1" cu cel puin 118ns, TRYHCHmin, nainte
de frontul pozitiv al ceasului din T3. n cele dou situaii prezentate mai sus,
ilustrnd introducerea respectiv prevenirea introducerii unei stri TW, pentru ca
procesorul s ia o decizie corect este necesar ca semnalul READY, "0" sau "1",
s fie meninut un timp minim dat de parametrul TCHRYXmin= 30ns fa de
frontul pozitiv din T3.
Este necesar s precizm c n sistemele n stare normal not ready
programatorii pot s ia o msur de precauie specific nescriind cod executabil
n ultimii ase octei ai memoriei existente. Acest lucru elimin situaia n care,
datorit preextragerilor de instruciuni i existenei codului executabil n
ultimele locaii fizice, 8086 ar putea, depind spaiul de memorie fizic, s se
blocheze n TW deoarece, n acest caz, fr msuri speciale de proiectare,
memoria nu mai rspunde prin activarea semnalului READY. Neasignnd cod
executabil ultimilor ase octei rezervm aceast zon de memorie extragerilor
n avans ale UIM, executate, aa cum tim, de microprocesor n scopul umplerii
cozii de ateptare, i pentru care memoria poate rspunde corect, fr
complicaii hardware, prin trecerea pe "1" a semnalului READY.
Semnalul READY este generat de obicei fie numai pe baza decodificrii
de adres fie pe baza decodificrii de adres i condiionrii cu ajutorul
comenzii, RD , WR sau INTA . Pentru sisteme normale not ready timpul n
care trebuie activat semnalul READY pornind de la adres pentru a
prentmpina introducerea unei stri TW, cazul dispozitivelor rapide ce pot
funciona
n
ritmul
impus
de
microprocesor,
este
dat
de
2TCLCL+TCLCHTCLAVTRYHCH care, n situaia cea mai defavorabil,
conduce la 2200ns+118ns110ns118ns= 290ns. Acesta este timpul pus la
dispoziie de microprocesorul 8086 unui sistem normal not ready pentru ca el s
decodifice adresa i s activeze semnalul READY lund astfel decizia
prentmpinrii introducerii unei stri TW. n cazul n care este necesar
introducerea unor stri de ateptare sistemul nu are altceva de fcut dect s
ntrzie activarea liniei READY cu numrul de perioade de ceas corespunztor.
Pentru sistemele normale ready timpul n care sistemul poate de data
aceasta inactiva semnalul READY, pentru a introduce stri TW pe baza
decodificrii de adres, este dat de 2TCLCLTCLAVTRYLCL. n situaia
cea defavorabil obinem 2200ns110ns(8ns)=298ns. Pentru dispozitivele
rapide sistemul nu va aciona asupra liniei READY lsnd-o n "1".
36

Revenirea n starea normal a semnalului READY, n cazul modificrii


lui, se face la nceputul ciclului de magistral urmtor imediat dup schimbarea
adresei prin deschiderea latch-urilor datorit semnalului ALE.
n cazul condiionrii semnalului READY de comenzile RD , WR sau
INTA timpii pui la dispoziie de microprocesor logicii externe sunt mult mai
mici. Astfel pentru citiri i sisteme normale not ready acest timp, dat de relaia
TCLCL+TCLCHTCLRLTRYHCH, este n situaia cea mai defavorabil de
200ns+118ns165ns118ns= 35ns. Pentru sisteme normale ready rezult din
relaia TCLCLTCLRLTRYLCL un timp de 200ns165ns(8ns)= 43ns.
Pentru scrieri i cicli INTA formulele se modific prin nlocuirea parametrului
TCLRL cu TCVCTV rezultnd timpii de 90ns i respectiv 98ns. Atragem
atenia c timpii obinui mai sus se refer la semnalul READY de la intrarea
microprocesorului 8086. n 1.4.4.4, referitor la generarea semnalului READY
cu ajutorul circuitului 8284, vom reveni preciznd i restriciile impuse
semnalului RDY de la intrarea acestui circuit. Analiza relaiilor de timp ale
semnalului READY de la intrarea microprocesorului 8086 este util mai ales la
realizarea unor structuri care nu folosesc circuitul specializat 8284.
Din compararea rezultatelor obinute mai sus concluzionm c
restriciile de timp impuse sistemelor la generarea semnalului READY sunt mai
largi pentru situaiile n care semnalul se formeaz prin decodificarea adresei
fa de situaiile n care acesta este condiionat de comenzi. De aici
recomandrile ca pentru sistemele n stare normal not ready formarea
semnalului READY s se fac, pentru dispozitivele rapide care nu impun
introducerea de stri TW, numai prin decodificarea de adres, iar pentru
dispozitivele lente i prin folosirea, dac este cazul, a comenzilor. Pentru
sistemele n stare normal ready n cazul dispozitivelor rapide READY nu
trebuie acionat iar n situaia dispozitivelor lente semnalul READY se
recomand a fi dezactivat din timp, numai pe baza decodificrii de adres, i
reactivat innd cont eventual i de comand. Exist, de asemenea, posibilitatea
utilizrii semnalului M / IO la formarea lui READY n sistemele pentru care
memoria este rapid i nu are nevoie de prelungirea ciclilor de magistral, fiind
n schimb necesar introducerea unui numr fix de stri TW pentru toate
dispozitivele de I/O. M / IO permite declanarea unei scheme care s introduc
un astfel de numr prefixat de stri TW la orice ciclu RD , WR sau INTA
indiferent de adresa circuitului accesat.

1.3.2.6. Preluarea controlului magistralei locale (accesul direct)


Preluarea controlului magistralei locale a microprocesorului 8086
funcionnd n modul minim se face printru-un procedeu de cerere-achitare
37

analog cu cel folosit de microprocesoarele 8080 i Z80 [5, 9, 27, 28]. Semnalele
utilizate sunt HOLD pentru cererea de magistral, analog cu semnalele HOLD i
BUSRQ de la 8080 i respectiv Z80, i HLDA pentru achitarea cererii,
echivalent cu HLDA i BUSAK . Pentru a prelua controlul magistralei locale un
dispozitiv, de exemplu un coprocesor sau un circuit pentru comanda accesului
direct la memorie, trebuie s activeze intrarea HOLD a procesorului i s atepte
activarea semnalului de achitare pentru a putea efectua transferuri de date pe
magistrala local. Intrarea HOLD este eantionat de 8086 cu frontul negativ al
ceasului, figura 1.16. Decizia de a rspunde la cererea HOLD este luat n
unitatea de interfa cu magistrala fiind influenat de urmtorii factori:
activitatea curent a magistralei, starea semnalului intern LOCK , activat de
prefixul software LOCK, i starea ntreruperilor. Dup eantionare
microprocesorul poate achita cererea HOLD numai dac urmtoarea stare T este
T4 sau TI. Dac nu, el ateapt sfritul ciclului de magistral n curs pentru a
trece pe "1" ieirea HLDA. Dispozitivul care a emis HOLD trebuie s menin
acest semnal activ pe toat durata ct are nevoie de magistral. Aa cum am
spus mai sus, dialogul pentru preluarea magistralei are loc ntre dispozitivul
solicitant i UIM. UE i poate continua activitatea pn la golirea stivei sau
pn la apariia necesitii transferrii unui operand. La terminarea operaiei,
HOLD va fi trecut pe "0" microprocesorul rspunznd la rndul lui prin
HLDA=0 i, dac este cazul, prin reactivarea magistralei locale. Precizm, din
nou, c datorit funcionarii de tip pipeline a celor dou blocuri constructive,
UE i UIM, operaia HOLD/HLDA se poate face n paralel cu execuia unor
operaii interne de ctre UE. n aceast situaie este posibil ca la ncheierea
ciclului de cerere/achitare de magistral microprocesorul s nu aib nevoie de
un acces n exterior i deci, nefiind cazul, s nu activeze imediat magistrala
local. Va aprea atunci o perioad de timp n care magistrala local nu va fi
controlat de nici-un dispozitiv rmnnd n starea a treia. De aceea se
recomand, pentru sistemele care folosesc facilitatea HOLD/HLDA, s se
conecteze ieirile de comand la +5V prin rezistene de 22k, asigurndu-se
astfel meninerea, n perioada de incertitudine, a nivelului inactiv "1".
Cererea de preluare a controlului, HOLD, nefiind sincronizat de
procesor, trebuie s respecte un timp minim de stabilizare fa de frontul pozitiv
al ceasului. Acest timp, THVCHmin= 35ns, poate fi asigurat dac se face o
sincronizare extern folosindu-se ceasul microprocesorului, oricare din cele
dou fronturi fiind utilizabil. Trecerea magistralei locale n starea a treia se
poate face teoretic dup validarea semnalului de achitare HLDA. ntrzierea
ntre activarea semnalului HLDA i eliberarea magistralei este dat de diferena
TCLAZTCLHAV fiind de maximum 70ns. Aceast situaie poate s deranjeze
n sistemele n care activarea lui HLDA conduce imediat la activarea de ctre
dispozitivul solicitant a liniilor de comand. De aceea pentru aceste cazuri se
38

recomand ntrzierea lui HLDA astfel nct s se anuleze zona de suprapunere


de maximum 70ns. ntrzierile minime cu care microprocesorul conduce din
nou magistrala local, dup inactivarea cererii HOLD, sunt date, pentru
comenzi, de THVCHmin+3TCLCL= 635ns i pentru adrese/date/stri de
THVCHmin+3TCLCL+ TCHCLmin= 704ns, figura 1.17 (s-a considerat c ntre
fronturile ceasului ultimei perioade i activarea semnalelor nu exist ntrziere).
Dac aceste ntrzieri nu sunt suficiente pentru ca dispozitivul solicitant s
elibereze magistrala, el trebuie s ntrzie la microprocesor momentul trecerii
lui HOLD pe "0". n sfrit, ntrzierea ntre momentul trecerii lui HLDA pe "0"
i preluarea comenzilor este de minimum TCLCL+TCLCHminTCLHAVmax=
200ns+118ns160ns= 158ns iar pn la preluarea adreselor/datelor de
2TCLCLTCLHAVmax= 240ns. ntrzierile legate de semnalele HOLD/HLDA
i magistrala local sunt importante pentru proiectant care, innd cont de ele, va
trebui s asigure controlul disjunct, fr suprapuneri, al magistralei locale din
cele dou direcii: dinspre microprocesor i dinspre dispozitivele solicitante.
THVCH

Cel putin o
perioada de
ceas

THVCH

Una sau doua


perioade de
ceas

CLK

HOLD

TCLHAV
TCLHAV

HLDA
AD15-AD0,
A19/S6A16/S3,
__ ___
__
RD,BHE/S7,M/IO,
_ ___ ____
DT/R,WR,DEN

TCLAZ
Coprocesor

8086

8086

Figura 1.16. Secvena de preluare a controlului magistralei locale n modul minim

Rspunsul microprocesorului la cererea de preluare a magistralei,


HOLD, depinde aa cum am spus mai sus de activitatea curent de pe
magistral, starea semnalului LOCK i a ntreruperilor. Dac cererea HOLD
apare cnd LOCK nu este activ, microprocesorul nu execut un ciclu de
achitare a ntreruperii i UIM este la sfritul unui ciclu de magistral sau ntr-o
stare TI achitarea cu HLDA va avea ntrzierea minim dat de THVCHmin+
TCHCLmin+TCLCL+TCLHAVmin= 35ns+65ns+200ns+10ns= 310ns. n aceleai
condiii ntrzierea maxim este dat de (THVCHmin1ns)+ TCLCL+
TCHCLmax+TCLCL+ TCLHAVmax= 34ns+200ns+82ns+200ns+160ns= 676ns
i apare atunci cnd se pierde o perioad de ceas la eantionarea lui HOLD

39

datorit nerespectrii cu puin, n relaia de mai sus cu 1ns, a timpului de


stabilizare minim. Dac cererea HOLD apare cnd UIM trebuie s nceap un
ciclu de magistral ntrzierea maxim a lui HLDA, incluznd pierderea unei
perioade la eantionare, ca mai nainte, i o perioad de stabilizare intern
pentru HLDA, este dat de (THVCHmin1ns) + TCLCL+ TCHCLmax+ TCLCL+
4TCLCL+ TCLCL + TCLHAVmax= 34ns+7200ns+82ns+160ns=1,676s. La
aceast ntrziere se mai pot aduga stri TW. De asemenea, dac transferul pe
care l are de executat UIM este pe cuvnt la o adres impar, vor trebui
efectuai doi cicli consecutivi de magistral nainte ca procesorul s achite
cererea HOLD ceea ce conduce la o ntrziere suplimentar de nc patru stri T.
Se obine n aceast situaie, neinnd cont de eventuale stri de ateptare o
ntrziere de 2,476s.

CLK

HOLD

ADXX/A/SX
Comenzi
__ ___ ____
(RD,WR,INTA,
__
_
M/IO,DEN, DT/R)
HLDA

Figura 1.17. Eliberarea i preluarea magistralei locale n modul minim

Cu toate c n modul minim 8086 nu utilizeaz ieirea LOCK , prefixul


LOCK ntrebuinat la programare naintea unei instruciuni nu va permite
achitarea unei eventuale cereri HOLD dect dup terminarea instruciunii
respective. n acest mod se poate asigura execuia fr ntrerupere a oricror
instruciuni care necesit mai muli cicli de magistral. innd cont de faptul c
semnalul intern LOCK este activ nc o stare T dup terminarea instruciunii
"protejate" ntrzierea maxim a activrii lui HLDA va fi dat de
(THVCHmin1ns)+TCLCL+TCHCLmax+(M+1)TCLCL+TCLCL+TCLHAVmax,
unde M este numrul de stri T necesar execuiei instruciunii care urmeaz
40

prefixului LOCK iar adugarea ultimei perioade TCLCL este impus de


necesitatea respectrii unui timp de stabilizare intern pentru HLDA. Rezult, la o
frecven a ceasului de 5MHz, o ntrziere de M200ns +876ns.
Pentru situaiile n care cererea de preluare a magistralei se face la
nceputul unei secvene de achitare a ntreruperii ntrzierea maxim pn la
activarea semnalului de achitare HLDA va fi dat de (THVCHmin1ns) +
TCLCL+ TCHCLmax+ TCLCL+ 10TCLCL+ TCLCL+ TCLHAVmax = 2,876s.
Ultima perioad T reprezint, ca i n cazul prefixului LOCK, un timp de
stabilizare intern.

1.3.3.

FUNCIONAREA MICROPROCESORULUI N MODUL


MAXIM

Prin legarea intrrii MN / MX la GND se obine funcionarea


microprocesorului n modul maxim. n acest mod de lucru, pentru controlul
sistemului, se utilizeaz circuitul specializat de comand a magistralei 8288,
obinndu-se structuri tipice cum este i cea din figura 1.18.
Modul de lucru maxim a fost conceput pentru a asigura
microprocesorului posibiliti de funcionare n sisteme multi-microprocesor sau
cu procesoare de extensie a setului de instruciuni, aa numitele coprocesoare.
Prin adugarea controlorului 8288 conexiunile externe, destinate n modul
minim comenzilor i controlului magistralei, sunt redefinite, 1.3.2.3, oferinduse urmtoarele faciliti: dou canale, RQ / GT0 i RQ / GT1 , pentru preluarea
magistralei locale de ctre procesoare suplimentare aflate pe aceast magistral
i care pot utiliza circuitele de interfa ale lui 8086 pentru a avea acces la
magistrala sistemului; semnalele QS0 i QS1 indicnd starea cozii de ateptare
utilizabile de ctre module specializate sau de coprocesoare pentru a "urmri"
execuia instruciunilor; mecanism de blocare hardware a magistralei cu ajutorul
semnalului LOCK permind controlul accesului la resursele divizate n sisteme
multiprocesor prin prevenirea pierderii voluntare sau forate a magistralei de
ctre unitatea central, activ la un moment dat, i garantarea execuiei mai
multor cicli de magistral fr intervenia unei alte uniti centrale; alte
posibiliti de extindere a comenzilor i configuraiilor de sistem cu ajutorul
unor circuite suplimentare, cum este circuitul 8289 pentru arbitrarea magistralei
de sistem. Analizele de timp descrise n continuare vor ine cont att de
semnalele generate de 8086 ct i de cele generate de controlorul de magistral.
8288 genereaz i semnalele suplimentare de control i comand care permit
alctuirea unor sisteme complexe.
41

VCC
___
MN/MX
8284 A
Generator ceas
___
RES

8086
Generare stari
WAIT

CLK
__
S0
__
S1
__
S2
____
DEN
_
DT/R

__
S0
__
S1
__
S2

CLK
READY
RESET

RDY
GND

GND

_____
LOCK

ALE

_____
MRDC
_____
MWTC
_____
8288 AMWC
_____
IORC
_____
IOWC
_____
AIOWC
_____
INTA

CLK

AD0AD15

ADRESE/DATE
(magistrala multiplexata)

A16A19
____
BHE

Latch-uri
adrese sistem
(2 sau 3)

Adrese sistem

_
G
A0

DIR

Date

Transceiver-e
(2 )
_
G

GND

Necesare pentru
cresterea puterii de
comanda a
magistralei de date

___
___ ___
CSOH CSOL WE OD
2142 RAM (4)
(2)
(2)
1Kx8 1Kx8

__
CE

__
OE

2716-2 PROM (2)


(2)
(2)
2Kx8 2Kx8

___
CS

__
RD

___
WR

Dispozitiv de I/O

Figura 1.18. Microprocesorul 8086 n modul maxim

n cele ce urmeaz descriem nti funcionarea circuitului 8288 dup


care vom interpreta diagramele de timp corespunztoare operaiilor externe:
adresarea, ciclul de citire, ciclul de scriere, achitarea ntreruperii, introducerea
strilor de ateptare, preluarea magistralei. La sfritul capitolului 1.4.3 vom
atrage atenia asupra unor particulariti ale funcionrii n modul maxim.

1.3.3.1. Controlorul de magistral 8288


Schema-bloc a circuitului i conexiunile sale externe sunt prezentate n
figurile 1.19 i 1.20. n continuare vom descrie conexiunile externe i, succint,
particularitile de funcionare ale circuitului.
S2 , S1 , S0 , Status, bii de stare. Intrri corespunztoare biilor de stare
ai microprocesoarelor 8086 sau 8088. 8288 decodific, aa cum se poate vedea
i n figura 1.19, aceste intrri pentru a genera semnalele de comand. Atunci
cnd nu sunt utilizate, microprocesorul aflndu-se n starea pasiv, aceste intrri
sunt n "1" datorit unor rezistene interne legate la +5V.
CLK, Clock, ceas. Semnal de ceas de la generatorul de ceas 8284
necesar pentru stabilirea momentelor n care se genereaz comenzile.
ALE, Address Latch Enable, validare latch-are adrese. Ieire activ pe
"1" destinat memorrii adreselor n latch-urile de adrese ale sistemului.
42

Stare
8086

Intrari
de
comanda

__
S0
__
S1
__
S2

CLK
____
AEN
CEN
IOB

Decodor
stari

Logica de
control

______
MRDC
______
MWTC
______
AMWC
_____
IORC
______
IOWC
______
AIOWC
_____
INTA

Generator
semnale
de
comanda

_
DT/R
____
DEN

Generator
semnale
de control

_____
MCE/PDEN

Semnale de
comanda
compatibile
Multibus

Semnale pentru
controlul latchurilor de adrese,
transceiver-elor
de date si
intreruperilor

ALE
+5V

GND

Figura 1.19. Schema bloc a controlorului de magistral 8288

IOB

20

CLK
__
S1
_
DT/R

19

18

VCC
__
S0
__
S2

17

_____
MCE/PDEN

ALE
___
AEN
_____
MRDC
______
AMWC
______
MWTC

16

DEN

15

14

13

12

GND

10

11

8288

CEN
____
INTA
____
IORC
____
AIOWC
____
IOWC

Figura 1.20. Conexiunile externe ale controlorului de magistral 8288

43

DEN, Data Enable, validare date. Ieire activ pe "1" utilizat pentru
validarea transceiver-elor de date pe magistrala local sau pe magistrala
sistemului.
DT / R , Data Transmit/Receive, transmisie/recepie date. Ieire folosit
pentru precizarea direciei transceiver-elor de date, "1" pentru transmisie,
scriere n dispozitivele de I/O sau memorie, "0" pentru recepie, citire din
dispozitivele de I/O sau memorie.
AEN , Address Enable, validare adrese. Intrare activ pe "0" utilizat
pentru validarea semnalelor de comand ale controlorului de magistral. AEN
nu va afecta liniile de comand ale circuitului dac intrarea IOB a lui este
conectat la "1", 8288 lucrnd n aceast situaie n modul magistral de I/O.
CEN, Command Enable, validare comenzi. Intrare activ pe "1" utilizat
pentru validarea semnalelor de comand ale controlorului precum i a ieirilor
DEN i PDEN . Cnd CEN=0 semnalele de comand i DEN i PDEN sunt
forate n starea inactiv. Intrarea poate fi folosit pentru a implementa
partiionri de memorie i a elimina conflicte de adresare ntre dispozitivele
plasate pe magistrala de sistem i cele de pe magistralele locale.
IOB, Input/Output Bus Mode, modul magistral de I/O. Intrare cu
ajutorul creia este selectat modul de lucru al controlorului: "0" pentru modul
magistral sistem, "1" pentru modul magistral de I/O.
AIOWC , Advanced Input/Output Write Command, comand de scriere
I/O avansat. Ieire activ pe "0" reprezentnd o comand de scriere avansat,
anticipat, pentru dispozitivele de I/O care au nevoie mai devreme de un astfel
de semnal pentru decodificri de adrese sau validri. Utilizarea acestui semnal
avansat elimin necesitatea introducerii unei stri de ateptare pentru unele
dispozitive de I/O mai lente. Semnalul are aceei cronogram cu a semnalelor
de citire.
IOWC , Input/Output Write Command, comand de scriere I/O. Ieire
activ pe "0" reprezentnd comanda normal de scriere pentru dispozitivele de
I/O.
IORC , Input/Output Read Command, comand de citire I/O. Ieire
activ pe "0" reprezentnd comanda de citire pentru dispozitivele de I/O.
AMWC , Advanced Memory Write Command, comand de scriere
memorie avansat. Ieire activ pe "0" utilizat pentru generarea unei comenzi
de scriere anticipate solicitate de unele memorii mai lente pentru decodificri
sau validri. Ca i AIOWC are aceeai cronogram cu cea a semnalelor de
citire.
MWTC , Memory Write Command, comand de scriere memorie. Ieire
activ pe "0" reprezentnd comanda normal de scriere la memorie.
MRDC , Memory Read Command, comand de citire memorie. Ieire
activ pe "0" reprezentnd comanda de citire din memorie.
44

INTA , Interrupt Aknowledge, achitare ntreruperi. Ieire activ pe "0"


utilizat pentru a comunica dispozitivului care ntrerupe achitarea ntreruperii i
pentru a comanda plasarea de ctre acesta din urm, pe magistrala de date, a
vectorului de ntrerupere.
MCE / PDEN , Master Cascade Enable/Peripheral Data Enable. Este o
ieire avnd dou funcii, MCE i PDEN , n funcie de tensiunea aplicat intrrii
de comand IOB, "0" respectiv "1". MCE este o ieire activ pe "1" care se
utilizeaz n timpul unei secvene de achitare a ntreruperii pentru citirea dintrun controlor de ntreruperi master a adresei de cascad corespunztoare
controlorului de ntreruperi slave, conectat n cascad, care a solicitat efectiv
ntreruperea. PDEN este o ieire activ pe "0" realiznd, analog cu ieirea DEN,
funcia de validare a transceiver-elor de date pentru dispozitivele de I/O.

n figurile 1.21, 1.22 i 1.23 se prezint diagramele care ilustreaz


relaiile de timp ntre semnalele utilizate i generate de circuitul 8288 iar n
tabelele 1.4 i 1.5 se dau valorile minime i maxime ale parametrilor ce
caracterizeaz aceste relaii [11].
Aa dup cum se poate nelege din figura 1.19 liniile de stare activate
de microprocesor sunt decodificate de controlorul de magistral 8288 pentru a
emite comanda corespunztoare conform tabelului 1.6. Comenzile se emit n
dou feluri, n funcie de modul de lucru al circuitului selectat cu ajutorul
conexiunii IOB.
Modul magistral de I/O. n acest mod de lucru, IOB=1, toate
comenzile de I/O, IORC , IOWC , AIOWC , INTA , sunt permanent validate,
indiferent de starea semnalului AEN . Atunci cnd microprocesorul iniiaz un
ciclu de magistral pentru o operaie de I/O, 8288 va activa imediat liniile de
comand corespunztoare mpreun cu semnalele PDEN i DT / R pentru
controlul transceiver-elor de magistral. n acest mod de lucru comenzile de I/O
nu pot fi utilizate pe o magistral unic de sistem, aceeai pentru memorie i
dispozitivele de I/O, datorit lipsei unui arbitraj. Acest mod de lucru se folosete
atunci cnd n cadrul sistemului exist dou magistrale separate pentru memorie
i I/O. n aceste situaii microprocesorul nu va atepta nimic cnd acceseaz
magistrala de I/O. Comenzile pentru memorie, MRDC , MWTC , AMWC ,
rmn dependente de intrarea AEN fiind validate numai dup ce aceast intrare
devine "0" datorit unui semnal de tip magistral gata. Modul de lucru
magistral de I/O este avantajos n sistemele multi-microprocesor pentru
microprocesoarele care au toate dispozitivele de I/O dedicate.
45

T1

T2

TCLCL

T3

T4

TCLCH

TCHCL

CLK
TSVCH

TCHSV

TCLCH

TCLSH

_ _ _
S2, S1, S0
TSHCL

Adrese

Adrese / Date

Date

TSVLH
TCHLL
TCLLH

ALE

_____ ____ ____

TCLML

TCLMH

MRDC, IORC, INTA,


_______ ______
AMWC, AIOWC
TCLML

_____ ____
MWTC, IOWC
TCVNV

DEN
_____
(Citire sau INTA

TCVNX

PDEN
_____
(Citire sau INTA

TCVNV

DEN (Scriere)
TCVNX

____

PDEN (Scriere)

TCHDTH

TCHDTL

DT/R
_____
(Citire sau INTA)
TCLMCH

TSVMCH

TCHDTH

TCVNX

MCE

Figura 1.21. Diagramele de timp pentru circuitul 8288

46

CEN
TCEVNV
____
AEN
TAEVNV

DEN

_____
PDEN

Figura 1.22. Condiionarea semnalelor DEN i PDEN

____
AEN

TAELCV
TAEHCZ
TAELCH

Iesire de
comanda
TCELRH

TCELRH

CEN

Figura 1.23. ntrzierile la validarea/invalidarea comenzilor

Tabelul 1.4. Parametrii 8288. Cerine de timp


Parametru

TCLCL
TCLCH
TCHCL
TSVCH
TCHSV
TSHCL
TCLSH

Semnificaie

Perioada ceasului CLK


Timpul ct CLK=0
Timpul ct CLK=1
Timpul de stabilizare, de set-up, al semnalelor de stare active
Timpul de meninere, de hold, al semnalelor de stare inactive
Timpul de stabilizare al semnalelor de stare inactive
Timpul de meninere al semnalelor de stare active

47

Valoare
minim

125ns
66ns
40ns
65ns
10ns
55ns
10ns

Tabelul 1.5. Parametrii 8288. Rspunsuri n timp


Parametru

TCVNV
TCVNX
TCLLH
TCLMCH
TMHNL
TSVLH
TSVMCH
TCHLL
TCLML
TCLMH
TCHDTL
TCHDTH
TAELCH
TAEHCZ
TAELCV
TAEVNV
TCEVNV
TCELRH

Semnificaie

Valoare
minim

ntrzierea la activarea semnalelor de control


5ns
ntrzierea la inactivarea semnalelor de control
10ns
ntrzierea la activarea semnalului ALE n raport cu
CLK
ntrzierea la activarea semnalului MCE n raport
cu CLK
ntrzierea ntre activarea semnalului DEN i
TCLCH5ns
activarea semnalelor de comand
ntrzierea ntre activarea strilor i activarea
semnalului ALE
ntrzierea ntre activarea strilor i activarea
semnalului MCE
ntrzierea la inactivarea semnalului ALE
ntrzierea la activarea comenzilor
10ns
ntrzierea la inactivarea comenzilor
10ns
ntrzierea la activarea semnalului DT / R
ntrzierea la inactivarea semnalului DT / R
ntrzierea la validarea comenzilor
ntrzierea la invalidarea comenzilor
ntrzierea la activarea comenzilor
115ns
ntrzierea ntre AEN i DEN
ntrzierea ntre CEN i DEN sau PDEN
ntrzierea ntre CEN i comenzi

Valoare
maxim

45ns
45ns
15ns
15ns

15ns
15ns
15ns
35ns
35ns
50ns
30ns
40ns
40ns
200ns
20ns
20ns
TCLML

Tabelul 1.6. Decodificarea strilor i comenzile emise de 8288


S2

S1

S0

Starea microprocesorului

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Achitare ntrerupere
Citire port de I/O
Scriere port de I/O
Oprire (Halt)
Acces cod
Citire memorie
Scriere memorie
Stare pasiv

Comanda emis de 8288


INTA
IORC
IOWC, AIOWC

MRDC

MRDC
MWTC, AMWC

Modul magistral de sistem. n acest mod de lucru, IOB=0, toate


comenzile sunt validate cu AEN = 0 . Modul de funcionare se utilizeaz n
sistemele realizate pe o singur magistral, memoria ct i dispozitivele de I/O
fiind accesibile numai prin intermediul acestei magistrale. Folosirea circuitului
8288 n acest mod de lucru impune realizarea n cadrul sistemului a unei logici
48

de arbitraj care va informa controlorul, prin intermediul liniei AEN , dac


magistrala este liber pentru a fi accesat de microprocesor.
O facilitate suplimentar pentru utilizarea controlorului n sisteme
multi-microprocesor este i ieirea MCE activ numai n modul magistral de
sistem. Aa cum s-a artat i n 1.4.2.4 pe timpul unei secvene de achitare a
ntreruperii apar doi cicli de ntrerupere succesivi. Pe timpul primului ciclu,
necesar pentru efectuarea unor operaii interne n microprocesor, nu are loc niciun transfer de adrese sau date. De aceea, logica asociata controloarelor de
ntreruperi va trebui s mascheze semnalul MCE pe durata acestui prim ciclu
INTA . Imediat ns naintea celui de-al doilea ciclu, semnalul MCE activat va
putea, pentru situaii n care se folosesc mai multe controloare de ntreruperi
legate n cascad, s valideze o adres de cascad emis de controlorul master
pe magistrala local a procesorului pentru a fi memorat cu ajutorul semnalului
ALE n latch-uri de adrese. n acest fel, la sfritul celui de-al doilea ciclu
INTA , controlorul slave adresat cu adresa de cascad va plasa pe magistrala de
date a sistemului vectorul propriu de ntrerupere. Vom reveni cu detalii
referitoare la organizarea sistemului de ntreruperi n 1.4.4.

1.3.3.2. Adresarea
n cele ce urmeaz ne vom referi att la diagramele i relaiile de timp
pentru microprocesorul 8086, figura 1.24 i tabelele 1.7 i 1.8, ct i la
diagramele i relaiile de timp ale controlorului de magistral 8288, date n
figurile 1.21, 1.22, 1.23 i n tabelele 1.4 i 1.5.
n modul de lucru maxim adresele sunt generate de microprocesor, ca i
n modul minim, n timp ce semnalul de strobare ALE este emis de 8288. Pentru
aprecierea situaiei celei mai defavorabile observm c activarea semnalului
ALE are dou ci de ntrziere: fa de stri i fa de ceas. n raport cu strile
S2 , S1 , S0 apare o ntrziere, msurat de la frontul pozitiv anterior strii T1,
dat de suma TCHSV+TSVLH. A doua cale d ntrzierea TCLLH msurat de
la frontul negativ al ceasului CLK care marcheaz nceputul strii T1. De aici
rezult c, n situaia cnd microprocesorul este mai lent pe calea de activare a
strilor i alternana pozitiv a ceasului este minim, ALE va fi generat cu o
ntrziere TSVLH dup schimbarea strilor. Pe de alt parte, dac strile S2 ,
S1 , S0 se schimb nainte de nceperea strii T1 8288 garanteaz activarea
semnalului ALE cel mult cu o ntrziere TCLLH fa de nceputul strii T1.
Pentru prima situaie, cea mai defavorabil comparativ cu TCLLHmax=15ns, se
obine, fa de nceputul strii T1, o ntrziere maxim de TCHSVmax +
TSVLHmaxTCHCLmin=110ns+15ns69ns=56ns.
49

Tabelul 1.7. Parametrii 8086 pentru modul maxim. Cerine de timp


Parametru

Semnificaie

Valoare
minim

Valoare
maxim

TCLCL
TCLCH
TCHCL
TCH1CH2

Perioada ceasului CLK


Timpul ct CLK=0
Timpul ct CLK=1
Frontul cresctor al ceasului
CLK
Frontul descresctor al
ceasului
Timpul de stabilizare, de setup, al datelor la citire
Timpul de meninere, de
hold, al datelor la citire
Timpul de stabilizare al
semnalului RDY la intrarea
n 8284A msurat fa de
frontul descresctor al
ceasului CLK
Timpul de meninere al
semnalului RDY la intrarea
n 8284A
Timpul de stabilizare al
semnalului READY la
intrarea n 8086
Timpul de meninere al
semnalului READY la
intrarea n 8086
Timpul necesar ca intrarea
READY s fie considerat
inactiv fa de nceputul
strii T3
Timpul de stabilizare pentru
recunoaterea semnalelor
INTR, NMI, TEST
Timpul de stabilizare pentru
semnalele RQ / GT
Timpul de meninere al
semnalului RQ la intrarea n
8086
Frontul cresctor al
semnalelor la intrrile n
8086
Frontul descresctor al
semnalelor la intrrile n
8086

200ns
118ns
69ns

500ns

TCL2CL1
TDVCL
TCLDX
TR1VCL

TCLR1X
TRYHCH
TCHRYX
TRYLCL

TINVCH
TGVCH
TCHGX
TILIH
TIHIL

10ns
10ns

Observaii

Msurat ntre valorile 1,0V i


3,5V
Msurat ntre valorile 3,5V i
1,0V

30ns
10ns
35ns

Acest timp este necesar


semnalului asincron RDY
pentru a garanta recunoaterea lui n urmtoarea
perioad a ceasului CLK

0ns
118ns
30ns
8ns

READY mai poate deveni


inactiv maximum 8ns n T3
transformnd aceast stare
ntr-o stare de ateptare TW

30ns
30ns
40ns

50

20ns

Msurat ntre 0,8V i 2V

12ns

Msurat ntre 2V i 0,8V

Tabelul 1.8. Parametrii 8086 pentru modul maxim. Rspunsuri n timp


Parametru

Semnificaie

TCLML ntrzierea la activarea comenzilor


TCLMH ntrzierea la inactivarea comenzilor
TRYHSH ntrzierea ntre activarea lui READY i
trecerea strilor S2 , S1 , S0 n starea pasiv
TCHSV ntrzierea la activarea
strilor S2 , S1 , S0 fa de CLK
TCLSH ntrzierea la inactivarea
strilor S2 , S1 , S0 fa de CLK
TCLAV ntrzierea la validarea adresei vs. CLK
TCLAX Timpul de meninere al adresei
TCLAZ ntrzierea pn la trecerea adreselor n
starea a 3-a
TSVLH ntrzierea ntre validarea strii i punerea
pe "1" a lui ALE
TSVMCH ntrzierea ntre validarea strii i punerea
pe "1" a lui MCE
TCLLH ntrzierea ntre frontul descresctor al
ceasului CLK i validarea lui ALE
TCLMCH ntrzierea ntre frontul descresctor al
ceasului CLK i validarea lui MCE
TCHLL ntrzierea la inactivarea lui ALE
TCLMCL ntrzierea la inactivarea lui MCE
TCLDV ntrzierea validrii datelor fa de CLK
TCHDX Timpul de meninere al datelor vs. CLK
TCVNV ntrzierea fa de CLK la activarea
semnalului de control DEN
TCVNX ntrzierea la inactivarea semnalelor de
control
TAZRL ntrzierea ntre trecerea n starea a 3-a a
magistralei i activarea lui RD
TCLRL ntrzierea fa de CLK a activrii lui RD
TCLRH ntrzierea fa de CLK a inactivrii lui RD
TRHAV ntrzierea ntre inactivarea lui RD i
activarea adresei urmtoare
TCHDTL ntrzierea fa de CLK la activarea
semnalului DT / R
TCHDTH ntrzierea la inactivarea semnalului DT / R
TCLGL ntrzierea la activarea lui GT
TCLGH ntrzierea la inactivarea lui GT
TRLRH Limea semnalului RD
T0L0H
T0H0L

Frontul cresctor al semnalelor generate


Frontul descresctor al semnalelor generate

51

Valoare
minim

Valoare
maxim

Observaii

10ns
10ns

35ns
35ns
110ns

Comenzile
generate de 8288

10ns

110ns

10ns

130ns

10ns
10ns
TCLA
X

110ns
80ns
15ns

ALE i MCE
generate de 8288

15ns
15ns
15ns

10ns
10ns
5ns
10ns

15ns
15ns
110ns
45ns

DEN generat de
8288

45ns

0ns
10ns
10ns
TCLCL
45ns

165ns
150ns

50ns

0ns
0ns
2TCLC
L75ns

DT / R generat
de 8288

30ns
85ns
85ns

20ns
12ns

0,8V 2V
2V 0,8V

T1
VCH
CLK

T2

T3

T4

TW

TCLCL

VCL
TCLAV

TCHCL

TCLCH

TCH1CH2

TCL2CL1

QS0, QS1
TCHSV

TCLSH

_ _ __
S2,S1,S0
(exceptand starea HALT)
TCLAV

TCLAX

TCLDV

___
BHE,A19A16

___
BHE/S7,A19/S6A16/S3
TSVLH
TCLLH

TCHDX

S7S3

TCHLL

ALE(Iesire 8288)
TR1VCL

RDY (Intrare in 8284)


TCLR1X

READY
(Intrare in 8086)

TRYLCL
TCHRYX

TRYHSH
TCLAV

AD15AD0

TCLAZ
TCLAX

DATA IN

AD15AD0
TAZLR

___
RD
Iesiri 8288

TCLRH

TRHAV

TCLRL
TCHDTL

TCHDTH

_
DT/R

TCLML

TRLRH

TCLMH

_____
_____
MRDC sau IORC
____
DEN

TRYHCH
TDVCL
TCLDX

TCVNV

TCVNX

Figura 1.24. Diagrame de timp pentru modul maxim

52

T1

T3

TCLCL

VCH
CLK

T2

T4

TW

VCL

_ _ __
S2,S1,S0
(exceptand starea HALT)

TCHSV

Ciclu de scriere

TCLSH

TCLAV

AD15AD0

TCLDV

TCHDX

AD15AD0

DATE

TCVNV
Iesiri
8288

TCVNX

DEN
TCLML

_____
_______
AMWC sau AIOWC

TCLMH

_______
_____
MWTC sau IOWC

TCLML

_____
Ciclu INTA

AD15AD0

TCLMH

Adresa de
cascada

TCLAZ

TCLML

AD15AD0

TCLDX
Tip
intrerupere

TCLMCL
Iesiri
8288

_____ _____
MCE / PDEN

TSVMCH
TCLMCH

TCHDTL

TCHDTH

_
DT/R
TCHLML

_____
INTA
TCVNV

TCLMH

TCVNX

DEN
Oprire soft:
(DEN="0",
__ ______ _____ _______
RD,MRDC,IORC,MWTC
______ ______ _______
AMWC, IOWC, AIOWC,
____
.
INTA = "1")

TCLAV

Adresa invalida

AD15AD0
_ _ __
S2,S1,S0

Figura 1.24. Continuare

Dezactivarea semnalului ALE se face cu frontul pozitiv din T1


indiferent de ntrzierea la activare. De aici rezult, la o frecven a ceasului de
5MHz, o durat minim pentru ALE de TCLCHmax+ TCHLLmin 56ns=
131ns+0ns56ns= 75ns.
53

Timpul de stabilizare minim al adreselor fa de frontul negativ al lui


ALE, necesar pentru asigurarea capturrii adreselor n latch-uri, este dat de

TCLCHminTCLAVmax+TCHLLmin. Se obine la 5MHz, presupunnd din nou


aproape teoretic TCHLLmin= 0ns, un timp de set-up garantat de minimum
118ns110ns+0ns=8ns ceea ce permite utilizarea unor latch-uri ca 8282, 8283
sau 74LS373. Timpul de meninere al adreselor fa de frontul cztor al
semnalului ALE se poate obine din relaia TCHCLTCHLL care, n cazul cel
mai defavorabil i pentru o frecven a ceasului de 5MHz, conduce la valoarea
minim de TCHCLminTCHLLmax=69ns15ns=54ns.
Timpii de comutare ai magistralei multiplexate din adrese n stri i n
starea a treia sau date funcie de tipul ciclului, citire respectiv scriere, rmn
aceeai ca n modul minim.

1.3.3.3. Ciclul de citire


n modul maxim se pot folosi comenzile de citire generate de 8288, dar
i comanda RD activat direct de microprocesor, ale crei relaii de timp sunt
aceleai ca n modul minim. Deoarece parametrii dinamici ai semnalelor emise
de controlorul de magistral sunt mai buni dect cei ai semnalelor emise de
microprocesor, cum se poate vedea din comparaia tabelelor 1.3 i 1.5, se
recomand folosirea acestor semnale pentru accesul la dispozitivele de memorie
sau I/O plasate pe magistrala demultiplexat, de sistem, magistral care datorit
unor buffer-e suplimentare i a unei ncrcri capacitive mai mari introduce, de
obicei, ntrzieri suplimentare. Semnalul RD poate fi utilizat pentru citirea unor
dispozitive apropiate, conectate direct pe magistrala local multiplexat.
Comenzile de citire a dispozitivelor de memorie sau de I/O emise de
8288, MRDC , IORC i INTA , au aceleai caracteristici dinamice: sunt activate
cu o ntrziere TCLML fa de nceputul strii T2 i sunt dezactivate cu o
ntrziere TCLMH fa de nceputul strii T4. Durata minim a unei astfel de
comenzi va deci dat de 2TCLCLTCLMLmax+TCLMHmin i va fi la 5MHz de
400ns35ns+10ns=375ns. Timpul minim oferit pentru accesarea datelor de
ctre microprocesor va fi 2TCLCL TCLMLmax TDVCLmax= 400ns 35ns
30ns = 335ns simitor mai mare dect cel de 205ns pe care l avem la dispoziie
n modul minim.
Dup cum se vede n figurile 1.21 i 1.24 direcia transceiver-elor se
stabilete n T1 iar validarea lor pe magistrala local a microprocesorului se face
n
T2
asigurndu-se
o
ntrziere
minim
de
TCLCHmin+
TCVNVmin=118ns+5ns=123ns fa de momentul comandrii trecerii n starea a
treia a magistralei locale. Timpul minim rmas la dispoziie pentru propagarea
54

datelor spre procesor cu respectarea intervalului de stabilizare, de set-up, este


dat de relaia TCHCLmin + TCLCL TCVNVmax TDVCLmin= 69ns+ 200ns
45ns30ns= 194ns, mai mare dect timpul de 129ns asigurat n modul minim.
Timpul de meninere al datelor, TCLDXmin=10ns, este garantat din punctul de
vedere al controlului transceiver-elor deoarece att DEN ct i DT / R sunt
meninute n T4 minimum TCVNXmin=10ns, respectiv TCLCHmin+
TCHDTHmin=118ns+0ns=118ns. Pe de alt parte, transceiver-ele vor fi
invalidate nainte de urmtorul ciclu al microprocesorului cu minimum
TCLCLTCVNXmax=200ns45ns=155ns.

1.3.3.4. Ciclul de scriere


Spre deosebire de modul de lucru minim, n modul maxim 8288
genereaz dou tipuri de comenzi de scriere pentru memorie i I/O: avansate,
AMWC i AIOWC , i normale, MWTC , IOWC . Comenzile avansate de
scriere, generate cu o perioad de ceas naintea celor normale, au aceeai
desfurare n timp ca i comenzile de citire, durata lor fiind de
2TCLCLTCLML+TCLMH. La 5MHz aceast durat este de minimum
2200ns35ns+10ns=375ns. Pentru comenzile normale limea impulsului de
scriere, dat de TCLCLTCLML+TCLMH, va fi, la 5MHz, de minimum
175ns. ntrzierea datelor, calculat fa de nceputul strii T2, depinde att de
microprocesor, parametrul TCLDV, ct i de comanda DEN pentru validarea
transceiver-elor, TCVNV. Se observ din tabelele 1.3 i 1.5 c ntrzierea cea
mai mare se datoreaz microprocesorului: TCLDVmax=110ns fa de
TCVNVmax=45ns. Pentru comenzile avansate va fi deci posibil ca datele s fie
valide la ieirile microprocesorului dup activarea comenzii de scriere de ctre
8288 cu o ntrziere dat de diferena TCLDVTCLML, maximum 100ns.
Pentru comenzile normale datele vor fi ntotdeauna valide naintea activrii
acestor comenzi cu cel puin TCLCLTCLDVmax+TCLMLmin= 200ns110ns+
10ns =100ns. Fa de frontul pozitiv al ambelor tipuri de comenzi de scriere
datele sunt stabile, la o frecven a ceasului de 5MHz, cu minimum
2TCLCLTCLDVmax+TCLMHmin=2200ns110ns+10ns=300ns. Timpul de
meninere, de hold, al datelor dup dezactivarea comenzilor de scriere este, ca i
timpul de set-up, dependent att de microprocesor ct i de comanda de
invalidare a transceiver-elor emis de 8288. Procesorul garanteaz stabilitatea
datelor dup frontul cresctor al comenzilor de scriere minimum
TCLCHminTCLMHmax+ TCHDXmin= 118ns 35ns+ 10ns= 93ns. Invalidarea
transceiver-elor cu DEN se face cu cel puin TCLCHmin TCLMHmax+
TCVNXmin=118ns35ns +10ns=93ns. Astfel, din punct de vedere al
55

procesorului, 8086+8288, datele vor fi garantat stabile cel puin 93ns dup
comanda de scriere.

1.3.3.5. Achitarea ntreruperii


Secvena de achitare a ntreruperii, generarea celor doi cicli INTA , este
logic identic cu cea din modul minim, diferenele funcionale fiind legate de
posibilitile oferite de 8288, prin generarea semnalului MCE, de a realiza
sisteme cu mai multe controloare de ntreruperi. Relaiile de timp ale semnalelor
DEN, DT / R i INTA sunt aceleai ca n ciclul de citire, INTA fiind echivalent
cu o comand de citire, MRDC sau IORC . Ca i n modul minim, pe timpul
celor doi cicli INTA magistrala local multiplexat a microprocesorului va fi
trecut n starea a treia la nceputul strii T1 a fiecrui ciclu. Timpii de
stabilizare i meninere pentru datele ce reprezint tipul de ntrerupere, plasate
pe magistrala local a procesorului, sunt aceiai ca pentru orice citire: TDVCL
i TCLDX.
Diferenele de funcionare n modul maxim sunt datorate posibilitilor
oferite de controlorul de magistral n vederea implementrii de sisteme cu mai
multe circuite de control al ntreruperilor folosind semnalele MCE i ALE. Dup
cum s-a menionat n 1.4.3.1., n modul de lucru magistral de sistem 8288
genereaz, pe timpul strii T1, n acelai timp cu semnalul de strobare ALE,
semnalul MCE. MCE poate fi utilizat n vederea validrii unei adrese de cascad,
de exemplu CAS20 pentru 8259A, generate de controlorul de ntreruperi
principal, master, pe liniile cele mai semnificative, AD15AD13, ale magistralei
locale. Aceast adres poate fi capturat cu ALE n latch-urile de adres ale
sistemului pentru a selecta controlorul de ntreruperi secundar, slave, care a
generat efectiv ntreruperea. Un exemplu de schem care utilizeaz aceast
facilitate este dat n figura 1.24A. MCE este generat n fiecare ciclu INTA dar el
trebuie folosit numai n al doilea ciclu INTA deoarece la nceputul primului
ciclu microprocesorul nu garanteaz starea de impedan nalt a magistralei
locale: TCLAZmax=80ns, n timp ce MCE poate fi activat cu o ntrziere maxim
de TSVMCHmax=15ns. De asemenea, 8259A, controlorul de ntreruperi folosit
n mod uzual n sistemele cu 8086 sau 8088, genereaz adresa de cascad n al
doilea ciclu INTA . Selecia celui de-al doilea semnal MCE se face cu ajutorul
semnalului LOCK . Reamintim c n modul minim acest semnal neutilizabil este
generat intern, la ieirea corespunztoare a procesorului generndu-se comanda
de scriere WR . n modul maxim LOCK va fi activat n T2 din primul ciclu
INTA i dezactivat n starea T2 a celui de-al doilea ciclu, figura 1.25.
ntrzierea la schimbarea strii semnalului LOCK , TCLAV, figura 1.26, este
aceeai
cu
ntrzierea
de
validare
a
adreselor,
56

cuprins ntre 10ns i 110ns. Timpul de stabilizare minim al adresei de cascad,


fa de frontul negativ al semnalului de latch-are ALE, este condiionat att de
ntrzierea apariiei adresei la ieirile controlorului de ntreruperi ct i de
raportul ntre semnalele MCE i ALE. Suprapunerea minim ntre MCE i ALE
garanteaz, din al doilea punct de vedere, un timp minim de stabilizare de
TCLCHmin+ TCHLLmin TCLMCHmax= 118ns + 0ns 15ns = 103ns. Timpul de
meninere al adresei de cascad este asigurat, de asemenea, din punct de vedere
al semnalului MCE, mai durnd dup ALE cel puin TCHCLmin+ TCVNXmin
TCHLLmax= 69ns+10ns15ns= 64ns.
n modul de lucru magistral de I/O, 8288 nu mai genereaz semnalul
MCE i toate operaiile de intrare/ieire, inclusiv ciclii INTA , se presupune c

se refer la dispozitive aflate pe magistrala local i nu pe magistrala de sistem.


n acest caz nu mai este necesar validarea unei adrese de cascad pe magistrala
de sistem, vezi i figura 1.26A, prin capturare n latch-urile de adres. n aceast
situaie toate ntreruperile mascabile vin din zona local a sistemului. n acest
mod de lucru, n timpul ciclilor INTA se va genera semnalul de validare PDEN
n locul semnalului DEN utilizabil n cazul cnd i pe magistrala local se
folosesc transceiver-e.

1.3.3.6. Introducerea strilor de ateptare


Introducerea strilor de ateptare, TW, se face la fel ca n modul minim
ntre strile T3 i T4, prin implementarea uneia din cele dou metode: sisteme
normale ready sau sisteme normale not ready. Timpul minim oferit
dispozitivelor de memorie sau de I/O pentru a dezactiva, trece pe "0", intrarea
READY a microprocesorului, timp msurat ntre momentul activrii unei
comenzi i sfritul strii T2 (este vorba despre comenzile de citire inclusiv
INTA i cele avansate), este dat de TCLCL TCLMLmax TRYLCLmin= 200ns
35ns (8ns)= 173ns. Dup cum se vede n figura 1.24 comenzile normale sunt
validate n T3 ele neasigurnd generarea corect a semnalului READY. Avnd
n vedere ns c 8288 genereaz n acelai timp comenzi normale i comenzi
avansate, la generarea semnalului READY se pot utiliza ntotdeauna numai
comenzile avansate beneficiind de timpul calculat mai sus. n acest timp minim
trebuie inclus i ntrzierea datorat circuitului 8284 de sincronizare a
semnalului READY, aspect asupra cruia vom reveni n 1.4.4.4. Timpul minim
oferit dispozitivelor periferice pentru activarea, trecerea pe "1", a intrrii
READY a procesorului, msurat ntre momentul activrii comenzii i frontul
pozitiv al ceasului din T3, este TCLCL TCLMLmax+ TCLCHmin
TRYHCHmin= 200ns 35ns+ 118ns118ns= 165ns.
57

CAS
INTR

Intrerupere

MASTER
8259A

Intrerupere

__
EN

8284

_____
LOCK

MCE

8088
STARE

8288

_____
INTA

_____
INTA
DEN
SLAVE
8259A

_
DT/R

ALE

SLAVE
8259A
__
EN

Latchuri
adrese

__
EN

Adrese

__
OE
_
DT/R
XCVR

Date

Figura 1.24A. 8086 n modul maxim cu un controlor de ntreruperi master pe magistrala local i
mai multe controloare de ntreruperi slave pe magistrala de sistem

T1

T2

T3

T4

Ti

Ti

T1

T2

T3

ALE
_____
LOCK
____
INTA
AD15AD0

Tip vector

MCE

Figura 1.25. Secvena de achitare a ntreruperii mascabile n modul maxim

58

T4

Orice ciclu de
ceas

Orice ciclu de
ceas

CLK
TCLAV

TCLAV

_____
LOCK

Figura 1.26. ntrzierile semnalului LOCK

_____
INTA

CAS
SLAVE
8259A

INT
8284
INTR

MASTER
8259A
INT

8086
STARE

_
DT/R

DEN

ALE

Latch
adrese
8282

SLAVE
8259A

ADRESE

DATE

__
OE
8286

Figura 1.26A. 8086 n modul maxim cu un controlor de ntreruperi master pe magistrala local i
mai multe controloare de ntreruperi slave pe magistrala de sistem

1.3.3.7. Preluarea controlului magistralei locale (accesul direct)


n modul de lucru maxim al microprocesorului preluarea controlului
magistralei locale, spre deosebire de modul minim unde aceasta se realiza
printr-un procedeu de cerere/achitare cu ajutorul semnalelor HOLD i HLDA, se
face prin intermediul unei secvene mai sofisticate implementate pe dou
niveluri de prioritate cu ajutorul unor conexiuni bidirecionale RQ / GT0 i
RQ / GT1 , figura 1.27.
59

VCH

CLK

VCL

TCLCL

TCLGL

AD15AD0
A19/S6A16S3,
_ _ __
S2,S1,S0
__ _____
RD, LOCK
____ .
BHE/S7

TGVCH
Cerere
coprocesor

TCLGH

TCLCL

Achitare
8086

4.
5.

Eliberare
coprocesor

Coprocesor

8086

1.
2.
3.

4
3

TCHGX

TCLGH
__ __
RQ/GT

- 8086 trece magistrala locala in starea de mare impedanta


- coprocesorul trece liniile S2, S1, S0 in starea de mare impedanta,
- coprocesorul trece magistrala in starea de mare impedanta,
__ _____
- 8086 reactiveaza liniile de stare RD si LOCK,
- 8086 reactiveaza liniile multiplexate.

Figura 1.27. O secven RQ / GT

Ca i secvena HOLD/HLDA, secvenele RQ / GT sunt prevzute pentru


preluarea controlului magistralei locale a microprocesorului de ctre dispozitive
de tip master, de exemplu coprocesoare sau circuite specializate pentru
comanda accesului direct, care se gsesc pe aceast magistral i care folosesc
n ntregime circuitele de interfa ale microprocesorului cu magistrala de
sistem. Secvenele RQ / GT nu sunt destinate implementrii funciei de arbitraj
pe magistrala sistemului, n sisteme complexe, multi-master, cum ar fi, de
exemplu, cele realizate pe interfaa MULTIBUS. Pentru astfel de sisteme sunt
folosite circuite specializate de arbitraj ca 8289.
Protocolul RQ / GT permite plasarea direct pe magistrala local a cel
mult dou procesoare de extensie a setului de instruciuni, aa numitele
coprocesoare, sau a altor procesoare specializate, cum este i procesorul de
intrare/ieire 8089. O secven de preluare a magistralei implementate pe una
din liniile bidirecionale RQ / GT const, figura 1.27, ntr-o cerere de la unul
din procesoarele suplimentare, o achitare din partea procesorului 8086 indicnd
eliberarea magistralei locale i o eliberare a magistralei la terminarea
interveniei solicitate de procesorul suplimentar. Cele trei evenimente sunt
materializate prin trecerea liniilor RQ / GT pe "0". ntre cele dou linii prioritar
este RQ / GT0 . Aplicarea acestei prioriti se face numai n cazurile n care apar
cereri pe ambele linii nainte de emiterea de ctre procesor a unei achitri. Dac
procesorul a emis deja o achitare pentru canalul RQ / GT1 o cerere prioritar
aprut ulterior acestei achitri pe RQ / GT0 va atepta eliberarea magistralei de
ctre coprocesorul care a emis cererea pe canalul RQ / GT1 . Pe timpul prelurii
magistralei 8086 se comport la fel ca n modul minim: pe de-o parte unitatea
de execuie funcioneaz intern pn n momentul apariiei necesitii accesului
la magistral pentru date sau cod, iar pe de alt parte n situaiile cnd achitarea
apare nainte ca UE s aib nevoie de magistral microprocesorul va ntrzia cu
activarea magistralei pn cnd va avea nevoie efectiv de ea.
60

Aa cum se poate vedea n figura 1.27 dup primirea i achitarea unei


cereri, 8086 va trece n starea a treia magistrala multiplexat, AD15AD0,
BHE / S7 , A19/S6A16/S3, liniile de stare S2 S0 , ieirile LOCK i RD .
Aceast aciune nu va invalida ieirile controlorului 8288 ci, datorit existenei
n 8288 a unor rezistene interne pentru semnalele S2 S0 , se va confunda cu
apariia unor stri pasive pe timpul crora, aa cum s-a artat, 8288 nu va emite
nici-o comand sau semnal de validare a transceiver-elor. n aceast situaie,
8288 poate fi controlat de coprocesorul cruia i s-a acordat magistrala. Dac
coprocesorul nu folosete controlorul 8288 el trebuie s-i invalideze ieirile de
comand, trecndu-le n starea a treia prin poziionarea pe "1" a intrrii AEN a
lui 8288.
O cerere de preluare a magistralei locale pe una din liniile RQ / GT se
materializeaz printr-un impuls pe zero, figura 1.27, a crui durat nu va fi mai
mare dect perioada ceasului CLK dar care trebuie sincronizat cu ceasul
microprocesorului pentru a fi asigurai timpii de stabilizare i meninere fa de
frontul pozitiv al ceasului cu care se eantioneaz liniile RQ / GT . Dup
generarea impulsului de cerere solicitantul, coprocesor sau procesor specializat,
va trebui s urmreasc starea liniei RQ / GT pe care a emis cererea. Achitarea
de ctre microprocesor a unei cereri se face de asemenea printr-un impuls pe
zero emis de microprocesor pe linia bidirecional pe care s-a fcut cererea.
Precizm c, deoarece microprocesorul poate emite achitarea cu frontul negativ
al ceasului CLK imediat urmtor frontului pozitiv cu care a strobat cererea, linia
RQ / GT pe care se desfoar dialogul poate s rmn pe "0" datorit unei
scurte suprapuneri a nceputului achitrii cu cererea care nu s-a terminat.
Aceast meninere pe "0" a liniei, semnificnd totui un dialog, impune, n
vederea capturrii unei achitri, folosirea unei logici sincrone acionate pe
ceasul CLK. O logic bazat pe acionri pe front nu va fi potrivit datorit
tocmai posibilitii apariiei unor eventuale suprapuneri, aa cum s-a explicat
mai sus.
Dup recepionarea achitrii, dispozitivul solicitant poate s preia
magistrala local. Datorit faptului c microprocesorul va trece magistrala n
starea a treia dup o perioad de ceas de la emiterea achitrii se impune
dispozitivului solicitant s respecte la activarea magistralei ntrzierea TCLAZ
fa de frontul negativ al ceasului CLK, figura 1.27. Aceast precauie este
recomandat deoarece detectarea unei achitri de ctre dispozitivul solicitant se
poate face chiar cu frontul pozitiv al ceasului cuprins n perioada de ceas n care
microprocesorul emite achitarea, deci nainte de dezactivarea magistralei de
ctre 8086. Aceasta ar putea conduce la apariia prin suprapunerea a doi
emitori a unei zone de incertitudine a magistralei la preluarea ei de ctre
solicitant.
61

CLK
74LS54
_
R
HOLD

74S02
74LS78
J
Q
CLK _
K
Q
CLR

_
R

HLDA

74S02

+5V
8T09

74LS54
74LS78
J
Q
CLK _
K
Q
CLR

______
RESET

___ __
RQ/GT

_
R

74LS04
74LS04

Figura 1.28. O schem de conversie HOLD/HLDA n RQ / GT

Figura 1.29. Diagramele de timp pentru schema din figura 1.28

Pentru a reda controlul magistralei procesorului dispozitivul solicitant


va trebui s elibereze magistrala i s emit pe linia RQ / GT un impuls de
eliberare a magistralei. 8086 va activa liniile de stare S2 S0 i LOCK trei
perioade de ceas dup detectarea impulsului de eliberare. Liniile de adrese/date
vor fi activate dup cel puin un interval TCHCLmin fa de liniile de stare. ntre
timp latch-urile de adres i 8288-ul asociate lui 8086 vor trebui i ele activate
pentru ca microprocesorul s preia efectiv controlul magistralei locale.
62

Pentru ilustrarea mai bun a protocolului de preluare a magistralei


locale n modul maxim dm n figurile 1.28 i 1.29 o schem de conversie a
semnalelor HOLD/HLDA n RQ / GT i diagrama de timp corespunztoare [10].
Aceast schem poate fi utilizat pentru adaptarea de exemplu a unui circuit de
control al accesului direct n sisteme cu 8086 lucrnd n modul maxim.
Rspunsul microprocesorului la o cerere pe una din liniile RQ / GT
depinde, ca i n modul minim, de activitatea curent pe magistral, de starea
semnalului LOCK i de ntreruperi. n [10] se d pentru calculul ntrzierii ntre
detecia unei cereri de ctre microprocesor i detecia unei achitri de ctre
solicitant
urmtoarea
formul:
(ntrzierea
de
la
HOLD
la
HLDA)(THVCH+TCHCL+TCLHAV). Aplicarea acestei formule conduce
pentru situaiile n care unitatea de interfa cu magistrala UIM se afl ntr-o
stare T4 sau TI la o ntrziere de o perioad de ceas. Spre deosebire de modul
minim unde dialogul cu procesorul pentru preluarea magistralei se fcea numai
pe un canal HOLD/HLDA, n modul maxim pot aprea ntrzieri datorit
dialogului pe cele dou canale RQ / GT . Astfel, dac 8086 a generat o achitare
pe una din liniile RQ / GT , o posibil cerere aprut pe cealalt linie nu va primi
achitarea dect dup ce primul solicitant va elibera magistrala. ntrzierea ntre
eliberarea unei linii RQ / GT i achitarea unei cereri n ateptare emise pe
cealalt linie este n general de o perioad de ceas, figura 1.30. Uneori, situaiile
n care pe timpul prelurii magistralei pe RQ / GT1 apare o cerere pe canalul
RQ / GT0 ntrzierea ntre eliberarea canalului 1 i achitarea canalului 0 poate fi
de dou perioade de ceas, n funcie de existena unei cereri de transfer n
ateptare emise de unitatea de execuie. Aceast cerere de transfer emis de UE
va fi amnat n favoarea rezolvrii cererii de pe RQ / GT0 , dar cu "preul"
decalrii achitrii pe canalul 0 cu nc o perioad de ceas. Observm deci c
microprocesorul, fiind cel mai puin prioritar ca solicitant de magistral,
sistemul poate fi blocat, agat, de unul dintre solicitanii exteriori. Ieirea dintro astfel de blocare se poate face cu ajutorul unei tehnici de tip ceas de gard,
watchdog.

1.3.3.8. Alte particulariti ale funcionrii n modul maxim


Starea cozii de ateptare dat de ieirile QS1, QS0, indic ce tip de
informaii este extras din coada de ateptare intern i cnd aceasta din urm
este iniializat datorit unui transfer al controlului. Monitoriznd liniile de stare
S2 , S1 i S0 pentru instruciunile extrase de microprocesor, S2 , S1 , S0 =1,0,0
indic acces-cod , A0 i BHE care precizeaz dac accesul se face pe octet sau
pe cuvnt, i liniile QS1 i QS0 pentru instruciunile care
63

prsesc coada de ateptare, se poate "urmri" din exterior execuia


instruciunilor. Aceast tehnic este utilizat att de coprocesoare pentru
detectarea execuiei unei instruciuni ESCAPE prin care li se comunic sarcini
specifice ct i, de exemplu, pentru depanare i punere la punct, n cadrul unor
module de logic specializate, de tip analizor logic, care pot s "prind" o
execuie la o anumit adres de memorie. Starea cozii de ateptare este valid n
ciclul de ceas urmtor efecturii operaiei.

CLK

__ __.

Eliberare

RQ/GT0

__ __.

Achitare

RQ/GT1

a. O cerere achitata pe canalul 0 urmata de o cerere pe canalul 1

CLK

__ __.

Eliberare

RQ/GT0

Situatie tipica

__ __.

Achitare

RQ/GT1

Uneori
Achitare
b. O cerere achitata pe canalul 1 urmata de o cerere pe canalul 0

Figura 1.30. ntrzieri la achitarea cererii de preluare a magistralei pe liniile RQ / GT

Controlul accesului la resursele divizate n sisteme complexe, multimicroprocesor, se poate face n modul de lucru maxim, aa cum am mai spus,
cu ajutorul ieirii LOCK . Aceast ieire este activat la execuia unei
instruciuni precedate de prefixul LOCK, mai exact, n primul ciclu de ceas
urmtor "execuiei" prefixului. Ieirea va rmne activ nc un ciclu de ceas
dup executarea instruciunii precedate de prefixul LOCK, figura 1.31. n
aceast figur se poate vedea, de exemplu, comportarea ieirii LOCK la
execuia instruciunii XCHG cu prefix LOCK utilizate pentru implementarea unui
mecanism uzual de tip testare i poziionare semafor:
lock xchg reg, memorie

; reg este orice registru


; MEMORIE este adresa
; semaforului
64

Extragere Executie Extragere Executie


LOCK
LOCK instruct. 1 instruct. 1

Extragere Executie Extragere Executie


LOCK
LOCK instruct. 2 instruct. 2

Extragere
instruct. 3

CLK
QS0
(Starea cozii)

LOCK

Instr.1

LOCK

Instr.2
(XCHG)

Instr.3

_____
LOCK

Figura 1.31. Activarea semnalului LOCK

Aici prefixul LOCK previne accesul unei alte uniti centrale la semafor,
locaia MEMORIE, pe timpul operaiei de testare i poziionare a semaforului.
O alt ntrebuinare eficient a prefixului LOCK este n cazul transferurilor pe
blocuri folosite pentru schimbarea rapid de mesaje ntre unitile centrale ale
sistemelor multiprocesor. n figura 1.31 starea cozii, validat n timpul ciclului
de ceas urmtor operaiei efectuate asupra cozii, este reprezentat de QS0,
poziionat pe "1" la extragerea din coad a primului octet al codului-operaie. n
figur este prezentat execuia succesiv a trei instruciuni. Observm nti c
sunt necesare dou perioade de ceas pentru extragere i decodare execuia
prefixului LOCK , echivalent cu ntrzierea pn la activarea ieirii LOCK .
Ieirea LOCK va deveni aadar activ odat cu nceputul instruciunii pe care o
precede prefixul. Ea va rmne activ nc o perioad dup terminarea
instruciunii, trecnd pe "1" ntre execuiile a dou instruciuni succesive, chiar
dac ambele sunt precedate de prefix, cazul din figur. Dac n coada de
ateptare se afl numai prefixul, instruciunea pe care o precede nefiind nc
extras din memorie, ieirea LOCK va fi activat imediat dup execuia
prefixului i va rmne aa pn dup aducerea instruciunii n coad i
executarea ei. Mai trebuie fcut i observaia c pe timpul execuiei unei
instruciuni "blocate", precedate de prefixul LOCK, UIM mai poate s ncarce
coada de ateptare a microprocesorului, magistrala fiind de fapt numai a lui pe
durata execuiei instruciunii datorit prefixului LOCK.
Pe timpul execuiei unei instruciuni "blocate" orice cerere RQ / GT va
fi nregistrat urmnd a fi achitat dup terminarea execuiei instruciunii. De
asemenea, ntreruperile care apar n timpul execuiei unui prefix nu vor fi
achitate, dac sunt evident validate, dect dup execuia instruciunii precedate
de prefix. Excepie fac instruciunile care permit servirea ntreruperilor pe
timpul execuiei lor: HALT, WAIT sau instruciunile pe iruri.
65

1.3.4.

GENERAREA CEASULUI I A SEMNALELOR DE


INIIALIZARE I READY CU AJUTORUL CIRCUITULUI
8284

1.3.4.1. Circuitul 8284


Circuitul 8284, realizat n tehnologie bipolar, asigur generarea
semnalelor de ceas n sistemele realizate n jurul microprocesoarelor 8086 sau
8088, sincronizarea semnalului READY i generarea semnalului de iniializare
RESET. Schema-bloc a circuitului este dat n figura 1.32 iar conexiunile
externe n figura 1.33. Prezentm n continuare succint semnificaia conexiunile
externe.
AEN1, AEN2 , Address Enable, validare adres. Intrri active pe "0"
servind pentru validarea semnalelor READY corespunztoare, RDY1 respectiv
RDY2. Cele dou perechi de semnale AEN1,2 /RDY1,2 sunt utilizabile n
configuraii de sisteme n care procesorul deservit de circuitul 8284, poate avea
acces la dou magistrale, pe fiecare putndu-se gsi mai multe uniti centrale,
de exemplu dou magistrale de tip MULTIBUS. n configuraiile simple, cu o
singur unitate central intrrile AEN se pot conecta la "0" validnd tot timpul
sincronizarea semnalelor READY.

RDY1, RDY2, Bus Ready (Transfer Complete), magistral liber


(transfer terminat). Intrare activ pe "1" indicnd procesorului c transferul cu
unul din dispozitivele aflate pe magistrala de date a sistemului s-a ncheiat:
octetul a fost recepionat sau emis.
READY, Gata. Ieire activ pe "1" reprezentnd semnalul cu care se
poate comanda intrarea READY a microprocesoarelor 8086 sau 8088 pentru a le
trece n starea de ateptare. Semnalul se obine prin sincronizarea cu ceasul CLK
a semnalelor asincrone aprute la intrrile RDY1 sau RDY2. READY va fi ters
dup un timp ce satisface timpul de meninere impus de microprocesor.
X1, X2. Intrri la care se conecteaz cuarul a crui frecven trebuie s
fie de trei mai mare dect frecvena dorit a ceasului microprocesorului.
F / C , Frequency/Cristal Select, selecie frecven/cuar. Intrare prin
care se poate selecta sursa de obinere a semnalelor de ceas pentru
microprocesor: frecven extern la intrarea EFI sau oscilator cu cuar. F / C =1
selecteaz generarea ceasului cu ajutorul intrrii EFI.

EFI, External Frequency Input, intrare de frecven extern. Semnalul


prezentat la aceast intrare este de tip TTL cu factor de umplere 1/2 i frecven
de trei ori mai mare dect frecvena dorit a ceasului microprocesorului.
66

____
RES

X1

RESET

CK
Oscilator

OSC

X2
CLK
_
F/C

3
2

EFI
CSYNC
_____
RDY1
AEN1
_____
AEN2
RDY2

PCLK

READY

CK
Figura 1.32. Schema bloc a circuitului 8284

CLK, Processor Clock, ceas pentru procesor. Ieire de ceas utilizat de


microprocesor i dispozitivele conectate pe magistrala lui local. Frecvena
ceasului CLK este de trei mai mic dect frecvena cuarului sau a semnalului de
la intrarea EFI i are un factor de umplere 1/3. Nivelul "1" al acestei ieiri,
garantat de cel puin 4V la o tensiune de alimentare VCC=5V10% i un
consum de 1mA, permite utilizarea ceasului CLK att pentru dispozitive
bipolare ct i pentru cele MOS.
PCLK, Peripheral Clock, ceas pentru periferice. Ieire de ceas
utilizabil pentru dispozitivele periferice mai lente. Frecvena este de dou ori
mai mic dect a lui CLK i factorul de umplere 1/2. PCLK este de tip TTL.
OSC, Oscillator Output, ieirea oscilatorului. Ieirea TTL, negat, a
oscilatorului avnd frecvena cuarului. Ieirea nu este afectat de opiunea
F / C fiind comandat direct de oscilatorul cu cuar. Dac nu se folosete cuarul
ci intrarea extern EFI ieirea OSC este nedeterminat. Raporturile de frecven
ntre OSC, CLK i PCLK se pot vedea n figura 1.34.
RES , Reset In, intrare de iniializare. Intrare de tip trigger Schmitt
activ pe "0" la care se poate conecta o reea RC pentru generarea semnalului de
iniializare la punerea sub tensiune sau cu ajutorul unui comutator.
RESET, iniializare. Ieire activ pe "1" destinat iniializrii
microprocesorului i circuitelor aferente.
67

CSYNC

18

VCC

PCLK
____
AEN1

17

X1

16

X2

RDY1

15

N.C.

READY

14

EFI
_
F/C

RDY2

8284

13

_____
AEN2

12

CLK

11

OSC
___
RES

GND

10

RESET

Figura 1.33. Conexiunile externe ale circuitului 8284

OSC

CLK
PCLK

Figura 1.34. Relaiile ntre OSC, CLK i PCLK

CSYNC, Clock Synchrozation, sincronizare ceas. Intrare de sincronizare

activ pe "1" cu ajutorul creia se pot controla mai multe circuite 8284 pentru a
genera ceas n faz. Numrtoarele interne ale circuitului sunt iniializate cu
CSYNC=1 i validate cu CSYNC=0. Generarea semnalului de sincronizare
aplicat la intrarea CSYNC trebuie fcut sincron cu EFI. CSYNC este utilizat
deci mpreun cu EFI, n cazul folosirii ca surs a ceasului a oscilatorului intern
intrarea CSYNC legndu-se la mas.
Diagramele de timp care ilustreaz funcionarea circuitului se dau n
figura 1.35 iar parametrii de timp n tabelele 1.9 i 1.10.
68

Figura 1.35. Diagramele de timp pentru circuitul 8284


Tabelul 1.9. Parametrii 8284. Cerine de timp
Parametru

TEHEL
TELEH
TELEL
TR1VCL
TCLR1X
TA1VR1V
TCLA1X
TYHEH
TEHYL
TYHYL
TI1HCL
TCLI1H
Nota 1:

Semnificaie

Valoare
minim

Valoare
maxim

Timpul ct EFI este "1"


13ns
Timpul ct EFI este "0"
13ns
Perioada EFI
TEHEL+TELEH+1
Frecvena cuarului
12MHz
25MHz
Timpul de stabilizare al semnalelor RDY1,2 fa
35ns
de CLK
Timpul de meninere al semnalelor RDY1,2 fa
0ns
de CLK
15ns
Timpul de stabilizare al semnalelor AEN1,2 fa de
RDY1,2
0ns
Timpul de meninere al semnalelor AEN1,2 fa de
CLK
Timpul de stabilizare al semnalului CSYNC fa
20ns
de EFI
Timpul de meninere al semnalului CSYNC fa
20ns
de EFI
Durata lui CSYNC
2TELEL
65ns
Timpul de stabilizare al semnalului RES fa de
CLK
20ns
Timpul de meninere al semnalului RES fa de
CLK

=durata frontului cresctor + durata frontului descresctor al semnalului


EFI(maximum 5ns+5ns=10ns)

69

Tabelul 1.10. Parametrii 8284. Rspunsuri n timp


Parametru

TCLCL
TCHCL
TCLCH
TCH1CH2
TCL2CL1
TPHPL
TPLPH
TRYLCL
TRYHCH
TCLIL
TCLPH
TCLPL
TOLCH
TOLCL

Semnificaie

Valoare
minim

Perioada ceasului CLK


125ns
Timpul ct CLK este "1"
(1/3)TCLCL+2ns
Timpul ct CLK este "0"
(2/3)TCLCL15ns
Durata fronturilor cresctor i descresctor ale
ceasului CLK
Timpul ct PCLK este "1"
TCLCL20ns
Timpul ct PCLK este "0"
TCLCL20ns
Timpul ntre dezactivarea semnalului READY i CLK
8ns
Timpul ntre activarea semnalului READY i CLK (2/3)TCLCL15ns
ntrzierea ntre CLK i RESET
40ns
ntrzierea ntre CLK i frontul cresctor al PCLK
ntrzierea ntre CLK i frontul descresctor al
PCLK
ntrzierea ntre OSC i frontul cresctor al CLK
5ns
ntrzierea ntre OSC i frontul descresctor al
2ns
CLK

Valoare
maxim

10ns

22ns
22ns
12ns
20ns

1.3.4.2. Generarea ceasului

n figura 1.36 se dau caracteristicile pe care trebuie s le ndeplineasc


semnalul de ceas CLK al microprocesorului 8086. Dup cum se vede, 8086 are
nevoie de un ceas cu fronturi rapide, maximum 10ns, i niveluri de tensiune "0"
ntre 0,5V i +0,6V i "1" ntre 3,9V i VCC+1V. Frecvena maxim a ceasului
pentru 8086, varianta standard, este de 5MHz. Frecvena minim a ceasului,
avnd n vedere existena n interiorul microprocesorului a unor celule de
memorie dinamic, este de 2MHz. Din cauza acestei ultime restricii
funcionarea pas-cu-pas a lui 8086, la nivel de instruciune sau de ciclu-main,
nu poate fi implementat hardware prin blocarea ceasului. Ea este posibil
numai prin poziionarea software a indicatorului de condiii T, aa cum vom
vedea n 1.4.5.1 i n 2.3.6. Pentru a satisface cerinele minime de timp care
s asigure o funcionare intern optim, ceasul microprocesorului se recomand,
dup cum am menionat, s aib un factor de umplere 1/3. Aceast recomandare
apare mai stringent cu ct ne apropiem de frecvena maxim de lucru. Circuitul
8284, prezentat n capitolul anterior, asigur generarea unui ceas cu factor de
umplere 1/3, nivelurile de tensiune i fronturile lui respectnd cerinele impuse
de microprocesor.
70

Maximum

Maximum

10 ns

10 ns

+5
Minimum
3,9

118,33 ns

1,5

Minimum

0,6

68,6 ns

0
Minimum 200 ns

-0.5

Maximum 500 ns

Figura 1.36. Caracteristicile ceasului pentru microprocesorul 8086

Dup cum se poate deduce din prezentarea conexiunilor externe i a


schemei bloc ale circuitului 8284, ca surs pentru generarea ceasului se poate
folosi fie un semnal extern la intrarea EFI, fie oscilatorul din interior proiectat s
oscileze cu un cuar extern conectat ntre X1 i X2 pe frecvena de rezonan
serie a acestuia. Sursa trebuie s oscileze pe o frecven de trei ori mai mare
dect frecvena dorit a ceasului CLK. Pentru o generare ct mai stabil i
precis a ceasului fabricanii circuitului recomand utilizarea cuarurilor ce
oscileaz pe frecvena fundamental i au o rezisten serie ct mai mic. De
asemenea, deoarece oscilatorul nu apare pentru cuar ca o surs ideal de
semnal avnd o component inductiv, pentru a anula efectul acestei
componente oscilaia pe o frecven mai mic dect frecvena de rezonan
serie pur , trebuie adugat n serie cu cristalul, la intrarea X2, un condensator,
CL n figura 1.37. Acest condensator servete, de asemenea, i la separarea n
curent continuu a cuarului ceea ce asigur o protecie a acestuia din urm
mpotriva unor polarizri n tensiune continu care ar putea s deranjeze i chiar
s distrug structura cristalin a cuarului.
17
18
CL

13

X1

OSC

12

8284
X2
_
F/C

8086

CLK

19

CLK

Figura 1.37. Conectarea unui cuar la 8284

71

Impedana condensatorului, XCL, depinde de frecvena de oscilaie,


fiind data de:

XCL =

1
.
2 F CL

Se recomand ca rezistena-serie a cristalului plus XCL s fie mai mic dect


1k pentru a nu opri funcionarea oscilatorului prin reducerea amplificrii n
bucl sub 1.
Valoarea condensatorului descrete deci cu frecvena cristalului fiind,
de exemplu, aproximativ 24pF la 12MHz i 8pF la 22MHz. Dac sistemul nu
necesit alegerea precis a unei frecvene, ceea ce ar fi impus corelarea exact a
valorii condensatorului cu frecvena de rezonan serie a cuarului, ci doar
stabilitatea ei, fabricanii recomand utilizarea unui condensator de 1215pF
pentru un cuar de 15MHz n vederea generrii ceasului CLK la 5MHz. Circuitul
imprimat, n general elementele tehnologice folosite, fire, lipituri, socluri, pot
modifica valoarea componentei inductive i deci conduce la schimbarea valorii
condensatorului CL.
Intrarea EFI se utilizeaz atunci cnd este necesar o surs de semnal a
crei frecven s fie foarte precis sau s fie variabil i pentru situaiile cnd
mai multe circuite 8284 comandnd uniti centrale care trebuie sincronizate, au
nevoie de o surs comun, unic, de oscilaie, figura 1.38. Semnalul extern
aplicat la intrarea EFI a circuitului trebuie s fie compatibil TTL, s aib un
factor de umplere 1/2 i o frecven de trei ori mai mare dect frecvena dorit a
ceasului CLK. Frecvena maxim a acestui semnal este puin peste 24MHz,
timpul minim pe "0" sau pe "1" fiind de 13ns. Frecvena minim este impus de
microprocesor. La folosirea unei surse comune pentru generarea ceasului de
ctre mai multe circuite 8284 distribuite n cadrul sistemului fiecare 8284 va
trebui comandat direct de la surs printr-o legtur proprie. Se recomand,
pentru minimizarea zgomotului, ca aceste legturi s fie realizate cu fir bifilar,
torsadat, semnalul fiind emis i recepionat cu pori ca 74LS04, avnd fronturi
mai lente, masa firului torsadat conectnd mesele sursei i receptorului, figura
1.37. De asemenea, pentru micorarea alunecrii ceasului aceste legturi trebuie
s fie de aceeai lungime. Cu toate acestea variaia ntrzierii ntre EFI i
ceasurile CLK generate de mai multe circuite 8284, ca n figura 1.38, poate
ajunge la 3540ns. Aceast variaie se reduce la 1525ns dac circuitele sunt
mpachetate n acelai tip de capsul, au acelai tensiune de alimentare i
lucreaz la aceeai temperatur.
Pentru sincronizarea ceasurilor cu evenimente externe proiectanii au
prevzut intrarea CSYNC: CSYNC=1 foreaz ieirile de ceas CLK i PCLK pe
"1" iar CSYNC=0 valideaz generarea ceasurilor, prin pornirea numrtoarelor,
72

cu primul front pozitiv al semnalului emis de sursa de frecven, oscilatorul cu


cuar sau EFI. CSYNC trebuie s fie activ pe "1" cel puin dou perioade ale
semnalului emis de sursa de frecven. n figurile 1.39a i b se prezint dou
moduri de obinere a unui semnal de comand CSYNC sincronizat, pornind de la
o condiie de sincronizare extern i funcie de sursa de generare a ceasurilor,
EFI respectiv OSC. Cele dou bistabile din figura 1.39a sunt acionate cu EFI
pentru a se asigura timpii de stabilizare i meninere impui comenzii CSYNC,
figura 1.39c. Aceast negare a semnalului surs nu mai este necesar la
utilizarea oscilatorului local deoarece OSC reprezint ieirea negat a
semnalului emis de acesta. nc o observaie: deoarece activarea lui CSYNC
poate conduce, prin trecerea imediat pe "1" a ceasului CLK, la violarea
timpului TCLCH de minimum 118ns, se recomand ca aceast activare s se
fac fie pe timpul iniializrii, fie pe timpul ct CLK=1. Dac se face pe timpul
iniializrii, invalidarea lui CSYNC trebuie realizat cu minimum patru perioade
ale ceasului CLK nainte de terminarea RESET-ului pentru a se garanta
iniializarea microprocesorului.

17
18
CL 13

X1

OSC

12

14
+5V
1K

8284
X2
_
F/C

8284

EFI

CLK

8284
_
13 F/C
14

+5V
1K

CLK

_
13 F/C
14

+5V
1K

EFI

EFI

CLK

8284
_
13 F/C

Figura 1.38. Mai multe circuite 8284 avnd o surs comun de oscilaie

73

+5V
1K

Conditia de
sincronizare
externa

Q
La intrarea
CSYNC

Frecventa
externa

CK

CK

La intrarea EFI

a)

+5V

17

1K

D
CK

OSC

12

8284

18
13

Conditia
de sincronizare
externa

X1

X2
_
F/C

1 CSYNC CLK 8

CK

b)
166 ns maximum
40 ns minimum
17,5 ns 17,5 ns
min

min

EFI

CSYNC

c)

TYHEH

Figura 1.39. Sincronizarea comenzii CSYNC : cu o surs extern de freven (a); cu oscilatorul cu
cuar (b); timpul de stabilizare al comezii CSYNC fa de EFI (c)

74

1.3.4.3. Iniializarea

Iniializarea microprocesorului 8086 se realizeaz prin activarea,


trecerea pe "1", a conexiunii RESET. Durata minim de activare a intrrii RESET
este de patru perioade ale ceasului CLK, cu excepia iniializrii la punerea sub
tensiune cnd este necesar un impuls de 50s. La apariia semnalului RESET
8086 va termina operaia n curs i va rmne inactiv pn la terminarea
impulsului de iniializare. Semnalul RESET, sincronizat intern, va declana dup
revenirea sa pe "0" o secven intern de iniializare de aproximativ zece cicli
CLK. Dup acest interval, microprocesorul i va relua funcionarea normal
ncepnd cu instruciunea de la adresa FFFF0H.
La iniializare, microprocesorul 8086 va elibera magistrala de date,
adrese i comenzi conform tabelului 1.11. Aa cum se vede magistrala
multiplexat va fi trecut odat cu activarea intrrii RESET n starea a treia. O
alt parte a semnalelor va fi nti poziionat pe "1", pe durata unei
semiperioade a ceasului, cnd CLK este "0" figura 1.40, dup care va fi trecut
n starea a treia. n modul minim ALE i HLDA vor fi inactivate, trecute pe "0".
n modul maxim liniile RQ / GT sunt, de asemenea, inactivate, trecute pe "1",
iar liniile de stare a cozii QS1,0 devin 0,0 nici o operaie. Deoarece n aceast
din urm situaie la iniializare indicatorii stivei, dup cum se vede, nu sunt
resetai, QS1,0=1,0, se impune, n sistemele unde se folosete o logic extern
de urmrire a strii cozii, iniializarea ei cu semnalul general RESET.

CLK

Intrarea RESET
Semnalul RESET
sincronizat intern

Magistrala
microprocesorului
(semnalele 49,
tabelul 1.11)

Trecere in starea de
mare impedanta
Trecere in starea
inactiva

Figura 1.40. Inactivarea magistralei microprocesorului 8086 la iniializare

75

Tabelul 1.11. Starea magistralei microprocesorului 8086 la iniializare

Denumirea semnalului

Starea semnalului la iniializare

AD15AD0
A19/S6A16/S3
S2(M / IO)

Starea a 3-a
Starea a 3-a
Starea a 3-a
Trecut pe "1", apoi n starea a 3-a

S1(DT / R)

Trecut pe "1", apoi n starea a 3-a

S0(DEN)

Trecut pe "1", apoi n starea a 3-a

LOCK / WR

RQ / GT0

Trecut pe "1", apoi n starea a 3-a


Trecut pe "1", apoi n starea a 3-a
Trecut pe "1", apoi n starea a 3-a
"0"
"0"
"1"

RQ / GT1

"1"

QS0
QS1

"0"
"0"

BHE / S7

RD
INTA

ALE
HLDA

Pentru a se asigura starea inactiv a liniilor de comand i control ale


microprocesorului n special n sistemele unde curenii de scurgere sau
capacitatea parazit pot conduce la niveluri de tensiune "1" sub nivelul admis de
dispozitivele utilizate, se recomand legarea la VCC a acestor linii cu rezistene
de 22k. n sistemele care lucreaz n modul maxim aceast cerin este
asigurat de 8288 care conine rezistene interne legate la VCC. Datorit acestor
rezistene 8288 interpreteaz la iniializare liniile de stare S2S0, pe "1", ca
reprezentnd starea pasiv a microprocesorului i i poziioneaz ieirile
conform tabelului 1.12. Dac iniializarea apare n timpul unui ciclu de
magistral trecerea liniilor S2S0 n starea pasiv va conduce la terminarea
ciclului i revenirea liniilor de comand n starea inactiv. Reinem deci c 8288
nu i trece ieirile de comand n starea a treia atunci cnd S2S0 semnific
starea pasiv a microprocesorului. Dac n sistem, la iniializare, este necesar
aceast trecere a comenzilor n starea de impedan nalt, semnalul de
iniilizare va trebui conectat la intrarea AEN a lui 8288 precum i, pentru
invalidarea ntregii uniti centrale, la intrrile de validare-ieire, OE , ale latchurilor de adrese. Transceiver-ele pentru date sunt dezactivate cu ajutorul ieirii
DEN, figura 1.41. Un nivel "1" corect al ieirilor de comand ale circuitului
8288 la trecerea lor n starea a treia se asigur prin legarea lor la VCC cu
ajutorul unor rezistene de 2,2k.
76

Tabelul 1.12. Ieirile circuitului 8288 la iniializare


Denumirea semnalului

Starea semnalului la iniializare

ALE
DEN

0
0
1
0/1
1

DT / R
MCE / PDEN

Comenzi

Semnalul de iniializare a microprocesorului, RESET, poate fi generat,


aa cum am spus n 1.4.4.1, cu ajutorul circuitului 8284. Comanda acestui
semnal se face la intrarea de tip trigger Schmitt, RES , figura 1.42a. Dup cum
se tie, astfel de intrri asigur, prin utilizarea unei reacii interne pozitive care
accelereaz tranziiile lente i fixeaz praguri diferite pentru fronturile pozitive
respectiv negative, transformarea semnalelor de intrare cu variaie lent n
semnale de ieire clar definite, fr oscilaii, stabile. Diferena ntre cele dou
praguri, histerezis-ul la intrarea RES , este de minimum 0,25V. Aceasta
nseamn c un semnal "0" la intrarea RES , a crui valoare maxim este
VILmax=0,8V, va rmne activ n tranziia pozitiv spre valoarea "1" pn la
1,05V. n sensul invers un semnal "1" la intrarea RES , a crui valoare minim
este VIHmin=2,6V, va fi considerat n continuare "1", n tranziia spre "0", pn
va scdea sub 2,35V.
____
AEN
8288
DEN
8284
RESET

___
OE
8282

RESET
8086

ADRESE
___
OE
8286
DATE
Figura 1.41. Dezactivarea la iniializare a controlorului 8288, a latch-urilor de adrese i a
transceiver-elor de date

77

La punerea sub tensiune, intrarea RES trebuie s rmn sub 1,05V cel
puin 50s dup ce tensiunea de alimentare VCC a atins 4,5V, figura 1.42b.
Histerezis-ul de la intrarea RES permite asigurarea acestei cerine prin
conectarea unui circuit RC simplu, figura 1.42a. Constanta RC va rezulta din
formula obinuit:
t

V ( t ) = V 1 e RC ,

unde V=4,5V. Valoarea constantei RC rezultat din aceast formul nu ine cont
de timpul n care tensiunea de alimentare atinge 4,5V i de sarcina acumulat n
condensator n acest timp. Pentru t=50s i V(t)=1,05V, n formula de mai sus,
se obine nti constanta de timp RC=188106 i apoi durata iniializrii de
162s dup ce tensiunea de alimentare a atins 4,5V. Aceast durat reprezint
timpul de cretere a tensiunii la intrarea RES pn la valoarea de comutare
V(t)=2,6V. Dac se dorete o precizie mai bun pentru durata iniializrii
ncrcarea condensatorului de la intrarea RES poate fi fcut cu un generator de
curent constant care va asigura o cretere liniar i nu invers exponenial a
tensiunii la intrarea RES .
+V

11

___
RES
8284

V
___
RES

5
4
2,6

3
2

1,05

50 s

162 s

Figura 1.42. Comanda iniializrii cu ajutorul circuitului 8284 : circuitul RC de la intrarea


RES (a); semnalul aplicat la intrarea RES (b)

78

1.3.4.4. Generarea semnalului READY


Pentru formarea ctre microprocesor a semnalului READY, necesar
pentru introducerea strilor de ateptare, care s satisfac cerinele de timp
prezentate n 1.4.2.5 i 1.4.3.6, se poate utiliza, aa cum am mai spus,
circuitul 8284 care are prevzute n acest scop intrrile separate RDY1 i RDY2
validate de AEN1 , respectiv AEN2 . La aceste intrri se va conecta logica
propriu-zis de generare a strilor de ateptare realizat n funcie de
configuraia sistemului i dispozitivele de memorie i/sau I/O folosite. Cele
dou intrri RDY1 i RDY2, validate, sunt trecute printr-o poart SAU LOGIC
formnd un semnal intern eantionat la nceputul fiecrui ciclu de ceas, figura
1.43. Semnalul eantionat este generat la ieirea READY cu o ntrziere de
maximum 8ns, ceea ce satisface timpii de stabilizare la intrarea READY a
microprocesorului, figura 1.15. Semnalul eantionat, fiind memorat, nu se poate
modifica dect cel mai devreme cu urmtorul front negativ al ceasului CLK,
ceea ce asigur i timpii de meninere impui de 8086. Semnalele generate la
intrrile RDY1 i RDY2 ale circuitului 8284 trebuie s satisfac timpul de
stabilizare minim TR1VCLmin=35ns fa de frontul negativ al ceasului iar cele
generate la intrrile AEN, minimum TR1VCLmin+ TA1VR1Vmin= 35ns+15ns
=50ns.

T1

T2

T3

T4/TW

CLK
Timp de stabilizare la intrarea RDY a
lui 8284

Minimum 35 ns

RDY
Intrare 8284
Timp de mentinere la intrarea RDY a
lui 8284

Minimum 0 ns

READY
Iesire 8284
Intarzierea la iesirea READY a lui
8284

Maximum 8 ns

Maximum 8 ns

Figura 1.43. Relaii de timp la generarea semnalului READY cu ajutorul circuitului


8284
79

Pentru sistemele care au nevoie de o singur intrare RDY intrarea AEN


corespunztoare se poate lega la GND, cealalt intrare de validare conectndu-se
la VCC printr-o rezisten de aproximativ 1k, figura 1.44a. Dac semnalul
generat de logica de introducere a strilor de ateptare este activ pe "0" se pot
utiliza intrrile AEN , figura 1.44b. Un exemplu de logic pentru inserarea unei
singure stri TW, suficient pentru marea majoritate a dispozitivelor de
memorie sau I/O care nu pot s lucreze la viteza maxim a microprocesorului,
este dat figura 1.45. Selecia unuia dintre dispozitivele lente din sistem, la noi
CS1 sau CS2 , conduce la bascularea bistabilului i trecerea semnalului RDY pe
"0", figura 1.46. Trecerea pe "0" a bistabilului se face cu frontul pozitiv din T2,
ceea ce asigur formarea corect a semnalului READY ctre microprocesor i
introducerea unei stri TW dup T3. Revenirea pe "1" a bistabilului cu frontul
pozitiv din T3 indic procesorului ieirea din TW i intrarea n T4 pentru a
ncheia ciclul. Urmtoarea trecere pe "0" a bistabilului n TW nu mai
influeneaz desfurarea operaiei. Schema se iniializeaz cu ALE la nceputul
fiecrui ciclu-main.

Logica de
introducere a
starilor de
asteptare

____
AEN1
8284
RDY1
____
AEN2
RDY2

3
RDY

4
7
6

Logica de
introducere a
starilor de
asteptare

____
RDY

3
4
7
6

1K

8284
____
AEN1
RDY1
____
AEN2
RDY2

1K
+5V

+5V

Figura 1.44. Generarea semnalului READY cu ajutorul circuitului 8284 : utilizarea intrrilor
RDY1 sau RDY2 (a); utilizarea intrrilor AEN1 , AEN2 (b)
74125
+5V

___
CS1
74125

1K

7473
J
CK

___
CS2

K
CLK

_
Q
CLR

La intrarea RDY
a lui 8284

ALE

Figura 1.45. Un circuit pentru inserarea unei singure stri TW

80

T1

T2

T3

T4

T1

T2

T3

TW

T4

CLK
ALE)
__
CS
RDY
Intrare
8284

Figura 1.46. Diagrama de funcionare a circuitului din figura 1.45

1.3.5.

SISTEMUL DE NTRERUPERI

La 8086 ntreruperile pot fi cauzate att de evenimente hardware, ct i


de evenimente software. ntreruperile hardware, generate de circuite exterioare
microprocesorului, pot fi mascabile sau nemascabile. ntreruperile software,
nemascabile, grupate mai demult n categoria derute [12], sunt generate de
logica programelor executate pe 8086.
Sistemul de ntreruperi al procesorului 8086 are la baz o tabel a
vectorilor de ntrerupere plasat n memoria sistemului ntre adresele 00000H i
003FFH, figura 1.47. Fiecare vector const din doi octei reprezentnd
numrtorul de program, pointer-ul de instruciune, IP, i doi octei ce specific
valoarea asociat a segmentului de cod, registrul CS. Cele dou valori, IP i CS,
formeaz adresa rutinei de serviciu (vezi capitolul 1.2). Tabela conine
maximum 256 de vectori de ntrerupere preciznd deci adresele de nceput ale
rutinelor de serviciu ale ntreruperilor. Aceste rutine pot fi plasate oriunde n
spaiul de adresare de 1Moctet al microprocesorului. Fiecrui vector din tabel
i este asociat, aa cum se poate vedea n figura 1.47, un numr ce reprezint
tipul ntreruperii. Numrul, preluat din logica extern sau din program,
multiplicat cu 4, d deplasamentul fa de nceputul tabelei la care se gsete
vectorul de ntrerupere asociat. Acest sistem de ntreruperi "vectorizat" este
deosebit de flexibil permind utilizatorului s specifice cum crede de cuviin
adresele de memorie ale tuturor rutinelor de serviciu ntrebuinate. Dac nu sunt
definite toate cele 256 de ntreruperi, utilizatorul va preciza numai adresele
rutinelor folosite, recomandndu-se, totui, cel puin, n perioada de punere la
punct, asignarea tipurilor de ntrerupere neutilizate cu adresa unei rutine
separate pentru detectarea uoar a ntreruperilor parazite.
81

Numarul tipului
de intrerupere
0
1
Numarul tipului
de intrerupere

0000010100

Adresa in tabela
vectorilor

4
5
6

255

Adrese
memorie
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS

000
004
008
00C
010
014
018

Tabela
vectorilor de
intrerupere

3FE
400

Rutina de
serviciu a
intreruperii
Tip 5

Figura 1.47. Tabela vectorilor de ntrerupere la 8086

ntreruperile microprocesorului 8086 se mai pot clasifica n trei grupe:


ntreruperi predefinite generate de funcii speciale, ntreruperi hardware definite
de utilizator i ntreruperi software definite de utilizator. Vom descrie pe scurt
aceste tipuri de ntreruperi, vezi i figura 1.47.

1.3.5.1. ntreruperi predefinite


La invocarea din hardware sau din software a unei ntreruperi
predefinite microprocesorul va transfera controlul rutinei a crei adres este
specificat de vectorul asociat tipului de ntrerupere. Utilizatorul are sarcina s
scrie rutinele de serviciu i s iniializeze tabela vectorilor cu adresele
corespunztoare.
82

Tipul 0 mprire la 0. Aceast ntrerupere este invocat la orice


ncercare de mprire pentru care ctul depete valoarea maxim, cum este,
de exemplu, cazul mpririi la zero. ntreruperea nu este mascabil i poate fi
considerat ca o secven aparinnd operaiei de mprire.
Tipul 1 pas-cu-pas. ntreruperea apare dup o instruciune de la
poziionarea indicatorului de condiie Derut, T, n registrul de stare al
microprocesorului. Se permite astfel introducerea software a funcionrii pascu-pas n cadrul unei secvene de program. Secvena de ntrerupere ncepe cu
salvarea registrului de stare i a numrtorului de program i tergerea
indicatorului T permindu-se astfel execuia normal, nu pas-cu-pas, a rutinei
de serviciu specifice. La revenire n programul principal, modul de execuie
pas-cu-pas, este asigurat prin restaurarea IP, CS i a indicatorilor de condiii,
deci i a lui T. Nici aceast ntrerupere nu poate fi mascat.
Tipul 2 ntrerupere nemascabil, NMI. ntreruperea este de tip
hardware i are prioritatea cea mai nalt. Intrarea corespunztoare a
microprocesorului, conexiunea NMI, este comutat pe front i apoi sincronizat
n interiorul procesorului cu ceasul CLK. Pentru ca o ntrerupere NMI s fie
recunoscut, semnalul intern sincronizat trebuie s fie activ cel puin dou
perioade ale ceasului. De asemenea, dac intrarea NMI rmne pe "1" mai mult
vreme, revenirea pe "0", timpul ct st pe "0", nainte ca o nou ntrerupere s
fie declanat este de minimum dou perioade CLK. Semnalul de la intrarea lui
8086 poate fi dezactivat nainte de intrarea n rutina de serviciu. O atenie
deosebit trebuie acordat eliminarii spike-urilor, impulsurilor parazite, care pot
genera ntreruperi. ntreruperea NMI este rezervat, de obicei, evenimentelor
catastrofale cum sunt cderile de tensiune sau semnalizrile de la un sistem de
supraveghere de tip ceas de gard, watchdog.
Tipul 3 ntrerupere pe un octet. Este o ntrerupere software
nemascabil invocat de o instruciune reprezentat pe un octet, INT 3,
destinat n primul rnd ca ntrerupere de tip breakpoint pe parcursul punerii la
punct a programelor.
Tipul 4 ntrerupere la depire. Este o ntrerupere software
nemascabil care apare la execuia instruciunii INTO dac indicatorul de
condiie Depire, O, este poziionat. Instruciunea permite derutarea
programului la o rutin de serviciu n cazul apariiei unei erori de depire.
ntreruperile de tip 0 sau 2 pot aprea fr ca programatorul s
acioneze n vreun fel specific, cu excepia unei mpriri la 0 care ar putea fi o
greeal de programare. ntreruperile de tip 1, 3 i 4 necesit pentru a fi generate
acte contiente din partea programatorului. Toate tipurile de ntreruperi
prezentate mai sus, cu excepia NMI, sunt invocate software i sunt asociate
direct cu cte o instruciune specific.
83

1.3.5.2. ntreruperi software definite de utilizator


ntreruperile software sunt generate de instruciunea INT nn unde nn
reprezint numrul tipului de ntrerupere definit de utilizator. Instruciunile
INT, deci ntreruperile software, nu sunt mascabile cu ajutorul indicatorului de
condiii Validare/Invalidare ntrerupere, I. Revenirea din rutina de serviciu
apelat printr-o ntrerupere software se face cu instruciunea IRET.
Transferul controlului la o ntrerupere software se face la sfritul
instruciunii INT nn fr ca microprocesorul s iniieze pe magistral un ciclu
de achitare INTA. De asemenea, ntreruperile software vor invalida ntreruperile
mascabile prin punerea pe "0" a indicatorilor I i T.

1.3.5.3. ntreruperi hardware definite de utilizator


Aa cum am mai spus, ntreruperile hardware definite de utilizator sunt
iniiate de circuite speciale prin activarea, trecerea pe "1", a semnalului de la
intrarea INTR a procesorului. Aceste ntreruperi sunt mascabile cu ajutorul
bitului I din registrul de stare.
Starea intrrii INTR este testat n timpul ultimului ciclu de ceas al
fiecrei instruciuni. Excepie de la aceast regul fac instruciunile MOV i POP
cu un registru de segment, instruciunea WAIT, instruciunile pe iruri precedate
de prefixul de repetare REP.
n cazul instruciunilor MOV i POP cu un registru de segment
microprocesorul va testa starea conexiunii INTR dup executarea instruciunii
urmtoare instruciunilor MOV i POP menionate. Astfel, se permite ncrcarea
unui pointer de stiv de 32 de bii n registrele SS i SP fr pericolul apariiei
unei ntreruperi ntre cele dou ncrcri. O secven cum este i cea de mai jos
nu va fi deci interuptibil:
mov ss,
mov sp,

segment_stiva_nou
pointer_stiva_nou

n timpul instruciunii WAIT care ateapt trecerea pe "0" a intrrii


TEST a microprocesorului se testeaz i starea semnalului la conexiunea INTR
pentru a se permite executarea rutinelor de ntrerupere n timpul ateptrii.
Particularitea n aceast situaie const n faptul c atunci cnd se dectecteaz o
ntrerupere, 8086 mai extrage nc o dat instruciunea WAIT nainte de a
84

transfera controlul rutinei de serviciu. Aceasta pentru a garanta revenirea din


rutin tot la instruciunea de ateptare WAIT.
O alt situaie special apare i n cazul instruciunilor cu prefix.
Deoarece prefixele sunt considerate ca parte a instruciunii pe care o preced,
procesorul va eantiona semnalul INTR la sfritul execuiei instruciunii
incluznd n aceasta i prefixele. Excepia survine la instruciunile pe iruri
precedate de prefixul REP. Pentru aceste instruciuni testarea ntreruperii se face
la sfritul fiecrei repetri. Atunci cnd instruciunile repetitive pe iruri mai
sunt precedate i de alte prefixe, de exemplu LOCK, i apare o ntrerupere
microprocesorul va restaura la revenirea din rutina de serviciu numai prefixul
imediat precedent instruciunii. De aceea, pentru a nu perturba printr-o
ntrerupere execuia complet a instruciunii repetitive trebuie utilizat o
secven de program de tipul:
transfer_repetitiv: lock rep movs dest,cs:sursa
and cx,cx
jnz transfer_repetitiv
Codul obiect pe octei generat de asamblorul 8086 pentru instruciunea MOVS va
fi n ordinea cresctoare a adreselor: prefixul LOCK, prefixul REP, prefixul
Depire Segment (:), codul propriu-zis al instruciunii MOVS. La revenirea
dintr-o rutin de serviciu a ntreruperii va fi refcut numai prefixul Depire
Segment garantndu-se astfel execuia corect a nc unui transfer. Urmtoarea
instruciune verific terminarea transferului irului prin testarea valorii
contorului asociat instruciunii MOVS, registrul CX. Dac aceast valoare e
diferit de zero se sare la nceputul secvenei pentru a se termina execuia
instruciunii repetitive cu prefixe.

1.3.5.4. Prioritatea ntreruperilor i a cererii DMA


Ordinea de prioritate a ntreruperilor respect urmtoarele reguli:
INTR, ntreruperea hardware, este singura ntrerupere mascabil i
dac ea este detectat simultan cu alte ntreruperi, tergerea indicatorului I din
registrul de stare o va masca. Aceasta face ca INTR s fie de fapt ntreruperea cu
prioritatea cea mai sczut atta timp ct rutinele de serviciu ale celorlalte
ntreruperi nu revalideaz INTR prin poziionarea lui I;
85

T,I = 1
NMI

Instructiune
NMI (T,I = 1)
Salvare indicatori, CS si Ip
Stergere T si I
Transferul controlului
Pas cu pas (T,I =0)
Salvare indicatori, CS si Ip
Stergere T si I
Transferul controlului
Executia rutinei
de pas cu pas
Revenire (T,I =0)
Executia rutinei
de NMI
Revenire (T,I =1)
Executia instructiunii
urmatoare
Pas-cu-pas
Salvare indicatori, CS si IP
Stergere T si I
Transferul controlului

Functionarea normala
pas-cu-pas

Executia rutinei
de pas-cu-pas
Revenire (T,I =0)

Figura 1.48. O ntrerupere NMI pe timpul funcionrii pas-cu-pas i funcionarea normal


pas-cu-pas

86

T,I = 1
INTR

NMI

Impartire
Depasire

Salvare indicatori, CS si IP
Stergere T si I
Transferul controlului
NMI (T,I =0)
Salvare indicatori, CS si Ip
Stergere T si I
Transferul controlului

INTR activa

Executia rutinei
de NMI
Revenire (T,I =0)
Executia rutinei
dedepasire
Revenire (T,I =1)
INTR

Executia instructiunii urmatoare


Recunoastere INTR
INTR
Salvare indicatori, CS si IP
Stergere T si I
Transferul controlului
Pas-cu-pas (T,I = 0)
Salvare indicatori, CS si IP
Stergere T si I
Transferul controlului
Executia rutinei
de pas-cu-pas
Revenire (T,I =0)
Executia rutinei
de INTR
Revenire (T,I =1)

Continuarea executiei in pas-cu-pas a programului

Figura 1.49. Apariia simultan a ntreruperilor NMI, INTR, pas-cu-pas i ntreruperii de depire

87

n cadrul ntreruperilor nemascabile, NMI, pas-cu-pas i ntreruperi


software, ntreruperea pas-cu-pas are prioritatea cea mai nalt urmat de NMI i
ntreruperile software. Aceast ordine de prioritate este valabil numai n
relaiile dintre dou tipuri de ntreruperi nemascabile, ca n exemplul din figura
1.48. Excepia apare n cazul n care toate cele trei ntreruperi nemascabile sunt
n ateptare. n aceast situaie ordinea de execuie a acestor rutine este
urmtoarea: NMI, ntreruperea software, ntreruperea pas-cu-pas. Aadar
funcionarea pas-cu-pas se reia la execuia instruciunii urmtoare instruciunii
care a provocat ntreruperea software, figura 1.49.
n legtur cu cererea DMA precizm c apariia simultan a unei cereri
DMA i a ntreruperii INTR, de exemplu n timpul execuiei unei instruciuni
precedate de prefixul LOCK, se rezolv prin servirea nti a cererii DMA i apoi
a ntreruperii, HOLD fiind deci prioritar fa de INTR.

1.3.6.

STAREA HALT, OPERAII CU LOCK ,


SINCRONIZAREA EXTERN CU AJUTORUL INTRRII
TEST

1.3.6.1. Starea HALT a microprocesorului

La execuia unei instruciuni HALT, microprocesorul 8086 va indica


intrarea n starea HALT, oprire, n funcie de modul de lucru. n modul de lucru
minim, 8086 va genera semnalul de eantionare ALE fr nici-o comand ( RD ,
WR sau INTA ), figura 1.12. n modul maxim, procesorul genereaz starea
HALT la ieirile S2 , S1 i S0 , 1.3.1.3 i figura 1.24, ALE fiind emis de
controlorul de magistral 8288. Starea HALT nu este prsit dect la apariia
unei ntreruperi sau la iniializare. Microprocesorul nu va iei din HALT la
apariia unei cereri HOLD de preluare a magistralei. n ultima situaie, 8086 va
regenera starea HALT.

1.3.6.2. Operaii de citire/modificare/scriere cu LOCK

Activarea semnalului LOCK se poate face cu ajutorul prefixului LOCK


atunci cnd este necesar execuia consecutiv a dou cicluri de magistral.
Aceast necesitate poate aprea la execuia unei instruciuni de interschimbare,
XCHG, memorie/registru cnd procesorul trebuie s realizeze cu memoria o
operaie de citire/modificare/scriere, de exemplu a unui semafor, fr a fi
perturbat. Semnalul LOCK este pus pe "0" n ciclul de ceas urmtor celui n
88

care UE decodific codul-obiect al prefixului LOCK i este dezactivat, pus pe


"1", la sfritul ultimului ciclu de magistral aparinnd instruciunii precedate
de prefixul LOCK. Pe timpul ct LOCK este activ, n modul maxim, cererile de
preluare a magistralei de la intrrile RQ/GT sunt memorate pentru a fi achitate
dup dezactivarea lui LOCK .

1.3.6.3. Sincronizarea extern cu ajutorul intrrii TEST

Pentru legtura cu exteriorul, microprocesorul 8086 mai poate testa prin


program starea intrrii TEST cu ajutorul instruciunii WAIT. Dac instruciunea
WAIT gsete intrarea TEST inactiv, pe "1", procesorul intr n ateptare
executnd n mod repetitiv instruciunea WAIT. Pe durata execuiei acestei
instruciuni, microprocesorul e n starea pasiv i nu execut cicli de magistral.
Ieirea din starea de ateptare se face prin activarea, cel puin 5 perioade de
ceas, a intrrii TEST . Dac n timpul ateptrii, execuiei instruciunii WAIT,
apare o cerere HOLD toate ieirile microprocesorului trec n starea a treia. De
asemenea, apariia unei cereri de ntrerupere conduce la suspendarea ateptrii,
procesarea ntreruperii i revenirea la execuia instruciunii de ateptare WAIT.
Pentru a reveni la WAIT procesorul va mai extrage o dat dup apariia
ntreruperii codul instruciunii WAIT pentru a putea memora n stiv adresa de
revenire din rutina de serviciu a ntreruperii.

1.4.

FUNCIONAREA MICROPROCESORULUI 8088

Unitatea central 8088 are aceei structur intern ca 8086 majoritatea


funciilor fiind identice, figurile 1.2 i 1.3. 8088 manevreaz magistralele de
adrese, date i comenzi n acelai mod cu 8086 cu deosebirea c schimbul de
date se face pe 8 bii. Operanzii de 16 bii vor fi deci accesai n dou cicluri de
magistral consecutivi. Cele dou uniti centrale sunt identice din punct de
vedere al programatorului, diferenele aprnd numai la timpii de execuie. De
asemenea, structura registrelor este aceeai.
Prezentm sintetic diferenele dintre microprocesoarele 8088 i 8086:
lungimea cozii la 8088 este de 4 octei fa de 6 ct este la 8086.
Scurtarea s-a fcut cu scopul de a preveni ocuparea excesiv a magistralei de
ctre UIM din 8088 datorit timpului suplimentar impus de accesul pe 8 bii;
n acelai timp cu micorarea cozii, pentru optimizare, proiectanii au
modificat i algoritmul de pre-extragere. UIM din 8088 va extrage o nou
89

instruciune dac n coad este disponibil cel puin un octet spre deosebire de
8086 unde trebuie s fie neocupai cel puin doi octei;
T4

T1

T3

TCLCL

VCH
CLK

T2

T4

TW

VCL
TCHCTV

TCHCL

TCLCH

TCH1CH2

TCL2CL1

__ ___
IO/M,SS0
A15A8

A15A8 (Mare impedanta in timpul INTA)


TCLAV

TCLDV

TCLAX

A19A16

A19/S6A16/S3
TLHLL
TCLLH

TCHDX

S6S3

TCHLL

ALE
VIH

RDY (Intrare in 8284)

TR1VCL

VIL
TCLR1X

READY
(Intrare in 8088)

TRYLCL
TCHRYX

TRYHCH
TCLAV

AD7AD0

TCLAZ
TCLAX

Ciclu de citire
___ ____
(WR,INTA="1")

TCHCTV

TCLRH

TRHAV

TCLRL
TCHDTV

_
DT/R
____
DEN

TCLDX

DATA IN

AD7AD0
TAZLR

___
RD

TDVCL

TRLRH

TCVCTX
TCVCTV

Figura 1.50. Diagrame de timp pentru 8088 n modul minim

90

T4

T1

VCH
CLK

T2

T3

T4

TW

TCLCL

VCL
TCLCH
TCH1CH2
TCLAV

TCL2CL1

TCLDV

TCHDX

TCLAX

AD7AD0
Ciclu de scriere

DATA OUT

AD7AD0

____
DEN

TWHDX

TCVCTV

TCVCTX
TCVCTV

___
WR

TWLWH

TCVCTX
TCLAZ

TDVCL
TCLDX

AD7AD0
Ciclu
____
INTA

Tip
intrerupere

_
DT/R TCHCTV

TCHCTV

____
INTA

TCVCTV

____
DEN

TCVCTV

TCLAV

AD7-AD0
Starea HALT:
____ __ __ ____
DEN,RD,WR,INTA="1"

Adresa
invalida

Figura 1.50. Continuare

91

TCVCTX

T1

T3

TCLCL

VCH
CLK

T2

T4

TW

VCL
TCLAV

TCHCL

TCLCH

TCH1CH2

TCL2CL1

QS0, QS1
TCHSV

TCLSH

_ _ __
S2,S1,S0
(exceptand starea HALT)
A15A8
A15A8

TCLAV

TCLAX

TCLDV

A19A16

A19/S6A16/S3
TSVLH
TCLLH

TCHDX

S6S3

TCHLL

ALE(Iesire 8288)
TR1VCL

RDY (Intrare in 8284)


TCLR1X

READY
(Intrare in 8088)

TRYLCL
TCHRYX

TRYHSH
TCLAV

TCLAZ
TCLAX

Ciclu de citire

AD7AD0

Iesiri 8288

TCLRH

TRHAV

TCLRL
TCHDTL

TCHDTH

_
DT/R

TRLRH
TCLML
TCLMH

_____
_____
MRDC sau IORC
DEN

TCLDX

DATA IN

AD7AD0
TAZLR

___
RD

TRYHCH
TDVCL

TCVNV

TCVNX

Figura 1.51. Diagrame de timp pentru 8088 n modul maxim

92

T1

TW

TCHSV

Ciclu de scriere

TCLSH

TCLDV

TCLAV

AD7AD0

DATE

TCVNV

TCVNX
TCLML

_____
_______
AMWC sau AIOWC
_______
_____
MWTC sau IOWC

TCLMH

TCLML

_____
Ciclu INTA

A15A8

TCHDX

AD7AD0

____
DEN

Adresa de
cascada

TCLAZ

_____ _____
MCE / PDEN

TCLMH

TDVCL

AD7AD0

Iesiri
8288

T4

VCL

_ _ __
S2,S1,S0
(exceptand starea HALT)

Iesiri
8288

T3

TCLCL

VCH
CLK

T2

TCLDX
Tip
intrerupere

TCLMCL

TSVMCH

TCLMCH

TCHDTL

TCHDTH

_
DT/R
TCLML

_____
INTA
TCVNV

TCVNX

DEN
Starea HALT:
(DEN="0",
__ ______ _____ _______
RD,MRDC,IORC,MWTC
______ ______ _______
AMWC, IOWC, AIOWC,
____
_
.
INTA , DT/R= "1")

TCLAV
AD7AD0,
A15A8

Adresa invalida

_ _ __
S2,S1,S0

Figura 1.51. Continuare

93

TCMH

timpii de execuie ai instruciunilor sunt afectai de accesul pe 8 bii la


resursele externe, memoria i dispozitivele de I/O. Toate scrierile i citirile
operanzilor de 16 bii se prelungesc cu nc un ciclu de magistral. Viteza de
execuie este, de asemenea, micorat i de ntrzierile aprute la extragerea
codului. Aceast a dou micorare a vitezei de execuie apare numai n cazul
succesiunilor de operaii simple. n situaiile utilizrii unor instruciuni mai
sofisticate UIM din 8088 are timp s umple stiva i execuia nu va mai fi
limitat dect de viteza UE din microprocesor.
Cum am mai spus 8088 i 8086 sunt complet compatibile software
deoarece au unitile de execuie identice. De aceea programele care nu sunt
dependente de organizarea sistemului vor funciona corect pe amndou
microprocesoarele. Pe de alt parte, programele care depind de organizarea
sistemului vor trebui revzute pentru a putea fi transferate ntre 8088 i 8086.
Conexiunile externe ale microprocesorului 8088 sunt aproape identice
cu cele ale lui 8086, figura 1.7 i 1.8, aprnd la 8088 urmtoarele modificri
funcionale:
biii de adres A8A15 sunt la 8088 numai ieiri fiind latch-ate intern
i rmnnd deci valizi pe durata ntregului ciclu de magistral, asemntor cu
8085;
semnalul BHE a fost eliminat, nemaifiind necesar la 8088;
ieirea SS0 asigur n modul minim informaii de stare avnd
semnificaiile bitului de stare S0 , vezi 1.3.2.2. Aceast ieire este activ numai
n modul minim fiind "1" n modul maxim. mpreun cu IO / M i DT / R
codific n modul de lucru minim starea ciclului de magistral n curs;
ieirea IO / M a fost inversat pentru a se obine o compatibilitate la
nivel de magistral cu microprocesorul 8085;
la o instruciune HALT n modul minim, semnalul ALE este ntrziat
cu o perioad de ceas pentru a se putea latch-a cu el starea microprocesorului.
Diagramele de timp pentru procesorul 8088 lucrnd n modul minim
sunt date n figura 1.50 iar pentru modul maxim n figura 1.51. Parametrii lui
8088 att n modul minim ct i n cel maxim, cerine i rspunsuri n timp, sunt
aceei ca ai lui 8086, tabelele 1.2, 1.3 i 1.7, 1.8.

94

2
SETUL DE INSTRUCIUNI AL
MICROPROCESOARELOR 8086/8088
2

2.1.

SETUL DE INSTRUCTIUNI AL MICROPROCESOARELOR 8086/8088

GENERALITI. ARHITECTURA UNUI SET DE


INSTRUCIUNI

Arhitectura unui de instruciuni este, aa cum se cunoate, partea


vizibil a mainii, accesibil programatorului. Seturile de instruciuni se pot
clasifica pe baza a cinci direcii de structurare [15]:
memorarea operanzilor n UC;
numrul de operanzi explicit specificai ntr-o instruciune;
localizarea operanzilor;
tipurile de operaii;
tipurile i dimensiunile operanzilor.

Memorarea operanzilor n UC difereniaz arhitecturile n trei mari


clase: arhitecturi de tip stiv, de tip acumulator i de tip registre generale (GPR
General Purpose Registers). Mainile mai vechi reprezint arhitecturi de tip
stiv sau acumulator n timp ce mainile actuale au la baz arhitecturi cu
registre generale. Aceast evoluie are dou motivaii principale: nti c
registrele, ca i alte structuri de memorare din cadrul UC, sunt mai rapide dect
memoria, i apoi, ele sunt mai uor i mai eficient de utilizat la compilare n
comparaie cu celelalte forme de memorare intern.
Arhitecturile GPR se pot diferenia la rndul lor cu ajutorul a dou
caracteristici mari. Prima se refer la numrul de operanzi ai unei instruciuni
UAL: doi sau trei. n formatul cu trei operanzi instruciunea conine doi operanzi
surs i un operand rezultat. n formatul cu doi operanzi unul dintre acetia este
att surs ct i destinaie. A doua difereniere se refer la numrul de operanzi
dintr-o instruciune UAL ce pot fi adrese de memorie. Acest numr poate varia
pentru o instruciune UAL tipic ntre 0 i 3. Combinaiile celor dou
caracteristici sunt exemplificate n tabelul 2.1.
95

Tabelul 2. 1. Arhitecturi de tip "registru general" GPR


Numr de adrese de memorie
n instruciuni UAL

Numr maxim de operanzi


n instruciuni UAL

Exemple de maini

2
3
2
3
2

3
3

IBM RT-PC
SPARC, MIPS, HP Precision
PDP-10, 68000, IBM 360, 8086
IBM 360 (instruciunile RS)
PDP-11, 32X32,
IBM 360 (instr. SS)

VAX (are i formate de doi


operanzi)

Dei, aa cum se poate observa, sunt apte combinaii posibile, numai


trei sunt considerate tipice i permit clasificarea majoritii mainilor de calcul
actuale. Acestea sunt denumite registru-registru (sau ncrcare/memorare
load/store), registru-memorie i memorie-memorie. Fiecare din cele trei tipuri
de arhitecturi are avantajele i dezavantajele sale. Astfel, arhitecturile registruregistru sunt n general simple, au instruciuni de lungime fix care se execut
de obicei n acelai numr de ceasuri. Dezavantajul lor const n aceea c
programele vor avea un numr de instruciuni mai mare. Arhitecturile registrumemorie prezint avantajul accesrii directe a datelor din registre, fr ncrcri
prealabile din memorie. Dezavantajul lor principal apare datorit neechivalenei
operanzilor, cel care este surs i destinaie fiind distrus n urma unei operaii
binare. Mainile memorie-memorie sunt cele mai compacte i pot s nu mai
foloseasc registre pentru memorri temporare. Pe de alt parte aceste
arhitecturi au instruciuni de lungimi i complexiti variabile, care se pot
executa n perioade de timp foarte diferite. Eficiena acestor ultime tipuri de
maini poate fi sever limitat de accesul la memorie, gtuitura von Neumann.
Avantajele i dezavantajele arhitecturale de mai sus sunt calitative, nu au un
caracter absolut, i, n ultim instan, impactul lor real depinde att de calitatea
compilatoarelor ct i de realizarea hardware a mainii.
8086, este, aa cum am spus deja n 1.1, o arhitectur hibrid
acumulator/registre generale, cu instruciuni UAL tipice cu doi operanzi dintre
care unul poate fi adres de memorie. Setul de instruciuni prevede operaii att
pe 8 bii, octei, ct i pe 16 bii, cuvinte. Aceast distincie referitoare la tipul
operandului apare att n operaiile cu registre ct i n accesele la memorie.
Aa cum am vzut n primul capitol, spaiul de adrese al
microprocesorului 8086, dei este de 20 de bii, este "spart" n segmente de
64kB adresabile cu ajutorul unor deplasamente de 16 bii. Adresa de 20 de bii
este astfel format dintr-o adres efectiv de 16 bii offset-ul sau
96

deplasamentul n cadrul unui segment , care se adaug la o alt adres pe 16


bii baza segmentului. Adresa bazei segmentului se obine prin deplasarea
stnga cu 4 poziii a coninutului unui registru de segment de 16 bii.
Cele 14 registre ale microprocesorului 8086, prezentate pe larg n prima
parte a lucrrii, figura 1.4, pot fi mprite din punctul de vedere al arhitecturii
setului de instruciuni n patru clase: registre de date (AX, BX, CX i DX),
registre de adresare (SP, BP, SI, DI), registre de segment (CS, SS, DS, ES) i
registre de control (IP, Starea). Registrele de date sunt utilizate pentru
memorarea datelor i operaii asupra lor, registrele de adresare sunt folosite
pentru formarea adreselor de memorie efective de 16 bii (n cadrul
segmentelor), registrele de segment pentru formarea unei adrese de memorie
reale pe 20 de bii iar registrele de control pentru pstrarea strii mainii i
controlul programului.

97

S-ar putea să vă placă și