Wykład 4 - rkpomoce.files.wordpress.com · pamięcią cache występują dwa rodzaje architektury:...

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

Transcript of Wykład 4 - rkpomoce.files.wordpress.com · pamięcią cache występują dwa rodzaje architektury:...

Pamięć wirtualnaWykład 4

Przygotował:Ryszard Kijaka

Wstęp – główny podział to:

PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne, streamery oraz pamięci optyczne typu CD-ROM czy też DVD-ROM.

PP -pamięci półprzewodnikowych to pamięci do zapisu i odczytu dynamiczne i statyczne oraz pamięci typu ROM, a także rejestry wewnątrz mikroprocesora.

Hierarchia pamięci w systemie komputerowym

Dyski twarde

Pamięć typu ROM

PM

PP

Pamięć dynamiczna RAM

Pamięć statyczna RAM

Rejestry mikro-proceso

ra

pojemności

Kierunek wzrostu

Czasdostępu Ceny /1 bit

Kierunekwzrostu

Kierunek zmniejszania

Stąd:Jak widzimy, wzrost pojemności układów

pamiętających oraz zmniejszanie się ceny l bitu jest (niestety) odwrotnie proporcjonalne do zmniejszania się czasu dostępu, czyli do szybkości działania tych układów.PM po przeliczeniu są tańsze lecz wolniejsze. PP są zaś dużo szybsze, szczególnie te statyczne

lecz trudne do spojenia – cena.Stosujemy tu kompromis PM a DRAM czy

DRAM a SRAM.Pamięć ROM w pokazanej hierarchii zachowuje się nietypowo i została tu umieszczona głównie z powodu jej czasu dostępu - shadow BIOS.

Zasada działania pamięci wirtualnej

- mechanizm pamięci wirtualnej pozwala traktować programom pamięć masową jako przedłużenie pamięci operacyjnej.-pamięć masowa ma znacznie większą pojemność, co pozwala na używanie w programie dłuższych adresów- z drugiej strony nie jest możliwe odczytywanie pojedynczych instrukcji w trakcie wykonywania programu z pamięci masowej, która jest dość wolna, a co ważniejsze, jej urządzenia są urządzeniami o dostępie blokowym

rozwiązanie

Pewna część informacji wykonywanegoprogramu załadowana jest do pamięci operacyjnej. Pozostała część niemieszcząca się w niej jest przechowywana w pamięci masowej. Jeżeli w trakcie realizacji programu następuje odwołanie do informacji znajdującej się na dysku, to odpowiedni mechanizm powoduje wczytanie brakującego bloku informacji do pamięci operacyjnej, przesyłając inny blok do pamięci masowej w celu zwolnienia miejsca.

mechanizm pamięci wirtualnej

1. Program żąda dostępu do określonej informacji, podając adres wirtualny.2. Sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej. Informacja o obecności konkretnych bloków w pamięci operacyjnej przechowywana jest w specjalnej tablicy.3. W przypadku braku poszukiwanej informacji jest ona wczytywana z dysku, a odpowiednie pozycje w tablicach obsługujących pamięć wirtualną są modyfikowane.4. Obliczany jest adres fizyczny miejsca przechowywania informacji w pamięci operacyjnej, czyli dokonywana jest translacja adresu wirtualnego na fizyczny. Translacji tej dokonuje się także przy użyciu odpowiedniej tablicy.5. Poszukiwana informacja jest dostępna dla procesora, co zamyka cykl działania pamięci wirtualnej.

Tablica dyskryptorów

Translacja adresu wirtualnego na fizyczny oraz sprawdzenie obecności poszukiwanej informacji są realizowane za pomocą specjalnej tablicy przechowywanej w pamięci operacyjnej, zwanej tablicą deskryptorów.

Pamięć RAM w Windows XP32-bitowa architektura naszych komputerów

pozwala zaadresować do 4 GB pamięci operacyjnej. Niestety w rzeczywistości mają one znacznie mniej pamięci RAM i co gorsze o wiele mniej niż potrzebują. Brakująca pamięć RAM została zatem rozszerzona o dodatkową przestrzeń na dysku twardym, którą stanowi plik stronicowania lub jak kto woli - plik wymiany. Oba te elementy - pamięć RAM i plik stronicowania (pagefile.sys) tworzą przestrzeń adresową nazywaną właśnie pamięcią wirtualną.

Pamięć RAM w Windows XP

W systemie Windows XP tylko jądro systemu operuje bezpośrednio na pamięci RAM. Wszystkie inne procesy i aplikacje korzystają w mniejszym lub większym stopniu z pośrednictwa pamięci wirtualnej. W pamięci RAM przechowywane są dane pozostające aktualnie w użyciu. Jeśli w pamięci RAM nie ma już miejsca, system przerzuca do pliku stronicowania wszystko to, co w danej chwili nie jest konieczne. Tworzy w ten sposób wolne miejsce dla danych bieżących. Jeżeli jakaś aplikacja potrzebuje informacji zawartej w pliku wymiany, jest ona z powrotem przenoszona do obszaru pamięci RAM.

Pamięć RAM w Windows XP

Wyraźnym sygnałem sugerującym, że pamięci może być za mało będzie natomiast wyraźne spowolnienie pracy systemu. Warto wtedy zajrzeć do Menadżera zadań, który dostarczy niezbędnych informacji o zasobach RAM i ich wykorzystaniu. Menadżera zadań możemy uruchomić kombinacją klawiszy Ctrl+Alt+Delete. Można także kliknąć prawym przyciskiem myszy w wolne miejsce na pasku zadań i wybrać "Menadżer zadań".

Koncepcja pamięci podręcznej (cache)

Koncepcja pamięci cache jest podobna do koncepcji pamięci wirtualnej i wynika z własności pamięci SRAM i DRAM.

Pamięci statyczne są szybsze od pamięci dynamicznych, natomiast pobierają więcej energii i są zdecydowanie droższe. Ponadto są układami o niższym stopniu scalenia. Z tych powodów niejest możliwe zbudowanie całej pamięci operacyjnej z pamięci statycznych.

Z drugiej strony, pamięci dynamiczne są zbyt wolne dla szybkich, współczesnych procesorów i wymagają przy dostępie stanów oczekiwania.

Architektura systemu z pamięcią cache

We współczesnych systemach z pamięcią cache występują dwa rodzaje architektury:Look-through Look-aside.

Architektura Look-through

mikroprocesor

cache

PAO

zarządca magistral

zarządca magistral

Architektura Look-through

W architekturze tej pamięć cache, połączona magistralą lokalną z procesorem, oddziela go od reszty systemu. W przypadku trafienia główna magistrala systemu nie jest w ogóle używana, co powoduje dodatkowe zwiększenie szybkości działania systemu.

Żądanie dostępu do pamięci jest przekazywane do pamięci głównej (PAO) tylko w wypadku chybienia. Inicjowany jest wówczas cykl magistrali głównej z koniecznymi stanami oczekiwania.

Architektura Look-aside

mikroprocesor

cache

PAO

zarządca magistral

zarządca magistral

W przypadku tej architektury procesor nie jest odizolowany od reszty układów przez cache. Dostęp do pamięci powoduje rozpoczęcie normalnego cyklu magistrali. W przypadku trafienia cykl ten jest zawieszany, a operacja jest wykonywana w pamięci cache bez stanów oczekiwania. W przypadku chybienia wykonywany jest normalny cykl magistrali ze stanami oczekiwania.Przy zastosowaniu architektury Look-aside, nawet w przypadku trafienia, magistrala nie jest dostępna dla innych zarządców magistral. Nie są też możliwe równolegle operacje dla dwóch zarządców magistral. Zaletami architektury Look-aside są natomiast: prostsza konstrukcja, niższy koszt i nieco szybsza realizacja operacji w przypadku chybienia

Elementy systemu pamięci cache

System pamięci cache składa się z trzech elementów:

banku danych pamięci cache (pamięć danych), katalogu pamięci cache (często nazywanego TAG-RAM-em), sterownika pamięci cache.

W banku danych pamięci cache przechowywana jest zapisywana i odczytywana informacja, natomiast katalog pamięci cache służy do szybkiego sprawdzania, czy poszukiwana informacja znajduje się w pamięci danych cache.

Sposoby zapewniania zgodności pamięci cache

Niezgodność zawartości pamięci cache z zawartością pamięci głównej występuje w dwóch przypadkach: nastąpił zapis do pamięci cache bez zapisu do pamięci głównej lub nastąpił zapis do pamięci głównej bez zapisu do pamięci cache.

Pierwsza sytuacja występuje w przypadku trafienia przy zapisie.

Druga występuje na przykład w przypadku transmisji DMA do pamięci głównej.

strategie utrzymania zgodności:

> Write-through,> buforowane Write-through,> Write-back.

Write-through

W strategii Write-through każdy zapis do pamięci cache powoduje jednocześnie zapis do pamięci głównej. Jest to rozwiązanie bardzo proste i pewne, niestety powodujące zmniejszenie szybkości działania systemu (każdy zapis trafia do „wolnej„ pamięci głównej).

buforowane Write-throughBuforowane (lub inaczej opóźnione) Write-

through polega na zapisaniu informacji zarówno w przypadku trafienia, jak i chybienia do bufora sterownika cache, przy czym procesor widzi tę operację jako dostęp do pamięci bez stanów oczekiwania.

W rzeczywistości operacja zapisu do pamięci głównej jest realizowana później.

Write-backW przypadku strategii Write-back zawartos'ci

pamięci cache i pamięci głównej są uzgadniane tylko w przypadku takiej potrzeby. Występuje ona, gdy inny zarządca magistrali chce skorzystać z komórki pamięci głównej, która zawiera nieaktualną informację, lub gdy w pamięci cache wymieniana jest linia zawierająca nową informację.

Budowa pamięci cache stosującej strategię Write-back jest bardziej skomplikowana, gdyż jak wynika z podanego opisu, należy śledzić operacje magistrali w pamięci głównej dotyczące innych zarządców magistrali.

Drugi przypadek, w którym może dojść do niezgodności pamięci głównej i pamięci cache, występuje, gdy inny (niż procesor główny) zarządca magistrali dokonuje zapisu do pamięci.

Najczęściej używaną metodą utrzymania zgodności w takim przypadku jest śledzenie przez sterownik cache operacji magistrali (ang. bus snooping).

Przykład organizacji pamięci cache

Procesory

cd.