O`zbekisto n respublikasi axborot tex n ologiyalari va kommu


 VLIW apparat-dasturiy kompleksi



Yüklə 0,88 Mb.
Pdf görüntüsü
səhifə5/7
tarix21.05.2023
ölçüsü0,88 Mb.
#111754
1   2   3   4   5   6   7
Снимок экрана 2023—01—29 в 20.44.34

1.3 VLIW apparat-dasturiy kompleksi
EPIC arxitekturasi VLIW arxitekturasining evolyutsiyasi bo`lib, u EPICga
moslashtirilgan shaklda bo`lsa ham, superskalar arxitekturasining ko`plab
tushunchalarini o`zlashtirgan. Aslini olganda, bu ILP protsessorlarini qanday
yaratishni belgilaydigan "mafkura", shuningdek, ushbu poydevorni qo`llab-
quvvatlovchi me`moriy xususiyatlar to`plamidir. Shu ma`noda, EPIC RISC ga
o`xshaydi: umumiy asosiy tamoyillarga amal qiladigan arxitekturalarning
aniqlovchi sinfi. RISC uchun turli xil ko`rsatmalar to`plami arxitekturasi (ISA)
mavjud bo`lgani kabi, EPIC uchun ham bir nechta ISA bo`lishi mumkin. EPIC
ISA arxitekturasi EPIC xususiyatlaridan qaysi biri foydalanishiga qarab, uni
umumiy maqsadli tizimlar yoki o
ʻ
rnatilgan qurilmalar kabi turli ilovalar uchun
optimallashtirish mumkin. Tijoriy EPIC ISA ning birinchi namunasi IA-64
arxitekturasi edi.Superskalar protsessorlar uchun kod to`g`ri tartibda bajarilsa,
to`g`ri natija beradigan ko`rsatmalar ketma-ketligini o`z ichiga oladi. Kod
ketma-ket algoritmni bildiradi va ma`lum bir ko`rsatmalar to`plamidan
foydalanishdan tashqari, u ishlaydigan uskunaning tabiatini yoki ko`rsatmalarni
bajarishning aniq vaqt tartibini aniq bilmaydi. Superscalar protsessorlar uchun
dasturlardan farqli o`laroq, VLIW kodi protsessor dasturni qanday bajarishi
haqida aniq rejani taklif qiladi (POE - Plan Of Execution, bajarish sxemasi
kompilyatsiya vaqtida statik tarzda yaratiladi). Kod har bir operatsiyani qachon
bajarishini, qaysi funktsional birliklar ishlashini va qaysi registrlarda
operandlarni o`z ichiga olishini aniqlaydi. VLIW kompilyatori talab qilinadigan
bajarilish rekordiga (ROE - Record Of Execution) erishish uchun protsessorning
o`zi haqida to`liq tushunchaga ega bo`lgan bunday bajarish rejasini tuzadi - bu
dasturni bajarish jarayonida haqiqatda sodir bo`ladigan voqealar ketma-ketligi.
Kompilyator POE ni (ko`rsatmalar to`plami arxitekturasi orqali parallellikni
aniq tasvirlab beradi) apparatga o`tkazadi, bu esa o`z navbatida belgilangan
rejani bajaradi. Ushbu reja VLIW ga yuqori darajadagi ILP ga erisha oladigan
nisbatan oddiy apparat vositalaridan foydalanish imkonini beradi. VLIW dan


1
0
farqli o`laroq, superskalar apparat ketma-ket kodga asoslangan POE ni dinamik
ravishda yaratadi. Ushbu yondashuv jismoniy amalga oshirishning
murakkabligini oshirsa-da, superskalar protsessor faqat ish vaqtida aniqlanishi
mumkin bo`lgan omillardan foydalanadigan rejani yaratadi.EPICni yaratishda
o`z oldimizga qo`ygan maqsadlarimizdan biri VLIW-da amalga oshirilgan statik
POE yaratish tamoyilini saqlab qolish, lekin shu bilan birga uni superskalyar
protsessorga o`xshash imkoniyatlar bilan boyitib, yangi arxitekturani yaxshiroq
hisobga olish imkonini beradi. dinamik omillar an`anaviy ravishda VLIWga xos
bo`lgan parallellikni cheklaydi. Ushbu maqsadlarga erishish uchun EPIK
"mafkurasi" ba`zi asosiy tamoyillar asosida qurilgan.Birinchisi, kompilyatsiya
vaqtida ijro rejasini yaratish. EPIC kompilyatorga POE yaratish yukini yuklaydi.
Umuman olganda, arxitektura va jismoniy amalga oshirish kompilyatorning
ushbu vazifani bajarishiga to`sqinlik qilishi mumkin bo`lsa-da, EPIC
protsessorlari kompilyatorga ijro rejasini yaratishga yordam beradigan
funktsiyalarni ta`minlaydi. Ishlash vaqtida EPIC protsessorining xatti-harakati
kompilyator nuqtai nazaridan bashorat qilinadigan va boshqarish mumkin
bo`lishi kerak. Dinamik tartibsiz bajarish kompilyatorni "chalkashtirib
yuborishi" mumkin, shuning uchun u o`z qarorlari protsessor tomonidan
yaratilgan haqiqiy ijro yozuviga qanday ta`sir qilishini "tushunmaydi", shuning
uchun u protsessorning harakatlarini bashorat qila olishi kerak. vazifani yanada
murakkablashtiradi. Bunday holatda, dastur unga buyurgan narsani aniq
bajaradigan protsessor afzalroqdir. Kompilyatsiya vaqtida rejani yaratishning
mohiyati dastur parallelligidan to`liq foydalanish va apparat resurslaridan
maksimal darajada foydalanish, bajarish vaqtini minimallashtirish uchun manba
ketma-ketlik kodini qayta tartiblashdan iborat. Tegishli arxitektura yordamisiz,
bunday qayta tartiblash dasturning to`g`riligini buzishi mumkin. Shunday qilib,
EPIC POE yaratishni kompilyatorga topshirganligi sababli, kompilyatsiya
vaqtida 
kodni 
intensiv 
tartiblashni 
qo`llab-quvvatlovchi 
arxitektura
xususiyatlarini ham ta`minlashi kerak. Keyingi tamoyil kompilyatorning
ehtimollik baholaridan foydalanishidir. EPIC kompilyatori ijro rejasini tuzishda
jiddiy muammoga duch keladi: ijro yozuviga sezilarli ta`sir ko`rsatadigan
ma`lum turdagi ma`lumotlar faqat dastur bajarilgan paytda ma`lum bo`ladi.
Misol uchun, kompilyator rejalashtirilgan kod baza bloklari orqali o`tganda
o`tish operatoridan keyin qaysi filiallar bajarilishini va qaysi grafik yo`llarini
olishini aniq bila olmaydi. Bundan tashqari, dasturdagi barcha yo`llarni bir
vaqtning o`zida optimallashtiradigan statik rejani yaratish odatda mumkin emas.
Noaniqlik, shuningdek, kompilyator havolalar bir xil xotira joyiga ishora
qiladimi yoki yo`qligini hal qila olmaganida ham yuzaga keladi. Agar shunday
bo`lsa, unda ularga ketma-ket kirish kerak; bo`lmasa, ular har qanday tartibda
rejalashtirilishi mumkin. Bunday noaniqlik bilan, ba`zi bir natija ko`pincha katta
ehtimolga ega. Bunday vaziyatda EPIC ning eng muhim tamoyillaridan biri
kompilyatorga ehtimollik hisob-kitoblari bilan ishlashga ruxsat berish
qobiliyatidir - u eng ehtimoliy holatlar uchun POE ni yaratadi va
optimallashtiradi. Biroq, EPIC, dastlabki taxminlar noto`g`ri bo`lsa ham,
dasturning to`g`riligini ta`minlash uchun Control va Data Speculation kabi
arxitektura yordamini taqdim etadi. Agar taxmin noto`g`ri bo`lib chiqsa,
dasturning ishlashi pasayishi aniq. Ushbu ishlash effekti ba`zan dastur rejasida
ko`rinadi, masalan, yuqori darajada optimallashtirilgan dastur maydoni mavjud
bo`lsa, lekin kod kamroq optimallashtirilganda bajariladi. Bundan tashqari,
dastur rejasida ko`rinmaydigan "to`xtash" daqiqalarida (Stall) unumdorlikning
pasayishi mumkin - eng ehtimoliy va shuning uchun optimallashtirilgan holatga
to`g`ri keladigan ba`zi operatsiyalar maksimal ishlashda bajariladi, ammo
protsessorni tartibda to`xtatib turadi, to`g`riligini kafolatlash uchun, agar
kamroq, optimallashtirilmagan holat yuzaga kelsa, reja tuzilgandan so`ng,
kompilyator uni apparatga o`tkazadi. Buning uchun ISA kompilyatorning har bir
operatsiyani qachon boshlash va qanday resurslardan foydalanish to`g`risidagi
qarorlarini xabardor qilish uchun yetarli darajada boy bo`lishi kerak (xususan,
bir vaqtning o`zida qaysi operatsiyalar boshlanishini belgilash usuli bo`lishi


1
0
kerak). Muqobil yechim sifatida kompilyator kerakli yozuvni olish uchun
protsessor dinamik ravishda qayta tashkil etadigan ketma-ket dastur yaratishi
mumkin. Ammo bu holda, uskunani dinamik rejalashtirishdan ozod qilish
maqsadiga erishilmaydi. POEni apparatga topshirishda kerakli ma`lumotlarni
o`z vaqtida taqdim etish juda muhimdir. Bunga misol qilib filial operatsiyasini
keltirish mumkin, agar foydalanilgan bo`lsa, filialning o`zi ishga tushishidan
ancha oldin filial manzilidagi ko`rsatmalarni muddatidan oldin olishni talab
qiladi. Buni qachon amalga oshirish va qaysi o
ʻ
tish manzilini apparatga
qoldirishni hal qilish o
ʻ
rniga, bunday ma
ʼ
lumotlar EPICning asosiy
tamoyillariga muvofiq, kod orqali aniq va o
ʻ
z vaqtida apparatga yetkaziladi.
Mikroarxitektura kodning bajarilishi bilan bevosita bog`liq bo`lmagan, lekin
bajarilish vaqtiga ta`sir qiluvchi boshqa qarorlarni ham qabul qiladi. Bunday
misollardan biri kesh ierarxiyasini boshqarish va ierarxiyani qo`llab-quvvatlash
uchun qanday ma`lumotlar kerakligi va qanday ma`lumotlarni almashtirish
kerakligi haqidagi tegishli qarorlardir. Bunday qoidalar odatda kesh
boshqaruvchisining algoritmi bilan ta`minlanadi. EPIC kompilyator ushbu
mikroarxitektura mexanizmlarini boshqarish imkoniyatiga ega bo`lish uchun ijro
rejasini yaratadi degan tamoyilga asoslanadi. Buning uchun odatda
mikroarxitektura tomonidan boshqariladigan mexanizmlarni dasturiy nazorat
qilish imkonini beruvchi me`moriy xususiyatlar taqdim etiladi. VLIW
arxitekturasi mikroprotsessorlarda ichki parallelizm kontseptsiyasining amalga
oshirilishidan biridir. Ularning ishlashi ikki yo`l bilan yaxshilanishi mumkin:
soat chastotasini yoki soatda bajariladigan operatsiyalar sonini oshirish orqali.
Birinchi holda, "tezkor" texnologiyalardan foydalanish (masalan, kremniy
o`rniga galliy arsenididan foydalanish) va chuqur quvur liniyasi (bir tsikl ichida,
kristalning barcha mantiqiy bloklari ishtirok etganda quvur o`tkazish) kabi
me`moriy echimlardan foydalanish talab etiladi. uning alohida qismlari emas,
balki vaqtning har bir daqiqasida). Bir siklda bajariladigan operatsiyalar sonini
ko`paytirish uchun bir chipga ko`plab funktsional ishlov berish modullarini
joylashtirish va mashina ko`rsatmalarining ishonchli parallel bajarilishini
ta`minlash kerak, bu esa barcha modullarni bir vaqtning o`zida yoqish imkonini
beradi. Ushbu kontekstda ishonchlilik hisob-kitoblarning natijalari to`g`ri
bo`lishini anglatadi. Masalan, quyidagi tarzda bir-biriga bog`langan ikkita
ifodani ko`rib chiqing: A=B+C va B=D+E. A o`zgaruvchining qiymati ushbu
ifodalarni baholash tartibiga qarab har xil bo`ladi (avval A, keyin B yoki
aksincha), lekin dasturda faqat bitta aniq qiymat nazarda tutilgan. Va agar endi
bu iboralar parallel ravishda hisoblangan bo`lsa, unda to`g`ri natijani faqat
ma`lum bir ehtimollik bilan kutish mumkin va kafolatlanmaydi. Hisoblash
tartibini rejalashtirish zamonaviy protsessorni loyihalashda hal qilinishi kerak
bo`lgan juda qiyin vazifadir. Superskalar arxitekturalarda mashina ko`rsatmalari
o`rtasidagi bog`liqlikni aniqlash uchun maxsus, ancha murakkab apparat
yechimi qo`llaniladi (masalan, Intelning P6 va P6 dan keyingi arxitekturalarida
buning uchun ReOrder Bufer, ROB ishlatiladi). Biroq, bunday uskunani
rejalashtiruvchining o`lchami, oxir-oqibat, butun protsessor chipini egallashi
mumkin bo`lgan funktsional ishlov berish modullari sonining ko`payishi bilan
eksponent ravishda oshadi. Shu sababli, superscalar loyihalar har bir tsiklda
qayta ishlanadigan taxminan 5-6 ko`rsatmalarda to`xtadi. Darhaqiqat, VLIW-
ning joriy ilovalari har doim ham paketlarni 100% to`ldirish bilan maqtana
olmaydi - haqiqiy yuk har bir tsikl uchun taxminan 6-7 ko`rsatmani tashkil
qiladi - RISC protsessorlari orasida etakchilar bilan bir xil. Yana bir yondashuv -
VLIW dizaynlarida bo`lgani kabi, barcha rejalashtirishni dasturiy ta`minotga
berishdir. "Aqlli" kompilyator dasturda mutlaqo mustaqil bo`lgan barcha
ko`rsatmalarni izlashi, ularni juda uzun qatorlarga (uzun ko`rsatmalar) qo`yishi
va keyin ularni bir vaqtning o`zida funktsional modullar tomonidan bajarish
uchun yuborishi kerak, ularning soni kamida kamida bunday uzoq jamoada


1
0
operatsiyalar soni. Juda uzun ko`rsatmalar (VLIW) odatda 256-1024 bit hajmda
bo`ladi, lekin ba`zan kamroq. Har bir funktsional modul uchun operatsiyalarni
kodlash maydonlarining o`lchami bunday meta-ko`rsatmada ancha kichikdir.

Yüklə 0,88 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə