VLIW kompilyatori qanday ishlaydi
Umumiy maqsadli hisob-kitoblarni amalga oshirish uchun ishlatilishi mumkin bo'lgan arxitektura sifatida VLIW-ga yaqinda yangilangan qiziqish VLIW kompilyatsiya texnikasining rivojlanishiga sezilarli turtki berdi. Bunday kompilyator mustaqil operatsiyalar guruhlarini juda uzun ko'rsatma so'zlariga to'playdi, shunday qilib tez ishga tushirish va funktsional modullar tomonidan samaraliroq bajarilishini ta'minlaydi. Kompilyator avval ma'lumotlar o'rtasidagi bog'liqlikni aniqlaydi va keyin ularni qanday ajratishni aniqlaydi. Ko'pincha, bu butun dasturni qayta tartiblash orqali amalga oshiriladi - uning turli bloklari bir joydan ikkinchisiga ko'chiriladi. Ushbu yondashuv ish vaqtida bog'liqliklarni aniqlash uchun maxsus apparat yechimidan foydalanadigan superskalar protsessorda qo'llaniladiganidan farq qiladi (albatta, kompilyatorlarni optimallashtirish, superskalar protsessorning ishlashini yaxshilang, lekin uni ularga "bog'lab qo'ymang"). Aksariyat superskalar protsessorlar bog'liqliklarni aniqlay oladi va faqat asosiy dastur bloklari doirasida parallel bajarilishini rejalashtirishi mumkin (ularning ichida uzilish yoki mantiqiy filialni o'z ichiga olmaydi, faqat oxirida ruxsat etiladigan ketma-ket dastur bayonotlari guruhi). Ba'zi qayta tartiblash tizimlari skanerlash maydonini asosiy bloklar bilan cheklamasdan kengaytirishga kashshof bo'ldi. Ko'proq parallellikni ta'minlash uchun VLIW kompyuterlari ushbu operatsiyalarni bir xil uzun yo'riqnomaga moslashtirish uchun turli xil asosiy bloklardagi operatsiyalarni kuzatishi kerak (ularning "ko'rish maydoni" superskalar protsessorlarga qaraganda kengroq bo'lishi kerak) - bunga "marshrut" ni o'rnatish orqali erishiladi. "dastur davomida (iz). Kuzatuv dastlabki ma'lumotlarning ma'lum bir to'plami uchun eng maqbul dastur marshrutidir (to'g'ri natijani ta'minlash uchun bu ma'lumotlarning kesishmasligi kafolatlanadi), ya'ni. parallel bajarish uchun mos bo'limlar bo'ylab "o'tadigan" marshrut (bu bo'limlar, jumladan, dasturning boshqa joylaridan kod o'tkazish orqali shakllanadi), shundan so'ng ularni uzoq ko'rsatmalarga to'plash va ularni bajarish uchun o'tkazish qoladi. Hisoblash rejalashtiruvchisi optimallashtirishni uning alohida asosiy bloklari emas, balki butun dastur darajasida amalga oshiradi. VLIW uchun, shuningdek, RISC uchun dasturda tarmoqlanish "dushman" bo'lib, uning samarali bajarilishiga to'sqinlik qiladi. RISC filialni bashorat qilish uchun apparat yechimidan foydalansa-da, VLIW buni kompilyatorga qoldiradi. Kompilyatorning o'zi dasturni profillash orqali to'plangan ma'lumotlardan foydalanadi, bo'lajak VLIW protsessorlari to'g'ridan-to'g'ri dasturni bajarish paytida kompilyator uchun statistik ma'lumotlarni to'plashni ta'minlaydigan kichik apparat kengaytmasiga ega bo'lishi kerak bo'lsa-da, bu o'zgaruvchilar to'plami bilan tsiklik ishlash uchun printsipial jihatdan muhimdir. Kompilyator eng mos marshrutni bashorat qiladi va uni bitta katta asosiy blok sifatida ko'rib chiqishni rejalashtiradi, so'ngra bu jarayonni bundan keyin paydo bo'ladigan barcha boshqa tarmoqlar uchun takrorlaydi va dasturning oxirigacha davom etadi. Shuningdek, u kodni tahlil qilishda dastur siklini ochish va IF-transformatsiyasi kabi boshqa “aqlli qadamlar”ni qanday qilishni biladi, bunda barcha mantiqiy o‘tishlar kuzatilayotgan bo‘limdan vaqtinchalik olib tashlanadi. RISC faqat filiallarga qarashi mumkin bo'lgan joyda, VLIW kompilyatori uni filial aniqlanmaguncha (iz bo'yicha) bir joydan ikkinchi joyga ko'chiradi, lekin agar kerak bo'lsa, dasturning oldingi 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 filialli operatsiyalar bitta uzun ko'rsatmaga kiritilishi mumkin va shuning uchun bitta mashina siklida 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'lashingiz kerak bo'lgan narx
Do'stlaringiz bilan baham: |