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 Obliczenia Adresy, dane 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 Procesor Adres logiczny MMU Adres fizyczny Logiczna przestrzeń adresowa 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 limitu Rejestr bazowy Adres logiczny Adres fizyczny 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 4 1 System operacyjny P1 4 1 System operacyjny P1 4 1 System operacyjny P1 4 1 System operacyjny P5 P4 P4 P2 2 23 P3 2 23 P3 2 23 P3 2 23 P3 36 36 36 36 6
Stronicowanie pamięci Numer strony P m n 32-bit Odległość na stronie D n szyna adresowa: 24-bit przestrzeń adresowa: 32-bit rozmiar strony=512 B, n = 2^9 P = 2^23 rozmiar tablicy stron 2^23 Procesor Adres logiczny = P * rozmiar_strony + D Adres logiczny MMU Tablica stron Adres fizyczny Pamięć 31 Logiczna przestrzeń adresowa 2 m strony Rozmiar strony 2 n 31 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 + 1 = 3684 P = 7, D = 1 F = 3 Adres fizyczny = 3 x 512 + 1 = 1636 1 2 3 4 5 6 7 8 9 1 Przesunięcie CPU P D F D Frame 3 512 124 1536 284 256 376 3584 Frame 1 Frame 2 Frame 3 Frame 4 Frame 5 Frame 6 8
Strona Strona 1 Strona 2 Strona 3 Model stronicowania pamięci fizycznej i logicznej Lista wolnych ramek: - 7 1 2 3 1 4 3 7 Tablica stron Lista wolnych ramek:, 2, 5, 6 512 124 1536 284 256 376 3584 Frame Frame 1 (strona ) Frame 2 Frame 3 (strona 2) Frame 4 (strona 1) Frame 5 Frame 6 Frame 7 (strona 3) 9
Tablica stron 32-bit Tablica stron Rozmiar strony 2 2 deskryptorów 4 kb = 2 12 Trójstopniowa tablica stron Rozmiar strony 128 128 64 4 kb = 2 12 7 bitów 7 bitów 6 bitów 1 2 3 1 4 3 7 Tablica stron R/W U/S X Valid R/W U/S X Valid R/W U/S X Valid R/W U/S X Valid Czas dostępu do rejestrów asocjacyjnych: Czas dostępu do pamięci: 2 ns 1 ns Wsp. trafień (hit ratio) = 8 % Efektywny czas dostępu =,8 x 12 +,2 x 22 = 14 ns Wsp. trafień (hit ratio) = 98 % Efektywny czas dostępu =,98 x 12 +,2 x 22 = 122 ns 1
Tablica stron - MC684 11
Zastosowanie rejestrów asocjacyjnych Przesunięcie TLB translation look-aside buffers CPU P D F D 32-bit 32-bit 512 124 1536 Frame 1 Frame 2 Frame 3 1 2 3 4 5 Bufory TLB Frame 3 Chybienie w TLB odwołanie do Tablicy stron 284 256 376 3584 Frame 4 Frame 5 Frame 6 12
Segmentacja Stos 14 Segment Podprogram Segment Funkcja SQRT Segment 1 Segment 3 Tablica symboli Program główny Segment 4 32 43 47 63 Segment 3 Segment 2 Segment 4 Segment 2 Segment 1 13
Obliczenie adresu fizycznego Numer segmentu S Odległość D Numer segmentu Adres logiczny = S + D 1 2 3 4 5 Granica Baza Tablica segmentów Adres fizyczny = Baza segmentu + D 14
Segmentacja - obliczanie adresu fizycznego Granica Baza 14 Segment CPU S D < Tablica segmentów Tak + 32 43 47 Segment 3 Segment 2 Segment 4 Adres logiczny Nie Wyjątek błąd adresowania Adres fizyczny 63 Segment 1 15
Segmentacja Stos 14 Segment Podprogram Segment Funkcja SQRT Segment 1 Segment 3 Tablica symboli Program główny Segment 4 32 43 47 63 Segment 3 Segment 2 Segment 4 Segment 2 Segment 1 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 2
Rejestr konfiguracyjny MMUDR 21
Współpraca pamięci podręcznej z MMU CPU Virtual Address TLB Cached? Yes No Translate (MMU) Save Result Physical Address Physical Memory Data Read or Write (untranslated) 22