====== 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

{{:wspolczesne_systemy_komputerowe:architekturycdr.jpg|:wspolczesne_systemy_komputerowe:architekturycdr.jpg}}

{{:wspolczesne_systemy_komputerowe:mkr.jpg|:wspolczesne_systemy_komputerowe:mkr.jpg}}