Zum 3DCenter Forum
Inhalt




Taktverdopplung bei DDR-Speicher?

23. März 2003 / von GloomY / Seite 2 von 3


   Latenz

Zur weiteren Funktionsweise des Speichers könnte ich jetzt sehr ins Detail gehen. Zum leichteren Verständnis will ich mich hier aber kurz fassen:

  • Der Speicher braucht eine gewisse Zeit (auch Latenz genannt), bis er den Inhalt einer Speicherzelle einer bestimmten Adresse liefern kann bzw. bis er Daten dort hineinschreiben kann.

  • Speicherzellen, die "hinter" der bereits adressierten Zelle liegen (also Adressen besitzen, die nur wenig größer sind), können ohne Verzögerung gelesen / geschrieben werden (das nennt man "Burst"). Wie viele Zellen "gebursted" werden können, hängt vom verwendeten Speicher ab.

Es erscheint logisch, dass Zugriffe, die sehr viele verschiedene Adressen haben, langsamer sind, als welche, die eher hintereinanderliegende Zellen adressieren (mehr Bursts). Anzumerken wäre noch, dass DDR-SDRAM gleich lange Latenzen hat wie SDR-SDRAM.

DDR-SDRAM ist nur bei der Datenübertragung schneller, aber nicht bei den Latenzen.
DDR-SDRAM ist nur bei der Datenübertragung schneller, aber nicht bei den Latenzen.

Ergo: Bei Zugriffen auf viele unterschiedliche Adressen ist DDR-SDRAM also praktisch nicht schneller als SDR-SDRAM. Denn der Vorteil der schnelleren Datenübertragung kommt dann überhaupt nicht zum tragen, weil sehr verstreut liegende Daten nicht "geburstet" werden können, sondern nur Stück für Stück immer erst nach einer neuen Adressierung übertragen werden können. Dann limitiert jener Adressierungs-Vorgang, welcher bei SDR- und DDR-SDRAM die völlig identische Zeitspanne benötigt.


   Bandbreite

Die Bandbreite ist die maximale Anzahl an Bytes, welche in einer Zeit übertragen werden kann. Klar, dass hier DDR eine doppelt so hohe Bandbreite als gleichschnell getaktetes SDR-SDRAM hat. Anzumerken wäre natürlich, daß in der Realität Bandbreite und Latenz miteinander zusammenhängen. Das ist hier aber nicht das Thema und wird beispielsweise in einem sehr guten Artikel bei Ars Technica (englisch) sehr gut beschrieben.

Einige Leute machen hier immer wieder den Fehler, die theoretisch maximale Bandbreite als die reale zu betrachten. Dabei wird die Latenz unter den Tisch fallengelassen, welche die reale Bandbreite stark mitbeeinflußt. Die theoretischen Werte sind dabei aber Maximalwerte, die in der Realität nicht erreicht werden und vor allem nicht erreicht werden können. Die theoretische maximale Übertragungsrate beruht auf der Annahme, daß in jeden Takt die maximal mögliche Anzahl an Bits übertragen wird. Es gibt einige Faktoren, die dies verhindern.

Da wäre zum einen natürlich die Zeit, die für die Adressierung der Speicherzelle(n) benötigt wird (Latenz). Dies sind je nach Timing des RAMs und ein paar anderer Faktoren (Page Hit/Miss) wenige bis viele Takte, bis überhaupt ein einziges Bit den RAM Richtung Chipsatz verlassen hat.

Und selbst wenn dann mal eine Zelle adressiert ist, kann man nicht beliebig lange bursten, denn die gerade geöffnete Speicher-Page ist irgendwann einfach auch einmal zu Ende (RAM ist intern ein zweidimensionales Gitter aus Zellen). Dann muß man die Speicher-Page wieder schließen, danach eine gewisse Zeit warten, bis man eine neue Speicher-Page öffnen darf und dann erst nächste Speicher-Spalte adressieren, welches noch einmal ein paar Takte dauert. Erst danach kann der RAM wieder Daten übertragen.

Weiterhin muß man die Tatsache beachten, dass bei sich abwechselnden Lese- und Schreibzugriffen der Speicherbus immer ein paar Takte warten muß (Turn-around Latenz), bis auf ihn wieder zugegriffen werden kann. Damit wird sichergestellt, dass kein gleichzeitiges Lesen und Schreiben auf dem Datenbus zum/vom RAM stattfindet. In diesem Fall würden die Informationen der beiden entgegengesetzten Signale sich selbst auslöschen.

FSB-Bandbreite bei DDR- und SDR-Übertragung.
FSB-Bandbreite bei DDR- und SDR-Übertragung.
© Ars Technica. Vielen Dank für die Bereitstellung dieser Grafik.

Und wenn das nicht schon genug Wartezeit wäre, kommt jetzt noch eine weitere Verzögerung hinzu: Diese kommt dadurch zu stande, daß DRAM (im Gegensatz zu SRAM) eigentlich nicht funktioniert ;-). Die DRAM-Zellen bestehen aus einem einzelnen Kondensator zur Ladungsspeicherung, welcher sich nach einiger Zeit entlädt, so daß der DRAM Controller nach einer bestimmten Zeit die Zelleninhalte (und damit die Ladungen der Kondensatoren) auffrischen muß. Während dieser Zeit kann kein Transfer, keine Adressierung oder sonstigen Aktionen im RAM stattfinden, er ist also komplett blockiert.

Dieser Refresh findet etwa alle 15 Mikrosekunden statt und limitiert dadurch natürlich die reale Bandbreite erheblich. Daher bleibt es wohl ein Geheimnis, wie manche Speicherbenchmarks (beispielsweise Sisoft Sandra) auf 85 oder 90% der theoretischen Bandbreite kommen können. Solche Werte sind alles andere als real und sind allein schon wegen den Latenzen eigentlich definitiv nicht machbar. Insbesondere bei SiSoft Sandra gibt es daher berechtigte Zweifel, wie die Werte zustande kommen und ob dort nicht eher sogar einfach (hoch-)gerechnet wird, nachdem man eine Basismessung durchgeführt hat. Durch diesen Rechen-Anteil in den Endwerten ergibt sich natürlich immer auch die Möglichkeit der (bewußten oder unbewußten) Bevorzugung bestimmter Hardware.

Es sei hier noch angemerkt, dass selbst bei einem Systembus (FSB), welcher keine DRAM-Latenz oder DRAM-Refresh beachten muß, ein DDR-Protokoll nicht doppelt so schnell wie ein SDR-Protokoll ist. Turn-around Zeiten gibt es auch hier, die logischerweise bei DDR genauso lange dauern wie bei SDR. Dies ist in der obigen Grafik verdeutlicht, welche aus dem schon angesprochenen Artikel von Ars Technica stammt.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back Weiter / Next

Shortcuts
nach oben