Warum unterstützt meine CPU nur 32 GB RAM mit 39 Adressbits?

1676
Lord Loh.

Folgendes ist die Ausgabe von cat /proc/cpuinfo

user@localhost:~$ cat /proc/cpuinfo  processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz stepping : 3 microcode : 0x12 cpu MHz : 800.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid bogomips : 6784.48 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: 

Nun, 39 Bits sollten 512 GiB adressierbaren physischen Speicher bringen. Die Intel® Core ™ i3-4130-CPU bei 3.40 GHz unterstützt jedoch nur 32 Gigabit. Warum ist das? Wie kann ich diese Berechnung in Einklang bringen?

Ich frage nicht nach der Anzahl der Steckplätze im Motherboard, den maximalen RAM- / DIMM-Karten usw. Ich suche, wie die physischen Bits, die Adressleitungen und die maximale Menge an physischem RAM passen.

48 Bit sollten außerdem 256 TB virtuellen Adressraum ausmachen. Ist das wahr??

6
Nur weil der Adressraum nicht bedeutet, dass Ihr System genug unterstützt, und ausreichend große RAM-Schlitze vorhanden sind. IIRC: Sie können mit 4x rdimms maximal 128 verwenden und reguläre ddr4-Sticks mit 16 GB pro Stick). Bei älteren Systemen war die * Größe * pro RAM-Stick noch kleiner - mein Core i7 3770 unterstützt 32 GB DDR3, da ich 4 Slots (und ein Mini-Itx kann 2 Slots haben), und der größte RAM-Stick, den ich bekommen konnte, ist 8 GB . Journeyman Geek vor 8 Jahren 0
Es könnte sein, dass [wie physischer Speicher angesprochen wird] (http://lackingrhoticity.blogspot.com.au/2015/05/how-physical-addresses-map-to-rows-and-banks.html). Jede Adresse besteht aus Details wie Zeile, Kanal, Bank, Offset usw. Bob vor 8 Jahren 0
@JourneymanGeek Es ist nicht an das System gebunden. Ich denke, er könnte 64 GB in seinem System haben, wenn das Motherboard dies unterstützt, aber die CPU kann nur mit 32 GB arbeiten. Intel hat hier auf CPU-Ebene ein hartes Limit. Es erinnert irgendwie an die verschiedenen Maxima in verschiedenen Versionen einer Windows-Version (zum Beispiel Pro vs Home). Es gab Wege, um die ** X ** Extreme-CPUs zu erhalten oder ein Motherboard zu erhalten, das mehr als eine physische CPU unterstützt. Louis vor 8 Jahren 0
Es gibt kaum eine Intel-CPU, die 64 GB unterstützt. [Sie müssen zu ihrer extremen Produktlinie gehen, um diese Unterstützung zu erhalten] (http://ark.intel.com/products/family/79318/Intel-High-End-Desktop-Processors#@Desktop) Ramhound vor 8 Jahren 0
@ Louis - in der Tat. Natürlich sind diese Motherboards und CPUs hauptsächlich auf die Xeon-Produktlinie beschränkt. Ramhound vor 8 Jahren 0
@Louis daher meine Erwähnung über die maximale Anzahl von RAM pro Stick. Ich vermute, "Motherboard" wäre zwar genauer, aber ich habe versucht, mich sowohl auf die Grenzen des Speichercontrollers als auch auf die physikalischen Grenzen zu beziehen. Selbst mit einem vollständig ausgelasteten Dual-Prozessor-High-End-System werden 512 GB schwer. Journeyman Geek vor 8 Jahren 0
Diese Einschränkung hat nichts mit dem Adressraum zu tun (alle haswell-Chips verwenden den gleichen 48-Bit-MAR, entweder i3 / i5 / i7, wie alle Broadwell usw.), werden jedoch künstlich für die Differenzierung der Produktlinien erstellt. Die einzigen Chips der Nahelem-Serie, die mehr als 32 GB unterstützen, sind die Extreme Edition i7, die oft 1000 Dollar oder mehr kosten. Frank Thomas vor 8 Jahren 0
Ich verstehe die Kapazität des Motherboards. Mein Motherboard unterstützt maximal 16 GB, aber selbst wenn ich ein High-End-Motherboard gekauft habe, würde es nur 32 GB unterstützen. Von allen Kommentaren scheint Intel ein hartes Limit zu haben, aber niemand hat mir eine bestimmte Antwort gegeben. Ist 39 Bits selbst keine harte Grenze? Warum gibt es zwei harte Grenzen? Lord Loh. vor 8 Jahren 0
Der 39 / 48bit MAR hat nichts mit diesem Limit zu tun. Wenn Sie richtig sind, kann ein 48-Bit-MAR etwa 256 Terra-Adressen unterstützen, was aber keine Rolle spielt, da Intel seinen Befehlssatz geschrieben hat, um maximal 32 GB aufzunehmen. Frank Thomas vor 8 Jahren 1
@FrankThomas Ich weiß nicht, wie man einen Befehlssatz schreibt, um ein solches Limit zu implementieren. In 99% der Fälle macht der Befehlssatz virtuelle Adressen aus, keine physischen. Der Befehlssatz ist vollständig in der Lage, Bits in PTEs zu setzen, die dazu führen würden, dass v, a, in physikalische Adressen> 32GiB übersetzt werden, wenn nur der Speichercontroller dies unterstützt. Bei den virtuellen Adressen können Sie mit den 48 implementierten Bits natürlich auf 256 TiB des VAS zugreifen. Jamie Hanrahan vor 8 Jahren 0
@LordLoh. - Außer das ist nicht der Fall. Intel verfügt über CPUs, die 64 GB unterstützen. Sie sind nur auf eine kleine Untermenge ihrer höchsten Endprodukte beschränkt. Ramhound vor 8 Jahren 0
Meine Frage betraf die spezifische CPU, die ich aufgelistet habe. Lord Loh. vor 8 Jahren 0

2 Antworten auf die Frage

1
Overmind

Aufgrund des Speichercontrollers werden nur 32 GB RAM unterstützt. Es wurde mit dieser Einschränkung entworfen. Ähnlich ist es auf 25,6 GB / s Bandbreite begrenzt.

Warum also nicht nur 34 physikalische Adressbits? Welchen Zweck haben 39 Bits? Lord Loh. vor 8 Jahren 0
Nicht alles, was eine physikalische Adresse hat, ist RAM. Wenn Sie mehr Bit physikalischer Adressen als für den RAM-Speicher benötigen, können Sie beispielsweise E / A-Geräte verwenden, die einen großen Speicherbereich für den Adressraum bieten, ohne die RAM-Kapazität zu beeinträchtigen, die Sie verwenden können. Ich habe auch Plattformen gesehen, auf denen einige der "zusätzlichen" Bits verwendet wurden, um den Zugriffstyp auf den E / A-Bereich anzugeben (z. B. Zugriff auf Byte- und Wortgröße), den der Prozessor sonst nicht unterstützen könnte - dies wurde über Code in angegeben die Treiberunterstützungsbibliothek und wird von der Busbrücke interpretiert. Ich weiß nicht, ob dies auf aktuellen Intel-Plattformen geschieht. Jamie Hanrahan vor 8 Jahren 5
@JamieHanrahan - Dein Kommentar ist wahrscheinlich die beste Antwort, die ich bis jetzt habe. Und ich habe diese Frage vor einem Jahr gestellt. Sind Sie sicher, dass der durch den Speicher zugeordnete Zugriff auf E / A, Byte und Wortgröße über den zusätzlichen physisch adressierbaren Speicherplatz erfolgt? Die meisten Antworten hier und auf https://www.quora.com/Why-does-my-CPU-only-support-32GB-RAM-when-it-has-39-Adress-bits sind nur Spekulationen. Vielen Dank. Warum postest du das nicht als Antwort. Lord Loh. vor 7 Jahren 1
-2
Rammac

Alle Intel LGA 1150-Sockel-CPUs sind auf 32 GB beschränkt.

Eine Quelle oder ein Beweis, dass dies der Fall ist, wäre nett. Mokubai vor 8 Jahren 1
Wenn sie vorhaben, es in ein LGA1150-Paket zu packen, warum verschwenden Sie Silizium für alle Register, wenn die Leitungen nirgendwohin gehen. Es ist wie der Bau einer Autobahn mit 39 Spuren bis zur Sackgasse. Lord Loh. vor 8 Jahren 0
Alle Chipsätze für LGA 1150 unterstützen maximal 2 DIMMs in jedem der 2 Speicherkanäle. Sie unterstützen eine maximale Modulgröße von 8 GB. Einfache mathematik. Ich finde es einfacher, Intels Methoden oder Ideen nicht in Frage zu stellen, weil sie zu wissen scheinen, was sie tun. Rammac vor 8 Jahren 0
@Rammac - Ich ziehe es vor, Intels Methoden und Ideen zu hinterfragen, damit ich weiß, was sie tun. Lord Loh. vor 7 Jahren 0