Wstęp Wstęp ARCHITETURA SYSTEMÓW OMPUTEROWYCH organizacja pamięci c Dr inż. Ignacy Pardyka UNIWERSYTET JANA OCHANOWSIEGO w ielcach Rok akad. 23/24 Instytut Fizyki, Zakład Informatyki, e-mail: ignacy.pardyka@ujk.edu.pl 2 Zasada lokalności odwołań do pamięci Zasada zapisu w pamięci podręcznej 3 Ochrona pamięci Algorytmy wymiany stron Wielopoziomowe tabele stron 4 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 2 / 47 Wstęp Poziomy abstrakcji cyfrowego systemu komputerowego Procesor i pamięć Wstęp Application Software > hello world! interfejs pamięci (ang. memory interface) CL Operating Systems Architecture Processor MemWrite Write WE Read Microarchitecture Logic Digital Circuits Analog Circuits Devices Physics + + procesor wysyła adres na magistralę adresową (ang. address bus) operacja czytania z pamięci: sygnał MemWrite pamięć wystawia dane na magistralę danych Read operacja zapisu do pamięci: sygnał MemWrite procesor wystawia dane na magistralę danych Write pamięć jest razy wolniejsza od procesora. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 3 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 4 / 47
Wstęp Wstęp Procesor i pamięć Hierarchia pamięci pamięć: dynamiczna, układy DRAM względne szybkości pamięci i procesora., hierarchia pamięci CL Processor Chip CPU Cache Main Hard Drive Performance, Processor 98 985 99 995 Year 2 25 2 charakterystyki pamięci Speed Cache Main memory memory Capacity Technology Price / GB SRAM $, Access Time (ns) DRAM $ 5 SSD $, HDD $.,, SSD (ang. solid state drive): pamięć na bazie flash HDD (ang. hard disk drive): dysk twardy. Bandwidth (GB/s) 25+.5. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 5 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 6 / 47 Wstęp Wstęp Wydajność pamięci Prawo Amdahla ocena wydajności pamięci: współczynniki chybień i trafień Miss Rate of misses Rate of total memory accesses Rate of hits Miss Rate of total memory accesses ocena wydajności pamięci: średni czas dostępu AMAT (ang. average memory access time) wyznaczyć średni czas dostępu AMAT t cache + MR cache ðt MM + MR MM t VM Þ Level Access Time (Cycles) Miss Rate Cache % Main % c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 7 / 47 Gene Amdahl, 922. Most famous for Amdahl s Law,an observation he made in 965. zwiększenie wydajności podsystemu jest zasadne, o ile podsystem w istotny sposób bierze udział w pracy całego systemu np. f : udział czasowy pracy podsystemu t ft ( f)t usprawniając podsystem s-krotnie, skracamy czas pracy całego systemu s -krotnie. t s t ft ( f )t ft s ( f )t f s ( f ) c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 8 / 47
Wstęp 2 Zasada lokalności odwołań do pamięci Zasada zapisu w pamięci podręcznej 3 Ochrona pamięci Algorytmy wymiany stron Wielopoziomowe tabele stron 4 Literatura CPU adres dane cache MEM kieszeń (fr. cache), pamięć podręczna warstwa hierarchii pamięci niewidoczna w użytkowym modelu programowym bufor dla pamięci operacyjnej (głównej) implementacje od 968 r. współcześnie: kilka poziomów, częściowo zintegrowana w procesorze. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 9 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 / 47 Zasada lokalności odwołań do pamięci zasada korzystania Lokalność odwołań do pamięci każde odwołanie procesora do pamięci powoduje wstępne sprawdzenie zawartości kieszeni (rola MMU) chybienie brak słowa spod wskazanego adresu (ang. cache miss) odczyt z pamięci operacyjnej (albo zapis) 2 zapis w kieszeni wraz z adresem słowa trafienie słowo jest w kieszeni (ang. cache hit) odczyt słowa z kieszeni (albo zapis) odwołanie do pamięci operacyjnej zbędne (gdy odczyt) czas dostępu do kieszeni krótki problemy: potrzeba aktualizacji pamięci operacyjnej (gdy zapis) potrzeba usuwania z kieszeni, gdy brak miejsca na zapis. częste odwołania pod ten sam adres: lokalność czasowa częste odwołania pod sąsiednie adresy: lokalność przestrzenna zbiór roboczy zbiór adresów występujących w odwołaniach do pamięci w czasie t względnie mały rozmiar zbioru roboczego obiekty (dane lub instrukcje) spod tych adresów warto przechowywać w pamięci podręcznej wystarczy bufor o względnie małym rozmiarze sąsiednie obszary pamięci warto pobrać na zapas. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 2 / 47
: kategorie z odwzorowaniem bezpośrednim pojemność C (ang. capacity): B bloków, każdy blok o rozmiarze (ang. block size) b słów bloki tworzą zbiory (ang. set): pamięć składa się z S zbiorów kategorie pamięci cache: pamięć z odwzorowaniem bezpośrednim (ang. direct mapped cache): w każdym zbiorze jest tylko jeden blok (S B) pamięć zbiorowo-asocjacyjna wielodrożna (ang. N-way set asciative): w każdym zbiorze jest N bloków, liczba zbiorów: S B/N pamięć w pełni asocjacyjna (ang. fully associative): cała pamięć to jeden zbiór (S ) każdy adres pamięci głównej jest odwzorowany (ang. mapped) w dokładnie jeden zbiór jeśli zbiór zawiera więcej niż jeden blok, to dane mogą być w dowolnym bloku tego zbioru. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 3 / 47 przykład: cache o pojemności 8 słów 4-bajtowych: liczba zbiorów S B 8 każdy zbiór zawiera jeden blok o rozmiarze b słowo dwa najmłodsze bity adresu, bo blok na granicy słowa kolejne log 2 8 3 bity to numer zbioru...................................................... mem[xfffffffc] mem[xfffffff8] mem[xfffffff4] mem[xfffffff] mem[xffffffec] mem[xffffffe8] mem[xffffffe4] mem[xffffffe] mem[x24] mem[x2] mem[xc] mem[x8] mem[x4] mem[x] mem[xc] mem[x8] mem[x4] mem[x] 2 3 -Word Main 2 3 -Word Cache czyli, np. adresy x4, x24,..., xffffffe4 są odwzorowane w ten sam zbiór (o numerze ) zadanie: Do którego zbioru zostanie odwzorowany adres pamięci głównej x4? tóre inne adresy są odwzorowane do tego samego zbioru? c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 4 / 47 Set 7 () Set 6 () Set 5 () Set 4 () Set 3 () Set 2 () () Set () z odwzorowaniem bezpośrednim z odwzorowaniem bezpośrednim pole Tag adresu wskazuje, który adres jest odwzorowany w zbiór, np. Offset Tag Set... FFFFFF E 4 pole Tag jest zapisywane w cache łącznie z danymi pole V (ang. valid): istotne dane, dane przypadkowe, nieznaczące Tag Set Offset 27 3 27 32 wskazany w adresie zbiór jest odczytywany z cache: jeśli pola Tag są identyczne, i pole V, to trafienie (ang. hit) jeśli nie, to w przypadku instrukcji lw, dane () muszą być pobrane z pamięci głównej. Set 7 Set 6 Set 5 Set 4 Set 3 Set 2 Set 8-entry x (+27+32)-bit SRAM przykładowy program: addi $t, $, 5 loop: beq $t, $, done lw $t, x4($) lw $t2, xc($) lw $t3, x8($) addi $t, $t, j loop done: łącznie 5 odwołań do pamięci pierwsze wykonanie pętli: pobranie danych spod adresów x4, xc, x8 do zbiorów:, 3, 2 kolejne: trafienie w cache miss rate 3/5 2% Tag Set Offset 27 3 27 32 Set 7 Set 6 Set 5 Set 4 Set 3 Set 2 Set 8-entry x (+27+32)-bit SRAM lw $t, x4($) ostatni raz Tag Set Offset... 3 V Tag... mem[x...4]...... mem[x...c] mem[x...8] Set 7 () Set 6 () Set 5 () Set 4 () Set 3 () Set 2 () () Set () c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 5 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 6 / 47
z odwzorowaniem bezpośrednim wielodrożna zbiorowo-asocjacyjna w każdym zbiorze N bloków przykład konfliktu: addi $t, $, 5 loop: beq $t, $, done lw $t, x4($) lw $t2, x24($) addi $t, $t, j loop done: jeśli cache jest początkowo pusta, to miss rate % Tag Set Offset 27 3 27 32 Set 7 Set 6 Set 5 Set 4 Set 3 Set 2 Set 8-entry x (+27+32)-bit SRAM adres jest odwzorowany do zbioru, ale dane mogą być przechowywane z jednym z N bloków znacznik Tag identyfikuje blok, na który faktycznie wskazuje adres przykład: C 8 słów, N 2, S 4 Tag Set Offset Way Way 28 2 28 32 28 32 Set 3 Set 2 Set 32 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 7 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 8 / 47 Pamięć wielodrożna zbiorowo-asocjacyjna w pełni asocjacyjna program, który powodował konflikty: addi $t, $, 5 loop: beq $t, $, done lw $t, x4($) lw $t2, x24($) addi $t, $t, j loop done: Tag Set Offset Way Way 28 2 28 32 28 32 Set 3 Set 2 Set jeden zbiór złożony z B bloków alternatywna nazwa: pamięć B-drożna z jednym zbiorem znacznik Tag identyfikuje blok, na który faktycznie wskazuje adres przykład: C 8 słów, B N 8, S łącznie odwołań do pamięci pierwsze wykonanie pętli: pobranie danych spod adresów x4, x24 do zbioru: kolejne: trafienie w cache miss rate 2/ 2% 32 adresy x4, x24 wskazują zbiór Way Way... mem[x...24]... mem[x...4] Set 3 Set 2 Set Way 7 Way 6 Way 5 Way 4 Way 3 Way 2 Way Way pamięć kosztowna: duża liczba komparatorów. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 9 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 2 / 47
Rozmiar bloku Pamięć z odwzorowaniem bezpośrednim aby skorzystać z lokalności przestrzennej zwiększamy rozmiar bloku blok przechowuje b kolejnych słów pamięci przykład: pamięć z odwzorowaniem bezpośrednim (S B) C 8 słów, b 4 słowa, S B C / b 2 Block Tag Set Offset Offset 27 2 27 32 32 32 32 32 Set Block Tag Set Offset Offset 27 2 pola adresu, np. adres: x89c 27 32 32 32 32 Tag... Set 32 Block Offset Offset 8 9 C Set przykładowy program: addi $t, $, 5 loop: beq $t, $, done lw $t, x4($) lw $t2, xc($) lw $t3, x8($) addi $t, $t, j loop done: łącznie 5 odwołań do pamięci: pierwsze: lw $t, x4($) blok 4 słów ładowany do cache kolejne: trafienie w cache miss rate /5 6.67% pierwsze i kolejne odwołania: lw $t2, xc($) Block Tag Set Offset Offset... V Tag... mem[x...c] mem[x...8] mem[x...4] mem[x...] Set c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 2 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 22 / 47 Algorytmy zastępowania bloków Pamięć wielodrożna zbiorowo-asocjacyjna przykład działania algorytmu LRU pamięć z adresowaniem bezpośrednim: adres jednoznacznie wskazuje na zbiór i blok gdy zbiór jest pełny, a trzeba załadować dane do cache, to wskazany blok jest zastępowany nowym pamięci zbiorowo-asocjacyjne i asocjacyjne: gdy zbiór pełny trzeba poświęcić jeden z bloków wskazywanego zbioru, blok-ofiarę zastąpić nowym zasada lokalności czasowej sugeruje: zastosować algorytm LRU (ang. least recently used) przykład: pamięć 2-drożna bit U ustawiany, by wskazać, który z dwóch bloków zbioru jest starszy, i ma być zastępowany nowym pamięć N-drożna: algorytm pseudo-lru. przykład: pamięć cache 2-drożna, 8 słów 4-bajtowych, 4 zbiory po 2 bloki 4-bajtowe fragment programu: lw $t, x4($) lw $t, x24($) lw $t2, x54($) pierwsze dwie instrukcje powodują załadowanie zbioru i zerowanie bitu U (blok wskazany do ewentualnego zastąpienia) zawartość cache po dwóch instrukcjach: V U Tag Way Way... mem[x...24]... mem[x...4] trzecia: zastąpienie bloku i ustawienie bitu U V U Tag Way Way... mem[x...24]... mem[x...54] Set 3 () Set 2 () () Set () Set 3 () Set 2 () () Set () c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 23 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 24 / 47
Organizacja cache: podsumowanie współczynnik trafień: przypomnienie Organization of Ways (N) of Sets (S) Direct Mapped B Set Associative < N < B B/N Fully Associative B charakterystyki: pojemność (C), rozmiar bloku (b), liczba bloków (B), liczba bloków w zbiorze (N, stopień asocjacyjności) zwiększenie asocjacyjności redukcja liczby chybień powodowanych przez konflikty zwiększenie rozmiaru bloku b redukcja liczby chybień (powód: efekt lokalności przestrzennej) przy stałym C powoduje jednak zmniejszenie liczby zbiorów, co zwykle zwiększa prawdopodobieństwo konfliktu. współczynnik trafień (ang. hit ratio) w badanym odcinku czasu h n cache n total gdzie n cache liczba trafień w cache n total całkowita liczba odwołań do pamięci zależy od pojemności kieszeni organizacji kieszeni algorytmu wymiany wykonywanego programu. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 25 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 26 / 47..9.8 -way % 4.7 2-way Miss Rate per Type.6.5 4-way 8-way Miss Rate 5%.4 6.3.2. Capacity Compulsory % 6 32 64 Block Size 64 28 256 256. 4 8 6 32 64 28 256 52 24 Cache Size (B) c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 27 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 28 / 47
Zasada zapisu w pamięci podręcznej średni czas dostępu średni czas dostępu do hierarchii pamięci: kieszeń + pamięć operacyjna t avg h t cache + ( h) t mem gdzie h współczynnik trafień t cache czas dostępu do kieszeni t mem czas dostępu do pamięci operacyjnej wymaganie: t cache < T procesora pamięć operacyjna b. powolna: t mem T procesora pojedyncza kieszeń skutecznie eliminuje różnicę prędkości rzędu stąd potrzeba kolejnych poziomów hierarchii cache L bardzo szybka (w procesorze) L2 wolniejsza 5. krotnie, ale pojemniejsza L3 wolniejsza od L2, ale pojemniejsza. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 29 / 47 Zasada zapisu w pamięci podręcznej zapis przeźroczysty (ang. write-through cache) zapis zawsze do pamięci operacyjnej w przypadku trafienia zapis także do cache zapis zwrotny (ang. write-back cache) dodatkowy bit D (ang. dirty bit) skojarzony z każdym blokiem gdy trafienie zapis do kieszeni i ustawienie bitu D gdy usuwanie bloku z cache zapis usuwanego bloku do pamięci głównej, tylko wtedy gdy bit D współczesne pamięci cache: write-back. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 3 / 47 kieszenie inkluzywne kieszenie wyłączne (ekskluzywne) stosowane do roku 2 hierarchia dostępu: procesor L L2 pamięć operacyjna każdy obiekt zawarty w warstwie wyższej jest również obecny w niższej pojemność L2 znacząco większa od L. stosowane od roku 2 kieszeń L2 zapełniana obiektami usuwanymi z L kieszeń ofiar (ang. victime cache) przepływ danych: pamięć L procesor L L2 pojemność L2 L asocjacyjność L2 L zastosowanie: AMD 7, 8, Intel Pentium 4, Core. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 3 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 32 / 47
Ewolucja pamięci podręcznej MIPS problemy Year CPU MHz L Cache L2 Cache 985 R2 6.7 none none 99 R3 33 32 B direct mapped none 99 R4 8 B direct mapped MB direct mapped 995 R 25 32 B two-way 4 MB two-way 2 R4 6 32 B two-way 6 MB two-way 24 R6A 8 64 B two-way 6 MB two-way 2 MIPS32 74 5 32 B variable size każde odwołanie pod dany adres pamięci ma zwracać tę samą wartość problem spójności, gdy odrębne kieszenie L dla kodu i dla danych (architektura Harvard-Princeton) problem spójności w systemach wieloprocesorowych z odrębnymi kieszeniami L i wspólną dalszą częścią hierarchii procesor z kieszenią L oraz sterownik DMA nie korzystający z L. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 33 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 34 / 47 metody utrzymania spójności unieważnianie całego bloku przy wykryciu odwołania zewnętrznego selektywne unieważnianie bloków potencjalnie zawierających adres odwołania zewnętrznego (przestarzałe) programowe unieważnianie całej kieszeni dostępne dla S.O. powoduje spadek wydajności selektywna zmiana stanu bloku M - modified blok ważny, zawartość pamięci nieaktualna E - exclusive blok ważny, zawartość pamięci identyczna I - invalid blok nieważny S - shared blok ważny, jednakowa kopia u wszystkich, identyczna z pamięcią O - owned blok ważny, jednakowa kopia u wszystkich, u pozostałych stan S, jednak zawartość pamięci nieaktualna stosowane protokoły: MEI, MESI, MOESI. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 35 / 47 Wstęp 2 Zasada lokalności odwołań do pamięci Zasada zapisu w pamięci podręcznej 3 Ochrona pamięci Algorytmy wymiany stron Wielopoziomowe tabele stron 4 Literatura c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 36 / 47
pamięć wirtualna: adres 32-bit: przestrzeń 4 GB adres 64-bit: przestrzeń 2 64 B pamięć główna (fizyczna) pamięć dyskowa w programach: adresy wirtualne pamięć fizyczna (DRAM) przechowuje podzbiór pamięci wirtualnej (jak cache), np. 52 MB, 4 GB. pamięć dyskowa miliony razy wolniejsza od pamięci głównej pozycjonowanie głowicy: kilka milisekund duża pojemność, niska cena stronicowanie pamięci pamięć wirtualna: strony (ang. virtual pages), np. 4B pamięć fizyczna: ramki (ang. physical pages, frames) strona wirtualna: jest w pamięci fizycznej (w ramce) albo na dysku strona wirtualna może być w dowolnej ramce pamięć fizyczna działa jak pamięć cache w pełni asocjacyjna brak strony w ramce: błąd strony (ang. page fault). es Translation es Hard Drive analogie pojęć Cache Block Block size size Block offset offset Miss fault Tag page number c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 37 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 38 / 47 pamięć wirtualna: 2 GB pamięć fizyczna: 28 MB strona: 4 B (2 2 ) liczba stron: 2 9 liczba ramek: 2 5 w pamięci fizycznej /6 pamięci wirtualnej offset: adres względem początku strony/ramki translacja adresów: tabela stron (w pamięci głównej) bufor TLB (w cache). 7FFF 7FFE es x7fff - x7ffffff x7ffe - x7ffefff x - xfff x - xfff 3 29 28... 4 3 2 VPN es x7ffff - x7fffffff x7fffe - x7fffefff x7fffd - x7fffdfff x7fffc - x7fffcfff x7fffb - x7fffbfff x7fffa - x7fffafff x7fff9 - x7fff9fff x6 - x6fff x5 - x5fff x4 - x4fff x3 - x3fff x2 - x2fff x - xfff x - xfff 9... 2 Offset 9 Translation 2 5 PPN Offset 26 25 24... 3 2 9... 2 7FFFF 7FFFE 7FFFD 7FFFC 7FFFB 7FFFA 7FFF9 6 5 4 3 2 V x x7ffe x x7fff Table 7FFFF 7FFFE 7FFFD 7FFFC 7FFFB 7FFFA 7 6 5 4 3 2 bit V, gdy strona jest w ramce. 7FFF 7FFE es x7fff - x7ffffff x7ffe - x7ffefff x - xfff x - xfff 3 29 28... 4 3 2 VPN es x7ffff - x7fffffff x7fffe - x7fffefff x7fffd - x7fffdfff x7fffc - x7fffcfff x7fffb - x7fffbfff x7fffa - x7fffafff x7fff9 - x7fff9fff x6 - x6fff x5 - x5fff x4 - x4fff x3 - x3fff x2 - x2fff x - xfff x - xfff 9... 2 Offset 9 Translation 2 5 PPN Offset 26 25 24... 3 2 9... 2 7FFFF 7FFFE 7FFFD 7FFFC 7FFFB 7FFFA 7FFF9 6 5 4 3 2 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 39 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 4 / 47
bufor TLB przykład: adres wirtualny: x247c adres fizyczny: z tabeli stron jeśli bit V, a jeśli nie, to błąd strony tabela stron: w pamięci głównej adres tabeli w rejestrze (page table register) każdy dostęp do pamięci wirtualnej: dwa dostępy do pamięci fizycznej. x2 9 Offset 47C 2 V x x7ffe Table x x7fff 5 2 x7fff 47C bufor TLB (translation lookaside buffer) cache w pełni asocjacyjna przechowuje ostatnio odwiedzane pozycje tabeli stron pojemność C: 6 52 bloków (entry) przykład: 2 bloki wpis: VPN, PPN Tag: VPN hit: zwracany jest PPN miss: PPN z tabeli stron hit-rate: 99% x2 9 Offset 47C 2 V V x7fffd x x2 x7fff TLB Entry 9 5 9 5 5 x7fff Entry 2 47C c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 4 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 42 / 47 Ochrona pamięci Algorytmy wymiany stron Ochrona pamięci Algorytmy wymiany stron procesor wykonuje współbieżnie wiele programów: procesy pod kontrolą systemu operacyjnego instrukcje należące do SO są też wykonywane przez procesor SO przekazuje sterowanie do wybranego programu użytkowego, sterowanie wraca do SO dzięki przerwaniom i wyjątkom procesor pobiera instrukcje z pamięci fizycznej, więc kody programów wykonywanych współbieżnie powinny być w ramkach (jeśli nie są obecne, to błędy stron) każdy proces ma własną, wirtualną przestrzeń adresową przestrzeń przydzielona procesowi podlega ochronie każdy proces ma własną tabelę stron SO ustawia bity kontrolne w tabeli stron, informujące o ewentualnym udostępnieniu ramek innym procesom. system pamięci wirtualnej oparty na wymianie stron w ramkach zasada: zapis zwrotny (write-back) w tabeli stron, do każdej strony przypisany bit D (ang. dirty) wskazuje, że strona zawiera zmodyfikowane dane strona jest zapisywana na dysk, do pliku wymiany (ang. swap space) tylko wtedy, gdy jest usuwana z ramki i zawiera nowe dane (D ) algorytm wymiany: aproksymacja LRU w tabeli stron, do każdej strony przypisany bit U (ang. used): U, gdy realizowany jest dostęp do strony SO okresowo zeruje bity U wszystkich stron do zamiany wybierana jest strona z bitem U. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 43 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 44 / 47
Wielopoziomowe tabele stron tabele 2-poziomowe Wielopoziomowe tabele stron Wielopoziomowe tabele stron Tabele 2-poziomowe: przykład translacji adresu tabela stron. poziomu adresy tabel 2. poziomu zawsze w pamięci fizycznej tabele stron 2. poziomu zawierają PPN są w pamięci wirtualnej bit V w tabeli stron. poziomu: V : tabela 2. poziomu jest w pamięci fizycznej V : tabela 2. poziomu jest na dysku. Table 9 Table Offset V offset Table First-Level Table 2 9 52 entries V Second-Level Tables 2 entries Table Table Offset Offset x 3FE FB 9 Table V x4 x2375 Valid 2 First-Level Table V x3 x23f x7ffe x73 x72fc xc Valid2 x23f Second-Level Tables 5 2 FB c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 45 / 47 c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 46 / 47 Literatura Literatura A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, 26. J. Biernat, Architektura komputerów, OWPW, 25. D.M. Harris, S.L. Harris, Digital Design and Computer Architecture, Elsevier, 23. R. Hyde, Profesjonalne programowanie, Helion, 25. R. Hyde, Asembler. Sztuka programowania, Helion, 24. G. Mazur, Architektura systemów komputerowych, http://wazniak.mimuw.edu.pl. P.A. Carter, PC Assembly Language, http://www.drpaulcarter.com/pcasm/. c Dr inż. Ignacy Pardyka (Inf U J ) AS: organizacja pamięci Rok akad. 23/24 47 / 47