SMP arxitekturasi Protsessorlar umumiy xotiraga ega bo'lganligi sababli, undan oqilona foydalanish va ma'lumotlarni muvofiqlashtirish zarurati tug'iladi. Ko'p protsessorli tizimda bir nechta keshlar umumiy xotira resursi uchun ishlaydi. Kesh muvofiqligi - bu umumiy manba uchun alohida keshlarda saqlangan ma'lumotlarning yaxlitligini ta'minlaydigan kesh xususiyati. Ushbu kontseptsiya xotira kogerentligi kontseptsiyasining alohida holati bo'lib, bu erda bir nechta yadrolar umumiy xotiraga kirish huquqiga ega. Agar biz ushbu tushunchalarni umumiy ma'noda tasvirlab beradigan bo'lsak, rasm quyidagicha bo'ladi: bir xil ma'lumotlar bloki turli xil keshlarga yuklanishi mumkin, bu erda ma'lumotlar turli usullar bilan qayta ishlanadi. Maʼlumotlarni oʻzgartirish bildirishnomalaridan foydalanmaslik xatolikka olib keladi. Kesh muvofiqligi bunday ziddiyatlarni hal qilish va keshlardagi ma'lumotlarning izchilligini saqlash uchun mo'ljallangan. SMP tizimlari - bu Flynn tasnifidagi hisoblash tizimlarining MIMD (ko'p instruktsiyali ko'p ma'lumotlar) kichik guruhi. Ushbu tasnifga ko'ra, deyarli barcha turdagi parallel tizimlarni MIMD deb tasniflash mumkin.
Ko'p protsessorli tizimlarning turlarga bo'linishi xotiradan foydalanish printsipiga ko'ra bo'linish asosida sodir bo'ladi. Ushbu yondashuv quyidagi muhim turlarni ajratish imkonini berdi. Ko'p protsessorli tizimlar - ko'p protsessorlar (umumiy xotiraga ega ko'p protsessorli tizimlar) va ko'p kompyuterlar (alohida xotiraga ega tizimlar). Parallel hisoblashlarda ishlatiladigan umumiy ma'lumotlar sinxronizatsiyani talab qiladi. Ma'lumotlarni sinxronlashtirish vazifasi eng muhim muammolardan biri bo'lib, uni ko'p protsessorli va ko'p yadroli va shunga mos ravishda kerakli dasturiy ta'minotni ishlab chiqishda hal qilish muhandislar va dasturchilarning ustuvor vazifasidir. Ma'lumot almashish xotirani jismoniy ajratish orqali amalga oshirilishi mumkin. Ushbu yondashuv yagona bo'lmagan xotiraga kirish (NUMA) deb ataladi.
Ushbu tizimlarga quyidagilar kiradi:
• Ma'lumotlarni taqdim etish uchun faqat individual protsessor keshlari qo'llaniladigan tizimlar (faqat kesh xotirasi arxitekturasi).
• Turli protsessorlar uchun mahalliy keshlarning uyg'unligini ta'minlovchi tizimlar (kesh-kogerent NUMA).
• Kesh kogerentligini (keshsiz kogerent NUMA) apparat tatbiq etmagan holda individual protsessor xotirasiga umumiy foydalanishni ta'minlovchi tizimlar.
Ko'p protsessorli tizimlarni yaratish muammosini soddalashtirishga taqsimlangan umumiy xotiradan foydalanish orqali erishiladi, ammo bu usul parallel dasturlashning murakkabligini sezilarli darajada oshirishga olib keladi.
Bir vaqtning o'zida ko'p oqim Nosimmetrik ko'p ishlov berishning yuqoridagi barcha kamchiliklariga asoslanib, ishlashni yaxshilashning boshqa usullarini ishlab chiqish va ishlab chiqish mantiqan to'g'ri keladi. Agar siz protsessordagi har bir alohida tranzistorning ishlashini tahlil qilsangiz, siz juda qiziq bir faktga e'tibor qaratishingiz mumkin - ko'pgina hisoblash operatsiyalarini bajarishda protsessorning barcha komponentlari ishtirok etmaydi (so'nggi tadqiqotlarga ko'ra, barcha tranzistorlarning taxminan 30 foizi). Shunday qilib, agar protsessor, aytaylik, oddiy arifmetik operatsiyani bajarsa, protsessorning ko'p qismi ishlamayapti, shuning uchun uni boshqa hisob-kitoblar uchun ishlatish mumkin. Shunday qilib, agar protsessor hozirda real operatsiyalarni bajarayotgan bo'lsa, u holda bo'sh qismga butun sonli arifmetik operatsiya yuklanishi mumkin. Protsessorga yukni oshirish uchun siz protsessorning apparat mantig'ida juda ko'p murakkablikni talab qiladigan operatsiyalarning spekulyativ (yoki kutilgan) bajarilishini yaratishingiz mumkin. Agar siz dasturda bir-biridan mustaqil ravishda bajarilishi mumkin bo'lgan iplarni (buyruqlar ketma-ketligini) oldindan aniqlasangiz, bu vazifani sezilarli darajada soddalashtiradi (bu usul apparat darajasida osonlik bilan amalga oshiriladi).
Ko'p yadroli
Multithreading texnologiyasi ko'p yadroli dasturiy ta'minotni amalga oshirishdir. Ishlashning yanada oshishi, har doimgidek, protsessorning apparatidagi o'zgarishlarni talab qiladi. Tizimlar va arxitekturalarning murakkabligi har doim ham samarali emas. Qarama-qarshi fikr bor: "hamma narsa oddiy!". Darhaqiqat, protsessorning ishlashini oshirish uchun uning soat chastotasini oshirish, mantiqiy va apparat tarkibiy qismlarini murakkablashtirish umuman shart emas, chunki mavjud texnologiyani ratsionalizatsiya qilish va takomillashtirish kifoya. Bu usul juda foydali - protsessorning issiqlik tarqalishini oshirish, mikrosxemalarni ishlab chiqarish uchun yangi qimmat uskunalarni ishlab chiqish muammosini hal qilishning hojati yo'q. Ushbu yondashuv ko'p yadroli texnologiya doirasida amalga oshirildi - bir kristalda bir nechta hisoblash yadrolarini amalga oshirish. Agar biz asl protsessorni olsak va unumdorlikni oshirishning bir necha usullarini amalga oshirishda unumdorlik yutuqlarini solishtirsak, unda ko'p yadroli texnologiyadan foydalanish eng yaxshi variant ekanligi ayon bo'ladi. Agar simmetrik ko'p protsessor va ko'p yadroli arxitekturani solishtirsak, ular deyarli bir xil bo'lib chiqadi. Asosiy kesh ko'p darajali bo'lishi mumkin (mahalliy va umumiy, operativ xotiradan olingan ma'lumotlar to'g'ridan-to'g'ri L2 keshiga yuklanishi mumkin). Ko'p yadroli protsessor arxitekturasining ko'rib chiqilgan afzalliklariga asoslanib, ishlab chiqaruvchilar unga e'tibor berishadi. Ushbu texnologiyani amalga oshirish juda arzon va ko'p qirrali bo'lib chiqdi, bu esa uni keng bozorga chiqarishga imkon berdi.
Zamonaviy kompyuter uskunalari bozoriga nazar tashlasangiz, to'rt va sakkiz yadroli protsessorli qurilmalar ustunlik qilayotganini ko'rishingiz mumkin. Bundan tashqari, protsessor ishlab chiqaruvchilari tez orada yuzlab qayta ishlash yadrolariga ega protsessorlar bozorda paydo bo'lishini da'vo qilmoqda. Ilgari ko'p marta aytilganidek, ko'p yadroli arxitekturaning to'liq salohiyati faqat yuqori sifatli dasturiy ta'minot bilan namoyon bo'ladi.