Amalga oshirilmagan: tartibli arxitekturada ko'rsatmalar ketma-ket bajariladi, chunki kompilyator ularni ishlayotgan dasturni yaratish uchun yaratgan. Boshqa tomondan, bu eng samarali emas, chunki ba'zilar ko'proq vaqt talab qilishi mumkin yoki yo'riqnomaning natijasini to'sib qo'yadigan hodisani kutib, protsessorda pufakchalar yoki o'lik vaqtlarni kiritishi kerak. Boshqa tomondan, ishdan chiqqan holda u doimiy ravishda protsessorni buyruqdan qat'i nazar, ko'rsatmalar bilan oziqlantirib, ishlab chiqarish vaqtini ko'paytiradi. Bunga men kiritmaydigan algoritmlar orqali erishiladi. Odatda, amaldagi protsessorlarning aksariyati, Intel, AMD, IBM POWER, SPARC, ARM va hk. Olish uchun barcha darajadagi parallellik, quvur liniyasi, superskalar, tartibsiz bajarish, registrning nomini o'zgartirish va boshqalar aralashmasi ishlatiladi. juda ko'p ishlash. Agar ko'proq bilmoqchi bo'lsangiz, maslahatlashishingiz mumkin Flinn taksonomiyasi, tizimlarni ajratib turadigan:
SISD: bitta ma'lumotni faqat bitta ma'lumot bilan qayta ishlashga qodir bo'lgan ishlov berish birligi. Ya'ni, ko'rsatmalar va ma'lumotlarni ketma-ket, birma-bir bajaradi.
SIMD: bitta ko'rsatma va bir nechta ma'lumotlar, bu holda parallellik faqat ma'lumotlar yo'lida bo'ladi va boshqaruv yo'lida emas. Hozirgi ishlov berish birliklari bir vaqtning o'zida bir nechta ma'lumotlarga bir xil ko'rsatmalarni bajarishi mumkin. Bunga mikroprotsessorlarda erishgan vektorli protsessorlar, GPU va ba'zi multimedia kengaytmalari misol bo'ladi (masalan: SSE, XOP, AVX, MMX).
Miss: bu holda parallellik ko'rsatmalar darajasida bo'lib, bitta ma'lumot oqimida bir nechta ko'rsatmalarni bajarishga imkon beradi. Sizda X va Y borligini tasavvur qiling va siz X + Y, XY, X · Y va X / Y ni bir vaqtning o'zida ishlatishingiz mumkin.
MIMD: Bu eng parallel, chunki u bir vaqtning o'zida bir nechta ma'lumotlarga oid bir nechta ko'rsatmalarni bajarishi mumkin.
Xotira tizimlari
Qayta ishlash usuli yoki protsessor birligidan qat'i nazar, xotira kerak. Ammo bu erda biz biroz jiddiy muammolarga duch kelmoqdamiz, chunki parallellik bilan, xotira tizimlari izchil bo'lishi kerak va noto'g'ri ma'lumotlar yaratmaslik uchun bir qator xususiyatlarga ega.
Sizda borligini tasavvur qiling bitta protsessor Qo'shish buyrug'ini bajarayotganda, bu $ Z = Y + X $ deb tasavvur qiling, chunki u holda hech qanday muammo bo'lmaydi, chunki protsessor qo'shimcha buyruqni olib keladi va uning arifmetik birligiga Y va X xotira joylarini qo'shishni aytadi. ma'lumotlar va nihoyat u natijani xotiraning Z holatida saqlaydi. Ammo bir nechta CPU bo'lsa nima bo'ladi? Z = Y + X ni bajaradigan, lekin boshqa CPU B bilan birga X = Y - 2 bajaradigan protsessor A ning xuddi shu misolini tasavvur qiling. Xo'sh, unga qadriyatlarni beraylik har bir harfga: Y = 5, X = 7. Agar shunday bo'lsa, agar protsessor A birinchi bo'lib ishlasa, bizda Z = 5 + 7, ya'ni Z = 12 bo'lar edi. Ammo agar B protsessor birinchi bo'lib ishlasa, X = 5 - 2 = 3, shuning uchun u xotiraga va do'konga kirish huquqiga ega bo'ladi. 3-ni X saqlanadigan manzilda, shuning uchun agar CPU A ushbu holatga kirsa, u xuddi shu ko'rsatmani bajaradi, ammo natijasi Z = 3 + 7, shuning uchun Z = 10 Bizda allaqachon muvaffaqiyatsiz bo'lgan jiddiy muvaffaqiyatsizlik mavjud, aks holda hech narsa to'g'ri ishlamaydi. Shu sababli xotira tizimlari bir qator rivojlangan ushbu izchillikni saqlash usullari va natija to'g'ri bo'lishi uchun qaysi operatsiyani oldin yoki keyin bajarish kerakligini biling. Hatto sizning uy kompyuteringizda ham shunday bo'ladi, chunki hozirda sizda bir xil xotiraga kiradigan bir nechta yadrolar mavjud va bu nafaqat mikrorimitekturalardan foydalaniladi, shuningdek, ko'p o'qish, superskalar tizimlari va tartibsiz ijrodan foydalanadi, bu esa murosaga keladi. tuzatuvchi choralar ko'rilmasa, bunday izchillik. Minglab shular bilan superkompyuterda tasavvur qiling. Lekin albatta, ishlab chiqarish xarajatlarini kamaytirish chiplar ommaviy va texnologiyaning etukligi Tarmoqlar ko'plab o'zaro bog'liq protsessorlarga ega bo'lgan mashinalarga nisbatan tez o'zgarishga olib keldi va shu bilan birga xotira tizimini o'zgartirishga majbur qildi (Qarang: ulanish), chunki uy kompyuterida mavjud bo'lgan muammolar bir vaqtning o'zida ko'plab protsessorlarga ega bo'lish orqali minglab ko'payadi. vaqt o'tishi bilan rivojlanib, barcha protsessor birliklari tomonidan birgalikda ishlatiladigan asosiy xotiraga ega bo'lgan mahkam bog'langan tizimlardan; va har bir protsessor o'zining mustaqil (taqsimlangan) xotirasiga ega bo'lgan tizimlar bilan erkin bog'langan. Boshqa tomondan, so'nggi paytlarda men aytib o'tgan ikkita tizim asta-sekin suyultirilib, yutuqlarga erishilmoqda duragaylash, UMA (Uniform Memory Access) va NUMA (Non-Uniform Memory Access) sxemalari bilan. Agar siz biron bir ma'lumot olishni istasangiz, shunchaki qisqacha aytib bering UMA arxitekturasi xotirani bir xil asosiy asosiy pozitsiyalariga kirish vaqtlari, kirishni amalga oshiradigan protsessordan qat'i nazar, bir xil (men kirishni o'qish yoki yozish operatsiyasi deb tushunaman). Buning sababi shundaki, u markazlashgan. Holbuki NUMA, u bir xil emas va kirish vaqti uni so'ragan protsessorga bog'liq bo'ladi. Ya'ni mahalliy va mahalliy bo'lmagan xotira, boshqacha aytganda, umumiy va jismoniy taqsimlangan xotira mavjud. Siz tushunganingizdek, bu samarali bo'lishi uchun o'rtacha kechikish maksimal darajaga tushirilishi kerak va iloji bo'lsa, protsessor mahalliy ravishda bajaradigan ma'lumotlar va ko'rsatmalarni saqlang.
Do'stlaringiz bilan baham: |