Guruh
FISH
610-18
Doniyorbek Karimov
Bundan tashqari, ko’p protsessorli va ko’p oqimli kompyuter tizimlari
parallellik tufayli CLP va ILP ni namoyish etishi mumkin deyishimiz mumkin.
Biroq, biz ko’pincha CLP va ILP atamalarini paralel bo’lmagan bir oqimli koddan
ajratib olish uchun cheklab qo’yamiz.
Ko’rsatma darajasidagi parallellik (ILP) - bu kompyuter dasturida bir
vaqtning o’zida qancha operatsiyani bajarish mumkinligini anglatadigan
o’lchovdir. Buyruqlar bajarilishining potentsial ustma-ust tushishi "buyruq
sathidagi parallellik" deb nomlanadi.
Buyruq darajasidagi parallellikni (parallelism extraction) aniqlashda ikkita
yondashuv mavjud:
apparat – dastur kodini bajarishda ish jarayonidagi parallellikni
aniqlashda maxsus protsessor sxemalari qatnashadi;
dasturiy ta’minot – parallellik maxsus protsessor uchun bajariladigan
dastur kodini ishlab chiqaruvchi kompilyator tomonidan aniqlanadi.
Uskuna qatlami dinamik parallellikni, dasturiy qatlam esa statik parallellikni
amalga oshiradi. Zamonaviy yuqori mahsuldor x86 protsessorlari (Intel Pentium 4,
Intel Core) parallel bajarilishning dinamik ketma-ketligi (buyruqdan tashqari
buyruqni bajarish) asosida ishlaydi. Itanium protsessorlarida statik parallellik
ishlatilgan (ammo Itanium 2 gibrid yondashuvdan foydalanadi).
Quyidagi dasturni ko’rib chiqamiz:
1. e = a + b
2. f = c + d
3. m = e * f
3-operatsiya 1 va 2 operatsiyalar natijalariga bog’liq, shuning uchun uni 1 va
2 tugamaguncha hisoblash mumkin emas, ammo 1 va 2 operatsiyalar boshqa
operatsiyalardan mustaqildir, shuning uchun ularni bir vaqtning o’zida hisoblash
mumkin. Har bir operatsiyani bir vaqtning o’zida bajarish mumkin deb hisoblasak,
ushbu uchta ko’rsatma jami ikki birlik vaqt ichida bajarilishi mumkin, bu 3/2
parallellikni ta’minlaydi.
Kompilyator va protsessor yaratuvchilarining maqsadi bir xillikni aniqlash
va undan maksimal darajada foydalanishdir. Oddiy dasturlar odatda ketma-ket ijro
modeli uchun yoziladi, bu yerda buyruqlar dasturchi tomonidan belgilangan
tartibda birin-ketin bajariladi. ILP kompilyatorga va/yoki protsessorga bir nechta
ko’rsatmalarning bajarilishini parallellashtirishga yoki hatto ularni tartibini
o’zgartirishga imkon beradi.
Dasturda qancha ILP mavjudligi uning qo’llanilishiga bog’liq. Kompyuter
grafikasi va ilmiy hisoblash kabi ba’zi sohalarda ularning soni juda katta bo’lishi
mumkin. Biroq, kriptografiya kabi vazifalar juda kam parallellikni namoyish
qilishi mumkin.
Parallellikni aniqlash va undan foydalanish uchun apparat usullari:
Hisoblash konveyeri
Superskalyar
Navbatdan tashqari ijro
Registrlarning nomini o’zgartirish
Spekulyativ ijro
O’tishni bashorat qilish
Oqimli arxitektura - bu ILP aniq ko’rsatilgan arxitekturalarning yana bir
klassi, TRIPS arxitekturasi misol bo’ladi.
IBM System/360 Model 91 kabi mainframelarda ILPni dastlabki tatbiq
etishda nisbatan kichik registr faylining cheklovlarini yengish uchun ILP texnikasi
qo’llanilgan.
Mikroprotsessorlarda
80-yillarning
oxiridan
boshlab
ko’rsatmalar
darajasidagi parallellikning turli shakllari qo’llanila boshlandi. Birinchi
superskalyar protsessorlariga Intel 960CA (1989), IBM Power RS / 6000 (1990),
DEC Alpha 21064 (1992) misol keltirish mumkin. Buyruqlarning tartibsiz
bajarilishi va mikroprotsessorlarda registrlarning nomini o’zgartirish birinchi marta
IBM POWER1 (1990) da amalga oshirildi.
Konveyer liniyasi bo’lgan birinchi IA-32 protsessori Intel 80486 (1989);
birinchi superskalyar IA-32 protsessori Intel Pentium (1993); Buyruqlar tartibsiz
bajarilgan va registrlarning nomlari o’zgartirilgan birinchi IA-32 protsessori - Intel
Pentium Pro (1995).
1999 yildan 2005 yilgacha AMD va Intel asosiy iste’molchilar va serverlar
bozorlari uchun tobora kuchli mikroprotsessorlarni ishlab chiqarish uchun kuchli
raqobatlashdilar. Ushbu davrda chiqarilgan protsessorlarda ikkala kompaniya ham
parallellikdan foydalanish texnikasini ko’rsatmalar darajasida faol ravishda
takomillashtirdi. Masalan, NetBurst arxitekturasida Intel hisoblash konveyerlari
bosqichlarini ko’paytirdi va ularning sonini Pentium 4 Preskottda 31 ga yetkazdi.
Ikkala kompaniya ham protsessorlarning soat tezligini oshirdilar ("gigahertz
poygasi" deb nomlanuvchi), protsessor texnologiyasini protsessor substratiga
yanada ko’proq tranzistorlarga moslashtirish uchun kamaytirdi. Superskalyar
konveyerlaridan foydalanish maqsadida ularning samaradorligi yanada oshirildi.
2005 yil oxiriga kelib, ushbu usullarning barchasi o’zlarini tugatgani aniq
bo’ldi. Dennardning masshtablanishi to’g’risidagi qonuni
ishlamay
qoldi.
Tranzistorlar sonining bir xil o’sish sur’atlarida protsessorlarning ishlash
ko’rsatkichlari ahamiyatsiz darajada oshdi, ammo shu bilan birga protsessorlarning
quvvat sarfi va ularning issiqlik tarqalishi oshib, arzon issiqlik olib tashlash
tizimlarining cheklovlariga yaqinlashdi (elektr quvvati, elektr devori).
2005 yil oxiridan boshlab soat tezligining o’sishi va bir oqimli ishlash
ko’rsatkichlari sezilarli darajada sekinlashdi va mikroprotsessor sanoati
parallellikning boshqa darajalarini, ya’ni oqim va vazifalar darajasida parallellikni
ishlatishga intila boshladi. Bu, o’z navbatida, dasturlash yondashuvlarida o’z aksini
topdi.
Do'stlaringiz bilan baham: |