Wat is het verschil tussen vector- en scalaire processoren?
Het deel van een computer dat het mogelijk maakt om de instructies van verschillende programma's uit te voeren, is de centrale verwerkingseenheid (CPU). De CPU, ook een processor genoemd, ontvangt de instructies van een programma; decodeert die instructies en breekt ze in afzonderlijke delen; voert die instructies uit; en rapporteert de resultaten en schrijft ze terug in het geheugen. Het formaat voor die processor is er in een van de twee primaire typen: vector en scalair. Het verschil tussen de twee is dat scalaire processors tegelijkertijd op slechts één gegevenspunt werken, terwijl vectorprocessors op een reeks gegevens werken.
Scalaire processors zijn het meest basale type processor. Deze verwerken één item tegelijk, meestal gehele getallen of drijvende-kommagetallen, die getallen te groot of te klein zijn om door gehele getallen te worden weergegeven. Aangezien elke instructie opeenvolgend wordt behandeld, kan de basis scalaire verwerking enige tijd in beslag nemen. De meeste moderne computers gebruiken een soort scalaire processor.
Vectorprocessors werken daarentegen op een reeks gegevenspunten. Dit betekent dat in plaats van elk item afzonderlijk te behandelen, meerdere items die allemaal dezelfde instructie hebben, in één keer kunnen worden afgehandeld. Dit kan tijd besparen over scalaire verwerking, maar voegt ook complexiteit toe aan een systeem, dat andere functies kan vertragen. Vectorverwerking werkt het beste wanneer er een grote hoeveelheid gegevens moet worden verwerkt, waarvan groepen met één instructie kunnen worden verwerkt.
Vector- en scalaire processors verschillen ook in hun opstarttijden. Een vectorprocessor vereist vaak een langdurig opstarten van de computer vanwege de meerdere taken die worden uitgevoerd. Scalaire processors starten een computer in een veel kortere tijd op, omdat alleen enkele taken worden uitgevoerd.
De superscalar-processor neemt elementen van elk type en combineert ze voor een nog snellere verwerking. Met behulp van parallellisme op instructieniveau kan superscalaire verwerking meerdere bewerkingen tegelijkertijd uitvoeren. Hierdoor kan de CPU veel sneller presteren dan een standaard scalaire processor, zonder de extra complexiteit en andere beperkingen van de vectorprocessor. Er kunnen echter problemen zijn met dit type processor, omdat het moet bepalen welke taken parallel kunnen worden uitgevoerd en welke afhankelijk zijn van andere taken die eerst worden voltooid.
Vector- en scalaire processors worden nog steeds dagelijks gebruikt. Sommige videogameconsoles gebruiken bijvoorbeeld een combinatie van zowel vector- als scalaire processors. Vectorverwerking lijkt veelbelovend te zijn bij multimediataken waarin één instructie de grote hoeveelheid gegevens kan verwerken die nodig is voor video en audio.