Кохерентност меморије

Из Википедије, слободне енциклопедије

Кохерентност меморије је проблем који утиче на дизајн рачунарских система у којима више процесора или језгара деле заједнички део меморије.

У једнопроцесорском систему где у данашњим терминима постоји само једно језгро, постоји само један процесуирајући елемент који ради цео посао и тако само један елемент који може да чита или пише са-на дате меморијске локације. Као резултат, када се вредност промени, следеће операције читања кореспондирајуће меморијске локације ће видети ажурирану вредност, чак иако је кеширана.

Супротно томе, у вишепроцесорским и вишејезграним системима се налазе више процесуирајућих елемената који раде у исто време и зате је могуће да они истовремено приступе истим меморијским локацијама. Под претпоставком да ниједан од њих не мења податке на овој локацији, они могу да деле неодређено и сацувају како који жели. Али чим један анализира локацију, други би могли да раде на истеклој копији која борави у локалном кешу. Због тога је потребна шема да обавести процесуирајуће елементе на измене код подељених врендости. Таква шема је позната као протокол кохерентне меморије и ако је тај протокол на функцији, каже се да систем има кохерентну меморију.

Тачно значење кохерентности меморије одређује доследност модела којег протокл имплементира. Програмери морају да пазе на доследност модела у својим системима у циљу да напишу коректне програме.

Када се имплементира у хардверу, протокл може да буде директно базиран или да користи њушкање. Примери таквих протокола су MSI протокол и изведени из њега MESI, MOSI i MOESI.