Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

Podobne dokumenty
Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Architektura komputerów

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

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

System pamięci. Pamięć podręczna

Zrównoleglenie i przetwarzanie potokowe

Architektura komputerów

System pamięci. Pamięć podręczna

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek

Stronicowanie w systemie pamięci wirtualnej

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

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

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

architektura komputerów w. 7 Cache

Podstawy. Pamięć wirtualna. (demand paging)

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

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

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

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Systemy operacyjne III

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

System pamięci. Pamięć wirtualna

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Ograniczenia efektywności systemu pamięci

PYTANIA BUDOWA KOMPUTERA kartkówki i quizy

Budowa komputera Komputer computer computare

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Poziomy abstrakcji cyfrowego systemu komputerowego. Procesor i pamięć. organizacja pamięci

Zarządzanie pamięcią operacyjną

Architektura Systemów Komputerowych

System pamięci. Pamięć wirtualna

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

dr inż. Jarosław Forenc

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

architektura komputerów w. 8 Zarządzanie pamięcią

Programowanie mikroprocesorów jednoukładowych

System obliczeniowy laboratorium oraz. mnożenia macierzy

Ograniczenia efektywności systemu pamięci

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

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Magistrala systemowa (System Bus)

ARCHITEKTURA PROCESORA,

ARCHITEKTURA KOMPUTERÓW Bufory pamięci bufor zawiera kopie aktualnie przetwarzanych danych

Hierarchia pamięci w systemie komputerowym

Programowanie Niskopoziomowe

System pamięci. Pamięć wirtualna

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

Pamięć. Podstawowe własności komputerowych systemów pamięciowych:

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

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

Wykład 7. Zarządzanie pamięcią

Wprowadzenie do architektury komputerów. Pamięci w systemach komputerowych Pamięć podręczna

Architektura systemu komputerowego

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

W komputerze z programem zintegrowanym programy i dane mają tedencję do skupiania w wymiarze przestrzennym i czasowym.

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

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

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

UKŁADY PAMIĘCI. Tomasz Dziubich

Architektura systemów informatycznych

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

Architektura komputerów egzamin końcowy

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Wydajność obliczeń a architektura procesorów

Kto mówi? Inżynier systemów wbudowanych Linux, ARMv7, ARMv8

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

Pamięci półprzewodnikowe na podstawie książki: Nowoczesne pamięci

Architektura mikroprocesorów z rdzeniem ColdFire

Pamięci półprzewodnikowe

Projektowanie. Projektowanie mikroprocesorów

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Parametry techniczne. Testy

Podstawy Informatyki Systemy sterowane przepływem argumentów

Architektura komputerów

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Macierze All Flash. Czy to jest alternatywa dla macierzy klasy Enterprise? Krzysztof Jamiołkowski HP EG Storage Solutions Architect

Współpraca procesora ColdFire z pamięcią

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zarządzanie zasobami pamięci

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Architektura mikroprocesorów TEO 2009/2010

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Budowa Mikrokomputera

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Dydaktyka Informatyki budowa i zasady działania komputera

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Potrzeba instalacji w napędach SSD akumulatorów ograniczała jednak możliwości miniaturyzacji takich napędów.

Transkrypt:

Pamięć

Wydajność obliczeń Dla wielu programów wydajność obliczeń może być określana poprzez pobranie danych z pamięci oraz wykonanie operacji przez procesor Często istnieją algorytmy, których wydajność zależy tylko od jednego z tych czynników Sprzyja temu budowa oraz sposób działania nowoczesnych systemów komputerowych

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna maszyny wieloprocesorowe pamięć wspólna (UMA, NUMA, cc NUMA) pamięć rozproszona architektury hybrydowe pamięć wspólna (huma, VSM) pamieć wbudowana (edram)

Czas wykonania pojedynczej operacji procesora: ~0.4ns Czas dostępu do pojedynczej zmiennej w pamięci DRAM: ~40ns Konieczność wprowadzenia szybszej niż DRAM pamięci pośredniej, pomiędzy rejestrami i pamięcią główną Przybliżone przykładowe rozmiary i czasy dostępu dla różnych rodzajów pamięci: rejestry kilkaset B < 1ns podręczna (L1) kilkanaście kb ok. 1 ns ~$2000/GB podręczna (L2 3) kilka MB kilka ns główna kilka GB kilkadziesiąt ns ~$20/GB dyskowa kilkaset GB kilka ms ~$0.2/GB

L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 100 ns Main memory reference 100 ns Compress 1K bytes with Zippy 3,000 ns Send 1K bytes over 1 Gbps network 10,000 ns Read 4K randomly from SSD 150,000 ns Read 1 MB sequentially from memory 250,000 ns Round trip within same datacenter 500,000 ns Read 1 MB sequentially from SSD 1,000,000 ns Disk seek 10,000,000 ns Read 1 MB sequentially from network 10,000,000 ns Read 1 MB sequentially from disk 30,000,000 ns Send packet CA->Netherlands->CA 150,000,000 ns

Jak szacować czas realizacji operacji pobierania z pamięci (w algorytmach o wydajności ograniczanej przez pamięć ten czas służy do określania ostatecznej wydajności przy realizacji algorytmu): t MEM = liczba_dostępów * czas_dostępu Czas dostępu do pojedynczej danej (pojedynczego argumentu) jest często podawany jako parametr pamięci i dla pamięci RAM wynosi ok. kilkudziesięciu ns: oznacza to możliwość przesłania do procesora ok. kilkudziesięciu MB danych na sekundę

Przykład oszacowania dla algorytmu mnożenia macierz razy wektor (rozmiar macierzy nxn): liczba_dostępów - 2n 2 czas_dostępu 100ns t MEM = 200n 2 * 10-9 s Dla porównania czas wykonania 2n 2 operacji algorytmu w przypadku uwzględnienia teoretycznych możliwości czterodrożnego procesora o częstotliwości 2.5GHz: t PROC = 0.2n 2 * 10-9 s Pamięć spowalnia wykonanie zadania 1000 razy?

Działanie pamięci podręcznej: procesor zgłasza chęć dostępu do komórki pamięci sprawdzana jest odpowiadająca jej linia pamięci podręcznej (lub zbiór linii): trafienie (hit) wartość jest udostępniana chybienie (miss) przeładowywana jest zawartość całej linii pamięci odczyt lub zapis komórki z pamięci podręcznej jeśli procesor dokonuje zapisu konieczna jest strategia utrzymywania spójności pamięci podręcznej (w stosunku do pamięci głównej)

Organizacja pamięci podręcznej: linie pamięci o pojemności kilku słów (np. 64B, 128B) odwzorowanie obszarów (bloków) pamięci głównej w linie pamięci podręcznej: statyczne bezpośrednie, direct mapped (każdy blok ma swoją linię) dynamiczne: skojarzeniowe, fully associative (każdy blok może być odwzorowany w dowolną linię całej pamięci) sekcyjno skojarzeniowe, set associative (każdy blok może być odwzorowany w dowolną linię z pewnej grupy) architektura harvardzka: osobna pamięć podręczna dla danych, osobna dla kodu (dla unikania hazardu zasobów)

Działanie pamięci podręcznej: strategie podmiany linii w dynamicznych pamięciach podręcznych: losowo FIFO najdłużej przechowywana LRU (least recently used) najdawniej użyta LFU (least frequently used) najrzadziej używana

Haswell - 2 loads and 1 store per cycle Sandy Bridge only when using 256-bit memory accesses.

Przydatność pamięci podręcznej zależy od stopnia lokalności odniesień do danych w programie lokalność czasowa: dane raz użyte niedługo zostaną użyte ponownie (warto je zachować w szybszej pamięci) lokalność przestrzenna: jeśli w programie użyto jakichś danych to za chwile zostaną użyte dane sąsiadujące w pamięci (warto pobierać do pamięci podręcznej całe bloki) Miarą lokalności odniesień w trakcie wykonywania programu jest współczynnik trafień (hit ratio) proporcja trafień do chybień Optymalne wykorzystanie pamięci podręcznej ma kluczowe znaczenie dla wydajności programów.

Zastosowanie pamięci podręcznej przynosi zazwyczaj wzrost wydajności, ponieważ wiele programów ma w sposób naturalny wysoki stopień lokalności odniesień (w praktyce stosunek trafień do chybień sięga nawet powyżej 90%) Chcąc zwiększać wydajność programów dzięki optymalnemu wykorzystaniu pamięci podręcznej należy maksymalizować stopień lokalności odniesień w kodzie (grupować odniesienia do tych samych i sąsiadujących danych w jedno miejsce) Ciekawą alternatywą są tzw. cache oblivious algorithms

Obliczenie średniego czasu dostępu do danej w pamięci dla konkretnego programu: t c czas dostępu do pamięci podręcznej (czas obsługi trafienia) t m czas dostępu do pamięci głównej (czas obsługi chybienia) h współczynnik trafień w pamięci podręcznej t av średni czas dostępu do danej dla programu t av = h t c + (1 h) t m Czas dostępu może być wyrażany w liczbie taktów zegara, należy go wtedy odpowiednio przeliczyć.

Dla pamięci podręcznej wielopoziomowej można stosować wzór: t av =t c1 + m 1 * ( t c2 + m 2 * ( tc 3 + m 3 * t m3 ) t ci czas dostępu do pamięci podręcznej (hit time) poziomu i t mi czas obsługi chybienia w pamięci podręcznej poziomu i (m.in. podmiany linii) miss time m i współczynnik chybień w pamięć podręczną poziomu i t av średni czas dostępu do danej dla programu Powyższy wzór zakłada 3 poziomową pamięć podręczną o identycznym sposobie działania dla każdego poziomu (co nie zawsze ma miejsce, np. przypadek victim cache który zbiera rzeczy wyrzucone z L1 na skutek chybienia)

Parametry wydajności pamięci podręcznej: czas obsługi trafienia (hit time) współczynnik trafień (hit rate) lub chybień (miss rate) czas obsługi chybienia (miss penalty) rzeczywisty średni czas dostępu do danych może być niższy od uzyskanego z przedstawionej uproszczonej analizy ze względu na współbieżność i równoległość działania pamięci, np. potokowość, wielobankowość itp. Do dyspozycji programisty: maksymalizacja współczynnika trafień redukcja wpływu czasu obsługi chybienia przez pobieranie z wyprzedzeniem (software prefetching)

Dostęp nieoptymalny (non-coalesced) odczyt: zapis:

Dostęp wektorowy (coalesced): odczyt

Zapis

Intel Haswell, Iris Pro Graphics 5200 (GT3e) Intel Broadwell, Iris Pro Graphics 6200 (GT3e) Intel Skylake, Iris Graphics 540 and 550 (GT3e) Intel Skylake, Iris Pro Graphics 580 (GT4e) Intel Coffee Lake, Iris Plus Graphics 655 (GT3e) PlayStation 2 Xbox 360 Wii U 128 MB 128 MB 64 MB 64 or 128 MB 128 MB 4 MB 10 MB 32 MB

Dziękuję za uwagę

Krzysztof Banaś - OWW