20Aug

Када је ЦПУ-јев кеш мемориран у главну меморију?

click fraud protection

Ако управо почињете да сазнате како мулти-цоре процесори, кеширање, кохерентност кеш меморије и меморија функционишу, можда ће у почетку изгледати мало збуњујуће.Имајући то у виду, данашњи СуперУсер К & амп; пост има одговоре на радозналост читаоца.

Данашње питање & амп;Сесија одговора долази нам захваљујући СуперУсер-у подскупу Стацк Екцханге-а, групације К & ама;

Питање

СуперУсер читач ЦармелоС жели да зна када се ЦПУ-јева кеш меморијска плоча врати у главну меморију:

Ако имам ЦПУ са два језгра и свако језгро има свој Л1 цацхе, да ли је могуће да Цоре1 и Цоре2 оба кеш мемориједео меморије истовремено?Ако је могуће, која ће бити вредност главне меморије ако и Цоре1 и Цоре2 уређују своје вриједности у кешу?

Када је кеш меморије ЦПУ-а упаљен у главну меморију?

Одговорност

СуперУсер сарадници Давид Сцхвартз, слеске и Кимберли В имају одговор за нас.Прво горе, Давид Сцхвартз:

Ако имам ЦПУ са два језгра и свако језгро има свој Л1 цацхе, да ли је могуће да Цоре1 и Цоре2 истовремено кеширају исти дио меморије?

instagram viewer

Да, перформансе би биле страшне ако то није случај.Размотрите две теме које покрећу исти код.Желите тај код у оба Л1 кеша.

Ако је могуће, која ће бити вредност главне меморије ако и Цоре1 и Цоре2 уређују своје вриједности у кешу?

Стара вредност ће бити у главној меморији, што неће бити важно јер ниједно језгро неће прочитати.Пре избацивања модификоване вредности из кеша, он мора бити уписан у меморију.Типично се користи нека варијанта МЕСИ протокола.У традиционалној имплементацији МЕСИ-а, ако је вредност модификована у једном кеш меморији, она уопште не може бити присутна у било којој другој меморији на истом нивоу.

Одговарајући на одговор слеске:

Да, имајући два кеш меморије, може доћи и исти регион меморије и заправо је проблем који се у пракси дешава пуно.Постоје различита решења, на пример:

  • Два кеша могу да комуницирају како би се уверили да се не слажу
  • Можете имати неку врсту супервизора који прати све кешове и ажурира их у складу с тим
  • Сваки процесор прати меморијске области које је кеширао икада открије писање, баца свој( сада неважећи) кеш меморије

Проблем се назива кохерентност кеш меморије, а Википедиа чланак на тему има леп преглед проблема и могућих решења.

И наш коначни одговор од Кимберли В:

Да бисте одговорили на питање у наслову вашег поста, то зависи од чега је протокол кацхинга.Ако се ради о повратку, кеш ће бити исцртан само у главну меморију када контролер кеширања нема другог избора него да стави нови блок цацхеа у већ заузет простор.Блок који је претходно заузео простор уклоњен је и његова вриједност се уписује у главну меморију.

Други протокол је писање.У том случају, у било које време блок цацхе-а је написан на нивоу н , одговарајући блок на нивоу н + 1 је ажуриран.Слично је у концепту испуњавања форме са карбонским папиром испод;све што пишете на врху се копира на листу испод.Ово је спорије јер очигледно подразумијева више операција писања, али вриједности између кеша су конзистентније.У шеми за унос података, само кеш меморије највишег нивоа има најсавременију вредност за одређени меморијски блок.

Имате ли нешто да додате објашњењу?Звучи у коментарима.Желите да прочитате више одговора од других корисничких корисника Стацк Екцханге?Овде погледајте комплетну тему.

Имаге Цредит: Лемсипматт( Флицкр)