Maximaler vom Prozessor unterstützter Speicher - warum wird oft weniger als 1 TB angegeben?

Ich möchte die technischen Details der Beschränkungen der maximalen Speichergröße verstehen, die ein System/Prozessor unterstützen kann. Unten, was ich über die Websuche bis heute Wiki finden konnte :

Moderne 64-Bit-Prozessoren wie Designs von ARM, Intel oder AMD sind in der Regel darauf beschränkt, weniger als 64 Bit für RAM-Adressen zu unterstützen. Sie implementieren üblicherweise 40 bis 52 physische Adressbits 1 3 (unterstützt 1 TB bis 4 PB RAM). Wie frühere hier beschriebene Architekturen sind einige davon darauf ausgelegt, höhere Grenzen der RAM-Adressierung zu unterstützen, wenn sich die Technologie verbessert. Sowohl bei Intel64 als auch bei AMD64 ist die 52-Bit-Grenze für physische Adressen in den Architekturspezifikationen (4 PB) definiert.

Entscheidende Website, Verständnis-CPU-Beschränkungen-mit-Speicher spricht nur über Geschwindigkeit, verweist auf die Intel-Website. Aber soweit ich weiß, gibt Info z. B. i7 32 GB an, da zum Zeitpunkt der Erstellung des Prozessors nur 16-GB-Module verfügbar waren, was bedeutet, dass nur 2 Module unterstützt werden (2 Module sind jetzt meine Vermutung, Wiki-Zitat oben spricht von Bits ).

Ich fange gerade erst an, technische Details zu verstehen, wie Speicher funktionieren, wie z. B. Ränge . Was genau hindert alle modernen zB Intel-Prozessoren daran, zu behaupten, mindestens 1 TB adressieren zu können (gemäß Wiki oben)?

Ist der Grund für ARM in Smartphones derselbe? zB 875 :

Maximale Größe 24 GB

Für ARM habe ich keine Erfahrung mit dem Ändern der Speichermenge, da alle meine Geräte SoC hatten, obwohl ich kürzlich festgestellt habe, dass ARM Systeme mit Modulen haben sollte, wie die Websuche anzeigt (z. B. https://www.anandtech.com/show/13635/apacer- launcht-32bit-sodimm-for-arm-risc-v-systems ).

@DKNguyen. warum behauptest du sie sind falsch? Nicht 40 Bit (weil 40 Bit ~ 1 TB sind)? Können Sie einen Link angeben, um dies zu unterstützen? PS Ich habe den Titel korrigiert.
Oh warte, ich habe vergessen, dass jedes Byte eine Adresse hat, nicht jedes Bit. Eine 40-Bit-Adresse kann also 2 ^ 40 Bytes adressieren, in diesem Fall sind es wirklich 1 TB.

Antworten (2)

Ihr Zitat aus Wikipedia bezieht sich auf den physischen Adressraum, die Größe aller Speicheradressen, die dem Prozessor zur Verfügung stehen. Es ist nur die Summe aller Adressen, die in den physischen Speicherplatz passen. Allerdings ist nicht der gesamte physische Speicher RAM. PCIe-Geräte wie GPUs, Flash-Speicher usw. belegen auch physische Speicheradressen, die verwendet werden, um mit ihnen zu kommunizieren oder Daten zu/von ihnen zu kopieren. Aus diesem Grund sollte der physikalische Speicheradressraum immer größer sein als der größtmögliche RAM im System. Wenn dies nicht der Fall ist, kommt es zu Situationen, in denen nicht die gesamte Hardware gleichzeitig installiert werden kann oder nicht auf den gesamten Speicher zugegriffen werden kann, wie dies in den alten Tagen von 32-Bit-x86 tatsächlich der Fall war.

Wenn Ihr System also gut konzipiert ist, bedeutet ein 40-Bit-Adressraum nicht, dass Sie tatsächlich 2 ^ 40 Bytes RAM haben können. Wenn dies der Fall wäre, würden Sie den Zugriff auf Ihre PCIe- und andere Hardware verlieren. Was begrenzt dann tatsächlich Ihren verfügbaren RAM? Der Speichercontroller auf Ihrer CPU muss tatsächlich in der Lage sein, physikalische Adressen eindeutigen RAM-Zellen zuzuordnen. Es gibt eine praktische Grenze, auf wie viel Speicher tatsächlich zugegriffen werden kann. Einzelne DIMMs haben eine durch die Spezifikation festgelegte maximale Größe, und der Speichercontroller selbst hat eine maximale Anzahl von Speicherkanälen.

Beispielsweise unterstützt ein Intel Comet Lake-Prozessor der 10. Generation bis zu 4 DIMMs mit einer maximalen Größe von 64 GB gemäß DDR4-Spezifikation. Somit beträgt die maximal mögliche Kapazität 256 GB (obwohl Intel nur 128 GB angibt, sodass 64-GB-DIMMs möglicherweise nicht unterstützt werden). Der verbleibende physische Adressraum kann weiterhin von anderer Hardware verwendet werden, nur nicht vom Speichercontroller.

Wollen Sie für Cornet Lake sagen, dass der Prozessor im Motherboard eine Reihe direkter "Drähte" von seinem Grid Array zu jedem Speichersteckplatz / Modul separat hat? Wenn ja, ist das im Grunde die Antwort auf meine Frage in Bezug auf x86.
@ Martian2020 In diesem speziellen Prozessor gibt es 2 Speicherkanäle und bis zu 4 DIMMs, sodass sich DIMM-Paare die Verkabelung teilen. Aber ja, die CPU ist über einen Speichercontroller mit dem Speicher verbunden, der physikalische Adressen auf Zellen im DRAM abbildet.
Um es richtiger auszudrücken (keine Bearbeitung, wie vielleicht gelesen wurde): Der Prozessor hat eine bestimmte Anzahl von Sätzen von Kugelgitterverbindungen, die an jedes Modul angeschlossen werden können?
@ Martian2020 Und jeder Adressstift auf dem Gehäuse muss auf dem Siliziumwafer geroutet werden, um tatsächlich zu funktionieren.
Ich weiß, dass moderne Prozessoren über integrierte Speichercontroller verfügen. Bitte klären Sie das physikalische Layout / die Einschränkungen des Kugelgitters.
Es ist sowohl das Paket als auch das Innere des Pakets. Deshalb habe ich "und" gesagt (ich wollte, dass es an Ihren vorherigen Kommentar zur BGA anknüpft.)
" 2 Speicherkanäle und bis zu 4 DIMMs". Was hindert daran, ein Motherboard (das mit diesem Prozessor "richtig" funktionieren würde) mit gemeinsamer Verkabelung zu entwerfen, um zB 16 DIMMs zu platzieren?
Die Intel Ark-Site behauptet, dass nur 32 GB unterstützt werden, aber 4 DIMMS mit maximal 64 GB pro DD4-Spezifikation (aus Wiki) = 256. Kann 8550U 256 GB unterstützen?
@ Martian2020 Sie sind durch die Unterstützung des Speichercontrollers eingeschränkt. Intel wird Ihnen Prozessoren verkaufen, die 16 DIMMs unterstützen, aber sie kosten mehr.
@ Martian2020, Sie können aufgrund der Signalintegrität (größtenteils) nur einen einzigen Speicherkanal zwischen zwei DIMMs teilen, und die Speichertaktfrequenz ist durch die Entfernung zum am weitesten entfernten IC begrenzt.
@ Simon, danke. Ich würde mich über einen Link zu einem Video freuen, in dem erklärt wird, wie Daten auf einem bestimmten DIMM (eines Paares) enden (und beginnen) und warum wir beispielsweise nicht 4 DIMMs auf diese Weise gemeinsam nutzen können, oder eine kurze Erklärung des technischen Mechanismus.
@Martian2020 Das geht ziemlich weit vom Thema ab, aber sehen Sie sich diese Seite an, um einen Überblick darüber zu erhalten, wie DDR4 funktioniert: systemverilog.io/ddr4-basics
Warum Off-Topic? zweimal mehr DIMMs zweimal mehr RAM.
@ Martian2020, die DIMMs in einem Kanal sind an den Daten- und Adress- / Steuerleitungen parallel angeschlossen, erhalten jedoch separate Chip-Select- und Clock-Enable-Signale. Aus Sicht der digitalen Logik könnte dies auf mehr DIMMs skaliert werden, aber dies verschlechtert die Signalqualität bis zu einem Punkt, an dem Sie die Taktfrequenz reduzieren müssen, sodass das Problem auf der analogen Seite liegt.
@Simon, werden Chip Select im Prozessor / Package produziert? Wenn ja, dann ist dies eine Einschränkung und Teil der Antwort auf OP.
@Martian2020 Ja, die Chipauswahlsignale kommen vom Speichercontroller. IMO, wenn Sie in die Details der Funktionsweise von DDR4 einsteigen möchten, sollten Sie Ihre Frage bearbeiten (oder eine neue posten), anstatt mich ständig zu fragen. Auf diese Weise sehen mehr Leute Ihre Frage.
Danke für den Vorschlag einer neuen Frage!

Die Unterstützung von mehr Arbeitsspeicher ist nicht kostenlos. Es erfordert die Unterstützung von mehr Adressen, was mehr Schaltkreise erfordert, was mehr Platz auf dem Chip und mehr Pins auf dem Gehäuse erfordert, was wahrscheinlich zu einem größeren Gehäuse führt, was die Ausbeute verringert und die Kosten erhöht. Warum tun, wenn Sie es nicht brauchen?

können Sie Einzelheiten angeben? weil die meisten Prozessoren weniger als 40 Bit haben? Wenn ja, fügen Sie bitte Links zu Beispielen für (vorzugsweise) Intel i7-Datenblätter hinzu.
Danke, dass Sie mein Englisch korrigieren :-) Wenn ich schnell tippe, werde ich manchmal weniger genau als sonst. (als und dann ist mein spezielles Problem, kennen Sie eine Regel, um zu sagen, wann e oder a verwendet werden sollen?)
Ich kenne den Bedeutungsunterschied, ich vergesse, wann man e oder a setzt.
Hoppla. Habe einen Fehler in meinem Beitrag gemacht. Hier ist es wieder: „Ursache“ ist ein anderes Wort als „weil“. Wenn Sie mündlich sprechen, um "weil" zu sagen, sprechen Sie eigentlich "weil", mit dem Apostroph. Es ist nicht etwas, das Datenblätter benötigt. Die Frage ist der Frage sehr ähnlich: "Warum wird nicht jedes Auto so gebaut, dass es die maximale Größe hat, die es noch erlauben würde, für den Straßenverkehr zugelassen zu werden?"
Than wird nur für Vergleiche verwendet. Dann wird die restliche Zeit genutzt. Verwenden Sie das 'a' also nur, wenn Sie etwas vergleichen. Verwenden Sie den Rest der Zeit 'e'.
Ups, wieder mein Englisch, ich meinte nicht "Regel", sondern so etwas wie ein en.wikipedia.org/wiki/Mnemonic , jedoch handelt es sich um eine Frage für eine andere SE-Site. Danke noch einmal!