it-swarm.com.de

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

Ich habe ein Asus U31SD Notebook mit einer i5-2430M CPU. Die Asus-Site gibt an, dass das maximale RAM 8 GB beträgt, Intel sagt jedoch, dass meine CPU 16 GB unterstützt. Was ist das Maximum an RAM, das ich auf diesem System unter Ubuntu verwenden kann?

25
crond

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-Erweiterungen auf 64-Bit-Hardware modifiziert wurde. Dies ist nicht der Fall noch 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
Maximal unterstützter Hauptspeicher - 8 GB
Ihr maximal unterstützter Speicher - 8 GB (da der niedrigste Wert zwischen der CPU und dem Motherboard ist)

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

FALL 3
Maximal unterstützter CPU-Speicher - 16 GB
Maximal unterstützter Hauptspeicher - 64 GB
Ihr maximal unterstützter Speicher - 16 GB (da der niedrigste Wert zwischen der CPU und dem 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 Steckplätze, 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 leichtere Erklärungen zu erhalten über Speicherbegrenzung)

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 dieser Architekturen verwenden können, sofern 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 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 über mehr als 64 GB RAM verfügen, müssen Sie 64-Bit verwenden

29
Luis Alvarado

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 Menge von RAM auf 2 ^ 48 aka 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.

6
turbo

Ich habe mir gerade zusätzliche 8 GB gekauft, um mein U31SD für insgesamt 12 GB zu nutzen. 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 16 zeigt Maximum Capacity: 16 GB an.

5
user77303

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.

1
Jacob Tomlinson

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).

0
MuffinStateWide

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 ein Zeiger mit einer Größe von 4 Byte kann 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 einige andere Möglichkeiten:

Die Menge von RAM 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" Adresszeilen bestimmt, um wie viel Sie Ihren RAM erweitern können.

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 führt die Möglichkeit ein, dass ein Programm versuchen kann, auf eine Adresse zuzugreifen, die keiner Speichereinheit entspricht, entweder weil nicht genügend Speicher installiert ist (d. H. Außerhalb des Bereichs des verfügbaren Speichers) oder weil 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 unterschiedliche Teile des Speichers zu unterschiedlichen 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, obwohl er nur 16 MB physischen Speicher unterstützt, auf bis zu 1GiB virtuellen Speicher zugreifen konnte, jedoch auf die Kombination von 16-Bit-Adress- und Segmentregister machten den Zugriff auf mehr als 64 KB in einer Datenstruktur umständlich. Einige Einschränkungen der ANSI-Zeigerarithmetik sind möglicherweise auf die segmentierten Speichermodelle dieser Prozessorfamilie zurückzuführen.

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 )

0
4pie0