| Il mercato delle memorie sta offrendo davvero notevoli spunti di
riflessione. Basti pensare che attualmente abbiamo almeno 3 tipi di
memorie, fra loro incompatibili, che offrono prestazioni e costi
diversi; parliamo delle memorie SDRAM PC100/133, delle DDR SDRAM
PC1600/2100/2400 e delle RIMM PC600/800. In questo articolo ci
occuperemo delle memorie DDR SDRAM di tipo PC2100/2400. Abbiamo scelto
di fare una comparativa con questo tipo di memorie, dato che ci sembra
siano le più richieste sul mercato e quelle di cui se ne può trovare
una vasta scelta. Prima di passare ai test, abbiamo voluto
redigere un piccolo dizionario dei termini usati nell'articolo e che
si sentono quando si acquistano questi tipi di memorie. CAS (Column
Address Strobe) o SDRAM Cycle Length: è il tempo che il chipset aspetta dalla richiesta del
dato fino alla presentazione, da parte della memoria, del dato stesso
al chipset. In parole povere, se una memoria ha un CAS Latency pari a
2, significa che dal momento che il chipset ha richiesto un dato
passeranno due cicli di clock prima che il dato sia reso disponibile
al chipset stesso. Dunque il CAS influenza le prestazioni solo in
lettura. Inoltre, e questo si vede soprattutto con le memorie DDR, le
impostazioni della voce CAS influenzano la prima richiesta da parte
del chipset per un blocco di dati. Questo fa sì che le memorie DDR
siano influenzate dal CAS molto meno che non le memorie SDR (che non
hanno una gestione a blocchi).
Bank Interleave: la modalità Interleave serve a mascherare i
cicli di refresh di ogni banco di memoria. In pratica, le memorie
fabbricate con tecnologia SDRAM hanno bisogno di essere rinfrescate ad
intervalli regolari onde evitare di perdere la carica contenuta nel
condensatore che forma la singola cella di memoria. Per evitare di
bloccare le operazioni di accesso a tutta la memoria mentre questa sta
rinfrescando i vari banchi si può attivare la modalità Interleave.
Questa modalità fornisce, di solito, le opzioni Disabled, 2 Bank o 4
Bank; maggiore è il numero di banche che mettiamo in Interleave e
maggiori saranno le prestazioni.
DRAM Precharge to Active (Trp): meglio conosciuto come RAS
Precharge Time, indica il numero di cicli di clock per cui il Row
Address Strobe (RAS) deve mantenere la sua carica prima di un
successivo refresh. Valori piccoli offrono prestazioni migliori.
DRAM Active to Precharge (Tras): questa voce si riferisce al
tempo che la memoria impiega a fornire un dato contenuto all'interno
di una delle sue locazioni. Impostandola a valori bassi si ottengono
migliori performance, dato che la memoria deve inviare il dato in un
tempo minore.
DRAM Active to CMD (Trcd): con la voce Trcd si indica il tempo
che deve trascorrere fra due successive richieste di lettura da parte
del chipset su due diverse celle di memoria. Ancora, impostando valori
bassi, si ottengono prestazioni migliori. Questa voce può essere il
fattore limitante nell'overclock della memoria proprio perché essa si
riferisce al tempo permesso per attivare una riga dell'array di celle
di memoria. Questa operazione consiste della decodifica dell'indirizzo
di riga che risulta una operazione comunque veloce e della operazione
di "trasporto" e amplificazione del dato fino ai piedini esterno del
chip della memoria. Purtroppo questa seconda operazione risulta molto
più critica, in quanto occorre sempre attendere un certo periodo di
tempo per avere la certezza che il dato in uscita del sense amplifier
(un amplificatore operazionale in configurazione differenziale) sia di
sicuro uno 0 oppure un 1.
DRAM Burst Length: indica il numero delle locazioni di
memoria di cui deve essere composto un blocco. Le memorie DDR,
infatti, sono gestite a blocchi, come sarà possibile leggere più
avanti.
DRAM Command Rate: questa voce indica il numero di cicli di
clock permessi per selezionare l'uno o l'altro chip di memoria sul
quale risiede il dato. Da tenere presente che questa voce incide solo
sul primo accesso al banco selezionato, dunque non inficia affatto le
prestazioni quando si effettuano accessi sequenziali sulla memoria.
DRAM Queue Depth: questa voce setta la lunghezza della coda
dei comandi di refresh che vengono impartiti alla memoria. Se la
memoria è occupata a fare altro quando arriva un comando di refresh,
questo può essere accodato fino a che la coda non è piena. Capite che
più lunga è la coda e migliori sono le performances della memoria dato
che i comandi di refresh sono meno stringenti. Questo però è anche
causa di instabilità provocata dal mancato refresh delle celle che
potrebbero scaricarsi troppo in fretta.
La tecnologia delle memorie DDR è simile a quelle delle memorie SDR,
basata sulle memorie SDRAM. Naturalmente non possiamo approfondire in
questo ambito quelle che sono le caratteristiche della tecnologia
SDRAM, altrimenti dovremmo dedicare almeno 10 pagine per descriverne
il funzionamento. Quello che invece vogliamo esporre, è il
funzionamento a grandi linee delle memorie DDR. Anzitutto sappiamo o
almeno abbiamo sentito dire che le memorie DDR forniscono il doppio di
dati rispetto alle memorie SDR. In effetti DDR sta per Double Data
Rate e questo significa che il chipset può leggere o scrivere sulla
memoria DDR due dati per ogni ciclo di clock (le memorie SDR possono
gestire 1 solo dato per ciclo di clock). Ma cerchiamo di capire meglio
con l'aiuto della seguente figura:
Il segnale di clock è rappresentato da una onda quadra di frequenza
pari a 133 MHz (per una memoria DDR PC2100) visibile dalle linee
bianche in figura. Sempre in figura si può vedere come i dati vengano
gestiti (letti o scritti) sia quando il clock va alto che quando va
basso facendo arrivare al chipset, realmente due dati per ogni ciclo
di clock (1 ciclo di clock è contrassegnato con la linea verde in
figura).
Per quello che riguarda i comandi e gli indirizzi inviati alla
memoria, questi non sono alla stessa frequenza dei dati, bensì vengono
gestiti dalla memoria solo durante il rising edge del clock (quando il
clock va alto). In figura abbiamo rappresentato i comandi e gli
indirizzi in blu.
Proprio per riuscire a gestire la situazione in cui i comandi e gli
indirizzi arrivano più lentamente di quanto possa fare la memoria con
i dati, le memorie DDR sono orientate a fornire i dati a blocchi (burst
oriented). Infatti l'accesso alla memoria inizia ad una certa
locazione e continua per un numero programmato di locazioni di
lunghezza specificabile fra 2, 4 o 8 sia per la lettura che la
scrittura dei dati. Questa impostazione viene effettuata dalla voce DRAM Burst Length
del bios.
Come con le memorie SDR, anche le memorie DDR posseggono una
pipeline adeguata per nascondere i tempi Row Precharge e Activation
Time (due parametri molto importanti delle memorie SDRAM).
|