|
Magistrale asincrone
Cu toate ca magistralele sincrone sunt usor de controlat din cauza intervalelor mici de timp, au unele probleme. De exemplu, totul functioneaza in multipli de cicli de ceas. Daca un CPU si memoria pot completa un transfer in 3,1 cicli, trebuie sa foloseasca totusi 4 cicli deoarece ciclii fractionali nu sunt permisi.
Mai mult, odata ce un ciclu de magistrala a fost ales, si memoria si placile I/O au fostconstruite pentru acesta, este dificil sa se poata folosi avantajele imbunatatirilor ulterioare in tehnologie. De exemplu, sa presupunem ca la cativa ani dupa ce sistemul din paragraful anterior a fost construit, noi memorii apar cu timpi de acces de 20 ns in loc de 40 ns. Acestea ar putea inlatura timpii de asteptare, marind viteza sistemului. Apoi sa presupunem ca apar memorii de 10 ns. Nu ar mai exista nici un fel de imbunatatire a performantei, pentru ca timpul minim de citire pentru acest proiect este de 2 cicli.Simplu vorbind, daca o magistrala sincrona are o colectie eterogena de componente, unele rapide si altele mai putin rapide, magistrala trebuie sa urmeze modul de lucru al celei mai lente componente, caz in care cele rapide nu vor mai functiona la adevaratul lor potential.
Tehnologia combinata poate fi accesibila, folosind magistralele asincrone, adica cele faraceas, precum se arata in figura 4.13. In locul sincronizarii tuturor componentelor la ceas, dupa ce masterul de magistrala a activat adresa, MREQ, RD si orice mai are nevoie, trimite un semnal special pe care-l vom numi MSYN (Master SYNcronization). Cand magistrala 'slave'
primeste acest semnal, isi indeplineste sarcina pe cat de repede posibil. Cand termina, trimite un semnal SSYN (Slave SYNcronization).
Imediat dupa ce componenta master primeste semanlul SSYN , stie ca datele sunt disponibile, asa ca le citeste, apoi liniile de adresa devin inactive, impreuna cu MREQ, RD si MSYN .
Cand slave vede inactivarea lui MSYN , stie ca s-a terminat ciclul, inactiveaza SSYN
aflam iarasi in situatia originala, cu toate semnalele dezactivate, asteptand urmatoarea componenta master.
Diagramele de temporizare in cazul magistralelor asincrone (si uneori chiar al magistralelor sincrone) folosesc sageti pentru a arata cauza si efectul, precum in figura 4.13. Accesarea MSYN duce la activarea liniilor de date si deasemenea face ca si componenta slave sa activeze SSYN . Activarea SSYN , la randul ei, cauzeaza dezactivarea liniilor de adresa, MREQ, RD si MSYN . In final, dezactivarea lui MSYN cauzeaza dezactivarea lui SSYN , care finalizeaza operatiunea de citire.
Setul de semnale care apar in exemplul anterior este numit legatura totala - full handshake.
Faza esentiala a operatiunii consta in patru evenimente:
1. Este emis semnalul MSYN ,
2. SSYN este emis ca raspuns la MSYN,
3. MSYN este negat ca raspuns la SSYN ,
4. SSYN este negat ca raspuns la negarea MSYN .
Este evindent ca legaturile totale sunt independente de ceasuri. Fiecare eveniment e cauzat de un eveniment anterior, nu de un impuls de ceas. Daca o pereche anume master - slave functioneaza incet, nu va afecta in nici un mod o alta pereche master - slave care este mult mai rapida.
Avantajul unei magistrale asincrone ar trebui sa fie evident in acest moment, dar adevarul este ca majoritatea magistralelor sunt sincrone, deoarece construirea sistemelor sincrone este mult mai facila. CPU-ul doar transmite semnalele si memoria doar reactioneaza. Nu exista reactie inversa (cauza si effect), iar in cazul in care componentele au fost alese corespunzator, totul va functiona perfect fara crearea unei legaturi propriu-zise. Deasemenea, se fac o multime de investitii in tehnologia de magistrale sincrone.