12- ma’ruza Parallel hisoblash tizimlari Reja: Parallel tizim arxitektura kategoriyalari Parallel protsessorlar
Download 0.69 Mb. Pdf ko'rish
|
4-маъруза
2. Superskalar protsessorlari Superscalar protsessorlari-bu ketma -ket arxitekturalar uchun ILP protsessorining amalga oshirilishi - arxitektura, bu dastur bir vaqtning o'zida aniq ma'lumotni uzatmasligi kerak. Dasturda ILP borligi to'g'risida aniq ma'lumot yo'qligi sababli, parallellikni aniqlash muammosi apparat yordamida hal qilinishi kerak, shuning uchun "yashirin parallellik" ni aniqlash bo'yicha harakatlar rejasini tuzish kerak. Superskalar protsessorlari kodi belgilangan tartibda bajarilsa, to'g'ri natija beradigan ko'rsatmalar ketma -ketligini o'z ichiga oladi. Kod ketma -ket algoritmni bildiradi va faqat ma'lum bir yo'riqnomalar to'plamidan foydalangan holda, u ishlaydigan uskuna qanday aniqligi va ko'rsatmalarni bajarilishining aniq vaqti haqida tasavvurga ega emas. Bu yondashuv uskunaning murakkabligini oshiradi, shu bilan birga yuqori ishchi protsessor faqat ish vaqtida aniqlanishi mumkin bo'lgan omillardan foydalanib, ijro rejasini tuzadi. Dasturning dinamik tuzilishini o'zgartirishning ruxsat etilgan chegaralari ko'rsatmalar majmuasida mavjud bo'lgan munosabatlar bilan belgilanadi: boshqaruvga qaramlik va ma'lumotlarga bog'liqlik. Superskalalar protsessorlari arxitekturasini tavsiflashda ko'pincha ijro oynasi modeli ishlatiladi. Dasturni bajarayotganda, mikroprotsessor bajariladigan oynani dasturning statik tuzilishi bo'ylab siljitadi. Agar ular orasidagi bog'liqlik bo'lmasa, oynadagi buyruqlar parallel ravishda bajarilishi mumkin. Filial ko'rsatmalaridan kelib chiqadigan bog'liqliklarni bartaraf etish uchun, bashorat qilingan bashoratli ko'rsatmalarni olish va shartli bajarish uchun bashorat qilish usuli qo'llaniladi. Agar keyinroq bashorat to'g'ri bajarilganini aniqlasangiz, buyruqlarning shartli bajarilishi natijalari qabul qilinadi. Agar bashorat noto'g'ri bo'lsa, protsessor holati o'tish to'g'risida qaror qabul qilingan paytgacha tiklanadi. Ijro oynasida joylashtirilgan buyruqlar ma'lumotlarga bog'liq bo'lishi mumkin. Bu bog'liqliklar turli xil ko'rsatmalarda bir xil xotira resurslaridan (registrlar, xotira xujayralari) foydalanishga bog'liq. Shuning uchun dasturning to'g'ri bajarilishi uchun ushbu resurslardan dasturda belgilangan tartibda foydalanish zarur. Ma'lumotlarga bog'liqlikning barcha turlarini uyushmalar turiga ko'ra tasniflash mumkin: RAR - "o'qishdan keyin o'qish", WAR - "o'qishdan keyin yozish" va WAW - "yozgandan keyin yozish", RAW - "yozgandan keyin o'qish". Ma'lumotlarga har xil buyruqlar bog'liqligining misoli 11 -rasmda ko'rsatilgan. Ma'lumotlarga bog'liqliklarning bir qismini olib tashlash mumkin. RAR, aslida, qaramliklarning yo'qligiga to'g'ri keladi, chunki bu holda buyruqlarni bajarish tartibi muhim emas. Haqiqiy qaramlik faqat o'qishdan keyin o'qiladi (RAW), chunki ilgari yozilgan yangi ma'lumotlar o'qilishi kerak, eski ma'lumotlar emas. Ma'lumotga kerak bo'lmagan bog'liqliklar o'qishdan keyin yozish (WAR) va yozishdan keyin yozish (WAW) natijasida paydo bo'ladi. Keraksiz boshqaruv va ma'lumotlar qaramligini olib tashlaganingizdan so'ng, buyruqlar parallel ravishda bajarilishi mumkin. Buyruqlarning parallel bajarilishini rejalashtirish mikroprotsessor apparatiga yuklangan. Bu jadvalda buyruqlar va mavjud protsessor funktsiyasi modullari o'rtasidagi mavjud bog'liqliklar hisobga olinadi. 1-rasm. Ma'lumotlar bo'yicha buyruq bog'liqliklari Superskal mikroprotsessorning tipik arxitekturasi 2 -rasmda ko'rsatilgan. 2-rasm. Yuqori darajali mikroprotsessor arxitekturasi Yuqori darajali mikroprotsessorning asosiy bloklari quyidagilarni o'z ichiga oladi: ko'rsatmalarni qabul qilish va tarmoqni bashorat qilish bloki, ko'rsatmalarni dekodlash bloki, ko'rsatmalar orasidagi bog'liqlikni tahlil qilish, nomini o'zgartirish va rejalashtirish, suzuvchi va o'zgarmaydigan nuqtalari bo'lgan registrlar bloklari va ishlov berish moslamalari, xotirani boshqarish bloki; va bajarilgan ko'rsatmalarni buyurtma qilish uchun blok. Keling, superkkalli mikroprotsessorlar ishini yaxshilashning asosiy usullarini ko'rib chiqaylik. Ko'rsatmalarni oldindan o'rnatish va tarmoqni bashorat qilish. Yilda beri superscalar qayta ishlash, uni parallel funktsional modullarini o'rnatish uchun, bir tsikl xotira bir necha ko'rsatmalar olish uchun zarur bo'lgan, ortib talablar mikroprotsessor-xotira interfeysi kengligi solinadi. Zamonaviy mikroprotsessorlar ko'p darajali, alohida ma'lumotlar va ko'rsatma keshlaridan foydalanadilar. Tarmoqli buyruqlar bajarilganda, kesh xotirasiga kirishda o'tkazib yuborishlar bilan bog'liq bo'lgan protsessor tsikllari yo'qotilishini kamaytirish uchun, keshlash tizimiga tarmoqni bashorat qilish vositalari kiritilgan, ularning asosiy maqsadi kerakli ko'rsatma ehtimolini oshirishdir. kesh xotirasi. Shartli filiallarning bajarilishi quyidagi bosqichlardan iborat: • shartli tarmoqlanish buyrug'ini tan olish; • o'tish shartining bajarilishini tekshirish; • o'tish manzilini hisoblash; • nazorat o'tkazilishi, o'tkazilganda. Har bir bosqichda mahsuldorlikni oshirishning maxsus usullari qo'llaniladi: 1. Tez dekodlash uchun kesh xotirasidan ko'rsatma tanlashda buyruqlar maydonining qo'shimcha bitlari yoki ko'rsatmalarni oldindan dekodlash ishlatiladi. 2. Ko'pincha, keshda ko'rsatma allaqachon tanlangan bo'lsa, o'tish sharti hali hisoblanmagan va buyruqlar oqimini kechiktirmaslik uchun, bu holda, o'tishni bashorat qilish bir nechta mumkin bo'lgan sxemalardan biriga muvofiq qo'llaniladi. Ba'zi forecasters FEVRAL statik ma'lumotlarni foydalanish - dasturining ary kodi yoki maxsus derleyicisinden tomonidan ishlagan. Masalan, ba'zi kodlar boshqa kodlarga qaraganda tarvaqaylab ketish ehtimoli ko'proq, yoki tarmoqlanish ehtimoli ko'proq (aylanishda) yoki kompilyator tarmoq yo'nalishini ko'rsatuvchi bayroqni o'rnatishi mumkin. Dasturni kuzatish orqali olingan statistik ma'lumotlardan ham foydalanish mumkin. Boshqa bashoratchilar dasturni bajarishda dinamik ravishda yaratilgan ma'lumotlardan foydalanadilar. Bu, odatda, tarmoqli jadvalda yoki tarmoqni bashorat qilish jadvalida saqlangan, berilgan filialning bajarilish tarixi haqidagi ma'lumotlar. Bo'limni bashorat qilish jadvali assotsiativ printsipga muvofiq tuzilgan, kesh xotirasi kabi, uning elementlari filiali bashorat qilingan ko'rsatma manzilida mavjud. Ba'zi dasturlarda, tarmoqni bashorat qilish jadvalidagi yozuv - bu to'g'ri bashorat qilinganida ko'payadigan va noto'g'ri bo'lsa kamayadigan hisoblagich. Bunday holda, hisoblagich qiymati ustun tarmoqlanish yo'nalishini aniqlaydi. Tarmoqlanish holatining haqiqiy qiymatini aniqlash vaqtida tarmoqlanish tarixiga o'zgartirish kiritiladi. Agar bashorat noto'g'ri bo'lsa, to'g'ri ko'rsatmalarni olishni boshlash kerak. Shartli ravishda bajarilgan jamoalarning natijalari bekor qilinishi kerak. 3. Filial manzilini aniqlash uchun odatda buyruq hisoblagichining joriy qiymatiga tarmoq buyruqlar maydonida ko'rsatilgan ofsetni qo'shib, butun son qo'shilishini bajarish talab qilinadi. Garchi bu registrlarga kirish uchun qo'shimcha tsikllarni talab qilmasa ham, manzilni hisoblash tezligiga ilgari ishlatilgan filial manzillari bo'lgan bufer yordamida erishish mumkin. Agar buyruqlar hisoblagichining qiymatini o'zgartirish zarur bo'lsa, unda tarmoqlanish buyrug'ini tanib olish, buyruq hisoblagichini o'zgartirish va buyruq hisoblagichining belgilangan qiymati bo'yicha buyruqni olish uchun kamida bitta tsikl talab qilinadi. Bu kechikishlar protsessor quvurlarida bo'sh soat aylanishiga olib keladi. Murakkab echimlar ikkita mumkin bo'lgan dallanma natijalari uchun ko'rsatmalar to'plamini o'z ichiga olgan buferlardan foydalanadi. Filial buyrug'idan keyin bir yoki bir nechta buyruqlar shartsiz bajarilganda "kechiktirilgan filiallar" dan foydalanish mumkin. Buyruqlarni dekodlash, resurslarning nomini o'zgartirish va yuborish. Ushbu bosqichda buyruqlar orasidagi ahamiyatsiz bog'liqliklar ( RAW ) aniqlanadi va ahamiyatsizlari ( WAW, WAR ) bartaraf etiladi, buyruqlar funktsional qurilmalarning buyruq buferlari o'rtasida taqsimlanadi. Ko'rsatmani dekodlashda bir yoki bir nechta buyurtma qilingan uchlik tuziladi, ularning har biri quyidagilarni o'z ichiga oladi: 1) bajarilayotgan operatsiya, 2) operandlarga ko'rsatgichlar, 3) natijaning joylashuvi ko'rsatkichi. Cheklangan mantiqiy resurslar (xotira katakchalari, registrlar) natijasida kelib chiqadigan WAR va WAW keraksiz bog'liqliklarini bartaraf etish uchun dastur matni bilan aniqlangan mantiqiy resurslarni jismoniy mikroprotsessor resurslariga dinamik ravishda joylashtirish mexanizmi qo'llaniladi. Bunday yondashuv yordamida bitta mantiqiy resursni har xil jismoniy manbalardagi bir nechta qiymatlar bilan bog'lash mumkin, ularning har biri dasturning ketma -ket bajarilishi vaqtidagi nuqtalardan birining mantiqiy qiymatiga to'g'ri keladi. Agar buyruq mantiqiy registr uchun yangi qiymat yaratsa, qiymatni saqlaydigan jismoniy resurs nomlanadi. Bu qiymatdan foydalaniladigan keyingi buyruqlar jismoniy manba nomi bilan qo'shiladi. Ushbu protsedura registrni qayta nomlash deb ataladi. Nomini o'zgartirishning ikkita asosiy usuli bor. Birinchisida, jismoniy registr fayli mantiqiydan kattaroqdir. Agar qayta nomlash zarur bo'lsa, u bepul jismoniy registrlar ro'yxatidan olinadi va unga tegishli mantiqiy nom yoziladi. Agar bepul ro'yxatga olish ro'yxati bo'sh bo'lsa, bepul jismoniy registrlar paydo bo'lguncha buyruqlarni yuborish to'xtatiladi. Ma'lumotlar oxirgi marta o'qilganidan so'ng, jismoniy registrlarni bepul ro'yxatga qaytarish masalasi qolmoqda. Bir usul - hisoblagichni har bir jismoniy registr bilan bog'lash. Hisoblagich har safar operandning nomini ushbu fizik registr yordamida ko'rsatishda ko'paytiriladi. Shunga ko'ra, operanddan foydalanganda hisoblagich qiymati 1 ga kamayadi. Hisoblagich nolga yetganda, jismoniy resurs erkin ro'yxatga o'tkazilishi kerak. Ikkinchi qayta nomlash usuli bir xil miqdordagi mantiqiy va fizik registrlardan foydalanadi va ularning birma-bir yozishmalarini saqlaydi. Bundan tashqari, bajarilishi uchun boshlangan har bir buyruq uchun bitta yozuvli bufer mavjud. Bu bufer qayta tartiblash deb ataladi, chunki u ham uzilishlar buyruqlar tartibini o'rnatish uchun ishlatiladi. Bu tamponni boshlang'ich va oxirgi ko'rsatgichlari bo'lgan dumaloq bufer deb hisoblash mumkin. Buyruqlar bufer oxirida joylashtiriladi. Buyruq bajarilgandan so'ng, uning natijasi ushbu element egallagan navbatdagi joyidan qat'i nazar, unga oldindan tayinlangan navbat elementiga kiritiladi. Buyruq bufer boshiga yetganda, agar u bajarilgan bo'lsa, uning natijasi registr fayliga joylashtiriladi va buyruqning o'zi o'chiriladi. Operativ qiymati yo'qligi sababli buferdagi buyruq bajarilmaydi, bu qiymat olinmaguncha. Navbatdan bir nechta buyruqlar tanlanishi yoki unga bir vaqtning o'zida joylashtirilishi mumkin. Buyruqlarni bajarish. Har bir ko'rsatma uchun opkod, jismoniy operandlar - manba va natijadan tashkil topgan buyurtma uchliklari tuzilib, ularni buferlarga joylashtirilgandan so'ng, operand qiymatlarining ko'rsatmalarni bajarishga tayyorligini dinamik tekshirish bosqichi boshlanadi. Ideal holda, kirish operandlari tayyor bo'lgach, ko'rsatma bajarishga tayyor bo'ladi. Biroq, aktuatorlar, kommutatorlar va registr fayllari (yoki buferni qayta tartiblash) portlari kabi jismoniy resurslarning mavjudligi bilan bog'liq bir qator cheklovlar mavjud. Ijro oynasini tashkil qilish uchun turli usullar qo'llaniladi: bitta navbat, bir nechta navbat yoki zaxira stantsiyasi usuli. Agar bitta navbat bo'lsa, registrlarni qayta nomlash shart emas, chunki operandlarning qiymatlari har bir registr bilan bog'liq bo'lgan rezervasyon biti bilan belgilanishi mumkin. Ro'yxatdan o'tish kitobi uni o'zgartiradigan buyruq bajarishga tayinlanganda saqlanadi. Va registr buyruq bajarilishi tugagach chiqariladi. Agar resurslar buyruq uchun ajratilmagan bo'lsa, u holda uning bajarilishi to'xtatiladi. Ko'p navbatli usulda har bir navbat bir xil turdagi buyruqlar uchun tashkil qilinadi. Masalan, suzuvchi nuqta buyrug'i yoki xotira buyrug'i. Uchinchi usul, har birida operatsiya kodini joylashtirish uchun pozitsiyalar, birinchi operandning nomi, birinchi operandning nomi, birinchi operandning mavjudligidan dalolat beruvchi elementlar to'plamidan iborat ortiqcha stantsiyani ishlatishni o'z ichiga oladi., ikkinchi operandning nomi, ikkinchi operandning nomi, ikkinchi operandning mavjudligi va registrning nomi. natija. Qachon buyrug'i ijrosini yakunlanadi va bir natija ishlab chiqaradi, natijada nomi ortiqcha to'lqinning operanddan nomlari bilan qiyoslanadi. Agar bu natijani kutayotgan buyruq ortiqcha stantsiyada topilsa, u holda ma'lumotlar tegishli joyga yoziladi va ularning mavjudligi belgisi o'rnatiladi. Buyruqda barcha operandlar mavjud bo'lganda, uning bajarilishi boshlanadi. Ortiqcha stansiya operandlarning mavjudligini nazorat qiladi. Ortiqcha stantsiyaga buyruq yuborilganda, registr faylidagi barcha tayyor operandlar ushbu buyruq maydonlariga qayta yoziladi. Hamma operandlar tayyor bo'lgach, buyruq bajariladi. Ba'zida kutish stantsiyasida operandlarning o'zi yo'q, lekin ular ro'yxatga olish faylida yoki qayta tartiblash buferida ko'rsatiladi. Xotira bilan ishlash. Xotira manzilini hisoblash odatda kamida bitta qo'shimchani talab qiladi. Manzil hisoblangandan so'ng, uni tarjima manzili buferi (TLB) orqali jismoniy manzilga tarjima qilish zarur bo'lishi mumkin. Nizolarni muammolari birgalikda bir manbai kirishini - xotira hujayralarini, bor aslida reestrini kirayotganda bir xil. Buyruqlar bajarilishini yakunlash. Final bosqichi buyrug'i ijrosi o'zgarishlar o'zgarish quyidagilarni o'z ichiga oladi, deb - buyruq muvofiq Nia protsessor. Bu bosqichning maqsadi - individual buyruqlarning haqiqiy parallel bajarilishi va tarmoq buyruqlarining shartli bajarilishi bilan dasturni bajarishning ketma -ket modelini saqlab qolish. Protsessor holatini o'zgartirish uchun ikkita asosiy usuldan foydalaniladi, ikkalasi ham ikkita holatga asoslangan: o'lchanadigan holat - operatsiya natijasi yo'qligi va tiklanish uchun zarur bo'lgan shartlar. Birinchi usul protsessor holatini nazorat punktlari to'plamida yoki hisoblash tarixi buferida saqlaydi, agar kerak bo'lsa, holatni tiklash uchun ishlatiladi. Ikkinchi usul protsessorning mantiqiy (me'moriy) va jismoniy holatini hisobga olishni o'z ichiga oladi. Jismoniy holat keyingi buyruq bajarilgandan so'ng darhol o'zgaradi. Shartli bajarilgan buyruqlar natijasi aniq bo'lganda me'moriy holat o'zgaradi. Ushbu usulni amalga oshirish uchun qayta tartiblash buferi ishlatiladi: buferdan olingan natijalar arxitektura registri fayli va xotirasiga yuboriladi. Har bir buyruq uchun qayta tartiblash buferi mos keladigan hisoblagich qiymatini va to'g'ri uzilish xizmati uchun zarur bo'lgan boshqa registrlarning qiymatlarini o'z ichiga oladi. 13-rasm. superscalar mikroprotsessorining asosiy komponentlarini ko’rsatadi: funktsional modullar - suzuvchi (FPU) va sobit (ALU) nuqtali operatsiyalarni bajaradi, yuklash / saqlash qurilmasi, fayllarni ro'yxatga olish, alohida ko'rsatma va ma'lumotlar keshini, shuningdek dinamik rejalashtirishni ta'minlaydigan yordamchi modullarni ko'rsatadi. hisoblash jarayoni "2 -darajali kesh xotirali aloqa moslamasi, buyruqni qayta tartibga solish birligi va dastlabki parolni ochish birligi. At kamida ikki holatlar foydalanish samaradorligini cheklash superscalar mimarileri. Birinchidan, hatto eng ilg'or superscalar hisoblash texnikasi qo'llanilsa ham, ko'rsatma darajasida parallellik darajasining chegaralari bor. Birinchi cheklov shartli sakrashlardan kelib chiqadi. Ikkinchisi, bajarilish oynasining o'lchami (parallel bajarilishi mumkin bo'lgan faol buyruqlar soni), dasturga xos bo'lgan parallellikni cheklaydi, chunki buyruqlar oynaning o'lchamidan oshib ketadigan masofada joylashgan. hisobga olinmagan. Ikkinchidan, superscalar protsessorining murakkabligi parallel va hatto tezroq bajariladigan buyruqlar soni oshadi. Katta ehtimol bilan, superskalarni qayta ishlashda parallelizatsiya chegarasi har bir tsiklda bajarish uchun bir vaqtning o'zida 7-8 buyruqni ishga tushirishdir. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling