Warum sind bei Dual-Channel die beiden Kanäle nicht komplett unabhängig?

M

Martyn

Gast
Eigentlich sollten bei den Dual-Channel RAM Controllern die heute in den CPUs sitzen auch beide Kanäle voll unabhängig sein.

Aber dem scheint doch nicht so zu sein, denn sonst müsste man sie ja nicht gleich oder zumindest ähnlich bestücken. Bei gleicher oder ähnlicher Bestückung würde es doch umgekehrt auch ein einziger wahlweise auf 64 Bit oder 128 Bit konfigurierbarer Speicherkanal tun.

Mit zwei wirklich unabhängigen Kanälen müsste ja eigentlich eine komplett unterschiedliche Bestückung möglich sein.

Prinzipiell intressant finden würde ich da z.B. eine Bestückung mit einem hochwertigem 16GB Patriot Viper Xteme 5 DDR5-8200 Modul für ca. 75€ und einem billigstem 32GB Patriot Signature DDR5-4800 Modul für ca. 78€ dann hätte man für insgesamt 153€ 48GB von denen immerhin ein Teil richtig flott wäre.

Okay, wirklich nötig ist das natürlich nicht, weil ein 2x 24GB Kit vom gleichen Patriot Viper Xteme 5 DDR5-8200 auch nur ca. 246€ kostet und 93€ hin oder her verglichen mit dem Grafikkartenmarkt fast nichts sind.

Aber trotzdem frage ich mich trotzdem warum es nicht geht wenn die Speicherkontroller wirklich komplett unabhängig sein sollten.
 
  • Gefällt mir
Reaktionen: KEV24in_Janßen
Das Problem wird hier, daß am Ende alles auf den CPU memory controller zurückfällt. Und da muß alles zusammenkommen.

Wenn Du also echt total unabhängige Kanäle hast (keine Utopie, aber...), muß trotzdem alles auf einem Trichter ankommen, dem memory controller in der CPU. IRGENDWO ist ein Trichter.

So, jetzt kann man fragen, ja warum können da nicht 2 controller sitzen. Dann schaufelt man das Problem zum nächst "tieferen" Schicht der CPU. In anderen Worten, es wird komplexer, kostet mehr Fläche die für bessere Zwecke sinnvoller investiert wird. Und, es ist eine Nische die ja durch CPUs wie Xeon, ThreadRipper und EPYC addressiert wird.

Es macht halt dadurch keinerlei Sinn, auch wenn man sich das durchaus erträumen kann!
 
  • Gefällt mir
Reaktionen: Verak Drezzt, ILoveShooter132, Tornhoof und 4 andere
Jein...

Beide Kanäle sind unabhängig in ihrer Größe vom RAM bestückbar ... also einer mit 16 GB einer mit 64 GB. ( Intel Flex Mode / AMD hat sowas auch )

Das ganze was du dir Konstruierst ist halt alles nicht logisch.

Denn ... Ein Kanal braucht immer die gleiche Einstellung in der Geschwindigkeit (sowie Timings) ... der zweite Kanal könnte theoretisch eine andere haben ... bringt aber nichts da er für den Dual Channel Betrieb die gleiche Geschwindigkeit ( und Timings) braucht um die Daten zur gleichen Zeit zu liefern so das nicht unnötig in irgendwelchen Zwischenspeicher geschrieben werden muss und wieder Wartezeit entstehen oder durch andere komplizierte Prozesse die Daten richtig zusammengefügt werden.

Einfach Übersetzt .... 2 Arbeiter laden einen "Datenwagen" voll ... wann ist dieser "Datenwagen" am schnellsten?
Timings = Zeiten die der Arbeiter braucht um die Daten zu finden zu fassen und auf den Wagen zu legen...
Der "Datenwagen" fährt aber erst los wenn beide Arbeiter ihre Daten aufgelegt haben wegen Dual Channel.. wenn beide unterschiedlich schnell arbeiten wie möchte man das alles gleich ziehen?

Aber auch einfach mal überlegen in welchem Szenario man wirklich den Hyperspeed Speicher braucht und wofür nicht ... und welche Auswirkungen der Speicher auf die Performance des Systems hat...

Denn Fakt ist das schneller RAM in den wenigsten Anwendungen so stark von Nutzen ist das er wirklich benötigt wird und wenn er wichtig ist ... dann ist es dem User auch egal ob er dann etwas mehr dafür ausgibt.
 
Mein Gedanke war das z.B. fürs Gaming ein schnellerer Speicher schon ein bisschen höhere Frameraten bringt, und deshalb prinzipiell vorteilhaft wäre. Aber man dafür garnicht sovile Speicher braucht, sondern dafür 16GB völlig ausreichen würden.

Für komplexe Videobearbeitung mit grossen Dateien hingegen kann man schon volle 48GB brauchen wobei da aber die Timingparameter garnicht so entscheidend sind, weil ob ein Filter da dann ein paar Sekunden mehr oder weniger braucht wäre völlig egal.
 
  • Gefällt mir
Reaktionen: KEV24in_Janßen
du denkst aber

1 Modul schnell ... 1. Kanal

1 Modul langsam ... 2. Kanal

und vergisst das der DUAL Channel Mode beide Module braucht in gleich schnell.
 
  • Gefällt mir
Reaktionen: Flaimbot
Martyn schrieb:
Mein Gedanke war das z.B. fürs Gaming ein schnellerer Speicher schon ein bisschen höhere Frameraten bringt, und deshalb prinzipiell vorteilhaft wäre. Aber man dafür garnicht sovile Speicher braucht, sondern dafür 16GB völlig ausreichen würden.
Siehe AMD X3D. DRAM Speicher Latenzen machen alles andere unbrauchbar.

Die Lösung existiert, so weit wie sinnvoll.

Intel hatte damals auch so was, aber konnte es nicht ausbauen, glaube das war der i7-5775C. Konnte Intel aber nicht weiter treiben, also starb es. AMD hat's halt besser hingekriegt.

In Sachen DRAM, daß bringt einfach nichts, ist alles zu lahm. In Latenzen hat sich bei DRAM seit Jahrzehnten nichts getan, und Latenzen sind das Problem.
 
  • Gefällt mir
Reaktionen: Fragger911
Martyn schrieb:
Mein Gedanke war das z.B. fürs Gaming ein schnellerer Speicher schon ein bisschen höhere Frameraten bringt, und deshalb prinzipiell vorteilhaft wäre. Aber man dafür garnicht sovile Speicher braucht, sondern dafür 16GB völlig ausreichen würden.
Aber dann würdest du ja Singel channel betreiben, was die Bandbreite reduziert welches für die igpu wichtig ist.
 
In der theorie is das sicher realisierbar, aber du brauchst ja eine ebene die das kontrolliert.

Sprich irgendwass muss ja dem system mitteilen wann es das langsame kit und wann das schnelle kit genutzt werden soll. Und das kann ja nur das OS übernehmen. Du bräuchtest also eine Plattform die zwei unabhängige ram kanäle hat von denen beide unabhängig auch dual channel können.

Warum sollte man sowas entwickeln. Sowas kostet unmengen an zeit und geld für einstellige % werte.
Wenn sowas wirtschaflich und auch Performance technisch einen durchbruch darstellen würde, hätten wirs bereits. Aber wozu?

Das ganze ist bereits erledigt wenn man sich von vornherein ein schnelles kit reinpackt. Deine Idee würde ja nur unnötig Komplexität ins spiel bringen wo sich gar nicht benötigt wird.
 
  • Gefällt mir
Reaktionen: qiller und Nilson
@Martyn
Die Daten im RAM werden aus verschiedenen Gründen möglichst gleichmäßig verteilt, alleine diese Tatsache sollte schon einige Gedanken & Fragen aus dem Weg räumen.

Übrigens. AMD und Intel haben beide seit Ryzen respektive der (ich meine) 12. Generation sogar zwei Speichercontroller ;)
 
klar isses sinnvoll, gleiches zu verbauen, weil sich gleiches eben zeitlich gleich verhält.

und klar könnte man das pimpen, was ein speichercontroller so bietet.
man könnte ram sogar hot-swappable machen.
wenn es denn auch bezahlt wird. und das ist der knackpunkt.
weil: gibts.
aber halt ned in dem markt. ein massenmarkt ist eben das, was es ist.
 
xxMuahdibxx schrieb:
und vergisst das der DUAL Channel Mode beide Module braucht in gleich schnell.
Das ist zwar sinnvoll, aber nicht technisch zwingend notwendig. Jeder Channel hat einen eigene unabhängige Statemaschine/DDR Phy und FIFO Buffer.
Die Kanäle werden dann einem festen „Interleaving“ Schema gemischt. Z.B. abwechselnd je Cacheline Größe. Die Kommunikation mit dem RAM findet eigentlich immer auf der Ebene einer ganzen Cacheline statt.

Die Idee hinter Dual Channel ist, dass DRAMs eine feste Anzahl an „Rows“ aktiv offen halten können, und man bei wiederholten Zugriffen auf die gleiche Row nur einen CAS Zyklus braucht, der schneller als eine komplette Row Activation ist (deswegen ist die CAS latency (CL) auch so ein wichtiger Parameter).
Mit Dual Channel verdoppelt man die Anzahl der gleichzeitig aktiven Rows, ausserdem kann man zusätzlich auf beiden Kanälen wirklich parallel Daten übertragen. Aber natürlich nur, wenn die benötigten Daten in verschiedenen Channels liegen. Wie gesagt, die Verschränkung der physischen Speicheradressen ist fix. Aber durch die übliche Lokalität der Daten klappt das häufig.


Kasjo schrieb:
Sprich irgendwass muss ja dem system mitteilen wann es das langsame kit und wann das schnelle kit genutzt werden soll. Und das kann ja nur das OS übernehmen.
Nein, das geschieht, wie oben beschrieben, schon tiefer auf Ebene der Hardware.
Die Hardware wird in der Regel von der UEFI Firmware beim Systemstart einmal konfiguriert.

Martyn schrieb:
Mein Gedanke war das z.B. fürs Gaming ein schnellerer Speicher schon ein bisschen höhere Frameraten bringt, und deshalb prinzipiell vorteilhaft wäre.
Aus den obigen Erklärungen ergibt sich, dass bei verschieden schnellen Modulen die Zugriffsgeschwindigkeit der Mittelwert aus beiden Modulen ist (sofern beide Module gleich groß sind).
 
  • Gefällt mir
Reaktionen: Martyn und xxMuahdibxx
Die Fläche für den Transistormehrbedarf ist mit größerem/schnellerem Cache besser genutzt.

Edit: Btw. gabs mehrere Memorycontroller in einer CPU schon. Man gucke sich mal Zen1-Server CPUs an. Das sind praktisch mehrere Desktop Zen1-CPUs (die da noch monolithisch waren) per Infinity Fabric unter einem Heatspreader zusammengeschaltet. Und jeder Chip hat seinen eigenen Dual-Channel Memorycontroller. Einen IO-Die gabs da noch nicht. AMD vermarktete das dann als Octa-Channel, aber im Prinzip waren das 4x DualChannel. Im OS sollte man sich bei den Anwendungen dann auch an der NUMA-Architektur orientieren, weil sonst bei Speichercontroller übergreifenden Zugriffen die Latenzen durch die Decke gingen. In Windows sah man dann auch entsprechend 4 NUMA-Knoten. Z.B. in Hyper-V sollte man dann idealerweise VMs so dimensionieren, dass sie immer volle NUMA-Knoten ausnutzen und es zu keiner Aufteilung über NUMA-Knoten hinweg kommt.

Unbenannt.png


Dual-/Quad-CPU-Systeme gibts im Serverbereich ja auch noch reichlich und auch diese haben dann jeweils ihren eigenen Memorycontroller.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Martyn
Martyn schrieb:
Mit zwei wirklich unabhängigen Kanälen müsste ja eigentlich eine komplett unterschiedliche Bestückung möglich sein.
Man will ja auch nicht 2 wirklich unabhängige Kanäle, man will ja i.d.R., dass die beiden Zusammenarbeiten für mehr Leistung.

Martyn schrieb:
Bei gleicher oder ähnlicher Bestückung würde es doch umgekehrt auch ein einziger wahlweise auf 64 Bit oder 128 Bit konfigurierbarer Speicherkanal tun.
Das gabs auch mal bei AMD, zumidnest in die Richtung. Hat aber kaum jemand benutzt. Google mal nach "ganged" und "unganged". Aber auch da waren die beiden Kanäle z.B. beim Takt voneinander abhängig.

Martyn schrieb:
6GB Patriot Viper Xteme 5 DDR5-8200 Modul für ca. 75€ und einem billigstem 32GB Patriot Signature DDR5-4800 Modul für ca. 78€ dann hätte man für insgesamt 153€ 48GB von denen immerhin ein Teil richtig flott wäre.
Nein, denn der hohe Takt täuscht. Du hättest dann ja keine 128Bit und damit auch im schnellen 8200er Speicher eine niedrigere Leistung als bei 2x DDR5-6000

Das was du suchst, nennt sich "Tiering".
Im Memory Bereich ist das nicht so verbreitet, aber im Storage Bereich ist das seit Jahren üblich, dass man mehrere unterschiedlich schnelle Storage Lösungen kombiniert. Der Klassiker war SSD, SAS HDD und SATA HDD.
Mittlerweile gehts eher in Richtung NVMe TLC SSD, SAS QLC SSD, HDD.

Im Memorybereich nutzt man dann z.B. NVRAM oder CXL.

Warum es im Desktop keine Lösung dafür gibt? Weil die Speichermengen und -preise wie die mögliche Ersparnis zu gering sind.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Martyn
h00bi schrieb:
Das was du suchst, nennt sich "Tiering".
Im Memory Bereich ist das nicht so verbreitet,
Im Prinzip ist die Hierarchie aus L1,L2,L3 Cache und dahinter DRAM das Tiering des Speichers. Das funktioniert so gut, dass man nichts anderes braucht.
 
  • Gefällt mir
Reaktionen: ILoveShooter132, qiller, areiland und eine weitere Person
Es gibt auch Überlegungen hinter den DRAM noch non-volatilen Speicher zu schalten, da ist nur noch nichts marktreif.
Sinnvoll ist das bei Anwendungen mit Speicherbedarf im Terrabyte Bereich wie in-memory DBs. Denn nach einem Power Cycle/Reboot brauchen die sehr lange für den Warm-Up. Persistenter RAM könnte würde da sehr helfen.
 
TomH22 schrieb:
Nein, das geschieht, wie oben beschrieben, schon tiefer auf Ebene der Hardware.
Die Hardware wird in der Regel von der UEFI Firmware beim Systemstart einmal konfiguriert.
Du hast meinen Post nicht mal im ansatz verstanden.

Die ausgangsfrage bzw. erläuterung war warum man theoretisch nicht zwei ramkits völlig unabhängig voneinander betreiben kann.
Ein schnelles fürs gamen, ein langsames aber dafür mit mehr speicher fürs videoschneiden. Siehe dazu Post#4

Faktisch aktuell gar nicht umsetzbar, deshalb ist mein post auch fiktiv gehalten. Und wenn es technisch umgesetzt wäre, dann brauchst du eben schon das OS, das entscheidet auf welchem kit was laufen soll.

Aktuell wird das schnelle dem langsamen angeglichen und beide kits komplett ans OS weitergereicht. Ich glaube da sis dem TE schon bewusst. Ihm gings glaube ich eher darum warum man nicht aus beiden welten quasi die benefits ziehen kann wenn man zweierlei kits hat.

Und in meinem bzw. seinem Szenario Konfiguriert dein UEFI da gar nichts weils gar nicht wissen kann welche Anwendung nun was brauchen soll.

Wie gesagt, mein Post war theoretischer natur, sofern es so eine plattform gäbe die das beherscht und bezogen auf Post #4.
 
Zuletzt bearbeitet:
Kasjo schrieb:
dann brauchst du eben schon das OS, das entscheidet auf welchem kit was laufen soll.
So ist ist. Mal noch ein Beispiel: Du verbaust 1x 8GB und 1x 16GB an einem Dual-Channel fähigen Speichercontroller. Das funktioniert ja. Du hast dann 16GB mit Dual-Channel Speed und 8 GB mit Single-Channel Speed. Das OS weiß aber von diesem Umstand nichts und kann daher auch nicht z.B. festlegen, dass Games immer im Dual-Channel fähigen 16GB-Bereich Speicher allokieren.

Edit: Man müsste dem OS via NUMA-Knoten verklickern, dass es mehrere Speichercontroller gibt. Dann könnte man dementsprechend auch Programme "zuweisen".
 
  • Gefällt mir
Reaktionen: Martyn
Northstar2710 schrieb:
em Dual-Channel fähigen Speichercontroller. Das funktioniert ja. Du hast dann 16GB mit Dual-Channel Speed und 8 GB mit Single-Channel

h00bi schrieb:
Stimmt, sehr guter Einwand.
Wenn man die o.g. Ersparnis nimmt und z.B. in eine X3D CPU mit mehr Cache investiert, hat man mehr Leistungszuwachs als mit schnellerem RAM

Mein Gedanke ging dahin einen möglichst schnellen RAM zu haben für den Fall das man eine dedizierte Grafikkarte mit 8GB VRAM hat für den Fall das diese nicht ganz für die Texturen reichen, und dann aus dem RAM nachgeladen werden müssen.
 
Zurück
Oben