Vad är skillnaden mellan skalära och array-processorer?

Det finns en stor skillnad mellan två av huvudformaten – skalära och arrayprocessorer – där ett datorsystem bearbetar information. Medan skalära processorer arbetar med en datapost i taget, kan arrayprocessorer hantera flera dataströmmar samtidigt. Båda processorerna är dock en del av den centrala processorenheten (CPU), som kontrollerar alla åtgärder på en dator och kan hantera alla tider av data. Skalära processorer och arrayprocessorer utför många av samma operationer, men på olika sätt, vilket gör var och en lämplig för olika ändamål och ser till att alla funktioner från de enklaste till mest komplexa kan utföras.

Arrayprocessorer tillämpar en enda instruktion på flera arrayer eller matriser av data samtidigt innan de går vidare till nästa instruktion. Detta gör att arrayprocessorer kan arbeta mycket snabbare eftersom processorn inte behöver vänta på att den första uppsättningen instruktioner ska utföras på ett objekt innan den går vidare till nästa. Många av stegen som krävs för att utföra en operation elimineras eftersom datorn hämtar flera objekt samtidigt, utför operationen på alla och sedan skriver om den till minnet, istället för att upprepa steg med varje ny databit.

Skalära processorer arbetar på en datapost i taget innan de går vidare till nästa post. Varje instruktion måste utföras på det aktuella objektet innan du går vidare till nästa instruktion. I slutet av slingan utförs uppsättningen instruktioner på nästa post i följd. Nästan alla massmarknadsprocessorer är skalära även om de kan ha element som fungerar mer som arrayprocessorer.

Superdatorer på 1980- och 1990-talen designades för att bearbeta stora mängder data med en instruktions-multipel-data. Array-processorer gjorde det möjligt att manipulera vetenskap och forskningsdata på kortare tid. Även om det kan tyckas intuitivt att array-processorer skulle hantera alla CPU-funktioner snabbare än skalära processorer, är detta inte fallet. Array-processorer kan effektivt hantera stora mängder data, men eftersom funktionen kräver att CPU:n är mer komplex är enklare operationer svårare att utföra.

Skillnaderna mellan skalära processorer och arrayprocessorer blev mindre uttalade med introduktionen av mikroprocessorer 1994. Sedan dess har mikroprocessorer med element av enkelinstruktion-multipeldata blivit normen och ytterligare minskat klyftan mellan skalära och array-processorer. Tv-spelskonsoler och grafikacceleratorer har sin egen grafik-CPU som körs parallellt med den skalära huvudprocessorn, vilket frigör huvudprocessorn att utföra icke-grafiska funktioner.