Jak implementuje PAE w Linuksie?

3

Istnieje tylko 36 fizycznych linii adresowych, ale wpis tablicy stron ma długość 64 bitów. Jak procesor sprawdza, czy adres jest prawidłowy? Jak system operacyjny Linux mapuje ten sam adres wirtualny w różnych procesach na różne adresy fizyczne?

Oto artykuł wikipedii o rozszerzeniu adresu fizycznego (PAE). http://en.wikipedia.org/wiki/Physical_Address_Extension .

Jeff
źródło
Może dodając do nich różne przesunięcia?
H2CO3
2
Wpisy PT są 64-bitowe, ponieważ mogą mieć tylko 32 lub 64 bity szerokości. Nie ma czegoś takiego jak 36-bitowa liczba całkowita, do której procesor może zazwyczaj uzyskać dostęp (nie do żadnej real CPU tak czy inaczej, bez przesuwania i maskowania). Nie ma to jednak znaczenia. System operacyjny zapisze w PT 64-bitowe 36-bitowe liczby całkowite, a aplikacja używa 32-bitowych liczb całkowitych jako wskaźników, które PT tłumaczy na to, na co wskazują odpowiednie wpisy. W tym kilka adresów wirtualnych wskazujących na ten sam fizyczny. Nikt się tym nie przejmuje, sprzęt po prostu mapuje to, co powiesz, do tego, co powiesz.
Damon

Odpowiedzi:

1

Istnieje tylko 36 fizycznych linii adresowych, ale wpis tablicy stron to 64   trochę długo. Jak procesor sprawdza, czy adres jest prawidłowy?

W rzeczywistości jest to wykonywane przez kawałek sprzętu zwany jednostka zarządzania pamięcią (MMU), który obsługuje translację adresów wirtualnych na fizyczne. Jeśli chodzi o adres „prawidłowy”, każdy proces ma własną unikalną przestrzeń adresową (a zatem realizuje schemat pamięci wirtualnej), więc każdy adres jest technicznie ważny. Pamiętaj, że proces może przydzielić więcej pamięci niż jest fizycznie dostępna.

MMU używa a bufor do tłumaczenia (TLB) do szybkiego dekodowania adresu wirtualnego na adres fizyczny, przechowywany w obrębie strona tabeli .

W jaki sposób system operacyjny Linux odwzorowuje ten sam adres wirtualny w różnych procesach   na różne adresy fizyczne?

Jest to również spowodowane tym, że każdy proces ma unikalny charakter wirtualna przestrzeń adresowa , co ma zasadnicze znaczenie dla wdrożenia pamięć wirtualna . Adres wirtualny dla danego procesu jest mapowany na trochę fizyczny sprzęt pamięci masowej (RAM, dysk itp.), ale mapowanie odbywa się w czasie wykonywania przez system operacyjny i MMU.

Breakthrough
źródło