PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DDR4 Burst, Bank interleave und so weiter


Wuge
2021-02-10, 13:10:22
Hallo zusammen,

ich hab mich in den letzten Tagen ein wenig mit DDR4 Speicher befasst. Wie Speicheradressierung, Prefetch und so weiter funktioniert weiß ich, soweit alles gut. Womit ich meine Schwierigkeiten habe, ist das Bank Group Konzept von DDR4 zu verstehen.

DDR4 hat am Interface die 16fache Datenübertragungsrate wie die Speicherzellen, soweit klar. Man müsste also 16 Bit parallel zum IO schicken, der diese Bits dann seriell mit 16 fachem Takt bereitstellt. Das wäre 16fach Prefetch. DDR4 nutzt aber weiter 8fach prefetch und erreicht die volle Bandbreite durch Bank interleave.

Soll das heißen, wenn die CPU tatsächlich nur eine Cacheline aus einer Page haben möchte, dass nur jeden zweiten effektiven IO-Takt Daten kommen? Oder kann nur jeder zweite Burst Daten aus dieser Page liefern und man hat zwischendrin 4 Takte (8 DDR) Leerlauf, ausser man adressiert eine andere Page in einer anderen Bank Group und die Bursts wechseln sich ab?

Ich finde dazu nichts abschließend erklärendes im Netz. Aber hier ist bestimmt jemand, der es erklären kann ;)

Leonidas
2021-02-13, 07:17:01
Waht, keine Antwort?

Zafi
2021-02-13, 09:51:59
nur eine Cacheline aus einer Page

Ich tue mich schwer die Frage zu verstehen. Denn...

eine Speicherzeile = eine Cacheline
eine Speicherzeile = eine Page

"Page", zu deutsch "Seite", suggeriert zwar, dass es sich hier um mehrere Zeilen handelt. Aber tatsächlich wird im Englischen der Begriff "Page" für die Speicherzeile verwendet. (zumindest soweit ich weiß)

Wuge
2021-02-13, 13:36:08
Das stimmt schon, nur ist eine Speicherzeile (Page) nicht gleich einer Cacheline. Ne Page in einem x8 DDR4 Chip hat 1KB. Da 8 davon parallel im Rank sitzen (=64 Bit) wäre eine komplette Page 8 KB groß. Eine Cacheline bei nem x86 Prozessor hat 64 Byte ;)

Kann die Zusammenhänge echt niemand erklären? :(

Ich vermute, dass die Bandbreite tatsächlich nur voll genutzt werden kann, wenn der Speichercontroller abwechselnd aus 2 unterschiedelichen Bank Groups liest.

Zafi
2021-02-13, 15:14:34
Merci, wieder was gelernt.

DDR4 hat am Interface die 16fache Datenübertragungsrate wie die Speicherzellen

Bist du sicher? Es müssten nur 8fach sein, da beim Wechsel von DDR3 zu DDR4 das I/O-Taktverhältnis nicht gesteigert wurde. Die Mehrleistung zieht DDR4 nur durch seinen gesteigerten Speichertakt. Und erst bei DDR5 fährt man wieder damit fort das I/O-Taktverhältnis zu steigern.

Man müsste also 16 Bit parallel zum IO schicken, der diese Bits dann seriell mit 16 fachem Takt bereitstellt.

Daraus ergibt sich dann in deinem Text "8 fachem Takt", bzw. korrekt wäre 2x 4 fachem Takt.

Prüf mal, ob mit diesen korrigierten Werten, sich deine Frage von selbst beantwortet.

Wuge
2021-02-14, 13:35:21
Bist du sicher? Es müssten nur 8fach sein, da beim Wechsel von DDR3 zu DDR4 das I/O-Taktverhältnis nicht gesteigert wurde. Die Mehrleistung zieht DDR4 nur durch seinen gesteigerten Speichertakt. Und erst bei DDR5 fährt man wieder damit fort das I/O-Taktverhältnis zu steigern.


Bin mir sicher. I/O-Taktverhältnis ist 16x. Ausser ich habe sehr viel bullshit auf verschiedenen Seiten gelesen. Bei DDR5 wird das mit DDR4 eingeführte Bank Group Konzept weiter geführt (von 2 auf 4 groups).

Zafi
2021-02-14, 14:40:38
Bin mir sicher. I/O-Taktverhältnis ist 16x. Ausser ich habe sehr viel bullshit auf verschiedenen Seiten gelesen. Bei DDR5 wird das mit DDR4 eingeführte Bank Group Konzept weiter geführt (von 2 auf 4 groups).

Tut mir leid, das ist definitiv nicht so. Du kannst es auch auf Wikipedia nachlesen. Das Taktverhältnis ist 4x wie bei DDR3 (bzw. 2mal 4x da DDR).

Wuge
2021-02-14, 17:07:08
Stimmt, lt. wikipedia ist tatsächlich der Takt des Speicherarrays verdoppelt. Zig andere Seiten behaupten das Gegenteil. Da muss ja Verwirrung aufkommen.

Kein DRAM-Crack da, der die ganzen Zusammenhänge erklären kann? :(

seaFs
2021-02-14, 19:14:40
Vielleicht ein Denkanstoß...

Wenn ich mich recht erinnere, war das Hauptziel von DDR4 die Latenzen zu drücken.

Die einzelnen Speicherbausteine laufen intern mit einem bestimmten Takt A. Das Interface läuft mit einem Takt B. B ist ein vielfaches von A (soweit klar).
Takt A (Takt der Speicherbausteine) ist aber seit etwa dem Jahr 2000 (also PC3200/DDR400 verabschiedet wurde) nicht mehr angestiegen und war bei 200MHz.
DDR4 verdoppelt hier erstmals diesen Takt im Vergleich zu DDR3 auf Jedec-konforme 400MHz.

Inwiefern das jetzt mit den Bank Groups was zu tun hat, weiß ich auch nicht.

Wuge
2021-02-15, 11:13:10
Lt. Transcend z.b. wurde der interne Takt eben nicht verdoppelt:
https://www.transcend-info.com/Support/FAQ-296

... und es gibt noch zig andere Quellen die gleiches behaupten. Die Latenzen wurden ja auf Ebene eines Zugriffs nicht ggü. DDR3 verbessert. Wohl aber für mehrere Zugriffe in unterschiedlichen Bänken. Weil man gleichzeitig in 2 unterschiedlichen Bank Groups adressieren kann.

Das hier ist auch recht interessant, auch wenn es da nicht um "unsere" großen Kisten geht:
... (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwid_qie0uvuAhVFzlkKHXbtAWUQFjAAegQIBBAC&url=https%3A%2F%2Fwww.synopsys.com%2Fdesignware-ip%2Ftechnical-bulletin%2Fddr4-bank-groups.html&usg=AOvVaw2o_MkCwC50PVk8A3gD9FBz)

Zafi
2021-02-15, 17:18:20
Die Angaben von Transcend stammen aus einem veralteten Wikipedia-Artikel (aus 2013) (https://en.wikipedia.org/w/index.php?title=DDR_SDRAM&oldid=588211784). Damals wusste man über DDR4 noch zu wenig. Mittlerweile wurde es aber auf Wikipedia korrigiert.

Wuge
2021-02-16, 12:43:53
Wikipedia "kopiert" die Informationen ja auch nur. Die Ursprungsquellen sind andere, also wenn dann wurde der ursprüngliche Wikipedia-Artikel aus solchen Dokumenten wie dem von Transcend erstellt. Unglaublich, wie so viele missdeutige Informationen unterwegs sein können.

seaFs
2021-02-17, 00:10:59
Whiteboard Wednesdays - Understanding DDR4 Bank Grouping (https://www.youtube.com/watch?v=_4lWfP5eDcQ)

https://www.systemverilog.io/ddr4-basics

Habe auch gelesen, dass die Idee von "Bank Groups" erstmals im Rambus RAM anno 2001 (2003???) implementiert wurde, also im Grunde genommen nichts neues ist.