Bosh sahifa Wiki Exclusive Cache

Exclusive Cache

Exclusive Cache — kesh iyerarxiyasining qo‘shni darajalari imkon qadar bir xil cache line’ning takroriy nusxasini saqlamasligini ko‘zlaydigan siyosat. L1’da mavjud satr L2 data qismida bo‘lmaydi; L1’dan chiqarilgan satr esa L2’ga ko‘chiriladi. Natijada darajalar sig‘imi qo‘shilib, ko‘proq noyob ma’lumotni qamrab oladi.

Satr migratsiyasi

L1 miss va L2 hit yuz bersa, satr L2’dan L1’ga ko‘tariladi. L1’da joy ochish uchun tanlangan victim ko‘pincha L2’dagi bo‘shagan entryga tushiriladi. Bu swap darajalar orasida data trafik va metadata yangilanishini talab qiladi. L2 missda satr xotiradan keladi, L1 victim esa L2’ga joylashadi.

Clean satr ham L2’ga ko‘chirilishi mumkin, chunki u kelajakda qayta ishlatiladigan victim cache vazifasini bajaradi. Dirty satrning eng yangi nusxasi ham aynan bir darajada qoladi. Qaysi daraja owner ekanini boshqaruv mantiqi bilishi kerak.

Samarali sig‘im

Masalan, 64 KiB L1 va 512 KiB exclusive L2 nazariy jihatdan 576 KiB noyob satr saqlashi mumkin. Inclusive tuzilma L1 nusxalarini L2’da takrorlagani sabab noyob sig‘im kichikroq. Katta working set va conflict patternlarda exclusive siyosat misslarni kamaytiradi.

Amaliy foyda replacement, associativity va workloadga bog‘liq. L1’dan chiqarilgan barcha satrni L2’ga kiritish L2’dagi ko‘proq foydali satrni chiqarishi ham mumkin. Reuse predictor ayrim victimlarni tashlab, faqat qayta ishlatilishi ehtimolli satrlarni ko‘chiradi.

Kechikish va bandwidth

L2 hit oddiy nusxa berish emas, promotion va demotion bilan kelishi mumkin. Swap uchun ikkala yo‘nalishda data port va queue kerak. Miss intensiv workload inter-level bandwidthni band qiladi. Critical load data’si avval L1’ga yetkazilib, victim ko‘chirish keyin tugatilishi mumkin.

Inclusive keshdagi back-invalidation exclusive tizimda xuddi shu ko‘rinishda shart emas, chunki quyi eviction yuqorida aynan shu satr borligini anglatmaydi. Ammo coherence directory barcha private darajalardagi egani baribir kuzatadi. “Exclusive” boshqa yadro keshlarida shared nusxa bo‘lmaydi degani emas; atama bir yadro iyerarxiyasidagi darajalar munosabatidir.

Yozuv va recovery

Dirty satr migratsiyasida data yo‘qolmasligi uchun destination entry tayyor bo‘lmaguncha source invalid qilinmaydi. ECC xatosi, retry yoki interconnect backpressure ikki nusxa vaqtincha mavjud bo‘lishiga olib kelishi mumkin; tranzaksiya holati qaysi nusxa authoritative ekanini belgilaydi.

Context switch odatda cache mazmunini almashtirmaydi, ammo address-space tag yoki physical tagging noto‘g‘ri jarayon aliasini oldini oladi. Cache maintenance bir fizik diapazonning qaysi darajada ekanini bilmasligi mumkin, shuning uchun clean/invalidate barcha tegishli darajalarni qamrab oladi.

Prefetch placement exclusive iyerarxiyada ehtiyot tanlanadi. Satrni avval L2’ga prefetch qilib, demand kelganda L1’ga ko‘tarish mumkin; bevosita L1’ga kiritish esa foydali L1 victimni L2’ga suradi. Prefetch foydasini faqat hit emas, darajalar orasidagi qo‘shimcha swap traffigi bilan baholash lozim.

Exclusive darajalar uchun performance counter L2 hitni ko‘pincha L1 promotion sifatida sanaydi. Hitdan keyin L2 entry yo‘qolishi normal xulq; bu eviction emas, satrning yuqori darajaga ko‘chishidir.

Debugger data qaysi darajada ekanini oddiy load orqali ajratmaydi; latency o‘lchovi ham migratsiya va prefetch sabab o‘zgaruvchan bo‘ladi.

Natija mikroarxitekturaga xos.

Bog‘liq tushunchalar

inclusive cache, noninclusive cache, victim cache, cache promotion, cache eviction, cache hierarchy