Bosh sahifa Wiki Inclusive Cache

Inclusive Cache

Inclusive Cache — yuqori, kichik kesh darajasida mavjud har bir cache line quyi, kattaroq darajada ham nusxaga ega bo‘lishini talab qiladigan iyerarxiya siyosati. Masalan, inclusive L3 tizimida L1 yoki L2’dagi satrning tagi va odatda data nusxasi L3’da ham bo‘ladi. Bu xossa coherence qidiruvini soddalashtiradi, ammo sig‘imning bir qismini takroriy nusxalarga sarflaydi.

Inclusion invariant

Invariant “L1 to‘plami L2 to‘plamining qismi” kabi ifodalanadi. L1 yangi satr olsa, quyi inclusive keshda unga joy bo‘lishi kerak. Agar L3 shu satrni replacement qilsa, private keshlardagi nusxalar ham invalid qilinadi; aks holda inclusion buziladi.

Bu majburiy invalidation back-invalidation deb ataladi. L3 eviction request sharer yadrolarga yuboriladi, ularning javobi kelgach entry bo‘shatiladi. Private nusxa dirty bo‘lsa eng yangi data avval L3 yoki memory controllerga qaytariladi.

Snoop filter sifatidagi foyda

Quyi kesh tagida satr topilmasa, u yuqori keshlarda ham yo‘q degan xulosa chiqarish mumkin. Tashqi socket yoki I/O agent so‘rovi har private keshni alohida snoop qilmaydi. L3 tag va sharer metadata qayerga murojaat qilishni ko‘rsatadi, interconnect trafik va quvvatni kamaytiradi.

Data array’dan tashqari directory inclusion ham bo‘lishi mumkin. Noninclusive data siyosatida L3 data satrini saqlamasada, private nusxani kuzatuvchi tag mavjud bo‘ladi. Shuning uchun “inclusive” atamasida data, tag yoki directoryning qaysi biri nazarda tutilgani arxitektura hujjatidan aniqlanadi.

Sig‘im xarajati

L1 va L2’dagi ma’lumot L3’da takrorlanadi, natijada chipdagi noyob satrlar soni physical SRAM yig‘indisidan kichik bo‘ladi. Katta private keshlar bilan bu xarajat ortadi. L3’dagi conflict eviction private keshdagi issiq satrni ham majburan chiqarib, unexpected miss keltirishi mumkin.

Associativity inclusionni saqlash uchun yetarli bo‘lishi kerak. Bir L3 setga xaritalangan ko‘p private satrlar L3 way’laridan oshsa, private sig‘im bo‘lsa ham thrashing yuz beradi. Hash, skewed indexing yoki ko‘proq way bu bosimni kamaytiradi.

Coherence va yozuv

Inclusion barcha nusxalar bir xil qiymatda degani emas. Write-back private L1 satri Modified holatda bo‘lsa, L3 data nusxasi eski bo‘lishi mumkin; directory eng yangi egani ko‘rsatadi. Boshqa yadro o‘qisa, data owner’dan forward qilinadi yoki avval write-back olinadi.

Inclusive siyosat replacement munosabatini belgilaydi, coherence esa o‘qish va yozuv ko‘rinishini boshqaradi. Ular birga loyihalanadi, lekin bir tushuncha emas. DMA, page migration va cache flush operatsiyalari ham back-invalidation javoblari tugaganini kutishi kerak.

Inclusion verificationida quyi eviction bilan yuqori fillning race holati muhim. L3 satrni chiqarayotgan paytda L1 ayni satrni olishga urinishi mumkin. Protokol requestni qayta urintiradi yoki evictionni bekor qiladi; yakunda L1 valid bo‘lsa L3 tracking entry ham mavjud bo‘lishi invariant sifatida tekshiriladi.

Power management private keshni saqlab, LLC slice’ni o‘chirsa inclusion holati qayta qurilishi kerak. Tizim avval private nusxalarni clean yoki invalidate qiladi, so‘ng slice quvvatini uzadi.

Hotplug jarayonida yangi yadro kesh holati toza boshlanadi, online barrier tugamaguncha umumiy xotira ishlariga qo‘shilmaydi.

Recovery barcha acknowledge javoblarini kutadi.

Bu xususiyat alohida sinovdan o‘tkaziladi.

Bog‘liq tushunchalar

exclusive cache, noninclusive cache, back-invalidation, snoop filter, directory protocol, cache hierarchy