uy - Ma'lumotlar
Kesh xotiraning kompyuter ishlashiga ta'siri. Qattiq disk kesh xotirasi nima va u nima uchun kerak?Kesh hajmi nima uchun javob beradi?

Bu naqd pul haqida emas, balki haqida kesh-protsessor xotirasi va boshqalar. Ovoz balandligidan kesh-xotira treyderlari, ayniqsa markaziy protsessorlar va qattiq disklarning keshlari bilan yana bir tijorat fetishini yaratdilar (video kartalarda ham bor - lekin ular hali bunga erisha olishmadi). Shunday qilib, 1MB L2 keshga ega XXX protsessor va 2MB keshga ega aynan bir xil XYZ protsessor mavjud. Tasavvur qiling, qaysi biri yaxshiroq? Oh - buni darhol qilmang!

Kesh-xotira - bu keyinchalik qo'yish mumkin bo'lgan va/yoki qo'yish kerak bo'lgan narsalarni saqlaydigan bufer. Protsessor ishlamoqda va oraliq ma'lumotlarni biror joyda saqlash kerak bo'lganda vaziyatlar yuzaga keladi. Xo'sh, albatta keshda! - Axir, bu RAMga qaraganda tezroq kattalikdagi buyurtmalar, chunki ... u protsessorning o'zida joylashgan va odatda bir xil chastotada ishlaydi. Va keyin, bir muncha vaqt o'tgach, u bu ma'lumotlarni qayta ishlaydi va qayta ishlaydi. Taxminan aytganda, u har safar kartoshkadan (sabzi) boshqa narsaga duch kelganida uni qutiga tashlab yuboradigan konveyerdagi kartoshkani saralovchiga o'xshaydi. Va u to'lganida, u o'rnidan turadi va uni chiqaradi uning keyingi xonaga. Ayni paytda konveyer to'xtab qolgan va ishlamay qolishi kuzatilmoqda. Qutining hajmi kesh bu o'xshashlikda. VA Necha uning Sizga 1MB yoki 12 kerakmi? Bu aniq, agar uning hajmi kichik, siz olib tashlash uchun juda ko'p vaqt sarflashingiz kerak bo'ladi va u oddiy bo'ladi, lekin ma'lum hajmdan uning yanada oshirish hech narsa qilmaydi. Xo'sh, saralovchida 1000 kg sabzi uchun quti bo'ladi - lekin u butun smenada unchalik ko'p bo'lmaydi va bu uni IKKI MARTA TEZDOR qilmaydi! Yana bitta noziklik bor - katta kesh unga kirishda kechikishlarning ko'payishiga olib kelishi mumkin, birinchidan, va shu bilan birga undagi xatolar ehtimoli ortadi, masalan, overclocking paytida - ikkinchidan. (bu holda protsessorning barqarorligi/barqarorligini QANDAY aniqlash va xatolik aynan shu yerda sodir bo'lishini aniqlash haqida uning kesh, test L1 va L2 - bu erda o'qishingiz mumkin.) Uchinchidan - kesh protsessor pallasida chip maydonini va tranzistor byudjetini munosib miqdorda iste'mol qiladi. Xuddi shu narsa uchun ham amal qiladi kesh qattiq disk xotirasi. Va agar protsessor arxitekturasi kuchli bo'lsa, u ko'plab ilovalarda talab qilinadigan 1024 KB yoki undan ko'p keshga ega bo'ladi. Agar sizda tezkor HDD bo'lsa, 16 MB yoki hatto 32 MB mos keladi. Lekin hech qanday 64 MB kesh buni bajarmaydi uning tezroq, agar u yashil versiya (Green WD) deb ataladigan trim bo'lsa, talab qilinadigan 7200 o'rniga 5900 tezlikka ega, hatto ikkinchisida 8 MB bo'lsa ham. Keyin Intel va AMD protsessorlari buni boshqacha ishlatishadi kesh(Umuman olganda, AMD samaraliroq va ularning protsessorlari ko'pincha pastroq qiymatlar bilan qulaydir). Bundan tashqari, Intel kesh umumiy, lekin AMD uchun bu har bir yadro uchun shaxsiydir. Eng tez kesh AMD protsessorlari uchun L1 ma'lumotlar va ko'rsatmalar uchun 64 KB ni tashkil qiladi, bu Intelga qaraganda ikki baravar ko'p. Kesh uchinchi darajali L3 odatda eng yaxshi protsessorlarda mavjud AMD Phenom II 1055T X6 Soket AM3 2,8 gigagertsli yoki raqobatchi Intel Core i7-980X. Avvalo, o'yinlar katta kesh hajmini yaxshi ko'radi. VA kesh Ko'pgina professional dasturlar uni yoqtirmaydi (renderlash, video tahrirlash va professional ilovalar uchun Kompyuterga qarang). Aniqrog'i, eng talabchanlar unga nisbatan umuman befarq. Lekin siz aniq qilmasligingiz kerak bo'lgan narsa bu kesh hajmiga asoslangan protsessorni tanlashdir. Eski Pentium 4 o'zining so'nggi ko'rinishlarida 3 GGts dan yuqori chastotalarda 2 MB keshga ega edi - solishtiring uning taxminan 2 gigagertsli chastotalarda ishlaydigan arzon ikki yadroli Celeron E1*** bilan ishlash. U choldan hech qanday tosh qoldirmaydi. Ko'proq mos misol - deyarli 200 dollar turadigan yuqori chastotali ikki yadroli E8600 (ko'rinishidan, 6 MB kesh tufayli) va atigi 2 MB bo'lgan Athlon II X4-620 2,6 gigagertsli. Bu Atlonning raqibini so'yishiga to'sqinlik qilmaydi.

Grafiklardan ko'rinib turibdiki, yo'q kesh qo'shimcha yadrolarni almashtirmaydi. 2MB keshga ega Athlon (qizil) 6MB keshga ega Cor2Duo-ni, hatto past chastotada va deyarli yarmi narxida ham osonlikcha yengib chiqadi. Ko'pchilik buni ham unutadi kesh video kartalarda mavjud, chunki umuman olganda, ularda protsessorlar ham mavjud. Yaqinda misol GTX460 video kartasi bo'lib, ular nafaqat avtobus va xotira hajmini (xaridor taxmin qiladi) qisqartirishga ham muvaffaq bo'lishadi. KESH shaderlar mos ravishda 512Kb dan 384Kb gacha (xaridor buni taxmin qilmaydi). Va bu ham mahsuldorlikka o'zining salbiy hissasini qo'shadi. Ishlashning kesh hajmiga bog'liqligini bilish ham qiziqarli bo'ladi. Keling, bir xil protsessor misolidan foydalanib, kesh hajmining oshishi bilan qanchalik tez o'sishini ko'rib chiqaylik. Ma'lumki, E6***, E4*** va E2*** seriyali protsessorlar faqat kesh hajmida farqlanadi (har biri mos ravishda 4, 2 va 1 MB). 2400 MGts bir xil chastotada ishlaydigan ular quyidagi natijalarni ko'rsatadi.

Ko'rib turganingizdek, natijalar unchalik farq qilmaydi. Ko'proq aytaman - agar 6 MB sig'imli protsessor jalb qilinganida, natija biroz ko'proq bo'lar edi, chunki protsessorlar to'yinganlikka erishadilar. Ammo 512 Kb bo'lgan modellar uchun pasayish sezilarli bo'ladi. Boshqacha qilib aytganda, 2MB hatto o'yinlar uchun ham etarli. Xulosa qilib, biz quyidagi xulosaga kelishimiz mumkin: kesh boshqa hamma narsa allaqachon ko'p bo'lsa yaxshi. Qattiq disk tezligini yoki kesh hajmi uchun protsessor yadrolari sonini bir xil narxda o'zgartirish sodda va ahmoqlikdir, chunki hatto eng sig'imli saralash qutisi ham boshqa saralagichning o'rnini bosa olmaydi.. Lekin yaxshi misollar ham bor.. Misol uchun, Pentium Dual-Core 65 nm jarayonning dastlabki versiyasida ikkita yadro uchun 1 MB keshga ega edi (E2160 seriyali va shunga o'xshash), va E5200 seriyasining keyingi 45 nm versiyasida hali ham 2 MB mavjud, qolgan barcha narsalar teng ( va eng muhimi, PRICE). Albatta, siz ikkinchisini tanlashingiz kerak.

Kesh - bu so'ralishi mumkin bo'lgan ma'lumotlarni o'z ichiga olgan tezkor kirish oraliq buferi. Keshdagi ma'lumotlarga kirish operativ xotiradan (RAM) dastlabki ma'lumotlarni olishdan tezroq va tashqi xotiradan (qattiq disk yoki qattiq disk) tezroq bo'ladi, shu bilan o'rtacha kirish vaqtini qisqartiradi va kompyuter tizimining umumiy ishlashini oshiradi.

Bir qator markaziy protsessor (CPU) modellari registrlarga qaraganda sekinroq bo'lgan tasodifiy kirish xotirasiga (RAM) kirishni minimallashtirish uchun o'z keshiga ega. Kesh xotirasi operativ xotiraning tezligi protsessor soat tezligidan sezilarli darajada past bo'lsa, sezilarli ishlash afzalliklarini ta'minlaydi. Kesh xotirasi uchun soat tezligi odatda protsessor tezligidan kam emas.

Kesh darajalari

CPU keshi bir necha darajalarga bo'lingan. Bugungi kunda umumiy maqsadli protsessorda darajalar soni 3 tagacha boʻlishi mumkin. N+1-darajali kesh odatda N-darajali keshga qaraganda kattaroq va kirish tezligi va maʼlumotlarni uzatishda sekinroq.

Eng tez xotira birinchi darajali kesh - L1-kesh. Aslida, bu protsessorning ajralmas qismidir, chunki u bir xil chipda joylashgan va funktsional bloklarning bir qismidir. Zamonaviy protsessorlarda L1 keshi odatda ikkita keshga bo'linadi, ko'rsatmalar keshi va ma'lumotlar keshi (Garvard arxitekturasi). L1 keshi bo'lmagan protsessorlarning aksariyati ishlay olmaydi. L1 keshi protsessor chastotasida ishlaydi va umuman olganda, har bir soat siklida foydalanish mumkin. Ko'pincha bir vaqtning o'zida bir nechta o'qish / yozish operatsiyalarini bajarish mumkin. Kirish kechikishi odatda 2-4 yadroli soat siklini tashkil qiladi. Ovoz odatda kichik - 384 KB dan oshmaydi.

Ikkinchi eng tez L2-kesh - ikkinchi darajali kesh, odatda L1 kabi chipda joylashgan. Eski protsessorlarda anakartdagi chiplar to'plami. L2 kesh hajmi 128 KB dan 1?12 MB gacha. Zamonaviy ko'p yadroli protsessorlarda bir xil chipda joylashgan ikkinchi darajali kesh alohida xotira hisoblanadi - umumiy kesh hajmi nM MB, har bir yadro nM/nC MB ga ega, bu erda nC protsessor yadrolari soni. Odatda, yadro chipida joylashgan L2 keshining kechikishi 8 dan 20 yadroli soat tsiklini tashkil qiladi.

Uchinchi darajali kesh eng kam tezdir, lekin u hajmi jihatidan juda ta'sirli bo'lishi mumkin - 24 MB dan ortiq. L3 keshi oldingi keshlarga qaraganda sekinroq, ammo operativ xotiradan sezilarli darajada tezroq. Ko'p protsessorli tizimlarda u umumiy qo'llaniladi va turli L2 lardan ma'lumotlarni sinxronlashtirish uchun mo'ljallangan.

Ba'zan 4-darajali kesh ham mavjud, odatda u alohida chipda joylashgan. 4-darajali keshdan foydalanish faqat yuqori unumdor serverlar va asosiy kadrlar uchun oqlanadi.

Turli keshlar (bir va bir nechta protsessorlar) o'rtasidagi sinxronizatsiya muammosi kesh kogerentligi bilan hal qilinadi. Turli darajadagi keshlar yoki ular aytganidek, kesh arxitekturalari o'rtasida ma'lumot almashishning uchta varianti mavjud: inklyuziv, eksklyuziv va eksklyuziv.

AMD protsessorlari uchun L3 keshi qanchalik muhim?

Haqiqatan ham, ko'p yadroli protsessorlarni barcha mavjud yadrolar tomonidan taqsimlanadigan maxsus xotira bilan jihozlash mantiqan. Ushbu rolda tezkor uchinchi darajali (L3) kesh tez-tez so'raladigan ma'lumotlarga kirishni sezilarli darajada tezlashtirishi mumkin. Keyin yadrolar, agar iloji bo'lsa, sekin asosiy xotiraga (RAM) kirishga majbur bo'lmaydi.

Hech bo'lmaganda nazariy jihatdan. Yaqinda AMD Athlon II X4 protsessorini e'lon qildi, bu L3 keshsiz Phenom II X4 modeli bo'lib, bu unchalik zarur emasligini ko'rsatadi. Kesh ishlashga qanday ta'sir qilishini tekshirish uchun ikkita protsessorni (L3 keshli va keshsiz) to'g'ridan-to'g'ri solishtirishga qaror qildik.

Kattalashtirish uchun rasm ustiga bosing.

Kesh qanday ishlaydi?

Sinovlarga kirishdan oldin, ba'zi bir asoslarni tushunish muhimdir. Kesh qanday ishlashi printsipi juda oddiy. Kesh protsessor so'rovlarini uzoqroq va sekinroq xotiraga kamaytirish uchun protsessorning qayta ishlash yadrolariga iloji boricha yaqinroq ma'lumotlarni buferlaydi. Zamonaviy ish stoli platformalarida kesh ierarxiyasi RAMga kirishdan oldingi uchta darajani o'z ichiga oladi. Bundan tashqari, ikkinchi va, xususan, uchinchi darajali keshlar nafaqat ma'lumotlarni buferlash uchun xizmat qiladi. Ularning maqsadi yadrolar ma'lumot almashishi kerak bo'lganda protsessor avtobusining ortiqcha yuklanishini oldini olishdir.

Xitlar va o'tkazib yuborilganlar

Kesh arxitekturalarining samaradorligi urish tezligi bilan o'lchanadi. Kesh tomonidan qondirilishi mumkin bo'lgan ma'lumotlar so'rovlari xit deb hisoblanadi. Agar ushbu keshda kerakli ma'lumotlar bo'lmasa, so'rov xotira quvuri bo'ylab uzatiladi va o'tkazib yuborilgan hisoblanadi. Albatta, o'tkazib yuborish ma'lumot olish uchun ko'proq vaqt talab qiladi. Natijada, hisoblash quvurida "pufakchalar" (bo'sh turish) va kechikishlar paydo bo'ladi. Xitlar, aksincha, maksimal ishlashni saqlab qolishga imkon beradi.

Keshga kirish, eksklyuzivlik, izchillik

O'zgartirish siyosati yangi yozuvlar uchun keshda bo'sh joy qanday bo'lishini belgilaydi. Keshga yozilgan ma'lumotlar oxir-oqibat asosiy xotirada paydo bo'lishi kerakligi sababli, tizimlar buni keshga yozish (yozish orqali) bilan bir vaqtda amalga oshirishi yoki ma'lumotlar joylarini "iflos" (qayta yozish) deb belgilashi va unga yozishi mumkin. xotira. u keshdan chiqarilganda.

Bir nechta kesh darajalaridagi ma'lumotlar faqat, ya'ni ortiqcha holda saqlanishi mumkin. Keyin ikkita turli kesh ierarxiyasida bir xil ma'lumotlar qatorlarini topa olmaysiz. Yoki keshlar inklyuziv tarzda ishlashi mumkin, ya'ni pastki kesh darajalari yuqori kesh darajalarida (protsessor yadrosiga yaqinroq) mavjud ma'lumotlarni o'z ichiga olishi kafolatlanadi. AMD Phenom eksklyuziv L3 keshidan foydalanadi, Intel esa inklyuziv kesh strategiyasiga amal qiladi. Muvofiqlik protokollari turli yadrolar, kesh darajalari va hatto protsessorlarda ma'lumotlarning yaxlitligi va yangiligini ta'minlaydi.

Kesh hajmi

Kattaroq kesh ko'proq ma'lumotni saqlashi mumkin, ammo kechikishni oshiradi. Bundan tashqari, katta kesh juda ko'p protsessor tranzistorlarini iste'mol qiladi, shuning uchun tranzistorlar byudjeti, o'lchami, quvvat sarfi va ishlash / kechikish o'rtasidagi muvozanatni topish muhimdir.

Assotsiativlik

Operativ xotiradagi yozuvlar to'g'ridan-to'g'ri keshga joylashtirilishi mumkin, ya'ni RAMdan olingan ma'lumotlarning nusxasi uchun faqat bitta kesh pozitsiyasi mavjud yoki ular n-tarmoqli assotsiativ bo'lishi mumkin, ya'ni keshda bu joylashishi mumkin bo'lgan n ta joy mavjud. ma'lumotlar saqlanishi mumkin. Assotsiativlikning yuqori darajalari (to'liq assotsiativ keshlargacha) keshlashda ko'proq moslashuvchanlikni ta'minlaydi, chunki keshdagi mavjud ma'lumotlarni qayta yozish kerak emas. Boshqacha qilib aytganda, yuqori n-darajali assotsiativlik yuqori urish tezligini kafolatlaydi, lekin u kechikishni ham oshiradi, chunki bu barcha assotsiatsiyalarni urish uchun tekshirish uchun ko'proq vaqt kerak bo'ladi. Odatda, eng yuqori assotsiatsiya darajasi keshlashning oxirgi darajasi uchun maqbuldir, chunki u erda maksimal sig'im mavjud va bu keshdan tashqarida ma'lumotlarni qidirish protsessorning sekin RAMga kirishiga olib keladi.

Mana bir nechta misollar: Core i5 va i7 maʼlumotlar uchun 8 tomonlama assotsiativlikka ega 32 KB L1 keshdan va koʻrsatmalar uchun 4 tomonlama assotsiativlikka ega 32 KB L1 keshdan foydalanadi. Intel ko'rsatmalar tezroq mavjud bo'lishini va L1 ma'lumotlar keshi maksimal urish tezligiga ega bo'lishini xohlashi tushunarli. Intel protsessorlaridagi L2 keshi 8 tomonlama assotsiativlikka ega va Intel L3 keshi yanada aqlli, chunki u hitlarni maksimal darajada oshirish uchun 16 tomonlama assotsiativlikni amalga oshiradi.

Biroq, AMD kechikishni kamaytirish uchun ikki tomonlama assotsiativ L1 keshdan foydalanadigan Phenom II X4 protsessorlari bilan boshqa strategiyaga amal qilmoqda. Mumkin bo'lgan xatolarni qoplash uchun kesh hajmi ikki baravar oshirildi: ma'lumotlar uchun 64 KB va ko'rsatmalar uchun 64 KB. L2 keshi Intel dizayni kabi 8 tomonlama assotsiativlikka ega, ammo AMD L3 keshi 48 tomonlama assotsiativlik bilan ishlaydi. Ammo bitta kesh arxitekturasini boshqasiga tanlash qarorini butun CPU arxitekturasini hisobga olmasdan baholash mumkin emas. Sinov natijalari amaliy ahamiyatga ega bo'lishi tabiiydir va bizning maqsadimiz aynan ushbu kompleks ko'p darajali keshlash strukturasini amaliy sinovdan o'tkazish edi.

Har bir zamonaviy protsessorda protsessor ko'rsatmalari va ma'lumotlarini saqlaydigan, deyarli bir zumda foydalanishga tayyor bo'lgan maxsus kesh mavjud. Bu daraja odatda 1-darajali yoki L1 keshi deb ataladi va birinchi marta 486DX protsessorlarida joriy qilingan. So'nggi paytlarda AMD protsessorlari har bir yadro uchun 64 KB L1 kesh (ma'lumotlar va ko'rsatmalar uchun) bilan standartga aylandi va Intel protsessorlari har bir yadro uchun 32 KB L1 keshdan foydalanadi (shuningdek, ma'lumotlar va ko'rsatmalar uchun)

L1 keshi birinchi marta 486DX protsessorlarida paydo bo'ldi, shundan so'ng u barcha zamonaviy protsessorlarning ajralmas xususiyatiga aylandi.

Ikkinchi darajali kesh (L2) Pentium III chiqarilgandan so'ng barcha protsessorlarda paydo bo'ldi, garchi uning qadoqdagi birinchi tatbiqlari Pentium Pro protsessorida bo'lgan (lekin chipda emas). Zamonaviy protsessorlar 6 MB gacha bo'lgan chipdagi L2 kesh bilan jihozlangan. Qoida tariqasida, bu hajm, masalan, Intel Core 2 Duo protsessoridagi ikkita yadro o'rtasida bo'linadi. Odatda L2 konfiguratsiyalari yadro uchun 512 KB yoki 1 MB keshni ta'minlaydi. Kichikroq L2 keshiga ega protsessorlar odatda past narx darajasida bo'ladi. Quyida L2 keshini dastlabki joriy qilish diagrammasi keltirilgan.

Pentium Pro protsessor paketida L2 keshiga ega edi. Pentium III va Athlonning keyingi avlodlarida L2 keshi alohida SRAM chiplari orqali amalga oshirildi, bu o'sha paytda juda keng tarqalgan edi (1998, 1999).

180 nm gacha bo'lgan texnologik texnologiyaning keyingi e'lon qilinishi ishlab chiqaruvchilarga L2 keshini protsessor matritsasiga nihoyat birlashtirishga imkon berdi.


Birinchi ikki yadroli protsessorlar har bir paketga ikkita matritsani o'z ichiga olgan mavjud dizaynlardan foydalanganlar. AMD monolit chipda ikki yadroli protsessorni taqdim etdi, xotira kontrolleri va kalitni qo'shdi va Intel o'zining birinchi ikki yadroli protsessoriga ikkita bitta yadroli chiplarni bitta paketga yig'di.


Birinchi marta L2 keshi Core 2 Duo protsessorlarida ikkita hisoblash yadrolari o'rtasida taqsimlana boshladi. AMD oldinga bordi va o'zining birinchi to'rt yadroli Phenomni noldan yaratdi va Intel xarajatlarni kamaytirish uchun birinchi to'rt yadroli protsessor uchun yana bir juft matritsadan, bu safar ikkita ikki yadroli Core 2 o'lchagichdan foydalandi.

Uchinchi darajadagi kesh Alpha 21165 (96 KB, protsessorlar 1995 yilda taqdim etilgan) yoki IBM Power 4 (256 KB, 2001) protsessorlarining dastlabki kunlaridan beri mavjud. Biroq, x86-ga asoslangan arxitekturalarda L3 keshi birinchi marta Intel Itanium 2, Pentium 4 Extreme (Gallatin, ikkala protsessor 2003 yilda) va Xeon MP (2006) modellarida paydo bo'ldi.

Ilk amalga oshirishlar kesh ierarxiyasining boshqa darajasini ta'minladi, ammo zamonaviy arxitekturalar L3 keshini ko'p yadroli protsessorlarda yadrolararo ma'lumotlarni uzatish uchun katta, umumiy bufer sifatida ishlatadi. Bu assotsiativlikning yuqori n-darajasi bilan ta'kidlanadi. Bir nechta yadrolar asosiy operativ xotiraga juda sekin kirishni ishlatadigan vaziyatga duch kelgandan ko'ra, keshda ma'lumotlarni bir oz ko'proq izlash yaxshiroqdir. AMD birinchi marta yuqorida aytib o'tilgan Phenom liniyasiga ega ish stoli protsessorida L3 keshini taqdim etdi. 65 nm Phenom X4 2 MB umumiy L3 keshiga ega va zamonaviy 45 nm Phenom II X4 allaqachon 6 MB umumiy L3 keshiga ega. Intel Core i7 va i5 protsessorlari 8 MB L3 keshdan foydalanadi.

Zamonaviy to'rt yadroli protsessorlarda har bir yadro uchun ajratilgan L1 va L2 keshlari, shuningdek, barcha yadrolar tomonidan taqsimlangan katta L3 keshlari mavjud. Birgalikda L3 keshi, shuningdek, yadrolar parallel ravishda ishlashi mumkin bo'lgan ma'lumotlarni almashish imkonini beradi.


Assalomu alaykum, do'stlar, keling, protsessor haqida, aniqrog'i, kesh haqida gapiraylik. Protsessor keshi har xil bo'lishi mumkin, masalan, menda Pentium G3220 (1150 soket) bor, bu zamonaviy protsessor va 3 MB keshga ega. Ammo shu bilan birga, Pentium D965 (rozetka 775) eski modeli 4 MB keshga ega. Lekin shu bilan birga, G3220 D965 dan bir necha barobar tezroq, men nima demoqchiman, kesh yaxshi, lekin asosiysi kesh zamonaviy. Eski protsessorlarning kesh xotirasi yangilariga qaraganda ancha sekinroq, buni yodda tuting.

Keling, ishlashga ta'sir qiladigan ba'zi qurilmalar haqida gapiraylik. Qarang, qattiq diskni olaylik, unda kesh bormi? Ha, bor, lekin unchalik katta emas, garchi u ishlashga ozgina ta'sir qilsa ham. Keyin nima bo'ladi? Keyin operativ xotira keladi, dastur yoki protsessor ishlaydigan hamma narsa, bularning barchasi operativ xotiraga joylashtiriladi. Agar RAMda ma'lumot bo'lmasa, u qattiq diskdan o'qiladi va bu juda sekin. Ammo RAM allaqachon juda tez, u juda ko'p bo'lishi mumkin. Ammo RAM qattiq disk bilan solishtirganda tez; protsessor uchun u hali ham tez emas, shuning uchun ikkinchisi ham o'z keshiga ega, bu allaqachon juda tez!

Protsessor keshi nimaga ta'sir qiladi? Aynan shu keshda protsessor tez-tez foydalanadigan narsalarni, ya'ni barcha turdagi buyruqlar va ko'rsatmalarni saqlaydi. Shunga ko'ra, qancha ko'p bo'lsa, shuncha yaxshi, lekin bu butunlay to'g'ri emas. Qancha keshingiz bor? Agar bilmasangiz, men sizga qanday qilib bilishni ko'rsataman, hammasi oddiy. Xo'sh, qarang, qanday qiziqarli vaziyat, keling, yana eski jarayonlarga qaytaylik. Ko'rinishidan, agar kesh ko'p bo'lsa, bu yaxshi. Ammo Q9650 protsessori (775 soket) mavjud, u 12 MB keshga ega, ammo u zamonaviy Core i5 yoki hatto Core i3 modellariga ham yaqin emas. i5-da ancha kam kesh, ya'ni atigi 6 MB, i3-da esa undan ham kamroq kesh - atigi 3 MB.

Umuman olganda, zamonaviy protsessorlar eskilariga qaraganda ancha tezroq ekanligini tushunaman. Lekin men bu haqda gapirmayapman. Kesh va kesh bir-biridan farq qiladi; yuqori darajadagi Q9650 zamonaviy rozetkadagi protsessorlarga qaraganda sekin keshga ega. Shuning uchun, bu 12 MB hech qanday foyda keltirmaydi. Men shuni aytmoqchiman: miqdorni emas, sifatni quv. Shunday qilib. Bularning barchasini sizga eslatma sifatida yozdim, umid qilamanki, sizga foydali bo'ladi

Mana kesh qanday ishlashi haqida oddiy rasm:

Va bu erda yana bir rasm, bu erda boshqa qurilma ham ko'rsatilgan, bu keshda ma'lumotlar bor yoki yo'qligini aytadigan boshqaruvchi:

Kesh xotirasi juda tez. Men protsessorlar haqida unchalik ma'lumotga ega emasman, lekin bilish qiziq bo'lardi, agar bu kesh ... 100 MB ... yoki hatto 1 Gb bo'lsa ... protsessor tezroq bo'larmidi? Bu, albatta, hozir ham ajoyib, lekin hozirda katta hajmdagi keshga ega protsessorlar mavjud... taxminan 30 MB yoki undan ko'p.. Men bunga ishonchim komil emas, lekin bu kesh xotirasi juda qimmat va ko'rinadi. uni protsessorga qo'yish odatda qiyin, men katta hajmni nazarda tutyapman

Xo'sh, endi sizga protsessorda qancha kesh borligini qanday aniqlashni ko'rsataman. Agar sizda Windows 10 bo'lsa, bu juda yaxshi, chunki u barcha keshlarni ko'rsatishi mumkin, u erda uchta daraja mavjud. Uchinchi daraja eng muhim bo'lib tuyulsa-da, u ham eng katta. Shunday qilib, qarang, vazifa menejerini oching va Ishlash yorlig'iga o'ting va bu erda CPU yorlig'ida kesh haqida ma'lumotni ko'rishingiz mumkin, bu erda:

Bu erda menda Pentium G3220 borligini ko'rishingiz mumkin, bu juda yaxshi protsessor, garchi arzon bo'lsa ham. Lekin bu aslida 775-rozetkasidagi ko'plab modellarga qaraganda tezroq, ularni eng yaqin modellar deb atash mumkin va ular juda ko'p keshga ega ... Bular ...

Ammo men sizga ochiq aytaman, bu protsessorda qancha kesh borligini ko'rishning aniq usuli emas. Agar shunday deb o'ylayotgan bo'lsangiz, CPU-Z yordam dasturidan foydalanishni maslahat beraman: ha, bu dastur, men uni o'rnatishim kerak va bularning barchasini, lekin mayli... Keyin to'xtang! Ushbu dastur protsessorlarini overclock qiladigan ajoyib overlokerlar tomonidan qo'llaniladi. O'rnatish vaqtida yordamchi dastur bir nechta fayllarni yaratmaydi va aslida o'rnatish faqat dasturni Dastur fayllariga ochadi, keyin cpuz.exe ni istalgan joyda nusxalash va ishga tushirish mumkin, u ishlaydi! Ular uni ishga tushirishdi va u ma'lumot to'pladi va qarang! Siz uni Internetda osongina yuklab olishingiz mumkin, chunki u har bir burchakda mavjud. Shunchaki siz viruslarni ushlamasligingizga ishonch hosil qiling. Buning uchun, masalan, dasturiy ta'minot portalida yuklab oling, shunchaki CPU-Z yumshoq portal qidiruviga yozing. CPU-Z Windows-ning deyarli barcha versiyalarida ishlaydi, eng qadimgilaridan tashqari...

Umuman olganda, siz uni ushbu saytdan yuklab olishingiz mumkin: cpuid.com, men bu haqda bilmasdim va boshqa saytlardan yuklab olishga odatlanganman!

Umid qilamanki, siz uni muammosiz yuklab olishingiz mumkin. Endi siz uni ishga tushirasiz va protsessor haqida hamma narsa barmoq uchida. Shunday qilib, men CPU-Z-ni ishga tushirdim va bu mening Pentium G3220 haqida ko'rsatgan narsa:

Men qutini aylantirgan joyda kesh ko'rsatiladi. Yo'l nima, yaxshi, 8 tomonlama, 12 yo'l, yaxshi, bu nima ekanligini bilmayman, kechirasiz. Ammo bu erda ko'rib turganingizdek, siz nafaqat keshni, balki boshqa ma'lumotlarni, chastotalarni, yadrolarni va mavzularni ham aniq ko'rishingiz mumkin. Qizig'i shundaki, bu erda bir yoki ikkita kesh nimani ko'rsatadi. Xo'sh, menda bu erda faqat 3 Mbayt yozilgan, ya'ni menda faqat 3 MB kesh bor.

Ammo, masalan, yuqori darajadagi Q9650-ga kelsak, u erda 12 MB kesh mavjud bo'lsa-da, vaziyat biroz boshqacha, ammo bular har biri 6 MB bo'lgan ikkita blokdir va CPU-Z buni aniqlaydi:

Aytgancha, siz ko'rib turganingizdek, 4 gigagertsli tezlikda overclocking mavjud, bu yomon emas. Aytgancha, bunday overclocking havo bilan sovutilgan bo'lishi mumkin. Ammo bu butunlay boshqacha hikoya ...

Aytgancha, yana bir qiziq narsa shundaki, 775-rozetkasidagi modellarda uchinchi darajali L3 keshi yo'q ... Ya'ni, faqat L1 va L2 bor ..., lekin men bilmasdim ...

Shunday qilib, bu narsalar. Umid qilamanki, men hamma narsani aniq yozdim. Yana bir bor takrorlayman, miqdorni ta'qib qilmang. Shuning uchun men, albatta, pushaymon emasman, lekin shunga qaramay ... Qisqasi, men uni oldim va o'zimga 1150 rozetkaga kompyuter qurdim. Xo'sh, menimcha, hammasi yaxshi. Lekin 1151-rozetka chiqarilganini va uning narxi bir xil yoki hatto biroz arzonroq ekanligini bilganimda, men biroz xafa bo'ldim ... Lekin protsessorlar aslida u erda tezroq ... Xo'sh, yaxshi. Men uzoq vaqt davomida kompyuter sotib oldim, lekin mening platam va bu Asus Gryphon Z87 Iblis Kanyon yadrosiga asoslangan protsessorlarni qo'llab-quvvatlaganidan xursand bo'ldim! Bu sovg'a edi, chunki Intel ilgari ushbu protsessorlar faqat Z97 chipsetlari tomonidan qo'llab-quvvatlanishini aytgan edi, lekin men Z87 ni oldim!

Qisqasi, bu narsalar

Hammasi shu yigitlar. Umid qilamanki, siz uchun hammasi yaxshi bo'ladi va bu ma'lumot siz uchun foydali bo'ldi, omad tilaymiz

Uyga! kesh protsessor 07/30/2016

virtmachine.ru

Kesh xotiraning kompyuter ishlashiga ta'siri

Barcha foydalanuvchilar ma'lumotlarni qayta ishlash uchun mas'ul bo'lgan protsessor, shuningdek uni saqlash uchun mas'ul bo'lgan tasodifiy kirish xotirasi (RAM yoki RAM) kabi kompyuter elementlarini yaxshi bilishadi. Ammo protsessor kesh xotirasi (Cache CPU), ya'ni protsessorning o'zi (ultra-RAM deb ataladigan) RAM mavjudligini hamma ham bilmaydi.

Kesh funktsiyasi

Kompyuter dizaynerlarini protsessor uchun ajratilgan xotiradan foydalanishga undagan sabab nima? Kompyuterning operativ xotirasi yetarli emasmi?

Darhaqiqat, uzoq vaqt davomida shaxsiy kompyuterlar kesh-xotirasiz ishlagan. Lekin, siz bilganingizdek, protsessor shaxsiy kompyuterdagi eng tezkor qurilma bo'lib, uning tezligi har bir yangi avlod protsessorlari bilan ortib bordi. Hozirgi vaqtda uning tezligi soniyada milliardlab operatsiyalar bilan o'lchanadi. Shu bilan birga, standart RAM o'z evolyutsiyasi davomida uning ish faoliyatini sezilarli darajada oshirmadi.

Umuman olganda, ikkita asosiy xotira chip texnologiyasi mavjud - statik xotira va dinamik xotira. Ularning dizayni tafsilotlarini o'rganmasdan, biz faqat statik xotira, dinamik xotiradan farqli o'laroq, regeneratsiyani talab qilmasligini aytamiz; Bundan tashqari, statik xotirada bir bit axborot uchun 4-8 tranzistor, dinamik xotirada esa 1-2 tranzistor ishlatiladi. Shunga ko'ra, dinamik xotira statik xotiradan ancha arzon, lekin ayni paytda ancha sekinroq. Hozirgi vaqtda operativ xotira chiplari dinamik xotira asosida ishlab chiqariladi.

Protsessorlar va operativ xotira tezligi nisbatining taxminiy evolyutsiyasi:

Shunday qilib, agar protsessor har doim operativ xotiradan ma'lumot olsa, u sekin dinamik xotirani kutishi kerak bo'ladi va u doimo bo'sh qoladi. Xuddi shu holatda, agar statik xotira operativ xotira sifatida ishlatilsa, kompyuterning narxi bir necha marta oshadi.

Shuning uchun oqilona kelishuv ishlab chiqildi. Operativ xotiraning asosiy qismi dinamik bo'lib qoldi, protsessor esa statik xotira chiplari asosida o'zining tezkor kesh xotirasiga ega bo'ldi. Uning hajmi nisbatan kichik - masalan, ikkinchi darajali kesh hajmi bir necha megabaytni tashkil qiladi. Ammo shuni esda tutish kerakki, birinchi IBM PC kompyuterlarining operativ xotirasi 1 MB dan kam edi.

Bundan tashqari, keshlash texnologiyasini joriy etishning maqsadga muvofiqligi, shuningdek, operativ xotirada joylashgan turli ilovalar protsessorni turlicha yuklashi va buning natijasida boshqalarga nisbatan ustuvor ishlov berishni talab qiladigan juda ko'p ma'lumotlar mavjudligi bilan bog'liq.

Kesh tarixi

To'g'risini aytganda, kesh xotirasi shaxsiy kompyuterlarga o'tishidan oldin u bir necha o'n yillar davomida superkompyuterlarda muvaffaqiyatli qo'llanilgan.

Birinchi marta i80386 protsessoriga asoslangan shaxsiy kompyuterda atigi 16 KB kesh xotirasi paydo bo'ldi. Bugungi kunda zamonaviy protsessorlar birinchisidan (eng kichik hajmdagi eng tez kesh - odatda 128 KB) uchinchi (eng katta hajmdagi eng sekin kesh - o'nlab MB gacha)gacha bo'lgan turli darajadagi keshlardan foydalanadilar.

Dastlab protsessorning tashqi keshi alohida chipda joylashgan edi. Biroq, vaqt o'tishi bilan bu kesh va protsessor o'rtasida joylashgan avtobusning ma'lumotlar almashinuvini sekinlashtirib, tiqilib qolishiga olib keldi. Zamonaviy mikroprotsessorlarda kesh xotiraning birinchi va ikkinchi darajalari protsessor yadrosining o'zida joylashgan.

Uzoq vaqt davomida protsessorlar faqat ikkita kesh darajasiga ega edi, ammo Intel Itanium CPU birinchi bo'lib barcha protsessor yadrolari uchun umumiy bo'lgan uchinchi darajali keshga ega edi. To'rt darajali keshga ega protsessorlarning ishlanmalari ham mavjud.

Kesh arxitekturasi va tamoyillari

Bugungi kunda kesh xotirasini tashkil etishning ikkita asosiy turi ma'lum bo'lib, ular kibernetika sohasidagi birinchi nazariy ishlanmalardan kelib chiqadi - Prinston va Garvard arxitekturalari. Prinston arxitekturasi ma'lumotlar va buyruqlarni saqlash uchun yagona xotira maydonini nazarda tutadi, Garvard arxitekturasi esa alohida joylarni nazarda tutadi. Ko'pchilik x86 shaxsiy kompyuter protsessorlari alohida turdagi kesh xotiradan foydalanadi. Bundan tashqari, zamonaviy protsessorlarda kesh xotirasining uchinchi turi ham paydo bo'ldi - operatsion tizim virtual xotirasi manzillarini jismoniy xotira manzillariga o'tkazishni tezlashtirish uchun mo'ljallangan assotsiativ tarjima buferi.

Kesh xotirasi va protsessor o'rtasidagi o'zaro ta'sirning soddalashtirilgan diagrammasini quyidagicha tasvirlash mumkin. Birinchidan, protsessor eng tez birinchi darajali keshda, so'ngra ikkinchi darajali keshda va hokazolarda protsessor uchun zarur bo'lgan ma'lumotlarning mavjudligini tekshiradi. Agar biron bir kesh darajasida kerakli ma'lumotlar topilmasa, ular buni xato yoki keshni o'tkazib yuborish deb atashadi. Agar keshda umuman ma'lumot bo'lmasa, protsessor uni operativ xotiradan yoki hatto tashqi xotiradan (qattiq diskdan) olishi kerak.

Protsessorning xotiradagi ma'lumotlarni qidirish tartibi:

Protsessor ma'lumotni shunday izlaydi

Kesh-xotiraning ishlashini va uning protsessorning hisoblash birliklari, shuningdek, operativ xotira bilan o'zaro ta'sirini boshqarish uchun maxsus kontroller mavjud.

Protsessor yadrosi, kesh va RAMning o'zaro ta'sirini tashkil qilish sxemasi:


Kesh-kontroller protsessor, operativ xotira va kesh xotirasi o'rtasidagi asosiy aloqadir

Shuni ta'kidlash kerakki, ma'lumotlarni keshlash ko'plab texnologiyalar va matematik algoritmlardan foydalanadigan murakkab jarayondir. Keshlashda ishlatiladigan asosiy tushunchalar orasida kesh yozish usullari va kesh assotsiativlik arxitekturasi mavjud.

Kesh yozish usullari

Kesh xotirasiga ma'lumot yozishning ikkita asosiy usuli mavjud:

  1. Qayta yozish usuli - ma'lumotlar avval keshga, so'ngra ma'lum shartlar yuzaga kelganda RAMga yoziladi.
  2. Yozish usuli - ma'lumotlar bir vaqtning o'zida RAM va keshga yoziladi.

Kesh assotsiativlik arxitekturasi

Kesh assotsiativlik arxitekturasi RAMdan olingan ma'lumotlarni keshga joylashtirish usulini belgilaydi. Assotsiativlik arxitekturasini keshlashning asosiy variantlari:

  1. To'g'ridan-to'g'ri xaritalangan kesh - keshning ma'lum bir qismi RAMning ma'lum bir qismi uchun javobgardir
  2. To'liq assotsiativ kesh - keshning istalgan qismi operativ xotiraning istalgan qismi bilan bog'lanishi mumkin
  3. Aralash kesh (to'plam-assotsiativ)

Turli kesh darajalari odatda turli kesh assotsiativlik arxitekturalaridan foydalanishi mumkin. To'g'ridan-to'g'ri xaritalangan RAM keshlash eng tez keshlash variantidir, shuning uchun bu arxitektura odatda katta keshlar uchun ishlatiladi. O'z navbatida, to'liq assotsiativ keshda kamroq kesh xatolari (o'tkazib yuborilgan) mavjud.

Xulosa

Ushbu maqolada siz kesh xotirasi tushunchasi, kesh xotira arxitekturasi va keshlash usullari bilan tanishdingiz va uning zamonaviy kompyuterning ishlashiga qanday ta'sir qilishini bilib oldingiz. Kesh xotirasining mavjudligi protsessorning ishlashini sezilarli darajada optimallashtirishi, uning bo'sh vaqtini qisqartirishi va natijada butun tizimning ishlashini oshirishi mumkin.

biosgid.ru

Protsessor kesh effektlari galereyasi

Deyarli barcha ishlab chiquvchilar protsessor keshi yaqinda tashrif buyurilgan xotira maydonlaridan ma'lumotlarni saqlaydigan kichik, ammo tez xotira ekanligini bilishadi - ta'rif qisqa va juda aniq. Biroq, kod ishlashiga ta'sir qiluvchi omillarni tushunish uchun kesh mexanizmlari haqida zerikarli tafsilotlarni bilish kerak.

Ushbu maqolada biz keshlarning turli xususiyatlarini va ularning ishlashga ta'sirini ko'rsatadigan bir qator misollarni ko'rib chiqamiz. Misollar C# tilida bo'ladi; til va platformani tanlash ishlashni baholash va yakuniy xulosalarga katta ta'sir qilmaydi. Tabiiyki, oqilona chegaralar ichida, agar siz massivdagi qiymatni o'qish xesh-jadvalga kirishga teng bo'lgan tilni tanlasangiz, hech qanday talqin qilinadigan natijalarga erisha olmaysiz. Tarjimonning eslatmalari kursiv bilan yozilgan.

Habrakut - - -

1-misol: Xotiraga kirish va ishlash
Sizningcha, ikkinchi davr birinchisiga qaraganda qanchalik tez? int arr = yangi int;

For (int i = 0; i // second for (int i = 0; i 2-misol: kesh satrlarining taʼsiri) Chuqurroq qazib olaylik - faqat 1 va 16 emas, boshqa qadam qiymatlarini ham sinab koʻring: for (int i = 0; i)

E'tibor bering, 1 dan 16 gacha bo'lgan qadam qiymatlari bilan ish vaqti deyarli o'zgarmaydi. Ammo 16 dan katta qiymatlar bilan, har safar qadamni ikki barobarga oshirganimizda, ish vaqti taxminan yarmiga kamayadi. Bu loop qandaydir sehrli tarzda tezroq ishlay boshlaydi, degani emas, shunchaki takrorlashlar soni ham kamayadi. Asosiy nuqta - 1 dan 16 gacha bo'lgan qadam qiymatlari bilan bir xil ish vaqti.

Buning sababi shundaki, zamonaviy protsessorlar xotiraga bir vaqtning o'zida bir bayt emas, balki kesh satrlari deb ataladigan kichik bloklarda kirishadi. Odatda satr hajmi 64 baytni tashkil qiladi. Xotiradan biron bir qiymatni o'qiganingizda, keshga kamida bitta kesh qatori kiradi. Ushbu qatordan istalgan qiymatga keyingi kirish juda tez. 16 int qiymati 64 baytni egallaganligi sababli, 1 dan 16 gacha bo'lgan bosqichli tsikllar bir xil miqdordagi kesh qatorlariga, aniqrog'i, massivning barcha kesh satrlariga kirishadi. 32-bosqichda kirish har ikkinchi qatorga, 64-bosqichda, har to'rtinchi qatorga sodir bo'ladi. Buni tushunish ba'zi optimallashtirish usullari uchun juda muhimdir. Unga kirishlar soni ma'lumotlarning xotiradagi joylashuviga bog'liq. Masalan, tekislanmagan ma'lumotlar asosiy xotiraga bitta emas, balki ikkita kirishni talab qilishi mumkin. Yuqorida bilib olganimizdek, ish tezligi ikki baravar past bo'ladi.

3-misol: 1 va 2-darajali kesh o'lchamlari (L1 va L2)
Zamonaviy protsessorlar odatda L1, L2 va L3 deb ataladigan ikki yoki uch darajadagi keshlarga ega. Turli darajadagi keshlarning o'lchamlarini bilish uchun siz CoreInfo yordam dasturidan yoki Windows API-ning GetLogicalProcessorInfo funktsiyasidan foydalanishingiz mumkin. Ikkala usul ham har bir daraja uchun kesh qatori hajmi haqida ma'lumot beradi. Mening kompyuterimda CoreInfo 32 KB L1 ma'lumotlar keshlari, 32 KB L1 ko'rsatmalar keshlari va 4 MB L2 ma'lumotlar keshlari haqida xabar beradi. Har bir yadro o'zining shaxsiy L1 keshlariga ega, L2 keshlari har bir juft yadro uchun umumiydir: Mantiqiy protsessordan kesh xaritasi: *--- Ma'lumotlar keshi 0, 1-darajali, 32 KB, Assoc 8, LineSize 64 *--- Yo'riqnoma keshi 0, 1-darajali, 32 KB, Assoc 8, LineSize 64 -*-- Maʼlumotlar keshi 1, 1-darajali, 32 KB, Assoc 8, LineSize 64 -*-- Yoʻriqnoma keshi 1, 1-darajali, 32 KB, Assoc 8, LineSize 64 ** -- Birlashtirilgan kesh 0, 2-darajali, 4 MB, Assoc 16, LineSize 64 --*- Ma'lumotlar keshi 2, 1-darajali, 32 KB, Assoc 8, LineSize 64 --*- Yo'riqnoma keshi 2, 1-darajali, 32 KB, Assoc 8, LineSize 64 ---* Maʼlumotlar keshi 3, 1-darajali, 32 KB, Assoc 8, LineSize 64 ---* Yoʻriqnoma keshi 3, 1-darajali, 32 KB, Assoc 8, LineSize 64 --** Birlashtirilgan kesh 1 , 2-darajali, 4 MB, Assoc 16, LineSize 64 Keling, ushbu ma'lumotni eksperimental tarzda tekshirib ko'ramiz. Buni amalga oshirish uchun keling, har 16-qiymatni oshirib, massivimizni ko'rib chiqamiz - bu har bir kesh satridagi ma'lumotlarni o'zgartirishning oson usuli. Biz oxiriga yetganimizda, biz boshiga qaytamiz. Keling, turli massiv o'lchamlarini tekshirib ko'raylik; massiv endi turli darajadagi keshlarga mos kelmasa, unumdorlikning pasayishini ko'rishimiz kerak. Kod: int qadamlar = 64 * 1024 * 1024; // iteratsiyalar soni int lengthMod = arr.Length - 1; // massiv hajmi -- ikkining kuchi

uchun (int i = 0; i (

// x & lengthMod = x % arr.Length, chunki ikkining kuchi

Arr[(i * 16) & lengthMod]++; ) Sinov natijalari:

Mening mashinamda 32 KB va 4 MB dan keyin sezilarli pasayishlar mavjud - bu L1 va L2 keshlarining o'lchamlari.

4-misol: Ko‘rsatma parallelligi
Endi boshqa narsani ko'rib chiqaylik. Sizningcha, bu ikki halqadan qaysi biri tezroq bajariladi? int qadamlari = 256 * 1024 * 1024; int a = new int;

For (int i = 0; i // second for (int i = 0; i 5-misol: kesh assotsiativligi) keshni loyihalashda javob berilishi kerak boʻlgan asosiy savollardan biri maʼlum bir xotira maydonidagi maʼlumotlarni istalgan joyda saqlash mumkinmi yoki yoʻqmi? kesh xujayralari yoki faqat ba'zilarida. Uchta mumkin bo'lgan yechim:

  1. To'g'ridan-to'g'ri xaritalangan kesh, RAMdagi har bir kesh liniyasi ma'lumotlari faqat bitta oldindan belgilangan kesh joyida saqlanadi. Xaritalashni hisoblashning eng oddiy usuli: xotirada row_index_% cache_cells soni. Bitta katakka moslashtirilgan ikkita satr bir vaqtning o'zida keshda bo'lishi mumkin emas.
  2. N-kirish qisman-assotsiativ kesh, har bir satr N xil kesh joylarida saqlanishi mumkin. Misol uchun, 16 ta yozuvli keshda chiziq guruhni tashkil etuvchi 16 hujayradan birida saqlanishi mumkin. Odatda, indekslarning eng kam muhim bitlari teng bo'lgan qatorlar bitta guruhni bo'lishadi.
  3. To'liq assotsiativ kesh, har qanday satr istalgan kesh joyida saqlanishi mumkin. Yechim o'z xatti-harakati bo'yicha xesh jadvaliga teng.
To'g'ridan-to'g'ri xaritalangan keshlar tortishuvlarga moyil bo'ladi, masalan, ikkita qator bir xil katak uchun raqobatlashsa, navbat bilan keshdan bir-birini chiqarib yuborsa, samaradorlik juda past bo'ladi. Boshqa tomondan, to'liq assotsiativ keshlar, garchi bu kamchilikdan xoli bo'lsa-da, amalga oshirish juda murakkab va qimmat. Qisman assotsiativ keshlar amalga oshirishning murakkabligi va samaradorligi o'rtasidagi odatiy kelishuvdir. Misol uchun, mening kompyuterimda 4 MB L2 kesh 16 kirishli qisman assotsiativ keshdir. Butun operativ xotira indekslarining eng kam ahamiyatli bitlariga ko'ra chiziqlar to'plamiga bo'lingan, har bir to'plamdagi chiziqlar 16 L2 kesh hujayralaridan iborat bitta guruh uchun raqobatlashadi.

L2 keshida 65 536 hujayra (4 * 220 / 64) va har bir guruh 16 hujayradan iborat bo'lganligi sababli, bizda jami 4096 guruh mavjud. Shunday qilib, qator indeksining pastki 12 biti ushbu qator qaysi guruhga tegishli ekanligini aniqlaydi (212 = 4,096). Natijada, manzillari 262 144 (4 096 * 64) ga karrali satrlar 16 hujayradan iborat bir xil guruhni bo'lishadi va undagi bo'sh joy uchun raqobatlashadi.

Assotsiativlik ta'siri kuchga kirishi uchun biz doimiy ravishda bir xil guruhdagi ko'p sonli qatorlarga kirishimiz kerak, masalan, quyidagi kod yordamida: public static long UpdateEveryKthByte(byte arr, int K) (

const int rep = 1024 * 1024; // takrorlashlar soni

Sekundomer sw = Sekundomer.StartNew();

Uchun (int i = 0; i p += K; agar (p >= arr.Length) p = 0; ) sw.Stop();

qaytish sw.ElapsedMilliseconds;

) Usul massivning har bir K elementini oshiradi. Biz oxiriga yetganimizda, biz yana boshlaymiz. Juda ko'p takrorlashdan so'ng (220), biz to'xtab qolamiz. Turli massiv o‘lchamlari va K qadam qiymatlari uchun yugurishlar qildim.Natijalar (ko‘k – uzoq ish vaqti, oq – qisqa):

Moviy joylar doimiy ma'lumotlar o'zgarishi bilan kesh barcha kerakli ma'lumotlarni bir vaqtning o'zida joylashtira olmaydigan holatlarga mos keladi. Yorqin ko'k rang taxminan 80 ms, deyarli oq - 10 ms ish vaqtini bildiradi.

Keling, ko'k joylar bilan shug'ullanamiz:

  1. Nima uchun vertikal chiziqlar paydo bo'ladi? Vertikal chiziqlar bir guruhdan juda ko'p satrlarga (16 dan ortiq) kirish mumkin bo'lgan qadam qiymatlariga mos keladi. Ushbu qiymatlar uchun mening mashinamning 16-yozuv keshi barcha kerakli ma'lumotlarni sig'dira olmaydi.

    Ba'zi yomon qadam qiymatlari ikkita kuchdir: 256 va 512. Masalan, qadam 512 va 8 MB massivni ko'rib chiqing. Ushbu qadam bilan massivda 32 ta bo'lim mavjud (8 * 220 / 262,144), ular 512 kesh guruhidagi (262,144 / 512) hujayralar uchun bir-biri bilan raqobatlashadi. 32 ta bo'lim mavjud, ammo har bir guruh uchun keshda faqat 16 ta hujayra mavjud, shuning uchun hamma uchun joy etarli emas.

    Ikkining kuchiga ega bo'lmagan boshqa qadam qiymatlari shunchaki omadsizdir, bu bir xil kesh guruhlariga ko'p sonli zarbalarni keltirib chiqaradi, shuningdek, rasmda vertikal ko'k chiziqlar paydo bo'lishiga olib keladi. Shu nuqtada, raqamlar nazariyasini sevuvchilar o'ylashga taklif qilinadi.

  2. Nima uchun vertikal chiziqlar 4 MB chegarasida uziladi? Massiv hajmi 4 MB yoki undan kam bo'lsa, 16-yozuvli kesh o'zini to'liq assotsiativ kesh kabi tutadi, ya'ni u massivdagi barcha ma'lumotlarni ziddiyatlarsiz joylashtira oladi. Bitta kesh guruhi uchun kurashayotgan 16 dan ortiq maydon mavjud emas (262 144 * 16 = 4 * 220 = 4 MB).
  3. Nima uchun yuqori chap tomonda katta ko'k uchburchak bor? Chunki kichik qadam va katta massiv bilan kesh barcha kerakli ma'lumotlarni sig'dira olmaydi. Bu erda kesh assotsiativlik darajasi ikkinchi darajali rol o'ynaydi; cheklash L2 keshining hajmiga bog'liq. Masalan, massiv o'lchami 16 MB va qadam 128 bo'lsa, biz har 128 baytga kiramiz va shu bilan har ikkinchi massiv kesh qatorini o'zgartiramiz. Keshdagi har ikkinchi qatorni saqlash uchun sizga 8 MB kesh kerak bo'ladi, lekin mening kompyuterimda faqat 4 MB bor.

    Kesh to'liq assotsiativ bo'lsa ham, unda 8 MB ma'lumotni saqlashga ruxsat bermaydi. Esda tutingki, 512 qadam va massiv o'lchami 8 MB bo'lgan allaqachon muhokama qilingan misolda barcha kerakli ma'lumotlarni saqlash uchun bizga atigi 1 MB kesh kerak, ammo kesh assotsiativligi etarli emasligi sababli bu mumkin emas.

  4. Nima uchun uchburchakning chap tomoni asta-sekin kuchayib boradi? Maksimal intensivlik 64 baytlik qadam qiymatida sodir bo'ladi, bu kesh chizig'ining o'lchamiga teng. Birinchi va ikkinchi misollarda ko'rganimizdek, bir qatorga ketma-ket kirish deyarli hech qanday xarajat qilmaydi. Aytaylik, 16 baytlik qadam bilan bizda bitta narxga to'rtta xotiraga kirish imkoniyati mavjud. Har qanday qadam qiymati uchun testimizda iteratsiyalar soni bir xil bo'lganligi sababli, arzonroq qadam kamroq ishlashga olib keladi.
Topilgan effektlar katta parametr qiymatlarida saqlanib qoladi:

Kesh assotsiativligi ma'lum sharoitlarda o'zini namoyon qilishi mumkin bo'lgan qiziqarli narsadir. Ushbu maqolada muhokama qilingan boshqa muammolardan farqli o'laroq, bu unchalik jiddiy emas. Bu, albatta, dasturlarni yozishda doimiy e'tibor talab qiladigan narsa emas.

6-misol: Keshni noto'g'ri qismlarga ajratish
Ko'p yadroli mashinalarda siz boshqa muammoga duch kelishingiz mumkin - kesh uyg'unligi. Protsessor yadrolarida qisman yoki butunlay alohida keshlar mavjud. Mening mashinamda L1 keshlari alohida (odatdagidek) va har bir yadro juftligi tomonidan taqsimlangan ikkita L2 keshlari ham mavjud. Tafsilotlar farq qilishi mumkin, lekin umuman olganda, zamonaviy ko'p yadroli protsessorlar ko'p darajali ierarxik keshlarga ega. Bundan tashqari, eng tezkor, ammo eng kichik keshlar alohida yadrolarga tegishli.

Bitta yadro keshidagi qiymatni o'zgartirsa, boshqa yadrolar endi eski qiymatdan foydalana olmaydi. Boshqa yadrolarning keshlaridagi qiymat yangilanishi kerak. Bundan tashqari, butun kesh liniyasi yangilanishi kerak, chunki keshlar chiziq darajasidagi ma'lumotlarda ishlaydi.

Keling, ushbu muammoni quyidagi kod bilan ko'rsatamiz: private static int s_counter = new int;

xususiy void UpdateCounter (int pozitsiyasi)

{

uchun (int j = 0; j ( s_counter = s_counter + 3; )

Agar to'rt yadroli mashinamda men ushbu usulni bir vaqtning o'zida to'rtta ipdan 0, 1, 2, 3 parametrlari bilan chaqirsam, ish vaqti 4,3 soniyani tashkil qiladi. Ammo agar men 16, 32, 48, 64 parametrlari bilan usulni chaqirsam, unda ish vaqti atigi 0,28 soniya bo'ladi. Nega? Birinchi holda, har qanday vaqtda iplar tomonidan qayta ishlangan to'rtta qiymat bitta kesh qatorida tugashi mumkin. Har safar bitta yadro qiymatni oshirganda, u boshqa yadrolardagi ushbu qiymatni o'z ichiga olgan kesh hujayralarini yaroqsiz deb belgilaydi. Ushbu operatsiyadan so'ng barcha boshqa yadrolar qatorni yana keshlashi kerak bo'ladi. Bu keshlash mexanizmini ishlamay qoldiradi va ishlashni o'ldiradi.

7-misol: Uskunaning murakkabligi
Hozir ham, kesh bilan ishlash tamoyillari siz uchun sir bo'lmasa ham, apparat sizga kutilmagan hodisalar beradi. Protsessorlar bir-biridan optimallashtirish usullari, evristika va boshqa amalga oshirish nozikliklari bilan farqlanadi.

Ba'zi protsessorlarning L1 keshi, agar ular turli guruhlarga tegishli bo'lsa, ikkita katakka parallel ravishda kirishlari mumkin, lekin ular bir guruhga tegishli bo'lsa, faqat ketma-ket. Men bilishimcha, ba'zilar bir xil hujayraning turli choraklariga parallel ravishda kirishlari mumkin.

Protsessorlar sizni aqlli optimallashtirish bilan ajablantirishi mumkin. Misol uchun, soxta kesh almashish haqidagi oldingi misoldagi kod mening uy kompyuterimda mo'ljallangan tarzda ishlamaydi - eng oddiy hollarda protsessor ishni optimallashtirishi va salbiy ta'sirlarni kamaytirishi mumkin. Agar siz kodni biroz o'zgartirsangiz, hamma narsa joyiga tushadi. Gʻalati apparat gʻaroyibotlarining yana bir misoli: private static int A, B, C, D, E, F, G;

shaxsiy statik bo'shliq G'alati ()

{

for (int i = 0; i ( ) ) Agar siz uch xil variantni almashtirsangiz, quyidagi natijalarni olishingiz mumkin:

A, B, C, D maydonlarini oshirish A, C, E, G maydonlarini oshirishdan ko'ra ko'proq vaqt oladi. Bundan ham g'alati tomoni shundaki, A va C maydonlarini ko'paytirish A, C va E, G maydonlariga qaraganda ko'proq vaqt oladi. Men buni bilmayman. Buning sabablari nimada ekanligiga ishonch hosil qiling, lekin ehtimol ular xotira banklari bilan bog'liq (ha, oddiy uch litrli jamg'arma xotira banklari bilan, va siz o'ylagandek emas). Agar sizda bu masala bo'yicha biron bir fikringiz bo'lsa, iltimos, sharhlarda gapiring.

Mening mashinamda yuqorida aytilganlar kuzatilmaydi, ammo ba'zida g'ayritabiiy yomon natijalar mavjud - katta ehtimollik bilan vazifalarni rejalashtiruvchi o'zining "tuzatishlarini" qiladi.

Ushbu misoldan olinadigan saboq shundaki, apparatning harakatini to'liq bashorat qilish juda qiyin. Ha, siz ko'p narsalarni bashorat qilishingiz mumkin, ammo o'lchov va sinov orqali o'z bashoratlaringizni doimiy ravishda tasdiqlashingiz kerak.

Xulosa
Umid qilamanki, yuqorida muhokama qilingan hamma narsa protsessor keshlarining dizaynini tushunishga yordam berdi. Endi siz kodingizni optimallashtirish uchun ushbu bilimlarni amalda qo'llashingiz mumkin. * Manba kodi Source Code Highlighter bilan ta'kidlangan. Teglar:

Protsessor unumdorligini oshiradigan muhim omillardan biri bu kesh xotirasining mavjudligi, aniqrog'i uning hajmi, kirish tezligi va darajalar o'rtasida taqsimlanishi.

Ancha vaqtdan beri deyarli barcha protsessorlar ushbu turdagi xotira bilan jihozlangan, bu uning mavjudligining foydaliligini yana bir bor isbotlaydi. Ushbu maqolada biz kesh xotirasining tuzilishi, darajalari va amaliy maqsadi haqida gapiramiz, bu juda muhim. protsessor xususiyatlari.

Kesh xotira nima va uning tuzilishi

Kesh-xotira - bu protsessor tomonidan tez-tez foydalaniladigan ma'lumotlarni vaqtincha saqlash uchun ishlatiladigan o'ta tezkor xotira. Xotiraning bu turini qisqacha ta'riflashimiz mumkin.

Kesh-xotira flip-floplarda qurilgan bo'lib, ular o'z navbatida tranzistorlardan iborat. Transistorlar guruhi bir xil kondansatörlarga qaraganda ko'proq joy egallaydi Operativ xotira. Bu ishlab chiqarishda ko'plab qiyinchiliklarni, shuningdek, hajmdagi cheklovlarni keltirib chiqaradi. Shuning uchun kesh xotira juda qimmat xotira bo'lib, unchalik katta bo'lmagan hajmga ega. Ammo bu strukturadan bunday xotiraning asosiy afzalligi - tezlik keladi. Flip-floplar regeneratsiyaga muhtoj emasligi va ular yig'iladigan eshikning kechikish vaqti kichik bo'lgani uchun, flip-flopni bir holatdan ikkinchisiga o'tkazish vaqti juda tez sodir bo'ladi. Bu kesh xotiraning zamonaviy protsessorlar bilan bir xil chastotalarda ishlashiga imkon beradi.

Bundan tashqari, muhim omil kesh xotirasini joylashtirishdir. U protsessor chipining o'zida joylashgan bo'lib, u kirish vaqtini sezilarli darajada kamaytiradi. Ilgari, ba'zi darajadagi kesh xotirasi protsessor chipidan tashqarida, anakartning biron bir joyida maxsus SRAM chipida joylashgan edi. Endi deyarli barcha protsessorlar protsessor chipida joylashgan kesh xotirasiga ega.


Protsessor keshi nima uchun ishlatiladi?

Yuqorida aytib o'tilganidek, kesh xotirasining asosiy maqsadi protsessor tomonidan tez-tez ishlatiladigan ma'lumotlarni saqlashdir. Kesh kichik hajmga qaramay (taxminan 4-16 MB) ma'lumotlar yuklanadigan buferdir. zamonaviy protsessorlar, u har qanday dasturda sezilarli ish faoliyatini oshiradi.

Kesh xotiraga bo'lgan ehtiyojni yaxshiroq tushunish uchun, keling, kompyuter xotirasini ofis kabi tashkil qilishni tasavvur qilaylik. RAM katta ma'lumotlar bloklarini (ya'ni papkalarni) olish uchun buxgalter vaqti-vaqti bilan kiradigan papkalarga ega shkaf bo'ladi. Va jadval kesh xotirasi bo'ladi.

Buxgalterning stoliga qo'yilgan elementlar bor, u bir soat davomida bir necha marta murojaat qiladi. Masalan, bu telefon raqamlari, hujjatlarning ba'zi namunalari bo'lishi mumkin. Ushbu turdagi ma'lumotlar to'g'ridan-to'g'ri stolda joylashgan bo'lib, bu o'z navbatida ularga kirish tezligini oshiradi.

Xuddi shu tarzda, o'sha katta ma'lumotlar bloklari (papkalari) dan ma'lumotlar tez foydalanish uchun jadvalga qo'shilishi mumkin, masalan, hujjat. Ushbu hujjat endi kerak bo'lmaganda, u yana kabinetga (RAMga) joylashtiriladi, shu bilan jadvalni tozalaydi (kesh xotirasi) va keyingi vaqt ichida foydalaniladigan yangi hujjatlar uchun ushbu jadvalni bo'shatadi.

Shuningdek, kesh xotirasi bilan, agar yana kirish ehtimoli yuqori bo'lgan ma'lumotlar mavjud bo'lsa, RAMdan olingan ma'lumotlar kesh xotirasiga yuklanadi. Ko'pincha, bu joriy ma'lumotlardan keyin ishlatilishi mumkin bo'lgan ma'lumotlarni birgalikda yuklash orqali sodir bo'ladi. Ya'ni, "keyin" nima ishlatilishi haqida taxminlar mavjud. Bu murakkab ishlash tamoyillari.

Protsessor kesh darajalari

Zamonaviy protsessorlar ko'pincha 2 yoki 3 darajadan iborat kesh bilan jihozlangan. Albatta, istisnolar mavjud, lekin bu ko'pincha shunday bo'ladi.

Umuman olganda, quyidagi darajalar bo'lishi mumkin: L1 (birinchi daraja), L2 (ikkinchi daraja), L3 (uchinchi daraja). Endi ularning har biri haqida bir oz ko'proq:

Birinchi darajali kesh (L1)- to'g'ridan-to'g'ri protsessor yadrosi bilan ishlaydigan eng tezkor kesh xotirasi darajasi, bu qattiq shovqin tufayli ushbu daraja eng qisqa kirish vaqtiga ega va protsessorga yaqin chastotalarda ishlaydi. Bu protsessor va ikkinchi darajali kesh o'rtasidagi buferdir.

Biz yuqori unumli Intel Core i7-3770K protsessoridagi hajmlarni ko'rib chiqamiz. Ushbu protsessor 4x32 KB L1 kesh 4 x 32 KB = 128 KB bilan jihozlangan. (har bir yadro uchun 32 KB)

Ikkinchi darajali kesh (L2)- ikkinchi daraja birinchisiga qaraganda kattaroqdir, ammo buning natijasida pastroq "tezlik xususiyatlari" mavjud. Shunga ko'ra, u L1 va L3 darajalari o'rtasida bufer bo'lib xizmat qiladi. Agar biz Core i7-3770 K misolimizga yana qarasak, L2 kesh xotirasi hajmi 4x256 KB = 1 MB.

3-darajali kesh (L3)- uchinchi daraja, yana, avvalgi ikkiga qaraganda sekinroq. Ammo u hali ham RAMdan ancha tezroq. i7-3770K da L3 kesh hajmi 8 MB. Agar oldingi ikki daraja har bir yadro tomonidan taqsimlangan bo'lsa, unda bu daraja butun protsessor uchun umumiydir. Ko'rsatkich juda mustahkam, ammo haddan tashqari emas. Masalan, i7-3960X kabi Extreme seriyali protsessorlar uchun bu 15 MB, ba'zi yangi Xeon protsessorlari uchun esa 20 dan ortiq.



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshetning yangilangan versiyasi.Acer smartfonlariga kamdan-kam tashrif buyuradi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS