3. Superskalyar texnikasidan foydalanish samaradorligini oshirish uchta asosiy yo'nalish bilan cheklangan:
Ko'rsatmalar oqimidagi ichki parallellik darajasi (protsessordan bir xil hisoblash manbalarini talab qiladigan ko'rsatmalar)
Qarama-qarshilikni tekshirish mantiqiyligi va ro'yxatga olish tizimining nomini o'zgartirishning murakkabligi va vaqt narxi
Filial ko'rsatmalariga ishlov berish
Mavjud ikkilik bajariladigan dasturlar turli darajadagi ichki parallellikka ega. Ba'zi hollarda ko'rsatmalar bir-biriga bog'liq emas va bir vaqtning o'zida bajarilishi mumkin. Boshqa hollarda, ular bir-biriga bog'liqdir: bitta ko'rsatma boshqasiga yoki resurslariga yoki natijalariga ta'sir qiladi. Ko'rsatmalar a = b + c; d = e + f parallel bajarilishi mumkin, chunki natijalarning hech biri boshqa hisob-kitoblarga bog'liq emas. Biroq, ko'rsatmalar a = b + c; b = e + f ko'rsatmalar birliklar bo'ylab harakatlanish jarayonida bajarilish tartibiga qarab parallel ravishda bajarilmasligi mumkin.
Ko'rsatmalar oqimida ko'rsatmalararo bog'liqliklar bo'lmasligi mumkin bo'lsa-da, superskalyar protsessori shunga qaramay ushbu imkoniyatni tekshirishi kerak, chunki boshqacha ishonch yo'q va qaramlikni aniqlay olmaslik noto'g'ri natijalarga olib keladi.
Yarimo'tkazgich jarayoni qanchalik tez rivojlangan bo'lmasin yoki almashtirish tezligi qanchalik tez bo'lmasin, bu bir vaqtning o'zida qancha ko'rsatma yuborilishi mumkinligi to'g'risida amaliy cheklov qo'yadi. Jarayonning ilgarilashi ko'p sonli bajarilish birliklariga imkon beradi (masalan, ALU), ko'rsatmalarga bog'liqlikni tekshirish yuki, ba'zi bir bog'liqliklarni yumshatish uchun registrning nomini o'zgartirish sxemasining murakkabligi tez o'sib boradi. Birgalikda quvvat sarfi, murakkabligi va eshikni kechiktirish xarajatlari bir vaqtning o'zida sakkizta yuborilgan ko'rsatmalarga qadar bo'lgan superskalyar tezligini cheklaydi.
Ammo aks holda odatiy superskali protsessorda cheksiz tez bog'liqlikni tekshirish mantig'ini hisobga olgan holda, agar ko'rsatmalar oqimining o'zi juda ko'p bog'liqliklarga ega bo'lsa, bu ham mumkin bo'lgan tezlikni cheklaydi. Shunday qilib kod oqimidagi ichki parallellik darajasi ikkinchi cheklovni hosil qiladi.
Umuman olganda, ushbu cheklovlar muqobil me'moriy o'zgarishlarni tekshirishga undaydi, masalan, juda uzun ko'rsatma so'zi (VLIW), aniq parallel ko'rsatma hisoblash (EPIC), bir vaqtning o'zida ko'p o'qish (SMT) va ko'p yadroli hisoblash. VLIW-da, ish vaqtida apparat mantig'iga bog'liqlikni tekshirishning og'ir vazifasi o'chiriladi va kompilyatorga topshiriladi. Parallel ravishda buyruqni hisoblash (EPIC) qo'shimcha keshni oldindan olish ko'rsatmalariga ega VLIWga o'xshaydi. Bir vaqtning o'zida multithreading (SMT) - bu superskali protsessorlarning umumiy samaradorligini oshirish uslubidir. SMT zamonaviy protsessor arxitekturasi tomonidan taqdim etilgan resurslardan yaxshiroq foydalanish uchun bir nechta mustaqil ijro etilishiga ruxsat beradi. Superskalyar protsessorlari ko'p yadroli protsessorlardan bir nechta bajarilish birliklari butun protsessor bo'lmasligi bilan farq qiladi. Bitta protsessor ALU, integer multiplikator, integer shifter, FPU va boshqalar kabi aniqroq ijro etuvchi birliklardan iborat bo'lib, ko'plab ko'rsatmalarning parallel ravishda bajarilishini ta'minlash uchun har bir ijro birligining bir nechta versiyalari bo'lishi mumkin. Bu ko'p yadroli protsessordan farq qiladi, u bir vaqtning o'zida bir nechta iplarning ko'rsatmalarini qayta ishlaydi, bitta ishlov berish birligi uchun bitta ip ("yadro" deb nomlanadi). Shuningdek, u bir nechta ko'rsatmalar bir vaqtning o'zida bajarilishning turli bosqichlarida bo'lishi mumkin bo'lgan truboprovodli protsessordan farq qiladi. Har xil alternativ usullar bir-birini inkor etmaydi - ular bitta protsessorda birlashtirilishi mumkin (va tez-tez). Shunday qilib, ko'p yadroli protsessor mumkin, agar har bir yadro bir nechta parallel quvurlarni o'z ichiga olgan mustaqil protsessor bo'lsa, har bir quvur liniyasi superskalyar bo'ladi. Ba'zi protsessorlarga vektor qobiliyati ham kiradi.
Xulosa. Agar protsessor ishlashi paytida quvur liniyasi tomonidan ishlov berilgan bir nechta ko'rsatmalar mustaqil bo'lsa, yadro ularni bir vaqtning o'zida bajarishi mumkin. Superskalyar tizimlarida ijro uchun ko'rsatma berish to'g'risida qaror juda ko'p resurslarni talab qiladigan protsessor yadrosining o'zi tomonidan qabul qilinadi. Keyinchalik Elbrus-3 va Itanium kabi tizimlarda stat rejalashtirish qo'llaniladi, ya'ni kompilyator qaysi ko'rsatmalarni bir vaqtning o'zida bajarilishini hal qiladi; kompilyator mustaqil ko'rsatmalarni topadi va ularni bitta uzun yo'riqnomaga birlashtiradi (VLIW arxitekturasi).
Ko'rsatma dispetcher (ID) deb nomlangan superskalyar protsessor tuguni quyidagilar uchun javobgardir.
xotiradan ko'rsatmalarni o'qish uchun;
ko'rsatmalar bir vaqtning o'zida bajarilishi mumkin bo'lgan qarorlarni qabul qilish uchun;
ko'rsatmalarni protsessorning bir nechta funktsional bo'linmalari o'rtasida taqsimlash uchun.
Tugun identifikatori tugunlar o'rtasida ko'rsatmalarni tarqatishi kerak, shunda tugunlar ishlamay qolmasdan ishlaydi. Birinchi superskalyar protsessorlarida ikkita ALU va bittadan FPU mavjud edi.
Zamonaviy protsessorlarda ko'proq tugun mavjud. Masalan, PowerPC 970 protsessorida to'rtta ALU, ikkita FPU va ikkita SIMD tugun mavjud. Agar tugun identifikatori o'z ishiga dosh berolmasa (barcha tugunlarni ish bilan yuklamasa), superskalyar protsessorining ishlashi skaler protsessorning ishlashidan yaxshiroq bo'lmaydi.
Superskalyar protsessori odatda soat tsikli uchun bir nechta buyruqlarni bajarishga qodir. Shu bilan birga, bir vaqtning o'zida bir nechta ko'rsatmalarni qayta ishlash qobiliyati arxitekturani superskalaga aylantirmaydi, chunki bir vaqtning o'zida boshqa usullar bilan erishish mumkin: quvur liniyasidan foydalanish, bir nechta yadrolardan va / yoki bir nechta protsessorlardan foydalanish.