Multiprocesorski sistemi – “Snoopy” protokoli
Milo Tomaševi
ć
SI4MPS, 2007.
Multiprocesorski sistemi
“Snoopy” protokoli
ETF Beograd, SI4MPS, "Snoopy" protokoli
2/28
“Snoopy” protokoli
¡
Relativno lako rešenje problema koherencije
l
Nadgradnja kontrolera keš memorije na prirodan na
č
in
¡
Nadgledanje, promene stanja
l
Koriš
ć
enje osobina magistrale
¡
“Broadcast” transakcije, serijalizacija
¡
WTI
l
2 stanja: invalid, valid
l
Nema novih transakcija i žica na magistrali
l
Koherencija obezbe
đ
uje sekvencijalnu konzistenciju,
jer magistrala serijalizuje upise
l
Vrlo loše performanse
¡
Za bolje performanse => odloženi upis (WB)

ETF Beograd, SI4MPS, "Snoopy" protokoli
4/28
MSI protokol - dijagram stanja
PrRd/—
PrRd/—
PrW r/BusRdX
BusRd/—
PrW r/—
S
M
I
BusRdX/Flush
BusRdX/—
BusRd/Flush
PrW r/BusRdX
PrRd/BusRd
¡
RH – bez promene, lokalno
¡
RM dobija blok u stanju S
l
...
č
ak i ako je jedina kopija !
l
M -> C ili C -> C, M
¡
WM ostavlja blok u M
l
BusRdX
l
Postaje vlasnik
¡
WH u S se tretira kao WM
l
Ignoriše poslate podatke
l
Može i BusUpgr (bez podataka)
l
Upis u M – lokalno!
¡
Zamena
l
Ako je u M, mora “write-back”
ETF Beograd, SI4MPS, "Snoopy" protokoli
5/28
MSI protokol - koherencija
¡
Upisi i
č
itanja se mogu obavljati bez izlaska na magistralu
- koherencija garantovana?
¡
Propagacija upisa (“vidljivost”)
l
Upis u nemodifikovan blok vidljiv kroz BusRdX
l
Podaci se dobiju naknadnim invalidacionim promašajem
l
Tada postaju vidljivi i upisi u modifikovan blok
¡
Serijalizacija upisa
l
Upisi koji generišu BusRdX - ure
đ
eni magistralom
na isti na
č
in u odnosu na sve procesore
¡
obave se u kešu pre drugih transakcija
l
Lokalni upisi – izme
đ
u dve transakcije mogu
ć
i samo u ekskluzivnu
kopiju
¡
... pa su zato u programskom poretku (kao i lokalna
č
itanja)
¡
R i W od ostalih procesora razdvojeni transakcijom

ETF Beograd, SI4MPS, "Snoopy" protokoli
7/28
¡
Šta uraditi na BusRd u stanju M ?
l
Ako se o
č
ekuje dalje
č
itanje, M -> S (read sharing)
l
Ako se o
č
ekuje migratorna deljivost, M -> I
¡
Problem – invalidacioni promašaji
l
Rešenje – validacija bloka
l
Read Broadcast (read snarfing)
l
Samo jedan invalidacioni promašaj po bloku
l
Pove
ć
ana interferencija keša
¡
Problem –
č
itanje, pa upis u blok koji nije deljen
l
Dve transakcije: BusRd (I -> S), pa BusRdX (S->M)
l
Č
esta situacija u sekvencijalnim programima
l
Rešenje – novo stanje !
MSI protokol
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti