[Sammelthread] Ryzen DDR5 RAM OC Thread

Danke für die rasche und hilfreiche Antwort (y)
Hängen da noch weitere Werte an tRFC dran, die man auch anpassen könnte oder sogar muss?
Die beiden Werte habe ich eigentlich nur erwähnt, weil sie mir von der Schreibweise her zusammenhängen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
soweit mir bekannt hängen die tRFCxx nicht mit anderen Timings zusammen

DDR5 tRFC Liste.PNG

die Liste hab ich lokal gespeichert - kein Plan ob es da noch andere Abhängigkeiten gibt :geek:
 
Danke,
ich hätte noch eine eher allgemeinere Frage, sieht irgendwas an all den Zahlen im Bild ... wie soll ich sagen ... krumm, falsch oder suboptimal aus?
ZenTimings_Screenshot.png
 
Trfcsb ist soweit mir bekannt in der Amd Firmware nicht aktiv. Da Amd den fine granular mode nicht aktiviert hat (googelt mal nach AMD FGA). Trfc2 ist für Temperaturen über 85 Grad soweit ich das noch im Kopf habe. Wenn ihr beides auf 1 setzt dürfte nicht viel passieren. Last es auf Auto und gut.

Auf overclock.net habe ich viele Beiträge vom User Veii gelesen. Ich glaube der ist auch hier aktiv aber er hat zu Intel gewechselt. Er hat ein unglaubliches Wissen über Ram und wie die Timings zusammenhängen. Mal schauen evtl. fasse ich das mal zusammen. Final lässt sich jedoch aus seinen Posts lesen das selbst er manches nicht durchblickt. Leider gibt es seitens Amd auch wenig offizielles. Wäre cool wenn Amd da ein wenig Licht ins dunkle bringen würde vor allem weil sie ja auch nicht dem DDR5 jedec Standard zu 100% folgen.

Trefi 65528 trfc 404. Laut Veii ist Trefi max 65528 und dann brauchen wir auch krumme Timmings 404 +-32 ( 372 oder 436 usw.) um es entsprechen auf der Skala zu verschieben. Auch wenn der innere Monk sagt 130Nanosekunden sehen schöner aus.😅😅😅
 
Zuletzt bearbeitet:
Danke für den Hinweis LuxSkywalker :-). Hab ich gemacht. Bin gespannt ob man aus dem Zahlenwust was rauslesen kann.
da ich mir nicht 100% sicher bin welcher IC Hersteller auf deinem Corsair RAM sitzt kann ich erstmal nur:

Code:
tREFI = 65528

empfehlen

danach könntest du noch versuchen tRAS und tRC anzupassen:

Code:
tRAS = tRCD+tRTP = 38+24 = 62
tRC = tRAS+tRP = 62+38 = 100

weiterhin läuft dein Memory Controller "UCLK" nur mit halber Gesschwindigkeit (UCLK = 1550) - dieser sollte für beste Performace aber UCLK = MCLK eingestellt werden (was bei 6200MT/s RAM nicht immer funktioniert)

also dein BIOS durchforsten und nach der Einstellung UCLK suchen - entweder den ebenfalls auf 3100 setzen oder halt UCLK = MLCK

deine tRFC Werte sind mit 100ns schon ziemlich niedrig (was gut ist) - das hab ich so auch noch nicht gesehen ^^

weiterhin kannst du m.e. nach die VSoC und CLDO VDDP Spannung reduzieren

Code:
VSoC = 1.200V
CLDO VDDP = 1.000V

ich würde erstmal nur tREFI anpassen dann tRAS und tRC, booten und testen - danach wenn stabil die beiden Spannungen nach unten anpassen, jeweils eins nach der anderen. Immer nach änderungen wenn stabil BIOS neu sichern und nächsten Schritt

!! HINWEIS !!

BITTE VOR JEGLICHER ÄNDERUNG IM BIOS EIN PROFIL ERSTELLEN, ES KÖNNTE SEIN DAS MIT MEINEN O.G. ÄNDERUNGEN DEIN SYSTEM NICHT MEHR STARTET UND DU DAS BIOS ZURÜCK SETZEN MUSST !
 
da ich mir nicht 100% sicher bin welcher IC Hersteller auf deinem Corsair RAM sitzt kann ich erstmal nur:

Code:
tREFI = 65528

empfehlen

danach könntest du noch versuchen tRAS und tRC anzupassen:

Code:
tRAS = tRCD+tRTP = 38+24 = 62
tRC = tRAS+tRP = 62+38 = 100

weiterhin läuft dein Memory Controller "UCLK" nur mit halber Gesschwindigkeit (UCLK = 1550) - dieser sollte für beste Performace aber UCLK = MCLK eingestellt werden (was bei 6200MT/s RAM nicht immer funktioniert)

also dein BIOS durchforsten und nach der Einstellung UCLK suchen - entweder den ebenfalls auf 3100 setzen oder halt UCLK = MLCK

deine tRFC Werte sind mit 100ns schon ziemlich niedrig (was gut ist) - das hab ich so auch noch nicht gesehen ^^

weiterhin kannst du m.e. nach die VSoC und CLDO VDDP Spannung reduzieren

Code:
VSoC = 1.200V
CLDO VDDP = 1.000V

ich würde erstmal nur tREFI anpassen dann tRAS und tRC, booten und testen - danach wenn stabil die beiden Spannungen nach unten anpassen, jeweils eins nach der anderen. Immer nach änderungen wenn stabil BIOS neu sichern und nächsten Schritt

!! HINWEIS !!

BITTE VOR JEGLICHER ÄNDERUNG IM BIOS EIN PROFIL ERSTELLEN, ES KÖNNTE SEIN DAS MIT MEINEN O.G. ÄNDERUNGEN DEIN SYSTEM NICHT MEHR STARTET UND DU DAS BIOS ZURÜCK SETZEN MUSST !
Wow Luke. Ich weiß gar nicht was ich sagen soll. Total nett von dir das du dir soviel Zeit für mein Anliegen genommen hast. Herzlichsten Dank dafür. Werde ich der Reihe mal testen genau so wie du es geschrieben hast. Liebe Grüße.
 
Huhu,
heute ist der Speicher angekommen und läuft einwandfrei mit dem EXPO Profil.
Ich möchte mich nochmal bei allen bedanken, die mir geholfen haben den richtigen Speicher zu finden.

Danke danke danke..einfach top dieses Forum..auch wenn ich meistens immer nur fragen habe und selbst kaum helfen kann, wird mir geholfen..(y):-)
 
Hallo zusammen,
ich habe noch Speicher (Teamgroup FF3D532G7200HC34ADC01) aus meinem Intel System und stelle mir gerade die Frage, ob bzw. wie gut dierser auf einem ASUS ROG Strix X670E-A laufen könnte.
Hat jemand bereits einen vergleichbaren Speicher auf einem AM5 Board testen können?
 
Ich will mir ein Excel Sheet mit den Abhängigkeiten machen.
Habe noch nicht so viel zusammengetragen.
ddr5timings.png


Also als her damit : ) ( auch Spannungen )

Werde die Tabelle auch gerne teilen.
 
Unbenannt1.JPG


das sind zusammenhängende Werte die ich so kenne 8-)

davon sind also nur tFAW & tWTRL noch nicht in deiner Liste
Beitrag automatisch zusammengeführt:

Hallo zusammen,
ich habe noch Speicher (Teamgroup FF3D532G7200HC34ADC01) aus meinem Intel System und stelle mir gerade die Frage, ob bzw. wie gut dierser auf einem ASUS ROG Strix X670E-A laufen könnte.
Hat jemand bereits einen vergleichbaren Speicher auf einem AM5 Board testen können?
dein 7200er RAM wird m.e. wohl eher nicht OotB laufen - bei den allermeisten Ryzen 7000 ist bei maximal 6600 schluss, zumindest wenn du FCLK = MCLK fahren willst was idR die beste Latenz ergibt

ich würde den etwas runter takten und dann Spannungen absenken und die Timings versuchen massiv anzuziehen - du wirst auf jeden Fall manuell Hand anlegen müssen
 
Zuletzt bearbeitet:
Na immerhin : )
Mit interaktivem ns Rechner :d

ddr5timings.png

Beitrag automatisch zusammengeführt:

Trefi 65528 trfc 404. Laut Veii ist Trefi max 65528 und dann brauchen wir auch krumme Timmings 404 +-32 ( 372 oder 436 usw.) um es entsprechen auf der Skala zu verschieben. Auch wenn der innere Monk sagt 130Nanosekunden sehen schöner aus.😅😅😅
Also soll, wenn ich tREFI durch tRFC teile, eine ganze Zahl rauskommen?
Beitrag automatisch zusammengeführt:

Also wenn ich tREFI/ tRFC teile, kommt in meinem fall 157,5519 heraus.
Heißt tRFC kann 157,5 mal in einem tREFI Zyklus refreshen.

Bei den vorgeschlagenen 436 tRFC 150,29 mal.

Also da fehlt mir noch Info : )
 
Zuletzt bearbeitet:
@Veii

Ich zitiere hier mal Veii aus dem overclock Forum "RFC if you stay with 65535 maxed, is 320,352,384,416 ~ pick one that suits you

If you want to give 65528 a try , then its 308, 340, 372 ,404 " vielleicht liest er das ja und kann uns hier helfen mit seinem Historien Wissen (ist ja jetzt im blauen Team ;)

Hängt irgendwie mit der Hexadezimal Umrechnung zusammen aber das ist auch nur das was ich aus dem Overclockforum gelesen habe
 
RFC immer in steps von 32.

65528 ist ein komisches Thema.
Leider unsicher wieso es sich so benimmt wie es sich benimmt, aber es ist konsistenter.

65535 und RFC steps von 32 - wäre das richtige. Von der Firmware und Binary Seite aus.
CKE müsste immer auf 5ns sein, und man runde hoch.
Die wichtigen angehängten Timings wie CPDED, tPPR, tCSH/tCSL, tXP , tXSR (sehr wichtig) ~ übernimmt dir AMD. "Leider" :)

RAS absolute minimum RCD+RTP. Erwartet kein angereihtes AutoRefresh.
Empfohlener RAS ~ CWL+RCDWR+WR. Bei der Formel welches keinen ROW-Miss garantiert, kann RC = RAS. Nur bei dieser Option
RAS und RC sind dynamische minimum Werte, keine fixen Werte. Der Nutzer setzt nur den Startpunkt dessen.
RAS average (optimum) minimum = RCD+RTP+tBURST (tBURST auf AMD ist 3. HW Seitig allerdings 8) ~ RCD+RTP+8
// solange nirgendwo bestätigt wird dass ihr 2 MC/VDDIO Links habt. Bei 2 links = +4 anstelle +8

RRDL:
16GB dimms 8+
24gb dimms 12+

RRDL bestimmt CCDL auf AMD, indirekt.

SC, SD/DR (rank, back-side), DD ([sub]channel), SC_Long
Sind alles mathematische offsets.

RDRDSC_L minimum = CCDL - ReadBurstChop (8) + ODTEnableDly (1)
WRWRSC_L minimum = CCDL(WR) - WriteBurstChop (8) + ODTEnableDly (1)

WTRS = RRDS *
WTRL = RRDL²

CCDLWR = CCDL²
* Wenn WTRL*2 = CCDLWR & WRWRSC_L ~ CCDLWR nützt, anstelle gleich CCDL wäre
Dann kann WTRS = RRDS/2.

tWR:
Immer 48
// Solange nicht bestätigt wird dass AMD 2 MC links pro DIMM nützt, ist es 48.
Ansonnsten mit FGR wäre das 16 für 16gb dimms, 24 für 24gb dimms (Zufall).

tFAW:
Für alle unsere DIMMs ~ 32.
32 für 1kb pagesize dimms
48 für 2kb pasesize dimms.
// Solange nicht bestätigt wird dass AMD 2 MC links pro DIMM nützt, ist es Wert 32/48 anstelle 16/24 :)

RTP:
12, 13, 15, 16, 18, 20, 21?, 22, 24, 26
Skaliert nach mathematischen divider. Werte wie 14 und 17 sind nicht existent.

_DD (SD/DR) timings reale minimums:
tRDRD = 8
tRDWR = 16
tWRRD = 4
tWRWR = 6
// Solange nicht bestätigt wird dass AMD 2x32bit MC links pro DIMM nützt, sind dies die absoluten minimums. Ansonnsten alle Werte /2.
// Ja, sehr viele Boardpartner haben diese falsch.

tRP = tRCD , immer
tRP geschieht im Hintergrund wärend eines RRD bankgroup jump's.
Außer zu niedriges RAS erzwingt RP vor RAS einzusetzen und ROW-MISS Nutzerfehler zu korrigieren.
Wärend der korrektur, wird jede Operation gestoppt bis "wrong-row" wieder ein "ok" von Sensing-I/O bekommt und erst dann wird RAS fortgesetzt. Bzw gegebenfalls als gesammten Wert wiederholt.

CAS hittet immer die richtige COLUMN
RCD ist ein transition timing & der Hauptwert für IC binning.
RAS kann die falsche ROW erwischen.
 
Zuletzt bearbeitet:
Hab jetzt 3 RAS Berechnungen, bin etwas verwirrt.

ddr5timings.png
 
RRDL bestimmt CCDL auf AMD, indirekt.
Disclaimer und FW Regelwerk:

CCDL wird selbstständig Pro Clock generiert.
CCDL wird ebenso auf die Nutzer Timings angepasst.

Direkten Zugriff zu CCDL wird einem nicht gewährt, allerdings kann man es indirekt beinflussen.
Der anliegende CCDL Wert, ist der höchste Wert entweder von RRDL oder SC_L.

Man nehme als Beispiel:
RRDS 8
RRDL 10
WTRS 8
WTRL 20

Dies verwendet das CCDL und CCDLWR Regelwerk.
CCDL wäre minimum 10 , und CCDLWR somit minimum 20.
Das heißt RDRDSC_L wäre minimum 10-8+1 (3).

Hat der Nutzer allerdings nun RDRDSC_L auf 4 stehen, setzt die Firmware die CDDL auf 11 hoch.
Bzw nachdem alle Bankgroups ausgeschöpft sind, und es "round trip" zurück zu der selben kommt
// _L = same group (SG) , roundtrip, long jump
// _S = different group (DG) , short jump
hast du ein freien nicht verwendeten Jump von 1 tCK
(11 angesagt, 10 benützt, 1ner nicht verwendet , 7 fehlend bis RRDS minimum delay von 8)
Das sammelt sich für 7*, und erst bei dem 8. mal erlaubt es dir entweder einen RRDS oder RRDL auszuführen und die 11 möglichen werden gefüllt bis zum RFC oder REFI.
= ~14% langsamer im gesammten Bild. Bzw ein verfehlter IC.

Ein weiteres Beispiel:
RRDS 8
RRDL 8
WTRS 7
WTRL 40

Das sagt der Firmware CCDS & CCDL dürften 8 sein.
Es sagt der Firmware das Shorts und Longs sofort hin und her springen dürfen.
Allerdings wenn wir das 5 mal nehmen, bis alle jumps fertig wären. 5 Reads ala 5x 8tCK RRD_X
Erst nach dem 5. mal kann ein Writeback passieren, zu der selben Bank worin man 1x Zugriff darauf hatte.
Im Grundegenommen nicht soo katastrophal, da writes überall landen dürfen und nahezu instant sind.
Sprich eher WTRS genutzt wird, und man zu den _Long's nur fällt, wenn alles andere voll ist. RRDL, WTRL, SC_L werden selten benutzt;
Aber wieder im längeren Bild gedacht , verzögest du Potentielle writes um fast den doppelten delay.

Ein drittes Beispiel:
RRDS 8
RRDL 8
WTRS 7
WTRL 16

Das hier klingt optimal, aber ist es weiterhin nicht, da WTRS höher ist.
Write to Read Short/Instant jump.
Abseits dass es 3 clock höher ist als es eigentlich sein kann (kann WTRS 4 sein)
Rechnen wir es mal aus
CCDL 8 - ReadChop 8 + ODTEnableDly 1 = 1 clock.
1 clock für RDRDSC_L gehe nicht.
Du kannst realistisch nicht durch 4 Bankgroups pro IC * 4 oder *8 Pro dimm seite, in einem einzigen clock durch.
Mit 2 clock würde es eventuell gehen bei RDIMM - welche 2 commands pro strobe gleichzeitig! ausführen können = echtes dual rank
Das würde alle 4 ICs Pro Seite ~ Pro subchannel füllen.

Jedoch in der Realität und mathematisch ist sowas nicht möglich.
Es würde von dir erwarten dass du entweder RTP (breathing delay after done RAS)
Oder WR (write recovery delay) höher stellst als die minimum 12 & 48.

Bzw würde 8 ICs füllen und dann auf RFC warten müssen, da die _Long delays zu kurz sind und apprupt abbrechen.
Sprich, selbst wenn es gut ausschauen mag und für small-dataset benchmarks schneller aussehe (welche kaum bis garnicht einen einzigen IC füllen)
Im gesammten Bild ist das langsamer.


Disclaimer und FW Regelwerk [Teil 2]
Im Specification Sinne, hat RRDS (minimum Strobe delay von 8 tCK)
nun, auf 8 zu sein :d ~ solange wir nur ein Signal zu beiden subchannels (A & B, 2 pro dimm) haben.
455Lf1hFU5.png
Und RRDL skaliert dementsprechend hoch mit dem Clock. 8++

WTRS hat der selbe Wert wie RRDS -1 zu sein, da ein Read schon geschehen ist und ODTEnableDelay nicht mehr benötigt wird.
Sprich minimum 7.
Nur wie man von der groben Formel oben eventuell sich vorstellen kann ~ bzw um einen guten OCer zu zittieren:
1700600322066.png

Wäre ein missed command ~ um die 50% Verlust.
Bloß ist es hier nur ein verfehlter jump und kann gegebenenfalls nur 8 clock mehr dauern. Kein roundtrip delay wie tRDWR_SG/DG

Dank dem habe ich einen "kleinen" eigenen exploit gefunden.
DDR4 & DDR5 können innerhalb 2 writes pro Read ausführen.
Eigentlich etwas mehr, aber sie schaffen 2 Stück.

Als Beispiel:
RRDS 8
RRDL 12
WTRS 4
WTRL 24
RDRDSCL = 12-8+1 = 5

Das heißt,
Wenn CCDLWR verwendet wird und WTRL genau doppelt von RRDL wäre (normal)
Wenn die SC_Longs ebenfalls korrekt sind (die minimums) und RTP nicht zuu tief.
Dann endet der Loop genau im richtigen Zeitpunkt um WTRS auf halben clock zu rennen.
Wenn nicht, wäre ein delay irgendwo zwischen Reads zu langsam oder zu kurz.
tWR & tRTP als Hauptvariablen.

Das selbe gehe auch mit RAS
Die eigentliche "always no row-miss" formel ist kürzer.
Nvidia verwendet das gerne für derren GDDR5++
Thema "optimal row buffer locality".
Aber ich bin noch ein amateur und habe den Trick noch nicht ganz rausgefunden :)

EDIT:
Jedenfalls sind RAS und RC dynamisch
Und RC habe mehrere MSR calls um refreshes dementsprechend anders zu verarbeiten,
Seit DDR4/LPDDR4 Zeiten schon. Bloß konnte nicht jedes DIMM PCB , alle API calls ausführen.
DDR5 nun habe 1000 verschiedene (MSR wurde zu API) calls. Es ist weitaus komplexer mit umso mehr spielerein, um irgendwie den langsamen RFC bottleneck zu umgehen :)
Ein langer RAS delay ist nicht soo schlimm. Mehrere Timings werden gleichzeitig ausgeführt und haben gleichzeitig abzuschließen.
 
Zuletzt bearbeitet:
OMG ich glaube ich muss Studieren gehen und nochmal alles neu ausloten :ROFLMAO: :ROFLMAO::ROFLMAO::ROFLMAO:

ZenTimings_6200.png

(VDDQ=VDDIO/MC)
 
Brauchst du nicht.
VDDIO/MC = VDD_CPU
Je niedriger desto besser. (meistens)

VDDQ_CPU auf AMD wird automatisch durch VDDQ Training reintrainiert. Als verstecktes offset.
VDDIO & procDQ - haben eine direkte Verbindung
VDDCR_SOC & procODT haben eine direkte Verbindung
VDDG & procODT haben eine indirekte Verbidung
VMISC und VDDG haben eine direkte Verbindung. (VMISC = feeding voltage)

1700606049413.png

tFAW immer 32.
tRDWR kann später noch runter zu 14.

Vergleiche das mit Si Software Sandra
Inter Thread Latency test
Vorher und nachher.

EDIT:
30-37 auf 1.35 VDD_MEM, 1.3 VDDQ_MEM , sollte laufen :)
Gehe auf Hynix-M, müsste auf Hynix-A auch gehen.
Teste es mit TM5 und gebe bitte Rückmeldung welche fehler auftauchen.
 

Anhänge

  • TestMem5 v0.12 ADV_1usmus25.zip
    29,1 KB · Aufrufe: 138
Zuletzt bearbeitet:
Brauchst du nicht.
VDDIO/MC = VDD_CPU
Je niedriger desto besser. (meistens)

VDDQ_CPU auf AMD wird automatisch durch VDDQ Training reintrainiert. Als verstecktes offset.
VDDIO & procDQ - haben eine direkte Verbindung
VDDCR_SOC & procODT haben eine direkte Verbindung
VDDG & procODT haben eine indirekte Verbidung
VMISC und VDDG haben eine direkte Verbindung. (VMISC = feeding voltage)

Anhang anzeigen 941791
tFAW immer 32.
tRDWR kann später noch runter zu 14.

Vergleiche das mit Si Software Sandra
Inter Thread Latency test
Vorher und nachher.

EDIT:
30-37 auf 1.35 VDD_MEM, 1.3 VDDQ_MEM , sollte laufen :)
Gehe auf Hynix-M, müsste auf Hynix-A auch gehen.
Teste es mit TM5 und gebe bitte Rückmeldung welche fehler auftauchen.
Oh. Danke für das Feedback und die Tips.
Kann das am Donnerstag mal testen aber die 37er Timings und tRFC 480 sowie die 1,35v werden nur auf 6000MTs laufen. Musste die Spannung anheben um 6200MTs stabil zu bekommen.
Sind Hynix M Module.
 
Kann das am Donnerstag mal testen aber die 37er Timings und tRFC 480 sowie die 1,35v werden nur auf 6000MTs laufen. Musste die Spannung anheben um 6200MTs stabil zu bekommen.
Sind Hynix M Module.
HynixM 6000MT/s brauchen für 30-36-36 , 1.3v :)
Das sind 30-37 für 6200 +40mV
bzw 32-37 auf der selben Spannung
Oder 6200C28-36 auf 1.45v
Ooder 6200C28-37 auf ~1.42v

Alt und amateur like~
Du brauchst deutlich mehr Spannung dank deinen RRDS & RAS ideen.
 
@Veii

Jetzt blicke ich nicht mehr durch. o_O
Wie kommst du denn auf WinsBins RAS und RC?
RasundRC.JPG
 
@Veii

Jetzt blicke ich nicht mehr durch. o_O
Wie kommst du denn auf WinsBins RAS und RC?
Anhang anzeigen 941813
Das eine war RCD+RTP
Das andere wäre eine andere Formel :)
RC hatte ich dann einen Rechenfehler , 37+76 = 103

Es gibt ~4-5 Möglichkeiten RAS auszurechnen.
Letztendlich ist es nur ein starting-point für das dynamische RAS.
76 ist mit Absicht höher, aber es sollte laufen.

Du kannst anstelle von RCD+RTP
Ebenso CAS+RCD+ReadBurstChop
Oder ebenso WR+RCD+WriteBurstChop

Es gibt ein paar Möglichkeiten
Bei einem Write chain, brauchst du kein RC, bei einem Read meistens schon.
Bei einem CWL+RCD(WR)+WR überspringst du RTP und brauchst weder BurstChop noch RC.
Das wichtige wäre nur dass es irgendwo innerhalb dieser Werte landet, und auf nichts warten muss.
Denn wenn keines der Formeln passt, wiederholt es den gesammten Wert bis es mal etwas findet das passt.
Nicht jeder Read ist ohne AutoRefresh und nicht jeder Read öffnet die korrekte ROW :)

RC zb kann länger offen bleiben.
RAS wird timebroken wenn es zu lange ist. Wenn es aber zu kurz ist wird es nicht einfach verschoben
Sondern im besten Fall geschieht nichts, im schlimmsten Fall stoppt alles und RP muss ran. Im optimal fall wird der gesammte Wert einfach nur wiederholt.

RC,
Im besten fall wiederholt er sich ~ falls zu kurz
Im anderen Fall erweitert er sich anstelle StdRefresh (RP+RAS) zu extended Refresh (RP+RAS+nächsten BurstChop) und wenn das weiterhin nicht genug ist
Kann memory ebenso erkennen ob es 1x CAS before RAS , 3x CAS Bef RAS , usw ~ verschiedene Refresh Arten dazu passen. Ein paar davon gehören micron.
Oder ebenso hat es eine Funktion von RAS-Only Refresh, welches ich dank dem "sehr langen RAS" ausnutze :).
Es ist langsamer, aber es kann damit kein ROW-Miss passieren.
Ein paar davon gehen aber nur mit FGR. Zb PerBankRefresh, AMD hat dann noch einen mixed Refresh (beide soweit deaktiviert) ...
Usw~~ 🤭
1700634331878.png

// EDIT: Ich glaube ich verwechsel 1 CBR & 3 CBR ~ aber es gibt ein Refresh wenn CAS länger als RAS & wenn RAS länger als CAS wäre
// Ein Grund weswegen Leute RAS unter CAS rennen, obwohl du nicht wissen kannst welche Spalte (ROW) du aktivieren magst, wenn du nicht die richtige Zeile (column) gefunden hast.
// Somit kann RAS nicht tiefer als CAS sein, aber ... RAM ist kompliziert 🤭

76 aka CAS+RCD+Burst (8)+1 (da read) = 76
Braucht weiterhin ein RC, den keinerlei charge recovery fällt in der Formel. Weder RTP noch WR.
Und SPD Hub bzw controller wird das erkennen und auf RC warten. nun nicht direkt. RC geschieht nach fertigem RAS, nachdem RRD triggert (im Hintergrund dann)
Sprich 76+die RP müssen noch hinnein. Selbst wenn ich es absichtlich um +8(+1) verzögere. @RedF
Nichts dass im sheet gebraucht wird. Ich wollte nur mal sichergehen dass es auch wirklich stabil bleibt. :)
Beitrag automatisch zusammengeführt:

@RedF
1700634799249.png

RTP ~ Read to PRE
PRE to Strobe (CAS or RAS)
RAS asks to start
CAS starts, finds it & RCD starts
RCD finishes, sensing IO gives ok for row to open and destroy mirrow'd data
Read happens
RAS finishes , closes ROW + RTP starts
RRD moves to free subchannel (same top loop repeats)
RTP stops (breathing delay)
& RP + RC starts
RP finishes in old BankGroup , sensing IO gives ok , RC finishes
Bank is officially free
Meanwhile 2nd Read is happening at the same time past RTP finishing

Und so weiter :)
Grob erklärt
RTP gehört mid/past read
RP ist dynamisch und wäre für den (p)recharge(back) verantwortlich. Generell nach dem Read.
RC ebenso und schließt die ROW als "fertig" ab.
RP kann sich auch vor RAS einsetzen, bei problemen - aber eigentlich ist es nach fertigem RAS.

RTP ist da, um gegen vampire current gegenzusteuern.
Ein breathing delay nach fertigen Zugriff.
Ein Read entladet die ROW, allerdings nicht komplett. *
Und bei dieser entladung gibt es einen saug effekt, welchem gegengesteuert werden muss.
Somit braucht es immer ein kleinen delay zwischen den Operationen.
Dieser kleine delay wird ebenso genützt bis strobe wieder HIGH ist und ein commando ausgeführt werden kann.

Ich müsste nachschauen, ob ich den genauen begriff für "Capacitor current soaking past discharge" finde.
Es gab einen guten Artikel darüber :)
* Da es diese allerdings nicht komplett entladet, und wenn commands früher dran sind als andere Fertig ~ gibt es Reads mit Autorefresh (oberer loop) und welche ohne Autorefresh
Somit gibt es dynamische Read access und dynamische RCs, mit sich selbst einsetzbaren row (p)recharge (RP). Meistens Recharge, manchmal pre'charge.
Je nachdem was Sensing I/O über den status der bank/row sagt.
 
Zuletzt bearbeitet:
Danke : )
Da muss ich mich erstmal durchgraben und schauen, was ich für ein einfaches Sheet nehmen kann.

Das Rabbit Hole ist sehr tief :fresse:
 
Danke : )
Da muss ich mich erstmal durchgraben und schauen, was ich für ein einfaches Sheet nehmen kann.
Das was du gerade hast, passt perfekt
RC wäre nur RP+RAS :)
RAS ist RCD+RTP. RAS muss nicht unbedingt perfekt enden. Es darf sich ziehen.
Es endet wenn es denkt dass es enden muss. Ein zu kurzer Wert kann nur Probleme bereiten.

Wir haben ein super langen RAS, welcher RC überspringt und konsistent ist
Einen kurzen RAS welcher RC braucht, aber genaue timings erwartet. Terts inclusive
Und einen normalen "optimal" RAS mit autorefresh drinnen, naja mit einem verzögerten BurstChop als buffer obendrauf. Aka fokusiert für 1kb data transfer.

Anta habe dazu etwas mehr auf OCN geschrieben (RAS +2, +4, +8 usw)
Ich hab es so spät/früh am morgen gerade nicht mehr im Kopf 🤭
Beitrag automatisch zusammengeführt:

Ah wenn wir schon bei dem AM5 Thread sind :)
Autorefresh und Row-Miss testing. Bzw consistency testing
autorefresh-n-rowmiss_testing-png.940029


SiSandra Tests
1700638282583.png
1700638317299.png

1700638344904.png

Es müsste deutlich mehr auf dem OCN thread geben, aber nun ja~
Alte Daten aus Mai-Juli.
 
Zuletzt bearbeitet:
@Veii Danke Veii dass du uns hier aufschlaust.

Ich habe noch Fragen

Wann kann WTRS kleiner 7 sein

Ist die Pagefile Größe (1;2 KB) das gleiche wie memory interleaving size? Und kann man irgenwie erkennen ob man 1 KB oder 2KB braucht habe 2 * 32 Gb. Dual Rank wobei laut dir das ja nur double side eigentlich wären

Kannst du noch Empfehlungen zu den Widerständen Rtt etc. und Proc etc. geben?

@Reous wie bekommen wir den die ganzen Infos von Veii in den Startpost. Sonst gehen die in Vergessenheit. 😉. Kann auch gerne unterstützen.
 
Aktuelle form:
ddr5timings.png


Kritik bitte anbringen : )
 
Aktuelle form:
Anhang anzeigen 941910

Kritik bitte anbringen : )
RC ist falsch.
@Veii Danke Veii dass du uns hier aufschlaust.

Ich habe noch Fragen

Wann kann WTRS kleiner 7 sein

Ist die Pagefile Größe (1;2 KB) das gleiche wie memory interleaving size? Und kann man irgenwie erkennen ob man 1 KB oder 2KB braucht habe 2 * 32 Gb. Dual Rank wobei laut dir das ja nur double side eigentlich wären

Kannst du noch Empfehlungen zu den Widerständen Rtt etc. und Proc etc. geben?

@Reous wie bekommen wir den die ganzen Infos von Veii in den Startpost. Sonst gehen die in Vergessenheit. 😉. Kann auch gerne unterstützen.
RTTs sind ein zu komplexes thema. Mir fehlt selbst noch etwas information davon.

Richtwerte für ODTs soweit keine.
Ändern sich "leider" jede 2. Agesa.
Viele chips können high impedance , low voltage
Manche , weak impedance high voltage.

Zumindest was die drive strengths angeht.
Letztendlich haben fast alle AM5 boards sich identisch zu benehmen, (ausnahme 1/2DPC)
Und die RTTs sind dann pro memory-vendor unique.
G.Skill hat leicht andere PCBs als Kingston, Teamgroup & Corsair
Oem Greens sind ebenso leicht anders aber nahe zu den Klevv blacks bzw western market blacks.

Die G.Skill low tier sub 7000 kits und high tier , benehmen sich ebenfalls leicht unterschiedlich.

Sich auf ein set zu fokusieren, macht eher weniger sinn.
Die Boards haben mit diesen eigentlich gut zu funktionieren.

RTT_WR gehe schwächer bei höherer Kapazität.
Als kleines Beispiel:
16gb single dimm ~ 0-40WR
2x 16gb ~ 40-48ohm WR
2x 24gb single-sided - 48-60ohm
32gb dual sided 60ohm
48gb dual sided 80ohm

Usw :)
Eine starke WR (niedrige Zahl) beinflusst weiterhin PARK & NOM
Aber mir fehlt etwas information über WR.
Den es benimmt sich zwischen ranks anders und dual sided ist generell auf UDIMM etwas abstrakt.

WTRS wäre immer -1 unter RRDS außer du benützt meinen Trick. Aka half of RRDS.
Man balanciert es mit Tertiaries.
JEDEC kann dir stabilität garantieren.
Bei meinem trick musst du dann doch etwas mehr arbeit hinneinstecken damit nichts überlappt. :)
Damit anzufangen bzw mit den minimums, wäre recht unüberlegt.

Minimum tRDWR wäre:
LongDelay= CAS-CWL
Formel: LD (2) +Burstchop (8) + OdtEnDly (1) + WPRE (meistens 2+)
WrPRE (≠WRPRE) ändert sich automatisch per clock und nitro settings. Startet mit 2 kann auch gerne 3-4 sein.
Auslesbar in MemTweakIT. :)
Micron empfielt den mininum delay +1.
Beitrag automatisch zusammengeführt:

Ist die Pagefile Größe (1;2 KB) das gleiche wie memory interleaving size?
Pagesize ist auf den ICs , bzw der Gruppierung auf dem DIMM PCB angesprochen durch SPD-HUB.
Interleaving size ist auf dem Interface vom Hostcontroller (CPU)

Generell ja, aber kann auch im half size laufen.
Ein Teil des Grundes weswegen Leute überhaupt FAW 16 bzw RRDS 4 zum laufen bekommen.
Obwohl es langsamer ist, da man sich zugriff zu anderen ICs wegschneidet.

Ob nun wirklich 2 MC links pro memory channel, bzw dimm hingehen
Kann dir und möchte dir soweit niemand beantworten.
Ohne diese Information bleiben BurstChop minimums auf 8. Ebenso CCDS = 8 und CCDL >/=8
Sowie den Rest der timings.

Es kann sein dass das Board darin designed wurde, allerdings Raphael aka der Host, nur einen ausgibt.
Ich bin da leider überfragt. Aber eine Bestätigung für 2x32bit links ~ aka einen pro Subchannel gab es soweit nicht.
Ebenso verneinen es die tWR und tRTP timing limits.
 
Zuletzt bearbeitet:
Vergleiche das mit Si Software Sandra
Inter Thread Latency test
Vorher und nachher.

Ähm....nicht lachen aber Sandra hab ich bestimmt vor 8/9 Jahren das letzte mal druaf gehabt. Bin gerade (auch übersetzungstechnisch) nicht sicher ob du das meinst?? o_O

Sandra_Inter Thread Latency test.jpg
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh