Title: MULTIPROCESOARE
1MULTIPROCESOARE
- ORGANIZARE GENERALA
- MODELE DE CONSISTENTA PENTRU MEMORIA PARTAJATA
- COERENTA MEMORIILOR CACHE
- PROIECTAREA MULTIPROCESOARELOR CU SUPRAVEGHERE
2ORGANIZARE GENERALA
Sistemele multiprocesor caracterizate prin -un
multiprocesor este un singur calculator care
include mai multe procesoare si un singur spatiu
de memorie adresabil de acestea -procesoarele
pot comunica si coopera la diferite niveluri
pentru rezolvarea unei probleme date -un
multiprocesor este controlat de un singur sistem
de operare integrat, care permite interactiunea
între procesoare si programele lor la nivel de
proces, set de date si chiar date elementare.
Exista doua modele arhitecturale de baza
pentru sistemele multiprocesor -multiprocesoare
slab cuplate LCM (Loosely Coupled
Multiprocessors) -multiprocesoare strâns cuplate
TCM (Tightly Coupled Multiprocessors).
3Multiprocesoarele slab cuplate -grad mai scazut
al conflictelor de memorie, fata de
multiprocesoarele strâns cuplate -fiecare
procesor dispune de un set de echipamente
periferice si o memorie locala mare, unde sunt
accesate aproape toate instructiunile si
datele -procesorul, dispozitivele de I/E si
memoria locala gt modul de calcul
(nod) -modulele de calcul sunt conectate între
ele printr-o retea de interconectare. -modulele
calculator pot fi conectate pentru realizarea
unui sistem multiprocesor ierarhic sau
neierarhic -un modul calculator poate fi
fabricat într-un singur cip gt folosit pentru
construirea de sisteme de calcul mari -reteaua
de interconectare între modulele calculator
magistrala multiplexata în timp sau memorie
multiport.
4Multiprocesoarele strâns cuplate -productivitate
mai buna -în prelucrarile de viteza mare sau de
timp real -un grad înalt de interactiune între
procesoarele componente. -reteaua de
interconectare procesoare memorie PMIN
(Processor-Memory Interconnection Network) gt
rata mare de comunicatie (comutatoare grila si
retele de comutatoare multinivel) -PMIN trebuie
sa permita înscrierea simultan a datelor în mai
multe module de memorie si sa rezolve conflictele
de acces.
-accesul procesoarelor la echipamente comune
retea de interconectare procesoare-dispozitive de
I/E, IOPIN (I/O Processor Memory Interconnection
Network) -procesoarele pot comunica direct,
eventual pot executa operatii de sincronizare
prin reteaua de interconectare ISIN (Interrupt
Signal Interconnection Network). Tipuri de
sisteme multiprocesor -sisteme bazate pe
magistrala, multiplexata în timp -sisteme
bazate pe comutator grila -sisteme bazate pe
comutator multinivel.
5(No Transcript)
6MODELE DE CONSISTENTA PENTRU MEMORIA PARTAJATA
Modelul de memorie pentru programele paralele
dintr-un multiprocesor
7 Accesul concurent al procesoarelor pentru
scrieri si citiri la o aceeasi locatie de memorie
partajata. pe baza unor reguli gt modelul de
consistenta al memoriei partajate. Modele de
consistenta -consistenta stricta -consiste
nta secventiala -consistenta de
procesor -consistenta slaba -consistenta
la eliberare.
8 1) Consistenta stricta (strict consistency)
fiecare citire de la o locatie x va furniza
întotdeauna valoarea celei mai recente scrieri în
x. -model comod -greu de implementat nu
permite memorie cache sau date duplicate -trebu
ie sa existe un singur modul de memorie care sa
serveasca toate cererile în ordinea
FIFO -aglomerare a memoriei partajate.
9 2) Consistenta secventiala (sequencial
consistency) pentru cereri multiple de citire
si scriere, hardware-ul va alege nedeterminist o
succesiune a lor, dar toate procesoarele vor
vedea aceeasi ordine. Exemplu într-un sistem
multiprocesor, procesoarele P1-P4 executa
operatii de citire scriere la o aceeasi locatie
de memorie x P1 write 100 P2 write
200 P3 read x P3 read x P4 read
x P4 read x gt o anumita ordine, dar daca
P3 citeste din locatia x valorile 100, 200 (în
aceasta ordine), gt cu siguranta si P4 va citi
tot valorile 100, 200 (în aceeasi ordine).
10 O solutie de implementare a modelului de
consistenta secventiala
11Definitie. Un sisteme multiprocesor este
secvential consistent daca rezultatul oricarei
executii este acelasi ca si cand operatiile
tuturor procesoarelor ar fi fost executate intr-o
anumita ordine secventiala si operatiile fiecarui
procesor individual apar in aceasta secventa in
ordinea specificata de program. Aspecte -mentin
erea ordinii din program pentru operatiile
procesoarelor individuale -mentinerea unei
ordini unice secventiale pentru operatiile
tuturor procesoarelor. Exemple care ilustreaza
aceste aspecte
12Ex.1 importanta ordinii din program pentru
operatiile unui singur procesor (algoritmul
Dekker pentru sectiune critica). P1 P2 (i
nitial Flag1Flag20) Flag11 Flag21 if(Fl
ag20) if(Flag10) sectiune
critica sectiune critica P1 seteaza Flag1 si
citeste Flag2, care daca are valoarea 0 inseamna
ca P2 nu a incercat sa intre in sectiunea critica
si atunci P1 intra in sectiunea critica.
Algoritmul se bazeaza pe faptul ca citirea
procesorului P1 a variabilei Flag2 are loc
inainte ca P2 sa execute operatiile de scriere si
citire. Consistenta secventiala mentine ordinea
din program a operatiilor efectuate de P1 si P2
impiedicand ca cele doua procesoare sa citeasca 0
si sa intre simultan in sectiunea critica.
13Ex.2 importanta executiei atomice a operatiilor
cu memoria. Trei procesoare partajeaza
variabilele A si B, initializate cu 0. Presupunem
ca P2 citeste 1 (dupa scrierea lui P1 in A),
scrie in B si P3 citeste 1 pentru B. Aspectul de
atomicitate a consistentei secventiale permite sa
presupunem ca efectul scrierii lui P1 este vazut
de intregul sistem in acelasi timp. De aceea se
garanteaza ca P3 vede efectul scrieri lui P1 si
returneaza valoarea 1 pentru variabila A (caci P3
vede efectul scrierii lui P2 dupa ce P2 vede
efectul scrierii lui P1 in A). P1 P2 P3 (
initial AB0) A1 if(A1) B1 i
f(B1) regA
14Implementarea consistentei secventiale in sisteme
fara cache 1) Buffere de scriere cu posibilitate
de ocolire ("bypassing capability") ilustreaza
importanta mentinerii ordinii din program intre o
scriere si o operatie de citire urmatoare. La o
scriere procesorul inscrie data in buffer si
continua fara sa astepte terminarea operatiei de
scriere la memorie. Citiri urmatoare pot ocoli
oricare scrieri anterioare in bufferul de scriere
pentru incheierea mai rapida (adresa de citire nu
coincide cu nicio adresa de scriere din buffer).
15Pentru a urmari modul in care bufferele de
scriere pot incalca consistenta secventiala se
considera algoritmul Dekker. Un sistem consistent
secvential trebuie sa impiedice furnizarea
valorii 0 pentru ambele variabile (Flag1 si
Flag2). Dar acest lucru se poate intampla daca
ambele procesoare au inscris 1 si scrierile sunt
in bufferele procesoarelor, iar citirile se
executa din memorie inainte de actualizarile
operatiilor din buffere cu memoria.
162) Suprapunerea operatiilor de scriere
ilustreaza importanta mentinerii ordinii din
program intre doua operatii de scriere. Se
considera o retea generala de interconectare (nu
magistrala) si module multiple de memorie. Lipsa
magistralei si existenta unor module multiple de
memorie permit servirea unor operatii multiple de
scriere. Presupunem ca procesoarele lanseaza
operatiile de scriere cu memoria in ordinea din
program si isi continua executia fara sa astepte
incheierea operatiilor. Diferenta fata de
situatia precedenta scrieri multiple ale unui
procesor pot fi realizate in paralel in memorii
diferite.
17Se considera un exemplu de program pentru care
aceasta optimizare poate incalca consistenta
secventiala. P1 P2 Data2000 while
(Head0) Head1 ... Data Un sistem
secvential consistent garanteaza ca citirea
variabilei Data de catre P2 va intoarce valoarea
inscrisa de P1. Dar permitand suprapunerea
scrierilor procesorului P1 se poate incalca
consistenta secventiala. Daca Data si Head sunt
in module diferite si scrierea lui Head este
plasata in reteaua de interconectare inainte de
Data, scierile se pot incheia in alta ordine
decat cea din program, ceea ce face ca celalalt
procesor sa gaseasca Head1 (valoarea noua) si
Datavaloarea veche. Solutie asteptarea
incheierii unei operatii de scriere inainte de
lansarea in reteaua de interconectare a unei noi
operatii de scriere de la acelasi procesor. In
general se poate utiliza un semnal de achitare a
scrierii catre procesor ("acknowledge").
183) Operatii de citire neblocante ilustreaza
importanta mentinerii ordinii din program intre o
citire si o operatie urmatoare de citire sau
scriere. Se considera citiri neblocante in
sistem chiar daca exista procesoare care se
blocheaza pana la citirea datei (citire blocanta)
alte procesoare trec de o operatie de citire
utilizand tehnici cum sunt memorii cache
neblocante, executie speculativa si planificare
dinamica.
Pentru programul din exemplul precedent se
presupune ca scrierile lui P1 sunt in ordinea din
program, dar daca se permite ca operatiile de
citire ale lui P2 sa fie lansate in maniera
suprapusa este posibil ca citirea variabilei Data
de catre P2 sa se incheie inainte de scrierea
valorii acestei variabile de catre P1.
19Implementarea consistentei secventiale in sisteme
cu memorii cache Memorarea datelor in cache
poate conduce la o reordonare a operatiilor care
sa incalce consistenta secventiala. Exemplu un
cache L1 "write through" -gt reordonare
asemanatoare cu cea de la bufferul de scriere cu
posibilitate de ocolire. Replicarea datelor
implica suplimentar -prezenta de copii multiple
necesita un mecanism care sa propage cea mai noua
valoare scrisa la toate copiile din cacheuri
(protocol de coerenta a memoriile
cache) -detectarea incheierii unei operatii de
scriere necesita mai multe tranzactii in prezenta
datelor replicate -propagarea modificarilor la
copii multiple este inevitabil o operatie
non-atomica, pentru care (deci pentru scrieri)
trebuie sa se furnizeze iluzia atomicitatii in
raport cu alte operatii.
201) Coerenta memoriilor cache. Cu un protocol de
coerenta se asociaza conditii ca -o scriere
este facuta vizibila la toate procesoarele -scri
erile la aceeasi locatie trebuie vazute in
aceeasi ordine de catre toate procesoarele
(serializarea scrierilor in aceeasi
locatie). Propagarea unei valori inscrise se
obtine prin fie invalidarea (sau eliminarea) fie
actualizarea copiei.
212) Detectarea incheierii operatiilor de scriere.
Mentinerea ordinii din program a unei scrieri
fata de urmatoarele operatii necesita un
acknowledge pentru a semnala incheierea scrierii.
Se considera exemplul precedent de la solutia
fara cache, dar in plus procesoarele sunt dotate
cu memorii cache. Presupunem ca P2 are Data in
cache. Dupa ce P1 a scris Data in memorie dar
inainte de actualizarea in cahe-ul P2, P1
lanseaza scrierea Head. Este posibil ca P2 sa
citeasca noua valoare Head, dar sa citesca vechea
valoare Data gt incalcarea consistentei
secventiale. Solutia P1 asteapta ca P2 sa
actualizeze copia Data in cache, inainte ca P1 sa
scrie Head. Astfel daca se face o scriere
intr-un bloc care se gaseste si intr-un alt cache
sistemul necesita un mecanism de acknowledge
pentru invalidarea sau actualizarea copiilor,
implementat la nivelul memoriei partajate sau la
nivelul procesorului care a lansat scrierea.
Procesorul care lanseaza urmatoarea scriere
trebuie sa primeasca aceasta notificare privind
incheierea operatiei de scriere anterioare.
223) Mentinerea iluziei de atomicitate pentru
scrieri propagarea schimbarilor la copii
multiple nu este o operatie atomica. Exista doua
conditii care trebuie indeplinite pentru a
asigura atomicitatea scrierilor. Ilustrarea
primei conditii presupunem ca patru procesoare
executa P1 P2 P3
P4 (initial ABC0) A1 A2 whil
e(B!1) while(B!1) B1 C1 while(C!1)
while(C!1) reg1A reg2A Este
posibil ca scrierile lui A de catre P1 si P2 sa
ajunga la P3 si P4 in ordine diferita, astfel P3
si P4 citesc valori diferite pentru A. Este
necesar sa se impuna serializarea scrierilor in
aceeasi locatie.
23Pentru cea de-a doua conditie se considera
exemplul P1 P2 P3 (initial
AB0) A1 if(A1) B1 if(B1)
regA Se poate incalca consistenta
secvetiala daca -P2 citeste valoarea noua a lui
A inainte ca actualizarea lui A sa ajunga la
P3 -actualizarea lui P2 asupra variabilei B
ajunge la P3 inainte de actualizarea lui A -P3
citeste noua valoare a lui B, apoi incearca sa
citeasca A din propriul cache (inainte sa
primeasca actualizarea lui A). gt P2 si P3
observa scrierea lui A la momente diferite,
facand scrierea neatomica (apare in schemele cu
invalidare). Pentru prevenirea incalcarii
consistentei interzicerea unei citiri de la
returnarea unei valori nou scrise pana ce toate
copiile din cacheuri au confirmat receptia
mesajului de invalidare sau de actualizare
generate de scriere.
24 3) Consistenta de procesor (processor
consistency) - definita de urmatoarele
proprietati a) scrierile oricarui procesor sunt
vazute de toate procesoarele în aceeasi ordine în
care au fost emise b) pentru fiecare cuvânt de
memorie toate procesoarele vad toate scrierile în
aceeasi ordine. Exemplu procesorul P1 scrie în
x valorile 100, 200, 300 (în aceasta ordine), iar
procesorul P2 scrie tot în x valorile 400, 500,
600. P3 citeste din x 100, 400, 200, 500, 300,
600 P4 citeste din x 100, 200, 400, 300, 500,
600 (etc. alte combinatii) gt niciun procesor nu
va citi o combinatie, de exemplu, de tipul ,200,
100, -proprietatea b) toate procesoarele sa
fie de acord cu ultima scriere dintr-o succesiune
de scrieri (locatia x sa aiba o valoare
neambigua).
25 O solutie de implementare a consistentei de
procesor (utilizata in arhitectura SPARC)
26- 4) Consistenta slaba (weak consistency) nu
garanteaza nici macar ca scrierile facute de un
procesor sunt vazute în aceeasi ordine. - Exemplu procesorul P1 scrie valorile 100, 200
în locatia x. Procesorul P2 vede succesiunea 100,
200, iar P3 vede 200, 100. - operatie de sincronizare toate operatiile de
scriere sunt încheiate si nu se încep altele
noi, pâna când cele vechi nu sunt terminate
(operatiile de sincronizare secvential
consistente). - Exemplu P1 scrie în locatia de memorie x
urmatoarele valori - 100,
200 ? 300 ?
. . . . . -
pct.sinc.
pct.sinc. - -procesorul P2 poate vedea valorile 100, 200
- -procesorul P3 poate vedea valorile 200, 100
- gt dar ambele vad succesiunea 100, 300 si 200,
300.
27 5) Consistenta la eliberare (release
consistency) -rezolva dezavantajul modelului
precedent sunt oprite toate operatiile noi în
punctul de sincronizare pâna când se termina
toate operatiile în curs -operatia de
sincronizare este împartita în doua operatii
diferite -acaparare (acquire) acapararea
variabilei de sincronizare pentru a obtine acces
exclusiv la datele partajate -eliberare
(release) eliberarea variabilei de
sincronizare pentru a indica terminarea. gt
avantaj nu întârzie instructiunile asa de des
cum face consistenta slaba.
28COERENTA MEMORIEI CACHE
Categorii de ierarhii de memorie
1) Memoria cache partajata
292) Memorie principala bazata pe magistrala
303) Dance hall
314) Memorie distribuita
32 Definitie. Un sistem de memorie este coerent
daca rezultatele oricarei executii a unui program
sunt astfel incat pentru fiecare locatie este
posibil sa se construiasca o ordine seriala
ipotetica a tuturor operatiilor cu locatia care
este consistenta cu rezultatele executiei si in
care 1) operatiile generate de oricare proces
particular au loc in ordinea generata de
proces 2) valoarea returnata de o citire este
valoarea scrisa de ultima operatie de scriere in
locatia respectiva in cadrul ordinii
seriale. Caracteristici -propagarea
scrierii valoarea scrisa trebuie sa devina
vizibila altor procesoare -serializarea
scrierii scrierile in locatia respectiva trebuie
sa fie vazute in aceeasi ordine de toate
procesoarele.
33Solutii a) bazate software in clustere de
statii de lucru (PC-uri) extinzand sistemul de
memorie virtuala b) bazate hardware -
variante -scheme de supraveghere broadcast
pentru observarea intregului trafic de coerenta
(sisteme pe magistrala si sisteme cu numar mic de
procesoare, exemplu SGI Challange) -scheme de
directoare informatii centralizate pentru
evitarea broadcastului (sisteme cu numar mare de
procesoare. exemplu SGI Origin 2000).
34 Scheme de supraveghere pentru coerenta
memoriilor cache
Exemplu de acces al unei variabile partajate de
catre trei procesoare cu memorii cache
35 Cea mai simpla metoda sistemul de memorii cache
cu actualizare la scriere (write through) -gt
orice operatie de scriere gt tranzactie de
scriere pe magistrala (toate memoriile cache
observa aceasta tranzactie) !
36O memorie cache cu observare (snooping cache)
are o copie a blocului gt va invalida copia
blocului sau o va actualiza. Categorii de
protocoale -protocoale cu invalidare -protocoa
le cu actualizare.
Memorie cache write through, varianta write
no allocate (fara alocare la scriere daca la o
operatie de scriere blocul nu este în memoria
cache, acesta nu va fi încarcat în cache si
operatia de scriere se va face direct în memoria
principala) -2 stari -valid -invalid.
Memorie cache cu actualizare la eliminare
(write back) -valid -invalid -modificat
(sau murdar).
37Protocoale write-through 1) Protocol VI simplu
cu invalidare pentru memorie cache write
through, varianta write no allocate.
38- Exemplu se considera un sistem multiprocesor
bazat pe magistrala cu protocol write-through
in care fiecare procesor lucreaza la frecventa de
1GHz, 1CPI (un ciclu per instructiune), iar 15
din program sunt instructiuni de scriere in
memorie de cuvinte pe 8 octeti. - fiecare procesor executa 15107 instructiuni de
memorare pe secunda (1.2 Gocteti/sec) - magistrala 2 Gocteti/sec gt magistrala poate
suporta numai un singur procesor, fara sa se
satureze! - Solutia write-through nu este indicata pentru
SMP-uri! Memoriile cache write-back reduc
accesele la magistrala!
39Protocoale write-back cu invalidare Protocoal
ele write-back -protocoale cu
invalidare -protocoale cu actualizare.
40 2) Protocol MSI de baza cu invalidare pentru
memorie cache de tipul write back (utilizat
prima data în sistemele multiprocesor din seria
Silicon Graphics 4D).
41 3) Protocol ESI write-back cu invalidare. Un
bloc de memorie poate sa fie intr-una din
urmatoarele stari -Clean valid intr-un subset
de memorii cache si in memoria partajata -Dirty
intr-o singura memorie cache -nu se gaseste in
nicio memorie cache. Starile fiecarui bloc de
cache -I (invalid) blocul nu este valid in
memoria cache curenta (se gaseste in alt cache
sau in memoria partajata) -E (exclusiv) blocul
este valid numai in memoria cache a procesorului
curent -S (shared) blocul este valid in doua
sau mai multe memorii cache. Diagrama de
tranzitii cuprinde actiuni initiate de un
procesor (cu rosu) si actiuni initiate de pe
magistrala (albastru inchis). Evenimentele lipsa
de cache la citire (ReadMiss) produc operatii de
supraveghere de catre toate memoriile cache.
Scrierile in blocuri curate sunt tratate ca
eveniente lipsa de cache la scriere (WriteMiss).
42(No Transcript)
43 Aplicatie. Se consiera doua procesoare care
acceseaza doua blocuri de cache care se mapeaza
in acelasi cadru de bloc in memoria cache a
fiecarui procesor. Initial blocul nu se gaseste
decat in memoria principala.
P1 P1 P1 P2 P2 P2 Mag. Mag. Mag. Mag. Mem. Mem.
stare adresa valoare stare adresa valoare actiune proc. adresa valoare adresa valoare
P1Wr 10?A1 E A1 10 WrMs P1 A1
P1Rd A1 E A1 10
P2Rd A1 S A1 RdMs P2 A1
S A1 10 WrBk P1 A1 10 10
S A1 10 RdData P2 A1 10 10
P2Wr 20?A1 I E A1 20 WrMs P2 A1 10
P2Wr 40?A2 WrMs P2 A2 10
E A2 40 WrBk P2 A1 20 20
44 3) Protocol MESI cu invalidare pentru memorie
cache de tipul write back.
45 Aplicatie. Se considera un sistem multiprocesor
cu trei procesoare in care consistenta memoriei
cache se asigura printr-un protocol MESI. Se
executa o succesiune de operatii de citire si
scriere referitoare la un acelasi bloc de memorie
cache P1Rd, P2Rd, P3Rd, P1Rd, P1Wr, P1Rd,
P2Wr, P3Rd Initial nu exista copii ale blocului
in nicio memorie cache. Sa se specifice
succesiunea de stari corespunzatoare blocului la
nivelul fiecarei memorii cache, actiunile pe
magistrala si dispozitivul care furnizeaza
datele.
46(No Transcript)
47Protocoale write-back cu actualizare Protocol
cu actualizare o operatie de scriere realizeaza
actualizarile valorii in celelalte
cache-uri. Avantaje -un alt procesor care
acceseaza aceeasi informatie va avea valoarea
actualizata -se executa o singura tranzactie
pe magistrala pentru actualizarea mai multor
memorii cache, ceea ce conduce la o economisire a
ratei de transfer. Dezavantaj -scrieri
multiple ale aceluiasi procesor genereaza
tranzactii multiple de actualizare.
48 4) Protocol Dragon write-back cu
actualizare. Stari -E (exclusiv) blocul este
detinut de memoria cache curenta si de memoria
principala -Sc (shared clean) blocul este
detinut de alte memorii cache, posibil de memoria
principala si de memoria cache curenta, care nu
este proprietara (nu este responsabila cu
furnizarea blocului la o cerere) -Sm (shared
modified) blocul este detinut de alte memorii
cache, de memoria cache curenta, care este
proprietara (este responsabila cu furnizarea
blocului la o cerere), dar nu este detinut de
memoria principala -M (modified) sau D
(dirty) blocul este detinut numai de memoria
cache curenta.
49(No Transcript)
50 Aplicatie. Se considera o secventa de operatii
de scriere si citire efectuate de trei procesoare
P1, P2 si P3 pentru un acelasi bloc de memorie
cache. Sa se specifice succesiunea starilor la
nivelul fiecarei memorii cache, actiunea pe
magistrala si sursa de date pentru fiecare
operatie.
51PROIECTAREA MULTIPROCESOARELOR CU SUPRAVEGHERE
Memorii cache cu un singur nivel si magistrala
atomica Probleme -proiectarea memoriei cache
care sa asigure accesul procesorului si al
agentului de supraveghere la taguri -rezultatele
supravegherii din partea controloarelor de cache
trebuie sa se prezinte ca parte a tranzactiei pe
magistrala (cand si cum?) -chiar daca
magistrala este atomica, actiunile pentru o
cerere procesor implica si alte resurse, de
exemplu controloarele cache, care nu sunt
atomice -operatiile de actualizare "write-back"
introduc conditii asupra competitiei pentru
magistrala.
52(No Transcript)
53In timpul unei operatii cu memoria pe magistrala
fiecare memorie cache verifica adresa tranzactiei
cu tagurile proprii, iar rezultatul supravegherii
trebuie raportat de toate cache-urile inainte de
continuarea tranzactiei. Probleme -cand
trebuie sa se faca raportarea -cum trebuie sa
se faca raportarea.
54Solutii pentru momentul raportarii
supravegherii -hardware-ul garanteaza ca
rezultatele supravegherii sunt disponibile
intr-un numar fix de perioade de ceas. Posibil ca
la un cache procesorul tocmai sa faca o
actualizare E -gt M in ambele memorii de tag, ceea
ce intarzie controlorul de cache pentru
magistrala. Avantaj proiectare simpla a
sistemului de memorie. Dezavantaje hardware
complex si posibil latenta crescuta pentru
supraveghere. Solutia adoptata la Pentium Pro
Quads (extinde faza de supraveghere daca este
necesar). -supraveghere intr-un interval
variabil. Solutia presupune ca memoria asteapta
pana cand o memorie cache furnizeaza datele sau
pana cand s-a incheiat supravegherea si este
indicata o alta situatie. Exemplu SGI
Challenge. -memoria principala gestioneaza cate
un bit pentru fiecare bloc de cache, daca blocul
este in starea M intr-unul din cache-uri sau nu.
Dezavantaj complexitatea sistemului de memorie.
55Modalitatea raportarii supravegherii.
Considerente -la incarcarea unui bloc
controlorul de cache trebuie sa cunoasca daca
blocul este si intr-un alt cache (E / S) -la o
tranzactie memoria trebuie sa cunoasca daca
blocul este in starea M la un alt cache sau
nu. gt solutie trei linii sau-cablat (doua
pentru rezultatul supravegherii si una pentru
validarea rezultatului) -linia 1 indica daca
vreun cache detine o copie a blocului -linia 2
indica daca vreun cache are blocul
modificat -linia 3 initial inactiva, fiecare
controlor de cache activeaza linia pe masura ce a
incheiat supravegherea. Cand toate cache-urile
activeaza linia, aceasta devina activa.
56- Operatia "writeback" complica implementarea caci
implica doua blocuri de cache (un bloc de intrare
si un bloc de iesire). - se acorda prioritate procesorului gt memorie
suplimentara (buffer "writeback). - Problema posibil inainte de actualizare, pe
magistrala sa apara o cerere pentru acest bloc gt
blocul plasat pe magistrala din bufferul
"writeback" si se va anula cererea pentru
magistrala (comparator suplimentar de adresa
pentru supravegherea bufferului writeback).
57(No Transcript)
58 Problema importanta doua procesoare P1 si P2
detin un acelasi bloc in memoriile cache in
starea S si simultan genereaza o scriere in bloc,
facand cerere de magistrala. Daca arbitrarea este
castigata de P2, starea blocului se va modifica
din S in M, in timp ce la P1, care are o cerere
de magistrala in asteptare, starea blocului
ramane S (incorect!). gt P1 trebuie sa
supravegheze magistrala si pentru cererile sale
in asteptare si sa modifice starea blocului din S
in I, iar ulterior sa faca o noua cerere pentru
scrierea in bloc (BusRdX). Solutie extinderea
protocolului cu stari intermediare sau
tranzitorii.
59(No Transcript)