|
Nelle memorie DDR ogni buffer di I/O o Data Queue (DQ) è in grado
di trasferire fino a due bit per ciclo di clock: dunque ad ogni
comando di lettura (read) due bit vengono trasferiti dall'array di
celle di memoria nel DQ. In gergo questa caratteristica viene
identificata come "prefetch di due bit". Dai buffer di
I/O, poi, i due bit vengono trasferiti uno per volta al bus dati.
Dunque con lo standard DDR l'array di celle di memoria ed i
buffer di I/O funzionano alla stessa frequenza, la metà di quella
del bus dati. Su quest'ultimo, infatti, arrivano due bit per ogni
ciclo di clock del buffer che devono essere trasferiti su un'unica
linea. Ad
esempio le memorie DDR400 hanno un array di celle di memoria ed i
buffer di I/O funzionanti a 200MHz, mentre il bus funziona a 400MHz:

Figura 1. Data prefetch nello standard delle memorie
DDR
Nelle memorie DDR2 l'array di celle di memoria funziona ad una
frequenza pari alla metà di quella dei buffer di I/O che a loro
volta, come per le memorie DDR, funzionano alla metà della frequenza
del bus. Con le memorie DDR2 si parla di un "prefetch di quattro bit"
in quanto sono 4 i bit che vengono precaricati dall'array di celle
di memoria nei buffer di I/O, poi resi disponibili al bus.

Figura 2. Data prefetch nello standard delle memorie
DDR2
Verrebbe da chiedersi come mai i produttori di memorie cercano
sempre strade diverse per ottenere maggiori prestazioni che non il
semplice aumento della frequenza di funzionamento. Il limite alla
massima frequenza che un chip può raggiungere è dato, in primo
luogo, dalle capacità parassite che si annidano lungo i tratti di
connessione di un transistor all'altro ma anche fra gli elementi dei
transistor stessi.
Una cella di memoria è costituita proprio da una capacità! Dunque
la spiegazione è subito resa, anche se ci sono da considerare
ulteriori ostacoli come il fatto che la semplice lettura di una
cella è un'operazione distruttiva: occorre perciò ripristinare il
dato nella cella di memoria una volta effettuata la lettura.
Visti questi limiti, invece di aumentare la frequenza di
funzionamento dei chip di memoria, si è preferito raddoppiare il
prefetch dei dati. Tali dati vengono memorizzati in appositi
registri prima di essere forniti in uscita sul bus raddoppiando di
conseguenza la banda dati.
Dunque una memoria DDR2 400 avrà chip funzionanti a 100MHz contro
i 200MHz dei chip delle rispettive memorie DDR 400. Ma visto che le
memorie DDR2 sono in grado di fornire 4 bit per ciclo di clock si
ottengono, teoricamente, le stesse prestazioni, quantomeno in
termini di banda dati.
Esistono, però, ulteriori problemi nell'utilizzare questo
approccio, come una maggiore complessità nella realizzazione del
multiplexer/demultiplexer dei buffer di I/O, che passano da una
architettura 2-1 delle memorie DDR ad una 4-1 delle memorie DDR2, ed
un conseguente aumento della latenza dovuto proprio a questa sezione
MUX/DEMUX che si interpone fra la cella di memoria dove risiede il
dato ed il bus di trasmissione.
|