wspolczesne_systemy_komputerowe:klasyfikacja_architektur

# Klasyfikacja wg. Flynna

Klasyfikacja wg Flynna opiera się na ilości strumieni danych oraz liczbie strumieni rozkazów przetwarzanych jednocześnie w danym systemie komputerowym. Flynn zaproponował podział architektury komputerów w oparciu o te elementy na cztery grupy:

- SISD (single instruction stream, single data stream - pojedynczy strumień instrukcji, pojedynczy strumień danych)

Do tej grupy należą między innymi konwencjonalne komputery sekwencyjne(oparte na architekturze Von Neummana), gdzie pojedynczy procesor wykonuje sekwencyjny strumień operacji na jednym strumieniu danych. Obecnie wiele z komputerów posiada więcej niż jeden procesor, jednakże każdy z nich wykonuje strumienie rozkazów, które nie są ze sobą powiązane, na pojedynczych strumieniach danych, dlatego też maszyny takie nadal zaliczane się do grupy komputer ów o architekturze SISD.

- SIMD (single instruction stream, multiple data stream - pojedynczy strumień instrukcji, wielokrotny strumień danych)

Architektury te często zawierają dużą liczbę CPU w granicach od 1,024 do 16,384, które mogą wykonywać identyczny ciągi instrukcji na różnych strumieniach danych. W architekturze tej zwykle wyróżniamy centralny procesor oraz wiele procesorów poboczych odgrywających rolę jednostek obliczeniowych. W tej sytuacji procesor główny zarządza podległymi mu procesorami pobocznymi. Procesory poboczne będące pod kontrolą danego procesora głównego mogą mieć każdy oddzielną pamięć, bądź też posiadać jedną jednostkę wspólną dla wszystkich. W pierwszym przypadku odwołanie się do pamięci innego procesora wymaga wysłania prośby do procesora nadzorującego prace co jest równoznaczne ze stratą czasu potrzebnego na tą komunikację, natomiast jeżeli chodzi o drugi przypadek konieczność ta jest wyeliminowana. W kategorii tej mieszczą się komputery wyposażone w tablice procesorów (array processors), oraz powszechnie wykorzystywane tzw. Procesory wektorowe (zastosowane między innymi w komputerze Cray-1) wykonujące tą samą operacje na całych wektorach danych, a nie na pojedynczych danych.

- MISD (multiple instruction stream, single data stream - wielokrotny strumień instrukcji, pojedynczy strumień danych)

Z kolei do tej kategorii można zaliczyć komputery, w których zbiór procesorów wykonuje różne strumienie instrukcji na jednym strumieniu danych. Architektura ta jednakże nie jest w praktyce wykorzystywana i ciężko znaleźć przykłady jej realizacji, gdyż zastępowana jest zwykle bardziej użytecznymi architekturami SIMD oraz MIMD.

- MIMD (multiple instruction stream, multiple data stream – wielokrotny strumień instrukcji, wielokrotny strumień danych)

Jest to architektura, która zdecydowanie dominuje, pod względem wydajności oraz powszechności stosowania, na dzisiejszym rynku superkomputerów. Opiera się ona na wielu procesorach, z których każdy posiada swój własny zbiór instrukcji, które są wykonywane na różnych strumieniach danych.

# Podział ze względu na rodzaj systemu zarządzania pamięcią

- Shared memory systems: systemy posiadające wiele procesorów korzystających ze wspólnej przestrzeni adresowej. Do grupy tej mogą należeć zarówno komputery o architekturze SIMD jak również maszyny posiadające architekturę MIMD.

- Distributed memory systems: w tym przypadku każdemu procesorowi przypisany jest jego własny obszar pamięci. Poszczególne procesory połączone są swego rodzaju siecią, dzięki której mogą wymieniać między sobą informacje, gdy nadejdzie taka potrzeba.

# Architektury systemów otwartych

- Statyczne sieci połączeń : wyczerpujące (każdy węzeł ma indywidualne połączenie), gwiazda (centralny węzeł miejscem krytycznym), szereg (pierścień), krata, drzewiasta, hiper-sześcienna
- Dynamiczne sieci połączeń : magistrala, przełącznica krzyżowa