Wykład 8 Systemy komputerowe ze współdzieloną pamięcią operacyjną, struktury i cechy funkcjonalne.



Podobne dokumenty
Wykład 2 Podstawowe pojęcia systemów równoległych, modele równoległości, wydajność obliczeniowa, prawo Amdahla/Gustafsona

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

16. Taksonomia Flynn'a.

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Architektura komputerów

Architektura komputerów

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura Komputerów

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

3.Przeglądarchitektur

Ograniczenia efektywności systemu pamięci

Architektura komputerów

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Rozproszona pamiêæ dzielona - 1

Dr inż. hab. Siergiej Fialko, IF-PK,

Wprowadzenie do systemów operacyjnych

3.Przeglądarchitektur

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

WPROWADZENIE Mikrosterownik mikrokontrolery

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa Mikrokomputera

Architektura komputera

Architektura mikroprocesorów TEO 2009/2010

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

dr inż. Jarosław Forenc

Urządzenia zewnętrzne

Procesory. Schemat budowy procesora

Algorytmy i Struktury Danych

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Mikroprocesor Operacje wejścia / wyjścia

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

dr inż. Jarosław Forenc

Systemy na Chipie. Robert Czerwiński

System mikroprocesorowy i peryferia. Dariusz Chaberski

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

LEKCJA TEMAT: Zasada działania komputera.

Ograniczenia efektywności systemu pamięci

Działanie systemu operacyjnego

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Działanie systemu operacyjnego

Technologie informacyjne - wykład 2 -

Obliczenia Wysokiej Wydajności

5. Model komunikujących się procesów, komunikaty

Architektura komputerów

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Działanie systemu operacyjnego

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Informatyka. informatyka i nauki komputerowe (computer science)

Technika mikroprocesorowa

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

dr inż. Jarosław Forenc

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

System operacyjny System operacyjny

Komputery równoległe. Zbigniew Koza. Wrocław, 2012

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Architektura von Neumanna

Architektura komputerów

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine

Systemy wieloprocesorowe i wielokomputerowe

Budowa komputera Komputer computer computare

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Budowa systemów komputerowych

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

8. MAGISTRALE I GNIAZDA ROZSZERZEŃ. INTERFEJSY ZEWNĘTRZNE.

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Systemy operacyjne. Literatura: A. Silberschatz, J.L. Peterson, P.B. Galwin, Podstawy systemów operacyjnych, WNT, Warszawa 2006

Programowanie Rozproszone i Równoległe

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Wprowadzenie do architektury komputerów. Taksonomie architektur Podstawowe typy architektur komputerowych

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Procesory Blackfin. Część 1

Co to jest lista top500. Omów mikrotechnologię Core

Organizacja typowego mikroprocesora

Architektura komputerów

Technologia informacyjna. Urządzenia techniki komputerowej

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Architektura systemu komputerowego

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

LEKCJA TEMAT: Współczesne procesory.

Architektura komputera wg Neumana

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

dr inż. Jarosław Forenc

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) -

Transkrypt:

Wykład 8 Systemy komputerowe ze współdzieloną pamięcią operacyjną, struktury i cechy funkcjonalne. Części wykładu: 1. Ogólny podział struktur systemów równoległych 2. Rodzaje systemów komputerowych z pamięcią wspólną 3. Pamięć wspólna w realizacji mikroprocesorów wielordzeniowych

1. Ogólny podział struktur systemów równoległych Dane i kod programu równoległego są przechowywane w systemie równoległym w pamięci operacyjnej dostępnej dla procesorów systemu. Ze względu na sposób organizacji i wykorzystywania pamięci operacyjnej przez procesory systemy wieloprocesorowego systemy równoległe dzielimy na: systemy ze wspólną pamięcią (współdzieloną, dzieloną) (ang. shared memory system) systemy z pamięcią rozproszoną (ang. distributed memory systems) systemy z rozproszoną pamięcią wspólną (ang. distributed shared memory system, virtual shared memory system).

System wieloprocesorowy z współdzieloną pamięcią (silnie związany) Procesor 1 Procesor 2 Procesor n Sieć łącząca procesory z modułami pamięci i układami wejścia/wyjścia Pamięć 1 Pamięć 2 Pamięć m We/Wy 1 We/Wy k Współdzielone moduły pamięci Układy We/Wy Schemat ogólny systemu

W systemie ze wspólną pamięcią, wszystkie procesory mają prawo korzystać z całej przestrzeni adresowej pamięci operacyjnej systemu. Fragmenty tej przestrzeni są zwykle ulokowane w odrębnych modułach pamięciowych, wyposażonych w odrębne dekodery adresu. Komunikacja między procesorami (fragmentami programów) w systemie ze wspólną pamięcią odbywa się za pomocą rozkazów dostępu do zmiennych dzielonych w pamięci. Jest ona nazywana komunikacją przez zmienne dzielone (ang. communication through shared variables). Pobieranie rozkazów do wykonania w procesorach również odbywa się ze wspólnej pamięci.

Efektywność dostępu do modułów pamięci zależy od budowy i własności sieci łączącej. Sieć ta jest czynnikiem ograniczającym przepustowość dostępu do pamięci dla większej liczby procesorów. Ogranicza to liczbę procesorów w tych systemach, przy których zapewniona jest dobra wydajność obliczeń równoległych. Systemy wieloprocesorowe ze wspólną pamięcią nazywane są systemami silnie związanymi (ang. tightly coupled system) lub wieloprocesorami (ang. multiprocessor). Ze względu na symetryczny dostęp wszystkich procesorów do wszystkich modułów pamięci, obliczenia w tych systemach nazywane są w literaturze symetrycznym wieloprzetwarzaniem (ang. Symmetric Multiprocessing SMP). SMP jest czasem również tłumaczone na Shared Memory Processor system

System wieloprocesorowy z rozproszoną pamięcią (luźno związany) Pamięć lokalna 1 We/Wy1 Pamięć lokalna 2 We/Wy2 Pamięć lokalna n We/Wy n Szyna lokalna Szyna lokalna Szyna lokalna Procesor 1 Procesor 2 Procesor n Łącze Łącze Łącze Sieć łącząca procesory Schemat ogólny systemu W systemie wieloprocesorowym z rozproszoną pamięcią, każdy procesor jest wyposażony we własną pamięć lokalną (ang. local memory) z przestrzenią adresową dostępną tylko dla tego procesora. Systemy wieloprocesorowe z rozproszoną pamięcią nazywane są w literaturze systemami luźno związanymi (ang. loosely coupled system) lub wielokomputerami (ang. multicomputers).

Procesory mogą wymieniać dane poprzez sieć łączącą procesory realizując komunikację przez przesyłanie komunikatów (ang. message passing). W programach wykonywane są do tego celu rozkazy nadaj komunikat i odbierz komunikat. Komunikaty są wysyłane używając w rozkazach identyfikatorów obiektów (zmiennych) zwanych kanałami komunikacyjnymi (ang. communication channel). Kanały reprezentują połączenie (ang. connection) istniejące (lub stworzone w sieci połączeń) między łączami komunikacyjnymi (ang. communication link) procesorów.

Łącza komunikacyjne mogą być szeregowe lub równoległe. Istnieją procesory przystosowane do przesyłania komunikatów, które mają kilka łączy - od 4 do 6 (transputer 4 łącza szeregowe, wybrane procesory DSP Data Signal Processors SHARC, firmy Analog Devices 6 łączy równoległych). Z każdym z łączy współpracuje niezależny kontroler procesora, sterujący zewnętrznymi transmisjami danych. Przy realizacji przesłania komunikatu, jest on pobierany z pamięci procesora a przy odbiorze przesyłany do pamięci. Kontrolerami dla przesyłania komunikatów są często kontrolery typu DMA - (ang. Direct Memory Access).

W systemach rozproszoną pamięcią jest możliwe połączenie bardzo wielu procesorów przy dużej efektywności komunikacji między procesorami i obliczeń w procesorach (wynika to z rozproszenia dostępów do pamięci). Dlatego systemy takie nazywane są również systemami z masywnym przetwarzaniem równoległym (ang. Massively Parallel Processing MPP).

System wieloprocesorowy z rozproszoną pamięcią wspólną Pamięć lokalna 1 We/Wy1 Pamięć lokalna 2 We/Wy2 Pamięć lokalna n We/Wy n Szyna lokalna Szyna lokalna Szyna lokalna Procesor 1 Ster. dostępu m Procesor 2 Ster. dostępu Procesor n dostępu Ster. Sieć dostępu do odległych modułów pamięci Schemat ogólny Systemy z rozproszoną pamięcią wspólną (ang. distributed shared memory) inaczej zwaną wirtualną pamięcią dzieloną (ang. virtual shared memory każdy procesor ma lokalną pamięć operacyjną.

Jednakże, każda pamięć jest umieszczona we wspólnej przestrzeni adresowej całego systemu. Oznacza to, że każdy procesor może mieć dostęp do pamięci lokalnej dowolnego innego procesora. W systemach z rozproszoną pamięcią wspólną, komunikacja między procesorami odbywa się przez dostęp do zmiennych dzielonych. Odbywa się to po prostu przez wykonanie rozkazu czytaj lub zapisz wspólne zmienne w pamięci innego procesora. W każdym procesorze istnieje układ sterowania dostępem do pamięci, który rozpoznaje bieżące adresy używane w rozkazach procesora i kieruje je do szyny dostępu do lokalnej pamięci albo wysyła adres wraz ze wskazaniem rodzaju operacji (odczyt/zapis) do innego procesora (ściślej do jego układu sterowania dostępem). Przesłanie adresu a później danych odbywa się za pośrednictwem sieci łączącej wszystkie procesory (ich układy sterowania dostępem do pamięci).

Systemy z rozproszoną pamięcią wspólną są obecnie najsilniej rozwijane w formie systemów superkomputerowych. Ten typ systemu jest nazywany w literaturze systemem ze skalowalnym przetwarzaniem równoległym (ang. Scalable Parallel Processing - SPP). Przyczyną dla nazwy MPP jest to, że ze wzrostem liczby procesorów w systemie, użytych do wykonania danego programu równoległego, wydajność systemu rośnie zgodnie ze współczynnikiem wzrostu liczby procesorów. Tę cechę nazywamy skalowalnością systemu równoległego (ang. parallel system scalability).

2. Rodzaje systemów komputerowych z pamięcią wspólną Systemy ze wspólną pamięcia dzieli się na 4 klasy w zależności od sposobu organizacji ich pamięci i schemat dostępu do danych w tych pamięciach: Systemy typu UMA - (ang. Uniform Memory Access), Systemy typu NUMA - (ang. Non-Uniform Memory Access), Systemy typu CC-NUMA - (ang. Cache Coherent Non-Uniform Memory Access), Systemy typu COMA - (ang. Cache-Only Memory Accesss). Systemy UMA są systemami ze współdzieloną przez procesory pamięcią operacyjną, ktora jest fizycznie wspólna. Systemy NUMA, CC-NUMA, COMA są systemami ze wspóldzielona przez procesory pamiecią operacyjną, która jest fizycznie rozproszoną między procesory.

Systemy typu UMA Schemat systemu UMA z pojedyńczaą szyną pamięciową W systemach typu UMA procesory P1...Pk mają jednakowo uprawniony dostęp do pamięci wspólnej zwykle zbudowanej z wielu równolegle pracujących banków (M1...Mn). Czas dostępu dla każdego procesora do dowolnej komórki pamięci jest jednakowy lub podobny, stąd nazwa.

W systemach UMA sieć połączeń jest współdzielona przez wszystkie procesory i może ona być typu: Szyna (magistrala) (ang. bus) Przełącznik krzyżowy (ang. crossbar switch), Wielostopniowa sieć połączeń (ang. multistage connection network). Szyna moze być pojedyńcza (ang. single bus) lub wielokrotna (ang. multibus). Szyna wielokrotna jest często stosowana aby zredukować spiętrzenia transakcji na szynie (ang. bus contention) wystepujace powszechnie w systemach typu UMA. Małe systemy UMA (mała liczba procesorów) byly budowane od lat 80-tych w oparciu o szyny pamięciowe. W większych systemach stosowano wielostopniowe sieci łączące co umozliwiało rónoległy doste p do wielu banków pamięci wspólnej.

Systemy typu NUMA Ogólna struktura systemu NUMA Systemy NUMA mają pamięci lokalne (M0...Mn) zlokalizowane przy procesorach (P0...Pn). Pamięci lokalne unieszczone sa we przestrzeni adresowej systemu wspólnej dla wszystkich procesorów. Komputery typu NUMA pozwalają wyeliminować spietrzenia transakcji na szynie pamięci wspólnej. Sieć połączeń umożliwia procesorom dostep do danych w odległych procesorach. Dostęp do pamieci lokalnej jest znacznie krótszy niż dostęp do pamięci innego procesora, stąd nazwa tego typu systemów.

Komunikacja danych w systemiach NUMA odbywa sie przez dostęp do wspólnych zmiennych. Dostep do zdalnych danych jest zrealizowany na podobnych zasadach jak przesyłanie komunikatów, jednakże poprzez wykonanie instrukcji dostępu do pamięci (czytaj, zapisz). Instrukcja dostępu do pamięci jest analizowana przez lokalny kontroler pamięci. Jeśli adres dotyczy pamięci lokalnej, realizowany jest bezpośredni dostęp. Jeśli adres jest w pamięci innego procesora, kontroler pamięci wysyła żądanie sprowadzenia odległych danych do pamięci lokalnej. Przeslanie realizuje kontroler pamięci innego procesora. W systemach NUMA, dane sprowadzane z pamięci odległej nie są automatycznie wprowadzane do pamięci podręcznej lokalnego procesora. Do tej pamięci są sprowadzane tylko dane lokalne, w miarę dostępu do nich przze lokalny procesor. W systemach NUMA, utrzymywanie spójności danych pochodzących z innego procesora, zmodyfikowanych lokalnie, jest skomplikowane. Jest to rozwiazywane programowo, bez wspomagania przez system.

Systemy typu CC-NUMA Ogólna struktura systemu CC-NUMA W systemach CC-NUMA dane pobierane przez procesory (P0...Pn) z pamięci (M0...Mn) innych procesorów, będących we wspólnej przestrzeni adresowej, są automatycznie wprowadzane do lokalnej pamięci podręcznej (C0...Cn) procesora pobierającego.

Systemy CC-NUMA zapewniają wsparcie systemowe i sprzętowe dla zapewnienia spójności (ang. coherence) kopii danych modyfikowanych lokalnie w wielu procesorach a przechowywanych w ich lokalnych pamięciach podręcznych. Realizują to mechanizmy kontroli control spójności pamięci podręcznych (ang. cache coherence mechanisms) istniejące zawsze w tych systemach. Zasady realizacji tej kontroli i uaktualniania kopii danych, aby zapewnić spójne ich wartości przy użyciu kopii danych zapisanych w wielu pamięciach podręcznych na raz są zawarte w protokołach spójności pamięci podręcznych (ang. cache coherence protocols). Protokoły spójności pamięci podręcznych dzielą się na dwie klasy: Sprzętowe protokoły spójności (ang. hardware-based coherency protocols), Programowe protokoły spójności (ang. software-based coherency protocols)

Sprzętowe protokoły spójności danych pamięci podręcznych zależą od typu sieci łączącej procesory w systemie CC-NUMA. Wyróżnione są następujące typy tych protokołów: protokoły z podglądem szyn (ang. snoopy cache protocols) dla systemów z sieciami jednoszynowymi, protokoły z katalogami (ang. directory-based protocols) dla systemów z wielostopniowymi sieciami połączeń protokoły hierarchiczne (ang. hierarchical cache protocols) dla systemów z sieciami wieloszynowymi.

Programowe protokoły spójności pamięci podręcznych dzielą się na : nieselektywne zabronienie dostępu do pamięci podręcznej (ang. indiscriminate invalidation) selektywne zabronienie dostępu do pamięci podręcznej (ang. indiscriminate invalidation) Obydwa protokoły programowe działają przy współpracy z kompilatorem, który analizuje program i klasyfikuje dane ze wzgledu na operacje zapisu i odczytu przez procesy. Tylko dane czytane lub modyfikowane przez jeden dodatkowy proces mają możliwość zapisu w odleglych pamięciach podręcznych. Protokół wstrzymuje dostęp danych w pamięciach podręcznych (poprzez specjalne wspomaganie sprzętowe) po zakończeniu wykonywania wyróżnionych przez kompilator sekcji programu, w których nastąpiła modyfikacja wspólnej skopiowanych zmiennych. Dostęp jest odblokowywany, po usunięciu niespójności metodami programowymi.

Systemy typu COMA Ogólna struktura systemu COMA W systemach COMA procesory (P0...Pn) są wyposażone jedynie w pamieci podreczne (C0...Cn). Nie wystepują tam lokalne pamięci operacyjne jak w sytemach UMA ani centralne pamięci współdzielone jak w systemach NUMA.

W systemach COMA alokacja danych jest na żądanie wywołane przez :chybienie" w lokalnej pamięci podręcznej. Sprowadzanie danych jest realizowane przez rozszerzone protokoły spójności danych w pamięciach podręcznych, które powodują, że przy "chybieniu" dane są automatycznie przesyłane do lokalnych pamięci podręcznych procesorów, które ich potrzebują. Jako protokoly bazowe dla sytemow COMA są stosowane sprzętowe protokoły opracowane dla dużych systemów rownoległych takie jak protokoły z katalogami i protokoły hierarchiczne.

Klasyfikacja architektury systemów z pamięcią wspólną

Komercyjne przykładowe systemy superkomputerowe ze wspólną pamięcią: UMA: Encore Multimax, Power Challenge SGI - USA NUMA: Cray T3D, Cray T3E, IBM RP3 - USA CC-NUMA: Flash, Convex Exemplar - USA COMA: DDM, KSR1 - USA

3. Pamięć wspólna w realizacji mikroprocesorów wielordzeniowych System SMP z rozdzielnymi pamięciami podręcznymi L1, L2 i wspólną jednoblokową pamięcią operacyjną

System CMP (Chip Multi-Processor) z rozdzielnymi pamięciami podręcznymi L1, L2 i wielkoblokową wspólną pamięcią operacyjną

System CMP (Chip Multi-Processor) z prywatnymi pamięciami podręcznymi L1, wspólną pamięcią L2 i wspólną pamięcią operacyjną

System CMP (Chip Multi-Processor) ze wspólną pamięcią podręczną L1, L2 i wspólną pamięcią operacyjną

Schemat blokowy mikroprocesora 4-rdzeniowego z lokalnymi pamięciami L1, wspólną pamięcią L2

Realizacja 4-rdzeniowego mikroprocesora Intel Core 2 Extreme Edition z pamięcią podręczną L3 oraz operacyjną współdzieloną poza układem scalonym procesora.

Schemat ogólny mikroprocesora dwurdzeniowego AMD Athlon 64 X2 z pamięcią L3 oraz operacyjną, współdzieloną poza układem scalonym procesora

Geometria układu scalonego mikroprocesora 4-rdzeniowego firmy Intel z architekturą Nehalem w edycji technologicznej Sandy Bridge, 32 nm, z prywatnymi pamięciami podręcznymi L1 oraz L2 rdzeni oraz wspólną pamięcią podręczną L3 umieszczoną w układzie scalonym procesora,