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

Podobne dokumenty