Jaka jest różnica między procesorami skalarnymi i superskalarnymi?
Istnieją różne rodzaje jednostek centralnych (CPU) dostępnych dla komputerów. Tego rodzaju procesory tak naprawdę nie różnią się pod względem przetwarzania sprzętu i architektury. Większość z nich wykonuje podstawowe zadania procesora, takie jak odczyt i zapis danych, podstawowa arytmetyka i przeskakiwanie adresów. Mogą się one jednak różnić pod względem wielkości magistrali i architektury procesorów. Dostępnych jest kilka rodzajów sprzętu procesorów komputerowych, z których dwa to procesory skalarne i superskalarne.
Procesor wykonujący dane skalarne nazywa się procesorem skalarnym. Za pomocą argumentów stałoprzecinkowych instrukcje całkowite są wykonywane przez procesory skalarne nawet w najprostszym stanie. Bardziej wydajne procesory skalarne zwykle wykonują zarówno operacje zmiennoprzecinkowe, jak i operacje na liczbach całkowitych. Ostatnio produkowane procesory skalarne zawierają zarówno jednostkę zmiennoprzecinkową, jak i jednostkę całkowitą, wszystkie na tym samym układzie CPU. Większość współczesnych procesorów skalarnych używa instrukcji typu 32-bitowego.
Z drugiej strony procesor superskalarny wykonuje wiele instrukcji jednocześnie ze względu na swoją liczbę potoków. Ta struktura procesora realizuje równoległość na poziomie instrukcji, która jest formą równoległości w sprzęcie komputerowym, w obrębie jednego procesora komputerowego. Oznacza to, że może pozwolić na szybką przepustowość procesora, co nie jest nawet możliwe w innych procesorach, które nie implementują równoległości na poziomie instrukcji. Zamiast wykonywać jedną instrukcję na raz, superskalarny procesor 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, zmienne bity i jednostki arytmetyczne (ALU).
Różnice między procesorami skalarnymi i superskalarnymi sprowadzają się zasadniczo do ilości i prędkości. Procesor skalarny, uważany za najprostszy ze wszystkich procesorów, działa na jednym lub dwóch elementach danych komputerowych w danym momencie. Procesor superskalarny działa na wielu instrukcjach i kilku grupach wielu elementów danych jednocześnie. Procesory skalarne i superskalarne działają w ten sam sposób pod względem sposobu manipulowania danymi, ale ich różnica polega na tym, na ilu manipulacjach i elementach 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, dzięki czemu ten pierwszy jest bardziej wydajny niż drugi.
Oba procesory skalarne i superskalarne mają pewne podobieństwa z procesorami wektorowymi. Podobnie jak procesor skalarny, procesor wektorowy wykonuje jednocześnie pojedynczą instrukcję, 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 redundantnych jednostek funkcjonalnych, które pozwalają mu manipulować wieloma elementami danych, ale może pracować tylko na jednej instrukcji na raz. Zasadniczo procesor superskalarny jest kombinacją procesora skalarnego i procesora wektorowego.