Leserartikel Tutorial: Wie Rowhammer-Fehler bei RAM beheben

Derriell

Ensign
Registriert
Juni 2015
Beiträge
222
[Updated Version, danke für die Kommentare!]


Hallo liebe RAM-Interessierte


kürzlich habe ich meinen DDR3 Samsung 1600Mhz CL11 RAM übertaktet und mit MemTest86 V7.2 auf Stabilität geprüft. Dabei ist eine Fehlermeldung bei Test 13 aufgetaucht, die mir noch nie zu Gesicht bekommen ist "[NOTE] RAM may be vulnerable to high frequency row hammer bit flips" Hier die Erklärung von MemTest selber.


Rowhammer kurz erklärt: Durch intensives Schreiben auf eine Speicherzeile im RAM können benachbarte Zeilen ihre Werte ändern. Dies ist der Fall, weil die Strukturbreiten immer kleiner werden und der Abstand zwischen den Zeilen immer kleiner wird. ECC-RAM korrigiert solche Fehler zu 99.x%. Siehe Wikipedia zu Rowhammer.

Über Sinn oder Unsinn übers Beheben von Rowhammer muss jeder mit sich selber diskutieren. Wenn ich weiss, dass mein RAM potentiell Fehler produzieren kann, gibt mir das kein gutes Gefühl. Ich möchte durch Overclocking nicht 1% Stabilität einbüssen und richte mich danach. Bei meinem RAM (siehe unten) habe ich sogar Stabilität gewonnen im Vergleich zum Standard-Takt.


Lösung des Problems bei DDR3, DDR4 etc. RAM

1.) Durch senken der Betriebsspannung des RAMs werden die elektrische (Wechsel-)Felder und die Temperatur im RAM gesenkt und somit auch der Einfluss auf die benachbarten RAM-Zeilen beim Schreiben in eine RAM-Zeile.

2.) Die Refresh-Rate des RAMs erhöhen. Dadurch sind die Werte im RAM (der wie ein Kondensator funktioniert und sich je länger je mehr entlädt) frischer und weniger anfällig auf elektrische (Wechsel-)Felder der benachbarten Zeilen. Das hat einen kleinen Performance Nachteil im einstelligen-%-Bereich zur Folge, der zu vernachlässigen ist.

3.) Anderen RAM kaufen



Vorgehen zu absolut stabilem OC-RAM


1. Gewünschte (OC-)Frequenz und Timings einstellen.

2. Spannung gerade soweit senken, bis die rowhammer Meldung nicht mehr kommt

3. Allenfalls den Wert Refresh-Zyklus (tREF) in ca. 5-10% Schritten verkleinern, falls der RAM instabil wäre.



Meine Erfahrung mit Asus Z97 Pro Gamer, 2*8GB Samsung 1600Mhz CL11 RAM

@ 1600Mhz CL11 1.5V (stock) tREF = 6240 // Rowhammer könnte möglich sein

@ 1943Mhz CL10 1.33V tREF = 6240 (= 6.24us) // [note] bei Test 13 wird nicht mehr angezeigt!



PS: Dies dürfte für jemand der sein System ohne ECC-RAM produktiv einsetzt von grösserem Interesse sein, als für den 0815 Gamer.



Viel Spass und Erfolg beim Übertakten des RAMs!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: orodigistan
Du hast da ganz schön Halbwissen angesammelt.

Elektromagnetismus ist für Rawhammer unbedeutend. Elektrische (Wechsel-)Felder sind die Ursache für kippende Bits.

Arbeitsspeicher hat immer die Chance für kippende Bits, egal ob Memtest über Stunden keinen Fehler findet. Den Aufpreis für ECC Speicher bei kritischen Anwendungen zahlt niemand einfach so aus Spaß.. Rawhammer und etwaige Tests sind eben nur dieses. Testfälle auf Extrembedingungen.

Das Absenken der Spannung bedeutet nicht nur geringere elektrische Felder im Speicher, sondern auch geringere Spannungslevel in den einzelnen Speicherzellen und damit eine kleiner werdende Trennschärfe beim Auslesen der Zellen. Pauschal zu sagen, weniger Spannung ist besser reduziert den Sachverhalt zu stark. Mit der Erhöhten Refreshrate wird hingegen wieder dafür gesorgt, dass eine ausreichende Trennschärfe häufiger wieder hergestellt wird.
 
Es stellt sich erstmal die Frage welche Version vom memtest86 du verwendet hast.
Der Hersteller selbst hat ja zugegeben dass ihr Test total sinnlos überzogen war und hat ihn geändert, sprich abgeschwächt.
Die 7.x Versionen sind auf jeden Fall schon gefixt, die frühen 6.x haben noch den extremen Row Hammer Test drin.

Grundsätzliches:
Normaler DDR/DDR2/DDR3 RAM hat keine Fehlerkorrektur. Es ist also genau genommen nur eine Frage der Zeit bis ein Fehler passiert.
DDR4 hat zumindest bei der Übertragung CRC, gegen Fehler im RAM selbst hilft das aber auch nicht.
 
Danke für die Rückmeldungen!

@h00bi Natürlich! Es ist die neuste free-Version von der Website, V 7.2

Du hast mich gerade auf eine neue Idee gebracht und zwar:
Um die Zeitspanne bis ein Fehler im rowhammer-anfälligen RAM passiert möglichst zu reduzieren, sollte man die Spannung nur so weit senken, bis nicht mehr rowhammer anfällig. Und nicht die Spannung möglichst tief aber noch stabil wählen. Man hat im stabilen und nicht rowhammeranfälligen Bereich einen Spielraum.

Beispiel an meinem RAM:

1.5V 1600Mhz CL11 tREF 6240 // rowhammer anfällig
1.33V 1943Mhz CL10 tREF 6240 // gerade noch stabil, nicht mehr rowhammer anfällig

Angenommen, der RAM ist ab 1.4V 1943Mhz CL10 rohammer anfällig, dann wäre die stabilste Einstellung:
1.39V 1943Mhz CL10 tREF 6240

@ Karre, das ist ja genau der Punkt, dass auch nicht übertakteter RAM darauf anfällig sein kann!
Btw. ist es reine Definitionssache was "professionell" ist. Workstation-PC? Gaming-PC? Office-PC? 1000 Server? Alles kann professionell sein, weil man mit allem Geld verdienen kann. "Übertakten" in einem "professionellen" System kann auch bedeuten zu undervolten um so einen zuverlässigeren und leiseren Betrieb zu ermöglichen. Aber das ist eine andere Diskusion.

@ Piktogramm Vielen Dank für den Input und die Korrektur! Ich möchte natürlich kein Halbwissen verbreiten und werde es versuchen möglichst korrekt zu formulieren und erklären. "Zum Glück" ändert es nichts am Resultat.

Du hast absolut recht, aber hier ist das Ziel, die elektrischen (Wechsel-)Felder zu minimieren und das geht offensichtlich mit dem Absenken der Spannung (und Temperatur). Sobald die Spannung zu tief (und oder tREF) zu hoch für eine genaue Trennschärfe im RAM sind, gibt(sollte) MemTest86 Fehlermeldungen aus. Um das zu verhindern, wählt man eine Spannung, die höher als instabil ist, aber genug tief, um die Rowhammeranfälligkeit zu beseitigen.
 
Zurück
Oben