Bosh sahifa Wiki Cache Hit

Cache Hit

Cache Hit — protsessor yoki boshqa xotira agenti so‘ragan instruction yoxud data keshning tekshirilayotgan darajasida topilgan holat. Tag, valid va kerakli coherence ruxsati mos bo‘lsa, so‘rov quyi xotiraga bormasdan shu keshdan qondiriladi. Hit keshning asosiy tezlik foydasini beradi, lekin uning kechikishi daraja va access turiga bog‘liq.

Hit aniqlanishi

Manzil index orqali setni tanlaydi, way taglari request tag bilan taqqoslanadi. Load uchun mos valid Shared, Exclusive yoki Modified satr yetarli bo‘lishi mumkin. Store esa yozish huquqini talab qiladi: Shared satr data hit bo‘lsa ham ownership upgrade va boshqa nusxalarni invalid qilish kerak.

Critical path tag lookup, permission check, data array, byte selection va forwardingdan iborat. L1 hit bir necha takt, L2 yoki LLC hit ko‘proq vaqt oladi. Bank conflict, port bandligi yoki ECC correction “hit” so‘rovini ham navbatda ushlab turishi mumkin.

Hit turlari

Read hit qiymatni qaytaradi, write hit siyosatga ko‘ra dirty bit o‘rnatadi yoki quyi darajaga write-through yuboradi. Prefetch hit talab qilinayotgan satr avval olib kelinganini bildiradi. Victim cache yoki store buffer hitlari asosiy data array hitidan boshqa yo‘l bilan qondiriladi.

Ko‘p darajali iyerarxiyada local hit va global natija farqlanadi. L1 miss, L2 hit bo‘lishi mumkin. LLC data miss bo‘lsa ham boshqa yadro private keshidan cache-to-cache transfer olinadi. Counter nomidagi “hit” qaysi request va darajani qamrashi hujjatdan tekshiriladi.

Hit rate va AMAT

Hit rate — hitlar sonining tegishli accesslar soniga nisbati. Yuqori foiz odatda yaxshi, ammo yolg‘iz yetarli emas. Average Memory Access Time hit latency, miss rate va miss penalty orqali baholanadi. Hit latency’ni bir takt oshirish barcha accessga ta’sir qilishi, missni biroz kamaytirishdan qimmatroq bo‘lishi mumkin.

Prefetch hit rate’ni ko‘tarib ko‘rinsa-da, ishlatilmagan prefetched satr bandwidth va sig‘imni isrof qiladi. Useful prefetch, lateness va pollution alohida o‘lchanadi. Warm-up davridagi compulsory misslar uzoq steady-state workload bilan aralashtirilmasligi kerak.

Xavfsizlik va kuzatuv

Hit va miss vaqtidagi farq cache timing side-channel asosidir. Hujumchi qaysi satr tez o‘qilganini kuzatib, boshqa context accessi haqida xulosa chiqarishi mumkin. Constant-time jadval accessi, partition, flush va speculation barrier xavfni kamaytiradi.

Performance tahlilida hardware counter, latency sampling va flame graph birga qo‘llanadi. Yuqori hit rate bo‘lsa ham bandwidth saturation yoki dependency chain sabab dastur sekin qolishi mumkin; shuning uchun stall cycles va memory-level parallelism ham ko‘riladi.

Hit-under-miss imkoniyati keshga oldingi miss javobini kutayotgan paytda boshqa tayyor satrlarga xizmat qilishga ruxsat beradi. Non-blocking kesh har outstanding line uchun holat yuritadi. Bitta set yoki bankdagi resource conflict hitni to‘xtatishi mumkin; shuning uchun nominal hit latency va yuk ostidagi observed latency farq qiladi.

Zero-latency hit amalda mavjud emas: hatto kichik keshda address generation, tag check va register forwarding vaqt oladi. Pipeline bu bosqichlarni ustma-ust bajarib throughputni oshiradi.

Superscalar yadro bir siklda bir nechta mustaqil hitni banklar orqali qaytarishi mumkin.

Bog‘liq tushunchalar

cache miss, hit rate, cache latency, AMAT, cache timing, performance counter