Latenze DDR2 vs DDR3: un po' di teoria

Si sente spesso dire che le latenze delle nuove memorie DDR3 sarebbero più elevate di quelle delle memorie DDR2, e si adduce come giustificazione tecnica il fatto che i timings primari delle DDR3 sono quasi il doppio di quelli delle DDR2 alle frequenze dichiarate di targa. Nulla di più errato e ingannevole può essere affermato.

Per misurare i timings di funzionamento interno delle memorie vengono generalmente utilizzate due notazioni:

  • il periodo T della frequenza di clock ovvero della frequenza di funzionamento delle memorie;

  • il tempo misurato in nanosecondi ns (un miliardesimo di secondo), o ancora in microsecondi µ s (un milionesimo di secondo).


Col termine latenza si intende l'intervallo di tempo che intercorre tra l'istante in cui si inizia l'operazione di accesso (inviando indirizzo e segnali controllo) e l'istante in cui l'operazione di accesso termina (consentendo alla CPU di procedere con altre attività). La misura di latenza può essere concettualmente organizzata pensando ad una sola operazione di accesso "cronometrata" dall'inizio alla fine.

La latenza quindi terrà conto di tre componenti principali:

  • la latenza propria delle memorie;

  • la latenza del chipset o meglio del memory controller integrato nel northbridge (per l'architettura Intel utilizzata in questa prova);

  • la latenza della cache del processore (trascurabile rispetto alle prime due componenti).

Nel proseguo ci concentreremo soprattutto sulla latenza propria delle memorie visto che le altre due latenze dovrebbero essere un invariante per la modalità con cui vengono eseguite le prove (stesso chipset P35 e stesso processore).

La latenza, ossia il ritardo con cui il chip di memoria inizia a rispondere a una richiesta di dati, è la somma di vari ritardi elementari che si verificano in vari punti della sua architettura logica. Così, per esempio, l'indicazione “2-2-2-5-1” sta a indicare rispettivamente i cinque ritardi funzionali (CAS, RAS to CAS, RAS precharge, RAS Acitve Time, Command) che concorrono a formare la latenza complessiva del modulo, espressi in cicli di clock.

Quindi i timings primari influenzano in larga parte la latenza delle memorie:

  • CAS Latency (CL)

  • RAS To CAS Delay (tRCD)

  • RAS Precharge (tRP)

  • RAS Active Time (tRAS)

Essi sono misurati in periodi T della frequenza di funzionamento delle memorie. Infatti la notazione corretta per indicare un modulo di memoria capace di funzionare con CAS Latency pari a 3 sarebbe 3T e non come comunemente viene indicato con il 3 omettendo la T. Analogo discorso vale per gli altri timings in esame.

Questo uso comune di indicare i timings trae in inganno parecchie persone che sono portate a pensare che il CAS sia un numero assoluto e non dipenda assolutamente dalla frequenza di funzionamento delle memorie, cosicché per esempio una memoria DDR2-800 che è capace di funzionare con CAS 3 nella credenza comune sarebbe migliore, dal punto di vista della latenza introdotta dal CAS, di una memoria DDR3-1600 capace di funzionare con CAS 6.

Nulla di più errato potrebbe essere affermato e nel seguito si cercherà di fare un po' di chiarezza.

La frequenza di funzionamento della memoria è legata al periodo T dalla seguente relazione:

frequenza=1/T

da cui si ricava

T=1/frequenza

Applicando questa semplice formula all'esempio precedente cioè DDR2-800 MHz CAS 3 e DDR3-1600 MHz CAS 6 si otterrà che:


T = 1/frequenza DDR2 = 1/800 MHz = 1/800000000 = 0,00000000125 secondi = 1,25 ns

quindi CAS 3 per memorie che funzionano a DDR2-800 MHz significa 3*1,25 ns = 3,75 ns.


Facendo un ragionamento analogo per le DDR3-1600 MHz CAS 6 si avrà

T = 1/frequenza DDR3 = 1/1600 MHz = 1/1600000000 = 0,000000000625 secondi = 0,625 ns

quindi CAS 6 per memorie che funzionano a DDR3-1600 MHz significa 6*0,625 ns = 3,75 ns.


Magicamente è uscito fuori che entrambe le memorie introducono la stessa latenza pur avendo una il CAS pari al doppio dell'altra e il motivo di questa cosa è che oltre al CAS anche la frequenza è il doppio dell'altra.

Utilizzando questa formula con diversi valori dei timings si ottiene la seguente tabellina che converte il periodo T in nanosecondi in diverse condizioni operative di frequenza:


DDR2 vs DDR3: tutta la verità 2. Latenze DDR2 vs DDR3: un pò di teoria 1


Con questa tabella si vede facilmente che un modulo di memoria che funziona ad una frequenza di 800 MHz con CAS Latency pari a 3T ovvero 3,75 ns equivale, dal punto di vista della latenza, ad un modulo che funziona a 1600 MHz con CAS Latency pari a 6T che equivale sempre a 3,75 ns.

Quindi per esempio un modulo che funziona a DDR2-800 MHz 3-3-3-9 equivale, dal punto di vista della latenza ad un modulo che lavora a DDR3-1600 MHz 6-6-6-18. Analogamente un modulo che funziona a DDR2-900 MHz 4-4-4-12 equivale, dal punto di vista della latenza ad un modulo che lavora a DDR3-1800 MHz 8-8-8-24.

Si spera di essere stati chiari in questa esposizione e chi ha avuto la pazienza di leggere e capire quanto detto non dovrebbe più cadere nel tranello di considerare le latenze introdotte dai timings delle memorie come numeri assoluti, e pensare che a timings più bassi corrispondano latenze più basse indipendentemente dalle frequenze di funzionamento delle memorie.