MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI URGANCH FILIALI
"Kompyuter injiniring" fakulteti
"Kompyuter arxitekturasi” fanidan
MUSTAQIL ISH
Bajardi: 911-20-guruh talabasi Toshpo`latov Shahzodbek
Qabul qildi: .O’razmetov Toxir
BUYRUQLAR DARAJASIDA PARALLELIKNI TA’MINLASH USULLARI
Reja:
1. BUYRUQLAR DARAJASIDAGI PARALLELLIK
2. MASHINA BUYRUQLARINI QAYTA ISHLASH SIKLI BOSQICHLARI
3. KONVEYERNI QAYTA ISHLASH
4. XULOSA
5. FOYDALANILGAN ADABIYOTLAR
Ko'rsatma darajasidagi parallelizm protsessor tomonidan bir vaqtning o'zida bir nechta mustaqil dastur ko'rsatmalarini bajarishni o'z ichiga oladi. Buning uchun buyruq darajasidagi parallel protsessorlar (ILP) bir nechta funksional birliklarga ega. Bundan tashqari, ILP quvur liniyasining har bir bosqichi soatiga bir nechta ko'rsatmalarni qayta ishlashga qodir. Quvur liniyasi soat siklida bajarishi mumkin bo'lgan ko'rsatmalarning maksimal soni quvur liniyasi kengligi deb ataladi.Konveyerning kengligi konveyerning "eng tor" bosqichining kengligi bilan belgilanadi. ILP protsessorining ma'lum bir dastur bo'yicha haqiqiy ishlashi parallel ravishda bajarilishi mumkin bo'lgan mustaqil ko'rsatmalar soniga bog'liq va quvur liniyasining kengligi bilan cheklangan. Amaldagi dasturlash tillarining aksariyati ketma-ket (C, Fortran, Java) bo'lganligi sababli, ILP protsessorlari ketma-ket dasturlarda parallelizmni aniqlash qiyin vazifaga duch kelishadi.
Mustaqil ko'rsatmalarni aniqlash usuliga ko'ra, ushbu sinfning protsessorlari superscalar va VLIW protsessorlariga bo'linadi (Very Long Instruction Word), ya'ni. uzoq buyruq so'ziga ega protsessorlar.
Superskalar protsessor kompilyatordan dasturni buyruqlar ketma-ketligi shaklida oladi. Dispetcher deb ataladigan protsessordagi maxsus qurilma ushbu ketma-ketlikda mustaqil ko'rsatmalarni dinamik ravishda aniqlaydi, keyinchalik ular parallel bajarish uchun bir nechta funktsional birliklarga taqsimlanadi.
Sperskalar protsessor menejerining ishlash mexanizmi quyidagicha. Ketma-ket va kutilayotgan dastur buyruqlari to'plami "ko'rish oynasi" deb ataladigan oynani tashkil qiladi. Ushbu oynada dispetcher har bir soatda bir nechta bo'lgan bajarishga tayyor buyruqlarni qidiradi va ularni tegishli funktsional birliklarga bajarish uchun yuboradi. Buyruqning barcha bog'liqliklari hal qilingan bo'lsa (barcha unga bog'liq bo'lgan buyruqlar allaqachon bajarilgan bo'lsa) bajarishga tayyor hisoblanadi. Zamonaviy mikroprotsessorning odatda ko'rish maydoni o'lchami 100...200 ko'rsatma.
Amalga oshirish uchun ko'rsatmalarni tanlash usuliga ko'ra, protsessorlar ko'rsatmalarning tartibli bajarilishi va tartibsiz bajarilishi bilan ajralib turadi. Tartibli protsessorda dispetcher ko'rsatmalarni faqat kirish ketma-ketligida paydo bo'ladigan tartibda ko'rib chiqadi. Ko'rsatmalarni tartibli bajarishga ega superskalar protsessorlarga UltraSPARC Tl, Intel Pentium va Intel Atom protsessorlari misol bo'la oladi. Ko'rsatmalarning tartibsiz bajarilishi bilan protsessorda(Oooh) dispetcher butun ko'rish oynasidagi buyruqlarni ko'rib chiqadi. Shunday qilib, OOO protsessori ko'rsatmalarni dasturda paydo bo'lish tartibida amalda bajarmaydi, balki dastur mantiqini buzmagan holda ularni qayta tartiblaydi. Natijada, OoO protsessorining ishlashi odatda yuqori bo'ladi. Quvurning oxirgi bosqichida dasturning to'g'ri bajarilishini ta'minlash uchun chiqishning to'g'ri tartibi tiklanadi. Buyurtmasiz superskalar mikroprotsessorlarga Intel Pentium III, Intel Pentium 4, Intel Xeon, AMD Opteron protsessorlarini misol qilib keltirish mumkin.
Dasturda mustaqil ko'rsatmalar mavjudligi superskalyar protsessorning ishlashi uchun zarur bo'ladi. Arxitektura registrlarining cheklangan to'plami kodda noto'g'ri bog'liqliklar paydo bo'lishiga olib keladi, ya'ni ikkita ko'rsatma mantiqiy jihatdan mustaqil bo'lgan holatlar (masalan, registrga qiymat yozish uchun ikkita ko'rsatma), lekin bir xil arxitektura registridan foydalanganda. . Ishlashni yaxshilash uchun superskalar protsessor registr nomini o'zgartirish mexanizmi yordamida noto'g'ri bog'liqliklarni hal qilishga majbur bo'ladi. Registr nomini o'zgartirish - bu dastur kodida qo'llaniladigan arxitektura registrlarini apparat registrlariga dinamik xaritalash. Arxitektura registrlari soni odatda kichik, masalan, 8, 16, 32. Uskuna registrlari soni ancha katta, masalan, 40, 72, 80, 96.
Shubhasiz, dinamik registr nomini o'zgartirish va mustaqil ko'rsatmalarni topish apparat murakkabligini oshiradi. Superskalar protsessor kristalining muhim qismini boshqaruv mantig'i egallaydi, buning natijasida resurslar (registrlar, funktsional birliklar, kesh xotirasi) uchun kamroq joy mavjud. Uning yana bir kamchiligi shundaki, dinamikada superskalyar protsessor dasturdagi barcha mustaqil ko'rsatmalarni aniqlay olmaydi. Bu, birinchidan, mustaqil buyruqlarni topish uchun tezkor algoritmlardan foydalanish talabi va ikkinchidan, ko'rish oynasining cheklangan uzunligi bilan izohlanadi. Superskalar protsessorning afzalligi parallellashtirish uchun faqat dasturni bajarish vaqtida mavjud bo'lgan ma'lumotlardan foydalanishdir. Bundan tashqari, superskalar protsessorlarning ishlashi, VLIW protsessorlaridan farqli o'laroq,
Superskalar protsessor uchun kompilyator ko'rsatmalarni parallellashtirishda bilvosita ishtirok etadi, chunki u yaratgan kodda mustaqil ko'rsatmalar uchun ko'rsatmalar mavjud emas. Bunday kompilyator qila oladigan eng ko'p narsa mustaqil ko'rsatmalarni protsessor menejeri ularni osongina topishi uchun ketma-ketlikda joylashtirishdir.
Superskalar arxitekturalarga misollar: x86/x86-64, ARM, POWER, PowerPC, Alpha, SPARC.
VLIW protsessorlari, ya'ni . uzun buyruq so'ziga ega protsessorlar kompilyatordan dasturni buyruqlar to'plamlari ketma-ketligi ko'rinishida oladi (26-rasm, b). Har bir to'plamdagi buyruqlar bir-biridan mustaqil va parallel ravishda bajarilishi mumkin. Oddiy buyruqlar to'plami bitta qo'shma buyruq yoki uzun buyruq so'zini tashkil qiladi. Transmeta Crusoe VLIW protsessorining ko'rsatmalar to'plami ko'rsatilgan, u sakkizta mustaqil oddiy ko'rsatmalardan iborat.
VLIW protsessori uchun kompilyator dasturning statik tahlilini amalga oshiradi, mustaqil operatsiyalarni aniqlaydi va VLIW protsessorini bajarish uchun ulanishlar ketma-ketligini hosil qiladi. To'plamdagi ko'rsatmalar soni protsessor arxitekturasi bilan belgilanadi va quvur liniyasining kengligiga teng. Koddagi har bir oddiy ko'rsatma uchun uni bajarish uchun barcha zarur apparat resurslari ko'rsatilgan: apparat registrlari, funktsional birliklar. Agar kompilyator havola hosil qilish uchun yetarlicha mustaqil buyruqlar topmasa, uni NOP (“hech qanday operatsiya”) buyruqlari bilan yakunlaydi. Aslini olganda, kompilyator VLIW protsessorida ko'rsatmalar oqimining bajarilishini deyarli to'liq batafsil rejalashtirishni amalga oshiradi.
Buyruqlarning parallel bajarilishini tashkil etishning bunday usuli protsessor mantig'ini ancha soddalashtiradi: kompilyator mustaqil deb e'lon qilgan buyruqlar o'rtasidagi bog'liqlikni tekshirish yo'q, buyruqlarning tartibsiz bajarilishi yo'q, chunki kompilyator allaqachon belgilab qo'ygan. buyruqlar berilgan tartibda, resurslar to'qnashuvlarini tekshirishning hojati yo'q, chunki barcha kerakli resurslar allaqachon tayinlangan. VLIW protsessor menejeri faqat dasturda kodlangan ko'rsatmalarni bajaradi. Boshqaruv mantig'i VLIW protsessor chipida kam joy egallab, resurslar uchun ko'proq joy qoldiradi. Natijada, odatiy VLIW protsessorlarining quvur liniyasi kengligi (oltidan sakkiztagacha ko'rsatmalar) odatdagi superskalyar protsessorlarning quvur liniyasi kengligidan (uchdan beshgacha ko'rsatmalar) kattaroqdir. Bundan tashqari, VLIW protsessorlarining ko'p vazifalarda amalda erishilgan ishlashi superskalar protsessorlarga qaraganda yuqori.
Boshqa tomondan, kompilyatsiya bosqichida dasturni bajarishning batafsil rejasini shakllantirish parallelizmning bir qismini umuman aniqlab bo'lmasligiga olib keladi, chunki kompilyatorda hisoblash paytida hosil bo'lgan bog'liqliklar haqida ma'lumot yo'q. Ba'zi hollarda buyruqlar turli xil dasturlarni ishga tushirishga bog'liq yoki mustaqil bo'lishi mumkin (masalan, turli xil dastur kiritishlari uchun). VLIW protsessorining kompilyatori eng umumiy holat uchun parallel kod ishlab chiqaradi, ya'ni har qanday dastur kiritish uchun to'g'ri ishlashi kerak bo'lgan kod. Va agar ikkita ko'rsatma qaram bo'lib qolishi mumkin bo'lsa, kompilyator ularga ketma-ket bajarilishini belgilashga majbur bo'ladi, garchi aksariyat hollarda bu ko'rsatmalar mustaqil bo'lsa ham.
Atanasoff-Berry kompyuteri, birinchi parallel ishlov beruvchi kompyuter
Ko'rsatmalar darajasi parallelizmi (ILP) - kompyuter dasturidagi qancha ko'rsatmalar bir vaqtning o'zida bajarilishi mumkinligini ko'rsatadigan o'lchovdir .
ILPni parallellik bilan aralashtirib yubormaslik kerak :
ILP - bu ma'lum bir jarayonning bajarilishiga tegishli bo'lgan buyruqlar ketma-ketligini parallel ravishda bajarish ( resurslar to'plami bilan ishlaydigan dastur: manzil maydoni , registrlar to'plami , uning identifikatorlari, holati, dastur hisoblagichi (ko'rsatma ko'rsatgichi) va boshqalar) .).
Boshqa tomondan, bir vaqtning o'zida bir xil yoki turli jarayonlarning ish zarralarini bir xil protsessor yadrosiga qat'iy interleading yoki haqiqiy parallelizmda protsessor yadrolari etarli bo'lsa, har bir ishlayotgan ipga bitta yadro belgilashni o'z ichiga oladi.
Ko'rsatmalar darajasidagi parallelizmga ikkita yondashuv mavjud: Uskuna va dasturiy ta'minot .
Uskuna qatlami dinamik parallelizm bilan, dasturiy ta'minot qatlami esa statik parallelizm bilan ishlaydi. Dinamik parallelizm protsessor qaysi ko'rsatmalarni parallel ravishda bajarish kerakligini ish vaqtida hal qilishini bildiradi, statik parallelizm esa kompilyator qaysi ko'rsatmalarni parallel ravishda bajarishni hal qiladi. Pentium protsessori dinamik parallel bajarish ketma-ketligida, Itanium protsessori esa statik parallellik qatlamida ishlaydi.
Quyidagi dasturni ko'rib chiqing:
1 e = a + b 2 f = c + d 3 m = e * f
3-operatsiya 1 va 2-operatsiyalar natijalariga bog'liq, shuning uchun ikkalasi ham bajarilmaguncha uni baholab bo'lmaydi. Biroq, 1 va 2 operatsiyalar boshqa operatsiyalardan mustaqil, shuning uchun ularni bir vaqtning o'zida baholash mumkin. Agar har bir operatsiyani bir vaqt birligida bajarish mumkin deb hisoblasak, bu uchta ko'rsatma ILP 3/2 ni berib, jami ikki vaqt birligida bajarilishi mumkin.
Kompilyator va protsessor ishlab chiquvchilarning maqsadi ILPning mumkin bo'lgan eng yuqori darajasini aniqlash va ishlatishdir. Oddiy dasturlar odatda ketma-ket bajarilish modelida yoziladi, bunda buyruqlar birin-ketin va dasturchi belgilagan tartibda bajariladi. ILP kompilyator va protsessorga bir nechta ko'rsatmalarning bajarilishini bekor qilish yoki hatto ko'rsatmalarni bajarish tartibini o'zgartirish imkonini beradi.
Dasturlarda ILP qay darajada qo'llanilishi ma'lum dasturga bog'liq. Grafika va ilmiy hisoblash kabi ba'zi sohalarda bu miqdor juda katta bo'lishi mumkin. Biroq, kriptografiya kabi ish yuklari kamroq parallellik ko'rsatishi mumkin.
ILP dan foydalanish uchun mikroarxitektura texnikasi quyidagilarni o'z ichiga oladi:
ko'rsatmalar quvur liniyasi , unda bir nechta ko'rsatmalarning bajarilishi bir-biriga mos kelishi mumkin.
superscalar bajarish, VLIW va chambarchas bog'liq bo'lgan aniq parallel ko'rsatmalarni hisoblash tushunchalari , bunda bir nechta ijro birliklari bir nechta ko'rsatmalarni parallel ravishda bajarish uchun ishlatiladi.
Ko'rsatmalar ma'lumotlarga bog'liqlikni buzmaydigan har qanday tartibda bajariladigan tartibsiz bajarish . Shuni esda tutingki, bu usul quvur liniyasi yoki superskalyar bajarilishiga tayanmaydi. Dinamik ravishda (ya'ni, dasturni bajarish paytida va kompilyatorning yordamisiz) tartibsiz bajarishning joriy ilovalari oddiy dasturlardan ILPlarni chiqaradi . Shu bilan bir qatorda, kompilyatsiya vaqtida ushbu parallelizmni ajratib olish va bu ma'lumotni apparatga o'tkazish. Buyurtmasiz bajarish texnikasini masshtablash qiyinligi tufayli sanoat ko'rsatmalar to'plamini qayta aniqladi, ular har bir ko'rsatma uchun bir nechta mustaqil operatsiyalarni aniq kodlaydi.
Registr nomini o'zgartirish , bu registrning ushbu operatsiyalar tomonidan qayta ishlatilishi natijasida kelib chiqadigan dastur operatsiyalarini keraksiz ketma-ketlashtirishning oldini olish uchun qo'llaniladigan, tartibsiz bajarilishini ta'minlash uchun foydalaniladigan texnikani anglatadi.
Spekulyativ ijro , bu ko'rsatmalarning to'liq qismlarini yoki uning bajarilishi kerakligiga ishonch hosil qilishdan oldin bajarilishiga imkon beradi. Spekulyativ bajarishning keng tarqalgan shakli - bu nazorat oqimi bo'yicha spekulyatsiya bo'lib, bu erda nazorat oqimi bo'yicha ko'rsatma (masalan, filial) bo'yicha ko'rsatmalar nazorat oqimi bo'yicha ko'rsatmaning maqsadini aniqlashdan oldin bajariladi. Spekulyativ ijroning bir qancha boshqa shakllari taklif qilingan va qo'llanilmoqda, jumladan, spekulyativ ijro, nazorat ostida bajarilish, xotiraga bog'liq bashorat va boshqalar.
filialni bashorat qilish , bu nazorat bog'liqliklarini hal qilish uchun to'xtab qolmaslik uchun ishlatiladi. Filialni bashorat qilish spekulyativ ijroda qo'llaniladi.
Ma'lumki, ILP kompilyator va apparat yordami tomonidan qo'llaniladi, ammo kompilyator kompilyatsiyani optimallashtirish orqali apparat dasturlarida ichki va yashirin ILP ni ham ta'minlaydi. Dasturlarda mavjud ILPni ajratib olish uchun ba'zi optimallashtirish usullari rejalashtirish, registrlarni ajratish/nomini o'zgartirish va xotiraga kirishni optimallashtirishni o'z ichiga olishi mumkin.
Ma'lumotlar oqimi arxitekturasi - bu ILP aniq ko'rsatilgan arxitekturalarning yana bir sinfidir, so'nggi misol uchun TRIPS arxitekturasiga qarang .
So'nggi yillarda protsessorning ishlash chastotalari va xotiraga kirish vaqtlari o'rtasidagi nomuvofiqlik kuchayib borayotganiga qaramay ( IBM System/360 Model 91 kabi dastlabki ILP dizaynlarida) ILP usullari ish faoliyatini yaxshilash uchun ishlatilgan., ILP texnikasi nisbatan kichik registr faylining cheklovlarini yengish uchun ishlatilgan). Hozirgi vaqtda asosiy xotiraga kesh o'tkazib yuborilganligi uchun jazo bir necha yuz protsessor tsiklidir. Hatto ushbu xotira kechikishlarini hal qilish uchun ILP dan foydalanish printsipial jihatdan mumkin bo'lsa-da, u bilan bog'liq manba va quvvat sarfi nomutanosibdir. Bundan tashqari, asosiy apparat tuzilmalarining murakkabligi va ko'pincha kechikishi ish chastotasining pasayishiga olib keladi va har qanday afzalliklarni yanada kamaytiradi. Shu sababli, yuqoridagi usullar protsessordan tashqaridagi ma'lumotlar tufayli protsessorning osib qo'yilishining oldini olish uchun etarli emasligini isbotlaydi. Buning o'rniga, sanoat parallelizmning yuqori darajalariga o'tmoqda, undan ko'p ishlov berish va qayta ishlash kabi usullardan foydalanish mumkin .ko'p ish zarralari .
XULOSA
Men Toshpo’latov Shaxzodbek bu mustaqil ishdagi izlanishlarim natijasida ko’plab yangi narsalarni o’rganib oldim.” BUYRUQLAR DARAJASIDA PARALLELIKNI TA’MINLASH USULLARI” mavzusida men buyruqlarni qanday berilishi buyruqlar qanday tarzda ifodalanishi xaqida,protsessorda bu vazifalar qanday bajariladi va qanday qilib bunday usullar qo’llanilishini o’rganib oldim va o’z bilimlarimni xam boyitib mustahkamlab oldim.
Do'stlaringiz bilan baham: |