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

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

architektura komputerów w. 7 Cache

Architektura komputerów

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

METODY ELIMINACJI STUDENTÓW INFORMATYKI. Czyli co student INF-EKA powinien wiedzieć o MESI...

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]

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

Ograniczenia efektywności systemu pamięci

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

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

System pamięci. Pamięć podręczna

Architektura Systemów Komputerowych

Architektura komputerów

Schematy zarzadzania pamięcia

Architektura komputerów

Systemy operacyjne III

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

Ograniczenia efektywności systemu pamięci

przypisanie różnym strukturom programowym tych samych obszarów pamięci fizycznej

System pamięci. Pamięć podręczna

Zrównoleglenie i przetwarzanie potokowe

Podstawy. Pamięć wirtualna. (demand paging)

System pamięci. Pamięć wirtualna

Hierarchia pamięci w systemie komputerowym

Architektura komputerów

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

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

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

Zarządzanie pamięcią operacyjną

Stronicowanie w systemie pamięci wirtualnej

Architektura komputerów

Współpraca procesora ColdFire z pamięcią

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna

, " _/'--- " ~ 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 /.

przypisanie różnym strukturom programowym tych samych obszarów pamięci fizycznej

Rys. 1. Podłączenie cache do procesora.

Architektura komputerów

dr inż. Jarosław Forenc

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

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

Programowanie mikroprocesorów jednoukładowych

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

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Zarządzanie zasobami pamięci

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

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

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

ARCHITEKTURA PROCESORA,

Mapowanie bezpośrednie

Urządzenia wejścia-wyjścia

Technologie informacyjne (2) Zdzisław Szyjewski

System obliczeniowy laboratorium oraz. mnożenia macierzy

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Architektura systemów informatycznych

Zarządzanie pamięcią w systemie operacyjnym

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

Zarządzanie pamięcią operacyjną

LEKCJA TEMAT: Zasada działania komputera.

UKŁADY PAMIĘCI. Tomasz Dziubich

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Urządzenia zewnętrzne

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

Wykład 14. Zagadnienia związane z systemem IO

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Organizacja typowego mikroprocesora

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

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

Pamięci półprzewodnikowe

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

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Systemy operacyjne system przerwań

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

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Budowa systemów komputerowych

Architektura systemów komputerowych. dr Artur Bartoszewski

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

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Architektura systemów komputerowych. dr Artur Bartoszewski

Technologia informacyjna. Urządzenia techniki komputerowej

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Programowanie Niskopoziomowe

Magistrala systemowa (System Bus)

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

Budowa komputera Komputer computer computare

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Mikroprocesor Operacje wejścia / wyjścia

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

Architektura komputerów

Transkrypt:

Bufory pamięci bufor zawiera kopie aktualnie przetwarzanych danych M(AT) M(AH+2) M(AH+1) M(AH) M(A+N+1) M(A+N) M(A+2) M(A+1) M(A+0) M(A 1) AT AH A 2 A N A 0 A 1 M(A 2) M(A N) M(A 0) M(A 1) M(A N) M(A 1) M(A 2) M(A 0) N 4 3 2 1 0 (3) Dana N N 3 Dana 4 1 Dana 1 Dana 2 Dana 0 bufor sekwencyjny kolejka bufor blokowo-skojarzeniowy bufor skojarzeniowo-sekwencyjny organizacja sekwencyjna kolejka bufor rozkazów (instruction queue), bufor zapisów (write buffer) organizacja blokowo-skojarzeniowa pamięć podręczna (cache memory) zawiera kopie używanych danych organizacja skojarzeniowo-sekwencyjna bufor przywracania kolejności (reorder buffer) (PISO parallel-in serial-out) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-1

Zasada lokalności W komputerze z programem zintegrowanym programy i dane mają tendencję do skupiania w wymiarze przestrzennym i czasowym. lokalność przestrzenna (spatial locality) Jest prawdopodobne użycie informacji z sąsiednich lokacji pamięci. kody rozkazów zależność lokacyjna sekwencyjna (licznik rozkazów) struktury danych skupione (zmienne robocze) lub regularne (tablice) lokalność czasowa (temporal locality) Kod użyty będzie zapewne ponownie użyty w nieodległym czasie. kody rozkazów pętle programowe struktury danych zmienne robocze: ciągłe używanie struktury regularne: wielokrotne użycie elementów WNIOSEK: Utworzyć w pobliżu procesora bufor zawierający kopie danych z pamięci (głównej) aktualnie używanych i korzystać z kopii zamiast z oryginału. Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-2

Zasady użycia buforów cache użycie bufora musi być przeźroczyste dla programu niewidoczne na poziomie ISA (listy rozkazów), realizowane na poziomie HSA (organizacji procesora/komputera)!! sposób wykonania rozkazu nie może być zależny od obecności bufora, ale czas wykonania rozkazu w obecności bufora powinien być krótszy!! użycie bufora pamięci podręcznej nie otwiera osobnej przestrzeni adresowej nie są potrzebne specjalne rozkazy dostępu do bufora bufor pamięci podręcznej powinien być wykonany w szybszej technologii (statycznej) być umieszczony w bezpośrednim sąsiedztwie procesora bufor umożliwia wykorzystanie zalet szybkich pamięci statycznych i pojemnych lecz wolnych pamięci dynamicznych. Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-3

Skuteczność buforów cache Zasada lokalności nie gwarantuje obecności kopii danych w buforze cache. Skuteczność użycia pamięci podręcznej zależy od organizacji (struktury) bufora Ilościowa ocena skuteczności: współczynnik trafień (hit rate) h współczynnik chybień (miss rate) m=1 h t mp średnia strata czasu w razie chybienia (miss penalty) Średni czasu dostępu do pamięci w pamięci jednopoziomowej t a = ( 1 m) tca + m ( tram + tmp ) w pamięci dwupoziomowej (inkluzywnej L1 L2) t a = ( 1 m1 ) tca 1 + ( m1 m2)( tca2 + tmp1) + m2( tram + tmp1 + tmp2 ) (m 1 > m 2, bo każde trafienie w L1 jest trafieniem w L2, a każde chybienie w L2 jest chybieniem w L1) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-4

Organizacja pamięci podręcznej Konieczna jest identyfikacja kopii w buforze cache: jedynym identyfikatorem danej (także kodu rozkazu) jest adres kopiowanie pojedynczych bajtów/słów jest sprzeczne z zasadą lokalności jedna lokacja (linia) w buforze zawiera wiele bajtów/słów jednorodna struktura ułatwia identyfikację, upraszcza i przyśpiesza dostęp ustalony rozmiar pojedynczej lokacji (linii) w buforze CAM status (0) etykieta adresu (0) linia 0 status (1) status (i) status(n) etykieta adresu (1) etykieta adresu (i) etykieta adresu (N) 0 0 0 1 0 0 linia 1 linia i linia N RAM adres trafienie dane Schemat organizacji bufora pamięci podręcznej Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-5

Organizacja odwzorowania danych w pamięci podręcznej linia jednostka wymiany danych między buforem a pamięcią główną rozmiarem lokacji powinno być s=2 k bajtów/słów (linia wymiany) przestrzeń adresowa procesora = suma rozłącznych linii identyfikatorem lokacji w buforze może być skrócony adres przestrzeń adresowa procesora = suma rozłącznych linii czas wyszukiwania w buforze (zbiór nieuporządkowany) log 2 N (N liczba linii) optymalny rozmiar bufora N=2 n linii Odwzorowanie (i(b) linia w buforze, r(p) linia w pamięci głównej) BUFOR(linia i(b)) BUFOR(linia i(b) j(b)) PAMIĘ Ć BUFOR: identyfikator [linia i(b)] = adres(linia r(p)) [linia r(p)] Jeśli s=2 k bajtów, to adres linii = bity adresu bez k najniższych Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-6

Charakterystyki skuteczności większa liczba linii (N) lepsza lokalność czasowa większy rozmiar linii (s) lepsza lokalność przestrzenna dla ustalonej pojemności, ze zwiększaniem rozmiaru linii, dominujący staje się wpływ zanikania lokalności czasowej i następuje wzrost strat czasu w razie chybienia (czas wymiany jest proporcjonalny do liczby transferów) m s N t a s s Zależność współczynnika chybień m i średniego czasu dostępu do pamięci t a od rozmiaru linii s dla ustalonej pojemności C=s N bufora cache Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-7

Pamięć podręczna wielopoziomowa zasada lokalności ma sens buforowanie bufora lub jego rozdzielenie pamięć podręczna wielopoziomowa organizacja hierarchiczna pamięć inkluzywna lokalizacja danej umieszczonej w pamięci L(i) dostępna w L(i+1) bufor L(i) poziomu i zawiera kopie niektórych danych z bufora L(i+1) poziomu i+1, niektóre linie w L(i) mogą być zaktualizowane dana aktualna dostępna zawsze na najniższym poziomie organizacja separowana pamięć nieinkluzywna (ATHLON victim cache) żadna lokalizacja danej w buforze L(i) nie jest dostępna w L(i+1) dostęp do bufora L(i) znacznie krótszy niż do L(i+1) w buforze L(i+1) są dane usunięte z L(i) problem spójności zgodność wszystkich kopii informacji, albo znajomość (świadomość) lokalizacji informacji aktualnej Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-8

Sterowanie współpracą bufora cache z procesorem i pamięcią Sterowanie współpracą pamięci podręcznej i pamięci głównej (traf sygnał trafienia w buforze cache, R odczyt/zapis (1/0), M transfer/blokada adresu (1/0)) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-9

Współdziałanie pamięci podręcznej z procesorem schemat uproszczony trafienie: chybienie: etap 1 odczyt z pamięci (... blokowy) ( usunięcie linii wypełnienie) etap 2 kopiowanie odczytu Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-10

Architektura systemu pamięci podręcznej (1) przesyłanie danych między procesorem a pamięcią podręczną: przez magistralę systemową sterownik typu look-aside (LA) przez separowaną magistralę lokalną sterownik typu look-through (LT) procesor sterownik LA L2 cache rejestry L1 cache trafienie urządzenie zewnętrzne urządzenie zewnętrzne bufor magistrali pamięci magistrala pamięci pamięć główna Architektura pamięci podręcznej typu look-aside Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-11

Architektura systemu pamięci podręcznej (2) procesor sterownik LT L2 cache rejestry L1 cache magistrala lokalna urządzenie zewnętrzne urządzenie zewnętrzne bufor magistrali pamięci pamięć główna magistrala pamięci Architektura pamięci podręcznej typu look-through sterownik podglądający (look-aside) wada blokowanie magistrali systemowej podczas transferów zaleta prostota konstrukcji sterownik pośredniczący (look-through) wada skomplikowana struktura zaleta odciążenie magistrali systemowej (transfery magistralą lokalną) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-12

Pamięć wielopoziomowa MMU RAM rejestry L1 cache L2 cache pamięć główna pamięć wtórna t a 0,25 1ns 0,5 2ns 1 5ns 10 50ns 1 10ms rozmiar 1 8kb 32 128kB ¼ 1MB 256MB 4GB 20 120GB register cache cache memory storage Hierarchia pamięci wielopoziomowej niektóre przestrzenie adresowe lub ich części nie mogą być buforowane procesor adresuje pamię ć główną sterownik bufora przechwytuje transfery specjalne rozkazy sposób działania wewnętrznego bufora cache Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-13

Parametry bufora cache bufor poziomu L1 rozmiar linii dostosowany do rozmiaru magistrali danych procesora (systemu) i możliwości transferów blokowych rozmiar pamięci wystarczający do pomieszczenia kilku (2 N ) stron lub innych jednostek przydziału (bloków) pamięci bufor poziomu L2 rozmiar linii identyczny jak w L1 rozmiar bufora wystarczający do pomieszczenia zbioru roboczego procesu Typowe parametry szerokość magistrali danych 2 k bajtów, transfer blokowy nałożenie 2 m transferów całą szerokością magistrali linia powinna zawierać 2 k+m =2 B bajtów rozmiar strony 2 P bajtów rozmiar bufora L1 2 N stron = 2 P+N bajtów łączna liczba linii w buforze L1 = 2 P+N B rozmiar bufora L2 2 W 2 N stron Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-14

Aktualizacja zawartości bufora cache Warunkiem utrzymania spójności jest aktualizacja linii, która obejmuje unieważnienie linii zawierającej dane przypadkowe lub nieaktualne wypełnienie linii (bloku) nową zawartością wymiana linii w razie braku wolnego miejsca w buforze zapis w obszarze skopiowanej linii o zapis skrośny (write through) zgodność wszystkich kopii informacji o zapis lokalny (copy-back) znajomość lokalizacji informacji aktualnej Zapis może być poprzedzony kopiowaniem nieobecnej linii (allocate on write) Copy-back Allocate on write No allocate on write Write through Obciążenie magistrali pamięci transferami powinno być minimalne + = Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-15

Bufory zapisu (write buffer) Chybienie podczas próby zapisu w trybie WT (no allocate-on-write) wymaga transferu do poziomu wyższego w trybie CB uprzedzające kopiowanie (allocate-on-write) wymaga blokady zapisu oraz powoduje niezgodność kopii (zapis lokalny) po odblokowaniu w trybie CB kopiowanie odłożone (no allocate-on-write) do chybienia w razie odczytu lub kolejnego zapisu nie powoduje strat jeśli zapis jest buforowany Bufor zapisu: pamięć FIFO (kolejka musi być zachowana kolejność zapisów) nasycenie bufora (write buffer saturation) blokada kolejnego zapisu rh rm rh rm pamięć główna rejestry wh wm L1 cache bufor wh L2 cache (WT) raw (WT) raw wm bufor Bufory zapisu i ścieżki przepływu danych w systemie pamięci Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-16

Obsługa pamięci podręcznej unieważnianie linii (line invalidation) przed pierwszym wypełnieniem wskutek zewnętrznej zmiany oryginału danych w pamięci głównej przełączanie procesów unieważnienie wszystkich linii (line flush) wypełnianie linii (line fill) oraz wymiana linii (line exchange) chybienie podczas odczytu (miss on read) lub (w trybie AOW) zapisu odczyt danej (read) trafienie podczas odczytu (hit on read) zapis danej (write) rozbieżność kopii z oryginałem trafienie podczas zapisu (hit on write) zapis skrośny (jednoczesny) (write through, WT) modyfikuje kopię w buforze wyższego poziomu zapis lokalny (zwrotny) (write/copy back, WB/CB) w kopii lokalnej, opóźniony zapis do bufora wyższego poziomu podczas usuwania linii unieważnienie linii trafionej i zapis bezpośredni (omijający) do pamięci głównej (write aside) lub bufora poziomu wyższego chybienie podczas zapisu (miss on write) zapis do pamięci głównej lub bufora poziomu wyższego (NAOW) lub wypełnienie i zapis (AOW) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-17

Zarządzanie pamięcią podręczną Sposoby umieszczania i aktualizacji danych w buforze: strategie wypełniania pamięci podręcznej odwzorowanie pamięci głównej w liniach pamięci podręcznej losowe zbiór linii w zbiór lokacji linii (dowolnie) bezpośrednie podzbiór linii w linię lokacji blokowo-skojarzeniowe podzbiór linii w podzbiór lokacji linii strategie wymiany kopii w pamięci podręcznej w celu aktualizacji bufora (bezzasadne w odwzorowaniu bezpośrednim!) losowa (random) dowolnie (skuteczna przy odwzorowaniu losowym) kolejkowa (FIFO) kolejność wymiany linii jest zgodna z kolejnością ich wypełniania (usuwana jest linia najdawniej alokowana) LRU (last recently used) wymieniana jest linia najdawniej użyta (skuteczna przy odwzorowaniu blokowo-skojarzeniowym). strategie pobierania linii z pamięci głównej pobranie wymuszone (demand fetching) uaktywniane chybieniem pobranie uprzedzające (prefetching) na podstawie prognozy dostępu. Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-18

Odwzorowanie linii w buforze pamięci podręcznej całkowicie skojarzeniowe (fully associative) każda linia pamięci głównej może być skopiowana w dowolnej lokacji linii pamięci podręcznej wymiana linii konieczna wtedy, gdy wszystkie linie są użyte największy współczynnik trafień, brak migotania (thrashing) bezpośrednie (direct mapped) rozłącznym podzbiorom linii pamięci głównej przypisano unikatowe lokacje linii pamięci w podręcznej najkrótszy czas kojarzenia rekord indeksujący adresu (cache index) najmniejszy współczynnik trafień chybienia wskutek konfliktu odwzorowania (conflict miss) migotanie wielodrożne (set-associative) rozłącznym podzbiorom linii pamięci głównej przypisano rozłączne podzbiory lokacji linii w pamięci podręcznej (bezpośrednie odwzorowanie bloków, pełne skojarzenie w podzbiorze) czas dostępu dłuższy niż dla pamięci z odwzorowaniem bezpośrednim niewielkie migotanie, duży współczynnik trafień konflikt odwzorowania maleje ze wzrostem liczby lokacji w bloku przeplot podzbiór tworzą linie, których adresy (etykiety) różnią się o 2 K (K liczba lokacji linii lub podzbiorów linii w buforze) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-19

Odwzorowanie całkowicie skojarzeniowe CAM RAM pamięć główna status 1 status 2 etykieta adresu 1 etykieta adresu 2 linia xxx linia xxx linia 00000 linia 00001 status d etykieta adresu d linia xxx linia 00FFE linia 00FFF status N etykieta adresu N linia xxx linia 01000 chybienie......?= trafienie dane linia 0EFFF linia 0F000 linia 0F001 adres linii indeks słowa adres fizyczny linia 0FFFE linia 0FFFF Bufor całkowicie asocjacyjny (fully associative) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-20

Odwzorowanie bezpośrednie z przeplotem CAM status (000) status (001) status (ddd) status(ffe) status(fff) chybienie etykieta adresu (000) etykieta adresu (001) etykieta adresu (ddd) etykieta adresu (FFE) etykieta adresu (FFF)?= trafienie adres linii indeks linii adres fizyczny RAM linia (xx000) linia (xx001) linia (xxddd) linia (xxffe) linia (xxfff) dane indeks słowa pamięć główna linia 00000 linia 00001 linia 00FFE linia 00FFF linia 01000 linia xxfff linia zz000 linia FEFFF linia FF000 linia FF001 linia FFFFE linia FFFFF Bufor z odwzorowaniem bezpośrednim (direct mapped) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-21

Odwzorowanie bezpośrednie bez przeplotu CAM RAM pamięć główna status (000) status (001) status (ddd) etykieta adresu (000) etykieta adresu (001) etykieta adresu (ddd) linia (xx000) linia 00000 linia (xx001) linia 00001 linia 000FF linia (xxddd) linia 00100 status(ffe) status(fff) chybienie indeks linii etykieta adresu (FFE) linia (xxffe) etykieta adresu (FFF) linia (xxfff)?= trafienie dane adres linii indeks słowa adres fizyczny linia 01001 linia zze00 linia zze01 linia zzeff.. linia FFF00 linia FFFFE linia FFFFF Odwzorowanie bezpośrednie bez przeplotu b.częsty konflikt odwzorowania Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-22

Odwzorowanie blokowo-skojarzeniowe (wielodrożne) z przeplotem CAM status 1(000) status 2(000) status 3(000) status 4(000)...... status 1(ddd) status 2(ddd) status 3(ddd) status 4(ddd)... status 1(FFF) status 2(FFF) status 3(FFF) status 4(FFF) chybienie adres linii etykieta adresu 1(000) etykieta adresu 2(000) etykieta adresu 3(000) etykieta adresu 4(000) etykieta adresu 1(ddd) etykieta adresu 2(ddd) etykieta adresu 3(ddd) etykieta adresu 4(ddd)?=... etykieta adresu 1(FFF) etykieta adresu 2(FFF) etykieta adresu 3(FFF) etykieta adresu 4(FFF) indeks trafienia indeks bloku blok 000 linia (xx000) linia (xx000) linia (xx000) linia (xx000) blok ddd... linia (xxddd) linia (xxddd) linia (xxddd) linia (xxddd) blok FFF indeks słowa... linia (xxfff) linia (xxfff) linia (xxfff) linia (xxfff) RAM MPX/DMX pami główna linia 00000 linia 00ddd linia 00FFF linia 01000 linia 01ddd linia 01FFF linia zz000 linia zzddd... linia zzfff linia FF000 linia FFddd... linia FFFFF adres fizyczny dane Bufor blokowo-skojarzeniowy (set-associative) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-23

Odwzorowanie blokowo-skojarzeniowe (wielodrożne) bez przeplotu CAM status 1(000) status 2(000) status 3(000) status 4(000)...... status 1(ddd) status 2(ddd) status 3(ddd) status 4(ddd)... status 1(FFF) status 2(FFF) status 3(FFF) status 4(FFF) chybienie indeks bloku etykieta adresu 1(000) etykieta adresu 2(000) etykieta adresu 3(000) etykieta adresu 4(000) etykieta adresu 1(ddd) etykieta adresu 2(ddd) etykieta adresu 3(ddd) etykieta adresu 4(ddd)?=... etykieta adresu 1(FFF) etykieta adresu 2(FFF) etykieta adresu 3(FFF) etykieta adresu 4(FFF) indeks trafienia adres linii blok 000 linia (xx000) linia (xx000) linia (xx000) linia (xx000) blok ddd... linia (xxddd) linia (xxddd) linia (xxddd) linia (xxddd) blok FFF indeks słowa... linia (xxfff) linia (xxfff) linia (xxfff) linia (xxfff) RAM MPX/DMX pami główna linia 00000 linia 001FE linia 001FF linia zzz00 linia zzxfe linia zzxff.. linia FFE00 linia FFE01... linia FFFFF adres fizyczny Odwzorowanie blokowo-skojarzeniowe bez przeplotu duże ryzyko konfliktu dane Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-24

Organizacja pamięci podręcznej a charakterystyki skuteczności m 0,020 2w 0,010 0,005 0,002 4w 8w 0,001 16w 1w=4 0,0005 32w cs 2 4 8 16 32 64 128 [kb] Zależność współczynnika chybień od rozmiaru linii (pamięć dwudrożna) m/m 0 12 10 8 6 4 2 2 4 8 16 Wpływ organizacji pamięci na częstość konfliktów odwzorowania Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-25 32 64 128 1-d 2-d 4-d 8-d cs [kb]

Strategie wymiany linii Aktualizacja bufora podczas przełączania zadań bufor ciepły (warm cache) część bufora nie jest wymieniana bufor zimny (cold cache) unieważnianie całego bufora Algorytmy wymiany losowy tylko w buforze całkowicie asocjacyjnym ο ryzyko usunięcia potrzebnej linii 2 K (K liczba lokacji w buforze) kolejkowy (FIFO) ο liczba bitów historii log 2 S (S liczba lokacji w podzbiorze) ο ryzyko usunięcia potrzebnej linii p 2 S ο wg używalności (LRU) ο liczba bitów historii (S 1)log 2 S (S liczba lokacji w podzbiorze) ο ryzyko usunięcia potrzebnej linii p 2 S Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-26

Strategie pobierania linii pobranie wymuszone (demand fetching) uaktywniane chybieniem pobranie uprzedzające (prefetching) na podstawie prognozy dostępu, nie powinno powodować opóźniania pobrań wymuszonych (rozmiar linii wpływa na szybkość wypełniania) Antycypacja jednostopniowa (one block lookahead, OBL) w chwili pobrania linii i-tej z pamięci głównej należy też pobrać linię i+1 Pobranie uprzedzające (antycypowane) automatyczne (prefetch always), inicjowane podczas każdej próby dostępu przy okazji zwrotu do linii i jest zawsze pobierana linia i+1 implikowane w razie chybienia (prefetch on a miss) wraz z wymuszonym wskutek chybienia pobraniem linii i zawsze jest pobierana linia i+1 markowane (tagged prefetch) podczas pierwszego, markowanego (tagged) zwrotu do linii i-tej, wraz z linią i jest pobierana linia i+1 Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-27

Intensywność pobrań uprzedzających automatyczne (prefetch always) obciążenie magistral o 20 80% większe niż w pobraniach wymuszonych implikowane w razie chybienia (prefetch on a miss) obciążenie magistral nieznacznie większe niż w pobraniach wymuszonych markowane (tagged prefetch) obciążenie magistral podobne jak w pobraniach wymuszonych m 0,100 0,050 linia 16B m 0,100 0,050 linia 32B 0,010 0,005 0,010 0,005 0,001 0,001 cs cs 1 2 4 8 16 32 64 [kb] 2 4 8 16 32 64 128 [kb] Współczynnik chybień m w funkcji rozmiaru pamięci podręcznej cs dla strategii pobrań ( wymuszone, ο implikowane, markowane, automat.) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-28

Zintegrowany model spójności pamięci podręcznej I RM (WT) ESH-W S RH, WH ESH-R ESH-W ESH-W RM (CB) WM AOW (CB) RH,WH M WH ESH-R E ESH-R RH Stany linii pamięci podręcznej obsługiwanej w trybie WT lub CB (I nieważny (invalid), E zgodny (exclusive), M zmieniony (modified), S współdzielony (shared)) M chybienie (miss), H trafienie (hit), R podczas odczytu, W podczas zapisu, ESH podglądnięcie trafienia zewnętrznego (external snoop hit) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-29

Strategia zapisu jednorazowego (write-once) (Pentium) niewiele rejestrów dużo zmiennych roboczych w pamięci pierwszy zapis skrośny (WT), kolejne zapisy lokalne (CB) I RM ESH-W S ESH-R RH ESH-W ESH-W WH WT CB ESH-R CB WT WH RH M ESH-R CB WT WH E ESH-R RH Stany linii pamięci podręcznej obsługiwanej w trybie WO L1: WT CB, L2: CB krótki czas zapisu, częściowa zgodność danych Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-30

Pełny model spójności (MESI) I RM (WT) ESH-W S WH (WT) ESH-R RH (WT) ESH-W ESH-W WH (WO) RM (CB) ESH-R (WO) ESH-R (WO) RH (CB) WH (CB) M WH (CB) ESH-R (CB) E RH (CB) ESH-R (CB) Model spójności wielopoziomowej pamięci podręcznej (protokół MESI) Obsługa pamięci dwupoziomowej: L1: WT, L2: WT długi czas zapisu, całkowita zgodność danych L1: CB, L2: CB najkrótszy czas zapisu, utrata zgodności danych po zapisie L1: WT, L2: CB krótszy czas zapisu, zgodność danych L1-L2 L1: CB, L2: WT utrata zgodności danych po zapisie, długi czas wymiany Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-31

Wymiana linii aspekty czasowe RM LF CB A AD R BUF R BUF R BUF R BUF LA D DR0 DR1 DR2 DR3 DW0 DW1 DW0 DW1 R/#W A RM LF R BUF R BUF AD R BUF R BUF A CB LA D DR0 DR1 DR2 DR3 DW0 DW1 DW0 DW1 R/#W HOLD HLDA Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-32

Rozszerzony model spójności ESH-W I ESH-W RM/WT ESH-W RM RM/CB S A WT WH/WT ESH-R RH/WT CB WH/CB RH/CB M WH/CB ESH-R/CB E ESH-R RH/CB (I nieważny (invalid), E zgodny (exclusive), M zmieniony (modified), A przydzielony (allocated), S współdzielony (shared)) RH / WH trafienie podczas odczytu (R) / zapisu (W), RM chybienie podczas odczytu (read miss), ESH podglądnięcie trafienia zewnętrznego (external snoop hit), Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-33

Spójność pamięci w systemie wieloprocesorowym Spójność zgodność wszystkich kopii informacji, albo znajomość (świadomość ) lokalizacji informacji aktualnej Protokół uzgadniania działania procesora (CPU action) działania na magistrali (bus action) podglądanie magistrali (snooping) Modele spójności systemu wieloprocesorowego ze wspólna pamięcią zapisz unieważnij (write invalidate) o Synapse aktualizacja lokalna, inne kopie unieważniane o Illinois aktualizacja lokalna, kopia markowana (wyłączna dzielona), podobny protokół jak w modelu MESI o Berkeley aktualizacja lokalna, inne kopie tylko do odczytu zapisz aktualizuj (write update) o Firefly aktualizacja globalna, kopia markowana (wyłączna dzielona) o Dragon aktualizacja ograniczona (z wyłączeniem pamięci głównej), kopia markowana (wyłączna dzielona) Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-34

Przyśpieszanie translacji adresu podczas dostępu do pamięci podręcznej a) trafienie b) C CPU VA MMU RA CPU trafienie DPA VA C RPA M =? chybienie M chybienie VPA MMU RPA Translacja adresu wirtualnego podczas dostępu do pamięci podręcznej: a) sekwencyjna, b) równoległa. CPU procesor, MMU jednostka zarządzania pamięcią, M pamięć główna, C pamięć podręczna, VA adres wirtualny, RA adres rzeczywisty, VPA adres strony wirtualnej, RPA adres strony rzeczywistej, DPA bezpośredni adres na stronie Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-35

Pamięć podręczna dysku (disk cache) obsługa : copy back (write through wymusza niepotrzebne zapisy) rozmiar: sektor, ścieżka, cylinder itp. dyski DB DB dyski dyski DMA DMA dyski RAM Możliwe usytuowania bufora pamięci podręcznej dysku Janusz Biernat, AK-A- pamiec podreczna-nowe.doc, 29 kwietnia 2005 5-36