14-mavzu. Kesh xotira. Kesh xotira xususiyatlari, asosiy va kesh xotiralarga murojaat qilish algoritmlari.
Agar MP ning tezligi bilan asosiy xotiraning tezligini juda katta ko’rsatkich kelib chiqadi. Lekin MP asosiy xotiradan komandalar va ma’lumotlar kelishini uzoq vaqt kutib tura olmaydi. Shu sababli kerakli ma’lumotni olishga murojaat qilish vaqtini qisqartirish mexanizmlari zarur bo’ladi. Asosiy xotiraning tezligi kam ekanligidan, bu yerda arxitekturali yechim foyda beradi. Bu kesh xotira sifatida namoyon bo’ladi.
Keshlash mexanizmining effektivligi kompyuter dasturlarining murojaatlarni lokallashtirish (локализация ссылок) xususiyatiga asoslanadi. Turli dasturlarni bajarilishini tahlil qilish shuni ko’rsatdiki, ko’p vaqt takrorlanuvchi jarayonlarni bajarishga ketadi. Masalan oddiy va murakkab sikllar, protsedura va funksiyalar, va h.k. Bunda komandalarning bajarilish ketma-ketligi ahamiyatli emas. Muhimi ma’lum vaqt oralig’ida dastruning lokallashgan sohasida ko’p bora takrorlanishidir. Dasturning qolgan qismiga murojaat kamdankam bajariladi, asosan 1-2 marta. Shu xolat murojaatlarni lokallashtirish deyiladi. Murojaatlrni lokallshtirish ham zamonda ham makonda ro’y beradi. Vaqt bo’yicha lokalizatsiya yaqinda bajarilgan komandalar yaqin vaqtda yana bajarilishini bidiradi. Makon bo’yicha lokalizatsiya esa hozir bajarilayotgan komandalardan keyin ularga adresi yaqin joylashgan komandalar bajarilishi mumkinligini bildiradi.
Agar dasturning faol segmentlarini tezkor kesh xotiraga joylashtirilsa, ularning bajarilish vaqti sezilarli darajada kamayadi. Komandalarni keshlash sodda tuzilishli bo’lib, xotirani boshqarish sxemalari shunday ishlab chiqiladiki, bunda murojaatlar lokalizatsiyasi xususiyatlaridan foydalanish ko’zda tutiladi. Vaqt lokalizatsiyasi bo’yicha MP murojaat qilayotgan har bir element (komanda, ma’lumot, va h.k) keshda unga yana bir marta murojaat qilingunicha saqlanib turadi. Makon lokalizatsiyasi bo’yicha esa, kesh xotiraga nafaqat so’ralayotgan adresdagi ma’lumotlar, balki atrofidagi bir necha ma’lumotlar ham uzatiladi. Ketma-ket adresli elementlar to’plami blok yoki kesh satri deyiladi.
S layd
MP xotiradan o’qish komandasini uzatsa, xotira bloki berilgan adresdan bittadan so’zni keshga o’tkazadi. Qachom MP shu adresli so’zni o’qishga buyruq bersa, bu so’z keshdan qidiriladi. Odatda kesh xotirada bir necha blok ma’lumotlar mavjud bo’ladi va so’ralgan so’zni keshdan topilish ehtimoli juda yuqorihisoblanadi. Asosiy xotiradagi va keshdagi bloklarning mosligini akslanish funksiyasi aniqlaydi. Kesh xotira to’la bo’lsa va MP so’ragan so’z keshda emas, asosiy xotirada bo’lsa, keshni boshqaruvchi ta’minot keshga MP so’ragan so’z joylashgan blokni joyashtirish uchun qaysii blokni keshdan o’chirish kerakligini aniqlaydi. Bunday yechimni tanlash qoidalari to’plami almashtirish algoritmi deyiladi.
MP keshni mavjudligini sezmaydi ham. U kerakli so’zni adresini o’qish/yozish uchun xotiraga yuboradi. Bunda keshni boshqarish sxemasi shunday so’z keshda mavjudligini tekshiradi. Mavjud bo’lsa, so’z uzatiladi. So’zni o’qishda asosiy xotiraga umuman murojaat qilinmaydi. Agar so’zni xotiraga yozish talab etilsa, tizim 2 xil yo’l tutishi mumkin. 1-dan bevosita yozish protokolida kesh va asosiy xotira bir vaqtda yangilanadi deb nazarda tutiladi. 2-dan ma’lumotlar faqat keshda yangilanadi va maxsus bayroq bitida belgilanadi. Bu bit o’zgarish bayroqchasi yoki modifikatsiya bayroqchasi deyiladi. Unga mos asosiy xotiradagi so’z keyinroq, shu so’z saqlanayotgan blok keshdan o’chirilayotganda yangilanadi. Bu texnologiya teskari yozuv yoki teskari nusxalash deyiladi. Bevosita yozish protokoli sodda, lekin unda ortiqcha, takroriy amallar ko’p bajariladi. Masalan keshdagi so’zni har gal yangilaganda, asosiy xotiradagi shu blokni saqlovchi blok ham yangilanadi. Teskari yozuvda ham shunga o’xshash xolat yuz beradi, chukni keshdagi blokda bir dona so’z o’zgargan bolsa ham, uni asosiy xotiraga yozishda blokni barchasini qayta yozish kerak bo’ladi.
Qidirilayotgan so’zning kesh xotirada bo’lmasligi o’qish xatoligi deyiladi. Bunda asosiy xotiradan shu so’zni saqlovchi blok keshga ko’chiriladi. So’ralayotgan so’z esa, blokning barchasi keshga ko’chirib bo’lingandan keyingina MP ga uzatiladi. Ba’zan tegishli so’z xotiradan o’qilishi bilan, blokni yuklanishini kutmasdan MP ga uzatilishi mumkin, bu xolat bevosita yuklanish deyiladi, bunda MP ni kutish vaqti qisqaradi. Bunday sxemani amalga oshirish murakkabligi uchun amaliyotda qo’llanilmaydi. Xotiraga yoziladigan so’ning keshda mavjud bo’lmasligi yozish xatoligi deyiladi. Bunday xolatda bevosita yozish protokoli bilan so’z bevosita asosiy xotiraga yoziladi. Agar teskari yoziv protokoli ishlatilayotgan bo’lsa, keshga shu so’z mavjud blok ko’chiriladi, keyin bu so’z keshda qayta yozilib, o’zgargan (MODIFIED) deb belgilanadi.
Do'stlaringiz bilan baham: |