Nicht zuletzt aufgrund der drastisch gesunkenen Speicherpreise werden immer mehr Rechner mit mehr als 2 GB, oder gar noch mehr, Arbeitsspeicher ausgerüstet. Spätestens wenn es in Richtung der 4 GB geht, taucht dann eben immer wieder die Frage auf, warum die 4 GB nicht komplett angezeigt, bzw. genutzt werden.
Grundsätzlich muss man hier schon einmal zwischen einem 32-Bit und einem 64-Bit Betriebssystem unterscheiden. Außerdem muss man noch zwischen Anwendungen und Betriebssystem unterscheiden. Einer einzelnen Anwendung kann unter einem 32-Bit Betriebssystem maximal 2 GB an Arbeitsspeicher zugewiesen werden. Die restlichen 2 GB sind für den Betriebssystem-Kernel reserviert. Unter einem 64-Bit Betriebssystem sind es maximal 4 GB für eine einzelne Anwendung. Viel entscheidender ist jedoch die Tatsache, wie viel Arbeitsspeicher das Betriebssystem überhaupt verwalten kann, und da sind es bei einem 32-Bit Betriebssystem eben die ominösen 4GB.
Wie kommen aber diese 4 GB zustande?
Jede Speicherzelle im Arbeitsspeicher kann zwei Zustände annehmen. Nämlich 0 und 1. Bei einem 32-Bit Prozessor ist der Adressbus 32-Bit breit, es können also 32-Bit adressiert werden, die eben die Zustände 0 und 1 annehmen können.
Also:
2^32 Bit = 4294967276 Bit
/1024 = 4194304 KB
/1024 = 4096 MB
Es werden auch die kompletten 4 GB genutzt, zur freien Verfügung stehen aber weniger.
Klingt verwirrend, ist aber eigentlich ganz einfach erklärt. Das BIOS reserviert unterhalb der 4 GB Grenze einen Teil des Adressraums für die verschiedene System Hardware (BIOS incl. ACPI und Legacy Video Support, PCI Bus und PCI Express Unterstützung).
Ganz konkret fällt so unter anderem also erst einmal ein Adressbereich weg, der genau so groß ist wie der Arbeitsspeicher der Grafikkarte. Man spricht hier auch von GART (Graphics Address Remapping Table). Bei einer Grafikkarte mit 512 MB Arbeitsspeicher stehen von den 4 GB adressierbarem RAM also gleich einmal nur noch 3,5 GB zur Verfügung. Davon fällt dann auch noch die “AGP Aperture Size” weg. Dabei handelt es sich um einen vom BIOS reservierten Adressbereich, über den die Grafikkarte via AGP auf zusätzlichen Hauptspeicher zugreift, um z.B. Texturen der Grafikkarte auszulagern. Bei einer AGP Aperture Size von 256 MB und den 512 MB der Grafikkarte stehen dann also nur noch 3,25 GB zur freien Verfügung. Davon können dann noch ein paar Bytes für andere System-I/O`s wegfallen.
Interessant ist, dass alle x86-Prozessoren, welche die No-Execute-(NX-) Markierung von Speicherbereichen unterstützen eigentlich dafür sorgen, dass Windows ab XP SP2 in den 32-Bit Varianten mehr als 4 GB adressieren könnten. Sobald ein Prozessor eingesetzt wird, der die NX-Markierung von Speicherbereichen unterstützt, aktiviert Windows das PEA-Adressierungsschema. Im Betriebssystem erkennt man dies, wenn in der Systemsteuerung unter SYSTEM ein Hinweis aus “Physikalische Adresserweiterung” zu finden ist.
Windows benutzt dieses Feature allerdings leider nicht zu seinem ursprünglichen Zweck um mehr als 2^32-Byte RAM anzusprechen. Windows verwendet das PAE-Adressierungsverfahren ausschließlich um damit Adressblöcke als NX-Bereiche zu markieren. Die Funktion mit dem Namen “Datenausführungsverhinderung” (Data Execution Prevention, DEP) sorgt dafür, dass der Prozessor keine Daten ausführt, die er aus der NX-geschützten Speicherbereichen lädt.
Aus Kompatibilitätsgründen hat Microsoft den maximal adressierbaren Arbeitsspeicher aber trotz allem auf 3,12 GB begrenzt. Details hierzu unter DIESEM LINK. PAE ist auf zu viele Faktoren angewiesen, die erfüllt sein müssen, als das Microsoft von einem stabilen Betrieb ausgehen mag. CPU, Chipsatz, Treiber und Anwendungsprogramme müssten allesamt PAE unterstützen. Außerdem müssten das Mainboard BIOS per Memory Remapping die von AGP-, PCI- oder PCI-Express blockierten Adressen des Hauptspeichers in den Bereich oberhalb von 2^32 verschieben. Viele ältere Mainboard unterstützen dieses Remapping allerdings nicht.
Bei einem 64-Bit Betriebssystem können rechnerisch 2^64 Bit adressiert werden, also 16 EB (Exabyte). In der Praxis kann Vista in der 64-Bit Version aufgrund anderer Limitationen maximal 128 GB adressieren.
Ganz interessant ist übrigens, dass Windows 7 und auch Windows 8 zumindest theoretisch die kompletten 4 GB RAM verwalten könnte, Microsoft dies aber nach wie vor unterbindet. Begründet wird dies mit der Tatsache, dass nach wie vor nicht alle Hardware Hersteller dafür sorgen, dass ihre Hardware mit RAM Größten von 4 GB und mehr zurechtkommt.