Seite 6: GDDR6X und Error Detection and Replay

Eine immer höhere Speicherbandbreite ist bei der Vielzahl an Shadern von entscheidender Bedeutung. Die Cache-Hierarchie wird schneller und so muss auch der Speicher immer schneller werden. GDDR6 hätte nur noch über einen höheren Takt eine höhere Speicherbandbreite ermöglicht. Eine Alternative wäre die Verbreitung des Speicherinterface gewesen. HBM besitzt ein extrem breites Speicherinterface, ist in der Integration und Fertigung aber einfach zu teuer – und kommt daher entsprechend noch nicht zum Einsatz.

NVIDIA hat sich also mit Micron zusammengetan und GDDR6X entwickelt. GDDR6X arbeitet in etwa mit dem gleichen Takt wie GDDR6 und arbeitet auch mit vergleichbarer Spannung.

Für den bisherigen GDDR6-Speicher wird eine Non-Return-to-Zero (NRZ) Pulsamplitudenmodulation verwendet. Zwischen "0" und "1" wird durch einen Unterschied in der High- und Low-Spannung unterschieden. GDDR6X wechselt auf ein PAM4, für die das Trägersignal in vier Spannungslevel pro Taktzyklus unterteilt wird. Die einzelnen Schritte betragen gerade einmal 250 mV. Das PAM4 kommt bei immer mehr Übertragungsstandards zum Einsatz. Auch PCI-Express 5.0 und DDR6 werden auf PAM4 setzen.

NVIDIA und Micron wenden zudem ein paar Tricks an, um eine derartige Übertragung bei den gewünschten Taktraten noch gewährleisten zu können. Das sogenannte Max Transition Avoidance Coding (MTA) sorgt dafür, dass das Signal nur in bis zu zwei Spannungslevel wechselt. Würde der Wert vom niedrigsten auf das höchste Spannungslevel springen können, währen die "Augen" im Signal nicht mehr deutlich zu unterscheiden und eine Signalübertragung nicht möglich. Mit MTA setzt sich NVIDIA in die Codierung des Signals und sorgt dafür, dass eine entsprechend kompatible Kodierung vorgenommen wird.

Zuletzt ermöglicht NVIDIA dem System auch eine gewisse Dynamik, denn selbst kleine Unterschiede in der Fertigung von PCB und Speicher sorgen für Unterschiede in der Signallaufzeit. Algorithmen können die Signalübertragung entsprechend anpassen.

Error Detection and Replay

Mit dem GDDR6(X) Speichercontroller führt NVIDIA eine neue Technologie namens Error Detection and Replay (EDR) ein. Diese spielt vor allem im Zusammenspiel mit dem Overclocking eine wichtige Rolle.

Der GDDR6X-Speicher arbeitet auf der GeForce RTX 3080 Founders Edition mit einem Takt von 1.188 MHz. Zum Speicher-Overclocking kommen wir im Rahmen dieses Artikels noch. Das Error Detection and Replay soll das Overclocking des Speichers aber einfacher machen, da Fehler in der Übertragung des Speichers erkannt (Error Detection) und die Daten so lange übertragen werden, bis sie ankommen (Replay). Anstatt der Darstellung von Artefakten werden die Übertragungsfehler erkannt und der Speichercontroller versucht diese zu kompensieren. Es handelt sich um einen Cyclic Redundancy Check (CRC) und damit um ein Verfahren, welches mit einem Prüfwert für die Daten arbeitet. Stimmt der Prüfwert nicht, ist es bei der Übertragung zu einem Fehler gekommen.

Obiges Schaubild zeigt die Funktionsweise. Ohne CRC bzw. Error Detection and Replay kommt es bei steigendem Takt zu Fehlern und damit zu Artefakten. Damit steigt auch das Risiko, dass es zu einem Absturz kommt bzw. der Treiber zurückgesetzt wird.

Mit Error Detection and Replay werden Fehler so lange ausgeglichen, bis die effektive Speicherbandbreite nicht mehr ansteigt. Bis zum Erreichen des Plateaus kommt es üblicherweise noch nicht zu Abstürzen. Ist das Plateau erreicht, ist eine weitere Steigerung des Taktes ohnehin nicht mehr sinnvoll. Allerdings verweist NVIDIA darauf, dass es auch mit Error Detection and Replay zu Abstürzen kommen kann. Artefakte sollen so aber weitestgehend verhindert werden.

NVIDIA spricht im Zusammenhang mit Error Detection and Replay ausschließlich vom GDDR6X-Speichercontroller der GA10x-GPUs. Die GeForce RTX 3080 und GeForce RTX 3090 verwendet GDDR6X-Speicher. Die GeForce RTX 3070 hingegen nicht. Hier kommt die GA104-GPU zum Einsatz. Ob die GeForce RTX 3070 somit auch das Error Detection and Replay unterstützen wird, ist aktuell nicht bekannt.