7.2. L1 L2 L3 kesh xotirasining asosiy turlari va darajalari
Agar kesh hajmi cheklangan bo'lsa, unda sog'inish paytida bo'sh joy qoldirish uchun ba'zi yozuvlarni tashlash haqida qaror qabul qilinishi kerak. O'chirilgan yozuvni tanlash uchun turli xil ekstruziya algoritmlari qo'llaniladi.
Keshdagi ma'lumotlar elementlarini o'zgartirganda, ular asosiy xotirada yangilanadi. Keshdagi ma'lumotlarni yangilash va asosiy xotirani yangilash o'rtasidagi vaqtning kechikishi "yozish" siyosati tomonidan boshqariladi.
Darhol yozish keshida har bir o'zgarish asosiy xotiradagi ma'lumotlarning sinxron yangilanishiga olib keladi.
Kechiktirilgan yozish (yoki qaytarib yozish) keshida ma'lumotlar elementi vaqti-vaqti bilan yig'ilib qolsa yoki mijozning iltimosiga binoan yangilanish yuz beradi. O'zgartirilgan ma'lumotlar elementlarini kuzatish uchun kesh yozuvlari o'zgartirish bayrog'ini saqlaydi (o'zgartirilgan yoki "iflos"). Kechiktirilgan yozish bilan keshdagi sog'inish, asosiy xotiraga ikkita kirishni talab qilishi mumkin: birinchisi keshdan o'zgartirilgan ma'lumotlarni yozish, ikkinchisi o'ta muhim ma'lumotlar elementini o'qish uchun.
Agar asosiy xotiradagi ma'lumotlar keshdan mustaqil ravishda o'zgartirilsa, kesh kiritilishi ahamiyatsiz bo'lishi mumkin. Ma'lumotlar barqarorligini saqlaydigan keshlar orasidagi o'zaro ta'sirlashuv protokollari kesh muvofiqligi protokollari deb nomlanadi.
tahrirlash
CPU keshi
Tasodifiy kirish xotirasiga (RAM) kirishni minimallashtirish uchun markaziy protsessor birliklarining (CPU) bir qator modellari registrlarga qaraganda sekinroq. Operativ xotira tezligi CPU soat tezligidan sezilarli darajada past bo'lganda, kesh ish unumdorligini sezilarli darajada oshirishi mumkin. Kesh soatlarining tezligi odatda CPU chastotasidan bir oz kamroq.
Shuningdek qarang: Tarjima nazari buferi.
Kesh darajasi
CPU keshi bir necha darajalarga bo'linadi. Universal protsessorlar uchun - 3 tagacha. N + 1 darajali kesh odatda N darajasi keshiga qaraganda kattaroq va sekinroq bo'ladi.
Eng tezkor xotira birinchi darajali kesh - L1-kesh. Aslida, bu protsessorning ajralmas qismi, chunki u xuddi shu chipda joylashgan va funktsional bloklarning bir qismidir. Buyruqlar keshi va ma'lumotlar keshidan iborat. L1 keshi bo'lmagan ba'zi protsessorlar ishlay olmaydi. Boshqalarida siz uni o'chirib qo'yishingiz mumkin, ammo keyin protsessorning ishlashi sezilarli darajada pasayadi. L1 keshi protsessor chastotasida ishlaydi va umuman olganda, har bir soat tsikliga kirish mumkin (ko'pincha bir vaqtning o'zida bir nechta o'qish / yozishni bajarish ham mumkin). Kirish kechikishi odatda 2-4 yadro soat tsiklidan iborat. Hajmi odatda kichik - 128 KB dan oshmaydi.
Ikkinchi tezkor L2-kesh, ikkinchi darajali kesh. Odatda, u L1 singari chipda yoki yadro yaqinida, masalan, protsessor kartridjida (faqat uyali protsessorlarda) joylashgan. Eski protsessorlarda, anakartdagi chip chip. L2 keshining hajmi 128 Kb dan 1-12 MB gacha. Zamonaviy ko'p yadroli protsessorlarda, xuddi shu chipda joylashgan ikkinchi darajali kesh, umumiy xotiraga ega - har bir yadro uchun jami 8 MB, 2 MB hajm talab qilinadi. Odatda, yadroda joylashgan L2 keshining kechikish vaqti 8 dan 20 soatgacha. L1 keshidan farqli o'laroq, uni o'chirib qo'yish tizimning ishlashiga ta'sir qilmasligi mumkin. Shu bilan birga, cheklangan xotira zonasiga, masalan, ma'lumotlar bazasining kirishiga ko'p sonli kirish bilan bog'liq bo'lgan vazifalarni bajarishda o'nlab marta pasayishi mumkin.
Layer 3 keshi eng sekin va odatda protsessor yadrosidan alohida joylashgan, ammo u hajmi juda ta'sirli bo'lishi kerak - 32 MB. L3 keshi avvalgi keshlarga qaraganda sekinroq, ammo baribir tezkor xotiradan tezroq. Ko'p protsessor tizimlarida keng foydalaniladi.
Ikkinchi va uchinchi darajali keshlar matematik muammolarda, masalan, ko'pburchaklarni hisoblashda, ma'lumotlar miqdori kesh hajmidan kam bo'lganda juda foydali. Bunday holda siz darhol barcha ma'lumotlarni keshga yozib qo'yishingiz va keyin ularni qayta ishlashingiz mumkin.
Kesh assotsiativligi
Kesh xotirasining asosiy xususiyatlaridan biri - assotsiativlik darajasi uning mantiqiy segmentatsiyasini aks ettiradi. Gap shundaki, kerakli ma'lumotlarni qidirishda barcha kesh chiziqlarini ketma-ket izlash o'nlab soatlik tsikllarni talab qiladi va protsessorga o'rnatilgan xotiradan foydalanishning butun daromadini pasaytiradi. Shuning uchun, RAM hujayralari kesh chiziqlari bilan mahkam bog'langan (har bir satrda belgilangan manzillar to'plamidan ma'lumotlar mavjud), bu esa qidirish vaqtini sezilarli darajada kamaytiradi. Har bir RAM katakchasida bittadan ortiq kesh chiziqlar ulanishi kerak: masalan, n-kanali assotsiativlik, ba'zi RAM manzilidagi ma'lumotlar n-kesh joylarida saqlanishi mumkinligini anglatadi.
Kesh hajmi bir xil bo'lsa, katta assotsiativlik sxemasi eng tezkor, ammo eng samarali hisoblanadi.
Tashqi drayverni keshlash
Ko'pgina periferik saqlash moslamalari ishni tezlashtirish uchun keshdan foydalanadilar, xususan, qattiq disklar 1 dan 64 MB gacha keshni ishlatadilar (NCQ / TCQ qo'llab-quvvatlaydigan modellar uni saqlash va ishlash uchun foydalanadilar), CD / DVD / BD disklari o'quvchilari qayta kirishni tezlashtirish uchun ular ma'lumotni keshlashadi. Operatsion tizim, shuningdek, operatsion xotiraning bir qismini diskdagi operatsiyalar keshi sifatida ishlatadi (o'zlarining kesh xotirasi bo'lmagan tashqi qurilmalar uchun, shu jumladan qattiq disklar, flesh-xotira va disketalar).
Tashqi drayverni keshlashdan foydalanish quyidagi omillar bilan belgilanadi:
protsessorning tezkor xotiraga kirish tezligi tashqi drayverlarning xotirasidan bir necha baravar katta;
tashqi drayverlarning ba'zi bir xotira bloklari bir vaqtning o'zida bir nechta jarayonlar tomonidan qo'llaniladi va blokni bir marta o'qish mantiqiy bo'ladi, so'ng barcha jarayonlar uchun blokning bitta nusxasini operativ xotirada saqlang;
operativ xotiraning ba'zi bloklariga kirish boshqalarga qaraganda tez-tez uchraydi, shu sababli bunday bloklar uchun keshlashni ishlatish umuman tizimning ishlashini oshiradi;
ba'zi tashqi drayverlarning xotira bloklari uchun modifikatsiyadan keyin to'g'ridan-to'g'ri yozib olish talab qilinmaydi va bunday bloklar uchun keshdan foydalanish kirish-chiqishdan foydalanishni optimallashtiradi.
Operatsion tizimni keshlash
RAM keshi quyidagi elementlardan iborat:
tegishli tashqi xotira qurilmasining ma'lumotlar blokiga teng uzunlikdagi buferlarga bo'lingan operativ xotira varaqlarining to'plami;
tegishli bufer holatini tavsiflovchi bufer sarlavhalari to'plami;
sarlavhaga mos keladigan blok raqamini o'z ichiga olgan hash jadvali;
bepul tamponlar ro'yxatlari.
Kesh algoritmini yolg'on gapirish
Dastlab, barcha bufer sarlavhalari bepul buferlar ro'yxatiga joylashtirilgan. Agar jarayon blokni o'qishni yoki o'zgartirishni xohlasa, u quyidagi algoritmni bajaradi:
hash jadvalida ko'rsatilgan raqam bilan buferning sarlavhasini topishga harakat qiladi;
agar qabul qilingan tampon band bo'lsa, uni bo'shatilishini kutish;
agar bufer xesh jadvalda topilmasa, u bepul ro'yxatning dumidan birinchi buferni oladi;
agar bo'sh tamponlar ro'yxati bo'sh bo'lsa, imtiyozli algoritm bajariladi (pastga qarang);
agar qabul qilingan bufer "iflos" deb belgilangan bo'lsa, bufer tarkibini tashqi xotiraga sinxron ravishda yozib qo'yadi.
agar u joylashtirilgan bo'lsa, buferni xesh stoldan olib tashlaydi;
buferni yangi raqam bilan hash jadvaliga qo'yadi.
Jarayon ma'lumotlarni qabul qilingan buferga o'qiydi va uni bo'shatadi. Modifikatsiya qilingan taqdirda, jarayon buferni bo'shatishdan oldin uni "iflos" deb belgilaydi. Bo'shatilganda, bufer bepul tamponlar ro'yxatining boshiga joylashtiriladi.
Shunday qilib:
agar biron-bir protsessor ma'lum bir blokni buferga o'qisa, u holda ushbu blokni o'qiyotganda boshqa jarayon RAMda bufer topishi ehtimoli yuqori;
ma'lumotlar tashqi xotiraga faqat "toza" tamponlar yetarli bo'lmaganda yoki talabga binoan yoziladi.
Yuvish algoritmi
Agar bo'sh tamponlarning ro'yxati bo'sh bo'lsa, buferni ekstruziya algoritmi bajariladi. Afzallik algoritmi kesh ishiga sezilarli darajada ta'sir qiladi. Quyidagi algoritmlar mavjud:
LRU (Least Yaqinda ishlatilgan) - eng uzoq vaqt ishlatilmaydigan tampon almashtiriladi;
MRU (eng yangi ishlatilgan) - oxirgi ishlatilgan bufer to'ldirilgan;
LFU (eng kam tez-tez ishlatiladigan) - barchasiga qaraganda kamroq ishlatiladigan tampon;
ARC (Eng.) (Adaptive Replacement Cache) - IBM tomonidan patentlangan LRU va LFU-ni birlashtirgan algoritm.
U yoki bu algoritmni qo'llash ma'lumotlar keshlash strategiyasiga bog'liq. Agar ma'lumot yaqin kelajakda qayta ishlatilishi kafolatlangan bo'lsa, LRU eng samarali hisoblanadi. Agar ma'lumot yaqin kelajakda qayta ishlatilmasligi kafolatlangan bo'lsa, MRU eng samarali hisoblanadi. Agar ilova ma'lum bir ma'lumotlar to'plami uchun keshlash strategiyasini aniq ko'rsatsa, kesh eng samarali ishlaydi.
Dasturlarni keshlash
Yozish qoidalarini keshlash
Ma'lumotni o'qiyotganda, kesh aniq ishlash qobiliyatini beradi. Ma'lumotni yozishda daromadni faqat ishonchlilik pasayishi hisobiga olish mumkin. Shuning uchun, har xil dasturlarda kesh yozish uchun har xil siyosatni tanlash kerak.
Keshni yozish bo'yicha ikkita asosiy siyosat mavjud - "yozib yuborish" va "orqaga qaytarish".
o'tish orqali yozib olish, xotira xujayrasi tarkibini o'zgartirganda, keshda ham, asosiy xotirada ham sinxron ravishda ro'y beradi.
kechiktirilgan yozuv shuni anglatadiki, siz asosiy xotiraga ma'lumotlarni yozish vaqtini qoldirishingiz va ularni faqat keshga yozishingiz mumkin. Bunday holda, ma'lumotlar boshqa har qanday qurilma (boshqa protsessor, DMA nazorat qilish vositasi) orqali kirishga yoki boshqa ma'lumotlarni joylashtirish uchun kesh bo'sh joy bo'lmasa, RAMga yuklanadi. Ishlash yozish bilan solishtirganda yaxshilanadi, ammo bu asosiy xotiradagi ma'lumotlarning yaxlitligiga xavf tug'dirishi mumkin, chunki dasturiy ta'minot yoki uskunaning ishdan chiqishi ma'lumotlarning keshdan asosiy xotiraga o'tkazilmasligiga olib kelishi mumkin. Ammo, operativ xotirani keshlashda, ikkita yoki undan ko'p protsessor ishlatilganda, har xil keshlarda ma'lumotlarning muvofiqligini ta'minlash kerak.
Veb-keshlash
Tarmoq orqali ma'lumotni uzatish jarayonida veb-sahifalarni keshlashdan foydalanish mumkin - tez-tez so'raladigan hujjatlarni manba serveridan doimiy yuklab olishni oldini olish va trafikni kamaytirish maqsadida (oraliq) proksi-serverlarda yoki foydalanuvchi mashinalarida saqlash jarayoni. Shunday qilib, ma'lumot foydalanuvchiga yaqinlashadi. Keshlash HTTP sarlavhalari yordamida boshqariladi.
Shu bilan bir qatorda, veb-sahifalarni keshlash ma'lum bir saytning CMS yordamida katta trafik bilan server yukini kamaytirish uchun amalga oshirilishi mumkin. Keshlash xotirada ham, fayllar keshida ham amalga oshirilishi mumkin (fayllardagi kesh).
Ish natijalarini keshlash
Ko'pgina dasturlar har safar kerak bo'lganda ularni hisoblamasliklari uchun biron bir ishning oraliq yoki yordamchi natijalarini yozadilar. Bu ishni tezlashtiradi, ammo qo'shimcha xotirani (RAM yoki disk) talab qiladi. Bunday keshlashning namunasi ma'lumotlar bazasini indeksatsiya qilishdir.
Do'stlaringiz bilan baham: |