MOESI хаттамасы - MOESI protocol

Есептеу техникасында MOESI толық болып табылады кэштің келісімділігі басқа хаттамаларда қолданылатын барлық мүмкін күйлерді қамтитын протокол. Төрт жалпыға қосымша MESI хаттамасы өзгертілген және ортақ пайдаланылатын деректерді ұсынатын бесінші «Иелік» күйі бар. Бұл өзгертілген деректерді бөліспес бұрын оны негізгі жадқа қайта жазу қажеттілігін болдырмайды. Деректер ақыр соңында жазылуы керек болғанымен, кері қайтару кейінге қалдырылуы мүмкін.

Бұл мүмкін болу үшін деректерді кэш-кэшке тікелей тасымалдау мүмкіндігі болуы керек, сондықтан өзгертілген күйдегі деректері бар кэш бұл деректерді жадқа бермей басқа оқырманға бере алады.

Туралы айтылғандай AMD64 Сәулет бағдарламашысының нұсқаулығы том. 2 'Жүйелік бағдарламалау',[1] әрқайсысы кэш сызығы бес күйдің біреуінде:

Өзгертілді
Бұл кэште кэш жолының жалғыз жарамды көшірмесі бар және осы көшірмеге өзгертулер енгізілген.
Иелік етеді
Бұл кэш кэш жолының жарамды көшірмесі бар бірнеше біреуінің бірі болып табылады, бірақ оған өзгертулер енгізудің ерекше құқығына ие - басқа кэштер кэш жолын оқи алады, бірақ жазбайды. Бұл кэш кэш жолындағы деректерді өзгерткен кезде, ол осы өзгертулерді барлық басқа кэштерге таратуы керек. Иеленген күйді енгізу деректерді лас бөлісуге мүмкіндік береді, яғни модификацияланған кэш блогын негізгі жадыны жаңартпай әр түрлі кэштер бойынша жылжытуға болады. Барлық ортақ көшірмелер жарамсыз болғаннан кейін кэш жолы Өзгертілген күйге өзгертілуі немесе Ортақ күйге өзгертілуі мүмкін өзгертулерді кері жазу негізгі жадқа. Меншікті кэш сызықтары a жауап беруі керек сноуп деректермен сұрау.
Эксклюзивті
Бұл кэште жолдың жалғыз көшірмесі бар, бірақ жол таза (өзгертілмеген).
Бөлісілді
Бұл жол жүйеде бірнеше көшірмелердің бірі болып табылады. Бұл кэштің көшірмені өзгертуге рұқсаты жоқ (басқа кэш «иелік ету» күйінде болуы мүмкін). Жүйенің басқа процессорлары ортақ күйдегі деректердің көшірмелерін сақтай алады. MESI протоколынан айырмашылығы, ортақ кэш жолы мүмкін есте сақтау қабілетіне қатысты кір болу; егер ол болса, кейбір кэштердің меншікті күйінде көшірмесі болады және бұл жедел жад негізгі жадыны жаңартуға жауап береді. Егер ешбір кэш жолды Иеленген күйде ұстамаса, жадының көшірмесі жаңартылған. Кэш жолы жазылмауы мүмкін, бірақ барлық ортақ көшірмелер жарамсыз болғаннан кейін эксклюзивті немесе өзгертілген күйге өзгертілуі мүмкін. (Егер кэш жолы бұрын иеленген болса, жарамсыз жауап осыны көрсетеді және күй өзгертіледі, сондықтан деректерді жадқа қайта жазу міндеті ұмытылмайды.) Ол да алынып тасталуы мүмкін (Жарамсыз күйге өзгертілген) ) кез келген уақытта. Ортақ кэш жолдары деректермен сұрау салуға жауап бермеуі мүмкін.
Жарамсыз
Бұл блок дұрыс емес; оны кез-келген қол жеткізуді қанағаттандыру үшін алу керек.

Кэштердің кез-келген жұбы үшін берілген кэш жолының рұқсат етілген күйлері келесідей:

М O E S Мен
МҚызыл XNҚызыл XNҚызыл XNҚызыл XNЖасыл кенеY
OҚызыл XNҚызыл XNҚызыл XNЖасыл кенеYЖасыл кенеY
EҚызыл XNҚызыл XNҚызыл XNҚызыл XNЖасыл кенеY
SҚызыл XNЖасыл кенеYҚызыл XNЖасыл кенеYЖасыл кенеY
МенЖасыл кенеYЖасыл кенеYЖасыл кенеYЖасыл кенеYЖасыл кенеY

(Күйлердің әдетте тізімделу реті тек «MOESI» аббревиатурасын айтуға мүмкіндік береді.)

Бұл хаттама, неғұрлым қарапайым нұсқасы MESI хаттамасы (бірақ кеңейтілген MESI-де жоқ - қараңыз) Кэштің келісімділігі ), лас кэш жолын қайтадан жазу қажеттілігінен аулақ болады негізгі жад басқа процессор оны оқуға тырысқанда. Мұның орнына меншікті күй процессорға өзгертілген деректерді басқа процессорға тікелей жеткізуге мүмкіндік береді. Бұл екі ЖД арасындағы байланыс кідірісі мен өткізу қабілеттілігі жедел жадыға қарағанда едәуір жақсырақ болғанда тиімді. L2 кэштері бар көп ядролы процессорлар мысалы бола алады.

MOESI кэштен лас кэш жолдарын тез бөлісе алады, ал кэштен таза жолдарды тез бөлісе алмайды. Егер кэш жолы жадқа қатысты және ортақ күйде таза болса, онда кез-келген сноп сұранысы жадтан емес, жадтан толтырылады.

Егер процессор Меншікті кэш жолына жазғысы келсе, ол бұл туралы кэш жолын бөлісетін басқа процессорларға хабарлауы керек. Жүзеге асырылуына байланысты ол жай ғана олардың көшірмелерін жарамсыз деп тануы мүмкін (өзінің көшірмесін Өзгертілген күйге ауыстырады) немесе олардың көшірмелерін жаңа мазмұнмен жаңартыңыз (өз көшірмесін меншікті күйінде қалдырып).

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «AMD64 сәулет бағдарламашысының нұсқаулығы 2 том 'жүйелік бағдарламалау'" (PDF). Архивтелген түпнұсқа (PDF) 2017 жылғы 19 маусымда. Алынған 28 тамыз, 2015.