Was ist die maximale Menge an RAM, die ich auf einer bestimmten Hardware verwenden kann

26

Ich habe ein Asus U31SD Notebook mit einer i5-2430M CPU. Der Asus-Standort gibt an, dass der maximale Arbeitsspeicher 8 GB beträgt, aber laut Intel unterstützt meine CPU 16 GB. Was ist der maximale Arbeitsspeicher, den ich auf diesem System unter Ubuntu verwenden kann?

crond
quelle
3
Zusammenfassend lässt sich sagen, dass Ihr Notebook aufgrund der Einschränkungen Ihres Motherboards nur 8 GB RAM verwenden kann. Sie können dies anhand der folgenden Frage überprüfen: askubuntu.com/questions/140322/…
reverendj1
Allen möchte ich darauf hinweisen, dass die Firma "corsair", die Speicher herstellt, einen Speicherortungsdienst hat, der Ihnen allgemein sagt, wie viel RAM Ihr System maximal verwenden kann. Sie können auch die technischen Datenblätter für Ihr Modellsystem lesen, indem Sie sie online suchen. Sie erfahren, wie viel RAM Sie verwenden können.
Thomas Ward
@The Lord of Time: irgendein Link?
0xC0000022L
Corsair Memory Finder / Configurator für das System, auf das in der Frage verwiesen wird : www2.corsair.com/configurator/… || Corsair Memory Finder (Startseite): corsair.com/us/learn_n_explore (Sie werden für ihre Produkte werben, aber ich kann dies als allgemeine Grundlage für die Suche nach semi-genauen Spezifikationen für Max-Memory verwenden
Thomas Ward

Antworten:

29

Die Grenze liegt tatsächlich zwischen Ihrer Hardware (Motherboard-Speicherunterstützung und Anzahl der Steckplätze) und der Ubuntu-Version (32 Bit, 32 Bit + PAE, x32ABI, 64 Bit).

Wenn Sie ein Motherboard haben, das maximal 4 GB unterstützt, spielt es keine Rolle, ob Sie 32-Bit, 32-Bit-PAE oder 64-Bit verwenden, da Sie ein Hardwarelimit von 4 GB haben.

Wenn Sie jedoch ein Motherboard kaufen, das mehr Arbeitsspeicher unterstützt, können Sie mit den Versionen von Ubuntu experimentieren, die über den folgenden maximal unterstützten Arbeitsspeicher verfügen:

Ubuntu 32 Bit - 4 GB RAM

Ubuntu 32 Bit + PAE (physikalische Adresserweiterung) - 64 GB RAM

Ubuntu x32ABI - 4 GB RAM (Dies ist eine 32-Bit-Architektur, die mit 64-Bit-Verbesserungen auf 64-Bit-Hardware modifiziert wurde. Sie ist noch nicht verfügbar.)

Ubuntu 64 Bit - VIEL! (Eigentlich 2 ^ 64), aber aufgrund von Hardwarebeschränkungen und realen Computern liegt die Grenze bei 1 TB (1024 GB RAM).

Daher sollte die Frage nach dem Speicherlimit verwendet werden, wenn Sie mehr als 4 GB RAM verwenden. In diesem Fall benötigen Sie entweder 32-Bit-PAE oder 64-Bit-PAE, die wirklich große Speichergrößen unterstützen.

Beachten Sie auch, dass Sie Ubuntu nicht neu installieren oder Änderungen vornehmen müssen, wenn Sie zum Beispiel gerade 4 GB haben und 16 GB RAM kaufen. Ändere einfach die Erinnerungen und Ubuntu sollte sie sofort lesen und damit arbeiten. Keine Konfiguration notwendig. Wenn Sie über 32 Bit mit 4 GB RAM verfügen und 16 GB oder RAM installieren, wechselt Ubuntu automatisch von 32 Bit zu 32 Bit PAE. Dafür kann ich mich verbürgen, da ich Anfang dieses Jahres von 4 GB auf 16 GB umgezogen bin.

Hier ist ein Link zu einer sehr guten Erklärung für Ubuntu zum Speicher in 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

UPDATE - Ich habe vergessen hinzuzufügen, dass einige Motherboards BIOS-Updates enthalten, mit denen der maximal unterstützte Speicher aktiviert, korrigiert oder erweitert werden kann. Beispielsweise hatten einige Intel-Motherboards in der Vergangenheit Probleme, mit dem von ihnen unterstützten Maximum zu arbeiten. Ein BIOS-Update hat dies behoben. Andere Motherboards hatten aufgrund eines BIOS-Problems Unterstützung für 4 GB. Nach dem Upgrade hatten sie Unterstützung für mehr als 4 GB.

Vergleicht man auch den maximal unterstützten Speicher für die CPU und das Motherboard, so ist das Maximum, das Sie haben können, das Minimum von jedem von ihnen. Also zum Beispiel:

FALL 1
Maximal unterstützter CPU-Speicher - 16 GB
Motherboard Maximal unterstützter Speicher - 8 GB
Ihr maximal unterstützter Speicher - 8 GB (da der niedrigste Wert zwischen CPU und Motherboard ist)

FALL 2
Maximal unterstützter CPU-Speicher - 16 GB
Motherboard Maximal unterstützter Speicher - 32 GB
Maximal unterstützter Speicher - 16 GB (da der niedrigste Wert zwischen CPU und Motherboard ist)

FALL 3
Maximal unterstützter CPU-Speicher - 16 GB
Motherboard Maximal unterstützter Speicher - 64 GB
Maximal unterstützter Speicher - 16 GB (da der niedrigste Wert zwischen CPU und Motherboard ist)

Der Grund für diese Memory-Limit-Beziehung zur CPU sind technische Änderungen von Intel mit den neuesten Core-CPUs.

In Ihrem Fall haben Sie also ein Motherboard, das 8 GB unterstützt, und eine CPU, die 16 GB unterstützt. Dies bedeutet, dass Sie maximal 8 GB haben können, was von der Anzahl der Steckplätze im Motherboard abhängt. In diesem Asus haben Sie 2 Slots, was bedeutet, dass Sie zwei 4 GB RAM haben können, um das Maximum von 8 GB zu vervollständigen.

Weitere Informationen zu x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (Empfehlen Sie das Lesen von Kommentaren, um Erläuterungen zur Speicherbegrenzung zu erhalten.)

Google - http://sites.google.com/site/x32abi/

Schließlich sind seit Ubuntu 12.04 alle 32-Bit-Versionen von Ubuntu standardmäßig mit PAE aktiviert, sodass alle 32-Bit-Versionen maximal 64 GB RAM unterstützen. Wenn Sie 12.04+ verwenden und wissen möchten, welche Architektur verwendet werden soll, wissen Sie jetzt, dass Sie eine davon verwenden können, solange Sie einige Empfehlungen befolgen:

  • Wenn Sie über 512 MB RAM oder weniger verfügen, wird die Verwendung von 32 Bit dringend empfohlen

  • Wenn Sie weniger als 4 GB RAM, aber mehr als 512 MB RAM haben, wird die Verwendung von 32 Bit empfohlen (Sie können jedoch weiterhin 64 Bit verwenden).

  • Wenn Sie über 4 GB RAM verfügen, wird die Verwendung von 32 Bit empfohlen (Sie können jedoch weiterhin 64 Bit verwenden).

  • Wenn Sie zwischen 4 GB oder RAM und 64 GB RAM haben, können Sie entweder 32 Bit oder 64 Bit verwenden. Es wird jedoch empfohlen, 64 Bit zu verwenden.

  • Wenn Sie mehr als 64 GB RAM haben, müssen Sie 64 Bit verwenden

Luis Alvarado
quelle
Luis, bist du sicher, dass die 4-GB-Grenze für x32 gilt? Das wäre traurig. Ich habe in einem Artikel gelesen, dass x32 mehr als 4 GB unterstützt. Was ist auch mit PAE?
Turbo
@turbo - Das ist eine sehr gute Frage, für die ich eine Weile gebraucht habe. Ich antworte mit 4 GB aufgrund dieses Teils der Erklärung zu "Was ist x32abi?": Mit X32 ABI können Programme im 64-Bit-Modus mit 32-Bit-Zeigern ausgeführt werden. Da es mit 32-Bit-Zeigern arbeitet, bedeutet dies, dass der maximale Arbeitsspeicher, mit dem es arbeiten kann, 4 GB beträgt. Natürlich weiß ich nicht, ob es einen x32abi-PAE-Modus gibt, aber da dies eine Möglichkeit ist, 32-Bit-Programme auszuführen, um einige der Vorteile von 64-Bit zu nutzen, ohne den doppelten RAM für Aufgaben zu verwenden, kam ich zu dem Schluss, dass dieser auf 32-Bit beschränkt ist bis 4 GB RAM.
Luis Alvarado
1
Tatsächlich ist die Grenze für 64 Bit 2 ^ 48 Bytes, und x32 ist dieselbe, nur auf 4 GB pro Prozess für x32-Prozesse beschränkt. x32 führt einen 64-Bit-Kernel aus, sodass einige vollständige 64-Bit-Programme ausgeführt werden können. x32 erstellt die meisten Programme jedoch so, dass nur 32-Bit-Programme verwendet werden.
Psusi
6

Für 32-Bit beträgt das theoretische Limit 2 ^ 32 = 4096 MB, aber ab Ubuntu 12.04 ist die PAE (Physical Address Extension) standardmäßig mit einem Limit von 2 ^ 36 = 64 GB aktiviert.

Für 64 Bit sollte es theoretisch 2 ^ 64 = 16 777 216 TB (ja, das sind Terabyte) sein. In Wirklichkeit ist die RAM-Größe auf 2 ^ 48 bzw. 256 TB RAM begrenzt.

Da die theoretischen Grenzen in einem normalen Laptop nicht wirklich erreicht werden können, liegt die tatsächliche Beschränkung in der Menge der Speichersteckplätze (normalerweise 1-2) in Ihrem Notebook und der Unterstützung durch den Chipsatz. 8-16 GB sind hier realistisch, wenn Sie bereit sind, viel Geld für 8 GB-Module zu bezahlen.

Turbo
quelle
Also kann ich sicher 2x 8gb Module kaufen und davon ausgehen, dass sie funktionieren? (Ich laufe 64bit, derzeit mit 8GB RAM)
Crond
Naja sicher ...; P Andere Notebooks mit Intel HM65 Express Chips unterstützen ja 16 GB (Asus G74SX-TZ293V).
Turbo
6

Ich habe mir gerade zusätzliche 8 GB gekauft, um mein U31SD für insgesamt 12 GB einzulegen. Obwohl auf der Asus-Spezifikationsseite 8 GB als Limit angegeben sind, funktioniert dies einwandfrei. Hat memtest86 bestanden und ist für 64bit Ubuntu sichtbar.

Ich habe das neueste BIOS-Update installiert und bin mir nicht sicher, ob das einen Unterschied macht.

Zu Ihrer Information, die Ausgabe von sudo dmidecode -t 16zeigt an Maximum Capacity: 16 GB.

user77303
quelle
1

Dies ist eine Einschränkung für das Motherboard und nicht für die CPU. Die CPU kann möglicherweise bis zu 16 GB unterstützen. Wenn das Motherboard jedoch nur 8 GB aufnehmen kann, ist dies Ihr Limit.

Wenn Sie unter Ubuntu 32-Bit verwenden, liegt Ihr Limit bei 4 GB, und wenn Sie 64-Bit verwenden, ist es viel höher (ich kann mich nicht sicher erinnern, aber es liegt weit über 16 GB.

Aber Sie werden immer von Ihrer Hardware eingeschränkt sein. Sie müssen immer das Motherboard-Limit und das CPU-Limit vergleichen und den niedrigsten Wert als PC-Limit verwenden.

Jacob Tomlinson
quelle
0

In Ihrem speziellen Fall sind 8 GB darauf zurückzuführen, dass Ihr Motherboard nicht mehr als diese RAM-Größe unterstützt.

Ubuntu selbst unterstützt jedoch maximal 4 GB für 32 Bit, 64 GB für 32-Bit- PAE und 128 GB für 64 Bit (obwohl die Obergrenze für 64 Bit theoretisch viel höher ist).

MuffinStateWide
quelle
0

Es gab viele Fragen, die die Größe eines Zeigers bestimmen. Grundsätzlich kann man als Faustregel sagen, dass dies Prozessorarchitektur ist,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Um 8 GB RAM zu adressieren, benötigen Sie 8.589.934.592 Zuordnungen, und Zeiger der Größe 4 Bytes können nicht alle möglichen Werte adressieren. Aus diesem Grund kann ich auf einer x86-Architektur nicht mehr als 4 GB RAM haben.

Es gibt jedoch noch einige andere Möglichkeiten:

Die RAM-Größe ist nicht durch die Architektur begrenzt (32 oder 64 Bit). Die Architektur entscheidet nur darüber, wie viel Speicher gleichzeitig vom Betriebssystem und den darauf ausgeführten Programmen adressiert werden kann. Auf einem 32-Bit-Computer, dh einem Computer mit 32-Bit-Speicherbus, können das Betriebssystem und die Programme nur 4 GB Speicher "sehen". Das heißt aber nicht, dass nur 4 GB RAM zur Verfügung stehen. Wenn der Hersteller dies vorgesehen hat, können Sie über 16 GB oder 4 x 4 GB RAM verfügen. In diesem Fall gibt es zwei weitere "versteckte" Adresszeilen und eine fest codierte Logik, um die Pegel dieser zwei Zeilen zu bestimmen, und somit einen der verfügbaren 4-GB-RAMs auszuwählen - 00 01 10 11. Diese "verborgenen" Adressbits werden von den Softwareschichten nicht verwendet, sodass sie für diese Schichten nur einen 4-Byte-Zeiger verwenden können. Die Anzahl dieser "versteckten"

Dies ist nur ein Beispiel. Es hängt vom Hersteller ab, wie er sich für die Bereitstellung des zusätzlichen Arbeitsspeichers entscheidet.

siehe auch:

Im Normalfall ist ein Zeiger groß genug, um mehr Adressen zu speichern, als Speichereinheiten im System vorhanden sind. Dies eröffnet die Möglichkeit, dass ein Programm versucht, auf eine Adresse zuzugreifen, die keiner Speichereinheit entspricht, weil entweder nicht genügend Speicher installiert ist (dh außerhalb des Bereichs des verfügbaren Speichers) oder die Architektur solche Adressen nicht unterstützt. Der erste Fall kann auf bestimmten Plattformen wie der Intel x86-Architektur als Segmentierungsfehler (Segfault) bezeichnet werden. Der zweite Fall ist in der aktuellen Implementierung von AMD64 möglich, wo Zeiger 64 Bit lang sind und Adressen sich nur auf 48 Bit erstrecken. Dort müssen Zeiger bestimmten Regeln (kanonischen Adressen) entsprechen. Wenn also ein nicht-kanonischer Zeiger dereferenziert wird, löst der Prozessor eine allgemeine Schutzverletzung aus.

Auf der anderen Seite haben einige Systeme mehr Speichereinheiten als Adressen. In diesem Fall wird ein komplexeres Schema wie Speichersegmentierung oder Paging verwendet, um verschiedene Teile des Speichers zu verschiedenen Zeiten zu verwenden. Die letzten Inkarnationen der x86-Architektur unterstützen bis zu 36 Bit physische Speicheradressen, die über den PAE-Paging-Mechanismus dem 32-Bit-Adressraum zugeordnet wurden. Somit kann jeweils nur auf 1/16 des möglichen Gesamtspeichers zugegriffen werden. Ein weiteres Beispiel in derselben Computerfamilie war der 16-Bit-geschützte Modus des 80286-Prozessors, der zwar nur 16 MB physischen Speicher unterstützt, jedoch auf bis zu 1 GB virtuellen Speicher zugreifen kann, jedoch die Kombination aus 16-Bit-Adresse und Segment Register machten den Zugriff auf mehr als 64 KB in einer Datenstruktur umständlich.

Um eine konsistente Schnittstelle bereitzustellen, stellen einige Architekturen speicherabgebildete E / A bereit, mit denen sich einige Adressen auf Speichereinheiten beziehen können, während sich andere auf Geräteregister anderer Geräte im Computer beziehen. Es gibt analoge Konzepte wie Datei-Offsets, Array-Indizes und Remote-Objektreferenzen, die zum Teil denselben Zweck erfüllen wie Adressen für andere Objekttypen.

(mehr hier )

4pie0
quelle