14 procesory rownolegle

Transkrypt

14 procesory rownolegle
Architektura komputerów
Tydzień 14
Procesory równoległe
Klasyfikacja systemów
wieloprocesorowych
●
Luźno powiązane systemy wieloprocesorowe
–
●
Procesory wyspecjalizowane funkcjonalnie
–
●
Istnieje główny procesor i pomocnicze, które są przez
niego sterowane.
Silnie powiązane systemy wieloprocesorowe
–
●
Każdy procesor ma własną pamięć główną i kanały
wejścia-wyjścia.
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
●
●
●
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.
Procesory wyspecjalizowane
●
●
●
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ą
–
●
Z pamięcią wieloportową
–
●
wszystkie procesory, pamięć i inne układy
są przyłączone do jednej magistrali
systemowej.
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.
Magistrala
●
●
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ść.
System operacyjny
●
●
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.
Spójność pamięci podręcznych
●
●
●
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
●
●
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
Protokół MESI
stan wiersza
●
Zmodyfikowany
–
●
Wyłączny
–
●
wiersz jest taki sam jak w pamięci i nie
występuje w innych pamięciach
podręcznych
Wspólny
–
●
wiersz został zmodyfikowany i jest
osiągalny tylko w tej pamięci podręcznej
wiersz jest taki sam jak w pamięci i może
występować w innych pamięciach
podręcznych
Nieważny
Graf przejść MESI
SHR
SHW
Nieważny
RMS
RME
SHW
(pakiet)
X
+
SHW
WM
SHR
RH - trafienie odczytu
RMS – chybienie odczytu,
RH
wspólny
RME – chybienie odczytu,
Wspólny
wyłączny
WH - trafienie zapisu
WM - chybienie zapisu
SRH – śledź trafienie
odczytu
WH
SHW – śledź trafienie zapisu
lub odczytu z
zamiarem modyfikacji
SHR
Kopiowanie zmienionego wiersza
SHW
RH
Zmodyfikowany
RH
WH
WH
Wyłączny
X
Unieważnienie
transakcji
+
Odczyt z zamiarem
modyfikacji
Wypełnienie wiersza
pamięci podręcznej
Rodzaje procesorów
równoległych
●
SISD (single instruction single data)
–
●
SIMD (single instruction, multiple data)
–
●
pojedynczy strumień rozkazów i danych – jeden
procesor ze zwielokrotnionymi jednostkami
wykonawczymi
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.
Wielokomputery
●
●
Wielokomputer to oddzielne komputery
pracujące w sieci nad wspólnym
problemem – klaster.
Topologie:
–
Pierścień
–
Siatka
–
Drzewo
–
Hipersześcian
Topologie
Pierścień
Siatka
Drzewo
Hipersześcian