Toshkent axborot texnologiyalari universiteti Farg’ona filiali 713-19-guruh talabasi To’lanov Diyorbekning Kompyuter arxitekturasi fanidan
Amaliy topshiriq
Kesh iyerarxiyasi, yoki ko'p darajali keshlar, xotira arxitekturasiga ishora qiladi, bu ma'lumotni keshlash uchun turli xil kirish tezligiga asoslangan xotira do'konlari iyerarxiyasidan foydalanadi. Juda tez-tez so'raladigan ma'lumotlar tezkor kirish imkoniyatiga ega bo'lgan tezkor xotira do'konlarida keshlanadi markaziy protsessor (Protsessor) yadrolari.
Kesh iyerarxiyasi - bu shakl va uning bir qismi xotira iyerarxiyasi va shakli deb hisoblash mumkin darajali saqlash.[1] Ushbu dizayn protsessor yadrolariga qaramay tezroq ishlashiga imkon berish uchun mo'ljallangan edi xotira kechikishi ning asosiy xotira kirish. Asosiy xotiraga kirish to'siq vazifasini o'tashi mumkin CPU yadrosi ishlashi chunki protsessor ma'lumotlarni kutib turadi, shu bilan birga barcha asosiy xotirani yuqori tezlikda ishlash juda qimmatga tushishi mumkin. Tezkor keshlar - bu protsessor tomonidan eng ko'p ishlatiladigan ma'lumotlarga yuqori tezlikda kirishga imkon beradigan va tezroq ishlashga imkon beradigan murosaga kelish. CPU soat.[2]
Keshni umumiy ko'p darajali tashkil etish
Mundarija
1 Fon
2 Ko'p darajali kesh
2.1 O'rtacha kirish vaqti (AAT)
2.2 Tijorat
2.3 Evolyutsiya
2.4 Ishlash samaradorligi
2.5 Kamchiliklari
3 Xususiyatlari
3.1 Banklangan va birlashtirilgan
3.2 Qo'shish siyosati
3.3 Qoidalarni yozing
3.4 Xususiyga nisbatan umumiy
4 Yaqinda amalga oshirilgan modellar
4.1 Intel Broadwell mikro arxitekturasi (2014)
4.2 Intel Kaby Leyk mikro arxitekturasi (2016)
4.3 AMD Zen mikro arxitekturasi (2017)
4.4 AMD Zen 2 mikro arxitekturasi (2019)
4.5 IBM Power 7
5 Shuningdek qarang
6 Adabiyotlar
Fon
Kompyuter va elektron mikrosxemalarni rivojlantirish tarixida protsessor tezligining oshishi xotiraga kirish tezligining yaxshilanishidan ustun bo'lgan davr bo'lgan.[3] Protsessorlar va xotira tezligi orasidagi farq CPU tez-tez bo'sh holatda bo'lishini anglatardi.[4] Protsessorlar ma'lum vaqt ichida ko'proq hajmdagi ko'rsatmalarni bajarish va bajarishga tobora ko'proq qodir bo'ldilar, ammo asosiy xotiradan ma'lumotlarni olish uchun zarur bo'lgan vaqt dasturlarning ushbu imkoniyatdan to'liq foydalanishiga to'sqinlik qildi.[5] Ushbu masala tezroq protsessorlarning imkoniyatlarini ro'yobga chiqarish uchun kirish tezligi yuqori bo'lgan xotira modellarini yaratishga turtki berdi.[6]
Buning natijasida tushunchasi paydo bo'ldi kesh xotirasi, birinchi tomonidan taklif qilingan Moris Uilks, 1965 yilda Kembrij universitetida ingliz kompyuter olimi. U bunday xotira modellarini "qul xotirasi" deb atagan.[7] Taxminan 1970-1990 yillarda qog'ozlar va maqolalar Anant Agarval, Alan Jey Smit, Mark D. Xill, Tomas R. Puzakva boshqalar kesh xotirasini yaxshiroq tuzilishini muhokama qildilar. Birinchi kesh xotirasi modellari o'sha paytda amalga oshirildi, ammo tadqiqotchilar yaxshi dizaynlarni o'rganib chiqishda va taklif qilishganda ham, tezroq xotira modellariga ehtiyoj saqlanib qoldi. Ushbu ehtiyoj keshning dastlabki modellari ma'lumotlarga kirishning kechikishini yaxshilagan bo'lsa-da, xarajatlar va texnik cheklovlarga nisbatan kompyuter tizimining keshi asosiy xotira hajmiga yaqinlashishi mumkin emas edi. 1990 yildan boshlab, birinchi darajali kesh uchun zaxira sifatida boshqa kesh darajasini (ikkinchi darajali) qo'shish kabi g'oyalar taklif qilindi. Jan-Lup Baer, Ven-Xann Vang, Endryu V. Uilson va boshqalar ushbu model bo'yicha tadqiqotlar o'tkazdilar. Bir nechta simulyatsiya va amalga oshirish ikki darajali kesh modellarining afzalliklarini namoyish qilganda, ko'p darajali keshlar kontseptsiyasi kesh xotiralarining yangi va umuman yaxshiroq modeli sifatida qabul qilindi. 2000 yildan beri ko'p darajali kesh modellari keng e'tiborga sazovor bo'ldi va hozirda ko'plab tizimlarda, masalan Intelning Core i7 mahsulotlarida mavjud bo'lgan uch darajali keshlarda qo'llaniladi.[8]
Ko'p darajali kesh
Har bir buyruqni bajarish uchun asosiy xotiraga kirish sekin ishlashga olib kelishi mumkin, soat tezligi ma'lumotlarni topish va olish uchun zarur bo'lgan vaqtga bog'liq. Ushbu xotira kechikishini protsessordan yashirish uchun ma'lumotlarni keshlash qo'llaniladi.[9] Ma'lumotlar protsessor tomonidan har doim talab qilinadigan bo'lsa, ular asosiy xotiradan olinadi va kesh deb nomlangan kichikroq xotira tarkibida saqlanadi. Agar ushbu ma'lumotlarga qo'shimcha ehtiyoj bo'lsa, kesh avval asosiy xotiraga o'tishdan oldin qidiriladi.[10] Ushbu tuzilma asosiy xotiraga nisbatan ma'lumotlarni qidirish va olish uchun sarflangan vaqt bo'yicha protsessorga yaqinroq joylashgan.[11] Keshdan foydalanishning afzalliklari kesh bilan va xotirasiz xotira iyerarxiyasi uchun o'rtacha kirish vaqtini (AAT) hisoblash orqali isbotlanishi mumkin.[12]
O'rtacha kirish vaqti (AAT)
Kichik hajmdagi keshlar tez-tez o'tkazib yuborilishiga olib kelishi mumkin - agar keshni qidirish kerakli ma'lumotlarni taqdim etmasa - natijada ma'lumotlarni olish uchun asosiy xotiraga qo'ng'iroq qilishimiz mumkin. Shunday qilib, AAT ma'lumotlarini qidiradigan har bir strukturaning o'tkazib yuborish tezligiga ta'sir qiladi.[13]
Asosiy xotira uchun AAT Hit vaqti bilan beriladi asosiy xotira. Keshlar uchun AATni berish mumkin
Vaqtni urishkesh + (Miss stavkakesh × Miss Penaltikeshni yo'qotgandan so'ng asosiy xotiraga o'tish uchun vaqt).[qo'shimcha tushuntirish kerak]
Keshlar uchun urish vaqti asosiy xotira uchun urilgan vaqtdan kam, shuning uchun ma'lumotni olish uchun AAT asosiy xotiraga emas, balki kesh orqali ma'lumotlarga kirishda sezilarli darajada past bo'ladi.[14]
Tijorat
Keshdan foydalanish xotiraning kechikishini yaxshilashi mumkin, ammo bu har doim ham keshlarni tashkil qilish va bosib o'tish usuli tufayli ma'lumotlarni olish uchun vaqt talab qilinadigan yaxshilanishga olib kelmasligi mumkin. Masalan, bir xil o'lchamdagi to'g'ridan-to'g'ri xaritada saqlanadigan keshlar odatda to'liq assotsiatsiyalangan keshlarga qaraganda yuqori o'tkazib yuborish tezligiga ega. Bu, shuningdek, protsessorni sinovdan o'tkazgan kompyuterning mezoniga va ko'rsatmalar namunasiga bog'liq bo'lishi mumkin. Ammo to'liq assotsiativ keshdan foydalanish ko'proq quvvat sarflanishiga olib kelishi mumkin, chunki u har safar butun keshni qidirishi kerak. Shu sababli, quvvatni iste'mol qilish (va unga bog'liq issiqlik) bilan kesh hajmi o'rtasidagi o'zaro bog'liqlik keshni loyihalashda hal qiluvchi ahamiyatga ega bo'ladi.[13]
Evolyutsiya
L3 kesh darajasiga qadar kesh iyerarxiyasi va L1 chipidagi asosiy xotira
Keshni o'tkazib yubormaslik holatida, bunday tuzilmani ishlatishdan maqsad foydasiz bo'lib qoladi va kerakli ma'lumotlarni olish uchun kompyuter asosiy xotiraga o'tishi kerak. Biroq, a ko'p darajali kesh, agar kompyuter protsessorga eng yaqin keshni o'tkazib yuborsa (birinchi darajali kesh yoki L1), u keshning eng yaqin darajasi (lar) ini qidiradi va faqat ushbu usullar bajarilmasa asosiy xotiraga o'tadi. Umumiy tendentsiya L1 keshini kichik va protsessordan 1-2 tsikl tsikli oralig'ida ushlab turish, L1 ga qaraganda ko'proq ma'lumotlarni saqlash uchun keshlarning quyi sathlari hajmi kattalashib boradi, shu sababli uzoqroq, ammo kam sog'inish bilan stavka. Buning natijasida AAT yaxshiroq bo'ladi.[15] Kesh darajalari sonini me'morlar xarajatlar, AAT va o'lchamlar o'rtasidagi kelishmovchiliklarni tekshirgandan so'ng ularning talablariga muvofiq ishlab chiqishi mumkin.[16][17]
Ishlash samaradorligi
Xotira tizimlarini bitta chipga joylashtirishga imkon beradigan texnologiya miqyosi bilan, zamonaviy protsessorlarning aksariyati uch yoki to'rttagacha kesh darajasiga ega.[18] AAT-ning pasayishini ushbu misol orqali tushunish mumkin, bu erda kompyuter AAT-ni L3 keshgacha bo'lgan turli xil konfiguratsiyalar uchun tekshiradi.
Misol: asosiy xotira = 50ns, L1 = 1 ns 10% o'tkazib yuborish tezligi bilan, L2 = 5 ns 1% o'tkazib yuborish tezligi bilan), L3 = 10 ns 0,2% o'tkazib yuborish tezligi bilan.
Kesh yo'q, AAT = 50 ns
L1 kesh, AAT = 1 ns + (0,1 × 50 ns) = 6 ns
L1-2 keshlari, AAT = 1 ns + (0,1 × [5 ns + (0,01 × 50 ns)]) = 1,55 ns
L1-3 keshlari, AAT = 1 ns + (0,1 × [5 ns + (0,01 × [10 ns + (0,002 × 50 ns)])]) = 1,5101 ns
Kamchiliklari
Kesh xotirasi ortadi marjinal xarajat asosiy xotiradan ko'ra va shu bilan umumiy tizim narxini oshirishi mumkin.[19]
Keshlangan ma'lumotlar faqat keshga quvvat berilgandagina saqlanadi.
Xotira tizimi uchun zarur bo'lgan chipdagi maydonning ko'payishi.[20]
Kambag'al bo'lgan katta dasturlarda imtiyozlar minimallashtirilishi yoki yo'q qilinishi mumkin vaqtinchalik mahalliylik, tez-tez asosiy xotiraga kiradigan.[21]
Xususiyatlari
L1 alohida va L2 birlashtirilgan sifatida kesh tashkil qilish
Banklangan va birlashtirilgan
Banklangan keshda kesh ajratilgan keshga bo'linadi ko'rsatma saqlash va ma'lumotlarga bag'ishlangan kesh. Aksincha, birlashtirilgan keshda bir xil keshdagi ko'rsatmalar va ma'lumotlar mavjud.[22] Jarayon davomida L1 keshiga (yoki protsessor bilan bog'lanishiga nisbatan yuqori darajadagi keshga) protsessor ko'rsatmalar va ma'lumotlarni olish uchun murojaat qiladi. Ikkala xatti-harakatni bir vaqtning o'zida amalga oshirilishini talab qilish bir nechta keshlarni va birlashtirilgan keshda ko'proq kirish vaqtini talab qiladi. Bir nechta portga ega bo'lish qo'shimcha qurilmalar va simlarni talab qiladi, bu esa keshlar va protsessorlar o'rtasida muhim tuzilishga olib keladi.[23] Bunga yo'l qo'ymaslik uchun L1 keshi tez-tez banklangan kesh sifatida tashkil etiladi, bu esa kamroq portlar, kam jihozlar va odatda kirish vaqtining past bo'lishiga olib keladi.[13]
Zamonaviy protsessorlarda split keshlar mavjud va ko'p darajali keshlarga ega tizimlarda yuqori darajadagi keshlar birlashtirilib, pastki darajalar bo'linadi.[24]
Qo'shish siyosati
Keshni qamrab oluvchi tashkilot
Keshning yuqori qatlamida mavjud bo'lgan blokning pastki kesh darajasida ham bo'lishi mumkinmi, xotira tizimining inklyuziv, eksklyuziv yoki inklyuziv bo'lmagan (NINE) siyosati bilan boshqariladi.[25]
Inklyuziv siyosat bilan yuqori darajadagi keshdagi barcha bloklar quyi darajadagi keshda ham bo'lishi kerak. Har bir yuqori darajadagi kesh komponenti quyi darajadagi kesh komponentining kichik qismidir. Bunday holda, bloklarning nusxasi bo'lgani uchun, xotiraning ozgina isrof bo'lishi mavjud. Biroq, tekshirish tezroq.[25]
Eksklyuziv siyosat bo'yicha, barcha kesh iyerarxiyasi tarkibiy qismlari to'liq eksklyuziv bo'lib, yuqori darajadagi keshdagi har qanday element pastki kesh tarkibiy qismlarida mavjud bo'lmaydi. Bu kesh xotirasidan to'liq foydalanishga imkon beradi. Biroq, xotiraga kirishning yuqori kechikishi mavjud.[26]
Yuqoridagi qoidalar ularni amalga oshirish uchun bir qator qoidalarga rioya qilishni talab qiladi. Agar ulardan hech biri majburlanmasa, natijada inklyuziya siyosati inklyuziv bo'lmagan (NINE) deb nomlanadi. Bu shuni anglatadiki, yuqori darajadagi kesh pastki darajadagi keshda bo'lishi mumkin yoki bo'lmasligi mumkin.[21]
Qoidalarni yozing
O'zgartirilgan kesh blokining asosiy xotirada yangilanishini belgilaydigan ikkita siyosat mavjud: yozish va qayta yozish.[25]
Siyosat orqali yozish holatida, har doim kesh blokining qiymati o'zgarganda, u quyi darajadagi xotira iyerarxiyasida ham o'zgartiriladi.[27] Ushbu siyosat ma'lumotlar butun ierarxiyada yozilganidek xavfsiz saqlanishini ta'minlaydi.
Ammo, qaytarib yozish siyosatida, o'zgartirilgan kesh bloki kesh bloki chiqarilgandagina quyi darajadagi iyerarxiyada yangilanadi. Har bir kesh blokiga "iflos bit" biriktirilgan va kesh bloki o'zgartirilganda o'rnatiladi.[28] Ko'chirish paytida iflos bit o'rnatilgan bloklar quyi darajadagi ierarxiyaga yoziladi. Ushbu siyosat bo'yicha ma'lumotlar yo'qotilishi xavfi mavjud, chunki ma'lumotlar bazasining eng so'nggi o'zgartirilgan nusxasi faqat keshda saqlanadi va shuning uchun ba'zi tuzatish texnikalariga rioya qilish kerak.
Kesh blokida bayt mavjud bo'lmagan yozuv bo'lsa, bayt keshga yozishni ajratish yoki yozishni ajratish siyosati bilan belgilanishi mumkin.[25] Yozishni taqsimlash siyosati, agar yozishni yo'qotib qo'ygan bo'lsa, blok asosiy xotiradan olinadi va yozishdan oldin keshga joylashtiriladi.[29] Blokni keshda o'tkazib yuborilgan bo'lsa, u ajratishni taqiqlash siyosatida blokni keshga kiritmasdan quyi darajadagi xotira iyerarxiyasida yozadi.[30]
Siyosatlarning umumiy kombinatsiyalari quyidagilardir "yozishni bloklash", "yozishni ajratish" va "yozishni taqiqlash orqali yozish".
Xususiyga nisbatan umumiy
L1 xususiy va L2 va L3 bilan birgalikda kesh-tashkilot
Shaxsiy kesh protsessorning ma'lum bir yadrosiga tayinlangan va unga boshqa yadrolar kira olmaydi. Ba'zi arxitekturalarda har bir yadro o'zining shaxsiy keshiga ega; bu tizim kesh arxitekturasida takrorlanadigan bloklar xavfini keltirib chiqaradi, bu esa imkoniyatlardan foydalanishni kamaytiradi. Shu bilan birga, ko'p qatlamli kesh arxitekturasida ushbu turdagi dizayn tanlovi ma'lumotlarga kirishning kechikishi uchun ham yaxshi bo'lishi mumkin.[25][31][32]
Umumiy kesh - bu bir nechta yadro orqali kirish mumkin bo'lgan kesh.[33] U birgalikda ishlatilganligi sababli, keshdagi har bir blok noyobdir va shuning uchun urish tezligi kattaroqdir, chunki takrorlanadigan bloklar bo'lmaydi. Shu bilan birga, bir nechta yadrolar bir xil keshga kirishga harakat qilganda ma'lumotlarga kirishning kechikishi ko'payishi mumkin.[34]
Yilda ko'p yadroli protsessorlar, keshni birgalikda yoki xususiy qilish uchun dizayn tanlovi protsessor ishiga ta'sir qiladi.[35] Amalda, yuqori darajadagi kesh L1 (yoki ba'zan L2)[36][37] xususiy va quyi darajadagi keshlar birgalikda amalga oshirilganda amalga oshiriladi. Ushbu dizayn yuqori darajadagi keshlar uchun yuqori kirish stavkalarini va pastki darajadagi keshlar uchun kam o'tkazib yuborish stavkalarini ta'minlaydi.
Do'stlaringiz bilan baham: |