Architektura systemu i pamięci
Podczas projektowania programu lub systemu współbieżnego należy wziąć pod uwagę różne style systemu i architektury pamięci. Jest to bardzo konieczne, ponieważ jeden styl systemu i pamięci może być odpowiedni do jednego zadania, ale może być podatny na błędy w przypadku innego zadania.
Architektury systemów komputerowych obsługujące współbieżność
Michael Flynn w 1972 roku podał taksonomię kategoryzacji różnych stylów architektury systemów komputerowych. Ta taksonomia definiuje cztery różne style w następujący sposób -
- Pojedynczy strumień instrukcji, pojedynczy strumień danych (SISD)
- Pojedynczy strumień instrukcji, wiele strumieni danych (SIMD)
- Wiele strumieni instrukcji, pojedynczy strumień danych (MISD)
- Wiele strumieni instrukcji, wiele strumieni danych (MIMD).
Pojedynczy strumień instrukcji, pojedynczy strumień danych (SISD)
Jak sama nazwa wskazuje, takie systemy miałyby jeden sekwencyjny przychodzący strumień danych i jedną jednostkę przetwarzającą do realizacji strumienia danych. Są jak systemy jednoprocesorowe o równoległej architekturze obliczeniowej. Oto architektura SISD -
Zalety SISD
Zalety architektury SISD są następujące -
- Wymaga mniejszej mocy.
- Nie ma problemu ze złożonym protokołem komunikacyjnym między wieloma rdzeniami.
Wady SISD
Wady architektury SISD są następujące -
- Szybkość architektury SISD jest ograniczona, podobnie jak w przypadku procesorów jednordzeniowych.
- Nie nadaje się do większych zastosowań.
Pojedynczy strumień instrukcji, wiele strumieni danych (SIMD)
Jak sama nazwa wskazuje, takie systemy miałyby wiele przychodzących strumieni danych i liczbę jednostek przetwarzających, które mogą działać na pojedynczą instrukcję w danym momencie. Są jak systemy wieloprocesorowe z równoległą architekturą obliczeniową. Oto architektura SIMD -
Najlepszym przykładem SIMD są karty graficzne. Te karty mają setki indywidualnych jednostek przetwarzających. Jeśli mówimy o obliczeniowej różnicy między SISD i SIMD, to o dodawanie tablic[5, 15, 20] i [15, 25, 10],Architektura SISD musiałaby wykonać trzy różne operacje dodawania. Z drugiej strony, dzięki architekturze SIMD, możemy dodać następnie w jednej operacji dodawania.
Zalety SIMD
Zalety architektury SIMD są następujące -
Ta sama operacja na wielu elementach może być wykonana przy użyciu tylko jednej instrukcji.
Wydajność systemu można zwiększyć, zwiększając liczbę rdzeni procesora.
Szybkość przetwarzania jest wyższa niż w architekturze SISD.
Wady SIMD
Wady architektury SIMD są następujące -
- Istnieje złożona komunikacja między liczbą rdzeni procesora.
- Koszt jest wyższy niż w przypadku architektury SISD.
Strumień wielu instrukcji pojedynczych danych (MISD)
Systemy ze strumieniem MISD mają wiele jednostek przetwarzających wykonujących różne operacje, wykonując różne instrukcje na tym samym zestawie danych. Oto architektura MISD -
Przedstawiciele architektury MISD nie istnieją jeszcze komercyjnie.
Strumień wielu instrukcji i wielu danych (MIMD)
W systemie wykorzystującym architekturę MIMD każdy procesor w systemie wieloprocesorowym może wykonywać różne zestawy instrukcji niezależnie od różnych zestawów danych równolegle. Jest to przeciwieństwo architektury SIMD, w której pojedyncza operacja jest wykonywana na wielu zestawach danych. Oto architektura MIMD -
Zwykły procesor wieloprocesorowy wykorzystuje architekturę MIMD. Architektury te są zasadniczo używane w wielu obszarach zastosowań, takich jak projektowanie wspomagane komputerowo / produkcja wspomagana komputerowo, symulacja, modelowanie, przełączniki komunikacyjne itp.
Architektury pamięci obsługujące współbieżność
Podczas pracy z takimi pojęciami, jak współbieżność i równoległość, zawsze istnieje potrzeba przyspieszenia programów. Jednym z rozwiązań znalezionych przez projektantów komputerów jest utworzenie wielu komputerów z pamięcią współdzieloną, tj. Komputerów z pojedynczą fizyczną przestrzenią adresową, do której dostęp mają wszystkie rdzenie procesora. W tym scenariuszu może istnieć wiele różnych stylów architektury, ale następujące są trzy ważne style architektoniczne -
UMA (jednolity dostęp do pamięci)
W tym modelu wszystkie procesory równomiernie współdzielą pamięć fizyczną. Wszystkie procesory mają równy czas dostępu do wszystkich słów pamięci. Każdy procesor może mieć prywatną pamięć podręczną. Urządzenia peryferyjne podlegają pewnym regułom.
Gdy wszystkie procesory mają równy dostęp do wszystkich urządzeń peryferyjnych, system nazywa się a symmetric multiprocessor. Gdy tylko jeden lub kilka procesorów ma dostęp do urządzeń peryferyjnych, system nosi nazwęasymmetric multiprocessor.
Niejednolity dostęp do pamięci (NUMA)
W modelu wieloprocesorowym NUMA czas dostępu różni się w zależności od lokalizacji słowa pamięci. Tutaj pamięć współdzielona jest fizycznie rozdzielana między wszystkie procesory, zwane pamięcią lokalną. Zbiór wszystkich lokalnych pamięci tworzy globalną przestrzeń adresową, do której mają dostęp wszystkie procesory.
Architektura pamięci podręcznej (COMA)
Model COMA to wyspecjalizowana wersja modelu NUMA. Tutaj wszystkie rozproszone główne pamięci są konwertowane na pamięci podręczne.