XP 32Bit erkennt nur 2,5 von 4 GB

ruyven_macaran

Trockeneisprofi (m/w)
Moin.
Das 4GB RAM unter 32Bit nicht vollständig nutzbar sind, ist ja bekannt. Aber normalerweise habe ich da was von 0,25-0,75GB gehört, die für die Addressierung diverser Geräte draufgehen. Bei mir sind es satte 1,5GB, d.h. ich habe quasi genauo viel RAM, wie zuvor mit 2x1GB.
Jemand einen Tipp, woran das liegen kann? (und vor allem: Wie ich es ändere?)

Hardware:
Gigabyte EP45T-UD3P
(im BIOS deaktiviert: Audio, 1x LAN, Firewire. ICH10R im RAID-Modus)
9800GTX+ (512MB)
Soundblaster Audigy2ZS (Firewire in Windows deaktiviert)

Die 2x2GB G.Skill werden im POST komplett erkannt und durchlaufen memtest86+ problemlos. Muss also an der Software liegen.
 
Schau mal bitte nach ob bei dir unter msconfig ein Harcken bei "Maximaler Speicher" ist. Wenn ja dann weg damit. Das zweite was mir noch einfällt, wenn im Bios die onboard Grafik an ist, nutzt sie vieleicht den Ram als shared VRam.
 
Win Xp kann doch normalerweiße nur 3,3Gb, wenn du onboard grafik verwendest dan kommt das schon hin Windows zweigt auch noch ein paar MB ab!
MfG Chris
 
Genauso ist es bei neueren BS bekommst du dann vlt max. 3,2gb raus.
Das Problem is nur das das System nur effektiv mit geraden Zahlen arbeitet, wirst nie nen komplett PC mit ´3GB RAM finden oder einen Tripple Core.

Ich denke das windows xp deswegen nur 2gb Ram anzeigt und nutzt, bleibt dir wohl nichts anderes übrig als ein 64bit System zu installieren oder mit dem RAM zu leben
 
Also das Problem kenn ich nur zu gut soweit ich weis wird der speicher von deiner graka noch abgezogen. Und dann kannst du es dir ja so ziemlich ausrechnen. Also ich würde dir einfach empfehlen auf win 7 64bit umzusteigen funktioniert einfach besser und du hast keine Abzüge.

mfg Draimor
 
Oh je das ist nicht mein Tag, klar obern steht ganz klar XP!! Hab heut schon zum zweiten mal Misst geschrieben und immer erwischt mich @quantie dabei:ugly:, sag mal überwachst du mich?:D
 
also bei meim XP32bit erkannte es 3,25GB ;)
Haste schon mal die physikalische auslagerungsdatei (visueller arbeitsspeicher) kontrolliert und selbst eingestellt?
 
hm tests mal mit einer testversion von Win7, ansonsten mal formatieren

Ich würde es vorerst gerne vermeiden, das System neu aufzusetzen.


Schau mal bitte nach ob bei dir unter msconfig ein Harcken bei "Maximaler Speicher" ist. Wenn ja dann weg damit. Das zweite was mir noch einfällt, wenn im Bios die onboard Grafik an ist, nutzt sie vieleicht den Ram als shared VRam.

P45 hat keine IGP.


Den Kram gibts unter XP nicht, nur bei Vista/Sieben. ;)

Vergleichbaren Kram gibts auch unter XP ("maxmem" in der boot.ini), ist aber inaktiv.

MEin Tipp ist ja, dass es am Brett selbst liegt.
Hast du die 4GB mal woanders reingebaut um einen Defekt auszuschließen?
(ich hab mein ein 1GB Riegel gehabt, von dem nur 500MB erkannt wurden)

Kenn ich von meinen 440BX Systemen, wo einige Riegel oder Riegelkombinationen unvollständig erkannt werden (allerdings nie 25% eines Riegels - entweder 0, 50 oder 100%) - dann zeigt das Board das aber auch selbst an. Meine 4GB werden im POST und beim booten von CD für memtest aber vollständig erkannt, nur XP verweigert sich.
Ansonsten hab ich keine DDR3 Systeme im Haus.

Vielleicht "Memory Low Gap" im Bios verstellt?

Könnte ich mich nicht dran erinnern, aber ich werde nochmal nachgucken.
Was sollte da stehen?


Genauso ist es bei neueren BS bekommst du dann vlt max. 3,2gb raus.

3,25-3,5GB wären das, was ich erwarte hätte.

Das Problem is nur das das System nur effektiv mit geraden Zahlen arbeitet, wirst nie nen komplett PC mit ´3GB RAM finden oder einen Tripple Core.

Ich denke das windows xp deswegen nur 2gb Ram anzeigt und nutzt, bleibt dir wohl nichts anderes übrig als ein 64bit System zu installieren oder mit dem RAM zu leben

Es gibt Komplettsysteme mit Tiplecores, mit 3GB (gerade bei Notebooks gar nicht mal so selten) und Windows erkennt nicht 2GB, sondern 2,5GB, was deine auch so sehr abwegige Theorie wohl wiederlegen sollte. Jede Menge andere Leute haben mit vergleichbaren Systemen >3GB zur Verfügung.


Also das Problem kenn ich nur zu gut soweit ich weis wird der speicher von deiner graka noch abgezogen. Und dann kannst du es dir ja so ziemlich ausrechnen.

Es wird nicht einfach die Speichergröße abgezogen, sondern es wird von diversen DMA Geräten (z.B. der Grafikkarte) ein gewisser Speicherbereich beansprucht (oder könnte beansprucht werden), der eigene Adressen braucht. Afaik ist sogar nicht nur nicht 1:1 die Größe des VRAM, sondern vollkommen unabhängig davon, d.h. eine GPU mit 512 MB verursacht genauso viel Abzug, wie die gleiche GPU auf einer anderen Platine mit 2048 MB.

So oder so: Ich hab ne 512er Karte und es gibt genug Leute, die mit 1GB Karten 3+GB nutzen können. Will auch.

Kennt vielleicht jemand eine Methode, mit der man herausfinden kann, für welches Gerät wieviele Speicheradressen reserviert sind?

also bei meim XP32bit erkannte es 3,25GB ;)
Haste schon mal die physikalische auslagerungsdatei (visueller arbeitsspeicher) kontrolliert und selbst eingestellt?

virtueller Arbeitsspeicher ist deaktiviert. (hatte ihn aber auch schon mal, macht keinen Unterschied)
 
Kennt vielleicht jemand eine Methode, mit der man herausfinden kann, für welches Gerät wieviele Speicheradressen reserviert sind?

Keine Ahnung, mir ist aber mal aufgefallen, dass je mehr Slots und Controller ein Brett hat, desto mehr wird vom RAM abgezogen, also muss das immer zuerst adressiert werden.
Ein High End AMD Mainboard "verbraucht" mehr RAM als ein einfaches AMD Board.
Eine IGP "verbraucht" auch RAM, bei meinem System (Signatur) sinds 400MB, die weg sind, wenn ich ein 32bit OS installiere, obwohl die Grafikkarte ja 128MB Sideport hat (man kanns im Bios auch nicht einstellen, die 400MB sind einfach weg).

Ich wüsste jetzt nicht, was bei deinem Board so großartig was wegadressieren sollte.

Der RAM einer GPU Karte muss auch nicht adressiert werden, sondern nur der PCIe Slot und der ist immer gleich. Je mehr, desto mehr wird adressiert und desto weniger RAM hat man am Ende über.
Bei meinem diversen Boards schwank das mal um 500MB, was schon heftig ist. :ugly:

Ich würde mir mal anderen RAM besorgen oder doch mal das Bios durchforsten, obs da eine Option gibt, die du vergessen hast.
 
Es sollte glaub ich nicht aktiviert sein. Müsste ich aber selbst mal nach schauen :D

Hab jetzt ziemlich lange vergeblich nach der Option gesucht :(
Wo sollte die zu finden sein :huh:


Ich wüsste jetzt nicht, was bei deinem Board so großartig was wegadressieren sollte.

Ich wüsste vor allen Dingen nicht, was ich noch abschalten könnte. (okay - den COM-Port brauche ich die meiste Zeit und und LPT fast noch weniger, aber wenn dann will ich nicht neu booten müssen. Und irgendwie sollten Schnittstellen aus der 640k Zeit ja auch kein Gigabyte Speicheradressen fressen...)
 
Ob du den COM Kram oder den Diskettencontroller abschaltest, ist eh egal, die Hardware ist vorhanden, also muss sie auch adressiert werden, dabei spielt es keine Rolle, ob sie nutzbar ist oder nicht.

Hast du mal im Bios geguckt, ob da eine Funktion ist, die irgendwas mit Memory zu tun hat?
 
Ich hab das ganze Ding durchsucht - nichts, oder ich bin zu blöd, es als solches zu erkennen. (natürlich jede Menge zum RAM, aber Timings&Co interessieren Windows ja nicht)
 
Hab jetzt ziemlich lange vergeblich nach der Option gesucht :(
Wo sollte die zu finden sein :huh:
Also bei ist alles was mit Speicher zu tun hat beisammen, wo es bei dir ist, :ka:
full
 
Du kannst im Geräte-Manger die jeweiligen Speicherbereiche unter dem Reiter Ressourcen ansehen und umrechnen (ausgehend von Hex/Qword --> Dez und Byte --> MiByte)
Eigentlich noch besser: Ansicht --> Ressourcen nach Verbindung für eine bessere Übersicht + optische Unterteilung nach Adressbereichen

Wie du schon gesagt hast, hat VRAM nichts direkt damit zu tun. Seit Jahren wird sinnvollerweise nicht mehr komplett gemapped. Es wird daher mittlerweile weder ein Adressbereich gleicher Größe belegt, noch besteht ein Zusammenhang zwischen der VRAM-Größe und der des reservierten Adressbereichs - leider muss man fast sagen, da zumindest mir bis heute nicht bekannt ist, wie man ohne Testen gezielt eine Karte auswählen kann, bei der nur ein kleinerer Adressbereich belegt wird. "Standard" im positiven Sinne ist ein Adressfenster von 256 MiByte, weniger geht AFAIK durch technische Limitierungen seitens des XPDM nicht.

Druiden-Tipp: Such dir den PCI Express Root Port mit mehreren Einträgen raus - die anderen können vernachlässigt werden. Die Grafikkarte allein wird diese Größe nicht überschreiten, sondern immer darunter liegen (falls doch: Neu rechnen ;)).

Hier mal ein paar Beispiele (Bei den Hexwerten ist nicht die Berechnung ausgeführt, "-" steht hier für "bis", nicht "Minus"):

Asus P5W DH Deluxe (975X), 2 x 2 GiByte RAM, Geforce 8800 GS/384 MiByte, Win XP Pro x86 SP3:

PCI Express Root Port (wahrscheinlich nur 277D, (tendenziell zu vernachlässigender) Rest leider nicht notiert):
FEAFFFFF - F8AD0000 = 96 MiByte
EFEFFFFF - AFF00000 = 1024 MiByte
000BFFFFF - 000A00000 = 192 KiByte

--> ca. 1120 MiByte

Geforce 8800GS:

FDFFFFFFF - FD0000000 = 16 MiByte
DFFFFFFFF - C00000000 = 512 MiByte
FBFFFFFFF - FA0000000 = 32 MiByte
000BFFFFF - 000A00000 = 192 KiByte

--> ca. 560 MiByte

Effektiv nutzbar: ca. 2,75 GiByte RAM

---------------------------------

Asus P5W DH Deluxe (975X), 2 x 2 GiByte RAM, Geforce GTX 275/384 MiByte, Win XP Pro x86 SP3:

PCI Express Root Port:
27D0: CFE00000 - CFEFFFFF --> 1 MiBye
27D6: F8900000 - F89FFFFF --> 1 MiByte
27E0: F8800000 - F88FFFFF --> 1 MiByte
27E2: F8700000 - F87FFFFF --> 1 MiByte
277D: F8A00000 - FEAFFFFF --> 97 MiByte
CFF00000 - EFEFFFFF --> 512 MiByte
000A0000 - 000BFFFF --> 0,1 MiByte

--> ca. 613,1 MiByte

GTX 275:
FD000000 - FDFFFFFF --> 16 MiByte
D0000000 - DFFFFFFF --> 256 MiByte
FA000000 - FBFFFFFF --> 32 MiByte
000A0000 - 000BFFFF --> 0,1 MiByte

--> ca. 304 MiByte

Effektiv nutzbar ca. 3,25 GiByte RAM

---------------------------------

HM55, 2 x 2 GiByte RAM, Mobility Radeon HD 5650/1.024 MiByte, Win 7 x64:

PCI Express Root Port @ HM55:
1/3B42: F4A00000 - F5DFFFFF --> 20 MiByte
2/3B44: F3600000 - F49FFFFF --> 20 MiByte
3/3B46: F2200000 - F35FFFFF --> 20 MiByte
6/3B4C: F0200000 - F21FFFFF --> 32 MiByte

--> ca. 96 MiByte

PCI Express Root Port @ CPU:
E0000000 - F00FFFFF --> 257 MiByte
000A0000 - 000BFFFF --> 0,1 MiByte

--> ca. 257,1 MiByte

Mobility Radeon:
E0000000 - EFFFFFFF --> 256 MiByte
F0020000 - F003FFFF --> 0,1 MiByte
000A0000 - 000BFFFF --> 0,1 MiByte

--> ca. 256,2 MiByte

An den Beispielen kann man neben der Widerlegung des VRAM-Mythos folgendes sehr schön erkennen:
1. Den Hauptanteil am Adressbereich genehmigt sich die Grafikkarte, der Anteil kann sogar größer sein als die VRAM-Menge.
2. Beim HM55 reicht architekturbedingt bereits ein Blick auf den PCI Express Root Port der CPU, der sich >99 % des Speicherbereichs mit der dedizierten GPU teilt.

Ich würde dir gerne sagen, wie sich die 8800 GS samt zuständigem PCI Express Root Port in meinem P55-Testsystem diesbezüglich verhält, aber das müsste ich erstmal wieder flott kriegen, wozu mir die Zeit fehlt. Außerdem ruft ein bequemes Bett ... :schief:

Davon abgesehen: P45-Datenblatt 3. Abschnitt System Adress Map ist einen Blick wert. Top Of Low Usable DRAM (TOLUD) spielt erst unterhalb von 3,5 GiB eine Rolle, die Unterteilung erfolgt dann - meines Wissens, keine offizielle Angabe - starr in 256-MiB-Blöcken. Ausgehend von der anfangs beschriebenen XPDM-Mindestgröße kommt man also mit einer Grafikkarte mit >=256 MiByte und gängigen Intel-Chipsätzen bestenfalls auf 3,25 GiB.
 
Hi ruyven,
so schlimm ist das nicht. Ich mein, was sind in der heutigen Zeit schon 750 MiByte? ;)
Spaß beiseite. Ich schätze mal, dass dein Bios den MMIO deiner Graka schlichtweg falsch berechnet.
Der MMIO-Bedarf deiner GraKa sollte sich so gestallten:
BAR 0 (3.094GB) 0xC6000000 Alignment 0x02000000 32.000MB ( Anywhere in 32-bit space )
BAR 1 (2.500GB) 0x0000A0000000 Alignment 0x20000000 512.000MB ( Anywhere in 64-bit space, Prefetchable )
BAR 3 (3.063GB) 0x0000C4000000 Alignment 0x04000000 16.000MB ( Anywhere in 64-bit space )
mit maxAlignment auf 512MB-Grenze (Kann man mit SIV auslesen)
Für die restlichen Geräte schätze ich mal ca. 152MiByte RAM-Verbrauch.
Demnach berechnet sich der Speicher: 4096-152-560=3384 --> Alignment512 -->3072MB was ja stimmen würde.
Bei Dir macht das Bios aber folgendes: 4096-152-560=3384 --> Alignment512 -->3072MB --> Alignment512 -->2560MB was nicht stimmen kann.
Es wird zweimal ein Alignment von 512MiByte für die Graka zur verfügung gestellt, obwohl es nur einmal nötig ist. Und genau da liegt der Hund begraben.
Um das ganze noch kurrioser zu gestallten: Dieses Phänomen trifft nicht auf alle Grakas zu. Scheinbar liegt es am Informationsausch zwischen GraKa und MB-Bios.
Tipp: versuch mal eine andere Graka, bzw. mach bei Deiner GraKa ein Biosupdate. Bei einigen Usern hats geholfen.

mfg
ThoR65
 
Zurück