Bit darajadagi parallellik: Biz hammamiz mikroprotsessorlarning 4-bit, 8-bit, 16-bit, 32-bit va hozirgi 64-bitdan qanday rivojlanganligini ko'rdik (garchi ba'zi bir multimedia kengaytmalari bilan 128, 256, 512 va hk). Bu shuni anglatadiki, bitta ko'rsatma ko'proq ma'lumot yoki ancha uzoqroq ma'lumotlarni boshqarishi mumkin.
Ma'lumotlar darajasidagi parallellik: skaler ma'lumotlar o'rniga biz ko'rsatmalar ishlaydigan vektorlarni yoki ma'lumotlar matritsalarini ishlatamiz. Masalan, skaler X + Y, DLP esa X3X3X1X0 + Y3Y2Y1Y0 ga to'g'ri keladi. Bu men ushbu bit kengaytmalarni bit darajasidagi parallellikda aytib o'tgan ko'rsatmalar to'plamida bajaradigan narsadir.
Ko'rsatma darajasida parallellik: soat tsikli uchun bir nechta ko'rsatmalarni qayta ishlashga mo'ljallangan texnikalar. Ya'ni, CPI-ga erishing <1. Va bu erda biz unga erishish uchun asosiy usul sifatida quvur liniyasini, superskalar arxitekturasini va boshqa texnologiyalarni keltirishimiz mumkin.
Vazifa darajasidagi parallellik: Men multithreading yoki multithreadingni, ya'ni operatsion tizim yadrosi rejalashtiruvchisi tomonidan taklif qilingan bir nechta mavzularni yoki vazifalarni bir vaqtning o'zida bajarilishini nazarda tutayapman. Shuning uchun, bu holda dasturiy ta'minot har bir jarayonni parallel ravishda bajarilishi mumkin bo'lgan oddiy vazifalarga bo'linishga imkon beradi. Agar Linuxda ps buyrug'ini -L opsiyasi bilan ishlatsangiz, LWP (Lightweight Proccess) identifikatori bilan ustun paydo bo'ladi, ya'ni engil jarayon yoki ip. Ushbu parallellikka erishish yo'llari bir necha:
CMP (MultiProcessor Chip): ya'ni bir nechta yadrolardan foydalaning va har biri ipni qayta ishlaydi.
Ko'p ishlov berish: har bir protsessor yoki yadro bir vaqtning o'zida bir nechta ipni qayta ishlashi mumkin. Va ko'p ishlov berish doirasida biz bir nechta metodologiyani ajratib ko'rsatishimiz mumkin:
Vaqtinchalik ko'p ishlov berish yoki o'ta ishlov berish: bu UltraSPARC T2 kabi ba'zi bir mikroprotsessorlardan foydalaniladi, shunda u bitta va boshqa ipni qayta ishlash o'rtasida o'zgarib turadi, lekin ular ikkalasi ham bir vaqtning o'zida parallel ravishda qayta ishlanmaydi.
Bir vaqtning o'zida multithreading yoki SMT (Bir vaqtning o'zida MultiThreading): bu holda ular parallel ravishda qayta ishlanib, protsessor resurslarini dinamik ravishda rejalashtirishga va bir nechta translyatsiyalarni amalga oshirishga imkon beradi. Buni AMD yoki Intel ishlatadi, garchi Intel HyperThreading savdo belgisini ro'yxatdan o'tkazgan bo'lsa ham, bu SMTdan boshqa narsa emas. Biroq, AMD Zen-da SMTni qabul qilishdan oldin, AMD o'zining Fusion-da CMT (Clustered MultiThreading) ni ishlatgan, ya'ni mantiqiy yadrolarga emas, balki fizikaviy yadrolarga asoslangan multithread. Boshqacha qilib aytganda, SMT-da har bir yadro yoki protsessor bu vazifalarni parallel ravishda bajarish uchun bir nechta mantiqiy yadrolar kabi harakat qiladi, boshqa tomondan, CMT-da ushbu multithreadingni bajarish uchun bir nechta fizik yadrolardan foydalaniladi ...
Do'stlaringiz bilan baham: |