Hva er forskjellen mellom scalar og superscalar prosessorer?
Det er forskjellige typer sentrale behandlingsenheter (CPUer) som er tilgjengelige for datamaskiner. Disse typer prosessorer skiller seg ikke veldig ut når det gjelder prosessering av maskinvare og arkitektur. De fleste av dem utfører de grunnleggende oppgavene til en prosessor som å lese og skrive data, grunnleggende aritmetikk og adressesprang. De kan imidlertid variere når det gjelder bussstørrelser og prosessorarkitektur. Flere typer datamaskinprosessor-maskinvare er tilgjengelige, hvorav to er skalar- og superscalar-prosessorer.
En prosessor som utfører skalaldata kalles en skalarprosessor. Ved hjelp av fastpunktsoperander utføres heltalinstruksjoner av skalarprosessorer selv i sin enkleste tilstand. Kraftigere skalarprosessorer utfører vanligvis både flytende punkt- og heltalloperasjoner. Nylig produserte skalarprosessorer inneholder både en flytende punktenhet og en heltallsenhet, alt på samme CPU-brikke. De fleste av disse moderne skalareprosessorene bruker instruksjoner av 32-biters typen.
Den superscalar prosessoren utfører derimot flere instruksjoner om gangen på grunn av dets flere antall rørledninger. Denne CPU-strukturen implementerer parallellitet på instruksjonsnivå, som er en form for parallellitet i maskinvare, innenfor en enkelt prosessor. Dette betyr at det kan tillate rask CPU-gjennomstrømning som ikke engang er ekstern mulig i andre prosessorer som ikke implementerer parallellitet på instruksjonsnivå. I stedet for å utføre en instruksjon om gangen, bruker en superscalar prosessor sine overflødige funksjonelle enheter i utførelsen av flere instruksjoner. Disse funksjonelle enhetene er ikke separate CPU-kjerner, men en enkelt CPUs utvidelsesressurser som multiplikatorer, bitskiftere og aritmetiske logiske enheter (ALUer).
Forskjeller mellom skalare og superskcalære prosessorer koker vanligvis ned til mengde og hastighet. En skalarprosessor, ansett for å være den enkleste av alle prosessorer, fungerer på en eller to datamaskindataelementer på et gitt tidspunkt. Den superscalar prosessoren fungerer på flere instruksjoner og flere grupper med flere dataelementer om gangen. Skalar og superskcalære prosessorer fungerer begge på samme måte når det gjelder hvordan de manipulerer data, men forskjellen deres ligger i hvor mange manipulasjoner og dataelementer de kan jobbe med på en gitt tid. Superscalar-prosessorer kan håndtere flere instruksjoner og dataelementer, mens skalærprosessoren rett og slett ikke kan, og gjør derfor førstnevnte til en kraftigere prosessor enn sistnevnte.
Scalar og superscalar prosessorer har begge noen likheter med vektorprosessorer. Som en skalærprosessor utfører også en vektorprosessor en enkelt instruksjon om gangen, men i stedet for bare å manipulere ett dataelement, kan dens enkeltinstruksjon få tilgang til flere dataelementer. På samme måte som den superscalar prosessoren, har en vektorprosessor flere overflødige funksjonelle enheter som lar den manipulere flere dataelementer, men den kan bare fungere på en enkelt instruksjon om gangen. I hovedsak er en superscalar prosessor en kombinasjon av en skalærprosessor og en vektorprosessor.