Jaka jest różnica między procesorami skalarnymi a macierzowymi?

Istnieje jedna zasadnicza różnica między dwoma głównymi formatami — procesorami skalarnymi i macierzowymi — w których system komputerowy przetwarza informacje. Podczas gdy procesory skalarne pracują na jednym elemencie danych na raz, procesory macierzowe mogą jednocześnie obsługiwać wiele strumieni danych. Oba procesory są jednak częścią jednostki centralnej (CPU), która kontroluje wszystkie działania komputera i może obsłużyć wszystkie czasy danych. Procesory skalarne i macierzowe wykonują wiele takich samych operacji, ale w inny sposób, dzięki czemu każda z nich nadaje się do innego celu i zapewnia możliwość realizacji wszystkich funkcji, od najprostszych do najbardziej złożonych.

Procesory tablicowe stosują pojedynczą instrukcję do wielu tablic lub macierzy danych jednocześnie przed przejściem do następnej instrukcji. Dzięki temu procesory macierzowe mogą działać znacznie szybciej, ponieważ procesor nie musi czekać na wykonanie pierwszego zestawu instrukcji dla jednego elementu przed przejściem do następnego. Wiele kroków wymaganych do wykonania operacji zostało wyeliminowanych, ponieważ komputer pobiera wiele elementów jednocześnie, wykonuje operację na nich wszystkich, a następnie ponownie zapisuje je w pamięci, zamiast powtarzać kroki z każdym nowym elementem danych.

Procesory skalarne działają na jednym elemencie danych na raz, zanim przejdą do następnego elementu. Każdą dyspozycję należy wykonać na bieżącej pozycji przed przejściem do następnej instrukcji. Na końcu pętli zestaw instrukcji jest wykonywany na następnym elemencie w kolejności. Prawie wszystkie procesory na rynku masowym są skalarne, chociaż mogą mieć elementy, które działają bardziej jak procesory macierzowe.

Superkomputery z lat 1980. i 1990. zostały zaprojektowane do przetwarzania dużych ilości danych przy użyciu jednej instrukcji – wielu danych. Procesory macierzowe umożliwiły manipulowanie danymi naukowymi i badawczymi w krótszym czasie. Chociaż może wydawać się intuicyjne, że procesory macierzowe obsługiwałyby wszystkie funkcje procesora szybciej niż procesory skalarne, tak nie jest. Procesory macierzowe są w stanie wydajnie obsługiwać duże ilości danych, ale ponieważ funkcja ta wymaga bardziej złożonego procesora, prostsze operacje są trudniejsze do wykonania.

Różnice między procesorami skalarnymi i macierzowymi stały się mniej wyraźne wraz z wprowadzeniem mikroprocesorów w 1994 r. Od tego czasu mikroprocesory zawierające elementy danych składających się z jednej instrukcji i wielu danych stały się normą i dodatkowo zmniejszyły różnicę między procesorami skalarnymi i macierzowymi. Konsole do gier wideo i akceleratory graficzne mają własne procesory graficzne, które działają równolegle do głównego procesora skalarnego, dzięki czemu główny procesor może wykonywać funkcje inne niż graficzne.