VLIW protsessorining mantiqiy qatlami
Quyida keltirilgan sxemaga ega bo'lgan VLIW protsessori ekstremal holatda har bir tsiklda sakkizta operatsiyani bajarishi va mavjud superskalar chiplarga qaraganda ancha past takt chastotasida ishlashi mumkin. Qo'shimcha funktsional bloklar chipni haddan tashqari murakkablashtirmasdan ishlashni yaxshilashi mumkin (resurslar tortishuvini kamaytirish orqali). Biroq, bu 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 blok yuklangan bo'lishini ta'minlash uchun dasturni kerakli darajaga parallellashtirishi kerak - bu, menimcha, eng muhim nuqta,
Ushbu faraziy ko'rsatma sakkizta operatsion maydonga ega bo'lib, ularning har biri an'anaviy uch operandli RISC ko'rsatmalarini bajaradi, masalan = - - (klassik MOV AX BX yo'riqnomasi kabi) ) va ma'lum bir funktsiya blokini minimal dekodlash bilan bevosita boshqarishi mumkin.
Aniqroq bo'lish uchun VLIWni amalga oshirish misollaridan biri sifatida IA-64 ni qisqacha ko'rib chiqing. Vaqt o'tishi bilan, bu arxitektura x86 (IA-32) ni nafaqat bozorda, balki umuman sinf sifatida siqib chiqarishga qodir, garchi bu allaqachon uzoq kelajakning taqdiri. Shunga qaramay, IA-64 uchun juda murakkab kompilyatorlarni ishlab chiqish zarurati va optimallashtirilgan mashina kodlarini yaratish qiyinligi IA-64 assemblerida ishlaydigan mutaxassislarning etishmasligiga olib kelishi mumkin, ayniqsa dastlabki bosqichlarda, eng murakkablari sifatida.
RISC bo'yicha IA-64 ning eng radikal yangiligi bu aniq ko'rsatmalar parallelligi (EPIC) bo'lib, u paketlar deb ataladigan o'ta uzun buyruq so'zi arxitekturasini eslatuvchi ba'zi elementlarni taqdim etadi. Shunday qilib, ikkala arxitekturada ham aniq parallelizm funktsional ijro etuvchi qurilmalarning (yoki funktsional modullar yoki oddiygina funktsional qurilmalar, FU) bir vaqtning o'zida ishlashini boshqaruvchi buyruqlar darajasida taqdim etilgan.
Bunday holda, to'plam 128 bit uzunlikda bo'lib, har biri 41 bit uzunlikdagi buyruqlar uchun 3 ta maydonni va 5 bitli shablon slotini o'z ichiga oladi. Ko'prik buyruqlari turli FUlar tomonidan parallel ravishda bajarilishi mumkin deb taxmin qilinadi. Shablon maydonida bir xil to'plamdagi buyruqlarning parallel bajarilishiga to'sqinlik qiladigan mumkin bo'lgan o'zaro bog'liqliklar aks ettirilgan. Biroq, turli to'plamlardagi buyruqlarni parallel ravishda bajarish mumkin emasligi ta'kidlanmagan. Har bir soat siklida oltita ko'rsatmaga yetadigan bajarilish parallelizmining e'lon qilingan darajasiga asoslanib, kamida ikkita bog'lanish bir vaqtning o'zida bajarilishi mumkinligini taxmin qilish mantiqan to'g'ri keladi.
Shablon to'plamning uyalarida qanday turdagi buyruqlar mavjudligini ko'rsatadi. Umuman olganda, bir xil turdagi buyruqlar bir nechta turdagi funktsional birliklarda bajarilishi mumkin. Shablon buyruqlar bajarilishi boshlangandan so'ng, keyingi maydonlarning ko'rsatmalari bajarilishini kutishi kerak bo'lgan uyani belgilaydigan to'xtash joylarini belgilaydi. To'plamdagi slotlarning tartibi (o'ngda muhimroq) bayt tartibiga ham mos keladi (Kichik Endian), ammo xotiradagi ma'lumotlar Big Endian rejimida ham joylashishi mumkin (chapda muhimroq), bu tomonidan o'rnatiladi. foydalanuvchi maskalari registridagi maxsus bit.
Aylanadigan registrlar qaysidir ma'noda tartibsiz spekulyativ ("spekulyativ") buyruqlar bajarilishi bilan ko'plab zamonaviy superskalar protsessorlarda qo'llaniladigan registr nomini o'zgartirishning alohida holatidir. Bundan 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 statik registrlar, agar kerak bo'lsa, tegishli ko'rsatmalarni aniq kodlash bilan saqlanishi va tiklanishi kerak.
Aytgancha, IA-64 qo'mondon tizimi juda noyobdir. Asosiy xususiyatlar qatorida biz buyruqlarning spekulyativ bajarilishini va predikatlardan foydalanishni alohida ta'kidlashimiz kerak - IA-64 ning eksklyuzivligini aniqlaydigan ushbu kichik to'plam. Bunday barcha ko'rsatmalarni registrlar stegi bilan ishlash bo'yicha ko'rsatmalarga, butun son ko'rsatmalariga, predikatlar bilan taqqoslash va ishlash bo'yicha ko'rsatmalarga, xotiraga kirish ko'rsatmalariga, o'tish ko'rsatmalariga, multimediya ko'rsatmalariga, registrlar o'rtasida uzatish ko'rsatmalariga, "turli" (satrlar va hisoblash bo'yicha operatsiyalar) bo'linishi mumkin. worddagi birlar soni) va suzuvchi nuqta buyruqlari.
VLIW protsessorining apparatli amalga oshirilishi juda oddiy: protsessor shinasiga ulangan bir nechta kichik funksional modullar (qo‘shish, ko‘paytirish, tarmoqlanish va h.k.) va bir nechta registrlar va kesh xotira bloklari. VLIW arxitekturasi ikki sababga ko'ra yarimo'tkazgich sanoatini qiziqtiradi. Birinchisi, endi chipda, aytaylik, filialni bashorat qilish birligi uchun emas, balki qayta ishlash birliklari uchun ko'proq joy 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 (juda past darajadagi til,
Kompyuter xotirasi qimmat bo'lgan kunlarda dasturchilar STOS va LODS (xotiradan bilvosita yozish / o'qish) kabi x86 protsessorining murakkab ko'rsatmalariga murojaat qilish orqali uni saqlab qolishdi. CISC protsessor tomonidan bajariladigan va faqat o'qish uchun mo'ljallangan xotirada (ROM) proshivka kabi ko'rsatmalarni amalga oshiradi. RISC arxitekturasi ko'rsatmalarni faqat apparat usulida amalga oshirib, mikrokoddan foydalanishni butunlay yo'q qiladi - aslida RISC protsessorining ko'rsatmalari CISCda ishlatiladigan mikrokod bilan deyarli bir xil. VLIW buni boshqacha qiladi - u protsessordan mikrokod yaratish tartibini (va haqiqatan ham bajarish 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. Lekin shu bilan birga, Bu ham ba'zi qiyinchiliklarni keltirib chiqaradi, chunki oqilona samarali mikrokod yozish juda ko'p vaqt talab qiladigan jarayondir. VLIW arxitekturasini faqat ishni o'z zimmasiga oladigan "aqlli" kompilyator qo'llab-quvvatlashi mumkin. Aynan shu holat VLIW arxitekturali kompyuterlardan foydalanishni cheklaydi: hozirgacha ular asosan vektor (ilmiy hisoblar uchun) va signal protsessorlarida qo'llanilishini topdilar.
Do'stlaringiz bilan baham: |