PSE-36

W informatyce PSE-36 ( 36-bitowe rozszerzenie rozmiaru strony ) odnosi się do funkcji procesorów x86 , która rozszerza możliwości adresowania pamięci fizycznej z 32 do 36 bitów, umożliwiając adresowanie do 64 GB pamięci. W porównaniu z rozszerzenia adresu fizycznego (PAE), PSE-36 jest prostszą alternatywą dla adresowania więcej niż 4 GB pamięci. Używa rozszerzenia Page Size (PSE) i zmodyfikowaną tablicę katalogów stron w celu odwzorowania stron o wielkości 4 MB na fizyczną przestrzeń adresową o pojemności 64 GB. Wadą PSE-36 jest to, że w przeciwieństwie do PAE nie ma ziarnistości strony 4 KB powyżej znaku 4 GB.

PSE-36 został wprowadzony do architektury x86 wraz z Pentium II Xeon i początkowo był reklamowany jako część „Intel Extended Server Memory Architecture” (czasami w skrócie ESMA), marki, która obejmowała również nieco starszy PAE (a tym samym Pentium Pro , który obsługiwał tylko PAE, był reklamowany jako mający tylko „obsługę podzbioru” dla ESMA).

Okres świetności PSE-36 był stosunkowo krótki. Główną zaletą PSE-36 było to, że w przeciwieństwie do PAE wymagało niewielkiej przeróbki wewnętrznych elementów systemu operacyjnego, a zatem PSE-36 okazał się odpowiednim środkiem tymczasowym w ramach czasowych systemu Windows NT 4.0 Enterprise Edition. Nowsze systemy operacyjne firmy Microsoft, w tym Windows 2000 , obsługują tylko PAE. Niektóre systemy operacyjne, takie jak Linux, całkowicie pomijały PSE-36. Mimo to AMD, a później Intel, zdecydowały się zapewnić obsługę do 40 bitów PSE w swoich 64-bitowych procesorach, gdy działają w starszym trybie .

Operacja

Wykrycie

Obsługa PSE-36 jest wskazywana przez bit EDX 17 (licząc od 0) w wyniku cpuid dla bitów funkcji . (Jest to inny bit niż zwykła obsługa PSE, na co wskazuje bit 3 w tym samym rejestrze).

Aktywacja i użytkowanie

Jeśli chodzi o aktywację PSE-36, nie ma jednak oddzielnego bitu od tego, który włącza PSE. Tak długo, jak procesor (jak wskazuje cpuid) i chipset obsługują PSE-36, włączenie samego PSE (poprzez ustawienie bitu 4, PSE , rejestru systemowego CR4 ) pozwala na użycie dużych 4 MB stron (w zakresie 64 GB) wzdłuż z normalnymi stronami 4 KB (które są jednak ograniczone do zakresu 4 GB).

procesorze dostępna jest nowsza funkcja PSE-36 , co zostało sprawdzone za pomocą instrukcji CPUID , wówczas 4 dodatkowe bity, oprócz 10 bitów używanych w PSE, są używane we wpisie katalogu strony wskazującym na dużą stronę. Pozwala to na umieszczenie dużej strony w 36-bitowej przestrzeni adresowej.

Bit PS (bit 7) w Page Directory Entry (PDE) wskazuje, czy ten wpis odnosi się do tablicy stron (która opisuje 1024 stron 4-kiB), czy do jednej strony 4 MB. Struktury PDE w trybie normalnym, trybie PSE i trybie PSE-36 są następujące:

Wpis katalogu strony dla 32-bitowego stronicowania
31–22 21–17 16-13 12 11–9 8 7 6 5 4 3 2 1 0
spoza PSE adres bazowy tablicy stron wykorzystać 0 PS=0 ign A PCD PWT u W P
PSSE bit 31..22 adresu ramki strony zarezerwowane (musi być zerem) POKLEPAĆ wykorzystać 0 PS=1 D A PCD PWT u W P
PSE-36 bit 31..22 adresu ramki strony zarezerwowane (musi być zerem) bit 35..32 adresu ramki strony POKLEPAĆ wykorzystać 0 PS=1 D A PCD PWT u W P
  1. Tabela atrybutów strony ; od Pentium III , musi wynosić zero dla starszych procesorów.
  2. Bit „brudny”: ustawiony na 1 przez procesor, jeśli na tej stronie był dostęp do zapisu. Dla stron 4 KiB ta flaga istnieje w odpowiednim wpisie tablicy stron (PTE).

Rozszerzenie do 40 bitów

AMD rozszerza ten schemat do 40 bitów adresu, interpretując bity 20..13 PDE jako bity 39..32 adresu bazowego strony w swoich procesorach AMD64 , gdy działają w trybie starszym , więc tylko bit 21 jest zarezerwowany (musi wynosić zero) . Należy jednak pamiętać, że CR4.PSE jest ignorowany w trybie długim , a strony w stylu PSE o wielkości 4 MB nie są dostępne w tym trybie. Całkowita ilość pamięci fizycznej adresowalnej w trybie starszej generacji AMD64 przy użyciu stron PSE 4 MB wynosi zatem 1024 GB. Tom Shanley nazwał to rozszerzenie PSE-40, chociaż takie oznaczenie nie pojawia się w oficjalnej dokumentacji AMD.

Najnowsze podręczniki firmy Intel (z lutego 2014 r.) również wskazują na obsługę do 40 bitów w PSE. Dokładna liczba bitów PSE obsługiwanych przez procesory Intel może być jednak mniejsza i należy ją określić za pomocą CPUID w celu zapytania o maksymalną szerokość adresu fizycznego obsługiwaną przez procesor, wywołując CPUID za pomocą funkcji 80000008H i sprawdzając wynik w EAX [7 : 0 ].

Stosowanie

Praktyczna przydatność funkcji PSE-36 zależy od tego, czy chipset obsługuje więcej niż 4 GB pamięci RAM. Większość chipsetów z okresu Pentium II nie obsługiwała tak dużej ilości pamięci, przy czym 1 GB to maksimum dla typowego chipsetu Intel 440BX do komputerów stacjonarnych i 2 GB dla chipsetu stacji roboczej 440GX. Tylko wysokiej klasy chipset serwerowy Intel 450NX obsługiwał 8 GB. Dlatego zwykle reklamowano obsługę PSE-36 (ESMA) dla serwerów.

Jako odpowiedni system operacyjny obsługujący PSE-36, w 1998 roku Intel reklamował Microsoft Windows NT Server, Enterprise Edition 4.0 i rzekomo nadchodzący NT 5.0, oba umożliwiające korzystanie za pośrednictwem sterownika urządzenia PSE36 , przez co większość systemu operacyjnego nie była świadoma PSE-36 ( tylko sterownik PSE36 umożliwiał to tymczasowo) i który sterownik musiały wywołać aplikacje, które chciały uzyskać dostęp do więcej niż 4 GB. W ten sposób system Windows NT 4.0 Enterprise Edition wykorzystywał funkcję PSE-36 zasadniczo jako dysk RAM . Sterownik PSE36 był używany przez niektóre aplikacje w systemie Windows NT Serwery 4.0 Enterprise Edition, na przykład SAP liveCache, Microsoft SQL Server 7.0, Oracle 8.1.5 i IBM DB2 . W dokumentacji dotyczącej strojenia tego ostatniego zauważono jednak, że „Niestety w większości przypadków wzrost wydajności uzyskany przy użyciu sterownika PSE-36 nie jest spektakularny. W wielu przypadkach serwer będzie działał wolniej z 8 GB przy użyciu sterownika PSE-36 niż z 4 GB bez sterownika. [...] Po ponad roku eksperymentów i dostrajania Microsoft i IBM zrezygnowały ze wsparcia dla PSE-36 z powodu niewystarczającego wzrostu wydajności. Sterownik jest nadal dostępny dla dostawców firmy Intel, ale nie jest przydatny dla użytkowania przez klienta końcowego”.

Windows 2000 (NT 5.0) ostatecznie nie obsługiwał PSE-36 ze względu na niską wydajność w porównaniu z alternatywnym PAE. Windows 2000 zastąpił również interfejs API sterownika PSE36 nowym interfejsem API o nazwie Address Windowing Extensions (AWE), który wykorzystywał PAE pod spodem. (AWE było dostępne tylko w Datacenter Server i Advanced Server systemu Windows 2000.) Aplikacje Windows były konsekwentnie migrowane do tego nowego API, np. zaczynając od Oracle 8.1.6 lub MS SQL Server 2000.

PSE-36 nigdy nie był używany przez Linuksa .

W porównaniu z PAE

Rozszerzenie adresu fizycznego (PAE) jest alternatywą dla PSE-36, która umożliwia również adresowanie 36-bitowe. PSE-36 ma tę zaletę, że hierarchia tablic stron nie jest zmieniana, a wpisy stron zachowują swój stary 32-bitowy format i nie są rozszerzane do 64 bitów. Oczywistą wadą PSE-36 jest to, że tylko duże strony można umieścić w 64 GB pamięci fizycznej, a małe strony nadal można umieścić tylko w pierwszych 4 GB pamięci fizycznej.

Architektura Intel Extended Server Memory

Architektura Intel Extended Server Memory Architecture obejmuje dwa 36-bitowe tryby adresowania w procesorze rdzeniowym: PAE-36 i PSE-36.

Zobacz też