PSE-36
Inom datorer hänvisar PSE-36 ( 36-bitars sidstorleksförlängning ) till en funktion hos x86 -processorer som utökar de fysiska minnesadresseringsmöjligheterna från 32 bitar till 36 bitar , vilket tillåter adressering till upp till 64 GB minne. Jämfört med Physical Address Extension (PAE) är PSE-36 ett enklare alternativ till att adressera mer än 4 GB minne. Den använder Page Size Extension (PSE) och en modifierad sidkatalogtabell för att mappa 4 MB-sidor till ett fysiskt adressutrymme på 64 GB. Nackdelen med PSE-36 är att den, till skillnad från PAE, inte har 4-KB sidgranularitet över 4 GB-märket.
PSE-36 introducerades i x86-arkitekturen med Pentium II Xeon och annonserades till en början som en del av "Intel Extended Server Memory Architecture" (ibland förkortat ESMA), ett varumärke som även inkluderade den lite äldre PAE (och därmed Pentium Pro , som endast stödde PAE, annonserades som endast "underuppsättningsstöd" för ESMA).
PSE-36:s storhetstid var relativt kort. PSE-36:s främsta fördel var att den, till skillnad från PAE, krävde lite omarbetning av operativsystemets interna funktioner, och därför visade sig PSE-36 vara en lämplig stoppåtgärd runt tidsramen för Windows NT 4.0 Enterprise Edition . Nyare Microsoft-operativsystem, inklusive Windows 2000 , stöder endast PAE. Vissa operativsystem som Linux hoppade över PSE-36 helt. Trots detta valde AMD och senare Intel att tillhandahålla upp till 40 bitars PSE-stöd i sina 64-bitars processorer, när de kördes i äldre läge .
Drift
Upptäckt
Stöd för PSE-36 indikeras av EDX-bit 17 (räknat från 0) i cpuid-resultatet för funktionsbitar . (Detta är en annan bit än vanligt PSE-stöd, vilket indikeras av bit 3 i samma register).
Aktivering och användning
När det gäller att aktivera PSE-36 finns det dock inte en separat bit från den som slår på PSE. Så länge processorn (som indikeras av cpuid) och chipset stöder PSE-36, tillåter endast PSE (genom att ställa in bit 4, PSE , i systemregistret CR4
) användning av stora 4 MB sidor (i intervallet 64 GB) tillsammans med normala 4 KB-sidor (som dock är begränsade till 4 GB-intervallet).
Om nyare PSE-36-kapacitet är tillgänglig på CPU , som kontrolleras med CPUID- instruktionen, används ytterligare 4 bitar, utöver de 10 bitar som används i PSE, i en sidkatalogpost som pekar på en stor sida. Detta gör att en stor sida kan placeras i 36-bitars adressutrymme.
PS-biten (bit 7) i Page Directory Entry (PDE) anger om denna post hänvisar till en sidtabell (som beskriver 1024 4-KiB-sidor) eller en 4 MB-sida. PDE-strukturer i normalt läge, PSE-läge och PSE-36-läge är följande:
31–22 | 21–17 | 16–13 | 12 | 11–9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
icke-PSE | basadress för sidtabellen | nytta | 0 | PS=0 | ign | A | PCD | PWT | U | W | P | |||||||||||||||||||||
PSE | bit 31..22 i sidramsadress | reserverad (måste vara noll) | KLAPPA | nytta | 0 | PS=1 | D | A | PCD | PWT | U | W | P | |||||||||||||||||||
PSE-36 | bit 31..22 i sidramsadress | reserverad (måste vara noll) | bit 35..32 i sidramsadress | KLAPPA | nytta | 0 | PS=1 | D | A | PCD | PWT | U | W | P |
- Sidattributtabell ; eftersom Pentium III måste vara noll för äldre processorer.
- "Dirty" bit: satt till 1 av CPU om det fanns en skrivåtkomst till den sidan. För 4 KiB-sidor finns denna flagga i motsvarande sidtabellpost (PTE).
Förlängning upp till 40 bitar
AMD utökar detta schema till 40 adressbitar genom att tolka bitarna 20..13 i en PDE som bit 39..32 i sidbasadressen i deras AMD64 -processorer när de används i äldre läge , så endast bit 21 är reserverad (måste vara noll) . Observera dock att CR4.PSE ignoreras i långt läge och PSE-liknande 4 MB-sidor är inte tillgängliga i det läget. Den totala mängden fysiskt minne som kan adresseras i äldre AMD64-läge med PSE 4 MB-sidor är alltså 1024 GB. Tom Shanley har kallat denna tillägg för PSE-40, även om en sådan beteckning inte förekommer i den officiella AMD-dokumentationen.
De senaste Intel-manualerna (februari 2014) indikerar också stöd för upp till 40 bitar i PSE. Det exakta antalet PSE-bitar som stöds på Intel-processorer kan dock vara mindre och måste bestämmas genom att använda CPUID för att fråga den maximala fysiska adressbredden som stöds av processorn genom att anropa CPUID med funktion 80000008H och kontrollera resultatet i EAX[7 : 0 ].
Användande
Den praktiska användbarheten av PSE-36-funktionen beror på styrkretsstöd för mer än 4 GB RAM. De flesta styrkretsar från Pentium II-tidsramen stödde inte så mycket minne, med 1 GB som max för Intel 440BX typiska stationära chipset och 2 GB för 440GX arbetsstationschipset. Endast den avancerade servern Intel 450NX- chipset stödde 8 GB. Stöd för PSE-36 (ESMA) annonserades därför vanligtvis för servrar.
Som ett lämpligt operativsystem som stöder PSE-36, annonserade Intel 1998 Microsoft Windows NT Server, Enterprise Edition 4.0 och förmodligen den kommande NT 5.0, båda möjliggör användning via en PSE36- enhetsdrivrutin , vilket höll det mesta av operativsystemet omedvetet om PSE-36 ( endast PSE36-drivrutinen aktiverade det tillfälligt), och vilken drivrutin måste anropas av applikationer som ville ha åtkomst till mer än 4 GB. Windows NT 4.0 Enterprise Edition använde alltså PSE-36-funktionen huvudsakligen som en RAM-disk . PSE36-drivrutinen användes av vissa applikationer på Windows NT 4.0 Enterprise Edition-servrar, till exempel SAP liveCache, Microsoft SQL Server 7.0, Oracle 8.1.5 och IBM DB2 . Justeringsdokumentationen för den senare noterade dock att "Tyvärr är prestandavinster som erhållits med PSE-36-drivrutinen i de flesta fall inte spektakulära. I många fall kommer servern att köras långsammare med 8 GB med PSE-36-drivrutinen än den körs med 4 GB utan drivrutinen [...] Efter mer än ett år av experimenterande och trimning slutade Microsoft och IBM stödet för PSE-36 på grund av otillräckliga prestandavinster. Drivrutinen är fortfarande tillgänglig för leverantörer från Intel, men den är inte användbar för slutkundsanvändning."
Windows 2000 (NT 5.0) slutade med att inte stödja PSE-36, på grund av låg prestanda jämfört med alternativ PAE. Windows 2000 ersatte också API:et för PSE36-drivrutinen med ett nytt API som heter Address Windowing Extensions (AWE), som använde PAE under. (AWE var endast tillgängligt i Datacenter Server och Advanced Server i Windows 2000.) Windows-applikationer migrerade följaktligen till detta nya API, t.ex. från Oracle 8.1.6 eller MS SQL Server 2000.
PSE-36 användes aldrig av Linux .
Jämfört med PAE
Physical Address Extension (PAE) är ett alternativ till PSE-36 som även tillåter 36-bitars adressering. PSE-36 har fördelarna att hierarkin för sidtabeller inte ändras, och att sidposter behåller sitt gamla 32-bitarsformat och inte utökas till 64 bitar. Den uppenbara nackdelen med PSE-36 är att endast stora sidor kan placeras i 64 GB fysiskt minne, och små sidor kan fortfarande bara finnas i de första 4 GB fysiskt minne.
Intel Extended Server Memory Architecture
Intel Extended Server Memory Architecture är definierad för att inkludera två 36-bitars adresseringslägen i kärnprocessorn: PAE-36 och PSE-36.