Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » calculatoare
Cicluri de magistrala pentru ISA

Cicluri de magistrala pentru ISA


Cicluri de magistrala pentru ISA

Cel mai rapid ciclu de magistrala, pentru un microprocesor 80286 sau superior acestuia, este ciclul in care microprocesorului nu ii este solicitat nici o stare de "wait" (0 wait state bus cycle). Un astfel de ciclu dureaza patru perioade de CLK adica doua perioade de semnal PCLK (Peripheral Clock-generat de 82284-Clock Generator), si are doua stari Ts (Status State) si Tc (Comand State). In cazul magistralei ISA, semnalul de tact BCLK (Bus Clock) este echivalent cu semnalul PCLK (fiind initial o copia a acestuia pentru un sistem ce avea frecventa de 16MHz) si are o frcventa de 8MHz, 8,25MHz sau 8,33MHz. Perioada smnalului BCLK, variaza intre 120ns si 125ns si ca urmare, un ciclu de magistrala fara stari "wait" (0 wait state bus cycle), dureaza intre 240ns si 250ns. In continuare se va considera ca frecventa semnalului BCLK este de 8MHz. La aceasta frecventa (tinand cont ca un ciclu minim dureaza doua perioade si pot fi transferati simultan 2 byte), rata maxima de transfer este 8M (frcventa BCLK):2(perioade/ciclu)x2(octeti)=8MB/s.



1.Transferuri pe 8 biti

Transferurile de date pe 8 biti, pot fi facute fie cu memoria fie cu dispozitivele I/O (Intrare/Iesire). Functie de starile liniilor de control ale magistralei, ciclul de transfer pe 8 biti poate fi:

Ciclul standard cu 4 stari de "wait"

Ciclu scurtat cu 1,2 sau 3 stari de "wait" (cand se utilizeaza linia NOWS#)

Ciclu extins cu peste 4 stari de "wait" (cand se utilizeaza linia CHRDY)

In Fig.1.11, este prezentat un ciclu standard de transfer pe 8 biti in conditiile in care liniile NOWS# si CHRDY nu sunt activate.

Fig.2.11. Ciclu standard de transfer pe 8 biti

In aceasta situatie controlerul ISA va introduce inca 3 stari Tc .

In cazul sistemelor cu procesoare mai puternice ca 8086 (ISA pe 16 biti) pe liniile LA23 LA17, sunt folosite pentru a se realiza decodificarea in avans a blocului de memorie ce urmeaza a fi accesat. Cartelele pe 8 biti nu pot fructifica aceste linii, deoarece ele se afla pe conectorul ISA mai mic.

BALE Semnal activ pe 1 logic (Buttered address latch enable) dureaza o jumatate de perioada. Rolul lui este:

Incarca registrele transparente la care sunt conectate SBHE# (System bus high enable) si liniile SA19 SA0 (System address bus). Aceste linii raman neschimbate pe durata intreaga a starilor "Tc" care urmeaza (4).

Poate fi utilizat ca semnal de validare a decodificarii facute asupra liniilor LA23 LA17.

Daca ciclul de magistrala este un ciclu de scriere (write bus cycle) atunci datele (care urmeaza a fi scrise intr-o cartela plasata pe bus) se vor afla pe liniile SD15 SD0 (System data bus) intre fronturile pozitive ale doua pulsuri consecutive ale semnalului BALE.

Daca transferul se realizeaza cu o adresa de memorie (=1; acest semnal nu apare pe magistrala ISA. El este generat de microprocesor si se adreseaza circuitului 82288), atunci pe frontul negativ al semnalului BALE se esantioneaza linia M16# pentru a se vedea daca aceasta este activata sau nu (M16# =0 = activ M16# =1 inactiv).

Daca linia M16# nu este activata, atunci linia de comanda (SMRDC#, SMWTC#, IORC# sau IOWC#) este activata dupa o jumatate de perioada a semnalului BCLK (pe frontul negativ al acestuia) se mai esantioneaza inca o data lina M16#,. conomitent cu activarea unuia din semnalele SMRDC#, SMWTC#, IORC# sau IOWC#).

Daca M16# =1 placa pe 8 biti  4 stari Tc suplimentare

Daca M16# =0 placa pe 16 biti  1 stare Tc suplimentara

Observatia 1 : Liniile SMRDC#, SMWTC#, IORC# sau IOWC# sunt active pentru '0' logic si inactive pentru '1'logic. Liniile sunt mentinute in stare activa (6) pana la aparitia frontului pozitiv al semnalului BCLK care marcheaza sfarsitul ultimei stari de comanda ("Tc") al ciclului curent si inceputul starii "Ts" a unui nou ciclu.


Observatia 2 : Linia M16# este esantionata de doua ori pentru a da posibilitatea placilor de 16 biti sa activeze aceasta linie. Aceste placi pot activa linia M16# dupa prima esantionare in urmatoarele situatii:

Nu pot prelua si decodifica pana la prima esantionare liniile LA23 LA17

Folosesc semnalul BALE pentru a valida inceperea decodificarii liniilor LA23 LA17.

In situatia in care blocul accesat este un bloc I/O, (iesirea a microprocesorului este pe '0' logic) atunci se va esantiona linia IO16# in mijlocul celei de-a doua stari de comanda (Tc2) a magistralei. In mod similar cu M16# daca IO16# =1, se vor genera in continuare in mod implicit inca 3 stari Tc. Daca IO16# = 0, la urmatorul front pozitiv, se va incheia ciclul de magistrala curent.

Liniile NOWS# (no wait state) si CHRDY# (channel ready), sunt esantionate in mijlocul starilor de comanda Tc atasate. Cele doua linii sunt esantionate in mijlocul primelor 3 stari de "wait". Daca aceste linii sunt dezactivate, ciclul de magistrala se desfasoara dupa algoritmul implicit.

Daca NOWS# =0 si CHRDY =1, atunci ciclul de magistrala se va termina mai devreme, adica la apritia primului front pozitiv al ceasului (BCLK).

Daca CHRDY# =0 si NOWS# =0 procesorul ce controleaza magistrala ISA, ignora NOWS#=0

In situatia in care se ajunge la ultima stare de "wait" atasata implicit, semnalul NOWS# nu se mai esantioneaza, ci se va esantiona doar semnalul CHRDY, pe durata pulsului pozitiv al semnalului BCLK.

Daca CHRDY# =1 , se mai adauga inca o stare "wait". La fiecare inceput de stare "wait" atasata suplimentar se esantioneaza CHRDY# la inceputul starii.

Daca CHRDY# =0, ciclul de magistrala se sfarseste la aparitia primului puls pozitiv a lui BCLK (dupa terminarea starii curente).

In cazul unei instructiuni de citire, data aflata pe liniile SD7 SD0 este preluata la sfarsitul ultimei perioade a semnalului BCLK, perioada ce incheie ultima stare Tc a ciclui de citire curent. Tot in acest moment sunt dezactivate liniile de comanda SMWTC#, MRDC# sau IORC#. Data trebuie sa fie mentinuta de catre periferic pe liniile SDx inca cel mult o patrime din perioada semnalului BCLK. Acest lucru nu perturba ciclul de magistrala care urmeaza, deoarece noua data care ar putea apare pe liniile SD in cazul unui eventual ciclu de scriere, va fi transferata dupa jumatate de perioada.

2. Transferuri pe 16 biti

Ciclurile de magistrala folosite pentru transferuri de 16 biti pot fi:

Ciclul standard de transfer pe 16 btti cu memorie sau I/O ce include o singura stare de wait (implicita).

Ciclul de transfer pe 16 biti scurtat (0 wait) utilizat numai pentru transferuri cu memoria.

Ciclul de transfer pe 16 biti lungit (cu mai mult de o stare de wait).

Ciclul de transfer standard pe 16 biti cu memoria

In Fig. 2.12, este prezentat un ciclu de transfer standard pe 16 biti cu memoria.

Fig. 2.12. Ciclul de transfer standard pe 16 biti cu memoria

Liniile LA23 LA17 si semnalul BALE au acelasi rol ca si in cazul transferurilor pe 8 biti.

(3) Ca urmare a decodificarii liniilor LA23 LA17, blocul de memorie pe 16 biti care a fost selectat, activeaza linia M16# (M16# = 0), care este esantionata in acelasi mod ca si in cazul transferurilor pe 8 biti. Linia M16# trebuie sa ramana activa pana dupa a doua esantionare.

Momentul esantionarii datelor (in cazul citirii (10)), precum si incarcarea datelor pe liniile de date,SD (in cazul scrierii (4)), ramin aceleasi.

Frontul negativ al semnalului BALE, poate fi utilizat pentru a incarca registrii conectati la liniie LA23 LA17si in acest mod sa se asigure o adresa stabila pe aceste linii, care sa nu deselecteze blocul accesat.

In situttia in care M16# a fost activat inainte de prima esantionare, semnalele de comanda MRDC# (Memory Read Command) sau MWDC# (Memory Write Command) vor fi activate pe frontul negativ (5) al semnalului BALE. Daca NOWS# si CHRDY sunt activate (NOWS# = 0 si CHRDY =1), linia a microprocesorului e activata ( nu este linie de buss pentru ISA) si ciclul de magistrala se sfarseste la primul front pozitiv al semnalului BCLK. In acest mod se poate elimina in starea wait implicita in cazul transferului cu memoria (7).

Pe de alta parte daca CHRDY este dezactivat (CHRDY = 0) controlerul de magistrala ignora pe NOWS# si introduce stari wait suplimentare. In fiecare stare Tc (stare de comanda) suplimentara linia CHRDY este esantionata in prima semiperioada a semnalului BCLK si daca CHRDY devine activata (CHRDY = 1), atunci ciclul se va termina la sfirsitul starii Tc curente (la aparitia frontului pozitiv al semnalului BCLK). Liniile de comanda MRDC# si MWTC# sunt dezactivate la sfirsitul ciclului de magistrala.

(8) Se observa ca dupa terminarea lui BALE, la mijlocul primei stari de comanda a ciclului, pe liniile L23 L17 va apare adresa superioara a urmatoarei locatii ce va fi accesata.

Ciclul standard de transfer pe 16 biti pentru dispozitivele I/O

In cazul dispozitivelor I/O liniile LA23 LA17 nu au nici un impact, deoarece ele sunt pe '0' logic. Spatiul de adrese I/O este mai mic. Daca urmeaza un ciclu de transfer cu memoria partea superioara a adresei se va gasi pe liniile LA23 LA17 incepind cu adoua semiperioada a primei stari de comanda Tc (7) (Fig. 2.13).

Semnalul de comanda IORC# sau IOWC# este activat pe frontul negativ al lui BCLK in timpul primei stari "Tc" a magistralei si va fi dezactivat la sfarsitul ciclului de magistrala.

Linia IO16# este esantionata in a doua stare de comanda (8) a ciclului de magistrala.

Daca IO16# =1, atunci dispozitivul este pe 8 biti si se vor introduce trei stari "wait" suplimentare. daca IO16# = 0 atunci dispozitivul este pe 16 biti si daca linia CHRDY este activa (CHRDY = 1) atunci ciclul magistralei se va incheia la aparitia primului front pozitiv al semnalului BCLK.

Pe durata unui ciclu de transfer pe 16 biti cu un dispozitiv de I/O, linia NOWS# nu este esantionata. Ca urmare aceste cicluri nu pot fi mai scurte de 3 perioade de BCLK.

Fig.2.13. Ciclul standard de transfer pe 16 biti pentru dispozitivele I/O

Linia CHRDY este esantionata in prima parte a fiecarei stari Tc, (incepind cu a doua stare Tc) pana cind linia devine activa (CHRDY = 1). In aceasta situatie, ciclul de magistrala se sfarseste la primul front pozitiv al semnalului BCLK.

Ciclu de transfer scurtat, cu memoria pe 16 biti
(0-wait State Access to 16-bit Memory Device)

In acest exemplul din Fig. 2.14, "address pipeling" este fructificat, adresa prezentata in avans pe liniile LA23 LA17 fiind decodificate suficient de devreme pentru a putea activa linia M16# inainte de prima esantionare a sa (6).

Fig. 2.14. Ciclu de transfer scurtat, cu memoria pe 16 biti

Daca pe perioada Tc se va activa si linia NOWS#, (NOWS# = 0), atunci acest semnal impreuna cu CHRDY = 1, determina eliminarea starii suplimentare de "wait", atasate implicit de controlerul de magistrala.

Celelalte semnale de comanda sunt similare cu cele discutate anterior:

BALE (frontul pozitiv) poate fi folosit pentru incarcarea datelor de pe liniile LA23 LA17 intr-un registru tampon care sa asigure pastrarea selectiei blocului de memorie pe tot timpul ciclului de magistrala. Semnalele de comanda MRDC# sau MWTC# sunt activate pe frontul negativ al semnalului BALE si sunt mentinute pana la sfirsitul ciclului.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.