LAB_AC7
-
Upload
constantin-alexandru -
Category
Documents
-
view
3 -
download
0
description
Transcript of LAB_AC7
-
Operatii pe magistrale 1. Transferuri simple, punct la punct Toate microsistemele au o dependenta ierarhica puternica. Procesorul master citeste si scrie cu fiecare dispozitiv (fig. 1).
masterProcessor
MO slave
Link
I/O slave Periferice
drivers
Fig. 1.Conectarea la magistrala unica
Un ciclu WR simplu (fig. 2.a) foloseste un numar de linii de date si o linie de sincronizare (WRS). Tsetup (ts) si thold (th), ca si tw depind de tehnologie si de natura statica sau dinamica (edge triggered) a
elementelor de memorie.
Di
RDS
Data
WRS
ts tw th
(a)
ciclu WRITE
WRS
(c)
read
Di
ST
Data
RDS
Di
ciclu READ
ta
(b)
WR/RDwrite
(d)
read
Fig. 2.a,b,c,d. Cicluri pe magistrala, cu doua semnale de control
Pentru un ciclu RD, ca raspuns la o cerere (RDS) se obtine data dupa un timp de acces ta (fig. 2.b).
De regula, magistrala se afla ntr-o stare neutra, inactiva, att timp ct nu s-a realizat selectia. Astfel, se poate defini un timp de activitate ton si unul de inactivitate, toff.
Procesoarele executa att cicluri RD, ct si cicluri WR. Liniile de date Di pot fi multiplexate daca iesirile sunt de tipul tri-state. Transferurile pot fi controlate pe 2 linii separate, care nu sunt active simultan (fig. 2.c).
-
Aceasta solutie este preferata de producatori, fiind folosita, de exemplu la magistrala calculatoarelor IBM-PC. O alta solutie este de a avea o linie de strob ST si o linie care indica sensul de transfer (fig. 2.d).
Toate ciclurile prezentate sunt sincrone, deoarece ciclul de transfer se executa ntr-un interval dat, dependent de durata strobului. Daca dispozitivul slave este prea lent, data poate fi pierduta; este necesar un semnal de feed-beeck. O prima solutie este de a activa semnalul numai cnd ciclul trebuie prelungit-WAIT (fig. 3.a).
not ready
ST
WAIT
(a)
ready
abort
readyreadyST
ACK
NK
(b)
Fig. 3.a,b.
O solutie mai buna, folosita la toate microprocesoarele pe 32 biti este de a astepta un semnal ACK (AcKnowledge) pozitiv, ca raspuns la ST (fig. 3.b). Daca dispozitivul slave nu poate furniza informatia, un ACK negativ, NK (unit bus error) trebuie generat fie de slave, fie de un dispozitiv specializat. Semnalele din fig. 3. si fig. 4. sunt active High. De obicei, ele sunt inversate (active Low), din ratiuni electrice.
AdresaAdresaAi
AS
AK
Data
DS
DKData
Di
DS
DK
(a)(b)
Fig. 4 .a,b.Sistem cu magistrale separate de date si adrese si semnale AK,DK.
-
2. Selectia Procesorul foloseste o serie de linii de adresa - Ai, ca si un ciclu de selectie care activeaza iesirile tri-state ale unui singur dispozitiv la un moment dat. Ciclul de selectie poate fi implementat ca un ciclu WR dedicat, cu un strob de adresa AS si un acknnoledge de adresa, AK. Data strobe, DS, si data acknowledge, DK, sincronizeaza operatia de citire/scriere care urmeaza (fig. 4.a). De obicei, ciclul de selectie se identifica cu ciclul de transfer, folosind aceleasi semnale ca n fig. 3. Transferul este ntrziat datorita decodificatorului, care trebuie sa activeze dispozitivul selectat (fig. 4b). Data acknowledge anticipeaza data valida. Adresele si datele pot fi multiplexate. Aceasta procedura e mai lenta si costisitoare (deoarece necesita address latches), dar economiseste linii, n special la microprocesoarele pe 32 biti. Strob-ul de adresa este numit "address latch enable", ALE, care comanda memorarea adresei n registrele latch (fig. 5.) care se afla fie pe placa slave (magistrala multiplexata), fie pe cea master (magistrala demultiplexata).
Ai
MasterALE
Slave
ciclu READ
DiAi/Di
ciclu WRITE
Ai/Di
ALE
tatw
RDS
WRS
Fig. 5.Sistem cu magistrale de date si adrese multiplexate
Adresarea geografica este foarte diferita. Scopul ei este de a recunoaste care placa este ntr-un slot dat (pozitie fizica fixa definita prin prezenta unor conectori la magistrala sistemului), pentru a stabili resursele curente ale sistemului. Aceste protocoale de transfer sunt cunoscute ca asincrone, adica semnalele sunt activate imediat ce functia pe care o codifica este valida. n acest mod, se pot conecta pe aceeasi magistrala dispozitive rapide si lente. Viteza de transfer pe magistrala este impusa de dispozitivele mai lente. Magistralele sincrone au un clock central a carui impulsuri se transmit pe o linie a magistralei. Sistemele sincrone pure asigura o perioada de ceas pentru fiecare operatie. Figura 6. prezinta un ciclu RD cu un protocol sincron, folosit la MacIntosh II. Frontul crescator al ceasului declanseaza schimbarea semnalelor pe magistrala.
-
AckIdle IdleStart
Ciclu READ
Clock
(a)
START
C/SControl Status
DateAdreseA/D
Ack
(b) Ciclu WRITE
Ack
AckIdle IdleStartClock
START
C/SControl Status
Ack
DateAdreseA/D
Ack
Fig. 6.Ciclurile de citire/scriere la Apple MacIntosh II
La un ciclu RD, semnalul START marcheaza prezenta adresei si a informatiei de control pe liniile magistralei multiplexate. Cnd dispozitivul slave si recunoaste adresa si gaseste data solicitata, depune pe magistrala data si informatia de stare si marcheaza prezenta lor prin activarea lui ACK. Ciclul WR este similar, cu diferenta ca dispozitivele master depun data la urmatorul clock dupa adresa. Lungimea bus-ului si frecventa ceasului trebuie sa se aleaga astfel nct semnalele sa aiba suficient timp sa se propage din orice punct la orice alt punct, naintea ncheierii ciclului de ceas. Deci, magistrale mai scurte pot fi folosite la frecvente mai mari. Cicluri speciale De multe ori, se transfera pe magistrala continutul unor locatii succesive de memorie. Depunerea adresei odata cu incrementarea unui contor este mai eficienta dect trimiterea n permanenta a urmatoarei adrese, n special daca magistrala este multiplexata. Aceasta posibilitate este implementata de magistrale complexe si de cele mai recente microprocesoare pe 32 biti.
-
Se poate citi simultan de la mai multe dispozitive (broad call), dar aceasta functie este costisitoare (linii suplimentare), de aceea nu este frecvent implementata. S-au propus cicluri read modify write la sisteme multi-procesor, care asigura atomicitatea operatiei de scriere (nu poate fi perturbata). 3. Functionarea dispozitivelor slave Dispozitivul slave poate doar solicita un transfer de date prin activarea unei cereri de ntreruperi. Se folosesc linii dedicate: IntReq, implementate cu dispozitive OR-Wired. Ca raspuns, master-ul va lansa o procedura de identificare realizata software (polling) sau cu scheme hard. Exemplu: Implementarea protocolului daisy-chain, care asigura o prioritate ntre cererile de ntrerupere functie de pozitie. Prioritatea scade de la stnga la dreapta (fig. 7).
1
2 3
U?A
74LS08
1
2 3
U?A
74LS08
+5V
12
3
U?A74LS08
12
3
U?A74LS08
REQ REQ
...
i+1
GTi+1
i
GTi
Fig. 7.Implementarea protocolului daisy-chain
4. Operatii multi-master Daca mai multe procesoare trebuie sa foloseasca resurse comune, cererile lor simultane de acces la aceste resurse trebuie arbitrate. Un circuit dedicat, arbitrul, poate fi centralizat sau distribuit. 4.1 Arbitri centrali si distribuiti Cea mai simpla schema de arbitru ar consta ntr-un sistem care scaneaza secvential masterii si distribuie magistrala primului care o solicita. Aceasta procedura este lenta. De aceea se folosesc proceduri asincrone. Daca sunt doua procesoare, schema din fig. 8. da prioritate primului. Daca cererile sunt absolut simultane, circuitul va ezita pentru un interval de timp (stare metastabila) nainte de a acorda prioritatea. Arbitrarea poate fi distribuita; se creste flexibilitatea, scade pretul, dar procesul este mai lent. n acest caz se foloseste schema daisy-chain. Cnd ncheie operatia, master-ul activeaza un semnal grant (GNT) receptionat de fiecare master. Primul master ce solicita o cerere, preia magistrala.
-
Req1
Gnt1
Req2
M1
Arbitru
Req1
Gnt2M2
1
2 3
U?A
74LS09
Grant1
1
2 3
U?A
74LS09
Req1
Gnt1
Req2
~~
~~~
stare metastabila
Gnt2
Req2
Grant2
Fig. 8.Arbitru centralizat pentru doua dispozitive master
O schema mai simetrica este cea a arbitrului cu auto-selectie folosit de toate magistralele moderne (P896, MicroChannel). Ea foloseste o serie de linii de prioritate OR-Wired, care compara valoarea de pe linii cu valoarea ce se stabileste pe magistrala (fig. 9.).
Grant
Comparator
Master2Req
Inhibat
Grant
Comparator
Master1
Inhibat
Req
1
2
U?A74LS04
1
2
U?A74LS04
12
3
U?A74LS00
1
2
U?A74LS04
1
2
U?A74LS04
12
3
U?A74LS00
Priority vector
BusRequest
BusBusy
Fig. 9 .Arbitrarea prin auto-selectie
-
Daca vectorii de prioritate nu sunt codificati, comparatorul este simplu, cnd fiecare master are asigurata o linie, ca la magistrala SCSI. O linie comuna de cerere se activeaza la fiecare moment cnd ncepe o faza de arbitrare. Un impuls de ceas semnaleaza cnd se ncheie compararea; master-ul "cstigator" activeaza linia "bus busy" pentru durata transferului de date. 5. Tranzactiile pe magistrala Un acces al procesorului la memorie, prin magistrala sistemului, consta n trei operatii distincte: alocarea (arbitrarea) magistalei, selectia (adresarea) registrelor si unul sau mai multe transferuri. Aceste operatii se pot realiza n secventa sau suprapus, printr-un compromis ntre viteza si dimensiunea magistralei (fig. 10). Pentru un numar dat de linii de magistrala, se pot aloca grupe de linii unor operatii distincte, ceea ce permite executia concurenta.
Fig. 10.Variante de executie a tranzactiilor pe magistrala sistemului
6. Selectia modulelor functionale de pe placi Un sistem cu magistrala poate fi configurat n mai multe moduri. Solutia veche consta n fixarea unor jumperi pe fiecare placa si stabilirea unor parametri numerosi ntr-o procedura de initializare. Solutia actuala consta n auto- initializarea sistemului; este vorba de o forma de adresare geografica pentru a identifica placile n sloturi. Fiecare placa poseda o memorie ID-ROM si un decodificator de adrese programabil. 7. Parametrii folositi n compararea magistralelor Adoptarea de catre proiectant a unui standard de magistrala se realizeaza pe baza unor parametri. Cei mai importanti sunt: Tarb= timpul de arbitrare necesar sistemului pentru rezolvarea cererilor multiple. Este echivalent
cu timpul necesar master-ului sa preia magistrala, presupunnd ca nainte era alt master activ pe magistrala. Daca master-ul nu se schimba, Tarb=0 (se numeste "Release On Request"-ROR). Tm= timpul ct master-ul controleaza magistrala n circumstante normale. Tget= timpul maxim din momentul cnd un modul de prioritate nalta solicita magistrala si pna
cnd o obtine n conditiile unui sistem ncarcat.