Sunteți pe pagina 1din 10

L5a: Studiul tipurilor de magistrale sincrone și asincrone

1. Obiectivul lucrării

Lucrarea de faţă îşi propune să prezinte o serie de aspecte teoretice şi practice


referitoare la modul de transfer al datelor pe magistrale paralele. Sunt prezentate, de
asemenea, câteva aspecte teoretice legate de structura şi organizarea magistralelor,
aplicate asupra magistralei procesorului (care poate fi de tip sincron sau asincron).
Programul de simulare este realizat în mediul de dezvoltare Visual Studio C# .NET.

2. Introducere teoretică

2.1. Conceptul de magistrală

Conceptual, magistrala este un mediu comun de comunicaţie între


componentele unui sistem de calcul. Fizic, este alcătuită dintr-un set de linii de semnal
care facilitează transferul de date şi realizează sincronizarea între componentele
sistemului. În decursul timpulu, au fost dezvoltate diferite standarde de magistrală,
care au urmărit evoluţia procesoarelor (a unităţilor centrale de prelucrare) şi a
necesităţilor de comunicaţie ale acestora (viteză, mod de transfer, necesităţi de
sincronizare şi control etc.). S-au dezvoltat, de asemenea, magistrale specializate
pentru anumite tipuri de echipamente periferice (SCSI, EIDE, USB, PCIExpress
pentru unităţi de disc, terminale grafice, interfeţe de măsură şi control). Din acest
punct de vedere, în momentul actual se pot distinge două clase de magistrale:
 magistrale de sistem – dezvoltate mai ales pentru conectarea unităţii
centrale la celelalte componente de bază ale sistemului (de exemplu:
MultiBus, ISA, EISA, PCI etc.);
 magistrale specializate – care încearcă să optimizeze transferul de date cu
un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB etc.).

2.2. Elemente definitorii ale magistralei

O magistrală se compune dintr-un set de semnale şi un set de reguli constituite


într-un protocol, care guvernează transferul de informaţii şi accesul la mediul de
comunicaţie. Informaţiile transferate pot fi: date, instrucţiuni şi informaţii de control şi
sincronizare. Protocolul se referă la:
 caracteristicile mecanice: tip de conectori, număr de conectori alocaţi
pentru un slot, formatul modulelor de extensie ataşabile, sertar şi fund de
sertar (rack şi cablajul din spatele acestuia – această structură fiind
specifică magistralelor industriale);
 caracteristicile electrice ale componentelor conectate pe magistrală:
niveluri de tensiune, curenţi, încărcare, frecvenţă de lucru, rată de transfer;
 secvenţa de generare a semnalelor necesare pentru efectuarea unui transfer;
 timpii limită pentru diferitele faze ale unui transfer şi timpii de menţinere a
unui anumit semnal;
 intercondiţionările funcţionale şi temporale între diferite tipuri de semnale
implicate în transferul informației.
Studiul tipurilor de magistrale 115

În accepţiunea sa clasică, o magistrală se compune din următoarele tipuri de


semnale:
Semnale de date – sunt semnale bidirecţionale utilizate pentru transferul de
date şi instrucţiuni. La un moment dat, doar un singur dispozitiv poate să emită pe
liniile de date; numărul liniilor de date (8, 16, 32, 64) determină dimensiunea maximă
a cuvântului de date care poate fi transferat la un moment dat şi, implicit, viteza medie
de transfer a magistralei.
Semnale de adresă – sunt utilizate pentru specificarea adresei modulului
destinaţie sau sursă de date, numărul de linii de adresă determinând spaţiul maxim de
adresare permis de magistrală (de exemplu, 24 linii de adresă determină un spaţiu de
adresare de 224 =16 Mlocaţii).
Semnale de comandă – sunt semnale unidirecţionale generate de CPU (sau
de către alt dispozitiv master), utilizate pentru specificarea direcţiei de transfer (de
exemplu, semnale de citire sau scriere pentru CPU) şi a tipului de modul adresat (de
memorie sau modul de I/O, memorie program, controler de întrerupere etc.).
Semnale de control – sunt semnale de utilizate pentru reglarea condiţiilor de
transfer al datelor (temporizarea deschiderii şi închiderii amplificatoarelor de
magistrală pentru semnalele vehiculate pe aceasta).
Semnale de întrerupere – sunt generate de un controler dedicat, care permit
semnalizarea unor evenimente interne sau externe şi, implicit, determină întreruperea
execuţiei programului curent.
Semnale de tact (de ceas) – sunt generate de un oscilator cu cuarţ, fiind
folosite pentru sincronizare şi pentru generarea unor semnale de frecvenţă
programabilă.
Linii de alimentare – sunt generate de sursa de tensiune a sistemului, fiind
folosite pentru alimentarea modulelor sistemului.
Semnale de control a accesului – sunt utilizate pentru arbitrajul şi controlul
accesului pe magistrală (în cazul magistralelor multimaster), fiind generate de un
circuit specializat (arbitru de magistrală).
Numărul şi semnificaţia particulară a semnalelor depind de tipul şi destinaţia
magistralei. Anumite grupe de semnale din cele prezentate pot să lipsească (de
exemplu, semnalele de control) sau altele noi pot fi adăugate (semnalele de eroare,
semnalele de control al lăţimii datelor transferate pe un număr de biţi etc.).
Magistralele pot fi clasificate în funcţie de mai multe criterii.
I. Modul de lucru (în raport cu semnalul de tact):
 magistrale sincrone – la care ciclurile de transfer sunt direct corelate cu
semnalul de tact. Viteza de transfer poate crește, însă rata de transfer a
magistralei este limitată de frecvenţa tactului.
 magistrale asincrone – la care nu există o legătură directă între evoluţia
în timp a unui ciclu de transfer şi tactul sistemului. Majoritatea
magistralelor actuale lucrează pe acest principiu.
II. Numărul de module master conectate pe magistrală:
 magistrale unimaster – există un singur modul master pe magistrală. Nu
necesită mecanisme de arbitrare a magistralei (un modul master poate
iniţia un ciclu de transfer, pe când un modul slave este comandat în timpul
unui ciclu de transfer, neavând elementele necesare pentru a prelua
controlul magistralei).
 magistrale multimaster – permit conectarea mai multor module master
pe acelaşi tronson de magistrală. Magistrala trebuie să conţină semnale de
arbitraj şi un protocol de transfer al controlului pe magistrală.
116 Arhitectura sistemelor de calcul – lucrări practice

III. Modul de realizare al transferului de date:


 magistrale cu transfer prin cicluri (magistrale secvenţiale) – regula de
bază: ciclurile de transfer se desfăşoară secvenţial, cel mult un ciclu de
transfer fiind în curs de desfăşurare la un moment dat. Majoritatea
magistralelor folosesc acest principiu de transfer.
În funcţie de direcţia de transfer, se disting şase cicluri semnificative:
 cicluri de citire (respectiv, de scriere) din/în memorie;

 cicluri de citire (respectiv, de scriere) de la/la un port intrare-ieşire;

 cicluri de acces direct la memorie – DMA (citire/scriere).

 magistrale tranzacţionale – transferul de date se efectuează prin tranzacţii.


O tranzacţie este divizată în mai multe faze. Mai multe tranzacţii se pot
desfăşura simultan, cu condiţia ca tranzacţiile să fie în faze diferite; această
restricţie provine din faptul că fiecare fază a unei tranzacţii foloseşte un
subset din mulţimea semnalelor magistralei. Teoretic, la aceste magistrale
factorul de creştere a vitezei (în comparaţie cu o magistrală secvenţială)
este egal cu numărul de faze în care se divide o tranzacţie, similar
principiului pipeline (de exemplu, magistrala procesorului Pentium).
IV. Numărul semnalelor utilizate în transferul de date:
 magistrale seriale – se utilizează ca mijloc de comunicaţie între
componentele de bază ale unui calculator (CPU, memorie, interfeţe I/O
etc.), după impunerea standardului USB, în ciuda transferului unifilar. Se
folosesc și în anumite sisteme dedicate bazate pe microcontrolere, la care
costul şi dimensiunea redusă sunt definitorii. Există, de asemenea,
numeroase versiuni seriale ale unor magistrale paralele (ex.: SAS, SATA);
 magistrale paralele – au fost foarte răspândite înainte de apariția UBS,
datorită utilizării transferurilor simultane pe un octet.
În continuare, se face referire la magistrala paralelă, fiind vorba de magistrala
procesorului.

2.3. Magistrala procesorului

Magistrala procesorului este calea de comunicaţie între CPU (unitatea centrală


de prelucrare) şi cipurile cu care lucrează direct. Această magistrală este folosită
pentru a transfera date, de exemplu, între CPU şi memoria cache externă. Cele mai
multe sisteme au un cache extern pentru CPU. Fiindcă scopul magistralei procesorului
este transmiterea şi primirea datelor de la CPU cu cea mai mare viteză posibilă,
această magistrală lucrează la o viteză mult mai mare decât orice altă magistrală din
sistem: aici nu există strangulări (Neumann bottleneck). Magistrala este compusă din
linii de semnal utilizate pentru date, pentru adrese şi pentru comenzi. Magistrala
procesorului lucrează la aceeaşi frecvenţă cu cea a ceasului de bază al CPU în
exterior. Acest lucru poate conduce la concluzii greşite deoarece cele mai multe
procesoare actuale utilizează o frecvenţă de lucru internă mult mai mare decât a
oricărei magistrale din sistem (frecvență externă).
Pentru a determina viteza de transfer pe magistrala procesorului, se
multiplică lăţimea datelor cu frecvenţa ceasului magistralei (aceeaşi cu frecvenţa
ceasului de bază al procesorului). Această viteză de transfer, numită lărgime de
bandă a magistralei, reprezintă o valoare maximă, care nu este lărgimea de bandă în
funcţionarea normală. Valoarea medie a vitezei transferului de date este mai scăzută,
din cauza factorilor de limitare: proiectarea setului de cipuri, viteza memoriei şi altele,
care contribuie la scăderea lărgimii de bandă efective.
Studiul tipurilor de magistrale 117

Între unităţile sau circuitele conectate la magistrală, se disting unităţi de tip


master, care au iniţiativa comunicării pe magistrală, şi unităţi de tip slave, care
răspund la iniţiativa de comunicare a master-ului.

2.3.1. Magistralele sincrone

Din punct de vedere al cadenţei schimbului de date care are loc pe magistrală,
există arhitecturi sincrone şi asincrone. Magistrala sincronă dispune de o linie de ceas
comandată de un oscilator cu cuarţ. Toate operaţiile de pe o magistrală sincronă sunt
efectuate într-un număr întreg de perioade de ceas.
În figura 1 este prezentat modul de lucru al magistralei sincrone, în cazul
operaţiei de citire a unui cuvânt din memorie.

Fig. 1. Diagrama de timp pentru schema accesului la magistrala sincronă.

Notaţii:
 Ø – semnal de ceas real (ex.: un ciclu de ceas cu frecvența de 4 MHz și
perioada de TC = 250 ns);
 MREQ (semnal activ pe 0) – cerere de acces la memorie (Memory Request);
 RD (semnal activ pe 0) – citire (Read);
 TML – timp de stabilire a adreselor înainte de MREQ (> 60 ns; ex.: la o
frecvenţă de ceas de 4 MHz, se acceptă un timp de creştere de 10 ns);
 TM – activarea semnalului MREQ faţă de frontul descrescător în ciclul T1
(< 85 ns);
 TRL – activarea semnalului RD faţă de frontul descrescător în ciclul T 1
(< 85 ns);
 TDS – date disponibile înainte de frontul descrescător în ciclul T3 (> 50 ns);
118 Arhitectura sistemelor de calcul – lucrări practice

 TMH – tranziţia semnalului MREQ după frontul descrescător în ciclul T 3


(< 85 ns);
 TRH – tranziţia semnalului RD faţă de frontul descrescător în ciclul T 3
(< 85 ns);
 TDH – menţinerea datelor după ridicarea semnalului de date (după
comutarea semnalului RD, > 0).
Începutul ciclului T1 este marcat de frontul crescător al semnalului Ø. În prima
parte a ciclului T1, procesorul plasează pe magistrala de adrese adresa care se doreşte
a fi citită din memorie. Poziţionarea adresei pe magistrală corespunde activării mai
multor semnale binare, care formează adresa. După stabilirea adresei pe magistrală,
devin active semnalele MREQ şi RD, active pe 0. MREQ indică, prin activarea sa, că
se efectuează un acces la memorie şi nu un acces la dispozitivele I/O. RD defineşte,
prin activarea sa, o operaţie de citire din memorie.
În timpul ciclului T2, nu are loc nicio modificare pe magistrală, pentru a
permite memoriei decodificarea adresei de pe magistrala de adrese şi poziţionarea
informaţiei cerute pe magistrala de date.
În timpul ciclului T3, pe frontul descrescător al semnalului de ceas,
microprocesorul captează şi înregistrează într-un registru intern informaţia prezentă pe
magistrală. Odată terminată această operaţiune, procesorul pune în repaus semnalele
MREQ şi RD (le ridică în 1).
Dacă este nevoie mai departe de o altă operaţie de citire sau de scriere, aceasta
poate începe pe frontul crescător al următorului ciclu de ceas. Dacă memoria nu este
capabilă să plaseze datele pe magistrală în timpul cerut (să fie respectat TDS), atunci
memoria activează un semnal de WAIT, prin care cere prelungirea timpului de citire.
Stările de WAIT, care sunt generate de surplusul de viteză a procesorului în
comparaţie cu viteza memoriei, încetinesc viteza calculatorului.
Avantajul magistralei sincrone: funcţionarea este relativ simplă.
Dezavantajele magistralei sincrone:
1. Orice operaţie pe magistrală corespunde unui număr întreg de perioade de
ceas, ceea ce conduce la o funcţionare suboptimală din punct de vedere al
vitezei de lucru, datorată faptului că o operaţie care durează, de exemplu,
între 3,1 și 3,9 perioade de ceas va fi realizată în 4 perioade de ceas, chiar
dacă memoria poate să răspundă mai repede;
2. Magistrala sincronă evoluează dificil odată cu procesul tehnologic de
realizare a componentelor (se spune că nu este responsivă la progresul
tehnologic), datorită faptului că prin utilizarea unor memorii de viteză mai
mare nu se poate reduce durata unei operaţii de citire-scriere până când nu
este modificată frecvenţa ceasului care guvernează magistrala.
Concluzie. Pentru a conecta în mod optim un ansamblu de circuite la
magistrală, este preferată arhitectura asincronă.

2.3.2. Magistralele asincrone

În acest caz, nu mai este necesară existenţa unui semnal de ceas care să
supervizeze transferul. Deci, durata unei operaţiuni pe magistrală este variabilă, în
funcţie de performanţele circuitelor utilizate, fiind direct proporțională cu timpul de
acces la memorie.
În figura 2 este prezentat modul de lucru al magistralei asincrone, în cazul
operaţiei de citire a unui cuvânt din memorie.
Studiul tipurilor de magistrale 119

Fig. 2. Diagrama de timp pentru schema accesului la magistrala asincronă.

MSYN (Master Synchronization) şi SSYN (Slave Synchronization) sunt


semnalele de sincronizare (ambele fiind active pe 0) care asigură respectarea ordinii
diverselor momente din operaţiunea de citire. De obicei, master este UC şi slave este
memoria.
După ce adresa cuvântului este depusă pe magistrala de adrese de către UC şi
după ce semnalele MREQ şi RD devin active, UC activează semnalul MSYN care
comunică memoriei începerea operaţiei de citire.
Memoria efectuează citirea la viteză proprie, iar după depunerea pe magistrală
a informaţiei cerute activează semnalul SSYN. Acest semnal informează procesorul
că datele solicitate sunt valide pe magistrală.
Procesorul încarcă datele în registrele interne, după care dezactivează
semnalele MREQ, RD şi MSYN. Dezactivarea lui MSYN este sesizată de memorie,
care pune în repaus SSYN şi eliberează magistrala de date. Astfel, s-a ajuns din nou la
starea iniţială şi rezultă că poate începe o altă operaţie pe magistrală.
Ansamblul semnalelor de mai sus, cu ajutorul cărora se efectuează transferul
datelor, corespunde tehnicii full handshake (tehnica acordului confirmat), care
include următoarele operaţii:
 activarea lui MSYN;
 activarea lui SSYN ca răspuns la MSYN;
 dezactivarea lui MSYN ca răspuns la SSYN;
 dezactivarea lui SSYN ca răspuns la MSYN.
Observaţie. Această tehnică este total independentă de timp. Fiecare
eveniment din succesiune este cauzat de evenimentul precedent. De aceea,
dispozitivele conectate la o magistrală asincronă pot fi uşor înlocuite cu alte
dispozitive mai performante (cu memorii din ce în ce mai rapide), pe măsură ce
tehnologia avansează. În consecinţă, avantajul folosirii magistralei asincrone apare
evident în comparaţie cu magistrala sincronă.
Pe o magistrală sincronă, UC îşi poziţionează semnalele, iar memoria sau
circuitele I/O nu fac altceva decât să răspundă la solicitările UC, fără a fi necesară o
sincronizare cu aceasta. Astfel, simplitatea magistralei sincrone constă în lipsa
semnalelor de sincronizare MSYN şi SSYN.
120 Arhitectura sistemelor de calcul – lucrări practice

3. Descrierea aplicaţiei

Aplicaţia constă în simularea pe calculator (realizată în mediul de dezvoltare


Visual Studio C# .NET) a modului de transfer al datelor pe magistrala procesorului.
La rularea programului, utilizatorul poate opta pentru unul din cele două moduri în
care va funcţiona magistrala, sincron sau asincron (vezi figura 3).

Fig. 4. Meniul principal al aplicației de studiu al tipurilor de magistrale.

Această fereastră de dialog va putea fi reapelată la comanda utilizatorului. De


asemenea, modul de lucru al magistralei sincrone poate fi ales din meniul pop-up
Parametri, fără a mai fi nevoie de apelarea ferestrei de start. Odată selectat modul de
lucru (sincron sau asincron), vor fi afişate formele de undă corespunzătoare cazului
selectat, (vezi figurile 4 şi 5).

Fig. 4. Exemplu de funcţionare a magistralei în modul sincron.


Studiul tipurilor de magistrale 121

Fig. 5. Exemplu de funcţionare a magistralei în modul asincron.

Atenţie! Aceste forme de undă nu vor fi afişate integral din primul moment, ci
pas cu pas, la comanda utilizatorului (folosind butoanele Înainte şi Înapoi), care astfel
poate parcurge secvenţial momentele importante ale transferului datelor pe magistrală
(comutarea fronturilor de undă, disponibilitatea datelor, determinările între semnale,
intervalele de timp între comutări etc.). La fiecare moment, bara de proprietăţi a
aplicaţiei afişează denumirea fazei curente a transferului de date de pe magistrală.
În cazul magistralei sincrone, utilizatorul dispune de o listă de parametri
editabili în limita anumitor intervale de valori permise, ca în exemplul din figura 6.
Aceste valori sunt:
 formatul logic al cipului de memorie: EDO-RAM, SDRAM, DDRAM,
RamBus (corespunzând timpilor de acces la memorie, care deteremină
momentul apariției semnalului de date pe diagrama de timp).
 parametrii ceasului magistralei: perioada (exprimată în zeci de picosecunde),
frecvenţa (exprimată în MHz), durata fronturilor sau a intervalelor de
creştere/descreştere (exprimată în nanosecunde). Atenţie: modificarea unuia
dintre aceşti parametri atrage după sine modificarea tuturor celorlalţi parametri.
 parametrii timpilor de comutaţie: TML, TM, TRL, TDS, TMH, TRH, TDH (exprimaţi
în zeci de picosecunde);
 restricţiile de ordin superior şi/sau inferior (intervalele) la care sunt supuse
valorile alese la punctul anterior, în funcţie de parametrii ceasului magistralei.
În fereastra de parametri ai magistralei sincrone, sunt afișate (cu roșu) detalii
despre intervalele de valori permise ale acestor parametri, în funcție de valorile
stabilite în aplicație ale parametrilor ceasului magistralei.
Observaţie. Pentru o mai bună urmărire a momentelor şi intervalelor de timp
implicate în cele două forme de undă (sincronă și asincronă), la reprezentarea grafică
s-au folosit culori diferite pentru fiecare semnal în parte.
122 Arhitectura sistemelor de calcul – lucrări practice

Fig. 6. Exemplu de stabilire a parametrilor de lucru ai magistralei în modul sincron.

4. Desfăşurarea lucrării

1. Se lansează în execuţie programul de simulare a tipurilor de magistrale.


2. Se selectează tipul de magistrală.
3. Se studiază cazul magistralei sincrone.
3.1. Se editează mai întâi lista de parametri, alegându-se valorile dorite,
care se vor reţine într-un tabel. Se recomandă să se parcurgă toate
tipurile cipurilor de memorie (care modifică momentul activării
semnalului de date pe diagrama de timp), precum şi plaje largi ale
valorilor pentru ceasul magistralei şi pentru timpii de comutaţie (în
limita intervalelor permise). Se notează rezultatele obținute pentru cel
puțin două seturi diferite de valori de intrare. Observaţie. La
încărcarea aplicației, există deja un set de parametri impliciţi gata setaţi.
3.2. Se vizualizează şi se desenează formele de undă rezultate, punându-se
în corespondenţă cu tabelele de parametri care au fost notate la
punctul anterior.
3.3. Pentru fiecare situaţie studiată, se urmăreşte numărul de cicluri de
ceas în care sunt disponibile datele, precum şi întârzierea datorată
neconcordanţei dintre momentul de răspuns al memoriei (timpul de
acces) şi momentul apariţiei frontului descrescător al ceasului.
4. Se studiază cazul magistralei asincrone: se vizualizează şi se desenează
formele de undă rezultate, notându-se modul de înlănţuire al semnalelor.
5. Se realizează o comparaţie între cele două tipuri de magistrale, din punctul
de vedere al vitezei de lucru şi al complexităţii semnalelor implicate.
Studiul tipurilor de magistrale 123

5. Întrebări

1. Cum este influenţată durata procesului de transfer al datelor pe magistrală


de către viteza de răspuns a memoriei, în cazul magistralei sincrone? Dar în cazul
magistralei asincrone?
2. Cum reacţionează procesorul, în cazul în care datele nu sunt furnizate de
memorie în timp util?
3. Pentru magistrala sincronă, în ce condiţii apar cele mai mari decalaje între
durata efectivă a unui transfer şi durata reală a procesului respectiv pe magistrală, în
comparaţie cu aceeaşi situaţie tratată de magistrala asincronă? Dar cele mai mici
decalaje? Pot fi aceste decalaje nule?
4. În ce raport se află durata frontului semnalului de ceas faţă de perioada
acestuia?
5. Cum poate fi corect relaţionată în aplicație perioada semnalului de ceas în
funcţie de tipul cipurilor de memorie folosite?
6. La care dintre cele două tipuri de magistrale efectul progresului tehnologic
(al îmbunătățirii timpului de acces la cipurile de memorie) se resimte mai puternic în
îmbunătăţirea performanţelor?
7. Care sunt metodele prin care se poate obţine o rată de transfer superioară
pe magistrală, în cazul ambelor tipuri studiate?
8. Care este legătura între frecvența semnalului de ceas și debitul (lărgimea
de bandă) la citire pentru memoria folosită, în cazul magistralei sincrone?
9. Care credeţi că este tipul de magistrală cel mai răspândit în cazul
procesoarelor actuale? Justificaţi. Indicaţi două cazuri particulare.
10. Prezentaţi comparativ avantajele şi dezavantajele celor două tipuri de
magistrală.
11. În ce situaţii este preferat un anume tip de magistrală dintre cele două
studiate şi de ce?
12. Care credeţi că este tipul de magistrală cel mai răspândit în cazul
procesoarelor actuale? Justificaţi.

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