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.
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
Graf przejść MESI RH SHW (pakiet) Nieważny + SHW WM Zmodyfikowany WH RME SHR RMS SHW WH X SHR RH Wspólny WH SHR SHW RH Wyłączny RH - trafienie odczytu RMS chybienie odczytu, wspólny RME chybienie odczytu, wyłączny WH - trafienie zapisu WM - chybienie zapisu SRH śledź trafienie odczytu SHW śledź trafienie zapisu lub odczytu z zamiarem modyfikacji X + Kopiowanie zmienionego wiersza 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) 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