Bosh sahifa Wiki Cache Set

Cache Set

Cache Setset-associative keshda bir xil index qiymatiga xaritalangan bir nechta cache way’dan iborat guruh. Har xotira bloki faqat bitta setga, lekin shu set ichidagi istalgan way’ga joylashishi mumkin. Set tuzilishi direct-mapped keshning tezligi bilan fully associative keshning moslashuvchanligi o‘rtasida muvozanat yaratadi.

Index orqali tanlash

Manzilning offsetdan keyingi bitlari set indexini beradi. Masalan, 32 KiB, 64 bayt line va 8-way keshda 64 set mavjud; index uchun olti bit kerak. Tag array shu setdagi sakkiz tagni parallel solishtiradi. Mos valid way hit data’sini qaytaradi.

Physical indexing aliasni soddalashtiradi, ammo TLB tarjimasini kutishi mumkin. Virtually indexed, physically tagged L1 index bitlarini page offset ichidan olib, TLB va data array o‘qishini parallel qiladi. Kesh hajmi, associativity va sahifa o‘lchami bu bitlar fizik tarjimasiz xavfsiz ekanini cheklaydi.

Conflict miss

Turli blocklar bir setga tushib, way sonidan oshsa, boshqa setlar bo‘sh bo‘lsa ham eviction yuz beradi. Bu conflict miss deyiladi. Power-of-two stride yoki ma’lum array o‘lchamlari ayni setlarni takroran bosishi mumkin. Associativity’ni oshirish, hashing, padding yoki data layoutni o‘zgartirish muammoni kamaytiradi.

Replacement siyosati aynan set ichida victim tanlaydi. LRU, pseudo-LRU, random yoki reuse-aware algoritm way holatini yuritadi. Prefetch satri past ustuvorlik bilan kiritilib, demand data’ni darhol chiqarmasligi mumkin.

Bank va set farqi

Set placement tushunchasi, bank esa parallel access portlarini tashkil qilish tushunchasidir. Bir bank ko‘p setni saqlashi mumkin. Ikki manzil turli setda bo‘lsa ham bir bankka tushib conflict qilishi; bir setning way’lari bir nechta bankka yoyilishi mumkin. Mikroarxitektura hash funksiyasi buni belgilaydi.

Ko‘p slice’li LLC’da fizik manzil avval home slice, so‘ng set va way’ni tanlaydi. Hash oddiy manzil bitlaridan murakkabroq bo‘lishi mumkin. Performance tuning’da set mappingni taxmin qilish uchun ayni protsessor hujjati yoki o‘lchov kerak.

Izolyatsiya va sinov

Cache coloring operatsion tizimga fizik sahifalarni set guruhlari bo‘yicha ajratish imkonini beradi. Real-time task yoki tenant boshqalarning setlarini kamroq siqib chiqaradi. Way partitioning esa har set ichida way kvotasi beradi; ikkala usul birga ishlatilishi mumkin.

Verifikatsiya bir set to‘lib, hit va miss bir siklda kelishi, dirty victim, coherence invalidation va replacement metadata yangilanishini tekshiradi. Bir tag ikki way’da valid bo‘lib qolsa duplicate entry coherence va data tanlash xatosiga olib keladi.

Set dueling siyosat tanlash uchun kichik namuna setlarini ajratadi. Bir guruh LRUga yaqin insertion, boshqasi streamingga chidamli insertion ishlatadi; miss hisoblagichlari g‘olibni ko‘rsatadi. Qolgan follower setlar tanlangan siyosatni qo‘llaydi. Bu workload fazasi o‘zgarganda replacementni apparat darajasida moslashtiradi.

Set occupancy sampling ayni setlarda ko‘p eviction bo‘layotganini ko‘rsatadi. Bu umumiy capacity yetishmovchiligidan farqli conflict muammosini aniqlab, padding yoki hashing yechimini asoslaydi.

Bunday kuzatuv uchun aniq set indeksi ochiq bo‘lmasa, sampling va controlled stride tajribalari qo‘llanadi.

Bir nechta o‘lchov xatoni kamaytiradi.

Bu xususiyat alohida sinovdan o‘tkaziladi.

Bog‘liq tushunchalar

cache way, cache index, cache tag, set associativity, conflict miss, cache coloring