Ich habe kürzlich den Arbeitsspeicher meines Computers auf 4 GB aktualisiert. Meine 32-Bit-Windows-Installation zeigt nur 3574 MB des Speichers. Wie kann ich dafür sorgen, dass Windows den gesamten Arbeitsspeicher nutzt?
Ich habe kürzlich den Arbeitsspeicher meines Computers auf 4 GB aktualisiert. Meine 32-Bit-Windows-Installation zeigt nur 3574 MB des Speichers. Wie kann ich dafür sorgen, dass Windows den gesamten Arbeitsspeicher nutzt?
Antworten:
Sie können nicht:
Siehe Alter, wo sind meine 4 Gigabyte RAM?
Wenn Sie Speicher und Geräte in einen 32-Bit-Adressbereich einpassen möchten: Nicht alle verfügbaren 4 GB Adressraum können an den Speicher übergeben werden.
Was passiert eigentlich, wenn Sie 4 GB Speicher für Ihren PC kaufen?
In Ihrer Memory Map befindet sich eine Lücke für das IO. (Jetzt sind es nur 25% des gesamten Adressraums, aber es ist immer noch eine große Lücke.) Die unteren 3 GB Ihres Speichers sind verfügbar, aber es gibt ein Problem mit diesen letzten 1 GB.
Die einzige praktikable Lösung ist die Installation eines 64-Bit-Betriebssystems. In Windows Vista und höher sind 32-Bit- und 64-Bit-Lizenzschlüssel austauschbar. Wenn Sie Windows-Installationsmedien für die 64-Bit-Version Ihres Betriebssystems erhalten, können Sie sie mit Ihrem ursprünglichen Lizenzschlüssel erneut installieren.
Erstens unterstützt Windows XP (32 Bit) nur 4 GB. Das gilt nicht nur für Windows XP. Stattdessen gilt dies für 32-Bit-Desktop-Windows - 32-Bit-Linux-Systeme mit PAE und viele 32-Bit-Windows Server-Editionen unterstützen mehr als 4 GB pro verlinktem Artikel. Sie werden nie mehr als 4 GB sehen, wenn Sie ein 32-Bit-Windows XP verwenden. Ich habe jedoch einen genaueren Grund gefunden, warum Ihr System weniger verfügbaren Arbeitsspeicher anzeigt als das, was tatsächlich installiert ist.
Vom 3-GB-nicht-4-GB-RAM-Problem (Microsoft MSDN-Blog):
Aufgrund einer architektonischen Entscheidung, die vor langer Zeit getroffen wurde, kann Windows bei installiertem 4 GB physischem RAM nur einen Teil des physischen 4 GB RAM melden (zwischen ~ 2,75 GB und 3,5 GB, abhängig von den installierten Geräten, dem Motherboard-Chipsatz & BIOS).
Dieses Verhalten ist auf "speicherabgebildete E / A-Reservierungen" zurückzuführen. Diese Reservierungen überlagern den physischen Adressraum und maskieren diese physischen Adressen, sodass sie nicht für den Arbeitsspeicher verwendet werden können. Dies ist unabhängig vom Betriebssystem, das auf dem Computer ausgeführt wird.
Bedeutende Teile des Adressraums unter 4 GB (die höchste Adresse, auf die über 32-Bit zugegriffen werden kann) werden für die Verwendung durch die Systemhardware reserviert:
- BIOS - einschließlich ACPI- und Legacy-Video-Unterstützung
- PCI Bus inkl. Bridges etc.
- Die PCI Express-Unterstützung reserviert mindestens 256 MB, abhängig vom installierten Speicher der Grafikkarte bis zu 768 MB
Dies bedeutet, dass ein typisches System möglicherweise zwischen ~ 256 MB und 1 GB Adressraum unter 4 GB sieht, der für die Hardware-Nutzung reserviert ist, auf die das Betriebssystem nicht zugreifen kann. Intel-Chipsatzspezifikationen erklären recht gut, welche Adressbereiche standardmäßig reserviert werden, und in einigen Fällen wird darauf hingewiesen, dass 1,5 GB immer reserviert sind und daher für Windows nicht zugänglich sind.
Weitere Informationen finden Sie beim Auschecken der Quelle. Möglicherweise können Sie jedoch die installierten 8 GB voll ausnutzen, wenn Sie diese Anweisungen befolgen .
Aus eigener Erfahrung ist dies kein neues Problem. Ich bin vor ein paar Jahren auf dasselbe Problem gestoßen, als ich bei der ersten Veröffentlichung von Vista ein 32-Bit-Windows Vista-System mit 4 GB erstellt habe. Es waren unzählige Forenbeiträge zum gleichen Thema online.
Lesen Sie auch Microsoft KB 929605 - Der im Dialogfeld Systeminformationen unter Windows Vista gemeldete Systemspeicher ist geringer als erwartet, wenn 4 GB RAM installiert sind .
Wenn Sie ein 32-Bit-Windows XP verwenden, ist dies nicht möglich. Da nicht genügend Adressraum zur Verfügung steht, um den zusätzlichen Arbeitsspeicher zu nutzen
Die beste Lösung wäre ein Upgrade auf eine 64-Bit-Version von Windows, da diese mehr als 4 GB RAM unterstützt.
2^32
Es ist genug "Adressraum", um 4 GiB zu passen. Sie verwechseln Adressraum und physischen Speicher. In modernen Windows-Versionen wird für jeden Prozess der gesamte Adressraum von 4 GB angezeigt, obwohl aufgrund der UM / KM-Partitionierung des virtuellen Adressraums normalerweise nur 2 GB verwendet werden können.
Wie die anderen gesagt haben, ist es nicht möglich.
Erläuterung:
Jeder Speicher hat eine Adresse. Das Betriebssystem gibt die Länge der Adresse an. Bei älteren Betriebssystemen beträgt die Adresslänge 32 Bit, womit nur 2 ^ 32 (4 294 967 296) Adressen zulässig sind. Wenn Sie sich diese Zahl ansehen, könnte es so aussehen, als ob Ihr Betriebssystem 4 GB unterstützen sollte, aber alle anderen Hardwarekomponenten (vor allem der Video-RAM auf Ihrer Grafikkarte), die über internen Speicher verfügen, werden ebenfalls diesem Adressraum zugeordnet.
Es ist, als ob Sie versuchen, 1.200.000 sechsstellige Telefonnummern zu verteilen.
Das alte Motherboard unterstützte nur 4 GB physischen RAM, das moderne viel mehr. Die Intel P4-CPU kann immer mehr als 4 GB adressieren (mithilfe der so genannten Physical Address Extension oder PAE).
Microstoft hat die Entscheidung getroffen, in den Client - Versionen aller 32 - Bit - Versionen seiner Betriebssysteme keinen physischen 4 - GB - Adressraum zu unterstützen - dies gilt für alle Windows 8 - Versionen von w2k bis 32 - Bit (wenn Sie die MS KB besuchen) Auf den folgenden Seiten werden Sie feststellen, dass die 32-Bit-Server-Versionen viel mehr unterstützen können - bis zu 128 GB, glaube ich, mit der 32-Bit-Enterprise-Edition. Aus diesem Grund können "richtige" 32-Bit-Betriebssysteme (Linux usw.) auf genau der gleichen Hardware immer auf ALLE zugreifen das physische RAM.
(Randnotiz - 32-Bit-Win7-Benutzer hatten diese "blöde" Beschränkung so satt, dass sie den Kernal "gehackt" haben, um Zugriff auf den gesamten physischen Arbeitsspeicher zu erhalten. Dies bricht natürlich Ihre Lizenz und ist in den USA sogar illegal (DCMA) )
Windows XP 32bit reserviert einen Teil des 4-GB-Adressraums für die Verwendung durch den Treiber. Es gibt keinen Grund, warum Sie physischen RAM nicht über 4 GB (mit PAE) adressieren können, obwohl dies bei vielen älteren Treibern zur Zeit von Windows XP Pro fehlgeschlagen ist und Sie einen BSOD-Fehler erhalten würden (moderne Treiber verwenden PAE) Richtig und in der Theorie gibt es keinen Grund, warum sie insgesamt mehr als 32 MB "lo" -Speicherseiten (als "Fenster") benötigen, selbst um eine 2-GB-Grafikkarte zu unterstützen (die 2 GB werden sich im "hi" -Speicher befinden, dh über 4 GB Kennzeichen)
In XP SP2 hat MS den für Treiber 'reservierten' Adressraum fast verdreifacht, um die BSODs zu beseitigen, und das ist seitdem so (MS möchte keine Treiber 'debuggen' == sie möchten Ihnen die 64-Bit verkaufen Betriebssystem stattdessen). Die ACTUAL-Hardware hat fast keine Auswirkung auf diesen reservierten Platz.
Wenn Sie über 4 GB oder mehr physischen Arbeitsspeicher verfügen, werden für XP Pro sp2 + etwa 3,25 GB angezeigt. Auf den Rest kann mit verschiedenen RAM-Treibern zugegriffen werden (natürlich nicht mit den MS-Treibern) Verwendet den "unsichtbaren Adressraum" oder den "hohen 4 GB Speicherplatz" unter XP Pro). Die Verwendung der "fehlenden" .75 GB als Teil Ihres "virtuellen Speichers" kann Ihr System beschleunigen.
Beachten Sie, dass der / 3G-Switch 32-Bit-Anwendungen unter einem 32-Bit-Betriebssystem den Zugriff auf bis zu 3 GB ermöglichen kann (wenn das LargeAddressAware-Flag im EXE-Header gesetzt ist - in diesem Fall können sie unter einem 64-Bit-Betriebssystem jedoch auf bis zu 4 GB zugreifen) Unter XP muss / USERVA ebenfalls angegeben werden, um zu verhindern, dass das Betriebssystem aus dem RAM "herausgedrückt" wird :-)
Wenn Sie die gesamten 4 GB nutzen möchten, besteht die einzige Möglichkeit darin, ein Upgrade auf ein 64-Bit-Betriebssystem durchzuführen:
Das normale Windows XP ist nur 32-Bit und dies begrenzt den Speicher auf maximal 3,5 GB. Überprüfen Sie den Link VonC für Details zu diesem Thema.
Wenn Sie integrierte Grafiken verwenden, können Sie dies ablehnen. Dies bedeutet, dass das System in der Lage ist, mehr RAM Ihres Systems zu adressieren.
Die beste Lösung ist jedoch auf jeden Fall, ein x64-Betriebssystem zu erwerben.
Kein Grund auch nicht. Die meisten Programme arbeiten in x64 mit XP / Vista / 7 mit einer x86-Emulationsschicht. Es sind nur die Treiber, die das Problem sein könnten .
Es ist eine ziemlich komplizierte Frage, da mehrere Komponenten erforderlich sind, um sie zu lösen. Diese Komponenten sind:
Der letzte Punkt bezieht sich nicht direkt auf das Thema, aber ich habe ihn der Vollständigkeit halber hinzugefügt.
Kurz gesagt, alle oben genannten Komponenten müssen mehr als 4 GB Arbeitsspeicher unterstützen, um erfolgreich zu sein.
Beginnen wir mit einer CPU. Aber zuerst ist es wichtig zu beachten, dass eine CPU hat keine magische Fähigkeit zu verwenden , jede Erinnerung an alle. Stattdessen könnte es einfach auf eine beliebige Adresse in seinem adressierbaren Bereich zugreifen . Jetzt kommt hier die Bissigkeitssache. Die 32-Bit-CPU kann auf Adressen im Bereich von 0 bis 4 GB zugreifen . Dieser Bereich muss jedoch nicht nur die verfügbaren RAM-, ROM-, SMRAM- und Grafikadressen- Remapping-Tabellen berücksichtigen , sondern auch alle erforderlichen speicherabgebildeten E / Aund viele mehr, die möglicherweise einen erheblichen Teil dieses Adressbereichs benötigen. Infolgedessen ist es durchaus möglich, dass einige Speicheradressen von diesen Verwendungen abgeschattet wurden und daher für Operationen im RAM nicht verfügbar sind. Um verborgenen Speicher wiederzugewinnen, muss der für die CPU zugängliche Adressraum erweitert werden . Im Falle einer 32-Bit-CPU könnte die physikalische Adresserweiterung helfen. Damit können bis zu 64 GiB adressiert werden. Auf 64-Bit-CPUs, die im nativen 64-Bit-Modus arbeiten, kann standardmäßig zugegriffen werdenbis zu 16 EiB, was ziemlich groß ist und keine solchen Tricks erfordert. Andererseits ist es für eine 64-Bit-CPU unpraktisch, eine 64-Bit-Adressierung zu verwenden, so dass sie in Wirklichkeit immer noch durch ihren Adressbus auf einen geringeren Bereich als 16 Eib begrenzt sind.
Ursprünglich befand es sich in Northbridge , wurde jedoch von AMD, beginnend mit ihren AMD64-Prozessoren, und von Intel mit ihren Nehalem-Prozessoren, auf den Prozessor-Die verschoben. Selbst wenn eine CPU mit PAE in der Lage ist, selbst auf 64 GiB zuzugreifen , benötigt sie eine MCU, um auf den RAM zuzugreifen. Einfach ausgedrückt: Eine CPU, die auf eine bestimmte Adresse zugreift , erhält ihre Antwort entweder vom PCI-Gerät, vom BIOS-ROM-Flash oder von der MCU, wenn sich die angeforderte Adresse im RAM befindet, und so weiter. Es ist jedoch nicht ungewöhnlich, dass eine MCU (sei es in Northbridge oder in der CPU) beispielsweise aus Marketinggründen viel weniger adressierbaren Speicher als 64 GiB unterstützt.
BIOS / (U) EFI sind ebenfalls wichtig, da es ihre Pflicht ist, die Hardware zu konfigurieren, bevor irgendetwas tatsächlich funktionieren kann. Unter anderem sind sie dafür verantwortlich, den gesamten prozessoradressierbaren Raum mit Speicherbereichen von Hardwaregeräten, Bussen, RAM usw. abzubilden . Interessanterweise kann es vorkommen, dass der gesamte Arbeitsspeicher in Teile aufgeteilt und auf mehrere verfügbare, nicht zusammenhängende Stellen abgebildet wird. Das Problem mit dem BIOS besteht darin, dass die Entwickler möglicherweise nicht mehr als 3 GB RAM in ihrem System erwarten und das BIOS daher nicht den gesamten zu verwendenden Speicher ordnet. Höchstwahrscheinlich wird dies (U) EFI nicht passieren.
Das Betriebssystem sollte auch die Adressierung von mehr als 4 GB Speicher unterstützen. Genauer gesagt sollte eine CPU für die Verwendung von PAE konfiguriert werden. Einige 32-Bit-Betriebssysteme sind perfekt in der Lage, PAE zu verwenden und auf mehr als 4 GB zuzugreifen, andere haben ein Software-Limit für den maximalen Speicher, obwohl sie PAE für erhöhte Sicherheit aktivieren (Windows XP ist ein Beispiel). Wiederum haben 64-Bit-Betriebssysteme solche Schwierigkeiten natürlich nicht und unterstützen normalerweise mehr als 4 GB Speicher.
Der letzte Punkt stammt aus einer anderen Welt, da Anwendungen normalerweise in einem virtuellen Adressraum ausgeführt werden. Der Vollständigkeit halber habe ich ihn hinzugefügt. Dennoch sind beim Kompilieren einige zusätzliche Schritte erforderlich, damit die Anwendung mehr Speicher verwenden kann. Standardmäßig kann eine 32-Bit-Anwendung nur 2 GB Speicher verwenden. Die gleiche 32-Bit - Anwendung könnte adressiert bis 4 GiB Speicher, vorausgesetzt , dass das Betriebssystem jedoch zwingend nötig und hat CPU PAE aktiviert. Genauer gesagt könnte es verwendenBis zu 3 GB Arbeitsspeicher, die anderen 1 GB können als allgemeine Bibliotheken und Betriebssystemkernel adressiert werden, sind jedoch nicht beschreibbar (letztendlich hängt dies von der Betriebssystemarchitektur und nicht von der Anwendung selbst ab). Wiederum unterstützen 64-Bit-Anwendungen nativ die Adressierung von mehr als 4 GB Arbeitsspeicher und haben solche Probleme überhaupt nicht.
Um dies alles in die richtige Perspektive zu rücken, betrachten wir einige Beispiele.
Betrachten Sie den Intel® 82945G Memory Controller . Die Intel-Website gibt an, dass sie PAE nicht unterstützt und auf 4 GB RAM beschränkt ist. Konsultieren wir den Absatz 9 System Address Map
des Datenblattes. Es hat viele Informationen. Am interessantesten ist Figure 9-3. Main Memory Address Range
:
und der Absatz 9.2 Main Memory Address Range (1 MB to TOLUD)
, der wie folgt lautet:
Dieser Adressbereich erstreckt sich von 1 MB bis zum oberen Ende des physischen Speichers, auf den der (G) MCH zugreifen darf (wie im TOLUD-Register programmiert). Alle Zugriffe auf Adressen in diesem Bereich werden vom (G) MCH an den Hauptspeicher weitergeleitet, sofern sie nicht in den optionalen TSEG-, optionalen ISA-Hole- oder optionalen IGD-gestohlenen VGA-Speicher fallen. Der (G) MCH bietet einen maximalen Dekodierungsspeicher für Hauptspeicheradressen von 4 GB (2 GB für den 82945GC / 82945GZ / 82945PL). Der (G) MCH ordnet APIC- oder PCI Express-Speicherplatz nicht neu zu. Dies bedeutet, dass bei einem physischen Arbeitsspeicher von 4 GB (2 GB für den 82945GC / 82945GZ / 82945PL) physischer Arbeitsspeicher vorhanden ist, der noch nicht adressierbar ist und daher vom System nicht verwendet werden kann.
Da PAE nicht unterstützt wird, ist es letztendlich nicht möglich, PCI und jedes andere MMIO über 4 GiB neu zuzuordnen. Daher wird ein Teil des Speichers gespiegelt und nicht verwendet. Dies bedeutet, dass auch bei Verwendung einer CPU mit 36-Bit-Adressierung ein Speicher von mehr als 4 GiB nicht verfügbar ist und ein Teil des Speichers nahe 4 GiB ebenfalls nicht verwendet wird.
Betrachten wir umgekehrt den Intel® 82955X-Speichercontroller , der mit dem vorherigen verwandt ist, der jedoch im Gegensatz zum vorherigen 8 GB unterstützt! Der Datenblattabschnitt 2.1 Host Interface Signals
schlägt vor, dass der 36-Bit-Adressbus zur CPU verwendet wird, was ein gutes Zeichen ist. Absatz 7 System Address Map
hat weitere Einsichten. Vergleichen Sie Figure 7-1. System Address Ranges
mit dem, den wir zuvor gesehen haben:
Dies deutet eindeutig darauf hin, dass es mehr als 4 GB RAM verbrauchen kann, vorausgesetzt, es wird mit der CPU gearbeitet, die auch eine 36-Bit-Adressierung ermöglicht. Es ist auch erwähnenswert, dass Absatz 7 System Address Map
besagt, dass MCH supports 64 GB of addressable memory space
. Es wird jedoch klargestellt, dass der maximal nutzbare Arbeitsspeicher auf 8 GB begrenzt ist. Dies erklärt noch einmal den Unterschied zwischen adressierbar undverwendbar, da ich versucht habe, im CPU-Bereich zu vermitteln.
Abschließend möchte ich festhalten, dass zwei verwandte Chipsätze tatsächlich einen großen Unterschied in der Speicherbehandlung aufweisen.
Sehen wir uns den Intel® Pentium® Prozessor Extreme Edition 840 an . Der 64-Bit-Befehlssatz wird unterstützt, PAE wird jedoch nicht unterstützt. Dies bedeutet, dass im 32-Bit-Modus nicht mehr als 4 GB RAM verwendet werden können (bitte korrigieren Sie mich, wenn ich mit dieser Annahme falsch liege). Lässt das Datenblatt und die Tabelle überprüfen Table 4-3. Signal Description
. Auch wenn diese CPU 64-Bit-fähig ist, ist sie dennoch durch die 36-Bit-Breite des Adressbusses begrenzt, wodurch sie auf den zugänglichen Adressbereich von 0 bis 64 GiB begrenzt wird.
Untersuchen wir nun eine neuere CPU. Nehmen Sie zum Beispiel den Intel® Core ™ i7-7700 Prozessor . Es wird empfohlen, bis zu 64 GB RAM zu unterstützen. Lassen Sie uns nun das Datenblatt überprüfen. Absatz 2.3 System Address Map
überzeugt uns , dass diese CPU adressierbaren Bereich von 0 bis 512 GiB aufgrund 39-Bit - Adressbus. Beachten Sie, dass es immer noch weit vom theoretischen 16-EiB-Bereich für eine 64-Bit-CPU entfernt ist. Erstaunlicherweise haelt es verdeutlicht ferner , dass dieser CPU bis zu 32 GiB unterstützt nutzbarem RAM maximal ( im Gegensatz zu 64 GB auf der Website). Hier gibt es auch ein interessantes Bild Figure 2-2. System Address Range Example
:
Es macht einen guten Job, um das Problem mit der Speicherbeschattung durch PCI-Geräte usw. zu veranschaulichen. Außerdem wird eine Möglichkeit vorgeschlagen, dieses Problem durch Zuordnen zu überwindenein Bereich von realen RAM zu den oberen Adreßbereich innerhalb CPU- adressierbaren Bereich. So wird der verborgene Speicher für die Verwendung zurückgefordert. Beachten Sie, dass diese Neuzuordnung von BIOS / (U) EFI bei der Hardwareinitialisierung durchgeführt wird und genau aus diesem Grund habe ich BIOS / (U) EFI in die Aufzählungsliste oben aufgenommen.
Ich habe Intel-Produkte als Beispiel genommen, aber das Gleiche gilt für AMD.
Lassen Sie uns nun diskutieren, wie Betriebssysteme beteiligt sind. Der Linux - Kernel enthält vollständige PAE-Unterstützung ab Version 2.3.23 und es ist durchaus möglich , mehr als 4 GiB Arbeitsspeicher zu haben , verwendbar mit Linux - Kernel auf einem 32-Bit - System. Beachten Sie jedoch ein unbestimmtes Problem mit dem 32-Bit-Linux-Kernel auf einem System mit mehr als 4 GB RAM auf einer bestimmten Hardware (meiner Erfahrung nach hat dies etwas mit TLB-Shootdowns zu tun). Wie auch immer, Wikipedia hat gute Informationen zur PAE-Unterstützung . Interessant ist, wie Windows XP auf 4 GB beschränkt ist, während Windows Server 2003 Enterprise / Datacenter SP2 volle 64 GB unterstützt. Gleiches gilt für andere Desktop-Server-Windows-Paare.
Wie Sie sehen, gibt es viele Kombinationen zwischen den aufgeführten Komponenten, und in einigen Fällen kann der Austausch einer CPU oder eines Betriebssystems hilfreich sein. Es ist viel schwieriger, mit BIOS / (U) EFI oder MCU umzugehen, da das erstere proprietär und in das System integriert ist und nicht leicht modifizierbar ist, das letztere in die CPU eingebaut oder auf die Platine gelötet ist.
Es werden 3574 MB RAM angezeigt, da so viel RAM KOSTENLOS und für den Computer jederzeit verfügbar ist. Diese Zahl gibt den Arbeitsspeicher an, auf den Ihr Computer uneingeschränkt zugreifen kann, da die auf dem PC vorinstallierten Programme und Einstellungen eine festgelegte Menge an Arbeitsspeicher verwenden, die in Ihrem Fall 426 MB beträgt. Mein 6 GB 64-Bit-PC zeigt 5,8 GB verfügbaren RAM anstelle der vollen 6 GB an. Am besten sollten Sie Ihren PC aufrüsten