Bosh sahifa Wiki Cache Way

Cache Way

Cache Wayset-associative keshdagi har bir set ichida mavjud bo‘lgan muqobil entry pozitsiyalaridan biri. N-way keshda ma’lum indexga xaritalangan xotira bloki N ta way’dan istalganiga joylashadi. Way soni associativityni bildiradi: bir way direct-mapped, barcha entrylar bitta setda bo‘lsa fully associative tuzilma hosil bo‘ladi.

Hit qidiruvi

Index setni tanlagach, har way tagi qidirilayotgan tag bilan solishtiriladi. Aynan bitta valid moslik bo‘lishi kerak. Hit vector mos way data’sini multiplexer orqali chiqaradi. Ko‘p tag comparator va keng mux associativity oshgani sayin quvvat hamda latency qo‘shadi.

Way prediction oldingi xulqqa qarab ehtimolli way’ni avval o‘qiydi. Taxmin to‘g‘ri bo‘lsa energiya va vaqt tejaladi; xato bo‘lsa qolgan way’lar tekshirilib qo‘shimcha sikl ketadi. Serial tag-data lookup ham avval tagni topib, keyin faqat tanlangan data bankni o‘qiydi.

Joylashtirish va victim

Missda invalid way bo‘lsa u tanlanadi. Barcha way valid bo‘lsa replacement siyosati victim belgilaydi. Dirty victim write-back navbatiga yuboriladi, yangi fill esa way bandligini reservation orqali belgilaydi. Bir setga parallel misslar bir way’ni ikki marta ajratmasligi kerak.

LRU har way’ning yaqinda ishlatilgan tartibini kuzatadi, lekin katta N uchun metadata qimmat. Tree pseudo-LRU kam bit bilan taxminiy victim beradi. Random siyosat oddiy va ayrim adversarial patternlarga chidamli. Re-reference prediction uzoq qayta ishlatilmaydigan satrni tanlashga urinadi.

Way partitioning

Shared LLC’da way mask ma’lum yadro yoki xizmat qaysi way’larni egallashi mumkinligini cheklaydi. Bu performance isolation va QoS beradi. Masalan, tenantga har setdan ikki way ajratilsa, uning maksimal sig‘imi taxminan shu ulush bilan chegaralanadi.

Partition qat’iy bo‘lsa bo‘sh way’lar ishlatilmay qolishi mumkin. Soft partition boshqa guruh bo‘sh turganda qarz olishga, bosim kelganda esa entrylarni qaytarishga imkon beradi. Replacement algoritmi mask va prioritetlarni birga hisoblaydi.

Ishonchlilik

Way disabling ishlab chiqarish testi yoki runtime xatoda nuqsonli bankni chetlab o‘tadi. Kesh kamaygan associativity bilan ishlashda davom etadi, hit rate pasayishi mumkin. ECC data xatosini tuzatsa satr qayta yoziladi; tuzatib bo‘lmas tag xatosi way entry’sini invalid qilishga olib keladi.

Bir setda ikki way bir xil tag bilan valid bo‘lishi odatda invariant buzilishidir. Snoop yoki store qaysi nusxani yangilashini bilmay qoladi. Formal tekshiruv unique-hit, victim ownership va fill cancellation xususiyatlarini isbotlaydi.

Way soni ikki darajasi bo‘lishi shart emas, ammo decoder va replacement metadata oddiyroq bo‘lgani uchun amalda 2, 4, 8 kabi qiymatlar keng tarqalgan. Associativity oshganda conflict kamayadi, biroq hit energiyasi ortadi. Dizayner miss penalty bilan access latency o‘rtasida benchmarklar asosida muvozanat tanlaydi.

Way locking embedded real-time tizimda muhim instruction yoki data’ni replacementdan himoya qiladi. Qulflangan way umumiy sig‘imni kamaytiradi, shu sabab faqat vaqt chegarasi muhim kichik working set uchun ishlatiladi.

Lockni yechishdan oldin dirty entryning write-back yoki saqlanish siyosati aniq bajariladi.

Maintenance tugagach way odatiy replacement to‘plamiga qaytariladi va yangi fill uchun yana tanlanishi mumkin.

Bog‘liq tushunchalar

cache set, associativity, replacement policy, way prediction, cache partitioning, cache tag