Dieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung. Naheres sollte auf der
Diskussionsseite
angegeben sein. Bitte hilf mit, ihn zu
verbessern
, und entferne anschließend diese Markierung.
Physical Address Extension
(englisch fur
Erweiterung (der) physischen Adressierung
), kurz
PAE
, ist eine technische Erweiterung auf dem Gebiet der
Rechnerarchitektur
. Mit PAE kann im
32-Bit
-Modus eines
x86
-kompatiblen
Prozessors
(CPUs) mehr physischer
Arbeitsspeicher
adressiert werden als die 4
GiB
, die uber ein 32-
Bit
-
Adressregister
erreichbar sind.
[1]
Der fur
einen
Prozess
nutzbare Arbeitsspeicher bleibt bei einem linearen Speichermodell (?
flat memory
“) aber auf 4 GiB begrenzt. Das Verfahren wird bei
Intel
ab dem
Pentium Pro
und bei
AMD
ab dem
Athlon
sowie bei Prozessoren der 32-Bit-x86-Architektur
IA-32
anderer Hersteller
eingesetzt. Spezielle Erweiterungen in der
Paging
-Einheit des Prozessors sorgen dafur, dass langere physische Adressen generiert werden konnen.
Selten wird der Begriff auch mit Bindestrich verwendet (?
Physical-Address Extension
“), das ist theoretisch die korrekte Schreibweise gemaß englischer Grammatik und wird vor allem seitens AMD so verwendet. Vorherrschend ist jedoch die Schreibweise ohne Bindestrich.
Prozessor
|
Adress-
leitungen
|
theoretisch adressierbarer
physikalischer Speicher
|
i386
bis
Pentium
|
32
|
0.000.00
4 GiB (kein PAE)
|
Pentium Pro
(
P6
) bis
Core 2
|
36
|
0.000.0
64 GiB
|
Xeon
|
38
|
0.000.
256 GiB
|
Athlon 64
(
K8
)
|
40
|
0.00
1.024 GiB =
0.00
1 TiB
|
AMD-K10
-Architektur
|
48
|
0.
262.144 GiB =
0.
256 TiB
|
theoretisches Limit von PAE
|
52
|
4.194.304 GiB = 4.096 TiB
|
x86-Prozessoren, die PAE unterstutzen, haben eine erweiterte Paging-Einheit. Die Paging-Einheit (in der Grafik dargestellt) wandelt die lineare Adresse in die physische Adresse um.
Um PAE zu aktivieren, muss das Betriebssystem das Bit 5 im Steuerregister CR4 setzen.
[2]
Bei aktiviertem PAE verwalten die Page-Directory- und Page-Table-Tabellen (PD und PT) der Paging-Einheit Adress-Eintrage mit einer Breite von 64 Bit statt 32 Bit (bei jedem Adress-Eintrag werden einige Bits zur Verwaltung benutzt, sind also keine Adresse im engeren Sinn).
64-Bit-Eintrag im Seitenverzeichnis (Page directory entry)
Bits:
|
63
|
62 … 52
|
51 … 32
|
Inhalt:
|
NX
|
reserved
|
Bit 51 … 32 der Basisadresse
|
Bits:
|
31 … 12
|
11 … 9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
Inhalt:
|
Bit 31 … 12 der Basisadresse
|
AVL
|
ig
|
0
|
ig
|
A
|
PCD
|
PWT
|
U/S
|
R/W
|
P
|
Damit die Große der Tabellen unverandert bei 4 KiB bleibt, verwalten das PD und die PT nur noch jeweils die Halfte der Eintrage (512 statt 1024). Um den Ruckgang auf ein Viertel der moglichen Adresseintrage auszugleichen, ist der PD-PT-Kombination eine weitere, sogenannte Page-Directory-Pointer-Tabelle vorgeschaltet, die 4 PDs statt eines PDs ansprechen kann.
Die angegebenen theoretisch adressierbaren Speichermengen des physikalischen Speichers sind Maximalwerte. In der Regel ist trotzdem nur weniger Speicher nutzbar, da einige Adressbereiche fur Einblendungen von Hardwarespeicher genutzt werden. In Microsoft Windows kann in den Computereigenschaften gesehen werden, wie viel Speicher dem Betriebssystem tatsachlich zur Verfugung steht. Nur im Idealfall entspricht diese Zahl dem installierten Arbeitsspeicher. Dabei muss auch beachtet werden, dass viele Windows-Versionen willkurliche Speicherobergrenzen haben, die auch von der Edition abhangen. Alle Client-Versionen von 32-Bit-Ausgaben sind z. B. auf 4 GiB beschrankt.
Zur Nutzung von PAE muss dieses auch vom
Betriebssystem
unterstutzt werden. PAE fuhrt allerdings zu langeren Zugriffszeiten durch die
virtuelle Speicherverwaltung
, das
Paging
und fur 32-Bit PCI-Zugriffe, die bei einer Begrenzung des Arbeitsspeichers auf 4 GiB nicht erforderlich waren.
Auf den meisten Rechnern ist PAE dennoch aktiviert, da nur mit eingeschalteter PAE das
No-Execute-Bit
genutzt werden kann. Dieses soll verhindern, dass in Datenbereichen Schadsoftware eingeschleust werden kann, die zu einem Virenbefall des Rechners fuhren. Dazu werden entsprechende Datenbereiche als ?nicht ausfuhrbar“ markiert. Wenn ein Sprung an eine Adresse in einem solchen Bereich erfolgt, kommt es zu einer Schutzverletzung und das entsprechende Programm wird angehalten. Da einige nicht sauber programmierte Software dadurch nicht mehr funktionieren wurde, ist es in Microsoft Windows standardmaßig nur fur betriebssystemeigene Prozesse eingeschaltet. Dadurch wird die ursprunglich angedachte hohere Sicherheit nur fur OS-eigene Funktionen erreicht.
FreeBSD
unterstutzt PAE in der 4.x Serie ab 4.9, in der 5.x Serie ab 5.1 und in allen 6.x Versionen und allen spateren Versionen. Die PAE-Konfigurationsoption wird im Kernel benotigt. Ladbare Kernelmodule konnen nur in einen Kernel mit aktiviertem PAE geladen werden, wenn die Module mit aktiviertem PAE erstellt worden sind. Nicht alle
Treiber
unterstutzen mehr als 4 GiB Arbeitsspeicher, in einem System mit aktiviertem PAE laufen solche Treiber nicht richtig.
NetBSD
sowie
OpenBSD
(bisher nur in
-current
) unterstutzen PAE ebenfalls. Alle adressieren den gesamten 64-GiB-Adressraum.
Haiku
unterstutzt PAE ab der Version Haiku R1 Alpha 3.
[3]
Der
Linux-Kernel
enthalt ab der Version 2.3.23 vom 22. Oktober 1999 die volle PAE-Unterstutzung. Seit 2009 ist PAE bei vielen
Linux-Distributionen
per Voreinstellung enthalten, weil PAE fur das
NX-Bit
benotigt wird.
Ein
Patch
von Mitte 2014 fuhrte unter Linux den Kernel-
Kommandozeilenparameter
forcepae
ein,
[4]
der auf einigen
Pentium-M
- und
Celeron-M
-Prozessoren PAE aktiviert. Fruhen Modellen mit
Dothan
-Kern und allen Modellen mit
Banias
-Kern fehlt die Angabe von PAE in deren
CPUID
, obwohl die Funktion im Prozessor vorhanden ist. Mitte 2014 endete die Unterstutzung von Microsoft fur
Windows XP
, gleichzeitig anderten viele
Linux-Distributionen
die Mindestanforderungen ihrer 32-Bit-Varianten auf ?
i686
+pae“,
[5]
obwohl es teilweise Community-Kernel fur altere Systeme (
i486
oder
i586
, ohne PAE) gibt. Mit ?forcepae“ ließen sich viele Standard-Distributionen auch auf Systemen von rund 2004/2005 mit Pentium M bzw. Celeron M ohne Austausch des Kernels nutzen, beispielsweise auf ThinkPads oder Toughbooks.
[6]
macOS
fur Intel-
Macs
unterstutzt PAE und das
NX-Bit
ab der ersten Intel-Version,
Mac OS X Tiger
(Version 10.4.4) vom Januar 2006, auf allen von
Apple
unterstutzten x86-Prozessoren. Modelle der
Mac-Pro
-Serie werden seit 2008 mit bis zu 64 GiB RAM ausgeliefert.
Solaris
unterstutzt PAE ab Version 7.
PAE wird von
Microsoft
Windows
ab
Version 2000
(Professional und hoher) und
XP
(alle Varianten) unterstutzt und muss hierbei zumeist durch eine Bootoption aktiviert werden. Allerdings ist dabei bei den 32-bit Desktop-Versionen auch mit aktiviertem PAE der maximal nutzbare Hauptspeicher auf 4 GB beschrankt. Dies wird zum einen damit erklart, dass es wohl Teil der Vermarktungspolitik von Microsoft sei.
[7]
Microsoft dagegen begrundet diese Einschrankung damit, dass einige der verwendeten Geratetreiber beim Zugriff auf Speicherbereiche jenseits der 4 GB Probleme bereiten wurden.
[8]
Anwendungen konnen erweiterten Speicher je nach Hardware und Betriebssystem moglicherweise uber
Address Windowing Extension
(AWE) nutzen. Je nach Windows-Version mussen eventuell zusatzliche Service Packs eingespielt werden, es existieren auch einige
inoffizielle Patches
fur 32-Bit Vista und Windows 7, die die Nutzung bis 64 GB ermoglichen.
[9]
[10]
Auf ARM gibt es ab ARMv7 die sogenannte
Large Physical Address Extension
, die einen ahnlichen Ansatz verfolgt und es ermoglicht, im 32-Bit-Modus bis zu 2
40
Bytes physischen Speicher anzusprechen.
[11]
- ↑
https://www.intel.com/content/www/us/en/content-details/782158/intel-64-and-ia-32-architectures-software-developer-s-manual-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html?wapkw=intel%2064%20and%20ia-32%20architectures%20software%20developer%27s%20manual&docid=782161%7CIntel®
64 and IA-32 Architectures Soft- ware Developer’s Manual, Volume 3A Kapitel 4.4 Seite 3114
- ↑
support.amd.com
(PDF)
- ↑
Release Notes: Haiku R1 Alpha 3
(18. Juni 2011)
- ↑
Chris Bainbridge:
[tip:x86/cpu] x86, cpu: Add forcepae parameter for booting PAE kernels on PAE-disabled Pentium M.
In:
Linux-Kernel-Mailingliste LKML.org.
20. Februar 2014,
abgerufen am 2. Januar 2024
(englisch).
- ↑
[PATCH] x86: set Pentium M as PAE capable.
(
Mailingliste
) In:
lore.kernel.org.
2014,
abgerufen am 2. Januar 2024
(englisch, gesamte Diskussion).
- ↑
David Wolski:
Xubuntu und Lubuntu mit uralten CPUs nutzen.
In:
PC-Welt
.
22. Oktober 2014,
abgerufen am 2. Januar 2024
.
- ↑
geoffchappell.com
- ↑
Mark Russinovich:
Pushing the Limits of Windows: Physical Memory.
21. Juli 2008, archiviert vom
Original
am
28. April 2010
;
abgerufen am 4. September 2013
.
- ↑
32位Vista/Win 7 4GB大?存?丁 ReadyFor4GB.
(
deutsch
:
32-Bit Vista/Win 7 ? 4 GB großer Speicher-Patch ReadyFor4GB
). 26. April 2009,
abgerufen am 17. Marz 2011
(chinesisch).
- ↑
Unawave:
Windows 7 32-bit with full 4 GB or 8 GB RAM support.
Abgerufen am 11. Juli 2010
.
- ↑
https://developer.arm.com/documentation/ddi0406/latest/DDI0406C_d_armv7ar_arm.pdf
Kapitel B.16