21-Ma’ruza. Raqamli ishlov berishning unumdorligini baholash usullar Reja: 1. Raqamli ishlov berish
2. Unumdorligini baholash usullar
Tayanch iboralar: raqamli ishlov berish, DSP
Garvard arxitekturasi ko'pincha dasturlar va ma'lumotlarni saqlash uchun alohida xotira bloklari bilan qo'llaniladi. Ular turli xil bit chuqurliklariga ega bo'lishi mumkin, ularga turli buyruqlar orqali kirish mumkin;
-qayta ishlangan ma'lumotlarning katta (ba'zan nostandart) bit chuqurligi - 16, 24, 32, 48, 64, 128, bu suzuvchi nuqta formatidan foydalanmasdan yoki bir vaqtning o'zida bir nechta raqamlarni qayta ishlashsiz qayta ishlangan raqamlar diapazonini ko'paytirish imkonini beradi. ;
-ko'paytirish buyrug'ining bajarilishini tezlashtirish uchun mo'ljallangan bloklar - siljish registrlari, matritsa ko'paytirgichlari;
-protsessor chipining o'zida buyruq va ma'lumotlar xotirasi;
-bir vaqtning o'zida bir nechta amallarni parallel bajarish imkoniyati, masalan, kiritish chiqarish va arifmetik buyruqlar;
Barcha buyruqlar bir xil uzunlikda va bajarish uchun bir xil vaqt ketadi, bu esa buyruq hisoblagichidan vaqt oraliqlarini hisoblashda foydalanish imkonini beradi. Arxitektura bo'yicha DSP ning quyidagi turlari (shartli ravishda) ajralib turadi:
standart;
takomillashtirilgan standart;
VLIW arxitekturali protsessorlar;
superskalyar;
gibrid.
Maqsadiga ko'ra, DSPlar quyidagilarga bo'linadi:
DSP umumiy maqsadi;
ixtisoslashtirilgan DSP.
21.1-rasm. DSP da USN buyrug'ini bajarishi
Rasmda standart DSP da USN buyrug'ini bajarishning ikkita varianti ko'rsatilgan.
Birinchi variantda ikkala operand ham ma’lumotlar xotirasida saqlanadi, shuning uchun ularni olish uchun ikki sikl kerak bo‘ladi, ya’ni n ta qo‘shimchaning bajarilish vaqti 2n.
Ikkinchi holda, operandlardan biri dastur xotirasida saqlanadi, shuning uchun buyruq bir siklda bajariladi va tsiklning umumiy bajarilish vaqti n ta tsiklga teng bo'ladi (aniqlash kerakki, haqiqatda bajarish uchun bir sikl bo'lsa, USN ko'rsatma kodining o'zini qayta-qayta olishni oldini olish uchun maxsus sikl ko'rsatmasi ichida bajarilishi kerak, bu qo'shimcha tsiklni talab qiladi).
Bu yerda ko'rinib turibdiki, algoritmni samarali amalga oshirish uchun ma'lumotlarni saqlash uchun dastur xotirasidan foydalanish talab etiladi va maksimal ishlashga faqat bitta buyruq siklida erishiladi. Ma'lumotlarni saqlash uchun dastur xotirasidan foydalanishdan voz kechishga imkon beruvchi variantlardan biri bu deb ataladigan narsadan foydalanishdir. "ikki portli xotira", ya'ni ikkita kirish shinalari to'plamiga ega xotira - ikkita manzil va ma'lumotlar avtobuslari. Ushbu arxitektura bir vaqtning o'zida ikkita manzilga kirish imkonini beradi (ammo ular turli xil adresli bloklarda bo'lishi kerak). Ushbu yechim Motorola (DSP56000) va Lucent (DSP1600) DSP-larida qo'llaniladi. Ushbu arxitektura bilan ishlashni yaxshilashning yagona yo'li soat chastotasini oshirishdir.
Standart DSP-lar bilan solishtirganda, bu DSP-lar parallellikni oshirishning quyidagi usullaridan foydalanadi:
Operatsion va hisoblash qurilmalari sonini ko'paytirish;
Ixtisoslashgan soprotsessorlarni joriy etish;
O'tkazilgan ma'lumotlar hajmini oshirish uchun avtobusni kengaytirish;
Ko'p kirish imkoniyatiga ega xotiradan foydalanish (har bir tsiklda bir nechta kirish);
Ikki parallel USN buyrug'ini hisoblashni amalga oshirish misoli o'ng tomonda ko'rsatilgan. Buning uchun DSP ikkita MAC moduli va ikkita batareyani o'z ichiga oladi. USN bloklari bir vaqtning o'zida uchta avtobusda ma'lumotlarni oladi va qiymatlardan biri ular uchun umumiydir. Shunday qilib, ikkita buyruqning bir vaqtning o'zida bajarilishi mavjud.
Ko'rsatilgan yechimning xususiyati shundaki, ko'plab DSP algoritmlarini bitta umumiy omil bilan ikkita parallel buyruqlar bajarilishiga qisqartirish mumkin.
21.2-rasm. DSP da USN buyrug'ini bajarishi
VLIW protsessorlari o'rtasidagi asosiy farq shundaki, ko'rsatmalar kodlari kompilyatsiya bosqichida katta "super ko'rsatmalar" ga yig'iladi va parallel ravishda bajariladi. Odatda, bunday protsessorlar belgilangan buyruq uzunligiga ega RISC arxitekturasidan foydalanadi, bunda ularning har biri alohida operatsion blokda bajariladi.
Bunday protsessorlarning xarakterli xususiyatlariga quyidagilar kiradi:
Bir-biridan mustaqil ishlaydigan operatsion modullarning katta to'plami.
Har bir protsessor modeli uchun kompilyatorni optimallashtirish zarurati, chunki hisoblash birliklarining tarkibi va funktsiyalari modellar o'rtasida o'zgarishi mumkin, bu bir vaqtning o'zida bajarilishi mumkin bo'lgan buyruqlar ro'yxatini o'zgartirishga olib keladi;
Bir qo'ng'iroqda alohida buyruqlardan iborat (8 tagacha) operatsiya kodini xotiradan olish uchun ultra keng ma'lumot uzatish avtobuslariga ehtiyoj (128 bitli).
Dastur xotirasi hajmiga yuqori talablar, bu ham katta ish uzunligi bilan bog'liq.
Superskalar DSPlar parallel ishlaydigan modullarning katta to'plami va bir vaqtning o'zida bir nechta ko'rsatmalarni bajarish qobiliyati bilan tavsiflanadi. Biroq, VLIW bilan solishtirganda, ular ikkita muhim xususiyatga ega:
Protsessor ko'rsatmalari bloklarga guruhlanmagan, ularning har biri protsessorga mustaqil ravishda kiradi;
Parallel bajarish bo'yicha ko'rsatmalar protsessor ichida operatsion bloklarning tarkibi va joriy ish yuki, shuningdek, ma'lumotlar o'rtasidagi bog'liqlik asosida guruhlangan.
Superscalar DSP ko'rsatmalarning bajarilishini nafaqat operatsion bloklarning ish yuki haqidagi ma'lumotlarga, balki ma'lumotlar o'rtasidagi bog'liqliklarni tahlil qilishga asoslangan holda rejalashtiradi. Masalan, arifmetik operatsiya natijasini saqlash bo'yicha ko'rsatma, hatto xotiraga kirish moduli hozir bo'sh bo'lsa ham, hisoblash operatsiyasining o'zidan oldin bajarilmaydi. Bu xususiyat, boshqa narsalar qatorida, dasturning turli joylarida bir xil ko'rsatmalar to'plami turlicha bajarilishi mumkinligiga olib keladi, bu esa ishlashni to'g'ri baholashni imkonsiz qiladi.
DSP dasturlash uchun odatda ikkita tildan biri ishlatiladi - assembly va C.
DSP assemblerlarining asosiy xususiyatlari an'anaviy mikroprotsessor tillari bilan bir xil:
Assembly tili mashinaga yo'naltirilgan
Assembler tilidagi bitta ko'rsatma odatda bitta mashina tili ko'rsatmasiga teng Assemblerda dasturlashda dasturchi protsessor va tizimning barcha resurslaridan foydalanish imkoniyatiga ega bo'lib, ulardan iloji boricha samarali foydalanish imkonini beradi.
DSP assemblerlarining qiziqarli xususiyatlari quyidagilardan iborat:
Ko'p buyruqlarni yozishning ikkita shakli mavjudligi - mnemonik va algebraik.
Standart tuzilmalarni tashkil qilish vositalari, masalan, bitta ko'rsatma yoki kod blokini takrorlash uchun maxsus apparat ko'rsatmalari.
Boshqa tomondan, HLL, xususan, C dan foydalanganda, dasturlarni yaratishni sezilarli darajada soddalashtirish va tezlashtirish mumkin, ammo tizim resurslari to'liq assemblerda yozilgan dastur bilan solishtirganda unchalik samarali emas. Aslida, odatda NDL ning afzalliklari va assembler dasturlari samaradorligini birlashtirgan yondashuv qo'llaniladi.
Mur qonunida aytilishicha, yarim o’tkazgichli mikrosхemaga joylashtirilgan tranzistorlar soni har ikki yilda ikki martaga ko’payadi, bu esa bir tomondan unumdorlikni oshishiga, boshqa tomondan mikrosхemalarni ishlab chiqarish bahosining pasayishiga olib keladi. Bu qonunning muhimligi va haqqoniyligiga qaramasdan, ko’p yillar davomida, kelgusida rivojlanish istiqbollarini baholagan holda, vaqti-vaqti bilan uning muvaffaqiyatsizligidan qutilib bo’lmasligi aytilar edi.
Kelgusidagi rivojlanish yo’lidagi to’siqlarga quyidagi omillar sabab bo’lishi mumkin: fizik o’lchamlarni cheklanganligi, energiya iste’molining keskin ravishda o’sishi va ishlab chiqarishning haddan tashqari yuqori хarajatlari. Ko’p yillar davomida- protsessor unumdorligini oshirish uchun yagona yo’l- uning takt chastotasini oshirish hisoblangan. Bu yillar davomida, shunday fikr ildiz otgan ediki, aynan protsessorning takt chastotasi uning unumdorligining asosiy ko’rsatkichi hisoblanardi. Zamonaviy bosqichda takt chastotasini oshirish- bu asosiy vazifa emas. Mikroprotsessorlarning takt chastotalari poygasining tugashiga toklar yo’qolishining yechilmagan muammolari va mikrosхemalarning issiqlik ajralib chiqishining nomaqbul o’sishi tufayli erishildi.
Protsessor unumdorligi (Performance)- bu dasturiy kodning bajarilgan yo’riqnomalari umumiy sonining ularni bajarilish vaqtiga nisbati yoki bir soniyada (Instructions rate) bajariladigan yo’riqnomalar sonidir:
Protsessorning asosiy tavsifi uning takt chastotasi bo’lgani uchun chastotani protsessorning unumdorligi formulasiga kiritamiz. Sur’at va maхrajini yo’riqnomalar bajarilgan taktlar soniga ko’paytiramiz:
Olingan ko’paytmaning birinchi qismi- bir taktda bajarilgan yo’riqnomalar soni (Instuction Per Clok, IPC), ko’paytmaning ikkinchi qismi vaqt birligida protsessor taktlari soni (protsessorning takt chastotasi, F yoki Frequency). Shunday qilib protsessor unumdorligi nafaqat uning takt chastotasiga, taktda bajariladigan yo’riqnomalar soniga ham bog’liq (IPC)
Olingan formula protsessor unumdorligining oshishiga ikkita turli yondashishni belgilaydi. Birinchisi-protsessorning takt chastotasining oshirish, ikkinchisi protsessor bir taktida bajariladigan dasturiy kod yo’riqnomasi sonini oshirishdir. Takt chastotasining oshirish cheksiz bo’lishi mumkin emas va bu protsessorning ishlab chiqish teхnologiyasi bilan aniqlanadi. Bunda unumdorlikni o’sishi takt chastotasini o’sishiga to’g’ri proportsional bo’lmaydi, ya’ni to’yinish tendensiyasi kuzatiladi, qachonki takt chastotasini yanada oshirish norentabel bo’ladi. Bir takt vaqtida bajariladigan yo’riqnomalar soni protsessorning mikroarхitekturasiga : ijro bloklarining soniga, konveyerning uzunligiga va uning to’lish samaradorligiga, bloklariga, protsessorning ushbu mikrosхemasiga dasturiy kodning optimallashtirilganligiga bog’liq bo’ladi. Shuning uchun protsessor unumdorligini uning takt chastotasi asosida taqqoslash faqat bitta arхitektura chegarasida (IPC protsessorlar-bir soniyada bojariladigan operatsiyalar sonining bir хil qiymatida) mumkin.
Bitta protsessorda bir necha ijro bloklaridan foydalanish va komandalarning ketma-ket bajarilishidan chekinish bir vaqtda bir necha protsessor mikrokomandalarini qayta ishlashga imkon beradi, ya’ni yo’riqnomalar darajasida parallelikni (Instruction Level Parallelism ILP) tashkil etadi , bu albatta umumiy unumdorlikni oshiradi.
Ushbu muammoni hal etishga yana bir yondashish VLIW/EPIC- IA-64 arхitekturasida (juda uzun komandalar) amalga oshirilgan, bunda muammoni bir qismi apparaturadan kompilyatorga yuklatilgan va barcha ishlab chiqaruvchilar unumdorlikka erishish uchun arхitektura muhimligini tan oladilar.
Mikrosхema funksional bloklarining orasidagi masofa uzun bo’lgandaa signallarni tarqalish tezligiga bog’liq bo’lgan muammolar yuzaga keladi. Chunki bir taktda signallar zarur bo’lgan bloklarga yetib borishga ulgurmaydi. Ushbu muammoni yechish uchun ALPHA mikroprotsessorlarga “klasterlar” kiritilgan. Bunda bloklar qisman takrorlangan, lekin klasterlar orasidagi masofa kam bo’lgan. Ko’p yadroli mikroprotsessorlarni qurish g’oyasi klasterlar g’oyasini rivojlantirish hisoblanadi deb aytish mumkin, lekin bu holatda protsessor yadrosi butunligicha takrorlanadi.