View Single Post
Old 17-10-2006, 15:09   #1
astaris
Senior Member
 
L'Avatar di astaris
 
Iscritto dal: May 2005
Città: napoli
Messaggi: 1335
Una guida per memset e timings nascosti per chipset 975 e affini

Ho notato che spesso fioccano domande su memset e affini, su come settare i timings e via dicendo, così mi sono deciso a fare questa guida cercando di entrare nel dettaglio sul significato dei timings nascosti che il chipset 975 permette di settare sulla memoria, ma che nella maggior parte dei casi non sono settabili da bios. Premetto che ho una scheda Asus P5W-DH, ma tutto quello che dirò è applicabile anche per le altre mobo con 975. Inoltre la maggior parte di quanto esposto in questo post vale anche per chipset 965. Ok iniziamo con una schermata di memset:

Andiamo ora a descrivere i timings esposti dal programma (nota: sui timings più conosciuti andrò molto veloce visto che c'e' già un'eccellente guida in questo forum qui ):

Cas Latency (tCL): è il ritardo in cicli di clock che deve trascorrere tra un comando di read e il primo fronte dello strobe dqs associato al primo dato in lettura.
Ras to Cas delay (tRCD): è il ritardo in cicli di clock che deve trascorrere tra l'attivazione di un banco di memoria e il primo comando di Read/Write diretto allo stesso banco.
Ras Precharge (tRP): è il ritardo in cicli di clock che deve trascorrere tra un comando di precharge e un comando di attivazione diretti allo stesso banco.
Precharge Delay (tRAS): è il ritardo in cicli di clock che deve trascorrere tra un comando di attivazione e un comando di precharge diretti allo stesso banco.
Refresh mode select (tREF): è il tempo misurato in micro secondi che deve trascorrere tra due comandi di refresh consecutivi diretti allo stesso banco. Questo timing è sempre settato by SPD e consiglio di non cambiarlo.

Ok tutti questi timings (a parte tREF) sono impostabili da bios su qualsiasi scheda madre decente e quindi non vanno variati usando questo programma. Oltretutto la variazione della cas latency sotto windows può portare al blocco del sistema.
Andiamo ora con i timings "nascosti":

Page Close Idle Timer: è il tempo in cicli di clock che deve trascorrere perchè una pagina di un banco non utilizzata sia chiusa. Lasciatelo a 16. Influenza impercettibilmente le prestazioni del sistema.

Refresh Cycle Time (tRFC): è il numero di cicli di clock durante i quali è attivo il segnale di refresh della Ram.
Per chips con densità pari 512 Mbits (quelli utilizzati in moduli dual rank da 1GB o in moduli single rank da 512 MB) il Refresh Cycle Time suggerito dalle specifiche è 105 ns, che corrispondono a 21 clock con frequenza DDR2 400 oppure 42 clocks con frequenza DDR2 800. Per calcolare il refresh time in cicli si può utilizzare la seguente formula:
tRFC=21*FSB*DRAM_RATIO/200
in cui FSB è la frequenza del front side bus (ad esempio 266 Mhz per Conroe) e DRAM_RATIO è il rapporto tra frequenza SDR della memoria (che vale 200 per DDR2 400) e frequenza FSB (ad esempio 3/2 per DDR2 800 con FSB =266),
Nota: questo timing influisce poco sulle prestazioni del sistema, ma può essere determinante nei riguardi della stabilità; consiglio quindi di impostarlo secondo specifiche.

Read Delay (tRD): è il ritardo in cicli di clock tra un comado di read a un banco di memoria e l'asserzione del segnale HDRDY sul FSB che praticamente predispone il processore alla ricezione dei dati in lettura. Il valore che suggerisce Intel per questo timing è 7, anche se i bios delle schede madri utilizzano valori anche più spinti. Ad esempio la P5W utilizza 6 in condizioni normali e 5 con hyperpath attivato. Questo timing ha una grande influenza sulla stabilità in condizioni di overclock del northbridge e una modesta influenza sulle prestazioni. Il mio consiglio è di impostarlo su 7 se si overclocca molto il chipset cercando di raggiungere elevati valori di FSB senza overvoltare l'MCH (ovvero il northbridge).
Nota: questo timing imposta una latenza interna del chipset e non è assolutamente influenzato dai moduli di memoria utilizzati.

Write to Precharge command (tWRP): è il ritardo in cicli di clock tra un comando di scrittura e un comando di precharge diretti allo stesso banco.
Tenendo conto che tra comando di scittura e il primo dato in scrittura devono passare CL-1 cicli di clock (infatti la write cas latency per ddr2 è sempre la cas latency CL meno uno), che i dati in scrittura sono BL/2 dove BL è il burst lenght (BL/2 perchè le operazioni in scrittura effettuate sul fronte di salita e di discesa del clock), che tra l'ultimo dato in scrittura e il comando di precharge devono passare tWR cicli di clock dove tWR è il write recovery time, abbiamo:
tWRP=tCL-1+BL/2+tWR
poichè BR è sepre 8, in definitiva:
tWRP=tCL+tWR+3
Ora il tWR suggerito è 4 per moduli DDR2 533 e 667, e 5 per moduli DDR2 800.
Quindi ad esempio se stiamo al di sopra di 800 Mhz con la memoria, con tCL=4, dalla formula precedente si evince che:
tWRP=4+5+3=12

Write to Read command (tWRC): è il ritardo in cicli di clock tra un comando di scrittura e un comando di lettura diretto allo stesso banco. Seguendo un ragionamento analogo a quello condotto per Write to Precharge delay otteniamo la seguente formula:
tWRC=tCL-1+tWTR+BL/2
da cui semplificando:
tWRC=tCL+tWTR+3
in cui tWTR è il write to read delay e dovrebbe valere 2 per DDR2 533 e 667, e 3 per DDR2 800.
Ad esempio considerando il caso precedente abbiamo:
tWRC=4+3+3=10

Read Write Turnaround (tRWT): Numero di cicli che devono trascorrere tra un comando di lettura e un comando di scrittura diretti a due rank diversi.
Questo ritardo esiste sempicemente per non far collidere i segnali sul bus della memoria. Detto TA il tempo di turn aroun per i segnali, abbiamo la seguente formula che si può ricavare sempre con lo stesso ragionamento:
tRWT=TA+1+BL/2
Sempificando abbiamo:
tRWT=TA+5
TA dipende da molti fattori (frequenza, piste, buffers memoria e mch...), tuttavia il valore suggerito da Intel è 3 e conseguentemente:
tRWT=8
Nota: Questo timing influenza poco o nulla le prestazioni, consiglio quindi di non variarlo.

Write Read Turnaround (tWRT): Numero di cicli che devono trascorrere tra un comando di scrittura e un comando di lettura diretti a due rank diversi.
Si ricava facilmente (ovvio chi è interessato me lo chieda e lo spiego, mò sto un pò scazzato per spiegare nei dettagli ):
tWRT=TA-1+BL/2
Semplificando:
tWRT=6
Nota: Vedi nota sopra....

Read to Precharge: Numero di cicli che devono trascorrere tra un comando di Read e un comando di Precharge diretti a due rank diversi.
Questo timing è di poca importanza e quindi lasciatelo al suo valore di default -> 4.

Segue nel prossimo post una guida per utilizzare memset al meglio in accoppiata con clockgen.
__________________
Mobo: Giga UD4H - Procio: i7 4770K 4.5 [email protected] with Noctua 12SE in Push-Pull - Ram: 8X2 GB G.Skill 1600 TridentX - Video: MSI 680GTX - Audio: Creative Z - PSU: Corsair HX1000 - HDs: VelociRaptor 300 + Samsung 840 PRO 256 - Rheobus: T-Balancer Fan Controller - Case: TT Armor Plus - Optical: Blu-RAY RW sata - Remote: TT Medialab
SetVoltage 1.4-Guide x 4870 X2-I quadri della mia girl!

Ultima modifica di astaris : 17-10-2006 alle 15:15.
astaris è offline   Rispondi citando il messaggio o parte di esso