Das 4GB Problem

aus WB Wiki; freien Wissensdatenbank rund ums Thema Computer
Wechseln zu: Navigation, Suche
Eine Umsetzung der FAQ-Artikel erfolgt auf eigene Gefahr. Der Autor weist in seinem Artikel auf den jeweiligen Schwierigkeitsgrad und Zeitaufwand hin. Es wird ausdrücklich empfohlen, vor der Durchführung von Systemänderungen an Windows einen aktuellen Wiederherstellungspunkt anzulegen.
Siehe auch Wiki FAQ und Impressum.

Details
Bereich: Hardware
Kategorie: System
FAQ-Art: Definitionen

Zurück zur Übersicht

Hardware


Nicht zuletzt aufgrund der drastisch gesunkenen Speicherpreise werden immer mehr Rechner mit mehr als 2 GB Arbeitsspeicher ausgerüstet. Spätestens, wenn es in Richtung der 4 GB geht, taucht 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 wird unter einem 32-Bit Betriebssystem i.A. maximal 2 GB an Arbeitsspeicher zugewiesen. Unter einem 64-Bit Betriebssystem sind es i.A. maximal 4 GB.

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 4 GB.

Wie kommen aber diese 4 GB zustande? Der Arbeitsspeicher ist Byte-weise adressiert, d.h. jedes Byte Arbeitsspeicher hat eine eigene Adresse. Bei einem 32-Bit Prozessor ist der Adressbus 32-Bit breit, es können also 2^32 verschiedene Adressen angegeben werden.

Also:
2^32 = 4.294.967.276 Adressen auf je 1 Byte
/1024 = 4.194.304 KB
/1024 = 4096 MB = 4 GB
Damit sind alle "Hausnummern" vergeben.

Es werden auch die kompletten 4 GB genutzt; zur freien Verfügung stehen aber weniger.

Das ist eigentlich ganz einfach erklärt: Das BIOS reserviert unterhalb der 4 GB Grenze einen Teil des Adressraums für AGP- und PCI-Steckkarten. Außerdem noch ein wenig für andere System-I/O`s und das BIOS-ROM.

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 XP ab SP2 und Vista auch 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 PAE-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 dass Microsoft von einem stabilen Betrieb ausgehen mag. CPU, Chipsatz, Treiber und Anwendungsprogramme müssten allesamt PAE unterstützen. Außerdem müsste 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 Mainboards 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.

Siehe dazu auch den Artikel Memory Remapping.