«« ( Date ) »» // «« ( Thread ) »» // mips-nastava - 2003

Re: MESI

by Zare
petak, 21. februar 2003 - 11:03.





Da li bi neko mogao da mi objasni sledece:
Tacke 1) i 2) uzmi sa blagom rezervom, a za tacku 3) sam 99% siguran. Na kraju sam dao i svoj komentar ispitnog zadatka.

1) Znacenje WB/WT pina (malo detaljnije nego Writeback/Writethrough, tipa ko generise kontrolni signal za ovaj pin i cemu on konkretno sluzi)

Zare: postoje cetiri situacije, koje tebi nisu jasne:
1. prilikom citanja podatak iz Invalid prelazi u Exclusive (WB/WT# =1)
2. prilikom citanja iz Invalid prelazi u Shared (WB/WT# = 0)

U slucaju prve situacije, podatak u cache-u je isti kao u glavnoj memoriji, ali je moguce da podatak nije toliko bitan pa se 'ne organizuje' azuriranje ostalih cacheva u sistemu.
U slucaju druge situacije, ostali cachevi nisu IDLE, vec i oni svoje podatke azuriraju, sa kopijom koja se pojavljuje na magistrali, kada je onaj koji hoce da je procita dovlaci iz glavne memorije.
Kao sto sam objasnio u tacki pod 2) postoje podaci za koje ima smisla ovakav scenario.

3. prilikom upisa podatak iz Shared ide u Exclusive... pa slicna prica kao gore... podatak nije 'od presudnog znacaja za sistem' , pa se ne organizuje azuriranje ostalih cacheva
4. Shared to Shared... ovde to jeste



2) Tranziciju I -> S prilikom citanja
ovo je i meni misterija, ali sasvim je moguce da zbog toga sto je aktivan WT# signal (jer je tada WB/WT# = 0) , ostali cachevi nisu IDLE vec grabe svezu kopiju, u isto vreme kad i onaj koji je stvarno trazio taj podatak radi citanja. Moguce je cak i da se sistemski neki podaci oznace kao takvi da kada jedan cache zapocne njihovo citanje i dovlacenje iz glavne memorije, da i ostali cachevi krenu da azuriraju svoje kopije, iako im u tom trenutku ti podaci nisu potrebni

3) Zasto ne moze iz stanja S da se predje u stanje M prilikom pisanja?
Takvo je pravilo... prilikom prvog upisa, azurira se glavna memorija, a statistika je pokazala da ako dodje do drugog upisa nema svrhe azurirati ponovo glavnu memoriju, jer ce doci i do treceg, cetvrtog... pa se stoga podatak proglasava Modified


Sto se tice ispitnog zadatka, gde je trebala da se popuni tabela, meni i dalje ostaje misterija vezana za signale INV = 0 i INV = 1.
Al' opet, evo mog vidjenja, koje bi trebalo da otvori raspravu... cache krene u snooping iliti njuskanje.... i vidi da postoje u drugim cachevima podaci koji bi trebali da budu kao taj njegov.
Ako mu je direktiva INV=1 on te podatke u drugim cachevima ne azurira, vec ih proglasi ne vazecim.
Ako mu je direktiva INV =0 , on krece u azuriranje ostalih cacheva i sada podatak postaje Shared jer svi imaju istu kopiju.



Zare