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:
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 |
- Tabela atrybutów strony ; od Pentium III , musi wynosić zero dla starszych procesorów.
- 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.