Single Rank vs. Dual Rank

U

unins002

Gast
Hallo Freunde,

ich weiß, zu diesem Thema gibt es etliche Threads, aber ich habe bisher nicht die passende Antwort auf meine Frage gefunden. Vorab: ich bin in Ausbildung zum Fachinformatiker für Systemintegration und werde in der Berufsschule eine Präsentation über Arbeitsspeicher halten.

Da ich natürlich auf die technischen Hintergründe eingehen werde, werde ich auch den Unterschied erklären. Mir geht es hier nicht um die Geschwindigkeit oder ähnliches, sondern den technischen Unterschied. Man liest zwar häufig, dass ein Dual Rank Modul quasi zwei Single Rank Module in einem sind, aber warum gibt es das und wo ist der technische Unterschied? Vor allem weil du ein Rank angesprochen werden kann und nicht beide gleichzeitig?

Ich meine mal gelesen zu haben, dass im anderen Rank die Daten "vorbereitet" werden, während der der eine Rank gerade verwendet wird. Aber stimmt das, ist genau das der Unterschied und wie ist das technisch zu verstehen? Also was passiert innerhalb der Chips beim "Vorbereiten der Daten"?


Grüße
 
unins002 schrieb:
Ich meine mal gelesen zu haben, dass im anderen Rank die Daten "vorbereitet" werden, während der der eine Rank gerade verwendet wird. Aber stimmt das, ist genau das der Unterschied und wie ist das technisch zu verstehen?
Zwischen "Anfordern der Daten" und "Daten werden ausgelesen" vergeht einiges an Taktzyklen.
Dual Rank erlaubt es, größere Anforderungen so vorzubereiten, das sie nacheinander ausgelesen werden können. Natürlich nur, wenn die Datei günstig in den Bänken liegt. Dann spart man sich quasi etwas Wartezeit dazwischen nach jedem 64x8 Bit Datenpaket.
Ich hatte davon auch mal eine schematische Zeichnung gemacht, finde die aber gerade nicht.

//nvmd:
Rastergrafik.png


Wie du siehst, muss erst mal die "Reihe" in der Speichermatrix aktiviert werden (aufgeladen), die wird dann mit der internen Frequenz parallel ausgelesen und in einem Shift Register abgelegt. Und wenn dort alle Daten vorliegen, können die seriell ausgelesen werden, mit der eigentlichen Busgeschwindigkeit.

Bei Dual Ranked hast du quasi dieselbe Infrastruktur doppelt und je nach Speichermanagement, kann das durchaus Zeit einsparen, weil man durch das Preloading den Bus besser auslastet. Effektiv steigt also die Speicherbandbreite etwas.
unins002 schrieb:
Also was passiert innerhalb der Chips beim "Vorbereiten der Daten"?
Ist hier sehr gut erklärt:
https://en.wikipedia.org/wiki/Dynamic_random-access_memory#Principles_of_operation
Square_array_of_mosfet_cells_read.png

Operations to read a data bit from a DRAM storage cell​

  • The sense amplifiers are disconnected.[27]
  • The bit-lines are precharged to exactly equal voltages that are in between high and low logic levels (e.g., 0.5 V if the two levels are 0 and 1 V). The bit-lines are physically symmetrical to keep the capacitance equal, and therefore at this time their voltages are equal.[27]
  • The precharge circuit is switched off. Because the bit-lines are relatively long, they have enough capacitance to maintain the precharged voltage for a brief time. This is an example of dynamic logic.[27]
  • The desired row's word-line is then driven high to connect a cell's storage capacitor to its bit-line. This causes the transistor to conduct, transferring charge from the storage cell to the connected bit-line (if the stored value is 1) or from the connected bit-line to the storage cell (if the stored value is 0). Since the capacitance of the bit-line is typically much higher than the capacitance of the storage cell, the voltage on the bit-line increases very slightly if the storage cell's capacitor is discharged and decreases very slightly if the storage cell is charged (e.g., 0.54 and 0.45 V in the two cases). As the other bit-line holds 0.50 V there is a small voltage difference between the two twisted bit-lines.[27]
  • The sense amplifiers are now connected to the bit-lines pairs. Positive feedback then occurs from the cross-connected inverters, thereby amplifying the small voltage difference between the odd and even row bit-lines of a particular column until one bit line is fully at the lowest voltage and the other is at the maximum high voltage. Once this has happened, the row is "open" (the desired cell data is available).[27]
  • All storage cells in the open row are sensed simultaneously, and the sense amplifier outputs latched. A column address then selects which latch bit to connect to the external data bus. Reads of different columns in the same row can be performed without a row opening delay because, for the open row, all data has already been sensed and latched.[27]
  • While reading of columns in an open row is occurring, current is flowing back up the bit-lines from the output of the sense amplifiers and recharging the storage cells. This reinforces (i.e. "refreshes") the charge in the storage cell by increasing the voltage in the storage capacitor if it was charged to begin with, or by keeping it discharged if it was empty. Note that due to the length of the bit-lines there is a fairly long propagation delay for the charge to be transferred back to the cell's capacitor. This takes significant time past the end of sense amplification, and thus overlaps with one or more column reads.[27]
  • When done with reading all the columns in the current open row, the word-line is switched off to disconnect the storage cell capacitors (the row is "closed") from the bit-lines. The sense amplifier is switched off, and the bit-lines are precharged again.
Um das alles zu verstehen, sollte man abgesehen von Englischkenntnissen schon etwas elektrotechnisch angehaucht sein. Stoff zweites Semester Digitaltechnik.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: McTheRipper, fgordon, unins002 und 2 andere
unins002 schrieb:
Vorab: ich bin in Ausbildung zum Fachinformatiker für Systemintegration und werde in der Berufsschule eine Präsentation über Arbeitsspeicher halten.
Bester Artikel, der vermutlich je dazu geschrieben wurde:
https://www.anandtech.com/show/3851...now-about-sdram-memory-but-were-afraid-to-ask

Aufpassen: die deutschen Wikipedia Artikel zu dem Thema DRAM sind leider oft falsch. Wenn du auf Wikipedia recherchierst, lies unbedingt die englischen Artikel.

Bei einem jungen FiSi setze ich englisch jetzt einfach mal voraus.

unins002 schrieb:
dass ein Dual Rank Modul quasi zwei Single Rank Module in einem sind
das ist stark vereinfacht, aber ja, kann man so betrachten. Sachlich korrekt ist es jedoch falsch.
Es verhält sich in vielen Fällen gleich.

unins002 schrieb:
aber warum gibt es das und wo ist der technische Unterschied? Vor allem weil du ein Rank angesprochen werden kann und nicht beide gleichzeitig?
Vor etlichen Jahren, als die ersten SDRAM Interfaces entworfen wurden, hat man entschieden dass das Speicherinterface 64bit breit werden soll. Das war eine Verdopplung der bis dahin verwendeten 32bit Interfaces. Grundsätzlich dreht sich alles beim DRAM um diese 64bit.

Gängige RAM Chips hatten damals eine Breite von 8 bit. Man nahm also 8 Chips für ein 64bit Rank.
Was aber wenn man nun mehr Speicher braucht? Richtig, man hängt Huckepack an das erste Rank noch ein zweites Rank und hat die doppelte Speicherkapazität.
Da das Speicherinterface nur 64bit breit bleibt, kann das zweite Rank nicht gleichzeitig angesprochen werden.
Außer man packt das zweite Rank in einen zweiten 64bit Kanal -> Dual Channel

Einen Speicherzugriff auf mehere Ranks gleichzeitig aufzuteilen ist nicht möglich. Warum? Weil in der Computerwelt quasi nichts aufgeteilt werden kann. Computer leben davon, dass sie einfache Aufgaben rasend schnell erledigen. Dadurch wird es irgendwann egal, dass man den Zugriff nicht splitten kann. Wenige Nanosekunden später kann man ja auf das andere Rank zugreifen.

Im Severbereich verwendet man seit mehrere Tricks, um mehr Speicher auf einem Modul zu ermöglichen.
1) Man verwendet Chips mit 4 Bit, kan kann somit 16 Chips pro Rank nutzen statt nur 8.
2) Man designt die Speichercontroller komplizierter und ermöglicht (langsamere) Module mit 4 Ranks, sog. Quad Rank Module.
3) Neuerdings verwendet man bei RAM auch 3D Stacking ähnlich vie bei V-NAND.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Volvo480, unins002, bikerider und 2 andere
unins002 schrieb:
aber warum gibt es das und wo ist der technische Unterschied?
Das ergibt sich aus den Eigenschaften der Speicherbausteine.
Bei DDR4 sind es z.B. normal 8-Bit Anbindung der Chips und insgesamt muss man auf 64 Bit Pro Rank kommen bzw. 72 bei ECC.
Jetzt kommt es drauf an mit welchen Speicherbausteinen man welche größe realisieren will. Es gibt bei DDR4 512MB, 1GB und 2GB Chips. Wenn du jetzt einen 16GB Riegel mit 1GB Chips basteln willst bräuchtest du 16 Stück, musst das aber in zwei Ranks aufteilen weil jeder Rank nur eine 64 Bit Anbindung haben kann.
Bei 8 2GB Chips würde es in einen Rank passen.

Micron hat da teils tolle Datenblätter wenn du dir da den Aufbau von diversen Riegeln anschauen willst.
 
  • Gefällt mir
Reaktionen: unins002
@ghecko, ich will nicht behaupten, dass ich beim internen Aufbau von Ramchips besondere Ahnung habe, aber wirfst du da nicht Banks und Ranks in einen Topf?

So wie ich das sehe, wird bei Ranks nichts "vorbereitet".

Ein Ram Module/Riegel/Dimm, der zwei Ranks hat, wird genauso behandelt wie zwei Riegel in zwei Ramslots des selben Channels.

Der DDR-DDR4 Controller kann nur 64Bit ansprechen. Nicht mehr und nicht weniger.
Mit den verfügbaren Ramchips (4Bit, 8Bit und 16Bit), ergeben sich daher eine endliche Anzahl an Kombinationen um die 64Bit "voll zu machen".
Mit den üblichen 8Bit Chips also 8 Stück.
Lange Zeit gab es für DDR maximal 1GB große Chips und daher war ein Rank aus 8Bit Chips, maximal 8GB.
Will man mehr Ram, kann man in die zwei Slots eines Channels(dual Channel System mit 4 Slots), einen zweiten Riegel einsetzen. Jetzt sitzen auf dem 64Bit breiten Datenbus zwei Ranks.
Der Controller sendet oder empfängt die Daten also immer zu beiden oder von beiden Ranks, aber er teilt mit, welcher Rank aktiv ist, und welcher parken soll.

So käme man trotzdem nur auf 32GB Ram, aber wenn man jetzt auf den Riegeln selbst nochmal die Datenleitung aufteilt und die doppelte Anzahl Chips verbaut, kommt man auf maximal 64GB Ram, da der Controller zwischen 4 Ranks pro Channel(zwei Ranks pro Riegel) wechseln kann.

Natürlich kann man das noch auf 512GB, und 2GB Chips erweitern und mit 4Bit, und 16Bit Chips durchspielen, aber das Konzept sollte klar sein.

Mehr Ranks ermöglichen mehr Ram.

Edit: ich bin zu langsam und h00bi hat schon alles geschrieben. :(
 
  • Gefällt mir
Reaktionen: Volvo480 und unins002
Baal Netbeck schrieb:
Ein Ram Module/Riegel/Dimm, der zwei Ranks hat, wird genauso behandelt wie zwei Riegel in zwei Ramslots des selben Channels.
Und beides resultiert laut Benchmarks in etwas mehr Durchsatz. Diese Diskussion hatten wir ja einige Male hier im Forum. Ich stecke auch nicht ganz drin in der Kommunikation zwischen Speichercontroller und Rank, aber nach allem was ich dazu gelesen habe ist das oben beschriebene der Ablauf dahinter.
Und jeder Rank kann eigene Anforderungen vom Memory Controller empfangen und umsetzen, bedeutet im Umkehrschluss, der MC kann eine Auslesung in einem Rank vorbereiten lassen, während der andere Rank schon ausgelesen wird:
Subject to some limitations, ranks can be accessed independently, although not simultaneously as the data lines are still shared between ranks on a channel. For example, the controller can send write data to one rank while it awaits read data previously selected from another rank. While the write data is consumed from the data bus, the other rank could perform read-related operations such as the activation of a row or internal transfer of the data to the output drivers. Once the CA bus is free from noise from the previous read, the DRAM can drive out the read data. Controlling interleaved accesses like so is done by the memory controller.
https://en.wikipedia.org/wiki/Memory_rank
Ist also ein Datensatz auf zwei Ranks verteilt, kann er von dort schneller ausgelesen werden, als wenn er sich nur in einem Rank befinden würde. Weil die Vorbereitung der Auslesung in einem Rank ausgeführt werden kann, während der andere schon Daten liefert -> weniger CL-bedingte Stalls vom Bus.
Bei DDR4 muss ja für jeden 8-Bit Prefetch erst mal die Reihe selektiert und vorgeladen werden. Bei DDR5 ist der Prefetch auf 16bit angewachsen und dafür die Busbreite von 64bit in zwei voneinander unabhängige 32-bit Kanäle geteilt worden. Was effektiv zum selben Ergebnis führt. Speicherbereiche können selektiver ausgelesen werden und durch die redundante, unabhängige Infrastruktur weniger Stalls durch simultane Prefetches. Bei DDR5 führt man also weiter, was man bei DDR4 schon so halb durch mehrere Ranks erreichen konnte.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: unins002 und Baal Netbeck
h00bi schrieb:
RAM Chips hatten damals eine Breite von 8 bit. Man nahm also 8 Chips für ein 64bit Rank.
Das stimmt nicht so ganz. Es gab früher schon Chips mit 4 Bit oder auch 16 Bit. Die Hersteller mussten bei einer 64-Bit-CPU (ja, der erste Pentium war eine) den Speicherkanal nur gefüllt bekommen (wobei der CPU das eigentlich egal ist, der Speichercontroller kann die 64 bit ja auch in viele kleine Zugriffe verteilen). Problematisch war nur das Mischen von unterschiedlichen Speichern.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: unins002
Ich habs oben etwas verallgemeinert. Die grundsätzliche Aussage ist aber gleich. Wenn man mit den größten verfügbaren Chips (egal mit welcher Datenbreite) die 64bit voll macht, kann man mehr RAM Kapazität nur mit mehr Ranks erreichen.
 
  • Gefällt mir
Reaktionen: unins002
Wow Leute ich bin überwältigt, das sind nicht nur viele sondern auch sehr ausführliche Antworten.

Ich werde mir mal alle Beiträge & den verlinkten Artikel durchlesen und danach (falls noch offen) Fragen stellen.

Danke schonmal :)
 
  • Gefällt mir
Reaktionen: Volvo480, Dr. McCoy und Baal Netbeck
Ich bin es wieder. Soweit ist alles klar, vielen Dank euch. Hätte ich nicht gedacht, aber eine Frage ist über geblieben.

Wie ist das mit 4x Dual-Rank Sticks? Ist das dann immer noch Dual-Channel? Können auch hier alle vier Ranks (pro Kanal) eigene Anfragen "stellen" die parallel bearbeitet werden?
 
Zuletzt bearbeitet von einem Moderator:
Die Anzahl der Channel sind fest vom Speichercontroller vorgegeben, und die Riegel ansich sind ja nur "dummer" Speicher die eben von jenem verwaltet werden. Wieviele Ranks der sinnvoll verwenden kann ist recht individuell und kann man jetzt nicht pauschal für jede Generation oder Plattform an CPUs beantworten.
Ich habe den Eindruck du hast hier eher Grundlegende Dinge nicht verstanden und das Forum ist nicht dazu da deine Hausaufgaben zu erledigen.
 
Stormfirebird schrieb:
Die Anzahl der Channel sind fest vom Speichercontroller vorgegeben, und die Riegel ansich sind ja nur "dummer" Speicher die eben von jenem verwaltet werden. Wieviele Ranks der sinnvoll verwenden kann ist recht individuell und kann man jetzt nicht pauschal für jede Generation oder Plattform an CPUs beantworten.
Moin, es geht um Ranks und nicht um Channels. Dass das irgendwo individuell ist, ist mir schon klar, aber das Layout des Mainboards spielt ja auch eine Rolle.

Stormfirebird schrieb:
Ich habe den Eindruck du hast hier eher Grundlegende Dinge nicht verstanden und das Forum ist nicht dazu da deine Hausaufgaben zu erledigen.
Tja, jeder hat mal einen falschen Eindruck ;)
Auch von Hausaufgaben war nie die Rede, vielleicht etwas genauer lesen, interpretieren, nachdenken und dann antworten.
 
unins002 schrieb:
Wie ist das mit 4x Dual-Rank Sticks? Ist das dann immer noch Dual-Channel?
Das eine ist völlig entkoppelt vom anderen.
unins002 schrieb:
Können auch hier alle vier Ranks (pro Kanal) eigene Anfragen "stellen" die parallel bearbeitet werden?
Der Speicher stellt überhaupt keine Anfragen. Der ist wie ein Regal. Das steht nur dumm da und hält Sachen an Ort und Stelle.
Der Controller kann per Rank Interleaving weiterhin eine Anfrage an ein anderes Rank stellen respektive eine Anfrage vorbereiten, solange eine Anfrage an ein anderes Rank noch nicht angeschlossen ist. Aber nicht an 4 Ranks gleichzeitig.
 
  • Gefällt mir
Reaktionen: Stormfirebird und Baal Netbeck
unins002 schrieb:
Wie ist das mit 4x Dual-Rank Sticks? Ist das dann immer noch Dual-Channel?
unins002 schrieb:
Moin, es geht um Ranks und nicht um Channels.
Den Widerspruch sieht du selbst?

unins002 schrieb:
Können auch hier alle vier Ranks (pro Kanal) eigene Anfragen "stellen" die parallel bearbeitet werden?
Nein. Das wurde aber auch schon erklärt.

Die Ranks stellen keine Anfragen, die erhalten Befehle von Speicherkontroller.
Und parallel im Sinn von einer schreibt und drei pausieren....Oder einer macht einen Datenrefresh und die anderen was anderes....dann ja.
Aber wie soll es gehen, dass z. B. beide schreiben? Alle Ranks eines Channels nutzen die gleichen Datenleitungen.
 
  • Gefällt mir
Reaktionen: Stormfirebird
Ok, da wurde wohl einiges missverstanden. Werde ich später genauer ausführen.
 
Was ich eigentlich meinte war, ob aktuelle IMCs mit 4xDR (acht Ranks) umgehen können und ob das den Dual-Channel beeinflusst.

Sei's drum, ich hab mir die Videos von Actually Hardcore Overclocking reingezogen, damit weißt ich nun alles über RAM.
 
  • Gefällt mir
Reaktionen: Baal Netbeck
Ich habe das Video auch gesehen .... Lang, aber eine super Quelle.

Ich würde 4*DR bei einem dual Channel System als quad ranked bezeichnen..nicht 8 ranks....denn es zählt wie viele pro Channel da sind. Nicht insgesamt.

Ich habe das in Moment laufen und ich muss sagen, dass es zwar nett ist, wenn man den vielen RAM braucht, aber es kostet Ramlatenz.

Für einen Spiele-PC würde ich daher darauf verzichten 4Ranks pro Channel zu nutzen.
Und drei Ranks sind nochmal komisch schlechter als zwei oder vier...so asynchron ist wohl nicht gerne gesehen.

Also optimal sind zwei für mehr kopier-Bandbreite und ein Rank für Latenz und maximales OC.
Was dir mehr hilft.... Latenz oder kopier-Bandbreite unterscheidet sich von Spiel zu Spiel.
 
Zurück
Oben