76
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.
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
16 байт
21 бит
16 байт
21 бит
3 бит
4 бит
0
127
127
127
0
0
LRU
Тэглар Қаторлар
Тэглар Қаторлар
Тэглар
Хақиқатда эса
диспетчер
Канал 1
Канал 4
77
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.
78
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.