Pređi na sadržaj

Koherentnost memorije

S Vikipedije, slobodne enciklopedije

Koherentnost memorije je problem koji utiče na dizajn računarskih sistema u kojima više procesora ili jezgara dele zajednički deo memorije.[1][2][3][4]

U jednoprocesorskom sistemu gde u današnjim terminima postoji samo jedno jezgro, postoji samo jedan procesuirajući element koji radi ceo posao i tako samo jedan element koji može da čita ili piše sa-na date memorijske lokacije. Kao rezultat, kada se vrednost promeni, sledeće operacije čitanja korespondirajuće memorijske lokacije će videti ažuriranu vrednost, čak iako je keširana.

Suprotno tome, u višeprocesorskim i višejezgranim sistemima se nalaze više procesuirajućih elemenata koji rade u isto vreme i zate je moguće da oni istovremeno pristupe istim memorijskim lokacijama. Pod pretpostavkom da nijedan od njih ne menja podatke na ovoj lokaciji, oni mogu da dele neodređeno i sacuvaju kako koji želi. Ali čim jedan analizira lokaciju, drugi bi mogli da rade na istekloj kopiji koja boravi u lokalnom kešu. Zbog toga je potrebna šema da obavesti procesuirajuće elemente na izmene kod podeljenih vrendosti. Takva šema je poznata kao protokol koherentne memorije i ako je taj protokol na funkciji, kaže se da sistem ima koherentnu memoriju.

Tačno značenje koherentnosti memorije određuje doslednost modela kojeg protokl implementira. Programeri moraju da paze na doslednost modela u svojim sistemima u cilju da napišu korektne programe.

Kada se implementira u hardveru, protokl može da bude direktno baziran ili da koristi njuškanje. Primeri takvih protokola su MSI protokol i izvedeni iz njega MESI, MOSI i MOESI.

Reference[uredi | uredi izvor]

  1. ^ Censier, L.M.; Feautrier, P. (1978). „A New Solution to Coherence Problems in Multicache Systems”. IEEE Transactions on Computers. IEEE. C—27 (12): 1112—18. doi:10.1109/TC.1978.1675013. 
  2. ^ Smith, Alan Jay (1982). „Cache Memories”. ACM Computing Surveys. ACM. 14 (3): 473—530. doi:10.1145/356887.356892. Pristupljeno 2011-02-25. 
  3. ^ Li, Kai; Hudak, Paul (1989). „Memory coherence in shared virtual memory systems”. Transactions on Computer Systems. ACM. 7 (4): 321—59. doi:10.1145/75104.75105. Pristupljeno 2011-02-25. 
  4. ^ Stenstrom, Per (1990). „A survey of cache coherence schemes for multiprocessors”. IEEE Computer. IEEE. 23 (6): 12—24. doi:10.1109/2.55497.