Warum zeigt Windows nur etwa 3,5 GB meiner 4 GB RAM?

30867
ala

Ich habe kürzlich den Arbeitsspeicher meines Computers auf 4 GB aufgerüstet. Meine 32-Bit-Windows-Installation zeigt nur 3574 MB Arbeitsspeicher. Wie kann ich den vollen Arbeitsspeicher von Windows verwenden lassen?

88
Dies wurde erst heute Morgen in http://superuser.com/questions/27006/how-to-check-ram-size-without-looking-at-motherboard/27013 beantwortet Tom vor 14 Jahren 1
Dies muss um 2000 Stimmen erhöht werden, denn es scheint, als würde ich jeden Tag auf eine andere Person treffen, die fragt: "Wo ist mein Gedächtnis?" Microsoft sollte das einfach aus dem Dialogfeld herausnehmen. . . surfasb vor 12 Jahren 3
Alter, du brauchst ein 64-Bit-Betriebssystem. Ernsthaft, fangen Sie jetzt an, Ihr Geld zu sparen. Dann wäre diese Frage zu einem umstrittenen Punkt, wenn Sie ein System haben, das tatsächlich den gesamten Speicher unterstützt, den Sie auf dem Motherboard speichern können. Fiasco Labs vor 11 Jahren 2
Fühlen Sie sich rund um die Systemeinheit sorgfältig auf Feuchtigkeit oder Feuchtigkeit. Es könnte ein "Speicherleck" sein. EleventhDoctor vor 10 Jahren 1
@ala: Wegen des Kernel-Memory-Splits ... (1Gb vom Kernel zuordnen). Es scheint, dass Sie bereits den / 3gb-Schalter verwenden ... user2284570 vor 10 Jahren 0
Mögliches Duplikat von [8 GB RAM auf XP Professional] (http://superuser.com/questions/72655/8gb-ram-on-xp-professional) user2284570 vor 10 Jahren 0
@ user2284570: Tut mir leid, dass ich Sie korrigieren muss, aber das hat nicht viel mit dem "Kernel-Memory-Split", dem / 3GB-Schalter (es ist wirklich EXTENDUSERVA in Vista und höher) usw. zu tun. All das dreht sich um * virtual * Adressraum, nicht RAM. Das Problem des OP betrifft den Arbeitsspeicher und nicht den virtuellen Adressraum. Jamie Hanrahan vor 9 Jahren 0

9 Antworten auf die Frage

70
VonC

Sie können nicht:

Siehe Dude, wo sind meine 4 Gigabytes RAM?

Wenn Sie Speicher und Geräte in einen 32-Bit-Adressbereich integrieren möchten: Nicht alle verfügbaren 4 GB Adressraum können in den Speicher übernommen werden.
Was passiert also eigentlich, wenn Sie 4 GB Speicher für Ihren PC kaufen?
In Ihrer Speicherkarte gibt es eine Lücke für die IO. (Jetzt sind es nur 25% des gesamten Adressraums, aber es ist immer noch ein großes Loch.) Die unteren 3 GB Ihres Speichers werden verfügbar sein, aber es gibt ein Problem mit den letzten 1 GB.

Die einzige praktische 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.

Ich verstehe nicht - nicht 2 ^ 32 4 Gigabyte? Matt vor 14 Jahren 0
Ah, na ja, habe den verlinkten Artikel tatsächlich gelesen Matt vor 14 Jahren 5
gut das zu wissen LiuYan 刘研 vor 12 Jahren 0
@VonC: Was ist mit [this] (http://iknowu.dnsalias.com/files/public/Windows_XP_SP3_Remove_PAE_Limit/Windows_XP_Remove_PAE_Limit.htm "Windows XP SP3 - Entfernen der physischen 4 GB-Adresse / des RAM-Speichers und Verwendung von 64 GB RAM mit PAE" ) user2284570 vor 10 Jahren 0
@ user2284570 wahr, PAE kann helfen, aber wer ist noch auf WXp? ;) VonC vor 10 Jahren 0
@VonC: Ich ... Ich verwende spezielle [Software] (http://lbw.sourceforge.net/ "LBW"), um bestimmte 32-Bit-Linux-Binärdateien nativ ohne jegliche Virtualisierung auszuführen ... Es erfordert ein 32-Bit-XP und [SFU 3.5] (https://fr.wikipedia.org/wiki/Services_for_UNIX "Windows Services for Unix") user2284570 vor 10 Jahren 0
@ user2284570 Ich verstehe. Ich benutze es auch, aber in VHD (http://blog.zeltser.com/post/67023415049/how-to-get-a-windows-xp-mode-virtual-machine-on-windows) VonC vor 10 Jahren 0
@VonC: Es gibt auch die Tatsache, dass einige DOS-Programme wie GEM auf Vollbildschirm umschalten müssen ... Wenn Sie NT> = 6 verwenden, stürzt das DOS-Programm ab ... (Hinweis: Ich verwende weiterhin Windows98 für einige Spiele, die direkt erfordern Zugriff auf die Harware ... (die Wahl von DOS über DirectX durch Programmierer)). Und Windows 98 ist selbst eine VM, daher kann es nicht mit der VM86-Adressierung arbeiten. user2284570 vor 10 Jahren 0
8
SgtOJ

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 verknüpften Artikel. Bei Verwendung eines 32-Bit-Windows XP werden nie mehr als 4 GB angezeigt. Ich habe jedoch einen detaillierteren Grund gefunden, warum Ihr System weniger verfügbaren RAM anzeigt als der tatsächlich installierte.

Aus dem 3-GB-Not-4-GB-RAM-Problem (Microsoft MSDN-Blog):

Aufgrund einer vor langer Zeit getroffenen architektonischen Entscheidung kann Windows bei einem installierten physischen RAM von 4 GB nur einen Teil der physischen 4 GB des Arbeitsspeichers anzeigen (reicht von ~ 2,75 GB bis 3,5 GB, abhängig von den installierten Geräten, dem Chipsatz des Motherboards & BIOS).

Dieses Verhalten ist auf "speicherzugeordnete E / A-Reservierungen" zurückzuführen. Diese Reservierungen überlagern den physischen Adressraum und maskieren diese physischen Adressen, so dass sie nicht für den Arbeitsspeicher verwendet werden können. Dies ist unabhängig von dem Betriebssystem, das auf dem Computer ausgeführt wird.

Signifikante Abschnitte des Adressraums unter 4 GB (die höchste Adresse, die über 32 Bit zugänglich ist) werden für die Verwendung durch Systemhardware reserviert:

  • BIOS - einschließlich ACPI- und Legacy-Video-Unterstützung
  • PCI-Bus einschließlich Bridges usw.
  • Die PCI Express-Unterstützung reserviert mindestens 256 MB, bis zu 768 MB, je nach dem installierten Speicher der Grafikkarte

Dies bedeutet, dass ein typisches System möglicherweise zwischen ~ 256 MB und 1 GB Adressraum unter 4 GB für die Hardwareverwendung sieht, auf die das Betriebssystem nicht zugreifen kann. Intel Chipset-Spezifikationen erklären ziemlich gut, welche Adressbereiche standardmäßig reserviert werden. In einigen Fällen wird behauptet, dass 1,5 GB immer reserviert und daher für Windows nicht zugänglich sind.

Es gibt weitere Informationen, wenn Sie die Quelle auschecken. Sie können jedoch die gesamten installierten 8 GB nutzen, wenn Sie diese Anweisungen befolgen .

Aus eigener Erfahrung ist dies kein neues Problem. Ich habe vor einigen Jahren auf dieses Problem gestoßen, als ich bei der ersten Veröffentlichung von Vista ein 32-Bit-Windows Vista-System mit 4 GB gebaut hatte. Es gab unzählige Online-Forenbeiträge zu diesem Thema.

Lesen Sie auch Microsoft KB 929605 - Der Systemspeicher, der in Windows Vista im Dialogfeld Systeminformationen angegeben wird, ist geringer als erwartet, wenn 4 GB RAM installiert sind .

Microsoft-Dokumente [hier] (http://msdn.microsoft.com/de-de/library/windows/desktop/aa366778%28v=vs.85%29.aspx#physical_memory_limits_windows_xp), die Windows XP bis zu 128 GB RAM unterstützen, wenn die zugrunde liegende Architektur 64-Bit ist. Können Sie bitte Ihre Antwort aktualisieren? Dan Dascalescu vor 11 Jahren 0
@SgtOJ: Was ist mit [this] (http://iknowu.dnsalias.com/files/public/Windows_XP_SP3_Remove_PAE_Limit/Windows_XP_Remove_PAE_Limit.htm "Windows XP SP3 - Entfernen Sie die physikalische Adresse / RAM-Kapazität von 4 GB und verwenden Sie bis zu 64 GB RAM mit PAE" ) user2284570 vor 10 Jahren 0
@SgtOJ: Die Begrenzung auf 4 GB RAM gilt NICHT für "alle 32-Bit-Betriebssysteme". Ein 32-Bit-Betriebssystem, das PAE (wie Windows Server 2003) vollständig unterstützt, kann problemlos mehr als 4 GB RAM verwenden. "32 Bits" schränkt den virtuellen Adressraum ein, nicht den physischen. Jamie Hanrahan vor 9 Jahren 1
@JamieHanrahan bedeutet immer noch, dass ein einzelnes Programm nicht mehr als 4 GB verwenden kann. Und ich denke, er meinte, dass der IO-Overhead der OS unabhängig vom Betriebssystem ist. jiggunjer vor 8 Jahren 0
@jiggunjer Nirgendwo in der Frage oder in der Antwort, die ich kommentierte, wurde gesagt oder impliziert, dass das, was gefragt wurde, das war, was ein "einzelnes Programm" verwenden konnte. Die E / A-Reservierung ist auch nicht streng unabhängig vom Betriebssystem. Jamie Hanrahan vor 8 Jahren 0
@JamieHanrahan Ich stimme beiden Punkten zu. Ich dachte nur, dass es sich lohnt, ausdrücklich für interessierte Leser zu erwähnen. jiggunjer vor 8 Jahren 0
3
Shaharyar

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 RAM 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" ist genug "Adressraum" für 4 GiB. Sie verwechseln den Adressraum und den physischen Speicher. Jeder Prozess in modernen Windows-Versionen sieht den vollen 4-GiB-Adressraum vor, obwohl * normalerweise * nur 2 GiB aufgrund der UM / KM-Partitionierung des virtuellen Adressraums verwendet werden können. 0xC0000022L vor 12 Jahren 0
@ 0xC0000022L: Das ist nicht das Problem, das hier diskutiert wird. Ben Voigt vor 11 Jahren 0
[Laut Microsoft] (http://superuser.com/questions/439124/8gb-ram-in-32bit-operating-system/525838#525838), die meisten Versionen von Windows 7 (einschließlich 32-Bit) unterstützen bis zu 192 GB RAM. Die einzige Voraussetzung ist, dass die zugrunde liegende Architektur 64-Bit ist. Die beste Lösung wäre also ein Upgrade von XP auf Windows 7. Können Sie Ihre Antwort bitte aktualisieren? Dan Dascalescu vor 11 Jahren 0
@Shaharyar: Was ist mit [this] (http://iknowu.dnsalias.com/files/public/Windows_XP_SP3_Remove_PAE_Limit/Windows_XP_Remove_PAE_Limit.htm "Windows XP SP3 - Entfernen Sie die physikalische Adresse / RAM-Kapazität von 4 GB und verwenden Sie bis zu 64 GB RAM mit PAE" ) user2284570 vor 10 Jahren 0
3
drby

Wie die anderen gesagt haben, ist das 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, was nur 2 ^ 32 (4 294 967 296) Adressen erlaubt. Wenn Sie sich diese Zahl ansehen, scheint es, als würde Ihr Betriebssystem 4 GB unterstützen. Die gesamte Hardware (vor allem der Video-RAM in Ihrer Grafikkarte), die über einen internen Speicher verfügt, wird ebenfalls in diesen Adressraum abgebildet.

Es ist, als würden Sie versuchen, 1.200.000 sechsstellige Telefonnummern zu verteilen.

Sie mischen RAM und Adressraum. 0xC0000022L vor 12 Jahren 0
@ 0xC0000022L: Nein, ist er nicht. Er spricht von physischem Adressraum, während RAM für die Verwendung als Arbeitsspeicher zugeordnet werden muss. Ben Voigt vor 11 Jahren 0
@BenVoigt: Was ist mit [this] (http://iknowu.dnsalias.com/files/public/Windows_XP_SP3_Remove_PAE_Limit/Windows_XP_Remove_PAE_Limit.htm "Windows XP SP3 - Entfernen Sie die physikalische Adresse / RAM-Kapazität von 4 GB und verwenden Sie bis zu 64 GB RAM" ". ) user2284570 vor 10 Jahren 0
PAE ist großartig, wenn der gesamte Kernel-Code zur Verwendung geschrieben wurde. Leider wird viel Kernel-Code von Treibern geschrieben, die von Dritten geschrieben wurden, die ihre Daten mit einem Flat-Memory-Modell kaum unterbringen können. Um PAE zu aktivieren, müssen alle vorhandenen Treiber mit der Annahme eines flachen Modells verworfen werden. Aus diesem Grund aktiviert Windows Server PAE und Client dies nicht. Siehe die Antwort von steveb. Ben Voigt vor 10 Jahren 0
@BenVoigt: Seit 1997 sind Treiber mit einem Speicher <4 GB selten, da ALLE WDM-Treiber unter Windows 2000/2003 installiert werden können ... user2284570 vor 10 Jahren 0
3
steve b

Das alte Motherboard unterstützte nur 4 GByte physischen Arbeitsspeicher, moderne unterstützen viel mehr. Die Intel P4-CPU konnte immer mehr als 4 GB adressieren (mithilfe der so genannten Physical Address Extension oder PAE).

Microstoft hat eine "Marketing-Entscheidung" getroffen, um nicht mehr als 4 GB physischen Adressraum in den "Client" -Versionen aller 32-Bit-Versionen seiner Betriebssysteme zu unterstützen. Dazu gehören alle Windows-Betriebssysteme von W2K bis 32-Bit (wenn Sie die MS KB besuchen.) Seiten werden Sie feststellen, dass die 32-Bit-Server-Versionen viel mehr unterstützen können (bis zu 128 GB, glaube ich bei der 32-Bit-Enterprise-Edition). Aus diesem Grund können "richtige" 32-Bit-Betriebssysteme (Linux usw.) auf genau derselben Hardware immer auf ALLE zugreifen das physische RAM.

(Randbemerkung - 32-Bit-Win7-Benutzer waren von dieser "dummen" Grenze so satt, dass sie den Kernal "gehackt" haben, um ascces auf den vollen physischen Arbeitsspeicher zuzulassen. Unnötig zu sagen, das bricht Ihre Lizenz und ist in den USA (DCMA) illegal )

Windows XP 32bit reserviert einen Teil des 4-Gbit-Adressraums für die Verwendung von Treibern. Es gibt keinen Grund, warum Sie physisches RAM nicht über 4 GB (mit PAE) "adressieren" können, jedoch ist dies bei vielen älteren Treibern zum Zeitpunkt von Windows XP Pro nicht der Fall, und Sie erhalten einen BSOD-Fehler (moderne Treiber verwenden PAE richtig und in der Theorie gibt es keinen Grund, warum sie insgesamt mehr als etwa 32 MB "lo" -Speicherseiten (als "Fenster") benötigen, um sogar eine 2-GB-Grafikkarte zu unterstützen (die 2-GB-Karte befindet sich im "Hallo" -Punkt, dh über 4 GB Kennzeichen)

In XP SP2 verdreifachte MS fast den für die Treiber reservierten Adreßraum, um die BSODs zu eliminieren, und seitdem (die MS wollen die Treiber nicht "debuggen" ==, möchten sie Ihnen das 64-Bit-System verkaufen Stattdessen OS. Die ACTUAL-Hardware hat fast keinen Einfluss auf diesen 'reservierten' Speicherplatz.

SO, wenn Sie über 4 GByte oder mehr physischen RAM verfügen, wird die meiste XP Pro sp2 + etwa 3,25 GByte betragen. Der Rest kann mit verschiedenen RAM-Laufwerkstreibern aufgerufen werden (natürlich nicht die MS) verwendet den "unsichtbaren Adressraum" oder "hohen 4-GB-Speicherplatz" unter XP Pro). Die Verwendung der "fehlenden" .75 GB als Teil des "virtuellen Speichers" kann Ihr System beschleunigen ...

Beachten Sie, dass der / 3G-Switch 32-Bit-Anwendungen den Zugriff auf bis zu 3Gb auf einem 32-Bit-Betriebssystem ermöglichen kann (wenn sie das LargeAddressAware-Flag in ihrem .exe-Header gesetzt haben. In diesem Fall können sie jedoch auf bis zu 4 GB auf einem 64-Bit-Betriebssystem zugreifen) Unter XP müssen Sie auch / USERVA angeben, um zu verhindern, dass das Betriebssystem aus dem RAM herausgedrückt wird :-)

Windows XP SP1-Unterstützung> 4 GB RAM, wenn Sie den Schalter / PAE zur boot.ini hinzufügen user2284570 vor 10 Jahren 0
0
FrankS

Wenn Sie die gesamten 4 GB nutzen möchten, können Sie nur auf ein 64-Bit-Betriebssystem aufrüsten:

  • Windox XP 64
  • Windows Vista 64
  • Linux
  • Max OS / X (ok, vielleicht brauchen Sie dafür auch einen neuen PC)

Das normale Windows XP ist nur 32 Bit groß, und der Speicher ist auf maximal 3,5 GB beschränkt. Überprüfen Sie den Link VonC gepostet für Details zu diesem Thema.

Mit 32 Bit ist der Speicher nicht auf maximal 3,5 GB beschränkt. Es sind andere Geräte, die den verfügbaren Adressraum belegen, daher sind auch 3.75 GB möglich. -1 MaxVT vor 14 Jahren 0
Deswegen habe ich gesagt "überprüfe den Link für Details" :-) FrankS vor 14 Jahren 0
Richtig. Microsoft listet auf, dass [XP 64-Bit bis zu 128 GB RAM unterstützt] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778%28v=vs.85%29.aspx#physical_memory_limits_windows_xp . Dan Dascalescu vor 11 Jahren 0
0
Blam

Wenn Sie eine integrierte Grafikkarte verwenden, können Sie dies ablehnen. Dies bedeutet, dass das System mehr RAM Ihres Systems ansprechen kann.

Die beste Lösung ist jedoch ein x64-Betriebssystem.

Kein Grund, sowieso nicht. Die meisten Programme arbeiten in x64 mit XP / Vista / 7 mit einer x86-Emulationsebene. Es sind nur Treiber, die das Problem sein könnten .

x64-Treiber unter Windows XP Pro x64 sind Müll, aber die Vista- und 7 x64-Treiber sind seit einiger Zeit sehr ausgereift. MDMarra vor 14 Jahren 1
0
PF4Public

Dies ist eine ziemlich komplizierte Frage, da zum Erarbeiten mehrere Komponenten erforderlich sind. Diese Komponenten sind:

  • Zentrale Verarbeitungseinheit
  • Speichercontroller-Einheit
  • BIOS / (U) EFI
  • Betriebssystem
  • Anwendung

Der letzte Punkt bezieht sich nicht direkt auf das Problem, aber ich habe es der Vollständigkeit halber hinzugefügt.

Kurz gesagt, alle oben genannten Komponenten müssen mehr als 4 GB Speicher unterstützen, um erfolgreich zu sein.

Zentrale Verarbeitungseinheit

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 kann es einfach auf jede Adresse in seinem adressierbaren Bereich zugreifen . Jetzt kommt das Bitness-Ding. Die 32-Bit-CPU kann auf Adressen im Bereich von 0 bis 4 GiB zugreifen . Dieser Bereich muss jedoch nicht nur die verfügbaren RAM-, ROM-, SMRAM- und Graphics Address Remapping-Tabelle aufnehmen, sondern auch alle erforderlichen E / A-Speicherplätzeund viele mehr, die möglicherweise einen erheblichen Teil dieses Adressbereichs erfordern. Infolgedessen kann es durchaus möglich sein, dass einige Speicheradressen durch diese Verwendungen abgeschattet wurden und daher nicht für Operationen im RAM verfügbar sind. Um versteckten Speicherplatz wiederzugewinnen, muss der Adressraum für die CPU erweitert werden . Im Falle einer 32-Bit-CPU kann die Physical Address Extension hilfreich sein. Damit können bis zu 64 GiB adressiert werden. Die 64-Bit-CPU, die im nativen 64-Bit-Modus betrieben wird, kann standardmäßig zugreifenbis zu 16 EiB, was ziemlich groß ist und solche Tricks nicht erfordert. Andererseits ist es für eine 64-Bit-CPU jedoch nicht praktikabel, die 64-Bit-Adressierung zu verwenden. In Wirklichkeit sind sie durch ihren Adressbus jedoch auf einen geringeren Bereich als 16 EiB beschränkt.

Speichercontroller-Einheit

Ursprünglich befand er sich in Northbridge, wurde jedoch von AMD auf den Prozessorchip verschoben, beginnend mit den AMD64-Prozessoren und von Intel mit den Nehalem-Prozessoren. Selbst wenn eine CPU mit PAE selbst auf 64 GiB zugreifen kann, benötigt sie immer noch 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, usw. Es ist jedoch nicht ungewöhnlich, dass eine MCU (beispielsweise in Northbridge oder in der CPU) aus Marketinggründen viel weniger adressierbaren Speicherplatz als 64 GiB unterstützt.

BIOS / (U) EFI

BIOS / (U) EFI sind ebenfalls wichtig, da es ihre Aufgabe ist, die Hardware zu konfigurieren, bevor überhaupt etwas funktionieren kann. Sie sind unter anderem dafür verantwortlich, den gesamten vom Prozessor adressierbaren Raum mit Speicherbereichen von Hardwaregeräten, Bussen, RAM usw. abzubilden . Interessanterweise kann es vorkommen, dass der gesamte RAM in mehrere Teile aufgeteilt und an mehreren verfügbaren nicht zusammenhängenden Stellen zugeordnet wird. Das Problem mit dem BIOS ist, dass die Entwickler unter Umständen nicht mehr als 3 GiB RAM-Auslastung in ihrem System erwarten und das BIOS daher nicht den gesamten zu verwendenden Speicher zuordnen kann. Höchstwahrscheinlich wird dies bei (U) EFI nicht der Fall sein.

Betriebssystem

Das Betriebssystem sollte auch die Adressierung von mehr als 4 GiB Speicher unterstützen. Um genauer zu sein, sollte es eine CPU für die Verwendung von PAE konfigurieren. Einige 32-Bit-Betriebssysteme sind in der Lage, PAE zu verwenden und auf mehr als 4 GiB zuzugreifen, andere haben eine Softwarelimitierung des maximalen Arbeitsspeichers, obwohl sie PAE zur Erhöhung der Sicherheit aktivieren (Windows XP als Beispiel). Wiederum haben 64-Bit-Betriebssysteme solche Schwierigkeiten natürlich nicht und unterstützen normalerweise mehr als 4 GB Speicher.

Anwendung

Der letzte Punkt stammt aus einer anderen Welt, da Anwendungen normalerweise in einem virtuellen Adressraum arbeiten . Ich habe sie der Vollständigkeit halber hinzugefügt. Trotzdem 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 könnte es gebrauchenBis zu 3 GiB Speicherplatz wäre der andere 1 GiB als normale Bibliotheken und Betriebssystemkern adressierbar, jedoch nicht schreibbar (dies hängt letztlich von der Betriebssystemarchitektur und nicht von der Anwendung selbst ab). Wieder unterstützen 64-Bit-Anwendungen die Adressierung von mehr als 4 GiB Speicher und haben an erster Stelle keine derartigen Probleme.

Um dies alles in die richtige Perspektive zu bringen, 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. Lasst uns den Absatz 9 System Address Mapdes Datenblattes konsultieren . Es hat viele Informationen. Am interessantesten ist Figure 9-3. Main Memory Address Range: 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 Rand des physischen Speichers, auf den der (G) MCH zugreifen kann (wie im TOLUD-Register programmiert). Alle Zugriffe auf Adressen innerhalb dieses Bereichs 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 Hauptspeicheradressdecodierungsraum von 4 GB (2 GB für den 82945GC / 82945GZ / 82945PL). Der (G) MCH ordnet den Speicherplatz von APIC oder PCI Express nicht zu. Dies bedeutet, wenn der im System bestückte physische Arbeitsspeicher 4 GB (2 GB für 82945GC / 82945GZ / 82945PL) erreicht, wird physischer Speicher vorhanden sein, der jedoch nicht adressierbar ist und daher vom System nicht verwendet werden kann.

Da es PAE nicht unterstützt, ist es letztlich nicht möglich, PCI und jedes andere MMIO über 4 GiB neu zuzuordnen. Daher wird ein Teil des Speichers abgeschattet und nicht verwendet. Dies bedeutet, dass selbst bei Verwendung einer CPU mit 36-Bit-Adressierung Speicher über 4 GiB nicht verfügbar ist und ein Teil des Speichers nahe der Grenze von 4 GiB ebenfalls nicht verwendet wird.

Umgekehrt betrachten wir den Intel® 82955X Memory Controller, der sich auf den vorherigen Controller bezieht, der jedoch nur 8 GB unterstützt. Der Absatz im Datenblatt 2.1 Host Interface Signalsweist darauf hin, dass ein 36-Bit-Adressbus zur CPU verwendet wird. Dies ist ein gutes Zeichen. Absatz 7 System Address Maphat weitere Einsichten. Vergleiche Figure 7-1. System Address Rangesmit dem, was wir zuvor gesehen haben: Figure 7-1. System Address Ranges Dies legt eindeutig nahe, dass es mehr als 4 GiB RAM verwenden kann, vorausgesetzt, es wird mit einer CPU verwendet, die auch 36-Bit-Adressierung ausführen kann. Es ist auch erwähnenswert, dass der Absatz das 7 System Address Mapbesagt MCH supports 64 GB of addressable memory space. Es wird jedoch weiter klargestellt, dass der maximal nutzbare Arbeitsspeicher auf 8 GB begrenzt ist. Dies erklärt noch einmal den Unterschied zwischen adressierbar undnutzbar, als ich versuchte, in der CPU-Sektion zu vermitteln.

Zum Abschluss möchte ich anmerken, dass zwei verwandte Chipsätze große Unterschiede in der Speicherbehandlung aufweisen.

Lassen Sie uns Intel® Pentium® Prozessor Extreme Edition 840 prüfen . Es unterstützt den 64-Bit-Befehlssatz, aber nicht PAE. Das bedeutet, dass im 32-Bit-Modus nicht mehr als 4 GiB RAM verwendet werden können (bitte korrigieren Sie mich, falls ich mit dieser Annahme falsch liege). Lasst uns das Datenblatt und die Tabelle überprüfen Table 4-3. Signal Description. Obwohl diese CPU 64-Bit-fähig ist, ist sie immer noch durch die 36-Bit-Breite des Adreßbusses begrenzt, wodurch sie auf einen zugänglichen Adressbereich von 0 bis 64 GiB beschränkt ist.

Lassen Sie uns nun eine neuere CPU untersuchen. Nehmen Sie zum Beispiel den Intel® Core ™ i7-7700-Prozessor . Es wird angekündigt, bis zu 64 GB RAM zu unterstützen. Jetzt können wir das Datenblatt davon prü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. Überraschenderweise wird jedoch weiter klargestellt, dass diese CPU maximal 32 GiB nutzbaren Arbeitsspeicher unterstützt (im Gegensatz zu 64 GB auf der Website). Hier gibt es auch ein interessantes Bild Figure 2-2. System Address Range Example: Figure 2-2. System Address Range Example Es macht gute Arbeit, um das Problem mit dem Spiegeln von Speichern durch PCI-Geräte usw. zu veranschaulichen. Außerdem wird vorgeschlagen, dieses Problem durch Mapping zu überwindenein Bereich vom realen RAM bis zum oberen Adressbereich innerhalb des CPU- adressierbaren Bereichs. Dadurch wird dieser verborgene Speicher für den Gebrauch wieder freigegeben. Beachten Sie, dass diese Neuzuordnung von BIOS / (U) EFI bei der Hardwareinitialisierung durchgeführt wird. Genau aus diesem Grund habe ich BIOS / (U) EFI in die Liste oben aufgenommen.

Ich habe Intel-Produkte als Beispiele genommen, aber das gilt auch für AMD.

Lassen Sie uns nun diskutieren, wie Betriebssysteme involviert 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 GiB RAM auf etwas Hardware (meiner Erfahrung nach hat es etwas mit TLB-Shooting zu tun). Wie auch immer, Wikipedia bietet gute Informationen zur PAE-Unterstützung . Interessant ist, dass 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. In manchen Fällen kann es hilfreich sein, eine CPU oder ein Betriebssystem zu ersetzen. Es ist viel schwieriger, mit BIOS / (U) EFI oder MCU umzugehen, da ersterer proprietär und in das System integriert ist und nicht leicht geändert werden kann, letzterer in die CPU eingebaut oder an Bord gelötet wird.

-4
user235193

Es zeigt 3574 MB RAM, da der RAM-Speicher frei ist und jederzeit vom Computer verwendet werden kann. Diese Zahl ist der Arbeitsspeicher, auf den Ihr Computer vollständig 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-Speicher an. Ihre beste Wette wäre ein Blick auf die Aktualisierung Ihres PCs

Wenn 3,5 GB der freie Arbeitsspeicher ist, warum teilt Windows ihn dann immer noch in Arbeitsspeicher und verwendeten Arbeitsspeicher auf? Es ist ein Betriebssystem, es sollte alles wissen, vor allem, wenn etwas 0,5 GB Speicher verbraucht. Installierte Programme belegen keinen RAM, bis sie gestartet werden. gronostaj vor 10 Jahren 0