Wykład 6 Podstawy architektury systemów równoległych opartych na równoległoci danych, Spis treci: 1. Komputery równoległe z wieloma strumieniami danych (typu SIMD) 2. Komputery wektorowe 3. Komputery asocjacyjne 4. Komputery systoliczne
Komputery równolegle z wieloma strumieniami danych (typu SIMD) Komputery SIMD (ang. Single Instruction Stream Multiple Data Stream) s budowane jako matryce procesorów które pracuj pod kontrol pojedyczego układu sterujcego. Wszystkie procesory w matrycy pracuj synchronicznie wykonujc wspólne instrukcje programu. Sterowanie obliczeniami wykorzystuje moliwo maskowania procesorów. Spotykane s dwa typy systemów SIMD: systemy SIMD z rozproszon pamici systemy SIMD ze wspóln pamici Równoległe przetwarzanie zgodne z strategi SIMD jest wykorzystywane we współczesnych mikroprocesorach w postaci specjalnych instrukcji typu SIMD.
Podstawowa struktura matrycowego komputera typu SIMD
Struktury połcze procesorów w systemach typu SIMD
Komputer typu SIMD z rozproszon pamici
Komputer typu SIMD z pamici współdzielon
Komercyjny komputer typu SIMD Connection Machine CM5 firmy Thinking Machines Ogólna struktura systemu CM5
Struktura procesora systemu CM5
Struktura systemu typu MSIMD (Multi SIMD)
Komputery wektorowe Komputery wektorowe (ang. vector computers) s to komputery, które maj wektorowe rozkazy wewntrzne (ang. vector instruction). Komputery skalarne maj wewntrzne rozkazy skalarne (ang. scalar instruction) wykonuj operacje na pojedynczych danych skalarach (ang. scalar). Rozkazy wektorowe, w odrónieniu od skalarnych, wykonuj operacje na wektorach liczbowych. Układ sterowania komputera sam organizuje dostp do elementów wektora w celu sprowadzenia ich z pamici do rejestrów i wykonania operacji, zakodowanych w rozkazach. Nie musi si o to troszczy programista.
Spotykane s nastpujce typy operacji wektorowych: a) jednoargumentowe na wektorze wynik wektor, np. obliczenie funkcji na wektorze, b) jednoargumentowe na wektorze wynik skalar, np. obliczenie sumy elementów wektora. c) dwuargumentowe na dwu wektorach wynik wektor, np. suma dwu wektorów, d) dwuargumentowe na dwu wektorach wynik skalar, np. iloczyn skalarny wektorów.
Pierwsze komputery wektorowe były systemami jednoprocesorowymi. Wykonywanie w nich operacji wektorowych oparte było na duych zbiorach rejestrów roboczych tzw. rejestrach wektorowych i potokowych blokach wykonawczych. Dziki zastosowaniu przetwarzania potokowego wykonywanie operacji wektorowych było bardzo efektywne. Rozkazy działały na argumentach pobieranych automatycznie z rejestrów z zapisem wyniku te w rejestrach. Zwykle bloków wykonawczych było kilka i mogły one pracowa równolegle. Układ sterowania sprowadzał z pamici operacyjnej wektorowe argumenty do rejestrów roboczych. Pobieranie argumentów było równie realizowane metod potokow.
Współczenie do wykonywania rozkazów wektorowych wykorzystuje si systemy wieloprocesorowe (równoległe). Spotykane s trzy podejcia do realizacji bloków funkcjonalnych dla procesorów komputerów wektorowych: potokowy blok arytmetyczno-logiczny (ang. pipelined ALU lub FPU) równolegle bloki arytmetyczno-logiczne (ang. parallel ALUs lub FPUs) procesory równoległe (ang. parallel processors). Komercyjne komputery wektorowe stanowi systemy SIMD z rozproszon pamici lub systemy MIMD z pamici dzielon lub wirtualn pamici dzielon.
Realizacja oblicze wektorowych w komputerze SIMD Argumenty wektorów, na których wykonywane ma by obliczenie wektorowe s rozproszone midzy pamiciami lokalnymi procesorów systemu SIMD. Centralny układ rozprowadza te same rozkazy skalarne do wszystkich procesorów, które wykonuj si na rozproszonych elementach wektorów np. A, B jak na rysunku. Wynik jest zapisywany w pamiciach lokalnych a nastpnie sprowadzany do modułu pamici wspólnej. Pami wspólna Centralny układ sterujcy SIMD Obliczenie na A[1], [B1] Procesor 1 Procesor 2 Procesor n Obliczenie na A[2], [B2] Pami lokalna 1 Pami lokalna 2 Pami lokalna n Obliczenie na A[n], B[n]
Ogólna struktura komputera wektorowego opartego na macierzy procesorów
Ogólna struktura komputera wektorowego opartego na procesorze wielopotokowym
Komercyjny komputer wektorowy Convex C4/XA Ogólna struktura komputera
Struktura procesorów (CPU) komputera Convex
Komputery asocjacyjne Wyróniamy dwa typy architektury komputerów asocjacyjnych: architektura oparta na pamici asocjacyjnej architektura oparta na procesorze asocjacyjnym.
Cechy architektury opartej na pamici asocjacyjnej: Dla danych wykorzystuje si pami asocjacyjn zamiast pamici o dostpie swobodnym (RM) Pami asocjacyjna jest adresowana zawartoci z równoległym dostpem do wielu słów. Komórki pamici asocjacyjnej wykonuj porównania bitowe z zadanymi wzorcami. Dane s przetwarzane wewntrz pamici asocjacyjnej przy wykorzystaniu maskowania. Wyniki porówna s zapamitywane w celu znacznikowania (ang. tag) poszukiwanych danych. Stosowane s strategie porównywania oparte na szeregowym dostpie do bitów (ang. bit serial) lub równoległym dostpie do bitów (ang. bit-parallel).
Cechy architektury opartej na procesorze asocjacyjnym Matryce procesorów asocjacyjnych s podłczone do pamici o dostpie swobodnym przy uyciu sieci przesyłania danych i sieci sterowania. Procesory asocjacyjne mog zapamita wzorzec dla poszukiwania danych i wykona zbiór okrelonych programem operacji porównujcych. Komparatory działajce na bitach s podstawowymi blokami funkcjonalnymi w tej architekturze. Operacje porównania s wykonywane w odpowiedzi na wzorce danych przesyłane przez sie wymiany danych zgodnie ze sterowaniem wysłanym przez sie sterujc. Komputer ASP (Associative String Processor) został zbudowany na Uniwersytecie Brunel w USA (1995) wykorzystywał matryc 16 tys. procesorów asocjacyjnych.
Ogólny schemat blokowy komputera asocjacyjnego opartego na pamici asocjacyjnej
Struktura blokowa pamici asocjacyjnej
Struktura wewn trzna pami ci asocjacyjnej
Ogólny schemat komputera asocjacyjnego ASP opartego na procesorach asocjacyjnych Modul ASP zawiera kilka pracujcych równolegle podzespołów przetwarzajcych (ASP substrings) zawierajcych elementarne procesory asocjacyjne.
Ogólna struktura równoległego podzespołu modułu ASP DI - Data Interface, CI - Control Interface, ADB - data buffer, ACU - control unit, ASP substring - podzespół przetwarzajcy zbudowany z cigu elementarnych procesorów asocjacyjnych
Struktura modułu ASP substring APE - elementarny procesor asocjacyjny, Vector Data Buffer- bufor we/wy danych,
Struktura elementarnego procesora asocjacyjnego APE (Associative Processing Element) Data register - 64-bit. rejestr danych, Activity register - 6-bit. rejestr czynnoci (activity), Comparator - 70-bit. komparator, 1-bitowe rejestry: C - Carry, M-Matching, D-Destination, A- Activity masking, MR - global Match Reply.
Sieci neuronalne Sieci neuronalne s oparte na modelach neuronów systemu nerwowego ludzi i zwierzt. Neurony s modelowane jako perceptrony, które wytwarzaj wyjcie gdy suma waonych wej jest powyej zadanej wartoci progu. Sieci perceptronów s uczone (poprzez dobór wag wej) aby wytwarzały podane wyjcia dla wej z zadanych klas wartoci. Neuronalne sieci mog by realizowane metodami programowymi lub mog by budowane ze zintegrowanych neuronalnych układów scalonych (mikroprocesorów neuronalnych) połczonych sieciami danych i sieciami sterujcymi. Sieci neuronalne s uczone by realizowa trzy ogólne typy zada wykonywanych na wejciach: klasyfikacja, transformacja lub redukcja (minimalizacja).
Schemat ogólny sztucznej sieci neuronalnej
Perceptron
Komercyjny scalony mikroprocesor neuronalny firmy Fujitsu
Komputery systoliczne Koncepcja systemów systolicznych jest konsekwencj potrzeby maksymalizacji efektywnoci przetwarzania w architekturach opartych na równoległoci danych Struktura komputerów systolicznych na wykorzystaniu matryc identycznych procesorów które oprócz przetwarzania danych, mog przesyła swoje wyniki do najbliszych ssiadów. Kady element matrycy wykonuje jedn ustalon funkcj. Nie organizuje si globalnych przesła danych w matrycy. Czciowe wyniki oblicze s generowane w danym kroku czasowym a nastpnie s jednoczenie przesłane wzdłu osi matrycy. Najlepsz wydajno oblicze uzyskuje si dla rozwizywania problemów, w których dane mog by zdekomponowane zgodnie z geometri, która odpowiada strukturze matrycy procesorów systolicznych. Matryce mog mie struktur liniow, prostoktn, heksagonaln.
Najbardziej znanymi komputerami systolicznymi s: WARP, ze struktura liniow, zrealizowany na Uniwersytecie Carnegi-Mellon w USA Systola 1024 o strukturze prostoktnej, wyprodukowany przez firm ISATECH.
Metoda działania matrycy procesorów komputera systolicznego.
Struktura przykładowego procesora komputera systolicznego
Wizualizacja post pu oblicze w matrycy komputera systolicznego
Znane geometrie matrycy procesorów komputerów systolicznych
Systoliczny liniowo poł czony system WARP, a) struktura systemu, b) schemat blokowy elementu przetwarzaj cego WARP
Komputery z bardzo długim slowem instrukcji Very Long Instruction Word Computers (VLIW) Architektura VLIW jest oparta na instrukcjach wewntrznych, które przypominaj mikrorozkazy z poziomym kodowaniem mikrooperacji. S one zbudowane z wielu pól, które steruj równoległym wykonaniem wielu operacji (bloków wykonawczych). Wyprodukowano kilka eksperymentalnych i komercyjnych komputerów VLIW.
Ogólna struktura komputera VLIW
Struktura blokowa komputera VLIW TRACE 7/200
Format instrukcji wewn trznej komputera TRACE 7/200 (długo 256 bitów)