Was ist die maximale Menge an RAM, die eine 64-Bit-Maschine theoretisch ansprechen kann?


21

Ich lese in meinem Buch zur Computerarchitektur und sehe, dass in einer x86-32-Bit-CPU der Programmzähler 32-Bit ist.

Die Anzahl der Bytes, die adressiert werden können, beträgt 2 ^ 32 Bytes oder 4 GB. Daher ist es für mich sinnvoll, dass die meisten 32-Bit-Computer die RAM-Größe auf 4 GB beschränken (PAE wird ignoriert).

Habe ich recht mit der Annahme, dass eine 64-Bit-Maschine theoretisch 2 ^ 64 Bytes oder 16 Exabytes RAM adressieren könnte ?!


4
Beachten Sie, dass dies kein vorhandener x86-64-Bit-Prozessor kann. Ihre Caches haben nicht genug Tag-Bits, ihre Adressbusse haben nicht genug Breite und so weiter. 46 Bit (8 TB) sind das Maximum für viele moderne x86-CPUs.
David Schwartz

4
Theoretisch gibt es keine Grenzen. 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 ist , die normalerweise unabhängig von der Wortlänge der CPU ist. Zeiger in Programmen haben immer die Wortlänge, sind jedoch virtuelle Adressen (und nicht physikalisch), sodass sie weiter in einen anderen Adressraum abgebildet werden.
Durchbruch

Dies ist eine alte Frage mit alten Antworten, aber ich bin der Meinung, dass die am besten bewerteten Antworten auf diese Frage sehr irreführend sind und Antworten auf Wie viel RAM könnte ein Computer mit einer 64-Bit breiten Adressbusadresse haben . Wie David und Breakthrough oben ausgeführt haben, spiegelt die "Bitigkeit" einer Architektur die Größe der Primärregister wider, nicht die Größe des Adressbusses.
Sebi

Warum würden Sie PAE ignorieren?
Jamie Hanrahan

Antworten:


28

Theoretisch: 16,8 Millionen Terabyte. In der Praxis: Ihr Computergehäuse ist etwas zu klein, um in den gesamten Arbeitsspeicher zu passen.

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


13
Zu klein .... heute !!!!
kichern

2
16,777216 Millionen Tebibyte. Wenn Sie präzise sein wollen.
Totymedli

Ich habe in anderen Quellen gelesen, dass ein Prozessor nicht jedes Bit für den Speicherzugriff verwenden kann. Wird dies in Ihrer Antwort berücksichtigt?
Andrey

17

Um die Antwort von Matt Ball zu ergänzen, ist der derzeit größte RAM-Stick, den ich bei einem bestimmten Online-Händler finden kann, 32 GB. 32 davon würden benötigt, um 1 Terabyte zu erreichen. Bei einer Größe von etwa einem halben Zoll pro Stick stehen uns auf Ihrem Motherboard 16 Zoll Platz für ein Terabyte kommerziellen RAM zur Verfügung. Um 16,8 Millionen Terabyte zu erreichen, wäre ein Motherboard mit 4.242,42 Meilen erforderlich. Die Entfernung von LA nach NYC beträgt ungefähr 2141 Meilen, sodass sich das Motherboard über das ganze Land und zurück erstreckt, um so viel RAM unterzubringen.

Das ist natürlich unpraktisch.

Wie wäre es, wenn wir unseren Arbeitsspeicher nicht wie bei den meisten Motherboards in einer Reihe platzieren, sondern nebeneinander platzieren würden? Ich möchte sagen, dass der durchschnittliche RAM-Stab ungefähr 6 Zoll lang ist. Wenn wir also einen halben Zoll für die Breite zulassen, können Sie eine quadratische Einheit von 12 RAM-Stäben in einem 6-Zoll-Quadrat haben. Nennen wir dieses Quadrat eine RAM-Kachel. Eine RAM-Kachel enthält dann 384 GB RAM. Um die erforderlichen 16,8 Millionen Terabyte in 384 GB-Kacheln zu erreichen, wären 44,8 Millionen Kacheln erforderlich. Lassen Sie uns chaotisch sein und die Quadratwurzel daraus ziehen, um zu schließen, dass dies in ein Quadrat mit 6693 mal 6694 Fliesen oder 13.386 mal 13.388 Fuß passt, was nahe genug an 2.5 Meilen im Quadrat ist, um die Innenstadt von Seattle im Schatten zu bedecken, als ob Sie hatten nicht genug, um sich zu beschweren.


2
Zu groß. Warum legst du sie flach? Sie können alles in einem 100 'Würfel bekommen. Sie werden wahrscheinlich flüssigen Stickstoff brauchen, um es kühl zu halten!
Loren Pechtel

1
Die Menge an Stickstoffgas, die kochen würde, würde ein Sicherheitsrisiko für die großen Leute von Seattle darstellen
Conrad.Dean

Eine mögliche Korrektur. Da eine Kachel 6 "mal 6" groß ist, würde dies nicht eher die Fläche von 3346,5 mal 3347 Fuß (die Hälfte der Kachelanzahl) als die angegebene 13.386 ausmachen, was der doppelten Kachelanzahl entspricht. Auch ein anderes Thema, das offenbar niemand angesprochen hat. Nehmen Sie die beste Anordnung an: ein Kreis, der Radius muss ungefähr 1.890 Fuß betragen, um den erforderlichen Bereich einzuschließen. Grace Hopper wies darauf hin, dass die Übertragungslatenz über Kupfer etwa eine Nanosekunde pro Fuß beträgt. Das bedeutet, dass die Umlauflatenz zum äußeren Ring ~ 3,78 Mikrosekunden beträgt. Das ist etwas langsam für den Hauptspeicher. IMEHO.
Dgnuff

4

Tatsächlich könnten Ja-Prozesse theoretisch 2 ^ 64 Bytes Speicher adressieren. Aber wie Sie betont haben, gibt es Möglichkeiten, diese Grenze zu umgehen.


3

Es gibt keine bestimmte feste Beziehung zwischen der Bitgröße eines Prozessors und der Größe des adressierbaren Speichers. Die meisten 8-Bit-Computer der späten 1970er Jahre konnten problemlos direkt auf 65.536 Byte zugreifen, die 16-Bit-Computer 8088 und 8086 konnten direkt auf 1.048.576 Byte zugreifen. Zusätzlich ist es möglich, Hardware hinzuzufügen, damit Maschinen indirekt auf eine beliebige Menge an RAM zugreifen können. Viele Computer mit 8-Bit-Prozessoren hatten 128 KB oder mehr, und Speichererweiterungseinheiten für 8088-basierte PCs konnten auf über 16 MB zugreifen. Obwohl Microsoft eine solche Funktion nur in "Server" -Versionen von Windows aktiviert hat, war es mit ähnlichen Ansätzen möglich, dass 32-Bit-Code auf Speicher über die 4-GB-Marke hinaus zugreift.


2

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


2

Wäre auch gut zu bemerken, dass das Betriebssystem eine eigene Einschränkung in Bezug auf Speicher in einer 64-Bit-Architektur hat.

Sehen Sie sich zum Beispiel an, was Wikipedia über Windows Vista 64 sagt:

Alle 64-Bit-Versionen von Microsoft-Betriebssystemen beschränken den Adressraum derzeit auf 16 TB. In den 64-Bit-Editionen von Windows Vista erstellte Prozesse können einen virtuellen Speicher von 8 TB für Benutzerprozesse und 8 TB für Kernelprozesse aufweisen, 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 bis zu 16 GB RAM und Windows Vista 64-Bit Business / Enterprise / Ultimate bis zu 128 GB von RAM.



1

Der größte Vorteil von 64 Bit ist nicht der RAM, den es adressieren kann, sondern alles andere. Sie können beispielsweise für jedes Byte auf einer Festplatte eine Adresse definieren, und eine Erhöhung der Festplattenkapazität macht dies jahrzehntelang nicht ungültig.


Natürlich, da aktuelle CPUs diesen Adressraum künstlich begrenzt haben, kann es nur ein Jahrzehnt dauern, bis nicht mehr genug Bits vorhanden sind, um jedes Byte auf einer Platte mehr zu adressieren. Zu diesem Zeitpunkt sind die Grenzen hoffentlich höher, da SSDs immer häufiger eingesetzt werden. Dadurch wird eine gesamte Festplatte als Speicherbereich angezeigt, der die Leistung erheblich verbessern kann. Es würde mir nichts ausmachen, eine SSD in einen RAM-Steckplatz anstatt in ein SATA-Kabel zu stecken!
Malvineous

@Malvineous Ich habe über etwas grundlegenderes gesprochen, auch wenn Sie sich auf 63 Bit beschränken, können Sie 9223372 TB direkt ansprechen. Und SSDs in einem RAM-Steckplatz sind bereits vorhanden, siehe Sandisk .
Mark Ransom

Ich war nicht anderer Meinung als Sie, ich habe nur darauf hingewiesen, dass es mit der aktuellen Technologie künstliche Grenzen für Ihre Vorschläge gibt (z. B. nur 48 oder 51 Bit der Adresse, die an den physischen Bus gesendet wird). Wenn sich diese DIMM-SSDs durchsetzen, haben wir möglicherweise früher als von Ihnen vorgeschlagen keine ausreichenden Speicheradressen mehr, es sei denn, diese künstlichen Grenzen können erhöht oder aufgehoben werden. Ich stimme zu, wenn die vollen 64-Bit verfügbar wären, würde es Jahrzehnte dauern, bis es zu einem Problem wird.
Malvineous

Nur zur Veranschaulichung habe ich mir den SanDisk UlltraDIMM-Link angesehen, aber leider ist dies technisch keine SSD-as-RAM. Es handelt sich um eine 6-Gbit / s-SATA-SSD mit einem DDR3-zu-SATA-Adapter, auf den zugegriffen werden kann, als wäre es Speicher. Die zusätzliche Konvertierung von Speicheranforderungen in das SATA-Protokoll führt zu einer gewissen Latenz und wirkt etwas unübersichtlich. Hoffentlich wird jemand den Nutzen davon sehen und bald ein echtes Speicherinterface zum Flashen ohne unnötige Adapter dazwischen veröffentlichen!
Malvineous

0

Die meisten der heutigen Prozessoren haben eine künstliche Begrenzung ihrer Adressgröße. Die AMD64-Architektur hat beispielsweise eine 52-Bit-Beschränkung für den physischen Speicher und unterstützt derzeit nur einen virtuellen 48-Bit-Adressraum. (Über Wikipedia). Allerdings sind physikalisch ~ 16,4 Millionen Terabyte möglich.


-1

Für eine realistische physische Antwort 1536 GB mit 48 RAM-Karten mit 32 GB Single-Sticks und 4x LGA2011-Xeons

Dies ist für den esayistischen PC, den jemand kaufen kann, ohne versteckte Hardcore-Server zu durchbrechen

Nur um herauszufinden, dass es Möglichkeiten gibt, die Einschränkungen von RAM zu umgehen, wenn Ihr Betriebssystem nur 4 GB RAM sieht, verwandeln Sie das übrig gebliebene RAM in ein RAM-Laufwerk und verwenden Sie das RAM-Laufwerk als Auslagerungsdatei XD XD XD XD System In den Anfängen von DOS / Windows 3.11 usw. wurde so etwas Ähnliches gemacht

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

Ausrüstung, die wir sehen können, ist nicht da draußen, es gibt viel potenteres Zeug. Ich hatte einen PC von 98 mit 8 Prozessoren und etwas wie 32 GB RAM, aber das sind teure Hi-End-Server

Ich suche nach Servern als Desktops, weil ich die Computer für die öffentliche XD satt habe

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.