Windows XP 32 Bit Grafikspeicher u. Hauptspeicher
-
Hallo,
Ich habe das so verstanden, das Windows XP 32 bit nur 4 Gigabyte insgesamt adressieren kann, egal ob Hauptspeicher oder Grafikkartenspeicher.
Ich hatte bis vor kurzem eine Grafikkarte mit 512 MB ram, und im Taskmanager wurden mir knapp 3,5 GB Ram angezeigt. (4 GB - 512 MB Grafikspeicher)
Was mir auch logisch erscheint.Seit kurzem habe ich allerdings eine Grafikkarte mit 1024 MB Speicher, und trotzem werden mir im Taskanager immer noch die knappen 3,5 GB angezeigt.
Müssten das denn nicht jetzt nur noch 3 GB sein? Bzw. nutzt meine Grafikkarte bis jetzt nur die Hälfte ihres Speichers? Oder wie muss ich das verstehen?Wär schön, wenn jemand mich da genau aufklären würde!
-
Der Hauptspeicher und der Speicher der Grafikkarte hängen in der Regel nicht zusammen.
Das passiert bestenfalls bei onboard GPUs.Mit der Speicherverteilung des OS hat das allerdings nichts zu tun.
Das OS reserviert nämlich von den 4 GB selbst Speicher und ein Prozess muss sich dann mit dem Rest zufrieden geben.
-
Windows XP 32 Bit verwendet nur Hauptspeicher mit physikalischen Adressen <= 4 GB. Technischen Grund dafür gibt es eigentlich keinen, MS hat sich einfach entscheiden es so zu machen.
Windows Server 2003 Enterprise Edition (32 Bit!) unterstützt z.B. bis zu 64 GB. Ein Prozess kann natürlich auch da nicht mehr als 2 GB (bzw. 3 GB mit dem 3G Switch) direkt nutzen. Dafür kann man aber viele Prozesse gleichzeitig laufen lassen, die dann jeweils 2 GB nutzen können, ohne dass das System zu swappen anfangen muss. Oder der Prozess kann mehr Speicher über PAE ansprechen. Oder sich freuen dass das OS viel mehr RAM für den Cache zur Verfügung hat.
Aber zurück zu Windows XP.
Einschränkung wie gesagt auf Hauptspeicher mit Adressen <= 4 GB. D.h selbst wenn die Maschine 4 GB hat, wird Windows XP niemals die 4 GB nutzen. Und zwar weil bestimmte Bereiche des Adressraums unterhalb von 4 GB immer dafür verwendet werden mit der Hardware zu kommunizieren. Das können einfach diverse Register von Geräten sein die in den Speicher eingeblendet werden, oder im Fall von Grafikkarten eben ein "Fenster" zum Grafikkartenspeicher das eingeblendet wird.
Wie gross dieses "Fenster" ist entscheidet die Grafikkarte.
Manche Karten verwenden mehr, andere weniger. Hat aber nicht unbedingt mit der Speichergrösse der Karte zu tun. Der Treiber kann nämlich "verschieben" welchen Bereich des Grafikkartenspeichers das "Fenster" sieht, und so auch über ein kleines "Fenster" den gesamten Speicher ansprechen.
-
Ah, ok danke. Dann war ich ja total auf dem Holzweg.
Aber jetzt habe ich es kapiert.
-
Nochmal zur Sicherheit:
wenn ich dxdiag aufrufe, wird mir angezeigt das ich 3328 MB Ram hätte (von eigentlich 4 GB).
Also genehmigt sich Windows pauschal mal eben knapp 700 MB?
Find ich merkwürdig, als ich noch 2 GB hatte, hat sich Windows nicht soviel genommen...Kann man eigentlich irgendwie feststellen wieviel Speicher die Grafikkarte benutzt? Weil merkwürdigerweise The Witcher 2 abstürzt wenn ich das Texturbudget auf 700 MB einstelle, was ja eigentlich gehen müsste mit 1GB Grafikspeicher...
Diese Begrenzung auf 4 GB erinnert mich irgendwie an die DOS-Zeiten als sich Microsoft nicht vorstellen konnte das man jemals mehr als 640 KB brauchen könnte.
Nervig!
-
fragelein schrieb:
wenn ich dxdiag aufrufe, wird mir angezeigt das ich 3328 MB Ram hätte (von eigentlich 4 GB).
Also genehmigt sich Windows pauschal mal eben knapp 700 MB?Nein, das hast du falsch verstanden. Die 700MB sieht einfach niemand, die verwendet Windows auch gar nicht.
Find ich merkwürdig, als ich noch 2 GB hatte, hat sich Windows nicht soviel genommen...
Die 2GB waren ja auch vollstaendig adressierbar. Und: Windows verbraucht jetzt auch nicht mehr Speicher als vorher, es kann einfach ~700MB nicht nutzen.
edit: Wenn du dir einfach ein 64-bittiges Windows holst -- optimalerweise Windows 7 oder 8 -- kannst du deine 4GB auch vollstaendig nutzen.
-
fragelein schrieb:
Diese Begrenzung auf 4 GB erinnert mich irgendwie an die DOS-Zeiten als sich Microsoft nicht vorstellen konnte das man jemals mehr als 640 KB brauchen könnte.
Nervig!In beiden Fällen ist das keine Entscheidung von Microsoft, sondern hardwaregegebene Schranken, für deren Umgehung man viel Aufwand betreiben muss.
-
Naja, PAE hatten sie ja durchaus schon, siehe auch hustbaers Post. Nicht, dass das das Gelbe vom Ei waere, aber laufen wuerde es prinzipiell schon auch.
Aber dass sie es bei WinXP nicht dazuzugepackt haben, war trotzdem praktisch, sonst muessten wir vmtl. noch die naechsten zweihundert Jahre mit 32-bittigen Betriebssystemen herumhantieren.
-
SeppJ schrieb:
fragelein schrieb:
Diese Begrenzung auf 4 GB erinnert mich irgendwie an die DOS-Zeiten als sich Microsoft nicht vorstellen konnte das man jemals mehr als 640 KB brauchen könnte.
Nervig!In beiden Fällen ist das keine Entscheidung von Microsoft, sondern hardwaregegebene Schranken, für deren Umgehung man viel Aufwand betreiben muss.
Im Fall von Windows XP ist das ziemlich sicher nur eine strategische Entscheidung von MS. Die wollen einfach dicke, teure Server Lizenzen verkaufen.
Sogar die teureren Windows 2000 Server Versionen konnten schon 8 bzw. 64 GB adressieren, ich sehe also keinen Grund warum es für MS schwierig gewesen sein sollte dass Windows XP das auch kann. Sie wollten nur einfach nicht.Hier noch ein interessanter Artikel zu dem Thema:
http://www.geoffchappell.com/notes/windows/license/memory.htmIn dem Artikel geht es zwar um Vista - interessant dabei ist aber hauptsächlich der Punkt, dass es lediglich um ein "if not licensed for > 4 GB" im Kernel geht, und nicht um irgendwelche technischen Schwierigkeiten.
Dass dabei im Fall von XP/Vista nicht die Grösse des Arbeitsspeichers limitiert wird, sondern die höchste physikalische Adresse limitiert wird die genutzt werden darf, ist bloss eine schlaue Verschleierungstaktik. Die es für Leute die sich nicht näher damit beschäftigt haben so aussehen lässt als gäbe es hier ein (ungelöstes) technisches Problem.
Und die Taktik ist auch super aufgegangen, man liest ja andauernd irgendwo im Netz dass man mit nem 32 Bit OS nur 4 GB Speicher nutzen kann.
-
@nman
Die PAE Funktionen funktionieren unter XP wunderbar (/PAE Switch vorausgesetzt). Sie weigern sich nur genau so Speicher mit Adressen > 4 GB zu verwenden, und sind damit natürlich ziemlich witzlos.
-
Ich finde den Artikel abgefahren, nicht wegen des Inhalts, sondern dass der Inhalt über so viele Seiten verschmiert wird und dann ewig und drei Tage darüber philosophiert wird, warum dem wohl so sein könnte. Hätte doch gereicht zu sagen, dass der Kernel PAE unterstützt und aktiv physikalische Addressen über 4GB ignoriert. Mag man mögen oder nicht, die Fakten stehen ja klar da. Der Rest liest sich wie ein typischer Verschwörungstheoretiker-Artikel.
-
Ich finde den Artikel interessant, weil er etwas richtigstellt was immer und immer wieder an verschiedensten Stellen falsch behauptet wird. So oft, dass diese Fauschaussage schon als Allgemeinwissen gilt. Frag den durchschnittlichen PC-Nerd warum ein 32 Bit Windows nicht mehr als 4 GB RAM verwenden kann, und er wird dir sagen dass mit 32 Bit halt einfach nicht mehr geht.
Das dürfte wohl auch der Grund sein warum der Artikel etwas länger ausgefallen ist, und warum er etwas nach Alufolienhut riecht. Macht halt keinen grossen Eindruck wenn jemand auf ner viertel bis halben Bildschirmseite schreibt "ne Leute, das stimmt so nicht, in Wirklichkeit ginge mehr". Je länger der Artikel ist, und je "fundierter" er wirkt, desto eher die Chance dass ihn jemand ernst nimmt. Denke ich mal.
-
hustbaer schrieb:
Die PAE Funktionen funktionieren unter XP wunderbar (/PAE Switch vorausgesetzt). Sie weigern sich nur genau so Speicher mit Adressen > 4 GB zu verwenden, und sind damit natürlich ziemlich witzlos.
Interessant, das war mir neu. Aber wie gesagt: Die Entscheidung hat durchaus ihre positiven Seiten.