Wie viel RAM kann ein 64-Bit-Rechner theoretisch maximal ansprechen?

41890
KingNestor

Ich lese durch mein Computerarchitekturbuch und sehe, dass in einer x86-CPU mit 32-Bit der Programmzähler 32 Bit beträgt.

Die Anzahl der Bytes, die es adressieren kann, beträgt also 2 ^ 32 Bytes oder 4 GB. Daher ist es für mich sinnvoll, dass die meisten 32-Bit-Maschinen die RAM-Menge auf 4 GB beschränken (PAE ignorieren).

Ich gehe davon aus, dass eine 64-Bit-Maschine theoretisch 2 ^ 64 Byte oder 16 Exabyte RAM adressieren könnte ?!

21
Beachten Sie, dass dies mit keinem x86 64-Bit-Prozessor möglich ist. Ihre Caches haben nicht genug Tag-Bits, ihre Adressbusse haben nicht genug Breite und so weiter. 46 Bit (8 TB) ist das Maximum für viele moderne x86-CPUs. David Schwartz vor 11 Jahren 4
Theoretisch gibt es keine Begrenzung. Sogar 32-Bit-CPUs können einen Adressraum von mehr als 4 GiB haben. Dies hängt davon ab, wie das Speicherverwaltungssystem * in Hardware * implementiert wird, ** und ist * normalerweise ** unabhängig von der Wortlänge der CPU. Zeiger in Programmen haben immer eine Wortlänge, jedoch handelt es sich hierbei um virtuelle Adressen (und nicht um physische), daher werden sie weiter in einen anderen Adressraum abgebildet. Breakthrough vor 11 Jahren 4
Dies ist eine alte Frage mit alten Antworten, aber ich denke, dass die am meisten aufgegebenen Antworten auf diese Frage sehr irreführend sind, und sie sind Antworten auf _Wie viel RAM könnte eine Maschine mit einer 64 Bit breiten Adressbusadresse_. Wie David und Breakthrough oben ausgeführt haben, spiegelt die "Bitness" einer Architektur die Größe der Primärregister und nicht die Größe des Adressbusses wider. Sebi vor 9 Jahren 0
Warum sollten Sie PAE ignorieren? Jamie Hanrahan vor 8 Jahren 0

9 Antworten auf die Frage

28
Matt Ball

Theoretisch: 16,8 Millionen Terabyte. In der Praxis: Ihr Computergehäuse ist etwas zu klein, um den gesamten RAM-Speicher aufzunehmen.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors

Zu klein .... * heute !!!! * snicker vor 14 Jahren 13
16,777216 Millionen Tebibyte. Wenn Sie genau sein wollen. totymedli vor 10 Jahren 2
Ich habe in anderen Quellen gelesen, dass ein Prozessor nicht jedes Bit für den Zugriff auf den Speicher verwenden kann. Wird dies in Ihrer Antwort berücksichtigt? Andrey vor 10 Jahren 0
16
Conrad.Dean

Zur Ergänzung der Antwort von Matt Ball beträgt der derzeit größte RAM-Speicher, den ich bei einem bestimmten Online-Händler finden kann, 32 GB. 32 davon würden 1 Terabyte benötigen. Bei etwa einem halben Zoll pro Stick führt dies zu einem dedizierten 16 Zoll großen Platz auf Ihrem Motherboard für ein Terabyte kommerziellen RAM. Um 16,8 Millionen Terabyte zu erreichen, wären 4.242,42 Meilen eines Motherboards erforderlich. Die Entfernung von LA nach NYC beträgt ungefähr 2141 Meilen, so dass sich das Motherboard über das Land und zurück erstreckt, um so viel RAM unterzubringen.

Dies ist eindeutig unpraktisch.

Wie wäre es, wenn wir unseren RAM nicht wie bei den meisten Motherboards in einer Reihe angeordnet hätten, sondern stattdessen nebeneinander. Ich möchte sagen, dass der durchschnittliche Rammstock etwa sechs Zentimeter lang ist. Wenn wir also einen halben Zoll Breite zulassen, können Sie eine quadratische Einheit von 12 Rammstöcken in einem 6-Zoll-Quadrat haben. Nennen wir dieses Quadrat eine RAM-Kachel. Eine RAM-Kachel enthält dann 384 GB RAM. Um die benötigten 16,8 Millionen Terabyte in 384 GB-Kacheln zu erreichen, würden 44,8 Millionen Kacheln benötigt. Seien wir unordentlich und verwenden Sie die Quadratwurzel, um daraus zu schließen, dass dies in ein Quadrat von 6693 x 6694 Kacheln oder 13.386 x 13.388 Fuß passt Sie hatten nicht genug, um sich zu beklagen.

Zu groß. Warum legst du sie flach? Sie können alles in einem 100 'Würfel bekommen. Du brauchst wahrscheinlich flüssigen Stickstoff, um es kühl zu halten! Loren Pechtel vor 10 Jahren 2
Die Menge an Stickstoffgas, auf die sieden würde, würde ein Sicherheitsrisiko für die großen Einwohner von Seattle darstellen Conrad.Dean vor 10 Jahren 1
4
Adam Wright

Ja - Prozesse könnten theoretisch 2 ^ 64 Byte Speicher adressieren. Aber wie Sie darauf hingewiesen haben, gibt es Wege um diese Grenze herum.

3
supercat

Es gibt keine bestimmte feste Beziehung zwischen der Bitgröße eines Prozessors und der Menge des adressierbaren Speichers. Die meisten 8-Bit-Maschinen der späten 70er Jahre konnten problemlos direkt auf 65.536 Bytes zugreifen, die 16-Bit-Modelle 8088 und 8086 konnten direkt auf 1.048.576 Bytes zugreifen. Darüber hinaus ist es möglich, Hardware hinzuzufügen, um Maschinen den indirekten Zugriff auf jede beliebige RAM-Menge zu ermöglichen. Viele Maschinen mit 8-Bit-Prozessoren hatten 128 KByte oder mehr, und Speichererweiterungseinheiten für 8088-basierte PCs konnten auf über 16 Megabyte zugreifen. Obwohl Microsoft eine solche Funktion nur in "Server" -Versionen von Windows aktiviert hat, konnte 32-Bit-Code mit ähnlichen Ansätzen über die 4-GB-Marke hinaus auf Speicher zugreifen.

2

Du wärst richtig. Sie können bis zu 16 Exabyte RAM adressieren. Nun .. ob das Betriebssystem damit umgehen kann, wäre eine andere Frage ....

2
decasteljau

Es wäre auch gut anzumerken, dass das Betriebssystem in einer 64-Bit-Architektur seine eigenen Einschränkungen hinsichtlich des Speichers hat.

Sehen Sie sich beispielsweise an, was Wikipedia über Windows Vista 64 aussagt:

Alle 64-Bit-Versionen von Microsoft-Betriebssystemen schreiben derzeit eine Beschränkung von 16 TB für den Adressraum vor. Prozesse, die mit den 64-Bit-Editionen von Windows Vista erstellt wurden, verfügen über einen virtuellen Speicher von 8 TB für Benutzerprozesse und 8 TB für Kernelprozesse, um einen virtuellen Speicher von 16 TB zu erstellen. [29] In Bezug auf den physischen Speicher unterstützt Windows Vista 64-Bit Basic bis zu 8 GB RAM, Windows Vista 64-Bit Home Premium unterstützt bis zu 16 GB RAM und Windows Vista 64-Bit Business / Enterprise / Ultimate bis zu 128 GB von RAM. [8]

Aktuelle Informationen für Windows: http://msdn.microsoft.com/de-de/library/windows/desktop/aa366778.aspx Arjan vor 10 Jahren 0
1
Mark Ransom

Der größte Vorteil von 64 Bit ist nicht der RAM, den es ansprechen kann, sondern alles andere. Sie können beispielsweise für jedes Byte auf einer Platte eine Adresse definieren. Wenn Sie die Festplattenkapazität erhöhen, wird dies über Jahrzehnte nicht ungültig.

Da der derzeitige Prozessor diesen Adressraum künstlich begrenzt hat, kann es natürlich nur ein Jahrzehnt dauern, bis nicht mehr genügend Bits vorhanden sind, um jedes Byte auf einer Platte zu adressieren. In diesem Stadium werden die Grenzwerte hoffentlich angehoben, da die SSDs so aussehen, dass eine gesamte Festplatte als Speicherbereich erscheint, was die Leistung erheblich verbessern kann. Ich hätte nichts dagegen, eine SSD in einen RAM-Slot anstatt in ein SATA-Kabel zu stecken! Malvineous vor 9 Jahren 0
@ Malvineous Ich habe über etwas grundlegenderes gesprochen, auch wenn Sie sich auf 63 Bits beschränken, können Sie 9223372 TB direkt ansprechen. SSDs in einem RAM-Slot sind bereits vorhanden, siehe [Sandisk] (http://www.sandisk.com/enterprise/ulltradimm-ssd/). Mark Ransom vor 9 Jahren 0
Ich stimme Ihnen nicht zu, ich wies nur darauf hin, dass mit der derzeitigen Technologie künstliche Grenzen gesetzt sind (z. B. nur 48 oder 51 Bits der Adresse, die an den physischen Bus übergeben werden). Wenn sich diese DIMM-SSDs durchsetzen, könnten die Speicheradressen schneller als Sie vermuten, wenn Sie diese künstlichen Grenzwerte nicht erhöhen oder entfernen können. Ich stimme zu, wenn die vollen 64-Bit verfügbar wären, würde es Jahrzehnte dauern, bis es zu einem Problem wird. Malvineous vor 9 Jahren 0
Nur fürs Protokoll habe ich mir den SanDisk UlltraDIMM-Link angesehen, aber leider handelt es sich hierbei nicht um einen SSD-as-RAM. Es handelt sich um eine 6-Gbit / s-SATA-SSD mit einem DDR3-zu-SATA-Adapter, mit dem auf den Speicher zugegriffen werden kann, als wäre es der Speicher. Die zusätzliche Umwandlung von Speicheranforderungen in das SATA-Protokoll führt zu einer gewissen Latenz und wirkt etwas unordentlich. Hoffentlich wird jemand den Vorteil davon sehen und bald ein echtes Speicherinterface für Flash ohne unnötige Adapter dazwischen veröffentlichen! Malvineous vor 9 Jahren 0
0

Die meisten heutigen Prozessoren haben eine Art künstliches Limit für ihre Adressgröße. Die AMD64-Architektur hat beispielsweise eine Beschränkung auf physischen Speicher von 52 Bit und unterstützt derzeit nur einen virtuellen Adressbereich von 48 Bit. (Über Wikipedia). Ja, physisch sind ~ 16,4 Millionen Terabyte möglich.

-1
Weazel

Für eine realistische physische Antwort 1536 GB mit 48 RAM-Karten mit 32 GB Einzelsticks und 4x Lga2011 Xeons

Dies ist für den Esayist-PC, den jemand kaufen kann, ohne die verborgenen Hardcore-Server zu verletzen, die denken, dass es 64-GB-Einzelstics bringt, ... 3072 GB 128 GB werden 6144 GB 256 GB werden 12288 GB

Nur um herauszufinden, dass es Möglichkeiten gibt, die Einschränkungen des RAMs zu umgehen, wenn ur os nur 4 GB RAM sehen kann, wird der Rest in ein RAM-Laufwerk, und das RAM-Laufwerk wird als Seitendatei verwendet. XD XD XD XD ist nur eine Frage der Erstellung eines Preboot-Os system so etwas ähnliches wurde schon in den frühen Tagen von DOS / Windows 3.11 gemacht

und es kann andere kleine Hacks geben, um CPU-Einschränkungen zu umgehen

Ausrüstung, die wir sehen können, ist nicht wichtig, dass es dort viel mehr potentes Zeug gibt. Ich hatte einen PC mit 98 Prozessor-Prozessoren und etwas wie 32-GB-RAM, aber dies ist ein teurer Hi-End-Server

Ich schaue in Server als Desktops, weil ich die Computer für die öffentliche XD satt habe