hommels
Goto Top

Speicher nicht in voller Höhe erkannt

Erst mal Hallo Zusammen. Möchte die Gelegenheit nutzen mich an dieser Stelle auch mal für die vielen Hilfestellungen zu bedanken, die ich hier im Forum schon gefunden habe. Bin schon dazu übergegangen bei der Google Suche direkt administrator.de mit einzugeben - jedenfalls bei Problemen die im PC Bereich angesiedelt sind. face-wink

Nun zu meinem Problem. Ich habe für einen Kunden eine Workstation aufgebaut, nachdem der Verkauf einer Workstation eines hier nicht näher genannten Herstellers wirklich katastrophal geendet ist. Folgende Komponenten habe ich verbaut:
- Board GIGABYTE GA-EP45-DS5 P45
- Quad Core Q9650
- 4 GB Kingston Speicher, aus der Kompatibilitätsliste beim Hersteller ausgesucht, und haargenau den Speicher auch verbaut. (Kingston HyperX 4GB Kit DDR2 PC2-6400 (KHX6400D2LLK2/4G) CL4) - ich weiß, es ist nicht der schnellste Speicher den man auf dem Board verbauen könnte, aber aufgrund der Vorgeschichte sollte das Gerät in erster Linie sehr stabil und zuverlässig laufen
- 2x WD 150GB Velociraptor im RAID 0 Verbund, Promise 4650 Controller

Nun wird unter Windows XP Professional 32-bit (SP3) nicht der volle Speicher erkannt, beim Booten zählt der Speicher komplett die vorhandenen 4GB hoch, unter Windows werden aber nur 2,5GB angezeigt. Klar, XP 32-bit könnte eh nur 3,25GB erkennen und nutzen, aber wo sind die restlichen 0,75GB verblieben? Im Bios habe ich keinerlei Änderungen vorgenommen. Ein 64-bit OS kam aufgrund der eingesetzten CAD/CAM Software nicht in Frage, bzw. wollte der Kunde nicht. Hat irgendjemand eine Ahnung wie so etwas bei einer ganz normalen Windows Installation passieren kann?

Diesen Beitrag habe ich schon gefunden, hilft mir aber nicht wirklich weiter:

Statt 4 GB werden nur 1,75 erkannt

Hatte dann die Vermutung, das die zusätzlichen Karten (1x Grafikkarte nvidia Quadro, 1x Promise Controller, 1x Erweiterungskarte Parallel Port) sich je 256MB reservieren, und habe mit beginnender Verzweiflung einen zweiten 4GB Kit dazu gesteckt - mit dem gleichen Ergebnis. Windows erkennt egal wie nur 2,5GB. An einem baugleichen Board, ebenfalls keine BIOS Veränderungen, erkennt Windows sofort den maximalen Speicher, also 3,25GB. Am Board kann es aber meiner Meinung nach nicht liegen, weil der Speicher beim Booten ja korrekt erkannt wird. Hoffe Ihr könnt mir weiterhelfen, bin mit meinem Latein am Ende und habe sowas auch noch nie gesehen.

Viele Grüße, Hommels

Content-ID: 121120

Url: https://administrator.de/contentid/121120

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

BCCray
BCCray 23.07.2009 um 10:46:07 Uhr
Goto Top
Moin Hommels,

Grundsätzlich gilt:
Ein 32 Bit Betriebssystem kann theoretisch maximal 2^32 Speicheradressen á 8 bit - also genau 4 Gibibyte Ram adressieren.
(2^32 Speicheradressen á 8 bit = 4.294.967.296 Bit = 4 GiB)
Ein 64 Bit Betriebssystem kann theoretisch maximal 2^64 Speicheradressen á 8 bit - also genau 16 Exbibyte Ram adressieren.
(2^64 Speicheradressen á 8 bit = 1.84467441 × 10^19 Bit = 16 EiB)

Info:
1 Gibibyte = 1024 Mebibyte = 1.048.576 Kibibyte = 1.073.741.824 Byte
1 Gigabyte = 1000 Megabyte = 1.000.000 Kilobyte = 1.000.000.000 Byte

32 Bit - Von der Theorie in die Praxis:
Jeder der mit seinem normalen Windows 32 Bit System ohne PAE versucht hat, volle 4 Gigabyte Ram zu nutzen, wird gescheitert sein. Die 32 Bit Architektur ist nämlich eigentlich nicht für 4 Gigabyte Ram ausgelegt. I/O Komponenten wie z.B. Grafikkarten, Soundkarten und auch Controller müssen nämlich ebenfalls adressiert werden.
Also wichtig: Diese reservierten Bereiche werden von den maximal möglichen 4 GB Adressraum subtrahiert und stehen nun nicht mehr für den Arbeitsspeicher zu Verfügung.Einen genauen Wert kann man pauschal nicht sagen, je nach Hardwarekomponenten kann dieser aber einige hundert Megabyte betragen.

Spezialfall Windows Vista 32Bit:
Windows Vista 32 Bit kann maximal rund 3,1 Gigabyte Ram nutzen. Egal ob theoretisch 3,3 Gigabyte nach Abzug der I/O Komponenten noch verfügbar sind. Microsoft hat eine Beschränkung der Ramkapazität eingebaut. Grund: Hardware-Hersteller würden, so Microsoft, nicht immer dafür sorgen, dass ihre Produkte mit RAM-Größen von 4 Gigabyte und mehr zurechtkommen. Diese Beschränkung ist unumgänglich.
Update: Seit Service Pack 1 werden nun die vorhandenen 4 Gigabyte Arbeitsspeicher korrekt angezeigt. Beachten sollte man jedoch, dass weiterhin nur die o.g. Werte genutzt werden.The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed

Ich habe ein 64Bit Betriebssystem aber mir werden weniger als 4 Gigabyte Ram angezeigt.
Das Zauberwort heißt hier "memory remapping". Insofern Mainboard und Betriebssystem diese Funktion / dieses Feature unterstützen, kann der verlorengegangene Bereich wieder genutzt werden indem der Speicher virtuell angehangen wird. Aktiviert wird diese Option im Bios des jeweiligen Mainboards.

Was bedeutet eigentlich 32 Bit und 64 Bit in der Theorie?
Vereinfacht dargestellt bedeutet 64-Bit, dass ein Prozessor mit einem Takt 64 Bit (=8 Byte) verarbeiten kann. Ein 32 Bit Prozessor kann demnach mit einem Takt nicht mehr als 32 Bit (=4 Byte) verarbeiten. Zu den Vorteilen einer 64-Bit Architektur gehören die direkte Adressierung von mehr als 4 Gigabyte Arbeitsspeicher und die beschleunigte Arithmetik (Rechnen / Arbeiten) mit großen Zahlen. Nachteile sind ein erhöhter Speicherbedarf der meisten Programme, sowie die erhöhten Produktionskosten und somit Endkundenpreise.
Eine ausführliche Liste, welches Programm Vista - 64Bit unterstützt findest du hier: Windows Vista x32 | x64 kompatibilitätsliste

Speichererweiterung > 4 Gigabyte bei Server-PCs
Unterstützt das Betriebssystem Physical Address Extension (PAE) oder auch Address Windowing Extension (AWE) genannt und verfügt der Prozessor über einen größeren Adressbus als 32 Bit kann das Betriebssystem mehr Arbeitsspeicher ansprechen als ein 32 Bit Betriebssystem üblicher Weise vorsieht. Nötig ist das besonders bei Servern. PAE muss jedoch von der Anwendung unterstützt werden, damit es funktioniert. In der Praxis ist es außerdem äußerst langsam, wodurch eine Nutzung im Vornherein gut überlegt sein sollte.

Eine Liste der unterstützten Betriebssysteme von MS:

Grundlegend: mehr als 4 GB -> 64Bit Betriebssystem......


weitere nützliche Links zu diesem Thema:
Vista: Warum 4 GB RAM nicht voll unterstützt werden
4 GB RAM mit Windows Vista
Physical Address Extension - PAE Memory and Windows
Who ate my Memory (Englisch)
OdamN81
OdamN81 23.07.2009 um 11:03:14 Uhr
Goto Top
Ich weis ja nicht wie hoch dein Patchlvl ist, ansich ist es seit SP2 nicht mehr notwendig... aber mir hats auch schonmal geholfen...

PAE clip aktivieren....

Boot.ini editieren mit :

multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microso ft Windows XP Professional" /noexecute=optin /fastdetect /PAE /3GB /USERVA=2990
Hommels
Hommels 31.07.2009 um 09:27:16 Uhr
Goto Top
Hallo zusammen, und vielen Dank schon mal für die Hilfe und Hinweise.
War gerade vorhin noch mal beim Kunden, habe die boot.ini editiert wie oben angegeben - ohne Erfolg und nach wie vor 2,50GB RAM.

Der Patchlevel auf der Maschine ist SP3 mit allen aktuellen Updates.

Habe jetzt mal ein komplettes Image des Systems vom Kunden erhalten, werde das mal auf einem baugleichen Board wiederherstellen und mal weiter schauen. Falls irgendjemand noch eine Idee hat, wäre ich für Hinweise sehr dankbar!!
Hommels
Hommels 11.11.2009 um 09:05:39 Uhr
Goto Top
Möchte das Problem hier gerne noch mal auftauen, habe im Netz immer noch nichts weiter dazu gefunden, habe aber inzwischen die Ursache mehr oder weniger herausgefunden.

Der oben beschriebene PC zeigt das Verhalten mit den 2,50GB RAM nur wenn die ursprünglich verbaute Quadro FX1700 verbaut ist, stecke ich eine Quadro FX3700 rein, dann erkennt XP sofort und ohne jegliche Änderung die 3,25GB.

Jetzt könnte man ja sagen, Grafikkarte raus, die is schuld. So einfach ist es nur leider nicht, weil die FX1700 dieses Verhalten an der oben erwähnten Workstation des PC Herstellers den ich immer noch nicht nennen möchte ( face-wink ) nicht gezeigt hat. Leider weiß ich nicht mehr welches Board in dieser WS verbaut war, ziemlich sicher ein Asus, was mir aber jetzt auch nicht mehr weiterhilft. Der Kunde fragt jetzt natürlich warum seine FX1700 dem vermeintlich besseren Board plötzlich Arbeitsspeicher klaut..

Habe natürlich das BIOS durchforstet, aber leider keinerlei Hinweise oder Punke gefunden um die Zuweisung von RAM zu reglementieren. Hat da irgendjemand eine Idee zu??

Danke im Voraus!
BCCray
BCCray 11.11.2009 um 10:05:03 Uhr
Goto Top
Hallo Hommels,

wie bereits beschrieben:

Die 32 Bit Architektur ist nämlich eigentlich nicht für 4 Gigabyte Ram ausgelegt.
I/O Komponenten wie z.B. Grafikkarten, Soundkarten und auch Controller müssen nämlich ebenfalls adressiert werden.
Also wichtig: Diese reservierten Bereiche werden von den maximal möglichen 4 GB Adressraum subtrahiert und stehen nun nicht mehr für den Arbeitsspeicher zu Verfügung.
Einen genauen Wert kann man pauschal nicht sagen, je nach Hardwarekomponenten kann dieser aber einige hundert Megabyte betragen.

Ohne 64bit Betriebssystem hast du hier keine Chance - No Way!
Das hat auch nichts mit dem vermeintlich besseren Board zu tun, das ist eine reine Addressierungssache des Speichers.
Hommels
Hommels 11.11.2009 um 10:14:56 Uhr
Goto Top
Aber mit der Quadro FX3700 funktioniert es doch, bitte meinen letzten Beitrag noch mal lesen. Es geht mir nicht um die Differenz zwischen 3,25 (womit der Kunde ja zufrieden wäre) zu 4,0GB, das Problem hat sich ja quasi auf das abziehen von Arbeitsspeicher durch die Grafikkarte "reduziert".

Also die Quadro FX1700 reduziert den RAM auf 2,50, eine Quadro FX3700 macht das nicht, damit hat man den "vollen" RAM von 3,25GB. Warum?
BCCray
BCCray 11.11.2009 um 10:21:40 Uhr
Goto Top
Nochmal in der Kurzfassung.... Ich hab deinen Beitrag genau gelesen, deshalb bitte ich dich auch meinen Beitrag genau zu lesen

I/O Komponenten wie z.B. Grafikkarten, Soundkarten und auch Controller müssen nämlich ebenfalls adressiert werden.
Also wichtig: Diese reservierten Bereiche werden von den maximal möglichen 4 GB Adressraum subtrahiert und stehen nun nicht mehr für den Arbeitsspeicher zu Verfügung.
Einen genauen Wert kann man pauschal nicht sagen, je nach Hardwarekomponenten kann dieser aber einige hundert Megabyte betragen.

Damit man ein bit in den arbeitsspeicher schreiben kann, braucht man die Adresse im Speicher (kannst ja auch kein brief zustellen lassen, wenn du keine Adresse angibst). Diese Adresse wird als Zahl angegeben. Eine solche Speicheradresse belegt 4 Byte Speicherplatz (32 Bit).
Mit 32 Bit kann man jetzt 2 hoch 32 verschiedene Zahlen darstellen = 4.294.967.296
Man kann also 4.294.967.296 Byte Addressieren. Das sind 4.194.304 KB, sind 4096 MB, sind 4GB.
Allerdings stehen trotzdem nicht die vollen 4GB zur Verfügung , da die Grafikkarte, die Treiber, das Bios, Kernel und andere installierte Geräte ihren Anteil brauchen

Andere Grafikkarte, andere Reservierung, weniger bzw. mehr Speicher.....


oder in der Langfassung:

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.
[Quelle: http://wiki.winboard.org]