Wie viel Speicher kann ein 64-Bit-Computer gleichzeitig adressieren?

Wenn der Speicher Byte-adressierbar ist, sollte es nicht

2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB ?

Eine Allgemeine Google-Suche sagt, 8GB oder 16GB max.

Wie ist das wahr? Wie hängt es auch vom Betriebssystem ab?

 34
Author: Moeb, 2010-07-25

6 answers

Es gibt mehrere interleaving Faktoren.

Zuallererst wirst du niemals in der Lage sein, ein System zusammenzustellen, das 264 bytes (16 exibytes) des physischen RAM.

Zweitens bedeutet dies nicht, dass alle Bits dieser Zeiger tatsächlich verwendet werden, nur weil eine Architektur 64-Bit-Zeiger verwendet. Insbesondere verwenden aktuelle x86-64-CPUs (auch bekannt als AMD64 und Intels aktuelle 64-Bit-Chips) tatsächlich 48-Bit-Adresszeilen (AMD64) und 42-Bit-Adresszeilen (Intel) (siehe http://en.wikipedia.org/wiki/X86_64#Virtual_address_space_details), theoretisch erlaubt 256 Terabyte physischen RAM.

Zweitens haben Motherboards ihre eigenen Grenzen, wie viel RAM sie sowohl physisch als auch logisch unterstützen können. Physisch wird es nur so viele Steckplätze für RAM geben. Was die "logischen" Grenzen betrifft, verstehe ich nicht ganz, warum dies immer noch bei x86-64 der Fall ist (der Speichercontroller wurde längst in die CPU selbst migriert), aber da ist es. Vermutlich werden Ecken an Adressleitungen geschnitten, um ein paar Dollar in Design und Herstellung zu sparen.

Drittens kann ein Betriebssystem interne Einschränkungen haben, wie viel RAM es effizient unterstützen kann. Zum Teil soll dies verhindern, dass zu große Datenstrukturen benötigt werden, um die Verwendung für Speicher zu verfolgen, der nicht wirklich vorhanden ist. Zuletzt habe ich überprüft, Linux erlaubt 128 TB virtuellen Adressraum pro Prozess auf x86-64 und kann theoretisch 64 TB physischen unterstützen ARBEITSSPEICHER.

Viertens begrenzen einige Betriebssysteme (z. B. Windows) künstlich, wie viel RAM als Taktik verwendet werden kann, um Benutzer auf teurere Versionen zu aktualisieren, wenn sie mehr RAM wünschen (Windows 7 Starter ist auf 2 GB begrenzt, Home Basic auf 8, Home Premium auf 16 und Professional und höher sind 192 GB, und Windows Server-Versionen haben weitaus höhere Grenzen).

 61
Author: Nicholas Knight,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-01 13:27:25

Wenn Sie MS Windows verwenden, wird der maximale Speicher vom Betriebssystem eingeschränkt.

Für Windows 7 sind die Höchstwerte:

  • Starter: 2GB
  • Home Basic: 8 GB
  • Home Premium: 16GB
  • - Profi: 192GB
  • Unternehmen: 192 GB
  • Ultimative: 192 GB

Windows Server 2008 reicht von 8 GB für die Einstiegsklasse bis 2 TB für die oberste Zeile.

Sehen http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx für eine vollständige ish-Liste.

Diese Grenzwerte sind in erster Linie aus Marketinggründen. Durch die Einschränkung der billigeren Versionen machen sie die High-End-Versionen (vergleichsweise) attraktiver.

Ich denke, dass aktuelle Linux-Builds mit etwa 32 TB RAM funktionieren, obwohl nicht alle Hardware dies unterstützen kann.

 10
Author: Michael J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-07-25 07:49:52

Eine 64-Bit-Maschine sollte in der Lage sein, bis zu 264 adressierbare Einheiten (in Architekturen, die in den letzten Jahrzehnten entworfen wurden, sind adressierbare Einheiten ausnahmslos Bytes, alias Oktette). Wenn Sie ein "Gigabyte" definieren als 230 adressierbare Einheiten, dann ja, 234 gigabyte wären eine andere Möglichkeit, dieselbe Anzahl auszudrücken.

Welche Google-Suche erzeugte diese lächerlichen winzigen Ergebnisse? Vielleicht hat die Seite, die Sie gefunden haben, über die RAM-Mengen gesprochen, die Sie kaufen können einigermaßen billige Boxen eines bestimmten Modells - Sie können auf jeden Fall viel mehr RAM haben (natürlich alle adressierbar), selbst in Boxen, die bei weitem nicht sehr teuer sind.

Betriebssysteme können und können auf jeden Fall die Menge an adressierbarem Speicher einschränken (zum Beispiel können sie dies tun, indem sie die Größe von Seitentabellen begrenzen, möglicherweise auf ein konfigurierbares Maximum, das durch Neukompilieren oder anderweitige Neukonfiguration des Betriebssystems festgelegt werden kann-es ist schwer, spezifischer zu sein, ohne sich auf einige spezifische Gruppe von OSS).

 8
Author: Alex Martelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-10-24 15:20:04

Sie können so viel RAM haben, wie Sie möchten, aber alles hängt vom Betriebssystem und der Anwendung ab, die Sie ausführen - wie jemand anderes angegeben hat.

Wenn Sie eine zusätzliche CPU-intensive Anwendung ausführen, die auch auf anderer Hardware wie Ihrer Festplatte intensiv ist, sollten Sie eine zweite CPU in einem völlig separaten Computer ernsthaft in Betracht ziehen. Beispiel: Ausführen einer Datenbankanwendung und eines E-Mail-Servers auf separaten Computern.

Es spielt keine Rolle, wie viel Speicher Sie haben - auf dem heutigen Markt wird das ganze System zum Stillstand kommen. Einzelne CPUs können das Multitasking einfach nicht so handhaben, wie Sie es erwarten würden.

Für einen einzelnen Computer mit viel Speicher ist es besser, aber nicht so brillant, wenn mehrere Anwendungen auf demselben System ausgeführt werden - unabhängig von der installierten Speichermenge. Dies ist der Grund, warum große Unternehmen nicht nur 64-Bit-Architektur verwenden, um mehr Speicher zu adressieren, sondern auch das gesamte Los mit zwei oder mehr Lastausgleich Webservern.

Wenn Sie die Leistung wirklich ernst nehmen, gehen Sie auf jeden Fall 64 Bit, aber berücksichtigen Sie auch den Lastenausgleich mit einem zweiten Server.

Ich war auf diesem Weg - konfiguriere eine einzelne Maschine mit maximalem RAM. Bei mehreren Anwendungen läuft es jedoch immer noch wie ein Hund. Das liegt daran, dass die CPU selbst einfach nicht damit umgehen kann.

Mein Rat ist, Ihr Geld auf dem Speicher zu speichern und einen zweiten Server zu kaufen und dann die beiden auszugleichen. Es ist viel einfacher plus-einmal sie kommen in den Griff - es ist einfach zu erweitern, wenn Sie mehr Rechenleistung und Geschwindigkeit benötigen.

Außerdem kann eine 64-Bit-Architekturmaschine mit 32-Bit-Software umgehen, aber mit einer 32-Bit-Maschine sind Sie auf nur 32-Bit oder weniger Anwendungen beschränkt-einschließlich des Betriebssystems.

Da der gesamte Markt sowohl in Bezug auf Hardware als auch Software 64-Bit ist, würde ich empfehlen, langfristig 64-Bit zu verwenden, aber vergessen Sie die Idee, alles auf eine einzige Maschine mit Bucket zu quetschen viel Speicher, weil Sie enttäuscht sein werden.

Wenn Sie sich nicht sicher sind, was "Load Balancing"ist, googeln Sie es.

 3
Author: ThinkBIG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-07-24 00:20:26

Ich denke, es kann mehr als ein Exabyte "EB"dauern.

Schau dir diesen 32-Bit-Prozessor an 232 B = 4 GB, aber höchstens 3 GB "weil sie 1 GB für umgekehrte Adressen sind"

Das bedeutet, dass 64-Bit-Prozessor nehmen kann 264 B = 16 EB, aber ich kann nicht, wie Adressen, die für umgekehrt gesperrt wurden, verwendet werden. so können wir sagen, 64-Bit-Prozessor nehmen mehr als 1 EB. und diese Spezifikation hängt nicht davon ab, was das Betriebssystem der PC verwendet oder was sein Modell.

 2
Author: Mohammad Malkawie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-01 13:14:37

Am Beispiel einer Intel-oder AMD-CPU gibt es sowohl für den physischen als auch für den virtuellen Speicher mehrere Einschränkungen. Andere Leute haben über Hardware-Pin-Out-und Motherboard-Einschränkungen gesprochen, aber es gibt auch interne Einschränkungen.

Ein Terminalseitentabelleneintrag in der MMU enthält 52 signifikante Bits physikalischer Adresse und kann theoretisch bis zu 4096 TB physischen RAM zuordnen.

Die MMU implementiert eine 4-stufige Seitentabelle, deren oberste Ebene aus 512 × 512 GB Einträgen besteht. Der virtuelle Speicher ist also auf 256 TB begrenzt.

Soweit ich weiß, implementieren alle 64-Bit - Betriebssysteme ein DMAP (eine Direct-Map), was sehr praktisch ist. Da der virtuelle Speicher jedoch auf 256 TB begrenzt ist, ist auch die Größe des DMAP begrenzt. Normalerweise sind 128 TB für den Benutzermodus und 128 TB für den Kernel reserviert. Von diesen 128 TB für den Kernel kann bis zur Hälfte für den DMAP reserviert werden. Aufgrund der Nützlichkeit des DMAP beschränken Betriebssysteme normalerweise den physischen Speicher auf das, was der DMAP kann damit umgehen.

Also die meisten (alle?) 64-Bit-Betriebssysteme für Intel / AMD Der unterstützte physische Speicher ist auf etwa 64 TB begrenzt, sodass 64 TB für den allgemeinen virtuellen Kernelspeicher und 128 TB für den virtuellen Benutzerspeicher verbleiben.

--

Intern für die CPU haben die CPU-Caches auch eine Begrenzung der Anzahl der physischen Adressbits, die sie speichern, da jedes zusätzliche Adressbit mehr Transistoren für das Cache-Tag frisst. DRAM controller pin einschränkungen sind nicht unbedingt das letzte Wort, da Speicher auch über DMI-Links angesprochen werden kann.

, Verschiedene CPU-Architekturen (z.B. ARM -, PowerPC, etc.) wird unterschiedliche Einschränkungen haben.

 1
Author: Matthew Dillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-12-03 23:22:40