Superskalyar protsessorida bir nechta ko'rsatmalarni bir vaqtning o'zida bajarish uchun ma'lumotlar katalogi apparatining bir nechta nusxalari mavjud. rasmda tsiklga ikkita ko'rsatma olinadigan va bajariladigan ikki tomonlama superskali protsessorning blok diagrammasi keltirilgan. Ma'lumotlar to'plami ko'rsatmalar xotirasidan bir vaqtning o'zida ikkita ko'rsatmalarni oladi. To'rt manbali operandni o'qish va har bir tsiklda ikkita natijani yozish uchun oltita portli registr fayli mavjud. Bundan tashqari, ikkita ko'rsatmani bir vaqtning o'zida bajarish uchun ikkita ALU va ikkita portli ma'lumotlar xotirasi mavjud.
Superskalyar protsessori - bu bitta protsessor ichida buyruq sathidagi parallellik deb nomlangan parallellik shaklini amalga oshiruvchi protsessor. Har bir soat tsikli uchun eng ko'p bitta buyruqni bajarishi mumkin bo'lgan skalar protsessordan farqli o'laroq, superskalyar protsessor bir vaqtning o'zida bir nechta ko'rsatmalarni protsessorning turli xil ijro etuvchi birliklariga yuborish orqali soat tsikli davomida bir nechta buyruqlarni bajarishi mumkin. Shuning uchun u ma'lum bir soat tezligida boshqacha imkoniyatlardan ko'ra ko'proq ishlashga imkon beradi (vaqt birligida bajarilishi mumkin bo'lgan ko'rsatmalar soni). Har bir ijro etuvchi birlik alohida protsessor emas (yoki protsessor ko'p yadroli protsessor bo'lsa, yadro), balki arifmetik mantiqiy birlik kabi bitta protsessor ichidagi ijro resursidir.
Flinn taksonomiyasida bitta yadroli superskalyar protsessor SISD protsessori (Yagona ko'rsatma oqimi, Yagona ma'lumotlar oqimi) deb tasniflanadi, ammo qisqa vektorli operatsiyalarni qo'llab-quvvatlaydigan bitta yadroli superskalyar protsessori SIMD (Yagona ko'rsatma oqimi, Bir nechta ma'lumotlar) deb tasniflanishi mumkin. oqimlar). Ko'p yadroli superskalyar protsessor MIMD protsessori deb tasniflanadi (Ko'p ko'rsatmalar oqimlari, bir nechta ma'lumotlar oqimlari).
Superskalyar protsessori odatda quvurli bo'lsa ham, superskalyar va truboprovodlarning bajarilishi ishlashni yaxshilashning turli usullari deb hisoblanadi. Birinchisi bir nechta buyruqlarni bir nechta ijro birliklari yordamida parallel ravishda bajaradi, ikkinchisi esa bir xil buyruq birligidagi bir nechta ko'rsatmalarni ijro etuvchi birlikni turli bosqichlarga bo'lish orqali parallel ravishda bajaradi.
Superskalyar texnikasi an'anaviy ravishda bir nechta aniqlovchi xususiyatlar bilan bog'liq (ma'lum bir CPU ichida):
Ko'rsatmalar ketma-ket ko'rsatmalar oqimidan beriladi
CPU dinamik ravishda ish vaqtidagi ko'rsatmalar o'rtasidagi ma'lumotlarga bog'liqlikni tekshiradi (kompilyatsiya vaqtida dasturiy ta'minotni tekshirishga nisbatan)
CPU soat tsikli uchun bir nechta ko'rsatmalarni bajarishi mumkin.
Oddiy superskalyar quvur liniyasi. Bir vaqtning o'zida ikkita yo'riqnomani olish va jo'natish orqali har bir tsikl uchun maksimal ikkita ko'rsatma bajarilishi mumkin. (IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Ro'yxatdan o'tish orqaga yozish, i = Instruction number, t = Soat tsikli [ya'ni vaqt])
1. Seymour Cray-ning 1966 yildagi CDC 6600 modeli birinchi superskalyar dizayni sifatida tez-tez tilga olinadi. 1967 yilgi IBM System / 360 Model 91 yana bir superskalyar meynfreymi edi. Motorola MC88100 (1988), Intel i960CA (1989) va AMD 29000 seriyali 29050 (1990) mikroprotsessorlari birinchi tijorat yagona chipli superskalyar mikroprotsessorlari bo'lgan. Bu kabi RISC mikroprotsessorlari birinchi bo'lib superskalyar bajarilishini boshladilar, chunki RISC bir nechta ijro etuvchi birliklarni kiritish uchun ishlatilishi mumkin bo'lgan bepul tranzistorlar va o'lik maydonlarni arxitektura qiladi (shu sababli RISC konstruktsiyalari 1980-yillar va 1990-yillarga qadar CISC dizaynlaridan tezroq edi).
Kam quvvatli dasturlarda, o'rnatilgan tizimlarda va batareyali qurilmalarda ishlatiladigan protsessorlar bundan mustasno, taxminan 1998 yildan beri ishlab chiqilgan barcha umumiy maqsadli protsessorlar superskalyardir.
P5 Pentium birinchi superskalyar x86 protsessori edi; Nx586, P6 Pentium Pro va AMD K5, x86-ko'rsatmalarini sinxron ravishda dinamik mikrokodga o'xshash mikro-operatsion ketma-ketliklarga dekodlashning birinchi dizaynlaridan biri edi. buferlangan qisman ko'rsatmalarni dinamik ravishda rejalashtirish uchun ochildi va sodda P5 Pentium-da qo'llaniladigan qattiqroq usullarga nisbatan ko'proq parallellikni chiqarib olishga imkon berdi; shuningdek, spekulyativ ijro etishni soddalashtirdi va rivojlangan Cyrix 6x86 kabi dizaynlarga nisbatan yuqori soat chastotalariga imkon berdi.
2.Eng oddiy protsessorlar - skalar protsessorlari. Skalyar protsessor tomonidan bajarilgan har bir ko'rsatma odatda bir vaqtning o'zida bir yoki ikkita ma'lumotlar elementlarini boshqaradi. Aksincha, vektorli protsessor tomonidan bajarilgan har bir ko'rsatma bir vaqtning o'zida ko'plab ma'lumotlar elementlarida ishlaydi. Analogiya - bu skalar va vektorli arifmetikaning farqidir. Superskalyar protsessori bu ikkalasining aralashmasi. Har bir ko'rsatma bitta ma'lumot elementini qayta ishlaydi, lekin har bir protsessorda bir nechta ijro birliklari mavjud, shuning uchun bir nechta ko'rsatmalar bir vaqtning o'zida alohida ma'lumotlar elementlarini qayta ishlashlari mumkin.
Superskalyar protsessori dizayni buyruqlar dispetcherining aniqligini oshirishga va har doim bir nechta ijro etuvchi birliklarni ishlatishga imkon berishga imkon beradi. Bu birliklar soni ko'payganligi sababli tobora muhim ahamiyat kasb etmoqda. Dastlabki superskali protsessorlarda ikkita ALU va bitta FPU bo'lishi kerak edi, keyinchalik PowerPC 970 kabi to'rtta ALU, ikkita FPU va ikkita SIMD birlikni o'z ichiga oladi. Agar dispetcher ushbu birliklarning hammasini ko'rsatmalar bilan oziqlantirishda samarasiz bo'lsa, tizimning ishlashi oddiy, arzonroq dizayndan yaxshiroq bo'lmaydi.
Superskalyar protsessori odatda bir mashina tsikli uchun bitta buyruqdan ortiq bajarilish tezligini ta'minlaydi. Ammo bir vaqtning o'zida bir nechta ko'rsatmalarni qayta ishlash arxitekturani superskalaga olib kelmaydi, chunki quvurli, ko'p protsessorli yoki ko'p yadroli arxitekturalar ham bunga erishadi, ammo turli xil usullar bilan.
Superskalyar protsessorida dispetcher xotiradan ko'rsatmalarni o'qiydi va ularning qaysi biri parallel ravishda bajarilishi mumkinligi to'g'risida qaror qabul qiladi, ularning har birini bitta protsessor tarkibidagi bir nechta ijro birliklaridan biriga yuboradi. Shuning uchun, superkkal protsessorni bir nechta parallel quvur liniyalarini tasavvur qilish mumkin, ularning har biri bitta buyruq ipidan bir vaqtning o'zida ko'rsatmalarni qayta ishlaydi.