Birgalikda xotira manbai uchun bir nechta Kesh. Agar yuqoridagi jarayon oldingi o'qishdan xotira blokining nusxasiga ega bo'lsa va pastki mijoz xotira blokini o'zgartirsa, yuqori jarayonning keshidagi ma'lumotlar nusxasi, agar biron-bir o'zgarish bildirishnomasi yoki o'zgarishlarni tekshirish qo'llanilmasa, eskirgan bo'ladi.
**Keshning** izchilligi () - Kesh mulki, bu umumiy resurs uchun mahalliy keshlarda saqlanadigan ma'lumotlarning yaxlitligini anglatadi. Keshning izchilligi-bu xotira izchilligining alohida holati.

Tizimdagi jarayonlar xotira kabi umumiy resurslarni keshlashdan foydalanganda, ma'lumotlarning nomuvofiqligi bilan bog'liq muammolar paydo bo'lishi mumkin. Bu, ayniqsa, ko'p protsessorli tizimdagi protsessorlarga nisbatan to'g'ri keladi. Kesh koherensiyasi turli keshlarda ma'lumotlarning izchilligini ta'minlash orqali bunday nizolarni boshqarish uchun mo'ljallangan.

Noto'g'ri keshlar: bitta xotira kamerasining qiymati ikkita Kesh uchun farq qiladi
Izchil keshlar
Muvofiqlik o'qish va yozuvlarning xatti-harakatlarini bir xil xotira joyiga belgilaydi. Quyidagi shartlar bajarilsa, Kesh izchil deb ataladi:

* yozuv haqida ma'lumot: keshlarning har qandayida ma'lumotlarni o'zgartirish ushbu ma'lumotlarning boshqa nusxalariga (ushbu Kesh liniyasi) qo'shni keshlarda tarqatilishi kerak;
* tranzaktsiyalarni ketma-ketlashtirish: bir xil xotira uyasiga o'qish va yozish operatsiyalari barcha protsessorlar uchun bir xil tartibda ko'rinishi kerak.

Bunday sharoitda o'qish va yozish operatsiyalari darhol amalga oshiriladi deb taxmin qilinadi. Biroq, bu xotiraning kechikishi va arxitekturaning boshqa xususiyatlari tufayli amalda bo'lmaydi. {\displaystyle P\_{1}}{\displaystyle P\_{2}}Agar o'qish yozilgandan keyin juda oz vaqt o'tgach sodir bo'lsa, protsessor tomonidan qilingan o'zgarishlar protsessorga ko'rinmasligi mumkin. Xotira konsistentsiyasi modeli boshqa ipdan o'qiyotganda yozilgan qiymat qachon ko'rilishini aniqlaydi.

Keshni muvofiqlashtirish mexanizmlari
-------------------------------------

Keshning izchilligini ta'minlashning uchta asosiy mexanizmi-katalog (*directory*), kuzatish (*snooping*) va ushlash (*snarfing*) yordamida.

Katalogdan foydalanganda jismoniy xotira blokining holati to'g'risidagi ma'lumotlar faqat katalog deb nomlangan bitta joyda mavjud (jismoniy katalog tizim tugunlariga taqsimlanishi mumkin).

Kuzatuv mexanizmida ma'lum bir jismoniy xotira blokining ma'lumotlarini o'z ichiga olgan har bir Kesh, shuningdek, uning holati to'g'risidagi rasmiy ma'lumotlarning tegishli nusxasiga ega. Markazlashtirilgan yozuvlar tizimi yo'q. Odatda keshlar umumiy (birgalikda) avtobusga joylashtiriladi va barcha keshlarning kontrolörleri tegishli blokning nusxasini o'z ichiga olmaydi yoki yo'qligini aniqlash uchun avtobusni kuzatadi (uni ko'rib chiqadi).

Har qanday Keshdan ma'lumotlar Ramga yozilganda, ushlashni qo'llashda, qolgan nazoratchilar bu o'zgarish haqida signal oladilar (ma'lumotlarni o'zgartirish haqida ma'lumotni"ushlab turadilar") va agar kerak bo'lsa, keshlaridagi tegishli ma'lumotlarni o'zgartiradilar.

Muvofiqlikni qo'llab-quvvatlash protokollari
--------------------------------------------

Muvofiqlikni qo'llab-quvvatlash protokollari taqsimlangan xotira bilan tizimdagi barcha keshlar orasidagi ma'lumotlarning to'g'riligini ta'minlash uchun javobgardir. Protokol tanlangan mustahkamlik modeliga muvofiq xotira uyg'unligini qo'llab-quvvatlaydi. Protsessorlarda apparat protokollarining aksariyati (shu jumladan keshni izchil, notekis xotiraga kirishni ta'minlash) ketma-ket muvofiqlik modeliga mos keladi va dasturiy taqsimlangan xotira tizimlarida dasturiy protokollar ko'pincha согласованность по выходу [согласованности по выходу; release consistency] yoki слабая согласованность [слабой согласованности; weak consistency].

Asosiy modellar va Kesh koherentligini qo'llab-quvvatlash protokollari:

* MSI protokoli
* протокол MESI[en] protokoli (Intel Pentium, Intel Core)
* MOSI protokoli
* MOESI protokoli (AMD Opteron)
* MOWESI
* MERSI protokoli
* MESIF protokoli (Intel Nehalem)
* протокол однократной записи[en]
* протокол синапса[en]
* протокол Беркли[en]
* cветлячковый протокол [firefly protocol]
* протокол дракона [dragon protocol]
* CXL [compute express link]
* CCIX [cache coherent interconnect for accelerators]
* OmniXtend protokoli (Western Digital - SiFive[en] - Linux Foundation) - tezlatkichlarni (GPGPU, FPGA, neyroprotsessorlar), saqlash tizimlarini, doimiy xotira va tarmoq interfeyslarini tizimlarga ulash RISC-V protsessorli chipda ; Ethernet jismoniy qatlamidan foydalanadi (L1 ramka).

Manbalar
--------

1. ↑  Yan, Solihin*. Fundamentals of parallel multicore architecture*.
2. 1 2  
Andoza:Wayback 2 Multi Processors, their Memory organizations and
Implementations by Intel & AMD
3. ↑  „Принципы работы кэш-памяти — Индикаторы состояния строки". 25-yanvar 2009-yilda asl nusxadan arxivlandi. Qaraldi: 15-oktabr 2009-yil.
4. ↑  „StackPath". 16-fevral 2019-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.
5. ↑  „How AMBA CCIX and GenZ address the needs of the datacenter — Processors blog — Processors — Arm Community". 12-dekabr 2019-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.
6. ↑  „GitHub — westerndigitalcorporation/omnixtend: An open standard Cache Coherent Fabric Interface repository". 26-avgust 2020-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.
7. ↑  „Архивированная копия". 22-fevral 2019-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.
8. ↑  „Google, SiFive и WD основали альянс для продвижения открытых чипов и SoC". 14-mart 2019-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.
9. ↑  „Western Digital Reveals SweRV RISC-V Core, Cache Coherency over Ethernet Initiative". 25-aprel 2019-yilda asl nusxadan arxivlandi. Qaraldi: 12-mart 2019-yil.

Adabiyotlar
-----------

* Handy, Jim. *The Cache Memory Book*. Academic Press, Inc. 1998. ISBN 0-12-322980-4