O’zbekiston Respublikasi Axborot Texnologiyalari va Kommunikatsiyalarini Rivojlantirish Vazirligi
Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti.
Samarqand filiali
MUSTAQIL ISH
Mavzu: Multidasturlash va multiprotsessorlash
Bajardi: Farmonov U
Tekshirdi:
Toshkent 2024
Mavzu: Multi dasturlash va multiprotsessorlash Reja:
Ko'p yadroli protsessor
Dasturiy ta'minotni parallellashtirish
Kompyuter arxitekturasida multithreading
Xulosa
Foydalanilgan adabiyotlar
Multidasturlash va multiprotsessorlash
Ko'p yadroli protsessor - bu har biri dastur ko'rsatmalarini o'qigan va bajaradigan yadro deb nomlangan, ikkita yoki undan ortiq alohida ishlov berish birligi bo'lgan bitta integral mikrosxemadagi kompyuter protsessori. Ko'rsatmalar oddiy protsessor ko'rsatmalari (masalan, ma'lumotlarni qo'shish, ko'chirish va filiallarni qo'shish), lekin bitta protsessor bir vaqtning o'zida alohida yadrolarda ko'rsatmalarni bajarishi mumkin, bu esa ko'p qirrali yoki boshqa parallel hisoblash texnikasini qo'llab- quvvatlaydigan dasturlarning umumiy tezligini oshiradi. Ishlab chiqaruvchilar odatda yadrolarni bitta integral mikrosxemaga (chip ko'p protsessori yoki CMP deb nomlanuvchi) yoki bitta chip paketidagi bir nechta matritsaga birlashtiradilar. Hozirda deyarli barcha shaxsiy kompyuterlarda ishlatiladigan mikroprotsessorlar ko'p yadroli.
CPU-mahalliy daraja-1 keshlari va umumiy, ikkinchi darajadagi 2-kesh bilan umumiy ikki yadroli protsessor diagrammasi.
Ko'p yadroli protsessor bitta jismoniy paketda ko'p ishlov berishni amalga oshiradi. Dizaynerlar ko'p yadroli qurilmadagi yadrolarni mahkam yoki yumshoq tarzda birlashtirishi mumkin. Masalan, yadrolar keshlarni bo'lishishi mumkin yoki bo'lmasligi mumkin va ular xabarlarni uzatish yoki umumiy xotirada yadrolararo aloqa usullarini qo'llashlari mumkin. Yadrolarni o'zaro bog'lash uchun ishlatiladigan umumiy tarmoq topologiyalariga avtobus, halqa, ikki o'lchovli mash va to'sin kiradi. Bir hil ko'p yadroli tizimlarga faqat bir xil yadrolar kiradi; heterojen ko'p yadroli tizimlarda bir xil bo'lmagan yadrolar mavjud (masalan, big.LITTLE bir xil buyruqlar to'plamiga ega bo'lgan heterojen yadrolarga ega, AMD tezlashtirilgan protsessor birliklarida esa bir xil ko'rsatmalar to'plamiga ega bo'lmagan yadrolar mavjud). Xuddi bitta protsessorli tizimlarda bo'lgani kabi, ko'p yadroli tizimlardagi yadrolar VLIW, superscalar, vector yoki multithread kabi arxitekturalarni amalga oshirishi mumkin.
An Intel Core 2 Duo E6750 dual-core processor
Ko'p yadroli protsessorlar ko'plab dastur sohalarida keng qo'llaniladi, jumladan umumiy maqsadlar uchun mo'ljallangan, o'rnatilgan, tarmoq, raqamli signallarni qayta ishlash (DSP) va grafikalar (GPU). Asosiy hisoblash hatto o'nlabga ko'payadi va 10 000 dan ortiq ixtisoslashgan chiplar uchun va superkompyuterlarda (ya'ni chiplar klasterlari) hisoblash 10 milliondan oshishi mumkin.
An AMD Athlon X2 6400+ dual-core processor
Ko'p yadroli protsessordan foydalanish natijasida erishilgan ko'rsatkichlarning yaxshilanishi foydalaniladigan dasturiy ta'minot algoritmlariga va ularni amalga oshirishga bog'liq. Xususan, mumkin bo'lgan yutuqlar dasturiy ta'minotning bir nechta yadrolarda bir vaqtning o'zida parallel ravishda ishlashi mumkin bo'lgan qismi bilan cheklangan; bu ta'sir Amdahl qonuni bilan tavsiflanadi. Eng yaxshi holatda, sharmandali parallel muammolar deb ataladigan narsa, yadro soniga yaqin tezlikni oshiruvchi omillarni amalga oshirishi mumkin, yoki agar muammo har bir yadro keshiga mos keladigan darajada bo'linib ketgan bo'lsa, juda sekinroq asosiy tizim xotirasidan foydalanishni oldini olish . Dasturchilar barcha muammolarni qayta ko'rib chiqishda taqiqlangan miqdordagi kuch sarflamasalar, aksariyat dasturlar shunchalik tezlashtirilmaydi.
Dasturiy ta'minotni parallellashtirish tadqiqotning doimiy davom etadigan mavzusidir. Ko'p protsessorli dasturlarning birlashtirilishi tarmoq arxitekturasini loyihalashda moslashuvchanlikni ta'minlaydi. Parallel modellar ichida moslashuvchanlik ushbu protokollardan foydalanadigan tizimlarning qo'shimcha xususiyati hisoblanadi.
Kompyuter arxitekturasida multithreading - bu markaziy protsessor (protsessor) (yoki ko'p yadroli protsessordagi bitta yadro) ning bir vaqtning o'zida operatsion tizim tomonidan qo'llab-quvvatlanadigan bir nechta ijro etilishini ta'minlash qobiliyati.
Ushbu yondashuv ko'p ishlov berishdan farq qiladi. Ko'p ishlangan dasturda iplar bitta yoki bir nechta yadrolarning resurslarini baham ko'radi, ular tarkibiga hisoblash birliklari, protsessor keshlari va tarjima ko'rinishidagi bufer (TLB) kiradi.
Ko'p ishlov berish tizimlari bir yoki bir nechta yadrolarda bir nechta to'liq ishlov berish birliklarini o'z ichiga oladigan bo'lsa, ko'p ishlov berish iplar darajasidagi parallellik va buyruqlar darajasidagi parallellik yordamida bitta yadrodan foydalanishni oshirishga qaratilgan. Ikkala texnika bir-birini to'ldirganligi sababli, ular deyarli barcha zamonaviy tizimlar arxitekturalarida bir nechta ko'p qirrali protsessorlar va ko'p yadroli yadroli protsessorlar bilan birlashtirilgan.
Dasturlashning eng past darajasida bajariladigan kod individual protsessor tomonidan qo'llab-quvvatlanadigan mashina tili ko'rsatmalaridan iborat - odatda markaziy protsessor (CPU) yoki grafik protsessor (GPU). Mashina tili kompyuterning holatini oldingi holatidan o'zgartiradigan protsessor ko'rsatmalarini bildiruvchi ikkilik qiymatlar guruhlaridan iborat. Masalan, ko'rsatma kompyuterdagi ma'lum bir saqlash joyida saqlanadigan qiymatni o'zgartirishi mumkin - bu foydalanuvchi bevosita kuzatib bo'lmaydigan ta'sir. Ko'rsatma, shuningdek, kirish yoki chiqarish bo'yicha ko'plab operatsiyalardan birini bajarishi mumkin, masalan, ba'zi bir matnlarni kompyuter ekranida aks ettirish; foydalanuvchiga ko'rinadigan holat o'zgarishini keltirib chiqaradi. Protsessor ko'rsatmalarni berilgan tartibda bajaradi, agar boshqa buyruqqa "o'tish" ko'rsatmasi berilmasa yoki operatsion tizim tomonidan to'xtatilsa.
2015 yilga kelib, aksariyat shaxsiy kompyuterlar, smartfonlar qurilmalari va serverlarida bir nechta ijro etuvchi birliklari bo'lgan protsessorlar mavjud yoki bir nechta protsessorlar birgalikda hisoblashni amalga oshirmoqdalar va hisoblashlar o'tmishdagiga qaraganda ancha faollashib bormoqda.
Dasturiy ta'minotning aksariyati yuqori darajadagi dasturlash tillarida yozilgan. Ular dasturchilar uchun osonroq va samaraliroq, chunki ular mashina tillariga qaraganda tabiiy tillarga yaqinroq. Yuqori darajadagi tillar kompilyator yoki tarjimon yoki ikkalasining kombinatsiyasi yordamida mashina tiliga tarjima qilinadi. Dasturiy ta'minot, shuningdek, kompyuterning kompyuter tilidagi ko'rsatmalariga kuchli mos keladigan va assambleyer yordamida mashina tiliga tarjima qilingan, past darajadagi yig'ilish tilida yozilishi mumkin.
|