Warum werden bei Verwendung von AMD64 nicht mehr als 3 GB RAM erkannt?


8

Warum adressiert Ubuntu 10.10 amd64 (Maverick Meerkat) nicht mehr von 3 GB RAM?

Mein Computer ist ein Toshiba P205-S6287 Intel Centrino Duo 64-Bit-Prozessor und 4 GB RAM bei 667 MHz.

Gemäß den detaillierten Spezifikationen verfügt das Notebook über einen 64-Bit-Core 2 Duo T5300-Prozessor und einen 945GM Express-Chipsatz.


3
Es ist ein Rätsel, können Sie die Ausgabe von uname -a, die Ausgabe von melden free -mund auch bestätigen, dass mehr als 3 GB RAM aktiv sind, indem Sie sich Ihren dmidecode ansehen.
Martin Owens -doctormo-

1
Und sind Sie sicher, dass Sie eine 64-Bit-Version von Ubuntu haben? Was uname -asagt das aus?
Vojtech Trefny

gleiches Problem, optiplex gx620 5 Gb Ram

Antworten:


16

Dies liegt am mobilen Intel 945GM Express in Ihrem Laptop.

Ich besitze ein Thinkpad T60, das denselben Chipsatz verwendet. Es war eine der ersten Northbridges von Intel für die Core2Duo 64-Bit-CPUs. Sie haben es nicht entworfen.

Der Chipsatz kann theoretisch nur 4 GB RAM adressieren, muss jedoch auch andere Hardware (E / A-Speicher) adressieren. Es reserviert dafür den oberen 1 GB Speicherbereich. Die Unterstützung für logische 64-Bit-Speicheradressen im Linux-Kernel hilft nicht, da das Mainboard und Northbridge nur einen physischen 32-Bit-Adressbus zur CPU bereitstellen. Und es gibt keine Problemumgehung.
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad/Thinkpad-s-and-N100-sw-945PM-chipset-can-t-address-gt-3G-Ram/ mp / 2730

Es gibt eine theoretische Option beim Entwickeln einer Speicherbankumschaltung. Der Kernel unterstützt dies jedoch nicht und würde in der x86-Architektur auch keinen Sinn ergeben. Der i810-Speichercontroller des 945GM ist wahrscheinlich zu faul, als dass dies sinnvoll wäre.


1

Meine kurze Antwort lautet: Wahrscheinlich, weil der BIOS-Designer schlampig war.

Die lange Antwort lautet:

Obwohl Sie 4 GB RAM installiert haben, können Sie nicht erwarten, dass mit dem Intel 945GM-Chipsatz 4 GB nutzbarer RAM verfügbar sind. Dies ist eine Chipsatzbeschränkung. Sie können dies an der Spezifikation des Chipsatzes erkennen:

http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express-chipset-datasheet.html

": Zitat aus Abschnitt 9.2 Die M emory C ontroller H . Adressdekodierungsraum von 4 GB Des MCH nicht Neueingliederungssteuersignal APIC oder PCI - Express - Speicherraum ubs maximal DRAM liefert Dies bedeutet , dass die Menge an physikalischem Speicher im System erreicht besiedelt. 4 GB, es wird physischen Speicher geben, der noch nicht adressierbar und daher für das System unbrauchbar ist. "

Das BIOS muss Adressbereiche für mehrere Ressourcen reservieren, dh das BIOS selbst, PCI- und PCI Express-Speicherzuordnungsspeicher, interne Grafiken, APIC-Speicherbereich und andere Speicherfenster für den E / A-Zugriff. Alle diese Adressbereiche müssen innerhalb des 4-GB-Adressraums liegen und als solche Adressbereiche belegen, die dem Systemspeicher nicht mehr zur Verfügung stehen. Man könnte sagen, diese Ressourcen "stehlen" physischen RAM-Speicherplatz.

Wenn Sie jedoch 4 GB installiert haben , können Sie davon ausgehen, dass mehr als 3 GB Systemspeicher verfügbar sind .

Die Menge an physischem Speicher, die dem System zur Verfügung steht, hängt davon ab, wie viel Aufwand der BIOS-Designer in die Anordnung dieser Adressbereiche investiert. Beispielsweise könnte das BIOS den geringsten für jede Ressource erforderlichen Betrag zuweisen. Abhängig von der Verwendung von PCI Express-Geräten durch Ihr System kann die Adresszuweisung für PCI Express deaktiviert oder eingeschränkt werden.

Der BIOS-Designer Ihres Systems hat wahrscheinlich die Obergrenze des nutzbaren Arbeitsspeichers auf ein statisches Maximum von 3 GB festgelegt, obwohl Sie 4 GB installiert haben. Dieser Ansatz bietet dem BIOS-Designer ein statisches Adressfenster von 1 GB und vereinfacht somit die Aufgabe der BIOS-Designer, Adressbereiche für die Ressourcen zuzuweisen, damit sie nicht mit anderen Adressbereichen in Konflikt stehen.


1

Es gibt mehrere mögliche Gründe.

Zum einen führen Sie den amd64-Build tatsächlich nicht aus. Ein weiterer Grund ist, dass Ihr Motherboard und / oder BIOS defekt sind und nicht die richtige RAM-Größe melden.

Ein weiterer Grund ist, dass Sie über Videospeicher und andere Hardwareressourcen verfügen, die Speicherplatz im Bereich von 3 bis 4 GB Speicherplatz beanspruchen, und dass Ihr Motherboard / BIOS den schattierten RAM nicht auf höhere Adressen heben kann, damit auf ihn zugegriffen werden kann.

Finden Sie heraus, was es erfordert, Ihre dmesgAusgabe zu betrachten.


0

Psusi ist richtig.

Ich habe hier die gleiche Situation:

Obwohl sie es "64-Bit-CPU" nennen, können Sie oft nicht 4 GB + Speicher adressieren.

Die meisten alten Motherboards haben nur 32 Bit für die Adressen und aus diesem Pool muss die Grafikkarte auch ihre Adressen erhalten.

= 4 GB - Grafikkartenspeicher (1 GB) = 3 GB.

Ich fürchte, es gibt keine Möglichkeit, dies durch Patchen oder Aktualisieren der Firmware zu beheben.

Wenn Sie im Detail interessiert sind, empfehle ich: Physical Address Extension


Außerdem: Wenn möglich, aktiviert das normale 32-Bit-Installationsprogramm bei Bedarf automatisch den Kernel für die Erweiterung der physischen Adresse, sodass Sie Ihren gesamten Speicher nutzen können.
Stefano Palazzo

Wie von @StefanoPalazzo und anderen benachrichtigt, löst die Installation des PAE-Kernels das Problem. Suchen Sie einfach im synaptischen Paketmanager nach dem PAE-Kernel und installieren Sie ihn: hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey

1
@wisemonkey: Nein, ein PAE-Kernel hat mir nicht die vollen 4 GB gegeben. Weil ich bereits einen 64bit Kernel benutze und sogar die BIOS-Berichte: 4GB insgesamt -> 3,2GB nutzbar.
Aatdark

@aatdark: Hat Ihr BIOS-Setup das Feld "Shared Video Memory"? Wenn ja, können Sie es deaktivieren (nur empfohlen, wenn Sie eine diskrete Grafikkarte haben), aber wie gesagt, wenn der alte Computer vorhanden ist, kann der gesamte Speicher nicht adressiert werden.
Wisemonkey

1
"Die Intel Intel® 945-Basis-Chipsätze bieten einen maximalen Adressraum von 4 GB und unterstützen keine Speicherzuordnung. Da Teile dieser Adresse für andere Geräte reserviert werden müssen, können Sie nicht mehr als 3,2 GB Systemspeicher verwenden Ihre aktuelle Systemkonfiguration. Kein BIOS-Update oder 64-Bit-Betriebssystem wird dies jemals ändern. Dies ist eher ein Chipsatz als eine Karte oder eine BIOS-Einschränkung. "
Aatdark
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.