|
Kesh-hotiradagi axborotlarni
|
bet | 7/8 | Sana | 10.02.2024 | Hajmi | 251,41 Kb. | | #154229 |
Bog'liq 5-MavzuKesh-hotiradagi axborotlarni yangilash. Kesh-hotira bilan ishlaganda bir vaqtning o‘zida axborotning ikkita nusxasi mavjut bo‘lishi mumkin: birinchisi kesh- hotirada, ikkinchisi esa asosiy hotirada joylashadi. Asosiy hotiradagi axborotni nafaqat protsessor o‘zgartira oladi, hotiraga bevosita ega bo‘lish kanali orqali ishlochi kiritish-chiqarish qurilmasi ham o‘zgartira oladi. Shuning uchun ularni bir
–birini inkor qilmasligini yoki kogerentligini quvvatlash kerak. Umumiy hotiradan foydalanuvchi bir necha mikrokontroller bo‘lgan tizimlarda ham shuningdek kogerentlikni quvvatlash kerak, lekin bu mikrokontrollerlarning keshlarini ham. Kesh-hotira kontrollerini boshqa protsessorlardan va kiritish-chiqarish qurilmalaridan magistraldagi so‘rovlarni nazorat qilib, kesh-hotira magistraldan so‘rovlarni olaoladigan va zarur harakatlarni amalga oshira oladigan qilib loyihalashtiriladi. Bu qurilmalarni kuzata oluvchi kesh-hotira (snooping cashe) deb ataladi. Kesh-hotiraning bir necha bloklarida axborotlarning turli variantlarini paydo bo‘lishini oldini olish uchun kesh-hotira, protsessorlar va asosiy hotira bajaradigan qoidalar to‘plami keshlashni kogerentlik protokolini hosil qiladi. Kesh-hotirada saqlash va uzatish birligi qator yoki kesh-hotira bloki deb ataladi (32 yoki 64 bayt). Eng oddiy keshlashning kogerentlik protokolini o‘zaro yozish`(write through) deb ataladi. So‘zni yozishda kesh-mo‘ljalga olaolmadi holati bo‘lgan holda, u asosiy hotiraga yoziladi. Kerakli so‘z majut qator kesh-hotiraga yuklanmaydi. Yozishda kesh-mo‘ljalga oldi holati hosil bo‘lsa kesh yangilanadi, yana so‘z esa MK ga yoziladi. Har doim kesh-hotira yangilanganda asosiy hotira
ham bir vaqtning o‘zida yangilanadi.
Yozish bo‘yicha kesh-mo‘ljalga olaolmadi holatining boshqa varianti – kesh- hotirani yuklash (yozish bo‘yicha to‘ldirish siyosati – write allocate). Kesh- mo‘ljalga olaolmadi holatini keltirib chiqargan so‘zga qayta murojat bo‘lish extimoli yuqori bo‘lganda yozish bo‘yicha to‘ldirish samaralidir.
Misol tariqasida 486 protsessorining kesh-hotirasini tashkillanishini batafsi ko‘rib chiqamiz.
486 protsessorining birinchi bosqich keshi to‘rt kanalli tarkibga ega (4.5- chizma). Har bir kanal 128 qatordan iborat bo‘lib, ularning har biri 16 baytdandir. Barcha to‘rtta kanalning bir hil nomli qatorlari 128 to‘plamni to‘rtta qatordan tashkil qiladi, ularning har biri o‘zining hotira manzillariga hizmat ko‘rsatadi. Har bir qatoriga tizimli hotira blokidan unga nusxa olingan manzil haqida 21-razryadli axborot to‘g‘ri keladi. Bu axborot qator tegi (Tag) deb nomlanadi.
Undan tashqari, kesh tarkibiga dispetcher kiradi, ya’ni 128x7 tarzida tashkillashtirilgan hotira xududi bo‘lib, unda 128 to‘plamdan har biri uchun 4-bitli haqiyqiylik teglari saqlanadi va 128 to‘plamning har biri uchun 3-bitli LRU (Least Recently Used) kodlari saqlanadi. To‘plamning haqiyqiylik tegi ushbu to‘plamga kiruvchi 4 qatordan har birining o‘z tarkibiga 4 bit chinlik bitini oladi. Birga o‘rnatilgan chinlik biti tegishli qator to‘lganligini bildiradi, agarda u nolga o‘tkazilgan bo‘lsa u holda qator bo‘sh bo‘ladi. LRU biti ushbu to‘plamga qancha oldin murojat bo‘lganligi haqida ma’lumot beradi. Bu esa eng kam ishlatilayotgan to‘plamni yangilash uchun kerak bo‘ladi.
21 бит
16 байт
21 бит
16 байт
3 бит 4 бит
127
Тэглар Қаторлар
127
Тэглар Қаторлар
127
LRU
Тэглар
4.5-chizma. 486 protsessorining ichki keshining tarkibi
Kesh – hotirani manzillash 28 razryadli manzil yordamida amalga oshiriladi. Ularning ichidan kichik 7 razryadi 128 to‘plamdan birini tanlaydilar, katta 21 razryad tanlangan to‘plamning barcha 4 qatorning teglari bilan solishtiriladi. Agarda teglar manzil razryadlari bilan mos kelganda, kesh-mo‘ljalga oldi holati hosil
bo‘ladi, razryadlari mos kelmaganda – kesh-mo‘ljalga olaolmadi holati hosil bo‘ladi.
O‘qish sikli holatida kesh-mo‘ljalga oldi holati yuzaga kelganda bayt yoki so‘z kesh-hotiradan o‘qiladi. Kesh-mo‘ljalga olaolmadi holati yuzaga kelganda esa (qayta yuklash) kesh-hotiraning qatorlaridan birini yangilash sodir bo‘ladi.
Yozish sikli holatida kesh-mo‘ljalga oldi holati yuzaga kelganda kesh- hotiraga va shuningdek asosiy tizimli hotiraga yozish amalga oshiriladi. Kesh- mo‘ljalga olaolmadi holati yuzaga kelganda esa faqat tizimli hotiraga yozish bajariladi, kesh-hotira qatorining yangilanishi amalga oshirilmaydi. Bu qatorni egallab bo‘lmaydigan bo‘lib qoladi (uning haqiyqiylik biti nolga o‘tkaziladi).
Yozishning bundek siyosati bevosita yozish deb nomlangan (Write Through, pryamoy zapisyu ili skvoznoy). Protsessorning ancha keyingi modellarida teskari yozish (Write Back, obratnaya zapis) qo‘llanilgan, u ancha tez ishlovchi bo‘lib, sababi tashqi shinaga murojat qilish soni ancha kam talab qilinadi.
Teskari yozish ishlatilganda yoziladigan axborot faqat kerakli qator keshda bo‘lmasagina asosiy hotiraga jo‘natiladi. Kesh-mo‘ljalga oldi holatida esa faqat kesh modifikatsiyalanadi. O‘zgartirilgan axborot faqat keshda yangi qator qayta yozilgandagina asosiy hotiraga tushadi. Oldingi qator esa butunligicha asosiy hotiraga qayta yoziladi, shu bilan birga kesh qiymatlari bilan asosiy hotira qiymatlarining bir hilligi tiklanadi.
Talab etilgan qator keshda berilmagan hol bo‘lsa (kesh-mo‘ljalga olaolmadi holati), yozishga so‘rov tashqi shinaga yo‘naltiriladi, o‘qishga so‘rovga bir muncha murakkabroq ishlov beriladi. Agarda bu so‘rov hotiraning keshlanadigan xududiga tegishli bo‘lsa, u holda keshni butun qatorini to‘ldirish sikli bajariladi (16 bayt hotiradan to‘plamning qatorlaridan biriga qayta yoziladi, ushbu manzilga hizmat ko‘rsatadigan). Agarda so‘ralgan axborotlar bitta qatorga sig‘masa, u holda qo‘shni qator to‘ldiriladi. Protsessor qatorini eng tez usulda to‘ldirishga harakat qilinadi – paketli sikl bilan, biroq hotirani tashqi kontrolleri ancha sekin uzatishlarni ishlatilishini talab qilishi mumkin.
Protsessorni axborotlarga bo‘lgan ichki so‘rovini darhol qoniqtiriladi, hotiradan axborotlar o‘qilishi boshlanishi bilan, qatorni to‘ldirish jaroyoni axborotga ishlov berish bilan parallel ravishda olib borilishi mumkin. Hotiraning ushbu manzili hizmat ko‘rsatadigan to‘plamda agarda bo‘sh qator bo‘lsa aynan u to‘ldiriladi. Agarda bo‘sh joy bo‘lmasa ko‘p vaqt murojat qilinmagan qator to‘ldiriladi. Buning uchun LRU bitlari ishlatiladi, ular ushbu to‘plam qatoriga har bir murojat qilganida modifikatsiyalanadi.
Undan tashqari, qatorlarni bekor qilish (ularni haqiqiy emas deb e’lon qilish) va butun kesh – hotirani tozalash imkoniyati mavjut. Bevosita yozishda keshni tozalash protsessorning mahsus tashqi signali yordamida amalga oshiriladi, dastur yordamida mahsus buyruqlar orqali va shuningdek dastlabki nolga o‘tkazishda – RESET signali bo‘yicha. Keshni tozalash yozuvga ishlov berishida, barcha modifikatsiya qilingan qatorlarni asosiy hotiraga bo‘shatish nazarda tutiladi.
|
| |