Che cos'è la DRAM sincrona?

La DRAM sincrona o SDRAM è lo standard attuale per la DRAM. Il suo utilizzo principale è per la RAM di sistema, sebbene sia utilizzato anche in VRAM su schede grafiche e ovunque venga utilizzata DRAM. È così dominante nel suo campo che la "S" viene tipicamente abbandonata e viene semplicemente chiamata DRAM. La sincronizzazione della SDRAM è fondamentale per le sue prestazioni ed è stata determinante nella sua ascesa rispetto al suo predecessore, la DRAM asincrona.

Lavorare in sincronia

Sincrono si riferisce al fatto che la SDRAM ha un clock interno e che la velocità di clock è nota al sistema. Questo non vuol dire che funzioni alla stessa velocità di clock della CPU. Ma ha un orologio interno e la CPU lo sa. Ciò consente di ottimizzare le interazioni con la RAM in modo che il bus I/O venga utilizzato completamente anziché essere lasciato inattivo per garantire che nessun comando interferisca con altri comandi.

Parte del problema è che quando si scrivono dati su DRAM. I dati devono essere forniti contemporaneamente come comando per scrivere i dati. Durante la lettura dei dati, tuttavia, i dati vengono riletti due o tre cicli di clock dopo l'emissione del comando di lettura. Ciò significa che il controller DRAM deve concedere un tempo sufficiente per il completamento delle operazioni di lettura prima che avvenga un'operazione di scrittura. Con la DRAM asincrona, ciò avveniva semplicemente concedendo un tempo più che sufficiente per il completamento dell'operazione. Questa pratica, tuttavia, ha lasciato il bus I/O inattivo. Allo stesso tempo, il controllore ha aspettato abbastanza per essere sicuro, il che è stato un uso inefficiente delle risorse.

La DRAM sincrona utilizza un orologio interno per sincronizzare il trasferimento dei dati e l'esecuzione dei comandi. Ciò consente alle operazioni temporali del controller di memoria di sfruttare in modo ottimale il bus I/O e di garantire livelli di prestazioni più elevati.

Miglioramenti rispetto alla DRAM asincrona

Al di fuori dei miglioramenti nella tempistica che consentono un controllo migliore, il principale miglioramento della SDRAM è la capacità di avere più banchi di memoria all'interno della DRAM. Ciascuna banca opera essenzialmente in modo autonomo internamente. All'interno di una banca può essere aperta solo una riga alla volta. Tuttavia, è possibile aprire una seconda riga in un banco diverso, consentendo la pipeline di operazioni di lettura o scrittura. Questo design impedisce al bus I/O di rimanere inattivo. Allo stesso tempo, una nuova operazione di lettura o scrittura viene messa in coda, aumentando l'efficienza.

Un modo per pensarci è aggiungere una terza dimensione a un array bidimensionale. Puoi ancora leggere o scrivere dati solo da un posto alla volta. Ma puoi preparare un'altra riga in una banca diversa mentre si interagisce con una.

Un altro vantaggio della SDRAM deriva dall'inclusione dei dati di temporizzazione su un chip nella memoria. Alcuni moderni stick RAM consentono prestazioni più veloci rispetto agli standard DRAM ufficiali codificando le informazioni specifiche sulle prestazioni di temporizzazione su quel chip. Può anche essere possibile ignorare manualmente queste impostazioni, consentendo l'"overclocking" della RAM. Questo è spesso molto approfondito, poiché molti valori di temporizzazione possono essere configurati e tende a fornire prestazioni minime beneficio. Anche l'overclocking della RAM comporta il rischio di instabilità, ma può offrire vantaggi in alcuni carichi di lavoro.

Miglioramenti nel tempo

La velocità di clock della memoria effettiva non è aumentata molto dal rilascio della SDRAM. La prima iterazione di SDRAM ha ricevuto il retronimo SDR. Questo è l'abbreviazione di Single Data Rate per distinguerlo dalla successiva memoria DDR o Double Data Rate. Questi tipi, così come molte altre forme di DRAM, sono tutti esempi di SDRAM. Il ciclo di clock del chip DRAM controlla il tempo tra le operazioni più veloci della DRAM. Ad esempio, la lettura di una colonna da una riga aperta richiede un singolo ciclo di clock.

È importante notare che esistono due velocità di clock distinte per la SDRAM, l'orologio interno e l'orologio del bus I/O. Entrambi possono essere controllati in modo indipendente e sono stati aggiornati nel tempo. L'orologio interno è la velocità della memoria stessa e influenza direttamente la latenza. L'orologio I/O controlla la frequenza con cui possono essere trasmessi i dati che sono stati letti dalla SDRAM o che verranno scritti. Questa velocità di clock, combinata con la larghezza del bus I/O, influenza la larghezza di banda. Entrambi i clock sono collegati e sono fondamentali per le elevate prestazioni della SDRAM.

Come sono aumentate le velocità

Lo standard ufficiale JEDEC per la prima generazione di DDR SDRAM aveva clock di memoria compresi tra 100 e 200 MHz. DDR3 offriva ancora 100 MHz clock di memoria, sebbene abbia anche standardizzato velocità di clock fino a 266,6 MHz. Nonostante ciò, le modifiche interne alla velocità di clock I/O e al quantità di dati inclusi in un'operazione di lettura significava che anche con un clock di memoria di 100 MHz, la larghezza di banda per un'unità di tempo era quadruplicata.

DDR4 ha cambiato il modello di aggiornamento e ha raddoppiato il clock di memoria con un intervallo compreso tra 200 e 400 MHz, ottenendo ancora una volta un raddoppio della larghezza di banda disponibile riducendo la latenza. Lo standard DDR5 inizia anche con un clock di memoria di 200 MHz. Tuttavia, raggiunge fino a 450 MHz, tornando a raddoppiare la quantità di dati trasferiti per ciclo per raddoppiare la larghezza di banda.

Conclusione

La DRAM sincrona è il tipo principale di DRAM in uso oggi. È la base per la RAM di sistema e la VRAM nelle applicazioni grafiche. Sincronizzando le azioni della DRAM con i clock, è possibile conoscere le prestazioni effettive della DRAM, consentendo di mettere in coda in modo efficiente le operazioni per l'esecuzione. Questo è molto più efficiente che lasciare un tempo più che sufficiente perché non esiste una misura diretta o un modo per sapere quando un comando specifico è stato completato.

I clock che controllano la SDRAM sono fondamentali per le sue elevate prestazioni. Controllano la frequenza con cui i comandi possono essere eseguiti e la velocità con cui i dati possono essere letti o scritti nella DRAM. Conoscendo questi tempi, possono essere ottimizzati per le massime prestazioni.