Cpu keshi cpu cache



Download 39,18 Kb.
Sana26.01.2022
Hajmi39,18 Kb.
#412030
Bog'liq
CPU keshi


CPU keshi - CPU cache

A CPU keshi a apparat keshi tomonidan ishlatilgan markaziy protsessor (CPU) ning a kompyuter kirish uchun o'rtacha xarajatlarni (vaqt yoki energiya) kamaytirish uchun ma'lumotlar dan asosiy xotira.[1] Kesh - bu kichikroq, tezroq xotira, a ga yaqin joylashgan protsessor yadrosi, tez-tez ishlatiladigan asosiy ma'lumotlarning nusxalarini saqlaydi xotira joylari. Ko'pgina protsessorlar bir nechta keshning ierarxiyasiga ega darajalar (L1, L2, ko'pincha L3 va kamdan-kam hollarda L4), 1-darajadagi alohida ko'rsatmalarga va ma'lumotlarga xos keshlarga ega.

Keshlarning boshqa turlari mavjud (ular yuqorida aytib o'tilgan eng muhim keshlarning "kesh hajmi" hisoblanmaydi), masalan tarjima ko'rinishidagi bufer Ning bir qismi bo'lgan (TLB) xotirani boshqarish bo'limi Ko'pgina protsessorlarga ega bo'lgan (MMU).
Asosiy xotirada joylashgan joydan o'qish yoki unga yozish paytida protsessor ushbu joydan olingan ma'lumotlar allaqachon keshda ekanligini tekshiradi. Agar shunday bo'lsa, protsessor juda sekinroq bo'lgan asosiy xotira o'rniga keshdan o'qiydi yoki unga yozadi.

Eng zamonaviy ish stoli va server CPUlarda kamida uchta mustaqil kesh mavjud: an ko'rsatmalar keshi bajariladigan ko'rsatmalarni olishni tezlashtirish uchun, a ma'lumotlar keshi ma'lumotlarni olish va saqlashni tezlashtirish uchun va tarjima ko'rinishidagi bufer (TLB) bajariladigan ko'rsatmalar va ma'lumotlar uchun virtual-fizikaviy manzil tarjimasini tezlashtirish uchun foydalanilgan. Ham ko'rsatmalarga, ham ma'lumotlarga kirish uchun bitta TLB taqdim etilishi mumkin, yoki alohida TLB (ITLB) ko'rsatmasi va TLB (DTLB) ma'lumotlari taqdim etilishi mumkin.[2] Ma'lumotlar keshi odatda ko'proq kesh darajalarining iyerarxiyasi sifatida tashkil etiladi (L1, L2 va hk.; Shuningdek qarang ko'p darajali keshlar quyida). Biroq, TLB kesh qismi xotirani boshqarish bo'limi (MMU) va protsessor keshlari bilan bevosita bog'liq emas.

Tarix

Keshni ishlatgan birinchi protsessorlarda faqat bitta darajadagi kesh bor edi; keyingi 1-darajali keshdan farqli o'laroq, u L1d (ma'lumotlar uchun) va L1i (ko'rsatmalar uchun) ga bo'linmagan. Split L1 keshi 1976 yilda boshlangan IBM 801 MARKAZIY PROTSESSOR,[3][4] 1993 yilda Intel Pentium va 1997 yilda ARMv5TE bilan o'rnatilgan CPU bozorida asosiy oqimga erishdi. 2015 yilda hatto sub-dollarlik SoC ham L1 keshini ikkiga ajratdi. Ularda L2 keshlari va katta protsessorlar uchun L3 keshlari ham mavjud. L2 keshi odatda bo'linmaydi va allaqachon ajratilgan L1 keshi uchun umumiy ombor sifatida ishlaydi. A ning har bir yadrosi ko'p yadroli protsessor maxsus L1 keshiga ega va odatda yadrolar o'rtasida taqsimlanmaydi. L2 keshi va undan yuqori darajadagi keshlar yadrolar o'rtasida taqsimlanishi mumkin. L4 keshi hozirda juda kam uchraydi va odatda (shunday shaklda) dinamik tasodifiy xotira (DRAM), o'rniga statik tezkor kirish xotirasi (SRAM), alohida plyonkada yoki chipda (istisno, shakl, eDRAM L1gacha bo'lgan barcha darajadagi kesh uchun ishlatiladi. Tarixiy jihatdan L1 bilan ham shunday bo'lgan, ammo kattaroq chiplar uni va umuman, barcha darajadagi kesh darajalarini birlashtirishga imkon bergan, oxirgi darajadan tashqari. Keshning har bir qo'shimcha darajasi har xil kattaroq va optimallashtirilgan bo'lishga intiladi.



Keshlar (tarixiy jihatdan RAM kabi), odatda, 2, 4, 8, 16 va hk. KiB; qachongacha MiB o'lchamlari (ya'ni kattaroq L1 bo'lmaganlar uchun), naqshning juda erta buzilganligi, masalan, kattalashtirilgan kattalikdagi paradigmaga majburlanmasdan kattaroq keshlarga imkon berish uchun. Intel Core 2 Duo 2008 yil aprel oyida 3 MiB L2 kesh bilan. Keyinchalik L1 o'lchamlari uchun bu faqat oz miqdordagi KiB ni tashkil qiladi IBM zEC12 2012 yildan boshlab istisno bo'lib, o'z vaqti uchun juda katta 96 KiB L1 ma'lumot keshini olish va h.k. The IBM z13 96 KiB L1 ko'rsatmalar keshiga (va 128 KiB L1 ma'lumotlar keshiga) ega,[5] va Intel Muzli ko'l2018 yildan boshlab 48 KiB L1 ma'lumotlar keshiga va 48 KiB L1 ko'rsatmalar keshiga ega bo'lgan protsessorlar. 2020 yilda, ba'zilari Intel Atom Protsessorlar (24 yadroli) 4,5 MiB va 15 MiB kesh hajmiga (ko'p) ega.[6][7]

Kesh yozuvlari

Ma'lumotlar xotira va kesh o'rtasida aniq o'lchamdagi bloklarda uzatiladi kesh liniyalari yoki kesh bloklari. Kesh liniyasi xotiradan keshga ko'chirilganda, kesh yozuvi hosil bo'ladi. Kesh yozuviga nusxa ko'chirilgan ma'lumotlar, shuningdek, so'ralgan xotira joylashuvi (teg deb ataladi) kiradi.

Protsessor xotirada joyni o'qishi yoki yozishi kerak bo'lganda, avval keshdagi mos yozuvni tekshiradi. Kesh ushbu manzilni o'z ichiga olishi mumkin bo'lgan har qanday kesh satrida talab qilingan xotira joylashuvi tarkibini tekshiradi. Agar protsessor xotira joylashuvi keshda ekanligini aniqlasa, kesh urish sodir bo'ldi. Ammo, agar protsessor keshdagi xotira o'rnini topmasa, keshni o'tkazib yuborish sodir bo'ldi. Keshni urish holatida protsessor zudlik bilan ma'lumotlarni kesh satrida o'qiydi yoki yozadi. Keshni o'tkazib yuborish uchun kesh yangi yozuvni ajratadi va ma'lumotlarni asosiy xotiradan ko'chiradi, so'ngra so'rov kesh tarkibidan amalga oshiriladi.

Siyosatlar

O'zgartirish siyosati

Asosiy maqola: Keshni almashtirish qoidalari

Keshni o'tkazib yuborishda yangi yozuv uchun joy ajratish uchun mavjud yozuvlardan birini olib tashlash kerak bo'lishi mumkin. Ko'chirish uchun yozuvni tanlashda foydalanadigan evristikaga almashtirish siyosati deyiladi. Har qanday almashtirish siyosatining asosiy muammosi shundaki, kelajakda qaysi mavjud kesh yozuvidan foydalanish ehtimoli kamligini taxmin qilish kerak. Kelajakni bashorat qilish qiyin, shuning uchun mavjud bo'lgan almashtirish siyosati orasida mukammal usul mavjud emas. Yaqinda qo'llanilmagan (LRU) mashhur almashtirish siyosati, eng kam kirilgan yozuvni almashtiradi.

Ba'zi xotira diapazonlarini keshlash mumkin bo'lmagan deb belgilash, kamdan-kam hollarda qayta kiriladigan xotira mintaqalarini keshlashdan saqlanish orqali ish faoliyatini yaxshilashi mumkin. Bu hech qanday qayta ishlatmasdan keshga biror narsa yuklashning ortiqcha yukidan qochadi. Kesh yozuvlari kontekstga qarab o'chirib qo'yilishi yoki bloklanishi mumkin.

Qoidalarni yozing

Asosiy maqola: Kesh (hisoblash) § Yozish qoidalari

Agar ma'lumotlar keshga yozilgan bo'lsa, ular biron bir vaqtda asosiy xotiraga yozilishi kerak; ushbu yozuvni yozish vaqti yozish qoidasi sifatida tanilgan. A yozish kesh, har bir keshga yozish asosiy xotiraga yozishni keltirib chiqaradi. Shu bilan bir qatorda, a qaytarib yozish yoki keshni nusxalash, yozish darhol asosiy xotiraga aks ettirilmaydi va kesh o'rniga qaysi joylar yozilganligini kuzatib, ularni iflos. Ushbu joylardagi ma'lumotlar asosiy xotiraga faqat ushbu ma'lumotlar keshdan chiqarilganda yoziladi. Shu sababli, orqaga qaytarish keshidagi o'qish o'tkazib yuborilishi, ba'zida xizmatga ikkita xotira kirishini talab qilishi mumkin: biri avval iflos joyni asosiy xotiraga, so'ngra yangi joyni xotiradan o'qish uchun. Bundan tashqari, yozishni orqaga qaytarish keshida joylashtirilmagan asosiy xotira joyiga yozish allaqachon ifloslangan joyni chiqarib yuborishi va shu bilan yangi xotira joyi uchun ushbu kesh maydonini bo'shatishi mumkin.

Qidiruv siyosat ham mavjud. Kesh yozilishi mumkin, ammo yozuvlar vaqtincha do'kon ma'lumotlar navbatida turishi mumkin, odatda bir nechta do'konlarni birgalikda qayta ishlash mumkin (bu avtobuslarning aylanishini kamaytiradi va avtobuslardan foydalanishni yaxshilaydi).

Keshlangan ma'lumotlar asosiy xotiradan boshqa shaxslar tomonidan o'zgartirilishi mumkin (masalan, foydalanuvchi tashqi qurilmalar) xotiraga bevosita kirish (DMA) yoki boshqa yadro ko'p yadroli protsessor), bu holda keshdagi nusxa eskirgan yoki eskirgan bo'lishi mumkin. Shu bilan bir qatorda, a ko'p protsessor tizim keshdagi ma'lumotlarni yangilaydi, boshqa protsessorlar bilan bog'liq keshlardagi ma'lumotlarning nusxalari eskiradi. Ma'lumotlarni izchil ushlab turuvchi kesh menejerlari o'rtasidagi aloqa protokollari ma'lum keshning muvofiqligi protokollar.

Keshning ishlashi

Keshning ishlashini o'lchash so'nggi paytlarda xotira va protsessorning ishlashi o'rtasidagi tezlik farqi keskin o'sib borayotgan joyda muhim ahamiyat kasb etmoqda. Kesh ushbu tezlik oralig'ini kamaytirish uchun kiritilgan. Shunday qilib, kesh protsessor va xotira tezligidagi bo'shliqni qay darajada bartaraf eta olishini bilish, ayniqsa yuqori samarali tizimlarda muhim ahamiyat kasb etadi. Keshni urish tezligi va keshni o'tkazib yuborish tezligi ushbu ko'rsatkichni aniqlashda muhim rol o'ynaydi. Kesh ishlashini yaxshilash uchun o'tkazib yuborish tezligini kamaytirish boshqa qadamlar qatorida zarur qadamlardan biri bo'ladi. Keshga kirish vaqtini qisqartirish ham uning ishlashiga turtki beradi.

CPU to'xtash joylari

Xotiradan bitta kesh satrini olish uchun vaqt sarflandi (o'qing) kechikish keshni o'tkazib yuborish tufayli) muhim ahamiyatga ega, chunki protsessor kesh satrini kutayotganda bajaradigan ishlari tugaydi. CPU bu holatga yetganda, uni to'xtash joyi deyiladi. Protsessorlar asosiy xotiraga nisbatan tezlashganda, keshni o'tkazib yuborish sababli to'xtashlar potentsial hisoblashni o'zgartiradi; zamonaviy protsessorlar asosiy xotiradan bitta kesh satrini olish uchun sarflangan vaqt ichida yuzlab ko'rsatmalarni bajarishi mumkin.

Shu vaqt ichida protsessorni band qilish uchun turli xil usullardan foydalanilgan buyurtmadan tashqari ijro unda protsessor keshni o'tkazib yuborishni kutayotgan buyruqdan keyin mustaqil ko'rsatmalarni bajarishga urinadi. Ko'pgina protsessorlar tomonidan qo'llaniladigan yana bir texnologiya bir vaqtning o'zida ko'p ishlov berish (SMT), bu muqobil ipga protsessor yadrosidan foydalanishga imkon beradi, birinchi ip esa kerakli protsessor resurslari mavjud bo'lishini kutadi.

Xotira joylarini alohida kesh joylari bilan keshlashning turli xil usullarining tasviri

Asosiy maqola: Keshni joylashtirish qoidalari

The joylashtirish siyosati keshda asosiy xotiraning ma'lum bir nusxasi qaerga ketishini hal qiladi. Agar joylashtirish siyosati nusxani saqlash uchun keshdagi har qanday yozuvni tanlashda erkin bo'lsa, kesh chaqiriladi to'liq assotsiativ. Boshqa tomondan, agar asosiy xotiradagi har bir yozuv keshning faqat bitta joyiga o'tishi mumkin bo'lsa, kesh shunday bo'ladi to'g'ridan-to'g'ri xaritada. Ko'pgina keshlar murosaga kelishadi, bunda asosiy xotiradagi har bir yozuv keshdagi har qanday N joydan biriga o'tishi mumkin va ular N-set set assotsiativ sifatida tavsiflanadi.[8] Masalan, an-dagi 1-darajali ma'lumotlar keshi AMD Athlon ikki tomonlama o'rnatilgan assotsiativ bo'lib, bu asosiy xotiradagi har qanday aniq joyni 1-darajali ma'lumotlar keshidagi ikkita joyning har ikkalasida ham keshlash mumkinligini anglatadi.

Assotsiatsiyaning to'g'ri qiymatini tanlash o'z ichiga oladi Sotib yuborish. Agar joylashtirish siyosati xotiraning joylashuvini xaritada ko'rsatishi mumkin bo'lgan o'nta joy mavjud bo'lsa, u joyning keshda ekanligini tekshirish uchun o'nta kesh yozuvlarini qidirish kerak. Ko'proq joylarni tekshirish uchun ko'proq quvvat va chip maydoni va ko'proq vaqt kerak bo'ladi. Boshqa tomondan, ko'proq assotsiatsiyaga ega keshlar kamroq o'tkazib yuboriladi (qarang: to'qnashuvlarni o'tkazib yuborish, quyida), shuning uchun protsessor sekin asosiy xotiradan o'qish uchun oz vaqt sarflaydi. Umumiy ko'rsatma shundan iboratki, assotsiativlikni ikki baravar oshirish, to'g'ridan-to'g'ri xaritalashdan ikki tomonga yoki ikki tomonlamadan to'rt tomonga, xit hajmini ikki baravar oshirish bilan urish tezligini oshirishga ta'sir qiladi. Shu bilan birga, assotsiatsiyani to'rtdan ko'p oshirish xit tezligini yaxshilamaydi,[9] va odatda boshqa sabablarga ko'ra amalga oshiriladi (quyida virtual taxallusga qarang). Ba'zi protsessorlar kam quvvatli holatlarda keshlarining assotsiativligini dinamik ravishda kamaytirishi mumkin, bu esa quvvatni tejash chorasi sifatida ishlaydi.

Yomonroq, ammo soddadan yaxshiroqga, ammo murakkab tartibda:

• To'g'ridan-to'g'ri xaritalangan kesh - eng yaxshi vaqt, ammo yomon holatda oldindan aytib bo'lmaydi

• Ikki tomonlama o'rnatilgan assotsiativ kesh

• Ikki tomonlama qiyshiq assotsiativ kesh[11]

• To'rt tomonlama o'rnatilgan assotsiativ kesh

• Sakkiz tomonlama o'rnatilgan assotsiativ kesh, keyinchalik amalga oshirish uchun odatiy tanlov

• Sakkiz tomonlama o'xshash 12-tomonlama assotsiativ kesh

• To'liq assotsiativ kesh - eng yaxshi o'tkazib yuborilgan stavkalar, ammo juda oz miqdordagi yozuvlar uchun amal qiladi

To'g'ridan-to'g'ri xaritalangan kesh

Ushbu kesh-tashkilotda asosiy xotiradagi har bir joy keshda faqat bitta yozuvga o'tishi mumkin. Shuning uchun, to'g'ridan-to'g'ri xaritalangan keshni "bir tomonlama to'plamli assotsiativ" kesh deb ham atash mumkin. Unda joylashtirish siyosati mavjud emas, chunki qaysi kesh yozuvining mazmunini chiqarib tashlashni tanlash imkoniyati mavjud emas. Bu shuni anglatadiki, agar ikkita joy bir xil yozuvga tushsa, ular doimo bir-birlarini nokaut qilishlari mumkin. Oddiyroq bo'lsa-da, to'g'ridan-to'g'ri xaritada kesh solishtirish mumkin bo'lgan ishlashni ta'minlash uchun assotsiativga qaraganda ancha kattaroq bo'lishi kerak va bu oldindan aytib bo'lmaydi. Ruxsat bering x keshdagi blok raqami, y xotiraning blok raqami va n keshdagi bloklar soni bo'lishi kerak, keyin xaritalash tenglama yordamida amalga oshiriladi x = y mod n.

Ikki tomonlama o'rnatilgan assotsiativ kesh

Agar asosiy xotiradagi har bir joy keshdagi ikkita joydan birida saqlanishi mumkin bo'lsa, bitta mantiqiy savol: ikkovidan qaysi biri? Yuqoridagi o'ng tomondagi diagrammada ko'rsatilgan eng sodda va eng ko'p ishlatiladigan sxema - bu xotira joylashuvi indeksining eng kam ahamiyatli bitlaridan kesh xotirasi uchun indeks sifatida foydalanish va har bir indeks uchun ikkita yozuvga ega bo'lishdir. Ushbu sxemaning bir foydasi shundaki, keshda saqlanadigan teglar asosiy xotira manzilining kesh xotirasi indeksidan kelib chiqadigan qismini o'z ichiga olmaydi. Kesh teglari kamroq bit bo'lganligi sababli, ular kamroq tranzistorlarni talab qiladi, protsessor platasida yoki mikroprotsessor mikrosxemasida kam joy egallaydi va ularni tezroq o'qish va taqqoslash mumkin. Shuningdek LRU ayniqsa oddiy, chunki har bir juftlik uchun bittadan bittasini saqlash kerak.

Spekulyativ ijro

To'g'ridan-to'g'ri xaritalangan keshning afzalliklaridan biri bu oddiy va tezkor ishlashga imkon berishidir spekülasyon. Manzil hisoblab chiqilgandan so'ng, xotirada ushbu joyning nusxasi bo'lishi mumkin bo'lgan bitta kesh indekslari ma'lum bo'ladi. Ushbu kesh yozuvini o'qish mumkin va protsessor yorliqning aslida so'ralgan manzilga mos kelishini tekshirishni tugatmasdan oldin ushbu ma'lumotlar bilan ishlashni davom ettirishi mumkin.

Teglar mos kelguniga qadar protsessor keshlangan ma'lumotlardan foydalanishi g'oyasi assotsiativ keshlarga ham qo'llanilishi mumkin. Yorliqning a ishora, so'ralgan manzilga xaritalash mumkin bo'lgan kesh yozuvlaridan bittasini tanlash uchun ishlatilishi mumkin. So'ngra maslahat tomonidan tanlangan yozuv to'liq tegni tekshirish bilan parallel ravishda ishlatilishi mumkin. Maslahat texnikasi, quyida aytib o'tilganidek, manzil tarjimasi kontekstida ishlatilganda eng yaxshi ishlaydi.

Ikki tomonlama qiyshiq assotsiativ kesh

Kabi boshqa sxemalar taklif qilingan qiyshiq kesh,[11] bu erda yuqoridagi kabi 0 yo'lining ko'rsatkichi to'g'ridan-to'g'ri, lekin 1 yo'lining ko'rsatkichi a bilan hosil bo'ladi xash funktsiyasi. Yaxshi xash funktsiyasi to'g'ridan-to'g'ri xaritalash bilan ziddiyatni keltirib chiqaradigan xususiyatga ega bo'lib, xash funktsiyasi bilan taqqoslaganda ziddiyatga olib kelmaydi va shuning uchun dastur patologik kirish tufayli kutilmagan tarzda ko'plab ziddiyatlarni o'tkazib yuborishi mumkin. naqsh Salbiy tomoni xash funktsiyasini hisoblashdan ortiqcha kechikishdir.[12] Bundan tashqari, yangi qatorni yuklash va eski qatorni chiqarib yuborish vaqti kelganida, mavjud bo'lgan qaysi chiziq eng yaqinda ishlatilganligini aniqlash qiyin bo'lishi mumkin, chunki yangi satr har xil yo'llar bilan har xil indekslardagi ma'lumotlar bilan to'qnashadi; LRU qiyshiq bo'lmagan keshlarni kuzatib borish odatda belgilangan tartibda amalga oshiriladi. Shunga qaramay, egri-assotsiativ keshlar odatiy set-assotsiativlarga nisbatan katta afzalliklarga ega.[13]

Psevdo-assotsiativ kesh

Haqiqiy set-assotsiativ kesh barcha mumkin bo'lgan usullarni bir vaqtning o'zida, a kabi narsadan foydalanib sinovdan o'tkazadi manzilga mo'ljallangan xotira. Psevdo-assotsiativ kesh har bir usulni birma-bir sinab ko'radi. Hash-rehash keshi va ustunli-assotsiativ kesh - bu psevdo-assotsiativ keshning namunalari.

Sinab ko'rilgan birinchi usulda zarbani topishning umumiy holatida, psevdo-assotsiativ kesh to'g'ridan-to'g'ri xaritalangan kesh kabi tezkor, ammo u to'g'ridan-to'g'ri xaritalangan keshga qaraganda ancha past to'qnashuvlarni o'tkazib yuborish tezligiga ega, sog'inish tezligiga yaqinroq. to'liq assotsiativ kesh.[12]

Keshni kiritish tuzilishi

Kesh qatori yozuvlari odatda quyidagi tuzilishga ega:

The ma'lumotlar bloki (kesh liniyasi) asosiy xotiradan olingan haqiqiy ma'lumotlarni o'z ichiga oladi. The yorliq asosiy xotiradan olingan haqiqiy ma'lumotlar manzilini (bir qismini) o'z ichiga oladi. Bayroq bitlari quyida muhokama qilinadi.

Keshning "hajmi" - bu xotirada saqlanadigan asosiy ma'lumotlar miqdori. Ushbu hajmni har bir ma'lumotlar blokida saqlangan baytlar soni, keshda saqlanadigan bloklar sonidan kattaroq hisoblash mumkin. (Yorliq, bayroq va xatolarni tuzatish kodi bitlar hajmiga kiritilmagan,[14] ular keshning jismoniy maydoniga ta'sir qilsa ham.)

Kesh liniyasi (xotira bloki) bilan birga keladigan samarali xotira manzili ajratilgan (MSB ga LSB) yorliqqa, indeksga va blok ofsetiga.

Indeks ma'lumotlarning qaysi kesh to'plamini joylashtirilganligini tavsiflaydi. Indeks uzunligi bitlar s kesh to'plamlari.

Blokni ofset, kerakli ma'lumotlarni kesh satrida saqlangan ma'lumotlar blokida belgilaydi. Odatda samarali manzil baytda bo'ladi, shuning uchun blokni qoplash uzunligi bitlar, qaerda b Ma'lumotlar blokidagi baytlar soni.Teg manzilning eng muhim bitlarini o'z ichiga oladi, ular joriy to'plamdagi barcha qatorlar bo'yicha tekshiriladi (to'plam indeks bo'yicha olingan), agar ushbu to'plamda so'ralgan manzil mavjud bo'lsa. Agar shunday bo'lsa, kesh urishi sodir bo'ladi. Bitning yorliq uzunligi quyidagicha:

tag_length = address_length - index_length - block_offset_length

Ba'zi mualliflar blokirovka ofsetini oddiygina "ofset" deb atashadi[17] yoki "siljish".[18][19]

Misol

Asl nusxa Pentium 4 protsessor 8 ta to'rt tomonlama o'rnatilgan assotsiativ L1 ma'lumotlar keshiga ega ediKiB hajmi, 64 baytli kesh bloklari bilan. Demak, 8 KiB / 64 = 128 kesh bloklari mavjud. To'plamlar soni kesh bloklari soniga, assotsiativlik soniga bo'linadi, bu 128/4 = 32 to'plamga olib keladi va shuning uchun 25 = 32 xil indeks. 2 bor6 = 64 mumkin bo'lgan ofset. CPU manzili kengligi 32 bit bo'lganligi sababli, bu teg maydoni uchun 32 - 5 - 6 = 21 bitni nazarda tutadi.



Dastlabki Pentium 4 protsessorida 128 baytli kesh bloklari bo'lgan sakkiz tomonlama o'rnatilgan assotsiativ L2 o'rnatilgan kesh 256 KB bo'lgan. Bu teg maydoni uchun 32 - 8 - 7 = 17 bitni nazarda tutadi.[17]

Bayroq bitlari

Ko'rsatmalar keshi uchun har bir kesh satrida bitta bayroq biti kerak: yaroqli bit. Haqiqiy bit kesh blokining haqiqiy ma'lumotlar bilan yuklanganligini yoki yo'qligini bildiradi.

Quvvatni oshirishda apparat barcha keshlardagi barcha yaroqli bitlarni "yaroqsiz" qilib belgilaydi. Ba'zi tizimlar, shuningdek, boshqa paytlarda, masalan, ko'p ustalikka tegishli bo'lgan bitni "yaroqsiz" ga o'rnatadi avtobusni kuzatib borish bitta protsessorning keshidagi apparat boshqa protsessordan uzatilgan manzilni eshitadi va mahalliy keshdagi ba'zi ma'lumotlar bloklari eskirganligini va yaroqsiz deb belgilanishi kerakligini tushunadi.

Ma'lumotlar keshi uchun odatda har bir kesh satrida ikkita bayroq biti kerak - yaroqli bit va a iflos bit. Nopok bitlar to'plamiga ega bo'lish, u bilan bog'liq kesh liniyasi asosiy xotiradan o'qilganidan beri o'zgartirilganligini ko'rsatadi ("iflos"), ya'ni protsessor ushbu qatorga ma'lumotlarni yozgan va yangi qiymat asosiy xotiraga qadar tarqalmagan.

Keshni o'tkazib yuborish - bu keshdagi ma'lumotlarning bir qismini o'qish yoki yozish uchun muvaffaqiyatsiz urinish, bu esa xotira xotirasidan ancha uzoqroq kechikish bilan ta'minlanishiga olib keladi. Keshni uch xil o'tkazib yuborish mavjud: ko'rsatmalar o'qilmaydi, ma'lumotlar o'qilmaydi va ma'lumotlar yozilmaydi.

Keshni o'qish uchun o'tkazib yuborilgan narsalar dan ko'rsatma kesh odatda eng katta kechikishni keltirib chiqaradi, chunki protsessor yoki hech bo'lmaganda ijro etish, ko'rsatma asosiy xotiradan olinmaguncha kutish kerak (to'xtash). Keshni o'qish uchun o'tkazib yuborilgan narsalar dan ma'lumotlar kesh odatda kichikroq kechikishni keltirib chiqaradi, chunki keshni o'qishga bog'liq bo'lmagan ko'rsatmalar berilishi mumkin va ma'lumotlar asosiy xotiradan qaytarilguncha bajarilishini davom ettiradi va qaram ko'rsatmalar bajarilishini davom ettirishi mumkin. Keshni yozish uchun o'tkazib yuborish a ma'lumotlar kesh odatda eng qisqa kechikishni keltirib chiqaradi, chunki yozish navbatga qo'yilishi mumkin va keyingi ko'rsatmalarning bajarilishida cheklovlar kam; protsessor navbat to'lguncha davom etishi mumkin. O'tkazib yuborish turlari bilan batafsil tanishish uchun qarang kesh ishlashini o'lchash va o'lchov.

Ko'pgina umumiy protsessorlar ba'zi bir shakllarini amalga oshiradilar virtual xotira. Xulosa qilib aytganda, yoki mashinada ishlaydigan har bir dastur o'zining soddalashtirilganligini ko'radi manzil maydoni, faqat shu dastur uchun kod va ma'lumotlarni o'z ichiga oladi yoki barcha virtual manzillar maydonida ishlaydigan barcha dasturlar. Dastur jismoniy manzil maydonining manzillarini emas, balki virtual manzil maydonining manzillarini hisoblash, taqqoslash, o'qish va yozish orqali amalga oshiriladi, bu dasturlarni soddalashtiradi va shu bilan yozishni osonlashtiradi.

Virtual xotira protsessordan dastur tomonidan yaratilgan virtual manzillarni asosiy xotiradagi jismoniy manzillarga tarjima qilishni talab qiladi. Ushbu tarjimani bajaradigan protsessorning qismi xotirani boshqarish bo'limi (MMU). MMU orqali tezkor yo'l ushbu sahifada saqlangan tarjimalarni amalga oshirishi mumkin tarjima ko'rinishidagi bufer (TLB), bu operatsion tizim xaritalari keshidir sahifalar jadvali, segment jadvali yoki ikkalasi.

Ushbu munozaraning maqsadlari uchun manzil tarjimasining uchta muhim xususiyati mavjud:

• Kechikish: Jismoniy manzil MMUda bir muncha vaqt, ehtimol bir necha tsiklda, virtual manzil manzil generatoridan keyin mavjud.

• Taxallus: Bir nechta virtual manzillar bitta jismoniy manzilga mos kelishi mumkin. Aksariyat protsessorlar ushbu jismoniy manzilga oid barcha yangilanishlar dastur tartibida bo'lishiga kafolat beradi. Ushbu kafolatni amalga oshirish uchun protsessor har qanday vaqtda keshda jismoniy manzilning faqat bitta nusxasi joylashganligini ta'minlashi kerak.

• Granularity: Virtual manzil maydoni sahifalarga bo'linadi. Masalan, 4GiB virtual manzil maydoni har biri mustaqil ravishda xaritaga solinishi mumkin bo'lgan 4 KiB hajmdagi 1.048.576 sahifaga qisqartirilishi mumkin. Bir nechta sahifa o'lchamlari qo'llab-quvvatlanishi mumkin; qarang virtual xotira ishlab chiqish uchun.

Ba'zi dastlabki virtual xotira tizimlari juda sekin edi, chunki ular har bir asosiy xotiraga dasturlashtirilgan kirishidan oldin (asosiy xotirada saqlanadigan) sahifalar jadvaliga kirishni talab qildilar.[NB 1] Keshlarsiz, bu xotiraga kirish tezligini ikki baravar qisqartiradi. Kompyuter tizimida ishlatiladigan birinchi apparat keshi aslida ma'lumotlar yoki ko'rsatmalar keshi emas, balki TLB edi.[21]

Indeks yoki yorliq jismoniy yoki virtual manzillarga mos kelishiga qarab keshlarni to'rt turga bo'lish mumkin:

• Jismoniy indekslangan, jismoniy etiketlangan (PIPT) keshlari indeks uchun ham, yorliq uchun ham jismoniy manzildan foydalanadi. Bu oddiy va taxallus bilan bog'liq muammolardan qochish bilan birga, bu juda sekin, chunki bu manzilni keshdan qidirishdan oldin jismoniy manzilni qidirish kerak (bu TLB o'tkazib yuborilishi va asosiy xotiraga kirishni o'z ichiga olishi mumkin).

• Virtual indekslangan, deyarli etiketlangan (VIVT) keshlar ham indeks, ham yorliq uchun virtual manzildan foydalanadi. Ushbu keshlash sxemasi tezroq qidiruvga olib kelishi mumkin, chunki ma'lum bir virtual manzil uchun jismoniy manzilni aniqlash uchun avval MMU bilan maslahatlashish shart emas. Biroq, VIVT bir nechta fizikaviy manzillar bir xil jismoniy manzilga murojaat qilishi mumkin bo'lgan yumshatish muammolaridan aziyat chekmoqda. Natijada, bir xil xotiraga ishora qilinishiga qaramay, bunday manzillar alohida-alohida keshlanadi va bu izchillik bilan bog'liq muammolarni keltirib chiqaradi. Garchi bu muammoning echimlari mavjud bo'lsa [22] ular standart muvofiqlik protokollari uchun ishlamaydi. Yana bir muammo - omonimlar, bu erda bir xil virtual manzil bir necha xil fizik manzillarga mos keladi. Ushbu xaritalarni faqat virtual indeksning o'ziga qarab ajratish mumkin emas, ammo potentsial echimlarga quyidagilar kiradi: keshni kontekstni almashtirish, virtual manzilni manzil maydoni identifikatori (ASID) bilan belgilash, manzil maydonlarini bir-birini qoplamaslikka majbur qilish. Bundan tashqari, virtual-fizikaviy xaritalashlarning o'zgarishi mumkin bo'lgan muammo mavjud, bu esa tezkor kesh satrlarini talab qiladi, chunki VA'lar endi yaroqsiz bo'ladi. Agar teglar jismoniy manzillardan (VIPT) foydalansa, ushbu muammolarning barchasi mavjud emas.

• Virtual indekslangan, jismoniy etiketlangan (VIPT) keshlar indeks uchun virtual manzildan va tegdagi jismoniy manzildan foydalanadilar. PIPT-dan ustunligi pastroq kechikishdir, chunki TLB tarjimasiga parallel ravishda kesh liniyasini izlash mumkin, ammo jismoniy manzil mavjud bo'lguncha yorliqni taqqoslash mumkin emas. VIVTdan ustunligi shundaki, yorliq fizik manzilga ega bo'lgani uchun, kesh omonimlarni aniqlay oladi. Nazariy jihatdan, VIPT ko'proq teg bitlarini talab qiladi, chunki ba'zi bir indeks bitlari virtual va jismoniy manzillar o'rtasida farq qilishi mumkin (masalan, 4 KiB sahifalar uchun bit 12 va undan yuqori) va ularni ham virtual indeksga, ham jismoniy yorliqqa kiritish kerak. Amalda bu muammo emas, chunki muvofiqlik muammolarini oldini olish uchun VIPT keshlari bunday indeks bitlari bo'lmasligi uchun ishlab chiqilgan (masalan, indeks uchun bitlarning umumiy sonini cheklash va blokni 4 Kbayt sahifani 12 ga almashtirish). ; bu VIPT keshlarining hajmini keshning assotsiativligidan kattaroq sahifa hajmiga cheklaydi.

• Jismoniy indekslangan, deyarli etiketlangan (PIVT) keshlari ko'pincha adabiyotda foydasiz va mavjud emas deb da'vo qilinadi.[23] Biroq, MIPS R6000 ushbu kesh turini yagona ma'lum dastur sifatida ishlatadi.[24] R6000 o'rnatilgan emitent bilan bog'liq mantiq, bu juda tezkor texnologiya, masalan, a kabi katta xotiralar uchun mos emas TLB. R6000, TLB xotirasini chipdagi kichik, yuqori tezlikdagi TLB "bo'lagi" bo'lgan ikkinchi darajali keshning ajratilgan qismiga qo'yish orqali muammoni hal qiladi. Kesh TLB tilimidan olingan jismoniy manzil bo'yicha indekslanadi. Biroq, TLB bo'lagi faqat keshni indekslash uchun zarur bo'lgan va hech qanday teglardan foydalanmaydigan virtual manzil bitlarini tarjima qilganligi sababli, keshning noto'g'ri xitlari paydo bo'lishi mumkin, bu virtual manzil bilan belgilash orqali hal qilinadi.

Bunday takrorlanish tezligi ( yukning kechikishi) protsessor ishlashi uchun juda muhimdir va shuning uchun zamonaviy 1-darajali keshlar deyarli indekslanadi, bu hech bo'lmaganda MMU ning TLB qidiruvini kesh xotirasidan ma'lumotlarni olish bilan parallel ravishda davom etishiga imkon beradi.

Ammo virtual indekslash barcha kesh darajalari uchun eng yaxshi tanlov emas. Virtual taxalluslar bilan ishlash narxi kesh hajmi oshib boradi va natijada 2-darajali va undan kattaroq keshlar jismoniy indekslanadi.

Keshlar tarixiy ravishda kesh teglari uchun ham virtual, ham jismoniy manzillardan foydalangan, ammo hozirda virtual etiketlash odatiy hol emas. Agar TLB qidiruvi keshni RAMni qidirishdan oldin tugatishi mumkin bo'lsa, unda fizik manzil o'z vaqtida teglarni taqqoslash uchun mavjud va virtual yorliqlarga ehtiyoj qolmaydi. Shunday qilib, katta keshlar jismoniy ravishda etiketlanadi va faqat kichik, juda past kechikish keshlari deyarli belgilanadi. So'nggi umumiy maqsadli protsessorlarda, quyida tasvirlanganidek, virtual yorliqlar vintlar bilan almashtirildi.

Omonim va sinonim muammolari

Virtual indekslash va belgilashga asoslangan kesh bir xil virtual manzil turli xil jismoniy manzillarga joylashtirilganidan keyin mos kelmaydi (omonim), bu belgilash uchun jismoniy manzildan foydalanish yoki kesh satrida manzil maydoni identifikatorini saqlash orqali hal qilinishi mumkin. Biroq, so'nggi yondashuv qarshi yordam bermaydi sinonim muammo, unda bir nechta kesh satrlari bir xil jismoniy manzil uchun ma'lumotlarni saqlash bilan yakunlanadi. Bunday joylarga yozish keshdagi faqat bitta joyni yangilashi mumkin, boshqalari mos kelmaydigan ma'lumotlar bilan qoladi. Ushbu muammoni turli xil manzil maydonlari uchun bir-birining ustiga chiqmaydigan xotira sxemalari yordamida hal qilish mumkin, aks holda xaritalash o'zgarganda kesh (yoki uning bir qismi) yuvilishi kerak.[25]

Virtual teglar va vintlar

Virtual teglarning katta afzalligi shundaki, ular assotsiativ keshlar uchun teglar virtual va jismoniy tarjima qilinishidan oldin davom etishiga imkon beradi. Biroq, izchillik tekshiruvlari va ko'chirishlar harakat uchun jismoniy manzilni taqdim etadi. Uskuna jismoniy manzillarni kesh indeksiga aylantirish uchun ba'zi vositalarga ega bo'lishi kerak, odatda fizik teglar va virtual teglarni saqlash orqali. Taqqoslash uchun, jismoniy ravishda belgilangan keshda virtual teglarni saqlash shart emas, bu oddiyroq. TLB-dan virtual va jismoniy xaritalash o'chirilganda, ushbu virtual manzillar bilan kesh yozuvlari qandaydir tarzda yuvilishi kerak. Shu bilan bir qatorda, agar TLB tomonidan xaritalanmagan sahifalarda kesh yozuvlariga ruxsat berilsa, sahifalar jadvalida ushbu sahifalardagi kirish huquqlari o'zgartirilganda ushbu yozuvlarni yuvish kerak bo'ladi.

Shuningdek, operatsion tizim hech qanday virtual taxalluslarning bir vaqtning o'zida keshda bo'lishini ta'minlashi mumkin. Operatsion tizim ushbu kafolatni quyida tavsiflangan sahifalarni bo'yashni ta'minlash orqali amalga oshiradi. Ba'zi dastlabki RISC protsessorlari (SPARC, RS / 6000) ushbu yondashuvni qo'lladilar. Yaqinda u ishlatilmayapti, chunki virtual taxalluslarni aniqlash va evakuatsiya qilish uchun apparat xarajatlari pasayib ketdi va mukammal sahifalarni bo'yash uchun dasturiy ta'minotning murakkabligi va ishlash jazosi oshdi.

Assotsiativ keshdagi teglarning ikkita funktsiyasini ajratish foydali bo'lishi mumkin: ular yozuvlar to'plamining qaysi yo'lini tanlashini aniqlash uchun ishlatiladi va ular kesh urilgan yoki o'tkazib yuborilganligini aniqlash uchun ishlatiladi. Ikkinchi funktsiya har doim to'g'ri bo'lishi kerak, lekin birinchi funktsiya taxmin qilishi va vaqti-vaqti bilan noto'g'ri javob olishi joizdir.

Ba'zi protsessorlarda (masalan, dastlabki SPARClarda) ham virtual, ham jismoniy teglar bilan kesh mavjud. Virtual teglar yo'lni tanlash uchun, jismoniy teglar esa urish yoki o'tkazib yuborishni aniqlash uchun ishlatiladi. Ushbu turdagi kesh deyarli belgilangan keshning kechikish afzalligi va jismoniy ravishda belgilangan keshning oddiy dasturiy ta'minotidan foydalanadi. Shu bilan birga, takrorlangan teglarning qo'shimcha narxi ko'tariladi. Shuningdek, o'tkazib yuborilgan ishlov berish paytida, indekslangan kesh satrining muqobil yo'llari virtual taxalluslar uchun tekshirilishi va mos keladigan har qanday o'yinlar o'tkazilishi kerak.

Qo'shimcha maydonni (va ba'zi bir kechikishlarni) saqlash orqali yumshatish mumkin virtual maslahatlar virtual teglar o'rniga har bir kesh yozuvi bilan. Ushbu maslahatlar virtual yorliqning ichki to'plami yoki xashidir va ma'lumotlar va jismoniy yorliq olinadigan keshni tanlash usulida ishlatiladi. Deyarli etiketlangan kesh singari, virtual ishora mos kelishi mumkin, ammo jismoniy teglar mos kelmasligi mumkin, bu holda mos keladigan ishora bilan kesh kiritilishi chiqarib yuborilishi kerak, shunda keshni ushbu manzilda to'ldirgandan so'ng keshga kirish faqat bitta maslahatga mos keladi. Virtual maslahatlar ularni bir-biridan ajratib turadigan virtual teglarga qaraganda kamroq bit bo'lganligi sababli, deyarli shama qilingan kesh deyarli belgilanadigan keshga qaraganda ko'proq ziddiyatlarni o'tkazib yuboradi.

Ehtimol, virtual ko'rsatmalarning yakuniy pasayishini Pentium 4 (Willamette va Northwood yadrolari) da topish mumkin. Ushbu protsessorlarda virtual ishora samarali ravishda ikkita bit bo'lib, kesh to'rt tomonlama o'rnatilgan assotsiatsiyadir. Effektiv ravishda, apparat virtual manzildan kesh indeksiga oddiy almashtirishni davom ettiradi, shunday qilib yo'q manzilga mo'ljallangan xotira (CAM) olib kelingan to'rtta usuldan birini to'g'ri tanlash uchun kerak.

Sahifani bo'yash

Asosiy maqola: Keshni bo'yash

Jismoniy jihatdan indekslangan katta keshlar (odatda ikkinchi darajali keshlar) muammoga duch kelmoqdalar: keshda qaysi sahifalar bir-biri bilan to'qnashishini dastur emas, balki operatsion tizim boshqaradi. Bitta dasturdan ikkinchisiga o'tishda sahifalarni taqsimlashdagi farqlar kesh to'qnashuvi naqshlarining farqlanishiga olib keladi, bu esa dasturning ishlashida juda katta farqlarga olib kelishi mumkin. Ushbu farqlar benchmark uchun doimiy va takrorlanadigan vaqtni olishni juda qiyinlashtirishi mumkin.



Muammoni tushunish uchun 1 MiB jismoniy indekslangan to'g'ridan-to'g'ri xaritalangan darajasi-2 keshi va 4 KiB virtual xotira sahifalari bo'lgan protsessorni ko'rib chiqing. Ketma-ket ketma-ket fizik sahifalar keshdagi ketma-ket joylashuvlarni xaritada 256 sahifadan keyin naqsh o'ralganicha joylashtiradi. Keshning qayeriga o'tishi mumkinligini ko'rsatish uchun har bir jismoniy sahifani 0-255 rang bilan belgilashimiz mumkin. Turli xil rangdagi jismoniy sahifalardagi joylar keshda ziddiyatga olib kelishi mumkin emas.

Keshdan maksimal darajada foydalanishga harakat qilayotgan dasturchilar o'z dasturlarining kirish tartiblarini tartibga solishi mumkin, shunda istalgan vaqtda faqat 1 MiB ma'lumotlar keshga olinishi kerak, shuning uchun imkoniyatlar yo'qolishidan saqlanish mumkin. Ammo ular shuningdek, kirish sxemalarida ziddiyatlarni o'tkazib yubormasliklarini ta'minlashi kerak. Ushbu muammo haqida o'ylashning bir usuli bu dastur ishlatadigan virtual sahifalarni ajratish va ularga virtual ranglarni avval fizik ranglarga fizik ranglar qanday tayinlangan bo'lsa, xuddi shunday berish. Keyin dasturchilar o'z kodlarining kirish naqshlarini bir xil virtual rangga ega ikkita sahifa bir vaqtning o'zida ishlatilmasligi uchun tartibga solishi mumkin. Bunday optimallashtirish bo'yicha keng adabiyotlar mavjud (masalan, pastadir uyasini optimallashtirish), asosan Yuqori samarali hisoblash (HPC) jamiyat.
Download 39,18 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish