Superskalaarse
Superskalaarse protsessori konstruktsioon teeb ühe protsessori sees paralleelarvutuse vormi, mida nimetatakse käsu-tasandi paralleelsuseks, mis võimaldab sama taktimäära juures teha rohkem tööd. See tähendab, et protsessor täidab ühe taktsükli jooksul rohkem kui ühe käsu, käivitades korraga mitu käsku (nn käskude jaotamine) dubleeritud funktsionaalsetel üksustel. Iga funktsionaalne üksus on lihtsalt protsessori südamiku sees asuv täitmisressurss, nagu aritmeetiline loogikaüksus (ALU), ujukomaarvutusüksus (FPU), bitišifter või korrutis.
Enamik superskalaarseid protsessoreid on samuti torustikuga, kuid on võimalik, et on olemas ka mitte-pipeliiniga superskalaarne protsessor või mitte-superskalaarne mitte-pipeliiniga protsessor.
Superskalaarset tehnikat toetavad mitmed protsessori südamiku omadused:
- Juhised pärinevad tellitud juhiste nimekirjast.
- Protsessori riistvara suudab välja selgitada, millistel käskudel on millised andmesõltuvused.
- Saab lugeda mitu käsku ühe taktitsükli kohta
Iga skalaarprotsessori käsk muudab korraga ühte või kahte andmeühikut, kuid iga vektorprotsessori poolt täidetav käsk käsitleb korraga paljusid andmeühikuid. Superskalaarne protsessor on nende kahe segu:
- Iga käsk töötleb ühte andmeühikut.
- Igas protsessori tuumas on mitu dubleeritud funktsionaalset üksust, nii et mitu käsku töötlevad samaaegselt sõltumatuid andmeelemente.
Superskalaarses protsessoris loeb käskude saatja käske mälust ja otsustab, milliseid käske saab paralleelselt käivitada, jaotades need protsessori sees olevatele mitmele duplikaatfunktsionaalsele üksusele.
Superskalaarse protsessori projekteerimine on seotud käskude saatja täpsuse parandamisega ja võimaldab tal hoida mitu funktsionaalset üksust kogu aeg hõivatud. Alates 2008. aastast on kõik üldotstarbelised protsessorid superskalaarsed, tüüpiline superskalaarne protsessor võib sisaldada kuni 4 ALU-d, 2 FPU-d ja kaks SIMD-üksust. Kui dispetšer ei suuda kõiki üksusi hõivatud hoida, on protsessori jõudlus väiksem.
CRAY T3e paralleelarvuti protsessoriplaat nelja superskalaarse Alpha protsessoriga
Lihtne superskalaarne torujuhe. Kahe käsu korraga noppimise ja saatmise abil saab ühe tsükli jooksul täita maksimaalselt kaks käsku.
Piirangud
Superskalaarsete protsessorite disaini jõudluse parandamist piiravad kaks asja:
- Sisseehitatud paralleelsuse tase käskude loetelus
- dispetšeri ja andmete sõltuvuse kontrollimise keerukus ja ajakulu.
Isegi kui tavalise superskalaarse protsessori sees on lõpmatult kiire sõltuvuse kontrollimine, siis kui käsulistis endas on palju sõltuvusi, piiraks see samuti võimalikku jõudluse paranemist, seega on koodis oleva sisseehitatud paralleelsuse hulk veel üks piirang.
Olenemata sellest, kui kiire on dispetšeri kiirus, on praktiline piirang sellele, kui palju juhiseid saab korraga saata. Kuigi riistvara areng võimaldab rohkem funktsionaalseid üksusi (nt ALUd) protsessori südamiku kohta, suureneb käskude sõltuvuse kontrollimise probleem nii palju, et saavutatav superskalaarse dispetšeri piir on mõnevõrra väike. -- Tõenäoliselt on see suurusjärgus viis kuni kuus samaaegselt saadetavat käsku.
Alternatiivid
- Samaaegne mitmikeeramine: sageli lühendatult SMT, on tehnika superskalaarsete protsessorite üldkiiruse parandamiseks. SMT võimaldab mitut sõltumatut täitmisniiti, et paremini kasutada kaasaegses superskalaarses protsessoris olemasolevaid ressursse.
- Mitme tuumaga protsessorid: superskalaarsed protsessorid erinevad mitme tuumaga protsessoritest selle poolest, et mitu üleliigset funktsionaalset üksust ei ole terved protsessorid. Üks superskalaarne protsessor koosneb kõrgetasemelistest funktsionaalsetest üksustest, nagu ALU, täisarvu korrutis, täisarvu teisendaja, ujukomaüksus (FPU) jne. Igast funktsionaalsest üksusest võib olla mitu versiooni, et võimaldada paljude käskude paralleelset täitmist. See erineb mitmetuumalistest protsessoritest, mis töötlevad samaaegselt mitme niidi juhiseid, üks niit iga tuuma kohta.
- Pipelined protsessorid: superskalaarsed protsessorid erinevad samuti pipelined protsessorist, kus mitu käsku võivad samaaegselt olla erinevates täitmisetappides.
Erinevad alternatiivsed tehnikad ei välista üksteist - neid saab (ja sageli ka kombineeritakse) ühes protsessoris, nii et on võimalik projekteerida mitmetuumaline protsessor, kus iga tuum on sõltumatu protsessor, millel on mitu paralleelset superskalaarset torujuhtmeahelat. Mõned mitmetuumalised protsessorid sisaldavad ka vektori võimekust.
Seotud leheküljed
- Paralleelne arvutamine
- Käskude tasandi paralleelsus
- Samaaegne mitmikeeramine (SMT)
- Mitme tuumaga protsessorid
Küsimused ja vastused
K: Mis on superskalaarne tehnoloogia?
V: Superskalaarne tehnoloogia on põhilise paralleelarvutuse vorm, mis võimaldab mitme täitmisüksuse samaaegsel kasutamisel töödelda rohkem kui ühte käsku igas taktsüklis.
K: Kuidas töötab superskalaarne tehnoloogia?
V: Superskalaarne tehnoloogia hõlmab protsessorisse järjestikku saabuvaid juhiseid, mis otsivad töötamise ajal andmesõltuvusi ja laadivad igas taktsüklis rohkem kui ühe juhise.
K: Mis vahe on skalaar- ja vektorprotsessorite vahel?
V: Skalaarprotsessoril töötavad käsud tavaliselt ühe või kahe andmeühikuga korraga, samas kui vektorprotsessoril töötavad käsud tavaliselt paljude andmeühikutega korraga. Superskalaarne protsessor on segu mõlemast, kuna iga käsk töötleb ühte andmeühikut, kuid korraga töötab rohkem kui üks käsk, nii et protsessor töötleb korraga paljusid andmeühikuid.
Küsimus: Millist rolli mängib täpne käskude dispetšer superskalaarses protsessoris?
V: Täpne käskude saatja on superskalaarse protsessori jaoks väga oluline, sest see tagab, et täitmisüksused on alati hõivatud tööga, mida tõenäoliselt vajatakse. Kui käskude dispetšer ei ole täpne, siis võib osa töödest ära visata, mis ei tee seda kiiremaks kui skaleerivat protsessorit.
K: Mis aastal muutusid kõik tavalised protsessorid superskalaarseks?
V: Kõik tavalised protsessorid muutusid superskalaarseks 2008. aastal.
K: Mitu ALU-d, FPU-d ja SIMD-üksust võib olla tavalisel protsessoril?
V: Tavalises protsessoris võib olla kuni 4 ALU-d, 2 FPU-d ja 2 SIMD-üksust.