2017-01-15 32 views
6

Zauważyłem, że bit PAE w rejestrze CR4 jest włączony na moim komputerze z systemem Linux (3.19) x86-64. Funkcja PAE umożliwia dostęp do adresów fizycznych do 64 gb, ale nie rozumiem, dlaczego jest ona potrzebna, gdy włączony jest tryb długi. Sprawdziłem to przez chwilę, ale nie znalazłem satysfakcjonującej odpowiedzi.PAE w procesorach x86-64 bit - jądro Linuksa

Wszelkie sugestie?

Odpowiedz

7

Używa stronicowania IA-32e.

Logiczny procesor wykorzystuje IA-32e przywoławczy, jeżeli CR0.PG = 1, CR4.PAE = 1, a IA32_EFER.LME = 1.
Z IA-32e stronicowania, liniowy adres są tłumaczone przy użyciu hierarchii struktur stronicowania w pamięci zlokalizowanych przy użyciu zawartości CR3.
Paging IA-32e tłumaczy 48-bitowe adresy liniowe na 52-bitowe adresy fizyczne.
Chociaż 52 bity odpowiadają 4 PB, adresy liniowe są ograniczone do 48 bitów; co najwyżej 256 TB przestrzeni adresowej liniowej może być dostępne w dowolnym czasie podanym w postaci .


procesorami x86 obsługuje trzy tryby przywoławcze

  1. 32-bitowy stronicowania (CR0.PG = 1 CR4.PAE = 0)
  2. PAE stronicowania (CR0.PG = 1, CR4.PAE = 1 i IA32_EFER.LME = 0)
  3. IA-32e stronicowania (CR0.PG = 1, CR4.PAE = 1, a IA32_EFER.LME = 1)

Tabela podsumowująca różnic podano tutaj (jak obraz , niestety)

Differences between the three paging modes on x86