Schon wieder zu wenig RAM

Meinen PC, der unter Windows Vista Ultimate x64 Edition läuft, habe ich (mit vier 2-GByte-DIMMs) auf 8 GByte RAM aufgerüstet. Windows erkennt davon anscheinend bloß 7,2 GByte, meldet aber an anderer Stelle volle 8 GByte – welcher Angabe kann ich vertrauen? Und wie kann ich den kompletten Hauptspeicher auch nutzen?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 4 Min.

Meinen PC, der unter Windows Vista Ultimate x64 Edition läuft, habe ich (mit vier 2-GByte-DIMMs) auf 8 GByte RAM aufgerüstet. Windows erkennt davon anscheinend bloß 7,2 GByte, meldet aber an anderer Stelle volle 8 GByte – welcher Angabe kann ich vertrauen? Und wie kann ich den kompletten Hauptspeicher auch nutzen?

Bei Ihrem PC schlägt dasselbe Problem zu wie bei Rechnern mit 32-Bit-Windows, die mit 4 GByte physischem RAM bestückt sind: Weil die I/O-Adressbereiche von PCI-Geräten und anderen Komponenten einen Teil der Speicheradressen quasi „überlagern“, kann Windows nicht den vollen Hauptspeicher nutzen.

Die Kommunikation zwischen dem Prozessor und sämtlichen anderen Hardware-Komponenten eines PC, die das System fast alle nach dem Muster von PCI-Geräten verwaltet, erfolgt über Ein-/Ausgabe-(I/O-)Adressbereiche, die unterhalb der 32-Bit-Grenze von 232 Byte (4 GByte) liegen müssen. Je mehr Komponenten im PC stecken und je größer der lokale Speicher der Grafikkarte(n) ist, desto größer wird auch der Bedarf an I/O-Adressen. Je nach Ausstattung des Rechners und Geschick der BIOS-Programmierer ist ein Adressbereich blockiert, der 0,5 bis 1,2 GByte RAM entspricht.

Mit Hilfe eines Tricks namens Memory Remapping (in manchem BIOS-Setup auch Memory Hoisting oder Reclaim genannt) verlagert das BIOS diesen Adressbereich des physischen RAM in eine Region jenseits der höchsten Adresse des tatsächlich eingebauten Speichers. Bei 4 GByte physischem RAM wäre das der Bereich oberhalb der Adresse 232; sind aber 8 GByte RAM eingebaut, dann müssen die „umgeblendeten“ Adressen jenseits von 233 liegen.

Wenn das BIOS oder der Speichercontroller in ihrem PC – er kann im Prozessor oder im Chipsatz eingebaut sein – höchstens bis zur RAM-Adresse 233, entsprechend 8 GByte, zählen können, dann funktioniert Memory Remapping nicht. Es tritt also dasselbe Problem auf wie bei der 232-Byte-Grenze – selbst dann, wenn das BIOS-Setup die Remapping-Option kennt. Anscheinend ist beispielsweise der Intel-Chipsatz 975X betroffen; jüngere Chipsätze wie der Intel P45 verkraften bis zu 16 GByte RAM.

Die Systeminformationen (msinfo32.exe) zeigen den Hauptspeicher recht zuverlässig an. In diesem Beispiel fehlen 256 MByte, die die Onboard-Grafik nutzt.

Windows Vista erschwert die Diagnose dieses Phänomens, weil das System an unterschiedlichen Stellen verschiedene Werte für die Kapazität des eingebauten Hauptspeichers ausgibt. Seit Service Pack 1 meldet Vista unter Systemsteuerung/System und Wartung/System jeweils, wie viel Kapazität die eingesteckten Speicherriegel insgesamt bereitstellen – in ihrem Beispiel also volle 8192 MByte oder eben 8 GByte. Laut Microsoft-Supportdatenbank (Artikel Nr. 935268) soll das Windows-Programm Systeminformationen (auch unter Vista x64 lustigerweise msinfo32.exe genannt) die sicherste Anzeige liefern, nämlich den Wert „Gesamter realer Speicher“ (Total Physical Memory). Der Wert „Installierter physikalischer Speicher (RAM)“ (Installed Physical Memory) entspricht dem, was auch Systemsteuerung/System und Wartung/System liefern.

Leider erklärt der Artikel 950233 aus der Microsoft-Datenbank wiederum, dass msinfo32.exe bei Systemen mit mehr als 4 GByte RAM seinem Namen alle Ehre macht und falsch rechnet; mit dem Service Pack 2 für Vista wurde dieses Problem gelöst. Nach unseren Erfahrungen zeigt der Task-Manager (taskmgr.exe) auf dem Reiter Leistung im Feld „Physikalischer Speicher (MB)“ unter „Insgesamt“ den tatsächlich unter Windows nutzbaren Hautspeicher recht zuverlässig an. Dass dort manchmal 2 MByte fehlen (8190 statt 8192 MByte), liegt laut dem Support-Artikel 935268 an der Art, wie der Task-Manager rundet. (ciw)