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

● 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ą

– 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.

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.

– Architektura równoprawna.

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

– 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

Graf przejść MESI

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

Rodzaje procesorów

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.

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