Wat is het verschil tussen scalaire en array-processors?
Er is een groot verschil tussen twee van de hoofdformaten - scalaire en array-processors - waarin een computersysteem informatie verwerkt. Terwijl scalaire processors tegelijkertijd aan één gegevensitem werken, kunnen arrayprocessors meerdere datastromen tegelijkertijd aanpakken. Beide processors maken echter deel uit van de centrale verwerkingseenheid (CPU), die alle acties van een computer bestuurt en alle data kan verwerken. Scalaire en array-processors voeren veel van dezelfde bewerkingen uit, maar op een andere manier, waardoor ze geschikt zijn voor een ander doel en ervoor zorgen dat alle functies, van de eenvoudigste tot de meest complexe, kunnen worden uitgevoerd.
Matrixprocessors passen een enkele instructie tegelijkertijd toe op meerdere matrices of matrices van gegevens voordat ze naar de volgende instructie gaan. Hierdoor kunnen arrayprocessoren veel sneller werken omdat de processor niet hoeft te wachten tot de eerste reeks instructies voor het ene item is uitgevoerd voordat het volgende wordt gebruikt. Veel van de stappen die nodig zijn om een bewerking uit te voeren, worden geëlimineerd omdat de computer meerdere items tegelijkertijd ophaalt, de bewerking op alle items uitvoert en deze vervolgens in het geheugen herschrijft, in plaats van de stappen bij elk nieuw stuk gegevens te herhalen.
Scalaire processors werken met één gegevensitem tegelijk voordat ze naar het volgende item gaan. Elke instructie moet op het huidige item worden uitgevoerd voordat u doorgaat naar de volgende instructie. Aan het einde van de lus worden de instructies op het volgende item in volgorde uitgevoerd. Bijna alle CPU's voor de massamarkt zijn scalair, hoewel ze elementen kunnen hebben die meer op array-processors werken.
Supercomputers van de jaren 1980 en 1990 zijn ontworpen om grote hoeveelheden gegevens te verwerken met behulp van single-instructie-multiple-data. Array-processors hebben het mogelijk gemaakt om wetenschaps- en onderzoeksgegevens in een kortere tijd te manipuleren. Hoewel het intuïtief lijkt dat arrayprocessors alle CPU-functies sneller zouden verwerken dan scalaire processors, is dit niet het geval. Array-processors kunnen grote hoeveelheden gegevens efficiënt verwerken, maar omdat de functie vereist dat de CPU complexer is, zijn eenvoudiger bewerkingen moeilijker uit te voeren.
Verschillen tussen scalaire en array-processors werden minder duidelijk met de introductie van microprocessors in 1994. Sindsdien zijn microprocessors met elementen van single-instructie-multiple-data de norm geworden en is de kloof tussen scalaire en array-processors verder verkleind. Videogameconsoles en grafische versnellers hebben hun eigen grafische CPU die parallel loopt aan de hoofd-scalaire CPU, waardoor de hoofd-CPU vrij is om niet-grafische functies uit te voeren.