DDR3-Speicher in Theorie und Praxis

Storage & Speicher | HT4U.net | Seite 4

DDR3-SDRAM: „absolute Latenzen und die „Bandbreiten“



Mit großer Regelmäßigkeit von etwa drei Jahren hält eine neue Speichertechnologie im PC-Bereich Einzug. Nach dem ersten synchronen Arbeitsspeicher SDRAM vor zehn Jahren folgte im Jahr 2000 DDR-SDRAM und schließlich 2003 DDR2-SDRAM. Mit der Einführung von Intels Chipsatz-Familie „3“ kam vor wenigen Monaten DDR3-SDRAM hinzu, der über kurz oder lang die Vorgänger ablösen wird. Mit jeder neuen Speichergeneration erhöhte sich auch die Bandbreite. Anhand des theoretischen Speicherdurchsatzes – dies haben wir treffend im vorangegangenen Kapitel beschrieben.

Speicherart
maximale Geschwindigkeit
Double Data Rate (DDR)
Taktfrequenz Speicherzelle
Taktfrequenz I/O-Puffer
theoretischer Durchsatz (Single Channel)
theoretischer Durchsatz (Dual Channel)
SDRAM
PC-133
nein
133 MHz
133
1,06 Gbyte/s
-
DDR-SDRAM
PC-3200 / DDR-400
ja
200 MHz
200
3,2 Gbyte/s
6,4 Gbyte/s
DDR2-SDRAM
PC2-6400 / DDR2-800*
ja
200 MHz
400
6,4 Gbyte/s
12,8 Gbyte/s
DDR3-SDRAM
PC3-12800 / DDR3-1600
ja
200 MHz
800
12,8 Gbyte/s
25,6 Gbyte/s
*PC2-8500 / DDR2-1066 ist noch kein verabschiedeter Standard
Die Berechnung der PCx-xxxx-Nennungen und der der Bandbreite haben wir zuvor bereits ausreichend geschildert, ebenso den Unterschied zwischen dem Takt des I/O-Puffers und der eigentlichen Speicherzellen seit DDR2 und dem damit verbundenen Prefetching.

Die Frequenz der Speicherzellen ist nun seit 7 Jahren nahezu konstant ist und nur die Taktfrequenz – des flächenmäßig recht kleinen Anteil – des I/O-Puffers auf dem Speicherchip wurde erhöht. Aus Herstellersicht senkt das die Kosten bei Umstellung auf einen neuen Speicherstandard, da die Produktionswerkzeuge für die Speicherzellen nahezu unverändert übernommen werden können. Teilweise soll es sogar möglich sein, erst in einem späten Herstellungsstadium festzulegen, ob aus dem Wafer DDR1- oder DDR2-Speicherbausteine werden.

Bis hierhin klingt das alles recht einfach, geht man rein nach den Zahlen der theoretischen Brandbreite müsste die Speicherperformance ständig stark wachsen. In der Praxis geben die Benchmarks – je nach Anwendung – aber ein konträres Bild ab. Hauptursache dafür sind die Speicherlatenzen bzw. Wartezyklen beim Zugriff auf den Arbeitsspeicher. Der Idealzugriff wäre, wenn sofort nach Anforderung die Daten flössen. In der Praxis muss der Speicher aber erst adressiert werden, da der Speicher intern in Spalten und Reihen aufgeteilt ist, um die Daten schneller aufzufinden.

Als Vergleich bietet sich hier eine Schublade mit Schrauben an. Wirft man alle Schrauben unsortiert hinein, so muss man erst lange wühlen, um das gewünschte Exemplar zu finden. Teilt man die Schublade hingegen in ein schachbrettartiges Raster ein und hat eine Liste welcher Typ in welchem Abschnitt zu finden ist, so gestaltet sich die Suche recht schnell. Trotzdem benötigt es Zeit die Einteilung zu lesen und den gewünschten Abschnitt aus der Kombination von Spalte und Reihe aufzufinden. Beim Speicher ist dies nicht anders.

Diese Zeiten, englisch auch „timings“ genannt, sind in jedem Speichermodul im sogenannten „Serial Presence Detect“ – einem kleinem EEPROM-Chip – hinterlegt. Das ist notwendig, damit der Chipsatz den Speicher mit den korrekten Zeiten ansteuern kann. Bei zu kurzen Zeiten werden keine bzw. falsche Daten geliefert, was in der Regel zu Datenfehlern und damit zum Absturz des Systems führt.

Bild: DDR3-Speicher in Theorie und Praxis

Warum sind die Timings nun so entscheidend und nicht nur die Bandbreite? Als Vergleich könnte man den Transfer der Daten einer Festplatte über die Strecke von 300 km als Beispiel nehmen. Man kann einmal die Festplatte (500 GByte) per Auto transportieren, was bei einer Durchschnittsgeschwindigkeit von 100 km/h zu einer Übertragungsdauer von 3 Stunden führt und somit einer Datentransferrate von ca. 167 GByte/h beziehungsweise 46,3 MByte/s (370,4 MBit/s) entspricht. Vergleicht man damit eine typische DSL-Leitung vonn 2 MBit/s, so erscheint der Wert sehr hoch. Will man aber nur eine kurze Nachricht und eine Empfangsbestätigung übermitteln, so dauert das per Auto insgesamt sechs Stunden, während per DSL eine Antwort innerhalb von Millisekunden zurück kommt. Hier ist DSL trotz der viel geringeren Übertragungsrate wesentlich schneller.

Beim Arbeitsspeicher ist das Verhalten analog. In der Praxis bringt eine hohe Übertragungsrate nur etwas bei Anwendungen, die eine hohe Speicherbandbreite erfordern. Bei üblichen Desktop-Anwendungen ist das aber eher die Ausnahme. Es treten eher kurze Zugriffe von einigen Megabyte Größe auf, die im Verhältnis zur Speicherbandbreite sehr gering sind. Hier spielt die Zeit bis diese Daten überhaupt geliefert werden können – also die Latenzen – eine viel entscheidendere Rolle.

Die Berechnung der Latenzen ist recht einfach. Der Speicher hat eine bestimmte Frequenz, mit der die Daten über elektrische Signale übertragen werden. Taktet der Speicher beispielsweise mit 100 MHz, so ändert das Signal 100 Millionen Mal in der Sekunde seinen Zustand. Man kann hier die Analogie zu einem Pendel ziehen. Das schwingt von der höchsten Auslenkung durch den Nullpunkt zur gegenüberliegenden maximalen Auslenkung und wieder zurück. Will man jetzt wissen, wie lange eine Schwingung dauert, so bildet man den Kehrwert der Frequenz (f).

T = 1 / f

Um die Zykluszeit von RAM zu ermitteln, muss man die Frequenz des I/O-Puffers als Grundlage nehmen, da über diesen ja der Speicher mit dem Speichercontroller im Chipsatz (Intel) bzw. der CPU (AMD) kommuniziert. Bei PC2-6400/DDR2-800 sind das 400 MHz (siehe Tabelle).

T = 1 / 400 MHz = 2,5 ns

Auf dem Aufkleber des Speicherriegels bzw. im SPD sind nun die relativen Timings in Anzahl der Zyklen angeben. Ein üblicher Wert für die Wartezeit CAS Latency (Column Address Strobe, auch unter CL bekannt), die für die Adressierung einer Zeile im Speicher benötigt wird, ist bei diesem Speichertyp 5 T – also 5 Takte. Absolut beträgt die Verzögerung somit 12,5 Nanosekunden (5 × 2,5 ns).

Ein Problem ist, dass die relativen Latenzen untereinander nicht direkt vergleichbar sind. Man kann nicht die 2,5 Takte bei DDR-400 den 4 Takten bei DDR2-800 direkt gegenüberstellen. DDR-400 besitzt einen I/O-Takt von 200 MHz, so dass die absolute Latenz 12,5 ns (2,5 × 5 ns) beträgt. DDR2-800 bei CL4 hat nur 10 ns (2,5 ns × 4). Daran sieht man, dass der DDR2-Speicher im vorliegenden Fall schneller angesteuert werden kann, als der DDR-Speicher, obwohl die relativen Timings auf den ersten Blick etwas anderes vermuten lassen.

Erstellt man nun einmal eine Übersicht über die gebräuchlichen Timings der verschiedenen Speichertypen der vergangenen Jahre, so erkennt man schnell, dass die absoluten Latenzen seit Jahren nahezu unverändert sind.

Speicherart
Latenz
I/O-Takt in MHz
Zykluszeit in Nanosekunden (ns)
absolute Latenz in Nanosekunden (ns)
PC-2700/DDR-333
CL 2,5
166
6,0
15,1
CL 2
166
6,0
12,0
PC-3200/DDR-400
CL 3
200
5,0
15,0
CL 2,5
200
5,0
12,5
CL 2
200
5,0
10,0
PC2-5300/DDR2-667
CL 5
333
3,0
15,0
CL 4
333
3,0
12,0
PC2-6400/DDR2-800
CL 5
400
2,5
12,5
CL 4
400
2,5
10,0
PC3-8500/DDR3-1066
CL 8
533
1,9
15,0
CL 7
533
1,9
13,1
CL 6
533
1,9
11,3
PC3-10667/DDR3-1333
CL 9
667
1,5
13,5
CL 8
667
1,5
12,0
CL 7
667
1,5
10,5
PC3-12800/DDR3-1600
CL 9
800
1,3
11,3
CL 8
800
1,3
10,0
Der teuerste DDR3-1600-Speicher ist, rein von den Latenzen her, nur in etwa schnell wie fünf Jahre alter DDR-400-RAM. Das heißt: moderner Speicher kann im Prinzip nur bei lang andauernden linearen Zugriffen schneller sein. Umgekehrt kann man wiederum sagen, dass ein Großteil des Geschwindigkeitszuwachs der Speicherbandbreite durch die unveränderten Timings verpufft. Bei Grafikkarten herrscht beispielsweise eine ganz andere Datenstruktur. Im Videospeicher befinden sich hauptsächlich große Texturdaten, die häufig in einem Stück abgerufen werden. Latenz spielt hier nur eine untergeordnete Rolle, die Bandbreite ist für Grafikspeicher viel entscheidender.

Die Ursache für den Stillstand bei den Latenzen ist ganz klar in der technischen Entwicklung zu finden. Die eigentlichen Speicherzellen laufen intern immer noch mit denselben Frequenzen, wie zu DDR-Zeiten. Lediglich der externe Takt wurde erhöht. Man kann hier durchaus Analogien zu einem RAID0-Verbund bei Festplatten ziehen. Die Zugriffszeiten verbessern sich durch Zusammenschalten mehrerer Festplatten nicht, lediglich die Transferrate steigt. Ob das Latenzproblem bei DDR4 seitens der JEDEC beziehungsweise durch die in ihr vertretenen Speicherhersteller angegangen wird, darf man an dieser Stelle aber erst einmal bezweifeln.

Abschließend wollen wir noch einen Überblick geben, welche Timings, bei welchen Taktraten bei der JEDEC derzeit offiziell verabschiedet sind.

JEDEC-Vorgaben DDR2
Geschwindigkeit DDR2-800 DDR2-667 DDR2-533 DDR2-400
Timings (CL-tRCD-tRP) 4-4-4 5-5-5 6-6-6 4-4-4 5-5-5 3-3-3 4-4-4 3-3-3 4-4-4
JEDEC-Vorgaben DDR3
Geschwindigkeit DDR3-800 DDR3-1066 DDR3-1333 DDR3-1600
Timings (CL-tRCD-tRP) 5-5-5 6-6-6 6-6-6 7-7-7 8-8-8 7-7-7 8-8-8 9-9-9 8-8-8 9-9-9 10-10-10