Sunteți pe pagina 1din 10

L5b: Scheme și algoritmi de arbitraj al magistralei

1. Obiectivul lucrării

Lucrarea urmăreşte însuşirea modului de lucru al unor algoritmi de arbitraj al


magistralei (scheme centralizate și descentralizate) şi prezentarea principalelor
tipurilor de algoritmi de arbitraj.

2. Introducere teoretică

În practică, în cele mai multe cazuri, mai multe dispozitive pot cere simultan
accesul la magistrală, ceea ce conduce la necesitatea introducerii unor reguli de
arbitraj. Arbitrajul magistralei se poate realiza în două variante: structura centralizată
(cu arbitru fizic) şi descentralizată (fără arbitru fizic, dar se implementează funcţiile
acestuia).

2.1. Algoritmi de arbitraj pentru structura centralizată

2.1.1. Algoritmul cu priorităţi statice (daisy chain)

Dispozitivele care pot deveni master sunt legate printr-un SAU cablat la linia
de cerere de magistrală (vezi figura 1). Când cel puţin unul dintre dispozitive cere
accesul la magistrală, arbitrul este sesizat, iar când este posibil (când magistrala este
liberă) acesta acordă accesul la magistrală printr-o linie de acordare a magistralei,
astfel încât arbitrul nu sesizează decât o singură cerere, chiar dacă mai multe circuite
solicită accesul. Linia de acordare a magistralei traversează în serie dispozitivele (pe
această linie, dispozitivele sunt aşezate în cascadă). Când primul dispozitiv
recepţionează acordarea magistralei, el cunoaşte dacă are sau nu nevoie de magistrală,
adică, dacă a formulat cererea de acces sau nu. Dacă are nevoie, el acceptă magistrala
şi preia controlul ei, iar dacă nu, permite propagarea semnalului de acordare mai
departe, către dispozitivul următor. Prioritatea scade de la stânga spre dreapta (este
direct proporţională cu apropierea de arbitru).

Fig. 1. Schema algoritmului cu priorităţi statice (daisy chain).


L5b: Scheme și algoritmi de arbitraj al magistralei 125

2.1.2. Algoritmul cu cereri independente

Fiecare dispozitiv emite către arbitru o cerere independentă de magistrală (vezi


figura 2). Arbitrul răspunde dispozitivelor pe linii separate. Dispozitivul care primeşte
răspuns afirmativ poate folosi magistrala. Logica de acordare a magistralei este
implementată (reconfigurată) în arbitru. Acest algoritm reprezintă cel mai general caz
de arbitraj al magistralei, dar din punct de vedere hardware este greu de implementat.

Fig. 2. Schema algoritmului cu cereri independente.

2.1.3. Algoritmul cu interogare ciclică (polling)

Există log2m linii de interogare pentru cele m dispozitive (vezi figura 3).
Dispozitivele sunt prevăzute cu câte un decodor pentru a recupera codul de interogare.
Dispozitivul care îşi recunoaşte codul de interogare activează semnalul de confirmare
şi preia controlul magistralei. Arbitrul întrerupe ciclul de interogare până când
dispozitivul căruia i s-a acordat magistrala îşi încheie operaţiile pe magistrală.
Prioritatea fiecărui dispozitiv este setată în codul de interogare.

Fig. 3. Schema algoritmului cu interogare ciclică (polling).


126 Arhitectura sistemelor de calcul – lucrări practice

În majoritatea sistemelor de calcul, unitatea centrală trebuie să negocieze


accesul la magistrală la fel ca şi celelalte unităţi (circuite I/O).
În general, unitatea centrală are prioritatea cea mai scăzută; ea utilizează
magistrala doar atunci când niciun alt circuit I/O nu are nevoie de ea. Aceasta permite
circuitelor I/O să facă transferul de date atunci când este nevoie, fără să apară
pericolul de pierdere a datelor.

2.2. Algoritmi de arbitraj pentru structura descentralizată

În această structură, nu există un arbitru veritabil de magistrală (circuit fizic),


ci fiecare dispozitiv îşi gestionează singură accesul la magistrală, realizând o parte din
funcţiile arbitrului.
Când un dispozitiv doreşte să utilizeze magistrala, acesta activează propria
linie de cerere de magistrală; la finele transferului curent de date de pe magistrală,
fiecare dispozitiv examinează cererile de acordare a magistralei.
Circuitele logice de pe fiecare dispozitiv permit accesul la magistrală doar
dispozitivului cu cea mai mare prioritate, iar pentru celelalte dispozitive accesul nu
este permis.

2.2.1. Algoritmul cu priorităţi dinamice (rotating daisy chain)

Pentru algoritmul cu priorităţi dinamice, nu mai există, față de algoritmul cu


priorități statice, un arbitru de magistrală (vezi figura 4).
Acest bloc este divizat în sub-blocuri descentralizate. Semnalul de acordare de
magistrală este conectat în buclă închisă între sub-blocurile de control ale magistralei.
Sub-blocul conectat cu dispozitivul care a preluat controlul magistralei devine master,
modificând astfel “distanţa” dintre dispozitive şi sub-blocul de arbitraj.
Procesul care a preluat controlul magistralei va avea la următoarea cerere de
magistrală prioritatea minimă. Sub-blocurile de arbitraj comunică între ele pentru a
arbitra cererea de magistrală prin semnalele de cerere de magistrală şi confirmare. De
asemenea, există legături electrice pentru dialog între fiecare sub-bloc de control al
magistralei şi dispozitivul asociat.

Fig. 4. Schema algoritmului cu priorităţi dinamice (rotating daisy chain).


L5b: Scheme și algoritmi de arbitraj al magistralei 127

2.2.2. Algoritmul FCFS (First Come First Served – primul venit, primul servit)

Acest algoritm nu preferă niciun dispozitiv anume: prima cerere de magistrală


sosită este acceptată şi servită (vezi figura 5). Este algoritmul optim, dar greu de
implementat, deoarece presupune existenţa unui mecanism de înregistrare a ordinii
cererilor de magistrală şi este posibil ca două cereri de magistrală să sosească
suficient de apropiate în timp pentru ca ordinea relativă a acestora să nu fie corect
înregistrată. Algoritmul FCFS este utilizat ca etalon pentru ceilalţi algoritmi (mai uşor
de realizat practic, dar cu performanţe mai slabe).

Fig. 5. Schema algoritmului FCFS (First Come First Served).

2.2.3. Algoritmul cu comparare in-out

Pentru a obţine accesul la magistrală, un dispozitiv trebuie să verifice mai întâi


dacă magistrala este liberă, dacă semnalul de magistrală ocupată este dezactivat şi
dacă linia de arbitraj prezentă la intrarea sa este liberă (vezi figura 6).

Fig. 6. Schema algoritmului cu comparare in-out.


128 Arhitectura sistemelor de calcul – lucrări practice

Dacă aceste trei condiţii sunt îndeplinite, dispozitivul în cauză pune în 0


ieşirea sa, ceea ce are ca efect propagarea stării de 0 pe linia de arbitraj pentru toate
dispozitivele care urmează. În acest moment, există un singur dispozitiv care are
intrarea activă (+5V) şi ieşirea inactivă (în 0), ceea ce face ca acest dispozitiv să
devină master pe magistrală – el activează linia de magistrală ocupată şi este liber să
efectueze transferul pe magistrală.
Lanţul de priorităţi la structura descentralizată este, deci, următorul: un
dispozitiv obţine accesul la magistrală înaintea celui de la dreapta sa, dar după cele de
la stânga.
Avantajele sunt: simplitatea (arbitrul de magistrală lipseşte, fiind nevoie de
trei teste de efectuat pentru dispozitive) şi rapiditatea faţă de structura cu arbitru.

3. Descrierea aplicaţiei

Lucrarea constă într-un program realizat în mediul de programare .NET pentru


ilustrarea activităţii pe magistrală printr-o prezentare grafică interactivă. Aplicaţia
cuprinde patru pagini şi, după parcurgerea lor, se obţin graficele de timp pentru
accesul la magistrală al fiecărui dispozitiv (unitate master).
În pagina de Introducere teoretică, singura opţiune este saltul la pagina
următoare (butonul Înainte). În partea din stângă se prezintă, pe rând, schemele
algoritmilor de arbitraj, iar în partea dreaptă se prezință noțiunile teoretice de bază
(vezi figura 7).

Fig. 7. Exemplu al paginii de introducere teoretică pentru arbitrajul magistralei.

În Pagina 1, se pot alege tipul algoritmului de arbitraj şi priorităţile unităților


master (dispozitivelor). Schemele diferiţilor algoritmi şi principalele lor caracteristici
pot fi afişate selectând numele algoritmului din una dintre cele două combobox-uri.
Algoritmii sunt împărţiţi în două categorii: algoritmi cu arbitru şi algoritmi fără
arbitru (vezi figura 8).
L5b: Scheme și algoritmi de arbitraj al magistralei 129

Fig. 8. Exemplu al paginii de selecție a algoritmului de arbitraj și a priorităților unităților master.

Priorităţile unităților master se pot alege din alt set de combobox-uri. Există
patru astfel de unități master disponibile, notate cu Master 0, Master 1, Master 2 și
Master 3. Pentru anumite scheme, aceste combobox-uri sunt setate implicit şi sunt
dezactivate, din cauza modului specific în care sunt alocate priorităţile. Astfel, pentru
algoritmul cu priorităţi statice (daisy chain) priorităţile descresc proporțional cu
distanța față de arbitru, deoarece linia de acordare traversează în serie dispozitivele,
astfel încât un dispozitiv mai apropiat de arbitru va prelua mai repede magistrala, dacă
acesta a formulat anterior o cerere (prioritatea scade de la stânga la dreapta).
Pentru algoritmul cu comparare in-out, priorităţile descresc de la punctul de
aplicare a tensiunii de +5V (de la dreapta la stânga), tot pentru că tensiunea de 5V
corespunzătoare valorii logice 1 este întreruptă de dispozitivul care se află mai
aproape de alimentare în momentul în care formulează o cerere.
În Pagina 2, se pot selecta momentele de timp ale cererilor de acces la
magistrală din partea dispozitivelor master, precum și duratele necesare transferurilor
care ocupă magistrala pentru fiecare dispozitiv master în parte (vezi figura 9).
Acest lucru se realizează în mod progresiv, în ordine crescătoare a momentelor
de timp. Pentru momentul de timp curent, se pot alege dispozitivele care lansează
cereri, precum şi duratele cererilor de acces la magistrală (duratele intervalelor în care
dispozitivele care au primit acces ocupă magistrala).
Pentru introducerea unui nou set de valori, se foloseşte butonul RESTART,
prin care se resetează toate valorile introduse anterior. Pentr
Pentru anumite momente de timp, butoanele de selecție sunt inactive, datorită
faptului că respectivele dispozitive au formulat anterior o cerere, dar fie nu li s-a
acordat încă accesul la magistrală, fie nu şi-au încheiat activitatea pe magistrală.
Valorile posibile ale duratelor de ocupare a magistralei sunt de 1, 2 și 3 (unități de
timp).
În Pagina 3, se afişează secvențial (pas cu pas) graficele diagramelor de timp
ale ocupării magistralei pentru fiecare dispozitiv master în parte, indicându-se la
fiecare pas momentul actual de timp (în partea de sus, cu albastru) și masterul activ pe
magistrală (în partea de jos, cu roșu), așa cum este reprezentat în figura 10.
130 Arhitectura sistemelor de calcul – lucrări practice

Fig. 9. Exemplu al paginii de selecție a momentelor și duratelor cererilor de magistrală.

Fig. 10. Exemplu al reprezentărilor grafice ale diagramelor de timp pentru ocuparea magistralei.

La fiecare nouă apăsare a butonului Înainte, se trasează porţiunea de diagramă


corespunzătoare dispozitivului master activ pe durata respectivă. Prin apăsarea
succesivă a acestui buton, se obţine întreaga secvenţă pe durata de studiu. Se poate
reveni la pașii anteriori prin apăsarea succesivă a butonului Înapoi. La final, butonul
Ieșire închide pagina cu graficele de reprezentare a diagramelor de timp.
Exemplul 1. Este proiectat pentru algoritmul cu priorităţi dinamice (rotating
daisy chain), cu priorităţile iniţiale: Master 0 (Periferic 0) – prioritate 1, Master 1
(Periferic 1) – prioritate 0, Master 2 (Periferic 2) – prioritate 3, Master 3 (Periferic 3)
– prioritate 2. Se introduc cereri pentru dispozitivele master (periferice) în secvenţa
următoare (duratele sunt exprimate în unităţi de timp):
L5b: Scheme și algoritmi de arbitraj al magistralei 131

 Momentul 0: Master 0 cu durata 2 şi Master 2 cu durata 3;


 Momentul 1: Master 3 cu durata 2;
 Momentul 8: Master 1 cu durata 2;
 Momentul 18: Master 1 cu durata 3;
 Momentul 19: Master 2 cu durata 3 şi Master 3 cu durata 1.
În urma afişării grafice a diagramelor de timp, se va obţine o secvenţă
asemănătoare celei reprezentate în figura 11.

Fig. 11. Ilustrarea diagramelor de timp pentru Exemplul 1.

Exemplul 2. Este proiectat pentru algoritmul FCFS (First Come First Served
– primul venit primul servit). Se introduc cereri pentru dispozitivele master
(periferice) în secvenţa următoare (duratele sunt exprimate în unităţi de timp):
 Momentul 0: Master 2 cu durata 2;
 Momentul 2: Master 3 cu durata 2;
 Momentul 5: Master 0 cu durata 3;
 Momentul 6: Master 1 cu durata 3;
 Momentul 8: Master 3 cu durata 1;
 Momentul 15: Master 1 cu durata 3;
 Momentul 16: Master 0 cu durata 3;
 Momentul 17: Master 2 cu durata 3.

Fig. 12. Ilustrarea diagramelor de timp pentru Exemplul 2.

În urma afişării grafice a diagramelor de timp, se va obţine o secvenţă


asemănătoare celei din figura 12.
132 Arhitectura sistemelor de calcul – lucrări practice

4. Desfăşurarea lucrării

1. Se parcurg introducerea teoretică și descrierea aplicației de arbitraj al


magistralei.
2. Se lansează aplicația L5B. În acest moment, este afișată pagina
introductivă. Este important să se parcurgă cu atenţie partea teoretică şi să
se observe asemănările şi deosebirile dintre schemele și algoritmii de
arbitraj prezentaţi.
3. Se trece la Pagina 1. Aici se poate alege unul dintre cei 6 algoritmi de
arbitraj (trei cu arbitru și trei fără arbitru). La alegerea unui anumit
algoritm, sunt afişate schema de funcţionare şi principalele sale
caracteristici. Nu se poate trece la pagina următoare dacă nu a fost selectat
niciun algoritm. De asemenea, se selectează şi priorităţile unităților
master, acolo unde este posibil. Este obligatoriu să se aleagă priorităţi
diferite pentru periferice, pentru a se putea trece la pagina următoare.
4. Se trece la Pagina 2. Aici se introduc valori, în ordinea momentelor de
timp, pentru unitățile master care lansează cereri de magistrală, selectând
numărul unității master și duratele asociate cererilor de magistrală.
Introducerea momentelor şi duratelor este asistată de regulile aferente
algoritmului ales anterior. Nu este permisă introducerea unor valori
invalide, butoanele de selecție corespunzătoare devenind inactive.
4.1. În această etapă, se notează momentele de timp şi duratele asociate
cererilor de magistralî ale unităților master selectate, aplicația efectuând
calculele pentru stabilirea priorităţilor unităților şi a momentelor de timp
de acordare a magistralei către unitățile master respective, conform
algoritmului de arbitraj ales anterior.
4.2. Se introduc seturile de valori prezentate în Exemplul 1 şi Exemplul 2.
5. Se trece la Pagina 3. În această pagină, se vizualizează şi se desenează
reprezentările grafice ale diagramelor de timp obţinute în cele două
exemple. Acestea se compară cu valorile calculate teoretic.
5.1. Se introduc, conform modelelor oferite prin cele două exemple, alte
seturi de valori diferite pentru algoritmii de arbitraj considerați şi se
urmăreşte desfăşurarea în timp a proceselor. Se notează valorile alese și se
desenează graficele diagramelor de timp obținute.
5.2. Se reîncepe introducerea unei noi secvenţe de date (cu alte valori
pentru prioritățile unităților master, momentele de timp și duratele
asociate, prin apăsarea butonului RESTART.
5.3. Se repetă pașii anteriori pentru toți ceilalți algoritmi de abitraj,
revenind de fiecare dată la pagina anterioară. Se notează valorile alese și
se desenează graficele diagramelor de timp obținute.
6. Se realizează o analiză comparativă între toți algoritmii de arbitraj, din
punctul de vedere al timpului mediu de aşteptare. Acesta se calculează,
pentru fiecare unitate master în parte, astfel: diferenţa dintre momentul de
timp al acordării magistralei pentru unitatea respectivă şi momentul de
timp al formulării cererii corespunzătoare, împărţită la numărul de cereri
aferente unității considerate (decalajul mediu de acordare a magistralei).
6.1. Analiza comparativă trebuie efectuată pentru acelaşi set de valori
(momente şi durate de timp).
6.2. Se repetă calculul cu alte seturi de valori și se notează rezultatele
obţinute.
L5b: Scheme și algoritmi de arbitraj al magistralei 133

5. Întrebări

1. Care este dezavantajul major al algoritmului FCFS (First Come First


Served – primul venit, primul servit)?
2. De ce nu pot fi introduse mai multe valori la un moment dat pentru
algoritmul FCFS (First Come First Served)?
3. De ce priorităţile sunt fixe pentru algoritmul daisy chain?
4. De ce priorităţile sunt fixe pentru algoritmul cu comparare in-out?
5. Care sunt asemănările și deosebirile între algoritmii daisy chain și cu
comparare in-out?
6. De ce algoritmul cu cereri independente este considerat cel mai general?
Cum se poate realiza practic implementarea în arbitru a logicii de acordare a
magistralei?
7. De ce se consideră că algoritmul cu comparare in-out este mai rapid decât
variantele cu arbitru?
8. Care sunt condiţiile care trebuie verificate de algoritmul cu comparare in-out?
9. Cum pune în evidenţă un dispozitiv master faptul că momentan ocupă
magistrala (are acces la magistrală)?
10. Descrieţi evoluţia în timp a priorităţilor dispozitivelor master din
Exemplul 1.
11. În cazul Exemplului 1, de ce butonul de selecție corespunzător
dispozitivului master 0, care a formulat o cerere la momentul 0 cu durata 2, este
inactiv la momentul 5?
12. Cum se poate calcula timpul mediu de aşteptare pentru un dispozitiv
master până la obţinerea accesului la magistrală (întârzierea medie între cerere și
acordare)?
13. Cum pot fi modificate schemele de arbitraj prezentate în lucrare, în cazul
în care dispozitivele master sunt separate pe două niveluri diferite de prioritate (de
exemplu, trei periferice pe nivelul 1 şi două periferice pe nivelul 2)?
14. Care dintre algoritmii studiaţi suportă o implementare cu schemă de
arbitraj circulară (cu ultimul master la stânga primului master)? Desenaţi schemele
rezultate.
15. Propuneţi o schemă originală de arbitraj al magistralei, folosind (eventual)
variante hibride, combinate sau extinse ale algoritmilor deja studiaţi.
16. Realizaţi o comparaţie între algoritmii de arbitraj al magistralei şi
modalităţile de servire a cererilor de întrerupere (folosind nivelurile IRQ).

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