Jednostka zarzadzania pamiecia
Transkrypt
Jednostka zarzadzania pamiecia
Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli system operacyjny obsługuje kilka procesów w pamięci muszą znajdować się poszczególne programy wraz z danymi (przynajmniej częściowo) – procesy współdzielą dostępną pamięć. Po zakończeniu obsługi danego procesu (kończy się czas przeznaczony na obsługę zadania), następuje przełączenie kontekstu. Jeżeli nowy program znajduję się całkowicie w pamięci procesor wznawia pracę, jeżeli nie to program ładowany jest z pamięci pomocniczej (FLASH, HDD). Można wyróżnić cztery podstawowe sposoby zarządzania pamięcią: 1. Płaska przestrzeń adresowa, 2. Przydział ciągły, 3. Stronicowanie pamięci, 4. Segmentacja pamięci. Wymiana dwu procesów (swapping) 1 Płaska przestrzeń adresowa Adresy, dane Obliczenia odczyt Procesor zapis Adres logiczny = Adres fizyczny 2 MMU (Memory Management Unit) (1) MMU jest układem realizujących dostęp do pamięci fizycznej żądanej przez CPU. Zadania realizowane przez moduł zarządzający pamięcią: ● Translacja adresów logicznych na adresy pamięci fizycznej, ● Ochrona pamięci, kontrola uprawnień, ● Obsługa pamięci podręcznej, ● Zarządzanie szynami danych, przełączanie banków pamięci (mikrokontrolery 8-bitowe), ● ● ● ● Ułatwienie przełączania kontekstu (pamięć wykorzystywana przez proces, stos, itd...), Procesor ma bezpośredni dostęp do szybkiej pamięci statycznej, rejestrów oraz urządzeń mapowanych na pamięć, Dostęp do głównej pamięci może zająć więcej niż jeden cykl maszynowy (pamięci FLASH, HDD), Każdy proces pracuje w oddzielnej przestrzeni pamięci. 3 MMU (Memory Management Unit) (2) Translacja adresów logicznych na fizyczne Adres fizyczny Adres logiczny Procesor Logiczna przestrzeń adresowa MMU Adres logiczny = Adres fizyczny Fizyczna przestrzeń adresowa Adres logiczny, wirtualny (logical, virtual address) – adres wygenerowany przez procesor Adres fizyczny (physical address) – adres przetworzony przez jednostkę MMU, odzwierciedlający faktyczny adres w pamięci fizycznej. 4 Przydział ciągły Rejestr bazowy Rejestr limitu Adres fizyczny Adres logiczny CPU Tak < + Pamięć Nie Wyjątek – przekroczenie dozwolonego obszaru pamięci – umożliwia ochronę systemu operacyjnego, programów oraz danych. 5 Przydzielanie pamięci i planowanie długoterminowe 0 400 System operacyjny 0 400 P1 1000 System operacyjny 0 400 P1 1000 P2 2300 System operacyjny Obszar wolny P5 Obszar wolny P4 P4 Obszar wolny Obszar wolny Obszar wolny 2300 Obszar wolny 3060 1000 1000 2000 P3 400 P1 Obszar wolny 2000 System operacyjny 0 P3 2300 Obszar wolny 3060 2000 2000 P3 2300 Obszar wolny Obszar wolny 3060 P3 3060 6 Stronicowanie pamięci Numer strony Odległość na stronie P D m–n 32-bit n szyna adresowa: 24-bit przestrzeń adresowa: 32-bit rozmiar strony=512 B, n = 2^9 P = 2^23 rozmiar tablicy stron 2^23 Adres logiczny = P * rozmiar_strony + D Procesor Adres fizyczny Adres logiczny Pamięć MMU Tablica stron 31 0 Logiczna przestrzeń adresowa 2 m – strony Rozmiar strony 2 n 31 0 Fizyczna przestrzeń adresowa - ramki Pamięć fizyczna podzielona jest na obszary o stałej długości m, tzw. ramki (frames), Pamięć logiczna podzielona jest na obszary o takiej samej długości jak ramki, tzw. strony (pages), długość obszarów jest potęgą liczby dwa w przedziale od 512 B do kilkunastu Mb. Proces zajmuje n stron pamięci (ostatnia strona nie jest wypełniona – fragmentacja wewnętrzna) Jednostka MMU tłumaczy adresy logiczne na adresy fizyczne. 7 Obliczenie adresu fizycznego Rozmiar strony = 512 B Adres logiczny = 7 x 512 + 100 = 3684 P = 7, D = 100 F=3 Adres fizyczny = 3 x 512 + 100 = 1636 512 Frame 1 1024 Przesunięcie Frame 2 1536 CPU P D 0 1 2 3 4 5 6 7 8 9 10 F D Frame 3 2084 Frame 4 2560 Frame 5 3076 Frame 3 Frame 6 3584 8 Model stronicowania pamięci fizycznej i logicznej 512 Strona 0 Strona 1 Strona 2 Strona 3 Lista wolnych ramek: 0 - 7 0 1 2 3 1 4 3 7 Lista wolnych ramek: 0, 2, 5, 6 1024 Frame 0 Frame 1 (strona 0) Frame 2 1536 Frame 3 (strona 2) 2084 Tablica stron Frame 4 (strona 1) 2560 Frame 5 3076 Frame 6 3584 Frame 7 (strona 3) 9 Tablica stron 32-bit Tablica stron Rozmiar strony 220 deskryptorów 4 kB = 212 Rozmiar strony Trójstopniowa tablica stron 128 128 64 7 bitów 7 bitów 6 bitów 4 kB = 212 Tablica stron 0 1 2 3 1 4 3 7 R/W R/W R/W R/W Czas dostępu do rejestrów asocjacyjnych: Czas dostępu do pamięci: U/S U/S U/S U/S X X X X Valid Valid Valid Valid 20 ns 100 ns Wsp. trafień (hit ratio) = 80 % Efektywny czas dostępu = 0,8 x 120 + 0,2 x 220 = 140 ns Wsp. trafień (hit ratio) = 98 % Efektywny czas dostępu = 0,98 x 120 + 0,02 x 220 = 122 ns 10 Tablica stron - MC68040 11 Zastosowanie rejestrów asocjacyjnych TLB – translation look-aside buffers Przesunięcie 512 CPU P D F 32-bit D Frame 1 1024 Frame 2 32-bit 1536 Frame 3 2084 Frame 4 Bufory TLB 0 1 2 3 4 5 2560 Frame 5 3076 Frame 3 Chybienie w TLB – odwołanie do Tablicy stron Frame 6 3584 12 Segmentacja 0 Obszar wolny 1400 Stos Segment 0 Podprogram Obszar wolny Segment 3 Program główny Segment 1 Segment 3 4300 4700 Segment 0 Funkcja SQRT 3200 Tablica symboli Segment 2 Segment 2 Segment 4 Segment 4 Obszar wolny 6300 Segment 1 Obszar wolny 13 Obliczenie adresu fizycznego Numer segmentu Odległość S D Numer segmentu Adres logiczny = S + D 0 1 2 Granica Baza 3 4 5 Tablica segmentów Adres fizyczny = Baza segmentu + D 14 Segmentacja obliczanie adresu fizycznego 0 Obszar wolny 1400 Segment 0 Granica Baza Obszar wolny Tablica segmentów 3200 Segment 3 4300 4700 CPU S D Tak < Segment 2 Segment 4 + Obszar wolny Adres logiczny Nie Adres fizyczny 6300 Segment 1 Wyjątek – błąd adresowania Obszar wolny 15 Segmentacja 0 Obszar wolny 1400 Stos Segment 0 Podprogram Obszar wolny Segment 3 Program główny Segment 1 Segment 3 4300 4700 Segment 0 Funkcja SQRT 3200 Tablica symboli Segment 2 Segment 2 Segment 4 Segment 4 Obszar wolny 6300 Segment 1 Obszar wolny 16 Rdzeń procesora ColdFire V4e z jednostką MMU 17 ColdFire V4e Procesor z rdzeniem V4e: MCF547x, MCF548x lub V5, 64 rejestry asocjacyjne TLB (32 dla pamięci programu i 32 dla pamięci danych), Obsługa wyjątków w przypadku niepowodzenia odczytu z pamięci (TLB miss), Rozmiar obsługiwanych stron: 1, 4, 8 kB i 1 MB, Jednostka MMU umożliwia uzyskanie poziomu trafności na poziomie 97% w odniesieniu, do procesora rodziny V4 (bez MMC), Obsługa uprawnień (użytkownik/superużytkownik, zapis/odczyt, pamięć wykonywalna), Dostęp do rejestrów TLB przez rejestry modułu MMC, Dostęp do urządzeń specjalnych mapowanych na pamięć (przerwania, urządzenia I/O) lub praca w trybie emulatora odbywa się przy wykorzystaniu adresów fizycznych. 18 Ramka stosu sytuacji wyjątkowych 19 Rejestr statusowy MMUSR 20 Rejestr konfiguracyjny MMUDR 21 Współpraca pamięci podręcznej z MMU CPU Virtual Address TLB Cached? Yes No Translate (MMU) e v t Sa sul Re Physical Address Physical Memory Data Read or Write (untranslated) 22