Architektura komputerów Tydzień 14
Procesory równoległe
Klasyfikacja systemów wieloprocesorowych
●
Luźno powiązane systemy wieloprocesorowe
– Każdy procesor ma własną pamięć główną i kanały wejścia-wyjścia.
●
Procesory wyspecjalizowane funkcjonalnie
– Istnieje główny procesor i pomocnicze, które są przez niego sterowane.
●
Silnie powiązane systemy wieloprocesorowe
– Zbiór procesorów o wspólnej pamięci głównej pod kontrolą jednego systemu operacyjnego.
●
Systemy z przetwarzaniem równoległym
– Silnie powiązane systemy wieloprocesorowe, które mogą współpracować, pracując równolegle nad jednym zadaniem.
● Luźno powiązane systemy wieloprocesorowe to po prostu oddzielne komputery, z których każdy posiada własną pamięć, niedostępną dla pozostałych i oddzielny system operacyjny.
● Są połączone za pomocą szybkiej sieci.
● Wymagają odpowiedniego wsparcia ze strony systemu operacyjnego, lub tylko aplikacji, działającej w rozproszonym środowisku.
● Z procesorami wyspecjalizowanymi funkcjonalnie mamy do czynienia w
każdym współczesnym komputerze PC.
● Przykładem jest procesor na karcie grafiki, wykonujący złożone obliczenia dla grafiki dwu i trójwymiarowej.
● Występuje wiele wyspecjalizowanych procesorów, które odciążają procesor główny.
Silnie powiązane systemy wieloprocesorowe
● Ze wspólną magistralą
– wszystkie procesory, pamięć i inne układy są przyłączone do jednej magistrali systemowej.
● Z pamięcią wieloportową
– układy pamięci zawierają wiele portów pozwalających każdemu procesorowi na niezależny, równoległy dostęp do pamięci.
● Z centralną jednostką sterującą
– centralna jednostka sterująca kieruje przepływem danych między pozostałymi układami: procesorami, pamięcią i we-wy.
● Zalety:
– Prostota. Interfejs, adresowanie, arbitraż w procesorach są takie same jak w układzie jednoprocesorowym.
– Elastyczność. Stosunkowo łatwo dodać kolejne procesory do magistrali.
– Niezawodność. Uszkodzenie któregoś z urządzeń nie powinno spowodować
uszkodzenia całego systemu.
● Wady:
– Ograniczona wydajność.
● Wieloprocesorowy system operacyjny powinien realizować dodatkowe
funkcje:
– równoważenie obciążenia wejścia-wyjścia
– równoważenie obciążenia procesorów
– rekonfiguracja
● Dwa rozwiązania:
– Architektura nadrzędny/podrzędny: jeden z procesorów pełni nadrzędną funkcję, na nim jest wykonywany system operacyjny.
– Architektura równoprawna.
● Każdy procesor ma własną pamięć cache.
● Wiele kopii tych samych danych może jednocześnie znajdować się w
pamięciach cache różnych procesorów.
● Jeśli każdy procesor aktualizuje swoją kopię, pojawia się niespójny obraz pamięci.
● Rozwiązania programowe – blokowanie danych.
● Rozwiązania sprzętowe:
– protokoły katalogowe
– protokoły podglądania
● zapis z unieważnieniem
● zapis z aktualizacją
– protokół MESI
stan wiersza
● Zmodyfikowany
– wiersz został zmodyfikowany i jest osiągalny tylko w tej pamięci podręcznej
● Wyłączny
– wiersz jest taki sam jak w pamięci i nie występuje w innych pamięciach
podręcznych
● Wspólny
– wiersz jest taki sam jak w pamięci i może występować w innych pamięciach
podręcznych
● Nieważny
– wiersz nie zawiera ważnych danych
SHR
RH - trafienie odczytu
RMS – chybienie odczytu,
RH
wspólny
SHW
RME – chybienie odczytu,
Nieważny
Wspólny
wyłączny
RMS
WH - trafienie zapisu
WM - chybienie zapisu
SRH – śledź trafienie
RME
WH
odczytu
SHW
X
SHW – śledź trafienie zapisu
(pakiet)
lub odczytu z
+
SHR
zamiarem modyfikacji
SHW
Kopiowanie zmienio-
WM
SHR
SHW
nego wiersza
RH
X Unieważnienie
transakcji
Zmodyfi-
WH
Wyłączny
kowany
+ Odczyt z zamiarem
modyfikacji
RH
Wypełnienie wiersza
WH
pamięci podręcznej
równoległych
● SISD (single instruction single data)
– pojedynczy strumień rozkazów i danych – jeden procesor ze zwielokrotnionymi jednostkami wykonawczymi
● SIMD (single instruction, multiple data)
– pojedynczy strumień rozkazów i zwielokrotniony strumień danych. Jeden rozkaz steruje przetwarzaniem wielu procesorów na różnych danych – procesory wektorowe
● MIMD (multiple instruction, multiple data)
– wiele strumieni rozkazów i danych: każy procesor ma własny strumień rozkazów i danych. Pamięć może być wspólna lub rozdzielona.
● Wielokomputer to oddzielne komputery pracujące w sieci nad wspólnym
problemem – klaster.
● Topologie:
– Pierścień
– Siatka
– Drzewo
– Hipersześcian
Pierścień
Siatka
Drzewo
Hipersześcian