Natijada, cisc protsessorlarini tashkil etishning quyidagi xususiyatlari rivojlandi


VLIW: eski yangi avlod arxitekturasi



Yüklə 46,18 Kb.
səhifə2/2
tarix10.05.2023
ölçüsü46,18 Kb.
#110803
1   2
Mustaqil ish

VLIW: eski yangi avlod arxitekturasi
Juda uzoq ko'rsatmalar so'zi (VLIW) arxitekturasi o'z ildizlarini hisoblash tongiga borib taqaladigan parallel mikrokodga va Control Data CDC6600 va IBM 360/91 superkompyuterlariga ega. 1970-yillarda ko'plab kompyuter tizimlari VLIW-ga o'xshash ROMga kiritilgan uzun ko'rsatmalardan foydalangan holda qo'shimcha vektor signal protsessorlari bilan jihozlangan. Ushbu protsessorlar tez furye transformatsiyasi va boshqa hisoblash algoritmlarini bajarish uchun ishlatilgan. Birinchi haqiqiy VLIW kompyuterlari 1980-yil boshida MultiFlow, Culler va Cydrome tomonidan chiqarilgan mini-superkompyuterlar edi, ammo ular tijoriy jihatdan muvaffaqiyatli bo'lmadi. Hisoblash rejalashtiruvchisi va dasturiy ta'minot quvuri Fisher va Rau (Cydrome) tomonidan taklif qilingan. Bugungi kunda bu VLIW kompilyator texnologiyasining asosidir.

Kompaniyaning birinchi VLIW kompyuteri MultiFlow 7/300 ikkita butun sonli arifmetik mantiq birligidan, ikkita suzuvchi nuqtali ALU va mantiqiy tarmoq blokidan foydalangan, ularning barchasi bir nechta chiplarda yig'ilgan. Uning 256 bitli ko'rsatma so'zi sakkizta 32 bitli operatsiya kodini o'z ichiga olgan. Butun sonlarni qayta ishlash modullari bitta 130 ns tsiklda ikkita operatsiyani bajarishi mumkin edi (ya'ni ikkita ALU bilan to'rtta), bu butun sonlarni qayta ishlashda taxminan 30 MIPS tezligini ta'minladi. 256 yoki 1024 bitli kompyuterlarni olish uchun apparat echimlarini birlashtirish ham mumkin edi. Birinchi VLIW kompyuteri Cydrome Cydra-5 256 bitli ko'rsatma va ko'rsatmalarni oltita 40 bitli operatsiyalar ketma-ketligi sifatida bajaradigan maxsus rejimdan foydalangan, shuning uchun uning kompilyatorlari parallel kod va an'anaviy seriyali kod aralashmasini yaratishi mumkin edi. Taxminlarga ko'ra, ushbu VLIW-VMlar bir nechta chiplardan foydalangan bo'lsa-da, Intel i860 protsessori bitta chipdagi birinchi VLIW-protsessorga aylandi. Biroq, i860-ni VLIW-ga shartli ravishda bog'lash mumkin - aslida u superskalar protsessorlarning bir qismiga aylangan keyingi dasturiy ta'minot bilan boshqarilmaydigan juftlashtirishdan farqli o'laroq, faqat dasturiy ta'minot tomonidan boshqariladigan ko'rsatmalarga ega. Tarixiy ma'lumot sifatida, shuningdek, bozorda juda keng tarqalgan va muvaffaqiyatli bo'lgan VLIW arxitekturasiga asoslangan FPS kompyuterlarini (AP-120B, AP-190L va keyinchalik FPS brendi ostida) ham eslatib o'tmoqchiman. Bundan tashqari, M10 va M13 Kartseva, shuningdek, "Elbrus-3" kabi "kanonik" mashinalar mavjud edi - oxirgi loyihaning barcha "muvaffaqiyatsizligi" bilan bu hali ham VLIW bosqichi edi. Umuman olganda, VLIW protsessorining tezligi apparatdan ko'ra ko'proq kompilyatorga bog'liq, chunki bu erda ish jarayonini optimallashtirish effekti chastotani oshirishdan kelib chiqadigan ta'sirdan oshib ketadi.


Nisbatan yaqinda biz CISC ning RISC ga qarshi "to'qnashuvi" ning guvohi bo'ldik va endi yangi "jang" rejalashtirilgan - RISC ga qarshi VLIW. To'g'ri aytganda, VLIW va superscalar RISC hech qanday tarzda antagonist emas. Adolat uchun shuni ta'kidlash kerakki, ikkinchisi umuman "tashqi arxitektura" mulki emas, balki shunchaki ijro etishning ma'lum bir usuli. Kelajakda superskalar VLIW protsessorlari paydo bo'lishi mumkin, ular shunday qilib aytganda, "parallellik kvadrati" ni oladi - aniq statik parallelizm bilan yashirin dinamik. Ammo protsessorni rivojlantirishning hozirgi bosqichida statik va dinamik qayta tartiblashni birlashtirishning ko'rinadigan usullari yo'q. Shuning uchun Itanium / Itanium2 endi VLIW ni CISC ga nisbatan (va, albatta, VLIW "O3E ga qarshi" emas) taqqoslash kontekstida emas, balki "sinxron VLIW" va "asinxron (Out-Of)" sifatida ko'rib chiqilishi kerak. -Buyurtma) RISC". Shuni unutmangki, Intel-HP alyansi o'z arxitekturasi uchun alohida nom - EPIC, ya'ni. aniq parallelizm.

VLIW arxitekturasi kompyuter sanoatining paydo bo'lishidan boshlanganiga qaramay (Tyuring VLIW kompyuterini 1946 yilda ishlab chiqqan), u hali ham tijorat muvaffaqiyatiga erishmagan. Endi Intel Itanium protsessor liniyasida VLIW g'oyalarini amalga oshirdi. Ammo mavjud klassik "RISC-inside CISC-outside" arxitekturalariga nisbatan ushbu protsessorlarga asoslangan tizimlarda ishlash va hisoblash tezligining sezilarli darajada oshishiga faqat aqlli funktsiyalarni apparatdan dasturiy ta'minotga (kompilyator) o'tkazish orqali erishish mumkin. Shunday qilib, Itanium/Itanium2 ning muvaffaqiyati asosan dasturiy ta'minot bilan belgilanadi va muammo aynan shu erda. Bundan tashqari, sanoatning nisbatan uzoq vaqtdan beri mavjud bo'lgan Itaniumga nisbatan cheklangan munosabati uning mavjudligini tasdiqladi.


EPIC: Aniq ko'rsatmalar parallelligi
Yo'riqnomalar darajasida parallelizmni amalga oshirish kontseptsiyasi (Aniq Parallel Instruction Computing) RISC bilan ta'sir miqyosida raqobatlasha oladigan yangi turdagi arxitekturani belgilaydi. Ushbu mafkura apparatni soddalashtirishga va shu bilan birga, ko'rsatmalar darajasida imkon qadar ko'proq "yashirin parallelizm" ni ajratib olishga qaratilgan, bunda katta ko'rsatma "issue-width" (WIW -Wide Issue-Width) va uzun (chuqur) VLIW yoki superscalar strategiyalarini amalga oshirishda mumkin bo'lgandan ko'ra katta kechikish (DPL - Deep Pipeline-Latency) bilan. EPIC ish vaqtida ikkita asosiy narsani soddalashtiradi. Birinchidan, uning tamoyillari ish vaqtida kompilyator mustaqil deb e'lon qilgan operatsiyalar o'rtasidagi bog'liqlikni tekshirishdan bosh tortish imkonini beradi. Ikkinchidan, bu arxitektura kompilyator tomonidan belgilangan buyruqlarni berish tartibiga tayangan holda, operatsiyalarni tartibsiz bajarishning murakkab mantiqiyligidan voz kechishga imkon beradi. Bundan tashqari, EPIC kompilyatorning ketma-ket arxitekturada noto'g'ri bo'lishi mumkin bo'lgan kompilyatsiya vaqtida turli xil kodlarni ko'chirishni qo'llab-quvvatlash orqali statik ravishda bajarish rejalarini yaratish qobiliyatini yaxshilaydi. Ilgari echimlar ushbu maqsadga asosan apparatning murakkabligini sezilarli darajada oshirish orqali erishdi, bu shu qadar ahamiyatli bo'ldiki, u sanoatning yanada yuqori ko'rsatkichlarga erishishiga to'sqinlik qildi. EPIC, qabul qilinadigan apparat murakkabligini saqlab qolgan holda, yuqori darajadagi ko'rsatmalar darajasidagi parallellikni ta'minlash uchun maxsus ishlab chiqilgan.

Yuqori samaradorlikka signal uzatish tezligini oshirish va chipdagi funktsional bloklarni joylashtirish zichligini oshirish orqali erishiladi. Ushbu ikki komponentning o'sishini belgilab, dasturni bajarish tezligini yanada oshirishga birinchi navbatda ma'lum turdagi parallelizmni amalga oshirish orqali erishish mumkin. Masalan, ko'rsatmalar darajasidagi parallelizm (ILP - Instruction-Level Parallelism) individual RISC operatsiyalarini parallel ravishda bajarish orqali ishni tezlashtiradigan protsessorlar va kompilyatsiya texnikasini yaratish tufayli mumkin bo'ldi. ILP-ga asoslangan tizimlar ketma-ket protsessorlar uchun an'anaviy yuqori darajali tillarda yozilgan dasturlardan foydalanadi va "yashirin parallelizm" ni aniqlash tegishli kompilyator texnologiyasi va apparat vositalaridan foydalanish orqali avtomatik ravishda amalga oshiriladi.

Ushbu texnikalar amaliy dasturchilardan qo'shimcha kuch talab etmasligi juda muhim, chunki bu yechim dasturchilardan o'z ilovalarini qayta yozishni talab qiladigan an'anaviy mikroprotsessor parallelizmidan keskin farq qiladi. Yo'riqnomalar darajasida parallel ishlov berish - bu dasturni tubdan qayta ishlab chiqmasdan ishlash samaradorligiga erishish mumkin bo'lgan yagona ishonchli yondashuv.
Superscalar protsessorlari ketma-ket arxitekturalar uchun ILP protsessorining ilovalari bo'lib, ular uchun dasturiy ta'minot aniq parallellik ma'lumotlarini o'tkazishga hojat yo'q va amalda ham bera olmaydi. Dasturda ILP mavjudligi to'g'risida aniq ma'lumotlar mavjud emasligi sababli, parallellikni aniqlash vazifasi apparat tomonidan hal qilinishi kerak, bu esa o'z navbatida "yashirin parallelizm" ni aniqlash uchun harakat rejasini yaratishi kerak. VLIW protsessorlari arxitekturaga misol bo'lib, ular uchun dastur parallellik to'g'risida aniq ma'lumot beradi - kompilyator dasturdagi parallellikni aniqlaydi va qaysi operatsiyalar bir-biridan mustaqil ekanligini apparatga aytadi. Ushbu ma'lumot jismoniy qatlam uchun muhimdir, chunki bu holda u bir xil tsiklda qaysi operatsiyalarni boshlash mumkinligini qo'shimcha tekshiruvlarsiz "biladi". 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 (POE - Ijro rejasi, bajarish sxemasi kompilyatsiya vaqtida statik tarzda yaratiladi) taklif qiladi. 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 uzatadi, 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 farqli o'laroq, superskalar apparat ketma-ket kodga asoslangan POE ni dinamik ravishda yaratadi. Garchi bu yondashuv jismoniy amalga oshirishning murakkabligini oshirsa-da, superscalar protsessor faqat ish vaqtida aniqlanishi mumkin bo'lgan omillardan foydalanadigan rejani yaratadi.


VLIW: eski yangi avlod arxitekturasi
Shuningdek o'qing:
Yuqori texnologiyali
21/04/2023
"Eng zamonaviy Lada", "Lada avtomobillari hech qachon bunchalik hashamatli ko'rinmagan", - xorijiy OAV o'z taassurotlari bilan o'rtoqlashdi...
Yangi Lada X-cross 5 krossoveri taqdimotidan so'ng turli xorijiy nashrlar o'z sharhlarini bildirdilar, ular asosan avtomobilni maqtashdi, garchi salbiy sharhlar ham bo'lgan.
YAN tavsiya vidjeti

Juda uzoq ko'rsatmalar so'zi (VLIW) arxitekturasi o'z ildizlarini hisoblash tongiga borib taqaladigan parallel mikrokodga va Control Data CDC6600 va IBM 360/91 superkompyuterlariga ega. 1970-yillarda ko'plab kompyuter tizimlari VLIW-ga o'xshash ROMga kiritilgan uzun ko'rsatmalardan foydalangan holda qo'shimcha vektor signal protsessorlari bilan jihozlangan. Ushbu protsessorlar tez furye transformatsiyasi va boshqa hisoblash algoritmlarini bajarish uchun ishlatilgan. Birinchi haqiqiy VLIW kompyuterlari 1980-yil boshida MultiFlow, Culler va Cydrome tomonidan chiqarilgan mini-superkompyuterlar edi, ammo ular tijoriy jihatdan muvaffaqiyatli bo'lmadi. Hisoblash rejalashtiruvchisi va dasturiy ta'minot quvuri Fisher va Rau (Cydrome) tomonidan taklif qilingan. Bugungi kunda bu VLIW kompilyator texnologiyasining asosidir.

Kompaniyaning birinchi VLIW kompyuteri MultiFlow 7/300 ikkita butun sonli arifmetik mantiq birligidan, ikkita suzuvchi nuqtali ALU va mantiqiy tarmoq blokidan foydalangan, ularning barchasi bir nechta chiplarda yig'ilgan. Uning 256 bitli ko'rsatma so'zi sakkizta 32 bitli operatsiya kodini o'z ichiga olgan. Butun sonlarni qayta ishlash modullari bitta 130 ns tsiklda ikkita operatsiyani bajarishi mumkin edi (ya'ni ikkita ALU bilan to'rtta), bu butun sonlarni qayta ishlashda taxminan 30 MIPS tezligini ta'minladi. 256 yoki 1024 bitli kompyuterlarni olish uchun apparat echimlarini birlashtirish ham mumkin edi. Birinchi VLIW kompyuteri Cydrome Cydra-5 256 bitli ko'rsatma va ko'rsatmalarni oltita 40 bitli operatsiyalar ketma-ketligi sifatida bajaradigan maxsus rejimdan foydalangan, shuning uchun uning kompilyatorlari parallel kod va an'anaviy seriyali kod aralashmasini yaratishi mumkin edi. Taxminlarga ko'ra, ushbu VLIW-VMlar bir nechta chiplardan foydalangan bo'lsa-da, Intel i860 protsessori bitta chipdagi birinchi VLIW-protsessorga aylandi. Biroq, i860-ni VLIW-ga shartli ravishda bog'lash mumkin - aslida u superskalar protsessorlarning bir qismiga aylangan keyingi dasturiy ta'minot bilan boshqarilmaydigan juftlashtirishdan farqli o'laroq, faqat dasturiy ta'minot tomonidan boshqariladigan ko'rsatmalarga ega. Tarixiy ma'lumot sifatida, shuningdek, bozorda juda keng tarqalgan va muvaffaqiyatli bo'lgan VLIW arxitekturasiga asoslangan FPS kompyuterlarini (AP-120B, AP-190L va keyinchalik FPS brendi ostida) ham eslatib o'tmoqchiman. Bundan tashqari, M10 va M13 Kartseva, shuningdek, "Elbrus-3" kabi "kanonik" mashinalar mavjud edi - oxirgi loyihaning barcha "muvaffaqiyatsizligi" bilan bu hali ham VLIW bosqichi edi. Umuman olganda, VLIW protsessorining tezligi apparatdan ko'ra ko'proq kompilyatorga bog'liq, chunki bu erda ish jarayonini optimallashtirish effekti chastotani oshirishdan kelib chiqadigan ta'sirdan oshib ketadi.

Nisbatan yaqinda biz CISC ning RISC ga qarshi "to'qnashuvi" ning guvohi bo'ldik va endi yangi "jang" rejalashtirilgan - RISC ga qarshi VLIW. To'g'ri aytganda, VLIW va superscalar RISC hech qanday tarzda antagonist emas. Adolat uchun shuni ta'kidlash kerakki, ikkinchisi umuman "tashqi arxitektura" mulki emas, balki shunchaki ijro etishning ma'lum bir usuli. Kelajakda superskalar VLIW protsessorlari paydo bo'lishi mumkin, ular shunday qilib aytganda, "parallellik kvadrati" ni oladi - aniq statik parallelizm bilan yashirin dinamik. Ammo protsessorni rivojlantirishning hozirgi bosqichida statik va dinamik qayta tartiblashni birlashtirishning ko'rinadigan usullari yo'q. Shuning uchun Itanium / Itanium2 endi VLIW ni CISC ga nisbatan (va, albatta, VLIW "O3E ga qarshi" emas) taqqoslash kontekstida emas, balki "sinxron VLIW" va "asinxron (Out-Of)" sifatida ko'rib chiqilishi kerak. -Buyurtma) RISC". Shuni unutmangki, Intel-HP alyansi o'z arxitekturasi uchun alohida nom - EPIC, ya'ni. aniq parallelizm.



VLIW arxitekturasi kompyuter sanoatining paydo bo'lishidan boshlanganiga qaramay (Tyuring VLIW kompyuterini 1946 yilda ishlab chiqqan), u hali ham tijorat muvaffaqiyatiga erishmagan. Endi Intel Itanium protsessor liniyasida VLIW g'oyalarini amalga oshirdi. Ammo mavjud klassik "RISC-inside CISC-outside" arxitekturalariga nisbatan ushbu protsessorlarga asoslangan tizimlarda ishlash va hisoblash tezligining sezilarli darajada oshishiga faqat aqlli funktsiyalarni apparatdan dasturiy ta'minotga (kompilyator) o'tkazish orqali erishish mumkin. Shunday qilib, Itanium/Itanium2 ning muvaffaqiyati asosan dasturiy ta'minot bilan belgilanadi va muammo aynan shu erda. Bundan tashqari, sanoatning nisbatan uzoq vaqtdan beri mavjud bo'lgan Itaniumga nisbatan o'zini tutashgan munosabati bu haqiqatni tasdiqladi.
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 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, bu maʼlumot 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 apparat-dasturiy kompleksi
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 gallium 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 bir vaqtning o'zida barcha modullarni 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 hisoblansa, 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 kamida kamida kamida bo'lgan funktsional modullar tomonidan bajarish uchun yuborishi kerak. bunday uzoq jamoada 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.

VLIW protsessorining mantiqiy qatlami
Quyida ko'rsatilgan sxemaga ega bo'lgan VLIW protsessori chegaralangan holatda har bir tsiklda sakkizta operatsiyani bajarishi va mavjud superskalyar chiplarga qaraganda ancha past soat tezligida ishlashi mumkin. Funktsiya bloklarini qo'shish chipga ortiqcha murakkablik qo'shmasdan ishlashni yaxshilashi mumkin (resurslarni taqsimlashda nizolarni kamaytirish orqali). Biroq, bunday kengayish jismoniy imkoniyatlar bilan cheklangan: funktsional bloklarning registr fayliga bir vaqtning o'zida kirishini ta'minlash uchun zarur bo'lgan o'qish / yozish portlari soni va funktsional bloklar sonining ko'payishi bilan ularning soni geometrik ravishda o'sib boruvchi munosabatlar. Bundan tashqari, kompilyator har bir blokning yuklanishini ta'minlash uchun dasturni kerakli darajaga parallellashtirishi kerak - bu, menimcha, ushbu arxitekturaning qo'llanilishini cheklaydigan eng muhim nuqta.

Ushbu faraziy ko'rsatma sakkizta operatsiya maydoniga ega bo'lib, ularning har biri an'anaviy uch operandli RISC-ga o'xshash = - - (klassik MOV AX BX kabi) tipidagi buyruqni bajaradi. ko'rsatma) va minimal dekodlash bilan ma'lum bir funktsiya blokini bevosita boshqarishi mumkin.

Aniqroq bo'lish uchun qisqacha IA-64 ni VLIW joriy etish misollaridan biri sifatida ko'rib chiqing. Vaqt o'tishi bilan bu arxitektura x86 (IA-32) ni nafaqat bozorda, balki umuman sinf sifatida almashtirishga qodir, garchi bu allaqachon uzoq kelajak taqdiri. Shunga qaramay, IA-64 uchun juda murakkab kompilyatorlarni ishlab chiqish zarurati va optimallashtirilgan mashina kodlarini yaratishdagi qiyinchiliklar IA-64 assemblerida ishlaydigan mutaxassislarning etishmasligiga olib kelishi mumkin, ayniqsa dastlabki bosqichlarda, eng murakkablari sifatida.

RISC bilan solishtirganda IA-64 ning eng dramatik yangiligi bu aniq ko'rsatmalar parallelizmi (EPIC) bo'lib, u to'plamlar deb ataladigan juda uzun ko'rsatmalar so'zi arxitekturasini eslatuvchi ba'zi elementlarni taqdim etadi. Shunday qilib, ikkala arxitekturada aniq parallelizm allaqachon funktsional ijro etuvchi qurilmalarning (yoki funktsional modullar yoki oddiygina funktsional birliklar, FU) bir vaqtning o'zida ishlashini boshqaruvchi buyruqlar darajasida taqdim etilgan.

Bunday holda, ulanish uzunligi 128 bit bo'lib, har biri 41 bit uzunlikdagi buyruqlar uchun 3 ta maydonni va 5 bitli naqsh uyasidan iborat. Bog'lanish buyruqlari turli FUlar tomonidan parallel ravishda bajarilishi mumkin deb taxmin qilinadi. Bir xil to'plam buyruqlarining parallel bajarilishiga to'sqinlik qiladigan mumkin bo'lgan o'zaro bog'liqliklar shablon maydonida aks ettirilgan. Biroq, turli to'plamlarning buyruqlarini parallel ravishda bajarish mumkin emasligi aytilmagan. Har bir tsiklda oltita ko'rsatmaga yetadigan ijro parallelizmining e'lon qilingan darajasiga asoslanib, kamida ikkita to'plam bir vaqtning o'zida bajarilishi mumkin deb taxmin qilish mantiqan to'g'ri keladi.

Shablon to'plamning uyalarida qanday turdagi buyruqlar mavjudligini ko'rsatadi. Umuman olganda, bir xil turdagi ko'rsatmalar bir nechta funktsional birliklarda bajarilishi mumkin. Shablon, buyruqlar bajarilgandan so'ng, keyingi maydonlarning ko'rsatmalari tugashini kutishi kerak bo'lgan uyani belgilaydigan to'xtash joylarini belgilaydi. To'plamdagi slotlarning tartibi (o'ngda muhimroq) baytlar tartibiga ham mos keladi (Little Endian), ammo xotiradagi ma'lumotlar Big Endian rejimida ham joylashishi mumkin (chapda muhimroq), bu foydalanuvchi maskalari registridagi maxsus bit tomonidan o'rnatiladi.

Registrni aylantirish qaysidir ma'noda registr nomini o'zgartirishning alohida holati bo'lib, u ko'plab zamonaviy superskalar protsessorlarda tartibsiz spekulyativ («spekulyativ») buyruqlarni bajarishda qo'llaniladi. Ulardan farqli o'laroq, IA-64 da registrlarning aylanishi dasturiy ta'minot tomonidan boshqariladi. IA-64-da ushbu mexanizmdan foydalanish kichik dasturlarga qo'ng'iroq qilish va ulardan qaytishda ko'p sonli registrlarni saqlash / tiklash bilan bog'liq bo'lgan qo'shimcha xarajatlardan qochadi, ammo agar kerak bo'lsa, tegishli ko'rsatmalarni aniq kodlash orqali statik registrlar hali ham saqlanishi va tiklanishi kerak. .

Aytgancha, IA-64 qo'mondon tizimi juda noyobdir. Asosiy xususiyatlar qatorida buyruqlarning spekulyativ bajarilishi va predikatlardan foydalanishni ta'kidlash kerak - IA-64 ning eksklyuzivligini aniqlaydigan ushbu kichik to'plam. Bunday buyruqlarning barchasini registrlar stegi bilan ishlash, butun son buyruqlari, taqqoslash va predikatlar bilan ishlash buyruqlari, xotiraga kirish buyruqlari, o‘tish buyruqlari, multimedia buyruqlari, registrlar o‘rtasida uzatish buyruqlari, “turli xil” (satrlar ustida amallar va hisoblash Worddagi birliklar soni) va suzuvchi nuqta buyruqlari.

VLIW protsessorining apparat ta'minoti juda oddiy: protsessor avtobusiga ulangan bir nechta kichik funksiya modullari (qo'shimchalar, ko'paytirishlar, filiallar va boshqalar) va bir nechta registrlar va kesh bloklari. VLIW arxitekturasi ikki sababga ko'ra yarimo'tkazgich sanoatini qiziqtiradi. Birinchisi, endi chipda ko'proq joy, masalan, o'tishni bashorat qilish bloki uchun emas, balki bloklarni qayta ishlash uchun ajratilishi mumkin. Ikkinchi sabab shundaki, VLIW protsessori yuqori tezlikda bo'lishi mumkin, chunki maksimal ishlov berish tezligi faqat funktsional modullarning ichki xususiyatlari bilan belgilanadi. VLIW ma'lum sharoitlarda eski CISC ko'rsatmalarini RISCga qaraganda samaraliroq amalga oshirishi ham jozibali. Buning sababi, VLIW protsessorini dasturlash mikrokod yozishga juda o'xshaydi (fizik qatlamni har tomonlama dasturlash, mantiqiy shlyuzlarning ishlashini ma'lumotlar shinalari bilan sinxronlashtirish va funktsional modullar o'rtasida ma'lumot uzatishni boshqarish imkonini beruvchi o'ta past darajadagi til).

Kompyuter xotirasi qimmat bo'lgan kunlarda dasturchilar uni STOS va LODS (xotiraga bilvosita yozish/o'qish) kabi x86 protsessorining murakkab ko'rsatmalariga murojaat qilish orqali saqlab qolishgan. CISC faqat o'qish uchun xotiraga (ROM) qattiq kodlangan va protsessor tomonidan bajariladigan proshivka kabi ko'rsatmalarni amalga oshiradi. RISC arxitekturasi mikrokoddan foydalanishni butunlay yo'q qiladi, ko'rsatmalarni faqat apparatda amalga oshiradi - aslida RISC protsessorining ko'rsatmalari CISCda ishlatiladigan mikrokod bilan deyarli bir xil. VLIW buni boshqacha qiladi - u protsessordan mikrokod yaratish tartibini (va umuman bajarilish bosqichini) olib tashlaydi va uni kompilyatorga, bajariladigan kodni yaratish bosqichiga o'tkazadi. Natijada, STOS kabi x86 protsessor ko'rsatmalarini emulyatsiya qilish juda samarali, chunki protsessor bajarish uchun tayyor makroslarni oladi. Ammo shu bilan birga, bu ham ba'zi qiyinchiliklarni keltirib chiqaradi, chunki etarlicha samarali mikrokod yozish juda ko'p vaqt talab qiladigan jarayondir. Faqatgina "aqlli" kompilyator VLIW arxitekturasining hayotiyligini ta'minlay oladi, bu esa bu ishni o'z zimmasiga oladi. Aynan shu holat VLIW arxitekturali kompyuterlardan foydalanishni cheklaydi: hozirgacha ular asosan vektor (ilmiy hisoblar uchun) va signal protsessorlarida qo'llanilishini topdilar.

VLIW kompilyatori qanday ishlaydi


Umumiy maqsadli hisob-kitoblarni amalga oshirish uchun ishlatilishi mumkin bo'lgan arxitektura sifatida VLIWga yaqinda yangilangan qiziqish VLIW kompilyatsiya texnikasining rivojlanishiga sezilarli turtki berdi. Bunday kompilyator mustaqil operatsiyalar guruhlarini juda uzun ko'rsatmalar so'zlariga shunday jamlaydiki, ular funksiya modullari tomonidan tez ishga tushirilishi va samaraliroq bajarilishi mumkin. Kompilyator avval ma'lumotlar o'rtasidagi barcha bog'liqliklarni aniqlaydi va keyin ularni qanday yechish kerakligini aniqlaydi. Ko'pincha, bu butun dasturni qayta tartiblash orqali amalga oshiriladi - uning turli bloklari bir joydan ikkinchisiga ko'chiriladi. Ushbu yondashuv dasturni bajarish vaqtida bog'liqlikni aniqlash uchun maxsus apparat yechimidan foydalanadigan superskalar protsessorda qo'llaniladigan usuldan farq qiladi (kompilyatorlarni optimallashtirish, albatta, superskalar protsessorning ish faoliyatini yaxshilaydi, lekin uni "bog'lab qo'ymaydi". ularga). Aksariyat superskalar protsessorlar faqat asosiy dastur bloklari ichida bog'liqliklarni aniqlashi va parallel bajarilishini rejalashtirishi mumkin (ular ichida uzilish yoki mantiqiy filialni o'z ichiga olmaydi, faqat oxirida ruxsat etilgan ketma-ket dastur bayonotlari guruhi). Ba'zi qayta tartiblash tizimlari skanerlash maydonini asosiy bloklardan tashqarida kengaytira boshladi. Ko'proq parallellikni ta'minlash uchun VLIW kompyuterlari ushbu operatsiyalarni bir xil uzun ko'rsatmada joylashtirish uchun turli baza bloklaridagi operatsiyalarni kuzatishi kerak (ularning "ko'lami" superskalar protsessorlarga qaraganda kengroq bo'lishi kerak) - bu "marshrut" bo'ylab yotqizish orqali ta'minlanadi. dastur (kuzatuv). Kuzatish - dastur orqali ma'lum bir dastlabki ma'lumotlar to'plami uchun eng maqbul yo'nalish (to'g'ri natijani ta'minlash uchun, bu ma'lumotlarning kesishishi kafolatlanmaydi), ya'ni. parallel bajarish uchun mos bo'limlar bo'ylab "o'tadigan" marshrut (bu bo'limlar boshqa narsalar qatori dasturning boshqa joylaridan kod o'tkazish yo'li bilan shakllanadi), shundan so'ng ularni uzoq ko'rsatmalarga to'plash va ularni bajarish uchun topshirish qoladi. Hisoblash rejalashtiruvchisi optimallashtirishni uning alohida asosiy bloklari emas, balki butun dastur darajasida amalga oshiradi. VLIW uchun, shuningdek, RISC uchun dasturda tarmoqqa bo'linish uning samarali bajarilishiga to'sqinlik qiladigan "dushman" hisoblanadi. RISC filiallarni bashorat qilish uchun apparat yechimidan foydalansa-da, VLIW uni kompilyatorga qoldiradi. Kompilyatorning o'zi dasturni profillash orqali to'plangan ma'lumotlardan foydalanadi, garchi kelajakdagi VLIW protsessorlari kompilyatorga to'g'ridan-to'g'ri statistik ma'lumotlarni to'plash bilan ta'minlaydigan kichik apparat kengaytmasiga ega bo'lishi kutilmoqda, bu o'zgaruvchilar to'plami bilan tsiklik ishlashda printsipial ahamiyatga ega. Kompilyator eng mos marshrutni bashorat qiladi va uni bitta katta asosiy blok sifatida ko'rib chiqishni rejalashtiradi, so'ngra bu jarayonni undan keyin paydo bo'lgan barcha boshqa dastur tarmoqlari uchun takrorlaydi va dasturning oxirigacha davom etadi. Shuningdek, u kodni tahlil qilishda dastur siklini ochish va IF-transformatsiyasi kabi boshqa “aqlli qadamlar”ni qanday bajarishni biladi, bunda barcha mantiqiy o‘tishlar kuzatilayotgan bo‘limdan vaqtinchalik olib tashlanadi. RISC faqat filiallarga qarashi mumkin bo'lgan hollarda, VLIW kompilyatori uni filial aniqlanmaguncha (iz bo'yicha) bir joydan ikkinchi joyga ko'chiradi, lekin kerak bo'lganda oldingi dastur holatiga qaytish imkoniyatini beradi. Rasmiy ravishda, RISC protsessoriga hech narsa to'sqinlik qilmaydi, shunchaki narx/samaradorlik nisbati juda yuqori bo'lib chiqadi. VLIW protsessoriga qo'shilgan tegishli apparat kompilyatorga biroz yordam berishi mumkin. Masalan, bir nechta filiallarga ega bo'lgan operatsiyalar bitta uzun ko'rsatmaga kiritilishi mumkin va shuning uchun bitta mashina tsiklida bajarilishi mumkin. Shuning uchun oldingi natijalarga bog'liq bo'lgan shartli operatsiyalarni bajarish apparatda emas, balki dasturiy ta'minotda amalga oshirilishi mumkin. VLIW protsessorining tezligini oshirish uchun to'laydigan narx kompilyatsiya qilish narxidan ancha past, shuning uchun kompilyatorlarning o'zlari xarajatlarning asosiy qismini tashkil qiladi.
VLIW: tanganing boshqa tomoni
Biroq, VLIW arxitekturasini amalga oshirishda boshqa jiddiy muammolar mavjud. VLIW kompilyatori protsessor arxitekturasining ichki xususiyatlarini funktsional bloklarning o'zlari dizayniga qadar batafsil "bilishi" kerak. Natijada, VLIW protsessorining yangi versiyasi ko'p sonli qayta ishlash modullari bilan (yoki hatto bir xil sonli, lekin boshqa tezlikda) chiqarilganda, barcha eski dasturiy ta'minot to'liq qayta kompilyatsiya qilishni talab qilishi mumkin. VLIW protsessorlarini ishlab chiqaruvchilar, agar "eski" dasturlarning yangi qurilmalarda ishlashini kafolatlash uchun bo'lsa, hech bo'lmaganda paketning kengligini kamaytirmaslikka majbur bo'lishdi. Masalan, hozirgi vaqtda 8 ta ko'rsatmalar to'plami mavjud va keyingi versiyada chastotani ikki-uch baravar oshirish uchun ham oltita funktsional birlik bo'lishi mumkin emas. Sakkiz kanalli VLIW uchun tuzilgan dasturni olti kanalli arxitekturada maxsus qimmat (murakkablik va unumdorlik jihatidan) apparat yechimlarisiz bajarish mumkin emasligiga qo'shimcha ravishda, kompilyator ham tubdan qayta yozilishi kerak bo'ladi. Shu nuqtai nazardan, Intelning IA64 tizimida uchta buyruqli so'zdan foydalanishi o'rinli ko'rinadi - bir qarashda, noqulay cheklash kelajakda IA64 protsessorlaridagi ijro birliklari sonini etarlicha erkin o'zgartirishga imkon beradi. Va agar 386 protsessordan 486 protsessorga o'tish paytida mavjud dasturiy ta'minotni qayta kompilyatsiya qilish mutlaqo kerak bo'lmasa, endi bu kerak bo'ladi. Mumkin bo'lgan murosali echimlardan biri sifatida kompilyatsiya jarayonini ikki bosqichga bo'lish taklif etiladi. Barcha dasturiy ta'minot oraliq kod yordamida qurilmadan mustaqil formatda tayyorlanishi kerak, u faqat oxirgi foydalanuvchi uskunasiga o'rnatish vaqtida mashinaga xos kodga tarjima qilinadi. Ushbu yondashuvga misol OSF tomonidan o'zining arxitekturadan mustaqil formati ANDF (Arxitektura-neytral tarqatish formati) bilan ko'rsatilgan. Ammo o'zaro faoliyat platformali dasturiy ta'minot bir marta unga qo'yilgan yorqin umidlarni oqlamadi. Birinchidan, u hali ham har bir aniq holatda kompilyatorga ushbu platformada (va hatto ushbu OSda) berilgan dasturni kompilyatsiya qilishda nima qilish kerakligini "tushuntiradigan" portlarning mavjudligini talab qiladi. Ikkinchidan, o'zaro faoliyat platformali dasturiy ta'minot hali "Tezlik Demoni" emas, aksincha, qoida tariqasida, u shunga o'xshash dastur sinfining muayyan platformasi uchun yozilganidan sekinroq ishlaydi.

Yana bir qiyinchilik VLIW kompilyatori tomonidan taqdim etilgan optimallashtirishning statik tabiatidir. Masalan, dastur kompilyatsiya jarayonida kutilmagan dinamik vaziyatlarga duch kelganda, masalan, kiritish/chiqarishni kutishda qanday harakat qilishini oldindan aytish qiyin. VLIW arxitekturasi ilmiy va texnik tashkilotlarning talablariga javoban paydo bo'ldi, bu erda yuqori protsessor tezligi ayniqsa hisoblash uchun zarurdir, lekin u ob'ektga yo'naltirilgan va hodisalarga asoslangan dasturlar uchun kamroq mos keladi va bular hozirda ko'pchilikni tashkil etuvchi ilovalar. axborot texnologiyalari sohasida. Kompilyator bunday murakkab konvertatsiyalarni ishonchli va to'g'ri bajarishini tekshirish qiyin. Aksincha, Out-Order RISC protsessorlari ma'lum bir vaziyatga eng foydali tarzda "moslashishga" juda qodir.

Zamonaviy yuqori tezlikdagi VLIW protsessorlarini ishlab chiquvchilar sof VLIW arxitekturasi bilan o'zlarining asl g'oyasidan chetga chiqishni boshlaganlari allaqachon ayon bo'ldi. Intel, hech bo'lmaganda, Itanium oilasiga klassik x86 kodini bajarish qobiliyatini saqlab qoldi, garchi protsessor ushbu rejimda ishlayotganida, u juda katta ishlash yo'qotishlari evaziga buni amalga oshirishga muvaffaq bo'ldi. Taxmin qilish mumkinki, protsessor giganti dasturiy ta'minot gigantlari bosimi ostida "sof VLIW" tayanch punktidan voz kechdi. Biroq, VLIW arxitekturasida apparat va dasturiy ta'minotning o'zaro ta'sirini ta'minlashning murakkab muammosini hal qilish jiddiy dastlabki tadqiqotlarni talab qiladi. Afsuski, hozirda dasturlarni avtomatik parallellashtirish algoritmlari sohasidagi nazariy tadqiqotlar hali ham ko'plab yutuqlar bilan maqtana olmaydi: qoida tariqasida, agar siz dasturni malakali parallellashtirishingiz kerak bo'lsa (masalan, SMP optimallashtirilgan bo'limlarni kiritish uchun). unga), bu eski uslubda - "qo'llar" va juda, juda malakali dasturchilarning qo'llari bilan amalga oshiriladi. Bundan tashqari, katta kuch sarflagan holda parallel ravishda bajarilishi mumkin bo'lgan yoki umuman bajarib bo'lmaydigan vazifalarning katta ro'yxati uzoq vaqtdan beri ma'lum.

Misol tariqasida Transmetadan mashhur Kruzoni eslashimiz mumkin. Uning ishlash printsipi aslida VLIW arxitekturasi uchun allaqachon tuzilgan x86 kodini dinamik qayta kompilyatsiya qilishdan iborat. Biroq, ishlab chiquvchilar yuqori darajadagi tillar uchun samarali VLIW kompilyatorlarini yaratishda bunday katta qiyinchiliklarga duch kelsa ham, juda xaotik va oldindan aytib bo'lmaydigan mashina kodining "kompilyatori" haqida nima deyish mumkin?


Xulosa o'rniga
So'nggi yillarda VLIW va superscalar arxitekturalarining afzalliklarini taqqoslash ko'rsatmalar darajasidagi parallelizm (ILP) mutaxassislarining muhokamalarida asosiy mavzu bo'ldi. Ikkala kontseptsiyaning tarafdorlari bu munozarani VLIW ning soddaligi va cheklovlari va superskalar tizimlarning dinamik imkoniyatlari o'rtasidagi kontrastga qisqartiradilar. Ammo, yuqorida aytib o'tilganidek, bunday taqqoslash tubdan noto'g'ri. Ko'rinib turibdiki, ikkala yondashuvning ham o'ziga xos tomonlari bor va ularning muqobilligi haqida gapirish o'rinli emas. Kompilyatsiya vaqtida bajarish rejasini yaratish, hatto superskalyar protsessor uchun ham yuqori darajadagi ko'rsatmalar darajasidagi parallelizmga erishish uchun juda muhimdir. Bundan tashqari, kompilyatsiya vaqtida noaniqlik mavjud bo'lib, uni faqat ish vaqtida hal qilish mumkin va protsessor bu muammoni hal qilish uchun dinamik mexanizmlarni talab qiladi. EPIC tarafdorlari ushbu ikkala pozitsiyaga ham rozi bo'lishadi - yagona farq shundaki, EPIC ushbu mexanizmlarni arxitektura darajasida taqdim etadi, shunda kompilyator bunday dinamik mexanizmlarni boshqarishi mumkin va ularni imkon qadar tanlab qo'llaydi. Bunday keng imkoniyatlar kompilyatorga ushbu mexanizmlarni boshqarish qoidalaridan apparat ruxsat berganidan ko'ra optimalroq foydalanishga yordam beradi.

EPIC ning asosiy tamoyillari, ularni qo‘llab-quvvatlaydigan arxitektura imkoniyatlari bilan bir qatorda, keng ko‘lamli dastur sohalarida kamroq apparat murakkabligi bilan ko‘rsatmalar darajasidagi ko‘proq parallellikni ta’minlovchi ILP arxitekturalari va protsessorlarini aniqlash vositalarini taqdim etadi. Aniqrog'i, IA-64 EPIC tamoyillarini umumiy maqsadli hisoblash tizimlariga qanday qo'llash mumkinligiga misol bo'lib, ob'ekt kodining muvofiqligi muhim bo'lgan sohadir. Biroq, vaqt o'tishi bilan EPIC yuqori samarali o'rnatilgan tizimlar bozorida bir xil darajada muhim rol o'ynashiga ishonch bor. Bu sohada yanada qat'iy narx/samaradorlik talablari va ob'ekt moduli darajasida o'zaro ishlash uchun past talablar mavjud bo'lib, bu ko'proq "moslashuvchan" arxitekturalardan foydalanishga majbur qiladi. Ushbu vaziyatni anglagan holda, HP Labs kompaniyasi PICO (Program In, Chip Out) tadqiqot loyihasini boshladi, uning doirasida prototip allaqachon ishlab chiqilgan bo'lib, u erda standart C-da yozilgan o'rnatilgan ilovalarga asoslangan boshqa xususiyatlar bilan bir qatorda avtomatik ravishda loyihalash mumkin. muayyan vazifaga moslashtirilgan EPIC protsessorining arxitekturasi va mikroarxitekturasi. Shunday qilib, EPIC umumiy maqsadli mikroprotsessorlar unumdorligini barqaror oshirish uchun yangi umidlarni beradi, aniq dasturlarni kodni keskin qayta yozmasdan bajaradi.

VLIW protsessorlarining asosiy muammosi, bir tomondan, ketma-ket qo'llash mantig'i va ko'pchilik hisoblash algoritmlarining tabiati, ikkinchi tomondan, VLIW protsessorining bajarilishining parallel tabiati o'rtasidagi ziddiyatdir. Klassik protsessorlarda funktsional birliklar sonining cheklanishi, ehtimol, nafaqat samarali tartibdan tashqari bajarilishini tashkil etishning mumkin emasligi, balki mustaqil ravishda bajarilishi mumkin bo'lgan ko'rsatmalarning cheklangan soni bilan bog'liq.

Agar optimallashtiruvchi qat'iy vaqt cheklovlari bilan cheklanmagan bo'lsa ham (klassik superskalar protsessorlarda bo'lgani kabi), unda, ehtimol, ba'zi algoritmlarda ko'rsatmalarning etarlicha zich qadoqlanishiga erishish mumkin, lekin faqat ba'zilarida. Masalan, doimiy ravishda o'zgarib turadigan ma'lumotlar to'plamiga ega voqealarga asoslangan dasturlarni misol qilib keltirish mumkin, ularni statik optimallashtirish juda qiyin. Ma'lumotlar to'plamini o'zgartirish, masalan, ma'lumotlar bazalari bilan ishlashda ishlashning halokatli pasayishiga olib keladigan vaziyatni taxmin qilish mumkin. Hodisalarning bunday rivojlanishiga yo'l qo'ymaslikning yo'li shunday ko'rinadi - dasturni tuzishda barcha mumkin bo'lgan ma'lumotlar kombinatsiyalarida algoritmning barcha bo'limlarini "o'tish", har bir mumkin bo'lgan vaziyat uchun optimal kodni yaratish. Ammo, shubhasiz, bunday yechim kompilyatsiya qilingan dastur hajmini tushunarli darajada oshirishga olib keladi va bajarish uchun operativ xotiradan optimal kodning turli xil (vaziyatga ko'ra) bo'laklarini yuklash zarurati xotira quyi tizimidagi yukni sezilarli darajada oshiradi. . Shu munosabat bilan, kesh-xotira hajmini oshirish mantiqiy ko'rinadi, masalan, Itanium-ga nisbatan haqiqiy Itanium2-da - va bu ma'lumotlar avtobusining o'tkazish qobiliyati bir necha baravar ortganiga qaramay.

Alohida qiziqish uyg'otadigan narsa, masalan, algoritmning turli bo'limlariga tegishli bo'lgan ko'rsatmalar to'plamini bir vaqtning o'zida bajarish uchun ularni haqiqiy natijani keyinchalik tanlash bilan birlashtirishning nazariy imkoniyatidir. Ushbu usul ishlash nuqtai nazaridan nisbatan soddalashtirilgan holda, filialni bashorat qilish g'oyasini yo'q qilishi mumkin, ammo kod hajmi va xotira yuki nomutanosib ravishda oshadi. Boshqa tomondan, agar dallanma ikkilik emas, balki kattaroq bo'lsa, unda bu holda yuk ham ortadi.

Foydalanilgan adabiyotlar


Hozirgi vaqtda ko'pgina protsessor arxitekturalari RISC-ga o'xshaydi, masalan, ARM, DEC Alpha, SPARC, AVR, MIPS, POWER va PowerPC. Ish stoli kompyuterlarida eng ko'p ishlatiladigan x86 protsessorlari CISC protsessorlari bo'lgan, ammo Intel Pentium Pro (1995) dan boshlab yangiroq protsessorlar RISC yadroli CISC protsessorlaridir. Ular x86 protsessorlarining CISC ko'rsatmalarini bajarishdan oldin oddiyroq ichki RISC ko'rsatmalariga aylantiradi.

X86 arxitektura protsessorlari superskalar RISC arxitekturasiga aylantirilgandan so'ng, bugungi kunda mavjud bo'lgan ko'pchilik protsessorlar RISC arxitekturasiga asoslangan deb aytish mumkin.
Hisoblash tizimlarining tushuntirish lug'ati = Hisoblash lug'ati / Ed. V. Illingvort va boshqalar: Per. ingliz tilidan. A. K. Belotskiy va boshqalar; Ed. E. K. Maslovskiy. - M .: Mashinostroenie, 1990. - 560 b. — 70 000 (qo‘shimcha) nusxa. - ISBN 5-217-00617-X (SSSR), ISBN 0-19-853913-4 (Buyuk Britaniya).

Masalan, VAX arxitekturasidagi INDEX yo'riqnomasi, oddiyroq operatsiyalardan foydalanadigan ekvivalent dasturga qaraganda sekinroq. Qarang: D. A. Patterson, D. R. Ditzel. Qisqartirilgan ko'rsatmalar to'plamini hisoblash uchun holat // SIGARCH Comput. me'mor. Yangiliklar. - 1980 yil oktyabr. - Nashr. 8, 6. - B. 25-33. doi: 10.1145/641914.641917.

Endryu Shulman. Mikroprotsessorlar dasturchi nuqtai nazaridan // Dr. Dobb jurnali. - 1990 yil 1 sentyabr.

Kevin Doud. Yuqori unumdorlikdagi hisoblash. - O'Reilly & Associates, 1993 yil.

Jon "Gannibal" Stokes. RISC va CISC, yonma-yonmi? RISC va boshqalar. CISC: RISCdan keyingi davr. Ars Technica (1999 yil avgust). 2010-yil 11-iyulda olingan. Asl nusxadan 2010-yil 29-iyulda arxivlangan.

Lloyd Borrett. RISC va CISC (kirish mumkin bo'lmagan havola - tarix). Avstraliya shaxsiy kompyuteri (1991 yil iyun). 2010-yil 11-iyulda olingan. Asl nusxadan 2011-yil 23-avgustda arxivlangan.

Sivarama P. Dandamudi. 3-bob: RISC tamoyillari // Dasturchilar va muhandislar uchun RISC protsessorlari bo'yicha qo'llanma. - Springer Nyu-York, 2005. - B. 39-44. — ISBN 978-0-387-21017-9 (chop etish) ISBN 978-0-387-27446-1 (Onlayn). doi: 10.1007/0-387-27446-4_3. (mavjud havola) doi:10.1007/0-387-27446-4_3 - "asosiy maqsad ko'rsatmalar sonini kamaytirish emas, balki murakkablik edi"

Grishman, Ralf. Control Data 6000 Series uchun Assembly tilini dasturlash. Algoritmlar tugmasini bosing. 1974. 12-bet



Protsessor qurilmasi - "Hammasi Hi-Tech haqida". 2015-yil 11-avgustda olindi. 2015-yil 12-avgustda asl nusxadan arxivlangan.
Yüklə 46,18 Kb.

Dostları ilə paylaş:
1   2




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin