Superskalarna
Superskalarna zasnova procesorja omogoča obliko vzporednega računanja, imenovano vzporednost na ravni ukazov, znotraj enega samega procesorja, kar omogoča več dela pri enaki taktni frekvenci. To pomeni, da procesor v enem taktu izvede več kot eno navodilo tako, da na podvojenih funkcionalnih enotah hkrati izvaja več navodil (imenovano pošiljanje navodil). Vsaka funkcionalna enota je le vir za izvajanje znotraj jedra procesorja, kot so aritmetična logična enota (ALU), enota s plavajočo vejico (FPU), menjalnik bitov ali množilnik.
Večina superskalarnih procesorjev ima tudi cevovodno vezavo, vendar je mogoče imeti tudi superskalarni procesor brez cevovodne vezave ali pa cevovodni nesuperskalarni procesor.
Superskalarno tehniko podpira več funkcij jedra procesorja:
- Navodila so na voljo na urejenem seznamu navodil.
- Strojna oprema procesorja lahko ugotovi, katera navodila so odvisna od podatkov.
- Lahko prebere več navodil na taktni cikel
Vsak ukaz, ki ga izvede skalarni procesor, spremeni eno ali dve podatkovni postavki naenkrat, vsak ukaz, ki ga izvede vektorski procesor, pa obdeluje več podatkovnih postavk naenkrat. Superskalarni procesor je mešanica obeh:
- Vsako navodilo obdela en podatkovni element.
- V vsakem jedru procesorja je več podvojenih funkcionalnih enot, tako da več ukazov hkrati obdeluje neodvisne podatkovne elemente.
V superskalarnem procesorju dispečer navodil prebere navodila iz pomnilnika in odloči, katera navodila se lahko izvajajo vzporedno, ter jih pošlje na več podvojenih funkcionalnih enot, ki so na voljo v procesorju.
Pri načrtovanju superskalarnih procesorjev gre za izboljšanje natančnosti ukazov in omogočanje, da so številne funkcionalne enote ves čas zasedene. Od leta 2008 so vsi procesorji za splošne namene superskalarni, tipičen superskalarni procesor pa lahko vključuje do 4 enote ALU, 2 enoti FPU in dve enoti SIMD. Če dispečer ne more zasesti vseh enot, bo zmogljivost procesorja manjša.
Procesorska plošča vzporednega računalnika CRAY T3e s štirimi superskalarnimi procesorji Alpha
Enostaven superskalarni cevovod. S pridobivanjem in pošiljanjem dveh navodil hkrati je mogoče dokončati največ dve navodili na cikel.
Omejitve
Izboljšanje zmogljivosti pri zasnovi superskalarnih procesorjev je omejeno z dvema dejavnikoma:
- Stopnja vgrajenega vzporedništva na seznamu ukazov
- zapletenost in časovni stroški dispečerja in preverjanja odvisnosti podatkov.
Tudi ob neskončno hitrem preverjanju odvisnosti v običajnem superskalarnem procesorju, če ima sam seznam ukazov veliko odvisnosti, bi to prav tako omejilo možno izboljšanje zmogljivosti, zato je dodatna omejitev količina vgrajenega paralelizma v kodi.
Ne glede na hitrost dispečerja obstaja praktična omejitev, koliko navodil je mogoče hkrati poslati. Medtem ko bo napredek strojne opreme omogočil več funkcionalnih enot (npr. ALU) na jedro procesorja, se problem preverjanja odvisnosti ukazov poveča do te mere, da je dosegljiva meja superskalarnega dispečiranja nekoliko manjša. -- Verjetno gre za pet do šest istočasno poslanih ukazov.
Alternative
- Hkratno večnitno branje: pogosto skrajšano kot SMT, je tehnika za izboljšanje splošne hitrosti superskalarnih procesorjev. SMT omogoča več neodvisnih niti izvajanja, da se bolje izkoristijo viri, ki so na voljo v sodobnem superskalarnem procesorju.
- Večjedrni procesorji: superskalarni procesorji se od večjedrnih razlikujejo po tem, da več redundantnih funkcionalnih enot ni celotnih procesorjev. En sam superskalarni procesor je sestavljen iz naprednih funkcionalnih enot, kot so ALU, množilnik celih števil, prestavljalnik celih števil, enota s plavajočo vejico (FPU) itd. Vsaka funkcionalna enota ima lahko več različic, kar omogoča vzporedno izvajanje številnih ukazov. To se razlikuje od večjedrnih procesorjev, ki sočasno obdelujejo navodila iz več niti, po eno nit na jedro.
- Procesorji s cevnimi povezavami: superskalarni procesorji se razlikujejo tudi od procesorjev s cevnimi povezavami, kjer je lahko več ukazov hkrati v različnih fazah izvajanja.
Različne alternativne tehnike se med seboj ne izključujejo - v enem procesorju jih je mogoče kombinirati (in jih pogosto tudi kombiniramo), zato je mogoče zasnovati večjedrni procesor, v katerem je vsako jedro neodvisen procesor z več vzporednimi superskalarnimi cevovodi. Nekateri večjedrni procesorji vključujejo tudi vektorsko zmogljivost.
Sorodne strani
- Vzporedno računalništvo
- Vzporednost na ravni ukazov
- Hkratno večnitno branje (SMT)
- Večjedrni procesorji
Vprašanja in odgovori
V: Kaj je superskalarna tehnologija?
O: Superskalarna tehnologija je oblika osnovnega vzporednega računalništva, ki omogoča obdelavo več kot enega ukaza v vsakem taktu z uporabo več izvajalnih enot hkrati.
V: Kako deluje superskalarna tehnologija?
O: Superskalarna tehnologija vključuje navodila, ki prihajajo v procesor po vrstnem redu, med izvajanjem išče podatkovne odvisnosti in v vsakem taktu naloži več kot eno navodilo.
V: Kakšna je razlika med skalarnimi in vektorskimi procesorji?
O: Pri skalarnem procesorju navodila običajno delajo z enim ali dvema podatkovnima elementoma naenkrat, medtem ko pri vektorskem procesorju navodila običajno delajo z več podatkovnimi elementi naenkrat. Superskalarni procesor je mešanica obeh, saj vsako navodilo obdeluje en podatkovni element, vendar se hkrati izvaja več navodil, zato procesor obdeluje več podatkovnih elementov hkrati.
V: Kakšno vlogo ima natančen dispečer navodil v superskalarnem procesorju?
O: Natančen dispečer navodil je zelo pomemben za superskalarni procesor, saj zagotavlja, da so izvajalne enote vedno zasedene z delom, ki bo verjetno potrebno. Če dispečer navodil ni natančen, bo morda treba nekaj dela zavreči, zaradi česar procesor ne bo hitrejši od skalarnega procesorja.
V: V katerem letu so vsi običajni procesorji postali superskalarni?
O: Vsi običajni procesorji so postali superskalarni leta 2008.
V: Koliko enot ALU, FPU in enot SIMD je lahko v običajnem procesorju?
O: V običajnem procesorju so lahko do 4 enote ALU, 2 enoti FPU in 2 enoti SIMD.