Prefetch verstehen bei DDR4-Speichermodulen

HummelBommel

Banned
Registriert
Juni 2020
Beiträge
90
Hallo,

in der PCGH Ausgabe 05/2020 ist ein Artikel enthalten, in dem DDR4-Speichermodulen erklärt werden. Dort ist auch eine Grafik enthalten, die zeigen soll, wie die Transferate zustande kommt. Leider wird die Grafik nicht besonders ausführlich beschrieben. Sinngemäß handelt es sich um die folgende Grafik. Ich würde diese Grafik gern aus Neugier verstehen und habe deshalb mal die Transferrate und Datenübertragungsrate zwischen Speicherchip und I/O-Buffer für den DDR4-3200 mitgerechnet.

Dabei bin ich etwas ins Stolpern gekommen. Schon beim Thema Prefetch sind die Informationen die mir aus diversen Quellen vorliegen teils sehr komplex oder so vereinfacht, dass man es nicht versteht. Ein Schulbuch aus der Berufsschule versteht darunter einfach eine Erhöhung der Anzahl der Datenleitungen zwischen Speicherchip und I/O-Buffer auf 8.

Das habe ich dann so interpretiert:
Der DDR4-3200 taktet intern mit 400MHz. Sein I/O-Buffer allerdings mit 1600MHz. D.h. die 400MHz werden jetzt auf allen 8 internen Datenleitungen angelegt, sodass man eigentlich 1600 MHz hat? Das führt bei mir zu folgendem Widerspruch: Durch das Double-Data-Rate-Verfahren müssten jetzt ja auch noch zusätzlich pro Taktperiode 2 Transfers möglich sein. Dann käme ich auf eine Datentrransferrate von 400*8*2=6400 MT/s. Die sollte doch aber bei 3200 liegen.
 
Schon beim Thema Prefetch sind die Informationen die mir aus diversen Quellen vorliegen teils sehr komplex oder so vereinfacht, dass man es nicht versteht. Ein Schulbuch aus der Berufsschule versteht darunter einfach eine Erhöhung der Anzahl der Datenleitungen zwischen Speicherchip und I/O-Buffer auf 8.
Naja, so wie du es beschreibst klingt es nach einer Verbreiterung des Speicherinterfaces, das ist aber nicht gemeint. Also richtig ist, dass gleich 8 "Datenpins" statt 1 Datenpin ausgelesen werden.

Vereinfacht gesagt: Die Wahrscheinlichkeit, dass Speicher in größeren zusammenhängenden Bereichen abgerufen wird ist viel größer als dass es z.B. byteweise passiert. Wenn du also auf Speicher an einer bestimmten Position zugreifst, dann ist davon auszugehen, dass du auch auf benachbarte Bereiche zugreifst... das Prefetching soll diesem Umstand eben Sorge tragen, dass solche Bereiche gleich "proaktiv" im Voraus (deshalb "pre") mit geladen werden.
 
  • Gefällt mir
Reaktionen: h00bi
@abcddcba Die Information habe ich aus Wikipedia.

@tollertyp Das habe ich auch so herausgelesen. Beim 8-Prefetch erfolgt ein simultaner Zugriff auf 8 Speicherbänke.

Weiß jemand, ob auf dem internen Speicherbus eine serielle Übertragung stattfindet. Ich bin mir unsicher. In meinem Studienbuch steht, dass vorausschauend 8 Datenpins in vier Taktperioden ausgelesen werden. Das deutet auf serielle Übertragung hin. Anderseits sind in den meisten Grafiken zu diesem Thema an dieser Stelle 8 Pfeile eingezeichnet, die vominternen Speicherchip zum I/O-Buffer führen, was auf eine parallele Übertragung hindeutet.
 
Zuletzt bearbeitet:
Arbeitet eine mehrspurige Straße seriell oder parallel?
Naja, die Spuren sind parallel, aber innerhalb der Spuren ist es seriell...
 
So wie ich das verstanden habe ist das ein Daten-Piplining auf einem 64Bit-Bus. Es ist schwer vorstellbar, wie 8 Bit pro Leitung mit einer einzigen Taktperiode transportiert werden, so dass z.B. ein 400MHz-Speicherbus auf eine Datentransferrate von 3200MT/s kommt.
 
Zurück
Oben