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

Istnieją różne typy jednostek centralnych (CPU) dostępnych dla komputerów. Te typy procesorów tak naprawdę nie różnią się pod względem sprzętu przetwarzania i architektury. Większość z nich wykonuje podstawowe zadania procesora, takie jak odczytywanie i zapisywanie danych, podstawowa arytmetyka i przeskakiwanie adresów. Mogą jednak różnić się rozmiarem magistrali i architekturą procesora. Dostępnych jest kilka typów procesorów komputerowych, z których dwa to procesory skalarne i superskalarne.

Procesor, który wykonuje dane skalarne, nazywany jest procesorem skalarnym. Używając operandów stałoprzecinkowych, instrukcje liczb całkowitych są wykonywane przez procesory skalarne nawet w ich najprostszym stanie. Wydajniejsze procesory skalarne zwykle wykonują zarówno operacje zmiennoprzecinkowe, jak i całkowite. Ostatnio produkowane procesory skalarne zawierają zarówno jednostkę zmiennoprzecinkową, jak i jednostkę całkowitą, wszystkie na tym samym układzie procesora. Większość z tych nowoczesnych procesorów skalarnych używa instrukcji 32-bitowych.

Z drugiej strony, procesor superskalarny wykonuje wiele instrukcji jednocześnie ze względu na wielokrotną liczbę potoków. Ta struktura procesora implementuje równoległość na poziomie instrukcji, która jest formą równoległości w sprzęcie komputerowym, w ramach pojedynczego procesora komputerowego. Oznacza to, że może zapewnić dużą przepustowość procesora, która nie jest nawet możliwa zdalnie w innych procesorach, które nie implementują równoległości na poziomie instrukcji. Zamiast wykonywania jednej instrukcji na raz, procesor superskalarny wykorzystuje swoje nadmiarowe jednostki funkcjonalne do wykonywania wielu instrukcji. Te jednostki funkcjonalne nie są oddzielnymi rdzeniami procesora, ale zasobami rozszerzenia pojedynczego procesora, takimi jak mnożniki, przesuwacze bitów i jednostki arytmetyczno-logiczne (ALU).

Różnice między procesorami skalarnymi i superskalarnymi sprowadzają się na ogół do ilości i szybkości. Procesor skalarny, uważany za najprostszy ze wszystkich procesorów, pracuje na jednym lub dwóch elementach danych komputerowych w danym czasie. Procesor superskalarny działa jednocześnie na wielu instrukcjach i kilku grupach wielu elementów danych. Procesory skalarne i superskalarne działają w ten sam sposób pod względem sposobu manipulowania danymi, ale ich różnica polega na tym, ile manipulacji i elementów danych mogą pracować w danym czasie. Procesory superskalarne mogą obsługiwać wiele instrukcji i elementów danych, podczas gdy procesor skalarny po prostu nie może, przez co ten pierwszy jest bardziej wydajnym procesorem niż ten drugi.

Procesory skalarne i superskalarne mają pewne podobieństwa z procesorami wektorowymi. Podobnie jak procesor skalarny, procesor wektorowy również wykonuje pojedynczą instrukcję na raz, ale zamiast manipulować tylko jednym elementem danych, jego pojedyncza instrukcja może uzyskać dostęp do wielu elementów danych. Podobnie jak w przypadku procesora superskalarnego, procesor wektorowy ma kilka nadmiarowych jednostek funkcjonalnych, które pozwalają mu manipulować wieloma elementami danych, ale jednocześnie może działać tylko na jednej instrukcji. W istocie procesor superskalarny jest kombinacją procesora skalarnego i procesora wektorowego.