Synchrones DRAM oder SDRAM ist der aktuelle Standard für DRAM. Es wird hauptsächlich für System-RAM verwendet, obwohl es auch im VRAM auf Grafikkarten und überall dort verwendet wird, wo DRAM verwendet wird. Es ist in seinem Bereich so dominant, dass das „S“ normalerweise weggelassen wird, und es wird einfach als DRAM bezeichnet. Die Synchronisation von SDRAM ist entscheidend für seine Leistung und war maßgeblich an seinem Aufstieg gegenüber seinem Vorgänger, dem asynchronen DRAM, beteiligt.
Synchron arbeiten
Synchron bezieht sich auf die Tatsache, dass SDRAM einen internen Takt hat und dass die Taktrate dem System bekannt ist. Das heißt nicht, dass es mit der gleichen Taktrate wie die CPU läuft. Aber es hat eine interne Uhr, und die CPU kennt sie. Dadurch können Interaktionen mit dem RAM optimiert werden, so dass der E/A-Bus voll ausgenutzt wird, anstatt ungenutzt zu bleiben, um sicherzustellen, dass keine Befehle andere Befehle stören.
Ein Teil des Problems besteht darin, dass beim Schreiben von Daten in den DRAM. Die Daten müssen gleichzeitig mit dem Befehl zum Schreiben der Daten bereitgestellt werden. Beim Lesen von Daten werden die Daten jedoch zwei oder drei Taktzyklen zurückgelesen, nachdem der Lesebefehl ausgegeben wurde. Das bedeutet, dass der DRAM-Controller genügend Zeit für den Abschluss von Leseoperationen einräumen muss, bevor eine Schreiboperation stattfindet. Bei asynchronem DRAM geschah dies, indem einfach mehr als genug Zeit für den Abschluss der Operation zugelassen wurde. Diese Praxis ließ jedoch den E/A-Bus im Leerlauf. Gleichzeitig wartete der Controller lange genug, um sicher zu sein, was eine ineffiziente Nutzung von Ressourcen war.
Synchrones DRAM verwendet einen internen Takt, um die Übertragung von Daten und die Ausführung von Befehlen zu synchronisieren. Dadurch können die Speichercontroller-Zeitoperationen den E/A-Bus optimal nutzen und eine höhere Leistungsfähigkeit gewährleisten.
Verbesserungen gegenüber asynchronem DRAM
Abgesehen von Verbesserungen beim Timing, die eine verbesserte Steuerung ermöglichen, ist die Hauptverbesserung von SDRAM die Fähigkeit, mehrere Speicherbänke innerhalb des DRAM zu haben. Jede Bank agiert intern grundsätzlich unabhängig. Innerhalb einer Bank kann immer nur eine Reihe offen sein. Dennoch kann eine zweite Zeile in einer anderen Bank geöffnet werden, wodurch Lese- oder Schreiboperationen per Pipeline ausgeführt werden können. Dieses Design verhindert, dass der E/A-Bus im Leerlauf bleibt. Gleichzeitig wird ein neuer Lese- oder Schreibvorgang in die Warteschlange gestellt, was die Effizienz erhöht.
Eine Möglichkeit, darüber nachzudenken, besteht darin, einem zweidimensionalen Array eine dritte Dimension hinzuzufügen. Sie können immer noch nur Daten von einem Ort gleichzeitig lesen oder schreiben. Sie können jedoch eine weitere Zeile in einer anderen Bank vorbereiten, während mit einer interagiert wird.
Ein weiterer Vorteil von SDRAM ergibt sich aus der Aufnahme von Zeitdaten auf einem Chip im Speicher. Einige moderne RAM-Sticks ermöglichen eine schnellere Leistung als die offiziellen DRAM-Standards, indem sie ihre spezifischen Timing-Leistungsinformationen auf diesem Chip codieren. Es kann auch möglich sein, diese Einstellungen manuell zu überschreiben, wodurch der Arbeitsspeicher „übertaktet“ werden kann. Das ist oft sehr ausführlich, da viele Timing-Werte konfiguriert werden können und tendenziell eine minimale Leistung bieten Nutzen. Das Übertakten von RAM birgt auch das Risiko von Instabilität, kann aber bei einigen Workloads Vorteile bieten.
Verbesserungen im Laufe der Zeit
Die tatsächliche Speichertaktrate hat sich seit der Veröffentlichung von SDRAM nicht wesentlich erhöht. Die erste Iteration von SDRAM erhielt das Retronym SDR. Dies ist die Abkürzung für Single Data Rate, um es von den späteren DDR- oder Double Data Rate-Speichern zu unterscheiden. Diese Arten sowie viele andere Formen von DRAM sind alle Beispiele für SDRAM. Der Taktzyklus des DRAM-Chips steuert die Zeit zwischen den schnellsten Operationen des DRAM. Beispielsweise dauert das Lesen einer Spalte aus einer offenen Zeile einen einzigen Taktzyklus.
Es ist wichtig zu beachten, dass es zwei unterschiedliche Taktgeschwindigkeiten für SDRAM gibt, den internen Takt und den I/O-Bus-Takt. Beide können unabhängig voneinander gesteuert werden und wurden im Laufe der Zeit aktualisiert. Die interne Uhr ist die Geschwindigkeit des Speichers selbst und beeinflusst direkt die Latenz. Der E/A-Takt steuert, wie oft Daten, die aus dem SDRAM gelesen wurden oder in das er geschrieben wird, übertragen werden können. Diese Taktrate, kombiniert mit der Breite des E/A-Busses, beeinflusst die Bandbreite. Beide Takte sind gekoppelt und entscheidend für die hohe Leistung von SDRAM.
Wie die Geschwindigkeiten gestiegen sind
Der offizielle JEDEC-Standard für die erste Generation von DDR-SDRAM hatte Speichertakte zwischen 100 und 200 MHz. DDR3 bot noch 100 MHz Speichertakte, obwohl es auch Taktraten von bis zu 266,6 MHz standardisiert. Trotzdem können interne Änderungen der I/O-Taktrate und der Datenmenge, die in einem Lesevorgang enthalten ist, führte dazu, dass selbst bei einem Speichertakt von 100 MHz die Bandbreite für eine Zeiteinheit vervierfacht wurde.
DDR4 änderte das Upgrade-Muster und verdoppelte den Speichertakt mit einem Bereich zwischen 200 und 400 MHz, wodurch wiederum eine Verdoppelung der verfügbaren Bandbreite bei gleichzeitiger Reduzierung der Latenz erreicht wurde. Auch der DDR5-Standard startet mit einem Speichertakt von 200MHz. Dennoch erreicht es bis zu 450 MHz und kehrt zur Verdoppelung der pro Zyklus übertragenen Datenmenge zurück, um die Bandbreite zu verdoppeln.
Fazit
Synchrones DRAM ist der heute hauptsächlich verwendete DRAM-Typ. Es ist die Grundlage für System-RAM und VRAM in Grafikanwendungen. Durch das Synchronisieren von Aktionen des DRAM mit Takten kann die tatsächliche Leistung des DRAM bekannt sein, wodurch Operationen effizient zur Ausführung in eine Warteschlange gestellt werden können. Dies ist viel effizienter, als mehr als genug Zeit zu lassen, da es keine direkte Maßnahme oder Möglichkeit gibt, zu wissen, wann ein bestimmter Befehl abgeschlossen ist.
Die Takte, die das SDRAM steuern, sind entscheidend für seine hohe Leistung. Sie steuern, wie oft Befehle ausgeführt werden können und wie schnell Daten aus dem DRAM gelesen oder in den DRAM geschrieben werden können. Indem diese Timings bekannt sind, können sie für Spitzenleistung optimiert werden.